This commit was manufactured by cvs2svn to create tag 'v200910072237'.
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/.cvsignore b/features/org.eclipse.wst.jsdt_tests.feature/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/.project b/features/org.eclipse.wst.jsdt_tests.feature/.project
deleted file mode 100644
index 808c20f..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt_tests.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.wst.jsdt_tests.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 06da1cb..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Dec 12 03:20:23 EST 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/build.properties b/features/org.eclipse.wst.jsdt_tests.feature/build.properties
deleted file mode 100644
index 27affc5..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = feature.xml,\
-               epl-v10.html,\
-               eclipse_update_120.jpg,\
-               license.html,\
-               feature.properties
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/eclipse_update_120.jpg b/features/org.eclipse.wst.jsdt_tests.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/epl-v10.html b/features/org.eclipse.wst.jsdt_tests.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/feature.properties b/features/org.eclipse.wst.jsdt_tests.feature/feature.properties
deleted file mode 100644
index dba39f8..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/feature.properties
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=JSDT Tests
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=JSDT tests
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/feature.xml b/features/org.eclipse.wst.jsdt_tests.feature/feature.xml
deleted file mode 100644
index 7b45b64..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/feature.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.wst.jsdt_tests.feature"
-      label="%featureName"
-      version="1.2.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.wst.jsdt.core.tests.compiler"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.wst.jsdt.core.tests.model"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.wst.jsdt.web.core.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.wst.jsdt.web.ui.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/features/org.eclipse.wst.jsdt_tests.feature/license.html b/features/org.eclipse.wst.jsdt_tests.feature/license.html
deleted file mode 100644
index 303e665..0000000
--- a/features/org.eclipse.wst.jsdt_tests.feature/license.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>)
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>)
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>)
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>)
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-  
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) </LI>
-  
-  <li>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.compiler/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.cvsignore b/tests/org.eclipse.wst.jsdt.core.tests.compiler/.cvsignore
deleted file mode 100644
index 7722bc8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-javaCompiler...args
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.project b/tests/org.eclipse.wst.jsdt.core.tests.compiler/.project
deleted file mode 100644
index ba31f32..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core.tests.compiler</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.wst.jsdt.core.tests.compiler/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 5fc8110..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Dec 12 03:20:36 EST 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.jsdt.core.tests.compiler/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e23f845..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Dec 12 03:10:27 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.jsdt.core.tests.compiler/META-INF/MANIFEST.MF
deleted file mode 100644
index b2fd298..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.jsdt.core.tests.compiler; singleton:=true
-Bundle-Version: 1.0.300.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.wst.jsdt.core;bundle-version="[1.1.0,2.0.0)",
- org.junit;bundle-version="[3.8.2,4.0.0)"
-Export-Package: org.eclipse.wst.jsdt.core.tests.compiler,
- org.eclipse.wst.jsdt.core.tests.compiler.parser,
- org.eclipse.wst.jsdt.core.tests.compiler.regression,
- org.eclipse.wst.jsdt.core.tests.eval.target,
- org.eclipse.wst.jsdt.core.tests.future.compiler.regression,
- org.eclipse.wst.jsdt.core.tests.interpret,
- org.eclipse.wst.jsdt.core.tests.junit.extension,
- org.eclipse.wst.jsdt.core.tests.runtime,
- org.eclipse.wst.jsdt.core.tests.util
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/about.html b/tests/org.eclipse.wst.jsdt.core.tests.compiler/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/build.properties b/tests/org.eclipse.wst.jsdt.core.tests.compiler/build.properties
deleted file mode 100644
index 5717ad8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = test.xml,\
-               .,\
-               plugin.properties,\
-               META-INF/,\
-               about.html
-src.includes = test.xml
-source.. = src/
-jars.compile.order = .
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/plugin.properties b/tests/org.eclipse.wst.jsdt.core.tests.compiler/plugin.properties
deleted file mode 100644
index 7793cd8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-#
-# Messages in plugin.xml.
-#
-pluginName=JSDT Tests - Compiler
-providerName=Eclipse.org
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
deleted file mode 100644
index 6b32849..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.core.tests.compiler;

-

-import java.util.ArrayList;

-import java.util.Iterator;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.wst.jsdt.core.JavaScriptCore;

-import org.eclipse.wst.jsdt.core.tests.compiler.parser.SyntaxErrorTest;

-import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicAnalyseTests;

-import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicParserTests;

-import org.eclipse.wst.jsdt.core.tests.compiler.regression.BasicResolveTests;

-import org.eclipse.wst.jsdt.core.tests.compiler.regression.CharOperationTest;

-import org.eclipse.wst.jsdt.core.tests.compiler.regression.InferTypesTests;

-import org.eclipse.wst.jsdt.core.tests.compiler.regression.UtilTest;

-import org.eclipse.wst.jsdt.core.tests.interpret.BasicInterpretTest;

-

-/**

- * Run all compiler regression tests

- */

-public class JSDTCompilerTests extends TestSuite {

-

-static {

-	JavaScriptCore.getPlugin().getPluginPreferences().setValue("semanticValidation", true);

-}

-

-public JSDTCompilerTests() {

-	this("JavaScript Model Tests");

-}

-

-public JSDTCompilerTests(String testName) {

-	super(testName);

-}

-public static Test suite() {

-

-	ArrayList standardTests = new ArrayList();

-	

-	// regression tests

-	standardTests.add(BasicParserTests.class);

-	standardTests.add(InferTypesTests.class);

-	standardTests.add(BasicResolveTests.class);

-	standardTests.add(BasicAnalyseTests.class);

-	standardTests.add(CharOperationTest.class);

-	standardTests.add(UtilTest.class);

-	

-	// parser tests

-	standardTests.add(SyntaxErrorTest.class);

-	

-	// interpret tests

-	standardTests.add(BasicInterpretTest.class);

-	

-	

-	

-	

-//	standardTests.addAll(JavadocTest.allTestClasses);

-

-//	standardTests.add(BasicErrorTests.class);

-

-	//	// add all javadoc tests

-//	for (int i=0, l=JavadocTest.ALL_CLASSES.size(); i<l; i++) {

-//		standardTests.add(JavadocTest.ALL_CLASSES.get(i));

-//	}

-//

-	TestSuite all = new TestSuite("JSDT 'Compiler' Tests");

-//	int possibleComplianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();

-//	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_3) != 0) {

-//		ArrayList tests_1_3 = (ArrayList)standardTests.clone();

-//		tests_1_3.add(Compliance_1_3.class);

-//		tests_1_3.add(JavadocTest_1_3.class);

-//		// Reset forgotten subsets tests

-//		TestCase.TESTS_PREFIX = null;

-//		TestCase.TESTS_NAMES = null;

-//		TestCase.TESTS_NUMBERS= null;

-//		TestCase.TESTS_RANGE = null;

-//		TestCase.RUN_ONLY_ID = null;

-//		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_3, tests_1_3));

-//	}

-//	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_4) != 0) {

-//		ArrayList tests_1_4 = (ArrayList)standardTests.clone();

-//		tests_1_4.add(AssertionTest.class);

-//		tests_1_4.add(Compliance_1_4.class);

-//		tests_1_4.add(ClassFileReaderTest_1_4.class);

-//		tests_1_4.add(JavadocTest_1_4.class);

-//		// Reset forgotten subsets tests

-//		TestCase.TESTS_PREFIX = null;

-//		TestCase.TESTS_NAMES = null;

-//		TestCase.TESTS_NUMBERS= null;

-//		TestCase.TESTS_RANGE = null;

-//		TestCase.RUN_ONLY_ID = null;

-//		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_4, tests_1_4));

-//	}

-//	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_5) != 0) {

-//		ArrayList tests_1_5 = (ArrayList)standardTests.clone();

-//		tests_1_5.addAll(RunComparableTests.ALL_CLASSES);

-//		tests_1_5.add(AssertionTest.class);

-//		tests_1_5.add(ClassFileReaderTest_1_5.class);

-//		tests_1_5.add(GenericTypeSignatureTest.class);

-//		tests_1_5.add(InternalHexFloatTest.class);

-//		tests_1_5.add(JavadocTest_1_5.class);

-//		tests_1_5.add(BatchCompilerTest.class);

-//		tests_1_5.add(ExternalizeStringLiterals15Test.class);

-//		// Reset forgotten subsets tests

-//		TestCase.TESTS_PREFIX = null;

-//		TestCase.TESTS_NAMES = null;

-//		TestCase.TESTS_NUMBERS= null;

-//		TestCase.TESTS_RANGE = null;

-//		TestCase.RUN_ONLY_ID = null;

-//		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_5, tests_1_5));

-//	}

-//	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_6) != 0) {

-//		ArrayList tests_1_6 = (ArrayList)standardTests.clone();

-//		tests_1_6.addAll(RunComparableTests.ALL_CLASSES);

-//		tests_1_6.add(AssertionTest.class);

-//		tests_1_6.add(ClassFileReaderTest_1_5.class);

-//		tests_1_6.add(GenericTypeSignatureTest.class);

-//		tests_1_6.add(InternalHexFloatTest.class);

-//		tests_1_6.add(JavadocTest_1_5.class);

-//		tests_1_6.add(BatchCompilerTest.class);

-//		tests_1_6.add(ExternalizeStringLiterals15Test.class);

-//		tests_1_6.add(StackMapAttributeTest.class);

-//		// Reset forgotten subsets tests

-//		TestCase.TESTS_PREFIX = null;

-//		TestCase.TESTS_NAMES = null;

-//		TestCase.TESTS_NUMBERS= null;

-//		TestCase.TESTS_RANGE = null;

-//		TestCase.RUN_ONLY_ID = null;

-//		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_6, tests_1_6));

-//	}

-	for (Iterator iter = standardTests.iterator(); iter.hasNext();) {

-		Class test = (Class) iter.next();

-		all.addTestSuite(test); 

-	}

-	return all;

-} 

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AbstractCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AbstractCompletionTest.java
deleted file mode 100644
index 3ec8ee5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AbstractCompletionTest.java
+++ /dev/null
@@ -1,481 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-
-import org.eclipse.wst.jsdt.internal.codeassist.complete.CompletionParser;
-import org.eclipse.wst.jsdt.internal.codeassist.complete.CompletionScanner;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.Initializer;
-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-public abstract class AbstractCompletionTest extends AbstractCompilerTest {
-
-	public final static String NONE = "<NONE>";
-public AbstractCompletionTest(String testName){
-	super(testName);
-}
-/*
- * DietParse with completionNode check
- */
-public void checkDietParse(
-	char[] source, 
-	int cursorLocation, 
-	String expectedCompletion, 
-	String expectedUnitToString, 
-	String expectedCompletionIdentifier,
-	String expectedReplacedSource,
-	String testName) {
-	this.checkDietParse(
-		source, 
-		cursorLocation, 
-		expectedCompletion,
-		null,
-		expectedUnitToString,
-		expectedCompletionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-/*
- * DietParse with completionNode check
- */
-public void checkDietParse(
-	char[] source, 
-	int cursorLocation, 
-	String expectedCompletion, 
-	String expectedParentCompletion,
-	String expectedUnitToString, 
-	String expectedCompletionIdentifier,
-	String expectedReplacedSource,
-	String testName) {
-
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	CompletionParser parser = 
-		new CompletionParser(
-			new ProblemReporter(
-				DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-				options, 
-				new DefaultProblemFactory(Locale.getDefault())));
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-	CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-
-	CompilationUnitDeclaration unit = parser.dietParse(sourceUnit, compilationResult, cursorLocation);
-
-	String computedCompletion = parser.assistNode == null 
-									? NONE
-									: parser.assistNode.toString();
-	String computedParentCompletion = parser.assistNodeParent == null 
-								? NONE
-								: parser.assistNodeParent.toString();
-	String computedUnitToString = unit.toString();
-	//System.out.println(computedUnitToString);
-	//System.out.println(Util.displayString(computedUnitToString));
-	//System.out.println(expectedUnitToString);
-	
-	if (!expectedCompletion.equals(computedCompletion)) {
-		System.out.println(Util.displayString(computedCompletion));
-	}
-	assertEquals(
-		"invalid completion node-" + testName,
-		expectedCompletion,
-		computedCompletion);
-	
-	if(expectedParentCompletion != null) {
-		if (!expectedParentCompletion.equals(computedParentCompletion)) {
-			System.out.println(Util.displayString(computedParentCompletion));
-		}
-		assertEquals(
-		"invalid completion parent node-" + testName,
-		expectedParentCompletion,
-		computedParentCompletion);
-	}
-
-	if (!expectedUnitToString.equals(computedUnitToString)) {
-		System.out.println(Util.displayString(computedUnitToString));
-	}
-	assertEquals(
-		"invalid completion tree-" + testName,
-		expectedUnitToString,
-		computedUnitToString);
-	
-	if (expectedCompletionIdentifier != null){
-		char[] chars = ((CompletionScanner)parser.scanner).completionIdentifier;
-		String computedCompletionIdentifier = chars == null ? NONE : new String(chars);
-		assertEquals(
-			"invalid completion identifier-" + testName,
-			expectedCompletionIdentifier,
-			computedCompletionIdentifier);
-	}
-	
-	if (expectedReplacedSource != null){
-		char[] chars = null;
-		if (parser.assistNode != null){
-			chars = CharOperation.subarray(
-				parser.scanner.source, 
-				parser.assistNode.sourceStart, 
-				parser.assistNode.sourceEnd + 1);
-		} else {
-			if (parser.assistIdentifier() != null){
-				if (((CompletionScanner)parser.scanner).completedIdentifierEnd 
-					>= ((CompletionScanner)parser.scanner).completedIdentifierStart){
-					chars = CharOperation.subarray(
-						parser.scanner.source, 
-						((CompletionScanner)parser.scanner).completedIdentifierStart, 
-						((CompletionScanner)parser.scanner).completedIdentifierEnd + 1);
-				}
-			}
-		}
-		String computedReplacedSource  = chars == null ? NONE : new String(chars);
-		assertEquals(
-			"invalid replaced source-" + testName,
-			expectedReplacedSource,
-			computedReplacedSource);
-	}
-}
-/*
- * Parse a method with completionNode check
- */
-public void checkMethodParse(
-		char[] source, 
-		int cursorLocation, 
-		String expectedCompletion, 
-		String expectedParentCompletion,
-		String expectedUnitToString, 
-		String expectedCompletionIdentifier, 
-		String expectedReplacedSource,
-		String[] expectedLabels,
-		String testName) {
-
-	assertTrue("bad cursor location",cursorLocation>=0);
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	CompletionParser parser = 
-		new CompletionParser(
-			new ProblemReporter(
-				DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-				options, 
-				new DefaultProblemFactory(Locale.getDefault())));
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-	CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-
-	CompilationUnitDeclaration unit = parser.dietParse(sourceUnit, compilationResult, cursorLocation);
-
-	if (Parser.DO_DIET_PARSE)
-	{
-	ASTNode foundMethod = null;
-	if (unit.types != null) {
-		for (int i = 0; i < unit.types.length; i++) {
-			TypeDeclaration type = unit.types[i];
-			ASTNode method = findMethod(type, cursorLocation);
-			if (method != null) {
-				foundMethod = method;
-				break;
-			}
-		}
-	}
-	assertTrue("no method found at cursor location", foundMethod != null);
-	if (foundMethod instanceof AbstractMethodDeclaration) {
-		parser.parseBlockStatements((AbstractMethodDeclaration)foundMethod, unit);
-	} else {
-		TypeDeclaration type = (TypeDeclaration)foundMethod;
-		if (type.fields != null) {
-			for (int i = 0; i < type.fields.length; i++) {
-				FieldDeclaration field = type.fields[i];
-				if (field.declarationSourceStart <= cursorLocation && (cursorLocation <= field.declarationSourceEnd || field.declarationSourceEnd == 0)) {
-					if (field instanceof Initializer) {
-						parser.parseBlockStatements((Initializer)field, type, unit);
-						break;
-					}
-					assertTrue("TBD", false); // field initializer
-				}
-			}
-		}
-	}
-	}
-	
-	String computedCompletion = parser.assistNode == null 
-								? NONE
-								: parser.assistNode.toString();
-	String computedParentCompletion = parser.assistNodeParent == null 
-								? NONE
-								: parser.assistNodeParent.toString();
-	String computedUnitToString = unit.toString();
-
-	if (!expectedCompletion.equals(computedCompletion)) {
-		System.out.println(Util.displayString(computedCompletion));
-	}
-	assertEquals(
-		"invalid completion node-" + testName,
-		expectedCompletion,
-		computedCompletion);
-		
-	if(expectedParentCompletion != null) {
-		if (!expectedParentCompletion.equals(computedParentCompletion)) {
-			System.out.println(Util.displayString(computedParentCompletion));
-		}
-		assertEquals(
-		"invalid completion parent node-" + testName,
-		expectedParentCompletion,
-		computedParentCompletion);
-	}
-
-	if (!expectedUnitToString.equals(computedUnitToString)) {
-		System.out.println(Util.displayString(computedUnitToString));
-	}
-	assertEquals(
-		"invalid completion location-"+testName,
-		expectedUnitToString,
-		computedUnitToString);
-
-	if (expectedCompletionIdentifier != null){
-		char[] chars = ((CompletionScanner)parser.scanner).completionIdentifier;
-		String computedCompletionIdentifier = chars == null ? NONE : new String(chars);
-		if (!expectedCompletionIdentifier.equals(computedCompletionIdentifier)) {
-			System.out.println(Util.displayString(computedCompletionIdentifier));
-		}
-		assertEquals(
-			"invalid completion identifier-" + testName,
-			expectedCompletionIdentifier,
-			computedCompletionIdentifier);
-	}
-	if (expectedReplacedSource != null){
-		char[] chars = null;
-		if (parser.assistNode != null){
-			chars = CharOperation.subarray(
-				parser.scanner.source, 
-				parser.assistNode.sourceStart, 
-				parser.assistNode.sourceEnd + 1);
-		} else {
-			if (parser.assistIdentifier() != null){
-				if (((CompletionScanner)parser.scanner).completedIdentifierEnd 
-					>= ((CompletionScanner)parser.scanner).completedIdentifierStart){
-					chars = CharOperation.subarray(
-						parser.scanner.source, 
-						((CompletionScanner)parser.scanner).completedIdentifierStart, 
-						((CompletionScanner)parser.scanner).completedIdentifierEnd + 1);
-				}
-			}
-		}
-		String computedReplacedSource  = chars == null ? NONE : new String(chars);
-		if (!expectedReplacedSource.equals(computedReplacedSource)) {
-			System.out.println(Util.displayString(computedReplacedSource));
-		}
-		assertEquals(
-			"invalid replaced source-" + testName,
-			expectedReplacedSource,
-			computedReplacedSource);
-		if (expectedReplacedSource.length() == 0) {
-			assertEquals(
-				"invalid insertion point-" + testName,
-				cursorLocation + 1, 
-				parser.assistNode.sourceStart);
-		}
-	}
-	if (expectedLabels != null) {
-//		int length = (parser.labels == null) ? 0 : parser.labels.length;
-//		assertEquals("invalid number of labels-" + testName, expectedLabels.length, length);
-//		for (int i = 0; i < length; i++) {
-//			String label = new String(parser.labels[i]);
-//			assertEquals("invalid label-" + testName, expectedLabels[i], label);
-//		}
-	}
-}
-/*
- * Parse a method with completionNode check
- */
-public void checkMethodParse(
-		char[] source, 
-		int cursorLocation, 
-		String expectedCompletion, 
-		String expectedUnitToString, 
-		String expectedCompletionIdentifier, 
-		String expectedReplacedSource, 
-		String testName) {
-
-	this.checkMethodParse(
-		source, 
-		cursorLocation, 
-		expectedCompletion,
-		null,
-		expectedUnitToString,
-		expectedCompletionIdentifier,
-		expectedReplacedSource,
-		null,
-		testName);
-}
-/*
- * Parse a method with completionNode check
- */
-public void checkMethodParse(
-		char[] source, 
-		int cursorLocation, 
-		String expectedCompletion,
-		String expectedParentCompletion, 
-		String expectedUnitToString, 
-		String expectedCompletionIdentifier, 
-		String expectedReplacedSource, 
-		String testName) {
-
-	this.checkMethodParse(
-		source, 
-		cursorLocation, 
-		expectedCompletion,
-		expectedParentCompletion,
-		expectedUnitToString,
-		expectedCompletionIdentifier,
-		expectedReplacedSource,
-		null,
-		testName);
-}
-/*
- * Parse a method with completionNode check
- */
-public void checkMethodParse(
-		char[] source, 
-		int cursorLocation, 
-		String expectedCompletion, 
-		String expectedUnitToString, 
-		String expectedCompletionIdentifier, 
-		String expectedReplacedSource,
-		String[] expectedLabels,
-		String testName) {
-		
-	this.checkMethodParse(
-		source, 
-		cursorLocation, 
-		expectedCompletion,
-		null,
-		expectedUnitToString,
-		expectedCompletionIdentifier,
-		expectedReplacedSource,
-		expectedLabels,
-		testName);
-}
-/*
- * Returns the method, the constructor or the type declaring the initializer
- * at the cursor location in the given type.
- * Returns null if not found.
- */
-private ASTNode findMethod(TypeDeclaration type, int cursorLocation) {
-	if (type.methods != null) {
-		for (int i = 0; i < type.methods.length; i++) {
-			AbstractMethodDeclaration method = type.methods[i];
-			if (method.declarationSourceStart <= cursorLocation && (cursorLocation <= method.declarationSourceEnd || method.declarationSourceEnd == 0)) {
-				return method;
-			}
-		}
-	}
-	if (type.memberTypes != null) {
-		for (int i = 0; i < type.memberTypes.length; i++) {
-			TypeDeclaration memberType = type.memberTypes[i];
-			ASTNode method = findMethod(memberType, cursorLocation);
-			if (method != null) {
-				return method;
-			}
-		}
-	}
-	if (type.fields != null) {
-		for (int i = 0; i < type.fields.length; i++) {
-			FieldDeclaration field = type.fields[i];
-			if (field instanceof Initializer && field.declarationSourceStart <= cursorLocation && (cursorLocation <= field.declarationSourceEnd || field.declarationSourceEnd == 0)) {
-				return type;
-			}
-		}
-	}
-	return null;
-}
-/**
- * Runs the given test that checks that diet completion parsing returns the given completion.
- */
-protected void runTestCheckDietParse(
-		String compilationUnit, 
-		String completeBehind, 
-		String expectedCompletionNodeToString,
-		String expectedUnitDisplayString,
-		String expectedCompletionIdentifier,
-		String expectedReplacedSource,
-		String testName) {
-			
-	int cursorLocation = compilationUnit.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		compilationUnit.toCharArray(), 
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		expectedCompletionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Runs the given test that checks that method completion parsing returns the given completion.
- */
-protected void runTestCheckMethodParse(
-		String compilationUnit, 
-		String completeBehind, 
-		String expectedCompletionNodeToString,
-		String expectedUnitDisplayString,
-		String expectedCompletionIdentifier,
-		String expectedReplacedSource,
-		String[] expectedLabels,
-		String testName) {
-			
-	int completeBehindStart = compilationUnit.indexOf(completeBehind);
-	assertTrue("completeBehind string not found", completeBehindStart >= 0);
-	int cursorLocation = completeBehindStart + completeBehind.length() - 1;
-	this.checkMethodParse(
-		compilationUnit.toCharArray(), 
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		expectedCompletionIdentifier,
-		expectedReplacedSource,
-		expectedLabels,
-		testName); 
-}
-/**
- * Runs the given test that checks that method completion parsing returns the given completion.
- */
-protected void runTestCheckMethodParse(
-		String compilationUnit, 
-		String completeBehind, 
-		String expectedCompletionNodeToString,
-		String expectedUnitDisplayString,
-		String expectedCompletionIdentifier,
-		String expectedReplacedSource,
-		String testName) {
-			
-	this.runTestCheckMethodParse(
-		compilationUnit,
-		completeBehind,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		expectedCompletionIdentifier,
-		expectedReplacedSource,
-		null,
-		testName); 
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AbstractSelectionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AbstractSelectionTest.java
deleted file mode 100644
index 405bbcd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AbstractSelectionTest.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-
-import org.eclipse.wst.jsdt.internal.codeassist.select.SelectionParser;
-import org.eclipse.wst.jsdt.internal.codeassist.select.SelectionScanner;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;
-import org.eclipse.wst.jsdt.internal.compiler.ast.Block;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.Initializer;
-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-public abstract class AbstractSelectionTest extends AbstractCompilerTest {
-
-	public final static String NONE = "<NONE>";
-public AbstractSelectionTest(String testName){
-	super(testName);
-}
-/*
- * DietParse with selectionNode check
- */
-public void checkDietParse(
-	char[] source, 
-	int selectionStart,
-	int selectionEnd,
-	String expectedSelection, 
-	String expectedUnitToString, 
-	String expectedSelectionIdentifier,
-	String expectedSelectedSource,
-	String testName) {
-
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	SelectionParser parser = 
-		new SelectionParser(
-			new ProblemReporter(
-				DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-				options, 
-				new DefaultProblemFactory(Locale.getDefault())));
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-	CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-
-	CompilationUnitDeclaration unit = parser.dietParse(sourceUnit, compilationResult, selectionStart, selectionEnd);
-
-	String computedUnitToString = unit.toString();
-	//System.out.println(computedUnitToString);
-	//System.out.println(Util.displayString(computedUnitToString));
-	//System.out.println(expectedUnitToString);
-
-	String computedSelection = parser.assistNode == null 
-									? NONE
-									: parser.assistNode.toString();
-	assertEquals(
-		"invalid selection node-" + testName,
-		expectedSelection,
-		computedSelection);
-
-	if (!expectedUnitToString.equals(computedUnitToString)) {
-		System.out.println(Util.displayString(computedUnitToString, 2));
-	}
-	assertEquals(
-		"invalid selection unit-" + testName,
-		expectedUnitToString,
-		computedUnitToString);
-	
-	if (expectedSelectionIdentifier != null){
-		char[] chars = ((SelectionScanner)parser.scanner).selectionIdentifier;
-		String computedSelectionIdentifier = chars == null ? NONE : new String(chars);
-		assertEquals(
-			"invalid selection identifier-" + testName,
-			expectedSelectionIdentifier,
-			computedSelectionIdentifier);
-	}
-	if (expectedSelectedSource != null){
-		char[] chars = null;
-		if (parser.assistNode != null){
-			chars = CharOperation.subarray(
-				parser.scanner.source, 
-				parser.assistNode.sourceStart, 
-				parser.assistNode.sourceEnd + 1);
-		} else {
-			if (parser.assistIdentifier() != null){
-				if (((SelectionScanner)parser.scanner).selectionEnd 
-					>= ((SelectionScanner)parser.scanner).selectionStart){
-					chars = CharOperation.subarray(
-						parser.scanner.source, 
-						((SelectionScanner)parser.scanner).selectionStart, 
-						((SelectionScanner)parser.scanner).selectionEnd + 1);
-				}
-			}
-		}
-		String computedSelectedSource  = chars == null ? NONE : new String(chars);
-		assertEquals(
-			"invalid replaced source-" + testName,
-			expectedSelectedSource,
-			computedSelectedSource);
-	}
-}
-/*
- * Parse a method with selectionNode check
- */
-public void checkMethodParse(
-		char[] source, 
-		int selectionStart,
-		int selectionEnd, 
-		String expectedSelection, 
-		String expectedUnitToString, 
-		String expectedSelectionIdentifier, 
-		String expectedSelectedSource,
-		String[] expectedLabels,
-		String testName) {
-
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	SelectionParser parser = 
-		new SelectionParser(
-			new ProblemReporter(
-				DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-				options, 
-				new DefaultProblemFactory(Locale.getDefault())));
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-	CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-
-	CompilationUnitDeclaration unit = parser.dietParse(sourceUnit, compilationResult, selectionStart, selectionEnd);
-
-	if (Parser.DO_DIET_PARSE)
-	{
-	ASTNode foundMethod = null;
-	if (unit.types != null) {
-		for (int i = 0; i < unit.types.length; i++) {
-			TypeDeclaration type = unit.types[i];
-			ASTNode method = findMethod(type, selectionStart);
-			if (method != null) {
-				foundMethod = method;
-				break;
-			}
-		}
-	}
-	assertTrue("no method found at cursor location", foundMethod != null);
-	if (foundMethod instanceof AbstractMethodDeclaration) {
-		parser.parseBlockStatements((AbstractMethodDeclaration)foundMethod, unit);
-	} else {
-		TypeDeclaration type = (TypeDeclaration)foundMethod;
-		if (type.fields != null) {
-			for (int i = 0; i < type.fields.length; i++) {
-				FieldDeclaration field = type.fields[i];
-				if (field instanceof Initializer && field.sourceStart <= selectionStart && selectionStart <= field.sourceEnd) {
-					parser.parseBlockStatements((Initializer)field, type, unit);
-					break;
-				}
-			}
-		}
-	}
-	}
-	String computedUnitToString = unit.toString();
-	//System.out.println(computedUnitToString);
-	//System.out.println(expectedUnitToString);	
-	
-	String computedCompletion = parser.assistNode == null 
-								? NONE
-								: parser.assistNode.toString();
-	assertEquals(
-		"invalid selection node-" + testName,
-		expectedSelection,
-		computedCompletion);
-
-	if (!expectedUnitToString.equals(computedUnitToString)) {
-		System.out.println(Util.displayString(computedUnitToString, 2));
-	}
-	assertEquals(
-		"invalid selection unit-"+testName,
-		expectedUnitToString,
-		computedUnitToString);
-
-	if (expectedSelectionIdentifier != null){
-		char[] chars = ((SelectionScanner)parser.scanner).selectionIdentifier;
-		String computedSelectionIdentifier = chars == null ? NONE : new String(chars);
-		assertEquals(
-			"invalid selection identifier-" + testName,
-			expectedSelectionIdentifier,
-			computedSelectionIdentifier);
-	}
-	if (expectedSelectedSource != null){
-		char[] chars = null;
-		if (parser.assistNode != null){
-			chars = CharOperation.subarray(
-				parser.scanner.source, 
-				parser.assistNode.sourceStart, 
-				parser.assistNode.sourceEnd + 1);
-		} else {
-			if (parser.assistIdentifier() != null){
-				if (((SelectionScanner)parser.scanner).selectionEnd 
-					>= ((SelectionScanner)parser.scanner).selectionStart){
-					chars = CharOperation.subarray(
-						parser.scanner.source, 
-						((SelectionScanner)parser.scanner).selectionStart, 
-						((SelectionScanner)parser.scanner).selectionEnd + 1);
-				}
-			}
-		}
-		String computedReplacedSource  = chars == null ? NONE : new String(chars);
-		assertEquals(
-			"invalid replaced source-" + testName,
-			expectedSelectedSource,
-			computedReplacedSource);
-	}
-	if (expectedLabels != null) {
-/*	
-		assert("no labels-" + testName, parser.labels != null);
-		int length = parser.labels.length;
-		assertEquals("invalid number of labels-" + testName, expectedLabels.length, length);
-		for (int i = 0; i < length; i++) {
-			String label = new String(parser.labels[i]);
-			assertEquals("invalid label-" + testName, expectedLabels[i], label);
-		}
-*/	
-	}
-}
-/*
- * Parse a method with selectionNode check
- */
-public void checkMethodParse(
-		char[] source, 
-		int selectionStart,
-		int selectionEnd, 		
-		String expectedSelection, 
-		String expectedUnitToString, 
-		String expectedSelectionIdentifier, 
-		String expectedSelectedSource, 
-		String testName) {
-
-	this.checkMethodParse(
-		source, 
-		selectionStart,
-		selectionEnd,
-		expectedSelection, 
-		expectedUnitToString,
-		expectedSelectionIdentifier,
-		expectedSelectedSource,
-		null,
-		testName);
-}
-/*
- * Returns the method, the constructor or the type declaring the initializer
- * at the cursor location in the given type.
- * Returns null if not found.
- */
-protected ASTNode findMethod(TypeDeclaration type, int cursorLocation) {
-	if (type.methods != null) {
-		for (int i = 0; i < type.methods.length; i++) {
-			AbstractMethodDeclaration method = type.methods[i];
-			if (method.declarationSourceStart <= cursorLocation && (cursorLocation <= method.declarationSourceEnd || method.declarationSourceEnd == 0)) {
-				return method;
-			}
-		}
-	}
-	if (type.memberTypes != null) {
-		for (int i = 0; i < type.memberTypes.length; i++) {
-			TypeDeclaration memberType = type.memberTypes[i];
-			ASTNode method = findMethod(memberType, cursorLocation);
-			if (method != null) {
-				return method;
-			}
-		}
-	}
-	if (type.fields != null) {
-		for (int i = 0; i < type.fields.length; i++) {
-			FieldDeclaration field = type.fields[i];
-			if (field instanceof Initializer) {
-				Initializer initializer = (Initializer)field;
-				Block block = initializer.block;
-				if (block != null && block.sourceStart <= cursorLocation && (cursorLocation <= block.sourceEnd || block.sourceEnd == 0)) {
-					return type;
-				}
-			}
-		}
-	}
-	return null;
-}
-/**
- * Runs the given test that checks that method completion parsing returns the given completion.
- */
-protected void runTestCheckMethodParse(
-		String compilationUnit, 
-		String selectionStartBehind,
-		String selectionEndBehind,
-		String expectedSelectionNodeToString,
-		String expectedUnitDisplayString,
-		String expectedSelectionIdentifier,
-		String expectedReplacedSource,
-		String testName) {
-
-	int selectionStartBehindStart = compilationUnit.indexOf(selectionStartBehind);
-	assertTrue("selectionStartBehind string not found", selectionStartBehindStart != -1);
-	int selectionStart = selectionStartBehindStart + selectionStartBehind.length();
-	int selectionEndBehindStart = compilationUnit.indexOf(selectionEndBehind);
-	assertTrue("selectionEndBehind string not found", selectionEndBehindStart != -1);
-	int selectionEnd = selectionEndBehindStart + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		compilationUnit.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedSelectionNodeToString,
-		expectedUnitDisplayString,
-		expectedSelectionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AllocationExpressionCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AllocationExpressionCompletionTest.java
deleted file mode 100644
index bf642bb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/AllocationExpressionCompletionTest.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be an AllocationExpression.
- */
-public class AllocationExpressionCompletionTest extends AbstractCompletionTest {
-public AllocationExpressionCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(AllocationExpressionCompletionTest.class);
-}
-/*
- * Completion inside an if statement.
- */
-public void testInIfStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		if (true) {							\n" +
-		"			new z.y.X(1, 2, i);				\n" +
-		"		}									\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnAllocationExpression:new z.y.X(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      <CompleteOnAllocationExpression:new z.y.X(1, 2)>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete inside an if statement>"
-	);
-}
-/*
- * Completion on a constructor invocation with no qualification and using a qualified type name.
- * 
- * ie. ClassInstanceCreationExpression ::= 'new' ClassType '(' ArgumentListopt ')' ClassBodyopt
- *		where ClassType is a qualified type name
- */
-public void testNoQualificationQualifiedTypeName() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		new z.y.X(1, 2, i);					\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnAllocationExpression:new z.y.X(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnAllocationExpression:new z.y.X(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on non qualified instance creation with qualified type name>"
-	);
-}
-/*
- * Completion on a constructor invocation with no qualification and using a simple type name.
- * 
- * ie. ClassInstanceCreationExpression ::= 'new' ClassType '(' ArgumentListopt ')' ClassBodyopt
- *		where ClassType is a simple type name
- */
-public void testNoQualificationSimpleTypeName() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		new X(1, 2, i);						\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnAllocationExpression:new X(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnAllocationExpression:new X(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on non qualified instance creation with simple type name>"
-	);
-}
-/*
- * Completion on a constructor invocation qualified with a name.
- * 
- * ie. ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testQualifiedWithName() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {\n" + 
-		"	void foo() {							\n" +
-		"		Buz.x.new X(1, 2, i);				\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnQualifiedAllocationExpression:Buz.x.new X(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnQualifiedAllocationExpression:Buz.x.new X(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on name qualified instance creation>"
-	);
-}
-/*
- * Completion on a constructor invocation qualified with a primary.
- * 
- * ie. ClassInstanceCreationExpression ::= Primary '.' 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testQualifiedWithPrimary() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		primary().new X(1, 2, i);			\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnQualifiedAllocationExpression:primary().new X(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnQualifiedAllocationExpression:primary().new X(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on primary qualified instance creation>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ClassLiteralAccessCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ClassLiteralAccessCompletionTest.java
deleted file mode 100644
index a0bf291..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ClassLiteralAccessCompletionTest.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be a ClassLiteralAccess.
- */
-public class ClassLiteralAccessCompletionTest extends AbstractCompletionTest {
-public ClassLiteralAccessCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(ClassLiteralAccessCompletionTest.class);
-}
-/*
- * Completion on the keyword 'class' on an array type
- */
-public void testArrayType() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		String[].;									\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"String[].",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClassLiteralAccess:String[].>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnClassLiteralAccess:String[].>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"String[].",
-		// test name
-		"<complete on array type member>"
-	);
-}
-/*
- * Test access to the keyword 'class' on an array type
- * where the keyword is non empty.
- */
-public void testArrayTypeWithNonEmptyIdentifier() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		String[].class;								\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"String[].cl",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClassLiteralAccess:String[].cl>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnClassLiteralAccess:String[].cl>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"cl",
-		// expectedReplacedSource:
-		"String[].class",
-		// test name
-		"<complete on array type member with non empty identifier>"
-	);
-}
-/*
- * Completion on the keyword 'class' on a primitive array type
- */
-public void testPrimitiveArrayType() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		int[].;										\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"int[].",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClassLiteralAccess:int[].>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnClassLiteralAccess:int[].>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"int[].",
-		// test name
-		"<complete on primitive array type member>"
-	);
-}
-/*
- * Completion on the keyword 'class' on a primitive array type where the
- * keyword is non empty
- */
-public void testPrimitiveArrayTypeWithNonEmptyIdentifier() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		int[].class;								\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"int[].cl",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClassLiteralAccess:int[].cl>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnClassLiteralAccess:int[].cl>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"cl",
-		// expectedReplacedSource:
-		"int[].class",
-		// test name
-		"<complete on primitive array type member with non empty identifier>"
-	);
-}
-/*
- * Completion on the keyword 'class' on a primitive type
- */
-public void testPrimitiveType() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		int.;										\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"int.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClassLiteralAccess:int.>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnClassLiteralAccess:int.>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"int.",
-		// test name
-		"<complete on primitive type member>"
-	);
-}
-/*
- * Completion on the keyword 'class' on a primitive type where the
- * keyword is non empty
- */
-public void testPrimitiveTypeWithNonEmptyIdentifier() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		int.class;									\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"int.cl",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClassLiteralAccess:int.cl>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnClassLiteralAccess:int.cl>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"cl",
-		// expectedReplacedSource:
-		"int.class",
-		// test name
-		"<complete on primitive type member with non empty identifier>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest.java
deleted file mode 100644
index 3e3f3ce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest.java
+++ /dev/null
@@ -1,8713 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.codeassist.complete.*;
-
-public class CompletionParserTest extends AbstractCompletionTest {
-public CompletionParserTest(String testName) {
-	super(testName);
-}
-static {
-//	TESTS_NAMES = new String[] { "testXA_1FGGUQF_1FHSL8H_1" };
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(CompletionParserTest.class);
-}
-public void testA() {
-	String str =
-		"	function foo(){\n" + 
-		"		var i;\n" + 
-		"		if (i instanceof O) {\n" + 
-		"		}\n" + 
-		"		var s = \"hello\";\n" + 
-		"		s.}\n" + 
-		"\n";
-
-	String testName = "<complete on methods/fields>";
-	String completeBehind = "s.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:s.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var i;\n" + 
-		"  if ((i instanceof O))\n" + 
-		"      {\n" + 
-		"      }\n" + 
-		"  var s = \"hello\";\n" + 
-		"  <CompleteOnMemberAccess:s.>;\n" + 
-		"}" + 
-		"\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testAA_1() {
-	String str = 
-			"	function foo() {\n" + 
-			"		var maxUnits = 0;\n" + 
-			"			var unitResult = \n" + 
-			"				new CompilationUnitResult(\n" + 
-			"					null, \n" + 
-			"					i, \n" + 
-			"					maxUnits); \n" + 
-			"	}" + 
-			"}\n";
-
-	String completeBehind = "n";
-	String expectedCompletionNodeToString = "<CompleteOnName:n>";
-	String completionIdentifier = "n";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var maxUnits = 0;\n" + 
-		"  var unitResult = <CompleteOnName:n>;\n" + 
-		"  CompilationUnitResult(null, i, maxUnits);\n"+
-		"}\n";
-	String expectedReplacedSource = "new";
-	String testName = "<complete on initializer (new)>";
-
-	int cursorLocation = str.indexOf("new CompilationUnitResult(") + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-public void testAA_2() {
-	String str =
-		"// test unicode \\u000a var c = 1; \n" +
-		"var b =c; \n";
-	String testName = "<unicode in comment complete on variable>";
-	String expectedCompletionNodeToString = "<CompleteOnName:c>";
-	String completionIdentifier = "c";
-	String expectedReplacedSource = "c";
-	int cursorLocation = str.indexOf("var b =c") -1 /*+ completeBehind.length() - 1*/;
-	String expectedUnitDisplayString =
-		"// test unicode \\u000a var c = 1; \n" +
-		"var b = <CompleteOnName:c>;\n";
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-//public void testAA_3() {
-//	String str =
-//		"'abc\\u0027def';\n";
-//	String testName = "<unicode in comment complete on variable>";
-//	String expectedCompletionNodeToString = "<CompleteOnName:c>";
-//	String completionIdentifier = "c";
-//	String expectedReplacedSource = "c";
-//	int cursorLocation = str.indexOf("var b =") -1 /*+ completeBehind.length() - 1*/;
-//	String expectedUnitDisplayString =
-//		"'abc\\u0027def';\n";
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-
-//public void testAA_3() {
-//	String str = 
-//			"package p; \n" + 
-//			"import something; \n" + 
-//			"import p2.; \n" + 
-//			"public class AA {\n" + 
-//			"	void foo() {\n" + 
-//			"		int maxUnits = 0;\n" + 
-//			"		for (int i = 0; \n" + 
-//			"			i < maxUnits; \n" + 
-//			"			i++) {\n" + 
-//			"			CompilationUnitResult unitResult = \n" + 
-//			"				new CompilationUnitResult(\n" + 
-//			"					null, \n" + 
-//			"					i, \n" + 
-//			"					maxUnits); \n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on call to constructor argument>";
-//	String completeBehind = "i";
-//	String expectedCompletionNodeToString = "<CompleteOnName:i>";
-//	String completionIdentifier = "i";
-//	String expectedReplacedSource = "i";
-//	int cursorLocation = str.indexOf("i, ") + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"import something;\n" + 
-//		"public class AA {\n" + 
-//		"  public AA() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    int maxUnits;\n" + 
-//		"    int i;\n" + 
-//		"    {\n" + 
-//		"      CompilationUnitResult unitResult = new CompilationUnitResult(null, <CompleteOnName:i>);\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//public void testAA_4() {
-//	String str = 
-//			"package p; \n" + 
-//			"import something; \n" + 
-//			"import p2.; \n" + 
-//			"public class AA {\n" + 
-//			"	void foo() {\n" + 
-//			"		int maxUnits = 0;\n" + 
-//			"		for (int i = 0; \n" + 
-//			"			i < maxUnits; \n" + 
-//			"			i++) {\n" + 
-//			"			CompilationUnitResult unitResult = \n" + 
-//			"				new CompilationUnitResult(\n" + 
-//			"					null, \n" + 
-//			"					i, \n" + 
-//			"					maxUnits); \n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on constructor call argument>";
-//	String completeBehind = "max";
-//	String expectedCompletionNodeToString = "<CompleteOnName:max>";
-//	String completionIdentifier = "max";
-//	String expectedReplacedSource = "maxUnits";
-//	int cursorLocation = str.indexOf("maxUnits); ") + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"import something;\n" + 
-//		"public class AA {\n" + 
-//		"  public AA() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    int maxUnits;\n" + 
-//		"    int i;\n" + 
-//		"    {\n" + 
-//		"      CompilationUnitResult unitResult = new CompilationUnitResult(null, i, <CompleteOnName:max>);\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//public void testAB_1FHU9LU() {
-//	String str = 
-//			"package p; \n" + 
-//			"/**\n" + 
-//			" * 1FHU9LU\n" + 
-//			" */\n" + 
-//			"class SuperClass {\n" + 
-//			"	static void eFooStatic() {\n" + 
-//			"	}\n" + 
-//			"	void eFoo() {\n" + 
-//			"	}\n" + 
-//			"}\n" + 
-//			"public class AB\n" + 
-//			"	extends SuperClass {\n" + 
-//			"	void eBar() {\n" + 
-//			"		super.eFoo();\n" + 
-//			"	}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on methods/fields from super class>";
-//	String completeBehind = "super.";
-//	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:super.>";
-//	String completionIdentifier = "";
-//	String expectedReplacedSource = "super.";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"class SuperClass {\n" + 
-//		"  SuperClass() {\n" + 
-//		"  }\n" + 
-//		"  static void eFooStatic() {\n" + 
-//		"  }\n" + 
-//		"  void eFoo() {\n" + 
-//		"  }\n" + 
-//		"}\n" + 
-//		"public class AB extends SuperClass {\n" + 
-//		"  public AB() {\n" + 
-//		"  }\n" + 
-//		"  void eBar() {\n" + 
-//		"    <CompleteOnMemberAccess:super.>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//public void testAC_1FJ8D9Z_1() {
-//	String str = 
-//			"package p; \n" + 
-//			"/**\n" + 
-//			" * 1FJ8D9Z\n" + 
-//			" */\n" + 
-//			"import java.io.*;\n" + 
-//			"public class AC {\n" + 
-//			"	AC() {\n" + 
-//			"	}\n" + 
-//			"	AC(int i) {\n" + 
-//			"	}\n" + 
-//			"	AC(int i, String s) {\n" + 
-//			"	}\n" + 
-//			"	void foo() {\n" + 
-//			"		new AC(new File(\n" + 
-//			"			new java\n" + 
-//			"			.util\n" + 
-//			"			.Vector(}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on constructor argument>";
-//	String completeBehind = "new AC(";
-//	String expectedCompletionNodeToString = "<CompleteOnAllocationExpression:new AC()>";
-//	String completionIdentifier = "";
-//	String expectedReplacedSource = "";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"import java.io.*;\n" + 
-//		"public class AC {\n" + 
-//		"  AC() {\n" + 
-//		"  }\n" + 
-//		"  AC(int i) {\n" + 
-//		"  }\n" + 
-//		"  AC(int i, String s) {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    <CompleteOnAllocationExpression:new AC()>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//public void testAC_1FJ8D9Z_2() {
-//	String str = 
-//			"package p; \n" + 
-//			"/**\n" + 
-//			" * 1FJ8D9Z\n" + 
-//			" */\n" + 
-//			"import java.io.*;\n" + 
-//			"public class AC {\n" + 
-//			"	AC() {\n" + 
-//			"	}\n" + 
-//			"	AC(int i) {\n" + 
-//			"	}\n" + 
-//			"	AC(int i, String s) {\n" + 
-//			"	}\n" + 
-//			"	void foo() {\n" + 
-//			"		new AC(new File(\n" + 
-//			"			new java\n" + 
-//			"			.util\n" + 
-//			"			.Vector(}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on constructor argument>";
-//	String completeBehind = "new File(";
-//	String expectedCompletionNodeToString = "<CompleteOnAllocationExpression:new File()>";
-//	String completionIdentifier = "";
-//	String expectedReplacedSource = "";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"import java.io.*;\n" + 
-//		"public class AC {\n" + 
-//		"  AC() {\n" + 
-//		"  }\n" + 
-//		"  AC(int i) {\n" + 
-//		"  }\n" + 
-//		"  AC(int i, String s) {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    <CompleteOnAllocationExpression:new File()>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//public void testAC_1FJ8D9Z_3() {
-//	String str = 
-//			"package p; \n" + 
-//			"/**\n" + 
-//			" * 1FJ8D9Z\n" + 
-//			" */\n" + 
-//			"import java.io.*;\n" + 
-//			"public class AC {\n" + 
-//			"	AC() {\n" + 
-//			"	}\n" + 
-//			"	AC(int i) {\n" + 
-//			"	}\n" + 
-//			"	AC(int i, String s) {\n" + 
-//			"	}\n" + 
-//			"	void foo() {\n" + 
-//			"		new AC(new File(\n" + 
-//			"			new java.util.Vector(}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on constructor argument>";
-//	String completeBehind = "new java.util.Vector(";
-//	String expectedCompletionNodeToString = "<CompleteOnAllocationExpression:new java.util.Vector()>";
-//	String completionIdentifier = "";
-//	String expectedReplacedSource = "";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"import java.io.*;\n" + 
-//		"public class AC {\n" + 
-//		"  AC() {\n" + 
-//		"  }\n" + 
-//		"  AC(int i) {\n" + 
-//		"  }\n" + 
-//		"  AC(int i, String s) {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    <CompleteOnAllocationExpression:new java.util.Vector()>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-public void testB() {
-	String str = 
-		"function B() {\n" + 
-		"	var o = new Object \n}\n";
-
-	String testName = "<complete on type into type creation>";
-	String completeBehind = "new Object";
-	String expectedCompletionNodeToString = "<CompleteOnName:Object>";
-	String completionIdentifier = "Object";
-	String expectedReplacedSource = "Object";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"function B() {\n" + 
-		"  var o = new   <CompleteOnType:Object>;\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-//public void testBA_1() {
-//	String str = 
-//			"package p; \n" + 
-//			"public class BA {\n" + 
-//			"	void foo() {\n" + 
-//			"		java.util.Vector v2;\n" + 
-//			"		java.util.Vector v1;\n" + 
-//			"	}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on package name>";
-//	String completeBehind = "java.";
-//	String expectedCompletionNodeToString = "<CompleteOnName:java.>";
-//	String completionIdentifier = "";
-//	String expectedReplacedSource = "java.";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"public class BA {\n" + 
-//		"  public BA() {\n" + 
-//
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    <CompleteOnName:java.>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//public void testBA_2() {
-//	String str = 
-//			"package p; \n" + 
-//			"public class BA {\n" + 
-//			"	void foo() {\n" + 
-//			"		java.util.Vector v2;\n" + 
-//			"		java.util.Vector v1;\n" + 
-//			"	}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on package contents>";
-//	String completeBehind = "java.util.";
-//	String expectedCompletionNodeToString = "<CompleteOnName:java.util.>";
-//	String completionIdentifier = "";
-//	String expectedReplacedSource = "java.util.";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"public class BA {\n" + 
-//		"  public BA() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    <CompleteOnName:java.util.>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-public void testBB_1FHJ8H9() {
-	String str = 
-			"function bar() {\n" + 
-			"		z }\n" + 
-			"\n";
-
-	String testName = "<complete on method/field from implicit method call>";
-	String completeBehind = "z";
-	String expectedCompletionNodeToString = "<CompleteOnName:z>";
-	String completionIdentifier = "z";
-	String expectedReplacedSource = "z";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"function bar() {\n" + 
-		"  <CompleteOnName:z>;\n" + 
-		"}" + 
-		"\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-//public void testBC_1FJ4GSG_1() {
-//	String str = 
-//			"package p; \n" + 
-//			"/**\n" + 
-//			" * 1FJ4GSG\n" + 
-//			" */\n" + 
-//			"import java.util.Vector;\n" + 
-//			"public class BC {\n" + 
-//			"	int Value1 = 0;\n" + 
-//			"	interface Constants {\n" + 
-//			"		int OK = 1;\n" + 
-//			"		int CANCEL = 2;\n" + 
-//			"	}\n" + 
-//			"	void foo() {\n" + 
-//			"		Vector v = \n" + 
-//			"			new Vector(\n" + 
-//			"				Value1, \n" + 
-//			"				BC.Constants.OK\n" + 
-//			"					| BC.Constants.CANCEL); \n" + 
-//			"		Object ans = v.elementAt(1);\n" + 
-//			"	}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on member type>";
-//	String completeBehind = "BC.";
-//	String expectedCompletionNodeToString = "<CompleteOnName:BC.>";
-//	String completionIdentifier = "";
-//	String expectedReplacedSource = "BC.";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"import java.util.Vector;\n" + 
-//		"public class BC {\n" + 
-//		"  interface Constants {\n" + 
-//		"    int OK;\n" + 
-//		"    int CANCEL;\n" + 
-//		"    <clinit>() {\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"  int Value1;\n" + 
-//		"  public BC() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    Vector v = new Vector(Value1, <CompleteOnName:BC.>);\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//public void testBC_1FJ4GSG_2() {
-//	String str = 
-//			"package p; \n" + 
-//			"/**\n" + 
-//			" * 1FJ4GSG\n" + 
-//			" */\n" + 
-//			"import java.util.Vector;\n" + 
-//			"public class BC {\n" + 
-//			"	int Value1 = 0;\n" + 
-//			"	interface Constants {\n" + 
-//			"		int OK = 1;\n" + 
-//			"		int CANCEL = 2;\n" + 
-//			"	}\n" + 
-//			"	void foo() {\n" + 
-//			"		Vector v = \n" + 
-//			"			new Vector(\n" + 
-//			"				Value1, \n" + 
-//			"				BC.Constants.OK\n" + 
-//			"					| BC.Constants.CANCEL); \n" + 
-//			"		Object ans = v.elementAt(1);\n" + 
-//			"	}\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on member type method/field>";
-//	String completeBehind = "| BC.Constants.";
-//	String expectedCompletionNodeToString = "<CompleteOnName:BC.Constants.>";
-//	String completionIdentifier = "";
-//	String expectedReplacedSource = "BC.Constants.";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"import java.util.Vector;\n" + 
-//		"public class BC {\n" + 
-//		"  interface Constants {\n" + 
-//		"    int OK;\n" + 
-//		"    int CANCEL;\n" + 
-//		"    <clinit>() {\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"  int Value1;\n" + 
-//		"  public BC() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    Vector v = (BC.Constants.OK | <CompleteOnName:BC.Constants.>);\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-public void testMsgSend() {
-	String str = 
-		"  function foo() {\n"+
-		"    var removed = 0;\n"+
-		"    toto(Test.vvv).titi(removed);\n"+
-		"  }\n";
-
-	String testName = "<complete on method call>";
-	String completeBehind = "removed";
-	String expectedCompletionNodeToString = "<CompleteOnName:removed>";
-	String completionIdentifier = "removed";
-	String expectedReplacedSource = "removed";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var removed = 0;\n" + 
-		"  toto(Test.vvv).titi(<CompleteOnName:removed>);\n" + 
-		"}" + 
-		"\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-public void testMsgSend2() {
-	String str = 
-		"    abc.titi();\n"+
-		"";
-
-	String testName = "<complete on method call 2>";
-	String completeBehind = "titi";
-	String expectedCompletionNodeToString = "<CompleteOnMessageSend:abc.titi()>";
-	String completionIdentifier = "titi";
-	String expectedReplacedSource = "titi()";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"<CompleteOnMessageSend:abc.titi()>;" + 
-		"\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-public void testMsgSend3() {
-	String str = 
-		"  function foo() {\n"+
-		"    var removed = 0;\n"+
-		"    toto(Test.vvv).titi(removed);\n"+
-		"  }\n";
-
-	String testName = "<complete on method call 3>";
-	String completeBehind = "titi";
-	String expectedCompletionNodeToString = "<CompleteOnMessageSend:toto(Test.vvv).titi(removed)>";
-	String completionIdentifier = "titi";
-	String expectedReplacedSource = "titi(removed)";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var removed = 0;\n" + 
-		"  <CompleteOnMessageSend:toto(Test.vvv).titi(removed)>;\n" + 
-		"}" + 
-		"\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-
-public void testBC_1FJ4GSG_3() {
-	String str = 
-			"	function foo() {\n" + 
-			"		var v = \n" + 
-			"			new Vector();\n" + 
-			"		var ans = v.elementAt(1);\n" + 
-			"	}\n" + 
-			"\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "v.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:v.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "v.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var v = new   Vector();\n" + 
-		"  var ans = <CompleteOnMemberAccess:v.>;\n" + 
-		"}" + 
-		"\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-
-public void testC() {
-	String str = 
-		"function foo() {\n" + 
-		"		var string = n;\n" + 
-		"	}\n" + 
-		"\n";
-
-	String completeBehind = "= n";
-	String expectedCompletionNodeToString = "<CompleteOnName:n>";
-	String completionIdentifier = "n";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var string = <CompleteOnName:n>;\n" + 
-		"}\n";
-	String expectedReplacedSource = "n";
-	String testName = "<complete on local variable initializer>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testCA_1FGPJQZ() {
-	String str = 
-			"	function moo() {\n" + 
-			"		unknownField.}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "unknownField.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:unknownField.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	String expectedUnitDisplayString =
-		"function moo() {\n" + 
-		"  <CompleteOnMemberAccess:unknownField.>;\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testCB_1FHSKQ9_1() {
-	String str = 
-			"	function foo() {\n" + 
-			"		var i = 0;\n" + 
-			"		var tab1 = 0;\n" + 
-			"		System.out.println(\n" + 
-			"			\" \" + (i + 1)); \n" + 
-			"}\n";
-
-	String testName = "<complete on method call argument>";
-	String completeBehind = "+ (i";
-	String expectedCompletionNodeToString = "<CompleteOnName:i>";
-	String completionIdentifier = "i";
-	String expectedReplacedSource = "i";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var i = 0;\n" + 
-		"  var tab1 = 0;\n" + 
-		"  System.out.println((\" \" + (<CompleteOnName:i> + 1)));\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testCB_1FHSKQ9_2() {
-	String str = 
-			"	function foo() {\n" + 
-			"		var i = 0;\n" + 
-			"		System.out.println(\n" + 
-			"			\" \" + (i + 1)); \n" + 
-			"}\n";
-
-	String completeBehind = "i + 1";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = null;
-	String expectedReplacedSource = NONE;
-	String testName = "<complete on digit into method call argument>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-
-	try {
-		checkMethodParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName); 
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_NUMBER);
-	}
-}
-//public void testCC_1FJ64I9() {
-//	String str = 
-//			"package p; \n" + 
-//			"/**\n" + 
-//			" * 1FJ64I9\n" + 
-//			" */\n" + 
-//			"class CCHelper {\n" + 
-//			"	class Member1 {\n" + 
-//			"	}\n" + 
-//			"	class Member2 {\n" + 
-//			"	}\n" + 
-//			"	void foo() {\n" + 
-//			"	}\n" + 
-//			"}\n" + 
-//			"public class CC {\n" + 
-//			"	void foo() {\n" + 
-//			"		new CCHelper()\n" + 
-//			"			.new CCHelper()\n" + 
-//			"			.new M }\n" + 
-//			"}\n";
-//
-//	String testName = "<complete on qualified member type>";
-//	String completeBehind = ".new M";
-//	String expectedCompletionNodeToString = "<CompleteOnType:M>";
-//	String completionIdentifier = "M";
-//	String expectedReplacedSource = "M";
-//	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"class CCHelper {\n" + 
-//		"  class Member1 {\n" + 
-//		"    Member1() {\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"  class Member2 {\n" + 
-//		"    Member2() {\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"  CCHelper() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"  }\n" + 
-//		"}\n" + 
-//		"public class CC {\n" + 
-//		"  public CC() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    new CCHelper().new CCHelper().new <CompleteOnType:M>();\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//public void testD_1() {
-//	String str = 
-//		"package p; \n" + 
-//		"import java.util.*;\n" + 
-//		"public class D {\n" + 
-//		"	static int i;\n" + 
-//		"	static {\n" + 
-//		"		i = 5;\n" + 
-//		"	}\n" + 
-//		"	public int j;\n" + 
-//		"	Vector a = new Vector();\n" + 
-//		"	void foo(String s) {\n" + 
-//		"		String string = null;\n" + 
-//		"		int soso;\n" + 
-//		"		float f;\n" + 
-//		"		string.regionMatches(\n" + 
-//		"			0, \n" + 
-//		"			\"\", \n" + 
-//		"			0, \n" + 
-//		"			0); \n" + 
-//		"	}\n" + 
-//		"}\n";
-//
-//	String testName = "<complete on variable into type initializer>";
-//	String completeBehind = "i";
-//	String expectedCompletionNodeToString = "<CompleteOnName:i>";
-//	String completionIdentifier = "i";
-//	String expectedReplacedSource = "i";
-//	int cursorLocation = str.indexOf("i = 5;") + completeBehind.length() - 1;
-//	String expectedUnitDisplayString =
-//		"package p;\n" + 
-//		"import java.util.*;\n" + 
-//		"public class D {\n" + 
-//		"  static int i;\n" + 
-//		"  static {\n" + 
-//		"    <CompleteOnName:i>;\n" + 
-//		"  }\n" + 
-//		"  public int j;\n" + 
-//		"  Vector a;\n" + 
-//		"  <clinit>() {\n" + 
-//		"  }\n" + 
-//		"  public D() {\n" + 
-//		"  }\n" + 
-//		"  void foo(String s) {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//
-//	checkMethodParse(
-//		str.toCharArray(), 
-//		cursorLocation, 
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-public void testD_2() {
-	String str = 
-		"	var a = new Vector();\n" + 
-		"	function foo(s) {\n" + 
-		"		var string = null;\n" + 
-		"		var soso;\n" + 
-		"		var f;\n" + 
-		"		string.regionMatches(\n" + 
-		"			0, \n" + 
-		"			\"\", \n" + 
-		"			0, \n" + 
-		"			0); \n" + 
-		"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "string.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:string.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "string.";
-	String expectedUnitDisplayString =
-		"var a = new Vector();\n" + 
-		"function foo(s) {\n" + 
-		"  var string = null;\n" + 
-		"  var soso;\n" + 
-		"  var f;\n" + 
-		"  <CompleteOnMemberAccess:string.>;\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testD_2b() {
-	String str = 
-		"	function foo(s) {\n" + 
-		"		foo(string.regionMatches);\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "string.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:string.>";
-	String completionIdentifier = "string.";
-	String expectedReplacedSource = "regionMatches";
-	String expectedUnitDisplayString =
-		"function foo(s) {\n" + 
-		"  foo(<CompleteOnMemberAccess:string.>);\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testD_2c() {
-	String str = 
-		"	var obj= {\n" + 
-		"	a: string.regionMatches\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "string.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:string.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "regionMatches";
-	String expectedUnitDisplayString =
-		"var obj = {\n" + 
-		"  a : <CompleteOnMemberAccess:string.>\n" + 
-		"};\n";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-public void testDA_1() {
-	String str = 
-			"package p; \n" + 
-			"public class DA {\n" + 
-			"	void foo() {\n" + 
-			"		new TestCase(\"error\") {\n" + 
-			"			protected void runTest() {\n" + 
-			"				Vector v11111 = new Vector();\n" + 
-			"				v }\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field into anonymous declaration>";
-	String completeBehind = "v";
-	String expectedCompletionNodeToString = "<CompleteOnName:v>";
-	String completionIdentifier = "v";
-	String expectedReplacedSource = "v";
-	int cursorLocation = str.indexOf("v }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class DA {\n" + 
-		"  public DA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new TestCase(\"error\") {\n" + 
-		"      () {\n" + 
-		"      }\n" + 
-		"      protected void runTest() {\n" + 
-		"        Vector v11111;\n" + 
-		"        <CompleteOnName:v>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testDA_2() {
-	String str = 
-			"package p; \n" + 
-			"public class DA {\n" + 
-			"	void foo() {\n" + 
-			"		new TestCase(\"error\") {\n" + 
-			"			protected void runTest() {\n" + 
-			"				Vector v11111 = new Vector();\n" + 
-			"				v }\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String completeBehind = "protected v";
-	String expectedCompletionNodeToString = "<CompleteOnType:v>";
-	String completionIdentifier = "v";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class DA {\n" + 
-		"  public DA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new TestCase(\"error\") {\n" + 
-		"      <CompleteOnType:v>;\n" + 
-		"      () {\n" + 
-		"      }\n" + 
-		"      runTest() {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "void";
-	String testName = "<complete on return type into anonymous declaration>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testDA_3() {
-	String str = 
-			"package p; \n" + 
-			"public class DA {\n" + 
-			"	void foo() {\n" + 
-			"		new TestCase(\"error\") {\n" + 
-			"			protected void runTest() {\n" + 
-			"				Vector v11111 = new Vector();\n" + 
-			"				v }\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method selector into anonymous declaration>";
-	String completeBehind = "r";
-	String expectedCompletionNodeToString = "<CompleteOnFieldName:void r>;";
-	String completionIdentifier = "r";
-	String expectedReplacedSource = "runTest";
-	int cursorLocation = str.indexOf("runTest") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class DA {\n" + 
-		"  public DA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new TestCase(\"error\") {\n" + 
-		"      <CompleteOnFieldName:void r>;\n" + 
-		"      {\n" + 
-		"      }\n" + 
-		"      () {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testDA_4() {
-	String str = 
-			"package p; \n" + 
-			"public class DA {\n" + 
-			"	void foo() {\n" + 
-			"		new TestCase(\"error\") {\n" + 
-			"			protected void runTest() {\n" + 
-			"				Vector v11111 = new Vector();\n" + 
-			"				v }\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable type into anonymous declaration>";
-	String completeBehind = "V";
-	String expectedCompletionNodeToString = "<CompleteOnName:V>";
-	String completionIdentifier = "V";
-	String expectedReplacedSource = "Vector";
-	int cursorLocation = str.indexOf("Vector v11111") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class DA {\n" + 
-		"  public DA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new TestCase(\"error\") {\n" + 
-		"      () {\n" + 
-		"      }\n" + 
-		"      protected void runTest() {\n" + 
-		"        <CompleteOnName:V>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testDA_5() {
-	String str = 
-			"package p; \n" + 
-			"public class DA {\n" + 
-			"	void foo() {\n" + 
-			"		new TestCase(\"error\") {\n" + 
-			"			protected void runTest() {\n" + 
-			"				Vector v11111 = new Vector();\n" + 
-			"				v }\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on local type into anonymous declaration>";
-	String completeBehind = "v";
-	String expectedCompletionNodeToString = "<CompleteOnName:v>";
-	String completionIdentifier = "v";
-	String expectedReplacedSource = "v";
-	int cursorLocation = str.indexOf("v }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class DA {\n" + 
-		"  public DA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new TestCase(\"error\") {\n" + 
-		"      () {\n" + 
-		"      }\n" + 
-		"      protected void runTest() {\n" + 
-		"        Vector v11111;\n" + 
-		"        <CompleteOnName:v>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testDB_1FHSLDR() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHSLDR\n" + 
-			" */\n" + 
-			"public class DB {\n" + 
-			"	void foo() {\n" + 
-			"		try {\n" + 
-			"			System.out.println(\"\");\n" + 
-			"		}\n" + 
-			"		fi }\n" + 
-			"}\n";
-
-	String testName = "<complete on finally keyword>";
-	String completeBehind = "fi";
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fi>";
-	String completionIdentifier = "fi";
-	String expectedReplacedSource = "fi";
-	int cursorLocation = str.indexOf("fi }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class DB {\n" + 
-		"  public DB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnKeyword:fi>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testDC_1FJJ0JR_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FJJ0JR\n" + 
-			" */\n" + 
-			"public class DC\n" + 
-			"	extends ModelChangeOperation {\n" + 
-			"	ISec public SetSecondarySourceOperation(\n" + 
-			"		ISecondarySourceContainer element, \n" + 
-			"		VersionID id) {\n" + 
-			"	}\n" + 
-			"	protected abstract void doExecute(IProgressMonitor monitor)\n" + 
-			"		throws OperationFailedException {\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method return type>";
-	String completeBehind = "ISec";
-	String expectedCompletionNodeToString = "<CompleteOnType:ISec>";
-	String completionIdentifier = "ISec";
-	String expectedReplacedSource = "ISec";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class DC extends ModelChangeOperation {\n" + 
-		"  <CompleteOnType:ISec>;\n" + 
-		"  public DC() {\n" + 
-		"  }\n" + 
-		"  public SetSecondarySourceOperation(ISecondarySourceContainer element, VersionID id) {\n" + 
-		"  }\n" + 
-		"  protected abstract void doExecute(IProgressMonitor monitor) throws OperationFailedException;\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testE_1FG1YDS_1() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FG1YDS\n" + 
-		" */\n" + 
-		"public class E {\n" + 
-		"	{\n" + 
-		"		new Y()\n" + 
-		"	 }\n" + 
-		"	{\n" + 
-		"		new Y().}\n" + 
-		"	class Y\n" + 
-		"		extends java.util.Vector {\n" + 
-		"		void foo() {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on type into type creation>";
-	String completeBehind = "Y";
-	String expectedCompletionNodeToString = "<CompleteOnType:Y>";
-	String completionIdentifier = "Y";
-	String expectedReplacedSource = "Y";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class E {\n" + 
-		"  class Y extends java.util.Vector {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"    new <CompleteOnType:Y>();\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public E() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf("Y()\n") + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testE_1FG1YDS_2() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FG1YDS\n" + 
-		" */\n" + 
-		"public class E {\n" + 
-		"	{\n" + 
-		"		new Y()\n" + 
-		"	 }\n" + 
-		"	{\n" + 
-		"		new Y().}\n" + 
-		"	class Y\n" + 
-		"		extends java.util.Vector {\n" + 
-		"		void foo() {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on implicit method call into intializer>";
-	String completeBehind = "new Y().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new Y().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class E {\n" + 
-		"  class Y extends java.util.Vector {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"    <CompleteOnMemberAccess:new Y().>;\n" + 
-		"  }\n" + 
-		"  public E() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testE_1FG1YDS_3() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FG1YDS\n" + 
-		" */\n" + 
-		"public class E {\n" + 
-		"	{\n" + 
-		"		new Y()\n" + 
-		"	 }\n" + 
-		"	{\n" + 
-		"		new Y().}\n" + 
-		"	class Y\n" + 
-		"		extends java.util.Vector {\n" + 
-		"		void foo() {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on extend type>";
-	String completeBehind = "java.util.";
-	String expectedCompletionNodeToString = "<CompleteOnClass:java.util.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "java.util.Vector";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class E {\n" + 
-		"  class Y extends <CompleteOnClass:java.util.> {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public E() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testEA_1() {
-	String str = 
-			"package p; \n" + 
-			"public class EA {\n" + 
-			"	void foo() {\n" + 
-			"		try {\n" + 
-			"			throw new Error();\n" + 
-			"		} catch (Exception eeee) {\n" + 
-			"			eeee.}\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on catch block exception type declaration>";
-	String completeBehind = "E";
-	String expectedCompletionNodeToString = "<CompleteOnException:E>";
-	String completionIdentifier = "E";
-	String expectedReplacedSource = "Exception";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class EA {\n" + 
-		"  public EA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnException:E>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf("Exception eeee") + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testEA_2() {
-	String str = 
-			"package p; \n" + 
-			"public class EA {\n" + 
-			"	void foo() {\n" + 
-			"		try {\n" + 
-			"			throw new Error();\n" + 
-			"		} catch (Exception eeee) {\n" + 
-			"			eeee.}\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of thrown exception into catch block>";
-	String completeBehind = "eeee.";
-	String expectedCompletionNodeToString = "<CompleteOnName:eeee.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "eeee.";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class EA {\n" + 
-		"  public EA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      Exception eeee;\n" + 
-		"      <CompleteOnName:eeee.>;\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testEB_1FI74S3() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FI74S3\n" + 
-			" */\n" + 
-			"public class EB {\n" + 
-			"	int[] table;\n" + 
-			"	void foo() {\n" + 
-			"		int x = table.}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array>";
-	String completeBehind = "table.";
-	String expectedCompletionNodeToString = "<CompleteOnName:table.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "table.";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class EB {\n" + 
-		"  int[] table;\n" + 
-		"  public EB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x = <CompleteOnName:table.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testEC_1FSBZ2Y() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FSBZ2Y\n" + 
-			" */\n" + 
-			"class EC {\n" + 
-			"	void foo() {\n" + 
-			"		EC\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class ECOtherTopLevel {\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable decaration type>";
-	String completeBehind = "EC";
-	String expectedCompletionNodeToString = "<CompleteOnName:EC>";
-	String completionIdentifier = "EC";
-	String expectedReplacedSource = "EC";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class EC {\n" + 
-		"  EC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:EC>;\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class ECOtherTopLevel {\n" + 
-		"  ECOtherTopLevel() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf("EC\n") + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testF() {
-	String str = 
-		"package p; \n" + 
-		"public class F {\n" + 
-		"	void bar() {\n" + 
-		"	}\n" + 
-		"	class Y {\n" + 
-		"		void foo() {\n" + 
-		"			ba }\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field explicit access>";
-	String completeBehind = "ba";
-	String expectedCompletionNodeToString = "<CompleteOnName:ba>";
-	String completionIdentifier = "ba";
-	String expectedReplacedSource = "ba";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class F {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"      <CompleteOnName:ba>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public F() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf("ba }") + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testFA_1() {
-	String str = 
-			"package p; \n" + 
-			"public class FA {\n" + 
-			"	byte value;\n" + 
-			"	public float foo() {\n" + 
-			"		return (float) value;\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on cast expression type>";
-	String completeBehind = "f";
-	String expectedCompletionNodeToString = "<CompleteOnName:f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "float";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class FA {\n" + 
-		"  byte value;\n" + 
-		"  public FA() {\n" + 
-		"  }\n" + 
-		"  public float foo() {\n" + 
-		"    return <CompleteOnName:f>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf("float)") + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testFA_2() {
-	String str = 
-			"package p; \n" + 
-			"public class FA {\n" + 
-			"	byte value;\n" + 
-			"	public float foo() {\n" + 
-			"		return (float) value; \n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on returned value>";
-	String completeBehind = "v";
-	String expectedCompletionNodeToString = "<CompleteOnName:v>";
-	String completionIdentifier = "v";
-	String expectedReplacedSource = "value";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class FA {\n" + 
-		"  byte value;\n" + 
-		"  public FA() {\n" + 
-		"  }\n" + 
-		"  public float foo() {\n" + 
-		"    (float) <CompleteOnName:v>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf("value; \n") + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testFB_1FI74S3() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FI74S3\n" + 
-			" */\n" + 
-			"public class FB {\n" + 
-			"	int[] table;\n" + 
-			"	void foo() {\n" + 
-			"		int x = table[1].}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array element>";
-	String completeBehind = "table[1].";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:table[1].>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class FB {\n" + 
-		"  int[] table;\n" + 
-		"  public FB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x = <CompleteOnMemberAccess:table[1].>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testFC_1FSBZ9B() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FSBZ9B\n" + 
-			" */\n" + 
-			"class FC {\n" + 
-			"	UNKOWNTYPE field;\n" + 
-			"	void foo() {\n" + 
-			"		f\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field implicit access>";
-	String completeBehind = "f";
-	String expectedCompletionNodeToString = "<CompleteOnName:f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "f";
-	int cursorLocation = str.indexOf("f\n") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class FC {\n" + 
-		"  UNKOWNTYPE field;\n" + 
-		"  FC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:f>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testG() {
-	String str = 
-		"package p; \n" + 
-		"public class G {\n" + 
-		"	int bar() {\n" + 
-		"	}\n" + 
-		"	class Y {\n" + 
-		"		void foo(int b) {\n" + 
-		"			return b }\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on return value>";
-	String completeBehind = "b";
-	String expectedCompletionNodeToString = "<CompleteOnName:b>";
-	String completionIdentifier = "b";
-	String expectedReplacedSource = "b";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class G {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo(int b) {\n" + 
-		"      return <CompleteOnName:b>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public G() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	int cursorLocation = str.indexOf("b }") + completeBehind.length() - 1;
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testGA() {
-	String str = 
-			"package p; \n" + 
-			"public class GA {\n" + 
-			"	void foo(String s) {\n" + 
-			"		String string = s;\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable initializer>";
-	String completeBehind = "s";
-	String expectedCompletionNodeToString = "<CompleteOnName:s>";
-	String completionIdentifier = "s";
-	String expectedReplacedSource = "s";
-	int cursorLocation = str.indexOf("s;") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class GA {\n" + 
-		"  public GA() {\n" + 
-		"  }\n" + 
-		"  void foo(String s) {\n" + 
-		"    String string = <CompleteOnName:s>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testGB_1FI74S3() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FI74S3\n" + 
-			" */\n" + 
-			"public class GB {\n" + 
-			"	String[] table;\n" + 
-			"	void foo() {\n" + 
-			"		int x = table[1].}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array element>";
-	String completeBehind = "table[1].";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:table[1].>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class GB {\n" + 
-		"  String[] table;\n" + 
-		"  public GB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x = <CompleteOnMemberAccess:table[1].>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testGC_1FSHLHV_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FSHLHV\n" + 
-			" */\n" + 
-			"public class GC {\n" + 
-			"public static void main(String[] args) {\n" + 
-			"	Object l = new Object() {\n" + 
-			"		public void handleEvent(String[] event) {\n" + 
-			"			String s = new String();\n" + 
-			"			s.\n" + 
-			"			try {\n" + 
-			"				event.;\n" + 
-			"			}\n" + 
-			"			catch (Exception e) {\n" + 
-			"				e.\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"}\n";
-
-	String testName = "<complete on anonymous declaration type>";
-	String completeBehind = "O";
-	String expectedCompletionNodeToString = "<CompleteOnType:O>";
-	String completionIdentifier = "O";
-	String expectedReplacedSource = "Object";
-	int cursorLocation = str.indexOf("Object()") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class GC {\n" + 
-		"  public GC() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    Object l = new <CompleteOnType:O>();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testGC_1FSHLHV_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FSHLHV\n" + 
-			" */\n" + 
-			"public class GC {\n" + 
-			"public static void main(String[] args) {\n" + 
-			"	Object l = new Object() {\n" + 
-			"		public void handleEvent(String[] event) {\n" + 
-			"			String s = new String();\n" + 
-			"			s.\n" + 
-			"			try {\n" + 
-			"				event.;\n" + 
-			"			}\n" + 
-			"			catch (Exception e) {\n" + 
-			"				e.\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of local variable into anonymous declaration>";
-	String completeBehind = "s.";
-	String expectedCompletionNodeToString = "<CompleteOnName:s.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "s.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class GC {\n" + 
-		"  public GC() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    Object l;\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"      }\n" + 
-		"      public void handleEvent(String[] event) {\n" + 
-		"        String s;\n" + 
-		"        <CompleteOnName:s.>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testGC_1FSHLHV_3() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FSHLHV\n" + 
-			" */\n" + 
-			"public class GC {\n" + 
-			"public static void main(String[] args) {\n" + 
-			"	Object l = new Object() {\n" + 
-			"		public void handleEvent(String[] event) {\n" + 
-			"			String s = new String();\n" + 
-			"			s.\n" + 
-			"			try {\n" + 
-			"				event.;\n" + 
-			"			}\n" + 
-			"			catch (Exception e) {\n" + 
-			"				e.\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array>";
-	String completeBehind = "event.";
-	String expectedCompletionNodeToString = "<CompleteOnName:event.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "event.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class GC {\n" + 
-		"  public GC() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    Object l;\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"      }\n" + 
-		"      public void handleEvent(String[] event) {\n" + 
-		"        String s;\n" + 
-		"        {\n" + 
-		"          <CompleteOnName:event.>;\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testGC_1FSHLHV_4() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FSHLHV\n" + 
-			" */\n" + 
-			"public class GC {\n" + 
-			"public static void main(String[] args) {\n" + 
-			"	Object l = new Object() {\n" + 
-			"		public void handleEvent(String[] event) {\n" + 
-			"			String s = new String();\n" + 
-			"			s.\n" + 
-			"			try {\n" + 
-			"				event.;\n" + 
-			"			}\n" + 
-			"			catch (Exception e) {\n" + 
-			"				e.\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of thrown exception into catch block into anonymous declaration>";
-	String completeBehind = "e.";
-	String expectedCompletionNodeToString = "<CompleteOnName:e.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "e.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class GC {\n" + 
-		"  public GC() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    Object l;\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"      }\n" + 
-		"      public void handleEvent(String[] event) {\n" + 
-		"        String s;\n" + 
-		"        {\n" + 
-		"          Exception e;\n" + 
-		"          <CompleteOnName:e.>;\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-public void testH0() {
-	String str = 
-		"	function foo() {\n" + 
-		"		whil \n" + 
-		"\n";
-
-	String testName = "<complete on while keyword argument>";
-	String completeBehind = "whil";
-	String expectedCompletionNodeToString = "<CompleteOnName:whil>";
-	String completionIdentifier = "whil";
-	String expectedReplacedSource = "whil";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  <CompleteOnName:whil>;\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-
-
-public void testH() {
-	String str = 
-		"	function foo(bbbb) {\n" + 
-		"		while (Xbm }\n" + 
-		"	function bar() {\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on while keyword argument>";
-	String completeBehind = "Xbm";
-	String expectedCompletionNodeToString = "<CompleteOnName:Xbm>";
-	String completionIdentifier = "Xbm";
-	String expectedReplacedSource = "Xbm";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class H {\n" + 
-		"  public H() {\n" + 
-		"  }\n" + 
-		"  function foo( bbbb) {\n" + 
-		"    <CompleteOnName:Xbm>;\n" + 
-		"  }\n" + 
-		"  function bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testHA_1() {
-	String str = 
-			"package p; \n" + 
-			"public class HA {\n" + 
-			"	void foo() {\n" + 
-			"		x.y.Z[] field1; \n" + 
-			"		field1[1].}\n" + 
-			"}\n";
-
-	String testName = "<complete on package member type>";
-	String completeBehind = "x.y.";
-	String expectedCompletionNodeToString = "<CompleteOnName:x.y.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "x.y.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class HA {\n" + 
-		"  public HA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:x.y.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testHA_2() {
-	String str = 
-			"package p; \n" + 
-			"public class HA {\n" + 
-			"	void foo() {\n" + 
-			"		x.y.Z[] field1; \n" + 
-			"		field1[1].}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array element>";
-	String completeBehind = "field1[1].";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:field1[1].>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class HA {\n" + 
-		"  public HA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    x.y.Z[] field1;\n" + 
-		"    <CompleteOnMemberAccess:field1[1].>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testHB_1FHSLDR() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHSLDR\n" + 
-			" */\n" + 
-			"public class HB {\n" + 
-			"	void foo() {\n" + 
-			"		for (; i < totalUnits; i++) {\n" + 
-			"			unit = unitsToProcess[i];\n" + 
-			"			try {\n" + 
-			"				if (options.verbose) {\n" + 
-			"					System.out.println(\n" + 
-			"						\"process \"\n" + 
-			"							+ (i + 1)\n" + 
-			"							+ \"/\"\n" + 
-			"							+ totalUnits\n" + 
-			"							+ \" : \"\n" + 
-			"							+ unitsToProcess[i]\n" + 
-			"								.sourceFileName()); \n" + 
-			"				}\n" + 
-			"				process(unit, i);\n" + 
-			"			}\n" + 
-			"			fi }\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on finally keyword>";
-	String completeBehind = "fi";
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fi>";
-	String completionIdentifier = "fi";
-	String expectedReplacedSource = "fi";
-	int cursorLocation = str.indexOf("fi }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class HB {\n" + 
-		"  public HB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      <CompleteOnKeyword:fi>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testHC_1FMPYO3_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FMPYO3\n" + 
-			" */\n" + 
-			"class HC {\n" + 
-			"	HC(Object o){}\n" + 
-			"	void foo(){\n" + 
-			"		HC a = new HC(new Object()).\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of object creation>";
-	String completeBehind = "new HC(new Object()).";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new HC(new Object()).>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class HC {\n" + 
-		"  HC(Object o) {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    HC a = <CompleteOnMemberAccess:new HC(new Object()).>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testHC_1FMPYO3_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FMPYO3\n" + 
-			" */\n" + 
-			"class HC {\n" + 
-			"	HC(Object o){}\n" + 
-			"	void foo(){\n" + 
-			"		A a = new A(new Object()).\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on object of nested object creation declaration>";
-	String completeBehind = "O";
-	String expectedCompletionNodeToString = "<CompleteOnType:O>";
-	String completionIdentifier = "O";
-	String expectedReplacedSource = "Object";
-	int cursorLocation = str.indexOf("Object()") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class HC {\n" + 
-		"  HC(Object o) {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    A a = new A(new <CompleteOnType:O>());\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testI() {
-	String str = 
-		"package p; \n" + 
-		"public class I {\n" + 
-		"	Component }\n";
-
-	String testName = "<complete on incomplete field declaration type>";
-	String completeBehind = "C";
-	String expectedCompletionNodeToString = "<CompleteOnType:C>";
-	String completionIdentifier = "C";
-	String expectedReplacedSource = "Component";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class I {\n" + 
-		"  <CompleteOnType:C>;\n" + 
-		"  public I() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testIA_1FGNBPR_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGNBPR\n" + 
-			" */\n" + 
-			"public class IA {\n" + 
-			"	void foo1() {\n" + 
-			"		label1 : while (true) {\n" + 
-			"			class A {\n" + 
-			"				void foo2() {\n" + 
-			"					label2 : while (true) {\n" + 
-			"						break la }\n" + 
-			"				}\n" + 
-			"			}\n" + 
-			"			A a = new A();\n" + 
-			"			break la }\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on label name>";
-	String completeBehind = "la";
-	String expectedCompletionNodeToString = "break <CompleteOnLabel:la>;";
-	String completionIdentifier = "la";
-	String expectedReplacedSource = "la";
-	int cursorLocation = str.indexOf("la }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class IA {\n" + 
-		"  public IA() {\n" + 
-		"  }\n" + 
-		"  void foo1() {\n" + 
-		"    {\n" + 
-		"      class A {\n" + 
-		"        A() {\n" + 
-		"        }\n" + 
-		"        void foo2() {\n" + 
-		"          break <CompleteOnLabel:la>;\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testIA_1FGNBPR_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGNBPR\n" + 
-			" */\n" + 
-			"public class IA {\n" + 
-			"	void foo1() {\n" + 
-			"		label1 : while (true) {\n" + 
-			"			class A {\n" + 
-			"				void foo2() {\n" + 
-			"					label2 : while (true) {\n" + 
-			"						break la }\n" + 
-			"				}\n" + 
-			"			}\n" + 
-			"			A a = new A();\n" + 
-			"			break la }\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on label name>";
-	String completeBehind = "la";
-	String expectedCompletionNodeToString = "break <CompleteOnLabel:la>;";
-	String completionIdentifier = "la";
-	String expectedReplacedSource = "la";
-	int cursorLocation = str.indexOf("la }", str.indexOf("la }") + 1) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class IA {\n" + 
-		"  public IA() {\n" + 
-		"  }\n" + 
-		"  void foo1() {\n" + 
-		"    {\n" +
-		"      class A {\n" +
-		"        A() {\n" +
-		"          super();\n" + // could be optimized out ?
-		"        }\n" +
-		"        void foo2() {\n" +
-		"        }\n" +
-		"      }\n" +
-		"      A a;\n" +
-		"      break <CompleteOnLabel:la>;\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testIB() {
-	String str = 
-			"package p; \n" + 
-			"public class IB {\n" + 
-			"	UnknownFieldTYPE field;\n" + 
-			"	void foo() {\n" + 
-			"		field.}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of field of unkown type>";
-	String completeBehind = "field.";
-	String expectedCompletionNodeToString = "<CompleteOnName:field.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "field.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class IB {\n" + 
-		"  UnknownFieldTYPE field;\n" + 
-		"  public IB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:field.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testIC_1FMGUPR() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FMGUPR\n" + 
-			" */\n" + 
-			"public class IC {\n" + 
-			"	void foo(){\n" + 
-			"		new String().toString().\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on multiple method/field call>";
-	String completeBehind = "new String().toString().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new String().toString().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class IC {\n" + 
-		"  public IC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new String().toString().>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testJ() {
-	String str = 
-		"package p; \n" + 
-		"public class J {\n" + 
-		"	int foo1()[void foo2() int i;\n" + 
-		"	void foo3() {\n" + 
-		"		f }\n";
-
-	String testName = "<complete on method/field access into corrupted method declaration>";
-	String completeBehind = "f";
-	String expectedCompletionNodeToString = "<CompleteOnName:f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "f";
-	int cursorLocation = str.indexOf("f }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class J {\n" + 
-		"  public J() {\n" + 
-		"  }\n" + 
-		"  int foo1() {\n" + 
-		"  }\n" + 
-		"  void foo2() {\n" + 
-		"  }\n" + 
-		"  void foo3() {\n" + 
-		"    <CompleteOnName:f>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testJA_1FGQVW2_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGQVW2\n" + 
-			" */\n" + 
-			"public class JA {\n" + 
-			"	void foo() {\n" + 
-			"		\"abc.txt\". 'a'.}\n" + 
-			"}\n";
-
-	String testName = "<complete on string literal>";
-	String completeBehind = "\"abc.txt\".";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:\"abc.txt\".>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class JA {\n" + 
-		"  public JA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:\"abc.txt\".>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testJA_1FGQVW2_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGQVW2\n" + 
-			" */\n" + 
-			"public class JA {\n" + 
-			"	void foo() {\n" + 
-			"		\"abc.txt\". 'a'.}\n" + 
-			"}\n";
-
-	String testName = "<complete on char literal>";
-	String completeBehind = "'a'.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:'a'.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class JA {\n" + 
-		"  public JA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:'a'.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testJB() {
-	String str = 
-			"package p; \n" + 
-			"public class JB\n" + 
-			"	extends UnknownSUPERCLASS\n" + 
-			"	implements UnknownSUPERINTERFACE {\n" + 
-			"	void foo() {\n" + 
-			"		f }\n" + 
-			"}\n";
-
-	String testName = "<complete into method declared into corrupted class declaration>";
-	String completeBehind = "f";
-	String expectedCompletionNodeToString = "<CompleteOnName:f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "f";
-	int cursorLocation = str.indexOf("f }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class JB extends UnknownSUPERCLASS implements UnknownSUPERINTERFACE {\n" + 
-		"  public JB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:f>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testJC_1FLG1ZC() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FLG1ZC\n" + 
-			" */\n" + 
-			"public class JC {\n" + 
-			"	void foo() {\n" + 
-			"		new String ().\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of object creation with dummy spaces>";
-	String completeBehind = "new String ().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new String().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class JC {\n" + 
-		"  public JC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new String().>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testK_1() {
-	String str = 
-		"package p; \n" + 
-		"class Other {\n" + 
-		"	void foo() {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public class K {\n" + 
-		"	public static void main(\n" + 
-		"		java.lang.String[] args) {\n" + 
-		"		java.io.File bbbb = \n" + 
-		"			new File(\"c:\\abc.txt\"); \n" + 
-		"		O bb bbbb.}\n" + 
-		"}\n";
-		
-//	str = 
-//		"public class K {\n" + 
-//		"	void foo() {\n" + 
-//		"		new X(\"c:abc.txt\"); \n" + 
-//		"		O" +
-//		"   }\n" + 
-//		"}\n";
-
-	String testName = "<complete on corrupted local variable declaration>";
-	String completeBehind = "		O";
-	String expectedCompletionNodeToString = "<CompleteOnName:O>";
-	String completionIdentifier = "O";
-	String expectedReplacedSource = "O";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class Other {\n" + 
-		"  Other() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class K {\n" + 
-		"  public K() {\n" + 
-		"  }\n" + 
-		"  public static void main(java.lang.String[] args) {\n" + 
-		"    java.io.File bbbb;\n" + 
-		"    <CompleteOnName:O>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testK_2() {
-	String str = 
-		"package p; \n" + 
-		"class Other {\n" + 
-		"	void foo() {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public class K {\n" + 
-		"	public static void main(\n" + 
-		"		java.lang.String[] args) {\n" + 
-		"		java.io.File bbbb = \n" + 
-		"			new File(\"c:\\abc.txt\"); \n" + 
-		"		O bb bbbb.}\n" + 
-		"}\n";
-
-	String testName = "<complete on corrupted local variable declaration name>";
-	String completeBehind = "bb";
-	String expectedCompletionNodeToString = "<CompleteOnLocalName:O bb>;";
-	String completionIdentifier = "bb";
-	String expectedReplacedSource = "bb";
-	int cursorLocation = str.indexOf("bb bbbb.") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class Other {\n" + 
-		"  Other() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class K {\n" + 
-		"  public K() {\n" + 
-		"  }\n" + 
-		"  public static void main(java.lang.String[] args) {\n" +
-		"    java.io.File bbbb;\n" +
-		"    <CompleteOnLocalName:O bb>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testK_3() {
-	String str = 
-		"package p; \n" + 
-		"class Other {\n" + 
-		"	void foo() {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public class K {\n" + 
-		"	public static void main(\n" + 
-		"		java.lang.String[] args) {\n" + 
-		"		java.io.File bbbb = \n" + 
-		"			new File(\"c:\\abc.txt\"); \n" + 
-		"		O bb bbbb.}\n" + 
-		"}\n";
-
-	String testName = "<complete on corrupted local variable declaration>";
-	String completeBehind = "bbbb";
-	String expectedCompletionNodeToString = "<CompleteOnName:bbbb>";
-	String completionIdentifier = "bbbb";
-	String expectedReplacedSource = "bbbb";
-	int cursorLocation = str.indexOf("bbbb.}") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class Other {\n" + 
-		"  Other() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class K {\n" + 
-		"  public K() {\n" + 
-		"  }\n" + 
-		"  public static void main(java.lang.String[] args) {\n" + 
-		"    java.io.File bbbb;\n" + 
-		"    O bb;\n" + 
-		"    <CompleteOnName:bbbb>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testK_4() {
-	String str = 
-		"package p; \n" + 
-		"class Other {\n" + 
-		"	void foo() {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public class K {\n" + 
-		"	public static void main(\n" + 
-		"		java.lang.String[] args) {\n" + 
-		"		java.io.File bbbb = \n" + 
-		"			new File(\"c:\\abc.txt\"); \n" + 
-		"		O bb bbbb.}\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field of local variable with corrupted declaration>";
-	String completeBehind = "bbbb.";
-	String expectedCompletionNodeToString = "<CompleteOnName:bbbb.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "bbbb.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class Other {\n" + 
-		"  Other() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class K {\n" + 
-		"  public K() {\n" + 
-		"  }\n" + 
-		"  public static void main(java.lang.String[] args) {\n" + 
-		"    java.io.File bbbb;\n" + 
-		"    O bb;\n" + 
-		"    <CompleteOnName:bbbb.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testKA_1FH5SU5() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FH5SU5\n" + 
-			" */\n" + 
-			"class KAHelper\n" + 
-			"	extends java.util.Vector {\n" + 
-			"}\n" + 
-			"public class KA {\n" + 
-			"	public int hashCode() {\n" + 
-			"		return 10;\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		KA a = new KA;\n" + 
-			"		a.has }\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "a.has";
-	String expectedCompletionNodeToString = "<CompleteOnName:a.has>";
-	String completionIdentifier = "has";
-	String expectedReplacedSource = "a.has";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class KAHelper extends java.util.Vector {\n" + 
-		"  KAHelper() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class KA {\n" + 
-		"  public KA() {\n" + 
-		"  }\n" + 
-		"  public int hashCode() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    KA a;\n" + 
-		"    <CompleteOnName:a.has>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testKB() {
-	String str = 
-			"package p; \n" + 
-			"public class KB {\n" + 
-			"	void foo()[i }\n" + 
-			"}\n";
-
-	String testName = "<complete on corrupted method header>";
-	String completeBehind = "void foo()[i";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "i";
-	String expectedReplacedSource = "i";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class KB {\n" + 
-		"  public KB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testKC_1FLG1ZC() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FLG1ZC\n" + 
-			" */\n" + 
-			"import java.io.*;\n" + 
-			"public class KC {\n" + 
-			"private static char[] read(String fileName){\n" + 
-			"	try {\n" + 
-			"		File file = new File(fileName);\n" + 
-			"		FileReader reader =\n" + 
-			"			new FileReader(file);\n" + 
-			"		int length;\n" + 
-			"		char[] contents =\n" + 
-			"			new char[\n" + 
-			"				length =\n" + 
-			"				(int) file.length()];\n" + 
-			"		int len = 0;\n" + 
-			"		int readSize = 0;\n" + 
-			"		while ((readSize != -1)\n" + 
-			"			&& (len != length)) {\n" + 
-			"			readSize = reader.read(\n" + 
-			"				contents,\n" + 
-			"				len,\n" + 
-			"				length - len);\n" + 
-			"			len += readSize;\n" + 
-			"		}\n" + 
-			"		reader. t\n";
-
-	String testName = "<complete on method/field with dummy spaces>";
-	String completeBehind = "reader. t";
-	String expectedCompletionNodeToString = "<CompleteOnName:reader.t>";
-	String completionIdentifier = "t";
-	String expectedReplacedSource = "reader. t";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import java.io.*;\n" + 
-		"public class KC {\n" + 
-		"  public KC() {\n" + 
-		"  }\n" + 
-		"  private static char[] read(String fileName) {\n" + 
-		"    {\n" + 
-		"      File file;\n" + 
-		"      FileReader reader;\n" + 
-		"      int length;\n" + 
-		"      char[] contents;\n" + 
-		"      int len;\n" + 
-		"      int readSize;\n" + 
-		"      <CompleteOnName:reader.t>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testL_1() {
-	String str = 
-		"package p; \n" + 
-		"public class L {\n" + 
-		"	void foo() {\n" + 
-		"		x.y.Z[] field1, \n" + 
-		"			field2; \n" + 
-		"		field1.if (int[].class }\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "field1.";
-	String expectedCompletionNodeToString = "<CompleteOnName:field1.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "field1.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class L {\n" + 
-		"  public L() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    x.y.Z[] field1;\n" + 
-		"    x.y.Z[] field2;\n" + 
-		"    <CompleteOnName:field1.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testL_2() {
-	String str = 
-		"package p; \n" + 
-		"public class L {\n" + 
-		"	void foo() {\n" + 
-		"		x.y.Z[] field1, \n" + 
-		"			field2; \n" + 
-		"		field1.if (int[].class }\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field of array>";
-	String completeBehind = "int[].";
-	String expectedCompletionNodeToString = "<CompleteOnClassLiteralAccess:int[].>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "int[].";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class L {\n" + 
-		"  public L() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    x.y.Z[] field1;\n" + 
-		"    x.y.Z[] field2;\n" + 
-		"    <CompleteOnClassLiteralAccess:int[].>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testL_3() {
-	String str = 
-		"package p; \n" + 
-		"public class L {\n" + 
-		"	void foo() {\n" + 
-		"		x.y.Z[] field1, \n" + 
-		"			field2; \n" + 
-		"		field1.if (int[].class }\n" + 
-		"}\n";
-
-	String testName = "<complete on argument of corrupted if statement>";
-	String completeBehind = "int";
-	String expectedCompletionNodeToString = "<CompleteOnName:int>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class L {\n" + 
-		"  public L() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    x.y.Z[] field1;\n" + 
-		"    x.y.Z[] field2;\n" + 
-		"    <CompleteOnName:int>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testLA_1FGLMOF() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGLMOF\n" + 
-			" */\n" + 
-			"public class LA {\n" + 
-			"	void[] foo() {\n" + 
-			"	}\n" + 
-			"	void bar() {\n" + 
-			"		f }\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field with corrupted method header>";
-	String completeBehind = "f";
-	String expectedCompletionNodeToString = "<CompleteOnName:f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "f";
-	int cursorLocation = str.indexOf("f }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class LA {\n" + 
-		"  public LA() {\n" + 
-		"  }\n" + 
-		"  void[] foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"    <CompleteOnName:f>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testLB() {
-	String str = 
-			"package p; \n" + 
-			"public class LB {\n" + 
-			"	void foo() {\n" + 
-			"	}\n" + 
-			"	void foo() {\n" + 
-			"	}\n" + 
-			"	void bar() {\n" + 
-			"		i }\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field with duplicate method declaration>";
-	String completeBehind = "i";
-	String expectedCompletionNodeToString = "<CompleteOnName:i>";
-	String completionIdentifier = "i";
-	String expectedReplacedSource = "i";
-	int cursorLocation = str.indexOf("i }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class LB {\n" + 
-		"  public LB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"    <CompleteOnName:i>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testLC_1FLG1E2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FLG1E2\n" + 
-			" */\n" + 
-			"public class LC {\n" + 
-			"	void foo() {\n" + 
-			"		Object[] x = new Object[10];\n" + 
-			"		x [1].\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array element with dummy spaces>";
-	String completeBehind = "x [1].";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:x[1].>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class LC {\n" + 
-		"  public LC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] x;\n" + 
-		"    <CompleteOnMemberAccess:x[1].>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testM_1FGGLMT() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGGLMT\n" + 
-		" */\n" + 
-		"public class M {\n" + 
-		"	class Member {\n" + 
-		"		void fooMember() {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	void foo() {\n" + 
-		"		new Member().}\n" + 
-		"}\n" + 
-		"class MemberOfCU {\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field of explicit object creation>";
-	String completeBehind = "new Member().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new Member().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class M {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    void fooMember() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public M() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new Member().>;\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class MemberOfCU {\n" + 
-		"  MemberOfCU() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testMA_1() {
-	String str = 
-			"package p; \n" + 
-			"public class MA {\n" + 
-			"	class Member\n" + 
-			"		extends java.util.Vector {\n" + 
-			"		static void fooStaticMember() {\n" + 
-			"		}\n" + 
-			"		void fooMember() {\n" + 
-			"		}\n" + 
-			"		class MemberMember {\n" + 
-			"			void fooMemberMember() {\n" + 
-			"				MemberOfCUMA m = \n" + 
-			"					new MemberOfCUMA(); \n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		class MemberMember2 {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	void foo() {\n" + 
-			"		Membe }\n" + 
-			"	void foobar() {\n" + 
-			"		new Member().}\n" + 
-			"	class Member2 {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class MemberOfCUMA {\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable declaration type>";
-	String completeBehind = "Membe";
-	String expectedCompletionNodeToString = "<CompleteOnName:Membe>";
-	String completionIdentifier = "Membe";
-	String expectedReplacedSource = "Membe";
-	int cursorLocation = str.indexOf("Membe }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class MA {\n" + 
-		"  class Member extends java.util.Vector {\n" + 
-		"    class MemberMember {\n" + 
-		"      MemberMember() {\n" + 
-		"      }\n" + 
-		"      void fooMemberMember() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    class MemberMember2 {\n" + 
-		"      MemberMember2() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    static void fooStaticMember() {\n" + 
-		"    }\n" + 
-		"    void fooMember() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  class Member2 {\n" + 
-		"    Member2() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public MA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:Membe>;\n" + 
-		"  }\n" + 
-		"  void foobar() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class MemberOfCUMA {\n" + 
-		"  MemberOfCUMA() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testMA_2() {
-	String str = 
-			"package p; \n" + 
-			"public class MA {\n" + 
-			"	class Member\n" + 
-			"		extends java.util.Vector {\n" + 
-			"		static void fooStaticMember() {\n" + 
-			"		}\n" + 
-			"		void fooMember() {\n" + 
-			"		}\n" + 
-			"		class MemberMember {\n" + 
-			"			void fooMemberMember() {\n" + 
-			"				MemberOfCUMA m = \n" + 
-			"					new MemberOfCUMA(); \n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		class MemberMember2 {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	void foo() {\n" + 
-			"		Membe }\n" + 
-			"	void foobar() {\n" + 
-			"		new Member().}\n" + 
-			"	class Member2 {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class MemberOfCUMA {\n" + 
-			"}\n";
-
-	String testName = "<complete on object creation type>";
-	String completeBehind = "MemberOfCU";
-	String expectedCompletionNodeToString = "<CompleteOnType:MemberOfCU>";
-	String completionIdentifier = "MemberOfCU";
-	String expectedReplacedSource = "MemberOfCUMA";
-	int cursorLocation = str.indexOf("MemberOfCUMA();") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class MA {\n" + 
-		"  class Member extends java.util.Vector {\n" + 
-		"    class MemberMember {\n" + 
-		"      MemberMember() {\n" + 
-		"      }\n" + 
-		"      void fooMemberMember() {\n" + 
-		"        MemberOfCUMA m = new <CompleteOnType:MemberOfCU>();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    class MemberMember2 {\n" + 
-		"      MemberMember2() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    static void fooStaticMember() {\n" + 
-		"    }\n" + 
-		"    void fooMember() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  class Member2 {\n" + 
-		"    Member2() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public MA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void foobar() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class MemberOfCUMA {\n" + 
-		"  MemberOfCUMA() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testMA_3() {
-	String str = 
-			"package p; \n" + 
-			"public class MA {\n" + 
-			"	class Member\n" + 
-			"		extends java.util.Vector {\n" + 
-			"		static void fooStaticMember() {\n" + 
-			"		}\n" + 
-			"		void fooMember() {\n" + 
-			"		}\n" + 
-			"		class MemberMember {\n" + 
-			"			void fooMemberMember() {\n" + 
-			"				MemberOfCUMA m = \n" + 
-			"					new MemberOfCUMA(); \n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		class MemberMember2 {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	void foo() {\n" + 
-			"		Membe }\n" + 
-			"	void foobar() {\n" + 
-			"		new Member().}\n" + 
-			"	class Member2 {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class MemberOfCUMA {\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of object creation>";
-	String completeBehind = "new Member().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new Member().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class MA {\n" + 
-		"  class Member extends java.util.Vector {\n" + 
-		"    class MemberMember {\n" + 
-		"      MemberMember() {\n" + 
-		"      }\n" + 
-		"      void fooMemberMember() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    class MemberMember2 {\n" + 
-		"      MemberMember2() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    static void fooStaticMember() {\n" + 
-		"    }\n" + 
-		"    void fooMember() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  class Member2 {\n" + 
-		"    Member2() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public MA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void foobar() {\n" + 
-		"    <CompleteOnMemberAccess:new Member().>;\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class MemberOfCUMA {\n" + 
-		"  MemberOfCUMA() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testMB_1FHSLMQ_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHSLMQ\n" + 
-			" */\n" + 
-			"public class MB {\n" + 
-			"	void foo() {\n" + 
-			"		try {\n" + 
-			"			System.out.println(\"\");\n" + 
-			"		} catch (Exception eFirst) {\n" + 
-			"			e } catch (Exception eSecond) {\n" + 
-			"			e }\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable name into catch block>";
-	String completeBehind = "e";
-	String expectedCompletionNodeToString = "<CompleteOnName:e>";
-	String completionIdentifier = "e";
-	String expectedReplacedSource = "e";
-	int cursorLocation = str.indexOf("e }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class MB {\n" + 
-		"  public MB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    {\n" + 
-		"      Exception eFirst;\n" + 
-		"      <CompleteOnName:e>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testMB_1FHSLMQ_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHSLMQ\n" + 
-			" */\n" + 
-			"public class MB {\n" + 
-			"	void foo() {\n" + 
-			"		try {\n" + 
-			"			System.out.println(\"\");\n" + 
-			"		} catch (Exeption eFirst) {\n" + 
-			"			e } catch (Exception eSecond) {\n" + 
-			"			e }\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable name into catch block>";
-	String completeBehind = "e";
-	String expectedCompletionNodeToString = "<CompleteOnName:e>";
-	String completionIdentifier = "e";
-	String expectedReplacedSource = "e";
-	int cursorLocation = str.indexOf("e }\n") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class MB {\n" + 
-		"  public MB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      Exception eSecond;\n" + 
-		"      <CompleteOnName:e>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testMC_1FJ8D9Z() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FJ8D9Z\n" + 
-			" */\n" + 
-			"public class MC {\n" + 
-			"	p2.X someField;\n" + 
-			"	public void foo() {\n" + 
-			"		new p2.X(\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on object creation argument>";
-	String completeBehind = "new p2.X(";
-	String expectedCompletionNodeToString = "<CompleteOnAllocationExpression:new p2.X()>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class MC {\n" + 
-		"  p2.X someField;\n" + 
-		"  public MC() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    <CompleteOnAllocationExpression:new p2.X()>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testN() {
-	String str = 
-		"package p; \n" + 
-		"public class N extends p.M {\n" + 
-		"	void foo() {\n" + 
-		"		class MLocal\n" + 
-		"			extends Schmurz {\n" + 
-		"			void foo() {\n" + 
-		"			}\n" + 
-		"			int field1;\n" + 
-		"			class MLocalMember\n" + 
-		"				extends myInnerC {\n" + 
-		"				void foo() {\n" + 
-		"				}\n" + 
-		"				void bar() {\n" + 
-		"					new M }\n" + 
-		"			}\n" + 
-		"			class MLocalMember2 {\n" + 
-		"				void fooMyInnerC() {\n" + 
-		"				}\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on object creation type>";
-	String completeBehind = "new M";
-	String expectedCompletionNodeToString = "<CompleteOnType:M>";
-	String completionIdentifier = "M";
-	String expectedReplacedSource = "M";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class N extends p.M {\n" + 
-		"  public N() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    class MLocal extends Schmurz {\n" + 
-		"      class MLocalMember extends myInnerC {\n" + 
-		"        MLocalMember() {\n" + 
-		"        }\n" + 
-		"        void foo() {\n" + 
-		"        }\n" + 
-		"        void bar() {\n" + 
-		"          new <CompleteOnType:M>();\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"      class MLocalMember2 {\n" + 
-		"        MLocalMember2() {\n" + 
-		"        }\n" + 
-		"        void fooMyInnerC() {\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"      int field1;\n" + 
-		"      MLocal() {\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testNA_1() {
-	String str = 
-			"package p; \n" + 
-			"class NException2\n" + 
-			"	extends NoClassDefFoundError {\n" + 
-			"}\n" + 
-			"interface NInterface {\n" + 
-			"	void foo();\n" + 
-			"}\n" + 
-			"class DAB {\n" + 
-			"	public DA foo() {\n" + 
-			"	}\n" + 
-			"	public int foufou;\n" + 
-			"}\n" + 
-			"class DANA {\n" + 
-			"	public int f;\n" + 
-			"	N fieldC;\n" + 
-			"}\n" + 
-			"public class NA\n" + 
-			"	extends NException2\n" + 
-			"	implements N {\n" + 
-			"	DA fieldB;\n" + 
-			"	class freak {\n" + 
-			"	}\n" + 
-			"	void dede() {\n" + 
-			"		DA local;\n" + 
-			"		local.fieldC.foo();\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"interface NCool {\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable name>";
-	String completeBehind = "l";
-	String expectedCompletionNodeToString = "<CompleteOnName:l>";
-	String completionIdentifier = "l";
-	String expectedReplacedSource = "local";
-	int cursorLocation = str.indexOf("local.") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class NException2 extends NoClassDefFoundError {\n" + 
-		"  NException2() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"interface NInterface {\n" + 
-		"  void foo();\n" + 
-		"}\n" + 
-		"class DAB {\n" + 
-		"  public int foufou;\n" + 
-		"  DAB() {\n" + 
-		"  }\n" + 
-		"  public DA foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class DANA {\n" + 
-		"  public int f;\n" + 
-		"  N fieldC;\n" + 
-		"  DANA() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class NA extends NException2 implements N {\n" + 
-		"  class freak {\n" + 
-		"    freak() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  DA fieldB;\n" + 
-		"  public NA() {\n" + 
-		"  }\n" + 
-		"  void dede() {\n" + 
-		"    DA local;\n" + 
-		"    <CompleteOnName:l>;\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"interface NCool {\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testNA_2() {
-	String str = 
-			"package p; \n" + 
-			"class NException2\n" + 
-			"	extends NoClassDefFoundError {\n" + 
-			"}\n" + 
-			"interface NInterface {\n" + 
-			"	void foo();\n" + 
-			"}\n" + 
-			"class DAB {\n" + 
-			"	public DA foo() {\n" + 
-			"	}\n" + 
-			"	public int foufou;\n" + 
-			"}\n" + 
-			"class DANA {\n" + 
-			"	public int f;\n" + 
-			"	N fieldC;\n" + 
-			"}\n" + 
-			"public class NA\n" + 
-			"	extends NException2\n" + 
-			"	implements N {\n" + 
-			"	DA fieldB;\n" + 
-			"	class freak {\n" + 
-			"	}\n" + 
-			"	void dede() {\n" + 
-			"		DA local;\n" + 
-			"		local.fieldC.foo();\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"interface NCool {\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of local variable>";
-	String completeBehind = "local.f";
-	String expectedCompletionNodeToString = "<CompleteOnName:local.f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "local.fieldC";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class NException2 extends NoClassDefFoundError {\n" + 
-		"  NException2() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"interface NInterface {\n" + 
-		"  void foo();\n" + 
-		"}\n" + 
-		"class DAB {\n" + 
-		"  public int foufou;\n" + 
-		"  DAB() {\n" + 
-		"  }\n" + 
-		"  public DA foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class DANA {\n" + 
-		"  public int f;\n" + 
-		"  N fieldC;\n" + 
-		"  DANA() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class NA extends NException2 implements N {\n" + 
-		"  class freak {\n" + 
-		"    freak() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  DA fieldB;\n" + 
-		"  public NA() {\n" + 
-		"  }\n" + 
-		"  void dede() {\n" + 
-		"    DA local;\n" + 
-		"    <CompleteOnName:local.f>;\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"interface NCool {\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testNA_3() {
-	String str = 
-			"package p; \n" + 
-			"class NException2\n" + 
-			"	extends NoClassDefFoundError {\n" + 
-			"}\n" + 
-			"interface NInterface {\n" + 
-			"	void foo();\n" + 
-			"}\n" + 
-			"class DAB {\n" + 
-			"	public DA foo() {\n" + 
-			"	}\n" + 
-			"	public int foufou;\n" + 
-			"}\n" + 
-			"class DANA {\n" + 
-			"	public int f;\n" + 
-			"	N fieldC;\n" + 
-			"}\n" + 
-			"public class NA\n" + 
-			"	extends NException2\n" + 
-			"	implements N {\n" + 
-			"	DA fieldB;\n" + 
-			"	class freak {\n" + 
-			"	}\n" + 
-			"	void dede() {\n" + 
-			"		DA local;\n" + 
-			"		local.fieldC.foo();\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"interface NCool {\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of local variable>";
-	String completeBehind = "local.fieldC.";
-	String expectedCompletionNodeToString = "<CompleteOnName:local.fieldC.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "local.fieldC.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class NException2 extends NoClassDefFoundError {\n" + 
-		"  NException2() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"interface NInterface {\n" + 
-		"  void foo();\n" + 
-		"}\n" + 
-		"class DAB {\n" + 
-		"  public int foufou;\n" + 
-		"  DAB() {\n" + 
-		"  }\n" + 
-		"  public DA foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class DANA {\n" + 
-		"  public int f;\n" + 
-		"  N fieldC;\n" + 
-		"  DANA() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class NA extends NException2 implements N {\n" + 
-		"  class freak {\n" + 
-		"    freak() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  DA fieldB;\n" + 
-		"  public NA() {\n" + 
-		"  }\n" + 
-		"  void dede() {\n" + 
-		"    DA local;\n" + 
-		"    <CompleteOnName:local.fieldC.>;\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"interface NCool {\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testNB() {
-	String str = 
-			"package p; \n" + 
-			"public class NB {\n" + 
-			"	void foo() {\n" + 
-			"		int iOutside;\n" + 
-			"		if (i != 0) {\n" + 
-			"			for (int i = 10; --i >= 0;)\n" + 
-			"				unit[i].parseMethod(\n" + 
-			"					parser, \n" + 
-			"					unit); \n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on variable name into for statement>";
-	String completeBehind = "i";
-	String expectedCompletionNodeToString = "<CompleteOnName:i>";
-	String completionIdentifier = "i";
-	String expectedReplacedSource = "i";
-	int cursorLocation = str.indexOf("i >=") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class NB {\n" + 
-		"  public NB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int iOutside;\n" + 
-		"    {\n" + 
-		"      int i;\n" + 
-		"      -- <CompleteOnName:i>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testNC_1FJ8D9Z() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FJ8D9Z\n" + 
-			" */\n" + 
-			"public class NC {\n" + 
-			"	String s = new String(\n";
-
-	String testName = "<complete on field intializer into corrupted class declaration>";
-	String completeBehind = "new String(";
-	String expectedCompletionNodeToString = "<CompleteOnAllocationExpression:new String()>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class NC {\n" + 
-		"  String s = <CompleteOnAllocationExpression:new String()>;\n" + 
-		"  public NC() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testO_1FG1YU0() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FG1YU0\n" + 
-		" */\n" + 
-		"public class O\n" + 
-		"	extends java.util.Vector {\n" + 
-		"	void bar(boolean bbbb) {\n" + 
-		"		this.}\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field of explicit this>";
-	String completeBehind = "this.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:this.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "this.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class O extends java.util.Vector {\n" + 
-		"  public O() {\n" + 
-		"  }\n" + 
-		"  void bar(boolean bbbb) {\n" + 
-		"    <CompleteOnMemberAccess:this.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testOA_1() {
-	String str = 
-			"package p; \n" + 
-			"public class OA {\n" + 
-			"	void proc() {\n" + 
-			"		int[] a = new int[10];\n" + 
-			"		Object b = a;\n" + 
-			"		Class c = a.getClass();\n" + 
-			"		String s = a.toString();\n" + 
-			"		boolean l = a.equals(b);\n" + 
-			"		int h = a.hashCode();\n" + 
-			"		try {\n" + 
-			"			a.wait();\n" + 
-			"			a.wait(3);\n" + 
-			"			a.wait(4, 5);\n" + 
-			"		} catch (Exception e) {\n" + 
-			"		}\n" + 
-			"		a.notify();\n" + 
-			"		a.notifyAll();\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array>";
-	String completeBehind = "a.n";
-	String expectedCompletionNodeToString = "<CompleteOnName:a.n>";
-	String completionIdentifier = "n";
-	String expectedReplacedSource = "a.notify";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class OA {\n" + 
-		"  public OA() {\n" + 
-		"  }\n" + 
-		"  void proc() {\n" + 
-		"    int[] a;\n" + 
-		"    Object b;\n" + 
-		"    Class c;\n" + 
-		"    String s;\n" + 
-		"    boolean l;\n" + 
-		"    int h;\n" + 
-		"    <CompleteOnName:a.n>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testOA_2() {
-	String str = 
-			"package p; \n" + 
-			"public class OA {\n" + 
-			"	void proc() {\n" + 
-			"		int[] a = new int[10];\n" + 
-			"		Object b = a;\n" + 
-			"		Class c = a.getClass();\n" + 
-			"		String s = a.toString();\n" + 
-			"		boolean l = a.equals(b);\n" + 
-			"		int h = a.hashCode();\n" + 
-			"		try {\n" + 
-			"			a.wait();\n" + 
-			"			a.wait(3);\n" + 
-			"			a.wait(4, 5);\n" + 
-			"		} catch (Exception e) {\n" + 
-			"		}\n" + 
-			"		a.notify();\n" + 
-			"		a.notifyAll();\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array>";
-	String completeBehind = "a.w";
-	String expectedCompletionNodeToString = "<CompleteOnName:a.w>";
-	String completionIdentifier = "w";
-	String expectedReplacedSource = "a.wait";
-	int cursorLocation = str.indexOf("a.wait(4, 5)") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class OA {\n" + 
-		"  public OA() {\n" + 
-		"  }\n" + 
-		"  void proc() {\n" + 
-		"    int[] a;\n" + 
-		"    Object b;\n" + 
-		"    Class c;\n" + 
-		"    String s;\n" + 
-		"    boolean l;\n" + 
-		"    int h;\n" + 
-		"    {\n" + 
-		"      <CompleteOnName:a.w>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testOB_1() {
-	String str = 
-			"package p; \n" + 
-			"public class OB {\n" + 
-			"	void foo() {\n" + 
-			"		label : while (true) {\n" + 
-			"			System.out.println(\"\");\n" + 
-			"			break label;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on keyword>";
-	String completeBehind = "b";
-	String expectedCompletionNodeToString = "<CompleteOnName:b>";
-	String completionIdentifier = "b";
-	String expectedReplacedSource = "break";
-	int cursorLocation = str.indexOf("break") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class OB {\n" + 
-		"  public OB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      <CompleteOnName:b>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testOB_2() {
-	String str = 
-			"package p; \n" + 
-			"public class OB {\n" + 
-			"	void foo() {\n" + 
-			"		label : while (true) {\n" + 
-			"			System.out.println(\"\");\n" + 
-			"			break label;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on label name>";
-	String completeBehind = "l";
-	String expectedCompletionNodeToString = "<CompleteOnName:l>";
-	String completionIdentifier = "l";
-	String expectedReplacedSource = "label";
-	int cursorLocation = str.indexOf("label") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class OB {\n" + 
-		"  public OB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:l>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testOC_1FM7J7F() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FM7J7F\n" + 
-			" */\n" + 
-			"class OC {\n" + 
-			"	String s = new String(\n" + 
-			"}\n";
-
-	String testName = "<complete on field initializer>";
-	String completeBehind = "new String(";
-	String expectedCompletionNodeToString = "<CompleteOnAllocationExpression:new String()>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class OC {\n" + 
-		"  String s = <CompleteOnAllocationExpression:new String()>;\n" + 
-		"  OC() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testP_1FG1YU0() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FG1YU0\n" + 
-		" */\n" + 
-		"public class P {\n" + 
-		"	{\n" + 
-		"		void bar() {\n" + 
-		"			f }\n" + 
-		"		void foo() {\n" + 
-		"		}\n" + 
-		"	}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "f";
-	String expectedCompletionNodeToString = "<CompleteOnName:f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "f";
-	int cursorLocation = str.indexOf("f }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class P {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public P() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"    <CompleteOnName:f>;\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); }
-public void testPA_1() {
-	String str = 
-			"package p; \n" + 
-			"class PAHelper {\n" + 
-			"	public int fieldPublic;\n" + 
-			"	protected int fieldProtected;\n" + 
-			"	private int fieldPrivate;\n" + 
-			"	int fieldDefault;\n" + 
-			"	static void staticFoo() {\n" + 
-			"	}\n" + 
-			"	static int i = 1;\n" + 
-			"	int neuneu1() {\n" + 
-			"		return 0;\n" + 
-			"	}\n" + 
-			"	void neuneu2() {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"public class PA\n" + 
-			"	extends PAHelper {\n" + 
-			"	void foo() {\n" + 
-			"		B[] b = \n" + 
-			"			new java.lang.Number[]; \n" + 
-			"		java.lang.Short s;\n" + 
-			"		// b[1].;\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on comment>";
-	String completeBehind = "b[1].";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "";
-	String expectedReplacedSource = NONE;
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString = null;
-
-	try {
-		checkMethodParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName); 
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_COMMENT);
-	}
-}
-public void testPA_2() {
-	String str = 
-			"package p; \n" + 
-			"class PAHelper {\n" + 
-			"	public int fieldPublic;\n" + 
-			"	protected int fieldProtected;\n" + 
-			"	private int fieldPrivate;\n" + 
-			"	int fieldDefault;\n" + 
-			"	static void staticFoo() {\n" + 
-			"	}\n" + 
-			"	static int i = 1;\n" + 
-			"	int neuneu1() {\n" + 
-			"		return 0;\n" + 
-			"	}\n" + 
-			"	void neuneu2() {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"public class PA\n" + 
-			"	extends PAHelper {\n" + 
-			"	void foo() {\n" + 
-			"		B[] b = \n" + 
-			"			new java.lang.Number[]; \n" + 
-			"		java.lang.Short s;\n" + 
-			"		// b[1].;\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on new keyword>";
-	String completeBehind = "n";
-	String expectedCompletionNodeToString = "<CompleteOnName:n>";
-	String completionIdentifier = "n";
-	String expectedReplacedSource = "new";
-	int cursorLocation = str.indexOf("new ") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class PAHelper {\n" + 
-		"  public int fieldPublic;\n" + 
-		"  protected int fieldProtected;\n" + 
-		"  private int fieldPrivate;\n" + 
-		"  int fieldDefault;\n" + 
-		"  static int i;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  PAHelper() {\n" + 
-		"  }\n" + 
-		"  static void staticFoo() {\n" + 
-		"  }\n" + 
-		"  int neuneu1() {\n" + 
-		"  }\n" + 
-		"  void neuneu2() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class PA extends PAHelper {\n" + 
-		"  public PA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    B[] b = <CompleteOnName:n>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testPB() {
-	String str = 
-			"package p; \n" + 
-			"public class PB {\n" + 
-			"	void foo() {\n" + 
-			"		class Local {\n" + 
-			"			void foo() {\n" + 
-			"			}\n" + 
-			"			class LocalMember1 {\n" + 
-			"				void foo() {\n" + 
-			"					class LocalMemberLocal {\n" + 
-			"						void foo() {\n" + 
-			"							f\n"+
-			"						}\n" + 
-			"					}\n" + 
-			"				}\n" + 
-			"			}\n" + 
-			"			class LocalMember2 {\n" + 
-			"				void foo() {\n" + 
-			"				}\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field into nested local type>";
-	String completeBehind = "f";
-	String expectedCompletionNodeToString = "<CompleteOnName:f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "f";
-	int cursorLocation = str.indexOf("f\n") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class PB {\n" + 
-		"  public PB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    class Local {\n" + 
-		"      class LocalMember1 {\n" + 
-		"        LocalMember1() {\n" + 
-		"        }\n" + 
-		"        void foo() {\n" + 
-		"          class LocalMemberLocal {\n" + 
-		"            LocalMemberLocal() {\n" + 
-		"            }\n" + 
-		"            void foo() {\n" + 
-		"              <CompleteOnName:f>;\n" + 
-		"            }\n" + 
-		"          }\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"      class LocalMember2 {\n" + 
-		"        LocalMember2() {\n" + 
-		"        }\n" + 
-		"        void foo() {\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"      Local() {\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testPC_1FSU4EF() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FSU4EF\n" + 
-			" */\n" + 
-			"import java.util.Vector;\n" + 
-			"public class PC {\n" + 
-			"	void foo() {\n" + 
-			"		class Inner {\n" + 
-			"			Vector v = new Vector();\n" + 
-			"			void foo() {\n" + 
-			"				Vector v = new Vector();\n" + 
-			"				v.addElement();\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field into local type>";
-	String completeBehind = "v.a";
-	String expectedCompletionNodeToString = "<CompleteOnName:v.a>";
-	String completionIdentifier = "a";
-	String expectedReplacedSource = "v.addElement";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import java.util.Vector;\n" + 
-		"public class PC {\n" + 
-		"  public PC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    class Inner {\n" + 
-		"      Vector v;\n" + 
-		"      Inner() {\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        Vector v;\n" + 
-		"        <CompleteOnName:v.a>;\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testQ_1FG1YU0() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FG1YU0\n" + 
-		" */\n" + 
-		"public class Q {\n" + 
-		"	void bar(boolean bbbb) {\n" + 
-		"		this.}\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "this.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:this.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "this.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class Q {\n" + 
-		"  public Q() {\n" + 
-		"  }\n" + 
-		"  void bar(boolean bbbb) {\n" + 
-		"    <CompleteOnMemberAccess:this.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testQA_1() {
-	String str = 
-			"package p; \n" + 
-			"class QAHelper {\n" + 
-			"	int i = 10;\n" + 
-			"	void f() {\n" + 
-			"		Chk.chkIntVal(\n" + 
-			"			\"err_0\", \n" + 
-			"			\"i\", \n" + 
-			"			this.i, \n" + 
-			"			i); \n" + 
-			"	}\n" + 
-			"	static class Y\n" + 
-			"		extends QAHelper {\n" + 
-			"		public void f() {\n" + 
-			"			super.f();\n" + 
-			"			int j = super.i;\n" + 
-			"		}\n" + 
-			"		public static void main(String a[]) {\n" + 
-			"			Y oy = new Y();\n" + 
-			"			oy.f();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"public class QA {\n" + 
-			"	static String s[] = \n" + 
-			"		{\"Dolby\", \"Thx\",}; \n" + 
-			"	void check() {\n" + 
-			"		new QAHelper().new Y().main(\n" + 
-			"			s); \n" + 
-			"	}\n" + 
-			"	static public void main(String args[]) {\n" + 
-			"		new QA().check();\n" + 
-			"		Chk.endTest(\"ciner111\");\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "new QAHelper().new Y().m";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new QAHelper().new Y().m>";
-	String completionIdentifier = "m";
-	String expectedReplacedSource = "main";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class QAHelper {\n" + 
-		"  static class Y extends QAHelper {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    public void f() {\n" + 
-		"    }\n" + 
-		"    public static void main(String[] a) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int i;\n" + 
-		"  QAHelper() {\n" + 
-		"  }\n" + 
-		"  void f() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class QA {\n" + 
-		"  static String[] s;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public QA() {\n" + 
-		"  }\n" + 
-		"  void check() {\n" + 
-		"    <CompleteOnMemberAccess:new QAHelper().new Y().m>;\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testQA_2() {
-	String str = 
-			"package p; \n" + 
-			"class QAHelper {\n" + 
-			"	int i = 10;\n" + 
-			"	void f() {\n" + 
-			"		Chk.chkIntVal(\n" + 
-			"			\"err_0\", \n" + 
-			"			\"i\", \n" + 
-			"			this.i, \n" + 
-			"			i); \n" + 
-			"	}\n" + 
-			"	static class Y\n" + 
-			"		extends QAHelper {\n" + 
-			"		public void f() {\n" + 
-			"			super.f();\n" + 
-			"			int j = super.i;\n" + 
-			"		}\n" + 
-			"		public static void main(String a[]) {\n" + 
-			"			Y oy = new Y();\n" + 
-			"			oy.f();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"public class QA {\n" + 
-			"	static String s[] = \n" + 
-			"		{\"Dolby\", \"Thx\",}; \n" + 
-			"	void check() {\n" + 
-			"		new QAHelper().new Y().main(\n" + 
-			"			s); \n" + 
-			"	}\n" + 
-			"	static public void main(String args[]) {\n" + 
-			"		new QA().check();\n" + 
-			"		Chk.endTest(\"ciner111\");\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of object creation>";
-	String completeBehind = "new QAHelper().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new QAHelper().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class QAHelper {\n" + 
-		"  static class Y extends QAHelper {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    public void f() {\n" + 
-		"    }\n" + 
-		"    public static void main(String[] a) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int i;\n" + 
-		"  QAHelper() {\n" + 
-		"  }\n" + 
-		"  void f() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class QA {\n" + 
-		"  static String[] s;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public QA() {\n" + 
-		"  }\n" + 
-		"  void check() {\n" + 
-		"    <CompleteOnMemberAccess:new QAHelper().>;\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testQA_3() {
-	String str = 
-			"package p; \n" + 
-			"class QAHelper {\n" + 
-			"	int i = 10;\n" + 
-			"	void f() {\n" + 
-			"		Chk.chkIntVal(\n" + 
-			"			\"err_0\", \n" + 
-			"			\"i\", \n" + 
-			"			this.i, \n" + 
-			"			i); \n" + 
-			"	}\n" + 
-			"	static class Y\n" + 
-			"		extends QAHelper {\n" + 
-			"		public void f() {\n" + 
-			"			super.f();\n" + 
-			"			int j = super.i;\n" + 
-			"		}\n" + 
-			"		public static void main(String a[]) {\n" + 
-			"			Y oy = new Y();\n" + 
-			"			oy.f();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"public class QA {\n" + 
-			"	static String s[] = \n" + 
-			"		{\"Dolby\", \"Thx\",}; \n" + 
-			"	void check() {\n" + 
-			"		new QAHelper().new Y().main(\n" + 
-			"			s); \n" + 
-			"	}\n" + 
-			"	static public void main(String args[]) {\n" + 
-			"		new QA().check();\n" + 
-			"		Chk.endTest(\"ciner111\");\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of object creation>";
-	String completeBehind = "new QAHelper().new Y().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new QAHelper().new Y().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class QAHelper {\n" + 
-		"  static class Y extends QAHelper {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    public void f() {\n" + 
-		"    }\n" + 
-		"    public static void main(String[] a) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int i;\n" + 
-		"  QAHelper() {\n" + 
-		"  }\n" + 
-		"  void f() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class QA {\n" + 
-		"  static String[] s;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public QA() {\n" + 
-		"  }\n" + 
-		"  void check() {\n" + 
-		"    <CompleteOnMemberAccess:new QAHelper().new Y().>;\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testQA_4() {
-	String str = 
-			"package p; \n" + 
-			"class QAHelper {\n" + 
-			"	int i = 10;\n" + 
-			"	void f() {\n" + 
-			"		Chk.chkIntVal(\n" + 
-			"			\"err_0\", \n" + 
-			"			\"i\", \n" + 
-			"			this.i, \n" + 
-			"			i); \n" + 
-			"	}\n" + 
-			"	static class Y\n" + 
-			"		extends QAHelper {\n" + 
-			"		public void f() {\n" + 
-			"			super.f();\n" + 
-			"			int j = super.i;\n" + 
-			"		}\n" + 
-			"		public static void main(String a[]) {\n" + 
-			"			Y oy = new Y();\n" + 
-			"			oy.f();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"public class QA {\n" + 
-			"	static String s[] = \n" + 
-			"		{\"Dolby\", \"Thx\",}; \n" + 
-			"	void check() {\n" + 
-			"		new QAHelper().new Y().main(\n" + 
-			"			s); \n" + 
-			"	}\n" + 
-			"	static public void main(String args[]) {\n" + 
-			"		new QA().check();\n" + 
-			"		Chk.endTest(\"ciner111\");\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of object creation>";
-	String completeBehind = "new QA().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new QA().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class QAHelper {\n" + 
-		"  static class Y extends QAHelper {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    public void f() {\n" + 
-		"    }\n" + 
-		"    public static void main(String[] a) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int i;\n" + 
-		"  QAHelper() {\n" + 
-		"  }\n" + 
-		"  void f() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class QA {\n" + 
-		"  static String[] s;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public QA() {\n" + 
-		"  }\n" + 
-		"  void check() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    <CompleteOnMemberAccess:new QA().>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testQB_1FIK820() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FIK820\n" + 
-			" */\n" + 
-			"public class QB {\n" + 
-			"	void foo() {\n" + 
-			"		{\n" + 
-			"		}\n" + 
-			"		.}\n" + 
-			"}\n";
-
-	String testName = "<complete on block (no answers wanted)>";
-	String completeBehind = ".";
-	String expectedCompletionNodeToString = "<CompleteOnName:>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(".}") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class QB {\n" + 
-		"  public QB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testR_1FGD31E() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGD31E\n" + 
-		" */\n" + 
-		"public class R {\n" + 
-		"	void moo() {\n" + 
-		"		b }\n" + 
-		"	void bar() {\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "b";
-	String expectedCompletionNodeToString = "<CompleteOnName:b>";
-	String completionIdentifier = "b";
-	String expectedReplacedSource = "b";
-	int cursorLocation = str.indexOf("b }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class R {\n" + 
-		"  public R() {\n" + 
-		"  }\n" + 
-		"  void moo() {\n" + 
-		"    <CompleteOnName:b>;\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testRA_1() {
-	String str = 
-			"package p; \n" + 
-			"public class RA extends A {\n" + 
-			"	private int f = 5;\n" + 
-			"	int i(int k) {\n" + 
-			"	}\n" + 
-			"	class B extends I {\n" + 
-			"		void foo();\n" + 
-			"		class C extends Z {\n" + 
-			"		}\n" + 
-			"		final int fo;\n" + 
-			"	}\n" + 
-			"	final void foo(k j) {\n" + 
-			"	}\n" + 
-			"	o o() throws Exc, Exc {\n" + 
-			"	}\n" + 
-			"	static {\n" + 
-			"		this.ff = 5;\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on incorrect this call>";
-	String completeBehind = "t";
-	String expectedCompletionNodeToString = "<CompleteOnName:t>";
-	String completionIdentifier = "t";
-	String expectedReplacedSource = "this";
-	int cursorLocation = str.indexOf("this.ff") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class RA extends A {\n" + 
-		"  class B extends I {\n" + 
-		"    class C extends Z {\n" + 
-		"      C() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    final int fo;\n" + 
-		"    B() {\n" + 
-		"    }\n" + 
-		"    void foo();\n" + 
-		"  }\n" + 
-		"  private int f;\n" + 
-		"  static {\n" + 
-		"    <CompleteOnName:t>;\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public RA() {\n" + 
-		"  }\n" + 
-		"  int i(int k) {\n" + 
-		"  }\n" + 
-		"  final void foo(k j) {\n" + 
-		"  }\n" + 
-		"  o o() throws Exc, Exc {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testRA_2() {
-	String str = 
-			"package p; \n" + 
-			"public class RA extends A {\n" + 
-			"	private int f = 5;\n" + 
-			"	int i(int k) {\n" + 
-			"	}\n" + 
-			"	class B extends I {\n" + 
-			"		void foo();\n" + 
-			"		class C extends Z {\n" + 
-			"		}\n" + 
-			"		final int fo;\n" + 
-			"	}\n" + 
-			"	final void foo(k j) {\n" + 
-			"	}\n" + 
-			"	o o() throws Exc, Exc {\n" + 
-			"	}\n" + 
-			"	static {\n" + 
-			"		this.ff = 5;\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on t>";
-	String completeBehind = "t";
-	String expectedCompletionNodeToString = "<CompleteOnName:t>";
-	String completionIdentifier = "t";
-	String expectedReplacedSource = "this";
-	int cursorLocation = str.indexOf("this") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class RA extends A {\n" + 
-		"  class B extends I {\n" + 
-		"    class C extends Z {\n" + 
-		"      C() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    final int fo;\n" + 
-		"    B() {\n" + 
-		"    }\n" + 
-		"    void foo();\n" + 
-		"  }\n" + 
-		"  private int f;\n" + 
-		"  static {\n" + 
-		"    <CompleteOnName:t>;\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public RA() {\n" + 
-		"  }\n" + 
-		"  int i(int k) {\n" + 
-		"  }\n" + 
-		"  final void foo(k j) {\n" + 
-		"  }\n" + 
-		"  o o() throws Exc, Exc {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testRA_3() {
-	String str = 
-			"package p; \n" + 
-			"public class RA extends A {\n" + 
-			"	private int f = 5;\n" + 
-			"	int i(int k) {\n" + 
-			"	}\n" + 
-			"	class B extends I {\n" + 
-			"		void foo();\n" + 
-			"		class C extends Z {\n" + 
-			"		}\n" + 
-			"		final int fo;\n" + 
-			"	}\n" + 
-			"	final void foo(k j) {\n" + 
-			"	}\n" + 
-			"	o o() throws Exc, Exc {\n" + 
-			"	}\n" + 
-			"	static {\n" + 
-			"		this.ff = 5;\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on exception type>";
-	String completeBehind = "Exc";
-	String expectedCompletionNodeToString = "<CompleteOnException:Exc>";
-	String completionIdentifier = "Exc";
-	String expectedReplacedSource = "Exc";
-	int cursorLocation = str.indexOf("Exc {") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class RA extends A {\n" + 
-		"  class B extends I {\n" + 
-		"    class C extends Z {\n" + 
-		"      C() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    final int fo;\n" + 
-		"    B() {\n" + 
-		"    }\n" + 
-		"    void foo();\n" + 
-		"  }\n" + 
-		"  private int f;\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public RA() {\n" + 
-		"  }\n" + 
-		"  int i(int k) {\n" + 
-		"  }\n" + 
-		"  final void foo(k j) {\n" + 
-		"  }\n" + 
-		"  o o() throws Exc, <CompleteOnException:Exc> {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testRB_1FI74S3() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FI74S3\n" + 
-			" */\n" + 
-			"public class RB {\n" + 
-			"	int[] table;\n" + 
-			"	void foo() {\n" + 
-			"		int x = table.}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of arry>";
-	String completeBehind = "table.";
-	String expectedCompletionNodeToString = "<CompleteOnName:table.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "table.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class RB {\n" + 
-		"  int[] table;\n" + 
-		"  public RB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x = <CompleteOnName:table.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testS_1FGF64P_1() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGF64P\n" + 
-		" */\n" + 
-		"public class S {\n" + 
-		"	{\n" + 
-		"		new Y()..}\n" + 
-		"	class Y {\n" + 
-		"		void foo() {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on incorrect call>";
-	String completeBehind = "new Y()..";
-	String expectedCompletionNodeToString = "<CompleteOnName:>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class S {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      <CompleteOnName:>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public S() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testS_1FGF64P_2() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGF64P\n" + 
-		" */\n" + 
-		"public class S {\n" + 
-		"	{\n" + 
-		"		new Y()..}\n" + 
-		"	class Y {\n" + 
-		"		void foo() {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field of object creation>";
-	String completeBehind = "new Y().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new Y().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class S {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"    <CompleteOnMemberAccess:new Y().>;\n" + 
-		"  }\n" + 
-		"  public S() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testS_1FGF64P_3() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGF64P\n" + 
-		" */\n" + 
-		"public class S {\n" + 
-		"	{\n" + 
-		"		new Y()..}\n" + 
-		"	class Y {\n" + 
-		"		void foo() {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on incorrect call>";
-	String completeBehind = "new Y()..";
-	String expectedCompletionNodeToString = "<CompleteOnName:>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class S {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      <CompleteOnName:>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public S() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testSA() {
-	String str = 
-			"package p; \n" + 
-			"public class SA {\n" + 
-			"	public sy void foo() {\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method modifier>";
-	String completeBehind = "sy";
-	String expectedCompletionNodeToString = "<CompleteOnType:sy>";
-	String completionIdentifier = "sy";
-	String expectedReplacedSource = "sy";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class SA {\n" + 
-		"  <CompleteOnType:sy>;\n" + 
-		"  public SA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testSB_1FILFDG() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FILFDG\n" + 
-			" */\n" + 
-			"public class SB {\n" + 
-			"	public void foo() {\n" + 
-			"		String s = \"hello\n" + 
-			"		int}\n" + 
-			"}\n";
-
-	String testName = "<complete on field declaration type>";
-	String completeBehind = "int";
-	String expectedCompletionNodeToString = "<CompleteOnName:int>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class SB {\n" + 
-		"  public SB() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    String s;\n" + 
-		"    <CompleteOnName:int>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testT_1FGF64P() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGF64P\n" + 
-		" */\n" + 
-		"public class T {\n" + 
-		"	{\n" + 
-		"		new Y().}\n" + 
-		"	class Y {\n" + 
-		"		void foo() {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on object creation>";
-	String completeBehind = "new Y().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new Y().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class T {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"    <CompleteOnMemberAccess:new Y().>;\n" + 
-		"  }\n" + 
-		"  public T() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testTA_1FHISJJ_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHISJJ\n" + 
-			" */\n" + 
-			"public class TA {\n" + 
-			"	void foo() {\n" + 
-			"		Object[] items = \n" + 
-			"			{\n" + 
-			"				\"Mark unublishable\", \n" + 
-			"				null, \n" + 
-			"				\"Properties...\"}\n" + 
-			"		.;\n" + 
-			"		items.}\n" + 
-			"}\n";
-
-	String testName = "<complete on array intializer value>";
-	String completeBehind = "n";
-	String expectedCompletionNodeToString = "<CompleteOnName:n>";
-	String completionIdentifier = "n";
-	String expectedReplacedSource = "null";
-	int cursorLocation = str.indexOf("null, ") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class TA {\n" + 
-		"  public TA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] items = {<CompleteOnName:n>};\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testTA_1FHISJJ_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHISJJ\n" + 
-			" */\n" + 
-			"public class TA {\n" + 
-			"	void foo() {\n" + 
-			"		Object[] items = \n" + 
-			"			{\n" + 
-			"				\"Mark unublishable\", \n" + 
-			"				null, \n" + 
-			"				\"Properties...\"}\n" + 
-			"		.;\n" + 
-			"		items.}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array intializer>";
-	String completeBehind =
-			"			{\n" + 
-			"				\"Mark unublishable\", \n" + 
-			"				null, \n" + 
-			"				\"Properties...\"}\n" + 
-			"		.";
-	String expectedCompletionNodeToString = "<CompleteOnName:>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class TA {\n" + 
-		"  public TA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] items;\n" + 
-		"    <CompleteOnName:>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testTA_1FHISJJ_3() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHISJJ\n" + 
-			" */\n" + 
-			"public class TA {\n" + 
-			"	void foo() {\n" + 
-			"		Object[] items = \n" + 
-			"			{\n" + 
-			"				\"Mark unublishable\", \n" + 
-			"				null, \n" + 
-			"				\"Properties...\"}\n" + 
-			"		.;\n" + 
-			"		items.}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array>";
-	String completeBehind = "items.";
-	String expectedCompletionNodeToString = "<CompleteOnName:items.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "items.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class TA {\n" + 
-		"  public TA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] items;\n" + 
-		"    <CompleteOnName:items.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testTB_1FHSLMQ() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHSLMQ\n" + 
-			" */\n" + 
-			"public class TB {\n" + 
-			"	void foo() {\n" + 
-			"		if (true)\n" + 
-			"			System.out.println(\"\");\n" + 
-			"		e }\n" + 
-			"}\n";
-
-	String testName = "<complete on else keyword>";
-	String completeBehind = "e";
-	String expectedCompletionNodeToString = "<CompleteOnName:e>";
-	String completionIdentifier = "e";
-	String expectedReplacedSource = "e";
-	int cursorLocation = str.indexOf("e }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class TB {\n" + 
-		"  public TB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:e>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testU_1FGGUME() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGGUME\n" + 
-		" */\n" + 
-		"public class U {\n" + 
-		"	public static final int Source = \n" + 
-		"		5; \n" + 
-		"}\n";
-
-	String testName = "<complete on digit>";
-	String completeBehind = "5";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "";
-	String expectedReplacedSource = NONE;
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString = null;
-
-	try {
-		checkMethodParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName); 
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_NUMBER);
-	}
-}
-public void testUA_1FHISJJ_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHISJJ\n" + 
-			" */\n" + 
-			"public class UA {\n" + 
-			"	void foo() {\n" + 
-			"		Object[] items = \n" + 
-			"			new String[] {\n" + 
-			"				\"Mark unublishable\", \n" + 
-			"				null, \n" + 
-			"				\"Properties...\"}\n" + 
-			"		.;\n" + 
-			"		items.}\n" + 
-			"}\n";
-
-	String testName = "<complete on array initializer>";
-	String completeBehind =
-			"new String[] {\n" + 
-			"				\"Mark unublishable\", \n" + 
-			"				null, \n" + 
-			"				\"Properties...\"}\n" + 
-			"		.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new String[]{\"Mark unublishable\", null, \"Properties...\"}.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class UA {\n" + 
-		"  public UA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] items = <CompleteOnMemberAccess:new String[]{\"Mark unublishable\", null, \"Properties...\"}.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testUA_1FHISJJ_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHISJJ\n" + 
-			" */\n" + 
-			"public class UA {\n" + 
-			"	void foo() {\n" + 
-			"		Object[] items = \n" + 
-			"			new String[] {\n" + 
-			"				\"Mark unublishable\", \n" + 
-			"				null, \n" + 
-			"				\"Properties...\"}\n" + 
-			"		.;\n" + 
-			"		items.}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array>";
-	String completeBehind = "items.";
-	String expectedCompletionNodeToString = "<CompleteOnName:items.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "items.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class UA {\n" + 
-		"  public UA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] items;\n" + 
-		"    <CompleteOnName:items.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testUB_1FSBZ02() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FSBZ02\n" + 
-			" */\n" + 
-			"class UB {\n" + 
-			"	void bar() {\n" + 
-			"	}\n" + 
-			"	class UBMember {\n" + 
-			"		void bar2() {\n" + 
-			"		}\n" + 
-			"		void foo() {\n" + 
-			"			b\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on keyword>";
-	String completeBehind = "b";
-	String expectedCompletionNodeToString = "<CompleteOnName:b>";
-	String completionIdentifier = "b";
-	String expectedReplacedSource = "b";
-	int cursorLocation = str.indexOf("b\n") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class UB {\n" + 
-		"  class UBMember {\n" + 
-		"    UBMember() {\n" + 
-		"    }\n" + 
-		"    void bar2() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"      <CompleteOnName:b>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  UB() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testV_1FGGUOO_1() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGGUOO\n" + 
-		" */\n" + 
-		"public class V i java\n" + 
-		"	.io\n" + 
-		"	.Serializable {\n" + 
-		"}\n";
-
-	String testName = "<complete on implements keyword>";
-	String completeBehind = "i";
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:i>";
-	String completionIdentifier = "i";
-	String expectedReplacedSource = "i";
-	int cursorLocation = str.indexOf("i java") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class V extends <CompleteOnKeyword:i> {\n" + 
-		"  {\n" +
-		"  }\n" +
-		"  public V() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testV_1FGGUOO_2() {
-	String str = 
-		"package x.y.z; \n" + 
-		"/**\n" + 
-		" * 1FGGUOO\n" + 
-		" */\n" + 
-		"public class V implements java.io.Serializable {\n" + 
-		"}\n";
-
-	String testName = "<complete on package>";
-	String completeBehind = "y";
-	String expectedCompletionNodeToString = "<CompleteOnPackage:x.y>";
-	String completionIdentifier = "y";
-	String expectedReplacedSource =
-		"x.y.z";
-	int cursorLocation = str.indexOf("y") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package <CompleteOnPackage:x.y>;\n" + 
-		"public class V implements java.io.Serializable {\n" + 
-		"  public V() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testVA_1FHISJJ_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHISJJ\n" + 
-			" */\n" + 
-			"public class VA {\n" + 
-			"	void foo() {\n" + 
-			"		Object item = new String() {\n" + 
-			"			public boolean equals() {\n" + 
-			"				return false;\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		.;\n" + 
-			"		item.}\n" + 
-			"}\n";
-
-	String testName = "<complete on anonymous type declaration>";
-	String completeBehind =
-			"new String() {\n" + 
-			"			public boolean equals() {\n" + 
-			"				return false;\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new String() {\n" + 
-		"  public boolean equals() {\n" + 
-		"    return false;\n" + 
-		"  }\n" + 
-		"}.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class VA {\n" + 
-		"  public VA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object item = <CompleteOnMemberAccess:new String() {\n" + 
-		"  public boolean equals() {\n" + 
-		"    return false;\n" + 
-		"  }\n" + 
-		"}.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testVA_1FHISJJ_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FHISJJ\n" + 
-			" */\n" + 
-			"public class VA {\n" + 
-			"	void foo() {\n" + 
-			"		Object item = new String() {\n" + 
-			"			public boolean equals() {\n" + 
-			"				return false;\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		.;\n" + 
-			"		item.}\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable>";
-	String completeBehind = "item.";
-	String expectedCompletionNodeToString = "<CompleteOnName:item.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "item.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class VA {\n" + 
-		"  public VA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object item;\n" + 
-		"    <CompleteOnName:item.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testVB_1() {
-	String str = 
-		"package p; \n" + 
-		"public class VB {\n" + 
-		"	void foo() {\n" + 
-		"		new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}\n" + 
-		"		.;\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on local variable name into anonymous declaration>";
-	String completeBehind = "v";
-	String expectedCompletionNodeToString = "<CompleteOnName:v>";
-	String completionIdentifier = "v";
-	String expectedReplacedSource = "v";
-	int cursorLocation = str.indexOf("v }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class VB {\n" + 
-		"  public VB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new java.io.File(\"error\") {\n" + 
-		"      protected void runTest() {\n" + 
-		"        Vector v11111;\n" + 
-		"        <CompleteOnName:v>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-// TODO excluded test (completion on field access on anonymous inner class with syntax error)
-public void _testVB_2() {
-	String str = 
-		"package p; \n" + 
-		"public class VB {\n" + 
-		"	void foo() {\n" + 
-		"		new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}.\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on anonymous type declaration>";
-	String completeBehind =
-		"new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}.";
-	String expectedCompletionNodeToString = 
-		"<CompleteOnMemberAccess:new java.io.File(\"error\") {\n" + 
-		"  protected void runTest() {\n" + 
-		"  }\n" +
-		"}.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource =
-		"new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class VB {\n" + 
-		"  public VB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new java.io.File(\"error\") {\n" + 
-		"  protected void runTest() {\n" + 
-		"  }\n" +
-		"}.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testVB_3() {
-	String str = 
-		"package p; \n" + 
-		"public class VB {\n" + 
-		"	void foo() {\n" + 
-		"		new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}\n" + 
-		"		.;\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on constructor>";
-	String completeBehind = "new java.io.File(";
-	String expectedCompletionNodeToString = "<CompleteOnAllocationExpression:new java.io.File()>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class VB {\n" + 
-		"  public VB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnAllocationExpression:new java.io.File()>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-// TODO excluded test (completion on field access on anonymous inner class with syntax error)
-public void _testVB_4() {
-	String str = 
-		"package p; \n" + 
-		"public class VB {\n" + 
-		"	void foo() {\n" + 
-		"		new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}\n" +
-		"		.;\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on anonymous type declaration with dummy spaces>";
-	String completeBehind =
-		"new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}\n" +
-		"		.";
-	String expectedCompletionNodeToString = 
-		"<CompleteOnName:new java.io.File(\"error\") {\n" + 
-		"  protected void runTest() {\n" + 
-		"  }\n" + 
-		"}.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource =
-		"new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}\n" +
-		"		.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class VB {\n" + 
-		"  public VB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new java.io.File(\"error\") {\n" + 
-		"  protected void runTest() {\n" + 
-		"  }\n" +
-		"}.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-// TODO excluded test (completion on field access on anonymous inner class with syntax error)
-public void _testVB_5() {
-	String str = 
-		"package p; \n" + 
-		"public class VB {\n" + 
-		"	void foo() {\n" + 
-		"		new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}.;\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on anonymous type declaration with trailing semi-colon>";
-	String completeBehind =
-		"new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}.";
-	String expectedCompletionNodeToString = 
-		"<CompleteOnMemberAccess:new java.io.File(\"error\") {\n" + 
-		"  protected void runTest() {\n" + 
-		"  }\n" +
-		"}.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource =
-		"new java.io.File(\"error\") {\n" + 
-		"			protected void runTest() {\n" + 
-		"				Vector v11111 = new Vector();\n" + 
-		"				v }\n" + 
-		"		}.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class VB {\n" + 
-		"  public VB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new java.io.File(\"error\") {\n" + 
-		"  protected void runTest() {\n" + 
-		"  }\n" +
-		"}.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testW_1FGGUS4() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGGUS4\n" + 
-		" */\n" + 
-		"public class W {\n" + 
-		"	public static final int LA = \n" + 
-		"		1; \n" + 
-		"	public static final int LAB = \n" + 
-		"		2; \n" + 
-		"	public static final int LABO = \n" + 
-		"		4; \n" + 
-		"	public int produceDebugAttributes = \n" + 
-		"		LABO; \n" + 
-		"}\n";
-
-	String testName = "<complete on field initializer>";
-	String completeBehind = "L";
-	String expectedCompletionNodeToString = "<CompleteOnName:L>";
-	String completionIdentifier = "L";
-	String expectedReplacedSource = "LABO";
-	int cursorLocation = str.indexOf("LABO;") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class W {\n" + 
-		"  public static final int LA;\n" + 
-		"  public static final int LAB;\n" + 
-		"  public static final int LABO;\n" + 
-		"  public int produceDebugAttributes = <CompleteOnName:L>;\n" + 
-		"  public W() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testWA_1() {
-	String str = 
-			"package p; \n" + 
-			"public class WA {\n" + 
-			"	void foo() {\n" + 
-			"		int value = 10;\n" + 
-			"		v int[] tab = new int[value];\n" + 
-			"	}\n";
-
-	String testName = "<complete on array size value>";
-	String completeBehind = "v";
-	String expectedCompletionNodeToString = "<CompleteOnName:v>";
-	String completionIdentifier = "v";
-	String expectedReplacedSource = "value";
-	int cursorLocation = str.indexOf("value];") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class WA {\n" + 
-		"  public WA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int value;\n" + 
-		"    int[] tab = new int[<CompleteOnName:v>];\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testWA_2() {
-	String str = 
-			"package p; \n" + 
-			"public class WA {\n" + 
-			"	void foo() {\n" + 
-			"		int value = 10;\n" + 
-			"		v int[] tab = new int[value];\n" + 
-			"	}\n";
-
-	String testName = "<complete on corrupter local variable declaration>";
-	String completeBehind = "v";
-	String expectedCompletionNodeToString = "<CompleteOnName:v>";
-	String completionIdentifier = "v";
-	String expectedReplacedSource = "v";
-	int cursorLocation = str.indexOf("v int[]") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class WA {\n" + 
-		"  public WA() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int value;\n" + 
-		"    <CompleteOnName:v>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testWB_1FI313C() {
-	String str = 
-			"package p; \n" + 
-			"/*\n" + 
-			" * 1FI313C\n" + 
-			" */\n" + 
-			"class WBHelper {\n" + 
-			"	public int fieldPublic;\n" + 
-			"	protected int fieldProtected;\n" + 
-			"	private int fieldPrivate;\n" + 
-			"	int fieldDefault;\n" + 
-			"	static void staticFoo() {\n" + 
-			"	}\n" + 
-			"	static int i = d;\n" + 
-			"	int neuneu1() {\n" + 
-			"	}\n" + 
-			"	void neuneu2() {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"public class WB\n" + 
-			"	extends WBHelper {\n" + 
-			"	void foo() {\n" + 
-			"		BIJOUR[] b = \n" + 
-			"			new java.lang.Number[]; \n" + 
-			"		java.lang.Short s;\n" + 
-			"		b[1].}\n" + 
-			"	B() {\n" + 
-			"	}\n" + 
-			"	B(int) {\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of array element>";
-	String completeBehind = "b[1].";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:b[1].>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"class WBHelper {\n" + 
-		"  public int fieldPublic;\n" + 
-		"  protected int fieldProtected;\n" + 
-		"  private int fieldPrivate;\n" + 
-		"  int fieldDefault;\n" + 
-		"  static int i;\n" + 
-		"  WBHelper() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  static void staticFoo() {\n" + 
-		"  }\n" + 
-		"  int neuneu1() {\n" + 
-		"  }\n" + 
-		"  void neuneu2() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class WB extends WBHelper {\n" + 
-		"  public WB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    BIJOUR[] b;\n" + 
-		"    java.lang.Short s;\n" + 
-		"    <CompleteOnMemberAccess:b[1].>;\n" + 
-		"  }\n" + 
-		"  B() {\n" + 
-		"  }\n" + 
-		"  B() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testX_1FGGV8C_1() {
-	String str = 
-		"package p; \n" + 
-		"import p2.Y; \n" + 
-		"/**\n" + 
-		" * 1FGGV8C and 1FGPE8E\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"	public static final float Vars; \n" + 
-		"	public static final float Lines; \n" + 
-		"	public static final float Source; \n" + 
-		"	public static final float UnreachableCode; \n" + 
-		"	public static final float produceDebugAttributes; \n" + 
-		"	void foo() {\n" + 
-		"		int locale, \n" + 
-		"			errorThreshold, \n" + 
-		"			preserveAllLocalVariables; \n" + 
-		"		return new Y[] {\n" + 
-		"			new Y(\n" + 
-		"				\"debug.vars\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Vars)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.lines\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Lines)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.source\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Source)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.preserveAllLocals\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				preserveAllLocalVariables\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"optionalError.unReachableCode\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(errorThreshold\n" + 
-		"					& UnreachableCode)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1)\n" + 
-		"				 }\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on argument of anonymous type declaration>";
-	String completeBehind = "t";
-	String expectedCompletionNodeToString = "<CompleteOnName:t>";
-	String completionIdentifier = "t";
-	String expectedReplacedSource = "this";
-	int cursorLocation = str.indexOf("this, ") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import p2.Y;\n" + 
-		"public class X {\n" + 
-		"  public static final float Vars;\n" + 
-		"  public static final float Lines;\n" + 
-		"  public static final float Source;\n" + 
-		"  public static final float UnreachableCode;\n" + 
-		"  public static final float produceDebugAttributes;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int locale;\n" + 
-		"    int errorThreshold;\n" + 
-		"    int preserveAllLocalVariables;\n" + 
-		"    new Y(\"debug.vars\", <CompleteOnName:t>);\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testX_1FGGV8C_2() {
-	String str = 
-		"package p; \n" + 
-		"import p2.YZA; \n" + 
-		"/**\n" + 
-		" * 1FGGV8C and 1FGPE8E\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"	public static final float Vars; \n" + 
-		"	public static final float Lines; \n" + 
-		"	public static final float Source; \n" + 
-		"	public static final float UnreachableCode; \n" + 
-		"	public static final float produceDebugAttributes; \n" + 
-		"	void foo() {\n" + 
-		"		int locale, \n" + 
-		"			errorThreshold, \n" + 
-		"			preserveAllLocalVariables; \n" + 
-		"		return new YZA[] {\n" + 
-		"			new YZA(\n" + 
-		"				\"debug.vars\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Vars)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new YZA(\n" + 
-		"				\"debug.lines\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Lines)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new YZA(\n" + 
-		"				\"debug.source\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Source)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new YZA(\n" + 
-		"				\"debug.preserveAllLocals\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				preserveAllLocalVariables\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new YZA(\n" + 
-		"				\"optionalError.unReachableCode\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(errorThreshold\n" + 
-		"					& UnreachableCode)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1)\n" + 
-		"				 }\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on anonymous type declaration into a return statement>";
-	String completeBehind = "Y";
-	String expectedCompletionNodeToString = "<CompleteOnType:Y>";
-	String completionIdentifier = "Y";
-	String expectedReplacedSource = "YZA";
-	int cursorLocation = str.indexOf("YZA[]") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import p2.YZA;\n" + 
-		"public class X {\n" + 
-		"  public static final float Vars;\n" + 
-		"  public static final float Lines;\n" + 
-		"  public static final float Source;\n" + 
-		"  public static final float UnreachableCode;\n" + 
-		"  public static final float produceDebugAttributes;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int locale;\n" + 
-		"    int errorThreshold;\n" + 
-		"    int preserveAllLocalVariables;\n" + 
-		"    return new <CompleteOnType:Y>();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testX_1FGGV8C_3() {
-	String str = 
-		"package p; \n" + 
-		"import p2.YZA; \n" + 
-		"/**\n" + 
-		" * 1FGGV8C and 1FGPE8E\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"	public static final float Vars; \n" + 
-		"	public static final float Lines; \n" + 
-		"	public static final float Source; \n" + 
-		"	public static final float UnreachableCode; \n" + 
-		"	public static final float produceDebugAttributes; \n" + 
-		"	void foo() {\n" + 
-		"		int locale, \n" + 
-		"			errorThreshold, \n" + 
-		"			preserveAllLocalVariables; \n" + 
-		"		return new YZA[] {\n" + 
-		"			new YZA(\n" + 
-		"				\"debug.vars\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Vars)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new YZA(\n" + 
-		"				\"debug.lines\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Lines)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new YZA(\n" + 
-		"				\"debug.source\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Source)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new YZA(\n" + 
-		"				\"debug.preserveAllLocals\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				preserveAllLocalVariables\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new YZA(\n" + 
-		"				\"optionalError.unReachableCode\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(errorThreshold\n" + 
-		"					& UnreachableCode)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1)\n" + 
-		"				 }\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on anonymous type declaration nested into an array initializer>";
-	String completeBehind = "Y";
-	String expectedCompletionNodeToString = "<CompleteOnType:Y>";
-	String completionIdentifier = "Y";
-	String expectedReplacedSource = "YZA";
-	int cursorLocation = str.indexOf("YZA(") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import p2.YZA;\n" + 
-		"public class X {\n" + 
-		"  public static final float Vars;\n" + 
-		"  public static final float Lines;\n" + 
-		"  public static final float Source;\n" + 
-		"  public static final float UnreachableCode;\n" + 
-		"  public static final float produceDebugAttributes;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int locale;\n" + 
-		"    int errorThreshold;\n" + 
-		"    int preserveAllLocalVariables;\n" + 
-		"    new YZA[]{new <CompleteOnType:Y>()};\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testX_1FGGV8C_4() {
-	String str = 
-		"package p; \n" + 
-		"import p2.Y; \n" + 
-		"/**\n" + 
-		" * 1FGGV8C and 1FGPE8E\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"	public static final float Vars; \n" + 
-		"	public static final float Lines; \n" + 
-		"	public static final float Source; \n" + 
-		"	public static final float UnreachableCode; \n" + 
-		"	public static final float produceDebugAttributes; \n" + 
-		"	void foo() {\n" + 
-		"		int locale, \n" + 
-		"			errorThreshold, \n" + 
-		"			preserveAllLocalVariables; \n" + 
-		"		return new Y[] {\n" + 
-		"			new Y(\n" + 
-		"				\"debug.vars\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Vars)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.lines\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Lines)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.source\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Source)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.preserveAllLocals\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				preserveAllLocalVariables\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"optionalError.unReachableCode\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(errorThreshold\n" + 
-		"					& UnreachableCode)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1)\n" + 
-		"				 }\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field into array intializer>";
-	String completeBehind = "n";
-	String expectedCompletionNodeToString = "<CompleteOnName:n>";
-	String completionIdentifier = "n";
-	String expectedReplacedSource = "new";
-	int cursorLocation = str.indexOf("new Y(") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import p2.Y;\n" + 
-		"public class X {\n" + 
-		"  public static final float Vars;\n" + 
-		"  public static final float Lines;\n" + 
-		"  public static final float Source;\n" + 
-		"  public static final float UnreachableCode;\n" + 
-		"  public static final float produceDebugAttributes;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int locale;\n" + 
-		"    int errorThreshold;\n" + 
-		"    int preserveAllLocalVariables;\n" + 
-		"    new Y[]{<CompleteOnName:n>};\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testX_1FGPE8E() {
-	String str = 
-		"package p; \n" + 
-		"import p2.Y; \n" + 
-		"/**\n" + 
-		" * 1FGGV8C and 1FGPE8E\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"	public static final float Vars; \n" + 
-		"	public static final float Lines; \n" + 
-		"	public static final float Source; \n" + 
-		"	public static final float UnreachableCode; \n" + 
-		"	public static final float produceDebugAttributes; \n" + 
-		"	void foo() {\n" + 
-		"		int locale, \n" + 
-		"			errorThreshold, \n" + 
-		"			preserveAllLocalVariables; \n" + 
-		"		return new Y[] {\n" + 
-		"			new Y(\n" + 
-		"				\"debug.vars\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Vars)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.lines\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Lines)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.source\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(produceDebugAttributes\n" + 
-		"					& Source)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"debug.preserveAllLocals\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				preserveAllLocalVariables\n" + 
-		"					? 0\n" + 
-		"					: 1), \n" + 
-		"			new Y(\n" + 
-		"				\"optionalError.unReachableCode\", \n" + 
-		"				this, \n" + 
-		"				locale, \n" + 
-		"				(errorThreshold\n" + 
-		"					& UnreachableCode)\n" + 
-		"					!= 0\n" + 
-		"					? 0\n" + 
-		"					: 1)\n" + 
-		"				 }\n" + 
-		"	}\n" + 
-		"}\n";
-
-	String testName = "<complete on method/field into return statement>";
-	String completeBehind = "n";
-	String expectedCompletionNodeToString = "<CompleteOnName:n>";
-	String completionIdentifier = "n";
-	String expectedReplacedSource = "new";
-	int cursorLocation = str.indexOf("new Y[]") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import p2.Y;\n" + 
-		"public class X {\n" + 
-		"  public static final float Vars;\n" + 
-		"  public static final float Lines;\n" + 
-		"  public static final float Source;\n" + 
-		"  public static final float UnreachableCode;\n" + 
-		"  public static final float produceDebugAttributes;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int locale;\n" + 
-		"    int errorThreshold;\n" + 
-		"    int preserveAllLocalVariables;\n" + 
-		"    return <CompleteOnName:n>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-// Disabled since javadoc completion has been implemented
-public void _testXA_1FGGUQF_1FHSL8H_1() {
-	String str = 
-			"// int\n" + 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGGUQF and 1FHSL8H\n" + 
-			" */\n" + 
-			"/**\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"/*\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"// int\n" + 
-			"/**\n" + 
-			"int.\n" + 
-			" * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			" */\n" + 
-			"/**\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"public class XA {\n" + 
-			"	//  int\n" + 
-			"	/*  int */\n" + 
-			"	/** int */\n" + 
-			"	/**\n" + 
-			"	int.\n" + 
-			"	 * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			"	 */\n" + 
-			"	void /* int */\n" + 
-			"	foo() {\n" + 
-			"		//  int\n" + 
-			"		/*  int */\n" + 
-			"		/** int */\n" + 
-			"	}\n" + 
-			"	/**\n" + 
-			"	int.\n" + 
-			"	 * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			"	 */\n" + 
-			"	int field /* int */\n" + 
-			"	;\n" + 
-			"	/*\n" + 
-			"	    int\n" + 
-			"	*/\n" + 
-			"	static {\n" + 
-			"		// int\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"//  int\n" + 
-			"/*  int */\n" + 
-			"/** int */\n";
-
-	String testName = "<complete on comment>";
-	String completeBehind = "int.";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "";
-	String expectedReplacedSource = NONE;
-	int cursorLocation = str.indexOf("int.\n") + completeBehind.length() - 1;
-	String expectedUnitDisplayString = null;
-
-	try {
-		checkMethodParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName); 
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_COMMENT);
-	}
-}
-public void testXA_1FGGUQF_1FHSL8H_2() {
-	String str = 
-			"// int\n" + 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGGUQF and 1FHSL8H\n" + 
-			" */\n" + 
-			"/**\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"/*\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"// int\n" + 
-			"/**\n" + 
-			"int.\n" + 
-			" * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			" */\n" + 
-			"/**\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"public class XA {\n" + 
-			"	//  int\n" + 
-			"	/*  int */\n" + 
-			"	/** int */\n" + 
-			"	/**\n" + 
-			"	int.\n" + 
-			"	 * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			"	 */\n" + 
-			"	void /* int */\n" + 
-			"	foo() {\n" + 
-			"		//  int\n" + 
-			"		/*  int */\n" + 
-			"		/** int */\n" + 
-			"	}\n" + 
-			"	/**\n" + 
-			"	int.\n" + 
-			"	 * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			"	 */\n" + 
-			"	int field /* int */\n" + 
-			"	;\n" + 
-			"	/*\n" + 
-			"	    int\n" + 
-			"	*/\n" + 
-			"	static {\n" + 
-			"		// int\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"//  int\n" + 
-			"/*  int */\n" + 
-			"/** int */\n";
-
-	String testName = "<complete on comment>";
-	String completeBehind = "i";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "";
-	String expectedReplacedSource = NONE;
-	int cursorLocation = str.indexOf("int\n") + completeBehind.length() - 1;
-	String expectedUnitDisplayString = null;
-
-	try {
-		checkMethodParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName); 
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_COMMENT);
-	}
-}
-public void testXA_1FGGUQF_1FHSL8H_3() {
-	String str = 
-			"// int\n" + 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGGUQF and 1FHSL8H\n" + 
-			" */\n" + 
-			"/**\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"/*\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"// int\n" + 
-			"/**\n" + 
-			"int.\n" + 
-			" * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			" */\n" + 
-			"/**\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"public class XA {\n" + 
-			"	//  int\n" + 
-			"	/*  int */\n" + 
-			"	/** int */\n" + 
-			"	/**\n" + 
-			"	int.\n" + 
-			"	 * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			"	 */\n" + 
-			"	void /* int */ foo() {\n" + 
-			"		//  int\n" + 
-			"		/*  int */\n" + 
-			"		/** int */\n" + 
-			"	}\n" + 
-			"	/**\n" + 
-			"	int.\n" + 
-			"	 * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			"	 */\n" + 
-			"	int field /* int */\n" + 
-			"	;\n" + 
-			"	/*\n" + 
-			"	    int\n" + 
-			"	*/\n" + 
-			"	static {\n" + 
-			"		// int\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"//  int\n" + 
-			"/*  int */\n" + 
-			"/** int */\n";
-
-	String testName = "<complete on comment>";
-	String completeBehind = "i";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "";
-	String expectedReplacedSource = NONE;
-	int cursorLocation = str.indexOf("int */") + completeBehind.length() - 1;
-	String expectedUnitDisplayString = null;
-
-	try {
-		checkMethodParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName); 
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_COMMENT);
-	}
-}
-public void testXA_1FGGUQF_1FHSL8H_4() {
-	String str = 
-			"// int\n" + 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGGUQF and 1FHSL8H\n" + 
-			" */\n" + 
-			"/**\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"/*\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"// int\n" + 
-			"/**\n" + 
-			"int.\n" + 
-			" * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			" */\n" + 
-			"/**\n" + 
-			" * int\n" + 
-			" */\n" + 
-			"public class XA {\n" + 
-			"	//  int\n" + 
-			"	/*  int */\n" + 
-			"	/** int */\n" + 
-			"	/**\n" + 
-			"	int.\n" + 
-			"	 * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			"	 */\n" + 
-			"	void /* int */ foo() {\n" + 
-			"		//  int\n" + 
-			"		/*  int */\n" + 
-			"		/** int */\n" + 
-			"	}\n" + 
-			"	/**\n" + 
-			"	int.\n" + 
-			"	 * Internal API used to resolve a compilation unit minimally for code assist engine\n" + 
-			"	 */\n" + 
-			"	int field /* int */\n" + 
-			"	;\n" + 
-			"	/*\n" + 
-			"	    int\n" + 
-			"	*/\n" + 
-			"	static {\n" + 
-			"		// int\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"//  int\n" + 
-			"/*  int  */\n" + 
-			"/** int   */\n";
-
-	String testName = "<complete on comment>";
-	String completeBehind = "i";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "";
-	String expectedReplacedSource = NONE;
-	int cursorLocation = str.indexOf("int */ foo()") + completeBehind.length() - 1;
-	String expectedUnitDisplayString = null;
-
-	try {
-		checkMethodParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName); 
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_COMMENT);
-	}
-}
-public void testXB_1FIYM5I_1() {
-	String str = 
-			"package p; \n" + 
-			"/*\n" + 
-			" * 1FIYM5I\n" + 
-			" */\n" + 
-			"public class XB\n" + 
-			"	extends java.io.File {\n" + 
-			"	void foo() {\n" + 
-			"		XB xb = new XB();\n" + 
-			"		this.separator.;\n" + 
-			"		this.bar().;\n" + 
-			"	}\n" + 
-			"	String bar() {\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of explicit this access>";
-	String completeBehind = "this.s";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:this.s>";
-	String completionIdentifier = "s";
-	String expectedReplacedSource = "this.separator";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class XB extends java.io.File {\n" + 
-		"  public XB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    XB xb;\n" + 
-		"    <CompleteOnMemberAccess:this.s>;\n" + 
-		"  }\n" + 
-		"  String bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testXB_1FIYM5I_2() {
-	String str = 
-			"package p; \n" + 
-			"/*\n" + 
-			" * 1FIYM5I\n" + 
-			" */\n" + 
-			"public class XB\n" + 
-			"	extends java.io.File {\n" + 
-			"	void foo() {\n" + 
-			"		XB xb = new XB();\n" + 
-			"		this.separator.;\n" + 
-			"		this.bar().;\n" + 
-			"	}\n" + 
-			"	String bar() {\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of explicitly accessed field>";
-	String completeBehind = "this.separator.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:this.separator.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class XB extends java.io.File {\n" + 
-		"  public XB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    XB xb;\n" + 
-		"    <CompleteOnMemberAccess:this.separator.>;\n" + 
-		"  }\n" + 
-		"  String bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testXB_1FIYM5I_3() {
-	String str = 
-			"package p; \n" + 
-			"/*\n" + 
-			" * 1FIYM5I\n" + 
-			" */\n" + 
-			"public class XB\n" + 
-			"	extends java.io.File {\n" + 
-			"	void foo() {\n" + 
-			"		XB xb = new XB();\n" + 
-			"		this.separator.;\n" + 
-			"		this.bar().;\n" + 
-			"	}\n" + 
-			"	String bar() {\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of explicit this access>";
-	String completeBehind = "this.b";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:this.b>";
-	String completionIdentifier = "b";
-	String expectedReplacedSource = "this.bar";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class XB extends java.io.File {\n" + 
-		"  public XB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    XB xb;\n" + 
-		"    <CompleteOnMemberAccess:this.b>;\n" + 
-		"  }\n" + 
-		"  String bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testXB_1FIYM5I_4() {
-	String str = 
-			"package p; \n" + 
-			"/*\n" + 
-			" * 1FIYM5I\n" + 
-			" */\n" + 
-			"public class XB\n" + 
-			"	extends java.io.File {\n" + 
-			"	void foo() {\n" + 
-			"		XB xb = new XB();\n" + 
-			"		this.separator.;\n" + 
-			"		this.bar().;\n" + 
-			"	}\n" + 
-			"	String bar() {\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of explicitly accessed method>";
-	String completeBehind = "this.bar().";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:this.bar().>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class XB extends java.io.File {\n" + 
-		"  public XB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    XB xb;\n" + 
-		"    <CompleteOnMemberAccess:this.bar().>;\n" + 
-		"  }\n" + 
-		"  String bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testY_1FGPESI() {
-	String str = 
-		"package p; \n" + 
-		"import p2.; \n" + 
-		"/**\n" + 
-		" * 1FGPESI\n" + 
-		" */\n" + 
-		"public class Y {\n" + 
-		"}\n";
-
-	String testName = "<complete on imports>";
-	String completeBehind = "p2.";
-	String expectedCompletionNodeToString = "<CompleteOnImport:p2.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "p2.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import <CompleteOnImport:p2.>;\n" + 
-		"public class Y {\n" + 
-		"  public Y() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testYA_1FGRIUH() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FGRIUH\n" + 
-			" */\n" + 
-			"public class YA\n" + 
-			"	extends YASecondTopLevel {\n" + 
-			"	void eFoo() {\n" + 
-			"	}\n" + 
-			"	class YAMember {\n" + 
-			"		void eFoo() {\n" + 
-			"		}\n" + 
-			"		void eBar() {\n" + 
-			"			e }\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class YASecondTopLevel {\n" + 
-			"	public boolean equals(YA yaya) {\n" + 
-			"		return true;\n" + 
-			"	}\n" + 
-			"	public eFoo() {\n" + 
-			"	}\n" + 
-			"	public void eFooBar() {\n" + 
-			"	}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field>";
-	String completeBehind = "e";
-	String expectedCompletionNodeToString = "<CompleteOnName:e>";
-	String completionIdentifier = "e";
-	String expectedReplacedSource = "e";
-	int cursorLocation = str.indexOf("e }") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class YA extends YASecondTopLevel {\n" + 
-		"  class YAMember {\n" + 
-		"    YAMember() {\n" + 
-		"    }\n" + 
-		"    void eFoo() {\n" + 
-		"    }\n" + 
-		"    void eBar() {\n" + 
-		"      <CompleteOnName:e>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public YA() {\n" + 
-		"  }\n" + 
-		"  void eFoo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class YASecondTopLevel {\n" + 
-		"  YASecondTopLevel() {\n" + 
-		"  }\n" + 
-		"  public boolean equals(YA yaya) {\n" + 
-		"  }\n" + 
-		"  public eFoo() {\n" + 
-		"  }\n" + 
-		"  public void eFooBar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testYB_1FJ4D46_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FJ4D46\n" + 
-			" */\n" + 
-			"public class YB {\n" + 
-			"	void foo() {\n" + 
-			"		new String(\"asdf\".getBytes()).}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of object creation>";
-	String completeBehind = "new String(\"asdf\".getBytes()).";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:new String(\"asdf\".getBytes()).>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class YB {\n" + 
-		"  public YB() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new String(\"asdf\".getBytes()).>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testZ_1FGPF3D_1() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGPF3D\n" + 
-		" */\n" + 
-		"public class Z imp Pro.Sev, \n" + 
-		"	Bla.Blo {\n" + 
-		"}\n";
-
-	String testName = "<complete on implements keyword>";
-	String completeBehind = "imp";
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:imp>";
-	String completionIdentifier = "imp";
-	String expectedReplacedSource = "imp";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class Z extends <CompleteOnKeyword:imp> {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public Z() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testZ_1FGPF3D_2() {
-	String str = 
-		"package p; \n" + 
-		"/**\n" + 
-		" * 1FGPF3D\n" + 
-		" */\n" + 
-		"public class Z implements Pro.Sev, \n" + 
-		"	Bla.Blo {\n" + 
-		"}\n";
-
-	String testName = "<complete on implented interface>";
-	String completeBehind = "P";
-	String expectedCompletionNodeToString = "<CompleteOnInterface:P>";
-	String completionIdentifier = "P";
-	String expectedReplacedSource = "Pro";
-	int cursorLocation = str.indexOf("Pro.Sev") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class Z implements <CompleteOnInterface:P>, Bla.Blo {\n" + 
-		"  public Z() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testZA_1() {
-	String str = 
-			"package p; \n" + 
-			"import java.util.Vector;\n";
-
-	String testName = "<complete on import keyword>";
-	String completeBehind = "i";
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:i>";
-	String completionIdentifier = "i";
-	String expectedReplacedSource = "import";
-	int cursorLocation = str.indexOf("import") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import <CompleteOnKeyword:i>;\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testZA_2() {
-	String str = 
-			"package p; \n" + 
-			"import java.util.Vector;\n";
-
-	String testName = "<complete on imported package>";
-	String completeBehind = "jav";
-	String expectedCompletionNodeToString = "<CompleteOnImport:jav>";
-	String completionIdentifier = "jav";
-	String expectedReplacedSource = "java.util.Vector";
-	int cursorLocation = str.indexOf("java.util.Vector") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import <CompleteOnImport:jav>;\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testZA_3() {
-	String str = 
-			"package p; \n" + 
-			"import java.util.Vector;\n";
-
-	String testName = "<complete on imported type>";
-	String completeBehind = "java.util.V";
-	String expectedCompletionNodeToString = "<CompleteOnImport:java.util.V>";
-	String completionIdentifier = "V";
-	String expectedReplacedSource = "java.util.Vector";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import <CompleteOnImport:java.util.V>;\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testZB_1FJ4D46_1() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FJ4D46\n" + 
-			" */\n" + 
-			"import java.util.zip.CRC32;\n" + 
-			"import java.io.*;\n" + 
-			"public class ZB {\n" + 
-			"	public static void main(\n" + 
-			"		java.lang.String[] args) {\n" + 
-			"		File file = \n" + 
-			"			new File(\"d:\\\\314\"); \n" + 
-			"		CRC32 crc = new CRC32();\n" + 
-			"		file.}\n" + 
-			"}\n";
-
-	String testName = "<complete on method/field of local variable>";
-	String completeBehind = "file.";
-	String expectedCompletionNodeToString = "<CompleteOnName:file.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "file.";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import java.util.zip.CRC32;\n" + 
-		"import java.io.*;\n" + 
-		"public class ZB {\n" + 
-		"  public ZB() {\n" + 
-		"  }\n" + 
-		"  public static void main(java.lang.String[] args) {\n" + 
-		"    File file;\n" + 
-		"    CRC32 crc;\n" + 
-		"    <CompleteOnName:file.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void testZB_1FJ4D46_2() {
-	String str = 
-			"package p; \n" + 
-			"/**\n" + 
-			" * 1FJ4D46\n" + 
-			" */\n" + 
-			"import java.util.zip.CRC32;\n" + 
-			"import java.io.*;\n" + 
-			"public class ZB {\n" + 
-			"	public static void main(\n" + 
-			"		java.lang.String[] args) {\n" + 
-			"		File file = \n" + 
-			"			new File(\"d:\\\\314\"); \n" + 
-			"		CRC32 crc = new CRC32();\n" + 
-			"		file.}\n" + 
-			"}\n";
-
-	String testName = "<complete on local variable type>";
-	String completeBehind = "CRC";
-	String expectedCompletionNodeToString = "<CompleteOnName:CRC>";
-	String completionIdentifier = "CRC";
-	String expectedReplacedSource = "CRC32";
-	int cursorLocation = str.indexOf("CRC32 crc") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import java.util.zip.CRC32;\n" + 
-		"import java.io.*;\n" + 
-		"public class ZB {\n" + 
-		"  public ZB() {\n" + 
-		"  }\n" + 
-		"  public static void main(java.lang.String[] args) {\n" + 
-		"    File file;\n" + 
-		"    <CompleteOnName:CRC>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete in initializer
- */
-public void test001(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int v1;\n" + 
-		"    {\n" + 
-		"      Obj\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String testName = "<complete in initializer>";
-	String completeBehind = "Obj";
-	String expectedCompletionNodeToString = "<CompleteOnName:Obj>";
-	String completionIdentifier = "Obj";
-	String expectedReplacedSource = "Obj";
-	int cursorLocation = str.indexOf("Obj") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int v1;\n" + 
-		"    {\n" + 
-		"      <CompleteOnName:Obj>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete after initializer
- */
-public void test002(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int v1;\n" + 
-		"    {\n" + 
-		"      int v2\n" + 
-		"    }\n" + 
-		"    Obj" + 
-		"  }\n" + 
-		"}\n";
-
-	String testName = "<complete after initializer>";
-	String completeBehind = "Obj";
-	String expectedCompletionNodeToString = "<CompleteOnName:Obj>";
-	String completionIdentifier = "Obj";
-	String expectedReplacedSource = "Obj";
-	int cursorLocation = str.indexOf("Obj") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int v1;\n" + 
-		"    <CompleteOnName:Obj>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete in initializer
- */
-public void test003(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int v1;\n" + 
-		"    {\n" + 
-		"      this.\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String testName = "<complete in initializer>";
-	String completeBehind = "this.";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:this.>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "this.";
-	int cursorLocation = str.indexOf("this.") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int v1;\n" + 
-		"    {\n" + 
-		"      <CompleteOnMemberAccess:this.>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-/**
- * Complete in switch
- */
-public void test004(){
-	String str = 
-		"public class X {\n" +
-		"  final static int ZZZ = 1;\n"+
-		"  void foo(){\n" + 
-		"    switch(2)\n" +
-		"      case 0 + ZZZ :\n" + 
-		"      case 1 + ZZZ :\n" + 
-		"          bar(ZZZ)\n" + 
-		"  }\n" + 
-		"  void bar(int y) {}\n"+
-		"}\n";
-
-	String testName = "<complete in switch>";
-	String completeBehind = "ZZZ";
-	String expectedCompletionNodeToString = "<CompleteOnName:ZZZ>";
-	String completionIdentifier = "ZZZ";
-	String expectedReplacedSource = "ZZZ";
-	int cursorLocation = str.lastIndexOf("ZZZ") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  static final int ZZZ;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    bar(<CompleteOnName:ZZZ>);\n" + 
-		"  }\n" + 
-		"  void bar(int y) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete in method type.
- */
-public void test005(){
-	String str = 
-		"public class X {\n" +
-		"  clon foo(){\n" +  
-		"  }\n" +
-		"}\n";
-
-	String testName = "<complete in method type>";
-	String completeBehind = "clon";
-	String expectedCompletionNodeToString = "<CompleteOnType:clon>";
-	String completionIdentifier = "clon";
-	String expectedReplacedSource = "clon";
-	int cursorLocation = str.lastIndexOf("clon") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  <CompleteOnType:clon>\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete in method type.
- */
-public void test006(){
-	String str = 
-		"public class X {\n" +
-		"  clon\n" +  
-		"  foo();\n" +  
-		"}\n";
-
-	String testName = "<complete in method type>";
-	String completeBehind = "clon";
-	String expectedCompletionNodeToString = "<CompleteOnType:clon>;";
-	String completionIdentifier = "clon";
-	String expectedReplacedSource = "clon";
-	int cursorLocation = str.lastIndexOf("clon") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:clon>;\n" + 
-		"  public X() {\n" +
-		"  }\n" +
-		"  foo();\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete in field type.
- */
-public void test007(){
-	String str = 
-		"public class X {\n" +
-		"  clon  x;\n" +  
-		"}\n";
-
-	String testName = "<complete in field type>";
-	String completeBehind = "clon";
-	String expectedCompletionNodeToString = "<CompleteOnType:clon>;";
-	String completionIdentifier = "clon";
-	String expectedReplacedSource = "clon";
-	int cursorLocation = str.lastIndexOf("clon") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:clon>;\n" + 
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete in field type.
- */
-public void test008(){
-	String str = 
-		"public class X {\n" +
-		"  clon\n" +  
-		"  x;\n" +  
-		"}\n";
-
-	String testName = "<complete in field type>";
-	String completeBehind = "clon";
-	String expectedCompletionNodeToString = "<CompleteOnType:clon>;";
-	String completionIdentifier = "clon";
-	String expectedReplacedSource = "clon";
-	int cursorLocation = str.lastIndexOf("clon") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:clon>;\n" + 
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete in field type.
- */
-public void test009(){
-	String str = 
-		"public class X {\n" +
-		"  clon\n" +  
-		"  x y;\n" +  
-		"}\n";
-
-	String testName = "<complete in field tpye>";
-	String completeBehind = "clon";
-	String expectedCompletionNodeToString = "<CompleteOnType:clon>;";
-	String completionIdentifier = "clon";
-	String expectedReplacedSource = "clon";
-	int cursorLocation = str.lastIndexOf("clon") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:clon>;\n" + 
-		"  x y;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * Complete in method type.
- */
-public void test010(){
-	String str = 
-		"public class X {\n" +
-		"  clon\n" +  
-		"  x y(){}\n" +  
-		"}\n";
-
-	String testName = "<complete in method type>";
-	String completeBehind = "clon";
-	String expectedCompletionNodeToString = "<CompleteOnType:clon>;";
-	String completionIdentifier = "clon";
-	String expectedReplacedSource = "clon";
-	int cursorLocation = str.lastIndexOf("clon") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:clon>;\n" + 
-		"  public X() {\n" +
-		"  }\n" +
-		"  x y() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=25233
- */
-public void test011(){
-	String str = 
-		"public class X {\n" +
-		"  void foo() {\n" + 
-		"    new Object[]{\n" + 
-		"      bar(zzz)\n" +  
-		"    };\n" +  
-		"  }\n" +  
-		"}\n";
-
-	String testName = "<bug 25233>";
-	String completeBehind = "zzz";
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	int cursorLocation = str.lastIndexOf("zzz") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" + 
-		"    bar(<CompleteOnName:zzz>);\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=27370
- */
-public void test012(){
-	String str = 
-		"public class X {\n" +
-		"  public X() {\n" + 
-		"    super();\n" +   
-		"  }\n" +  
-		"  Object o = new ZZZ\n" + 
-		"}\n";
-
-	String testName = "<bug 27370>";
-	String completeBehind = "ZZZ";
-	String expectedCompletionNodeToString = "<CompleteOnType:ZZZ>";
-	String completionIdentifier = "ZZZ";
-	String expectedReplacedSource = "ZZZ";
-	int cursorLocation = str.lastIndexOf("ZZZ") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  Object o = new <CompleteOnType:ZZZ>();\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=27735
- */
-public void test013(){
-	String str = 
-		"public class Bar {\n" +
-		"  #\n" + 
-		"  Bar foo1 = new Bar(){};\n" +   
-		"  {int i;}\n" +  
-		"  synchronized void foo3() {}\n" + 
-		"  zzz\n" +  
-		"}\n";
-
-	String testName = "<bug 27735>";
-	String completeBehind = "zzz";
-	String expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	int cursorLocation = str.lastIndexOf("zzz") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class Bar {\n" +
-		"  Bar foo1;\n" +
-		"  {\n" +
-		"  }\n" +
-		"  <CompleteOnType:zzz>;\n" +
-		"  public Bar() {\n" +
-		"  }\n" +
-		"  synchronized void foo3() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=27941
- */
-public void test014(){
-	String str = 
-		"public class Bar {\n" +
-		"  void foo() {\n" + 
-		"    String s = \"a\" + \"b\";\n" + 
-		"    zzz\n" + 
-		"  }\n" +  
-		"}\n";
-
-	String testName = "<bug 27941>";
-	String completeBehind = "zzz";
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	int cursorLocation = str.lastIndexOf("zzz") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class Bar {\n" +
-		"  public Bar() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    String s;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=39502
- */
-public void test015(){
-	String str = 
-		"public class Bar {\n" +
-		"  void foo() {\n" + 
-		"    Object o = new Object[]{};\n" + 
-		"    foo();\n" + 
-		"  }\n" +  
-		"}\n";
-
-	String testName = "<bug 39502>";
-	String completeBehind = "foo(";
-	String expectedCompletionNodeToString = "<CompleteOnMessageSend:foo()>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "foo(";
-	int cursorLocation = str.lastIndexOf("foo(") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class Bar {\n" + 
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" + 
-		"    <CompleteOnMessageSend:foo()>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=39502
- */
-public void test016(){
-	String str = 
-		"public class Bar {\n" +
-		"  void foo() {\n" + 
-		"    Object o = new Object[0];\n" + 
-		"    foo();\n" + 
-		"  }\n" +  
-		"}\n";
-
-	String testName = "<bug 39502>";
-	String completeBehind = "foo(";
-	String expectedCompletionNodeToString = "<CompleteOnMessageSend:foo()>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "foo(";
-	int cursorLocation = str.lastIndexOf("foo(") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class Bar {\n" + 
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" + 
-		"    <CompleteOnMessageSend:foo()>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-public void test017(){
-	String str = 
-		"public class Bar {\n" +
-		"  String s;\n" + 
-		"  /**/\n" + 
-		"}\n";
-
-	String testName = "";
-	String completeBehind = "/**/";
-	String expectedCompletionNodeToString = "<CompleteOnType:>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	int cursorLocation = str.lastIndexOf("/**/") + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"public class Bar {\n" + 
-		"  String s;\n" + 
-		"  <CompleteOnType:>;\n" + 
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-public void testRECOVERY001() {
-	String str = 
-		"var foo;\n" + 
-		"if (f) {\n"; 
-
-	String testName = "<complete on name inside if>";
-	String completeBehind = "(f";
-	String expectedCompletionNodeToString = "<CompleteOnName:f>";
-	String completionIdentifier = "f";
-	String expectedReplacedSource = "f";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	String expectedUnitDisplayString =
-		"var foo;\n" + 
-		"if (<CompleteOnName:f>)\n" + 
-		"\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest2.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest2.java
deleted file mode 100644
index 866e47b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest2.java
+++ /dev/null
@@ -1,9671 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-public class CompletionParserTest2 extends AbstractCompletionTest {
-public CompletionParserTest2(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(CompletionParserTest2.class);
-}
-public void test0001(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "Object o = <CompleteOnName:zzz>;";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = <CompleteOnName:zzz>;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-public void test0002(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-		
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object o = <CompleteOnName:zzz>;";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o = <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0003(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object o = <CompleteOnName:zzz>;";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0004(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "Object o = <CompleteOnName:zzz>;";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = <CompleteOnName:zzz>;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-public void test0005(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-		
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object o = <CompleteOnName:zzz>;";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object o = <CompleteOnName:zzz>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0006(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object o = <CompleteOnName:zzz>;";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"}\n";
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0007(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = new zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	String expectedParentNodeToString = "Object o = new <CompleteOnType:zzz>();";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = new <CompleteOnType:zzz>();\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast"); 
-}
-public void test0008(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = new zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	expectedParentNodeToString = "Object o = new <CompleteOnType:zzz>();";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o = new <CompleteOnType:zzz>();\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0009(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = new zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	expectedParentNodeToString = "Object o = new <CompleteOnType:zzz>();";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = new <CompleteOnType:zzz>();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0010(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = new zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	String expectedParentNodeToString = "Object o = new <CompleteOnType:zzz>();";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = new <CompleteOnType:zzz>();\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast"); 
-}
-public void test0011(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = new zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	expectedParentNodeToString = "Object o = new <CompleteOnType:zzz>();";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" +
-		"    {\n" +
-		"      Object o = new <CompleteOnType:zzz>();\n" +
-		"    }\n" +
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0012(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object o = new zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	expectedParentNodeToString = "Object o = new <CompleteOnType:zzz>();";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = new <CompleteOnType:zzz>();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0013(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = yyy;\n" + 
-		"  zzz\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  <CompleteOnType:zzz>;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-public void test0014(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = yyy;\n" + 
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0015(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = yyy;\n" + 
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0016(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = yyy;\n" + 
-		"  zzz\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  <CompleteOnType:zzz>;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast"); 
-}
-
-public void test0017(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = yyy;\n" + 
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object o;\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0018(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object o = yyy;\n" + 
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0019(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = bar(zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "bar(<CompleteOnName:zzz>)";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = bar(<CompleteOnName:zzz>);\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast"); 
-}
-
-public void test0020(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = bar(zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "bar(<CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o = bar(<CompleteOnName:zzz>);\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0021(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = bar(zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "bar(<CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = bar(<CompleteOnName:zzz>);\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0022(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = bar(zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "bar(<CompleteOnName:zzz>)";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = bar(<CompleteOnName:zzz>);\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast"); 
-}
-
-public void test0023(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = bar(zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "bar(<CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object o = bar(<CompleteOnName:zzz>);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0024(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object o = bar(zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "bar(<CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = bar(<CompleteOnName:zzz>);\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0025(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = new X(zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X(<CompleteOnName:zzz>)";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = new X(<CompleteOnName:zzz>);\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast"); 
-}
-
-
-public void test0026(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = new X(zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X(<CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o = new X(<CompleteOnName:zzz>);\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0027(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = new X(zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X(<CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = new X(<CompleteOnName:zzz>);\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0028(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = new X(zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X(<CompleteOnName:zzz>)";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = new X(<CompleteOnName:zzz>);\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast"); 
-}
-
-
-public void test0029(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = new X(zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X(<CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object o = new X(<CompleteOnName:zzz>);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0030(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object o = new X(zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X(<CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = new X(<CompleteOnName:zzz>);\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0031(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = {zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  {\n" +
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  {\n" +
-		"    <CompleteOnName:zzz>;\n" + 
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0032(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = {zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o;\n" +
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0033(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = {zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0034(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = {zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  {\n" +
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  {\n" +
-		"    <CompleteOnName:zzz>;\n" + 
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0035(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = {zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object o;\n" +
-		"      {\n" +
-		"        <CompleteOnName:zzz>;\n" + 
-		"      }\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0036(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object o = {zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0037(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object[] o = {zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "Object[] o = {<CompleteOnName:zzz>};";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object[] o = {<CompleteOnName:zzz>};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-
-public void test0038(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object[] o = {zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object[] o = {<CompleteOnName:zzz>};";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object[] o = {<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0039(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object[] o = {zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object[] o = {<CompleteOnName:zzz>};";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] o = {<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0040(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object[] o = {zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "Object[] o = {<CompleteOnName:zzz>};";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object[] o = {<CompleteOnName:zzz>};\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-
-public void test0041(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object[] o = {zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object[] o = {<CompleteOnName:zzz>};";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object[] o = {<CompleteOnName:zzz>};\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0042(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object[] o = {zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object[] o = {<CompleteOnName:zzz>};";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] o = {<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0043(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object[] o = new X[zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object[] o = new X[<CompleteOnName:zzz>];\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-
-
-public void test0044(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object[] o = new X[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" +
-		"    Object[] o = new X[<CompleteOnName:zzz>];\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-
-public void test0045(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object[] o = new X[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] o = new X[<CompleteOnName:zzz>];\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-
-public void test0046(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object[] o = new X[zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object[] o = new X[<CompleteOnName:zzz>];\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-
-
-public void test0047(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object[] o = new X[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" +
-		"    {\n" +
-		"      Object[] o = new X[<CompleteOnName:zzz>];\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-
-public void test0048(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object[] o = new X[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] o = new X[<CompleteOnName:zzz>];\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0049(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object[] o = new X[]{zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object[] o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-public void test0050(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object[] o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object[] o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0051(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object[] o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      new X[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0052(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object[] o = new X[]{zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object[] o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-public void test0053(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object[] o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object[] o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0054(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object[] o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      new X[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0055(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object[] o = zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "Object[] o = <CompleteOnName:zzz>;";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object[] o = <CompleteOnName:zzz>;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-public void test0056(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object[] o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object[] o = <CompleteOnName:zzz>;";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object[] o = <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0057(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object[] o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object[] o = <CompleteOnName:zzz>;";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] o = <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0058(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object[] o = zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "Object[] o = <CompleteOnName:zzz>;";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object[] o = <CompleteOnName:zzz>;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-public void test0059(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object[] o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object[] o = <CompleteOnName:zzz>;";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" +
-		"    {\n" +
-		"      Object[] o = <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0060(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object[] o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "Object[] o = <CompleteOnName:zzz>;";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object[] o = <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0061(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = new X[zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = new X[<CompleteOnName:zzz>];\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-public void test0062(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = new X[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o = new X[<CompleteOnName:zzz>];\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0063(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = new X[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = new X[<CompleteOnName:zzz>];\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0064(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = new X[zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o = new X[<CompleteOnName:zzz>];\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-public void test0065(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = new X[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object o = new X[<CompleteOnName:zzz>];\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0066(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object o = new X[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = new X[<CompleteOnName:zzz>];\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0067(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = new X[]{zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  {\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  {\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0068(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0069(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      new X[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-public void test0070(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = new X[]{zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  {\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  {\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0071(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object o;\n" +
-		"      {\n" +
-		"        <CompleteOnName:zzz>;\n" +
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0072(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    Object o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      new X[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-		
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0073(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  int o = new int[zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new int[<CompleteOnName:zzz>]";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int o = new int[<CompleteOnName:zzz>];\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-
-public void test0074(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    int o = new int[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new int[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    int o = new int[<CompleteOnName:zzz>];\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0075(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int o = new int[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new int[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int o = new int[<CompleteOnName:zzz>];\n" +  
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0076(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  int o = new int[zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new int[<CompleteOnName:zzz>]";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int o = new int[<CompleteOnName:zzz>];\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-
-public void test0077(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    int o = new int[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new int[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      int o = new int[<CompleteOnName:zzz>];\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0078(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    int o = new int[zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new int[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int o = new int[<CompleteOnName:zzz>];\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0079(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  int o = new int[]{zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int o;\n" +
-		"  {\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int o;\n" +
-		"  {\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0080(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    int o = new int[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    int o = new int[]{<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0081(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int o = new int[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +  
-		"    {\n" +
-		"      new int[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int o = new int[]{<CompleteOnName:zzz>};\n" +  
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0082(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  int o = new int[]{zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int o;\n" +
-		"  {\n" +
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int o;\n" +
-		"  {\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0083(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    int o = new int[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      int o;\n" +
-		"      {\n" +
-		"        <CompleteOnName:zzz>;\n" +
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0084(){
-
-
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    int o = new int[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new int[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      new int[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int o;\n" +
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0085(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  X o = new X[]{zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  X o;\n" +
-		"  {\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  X o;\n" +
-		"  {\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0086(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    X o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    X o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0087(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    X o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      new X[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    X o = new X[]{<CompleteOnName:zzz>};\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0088(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  X o = new X[]{zzz;\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  X o;\n" +
-		"  {\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  X o;\n" +
-		"  {\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0089(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    X o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      X o;\n" +
-		"      {\n" +
-		"        <CompleteOnName:zzz>;\n" +
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-
-public void test0090(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    #\n" +
-		"    X o = new X[]{zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "new X[]{<CompleteOnName:zzz>}";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" +
-		"      new X[]{<CompleteOnName:zzz>};\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    X o;\n" +
-		"    {\n" +
-		"      <CompleteOnName:zzz>;\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0091(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  Object o = \"yyy;\n" + 
-		"  zzz\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  <CompleteOnType:zzz>;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-
-
-public void test0092(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    Object o = \"yyy;\n" + 
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0093(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o = \"yyy;\n" + 
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0094(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  #\n" + 
-		"  Object o = \"yyy;\n" + 
-		"  zzz\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  Object o;\n" +
-		"  <CompleteOnType:zzz>;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast"); 
-}
-
-
-public void test0095(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = \"yyy;\n" + 
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" + 
-		"      Object o;\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-
-
-public void test0096(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  {\n" + 
-		"    #\n" +
-		"    Object o = \"yyy;\n" + 
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" +  
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    {\n" +
-		"      Object o;\n" +
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" +
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast"); 
-}
-public void test0097(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o;\n" +
-		"    o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "o = <CompleteOnName:zzz>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    o = <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0098(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o;\n" +
-		"    o = zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "o = <CompleteOnName:zzz>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    o = <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0099(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o;\n" +
-		"    o = new zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	expectedParentNodeToString = "o = new <CompleteOnType:zzz>()";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    o = new <CompleteOnType:zzz>();\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0100(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o;\n" +
-		"    o = new zzz;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnType:zzz>";
-	expectedParentNodeToString = "o = new <CompleteOnType:zzz>()";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    o = new <CompleteOnType:zzz>();\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0101(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o;\n" +
-		"    o = yyy;\n" +
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0102(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o;\n" +
-		"    o = yyy;\n" +
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0103(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o;\n" +
-		"    o = \"yyy;\n" +
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0104(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    Object o;\n" +
-		"    o = \"yyy;\n" +
-		"    zzz\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Object o;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-
-public void test0105(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int x = 1 + zzz\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "(1 + <CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x = (1 + <CompleteOnName:zzz>);\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0106(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int x = 1 + (zzz\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "(1 + <CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x = (1 + <CompleteOnName:zzz>);\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0107(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int x = 0;\n" +
-		"    int y = 1 + x;\n" +
-		"    zzz;\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x;\n" +
-		"    int y;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0108(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int x = -zzz;\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "(- <CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x = (- <CompleteOnName:zzz>);\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0109(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int x = -(zzz;\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "(- <CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x = (- <CompleteOnName:zzz>);\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0110(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    int x = 0;\n" +
-		"    int y = -x;\n" +
-		"    zzz;\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int x;\n" +
-		"    int y;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0111(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    if(1 == zzz) {}\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "(1 == <CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    (1 == <CompleteOnName:zzz>);\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0112(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"    if(1 == (zzz)) {}\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "(1 == <CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    (1 == <CompleteOnName:zzz>);\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0113(){
-	String str = 
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(Object x){\n" + 
-		"    if(x instanceof ZZZ) {}\n" +
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "ZZZ";
-	int cursorLocation = str.indexOf("ZZZ") + completeBehind.length() - 1;
-	
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo(Object x) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnType:ZZZ>";
-	expectedParentNodeToString = "(x instanceof <CompleteOnType:ZZZ>)";
-	completionIdentifier = "ZZZ";
-	expectedReplacedSource = "ZZZ";
-	expectedUnitDisplayString =
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo(Object x) {\n" + 
-		"    (x instanceof <CompleteOnType:ZZZ>);\n" +
-		"  }\n" + 
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0114(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    boolean a, b, c;\n" +
-		"    c = a == b ? zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "c = <CompleteOnName:zzz>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    boolean a;\n" +
-		"    boolean b;\n" +
-		"    boolean c;\n" +
-		"    c = <CompleteOnName:zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0115(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    boolean a, b;\n" +
-		"    a == b ? zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    boolean a;\n" +
-		"    boolean b;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0116(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    boolean a, b, c;\n" +
-		"    c = a == b ? a : zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "c = ((a == b) ? a : <CompleteOnName:zzz>)";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    boolean a;\n" +
-		"    boolean b;\n" +
-		"    boolean c;\n" +
-		"    c = ((a == b) ? a : <CompleteOnName:zzz>);\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0117(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    boolean a, b, c;\n" +
-		"    c = a == b ? a : (zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "c = <CompleteOnName:zzz>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    boolean a;\n" +
-		"    boolean b;\n" +
-		"    boolean c;\n" +
-		"    c = <CompleteOnName:zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0118(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    boolean a, b, c;\n" +
-		"    c = a# == b ? a : zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    boolean a;\n" +
-		"    boolean b;\n" +
-		"    boolean c;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0119(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    switch(1) {\n" +
-		"      case zzz\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString =
-		"switch (1) {\n" + 
-		"case <CompleteOnName:zzz> : ;\n" + 
-		"}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      switch (1) {\n" + 
-		"      case <CompleteOnName:zzz> : ;\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0120(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    switch(1) {\n" +
-		"      case Something :\n" +
-		"      case zzz\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString =
-		"switch (1) {\n" + 
-		"case Something : ;\n" + 
-		"case <CompleteOnName:zzz> : ;\n" + 
-		"}";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      switch (1) {\n" + 
-		"      case Something : ;\n" + 
-		"      case <CompleteOnName:zzz> : ;\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0121(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    tab[zzz]\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "tab[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    tab[<CompleteOnName:zzz>];\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0122(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    tab[].zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnClassLiteralAccess:tab[].zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "tab[].zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnClassLiteralAccess:tab[].zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0123(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    tab[0].zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnMemberAccess:tab[0].zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnMemberAccess:tab[0].zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0124(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    foo()[zzz]\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "foo()[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    foo()[<CompleteOnName:zzz>];\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0125(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    foo()[].zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0126(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    foo()[1].zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnMemberAccess:foo()[1].zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnMemberAccess:foo()[1].zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0127(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    if (zzz() == null) bar = null;\n" +
-		"  }\n" +
-		"  Object o = new O();\n" +
-		"}\n";
-
-	String completeBehind = "O";
-	int cursorLocation = str.lastIndexOf("O") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:O>";
-	String expectedParentNodeToString = "Object o = new <CompleteOnType:O>();";
-	String completionIdentifier = "O";
-	String expectedReplacedSource = "O";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  Object o = new <CompleteOnType:O>();\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-public void test0128(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    new Object() {\n" +
-		"      void bar() {\n" +
-		"        a[zzz\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "a[<CompleteOnName:zzz>]";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    new Object() {\n" +
-		"      void bar() {\n" +
-		"        a[<CompleteOnName:zzz>];\n" +
-		"      }\n" +
-		"    };\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-public void test0129(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    Object local;\n" +
-		"    double bar;\n" +
-		"    for(;;) {\n" +
-		"      bar = (double)0;\n" +
-		"    }\n" +
-		"    zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "zzz";
-	expectedReplacedSource = "zzz";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    Object local;\n" +
-		"    double bar;\n" +
-		"    <CompleteOnName:zzz>;\n" +
-		"  }\n" +
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=42856
- */
-public void test0130(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    A.B c = null;\n" +
-		"    zzz();\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz(";
-	int cursorLocation = str.indexOf("zzz(") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnMessageSend:zzz()>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "";
-	expectedReplacedSource = "zzz(";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    A.B c;\n" + 
-		"    <CompleteOnMessageSend:zzz()>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=42856
- */
-public void test0131(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    try {\n" +
-		"    } catch(A.B e) {\n" +
-		"      zzz();\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "zzz(";
-	int cursorLocation = str.indexOf("zzz(") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnMessageSend:zzz()>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "";
-	expectedReplacedSource = "zzz(";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      A.B e;\n" + 
-		"      <CompleteOnMessageSend:zzz()>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44647
- */
-public void test0132(){
-	String str =
-		"public class A\n" +
-		"{\n" +
-		"   public A(final String str1, final String str2)\n" +
-		"   {\n" +
-		"      \n" +	
-		"   }\n" +
-		"   \n" +
-		"   private A[] methodA(final String str1, final String str2)\n" +
-		"      {\n" +
-		"         return new A[]\n" +
-		"         {\n" +
-		"            new A(str1, str2)\n" +
-		"            {\n" +
-		"               //initialiser!\n" +
-		"               {\n" +
-		"                  methodA(\"1\", \"2\");\n" +
-		"               }\n" +
-		"            },\n" +
-		"            new A(\"hello\".c) //<--------code complete to \"hello\".concat()\n" +
-		"         };\n" +
-		"      \n" +
-		"      }\n" +
-		"}\n";
-
-
-	String completeBehind = "\"2\");";
-	int cursorLocation = str.indexOf("\"2\");") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class A {\n" + 
-		"  public A(final String str1, final String str2) {\n" + 
-		"  }\n" + 
-		"  private A[] methodA(final String str1, final String str2) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "";
-	expectedReplacedSource = "";
-	expectedUnitDisplayString =
-		"public class A {\n" + 
-		"  public A(final String str1, final String str2) {\n" + 
-		"  }\n" + 
-		"  private A[] methodA(final String str1, final String str2) {\n" + 
-		"    new A(str1, str2) {\n" + 
-		"      {\n" + 
-		"        <CompleteOnName:>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46470
- */
-public void test0133(){
-	String str =
-	"public class X {\n" +
-	"   int x;\n" +
-	"   void foo() {\n" +
-	"      switch(x){\n" +
-	"         case 0:\n" +
-	"            break;\n" +
-	"      }\n" +
-	"      bar\n" +
-	"   }\n" +
-	"}\n";
-
-
-	String completeBehind = "bar";
-	int cursorLocation = str.indexOf("bar") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  int x;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:bar>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bar";
-	expectedReplacedSource = "bar";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  int x;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:bar>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=43212
- */
-public void test0134(){
-	String str =
-	"public class X {\n" +
-	"	Object o = new Object() {\n" +
-	"		void foo() {\n" +
-	"			try {\n" +
-	"			} catch(Exception e) {\n" +
-	"				e.\n" +
-	"			}\n" +
-	"		}\n" +
-	"	};\n" +
-	"}\n";
-
-
-	String completeBehind = "e.";
-	int cursorLocation = str.indexOf("e.") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<CompleteOnName:e.>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "e.";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  Object o = new Object() {\n" + 
-		"    void foo() {\n" + 
-		"      {\n" + 
-		"        Exception e;\n" + 
-		"        <CompleteOnName:e.>;\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  };\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"diet ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=43212
- */
-public void test0135(){
-	String str =
-	"public class X {\n" +
-	"	void bar(){\n" +
-	"		#\n" +
-	"		class Inner {\n" +
-	"			void foo() {\n" +
-	"				try {\n" +
-	"				} catch(Exception e) {\n" +
-	"					e.\n" +
-	"				}\n" +
-	"			}\n" +
-	"		}\n" +
-	"	}\n" +
-	"}\n";
-
-
-	String completeBehind = "e.";
-	int cursorLocation = str.indexOf("e.") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"diet ast");
-
-	expectedCompletionNodeToString = "<CompleteOnName:e.>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "";
-	expectedReplacedSource = "e.";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"    class Inner {\n" + 
-		"      Inner() {\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        {\n" + 
-		"          Exception e;\n" + 
-		"          <CompleteOnName:e.>;\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48070
- */
-public void test0136(){
-	String str =
-		"public class X {\n" +
-		"	void bar(){\n" +
-		"	}\n" +
-		"}\n";
-
-
-	String completeBehind = "ba";
-	int cursorLocation = str.indexOf("ba") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<CompletionOnMethodName:void ba()>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ba";
-	String expectedReplacedSource = "bar()";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <CompletionOnMethodName:void ba()>\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=53624
- */
-public void test0137(){
-	String str =
-		"public class X {\n" +
-		"	void foo(){\n" +
-		"		new Object(){\n" +
-		"			void bar(){\n" +
-		"				super.zzz();\n" +
-		"			}\n" +
-		"		};\n" +
-		"	}\n" +
-		"}\n";
-
-
-	String completeBehind = "zzz(";
-	int cursorLocation = str.indexOf("zzz(") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnMessageSend:super.zzz()>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "";
-	expectedReplacedSource = "zzz(";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new Object() {\n" + 
-		"      void bar() {\n" + 
-		"        <CompleteOnMessageSend:super.zzz()>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=41395
- */
-public void test0138(){
-	String str =
-		"public class X{\n" + 
-		"  public void foo() {\n" + 
-		"    new Y() {\n" + 
-		"      public void bar() {\n" + 
-		"        switch (zzz){\n" + 
-		"          case 1 :\n" + 
-    	"          };\n" + 
-		"        }\n" + 
-		"        new Z() {\n" + 
-		"          public void toto() {		\n" + 	
-		"        }\n" + 
-		"      });\n" + 
-		"    });\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"\n";
-
-
-	String completeBehind = "to";
-	int cursorLocation = str.indexOf("to") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnFieldName:void to>;";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "to";
-	expectedReplacedSource = "toto";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    new Y() {\n" + 
-		"      public void bar() {\n" + 
-		"        new Z() {\n" + 
-		"          <CompleteOnFieldName:void to>;\n" + 
-		"          {\n" + 
-		"          }\n" + 
-		"        };\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-public void test0139(){
-	String str =
-		"public class X  extends Z. #  {\n" +
-		"}";
-
-
-	String completeBehind = "Z.";
-	int cursorLocation = str.indexOf("Z.") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<CompleteOnClass:Z.>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "Z.";
-	String expectedUnitDisplayString =
-		"public class X extends <CompleteOnClass:Z.> {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n"
-		;
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=32061
- */
-public void test0140(){
-	String str =
-		"public class X  {\n" + 
-		"    public void baz() {\n" + 
-		"    	new Object() {\n" + 
-		"            public void bar() {\n" + 
-		"            }\n" + 
-		"        };\n" +   
-		"    }\n" + 
-		"    private Object var = new Object() {\n" + 
-		"        public void foo(Object e) {\n" + 
-		"           e.\n" + 
-		"        }\n" + 
-		"    };\n" + 
-		"}";
-
-
-	String completeBehind = "e.";
-	int cursorLocation = str.indexOf("e.") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<CompleteOnName:e.>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "e.";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  private Object var = new Object() {\n" + 
-		"    public void foo(Object e) {\n" + 
-		"      <CompleteOnName:e.>;\n" + 
-		"    }\n" + 
-		"  };\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=32061
- */
-public void test0141(){
-	String str =
-		"public class X  {\n" + 
-		"    Object var1 = new Object() {};\n" + 
-		"    void bar() {\n" + 
-		"        new Object() {};\n" + 
-		"        bar();\n" + 
-		"    }\n" + 
-		"    Object var2 = new \n" + 
-		"}";
-
-
-	String completeBehind = "var2 = new ";
-	int cursorLocation = str.indexOf("var2 = new ") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<CompleteOnType:>";
-	String expectedParentNodeToString = "Object var2 = new <CompleteOnType:>();";
-	String completionIdentifier = "";
-	String expectedReplacedSource = "";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  Object var1;\n" + 
-		"  Object var2 = new <CompleteOnType:>();\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=39499
- */
-public void test0142(){
-	String str =
-		"public class X{\n" + 
-		"  public void foo() {\n" + 
-		"    bar(new Object(){\n" + 
-		"      public void toto() {\n" + 
-		"        if(a instanceof Object) {}\n" + 
-		"      }\n" + 
-    	"    });\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"\n";
-
-
-	String completeBehind = "instanceof";
-	int cursorLocation = str.indexOf("instanceof") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:instanceof>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "instanceof";
-	expectedReplacedSource = "instanceof";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    new Object() {\n" + 
-		"      public void toto() {\n" + 
-		"        <CompleteOnKeyword:instanceof>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=71702
- */
-public void test0143(){
-	String str =
-		"public class X{\n" + 
-		"  public void foo() {\n" + 
-		"    Object o =(int) tmp;\n" + 
-		"    bar\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"\n";
-
-
-	String completeBehind = "bar";
-	int cursorLocation = str.indexOf("bar") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:bar>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bar";
-	expectedReplacedSource = "bar";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    Object o;\n" + 
-		"    <CompleteOnName:bar>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=71702
- */
-public void test0144(){
-	String str =
-		"public class X{\n" + 
-		"  public void foo() {\n" + 
-		"    Object o =(int[]) tmp;\n" + 
-		"    bar\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"\n";
-
-
-	String completeBehind = "bar";
-	int cursorLocation = str.indexOf("bar") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:bar>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bar";
-	expectedReplacedSource = "bar";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    Object o;\n" + 
-		"    <CompleteOnName:bar>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=71702
- */
-public void test0145(){
-	String str =
-		"public class X{\n" + 
-		"  public void foo() {\n" + 
-		"    Object o =(X) tmp;\n" + 
-		"    bar\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"\n";
-
-
-	String completeBehind = "bar";
-	int cursorLocation = str.indexOf("bar") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:bar>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bar";
-	expectedReplacedSource = "bar";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    Object o;\n" + 
-		"    <CompleteOnName:bar>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=71702
- */
-public void test0146(){
-	String str =
-		"public class X{\n" + 
-		"  public void foo() {\n" + 
-		"    Object o =(X[]) tmp;\n" + 
-		"    bar\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"\n";
-
-
-	String completeBehind = "bar";
-	int cursorLocation = str.indexOf("bar") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:bar>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bar";
-	expectedReplacedSource = "bar";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    Object o;\n" + 
-		"    <CompleteOnName:bar>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=72352
- */
-public void test0147(){
-	String str =
-		"public class Test {\n" + 
-		"  Object m;\n" + 
-		"  String[] values = (String[]) m;\n" + 
-		"  lo\n" + 
-		"  }";
-
-	String completeBehind = "lo";
-	int cursorLocation = str.indexOf("lo") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<CompleteOnType:lo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "lo";
-	String expectedReplacedSource = "lo";
-	String expectedUnitDisplayString =
-		"public class Test {\n" + 
-		"  Object m;\n" + 
-		"  String[] values;\n" + 
-		"  <CompleteOnType:lo>;\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83236
- */
-public void test0148(){
-	String str =
-		"public class Test {\n" + 
-		"  Boolean\n" + 
-		"   * some text <b>bold<i>both</i></b>\n" + 
-		"   */\n" + 
-		"  public void foo(String s) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String completeBehind = "Boolean";
-	int cursorLocation = str.indexOf("Boolean") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<CompleteOnType:Boolean>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "Boolean";
-	String expectedReplacedSource = "Boolean";
-	String expectedUnitDisplayString =
-		"public class Test {\n" + 
-		"  <CompleteOnType:Boolean>;\n" + 
-		"  some text;\n" + 
-		"  bold<i> both;\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  public void foo(String s) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=91371
- */
-public void test0149(){
-	String str =
-		"public class X{\n" + 
-		"  public void foo() {\n" + 
-		"    new Object(){\n" + 
-		"      void bar(){\n" + 
-		"        if((titi & (ZZ\n" + 
-		"}\n" + 
-		"\n";
-
-
-	String completeBehind = "ZZ";
-	int cursorLocation = str.indexOf("ZZ") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ZZ";
-	String expectedReplacedSource = "ZZ";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ZZ>";
-	expectedParentNodeToString = "(titi & <CompleteOnName:ZZ>)";
-	completionIdentifier = "ZZ";
-	expectedReplacedSource = "ZZ";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    new Object() {\n" + 
-		"      void bar() {\n" + 
-		"        (titi & <CompleteOnName:ZZ>);\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=91371
- */
-public void test0150(){
-	String str =
-		"public class X{\n" + 
-		"  public void foo() {\n" + 
-		"    if((titi & (ZZ\n" + 
-		"}\n" + 
-		"\n";
-
-
-	String completeBehind = "ZZ";
-	int cursorLocation = str.indexOf("ZZ") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ZZ";
-	String expectedReplacedSource = "ZZ";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ZZ>";
-	expectedParentNodeToString = "(titi & <CompleteOnName:ZZ>)";
-	completionIdentifier = "ZZ";
-	expectedReplacedSource = "ZZ";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    (titi & <CompleteOnName:ZZ>);\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=92451
- */
-public void test0151(){
-	String str =
-		"public class X {\n" + 
-		"  public static void main(String[] args) {\n" + 
- 		"    java.util.List elements = null;\n" + 
- 		"    new Test(Test.toStrings((Test[])elements.toArray(new Test[0])));\n" + 
-		"     //code assist fails on this line\n" + 
-		"  }\n" + 
-		"}\n";
-
-
-	String completeBehind = "";
-	int cursorLocation = str.indexOf(" //code assis") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "";
-	expectedReplacedSource = "";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    java.util.List elements;\n" + 
-		"    <CompleteOnName:>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=98115
- */
-public void test0152(){
-	String str =
-		"public class X {\n" + 
-		"  Object var = new Object() {\n" + 
- 		"    void bar() {\n" + 
- 		"      int i = 0;\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
- 		"      zzz\n" + 
-		"    }\n" + 
-		"  };\n" + 
-		"}\n";
-
-
-	String completeBehind = "zzz";
-	int cursorLocation = str.indexOf("zzz") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<CompleteOnName:zzz>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "zzz";
-	String expectedReplacedSource = "zzz";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  Object var = new Object() {\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"      <CompleteOnName:zzz>;\n" + 
-		"    }\n" + 
-		"  };\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
- */
-public void test0153(){
-	String str =
-		"public class X {\n" + 
-		"  void foo() {\n" + 
- 		"    label1 : for(;;) {\n" + 
- 		"      break lab\n" + 
- 		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf("lab") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "break <CompleteOnLabel:lab>;";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "lab";
-	expectedReplacedSource = "lab";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    break <CompleteOnLabel:lab>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
- */
-public void test0154(){
-	String str =
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    #\n" + 
- 		"    label1 : for(;;) {\n" + 
- 		"      break lab\n" + 
- 		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf("lab") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "break <CompleteOnLabel:lab>;";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "lab";
-	expectedReplacedSource = "lab";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      break <CompleteOnLabel:lab>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
- */
-public void test0155(){
-	String str =
-		"public class X {\n" + 
-		"  void foo() {\n" + 
- 		"    label1 : for(;;) {\n" + 
- 		"      continue lab\n" + 
- 		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf("lab") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "continue <CompleteOnLabel:lab>;";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "lab";
-	expectedReplacedSource = "lab";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    continue <CompleteOnLabel:lab>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
- */
-public void test0156(){
-	String str =
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    #\n" + 
- 		"    label1 : for(;;) {\n" + 
- 		"      continue lab\n" + 
- 		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf("lab") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "continue <CompleteOnLabel:lab>;";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "lab";
-	expectedReplacedSource = "lab";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      continue <CompleteOnLabel:lab>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
- */
-public void test0157(){
-	String str =
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    #\n" + 
- 		"    label1 : for(;;) {\n" + 
- 		"      class X {\n" + 
- 		"        void foo() {\n" + 
- 		"          label2 : for(;;) foo();\n" + 
- 		"        }\n" + 
- 		"      }\n" + 
- 		"      continue lab\n" + 
- 		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf("lab") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "continue <CompleteOnLabel:lab>;";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "lab";
-	expectedReplacedSource = "lab";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      class X {\n" + 
-		"        X() {\n" + 
-		"          super();\n" + 
-		"        }\n" + 
-		"        void foo() {\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"      continue <CompleteOnLabel:lab>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
- */
-public void test0158(){
-	String str =
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    #\n" + 
- 		"    label1 : for(;;) {\n" + 
- 		"      class X {\n" + 
- 		"        void foo() {\n" + 
- 		"          label2 : for(;;) {\n" + 
- 		"            continue lab\n" + 
- 		"          }\n" + 
- 		"        }\n" + 
- 		"      }\n" + 
- 		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf("lab") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "continue <CompleteOnLabel:lab>;";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "lab";
-	expectedReplacedSource = "lab";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      class X {\n" + 
-		"        X() {\n" + 
-		"        }\n" + 
-		"        void foo() {\n" + 
-		"          {\n" + 
-		"            continue <CompleteOnLabel:lab>;\n" + 
-		"          }\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-public void test0159() {
-
-	String str = 
-		"public class X {\n" +
-		"	String s = \"ZZZZZ\";\n" +
-		"}\n"; 
-
-	String completeBehind = "ZZZ";
-	String expectedCompletionNodeToString = "<CompletionOnString:\"ZZZ\">";
-	String completionIdentifier = "ZZZ";
-	String expectedUnitDisplayString = 
-		"public class X {\n" + 
-		"  String s = <CompletionOnString:\"ZZZ\">;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "\"ZZZZZ\"";
-	String testName = "<complete inside a string literal>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-public void test0160() {
-
-	String str = 
-		"public class X {\n" +
-		"	String s = \\u0022ZZ\\u005AZZ\\u0022;\n" +
-		"}\n"; 
-
-	String completeBehind = "ZZ\\u005A";
-	String expectedCompletionNodeToString = "<CompletionOnString:\"ZZZ\">";
-	String completionIdentifier = "ZZZ";
-	String expectedUnitDisplayString = 
-		"public class X {\n" + 
-		"  String s = <CompletionOnString:\"ZZZ\">;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "\\u0022ZZ\\u005AZZ\\u0022";
-	String testName = "<complete inside a string literal>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-public void test0161() {
-
-	String str = 
-		"public class X {\n" +
-		"	String s = \"AAAAA\" + \"ZZZZZ\";\n" +
-		"}\n"; 
-
-	String completeBehind = "ZZZ";
-	String expectedCompletionNodeToString = "<CompletionOnString:\"ZZZ\">";
-	String completionIdentifier = "ZZZ";
-	String expectedUnitDisplayString = 
-		"public class X {\n" + 
-		"  String s = (\"AAAAA\" + <CompletionOnString:\"ZZZ\">);\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "\"ZZZZZ\"";
-	String testName = "<complete inside a string literal>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-public void test0162() {
-
-	String str = 
-		"public class X {\n" +
-		"	String s = \"ZZZZZ\n" +
-		"}\n"; 
-
-	String completeBehind = "ZZZ";
-	String expectedCompletionNodeToString = "<CompletionOnString:\"ZZZ\">";
-	String completionIdentifier = "ZZZ";
-	String expectedUnitDisplayString = 
-		"public class X {\n" + 
-		"  String s = <CompletionOnString:\"ZZZ\">;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "\"ZZZZZ";
-	String testName = "<complete inside a string literal>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-public void test0163() {
-
-	String str = 
-		"public class X {\n" +
-		"	String s = \"ZZZZZ"; 
-
-	String completeBehind = "ZZZ";
-	String expectedCompletionNodeToString = "<CompletionOnString:\"ZZZ\">";
-	String completionIdentifier = "ZZZ";
-	String expectedUnitDisplayString = 
-		"public class X {\n" + 
-		"  String s = <CompletionOnString:\"ZZZ\">;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "\"ZZZZZ";
-	String testName = "<complete inside a string literal>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-public void test0164() {
-
-	String str = 
-		"public class X {\n" +
-		"	String s = \"\\u005AZZZZ\\u000D\\u0022" +
-		"}\n"; 
-
-	String completeBehind = "\\u005AZZ";
-	String expectedCompletionNodeToString = "<CompletionOnString:\"ZZZ\">";
-	String completionIdentifier = "ZZZ";
-	String expectedUnitDisplayString = 
-		"public class X {\n" + 
-		"  String s = <CompletionOnString:\"ZZZ\">;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "\"\\u005AZZZZ";
-	String testName = "<complete inside a string literal>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=122755
-public void test0165() {
-
-	String str = 
-		"public class X {\n" +
-		"	void foo() {" +
-		"	/**" +
-		"	 *" +
-		"	 */." +
-		"	}" +
-		"}\n"; 
-
-	String completeBehind = "/.";
-	int cursorLocation = str.lastIndexOf("/.") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "";
-	expectedReplacedSource = "";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=137623
-public void test0166() {
-
-	String str = 
-		"public class X {\n" +
-		"	public boolean foo() {\n" +
-		"      if(this.equals(null))\n" +
-		"      {\n" +
-		"         (zzz==int.\n" +
-		"      }\n" +
-		"   }" +
-		"}\n"; 
-
-	String completeBehind = "int.";
-	int cursorLocation = str.lastIndexOf("int.") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnClassLiteralAccess:int.>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "";
-	expectedReplacedSource = "int.";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"    <CompleteOnClassLiteralAccess:int.>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void test0167() {
-
-	String str = 
-		"public class X {\n" +
-		"	public boolean foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IllegalAccessException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n"; 
-
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf("IZZ") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnException:IZZ>";
-	expectedParentNodeToString =
-		"try \n" + 
-		"  {\n" + 
-		"    throwing();\n" + 
-		"  }\n" + 
-		"catch (IllegalAccessException e)   {\n" + 
-		"  }\n" + 
-		"catch (<CompleteOnException:IZZ>  )   {\n" + 
-		"  }";
-	completionIdentifier = "IZZ";
-	expectedReplacedSource = "IZZ";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        throwing();\n" + 
-		"      }\n" + 
-		"    catch (IllegalAccessException e)       {\n" + 
-		"      }\n" + 
-		"    catch (<CompleteOnException:IZZ>  )       {\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void test0168() {
-
-	String str = 
-		"public class X {\n" +
-		"	public boolean foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IllegalAccessException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ\n" +
-		"   }" +
-		"}\n"; 
-
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf("IZZ") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnException:IZZ>";
-	expectedParentNodeToString =
-		"try \n" + 
-		"  {\n" + 
-		"    throwing();\n" + 
-		"  }\n" + 
-		"catch (IllegalAccessException e)   {\n" + 
-		"  }\n" + 
-		"catch (<CompleteOnException:IZZ>  )   {\n" + 
-		"  }";
-	completionIdentifier = "IZZ";
-	expectedReplacedSource = "IZZ";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        throwing();\n" + 
-		"      }\n" + 
-		"    catch (IllegalAccessException e)       {\n" + 
-		"      }\n" + 
-		"    catch (<CompleteOnException:IZZ>  )       {\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void test0169() {
-
-	String str = 
-		"public class X {\n" +
-		"	public boolean foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IllegalAccessException e) {\n" +
-		"         bar()\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n"; 
-
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf("IZZ") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnException:IZZ>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "IZZ";
-	expectedReplacedSource = "IZZ";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"    <CompleteOnException:IZZ>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void test0170() {
-
-	String str = 
-		"public class X {\n" +
-		"	public boolean foo() {\n" +
-		"      #\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IllegalAccessException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n"; 
-
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf("IZZ") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnException:IZZ>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "IZZ";
-	expectedReplacedSource = "IZZ";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"    <CompleteOnException:IZZ>;\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void test0171() {
-
-	String str = 
-		"public class X {\n" +
-		"	public boolean foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n"; 
-
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf("IZZ") + completeBehind.length() - 1;
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-	"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnException:IZZ>";
-	expectedParentNodeToString =
-		"try \n" + 
-		"  {\n" + 
-		"    throwing();\n" + 
-		"  }\n" + 
-		"catch (<CompleteOnException:IZZ>  )   {\n" + 
-		"  }"
-;
-	completionIdentifier = "IZZ";
-	expectedReplacedSource = "IZZ";
-	expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public boolean foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        throwing();\n" + 
-		"      }\n" + 
-		"    catch (<CompleteOnException:IZZ>  )       {\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkMethodParse(
-			str.toCharArray(),
-			cursorLocation,
-			expectedCompletionNodeToString,
-			expectedParentNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			"full ast");
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTestKeyword.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTestKeyword.java
deleted file mode 100644
index 5a4cc80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTestKeyword.java
+++ /dev/null
@@ -1,15538 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-public class CompletionParserTestKeyword extends AbstractCompletionTest {
-public CompletionParserTestKeyword(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(CompletionParserTestKeyword.class);
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0001(){
-	String str =
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0002(){
-	String str =
-		"abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0003(){
-	String str =
-		"package p;\n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0004(){
-	String str =
-		"package p;\n" +
-		"abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0005(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0006(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0007(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"public abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0008(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"public abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0009(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"abstract abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import yyy;\n" + 
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0010(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"abstract abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import yyy;\n" + 
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0011(){
-	String str =
-		"package p;\n" +
-		"import \n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnImport:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import <CompleteOnImport:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0012(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"public class X {}\n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0013(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"public class X {}\n" +
-		"abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0014(){
-	String str =
-		"package p;\n" +
-		"import yyy;\n" +
-		"final abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import yyy;\n" + 
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0015(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  abst\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0016(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  abst zzz\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0017(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public abst zzz\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0018(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  final abst\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0019(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  abstract abst\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0020(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  static abst\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0021(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    abst\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:abst>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "abst";
-	expectedReplacedSource = "abst";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:abst>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0022(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    abst zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:abst>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "abst";
-	expectedReplacedSource = "abst";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:abst>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'break' keyword.
- */
-public void test0023(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    bre\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "bre";
-	int cursorLocation = str.lastIndexOf("bre") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:bre>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bre";
-	expectedReplacedSource = "bre";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:bre>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'break' keyword.
- */
-public void test0024(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    for(int i; i < 10; i++) {\n" +
-		"      bre\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "bre";
-	int cursorLocation = str.lastIndexOf("bre") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:bre>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bre";
-	expectedReplacedSource = "bre";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    {\n" +
-		"      <CompleteOnName:bre>;\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'case' keyword.
- */
-public void test0025(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    cas\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cas";
-	int cursorLocation = str.lastIndexOf("cas") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cas>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cas";
-	expectedReplacedSource = "cas";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cas>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'case' keyword.
- */
-public void test0026(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    switch(0) {\n" +
-		"      cas\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cas";
-	int cursorLocation = str.lastIndexOf("cas") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:cas>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cas";
-	expectedReplacedSource = "cas";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:cas>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'catch' keyword.
- */
-public void test0027(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     cat\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cat";
-	int cursorLocation = str.lastIndexOf("cat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cat>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cat";
-	expectedReplacedSource = "cat";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cat>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'catch' keyword.
- */
-public void test0028(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    try {\n" +
-		"    } cat\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cat";
-	int cursorLocation = str.lastIndexOf("cat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:cat>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cat";
-	expectedReplacedSource = "cat";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:cat>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0029(){
-	String str =
-		"cla";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:cla>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0030(){
-	String str =
-		"public cla";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:cla>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0031(){
-	String str =
-		"public final cla";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:cla>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0032(){
-	String str =
-		"public final cla X";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:cla>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0033(){
-	String str =
-		"public class X {\n" +
-		"  cla\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:cla>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0034(){
-	String str =
-		"public class X {\n" +
-		"  public cla\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:cla>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0035(){
-	String str =
-		"public class X {\n" +
-		"  public final cla\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:cla>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0036(){
-	String str =
-		"public class X {\n" +
-		"  public final cla Y\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:cla>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:cla>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0037(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    cla\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cla>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cla";
-	expectedReplacedSource = "cla";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cla>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0038(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    final cla\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cla>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cla";
-	expectedReplacedSource = "cla";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cla>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0039(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    final cla Y\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cla>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cla";
-	expectedReplacedSource = "cla";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cla>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'continue' keyword.
- */
-public void test0040(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     con\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "con";
-	int cursorLocation = str.lastIndexOf("con") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:con>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "con";
-	expectedReplacedSource = "con";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:con>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'continue' keyword.
- */
-public void test0041(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     for(int i; i < 5; i++) {\n" +
-		"       con\n" +
-		"     }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "con";
-	int cursorLocation = str.lastIndexOf("con") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:con>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "con";
-	expectedReplacedSource = "con";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    {\n" +
-		"      <CompleteOnName:con>;\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'default' keyword.
- */
-public void test0042(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     def\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "def";
-	int cursorLocation = str.lastIndexOf("def") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:def>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "def";
-	expectedReplacedSource = "def";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:def>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'default' keyword.
- */
-public void test0043(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     switch(0) {\n" +
-		"       case 1 : break;\n" +
-		"       def\n" +
-		"     }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "def";
-	int cursorLocation = str.lastIndexOf("def") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:def>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "def";
-	expectedReplacedSource = "def";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    {\n" +
-		"      <CompleteOnName:def>;\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'do' keyword.
- */
-public void test0044(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     do\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "do";
-	int cursorLocation = str.lastIndexOf("do") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:do>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "do";
-	expectedReplacedSource = "do";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:do>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'else' keyword.
- */
-public void test0045(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     els\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "els";
-	int cursorLocation = str.lastIndexOf("els") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:els>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "els";
-	expectedReplacedSource = "els";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:els>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'else' keyword.
- */
-public void test0046(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     if(true) {\n" +
-		"     } els\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "els";
-	int cursorLocation = str.lastIndexOf("els") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:els>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "els";
-	expectedReplacedSource = "els";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:els>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0047(){
-	String str =
-		"ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:ext>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0048(){
-	String str =
-		"X ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0049(){
-	String str =
-		"ext Y";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:ext>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0050(){
-	String str =
-		"class X ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:ext> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0051(){
-	String str =
-		"class X ext Y";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:ext> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0052(){
-	String str =
-		"class X ext Y {";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:ext> {\n" +
-		"  {\n" +
-		"  }\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0053(){
-	String str =
-		"class X extends Y ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:ext> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0054(){
-	String str =
-		"class X implements Y ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X implements Y {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'finally' keyword.
- */
-public void test0055(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     fin" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:fin>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fin";
-	expectedReplacedSource = "fin";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:fin>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'finally' keyword.
- */
-public void test0056(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     try {" +
-		"     } fin" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fin";
-	expectedReplacedSource = "fin";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:fin>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'for' keyword.
- */
-public void test0057(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     for" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "for";
-	int cursorLocation = str.lastIndexOf("for") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:for>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "for";
-	expectedReplacedSource = "for";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:for>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'if' keyword.
- */
-public void test0058(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     if" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "if";
-	int cursorLocation = str.lastIndexOf("if") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:if>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "if";
-	expectedReplacedSource = "if";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:if>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'switch' keyword.
- */
-public void test0059(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     swi" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "swi";
-	int cursorLocation = str.lastIndexOf("swi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:swi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "swi";
-	expectedReplacedSource = "swi";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:swi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0060(){
-	String str =
-		"impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:impl>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0061(){
-	String str =
-		"X impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0062(){
-	String str =
-		"impl Y";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:impl>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0063(){
-	String str =
-		"class X impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:impl> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0064(){
-	String str =
-		"class X impl Y";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:impl> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0065(){
-	String str =
-		"class X impl Y {";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:impl> {\n" +
-		"  {\n" +
-		"  }\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0066(){
-	String str =
-		"class X extends Y impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:impl> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0067(){
-	String str =
-		"class X implements Y impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X implements Y {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'import' keyword.
- */
-public void test0068(){
-	String str =
-		"impo";
-
-	String completeBehind = "impo";
-	int cursorLocation = str.lastIndexOf("impo") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impo";
-	String expectedReplacedSource = "impo";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:impo>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'import' keyword.
- */
-public void test0069(){
-	String str =
-		"package p;\n" +
-		"impo";
-
-	String completeBehind = "impo";
-	int cursorLocation = str.lastIndexOf("impo") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impo";
-	String expectedReplacedSource = "impo";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import <CompleteOnKeyword:impo>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'import' keyword.
- */
-public void test0070(){
-	String str =
-		"package p;\n" +
-		"import p2.Y;\n" +
-		"impo";
-
-	String completeBehind = "impo";
-	int cursorLocation = str.lastIndexOf("impo") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impo";
-	String expectedReplacedSource = "impo";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import p2.Y;\n" +
-		"import <CompleteOnKeyword:impo>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'import' keyword.
- */
-public void test0071(){
-	String str =
-		"impo p2.Y";
-
-	String completeBehind = "impo";
-	int cursorLocation = str.lastIndexOf("impo") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impo";
-	String expectedReplacedSource = "impo";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:impo>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0072(){
-	String str =
-		"int";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0073(){
-	String str =
-		"public int";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0074(){
-	String str =
-		"public abstract int";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0075(){
-	String str =
-		"public abstract int X";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0076(){
-	String str =
-		"public class X {\n" +
-		"  int\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:int>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0077(){
-	String str =
-		"public class X {\n" +
-		"  public int\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:int>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0078(){
-	String str =
-		"public class X {\n" +
-		"  public abstract int\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:int>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0079(){
-	String str =
-		"public class X {\n" +
-		"  public abstract int Y\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:int>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:int>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0080(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    int\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:int>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "int";
-	expectedReplacedSource = "int";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:int>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0081(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    abstract int\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:int>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "int";
-	expectedReplacedSource = "int";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:int>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0082(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    abstract int Y\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:int>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "int";
-	expectedReplacedSource = "int";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:int>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0083(){
-	String str =
-		"public final int";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0084(){
-	String str =
-		"public final int X";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0085(){
-	String str =
-		"pac";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pac>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0086(){
-	String str =
-		"pac p";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pac>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0087(){
-	String str =
-		"package p;" +
-		"pac";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import <CompleteOnKeyword:pac>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0088(){
-	String str =
-		"import p;" +
-		"pac";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"import p;\n" + 
-		"import <CompleteOnKeyword:pac>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0089(){
-	String str =
-		"class X {}" +
-		"pac";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pac>;\n" + 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'return' keyword.
- */
-public void test0090(){
-	String str =
-		"public class X {\n" +
-		"  int foo() {\n" +
-		"    ret\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "ret";
-	int cursorLocation = str.lastIndexOf("ret") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  int foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ret>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ret";
-	expectedReplacedSource = "ret";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  int foo() {\n" +
-		"    <CompleteOnName:ret>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'throw' keyword.
- */
-public void test0091(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:thr>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "thr";
-	expectedReplacedSource = "thr";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:thr>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'try' keyword.
- */
-public void test0092(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    try\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "try";
-	int cursorLocation = str.lastIndexOf("try") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:try>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "try";
-	expectedReplacedSource = "try";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:try>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'try' keyword.
- */
-public void test0093(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    if(try\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "try";
-	int cursorLocation = str.lastIndexOf("try") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:try>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "try";
-	expectedReplacedSource = "try";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:try>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'do' keyword.
- */
-public void test0094(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    if(do\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "do";
-	int cursorLocation = str.lastIndexOf("do") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:do>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "do";
-	expectedReplacedSource = "do";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:do>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'for' keyword.
- */
-public void test0095(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    if(for\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "for";
-	int cursorLocation = str.lastIndexOf("for") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:for>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "for";
-	expectedReplacedSource = "for";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:for>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'if' keyword.
- */
-public void test0096(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    if(if\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "if";
-	int cursorLocation = str.lastIndexOf("if") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:if>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "if";
-	expectedReplacedSource = "if";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:if>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'switch' keyword.
- */
-public void test0097(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    if(swi\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "swi";
-	int cursorLocation = str.lastIndexOf("swi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:swi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "swi";
-	expectedReplacedSource = "swi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:swi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'new' keyword.
- */
-public void test0098(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    new\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "new";
-	int cursorLocation = str.lastIndexOf("new") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:new>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "new";
-	expectedReplacedSource = "new";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:new>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'new' keyword.
- */
-public void test0099(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    new X\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "new";
-	int cursorLocation = str.lastIndexOf("new") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:new>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "new";
-	expectedReplacedSource = "new";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:new>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'new' keyword.
- */
-public void test0100(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    new X()\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "new";
-	int cursorLocation = str.lastIndexOf("new") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:new>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "new";
-	expectedReplacedSource = "new";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:new>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0101(){
-	String str =
-		"public class X {\n" +
-		"  void foo() thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0102(){
-	String str =
-		"public class X {\n" +
-		"  void foo() thr {\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0103(){
-	String str =
-		"public class X {\n" +
-		"  void foo() thr E {\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0104(){
-	String str =
-		"public class X {\n" +
-		"  void foo() throws E thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() throws E {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0105(){
-	String str =
-		"public class X {\n" +
-		"  X() thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  X() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0106(){
-	String str =
-		"public class X {\n" +
-		"  int foo()[] thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  int[] foo() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'while' keyword.
- */
-public void test0107(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    whi\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "whi";
-	int cursorLocation = str.lastIndexOf("whi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:whi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "whi";
-	expectedReplacedSource = "whi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:whi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'while' keyword.
- */
-public void test0108(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    if(whi\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "whi";
-	int cursorLocation = str.lastIndexOf("whi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:whi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "whi";
-	expectedReplacedSource = "whi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:whi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'assert' keyword.
- */
-public void test0109(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    ass\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "ass";
-	int cursorLocation = str.lastIndexOf("ass") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ass>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ass";
-	expectedReplacedSource = "ass";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:ass>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'assert' keyword.
- */
-public void test0110(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    if(ass\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "ass";
-	int cursorLocation = str.lastIndexOf("ass") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ass>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ass";
-	expectedReplacedSource = "ass";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:ass>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0111(){
-	String str =
-		"fin";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0112(){
-	String str =
-		"public fin";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0113(){
-	String str =
-		"fin zzz";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0114(){
-	String str =
-		"final fin";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0115(){
-	String str =
-		"abstract fin";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0116(){
-	String str =
-		"public fin class X {}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n" +
-		"class X {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0117(){
-	String str =
-		"public class X {\n" +
-		"  fin\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0118(){
-	String str =
-		"public class X {\n" +
-		"  public fin\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0119(){
-	String str =
-		"public class X {\n" +
-		"  fin zzz\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0120(){
-	String str =
-		"public class X {\n" +
-		"  final fin\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0121(){
-	String str =
-		"public class X {\n" +
-		"  abstract fin\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0122(){
-	String str =
-		"public class X {\n" +
-		"  nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0123(){
-	String str =
-		"public class X {\n" +
-		"  public nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0124(){
-	String str =
-		"public class X {\n" +
-		"  transient nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0125(){
-	String str =
-		"public class X {\n" +
-		"  transient nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0126(){
-	String str =
-		"public class X {\n" +
-		"  volatile nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0127(){
-	String str =
-		"public class X {\n" +
-		"  str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0128(){
-	String str =
-		"public class X {\n" +
-		"  public str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0129(){
-	String str =
-		"public class X {\n" +
-		"  transient str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0130(){
-	String str =
-		"public class X {\n" +
-		"  transient str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0131(){
-	String str =
-		"public class X {\n" +
-		"  volatile str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0132(){
-	String str =
-		"public class X {\n" +
-		"  vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0133(){
-	String str =
-		"public class X {\n" +
-		"  public vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0134(){
-	String str =
-		"public class X {\n" +
-		"  transient vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0135(){
-	String str =
-		"public class X {\n" +
-		"  volatile vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0136(){
-	String str =
-		"public class X {\n" +
-		"  native vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0137(){
-	String str =
-		"public class X {\n" +
-		"  tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0138(){
-	String str =
-		"public class X {\n" +
-		"  public tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0139(){
-	String str =
-		"public class X {\n" +
-		"  transient tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0140(){
-	String str =
-		"public class X {\n" +
-		"  volatile tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0141(){
-	String str =
-		"public class X {\n" +
-		"  native tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0142(){
-	String str =
-		"public class X {\n" +
-		"  syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0143(){
-	String str =
-		"public class X {\n" +
-		"  public syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0144(){
-	String str =
-		"public class X {\n" +
-		"  transient syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0145(){
-	String str =
-		"public class X {\n" +
-		"  transient syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0146(){
-	String str =
-		"public class X {\n" +
-		"  volatile syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0147(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    syn\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:syn>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "syn";
-	expectedReplacedSource = "syn";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:syn>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0148(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    if(syn\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:syn>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "syn";
-	expectedReplacedSource = "syn";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:syn>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'static' keyword.
- */
-public void test0149(){
-	String str =
-		"public class X {\n" +
-		"  sta\n" +
-		"}";
-
-	String completeBehind = "sta";
-	int cursorLocation = str.lastIndexOf("sta") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:sta>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "sta";
-	String expectedReplacedSource = "sta";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:sta>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'static' keyword.
- */
-public void test0150(){
-	String str =
-		"public class X {\n" +
-		"  public sta\n" +
-		"}";
-
-	String completeBehind = "sta";
-	int cursorLocation = str.lastIndexOf("sta") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:sta>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "sta";
-	String expectedReplacedSource = "sta";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:sta>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0151(){
-	String str =
-		"pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0152(){
-	String str =
-		"final pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0153(){
-	String str =
-		"public pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0154(){
-	String str =
-		"private pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0155(){
-	String str =
-		"public class X{}\n" +
-		"pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0156(){
-	String str =
-		"public class X{\n" +
-		"  pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0157(){
-	String str =
-		"public class X{\n" +
-		"  public pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0158(){
-	String str =
-		"public class X{\n" +
-		"  private pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0159(){
-	String str =
-		"public class X{\n" +
-		"  protected pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0160(){
-	String str =
-		"public class X{\n" +
-		"  abstract pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0161(){
-	String str =
-		"pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0162(){
-	String str =
-		"final pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pro>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0163(){
-	String str =
-		"public pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pro>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0164(){
-	String str =
-		"private pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pro>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0165(){
-	String str =
-		"public class X{}\n" +
-		"pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pro>;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0166(){
-	String str =
-		"public class X{\n" +
-		"  pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0167(){
-	String str =
-		"public class X{\n" +
-		"  public pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0168(){
-	String str =
-		"public class X{\n" +
-		"  private pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0169(){
-	String str =
-		"public class X{\n" +
-		"  protected pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0170(){
-	String str =
-		"public class X{\n" +
-		"  abstract pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0171(){
-	String str =
-		"pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0172(){
-	String str =
-		"final pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pri>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0173(){
-	String str =
-		"public pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pri>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0174(){
-	String str =
-		"private pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pri>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0175(){
-	String str =
-		"public class X{}\n" +
-		"pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pri>;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0176(){
-	String str =
-		"public class X{\n" +
-		"  pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0177(){
-	String str =
-		"public class X{\n" +
-		"  public pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0178(){
-	String str =
-		"public class X{\n" +
-		"  private pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0179(){
-	String str =
-		"public class X{\n" +
-		"  protected pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0180(){
-	String str =
-		"public class X{\n" +
-		"  abstract pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'super' keyword.
- */
-public void test0181(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     sup\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "sup";
-	int cursorLocation = str.lastIndexOf("sup") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:sup>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "sup";
-	expectedReplacedSource = "sup";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:sup>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'this' keyword.
- */
-public void test0182(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     thi\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "thi";
-	int cursorLocation = str.lastIndexOf("thi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:thi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "thi";
-	expectedReplacedSource = "thi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:thi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'true' keyword.
- */
-public void test0183(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     tru\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "tru";
-	int cursorLocation = str.lastIndexOf("tru") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:tru>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "tru";
-	expectedReplacedSource = "tru";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:tru>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'false' keyword.
- */
-public void test0184(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     fal\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fal";
-	int cursorLocation = str.lastIndexOf("fal") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:fal>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fal";
-	expectedReplacedSource = "fal";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:fal>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'null' keyword.
- */
-public void test0185(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     nul\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "nul";
-	int cursorLocation = str.lastIndexOf("nul") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:nul>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "nul";
-	expectedReplacedSource = "nul";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:nul>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'instanceof' keyword.
- */
-public void test0186(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     if(zzz ins\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "ins";
-	int cursorLocation = str.lastIndexOf("ins") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:ins>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ins";
-	expectedReplacedSource = "ins";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:ins>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'instanceof' keyword.
- */
-public void test0187(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     ins\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "ins";
-	int cursorLocation = str.lastIndexOf("ins") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ins>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ins";
-	expectedReplacedSource = "ins";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:ins>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'instanceof' keyword.
- */
-public void test0188(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     if(zzz zzz ins\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "ins";
-	int cursorLocation = str.lastIndexOf("ins") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ins>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ins";
-	expectedReplacedSource = "ins";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    zzz zzz;\n" +
-		"    <CompleteOnName:ins>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'while' keyword.
- */
-public void test0189(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    do{\n" +
-		"    } whi\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "whi";
-	int cursorLocation = str.lastIndexOf("whi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:whi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "whi";
-	expectedReplacedSource = "whi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:whi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'catch' keyword.
- */
-public void test0190(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    try {\n" +
-		"    } catch(E e) {\n" +
-		"    } cat\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cat";
-	int cursorLocation = str.lastIndexOf("cat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cat>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cat";
-	expectedReplacedSource = "cat";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cat>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'finally' keyword.
- */
-public void test0191(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     try {" +
-		"     } catch(E e) {" +
-		"     } fin" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:fin>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fin";
-	expectedReplacedSource = "fin";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:fin>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'finally' keyword.
- */
-public void test0192(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     try {" +
-		"     } finally {" +
-		"     } fin" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:fin>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fin";
-	expectedReplacedSource = "fin";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:fin>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'this' keyword.
- */
-public void test0193(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"     X.thi\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "thi";
-	int cursorLocation = str.lastIndexOf("thi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:X.thi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "thi";
-	expectedReplacedSource = "X.thi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:X.thi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-/*
- * Test for 'abstract' keyword.
- */
-public void test0194(){
-	String str =
-		"#\n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0195(){
-	String str =
-		"#\n" +
-		"abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0196(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0197(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0198(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0199(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0200(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"public abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0201(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"public abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.indexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0202(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"abstract abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import yyy;\n" + 
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0203(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"abstract abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import yyy;\n" + 
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0204(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import \n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnImport:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import <CompleteOnImport:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0205(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"public class X {}\n" +
-		"abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0206(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"public class X {}\n" +
-		"abst zzz";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import yyy;\n" +
-		"import <CompleteOnKeyword:abst>;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0207(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import yyy;\n" +
-		"final abst";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import yyy;\n" + 
-		"import <CompleteOnKeyword:abst>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0208(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"public class X {\n" +
-		"  abst\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0209(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"public class X {\n" +
-		"  abst zzz\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0210(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"public class X {\n" +
-		"  public abst zzz\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0211(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"public class X {\n" +
-		"  final abst\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0212(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"public class X {\n" +
-		"  abstract abst\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0213(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"public class X {\n" +
-		"  static abst\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:abst>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "abst";
-	String expectedReplacedSource = "abst";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  <CompleteOnType:abst>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0214(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    abst\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:abst>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "abst";
-	expectedReplacedSource = "abst";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:abst>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'abstract' keyword.
- */
-public void test0216(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    abst zzz\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "abst";
-	int cursorLocation = str.lastIndexOf("abst") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:abst>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "abst";
-	expectedReplacedSource = "abst";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:abst>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'break' keyword.
- */
-public void test0217(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    bre\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "bre";
-	int cursorLocation = str.lastIndexOf("bre") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:bre>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bre";
-	expectedReplacedSource = "bre";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:bre>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'break' keyword.
- */
-public void test0218(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    for(int i; i < 10; i++) {\n" +
-		"      bre\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "bre";
-	int cursorLocation = str.lastIndexOf("bre") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:bre>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "bre";
-	expectedReplacedSource = "bre";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    {\n" +
-		"      <CompleteOnName:bre>;\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'case' keyword.
- */
-public void test0219(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    cas\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cas";
-	int cursorLocation = str.lastIndexOf("cas") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cas>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cas";
-	expectedReplacedSource = "cas";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cas>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'case' keyword.
- */
-public void test0220(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    switch(0) {\n" +
-		"      cas\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cas";
-	int cursorLocation = str.lastIndexOf("cas") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:cas>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cas";
-	expectedReplacedSource = "cas";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    {\n" +
-		"      <CompleteOnKeyword:cas>;\n" +
-		"    }\n"+
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'catch' keyword.
- */
-public void test0221(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    cat\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cat";
-	int cursorLocation = str.lastIndexOf("cat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cat>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cat";
-	expectedReplacedSource = "cat";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cat>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'catch' keyword.
- */
-public void test0222(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    try {\n" +
-		"    } cat\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cat";
-	int cursorLocation = str.lastIndexOf("cat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:cat>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cat";
-	expectedReplacedSource = "cat";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:cat>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0223(){
-	String str =
-		"#\n" +
-		"cla";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:cla>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0224(){
-	String str =
-		"#\n" +
-		"public cla";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:cla>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0225(){
-	String str =
-		"#\n" +
-		"public final cla";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:cla>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0226(){
-	String str =
-		"#\n" +
-		"public final cla X";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:cla>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0227(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  cla\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:cla>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0228(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public cla\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:cla>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0229(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public final cla\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:cla>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:cla>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0230(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public final cla Y\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:cla>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "cla";
-	String expectedReplacedSource = "cla";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:cla>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0231(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    cla\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cla>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cla";
-	expectedReplacedSource = "cla";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cla>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0232(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    final cla\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cla>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cla";
-	expectedReplacedSource = "cla";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cla>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'class' keyword.
- */
-public void test0233(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    final cla Y\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "cla";
-	int cursorLocation = str.lastIndexOf("cla") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cla>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cla";
-	expectedReplacedSource = "cla";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cla>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'continue' keyword.
- */
-public void test0234(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    con\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "con";
-	int cursorLocation = str.lastIndexOf("con") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:con>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "con";
-	expectedReplacedSource = "con";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:con>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'continue' keyword.
- */
-public void test0235(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    for(int i; i < 5; i++) {\n" +
-		"      con\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "con";
-	int cursorLocation = str.lastIndexOf("con") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:con>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "con";
-	expectedReplacedSource = "con";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    {\n" +
-		"      <CompleteOnName:con>;\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'default' keyword.
- */
-public void test0236(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    def\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "def";
-	int cursorLocation = str.lastIndexOf("def") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:def>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "def";
-	expectedReplacedSource = "def";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:def>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'default' keyword.
- */
-public void test0237(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    switch(0) {\n" +
-		"      case 1 : break;\n" +
-		"      def\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "def";
-	int cursorLocation = str.lastIndexOf("def") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:def>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "def";
-	expectedReplacedSource = "def";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    {\n" +
-		"      <CompleteOnName:def>;\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'do' keyword.
- */
-public void test0238(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    do\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "do";
-	int cursorLocation = str.lastIndexOf("do") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:do>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "do";
-	expectedReplacedSource = "do";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:do>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'else' keyword.
- */
-public void test0239(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    els\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "els";
-	int cursorLocation = str.lastIndexOf("els") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:els>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "els";
-	expectedReplacedSource = "els";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:els>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'else' keyword.
- */
-public void test0240(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    if(true) {\n" +
-		"    } els\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "els";
-	int cursorLocation = str.lastIndexOf("els") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:els>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "els";
-	expectedReplacedSource = "els";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:els>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0241(){
-	String str =
-		"#\n" +
-		"ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:ext>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0242(){
-	String str =
-		"#\n" +
-		"X ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0243(){
-	String str =
-		"#\n" +
-		"ext Y";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:ext>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0244(){
-	String str =
-		"#\n" +
-		"class X ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:ext> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0245(){
-	String str =
-		"#\n" +
-		"class X ext Y";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:ext> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0246(){
-	String str =
-		"#\n" +
-		"class X ext Y {";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:ext> {\n" +
-		"  {\n" +
-		"  }\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0247(){
-	String str =
-		"#\n" +
-		"class X extends Y ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:ext> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'extends' keyword.
- */
-public void test0248(){
-	String str =
-		"#\n" +
-		"class X implements Y ext";
-
-	String completeBehind = "ext";
-	int cursorLocation = str.lastIndexOf("ext") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "ext";
-	String expectedReplacedSource = "ext";
-	String expectedUnitDisplayString =
-		"class X implements Y {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'finally' keyword.
- */
-public void test0249(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    fin" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:fin>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fin";
-	expectedReplacedSource = "fin";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:fin>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'finally' keyword.
- */
-public void test0250(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    try {" +
-		"    } fin" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fin";
-	expectedReplacedSource = "fin";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:fin>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'for' keyword.
- */
-public void test0251(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    for" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "for";
-	int cursorLocation = str.lastIndexOf("for") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:for>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "for";
-	expectedReplacedSource = "for";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:for>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'if' keyword.
- */
-public void test0252(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    if" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "if";
-	int cursorLocation = str.lastIndexOf("if") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:if>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "if";
-	expectedReplacedSource = "if";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:if>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'switch' keyword.
- */
-public void test0253(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    swi" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "swi";
-	int cursorLocation = str.lastIndexOf("swi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:swi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "swi";
-	expectedReplacedSource = "swi";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:swi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0254(){
-	String str =
-		"#\n" +
-		"impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:impl>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0255(){
-	String str =
-		"#\n" +
-		"X impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0256(){
-	String str =
-		"#\n" +
-		"impl Y";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:impl>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0257(){
-	String str =
-		"#\n" +
-		"class X impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:impl> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0258(){
-	String str =
-		"#\n" +
-		"class X impl Y";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:impl> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0259(){
-	String str =
-		"#\n" +
-		"class X impl Y {";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:impl> {\n" +
-		"  {\n" +
-		"  }\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0260(){
-	String str =
-		"#\n" +
-		"class X extends Y impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impl>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X extends <CompleteOnKeyword:impl> {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'implements' keyword.
- */
-public void test0261(){
-	String str =
-		"#\n" +
-		"class X implements Y impl";
-
-	String completeBehind = "impl";
-	int cursorLocation = str.lastIndexOf("impl") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impl";
-	String expectedReplacedSource = "impl";
-	String expectedUnitDisplayString =
-		"class X implements Y {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'import' keyword.
- */
-public void test0262(){
-	String str =
-		"#\n" +
-		"impo";
-
-	String completeBehind = "impo";
-	int cursorLocation = str.lastIndexOf("impo") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impo";
-	String expectedReplacedSource = "impo";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:impo>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'import' keyword.
- */
-public void test0263(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"impo";
-
-	String completeBehind = "impo";
-	int cursorLocation = str.lastIndexOf("impo") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impo";
-	String expectedReplacedSource = "impo";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import <CompleteOnKeyword:impo>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'import' keyword.
- */
-public void test0264(){
-	String str =
-		"#\n" +
-		"package p;\n" +
-		"import p2.Y;\n" +
-		"impo";
-
-	String completeBehind = "impo";
-	int cursorLocation = str.lastIndexOf("impo") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impo";
-	String expectedReplacedSource = "impo";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"import p2.Y;\n" +
-		"import <CompleteOnKeyword:impo>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'import' keyword.
- */
-public void test0265(){
-	String str =
-		"#\n" +
-		"impo p2.Y";
-
-	String completeBehind = "impo";
-	int cursorLocation = str.lastIndexOf("impo") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:impo>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "impo";
-	String expectedReplacedSource = "impo";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:impo>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0266(){
-	String str =
-		"#\n" +
-		"int";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0267(){
-	String str =
-		"#\n" +
-		"public int";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0268(){
-	String str =
-		"#\n" +
-		"public abstract int";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0269(){
-	String str =
-		"#\n" +
-		"public abstract int X";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0270(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  int\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:int>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0271(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public int\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:int>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0272(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public abstract int\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:int>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0273(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public abstract int Y\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:int>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:int>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0274(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    int\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:int>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "int";
-	expectedReplacedSource = "int";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:int>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0275(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    abstract int\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:int>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "int";
-	expectedReplacedSource = "int";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:int>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0276(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    abstract int Y\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:int>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "int";
-	expectedReplacedSource = "int";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:int>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0277(){
-	String str =
-		"#\n" +
-		"public final int";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'interface' keyword.
- */
-public void test0278(){
-	String str =
-		"#\n" +
-		"public final int X";
-
-	String completeBehind = "int";
-	int cursorLocation = str.lastIndexOf("int") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:int>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "int";
-	String expectedReplacedSource = "int";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:int>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0279(){
-	String str =
-		"#\n" +
-		"pac";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pac>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0280(){
-	String str =
-		"#\n" +
-		"pac p";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pac>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0281(){
-	String str =
-		"#\n" +
-		"package p;" +
-		"pac";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"package p;\n" + 
-		"import <CompleteOnKeyword:pac>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0282(){
-	String str =
-		"#\n" +
-		"import p;" +
-		"pac";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"import p;\n" + 
-		"import <CompleteOnKeyword:pac>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'package' keyword.
- */
-public void test0283(){
-	String str =
-		"#\n" +
-		"class X {}" +
-		"pac";
-
-	String completeBehind = "pac";
-	int cursorLocation = str.lastIndexOf("pac") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pac>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pac";
-	String expectedReplacedSource = "pac";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pac>;\n" + 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'return' keyword.
- */
-public void test0284(){
-	String str =
-		"public class X {\n" +
-		"  int foo() {\n" +
-		"    #\n" +
-		"    ret\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "ret";
-	int cursorLocation = str.lastIndexOf("ret") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  int foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ret>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ret";
-	expectedReplacedSource = "ret";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  int foo() {\n" +
-		"    <CompleteOnName:ret>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'throw' keyword.
- */
-public void test0285(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:thr>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "thr";
-	expectedReplacedSource = "thr";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:thr>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'try' keyword.
- */
-public void test0286(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    try\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "try";
-	int cursorLocation = str.lastIndexOf("try") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:try>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "try";
-	expectedReplacedSource = "try";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:try>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'try' keyword.
- */
-public void test0287(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    if(try\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "try";
-	int cursorLocation = str.lastIndexOf("try") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:try>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "try";
-	expectedReplacedSource = "try";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:try>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'do' keyword.
- */
-public void test0288(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    if(do\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "do";
-	int cursorLocation = str.lastIndexOf("do") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:do>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "do";
-	expectedReplacedSource = "do";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:do>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'for' keyword.
- */
-public void test0289(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    if(for\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "for";
-	int cursorLocation = str.lastIndexOf("for") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:for>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "for";
-	expectedReplacedSource = "for";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:for>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'if' keyword.
- */
-public void test0290(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    if(if\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "if";
-	int cursorLocation = str.lastIndexOf("if") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:if>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "if";
-	expectedReplacedSource = "if";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:if>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'switch' keyword.
- */
-public void test0291(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    if(swi\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "swi";
-	int cursorLocation = str.lastIndexOf("swi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:swi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "swi";
-	expectedReplacedSource = "swi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:swi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'new' keyword.
- */
-public void test0292(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    new\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "new";
-	int cursorLocation = str.lastIndexOf("new") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:new>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "new";
-	expectedReplacedSource = "new";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:new>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'new' keyword.
- */
-public void test0293(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    new X\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "new";
-	int cursorLocation = str.lastIndexOf("new") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:new>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "new";
-	expectedReplacedSource = "new";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:new>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'new' keyword.
- */
-public void test0294(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    new X()\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "new";
-	int cursorLocation = str.lastIndexOf("new") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:new>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "new";
-	expectedReplacedSource = "new";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:new>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0295(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  void foo() thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0296(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  void foo() thr {\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0297(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  void foo() thr E {\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0298(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  void foo() throws E thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() throws E {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0299(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  X() thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  X() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'throws' keyword.
- */
-public void test0300(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  int foo()[] thr\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "thr";
-	int cursorLocation = str.lastIndexOf("thr") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:thr>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "thr";
-	String expectedReplacedSource = "thr";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  int[] foo() throws <CompleteOnKeyword:thr> {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'while' keyword.
- */
-public void test0301(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    whi\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "whi";
-	int cursorLocation = str.lastIndexOf("whi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:whi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "whi";
-	expectedReplacedSource = "whi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:whi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'while' keyword.
- */
-public void test0302(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    if(whi\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "whi";
-	int cursorLocation = str.lastIndexOf("whi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:whi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "whi";
-	expectedReplacedSource = "whi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:whi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'assert' keyword.
- */
-public void test0303(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    ass\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "ass";
-	int cursorLocation = str.lastIndexOf("ass") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ass>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ass";
-	expectedReplacedSource = "ass";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:ass>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'assert' keyword.
- */
-public void test0304(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    if(ass\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "ass";
-	int cursorLocation = str.lastIndexOf("ass") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ass>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ass";
-	expectedReplacedSource = "ass";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:ass>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0305(){
-	String str =
-		"#\n" +
-		"fin";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0306(){
-	String str =
-		"#\n" +
-		"public fin";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0307(){
-	String str =
-		"#\n" +
-		"fin zzz";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0308(){
-	String str =
-		"#\n" +
-		"final fin";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0309(){
-	String str =
-		"#\n" +
-		"abstract fin";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0310(){
-	String str =
-		"#\n" +
-		"public fin class X {}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:fin>;\n" +
-		"class X {\n" +
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0311(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  fin\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0312(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public fin\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0313(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  fin zzz\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>;";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0314(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  final fin\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'final' keyword.
- */
-public void test0315(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  abstract fin\n" +
-		"}";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:fin>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "fin";
-	String expectedReplacedSource = "fin";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:fin>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0316(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0317(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0318(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  transient nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0319(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  transient nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'native' keyword.
- */
-public void test0320(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  volatile nat\n" +
-		"}";
-
-	String completeBehind = "nat";
-	int cursorLocation = str.lastIndexOf("nat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:nat>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "nat";
-	String expectedReplacedSource = "nat";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:nat>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0321(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0322(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0323(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  transient str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0324(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  transient str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'strictfp' keyword.
- */
-public void test0325(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  volatile str\n" +
-		"}";
-
-	String completeBehind = "str";
-	int cursorLocation = str.lastIndexOf("str") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:str>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "str";
-	String expectedReplacedSource = "str";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:str>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0326(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0327(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0328(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  transient vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0329(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  volatile vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'volatile' keyword.
- */
-public void test0330(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  native vol\n" +
-		"}";
-
-	String completeBehind = "vol";
-	int cursorLocation = str.lastIndexOf("vol") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:vol>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "vol";
-	String expectedReplacedSource = "vol";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:vol>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0331(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0332(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0333(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  transient tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0334(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  volatile tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'transient' keyword.
- */
-public void test0335(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  native tra\n" +
-		"}";
-
-	String completeBehind = "tra";
-	int cursorLocation = str.lastIndexOf("tra") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:tra>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "tra";
-	String expectedReplacedSource = "tra";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:tra>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0336(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0337(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0338(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  transient syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0339(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  transient syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0340(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  volatile syn\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:syn>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "syn";
-	String expectedReplacedSource = "syn";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:syn>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0341(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    syn\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:syn>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "syn";
-	expectedReplacedSource = "syn";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:syn>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'synchronized' keyword.
- */
-public void test0342(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    if(syn\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "syn";
-	int cursorLocation = str.lastIndexOf("syn") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:syn>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "syn";
-	expectedReplacedSource = "syn";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:syn>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'static' keyword.
- */
-public void test0343(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  sta\n" +
-		"}";
-
-	String completeBehind = "sta";
-	int cursorLocation = str.lastIndexOf("sta") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:sta>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "sta";
-	String expectedReplacedSource = "sta";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:sta>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'static' keyword.
- */
-public void test0344(){
-	String str =
-		"#\n" +
-		"public class X {\n" +
-		"  public sta\n" +
-		"}";
-
-	String completeBehind = "sta";
-	int cursorLocation = str.lastIndexOf("sta") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:sta>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "sta";
-	String expectedReplacedSource = "sta";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:sta>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0345(){
-	String str =
-		"#\n" +
-		"pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0346(){
-	String str =
-		"#\n" +
-		"final pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0347(){
-	String str =
-		"#\n" +
-		"public pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0348(){
-	String str =
-		"#\n" +
-		"private pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0349(){
-	String str =
-		"#\n" +
-		"public class X{}\n" +
-		"pub";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pub>;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0350(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0351(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  public pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0352(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  private pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0353(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  protected pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'public' keyword.
- */
-public void test0354(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  abstract pub\n" +
-		"}";
-
-	String completeBehind = "pub";
-	int cursorLocation = str.lastIndexOf("pub") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pub>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pub";
-	String expectedReplacedSource = "pub";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pub>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0355(){
-	String str =
-		"#\n" +
-		"pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0356(){
-	String str =
-		"#\n" +
-		"final pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pro>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0357(){
-	String str =
-		"#\n" +
-		"public pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pro>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0358(){
-	String str =
-		"#\n" +
-		"private pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pro>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0359(){
-	String str =
-		"#\n" +
-		"public class X{}\n" +
-		"pro";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pro>;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0360(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0361(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  public pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0362(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  private pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0363(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  protected pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'protected' keyword.
- */
-public void test0364(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  abstract pro\n" +
-		"}";
-
-	String completeBehind = "pro";
-	int cursorLocation = str.lastIndexOf("pro") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pro>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pro";
-	String expectedReplacedSource = "pro";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pro>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0365(){
-	String str =
-		"#\n" +
-		"pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0366(){
-	String str =
-		"#\n" +
-		"final pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pri>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0367(){
-	String str =
-		"#\n" +
-		"public pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pri>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0368(){
-	String str =
-		"#\n" +
-		"private pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pri>;\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0369(){
-	String str =
-		"#\n" +
-		"public class X{}\n" +
-		"pri";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"import <CompleteOnKeyword:pri>;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0370(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0371(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  public pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0372(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  private pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0373(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  protected pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'private' keyword.
- */
-public void test0374(){
-	String str =
-		"#\n" +
-		"public class X{\n" +
-		"  abstract pri\n" +
-		"}";
-
-	String completeBehind = "pri";
-	int cursorLocation = str.lastIndexOf("pri") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<CompleteOnType:pri>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "pri";
-	String expectedReplacedSource = "pri";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  <CompleteOnType:pri>;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-}
-/*
- * Test for 'super' keyword.
- */
-public void test0375(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    sup\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "sup";
-	int cursorLocation = str.lastIndexOf("sup") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:sup>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "sup";
-	expectedReplacedSource = "sup";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:sup>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'this' keyword.
- */
-public void test0376(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    thi\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "thi";
-	int cursorLocation = str.lastIndexOf("thi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:thi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "thi";
-	expectedReplacedSource = "thi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:thi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'true' keyword.
- */
-public void test0377(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    tru\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "tru";
-	int cursorLocation = str.lastIndexOf("tru") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:tru>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "tru";
-	expectedReplacedSource = "tru";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:tru>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'false' keyword.
- */
-public void test0378(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    fal\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fal";
-	int cursorLocation = str.lastIndexOf("fal") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:fal>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fal";
-	expectedReplacedSource = "fal";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:fal>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'null' keyword.
- */
-public void test0379(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    nul\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "nul";
-	int cursorLocation = str.lastIndexOf("nul") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:nul>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "nul";
-	expectedReplacedSource = "nul";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:nul>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'instanceof' keyword.
- */
-public void test0380(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    if(zzz ins\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "ins";
-	int cursorLocation = str.lastIndexOf("ins") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:ins>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ins";
-	expectedReplacedSource = "ins";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:ins>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'instanceof' keyword.
- */
-public void test0381(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    ins\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "ins";
-	int cursorLocation = str.lastIndexOf("ins") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ins>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ins";
-	expectedReplacedSource = "ins";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:ins>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'instanceof' keyword.
- */
-public void test0382(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    if(zzz zzz ins\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "ins";
-	int cursorLocation = str.lastIndexOf("ins") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:ins>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "ins";
-	expectedReplacedSource = "ins";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    zzz zzz;\n" +
-		"    <CompleteOnName:ins>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'while' keyword.
- */
-public void test0384(){
-	String str =
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    #\n" +
-		"    do{\n" +
-		"    } whi\n" +
-		"  }\n" +
-		"}";
-
-	String completeBehind = "whi";
-	int cursorLocation = str.lastIndexOf("whi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnKeyword:whi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "whi";
-	expectedReplacedSource = "whi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnKeyword:whi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'catch' keyword.
- */
-public void test0385(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    try {\n" +
-		"    } catch(E e) {\n" +
-		"    } cat\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "cat";
-	int cursorLocation = str.lastIndexOf("cat") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:cat>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "cat";
-	expectedReplacedSource = "cat";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:cat>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'finally' keyword.
- */
-public void test0386(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    try {" +
-		"    } catch(E e) {" +
-		"    } fin" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:fin>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fin";
-	expectedReplacedSource = "fin";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:fin>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'finally' keyword.
- */
-public void test0387(){
-	String str =
-		"package p;\n" +
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    try {" +
-		"    } finally {" +
-		"    } fin" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "fin";
-	int cursorLocation = str.lastIndexOf("fin") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:fin>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "fin";
-	expectedReplacedSource = "fin";
-	expectedUnitDisplayString =
-		"package p;\n" +
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:fin>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-/*
- * Test for 'this' keyword.
- */
-public void test0388(){
-	String str =
-		"public class X {\n" +
-		"  void foo(){\n" +
-		"    #\n" +
-		"    X.thi\n" +
-		"  }\n" +
-		"}\n";
-
-	String completeBehind = "thi";
-	int cursorLocation = str.lastIndexOf("thi") + completeBehind.length() - 1;
-
-	String expectedCompletionNodeToString = "<NONE>";
-	String expectedParentNodeToString = "<NONE>";
-	String completionIdentifier = "<NONE>";
-	String expectedReplacedSource = "<NONE>";
-	String expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"  }\n" +
-		"}\n";
-
-	checkDietParse(
-		str.toCharArray(),
-		cursorLocation,
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"diet ast");
-	
-	expectedCompletionNodeToString = "<CompleteOnName:X.thi>";
-	expectedParentNodeToString = "<NONE>";
-	completionIdentifier = "thi";
-	expectedReplacedSource = "X.thi";
-	expectedUnitDisplayString =
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    <CompleteOnName:X.thi>;\n" +
-		"  }\n" +
-		"}\n";
-	
-	checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedParentNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		"full ast");
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionRecoveryTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionRecoveryTest.java
deleted file mode 100644
index b0ce013..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionRecoveryTest.java
+++ /dev/null
@@ -1,1031 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-public class CompletionRecoveryTest extends AbstractCompletionTest {
-public CompletionRecoveryTest(String testName){
-	super(testName);
-}
-static {
-//	TESTS_NUMBERS = new int[] { 22 };	
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(CompletionRecoveryTest.class);
-}
-/*
- * Complete on variable behind ill-formed declaration
- */
-public void test01() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends IOException {		\n" +
-		"	int foo(){								\n" +
-		"		String str = ;						\n" +
-		"		str.								\n"; 
-
-	String completeBehind = "str.";
-	String expectedCompletionNodeToString = "<CompleteOnName:str.>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends IOException {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    String str;\n" + 
-		"    <CompleteOnName:str.>;\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "str.";
-	String testName = "<complete on variable behind ill-formed declaration>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on variable behind ill-formed declaration and nested block
- */
-public void test02() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends IOException {		\n" +
-		"	int foo(){								\n" +
-		"		String str = ;						\n" +
-		"		{									\n" +
-		"		 	int i;							\n" +
-		"			str.							\n"; 
-
-	String completeBehind = "str.";
-	String expectedCompletionNodeToString = "<CompleteOnName:str.>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends IOException {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    String str;\n" +
-		"    {\n" +
-		"      int i;\n" +		
-		"      <CompleteOnName:str.>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "str.";
-	String testName = "<complete on variable behind ill-formed declaration and nested block>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on variable behind ill-formed declaration and inside local type field initialization
- */
-public void test03() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends IOException {		\n" +
-		"	int foo(){								\n" +
-		"		final String str = ;				\n" +
-		"		class L {							\n" +
-		"		 	int i = str						\n";
-
-	String completeBehind = "i = str";
-	String expectedCompletionNodeToString = "<CompleteOnName:str>";
-	String completionIdentifier = "str";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends IOException {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    final String str;\n" + 
-		"    class L {\n" + 
-		"      int i = <CompleteOnName:str>;\n" + 
-		"      L() {\n" + 
-		"        super();\n" + // could be optimized out
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "str";
-	String testName = "<complete on variable behind ill-formed declaration and inside local type field initialization>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on variable behind closed scope
- */
-public void test04() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends 					\n" +
-		"	int foo(String str)						\n" +
-		"		String variable = ;					\n" +
-		"		{									\n" +
-		"		 	String variableNotInScope;		\n" +
-		"		}									\n" +
-		"		foo(varia							\n"; 
-
-	String completeBehind = "foo(var";
-	String expectedCompletionNodeToString = "<CompleteOnName:var>";
-	String completionIdentifier = "var";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo(String str) {\n" + 
-		"    String variable;\n" + 
-		"    foo(<CompleteOnName:var>);\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "varia";
-	String testName = "<complete on variable behind closed scope>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on variable str with sibling method stringAppend()
- */
-public void test05() {
-
-	String str = 
-		"import java.io.*;									\n"+
-		"													\n"+			
-		"public class X extends 							\n"+
-		"	int foo(String str)								\n"+
-		"		String str = ;								\n"+
-		"		{											\n"+
-		"		 	String strNotInScope;					\n"+
-		"		}											\n"+
-		"		class L {									\n"+
-		"			int bar(){								\n"+
-		"				foo(str								\n"+							
-		"			void stringAppend(String s1, String s2)	\n"; 
-
-	String completeBehind = "foo(str";
-	String expectedCompletionNodeToString = "<CompleteOnName:str>";
-	String completionIdentifier = "str";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo(String str) {\n" + 
-		"    String str;\n" + 
-		"    class L {\n" + 
-		"      L() {\n" + 
-		"      }\n" + 
-		"      int bar() {\n" + 
-		"        foo(<CompleteOnName:str>);\n" + 
-		"      }\n" + 
-		"      void stringAppend(String s1, String s2) {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "str";
-	String testName = "<complete on variable str with sibling method stringAppend()>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on variable str with sibling method stringAppend(), eliminating
- * uninteresting method bodies
- */
-public void test06() {
-
-	String str = 
-		"import java.io.*;									\n"+
-		"													\n"+			
-		"public class X extends 							\n"+
-		"	int foo(String str)								\n"+
-		"		String str = ;								\n"+
-		"		{											\n"+
-		"		 	String strNotInScope;					\n"+
-		"		}											\n"+
-		"		class L {									\n"+
-		"			int notInterestingBody(){				\n"+
-		"				System.out.println();				\n"+
-		"			}										\n"+
-		"			int bar(){								\n"+
-		"				foo(str								\n"+							
-		"			void stringAppend(String s1, String s2)	\n"; 
-
-	String completeBehind = "foo(str";
-	String expectedCompletionNodeToString = "<CompleteOnName:str>";
-	String completionIdentifier = "str";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo(String str) {\n" + 
-		"    String str;\n" + 
-		"    class L {\n" + 
-		"      L() {\n" + 
-		"      }\n" + 
-		"      int notInterestingBody() {\n" + 
-		"      }\n" + 
-		"      int bar() {\n" + 
-		"        foo(<CompleteOnName:str>);\n" + 
-		"      }\n" + 
-		"      void stringAppend(String s1, String s2) {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedReplacedSource = "str";
-	String testName = "<complete on variable eliminating other uninteresting method bodies>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on new keyword
- */
-public void test07(){ 
-
-	String str = 
-		"import java.io.*							\n" + 
-		"											\n" + 
-		"public class X extends IOException {		\n" +
-		"	int foo() {								\n" +
-		"		X x = new X(						\n" +
-		"}											\n"; 
-
-	String completeBehind = "= n";
-	String expectedCompletionNodeToString = "<CompleteOnName:n>";
-	String completionIdentifier = "n";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends IOException {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    X x = <CompleteOnName:n>;\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "new";
-	String testName = "<complete on new keyword>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkMethodParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on field type in anonymous type.
- */
-public void test08() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"package test;\n" + 
-		"import java.util.Vector;\n" + 
-		"public class VA {\n" + 
-		"	Object o1 = new Object() {\n" + 
-		"		V\n" + 
-		"		void foo2() {\n" + 
-		"			int i = 1;\n" + 
-		"		}\n" + 
-		"	};\n" + 
-		"	String s2;\n" + 
-		"	void bar() {\n" + 
-		"	}\n" + 
-		"	void foo() { \n" + 
-		"		new String[] {}..equals()\n" + 
-		"	}\n" + 
-		"}\n",
-		// completeBehind:
-		"		V",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:V>",
-		// expectedUnitDisplayString:
-		"package test;\n" + 
-		"import java.util.Vector;\n" + 
-		"public class VA {\n" + 
-		"  Object o1 = new Object() {\n" + 
-		"    <CompleteOnType:V>;\n" + 
-		"    void foo2() {\n" + 
-		"    }\n" + 
-		"  };\n" + 
-		"  String s2;\n" + 
-		"  public VA() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"V",
-		// expectedReplacedSource:
-		"V",
-		// test name
-		"<completion on field type in anonymous type>"
-	);
-}
-/*
- * Complete on argument name
- */
-public void test09() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"package pack;								\n"+
-		"class A  {									\n"+
-		"											\n"+
-		"	public static void main(String[] argv	\n"+
-		"			new Member().f					\n"+
-		"			;								\n"+
-		"	}										\n"+
-		"	class Member {							\n"+
-		"		int foo()							\n"+
-		"		}									\n"+
-		"	}										\n"+
-		"};											\n",
-		// completeBehind:
-		"argv",
-		// expectedCompletionNodeToString:
-		"<CompleteOnArgumentName:String[] argv>",
-		// expectedUnitDisplayString:
-		"package pack;\n" + 
-		"class A {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"  }\n" + 
-		"  public static void main(<CompleteOnArgumentName:String[] argv>) {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"argv",
-		// expectedReplacedSource:
-		"argv",
-		// test name
-		"<completion on argument name>"
-	);
-}
-/*
- * Complete on argument name
- */
-public void test10() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"package pack;								\n"+
-		"class A  {									\n"+
-		"											\n"+
-		"	public static void main(String[] argv	\n"+
-		"			new Member().f					\n"+
-		"			;								\n"+
-		"	}										\n"+
-		"	class Member {							\n"+
-		"		int foo()							\n"+
-		"		}									\n"+
-		"	}										\n"+
-		"};											\n",
-		// completeBehind:
-		"argv",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"package pack;\n" + 
-		"class A {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"  }\n" + 
-		"  public static void main(<CompleteOnArgumentName:String[] argv>) {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<completion on argument name>"
-	);
-}
-/*
- * Complete inside method with incomplete signature
- */
-public void test11() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"package pack;								\n"+
-		"class A  {									\n"+
-		"											\n"+
-		"	public static void main(String[] argv	\n"+
-		"			new Member().f					\n"+
-		"			;								\n"+
-		"	}										\n"+
-		"	class Member {							\n"+
-		"		int foo()							\n"+
-		"		}									\n"+
-		"	}										\n"+
-		"};											\n",
-		// completeBehind:
-		"new Member().f",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:new Member().f>",
-		// expectedUnitDisplayString:
-		"package pack;\n" + 
-		"class A {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"    <CompleteOnMemberAccess:new Member().f>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"f",
-		// expectedReplacedSource:
-		"f",
-		// test name
-		"<complete inside method with incomplete signature>"
-	);
-}
-/*
- * Complete on argument name with class decl later on
- */
-public void test12() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class DD  {									\n"+
-		"	public static void main(String[] argv		\n"+
-		"												\n"+
-		"class D {										\n"+
-		"												\n"+
-		"	int i;										\n"+
-		"	class Mem1 {}								\n"+
-		"	int dumb(String s)							\n"+
-		"	int dumb(float fNum, double dNum) {			\n"+
-		"		dumb(\"world\", i);						\n"+
-		"												\n"+
-		"		if (i == 0) {							\n"+
-		"			class Local {						\n"+
-		"												\n"+
-		"				int hello() 					\n",
-		// completeBehind:
-		"argv",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class DD {\n" + 
-		"  DD() {\n" + 
-		"  }\n" + 
-		"  public static void main(<CompleteOnArgumentName:String[] argv>) {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on argument name with class decl later on>"
-	);
-}
-/*
- * Complete behind array type
- */
-public void test13() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class C {						\n"+
-		"	void test() {				\n"+
-		"		String[].				\n"+
-		"	}							\n"+
-		"}								\n",
-		// completeBehind:
-		"String[].",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClassLiteralAccess:String[].>",
-		// expectedUnitDisplayString:
-		"class C {\n" + 
-		"  C() {\n" + 
-		"  }\n" + 
-		"  void test() {\n" + 
-		"    <CompleteOnClassLiteralAccess:String[].>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"String[].",
-		// test name
-		"<complete behind array type>"
-	);
-}
-/*
- * Complete inside array type
- */
-public void test14() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"public class B {			\n"+
-		"	class Member {}			\n"+
-		"							\n"+
-		"	int[] j;				\n",
-		// completeBehind:
-		"int[",
-		// expectedCompletionNodeToString:
-		NONE,
-		// expectedUnitDisplayString:
-		"public class B {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public B() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		NONE,
-		// test name
-		"<complete inside array type>"
-	);
-}
-/*
- * Complete inside array type
- */
-public void test15() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"public class B {			\n"+
-		"	class Member {}			\n"+
-		"							\n"+
-		"	int[					\n",
-		// completeBehind:
-		"int[",
-		// expectedCompletionNodeToString:
-		NONE,
-		// expectedUnitDisplayString:
-		"public class B {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public B() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		NONE,
-		// test name
-		"<complete inside array type>"
-	);
-}
-/*
- * Complete behind invalid array type
- */
-public void test16() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"public class B {			\n"+
-		"	class Member {}			\n"+
-		"							\n"+
-		"	int[					\n"+
-		"	Obje					\n",
-		// completeBehind:
-		"Obje",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:Obje>",
-		// expectedUnitDisplayString:
-		"public class B {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  <CompleteOnType:Obje>;\n" + 
-		"  public B() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"Obje",
-		// expectedReplacedSource:
-		"Obje",
-		// test name
-		"<complete behind invalid array type>"
-	);
-}
-/*
- * Complete behind invalid base type
- */
-public void test17() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class D {				\n" +
-		"	class Member {}		\n" +
-		"						\n" +
-		"	void test() {		\n" +
-		"		int.			\n" +
-		"		test();			\n" +
-		"	}					\n",
-		// completeBehind:
-		"int.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClassLiteralAccess:int.>",
-		// expectedUnitDisplayString:
-		"class D {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  D() {\n" + 
-		"  }\n" + 
-		"  void test() {\n" + 
-		"    <CompleteOnClassLiteralAccess:int.>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"int.",
-		// test name
-		"<complete behind invalid base type>"
-	);
-}
-/*
- * Complete behind incomplete local method header
- */
-public void test18() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class E {					\n"+
-		"	int bar() {				\n"+
-		"		class Local {		\n"+
-		"			int hello() {	\n",
-		// completeBehind:
-		"hello()",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class E {\n" + 
-		"  E() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"    class Local {\n" + 
-		"      Local() {\n" + 
-		"      }\n" + 
-		"      int hello() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete behind incomplete local method header>"
-	);
-}
-/*
- * Complete behind catch variable
- */
-public void test19() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Test {					\n" +
-		"	void foo() {						\n" +
-		"		try {							\n" +
-		"		} catch (Exception e) {			\n" +
-		"		}								\n" +
-		"		e								\n" +
-		"	}									\n" +
-		"}										\n",
-		// completeBehind:
-		"\n\t\te",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:e>",
-		// expectedUnitDisplayString:
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:e>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"e",
-		// expectedReplacedSource:
-		"e",
-		// test name
-		"<complete behind catch variable>"
-	);
-}
-/*
- * Complete on catch variable
- */
-public void test20() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Test {					\n" +
-		"	void foo() {						\n" +
-		"		try {							\n" +
-		"		} catch (Exception e) {			\n" +
-		"			e							\n" +
-		"		}								\n" +
-		"	}									\n" +
-		"}										\n",
-		// completeBehind:
-		"\n\t\t\te",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:e>",
-		// expectedUnitDisplayString:
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      Exception e;\n" + 
-		"      <CompleteOnName:e>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"e",
-		// expectedReplacedSource:
-		"e",
-		// test name
-		"<complete on catch variable>"
-	);
-}
-/*
- * Complete on catch variable after syntax error
- */
-public void test21() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Test {					\n" +
-		"	void foo() {						\n" +
-		"		try {							\n" +
-		"			bar						\n" +
-		"		} catch (Exception e) {			\n" +
-		"			e							\n" +
-		"		}								\n" +
-		"	}									\n" +
-		"}										\n",
-		// completeBehind:
-		"\n\t\t\te",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:e>",
-		// expectedUnitDisplayString:
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      Exception e;\n" + 
-		"      <CompleteOnName:e>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n"
-		,
-		// expectedCompletionIdentifier:
-		"e",
-		// expectedReplacedSource:
-		"e",
-		// test name
-		"<complete on catch variable after syntax error>"
-	);
-}
-/*
- * Complete on constructor type name
- * 1G1HF7P: ITPCOM:WIN98 - CodeAssist may not work in constructor signature
- */
-public void test22() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"public class SomeType {\n" +
-		"	public SomeType(int i){}\n" +
-		"}\n" +
-		"\n" +
-		"class SomeOtherType extends SomeType {\n" +
-		"	SomeOtherType(int i){\n" +
-		"		super(i);\n" +
-		"	}\n" +
-		"}\n",
-		// completeBehind:
-		"	SomeOther",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:SomeOther>",
-		// expectedUnitDisplayString:
-		"public class SomeType {\n" + 
-		"  public SomeType(int i) {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class SomeOtherType extends SomeType {\n" + 
-		"  <CompleteOnType:SomeOther>;\n" + 
-		"  int i;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  SomeOtherType() {\n" + 
-		"  }\n" + 
-		"}\n"
-		,
-		// expectedCompletionIdentifier:
-		"SomeOther",
-		// expectedReplacedSource:
-		"SomeOtherType",
-		// test name
-		"<complete on constructor type name>"
-	);
-}
-/**
- * Complete in initializer in recovery mode
- */
-public void test23() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){)\n" + 
-		"    {\n" + 
-		"      Obj\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// completeBehind:
-		"Obj",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:Obj>",
-		// expectedUnitDisplayString:
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      <CompleteOnName:Obj>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n"
-		,
-		// expectedCompletionIdentifier:
-		"Obj",
-		// expectedReplacedSource:
-		"Obj",
-		// test name
-		"<complete in initializer>"
-	);
-}
-/**
- * Complete after initializer in recovery mode
- */
-public void test24() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){)\n" + 
-		"    int v1;\n" + 
-		"    {\n" + 
-		"      int v2\n" + 
-		"    }\n" + 
-		"    Obj" + 
-		"  }\n" + 
-		"}\n",
-		// completeBehind:
-		"Obj",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:Obj>",
-		// expectedUnitDisplayString:
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int v1;\n" + 
-		"    <CompleteOnName:Obj>;\n" + 
-		"  }\n" + 
-		"}\n"
-		,
-		// expectedCompletionIdentifier:
-		"Obj",
-		// expectedReplacedSource:
-		"Obj",
-		// test name
-		"<complete after initializer>"
-	);
-}
-/**
- * Complete after dot, before a number .<|>12
- */
-public void test25() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"package p;\n" +  
-		"public class X {\n" +
-		"  void foo(){\n" + 
-		"      this.12\n" + 
-		"  }\n" + 
-		"}\n",
-		// completeBehind:
-		"this.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:this.>",
-		// expectedUnitDisplayString:
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:this.>;\n" + 
-		"  }\n" + 
-		"}\n"
-		,
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"this.",
-		// test name
-		"<complete after dot number>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ComplianceDiagnoseTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ComplianceDiagnoseTest.java
deleted file mode 100644
index c384268..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ComplianceDiagnoseTest.java
+++ /dev/null
@@ -1,2375 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractRegressionTest;
-
-public class ComplianceDiagnoseTest extends AbstractRegressionTest {
-	public ComplianceDiagnoseTest(String name) {
-		super(name);
-	}
-// Static initializer to specify tests subset using TESTS_* static variables
-// All specified tests which does not belong to the class are skipped...
-//static {
-//	TESTS_NAMES = new String[] { "test000" };
-//	TESTS_NUMBERS = new int[] { 50 };
-//	TESTS_RANGE = new int[] { 21, 50 };
-//}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-public static Class testClass() {
-	return ComplianceDiagnoseTest.class;
-}
-public void runComplianceParserTest(
-	String[] testFiles,
-	String expected13ProblemLog,
-	String expected14ProblemLog,
-	String expected15ProblemLog){
-	if(COMPLIANCE_1_3.equals(this.complianceLevel)) {
-		this.runNegativeTest(testFiles, expected13ProblemLog);
-	} else if(COMPLIANCE_1_4.equals(this.complianceLevel)) {
-		this.runNegativeTest(testFiles, expected14ProblemLog);
-	} else if(this.complianceLevel.compareTo(COMPLIANCE_1_5) >= 0) {
-		this.runNegativeTest(testFiles, expected15ProblemLog);
-	}
-}
-public void test0001() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"import static aaa.BBB.*;\n" +
-		"public class X {\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.BBB.*;\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, static imports are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.BBB.*;\n" + 
-		"	              ^^^\n" + 
-		"The import aaa cannot be resolved\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.BBB.*;\n" + 
-		"	              ^^^\n" + 
-		"The import aaa cannot be resolved\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0002() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"import static aaa.BBB.CCC;\n" +
-		"public class X {\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.BBB.CCC;\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, static imports are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.BBB.CCC;\n" + 
-		"	              ^^^\n" + 
-		"The import aaa cannot be resolved\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.BBB.CCC;\n" + 
-		"	              ^^^\n" + 
-		"The import aaa cannot be resolved\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0003() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public enum X {\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public enum X {\n" + 
-		"	       ^^^^\n" + 
-		"Syntax error on token \"enum\", interface expected\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0004() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(){\n" +
-		"		for(String o: c) {\n" +
-		"		}\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for(String o: c) {\n" + 
-		"	    ^^^^^^^^^^^\n" + 
-		"Syntax error, \'for each\' statements are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	for(String o: c) {\n" + 
-		"	              ^\n" + 
-		"c cannot be resolved\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for(String o: c) {\n" + 
-		"	              ^\n" + 
-		"c cannot be resolved\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0005() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(Z ... arg){\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(Z ... arg){\n" + 
-		"	         ^^^^^^^^^\n" + 
-		"Syntax error, varargs are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(Z ... arg){\n" + 
-		"	         ^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(Z ... arg){\n" + 
-		"	         ^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0006() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X <T1 extends String, T2> extends Y {\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2> extends Y {\n" + 
-		"	                ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2> extends Y {\n" + 
-		"	                                               ^\n" + 
-		"Y cannot be resolved to a type\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2> extends Y {\n" + 
-		"	                           ^^^^^^\n" + 
-		"The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2> extends Y {\n" + 
-		"	                                               ^\n" + 
-		"Y cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0007() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public interface X <T1 extends String, T2> extends Y {\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public interface X <T1 extends String, T2> extends Y {\n" + 
-		"	                    ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public interface X <T1 extends String, T2> extends Y {\n" + 
-		"	                                                   ^\n" + 
-		"Y cannot be resolved to a type\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 1)\n" + 
-		"	public interface X <T1 extends String, T2> extends Y {\n" + 
-		"	                               ^^^^^^\n" + 
-		"The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public interface X <T1 extends String, T2> extends Y {\n" + 
-		"	                                                   ^\n" + 
-		"Y cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0008() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	public <T1 extends String, T2> int foo(){\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> int foo(){\n" + 
-		"	        ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> int foo(){\n" + 
-		"	                   ^^^^^^\n" + 
-		"The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> int foo(){\n" + 
-		"	                                   ^^^^^\n" + 
-		"This method must return a result of type int\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0009() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	public <T1 extends String, T2> X(){\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> X(){\n" + 
-		"	        ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> X(){\n" + 
-		"	                   ^^^^^^\n" + 
-		"The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0010() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	Z<Y1, Y2> var;\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	  ^^^^^^\n" + 
-		"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	  ^^\n" + 
-		"Y1 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	      ^^\n" + 
-		"Y2 cannot be resolved to a type\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	  ^^\n" + 
-		"Y1 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	      ^^\n" + 
-		"Y2 cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0011() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	public X(){\n" +
-		"		<Y1, Y2>this(null);\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	<Y1, Y2>this(null);\n" + 
-		"	 ^^^^^^\n" + 
-		"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	<Y1, Y2>this(null);\n" + 
-		"	 ^^\n" + 
-		"Y1 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 3)\n" + 
-		"	<Y1, Y2>this(null);\n" + 
-		"	     ^^\n" + 
-		"Y2 cannot be resolved to a type\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	<Y1, Y2>this(null);\n" + 
-		"	 ^^\n" + 
-		"Y1 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	<Y1, Y2>this(null);\n" + 
-		"	     ^^\n" + 
-		"Y2 cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0012() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    assert true;\n" +
-		"  }\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. WARNING in X.java (at line 3)\n" + 
-		"	assert true;\n" + 
-		"	^^^^^^\n" + 
-		"\'assert\' should not be used as an identifier, since it is a reserved keyword from source level 1.4 on\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	assert true;\n" + 
-		"	^^^^^^\n" + 
-		"Syntax error on token \"assert\", AssignmentOperator expected after this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		"";
-	
-	String expected15ProblemLog = 
-		expected14ProblemLog;
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0013() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"import static aaa.*\n" +
-		"public class X {\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*\n" + 
-		"	^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, static imports are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*\n" + 
-		"	              ^^^\n" + 
-		"The import aaa cannot be resolved\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*\n" + 
-		"	                  ^\n" + 
-		"Syntax error on token \"*\", ; expected after this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*\n" + 
-		"	              ^^^\n" + 
-		"The import aaa cannot be resolved\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*\n" + 
-		"	                  ^\n" + 
-		"Syntax error on token \"*\", ; expected after this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0014() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public enum X \n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public enum X \n" + 
-		"}\n" + 
-		"	       ^^^^^^^^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public enum X \n" + 
-		"	            ^\n" + 
-		"Syntax error on token \"X\", { expected after this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0015() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(){\n" +
-		"		for(String o: c) {\n" +
-		"			#\n" +
-		"		}\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for(String o: c) {\n" + 
-		"	    ^^^^^^^^^^^\n" + 
-		"Syntax error, \'for each\' statements are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 4)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0016() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(Z ... arg){\n" +
-		"	}\n" +
-		"	#\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(Z ... arg){\n" + 
-		"	         ^^^^^^^^^\n" + 
-		"Syntax error, varargs are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(Z ... arg){\n" + 
-		"	         ^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(Z ... arg){\n" + 
-		"	         ^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 4)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0017() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X <T1 extends String, T2> extends Y {\n" +
-		"	#\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2> extends Y {\n" + 
-		"	                ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2> extends Y {\n" + 
-		"	                                               ^\n" + 
-		"Y cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2> extends Y {\n" + 
-		"	                           ^^^^^^\n" + 
-		"The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2> extends Y {\n" + 
-		"	                                               ^\n" + 
-		"Y cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0018() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	public <T1 extends String, T2> int foo(){\n" +
-		"	}\n" +
-		"	#\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> int foo(){\n" + 
-		"	        ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 4)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> int foo(){\n" + 
-		"	                   ^^^^^^\n" + 
-		"The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 4)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0019() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	Z<Y1, Y2> var;\n" +
-		"	#\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	  ^^^^^^\n" + 
-		"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	  ^^\n" + 
-		"Y1 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	      ^^\n" + 
-		"Y2 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"5. ERROR in X.java (at line 3)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	  ^^\n" + 
-		"Y1 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	Z<Y1, Y2> var;\n" + 
-		"	      ^^\n" + 
-		"Y2 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 3)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0020() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    assert true;\n" +
-		"    #\n" +
-		"  }\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. WARNING in X.java (at line 3)\n" + 
-		"	assert true;\n" + 
-		"	^^^^^^\n" + 
-		"\'assert\' should not be used as an identifier, since it is a reserved keyword from source level 1.4 on\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	assert true;\n" + 
-		"	^^^^^^\n" + 
-		"Syntax error on token \"assert\", AssignmentOperator expected after this token\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	#\n" + 
-		"	^\n" + 
-		"Syntax error on token \"Invalid Character\", delete this token\n" + 
-		"----------\n";
-	
-	String expected15ProblemLog = 
-		expected14ProblemLog;
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-//TODO (david) suspicious behavior
-public void test0021() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"import staic aaa.*;\n" +
-		"public class X {\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import staic aaa.*;\n" + 
-		"	       ^^^^^\n" + 
-		"The import staic cannot be resolved\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	import staic aaa.*;\n" + 
-		"	             ^^^\n" + 
-		"Syntax error on token \"aaa\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import staic aaa.*;\n" + 
-		"	       ^^^^^\n" + 
-		"Syntax error on token \"staic\", static expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	import staic aaa.*;\n" + 
-		"	       ^^^^^\n" + 
-		"The import staic cannot be resolved\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-//TODO (david) suspicious behavior
-public void test0022() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"import static aaa.*.*;\n" +
-		"public class X {\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*.*;\n" + 
-		"	^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, static imports are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*.*;\n" + 
-		"	              ^^^\n" + 
-		"The import aaa cannot be resolved\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*.*;\n" + 
-		"	                   ^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*.*;\n" + 
-		"	              ^^^\n" + 
-		"The import aaa cannot be resolved\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	import static aaa.*.*;\n" + 
-		"	                  ^\n" + 
-		"Syntax error on token \"*\", Identifier expected\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0023() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"import static for;\n" +
-		"public class X {\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static for;\n" + 
-		"	       ^^^^^^^^^^\n" + 
-		"Syntax error on tokens, Name expected instead\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static for;\n" + 
-		"	              ^^^\n" + 
-		"Syntax error on token \"for\", Identifier expected\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-
-//TODO (david) reenable once bug is fixed
-public void _test0024() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"import static {aaa};\n" +
-		"public class X {\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static {aaa};\n" + 
-		"	       ^^^^^^^^^^^^\n" + 
-		"Syntax error on tokens, Name expected instead\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	import static {aaa};\n" + 
-		"	              ^^^^^\n" + 
-		"Syntax error on tokens, Name expected instead\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0025() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"static aaa.*;\n" +
-		"public class X {\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	static aaa.*;\n" + 
-		"	^^^^^^\n" + 
-		"Syntax error on token \"static\", import expected\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	static aaa.*;\n" + 
-		"	^^^^^^\n" + 
-		"Syntax error on token \"static\", import expected before this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0026() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(){\n" +
-		"		for(Object o ? c){\n" +
-		"		}\n" +
-		"	}\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for(Object o ? c){\n" + 
-		"	    ^^^^^^\n" + 
-		"Syntax error on token \"Object\", ( expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	for(Object o ? c){\n" + 
-		"	           ^^^\n" + 
-		"Syntax error on token(s), misplaced construct(s)\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 3)\n" + 
-		"	for(Object o ? c){\n" + 
-		"	                ^\n" + 
-		"Syntax error, insert \"AssignmentOperator Expression\" to complete Assignment\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 3)\n" + 
-		"	for(Object o ? c){\n" + 
-		"	                ^\n" + 
-		"Syntax error, insert \"; ; ) Statement\" to complete BlockStatements\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for(Object o ? c){\n" + 
-		"	             ^\n" + 
-		"Syntax error on token \"?\", : expected\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0027() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(){\n" +
-		"		for(Object o : switch){\n" +
-		"		}\n" +
-		"	}\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for(Object o : switch){\n" + 
-		"	           ^\n" + 
-		"Syntax error, insert \"; ; ) Statement\" to complete BlockStatements\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for(Object o : switch){\n" + 
-		"	               ^^^^^^\n" + 
-		"Syntax error on token \"switch\", invalid Expression\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0028() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(int ... ){\n" +
-		"	}\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int ... ){\n" + 
-		"	             ^^^\n" + 
-		"Syntax error on token \"...\", invalid VariableDeclaratorId\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int ... ){\n" + 
-		"	             ^^^\n" + 
-		"Syntax error on token \"...\", VariableDeclaratorId expected after this token\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0029() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(int ... for){\n" +
-		"	}\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int ... for){\n" + 
-		"	             ^^^^^^^\n" + 
-		"Syntax error on tokens, VariableDeclaratorId expected instead\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int ... for){\n" + 
-		"	                 ^^^\n" + 
-		"Syntax error on token \"for\", invalid VariableDeclaratorId\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0030() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(int .. aaa){\n" +
-		"	}\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int .. aaa){\n" + 
-		"	             ^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int .. aaa){\n" + 
-		"	             ^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0031() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(int ... aaa bbb){\n" +
-		"	}\n" +
-		"}\n" +
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int ... aaa bbb){\n" + 
-		"	         ^^^^^^^^^^^\n" + 
-		"Syntax error, varargs are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int ... aaa bbb){\n" + 
-		"	             ^^^^^^^\n" + 
-		"Syntax error on token(s), misplaced construct(s)\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(int ... aaa bbb){\n" + 
-		"	                     ^^^\n" + 
-		"Syntax error on token \"bbb\", delete this token\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0032() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X <T1 extends String, T2 extends Y {\n" +
-		"	\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2 extends Y {\n" + 
-		"	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error on token(s), misplaced construct(s)\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2 extends Y {\n" + 
-		"	                           ^^^^^^\n" + 
-		"The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2 extends Y {\n" + 
-		"	                                              ^\n" + 
-		"Syntax error, insert \">\" to complete ReferenceType1\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends String, T2 extends Y {\n" + 
-		"	                                              ^\n" + 
-		"Y cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0033() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X T1 extends String, T2> extends Y {\n" +
-		"	\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X T1 extends String, T2> extends Y {\n" + 
-		"	               ^^\n" + 
-		"Syntax error on token \"T1\", delete this token\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public class X T1 extends String, T2> extends Y {\n" + 
-		"	                          ^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X T1 extends String, T2> extends Y {\n" + 
-		"	             ^\n" + 
-		"Syntax error on token \"X\", < expected after this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0034() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X <T1 extnds String, T2> extends Y {\n" +
-		"	\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extnds String, T2> extends Y {\n" + 
-		"	               ^\n" + 
-		"Syntax error on token \"<\", { expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extnds String, T2> extends Y {\n" + 
-		"	                ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error on tokens, InterfaceHeaderName expected instead\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extnds String, T2> extends Y {\n" + 
-		"	                   ^^^^^^\n" + 
-		"extnds cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extnds String, T2> extends Y {\n" + 
-		"	                          ^^^^^^\n" + 
-		"Syntax error on token \"String\", delete this token\n" + 
-		"----------\n" + 
-		"5. ERROR in X.java (at line 3)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extnds String, T2> extends Y {\n" + 
-		"	                   ^^^^^^\n" + 
-		"Syntax error on token \"extnds\", extends expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extnds String, T2> extends Y {\n" + 
-		"	                   ^^^^^^\n" + 
-		"extnds cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0035() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X <T1 extends for, T2> extends Y {\n" +
-		"	\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends for, T2> extends Y {\n" + 
-		"	               ^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X <T1 extends for, T2> extends Y {\n" + 
-		"	                           ^^^\n" + 
-		"Syntax error on token \"for\", invalid ReferenceType\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0036() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	public <T1 extends String, T2> foo(){\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> foo(){\n" + 
-		"	        ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> foo(){\n" + 
-		"	                               ^^^^^\n" + 
-		"Return type for the method is missing\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> foo(){\n" + 
-		"	                   ^^^^^^\n" + 
-		"The type parameter T1 should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String, T2> foo(){\n" + 
-		"	                               ^^^^^\n" + 
-		"Return type for the method is missing\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0037() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	public <T1 extnds String, T2> int foo(){\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extnds String, T2> int foo(){\n" + 
-		"	       ^^^\n" + 
-		"Syntax error on token(s), misplaced construct(s)\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extnds String, T2> int foo(){\n" + 
-		"	        ^^\n" + 
-		"T1 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extnds String, T2> int foo(){\n" + 
-		"	                            ^\n" + 
-		"Syntax error on token \">\", ; expected\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extnds String, T2> int foo(){\n" + 
-		"	        ^^\n" + 
-		"T1 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extnds String, T2> int foo(){\n" + 
-		"	           ^^^^^^\n" + 
-		"Syntax error on token \"extnds\", extends expected\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0038() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	public <T1 extends String T2> int foo(){\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String T2> int foo(){\n" + 
-		"	       ^^^^^^^^^^^\n" + 
-		"Syntax error on token(s), misplaced construct(s)\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String T2> int foo(){\n" + 
-		"	                            ^\n" + 
-		"Syntax error on token \">\", ; expected\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T1 extends String T2> int foo(){\n" + 
-		"	                          ^^\n" + 
-		"Syntax error on token \"T2\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0039() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	Z Y1, Y2> var;\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z Y1, Y2> var;\n" + 
-		"	^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	Z Y1, Y2> var;\n" + 
-		"	        ^\n" + 
-		"Syntax error on token \">\", , expected\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z Y1, Y2> var;\n" + 
-		"	^\n" + 
-		"Z cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	Z Y1, Y2> var;\n" + 
-		"	        ^\n" + 
-		"Syntax error on token \">\", , expected\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0040() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	Z <Y1, Y2 var;\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z <Y1, Y2 var;\n" + 
-		"	  ^^^^^^^\n" + 
-		"Syntax error on token(s), misplaced construct(s)\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	Z <Y1, Y2 var;\n" + 
-		"	       ^^\n" + 
-		"Y2 cannot be resolved to a type\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z <Y1, Y2 var;\n" + 
-		"	       ^^\n" + 
-		"Syntax error, insert \">\" to complete ReferenceType1\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	Z <Y1, Y2 var;\n" + 
-		"	       ^^\n" + 
-		"Y2 cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0041() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	Z <Y1, for Y2> var;\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z <Y1, for Y2> var;\n" + 
-		"	  ^^^^^^^^^^^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Z <Y1, for Y2> var;\n" + 
-		"	       ^^^\n" + 
-		"Syntax error on token \"for\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0042() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"void ___eval() {\n" +
-		"	new Runnable() {\n" +
-		"		int ___run() throws Throwable {\n" +
-		"			return blah;\n" +
-		"		}\n" +
-		"		private String blarg;\n" +
-		"		public void run() {\n" +
-		"		}\n" +
-		"	};\n" +
-		"}\n" +
-		"public class X {\n" +
-		"	private static int x;\n" +
-		"	private String blah;\n" +
-		"	public static void main(String[] args) {\n" +
-		"	}\n" +
-		"	public void hello() {\n" +
-		"	}\n" +
-		"	public boolean blah() {\n" +
-		"		return false;\n" +
-		"	}\n" +
-		"	public void foo() {\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	public void run() {\n" + 
-		"		}\n" + 
-		"	};\n" + 
-		"}\n" + 
-		"	       ^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	void ___eval() {\n" + 
-		"	^^^^\n" + 
-		"Syntax error on token \"void\", @ expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 1)\n" + 
-		"	void ___eval() {\n" + 
-		"	             ^\n" + 
-		"Syntax error on token \")\", delete this token\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 9)\n" + 
-		"	};\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", { expected\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"5. ERROR in X.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"}\" to complete MemberValueArrayInitializer\n" + 
-		"----------\n" + 
-		"6. ERROR in X.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \")\" to complete Modifiers\n" + 
-		"----------\n" + 
-		"7. ERROR in X.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"enum Identifier\" to complete EnumHeader\n" + 
-		"----------\n" + 
-		"8. ERROR in X.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"EnumBody\" to complete JavaScriptUnit\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=72942
- */
-public void test0043() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"}\n" + 
-		"public static void foo(){}\n" + 
-		"\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	public static void foo(){}\n" + 
-		"	                         ^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		expected13ProblemLog;
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=62472
- */
-public void test0044() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"	public <T> X(T t){\n" + 
-		"		System.out.println(t);\n" + 
-		"	}\n" + 
-		"	}\n" + 
-		"	public static void main(String[] args) {\n" + 
-		"		class Local extends X {\n" + 
-		"			Local() {\n" + 
-		"				<String>super(\"SUCCESS\");\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"		new Local();\n" + 
-		"	}\n" + 
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public <T> X(T t){\n" + 
-		"	        ^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	public <T> X(T t){\n" + 
-		"	             ^\n" + 
-		"T cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 5)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 9)\n" + 
-		"	<String>super(\"SUCCESS\");\n" + 
-		"	 ^^^^^^\n" + 
-		"Syntax error, type parameters are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"5. ERROR in X.java (at line 9)\n" + 
-		"	<String>super(\"SUCCESS\");\n" + 
-		"	 ^^^^^^\n" + 
-		"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"6. ERROR in X.java (at line 9)\n" + 
-		"	<String>super(\"SUCCESS\");\n" + 
-		"	        ^^^^^^^^^^^^^^^^^\n" + 
-		"The constructor X(String) is undefined\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=62472
- */
-public void test0045() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"	public void foo(){\n" + 
-		"	}\n" + 
-		"	}\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", delete this token\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		expected13ProblemLog;
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74519
- */
-public void test0046() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public @interface X {\n" + 
-		"	String annName();\n" + 
-		"}"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public @interface X {\n" + 
-		"	                  ^\n" + 
-		"Syntax error, annotation declarations are only available if source level is 5.0\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = "";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74519
- */
-public void test0047() {
-	String[] testFiles = new String[] {
-		"A.java",
-		"public @interface A {}",
-		"X.java",
-		"@A public class X {\n" + 
-		"}"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in A.java (at line 1)\n" + 
-		"	public @interface A {}\n" + 
-		"	                  ^\n" + 
-		"Syntax error, annotation declarations are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	@A public class X {\n" + 
-		"	^^\n" + 
-		"Syntax error, annotations are only available if source level is 5.0\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = "";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0048() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(X ... arg[]){\n" +
-		"	}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(X ... arg[]){\n" + 
-		"	         ^^^^^^^^^\n" + 
-		"Syntax error, varargs are only available if source level is 5.0\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(X ... arg[]){\n" + 
-		"	               ^^^\n" + 
-		"Extended dimensions are illegal for a variable argument\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0049() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"@interface MyAnn {\n" + 
-		"	String value1() default \"\";\n" + 
-		"	String value2();\n" + 
-		"}\n" + 
-		"class ZZZ {}		\n" + 			
-		"public @MyAnn(\"\",\"\") class Test {		\n" + 													
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	@interface MyAnn {\n" + 
-		"	           ^^^^^\n" + 
-		"Syntax error, annotation declarations are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	public @MyAnn(\"\",\"\") class Test {		\n" + 
-		"	              ^^\n" + 
-		"Syntax error, insert \")\" to complete Modifier\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	public @MyAnn(\"\",\"\") class Test {		\n" + 
-		"	                ^\n" + 
-		"Syntax error on token \",\", / expected\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0050() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(List<String>... args) {}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(List<String>... args) {}\n" + 
-		"	         ^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, varargs are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(List<String>... args) {}\n" + 
-		"	         ^^^^\n" + 
-		"List cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	void foo(List<String>... args) {}\n" + 
-		"	              ^^^^^^\n" + 
-		"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(List<String>... args) {}\n" + 
-		"	         ^^^^\n" + 
-		"List cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-public void test0051() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo(java.util.List2<String>... args) {}\n" +
-		"}\n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(java.util.List2<String>... args) {}\n" + 
-		"	         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error, varargs are only available if source level is 5.0\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 2)\n" + 
-		"	void foo(java.util.List2<String>... args) {}\n" + 
-		"	         ^^^^^^^^^^^^^^^\n" + 
-		"java.util.List2 cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 2)\n" + 
-		"	void foo(java.util.List2<String>... args) {}\n" + 
-		"	                         ^^^^^^\n" + 
-		"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	void foo(java.util.List2<String>... args) {}\n" + 
-		"	         ^^^^^^^^^^^^^^^\n" + 
-		"java.util.List2 cannot be resolved to a type\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=154811
-public void test0052() {
-	String[] testFiles = new String[] {
-		"X.java",
-		"public class X {\n" +
-		"	void foo1() {\n" +
-		"		class Y  {\n" +
-		"		}\n" +
-		"		void foo2() {\n" +
-		"		}\n" +
-		"		class Z<T> { \n" +
-		"		}\n" +
-		"	}\n" +
-		"} \n"
-	};
-	
-	String expected13ProblemLog =
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	void foo2() {\n" + 
-		"	^^^^\n" + 
-		"Syntax error on token \"void\", new expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 7)\n" + 
-		"	class Z<T> { \n" + 
-		"	^^^^^\n" + 
-		"Syntax error on token \"class\", invalid AssignmentOperator\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 7)\n" + 
-		"	class Z<T> { \n" + 
-		"	         ^\n" + 
-		"Syntax error on token \">\", ; expected\n" + 
-		"----------\n";
-	String expected14ProblemLog =
-		expected13ProblemLog;
-	
-	String expected15ProblemLog = 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	void foo2() {\n" + 
-		"	^^^^\n" + 
-		"Syntax error on token \"void\", new expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \";\" to complete Statement\n" + 
-		"----------\n";
-	
-	runComplianceParserTest(
-		testFiles,
-		expected13ProblemLog,
-		expected14ProblemLog,
-		expected15ProblemLog
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DietCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DietCompletionTest.java
deleted file mode 100644
index ed93f7f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DietCompletionTest.java
+++ /dev/null
@@ -1,2033 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.codeassist.complete.InvalidCursorLocation;
-
-public class DietCompletionTest extends AbstractCompletionTest {
-public DietCompletionTest(String testName){
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(DietCompletionTest.class);
-}
-/*
- * Complete on superclass
- */
-public void test01() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends IOException {		\n" + 
-		"}											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnClass:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:IOEx> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOException";
-	String testName = "<complete on superclass>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on superinterface
- */
-public void test02() {
-
-	String str = 
-		"import java.io.*;													\n" + 
-		"																	\n" + 
-		"public class X extends IOException implements Serializable {		\n" +
-		" int foo(){} \n" +
-		"}																	\n"; 
-
-	String completeBehind = "Seria";
-	String expectedCompletionNodeToString = "<CompleteOnInterface:Seria>";
-	String completionIdentifier = "Seria";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends IOException implements <CompleteOnInterface:Seria> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "Serializable";		
-	String testName = "<complete on superinterface>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on qualified superclass
- */
-public void test03() {
-
-	String str = 
-		"import java.io.*;													\n" + 
-		"																	\n" + 
-		"public class X extends java.io.IOException  {						\n" + 
-		"}																	\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnClass:java.io.IOEx>";
-	String completionIdentifier = "IOEx";	
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:java.io.IOEx> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.IOException";		
-	String testName = "<complete on qualified superclass>";
-
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-	
-}
-/*
- * Complete on qualified superinterface
- */
-public void test04() {
-
-	String str = 
-		"import java.io.*;															\n" + 
-		"																			\n" + 	
-		"public class X extends IOException implements java.io.Serializable {		\n" + 
-		"}																			\n"; 
-
-	String completeBehind = "Seria";
-	String expectedCompletionNodeToString = "<CompleteOnInterface:java.io.Seria>";
-	String completionIdentifier = "Seria";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X extends IOException implements <CompleteOnInterface:java.io.Seria> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.Serializable";		
-	String testName = "<complete on qualified superinterface>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on incomplete superclass
- */
-public void test05() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends IOEx {				\n" + 
-		"}											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnClass:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:IOEx> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete on incomplete superclass>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on incomplete superinterface
- */
-public void test06() {
-
-	String str = 
-		"import java.io.*;													\n" + 
-		"																	\n" + 
-		"public class X extends IOException implements Seria {				\n" + 
-		"}																	\n"; 
-
-	String completeBehind = "Seria";
-	String expectedCompletionNodeToString = "<CompleteOnInterface:Seria>";
-	String completionIdentifier = "Seria";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends IOException implements <CompleteOnInterface:Seria> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "Seria";		
-	String testName = "<complete on incomplete superinterface>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on incomplete qualified superclass
- */
-public void test07() {
-
-	String str = 
-		"import java.io.*;													\n" + 
-		"																	\n" + 
-		"public class X extends java.io.IOEx  		{						\n" + 
-		"}																	\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnClass:java.io.IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = "import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:java.io.IOEx> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		String expectedReplacedSource = "java.io.IOEx";
-	String testName = "<complete on incomplete qualified superclass>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on incomplete qualified superinterface
- */
-public void test08() {
-
-	String str = 
-		"import java.io.*;															\n" + 
-		"																			\n" + 	
-		"public class X extends IOException implements java.io.Seria {				\n" + 
-		"}																			\n"; 
-
-	String completeBehind = "Seria";
-	String expectedCompletionNodeToString = "<CompleteOnInterface:java.io.Seria>";
-	String completionIdentifier = "Seria";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X extends IOException implements <CompleteOnInterface:java.io.Seria> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.Seria";		
-	String testName = "<complete on incomplete qualified superinterface>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete inside qualified superclass
- */
-public void test09() {
-
-	String str = 
-		"																	\n" + 
-		"public class X extends java.io.IOException  		{				\n" + 
-		"}																	\n"; 
-
-	String completeBehind = ".io";
-	String expectedCompletionNodeToString = "<CompleteOnClass:java.io>";
-	String completionIdentifier = "io";
-	String expectedUnitDisplayString = 
-		"public class X extends <CompleteOnClass:java.io> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.IOException";
-	String testName = "<complete inside qualified superclass>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete inside qualified superinterface
- */
-public void test10() {
-
-	String str = 
-		"public class X extends IOException implements java.io.Serializable {		\n" + 
-		"}																			\n"; 
-
-	String completeBehind = ".io";
-	String expectedCompletionNodeToString = "<CompleteOnInterface:java.io>";
-	String completionIdentifier = "io";
-	String expectedUnitDisplayString =
-		"public class X extends IOException implements <CompleteOnInterface:java.io> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.Serializable";		
-	String testName = "<complete inside qualified superinterface>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete inside qualified superclass ending with dot
- */
-public void test11() {
-
-	String str = 
-		"																	\n" + 
-		"public class X extends java.io.	{								\n" + 
-		"}																	\n"; 
-
-	String completeBehind = ".io.";
-	String expectedCompletionNodeToString = "<CompleteOnClass:java.io.>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"public class X extends <CompleteOnClass:java.io.> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.";		
-	String testName = "<complete inside qualified superclass ending with dot>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete inside qualified superinterface ending with dot
- */
-public void test12() {
-
-	String str = 
-		"public class X extends IOException implements java.io.				 {		\n" + 
-		"}																			\n"; 
-
-	String completeBehind = ".io.";
-	String expectedCompletionNodeToString = "<CompleteOnInterface:java.io.>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString =
-		"public class X extends IOException implements <CompleteOnInterface:java.io.> {\n" + 
-		"  public X() {\n" + 
-
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.";		
-	String testName = "<complete inside qualified superinterface ending with dot>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on empty superclass
- */
-public void test13() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends  {					\n" + 
-		"}											\n"; 
-
-	String completeBehind = "extends ";
-	String expectedCompletionNodeToString = "<CompleteOnClass:>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "";		
-	String testName = "<complete on empty superclass>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on empty superinterface
- */
-public void test14() {
-
-	String str = 
-		"import java.io.*;													\n" + 
-		"																	\n" + 
-		"public class X extends IOException implements  {					\n" + 
-		"}																	\n"; 
-
-	String completeBehind = "implements ";
-	String expectedCompletionNodeToString = "<CompleteOnInterface:>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X extends IOException implements <CompleteOnInterface:> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "";		
-	String testName = "<complete on empty superinterface>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on empty superclass followed by identifier
- */
-public void test15() {
-
-	String str = 
-		"public class X extends java.io. IOException  {			\n" + 
-		"}														\n"; 
-
-	String completeBehind = "java.io.";
-	String expectedCompletionNodeToString = "<CompleteOnClass:java.io.>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"public class X extends <CompleteOnClass:java.io.> {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.";		
-	String testName = "<complete on empty superclass followed by identifier>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on keyword extends
- */
-public void test16() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends  {					\n" + 
-		"}											\n"; 
-
-	String completeBehind = "extends";
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:extends>";
-	String completionIdentifier = "extends";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnKeyword:extends> {\n" + 
-		"  {\n" +
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "extends";		
-	String testName = "<complete on keyword extends>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in keyword extends
- */
-public void test17() {
-
-	String str = 
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X ext  {						\n" + 
-		"}											\n"; 
-
-	String completeBehind = "ext";
-	String expectedCompletionNodeToString = "<CompleteOnKeyword:ext>";
-	String completionIdentifier = "ext";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnKeyword:ext> {\n" + 
-		"  {\n" +
-		"  }\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "ext";		
-	String testName = "<complete in keyword extends>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in field type
- */
-public void test18() {
-
-	String str =
-		"class X {									\n" + 
-		"											\n" + 
-		"	IOException x;							\n" + 
-		"}											\n"; 
-
-	String completeBehind = "IO";
-	String expectedCompletionNodeToString = "<CompleteOnType:IO>;";
-	String completionIdentifier = "IO";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:IO>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOException";		
-	String testName = "<complete in field type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete at beginning of field type
- */
-public void test19() {
-
-	String str =
-		"class X {									\n" + 
-		"											\n" + 
-		"	final IOException x;					\n" + 
-		"}											\n"; 
-
-	String completeBehind = "final ";
-	String expectedCompletionNodeToString = "<CompleteOnType:>;";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOException";		
-	String testName = "<complete at beginning of field type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete at beginning of superclass
- */
-public void test20() {
-
-	String str =
-		"class X extends IOException {				\n" + 
-		"											\n" + 
-		"}											\n"; 
-
-	String completeBehind = "extends ";
-	String expectedCompletionNodeToString = "<CompleteOnClass:>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"class X extends <CompleteOnClass:> {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOException";		
-	String testName = "<complete at beginning of superclass>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in return type
- */
-public void test21() {
-
-	String str =
-		"class X {									\n" + 
-		"	IOEx									\n" + 
-		"}											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnType:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:IOEx>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in return type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in argument type
- */
-public void test22() {
-
-	String str =
-		"class X {									\n" + 
-		"	int foo(IOEx							\n" + 
-		"}											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnType:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:IOEx>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in argument type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in return type
- */
-public void test23() {
-
-	String str =
-		"class X {									\n" + 
-		"	IOEx									\n" + 
-		"											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnType:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:IOEx>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in return type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in argument type (no closing brace for type)
- */
-public void test24() {
-
-	String str =
-		"class X {									\n" + 
-		"	int foo(IOEx							\n" + 
-		"											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnType:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:IOEx>;\n" + 
-		"  X() {\n" + 
-
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in argument type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in return type with modifiers
- */
-public void test25() {
-
-	String str =
-		"class X {									\n" + 
-		"	public final IOEx						\n" + 
-		"											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnType:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:IOEx>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in return type with modifiers>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in field initialization
- */
-public void test26() {
-
-	String str =
-		"class X {									\n" + 
-		"	public final int x = IOEx				\n" + 
-		"											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnName:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  public final int x = <CompleteOnName:IOEx>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in field initialization>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in nth argument type
- */
-public void test27() {
-
-	String str =
-		"class X {									\n" + 
-		"	int foo(AA a, BB b, IOEx				\n" + 
-		"											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnType:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:IOEx>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  int foo(AA a, BB b) {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in nth argument type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in nth argument qualified type
- */
-public void test28() {
-
-	String str =
-		"class X {									\n" + 
-		"	int foo(AA a, BB b, java.io.IOEx		\n" + 
-		"											\n"; 
-
-	String completeBehind = ".io.";
-	String expectedCompletionNodeToString = "<CompleteOnType:java.io.>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  <CompleteOnType:java.io.>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  int foo(AA a, BB b) {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.IOEx";		
-	String testName = "<complete in nth argument qualified type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in nth thrown exception qualified type
- */
-public void test29() {
-
-	String str =
-		"class X {												\n" + 
-		"	public int foo(AA a, BB b) throws AA, java.io.IOEx	\n" +
-		"														\n"; 
-
-	String completeBehind = ".io";
-	String expectedCompletionNodeToString = "<CompleteOnException:java.io>";
-	String completionIdentifier = "io";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  public int foo(AA a, BB b) throws AA, <CompleteOnException:java.io> {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.IOEx";		
-	String testName = "<complete in nth thrown exception qualified type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in completed argument 
- */
-public void test30() {
-
-	String str =
-		"class X {												\n" + 
-		"	public int foo(AA a, java.io.BB b) 					\n" +
-		"														\n"; 
-
-	String completeBehind = "io.";
-	String expectedCompletionNodeToString = "<CompleteOnType:java.io.>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  public int foo(AA a, <CompleteOnType:java.io.> b) {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.io.BB";
-	String testName = "<complete in in completed argument>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Negative test: no diet completion in allocation expression 
- */
-public void test31() {
-
-	String str =
-		"class Bar {								\n"+
-		"	void foo() {							\n"+
-		"		new X().zzz();						\n"+
-		"	}										\n"+
-		"}\n";
-
-	String completeBehind = "new X";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = NONE;
-	String expectedUnitDisplayString = 
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = null;		
-	String testName = "<no diet completion in allocation expression>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Completion in package statement
- */
-public void test32() {
-
-	String str =
-		"package x.abc				\n"+
-		"import x.util.*;				\n"+
-		"import x.*;					\n"+
-		"class X extends util{	\n"+
-		"    X(){}				\n"+
-		"    X(int a, int b){}	\n"+
-		"}								\n";
-
-	String completeBehind = "x.ab";
-	String expectedCompletionNodeToString = "<CompleteOnPackage:x.ab>";
-	String completionIdentifier = "ab";
-	String expectedUnitDisplayString = 
-		"package <CompleteOnPackage:x.ab>;\n" + 
-		"import x.util.*;\n" + 
-		"import x.*;\n" + 
-		"class X extends util {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  X(int a, int b) {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "x.abc";		
-	String testName = "<complete in package statement>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Completion in import statement
- */
-public void test33() {
-
-	String str =
-		"package x.abc;				\n"+
-		"import x.util				\n"+
-		"import x.*;					\n"+
-		"class X extends util{	\n"+
-		"    X(){}				\n"+
-		"    X(int a, int b){}	\n"+
-		"}								\n";
-
-	String completeBehind = "x.util";
-	String expectedCompletionNodeToString = "<CompleteOnImport:x.util>";
-	String completionIdentifier = "util";
-	String expectedUnitDisplayString = 
-		"package x.abc;\n" + 
-		"import <CompleteOnImport:x.util>;\n" + 
-		"import x.*;\n" + 
-		"class X extends util {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  X(int a, int b) {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "x.util";		
-	String testName = "<complete in import statement>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on superclass behind a unicode
- *
- * -- compute the unicode representation for a given string --
-   [ String str = "IOEx";
-	StringBuffer buffer = new StringBuffer("\"");
-	for (int i = 0; i < str.length(); i++){
-		String hex = Integer.toHexString(str.charAt(i));
-		buffer.append("\\u0000".substring(0, 6-hex.length()));
-		buffer.append(hex);
-	}
-	buffer.append("\"");
-	buffer.toString()
-	]
- */
-public void test34() {
-
-	String str = 
-		"import java.io.*;									\n" + 
-		"													\n" + 
-		"public class X extends IOE\\u0078ception {			\n" + 
-		"}													\n"; 
-
-	String completeBehind = "IOE\\u0078";
-	String expectedCompletionNodeToString = "<CompleteOnClass:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:IOEx> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOE\\u0078ception";
-	String testName = "<complete on superclass behind a unicode>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void test34a() {
-
-	String str = 
-		"import java.io.*;									\n" + 
-		"													\n" + 
-		"public class X extends IOException {			\n" + 
-		"}													\n"; 
-
-	String completeBehind = "IOE";
-	String expectedCompletionNodeToString = "<CompleteOnClass:IOE>";
-	String completionIdentifier = "IOE";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:IOE> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOException";
-	String testName = "<complete on superclass before a unicode>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void test34b() {
-
-	String str = 
-		"import java.io.*;									\n" + 
-		"													\n" + 
-		"public class X extends IOE\\u0078c\\u0065ption {			\n" + 
-		"}													\n"; 
-
-	String completeBehind = "IOE\\u0078c\\u0065p";
-	String expectedCompletionNodeToString = "<CompleteOnClass:IOExcep>";
-	String completionIdentifier = "IOExcep";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:IOExcep> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOE\\u0078c\\u0065ption";
-	String testName = "<complete on superclass behind a unicode>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-public void test34c() {
-
-	String str = 
-		"import java.io.*;									\n" + 
-		"													\n" + 
-		"public class X \\u0065xt\\u0065nds IOE\\u0078c\\u0065ption {			\n" + 
-		"}													\n"; 
-
-	String completeBehind = "IOE\\u0078c\\u0065p";
-	String expectedCompletionNodeToString = "<CompleteOnClass:IOExcep>";
-	String completionIdentifier = "IOExcep";
-	String expectedUnitDisplayString =
-		"import java.io.*;\n" + 
-		"public class X extends <CompleteOnClass:IOExcep> {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOE\\u0078c\\u0065ption";
-	String testName = "<complete on superclass behind a unicode>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Invalid completion inside a unicode
- *
- * -- compute the unicode representation for a given string --
-   [ String str = "IOEx";
-	StringBuffer buffer = new StringBuffer("\"");
-	for (int i = 0; i < str.length(); i++){
-		String hex = Integer.toHexString(str.charAt(i));
-		buffer.append("\\u0000".substring(0, 6-hex.length()));
-		buffer.append(hex);
-	}
-	buffer.append("\"");
-	buffer.toString()
-	]
- */
-public void test35() {
-
-	String str = 
-		"import java.io.*;									\n" + 
-		"													\n" + 
-		"public class X extends IOE\\u0078ception {			\n" + 
-		"}													\n"; 
-
-	String completeBehind = "IOE\\u00";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = NONE;
-	String expectedUnitDisplayString = "";
-	String expectedReplacedSource = NONE;
-	String testName = "<complete inside unicode>";
-
-	try {
-		int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-		this.checkDietParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName);
-		assertTrue("failed to detect invalid cursor location", false);
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_UNICODE);
-	}
-}
-/*
- * Invalid completion inside a comment
- *
- */
-public void test36() {
-
-	String str = 
-		"import java.io.*;									\n" + 
-		"													\n" + 
-		"public class X extends /*IOException*/ {			\n" + 
-		"}													\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = NONE;
-	String expectedUnitDisplayString = "";
-	String expectedReplacedSource = NONE;
-	String testName = "<complete inside comment>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	try {
-		this.checkDietParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName);
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_COMMENT);
-	}
-}
-/*
- * Invalid completion inside a string literal
- *
- */
-public void test37() {
-
-	String str = 
-		"import java.io.*;									\n" + 
-		"													\n" + 
-		"public class X {									\n" +
-		"	String s = \"IOException\";						\n" +
-		"}													\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompletionOnString:\"IOEx\">";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X {\n" + 
-		"  String s = <CompletionOnString:\"IOEx\">;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "\"IOException\"";
-	String testName = "<complete inside a string literal>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-/*
- * Invalid completion inside a number literal
- *
- */
-public void test38() {
-
-	String str = 
-		"import java.io.*;									\n" + 
-		"													\n" + 
-		"public class X {									\n" +
-		"	int s = 12345678;								\n" +
-		"}													\n"; 
-
-	String completeBehind = "1234";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = NONE;
-	String expectedUnitDisplayString = "";
-	String expectedReplacedSource = NONE;
-	String testName = "<complete inside a number literal>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	try{
-		this.checkDietParse(
-			str.toCharArray(), 
-			cursorLocation, 
-			expectedCompletionNodeToString,
-			expectedUnitDisplayString,
-			completionIdentifier,
-			expectedReplacedSource,
-			testName);
-		assertTrue("failed to detect invalid cursor location", false);		
-	} catch(InvalidCursorLocation e){
-		assertEquals("invalid cursor location: ", e.irritant, InvalidCursorLocation.NO_COMPLETION_INSIDE_NUMBER);
-	}	
-}
-/*
- * Completion in import statement at the end of the unit
- */
-public void test39() {
-
-	String str =
-		"package x.abc;				\n"+
-		"import x.util";
-
-	String completeBehind = "x.util";
-	String expectedCompletionNodeToString = "<CompleteOnImport:x.util>";
-	String completionIdentifier = "util";
-	String expectedUnitDisplayString = 
-		"package x.abc;\n" + 
-		"import <CompleteOnImport:x.util>;\n";
-	String expectedReplacedSource = "x.util";		
-	String testName = "<complete in import statement at the end of the unit>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Completion in import statement at the end of the unit (qualified empty name)
- */
-public void test40() {
-
-	String str =
-		"package a.b;			\n"+
-		"import java.";
-
-	String completeBehind = "java.";
-	String expectedCompletionNodeToString = "<CompleteOnImport:java.>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"package a.b;\n" + 
-		"import <CompleteOnImport:java.>;\n";
-	String expectedReplacedSource = "java.";		
-	String testName = "<complete in import statement at the end of the unit>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Should not find any diet completion
- */
-public void test41() {
-
-	String str =
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X extends 					\n" +
-		"	int foo(String str)						\n" +
-		"		String variable = ;					\n" +
-		"		{									\n" +
-		"		 	String variableNotInScope;		\n" +
-		"		}									\n" +
-		"		foo(varia							\n";
-
-	String completeBehind = "foo(var";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "var";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo(String str) {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "varia";		
-	String testName = "<should not find diet completion>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on array type with prefix dimensions
- */
-public void test42() {
-
-	String str =
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X {		 					\n" +
-		"	int[] foo(String str)					\n";
-
-	String completeBehind = "int";
-	String expectedCompletionNodeToString = "<CompleteOnType:int>";
-	String completionIdentifier = "int";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <CompleteOnType:int>\n" + 
-		"}\n";
-	String expectedReplacedSource = "int";		
-	String testName = "<completion on array type with prefix dimensions>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on array type with postfix dimensions
- */
-public void test43() {
-
-	String str =
-		"import java.io.*;							\n" + 
-		"											\n" + 
-		"public class X {		 					\n" +
-		"	int foo(String str)	[]					\n";
-
-	String completeBehind = "int";
-	String expectedCompletionNodeToString = "<CompleteOnType:int>";
-	String completionIdentifier = "int";
-	String expectedUnitDisplayString = 
-		"import java.io.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <CompleteOnType:int>\n" + 
-		"}\n";
-	String expectedReplacedSource = "int";		
-	String testName = "<completion on array type with postfix dimensions>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in return type behind other member
- */
-public void test44() {
-
-	String str =
-		"class X {									\n" +
-		"	int i;									\n" +
-		"	IOEx									\n" + 
-		"}											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnType:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" +
-		"  int i;\n" +
-		"  <CompleteOnType:IOEx>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in return type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in return type behind other member
- */
-public void test45() {
-
-	String str =
-		"class X {									\n" +
-		"	int i;									\n" +
-		"	public IOEx								\n" + 
-		"}											\n"; 
-
-	String completeBehind = "IOEx";
-	String expectedCompletionNodeToString = "<CompleteOnType:IOEx>";
-	String completionIdentifier = "IOEx";
-	String expectedUnitDisplayString = 
-		"class X {\n" +
-		"  int i;\n" +
-		"  <CompleteOnType:IOEx>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "IOEx";		
-	String testName = "<complete in return type>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on name in field initializer
- */
-public void test46() {
-
-	String str =
-		"class X {									\n" +
-		"	String s = \"hello\";					\n" +
-		"	int f = s.								\n" +
-		"}											\n"; 
-
-	String completeBehind = "= s";
-	String expectedCompletionNodeToString = "<CompleteOnName:s>";
-	String completionIdentifier = "s";
-	String expectedUnitDisplayString = 
-		"class X {\n" +
-		"  String s;\n" +
-		"  int f = <CompleteOnName:s>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "s";		
-	String testName = "<complete on name in field initializer>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete in field initializer in innner class 
- */
-public void test47() {
-
-	String str =
-		"class X {									\n" +
-		"	class Y {								\n" +
-		"		Object[] f = { this.foo }			\n" +
-		"		Object foo(){ return this; }		\n" +
-		"}											\n"; 
-
-	String completeBehind = "this.foo";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:this.foo>";
-	String completionIdentifier = "foo";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  class Y {\n" + 
-		"    Object[] f = {<CompleteOnMemberAccess:this.foo>};\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    Object foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "this.foo";		
-	String testName = "<complete in field initializer in inner class>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Should not find fake field of type <CompleteOnType:f>
- */
-public void test48() {
-
-	String str =
-		"package pack;								\n"+
-		"class A  {									\n"+
-		"											\n"+
-		"	public static void main(String[] argv)	\n"+
-		"			new Member().f					\n"+
-		"			;								\n"+
-		"	}										\n"+
-		"	class Member {							\n"+
-		"		int foo()							\n"+
-		"		}									\n"+
-		"	}										\n"+
-		"};											\n";
-
-	String completeBehind = "new Member().f";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "f";
-	String expectedUnitDisplayString = 
-		"package pack;\n" + 
-		"class A {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedReplacedSource = "f";		
-	String testName = "<should not find fake field of type f>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Completion in middle of package import statement
- */
-public void test49() {
-
-	String str =
-		"import java.lang.reflect.*;	\n"+
-		"class X {						\n"+
-		"}								\n";
-
-	String completeBehind = "java.la";
-	String expectedCompletionNodeToString = "<CompleteOnImport:java.la>";
-	String completionIdentifier = "la";
-	String expectedUnitDisplayString = 
-		"import <CompleteOnImport:java.la>;\n" + 
-		"class X {\n" + 
-		"  X() {\n" +
-		"  }\n" +
-		"}\n";
-	String expectedReplacedSource = "java.lang.reflect";		
-	String testName = "<complete in middle of package import statement>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on instance creation in field initializer.
- */
-public void test50() {
-
-	String str =
-		"class X {									\n" +
-		"	String s = \"hello\";					\n" +
-		"	Object o = new Xyz();					\n" +
-		"}											\n"; 
-
-	String completeBehind = "new X";
-	String expectedCompletionNodeToString = "<CompleteOnType:X>";
-	String completionIdentifier = "X";
-	String expectedUnitDisplayString = 
-		"class X {\n" +
-		"  String s;\n" +
-		"  Object o = new <CompleteOnType:X>();\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "Xyz";		
-	String testName = "<complete on instance creation in field initializer>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on member access in field initializer.
- */
-public void test51() {
-
-	String str =
-		"class X {									\n" +
-		"	String s = \"hello\";					\n" +
-		"	Object o = fred().xyz;					\n" +
-		"}											\n"; 
-
-	String completeBehind = "fred().x";
-	String expectedCompletionNodeToString = "<CompleteOnMemberAccess:fred().x>";
-	String completionIdentifier = "x";
-	String expectedUnitDisplayString = 
-		"class X {\n" +
-		"  String s;\n" +
-		"  Object o = <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "xyz";		
-	String testName = "<complete on member access in field initializer>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on class literal access in field initializer.
- */
-public void test52() {
-
-	String str =
-		"class X {									\n" +
-		"	String s = \"hello\";					\n" +
-		"	Class c = int[].class;					\n" +
-		"}											\n"; 
-
-	String completeBehind = "int[].c";
-	String expectedCompletionNodeToString = "<CompleteOnClassLiteralAccess:int[].c>";
-	String completionIdentifier = "c";
-	String expectedUnitDisplayString = 
-		"class X {\n" +
-		"  String s;\n" +
-		"  Class c = <CompleteOnClassLiteralAccess:int[].c>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "int[].class";		
-	String testName = "<complete on class literal access in field initializer>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on method invocation in field initializer.
- */
-public void test53() {
-
-	String str =
-		"class X {									\n" +
-		"	String s = \"hello\";					\n" +
-		"	Object o = s.concat();					\n" +
-		"}											\n"; 
-
-	String completeBehind = "s.concat(";
-	String expectedCompletionNodeToString = "<CompleteOnMessageSend:s.concat()>";
-	String completionIdentifier = "";
-	String expectedUnitDisplayString = 
-		"class X {\n" +
-		"  String s;\n" +
-		"  Object o = <CompleteOnMessageSend:s.concat()>;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "concat(";		
-	String testName = "<complete on method invocation in field initializer>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Should not find fake field of type <CompleteOnType:f>
- */
-public void test54() {
-
-	String str =
-		"package pack;								\n"+
-		"class A  {									\n"+
-		"											\n"+
-		"	public static void main(String[] argv	\n"+
-		"			new Member().f					\n"+
-		"			;								\n"+
-		"	}										\n"+
-		"	class Member {							\n"+
-		"		int foo()							\n"+
-		"		}									\n"+
-		"	}										\n"+
-		"};											\n";
-
-	String completeBehind = "new Member().f";
-	String expectedCompletionNodeToString = NONE;
-	String completionIdentifier = "f";
-	String expectedUnitDisplayString = 
-		"package pack;\n" + 
-		"class A {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedReplacedSource = "f";		
-	String testName = "<should not find fake field of type f>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Complete on anonymous type in field initializer.
- */
-public void test55() {
-
-	String str =
-		"class X {									\n" +
-		"	Object o = new Object(){				\n" +
-		"		void foo(){							\n" +
-		"			String x = \"\";				\n" +
-		"			x.index							\n" +
-		"		}									\n" +
-		"											\n" +
-		"		void bar(){							\n" +
-		"			String y = \"\";				\n" +
-		"		}									\n" +
-		"	};					 					\n" +
-		"}											\n"; 
-
-	String completeBehind = "x.index";
-	String expectedCompletionNodeToString = "<CompleteOnName:x.index>";
-	String completionIdentifier = "index";
-	String expectedUnitDisplayString = 
-		"class X {\n" + 
-		"  Object o = new Object() {\n" + 
-		"    void foo() {\n" + 
-		"      String x;\n" + 
-		"      <CompleteOnName:x.index>;\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"  };\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedReplacedSource = "x.index";		
-	String testName = "<complete on anonymous type in field initializer>";
-
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
-	this.checkDietParse(
-		str.toCharArray(), 
-		cursorLocation, 
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DietRecoveryTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DietRecoveryTest.java
deleted file mode 100644
index 344e6f0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DietRecoveryTest.java
+++ /dev/null
@@ -1,7680 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.codeassist.complete.CompletionParser;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.SourceElementParser;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-
-public class DietRecoveryTest extends AbstractCompilerTest {
-	public static boolean optimizeStringLiterals = false;
-	public static long sourceLevel = ClassFileConstants.JDK1_3; //$NON-NLS-1$
-static {
-//	TESTS_NUMBERS = new int[] { 113 };	
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(DietRecoveryTest.class);
-}
-	
-public DietRecoveryTest(String testName){
-	super(testName);
-}
-
-public void checkParse(
-	char[] source, 
-	String expectedDietUnitToString,
-	String expectedDietPlusBodyUnitToString,	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString,
-	String expectedFullUnitToString, 
-	String expectedCompletionDietUnitToString, String testName) {
-
-	/* using regular parser in DIET mode */
-	{
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedDietUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit diet structure" + testName,
-			expectedDietUnitToString,
-			computedUnitToString);
-	}
-	/* using regular parser in DIET mode + getMethodBodies */
-	{
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-		parser.setMethodsFullRecovery(false);
-		parser.setStatementsRecovery(false);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedDietUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit diet structure" + testName,
-			expectedDietUnitToString,
-			computedUnitToString);
-		if (computedUnit.types != null) {
-			for (int i = computedUnit.types.length; --i >= 0;){
-				computedUnit.types[i].parseMethod(parser, computedUnit);
-			}
-		}
-		computedUnitToString = computedUnit.toString();
-		if (!expectedDietPlusBodyUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		
-		assertEquals(
-			"Invalid unit diet+body structure" + testName,
-			expectedDietPlusBodyUnitToString,
-			computedUnitToString);
-	}
-	/* using regular parser in DIET mode + getMethodBodies + statements recovery */
-	{
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-		parser.setMethodsFullRecovery(true);
-		parser.setStatementsRecovery(true);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedDietUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit diet structure" + testName,
-			expectedDietUnitToString,
-			computedUnitToString);
-		if (computedUnit.types != null) {
-			for (int i = computedUnit.types.length; --i >= 0;){
-				computedUnit.types[i].parseMethod(parser, computedUnit);
-			}
-		}
-		computedUnitToString = computedUnit.toString();
-		if (!expectedDietPlusBodyPlusStatementsRecoveryUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		
-		assertEquals(
-			"Invalid unit diet+body structure with statements recovery" + testName,
-			expectedDietPlusBodyPlusStatementsRecoveryUnitToString,
-			computedUnitToString);
-	}
-	/* using regular parser in FULL mode */
-	{
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.parse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedFullUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit full structure" + testName,
-			expectedFullUnitToString,
-			computedUnitToString);
-
-	}
-	/* using source element parser in DIET mode */
-	{
-		SourceElementParser parser =
-			new SourceElementParser(
-				new TestSourceElementRequestor(),
-				new DefaultProblemFactory(Locale.getDefault()),
-				new CompilerOptions(getCompilerOptions()),
-				false/*don't record local declarations*/,
-				true/*optimize string literals*/);
-			
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedDietUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid source element diet structure" + testName,
-			expectedDietUnitToString,
-			computedUnitToString);
-	}
-	/* using source element parser in FULL mode */
-	{
-		SourceElementParser parser =
-			new SourceElementParser(
-				new TestSourceElementRequestor(),
-				new DefaultProblemFactory(Locale.getDefault()),
-				new CompilerOptions(getCompilerOptions()),
-				false/*don't record local declarations*/,
-				true/*optimize string literals*/);
-			
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.parse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedFullUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid source element full structure" + testName,
-			expectedFullUnitToString,
-			computedUnitToString);
-	}	
-	/* using completion parser in DIET mode */
-	{
-		CompilerOptions options = new CompilerOptions(getCompilerOptions());
-		CompletionParser parser =
-			new CompletionParser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					options, 
-					new DefaultProblemFactory(Locale.getDefault())));
-			
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult, Integer.MAX_VALUE);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedCompletionDietUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid completion diet structure" + testName,
-			expectedCompletionDietUnitToString,
-			computedUnitToString);
-	}
-}
-/*
- * Should treat variables 'h' and 'i' as fields since 'public'.
- */
-public void test01() {
-
-	String s = 
-		"package a;											\n"
-			+ "import java.lang.*;							\n"
-			+ "import java.util.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ "												\n"
-			+ "	public int h;								\n"
-			+ "	public int[] i = { 0, 1 };					\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ "	void truc(){								\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" +
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" +
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<promote local vars into fields>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should filter out local type altogether
- */
-public void test02() {
-
-	String s = 
-		"package a;											\n"
-			+ "import java.lang.*;							\n"
-			+ "import java.util.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ "												\n"
-			+ "		class L {								\n"
-			+ "			void baz(){}						\n"
-			+ "		}										\n"
-			+ "												\n"
-			+ "	public int h;								\n"
-			+ "	public int[] i = { 0, 1 };					\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ "	void truc(){								\n"
-			+ "}											\n"; 
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"    super();\n" +
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";	
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"    super();\n" +
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class L {\n" + 
-		"      L() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void baz() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";	
-
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<filter out local type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should still be finding last method (#baz)
- */
-
-public void test03() {
-
-	String s = 
-		"package a;											\n"
-			+ "import java.lang.*;							\n"
-			+ "import java.util.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ "												\n"
-			+ "	public int h;								\n"
-			+ "	public int[] i = { 0, 1 };					\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ "	void baz(){								\n"
-			+ "	}											\n"
-			+ "}											\n"; 
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"    super();\n" +
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" +
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";	
-
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<should find last method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedDietPlusBodyUnitToString,
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should finding 5 fields.
- */
-
-public void test04() {
-
-	String s = 
-		"package a;											\n"
-			+ "import java.lang.*;							\n"
-			+ "import java.util.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ " X x;										\n"
-			+ " Object a, b = null;							\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ "												\n"
-			+ "	public int h;								\n"
-			+ "	public int[] i = { 0, 1 };					\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ "	void truc(){								\n"
-			+ "}											\n"; 
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  X x;\n" + 
-		"  Object a;\n" + 
-		"  Object b = null;\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  X x;\n" + 
-		"  Object a;\n" + 
-		"  Object b = null;\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" +
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  X x;\n" + 
-		"  Object a;\n" + 
-		"  Object b;\n" + 
-		"  public int h;\n" + 
-		"  public int[] i;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<five fields>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedDietPlusBodyUnitToString,
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Diet parse thinks it is successful - no recovery
- */
-
-public void test05() {
-	
-	String s = 
-		"public class X {									\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " 	void baz(){}							\n"
-			+ " }											\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ " }											\n"
-			+ "	void truc(){								\n"
-			+ " }											\n"
-			+ "}											\n"; 
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new baz() {\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedFullUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<diet was successful>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Recovery will not restart from scratch, and miss some signatures (#baz())
- */
-
-public void test06() {
-	
-	String s = 
-			"import java.lang.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " 	void baz(){}							\n"
-			+ " }											\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ " }											\n"
-			+ "	void truc(){								\n"
-			+ "}											\n"; 
-
-	String expectedDietUnitToString = 
-		"import java.lang.*;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"import java.lang.*;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" +
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<will not miss nested method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Attaching orphan methods and fields 
- */
-
-public void test07() {
-	
-	String s = 
-			"public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " }											\n"
-			+ "}											\n"
-			+ "	void bar(){									\n"
-			+ " }											\n"
-			+ " int x;										\n"
-			+ "	void baz(){									\n"
-			+ " }											\n"
-			+ " int y;										\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  int x;\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  int x;\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedFullUnitToString = expectedDietUnitToString;
-		
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<attaching orphans>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Properly attaching fields/methods to member type
- */
-
-public void test08() {
-
-	String s = 
-			"public class X {								\n"
-			+ " class Y {									\n"
-			+ "	  void foo() {								\n"
-			+ "	   System.out.println();					\n"
-			+ "   }											\n"
-			+ " public int h;								\n"
-			+ " public int[] i = {0, 1};					\n"
-			+ "	void bar(){									\n"
-			+ "	void baz(){									\n"
-			+ " }											\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    public int h;\n" + 
-		"    public int[] i = {0, 1};\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"    void baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString =
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    public int h;\n" + 
-		"    public int[] i = {0, 1};\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"      System.out.println();\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"    void baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString =
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    public int h;\n" + 
-		"    public int[] i;\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"    void baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<attaching to member type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Properly attaching fields/methods to enclosing type
- */
-
-public void test09() {
-
-	String s = 
-			"public class X {								\n"
-			+ " class Y {									\n"
-			+ "	  void foo() {								\n"
-			+ "	   System.out.println();					\n"
-			+ "   }											\n"
-			+ " }											\n"
-			+ " public int h;								\n"
-			+ " public int[] i = {0, 1};					\n"
-			+ "	void bar(){									\n"
-			+ "	void baz(){									\n"
-			+ " }											\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"      System.out.println();\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-		
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public int h;\n" + 
-		"  public int[] i;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<attaching to enclosing type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Properly attaching fields/methods to member type in presence of missing
- * member type opening brace (Y) (and array initializer for (i)).
- */
-
-public void test10() {
-
-	String s = 
-			"public class X {								\n"
-			+ " class Y 									\n"
-			+ "	  void foo() {								\n"
-			+ "	   System.out.println();					\n"
-			+ "   }											\n"
-			+ " public int h;								\n"
-			+ " public int[] i = {0, 1};					\n"
-			+ "	void bar(){									\n"
-			+ "	void baz(){									\n"
-			+ " }											\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    public int h;\n" + 
-		"    public int[] i = {0, 1};\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"    void baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString =
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    public int h;\n" + 
-		"    public int[] i = {0, 1};\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"      System.out.println();\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"    void baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    public int h;\n" + 
-		"    public int[] i;\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"    void baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<missing brace + array initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Attaching orphan methods and fields, by counting brackets
- * variable 'x' should be eliminated (looks like a local variable) 
- */
-
-public void test11() {
-	
-	String s = 
-			"public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " }											\n"
-			+ "}											\n"
-			+ "	void bar(){									\n"
-			+ "  int x;										\n"
-			+ "	void baz(){									\n"
-			+ " }											\n"
-			+ " int y;										\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString =
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"    int x;\n" +
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-			
-	String expectedFullUnitToString = expectedDietUnitToString;
-		
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<attaching orphans with missing brackets>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Attaching orphan methods and fields, by counting brackets
- * variable 'x' should NOT be eliminated given it looks like a field
- */
-
-public void test12() {
-	
-	String s = 
-			"public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " }											\n"
-			+ "}											\n"
-			+ "	void bar(){									\n"
-			+ " public int x;								\n"
-			+ "	void baz(){									\n"
-			+ " }											\n"
-			+ " int y;										\n";
-
-	String expectedDietUnitToString =
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-		
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<attaching orphans with missing brackets 2>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString		,
-		expectedDietPlusBodyUnitToString,
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should still recover incomplete type signature (missing superclass)
- */
-
-public void test13() {
-	
-	String s = 
-			"public class X extends {						\n"
-			+ "	void foo() {								\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 	
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<invalid type header>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should still recover incomplete method signature (missing opening brace)
- */
-
-public void test14() {
-	
-	String s = 
-			"public class X extends Thread {				\n"
-			+ "	void foo() 									\n"
-			+ "	void bar() 									\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"public class X extends Thread {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X extends Thread {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 	
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<method header missing opening brace>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should still recover incomplete method signature (missing thrown exceptions)
- */
-
-public void test15() {
-	
-	String s = 
-			"public class X extends Thread {				\n"
-			+ "	void foo() throws							\n"
-			+ "	void bar() 									\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"public class X extends Thread {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = 
-		"public class X extends Thread {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 	
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"public class X extends Thread {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 	
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    ;\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<method header missing thrown exceptions>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should still recover incomplete type signature (missing superinterfaces)
- */
-
-public void test16() {
-	
-	String s = 
-			"public class X implements 						\n"
-			+ "	void foo() 									\n"
-			+ "	void bar() 									\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 	
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<type header missing superinterfaces>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should still recover incomplete type signature (missing superinterfaces)
- */
-
-public void test17() {
-	
-	String s = 
-			"public class X implements Y,					\n"
-			+ "	void foo() 									\n"
-			+ "	void bar() 									\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"public class X implements Y {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X implements Y {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 	
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<type header missing superinterfaces 2>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find member type behind incomplete enclosing type header
- */
-
-public void test18() {
-	
-	String s = 
-			"public class X implements 						\n"
-			+ " class Y { 									\n"
-			+ "	 void bar() 								\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString =
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 	
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 	
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<member type behind incomplete enclosing type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find member type when missing opening brace
- */
-
-public void test19() {
-	
-	String s = 
-			"public class X 		 						\n"
-			+ " class Y { 									\n"
-			+ "	 void bar() 								\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n"+
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<member type when missing opening brace>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not find fieldX signature behind missing brace
- */
-
-public void test20() {
-	
-	String s = 
-		"public class X 		 						\n"
-		+ " fieldX;										\n"
-		+ " class Y { 									\n"
-		+ "	 void bar() 								\n"
-		+ " }											\n"
-		+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n"+
-		"    }\n" + 
-		"    void bar() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<no field behind missing brace>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find Y as member type
- */
-
-public void test21() {
-
-	String s = 
-			"public class X 		 						\n"
-			+ " fieldX;										\n"
-			+ " class Y  									\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n"+
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find Y as member type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should filter out incomplete local type
- */
-
-public void test22() {
-
-	String s =
-		"package a;											\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		class L extends {						\n" +
-		"			public int l;						\n" +
-		"			void baz(){}						\n" +
-		"		}										\n" +
-		"												\n" +
-		"	public int h;								\n" +					
-		"												\n" +
-		"	void bar(){									\n" +				
-		"	void truc(){								\n" +
-		"}	\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class L {\n" + 
-		"      public int l;\n" + 
-		"      L() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void baz() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should filter out incomplete local type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should filter out incomplete local type and method signature
- */
-
-public void test23() {
-
-	String s =
-		"package a;											\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		class L extends {						\n" +
-		"			public int l;						\n" +
-		"			void baz() throws {}				\n" +
-		"		}										\n" +
-		"												\n" +
-		"	public int h;								\n" +					
-		"												\n" +
-		"	void bar(){									\n" +				
-		"	void truc(){								\n" +
-		"}	\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class L {\n" + 
-		"      public int l;\n" + 
-		"      L() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void baz() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should filter out incomplete local type/method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should filter out anonymous type
- */
-
-public void test24() {
-
-	String s =
-		"package a;											\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		new X(){								\n" +
-		"			void baz() {}						\n" +
-		"		}.baz();								\n" +
-		"												\n" +
-		"	public int h;								\n" +					
-		"												\n" +
-		"	void bar(){									\n" +				
-		"	void truc(){								\n" +
-		"}	\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new X() {\n" + 
-		"  void baz() {\n" + 
-		"  }\n" + 
-		"}.baz();\n" +
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should filter out incomplete anonymous type/method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should filter out incomplete anonymous type
- */
-
-public void test25() {
-
-	String s =
-		"package a;											\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		new X(){								\n" +
-		"			void baz() {}						\n" +
-		"												\n" +
-		"		public int h;							\n" +					
-		"												\n" +
-		"		void bar(){								\n" +				
-		"		void truc(){							\n" +
-		"}	\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new X() {\n" + 
-		"      public int h;\n" + 
-		"      void baz() {\n" + 
-		"      }\n" + 
-		"      void bar() {\n" + 
-		"      }\n" + 
-		"      void truc() {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should filter out incomplete anonymous type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should filter out incomplete anonymous method
- */
-
-public void test26() {
-
-	String s =
-		"package a;											\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		new X(){								\n" +
-		"			void baz() 							\n" +
-		"	    }										\n" +
-		"	}											\n" +
-		"	public int h;								\n" +					
-		"												\n" +
-		"	void bar(){									\n" +				
-		"	void truc(){								\n" +
-		"}	\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should filter out incomplete anonymous method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should filter out incomplete local type and local var h
- */
-
-public void test27() {
-
-	String s =
-		"package a;							\n"	+
-		"import java.lang.*;				\n"	+				
-		"import java.util.*;				\n"	+				
-		"									\n"	+				
-		"public class X {					\n"	+				
-		"	void foo() {					\n"	+				
-		"		System.out.println();		\n"	+				
-		"									\n"	+			
-		"		class L extends {			\n"	+
-		"			public int l;			\n"	+				
-		"			void baz(){}			\n"	+				
-		"		}							\n"	+				
-		"									\n"	+				
-		"		int h;						\n"	+				
-		"									\n"	+				
-		"	void bar(){						\n"	+				
-		"	void truc(){					\n"	+				
-		"}									\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class L {\n" + 
-		"      public int l;\n" + 
-		"      L() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void baz() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    int h;\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should filter incomplete local type L and variable h>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find <y> as a field in Y
- */
-
-public void test28() {
-
-	String s =
-		"public class X {		 	\n" +
-		"  int x;			 		\n"	+						
-		"							\n" +
-		"  int foo(){ }				\n" +
-		"							\n" +
-		"  class Y  {				\n"	+
-		"    int y;					\n" +
-		"}							\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    int y;\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int x;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    int y;\n" + 
-		"    Y() {\n" + 
-		"      super();\n"+
-		"    }\n" + 
-		"  }\n" + 
-		"  int x;\n" + 
-		"  public X() {\n" + 
-		"    super();\n"+
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find <y> as a field in Y>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find <y> as a field in X
- */
-
-public void test29() {
-
-	String s =
-		"public class X {		 	\n" +
-		"  int x;			 		\n"	+						
-		"							\n" +
-		"  int foo(){ }				\n" +
-		"							\n" +
-		"  class Y  {				\n"	+
-		"}							\n" +
-		"  int y;					\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int x;\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int x;\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find <y> as a field in X>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find <y> as a field in X
- */
-
-public void test30() {
-
-	String s =
-		"public class X {		 	\n" +
-		"  int x;			 		\n"	+						
-		"							\n" +
-		"  int foo(){ }				\n" +
-		"							\n" +
-		"  class Y  				\n"	+
-		"}							\n" +
-		"  int y;					\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int x;\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  int x;\n" + 
-		"  int y;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find <y> as a field in X>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should recover from partial method header foo()
- */
-
-public void test31() {
-
-	String s =
-		"package a;								\n"+
-		"import java.lang.*;					\n"+
-		"import java.util.*;					\n"+
-		"										\n"+
-		"public class X {						\n"+
-		"	void foo() 							\n"+
-		"		System.out.println();			\n"+
-		"										\n"+
-		"	public int h;						\n"+
-		"	public int[] i = { 0, 1 };			\n"+
-		"										\n"+
-		"	void bar(){							\n"+						
-		"	void truc(){						\n"+						
-		"}										\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i = {0, 1};\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" +
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"package a;\n" + 
-		"import java.lang.*;\n" + 
-		"import java.util.*;\n" + 
-		"public class X {\n" + 
-		"  public int h;\n" + 
-		"  public int[] i;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void truc() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<should recover from partial method header>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should recover from method with missing argument names
- */
-
-public void test32() {
-
-	String s =
-		"public class WB2 {											\n"+
-		"	public void foo(java.util.Locale, java.util.Vector) {	\n"+
-		"		int i;												\n"+
-		"		if(i instanceof O) {								\n"+
-		"		}													\n"+
-		"		String s = \"hello\";								\n"+
-		"		s.													\n"+
-		"	}														\n"+
-		"}															\n";
-
-	String expectedDietUnitToString = 
-		"public class WB2 {\n" + 
-		"  public WB2() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class WB2 {\n" + 
-		"  public WB2() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString;
-	if(COMPLIANCE_1_3.equals(this.complianceLevel) ||
-			COMPLIANCE_1_4.equals(this.complianceLevel)) {
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-			"public class WB2 {\n" + 
-			"  public WB2() {\n" + 
-			"    super();\n" + 
-			"  }\n" + 
-			"  public void foo() {\n" + 
-			"    java.util.Locale.java.util.Vector $missing$;\n" + 
-			"  }\n" + 
-			"}\n";
-	} else {
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-			expectedDietPlusBodyUnitToString;
-	}
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should recover from method with missing argument names>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not find message with no argument as a constructor
- */
-
-public void test33() {
-
-	String s =
-		"public class X {				\n"+
-		"	void hello()				\n"+
-		"	public X(int i)				\n"+						
-		"	void foo() {				\n"+
-		"		System.out.println();	\n"+			
-		"								\n"+
-		"}								\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  void hello() {\n" + 
-		"  }\n" + 
-		"  public X(int i) {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString =
-		"public class X {\n" + 
-		"  void hello() {\n" + 
-		"  }\n" + 
-		"  public X(int i) {\n" + 
-		"    super();\n" +
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not find message with no argument as a constructor>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,	
-		expectedFullUnitToString,	
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not find allocation as a constructor
- */
-
-public void test34() {
-
-	String s =
-		"public class X {				\n"+
-		"	void hello()				\n"+
-		"	public X(int i)				\n"+						
-		"	static void foo() {			\n"+
-		"		X x;					\n"+
-		"		x = new X(23);			\n"+
-		"		System.out.println();	\n"+			
-		"								\n"+
-		"}								\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  void hello() {\n" + 
-		"  }\n" + 
-		"  public X(int i) {\n" + 
-		"  }\n" + 
-		"  static void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString =
-		"public class X {\n" + 
-		"  void hello() {\n" + 
-		"  }\n" + 
-		"  public X(int i) {\n" + 
-		"    super();\n" +
-		"  }\n" + 
-		"  static void foo() {\n" + 
-		"    X x;\n" + 
-		"    x = new X(23);\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not find allocation as a constructor>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Incomplete field header
- */
-
-public void test35() {
-
-	String s =
-		"public class X {		\n" +						
-		"	int x				\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  int x;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  int x;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<incomplete field header>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Incomplete multiple field headers
- */
-
-public void test36() {
-
-	String s =
-		"public class X {		\n" +						
-		"	int x, y			\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  int x;\n" +
-		"  int y;\n" + 		
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  int x;\n" +
-		"  int y;\n" + 		
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<incomplete multiple field headers>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Field header with started string initializer
- */
-
-public void test37() {
-
-	String s =
-		"public class X {		\n" +						
-		"	String s = \"		\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  String s;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  String s;\n" +
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<field header with started string initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Field header with started string initializer combined with incomplete superinterface
- */
-
-public void test38() {
-
-	String s =
-		"public class X implements Y, {		\n" +						
-		"	String s = \"					\n";
-
-	String expectedDietUnitToString = 
-		"public class X implements Y {\n" + 
-		"  String s;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X implements Y {\n" + 
-		"  String s;\n" +
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<field header and incomplete superinterface>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Field signature behind keyword implements
- */
-
-public void test39() {
-
-	String s =
-		"public class X implements 		\n"+
-		"int x							\n"+	
-		"}								\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  int x;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  int x;\n" +
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<field signature behind keyword implements>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Field type read as interface
- */
-
-public void test40() {
-
-	String s =
-		"public class X implements Y, 		\n" +						
-		"	String s = \"					\n";
-
-	String expectedDietUnitToString = 
-		"public class X implements Y, String {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X implements Y, String {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<field type read as interface>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Contiguous headers (checking checkpoint positions)
- */
-
-public void test41() {
-
-	String s =
-		"public class X public int foo(int bar(static String s";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  static String s;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public int foo() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  static String s;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public int foo() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<contiguous headers>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Contiguous headers without comma (checking checkpoint positions)
- */
-
-public void test42() {
-
-	String s =
-		"public class X public int foo(int x, int bar public String s;";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" +  
-		"  public String s;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public int foo(int x, int bar) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" +  
-		"  public String s;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public int foo(int x, int bar) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<contiguous headers without comma>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Contiguous headers without comma (checking checkpoint positions)
- */
-
-public void test43() {
-
-	String s =
-		"public class X 			\n" +
-		"	public int foo(			\n" +
-		"	int bar(				\n" +
-		" 	static String s, int x	\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  static String s;\n" + 
-		"  int x;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public int foo() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  static String s;\n" + 
-		"  int x;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public int foo() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<contiguous headers without comma>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find static field <x>
- */
-
-public void test44() {
-
-	String s =
-		"class X {					\n" +
-		"	String s;				\n" +
-		"							\n" +
-		"	public void foo(		\n" +
-		"		static int x		\n" +
-		"}							\n";
-
-	String expectedDietUnitToString =
-		"class X {\n" + 
-		"  String s;\n" + 
-		"  static int x;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  String s;\n" + 
-		"  static int x;\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find static field x>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Missing string literal quote inside method
- */
-
-public void test45() {
-
-	String s =
-		"public class X {			\n"+
-		"	int foo(){				\n"+
-		"		String s = \"		\n"+
-		"	}						\n"+
-		"}							\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<missing string literal quote inside method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Detecting member type closing when missing brackets
- */
-
-public void test46() {
-
-	String s =
-		"class X 					\n"+
-		"  String s = \"class y 	\n"+
-		"  class Member 			\n"+
-		"	int foo() 				\n"+
-		"        public int x;    	\n"+
-		"  } 						\n"+
-		" int bar() 				\n";
-
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  class Member {\n" + 
-		"    public int x;\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  String s;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  class Member {\n" + 
-		"    public int x;\n" + 
-		"    Member() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  String s;\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<detecting member type closing when missing brackets>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated method arguments
- */
-
-public void test47() {
-
-	String s =
-
-		"class X {									\n" + 
-		"	int foo(AA a, BB b, IOEx				\n" + 
-		"											\n"; 
-
-	String expectedDietUnitToString = 
-		"class X {\n" +
-		"  X() {\n" + 
-		"  }\n" +
-		"  int foo(AA a, BB b) {\n" +
-		"  }\n" +
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" +
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" +
-		"  int foo(AA a, BB b) {\n" +
-		"  }\n" +
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unterminated method arguments>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated literal string in method body
- */
-
-public void test48() {
-
-	String s =
-		"public class X {							\n"+
-		"	final static int foo(){ 				\n"+
-		"		return \"1; 						\n"+
-		"	} 										\n"+
-		"	public static void main(String argv[]){ \n"+
-		"		foo();								\n"+
-		"	} 										\n"+
-		"}											\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  static final int foo() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedDietPlusBodyUnitToString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  static final int foo() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"    foo();\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unterminated literal string in method body>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated initializer with local declaration
- */
-
-public void test49() {
-
-	String s =
-		"public class X {							\n"+
-		"	{										\n"+
-		"     int x;								\n"+
-		"	 										\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unterminated initializer with local declaration>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated if statement
- */
-
-public void test50() {
-
-	String s =
-		"public class X {							\n"+
-		"   int foo(){								\n"+
-		"	  if(true){								\n"+
-		"     	int x;								\n"+
-		"	 										\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          int x;\n" + 
-		"        }\n" + 
-		"    else\n" + 
-		"        ;\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unterminated if statement>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated nested block with local declaration
- */
-
-public void test51() {
-
-	String s =
-		"public class X {							\n"+
-		"   int foo(){								\n"+
-		"	  {										\n"+
-		"     	int x;								\n"+
-		"	 										\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    {\n" + 
-		"      int x;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unterminated nested block with local declaration>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated nested block with field declaration
- */
-
-public void test52() {
-
-	String s =
-		"public class X {							\n"+
-		"   int foo(){								\n"+
-		"	  {										\n"+
-		"     	public int x;						\n"+
-		"	 										\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" +
-		"  public int x;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" +
-		"  public int x;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unterminated nested block with field declaration>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated initializer with field declaration
- */
-
-public void test53() {
-
-	String s =
-		"public class X {							\n"+
-		"	{										\n"+
-		"     public int x;							\n"+
-		"	 										\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" +
-		"  {\n" +
-		"  }\n" +		
-		"  public int x;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" +
-		"  {\n" +
-		"  }\n" +		
-		"  public int x;\n" +
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unterminated initializer with field declaration>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Invalid class name
- */
-
-public void test54() {
-
-	String s =
-		"package p;								\n"+
-		"public class ZPro.Sev.Blo {														\n"+
-		"void ThisIsADummyMethodThatIsCreatedOnlyForThePurposesOfTheCompletionEngine() {	\n"+
-		"	System.out.println(this.getClass());											\n"+
-		"}																					\n"+
-		"	// COMMENT																		\n"+
-		"}																					\n";
-
-	String expectedDietUnitToString = 
-		"package p;\n" + 
-		"public class ZPro {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public ZPro() {\n" + 
-		"  }\n" + 
-		"  void ThisIsADummyMethodThatIsCreatedOnlyForThePurposesOfTheCompletionEngine() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedDietPlusBodyUnitToString =
-		"package p;\n" + 
-		"public class ZPro {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public ZPro() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void ThisIsADummyMethodThatIsCreatedOnlyForThePurposesOfTheCompletionEngine() {\n" + 
-		"    System.out.println(this.getClass());\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<Invalid class name>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated static initializer with field declaration
- */
-
-public void test55() {
-
-	String s =
-		"public class X {							\n"+
-		"	static {								\n"+
-		"     public int x;							\n"+
-		"	 										\n";
-
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unterminated static initializer with field declaration>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Multiple initializers combined with array initializer
- */
-
-public void test56() {
-
-	String s =
-		"public class X 				\n"+
-		"	static int zz				\n"+
-		"	{							\n"+
-		"	}							\n"+
-		"	static {					\n"+
-		"   public int x;				\n"+
-		"	int[] y = { 0, 1};			\n"+
-		"	{							\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  static int zz;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  int[] y = {0, 1};\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  static int zz;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  int[] y = {0, 1};\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" + 
-		"  static int zz;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  int[] y;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<multiple initializers combined with array initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Combination of unterminated methods and fields
- */
-
-public void test57() {
-
-	String s =
-		"class X						\n"+
-		"	void foo(){					\n"+
-		"		{						\n"+
-		"	public static int x;		\n"+
-		"	void bar()					\n"+
-		"	}							\n"+
-		"	int y;						\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  public static int x;\n" + 
-		"  int y;\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  public static int x;\n" + 
-		"  int y;\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<combination of unterminated methods and fields>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Illegal unicode inside method body
- */
-
-public void test58() {
-
-	String s =
-		"package p; \n"+
-		"													\n"+
-		"class A {											\n"+
-		"	void bar() {									\n"+
-		"		String s = \"\\u000D\";						\n"+
-		"	}												\n"+
-		"}													\n";
-		
-	String expectedDietUnitToString = 
-		"package p;\n" + 
-		"class A {\n" + 
-		"  A() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"package p;\n" + 
-		"class A {\n" + 
-		"  A() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<illegal unicode inside method body>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Extra identifier in type signature
- */
-
-public void test59() {
-
-	String s =
-		"public class X extends java.io.IOException IOException  {			\n" +
-		"}																	\n";
-		
-	String expectedDietUnitToString = 
-		"public class X extends java.io.IOException {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class X extends java.io.IOException {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<extra identifier in type signature>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Extra identifier in method signature
- */
-
-public void test60() {
-
-	String s =
-		"public class X extends java.io.IOException  {		\n" +
-		"	int foo() ExtraIdentifier {						\n" +
-		"}													\n";
-		
-	String expectedDietUnitToString = 
-		"public class X extends java.io.IOException {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class X extends java.io.IOException {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<extra identifier in method signature>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Extra identifier behind thrown exception
- */
-
-public void test61() {
-
-	String s =
-		"public class X extends  {							\n" +
-		"	int foo() throws IOException ExtraIdentifier {	\n" +
-		"}													\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() throws IOException {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() throws IOException {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<extra identifier behind thrown exception>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unterminated array initializer
- */
-
-public void test62() {
-
-	String s =
-		"class X {				\n"+
-		" class Y 				\n"+
-		"   public String s;	\n"+
-		"   int foo(){			\n"+
-		"	return 1;			\n"+
-		"   static int y = {;	\n"+ // can only be an initializer since type is not array one
-		" }						\n"+
-		" public int i = 0;		\n"+
-		" 						\n"+
-		" int baz()				\n"+
-		"						\n"+
-		"}						\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  class Y {\n" + 
-		"    public String s;\n" + 
-		"    static int y;\n" + 
-		"    {\n" + 
-		"    }\n" + 
-		"    public int i = 0;\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    <clinit>() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"    int baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  class Y {\n" + 
-		"    public String s;\n" + 
-		"    static int y;\n" + 
-		"    {\n" + 
-		"      ;\n" + 
-		"    }\n" + 
-		"    public int i = 0;\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"    <clinit>() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"      return 1;\n" +
-		"    }\n" + 
-		"    int baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"class X {\n" + 
-		"  class Y {\n" + 
-		"    public String s;\n" + 
-		"    static int y;\n" + 
-		"    {\n" + 
-		"    }\n" + 
-		"    public int i;\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    <clinit>() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"    int baz() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<unterminated array initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Initializer behind array initializer
- */
-
-public void test63() {
-
-	String s =
-		"class X {				\n"+
-		" int x[] = {0, 1}		\n"+
-		" {						\n"+
-		" }						\n"+
-		"}						\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  int[] x = {0, 1};\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  int[] x = {0, 1};\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"class X {\n" + 
-		"  int[] x;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<initializer behind array initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Initializers mixed with fields
- */
-
-public void test64() {
-
-	String s =
-		"public class X 			\n"+
-		"	int[] x = { 0, 1};		\n"+
-		"	static int zz			\n"+
-		"	{						\n"+
-		"	}						\n"+
-		"	static {				\n"+								
-		"    public int x;			\n"+							
-		"	{						\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  int[] x = {0, 1};\n" + 
-		"  static int zz;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  int[] x = {0, 1};\n" + 
-		"  static int zz;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" + 
-		"  int[] x;\n" + 
-		"  static int zz;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public int x;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<initializers mixed with fields>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find method behind some()
- */
-
-public void test65() {
-
-	String s =
-		"import java.lang.*;													\n" +
-		"																		\n" +
-		"public class Hanoi {													\n" +
-		"private    Post[] posts;												\n" +
-		"public static void main (String args[]) {								\n" +
-		"}																		\n" +
-		"public void some(){													\n" +
-		"																		\n" +
-		"private void moveDisk (Post source, Post destination) {				\n" +
-		"}																		\n" +
-		"protected void reportMove (Post source, Post destination) {			\n" +
-		"}																		\n" +
-		"private void reset () {												\n" +
-		"}																		\n" +
-		"public void solve () {													\n" +
-		"}																		\n" +
-		"private void solve (int depth, Post start, Post free, Post end) {		\n" +
-		"}																		\n" +
-		"}																		\n";
-		
-	String expectedDietUnitToString = 
-		"import java.lang.*;\n" + 
-		"public class Hanoi {\n" + 
-		"  private Post[] posts;\n" + 
-		"  public Hanoi() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"  }\n" + 
-		"  public void some() {\n" + 
-		"  }\n" + 
-		"  private void moveDisk(Post source, Post destination) {\n" + 
-		"  }\n" + 
-		"  protected void reportMove(Post source, Post destination) {\n" + 
-		"  }\n" + 
-		"  private void reset() {\n" + 
-		"  }\n" + 
-		"  public void solve() {\n" + 
-		"  }\n" + 
-		"  private void solve(int depth, Post start, Post free, Post end) {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"import java.lang.*;\n" + 
-		"public class Hanoi {\n" + 
-		"  private Post[] posts;\n" + 
-		"  public Hanoi() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"  }\n" + 
-		"  public void some() {\n" + 
-		"  }\n" + 
-		"  private void moveDisk(Post source, Post destination) {\n" + 
-		"  }\n" + 
-		"  protected void reportMove(Post source, Post destination) {\n" + 
-		"  }\n" + 
-		"  private void reset() {\n" + 
-		"  }\n" + 
-		"  public void solve() {\n" + 
-		"  }\n" + 
-		"  private void solve(int depth, Post start, Post free, Post end) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find method behind some()>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should detect X(int) as a method with no return type
- */
-
-public void test66() {
-
-	String s =
-		"class X {			\n"+
-		"	class Y {		\n"+
-		"	X(int i){}		\n"+
-		"}					\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"    X(int i) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"    X(int i) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should detect X(int) as a method with no return type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should detect orphan X(int) as a constructor
- */
-
-public void test67() {
-
-	String s =
-		"class X {			\n"+
-		"	class Y {		\n"+
-		"	}				\n"+
-		"}					\n"+
-		"	X(int i){		\n"+
-		"   }				\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  X(int i) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString =
-		"class X {\n" + 
-		"  class Y {\n" + 
-		"    Y() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  X(int i) {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should detect orphan X(int) as a constructor>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Empty unit
- */
-
-public void test68() {
-
-	String s = "";
-		
-	String expectedDietUnitToString = "";
-		
-	String expectedDietPlusBodyUnitToString = expectedDietUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<empty unit>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unit reduced to a method declaration
- */
-
-public void test69() {
-
-	String s = 
-		"	int foo(){					\n" +
-		"		System.out.println();	\n" +
-		"	}							\n";
-		
-	String expectedDietUnitToString = "";
-		
-	String expectedDietPlusBodyUnitToString = expectedDietUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unit reduced to a method declaration>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unit reduced to a constructor declaration
- */
-
-public void test70() {
-
-	String s = 
-		"	X(){						\n" +
-		"		System.out.println();	\n" +
-		"	}							\n";
-		
-	String expectedDietUnitToString = "";
-		
-	String expectedDietPlusBodyUnitToString = expectedDietUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unit reduced to a constructor declaration>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unit reduced to a field declaration
- */
-
-public void test71() {
-
-	String s = 
-		"	String str = new String();";
-		
-	String expectedDietUnitToString = "";
-		
-	String expectedDietPlusBodyUnitToString = expectedDietUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unit reduced to a field declaration>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Unit reduced to a field declaration with array initializer
- */
-
-public void test72() {
-
-	String s = 
-		"	String[] str = { \"hello\" };";
-		
-	String expectedDietUnitToString = "";
-		
-	String expectedDietPlusBodyUnitToString = expectedDietUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<unit reduced to a field declaration with array initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not pick-up any constructor with no arg
- */
-
-public void test73() {
-
-	String s = 
-		"	class X {			\n" +
-		"		X(int i){}		\n" +
-		"		int foo(){		\n" +
-		"			new X(		\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  X(int i) {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString =
-		"class X {\n" + 
-		"  X(int i) {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"class X {\n" + 
-		"  X(int i) {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    new X();\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not pick-up any constructor with no arg>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not detect any field
- */
-
-public void test74() {
-
-	String s = 
-		"package pack;						\n" +
-		"									\n" +
-		"class A extends IOException {		\n" +
-		"									\n" +
-		"	S{								\n" +
-		"		int x;						\n" +
-		"	}								\n" +
-		"}									\n";
-		
-	String expectedDietUnitToString = 
-		"package pack;\n" + 
-		"class A extends IOException {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"package pack;\n" + 
-		"class A extends IOException {\n" + 
-		"  {\n" +
-		"    int x;\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not detect any field>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Bunch of syntax errors
- */
-
-public void test75() {
-
-	String s = 
-		"package ZKentTest;\n"+
-		"\n"+
-		"import java.awt.color.*;\n"+
-		"\n"+
-		"public class A {\n"+
-		"	A foo(int i) { return this; }\n"+
-		"	int[] ii = {0, 1clone()\n"+
-		"\n"+
-		"	int bar() {\n"+
-		"		class Local {\n"+
-		"			int hello(){\n"+
-		"				fo\n"+
-		"			}\n"+
-		"			int world()\n"+
-		"			}\n"+
-		"	void foo() {\n"+
-		"		ba		\n";
-		
-	String expectedDietUnitToString = 
-		"package ZKentTest;\n" + 
-		"import java.awt.color.*;\n" + 
-		"public class A {\n" + 
-		"  int[] ii;\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"  A foo(int i) {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString =
-		"package ZKentTest;\n" + 
-		"import java.awt.color.*;\n" + 
-		"public class A {\n" + 
-		"  int[] ii;\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  A foo(int i) {\n" + 
-		"    return this;\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"package ZKentTest;\n" + 
-		"import java.awt.color.*;\n" + 
-		"public class A {\n" + 
-		"  int[] ii;\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  A foo(int i) {\n" + 
-		"    return this;\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"    class Local {\n" + 
-		"      Local() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      int hello() {\n" + 
-		"        fo = $missing$;\n" + 
-		"      }\n" + 
-		"      int world() {\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    int hello;\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"package ZKentTest;\n" + 
-		"import java.awt.color.*;\n" + 
-		"public class A {\n" + 
-		"  int[] ii;\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"  A foo(int i) {\n" + 
-		"  }\n" +
-		"  clone() {\n" +
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<bunch of syntax errors>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find Member as a member type
- */
-
-public void test76() {
-
-	String s = 
-		"package pack;								\n"+
-		"class A  {									\n"+
-		"											\n"+
-		"	public static void main(String[] argv)	\n"+
-		"			new Member().f					\n"+
-		"			;								\n"+
-		"	}										\n"+
-		"	class Member {							\n"+
-		"		int foo()							\n"+
-		"		}									\n"+
-		"	}										\n"+
-		"};											\n";
-		
-	String expectedDietUnitToString = 
-		"package pack;\n" + 
-		"class A {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"package pack;\n" + 
-		"class A {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"      super();\n" + 			
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"  }\n" + 
-		"}\n";	
-
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"package pack;\n" + 
-		"class A {\n" + 
-		"  class Member {\n" + 
-		"    Member() {\n" + 
-		"      super();\n" + 			
-		"    }\n" + 
-		"    int foo() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  A() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"    new Member().f = $missing$;\n" + 
-		"  }\n" + 
-		"}\n";	
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find Member as a member type>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not recover duplicate field numberOfDisks
- */
-
-public void test77() {
-
-	String s = 
-		"package p;															\n"+
-		"																		\n"+
-		"import java.lang.*;													\n"+
-		"																		\n"+
-		"class IncompleteHanoi {												\n"+
-		"private    Post[] posts;												\n"+
-		"private    int numberOfDisks;											\n"+
-		"																		\n"+
-		"public Hanoi (int numberOfDisks) {										\n"+
-		" this.numberOfDisks = numberOfDisks;									\n"+
-		"'' this.posts = new Post[3];											\n"+
-		" String[] postNames = new String[]{\"Left\", \"Middle\", \"Right\"};	\n"+
-		"																		\n"+
-		" for (int i = 0; i < 3; ++i)											\n"+
-		"  this.posts[i] = new Post(postNames[i], numberOfDisks);				\n"+
-		"}																		\n"+
-		"																		\n"+
-		"private void solve (int depth, Post start, Post free, Post end) {		\n"+
-		" if (depth == 1)														\n"+
-		"  moveDisk(start, end);												\n"+
-		" else if (depth > 1) {													\n"+
-		"  sol																	\n";
-		
-	String expectedDietUnitToString = 
-		"package p;\n" + 
-		"import java.lang.*;\n" + 
-		"class IncompleteHanoi {\n" + 
-		"  private Post[] posts;\n" + 
-		"  private int numberOfDisks;\n" + 
-		"  IncompleteHanoi() {\n" + 
-		"  }\n" + 
-		"  public Hanoi(int numberOfDisks) {\n" + 
-		"  }\n" + 
-		"  private void solve(int depth, Post start, Post free, Post end) {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"package p;\n" + 
-		"import java.lang.*;\n" + 
-		"class IncompleteHanoi {\n" + 
-		"  private Post[] posts;\n" + 
-		"  private int numberOfDisks;\n" + 
-		"  IncompleteHanoi() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  public Hanoi(int numberOfDisks) {\n" + 
-		"  }\n" + 
-		"  private void solve(int depth, Post start, Post free, Post end) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"package p;\n" + 
-		"import java.lang.*;\n" + 
-		"class IncompleteHanoi {\n" + 
-		"  private Post[] posts;\n" + 
-		"  private int numberOfDisks;\n" + 
-		"  IncompleteHanoi() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  public Hanoi(int numberOfDisks) {\n" + 
-		"  }\n" + 
-		"  private void solve(int depth, Post start, Post free, Post end) {\n" + 
-		"    if ((depth == 1))\n" + 
-		"        moveDisk(start, end);\n" + 
-		"    else\n" + 
-		"        if ((depth > 1))\n" + 
-		"            {\n" + 
-		"              sol = $missing$;\n" + 
-		"            }\n" + 
-		"        else\n" + 
-		"            ;\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not recover duplicate field numberOfDisks>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not detect a field v (1/2)
- */
-
-public void test78() {
-
-	String s = 
-		"class X {								\n" +
-		"	int foo(){							\n" +
-		"		Vector v = new Vector();		\n" +
-		"		s								\n" +
-		"		v.addElement(					\n" +
-		"	}									\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    Vector v = new Vector();\n" + 
-		"    s v;\n" + 
-		"    addElement();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not detect a field v>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not detect a field v (2/2)
- */
-
-public void test79() {
-
-	String s = 
-		"class X {								\n" +
-		"	int foo(){							\n" +
-		"		Vector v = new Vector();		\n" +
-		"		public s   v.addElement(		\n" +
-		"	}									\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    Vector v = new Vector();\n" + 
-		"    public s v;\n" + 
-		"    addElement();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not detect a field v>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not detect a method bar
- */
-
-public void test80() {
-
-	String s = 
-		"class X {								\n" +
-		"	int test(){							\n" +
-		"		int[] i;						\n" +
-		"		i								\n" +
-		"		// some comment					\n" +
-		"		bar(1);							\n" +
-		"	}									\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  int test() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  int test() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"class X {\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  int test() {\n" + 
-		"    int[] i;\n" + 
-		"    i bar = 1;\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not detect a method bar>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not pick-up any constructor with no arg
- */
-
-public void test81() {
-
-	String s = 
-		"	class X {				\n" +
-		"		X(int i){}			\n" +
-		"		int foo(){			\n" +
-		"			X(12)			\n";
-		
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  X(int i) {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  X(int i) {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"class X {\n" + 
-		"  X(int i) {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    X(12);\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not pick-up any constructor with no arg>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not promote message sending as a method
- */
-
-public void test82() {
-
-	String s = 
-		"public class A {		\n"+
-		"						\n"+
-		"	void foo() 			\n"+
-		"		if (true) {		\n"+
-		"		} else {		\n"+
-		"			Bar s; 		\n"+
-		"			s.fred();	\n"+
-		"		}				\n"+
-		"	}					\n"+
-		"}						\n";
-	String expectedDietUnitToString = 
-		"public class A {\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class A {\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"        }\n" + 
-		"    else\n" + 
-		"        {\n" + 
-		"          Bar s;\n" + 
-		"          s.fred();\n" + 
-		"        }\n" + 
-		"  }\n" + 
-		"}\n";
-			
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not promote message sending as a method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should not promote message sending as a method 2
- */
-
-public void test83() {
-
-	String s = 
-		"public class A {			\n"+
-		"							\n"+
-		"	void foo() if (true) {	\n"+
-		"		} else {			\n"+
-		"			Bar s; 			\n"+
-		"			s.fred();		\n"+
-		"		}					\n"+
-		"	}						\n"+
-		"}							\n";
-	String expectedDietUnitToString = 
-		"public class A {\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class A {\n" +
-		"  public A() {\n" +
-		"    super();\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    if (true)\n" +
-		"        {\n" +
-		"        }\n" +
-		"    else\n" +
-		"        {\n" +
-		"          Bar s;\n" +
-		"          s.fred();\n" +
-		"        }\n" +
-		"  }\n" +
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should not promote message sending as a method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find a static initializer
- */
-
-public void test84() {
-
-	String s = 
-		"public class A extends			\n" +
-		"								\n" +
-		"	static {					\n" +
-		"}								\n";
-	String expectedDietUnitToString = 
-		"public class A {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class A {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find a static initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find a static initializer
- */
-
-public void test85() {
-
-	String s = 
-		"public class A 			\n" +
-		"							\n" +
-		"	static {				\n" +
-		"}							\n";
-	String expectedDietUnitToString = 
-		"public class A {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class A {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find a static initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find an initializer
- */
-
-public void test86() {
-
-	String s = 
-		"public class A 			\n" +
-		"							\n" +
-		"	int 					\n" +
-		"	{						\n" +
-		"}							\n";
-	String expectedDietUnitToString = 
-		"public class A {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class A {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find an initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Should find an initializer
- */
-
-public void test87() {
-
-	String s = 
-		"public class A 			\n" +
-		"							\n" +
-		"	int x;					\n" +
-		"  {						\n" +
-		"	int y;					\n" +
-		"}							\n";
-	String expectedDietUnitToString = 
-		"public class A {\n" + 
-		"  int x;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class A {\n" + 
-		"  int x;\n" + 
-		"  {\n" + 
-		"    int y;\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<should find an initializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * 1FVRQG0: ITPCOM:WINNT - NullPointerException in recovery mode
- */
-
-public void test88() {
-
-	String s = 
-		"package p1;					\n" +
-		"								\n" +
-		"public class X {				\n" +
-		"	int foo(String s, int x) 	\n" +
-		"	public int y = new X() { 	\n" +
-		"								\n" +
-		"}								\n";
-		
-	String expectedDietUnitToString = 
-		"package p1;\n" + 
-		"public class X {\n" + 
-		"  public int y;\n" +
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo(String s, int x) {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"package p1;\n" + 
-		"public class X {\n" + 
-		"  public int y;\n" +
-		"  public X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  int foo(String s, int x) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString =
-		"package p1;\n" + 
-		"public class X {\n" + 
-		"  public int y;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo(String s, int x) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<1FVRQG0: ITPCOM:WINNT - NullPointerException in recovery mode>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * 1FVRN9V: ITPJCORE:WIN98 - Internal builder error compiling servlet
- */
-
-public void test89() {
-
-	String s = 
-		"import javax.servlet.*;											\n" +
-		"import javax.servlet.http.*;										\n" +
-		"																	\n" +
-		"public class Servlet1 extends HttpServlet {						\n" +
-		"	protected (HttpServletRequest req, HttpServletResponse resp) {	\n" +
-		"	}																\n" +
-		"}																	\n";
-		
-	String expectedDietUnitToString = 
-		"import javax.servlet.*;\n" + 
-		"import javax.servlet.http.*;\n" + 
-		"public class Servlet1 extends HttpServlet {\n" + 
-		"  HttpServletRequest req;\n" + 
-		"  HttpServletRequest HttpServletResponse;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public Servlet1() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"import javax.servlet.*;\n" + 
-		"import javax.servlet.http.*;\n" + 
-		"public class Servlet1 extends HttpServlet {\n" + 
-		"  HttpServletRequest req;\n" + 
-		"  HttpServletRequest HttpServletResponse;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public Servlet1() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<1FVRN9V: ITPJCORE:WIN98 - Internal builder error compiling servlet>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * 1FVXQZ4: ITPCOM:WIN98 - Walkback during parsing recovery
- */
-
-public void test90() {
-
-	String s = 
-		"public class Test {	\n"+
-		"						\n"+
-		"	int x;				\n"+
-		"	int foo(			\n"+
-		"	int bar(			\n"+
-		"	baz(A a				\n"+
-		"}						\n";
-	String expectedDietUnitToString = 
-		"public class Test {\n" + 
-		"  int x;\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"  baz(A a) {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"public class Test {\n" + 
-		"  int x;\n" + 
-		"  public Test() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"  int bar() {\n" + 
-		"  }\n" + 
-		"  baz(A a) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<1FVXQZ4: ITPCOM:WIN98 - Walkback during parsing recovery>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * 1FVXWKI: ITPCOM:WIN98 - Walkback when parsing a bogus interface
- */
-
-public void test91() {
-
-	String s = 
-		"public interface Fred {		\n" +
-		"	void foo();					\n" +
-		"	void bar();					\n" +
-		"	public fred(X x, int y);	\n" +
-		"}								\n";
-	String expectedDietUnitToString = 
-		"public interface Fred {\n" + 
-		"  void foo();\n" + 
-		"  void bar();\n" + 
-		"  public fred(X x, int y);\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = expectedDietUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<1FVXWKI: ITPCOM:WIN98 - Walkback when parsing a bogus interface>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * Variation on 1FVXWKI: ITPCOM:WIN98 - Walkback when parsing a bogus interface
- */
-
-public void test92() {
-	String s = 
-		"public interface Test {		\n"+
-		"	void foo();					\n"+
-		"								\n"+
-		"	public fred(Fred x, int y);	\n"+
-		"}								\n";
-	String expectedDietUnitToString = 
-		"public interface Test {\n" + 
-		"  void foo();\n" + 
-		"  public fred(Fred x, int y);\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = expectedDietUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<1FVXWKI: ITPCOM:WIN98 - Walkback when parsing a bogus interface>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * 1FW5A4E: ITPCOM:WIN98 - Walkback reconciling
- */
-
-public void test93() {
-	String s = 
-		"class X{			\n" +
-		"	int foo()		\n" +
-		"	static { }		\n" +
-		"}					\n";
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<1FW5A4E: ITPCOM:WIN98 - Walkback reconciling>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * 1FW3663: ITPCOM:WIN98 - Outline - does not show method #fred()
- */
-
-public void test94() {
-	String s = 
-		"public class X {						\n" +
-		"	int[] array;						\n" +
-		"										\n" +
-		"void foo() {							\n" +
-		"	bar(this.array.length, 10, fred(	\n" +
-		"										\n" +
-		"int fred(								\n" +
-		"}										\n";
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  int[] array;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" +
-		"  int fred() {\n" +
-		"  }\n" +
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  int[] array;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" +
-		"  int fred() {\n" +
-		"  }\n" +
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"public class X {\n" + 
-		"  int[] array;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    bar(this.array.length, 10, fred());\n" + 
-		"  }\n" +
-		"  int fred() {\n" +
-		"  }\n" +
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<1FW3663: ITPCOM:WIN98 - Outline - does not show method #fred()>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * 1FW6M5M: ITPJUI:ALL - NPE in SourceElementParser
- */
-
-public void test95() {
-	String s = 
-		"public interface IP {			\n"+
-		"	public static toString() {	\n"+
-		"	}							\n"+
-		"}								\n";
-	String expectedDietUnitToString = 
-		"public interface IP {\n" + 
-		"  public static toString() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyUnitToString = expectedDietUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<1FW6M5M: ITPJUI:ALL - NPE in SourceElementParser>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * 1FWHXX7: ITPCOM:WINNT - ClassCastException compiling invalid import
- */
-
-public void test96() {
-	String s = 
-		"import ;\n"+
-		"class X {\n"+
-		"	int foo(){\n"+
-		"		System.out.println();\n"+
-		"	}\n"+
-		"	static {\n"+
-		"		int i = j;\n"+
-		"	}\n"+
-		"}\n";
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  static {\n" + 
-		"    int i = j;\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<1FWHXX7: ITPCOM:WINNT - ClassCastException compiling invalid import>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * variation on 1FWHXX7: ITPCOM:WINNT - ClassCastException compiling invalid import
- */
-
-public void test97() {
-	String s = 
-		"import ;\n"+
-		"class X {\n"+
-		"	int foo(){\n"+
-		"		System.out.println();\n"+
-		"	}\n"+
-		"	static {\n"+
-		"	}\n"+
-		"}\n";
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  static {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<variation on 1FWHXX7: ITPCOM:WINNT - ClassCastException compiling invalid import>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=9084
- */
-
-public void test98() {
-
-	String s = 
-		"public class A {		                                                \n"+
-		"	class Platform {		                                            \n"+
-		"		public static void run(Runnable r) {		                    \n"+
-		"		}		                                                        \n"+
-		"	}			                                                        \n"+
-		"	Object [] array = null;		                                        \n"+
-		"	for (int nX = 0; nX < array.length; nX ++) {		                \n"+
-		"		final String part = \"\";		                                \n"+
-		"		final String sel = \"\";		                                \n"+
-		"		Object l = null;		                                        \n"+
-		"		if ((part != null && sel != null) || l instanceof String) {	\n"+
-		"			Platform.run(new Runnable() {		                        \n"+
-		"				public void run() {		                                \n"+
-		"				}		                                                \n"+
-		"				public void handleException(Throwable e) {		        \n"+
-		"				}		                                                \n"+
-		"			});		                                                    \n"+
-		"		}		                                                        \n"+
-		"	}		                                                            \n"+
-		"}                                                                      \n";
-		
-	String expectedDietUnitToString = 
-		"public class A {\n"+
-		"  class Platform {\n"+
-		"    Platform() {\n"+
-		"    }\n"+
-		"    public static void run(Runnable r) {\n"+
-		"    }\n"+
-		"  }\n"+
-		"  Object[] array = null;\n"+
-		"  int nX = 0;\n"+
-		"  {\n"+
-		"  }\n"+
-		"  public A() {\n"+
-		"  }\n"+
-		"}\n";
-		
-		
-	String expectedDietPlusBodyUnitToString = "public class A {\n"+
-		"  class Platform {\n"+
-		"    Platform() {\n"+
-		"      super();\n"+
-		"    }\n"+
-		"    public static void run(Runnable r) {\n"+
-		"    }\n"+
-		"  }\n"+
-		"  Object[] array = null;\n"+
-		"  int nX = 0;\n"+
-		"  {\n"+
-		"    final String part = \"\";\n"+
-		"    final String sel = \"\";\n"+
-		"    Object l = null;\n"+
-    	"    if ((((part != null) && (sel != null)) || (l instanceof String)))\n"+
-    	"        {\n"+
-     	"          Platform.run(new Runnable() {\n"+
-		"  public void run() {\n"+
-		"  }\n"+
-		"  public void handleException(Throwable e) {\n"+
-		"  }\n"+
-		"});\n"+
-		"        }\n"+
-		"  }\n"+
-		"  public A() {\n"+
-		"    super();\n"+
-		"  }\n"+
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class A {\n"+
-		"  class Platform {\n"+
-		"    Platform() {\n"+
-		"    }\n"+
-		"    public static void run(Runnable r) {\n"+
-		"    }\n"+
-		"  }\n"+
-		"  Object[] array;\n"+
-		"  int nX;\n"+
-		"  {\n"+
-		"  }\n"+
-		"  public A() {\n"+
-		"  }\n"+
-		"}\n";
-	
-	String testName = "<check for null inside RecoveredInitializer>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-
-public void test99() {
-	String s = 
-		"import ;\n"+
-		"class X {\n"+
-		"}\n"+
-		"- public void addThreadFilter(IJavaThread thread) - restricts breakpoint to \n"+
-		"given thread and any other previously specified threads\n"+
-		"- public void removeThreadFilter(IJavaThread thread)- removes the given thread \n"+
-		"restriction (will need to re-create breakpoint request as JDI does not support \n"+
-		"the removal of thread filters)\n"+
-		"- public IJavaThread[] getThreadFilters() - return the set of threads this \n"+
-		"breakpoint is currently restricted to\n";
-	String expectedDietUnitToString = 
-		"class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  public void addThreadFilter(IJavaThread thread) {\n" + 
-		"  }\n" + 
-		"  public void removeThreadFilter(IJavaThread thread) {\n" + 
-		"  }\n" + 
-		"  public IJavaThread[] getThreadFilters() {\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedDietPlusBodyUnitToString = 
-		"class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  public void addThreadFilter(IJavaThread thread) {\n" + 
-		"  }\n" + 
-		"  public void removeThreadFilter(IJavaThread thread) {\n" + 
-		"  }\n" + 
-		"  public IJavaThread[] getThreadFilters() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  public void addThreadFilter(IJavaThread thread) {\n" + 
-		"    restricts breakpoint;\n" + 
-		"    given thread;\n" + 
-		"    any other;\n" + 
-		"    specified = $missing$;\n" + 
-		"  }\n" + 
-		"  public void removeThreadFilter(IJavaThread thread) {\n" + 
-		"    removes the;\n" + 
-		"    thread restriction;\n" + 
-		"    will need = (re - create);\n" + 
-		"    request as;\n" + 
-		"    does not;\n" + 
-		"    the removal;\n" + 
-		"    thread = $missing$;\n" + 
-		"  }\n" + 
-		"  public IJavaThread[] getThreadFilters() {\n" + 
-		"    return the;\n" + 
-		"    of threads;\n" + 
-		"    breakpoint is;\n" + 
-		"    restricted to;\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<9101 - Parse error while typing in Java editor>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test100() {
-	String s = 
-		"public class Bug {\n" + 
-		"	static boolean bold = false;\n" + 
-		"public static void main(String arguments[]) {\n" + 
-		"	Shell shell = new Shell(SWT.MENU | SWT.RESIZE | SWT.TITLE | SWT.H_SCROLL);\n" + 
-		"	StyledText text = new StyledText(shell, SWT.WRAP); \n" + 
-		"	shell.addListener(SWT.Resize, new Listener() {\n" + 
-		"		public void handleEvent(Event e) {\n" + 
-		"			text.setBounds(shell.getClientArea());			 \n" + 
-		"		}  \n" + 
-		"	});	\n" + 
-		"	shell.addListener(SWT.KeyDown, bew Listener () {\n" + 
-		"		public void handleEvent(Event e) {\n" + 
-		"			bold = !bold;\n" + 
-		"		}\n" + 
-		"	}); \n" + 
-		"	text.addLineStyleListener(new LineStyleListener() { \n" + 
-		"		public void lineGetStyle(LineStyleEvent event) {\n" + 
-		"		}\n" + 
-		"	});\n" + 
-		"}\n" + 
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class Bug {\n" + 
-		"  static boolean bold = false;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public Bug() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] arguments) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class Bug {\n" + 
-		"  static boolean bold = false;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public Bug() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  public static void main(String[] arguments) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"public class Bug {\n" + 
-		"  static boolean bold = false;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public Bug() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  public static void main(String[] arguments) {\n" + 
-		"    Shell shell = new Shell((((SWT.MENU | SWT.RESIZE) | SWT.TITLE) | SWT.H_SCROLL));\n" + 
-		"    StyledText text = new StyledText(shell, SWT.WRAP);\n" + 
-		"    shell.addListener(SWT.Resize, new Listener() {\n" + 
-		"  public void handleEvent(Event e) {\n" + 
-		"    text.setBounds(shell.getClientArea());\n" + 
-		"  }\n" + 
-		"});\n" + 
-		"    shell.addListener(SWT.KeyDown, new Listener() {\n" + 
-		"  public void handleEvent(Event e) {\n" + 
-		"    bold = (! bold);\n" + 
-		"  }\n" + 
-		"});\n" + 
-		"    text.addLineStyleListener(new LineStyleListener() {\n" + 
-		"  public void lineGetStyle(LineStyleEvent event) {\n" + 
-		"  }\n" + 
-		"});\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = 
-		"public class Bug {\n" + 
-		"  static boolean bold = false;\n" + 
-		"  public Bug() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] arguments) {\n" + 
-		"  }\n" + 
-		"  bew Listener() {\n" + 
-		"  }\n" + 
-		"  public void handleEvent(Event e) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedCompletionDietUnitToString = 
-		"public class Bug {\n" + 
-		"  static boolean bold;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public Bug() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] arguments) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "<10616 - local type outside method>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void _test101() {
-	String s = 
-		"public class X {	\n"+
-		"    Object foo(Stack<X> s) {	\n"+
-		"    }	\n"+
-		"   List<T> bar(int pos, T x1, T x2, List<T> l) {	\n"+
-		"    }	\n"+
-		"}	\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  Object foo() {\n" + 
-		"  }\n" + 
-		"  bar(int pos, T x1, T x2) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 		
-		"  }\n" + 
-		"  Object foo() {\n" + 
-		"  }\n" + 
-		"  bar(int pos, T x1, T x2) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<12387 out of memory with generics>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test102() {
-	String s = 
-		"void ___eval() {	\n"+
-		"new Runnable(){	\n"+
-		"void ___run() throws Throwable {	\n"+
-		"return blah;	\n"+
-		"}	\n"+
-		"private String blarg;	\n"+
-		"public void run (){	\n"+
-		"		class Local { \n" +
-		"			void baz() {	\n"+ 
-		"			}	\n" +
-		"		} 	\n"+
-		"}	\n"+
-		"}	\n"+
-		";}	\n"+
-		"public class Hello{	\n"+
-		"private static int x;	\n"+
-		"private String blah;	\n"+
-		"public static void main (String[] args){	\n"+
-		"}	\n"+
-		"public void hello (){	\n"+
-		"}	\n"+
-		"public boolean blah (){	\n"+
-		"return false;}	\n"+
-		"public void foo (){	\n"+
-		"}	\n"+
-		"}	\n";
-		
-	String expectedDietUnitToString = 
-		"public class Hello {\n" + 
-		"  private static int x;\n" + 
-		"  private String blah;\n" + 
-		"  public Hello() {\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"  }\n" + 
-		"  public void hello() {\n" + 
-		"  }\n" + 
-		"  public boolean blah() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n" ;
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class Hello {\n" + 
-		"  private static int x;\n" + 
-		"  private String blah;\n" + 
-		"  public Hello() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"  }\n" + 
-		"  public void hello() {\n" + 
-		"  }\n" + 
-		"  public boolean blah() {\n" + 
-		"    return false;\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<12454 - handling toplevel anonymous>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test103() {
-	String s = 
-		"public class X{	\n"+
-		"   void foo(int x, int y, void z";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  void z;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo(int x, int y) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  void z;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo(int x, int y) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<14038 - third argument type is void>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test104() {
-	String s = 
-		"public class P#AField {\n" +
-		"	public void setP#A(String P#A) {\n" +
-		"		this.P#A = P#A;\n" +
-		"	}\n" +	
-		"}";
-		
-	String expectedDietUnitToString = 
-		"public class P {\n" +
-		"  {\n" +
-		"  }\n" +
-		"  public void setP;\n" +
-		"  public P() {\n" +
-		"  }\n" +
-		"  A(String P) {\n" +
-		"  }\n" +
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class P {\n" +
-		"  {\n" +
-		"  }\n" +
-		"  public void setP;\n" +
-		"  public P() {\n" +
-		"    super();\n" +
-		"  }\n" +
-		"  A(String P) {\n" +
-		"  }\n" +
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = expectedDietUnitToString;
-	
-	String testName = "<16126>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test105() {
-	String s = 
-		"public class X {\n" +
-		"	static int foo(int[] a, int[] b) {\n" +
-		"		return 0;\n" +
-		"	}\n" +
-		"	static int B =\n" +
-		"		foo(\n" +
-		"			new int[]{0, 0},\n" +
-		"			new int[]{0, 0}\n" +
-		"		);\n" +
-		"	#\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" +
-		"  static int B = foo(new int[]{0, 0}, new int[]{0, 0});\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"  static int foo(int[] a, int[] b) {\n" +
-		"  }\n" +
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" +
-		"  static int B = foo(new int[]{0, 0}, new int[]{0, 0});\n" +
-		"  public X() {\n" +
-		"    super();\n" +
-		"  }\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"  static int foo(int[] a, int[] b) {\n" +
-		"    return 0;\n" +
-		"  }\n" +
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" +
-		"  static int B;\n" +
-		"  {\n" +
-		"  }\n" +
-		"  {\n" +
-		"  }\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"  static int foo(int[] a, int[] b) {\n" +
-		"  }\n" +
-		"}\n";
-	
-	String testName = "";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test106() {
-	String s = 
-		"public class X {\n" +
-		"  clon\n" +  
-		"  foo();\n" +  
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  clon foo();\n" +  
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" +
-		"  public X() {\n" +
-		"    super();\n" +
-		"  }\n" +
-		"  clon foo();\n" +  
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietPlusBodyUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"  clon foo();\n" +  
-		"}\n";
-	
-	String testName = "";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test107() {
-	String s = 
-		"public class X {\n" +
-		"	int[] a = new int[]{0, 0}, b = new int[]{0, 0};\n" +
-		"	#\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" +
-		"  int[] a = new int[]{0, 0};\n" +
-		"  int[] b = new int[]{0, 0};\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" +
-		"  int[] a = new int[]{0, 0};\n" +
-		"  int[] b = new int[]{0, 0};\n" +
-		"  public X() {\n" +
-		"    super();\n" +
-		"  }\n" +
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" +
-		"  int[] a;\n" +
-		"  int[] b;\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-	
-	String testName = "";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test108() {
-	String s = 
-		"public class X {\n" +
-		"	int a = new int[]{0, 0}, b = new int[]{0, 0};\n" +
-		"	#\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" +
-		"  int a = new int[]{0, 0};\n" +
-		"  int b = new int[]{0, 0};\n" +
-		"  public X() {\n" +
-		"  }\n" +
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" +
-		"  int a = new int[]{0, 0};\n" +
-		"  int b = new int[]{0, 0};\n" +
-		"  public X() {\n" +
-		"    super();\n" +
-		"  }\n" +
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" + 
-		"  int a;\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test109() {
-	String s = 
-		"public class X {\n" +
-		"	Object o = new Object() {\n" +
-		"		void foo() {\n" +
-		"			try {\n" +
-		"			} catch(Exception e) {\n" +
-		"				e.\n" +
-		"			}\n" +
-		"		}\n" +
-		"	};\n" +
-		"}";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  Object o;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  Object o;\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" + 
-		"  Object o;\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test110() {
-	String s = 
-		"public class X {\n" +
-		"	void bar(){\n" +
-		"		#\n" +
-		"		class Inner {\n" +
-		"			void foo() {\n" +
-		"				try {\n" +
-		"				} catch(Exception e) {\n" +
-		"					e.\n" +
-		"				}\n" +
-		"			}\n" +
-		"		}\n" +
-		"	}\n" +
-		"}";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"    class Inner {\n" + 
-		"      Inner() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        try \n" + 
-		"          {\n" + 
-		"          }\n" + 
-		"        catch (Exception e)           {\n" + 
-		"          }\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String testName = "";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-public void test111() {
-	String s = 
-		"public class X {\n" +
-		"	void bar(){\n" +
-		"	}\n" +
-		"	}\n" +
-		"	void foo() {\n" +
-		"	}\n" +
-		"}";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" +
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" +
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=100797
-public void test112() {
-	String s = 
-		"public class X {\n"+
-		"  public void foo()\n"+
-		"    try {			\n"+
-		"    }  catch (Exception e) {\n"+
- 		"     bar(\"blabla\");\n"+
-		"      throw new Exception(prefix  \"bloblo\");\n"+
-		"    }\n"+
-		"  }\n"+
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"      }\n" + 
-		"    catch (Exception e)       {\n" + 
-		"        bar(\"blabla\");\n" + 
-		"        throw new Exception(prefix);\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=111618
-public void test113() {
-	String s = 
-		"public class X {\n"+
-		"  public void foo(Object[] tab)\n"+
-		"    for (Object o : tab) {\n"+
-		"		o.toString();\n"+
-		"	 }\n"+
-		"  }\n"+
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo(Object[] tab) {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public void foo(Object[] tab) {\n" + 
-		"    for (Object o : tab) \n" + 
-		"      {\n" + 
-		"        o.toString();\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129142
-public void test114() {
-	String s = 
-		"public class X {\n"+
-		"  public void foo() {\n"+
-		"    int int;\n"+
-		"  }\n"+
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    int $missing$;\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=80339
-public void test115() {
-	String s = 
-		"public interface Test {\n"+
-		"  public void myMethod()\n"+
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=80339
-public void test116() {
-	String s = 
-		"public interface Test {\n"+
-		"  public void myMethod()\n"+
-		"    System.out.println();\n"+
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=154811
-public void test117() {
-	String s = 
-		"public class X {\n" + 
-		"	void foo1() {\n" + 
-		"		class Y  {\n" + 
-		"		}\n" + 
-		"		void foo2() {\n" + 
-		"		}\n" + 
-		"		class Z<T> { \n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"} \n";
-		
-	String expectedDietUnitToString = null;
-	String expectedDietPlusBodyUnitToString = null;
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = null;
-	String expectedFullUnitToString = null;
-	String expectedCompletionDietUnitToString = null;
-	
-	
-	if(COMPLIANCE_1_3.equals(this.complianceLevel) || 
-			COMPLIANCE_1_4.equals(this.complianceLevel)) {
-		
-		expectedDietUnitToString = 
-			"public class X {\n" + 
-			"  public X() {\n" + 
-			"  }\n" + 
-			"  void foo1() {\n" + 
-			"  }\n" + 
-			"}\n";
-
-		expectedDietPlusBodyUnitToString = 
-			"public class X {\n" + 
-			"  public X() {\n" + 
-			"    super();\n" + 
-			"  }\n" + 
-			"  void foo1() {\n" + 
-			"  }\n" + 
-			"}\n";
-		
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-			"public class X {\n" + 
-			"  public X() {\n" + 
-			"    super();\n" + 
-			"  }\n" + 
-			"  void foo1() {\n" + 
-			"    class Y {\n" + 
-			"      Y() {\n" + 
-			"        super();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    class Z<T> {\n" + 
-			"      Z() {\n" + 
-			"        super();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n";
-		
-		expectedFullUnitToString =
-			"public class X {\n" + 
-			"  class Z<T> {\n" + 
-			"    Z() {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  public X() {\n" + 
-			"  }\n" + 
-			"  void foo1() {\n" + 
-			"  }\n" + 
-			"  void foo2() {\n" + 
-			"  }\n" + 
-			"}\n";
-		
-		expectedCompletionDietUnitToString = 
-			expectedDietUnitToString;
-	} else if(this.complianceLevel.compareTo(COMPLIANCE_1_5) >= 0) {
-		
-		expectedDietUnitToString = 
-			"public class X {\n" + 
-			"  public X() {\n" + 
-			"  }\n" + 
-			"  void foo1() {\n" + 
-			"  }\n" + 
-			"}\n";
-
-		expectedDietPlusBodyUnitToString = 
-			"public class X {\n" + 
-			"  public X() {\n" + 
-			"    super();\n" + 
-			"  }\n" + 
-			"  void foo1() {\n" + 
-			"  }\n" + 
-			"}\n";
-		
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-			"public class X {\n" + 
-			"  public X() {\n" + 
-			"    super();\n" + 
-			"  }\n" + 
-			"  void foo1() {\n" + 
-			"    class Y {\n" + 
-			"      Y() {\n" + 
-			"        super();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    new foo2() {\n" + 
-			"    };\n" + 
-			"    class Z<T> {\n" + 
-			"      Z() {\n" + 
-			"        super();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n";
-		
-		expectedFullUnitToString =
-			"public class X {\n" + 
-			"  class Z<T> {\n" + 
-			"    Z() {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  public X() {\n" + 
-			"  }\n" + 
-			"  void foo1() {\n" + 
-			"  }\n" + 
-			"  void foo2() {\n" + 
-			"  }\n" + 
-			"}\n";
-		
-		expectedCompletionDietUnitToString = 
-			expectedDietUnitToString;
-	}
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=154811
-public void test117_2() {
-	String s = 
-		"public class X {\n" + 
-		"	void foo1() {\n" + 
-		"		class Y  {\n" + 
-		"		}\n" + 
-		"		void foo2() {\n" + 
-		"		}\n" + 
-		"		class Z { \n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"} \n";
-		
-	String expectedDietUnitToString = null;
-	String expectedDietPlusBodyUnitToString = null;
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = null;
-	String expectedFullUnitToString = null;
-	String expectedCompletionDietUnitToString = null;
-	
-	expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo1() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo1() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo1() {\n" + 
-		"    class Y {\n" + 
-		"      Y() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    new foo2() {\n" + 
-		"    };\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	expectedFullUnitToString =
-		"public class X {\n" + 
-		"  class Z {\n" + 
-		"    Z() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo1() {\n" + 
-		"  }\n" + 
-		"  void foo2() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=162056
-public void test118() {
-	String s = 
-		"interface Irrelevant {}\n"+
-		"interface I {\n"+
-		"	Object foo(Number n);\n"+
-		"}\n"+
-		"interface J extends I {\n"+
-		"	String foo(Number n);\n"+
-		"}\n"+
-		"interface K {\n"+
-		"	Object foo(Number n);\n"+
-		"}\n"+
-		"public class  {\n"+
-		"	void foo() {\n"+
-		"\n"+
-		"	}\n"+
-		"} \n";
-		
-	String expectedDietUnitToString = 
-		"interface Irrelevant {\n" + 
-		"}\n" + 
-		"interface I {\n" + 
-		"  Object foo(Number n);\n" + 
-		"}\n" + 
-		"interface J extends I {\n" + 
-		"  String foo(Number n);\n" + 
-		"}\n" + 
-		"interface K {\n" + 
-		"  Object foo(Number n);\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"interface Irrelevant {\n" + 
-		"}\n" + 
-		"interface I {\n" + 
-		"  Object foo(Number n);\n" + 
-		"}\n" + 
-		"interface J extends I {\n" + 
-		"  String foo(Number n);\n" + 
-		"}\n" + 
-		"interface K {\n" + 
-		"  Object foo(Number n);\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		expectedDietPlusBodyUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=162056
-public void test119() {
-	String s = 
-		"interface Irrelevant {}\n"+
-		"interface I {\n"+
-		"	Object foo(Number n);\n"+
-		"}\n"+
-		"interface J extends I {\n"+
-		"	String foo(Number n);\n"+
-		"}\n"+
-		"abstract class K {\n"+
-		"	abstract Object foo(Number n);\n"+
-		"}\n"+
-		"public class  {\n"+
-		"	void foo() {\n"+
-		"\n"+
-		"	}\n"+
-		"} \n";
-		
-	String expectedDietUnitToString = 
-		"interface Irrelevant {\n" + 
-		"}\n" + 
-		"interface I {\n" + 
-		"  Object foo(Number n);\n" + 
-		"}\n" + 
-		"interface J extends I {\n" + 
-		"  String foo(Number n);\n" + 
-		"}\n" + 
-		"abstract class K {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  K() {\n" + 
-		"  }\n" + 
-		"  abstract Object foo(Number n);\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"interface Irrelevant {\n" + 
-		"}\n" + 
-		"interface I {\n" + 
-		"  Object foo(Number n);\n" + 
-		"}\n" + 
-		"interface J extends I {\n" + 
-		"  String foo(Number n);\n" + 
-		"}\n" + 
-		"abstract class K {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  K() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  abstract Object foo(Number n);\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		expectedDietPlusBodyUnitToString;
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140980
-public void test120() {
-	String s = 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    #\n" + 
-		"    try {\n" + 
-		"      System.out.println(); \n" + 
-		"    } catch (Exception e) {\n" + 
-		"    }\n" + 
-		"    class Z {}\n" + 
-		" }\n" + 
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    catch (Exception e)       {\n" + 
-		"      }\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140980
-public void test121() {
-	String s = 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    #\n" + 
-		"    try {\n" + 
-		"      System.out.println(); \n" + 
-		"    } catch (Exception e) {\n" + 
-		"      class Z {}\n" + 
-		"    }\n" + 
-		" }\n" + 
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    catch (Exception e)       {\n" + 
-		"        class Z {\n" + 
-		"          Z() {\n" + 
-		"            super();\n" + 
-		"          }\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140980
-public void test122() {
-	String s = 
-		"public class Test\n" + 
-		"{\n" + 
-		"  public void func1()\n" + 
-		"  {\n" + 
-		"    try\n" + 
-		"    {\n" + 
-		"    catch ( Exception exception)\n" + 
-		"    {\n" + 
-		"      exception.printStackTrace();\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"\n" + 
-		"  class Clazz\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"\n";
-		
-	String expectedDietUnitToString = 
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  public void func1() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public void func1() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public void func1() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"      }\n" + 
-		"    catch (Exception exception)       {\n" + 
-		"        exception.printStackTrace();\n" + 
-		"      }\n" + 
-		"    class Clazz {\n" + 
-		"      Clazz() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140980
-public void test123() {
-	String s = 
-		"public class SwitchBug {\n" + 
-		"       void aMethod() {\n" + 
-		"               int i=0;\n" + 
-		"               try {\n" + 
-		"                        switch( i ) {\n" + 
-		"                } catch( Exception ex ) {\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"        class Nested {\n" + 
-		"        }\n" + 
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class SwitchBug {\n" + 
-		"  public SwitchBug() {\n" + 
-		"  }\n" + 
-		"  void aMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class SwitchBug {\n" + 
-		"  public SwitchBug() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void aMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-		"public class SwitchBug {\n" + 
-		"  public SwitchBug() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void aMethod() {\n" + 
-		"    int i = 0;\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        switch (i) {\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"    catch (Exception ex)       {\n" + 
-		"      }\n" + 
-		"    class Nested {\n" + 
-		"      Nested() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString = expectedDietUnitToString;
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test foreach toString";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=157570
-public void test124() {
-	String s = 
-		"public class Test {\n" + 
-		"	void aMethod() {\n" + 
-		"		public static void m1()\n" + 
-		"		{\n" + 
-		"			int a;\n" + 
-		"			int b;\n" + 
-		"		}\n" + 
-		"		public static void m2()\n" + 
-		"		{\n" + 
-		"			int c;\n" + 
-		"			int d;\n" + 
-		"		}\n" +
-		"	}\n" + 
-		"}\n";
-		
-	String expectedDietUnitToString = 
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  void aMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyUnitToString = 
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void aMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietPlusBodyPlusStatementsRecoveryUnitToString = null;
-	if(COMPLIANCE_1_3.equals(this.complianceLevel) || 
-			COMPLIANCE_1_4.equals(this.complianceLevel)) {
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-			"public class Test {\n" + 
-			"  public Test() {\n" + 
-			"    super();\n" + 
-			"  }\n" + 
-			"  void aMethod() {\n" + 
-			"    m1();\n" + 
-			"    {\n" + 
-			"      int a;\n" + 
-			"      int b;\n" + 
-			"    }\n" + 
-			"    m2();\n" + 
-			"    {\n" + 
-			"      int c;\n" + 
-			"      int d;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n";
-	} else {
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString =
-			"public class Test {\n" + 
-			"  public Test() {\n" + 
-			"    super();\n" + 
-			"  }\n" + 
-			"  void aMethod() {\n" + 
-			"    public static @m1() enum $missing$ {\n" + 
-			"      public $missing$() {\n" + 
-			"        super();\n" + 
-			"      }\n" + 
-			"      <clinit>() {\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n";
-	}
-	
-	String expectedFullUnitToString =
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  void aMethod() {\n" + 
-		"  }\n" + 
-		"  public static void m1() {\n" + 
-		"  }\n" + 
-		"  public static void m2() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedCompletionDietUnitToString = 
-		expectedDietUnitToString;
-	
-	String testName = "test";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyPlusStatementsRecoveryUnitToString,		
-		expectedFullUnitToString,
-		expectedCompletionDietUnitToString, testName);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DualParseSyntaxErrorTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DualParseSyntaxErrorTest.java
deleted file mode 100644
index 3e75351..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/DualParseSyntaxErrorTest.java
+++ /dev/null
@@ -1,359 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Locale;
-
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblem;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-
-public class DualParseSyntaxErrorTest extends AbstractCompilerTest {
-	public static boolean optimizeStringLiterals = false;
-	public static long sourceLevel = ClassFileConstants.JDK1_3; //$NON-NLS-1$
-	
-public DualParseSyntaxErrorTest(String testName){
-	super(testName);
-}
-public void checkParse(
-	char[] source, 
-	String expectedSyntaxErrorDiagnosis,
-	String testName) {
-
-	Parser parser = 
-		new Parser(
-			new ProblemReporter(
-				DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-				new CompilerOptions(getCompilerOptions()), 
-				new DefaultProblemFactory(Locale.getDefault())),
-			optimizeStringLiterals);
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-	CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-	
-	CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-	if (computedUnit.types != null) {
-		for (int i = computedUnit.types.length; --i >= 0;){
-			computedUnit.types[i].parseMethod(parser, computedUnit);
-		}
-	}
-
-	StringBuffer buffer = new StringBuffer(100);
-	if (compilationResult.hasProblems() || compilationResult.hasTasks()) {
-		CategorizedProblem[] problems = compilationResult.getAllProblems();
-		int count = problems.length;
-		int problemCount = 0;
-		char[] unitSource = compilationResult.compilationUnit.getContents();
-		for (int i = 0; i < count; i++) { 
-			if (problems[i] != null) {
-				if (problemCount == 0)
-					buffer.append("----------\n");
-				problemCount++;
-				buffer.append(problemCount + (problems[i].isError() ? ". ERROR" : ". WARNING"));
-				buffer.append(" in " + new String(problems[i].getOriginatingFileName()).replace('/', '\\'));
-				try {
-					buffer.append(((DefaultProblem)problems[i]).errorReportSource(unitSource));
-					buffer.append("\n");
-					buffer.append(problems[i].getMessage());
-					buffer.append("\n");
-				} catch (Exception e) {
-					StringWriter stringWriter = new StringWriter();
-					e.printStackTrace(new PrintWriter(stringWriter));
-					buffer.append(stringWriter.getBuffer());
-				}
-				buffer.append("----------\n");
-			}
-		}
-	}
-	String computedSyntaxErrorDiagnosis = buffer.toString();
-	if(!Util.convertToIndependantLineDelimiter(expectedSyntaxErrorDiagnosis)
-			.equals(Util.convertToIndependantLineDelimiter(computedSyntaxErrorDiagnosis))) {
- 		System.out.println(Util.displayString(computedSyntaxErrorDiagnosis));
-	}
-	assertEquals(
-		"Invalid syntax error diagnosis" + testName,
-		Util.convertToIndependantLineDelimiter(expectedSyntaxErrorDiagnosis),
-		Util.convertToIndependantLineDelimiter(computedSyntaxErrorDiagnosis));
-}
-
-public void test01() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo() {   							\n"+
-		"		fX = 0;  							\n"+
-		"	}			  							\n"+
-		"	public void bar() {						\n"+
-		"	}										\n"+
-		"}											\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"";
-
-	String testName = "<test1>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test02() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo() {   							\n"+
-		"		fX = 0;  							\n"+
-		"	public void bar() {						\n"+
-		"	}										\n"+
-		"}											\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test2> (at line 4)\n" + 
-		"	fX = 0;  							\n" + 
-		"	      ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n";
-
-	String testName = "<test2>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test03() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo()   							\n"+
-		"		fX = 0;  							\n"+
-		"	public void bar() {						\n"+
-		"	}										\n"+
-		"}											\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test3> (at line 3)\n" + 
-		"	void foo()   							\n" + 
-		"	         ^\n" + 
-		"Syntax error on token \")\", { expected after this token\n" + 
-		"----------\n" + 
-		"2. ERROR in <test3> (at line 4)\n" + 
-		"	fX = 0;  							\n" + 
-		"	      ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n";
-
-	String testName = "<test3>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test04() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo()   							\n"+
-		"		fX = 0;  							\n"+
-		"	} 			  							\n"+
-		"	public void bar() {						\n"+
-		"	}										\n"+
-		"}											\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test4> (at line 3)\n" + 
-		"	void foo()   							\n" + 
-		"	         ^\n" + 
-		"Syntax error on token \")\", { expected after this token\n" + 
-		"----------\n";
-
-	String testName = "<test4>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test05() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo() {  							\n"+
-		"		if(true){  							\n"+
-		"	} 			  							\n"+
-		"	public void bar() {						\n"+
-		"	}										\n"+
-		"}											\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test5> (at line 4)\n" + 
-		"	if(true){  							\n" + 
-		"	        ^\n" + 
-		"Syntax error, insert \"}\" to complete Statement\n" + 
-		"----------\n";
-
-	String testName = "<test5>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test06() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo() {  							\n"+
-		"		if(true){  							\n"+
-		"	} 			  							\n"+
-		"	//comment								\n"+
-		"	public void bar() {						\n"+
-		"	}										\n"+
-		"}											\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test6> (at line 4)\n" + 
-		"	if(true){  							\n" + 
-		"	        ^\n" + 
-		"Syntax error, insert \"}\" to complete Statement\n" + 
-		"----------\n";
-
-	String testName = "<test6>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test07() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo() {  							\n"+
-		"		if(true){  							\n"+
-		"	} 			  							\n"+
-		"	System.out.println();					\n"+
-		"	public void bar() {						\n"+
-		"	}										\n"+
-		"}											\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test7> (at line 6)\n" + 
-		"	System.out.println();					\n" + 
-		"	                    ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n";
-
-	String testName = "<test7>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test08() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo() {  							\n"+
-		"		if(true){  							\n"+
-		"	} 			  							\n"+
-		"	public int bar;							\n"+
-		"}											\n";  	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test8> (at line 4)\n" + 
-		"	if(true){  							\n" + 
-		"	        ^\n" + 
-		"Syntax error, insert \"}\" to complete Statement\n" + 
-		"----------\n";
-
-	String testName = "<test8>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test09() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo() {  							\n"+
-		"		if(true){  							\n"+
-		"	} 			  							\n"+
-		"	//comment	  							\n"+
-		"	public int bar;							\n"+
-		"}											\n";  	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test9> (at line 4)\n" + 
-		"	if(true){  							\n" + 
-		"	        ^\n" + 
-		"Syntax error, insert \"}\" to complete Statement\n" + 
-		"----------\n";
-
-	String testName = "<test9>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-public void test10() {
-
-	String s = 
-		"public class X {							\n"+
-		"	int fX;         						\n"+
-		"	void foo() {  							\n"+
-		"		if(true){  							\n"+
-		"	} 			  							\n"+
-		"	System.out.println();					\n"+
-		"	public int bar;							\n"+
-		"}											\n";  	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" + 
-		"1. ERROR in <test10> (at line 6)\n" + 
-		"	System.out.println();					\n" + 
-		"	                    ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n";
-
-	String testName = "<test10>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ExplicitConstructorInvocationCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ExplicitConstructorInvocationCompletionTest.java
deleted file mode 100644
index 174f94f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ExplicitConstructorInvocationCompletionTest.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be an ExplicitConstructorInvocation
- * or inside an ExplicitConstructorInvocation
- */
-public class ExplicitConstructorInvocationCompletionTest extends AbstractCompletionTest {
-public ExplicitConstructorInvocationCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(ExplicitConstructorInvocationCompletionTest.class);
-}
-/*
- * Completion on a qualified 'super' constructor invocation.
- * 
- * ie. ExplicitConstructorInvocation ::= Primary '.' 'super' '(' ArgumentListopt ')' ';'
- */
-public void testPrimarySuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"		InnerBar(Bar x) {						\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar(Bar x) {					\n" +
-		"			primary().super(1, 2, i);			\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"super(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnExplicitConstructorCall:primary().super(1, 2)>;",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    InnerBar(Bar x) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar(Bar x) {\n" + 
-		"      <CompleteOnExplicitConstructorCall:primary().super(1, 2)>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on explicit constructor invocation primary super>"
-	);
-}
-/*
- * Completion on a qualified 'this' constructor invocation.
- * 
- * ie. ExplicitConstructorInvocation ::= Primary '.' 'this' '(' ArgumentListopt ')' ';'
- */
-public void testPrimaryThis() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"		InnerBar(Bar x) {						\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar(Bar x) {					\n" +
-		"			primary().this(1, 2, i);			\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"this(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnExplicitConstructorCall:primary().this(1, 2)>;",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    InnerBar(Bar x) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar(Bar x) {\n" + 
-		"      <CompleteOnExplicitConstructorCall:primary().this(1, 2)>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on explicit constructor invocation primary this>"
-	);
-}
-/*
- * Completion on a 'super' constructor invocation.
- * 
- * ie. ExplicitConstructorInvocation ::= 'super' '(' ArgumentListopt ')' ';'
- */
-public void testSuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	Bar() {									\n" +
-		"		super(1, 2, i);						\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"super(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnExplicitConstructorCall:super(1, 2)>;",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"    <CompleteOnExplicitConstructorCall:super(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<completion on 'super' constructor invocation>"
-	);
-}
-/*
- * Completion on a 'this' constructor invocation.
- * 
- * ie. ExplicitConstructorInvocation ::= 'this' '(' ArgumentListopt ')' ';'
- */
-public void testThis() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	Bar() {									\n" +
-		"		this(1, 2, i);						\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"this(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnExplicitConstructorCall:this(1, 2)>;",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"    <CompleteOnExplicitConstructorCall:this(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<completion on 'this' constructor invocation>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= Name '.' 'super' '(' <ArgumentListopt> ')' ';'
- */
-public void testWrapperNameSuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"		InnerBar(Bar x) {						\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar() {							\n" +
-		"			Bar.super(fred().xyz);				\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"fred().x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    InnerBar(Bar x) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar() {\n" + 
-		"      super(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on wrapper name super>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= Name '.' 'this' '(' <ArgumentListopt> ')' ';'  
- */
-public void testWrapperNameThis() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"		InnerBar(Bar x) {						\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar() {							\n" +
-		"			Bar.this(fred().xyz);				\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"fred().x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    InnerBar(Bar x) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar() {\n" + 
-		"      this(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on wrapper name this>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= Primary '.' 'this' '(' <ArgumentListopt> ')' ';' 
- */
-public void testWrapperPrimarySuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"		InnerBar(Bar x) {						\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar(Bar x) {					\n" +
-		"			primary().super(fred().xyz);			\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"fred().x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    InnerBar(Bar x) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar(Bar x) {\n" + 
-		"      super(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on wrapper primary super>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= 'super' '(' <ArgumentListopt> ')' ';'   
- */
-public void testWrapperSuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	Bar() {										\n" +
-		"		super(fred().xyz);						\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"    super(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on wrapper super>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= 'this' '(' <ArgumentListopt> ')' ';'   
- */
-public void testWrapperThis() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	Bar() {										\n" +
-		"		this(fred().xyz);							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"    this(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on wrapper this>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ExplicitConstructorInvocationSelectionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ExplicitConstructorInvocationSelectionTest.java
deleted file mode 100644
index 541b7f2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ExplicitConstructorInvocationSelectionTest.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-/**
- * Selection is expected to be wrapped with an explicit constructor invocation.
- */
-public class ExplicitConstructorInvocationSelectionTest extends AbstractSelectionTest {
-public ExplicitConstructorInvocationSelectionTest(String testName) {
-	super(testName);
-}
-/*
- * ExplicitConstructorInvocation ::= Name '.' 'super' '(' <ArgumentListopt> ')' ';'  
- */
-public void testNameSuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"		InnerBar(Bar x) {						\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar() {							\n" +
-		"			Bar.super(fred());					\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// selectionStartBehind:
-		"Bar.super(",
-		// selectionEndBehind:
-		"fred",
-		// expectedSelectionNodeToString:
-		"<SelectOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    InnerBar(Bar x) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar() {\n" + 
-		"      super(<SelectOnMessageSend:fred()>);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedSelectionIdentifier:
-		"fred",
-		// expectedReplacedSource:
-		"fred()",
-		// testName:
-		"<select on explicit constructor invocation name super>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= Name '.' 'this' '(' <ArgumentListopt> ')' ';'  
- */
-public void testNameThis() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"		InnerBar(Bar x) {						\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar() {							\n" +
-		"			Bar.this(fred());					\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// selectionStartBehind:
-		"Bar.this(",
-		// selectionEndBehind:
-		"fred",
-		// expectedSelectionNodeToString:
-		"<SelectOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    InnerBar(Bar x) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar() {\n" + 
-		"      this(<SelectOnMessageSend:fred()>);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedSelectionIdentifier:
-		"fred",
-		// expectedReplacedSource:
-		"fred()",
-		// testName:
-		"<select on explicit constructor invocation name this>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= Primary '.' 'this' '(' <ArgumentListopt> ')' ';' 
- */
-public void testPrimarySuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"		InnerBar(Bar x) {						\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar(Bar x) {					\n" +
-		"			primary().super(fred());			\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// selectionStartBehind:
-		"super(",
-		// selectionEndBehind:
-		"fred",
-		// expectedSelectionNodeToString:
-		"<SelectOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    InnerBar(Bar x) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar(Bar x) {\n" + 
-		"      super(<SelectOnMessageSend:fred()>);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedSelectionIdentifier:
-		"fred",
-		// expectedReplacedSource:
-		"fred()",
-		// testName:
-		"<select on explicit constructor invocation primary super>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= 'super' '(' <ArgumentListopt> ')' ';'  
- */
-public void testSuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	Bar() {										\n" +
-		"		super(fred());							\n" +
-		"	}											\n" +
-		"}												\n",
-		// selectionStartBehind:
-		"super(",
-		// selectionEndBehind:
-		"fred",
-		// expectedSelectionNodeToString:
-		"<SelectOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"    super(<SelectOnMessageSend:fred()>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedSelectionIdentifier:
-		"fred",
-		// expectedReplacedSource:
-		"fred()",
-		// testName:
-		"<select on explicit constructor invocation super>"
-	);
-}
-/*
- * ExplicitConstructorInvocation ::= 'this' '(' <ArgumentListopt> ')' ';' 
- */
-public void testThis() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	Bar() {										\n" +
-		"		this(fred());							\n" +
-		"	}											\n" +
-		"}												\n",
-		// selectionStartBehind:
-		"this(",
-		// selectionEndBehind:
-		"fred",
-		// expectedSelectionNodeToString:
-		"<SelectOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"    this(<SelectOnMessageSend:fred()>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedSelectionIdentifier:
-		"fred",
-		// expectedReplacedSource:
-		"fred()",
-		// testName:
-		"<select on explicit constructor invocation this>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/FieldAccessCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/FieldAccessCompletionTest.java
deleted file mode 100644
index f02fb25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/FieldAccessCompletionTest.java
+++ /dev/null
@@ -1,2424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be a FieldAccess.
- */
-public class FieldAccessCompletionTest extends AbstractCompletionTest {
-public FieldAccessCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(FieldAccessCompletionTest.class);
-}
-/*
- * AdditiveExpression ::= AdditiveExpression '-' <MultiplicativeExpression>  
- */
-public void testAdditiveExpressionMinus() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {										\n" +
-		"	int foo() {										\n" +
-		"		return 1 - fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-			// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    (1 - <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on additive expression minus>"
-	);
-}
-/*
- * AdditiveExpression ::= AdditiveExpression '+' <MultiplicativeExpression> 
- */
-public void testAdditiveExpressionPlus() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {										\n" +
-		"	int foo() {										\n" +
-		"		return 1 + fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-			// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    (1 + <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on additive expression plus>"
-	);
-}
-/*
- * AndExpression ::= AndExpression '&' <EqualityExpression>
- */
-public void testAndExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return isTrue & fred().xyz;					\n" +
-		"	}												\n" +
-		"}													\n",
-			// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (isTrue & <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// expectedReplacedSource:
-		"<complete on and expression>"
-	);
-}
-/*
- * ArgumentList ::= ArgumentList ',' <Expression> 
- */
-public void testArgumentList() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		bizz(1, \"2\", fred().xyz);				\n" +
-		"	}											\n" +
-		"}												\n",
-			// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    bizz(1, \"2\", <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on argument list>"
-	);
-}
-/*
- * ArrayAccess ::= Name '[' <Expression> ']' 
- */
-public void testArrayAccess() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	int foo() {									\n" +
-		"		return v[fred().xyz];						\n" +
-		"	}											\n" +
-		"}												\n",
-			// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    v[<CompleteOnMemberAccess:fred().x>];\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on array access>"
-	);
-}
-/*
- * ArrayAccess ::= PrimaryNoNewArray '[' <Expression> ']' 
- */
-public void testArrayAccessPrimaryNoNewArray() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	int foo() {									\n" +
-		"		return buzz()[fred().xyz];				\n" +
-		"	}											\n" +
-		"}												\n",
-			// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    buzz()[<CompleteOnMemberAccess:fred().x>];\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on array access primary no new array>"
-	);
-}
-/*
- * ArrayInitializer ::= '{' <VariableInitializers> '}' 
- */
-public void testArrayInitializer() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {											\n" +
-		"	void foo() {										\n" +
-		"		int[] i = new int[] {fred().xyz}				\n" +
-		"	}													\n" +
-		"}														\n",
-			// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int[] i = new int[]{<CompleteOnMemberAccess:fred().x>};\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on array initializer>"
-	);
-}
-/*
- * ArrayInitializer ::= '{' <VariableInitializers> , '}' 
- */
-public void testArrayInitializerComma() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {											\n" +
-		"	void foo() {										\n" +
-		"		int[] i = new int[] {fred().xyz,}					\n" +
-		"	}													\n" +
-		"}														\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int[] i = new int[]{<CompleteOnMemberAccess:fred().x>};\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on array initializer comma>"
-	);
-}
-/*
- * Assignment ::= LeftHandSide AssignmentOperator <AssignmentExpression> 
- */
-public void testAssignment() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {											\n" +
-		"	void foo() {										\n" +
-		"		i = fred().xyz;									\n" +
-		"	}													\n" +
-		"}														\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    i = <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on assignment>"
-	);
-}
-/*
- * Block ::= OpenBlock '{' <BlockStatementsopt> '}' 
- */
-public void testBlock() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		try {									\n" +
-		"			fred().xyz = new Foo();				\n" +
-		"		} catch (Exception e) {}				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      <CompleteOnMemberAccess:fred().x>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on block>"
-	);
-}
-/*
- * BlockStatements ::= BlockStatements <BlockStatement>
- */
-public void testBlockStatements() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		int i = 0;								\n" +
-		"		fred().xyz = new Foo();					\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on block statements>"
-	);
-}
-/*
- * ConstructorBody ::= NestedMethod '{' ExplicitConstructorInvocation <BlockStatements> '}'   
- */
-public void testBlockStatementsInConstructorBody() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	Bar() {										\n" +
-		"		super();									\n" +
-		"		fred().xyz = new Foo();		\n" +
-		"	}													\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"    super();\n" +
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on block statements in constructor body>"
-	);
-}
-/*
- * BlockStatements ::= BlockStatements <BlockStatement>
- *
- * in a non static initializer.
- */
-public void testBlockStatementsInInitializer() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	{											\n" +
-		"		int i = 0;								\n" +
-		"		fred().xyz = new Foo();					\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  {\n" + 
-		"    int i;\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on block statements in initializer>"
-	);
-}
-/*
- * BlockStatements ::= BlockStatements <BlockStatement>
- *
- * in a static initializer.
- */
-public void testBlockStatementsInStaticInitializer() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static {									\n" +
-		"		int i = 0;								\n" +
-		"		fred().xyz = new Foo();					\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  static {\n" + 
-		"    int i;\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on block statements in static initializer>"
-	);
-}
-/*
- * CastExpression ::= PushLPAREN <Expression> PushRPAREN UnaryExpressionNotPlusMinus
- *
- * NB: Valid syntaxically but not semantically
- */
-public void testCastExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	Bar foo() {									\n" +
-		"		return (fred().xyz)buzz();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  Bar foo() {\n" + 
-		"    return <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on cast expression>"
-	);
-}
-/*
- * CastExpression ::= PushLPAREN PrimitiveType Dimsopt PushRPAREN <UnaryExpression>
- * or
- * CastExpression ::= PushLPAREN Name Dims PushRPAREN <UnaryExpressionNotPlusMinus>
- * or
- * CastExpression ::= PushLPAREN Expression PushRPAREN <UnaryExpressionNotPlusMinus> 
- */
-public void testCastExpressionUnaryExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	Bar foo() {									\n" +
-		"		return (Bar)(fred().xyz);				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  Bar foo() {\n" + 
-		"    (Bar) <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on cast expression unary expression>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= 'new' ClassType '(' <ArgumentListopt> ')' ClassBodyopt 
- */
-public void testClassInstanceCreationExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		new Bar(fred().xyz);						\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new Bar(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on class instance creation expression>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt  
- */
-public void testClassInstanceCreationExpressionName() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		Bar.new Bar(fred().xyz);					\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    Bar.new Bar(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on class instance creation expression name>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= Primary '.' 'new' SimpleName '(' <ArgumentListopt> ')' ClassBodyopt 
- */
-public void testClassInstanceCreationExpressionPrimary() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		bizz().new Bar(fred().xyz);				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    bizz().new Bar(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on class instance creation expression primary>"
-	);
-}
-/*
- * ConditionalAndExpression ::= ConditionalAndExpression '&&' <InclusiveOrExpression> 
- */
-public void testConditionalAndExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return isTrue && fred().xyz;					\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (isTrue && <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on conditional and expression>"
-	);
-}
-/*
- * ConditionalExpression ::= ConditionalOrExpression '?' <Expression> ':' ConditionalExpression
- */
-public void testConditionalExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	Bar foo() {										\n" +
-		"		return fred().xyz == null ? null : new Bar();	\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  Bar foo() {\n" + 
-		"    return <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on conditional expression>"
-	);
-}
-/*
- * ConditionalExpression ::= ConditionalOrExpression '?' Expression ':' <ConditionalExpression> 
- */
-public void testConditionalExpressionConditionalExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return isTrue ? true : fred().xyz;			\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (isTrue ? true : <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on conditional expression conditional expression>"
-	);
-}
-/*
- * ConditionalOrExpression ::= ConditionalOrExpression '||' <ConditionalAndExpression> 
- */
-public void testConditionalOrExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return isTrue || fred().xyz;					\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (isTrue || <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on conditional or expression>"
-	);
-}
-/*
- * ConstructorBody ::= NestedMethod '{' <BlockStatementsopt> '}' 
- */
-public void testConstructorBody() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	Bar() {										\n" +
-		"		fred().xyz = new Foo();					\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"    super();\n" +
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on constructor body>"
-	);
-}
-/*
- * DimWithOrWithOutExpr ::= '[' <Expression> ']' 
- */
-public void testDimWithOrWithOutExpr() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		int[] v = new int[fred().xyz];			\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int[] v = new int[<CompleteOnMemberAccess:fred().x>];\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on dim with or without expr>"
-	);
-}
-/*
- * DoStatement ::= 'do' Statement 'while' '(' <Expression> ')' ';'  
- */
-public void testDoExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		do										\n" +
-		"			System.out.println();				\n" +
-		"		while (fred().xyz);						\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on do expression>"
-	);
-}
-/*
- * DoStatement ::= 'do' <Statement> 'while' '(' Expression ')' ';'  
- */
-public void testDoStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		do										\n" +
-		"			fred().xyz = new Foo();				\n" +
-		"		while (true);							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on do statement>"
-	);
-}
-/*
- * EqualityExpression ::= EqualityExpression '==' <RelationalExpression> 
- */
-public void testEqualityExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return 1 == fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (1 == <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on equality expression>"
-	);
-}
-/*
- * EqualityExpression ::= EqualityExpression '!=' <RelationalExpression> 
- */
-public void testEqualityExpressionNot() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return 1 != fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (1 != <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on equality expression not>"
-	);
-}
-/*
- * ExclusiveOrExpression ::= ExclusiveOrExpression '^' <AndExpression> 
- */
-public void testExclusiveOrExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return isTrue ^ fred().xyz;					\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (isTrue ^ <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on exclusive or expression>"
-	);
-}
-/*
- * ConstructorBody ::= NestedMethod '{' <ExplicitConstructorInvocation> '}'
- * or
- * ConstructorBody ::= NestedMethod '{' <ExplicitConstructorInvocation> BlockStatements '}'  
- */
-public void testExplicitConstructorInvocationInConstructorBody() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar() {							\n" +
-		"			Bar.x.x.super();					\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"Bar.x.x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:Bar.x.x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  public class InnerBar {\n" +
-		"    public InnerBar() {\n" + 
-		"    }\n" + 
-		"  }\n" +
-		"  public class SubInnerBar extends InnerBar {\n" +
-		"    SubInnerBar() {\n" +
-		"      super();\n" +
-		"      <CompleteOnName:Bar.x.x>;\n" + 
-		"    }\n" +
-		"  }\n" +
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"Bar.x.x",
-		// test name
-		"<complete on explicit constructor invocation in constructor body>"
-	);
-}
-/*
- * ForStatement ::= 'for' '(' <ForInitopt> ';' Expressionopt ';' ForUpdateopt ')' Statement
- * or
- * ForStatementNoShortIf ::= 'for' '(' <ForInitopt> ';' Expressionopt ';' ForUpdateopt ')' StatementNoShortIf 
- */
-public void testForInit() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		for (int i = fred().xyz; i < 2; i++)		\n" +
-		"			System.out.println();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i = <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on for init>"
-	);
-}
-/*
- * ForStatement ::= 'for' '(' ForInitopt ';' Expressionopt ';' ForUpdateopt ')' <Statement>
- * or
- * ForStatementNoShortIf ::= 'for' '(' ForInitopt ';' Expressionopt ';' ForUpdateopt ')' <StatementNoShortIf> 
- */
-public void testForStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		for (int i = 0; i < 2; i++)				\n" +
-		"			fred().xyz = new Foo();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on for statement>"
-	);
-}
-/*
- * ForStatement ::= 'for' '(' ForInitopt ';' <Expressionopt> ';' ForUpdateopt ')' Statement 
- * or
- * ForStatementNoShortIf ::= 'for' '(' ForInitopt ';' <Expressionopt> ';' ForUpdateopt ')' StatementNoShortIf  
- */
-public void testForStatementExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		for (int i = 0; fred().xyz > i; i++)		\n" +
-		"			Systemout.println();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on for statement expression>"
-	);
-}
-/*
- * ForStatement ::= 'for' '(' ForInitopt ';' Expressionopt ';' <ForUpdateopt> ')' Statement 
- * or
- * ForStatementNoShortIf ::= 'for' '(' ForInitopt ';' Expressionopt ';' <ForUpdateopt> ')' StatementNoShortIf 
- */
-public void testForUpdate() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		for (int i = 0; i < 2; i+= fred().xyz)	\n" +
-		"			System.out.println();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" + 
-		"    i += <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on for update>"
-	);
-}
-/*
- * IfThenStatement ::= 'if' '(' <Expression> ')' Statement 
- */
-public void testIfExpresionThen() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		if (fred().xyz)							\n" +
-		"			System.out.println();				\n"	+
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on \"if expression then\">"
-	);
-}
-/*
- * IfThenElseStatement ::= 'if' '(' <Expression> ')' StatementNoShortIf 'else' Statement
- * or
- * IfThenElseStatementNoShortIf ::= 'if' '(' <Expression> ')' StatementNoShortIf 'else' StatementNoShortIf 
- */
-public void testIfExpresionThenElse() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		if (fred().xyz)							\n" +
-		"			System.out.println();				\n"	+
-		"		else									\n" +
-		"			System.out.println();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on \"if expression then else\">"
-	);
-}
-/*
- * IfThenElseStatement ::= 'if' '(' Expression ')' StatementNoShortIf 'else' <Statement>
- * or
- * IfThenElseStatementNoShortIf ::= 'if' '(' Expression ')' StatementNoShortIf 'else' <StatementNoShortIf>
- */
-public void testIfThenElseStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		if (false)								\n" +
-		"			System.out.println();				\n"	+
-		"		else									\n" +
-		"			fred().xyz = new Foo();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on \"if then else\" statement>"
-	);
-}
-/*
- * IfThenStatement ::= 'if' '(' Expression ')' <Statement> 
- */
-public void testIfThenStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		if (true)								\n" +
-		"			fred().xyz = new Foo();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on \"if then\" statement>"
-	);
-}
-/*
- * IfThenStatementElse ::= 'if' '(' Expression ')' <StatementNoShortIf> 'else' Statement
- * or
- * IfThenElseStatementNoShortIf ::= 'if' '(' Expression ')' <StatementNoShortIf> 'else' StatementNoShortIf
- */
-public void testIfThenStatementElse() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		if (true)								\n" +
-		"			fred().xyz = new Foo();				\n"	+
-		"		else									\n" +
-		"			System.out.println();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on \"if then statement else\">"
-	);
-}
-/*
- * InclusiveOrExpression ::= InclusiveOrExpression '|' <ExclusiveOrExpression> 
- */
-public void testInclusiveOrExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return isTrue | fred().xyz;					\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (isTrue | <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on inclusive or expression>"
-	);
-}
-/*
- * LabeledStatement ::= 'Identifier' ':' <Statement>
- * or
- * LabeledStatementNoShortIf ::= 'Identifier' ':' <StatementNoShortIf> 
- */
-public void testLabeledStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		fredCall: fred().xyz = new Foo();			\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// expectedLabels:
-		new String[] {"fredCall"},
-		// test name
-		"<complete on labeled statement>"
-	);
-}
-/*
- * MethodBody ::= NestedMethod '{' <BlockStatementsopt> '}'
- */
-public void testMethodBody() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		fred().xyz = new Foo();					\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on method body>"
-	);
-}
-/*
- * FunctionInvocation ::= Name '(' <ArgumentListopt> ')'  
- */
-public void testMethodInvocation() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		bizz(fred().xyz);							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    bizz(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on method invocation>"
-	);
-}
-/*
- * FunctionInvocation ::= Primary '.' 'Identifier' '(' <ArgumentListopt> ')'  
- */
-public void testMethodInvocationPrimary() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		buzz().bizz(fred().xyz);					\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    buzz().bizz(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on method invocation primary>"
-	);
-}
-/*
- * FunctionInvocation ::= 'super' '.' 'Identifier' '(' <ArgumentListopt> ')' 
- */
-public void testMethodInvocationSuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		super.bizz(fred().xyz);					\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    super.bizz(<CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on method invocation super>"
-	);
-}
-/*
- * MultiplicativeExpression ::= MultiplicativeExpression '/' <UnaryExpression>
- */
-public void testMultiplicativeExpressiondDivision() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	double foo() {									\n" +
-		"		return 2 / fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  double foo() {\n" + 
-		"    (2 / <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on multiplicative expression division>"
-	);
-}
-/*
- * MultiplicativeExpression ::= MultiplicativeExpression '*' <UnaryExpression> 
- */
-public void testMultiplicativeExpressionMultiplication() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	int foo() {										\n" +
-		"		return 2 * fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    (2 * <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on multiplicative expression multiplication>"
-	);
-}
-/*
- * MultiplicativeExpression ::= MultiplicativeExpression '%' <UnaryExpression> 
- */
-public void testMultiplicativeExpressionRemainder() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	int foo() {										\n" +
-		"		return 2 % fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    (2 % <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on multiplicative expression remainder>"
-	);
-}
-/*
- * PreDecrementExpression ::= '--' PushPosition <UnaryExpression> 
- */
-public void testPreIncrementExpressionMinusMinus() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		-- fred().xyz;							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    -- <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on pre increment expression minus minus>"
-	);
-}
-/*
- * PreIncrementExpression ::= '++' PushPosition <UnaryExpression> 
- */
-public void testPreIncrementExpressionPlusPlus() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		++ fred().xyz;							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    ++ <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on pre increment expression plus plus>"
-	);
-}
-/*
- * PrimaryNoNewArray ::= PushLPAREN <Expression> PushRPAREN
- */
-public void testPrimaryNoNewArray() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		(fred().xyz).zzz();						\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on primary no new array>"
-	);
-}
-/*
- * RelationalExpression ::= RelationalExpression '>' <ShiftExpression> 
- */
-public void testRelationalExpressionGreaterThan() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return 1 > fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (1 > <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on relational expression greater than>"
-	);
-}
-/*
- * RelationalExpression ::= RelationalExpression '>=' <ShiftExpression> 
- */
-public void testRelationalExpressionGreaterThanOrEquals() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return 1 >= fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (1 >= <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on relational expression greater than or equal>"
-	);
-}
-/*
- * RelationalExpression ::= RelationalExpression '<' <ShiftExpression>  
- */
-public void testRelationalExpressionLessThan() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return 1 < fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (1 < <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on relational expression less than>"
-	);
-}
-/*
- * RelationalExpression ::= RelationalExpression '<=' <ShiftExpression> 
- */
-public void testRelationalExpressionLessThanOrEqual() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	boolean foo() {									\n" +
-		"		return 1 <= fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    (1 <= <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on relational expression less than or equal>"
-	);
-}
-/*
- * ReturnStatement ::= 'return' <Expressionopt> ';
- */
-public void testReturnStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	int foo() {									\n" +
-		"		return fred().xyz;						\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    return <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on return statement>"
-	);
-}
-/*
- * ShiftExpression ::= ShiftExpression '<<' <AdditiveExpression> 
- */
-public void testShiftExpressionLeft() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	int foo() {										\n" +
-		"		return i << fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    (i << <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on shift expression left>"
-	);
-}
-/*
- * ShiftExpression ::= ShiftExpression '>>' <AdditiveExpression>
- */
-public void testShiftExpressionRight() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	int foo() {										\n" +
-		"		return i >> fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    (i >> <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on shift expression right>"
-	);
-}
-/*
- * ShiftExpression ::= ShiftExpression '>>>' <AdditiveExpression>
- */
-public void testShiftExpressionRightUnSigned() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	int foo() {										\n" +
-		"		return i >>> fred().xyz;						\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    (i >>> <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on shift expression right unsigned>"
-	);
-}
-/*
- * StatementExpressionList ::= StatementExpressionList ',' <StatementExpression> 
- */
-public void testStatementExpressionList() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {											\n" +
-		"	void foo() {										\n" +
-		"		for (int i = 0, length = fred().xyz; i < 2; i++)	\n" +
-		"			System.out.println();						\n" +
-		"	}													\n" +
-		"}														\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" +
-		"    int length = <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on statement expression list>"
-	);
-}
-/*
- * SwitchBlockStatement ::= SwitchLabels <BlockStatements>   
- */
-public void testSwitchBlockStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		int i =  0;								\n" +
-		"		switch (i) {							\n" +
-		"			case 0: fred().xyz = new Foo();		\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" +
-		"    {\n" +
-		"      <CompleteOnMemberAccess:fred().x>;\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on switch block statement>"
-	);
-}
-/*
- * SwitchStatement ::= 'switch' OpenBlock '(' <Expression> ')' SwitchBlock    
- */
-public void testSwitchExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		switch (fred().xyz) {						\n" +
-		"			case 0: System.out.println();		\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on switch expression>"
-	);
-}
-/*
- * SwitchLabel ::= 'case' <ConstantExpression> ':' 
- */
-public void testSwitchLabel() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		int i =  0;									\n" +
-		"		switch (i) {								\n" +
-		"			case fred().xyz: System.out.println();	\n" +
-		"		}											\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" + 
-		"    {\n" + 
-		"      switch (i) {\n" + 
-		"      case <CompleteOnMemberAccess:fred().x> : ;\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on switch label>"
-	);
-}
-/*
- * SynchronizedStatement ::= OnlySynchronized '(' <Expression> ')' Block
- */
-public void testSynchronizedStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		synchronized (fred().xyz) {				\n" +
-		"			 System.out.println();				\n" +
-		"		} 										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on synchronized expression>"
-	);
-}
-/*
- * ThrowStatement ::= 'throw' <Expression> ';' 
- */
-public void testThrowExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		throw fred().xyz;							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on throw expression>"
-	);
-}
-/*
- * UnaryExpressionNotPlusMinus ::= '~' PushPosition <UnaryExpression> 
- */
-public void testUnaryExpressionBitwiseComplement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		i = ~ fred().xyz;							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    (~ <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on unary expression bitwise complement>"
-	);
-}
-/*
- * UnaryExpressionNotPlusMinus ::= '!' PushPosition <UnaryExpression>  
- */
-public void testUnaryExpressionLogicalComplement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		i = ! fred().xyz;							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    (! <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on unary expression logical complement>"
-	);
-}
-/*
- * UnaryExpression ::= '-' PushPosition <UnaryExpression> 
- */
-public void testUnaryExpressionMinus() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		i = - fred().xyz;							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    (- <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on unary expression minus>"
-	);
-}
-/*
- * UnaryExpression ::= '+' PushPosition <UnaryExpression>
- */
-public void testUnaryExpressionPlus() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		i = + fred().xyz;							\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    (+ <CompleteOnMemberAccess:fred().x>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on unary expression plus>"
-	);
-}
-/*
- * VariableDeclarator ::= VariableDeclaratorId EnterField '=' ForceNoDiet <VariableInitializer> RestoreDiet ExitField 
- */
-public void testVariableDeclarator() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {											\n" +
-		"	void foo() {										\n" +
-		"		int i = fred().xyz;								\n" +
-		"	}													\n" +
-		"}														\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i = <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on variable declarator>"
-	);
-}
-/*
- * VariableInitializers ::= VariableInitializers ',' <VariableInitializer>
- */
-public void testVariableInitializers() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {											\n" +
-		"	void foo() {										\n" +
-		"		int i = 0, j = fred().xyz;						\n" +
-		"	}													\n" +
-		"}														\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" +
-		"    int j = <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on variable initializers>"
-	);
-}
-/*
- * WhileStatement ::= 'while' '(' <Expression> ')' Statement 
- * or
- * WhileStatementNoShortIf ::= 'while' '(' <Expression> ')' StatementNoShortIf 
- */
-public void testWhileExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		while (fred().xyz)						\n" +
-		"			System.out.println();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on while expresion>"
-	);
-}
-/*
- * WhileStatement ::= 'while' '(' Expression ')' <Statement>
- * or
- * WhileStatementNoShortIf ::= 'while' '(' Expression ')' <StatementNoShortIf> 
- */
-public void testWhileStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		while (true)							\n" +
-		"			fred().xyz = new Foo();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:fred().x>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on while statement>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/InMemoryNameEnvironment.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/InMemoryNameEnvironment.java
deleted file mode 100644
index bfeb591..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/InMemoryNameEnvironment.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.env.*;
-import org.eclipse.wst.jsdt.internal.compiler.impl.ITypeRequestor;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.Binding;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfObject;
-
-public class InMemoryNameEnvironment implements INameEnvironment {
-	INameEnvironment[] classLibs;
-	HashtableOfObject compilationUnits = new HashtableOfObject();
-public InMemoryNameEnvironment(String[] compilationUnits, INameEnvironment[] classLibs) {
-	this.classLibs = classLibs;
-	for (int i = 0, length = compilationUnits.length - 1; i < length; i += 2) {
-		String fileName = compilationUnits[i];
-		char[] contents = compilationUnits[i + 1].toCharArray();
-		String dirName = "";
-		int lastSlash = -1;
-		if ((lastSlash = fileName.lastIndexOf('/')) != -1) {
-			dirName = fileName.substring(0, lastSlash);
-		}
-		char[] packageName = dirName.replace('/', '.').toCharArray();
-		char[] cuName = fileName.substring(lastSlash == -1 ? 0 : lastSlash + 1, fileName.length() - 5).toCharArray(); // remove ".java"
-		HashtableOfObject cus = (HashtableOfObject)this.compilationUnits.get(packageName);
-		if (cus == null) {
-			cus = new HashtableOfObject();
-			this.compilationUnits.put(packageName, cus);
-		}
-		CompilationUnit unit = new CompilationUnit(contents, fileName, null);
-		cus.put(cuName, unit);
-	}
-}
-public NameEnvironmentAnswer findType(char[][] compoundTypeName, ITypeRequestor requestor) {
-	return findType(
-		compoundTypeName[compoundTypeName.length - 1],
-		CharOperation.subarray(compoundTypeName, 0, compoundTypeName.length - 1),requestor);
-}
-public NameEnvironmentAnswer findBinding(char[] typeName, char[][] packageName, int type, ITypeRequestor requestor, boolean returnMultiple, String excludePath) {
-	HashtableOfObject cus = (HashtableOfObject)this.compilationUnits.get(CharOperation.concatWith(packageName, '.'));
-	if (cus == null) {
-		return this.findTypeFromClassLibs(typeName, packageName,type,requestor);
-	}
-	CompilationUnit unit = (CompilationUnit)cus.get(typeName);
-	if (unit == null) {
-		return this.findTypeFromClassLibs(typeName, packageName,type,requestor);
-	}
-	return new NameEnvironmentAnswer(unit, null /*no access restriction*/);
-}
-
-public NameEnvironmentAnswer findType(char[] typeName, char[][] packageName, ITypeRequestor requestor) {
-	return findBinding(typeName, packageName, Binding.TYPE|Binding.PACKAGE,requestor, false, null);
-//	HashtableOfObject cus = (HashtableOfObject)this.compilationUnits.get(CharOperation.concatWith(packageName, '.'));
-//	if (cus == null) {
-//		return this.findTypeFromClassLibs(typeName, packageName);
-//	}
-//	JavaScriptUnit unit = (JavaScriptUnit)cus.get(typeName);
-//	if (unit == null) {
-//		return this.findTypeFromClassLibs(typeName, packageName);
-//	}
-//	return new NameEnvironmentAnswer(unit, null /*no access restriction*/);
-}
-private NameEnvironmentAnswer findTypeFromClassLibs(char[] typeName, char[][] packageName, int type, ITypeRequestor requestor) {
-	for (int i = 0; i < this.classLibs.length; i++) {
-		NameEnvironmentAnswer answer = this.classLibs[i].findBinding(typeName, packageName, type,requestor, false, null);
-		if (answer != null) {
-			return answer;
-		}
-	}
-	return null;
-}
-public boolean isPackage(char[][] parentPackageName, char[] packageName) {
-	char[] pkg = CharOperation.concatWith(parentPackageName, packageName, '.');
-	return 
-		this.compilationUnits.get(pkg) != null || 
-		this.isPackageFromClassLibs(parentPackageName, packageName);
-}
-public boolean isPackageFromClassLibs(char[][] parentPackageName, char[] packageName) {
-	for (int i = 0; i < this.classLibs.length; i++) {
-		if (this.classLibs[i].isPackage(parentPackageName, packageName)) {
-			return true;
-		}
-	}
-	return false;
-} 
-public void cleanup() {
-	for (int i = 0, max = this.classLibs.length; i < max; i++) {
-		this.classLibs[i].cleanup();
-	}
-	this.compilationUnits = new HashtableOfObject();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/InnerTypeCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/InnerTypeCompletionTest.java
deleted file mode 100644
index 6ff33c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/InnerTypeCompletionTest.java
+++ /dev/null
@@ -1,456 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be in an inner type
- */
-public class InnerTypeCompletionTest extends AbstractCompletionTest {
-public InnerTypeCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(InnerTypeCompletionTest.class);
-}
-/*
- * Test completion in the first method of an anonymous inner class
- */
-public void testAnonymousFirstMethod() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		Object o = new Object() {				\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"			void fuzz() {						\n" +
-		"			}									\n" +
-		"		};										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    Object o;\n" +
-		"    new Object() {\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"      void fuzz() {\n" +
-		"      }\n" +
-		"    };\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in anonymous inner class in first method>"
-	);
-}
-/*
- * Test completion in anonymous inner class with no statement defined before.
- */
-public void testAnonymousNoStatementBefore() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		Object o = new Object() {				\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"		};										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    Object o;\n" +
-		"    new Object() {\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"    };\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in anonymous inner class with no statement before>"
-	);
-}
-/*
- * Test completion in anonymous inner class with one field defined before
- * the method containing the completion.
- */
-public void testAnonymousOneFieldBefore() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		Object o = new Object() {				\n" +
-		"			int field = 1;						\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"		};										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    Object o;\n" +
-		"    new Object() {\n" +
-		"      int field;\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"    };\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in anonymous inner class with one field before>"
-	);
-}
-/*
- * Test completion in anonymous inner class with one statement defined before.
- */
-public void testAnonymousOneStatementBefore() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		int i = 1;								\n" +
-		"		Object o = new Object() {				\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"		};										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    Object o;\n" +
-		"    new Object() {\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"    };\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in anonymous inner class with one statement before>"
-	);
-}
-/*
- * Test completion in the second method of an anonymous inner class
- */
-public void testAnonymousSecondMethod() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		Object o = new Object() {				\n" +
-		"			void fuzz() {						\n" +
-		"			}									\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"		};										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    Object o;\n" +
-		"    new Object() {\n" +
-		"      void fuzz() {\n" +
-		"      }\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"    };\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in anonymous inner class in second method>"
-	);
-}
-/*
- * Test completion in the first method of a local type declaration
- */
-public void testLocalTypeFirstMethod() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		class InnerBar {						\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"			void fuzz() {						\n" +
-		"			}									\n" +
-		"		};										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    class InnerBar {\n" +
-		"      InnerBar() {\n" +
-		"      }\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"      void fuzz() {\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in local type declaration in first method>"
-	);
-}
-/*
- * Test completion in local type declaration with no statement defined before.
- */
-public void testLocalTypeNoStatementBefore() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		class InnerBar {						\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    class InnerBar {\n" +
-		"      InnerBar() {\n" +
-		"      }\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in local type declaration with no statement before>"
-	);
-}
-/*
- * Test completion in local type declaration with one field defined before
- * the method containing the completion.
- */
-public void testLocalTypeOneFieldBefore() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		class InnerBar {						\n" +
-		"			int field = 1;						\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    class InnerBar {\n" +
-		"      int field;\n" +
-		"      InnerBar() {\n" +
-		"      }\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in local type declaration with one field before>"
-	);
-}
-/*
- * Test completion in local type declaration with one statement defined before.
- */
-public void testLocalTypeOneStatementBefore() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		int i = 1;								\n" +
-		"		class InnerBar {						\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    class InnerBar {\n" +
-		"      InnerBar() {\n" +
-		"      }\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in local type declaration with 1 statement before>"
-	);
-}
-/*
- * Test completion in the second method of a local type declaration
- */
-public void testLocalTypeSecondMethod() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		class InnerBar {						\n" +
-		"			void fuzz() {						\n" +
-		"			}									\n" +
-		"			void buzz() {						\n" +
-		"				int i = fred().xyz;				\n" +
-		"			}									\n" +
-		"		};										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:fred().x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    class InnerBar {\n" +
-		"      InnerBar() {\n" +
-		"      }\n" +
-		"      void fuzz() {\n" +
-		"      }\n" +
-		"      void buzz() {\n" +
-		"        int i = <CompleteOnMemberAccess:fred().x>;\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete in local type declaration in second method>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/JavadocCompletionParserTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/JavadocCompletionParserTest.java
deleted file mode 100644
index e03b898..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/JavadocCompletionParserTest.java
+++ /dev/null
@@ -1,621 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.codeassist.complete.CompletionJavadoc;
-import org.eclipse.wst.jsdt.internal.codeassist.complete.CompletionOnJavadocTag;
-import org.eclipse.wst.jsdt.internal.codeassist.complete.CompletionParser;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.parser.JavadocTagConstants;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-
-public class JavadocCompletionParserTest extends AbstractCompletionTest implements JavadocTagConstants {
-	public static int INLINE_ALL_TAGS_LENGTH = 0;
-	public static int BLOCK_ALL_TAGS_LENGTH = 0;
-	static {
-		for (int i=0; i<INLINE_TAGS_LENGTH; i++) {
-			INLINE_ALL_TAGS_LENGTH += INLINE_TAGS[i].length;
-		}
-		for (int i=0; i<BLOCK_TAGS_LENGTH; i++) {
-			BLOCK_ALL_TAGS_LENGTH += BLOCK_TAGS[i].length;
-		}
-	}
-
-	CompletionJavadoc javadoc;
-	String sourceLevel;
-
-public JavadocCompletionParserTest(String testName) {
-	super(testName);
-}
-
-static {
-	// org.eclipse.wst.jsdt.internal.codeassist.CompletionEngine.DEBUG = true;
-//	TESTS_NUMBERS = new int[] { 8 };
-//	TESTS_RANGE = new int[] { 20, -1 };
-}
-
-public static Test suite() {
-	return buildAllCompliancesTestSuite(JavadocCompletionParserTest.class);
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.test.performance.PerformanceTestCase#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	this.sourceLevel = null;
-}
-
-protected void assertCompletionNodeResult(String source, String expected) {
-	ASTNode completionNode = this.javadoc.getCompletionNode();
-	assertNotNull("Javadoc should have a completion node!!!", completionNode);
-	String actual = this.javadoc.getCompletionNode().toString();
-	if (!expected.equals(actual)) {
-		System.out.println("********************************************************************************");
-		System.out.print(getName());
-		System.out.println(" expect following result:");
-    	String toDisplay = new String(org.eclipse.wst.jsdt.core.tests.util.Util.displayString(new String(actual), 2).toCharArray());
-    	System.out.println(toDisplay);
-		System.out.println("--------------------------------------------------------------------------------");
-		System.out.println(source);
-	}
-	assertEquals(
-		"Completion node is not correct!",
-		expected,
-		actual
-	);
-}
-protected Map getCompilerOptions() {
-	Map options = super.getCompilerOptions();
-	if (this.sourceLevel == null) {
-		return options;
-	}
-	options.put(CompilerOptions.OPTION_Source, this.sourceLevel);
-	return options;
-}
-protected void verifyCompletionInJavadoc(String source, String after) {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	CompletionParser parser = new CompletionParser(new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(),
-		options,
-		new DefaultProblemFactory(Locale.getDefault())));
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source.toCharArray(), "Test.java", null);
-	CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);
-
-	int cursorLocation = source.indexOf(after) + after.length() - 1;
-	parser.dietParse(sourceUnit, compilationResult, cursorLocation);
-
-	assertNotNull("Parser should have an assist node parent", parser.assistNodeParent);
-	assertEquals("Expecting completion in javadoc!", CompletionJavadoc.class, parser.assistNodeParent.getClass());
-	this.javadoc = (CompletionJavadoc) parser.assistNodeParent;
-}
-
-protected void verifyCompletionOnJavadocTag(char[] tag, char[][] expectedTags, boolean inline) {
-	assertTrue("Invalid javadoc completion node!", this.javadoc.getCompletionNode() instanceof CompletionOnJavadocTag);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	StringBuffer expected = new StringBuffer("<CompleteOnJavadocTag:");
-	if (inline) expected.append('{');
-	expected.append('@');
-	if (tag != null) expected.append(tag);
-	if (inline) expected.append('}');
-	if (expectedTags != null) {
-		expected.append("\npossible tags:");
-		int length = expectedTags.length;
-		for (int i=0; i<length; i++) {
-			expected.append("\n	- ");
-			expected.append(expectedTags[i]);
-		}
-		expected.append('\n');
-	}
-	expected.append(">");
-	if (expectedTags == null) {
-		assertEquals("Invalid completion tag", expected.toString(), completionTag.toString());
-	} else {
-		String completionTagString = completionTag.toString();
-		StringTokenizer completionTagTokenizer = new StringTokenizer(completionTagString, "\n");
-		StringBuffer completionTagBuffer = new StringBuffer(completionTagString.length());
-		boolean possibleLine = false, newLine = false;
-		while (completionTagTokenizer.hasMoreTokens()) {
-			String line = completionTagTokenizer.nextToken();
-			if (line.startsWith("possible")) {
-				if (!possibleLine) {
-					possibleLine = true;
-					completionTagBuffer.append("\npossible tags:");
-				}
-			} else {
-				if (newLine) completionTagBuffer.append('\n');
-				completionTagBuffer.append(line);
-			}
-			newLine = true;
-		}
-		assertEquals("Invalid completion tag", expected.toString(), completionTagBuffer.toString());
-	}
-}
-
-protected void verifyAllTagsCompletion() {
-	char[][] allTags = {
-		// Block tags
-		TAG_AUTHOR, TAG_DEPRECATED, TAG_EXCEPTION, TAG_PARAM, TAG_RETURN, TAG_SEE, TAG_VERSION, TAG_CATEGORY,
-		TAG_SINCE,
-//		TAG_SERIAL, TAG_SERIAL_DATA, TAG_SERIAL_FIELD ,
-		TAG_THROWS,
-		// Inline tags
-		TAG_LINK,
-		TAG_DOC_ROOT,
-	};
-	char[][] additionalTags = null;
-	if (complianceLevel.equals(COMPLIANCE_1_4)) {
-		additionalTags = new char[][] {
-			TAG_INHERITDOC, TAG_LINKPLAIN
-		};
-	}
-	else if (!complianceLevel.equals(COMPLIANCE_1_3)) {
-		additionalTags = new char[][] {
-			TAG_INHERITDOC, TAG_LINKPLAIN,
-			TAG_CODE, TAG_LITERAL
-		};
-	}
-	if (additionalTags != null) {
-		int length = allTags.length;
-		int add = additionalTags.length;
-		System.arraycopy(allTags, 0, allTags = new char[length+add][], 0, length);
-		System.arraycopy(additionalTags, 0, allTags, length, add);
-	}
-	verifyCompletionOnJavadocTag(null, allTags, false);
-}
-
-/**
- * @tests Test completions for javadoc tag names
- */
-public void test001() {
-	String source = "package javadoc;\n" +
-		"/**\n" +
-		" * Completion on empty tag name:\n" +
-		" * 	@\n" +
-		" */\n" +
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@");
-	verifyAllTagsCompletion();
-}
-
-public void test002() {
-	String source = "package javadoc;\n" +
-		"/**\n" +
-		" * Completion on impossible tag name:\n" +
-		" * 	@none\n" +
-		" */\n" +
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@none");
-	verifyCompletionOnJavadocTag("none".toCharArray(), null, false);
-}
-
-public void test003() {
-	String source = "package javadoc;\n" +
-		"/**\n" +
-		" * Completion on one letter:\n" +
-		" * 	@v\n" +
-		" */\n" +
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@v");
-	char[][] allTags = this.complianceLevel.equals(COMPLIANCE_1_3) 
-		? new char[][] { TAG_VERSION }
-		: new char[][] { TAG_VERSION };
-	verifyCompletionOnJavadocTag(new char[] { 'v' }, allTags, false);
-}
-
-public void test004() {
-	String source = "package javadoc;\n" +
-		"/**\n" +
-		" * Completion with several letters:\n" +
-		" * 	@deprec\n" +
-		" */\n" +
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@deprec");
-	verifyCompletionOnJavadocTag("deprec".toCharArray(), new char[][] { TAG_DEPRECATED }, false);
-}
-
-public void test005() {
-	String source = "package javadoc;\n" +
-		"/**\n" +
-		" * Completion on full tag name:\n" +
-		" * 	@link\n" +
-		" */\n" +
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@link");
-	char[][] allTags = this.complianceLevel.equals(COMPLIANCE_1_3) 
-		? new char[][] { TAG_LINK }
-		: new char[][] { TAG_LINK, TAG_LINKPLAIN };
-	verifyCompletionOnJavadocTag("link".toCharArray(), allTags, false);
-}
-
-public void test006() {
-	String source = "package javadoc;\n" +
-		"/**\n" +
-		" * Completion on empty tag name @ but inside text\n" +
-		" */\n" +
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@");
-	char[][] allTags = {
-		TAG_LINK,
-		TAG_DOC_ROOT,
-	};
-	char[][] additionalTags = null;
-	if (complianceLevel.equals(COMPLIANCE_1_4)) {
-		additionalTags = new char[][] {
-			TAG_INHERITDOC, TAG_LINKPLAIN
-		};
-	}
-	else if (!complianceLevel.equals(COMPLIANCE_1_3)) {
-		additionalTags = new char[][] {
-			TAG_INHERITDOC, TAG_LINKPLAIN,
-			TAG_CODE, TAG_LITERAL
-		};
-	}
-	if (additionalTags != null) {
-		int length = allTags.length;
-		int add = additionalTags.length;
-		System.arraycopy(allTags, 0, allTags = new char[length+add][], 0, length);
-		System.arraycopy(additionalTags, 0, allTags, length, add);
-	}
-	verifyCompletionOnJavadocTag(null, allTags, false);
-}
-
-public void test007() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * Completion on :\n" + 
-		" * 	@\n" + 
-		" * 		- with following lines:\n" + 
-		" * 			+ \"@ {@link }\"\n" + 
-		" * 			+ \"@ {@linkplain }\"\n" + 
-		" * 			+ \"@ {@literal }\"\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@");
-	verifyAllTagsCompletion();
-}
-/**
- * @bug [javadoc][assist] @linkplain no longer proposed when 1.4 compliance is used
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=123096"
- */
-public void test008() {
-	this.sourceLevel = CompilerOptions.VERSION_1_3;
-	String source = "package javadoc;\n" +
-		"/**\n" +
-		" * Completion on empty tag name:\n" +
-		" * 	@\n" +
-		" */\n" +
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@");
-	verifyAllTagsCompletion();
-}
-
-/**
- * @tests Tests to verify completion node flags
- * @bug 113506: [javadoc][assist] No tag proposals when there is a prefix on a line
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=113506"
- */
-public void test010() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * @see \n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@see ");
-	assertCompletionNodeResult(source,
-		"<CompletionOnJavadocSingleTypeReference:\n" + 
-		"	infos:formal reference\n" + 
-		">"
-	);
-}
-
-public void test011() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@link }\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@link ");
-	assertCompletionNodeResult(source,
-		"<CompletionOnJavadocSingleTypeReference:\n" + 
-		"	infos:formal reference\n" + 
-		">"
-	);
-}
-public void test012() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * @see Str\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "Str");
-	assertCompletionNodeResult(source,
-		"<CompletionOnJavadocSingleTypeReference:Str\n" + 
-		"	infos:formal reference\n" + 
-		">"
-	);
-}
-
-public void test013() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@link Str}\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "Str");
-	assertCompletionNodeResult(source,
-		"<CompletionOnJavadocSingleTypeReference:Str\n" + 
-		"	infos:formal reference\n" + 
-		">"
-	);
-}
-public void test014() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * @see String Subclass of Obj\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "Obj");
-	assertCompletionNodeResult(source,
-		"<CompletionOnJavadocSingleTypeReference:Obj\n" + 
-		"	infos:text\n" + 
-		">"
-	);
-}
-
-public void test015() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@link String Subclass of Obj}\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "Obj");
-	assertCompletionNodeResult(source,
-		"<CompletionOnJavadocSingleTypeReference:Obj\n" + 
-		"	infos:formal reference\n" + 
-		">"
-	);
-}
-
-/**
- * @test Bug 113469: CompletionOnJavadocTag token is not correct
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=113649"
- */
-public void test020() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * @see\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@s");
-	verifyCompletionOnJavadocTag("s".toCharArray(), new char[][] { TAG_SEE, TAG_SINCE/*, TAG_SERIAL, TAG_SERIAL_DATA, TAG_SERIAL_FIELD*/ }, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	assertEquals("Invalid tag start position", 24, completionTag.tagSourceStart);
-	assertEquals("Invalid tag end position", 28, completionTag.tagSourceEnd+1);
-}
-
-public void test021() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * @see\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@se");
-	verifyCompletionOnJavadocTag("se".toCharArray(), new char[][] { TAG_SEE/*, TAG_SERIAL, TAG_SERIAL_DATA, TAG_SERIAL_FIELD */}, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	assertEquals("Invalid tag start position", 24, completionTag.tagSourceStart);
-	assertEquals("Invalid tag end position", 28, completionTag.tagSourceEnd+1);
-}
-
-public void test022() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * @see\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "@see");
-	verifyCompletionOnJavadocTag("see".toCharArray(), new char[][] { TAG_SEE }, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	assertEquals("Invalid tag start position", 24, completionTag.tagSourceStart);
-	assertEquals("Invalid tag end position", 28, completionTag.tagSourceEnd+1);
-}
-
-public void test023() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * @ebj-tag\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "ebj");
-	verifyCompletionOnJavadocTag("ebj".toCharArray(), null, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	assertEquals("Invalid tag start position", 24, completionTag.tagSourceStart);
-	assertEquals("Invalid tag end position", 32, completionTag.tagSourceEnd+1);
-}
-
-public void test024() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * @ebj-tag\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "tag");
-	verifyCompletionOnJavadocTag("ebj-tag".toCharArray(), null, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	assertEquals("Invalid tag start position", 24, completionTag.tagSourceStart);
-	assertEquals("Invalid tag end position", 32, completionTag.tagSourceEnd+1);
-}
-
-/**
- * @test Bug 114091: [assist][javadoc] eternal loop 
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=114091"
- */
-public void test025() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@</code>\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "{@");
-	char[][] allTags = {
-		TAG_LINK,
-		TAG_DOC_ROOT,
-	};
-	char[][] additionalTags = null;
-	if (complianceLevel.equals(COMPLIANCE_1_4)) {
-		additionalTags = new char[][] {
-			TAG_INHERITDOC, TAG_LINKPLAIN
-		};
-	}
-	else if (!complianceLevel.equals(COMPLIANCE_1_3)) {
-		additionalTags = new char[][] {
-			TAG_INHERITDOC, TAG_LINKPLAIN,
-			TAG_CODE, TAG_LITERAL
-		};
-	}
-	if (additionalTags != null) {
-		int length = allTags.length;
-		int add = additionalTags.length;
-		System.arraycopy(allTags, 0, allTags = new char[length+add][], 0, length);
-		System.arraycopy(additionalTags, 0, allTags, length, add);
-	}
-	verifyCompletionOnJavadocTag("".toCharArray(), allTags, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	int start = source.indexOf("{@");
-	assertEquals("Invalid tag start position", start, completionTag.tagSourceStart);
-	int end = source.indexOf('>');
-	assertEquals("Invalid tag end position", end, completionTag.tagSourceEnd);
-}
-
-public void test026() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@li</code>\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "{@li");
-	char[][] allTags = complianceLevel.equals(COMPLIANCE_1_3)
-		? new char[][] { TAG_LINK }
-		: (complianceLevel.equals(COMPLIANCE_1_4)
-				? new char[][] { TAG_LINK, TAG_LINKPLAIN }
-				: new char[][] { TAG_LINK, TAG_LINKPLAIN, TAG_LITERAL });
-	verifyCompletionOnJavadocTag("li".toCharArray(), allTags, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	int start = source.indexOf("{@");
-	assertEquals("Invalid tag start position", start, completionTag.tagSourceStart);
-	int end = source.indexOf('>');
-	assertEquals("Invalid tag end position", end, completionTag.tagSourceEnd);
-}
-
-public void test027() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@link</code>\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "{@link");
-	char[][] allTags = complianceLevel.equals(COMPLIANCE_1_3)
-		? new char[][] { TAG_LINK }
-		: new char[][] { TAG_LINK, TAG_LINKPLAIN  };
-	verifyCompletionOnJavadocTag("link".toCharArray(), allTags, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	int start = source.indexOf("{@");
-	assertEquals("Invalid tag start position", start, completionTag.tagSourceStart);
-	int end = source.indexOf('>');
-	assertEquals("Invalid tag end position", end, completionTag.tagSourceEnd);
-}
-public void test028() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@|\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "{@");
-	char[][] allTags = {
-		TAG_LINK,
-		TAG_DOC_ROOT,
-	};
-	char[][] additionalTags = null;
-	if (complianceLevel.equals(COMPLIANCE_1_4)) {
-		additionalTags = new char[][] {
-			TAG_INHERITDOC, TAG_LINKPLAIN
-		};
-	}
-	else if (!complianceLevel.equals(COMPLIANCE_1_3)) {
-		additionalTags = new char[][] {
-			TAG_INHERITDOC, TAG_LINKPLAIN,
-			TAG_CODE, TAG_LITERAL
-		};
-	}
-	if (additionalTags != null) {
-		int length = allTags.length;
-		int add = additionalTags.length;
-		System.arraycopy(allTags, 0, allTags = new char[length+add][], 0, length);
-		System.arraycopy(additionalTags, 0, allTags, length, add);
-	}
-	verifyCompletionOnJavadocTag("".toCharArray(), allTags, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	int start = source.indexOf("{@");
-	assertEquals("Invalid tag start position", start, completionTag.tagSourceStart);
-	int end = source.indexOf('|');
-	assertEquals("Invalid tag end position", end, completionTag.tagSourceEnd);
-}
-
-public void test029() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@li/\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "{@li");
-	char[][] allTags = complianceLevel.equals(COMPLIANCE_1_3)
-		? new char[][] { TAG_LINK }
-		: (complianceLevel.equals(COMPLIANCE_1_4)
-				? new char[][] { TAG_LINK, TAG_LINKPLAIN }
-				: new char[][] { TAG_LINK, TAG_LINKPLAIN, TAG_LITERAL });
-	verifyCompletionOnJavadocTag("li".toCharArray(), allTags, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	int start = source.indexOf("{@");
-	assertEquals("Invalid tag start position", start, completionTag.tagSourceStart);
-	int end = source.indexOf("/\n");
-	assertEquals("Invalid tag end position", end, completionTag.tagSourceEnd);
-}
-
-public void test030() {
-	String source = "package javadoc;\n" +
-		"/**\n" + 
-		" * {@link+\n" + 
-		" */\n" + 
-		"public class Test {}\n";
-	verifyCompletionInJavadoc(source, "{@link");
-	char[][] allTags = complianceLevel.equals(COMPLIANCE_1_3)
-		? new char[][] { TAG_LINK }
-		: new char[][] { TAG_LINK, TAG_LINKPLAIN  };
-	verifyCompletionOnJavadocTag("link".toCharArray(), allTags, false);
-	CompletionOnJavadocTag completionTag = (CompletionOnJavadocTag) this.javadoc.getCompletionNode();
-	int start = source.indexOf("{@");
-	assertEquals("Invalid tag start position", start, completionTag.tagSourceStart);
-	int end = source.indexOf('+');
-	assertEquals("Invalid tag end position", end, completionTag.tagSourceEnd);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/LabelStatementCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/LabelStatementCompletionTest.java
deleted file mode 100644
index 5745f15..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/LabelStatementCompletionTest.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be in a LabeledStatement.
- */
-public class LabelStatementCompletionTest extends AbstractCompletionTest {
-public LabelStatementCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(LabelStatementCompletionTest.class);
-}
-/*
- * Completion inside an inner class defined inside a labeled statement.
- */
-public void test1FTEO9L() {
-	String cu =
-		"package p; 					\n" +
-		"								\n" +
-		"class CCHelper {				\n" +
-		"	class Member1 {				\n" +
-		"	}							\n" +
-		"	class Member2 {				\n" +
-		"	}							\n" +
-		"	void foo() {				\n" +
-		"	}							\n" +
-		"}								\n" +
-		"								\n" +
-		"public class CC {				\n" +
-		"	void foo() {				\n" +
-		"		new CCHelper()			\n" +
-		"			.new CCHelper()		\n" +
-		"			.new M				\n" +
-		"	}							\n" +
-		"}								\n";
-	// first case
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		cu,
-		// completeBehind:
-		"			.n",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:new CCHelper().n>",
-		// expectedUnitDisplayString:
-		"package p;\n" + 
-		"class CCHelper {\n" + 
-		"  class Member1 {\n" + 
-		"    Member1() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  class Member2 {\n" + 
-		"    Member2() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  CCHelper() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class CC {\n" + 
-		"  public CC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new CCHelper().n>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"n",
-		// expectedReplacedSource:
-		"new",
-		// test name
-		"<regression test 1FTEO9L (first case)>"
-	);
-	// second case
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		cu,
-		// completeBehind:
-		"			.new CC",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:CC>",
-		// expectedUnitDisplayString:
-		"package p;\n" + 
-		"class CCHelper {\n" + 
-		"  class Member1 {\n" + 
-		"    Member1() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  class Member2 {\n" + 
-		"    Member2() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  CCHelper() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class CC {\n" + 
-		"  public CC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new CCHelper().new <CompleteOnType:CC>();\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"CC",
-		// expectedReplacedSource:
-		"CCHelper",
-		// test name
-		"<regression test 1FTEO9L (second case)>"
-	);
-	// third case
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		cu,
-		// completeBehind:
-		"			.new CCHelper()		\n" +
-		"			.n",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMemberAccess:new CCHelper().new CCHelper().n>",
-		// expectedUnitDisplayString:
-		"package p;\n" + 
-		"class CCHelper {\n" + 
-		"  class Member1 {\n" + 
-		"    Member1() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  class Member2 {\n" + 
-		"    Member2() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  CCHelper() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class CC {\n" + 
-		"  public CC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMemberAccess:new CCHelper().new CCHelper().n>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"n",
-		// expectedReplacedSource:
-		"new",
-		// test name
-		"<regression test 1FTEO9L (third case)>"
-	);
-	// fourth case
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		cu,
-		// completeBehind:
-		"			.new CCHelper()		\n" +
-		"			.new M",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:M>",
-		// expectedUnitDisplayString:
-		"package p;\n" + 
-		"class CCHelper {\n" + 
-		"  class Member1 {\n" + 
-		"    Member1() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  class Member2 {\n" + 
-		"    Member2() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  CCHelper() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"public class CC {\n" + 
-		"  public CC() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new CCHelper().new CCHelper().new <CompleteOnType:M>();\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"M",
-		// expectedReplacedSource:
-		"M",
-		// test name
-		"<regression test 1FTEO9L (fourth case)>"
-	);
-}
-/*
- * Completion inside a case that has an identifier as its constant expression.
- */
-public void testInCaseWithIdentifier() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		label1: {									\n" +
-		"			switch (i) {							\n" +
-		"				case a: label2: X o = new Object();	\n" +
-		"			}										\n" +
-		"		}											\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    {\n" +
-		"      {\n" +
-		"        <CompleteOnName:X>;\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"X",
-		// expectedLabels:
-		new String[] {"label1", "label2"},
-		// test name
-		"<complete in case with identifier>"
-	);
-}
-/*
- * Completion inside a case that has a number as its constant expression.
- */
-public void testInCaseWithNumberConstant() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {										\n" +
-		"	void foo() {									\n" +
-		"		label1: {									\n" +
-		"			switch (i) {							\n" +
-		"				case 1: label2: X o = new Object();	\n" +
-		"			}										\n" +
-		"		}											\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    {\n" +
-		"      {\n" +
-		"        <CompleteOnName:X>;\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"X",
-		// expectedLabels:
-		new String[] {"label1", "label2"},
-		// test name
-		"<complete in case with number>"
-	);
-}
-/*
- * Completion inside an inner class defined inside a labeled statement.
- */
-public void testInLabeledInnerClass() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		label1: {								\n" +
-		"			Object o = new Object() {			\n" +
-		"				void fred() {					\n" +
-		"					label2: {					\n" +
-		"						X o = new Object();		\n" +
-		"					}							\n" +
-		"				}								\n" +
-		"			};									\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    {\n" +
-		"      Object o;\n" +
-		"      new Object() {\n" +
-		"        void fred() {\n" +
-		"          {\n" +
-		"            <CompleteOnName:X>;\n" +
-		"          }\n" +
-		"        }\n" +
-		"      };\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"X",
-		// expectedLabels:
-		new String[] {"label2"},
-		// test name
-		"<complete in labeled inner class>"
-	);
-}
-/*
- * Completion inside an inner class defined inside a labeled statement with a syntax error
- * just before the labeled statement.
- */
-public void testInLabeledInnerClassWithErrorBefore() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		int i == 2; \n" +
-		"		label1: {								\n" +
-		"			Object o = new Object() {			\n" +
-		"				void fred() {					\n" +
-		"					label2: {					\n" +
-		"						X o = new Object();		\n" +
-		"					}							\n" +
-		"				}								\n" +
-		"			};									\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    int i;\n" + 
-		"    {\n" + 
-		"      Object o;\n" + 
-		"      new Object() {\n" + 
-		"        void fred() {\n" + 
-		"          {\n" + 
-		"            <CompleteOnName:X>;\n" + 
-		"          }\n" + 
-		"        }\n" + 
-		"      };\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"X",
-		// expectedLabels:
-		new String[] {"label2"},
-		// test name
-		"<complete in labeled inner class with syntax error before>"
-	);
-}
-/*
- * Completion inside a labeled statement one level deep.
- */
-public void testOneLevelDeep() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		label1: X o = new Object();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:X>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"X",
-		// expectedLabels:
-		new String[] {"label1"},
-		// test name
-		"<complete in one level deep>"
-	);
-}
-/*
- * Completion inside a labeled statement which is the second one in the method.
- */
-public void testSecondLabel() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		label1: buzz();							\n" +
-		"		label2: X o = new Object();				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:X>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"X",
-		// expectedLabels:
-		new String[] {"label2"},
-		// test name
-		"<complete in second labeled statement>"
-	);
-}
-/*
- * Completion inside a labeled statement two level deep.
- */
-public void testTwoLevelDeep() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		label1: {								\n" +
-		"			label2: X o = new Object();			\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      <CompleteOnName:X>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"X",
-		// expectedLabels:
-		new String[] {"label1", "label2"},
-		// test name
-		"<complete in two level deep>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/MethodInvocationCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/MethodInvocationCompletionTest.java
deleted file mode 100644
index e96a683..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/MethodInvocationCompletionTest.java
+++ /dev/null
@@ -1,863 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be a FunctionInvocation.
- */
-public class MethodInvocationCompletionTest extends AbstractCompletionTest {
-public MethodInvocationCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(MethodInvocationCompletionTest.class);
-}
-/*
- * Completion with no receiver inside a for statement.
- */
-public void test1FVVWS8_1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		for (int i = 10; i > 0; --i)		\n" +
-		"			fred(							\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    <CompleteOnMessageSend:fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<1FVVWS8_1>"
-	);
-}
-/*
- * Completion with no receiver inside an if statement.
- */
-public void test1FVVWS8_2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		if (true)							\n" +
-		"			fred(							\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnMessageSend:fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<1FVVWS8_2>"
-	);
-}
-/*
- * Completion with no receiver inside a for statement
- * and after a field access.
- */
-public void test1FW2ZTB_1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {											\n" +
-		"	int[] array;									\n" +
-		"	void foo() {									\n" +
-		"		for (int i = this.array.length; i > 0; --i)	\n" +
-		"			fred(									\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class X {\n" +
-		"  int[] array;\n" +
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    <CompleteOnMessageSend:fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<1FW2ZTB_1"
-	);
-}
-/*
- * Completion with no receiver inside another message send
- * and after a field access in a previous argument.
- */
-public void test1FW2ZTB_2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {											\n" +
-		"	int[] array;									\n" +
-		"	void foo() {									\n" +
-		"		bar(this.array.length, 10, fred(			\n" +
-		"	}												\n" +
-		"}													\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class X {\n" +
-		"  int[] array;\n" +
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnMessageSend:fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<1FW2ZTB_2"
-	);
-}
-/*
- * Complete on method invocation with expression receiver
- * inside another invocation with no receiver.
- */
-public void test1FW35YZ_1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		bar(primary().fred(					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:primary().fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:primary().fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<1FW35YZ_1>"
-	);
-}
-/*
- * Complete on qualified allocation expression
- * inside an invocation with no receiver.
- */
-public void test1FW35YZ_2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		bar(primary().new X(				\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnQualifiedAllocationExpression:primary().new X()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnQualifiedAllocationExpression:primary().new X()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<1FW35YZ_2>"
-	);
-}
-/*
- * Completion with primary receiver.
- */
-public void test1FWYBKF() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"			this.x.bar(						\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"bar(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:this.x.bar()>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnMessageSend:this.x.bar()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"bar(",
-		// test name
-		"<1FWYBKF>"
-	);
-}
-/*
- * Completion just after a parameter which is a message send.
- */
-public void test1GAJBUQ() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		x.y.Z.fred(buzz());					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(buzz()",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:x.y.Z.fred(buzz())>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:x.y.Z.fred(buzz())>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(buzz()",
-		// test name
-		"<1GAJBUQ>"
-	);
-}
-/*
- * Completion just before the second parameter, the first parameter being an empty
- * anonymous class.
- */
-public void testAfterEmptyAnonymous() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		this.fred(new Runnable() {}, 2, i);	\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(new Runnable() {}, ",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:this.fred(new Runnable() {\n})>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:this.fred(new Runnable() {\n" + 
-		"})>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(new Runnable() {}, ",
-		// test name
-		"<completion just before second parameter, the first parameter being an empty anonymous class>"
-	);
-}
-/*
- * Completion just after the first parameter.
- */
-public void testAfterFirstParameter() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		this.fred(\"abc\" , 2, i);		\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(\"abc\" ",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:this.fred(\"abc\")>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:this.fred(\"abc\")>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(\"abc\" ",
-		// test name
-		"<completion just after first parameter>"
-	);
-}
-/*
- * Completion just before the first parameter.
- */
-public void testBeforeFirstParameter() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		this.fred(1, 2, i);					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:this.fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:this.fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<completion just before first parameter>"
-	);
-}
-/*
- * Completion just before the last parameter.
- */
-public void testBeforeLastParameter() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		this.fred(1, 2, i);					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:this.fred(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:this.fred(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(1, 2,",
-		// test name
-		"<completion just before last parameter>"
-	);
-}
-/*
- * Completion just before the second parameter.
- */
-public void testBeforeSecondParameter() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		this.fred(1, 2, i);					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(1, ",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:this.fred(1)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:this.fred(1)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(1, ",
-		// test name
-		"<completion just before second parameter>"
-	);
-}
-/*
- * Completion on empty name inside the expression of the first parameter.
- */
-public void testEmptyInFirstParameter() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		this.fred(\"abc\" + , 2, i);		\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(\"abc\" +",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    (\"abc\" + <CompleteOnName:>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<completion empty in first parameter>"
-	);
-}
-/*
- * Completion inside the expression of the first parameter.
- */
-public void testInFirstParameter() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		this.fred(\"abc\" + bizz, 2, i);	\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(\"abc\" + bi",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:bi>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    (\"abc\" + <CompleteOnName:bi>);\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"bi",
-		// expectedReplacedSource:
-		"bizz",
-		// test name
-		"<completion inside first parameter>"
-	);
-}
-/*
- * Completion inside an if statement.
- */
-public void testInIfStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		if (true) {							\n" +
-		"			bar.fred();						\n" +
-		"		}									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:bar.fred()>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      <CompleteOnMessageSend:bar.fred()>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<completion inside a if statement>"
-	);
-}
-/*
- * Completion in labeled method invocation with expression receiver.
- */
-public void testLabeledWithExpressionReceiver() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		label1: bar().fred(1, 2, o);		\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:bar().fred(1, 2)>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnMessageSend:bar().fred(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(1, 2,",
-		// expectedLabels:
-		new String[] {"label1"},
-		// test name
-		"<completion in labeled method invocation with expression receiver>"
-	);
-}
-/*
- * Completion in labeled method invocation without receiver.
- */
-public void testLabeledWithoutReceiver() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		label1: fred(1, 2, o);				\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:fred(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnMessageSend:fred(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(1, 2,",
-		// expectedLabels:
-		new String[] {"label1"},
-		// test name
-		"<completion in labeled method invocation without receiver>"
-	);
-}
-/*
- * FunctionInvocation ::= Name '(' ArgumentListopt ')'
- */
-public void testNoReceiver() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		fred();								\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<completion on method invocation with no receiver>"
-	);
-}
-/*
- * Completion just before the first parameter with a space after the open parenthesis.
- */
-public void testSpaceThenFirstParameter() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		this.fred( 1, 2, i);				\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred( ",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:this.fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:this.fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred( ",
-		// test name
-		"<completion just before first parameter with a space after open parenthesis>"
-	);
-}
-/*
- * FunctionInvocation ::= 'super' '.' 'Identifier' '(' ArgumentListopt ')'
- */
-public void testSuper() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		super.fred(1, 2, i);				\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:super.fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:super.fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<completion on super method invocation>"
-	);
-}
-/*
- * Complete on method invocation with expression receiver.
- */
-public void testWithExpressionReceiver() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		bar().fred();						\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:bar().fred()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnMessageSend:bar().fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// test name
-		"<completion on method invocation with expression receiver>"
-	);
-}
-/*
- * Completion with a name receiver.
- */
-public void testWithNameReceiver() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		Vector v = new Vector();			\n" +
-		"		v.addElement(\"1\");				\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"addElement(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:v.addElement()>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    Vector v;\n" +
-		"    <CompleteOnMessageSend:v.addElement()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"addElement(",
-		// test name
-		"<completion with name receiver>"
-	);
-}
-/*
- * Completion with a name receiver after conditional expression.
- */
-public void testWithNameReceiverAfterConditionalExpression() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		buzz.test(cond ? max : min);		\n" +
-		"		bar.fred();							\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred(",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:bar.fred()>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnMessageSend:bar.fred()>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(",
-		// expectedLabels:
-		new String[] {},
-		// test name
-		"<completion with name receiver after conditional expression>"
-	);
-}
-/*
- * Completion with a name receiver and 2 arguments.
- */
-public void testWithNameReceiverAndTwoArgs() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		X x = new X();						\n" +
-		"		x.fred(1, 2, o);					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"x.fred(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:x.fred(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    X x;\n" +
-		"    <CompleteOnMessageSend:x.fred(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(1, 2,",
-		// test name
-		"<completion with name receiver and 2 arguments>"
-	);
-}
-/*
- * Completion with a qualified name receiver.
- */
-public void testWithQualifiedNameReceiver() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		X x = new X();						\n" +
-		"		y.x.fred(1, 2, o);					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"x.fred(1, 2,",
-		// expectedCompletionNodeToString:
-		"<CompleteOnMessageSend:y.x.fred(1, 2)>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    X x;\n" +
-		"    <CompleteOnMessageSend:y.x.fred(1, 2)>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"fred(1, 2,",
-		// test name
-		"<completion with qualified name receiver>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/NameReferenceCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/NameReferenceCompletionTest.java
deleted file mode 100644
index ffb632c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/NameReferenceCompletionTest.java
+++ /dev/null
@@ -1,923 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be a name reference.
- */
-public class NameReferenceCompletionTest extends AbstractCompletionTest {
-public NameReferenceCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(NameReferenceCompletionTest.class);
-}
-/*
- * Regression test for 1FTZ849.
- * The instance creation before the completion is not properly closed, and thus
- * the completion parser used to think the completion was on a type.
- */
-public void test1FTZ849() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		X o = new X;						\n" +
-		"		fred.xyz;							\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"fred.x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:fred.x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    X o;\n" + 
-		"    <CompleteOnName:fred.x>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"fred.xyz",
-		// test name
-		"<1FTZ849>"
-	);
-}
-/*
- * Completion in a field initializer with no syntax error. 
- */
-public void test1FUUP73() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"public class A {					\n" +
-		"	String s = \"hello\";			\n" +
-		"	Object o = s.concat(\"boo\");	\n",
-		// completeBehind:
-		"Object o = s",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:s>",
-		// expectedUnitDisplayString:
-		"public class A {\n" +
-		"  String s;\n" +
-		"  Object o = <CompleteOnName:s>;\n" +
-		"  public A() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"s",
-		// expectedReplacedSource:
-		"s",
-		// test name
-		"<1FUUP73>"
-	);
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"public class A {					\n" +
-		"	String s = \"hello\";			\n" +
-		"	Object o = s.concat(\"boo\");	\n",
-		// completeBehind:
-		"Object o = s.c",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:s.c>",
-		// expectedUnitDisplayString:
-		"public class A {\n" +
-		"  String s;\n" +
-		"  Object o = <CompleteOnName:s.c>;\n" +
-		"  public A() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"c",
-		// expectedReplacedSource:
-		"s.concat",
-		// test name
-		"<1FUUP73>"
-	);
-}
-/*
- * Regression test for 1FVRQQA.
- */
-public void test1FVRQQA_1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		Enumeration e = null; 				\n" +
-		"		e.to								\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"e.to",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:e.to>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    Enumeration e;\n" + 
-		"    <CompleteOnName:e.to>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"to",
-		// expectedReplacedSource:
-		"e.to",
-		// test name
-		"<1FVRQQA_1>"
-	);
-}
-/*
- * Regression test for 1FVRQQA.
- */
-public void test1FVRQQA_2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {													\n" +
-		"	void foo() {											\n" +
-		"		for (Enumeration e = getSomeEnumeration(); e.has	\n" +
-		"	}														\n" +
-		"}															\n",
-		// completeBehind:
-		"e.has",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:e.has>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    Enumeration e;\n" + 
-		"    <CompleteOnName:e.has>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"has",
-		// expectedReplacedSource:
-		"e.has",
-		// test name
-		"<1FVRQQA_2>"
-	);
-}
-/*
- * Regression test for 1FVT66Q.
- */
-public void test1FVT66Q_1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"package test;							\n" +
-		"										\n" +
-		"public class Test {					\n" +
-		"	public void foo() {					\n" +
-		"		final int codeAssistTarget= 3;	\n" +
-		"										\n" +
-		"		Thread t= new Thread() {		\n" +
-		"			public void run() {			\n" +
-		"				codeAss					\n" +
-		"			}							\n" +
-		"		};								\n" +
-		"		codeA							\n" +
-		"	}									\n" +
-		"}										\n",
-		// completeBehind:
-		"	codeAss",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:codeAss>",
-		// expectedUnitDisplayString:
-		"package test;\n" + 
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    final int codeAssistTarget;\n" + 
-		"    Thread t;\n" + 
-		"    new Thread() {\n" + 
-		"      public void run() {\n" + 
-		"        <CompleteOnName:codeAss>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"codeAss",
-		// expectedReplacedSource:
-		"codeAss",
-		// test name
-		"<1FVT66Q_1>"
-	);
-}
-/*
- * Regression test for 1FVT66Q.
- */
-public void test1FVT66Q_2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"package test;							\n" +
-		"										\n" +
-		"public class Test {					\n" +
-		"	public void foo() {					\n" +
-		"		final int codeAssistTarget= 3;	\n" +
-		"										\n" +
-		"		Thread t= new Thread() {		\n" +
-		"			public void run() {			\n" +
-		"				codeAss					\n" +
-		"			}							\n" +
-		"		};								\n" +
-		"		codeA							\n" +
-		"	}									\n" +
-		"}										\n",
-		// completeBehind:
-		"\n		codeA",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:codeA>",
-		// expectedUnitDisplayString:
-		"package test;\n" + 
-		"public class Test {\n" + 
-		"  public Test() {\n" + 
-		"  }\n" + 
-		"  public void foo() {\n" + 
-		"    final int codeAssistTarget;\n" + 
-		"    Thread t;\n" + 
-		"    <CompleteOnName:codeA>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"codeA",
-		// expectedReplacedSource:
-		"codeA",
-		// test name
-		"<1FVT66Q_2>"
-	);
-}
-/*
- * Regression test for 1G8DE30.
- */
-public void test1G8DE30() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		new Runnable() {					\n" +
-		"			public void run() {				\n" +
-		"				Bar							\n" +
-		"			}								\n" +
-		"		};									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"public void run() {				\n				",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new Runnable() {\n" + 
-		"      public void run() {\n" + 
-		"        <CompleteOnName:>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<1G8DE30>"
-	);
-}
-/*
- * Completion on an empty name reference. 
- */
-public void testEmptyNameReference() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"											\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"int i = 0;							\n		",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    <CompleteOnName:>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on empty name reference>"
-	);
-}
-/*
- * Completion on an empty name reference after a cast. 
- */
-public void testEmptyNameReferenceAfterCast() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		X x = (X)							\n" +
-		"											\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"(X)",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    X x = (X) <CompleteOnName:>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on empty name reference after cast>"
-	);
-}
-/*
- * Completion on an empty name reference after + operator. 
- */
-public void testEmptyNameReferenceAfterPlus() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		1 + 								\n" +
-		"											\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"1 +",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on empty name reference after + operator>"
-	);
-}
-/*
- * Completion on an empty name reference in an array dimension. 
- */
-public void testEmptyNameReferenceInArrayDim() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		int[]								\n" +
-		"											\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"int[",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on empty name reference in array dim>"
-	);
-}
-/*
- * Completion on an empty name reference in inner class. 
- */
-public void testEmptyNameReferenceInInnerClass() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {									\n" +
-		"	void foo() {							\n" +
-		"		class Y {							\n" +
-		"			void bar() {					\n" +
-		"											\n" +
-		"			}								\n" +
-		"		}									\n" +
-		"											\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"\n				",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" +
-		"  void foo() {\n" + 
-		"    class Y {\n" + 
-		"      Y() {\n" + 
-		"      }\n" + 
-		"      void bar() {\n" + 
-		"        <CompleteOnName:>;\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on empty name reference in inner class>"
-	);
-}
-/*
- * Completion in the statement following an if expression. 
- */
-public void testInIfThenStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		if (bar()) 							\n" +
-		"											\n" +
-		"											\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"\n			",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnName:>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete in if then statement>"
-	);
-}
-/*
- * Completion on a name reference inside an inner class in a field initializer. 
- */
-public void testInnerClassFieldInitializer() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	Object o = new Object() {				\n" +
-		"		void foo() {						\n" +
-		"			xyz								\n" +
-		"		}									\n" +
-		"	};										\n" +
-		"}											\n",
-		// completeBehind:
-		"xyz",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:xyz>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  Object o = new Object() {\n" +
-		"    void foo() {\n" +
-		"      <CompleteOnName:xyz>;\n" +
-		"    }\n" +
-		"  };\n" +
-		"  Bar() {\n" +
-		"  }\n" +
-		"}\n",
-		// expectedCompletionIdentifier:
-		"xyz",
-		// expectedReplacedSource:
-		"xyz",
-		// test name
-		"<complete on name reference in inner class in field initializer>"
-	);
-}
-/*
- * Completion on an empty name reference inside an invocation in a field initializer. 
- */
-public void testInvocationFieldInitializer() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	String s = fred(1 + );					\n" +
-		"	void foo() {							\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"(1 + ",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  String s = (1 + <CompleteOnName:>);\n" +
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"",
-		// test name
-		"<complete on empty name reference in invocation in field initializer>"
-	);
-}
-/*
- * Completion inside an anonymous inner class which is
- * inside a method invocation with receiver.
- */
-public void testMethodInvocationAnonymousInnerClass() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		primary().bizz(							\n" +
-		"			new X() {							\n" +
-		"				void fuzz() {					\n" +
-		"					x.y.z						\n" +
-		"				}								\n" +
-		"			}									\n"	+			
-		"		);										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"x.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:x.>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new X() {\n" + 
-		"      void fuzz() {\n" + 
-		"        <CompleteOnName:x.>;\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"x.",
-		// test name
-		"<complete inside anonymous inner class inside method invocation 1>"
-	);
-}
-/*
- * Completion on a qualified name reference, where the cursor is in the 
- * first type reference. 
- */
-public void testQualifiedNameReferenceShrinkAll() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		a.b.c.Xxx o = new Y(i);		\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"		a",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:a>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    <CompleteOnName:a>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"a",
-		// expectedReplacedSource:
-		"a",
-		// test name
-		"<complete on qualified name reference (shrink all)>"
-	);
-}
-/*
- * Completion on a qualified name reference, where the cursor is right after the first dot.
- */
-public void testQualifiedNameReferenceShrinkAllButOne() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar() {							\n" +
-		"			Bar.x.x.super();					\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"Bar.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:Bar.>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  public class InnerBar {\n" +
-		"    public InnerBar() {\n" + 
-		"    }\n" + 
-		"  }\n" +
-		"  public class SubInnerBar extends InnerBar {\n" +
-		"    SubInnerBar() {\n" + 
-		"      super();\n" + 
-		"      <CompleteOnName:Bar.>;\n" +
-		"    }\n" +
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"Bar.",
-		// test name
-		"<complete on qualified name reference (shrink all but one)>"
-	);
-}
-/*
- * Completion on a qualified name reference, where the cursor is right after the first dot. 
- */
-public void testQualifiedNameReferenceShrinkAllButOne2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		a.b.c.X o = new Y(i);		\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"		a.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:a.>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    <CompleteOnName:a.>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"a.",
-		// test name
-		"<complete on qualified name reference (shrink all but one) 2>"
-	);
-}
-/*
- * Completion on a qualified name reference,where the cursor is right after the end 
- * of the last name reference.  
- */
-public void testQualifiedNameReferenceShrinkNone() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar() {							\n" +
-		"			Bar.x.x.super();					\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"Bar.x.x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:Bar.x.x>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  public class InnerBar {\n" + 
-		"    public InnerBar() {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public class SubInnerBar extends InnerBar {\n" + 
-		"    SubInnerBar() {\n" + 
-		"      super();\n" + 
-		"      <CompleteOnName:Bar.x.x>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"x",
-		// expectedReplacedSource:
-		"Bar.x.x",
-		// test name
-		"<complete on qualified name reference (shrink none)>"
-	);
-}
-/*
- * Completion on a qualified name reference, where the cursor is right after the end 
- * of the last type reference. 
- */
-public void testQualifiedNameReferenceShrinkNone2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		a.b.c.Xxx o = new Y(i);		\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:a.b.c.X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    <CompleteOnName:a.b.c.X>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"a.b.c.Xxx",
-		// test name
-		"<complete on qualified name reference (shrink none) 2>"
-	);
-}
-/*
- * Completion on a qualified name reference, where the cursor is right after the 
- * last dot.
- */
-public void testQualifiedNameReferenceShrinkOne() {
-	this.runTestCheckMethodParse(
-		// compilationUnit: 
-		"class Bar {									\n" +
-		"	static Bar x;								\n" +
-		"	public class InnerBar {						\n" +
-		"	}											\n" +
-		"	public class SubInnerBar extends InnerBar {	\n" +
-		"		SubInnerBar() {							\n" +
-		"			Bar.x.x.super();					\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"Bar.x.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:Bar.x.>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  public class InnerBar {\n" +
-		"    public InnerBar() {\n" + 
-		"    }\n" + 
-		"  }\n" +
-		"  public class SubInnerBar extends InnerBar {\n" +
-		"    SubInnerBar() {\n" + 
-		"      super();\n" + 
-		"      <CompleteOnName:Bar.x.>;\n" +
-		"    }\n" +
-		"  }\n" + 
-		"  static Bar x;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"Bar.x.",
-		// test name
-		"<complete on qualified name reference (shrink one)>"
-	);
-}
-/*
- * Completion on a qualified name reference, where the cursor is right after the 
- * last dot. 
- */
-public void testQualifiedNameReferenceShrinkOne2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		a.b.c.X o = new Y(i);		\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"a.b.c.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:a.b.c.>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    <CompleteOnName:a.b.c.>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"a.b.c.",
-		// test name
-		"<complete on qualified name reference (shrink one) 2>"
-	);
-}
-/*
- * Completion on a qualified name reference that contains a unicode. 
- */
-public void testUnicode() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class X {					\n" + 
-		"	void foo() {			\n" + 
-		"		bar.\\u005ax 		\n" +
-		"	}						\n" + 
-		"}							\n",
-		// completeBehind:
-		"x",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:bar.Zx>",
-		// expectedUnitDisplayString:
-		"class X {\n" + 
-		"  X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    <CompleteOnName:bar.Zx>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"Zx",
-		// expectedReplacedSource:
-		"bar.\\u005ax",
-		// test name
-		"<complete on unicode>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ParserTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ParserTest.java
deleted file mode 100644
index 2d80c97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ParserTest.java
+++ /dev/null
@@ -1,693 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractRegressionTest;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class ParserTest extends AbstractRegressionTest {
-static {
-//		TESTS_NAMES = new String[] { "test000" };
-//		TESTS_NUMBERS = new int[] { 18 };
-//		TESTS_RANGE = new int[] { 11, -1 };
-}
-public ParserTest(String name) {
-	super(name);
-}
-public void test001() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function foo(){\n" +
-			"		throws\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	throws\n" + 
-		"	^^^^^^\n" + 
-		"Syntax error on token \"throws\", delete this token\n" + 
-		"----------\n"
-	);
-}
-public void test002() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function foo(){\n" +
-			"		throws new\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	throws new\n" + 
-		"	^^^^^^^^^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n"
-	);
-}
-public void test003() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function foo(){\n" +
-			"		throws new X\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	throws new X\n" + 
-		"	^^^^^^\n" + 
-		"Syntax error on token \"throws\", throw expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 2)\n" + 
-		"	throws new X\n" + 
-		"	           ^\n" + 
-		"Syntax error, unexpected end of method\n" + 
-		"----------\n"
-	);
-}
-//public void test004() {
-//	this.runNegativeTest(
-//		new String[] {
-//			"X.js",
-//			"public class X {\n" +
-//			"	{\n" +
-//			"		throws\n" +
-//			"	}\n" +
-//			"}\n"
-//		},
-//		"----------\n" + 
-//		"1. ERROR in X.js (at line 3)\n" + 
-//		"	throws\n" + 
-//		"	^^^^^^\n" + 
-//		"Syntax error on token \"throws\", delete this token\n" + 
-//		"----------\n"
-//	);
-//}
-//public void test005() {
-//	this.runNegativeTest(
-//		new String[] {
-//			"X.js",
-//			"public class X {\n" +
-//			"	{\n" +
-//			"		throws new\n" +
-//			"	}\n" +
-//			"}\n"
-//		},
-//		"----------\n" + 
-//		"1. ERROR in X.js (at line 3)\n" + 
-//		"	throws new\n" + 
-//		"	^^^^^^^^^^\n" + 
-//		"Syntax error on tokens, delete these tokens\n" + 
-//		"----------\n"
-//	);
-//}
-public void test006() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	{\n" +
-			"		throws new X\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 3)\n" + 
-		"	throws new X\n" + 
-		"	^^^^^^\n" + 
-		"Syntax error on token \"throws\", throw expected\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 3)\n" + 
-		"	throws new X\n" + 
-		"	           ^\n" + 
-		"Syntax error, unexpected end of initializer\n" + 
-		"----------\n"
-	);
-}
-//public void test007() {
-//	this.runNegativeTest(
-//		new String[] {
-//			"X.js",
-//			"public class X {\n" +
-//			"	void foo()throw {\n" +
-//			"	}\n" +
-//			"}\n"
-//		},
-//		"----------\n" + 
-//		"1. ERROR in X.js (at line 1)\n" + 
-//		"	public class X {\n" + 
-//		"	               ^\n" + 
-//		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-//		"----------\n" + 
-//		"2. ERROR in X.js (at line 2)\n" + 
-//		"	void foo()throw {\n" + 
-//		"	          ^^^^^\n" + 
-//		"Syntax error on token \"throw\", { expected\n" + 
-//		"----------\n"
-//	);
-//}
-//public void test008() {
-//	this.runNegativeTest(
-//		new String[] {
-//			"X.js",
-//			"public class X {\n" +
-//			"	void foo()throw E {\n" +
-//			"	}\n" +
-//			"}\n"
-//		},
-//		"----------\n" + 
-//		"1. ERROR in X.js (at line 1)\n" + 
-//		"	public class X {\n" + 
-//		"	               ^\n" + 
-//		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-//		"----------\n" + 
-//		"2. ERROR in X.js (at line 2)\n" + 
-//		"	void foo()throw E {\n" + 
-//		"	          ^^^^^\n" + 
-//		"Syntax error on token \"throw\", throws expected\n" + 
-//		"----------\n" + 
-//		"3. ERROR in X.js (at line 4)\n" + 
-//		"	}\n" + 
-//		"	^\n" + 
-//		"Syntax error on token \"}\", delete this token\n" + 
-//		"----------\n"
-//	);
-//}
-public void test009() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function foo(){\n" +
-			"		throws e\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	throws e\n" + 
-		"	^^^^^^^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n"
-	);
-}
-//public void test010() {
-//	this.runNegativeTest(
-//		new String[] {
-//			"X.js",
-//			"public class X {\n" +
-//			"	void foo(){\n" +
-//			"		throws e;\n" +
-//			"	}\n" +
-//			"}\n"
-//		},
-//		"----------\n" + 
-//		"1. ERROR in X.js (at line 3)\n" + 
-//		"	throws e;\n" + 
-//		"	^^^^^^\n" + 
-//		"Syntax error on token \"throws\", throw expected\n" + 
-//		"----------\n"
-//	);
-//}
-//public void test011() {
-//	this.runNegativeTest(
-//		new String[] {
-//			"X.js",
-//			"public class X {\n" +
-//			"	public void foo(X, Object o, String s) {\n" +
-//			"	}\n" +
-//			"   public void bar(){}\n" + 
-//			"}\n"
-//		},
-//		"----------\n" + 
-//		"1. ERROR in X.js (at line 2)\n" + 
-//		"	public void foo(X, Object o, String s) {\n" + 
-//		"	                 ^\n" + 
-//		"Syntax error on token \",\", . expected\n" + 
-//		"----------\n"
-//	);
-//}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40681
- */
-public void test012() {
-	Hashtable nls = new Hashtable();
-	nls.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function foo() {\n" +
-			"		\"foo\".equals(\"bar\");\n" +
-			"		;\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	\"foo\".equals(\"bar\");\n" + 
-		"	^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 2)\n" + 
-		"	\"foo\".equals(\"bar\");\n" + 
-		"	             ^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n",
-		null, // custom classpath
-		true, // flush previous output dir content
-		nls // custom options
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40681
- */
-public void test013() {
-	Hashtable nls = new Hashtable();
-	nls.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function foo() {\n" +
-			"		\"foo\".equals(\"bar\");\n" +
-			"		//;\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	\"foo\".equals(\"bar\");\n" + 
-		"	^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 2)\n" + 
-		"	\"foo\".equals(\"bar\");\n" + 
-		"	             ^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n",
-		null, // custom classpath
-		true, // flush previous output dir content
-		nls // custom options
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47227
- */
-//public void test014() {
-//	this.runNegativeTest(
-//		new String[] {
-//			"X.js",
-//			"public class X {\n" +
-//			"	public void foo() { \n" +
-//			"		import java.lang.*;\n" +
-//			"	} \n" +
-//			"}\n"
-//		},
-//		"----------\n" + 
-//		"1. ERROR in X.js (at line 3)\n" + 
-//		"	import java.lang.*;\n" + 
-//		"	^^^^^^\n" + 
-//		"Syntax error on token \"import\", delete this token\n" + 
-//		"----------\n" + 
-//		"2. ERROR in X.js (at line 3)\n" + 
-//		"	import java.lang.*;\n" + 
-//		"	^^^^^^^^^^^^^^^^^\n" + 
-//		"Syntax error on token(s), misplaced construct(s)\n" + 
-//		"----------\n"
-//	);
-//}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60848
- */
-public void _test015() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"function foo() {\n" + 
-			"// some code\n" + 
-			"}\n" + 
-			"/*\n" + 
-			"// some comments\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 4)\n" + 
-		"	/*\n" + 
-		"// some comments\n" + 
-		"\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unexpected end of comment\n" + 
-		"----------\n"
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60848
- */
-public void test016() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"function foo() {\n" + 
-			"	var s = \""
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"\n" + 
-		"	           ^\n" + 
-		"String literal is not properly closed by a double-quote\n" + 
-		"----------\n"
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60848
- */
-public void test017() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"function foo() {\n" + 
-			"	var c = '"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var c = \'\n" + 
-		"	         ^\n" + 
-		"Invalid character constant\n" + 
-		"----------\n"
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60848
- */
-public void test018() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"function foo() {\n" + 
-			"	var c = '\\u0"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var c = \'\\u0\n" + 
-		"	          ^^^\n" + 
-		"Invalid unicode\n" + 
-		"----------\n"
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=12287
- */
-public void test019() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function doit() {\n" + 
-			"		var foo = null;\n" + 
-			"		foo[0] = \n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 3)\n" + 
-		"	foo[0] = \n" + 
-		"	     ^\n" + 
-		"Syntax error, insert \"AssignmentOperator Expression\" to complete Assignment\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 3)\n" + 
-		"	foo[0] = \n" + 
-		"	     ^\n" + 
-		"Syntax error, insert \";\" to complete Statement\n" + 
-		"----------\n"
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=38895
- */
-public void test020() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main( args) {\n" + 
-			"	}\n" + 
-			"	function newLibraryEntry() {\n" + 
-			
-			"		if (sourceAttachmentPath != null) {\n" + 
-			"			if (sourceAttachmentPath.isEmpty()) { && !\n" + 
-			"sourceAttachmentPath.isAbsolute()) {\n" + 
-			"			foo();\n" + 
-			"		}\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"	}\n" + 
-			"	function foo() {\n" + 
-			"	}\n" + 
-			"	function bar() {\n" + 
-			"	}\n" + 
-			""
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 5)\n" + 
-		"	if (sourceAttachmentPath.isEmpty()) { && !\n" + 
-		"	                                      ^^\n" + 
-		"Syntax error on token \"&&\", invalid (\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 6)\n" + 
-		"	sourceAttachmentPath.isAbsolute()) {\n" + 
-		"	                                   ^\n" + 
-		"Syntax error on token \"{\", invalid AssignmentOperator\n" + 
-		"----------\n"
-	);
-}
-public void test021() {
-	StringBuffer buffer = new StringBuffer();
-//	buffer.append("public class X {\n");
-	for (int i = 0; i < 1000; i++) {
-		buffer.append("\tvar field_" + i + " = 0; \n");
-	}
-	for (int i = 0; i < 1000; i++) {
-		if (i == 0)
-			buffer.append("\tfunction method_" + i + "() { /* default */ } \n");
-		else
-			buffer.append("\tfunction method_" + i + "() { method_" + (i - 1) + "() \n");
-	}
-//	buffer.append("}\n");
-	
-	Hashtable options = new Hashtable();
-	options.put(CompilerOptions.OPTION_MaxProblemPerUnit, "10");
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			buffer.toString()
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 1002)\n" + 
-		"	void method_1() { method_0() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 1002)\n" + 
-		"	void method_1() { method_0() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n" + 
-		"3. ERROR in X.js (at line 1003)\n" + 
-		"	void method_2() { method_1() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n" + 
-		"4. ERROR in X.js (at line 1003)\n" + 
-		"	void method_2() { method_1() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n" + 
-		"5. ERROR in X.js (at line 1004)\n" + 
-		"	void method_3() { method_2() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n" + 
-		"6. ERROR in X.js (at line 1004)\n" + 
-		"	void method_3() { method_2() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n" + 
-		"7. ERROR in X.js (at line 1005)\n" + 
-		"	void method_4() { method_3() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n" + 
-		"8. ERROR in X.js (at line 1005)\n" + 
-		"	void method_4() { method_3() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n" + 
-		"9. ERROR in X.js (at line 1006)\n" + 
-		"	void method_5() { method_4() \n" + 
-		"	                           ^\n" + 
-		"Syntax error, insert \"}\" to complete MethodBody\n" + 
-		"----------\n" + 
-		"10. ERROR in X.js (at line 2001)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n",
-		null, // custom classpath
-		true, // flush previous output dir content
-		options // custom options
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=156119
- */
-public void test022() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportEmptyStatement, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"interface X {\n" + 
-			"    int f= 1;;\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	int f= 1;;\n" + 
-		"	         ^\n" + 
-		"Unnecessary semicolon\n" + 
-		"----------\n",
-		null, // custom classpath
-		true, // flush previous output dir content
-		options // custom options
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=156119
- */
-public void test023() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportEmptyStatement, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"class X {\n" + 
-			"    int f= 1;;\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	int f= 1;;\n" + 
-		"	         ^\n" + 
-		"Unnecessary semicolon\n" + 
-		"----------\n",
-		null, // custom classpath
-		true, // flush previous output dir content
-		options // custom options
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=156119
- */
-public void test024() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportEmptyStatement, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"interface X {\n" + 
-			"    int f= 1;\\u003B\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	int f= 1;\\u003B\n" + 
-		"	         ^^^^^^\n" + 
-		"Unnecessary semicolon\n" + 
-		"----------\n",
-		null, // custom classpath
-		true, // flush previous output dir content
-		options // custom options
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=160337
- */
-public void test025() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportUndocumentedEmptyBlock, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"public class X {\n" + 
-			"        static class Y {\n" + 
-			"                public void foo(int i) {}\n" + 
-			"        }\n" + 
-			"        static Y FakeInvocationSite = new Y(){\n" + 
-			"                public void foo(int i) {}\n" + 
-			"        };\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 3)\n" + 
-		"	public void foo(int i) {}\n" + 
-		"	                       ^^\n" + 
-		"Empty block should be documented\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 6)\n" + 
-		"	public void foo(int i) {}\n" + 
-		"	                       ^^\n" + 
-		"Empty block should be documented\n" + 
-		"----------\n",
-		null, // custom classpath
-		true, // flush previous output dir content
-		options // custom options
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=160337
- */
-public void test026() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportUndocumentedEmptyBlock, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"public class X {\n" + 
-			"        static class Y {\n" + 
-			"                public void foo(int i) {}\n" + 
-			"        }\n" + 
-			"        static Y FakeInvocationSite = new Y(){\n" + 
-			"                public void foo(int i) {\n" +
-			"					class A {\n" +
-			"						A() {}\n" +
-			"						public void bar() {}\n" +
-			"					}\n" +
-			"					new A().bar();\n" +
-			"				 }\n" + 
-			"        };\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 3)\n" + 
-		"	public void foo(int i) {}\n" + 
-		"	                       ^^\n" + 
-		"Empty block should be documented\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 8)\n" + 
-		"	A() {}\n" + 
-		"	    ^^\n" + 
-		"Empty block should be documented\n" + 
-		"----------\n" + 
-		"3. ERROR in X.js (at line 9)\n" + 
-		"	public void bar() {}\n" + 
-		"	                  ^^\n" + 
-		"Empty block should be documented\n" + 
-		"----------\n",
-		null, // custom classpath
-		true, // flush previous output dir content
-		options // custom options
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ReferenceTypeCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ReferenceTypeCompletionTest.java
deleted file mode 100644
index bc4427a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/ReferenceTypeCompletionTest.java
+++ /dev/null
@@ -1,1553 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-/**
- * Completion is expected to be a ReferenceType.
- */
-public class ReferenceTypeCompletionTest extends AbstractCompletionTest {
-public ReferenceTypeCompletionTest(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(ReferenceTypeCompletionTest.class);
-}
-/*
- * Regression test for 1FTZCIG. 
- */
-public void test1FTZCIG() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		new X() {							\n" +
-		"			protected void bar() {			\n" +
-		"			}								\n" +
-		"		}									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"p",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:p>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  Bar() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    new X() {\n" +
-		"      <CompleteOnType:p>;\n" +
-		"      void bar() {\n" +
-		"      }\n" +
-		"    };\n" +
-		"  }\n" +
-		"}\n",
-		// expectedCompletionIdentifier:
-		"p",
-		// expectedReplacedSource:
-		"protected",
-		// test name
-		"<1FTZCIG>"
-	);
-}
-/*
- * Block ::= OpenBlock '{' <BlockStatementsopt> '}'  
- */
-public void testBlock() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		try {								\n" +
-		"			Xxx o = new Y();				\n" +
-		"		} catch (Exception e) {				\n"	+
-		"		}									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    {\n" + 
-		"      <CompleteOnName:X>;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on block>"
-	);
-}
-/*
- * BlockStatements ::= BlockStatements <BlockStatement> 
- */
-public void testBlockStatements() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		Xxx o = new Y();					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    <CompleteOnName:X>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on block statements>"
-	);
-}
-/*
- * CatchClause ::= 'catch' '(' <FormalParameter> ')' Block  
- */
-public void testCatchClause1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		try {								\n" +
-		"			fred();							\n" +
-		"		} catch (Xxx e) {					\n"	+
-		"		}									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnException:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        fred();\n" + 
-		"      }\n" + 
-		"    catch (<CompleteOnException:X>  )       {\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on catch clause 1>"
-	);
-}
-/*
- * CatchClause ::= 'catch' '(' <FormalParameter> ')' Block  
- */
-public void testCatchClause2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		try {								\n" +
-		"			fred();							\n" +
-		"		} catch (final Xxx e) {				\n"	+
-		"		}									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnException:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        fred();\n" + 
-		"      }\n" + 
-		"    catch (<CompleteOnException:X>  )       {\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on catch clause 2>"
-	);
-}
-/*
- * CatchClause ::= 'catch' '(' <FormalParameter> ')' Block  
- */
-public void testCatchClause3() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		try {								\n" +
-		"			fred();							\n" +
-		"		} catch (x.y.Xxx e) {				\n"	+
-		"		}									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"x.y.X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnException:x.y.X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    try \n" + 
-		"      {\n" + 
-		"        fred();\n" + 
-		"      }\n" + 
-		"    catch (<CompleteOnException:x.y.X>  )       {\n" + 
-		"      }\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"x.y.Xxx",
-		// test name
-		"<complete on catch clause 3>"
-	);
-}
-/*
- * ClassBody ::= '{' <ClassBodyDeclarationsopt> '}' 
- */
-public void testClassBody() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	Xxx foo() {								\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"  }\n" +
-		"  <CompleteOnType:X>\n" +
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on  class body>"
-	);
-}
-/*
- * ClassBodyDeclarations ::= ClassBodyDeclarations <ClassBodyDeclaration> 
- */
-public void testClassBodyDeclarations() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	int i = 0;								\n" +
-		"	Xxx foo() {								\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  int i;\n" +
-		"  Bar() {\n" +
-		"  }\n" +
-		"  <CompleteOnType:X>\n" +
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on  class body declarations>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= 'new' <ClassType> '(' ArgumentListopt ')' ClassBodyopt 
- */
-public void testClassInstanceCreationExpression1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		new Xxx().zzz();					\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new <CompleteOnType:X>();\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression 1>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= 'new' <ClassType> '(' ArgumentListopt ')' ClassBodyopt 
- */
-public void testClassInstanceCreationExpression2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		new Y(new Xxx()).zzz();				\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new Y(new <CompleteOnType:X>());\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression 2>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= 'new' <ClassType> '(' ArgumentListopt ')' ClassBodyopt 
- */
-public void testClassInstanceCreationExpression3() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		new Y(1, true, new Xxx()).zzz();	\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new Y(1, true, new <CompleteOnType:X>());\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression 3>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= 'new' <ClassType> '(' ArgumentListopt ')' ClassBodyopt 
- */
-public void testClassInstanceCreationExpression4() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		fred().new Y(new Xxx()).zzz();		\n" +
-		"	}										\n" +
-		"}\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    fred().new Y(new <CompleteOnType:X>());\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression 4>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testClassInstanceCreationExpressionName1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Bar {								\n" +
-		"	static Bar baz;								\n" +
-		"	public class X {							\n" +
-		"		void foo() {							\n" +
-		"			Bar.baz.new Xxx();					\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"new X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"public class Bar {\n" + 
-		"  public class X {\n" + 
-		"    public X() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" +
-		"      Bar.baz.new <CompleteOnType:X>();\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar baz;\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression with name 1>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testClassInstanceCreationExpressionName2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Bar {								\n" +
-		"	static Bar baz;								\n" +
-		"	public class X {							\n" +
-		"		void foo() {							\n" +
-		"			new Y(Bar.baz.new Xxx());			\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"new X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"public class Bar {\n" + 
-		"  public class X {\n" + 
-		"    public X() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" +
-		"      new Y(Bar.baz.new <CompleteOnType:X>());\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar baz;\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression with name 2>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testClassInstanceCreationExpressionName3() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Bar {								\n" +
-		"	static Bar baz;								\n" +
-		"	public class X {							\n" +
-		"		void foo() {							\n" +
-		"			new Y(1, true, Bar.baz.new Xxx());	\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"new X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"public class Bar {\n" + 
-		"  public class X {\n" + 
-		"    public X() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" +
-		"      new Y(1, true, Bar.baz.new <CompleteOnType:X>());\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar baz;\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression with name 3>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testClassInstanceCreationExpressionName4() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Bar {								\n" +
-		"	static Bar baz;								\n" +
-		"	public class X {							\n" +
-		"		void foo() {							\n" +
-		"			fred().new Y(Bar.baz.new Xxx());		\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"new X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"public class Bar {\n" + 
-		"  public class X {\n" + 
-		"    public X() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" +
-		"      fred().new Y(Bar.baz.new <CompleteOnType:X>());\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  static Bar baz;\n" +
-		"  <clinit>() {\n" +
-		"  }\n" +
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression with name 4>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= Primary '.' 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testClassInstanceCreationExpressionPrimary1() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Bar {								\n" +
-		"	public class X {							\n" +
-		"		void foo() {							\n" +
-		"			new Bar().new Xxx();				\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"new X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"public class Bar {\n" + 
-		"  public class X {\n" + 
-		"    public X() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" +
-		"      new Bar().new <CompleteOnType:X>();\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression with primary 1>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= Primary '.' 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testClassInstanceCreationExpressionPrimary2() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Bar {								\n" +
-		"	public class X {							\n" +
-		"		void foo() {							\n" +
-		"			new Y(new Bar().new Xxx());			\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"new X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"public class Bar {\n" + 
-		"  public class X {\n" + 
-		"    public X() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" +
-		"      new Y(new Bar().new <CompleteOnType:X>());\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression with primary 2>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= Primary '.' 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testClassInstanceCreationExpressionPrimary3() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Bar {								\n" +
-		"	public class X {							\n" +
-		"		void foo() {							\n" +
-		"			fred().new Y(new Bar().new Xxx());	\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"new X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"public class Bar {\n" + 
-		"  public class X {\n" + 
-		"    public X() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" +
-		"      fred().new Y(new Bar().new <CompleteOnType:X>());\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression with primary 3>"
-	);
-}
-/*
- * ClassInstanceCreationExpression ::= Primary '.' 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt
- */
-public void testClassInstanceCreationExpressionPrimary4() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"public class Bar {								\n" +
-		"	public class X {							\n" +
-		"		void foo() {							\n" +
-		"			new Y(1, true, new Bar().new Xxx());\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"new X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"public class Bar {\n" + 
-		"  public class X {\n" + 
-		"    public X() {\n" + 
-		"    }\n" + 
-		"    void foo() {\n" +
-		"      new Y(1, true, new Bar().new <CompleteOnType:X>());\n" +
-		"    }\n" + 
-		"  }\n" + 
-		"  public Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class instance creation expression with primary 4>"
-	);
-}
-/*
- * ClassTypeList ::= ClassTypeList ',' <ClassTypeElt> 
- */
-public void testClassTypeList() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() throws Exception, Xxx {		\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnException:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() throws Exception, <CompleteOnException:X> {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on class type list>"
-	);
-}
-/*
- * ConstructorBody ::= NestedMethod '{' <BlockStatementsopt> '}' 
- */
-public void testConstructorBody() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	Bar() {									\n" +
-		"		Xxx o = new Y();					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"    super();\n" +
-		"    <CompleteOnName:X>;\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on constructor body>"
-	);
-}
-/*
- * ConstructorDeclarator ::= 'Identifier' '(' <FormalParameterListopt> ')' 
- */
-public void testConstructorDeclarator() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	Bar(Xxx o) {							\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar(<CompleteOnType:X> o) {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on constructor declarator>"
-	);
-}
-/*
- * The reference type is burried in several blocks 
- */
-public void testDeepReference() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() {							\n" +
-		"		if (a == 2) {						\n" +
-		"		}									\n" +
-		"		try {								\n" +
-		"		} finally {							\n" +
-		"			if (1 == fgh) {					\n" +
-		"				Xxx o = null;				\n" +
-		"			}								\n" +
-		"		}									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" +
-		"  }\n" +
-		"  void foo() {\n" +
-		"    {\n" +
-		"      {\n" +
-		"        <CompleteOnName:X>;\n" +
-		"      }\n" +
-		"    }\n" +
-		"  }\n" +
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on deep type>"
-	);
-}
-/*
- * Super ::= 'extends' <ClassType> 
- */
-public void testExtendsClass() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar extends Xxx {					\n" + 
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnClass:X>",
-		// expectedUnitDisplayString:
-		"class Bar extends <CompleteOnClass:X> {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on extends>"
-	);
-}
-/*
- * ExtendsInterfaces ::= 'extends' <InterfaceTypeList> 
- */
-public void testExtendsInterface() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"interface Bar extends Xxx {				\n" + 
-		"}											\n", 
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnInterface:X>",
-		// expectedUnitDisplayString:
-		"interface Bar extends <CompleteOnInterface:X> {\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on extends>"
-	);
-}
-/*
- * FieldDeclaration ::= Modifiersopt <Type> VariableDeclarators ';'
- * where Modifiersopt is not empty
- */
-public void testFieldDeclarationWithModifiers() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	public final Xxx foo;					\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>;",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  <CompleteOnType:X>;\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on field declaration with modifiers>"
-	);
-}
-/*
- * FieldDeclaration ::= Modifiersopt <Type> VariableDeclarators ';'
- * where Modifiersopt is empty
- */
-public void testFieldDeclarationWithoutModifiers() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	Xxx foo;								\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>;",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  <CompleteOnType:X>;\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on field declaration without modifiers>"
-	);
-}
-/*
- * FormalParameter ::= Modifiers <Type> VariableDeclaratorId 
- */
-public void testFormalParameter() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo(final Xxx x) {					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo(final <CompleteOnType:X> x) {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on formal parameter>"
-	);
-}
-/*
- * FormalParameterList ::= FormalParameterList ',' <FormalParameter> 
- */
-public void testFormalParameterList() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo(int i, final Object o, Xxx x) {\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo(int i, final Object o, <CompleteOnType:X> x) {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on formal parameter list>"
-	);
-}
-/*
- * ForStatement ::= 'for' '(' <ForInitopt> ';' Expressionopt ';' ForUpdateopt ')' Statement
- * or
- * ForStatementNoShortIf ::= 'for' '(' <ForInitopt> ';' Expressionopt ';' ForUpdateopt ')' StatementNoShortIf  
- */
-public void testForStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		for (Xxx o = new Y(); o.size() < 10; ) {\n" +
-		"		}										\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnName:X>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on for statement>"
-	);
-}
-/*
- * Interfaces ::= 'implements' <InterfaceTypeList> 
- */
-public void testImplements() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar implements Xxx {					\n" + 
-		"}											\n", 
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnInterface:X>",
-		// expectedUnitDisplayString:
-		"class Bar implements <CompleteOnInterface:X> {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on implements>"
-	);
-}
-/*
- * RelationalExpression ::= RelationalExpression 'instanceof' <ReferenceType>
- */
-public void testInstanceOf() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	boolean foo() {								\n" +
-		"		return this instanceof Xxx;				\n" +
-		"	}											\n" +
-		"}												\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" +
-		"    (this instanceof <CompleteOnType:X>);\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on instanceof>"
-	);
-}
-/*
- * InterfaceBody ::= '{' <InterfaceMemberDeclarationsopt> '}' 
- */
-public void testInterfaceBody() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"interface Bar {							\n" +
-		"	Xxx foo();								\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"interface Bar {\n" + 
-		"  <CompleteOnType:X>\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on interface body>"
-	);
-}
-/*
- * InterfaceMemberDeclarations ::= InterfaceMemberDeclarations <InterfaceMemberDeclaration> 
- */
-public void testInterfaceMemberDeclarations() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"interface Bar {							\n" +
-		"	int CONSTANT = 0;						\n" +
-		"	Xxx foo();								\n" +
-		"}											\n", 
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"interface Bar {\n" +
-		"  int CONSTANT;\n" + 
-		"  <clinit>() {\n" + 
-		"  }\n" + 
-		"  <CompleteOnType:X>\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on interface member declarations>"
-	);
-}
-/*
- * InterfaceTypeList ::= InterfaceTypeList ',' <InterfaceType> 
- */
-public void testInterfaceTypeList() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"interface Bar extends Comparable, Xxx {	\n" + 
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnInterface:X>",
-		// expectedUnitDisplayString:
-		"interface Bar extends Comparable, <CompleteOnInterface:X> {\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on interface list>"
-	);
-}
-/*
- * LocalVariableDeclaration ::= Modifiers <Type> VariableDeclarators 
- */
-public void testLocalVariableDeclaration() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {									\n" +
-		"	void foo() {								\n" +
-		"		final Xxx o = new Y();					\n" +
-		"	}											\n" +
-		"}												\n", 
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnName:X>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on local variable declaration>"
-	);
-}
-/*
- * MethodBody ::= NestedMethod '{' <BlockStatementsopt> '}' 
- */
-public void testMethodBody() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		Xxx o = new Y();					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    <CompleteOnName:X>;\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on method body>"
-	);
-}
-/*
- * MethodDeclarator ::= 'Identifier' '(' <FormalParameterListopt> ')' Dimsopt 
- */
-public void testMethodDeclarator() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo(Xxx o) {						\n" +
-		"	}										\n" +
-		"}											\n", 
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo(<CompleteOnType:X> o) {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on method declarator>"
-	);
-}
-/*
- * MethodHeader ::= Modifiersopt <Type> MethodDeclarator Throwsopt 
- * where Modifiersopt is not empty 
- */
-public void testMethodHeaderWithModifiers() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	public static Xxx foo() {				\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  <CompleteOnType:X>\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on method header with modifiers>"
-	);
-}
-/*
- * MethodHeader ::= Modifiersopt <Type> MethodDeclarator Throwsopt 
- * where Modifiersopt is empty 
- */
-public void testMethodHeaderWithoutModifiers() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	Xxx foo() {								\n" +
-		"	}										\n" +
-		"}											\n", 
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" +
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  <CompleteOnType:X>\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on method header without modifiers>"
-	);
-}
-/*
- * Completion on a qualified type reference, where the cursor is in the 
- * first type reference. 
- */
-public void testQualifiedTypeReferenceShrinkAll() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		new a.b.c.Xxx();			\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"		new a",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:a>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    new <CompleteOnType:a>();\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"a",
-		// expectedReplacedSource:
-		"a",
-		// test name
-		"<complete on qualified type reference (shrink all)>"
-	);
-}
-/*
- * Completion on a qualified type reference, where the cursor is right after the first dot. 
- */
-public void testQualifiedTypeReferenceShrinkAllButOne() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		new a.b.c.Xxx();			\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"a.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:a.>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    new <CompleteOnType:a.>();\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"a.",
-		// test name
-		"<complete on qualified type reference (shrink all but one)>"
-	);
-}
-/*
- * Completion on a qualified type reference, where the cursor is right after the end 
- * of the last type reference. 
- */
-public void testQualifiedTypeReferenceShrinkNone() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		new a.b.c.Xxx();			\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:a.b.c.X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    new <CompleteOnType:a.b.c.X>();\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"a.b.c.Xxx",
-		// test name
-		"<complete on qualified type reference (shrink none)>"
-	);
-}
-/*
- * Completion on a qualified type reference, where the cursor is right after the 
- * last dot. 
- */
-public void testQualifiedTypeReferenceShrinkOne() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 0;							\n" +
-		"		new a.b.c.Xxx();			\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"a.b.c.",
-		// expectedCompletionNodeToString:
-		"<CompleteOnType:a.b.c.>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" + 
-		"    new <CompleteOnType:a.b.c.>();\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"",
-		// expectedReplacedSource:
-		"a.b.c.",
-		// test name
-		"<complete on qualified type reference (shrink one)>"
-	);
-}
-/*
- * SwitchBlockStatement ::= SwitchLabels <BlockStatements>
- */
-public void testSwitchBlockStatement() {
-	this.runTestCheckMethodParse(
-		// compilationUnit:
-		"class Bar {								\n" +
-		"	void foo() {							\n" +
-		"		int i = 1;							\n" +
-		"		switch (i) {						\n" +
-		"			case 1: 						\n" +
-		"				Xxx o = fred(i);			\n" +
-		"				break;						\n" +
-		"			default:						\n" +
-		"		}									\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnName:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" +
-		"    int i;\n" +
-		"    {\n" +
-		"      <CompleteOnName:X>;\n" +
-		"    }\n" +
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on switch block statement>"
-	);
-}
-/*
- * Throws ::= 'throws' <ClassTypeList>  
- */
-public void testThrows() {
-	this.runTestCheckDietParse(
-		// compilationUnit:
-		"class Bar {								\n" + 
-		"	void foo() throws Xxx {					\n" +
-		"	}										\n" +
-		"}											\n",
-		// completeBehind:
-		"X",
-		// expectedCompletionNodeToString:
-		"<CompleteOnException:X>",
-		// expectedUnitDisplayString:
-		"class Bar {\n" + 
-		"  Bar() {\n" + 
-		"  }\n" + 
-		"  void foo() throws <CompleteOnException:X> {\n" + 
-		"  }\n" + 
-		"}\n",
-		// expectedCompletionIdentifier:
-		"X",
-		// expectedReplacedSource:
-		"Xxx",
-		// test name
-		"<complete on throws>"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/RunCompletionParserTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/RunCompletionParserTests.java
deleted file mode 100644
index 0c7d6d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/RunCompletionParserTests.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class RunCompletionParserTests extends junit.framework.TestCase {
-
-	public final static List TEST_CLASSES = new ArrayList();
-	public final static List TEST_CLASSES_1_5 = new ArrayList();
-	static {
-		TEST_CLASSES.add(AllocationExpressionCompletionTest.class);
-		TEST_CLASSES.add(CompletionParserTest.class);
-		TEST_CLASSES.add(CompletionParserTest2.class);
-		TEST_CLASSES.add(CompletionParserTestKeyword.class);
-		TEST_CLASSES.add(CompletionRecoveryTest.class);
-		TEST_CLASSES.add(FieldAccessCompletionTest.class);
-		TEST_CLASSES.add(JavadocCompletionParserTest.class);
-		TEST_CLASSES.add(LabelStatementCompletionTest.class);
-		TEST_CLASSES.add(MethodInvocationCompletionTest.class);
-		TEST_CLASSES.add(NameReferenceCompletionTest.class);
-		
-	}
-
-	public RunCompletionParserTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		ArrayList testClasses = new ArrayList();
-
-		testClasses.addAll(RunCompletionParserTests.TEST_CLASSES);
-		
-		TestSuite all = new TestSuite(TestAll.class.getName());
-		int possibleComplianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-		if ((possibleComplianceLevels & AbstractCompilerTest.F_1_3) != 0) {
-			ArrayList tests_1_3 = (ArrayList)testClasses.clone();
-			// Reset forgotten subsets tests
-			TestCase.TESTS_PREFIX = null;
-			TestCase.TESTS_NAMES = null;
-			TestCase.TESTS_NUMBERS= null;
-			TestCase.TESTS_RANGE = null;
-			TestCase.RUN_ONLY_ID = null;
-			all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_3, tests_1_3));
-		}
-		if ((possibleComplianceLevels & AbstractCompilerTest.F_1_4) != 0) {
-			ArrayList tests_1_4 = (ArrayList)testClasses.clone();
-			// Reset forgotten subsets tests
-			TestCase.TESTS_PREFIX = null;
-			TestCase.TESTS_NAMES = null;
-			TestCase.TESTS_NUMBERS= null;
-			TestCase.TESTS_RANGE = null;
-			TestCase.RUN_ONLY_ID = null;
-			all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_4, tests_1_4));
-		}
-		if ((possibleComplianceLevels & AbstractCompilerTest.F_1_5) != 0) {
-			ArrayList tests_1_5 = (ArrayList)testClasses.clone();
-			tests_1_5.addAll(TEST_CLASSES_1_5);
-			// Reset forgotten subsets tests
-			TestCase.TESTS_PREFIX = null;
-			TestCase.TESTS_NAMES = null;
-			TestCase.TESTS_NUMBERS= null;
-			TestCase.TESTS_RANGE = null;
-			TestCase.RUN_ONLY_ID = null;
-			all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_5, tests_1_5));
-		}
-		if ((possibleComplianceLevels & AbstractCompilerTest.F_1_6) != 0) {
-			ArrayList tests_1_6 = (ArrayList)testClasses.clone();
-			tests_1_6.addAll(TEST_CLASSES_1_5);
-			// Reset forgotten subsets tests
-			TestCase.TESTS_PREFIX = null;
-			TestCase.TESTS_NAMES = null;
-			TestCase.TESTS_NUMBERS= null;
-			TestCase.TESTS_RANGE = null;
-			TestCase.RUN_ONLY_ID = null;
-			all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_6, tests_1_6));
-		}
-		if ((possibleComplianceLevels & AbstractCompilerTest.F_1_7) != 0) {
-			ArrayList tests_1_7 = (ArrayList)testClasses.clone();
-			tests_1_7.addAll(TEST_CLASSES_1_5);
-			// Reset forgotten subsets tests
-			TestCase.TESTS_PREFIX = null;
-			TestCase.TESTS_NAMES = null;
-			TestCase.TESTS_NUMBERS= null;
-			TestCase.TESTS_RANGE = null;
-			TestCase.RUN_ONLY_ID = null;
-			all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_7, tests_1_7));
-		}
-
-
-		return all;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionJavadocTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionJavadocTest.java
deleted file mode 100644
index 3bc19ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionJavadocTest.java
+++ /dev/null
@@ -1,865 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.codeassist.select.SelectionJavadoc;
-import org.eclipse.wst.jsdt.internal.codeassist.select.SelectionParser;
-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.ConstructorDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.MethodScope;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-
-import junit.framework.Test;
-
-/**
- * Class to test selection in Javadoc comments.
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=54968"
- */
-public class SelectionJavadocTest extends AbstractSelectionTest {
-	
-	String source;
-	StringBuffer result;
-	ICompilationUnit unit;
-
-	public SelectionJavadocTest(String testName) {
-		super(testName);
-	}
-
-	static {
-//		TESTS_NUMBERS = new int[] { 9, 10 };
-//		TESTS_RANGE = new int[] { 26, -1 };
-	}
-
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(SelectionJavadocTest.class);
-	}
-
-	class SelectionVisitor extends ASTVisitor {
-
-		public boolean visit(ConstructorDeclaration constructor, ClassScope scope) {
-			if (constructor.javadoc != null) {
-				assertTrue("Invalid type for Javadoc on " + constructor, constructor.javadoc instanceof SelectionJavadoc);
-				SelectionJavadocTest.this.result.append(constructor.javadoc.toString());
-			}
-			return super.visit(constructor, scope);
-		}
-
-		public boolean visit(FieldDeclaration field, MethodScope scope) {
-			if (field.javadoc != null) {
-				assertTrue("Invalid type for Javadoc on " + field, field.javadoc instanceof SelectionJavadoc);
-				SelectionJavadocTest.this.result.append(field.javadoc.toString());
-			}
-			return super.visit(field, scope);
-		}
-
-		public boolean visit(MethodDeclaration method, Scope scope) {
-			if (method.javadoc != null) {
-				assertTrue("Invalid type for Javadoc on " + method, method.javadoc instanceof SelectionJavadoc);
-				SelectionJavadocTest.this.result.append(method.javadoc.toString());
-			}
-			return super.visit(method, scope);
-		}
-
-		public boolean visit(TypeDeclaration type, BlockScope scope) {
-			if (type.javadoc != null) {
-				assertTrue("Invalid type for Javadoc on " + type, type.javadoc instanceof SelectionJavadoc);
-				SelectionJavadocTest.this.result.append(type.javadoc.toString());
-			}
-			return super.visit(type, scope);
-		}
-
-		public boolean visit(TypeDeclaration type, ClassScope scope) {
-			if (type.javadoc != null) {
-				assertTrue("Invalid type for Javadoc on " + type, type.javadoc instanceof SelectionJavadoc);
-				SelectionJavadocTest.this.result.append(type.javadoc.toString());
-			}
-			return super.visit(type, scope);
-		}
-
-		public boolean visit(TypeDeclaration type, CompilationUnitScope scope) {
-			if (type.javadoc != null) {
-				assertTrue("Invalid type for Javadoc on " + type, type.javadoc instanceof SelectionJavadoc);
-				SelectionJavadocTest.this.result.append(type.javadoc.toString());
-			}
-			return super.visit(type, scope);
-		}
-	}
-
-	protected void assertValid(String expected) {
-		String actual = this.result.toString();
-		if (!actual.equals(expected)) {
-			System.out.println("Expected result for test "+testName()+":");
-			System.out.println(Util.displayString(actual, 3));
-			System.out.println("	source: [");
-			System.out.print(Util.indentString(this.source, 2));
-			System.out.println("]\n");
-			assertEquals("Invalid selection node", expected, actual);
-		}
-	}
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.unit = null;
-	}
-
-	void setUnit(String name, String source) {
-		this.source = source;
-		this.unit = new CompilationUnit(source.toCharArray(), name, null);
-		this.result = new StringBuffer();
-	}
-
-	/*
-	 * Parse a method with selectionNode check
-	 */
-	protected void findJavadoc(String selection) {
-		findJavadoc(selection, 1);
-	}
-
-	protected void findJavadoc(String selection, int occurences) {
-
-		// Verify unit
-		assertNotNull("Missing compilation unit!", this.unit);
-
-		// Get selection start and end
-		int selectionStart = source.indexOf(selection);
-		int length = selection.length();
-		int selectionEnd = selectionStart + length - 1;
-		for (int i = 1; i < occurences; i++) {
-			selectionStart = source.indexOf(selection, selectionEnd);
-			selectionEnd = selectionStart + length - 1;
-		}
-
-		// Parse unit
-		CompilerOptions options = new CompilerOptions(getCompilerOptions());
-		SelectionParser parser = new SelectionParser(new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(),
-			options,
-			new DefaultProblemFactory(Locale.getDefault())));
-		CompilationUnitDeclaration unitDecl = parser.dietParse(this.unit, new CompilationResult(this.unit, 0, 0, 0), selectionStart, selectionEnd);
-		parser.getMethodBodies(unitDecl);
-
-		// Visit compilation unit declaration to find javadoc
-		unitDecl.traverse(new SelectionVisitor(), unitDecl.scope);
-	}
-
-	public void test01() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/** @see #foo() */\n" + 
-			"	void bar() {\n" + 
-			"		foo();\n" + 
-			"	}\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		findJavadoc("foo");
-		assertValid("/**<SelectOnMethod:#foo()>*/\n");
-	}
-
-	public void test02() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/** {@link #foo() foo} */\n" + 
-			"	void bar() {\n" + 
-			"		foo();\n" + 
-			"	}\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		findJavadoc("foo");
-		assertValid("/**<SelectOnMethod:#foo()>*/\n");
-	}
-
-	public void test03() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/** @see Test */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		findJavadoc("Test", 2);
-		assertValid("/**<SelectOnType:Test>*/\n");
-	}
-
-	public void test04() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/** Javadoc {@link Test} */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		findJavadoc("Test", 2);
-		assertValid("/**<SelectOnType:Test>*/\n");
-	}
-
-	public void test05() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	int field;\n" + 
-			"	/** @see #field */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		findJavadoc("field", 2);
-		assertValid("/**<SelectOnField:#field>*/\n");
-	}
-
-	public void test06() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	int field;\n" + 
-			"	/**{@link #field}*/\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		findJavadoc("field", 2);
-		assertValid("/**<SelectOnField:#field>*/\n");
-	}
-
-	public void test07() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Test#field\n" + 
-			"	 * @see #foo(int, String)\n" + 
-			"	 * @see Test#foo(int, String)\n" + 
-			"	 */\n" + 
-			"	void bar() {\n" + 
-			"		foo(0, \"\");\n" + 
-			"	}\n" + 
-			"	int field;\n" + 
-			"	void foo(int x, String s) {}\n" + 
-			"}\n"
-		);
-		findJavadoc("foo");
-		findJavadoc("String");
-		findJavadoc("Test", 2);
-		findJavadoc("foo", 2);
-		findJavadoc("String", 2);
-		findJavadoc("Test", 3);
-		findJavadoc("field");
-		assertValid(
-			"/**<SelectOnMethod:#foo(int , String )>*/\n" +
-			"/**<SelectOnType:String>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnMethod:Test#foo(int , String )>*/\n" +
-			"/**<SelectOnType:String>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnField:Test#field>*/\n"
-		);
-	}
-
-	public void test08() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * First {@link #foo(int, String)}\n" + 
-			"	 * Second {@link Test#foo(int, String) method foo}\n" + 
-			"	 * Third {@link Test#field field}\n" + 
-			"	 */\n" + 
-			"	void bar() {\n" + 
-			"		foo(0, \"\");\n" + 
-			"	}\n" + 
-			"	int field;\n" + 
-			"	void foo(int x, String s) {}\n" + 
-			"}\n"
-		);
-		findJavadoc("foo");
-		findJavadoc("String");
-		findJavadoc("Test", 2);
-		findJavadoc("foo", 2);
-		findJavadoc("String", 2);
-		findJavadoc("Test", 3);
-		findJavadoc("field");
-		assertValid(
-			"/**<SelectOnMethod:#foo(int , String )>*/\n" +
-			"/**<SelectOnType:String>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnMethod:Test#foo(int , String )>*/\n" +
-			"/**<SelectOnType:String>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnField:Test#field>*/\n"
-		);
-	}
-
-	public void test09() {
-		setUnit("test/junit/Test.java",
-			"package test.junit;\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see test.junit.Test\n" + 
-			"	 * @see test.junit.Test#field\n" + 
-			"	 * @see test.junit.Test#foo(Object[] array)\n" + 
-			"	 */\n" + 
-			"	void bar() {\n" + 
-			"		foo(null);\n" + 
-			"	}\n" + 
-			"	int field;\n" + 
-			"	void foo(Object[] array) {}\n" + 
-			"}\n"
-		);
-		findJavadoc("test", 2);
-		findJavadoc("junit", 2);
-		findJavadoc("Test", 2);
-		findJavadoc("test", 3);
-		findJavadoc("junit", 3);
-		findJavadoc("Test", 3);
-		findJavadoc("field");
-		findJavadoc("test", 4);
-		findJavadoc("junit", 4);
-		findJavadoc("Test", 4);
-		findJavadoc("foo");
-		findJavadoc("Object");
-		findJavadoc("array");
-		assertValid(
-			"/**<SelectOnType:test>*/\n" + 
-			"/**<SelectOnType:test.junit>*/\n" + 
-			"/**<SelectOnType:test.junit.Test>*/\n" + 
-			"/**<SelectOnType:test>*/\n" + 
-			"/**<SelectOnType:test.junit>*/\n" + 
-			"/**<SelectOnType:test.junit.Test>*/\n" + 
-			"/**<SelectOnField:test.junit.Test#field>*/\n" + 
-			"/**<SelectOnType:test>*/\n" + 
-			"/**<SelectOnType:test.junit>*/\n" + 
-			"/**<SelectOnType:test.junit.Test>*/\n" + 
-			"/**<SelectOnMethod:test.junit.Test#foo(Object[] array)>*/\n" + 
-			"/**<SelectOnType:Object>*/\n" +
-			"/**\n" + 
-			" */\n"
-		);
-	}
-
-	public void test10() {
-		setUnit("test/junit/Test.java",
-			"package test.junit;\n" + 
-			"public class Test {\n" + 
-			"	/** Javadoc {@linkplain test.junit.Test}\n" + 
-			"	 * {@linkplain test.junit.Test#field field}\n" + 
-			"	 * last line {@linkplain test.junit.Test#foo(Object[] array) foo(Object[])}\n" + 
-			"	 */\n" + 
-			"	void bar() {\n" + 
-			"		foo(null);\n" + 
-			"	}\n" + 
-			"	int field;\n" + 
-			"	void foo(Object[] array) {}\n" + 
-			"}\n"
-		);
-		findJavadoc("test", 2);
-		findJavadoc("junit", 2);
-		findJavadoc("Test", 2);
-		findJavadoc("test", 3);
-		findJavadoc("junit", 3);
-		findJavadoc("Test", 3);
-		findJavadoc("field");
-		findJavadoc("test", 4);
-		findJavadoc("junit", 4);
-		findJavadoc("Test", 4);
-		findJavadoc("foo");
-		findJavadoc("Object");
-		findJavadoc("array");
-		assertValid(
-			"/**<SelectOnType:test>*/\n" + 
-			"/**<SelectOnType:test.junit>*/\n" + 
-			"/**<SelectOnType:test.junit.Test>*/\n" + 
-			"/**<SelectOnType:test>*/\n" + 
-			"/**<SelectOnType:test.junit>*/\n" + 
-			"/**<SelectOnType:test.junit.Test>*/\n" + 
-			"/**<SelectOnField:test.junit.Test#field>*/\n" + 
-			"/**<SelectOnType:test>*/\n" + 
-			"/**<SelectOnType:test.junit>*/\n" + 
-			"/**<SelectOnType:test.junit.Test>*/\n" + 
-			"/**<SelectOnMethod:test.junit.Test#foo(Object[] array)>*/\n" + 
-			"/**<SelectOnType:Object>*/\n" +
-			"/**\n" + 
-			" */\n"
-		);
-	}
-
-	public void test11() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @throws RuntimeException runtime exception\n" + 
-			"	 * @throws InterruptedException interrupted exception\n" + 
-			"	 */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		findJavadoc("RuntimeException");
-		findJavadoc("InterruptedException");
-		assertValid(
-			"/**<SelectOnType:RuntimeException>*/\n" +
-			"/**<SelectOnType:InterruptedException>*/\n"
-		);
-	}
-
-	public void test12() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @exception RuntimeException runtime exception\n" + 
-			"	 * @exception InterruptedException interrupted exception\n" + 
-			"	 */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		findJavadoc("RuntimeException");
-		findJavadoc("InterruptedException");
-		assertValid(
-			"/**<SelectOnType:RuntimeException>*/\n" +
-			"/**<SelectOnType:InterruptedException>*/\n"
-		);
-	}
-
-	public void test13() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @param xxx integer param\n" +
-			"	 * @param str string param\n" +
-			"	 */\n" + 
-			"	void foo(int xxx, String str) {}\n" + 
-			"}\n"
-		);
-		findJavadoc("xxx");
-		findJavadoc("str");
-		assertValid(
-			"/**<SelectOnLocalVariable:xxx>*/\n" +
-			"/**<SelectOnLocalVariable:str>*/\n"
-		);
-	}
-
-	public void test14() {
-		setUnit("Test.java",
-			"/**\n" + 
-			" * Javadoc of {@link Test}\n" + 
-			" * @see Field#foo\n" + 
-			" */\n" + 
-			"public class Test {}\n" + 
-			"/**\n" + 
-			" * Javadoc on {@link Field} to test selection in javadoc field references\n" + 
-			" * @see #foo\n" + 
-			" */\n" + 
-			"class Field {\n" + 
-			"	/**\n" + 
-			"	 * Javadoc on {@link #foo} to test selection in javadoc field references\n" + 
-			"	 * @see #foo\n" + 
-			"	 * @see Field#foo\n" + 
-			"	 */\n" + 
-			"	int foo;\n" + 
-			"}\n"
-		);
-		findJavadoc("Field");
-		findJavadoc("foo");
-		findJavadoc("Field", 2);
-		findJavadoc("foo", 2);
-		findJavadoc("foo", 3);
-		findJavadoc("foo", 4);
-		findJavadoc("Field", 4);
-		findJavadoc("foo", 5);
-		assertValid(
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:Field#foo>*/\n" +
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:#foo>*/\n" +
-			"/**<SelectOnField:#foo>*/\n" +
-			"/**<SelectOnField:#foo>*/\n" +
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:Field#foo>*/\n"
-		);
-	}
-
-	public void test15() {
-		setUnit("Test.java",
-			"/**\n" + 
-			" * Javadoc of {@link Test}\n" + 
-			" * @see Method#foo(int, String)\n" + 
-			" */\n" + 
-			"public class Test {}\n" + 
-			"/**\n" + 
-			" * Javadoc on {@link Method} to test selection in javadoc method references\n" + 
-			" * @see #foo(int, String)\n" + 
-			" */\n" + 
-			"class Method {\n" + 
-			"	/**\n" + 
-			"	 * Javadoc on {@link #foo(int,String)} to test selection in javadoc method references\n" + 
-			"	 * @see #foo(int, String)\n" + 
-			"	 * @see Method#foo(int, String)\n" + 
-			"	 */\n" + 
-			"	void bar() {}\n" + 
-			"	/**\n" + 
-			"	 * Method with parameter and throws clause to test selection in javadoc\n" + 
-			"	 * @param xxx TODO\n" + 
-			"	 * @param str TODO\n" + 
-			"	 * @throws RuntimeException blabla\n" + 
-			"	 * @throws InterruptedException bloblo\n" + 
-			"	 */\n" + 
-			"	void foo(int xxx, String str) throws RuntimeException, InterruptedException {}\n" + 
-			"}\n"
-		);
-		findJavadoc("Method");
-		findJavadoc("foo");
-		findJavadoc("Method", 2);
-		findJavadoc("foo", 2);
-		findJavadoc("foo", 3);
-		findJavadoc("foo", 4);
-		findJavadoc("Method", 4);
-		findJavadoc("foo", 5);
-		findJavadoc("xxx");
-		findJavadoc("str");
-		findJavadoc("RuntimeException");
-		findJavadoc("InterruptedException");
-		assertValid(
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:Method#foo(int , String )>*/\n" +
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:#foo(int , String )>*/\n" +
-			"/**<SelectOnMethod:#foo(int , String )>*/\n" +
-			"/**<SelectOnMethod:#foo(int , String )>*/\n" +
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:Method#foo(int , String )>*/\n" +
-			"/**<SelectOnLocalVariable:xxx>*/\n" +
-			"/**<SelectOnLocalVariable:str>*/\n" +
-			"/**<SelectOnType:RuntimeException>*/\n" +
-			"/**<SelectOnType:InterruptedException>*/\n"
-		);
-	}
-
-	public void test16() {
-		setUnit("Test.java",
-			"/**\n" + 
-			" * Javadoc of {@link Test}\n" + 
-			" * @see Other\n" + 
-			" */\n" + 
-			"public class Test {}\n" + 
-			"/**\n" + 
-			" * Javadoc of {@link Other}\n" + 
-			" * @see Test\n" + 
-			" */\n" + 
-			"class Other {}\n"
-		);
-		findJavadoc("Test");
-		findJavadoc("Other");
-		findJavadoc("Test", 3);
-		findJavadoc("Other", 2);
-		assertValid(
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Other>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Other>*/\n"
-		);
-	}
-
-	public void test17() {
-		setUnit("Test.java",
-			"/**\n" + 
-			" * @see Test.Field#foo\n" + 
-			" */\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Field#foo\n" + 
-			"	 */\n" + 
-			"	class Field {\n" + 
-			"		/**\n" + 
-			"		 * @see #foo\n" + 
-			"		 * @see Field#foo\n" + 
-			"		 * @see Test.Field#foo\n" + 
-			"		 */\n" + 
-			"		int foo;\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		findJavadoc("Test");
-		findJavadoc("Field");
-		findJavadoc("foo");
-		findJavadoc("Field", 2);
-		findJavadoc("foo", 2);
-		findJavadoc("foo", 3);
-		findJavadoc("Field", 4);
-		findJavadoc("foo", 4);
-		findJavadoc("Test", 3);
-		findJavadoc("Field", 5);
-		findJavadoc("foo", 5);
-		assertValid(
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Test.Field>*/\n" +
-			"/**<SelectOnField:Test.Field#foo>*/\n" +
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:Field#foo>*/\n" +
-			"/**<SelectOnField:#foo>*/\n" +
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:Field#foo>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Test.Field>*/\n" +
-			"/**<SelectOnField:Test.Field#foo>*/\n"
-		);
-	}
-
-	public void test18() {
-		setUnit("Test.java",
-			"/**\n" + 
-			" * @see Test.Method#foo()\n" + 
-			" */\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Method#foo()\n" + 
-			"	 */\n" + 
-			"	class Method {\n" + 
-			"		/**\n" + 
-			"		 * @see #foo()\n" + 
-			"		 * @see Method#foo()\n" + 
-			"		 * @see Test.Method#foo()\n" + 
-			"		 */\n" + 
-			"		void foo() {}\n" + 
-			"	}\n" + 
-			"}"
-		);
-		findJavadoc("Test");
-		findJavadoc("Method");
-		findJavadoc("foo");
-		findJavadoc("Method", 2);
-		findJavadoc("foo", 2);
-		findJavadoc("foo", 3);
-		findJavadoc("Method", 4);
-		findJavadoc("foo", 4);
-		findJavadoc("Test", 3);
-		findJavadoc("Method", 5);
-		findJavadoc("foo", 5);
-		assertValid(
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Test.Method>*/\n" +
-			"/**<SelectOnMethod:Test.Method#foo()>*/\n" +
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:Method#foo()>*/\n" +
-			"/**<SelectOnMethod:#foo()>*/\n" +
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:Method#foo()>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Test.Method>*/\n" +
-			"/**<SelectOnMethod:Test.Method#foo()>*/\n"
-		);
-	}
-
-	public void test19() {
-		setUnit("Test.java",
-			"/**\n" + 
-			" * @see Test.Other\n" + 
-			" */\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Test\n" + 
-			"	 * @see Other\n" + 
-			"	 * @see Test.Other\n" + 
-			"	 */\n" + 
-			"	class Other {}\n" + 
-			"}"
-		);
-		findJavadoc("Test");
-		findJavadoc("Other");
-		findJavadoc("Test", 3);
-		findJavadoc("Other", 2);
-		findJavadoc("Test", 4);
-		findJavadoc("Other", 3);
-		assertValid(
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Test.Other>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Other>*/\n" +
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Test.Other>*/\n"
-		);
-	}
-
-	public void test20() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		/**\n" + 
-			"		 * @see Field#foo\n" + 
-			"		 */\n" + 
-			"		class Field {\n" + 
-			"			/**\n" + 
-			"			 * @see #foo\n" + 
-			"			 * @see Field#foo\n" + 
-			"			 */\n" + 
-			"			int foo;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		findJavadoc("Field");
-		findJavadoc("foo");
-		findJavadoc("foo", 2);
-		findJavadoc("Field", 3);
-		findJavadoc("foo", 3);
-		assertValid(
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:Field#foo>*/\n" +
-			"/**<SelectOnField:#foo>*/\n" +
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:Field#foo>*/\n"
-		);
-	}
-
-	public void test21() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		/**\n" + 
-			"		 * @see Method#foo()\n" + 
-			"		 */\n" + 
-			"		class Method {\n" + 
-			"			/**\n" + 
-			"			 * @see #foo()\n" + 
-			"			 * @see Method#foo()\n" + 
-			"			 */\n" + 
-			"			void foo() {}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}"
-		);
-		findJavadoc("Method");
-		findJavadoc("foo");
-		findJavadoc("foo", 2);
-		findJavadoc("Method", 3);
-		findJavadoc("foo", 3);
-		assertValid(
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:Method#foo()>*/\n" +
-			"/**<SelectOnMethod:#foo()>*/\n" +
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:Method#foo()>*/\n"
-		);
-	}
-
-	public void test22() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		/**\n" + 
-			"		 * @see Test\n" + 
-			"		 * @see Other\n" + 
-			"		 */\n" + 
-			"		class Other {}\n" + 
-			"	}\n" + 
-			"}"
-		);
-		findJavadoc("Test", 2);
-		findJavadoc("Other");
-		assertValid(
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Other>*/\n"
-		);
-	}
-
-	public void test23() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		new Object() {\n" + 
-			"			/**\n" + 
-			"			 * @see Field#foo\n" + 
-			"			 */\n" + 
-			"			class Field {\n" + 
-			"				/**\n" + 
-			"				 * @see #foo\n" + 
-			"				 * @see Field#foo\n" + 
-			"				 */\n" + 
-			"				int foo;\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		findJavadoc("Field");
-		findJavadoc("foo");
-		findJavadoc("foo", 2);
-		findJavadoc("Field", 3);
-		findJavadoc("foo", 3);
-		assertValid(
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:Field#foo>*/\n" +
-			"/**<SelectOnField:#foo>*/\n" +
-			"/**<SelectOnType:Field>*/\n" +
-			"/**<SelectOnField:Field#foo>*/\n"
-		);
-	}
-
-	public void test24() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		new Object() {\n" + 
-			"			/**\n" + 
-			"			 * @see Method#foo()\n" + 
-			"			 */\n" + 
-			"			class Method {\n" + 
-			"				/**\n" + 
-			"				 * @see #foo()\n" + 
-			"				 * @see Method#foo()\n" + 
-			"				 */\n" + 
-			"				void foo() {}\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}"
-		);
-		findJavadoc("Method");
-		findJavadoc("foo");
-		findJavadoc("foo", 2);
-		findJavadoc("Method", 3);
-		findJavadoc("foo", 3);
-		assertValid(
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:Method#foo()>*/\n" +
-			"/**<SelectOnMethod:#foo()>*/\n" +
-			"/**<SelectOnType:Method>*/\n" +
-			"/**<SelectOnMethod:Method#foo()>*/\n"
-		);
-	}
-
-	public void test25() {
-		setUnit("Test.java",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		new Object() {\n" + 
-			"			/**\n" + 
-			"			 * @see Test\n" + 
-			"			 * @see Other\n" + 
-			"			 */\n" + 
-			"			class Other {}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}"
-		);
-		findJavadoc("Test", 2);
-		findJavadoc("Other");
-		assertValid(
-			"/**<SelectOnType:Test>*/\n" +
-			"/**<SelectOnType:Other>*/\n"
-		);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionTest.java
deleted file mode 100644
index 3ac33c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionTest.java
+++ /dev/null
@@ -1,2579 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import junit.framework.Test;
-
-public class SelectionTest extends AbstractSelectionTest {
-static {
-//		TESTS_NUMBERS = new int[] { 53 };	
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(SelectionTest.class);
-}
-	
-public SelectionTest(String testName) {
-	super(testName);
-}
-/*
- * Select superclass
- */
-public void test00() {
-
-	String str = 
-		"	var i=foo(); 									\n" +
-		"";
-
-	String selectionStartBehind = "=";
-	String selectionEndBehind = "foo";
-	
-	String expectedCompletionNodeToString = "<SelectOnMessageSend:foo()>";
-	String completionIdentifier = "foo";
-	String expectedUnitDisplayString =
-		"var i = <SelectOnMessageSend:foo()>;\n" + 
-		"" + 
-		"";
-	String expectedReplacedSource = "foo()";
-	String testName = "<select message send>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-
-public void test01() {
-
-	String str = 
-		"	var i=bb.foo(); 									\n" +
-		"";
-
-	String selectionStartBehind = "bb.";
-	String selectionEndBehind = "foo";
-	
-	String expectedCompletionNodeToString = "<SelectOnMessageSend:bb.foo()>";
-	String completionIdentifier = "foo";
-	String expectedUnitDisplayString =
-		"var i = <SelectOnMessageSend:bb.foo()>;\n" + 
-		"" + 
-		"";
-	String expectedReplacedSource = "bb.foo()";
-	String testName = "<select message send>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-
-///*
-// * Select superclass
-// */
-//public void test01() {
-//
-//	String str = 
-//		"import java.io.*;							\n" + 
-//		"											\n" + 
-//		"public class X extends IOException {		\n" + 
-//		"}											\n"; 
-//
-//	String selectionStartBehind = "extends ";
-//	String selectionEndBehind = "IOException";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:IOException>";
-//	String completionIdentifier = "IOException";
-//	String expectedUnitDisplayString =
-//		"import java.io.*;\n" + 
-//		"public class X extends <SelectOnType:IOException> {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "IOException";
-//	String testName = "<select superclass>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select superinterface
- */
-//public void test02() {
-//
-//	String str = 
-//		"import java.io.*;													\n" + 
-//		"																	\n" + 
-//		"public class X extends IOException implements Serializable {		\n" +
-//		" int foo(){} 														\n" +
-//		"}																	\n"; 
-//
-//	String selectionStartBehind = "implements ";
-//	String selectionEndBehind = "Serializable";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Serializable>";
-//	String completionIdentifier = "Serializable";
-//	String expectedUnitDisplayString =
-//		"import java.io.*;\n" + 
-//		"public class X extends IOException implements <SelectOnType:Serializable> {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  int foo() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "Serializable";
-//	String testName = "<select superinterface>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-///*
-// * Select qualified superclass
-// */
-//public void test03() {
-//
-//	String str = 
-//		"public class X extends java.io.IOException {	\n" + 
-//		"}												\n"; 
-//
-//	String selectionStartBehind = "java.io.";
-//	String selectionEndBehind = "IOException";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:java.io.IOException>";
-//	String completionIdentifier = "IOException";
-//	String expectedUnitDisplayString =
-//		"public class X extends <SelectOnType:java.io.IOException> {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "java.io.IOException";
-//	String testName = "<select qualified superclass>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-///*
-// * Select package from qualified superclass
-// */
-//public void test04() {
-//
-//	String str = 
-//		"public class X extends java.io.IOException {	\n" + 
-//		"}												\n"; 
-//
-//	String selectionStartBehind = "java.";
-//	String selectionEndBehind = "java.io";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:java.io>";
-//	String completionIdentifier = "io";
-//	String expectedUnitDisplayString =
-//		"public class X extends <SelectOnType:java.io> {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "java.io.IOException";
-//	String testName = "<select package from qualified superclass>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select message send
- */
-public void test05() {
-
-	String str = 
-		"	function foo(){									\n" +
-		"		System.out.println(\"hello\");			\n";
-
-	String selectionStartBehind = "System.out.";
-	String selectionEndBehind = "println";
-	
-	String expectedCompletionNodeToString = "<SelectOnMessageSend:System.out.println(\"hello\")>";
-	String completionIdentifier = "println";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  <SelectOnMessageSend:System.out.println(\"hello\")>;\n" + 
-		"}\n" + 
-		"";
-	String expectedReplacedSource = "System.out.println(\"hello\")";
-	String testName = "<select message send>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-public void test05b() {
-
-	String str = 
-		"		System.out.println(\"hello\");			\n";
-
-	String selectionStartBehind = "System.out.";
-	String selectionEndBehind = "println";
-	
-	String expectedCompletionNodeToString = "<SelectOnMessageSend:System.out.println(\"hello\")>";
-	String completionIdentifier = "println";
-	String expectedUnitDisplayString =
-		"<SelectOnMessageSend:System.out.println(\"hello\")>;\n" + 
-		"";
-	String expectedReplacedSource = "System.out.println(\"hello\")";
-	String testName = "<select message send>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-/*
- * Select message send with recovery before
- */
-public void test06() {
-
-	String str = 
-		"	function foo(){									\n" +
-		"		System.out.println(\"hello\");			\n";
-
-	String selectionStartBehind = "System.out.";
-	String selectionEndBehind = "println";
-	
-	String expectedCompletionNodeToString = "<SelectOnMessageSend:System.out.println(\"hello\")>";
-	String completionIdentifier = "println";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  <SelectOnMessageSend:System.out.println(\"hello\")>;\n" + 
-		"}\n" + 
-		"";
-	String expectedReplacedSource = "System.out.println(\"hello\")";
-	String testName = "<select message send with recovery before>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Select message send with sibling method
- */
-public void test07() {
-
-	String str = 
-		"	function foo(){									\n" +
-		"		this.bar(\"hello\");					\n" +
-		"	function bar( s){							\n" +
-		"		return s.length();						\n"	+
-		"	}											\n" +
-		"";
-
-	String selectionStartBehind = "this.";
-	String selectionEndBehind = "this.bar";
-	
-	String expectedCompletionNodeToString = "<SelectOnMessageSend:this.bar(\"hello\")>";
-	String completionIdentifier = "bar";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  <SelectOnMessageSend:this.bar(\"hello\")>;\n" + 
-		"}\n" + 
-		"function bar(s) {\n" + 
-		"}\n" + 
-		"";
-	String expectedReplacedSource = "this.bar(\"hello\")";
-	String testName = "<select message send with sibling method>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Select field reference
- */
-public void test08() {
-
-	String str = 
-		"	var num = 0;								\n" +
-		"	function foo(){									\n" +
-		"		var j = this.num;						\n" +
-		"";
-
-	String selectionStartBehind = "this.";
-	String selectionEndBehind = "this.num";
-	
-	String expectedCompletionNodeToString = "<SelectionOnFieldReference:this.num>";
-	String completionIdentifier = "num";
-	String expectedUnitDisplayString =
-		"var num;\n" + 
-		"function foo() {\n" + 
-		"  var j = <SelectionOnFieldReference:this.num>;\n" + 
-		"}\n" + 
-		"";
-	String expectedReplacedSource = "this.num";
-	String testName = "<select field reference>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Select field reference with syntax errors
- */
-public void test09() {
-
-	String str = 
-		"	var num 									\n" +
-		"	function foo(){									\n" +
-		"		var j = this.num;						\n" +
-		"}												\n";
-
-	String selectionStartBehind = "this.";
-	String selectionEndBehind = "this.num";
-	
-	String expectedCompletionNodeToString = "<SelectionOnFieldReference:this.num>";
-	String completionIdentifier = "num";
-	String expectedUnitDisplayString =
-		"var num;\n" + 
-		"function foo() {\n" + 
-		"  var j = <SelectionOnFieldReference:this.num>;\n" + 
-		"}\n";
-	String expectedReplacedSource = "this.num";
-	String testName = "<select field reference with syntax errors>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Select field reference inside message receiver
- */
-public void test10() {
-
-	String str = 
-		"	var x; 									\n" +
-		"	function foo(){								\n" +
-		"		var j = this.x.foo();				\n" +
-		"}											\n";
-		
-	String selectionStartBehind = "this.";
-	String selectionEndBehind = "this.x";
-	
-	String expectedCompletionNodeToString = "<SelectionOnFieldReference:this.x>";
-	String completionIdentifier = "x";
-	String expectedUnitDisplayString =
-		"var x;\n" + 
-		"function foo() {\n" + 
-		"  var j = <SelectionOnFieldReference:this.x>.foo();\n" + 
-		"}\n";
-	String expectedReplacedSource = "this.x";
-	String testName = "<select field reference inside message receiver>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Select allocation
- */
-public void test11() {
-
-	String str = 
-		"	function X(i){}								\n" +
-		"	function foo(){								\n" +
-		"		var j = 0;							\n" +
-		"		var x = new X(j);						\n" +
-		"}											\n";
-		
-	String selectionStartBehind = "new ";
-	String selectionEndBehind = "new X";
-	
-	String expectedCompletionNodeToString = "<SelectOnAllocationExpression:new X(j)>";
-	String completionIdentifier = "X";
-	String expectedUnitDisplayString =
-		"function X(i) {\n" + 
-		"  }\n" + 
-		"function foo() {\n" + 
-		"  var j;\n" + 
-		"  var x = <SelectOnAllocationExpression:new X(j)>;\n" + 
-		"}\n";
-	String expectedReplacedSource = "new X(j)";
-	String testName = "<select allocation>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Select qualified allocation
- */
-//public void test12() {
-//
-//	String str = 
-//		"public class X {		 					\n" +
-//		" 	class Y {								\n" +
-//		"		Y(int i){}							\n" +
-//		"	}										\n" +
-//		"	X(int i){}								\n" +
-//		"	int foo(){								\n" +
-//		"		int j = 0;							\n" +
-//		"		X x = new X(j);						\n" +
-//		"		x.new Y(1);							\n" +
-//		"	}										\n" +
-//		"}											\n";
-//		
-//	String selectionStartBehind = "x.new ";
-//	String selectionEndBehind = "x.new Y";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnQualifiedAllocationExpression:x.new Y(1)>";
-//	String completionIdentifier = "Y";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  class Y {\n" + 
-//		"    Y(int i) {\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"  X(int i) {\n" + 
-//		"  }\n" + 
-//		"  int foo() {\n" + 
-//		"    int j;\n" + 
-//		"    X x;\n" + 
-//		"    <SelectOnQualifiedAllocationExpression:x.new Y(1)>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "x.new Y(1)";
-//	String testName = "<select qualified allocation>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select qualified name reference receiver
- */
-public void test13() {
-
-	String str = 
-		"	function foo(){								\n" +
-		"		java.lang.System.out.println();		\n" +
-		"}											\n";
-		
-	String selectionStartBehind = "java.lang.";
-	String selectionEndBehind = "java.lang.System";
-	
-	String expectedCompletionNodeToString = "<SelectOnName:java.lang.System>";
-	String completionIdentifier = "System";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"    <SelectOnName:java.lang.System>;\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.lang.System.out";
-	String testName = "<select qualified name receiver>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Select qualified name reference 
- */
-public void test14() {
-
-	String str = 
-		"	int foo(){								\n" +
-		"		var sys = java.lang.System;		\n" +
-		"}											\n";
-		
-	String selectionStartBehind = "java.lang.";
-	String selectionEndBehind = "java.lang.System";
-	
-	String expectedCompletionNodeToString = "<SelectOnName:java.lang.System>";
-	String completionIdentifier = "System";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var sys = <SelectOnName:java.lang.System>;\n" + 
-		"}\n";
-	String expectedReplacedSource = "java.lang.System";
-	String testName = "<select qualified name>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-///*
-// * Select variable type with modifier
-// */
-//public void test15() {
-//
-//	String str = 
-//		"public class X {		 					\n" +
-//		"	int foo(){								\n" +
-//		"		final System sys = null;			\n" +
-//		"	}										\n" +
-//		"}											\n";
-//		
-//	String selectionStartBehind = "final ";
-//	String selectionEndBehind = "final System";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:System>";
-//	String completionIdentifier = "System";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  int foo() {\n" + 
-//		"    final <SelectOnType:System> sys;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "System";
-//	String testName = "<select variable type with modifier>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select variable type
- */
-//public void test16() {
-//
-//	String str = 
-//		"public class X {		 					\n" +
-//		"	int foo(){								\n" +
-//		"		System sys = null;					\n" +
-//		"	}										\n" +
-//		"}											\n";
-//		
-//	String selectionStartBehind = "\n		";
-//	String selectionEndBehind = "\n		System";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:System>";
-//	String completionIdentifier = "System";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  int foo() {\n" + 
-//		"    <SelectOnType:System> sys;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "System";
-//	String testName = "<select variable type>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select name
- */
-public void test17() {
-
-	String str = 
-		"function foo(){								\n" +
-		"		System 								\n" +
-		"}											\n";
-		
-	String selectionStartBehind = "\n		";
-	String selectionEndBehind = "\n		System";
-	
-	String expectedCompletionNodeToString = "<SelectOnName:System>";
-	String completionIdentifier = "System";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  <SelectOnName:System>;\n" + 
-		"}\n";
-		
-	String expectedReplacedSource = "System";
-	String testName = "<select name>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Select anonymous type
- */
-//public void test18() {
-//
-//	String str = 
-//		"public class X {		 					\n" +
-//		"	int foo(){								\n" +
-//		"		new Object(){						\n" +
-//		"			int bar(){}						\n" +
-//		"		}									\n" +
-//		"	}										\n" +
-//		"}											\n";
-//		
-//	String selectionStartBehind = "new ";
-//	String selectionEndBehind = "new Object";
-//	
-//	String expectedCompletionNodeToString = 
-//		"<SelectOnAllocationExpression:new Object() {\n" +
-//		"  () {\n" +
-//		"    super();\n" +
-//		"  }\n" + 
-//		"}>";
-//	String completionIdentifier = "Object";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  int foo() {\n" + 
-//		"    <SelectOnAllocationExpression:new Object() {\n" +
-//		"      () {\n" +
-//		"        super();\n" +
-//		"      }\n" + 
-//		"    }>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "new Object()";
-//	String testName = "<select anonymous type>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select cast type
- */
-//public void test19() {
-//
-//	String str = 
-//		"public class X {		 					\n" +
-//		"	Object foo(){							\n" +
-//		"		return (Object) this;				\n" +
-//		"		}									\n" +
-//		"	}										\n" +
-//		"}											\n";
-//		
-//	String selectionStartBehind = "return (";
-//	String selectionEndBehind = "return (Object";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnName:Object>";
-//	String completionIdentifier = "Object";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  Object foo() {\n" + 
-//		"    <SelectOnName:Object>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "Object";
-//	String testName = "<select cast type>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select package
- */
-//public void test20() {
-//
-//	String str =
-//		"package x.y.other;					\n" +
-//		"public class X {		 					\n" +
-//		"	int foo(){								\n" +
-//		"		}									\n" +
-//		"	}										\n" +
-//		"}											\n";
-//		
-//	String selectionStartBehind = "x.";
-//	String selectionEndBehind = "x.y";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnPackage:x.y>";
-//	String completionIdentifier = "y";
-//	String expectedUnitDisplayString =
-//		"package <SelectOnPackage:x.y>;\n" + 
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  int foo() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "x.y.other";
-//	String testName = "<select package>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-///*
-// * Select import
-// */
-//public void test21() {
-//
-//	String str =
-//		"import x.y.Other;					\n" +
-//		"public class X {		 					\n" +
-//		"	int foo(){								\n" +
-//		"		}									\n" +
-//		"	}										\n" +
-//		"}											\n";
-//		
-//	String selectionStartBehind = "y.";
-//	String selectionEndBehind = "y.Other";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnImport:x.y.Other>";
-//	String completionIdentifier = "Other";
-//	String expectedUnitDisplayString =
-//		"import <SelectOnImport:x.y.Other>;\n" + 
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  int foo() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "x.y.Other";
-//	String testName = "<select import>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-///*
-// * Select import on demand
-// */
-//public void test22() {
-//
-//	String str =
-//		"import x.y.other.*;					\n" +
-//		"public class X {		 					\n" +
-//		"	int foo(){								\n" +
-//		"		}									\n" +
-//		"	}										\n" +
-//		"}											\n";
-//		
-//	String selectionStartBehind = "y.";
-//	String selectionEndBehind = "y.other";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnImport:x.y.other>";
-//	String completionIdentifier = "other";
-//	String expectedUnitDisplayString =
-//		"import <SelectOnImport:x.y.other>;\n" + 
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  int foo() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "x.y.other";
-//	String testName = "<select import on demand>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select array initializer type
- */
-public void test23() {
-
-	String str =
-		"public class X {		 					\n" +
-		"	int foo(){								\n" +
-		"		String[] p = new String[]{\"Left\"};\n" +
-//		"		}									\n" +
-		"	}										\n" +
-		"}											\n";
-		
-	String selectionStartBehind = "new ";
-	String selectionEndBehind = "new String";
-	String expectedCompletionNodeToString = "<SelectOnType:String>";
-	String completionIdentifier = "String";
-	String expectedUnitDisplayString =
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  int foo() {\n" + 
-		"    String[] p = <SelectOnType:String>;\n" + 
-		"  }\n" + 
-		"}\n";
-		
-	String expectedReplacedSource = "String";
-	String testName = "<select array initializer type>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-///*
-// * Select nested type superclass with syntax error behind
-// */
-//public void test24() {
-//
-//	String str =
-//		"public class G {					\n" +
-//		"	void foo() {					\n" +
-//		"		class X {					\n" +
-//		"			class Y extends G {		\n" +
-//		"				int foo()			\n" +
-//		"			}						\n" +
-//		"		}							\n" +
-//		"	}								\n" +
-//		"}									\n";
-//		
-//	String selectionStartBehind = "extends ";
-//	String selectionEndBehind = "extends G";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:G>";
-//	
-//	String completionIdentifier = "G";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  public G() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    class X {\n" + 
-//		"      class Y extends <SelectOnType:G> {\n" + 
-//		"        Y() {\n" + 
-//		"        }\n" + 
-//		"        int foo() {\n" + 
-//		"        }\n" + 
-//		"      }\n" + 
-//		"      X() {\n" + 
-//		"      }\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "G";
-//	String testName = "<select nested type superclass>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select super
- */
-//public void test25() {
-//
-//	String str =
-//		"public class G {					\n" +
-//		"	Object foo() {					\n" +
-//		"		return super.foo();			\n" +
-//		"	}								\n" +
-//		"}									\n";
-//		
-//	String selectionStartBehind = "return ";
-//	String selectionEndBehind = "return super";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnSuper:super>";
-//	
-//	String completionIdentifier = "super";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  public G() {\n" + 
-//		"  }\n" + 
-//		"  Object foo() {\n" + 
-//		"    <SelectOnSuper:super>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "super";
-//	String testName = "<select super>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select qualified super
- */
-//public void test26() {
-//
-//	String str =
-//		"public class G {						\n" +
-//		"	Object foo() {						\n" +
-//		"		new X(){						\n" +
-//		"			Object bar(){				\n" +
-//		"				return G.super.foo();	\n" +
-//		"			}							\n" +
-//		"		}								\n" +
-//		"	}									\n" +
-//		"}										\n";
-//		
-//	String selectionStartBehind = "G.";
-//	String selectionEndBehind = "G.super";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnQualifiedSuper:G.super>";
-//	
-//	String completionIdentifier = "super";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  public G() {\n" + 
-//		"  }\n" + 
-//		"  Object foo() {\n" + 
-//		"    new X() {\n" + 
-//		"      () {\n" + 
-//		"      }\n" + 
-//		"      Object bar() {\n" + 
-//		"        <SelectOnQualifiedSuper:G.super>;\n" + 
-//		"      }\n" + 
-//		"    };\n" + 
-//		"  }\n" + 
-//		"}\n";	
-//	String expectedReplacedSource = "G.super";
-//	String testName = "<select qualified super>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select super constructor call
- */
-//public void test27() {
-//
-//	String str =
-//		"public class G {					\n" +
-//		"	G() {							\n" +
-//		"		super();					\n" +
-//		"	}								\n" +
-//		"}									\n";
-//		
-//	String selectionStartBehind = "\n\t\t";
-//	String selectionEndBehind = "super";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnExplicitConstructorCall:super()>;";
-//	
-//	String completionIdentifier = "super";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  G() {\n" + 
-//		"    <SelectOnExplicitConstructorCall:super()>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "super()";
-//	String testName = "<select super constructor call>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select qualified super constructor call
- */
-//public void test28() {
-//
-//	String str =
-//		"public class G {						\n" +
-//		"	class M {}							\n" +
-//		"	static Object foo() {				\n" +
-//		"		class X extends M {				\n" +
-//		"			X (){						\n" +
-//		"				new G().super();		\n" +
-//		"			}							\n" +
-//		"		}								\n" +
-//		"	}									\n" +
-//		"}										\n";
-//		
-//	String selectionStartBehind = "new G().";
-//	String selectionEndBehind = "new G().super";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnExplicitConstructorCall:new G().super()>;";
-//	
-//	String completionIdentifier = "super";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  class M {\n" + 
-//		"    M() {\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"  public G() {\n" + 
-//		"  }\n" + 
-//		"  static Object foo() {\n" + 
-//		"    class X extends M {\n" + 
-//		"      X() {\n" + 
-//		"        <SelectOnExplicitConstructorCall:new G().super()>;\n" + 
-//		"      }\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"}\n";	
-//	String expectedReplacedSource = "new G().super()";
-//	String testName = "<select qualified super constructor call>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select qualified super constructor call with arguments
- */
-//public void test29() {
-//
-//	String str =
-//		"public class G {								\n" +
-//		"	class M {}									\n" +
-//		"	static Object foo() {						\n" +
-//		"		class X extends M {						\n" +
-//		"			X (){								\n" +
-//		"				new G().super(23 + \"hello\");	\n" +
-//		"			}									\n" +
-//		"		}										\n" +
-//		"	}											\n" +
-//		"}												\n";
-//		
-//	String selectionStartBehind = "new G().";
-//	String selectionEndBehind = "new G().super";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnExplicitConstructorCall:new G().super((23 + \"hello\"))>;";
-//	
-//	String completionIdentifier = "super";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  class M {\n" + 
-//		"    M() {\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"  public G() {\n" + 
-//		"  }\n" + 
-//		"  static Object foo() {\n" + 
-//		"    class X extends M {\n" + 
-//		"      X() {\n" + 
-//		"        <SelectOnExplicitConstructorCall:new G().super((23 + \"hello\"))>;\n" + 
-//		"      }\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"}\n";	
-//	String expectedReplacedSource = "new G().super(23 + \"hello\")";
-//	String testName = "<select qualified super constructor call with arguments>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Select super constructor call with arguments
- */
-//public void test30() {
-//
-//	String str =
-//		"public class G {					\n" +
-//		"	G() {							\n" +
-//		"		super(new G());				\n" +
-//		"	}								\n" +
-//		"}									\n";
-//		
-//	String selectionStartBehind = "\n\t\t";
-//	String selectionEndBehind = "super";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnExplicitConstructorCall:super(new G())>;";
-//	
-//	String completionIdentifier = "super";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  G() {\n" + 
-//		"    <SelectOnExplicitConstructorCall:super(new G())>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "super(new G())";
-//	String testName = "<select super constructor call with arguments>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Regression test for 1FVQ0LK
- */
-//public void test31() {
-//
-//	String str =
-//		"class X {							\n" +
-//		"	Y f;							\n" +
-//		"	void foo() {					\n" +
-//		"		new Bar(fred());			\n" +
-//		"		Z z= new Z();				\n" +
-//		"	}								\n" +
-//		"}									\n";
-//		
-//	String selectionStartBehind = "\n\t";
-//	String selectionEndBehind = "Y";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Y>";
-//	
-//	String completionIdentifier = "Y";
-//	String expectedUnitDisplayString =
-//		"class X {\n" +
-//		"  <SelectOnType:Y> f;\n" +
-//		"  X() {\n" +
-//		"  }\n" +
-//		"  void foo() {\n" +
-//		"  }\n" +
-//		"}\n";
-//		
-//	String expectedReplacedSource = "Y";
-//	String testName = "<regression test for 1FVQ0LK>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Regression test for 1FWT4AJ: ITPCOM:WIN98 - SelectionParser produces duplicate type declaration
- */
-public void test32() {
-
-	String str =
-		"function containsPhrase(){							\n"+
-		"				var currentChar = \"hello\".toLowerCase()		\n"+
-		"}																\n";
-		
-	String selectionStartBehind = "\"hello\".";
-	String selectionEndBehind = "\"hello\".toLowerCase";
-	
-	String expectedCompletionNodeToString = "<SelectOnMessageSend:\"hello\".toLowerCase()>";
-	
-	String completionIdentifier = "toLowerCase";
-	String expectedUnitDisplayString =
-		"function containsPhrase() {\n" + 
-		"  var currentChar = <SelectOnMessageSend:\"hello\".toLowerCase()>;\n" + 
-		"}\n";
-		
-	String expectedReplacedSource = "\"hello\".toLowerCase()";
-	String testName = "<1FWT4AJ: ITPCOM:WIN98 - SelectionParser produces duplicate type declaration>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-/*
- * Regression test for 1G4CLZM: ITPJUI:WINNT - 'Import Selection' - Set not found
- */
-//public void test33() {
-//
-//	String str =
-//		"	import java.util.AbstractMap;				\n"+
-//		"	public class c4 extends AbstractMap {		\n"+
-//		"		/**										\n"+
-//		"		 * @see AbstractMap#entrySet			\n"+
-//		"		 */										\n"+
-//		"		public Set entrySet() {					\n"+
-//		"			return null;						\n"+
-//		"		}										\n"+
-//		"	}											\n";
-//		
-//	String selectionStartBehind = "\n\t\tpublic ";
-//	String selectionEndBehind = "public Set";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Set>";
-//	
-//	String completionIdentifier = "Set";
-//	String expectedUnitDisplayString =
-//		"import java.util.AbstractMap;\n" + 
-//		"public class c4 extends AbstractMap {\n" + 
-//		"  public c4() {\n" + 
-//		"  }\n" + 
-//		"  public <SelectOnType:Set> entrySet() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "Set";
-//	String testName = "<1G4CLZM: ITPJUI:WINNT - 'Import Selection' - Set not found>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//	
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-/*
- * Regression test for 1GB99S3: ITPJUI:WINNT - SH: NPE in editor while getting hover help
- */
-public void test34() {
-
-	String str =
-		"function foo() {						\n"+
-		"  var array = new Object();		\n"+
-		"		return array.length;				\n"+
-		"}											\n";
-		
-	String selectionStartBehind = "\n\t\treturn ";
-	String selectionEndBehind = "array.length";
-	
-	String expectedCompletionNodeToString = NONE;
-	
-	String completionIdentifier = NONE;
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var array;\n" + 
-		"  return array.length;\n" + 
-		"}\n";
-		
-	String expectedReplacedSource = NONE;
-	String testName = "<1GB99S3: ITPJUI:WINNT - SH: NPE in editor while getting hover help>";
-
-	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-	
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName); 
-}
-
-/*
- * Select this constructor call
- */
-//public void test35() {
-//
-//	String str =
-//		"public class G {					\n" +
-//		"	G() {							\n" +
-//		"	}								\n" +
-//		"	G(int x) {						\n" +
-//		"		this();						\n" +
-//		"	}								\n" +
-//		"}									\n";
-//		
-//	String selectionStartBehind = "\n\t\t";
-//	String selectionEndBehind = "this";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnExplicitConstructorCall:this()>;";
-//	
-//	String completionIdentifier = "this";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  G() {\n" +
-//		"  }\n" +
-//		"  G(int x) {\n" + 
-//		"    <SelectOnExplicitConstructorCall:this()>;\n" + 
-//		"  }\n" +
-//		"}\n";
-//		
-//	String expectedReplacedSource = "this()";
-//	String testName = "<select this constructor call>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-//
-///*
-// * Select qualified this constructor call
-// */
-//public void test36() {
-//
-//	String str =
-//		"public class G {						\n" +
-//		"	static Object foo() {				\n" +
-//		"		class X {						\n" +
-//		"			X (){						\n" +
-//		"			}							\n" +
-//		"			X (int x){					\n" +
-//		"				new G().this();			\n" +
-//		"			}							\n" +
-//		"		}								\n" +
-//		"	}									\n" +
-//		"}										\n";
-//		
-//	String selectionStartBehind = "new G().";
-//	String selectionEndBehind = "new G().this";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnExplicitConstructorCall:new G().this()>;";
-//	
-//	String completionIdentifier = "this";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  public G() {\n" + 
-//		"  }\n" + 
-//		"  static Object foo() {\n" + 
-//		"    class X {\n" + 
-//		"      X() {\n" +
-//		"        super();\n"+
-//		"      }\n" + 
-//		"      X(int x) {\n" + 
-//		"        <SelectOnExplicitConstructorCall:new G().this()>;\n" + 
-//		"      }\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"}\n";	
-//	String expectedReplacedSource = "new G().this()";
-//	String testName = "<select qualified this constructor call>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-///*
-// * Select qualified this constructor call with arguments
-// */
-//public void test37() {
-//
-//	String str =
-//		"public class G {								\n" +
-//		"	static Object foo() {						\n" +
-//		"		class X {								\n" +
-//		"			X (){								\n" +
-//		"			}									\n" +
-//		"			X (int x){							\n" +
-//		"				new G().this(23 + \"hello\");	\n" +
-//		"			}									\n" +
-//		"		}										\n" +
-//		"	}											\n" +
-//		"}												\n";
-//		
-//	String selectionStartBehind = "new G().";
-//	String selectionEndBehind = "new G().this";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnExplicitConstructorCall:new G().this((23 + \"hello\"))>;";
-//	
-//	String completionIdentifier = "this";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  public G() {\n" + 
-//		"  }\n" + 
-//		"  static Object foo() {\n" + 
-//		"    class X {\n" + 
-//		"      X() {\n" + 
-//		"        super();\n"+
-//		"      }\n" + 
-//		"      X(int x) {\n" + 
-//		"        <SelectOnExplicitConstructorCall:new G().this((23 + \"hello\"))>;\n" + 
-//		"      }\n" + 
-//		"    }\n" + 
-//		"  }\n" + 
-//		"}\n";	
-//	String expectedReplacedSource = "new G().this(23 + \"hello\")";
-//	String testName = "<select qualified this constructor call with arguments>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-///*
-// * Select this constructor call with arguments
-// */
-//public void test38() {
-//
-//	String str =
-//		"public class G {					\n" +
-//		"	G() {							\n" +
-//		"		this(new G());				\n" +
-//		"	}								\n" +
-//		"}									\n";
-//		
-//	String selectionStartBehind = "\n\t\t";
-//	String selectionEndBehind = "this";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnExplicitConstructorCall:this(new G())>;";
-//	
-//	String completionIdentifier = "this";
-//	String expectedUnitDisplayString =
-//		"public class G {\n" + 
-//		"  G() {\n" + 
-//		"    <SelectOnExplicitConstructorCall:this(new G())>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//		
-//	String expectedReplacedSource = "this(new G())";
-//	String testName = "<select this constructor call with arguments>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName); 
-//}
-///*
-// * bugs 3293 search does not work in inner class (1GEUQHJ)
-// */
-//public void test39() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  Object hello = new Object(){  \n" +
-//		"    public void foo(String s){  \n" +
-//		"      s.length();               \n" +
-//		"    }                           \n" +
-//		"  };                            \n" +
-//		"}								 \n";
-//		
-//	String selectionStartBehind = "s.";
-//	String selectionEndBehind = "length";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnMessageSend:s.length()>";
-//	
-//	String completionIdentifier = "length";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" +
-//		"  Object hello = new Object() {\n" +
-//		"    public void foo(String s) {\n" +
-//		"      <SelectOnMessageSend:s.length()>;\n" +
-//		"    }\n" +
-//		"  };\n" +
-//		"  public X() {\n" +
-//		"  }\n" +
-//		"}\n";
-//	String expectedReplacedSource = "s.length()";
-//	String testName = "<select message send in anonymous class>";
-//
-//	int selectionStart = str.indexOf(selectionStartBehind) + selectionStartBehind.length();
-//	int selectionEnd = str.indexOf(selectionEndBehind) + selectionEndBehind.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-
-///*
-// * bugs 3229 OpenOnSelection - strange behaviour of code resolve (1GAVL08)
-// */
-//public void test40() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  Object                        \n" +
-//		"}								 \n";
-//		
-//	String selection = "Object";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Object>";
-//	
-//	String completionIdentifier = "Object";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  <SelectOnType:Object>;\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "Object";
-//	String testName = "<select fake field>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-/*
- * bugs 11475 selection on local name.
- */
-public void test41() {
-
-	String str =
-		"function foo(){                   \n" +
-		"    var vari;              \n" +
-		"}								 \n";
-		
-	String selection = "vari";
-	
-	String expectedCompletionNodeToString = "<SelectionOnLocalName:vari>;";
-	
-	String completionIdentifier = "vari";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  <SelectionOnLocalName:vari>;\n" + 
-		"}\n";
-	String expectedReplacedSource = "vari";
-	String testName = "<select local name>";
-
-	int selectionStart = str.indexOf(selection);
-	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-/*
- * bugs 11475 selection on argument name.
- */
-public void test42() {
-
-	String str =
-		" function foo(vari){          \n" +
-		"}								 \n";
-		
-	String selection = "vari";
-	
-	String expectedCompletionNodeToString = "<SelectionOnArgumentName:vari>";
-	
-	String completionIdentifier = "vari";
-	String expectedUnitDisplayString =
-		"function foo(<SelectionOnArgumentName:vari>) {\n" + 
-		"}\n";
-	String expectedReplacedSource = "vari";
-	String testName = "<select argument name>";
-
-	int selectionStart = str.indexOf(selection);
-	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-		
-	this.checkDietParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-///*
-// * bugs 11475 selection on argument name inside catch statement.
-// */
-//public void test43() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  public void foo(){                   \n" +
-//		"    try{              \n" +
-//		"    }catch(Object var){}\n" +
-//		"  }                             \n" +
-//		"}								 \n";
-//		
-//	String selection = "var";
-//	
-//	String expectedCompletionNodeToString = "<SelectionOnArgumentName:Object var>";
-//	
-//	String completionIdentifier = "var";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  public void foo() {\n" + 
-//		"    <SelectionOnArgumentName:Object var>;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "var";
-//	String testName = "<select argument name inside catch statement>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-/*
- * bugs 15430
- */
-//public void test44() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  String x = super.foo()  \n" +
-//		"}								 \n";
-//		
-//	String selection = "super";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnSuper:super>";
-//	
-//	String completionIdentifier = "super";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  String x = <SelectOnSuper:super>;\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "super";
-//	String testName = "<select super in field initializer>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-/*
- * bugs 14468
- */
-//public void test45() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  void foo() {\n" +
-//		"    if(x instanceof Object){\n" +
-//		"    }\n" +
-//		"  }  \n" +
-//		"}								 \n";
-//		
-//	String selection = "Object";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Object>";
-//	
-//	String completionIdentifier = "Object";
-//	String expectedUnitDisplayString =
-//		"public class X {\n"+
-//		"  public X() {\n"+
-//		"  }\n"+
-//		"  void foo() {\n"+
-//		"    <SelectOnType:Object>;\n"+
-//		"  }\n"+
-//		"}\n";
-//	String expectedReplacedSource = "Object";
-//	String testName = "<select inside instanceof statement>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-
-/*
- * bugs 14468
- */
-//public void test46() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  void foo() {\n" +
-//		"    y = x instanceof Object;\n" +
-//		"  }  \n" +
-//		"}								 \n";
-//		
-//	String selection = "Object";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Object>";
-//	
-//	String completionIdentifier = "Object";
-//	String expectedUnitDisplayString =
-//		"public class X {\n"+
-//		"  public X() {\n"+
-//		"  }\n"+
-//		"  void foo() {\n"+
-//		"    <SelectOnType:Object>;\n"+
-//		"  }\n"+
-//		"}\n";
-//	String expectedReplacedSource = "Object";
-//	String testName = "<select inside instanceof statement>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-/*
- * bugs 14468
- */
-//public void test47() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  void foo() {\n" +
-//		"   boolean y = x instanceof Object;\n" +
-//		"  }  \n" +
-//		"}								 \n";
-//		
-//	String selection = "Object";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Object>";
-//	
-//	String completionIdentifier = "Object";
-//	String expectedUnitDisplayString =
-//		"public class X {\n"+
-//		"  public X() {\n"+
-//		"  }\n"+
-//		"  void foo() {\n"+
-//		"    boolean y = <SelectOnType:Object>;\n"+
-//		"  }\n"+
-//		"}\n";
-//	String expectedReplacedSource = "Object";
-//	String testName = "<select inside instanceof statement>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-/*
- * bugs 14468
- */
-//public void test48() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  boolean y = x instanceof Object;\n" +
-//		"}								 \n";
-//		
-//	String selection = "Object";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Object>";
-//	
-//	String completionIdentifier = "Object";
-//	String expectedUnitDisplayString =
-//		"public class X {\n"+
-//		"  boolean y = <SelectOnType:Object>;\n"+
-//		"  public X() {\n"+
-//		"  }\n"+
-//		"}\n";
-//	String expectedReplacedSource = "Object";
-//	String testName = "<select inside instanceof statement>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkDietParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-/*
- * bugs 28064
- */
-public void test49() {
-
-	String str =
-		"var x = new X();\n" +
-		"								 \n";
-		
-	String selection = "X";
-	
-	String expectedCompletionNodeToString = "<SelectOnAllocationExpression:new X()>" 
-											 ;
-	
-	String completionIdentifier = "X";
-	String expectedUnitDisplayString =
-		"var x = <SelectOnAllocationExpression:new X()>\n" +
-		"\n";
-	String expectedReplacedSource = "new X()";
-	String testName = "<select anonymous type>";
-
-	int selectionStart = str.lastIndexOf(selection);
-	int selectionEnd = str.lastIndexOf(selection) + selection.length() - 1;
-		
-	this.checkDietParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-/*
- * bugs https://bugs.eclipse.org/bugs/show_bug.cgi?id=52422
- */
-//public void test50() {
-//
-//	String str =
-//		"  void foo() {\n" +
-//		"    new Object(){\n" +
-//		"      void bar(){\n" +
-//		"        bar2();\n" +
-//		"      }\n" +
-//		"      void bar2() {\n" +
-//		"      }\n" +
-//		"    }\n" +
-//		"}								 \n";
-//		
-//	String selection = "bar2";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnMessageSend:bar2()>";
-//	
-//	String completionIdentifier = "bar2";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    new Object() {\n" + 
-//		"      () {\n" + 
-//		"      }\n" + 
-//		"      void bar() {\n" + 
-//		"        <SelectOnMessageSend:bar2()>;\n" + 
-//		"      }\n" + 
-//		"      void bar2() {\n" + 
-//		"      }\n" + 
-//		"    };\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "bar2()";
-//	String testName = "<select inside anonymous type>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-/*
- * bugs https://bugs.eclipse.org/bugs/show_bug.cgi?id=52422
- */
-//public void test51() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  void foo() {\n" +
-//		"    new Object(){\n" +
-//		"      void foo0(){\n" +
-//		"        new Object(){\n" +
-//		"          void bar(){\n" +
-//		"            bar2();\n" +
-//		"          }\n" +
-//		"          void bar2() {\n" +
-//		"          }\n" +
-//		"        }\n" +
-//		"      }\n" +
-//		"    }\n" +
-//		"  }\n" +
-//		"}								 \n";
-//		
-//	String selection = "bar2";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnMessageSend:bar2()>";
-//	
-//	String completionIdentifier = "bar2";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    new Object() {\n" + 
-//		"      () {\n" + 
-//		"      }\n" + 
-//		"      void foo0() {\n" + 
-//		"        new Object() {\n" + 
-//		"          () {\n" + 
-//		"          }\n" + 
-//		"          void bar() {\n" + 
-//		"            <SelectOnMessageSend:bar2()>;\n" + 
-//		"          }\n" + 
-//		"          void bar2() {\n" + 
-//		"          }\n" + 
-//		"        };\n" + 
-//		"      }\n" + 
-//		"    };\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "bar2()";
-//	String testName = "<select inside anonymous type>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-/*
- * bugs https://bugs.eclipse.org/bugs/show_bug.cgi?id=52422
- */
-//public void test52() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  void foo() {\n" +
-//		"    new Object(){\n" +
-//		"      void foo0(){\n" +
-//		"        new Object(){\n" +
-//		"          void bar(){\n" +
-//		"            bar2();\n" +
-//		"          }\n" +
-//		
-//		"        }\n" +
-//		"      }\n" +
-//		"      void bar2() {\n" +
-//		"      }\n" +
-//		"    }\n" +
-//		"  }\n" +
-//		"}								 \n";
-//		
-//	String selection = "bar2";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnMessageSend:bar2()>";
-//	
-//	String completionIdentifier = "bar2";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    new Object() {\n" + 
-//		"      () {\n" + 
-//		"      }\n" + 
-//		"      void foo0() {\n" + 
-//		"        new Object() {\n" + 
-//		"          () {\n" + 
-//		"          }\n" + 
-//		"          void bar() {\n" + 
-//		"            <SelectOnMessageSend:bar2()>;\n" + 
-//		"          }\n" + 
-//		"        };\n" + 
-//		"      }\n" + 
-//		"      void bar2() {\n" + 
-//		"      }\n" + 
-//		"    };\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "bar2()";
-//	String testName = "<select inside anonymous type>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-//public void test53() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  void foo(String[] stringArray) {\n" +
-//		"    for(String string2 : stringArray);\n" +
-//		"  }\n" +
-//		"}								 \n";
-//		
-//	String selection = "string2";
-//	
-//	String expectedCompletionNodeToString = "<SelectionOnLocalName:String string2>;";
-//	
-//	String completionIdentifier = "string2";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  void foo(String[] stringArray) {\n" + 
-//		"    for (<SelectionOnLocalName:String string2> : stringArray) \n" + 
-//		"      ;\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "string2";
-//	String testName = "<select>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=84001
-//public void test54() {
-//
-//	String str =
-//		"public class X {                \n" +
-//		"  void foo() {\n" +
-//		"    new Test.Sub();\n" +
-//		"  }\n" +
-//		"}								 \n";
-//		
-//	String selection = "Test";
-//	
-//	String expectedCompletionNodeToString = "<SelectOnType:Test>";
-//	
-//	String completionIdentifier = "Test";
-//	String expectedUnitDisplayString =
-//		"public class X {\n" + 
-//		"  public X() {\n" + 
-//		"  }\n" + 
-//		"  void foo() {\n" + 
-//		"    new <SelectOnType:Test>();\n" + 
-//		"  }\n" + 
-//		"}\n";
-//	String expectedReplacedSource = "Test";
-//	String testName = "<select>";
-//
-//	int selectionStart = str.indexOf(selection);
-//	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-//		
-//	this.checkMethodParse(
-//		str.toCharArray(), 
-//		selectionStart,
-//		selectionEnd,
-//		expectedCompletionNodeToString,
-//		expectedUnitDisplayString,
-//		completionIdentifier,
-//		expectedReplacedSource,
-//		testName);
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=84001
-public void test55() {
-
-	String str =
-		"function foo() {\n" +
-		"    new Test.Sub();\n" +
-		"}								 \n";
-		
-	String selection = "Sub";
-	
-	String expectedCompletionNodeToString = "<SelectOnAllocationExpression:new Test.Sub()>";
-	
-	String completionIdentifier = "Sub";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"    <SelectOnAllocationExpression:new Test.Sub()>;\n" + 
-		"}\n";
-	String expectedReplacedSource = "new Test.Sub()";
-	String testName = "<select>";
-
-	int selectionStart = str.indexOf(selection);
-	int selectionEnd = str.indexOf(selection) + selection.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-
-
-static final String RESOLVE_LOCAL_NAME=
-	"function foo(){\n" +
-	"var var1 = new Object();\n" +
-	"var var2 = 1;\n" +
-	"var1.toString();\n" +
-	"var2++;\n" +
-	"if (var2 == 3) {\n" +
-	"	var var3 = var1;\n" +
-	"	var3.hashCode();\n" +
-	"} else {\n" +
-	"	var var3 = new Object();\n" +
-	"	var3.toString();\n" +
-	"}\n" +
-	"var var4 = 1;\n" +
-	"\n" +
-	"}\n" ;
-
-public void test56() {
-
-	String str =RESOLVE_LOCAL_NAME;
-		
-	String startString = "var1.toString();";
-	String selection = "var1";
-	
-	String expectedCompletionNodeToString = "<SelectOnName:var1>";
-	
-	String completionIdentifier = "var1";
-	String expectedUnitDisplayString =
-		"function foo() {\n" + 
-		"  var var1;\n" + 
-		"  var var2;\n" + 
-		"  <SelectOnName:var1>;\n" + 
-		"  {\n" + 
-		"    var var3;\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"    var var3;\n" + 
-		"  }\n" + 
-		"  var var4;\n" + 
-		"}\n";
-	
-	String expectedReplacedSource = "var1";
-	String testName = "<select>";
-
-	int selectionStart = str.indexOf(startString);
-	int selectionEnd = selectionStart + selection.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-
-
-
-public void test57() {
-
-	String str ="YAHOO.widget.Slider = function (sElementId, sGroup, oThumb, sType) {\n"+
-				"if (sElementId) {\n"+
-				"}\n"+
-				"};\n";
-		
-	String startString = "sElementId)";
-	String selection = "sElementId";
-	
-	String expectedCompletionNodeToString = "<SelectOnName:sElementId>";
-	
-	String completionIdentifier = "sElementId";
-	String expectedUnitDisplayString  =
-		  "YAHOO.widget.Slider = function (sElementId, sGroup, oThumb, sType) {\n"+
-			"  if (<SelectOnName:sElementId>)\n      {\n"+
-			"      }\n"+
-			"};\n";
-	
-	
-	String expectedReplacedSource = "sElementId";
-	String testName = "<select>";
-
-	int selectionStart = str.indexOf(startString);
-	int selectionEnd = selectionStart + selection.length() - 1;
-		
-	this.checkMethodParse(
-		str.toCharArray(), 
-		selectionStart,
-		selectionEnd,
-		expectedCompletionNodeToString,
-		expectedUnitDisplayString,
-		completionIdentifier,
-		expectedReplacedSource,
-		testName);
-}
-
-
-
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionTest2.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionTest2.java
deleted file mode 100644
index 8ca4666..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SelectionTest2.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.internal.codeassist.select.SelectionParser;
-import org.eclipse.wst.jsdt.internal.codeassist.select.SelectionScanner;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.Initializer;
-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-
-public class SelectionTest2 extends AbstractSelectionTest {
-
-public SelectionTest2(String testName) {
-	super(testName);
-}
-boolean thereWasAnNPE = false;
-private class SpecialSelectionParser extends SelectionParser {
-	public SpecialSelectionParser(ProblemReporter problemReporter) {
-		super(problemReporter);
-	}
-	public void doNPEInParser(){
-		this.stack = null;
-	}
-}
-
- SpecialSelectionParser createParser(){
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	SpecialSelectionParser parser = 
-		new SpecialSelectionParser(
-			new ProblemReporter(
-				DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-				options, 
-				new DefaultProblemFactory(Locale.getDefault())));
-	return parser;
-}
-void checkMethodParse(
-		SelectionParser parser,
-		char[] source, 
-		int selectionStart,
-		int selectionEnd, 
-		String expectedSelection, 
-		String expectedUnitToString, 
-		String expectedSelectionIdentifier, 
-		String expectedSelectedSource,
-
-		String testName) {
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-	CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-
-	CompilationUnitDeclaration unit = parser.dietParse(sourceUnit, compilationResult, selectionStart, selectionEnd);
-
-	ASTNode foundMethod = null;
-	if (unit.types != null) {
-		for (int i = 0; i < unit.types.length; i++) {
-			TypeDeclaration type = unit.types[i];
-			ASTNode method = findMethod(type, selectionStart);
-			if (method != null) {
-				foundMethod = method;
-				break;
-			}
-		}
-	}
-	assertTrue("no method found at cursor location", foundMethod != null);
-	if (foundMethod instanceof AbstractMethodDeclaration) {
-		parser.parseBlockStatements((AbstractMethodDeclaration)foundMethod, unit);
-	} else {
-		TypeDeclaration type = (TypeDeclaration)foundMethod;
-		if (type.fields != null) {
-			for (int i = 0; i < type.fields.length; i++) {
-				FieldDeclaration field = type.fields[i];
-				if (field instanceof Initializer && field.sourceStart <= selectionStart && selectionStart <= field.sourceEnd) {
-					parser.parseBlockStatements((Initializer)field, type, unit);
-					break;
-				}
-			}
-		}
-	}
-
-	String computedUnitToString = unit.toString();
-	//System.out.println(computedUnitToString);
-	//System.out.println(Util.displayString(computedUnitToString));
-	//System.out.println(expectedUnitToString);	
-	
-	String computedCompletion = parser.assistNode == null 
-								? NONE
-								: parser.assistNode.toString();
-	assertEquals(
-		"invalid selection node-" + testName,
-		expectedSelection,
-		computedCompletion);
-
-	assertEquals(
-		"invalid selection location-"+testName,
-		expectedUnitToString,
-		computedUnitToString);
-
-	if (expectedSelectionIdentifier != null){
-		char[] chars = ((SelectionScanner)parser.scanner).selectionIdentifier;
-		String computedSelectionIdentifier = chars == null ? NONE : new String(chars);
-		assertEquals(
-			"invalid selection identifier-" + testName,
-			expectedSelectionIdentifier,
-			computedSelectionIdentifier);
-	}
-	if (expectedSelectedSource != null){
-		char[] chars = null;
-		if (parser.assistNode != null){
-			chars = CharOperation.subarray(
-				parser.scanner.source, 
-				parser.assistNode.sourceStart, 
-				parser.assistNode.sourceEnd + 1);
-		} else {
-			if (parser.assistIdentifier() != null){
-				if (((SelectionScanner)parser.scanner).selectionEnd 
-					>= ((SelectionScanner)parser.scanner).selectionStart){
-					chars = CharOperation.subarray(
-						parser.scanner.source, 
-						((SelectionScanner)parser.scanner).selectionStart, 
-						((SelectionScanner)parser.scanner).selectionEnd + 1);
-				}
-			}
-		}
-		String computedReplacedSource  = chars == null ? NONE : new String(chars);
-		assertEquals(
-			"invalid replaced source-" + testName,
-			expectedSelectedSource,
-			computedReplacedSource);
-	}
-}
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=30946
- */
-public void testBug30946() {
-	final SpecialSelectionParser parser = createParser();
-	Thread query = new Thread(
-		new Runnable(){
-			public void run(){
-				String str =
-					"public class A {\n" +
-					"	void foo() {\n" +
-					"		if (true) {\n" +
-					"			if()\n" +
-					"			switch (1) {\n" +
-					"				case A.B:\n" +
-					"					C d= (C) s;\n" +
-					"					here\n" +
-					"			}\n" +
-					"		}\n" +
-					"	}\n" +
-					"}n";
-					
-				String selection = "here";
-				
-				String expectedCompletionNodeToString = "<SelectOnName:here>";
-				
-				String completionIdentifier = "here";
-				String expectedUnitDisplayString =
-					"public class A {\n" +
-					"  public A() {\n" +
-					"  }\n" +
-					"  void foo() {\n" +
-					"    {\n" +
-					"      {\n" +
-					"        C d;\n" +
-					"        <SelectOnName:here>;\n" +
-					"      }\n" +
-					"    }\n" +
-					"  }\n" +
-					"}\n";
-				String expectedReplacedSource = "here";
-				String testName = "<inifinite loop test>";
-			
-				int selectionStart = str.lastIndexOf(selection);
-				int selectionEnd = str.lastIndexOf(selection) + selection.length() - 1;
-
-				try {
-					SelectionTest2.this.checkMethodParse(
-						parser,
-						str.toCharArray(), 
-						selectionStart,
-						selectionEnd,
-						expectedCompletionNodeToString,
-						expectedUnitDisplayString,
-						completionIdentifier,
-						expectedReplacedSource,
-						testName);
-				} catch (NullPointerException e) {
-					SelectionTest2.this.thereWasAnNPE = true;
-				}
-		}
-	});
-	
-	query.start();
-	try {
-		Thread.sleep(500);
-	} catch (InterruptedException e) {
-	}
-	// force parser to stop
-	parser.doNPEInParser();
-	try {
-		Thread.sleep(500);
-	} catch (InterruptedException e) {
-	}
-	assertTrue("there is an infinite loop", !thereWasAnNPE);
-	
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SingleCompletionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SingleCompletionTest.java
deleted file mode 100644
index afccb6a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SingleCompletionTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.lang.reflect.InvocationTargetException;
-
-import junit.framework.TestCase;
-
-/**
- * Only 1 test should be in this class
- */
-public class SingleCompletionTest extends AbstractCompletionTest {
-/**
- * SingleCompletionTest constructor comment.
- * @param testName java.lang.String
- */
-public SingleCompletionTest(String testName) {
-	super(testName);
-}
-private void run(Class testClass, String methodName) {
-	try {
-		java.lang.reflect.Constructor constructor = testClass.getDeclaredConstructor(new Class[] {String.class});
-		TestCase test = (TestCase)constructor.newInstance(new Object[] {"single completion test"});
-		java.lang.reflect.Method method = testClass.getDeclaredMethod(methodName, new Class[] {});
-		method.invoke(test, new Object[] {});
-	} catch (InstantiationException e) {
-		e.printStackTrace();
-	} catch (IllegalAccessException e) {
-		e.printStackTrace();
-	} catch (NoSuchMethodException e) {
-		e.printStackTrace();
-	} catch (InvocationTargetException e) {
-		Throwable target = e.getTargetException();
-		if (target instanceof RuntimeException) {
-			throw (RuntimeException)target;
-		}
-		if (target instanceof Error) {
-			throw (Error)target;
-		}
-		throw new Error(target.getMessage());
-	}
-}
-/*
- * The test.
- */
-public void test() {
-	run(NameReferenceCompletionTest.class, "testMethodInvocationAnonymousInnerClass2");
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceElementParserTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceElementParserTest.java
deleted file mode 100644
index feafab8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceElementParserTest.java
+++ /dev/null
@@ -1,5261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.internal.compiler.ISourceElementRequestor;
-import org.eclipse.wst.jsdt.internal.compiler.SourceElementParser;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-
-public class SourceElementParserTest extends AbstractCompilerTest implements ISourceElementRequestor {
-	private  SourceUnit currentUnit;
-	private SourceType currentType;
-	private SourceMethod currentMethod;
-	private SourceField currentField;
-	private SourceInitializer currentInitializer;
-	private char[] source;
-	private SourcePackage currentPackage;
-	private SourceImport[] currentImports;
-	private int numberOfImports;
-public SourceElementParserTest(String testName) {
-	super(testName);
-}
-public SourceElementParserTest(String testName, char[] source) {
-	super(testName);
-	this.source = source;
-}
-/**
- * acceptConstructorReference method comment.
- */
-public void acceptConstructorReference(char[] typeName, int argCount, int sourcePosition) {
-	if (currentMethod == null) {
-		if (currentType != null) {
-			StringBuffer buffer = new StringBuffer();
-			buffer.append(typeName).append("(").append(argCount).append(")\n");
-			currentType.setDefaultConstructor(buffer.toString());
-		}
-		return;		
-	}
-	if (currentMethod.isConstructor()) {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(typeName).append("(").append(argCount).append(")\n");
-		currentMethod.setExplicitConstructorCall(buffer.toString());
-	} else {
-		if (currentType != null) {
-			StringBuffer buffer = new StringBuffer();
-			buffer.append(typeName).append("(").append(argCount).append(")\n");
-			currentType.setDefaultConstructor(buffer.toString());
-		}		
-	}
-}
-/**
- * acceptFieldReference method comment.
- */
-public void acceptFieldReference(char[] fieldName, int sourcePosition) {}
-/**
- * acceptImport method comment.
- */
-public void acceptImport(
-	int declarationStart, 
-	int declarationEnd, 
-	char[][] tokens, 
-	boolean onDemand) {
-
-	addImport(
-		new SourceImport(declarationStart, declarationEnd, CharOperation.concatWith(tokens, '.'), onDemand, source)); 
-}
-/**
- * acceptLineSeparatorPositions method comment.
- */
-public void acceptLineSeparatorPositions(int[] positions) {}
-/**
- * acceptMethodReference method comment.
- */
-public void acceptMethodReference(char[] methodName, int argCount, int sourcePosition) {}
-/**
- * acceptPackage method comment.
- */
-public void acceptPackage(
-	int declarationStart, 
-	int declarationEnd, 
-	char[] name) {
-
-	currentPackage = 
-		new SourcePackage(declarationStart, declarationEnd, name, source); 
-}
-/**
- * acceptProblem method comment.
- */
-public void acceptProblem(CategorizedProblem problem) {}
-/**
- * acceptTypeReference method comment.
- */
-public void acceptTypeReference(char[][] typeName, int sourceStart, int sourceEnd) {}
-/**
- * acceptTypeReference method comment.
- */
-public void acceptTypeReference(char[] typeName, int sourcePosition) {}
-/**
- * acceptUnknownReference method comment.
- */
-public void acceptUnknownReference(char[][] name, int sourceStart, int sourceEnd) {}
-/**
- * acceptUnknownReference method comment.
- */
-public void acceptUnknownReference(char[] name, int sourcePosition) {}
-protected void addImport(SourceImport sourceImport) {
-	if (currentImports == null) {
-		currentImports = new SourceImport[4];
-	}
-
-	if (numberOfImports == currentImports.length) {
-		System.arraycopy(
-			currentImports, 
-			0, 
-			currentImports = new SourceImport[numberOfImports * 2], 
-			0, 
-			numberOfImports); 
-	}
-	currentImports[numberOfImports++] = sourceImport;
-}
-public void dietParse(String s, String testName) {
-	this.dietParse(s, testName, false);
-}
-public void dietParse(String s, String testName, boolean recordLocalDeclaration) {
-
-
-	this.source = s.toCharArray();
-	reset();
-	SourceElementParser parser = 
-		new SourceElementParser(
-			this, 
-			new DefaultProblemFactory(Locale.getDefault()), 
-			new CompilerOptions(getCompilerOptions()),
-			recordLocalDeclaration/*don't record local declarations*/,
-			true/*optimize string literals*/); 
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-
-	parser.parseCompilationUnit(sourceUnit, false);
-
-}
-public static String displayModifiers(int modifiers) {
-	StringBuffer buffer = new StringBuffer();
-	
-	if ((modifiers & ClassFileConstants.AccPublic) != 0)
-		buffer.append("public ");
-	if ((modifiers & ClassFileConstants.AccProtected) != 0)
-		buffer.append("protected ");
-	if ((modifiers & ClassFileConstants.AccPrivate) != 0)
-		buffer.append("private ");
-	if ((modifiers & ClassFileConstants.AccFinal) != 0)
-		buffer.append("final ");
-	if ((modifiers & ClassFileConstants.AccStatic) != 0)
-		buffer.append("static ");
-	if ((modifiers & ClassFileConstants.AccAbstract) != 0)
-		buffer.append("abstract ");
-	if ((modifiers & ClassFileConstants.AccNative) != 0)
-		buffer.append("native ");
-	return buffer.toString();
-}
-public void enterType(TypeInfo typeInfo) {
-	if (currentType == null) {
-		// top level type
-		currentType = 
-			new SourceType(
-				null, 
-				typeInfo.declarationStart, 
-				typeInfo.modifiers, 
-				typeInfo.name, 
-				typeInfo.nameSourceStart, 
-				typeInfo.nameSourceEnd, 
-				typeInfo.superclass, 
-				source); 
-		currentType.setPackage(currentPackage);
-		setImports();
-	} else {
-		// member type
-		SourceType memberType;
-		currentType.addMemberType(
-			memberType = 
-				new SourceType(
-					currentType.getName(), 
-					typeInfo.declarationStart, 
-					typeInfo.modifiers, 
-					typeInfo.name, 
-					typeInfo.nameSourceStart, 
-					typeInfo.nameSourceEnd, 
-					typeInfo.superclass, 
-					source)); 
-		memberType.parent = currentType;
-		currentType = memberType;
-	}
-}
-public void enterCompilationUnit() {
-	currentUnit=new SourceUnit();
-}
-public void enterConstructor(MethodInfo methodInfo) {
-	enterAbtractMethod(methodInfo);
-}
-public void enterField(FieldInfo fieldInfo) {
-	if (currentType!=null)
-	{
-		
-	currentType.addField(
-			currentField = 
-				new SourceField(
-					fieldInfo.declarationStart, 
-					fieldInfo.modifiers, 
-					fieldInfo.type, 
-					fieldInfo.name, 
-					fieldInfo.nameSourceStart, 
-					fieldInfo.nameSourceEnd, 
-					source)); 
-	}else{
-		currentUnit.addField(
-				currentField = 
-					new SourceField(
-						fieldInfo.declarationStart, 
-						fieldInfo.modifiers, 
-						fieldInfo.type, 
-						fieldInfo.name, 
-						fieldInfo.nameSourceStart, 
-						fieldInfo.nameSourceEnd, 
-						source)); 
-
-		
-	}
-}
-public void enterInitializer(int declarationSourceStart, int modifiers) {
-	currentType.addField(
-		currentInitializer = new SourceInitializer(
-			declarationSourceStart, 
-			modifiers)); 
-}
-public void exitInitializer(int declarationSourceEnd) {
-	currentInitializer.setDeclarationSourceEnd(declarationSourceEnd);
-}
-public void enterMethod(MethodInfo methodInfo) {
-	enterAbtractMethod(methodInfo);
-}
-protected void enterAbtractMethod(MethodInfo methodInfo) {
-	if (currentMethod!=null)
-	{
-		SourceMethod memberMethod;
-		currentMethod.addMemberMethod(
-				memberMethod = 
-					new SourceMethod(
-							methodInfo.declarationStart, 
-							methodInfo.modifiers, 
-							methodInfo.returnType, 
-							methodInfo.name, // null for constructors
-							methodInfo.nameSourceStart, 
-							methodInfo.nameSourceEnd, 
-							methodInfo.parameterTypes, 
-							methodInfo.parameterNames, 
-							source)); 
-		memberMethod.parent = currentMethod;
-		currentMethod = memberMethod; 
-
-	}
-	else if (currentType!=null)
-	{
-		currentType.addMethod(
-				currentMethod = 
-					new SourceMethod(
-						methodInfo.declarationStart, 
-						methodInfo.modifiers, 
-						methodInfo.returnType, 
-						methodInfo.name, // null for constructors
-						methodInfo.nameSourceStart, 
-						methodInfo.nameSourceEnd, 
-						methodInfo.parameterTypes, 
-						methodInfo.parameterNames, 
-						source)); 
-		
-	}
-	else
-	{
-		currentUnit.addMethod(
-				currentMethod = 
-					new SourceMethod(
-						methodInfo.declarationStart, 
-						methodInfo.modifiers, 
-						methodInfo.returnType, 
-						methodInfo.name, // null for constructors
-						methodInfo.nameSourceStart, 
-						methodInfo.nameSourceEnd, 
-						methodInfo.parameterTypes, 
-						methodInfo.parameterNames, 
-						source)); 
-
-	}
-}
-public void exitType(int declarationEnd) {
-	currentType.setDeclarationSourceEnd(declarationEnd);
-	if (currentType.parent != null) {
-		currentType = currentType.parent;
-	}
-}
-public void exitCompilationUnit(int declarationEnd) {}
-public void exitConstructor(int declarationEnd) {
-	exitAbstractMethod(declarationEnd);
-}
-public void exitField(int initializationStart, int declarationEnd, int declarationSourceEnd) {
-	currentField.setDeclarationSourceEnd(declarationEnd);
-}
-public void exitMethod(int declarationEnd, int defaultValueStart, int defaultValueEnd) {
-	exitAbstractMethod(declarationEnd);
-}
-protected void exitAbstractMethod(int declarationEnd) {
-	currentMethod.setDeclarationSourceEnd(declarationEnd);
-	currentMethod=currentMethod.parent;
-}
-public void fullParse(String s, String testName) {
-	this.fullParse(s, testName, false);
-}
-public void fullParse(String s, String testName, boolean recordLocalDeclaration) {
-	this.source = s.toCharArray();
-	reset();
-	SourceElementParser parser = 
-		new SourceElementParser(
-			this, new DefaultProblemFactory(Locale.getDefault()), 
-			new CompilerOptions(getCompilerOptions()),
-			recordLocalDeclaration/*don't record local declarations*/,
-			true/*optimize string literals*/); 
-
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-
-	parser.parseCompilationUnit(sourceUnit, true);
-}
-public void reset() {
-	currentType = null;
-	currentUnit = null;
-	currentMethod = null;
-	currentField = null;
-	currentPackage = null;
-	currentImports = null;
-	numberOfImports = 0;
-}
-public void setImports() {
-	if (currentImports == null)
-		return;
-	if (numberOfImports != currentImports.length) {
-		System.arraycopy(
-			currentImports, 
-			0, 
-			currentImports = new SourceImport[numberOfImports], 
-			0, 
-			numberOfImports); 
-	}
-	currentType.setImports(currentImports);
-}
-//public void test00() {
-//
-//	String s = 
-//			 "i=0;" 
-//			+ "\n"; 
-//
-//	String expectedUnitToString = 
-//		"i=0;\n"
-//			+ " "; 
-//
-//	String testName = "test00: full parse";
-//	fullParse(s,testName);
-////
-////	assertEquals(
-////		"Invalid class declarationSourceStart ", 
-////		52, 
-////		currentType.getDeclarationSourceStart()); 
-////
-////	assertEquals(
-////		"Invalid class declarationSourceEnd ", 
-////		178, 
-////		currentType.getDeclarationSourceEnd()); 
-////
-////	SourceField[] fields = currentType.getFields();
-////	assertTrue(" invalid fields ", fields != null);
-////	assertEquals("Invalid fields length ", 2, fields.length);
-////
-////	assertEquals("Invalid declaration source start for field h", 105, fields[0].getDeclarationSourceStart());
-////	assertEquals("Invalid declaration source end for field h", 117, fields[0].getDeclarationSourceEnd());
-////
-////	assertEquals("Invalid declaration source start for field i", 119, fields[1].getDeclarationSourceStart());
-////	assertEquals("Invalid declaration source end for field i", 144, fields[1].getDeclarationSourceEnd());
-////
-////	SourceMethod[] methods = currentType.getMethods();
-////	assertTrue(" invalid methods ", methods != null);
-////	assertEquals("Invalid methods length ", 3, methods.length);
-////
-////	assertEquals("Invalid declaration source start for method foo", 69, methods[0].getDeclarationSourceStart());
-////	assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd());
-////
-////	assertEquals("Invalid declaration source start for method bare", 147, methods[1].getDeclarationSourceStart());
-////	assertEquals("Invalid declaration source end for method bare", 163, methods[1].getDeclarationSourceEnd());
-////
-////	assertEquals("Invalid declaration source start for method truc", 164, methods[2].getDeclarationSourceStart());
-////	assertEquals("Invalid declaration source end for method truc", 177, methods[2].getDeclarationSourceEnd());
-////
-////	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-////
-////	assertEquals(" Invalid actual name for method bare", "bar" + "\\" + "u0065", methods[1].getActualName());
-//	
-//	assertEquals(
-//		"Invalid source " + testName, 
-//		expectedUnitToString, 
-//		currentUnit.toString()); 
-//}
-
-public void test01() {
-
-	String s = 
-			 "function foo() {\n"
-			+ "System.out.println();\n"
-			+ "}\n"
-			+ "var h;\n"
-			+ "var i ;\n"
-			+ "\n"
-			+ "function bar" + "\\" + "u0065(){}\n"
-			+ "function truc(){}\n"
-			+ "\n"; 
-
-	String expectedUnitToString = 
-			 "\tvar h;\n"
-			+ "\tvar i;\n"
-			+ "\tfunction foo() {}\n" 
-			+ "\tfunction bare() {}\n"
-			+ "\tfunction truc() {}\n"
-			+ ""; 
-
-	String testName = "test01: full parse";
-	fullParse(s,testName);
-
-	currentUnit.toString();
-	SourceField[] fields = currentUnit.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("Invalid fields length ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 41, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h",46 , fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 48, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 54, fields[1].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentUnit.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 0, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 39, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bare", 57, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bare", 78, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 80, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 96, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bare", "bar" + "\\" + "u0065", methods[1].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentUnit.toString()); 
-}
-
-
-public void test02() {
-
-	String s =
-			"/** javadoc comment */\n"
-			+ "function ss()"
-			+ "\n"; 
-
-	String expectedUnitToString = 
-			 "\tfunction ss() {}\n"
-			+ ""; 
-
-	String testName = "test02: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentUnit.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentUnit.toString()); 
-}
-public void test03() {
-
-	String s = 
-		 "function X() {\n"
-		+ "  this.h=1;\n"
-		+ "  this.i=[];\n"
-		+ "}\n"
-		+ "function X_foo() {\n"
-		+ "}\n"
-		+ "X.prototype.foo=X_foo;\n"
-		+ ""; 
-
-	String expectedUnitToString = 
-	 "class X extends Object {\n"
-	+ "	var h;\n"
-	+ "	var i;\n"
-	+ "	function foo() {}\n"
-	+ "	function X() {}\n"
-	+ "}"
-	+ ""; 
-	
-	String testName = "test03: diet parse";
-	dietParse(s,testName);
-
-//	assertEquals(
-//		"Invalid class declarationSourceStart ", 
-//		52, 
-//		currentType.getDeclarationSourceStart()); 
-//
-//	assertEquals(
-//		"Invalid class declarationSourceEnd ", 
-//		178, 
-//		currentType.getDeclarationSourceEnd()); 
-//
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("Invalid fields length ", 2, fields.length);
-
-//	assertEquals("Invalid declaration source start for field h", 105, fields[0].getDeclarationSourceStart());
-//	assertEquals("Invalid declaration source end for field h", 117, fields[0].getDeclarationSourceEnd());
-//
-//	assertEquals("Invalid declaration source start for field i", 119, fields[1].getDeclarationSourceStart());
-//	assertEquals("Invalid declaration source end for field i", 144, fields[1].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 2, methods.length);
-
-//	assertEquals("Invalid declaration source start for method foo", 69, methods[0].getDeclarationSourceStart());
-//	assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd());
-//
-//	assertEquals("Invalid declaration source start for method bar", 147, methods[1].getDeclarationSourceStart());
-//	assertEquals("Invalid declaration source end for method bar", 163, methods[1].getDeclarationSourceEnd());
-//
-//	assertEquals("Invalid declaration source start for method truc", 164, methods[2].getDeclarationSourceStart());
-//	assertEquals("Invalid declaration source end for method truc", 177, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "X_foo", methods[0].getActualName());
-	assertEquals(" Invalid  name for method foo", "foo", new String(methods[0].getSelector()));
-
-//	assertEquals(" Invalid actual name for method bare", "bar" + "\\" + "u0065", methods[1].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test04() {
-
-	String s =
-		"package a;											\n"
-			+ "import java.lang.*;							\n"
-			+ "import java.util.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ "												\n"
-			+ "		class L {								\n"
-			+ "			void baz(){}						\n"
-			+ "		}										\n"
-			+ "												\n"
-			+ "	public int h;								\n"
-			+ "	public int[] i = { 0, 1 };					\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ "	void truc(){								\n"
-			+ "}											\n"; 
-
-	String expectedUnitToString = 
-		"package a;\n"
-			+ "import java.lang.*;\n"
-			+ "import java.util.*;\n"
-			+ "public class X {\n"
-			+ "\tpublic int h;\n"
-			+ "\tpublic int[] i;\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}"; 
-	String testName = "test04: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		89, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		372, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("Invalid fields length ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 248, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 260, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 271, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 296, fields[1].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 222, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 317, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 337, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 339, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 360, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test05() {
-
-	String s =
-		"package a;											\n"
-			+ "import java.lang.*;							\n"
-			+ "import java.util.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ "												\n"
-			+ "		class L {								\n"
-			+ "			void baz(){}						\n"
-			+ "		}										\n"
-			+ "												\n"
-			+ "	public int h;								\n"
-			+ "	public int[] i = { 0, 1 };					\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ "	void truc(){								\n"
-			+ "}											\n"; 
-
-	String expectedUnitToString = 
-		"package a;\n"
-			+ "import java.lang.*;\n"
-			+ "import java.util.*;\n"
-			+ "public class X {\n"
-			+ "\tpublic int h;\n"
-			+ "\tpublic int[] i;\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}"; 
-
-	String testName = "test05: diet parse";
-	dietParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		89, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		372, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("Invalid fields length ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 248, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 260, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 271, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 296, fields[1].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 222, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 317, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 337, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 339, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 360, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test06() {
-
-	String s = 
-		"package a;											\n"
-			+ "import java.lang.*;							\n"
-			+ "import java.util.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ " X x;										\n"
-			+ " Object a, b = null;							\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ "												\n"
-			+ "	public int h;								\n"
-			+ "	public int[] i = { 0, 1 };					\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ "	void truc(){								\n"
-			+ "}											\n"; 
-
-	String expectedUnitToString = 
-			"package a;\n"
-			+ "import java.lang.*;\n"
-			+ "import java.util.*;\n"
-			+ "public class X {\n"
-			+ "\tX x;\n"
-			+ "\tObject a;\n"
-			+ "\tObject b;\n"
-			+ "\tpublic int h;\n"
-			+ "\tpublic int[] i;\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}"; 
-			
-	String testName = "test06: diet parse";
-	dietParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		89, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		347, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("Invalid fields length ", 5, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 115, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 118, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field a", 131, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field a", 139, fields[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field b", 131, fields[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field b", 149, fields[2].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field h", 223, fields[3].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 235, fields[3].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 246, fields[4].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 271, fields[4].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 159, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 221, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 292, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 312, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 314, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 335, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test07() {
-
-	String s = 
-		"package a;											\n"
-			+ "import java.lang.*;							\n"
-			+ "import java.util.*;							\n"
-			+ "												\n"
-			+ "public class X {								\n"
-			+ " X x;										\n"
-			+ " Object a, b = null;							\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ "												\n"
-			+ "	public int h;								\n"
-			+ "	public int[] i = { 0, 1 };					\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ "	void truc(){								\n"
-			+ "}											\n"; 
-
-	String expectedUnitToString = 
-			"package a;\n"
-			+ "import java.lang.*;\n"
-			+ "import java.util.*;\n"
-			+ "public class X {\n"
-			+ "\tX x;\n"
-			+ "\tObject a;\n"
-			+ "\tObject b;\n"
-			+ "\tpublic int h;\n"
-			+ "\tpublic int[] i;\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}"; 
-			
-	String testName = "test07: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		89, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		347, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("Invalid fields length ", 5, fields.length);
-
-	assertEquals("Invalid declaration source start for field xh", 115, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 118, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field a", 131, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field a", 139, fields[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field b", 131, fields[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field b", 149, fields[2].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field h", 223, fields[3].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 235, fields[3].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 246, fields[4].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 271, fields[4].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 159, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 221, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 292, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 312, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 314, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 335, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test08() {
-
-	String s = 
-		"public class X {									\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " 	void baz(){}							\n"
-			+ " }											\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ " }											\n"
-			+ "	void truc(){								\n"
-			+ " }											\n"
-			+ "}											\n"; 
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}";
-				
-	String testName = "test08: diet parse";
-	dietParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		198, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 100, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 127, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 149, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 163, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 185, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test09() {
-
-	String s = 
-		"public class X {									\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " 	void baz(){}							\n"
-			+ " }											\n"
-			+ "												\n"
-			+ "	void bar(){									\n"
-			+ " }											\n"
-			+ "	void truc(){								\n"
-			+ " }											\n"
-			+ "}											\n"; 
-
- 
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}";
-				
-	String testName = "test09: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		198, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 100, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 127, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 149, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 163, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 185, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-	
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test10() {
-
-	String s = 
-		"public class X {									\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " 	void baz(){}							\n"
-			+ " }											\n"
-			+ "	/** comment                                 \n"
-			+ "  *                                          \n"
-			+ "  *                                          \n"
-			+ "  */                                         \n"
-			+ "                                             \n"
-			+ "	void bar(){									\n"
-			+ " }											\n"
-			+ "	void truc(){								\n"
-			+ " }											\n"
-			+ "}											\n"; 
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}";
-				
-	String testName = "test10: diet parse";
-	dietParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		415, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 100, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 114, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 366, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 380, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 402, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-	
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test11() {
-
-	String s = 
-		"public class X {									\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " 	void baz(){}  							\n"
-			+ "	/** comment                                 \n"
-			+ "  *                                          \n"
-			+ "  *                                          \n"
-			+ "  */                                         \n"
-			+ "  int[][] j[] = null, k; // comment          \n"
-			+ "                                             \n"
-			+ "	void bar(){									\n"
-			+ " }											\n"
-			+ "	void truc(){								\n"
-			+ " }											\n"
-			+ "}											\n"; 
-
-	String expectedUnitToString = 
-			 "public class X {\n"
-			+ "\tint[][][] j;\n"
-			+ "\tint[][] k;\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid baz() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}";
-			
-	String testName = "test11: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		449, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-
-	assertEquals("Invalid declaration source start for field j", 102, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field j", 305, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field k", 102, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field k", 308, fields[1].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 4, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 76, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 79, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 90, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 378, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 400, methods[2].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 414, methods[3].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 436, methods[3].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName());
-	
-	assertEquals(" Invalid actual name for method bar", "bar", methods[2].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[3].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test12() {
-
-	String s = 
-			"import java.util.Enumeration;\n"
-			+ "import java.util.Hashtable;"
-			+ "\n"
-			+ "/** comment */\n"
-			+ "public class A2 {\n"
-			+ "	void foo() {\n"	
-			+ "		System.out.println();\n"
-			+ " 	void baz(){}\n"
-			+ "	/** comment\n"                            
-			+ "  *\n"                              
-			+ "  *\n"                                       
-			+ "  */\n"                                       
-			+ "  static { } // comment\n"
-			+ "  \n"
-			+ "\n"                                        
-			+ "	void bar(){\n"
-			+ " }\n"
-			+ "	void truc(){\n"
-			+ " }\n"
-			+ "}\n";							
-
-	String expectedUnitToString = 
-			"import java.util.Enumeration;\n"
-			+ "import java.util.Hashtable;\n"
-			+ "public class A2 {\n"
-			+ "\tstatic {}\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid baz() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}";
-				
-	String testName = "test12: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		58, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		231, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("Invalid fields length ", 1, fields.length);
-	
-	assertEquals("Invalid declaration source start for initializer", 145, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 181, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 4, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 92, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 128, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 131, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 142, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 183, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 212, methods[2].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 215, methods[3].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 229, methods[3].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName());
-	
-	assertEquals(" Invalid actual name for method bar", "bar", methods[2].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[3].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test13() {
-
-	String s = 
-			"import java.util.Enumeration;\n"
-			+ "import java.util.Hashtable;\n"
-			+ "\n"
-			+ "public class A2 {\n"
-			+ "	void foo() {\n"	
-			+ "		System.out.println();\n"
-			+ " 	void baz(){}\n"
-			+ "  static { }\n"
-			+ "  \n"
-			+ "\n"                                        
-			+ "	void bar(){\n"
-			+ " }\n"
-			+ "	void truc(){\n"
-			+ " }\n"
-			+ "}\n";							
-
-	String expectedUnitToString = 
-			"import java.util.Enumeration;\n"
-			+ "import java.util.Hashtable;\n"
-			+ "public class A2 {\n"
-			+ "\tstatic {}\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid baz() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}";
-	String testName = "test13: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		59, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		180, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-
-	assertEquals(" invalid fields length", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for initializer", 132, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 141, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 4, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 78, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 114, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 117, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 128, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 148, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 161, methods[2].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 164, methods[3].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 178, methods[3].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName());
-	
-	assertEquals(" Invalid actual name for method bar", "bar", methods[2].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[3].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test14() {
-
-	String s = 
-			"import java.util.Enumeration;\n"
-			+ "import java.util.Hashtable;\n"
-			+ "\n"
-			+ "public class A2 {\n"
-			+ "	void foo() {\n"	
-			+ "		System.out.println();\n"
-			+ " 	void baz(){}\n"
-			+ "  static { }\n"
-			+ " }\n"
-			+ "\n"                                        
-			+ "	void bar(){\n"
-			+ " }\n"
-			+ "	void truc(){\n"
-			+ " }\n"
-			+ "}\n";							
-
-	String expectedUnitToString = 
-			"import java.util.Enumeration;\n"
-			+ "import java.util.Hashtable;\n"
-			+ "public class A2 {\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid truc() {}\n"
-			+ "}";
-				
-	String testName = "test14: diet parse";
-	dietParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		59, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		180, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("Invalid methods length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 78, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 144, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 148, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 161, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 164, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 178, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-	
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test15() {
-
-	String s = 
-			"public class X {								\n"
-			+ " class Y {									\n"
-			+ "	  void foo() {								\n"
-			+ "	   System.out.println();					\n"
-			+ "   }											\n"
-			+ " public int h;								\n"
-			+ " public int[] i = {0, 1};					\n"
-			+ "	void bar(){									\n"
-			+ "	void baz(){									\n"
-			+ " }											\n";
-						
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tclass Y {\n"
-			+ "\t\tpublic int h;\n"
-			+ "\t\tpublic int[] i;\n"
-			+ "\t\tjava.lang.Object(0)\n"
-			+ "\t\tvoid foo() {}\n"
-			+ "\t\tvoid bar() {}\n"
-			+ "\t\tvoid baz() {}\n"
-			+ "\t}\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "}";
-				
-	String testName = "test15: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		227, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals(" invalid members length ", 1, members.length);
-
-	fields = members[0].getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 117, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 129, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 140, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 163, fields[1].getDeclarationSourceEnd());
-	
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid methods length ", 3, methods.length);
-		
-	assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 171, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 191, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 193, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 215, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName());
-
-	SourceType member = members[0];
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		26, 
-		member.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		227, 
-		member.getDeclarationSourceEnd()); 
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test16() {
-
-	String s = 
-			"public class X {								\n"
-			+ " class Y {									\n"
-			+ "	  void foo() {								\n"
-			+ "	   System.out.println();					\n"
-			+ "   }											\n"
-			+ " public int h;								\n"
-			+ " public int[] i = {0, 1};					\n"
-			+ "	void bar(){									\n"
-			+ "	void baz(){									\n"
-			+ " }											\n";
-						
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tclass Y {\n"
-			+ "\t\tpublic int h;\n"
-			+ "\t\tpublic int[] i;\n"
-			+ "\t\tvoid foo() {}\n"
-			+ "\t\tvoid bar() {}\n"
-			+ "\t\tvoid baz() {}\n"
-			+ "\t}\n"
-			+ "}";
-				
-	String testName = "test16: diet parse";
-	dietParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		227, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals(" invalid members length ", 1, members.length);
-
-	fields = members[0].getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 117, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 129, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 140, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 163, fields[1].getDeclarationSourceEnd());
-	
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid methods length ", 3, methods.length);
-		
-	assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 171, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 191, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 193, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 215, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName());
-
-	SourceType member = members[0];
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		26, 
-		member.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		227, 
-		member.getDeclarationSourceEnd()); 
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test17() {
-
-	String s = 
-			"public class X {								\n"
-			+ " class Y {									\n"
-			+ "	  void foo() {								\n"
-			+ "	   System.out.println();					\n"
-			+ "   }											\n"
-			+ " }											\n"
-			+ " public int h;								\n"
-			+ " public int[] i = {0, 1};					\n"
-			+ "	void bar(){									\n"
-			+ "	void baz(){									\n"
-			+ " }											\n";
-						
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tclass Y {\n"
-			+ "\t\tjava.lang.Object(0)\n"
-			+ "\t\tvoid foo() {}\n"
-			+ "\t}\n"
-			+ "\tpublic int h;\n"
-			+ "\tpublic int[] i;\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid baz() {}\n"
-			+ "}";
-				
-	String testName = "test17: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		241, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 131, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 143, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 154, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 177, fields[1].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method bar", 185, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 205, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 207, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 229, methods[1].getDeclarationSourceEnd());
-	
-	assertEquals(" Invalid actual name for method bar", "bar", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals(" invalid members length ", 1, members.length);
-
-	fields = members[0].getFields();
-	assertTrue(" invalid fields ", fields == null);
-	
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid methods length ", 1, methods.length);
-		
-	assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType member = members[0];
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		26, 
-		member.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		117, 
-		member.getDeclarationSourceEnd()); 
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test18() {
-
-	String s = 
-			"public class X {								\n"
-			+ " class Y {									\n"
-			+ "	  void foo() {								\n"
-			+ "	   System.out.println();					\n"
-			+ "   }											\n"
-			+ " }											\n"
-			+ " public int h;								\n"
-			+ " public int[] i = {0, 1};					\n"
-			+ "	void bar(){									\n"
-			+ "	void baz(){									\n"
-			+ " }											\n";
-						
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tclass Y {\n"
-			+ "\t\tvoid foo() {}\n"
-			+ "\t}\n"
-			+ "\tpublic int h;\n"
-			+ "\tpublic int[] i;\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid baz() {}\n"
-			+ "}";
-				
-	String testName = "test18: diet parse";
-	dietParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		241, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 131, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 143, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 154, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 177, fields[1].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method bar", 185, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 205, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 207, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 229, methods[1].getDeclarationSourceEnd());
-	
-	assertEquals(" Invalid actual name for method bar", "bar", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[1].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals(" invalid members length ", 1, members.length);
-
-	fields = members[0].getFields();
-	assertTrue(" invalid fields ", fields == null);
-	
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid methods length ", 1, methods.length);
-		
-	assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 103, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType member = members[0];
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		26, 
-		member.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		117, 
-		member.getDeclarationSourceEnd()); 
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test19() {
-
-	String s = 
-			"public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " }											\n"
-			+ "}											\n"
-			+ "	void bar(){									\n"
-			+ "  int x;										\n"
-			+ "	void baz(){									\n"
-			+ " }											\n"
-			+ " int y;										\n";
-						
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\t{}\n"
-			+ "\tint y;\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid baz() {}\n"
-			+ "}";
-			
-	String testName = "test19: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		197, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for initializer", 90, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 90, fields[0].getDeclarationSourceEnd());
-	
-	assertEquals("Invalid declaration source start for field y", 181, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 186, fields[1].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 26, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 77, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 104, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 143, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 145, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 167, methods[2].getDeclarationSourceEnd());
-	
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test20() {
-
-	String s = 
-			"public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " }											\n"
-			+ "}											\n"
-			+ "	void bar(){									\n"
-			+ " public int x;								\n"
-			+ "	void baz(){									\n"
-			+ " }											\n"
-			+ " int y;										\n";
-						
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\t{}\n"
-			+ "\tpublic int x;\n"
-			+ "\tint y;\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid baz() {}\n"
-			+ "}";
-			
-	String testName = "test20: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		201, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 3, fields.length);
-
-	assertEquals("Invalid declaration source start for initializer", 90, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 90, fields[0].getDeclarationSourceEnd());
-	
-	assertEquals("Invalid declaration source start for field x", 126, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 138, fields[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field y", 185, fields[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 190, fields[2].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 26, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 77, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 104, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 124, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 149, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 171, methods[2].getDeclarationSourceEnd());
-	
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test21() {
-
-	String s = 
-			"public class X {								\n"
-			+ "	void foo() {								\n"
-			+ "		System.out.println();					\n"
-			+ " }											\n"
-			+ "}											\n"
-			+ "	void bar(){									\n"
-			+ " public int x;								\n"
-			+ "	void baz(){									\n"
-			+ " }											\n"
-			+ " int y;										\n";
-						
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\t{}\n"
-			+ "\tpublic int x;\n"
-			+ "\tint y;\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "\tvoid baz() {}\n"
-			+ "}";
-			
-	String testName = "test21: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		201, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 3, fields.length);
-
-	assertEquals("Invalid declaration source start for initializer", 90, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 90, fields[0].getDeclarationSourceEnd());
-	
-	assertEquals("Invalid declaration source start for field x", 126, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 138, fields[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field y", 185, fields[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 190, fields[2].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 26, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 77, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 104, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 124, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method baz", 149, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method baz", 171, methods[2].getDeclarationSourceEnd());
-	
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method baz", "baz", methods[2].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test22() {
-
-	String s = 
-			"public class X extends {						\n"
-			+ "	void foo() {								\n"
-			+ " }											\n"
-			+ "}											\n";						
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "}";
-			
-	String testName = "test22: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		67, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 32, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 54, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test23() {
-
-	String s = 
-			"public class X extends Thread {				\n"
-			+ "	void foo() throws							\n"
-			+ "	void bar() 									\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedUnitToString = 
-			"public class X extends Thread {\n"
-			+ "\tThread(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "}";
-			
-	String testName = "test23: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		98, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 37, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 61, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 63, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 85, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test24() {
-
-	String s = 
-			"public class X implements 						\n"
-			+ "	void foo() 									\n"
-			+ "	void bar() 									\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "}";
-			
-	String testName = "test24: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		91, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 34, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 54, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 56, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 78, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test25() {
-
-	String s = 
-			"public class X implements Y,					\n"
-			+ "	void foo() 									\n"
-			+ "	void bar() 									\n"
-			+ " }											\n"
-			+ "}											\n";
-
-	String expectedUnitToString = 
-			"public class X implements Y, {\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "\tvoid foo() {}\n"
-			+ "\tvoid bar() {}\n"
-			+ "}";
-			
-	String testName = "test25: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		92, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" invalid fields length ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 35, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 55, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 57, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 79, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test26() {
-
-	String s =
-			"public class X implements 						\n"
-			+ " class Y { 									\n"
-			+ "	 void bar() 								\n"
-			+ " }											\n"
-			+ "}											\n";
-			
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tclass Y {\n"
-			+ "\t\tjava.lang.Object(0)\n"
-			+ "\t\tvoid bar() {}\n"
-			+ "\t}\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "}";
-			
-	String testName = "test26: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		102, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals(" contains one member ", 1, members.length);
-	
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		34, 
-		members[0].getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		90, 
-		members[0].getDeclarationSourceEnd()); 
-
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one method ", 1, methods.length);
-	
-	assertEquals("Invalid declaration source start for method bar", 56, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 77, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[0].getActualName());
-
-	members = members[0].getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test27() {
-
-	String s = 
-		"public class X 		 						\n"
-		+ " fieldX;										\n"
-		+ " class Y { 									\n"
-		+ "	 void bar() 								\n"
-		+ " }											\n"
-		+ "}											\n";
-			
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tclass Y {\n"
-			+ "\t\tjava.lang.Object(0)\n"
-			+ "\t\tvoid bar() {}\n"
-			+ "\t}\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "}";
-			
-	String testName = "test27: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		113, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals(" contains one member ", 1, members.length);
-	
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		45, 
-		members[0].getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		101, 
-		members[0].getDeclarationSourceEnd()); 
-
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one method ", 1, methods.length);
-	
-	assertEquals("Invalid declaration source start for method bar", 67, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 88, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[0].getActualName());
-
-	members = members[0].getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test28() {
-
-	String s = 
-			"public class X 		 						\n"
-			+ " fieldX;										\n"
-			+ " class Y  									\n"
-			+ " }											\n"
-			+ "}											\n";
-			
-	String expectedUnitToString = 
-			"public class X {\n"
-			+ "\tclass Y {\n"
-			+ "\t\tjava.lang.Object(0)\n"
-			+ "\t}\n"
-			+ "\tjava.lang.Object(0)\n"
-			+ "}";
-			
-	String testName = "test28: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		78, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals(" contains one member ", 1, members.length);
-	
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		45, 
-		members[0].getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		65, 
-		members[0].getDeclarationSourceEnd()); 
-
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods == null);
-	
-	members = members[0].getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test29() {
-
-	String s =
-		"package a;										\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		class L extends {						\n" +
-		"			public int l;						\n" +
-		"			void baz(){}						\n" +
-		"		}										\n" +
-		"												\n" +
-		"	public int h;								\n" +					
-		"												\n" +
-		"	void bar(){									\n" +				
-		"	void truc(){								\n" +
-		"}	\n";
-
-	String expectedUnitToString = 
-		"package a;\n"
-		+ "import java.lang.*;\n"
-		+ "import java.util.*;\n"
-		+ "public class X {\n"
-		+ "\tpublic int h;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tvoid foo() {}\n"
-		+ "\tvoid bar() {}\n"
-		+ "\tvoid truc() {}\n"
-		+ "}";
-			
-	String testName = "test29: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		88, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		357, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 276, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 288, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains 3 methods ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 114, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 250, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 312, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 332, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 334, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 355, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test30() {
-
-	String s =
-		"package a;										\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		class L extends {						\n" +
-		"			public int l;						\n" +
-		"			void baz(){}						\n" +
-		"		}										\n" +
-		"												\n" +
-		"	public int h;								\n" +					
-		"												\n" +
-		"	void bar(){									\n" +				
-		"	void truc(){								\n" +
-		"}	\n";
-
-	String expectedUnitToString = 
-		"package a;\n"
-		+ "import java.lang.*;\n"
-		+ "import java.util.*;\n"
-		+ "public class X {\n"
-		+ "\tpublic int h;\n"
-		+ "\tvoid foo() {}\n"
-		+ "\tvoid bar() {}\n"
-		+ "\tvoid truc() {}\n"
-		+ "}";
-			
-	String testName = "test30: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		88, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		357, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 276, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 288, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains 3 methods ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 114, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 250, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 312, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 332, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 334, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 355, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test31() {
-
-	String s =
-		"package a;											\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		new X(){								\n" +
-		"			void baz() {}						\n" +
-		"		}.baz();								\n" +
-		"												\n" +
-		"	public int h;								\n" +					
-		"												\n" +
-		"	void bar(){									\n" +				
-		"	void truc(){								\n" +
-		"}	\n";
-
-	String expectedUnitToString = 
-		"package a;\n"
-		+ "import java.lang.*;\n"
-		+ "import java.util.*;\n"
-		+ "public class X {\n"
-		+ "\tpublic int h;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tvoid foo() {}\n"
-		+ "\tvoid bar() {}\n"
-		+ "\tvoid truc() {}\n"
-		+ "}";
-			
-	String testName = "test31: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		89, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		334, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 253, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 265, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains 3 methods ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 251, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 289, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 309, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 311, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 332, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test32() {
-
-	String s =
-		"package a;											\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		new X(){								\n" +
-		"			void baz() {}						\n" +
-		"												\n" +
-		"		public int h;							\n" +					
-		"												\n" +
-		"		void bar(){								\n" +				
-		"		void truc(){							\n" +
-		"}	\n";
-
-
-	String expectedUnitToString = 
-		"package a;\n"
-		+ "import java.lang.*;\n"
-		+ "import java.util.*;\n"
-		+ "public class X {\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tvoid foo() {}\n"
-		+ "}";
-			
-	String testName = "test32: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		89, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		315, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one methods ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 315, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test33() {
-
-	String s =
-		"package a;											\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		new X(){								\n" +
-		"			void baz() {}						\n" +
-		"												\n" +
-		"		public int h;							\n" +					
-		"												\n" +
-		"		void bar(){								\n" +				
-		"		void truc(){							\n" +
-		"}	\n";
-
-
-	String expectedUnitToString = 
-		"package a;\n"
-		+ "import java.lang.*;\n"
-		+ "import java.util.*;\n"
-		+ "public class X {\n"
-		+ "\tvoid foo() {}\n"
-		+ "}";
-			
-	String testName = "test33: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		89, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		315, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one methods ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 115, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 315, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test34() {
-
-	String s =
-		"package a;										\n" +
-		"import java.lang.*;							\n" +
-		"import java.util.*;							\n" +
-		"												\n" +
-		"public class X {								\n" +							
-		"	void foo() {								\n" +
-		"		System.out.println();					\n" +		
-		"												\n" +
-		"		new X(){								\n" +
-		"			void baz() 							\n" +
-		"	    }										\n" +
-		"	}											\n" +
-		"	public int h;								\n" +					
-		"												\n" +
-		"	void bar(){									\n" +				
-		"	void truc(){								\n" +
-		"}												\n";
-
-	String expectedUnitToString = 
-		"package a;\n"
-		+ "import java.lang.*;\n"
-		+ "import java.util.*;\n"
-		+ "public class X {\n"
-		+ "\tpublic int h;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tvoid foo() {}\n"
-		+ "\tvoid bar() {}\n"
-		+ "\tvoid truc() {}\n"
-		+ "}";
-			
-	String testName = "test34: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		88, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		342, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field h", 250, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field h", 262, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains 3 methods ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 114, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 236, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 286, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 306, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 308, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 329, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test35() {
-
-	String s =
-		"package a;							\n"	+
-		"import java.lang.*;				\n"	+				
-		"import java.util.*;				\n"	+				
-		"									\n"	+				
-		"public class X {					\n"	+				
-		"	void foo() {					\n"	+				
-		"		System.out.println();		\n"	+				
-		"									\n"	+			
-		"		class L extends {			\n"	+
-		"			public int l;			\n"	+				
-		"			void baz(){}			\n"	+				
-		"		}							\n"	+				
-		"									\n"	+				
-		"		int h;						\n"	+				
-		"									\n"	+				
-		"	void bar(){						\n"	+				
-		"	void truc(){					\n"	+				
-		"}									\n";
-
-	String expectedUnitToString = 
-		"package a;\n"
-		+ "import java.lang.*;\n"
-		+ "import java.util.*;\n"
-		+ "public class X {\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tvoid foo() {}\n"
-		+ "\tvoid bar() {}\n"
-		+ "\tvoid truc() {}\n"
-		+ "}";
-			
-	String testName = "test35: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		76, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		309, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains 3 methods ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 99, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 260, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 262, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 279, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 281, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 299, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test36() {
-
-	String s =
-		"package a;							\n"	+
-		"import java.lang.*;				\n"	+				
-		"import java.util.*;				\n"	+				
-		"									\n"	+				
-		"public class X {					\n"	+				
-		"	void foo() {					\n"	+				
-		"		System.out.println();		\n"	+				
-		"									\n"	+			
-		"		class L extends {			\n"	+
-		"			public int l;			\n"	+				
-		"			void baz(){}			\n"	+				
-		"		}							\n"	+				
-		"									\n"	+				
-		"		int h;						\n"	+				
-		"									\n"	+				
-		"	void bar(){						\n"	+				
-		"	void truc(){					\n"	+				
-		"}									\n";
-
-	String expectedUnitToString = 
-		"package a;\n"
-		+ "import java.lang.*;\n"
-		+ "import java.util.*;\n"
-		+ "public class X {\n"
-		+ "\tvoid foo() {}\n"
-		+ "\tvoid bar() {}\n"
-		+ "\tvoid truc() {}\n"
-		+ "}";
-			
-	String testName = "test36: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		76, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		309, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains 3 methods ", 3, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 99, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 260, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 262, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 279, methods[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method truc", 281, methods[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method truc", 299, methods[2].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	assertEquals(" Invalid actual name for method truc", "truc", methods[2].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test37() {
-
-	String s =
-		"public class X {		 	\n" +
-		"  int x;			 		\n"	+						
-		"							\n" +
-		"  int foo(){ }				\n" +
-		"							\n" +
-		"  class Y  {				\n"	+
-		"    int y;					\n" +
-		"}							\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tclass Y {\n"
-		+ "\t\tint y;\n"
-		+ "\t\tjava.lang.Object(0)\n"
-		+ "\t}\n"
-		+ "\tint x;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tint foo() {}\n"
-		+ "}";
-			
-	String testName = "test37: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		112, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 23, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 28, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one methods ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 46, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals("contains one member ", 1, members.length);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		73, 
-		members[0].getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		104, 
-		members[0].getDeclarationSourceEnd()); 
-
-	fields = members[0].getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field y", 92, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 97, fields[0].getDeclarationSourceEnd());
-	
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test38() {
-
-	String s =
-		"public class X {		 	\n" +
-		"  int x;			 		\n"	+						
-		"							\n" +
-		"  int foo(){ }				\n" +
-		"							\n" +
-		"  class Y  {				\n"	+
-		"    int y;					\n" +
-		"}							\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tclass Y {\n"
-		+ "\t\tint y;\n"
-		+ "\t}\n"
-		+ "\tint x;\n"
-		+ "\tint foo() {}\n"
-		+ "}";
-			
-	String testName = "test38: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		112, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 23, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 28, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one methods ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 46, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals("contains one member ", 1, members.length);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		73, 
-		members[0].getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		104, 
-		members[0].getDeclarationSourceEnd()); 
-
-	fields = members[0].getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field y", 92, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 97, fields[0].getDeclarationSourceEnd());
-	
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test39() {
-
-	String s =
-		"public class X {		 	\n" +
-		"  int x;			 		\n"	+						
-		"							\n" +
-		"  int foo(){ }				\n" +
-		"							\n" +
-		"  class Y  				\n"	+
-		"}							\n" +
-		"  int y;					\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tclass Y {\n"
-		+ "\t\tjava.lang.Object(0)\n"
-		+ "\t}\n"
-		+ "\tint x;\n"
-		+ "\tint y;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tint foo() {}\n"
-		+ "}";
-			
-	String testName = "test39: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		109, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 23, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 28, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field y", 98, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 103, fields[1].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one methods ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 46, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals("contains one member ", 1, members.length);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		73, 
-		members[0].getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		87, 
-		members[0].getDeclarationSourceEnd()); 
-
-	fields = members[0].getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test40() {
-
-	String s =
-		"public class X {		 	\n" +
-		"  int x;			 		\n"	+						
-		"							\n" +
-		"  int foo(){ }				\n" +
-		"							\n" +
-		"  class Y  				\n"	+
-		"}							\n" +
-		"  int y;					\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tclass Y {\n"
-		+ "\t}\n"
-		+ "\tint x;\n"
-		+ "\tint y;\n"
-		+ "\tint foo() {}\n"
-		+ "}";
-			
-	String testName = "test40: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		109, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("contains one field ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 23, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 28, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field y", 98, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 103, fields[1].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one methods ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 46, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members != null);
-	assertEquals("contains one member ", 1, members.length);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		73, 
-		members[0].getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		87, 
-		members[0].getDeclarationSourceEnd()); 
-
-	fields = members[0].getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	methods = members[0].getMethods();
-	assertTrue(" invalid methods ", methods == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test41() {
-
-	String s =
-		"public class X {				\n"+
-		"	void hell" + "\\" + "u006f()\n"+
-		"	static void foo() {			\n"+
-		"		X x;					\n"+
-		"		x = new X(23);			\n"+
-		"		System.out.println();	\n"+			
-		"								\n"+
-		"}								\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tvoid hello() {}\n"
-		+ "\tstatic void foo() {}\n"
-		+ "}";
-			
-	String testName = "test41: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		139, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals(" contains one methods ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method hello", 22, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method hello", 39, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method foo", 41, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 130, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method hello", "hell" + "\\" + "u006f", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test42() {
-
-	String s =
-		"public class X {		\n" +						
-		"	int x				\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tint x;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "}";
-			
-	String testName = "test42: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		29, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" contains one field", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 20, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 24, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test43() {
-
-	String s =
-		"public class X {		\n" +						
-		"	int x				\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tint x;\n"
-		+ "}";
-			
-	String testName = "test43: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		29, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" contains one field", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 20, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 24, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test44() {
-
-	String s =
-		"public class X {		\n" +						
-		"	int x, y			\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tint x;\n"
-		+ "\tint y;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "}";
-			
-	String testName = "test44: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		31, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" contains one field", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 20, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 25, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field y", 20, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 27, fields[1].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test45() {
-
-	String s =
-		"public class X {		\n" +						
-		"	int x, y			\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tint x;\n"
-		+ "\tint y;\n"
-		+ "}";
-			
-	String testName = "test45: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		31, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" contains one field", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 20, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 25, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field y", 20, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 27, fields[1].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test46() {
-
-	String s =
-		"public class X {		\n" +						
-		"	String s = \"		\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tString s;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "}";
-			
-	String testName = "test46: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		34, 
-		currentType.getDeclarationSourceEnd()); 
-
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" contains one field", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field s", 20, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field s", 34, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test47() {
-
-	String s =
-		"public class X {		\n" +						
-		"	String s = \"		\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tString s;\n"
-		+ "}";
-			
-	String testName = "test47: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		34, 
-		currentType.getDeclarationSourceEnd()); 
-	
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" contains one field", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field s", 20, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field s", 34, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test48() {
-
-	String s =
-		"public class X implements Y, 		\n" +						
-		"	String s = \"					\n";
-
-	String expectedUnitToString = 
-		"public class X implements Y, String, {\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "}";
-			
-	String testName = "test48: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		50, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test49() {
-
-	String s =
-		"public class X implements Y, 		\n" +						
-		"	String s = \"					\n";
-
-	String expectedUnitToString = 
-		"public class X implements Y, String, {\n"
-		+ "}";
-			
-	String testName = "test49: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		50, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test50() {
-
-	String s =
-		"public class X implements 		\n"+
-		"int x							\n"+	
-		"}								\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tint x;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "}";
-			
-	String testName = "test50: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		42, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 29, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 33, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test51() {
-
-	String s =
-		"public class X implements 		\n"+
-		"int x							\n"+	
-		"}								\n";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tint x;\n"
-		+ "}";
-			
-	String testName = "test51: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		42, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 29, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 33, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test52() {
-
-	String s =
-		"public class X public int foo(int bar(static String s";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tstatic String s;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tpublic int foo() {}\n"
-		+ "\tint bar() {}\n"
-		+ "}";
-			
-	String testName = "test52: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		52, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field s", 38, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field s", 52, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-
-	assertEquals("Invalid declaration source start for method foo", 15, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 29, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 30, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 37, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test53() {
-
-	String s =
-		"public class X public int foo(int x, int bar public String s;";
-
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tpublic String s;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tpublic int foo(int x, int bar, ) {}\n"
-		+ "}";
-			
-	String testName = "test53: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		60, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has one field ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field s", 45, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field s", 60, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has one method ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 15, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 44, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test54() {
-
-	String s =
-		"public class X 			\n" +
-		"	public int foo(			\n" +
-		"	int bar(				\n" +
-		" 	static String s, int x	\n";
-		
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tstatic String s;\n"
-		+ "\tint x;\n"		
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tpublic int foo() {}\n"
-		+ "\tint bar() {}\n"
-		+ "}";
-			
-	String testName = "test54: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		78, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has 2 fields ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field s", 55, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field s", 70, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field x", 72, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 76, fields[1].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has 2 methods ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 20, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 38, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 40, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 52, methods[1].getDeclarationSourceEnd());
-	
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-	
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-	
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test55() {
-
-	String s =
-		"public class X 			\n" +
-		"	public int foo(			\n" +
-		"	int bar(				\n" +
-		" 	static String s, int x	\n";
-		
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tstatic String s;\n"
-		+ "\tint x;\n"		
-		+ "\tpublic int foo() {}\n"
-		+ "\tint bar() {}\n"
-		+ "}";
-			
-	String testName = "test55: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		78, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has 2 fields ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field s", 55, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field s", 70, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field x", 72, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 76, fields[1].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has 2 methods ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 20, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 38, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method bar", 40, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method bar", 52, methods[1].getDeclarationSourceEnd());
-	
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-	
-	assertEquals(" Invalid actual name for method bar", "bar", methods[1].getActualName());
-	
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test56() {
-
-	String s =
-		"class X {					\n" +
-		"	String s;				\n" +
-		"							\n" +
-		"	public void foo(		\n" +
-		"		static int x		\n" +
-		"}							\n";
-
-		
-	String expectedUnitToString = 
-		"class X {\n"
-		+ "\tString s;\n"
-		+ "\tstatic int x;\n"		
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tpublic void foo() {}\n"
-		+ "}";
-			
-	String testName = "test56: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		75, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has 2 fields ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field s", 16, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field s", 24, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field x", 60, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 71, fields[1].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has 1 method ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 39, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test57() {
-
-	String s =
-		"class X {					\n" +
-		"	String s;				\n" +
-		"							\n" +
-		"	public void foo(		\n" +
-		"		static int x		\n" +
-		"}							\n";
-
-		
-	String expectedUnitToString = 
-		"class X {\n"
-		+ "\tString s;\n"
-		+ "\tstatic int x;\n"		
-		+ "\tpublic void foo() {}\n"
-		+ "}";
-			
-	String testName = "test57: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		75, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has 2 fields ", 2, fields.length);
-
-	assertEquals("Invalid declaration source start for field s", 16, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field s", 24, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field x", 60, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 71, fields[1].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has 1 method ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 39, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 57, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test58() {
-
-	String s =
-		"public class X {			\n"+
-		"	int foo(){				\n"+
-		"		String s = \"		\n"+
-		"	}						\n"+
-		"}							\n";
-		
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tint foo() {}\n"
-		+ "}";
-			
-	String testName = "test58: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		62, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has 1 method ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 21, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 54, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test59() {
-
-	String s =
-
-		"class X {									\n" + 
-		"	int foo(AA a, BB b, IOEx				\n" + 
-		"											\n"; 
-		
-	String expectedUnitToString = 
-		"class X {\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tint foo(AA a, BB b, ) {}\n"
-		+ "}";
-			
-	String testName = "test59: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		60, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has 1 method ", 1, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 20, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 60, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test60() {
-
-	String s =
-		"public class X {							\n"+
-		"	final static int foo(){ 				\n"+
-		"		return \"1; 						\n"+
-		"	} 										\n"+
-		"	public static void main(String argv[]){ \n"+
-		"		foo();								\n"+
-		"	} 										\n"+
-		"}											\n";
-		
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tfinal static int foo() {}\n"
-		+ "\tpublic static void main(String[] argv, ) {}\n"
-		+ "}";
-			
-	String testName = "test60: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		161, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has 1 method ", 2, methods.length);
-
-	assertEquals("Invalid declaration source start for method foo", 25, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 75, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method main", 89, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method main", 148, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method main", "main", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test61() {
-
-	String s =
-		"public class X {							\n"+
-		"	{										\n"+
-		"     int x;";
-			
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\t{}\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "}";
-			
-	String testName = "test61: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		47, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-
-	assertEquals("Invalid declaration source start for initializer", 25, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 47, fields[0].getDeclarationSourceEnd());
-
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test62() {
-
-	String s =
-		"public class X {							\n"+
-		"   int foo(){								\n"+
-		"	  if(true){								\n"+
-		"     	int x;";
-			
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tint foo() {}\n"
-		+ "}";
-			
-	String testName = "test62: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		78, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has one method", 1, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 78, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test63() {
-
-	String s =
-		"public class X {							\n"+
-		"   int foo(){}								\n"+
-		"}											\n"+
-		"int x;\n";
-			
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tint x;\n"
-		+ "\tjava.lang.Object(0)\n"
-		+ "\tint foo() {}\n"
-		+ "}";
-			
-	String testName = "test63: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		66, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has one field", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 60, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 65, fields[0].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has one method", 1, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 37, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test64() {
-
-	String s =
-		"public class X {							\n"+
-		"   int foo(){}								\n"+
-		"}											\n"+
-		"int x;\n";
-			
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tint x;\n"
-		+ "\tint foo() {}\n"
-		+ "}";
-			
-	String testName = "test64: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		66, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has one field", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field x", 60, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field x", 65, fields[0].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has one method", 1, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 37, methods[0].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test65() {
-
-	String s =
-		"public class X {							\n"+
-		"   int foo(){}								\n"+
-		"}											\n"+
-		"int x();\n";
-			
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\t{}\n"
-		+ "\tint foo() {}\n"
-		+ "\tint x() {}\n"
-		+ "}";
-			
-	String testName = "test65: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		68, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for initializer", 47, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 47, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has two methods", 2, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 27, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 37, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method x", 60, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method x", 67, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test66() {
-
-	String s =
-		"public interface X {						\n"+
-		"   int foo() {};							\n"+
-		"}											\n"+
-		"int x();\n";
-			
-	String expectedUnitToString = 
-		"public interface X {\n"
-		+ "\t{}\n"
-		+ "\tint foo() {}\n"
-		+ "\tint x() {}\n"
-		+ "}";
-			
-	String testName = "test66: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		72, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals(" invalid fields length ", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for initializer", 51, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 51, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has two methods", 2, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 30, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 41, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method x", 64, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method x", 71, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test67() {
-
-	String s =
-		"public interface X {						\n"+
-		"   int foo() {};							\n"+
-		"   int x();								\n"+
-		"}";
-			
-	String expectedUnitToString = 
-		"public interface X {\n"
-		+ "\tint foo() {}\n"
-		+ "\tint x() {}\n"
-		+ "}";
-			
-	String testName = "test67: diet parse";
-	dietParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		71, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has two methods", 2, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 30, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 41, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method x", 54, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method x", 61, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test68() {
-
-	String s =
-		"public interface X {						\n"+
-		"   int foo() {};							\n"+
-		"   int x();								\n"+
-		"}";
-			
-	String expectedUnitToString = 
-		"public interface X {\n"
-		+ "\tint foo() {}\n"
-		+ "\tint x() {}\n"
-		+ "}";
-			
-	String testName = "test68: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		71, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has two methods", 2, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 30, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 41, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method x", 54, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method x", 61, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test69() {
-
-	String s =
-		"public interface X {						\n"+
-		"float y;									\n"+
-		"   int foo()	;							\n"+
-		"   int x();								\n"+
-		"}";
-			
-	String expectedUnitToString = 
-		"public interface X {\n"
-		+ "\tfloat y;\n"
-		+ "\tint foo() {}\n"
-		+ "\tint x() {}\n"
-		+ "}";
-			
-	String testName = "test69: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		87, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has one field", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field y", 27, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field y", 34, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has two methods", 2, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 48, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 58, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method x", 70, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method x", 77, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test70() {
-
-	String s =
-		"public interface X {						\n"+
-		"   int foo();								\n"+
-		"   int x();								\n"+
-		"}";
-			
-	String expectedUnitToString = 
-		"public interface X {\n"
-		+ "\tint foo() {}\n"
-		+ "\tint x() {}\n"
-		+ "}";
-			
-	String testName = "test70: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		69, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields == null);
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has two methods", 2, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 30, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 39, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method x", 52, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method x", 59, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test71() {
-
-	String s =
-		"public interface X {						\n"+
-		"   int[] i = ;								\n"+
-		"   int foo() {}							\n"+
-		"   int x();								\n"+
-		"}";
-			
-	String expectedUnitToString = 
-		"public interface X {\n"
-		+ "\tint[] i;\n"
-		+ "\tint foo() {}\n"
-		+ "\tint x() {}\n"
-		+ "}";
-			
-	String testName = "test71: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		93, 
-		currentType.getDeclarationSourceEnd());
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue(" invalid fields ", fields != null);
-	assertEquals("has one field", 1, fields.length);
-
-	assertEquals("Invalid declaration source start for field i", 30, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field i", 49, fields[0].getDeclarationSourceEnd());
-
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods != null);
-	assertEquals("has two methods", 2, methods.length);
-	
-	assertEquals("Invalid declaration source start for method foo", 53, methods[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method foo", 64, methods[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for method x", 76, methods[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for method x", 83, methods[1].getDeclarationSourceEnd());
-
-	assertEquals(" Invalid actual name for method foo", "foo", methods[0].getActualName());
-
-	assertEquals(" Invalid actual name for method x", "x", methods[1].getActualName());
-		
-	SourceType[] members = currentType.getMemberTypes();
-	assertTrue(" invalid members ", members == null);
-		
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test72() {
-
-	String s =
-		"public class X {						\n"+
-		"   X() {								\n" +
-		"   	this();							\n" +
-		"	}									\n" +
-		"}";
-			
-	String expectedUnitToString = 
-		"public class X {\n"
-		+ "\tX() {\n"
-		+ "\t\tX(0)\n"
-		+ "\t}\n"
-		+ "}";
-			
-	String testName = "test72: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test73() {
-
-	String s =
-		"public class X extends Toto {			\n"+
-		"   X() {								\n" +
-		"   	this();							\n" +
-		"	}									\n" +
-		"   X(int i) {							\n" +
-		"   	super();						\n" +
-		"	}									\n" +
-		"   X() {								\n" +
-		"   	this(0);						\n" +
-		"	}									\n" +
-		"}";
-			
-	String expectedUnitToString = 
-		"public class X extends Toto {\n"
-		+ "\tX() {\n"
-		+ "\t\tX(0)\n"
-		+ "\t}\n"
-		+ "\tX(int i, ) {\n"
-		+ "\t\tToto(0)\n"
-		+ "\t}\n"
-		+ "\tX() {\n"
-		+ "\t\tX(1)\n"
-		+ "\t}\n"
-		+ "}";
-			
-	String testName = "test73: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test74() {
-
-	String s =
-		"public class X extends Toto {			\n"+
-		"	class Y extends Throwable {			\n" +
-		"	}									\n" +
-		"   X() {								\n" +
-		"   	this();							\n" +
-		"	}									\n" +
-		"   X(int i) {							\n" +
-		"   	super();						\n" +
-		"	}									\n" +
-		"   X() {								\n" +
-		"   	this(0);						\n" +
-		"	}									\n" +
-		"	public Object foo(int i) {			\n" +
-		"		return new Object() {};			\n" +
-		"	}									\n" +
-		"}";
-			
-	String expectedUnitToString = 
-		"public class X extends Toto {\n"
-		+ "\tclass Y extends Throwable {\n"
-		+ "\t\tThrowable(0)\n"
-		+ "\t}\n"
-		+ "\tX() {\n"
-		+ "\t\tX(0)\n"
-		+ "\t}\n"
-		+ "\tX(int i, ) {\n"
-		+ "\t\tToto(0)\n"
-		+ "\t}\n"
-		+ "\tX() {\n"
-		+ "\t\tX(1)\n"
-		+ "\t}\n"
-		+ "\tpublic Object foo(int i, ) {}\n"
-		+ "}";
-			
-	String testName = "test74: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-/*
- * bugs  16126
- */
-public void test75() {
-	String s =
-		"public class P#AField {\n" +
-		"	public void setP#A(String P#A) {\n" +
-		"		this.P#A = P#A;\n" +
-		"	}\n" +	
-		"}";
-			
-	String expectedUnitToString = 
-		"public class P {\n" +
-		"	{}\n" +
-		"	public void setP;\n" +
-		"	java.lang.Object(0)\n" +
-		"	A(String P, ) {}\n" +
-		"}";
-			
-	String testName = "test75: full parse";
-	fullParse(s,testName);
-				
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-public void test76() {
-
-	String s = 
-		"class X {\n" + 
-		"  public static int j = 0;\n" + 
-		"  /* static */ {\n" +  
-		"  }" +  
-		"  public static int i = 9;\n" +  
-		"}\n"; 
-
-	String expectedUnitToString = 
-		"class X {\n" +
-		"	public static int j;\n" +
-		"	{}\n" +
-		"	public static int i;\n" +
-		"	java.lang.Object(0)\n" +
-		"}"; 
-
-	String testName = "test76: full parse";
-	fullParse(s,testName);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentType.getDeclarationSourceStart()); 
-
-	assertEquals(
-		"Invalid class declarationSourceEnd ", 
-		84, 
-		currentType.getDeclarationSourceEnd()); 
-
-	SourceField[] fields = currentType.getFields();
-	assertTrue("invalid fields ", fields != null);
-	assertEquals("Invalid fields length ", 3, fields.length);
-
-	assertEquals("Invalid declaration source start for field j", 12, fields[0].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for field j", 35, fields[0].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for initializer", 39, fields[1].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end for initializer", 56, fields[1].getDeclarationSourceEnd());
-
-	assertEquals("Invalid declaration source start for field i", 59, fields[2].getDeclarationSourceStart());
-	assertEquals("Invalid declaration source end field i", 82, fields[2].getDeclarationSourceEnd());
-	
-	SourceMethod[] methods = currentType.getMethods();
-	assertTrue(" invalid methods ", methods == null);
-	
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-/**
- * Bug 99662:[1.5] JavaModel returns inexistent IType for package-info ICompilationUnits
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=99662"
- *
- */
-public void testBug99662() {
-
-	String s = 
-		"@Deprecated\n" + 
-		"package p;\n"; 
-
-	String testName = "package-info.java";
-	fullParse(s,testName);
-
-	assertNull("package-info.java file should not have ANY type!",  this.currentType);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357
-public void _test77() {
-
-	String s =
-		"public class X {\n" + 
-		"	void foo() {\n" + 
-		"		class Y {\n" + 
-		"			String s = null;\n" + 
-		"			{\n" + 
-		"				class Z {\n" + 
-		"				}\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}";
-
-	String expectedUnitToString = 
-		"public class X implements Y, String, {\n"
-		+ "}";
-			
-	String testName = "test77: diet parse";
-	dietParse(s,testName, true);
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357
-public void _test78() {
-	String s =
-		"public class X {\n" + 
-		"	void foo() {\n" + 
-		"		class Y {\n" + 
-		"			String s = null;\n" + 
-		"			{\n" + 
-		"				class Z {\n" + 
-		"				}\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}";
-
-	String expectedUnitToString = 
-		"public class X implements Y, String, {\n"
-		+ "}";
-			
-	String testName = "test78: full parse";
-	fullParse(s,testName, true);
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357
-public void _test79() {
-
-	String s =
-		"public class X {\n" + 
-		"	void foo() {\n" + 
-		"		class Y {\n" + 
-		"			{\n" + 
-		"				class Z {\n" + 
-		"				}\n" + 
-		"			}\n" + 
-		"			String s = null;\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}";
-
-	String expectedUnitToString = 
-		"public class X implements Y, String, {\n"
-		+ "}";
-			
-	String testName = "test79: diet parse";
-	dietParse(s,testName, true);
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357
-public void _test80() {
-
-	String s =
-		"public class X {\n" + 
-		"	void foo() {\n" + 
-		"		class Y {\n" + 
-		"			{\n" + 
-		"				class Z {\n" + 
-		"				}\n" + 
-		"			}\n" + 
-		"			String s = null;\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}";
-
-	String expectedUnitToString = 
-		"public class X implements Y, String, {\n"
-		+ "}";
-			
-	String testName = "test80: full parse";
-	fullParse(s,testName, true);
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentType.toString()); 
-}
-
-
-public void testInnerMethod01() {
-
-	String s =
-			"function ss() {\n"
-			+ "function ins() {}\n"
-			+ "}\n" 
-			+ "\n"; 
-
-	String expectedUnitToString = 
-		"\tfunction ss() {\n"
-		+ "\t\tfunction ins() {}\n"
-		+ "\t}" 
-			+ "\n"; 
-
-	String testName = "testInnerMethod01";
-	fullParse(s,testName,true);
-
-	assertEquals(
-		"Invalid class declarationSourceStart ", 
-		0, 
-		currentUnit.getDeclarationSourceStart()); 
-
-//	assertEquals(
-//		"Invalid class declarationSourceEnd ", 
-//		40, 
-//		currentUnit.getDeclarationSourceEnd());
-
-	assertEquals(
-		"Invalid source " + testName, 
-		expectedUnitToString, 
-		currentUnit.toString()); 
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceField.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceField.java
deleted file mode 100644
index e14ed1e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceField.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.env.ISourceField;
-
-public class SourceField implements ISourceField {
-	protected int modifiers;
-	protected char[] typeName;
-	protected char[] name;
-	protected int declarationStart;
-	protected int declarationEnd;
-	protected int nameSourceStart;
-	protected int nameSourceEnd; 
-	protected char[] source;
-public SourceField(
-	int declarationStart,
-	int modifiers,
-	char[] typeName,
-	char[] name,
-	int nameSourceStart,
-	int nameSourceEnd,
-	char[] source) {
-
-	this.declarationStart = declarationStart;
-	this.modifiers = modifiers;
-	this.typeName = typeName;
-	this.name = name;
-	this.nameSourceStart = nameSourceStart;
-	this.nameSourceEnd = nameSourceEnd;
-	this.source = source;
-}
-public String displayModifiers() {
-	StringBuffer buffer = new StringBuffer();
-
-	if (this.modifiers == 0)
-		return null;
-	if ((this.modifiers & ClassFileConstants.AccPublic) != 0)
-		buffer.append("public ");
-	if ((this.modifiers & ClassFileConstants.AccProtected) != 0)
-		buffer.append("protected ");
-	if ((this.modifiers & ClassFileConstants.AccPrivate) != 0)
-		buffer.append("private ");
-	if ((this.modifiers & ClassFileConstants.AccFinal) != 0)
-		buffer.append("final ");
-	if ((this.modifiers & ClassFileConstants.AccStatic) != 0)
-		buffer.append("static ");
-	if ((this.modifiers & ClassFileConstants.AccAbstract) != 0)
-		buffer.append("abstract ");
-	if ((this.modifiers & ClassFileConstants.AccNative) != 0)
-		buffer.append("native ");
-	return buffer.toString();
-}
-public String getActualName() {
-	StringBuffer buffer = new StringBuffer();
-	buffer.append(source, nameSourceStart, nameSourceEnd - nameSourceStart + 1);
-	return buffer.toString();
-}
-public int getDeclarationSourceEnd() {
-	return declarationEnd;
-}
-public int getDeclarationSourceStart() {
-	return declarationStart;
-}
-public char[] getInitializationSource() {
-	return null;
-}
-public int getModifiers() {
-	return modifiers;
-}
-public char[] getName() {
-	return name;
-}
-public int getNameSourceEnd() {
-	return nameSourceEnd;
-}
-public int getNameSourceStart() {
-	return nameSourceStart;
-}
-public char[] getTypeName() {
-	return typeName;
-}
-protected void setDeclarationSourceEnd(int position) {
-	declarationEnd = position;
-}
-public String tabString(int tab) {
-	/*slow code*/
-
-	String s = "";
-	for (int i = tab; i > 0; i--)
-		s = s + "\t";
-	return s;
-}
-public String toString() {
-	return toString(0);
-}
-public String toString(int tab) {
-	StringBuffer buffer = new StringBuffer();
-	buffer.append(tabString(tab));
-	String displayModifiers = displayModifiers();
-	if (displayModifiers != null) {
-		buffer.append(displayModifiers);
-	}
-	buffer.append("var ");
-//	if (typeName!=null)
-//	{
-//		buffer.append(typeName).append(" ");	
-//	}
-	buffer.append(name);
-	buffer.append(";");
-	return buffer.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceImport.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceImport.java
deleted file mode 100644
index 220f078..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceImport.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-public class SourceImport {
-	int declarationSourceStart;
-	int declarationSourceEnd;
-	char[] name;
-	boolean onDemand;
-	char[] source;
-/**
- * @param declarationSourceStart int
- * @param declarationSourceEnd int
- * @param name char[]
- * @param onDemand boolean
- */
-public SourceImport(
-	int declarationSourceStart, 
-	int declarationSourceEnd, 
-	char[] name, 
-	boolean onDemand,
-	char[] source) {
-
-	this.declarationSourceStart = declarationSourceStart;
-	this.declarationSourceEnd = declarationSourceEnd; 
-	this.name = name;
-	this.onDemand = onDemand;
-	this.source = source;
-}
-/**
- * 
- * @return java.lang.String
- */
-public String toString() {
-	StringBuffer buffer = new StringBuffer();
-	buffer
-		.append(
-			source, 
-			declarationSourceStart, 
-			declarationSourceEnd - declarationSourceStart + 1)
-		.append("\n"); 
-	return buffer.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceInitializer.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceInitializer.java
deleted file mode 100644
index 8fd619e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceInitializer.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-
-public class SourceInitializer extends SourceField {
-public SourceInitializer(
-	int declarationStart, 
-	int modifiers) {
-	super(declarationStart, modifiers, null, null, -1, -1, null);
-}
-
-public void setDeclarationSourceEnd(int declarationSourceEnd) {
-	this.declarationEnd = declarationSourceEnd;
-}
-
-public String toString(int tab) {
-	if (modifiers == ClassFileConstants.AccStatic) {
-		return tabString(tab) + "static {}";
-	}
-	return tabString(tab) + "{}";
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceMethod.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceMethod.java
deleted file mode 100644
index a910ebd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceMethod.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.env.ISourceMethod;
-
-public class SourceMethod implements ISourceMethod {
-	private int modifiers;
-	private int declarationStart;
-	private int declarationEnd;
-	private char[] returnTypeName;
-	private char[] selector;
-	private int nameSourceStart;
-	private int nameSourceEnd;
-	private char[][] argumentTypeNames;
-	private char[][] argumentNames;
-	private char[] source;
-	private String explicitConstructorCall;
-	private int numberOfMemberMethods;
-	private SourceMethod[] memberMethods;
-	char[][] typeParameterNames;
-	char[][][] typeParameterBounds;
-	SourceMethod parent;
-	
-public SourceMethod(
-	int declarationStart,
-	int modifiers,
-	char[] returnTypeName,
-	char[] selector,
-	int nameSourceStart,
-	int nameSourceEnd,
-	char[][] argumentTypeNames,
-	char[][] argumentNames,
-	char[] source) {
-
-	this.declarationStart = declarationStart;
-	this.modifiers = modifiers;
-	this.returnTypeName = returnTypeName;
-	this.selector = selector;
-	this.nameSourceStart = nameSourceStart;
-	this.nameSourceEnd = nameSourceEnd;
-	this.argumentTypeNames = argumentTypeNames;
-	this.argumentNames = argumentNames;
-	this.source = source;
-}
-public String displayModifiers() {
-	StringBuffer buffer = new StringBuffer();
-
-	if (this.modifiers == 0)
-		return null;
-	if ((this.modifiers & ClassFileConstants.AccPublic) != 0)
-		buffer.append("public ");
-	if ((this.modifiers & ClassFileConstants.AccProtected) != 0)
-		buffer.append("protected ");
-	if ((this.modifiers & ClassFileConstants.AccPrivate) != 0)
-		buffer.append("private ");
-	if ((this.modifiers & ClassFileConstants.AccFinal) != 0)
-		buffer.append("final ");
-	if ((this.modifiers & ClassFileConstants.AccStatic) != 0)
-		buffer.append("static ");
-	if ((this.modifiers & ClassFileConstants.AccAbstract) != 0)
-		buffer.append("abstract ");
-	if ((this.modifiers & ClassFileConstants.AccNative) != 0)
-		buffer.append("native ");
-	if (buffer.toString().trim().equals(""))
-		return null;
-	return buffer.toString().trim();
-}
-protected void addMemberMethod(SourceMethod sourceMemberMethod) {
-	if(memberMethods == null) {
-		memberMethods = new SourceMethod[4];
-	}
-
-	if(numberOfMemberMethods == memberMethods.length) {
-		System.arraycopy(memberMethods, 0, memberMethods = new SourceMethod[numberOfMemberMethods * 2], 0, numberOfMemberMethods);
-	}
-	memberMethods[numberOfMemberMethods++] = sourceMemberMethod;
-}
-
-public SourceMethod[] getMemberMethods() {
-	if (memberMethods != null && memberMethods.length != numberOfMemberMethods) {
-		System.arraycopy(
-				memberMethods, 
-			0, 
-			memberMethods = new SourceMethod[numberOfMemberMethods], 
-			0, 
-			numberOfMemberMethods); 
-	}
-	return memberMethods;
-}
-
-public String getActualName() {
-	StringBuffer buffer = new StringBuffer();
-	buffer.append(source, nameSourceStart, nameSourceEnd - nameSourceStart + 1);
-	return buffer.toString();
-}
-public char[][] getArgumentNames() {
-	return argumentNames;
-}
-public char[][] getArgumentTypeNames() {
-	return argumentTypeNames;
-}
-public int getDeclarationSourceEnd() {
-	return declarationEnd;
-}
-public int getDeclarationSourceStart() {
-	return declarationStart;
-}
-public int getModifiers() {
-	return modifiers;
-}
-public int getNameSourceEnd() {
-	return nameSourceEnd;
-}
-public int getNameSourceStart() {
-	return nameSourceStart;
-}
-public char[] getReturnTypeName() {
-	return returnTypeName;
-}
-public char[] getSelector() {
-	return selector;
-}
-public char[][][] getTypeParameterBounds() {
-	return typeParameterBounds;
-}
-public char[][] getTypeParameterNames() {
-	return typeParameterNames;	
-}
-public boolean isConstructor() {
-	return returnTypeName == null;
-}
-protected void setDeclarationSourceEnd(int position) {
-	declarationEnd = position;
-}
-protected void setExplicitConstructorCall(String s) {
-	explicitConstructorCall = s;
-}
-public String tabString(int tab) {
-	/*slow code*/
-
-	String s = "";
-	for (int i = tab; i > 0; i--)
-		s = s + "\t";
-	return s;
-}
-public String toString() {
-	return toString(0);
-}
-public String toString(int tab) {
-	StringBuffer buffer = new StringBuffer();
-	buffer.append(tabString(tab));
-	String displayModifiers = displayModifiers();
-	if (displayModifiers != null) {
-		buffer.append(displayModifiers).append(" ");
-	}
-	if (returnTypeName != null) {
-		buffer.append(returnTypeName).append(" ");
-	}
-	buffer.append("function ").append(selector).append("(");
-	if (argumentTypeNames != null) {
-		for (int i = 0, max = argumentTypeNames.length; i < max; i++) {
-			buffer.append(argumentTypeNames[i]).append(" ").append(
-				argumentNames[i]).append(
-				", "); 
-		}
-	}
-	buffer.append(") ");
-	buffer.append("{");
-	if (explicitConstructorCall != null) {
-		buffer.append("\n").append(tabString(tab+1)).append(explicitConstructorCall).append(tabString(tab)).append("}");
-	}
-	if (this.numberOfMemberMethods>0)
-	{
-		for (int i = 0; i < numberOfMemberMethods; i++) {
-			buffer.append("\n").append(memberMethods[i].toString(tab+1));
-		}
-		buffer.append("\n").append(tabString(tab));
-	}
-	buffer.append("}");
-	return buffer.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourcePackage.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourcePackage.java
deleted file mode 100644
index bedfb7b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourcePackage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-public class SourcePackage {
-	int declarationSourceStart;
-	int declarationSourceEnd;
-	char[] name;
-	char[] source;
-/**
- * @param declarationSourceStart int
- * @param declarationSourceEnd int
- * @param name char[]
- * @param source char[]
- */
-public SourcePackage(
-	int declarationSourceStart, 
-	int declarationSourceEnd, 
-	char[] name,
-	char[] source) {
-
-	this.declarationSourceStart = declarationSourceStart;
-	this.declarationSourceEnd = declarationSourceEnd; 
-	this.name = name;
-	this.source = source;
-}
-/**
- * 
- * @return java.lang.String
- */
-public String toString() {
-	StringBuffer buffer = new StringBuffer();
-	buffer
-		.append(
-			source, 
-			declarationSourceStart, 
-			declarationSourceEnd - declarationSourceStart + 1)
-		.append("\n"); 
-	return buffer.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceType.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceType.java
deleted file mode 100644
index 25464c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceType.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-
-public final class SourceType {
-	private int modifiers;
-	private int declarationStart;
-	private int declarationEnd;
-	private char[] fileName;
-	private SourcePackage packageName;
-	private SourceImport[] imports;
-	private char[] enclosingTypeName;
-	private char[] name;
-	private int nameSourceStart;
-	private int nameSourceEnd;
-	private char[] superclassName;
-	private SourceType[] memberTypes;
-	private int numberOfMemberTypes;
-	private SourceMethod[] methods;
-	private int numberOfMethods;
-	private SourceField[] fields;
-	private int numberOfFields;
-	private char[] source;
-	SourceType parent;
-
-	// Buffering.
-	private char[] qualifiedName;
-	private String defaultConstructor;
-public SourceType(
-	char[] enclosingTypeName,
-	int declarationStart,
-	int modifiers,
-	char[] name,
-	int nameSourceStart,
-	int nameSourceEnd,
-	char[] superclassName,
-	char[] source) {
-
-	this.enclosingTypeName = enclosingTypeName;
-	this.declarationStart = declarationStart;
-
-	this.modifiers = modifiers;
-	this.name = name;
-	this.nameSourceStart = nameSourceStart;
-	this.nameSourceEnd = nameSourceEnd;
-	this.superclassName = superclassName;
-	this.source = source;
-}
-protected void addField(SourceField sourceField) {
-	if (fields == null) {
-		fields = new SourceField[4];
-	}
-
-	if (numberOfFields == fields.length) {
-		System.arraycopy(
-			fields, 
-			0, 
-			fields = new SourceField[numberOfFields * 2], 
-			0, 
-			numberOfFields); 
-	}
-	fields[numberOfFields++] = sourceField;
-}
-protected void addMemberType(SourceType sourceMemberType) {
-	if(memberTypes == null) {
-		memberTypes = new SourceType[4];
-	}
-
-	if(numberOfMemberTypes == memberTypes.length) {
-		System.arraycopy(memberTypes, 0, memberTypes = new SourceType[numberOfMemberTypes * 2], 0, numberOfMemberTypes);
-	}
-	memberTypes[numberOfMemberTypes++] = sourceMemberType;
-}
-protected void addMethod(SourceMethod sourceMethod) {
-	if (methods == null) {
-		methods = new SourceMethod[4];
-	}
-
-	if (numberOfMethods == methods.length) {
-		System.arraycopy(
-			methods, 
-			0, 
-			methods = new SourceMethod[numberOfMethods * 2], 
-			0, 
-			numberOfMethods); 
-	}
-	methods[numberOfMethods++] = sourceMethod;
-}
-public String displayModifiers() {
-	StringBuffer buffer = new StringBuffer();
-
-	if (this.modifiers == 0)
-		return null;
-	if ((this.modifiers & ClassFileConstants.AccPublic) != 0)
-		buffer.append("public ");
-	if ((this.modifiers & ClassFileConstants.AccProtected) != 0)
-		buffer.append("protected ");
-	if ((this.modifiers & ClassFileConstants.AccPrivate) != 0)
-		buffer.append("private ");
-	if ((this.modifiers & ClassFileConstants.AccFinal) != 0)
-		buffer.append("final ");
-	if ((this.modifiers & ClassFileConstants.AccStatic) != 0)
-		buffer.append("static ");
-	if ((this.modifiers & ClassFileConstants.AccAbstract) != 0)
-		buffer.append("abstract ");
-	if ((this.modifiers & ClassFileConstants.AccNative) != 0)
-		buffer.append("native ");
-	return buffer.toString().trim();
-}
-public String getActualName() {
-	StringBuffer buffer = new StringBuffer();
-	buffer.append(source, nameSourceStart, nameSourceEnd - nameSourceStart + 1);
-	return buffer.toString();
-}
-public int getDeclarationSourceEnd() {
-	return declarationEnd;
-}
-public int getDeclarationSourceStart() {
-	return declarationStart;
-}
-public char[] getEnclosingTypeName() {
-	return enclosingTypeName;
-}
-public SourceField[] getFields() {
-	if (fields != null && fields.length != numberOfFields) {
-		System.arraycopy(fields, 0, fields = new SourceField[numberOfFields], 0, numberOfFields);
-	}
-	return fields;
-}
-public char[] getFileName() {
-	return fileName;
-}
-public char[][] getImports() {
-	if (imports == null) return null;
-	int importLength = imports.length;
-	char[][] importNames = new char[importLength][];
-	for (int i = 0, max = importLength; i < max; i++) {
-		importNames[i] = imports[i].name;
-	}
-	return importNames;
-}
-public SourceType[] getMemberTypes() {
-	if (memberTypes != null && memberTypes.length != numberOfMemberTypes) {
-		System.arraycopy(
-			memberTypes, 
-			0, 
-			memberTypes = new SourceType[numberOfMemberTypes], 
-			0, 
-			numberOfMemberTypes); 
-	}
-	return memberTypes;
-}
-public SourceMethod[] getMethods() {
-	if (methods != null && methods.length != numberOfMethods) {
-		System.arraycopy(methods, 0, methods = new SourceMethod[numberOfMethods], 0, numberOfMethods);
-	}
-	return methods;
-}
-public int getModifiers() {
-	return modifiers;
-}
-public char[] getName() {
-	return name;
-}
-public int getNameSourceEnd() {
-	return nameSourceEnd;
-}
-public int getNameSourceStart() {
-	return nameSourceStart;
-}
-public char[] getPackageName() {
-	return packageName.name;
-}
-public char[] getQualifiedName() {
-	if (qualifiedName == null) {
-		StringBuffer temp = new StringBuffer();
-		temp.append(packageName);
-		temp.append('.');
-		temp.append(name);
-		qualifiedName = temp.toString().toCharArray();
-	}
-	return qualifiedName;
-}
-public char[] getSuperclassName() {
-	return superclassName;
-}
-public boolean isBinaryType() {
-	return false;
-}
-public boolean isClass() {
-	return true;
-}
-public void setDeclarationSourceEnd(int position) {
-	declarationEnd = position;
-}
-public void setDefaultConstructor(String s) {
-	this.defaultConstructor = s;
-}
-public void setImports(SourceImport[] imports) {
-	this.imports = imports;
-}
-public void setPackage(SourcePackage sourcePackage) {
-	packageName = sourcePackage;
-}
-public void setSuperclass(char[] superclassName) {
-	this.superclassName = superclassName;
-}
-public String tabString(int tab) {
-	/*slow code*/
-
-	String s = "";
-	for (int i = tab; i > 0; i--)
-		s = s + "\t";
-	return s;
-}
-public String toString() {
-	return toString(0);
-}
-public String toString(int tab) {
-
-	StringBuffer buffer = new StringBuffer();
-	if (packageName != null) {
-		buffer.append(tabString(tab)).append(packageName);
-	}
-	if (imports != null) {
-		for (int i = 0, max = imports.length; i < max; i++) {
-			buffer.append(tabString(tab)).append(imports[i]);
-		}
-	}
-	buffer.append(tabString(tab));
-	String displayModifiers = displayModifiers();
-	if (displayModifiers != null) {
-		buffer.append(displayModifiers).append(" ");
-	}
-	buffer.append("class ").append(name).append(" ");
-	if (superclassName != null) {
-		buffer.append("extends ").append(superclassName).append(" ");
-	}
-	buffer.append("{\n");
-	if (memberTypes != null) {
-		for (int i = 0, max = numberOfMemberTypes; i < max; i++) {
-			buffer.append(memberTypes[i].toString(tab + 1)).append("\n");
-		}
-	}
-	if (fields != null) {
-		for (int i = 0, max = numberOfFields; i < max; i++) {
-			buffer.append(fields[i].toString(tab + 1)).append("\n");
-		}
-	}
-	if (defaultConstructor != null) {
-			buffer.append(tabString(tab + 1)).append(defaultConstructor);		
-	}
-	if (methods != null) {
-		for (int i = 0, max = numberOfMethods; i < max; i++) {
-			buffer.append(methods[i].toString(tab + 1)).append("\n");
-		}
-	}
-	buffer.append(tabString(tab)).append("}");
-	return buffer.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceUnit.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceUnit.java
deleted file mode 100644
index 2d3e15c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SourceUnit.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-
-public final class SourceUnit {
-	private int modifiers;
-	private int declarationStart;
-	private int declarationEnd;
-	private char[] fileName;
-	private SourcePackage packageName;
-	private SourceImport[] imports;
-	private char[] enclosingTypeName;
-	private char[] name;
-	private int nameSourceStart;
-	private int nameSourceEnd;
-	private char[] superclassName;
-	private char[][] interfaceNames;
-	private SourceType[] memberTypes;
-	private int numberOfMemberTypes;
-	private SourceMethod[] methods;
-	private int numberOfMethods;
-	private SourceField[] fields;
-	private int numberOfFields;
-	private char[] source;
-	SourceUnit parent;
- 
-	// Buffering.
-	private char[] qualifiedName;
-	private String defaultConstructor;
-public SourceUnit(
-	) {
-
-}
-protected void addField(SourceField sourceField) {
-	if (fields == null) {
-		fields = new SourceField[4];
-	}
-
-	if (numberOfFields == fields.length) {
-		System.arraycopy(
-			fields, 
-			0, 
-			fields = new SourceField[numberOfFields * 2], 
-			0, 
-			numberOfFields); 
-	}
-	fields[numberOfFields++] = sourceField;
-}
-protected void addMemberType(SourceType sourceMemberType) {
-	if(memberTypes == null) {
-		memberTypes = new SourceType[4];
-	}
-
-	if(numberOfMemberTypes == memberTypes.length) {
-		System.arraycopy(memberTypes, 0, memberTypes = new SourceType[numberOfMemberTypes * 2], 0, numberOfMemberTypes);
-	}
-	memberTypes[numberOfMemberTypes++] = sourceMemberType;
-}
-protected void addMethod(SourceMethod sourceMethod) {
-	if (methods == null) {
-		methods = new SourceMethod[4];
-	}
-
-	if (numberOfMethods == methods.length) {
-		System.arraycopy(
-			methods, 
-			0, 
-			methods = new SourceMethod[numberOfMethods * 2], 
-			0, 
-			numberOfMethods); 
-	}
-	methods[numberOfMethods++] = sourceMethod;
-}
-public String displayModifiers() {
-	StringBuffer buffer = new StringBuffer();
-
-	if (this.modifiers == 0)
-		return null;
-	if ((this.modifiers & ClassFileConstants.AccPublic) != 0)
-		buffer.append("public ");
-	if ((this.modifiers & ClassFileConstants.AccProtected) != 0)
-		buffer.append("protected ");
-	if ((this.modifiers & ClassFileConstants.AccPrivate) != 0)
-		buffer.append("private ");
-	if ((this.modifiers & ClassFileConstants.AccFinal) != 0)
-		buffer.append("final ");
-	if ((this.modifiers & ClassFileConstants.AccStatic) != 0)
-		buffer.append("static ");
-	if ((this.modifiers & ClassFileConstants.AccAbstract) != 0)
-		buffer.append("abstract ");
-	if ((this.modifiers & ClassFileConstants.AccNative) != 0)
-		buffer.append("native ");
-	return buffer.toString().trim();
-}
-public String getActualName() {
-	StringBuffer buffer = new StringBuffer();
-	buffer.append(source, nameSourceStart, nameSourceEnd - nameSourceStart + 1);
-	return buffer.toString();
-}
-public int getDeclarationSourceEnd() {
-	return declarationEnd;
-}
-public int getDeclarationSourceStart() {
-	return declarationStart;
-}
-public char[] getEnclosingTypeName() {
-	return enclosingTypeName;
-}
-public SourceField[] getFields() {
-	if (fields != null && fields.length != numberOfFields) {
-		System.arraycopy(fields, 0, fields = new SourceField[numberOfFields], 0, numberOfFields);
-	}
-	return fields;
-}
-public char[] getFileName() {
-	return fileName;
-}
-public char[][] getImports() {
-	if (imports == null) return null;
-	int importLength = imports.length;
-	char[][] importNames = new char[importLength][];
-	for (int i = 0, max = importLength; i < max; i++) {
-		importNames[i] = imports[i].name;
-	}
-	return importNames;
-}
-public char[][] getInterfaceNames() {
-	return interfaceNames;
-}
-public SourceType[] getMemberTypes() {
-	if (memberTypes != null && memberTypes.length != numberOfMemberTypes) {
-		System.arraycopy(
-			memberTypes, 
-			0, 
-			memberTypes = new SourceType[numberOfMemberTypes], 
-			0, 
-			numberOfMemberTypes); 
-	}
-	return memberTypes;
-}
-public SourceMethod[] getMethods() {
-	if (methods != null && methods.length != numberOfMethods) {
-		System.arraycopy(methods, 0, methods = new SourceMethod[numberOfMethods], 0, numberOfMethods);
-	}
-	return methods;
-}
-public int getModifiers() {
-	return modifiers;
-}
-public char[] getName() {
-	return name;
-}
-public int getNameSourceEnd() {
-	return nameSourceEnd;
-}
-public int getNameSourceStart() {
-	return nameSourceStart;
-}
-public char[] getPackageName() {
-	return packageName.name;
-}
-public char[] getQualifiedName() {
-	if (qualifiedName == null) {
-		StringBuffer temp = new StringBuffer();
-		temp.append(packageName);
-		temp.append('.');
-		temp.append(name);
-		qualifiedName = temp.toString().toCharArray();
-	}
-	return qualifiedName;
-}
-public char[] getSuperclassName() {
-	return superclassName;
-}
-public boolean isBinaryType() {
-	return false;
-}
-public boolean isClass() {
-	return true;
-}
-public void setDeclarationSourceEnd(int position) {
-	declarationEnd = position;
-}
-public void setDefaultConstructor(String s) {
-	this.defaultConstructor = s;
-}
-public void setImports(SourceImport[] imports) {
-	this.imports = imports;
-}
-public void setPackage(SourcePackage sourcePackage) {
-	packageName = sourcePackage;
-}
-public void setSuperclass(char[] superclassName) {
-	this.superclassName = superclassName;
-}
-public void setSuperinterfaces(char[][] superinterfacesNames) {
-	this.interfaceNames = superinterfacesNames;
-}
-public String tabString(int tab) {
-	/*slow code*/
-
-	String s = "";
-	for (int i = tab; i > 0; i--)
-		s = s + "\t";
-	return s;
-}
-public String toString() {
-	return toString(0);
-}
-public String toString(int tab) {
-
-	StringBuffer buffer = new StringBuffer();
-//	if (packageName != null) {
-//		buffer.append(tabString(tab)).append(packageName);
-//	}
-//	if (imports != null) {
-//		for (int i = 0, max = imports.length; i < max; i++) {
-//			buffer.append(tabString(tab)).append(imports[i]);
-//		}
-//	}
-//	buffer.append(tabString(tab));
-//	String displayModifiers = displayModifiers();
-//	if (displayModifiers != null) {
-//		buffer.append(displayModifiers).append(" ");
-//	}
-//	buffer.append(isInterface() ? "interface " : "class ").append(name).append(" ");
-//	if (superclassName != null) {
-//		buffer.append("extends ").append(superclassName).append(" ");
-//	}
-//	if (interfaceNames != null) {
-//		buffer.append("implements ");
-//		for (int i = 0, max = interfaceNames.length; i < max; i++) {
-//			buffer.append(interfaceNames[i]).append(", ");
-//		}
-//	}
-//	buffer.append("{\n");
-//	if (memberTypes != null) {
-//		for (int i = 0, max = numberOfMemberTypes; i < max; i++) {
-//			buffer.append(memberTypes[i].toString(tab + 1)).append("\n");
-//		}
-//	}
-	if (fields != null) {
-		for (int i = 0, max = numberOfFields; i < max; i++) {
-			buffer.append(fields[i].toString(tab + 1)).append("\n");
-		}
-	}
-//	if (defaultConstructor != null) {
-//			buffer.append(tabString(tab + 1)).append(defaultConstructor);		
-//	}
-	if (methods != null) {
-		for (int i = 0, max = numberOfMethods; i < max; i++) {
-			buffer.append(methods[i].toString(tab + 1)).append("\n");
-		}
-	}
-//	buffer.append(tabString(tab)).append("}");
-	return buffer.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/StatementRecoveryTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/StatementRecoveryTest.java
deleted file mode 100644
index a7480c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/StatementRecoveryTest.java
+++ /dev/null
@@ -1,3734 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
- 
-public class StatementRecoveryTest extends AbstractCompilerTest {
-	public static final boolean ONLY_DIET_PLUS_BODY_WITH_STATEMENT_RECOVERY = true;
-	
-	public static boolean optimizeStringLiterals = false;
-	public static long sourceLevel = ClassFileConstants.JDK1_3; //$NON-NLS-1$
-	
-static {
-//	TESTS_NAMES = new String[] { "test0037"};
-//	TESTS_RANGE = new int[] {10, 20};
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(StatementRecoveryTest.class);
-}
-public StatementRecoveryTest(String testName){
-	super(testName);
-}
-public void checkParse(
-	char[] source, 
-	String expectedDietUnitToString,
-	String expectedDietWithStatementRecoveryUnitToString,
-	String expectedDietPlusBodyUnitToString,	
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString,	
-	String expectedFullUnitToString,
-	String expectedFullWithStatementRecoveryUnitToString,
-	String testName) {
-
-	/* using regular parser in DIET mode */
-	if(!ONLY_DIET_PLUS_BODY_WITH_STATEMENT_RECOVERY){
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-		parser.setMethodsFullRecovery(false);
-		parser.setStatementsRecovery(false);
-		
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedDietUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit diet structure" + testName,
-			expectedDietUnitToString,
-			computedUnitToString);
-	}
-	/* using regular parser in DIET mode and statementRecoveryEnabled */
-	if(!ONLY_DIET_PLUS_BODY_WITH_STATEMENT_RECOVERY){
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedDietWithStatementRecoveryUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit diet structure with statement recovery enabled" + testName,
-			expectedDietWithStatementRecoveryUnitToString,
-			computedUnitToString);
-	}
-	/* using regular parser in DIET mode + getMethodBodies */
-	if(!ONLY_DIET_PLUS_BODY_WITH_STATEMENT_RECOVERY){
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-		parser.setMethodsFullRecovery(false);
-		parser.setStatementsRecovery(false);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedDietUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit diet structure" + testName,
-			expectedDietUnitToString,
-			computedUnitToString);
-		if (computedUnit.types != null) {
-			for (int i = computedUnit.types.length; --i >= 0;){
-				computedUnit.types[i].parseMethod(parser, computedUnit);
-			}
-		}
-		computedUnitToString = computedUnit.toString();
-		if (!expectedDietPlusBodyUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		
-		assertEquals(
-			"Invalid unit diet+body structure" + testName,
-			expectedDietPlusBodyUnitToString,
-			computedUnitToString);
-	}
-	/* using regular parser in DIET mode + getMethodBodies and statementRecoveryEnabled */
-	{
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.dietParse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedDietWithStatementRecoveryUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit diet structure" + testName,
-			expectedDietWithStatementRecoveryUnitToString,
-			computedUnitToString);
-		if (computedUnit.types != null) {
-			for (int i = computedUnit.types.length; --i >= 0;){
-				computedUnit.types[i].parseMethod(parser, computedUnit);
-			}
-		}
-		computedUnitToString = computedUnit.toString();
-		if (!expectedDietPlusBodyWithStatementRecoveryUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		
-		assertEquals(
-			"Invalid unit diet+body structure with statement recovery enabled" + testName,
-			expectedDietPlusBodyWithStatementRecoveryUnitToString,
-			computedUnitToString);
-	}
-	/* using regular parser in FULL mode */
-	if(!ONLY_DIET_PLUS_BODY_WITH_STATEMENT_RECOVERY){
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-		parser.setMethodsFullRecovery(false);
-		parser.setStatementsRecovery(false);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.parse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedFullUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit full structure" + testName,
-			expectedFullUnitToString,
-			computedUnitToString);
-
-	}
-	/* using regular parser in FULL mode and statementRecoveryEnabled */
-	if(!ONLY_DIET_PLUS_BODY_WITH_STATEMENT_RECOVERY){
-		Parser parser = 
-			new Parser(
-				new ProblemReporter(
-					DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-					new CompilerOptions(getCompilerOptions()), 
-					new DefaultProblemFactory(Locale.getDefault())),
-				optimizeStringLiterals);
-
-		ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-		CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-		
-		CompilationUnitDeclaration computedUnit = parser.parse(sourceUnit, compilationResult);
-		String computedUnitToString = computedUnit.toString();
-		if (!expectedFullWithStatementRecoveryUnitToString.equals(computedUnitToString)){
-			System.out.println(Util.displayString(computedUnitToString));
-		}
-		assertEquals(
-			"Invalid unit full structure with statement recovery enabled" + testName,
-			expectedFullWithStatementRecoveryUnitToString,
-			computedUnitToString);
-
-	}
-}
-
-public void test0001() {
-
-	String s = 
-			"  function foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"function foo() {\n" + 
-    	 "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		expectedDietPlusBodyUnitToString;
-	
-	String expectedFullUnitToString =
-		expectedDietPlusBodyUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedFullUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0002() {
-
-	String s = 
-		"  function foo() {								\n"
-		+ "    #                    					\n"
-		+ "    System.out.println();					\n"
-		+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-public void test0002a() {
-
-	String s = 
-		  "    System.out.print1();					\n"
-		 + "    #                    					\n"
-		+ "    System.out.print2();					\n"
-		+ "											\n"; 	
-
-	String expectedDietUnitToString = 
-   	    "System.out.print1();\n"+
-   	    "System.out.print2();\n"+
- 		"";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-   	    "  System.out.println();\n"+
-		"\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-   	    "System.out.print1();\n"+
-   	    "System.out.print2();\n"+
- 		"";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-public void test0002b() {
-
-	String s = 
-		"  foo = function () {								\n"
-		+ "    #                    					\n"
-		+ "    System.out.println();					\n"
-		+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"};\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"};\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-
-
-
-public void test0002c() {
-
-	String s = 
-		"  obj ={								\n"
-		+"   p1 : 2,							\n"
-		+" meth: function () {								\n"
-		+ "    #                    					\n"
-		+ "    FOO();					\n"
-		+ "}											\n" 	
-		+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"};\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"};\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-
-
-public void test0002d() {
-
-	String s = 
-		" a= foo{								\n"
-		+"  function () {								\n"
-		+ "    #                    					\n"
-		+ "    bar();					\n"
-		+ "}											\n" 	
-		+ ");											\n"; 	
-
-	String expectedDietUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"};\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"foo = function () {\n" + 
-   	    "  System.out.println();\n"+
-		"};\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-
-
-
-public void test0003() {
-
-	String s = 
-		"  function foo() {								\n"
-		+ "    System.out.println();					\n"
-		+ "    #                    					\n"
-		+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-
-public void test0003b() {
-
-	String s = 
-		"  function foo1() {								\n"
-		+ "    var i;					\n"
-		+ "}											\n" 	
-		+ "  function foo2() {								\n"
-		+ "    #                    					\n"
-		+ "    a=1;					\n"
-		+ "}											\n" 	
-		+ "  function foo3() {								\n"
-		+ "    var k;					\n"
-		+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-
-
-public void test0004() {
-
-	String s = 
-		"  function foo() {								\n"
-		+ "    #                    					\n"
-		+ "    System.out.println();					\n"
-		+ "    System.out.println();					\n"
-		+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0005() {
-
-	String s = 
-		"  function foo() {								\n"
-		+ "    System.out.println();					\n"
-		+ "    System.out.println();					\n"
-		+ "    #                    					\n"
-		+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0006() {
-
-	String s = 
-		"function foo() {\n"  
-		+ "    System.out.println();					\n"
-		+ "    System.out.println();					\n"
-		+ "    #                    					\n"
-		+ "    System.out.println();					\n"
-		+ "    System.out.println();					\n"
-		+"}\n";
-
-	String expectedDietUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"function foo() {\n" + 
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-   	    "  System.out.println();\n"+
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0007() {
-
-	String s = 
-		"function foo() {\n"  
-		+ "    #                    					\n"
-		+ "    System.out.println();					\n"
-		+ "    if(true) {								\n"
-		+ "      System.out.println();					\n"
-		+ "    }										\n"
-		+ "    System.out.println();					\n"
-		+"}\n";
-
-	String expectedDietUnitToString = 
-		"function foo() {\n" 
-		+ "  System.out.println();\n"
-		+ "  if (true)\n" 
-		+ "      {\n"
-		+ "        System.out.println();\n"
-		+ "      }\n"
-		+ "  System.out.println();\n"
-		+"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"function foo() {\n" 
-		+ "  System.out.println();\n"
-		+ "  if (true)\n" 
-		+ "      {\n"
-		+ "        System.out.println();\n"
-		+ "      }\n"
-		+ "  System.out.println();\n"
-		+"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"function foo() {\n" 
-		+ "  System.out.println();\n"
-		+ "  if (true)\n" 
-		+ "      {\n"
-		+ "        System.out.println();\n"
-		+ "      }\n"
-		+ "  System.out.println();\n"
-		+"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0008() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    if(true) {								\n"
-			+ "      System.out.println();					\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "    #                    					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          System.out.println();\n" + 
-		"        }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0009() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    if(true) {								\n"
-			+ "      System.out.println();					\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "    #                    					\n"
-			+ "    System.out.println();					\n"
-			+ "    if(true) {								\n"
-			+ "      System.out.println();					\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          System.out.println();\n" + 
-		"        }\n" + 
-		"    System.out.println();\n" + 
-		"    System.out.println();\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          System.out.println();\n" + 
-		"        }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0010() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {}							\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietPlusBodyUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietPlusBodyUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0011() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {}							\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "    #										\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0012() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {}							\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0013() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {}							\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    class Y {								\n"
-			+ "      void foo() {}							\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"    System.out.println();\n" + 
-		"    class Y {\n" + 
-		"      Y() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0014() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "    #										\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0015() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0016() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0017() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "        #									\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0018() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        #									\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0019() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "        #									\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0020() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "        #									\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0021() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {}							\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietPlusBodyUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietPlusBodyUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0022() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {}							\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "    #										\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0023() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void bar() {}							\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void bar() {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0024() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void bar() {}							\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void bar() {}							\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void bar() {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void bar() {\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0025() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "    #										\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0026() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0027() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0028() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "        #									\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0029() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        #									\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0030() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "        #									\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0031() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "        #									\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"        System.out.println();\n" + 
-		"        if (true)\n" + 
-		"            {\n" + 
-		"              System.out.println();\n" + 
-		"            }\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0032() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    System.out.println();					\n"
-			+ "    bar(new Object() {						\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "        #									\n"
-			+ "        System.out.println();				\n"
-			+ "        if(true) {							\n"
-			+ "          System.out.println();				\n"
-			+ "        }									\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    });										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    bar(new Object() {\n" + 
-		"  () {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    System.out.println();\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          System.out.println();\n" + 
-		"        }\n" + 
-		"    System.out.println();\n" + 
-		"    System.out.println();\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          System.out.println();\n" + 
-		"        }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"});\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0033() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    class Z {								\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    class Z {\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0034() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    #										\n"
-			+ "    new Object() {							\n"
-			+ "      void foo() {							\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    };										\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    new Object() {\n" + 
-		"      () {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"      void foo() {\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0035() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    bar(\\u0029								\n"
-			+ "  }											\n"
-			+ "}											\n"; 	
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    bar();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0036() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    if(true) {								\n"
-			+ "      foo();									\n"
-			+ "    }										\n"
-			+ "    for(;									\n"
-			+ "    if(true) {								\n"
-			+ "      foo();									\n"
-			+ "    }										\n"
-			+ "  }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          foo();\n" + 
-		"        }\n" + 
-		"    for (; ; ) \n" + 
-		"      ;\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          foo();\n" + 
-		"        }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0037() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    if() {									\n"
-			+ "      foo();									\n"
-			+ "    }										\n"
-			+ "  }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    if ($missing$)\n" + 
-		"        {\n" + 
-		"          foo();\n" + 
-		"        }\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0038() {
-	String s = 
-		"package p1;										\n"+
-			"public class A {									\n"+
-			"	public interface B {							\n"+
-			"		public abstract void aMethod (int A);		\n"+
-			"		public interface C {						\n"+
-			"			public abstract void anotherMethod(int A);\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public class aClass implements B, B.C {			\n"+
-			"		public void aMethod (int A) {				\n"+
-			"			public void anotherMethod(int A) {};	\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"   	public static void main (String argv[]) {	\n"+
-			"		System.out.println(\"SUCCESS\");			\n"+
-			"	}												\n"+
-			"}";
-
-	String expectedDietUnitToString = 
-		"package p1;\n" + 
-		"public class A {\n" + 
-		"  public interface B {\n" + 
-		"    public interface C {\n" + 
-		"      public abstract void anotherMethod(int A);\n" + 
-		"    }\n" + 
-		"    public abstract void aMethod(int A);\n" + 
-		"  }\n" + 
-		"  public class aClass implements B, B.C {\n" + 
-		"    public aClass() {\n" + 
-		"    }\n" + 
-		"    public void aMethod(int A) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package p1;\n" + 
-		"public class A {\n" + 
-		"  public interface B {\n" + 
-		"    public interface C {\n" + 
-		"      public abstract void anotherMethod(int A);\n" + 
-		"    }\n" + 
-		"    public abstract void aMethod(int A);\n" + 
-		"  }\n" + 
-		"  public class aClass implements B, B.C {\n" + 
-		"    public aClass() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"    public void aMethod(int A) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"    System.out.println(\"SUCCESS\");\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package p1;\n" + 
-		"public class A {\n" + 
-		"  public interface B {\n" + 
-		"    public interface C {\n" + 
-		"      public abstract void anotherMethod(int A);\n" + 
-		"    }\n" + 
-		"    public abstract void aMethod(int A);\n" + 
-		"  }\n" + 
-		"  public class aClass implements B, B.C {\n" + 
-		"    public aClass() {\n" + 
-		"      super();\n" + 
-		"    }\n" + 
-		"    public void aMethod(int A) {\n" + 
-		"      public void anotherMethod;\n" + 
-		"      int A;\n" + 
-		"      ;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"    System.out.println(\"SUCCESS\");\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		"package p1;\n" + 
-		"public class A {\n" + 
-		"  public interface B {\n" + 
-		"    public interface C {\n" + 
-		"      public abstract void anotherMethod(int A);\n" + 
-		"    }\n" + 
-		"    public abstract void aMethod(int A);\n" + 
-		"  }\n" + 
-		"  public class aClass implements B, B.C {\n" + 
-		"    public aClass() {\n" + 
-		"    }\n" + 
-		"    public void aMethod(int A) {\n" + 
-		"    }\n" + 
-		"    public void anotherMethod(int A) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public A() {\n" + 
-		"  }\n" + 
-		"  public static void main(String[] argv) {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedFullUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0039() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  {											\n"
-			+ "    System.out.println();					\n"
-			+ "    foo()									\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    System.out.println();\n" + 
-		"    foo();\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0040() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  {											\n"
-			+ "    System.out.println();					\n"
-			+ "    class Y {								\n"
-			+ "      {										\n"
-			+ "        System.out.println();				\n"
-			+ "        foo()								\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    System.out.println();\n" + 
-		"    class Y {\n" + 
-		"      {\n" + 
-		"        System.out.println();\n" + 
-		"        foo();\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"      Y() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0041() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  {											\n"
-			+ "    System.out.println();					\n"
-			+ "    class Y {								\n"
-			+ "      {										\n"
-			+ "        System.out.println();				\n"
-			+ "        foo()								\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "    class Z {								\n"
-			+ "      {										\n"
-			+ "        System.out.println();				\n"
-			+ "        foo()								\n"
-			+ "        System.out.println();				\n"
-			+ "      }										\n"
-			+ "    }										\n"
-			+ "    System.out.println();					\n"
-			+ "    foo()									\n"
-			+ "    System.out.println();					\n"
-			+ "  }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    System.out.println();\n" + 
-		"    class Y {\n" + 
-		"      {\n" + 
-		"        System.out.println();\n" + 
-		"        foo();\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"      Y() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"    class Z {\n" + 
-		"      {\n" + 
-		"        System.out.println();\n" + 
-		"        foo();\n" + 
-		"        System.out.println();\n" + 
-		"      }\n" + 
-		"      Z() {\n" + 
-		"        super();\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    System.out.println();\n" + 
-		"    foo();\n" + 
-		"    System.out.println();\n" + 
-		"  }\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-public void test0042() {
-
-	String s = 
-		"package a;											\n"
-			+ "public class X {								\n"
-			+ "  void foo() {								\n"
-			+ "    for(int i								\n"
-			+ "  }											\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public class X {\n" + 
-		"  public X() {\n" + 
-		"    super();\n" + 
-		"  }\n" + 
-		"  void foo() {\n" + 
-		"    for (int i;; ; ) \n" + 
-		"      ;\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=80339
-public void test0043() {
-
-	String s = 
-		"package a;											\n"
-			+ "public interface Test {						\n"
-			+ "  public void myMethod()						\n"
-			+ "}											\n";
-
-	String expectedDietUnitToString = 
-		"package a;\n" + 
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedDietWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedDietPlusBodyUnitToString = 
-		"package a;\n" + 
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-
-	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
-		"package a;\n" + 
-		"public interface Test {\n" + 
-		"  public void myMethod() {\n" + 
-		"  }\n" + 
-		"}\n";
-	
-	String expectedFullUnitToString =
-		expectedDietUnitToString;
-	
-	String expectedFullWithStatementRecoveryUnitToString =
-		expectedDietUnitToString;
-	
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedDietUnitToString,
-		expectedDietWithStatementRecoveryUnitToString,
-		expectedDietPlusBodyUnitToString,
-		expectedDietPlusBodyWithStatementRecoveryUnitToString,
-		expectedFullUnitToString,
-		expectedFullWithStatementRecoveryUnitToString,
-		testName);
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SyntaxErrorTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SyntaxErrorTest.java
deleted file mode 100644
index ab3f37b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/SyntaxErrorTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.Locale;
-
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblem;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-
-public class SyntaxErrorTest extends AbstractCompilerTest {
-	public static boolean optimizeStringLiterals = false;
-	public static long sourceLevel = ClassFileConstants.JDK1_3; //$NON-NLS-1$
-	
-public SyntaxErrorTest(String testName){
-	super(testName);
-}
-public void checkParse(
-	char[] source, 
-	String expectedSyntaxErrorDiagnosis,
-	String testName) {
-
-	/* using regular parser in DIET mode */
-	Parser parser = 
-		new Parser(
-			new ProblemReporter(
-				DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-				new CompilerOptions(getCompilerOptions()), 
-				new DefaultProblemFactory(Locale.getDefault())),
-			optimizeStringLiterals);
-	ICompilationUnit sourceUnit = new CompilationUnit(source, testName, null);
-	CompilationResult compilationResult = new CompilationResult(sourceUnit, 0, 0, 0);	
-	
-	parser.parse(sourceUnit, compilationResult);
-
-	StringBuffer buffer = new StringBuffer(100);
-	if (compilationResult.hasProblems() || compilationResult.hasTasks()) {
-		CategorizedProblem[] problems = compilationResult.getAllProblems();
-		int count = problems.length;
-		int problemCount = 0;
-		char[] unitSource = compilationResult.compilationUnit.getContents();
-		for (int i = 0; i < count; i++) { 
-			if (problems[i] != null) {
-				if (problemCount == 0)
-					buffer.append("----------\n");
-				problemCount++;
-				buffer.append(problemCount + (problems[i].isError() ? ". ERROR" : ". WARNING"));
-				buffer.append(" in " + new String(problems[i].getOriginatingFileName()).replace('/', '\\'));
-				try {
-					buffer.append(((DefaultProblem)problems[i]).errorReportSource(unitSource));
-					buffer.append("\n");
-					buffer.append(problems[i].getMessage());
-					buffer.append("\n");
-				} catch (Exception e) {
-				}
-				buffer.append("----------\n");
-			}
-		}
-	}
-	String computedSyntaxErrorDiagnosis = buffer.toString();
- 	//System.out.println(Util.displayString(computedSyntaxErrorDiagnosis));
-	assertEquals(
-		"Invalid syntax error diagnosis" + testName,
-		Util.convertToIndependantLineDelimiter(expectedSyntaxErrorDiagnosis),
-		Util.convertToIndependantLineDelimiter(computedSyntaxErrorDiagnosis));
-}
-/*
- * Should diagnose parenthesis mismatch
- */
-//TODO - fix bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=279009
-public void Xtest01() {
-
-	String s = 
-		"function X() {									\n"+
-		" function solve(){								\n"+
-		"												\n"+
-		"  var results = new X[10];						\n"+
-		"  for(var i = 0; i < 10; i++){					\n"+
-		"   var result = results[i];					\n"+
-		"   var found = false;							\n"+
-		"   for(var j = 0; j < 10; j++){				\n"+
-		"    if (this == (result.documentName){			\n"+
-		"     found = true;								\n"+
-		"     break;									\n"+
-		"    }											\n"+
-		"   }											\n"+
-		"  }											\n"+
-		"  return andResult;							\n"+
-		" }												\n"+
-		"}												\n"; 
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" +
-		"1. ERROR in <parenthesis mismatch> (at line 9)\n" + 
-		"	if (this == (result.documentName){			\n" + 
-		"	                                ^\n" + 
-		"Syntax error, insert \") BlockStatement\" to complete BlockStatements\n" + 
-		"----------\n";
-
-	String testName = "<parenthesis mismatch>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-/*
- * Should diagnose brace mismatch
- */
-public void test02() {
-
-	String s = 
-		"function Bar() {		\n"+				
-		" this.a = (fred().x{); \n"+					
-		"}						\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n" +
-		"1. ERROR in <brace mismatch> (at line 2)\n" +
-		"	this.a = (fred().x{); \n" +
-		"	                  ^\n" +
-		"Syntax error on token \"{\", delete this token\n" + 
-		"----------\n";
-
-	String testName = "<brace mismatch>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=133292
-public void test03() {
-
-	String s = 
-		"function X() { 												\n"+
-		"    o = { s: \"Success\"; };								\n"+
-		"}																\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n"+
-		"1. ERROR in <test> (at line 2)\n"+
-		"	o = { s: \"Success\"; };								\n"+
-		"	                  ^\n"+
-		"Syntax error on token \";\", delete this token\n"+
-		"----------\n";
-
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=133292
-public void test04() {
-
-	String s = 
-		"function X() { 												\n"+
-		"    var o = { s: \"Success\"; };								\n"+
-		"}																\n"; 	
-
-	String expectedSyntaxErrorDiagnosis =
-		"----------\n"+
-		"1. ERROR in <test> (at line 2)\n"+
-		"	var o = { s: \"Success\"; };								\n"+
-		"	                      ^\n"+
-		"Syntax error on token \";\", delete this token\n"+
-		"----------\n";
-
-	String testName = "<test>";
-	checkParse(
-		s.toCharArray(),
-		expectedSyntaxErrorDiagnosis,
-		testName);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/TestAll.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/TestAll.java
deleted file mode 100644
index 67161d6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/TestAll.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Run all parser regression tests
- */
-public class TestAll extends junit.framework.TestCase {
-
-	public final static List TEST_CLASSES_1_5 = new ArrayList();
-	static {
-		/* completion tests */
-		TEST_CLASSES_1_5.addAll(RunCompletionParserTests.TEST_CLASSES_1_5);
-	}
-
-public TestAll(String testName) {
-	super(testName);
-}
-
-public static Test suite() {
-	ArrayList testClasses = new ArrayList();
-
-	/* completion tests */
-	testClasses.addAll(RunCompletionParserTests.TEST_CLASSES);
-	
-	/* selection tests */
-	testClasses.add(ExplicitConstructorInvocationSelectionTest.class);
-	testClasses.add(SelectionTest.class);
-	testClasses.add(SelectionTest2.class);
-	testClasses.add(SelectionJavadocTest.class);
-	
-	/* recovery tests */
-	testClasses.add(DietRecoveryTest.class);
-	testClasses.add(StatementRecoveryTest.class);
-	
-	/* source element parser tests */
-	testClasses.add(SourceElementParserTest.class);
-
-	/* syntax error diagnosis tests */
-	testClasses.add(SyntaxErrorTest.class);
-	testClasses.add(DualParseSyntaxErrorTest.class);
-	testClasses.add(ParserTest.class);
-	testClasses.add(ComplianceDiagnoseTest.class);
-	
-	TestSuite all = new TestSuite(TestAll.class.getName());
-	int possibleComplianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_3) != 0) {
-		ArrayList tests_1_3 = (ArrayList)testClasses.clone();
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_3, tests_1_3));
-	}
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_4) != 0) {
-		ArrayList tests_1_4 = (ArrayList)testClasses.clone();
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_4, tests_1_4));
-	}
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_5) != 0) {
-		ArrayList tests_1_5 = (ArrayList)testClasses.clone();
-		tests_1_5.addAll(TEST_CLASSES_1_5);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_5, tests_1_5));
-	}
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_6) != 0) {
-		ArrayList tests_1_6 = (ArrayList)testClasses.clone();
-		tests_1_6.addAll(TEST_CLASSES_1_5);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_6, tests_1_6));
-	}
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_7) != 0) {
-		ArrayList tests_1_7 = (ArrayList)testClasses.clone();
-		tests_1_7.addAll(TEST_CLASSES_1_5);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_7, tests_1_7));
-	}
-
-	return all;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/TestSourceElementRequestor.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/TestSourceElementRequestor.java
deleted file mode 100644
index 4e06d49..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/TestSourceElementRequestor.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.parser;
-
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.internal.compiler.ISourceElementRequestor;
-
-public class TestSourceElementRequestor implements ISourceElementRequestor {
-/**
- * DummySourceElementRequestor constructor comment.
- */
-public TestSourceElementRequestor() {
-	super();
-}
-/**
- * acceptConstructorReference method comment.
- */
-public void acceptConstructorReference(char[] typeName, int argCount, int sourcePosition) {}
-/**
- * acceptFieldReference method comment.
- */
-public void acceptFieldReference(char[] fieldName, int sourcePosition) {}
-/**
- * acceptImport method comment.
- */
-public void acceptImport(int declarationStart, int declarationEnd, char[][] tokens, boolean onDemand) {}
-/**
- * acceptLineSeparatorPositions method comment.
- */
-public void acceptLineSeparatorPositions(int[] positions) {}
-/**
- * acceptMethodReference method comment.
- */
-public void acceptMethodReference(char[] methodName, int argCount, int sourcePosition) {}
-/**
- * acceptPackage method comment.
- */
-public void acceptPackage(int declarationStart, int declarationEnd, char[] name) {}
-/**
- * acceptProblem method comment.
- */
-public void acceptProblem(CategorizedProblem problem) {}
-/**
- * acceptTypeReference method comment.
- */
-public void acceptTypeReference(char[][] typeName, int sourceStart, int sourceEnd) {}
-/**
- * acceptTypeReference method comment.
- */
-public void acceptTypeReference(char[] typeName, int sourcePosition) {}
-/**
- * acceptUnknownReference method comment.
- */
-public void acceptUnknownReference(char[][] name, int sourceStart, int sourceEnd) {}
-/**
- * acceptUnknownReference method comment.
- */
-public void acceptUnknownReference(char[] name, int sourcePosition) {}
-/**
- * enterCompilationUnit method comment.
- */
-public void enterCompilationUnit() {}
-/**
- * enterConstructor method comment.
- */
-public void enterConstructor(MethodInfo methodInfo) {}
-/**
- * enterField method comment.
- */
-public void enterField(FieldInfo fieldInfo) {}
-/**
- * enterMethod method comment.
- */
-public void enterMethod(MethodInfo methodInfo) {}
-/**
- * enterType method comment.
- */
-public void enterType(TypeInfo typeInfo) {}
-/**
- * exitCompilationUnit method comment.
- */
-public void exitCompilationUnit(int declarationEnd) {}
-/**
- * exitConstructor method comment.
- */
-public void exitConstructor(int declarationEnd) {}
-/**
- * exitField method comment.
- */
-public void exitField(int initializationStart, int declarationEnd, int declarationSourceEnd) {}
-/**
- * exitMethod method comment.
- */
-public void exitMethod(int declarationEnd, int defaultValueStart, int defaultValueEnd) {}
-
-/**
- * enterInitializer method comment.
- */
-public void enterInitializer(int sourceStart, int sourceEnd) {
-}
-
-/**
- * exitInitializer method comment.
- */
-public void exitInitializer(int sourceEnd) {
-}
-/**
- * exitType method comment.
- */
-public void exitType(int declarationEnd) {}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ASTImplTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ASTImplTests.java
deleted file mode 100644
index e28ff8f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ASTImplTests.java
+++ /dev/null
@@ -1,1006 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ast.Argument;
-import org.eclipse.wst.jsdt.internal.compiler.ast.BinaryExpression;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CharLiteral;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CombinedBinaryExpression;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.ExtendedStringLiteral;
-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocSingleTypeReference;
-import org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.ast.SingleNameReference;
-import org.eclipse.wst.jsdt.internal.compiler.ast.StringLiteral;
-import org.eclipse.wst.jsdt.internal.compiler.ast.StringLiteralConcatenation;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-
-/**
- * A tests series especially meant to validate the internals of our AST
- * implementation.
- */
-public class ASTImplTests extends AbstractRegressionTest {
-public ASTImplTests(String name) { 
-    super(name);
-}
-
-	// Static initializer to specify tests subset using TESTS_* static variables
-  	// All specified tests which does not belong to the class are skipped...
-  	// Only the highest compliance level is run; add the VM argument
-  	// -Dcompliance=1.4 (for example) to lower it if needed
-  	static {
-//    	TESTS_NAMES = new String[] { "test2050" };
-//    	TESTS_NUMBERS = new int[] { 3 };   
-//    	TESTS_NUMBERS = new int[] { 2999 };   
-//    	TESTS_RANGE = new int[] { 2050, -1 }; 
-  	}
-
-public static Test suite() {
-    return buildAllCompliancesTestSuite(testClass());
-}
-  
-public static Class testClass() {
-    return ASTImplTests.class;
-}
-
-// Helper methods
-static Parser defaultParser = new Parser(
-			new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-			new CompilerOptions(), 
-			new DefaultProblemFactory()), false);
-public void runConformTest(String fileName, String fileContents, 
-		Parser parser, ASTCollector visitor, String expected) {
-	CompilationUnit source = 
-		new CompilationUnit(fileContents.toCharArray(),	fileName, null);
-	CompilationResult compilationResult =
-		new CompilationResult(source, 1, 1, 10); 
-	CompilationUnitDeclaration unit = parser.parse(source, compilationResult);
-	assertEquals(0, compilationResult.problemCount);
-	unit.traverse(visitor, unit.scope);
-	String result = visitor.result();
-	if (! expected.equals(result)) {
-		System.out.println(getClass().getName() + '#' + getName());
-		System.out.println("Expected:");
-		System.out.println(expected);
-		System.out.println("But was:");
-		System.out.println(result);
-		System.out.println("Cut and paste:");
-		System.out.println(Util.displayString(result, INDENT, SHIFT));
-	}
-	assertEquals(expected, result);
-}
-
-// AST implementation - visiting binary expressions
-public void test0001_regular_binary_expression() {
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    var s2 = \"s2\";\n" + 
-		"    var s3 = \"s3\";\n" + 
-		"    var s4 = \"s4\";\n" + 
-		"    println(s1 + \"l1\" + s2 + \"l2\" +\n" +
-		"      s3 + \"l3\" + s4);\n" + 
-		"  }\n" + 
-		"\n",
-		defaultParser,
-		new ASTBinaryExpressionCollector(),
-		"[v SL \"s1\"]\n" + 
-		"[ev SL \"s1\"]\n" + 
-		"[v SL \"s2\"]\n" + 
-		"[ev SL \"s2\"]\n" + 
-		"[v SL \"s3\"]\n" + 
-		"[ev SL \"s3\"]\n" + 
-		"[v SL \"s4\"]\n" + 
-		"[ev SL \"s4\"]\n" + 
-		"[v BE ((((((s1 + \"l1\") + s...) + s4)]\n" + 
-		"[v BE (((((s1 + \"l1\") + s2...+ \"l3\")]\n" + 
-		"[v BE ((((s1 + \"l1\") + s2)...) + s3)]\n" + 
-		"[v BE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v BE ((s1 + \"l1\") + s2)]\n" + 
-		"[v BE (s1 + \"l1\")]\n" + 
-		"[v SNR s1]\n" + 
-		"[ev SNR s1]\n" + 
-		"[v SL \"l1\"]\n" + 
-		"[ev SL \"l1\"]\n" + 
-		"[ev BE (s1 + \"l1\")]\n" + 
-		"[v SNR s2]\n" + 
-		"[ev SNR s2]\n" + 
-		"[ev BE ((s1 + \"l1\") + s2)]\n" + 
-		"[v SL \"l2\"]\n" + 
-		"[ev SL \"l2\"]\n" + 
-		"[ev BE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v SNR s3]\n" + 
-		"[ev SNR s3]\n" + 
-		"[ev BE ((((s1 + \"l1\") + s2)...) + s3)]\n" + 
-		"[v SL \"l3\"]\n" + 
-		"[ev SL \"l3\"]\n" + 
-		"[ev BE (((((s1 + \"l1\") + s2...+ \"l3\")]\n" + 
-		"[v SNR s4]\n" + 
-		"[ev SNR s4]\n" + 
-		"[ev BE ((((((s1 + \"l1\") + s...) + s4)]\n");
-}
-
-// AST implementation - visiting binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions
-public void test0002_combined_binary_expression() {
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 3;
-	// one CBE each fourth BE
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    var s2 = \"s2\";\n" + 
-		"    var s3 = \"s3\";\n" + 
-		"    var s4 = \"s4\";\n" + 
-		"    println(s1 + \"l1\" + s2 + \"l2\" +\n" +
-		"      s3 + \"l3\" + s4);\n" + 
-		"  }\n" + 
-		"\n",
-		defaultParser,
-		new ASTBinaryExpressionCollector() {
-			public void endVisit(BinaryExpression binaryExpression, BlockScope scope) {
-				if (binaryExpression instanceof CombinedBinaryExpression &&
-						((CombinedBinaryExpression) binaryExpression).
-							referencesTable != null) {
-					this.collector.append("[ev CBE " + 
-						cut(binaryExpression.toString()) + "]\n");
-				} else {
-					super.endVisit(binaryExpression, scope);
-				}
-			}
-		},
-		"[v SL \"s1\"]\n" + 
-		"[ev SL \"s1\"]\n" + 
-		"[v SL \"s2\"]\n" + 
-		"[ev SL \"s2\"]\n" + 
-		"[v SL \"s3\"]\n" + 
-		"[ev SL \"s3\"]\n" + 
-		"[v SL \"s4\"]\n" + 
-		"[ev SL \"s4\"]\n" + 
-		"[v BE ((((((s1 + \"l1\") + s...) + s4)]\n" + 
-		"[v BE (((((s1 + \"l1\") + s2...+ \"l3\")]\n" + 
-		"[v BE ((((s1 + \"l1\") + s2)...) + s3)]\n" + 
-		"[v BE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v BE ((s1 + \"l1\") + s2)]\n" + 
-		"[v BE (s1 + \"l1\")]\n" + 
-		"[v SNR s1]\n" + 
-		"[ev SNR s1]\n" + 
-		"[v SL \"l1\"]\n" + 
-		"[ev SL \"l1\"]\n" + 
-		"[ev BE (s1 + \"l1\")]\n" + 
-		"[v SNR s2]\n" + 
-		"[ev SNR s2]\n" + 
-		"[ev BE ((s1 + \"l1\") + s2)]\n" + 
-		"[v SL \"l2\"]\n" + 
-		"[ev SL \"l2\"]\n" + 
-		"[ev BE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v SNR s3]\n" + 
-		"[ev SNR s3]\n" + 
-		"[ev CBE ((((s1 + \"l1\") + s2)...) + s3)]\n" + 
-		"[v SL \"l3\"]\n" + 
-		"[ev SL \"l3\"]\n" + 
-		"[ev BE (((((s1 + \"l1\") + s2...+ \"l3\")]\n" + 
-		"[v SNR s4]\n" + 
-		"[ev SNR s4]\n" + 
-		"[ev BE ((((((s1 + \"l1\") + s...) + s4)]\n");
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 
-		CombinedBinaryExpression.ARITY_MAX_MIN;
-}
-
-// AST implementation - visiting binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions
-public void test0003_combined_binary_expression() {
-	Parser parser = new Parser(
-			new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-			new CompilerOptions(), 
-			new DefaultProblemFactory()), true); // optimize string literals
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 2;
-		// one CBE each third BE - except the top one, which is degenerate (no
-		// references table)
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    var s2 = \"s2\";\n" + 
-		"    var s3 = \"s3\";\n" + 
-		"    var s4 = \"s4\";\n" + 
-		"    println(s1 + \"l1\" + s2 + \"l2\" +\n" +
-		"      s3 + \"l3\" + s4);\n" + 
-		"  }\n" + 
-		"\n",
-		parser,		
-		new ASTBinaryExpressionCollector() {
-			public void endVisit(BinaryExpression binaryExpression, BlockScope scope) {
-				if (binaryExpression instanceof CombinedBinaryExpression &&
-						((CombinedBinaryExpression) binaryExpression).
-							referencesTable != null) {
-					this.collector.append("[ev CBE " + 
-						cut(binaryExpression.toString()) + "]\n");
-				} else {
-					super.endVisit(binaryExpression, scope);
-				}
-			}
-		},
-		"[v SL \"s1\"]\n" + 
-		"[ev SL \"s1\"]\n" + 
-		"[v SL \"s2\"]\n" + 
-		"[ev SL \"s2\"]\n" + 
-		"[v SL \"s3\"]\n" + 
-		"[ev SL \"s3\"]\n" + 
-		"[v SL \"s4\"]\n" + 
-		"[ev SL \"s4\"]\n" + 
-		"[v BE ((((((s1 + \"l1\") + s...) + s4)]\n" + 
-		"[v BE (((((s1 + \"l1\") + s2...+ \"l3\")]\n" + 
-		"[v BE ((((s1 + \"l1\") + s2)...) + s3)]\n" + 
-		"[v BE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v BE ((s1 + \"l1\") + s2)]\n" + 
-		"[v BE (s1 + \"l1\")]\n" + 
-		"[v SNR s1]\n" + 
-		"[ev SNR s1]\n" + 
-		"[v SL \"l1\"]\n" + 
-		"[ev SL \"l1\"]\n" + 
-		"[ev BE (s1 + \"l1\")]\n" + 
-		"[v SNR s2]\n" + 
-		"[ev SNR s2]\n" + 
-		"[ev BE ((s1 + \"l1\") + s2)]\n" + 
-		"[v SL \"l2\"]\n" + 
-		"[ev SL \"l2\"]\n" + 
-		"[ev CBE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v SNR s3]\n" + 
-		"[ev SNR s3]\n" + 
-		"[ev BE ((((s1 + \"l1\") + s2)...) + s3)]\n" + 
-		"[v SL \"l3\"]\n" + 
-		"[ev SL \"l3\"]\n" + 
-		"[ev BE (((((s1 + \"l1\") + s2...+ \"l3\")]\n" + 
-		"[v SNR s4]\n" + 
-		"[ev SNR s4]\n" + 
-		"[ev BE ((((((s1 + \"l1\") + s...) + s4)]\n");
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 
-		CombinedBinaryExpression.ARITY_MAX_MIN;
-}
-
-// AST implementation - visiting binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions - effect of a literal at the start with
-// string literal optimization
-public void test0004_combined_binary_expression() {
-	Parser parser = new Parser(
-			new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-			new CompilerOptions(), 
-			new DefaultProblemFactory()), true); // optimize string literals
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    println(\"l\" + \"1\" + s1);\n" +
-			// "l" + "1" is collapsed into "l1" without affecting binary 
-			// expressions: only one BE
-		"  }\n" + 
-		"\n",
-		parser,
-		new ASTBinaryExpressionCollector(),
-		"[v SL \"s1\"]\n" + 
-		"[ev SL \"s1\"]\n" + 
-		"[v BE (ExtendedStringLiter...} + s1)]\n" + 
-		"[v ESL ExtendedStringLiteral{l1}]\n" + 
-		"[ev ESL ExtendedStringLiteral{l1}]\n" + 
-		"[v SNR s1]\n" + 
-		"[ev SNR s1]\n" + 
-		"[ev BE (ExtendedStringLiter...} + s1)]\n");
-}
-
-// AST implementation - visiting binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions - effect of a literal at the start without
-// string literals optimization
-public void test0005_combined_binary_expression() {
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    println(\"l\" + \"1\" + s1);\n" +
-			// "l" + "1" is handled by a string literal concatenation without 
-			// affecting binary expressions: only one BE
-		"  }\n" + 
-		"\n",
-		defaultParser,
-		new ASTBinaryExpressionCollector(),
-		"[v SL \"s1\"]\n" + 
-		"[ev SL \"s1\"]\n" + 
-		"[v BE (StringLiteralConcat...} + s1)]\n" + 
-		"[v SLC StringLiteralConcate...\n" + 
-		"\"1\"+\n" + 
-		"}]\n" + 
-		"[v SL \"l\"]\n" + 
-		"[ev SL \"l\"]\n" + 
-		"[v SL \"1\"]\n" + 
-		"[ev SL \"1\"]\n" + 
-		"[ev SLC StringLiteralConcate...\n" + 
-		"\"1\"+\n" + 
-		"}]\n" + 
-		"[v SNR s1]\n" + 
-		"[ev SNR s1]\n" + 
-		"[ev BE (StringLiteralConcat...} + s1)]\n");
-}
-
-// AST implementation - visiting binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions - cutting the traversal half-way down
-public void test0006_combined_binary_expression() {
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 1;
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    var s2 = \"s2\";\n" + 
-		"    var s3 = \"s3\";\n" + 
-		"    var s4 = \"s4\";\n" + 
-		"    println(s1 + \"l1\" + s2 + \"l2\" +\n" +
-		"      s3 + s1 + s4);\n" + 
-		"  }\n" + 
-		"\n",
-		defaultParser,
-		new ASTBinaryExpressionCollector() {
-			public boolean visit(BinaryExpression binaryExpression, BlockScope scope) {
-				super.visit(binaryExpression, scope);
-				if (binaryExpression.right instanceof StringLiteral) {
-					return false;
-				}
-				return true;
-			}
-		},
-		"[v SL \"s1\"]\n" + 
-		"[ev SL \"s1\"]\n" + 
-		"[v SL \"s2\"]\n" + 
-		"[ev SL \"s2\"]\n" + 
-		"[v SL \"s3\"]\n" + 
-		"[ev SL \"s3\"]\n" + 
-		"[v SL \"s4\"]\n" + 
-		"[ev SL \"s4\"]\n" + 
-		"[v BE ((((((s1 + \"l1\") + s...) + s4)]\n" + 
-		"[v BE (((((s1 + \"l1\") + s2...) + s1)]\n" + 
-		"[v BE ((((s1 + \"l1\") + s2)...) + s3)]\n" + 
-		"[v BE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[ev BE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v SNR s3]\n" + 
-		"[ev SNR s3]\n" + 
-		"[ev BE ((((s1 + \"l1\") + s2)...) + s3)]\n" + 
-		"[v SNR s1]\n" + 
-		"[ev SNR s1]\n" + 
-		"[ev BE (((((s1 + \"l1\") + s2...) + s1)]\n" + 
-		"[v SNR s4]\n" + 
-		"[ev SNR s4]\n" + 
-		"[ev BE ((((((s1 + \"l1\") + s...) + s4)]\n");
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 
-		CombinedBinaryExpression.ARITY_MAX_MIN;
-}
-
-// AST implementation - visiting binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions - cutting the traversal right away
-public void test0007_combined_binary_expression() {
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 4; 
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    var s2 = \"s2\";\n" + 
-		"    var s3 = \"s3\";\n" + 
-		"    var s4 = \"s4\";\n" + 
-		"    println(s1 + \"l1\" + s2 + \"l2\" +\n" +
-		"      s3 + \"l3\" + s4);\n" + 
-		"  }\n" + 
-		"\n",
-		defaultParser,
-		new ASTBinaryExpressionCollector() {
-			public boolean visit(BinaryExpression binaryExpression, BlockScope scope) {
-				super.visit(binaryExpression, scope);
-				return false;
-			}
-		},
-		"[v SL \"s1\"]\n" + 
-		"[ev SL \"s1\"]\n" + 
-		"[v SL \"s2\"]\n" + 
-		"[ev SL \"s2\"]\n" + 
-		"[v SL \"s3\"]\n" + 
-		"[ev SL \"s3\"]\n" + 
-		"[v SL \"s4\"]\n" + 
-		"[ev SL \"s4\"]\n" + 
-		"[v BE ((((((s1 + \"l1\") + s...) + s4)]\n" + 
-		"[ev BE ((((((s1 + \"l1\") + s...) + s4)]\n");
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 
-		CombinedBinaryExpression.ARITY_MAX_MIN;
-}
-
-// AST implementation - visiting binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions - case of one-deep expression
-public void test0008_combined_binary_expression() {
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    var s2 = \"s2\";\n" + 
-		"    println(s1 + \"l1\" + s2 + \"l2\");\n" + 
-		"    println(s1 + s2);\n" + 
-		"  }\n" + 
-		"\n",
-		defaultParser,		
-		new ASTBinaryExpressionCollector() {
-			public void endVisit(BinaryExpression binaryExpression, BlockScope scope) {
-				if (binaryExpression instanceof CombinedBinaryExpression) {
-					this.collector.append("[ev CBE " + 
-						cut(binaryExpression.toString()) + "]\n");
-				} else {
-					super.endVisit(binaryExpression, scope);
-				}
-			}
-		},
-		"[v SL \"s1\"]\n" + 
-		"[ev SL \"s1\"]\n" + 
-		"[v SL \"s2\"]\n" + 
-		"[ev SL \"s2\"]\n" + 
-		"[v BE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v BE ((s1 + \"l1\") + s2)]\n" + 
-		"[v BE (s1 + \"l1\")]\n" + 
-		"[v SNR s1]\n" + 
-		"[ev SNR s1]\n" + 
-		"[v SL \"l1\"]\n" + 
-		"[ev SL \"l1\"]\n" + 
-		"[ev BE (s1 + \"l1\")]\n" + 
-		"[v SNR s2]\n" + 
-		"[ev SNR s2]\n" + 
-		"[ev BE ((s1 + \"l1\") + s2)]\n" + 
-		"[v SL \"l2\"]\n" + 
-		"[ev SL \"l2\"]\n" + 
-		"[ev CBE (((s1 + \"l1\") + s2) + \"l2\")]\n" + 
-		"[v BE (s1 + s2)]\n" + 
-		"[v SNR s1]\n" + 
-		"[ev SNR s1]\n" + 
-		"[v SNR s2]\n" + 
-		"[ev SNR s2]\n" + 
-		"[ev BE (s1 + s2)]\n");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// check if the generated code is OK when leveraging CombinedBinaryExpression
-public void test0009_combined_binary_expression() {
-	assertEquals(20, CombinedBinaryExpression.ARITY_MAX_MIN);
-	this.runConformTest(
-		new String[] {
-			"X.js",
-			"  function main(args) {\n" + 
-			"    var max = 30; \n" + 
-			"    var s = new Array();\n" + 
-			"    for (var i = 0; i < max; i++) {\n" + 
-			"        s[i] = \"a\";\n" + 
-			"    }\n" + 
-			"    foo(s);\n" + 
-			"}\n" + 
-			" function foo (s) {\n" + 
-			"    println(\n" + 
-			"        s[0] + s[1] + s[2] + s[3] + s[4] + s[5] + s[6] + \n" +
-			"        s[7] + s[8] + s[9] + s[10] + s[11] + s[12] + s[13] +\n" +
-			"        s[14] + s[15] + s[16] + s[17] + s[18] + s[19] + \n" + 
-			"        s[20] + s[21] + s[22] + s[23] + s[24] + s[25] + \n" +
-			"        s[26] + s[27] + s[28] + s[29]\n" + 
-			"        );\n" + 
-			"}\n" + 
-			""},
-		"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// check if the generated code is OK when leveraging CombinedBinaryExpression
-// variant involving constant binary expressions deep in the tree
-public void test0010_combined_binary_expression() {
-	assertEquals(20, CombinedBinaryExpression.ARITY_MAX_MIN);
-	this.runConformTest(
-		new String[] {
-			"X.js",
-			"public class X {\n" + 
-			"  function main(String args[]) {\n" + 
-			"    final int max = 30; \n" + 
-			"    String s[] = new String[max];\n" + 
-			"    for (int i = 0; i < max; i++) {\n" + 
-			"        s[i] = \"a\";\n" + 
-			"    }\n" + 
-			"    foo(s);\n" + 
-			"}\n" + 
-			" function foo (s) {\n" +
-			"    var c = \"a\";" + 
-			"    println(\n" + 
-			"        c + c + c + c + s[4] + s[5] + s[6] + s[7] + s[8] + \n" +
-			"        s[9] + s[10] + s[11] + s[12] + s[13] + s[14] + \n" +
-			"        s[15] + s[16] + s[17] + s[18] + s[19] + s[20] + \n" +
-			"        s[21] + s[22] + s[23] + s[24] + s[25] + s[26] + \n" +
-			"        s[27] + s[28] + s[29]\n" + 
-			"        );\n" + 
-			"}\n" + 
-			"}"
-		},
-		"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// check if the generated code is OK when leveraging CombinedBinaryExpression
-// variant involving a constant combined binary expression
-public void test0011_combined_binary_expression() {
-	assertEquals(20, CombinedBinaryExpression.ARITY_MAX_MIN);
-	this.runConformTest(
-		new String[] {
-			"X.js",
-			"  function main(String args[]) {\n" + 
-			"    var max = 30; \n" + 
-			"    var s = new Array();\n" + 
-			"    for (var i = 0; i < max; i++) {\n" + 
-			"        s[i] = \"a\";\n" + 
-			"    }\n" + 
-			"    foo(s);\n" + 
-			"}\n" + 
-			" function foo (s) {\n" +
-			"    var c = \"a\";" + 
-			"    println(\n" + 
-			"        c + c + c + c + c + c + c + c + c + c + \n" + 
-			"        c + c + c + c + c + c + c + c + c + c + \n" + 
-			"        c + c + s[22] + s[23] + s[24] + s[25] + s[26] + \n" +
-			"        s[27] + s[28] + s[29]\n" + 
-			"        );\n" + 
-			"}\n" + 
-			""
-		},
-		"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
-}
-
-// AST implementation - visiting binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions - checking recursive print
-public void test0012_combined_binary_expression() {
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 2; 
-	runConformTest(
-		"X.js", 
-		"  function foo() {\n" + 
-		"    var s1 = \"s1\";\n" + 
-		"    var s2 = \"s2\";\n" + 
-		"    var s3 = \"s3\";\n" + 
-		"    var s4 = \"s4\";\n" + 
-		"    println(s1 + \"l1\" + s2 + \"l2\" +\n" +
-		"      s3 + s1 + s4);\n" + 
-		"  }\n" + 
-		"\n",
-		defaultParser,
-		new ASTCollector() {
-			public boolean visit(BinaryExpression binaryExpression, 
-					BlockScope scope) {
-				super.visit(binaryExpression, scope);
-				this.collector.append(binaryExpression);
-				return true;
-			}
-		},
-		"((((((s1 + \"l1\") + s2) + \"l2\") + s3) + s1) + s4)(((((s1 + \"l1\")" +
-		" + s2) + \"l2\") + s3) + s1)((((s1 + \"l1\") + s2) + \"l2\") + s3)" +
-		"(((s1 + \"l1\") + s2) + \"l2\")((s1 + \"l1\") + s2)(s1 + \"l1\")");
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 
-		CombinedBinaryExpression.ARITY_MAX_MIN;
-}
-
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-//// check if the generated code is OK when leveraging CombinedBinaryExpression
-//// variant involving a left-deep right expression at the topmost level
-//public void test0013_combined_binary_expression() {
-//	assertEquals(20, CombinedBinaryExpression.ARITY_MAX_MIN);
-//	this.runConformTest(
-//		new String[] {
-//			"X.js",
-//			"  function main(var args[]) {\n" + 
-//			"    final int max = 30; \n" + 
-//			"    var s[] = new String[max];\n" + 
-//			"    for (int i = 0; i < max; i++) {\n" + 
-//			"        s[i] = \"a\";\n" + 
-//			"    }\n" + 
-//			"    foo(s);\n" + 
-//			"}\n" + 
-//			" function foo (var s[]) {\n" + 
-//			"    println(\n" + 
-//			"        \"b\" + (s[0] + s[1] + s[2] + s[3] + s[4] + s[5] + s[6] + \n" +
-//			"        s[7] + s[8] + s[9] + s[10] + s[11] + s[12] + s[13] +\n" +
-//			"        s[14] + s[15] + s[16] + s[17] + s[18] + s[19] + \n" + 
-//			"        s[20] + s[21] + s[22] + s[23] + s[24] + s[25] + \n" +
-//			"        s[26] + s[27] + s[28] + s[29])\n" + 
-//			"        );\n" + 
-//			"}\n" + 
-//			"}"
-//		},
-//		"baaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
-//}
-
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-//// check if the generated code is OK when leveraging CombinedBinaryExpression
-//// variant involving a left-deep right expression at the topmost level, with
-//// a constant high in tree
-//public void test0014_combined_binary_expression() {
-//	assertEquals(20, CombinedBinaryExpression.ARITY_MAX_MIN);
-//	this.runConformTest(
-//		new String[] {
-//			"X.js",
-//			" class X {\n" + 
-//			"  function main(var args[]) {\n" + 
-//			"    final int max = 30; \n" + 
-//			"    var s[] = new String[max];\n" + 
-//			"    for (int i = 0; i < max; i++) {\n" + 
-//			"        s[i] = \"a\";\n" + 
-//			"    }\n" + 
-//			"    foo(s);\n" + 
-//			"}\n" + 
-//			" function foo (var s[]) {\n" +
-//			"    final var c = \"c\";\n" + 
-//			"    println(\n" + 
-//			"        \"b\" + \n" +
-//			"         (c + c + c + c + c + c + c + c + c + c + \n" +
-//			"          c + c + c + c + c + c + c + c + c + c + \n" +
-//			"          c + c + s[0])\n" + 
-//			"        );\n" + 
-//			"}\n" + 
-//			"}"
-//		},
-//		"bcccccccccccccccccccccca");
-//}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// check if the generated code is OK when leveraging CombinedBinaryExpression
-// variant involving a left-deep right expression at the topmost level, with
-// a constant low in tree
-//public void test0015_combined_binary_expression() {
-//	assertEquals(20, CombinedBinaryExpression.ARITY_MAX_MIN);
-//	this.runConformTest(
-//		new String[] {
-//			"X.js",
-//			" class X {\n" + 
-//			"  function main(var args[]) {\n" + 
-//			"    final int max = 30; \n" + 
-//			"    var s[] = new String[max];\n" + 
-//			"    for (int i = 0; i < max; i++) {\n" + 
-//			"        s[i] = \"a\";\n" + 
-//			"    }\n" + 
-//			"    foo(s);\n" + 
-//			"}\n" + 
-//			" function foo (var s[]) {\n" +
-//			"    final var c = \"c\";\n" + 
-//			"    println(\n" + 
-//			"        \"b\" + \n" +
-//			"         (c + c + c + c + c + c + c + c + c + c + \n" +
-//			"          c + c + c + c + c + c + c + c + c + c + \n" +
-//			"          s[0] + s[1] + s[2])\n" + 
-//			"        );\n" + 
-//			"}\n" + 
-//			"}"
-//		},
-//		"bccccccccccccccccccccaaa");
-//}
-
-// AST implementation - binary expressions
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Adding combined binary expressions - alternate operands
-public void test0016_combined_binary_expression() {
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 2; 
-	this.runConformTest(
-		"X.js", 
-		"function foo( i1,  i2,  i3,  i4) {\n" + 
-		"  println(i1 - i2 + 0 + i3 + 0 + i4);\n" + 
-		"}\n" + 
-		"\n",
-		defaultParser,
-		new ASTCollector() {
-			public boolean visit(BinaryExpression binaryExpression, 
-					BlockScope scope) {
-				super.visit(binaryExpression, scope);
-				this.collector.append(binaryExpression);
-				return true;
-			}
-		},
-		"(((((i1 - i2) + 0) + i3) + 0) + i4)((((i1 - i2) + 0) + i3) + 0)" +
-			"(((i1 - i2) + 0) + i3)((i1 - i2) + 0)(i1 - i2)");
-	CombinedBinaryExpression.defaultArityMaxStartingValue = 
-		CombinedBinaryExpression.ARITY_MAX_MIN;
-}
-
-//
-//
-////https://bugs.eclipse.org/bugs/show_bug.cgi?id=157170
-//public void test0017() {
-//	CompilerOptions options = new CompilerOptions();
-//	options.complianceLevel = ClassFileConstants.JDK1_5;
-//	options.sourceLevel = ClassFileConstants.JDK1_5;
-//	options.targetJDK = ClassFileConstants.JDK1_5;
-//	this.runConformTest(
-//		"X.js", 
-//		"@interface Annot {\n" +
-//		"	int value() default 0;\n" +
-//		"}\n" +
-//		"@Annot\n" +
-//		"@Annot(3)\n" +
-//		"@Annot(value=4)\n" +
-//		" class X {\n" + 
-//		"}\n",
-//		new Parser(
-//				new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-//				options, 
-//				new DefaultProblemFactory()), false),
-//		new AnnotationCollector(),
-//		"marker annotation start visit\n" + 
-//		"marker annotation end visit\n" + 
-//		"single member annotation start visit\n" + 
-//		"3\n" + 
-//		"single member annotation end visit\n" + 
-//		"normal annotation start visit\n" + 
-//		"member value pair start visit\n" + 
-//		"value, 4\n" + 
-//		"member value pair end visit\n" + 
-//		"normal annotation end visit\n");
-//}
-////https://bugs.eclipse.org/bugs/show_bug.cgi?id=157170
-//public void test0018() {
-//	CompilerOptions options = new CompilerOptions();
-//	options.complianceLevel = ClassFileConstants.JDK1_5;
-//	options.sourceLevel = ClassFileConstants.JDK1_5;
-//	options.targetJDK = ClassFileConstants.JDK1_5;
-//	options.docCommentSupport = true;
-//	this.runConformTest(
-//		"X.js", 
-//		"@interface Annot {\n" +
-//		"	int value() default 0;\n" +
-//		"}\n" +
-//		"/**\n" +
-//		" * @see Annot\n" +
-//		" */\n" +
-//		"@Annot\n" +
-//		"@Annot(3)\n" +
-//		"@Annot(value=4)\n" +
-//		" class X {\n" +
-//		"	/**\n" +
-//		"	 * @see Annot\n" +
-//		"	 */\n" +
-//		"	public function foo() {}\n" +
-//		"}\n",
-//		new Parser(
-//				new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-//				options, 
-//				new DefaultProblemFactory()), false),
-//		new AnnotationCollector(),
-//		"java doc single type reference start visit\n" + 
-//		"java doc single type reference end visit\n" + 
-//		"marker annotation start visit\n" + 
-//		"marker annotation end visit\n" + 
-//		"single member annotation start visit\n" + 
-//		"3\n" + 
-//		"single member annotation end visit\n" + 
-//		"normal annotation start visit\n" + 
-//		"member value pair start visit\n" + 
-//		"value, 4\n" + 
-//		"member value pair end visit\n" + 
-//		"normal annotation end visit\n" + 
-//		"java doc single type reference start visit\n" + 
-//		"java doc single type reference end visit\n");
-//}
-////https://bugs.eclipse.org/bugs/show_bug.cgi?id=157170
-//public void test0019() {
-//	CompilerOptions options = new CompilerOptions();
-//	options.complianceLevel = ClassFileConstants.JDK1_5;
-//	options.sourceLevel = ClassFileConstants.JDK1_5;
-//	options.targetJDK = ClassFileConstants.JDK1_5;
-//	options.docCommentSupport = true;
-//	this.runConformTest(
-//		"X.js", 
-//		"@interface Annot {\n" +
-//		"	int value() default 0;\n" +
-//		"}\n" +
-//		"/**\n" +
-//		" * @see Annot\n" +
-//		" */\n" +
-//		"@Annot\n" +
-//		"@Annot(3)\n" +
-//		"@Annot(value=4)\n" +
-//		"public class X {\n" +
-//		"	/**\n" +
-//		"	 * @see Annot\n" +
-//		"	 */\n" +
-//		"	public function foo(@Annot int i) {\n" +
-//		"		@Annot int j = 0;" +
-//		"	}\n" +
-//		"}\n",
-//		new Parser(
-//				new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), 
-//				options, 
-//				new DefaultProblemFactory()), false),
-//		new AnnotationCollector(),
-//		"java doc single type reference start visit\n" + 
-//		"java doc single type reference end visit\n" + 
-//		"marker annotation start visit\n" + 
-//		"marker annotation end visit\n" + 
-//		"single member annotation start visit\n" + 
-//		"3\n" + 
-//		"single member annotation end visit\n" + 
-//		"normal annotation start visit\n" + 
-//		"member value pair start visit\n" + 
-//		"value, 4\n" + 
-//		"member value pair end visit\n" + 
-//		"normal annotation end visit\n" + 
-//		"java doc single type reference start visit\n" + 
-//		"java doc single type reference end visit\n" + 
-//		"start argument\n" + 
-//		"marker annotation start visit\n" + 
-//		"marker annotation end visit\n" + 
-//		"exit argument\n" + 
-//		"start local declaration\n" + 
-//		"marker annotation start visit\n" + 
-//		"marker annotation end visit\n" + 
-//		"exit local declaration\n");
-//}
-}
-
-// Helper classes: define visitors leveraged by some tests
-class ASTCollector extends ASTVisitor {
-	StringBuffer collector = new StringBuffer();
-public String result() {
-	return this.collector.toString();
-}
-}
-
-class ASTBinaryExpressionCollector extends ASTCollector {
-static final int LIMIT = 30;
-// help limit the output in length by suppressing the middle
-// part of strings which length exceeds LIMIT
-String cut(String source) {
-	int length;
-	if ((length = source.length()) > LIMIT) {
-		StringBuffer result = new StringBuffer(length);
-		result.append(source.substring(0, LIMIT - 10));
-		result.append("...");
-		result.append(source.substring(length - 7, length));
-		return result.toString();
-	} else {
-		return source;
-	}
-}
-public void endVisit(BinaryExpression binaryExpression, BlockScope scope) {
-	this.collector.append("[ev BE " + cut(binaryExpression.toString()) + "]\n");
-	super.endVisit(binaryExpression, scope);
-}
-
-public void endVisit(CharLiteral charLiteral, BlockScope scope) {
-	this.collector.append("[ev CL " + cut(charLiteral.toString()) + "]\n");
-	super.endVisit(charLiteral, scope);
-}
-
-public void endVisit(ExtendedStringLiteral literal, BlockScope scope) {
-	this.collector.append("[ev ESL " + cut(literal.toString()) + "]\n");
-	super.endVisit(literal, scope);
-}
-
-public void endVisit(SingleNameReference singleNameReference, 
-		BlockScope scope) {
-	this.collector.append("[ev SNR " + cut(singleNameReference.toString()) + 
-		"]\n");
-	super.endVisit(singleNameReference, scope);
-}
-
-public void endVisit(StringLiteral stringLiteral, BlockScope scope) {
-	this.collector.append("[ev SL " + cut(stringLiteral.toString()) + "]\n");
-	super.endVisit(stringLiteral, scope);
-}
-
-public void endVisit(StringLiteralConcatenation literal, BlockScope scope) {
-	this.collector.append("[ev SLC " + cut(literal.toString()) + "]\n");
-	super.endVisit(literal, scope);
-}
-
-public boolean visit(BinaryExpression binaryExpression, BlockScope scope) {
-	this.collector.append("[v BE " + cut(binaryExpression.toString()) + "]\n");
-	return super.visit(binaryExpression, scope);
-}
-
-public boolean visit(CharLiteral charLiteral, BlockScope scope) {
-	this.collector.append("[v CL " + cut(charLiteral.toString()) + "]\n");
-	return super.visit(charLiteral, scope);
-}
-
-public boolean visit(ExtendedStringLiteral literal, BlockScope scope) {
-	this.collector.append("[v ESL " + cut(literal.toString()) + "]\n");
-	return super.visit(literal, scope);
-}
-
-public boolean visit(SingleNameReference singleNameReference, 
-		BlockScope scope) {
-	this.collector.append("[v SNR " + cut(singleNameReference.toString()) + 
-		"]\n");
-	return super.visit(singleNameReference, scope);
-}
-
-public boolean visit(StringLiteral stringLiteral, BlockScope scope) {
-	this.collector.append("[v SL " + cut(stringLiteral.toString()) + "]\n");
-	return super.visit(stringLiteral, scope);
-}
-
-public boolean visit(StringLiteralConcatenation literal, BlockScope scope) {
-	this.collector.append("[v SLC " + cut(literal.toString()) + "]\n");
-	return super.visit(literal, scope);
-}
-}
-class AnnotationCollector extends ASTCollector {
-public void endVisit(JavadocSingleTypeReference typeRef, BlockScope scope) {
-	this.collector.append("java doc single type reference end visit\n");
-}
-public void endVisit(JavadocSingleTypeReference typeRef, ClassScope scope) {
-	this.collector.append("java doc single type reference end visit\n");
-}
-public boolean visit(JavadocSingleTypeReference typeRef, BlockScope scope) {
-	this.collector.append("java doc single type reference start visit\n");
-	return true;
-}
-public boolean visit(JavadocSingleTypeReference typeRef, ClassScope scope) {
-	this.collector.append("java doc single type reference start visit\n");
-	return true;
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.compiler.ASTVisitor#endVisit(org.eclipse.wst.jsdt.internal.compiler.ast.Argument, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)
- */
-public void endVisit(Argument argument, BlockScope scope) {
-	this.collector.append("exit argument\n");
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.compiler.ASTVisitor#endVisit(org.eclipse.wst.jsdt.internal.compiler.ast.Argument, org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope)
- */
-public void endVisit(Argument argument, ClassScope scope) {
-	this.collector.append("exit argument\n");
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.compiler.ASTVisitor#endVisit(org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)
- */
-public void endVisit(LocalDeclaration localDeclaration, BlockScope scope) {
-	this.collector.append("exit local declaration\n");
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.compiler.ASTVisitor#visit(org.eclipse.wst.jsdt.internal.compiler.ast.Argument, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)
- */
-public boolean visit(Argument argument, BlockScope scope) {
-	this.collector.append("start argument\n");
-	return true;
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.compiler.ASTVisitor#visit(org.eclipse.wst.jsdt.internal.compiler.ast.Argument, org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope)
- */
-public boolean visit(Argument argument, ClassScope scope) {
-	this.collector.append("start argument\n");
-	return true;
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.internal.compiler.ASTVisitor#visit(org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)
- */
-public boolean visit(LocalDeclaration localDeclaration, BlockScope scope) {
-	this.collector.append("start local declaration\n");
-	return true;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractComparableTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractComparableTest.java
deleted file mode 100644
index fc969d6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractComparableTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class AbstractComparableTest extends AbstractRegressionTest {
-	public static Test buildComparableTestSuite(Class evaluationTestClass) {
-		Test suite = buildMinimalComplianceTestSuite(evaluationTestClass, F_1_5);
-		TESTS_COUNTERS.put(evaluationTestClass.getName(), new Integer(suite
-				.countTestCases()));
-		return suite;
-	}
-
-	public AbstractComparableTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * Toggle compiler in mode -1.5
-	 */
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_Compliance,
-				CompilerOptions.VERSION_1_5);
-		options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-		options.put(CompilerOptions.OPTION_TargetPlatform,
-				CompilerOptions.VERSION_1_5);
-		options.put(CompilerOptions.OPTION_ReportFinalParameterBound,
-				CompilerOptions.WARNING);
-		options.put(CompilerOptions.OPTION_ReportUnnecessaryTypeCheck,
-				CompilerOptions.WARNING);
-		options.put(CompilerOptions.OPTION_ReportRawTypeReference,
-				CompilerOptions.WARNING);
-		return options;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java
deleted file mode 100644
index c876e52..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java
+++ /dev/null
@@ -1,1718 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.Map;
-
-import junit.framework.AssertionFailedError;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.core.infer.DefaultInferrenceProvider;
-import org.eclipse.wst.jsdt.core.infer.InferEngine;
-import org.eclipse.wst.jsdt.core.infer.InferOptions;
-import org.eclipse.wst.jsdt.core.infer.InferrenceProvider;
-import org.eclipse.wst.jsdt.core.search.SearchDocument;
-import org.eclipse.wst.jsdt.core.search.SearchParticipant;
-import org.eclipse.wst.jsdt.core.tests.junit.extension.StopableTestCase;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.core.tests.util.CompilerTestSetup;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.Compiler;
-import org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies;
-import org.eclipse.wst.jsdt.internal.compiler.ICompilerRequestor;
-import org.eclipse.wst.jsdt.internal.compiler.IErrorHandlingPolicy;
-import org.eclipse.wst.jsdt.internal.compiler.IProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.SourceJavadocParser;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.batch.FileSystem;
-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.env.INameEnvironment;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeConstants;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;
-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-import org.eclipse.wst.jsdt.internal.core.search.JavaSearchParticipant;
-import org.eclipse.wst.jsdt.internal.core.search.indexing.SourceIndexer;
-
-public abstract class AbstractRegressionTest extends AbstractCompilerTest
-		implements StopableTestCase {
-	// javac comparison related types, fields and methods - see runJavac for
-	// details
-	class Logger extends Thread {
-		StringBuffer buffer;
-		InputStream inputStream;
-		String type;
-
-		Logger(InputStream inputStream, String type) {
-			this.inputStream = inputStream;
-			this.type = type;
-			this.buffer = new StringBuffer();
-		}
-
-		public void run() {
-			try {
-				BufferedReader reader = new BufferedReader(
-						new InputStreamReader(this.inputStream));
-				String line = null;
-				while ((line = reader.readLine()) != null) {
-					this.buffer./* append(this.type).append("->"). */append(
-							line).append("\n");
-				}
-				reader.close();
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	protected static int[] DIFF_COUNTERS = new int[3];
-	protected static final String EVAL_DIRECTORY = Util.getOutputDirectory()
-			+ File.separator + "eval";
-	public static int INDENT = 2;
-	protected static final String JAVA_NAME = File.pathSeparatorChar == ':' ? "java"
-			: "java.exe";
-	protected static final String JAVAC_NAME = File.pathSeparatorChar == ':' ? "javac"
-			: "javac.exe";
-
-	protected static String JAVAC_OUTPUT_DIR = Util.getOutputDirectory()
-			+ File.separator + "javac";
-	protected static String javacCommandLineHeader;
-	protected static PrintWriter javacFullLog;
-	// flags errors so that any error in a test case prevents
-	// java execution
-	private static String javacFullLogFileName;
-	protected static String javaCommandLineHeader;
-
-	// needed for multiple test calls within a single test method
-	protected static boolean javacTestErrorFlag;
-
-	protected static String javacTestName;
-
-	protected static IPath jdkRootDirPath;
-
-	public static final String OUTPUT_DIR = Util.getOutputDirectory()
-			+ File.separator + "regression";
-
-	public final static String PACKAGE_INFO_NAME = new String(
-			TypeConstants.PACKAGE_INFO_NAME);
-
-	public static boolean SHIFT = false;
-
-	protected static final String SOURCE_DIRECTORY = Util.getOutputDirectory()
-			+ File.separator + "source";
-
-	public static final String INFERENCE_ENGINES = "InferenceEnginesOption";
-
-	protected String[] classpaths;
-//	protected boolean createdVerifier;
-	protected INameEnvironment javaClassLib;
-//	protected TestVerifier verifier;
-
-	public AbstractRegressionTest(String name) {
-		super(name);
-	}
-
-	// protected void checkClassFile(String className, String source, String
-	// expectedOutput) throws ClassFormatException, IOException {
-	// // this.checkClassFile("", className, source, expectedOutput,
-	// ClassFileBytesDisassembler.SYSTEM);
-	// }
-	// protected void checkClassFile(String className, String source, String
-	// expectedOutput, int mode) throws ClassFormatException, IOException {
-	// this.checkClassFile("", className, source, expectedOutput, mode);
-	// }
-	// protected void checkClassFile(String directoryName, String className,
-	// String disassembledClassName, String source, String expectedOutput, int
-	// mode) throws ClassFormatException, IOException {
-	// // compileAndDeploy(source, directoryName, className);
-	// // try {
-	// // File directory = new File(EVAL_DIRECTORY, directoryName);
-	// // if (!directory.exists()) {
-	// // assertTrue(".class file not generated properly in " + directory,
-	// false);
-	// // }
-	// // File f = new File(directory, disassembledClassName + ".class");
-	// // byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// // ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// // String result = disassembler.disassemble(classFileBytes, "\n", mode);
-	// // int index = result.indexOf(expectedOutput);
-	// // if (index == -1 || expectedOutput.length() == 0) {
-	// // System.out.println(Util.displayString(result, 3));
-	// // }
-	// // if (index == -1) {
-	// // assertEquals("Wrong contents", expectedOutput, result);
-	// // }
-	// //
-	// // try {
-	// // FileInputStream stream = new FileInputStream(f);
-	// // ClassFileReader.read(stream, className + ".class", true);
-	// // stream.close();
-	// // } catch
-	// (org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFormatException e)
-	// {
-	// // e.printStackTrace();
-	// // assertTrue("ClassFormatException", false);
-	// // } catch (IOException e) {
-	// // e.printStackTrace();
-	// // assertTrue("IOException", false);
-	// // }
-	// // } finally {
-	// // removeTempClass(className);
-	// // }
-	// }
-	//
-	// protected void checkClassFile(String directoryName, String className,
-	// String source, String expectedOutput, int mode) throws
-	// ClassFormatException, IOException {
-	// this.checkClassFile(directoryName, className, className, source,
-	// expectedOutput, mode);
-	// }
-	//
-	protected void checkDisassembledClassFile(String fileName,
-			String className, String expectedOutput) {
-		// this.checkDisassembledClassFile(fileName, className, expectedOutput,
-		// ClassFileBytesDisassembler.DETAILED);
-	}
-
-	protected void checkDisassembledClassFile(String fileName,
-			String className, String expectedOutput, int mode) {
-		// File classFile = new File(fileName);
-		// if (!classFile.exists()) {
-		// assertTrue(".class file doesn't exist", false);
-		// }
-		// String result = null;
-		// try {
-		// byte[] classFileBytes =
-		// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(classFile);
-		// ClassFileBytesDisassembler disassembler =
-		// ToolFactory.createDefaultClassFileBytesDisassembler();
-		// result = disassembler.disassemble(classFileBytes, "\n", mode);
-		// } catch (IOException e) {
-		// e.printStackTrace();
-		// assertTrue("Should not happen : ", false);
-		// } catch (ClassFormatException e) {
-		// e.printStackTrace();
-		// assertTrue("Should not happen : ", false);
-		// }
-		// int index = result.indexOf(expectedOutput);
-		// if (index == -1 || expectedOutput.length() == 0) {
-		// System.out.println(Util.displayString(result, 2));
-		// }
-		// if (index == -1) {
-		// assertEquals("Wrong contents", expectedOutput, result);
-		// }
-		//		
-		// try {
-		// FileInputStream stream = new FileInputStream(classFile);
-		// ClassFileReader.read(stream, className + ".class", true);
-		// stream.close();
-		// } catch
-		// (org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFormatException
-		// e) {
-		// e.printStackTrace();
-		// assertTrue("ClassFormatException", false);
-		// } catch (IOException e) {
-		// e.printStackTrace();
-		// assertTrue("IOException", false);
-		// }
-	}
-
-	/*
-	 * ###################################### Specific method to let tests Sun
-	 * javac compilation available... #######################################
-	 */
-	protected void compileAndDeploy(String source, String directoryName,
-			String className) {
-		File directory = new File(SOURCE_DIRECTORY);
-		if (!directory.exists()) {
-			if (!directory.mkdirs()) {
-				System.out.println("Could not create " + SOURCE_DIRECTORY);
-				return;
-			}
-		}
-		if (directoryName != null && directoryName.length() != 0) {
-			directory = new File(SOURCE_DIRECTORY, directoryName);
-			if (!directory.exists()) {
-				if (!directory.mkdirs()) {
-					System.out.println("Could not create " + directory);
-					return;
-				}
-			}
-		}
-		String fileName = directory.getAbsolutePath() + File.separator
-				+ className + ".java";
-		try {
-			BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
-			writer.write(source);
-			writer.flush();
-			writer.close();
-		} catch (IOException e) {
-			e.printStackTrace();
-			return;
-		}
-		StringBuffer buffer = new StringBuffer().append("\"").append(fileName)
-				.append("\" -d \"").append(EVAL_DIRECTORY);
-		if (this.complianceLevel.compareTo(COMPLIANCE_1_5) < 0) {
-			buffer.append("\" -1.4 -source 1.3 -target 1.2");
-		} else {
-			buffer.append("\" -1.5");
-		}
-		buffer.append(" -preserveAllLocals -nowarn -g -classpath \"").append(
-				Util.getJavaClassLibsAsString()).append(SOURCE_DIRECTORY)
-				.append("\"");
-		org.eclipse.wst.jsdt.internal.compiler.batch.Main.compile(buffer
-				.toString());
-	}
-
-	protected void dualPrintln(String message) {
-		System.out.println(message);
-		javacFullLog.println(message);
-	}
-
-	protected void executeClass(String sourceFile,
-			String expectedSuccessOutputString, String[] classLib,
-			boolean shouldFlushOutputDirectory, String[] vmArguments,
-			Map customOptions, ICompilerRequestor clientRequestor) {
-
-		// Compute class name by removing ".java" and replacing slashes with
-		// dots
-		String className = sourceFile.substring(0, sourceFile.length() - 5)
-				.replace('/', '.').replace('\\', '.');
-		if (className.endsWith(PACKAGE_INFO_NAME))
-			return;
-
-//		if (vmArguments != null) {
-//			if (this.verifier != null) {
-//				this.verifier.shutDown();
-//			}
-//			this.verifier = new TestVerifier(false);
-//			this.createdVerifier = true;
-//		}
-//		boolean passed = this.verifier
-//				.verifyClassFiles(sourceFile, className,
-//						expectedSuccessOutputString, this.classpaths, null,
-//						vmArguments);
-//		assertTrue(this.verifier.failureReason, // computed by
-//												// verifyClassFiles(...) action
-//				passed);
-//		if (vmArguments != null) {
-//			if (this.verifier != null) {
-//				this.verifier.shutDown();
-//			}
-//			this.verifier = new TestVerifier(false);
-//			this.createdVerifier = true;
-//		}
-	}
-
-	/*
-	 * Returns the references in the given .class file.
-	 */
-	protected String findReferences(String classFilePath) {
-		// check that "new Z().init()" is bound to "AbstractB.init()"
-		final StringBuffer references = new StringBuffer(10);
-		final SearchParticipant participant = new JavaSearchParticipant() {
-			final SearchParticipant searchParticipant = this;
-
-			public SearchDocument getDocument(final String documentPath) {
-				return new SearchDocument(documentPath, this.searchParticipant) {
-					public byte[] getByteContents() {
-						try {
-							return org.eclipse.wst.jsdt.internal.compiler.util.Util
-									.getFileByteContent(new File(getPath()));
-						} catch (IOException e) {
-							e.printStackTrace();
-							return null;
-						}
-					}
-
-					public char[] getCharContents() {
-						// not used
-						return null;
-					}
-
-					public String getEncoding() {
-						// not used
-						return null;
-					}
-				};
-			}
-		};
-		SearchDocument document = participant.getDocument(new File(
-				classFilePath).getPath());
-		SourceIndexer indexer = new SourceIndexer(document) {
-			protected void addIndexEntry(char[] category, char[] key) {
-				references.append(category);
-				references.append('/');
-				references.append(key);
-				references.append('\n');
-			}
-		};
-		indexer.indexDocument();
-		String computedReferences = references.toString();
-		return computedReferences;
-	}
-
-	protected INameEnvironment[] getClassLibs() {
-		String encoding = (String) getCompilerOptions().get(
-				CompilerOptions.OPTION_Encoding);
-		if ("".equals(encoding))
-			encoding = null;
-
-		INameEnvironment[] classLibs = new INameEnvironment[1];
-		classLibs[0] = new FileSystem(this.classpaths, new String[] {}, // ignore
-																		// initial
-																		// file
-																		// names
-				encoding // default encoding
-		);
-		return classLibs;
-	}
-
-	protected Map getCompilerOptions() {
-		Map defaultOptions = super.getCompilerOptions();
-		defaultOptions.put(CompilerOptions.OPTION_LocalVariableAttribute,
-				CompilerOptions.GENERATE);
-		defaultOptions.put(CompilerOptions.OPTION_ReportUnusedPrivateMember,
-				CompilerOptions.WARNING);
-		defaultOptions.put(CompilerOptions.OPTION_ReportLocalVariableHiding,
-				CompilerOptions.WARNING);
-		defaultOptions.put(CompilerOptions.OPTION_ReportFieldHiding,
-				CompilerOptions.WARNING);
-		defaultOptions
-				.put(
-						CompilerOptions.OPTION_ReportPossibleAccidentalBooleanAssignment,
-						CompilerOptions.WARNING);
-		defaultOptions.put(CompilerOptions.OPTION_ReportWrongNumberOfArguments,
-				CompilerOptions.WARNING);
-		defaultOptions.put(CompilerOptions.OPTION_PreserveUnusedLocal,
-				CompilerOptions.PRESERVE);
-		defaultOptions.put(CompilerOptions.OPTION_ReportUnnecessaryElse,
-				CompilerOptions.WARNING);
-		defaultOptions.put(CompilerOptions.OPTION_Unresolved_Field,
-				CompilerOptions.ERROR);
-		defaultOptions.put(CompilerOptions.OPTION_Unresolved_Method,
-				CompilerOptions.ERROR);
-		defaultOptions.put(CompilerOptions.OPTION_Unresolved_Type,
-				CompilerOptions.ERROR);
-		defaultOptions.put(CompilerOptions.OPTION_ReportUninitializedLocalVariable, 
-				CompilerOptions.WARNING);
-		defaultOptions.put(CompilerOptions.OPTION_ReportUninitializedGlobalVariable, 
-				CompilerOptions.IGNORE);
-		return defaultOptions;
-	}
-
-	protected String[] getDefaultClassPaths() {
-		return Util.concatWithClassLibs(OUTPUT_DIR, false);
-	}
-
-	protected IErrorHandlingPolicy getErrorHandlingPolicy() {
-		return new IErrorHandlingPolicy() {
-			public boolean stopOnFirstError() {
-				return false;
-			}
-
-			public boolean proceedOnErrors() {
-				return true;
-			}
-		};
-	}
-
-	/*
-	 * Will consider first the source units passed as arguments, then
-	 * investigate the classpath: jdklib + output dir
-	 */
-	protected INameEnvironment getNameEnvironment(final String[] testFiles,
-			String[] classPaths) {
-		this.classpaths = classPaths == null ? getDefaultClassPaths()
-				: classPaths;
-		return new InMemoryNameEnvironment(testFiles, getClassLibs());
-	}
-
-	protected INameEnvironment getNameEnvironment(final String[] testFiles,
-			String[] files, String[] classPaths) {
-		this.classpaths = classPaths == null ? getDefaultClassPaths()
-				: classPaths;
-		InMemoryNameEnvironment inMemoryNameEnvironment = new InMemoryNameEnvironment(
-				testFiles, getClassLibs());
-		return inMemoryNameEnvironment;
-	}
-
-	protected IProblemFactory getProblemFactory() {
-		return new DefaultProblemFactory(Locale.getDefault());
-	}
-
-	public void initialize(CompilerTestSetup setUp) {
-		super.initialize(setUp);
-		if (setUp instanceof RegressionTestSetup) {
-			RegressionTestSetup regressionTestSetUp = (RegressionTestSetup) setUp;
-			this.javaClassLib = regressionTestSetUp.javaClassLib;
-//			this.verifier = regressionTestSetUp.verifier;
-		}
-	}
-
-	/*
-	 * Write given source test files in current output sub-directory. Use test
-	 * name for this sub-directory name (ie. test001, test002, etc...)
-	 */
-	protected void printFiles(String[] testFiles) {
-		for (int i = 0, length = testFiles.length; i < length; i++) {
-			System.out.println(testFiles[i++]);
-			System.out.println(testFiles[i]);
-		}
-		System.out.println("");
-	}
-
-	protected void printJavacResultsSummary() {
-		if (RUN_JAVAC) {
-			Integer count = (Integer) TESTS_COUNTERS.get(CURRENT_CLASS_NAME);
-			if (count != null) {
-				int newCount = count.intValue() - 1;
-				TESTS_COUNTERS.put(CURRENT_CLASS_NAME, new Integer(newCount));
-				if (newCount == 0) {
-					if (DIFF_COUNTERS[0] != 0 || DIFF_COUNTERS[1] != 0
-							|| DIFF_COUNTERS[2] != 0) {
-						dualPrintln("===========================================================================");
-						dualPrintln("Results summary:");
-					}
-					if (DIFF_COUNTERS[0] != 0)
-						dualPrintln("	- "
-								+ DIFF_COUNTERS[0]
-								+ " test(s) where Javac found errors/warnings but Eclipse did not");
-					if (DIFF_COUNTERS[1] != 0)
-						dualPrintln("	- "
-								+ DIFF_COUNTERS[1]
-								+ " test(s) where Eclipse found errors/warnings but Javac did not");
-					if (DIFF_COUNTERS[2] != 0)
-						dualPrintln("	- "
-								+ DIFF_COUNTERS[2]
-								+ " test(s) where Eclipse and Javac did not have same output");
-					System.out.println("\n");
-				}
-			}
-			dualPrintln("\n\nFull results sent to " + javacFullLogFileName);
-			javacFullLog.flush();
-		}
-	}
-
-	protected void removeTempClass(String className) {
-		File dir = new File(SOURCE_DIRECTORY);
-		String[] fileNames = dir.list();
-		if (fileNames != null) {
-			for (int i = 0, max = fileNames.length; i < max; i++) {
-				if (fileNames[i].indexOf(className) != -1) {
-					Util.delete(SOURCE_DIRECTORY + File.separator
-							+ fileNames[i]);
-				}
-			}
-		}
-
-		dir = new File(EVAL_DIRECTORY);
-		fileNames = dir.list();
-		if (fileNames != null) {
-			for (int i = 0, max = fileNames.length; i < max; i++) {
-				if (fileNames[i].indexOf(className) != -1) {
-					Util.delete(EVAL_DIRECTORY + File.separator + fileNames[i]);
-				}
-			}
-		}
-
-	}
-
-	protected void runConformTest(String[] testFiles) {
-		runConformTest(testFiles, null /* no expected output string */,
-				null /* no extra class libraries */, true /*
-														 * flush output
-														 * directory
-														 */, null /*
-																 * no vm
-																 * arguments
-																 */, null /*
-																		 * no
-																		 * custom
-																		 * options
-																		 */,
-				null /* no custom requestor */, false /*
-													 * do not skip javac for
-													 * this peculiar test
-													 */);
-	}
-
-	protected void runConformTest(String[] testFiles,
-			String expectedSuccessOutputString) {
-		runConformTest(testFiles, expectedSuccessOutputString, null /*
-																	 * no extra
-																	 * class
-																	 * libraries
-																	 */,
-				true /* flush output directory */, null /* no vm arguments */,
-				null /* no custom options */, null /* no custom requestor */,
-				false /* do not skip javac for this peculiar test */);
-	}
-
-	protected void runConformTest(String[] testFiles,
-			String expectedSuccessOutputString, String[] vmArguments) {
-		runConformTest(testFiles, expectedSuccessOutputString, null /*
-																	 * no extra
-																	 * class
-																	 * libraries
-																	 */,
-				true /* flush output directory */, vmArguments, null /*
-																	 * no custom
-																	 * options
-																	 */,
-				null /* no custom requestor */, false /*
-													 * do not skip javac for
-													 * this peculiar test
-													 */);
-	}
-
-	protected void runConformTest(String[] testFiles,
-			String expectedSuccessOutputString, String[] classLib,
-			boolean shouldFlushOutputDirectory, String[] vmArguments) {
-		runConformTest(testFiles, expectedSuccessOutputString, classLib,
-				shouldFlushOutputDirectory, vmArguments,
-				null /* no custom options */, null /* no custom requestor */,
-				false /* do not skip javac for this peculiar test */);
-	}
-
-	protected void runConformTest(String[] testFiles,
-			String expectedSuccessOutputString, String[] classLib,
-			boolean shouldFlushOutputDirectory, String[] vmArguments,
-			Map customOptions, ICompilerRequestor clientRequestor) {
-		runConformTest(testFiles, expectedSuccessOutputString, classLib,
-				shouldFlushOutputDirectory, vmArguments, customOptions,
-				clientRequestor, false /*
-										 * do not skip javac for this peculiar
-										 * test
-										 */);
-	}
-
-	protected void runConformTest(String[] testFiles,
-			String expectedSuccessOutputString, String[] classLib,
-			boolean shouldFlushOutputDirectory, String[] vmArguments,
-			Map customOptions, ICompilerRequestor clientRequestor,
-			boolean skipJavac) {
-		// Non-javac part
-		try {
-			if (shouldFlushOutputDirectory)
-				Util.flushDirectoryContent(new File(OUTPUT_DIR));
-
-			IProblemFactory problemFactory = getProblemFactory();
-			Requestor requestor = new Requestor(problemFactory, OUTPUT_DIR
-					.endsWith(File.separator) ? OUTPUT_DIR : OUTPUT_DIR
-					+ File.separator, false, clientRequestor, false, /*
-																	 * show
-																	 * category
-																	 */
-			false /* show warning token */);
-
-			Map options = getCompilerOptions();
-			if (customOptions != null) {
-				options.putAll(customOptions);
-			}
-			CompilerOptions compilerOptions = new CompilerOptions(options);
-			compilerOptions.performMethodsFullRecovery = false;
-			compilerOptions.performStatementsRecovery = false;
-			Compiler batchCompiler = new Compiler(getNameEnvironment(
-					new String[] {}, classLib), getErrorHandlingPolicy(),
-					compilerOptions, requestor, problemFactory);
-			compilerOptions.produceReferenceInfo = true;
-			try {
-				batchCompiler.compile(Util.compilationUnits(testFiles)); // compile
-																			// all
-																			// files
-																			// together
-			} catch (RuntimeException e) {
-				System.out.println(getClass().getName() + '#' + getName());
-				e.printStackTrace();
-				for (int i = 0; i < testFiles.length; i += 2) {
-					System.out.print(testFiles[i]);
-					System.out.println(" ["); //$NON-NLS-1$
-					System.out.println(testFiles[i + 1]);
-					System.out.println("]"); //$NON-NLS-1$
-				}
-				throw e;
-			}
-			if (!requestor.hasErrors) {
-				String sourceFile = testFiles[0];
-
-				// Compute class name by removing ".java" and replacing slashes
-				// with dots
-				String className = sourceFile.substring(0,
-						sourceFile.length() - 5).replace('/', '.').replace(
-						'\\', '.');
-				if (className.endsWith(PACKAGE_INFO_NAME))
-					return;
-
-//				if (vmArguments != null) {
-//					if (this.verifier != null) {
-//						this.verifier.shutDown();
-//					}
-//					this.verifier = new TestVerifier(false);
-//					this.createdVerifier = true;
-//				}
-//				boolean passed = this.verifier.verifyClassFiles(sourceFile,
-//						className, expectedSuccessOutputString,
-//						this.classpaths, null, vmArguments);
-//				if (!passed) {
-//					System.out.println(getClass().getName() + '#' + getName());
-//					for (int i = 0; i < testFiles.length; i += 2) {
-//						System.out.print(testFiles[i]);
-//						System.out.println(" ["); //$NON-NLS-1$
-//						System.out.println(testFiles[i + 1]);
-//						System.out.println("]"); //$NON-NLS-1$
-//					}
-//				}
-//				assertTrue(this.verifier.failureReason, // computed by
-//														// verifyClassFiles(...)
-//														// action
-//						passed);
-				if (vmArguments != null) {
-//					if (this.verifier != null) {
-//						this.verifier.shutDown();
-//					}
-//					this.verifier = new TestVerifier(false);
-//					this.createdVerifier = true;
-				}
-			} else {
-				System.out.println(getClass().getName() + '#' + getName());
-				System.out.println(Util.displayString(requestor.problemLog,
-						INDENT, SHIFT));
-				for (int i = 0; i < testFiles.length; i += 2) {
-					System.out.print(testFiles[i]);
-					System.out.println(" ["); //$NON-NLS-1$
-					System.out.println(testFiles[i + 1]);
-					System.out.println("]"); //$NON-NLS-1$
-				}
-				assertTrue("Unexpected problems: " + requestor.problemLog,
-						false);
-			}
-			// javac part
-		} catch (AssertionFailedError e) {
-			throw e;
-		} finally {
-			if (RUN_JAVAC && !skipJavac)
-				runJavac(testFiles, null, expectedSuccessOutputString,
-						shouldFlushOutputDirectory);
-			// PREMATURE for now, skipping javac implies skipping the compile
-			// and execution steps; yet, only cases for which the
-			// execution step was a problem have been discovered so
-			// far; may consider skipping the execution step only
-		}
-	}
-
-	protected void runConformTest(String[] testFiles, String[] vmArguments) {
-		runConformTest(testFiles, null /* no expected output string */,
-				null /* no extra class libraries */, true /*
-														 * flush output
-														 * directory
-														 */, vmArguments,
-				null /* no custom options */, null /* no custom requestor */,
-				false /* do not skip javac for this peculiar test */);
-	}
-
-	// PREMATURE consider whether conform tests throwing errors should
-	// implement javac comparison or not
-	protected void runConformTestThrowingError(String[] testFiles,
-			String expectedSuccessOutputString, String[] classLib,
-			boolean shouldFlushOutputDirectory, String[] vmArguments) {
-
-		if (shouldFlushOutputDirectory)
-			Util.flushDirectoryContent(new File(OUTPUT_DIR));
-
-		IProblemFactory problemFactory = getProblemFactory();
-		Requestor requestor = new Requestor(problemFactory, OUTPUT_DIR
-				.endsWith(File.separator) ? OUTPUT_DIR : OUTPUT_DIR
-				+ File.separator, false, null/* no custom requestor */, false, /*
-																			 * show
-																			 * category
-																			 */
-		false /* show warning token */);
-
-		CompilerOptions compilerOptions = new CompilerOptions(
-				getCompilerOptions());
-		compilerOptions.performMethodsFullRecovery = false;
-		compilerOptions.performStatementsRecovery = false;
-		Compiler batchCompiler = new Compiler(getNameEnvironment(
-				new String[] {}, classLib), getErrorHandlingPolicy(),
-				compilerOptions, requestor, problemFactory);
-		batchCompiler.options.produceReferenceInfo = true;
-		Throwable exception = null;
-		try {
-			batchCompiler.compile(Util.compilationUnits(testFiles)); // compile
-																		// all
-																		// files
-																		// together
-		} catch (RuntimeException e) {
-			exception = e;
-			throw e;
-		} catch (Error e) {
-			exception = e;
-			throw e;
-		} finally {
-
-			if (!requestor.hasErrors) {
-				String sourceFile = testFiles[0];
-
-				// Compute class name by removing ".java" and replacing slashes
-				// with dots
-				String className = sourceFile.substring(0,
-						sourceFile.length() - 5).replace('/', '.').replace(
-						'\\', '.');
-
-//				boolean passed = this.verifier.verifyClassFilesThrowingError(
-//						sourceFile, className, expectedSuccessOutputString,
-//						this.classpaths, null, vmArguments);
-//				if (exception == null)
-//					assertTrue(this.verifier.failureReason, // computed by
-//															// verifyClassFiles(...)
-//															// action
-//							passed);
-			} else {
-				if (exception == null)
-					assertTrue("Unexpected problems: " + requestor.problemLog,
-							false);
-			}
-		}
-	}
-
-	/*
-	 * Run Sun compilation using javac. Launch compilation in a thread and
-	 * verify that it does not take more than 5s to perform it. Otherwise abort
-	 * the process and log in console. TODO (maxime) not sure we really do that
-	 * 5s cap any more. A semi verbose output is sent to the console that
-	 * analyzes differences of behaviors between javac and Eclipse on a per test
-	 * basis. A more verbose output is produced into a file which name is
-	 * printed on the console. Such files can be compared between various javac
-	 * releases to check potential changes. To enable such tests, specify the
-	 * following VM properies in the launch configuration: -Drun.javac=enabled
-	 * mandatory - tells the test suite to run javac tests -Djdk.root=<the root
-	 * directory of the tested javac> optional - enables to find the javac that
-	 * will be run by the tests suite; the root directory must be specified as
-	 * an absolute path and should point to the JDK root, aka /opt/jdk1.5.0_05
-	 * for Linux or c:/JDK_50 for Windows; in case this property is not
-	 * specified, the tests suite will use the runtime JRE of the launching
-	 * configuration. Note that enabling javac tests implies running into 1.5
-	 * compliance level (without having to specify it into the VM properties.)
-	 * TODO (maxime) consider impacts of Java 6
-	 */
-	protected void runJavac(String[] testFiles,
-			final String expectedProblemLog,
-			final String expectedSuccessOutputString,
-			boolean shouldFlushOutputDirectory) {
-		String testName = null;
-		Process compileProcess = null;
-		Process execProcess = null;
-		try {
-			// Init test name
-			testName = testName();
-
-			// Cleanup javac output dir if needed
-			File javacOutputDirectory = new File(JAVAC_OUTPUT_DIR);
-			if (shouldFlushOutputDirectory) {
-				Util.delete(javacOutputDirectory);
-			}
-
-			// Write files in dir
-			writeFiles(testFiles);
-
-			// Prepare command line
-			StringBuffer cmdLine = new StringBuffer(javacCommandLineHeader);
-			// compute extra classpath
-			String[] classpath = Util.concatWithClassLibs(JAVAC_OUTPUT_DIR,
-					false);
-			StringBuffer cp = new StringBuffer(" -classpath ");
-			int length = classpath.length;
-			for (int i = 0; i < length; i++) {
-				if (i > 0)
-					cp.append(File.pathSeparatorChar);
-				if (classpath[i].indexOf(" ") != -1) {
-					cp.append("\"" + classpath[i] + "\"");
-				} else {
-					cp.append(classpath[i]);
-				}
-			}
-			cmdLine.append(cp);
-			// add source files
-			for (int i = 0; i < testFiles.length; i += 2) {
-				// *.java is not enough (p1/X.java, p2/Y.java)
-				cmdLine.append(' ');
-				cmdLine.append(testFiles[i]);
-			}
-
-			// Launch process
-			compileProcess = Runtime.getRuntime().exec(cmdLine.toString(),
-					null, this.outputTestDirectory);
-
-			// Log errors
-			Logger errorLogger = new Logger(compileProcess.getErrorStream(),
-					"ERROR");
-
-			// Log output
-			Logger outputLogger = new Logger(compileProcess.getInputStream(),
-					"OUTPUT");
-
-			// start the threads to run outputs (standard/error)
-			errorLogger.start();
-			outputLogger.start();
-
-			// Wait for end of process
-			int exitValue = compileProcess.waitFor();
-			errorLogger.join(); // make sure we get the whole output
-			outputLogger.join();
-
-			// Report raw javac results
-			if (!testName.equals(javacTestName)) {
-				javacTestName = testName;
-				javacTestErrorFlag = false;
-				javacFullLog
-						.println("-----------------------------------------------------------------");
-				javacFullLog.println(CURRENT_CLASS_NAME + " " + testName);
-			}
-			if (exitValue != 0) {
-				javacTestErrorFlag = true;
-			}
-			if (errorLogger.buffer.length() > 0) {
-				javacFullLog.println("--- javac err: ---");
-				javacFullLog.println(errorLogger.buffer.toString());
-			}
-			if (outputLogger.buffer.length() > 0) {
-				javacFullLog.println("--- javac out: ---");
-				javacFullLog.println(outputLogger.buffer.toString());
-			}
-
-			// Compare compilation results
-			if (expectedProblemLog == null || expectedProblemLog.length() == 0) {
-				// Eclipse found no error and no warning
-				if (exitValue != 0) {
-					// Javac found errors
-					System.out
-							.println("----------------------------------------");
-					System.out
-							.println(testName
-									+ " - Javac has found error(s) but Eclipse expects conform result:\n");
-					javacFullLog
-							.println("JAVAC_MISMATCH: Javac has found error(s) but Eclipse expects conform result");
-					System.out.println(errorLogger.buffer.toString());
-					printFiles(testFiles);
-					DIFF_COUNTERS[0]++;
-				} else {
-					// Javac found no error - may have found warnings
-					if (errorLogger.buffer.length() > 0) {
-						System.out
-								.println("----------------------------------------");
-						System.out
-								.println(testName
-										+ " - Javac has found warning(s) but Eclipse expects conform result:\n");
-						javacFullLog
-								.println("JAVAC_MISMATCH: Javac has found warning(s) but Eclipse expects conform result");
-						System.out.println(errorLogger.buffer.toString());
-						printFiles(testFiles);
-						DIFF_COUNTERS[0]++;
-					}
-					if (expectedSuccessOutputString != null
-							&& !javacTestErrorFlag) {
-						// Neither Eclipse nor Javac found errors, and we have a
-						// runtime
-						// bench value
-						StringBuffer javaCmdLine = new StringBuffer(
-								javaCommandLineHeader);
-						javaCmdLine.append(cp);
-						javaCmdLine.append(' ').append(
-								testFiles[0].substring(0, testFiles[0]
-										.indexOf('.')));
-						// assume executable class is name of first test file -
-						// PREMATURE check if this is also the case in other
-						// test fwk classes
-						execProcess = Runtime.getRuntime().exec(
-								javaCmdLine.toString(), null,
-								this.outputTestDirectory);
-						Logger logger = new Logger(
-								execProcess.getInputStream(), "");
-						// PREMATURE implement consistent error policy
-						logger.start();
-						exitValue = execProcess.waitFor();
-						logger.join(); // make sure we get the whole output
-						String javaOutput = logger.buffer.toString().trim();
-						if (!expectedSuccessOutputString.equals(javaOutput)) {
-							System.out
-									.println("----------------------------------------");
-							System.out
-									.println(testName
-											+ " - Javac and Eclipse runtime output is not the same:");
-							javacFullLog
-									.println("JAVAC_MISMATCH: Javac and Eclipse runtime output is not the same");
-							dualPrintln("eclipse:");
-							dualPrintln(expectedSuccessOutputString);
-							dualPrintln("javac:");
-							dualPrintln(javaOutput);
-							System.out.println("\n");
-							printFiles(testFiles); // PREMATURE consider
-													// printing files to the log
-													// as well
-							DIFF_COUNTERS[2]++;
-						}
-					}
-				}
-			} else {
-				// Eclipse found errors or warnings
-				if (errorLogger.buffer.length() == 0) {
-					System.out
-							.println("----------------------------------------");
-					System.out
-							.println(testName
-									+ " - Eclipse has found error(s)/warning(s) but Javac did not find any:");
-					javacFullLog
-							.println("JAVAC_MISMATCH: Eclipse has found error(s)/warning(s) but Javac did not find any");
-					dualPrintln("eclipse:");
-					dualPrintln(expectedProblemLog);
-					printFiles(testFiles);
-					DIFF_COUNTERS[1]++;
-				} else if (expectedProblemLog.indexOf("ERROR") > 0
-						&& exitValue == 0) {
-					System.out
-							.println("----------------------------------------");
-					System.out
-							.println(testName
-									+ " - Eclipse has found error(s) but Javac only found warning(s):");
-					javacFullLog
-							.println("JAVAC_MISMATCH: Eclipse has found error(s) but Javac only found warning(s)");
-					dualPrintln("eclipse:");
-					dualPrintln(expectedProblemLog);
-					System.out.println("javac:");
-					System.out.println(errorLogger.buffer.toString());
-					printFiles(testFiles);
-					DIFF_COUNTERS[1]++;
-				} else {
-					// PREMATURE refine comparison
-					// TODO (frederic) compare warnings in each result and
-					// verify they are similar...
-					// System.out.println(testName+": javac has found warnings :");
-					// System.out.print(errorLogger.buffer.toString());
-					// System.out.println(testName+": we're expecting warning results:");
-					// System.out.println(expectedProblemLog);
-				}
-			}
-		} catch (InterruptedException e1) {
-			if (compileProcess != null)
-				compileProcess.destroy();
-			if (execProcess != null)
-				execProcess.destroy();
-			System.out.println(testName
-					+ ": Sun javac compilation was aborted!");
-			javacFullLog
-					.println("JAVAC_WARNING: Sun javac compilation was aborted!");
-			e1.printStackTrace(javacFullLog);
-		} catch (Throwable e) {
-			System.out.println(testName
-					+ ": could not launch Sun javac compilation!");
-			e.printStackTrace();
-			javacFullLog
-					.println("JAVAC_ERROR: could not launch Sun javac compilation!");
-			e.printStackTrace(javacFullLog);
-			// PREMATURE failing the javac pass or comparison could also fail
-			// the test itself
-		} finally {
-			// Clean up written file(s)
-			Util.delete(outputTestDirectory);
-		}
-	}
-
-	/**
-	 * Log contains all problems (warnings+errors)
-	 */
-	protected void runNegativeTest(String[] testFiles, String expectedProblemLog) {
-		runNegativeTest(testFiles, expectedProblemLog, null, true);
-		runNegativeTest(testFiles, expectedProblemLog, null /*
-															 * no extra class
-															 * libraries
-															 */, true /*
-																	 * flush
-																	 * output
-																	 * directory
-																	 */,
-				null /* no custom options */,
-				false /* do not generate output */,
-				false /* do not show category */,
-				false /* do not show warning token */, false /*
-															 * do not skip javac
-															 * for this peculiar
-															 * test
-															 */, false /*
-																		 * do
-																		 * not
-																		 * perform
-																		 * statements
-																		 * recovery
-																		 */,
-				null);
-	}
-
-	/**
-	 * Log contains all problems (warnings+errors)
-	 */
-	protected void runNegativeTest(String[] testFiles,
-			String expectedProblemLog, String[] classLib,
-			boolean shouldFlushOutputDirectory) {
-		runNegativeTest(testFiles, expectedProblemLog, classLib,
-				shouldFlushOutputDirectory, null /* no custom options */,
-				false /* do not generate output */,
-				false /* do not show category */,
-				false /* do not show warning token */, false /*
-															 * do not skip javac
-															 * for this peculiar
-															 * test
-															 */, false /*
-																		 * do
-																		 * not
-																		 * perform
-																		 * statements
-																		 * recovery
-																		 */,
-				null);
-	}
-
-	/**
-	 * Log contains all problems (warnings+errors)
-	 */
-	protected void runNegativeTest(String[] testFiles,
-			String expectedProblemLog, String[] classLib,
-			boolean shouldFlushOutputDirectory, Map customOptions) {
-		runNegativeTest(testFiles, expectedProblemLog, classLib,
-				shouldFlushOutputDirectory, customOptions, false /*
-																 * do not
-																 * generate
-																 * output
-																 */,
-				false /* do not show category */,
-				false /* do not show warning token */, false /*
-															 * do not skip javac
-															 * for this peculiar
-															 * test
-															 */, false /*
-																		 * do
-																		 * not
-																		 * perform
-																		 * statements
-																		 * recovery
-																		 */,
-				null);
-	}
-
-	/**
-	 * Log contains all problems (warnings+errors)
-	 */
-	protected void runNegativeTest(String[] testFiles,
-			String expectedProblemLog, String[] classLib,
-			boolean shouldFlushOutputDirectory, Map customOptions,
-			boolean generateOutput, boolean showCategory,
-			boolean showWarningToken) {
-		runNegativeTest(testFiles, expectedProblemLog, classLib,
-				shouldFlushOutputDirectory, customOptions, generateOutput,
-				showCategory, showWarningToken, false /*
-													 * do not skip javac for
-													 * this peculiar test
-													 */, false /*
-																 * do not
-																 * perform
-																 * statements
-																 * recovery
-																 */, null);
-	}
-
-	/**
-	 * Log contains all problems (warnings+errors)
-	 */
-	protected void runNegativeTest(String[] testFiles,
-			String expectedProblemLog, String[] classLib,
-			boolean shouldFlushOutputDirectory, Map customOptions,
-			boolean generateOutput, boolean showCategory,
-			boolean showWarningToken, boolean skipJavac,
-			boolean performStatementsRecovery, String[] otherFiles) {
-		// Non-javac part
-		try {
-			if (shouldFlushOutputDirectory)
-				Util.flushDirectoryContent(new File(OUTPUT_DIR));
-
-			if (otherFiles == null)
-				otherFiles = new String[] {};
-			IProblemFactory problemFactory = getProblemFactory();
-			Requestor requestor = new Requestor(problemFactory, OUTPUT_DIR
-					.endsWith(File.separator) ? OUTPUT_DIR : OUTPUT_DIR
-					+ File.separator, generateOutput,
-					null/* no custom requestor */, showCategory,
-					showWarningToken);
-			Map options = getCompilerOptions();
-			if (customOptions != null) {
-				options.putAll(customOptions);
-			}
-			CompilerOptions compilerOptions = new CompilerOptions(options);
-			compilerOptions.performMethodsFullRecovery = performStatementsRecovery;
-			compilerOptions.performStatementsRecovery = performStatementsRecovery;
-			Compiler batchCompiler = new Compiler(getNameEnvironment(
-					otherFiles, classLib), getErrorHandlingPolicy(),
-					compilerOptions, requestor, problemFactory);
-			Object inferEngines = options.get(INFERENCE_ENGINES);
-			if (inferEngines != null) {
-				batchCompiler.parser.inferenceEngines = (InferEngine[]) inferEngines;
-
-			}
-			batchCompiler.options.produceReferenceInfo = true;
-			Throwable exception = null;
-			try {
-				batchCompiler.compile(Util.compilationUnits(testFiles)); // compile
-																			// all
-																			// files
-																			// together
-			} catch (RuntimeException e) {
-				exception = e;
-				throw e;
-			} catch (Error e) {
-				exception = e;
-				throw e;
-			} finally {
-				String computedProblemLog = Util
-						.convertToIndependantLineDelimiter(requestor.problemLog
-								.toString());
-				String platformIndependantExpectedLog = Util
-						.convertToIndependantLineDelimiter(expectedProblemLog);
-				if (!platformIndependantExpectedLog.equals(computedProblemLog)) {
-					System.out.println(getClass().getName() + '#' + getName());
-					System.out.println(Util.displayString(computedProblemLog,
-							INDENT, SHIFT));
-					for (int i = 0; i < testFiles.length; i += 2) {
-						System.out.print(testFiles[i]);
-						System.out.println(" ["); //$NON-NLS-1$
-						System.out.println(testFiles[i + 1]);
-						System.out.println("]"); //$NON-NLS-1$
-					}
-				}
-				if (exception == null)
-					assertEquals("Invalid problem log ",
-							platformIndependantExpectedLog, computedProblemLog);
-			}
-			// javac part
-		} catch (AssertionFailedError e) {
-			throw e;
-		} finally {
-			if (RUN_JAVAC && !skipJavac)
-				runJavac(testFiles, expectedProblemLog, null,
-						shouldFlushOutputDirectory);
-		}
-	}
-
-	protected void runNegativeTestWithExecution(String[] testFiles,
-			String expectedProblemLog, String expectedSuccessOutputString,
-			String[] classLib, boolean shouldFlushOutputDirectory,
-			String[] vmArguments, Map customOptions,
-			ICompilerRequestor clientRequestor) {
-
-		if (shouldFlushOutputDirectory)
-			Util.flushDirectoryContent(new File(OUTPUT_DIR));
-
-		IProblemFactory problemFactory = getProblemFactory();
-		Requestor requestor = new Requestor(problemFactory, OUTPUT_DIR
-				.endsWith(File.separator) ? OUTPUT_DIR : OUTPUT_DIR
-				+ File.separator, true, clientRequestor,
-				false /* show category */, false /* show warning token */);
-
-		Map options = getCompilerOptions();
-		if (customOptions != null) {
-			options.putAll(customOptions);
-		}
-		CompilerOptions compilerOptions = new CompilerOptions(options);
-		compilerOptions.performMethodsFullRecovery = false;
-		compilerOptions.performStatementsRecovery = false;
-		Compiler batchCompiler = new Compiler(getNameEnvironment(
-				new String[] {}, classLib), getErrorHandlingPolicy(),
-				compilerOptions, requestor, problemFactory);
-		batchCompiler.options.produceReferenceInfo = true;
-		try {
-			batchCompiler.compile(Util.compilationUnits(testFiles)); // compile
-																		// all
-																		// files
-																		// together
-		} catch (RuntimeException e) {
-			System.out.println(getClass().getName() + '#' + getName());
-			e.printStackTrace();
-			for (int i = 0; i < testFiles.length; i += 2) {
-				System.out.print(testFiles[i]);
-				System.out.println(" ["); //$NON-NLS-1$
-				System.out.println(testFiles[i + 1]);
-				System.out.println("]"); //$NON-NLS-1$
-			}
-			throw e;
-		}
-		assertTrue("Must have errors", requestor.hasErrors);
-
-		String computedProblemLog = Util
-				.convertToIndependantLineDelimiter(requestor.problemLog
-						.toString());
-		String platformIndependantExpectedLog = Util
-				.convertToIndependantLineDelimiter(expectedProblemLog);
-		if (!platformIndependantExpectedLog.equals(computedProblemLog)) {
-			System.out.println(getClass().getName() + '#' + getName());
-			System.out.println(Util.displayString(computedProblemLog, INDENT,
-					SHIFT));
-			for (int i = 0; i < testFiles.length; i += 2) {
-				System.out.print(testFiles[i]);
-				System.out.println(" ["); //$NON-NLS-1$
-				System.out.println(testFiles[i + 1]);
-				System.out.println("]"); //$NON-NLS-1$
-			}
-			assertEquals("Invalid problem log ",
-					platformIndependantExpectedLog, computedProblemLog);
-		}
-
-		String sourceFile = testFiles[0];
-
-		// Compute class name by removing ".java" and replacing slashes with
-		// dots
-		String className = sourceFile.substring(0, sourceFile.length() - 5)
-				.replace('/', '.').replace('\\', '.');
-		if (className.endsWith(PACKAGE_INFO_NAME))
-			return;
-
-//		if (vmArguments != null) {
-//			if (this.verifier != null) {
-//				this.verifier.shutDown();
-//			}
-//			this.verifier = new TestVerifier(false);
-//			this.createdVerifier = true;
-//		}
-//		boolean passed = this.verifier
-//				.verifyClassFiles(sourceFile, className,
-//						expectedSuccessOutputString, this.classpaths, null,
-//						vmArguments);
-//		if (!passed) {
-//			String platformIndependantExpectedSuccessOutputString = Util
-//					.convertToIndependantLineDelimiter(expectedSuccessOutputString);
-//			String platformIndependantFailureReason = Util
-//					.convertToIndependantLineDelimiter(this.verifier.failureReason);
-//			if (platformIndependantFailureReason
-//					.indexOf(platformIndependantExpectedSuccessOutputString) == -1) {
-//				System.out.println(getClass().getName() + '#' + getName());
-//				System.out.println(Util.displayString(
-//						platformIndependantFailureReason, INDENT, SHIFT));
-//				assertEquals("Invalid runtime log ",
-//						platformIndependantExpectedSuccessOutputString,
-//						platformIndependantFailureReason);
-//				System.out.println(getClass().getName() + '#' + getName());
-//				for (int i = 0; i < testFiles.length; i += 2) {
-//					System.out.print(testFiles[i]);
-//					System.out.println(" ["); //$NON-NLS-1$
-//					System.out.println(testFiles[i + 1]);
-//					System.out.println("]"); //$NON-NLS-1$
-//				}
-//			}
-//		} else if (vmArguments != null) {
-//			if (this.verifier != null) {
-//				this.verifier.shutDown();
-//			}
-//			this.verifier = new TestVerifier(false);
-//			this.createdVerifier = true;
-//		}
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-//		if (this.verifier == null) {
-//			this.verifier = new TestVerifier(true);
-//			this.createdVerifier = true;
-//		}
-		if (RUN_JAVAC) {
-			if (isFirst()) {
-				if (javacFullLog == null) {
-					// One time initialization of javac related concerns
-					// compute command lines and extract javac version
-					String jdkRootDirectory = System.getProperty("jdk.root");
-					if (jdkRootDirectory == null)
-						jdkRootDirPath = (new Path(Util.getJREDirectory()))
-								.removeLastSegments(1);
-					else
-						jdkRootDirPath = new Path(jdkRootDirectory);
-
-					StringBuffer cmdLineHeader = new StringBuffer(
-							jdkRootDirPath.append("bin").append(JAVA_NAME)
-									.toString()); // PREMATURE replace JAVA_NAME
-													// and JAVAC_NAME with
-													// locals? depends on
-													// potential reuse
-					javaCommandLineHeader = cmdLineHeader.toString();
-					cmdLineHeader = new StringBuffer(jdkRootDirPath.append(
-							"bin").append(JAVAC_NAME).toString());
-					cmdLineHeader.append(" -classpath . ");
-					// start with the current directory which contains the
-					// source files
-					Process compileProcess = Runtime.getRuntime().exec(
-							cmdLineHeader.toString() + " -version", null, null);
-					Logger versionLogger = new Logger(compileProcess
-							.getErrorStream(), "");
-					// PREMATURE implement consistent error policy
-					versionLogger.start();
-					compileProcess.waitFor();
-					versionLogger.join(); // make sure we get the whole output
-					String version = versionLogger.buffer.toString();
-					int eol = version.indexOf('\n');
-					version = version.substring(0, eol);
-					cmdLineHeader.append(" -d ");
-					cmdLineHeader
-							.append(JAVAC_OUTPUT_DIR.indexOf(" ") != -1 ? "\""
-									+ JAVAC_OUTPUT_DIR + "\""
-									: JAVAC_OUTPUT_DIR);
-					cmdLineHeader
-							.append(" -source 1.5 -deprecation -Xlint:unchecked "); // enable
-																					// recommended
-																					// warnings
-					// REVIEW consider enabling all warnings instead? Philippe
-					// does not see
-					// this as ez to use (too many changes in logs)
-					javacCommandLineHeader = cmdLineHeader.toString();
-					new File(Util.getOutputDirectory()).mkdirs();
-					// TODO maxime check why this happens to miss in some cases
-					javacFullLogFileName = Util.getOutputDirectory()
-							+ File.separatorChar
-							+ version.replace(' ', '_')
-							+ "_"
-							+ (new SimpleDateFormat("yyyyMMdd_HHmmss"))
-									.format(new Date()) + ".txt";
-					javacFullLog = new PrintWriter(new FileOutputStream(
-							javacFullLogFileName));
-					javacFullLog.println(version); // so that the contents is
-													// self sufficient
-					System.out
-							.println("***************************************************************************");
-					System.out
-							.println("* Sun Javac compiler output archived into file:");
-					System.out.println("* " + javacFullLogFileName);
-					System.out
-							.println("***************************************************************************");
-				}
-				// per class initialization
-				CURRENT_CLASS_NAME = getClass().getName();
-				dualPrintln("***************************************************************************");
-				System.out
-						.print("* Comparison with Sun Javac compiler for class ");
-				dualPrintln(CURRENT_CLASS_NAME.substring(CURRENT_CLASS_NAME
-						.lastIndexOf('.') + 1)
-						+ " ("
-						+ TESTS_COUNTERS.get(CURRENT_CLASS_NAME)
-						+ " tests)");
-				System.out
-						.println("***************************************************************************");
-				DIFF_COUNTERS[0] = 0;
-				DIFF_COUNTERS[1] = 0;
-				DIFF_COUNTERS[2] = 0;
-			}
-		}
-	}
-
-	public void stop() {
-//		this.verifier.shutDown();
-	}
-
-	protected void tearDown() throws Exception {
-//		if (this.createdVerifier) {
-//			this.stop();
-//		}
-		// clean up output dir
-		File outputDir = new File(OUTPUT_DIR);
-		if (outputDir.exists()) {
-			Util.flushDirectoryContent(outputDir);
-		}
-		super.tearDown();
-		if (RUN_JAVAC) {
-			printJavacResultsSummary();
-		}
-	}
-
-	protected void runBasicTest(String[] testFiles) {
-		runBasicTest(testFiles, null /* no extra class libraries */, null /*
-																		 * no
-																		 * custom
-																		 * options
-																		 */,
-				null /* no custom requestor */);
-	}
-
-	protected void runBasicTest(String[] testFiles, String[] classLib,
-			Map customOptions, ICompilerRequestor clientRequestor) {
-		// Non-javac part
-		try {
-
-			IProblemFactory problemFactory = getProblemFactory();
-			Requestor requestor = new Requestor(problemFactory, OUTPUT_DIR
-					.endsWith(File.separator) ? OUTPUT_DIR : OUTPUT_DIR
-					+ File.separator, false, clientRequestor, false, /*
-																	 * show
-																	 * category
-																	 */
-			false /* show warning token */);
-
-			Map options = getCompilerOptions();
-			if (customOptions != null) {
-				options.putAll(customOptions);
-			}
-			CompilerOptions compilerOptions = new CompilerOptions(options);
-			compilerOptions.performStatementsRecovery = false;
-			Compiler batchCompiler = new Compiler(getNameEnvironment(
-					new String[] {}, classLib), getErrorHandlingPolicy(),
-					compilerOptions, requestor, problemFactory);
-			compilerOptions.produceReferenceInfo = true;
-			try {
-				batchCompiler.compile(Util.compilationUnits(testFiles)); // compile
-																			// all
-																			// files
-																			// together
-			} catch (RuntimeException e) {
-				System.out.println(getClass().getName() + '#' + getName());
-				e.printStackTrace();
-				for (int i = 0; i < testFiles.length; i += 2) {
-					System.out.print(testFiles[i]);
-					System.out.println(" ["); //$NON-NLS-1$
-					System.out.println(testFiles[i + 1]);
-					System.out.println("]"); //$NON-NLS-1$
-				}
-				throw e;
-			}
-			if (!requestor.hasErrors) {
-//				String sourceFile = testFiles[0];
-//				boolean passed = true;
-//				if (!passed) {
-//					System.out.println(getClass().getName() + '#' + getName());
-//					for (int i = 0; i < testFiles.length; i += 2) {
-//						System.out.print(testFiles[i]);
-//						System.out.println(" ["); //$NON-NLS-1$
-//						System.out.println(testFiles[i + 1]);
-//						System.out.println("]"); //$NON-NLS-1$
-//					}
-//				}
-//				assertTrue(this.verifier.failureReason, // computed by
-//														// verifyClassFiles(...)
-//														// action
-//						passed);
-			} else {
-				System.out.println(getClass().getName() + '#' + getName());
-				System.out.println(Util.displayString(requestor.problemLog,
-						INDENT, SHIFT));
-				for (int i = 0; i < testFiles.length; i += 2) {
-					System.out.print(testFiles[i]);
-					System.out.println(" ["); //$NON-NLS-1$
-					System.out.println(testFiles[i + 1]);
-					System.out.println("]"); //$NON-NLS-1$
-				}
-				assertTrue("Unexpected problems: " + requestor.problemLog,
-						false);
-			}
-			// javac part
-		} catch (AssertionFailedError e) {
-			throw e;
-		} finally {
-		}
-	}
-
-	static class TestParser extends Parser {
-
-		public TestParser(IProblemFactory problemFactory,
-				CompilerOptions options, boolean optimizeStringLiterals,
-				boolean useSourceJavadocParser) {
-
-			super(new ProblemReporter(DefaultErrorHandlingPolicies
-					.exitAfterAllProblems(), options, problemFactory),
-					optimizeStringLiterals);
-
-			// we want to notify all syntax error with the acceptProblem API
-			// To do so, we define the record method of the ProblemReporter
-			this.problemReporter = new ProblemReporter(
-					DefaultErrorHandlingPolicies.exitAfterAllProblems(),
-					options, problemFactory) {
-				public void record(CategorizedProblem problem,
-						CompilationResult unitResult, ReferenceContext context) {
-					unitResult.record(problem, context); // TODO (jerome)
-															// clients are
-															// trapping problems
-															// either through
-															// factory or
-															// requestor... is
-															// result storing
-															// needed?
-					System.out.println("PARSER ERROR: " + problem.toString());
-					assertTrue("unexpected parse Error", false);
-				}
-			};
-			this.options = options;
-			// set specific javadoc parser
-			if (useSourceJavadocParser) {
-				this.javadocParser = new SourceJavadocParser(this);
-
-			}
-		}
-
-		public CompilationUnitDeclaration parseCompilationUnit(
-				ICompilationUnit unit, boolean fullParse) {
-
-			boolean old = diet;
-
-			try {
-				diet = !fullParse;
-				CompilationResult compilationUnitResult = new CompilationResult(
-						unit, 0, 0, this.options.maxProblemsPerUnit);
-				CompilationUnitDeclaration parsedUnit = parse(unit,
-						compilationUnitResult);
-				int initialStart = this.scanner.initialPosition;
-				int initialEnd = this.scanner.eofPosition;
-				if (fullParse) {
-					diet = false;
-					this.getMethodBodies(parsedUnit);
-				}
-				this.scanner.resetTo(initialStart, initialEnd);
-				assertTrue(this.expressionPtr < 0);
-				assertTrue(this.expressionLengthPtr < 0);
-				assertTrue(this.astPtr < 0);
-				assertTrue(this.astLengthPtr < 0);
-				assertTrue(this.intPtr < 0);
-				return parsedUnit;
-			} catch (AbortCompilation e) {
-				// ignore this exception
-			} finally {
-				diet = old;
-			}
-			return null;
-		}
-	}
-
-	protected CompilationUnitDeclaration runParseTest(String s,
-			String testName, String expected) {
-		// Non-javac part
-		try {
-
-			char[] source = s.toCharArray();
-			TestParser parser = new TestParser(new DefaultProblemFactory(Locale
-					.getDefault()), new CompilerOptions(getCompilerOptions()),
-					true/* optimize string literals */, false);
-
-			ICompilationUnit sourceUnit = new CompilationUnit(source, testName,
-					null);
-
-			CompilationUnitDeclaration compUnit = parser.parseCompilationUnit(
-					sourceUnit, true);
-			if (expected != null) {
-				String result = compUnit.toString();
-				assertEquals(expected, result);
-			}
-			return compUnit;
-			// javac part
-		} catch (AssertionFailedError e) {
-			throw e;
-		} finally {
-		}
-	}
-
-	protected CompilationUnitDeclaration runJSDocParseTest(String s,
-			String testName, String expected) {
-		// Non-javac part
-		try {
-
-			char[] source = s.toCharArray();
-			TestParser parser = new TestParser(new DefaultProblemFactory(Locale
-					.getDefault()), new CompilerOptions(getCompilerOptions()),
-					true/* optimize string literals */, false);
-
-			parser.javadocParser.checkDocComment = true;
-			ICompilationUnit sourceUnit = new CompilationUnit(source, testName,
-					null);
-
-			CompilationUnitDeclaration compUnit = parser.parseCompilationUnit(
-					sourceUnit, true);
-			if (expected != null) {
-				String result = compUnit.toString();
-				assertEquals(expected, result);
-			}
-			return compUnit;
-			// javac part
-		} catch (AssertionFailedError e) {
-			throw e;
-		} finally {
-		}
-	}
-
-	protected CompilationUnitDeclaration runInferTest(String s,
-			String testName, String expected, InferOptions inferOptions) {
-
-		return runInferTest(s, testName, expected, inferOptions,
-				new DefaultInferrenceProvider());
-	}
-
-	protected CompilationUnitDeclaration runInferTest(String s,
-			String testName, String expected, InferOptions inferOptions,
-			InferrenceProvider inferrenceProvider) {
-		// Non-javac part
-		try {
-
-			char[] source = s.toCharArray();
-			CompilerOptions compilerOptions = new CompilerOptions(
-					getCompilerOptions());
-			compilerOptions.inferOptions = inferOptions;
-			TestParser parser = new TestParser(new DefaultProblemFactory(Locale
-					.getDefault()), compilerOptions, true/*
-														 * optimize string
-														 * literals
-														 */, false);
-
-			parser.javadocParser.checkDocComment = true;
-
-			ICompilationUnit sourceUnit = new CompilationUnit(source, testName,
-					null);
-
-			CompilationUnitDeclaration compUnit = parser.parseCompilationUnit(
-					sourceUnit, true);
-
-			InferEngine inferEngine = inferrenceProvider.getInferEngine();
-
-			inferEngine.initialize();
-			inferEngine.setCompilationUnit(compUnit);
-			inferEngine.doInfer();
-			if (expected != null) {
-				StringBuffer sb = new StringBuffer();
-				compUnit.printInferredTypes(sb);
-				String result = sb.toString();
-				assertEquals(expected, result);
-			}
-			return compUnit;
-			// javac part
-		} catch (AssertionFailedError e) {
-			throw e;
-		} finally {
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AssignmentTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AssignmentTest.java
deleted file mode 100644
index 9514ccb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AssignmentTest.java
+++ /dev/null
@@ -1,614 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class AssignmentTest extends AbstractRegressionTest {
-
-	public AssignmentTest(String name) {
-		super(name);
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportNullReference,
-				CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportNoEffectAssignment,
-				CompilerOptions.ERROR);
-		return options;
-	}
-
-	/*
-	 * no effect assignment bug
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=27235
-	 */
-	public void test001() {
-		this.runConformTest(
-				new String[] {
-						"X.js",
-						"    var i;	\n" + "    function X(j) {	\n"
-								+ "    	i = j;	\n" + "    }	\n"
-								+ "       function B() {	\n"
-								+ "            this.i =this.i;	\n"
-								+ "        }	\n"
-								+ "      function main( args) {	\n"
-								+ "        X a = new X(3);	\n"
-								+ "        print(a.i + \" \");	\n"
-								+ "        print(a.new B().i);	\n" + "	}	\n"
-								+ "}	\n", }, "3 3");
-	}
-
-	public void test002() {
-		this
-				.runNegativeTest(
-						new String[] {
-								"X.js",
-								"	var a;	\n"
-										+ "	var next;	\n"
-										+ "	 function foo( arg){	\n"
-										+ "	\n"
-										+ "		zork = zork;	\n"
-										+ "		arg = zork;	\n"
-										+ "	\n"
-										+ "		arg = arg;  // noop	\n"
-										+ "		a = a;  // noop	\n"
-										+ "		this.next = this.next; // noop	\n"
-										+ "		this.next = next; // noop	\n"
-										+ "	\n"
-										+ "		next.a = next.a; // could raise NPE	\n"
-										+ "		this.next.next.a = next.next.a; // could raise NPE	\n"
-										+ "		a = next.a; // could raise NPE	\n"
-										+ "		this. a = next.a; 	\n" + "	}	\n"
-										+ "\n", },
-						"----------\n"
-								+ "2. ERROR in X.js (at line 5)\n"
-								+ "	zork = zork;	\n"
-								+ "	       ^^^^\n"
-								+ "zork cannot be resolved\n"
-								+ "----------\n"
-								+ "3. ERROR in X.js (at line 6)\n"
-								+ "	arg = zork;	\n"
-								+ "	      ^^^^\n"
-								+ "zork cannot be resolved\n"
-								+ "----------\n"
-								+ "4. ERROR in X.js (at line 8)\n"
-								+ "	arg = arg;  // noop	\n"
-								+ "	^^^^^^^^^\n"
-								+ "The assignment to variable arg has no effect\n"
-								+ "----------\n"
-								+ "5. ERROR in X.js (at line 9)\n"
-								+ "	a = a;  // noop	\n"
-								+ "	^^^^^\n"
-								+ "The assignment to variable a has no effect\n"
-								+ "----------\n"
-								+ "6. ERROR in X.js (at line 10)\n"
-								+ "	this.next = this.next; // noop	\n"
-								+ "	^^^^^^^^^^^^^^^^^^^^^\n"
-								+ "The assignment to variable next has no effect\n"
-								+ "----------\n"
-								+ "7. ERROR in X.js (at line 11)\n"
-								+ "	this.next = next; // noop	\n"
-								+ "	^^^^^^^^^^^^^^^^\n"
-								+ "The assignment to variable next has no effect\n"
-								+ "----------\n");
-	}
-
-	// // final multiple assignment
-	// public void test020() {
-	// this.runNegativeTest(
-	// new String[] {
-	// "X.js",
-	// "	function foo() {\n" +
-	// "		 var v;\n" +
-	// "		for (var i = 0; i < 10; i++) {\n" +
-	// "			v = i;\n" +
-	// "		}\n" +
-	// "		v = 0;\n" +
-	// "	}\n" +
-	// "\n",
-	// },
-	// "----------\n" +
-	// "1. ERROR in X.js (at line 4)\n" +
-	// "	v = i;\n" +
-	// "	^\n" +
-	// "The final local variable v may already have been assigned\n" +
-	// "----------\n" +
-	// "2. ERROR in X.js (at line 6)\n" +
-	// "	v = 0;\n" +
-	// "	^\n" +
-	// "The final local variable v may already have been assigned\n" +
-	// "----------\n");
-	// }
-
-	// null part has been repeated into NullReferenceTest#test1033
-	public void test033() {
-		this
-				.runNegativeTest(
-						new String[] {
-								"X.js",
-								"	\n" + "	function foo() {\n" + "		var a,b;\n"
-										+ "		do{\n" + "		   a=\"Hello \";\n"
-										+ "		}while(a!=null);\n" + "				\n"
-										+ "		if(a!=null)\n" + "		{\n"
-										+ "		   b=\"World!\";\n" + "		}\n"
-										+ "		println(a+b);\n" + "	}\n" + "\n", },
-						"----------\n"
-								+ "1. ERROR in X.js (at line 6)\n"
-								+ "	}while(a!=null);\n"
-								+ "	       ^\n"
-								+ "The variable a cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n"
-								+ "----------\n"
-								+ "2. ERROR in X.js (at line 8)\n"
-								+ "	if(a!=null)\n"
-								+ "	   ^\n"
-								+ "The variable a can only be null; it was either set to null or checked for null when last used\n"
-								+ "----------\n"
-								+ "3. ERROR in X.js (at line 12)\n"
-								+ "	println(a+b);\n"
-								+ "	                     ^\n"
-								+ "The local variable b may not have been initialized\n"
-								+ "----------\n");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=84215
-	// TODO (philippe) should move to InitializationTest suite
-	public void test034() {
-		this.runConformTest(new String[] {
-				"X.js",
-				"public final class X \n" + "{\n" + "	  var vdg;\n"
-						+ "	   var aa = null;\n" + "	   var a = 14;\n"
-						+ "	   var b = 3;\n" + "	   var c = 12;\n"
-						+ "	   var d = 2; \n" + "	   var e = 3; \n"
-						+ "	   var f = 34; \n" + "	   var g = 35; \n"
-						+ "	   var h = 36; \n" + "	   var j = 4;\n"
-						+ "	   var k = 1;\n" + "	   var aba = 1;\n"
-						+ "	   var as = 11;\n" + "	   var ad = 12;\n"
-						+ "	   var af = 13;\n" + "	   var ag = 2;\n"
-						+ "	   var ah = 21;\n" + "	   var aj = 22;\n"
-						+ "	   var ak = 3;\n" + "	   var aaad = null;\n"
-						+ "	   var aaaf = 1;\n" + "	   var aaag = 2;\n"
-						+ "	   var aaha = 2;\n" + "	 var cxvvb = 1;\n"
-						+ "	 var z = a;\n" + "	var asdff;\n" + "	  var ppfp;\n"
-						+ "	  var ppfpged;\n" + "	boolean asfadf;\n"
-						+ "	boolean cbxbx;\n" + "	  long tyt, rrky;\n"
-						+ "	  var dgjt, ykjr6y;\n" + "	   var krykr = 1;\n"
-						+ "	  var rykr5;\n" + "	  var dhfg;\n"
-						+ "	  var dthj;\n" + "	  var fkffy;\n"
-						+ "	  var fhfy;\n" + "	  var fhmf;\n"
-						+ "	 var ryur6;\n" + "	 var dhdthd;\n"
-						+ "	 var dth5;\n" + "	 var kfyk;\n" + "	 var ntd;\n"
-						+ "	 var asdasdads;\n" + "	   var dntdr = 7;\n"
-						+ "	   var asys = 1;\n" + "	   var djd5rwas = 11;\n"
-						+ "	   var dhds45rjd = 12;\n"
-						+ "	   var srws4jd = 13;\n" + "	   var s4ts = 2;\n"
-						+ "	   var dshes4 = 21;\n"
-						+ "	   var drthed56u = 22;\n"
-						+ "	   var drtye45 = 23;\n" + "	   var xxbxrb = 3;\n"
-						+ "	   var xfbxr = 31;\n" + "	   var asgw4y = 32;\n"
-						+ "	   var hdtrhs5r = 33;\n" + "	   var dshsh = 34;\n"
-						+ "	   var ds45yuwsuy = 4;\n"
-						+ "	   var astgs45rys = 5;\n" + "	   var srgs4y = 6;\n"
-						+ "	   var srgsryw45 = -6;\n"
-						+ "	   var srgdtgjd45ry = -7;\n"
-						+ "	   var srdjs43t = 1;\n"
-						+ "	   var sedteued5y = 2;\n" + "	  var jrfd6u;\n"
-						+ "	  var udf56u;\n" + "	 var jf6tu;\n"
-						+ "	 var jf6tud;\n" + "	var bsrh;\n" + "	 X(var a)\n"
-						+ "	{\n" + "	}\n" + "	 long sfhdsrhs;\n"
-						+ "	 boolean qaafasdfs;\n" + "	 var sdgsa;\n"
-						+ "	 long dgse4;\n" + "	long sgrdsrg;\n"
-						+ "	 function gdsthsr()\n" + "	{\n" + "	}\n"
-						+ "	 var hsrhs;\n" + "	 function hsrhsdsh()\n" + "	{\n"
-						+ "	}\n" + "	 var dsfhshsr;\n"
-						+ "	 function sfhsh4rsrh()\n" + "	{\n" + "	}\n"
-						+ "	 function shsrhsh()\n" + "	{\n" + "	}\n"
-						+ "	 function sfhstuje56u()\n" + "	{\n" + "	}\n"
-						+ "	 function dhdrt6u()\n" + "	{\n" + "	}\n"
-						+ "	 function hdtue56u()\n" + "	{\n" + "	}\n"
-						+ "	 function htdws4()\n" + "	{\n" + "	}\n"
-						+ "	var mfmgf;\n" + "	var mgdmd;\n" + "	var mdsrh;\n"
-						+ "	var nmdr;\n" + "	 function oyioyio()\n" + "	{\n"
-						+ "	}\n" + "	  long oyioyreye()\n" + "	{\n"
-						+ "		return 0;\n" + "	}\n" + "	  long etueierh()\n"
-						+ "	{\n" + "		return 0;\n" + "	}\n"
-						+ "	  function sdfgsgs()\n" + "	{\n" + "	}\n"
-						+ "	  function fhsrhsrh()\n" + "	{\n" + "	}\n" + "\n"
-						+ "	long dcggsdg;\n" + "	var ssssssgsfh;\n"
-						+ "	long ssssssgae;\n" + "	long ssssssfaseg;\n"
-						+ "	 function zzzdged()\n" + "	{\n" + "	}\n" + "	\n"
-						+ "	var t;\n" + "	 function xxxxxcbsg()\n" + "	{\n"
-						+ "	}\n" + "\n" + "	\n" + "	 function vdg()\n" + "	{\n"
-						+ "	}\n" + "	\n" + "	 int[] fffcvffffffasdfaef;\n"
-						+ "	 int[] fffcffffffasdfaef;\n"
-						+ "	 long[] ffcvfffffffasdfaef;\n"
-						+ "	 var fffffghffffasdfaef; \n"
-						+ "	 var fffffdffffasdfaef; \n"
-						+ "	 var ffafffffffasdfaef;\n" + "	\n"
-						+ "	 function fffffffffasdfaef()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 boolean aaaadgasrg;\n"
-						+ "	 function ddddgaergnj()\n" + "	{\n" + "	}\n" + "\n"
-						+ "	 function aaaadgaeg()\n" + "	{\n" + "	}\n" + "	\n"
-						+ "	 function aaaaaaefadfgh()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 function addddddddafge()\n" + "	{\n"
-						+ "	}\n" + "	\n" + "	 boolean aaaaaaaefae;\n"
-						+ "	 function aaaaaaefaef()\n" + "	{\n" + "	}\n" + "\n"
-						+ "	 function ggggseae()\n" + "	{\n" + "	}\n" + "\n"
-						+ "	  function ggggggsgsrg()\n" + "	{\n" + "	}\n"
-						+ "\n" + "	  synchronized function ggggggfsfgsr()\n"
-						+ "	{\n" + "	}\n" + "\n" + "	 function aaaaaadgaeg()\n"
-						+ "	{\n" + "	}\n" + "	\n"
-						+ "	 function aaaaadgaerg()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 function bbbbbbsfryghs()\n" + "	{\n"
-						+ "	}\n" + "	\n" + "	 function bfbbbbbbfssreg()\n"
-						+ "	{\n" + "	}\n" + "\n" + "	 function bbbbbbfssfb()\n"
-						+ "	{\n" + "	}\n" + "\n" + "	 function bbbbbbfssb()\n"
-						+ "	{\n" + "	}\n" + "\n" + "	 function bbbbfdssb()\n"
-						+ "	{\n" + "	}\n" + "	\n" + "	boolean dggggggdsg;\n"
-						+ "\n" + "	 function hdfhdr()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 function dhdrtdrs()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 function dghdthtdhd()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 function dhdhdtdh()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 function fddhdsh()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 boolean sdffgsdg()\n" + "	{\n"
-						+ "		return true;\n" + "	}\n" + "			\n"
-						+ "	  boolean sdgsdg()\n" + "	{\n"
-						+ "		return false;\n" + "	}\n" + "	\n"
-						+ "	   function sfdgsg()\n" + "	{\n" + "	}\n" + "\n"
-						+ "	 int[] fghtys;\n" + "\n" + "	   var sdsst = 1;\n"
-						+ "	  X asdfahnr;\n"
-						+ "	  var ssdsdbrtyrtdfhd, ssdsrtyrdbdfhd;\n"
-						+ "	  var ssdsrtydbdfhd, ssdsrtydffbdfhd;\n"
-						+ "	  var ssdrtyhrtysdbdfhd, ssyeghdsdbdfhd;\n"
-						+ "	  var ssdsdrtybdfhd, ssdsdehebdfhd;\n"
-						+ "	  var ssdthrtsdbdfhd, ssdshethetdbdfhd;\n"
-						+ "	  var sstrdrfhdsdbdfhd;\n"
-						+ "	  var ssdsdbdfhd, ssdsdethbdfhd;\n"
-						+ "	  long ssdshdfhchddbdfhd;\n"
-						+ "	  long ssdsdvbbdfhd;\n" + "	\n" + "	\n"
-						+ "	  long ssdsdbdfhd()\n" + "	{\n" + "		return 0;\n"
-						+ "	}\n" + "\n" + "	  long sdgsrsbsf()\n" + "	{\n"
-						+ "		return 0;\n" + "	}\n" + "\n"
-						+ "	  function sfgsfgssghr()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	  var sgsgsrg()\n" + "	{\n"
-						+ "		return null;\n" + "	}\n" + "\n"
-						+ "	  function sdgshsdygra()\n" + "	{\n" + "	}\n"
-						+ "\n" + "	  var sdfsdfs()\n" + "	{\n"
-						+ "		return null;\n" + "	}\n" + "\n"
-						+ "	 boolean ryweyer;\n" + "\n"
-						+ "	  function adfadfaghsfh()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	  function ghasghasrg()\n" + "	{\n"
-						+ "	}\n" + "\n" + "	  function aadfadfaf()\n" + "	{\n"
-						+ "	}\n" + "\n" + "	  function aadfadf()\n" + "	{\n"
-						+ "	}\n" + "	\n" + "	  var fgsfhwr()\n" + "	{\n"
-						+ "		return 0;\n" + "	}\n" + "\n"
-						+ "	  var gdfgfgrfg()\n" + "	{\n" + "		return 0;\n"
-						+ "	}\n" + "\n" + "	  var asdfsfs()\n" + "	{\n"
-						+ "		return 0;\n" + "	}\n" + "\n" + "	  var sdgs;\n"
-						+ "	  var sdfsh4e;\n" + "	   var gsregs = 0;\n" + "	\n"
-						+ "	  var sgsgsd()\n" + "	{\n" + "		return null;\n"
-						+ "	}\n" + "\n"
-						+ "	 byte[] sdhqtgwsrh(String rsName, var id)\n"
-						+ "	{\n" + "		var rs = null;\n" + "		try\n" + "		{\n"
-						+ "			rs = \"\";\n" + "			return null;\n" + "		}\n"
-						+ "		catch (Exception ex)\n" + "		{\n" + "		}\n"
-						+ "		finally\n" + "		{\n" + "			if (rs != null)\n"
-						+ "			{\n" + "				try\n" + "				{\n"
-						+ "					rs.toString();\n" + "				}\n"
-						+ "				catch (Exception ex)\n" + "				{\n" + "				}\n"
-						+ "			}\n" + "		}\n" + "		return null;\n" + "	}\n"
-						+ "\n" + "	 function dgagadga()\n" + "	{\n" + "	}\n"
-						+ "	\n" + "	 var adsyasta;\n" + "}\n", }, "");
-	}
-
-	/*
-	 * Check scenario: i = i++
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=84480 disabled:
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=111898
-	 */
-	public void test035() {
-		this.runNegativeTest(new String[] {
-				"X.js",
-				"	var f;\n" + "	function foo( i) {\n" + "		i = i++;\n"
-						+ "		i = ++i;\n" + "		f = f++;\n" + "		f = ++f;\n"
-						+ "		var z;" + "	}\n" + "\n", }, "----------\n"
-				+ "1. ERROR in X.js (at line 4)\n" + "	i = ++i;\n"
-				+ "	^^^^^^^\n" + "The assignment to variable i has no effect\n"
-				+ "----------\n" + "2. ERROR in X.js (at line 6)\n"
-				+ "	f = ++f;\n" + "	^^^^^^^\n"
-				+ "The assignment to variable f has no effect\n"
-				+ "----------\n");
-	}
-
-	public void test036() {
-		this
-				.runNegativeTest(
-						new String[] {
-								"X.js",
-								"\n" + "	function foo() {\n"
-										+ "		var o = new Object();\n"
-										+ "		do {\n" + "			o = null;\n"
-										+ "		} while (o != null);\n"
-										+ "		if (o == null) {\n"
-										+ "			// throw new Exception();\n"
-										+ "		}\n" + "	}\n" + "\n", },
-						"----------\n"
-								+ "1. ERROR in X.js (at line 6)\n"
-								+ "	} while (o != null);\n"
-								+ "	         ^\n"
-								+ "The variable o can only be null; it was either set to null or checked for null when last used\n"
-								+ "----------\n"
-								+ "2. ERROR in X.js (at line 7)\n"
-								+ "	if (o == null) {\n"
-								+ "	    ^\n"
-								+ "The variable o can only be null; it was either set to null or checked for null when last used\n"
-								+ "----------\n");
-	}
-
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=93588
-	// public void test037() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.js",
-	// " class X extends Object implements Runnable {\n" +
-	// "	var interval = 5;\n" +
-	// "	 function run() {\n" +
-	// "		try {\n" +
-	// "			Thread.sleep(interval = interval + 100);\n" +
-	// "			Thread.sleep(interval += 100);\n" +
-	// "		} catch (InterruptedException e) {\n" +
-	// "			e.printStackTrace();\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "\n" +
-	// "	  function main( args) {\n" +
-	// "		new X().run();\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "");
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=111703
-	// public void test038() {
-	// this.runNegativeTest(
-	// new String[] {
-	// "X.js",
-	// "import java.awt.event.*;\n" +
-	// "\n" +
-	// "import javax.swing.*;\n" +
-	// "import javax.swing.event.*;\n" +
-	// "\n" +
-	// " class X {\n" +
-	// "    JButton myButton = new JButton();\n" +
-	// "    JTree myTree = new JTree();\n" +
-	// "    ActionListener action;\n" +
-	// "    X() {\n" +
-	// "        action = new ActionListener() {\n" +
-	// "             function actionPerformed(ActionEvent e) {\n" +
-	// "                if (true) {\n" +
-	// "                    // unlock document\n" +
-	// "                     Object document = new Object();\n" +
-	// "                    myButton.addActionListener(new ActionListener() {\n"
-	// +
-	// "                          boolean selectionChanged;\n" +
-	// "                         TreeSelectionListener list = new TreeSelectionListener() {\n"
-	// +
-	// "                             function valueChanged(TreeSelectionEvent e) {\n"
-	// +
-	// "                                selectionChanged = true;\n" +
-	// "                            }\n" +
-	// "                        };\n" +
-	// "                       {\n" +
-	// "                      myTree.addTreeSelectionListener(list);\n" +
-	// "                      }\n" +
-	// "                         function actionPerformed(ActionEvent e) {\n" +
-	// "                            if(!selectionChanged)\n" +
-	// "                            myButton.removeActionListener(this);\n" +
-	// "                        }\n" +
-	// "                    });\n" +
-	// "                }\n" +
-	// "            }\n" +
-	// "        };\n" +
-	// "    }\n" +
-	// "      function main( args) {\n" +
-	// "        new X();\n" +
-	// "    }\n" +
-	// "\n" +
-	// "}",
-	// },
-	// "----------\n" +
-	// "1. WARNING in X.js (at line 19)\n" +
-	// "	 function valueChanged(TreeSelectionEvent e) {\n" +
-	// "	                                            ^\n" +
-	// "The parameter e is hiding another local variable defined in an enclosing type scope\n"
-	// +
-	// "----------\n" +
-	// "2. ERROR in X.js (at line 23)\n" +
-	// "	 {\n" +
-	// "	       ^\n" +
-	// "Cannot define  initializer in inner type new ActionListener(){}\n" +
-	// "----------\n" +
-	// "3. ERROR in X.js (at line 24)\n" +
-	// "	myTree.addTreeSelectionListener(list);\n" +
-	// "	^^^^^^\n" +
-	// "Cannot make a  reference to the non- field myTree\n" +
-	// "----------\n" +
-	// "4. WARNING in X.js (at line 26)\n" +
-	// "	 function actionPerformed(ActionEvent e) {\n" +
-	// "	                                        ^\n" +
-	// "The parameter e is hiding another local variable defined in an enclosing type scope\n"
-	// +
-	// "----------\n");
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=111898
-	// public void test039() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.js",
-	// " class X {\n" +
-	// "	  function main( args) {\n" +
-	// "		var a = 1;\n" +
-	// "	    a = a++;\n" +
-	// "		print(\"a=\"+a);\n" +
-	// "		\n" +
-	// "		var b = 1;\n" +
-	// "		print(b = b++);\n" +
-	// "		println(\"b=\"+b);\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "a=11b=1");
-	// }
-	// warn upon parameter assignment
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=53773
-	public void test040() {
-		Map options = getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportParameterAssignment,
-				CompilerOptions.ERROR);
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"  function foo(b) {\n" + "    b = false;\n" + "  }\n"
-								+ "\n", }, "----------\n"
-						+ "1. ERROR in X.js (at line 2)\n" + "	b = false;\n"
-						+ "	^\n" + "The parameter b should not be assigned\n"
-						+ "----------\n", null, true, options);
-	}
-
-	// warn upon parameter assignment
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=53773
-	// diagnose within fake reachable code
-	public void test041() {
-		Map options = getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportParameterAssignment,
-				CompilerOptions.ERROR);
-		this.runNegativeTest(new String[] {
-				"X.js",
-				"  function foo(b) {\n" + "    if (false) {\n"
-						+ "      b = false;\n" + "    }\n" + "  }\n" + "\n", },
-				"----------\n" + "1. ERROR in X.js (at line 3)\n"
-						+ "	b = false;\n" + "	^\n"
-						+ "The parameter b should not be assigned\n"
-						+ "----------\n", null, true, options);
-	}
-
-	// warn upon parameter assignment
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=53773
-	// diagnose within fake reachable code
-	public void test042() {
-		Map options = getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportParameterAssignment,
-				CompilerOptions.ERROR);
-		this.runNegativeTest(new String[] {
-				"X.js",
-				"  function foo(b) {\n" + "    if (true) {\n"
-						+ "      return;\n" + "    }\n" + "    b = false;\n"
-						+ "  }\n" + "\n", }, "----------\n"
-				+ "1. ERROR in X.js (at line 5)\n" + "	b = false;\n" + "	^\n"
-				+ "The parameter b should not be assigned\n" + "----------\n",
-				null, true, options);
-	}
-
-	// // warn upon parameter assignment
-	// // https://bugs.eclipse.org/bugs/show_bug.cgi?id=53773
-	// // we only show the 'assignment to final' error here
-	// public void test043() {
-	// Map options = getCompilerOptions();
-	// options.put(CompilerOptions.OPTION_ReportParameterAssignment,
-	// CompilerOptions.ERROR);
-	// this.runNegativeTest(
-	// new String[] {
-	// "X.js",
-	// " class X {\n" +
-	// "  function foo( boolean b) {\n" +
-	// "    if (false) {\n" +
-	// "      b = false;\n" +
-	// "    }\n" +
-	// "  }\n" +
-	// "}\n",
-	// },
-	// "----------\n" +
-	// "1. ERROR in X.js (at line 4)\n" +
-	// "	b = false;\n" +
-	// "	^\n" +
-	// "The final local variable b cannot be assigned. It must be blank and not using a compound assignment\n"
-	// +
-	// "----------\n",
-	// null, true, options);
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=100369
-	public void test044() {
-		this.runNegativeTest(new String[] {
-				"X.js",
-				"	var length1 = 0;\n" + "	{\n"
-						+ "		length1 = length1; // already detected\n" + "	}\n"
-						+ "	var length2 = length2 = 0; // not detected\n"
-						+ "	var length3 = 0;\n" + "	{\n"
-						+ "		length3 = length3 = 0; // not detected\n" + "	}\n"
-						+ "	 function foo() {\n" + "		var length1 = 0;\n"
-						+ "		length1 = length1; // already detected\n"
-						+ "		var length2 = length2 = 0; // not detected\n"
-						+ "		var length3 = 0;\n"
-						+ "		length3 = length3 = 0; // not detected\n" + "	}\n"
-						+ "\n", }, "----------\n"
-				+ "1. ERROR in X.js (at line 3)\n"
-				+ "	length1 = length1; // already detected\n"
-				+ "	^^^^^^^^^^^^^^^^^\n"
-				+ "The assignment to variable length1 has no effect\n"
-				+ "----------\n" + "2. ERROR in X.js (at line 5)\n"
-				+ "	var length2 = length2 = 0; // not detected\n"
-				+ "	    ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "The assignment to variable length2 has no effect\n"
-				+ "----------\n" + "3. ERROR in X.js (at line 8)\n"
-				+ "	length3 = length3 = 0; // not detected\n"
-				+ "	^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "The assignment to variable length3 has no effect\n"
-				+ "----------\n" + "4. ERROR in X.js (at line 12)\n"
-				+ "	length1 = length1; // already detected\n"
-				+ "	^^^^^^^^^^^^^^^^^\n"
-				+ "The assignment to variable length1 has no effect\n"
-				+ "----------\n" + "5. ERROR in X.js (at line 13)\n"
-				+ "	var length2 = length2 = 0; // not detected\n"
-				+ "	    ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "The assignment to variable length2 has no effect\n"
-				+ "----------\n" + "6. ERROR in X.js (at line 15)\n"
-				+ "	length3 = length3 = 0; // not detected\n"
-				+ "	^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "The assignment to variable length3 has no effect\n"
-				+ "----------\n");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=133351
-	public void test045() {
-		this.runNegativeTest(new String[] {
-				"X.js",
-				"	function foo() {\n"
-						+ "		var length2 = length2 = 0; // first problem\n"
-						+ "		var length3 = 0;\n"
-						+ "		length3 = length3 = 0; // second problem\n"
-						+ "	}\n" + "\n", }, "----------\n"
-				+ "1. ERROR in X.js (at line 2)\n"
-				+ "	var length2 = length2 = 0; // first problem\n"
-				+ "	    ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "The assignment to variable length2 has no effect\n"
-				+ "----------\n" + "2. ERROR in X.js (at line 4)\n"
-				+ "	length3 = length3 = 0; // second problem\n"
-				+ "	^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "The assignment to variable length3 has no effect\n"
-				+ "----------\n");
-	}
-
-	public static Class testClass() {
-		return AssignmentTest.class;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java
deleted file mode 100644
index f6f7a20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicAnalyseTests.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class BasicAnalyseTests extends AbstractRegressionTest {
-	public BasicAnalyseTests(String name) {
-		super(name);
-	}
-	
-	public void testBug251374_1() {
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var b = null;\n" +
-						"function boo() {\n" +
-						"b.toString();\n" +
-						"}\n" +
-						"b = 2;\n" +
-						"boo();" 
-				},
-				"", null, false, custom
-		);
-	}
-	public void testBug251374_2() {
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var b = null;\n" +
-						"function boo() {\n" +
-						"b.toString();\n" +
-						"}\n" +
-						"boo();" 
-				},
-				"----------\n" + 
-				"1. ERROR in X.js (at line 3)\n" + 
-				"	b.toString();\n" + 
-				"	^\n" + 
-				"Null pointer access: The variable b can only be null at this location\n" + 
-				"----------\n", null, false, custom
-		);
-	}
-	
-	public void testBug251374_3() {
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var b = null;\n" +
-						"function boo() {\n" +
-						"b = null\n" +
-						"b.toString();\n" +
-						"}\n" +
-						"b = 2;\n" +
-						"boo();" 
-				},
-				"----------\n" + 
-				"1. ERROR in X.js (at line 4)\n" + 
-				"	b.toString();\n" + 
-				"	^\n" + 
-				"Null pointer access: The variable b can only be null at this location\n" + 
-				"----------\n", null, false, custom
-		);
-	}
-	
-	public void testBug251374_4() {
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference", "error");
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var b = null;\n" +
-						"function boo() {\n" +
-						"b = null\n" +
-						"b.toString();\n" +
-						"}\n" +
-						"b = 2;\n" +
-						"boo();\n" +
-						"b.toString();" 
-				},
-				"----------\n" + 
-				"1. ERROR in X.js (at line 4)\n" + 
-				"	b.toString();\n" + 
-				"	^\n" + 
-				"Null pointer access: The variable b can only be null at this location\n" + 
-				"----------\n", null, false, custom
-		);
-	}
-	
-	public void testBug251374_5() {
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var b = null;\n" +
-						"function boo() {\n" +
-						"b = null\n" +
-						"b.toString();\n" +
-						"}\n" +
-						"b = 2;\n" +
-						"boo();\n" +
-						"b.toString();" 
-				},
-				""
-		);
-	}
-	
-	public void testBug286029_1() {
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var sub;\n" +
-						"if(!sub) sub = {};" 
-				},
-				""
-		);
-	}
-	
-	public void testBug286029_2() {
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function abc() {\n" +
-						"var sub;\n" +
-						"if(!sub) sub = {};\n" +
-						"}"
-				},
-				"----------\n" + 
-		"1. WARNING in X.js (at line 3)\n" + 
-		"	if(!sub) sub = {};\n" + 
-		"	    ^^^\n" + 
-		"The local variable sub may not have been initialized\n" + 
-		"----------\n"
-		);
-	}
-	
-	public void testBug286029_3() {
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function abc() {\n" +
-						"var sub; sub = {};\n" +
-						"if(!sub) sub = {};\n" +
-						"}"
-				},
-				""
-		);
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicErrorTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicErrorTests.java
deleted file mode 100644
index 7c835d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicErrorTests.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-
-public class BasicErrorTests extends AbstractRegressionTest {
-
-	public BasicErrorTests(String name) {
-		super(name);
- 
-	}
-	public void test001() {
-		CompilationUnitDeclaration declaration = this.runParseTest(
-				"function foo(){\n" + 
-				"  var c;\n" + 
-				"  var d;\n" + 
-				"  c.\n" + 
-			"}\n",
-			"X.js",
-			"function foo(){\n" + 
-			"  var c;\n" + 
-			"  var d;\n" + 
-			"  c.\n" + 
-			"\n"
-			
-		 );
-	}
-
-	public void test002() {
-		CompilationUnitDeclaration declaration = this.runParseTest(
-				"package p;\n" +
-				"/**\n" +
-				" * @category test\n" +
-				" */\n" +
-				"public class Y {\n" +
-			"}\n",
-			"X.js",
-			"function foo(){\n" + 
-			"  var c;\n" + 
-			"  var d;\n" + 
-			"  c.\n" + 
-			"\n"
-			
-		 );
-	}
-
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicJsdocTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicJsdocTests.java
deleted file mode 100644
index 3f4965d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicJsdocTests.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-
-public class BasicJsdocTests extends AbstractRegressionTest {
-
-	public BasicJsdocTests(String name) {
-		super(name);
- 
-	}
-	public void test001() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-			 "/**\n"
-				+ " * Valid class javadoc\n"
-				+ " * @param p1 param def\n"
-				+ " */\n"
-			+"function foo(p1){}" + 
-			"\n",
-			"X.js",
-			"/**\n" +
-			"   * @param p1\n" +
-			" */\n" +
-			"function foo(p1) {\n}" + 
-			"\n"
-			
-		 );
-	}
-
-	public void test002() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-			 "/**\n"
-				+ " * Valid class javadoc\n"
-				+ " * @param {String} p1 param def\n"
-				+ " */\n"
-			+"function foo(p1){}" + 
-			"\n",
-			"X.js",
-			"/**\n" +
-			"   * @param {String} p1\n" +
-			" */\n" +
-			"function foo(p1) {\n}" + 
-			"\n"
-			
-		 );
-	}
-	
-//	public void test002b() {
-//		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-//			 "/**\n"
-//				+ " * Valid class javadoc\n"
-//				+ " * @param {String} p1 param def\n"
-//				+ " */\n"
-//			+"function foo(p1){}" + 
-//			"\n",
-//			"X.js",
-//			"/**\n" +
-//			"   * @param {String*} p1\n" +
-//			" */\n" +
-//			"function foo(p1) {\n}" + 
-//			"\n"
-//			
-//		 );
-//	}
-	public void test003() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-			 "/**\n"
-				+ " * Valid class javadoc\n"
-				+ " * @param {String|Number} p1 param def\n"
-				+ " */\n"
-			+"function foo(p1){}" + 
-			"\n",
-			"X.js",
-			"/**\n" +
-			"   * @param {String|Number} p1\n" +
-			" */\n" +
-			"function foo(p1) {\n}" + 
-			"\n"
-			
-		 );
-	}
-	public void test004() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-			 "/**\n"
-				+ " * Valid class javadoc\n"
-				+ " * @constructor \n"
-				+ " */\n"
-			+"function foo(p1){}" + 
-			"\n",
-			"X.js",
-			"/**\n" +
-			"   * @constructor\n" +
-			" */\n" +
-			"function foo(p1) {\n}" + 
-			"\n"
-			
-		 );
-	}
-	public void test005() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-			 "/**\n"
-				+ " * Valid class javadoc\n"
-				+ " * @type String \n"
-				+ " */\n"
-			+"function foo(p1){}" + 
-			"\n",
-			"X.js",
-			"/**\n" +
-			"   * @type String\n" +
-			" */\n" +
-			"function foo(p1) {\n}" + 
-			"\n"
-			
-		 );
-	}
-
-	public void test006() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-			 "/**\n"
-				+ " * Valid class javadoc\n"
-				+ " * @private \n"
-				+ " */\n"
-			+"function foo(p1){}" + 
-			"\n",
-			"X.js",
-			"/**\n" +
-			"   * @private\n" +
-			" */\n" +
-			"function foo(p1) {\n}" + 
-			"\n"
-			
-		 );
-	}
-
-	public void test007() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-			 "/**\n"
-				+ " * Valid class javadoc\n"
-				+ " * @member MyClass \n"
-				+ " */\n"
-			+"function foo(p1){}" + 
-			"\n",
-			"X.js",
-			"/**\n" +
-			"   * @member MyClass\n" +
-			" */\n" +
-			"function foo(p1) {\n}" + 
-			"\n"
-			
-		 );
-	}
-
-	public void test008() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-			 "/**\n"
-				+ " * Valid class javadoc\n"
-				+ " * @base MyClass \n"
-				+ " */\n"
-			+"function foo(p1){}" + 
-			"\n",
-			"X.js",
-			"/**\n" +
-			"   * @extends MyClass\n" +
-			" */\n" +
-			"function foo(p1) {\n}" + 
-			"\n"
-			
-		 );
-	}
-
-	public void test010() {
-		CompilationUnitDeclaration declaration = this.runJSDocParseTest(
-				"i= { \n"+
-				"/**\n" +
-				"   * @type Number\n" +
-				" */\n" +
-				" a: 2 ,\n"+
-				"/**\n" +
-				"   * @type Int\n" +
-				" */\n" +
-				" b: 3+4};" + 
-				"\n",
-			"X.js",
-			"i = {\n"+
-			"  /**\n" +
-			"   * @type Number\n" +
-			" */\n" +
-			"a : 2,\n"+
-			"  /**\n" +
-			"   * @type Int\n" +
-			" */\n" +
-			"b : (3 + 4)\n};" + 
-			"\n"
-		 );
-		 			
-	 
-	}
-
-
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java
deleted file mode 100644
index 159a8c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java
+++ /dev/null
@@ -1,1017 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-
-public class BasicParserTests extends AbstractRegressionTest {
-
-	public BasicParserTests(String name) {
-		super(name);
- 
-	}
-	public void test001() {
-		CompilationUnitDeclaration declaration = this.runParseTest(
-			"{i=1;}" + 
-			"\n",
-			"X.js",
-			"{\n  i = 1;\n}" + 
-			"\n"
-			
-		 );
-	}
-	public void test002() {	// missing semicolon
-		CompilationUnitDeclaration declaration = this.runParseTest(
-				"i=1\n" + 
-				"j=2;" + 
-			"\n",
-			"X.js",
-			"i = 1;\n" + 
-			"j = 2;" + 
-			"\n"
-			
-		 );
-	}
-
-	public void test003() {	// var
-		CompilationUnitDeclaration declaration = this.runParseTest(
-				"var i=1,c=4;" + 
-				"\n",
-			"X.js",
-			"var i = 1, c = 4;" + 
-			"\n"
-		 );
-		 
-		this.runParseTest(
-				"var i=1,c;" + 
-				"\n",
-			"X.js",
-			"var i = 1, c;" + 
-			"\n"
-		 );
-	}
-
-	public void test003a() {	// var
-		CompilationUnitDeclaration declaration = this.runParseTest(
-				"var foo=null;" + 
-				"\n",
-			"X.js",
-			"var foo = null;" + 
-			"\n"
-		 );
-		 
-		this.runParseTest(
-				"var i=1,c;" + 
-				"\n",
-			"X.js",
-			"var i = 1, c;" + 
-			"\n"
-		 );
-	}
-	
-	public void test004() {	// functions
-		this.runParseTest(
-				"function abc(){}" + 
-				"\n",
-			"X.js",
-			"function abc() {\n}" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test004a() {	// functions
-		this.runParseTest(
-				"function abc(a){}" + 
-				"\n",
-			"X.js",
-			"function abc(a) {\n}" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test004b() {	// functions
-		this.runParseTest(
-				"function abc(a,b){i=1;}" + 
-				"\n",
-			"X.js",
-			"function abc(a, b) {\n  i = 1;\n}" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005a() {	// expressions
-		this.runParseTest(
-				"i=this.v1+4;" + 
-				"\n",
-			"X.js",
-			"i = (this.v1 + 4);" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005b() {	// expressions
-		this.runParseTest(
-				"i=funccall(c,b);" + 
-				"i=cc.funccall(c,b);" + 
-				"i=dd.cc.funccall(c,b);" + 
-				"\n",
-			"X.js",
-			"i = funccall(c, b);\n" + 
-			"i = cc.funccall(c, b);\n" + 
-			"i = dd.cc.funccall(c, b);" + 
-			"\n"
-		 );
-		 
-	}
-
-
-	public void test005b2() {	// expressions
-		this.runParseTest(
-				"i=funccall().methCall();" + 
-				"\n",
-			"X.js",
-			"i = funccall().methCall();" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005d() {	// expressions
-		this.runParseTest(
-				"i= function (c,b) {i=2;}" + 
-				"\n",
-			"X.js",
-			"i = function (c, b) {\n  i = 2;\n};" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005e() {	// expressions/
-		this.runParseTest(
-				"i= 1+(z-v);" + 
-				"i= ++z * v--;" + 
-				"\n",
-			"X.js",
-			"i = (1 + (z - v));\n" + 
-			"i = ((++ z) * (v --));" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005f() {	// expressions
-		this.runParseTest(
-				"i= new abc(dd);" + 
-				"\n",
-			"X.js",
-			"i = new abc(dd);" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005f1() {	// expressions
-		this.runParseTest(
-				"i= new dojo.uri.Uri(1,2);" + 
-				"\n",
-			"X.js",
-			"i = new dojo.uri.Uri(1, 2);" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005f2() {	// expressions
-		this.runParseTest(
-				"dojo.string.normalizeNewlines = function (text,newlineChar) {i=1;}" + 
-				"\n",
-			"X.js",
-			"dojo.string.normalizeNewlines = function (text, newlineChar) {\n  i = 1;\n};" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005f3() {	// expressions
-		this.runParseTest(
-				"	function foo() {\n" + 
-				"		var maxUnits = 0;\n" + 
-				"			var unitResult = \n" + 
-				"				new CompilationUnitResult(\n" + 
-				"					null, \n" + 
-				"					i, \n" + 
-				"					maxUnits); \n" + 
-				"}\n",
-			"X.js",
-			"function foo() {\n"+
-			"  var maxUnits = 0;\n"+
-			"  var unitResult = new   CompilationUnitResult(null, i, maxUnits);\n"+
-			"}"+
-			"\n"
-		 );
-		 
-	}
-
-	public void test005f4() {	// expressions
-		this.runParseTest(
-				"i= new SomeClass;" + 
-				"\n",
-			"X.js",
-			"i = new SomeClass;" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005f5() {	// expressions
-		this.runParseTest(
-				"function f(){\n" + 
-				"i= new SomeClass \n}" + 
-				"\n",
-			"X.js",
-			"function f() {\n" + 
-			"  i = new SomeClass;\n" + 
-			"}" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005f6() {	// expressions
-		this.runParseTest(
-				"	function X(i){}								\n" +
-				"	function foo(){								\n" +
-				"		var j = 0;							\n" +
-				"		var x = new X(j);						\n" +
-				"}	" +
-				"\n",
-			"X.js",
-			"function X(i) {\n" + 
-			"}\n" + 
-			"function foo() {\n" + 
-			"  var j = 0;\n" +
-			"  var x = new   X(j);\n" +
-			"}" + 
-			"\n"
-		 );
-		 
-	}
-
- 
-	
-	public void test005g1() {	// expressions
-		this.runParseTest(
-				"i= typeof objpath != \"string\";" + 
-				"\n",
-			"X.js",
-			"i = ((typeof objpath) != \"string\");" + 
-			"\n"
-		 );
-		 
-	}
-
-	public void test005g2() {	// expressions
-		this.runParseTest(
-				"i= ar instanceof Error;" + 
-				"\n",
-			"X.js",
-			"i = (ar instanceof Error);" + 
-			"\n"
-		 );
-	}		 
-	
-	public void test005g3() {	// expressions
-		this.runParseTest(
-				"i= anArg.name != null ;" + 
-				"\n",
-			"X.js",
-			"i = (anArg.name != null);" + 
-			"\n"
-		 );
-	}		 
-	
-	public void test005g4() {	// expressions
-		this.runParseTest(
-				"i= anArg.name != undefined ;" + 
-				"\n",
-			"X.js",
-			"i = (anArg.name != undefined);" + 
-			"\n"
-		 );
-	}		 
-	
-	public void test005h1() {	// expressions
-		this.runParseTest(
-				"i= { a: 2 , b: 3+4};" + 
-				"\n",
-			"X.js",
-			"i = {\n  a : 2,\n  b : (3 + 4)\n};" + 
-			"\n"
-		 );
-		 
-}
-	
-	public void test005h1a() {	// expressions
-		this.runParseTest(
-				"i= { 'a': 2 , 'b': 3+4};" + 
-				"\n",
-			"X.js",
-			"i = {\n  'a' : 2,\n  'b' : (3 + 4)\n};" + 
-			"\n"
-		 );
-		 
-}
-
-	public void test005h2() {	// expressions
-		this.runParseTest(
-				"i= { a: function(){ var ar={c:3,d:4,e:4}; } , b: function(cc){ var c=1;} , d:function(){}};" + 
-				"\n",
-			"X.js",
-			"i = {\n  a : function () {\n  var ar = {\n    c : 3,\n    d : 4,\n    e : 4\n  };\n},\n  b : function (cc) {\n  var c = 1;\n},\n  d : function () {\n}\n};" + 
-			"\n"
-		 );
-		 
-}
-
-	public void test005i() {	// expressions
-		this.runParseTest(
-				"i= arr[4];" + 
-				"\n",
-			"X.js",
-			"i = arr[4];" + 
-			"\n"
-		 );
-	}
-	public void test005i1() {	// expressions
-		this.runParseTest(
-				"arr[4]=1;" + 
-				"\n",
-			"X.js",
-			"arr[4] = 1;" + 
-			"\n"
-		 );
-	}
-	public void test005i2() {	// expressions
-		this.runParseTest(
-				"var arr=null;" + 
-				"arr[4]=1;" + 
-				"\n",
-			"X.js",
-			"var arr = null;\n" + 
-			"arr[4] = 1;" + 
-			"\n"
-		 );
-	}
-	public void test005j() {	// expressions
-		this.runParseTest(
-				"i= [a,b];" + 
-				"\n",
-			"X.js",
-			"i = [a, b];" + 
-			"\n"
-		 );
-	}
-	 
-	public void test005j2() {	// expressions
-		this.runParseTest(
-				"i= [,a];" + 
-				"\n",
-			"X.js",
-			"i = [, a];" + 
-			"\n"
-		 );
-	}
-	 
-	public void test005j3() {	// expressions
-		this.runParseTest(
-				"i= [a,];" + 
-				"\n",
-			"X.js",
-			"i = [a, ];" + 
-			"\n"
-		 );
-	}
-
-	public void test005j4() {	// expressions
-		this.runParseTest(
-				"i= [,];" + 
-				"\n",
-			"X.js",
-			"i = [, ];" + 
-			"\n"
-		 );
-	}
-
-	public void test005j5() {	// expressions
-		this.runParseTest(
-				"i= [];" + 
-				"\n",
-			"X.js",
-			"i = [];" + 
-			"\n"
-		 );
-	}
-	public void test005j6() {	// expressions
-		this.runParseTest(
-				"i= [a,,b];" + 
-				"\n",
-			"X.js",
-			"i = [a, , b];" + 
-			"\n"
-		 );
-	}
-
-	public void test005j7() {	// expressions
-		this.runParseTest(
-				"i= [,,];" + 
-				"i= [,,,];" + 
-				"i= [,,b,];" + 
-				"\n",
-			"X.js",
-			"i = [, , ];\n" + 
-			"i = [, , , ];\n" + 
-			"i = [, , b, ];" + 
-			"\n"
-		 );
-	}
-
-	public void test005j8() {	// expressions
-		this.runParseTest(
-				"i= [a,b,,c];" + 
-				"\n",
-			"X.js",
-			"i = [a, b, , c];" + 
-			"\n"
-		 );
-	}
-
-	public void test007() {	// if
-		this.runParseTest(
-				"if (a>1) this.c=f+5;" + 
-				"\n",
-			"X.js",
-			"if ((a > 1))\n    this.c = (f + 5);" + 
-			"\n"
-		 );
-	}
-
-	public void test008() {	// try catch
-		this.runParseTest(
-				"try { a=2;} catch (ex) {a=3;}" + 
-				"\n",
-			"X.js",
-			"try \n  {\n    a = 2;\n  }\ncatch (ex)   {\n    a = 3;\n  }" + 
-			"\n"
-		 );
-	}
-
-	public void test009() {	// for
-		this.runParseTest(
-				"for (i=1;i<3;i++)\n" +
-				"  f++;" +
-				"\n",
-			"X.js",
-			"for (i = 1; (i < 3); i ++) \n  f ++;"+	
-			"\n"
-		 );
-	}
-	public void test009a() {	// for
-		this.runParseTest(
-				"for (;i<3;i++)\n" +
-				"  f++;" +
-				"\n",
-			"X.js",
-			"for (; (i < 3); i ++) \n  f ++;"+	
-			"\n"
-		 );
-	}
-
-	public void test010() {	// for in
-		this.runParseTest(
-				"for (var a in this.vars)\n" +
-				"  f++;" +
-				"\n",
-			"X.js",
-			"for (var a in this.vars) \n  f ++;"+	
-			"\n"
-		 );
-	}
-
-
-	public void test011() {	// for in
-		this.runParseTest(
-				"with (foo)\n" +
-				"  bar;" +
-				"\n",
-			"X.js",
-			"with (foo)\n"+	
-			"  bar;\n"
-		 );
-	}
-
-	public void test010a() {	// for in
-		this.runParseTest(
-				"for (a in this.vars)\n" +
-				"  f++;" +
-				"\n",
-			"X.js",
-			"for (a in this.vars) \n  f ++;"+	
-			"\n"
-		 );
-	}
-
-
-	public void test015() {	// missing semicolon
-		this.runParseTest(
-				"  function bar() \n{\n" +
-				"    System.out.println()\n" +
-				"  }\n" ,
-			"X.js",
-			"function bar() {\n"+	
-			"  System.out.println();\n" +
-			"}\n" 
-		 );
-	}
-	
-	public void test015a() {	// missing semicolon
-		this.runParseTest(
-			"function bar() {\n"+	
-			"  System.out\n" +
-			"}\n", 
-			"X.js",
-			"function bar() {\n"+	
-			"  System.out;\n" +
-			"}\n" 
-		 );
-	}
-	
-	public void test020() {	// missing semicolon
-		this.runParseTest(
-			      "function Bob(firstname, lastname) {\n" +
-			      "   var Firstname = firstname;\n" +
-			      "   var Lastname = lastname;\n" +
-			      "}\n" +
-			      "Bob.prototype.name = function () {return this.Fistname + this.Lastname;};\n",
-			"X.js",
-		      "function Bob(firstname, lastname) {\n" +
-		      "  var Firstname = firstname;\n" +
-		      "  var Lastname = lastname;\n" +
-		      "}\n" +
-		      "Bob.prototype.name = function () {\n  return (this.Fistname + this.Lastname);\n};\n"
-		 );
-	}
-
-	public void test022() {
-		this.runParseTest(
-				"var SingleQuote = {\n" +
-				"   Version: '1.1-beta2' \n" +
-				"}\n",
-			"X.js",
-				"var SingleQuote = {\n" +
-				"  Version : '1.1-beta2'\n" +
-				"};\n"
-		);
-	}
-
-	public void test023() {
-		this.runParseTest(
-				"var Try = { \n" +
-				"	these: function() { \n" +
-				"		var returnValue; \n" +
-				"	} \n"+
-				"	} \n",
-			"X.js",
-			"var Try = {\n" +
-			"  these : function () {\n" +
-			"  var returnValue;\n" +
-			"}\n"+
-			"};\n"
-		);
-	}
-
-	public void test024() {
-		this.runParseTest(
-				"var Try = { \n" +
-				"	these: function() { \n" +
-				"		var returnValue; \n" +
-				"	} \n" +
-				"};",
-			"X.js",
-				"var Try = {\n" +
-				"  these : function () {\n" +
-				"  var returnValue;\n" +
-				"}\n" +
-				"};\n"
-		);
-	}
-	
-	
-	public void test026() {
-		this.runParseTest(
-				"String.replace(/&/g, '&amp;');",
-			"X.js",
-				"String.replace(/&/g, '&amp;');\n"
-		);
-	}
-	
-	public void test027() {
-		this.runParseTest(
-				"  (!options) ? options = {} : '';",
-			"X.js",
-				"((! options) ? (options = {}) : '');\n"			
-		);
-	}
-	
-	public void test027b() {
-		this.runParseTest(
-				"  (!options) ? '' : options = {};",
-			"X.js",
-				"((! options) ? '' : (options = {}));\n"			
-		);
-	}
-	
-	public void test028() {
-		this.runParseTest(
-				" if (typeof dojo==\"undefined\"){ \n" +
-				"	function dj_undef(){ \n" +
-				"	} \n" +
-				"}",
-			"X.js",
-				"if (((typeof dojo) == \"undefined\"))\n" +
-				"    {\n" +
-				"      function dj_undef() {\n" +
-				"      }\n" +
-				"    }\n"			
-		);
-	}
-	
-	public void test029() {
-		this.runParseTest(
-				"  abc();",
-			"X.js",
-				"abc();\n"			
-		);
-	}
-	
-	public void test030() {
-		this.runParseTest(
-				"  \"cc\".abc();",
-			"X.js",
-				"\"cc\".abc();\n"			
-		);
-	}
-	
-	public void test031() {
-		this.runParseTest(
-			"var a = 1;\n" +
-			"// test unicode \\u00a var a =1; \n" +
-			"var b = 2; \n",
-			"X.js",
-			"var a = 1;\n" +
-			"var b = 2;\n"			
-		);
-	}
-	public void test032() {
-		this.runParseTest(
-			"var a = 1;\n" +
-			"/* \n" +
-			"* test unicode \\u00a var a =1; \n " +
-			"*/" +
-			"var b = 2; \n",
-			"X.js",
-			"var a = 1;\n" +
-			"var b = 2;\n"			
-		);
-	}
-	
-	public void test033() {
-		this.runParseTest(
-				"var a = \"a\\>\";\n",
-			"X.js",
-				"var a = \"a>\";\n"			
-		);
-	}
-	
-	public void test034() {
-				this.runParseTest(
-						"label: for (var i = 0; i < 10; i++) {\n" +
-						"	     continue label;\n" +
-						"}", 
-						"X.js",
-						"label: for (var i = 0;; (i < 10); i ++) \n" +
-						"  {\n"+			
-						"    continue label;\n"+			
-						"  }\n"
-					);
-	}
-	
-
-	public void test035() {
-		// check a unicode " in string. The expected " is escaped 
-		// because of the way the test framework works. It converts 
-		// special characters to a character representation before
-		// doing the compare. 
-		this.runParseTest(
-				"\"abc\\u0022def\";\n",
-			"X.js",
-				"\"abc\\\"def\";\n"			
-		);
-	}
-	
-	public void test036() {
-		this.runParseTest(
-				"'abc\\u0027def';\n",
-			"X.js",
-				"'abc'def';\n"			
-		);
-	}
-	
-	public void test037() {
-		// check a unicode " in string. The expected " is escaped 
-		// because of the way the test framework works. It converts 
-		// special characters to a character representation before
-		// doing the compare. 
-		this.runParseTest(
-				"\"\\u0022def\";\n",
-			"X.js",
-				"\"\\\"def\";\n"			
-		);
-	}
-	
-	public void test038() {
-		// check a unicode " in string. The expected " is escaped 
-		// because of the way the test framework works. It converts 
-		// special characters to a character representation before
-		// doing the compare. 
-		this.runParseTest(
-				"\"abc\\x22def\";\n",
-			"X.js",
-				"\"abc\\\"def\";\n"			
-		);
-	}
-	
-	public void test039() {
-		// check a unicode " in string. The expected " is escaped 
-		// because of the way the test framework works. It converts 
-		// special characters to a character representation before
-		// doing the compare. 
-		this.runParseTest(
-				"\"\\x22def\";\n",
-			"X.js",
-				"\"\\\"def\";\n"			
-		);
-	}
-	
-	public void test040() {
-		this.runParseTest(
-				"var onStart = function() { \n" +
-				"	this.onStart.fire();\n" + 
-				"	this.runtimeAttributes = {};\n" +
-				"	for (var attr in this.attributes) {\n" +
-				"		this.xyz(attr);\n" +
-				"	}\n" +
-				"};",
-			"X.js",
-				"var onStart = function () {\n" +
-				"  this.onStart.fire();\n" + 
-				"  this.runtimeAttributes = {};\n" +
-				"  for (var attr in this.attributes) \n" +
-				"    {\n" +
-				"      this.xyz(attr);\n" +
-				"    }\n" +
-				"};\n"		
-		);
-	}
-
-	public void test041() {
-		// check a unicode " in string. The expected " is escaped 
-		// because of the way the test framework works. It converts 
-		// special characters to a character representation before
-		// doing the compare. 
-		this.runParseTest(
-				"(function (){});\n",
-			"X.js",
-				"function () {\n};\n"			
-		);
-	}
-
-	
-	public void test042() {
-		// check a unicode " in string. The expected " is escaped 
-		// because of the way the test framework works. It converts 
-		// special characters to a character representation before
-		// doing the compare. 
-		this.runParseTest(
-				"function trim(oldString)\n" +
-				"{\n" + 
-				"var newString = oldString;\n" +
-				"var safety = 0;\n" +
-				"var safetyLimit = 10000;\n" +
-				"while(newString.charAt(0) == \" \" && safety < safetyLimit){\n" +
-				"	newString = newString.substring(1);\n" +
-				"	safety++;\n" +
-				"}\n" +
-				"while(newString.charAt(newString.length-1) == \" \" && safety < safetyLimit){\n" +
-				"newString = newString.substring(0, newString.length-1);\n" +
-				"	safety++\n" +
-				"	}\n" +
-				"return newString;\n" +
- 				"};",
-			"X.js",
-			
-			"function trim(oldString) {\n" +
-			"  var newString = oldString;\n" +
-			"  var safety = 0;\n" +
-			"  var safetyLimit = 10000;\n" +
-			"  while (((newString.charAt(0) == \" \") && (safety < safetyLimit)))    {\n" +
-			"      newString = newString.substring(1);\n" +
-			"      safety ++;\n" +
-			"    }\n" +
-			"  while (((newString.charAt((newString.length - 1)) == \" \") && (safety < safetyLimit)))    {\n" +
-			"      newString = newString.substring(0, (newString.length - 1));\n" +
-			"      safety ++;\n" +
-			"    }\n" +
-			"  return newString;\n" +
-			"}\n" +
-				";\n"		
-		);
-	}
-	
-	
-	
-
-	public void test043() {
-		this.runParseTest(
-				"Foo=function(){}\nbar=function(){}",
-			"X.js",
-				"Foo = function () {\n};\nbar = function () {\n};\n"			
-		);
-	}
-
-
-	public void test044() {
-		this.runParseTest(
-				"ptr[i]();",
-			"X.js",
-				"ptr[i]();\n"			
-		);
-	}
-
-  
-
-	public void test045() {
-		// make sure divide not seen as regex 
-		this.runParseTest(
-				"((weight + 1)/2)",
-			"X.js",
-				"((weight + 1) / 2);\n"			
-		);
-	}
-
-	public void test046() {
-		// make sure divide not seen as regex 
-		this.runParseTest(
-				"a=1,b=2",
-			"X.js",
-				"(a = 1), (b = 2);\n"			
-		);
-	}
-
-	public void test046b() {
-		// make sure divide not seen as regex 
-		this.runParseTest(
-				"a=1,funcall(0),5",
-			"X.js",
-				"(a = 1), funcall(0), 5;\n"			
-		);
-	}
-
-	public void test050() {
-		// make sure divide not seen as regex 
-		this.runParseTest(
-				"if (true) var c=1;",
-			"X.js",
-				"if (true)\n    var c = 1;\n"			
-		);
-	}
-  
-	public void test051() {
-		// method on function object 
-		this.runParseTest(
-				"var c=function(){}.bind();",
-			"X.js",
-				"var c = function () {\n}.bind();\n"			
-		);
-	}
-  
-	public void test051b() {
-		// method on function object 
-		this.runParseTest(
-					 
-				      "transforms = map(function (){\n"+
-				      "}.bind()).reject(function (){\n"+
-				      "});", 
-				      
-			"X.js",
-		      "transforms = map(function () {\n"+
-		      "}.bind()).reject(function () {\n"+
-		      "});\n"
-		);
-	}
-  
-
-	public void test051c() {
-		// method on function object 
-		this.runParseTest(
-					 
-			    "map(function(){"+
-			     "if(true) {"+
-			     "} else if(true)"+ 
-			       "var components = value.match(),"+
-			        "unit =  null;"+
-			   		"}.bind(this));",
-				      
-			"X.js",
-		    "map(function () {\n"+
-		     "  if (true)\n      {\n"+
-		     "      }\n  else\n      if (true)\n"+ 
-		       "          var components = value.match(),"+
-		        " unit = null;"+
-		   		"\n}.bind(this));\n"
-		);
-	}
-  
-	public void test051d() {
-		this.runParseTest(
-					 
-			    "function bb(){"+
-			     "if(true)"+ 
-			       "var components = value.match(),"+
-			        "unit =  null;"+
-			   		"};",
-				      
-			"X.js",
-		    "function bb() {\n"+
-		     "  if (true)\n"+ 
-		       "      var components = value.match(),"+
-		        " unit = null;"+
-		   		"\n}\n;\n"  
-		);
-	}
-  
-	  
-	public void testbug254572() {
-		this.runParseTest(
-					 
-				"var fields = ["+
-			     "               {name: 'id', type: 'int'},"+
-			      "             abc, userName, , 'forumtitle', 'forumid', 'author',"+
-				""+
-				"                {name: 'lastpost', mapping: 'lastpost', type: 'date',"+
-			    "dateFormat: 'timestamp'},"+
-			     "               'lastposter', 'excerpt'"+
-			      "          ];"+
-			   		";",
-				      
-			"X.js",
-			"var fields = ["+
-		     "{\n  name : 'id',\n  type : 'int'\n},"+
-		      " abc, userName, , 'forumtitle', 'forumid', 'author',"+
-			" {\n  name : 'lastpost',\n  mapping : 'lastpost',\n  type : 'date',\n"+
-		    "  dateFormat : 'timestamp'\n},"+
-		     " 'lastposter', 'excerpt'"+
-		      "];"+
-		   		"\n;\n"  
-		);
-	}
-  
-	public void testbug248145() {
-		this.runParseTest(
-					 
-				"return \n"+
-			     "a+b;"+
-			   		"",
-				      
-			"X.js",
-			"return ;\n"+
-		     "(a + b);"+
-		   		"\n"  
-		);
-	}
-  
-
-   
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicResolveTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicResolveTests.java
deleted file mode 100644
index 7d1b378..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicResolveTests.java
+++ /dev/null
@@ -1,1402 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-
-
-
-public class BasicResolveTests extends AbstractRegressionTest {
-
-	public BasicResolveTests(String name) {
-		super(name);
-
-	}
-	public void test002()	{	// local method 
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"	function foo(){\n" +
-						"	  abc(); \n" +
-						"}\n"
-				},
-				"----------\n" +
-				"1. ERROR in X.js (at line 2)\n" +
-				"	abc(); \n"+ 
-				"	^^^\n"+
-				"The function abc() is undefined\n"+ 
-				"----------\n"
-		);
-
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"	function foo(a){\n" +
-						"	  foo(a); \n" +
-						"}\n"
-				},
-				""
-		);
-
-	}
-
-	public void test003()	{	// local var 
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var i;" +
-						"i=1;\n" +
-						"\n"
-				},
-				""
-		);
-
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var i;\n" +
-						"i=j;\n" 
-				},
-				"----------\n" +
-				"1. ERROR in X.js (at line 2)\n" +
-				"	i=j;\n"+ 
-				"	  ^\n"+
-				"j cannot be resolved\n"+ 
-				"----------\n"
-		);
-
-
-	}
-
-	public void test004()	{	// system reference 
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var win=debugger;\n" +
-						"Object();\n" +
-						"\n"
-				},
-				""
-		);
-
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var i;\n" +
-						"i=j;\n" 
-				},
-				"----------\n" +
-				"1. ERROR in X.js (at line 2)\n" +
-				"	i=j;\n"+ 
-				"	  ^\n"+
-				"j cannot be resolved\n"+ 
-				"----------\n"
-		);
-
-
-	}
-
-	public void test005()	{	// system reference 
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"Object();\n" +
-						"\n"
-				},
-				""
-		);
-
-
-	}
-
-
-//	With inferred types
-
-	public void test010()	{	// field reference 
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"MyClass.prototype.someMethod = MyClass_someMethod;"+ 
-						"function MyClass(){}"+
-						"function MyClass_someMethod(){}"+
-						"var myClassObj = new MyClass();\n"+
-						"myClassObj.someMethod();\n"
-				},
-				""
-		);
-
-
-	}
-
-	public void test011()	{	// field reference 
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function MyClass() {\n"+
-						"  this.url = \"\";\n"+
-						"  this.activate = function(){}\n"+
-						"}\n"+
-						"var myClassObj = new MyClass();\n"+
-						"var u=myClassObj.url;\n"+
-						"\n"
-				},
-				""
-		);
-
-
-	}
-
-
-	public void test012()	{	// field reference 
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function Bob(firstname, lastname) {\n" +
-						"   this.Firstname = firstname;\n" +
-						"   this.Lastname = lastname;\n" +
-						"}\n" +
-						"Bob.prototype.name = function () {return this.Firstname + this.Lastname;};\n",
-				},
-				""
-		);
-
-
-	}
-
-	public void test013()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var SingleQuote = {\n" +
-						"   Version: '1.1-beta2' \n" +
-						"}\n"
-				},
-				""
-		);
-
-	}
-
-	public void test014()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var o = {x:1, y: 2, name: \"print\" };\n" +
-						"o.Z = 0; \n"
-				},
-				""
-		);
-
-	}
-
-
-
-	public void test020()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function foo() {\n" +
-						"		var t = new Test();\n" +
-						"}\n" +
-						"   function Test()\n" +
-						"{\n" +
-						"}\n"
-				},
-				""
-		);
-
-	}
-	public void test021()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function foo() {\n" +
-						"	var i=1;\n" +
-						"	if (2>i )\n" +
-						"		foo();\n" +
-						"}\n" 
-				},
-				""
-		);
-
-	}
-
-	public void test022()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function foo() {\n" +
-						"	var ff=function(p) \n" +
-						"	{var c=p;};\n" +
-						"	ff(1);\n" +
-						"}\n" 
-				},
-				""
-		);
-
-	}
-
-	public void test022b()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"	var ff=function(p) \n" +
-						"	{var c=p;};\n" +
-						"	ff(1);\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-
-	public void test023()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"	var ff=new String();\n" +
-						"" 
-				},
-				""
-		);
-
-	}		
-
-	public void test024()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" function bar() {;\n" +
-						"return Test.x;\n" +
-						"}\n" +
-						"Test.prototype=new Object();\n" +
-						"Test.x=1;\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test025()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" function g() {\n" +
-						"return null;\n" +
-						"}\n" +
-						"function foo() {\n" +
-						"	g();\n" +
-						"}\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test026()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var i=[10];\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-
-	public void test027()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" function bar(vv) {;\n" +
-						"return vv%4;\n" +
-						"}\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test028()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var c=false;\n" +
-						"var d=!c;\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test029()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var d=new Date(1);\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-
-	public void test030()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function foo(e) {\n" +
-						"var x= 10, z = null, i, j;\n" +
-						"}\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-	public void test031()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function OBJ(){}\n" +
-						"var o = new OBJ();\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test032()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var foo;\n" +
-						" foo.onMouseDown = function () { return 1; };\n" +
-						" foo.onMouseDown();\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test032b()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var foo;\n" +
-						" foo.level1=new Object();\n" +
-						" foo.level1.onMouseDown = function () { return 1; };\n" +
-						" foo.level1.onMouseDown();\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-
-	public void test033()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" if (typeof abc == \"undefined\") {}\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test034()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" if (true) {\n" +
-						"   var abc=1;}\n" +
-						" var d=abc;\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test035()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" function foo() {\n" +
-						"   var vv=arguments;}\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-
-	public void test036()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" function foo() {\n" +
-						"   function inner(){}\n" +
-						"   inner();\n" +
-						"   }\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-
-	public void test037()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" var s = new String();\n" +
-						" var sub=s.substring(0,0);\n" +
-						" var i=sub.length;\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test038()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" s = new String();\n" +
-						" sub=s.substring(0,0);\n" +
-						" i=sub.length;\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-
-	public void test039()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" var s = \"\";\n" +
-						" with (s) {\n" +
-						"   var i=length;\n" +
-						" }\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test040()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" var s = \"\";\n" +
-						" with (s) {\n" +
-						"   var i=charAt(0);\n" +
-						" }\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	/*
-	 * Field reference error testing
-	 */
-	public void test041()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var x = {};\n" +
-						"var b=x;\n;"+
-						"b.a=\"\";\n;"+
-						"x.a = \"\""
-				},
-				""
-		);
-
-	}
-
-	public void test042()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var x = {};\n" +
-						"x.a.b = \"\""
-				},
-				"----------\n" +
-				"1. WARNING in X.js (at line 2)\n" +
-				"	x.a.b = \"\"\n"+ 
-				"	  ^\n"+
-				"a cannot be resolved or is not a field\n"+ 
-				"----------\n"
-		);
-	}
-
-	public void test043()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var x = null;\n" +
-						"x>3;"+
-						"var y;\n" +
-						"y=null;\n" +
-						"y>3"+
-						""
-				},
-				""
-		);
-
-	}
-
-	public void test044()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" if (typeof abc == \"undefined\") { abc=1;}\n" +
-						" var c= abc;\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	public void test045()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						" var a,b=1;\n" +
-						" var c= b;\n" +
-						" function abc(){" +
-						" var d= 1,e=4;\n" +
-						" var f=e;}\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	
-	public void test046()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function debug2() {\n" +
-						" var keyFunct = null;\n" +
-						" keyFunct = function () {};\n" +
-						"  keyFunct();\n" +
-						"  }\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-
-	
-	public void test046b()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function debug2() {\n" +
-						" var keyFunct = null;\n" +
-						" keyFunct = new function () {};\n" +
-						"  keyFunct();\n" +
-						"  }\n" +
-						"" 
-				},
-				""
-		);
-
-	}
-	
-
-	public void test047()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function Config() {}\n" +
-						"Config.printDocTypes = function() { throw new (\"doctype 1.\"); };\n" +
-						"Config.prototype.toString = function () { return \"\"; };\n" +
-						"function main() {\n" +
-						"    Config.printDocTypes();\n" +
-						"}   \n" +
-						"" 
-				},
-				""
-		);
-	}
-
-
-	public void test048()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function Config2() {};\n" +
-						"Config2.INPUT_DIR = \"\";\n" +
-						"Config2.OUTPUT_DIR = Config2.INPUT_DIR  ;\n" +
-						"Config2.getNum = function() { return 1; }\n" +
-						"function numberGen() { \n" +
-						"    return Config2.getNum(); \n" +
-						"}   \n" +
-						"" 
-				},
-				""
-		);
-	}
-
-	public void test049()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var arr=[];\n" +
-						"var ref=arr.length;\n" +
-						"var o=arr.pop();\n" +
-						"" 
-				},
-				""
-		);
-	}
-
-
-	public void test050()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function getDateTime() {\n" +
-						"	    this.ctime = new Object();\n" +
-						"	    this.ctime.getDay = new function() { return \"Mon\"; };\n" +
-						"	    return this;\n" +
-						"	}\n" +
-						"	function debug3() {\n" +
-						"	    var newObj = getDateTime();\n" +
-						"	    return newObj.ctime.getDay();\n" +
-						"	}\n" +
-						"" 
-				},
-				""
-		);
-	}
-
-	public void test050b()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function getDateTime() {\n" +
-						"	    this.ctime = new Object();\n" +
-						"	    this.ctime.getDay = new function() { return \"Mon\"; };\n" +
-						"	    return this;\n" +
-						"	}\n" +
-						"	function debug3() {\n" +
-						"	    var newObj = new getDateTime();\n" +
-						"	    return newObj.ctime.getDay();\n" +
-						"	}\n" +
-						"" 
-				},
-				""
-		);
-	}
-
-	   
-	public void test051()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var ns = {};\n"+ 
-						"ns.foo = function(){\n" +
-						"};\n" +
-						"ns.foo.prototype.bar = \"\";\n" +
-						"ns.foo.prototype.bar2 = function(){\n" +
-						"  return \"\";\n" +
-						"}\n"+
-						"c=new ns.foo();\n"+
-						"c.bar2();\n"+
-						"i=c.bar;\n"+
-						"" 
-				},
-				""
-		);
-	}
-
-
-	public void test052()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var myObject=new Object();\n"+ 
-						"myObject.ctor=   function(){\n" +
-						"};\n" +
-						"myObject.ctor.prototype.bar = \"\";\n" +
-						"myObject.ctor.prototype.bar2 = function(){\n" +
-						"  return \"\";\n" +
-						"}\n"+
-						"c=new myObject.ctor();\n"+
-						"c.bar2();\n"+
-						"i=c.bar;\n"+
-						"" 
-				},
-				""
-		);
-	}
-
-	
-
-	public void test053()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function funccall(pp){}\n"+ 
-						"funccall({\n"+ 
-						"meth : function(){  \n" +
-						"  var c=this.i; },\n" +
-						" i : 1 \n" +
-						"});\n"+
-						"" 
-				},
-				""
-		);
-	}
-	
-	/*public void testbug259187()	{	 
-
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var params = \"some?string\".split('?');\n" +
-				        "var base = params.shift();"
-				},
-				"----------\n" + 
-		"1. WARNING in X.js (at line 1)\n" + 
-		"	var params = \"some?string\".split(\'?\');\n" + 
-		"	             ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Wrong number of arguments for the function split (), expecting 2 argument(s), but there was 1 \n" + 
-		"----------\n"
-		);
-	}
-	
-	public void testbug259023()	{	 
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal", "error");
-		
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var myObject = {\n" +
-							"val1: \"test1\",\n" +
-							"val2: \"test2\"\n" +
-						"};\n" +
-						"myObject.val1 = \"test3\";"
-				},
-				"", null, true, custom
-		);
-	}
-	
-	public void testbug259023_2()	{	 
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal", "error");
-		
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var myObject = \"test3\";\n" +
-						"if(myObject == \"test3\") {}"
-				},
-				"", null, true, custom
-		);
-	}
-	
-	public void testbug251374()	{	
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.nullReference", "error");
-		
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var a = null;\n" +
-						"function foo() { a.toString();}\n" +
-						"a = 1; foo();"
-				},
-				"", null, true, custom
-		);
-	}
-	
-	public void testChris()	{	 
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal", "error");
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var square = function(x) {return x*x;};" +
-						"square(2);",
-				},
-				"", null, true, custom
-		);
-	}
-
-	public void testChris2()	{	 
-		Map custom = new HashMap();
-		custom.put("org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal", "error");
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var square = \"chris\";" +
-						"square.split(\".\", 1);",
-				},
-				"", null, true, custom
-		);
-	}*/
-
-	public void test054()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function func1(pp){}\n"+ 
-						"func1();\n"+ 
-						"function obj(){}\n"+ 
-						"var o=new obj(1);\n"+ 
-						"" 
-				},
-				"----------\n" + 
-				"1. WARNING in X.js (at line 2)\n" + 
-				"	func1();\n" + 
-				"	^^^^^^^\n" + 
-				"Wrong number of arguments for the function func1 (), expecting 1 argument(s), but there was 0 \n" + 
-				"----------\n" + 
-				"2. WARNING in X.js (at line 4)\n" + 
-				"	var o=new obj(1);\n" + 
-				"	      ^^^^^^^^^^\n" + 
-				"Wrong number of arguments for the function obj (), expecting 0 argument(s), but there was 1 \n" + 
-				"----------\n"
-		);
-	}
-
-	
-	public void test055()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function func1(base,mixin){\n"+ 
-						"var bp = (base||0).prototype;\n"+ 
-						"}\n"+ 
-						"" 
-				},
-				""
-		);
-	}
-		
-	
-	public void test056()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var arr=[];\n"+ 
-						"arr.push(1);\n"+ 
-						"" 
-				},
-				""
-		);
-	}
-	
-	public void test057()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var arr= {\n"+ 
-						"  func: function(){ \n"+ 
-						"       this.func();\n"+ 
-						"   } \n"+ 
-						"};\n"+ 
-						"" 
-				},
-				""
-		);
-	}
-	
-	
-	public void test058()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var cls= {};\n"+ 
-						"cls.arr={};\n"+ 
-						"cls.arr[\"ss\"]=1;\n"+ 
-						"var dd=cls.arr[\"ssd\"];\n"+ 
-						"" 
-				},
-				""
-		);
-	}
-	
-	
-	public void test059()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						 "/**\n"
-						+ " * Valid class javadoc\n"
-						+ " * @param {String | Number} p1 param def\n"
-						+ " */\n"
-						+"function foo(p1){\n"  
-						+"p1.length;\n" 
-						+"p1.toPrecision(1);\n" 
-						+"}\n" 
-						+"" 
-				},
-				""
-		);
-	}
-	
-	
-	public void test060()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function foo(p1){\n"  
-						+"p1();\n" 
-						+"}\n" 
-						+"" 
-				},
-				""
-		);
-	}
-
-	public void test061()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"function foo(){\n"
-						+"p1=1;\n" 
-						+"p1();\n" 
-						+"}\n" 
-						+"" 
-				},
-				"----------\n" + 
-				"1. WARNING in X.js (at line 3)\n" + 
-				"	p1();\n" + 
-				"	^^\n" + 
-				"p1 is not a function \n" + 
-				"----------\n"
-		);
-	}
-	
-	
-	public void test062()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var cc=function(){\n"  
-						+"  function inner(){}\n" 
-						+"  var dd=inner;\n" 
-						+"}\n" 
-						+"" 
-				},
-				""
-		);
-	}
-
-	
-	public void test063()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var cc=function(){\n"  
-						+"  var ii;\n" 
-						+"  function inner(){\n" 
-						+"    var dd=ii;\n" 
-						+"  }\n" 
-						+"}\n" 
-						+"" 
-				},
-				"----------\n" + 
-		"1. WARNING in X.js (at line 4)\n" + 
-		"	var dd=ii;\n" + 
-		"	       ^^\n" + 
-		"The local variable ii may not have been initialized\n" + 
-		"----------\n"
-		);
-	}
-	
-	public void test064()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						 "  function inner(){\n" 
-						+"  var ii=0,i2=ii+1;\n" 
-//						+"  var ii=0;\n" 
-//						+"  var i2=ii+1;\n" 
-						+"}\n" 
-						+"" 
-				},
-				""
-		);
-	}
- 
-	public void test065()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						 "  function inner(aArray){\n" 
-						+"  var number = 0;\n" 
-						+"  number -= aArray.length;\n" 
-						+"  number += aArray.length;\n" 
-						+"  return number;\n" 
-						+"}\n" 
-						+"" 
-				},
-				""
-		);
-	}
-
-	public void test066()	{
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						 "  TestClass = function() {\n" 
-						+"  }\n" 
-						+"  TestClass.prototype = new Object();\n" 
-						+"  ns=new Object();\n" 
-						+"  ns.TestClass = function() {\n" 
-						+"  }\n" 
-						+"  ns.TestClass.prototype = new Object();\n" 
-						+"" 
-				},
-				""
-		);
-	}
-
-	public void test067()	{	 
-
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"	function foo(a){\n" +
-						"	  doo(a); \n" +
-						"}\n",
-						"Y.js",
-						"	function doo(a){\n" +
-						"	  foo(a); \n" +
-						"}\n"
-				},
-				""
-		);
-
-	}
-
-
-	public void test068()	{	 
-
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"	function foo(param1 , param2){\n" +
-						"	if(\"\" || 0) {} \n" +
-						"	 var value = param1 || param2; \n" +
-						"	 if(param1 || param2) {} \n" +
-						"}\n",
-				},
-				""
-		);
-
-	}
-	
-	public void test070()	{	 
-
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"	var s=new String();\n" +
-						"	s.length=1; \n" +
-						"\n",
-				},
-				""
-		);
-	}
-
-	public void testbug255428()	{	 
-
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"	 function MyClass(){}\n" +
-						" MyClass.prototype = {\n" +
-						"    a : 0,\n" +
-						"     myfunc : function(){} \n" +
-						" };\n" +
-						"function test() { \n" +
-						"     var lObj = new MyClass();\n" +
-						"     lObj.a = 2;\n" +
-						"     lObj.myfunc();\n" +
-						"}\n",
-				},
-				""
-		);
-	}
-	
-	public void testbug259187_String_slice()	{	 
-		// String.split() argument count
-		this.runNegativeTest(
-					new String[] {
-							"X.js",
-							"var params = \"some?string\".slice('?');\n"
-					},
-					"----------\n" + 
-			"1. WARNING in X.js (at line 1)\n" + 
-			"	var params = \"some?string\".slice(\'?\');\n" + 
-			"	             ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Wrong number of arguments for the function slice (), expecting 2 argument(s), but there was 1 \n" + 
-			"----------\n"
-			);
-		
-		// check return type and argument count
-		runBasicTest(new String[] {
-			"Yprime.js",
-			"var aString = \"some?string\".slice(2, 4);\n" +
-			"aString.length;" 
-		});
-	}
-
-	public void testbug259187_String_split()	{	 
-		// String.split() argument count
-		this.runNegativeTest(
-					new String[] {
-							"Y.js",
-							"var params = \"some?string\".split('?');\n" +
-							"var base = params.shift();"
-					},
-					"----------\n" + 
-			"1. WARNING in Y.js (at line 1)\n" + 
-			"	var params = \"some?string\".split(\'?\');\n" + 
-			"	             ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Wrong number of arguments for the function split (), expecting 2 argument(s), but there was 1 \n" + 
-			"----------\n"
-			);
-		
-		// check return type and argument count
-		runBasicTest(new String[] {
-			"Yprime.js",
-			"var count = \"some?string\".split(\",\", 3);\n" +
-			"count.length;" 
-		});
-	}
-
-	public void testbug259187_String_substring() {
-		// String.substring() argument count
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"var count = \"some?string\".substring('?');" 
-					},
-					"----------\n" + 
-			"1. WARNING in Z.js (at line 1)\n" + 
-			"	var count = \"some?string\".substring(\'?\');\n" + 
-			"	            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Wrong number of arguments for the function substring (), expecting 2 argument(s), but there was 1 \n" + 
-			"----------\n"
-			);
-		
-		// check return type and argument count
-		runBasicTest(new String[] {
-			"Zprime.js",
-			"var count = \"some?string\".substring(4, 3);\n" +
-			"count.substring(4, 3);" 
-		});
-	}
-	
-	public void Xtestbug196377_1() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"(function() {\n" +
-							"hasClass();\n" +
-							"function hasClass() {}\n" +
-							"})();"
-					},
-					""
-			);
-	}
-	
-	public void Xtestbug196377_2() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"top();" +
-							"function top() {\n" +
-							"inner();\n" +
-							"function inner() {}\n" +
-							"}"
-					},
-					""
-			);
-	}
-	
-	public void testbug196377_3() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"top();\n" +
-							"function top() {}\n"
-					},
-					""
-			);
-	}
-	
-	public void testbug196377_4() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"top(1);\n" +
-							"function top(a) {}\n"
-					},
-					""
-			);
-	}
-	
-	public void testbug283663() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"var myNum = 3;\n" +
-							"if(myNum === undefined){}\n" +
-							"if(myNum == undefined){}\n"
-					},
-					""
-			);
-	}
-	
-	public void testbug262728_A() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"function top() {\n"+
-							"var x = function() {};\n"+
-							"var x1 = 3;\n"+
-							"inner();\n"+
-							"function inner() {\n"+
-							"var p = x1 + 3;\n"+
-							"x();\n"+
-							"inner2();\n"+
-							"function inner2() {}\n"+
-							"inner2();\n"+
-							"}\n"+
-							"x();\n"+
-							"top();\n"+
-							"}\n"+
-							"top();"
-					},
-					""
-			);
-	}
-	
-	public void testbug262728_B() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"function class2() {\n"+
-							"this.publicFunction = function() {\n"+
-							"privateFunction();\n"+
-							"};\n"+
-							"function privateFunction() {\n"+
-							"return null;\n"+
-							"};\n"+
-							"}\n"+
-							"function class1() {\n"+
-							"function privateFunction() {\n"+
-							"return null;\n"+
-							"};\n"+
-							"this.publicFunction = function() {\n"+
-							"privateFunction();\n"+
-							"};\n"+
-							"}"
-					},
-					""
-			);
-	}
-	public void testbug262728_C() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"inner();\n"+
-							"function top() {\n"+
-							"inner();\n"+
-							"function inner(){};\n"+
-							"inner();\n"+
-							"}\n"+
-							"inner();"
-					},
-					"----------\n" + 
-			"1. ERROR in Z.js (at line 1)\n" + 
-			"	inner();\n" + 
-			"	^^^^^\n" + 
-			"The function inner() is undefined\n" + 
-			"----------\n" +
-			"2. ERROR in Z.js (at line 7)\n" + 
-			"	inner();\n" + 
-			"	^^^^^\n" + 
-			"The function inner() is undefined\n" + 
-			"----------\n"
-			);
-	}
-	
-	public void testbug262728_D() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"(function() {\n"+
-							"privateFunction();\n"+
-							"var x;\n"+
-							"function privateFunction() {\n"+
-							"x + 3;\n"+
-							"}\n"+
-							"})();"
-					},
-					"----------\n" + 
-		"1. WARNING in Z.js (at line 5)\n" + 
-		"	x + 3;\n" + 
-		"	^\n" + 
-		"The local variable x may not have been initialized\n" + 
-		"----------\n"
-			);
-	}
-	
-	public void testbug269203() {
-		this.runNegativeTest(
-					new String[] {
-							"Z.js",
-							"function Square() {}\n" +
-							"var sq = new Square();\n" +
-							"sq.area = function() {};"
-					},
-					""
-			);
-	}
-
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/CharOperationTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/CharOperationTest.java
deleted file mode 100644
index f52a2fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/CharOperationTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-
-public class CharOperationTest extends AbstractRegressionTest {
-	
-public CharOperationTest(String name) {
-	super(name);
-}
-
-public void test001() {
-	 char[] array = { 'a' , 'b', 'b', 'c', 'a', 'b', 'c', 'a' };
-	 char[] toBeReplaced = { 'b', 'c' };
-	 char replacementChar = 'a';
-	 int  start = 4;
-	 int  end = 8;
-	 CharOperation.replace(array, toBeReplaced, replacementChar, start, end);
-	 char[] result = { 'a' , 'b', 'b', 'c', 'a', 'a', 'a', 'a' };
-
-	 for (int i = 0, max = array.length; i < max; i++) {
-		 assertEquals("Wrong value at " + i, result[i], array[i]);
-	 }
-}
-public void test002() {
-	 char[] array = { 'a' , 'b', 'b', 'c', 'a', 'b', 'c', 'a' };
-	 char[] toBeReplaced = { 'b', 'c' };
-	 char replacementChar = 'a';
-	 int  start = 2;
-	 int  end = 3;
-	 CharOperation.replace(array, toBeReplaced, replacementChar, start, end);
-	 char[] result = { 'a' , 'b', 'a', 'c', 'a', 'b', 'c', 'a' };
-
-	 for (int i = 0, max = array.length; i < max; i++) {
-		 assertEquals("Wrong value at " + i, result[i], array[i]);
-	 }
-}
-public void test003() {
-	 char[] second = { 'a' , 'b', 'b', 'c', 'a', 'b', 'c', 'a' };
-	 char[] first = { 'b', 'c', 'a' };
-	 int  start = 2;
-	 int  end = 5;
-	 assertTrue(CharOperation.equals(first, second, start, end, true));
-}
-public void test004() {
-	 char[] second = { 'A' };
-	 char[] first = { 'a' };
-	 int  start = 0;
-	 int  end = 1;
-	 assertTrue(CharOperation.equals(first, second, start, end, false));
-}
-public void test005() {
-	 char[] array = { 'a' , 'b', 'b', 'c', 'a', 'b', 'c', 'a' };
-	 char[] toBeReplaced = { 'b', 'c' };
-	 char replacementChar = 'a';
-	 CharOperation.replace(array, toBeReplaced, replacementChar);
-	 char[] result = { 'a' , 'a', 'a', 'a', 'a', 'a', 'a', 'a' };
-
-	 for (int i = 0, max = array.length; i < max; i++) {
-		 assertEquals("Wrong value at " + i, result[i], array[i]);
-	 }
-}
-public void test006() {
-	 char[] array = { 'a' , 'a', 'a', 'a', 'a', 'b', 'c', 'a' };
-	 char[] toBeReplaced = { 'a', 'a' };
-	 char[] replacementChar = { 'a' };
-	 char[] result = CharOperation.replace(array, toBeReplaced, replacementChar);
-	 char[] expectedValue = { 'a' , 'a', 'a', 'b', 'c', 'a' };
-	 assertEquals("Wrong size", expectedValue.length, result.length);
-	 for (int i = 0, max = expectedValue.length; i < max; i++) {
-		 assertEquals("Wrong value at " + i, result[i], expectedValue[i]);
-	 }
-}
-// test compareTo(char[], char[])
-public void test007() {
-	char[] array = { 'a' , 'a', 'a', 'a', 'a', 'b', 'c', 'a' };
-	char[] array2 = { 'a', 'a' };
-	assertTrue(CharOperation.compareTo(array, array2) > 0);
-
-	 array2 = new char[] { 'a', 'a' };
-	 array = new char[] { 'a' , 'a', 'a', 'a', 'a', 'b', 'c', 'a' };
-	 assertTrue(CharOperation.compareTo(array2, array) < 0);
-
-	array = new char[] { 'a' , 'a', 'a', 'a', 'a', 'b', 'c', 'a' };
-	array2 = new char[] { 'a' , 'a', 'a', 'a', 'a', 'b', 'c', 'a' };
-	assertTrue(CharOperation.compareTo(array, array2) == 0);
-	assertTrue(CharOperation.compareTo(array2, array) == 0);
-
-	array = new char[] { 'a' , 'b', 'c' };
-	array2 = new char[] { 'a' , 'b', 'c', 'a', 'a'};
-	assertTrue(CharOperation.compareTo(array, array2) < 0);
-
-	array = new char[] { 'a' , 'b', 'c' };
-	array2 = new char[] { 'a' , 'b', 'd'};
-	assertTrue(CharOperation.compareTo(array, array2) < 0);
-}
-public static Class testClass() {
-	return CharOperationTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/CompilerInvocationTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/CompilerInvocationTests.java
deleted file mode 100644
index 6b3aa3d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/CompilerInvocationTests.java
+++ /dev/null
@@ -1,791 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.lang.reflect.Field;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.ICompilerRequestor;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;
-
-import junit.framework.Test;
-
-/**
- * This class is meant to gather test cases related to the invocation of the
- * compiler, be it at an API or non API level.
- */
-public class CompilerInvocationTests extends AbstractRegressionTest {
-
-public CompilerInvocationTests(String name) {
-    super(name);
-}
-
-	// Static initializer to specify tests subset using TESTS_* static variables
-  	// All specified tests which does not belong to the class are skipped...
-  	// Only the highest compliance level is run; add the VM argument
-  	// -Dcompliance=1.4 (for example) to lower it if needed
-  	static {
-//    	TESTS_NAMES = new String[] { "test001" };
-//    	TESTS_NUMBERS = new int[] { 1 };   
-//    	TESTS_RANGE = new int[] { 1, -1 }; 
-//  	TESTS_RANGE = new int[] { 1, 2049 }; 
-//  	TESTS_RANGE = new int[] { 449, 451 }; 
-//    	TESTS_RANGE = new int[] { 900, 999 }; 
-  	}
-
-public static Test suite() {
-    return buildAllCompliancesTestSuite(testClass());
-}
-  
-public static Class testClass() {
-    return CompilerInvocationTests.class;
-}
-
-// irritant vs warning token
-public void test001_irritant_warning_token() {
-	String [] tokens = new String[64];
-	Map matcher = new HashMap();
-	long irritant;
-	String token;
-	for (int i = 0; i < 64; i++) {
-		if ((token = tokens[i] = CompilerOptions.warningTokenFromIrritant(irritant = 1L << i)) != null) {
-			matcher.put(token, token);
-			assertTrue((irritant & CompilerOptions.warningTokenToIrritant(token)) != 0);
-		}
-	}
-	String [] allTokens = CompilerOptions.warningTokens;
-	int length = allTokens.length;
-	matcher.put("all", "all"); // all gets undetected in the From/To loop
-	assertEquals(allTokens.length, matcher.size());
-	for (int i = 0; i < length; i++) {
-		assertNotNull(matcher.get(allTokens[i]));
-	}
-}
-
-// problem categories - check that none is left unspecified
-public void test002_problem_categories() {
-	try {
-		Class iProblemClass;
-		Map excludedProblems = new HashMap();
-		// categories
-		excludedProblems.put("ObjectHasNoSuperclass", null);
-		excludedProblems.put("UndefinedType", null);
-		excludedProblems.put("NotVisibleType", null);
-		excludedProblems.put("AmbiguousType", null);
-		excludedProblems.put("UsingDeprecatedType", null);
-		excludedProblems.put("InternalTypeNameProvided", null);
-		excludedProblems.put("UnusedPrivateType", null);
-		excludedProblems.put("IncompatibleTypesInEqualityOperator", null);
-		excludedProblems.put("IncompatibleTypesInConditionalOperator", null);
-		excludedProblems.put("TypeMismatch", null);
-		excludedProblems.put("IndirectAccessToStaticType", null);
-		excludedProblems.put("MissingEnclosingInstanceForConstructorCall", null);
-		excludedProblems.put("MissingEnclosingInstance", null);
-		excludedProblems.put("IncorrectEnclosingInstanceReference", null);
-		excludedProblems.put("IllegalEnclosingInstanceSpecification", null);
-		excludedProblems.put("CannotDefineStaticInitializerInLocalType", null);
-		excludedProblems.put("OuterLocalMustBeFinal", null);
-		excludedProblems.put("CannotDefineInterfaceInLocalType", null);
-		excludedProblems.put("IllegalPrimitiveOrArrayTypeForEnclosingInstance", null);
-		excludedProblems.put("EnclosingInstanceInConstructorCall", null);
-		excludedProblems.put("AnonymousClassCannotExtendFinalClass", null);
-		excludedProblems.put("CannotDefineAnnotationInLocalType", null);
-		excludedProblems.put("CannotDefineEnumInLocalType", null);
-		excludedProblems.put("NonStaticContextForEnumMemberType", null);
-		excludedProblems.put("UndefinedName", null);
-		excludedProblems.put("UninitializedLocalVariable", null);
-		excludedProblems.put("VariableTypeCannotBeVoid", null);
-		excludedProblems.put("VariableTypeCannotBeVoidArray", null);
-		excludedProblems.put("CannotAllocateVoidArray", null);
-		excludedProblems.put("RedefinedLocal", null);
-		excludedProblems.put("RedefinedArgument", null);
-		excludedProblems.put("DuplicateFinalLocalInitialization", null);
-		excludedProblems.put("NonBlankFinalLocalAssignment", null);
-		excludedProblems.put("ParameterAssignment", null);
-		excludedProblems.put("FinalOuterLocalAssignment", null);
-		excludedProblems.put("LocalVariableIsNeverUsed", null);
-		excludedProblems.put("ArgumentIsNeverUsed", null);
-		excludedProblems.put("BytecodeExceeds64KLimit", null);
-		excludedProblems.put("BytecodeExceeds64KLimitForClinit", null);
-		excludedProblems.put("TooManyArgumentSlots", null);
-		excludedProblems.put("TooManyLocalVariableSlots", null);
-		excludedProblems.put("TooManySyntheticArgumentSlots", null);
-		excludedProblems.put("TooManyArrayDimensions", null);
-		excludedProblems.put("BytecodeExceeds64KLimitForConstructor", null);
-		excludedProblems.put("UndefinedField", null);
-		excludedProblems.put("NotVisibleField", null);
-		excludedProblems.put("AmbiguousField", null);
-		excludedProblems.put("UsingDeprecatedField", null);
-		excludedProblems.put("NonStaticFieldFromStaticInvocation", null);
-		excludedProblems.put("ReferenceToForwardField", null);
-		excludedProblems.put("NonStaticAccessToStaticField", null);
-		excludedProblems.put("UnusedPrivateField", null);
-		excludedProblems.put("IndirectAccessToStaticField", null);
-		excludedProblems.put("UnqualifiedFieldAccess", null);
-		excludedProblems.put("FinalFieldAssignment", null);
-		excludedProblems.put("UninitializedBlankFinalField", null);
-		excludedProblems.put("DuplicateBlankFinalFieldInitialization", null);
-		excludedProblems.put("LocalVariableHidingLocalVariable", null);
-		excludedProblems.put("LocalVariableHidingField", null);
-		excludedProblems.put("FieldHidingLocalVariable", null);
-		excludedProblems.put("FieldHidingField", null);
-		excludedProblems.put("ArgumentHidingLocalVariable", null);
-		excludedProblems.put("ArgumentHidingField", null);
-		excludedProblems.put("MissingSerialVersion", null);
-		excludedProblems.put("UndefinedMethod", null);
-		excludedProblems.put("NotVisibleMethod", null);
-		excludedProblems.put("AmbiguousMethod", null);
-		excludedProblems.put("UsingDeprecatedMethod", null);
-		excludedProblems.put("DirectInvocationOfAbstractMethod", null);
-		excludedProblems.put("VoidMethodReturnsValue", null);
-		excludedProblems.put("MethodReturnsVoid", null);
-		excludedProblems.put("MethodRequiresBody", null);
-		excludedProblems.put("ShouldReturnValue", null);
-		excludedProblems.put("MethodButWithConstructorName", null);
-		excludedProblems.put("MissingReturnType", null);
-		excludedProblems.put("BodyForNativeMethod", null);
-		excludedProblems.put("BodyForAbstractMethod", null);
-		excludedProblems.put("NoMessageSendOnBaseType", null);
-		excludedProblems.put("ParameterMismatch", null);
-		excludedProblems.put("NoMessageSendOnArrayType", null);
-		excludedProblems.put("NonStaticAccessToStaticMethod", null);
-		excludedProblems.put("UnusedPrivateMethod", null);
-		excludedProblems.put("IndirectAccessToStaticMethod", null);
-		excludedProblems.put("UndefinedConstructor", null);
-		excludedProblems.put("NotVisibleConstructor", null);
-		excludedProblems.put("AmbiguousConstructor", null);
-		excludedProblems.put("UsingDeprecatedConstructor", null);
-		excludedProblems.put("UnusedPrivateConstructor", null);
-		excludedProblems.put("InstanceFieldDuringConstructorInvocation", null);
-		excludedProblems.put("InstanceMethodDuringConstructorInvocation", null);
-		excludedProblems.put("RecursiveConstructorInvocation", null);
-		excludedProblems.put("ThisSuperDuringConstructorInvocation", null);
-		excludedProblems.put("InvalidExplicitConstructorCall", null);
-		excludedProblems.put("UndefinedConstructorInDefaultConstructor", null);
-		excludedProblems.put("NotVisibleConstructorInDefaultConstructor", null);
-		excludedProblems.put("AmbiguousConstructorInDefaultConstructor", null);
-		excludedProblems.put("UndefinedConstructorInImplicitConstructorCall", null);
-		excludedProblems.put("NotVisibleConstructorInImplicitConstructorCall", null);
-		excludedProblems.put("AmbiguousConstructorInImplicitConstructorCall", null);
-		excludedProblems.put("UnhandledExceptionInDefaultConstructor", null);
-		excludedProblems.put("UnhandledExceptionInImplicitConstructorCall", null);
-		excludedProblems.put("ArrayReferenceRequired", null);
-		excludedProblems.put("NoImplicitStringConversionForCharArrayExpression", null);
-		excludedProblems.put("StringConstantIsExceedingUtf8Limit", null);
-		excludedProblems.put("NonConstantExpression", null);
-		excludedProblems.put("NumericValueOutOfRange", null);
-		excludedProblems.put("IllegalCast", null);
-		excludedProblems.put("InvalidClassInstantiation", null);
-		excludedProblems.put("CannotDefineDimensionExpressionsWithInit", null);
-		excludedProblems.put("MustDefineEitherDimensionExpressionsOrInitializer", null);
-		excludedProblems.put("InvalidOperator", null);
-		excludedProblems.put("CodeCannotBeReached", null);
-		excludedProblems.put("CannotReturnInInitializer", null);
-		excludedProblems.put("InitializerMustCompleteNormally", null);
-		excludedProblems.put("InvalidVoidExpression", null);
-		excludedProblems.put("MaskedCatch", null);
-		excludedProblems.put("DuplicateDefaultCase", null);
-		excludedProblems.put("UnreachableCatch", null);
-		excludedProblems.put("UnhandledException", null);
-		excludedProblems.put("IncorrectSwitchType", null);
-		excludedProblems.put("DuplicateCase", null);
-		excludedProblems.put("DuplicateLabel", null);
-		excludedProblems.put("InvalidBreak", null);
-		excludedProblems.put("InvalidContinue", null);
-		excludedProblems.put("UndefinedLabel", null);
-		excludedProblems.put("InvalidTypeToSynchronized", null);
-		excludedProblems.put("InvalidNullToSynchronized", null);
-		excludedProblems.put("CannotThrowNull", null);
-		excludedProblems.put("AssignmentHasNoEffect", null);
-		excludedProblems.put("PossibleAccidentalBooleanAssignment", null);
-		excludedProblems.put("SuperfluousSemicolon", null);
-		excludedProblems.put("UnnecessaryCast", null);
-		excludedProblems.put("UnnecessaryArgumentCast", null);
-		excludedProblems.put("UnnecessaryInstanceof", null);
-		excludedProblems.put("FinallyMustCompleteNormally", null);
-		excludedProblems.put("UnusedMethodDeclaredThrownException", null);
-		excludedProblems.put("UnusedConstructorDeclaredThrownException", null);
-		excludedProblems.put("InvalidCatchBlockSequence", null);
-		excludedProblems.put("EmptyControlFlowStatement", null);
-		excludedProblems.put("UnnecessaryElse", null);
-		excludedProblems.put("NeedToEmulateFieldReadAccess", null);
-		excludedProblems.put("NeedToEmulateFieldWriteAccess", null);
-		excludedProblems.put("NeedToEmulateMethodAccess", null);
-		excludedProblems.put("NeedToEmulateConstructorAccess", null);
-		excludedProblems.put("FallthroughCase", null);
-		excludedProblems.put("InheritedMethodHidesEnclosingName", null);
-		excludedProblems.put("InheritedFieldHidesEnclosingName", null);
-		excludedProblems.put("InheritedTypeHidesEnclosingName", null);
-		excludedProblems.put("IllegalUsageOfQualifiedTypeReference", null);
-		excludedProblems.put("UnusedLabel", null);
-		excludedProblems.put("ThisInStaticContext", null);
-		excludedProblems.put("StaticMethodRequested", null);
-		excludedProblems.put("IllegalDimension", null);
-		excludedProblems.put("InvalidTypeExpression", null);
-		excludedProblems.put("ParsingError", null);
-		excludedProblems.put("ParsingErrorNoSuggestion", null);
-		excludedProblems.put("InvalidUnaryExpression", null);
-		excludedProblems.put("InterfaceCannotHaveConstructors", null);
-		excludedProblems.put("ArrayConstantsOnlyInArrayInitializers", null);
-		excludedProblems.put("ParsingErrorOnKeyword", null);
-		excludedProblems.put("ParsingErrorOnKeywordNoSuggestion", null);
-		excludedProblems.put("UnmatchedBracket", null);
-		excludedProblems.put("NoFieldOnBaseType", null);
-		excludedProblems.put("InvalidExpressionAsStatement", null);
-		excludedProblems.put("ExpressionShouldBeAVariable", null);
-		excludedProblems.put("MissingSemiColon", null);
-		excludedProblems.put("InvalidParenthesizedExpression", null);
-		excludedProblems.put("ParsingErrorInsertTokenBefore", null);
-		excludedProblems.put("ParsingErrorInsertTokenAfter", null);
-		excludedProblems.put("ParsingErrorDeleteToken", null);
-		excludedProblems.put("ParsingErrorDeleteTokens", null);
-		excludedProblems.put("ParsingErrorMergeTokens", null);
-		excludedProblems.put("ParsingErrorInvalidToken", null);
-		excludedProblems.put("ParsingErrorMisplacedConstruct", null);
-		excludedProblems.put("ParsingErrorReplaceTokens", null);
-		excludedProblems.put("ParsingErrorNoSuggestionForTokens", null);
-		excludedProblems.put("ParsingErrorUnexpectedEOF", null);
-		excludedProblems.put("ParsingErrorInsertToComplete", null);
-		excludedProblems.put("ParsingErrorInsertToCompleteScope", null);
-		excludedProblems.put("ParsingErrorInsertToCompletePhrase", null);
-		excludedProblems.put("EndOfSource", null);
-		excludedProblems.put("InvalidHexa", null);
-		excludedProblems.put("InvalidOctal", null);
-		excludedProblems.put("InvalidCharacterConstant", null);
-		excludedProblems.put("InvalidEscape", null);
-		excludedProblems.put("InvalidInput", null);
-		excludedProblems.put("InvalidUnicodeEscape", null);
-		excludedProblems.put("InvalidFloat", null);
-		excludedProblems.put("NullSourceString", null);
-		excludedProblems.put("UnterminatedString", null);
-		excludedProblems.put("UnterminatedComment", null);
-		excludedProblems.put("NonExternalizedStringLiteral", null);
-		excludedProblems.put("InvalidDigit", null);
-		excludedProblems.put("InvalidLowSurrogate", null);
-		excludedProblems.put("InvalidHighSurrogate", null);
-		excludedProblems.put("UnnecessaryNLSTag", null);
-		excludedProblems.put("DiscouragedReference", null);
-		excludedProblems.put("InterfaceCannotHaveInitializers", null);
-		excludedProblems.put("DuplicateModifierForType", null);
-		excludedProblems.put("IllegalModifierForClass", null);
-		excludedProblems.put("IllegalModifierForInterface", null);
-		excludedProblems.put("IllegalModifierForMemberClass", null);
-		excludedProblems.put("IllegalModifierForMemberInterface", null);
-		excludedProblems.put("IllegalModifierForLocalClass", null);
-		excludedProblems.put("ForbiddenReference", null);
-		excludedProblems.put("IllegalModifierCombinationFinalAbstractForClass", null);
-		excludedProblems.put("IllegalVisibilityModifierForInterfaceMemberType", null);
-		excludedProblems.put("IllegalVisibilityModifierCombinationForMemberType", null);
-		excludedProblems.put("IllegalStaticModifierForMemberType", null);
-		excludedProblems.put("SuperclassMustBeAClass", null);
-		excludedProblems.put("ClassExtendFinalClass", null);
-		excludedProblems.put("DuplicateSuperInterface", null);
-		excludedProblems.put("SuperInterfaceMustBeAnInterface", null);
-		excludedProblems.put("HierarchyCircularitySelfReference", null);
-		excludedProblems.put("HierarchyCircularity", null);
-		excludedProblems.put("HidingEnclosingType", null);
-		excludedProblems.put("DuplicateNestedType", null);
-		excludedProblems.put("CannotThrowType", null);
-		excludedProblems.put("PackageCollidesWithType", null);
-		excludedProblems.put("TypeCollidesWithPackage", null);
-		excludedProblems.put("DuplicateTypes", null);
-		excludedProblems.put("IsClassPathCorrect", null);
-		excludedProblems.put("PublicClassMustMatchFileName", null);
-		excludedProblems.put("MustSpecifyPackage", null);
-		excludedProblems.put("HierarchyHasProblems", null);
-		excludedProblems.put("PackageIsNotExpectedPackage", null);
-		excludedProblems.put("ObjectCannotHaveSuperTypes", null);
-		excludedProblems.put("ObjectMustBeClass", null);
-		excludedProblems.put("SuperclassNotFound", null);
-		excludedProblems.put("SuperclassNotVisible", null);
-		excludedProblems.put("SuperclassAmbiguous", null);
-		excludedProblems.put("SuperclassInternalNameProvided", null);
-		excludedProblems.put("SuperclassInheritedNameHidesEnclosingName", null);
-		excludedProblems.put("InterfaceNotFound", null);
-		excludedProblems.put("InterfaceNotVisible", null);
-		excludedProblems.put("InterfaceAmbiguous", null);
-		excludedProblems.put("InterfaceInternalNameProvided", null);
-		excludedProblems.put("InterfaceInheritedNameHidesEnclosingName", null);
-		excludedProblems.put("DuplicateField", null);
-		excludedProblems.put("DuplicateModifierForField", null);
-		excludedProblems.put("IllegalModifierForField", null);
-		excludedProblems.put("IllegalModifierForInterfaceField", null);
-		excludedProblems.put("IllegalVisibilityModifierCombinationForField", null);
-		excludedProblems.put("IllegalModifierCombinationFinalVolatileForField", null);
-		excludedProblems.put("UnexpectedStaticModifierForField", null);
-		excludedProblems.put("FieldTypeNotFound", null);
-		excludedProblems.put("FieldTypeNotVisible", null);
-		excludedProblems.put("FieldTypeAmbiguous", null);
-		excludedProblems.put("FieldTypeInternalNameProvided", null);
-		excludedProblems.put("FieldTypeInheritedNameHidesEnclosingName", null);
-		excludedProblems.put("DuplicateMethod", null);
-		excludedProblems.put("IllegalModifierForArgument", null);
-		excludedProblems.put("DuplicateModifierForMethod", null);
-		excludedProblems.put("IllegalModifierForMethod", null);
-		excludedProblems.put("IllegalModifierForInterfaceMethod", null);
-		excludedProblems.put("IllegalVisibilityModifierCombinationForMethod", null);
-		excludedProblems.put("UnexpectedStaticModifierForMethod", null);
-		excludedProblems.put("IllegalAbstractModifierCombinationForMethod", null);
-		excludedProblems.put("AbstractMethodInAbstractClass", null);
-		excludedProblems.put("ArgumentTypeCannotBeVoid", null);
-		excludedProblems.put("ArgumentTypeCannotBeVoidArray", null);
-		excludedProblems.put("ReturnTypeCannotBeVoidArray", null);
-		excludedProblems.put("NativeMethodsCannotBeStrictfp", null);
-		excludedProblems.put("DuplicateModifierForArgument", null);
-		excludedProblems.put("ArgumentTypeNotFound", null);
-		excludedProblems.put("ArgumentTypeNotVisible", null);
-		excludedProblems.put("ArgumentTypeAmbiguous", null);
-		excludedProblems.put("ArgumentTypeInternalNameProvided", null);
-		excludedProblems.put("ArgumentTypeInheritedNameHidesEnclosingName", null);
-		excludedProblems.put("ExceptionTypeNotFound", null);
-		excludedProblems.put("ExceptionTypeNotVisible", null);
-		excludedProblems.put("ExceptionTypeAmbiguous", null);
-		excludedProblems.put("ExceptionTypeInternalNameProvided", null);
-		excludedProblems.put("ExceptionTypeInheritedNameHidesEnclosingName", null);
-		excludedProblems.put("ReturnTypeNotFound", null);
-		excludedProblems.put("ReturnTypeNotVisible", null);
-		excludedProblems.put("ReturnTypeAmbiguous", null);
-		excludedProblems.put("ReturnTypeInternalNameProvided", null);
-		excludedProblems.put("ReturnTypeInheritedNameHidesEnclosingName", null);
-		excludedProblems.put("ConflictingImport", null);
-		excludedProblems.put("DuplicateImport", null);
-		excludedProblems.put("CannotImportPackage", null);
-		excludedProblems.put("UnusedImport", null);
-		excludedProblems.put("ImportNotFound", null);
-		excludedProblems.put("ImportNotVisible", null);
-		excludedProblems.put("ImportAmbiguous", null);
-		excludedProblems.put("ImportInternalNameProvided", null);
-		excludedProblems.put("ImportInheritedNameHidesEnclosingName", null);
-		excludedProblems.put("InvalidTypeForStaticImport", null);
-		excludedProblems.put("DuplicateModifierForVariable", null);
-		excludedProblems.put("IllegalModifierForVariable", null);
-		excludedProblems.put("LocalVariableCannotBeNull", null);
-		excludedProblems.put("LocalVariableCanOnlyBeNull", null);
-		excludedProblems.put("LocalVariableMayBeNull", null);
-		excludedProblems.put("AbstractMethodMustBeImplemented", null);
-		excludedProblems.put("FinalMethodCannotBeOverridden", null);
-		excludedProblems.put("IncompatibleExceptionInThrowsClause", null);
-		excludedProblems.put("IncompatibleExceptionInInheritedMethodThrowsClause", null);
-		excludedProblems.put("IncompatibleReturnType", null);
-		excludedProblems.put("InheritedMethodReducesVisibility", null);
-		excludedProblems.put("CannotOverrideAStaticMethodWithAnInstanceMethod", null);
-		excludedProblems.put("CannotHideAnInstanceMethodWithAStaticMethod", null);
-		excludedProblems.put("StaticInheritedMethodConflicts", null);
-		excludedProblems.put("MethodReducesVisibility", null);
-		excludedProblems.put("OverridingNonVisibleMethod", null);
-		excludedProblems.put("AbstractMethodCannotBeOverridden", null);
-		excludedProblems.put("OverridingDeprecatedMethod", null);
-		excludedProblems.put("IncompatibleReturnTypeForNonInheritedInterfaceMethod", null);
-		excludedProblems.put("IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod", null);
-		excludedProblems.put("IllegalVararg", null);
-		excludedProblems.put("CodeSnippetMissingClass", null);
-		excludedProblems.put("CodeSnippetMissingMethod", null);
-		excludedProblems.put("CannotUseSuperInCodeSnippet", null);
-		excludedProblems.put("TooManyConstantsInConstantPool", null);
-		excludedProblems.put("TooManyBytesForStringConstant", null);
-		excludedProblems.put("TooManyFields", null);
-		excludedProblems.put("TooManyMethods", null);
-		excludedProblems.put("UseAssertAsAnIdentifier", null);
-		excludedProblems.put("UseEnumAsAnIdentifier", null);
-		excludedProblems.put("EnumConstantsCannotBeSurroundedByParenthesis", null);
-		excludedProblems.put("Task", null);
-		excludedProblems.put("UndocumentedEmptyBlock", null);
-		excludedProblems.put("JavadocMissingIdentifier", null);
-		excludedProblems.put("JavadocNonStaticTypeFromStaticInvocation", null);
-		excludedProblems.put("JavadocInvalidParamTagTypeParameter", null);
-		excludedProblems.put("JavadocUnexpectedTag", null);
-		excludedProblems.put("JavadocMissingParamTag", null);
-		excludedProblems.put("JavadocMissingParamName", null);
-		excludedProblems.put("JavadocDuplicateParamName", null);
-		excludedProblems.put("JavadocInvalidParamName", null);
-		excludedProblems.put("JavadocMissingReturnTag", null);
-		excludedProblems.put("JavadocDuplicateReturnTag", null);
-		excludedProblems.put("JavadocMissingThrowsTag", null);
-		excludedProblems.put("JavadocMissingThrowsClassName", null);
-		excludedProblems.put("JavadocInvalidThrowsClass", null);
-		excludedProblems.put("JavadocDuplicateThrowsClassName", null);
-		excludedProblems.put("JavadocInvalidThrowsClassName", null);
-		excludedProblems.put("JavadocMissingSeeReference", null);
-		excludedProblems.put("JavadocInvalidSeeReference", null);
-		excludedProblems.put("JavadocInvalidSeeHref", null);
-		excludedProblems.put("JavadocInvalidSeeArgs", null);
-		excludedProblems.put("JavadocMissing", null);
-		excludedProblems.put("JavadocInvalidTag", null);
-		excludedProblems.put("JavadocUndefinedField", null);
-		excludedProblems.put("JavadocNotVisibleField", null);
-		excludedProblems.put("JavadocAmbiguousField", null);
-		excludedProblems.put("JavadocUsingDeprecatedField", null);
-		excludedProblems.put("JavadocUndefinedConstructor", null);
-		excludedProblems.put("JavadocNotVisibleConstructor", null);
-		excludedProblems.put("JavadocAmbiguousConstructor", null);
-		excludedProblems.put("JavadocUsingDeprecatedConstructor", null);
-		excludedProblems.put("JavadocUndefinedMethod", null);
-		excludedProblems.put("JavadocNotVisibleMethod", null);
-		excludedProblems.put("JavadocAmbiguousMethod", null);
-		excludedProblems.put("JavadocUsingDeprecatedMethod", null);
-		excludedProblems.put("JavadocNoMessageSendOnBaseType", null);
-		excludedProblems.put("JavadocParameterMismatch", null);
-		excludedProblems.put("JavadocNoMessageSendOnArrayType", null);
-		excludedProblems.put("JavadocUndefinedType", null);
-		excludedProblems.put("JavadocNotVisibleType", null);
-		excludedProblems.put("JavadocAmbiguousType", null);
-		excludedProblems.put("JavadocUsingDeprecatedType", null);
-		excludedProblems.put("JavadocInternalTypeNameProvided", null);
-		excludedProblems.put("JavadocInheritedMethodHidesEnclosingName", null);
-		excludedProblems.put("JavadocInheritedFieldHidesEnclosingName", null);
-		excludedProblems.put("JavadocInheritedNameHidesEnclosingTypeName", null);
-		excludedProblems.put("JavadocAmbiguousMethodReference", null);
-		excludedProblems.put("JavadocUnterminatedInlineTag", null);
-		excludedProblems.put("JavadocMalformedSeeReference", null);
-		excludedProblems.put("JavadocMessagePrefix", null);
-		excludedProblems.put("JavadocMissingHashCharacter", null);
-		excludedProblems.put("JavadocEmptyReturnTag", null);
-		excludedProblems.put("JavadocInvalidValueReference", null);
-		excludedProblems.put("JavadocUnexpectedText", null);
-		excludedProblems.put("JavadocInvalidParamTagName", null);
-		excludedProblems.put("DuplicateTypeVariable", null);
-		excludedProblems.put("IllegalTypeVariableSuperReference", null);
-		excludedProblems.put("NonStaticTypeFromStaticInvocation", null);
-		excludedProblems.put("ObjectCannotBeGeneric", null);
-		excludedProblems.put("NonGenericType", null);
-		excludedProblems.put("IncorrectArityForParameterizedType", null);
-		excludedProblems.put("TypeArgumentMismatch", null);
-		excludedProblems.put("DuplicateMethodErasure", null);
-		excludedProblems.put("ReferenceToForwardTypeVariable", null);
-		excludedProblems.put("BoundMustBeAnInterface", null);
-		excludedProblems.put("UnsafeRawConstructorInvocation", null);
-		excludedProblems.put("UnsafeRawMethodInvocation", null);
-		excludedProblems.put("UnsafeTypeConversion", null);
-		excludedProblems.put("InvalidTypeVariableExceptionType", null);
-		excludedProblems.put("InvalidParameterizedExceptionType", null);
-		excludedProblems.put("IllegalGenericArray", null);
-		excludedProblems.put("UnsafeRawFieldAssignment", null);
-		excludedProblems.put("FinalBoundForTypeVariable", null);
-		excludedProblems.put("UndefinedTypeVariable", null);
-		excludedProblems.put("SuperInterfacesCollide", null);
-		excludedProblems.put("WildcardConstructorInvocation", null);
-		excludedProblems.put("WildcardMethodInvocation", null);
-		excludedProblems.put("WildcardFieldAssignment", null);
-		excludedProblems.put("GenericMethodTypeArgumentMismatch", null);
-		excludedProblems.put("GenericConstructorTypeArgumentMismatch", null);
-		excludedProblems.put("UnsafeGenericCast", null);
-		excludedProblems.put("IllegalInstanceofParameterizedType", null);
-		excludedProblems.put("IllegalInstanceofTypeParameter", null);
-		excludedProblems.put("NonGenericMethod", null);
-		excludedProblems.put("IncorrectArityForParameterizedMethod", null);
-		excludedProblems.put("ParameterizedMethodArgumentTypeMismatch", null);
-		excludedProblems.put("NonGenericConstructor", null);
-		excludedProblems.put("IncorrectArityForParameterizedConstructor", null);
-		excludedProblems.put("ParameterizedConstructorArgumentTypeMismatch", null);
-		excludedProblems.put("TypeArgumentsForRawGenericMethod", null);
-		excludedProblems.put("TypeArgumentsForRawGenericConstructor", null);
-		excludedProblems.put("SuperTypeUsingWildcard", null);
-		excludedProblems.put("GenericTypeCannotExtendThrowable", null);
-		excludedProblems.put("IllegalClassLiteralForTypeVariable", null);
-		excludedProblems.put("UnsafeReturnTypeOverride", null);
-		excludedProblems.put("MethodNameClash", null);
-		excludedProblems.put("RawMemberTypeCannotBeParameterized", null);
-		excludedProblems.put("MissingArgumentsForParameterizedMemberType", null);
-		excludedProblems.put("StaticMemberOfParameterizedType", null);
-		excludedProblems.put("BoundHasConflictingArguments", null);
-		excludedProblems.put("DuplicateParameterizedMethods", null);
-		excludedProblems.put("IllegalQualifiedParameterizedTypeAllocation", null);
-		excludedProblems.put("DuplicateBounds", null);
-		excludedProblems.put("BoundCannotBeArray", null);
-		excludedProblems.put("UnsafeRawGenericConstructorInvocation", null);
-		excludedProblems.put("UnsafeRawGenericMethodInvocation", null);
-		excludedProblems.put("TypeParameterHidingType", null);
-		excludedProblems.put("RawTypeReference", null);
-		excludedProblems.put("NoAdditionalBoundAfterTypeVariable", null);
-		excludedProblems.put("IncompatibleTypesInForeach", null);
-		excludedProblems.put("InvalidTypeForCollection", null);
-		excludedProblems.put("InvalidUsageOfTypeParameters", null);
-		excludedProblems.put("InvalidUsageOfStaticImports", null);
-		excludedProblems.put("InvalidUsageOfForeachStatements", null);
-		excludedProblems.put("InvalidUsageOfTypeArguments", null);
-		excludedProblems.put("InvalidUsageOfEnumDeclarations", null);
-		excludedProblems.put("InvalidUsageOfVarargs", null);
-		excludedProblems.put("InvalidUsageOfAnnotations", null);
-		excludedProblems.put("InvalidUsageOfAnnotationDeclarations", null);
-		excludedProblems.put("IllegalModifierForAnnotationMethod", null);
-		excludedProblems.put("IllegalExtendedDimensions", null);
-		excludedProblems.put("InvalidFileNameForPackageAnnotations", null);
-		excludedProblems.put("IllegalModifierForAnnotationType", null);
-		excludedProblems.put("IllegalModifierForAnnotationMemberType", null);
-		excludedProblems.put("InvalidAnnotationMemberType", null);
-		excludedProblems.put("AnnotationCircularitySelfReference", null);
-		excludedProblems.put("AnnotationCircularity", null);
-		excludedProblems.put("DuplicateAnnotation", null);
-		excludedProblems.put("MissingValueForAnnotationMember", null);
-		excludedProblems.put("DuplicateAnnotationMember", null);
-		excludedProblems.put("UndefinedAnnotationMember", null);
-		excludedProblems.put("AnnotationValueMustBeClassLiteral", null);
-		excludedProblems.put("AnnotationValueMustBeConstant", null);
-		excludedProblems.put("AnnotationFieldNeedConstantInitialization", null);
-		excludedProblems.put("IllegalModifierForAnnotationField", null);
-		excludedProblems.put("AnnotationCannotOverrideMethod", null);
-		excludedProblems.put("AnnotationMembersCannotHaveParameters", null);
-		excludedProblems.put("AnnotationMembersCannotHaveTypeParameters", null);
-		excludedProblems.put("AnnotationTypeDeclarationCannotHaveSuperclass", null);
-		excludedProblems.put("AnnotationTypeDeclarationCannotHaveSuperinterfaces", null);
-		excludedProblems.put("DuplicateTargetInTargetAnnotation", null);
-		excludedProblems.put("DisallowedTargetForAnnotation", null);
-		excludedProblems.put("MethodMustOverride", null);
-		excludedProblems.put("AnnotationTypeDeclarationCannotHaveConstructor", null);
-		excludedProblems.put("AnnotationValueMustBeAnnotation", null);
-		excludedProblems.put("AnnotationTypeUsedAsSuperInterface", null);
-		excludedProblems.put("MissingOverrideAnnotation", null);
-		excludedProblems.put("FieldMissingDeprecatedAnnotation", null);
-		excludedProblems.put("MethodMissingDeprecatedAnnotation", null);
-		excludedProblems.put("TypeMissingDeprecatedAnnotation", null);
-		excludedProblems.put("UnhandledWarningToken", null);
-		excludedProblems.put("AnnotationValueMustBeArrayInitializer", null);
-		excludedProblems.put("CorruptedSignature", null);
-		excludedProblems.put("BoxingConversion", null);
-		excludedProblems.put("UnboxingConversion", null);
-		excludedProblems.put("IllegalModifierForEnum", null);
-		excludedProblems.put("IllegalModifierForEnumConstant", null);
-		excludedProblems.put("IllegalModifierForLocalEnum", null);
-		excludedProblems.put("IllegalModifierForMemberEnum", null);
-		excludedProblems.put("CannotDeclareEnumSpecialMethod", null);
-		excludedProblems.put("IllegalQualifiedEnumConstantLabel", null);
-		excludedProblems.put("CannotExtendEnum", null);
-		excludedProblems.put("CannotInvokeSuperConstructorInEnum", null);
-		excludedProblems.put("EnumAbstractMethodMustBeImplemented", null);
-		excludedProblems.put("EnumSwitchCannotTargetField", null);
-		excludedProblems.put("IllegalModifierForEnumConstructor", null);
-		excludedProblems.put("MissingEnumConstantCase", null);
-		excludedProblems.put("EnumStaticFieldInInInitializerContext", null);
-		excludedProblems.put("IllegalExtendedDimensionsForVarArgs", null);
-		excludedProblems.put("MethodVarargsArgumentNeedCast", null);
-		excludedProblems.put("ConstructorVarargsArgumentNeedCast", null);
-		excludedProblems.put("VarargsConflict", null);
-		excludedProblems.put("JavadocGenericMethodTypeArgumentMismatch", null);
-		excludedProblems.put("JavadocNonGenericMethod", null);
-		excludedProblems.put("JavadocIncorrectArityForParameterizedMethod", null);
-		excludedProblems.put("JavadocParameterizedMethodArgumentTypeMismatch", null);
-		excludedProblems.put("JavadocTypeArgumentsForRawGenericMethod", null);
-		excludedProblems.put("JavadocGenericConstructorTypeArgumentMismatch", null);
-		excludedProblems.put("JavadocNonGenericConstructor", null);
-		excludedProblems.put("JavadocIncorrectArityForParameterizedConstructor", null);
-		excludedProblems.put("JavadocParameterizedConstructorArgumentTypeMismatch", null);
-		excludedProblems.put("JavadocTypeArgumentsForRawGenericConstructor", null);
-		excludedProblems.put("ExternalProblemNotFixable", null);
-		excludedProblems.put("ExternalProblemFixable", null);
-		// TODO (maxime) there are obviously too many exclusions here... 
-		
-		Field[] fields = (iProblemClass = IProblem.class).getFields();
-		for (int i = 0, length = fields.length; i < length; i++) {
-			Field field = fields[i];
-			int pureProblemId;
-			if (field.getType() == Integer.TYPE) {
-				if ((pureProblemId = field.getInt(iProblemClass) & IProblem.IgnoreCategoriesMask) != 0
-						&& pureProblemId != IProblem.IgnoreCategoriesMask
-						&& ProblemReporter.getProblemCategory(ProblemSeverities.Error, pureProblemId)
-							== CategorizedProblem.CAT_UNSPECIFIED
-						&& !excludedProblems.containsKey(field.getName())) {
-					 fail("unspecified category for problem " + field.getName());
-//					System.out.println("excludedProblems.put(\"" + field.getName() + "\", null);");
-				}
-			}
-		}
-	}
-	catch (IllegalAccessException e) {
-		fail("could not access members");
-	}
-}
-class TasksReader implements ICompilerRequestor {
-	CompilationResult result;
-	public void acceptResult(CompilationResult compilationResult) {
-		this.result = compilationResult;
-	}
-}
-static String taskTagsAsCutAndPaste(CategorizedProblem tasks[]) {
-	StringBuffer result = new StringBuffer();
-	String arguments[];
-	for (int i = 0; i < tasks.length - 1; i++) {
-		arguments = tasks[i].getArguments();
-		System.out.print("\t\t\"[");
-		System.out.print(arguments[0]);
-		System.out.print(',');
-		System.out.print(arguments[1]);
-		System.out.print(',');
-		System.out.print(arguments[2]);
-		System.out.println("]\\n\" +");
-	}
-	arguments = tasks[tasks.length - 1].getArguments();
-	System.out.print("\t\t\"[");
-	System.out.print(arguments[0]);
-	System.out.print(',');
-	System.out.print(arguments[1]);
-	System.out.print(',');
-	System.out.print(arguments[2]);
-	System.out.println("]\\n\"");
-	return result.toString();
-}
-static String taskTagsAsStrings(CategorizedProblem tasks[]) {
-	StringBuffer result = new StringBuffer();
-	String arguments[];
-	for (int i = 0; i < tasks.length; i++) {
-		arguments = tasks[i].getArguments();
-		result.append('[');
-		result.append(arguments[0]);
-		result.append(',');
-		result.append(arguments[1]);
-		result.append(',');
-		result.append(arguments[2]);
-		result.append(']');
-		result.append("\n");
-	}
-	return result.toString();
-}
-public void runTaskTagsOptionsTest(
-		String[] testFiles,
-		Map customOptions,
-		String expectedTags) {
-	TasksReader reader = new TasksReader();
-	Map options = JavaScriptCore.getDefaultOptions();
-	if (customOptions != null) {
-		options.putAll(customOptions);
-	}
-	this.runConformTest(
-		testFiles,
-		"",
-		null /* no extra class libraries */, 
-		true /* flush output directory */,
-		null, /* no VM args */
-		options,
-		reader, 
-		true /* skip javac */);
-	String tags = taskTagsAsStrings(reader.result.tasks);
-	if (! tags.equals(expectedTags)) {
-		System.out.println(getClass().getName() + '#' + getName());
-		System.out.println("Effective results:");
-		System.out.println(tags);
-		System.out.println("Cut and paste:");
-		taskTagsAsCutAndPaste(reader.result.tasks);
-		assertEquals(expectedTags, tags);
-	}
-} 
-// Basic test on task tags: watch default behavior
-public void test003_task_tags_options() {
-	this.runTaskTagsOptionsTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    // FIXME TODO XXX message contents\n" + 
-			"  }\n" + 
-			"}\n"},
-		null,
-		"[FIXME,message contents,HIGH]\n" +
-		"[TODO,message contents,NORMAL]\n" +
-		"[XXX,message contents,NORMAL]\n");
-} 
-// effect of cancelling priorities
-// reactivate when bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=143402 is fixed
-public void _test004_task_tags_options() {
-	Map customOptions = new HashMap();
-	customOptions.put(JavaScriptCore.COMPILER_TASK_PRIORITIES, "");
-	this.runTaskTagsOptionsTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    // FIXME TODO XXX message contents\n" + 
-			"  }\n" + 
-			"}\n"},
-		customOptions,
-		"[FIXME,message contents,NORMAL]\n" +
-		"[TODO,message contents,NORMAL]\n" +
-		"[XXX,message contents,NORMAL]\n");
-} 
-// effect of cancelling priorities
-// reactivate when bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=143402 is fixed
-public void _test005_task_tags_options() {
-	Map customOptions = new HashMap();
-	customOptions.put(JavaScriptCore.COMPILER_TASK_PRIORITIES, ",,");
-	this.runTaskTagsOptionsTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    // FIXME TODO XXX message contents\n" + 
-			"  }\n" + 
-			"}\n"},
-		customOptions,
-		"[FIXME,message contents,NORMAL]\n" +
-		"[TODO,message contents,NORMAL]\n" +
-		"[XXX,message contents,NORMAL]\n");
-	// would expect an exception of some sort
-} 
-// effect of changing priorities
-// reactivate when bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=143402 is fixed
-public void _test006_task_tags_options() {
-	Map customOptions = new HashMap();
-	customOptions.put(JavaScriptCore.COMPILER_TASK_PRIORITIES, "A,B,C,D,E");
-	this.runTaskTagsOptionsTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    // FIXME TODO XXX message contents\n" + 
-			"  }\n" + 
-			"}\n"},
-		customOptions,
-		"[FIXME,message contents,NORMAL]\n" +
-		"[TODO,message contents,NORMAL]\n" +
-		"[XXX,message contents,NORMAL]\n");
-	// would expect an exception of some sort	
-} 
-// effect of changing priorities
-public void test007_task_tags_options() {
-	Map customOptions = new HashMap();
-	customOptions.put(JavaScriptCore.COMPILER_TASK_PRIORITIES, "NORMAL,NORMAL,NORMAL");
-	this.runTaskTagsOptionsTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    // FIXME TODO XXX message contents\n" + 
-			"  }\n" + 
-			"}\n"},
-		customOptions,
-		"[FIXME,message contents,NORMAL]\n" +
-		"[TODO,message contents,NORMAL]\n" +
-		"[XXX,message contents,NORMAL]\n");
-} 
-// effect of changing priorities
-// reactivate when bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=143402 is fixed
-public void _test008_task_tags_options() {
-	Map customOptions = new HashMap();
-	customOptions.put(JavaScriptCore.COMPILER_TASK_PRIORITIES, "NORMAL,NORMAL"); // one less than the number of tags
-	this.runTaskTagsOptionsTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    // FIXME TODO XXX message contents\n" + 
-			"  }\n" + 
-			"}\n"},
-		customOptions,
-		"[FIXME,message contents,NORMAL]\n" +
-		"[TODO,message contents,NORMAL]\n" +
-		"[XXX,message contents,NORMAL]\n");
-} 
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/Compliance_1_3.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/Compliance_1_3.java
deleted file mode 100644
index 6423214..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/Compliance_1_3.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class Compliance_1_3 extends AbstractRegressionTest {
-boolean docSupport = false;
-
-public Compliance_1_3(String name) {
-	super(name);
-}
-
-/*
- * Toggle compiler in mode -1.3
- */
-protected Map getCompilerOptions() {
-	Map options = super.getCompilerOptions();
-	if (docSupport) {
-		options.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.ENABLED);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, CompilerOptions.ENABLED);
-	}
-	return options;
-}
-public static Test suite() {
-		return buildUniqueComplianceTestSuite(testClass(), COMPLIANCE_1_3);
-}
-public static Class testClass() {
-	return Compliance_1_3.class;
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which does not belong to the class are skipped...
-static {
-//		TESTS_NAMES = new String[] { "Bug58069" };
-//		TESTS_NUMBERS = new int[] { 104 };
-//		TESTS_RANGE = new int[] { 76, -1 };
-}
-/* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	// Javadoc disabled by default 
-	docSupport = false;
-}
-
-// test001 - moved to SuperTypeTest#test002
-// test002 - moved to SuperTypeTest#test003
-// test003 - moved to SuperTypeTest#test004
-// test004 - moved to SuperTypeTest#test005
-// test005 - moved to SuperTypeTest#test006
-// test006 - moved to SuperTypeTest#test007
-// test007 - moved to TryStatementTest#test057
-// test008 - moved to LookupTest#test074
-// test009 - moved to RuntimeTests#test1004
-
-// check actualReceiverType when array type
-// test unreachable code complaints
-public void test011() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	void foo() { \n"+
-			"		while (false);	\n" +
-			"		while (false) println(\"unreachable\");	\n" +
-			"		do ; while (false);	\n" +
-			"		do println(\"unreachable\"); while (false);	\n" +
-			"		for (;false;);	\n" +
-			"		for (;false;) println(\"unreachable\");	\n" +
-			"		if (false);	\n" +
-			"		if (false) println(\"unreachable\");		\n" +		
-			"	}	\n" +
-			"	function println(s){}	\n" +
-			" \n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.js (at line 3)\n" + 
-		"	while (false) System.out.println(\"unreachable\");	\n" + 
-		"	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.js (at line 7)\n" + 
-		"	for (;false;) System.out.println(\"unreachable\");	\n" + 
-		"	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n"
-	);
-}			
-// binary compatibility
-
-
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=24744
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23096
- */
-public void test037() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_TaskTags, "TODO:");
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"function X() {\n"+
-			"}\n"+
-			"// TODO: something"
-		},
-		"----------\n" + 
-		"1. WARNING in p\\X.js (at line 4)\n" + 
-		"	// TODO: something\n" + 
-		"	   ^^^^^^^^^^^^^^^\n" + 
-		"TODO: something\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=24833
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23096
- */
-public void test038() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_TaskTags, "TODO:");
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"// TODO: something"
-		},
-		"----------\n" + 
-		"1. WARNING in X.js (at line 1)\n" + 
-		"	// TODO: something\n" + 
-		"	   ^^^^^^^^^^^^^^^\n" + 
-		"TODO: something\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-
-
-public void test072() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"    function main( args) {\n" + 
-			"        try {\n" + 
-			"            f();\n" + 
-			"        } catch(e) {\n" + 
-			"            println(\"SUCCESS\");\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    function f() {\n" + 
-			"       function ff ()\n" + 
-			"      //      {\n" + 
-			"                    if (true) throw null;\n" + 
-			"            }\n" + 
-			"      //  };\n" + 
-			"    }\n" + 
-			"  function println(s){}",
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 12)\n" + 
-		"	if (true) throw null;\n" + 
-		"	                ^^^^\n" + 
-		"Cannot throw null as an exception\n" + 
-		"----------\n");
-}
-
-
-// checking for captured outer local initialization status
-// NOTE: only complain against non-inlinable outer locals
-// http://bugs.eclipse.org/bugs/show_bug.cgi?id=26134
-public void test074() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"    function main(args) {	\n" +
-			"    	var nonInlinedString = \"[Local]\";	\n" +
-			"    	var i = 2;	\n" +
-			"		switch(i){	\n" +
-			"			case 1:	\n" +
-			"				var displayString = nonInlinedString;\n" +
-			"				var inlinedString = \"a\";	\n" +
-			"//				class Local {	\n" +
-			"					function toString() {	\n" +
-			"						return inlinedString + displayString;	\n" +
-			"					}	\n" +
-			"//				}	\n" +
-			"			case 2:	\n" +
-			"//				print(new Local());	\n" +
-			"//				print(\"-\");	\n" +
-//			"				println(new Local(){	\n" +
-//			"					public String toString() {	\n" +
-//			"						return super.toString()+\": anonymous\";	\n" +
-//			"					}	\n" +
-//			"				});	\n" +
-			"		}	\n" +
-			"    }	\n" +
-			"	function println(s){}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 14)\n" + 
-		"	System.out.print(new Local());	\n" + 
-		"	                 ^^^^^^^^^^^\n" + 
-		"The local variable displayString may not have been initialized\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 16)\n" + 
-		"	System.out.println(new Local(){	\n" + 
-		"					public String toString() {	\n" + 
-		"						return super.toString()+\": anonymous\";	\n" + 
-		"					}	\n" + 
-		"				});	\n" + 
-		"	                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"The local variable displayString may not have been initialized\n" + 
-		"----------\n");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=66533
- */
-public void test084() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	void foo() {\n" + 
-			"		Object enum = null;\n" + 
-			"	}\n" + 
-			"\n"
-		},
-		"----------\n" + 
-		"1. WARNING in X.js (at line 2)\n" + 
-		"	Object enum = null;\n" + 
-		"	       ^^^^\n" + 
-		"\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + 
-		"----------\n");
-}
-public void test100() {
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"    var \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-			"    function foo() {\n" + 
-			"        var \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-			"    }\n" + 
-			"\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.js (at line 1)\n" + 
-		"	int \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-		"	    ^^^^^^\n" + 
-		"Invalid unicode\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 3)\n" + 
-		"	int \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-		"	    ^^^^^^\n" + 
-		"Invalid unicode\n" + 
-		"----------\n"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/DeprecatedTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/DeprecatedTest.java
deleted file mode 100644
index 0888dde..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/DeprecatedTest.java
+++ /dev/null
@@ -1,737 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-import junit.framework.Test;
-
-public class DeprecatedTest extends AbstractRegressionTest {
-public DeprecatedTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-public void test001() {
-	this.runNegativeTest(new String[] {
-		"p/B.java",
-		"package p;\n" + 
-		"class B extends A {\n" + 
-		"    float x = super.x;\n" + 
-		"}\n",
-
-		"p/A.java",
-		"package p;\n" + 
-		"class A {\n" + 
-		"    /** @deprecated */\n" + 
-		"    int x = 1;\n" + 
-		"}\n",
-	}, 
-	"----------\n" + 
-	"1. WARNING in p\\B.java (at line 3)\n" + 
-	"	float x = super.x;\n" + 
-	"	      ^\n" + 
-	"The field B.x is hiding a field from type A\n" + 
-	"----------\n" + 
-	"2. WARNING in p\\B.java (at line 3)\n" + 
-	"	float x = super.x;\n" + 
-	"	                ^\n" + 
-	"The field A.x is deprecated\n" + 
-	"----------\n"
-	);
-}
-public void test002() {
-	this.runNegativeTest(new String[] {
-		"p/C.java",
-		"package p;\n" + 
-		"class C {\n" + 
-		"    static int x = new A().x;\n" + 
-		"}\n",
-		
-		"p/A.java",
-		"package p;\n" + 
-		"class A {\n" + 
-		"    /** @deprecated */\n" + 
-		"    int x = 1;\n" + 
-		"}\n",
-
-	}, 
-		"----------\n" + 
-		"1. WARNING in p\\C.java (at line 3)\n" + 
-		"	static int x = new A().x;\n" + 
-		"	                       ^\n" + 
-		"The field A.x is deprecated\n" + 
-		"----------\n"
-	);
-}
-public void test003() {
-	this.runNegativeTest(new String[] {
-		"p/Top.java",
-		"package p;\n" + 
-		"public class Top {\n" + 
-		"  \n" + 
-		"  class M1 {\n" + 
-		"    class M2 {}\n" + 
-		"  };\n" + 
-		"  \n" + 
-		"  static class StaticM1 {\n" + 
-		"    static class StaticM2 {\n" + 
-		"      class NonStaticM3{}};\n" + 
-		"  };\n" + 
-		"  \n" + 
-		"public static void main(String argv[]){\n" + 
-		"  Top tip = new Top();\n" + 
-		"  System.out.println(\"Still alive 0\");\n" + 
-		"  tip.testStaticMember();\n" + 
-		"  System.out.println(\"Still alive 1\");\n" + 
-		"  tip.testStaticMember1();\n" + 
-		"  System.out.println(\"Still alive 2\");\n" + 
-		"  tip.testStaticMember2();\n" + 
-		"  System.out.println(\"Still alive 3\");\n" + 
-		"  tip.testStaticMember3();\n" + 
-		"  System.out.println(\"Still alive 4\");\n" + 
-		"  tip.testStaticMember4();\n" + 
-		"  System.out.println(\"Completed\");\n" + 
-		"}\n" + 
-		"  void testMember(){\n" + 
-		"    new M1().new M2();}\n" + 
-		"  void testStaticMember(){\n" + 
-		"    new StaticM1().new StaticM2();}\n" + 
-		"  void testStaticMember1(){\n" + 
-		"    new StaticM1.StaticM2();}\n" + 
-		"  void testStaticMember2(){\n" + 
-		"    new StaticM1.StaticM2().new NonStaticM3();}\n" + 
-		"  void testStaticMember3(){\n" + 
-		"    // define an anonymous subclass of the non-static M3\n" + 
-		"    new StaticM1.StaticM2().new NonStaticM3(){};\n" + 
-		"  }   \n" + 
-		"  void testStaticMember4(){\n" + 
-		"    // define an anonymous subclass of the non-static M3\n" + 
-		"    new StaticM1.StaticM2().new NonStaticM3(){\n" + 
-		"      Object hello(){\n" + 
-		"        return new StaticM1.StaticM2().new NonStaticM3();\n" + 
-		"      }};\n" + 
-		"      \n" + 
-		"  }    \n" + 
-		"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\Top.java (at line 30)\n" + 
-		"	new StaticM1().new StaticM2();}\n" + 
-		"	^^^^^^^^^^^^^^\n" + 
-		"Illegal enclosing instance specification for type Top.StaticM1.StaticM2\n" + 
-		"----------\n" + 
-		"2. WARNING in p\\Top.java (at line 42)\n" + 
-		"	Object hello(){\n" + 
-		"	       ^^^^^^^\n" + 
-		"The method hello() from the type new Top.StaticM1.StaticM2.NonStaticM3(){} is never used locally\n" + 
-		"----------\n");
-}
-/**
- * Regression test for PR #1G9ES9B
- */
-public void test004() {
-	this.runNegativeTest(new String[] {
-		"p/Warning.java",
-		"package p;\n" + 
-		"import java.util.Date;\n" +
-		"public class Warning {\n" +
-		"public Warning() {\n" +
-		"     super();\n" +
-		"     Date dateObj = new Date();\n" +
-		"     dateObj.UTC(1,2,3,4,5,6);\n" +
-		"}\n" +
-		"}\n",
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\Warning.java (at line 7)\n" + 
-		"	dateObj.UTC(1,2,3,4,5,6);\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"The static method UTC(int, int, int, int, int, int) from the type Date should be accessed in a static way\n" + 
-		"----------\n" + 
-		"2. WARNING in p\\Warning.java (at line 7)\n" + 
-		"	dateObj.UTC(1,2,3,4,5,6);\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"The method UTC(int, int, int, int, int, int) from the type Date is deprecated\n" + 
-		"----------\n");
-}
-public void test005() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-		  "public class X {\n"
-			+ "/**\n"
-			+ " * @deprecated\n"
-			+ " */\n"
-			+ " 	public static class Y {\n"
-			+ "	}\n" +
-			"   public static void main(String[] args) {	\n" +
-			"        System.out.print(\"SUCCESS\");	\n" +
-			"	}	\n"
-			+ "}"
-		},
-		"SUCCESS", // expected output
-		null,
-		true, // flush previous output dir content
-		null, // special vm args
-		null,  // custom options
-		null); // custom requestor
-	this.runNegativeTest(
-		new String[] {
-			"A.java",
-			"public class A extends X.Y {}"
-		},
-		"----------\n" + 
-		"1. WARNING in A.java (at line 1)\n" + 
-		"	public class A extends X.Y {}\n" + 
-		"	                       ^^^\n" + 
-		"The type X.Y is deprecated\n" + 
-		"----------\n",// expected output
-		null,
-		false, // flush previous output dir content
-		null);  // custom options
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=40839
-public void test006() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"	/**\n" +
-			"	  @deprecated\n" +
-			"	 */\n" +
-			"	; // line comment\n" +
-			"	static int i;\n" +
-			"   public static void main(String[] args) {	\n" +
-			"        System.out.print(\"SUCCESS\");	\n" +
-			"	}	\n" +
-			"}"
-		},
-		"SUCCESS", // expected output
-		null,
-		true, // flush previous output dir content
-		null, // special vm args
-		null,  // custom options
-		null); // custom requestor
-	this.runNegativeTest(
-		new String[] {
-			"A.java",
-			"public class A {\n" +
-			"   public static void main(String[] args) {	\n" +
-			"        System.out.print(X.i);	\n" +
-			"	}	\n" +
-			"}"
-		},
-		"",// expected output
-		null,
-		false, // flush previous output dir content
-		null);  // custom options
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=88124
-public void test007() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public class X {\n" + 
-			"}\n",
-			
-			"Y.java",
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public class Y {\n" + 
-			"  Zork z;\n" +
-			"  X x;\n" +
-			"  X foo() {\n" + 
-			"    X x; // unexpected deprecated warning here\n" + 
-			"  }\n" + 
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in Y.java (at line 5)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. WARNING in Y.java (at line 8)\n" + 
-		"	X x; // unexpected deprecated warning here\n" + 
-		"	  ^\n" + 
-		"The local variable x is hiding a field from type Y\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=88124 - variation
-public void test008() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public class X {\n" + 
-			"}\n",
-		},
-		"");
-	this.runNegativeTest(
-		new String[] {
-			"Y.java",
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public class Y {\n" + 
-			"  Zork z;\n" +
-			"  void foo() {\n" + 
-			"    X x; // unexpected deprecated warning here\n" + 
-			"  }\n" + 
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in Y.java (at line 5)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n",// expected output
-		null,
-		false, // flush previous output dir content
-		null);  // custom options
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=88124 - variation
-public void test009() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public class X {\n" + 
-			"}\n",
-			
-			"Y.java",
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public class Y {\n" + 
-			"  Zork z;\n" +
-			"  void foo() {\n" + 
-			"    X x; // unexpected deprecated warning here\n" + 
-			"  }\n" + 
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in Y.java (at line 5)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=88187
-public void test010() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.ENABLED);
-	customOptions.put(CompilerOptions.OPTION_ReportInvalidAnnotation, CompilerOptions.WARNING);
-	this.runNegativeTest(
-		new String[] {
-            "X.java",
-            "/**\n" + 
-            " * @deprecated\n" + 
-            " */\n" + 
-            "public class X {\n" + 
-            "        /**\n" + 
-            "         * @see I2#foo()\n" + 
-            "         */\n" + 
-            "        I1 foo() {\n" + 
-            "                return null;\n" + 
-            "        }\n" + 
-            "       Zork z;\n" +
-            "}\n",              
-			"I1.java",
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public interface I1 {\n" + 
-			"		 // empty block\n" + 
-			"}\n",
-			"I2.java",
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public interface I2 {\n" + 
-			"		 I1 foo(); // unexpected warning here\n" + 
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 11)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=123522
-public void test011() {
-	this.runNegativeTest(
-		new String[] {
-				"p1/X.java", // =================
-				"package p1;\n" +
-				"import p2.I;\n" +
-				"/** @deprecated */\n" +
-				"public class X {\n" + 
-				"	Zork z;\n" +
-				"}\n", // =================
-				"p2/I.java", // =================
-				"package p2;\n" +
-				"/** @deprecated */\n" + 
-				"public interface I {\n" + 
-				"}\n", // =================
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 5)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}         
-
-// @deprecated upon locals do not influence the deprecation diagnostic
-// JLS3 9.6
-public void test012() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportDeprecation, 
-		CompilerOptions.ERROR);
-	customOptions.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, 
-		CompilerOptions.IGNORE);
-	this.runNegativeTest(
-		new String[] {
-            "X.java",
-			"public class X {\n" + 
-			"    void foo() {\n" + 
-			"        /** @deprecated */\n" + 
-			"        int i1 = Y.m;\n" + 
-			"    }\n" + 
-			"    /** @deprecated */\n" + 
-			"    void bar() {\n" + 
-			"        int i1 = Y.m;\n" + 
-			"    }\n" + 
-			"}\n",
-            "Y.java",
-			"public class Y {\n" + 
-			"    /** @deprecated */\n" + 
-			"    static int m;\n" +			
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	int i1 = Y.m;\n" + 
-		"	           ^\n" + 
-		"The field Y.m is deprecated\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-
-// @deprecated upon locals do not influence the deprecation diagnostic
-// JLS3 9.6
-// @Deprecated variant
-public void test013() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_ReportDeprecation, 
-			CompilerOptions.ERROR);
-		customOptions.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, 
-			CompilerOptions.IGNORE);
-		this.runNegativeTest(
-			new String[] {
-	            "X.java",
-				"public class X {\n" + 
-				"    void foo() {\n" + 
-				"        @Deprecated\n" + 
-				"        int i1 = Y.m;\n" + 
-				"    }\n" + 
-				"    @Deprecated\n" + 
-				"    void bar() {\n" + 
-				"        int i1 = Y.m;\n" + 
-				"    }\n" + 
-				"}\n",
-	            "Y.java",
-				"public class Y {\n" + 
-				"    @Deprecated\n" + 
-				"    static int m;\n" +			
-				"}\n",
-			}, 
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	int i1 = Y.m;\n" + 
-			"	           ^\n" + 
-			"The field Y.m is deprecated\n" + 
-			"----------\n",
-			null,
-			true,
-			customOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159243
-public void test014() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" +
-			"/**\n" + 
-			" * @deprecated\n" + 
-			" */\n" + 
-			"public class X {\n" + 
-			"}\n",
-			"Y.java",
-			"import p.X;\n" +
-			"public class Y {\n" + 
-			"  Zork z;\n" +
-			"  void foo() {\n" + 
-			"    X x;\n" + 
-			"    X[] xs = { x };\n" + 
-			"  }\n" + 
-			"  void bar() {\n" + 
-			"    p.X x;\n" + 
-			"    p.X[] xs = { x };\n" + 
-			"  }\n" + 
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. WARNING in Y.java (at line 1)\n" + 
-		"	import p.X;\n" + 
-		"	       ^^^\n" + 
-		"The type X is deprecated\n" + 
-		"----------\n" + 
-		"2. ERROR in Y.java (at line 3)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. WARNING in Y.java (at line 5)\n" + 
-		"	X x;\n" + 
-		"	^\n" + 
-		"The type X is deprecated\n" + 
-		"----------\n" + 
-		"4. WARNING in Y.java (at line 6)\n" + 
-		"	X[] xs = { x };\n" + 
-		"	^\n" + 
-		"The type X is deprecated\n" + 
-		"----------\n" + 
-		"5. WARNING in Y.java (at line 9)\n" + 
-		"	p.X x;\n" + 
-		"	^^^\n" + 
-		"The type X is deprecated\n" + 
-		"----------\n" + 
-		"6. WARNING in Y.java (at line 10)\n" + 
-		"	p.X[] xs = { x };\n" + 
-		"	^^^\n" + 
-		"The type X is deprecated\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159709
-// the order of the CUs must not modify the behavior, see also test016 
-public void test015() {
-	Map customOptions = new HashMap();
-	customOptions.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"p/M1.java",
-			"package p;\n" +
-			"public class M1 {\n" +
-			"  void bar() {\n" +
-			"    a.N1.N2.N3 m = null;\n" +
-			"    m.foo();\n" +
-			"  }\n" + 
-			"}\n",
-			"a/N1.java",
-			"package a;\n" +
-			"public class N1 {\n" +
-			"  /** @deprecated */\n" + 
-			"  public class N2 {" +
-			"    public class N3 {" +
-			"      public void foo() {}" +
-			"    }" +
-			"  }" +
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\M1.java (at line 4)\n" + 
-		"	a.N1.N2.N3 m = null;\n" + 
-		"	^^^^^^^^^^\n" + 
-		"The type N1.N2 is deprecated\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\M1.java (at line 4)\n" + 
-		"	a.N1.N2.N3 m = null;\n" + 
-		"	^^^^^^^^^^\n" + 
-		"The type N1.N2.N3 is deprecated\n" + 
-		"----------\n" + 
-		"3. ERROR in p\\M1.java (at line 5)\n" + 
-		"	m.foo();\n" + 
-		"	^^^^^^^\n" + 
-		"The method foo() from the type N1.N2.N3 is deprecated\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions,
-		true,
-		false,
-		false);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159709
-public void test016() {
-	Map customOptions = new HashMap();
-	customOptions.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"a/N1.java",
-			"package a;\n" +
-			"public class N1 {\n" +
-			"  /** @deprecated */\n" + 
-			"  public class N2 {" +
-			"    public class N3 {" +
-			"      public void foo() {}" +
-			"    }" +
-			"  }" +
-			"}\n",
-			"p/M1.java",
-			"package p;\n" +
-			"public class M1 {\n" +
-			"  void bar() {\n" +
-			"    a.N1.N2.N3 m = null;\n" +
-			"    m.foo();\n" +
-			"  }\n" + 
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\M1.java (at line 4)\n" + 
-		"	a.N1.N2.N3 m = null;\n" + 
-		"	^^^^^^^^^^\n" + 
-		"The type N1.N2 is deprecated\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\M1.java (at line 4)\n" + 
-		"	a.N1.N2.N3 m = null;\n" + 
-		"	^^^^^^^^^^\n" + 
-		"The type N1.N2.N3 is deprecated\n" + 
-		"----------\n" + 
-		"3. ERROR in p\\M1.java (at line 5)\n" + 
-		"	m.foo();\n" + 
-		"	^^^^^^^\n" + 
-		"The method foo() from the type N1.N2.N3 is deprecated\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions,
-		true,
-		false,
-		false);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159709
-// variant: self-contained case, hence no report
-public void test017() {
-	Map customOptions = new HashMap();
-	customOptions.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
-	customOptions.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"a/N1.java",
-			"package a;\n" +
-			"public class N1 {\n" +
-			"  /** @deprecated */\n" + 
-			"  public class N2 {" +
-			"    public class N3 {" +
-			"      public void foo() {}" +
-			"    }" +
-			"  }" +
-			"  void bar() {\n" +
-			"    a.N1.N2.N3 m = null;\n" +
-			"    m.foo();\n" +
-			"  }\n" + 
-			"}\n"
-		}, 
-		"",
-		null,
-		true,
-		null,
-		customOptions,
-		null,
-		false);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159709
-// variant: using a binary class
-public void test018() {
-	Map customOptions = new HashMap();
-	customOptions.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
-	customOptions.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"a/N1.java",
-			"package a;\n" +
-			"public class N1 {\n" +
-			"  /** @deprecated */\n" + 
-			"  public class N2 {" +
-			"    public class N3 {" +
-			"      public void foo() {}" +
-			"    }" +
-			"  }" +
-			"}\n"
-		}, 
-		"",
-		null,
-		true,
-		null,
-		customOptions,
-		null,
-		false);
-	this.runNegativeTest(
-		new String[] {
-			"p/M1.java",
-			"package p;\n" +
-			"public class M1 {\n" +
-			"  void bar() {\n" +
-			"    a.N1.N2.N3 m = null;\n" +
-			"    m.foo();\n" +
-			"  }\n" + 
-			"}\n"
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\M1.java (at line 4)\n" + 
-		"	a.N1.N2.N3 m = null;\n" + 
-		"	^^^^^^^^^^\n" + 
-		"The type N1.N2 is deprecated\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\M1.java (at line 4)\n" + 
-		"	a.N1.N2.N3 m = null;\n" + 
-		"	^^^^^^^^^^\n" + 
-		"The type N1.N2.N3 is deprecated\n" + 
-		"----------\n" + 
-		"3. ERROR in p\\M1.java (at line 5)\n" + 
-		"	m.foo();\n" + 
-		"	^^^^^^^\n" + 
-		"The method foo() from the type N1.N2.N3 is deprecated\n" + 
-		"----------\n",
-		null,
-		false /* do not flush */,
-		customOptions,
-		true,
-		false,
-		false);
-}
-public static Class testClass() {
-	return DeprecatedTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ExternalizeStringLiterals15Test.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ExternalizeStringLiterals15Test.java
deleted file mode 100644
index df6a6df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ExternalizeStringLiterals15Test.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class ExternalizeStringLiterals15Test extends AbstractRegressionTest {
-
-static {
-//	TESTS_NAMES = new String[] { "test000" };
-//	TESTS_NUMBERS = new int[] { 6 };
-//	TESTS_RANGE = new int[] { 11, -1 };
-}
-public ExternalizeStringLiterals15Test(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildUniqueComplianceTestSuite(testClass(), COMPLIANCE_1_5);
-}
-
-public void test001() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"import static java.lang.annotation.ElementType.*;\n" +
-			"import static java.lang.annotation.RetentionPolicy.*;\n" +
-			"import java.lang.annotation.Retention;\n" +
-			"import java.lang.annotation.Target;\n" +
-			"@Target({TYPE, FIELD, METHOD,\r\n" + 
-			"         PARAMETER, CONSTRUCTOR,\r\n" + 
-			"         LOCAL_VARIABLE, PACKAGE})\r\n" + 
-			"@Retention(CLASS)\r\n" + 
-			"public @interface X\r\n" + 
-			"{\r\n" + 
-			"    String[] value() default {};\r\n" + 
-			"    String justification() default \"\";\r\n" + 
-			"}"
-		},
-		"",
-		null,
-		true,
-		null,
-		customOptions,
-		null);
-}
-public void test002() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" +
-			"	String s2 = \"test1\"; //$NON-NLS-1$\n" +
-			"	String s3 = \"test2\"; //$NON-NLS-1$//$NON-NLS-2$\n" +
-			"	\n" +
-			"	@SuppressWarnings(\"nls\")\n" +
-			"	void foo() {\n" +
-			"		String s4 = null;\n" +
-			"		String s5 = \"test3\";\n" +
-			"		String s6 = \"test4\";\n" +
-			"		System.out.println(\"test5\");\n" +
-			"	}\n" +
-			"}",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	String s3 = \"test2\"; //$NON-NLS-1$//$NON-NLS-2$\n" + 
-		"	                                  ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	String s5 = \"test3\";\n" + 
-		"	            ^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 9)\n" + 
-		"	String s6 = \"test4\";\n" + 
-		"	            ^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 10)\n" + 
-		"	System.out.println(\"test5\");\n" + 
-		"	                   ^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-public void test003() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" +
-			"	String s2 = \"test1\"; //$NON-NLS-1$\n" +
-			"	String s3 = \"test2\"; //$NON-NLS-1$//$NON-NLS-2$\n" +
-			"	\n" +
-			"	@SuppressWarnings(\"nls\")\n" +
-			"	void foo() {\n" +
-			"		String s4 = null;\n" +
-			"		String s5 = null;//$NON-NLS-1$\n" +
-			"		String s6 = \"test4\";\n" +
-			"		System.out.println(\"test5\");\n" +
-			"	}\n" +
-			"}",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	String s3 = \"test2\"; //$NON-NLS-1$//$NON-NLS-2$\n" + 
-		"	                                  ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	String s5 = null;//$NON-NLS-1$\n" + 
-		"	                 ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 9)\n" + 
-		"	String s6 = \"test4\";\n" + 
-		"	            ^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 10)\n" + 
-		"	System.out.println(\"test5\");\n" + 
-		"	                   ^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-public void test004() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.WARNING);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" +
-			"	String s2 = \"test1\"; //$NON-NLS-1$\n" +
-			"	String s3 = \"test2\"; //$NON-NLS-1$//$NON-NLS-2$\n" +
-			"	\n" +
-			"	@SuppressWarnings(\"nls\")\n" +
-			"	void foo() {\n" +
-			"		String s4 = null;\n" +
-			"		String s5 = null;//$NON-NLS-1$\n" +
-			"		String s6 = \"test4\";\n" +
-			"		System.out.println(\"test5\");\n" +
-			"	}\n" +
-			"}",
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 3)\n" + 
-		"	String s3 = \"test2\"; //$NON-NLS-1$//$NON-NLS-2$\n" + 
-		"	                                  ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162903
-public void test005() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" +
-			"	@SuppressWarnings(\"nls\")\n" +
-			"	void foo() {\n" +
-			"		String s6 = \"SUCCESS\";\n" +
-			"		System.out.println(s6);\n" +
-			"	}\n" +
-			"}",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	String s6 = \"SUCCESS\";\n" + 
-		"	            ^^^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162903
-public void test006() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.WARNING);
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"	@SuppressWarnings(\"nls\")\n" +
-			"	public static void main(String[] args) {\n" +
-			"		String s6 = \"SUCCESS\";\n" +
-			"		System.out.println(s6);\n" +
-			"	}\n" +
-			"}",
-		},
-		"SUCCESS",
-		null,
-		true,
-		null,
-		customOptions,
-		null);
-}
-public static Class testClass() {
-	return ExternalizeStringLiterals15Test.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ExternalizeStringLiteralsTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ExternalizeStringLiteralsTest.java
deleted file mode 100644
index e00ae3f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ExternalizeStringLiteralsTest.java
+++ /dev/null
@@ -1,515 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-import junit.framework.Test;
-
-public class ExternalizeStringLiteralsTest extends AbstractRegressionTest {
-
-static {
-//	TESTS_NAMES = new String[] { "test000" };
-//	TESTS_NUMBERS = new int[] { 16 };
-//	TESTS_RANGE = new int[] { 11, -1 };
-}
-public ExternalizeStringLiteralsTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-
-public void test001() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"A.js",
-			"	function foo() {\n" + 
-			"		println(\"a\");\n" + 
-			"	} //$NON-NLS-1$	\n" + 
-			""
-		},
-		"----------\n" + 
-		"1. ERROR in A.js (at line 2)\n" + 
-		"	println(\"a\");\n" + 
-		"	                   ^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"2. ERROR in A.js (at line 3)\n" + 
-		"	} //$NON-NLS-1$	\n" + 
-		"	  ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-
-public void test002() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	var s = null; //$NON-NLS-1$\n" +
-			"	var s2 = \"\"; //$NON-NLS-1$\n" +
-			"	var s3 = \"\"; //$NON-NLS-1$//$NON-NLS-2$\n" +
-			"	\n" +
-			"	function foo() {\n" +
-			"		var s4 = null; //$NON-NLS-1$\n" +
-			"		var s5 = \"\"; //$NON-NLS-1$\n" +
-			"		var s6 = \"\"; //$NON-NLS-2$//$NON-NLS-1$\n" +
-			"		println(\"foo\");//$NON-NLS-1$//$NON-NLS-2$\n" +
-			"	} //$NON-NLS-1$\n" +
-			"	//$NON-NLS-1$\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 1)\n" + 
-		"	var s = null; //$NON-NLS-1$\n" + 
-		"	                 ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 3)\n" + 
-		"	var s3 = \"\"; //$NON-NLS-1$//$NON-NLS-2$\n" + 
-		"	                             ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"3. ERROR in X.js (at line 6)\n" + 
-		"	var s4 = null; //$NON-NLS-1$\n" + 
-		"	                  ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"4. ERROR in X.js (at line 8)\n" + 
-		"	var s6 = \"\"; //$NON-NLS-2$//$NON-NLS-1$\n" + 
-		"	                ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"5. ERROR in X.js (at line 9)\n" + 
-		"	println(\"foo\");//$NON-NLS-1$//$NON-NLS-2$\n" + 
-		"	                                       ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"6. ERROR in X.js (at line 10)\n" + 
-		"	} //$NON-NLS-1$\n" + 
-		"	  ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-public void test003() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"Foo.js",
-			"    function foo() {\n" + 
-			"		println(\"string1\" + \"string2\" //$NON-NLS-1$\n" + 
-			"		);\n" + 
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in Foo.js (at line 2)\n" + 
-		"	println(\"string1\" + \"string2\" //$NON-NLS-1$\n" + 
-		"	                               ^^^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\Foo.js (at line 4)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-public void test004() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"Foo.js",
-			"    function foo() {\n" + 
-			"		//$NON-NLS-1$\n" + 
-			"	 };\n" + 
-			"",
-		}, 
-		"",
-		null,
-		true,
-		null,
-		customOptions,
-		null);	
-}
-public void test005() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main( args) {\r\n" + 
-			"		var s = \"\"; //$NON-NLS-1$//$NON-NLS-1$\r\n" + 
-			"    }\r\n" + 
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"\"; //$NON-NLS-1$//$NON-NLS-1$\n" + 
-		"	                            ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-public void test006() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	public static function main(String[] args) {\r\n" + 
-			"		var s = \"\"; //$NON-NLS-1$//$NON-NLS-1$\r\n" + 
-			"    \r\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"\"; //$NON-NLS-1$//$NON-NLS-1$\n" + 
-		"	                            ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 3)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-public void test007() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main(args) {\r\n" + 
-			"		var s = null; //$NON-NLS-1$//$NON-NLS-1$\r\n" + 
-			"    }\r\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s = null; //$NON-NLS-1$//$NON-NLS-1$\n" + 
-		"	                 ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 2)\n" + 
-		"	var s = null; //$NON-NLS-1$//$NON-NLS-1$\n" + 
-		"	                              ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-public void test008() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main(args) {\r\n" + 
-			"		var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\r\n" + 
-			"    }\r\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	           ^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	                   ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"3. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	                                ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-public void test009() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"Foo.js",
-			"    function foo(i) {\n" + 
-			"		println(\"test1\" + i + \"test2\"); //$NON-NLS-2$//$NON-NLS-1$\r\n" + 
-			"	 };\n" + 
-			"",
-		}, 
-		"",
-		null,
-		true,
-		null,
-		customOptions,
-		null);	
-}
-public void test010() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main(args) {\n" +
-			"		var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" +
-			"		var i = s;\n" +
-			"		println(s);\n" +
-			"    }\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	           ^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	                   ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"3. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	                                ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-public void test011() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main(args) {\n" +
-			"		var i = null;\n" +
-			"		var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" +
-			"		println(s + i);\n" +
-			"    }\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 3)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	           ^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"3. ERROR in X.js (at line 3)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	                   ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"4. ERROR in X.js (at line 3)\n" + 
-		"	var s = \"test\"; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	                                ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-public void test012() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main(args) {\n" +
-			"		var i = null;\n" +
-			"		var s = null; //$NON-NLS-2$//$NON-NLS-3$\n" +
-			"		println(s + i);\n" +
-			"    }\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 3)\n" + 
-		"	var s = null; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	                 ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"3. ERROR in X.js (at line 3)\n" + 
-		"	var s = null; //$NON-NLS-2$//$NON-NLS-3$\n" + 
-		"	                              ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-public void test013() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main(args) {\n" +
-			"		var s = \"test1\";\n" +
-			"		println(s);\n" +
-			"    }\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test1\";\n" + 
-		"	           ^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=112973
-public void test014() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function main(args) {\n" +
-			"		var s = \"test1\"; //$NON-NLS-?$\n" +
-			"		println(s);\n" +
-			"    }\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test1\"; //$NON-NLS-?$\n" + 
-		"	           ^^^^^^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 2)\n" + 
-		"	var s = \"test1\"; //$NON-NLS-?$\n" + 
-		"	                    ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=114077
-public void test015() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	public function foo() {\n" +
-			"		var s1= null; //$NON-NLS-1$\n" +
-			"		var s2= \"\";\n" +
-			"	}\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 2)\n" + 
-		"	var s1= null; //$NON-NLS-1$\n" + 
-		"	                 ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 3)\n" + 
-		"	var s2= \"\";\n" + 
-		"	           ^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=114077
-public void test016() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	var s1= null; //$NON-NLS-1$\n" +
-			"	\n" +
-			"	function foo() {\n" +
-			"		var s2= \"\";\n" +
-			"	}\n" +
-			"}",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 1)\n" + 
-		"	private var s1= null; //$NON-NLS-1$\n" + 
-		"	                         ^^^^^^^^^^^^^\n" + 
-		"Unnecessary $NON-NLS$ tag\n" + 
-		"----------\n" + 
-		"2. ERROR in X.js (at line 4)\n" + 
-		"	var s2= \"\";\n" + 
-		"	           ^^\n" + 
-		"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);	
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148352
-public void test017() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.js",
-			"	function foo(locationInAST) {\n" +
-			"		var enclosingType= \"\"; //$NON-NLS-1$\n" +
-			"		if (locationInAST != null) {\n" +
-			"			enclosingType.toString()\n" +
-			"		}\n" +
-			"	}\n" +
-			"",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.js (at line 5)\n" + 
-		"	enclosingType.toString()\n" + 
-		"	                       ^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions,
-		false,
-		false,
-		false,
-		false,
-		true,
-		null);	
-}
-public static Class testClass() {
-	return ExternalizeStringLiteralsTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/FieldAccessTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/FieldAccessTest.java
deleted file mode 100644
index 81e689b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/FieldAccessTest.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class FieldAccessTest extends AbstractRegressionTest {
-	static {
-//		TESTS_NAMES = new String[] { "test000" };
-//		TESTS_NUMBERS = new int[] { 5, 6 };
-//		TESTS_RANGE = new int[] { 21, 50 };
-	}
-
-public FieldAccessTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-protected Map getCompilerOptions() {
-	Map options = super.getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportIndirectStaticAccess, CompilerOptions.ERROR);
-	return options;
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=149004
-public void test001() {
-	this.runConformTest(
-		new String[] {
-			"foo/BaseFoo.java",
-			"package foo;\n" + 
-			"class BaseFoo {\n" + 
-			" public static final int VAL = 0;\n" + 
-			"}",
-			"foo/NextFoo.java",
-			"package foo;\n" + 
-			"public class NextFoo extends BaseFoo {\n" + 
-			"}",
-			"bar/Bar.java",
-			"package bar;\n" + 
-			"public class Bar {\n" + 
-			" int v = foo.NextFoo.VAL;\n" + 
-			"}"
-		},
-		"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=149004
-public void test002() {
-	this.runNegativeTest(
-		new String[] {
-			"foo/BaseFoo.java",
-			"package foo;\n" + 
-			"public class BaseFoo {\n" + 
-			" public static final int VAL = 0;\n" + 
-			"}",
-			"foo/NextFoo.java",
-			"package foo;\n" + 
-			"public class NextFoo extends BaseFoo {\n" + 
-			"}",
-			"bar/Bar.java",
-			"package bar;\n" + 
-			"public class Bar {\n" + 
-			" int v = foo.NextFoo.VAL;\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in bar\\Bar.java (at line 3)\n" + 
-		"	int v = foo.NextFoo.VAL;\n" + 
-		"	                    ^^^\n" + 
-		"The static field BaseFoo.VAL should be accessed directly\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=149004
-public void test003() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportNonStaticAccessToStatic, CompilerOptions.IGNORE);
-	this.runConformTest(
-		new String[] {
-			"foo/BaseFoo.java",
-			"package foo;\n" + 
-			"class BaseFoo {\n" + 
-			" public static final int VAL = 0;\n" + 
-			"}",
-			"foo/NextFoo.java",
-			"package foo;\n" + 
-			"public class NextFoo extends BaseFoo {\n" + 
-			"}",
-			"bar/Bar.java",
-			"package bar;\n" + 
-			"import foo.NextFoo;\n" +
-			"public class Bar {\n" +
-			"	NextFoo[] tab = new NextFoo[] { new NextFoo() };\n" +
-			"	int v = tab[0].VAL;\n" + 
-			"}"
-		},
-		"",
-		null,
-		true,
-		null,
-		options,
-		null);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=149004
-public void test004() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportNonStaticAccessToStatic, CompilerOptions.IGNORE);
-	this.runNegativeTest(
-		new String[] {
-			"foo/BaseFoo.java",
-			"package foo;\n" + 
-			"public class BaseFoo {\n" + 
-			" public static final int VAL = 0;\n" + 
-			"}",
-			"foo/NextFoo.java",
-			"package foo;\n" + 
-			"public class NextFoo extends BaseFoo {\n" + 
-			"}",
-			"bar/Bar.java",
-			"package bar;\n" + 
-			"import foo.NextFoo;\n" +
-			"public class Bar {\n" +
-			"	NextFoo[] tab = new NextFoo[] { new NextFoo() };\n" +
-			"	int v = tab[0].VAL;\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in bar\\Bar.java (at line 5)\n" + 
-		"	int v = tab[0].VAL;\n" + 
-		"	               ^^^\n" + 
-		"The static field BaseFoo.VAL should be accessed directly\n" + 
-		"----------\n",
-		null,
-		true,
-		options);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=142234
-public void test005() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportUnqualifiedFieldAccess, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	private String memberVariable;\n" + 
-			"	public String getMemberVariable() {\n" + 
-			"		return (memberVariable);\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	return (memberVariable);\n" + 
-		"	        ^^^^^^^^^^^^^^\n" + 
-		"Unqualified access to the field X.memberVariable \n" + 
-		"----------\n",
-		null,
-		true,
-		options);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=142234
-public void test006() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportUnqualifiedFieldAccess, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	private String memberVariable;\n" + 
-			"	public String getMemberVariable() {\n" + 
-			"		return \\u0028memberVariable\\u0029;\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	return \\u0028memberVariable\\u0029;\n" + 
-		"	             ^^^^^^^^^^^^^^\n" + 
-		"Unqualified access to the field X.memberVariable \n" + 
-		"----------\n",
-		null,
-		true,
-		options);
-}
-public static Class testClass() {
-	return FieldAccessTest.class;
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/FlowAnalysisTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/FlowAnalysisTest.java
deleted file mode 100644
index 5c6e0c6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/FlowAnalysisTest.java
+++ /dev/null
@@ -1,1242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;
-
-public class FlowAnalysisTest extends AbstractRegressionTest {
-	
-public FlowAnalysisTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-
-public void test001() {
-	this.runNegativeTest(new String[] {
-		"X.java", // =================
-		"public class X {\n" + 
-		"	public String foo(int i) {\n" + 
-		"		if (true) {\n" + 
-		"			return null;\n" + 
-		"		}\n" + 
-		"		if (i > 0) {\n" + 
-		"			return null;\n" + 
-		"		}\n" + 
-		"	}	\n" + 
-		"}\n",
-	},
-	"----------\n" + 
-	"1. ERROR in X.java (at line 2)\n" + 
-	"	public String foo(int i) {\n" + 
-	"	              ^^^^^^^^^^\n" + 
-	"This method must return a result of type String\n" + 
-	"----------\n");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127255
-// Compiler incorrectly reports "variable may not have been initialized"
-public void test002() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportParameterAssignment, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test() {\n" + 
-			"        int c1, c2;\n" + 
-			"        while ((char) (c1 = 0) == 1) {}\n" + 
-			"        if (c1 == 0) {} // silent\n" + 
-			"        if (c2 == 0) {} // complain\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (c2 == 0) {} // complain\n" + 
-		"	    ^^\n" + 
-		"The local variable c2 may not have been initialized\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127255
-// Compiler incorrectly reports "variable may not have been initialized"
-public void test003() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportParameterAssignment, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test() {\n" + 
-			"        int c1, c2;\n" + 
-			"        while ((char) (c1 = 0) == 1) ;\n" + 
-			"        if (c1 == 0) {} // silent\n" + 
-			"        if (c2 == 0) {} // complain\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (c2 == 0) {} // complain\n" + 
-		"	    ^^\n" + 
-		"The local variable c2 may not have been initialized\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127255
-// Compiler incorrectly reports "variable may not have been initialized"
-public void test004() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportParameterAssignment, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test() {\n" + 
-			"        int c1, c2;\n" + 
-			"        for (;(char) (c1 = 0) == 1;) ;\n" + 
-			"        if (c1 == 0) {} // silent\n" + 
-			"        if (c2 == 0) {} // complain\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (c2 == 0) {} // complain\n" + 
-		"	    ^^\n" + 
-		"The local variable c2 may not have been initialized\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127255
-// Compiler incorrectly reports "variable may not have been initialized"
-public void test005() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportParameterAssignment, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test() {\n" + 
-			"        int c1, c2;\n" + 
-			"        do ; while ((char) (c1 = 0) == 1);\n" + 
-			"        if (c1 == 0) {} // silent\n" + 
-			"        if (c2 == 0) {} // complain\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (c2 == 0) {} // complain\n" + 
-		"	    ^^\n" + 
-		"The local variable c2 may not have been initialized\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// basic scenario
-public void test006() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0); // silent because first case\n" + 
-			"        case 1:\n" + 
-			"            System.out.println(1); // complain: possible fall-through\n" + 
-			"            break;\n" + 
-			"        case 2:\n" + 
-			"            System.out.println(3); // silent because of break\n" + 
-			"            return;\n" + 
-			"        case 3:                            // silent because of return\n" + 
-			"        case 4:                            // silent because grouped cases\n" + 
-			"        default:\n" + 
-			"            System.out.println(\"default\"); //$NON-NLS-1$\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	case 1:\n" + 
-		"	^^^^^^\n" + 
-		"Switch case may be entered by falling through previous case\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// SuppressWarnings effect - explicit fallthrough token
-public void test007() {
-	if (COMPLIANCE_1_5.equals(this.complianceLevel)) {
-		Map options = getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.WARNING);
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"    @SuppressWarnings(\"fallthrough\")\n" + 
-				"    public void test(int p) {\n" + 
-				"        switch (p) {\n" + 
-				"        case 0:\n" + 
-				"            System.out.println(0); // silent because first case\n" + 
-				"        case 1:\n" + 
-				"            System.out.println(1); // silent because of SuppressWarnings\n" + 
-				"        }\n" + 
-				"    }\n" +
-				"	Zork z;\n" + // complain on Zork (unknown type)
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 11)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n",
-			null, true, options);
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// deep return (1) - fake reachable is seen as reachable
-public void test008() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0);\n" +
-			"            if (true) {\n" +
-			"              return;\n" +
-			"            }\n" + 
-			"        case 1:\n" + 
-			"            System.out.println(1);\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	case 1:\n" + 
-		"	^^^^^^\n" + 
-		"Switch case may be entered by falling through previous case\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// deep return (2)
-public void test009() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p, boolean b) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0);\n" +
-			"            if (b) {\n" +
-			"              return;\n" +
-			"            }\n" + 
-			"            else {\n" +
-			"              return;\n" +
-			"            }\n" + 
-			"        case 1:\n" + 
-			"            System.out.println(1);\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"",
-		null, true, null, options, null);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// deep return (3), limit: cannot recognize that we won't return
-public void test010() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p, boolean b) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.exit(0);\n" +
-			"        case 1:\n" + // complain 
-			"            System.out.println(1);\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	case 1:\n" + 
-		"	^^^^^^\n" + 
-		"Switch case may be entered by falling through previous case\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// SuppressWarnings effect - implicit, using all token
-public void test011() {
-	if (COMPLIANCE_1_5.equals(this.complianceLevel)) {
-		Map options = getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.WARNING);
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"    @SuppressWarnings(\"all\")\n" + 
-				"    public void test(int p) {\n" + 
-				"        switch (p) {\n" + 
-				"        case 0:\n" + 
-				"            System.out.println(0); // silent because first case\n" + 
-				"        case 1:\n" + 
-				"            System.out.println(1); // silent because of SuppressWarnings\n" + 
-				"        }\n" + 
-				"    }\n" +
-				"	Zork z;\n" + // complain on Zork (unknown type)
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 11)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n",
-			null, true, options);
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127730
-// [compiler] skip fall-through case warning when the fall-through is documented
-// skip because of comment
-public void _test012() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0); // silent because first case\n" + 
-			"            // on purpose fall-through\n" + 
-			"        case 1:\n" + 
-			"            System.out.println(1); // silent because of comment alone on its line above \n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"",
-		null, true, null, options, null);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127730
-// [compiler] skip fall-through case warning when the fall-through is documented
-// skip because of comment - default label
-public void _test013() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0); // silent because first case\n" + 
-			"            // on purpose fall-through\n" + 
-			"        default:\n" + 
-			"            System.out.println(1); // silent because of comment alone on its line above \n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"",
-		null, true, null, options, null);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// basic scenario: default label
-public void test014() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0); // silent because first case\n" +
-						// note: the comment above is not alone on its line, hence it does not
-						// protect against fall-through diagnostic
-			"        default:\n" + 
-			"            System.out.println(1); // complain: possible fall-through\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	default:\n" + 
-		"	^^^^^^^\n" + 
-		"Switch case may be entered by falling through previous case\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// skip because of comment - variants
-public void test015() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0); // silent because first case\n" + 
-			"            // on purpose fall-through\n" +
-			"\n" + // extraneous line breaks fall-through protection 
-			"        case 1:\n" + 
-			"            System.out.println(1); // silent because of comment alone on its line above \n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	case 1:\n" + 
-		"	^^^^^^\n" + 
-		"Switch case may be entered by falling through previous case\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// skip because of comment - variants
-public void test016() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0); // silent because first case\n" + 
-			"            // on purpose fall-through\n" +
-			"            /* other comment */\n" + // non-single line comment breaks fall-through protection 
-			"        case 1:\n" + 
-			"            System.out.println(1); // silent because of comment alone on its line above \n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	case 1:\n" + 
-		"	^^^^^^\n" + 
-		"Switch case may be entered by falling through previous case\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127730
-// [compiler] skip fall-through case warning when the fall-through is documented
-// skip because of comment - variants
-public void _test017() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0);\n" + 
-			"// on purpose fall-through\n" + // very beginning of line
-			"        case 1:\n" + 
-			"            System.out.println(1); // silent because of comment alone on its line above \n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"",
-		null, true, null, options, null);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127730
-// [compiler] skip fall-through case warning when the fall-through is documented
-// skip because of comment - variants
-public void _test018() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0);\n" + 
-			"            //\n" + // empty line comment alone upon its line
-			"        case 1:\n" + 
-			"            System.out.println(1); // silent because of comment alone on its line above \n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"",
-		null, true, null, options, null);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// conditioned break
-public void test019() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportFallthroughCase, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p, boolean b) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            if (b) {\n" +
-			"              break;\n" +
-			"            }\n" +
-			"        case 1:\n" + 
-			"            System.out.println(1); // silent because of comment alone on its line above \n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	case 1:\n" + 
-		"	^^^^^^\n" + 
-		"Switch case may be entered by falling through previous case\n" + 
-		"----------\n",
-		null, true, options);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// default reporting is ignore
-public void test020() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public void test(int p) {\n" + 
-			"        switch (p) {\n" + 
-			"        case 0:\n" + 
-			"            System.out.println(0); // silent because first case\n" + 
-			"        case 1:\n" + 
-			"            System.out.println(1); // silent because default level is ignore\n" + 
-			"        }\n" + 
-			"    }\n" +
-			"	Zork z;\n" + // complain on Zork (unknown type)
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=67836
-// [compiler] warning on fall through
-// problem category
-public void test021() {
-	if (ProblemReporter.getProblemCategory(ProblemSeverities.Warning, IProblem.FallthroughCase) != 
-			CategorizedProblem.CAT_POTENTIAL_PROGRAMMING_PROBLEM) {
-		fail("bad category for fall-through case problem");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128840
-public void test022() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportEmptyStatement, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		if (true)\n" + 
-			"            ;\n" + 
-			"        else\n" + 
-			"            ;\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	;\n" + 
-		"	^\n" + 
-		"Empty control-flow statement\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	;\n" + 
-		"	^\n" + 
-		"Empty control-flow statement\n" + 
-		"----------\n",
-		null, true, options);
-}
-public void test023() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		final X x;\n" + 
-			"		while (true) {\n" + 
-			"			if (true) {\n" + 
-			"				break;\n" + 
-			"			}\n" + 
-			"			x = new X();\n" + 
-			"		}\n" + 
-			"		x.foo();\n" + 
-			"	}\n" + 
-			"	public void foo() {\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	x.foo();\n" + 
-		"	^\n" + 
-		"The local variable x may not have been initialized\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=132974
-public void test024() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public void foo(boolean b) {\n" + 
-			"    final Object l;\n" + 
-			"    do {\n" + 
-			"      if (b) {\n" + 
-			"        l = new Object();\n" + 
-			"        break;\n" + 
-			"      }\n" + 
-			"    } while (false);\n" + 
-			"    l.toString();\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	l.toString();\n" + 
-		"	^\n" + 
-		"The local variable l may not have been initialized\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=135602
-public void test025() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		System.out.print(\"[starting]\");\n" + 
-			"		X l = new X();\n" + 
-			"		l.testLoop();\n" + 
-			"		System.out.println(\"[finished]\");\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public void testLoop() {\n" + 
-			"		int loops = 0;\n" + 
-			"\n" + 
-			"		do {\n" + 
-			"			System.out.print(\"[Loop \" + loops + \"]\");\n" + 
-			"			if (loops > 2) {\n" + 
-			"				return;\n" + 
-			"			}\n" + 
-			"\n" + 
-			"			if (loops < 4) {\n" + 
-			"				++loops;\n" + 
-			"				continue; \n" + 
-			"			}\n" + 
-			"		} while (false);\n" + 
-			"	}\n" + 
-			"\n" + 
-			"}\n"
-		},
-		"[starting][Loop 0][finished]");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=137298
-public void test026() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o1) {\n" + 
-			"    int a00, a01, a02, a03, a04, a05, a06, a07, a08, a09;\n" + 
-			"    int a10, a11, a12, a13, a14, a15, a16, a17, a18, a19;\n" + 
-			"    int a20, a21, a22, a23, a24, a25, a26, a27, a28, a29;\n" + 
-			"    int a30, a31, a32, a33, a34, a35, a36, a37, a38, a39;\n" + 
-			"    int a40, a41, a42, a43, a44, a45, a46, a47, a48, a49;\n" + 
-			"    int a50, a51, a52, a53, a54, a55, a56, a57, a58, a59;\n" + 
-			"    int a60, a61, a62, a63, a64, a65, a66, a67, a68, a69;\n" + 
-			"    String s;\n" + 
-			"    Object o2 = o1;\n" + 
-			"    if (o2 == null) {\n" + 
-			"      s = \"\";\n" + 
-			"    }\n" + 
-			"    System.out.println(s);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 15)\n" + 
-		"	System.out.println(s);\n" + 
-		"	                   ^\n" + 
-		"The local variable s may not have been initialized\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Non-recursive approach for deep binary expressions. Check that the
-// flow analysis doesn't break.
-public void test027() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static void main(String args[]) {\n" + 
-			"    String s;\n" + 
-			"    if (args.length == 0) {\n" + 
-			"      s = \"s\";\n" + 
-			"    } else {\n" + 
-			"      s = args[0];\n" + 
-			"    }\n" + 
-			"    System.out.println(s + \"-\" + s + \"-\" + s + \"-\" +\n" +
-			"                       s + \"-\" + s + \"-\" + s + \"-\" +\n" + 
-			"                       s + \"-\" + s + \"-\" + s + \"-\" +\n" + 
-			"                       s + \"-\" + s + \"-\" + s + \"-\" +\n" + 
-			"                       s + \"-\" + s + \"-\" + s + \"-\");\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"s-s-s-s-s-s-s-s-s-s-s-s-s-s-s-");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=155423
-public void test028() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"   {\n" + 
-			"      if (true) throw new NullPointerException();\n" + 
-			"   }\n" + 
-			"}\n" // =================
-		},
-		"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=155423 - variation
-public void test029() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"   {\n" + 
-			"      if (true) throw new NullPointerException();\n" + 
-			"   }\n" + 
-			"   X() {\n" + 
-			"      System.out.println();\n" + 
-			"   }\n" + 
-			"}\n", // =================
-		},
-		"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=155423 - variation
-public void test030() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"	Y(Object o) {\n" + 
-			"		System.out.print(o);\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class X extends Y {\n" + 
-			"	{\n" + 
-			"		if (true)\n" + 
-			"			throw new NullPointerException();\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	X() {\n" + 
-			"		super(new Object() {\n" + 
-			"			public String toString() {\n" + 
-			"				return \"SUCCESS:\";\n" + 
-			"			}\n" + 
-			"		});\n" + 
-			"		System.out.println();\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		try {\n" + 
-			"			new X();\n" + 
-			"		} catch(NullPointerException e) {\n" + 
-			"			System.out.println(\"caught:NPE\");\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n", // =================
-		},
-		"SUCCESS:caught:NPE");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=155423 - variation
-public void test031() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"	Y(Object o) {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class X extends Y {\n" + 
-			"	final int blank;\n" + 
-			"	{\n" + 
-			"		if (true)\n" + 
-			"			throw new NullPointerException();\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	X() {\n" + 
-			"		super(new Object() {});\n" + 
-			"	}\n" + 
-			"}\n", // =================
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	X() {\n" + 
-		"	^^^\n" + 
-		"The blank final field blank may not have been initialized\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=155423 - variation
-public void test032() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"	Y(int i) {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class X extends Y {\n" + 
-			"	final int blank;\n" + 
-			"	{\n" + 
-			"		if (true)\n" + 
-			"			throw new NullPointerException();\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	X() {\n" + 
-			"		super(blank = 0);\n" + 
-			"	}\n" + 
-			"}\n", // =================
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 14)\n" + 
-		"	super(blank = 0);\n" + 
-		"	      ^^^^^\n" + 
-		"Cannot refer to an instance field blank while explicitly invoking a constructor\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=155423 - variation
-public void test033() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"	Y(int i) {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"public class X extends Y {\n" + 
-			"	final int blank;\n" + 
-			"	{\n" + 
-			"		if (true)\n" + 
-			"			throw new NullPointerException();\n" + 
-			"	}\n" + 
-			"	X() {\n" + 
-			"		super(0);\n" + 
-			"		blank = 0;\n" + 
-			"	}\n" + 
-			"}\n", // =================
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162918
-public void test034() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo1() {\n" + 
-			"    switch (1) {\n" + 
-			"    case 0:\n" + 
-			"      final int i = 1;\n" + 
-			"    case i: // should complain: i not initialized\n" + 
-			"      System.out.println(i); // should complain: i not initialized\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	case i: // should complain: i not initialized\n" + 
-		"	     ^\n" + 
-		"The local variable i may not have been initialized\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 7)\n" + 
-		"	System.out.println(i); // should complain: i not initialized\n" + 
-		"	                   ^\n" + 
-		"The local variable i may not have been initialized\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162918
-// variant
-public void test035() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo2() {\n" + 
-			"    switch (1) {\n" + 
-			"    case 0:\n" + 
-			"      int j = 0;\n" + 
-			"    case 1:\n" + 
-			"      System.out.println(j); // should complain: j not initialized\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	System.out.println(j); // should complain: j not initialized\n" + 
-		"	                   ^\n" + 
-		"The local variable j may not have been initialized\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162918
-// variant - not a flow analysis issue per se, contrast with 34 and 35 above
-public void test036() {
-	String src =
-		"public class X {\n" + 
-		"  void foo3() {\n" + 
-		"    switch (1) {\n" + 
-		"    case 0:\n" + 
-		"      class Local {\n" + 
-		"      }\n" + 
-		"      ;\n" + 
-		"    case 1:\n" + 
-		"      new Local();\n" +  // complain for compliance >= 1.4
-		"    }\n" + 
-		"  }\n" + 
-		"}";
-	if (complianceLevel.compareTo(COMPLIANCE_1_3) <= 0) {
-		this.runConformTest(
-				new String[] {
-					"X.java",
-					src
-				},
-				""
-			);
-	} else {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				src
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 9)\n" + 
-			"	new Local();\n" + 
-			"	    ^^^^^\n" + 
-			"Local cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166641
-public void test037() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    if (false) {\n" + 
-			"      String s;\n" + 
-			"      System.out.println(s);\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	System.out.println(s);\n" + 
-		"	                   ^\n" + 
-		"The local variable s may not have been initialized\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166641
-// variant: the declaration is outside of the fake reachable block
-public void test038() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    String s;\n" + 
-			"    if (false) {\n" + 
-			"      System.out.println(s);\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166641
-// variant with deeper nesting
-public void test039() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    if (false) {\n" + 
-			"      String s;\n" + 
-			"      if (System.out != null) {\n" +
-			"        System.out.println(s);\n" +
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	System.out.println(s);\n" + 
-		"	                   ^\n" + 
-		"The local variable s may not have been initialized\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166641
-// variant - checking duplicate initialization of final variables
-public void test040() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    final String s = \"\";\n" + 
-			"    if (false) {\n" + 
-			"      s = \"\";\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	s = \"\";\n" + 
-		"	^\n" + 
-		"The final local variable s cannot be assigned. It must be blank and not using a compound assignment\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166641
-// variant - checking duplicate initialization of final variables
-public void test041() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    final String s;\n" + 
-			"    s = \"\";\n" + 
-			"    if (false) {\n" + 
-			"      s = \"\";\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166641
-// variant - checking duplicate initialization of final variables
-public void test042() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    final String s;\n" + 
-			"    if (false) {\n" + 
-			"      s = \"\";\n" + 
-			"    }\n" + 
-			"    s = \"\";\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	s = \"\";\n" + 
-		"	^\n" + 
-		"The final local variable s may already have been assigned\n" + 
-		"----------\n");
-}
-// switch and definite assignment
-public void test043() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public abstract class X {\n" + 
-			"  public static void main(String[] args) {\n" + 
-			"    for (int i = 0; i < 3; i++) {\n" + 
-			"      System.out.print(i);\n" + 
-			"      switch (i) {\n" + 
-			"        case 1:\n" + 
-			"          final int j;\n" + 
-			"          j = 1;\n" + 
-			"          System.out.println(j);\n" + 
-			"          break;\n" + 
-			"        case 2:\n" + 
-			"          j = 2;\n" + 
-			"          System.out.println(j);\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"011\n22");
-}
-// switch and definite assignment
-public void test044() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public abstract class X {\n" + 
-			"  public static void main(String[] args) {\n" + 
-			"    for (int i = 0; i < 3; i++) {\n" + 
-			"      System.out.print(i);\n" + 
-			"      switch (i) {\n" + 
-			"        case 1:\n" + 
-			"          final int j = 1;\n" + 
-			"          System.out.println(j);\n" + 
-			"          break;\n" + 
-			"        case 2:\n" + 
-			"          j = 2;\n" + 
-			"          System.out.println(j);\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 11)\n" + 
-		"	j = 2;\n" + 
-		"	^\n" + 
-		"The final local variable j cannot be assigned. It must be blank and not using a compound assignment\n" + 
-		"----------\n");
-}
-// switch and definite assignment
-// **
-public void test045() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public abstract class X {\n" + 
-			"  public static void main(String[] args) {\n" + 
-			"    switch (args.length) {\n" + 
-			"      case 1:\n" + 
-			"        final int j = 1;\n" + 
-			"      case 2:\n" + 
-			"        switch (5) {\n" + 
-			"          case j:\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	case j:\n" + 
-		"	     ^\n" + 
-		"The local variable j may not have been initialized\n" + 
-		"----------\n");
-}
-// for and definite assignment
-// **
-public void test046() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public abstract class X {\n" + 
-			"  public static void main(String args[]) {\n" + 
-			"    for (final int i; 0 < (i = 1); i = i + 1) {\n" + 
-			"      System.out.println(i);\n" + 
-			"      break;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"1");
-}
-public static Class testClass() {
-	return FlowAnalysisTest.class;
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ForStatementTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ForStatementTest.java
deleted file mode 100644
index b1ff69f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ForStatementTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class ForStatementTest extends AbstractRegressionTest {
-	
-public ForStatementTest(String name) {
-	super(name);
-}
-
-protected Map getCompilerOptions() {
-	Map options = super.getCompilerOptions();
-	options.put(CompilerOptions.OPTION_PreserveUnusedLocal, CompilerOptions.OPTIMIZE_OUT);
-	return options;
-}
-// Static initializer to specify tests subset using TESTS_* static variables
-// All specified tests which do not belong to the class are skipped...
-static {
-//	TESTS_NAMES = new String[] { "test000" };
-//	TESTS_NUMBERS = new int[] { 45, 46 };
-//	TESTS_RANGE = new int[] { 34, 38 };
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-public void test001() {
-	this.runConformTest(
-		new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static Object m(int[] arg) {\n" + 
-				"		yyLoop: for (int i = 0;; ++i) {\n" + 
-				"			yyInner: for (;;) {\n" + 
-				"				switch (arg[i]) {\n" + 
-				"					case 0:\n" + 
-				"						break;\n" + 
-				"					case 1:\n" + 
-				"						continue yyInner;\n" + 
-				"				}\n" + 
-				"				if (i == 32)\n" + 
-				"					return arg;\n" + 
-				"				if (i == 12)\n" + 
-				"					break;\n" + 
-				"				continue yyLoop;\n" + 
-				"			}\n" + 
-				"			if (i == 32)\n" + 
-				"				return null;\n" + 
-				"			if (i > 7)\n" + 
-				"				continue yyLoop;\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		System.out.println(\"SUCCESS\");\n" + 
-				"	}\n" + 
-				"}\n",
-		},
-		"SUCCESS");
-}
-public static Class testClass() {
-	return ForStatementTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InMemoryNameEnvironment.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InMemoryNameEnvironment.java
deleted file mode 100644
index 5ebfd2a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InMemoryNameEnvironment.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.env.*;
-import org.eclipse.wst.jsdt.internal.compiler.impl.ITypeRequestor;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.Binding;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfObject;
-
-public class InMemoryNameEnvironment implements INameEnvironment {
-	INameEnvironment[] classLibs;
-	HashtableOfObject compilationUnits = new HashtableOfObject();
-public InMemoryNameEnvironment(String[] compilationUnits, INameEnvironment[] classLibs) {
-	this.classLibs = classLibs;
-	for (int i = 0, length = compilationUnits.length - 1; i < length; i += 2) {
-		String fileName = compilationUnits[i];
-		char[] contents = compilationUnits[i + 1].toCharArray();
-		String dirName = "";
-		int lastSlash = -1;
-		if ((lastSlash = fileName.lastIndexOf('/')) != -1) {
-			dirName = fileName.substring(0, lastSlash);
-		}
-		char[] packageName = dirName.replace('/', '.').toCharArray();
-		char[] cuName = fileName.substring(lastSlash == -1 ? 0 : lastSlash + 1, fileName.length() - 3).toCharArray(); // remove ".java"
-		HashtableOfObject cus = (HashtableOfObject)this.compilationUnits.get(packageName);
-		if (cus == null) {
-			cus = new HashtableOfObject();
-			this.compilationUnits.put(packageName, cus);
-		}
-		CompilationUnit unit = new CompilationUnit(contents, fileName, null);
-		cus.put(cuName, unit);
-	}
-}
-public NameEnvironmentAnswer findType(char[][] compoundTypeName, ITypeRequestor requestor) {
-	return findType(
-		compoundTypeName[compoundTypeName.length - 1],
-		CharOperation.subarray(compoundTypeName, 0, compoundTypeName.length - 1),requestor);
-}
-public NameEnvironmentAnswer findBinding(char[] typeName, char[][] packageName, int type, ITypeRequestor requestor, boolean returnMultiple, String excludePath) {
-  if ((type&Binding.COMPILATION_UNIT)!=0)
-  {
-			HashtableOfObject cus = (HashtableOfObject)this.compilationUnits.get(CharOperation.concatWith(packageName, '.'));
-			if (cus!=null)
-			{
-				CompilationUnit unit = (CompilationUnit)cus.get(typeName);
-				unit.packageName=packageName;
-				if (unit != null) 
-					return new NameEnvironmentAnswer(unit, null /*no access restriction*/);
-				
-			}
-  }
-	
-	//	HashtableOfObject cus = (HashtableOfObject)this.compilationUnits.get(CharOperation.concatWith(packageName, '.'));
-//	if (cus == null) {
-		return this.findTypeFromClassLibs(typeName, packageName,type,requestor);
-//	}
-//	JavaScriptUnit unit = (JavaScriptUnit)cus.get(typeName);
-//	if (unit == null) {
-//		return this.findTypeFromClassLibs(typeName, packageName,type,requestor);
-//	}
-//	return new NameEnvironmentAnswer(unit, null /*no access restriction*/);
-}
-
-public NameEnvironmentAnswer findType(char[] typeName, char[][] packageName, ITypeRequestor requestor) {
-	return findBinding(typeName, packageName, Binding.TYPE|Binding.PACKAGE,requestor, false, null);
-//	HashtableOfObject cus = (HashtableOfObject)this.compilationUnits.get(CharOperation.concatWith(packageName, '.'));
-//	if (cus == null) {
-//		return this.findTypeFromClassLibs(typeName, packageName);
-//	}
-//	JavaScriptUnit unit = (JavaScriptUnit)cus.get(typeName);
-//	if (unit == null) {
-//		return this.findTypeFromClassLibs(typeName, packageName);
-//	}
-//	return new NameEnvironmentAnswer(unit, null /*no access restriction*/);
-}
-private NameEnvironmentAnswer findTypeFromClassLibs(char[] typeName, char[][] packageName, int type, ITypeRequestor requestor) {
-	for (int i = 0; i < this.classLibs.length; i++) {
-		NameEnvironmentAnswer answer = this.classLibs[i].findBinding(typeName, packageName, type,requestor, false, null);
-		if (answer != null) {
-			return answer;
-		}
-	}
-	return null;
-}
-public boolean isPackage(char[][] parentPackageName, char[] packageName) {
-	char[] pkg = CharOperation.concatWith(parentPackageName, packageName, '.');
-	return 
-		this.compilationUnits.get(pkg) != null || 
-		this.isPackageFromClassLibs(parentPackageName, packageName);
-}
-public boolean isPackageFromClassLibs(char[][] parentPackageName, char[] packageName) {
-	for (int i = 0; i < this.classLibs.length; i++) {
-		if (this.classLibs[i].isPackage(parentPackageName, packageName)) {
-			return true;
-		}
-	}
-	return false;
-} 
-public void cleanup() {
-	for (int i = 0, max = this.classLibs.length; i < max; i++) {
-		this.classLibs[i].cleanup();
-	}
-	this.compilationUnits = new HashtableOfObject();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferResolveTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferResolveTests.java
deleted file mode 100644
index 83e9ff5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferResolveTests.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.HashMap;
-
-import org.eclipse.wst.jsdt.core.ast.IExpression;
-import org.eclipse.wst.jsdt.core.ast.IFunctionCall;
-import org.eclipse.wst.jsdt.core.ast.IFunctionExpression;
-import org.eclipse.wst.jsdt.core.ast.IObjectLiteral;
-import org.eclipse.wst.jsdt.core.ast.IObjectLiteralField;
-import org.eclipse.wst.jsdt.core.ast.ISingleNameReference;
-import org.eclipse.wst.jsdt.core.ast.IStringLiteral;
-import org.eclipse.wst.jsdt.core.infer.IInferenceFile;
-import org.eclipse.wst.jsdt.core.infer.InferEngine;
-import org.eclipse.wst.jsdt.core.infer.InferredMethod;
-import org.eclipse.wst.jsdt.core.infer.InferredType;
-import org.eclipse.wst.jsdt.core.infer.InferrenceProvider;
-import org.eclipse.wst.jsdt.core.infer.RefactoringSupport;
-import org.eclipse.wst.jsdt.core.infer.ResolutionConfiguration;
-
-
-public class InferResolveTests  extends AbstractRegressionTest  {
-
-	
-	static class InferProvider implements InferrenceProvider 
-	{
-
-		InferEngine inferEngine;
-
-		
-		public InferProvider(InferEngine inferEngine) {
-			this.inferEngine = inferEngine;
-			inferEngine.inferenceProvider=this;
-		}
-
-		public int applysTo(IInferenceFile scriptFile) {
-			return InferrenceProvider.MAYBE_THIS;
-		}
-
-		public String getID() {
-			return "dummyID";
-		}
-
-		public InferEngine getInferEngine() {
-			return inferEngine;
-		}
-
-		public RefactoringSupport getRefactoringSupport() {
-			return null;
-		}
-
-		public ResolutionConfiguration getResolutionConfiguration() {
-			return null;
-		}
-		
-	}
-	
-	static class TestInferEngine extends InferEngine
-	{
-		
-		static final char[] []ADD_CLASS={"defineClass".toCharArray()};
-		static final char[] []ADD_MIXIN={"addMixin".toCharArray()};
-		
-		protected boolean handleFunctionCall(IFunctionCall functionCall) {
-			if (isFunction(functionCall, ADD_CLASS) )
-			{
-				IExpression[] arguments = functionCall.getArguments();
-				if (arguments.length>1 && arguments[0] instanceof IStringLiteral)
-				{
-					char [] className=getString(arguments[0]);
-					InferredType type = addType(className,true);
-					if (arguments[1] instanceof IObjectLiteral) {
-						IObjectLiteral objectLiteral = (IObjectLiteral) arguments[1];
-						if (objectLiteral.getFields()!=null)
-							for (int i = 0; i < objectLiteral.getFields().length; i++) {
-								IObjectLiteralField field=objectLiteral.getFields()[i];
-								char[] name = getString(field.getFieldName());
-								if (field.getInitializer() instanceof IFunctionExpression)
-								{
-									IFunctionExpression functionExpression=(IFunctionExpression)field.getInitializer();
-									
-									InferredMethod method=type.addMethod(name, functionExpression.getMethodDeclaration(),false);
-								}
-							}
-					}
-				}
-			}
-			else if (isFunction(functionCall, ADD_MIXIN) )
-			{
-				IExpression[] arguments = functionCall.getArguments();
-				if (arguments.length>1 )
-				{
-					char [] className=getString(arguments[0]);
-					char [] mixinName=getString(arguments[1]);
-					if (className!=null && mixinName!=null)
-					{
-						InferredType type = findDefinedType(className);
-						if (type!=null)
-							type.addMixin(mixinName);
-					}
-					
-					
-				}
-			}
-			return true;
-		}
-		
-		private char[] getString(IExpression expression)
-		{
-		  if (expression instanceof IStringLiteral) {
-			IStringLiteral strLit = (IStringLiteral) expression;
-			return strLit.source();
- 		   }
-			else if ((expression instanceof ISingleNameReference))
-			{
-				ISingleNameReference snr=(ISingleNameReference)expression;
-				return snr.getToken();
-			}
-		  return null;
-		}
-	}
-	
-	public InferResolveTests(String name) {
-		super(name);
-	}
-
-	 
-	protected void runNegativeTest(String[] testFiles, InferEngine inferEngine, String expectedProblemLog) {
-		HashMap options = new HashMap();
-
-		InferEngine[] inferenceEngines = new InferEngine[]  
-		                            			{
-		                            					new InferProvider(inferEngine).getInferEngine()
-		                            					
-		                            			};
-		options.put(INFERENCE_ENGINES, inferenceEngines);
-		
- 
-		
-		runNegativeTest(
-				testFiles, 
-			expectedProblemLog, 
-			null /* no extra class libraries */, 
-			true /* flush output directory */, 
-			options /* no custom options */,
-			false /* do not generate output */,
-			false /* do not show category */, 
-			false /* do not show warning token */, 
-			false  /* do not skip javac for this peculiar test */,
-			false  /* do not perform statements recovery */,
-			null);
-	}
-	
-
-	public void test001()	{	 
-
-		this.runNegativeTest(
-				new String[] {
-						"cls.js",
-						 "  function defineClass(name,args){}\n" 
-						 +"  function addMixin(toClass,mixinName){}\n" 
-						+"  defineClass(\"MyClass\",\n" 
-						+"   {meth1 : function (){} }\n" 
-						+" );\n" 
-						+"  addMixin(\"MyClass\",\"myMixin\");\n" 
-						+"", 
-						"mix.js",
-						"  defineClass(\"myMixin\",\n" 
-						+"   {mixinFunc : function (){} }\n" 
-						+" );\n" 
-						+"", 
-						"use.js",
-						 "  var v=new MyClass();\n" 
-						 +" v.mixinFunc();\n" 
-						+"", 
-				},
-				new TestInferEngine(),
-				""
-		);
-
-	}
-
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java
deleted file mode 100644
index bc82f1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java
+++ /dev/null
@@ -1,949 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import org.eclipse.wst.jsdt.core.infer.InferOptions;
-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;
-
-public class InferTypesTests extends AbstractRegressionTest {
-
-	public InferTypesTests(String name) {
-		super(name);
- 
-	}
-	
-	private InferOptions getDefaultOptions()
-	{
-		InferOptions inferOptions=new InferOptions();
-		inferOptions.setDefaultOptions();
-		return inferOptions;
-	}
-	 
-	
-	public void test001() {
-		CompilationUnitDeclaration declaration = this.runInferTest(
-			"function MyClass() {\n"+
-			"  this.url = \"\";\n"+
-			"  this.activate = function(){}\n"+
-			"}\n"+
-			"var myClassObj = new MyClass();\n"+
-			"\n",
-			"X.js",
-			"class MyClass extends Object{\n  String url;\n  void activate()\n  MyClass()\n}\n",
-			getDefaultOptions()
-			
-		 );
-	}
-	
-	
-	public void test002() {
-		CompilationUnitDeclaration declaration = this.runInferTest(
-				"Shape.prototype.GetArea = Shape_GetArea;"+ 
-				"function Shape(){}"+
-				"function Shape_GetArea()"+
-				"{"+
-				" var area = 5;"+ 
-				"return area;"+ 
-				"}",
-			"X.js",
-			"class Shape extends Object{\n  Number GetArea()\n  Shape()\n}\n",
-			getDefaultOptions()
-			
-		 );
-	}
-	public void test003() {
-		CompilationUnitDeclaration declaration = this.runInferTest(
-				"Shape.prototype.GetArea = function(a){};"+ 
-				"function Shape(){}\n"+
-				"",
-			"X.js",
-			"class Shape extends Object{\n  void GetArea(a)\n  Shape()\n}\n",
-			getDefaultOptions()
-			
-		 );
-	}
-	
-	public void test004() {
-		CompilationUnitDeclaration declaration = this.runInferTest(
-				"Shape.prototype.GetArea = Shape_GetArea;"+ 
-				"function Shape(){}"+
-				"function Shape_GetArea()"+
-				"{"+
-				"return this.area;"+ 
-				"}"+
-				"Circle.prototype = new Shape();"+ 
-				"Circle.prototype.constructor = Circle;"+
-				"Circle.prototype.GetArea = Circle_GetArea;"+
-				"function Circle_GetArea()"+
-				"{"+
-				"}",
-			"X.js",
-			"class Shape extends Object{\n  ?? GetArea()\n  Shape()\n}\n"+
-			"class Circle extends Shape{\n  ?? constructor;\n  void GetArea()\n}\n",
-			getDefaultOptions()
-			
-		 );
-	}
-	
-	
-	/*
-	 * This test setting members using the this.
-	 * 
-	 * The InferEngine will no be able to tell the types of the members... there is no information
-	 * provided.
-	 */
-	public void test010() {
-		CompilationUnitDeclaration declaration = this.runInferTest(
-			      "function Bob(firstname, lastname) {\n" +
-			      "   this.Firstname = firstname;\n" +
-			      "   this.Lastname = lastname;\n" +
-			      "}\n" +
-			      "Bob.prototype.name = function () {return this.Firstname + this.Lastname;};\n",
-			"X.js",
-			"class Bob extends Object{\n  ?? Firstname;\n  ?? Lastname;\n  ?? name()\n  Bob(firstname, lastname)\n}\n",
-			getDefaultOptions()
-			
-		 );
-	}	
-	public void test011() {
-		CompilationUnitDeclaration declaration = this.runInferTest(
-				 "function X() {\n"
-				+ "  this.h=1;\n"
-				+ "  this.i=[];\n"
-				+ "}\n"
-				+ "function X_foo() {\n"
-				+ "}\n"
-				+ "X.prototype.foo=X_foo;\n"
-				+ "",
-				"X.js",
-			"class X extends Object{\n  Number h;\n  Array i;\n  void foo()\n  X()\n}\n",
-			getDefaultOptions()
-			
-		 );
-	}
-
-	public void test011b() {
-		CompilationUnitDeclaration declaration = this.runInferTest(
-				 "P.prototype=new Object();\n"
-				+ "P.prototype.f=1;\n"
-				+ "function P(){}\n"
-				+ "function a(){}\n"
-				+ "function m() {\n"
-				+ "                this.f++;\n"
-				+ "                var p= new P();\n"
-				+ "                    a();"
-				+ "}\n"
-				+ "P.prototype.mm=m;\n",
-				"X.js",
-			"class P extends Object{\n  Number f;\n  void mm()\n  P()\n}\n",
-			getDefaultOptions()
-			
-		 );
-	}
-
-		public void test012() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					 "Test.prototype=new Object();\n"
-					+ "Test.x=1;\n"
-					+ "",
-					"X.js",
-				"class Test extends Object{\n  static Number x;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-
-
-		public void test013() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function MyClass() {\n"+
-				"  this.arr = [1];\n"+
-				"}\n"+
-				"var myClassObj = new MyClass();\n"+
-				"\n",
-				"X.js",
-				"class MyClass extends Object{\n  Array(Number) arr;\n  MyClass()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-
-		
-
-		public void test020() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"var foo;\n"+
-				"  foo.onMouseDown = function () { return 1; };\n"+
-				"\n",
-				"X.js",
-				"class ___foo0 extends Object{\n  static Number onMouseDown()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-
-				
-		
-		public void test040() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					 "/**\n"
-					+ " * @constructor \n"
-					+ " */\n"
-				+"function MyClass(){}"   
-				+ "/**\n"
-				+ " * @memberOf MyClass \n"
-				+ " * @type String \n"
-				+ " */\n"
-			+"var s;"   
-			+ "/**\n"
-			+ " * @memberOf MyClass \n"
-			+ " * @type Number \n"
-			+ " */\n"
-			+"function numValue(){};"   
-			+"\n",
-				"X.js",
-				"class MyClass extends Object{\n  String s;\n  MyClass()\n  Number numValue()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		
-
-
-
-		public void test041() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					" i= { \n"+
-					"/**\n" +
-					"   * @memberOf MyClass\n" +
-					"   * @type Number\n" +
-					" */\n" +
-					" a: 2 ,\n"+
-					"/**\n" +
-					"   * @memberOf MyClass\n" +
-					"   * @type String\n" +
-					" */\n" +
-					" b: function(){}};" + 
-					"\n",
-					"X.js",
-				"class MyClass extends Object{\n  Number a;\n  String b()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-
-		public void test042() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					 "/**\n"
-					+ " * @constructor \n"
-					+ " * @extends String \n"
-					+ " */\n"
-				+"function MyClass(){}"   
-
-				+"MyClass.prototype = { \n"+
-					"/**\n" +
-					"   * @memberOf MyClass\n" +
-					"   * @type Number\n" +
-					" */\n" +
-					" a: 2 ,\n"+
-					"/**\n" +
-					"   * @memberOf MyClass\n" +
-					"   * @type String\n" +
-					" */\n" +
-					" b: function(){}};" + 
-					"\n",
-					"X.js",
-				"class MyClass extends String{\n  Number a;\n  MyClass()\n  String b()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-
-		public void test043() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					 "/**\n"
-					+ " * @constructor \n"
-					+ " */\n"
-				+"function MyClass(){}"   
-			+ "/**\n"
-			+ " * @memberOf MyClass \n"
-			+ " * @param {Number} p1\n" 
-			+ " * @type String \n"
-			+ " */\n"
-			+"function foo(p1){};"   
-			+"\n",
-				"X.js",
-				"class MyClass extends Object{\n  MyClass()\n  String foo(Number p1)\n}\n",
-				getDefaultOptions()
-			 );
-		}
-		
-		public void test060() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"Shape.prototype.GetArea = Shape_GetArea;"+ 
-					"function Shape_GetArea()"+
-					"{"+
-					" var str=\"\";"+ 
-					"return str;"+ 
-					"}",
-				"X.js",
-				"class Shape extends Object{\n  String GetArea()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * Test Object literal local variable declaration
-		 */
-		public void test061() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var foo = {"+ 
-					"  bar: \"bar\","+
-					"  bar2: function(){}"+
-					"}",
-				"X.js",
-				"class ___anonymous10_44 extends Object{\n  String bar;\n  void bar2()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * Test Object literal assignment
-		 */
-		public void test062() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var foo;"+
-					"foo = {"+ 
-					"  bar: \"bar\","+
-					"  bar2: function(){}"+
-					"}",
-				"X.js",
-				"class ___anonymous14_48 extends Object{\n  String bar;\n  void bar2()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * Test nested Object literals
-		 */
-		public void test063() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var foo = {"+ 
-					"  bar: \"bar\","+
-					"  bar2: {" +
-					"    bar3: \"bar3\"" +
-					"  }"+
-					"}",
-				"X.js",
-				"class ___anonymous10_52 extends Object{\n  String bar;\n  ___anonymous32_51 bar2;\n}\n"+
-				"class ___anonymous32_51 extends Object{\n  String bar3;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * Runtime simple member assignment to Object literal
-		 */
-		public void test064() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var ns = {};" + 
-					"ns.foo = \"\";" +
-					"ns.bar = function(){" +
-					"  return \"\";" +
-					"}",
-				"X.js",
-				"class ___anonymous9_10 extends Object{\n  String foo;\n  String bar()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * Runtime complex member (setting to an Object literal) asignment to Object literal 
-		 */
-		public void test065() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var ns = {};"+ 
-					"ns.foo = {" +
-					"  bar: \"\""+
-					"};",
-				"X.js",
-				"class ___anonymous9_10 extends Object{\n  ___anonymous21_31 foo;\n}\n"+
-				"class ___anonymous21_31 extends Object{\n  String bar;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * Assign Object Literal to prototype
-		 */
-		public void test066() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"function foo(){"+
-					"};"+
-					"foo.prototype = {"+
-					"  bar: \"\""+ 
-					"}",
-				"X.js",
-				"class foo extends Object{\n  String bar;\n  foo()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * Assign Object Literal to a prototype member
-		 */
-		public void test067() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"function foo(){"+
-					"};"+
-					"foo.prototype.bar = {"+
-					"  bar2: \"\""+ 
-					"}",
-				"X.js",
-				"class foo extends Object{\n  ___anonymous37_48 bar;\n  foo()\n}\n"+
-				"class ___anonymous37_48 extends Object{\n  String bar2;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * namespaced type (new "class" nested inside an Object Literal)
-		 */
-		public void test068() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var ns = {};"+ 
-					"ns.foo = function(){" +
-					"};" +
-					"ns.foo.prototype.bar = \"\";" +
-					"ns.foo.prototype.bar2 = function(){" +
-					"  return \"\";" +
-					"}",
-				"X.js",
-				"class ___anonymous9_10 extends Object{\n  void foo()\n}\n"+
-				"class ns.foo extends Object{\n  String bar;\n  String bar2()\n  ns.foo()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test068b() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var ns = {};"+ 
-					"ns.foo = function(){};" +
-					"function abc(){};" +
-					"ns.foo2 = abc;" +
-					"",
-				"X.js",
-				"class ___anonymous9_10 extends Object{\n  void foo()\n  void foo2()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test068c() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var ns = {};"+ 
-					"ns.foo = function(){};" +
-					"ns.foo2 = ns.foo;" +
-					"",
-				"X.js",
-				"class ___anonymous9_10 extends Object{\n  void foo()\n  void foo2()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/**
-		 * namespaced type (new "class" nested inside an Object Literal)
-		 */
-		public void test069() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var ns1 = {" +
-					"  ns2: {}" +
-					"};"+ 
-					"ns1.ns2.foo = function(){" +
-					"};" +
-					"ns1.ns2.foo.prototype.bar = \"\";" +
-					"ns1.ns2.foo.prototype.bar2 = function(){" +
-					"  return \"\";" +
-					"}",
-				"X.js",
-				"class ___anonymous10_20 extends Object{\n  ___anonymous18_19 ns2;\n}\n"+
-				"class ___anonymous18_19 extends Object{\n  void foo()\n}\n"+
-				"class ns1.ns2.foo extends Object{\n  String bar;\n  String bar2()\n  ns1.ns2.foo()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/*
-		 * Test a potential problem with anonymous and members when returning an {} from a member
-		 */
-		public void test070() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var foo = {" +
-					"  a: \"\"," +
-					"  b: function(){" +
-					"    return \"\";" +
-					"  }"+
-					"};" +
-					"foo.c = \"\";" +
-					"foo.d = function(x, y, z) {" +
-					"  return { x : \"\", y : \"\", z : \"\" };" +
-					"};",
-				"X.js",
-				"class ___anonymous10_52 extends Object{\n  String a;\n  String c;\n  String b()\n  ___anonymous101_126 d(x, y, z)\n}\n"+
-				"class ___anonymous101_126 extends Object{\n  String x;\n  String y;\n  String z;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test071() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"if( true ){" +
-					"  var foo = {};" +
-					"}" +
-					"foo.bar = \"\"",
-				"X.js",
-				"class ___anonymous23_24 extends Object{\n  String bar;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/*
-		 * Object literal within a function as return (need to prevent duplicates)
-		 */
-		public void test072() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var foo = function(){" +
-					"	return {" +
-					"		x: \"\"," +
-					"		y: \"\"" +
-					"	}" +
-					"};",
-				"X.js",
-				"class ___anonymous29_46 extends Object{\n  String x;\n  String y;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/*
-		 * Object literal within a function (not a return
-		 */
-		public void test073() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-					"var foo = function(){" +
-					"	var bar = {" +
-					"		x: \"\"," +
-					"		y: \"\"" +
-					"	}" +
-					"};",
-				"X.js",
-				"class ___anonymous32_49 extends Object{\n  String x;\n  String y;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test074() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"/**\n" +
-				"  * Object Node()\n" +
-				"  * @super Object\n" +
-				"  * @constructor\n" +
-				"  * @class Node\n" +
-				"  * @since Standard ECMA-262 3rd. Edition\n" +
-				"  * @since Level 2 Document Object Model Core Definition.\n" +
-				"  * @link   http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n" +
-				" */\n" +
-				"function Node(){};\n" +
-				"/**\n" +
-				"  * Property firstChild\n" + 
-				"  * @type Node\n" +
-				"  * @class Node\n" +
-				"  * @see Node\n" +
-				"\n" + 
-				"  * @since Standard ECMA-262 3rd. Edition\n" + 
-				"  * @since Level 2 Document Object Model Core Definition.\n" +
-				"  * @link    http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n" +     
-				" */\n" +
-				"Node.prototype.firstChild=new Node();\n" + 
-				"/**\n" +
-				"  * function insertBefore(newChild, refChild)\n" +   
-				"  * @type Node\n" +
-				"  * @class Node\n" +
-				"  * @param newChilds Node\n" +
-				"  * @param refChild Node\n" +
-				"  * @return Node\n" +
-				"  * @throws DOMException\n" +
-				"  * @see Node\n" +
-				"  * @since Standard ECMA-262 3rd. Edition\n" + 
-				"  * @since Level 2 Document Object Model Core Definition.\n" +
-				"  * @link    http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n" +     
-				" */\n" +
-				"Node.prototype.insertBefore = function(newChild, refChild){};\n",
-				"X.js",
-				"class Node extends Object{\n  Node firstChild;\n  Node()\n  Node insertBefore(newChild, refChild)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		/*
-		 * Static member check
-		 */
-		public void test075() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"var x = function(){};" +
-				"x.prototype = {};" +
-				"x.foo = \"\";" +
-				"x.bar = function(){" +
-				"  return \"\";" +
-				"}",
-				"X.js",
-				"class x extends Object{\n  static String foo;\n  static String bar()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-
-
-		/*
-		 * only statics
-		 */
-		public void test075b() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function x(){};" +
-				"x.foo = \"\";" +
-				"x.bar = function(){" +
-				"  return \"\";" +
-				"}",
-				"X.js",
-				"class x extends Object{\n  static String foo;\n  static String bar()\n  x()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-
-		
-		
-		/*
-		 * Global Object mixin
-		 */
-		public void test080() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"(function(){" +
-				"this.someField = 1;" +
-				"})();" ,
-				"X.js",
-				"class Global extends Object{\n  Number someField;\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-
-		/*
-		 * Static member on built-in
-		 */
-		public void test081() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"String.foo = \"\";" +
-				"String.bar = function(){" +
-				"  return \"\";" +
-				"}",
-				"X.js",
-				"class String extends Object{\n  static String foo;\n  static String bar()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-
-		public void test082() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"String.foo = \"\";" +
-				"String.bar1 = String.bar2 = function(){" +
-				"  return \"\";" +
-				"}",
-				"X.js",
-				"class String extends Object{\n  static String foo;\n  static String bar1()\n  static String bar2()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-
-		public void test083() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Car() {" +
-				"	this.color = 'red';" +
-				"	this.Move = function() { return \"I'm moving\"; };" +
-				"};" +
-				"Car.Stop = function() { return \"I'm not moving\"; };" +
-				"Car.engine = 'diesel';" +
-				"",
-				"X.js",
-				"class Car extends Object{\n  String color;\n  static String engine;\n  String Move()\n  static String Stop()\n  Car()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		// test type infered from function with 'this' assignments
-		public void test084() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Car() {" +
-				"	this.color = 'red';" +
-				"	this.Move = function() { return \"I'm moving\"; };" +
-				"};" +
-				"",
-				"X.js",
-				"class Car extends Object{\n  String color;\n  String Move()\n  Car()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test085() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Shape(l, w){" +
-				"	this.length = l;" +
-				"	this.width = w;" +
-				"}",
-				"X.js",
-				"class Shape extends Object{\n  ?? length;\n  ?? width;\n  Shape(l, w)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test086() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Shape(l, w){" +
-				"	this.length = l;" +
-				"	this.width = w;" +
-				"	return this.length * this.width;" +
-				"}",
-				"X.js",
-				"class Shape extends Object{\n  ?? length;\n  ?? width;\n  Shape(l, w)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test087() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Shape(l, w){" +
-				"	this.length = l;" +
-				"	this.width = w;" +
-				"}" + 
-				"var s = new Shape(2, 3);" + 
-				"s.area = function() {return this.length * this.width;};",
-				"X.js",
-				"class Shape extends Object{\n  ?? length;\n  ?? width;\n  Shape(l, w)\n}\n" +
-				"class ___s0 extends Shape{\n  Number area()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test088() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Shape(l, w){" +
-				"	this.length = l;" +
-				"	this.width = w;" +
-				"	this.area = function() {return this.length * this.width;};" +
-				"}",
-				"X.js",
-				"class Shape extends Object{\n  ?? length;\n  ?? width;\n  Number area()\n  Shape(l, w)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test089() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Shape(l, w){" +
-				"	this.length = l;" +
-				"	this.width = w;" +
-				"}" +
-				"Shape.prototype.area = function() {return this.length * this.width;};",
-				"X.js",
-				"class Shape extends Object{\n  ?? length;\n  ?? width;\n  Number area()\n  Shape(l, w)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test090() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Shape(l, w){" +
-				"	this.length = l;" +
-				"	this.width = w;" +
-				"}" +
-				"Shape.CONSTANT = 3;",
-				"X.js",
-				"class Shape extends Object{\n  ?? length;\n  ?? width;\n  static Number CONSTANT;\n  Shape(l, w)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test091() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Round(r){" +
-				"	this.rad = r;" +
-				"}" +
-				"Round.PI = 3.14;" +
-				"Round.prototype.area = function() {return Round.PI * this.rad * this.rad;};" +
-				"Round.equal = function(a, b) {" +
-				"if(a == b) return true;" +
-				"return false;" +
-				"};",
-				"X.js",
-				"class Round extends Object{\n  ?? rad;\n  static Number PI;\n  Number area()\n  static Boolean equal(a, b)\n  Round(r)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test092() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Com(r, i){" +
-				"	this.r1 = r;" +
-				"	this.i1 = i;" +
-				"}" +
-				"Com.prototype.meth1 = function() {return 1;};" +
-				"Com.prototype.meth2 = function() {return new Com(1, 2);};" +
-				"Com.prototype.meth3 = function(that) {return new Com(that+1, that-1);};" +
-				"Com.prototype.toString = function() {return \"hi\"};" +
-				"Com.classMeth1 = function(a, b) {return new Com(a, b);};" +
-				"Com.classMeth2 = function(a, b) {return new Com(a, b);};" +
-				"Com.ZERO = new Com(0,0);" +
-				"Com.ONE = new Com(1,0);",
-				"X.js",
-				"class Com extends Object{\n  ?? r1;\n  ?? i1;\n  static Com ZERO;\n  static Com ONE;\n" +
-				"  Number meth1()\n  Com meth2()\n  Com meth3(that)\n  String toString()\n  static Com classMeth1(a, b)\n  static Com classMeth2(a, b)\n  Com(r, i)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test093() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Shape(l, w){" +
-				"	this.length = function() {return l;};" +
-				"	this.width = function() {return w;};" +
-				"}" +
-				"Shape.prototype.perimeter = function() {return (this.length * 2) + (this.width * 2);};",
-				"X.js",
-				"class Shape extends Object{\n  ?? length()\n  ?? width()\n  Number perimeter()\n  Shape(l, w)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test094() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Shape(l, w){" +
-				"	this.length = l;" +
-				"	this.width = w;" +
-				"}" +
-				"Shape.prototype.area = function() {return this.length * this.width;};" +
-				"function SubShape(l, w, x) {" +
-				"Shape.call(this, l, w);" +
-				"this.x = y;" +
-				"}" +
-				"SubShape.prototype = new Shape();" +
-				"SubShape.prototype.meth = function() {return 1};",
-				"X.js",
-				"class Shape extends Object{\n  ?? length;\n  ?? width;\n  Number area()\n  Shape(l, w)\n}\n" +
-				"class SubShape extends Shape{\n  ?? x;\n  Number meth()\n  SubShape(l, w, x)\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test095() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Abc(){" +
-				"	this.mult = function(a, b){return a * b;};" +
-				"	this.div = function(a, b){return a / b;};" +
-				"	this.rem = function(a, b){return a % b;};" +
-				"	this.sub = function(a, b){return a - b;};" +
-				"}",
-				"X.js",
-				"class Abc extends Object{\n  Number mult(a, b)\n  Number div(a, b)\n  Number rem(a, b)\n  Number sub(a, b)\n  Abc()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test096() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Plus(){" +
-				"	this.strings = function(){return \"a\" + \"b\";};" +
-				"	this.oneStringOneNumber = function(){return \"a\" + 1;};" +
-				"	this.oneStringOneNumber2 = function(){return \"3\" + 1;};" +
-				"	this.numbers = function(){return 1 + 2;};" +
-				"	this.unknownString = function(a){return a + \"b\";};" +
-				"	this.unknownNumber = function(a){return a + 3;};" +
-				"	this.unknownUnknown = function(a, b){return a + b;};" +
-				"}",
-				"X.js",
-				"class Plus extends Object{\n  String strings()\n  String oneStringOneNumber()\n  String oneStringOneNumber2()\n  " +
-				"Number numbers()\n  String unknownString(a)\n  ?? unknownNumber(a)\n  ?? unknownUnknown(a, b)\n  Plus()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void test097() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"function Equality(){" +
-				"	this.equalsEquals = function(){return \"a\" == \"b\";};" +
-				"	this.equalsEqualsEquals = function(){return \"a\" === \"b\";};" +
-				"	this.notEquals = function(){return \"a\" != \"b\";};" +
-				"	this.notEqualsEquals = function(){return \"a\" !== \"b\";};" +
-				"}",
-				"X.js",
-				"class Equality extends Object{\n  Boolean equalsEquals()\n  Boolean equalsEqualsEquals()\n  Boolean notEquals()\n  Boolean notEqualsEquals()\n  Equality()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-		public void testBUG286010() {
-			CompilationUnitDeclaration declaration = this.runInferTest(
-				"var MyFunc = function () {};\n" +
-				"MyFunc.myMeth = function () {};",
-				"X.js",
-				"class MyFunc extends Function{\n  static void myMeth()\n}\n",
-				getDefaultOptions()
-				
-			 );
-		}
-		
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InnerEmulationTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InnerEmulationTest.java
deleted file mode 100644
index 8edf0b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InnerEmulationTest.java
+++ /dev/null
@@ -1,5692 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.io.File;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class InnerEmulationTest extends AbstractRegressionTest {
-static {
-//		TESTS_NAMES = new String[] { "Bug58069" };
-//		TESTS_NUMBERS = new int[] { 144 };
-//		TESTS_RANGE = new int[] { 144, -1 };
-}
-public InnerEmulationTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-/**
- * Protected access emulation : should be performed onto implicit field and method accesses
- */
-public void test001() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;								\n"+
-			"import p2.*;								\n"+
-			"public class A {							\n"+
-			"	protected int value = 0;				\n"+
-			"	protected A delegatee;					\n"+
-			"	public A(A del, int val) {				\n"+
-			"		this.delegatee = del;				\n"+
-			"		this.value = val;					\n"+
-			"	}										\n"+
-			"	protected void foo() {					\n"+
-			"		value += 3;							\n"+
-			"	}										\n"+
-			"	public static void main(String[] argv){	\n"+
-			"		int result = new B(					\n"+
-			"					  new B(null, 10), 20)  \n"+
-			"					 .value; 				\n"+
-			"		int expected = 30; 					\n"+
-			"		System.out.println( 				\n"+
-			"			result == expected 				\n"+
-			"				? \"SUCCESS\"  				\n"+
-			"				: \"FAILED : got \"+result+\" instead of \"+ expected); \n"+
-			"	}										\n"+
-			"}											\n",
-			/* p2.B */
-			"p2/B.java",
-			"package p2;								\n"+
-			"import p1.*;								\n"+
-			"public class B extends A {					\n"+
-			"	public B(B del, int val){				\n"+
-			"		super(del, val);					\n"+
-			"		Runnable r = new Runnable () {		\n"+
-			"			public void run() {				\n"+
-			"				foo(); 						\n"+
-			"				if (delegatee != null) 		\n"+
-			"					value += 7;				\n"+
-			"			}								\n"+
-			"		};									\n"+
-			"		r.run();							\n"+
-			"	}										\n"+
-			"}											\n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1FN4S4Z: The compiler doesn't detect a illegal constructor invocation which leads to a VerifyError
- */
-public void test002() {
-	this.runNegativeTest(
-		new String[] {
-			/* A.java */
-			"A.java",
-			"class B { \n"+
-			"} \n"+
-			"public class A { \n"+
-			"	B b; \n"+
-			"	class C extends B { \n"+
-			"		public C() { \n"+
-			"		} \n"+
-			"	} \n"+
-			"	public A() { \n"+
-			"		this(new C()); \n"+
-			"	} \n"+
-			"	public A(C c) { \n"+
-			"		this.b = c; \n"+
-			"	} \n"+
-			"	public static void main(String[] args) { \n"+
-			"		A a = new A(); \n"+
-			"		System.out.println(a); \n"+
-			"	} \n"+
-			"} \n"
-		}, 
-		"----------\n" + 
-		"1. ERROR in A.java (at line 10)\n" + 
-		"	this(new C()); \n" + 
-		"	     ^^^^^^^\n" + 
-		"No enclosing instance of type A is available due to some intermediate constructor invocation\n" + 
-		"----------\n"
-
-	);									
-}
-/**
- * 1FZ2G7R: use of non static inner class in constuctor
- */
-public void test003() {
-	this.runNegativeTest(
-		new String[] {
-			/* A.java */
-			"A.java",
-			"public class A extends Thread { \n" +
-			"	private class B { \n" +
-			"	} \n" +
-			"	private static Runnable getRunnable() { \n" +
-			"		return null; \n" +
-			"	} \n" +
-			"	public A() { \n" +
-			"		super(getRunnable(), new B().toString()); \n" +
-			"	} \n" +
-			"} \n"
-		}, 
-		"----------\n" + 
-		"1. WARNING in A.java (at line 8)\n" + 
-		"	super(getRunnable(), new B().toString()); \n" + 
-		"	                     ^^^^^^^\n" + 
-		"Access to enclosing constructor A.B() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + 
-		"----------\n" + 
-		"2. ERROR in A.java (at line 8)\n" + 
-		"	super(getRunnable(), new B().toString()); \n" + 
-		"	                     ^^^^^^^\n" + 
-		"No enclosing instance of type A is available due to some intermediate constructor invocation\n" + 
-		"----------\n");									
-}
-/**
- * 1F995V9: Walkback in innerclass emulation when mixing source and binaries
- */
-public void test004() {
-
-
-	/* first compile A3.java */
-	
-	this.runConformTest(
-		new String[] {
-			/* A3.java */
-			"A3.java",
-			"class A3 { \n"+
-			"	class B {} \n"+
-			"} \n"
-		},
-		null,
-		null); // no specific success output string
-	
-	/* then compile with previous input */
-	
-	this.runConformTest(
-		new String[] {
-			/* A4.java */
-			"A4.java",
-			"class A4 { \n"+
-			"	void foo(){ \n"+
-			"		new A3().new B(){}; \n"+
-			"	} \n"+
-			"} \n"
-		},
-		null, // no specific success output string
-		null, // use default class-path
-		false,
-		null); // do not flush previous output dir content
-
-}
-/**
- * 1FK9ALJ: Cannot invoke private super constructor ... 
- */
-public void test005() {
-	this.runConformTest(
-		new String[] {
-			/* X.java */
-			"X.java",
-			"public class X { \n"+
-			"	private X(){} \n"+
-			"	class Y extends X { \n"+
-			"	} \n"+
-			"	public static void main(String[] argv){	\n"+
-			"		new X().new Y();	 				 \n"+
-			"		System.out.println(\"SUCCESS\");	 \n"+
-			"	}										\n"+
-			"} \n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1FKLXDL: Verification error due to incorrect private access emulation
- */
-public void test006() {
-	this.runConformTest(
-		new String[] {
-			/* X.java */
-			"X.java",
-			"public class X { \n"+
-			"	public static void main(String[] argv){ \n"+
-			"		new B(); \n"+
-			"		System.out.println(\"SUCCESS\"); \n"+
-			"	} \n"+
-			"	private static void foo(int i, int j) { \n"+
-			"		System.out.println(\"private foo\"); \n"+
-			"	} \n"+
-			"	static class B { \n"+
-			"		{ \n"+
-			"			foo(1, 2); \n"+
-			"		} \n"+
-			"	} \n"+
-			"}		 \n"
-		}, 
-		"private foo\n" + 
-		"SUCCESS"
-	);									
-}
-/**
- * 1PQCT5T: Missing emulation for access to sibling local types
- */
-public void test007() {
-	this.runConformTest(
-		new String[] {
-			/* Y.java */
-			"Y.java",
-			"public class Y { \n" +
-			"	public static void main(String[] argv){ \n" +
-			"		if (new Y().bar() == 3) \n" +
-			"			System.out.println(\"SUCCESS\"); \n" +
-			"		else \n" +
-			"			System.out.println(\"FAILED\"); \n" +
-			"	} \n" +
-			"	int bar() { \n" +
-			"		final int i = \"xxx\".length(); \n" +
-			"		class X { \n" +
-			"			class AX { \n" +
-			"				int foo() { \n" +
-			"					return new BX().foo(); \n" +
-			"				} \n" +
-			"			} \n" +
-			"			class BX { \n" +
-			"				int foo() { \n" +
-			"					return new CX().foo(); \n" +
-			"				} \n" +
-			"			} \n" +
-			"			class CX { \n" +
-			"				int foo() { \n" +
-			"					return i; \n" +
-			"				} \n" +
-			"			} \n" +
-			"		} \n" +
-			"		return new X().new AX().foo(); \n" +
-			"	} \n"+
-			"} \n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1PQCT5T: Missing emulation for access to sibling local types
- */
-public void test008() {
-	this.runConformTest(
-		new String[] {
-			/* Y2.java */
-			"Y2.java",
-			"public class Y2 { \n" +
-			"	public static void main(String[] argv){ \n" +
-			"		if (new Y2().foo(45) == 45) \n" +
-			"			System.out.println(\"SUCCESS\"); \n" +
-			"		else \n" +
-			"			System.out.println(\"FAILED\"); \n" +
-			"	} \n" +
-			"	int foo(final int i){ \n"+
-			"		class B { \n"+
-			"			int foo(){ \n"+
-			"				return new C().foo(); \n"+
-			"			} \n"+
-			"			class C { \n"+
-			"				int foo(){ return i; } \n"+
-			"			} \n"+
-			"		}; \n"+
-			"		return new B().foo(); \n"+
-			"	} \n"+
-			"} \n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1PQCT5T: Missing emulation for access to sibling local types
- */
-public void test009() {
-	this.runConformTest(
-		new String[] {
-			/* Y3.java */
-			"Y3.java",
-			"public class Y3 { \n" +
-			"	public static void main(String[] argv){ \n" +
-			"		if (new Y3().bar() == 8) \n" +
-			"			System.out.println(\"SUCCESS\"); \n" +
-			"		else \n" +
-			"			System.out.println(\"FAILED\"); \n" +
-			"	} \n" +
-			"	int bar() { \n" +
-			"		final int i = \"xxx\".length(); \n" +
-			"		final String s = this.toString(); \n" +
-			"		class X { \n" +
-			"			class AX { \n" +
-			"				int foo() { \n" +
-			"					return i + new CX().foo(); \n" +
-			"				} \n" +
-			"			} \n" +
-			"			class BX { \n" +
-			"				int foo() { \n" +
-			"					return new AX().foo(); \n" +
-			"				} \n" +
-			"			} \n" +
-			"			class CX { \n" +
-			"				int foo() { \n" +
-			"					return 5; \n" +
-			"				} \n" +
-			"			} \n" +
-			"		} \n" +
-			"		return new X().new AX().foo(); \n" +
-			"	} \n" +
-			"} \n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1PQCT5T: Missing emulation for access to sibling local types
- */
-public void test010() {
-	this.runConformTest(
-		new String[] {
-			/* Y4.java */
-			"Y4.java",
-			"public class Y4 { \n" +
-			"	public static void main(String[] argv){ \n" +
-			"		if (new Y4().bar() == 3) \n" +
-			"			System.out.println(\"SUCCESS\"); \n" +
-			"		else \n" +
-			"			System.out.println(\"FAILED\"); \n" +
-			"	} \n" +
-			"	int bar() { \n" +
-			"		final int i = \"xxx\".length(); \n" +
-			"		final String s = this.toString(); \n" +
-			"		class X { \n" +
-			"			class AX { \n" +
-			"				int bar() { \n" +
-			"					class BX { \n" +
-			"						int foo() { \n" +
-			"							return new AX().foo(); \n" +
-			"						} \n" +
-			"					} \n" +
-			"					return new BX().foo(); \n" +
-			"				} \n" +
-			"				int foo() { \n" +
-			"					return i; \n" +
-			"				} \n" +
-			"			} \n" +
-			"		} \n" +
-			"		return new X().new AX().bar(); \n" +
-			"	} \n" +
-			"} \n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1PQCT5T: Missing emulation for access to sibling local types
- */
-public void test011() {
-	this.runConformTest(
-		new String[] {
-			/* Y5.java */
-			"Y5.java",
-			"public class Y5 { \n" +
-			"	public static void main(String[] argv){ \n" +
-			"		if (new Y5().bar(5) == 5) \n" +
-			"			System.out.println(\"SUCCESS\"); \n" +
-			"		else \n" +
-			"			System.out.println(\"FAILED\"); \n" +
-			"	} \n" +
-			"	int bar(final int i) { \n" +
-			"		class X { \n" +
-			"			int bar() { \n" +
-			"				return new Object(){  \n" +
-			"						int foo(){ \n" +
-			"							return i; \n" +
-			"						} \n" +
-			"					}.foo(); \n" +
-			"			} \n" +
-			"		} \n" +
-			"		return new X().bar(); \n" +
-			"	} \n" +
-			"} \n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1F3AH7N: GPF on innerclass emulation for double anonymous type
- */
-public void test012() {
-	this.runConformTest(
-		new String[] {
-			/* A.java */
-			"A.java",
-			"public class A { \n" +
-			"	public static void main(String[] argv){ \n" +
-			"		if (new A().foo() == 5) \n" +
-			"			System.out.println(\"SUCCESS\"); \n" +
-			"		else \n" +
-			"			System.out.println(\"FAILED\"); \n" +
-			"	} \n" +
-			"	int foo() { \n" +
-			"		return new A() { \n" +
-			"			int foo() { \n" +
-			"				final int i = \"hello\".length(); \n" +
-			"				return new A() { \n" +
-			"					int foo() { \n" +
-			"						return i; \n" +
-			"					} \n" +
-			"				} \n" +
-			"				.foo(); \n" +
-			"			} \n" +
-			"		} \n" +
-			"		.foo(); \n" +
-			"	} \n" +
-			"} \n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1F26XE2: Bug in inner class emulation
- */
-public void test013() {
-	this.runConformTest(
-		new String[] {
-			/* Inner.java */
-			"Inner.java",
-			"public class Inner { \n" +
-			"	public static void main(String[] argv){ \n" +
-			"		new B().new C(\"hello\"); \n" +
-			"		System.out.println(\"SUCCESS\"); \n" +
-			"	} \n" +
-			"  class A { 	\n"+
-			"    public A(String s){ this.s=s; }	\n"+
-			"    String s;	\n"+
-			"  }	\n"+
-			"}	\n"+
-			"class B {	\n"+
-			"  class C extends Inner.A {	\n"+
-			"    public C(String s){  B.this.inner.super(s); }   	\n"+
-			"  }	\n"+
-			"  Inner inner=new Inner();	\n"+
-			"}	\n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1EX5I8Z: Inner class emulation bug
- */
-public void test014() {
-	this.runConformTest(
-		new String[] {
-			/* Z1.java */
-			"Z1.java",
-			"public class Z1 { \n" +
-			"	public static void main(String[] argv){ \n" +
-			"		new Z1().new W(); \n" +
-			"		System.out.println(\"SUCCESS\"); \n" +
-			"	} \n" +
-			"	class W extends Y { \n" +
-			"		W() { \n" +
-			"			super(new Object(), foo()); \n" +
-			"		} \n" +
-			"	} \n" +
-			"	String foo() { \n" +
-			"		return \"\"; \n" +
-			"	} \n" +
-			"} \n" +
-			"class Y { \n" +
-			"	Y(Object o, String s) { \n" +
-			"	} \n" +
-			"}	\n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * 1EUC39Y: Incorrect Synthetic Emulation 
- */
-public void test015() {
-	this.runConformTest(
-		new String[] {
-			/* AAA.java */
-			"AAA.java",
-			"public class AAA {  \n"+
-			"	public static void main(String argv[]){  \n"+
-			"		if (new AAA().foo(5) == 15);  \n"+
-			"		System.out.println(\"SUCCESS\"); \n" +
-			"	}  \n"+
-			"	int foo(final int loc){  \n"+
-			"		class I {  \n"+
-			"			int i = loc;  \n"+
-			"			{  \n"+
-			"				System.out.println(\"loc=\"+ loc );	  \n"+
-			"			}  \n"+
-			"			int foo(){   \n"+
-			"				System.out.println(\"I:i=\"+ i );	  \n"+
-			"				return i;}   \n"+
-			"		}    \n"+
-			"		class J extends I {  \n"+
-			"			I obj = new I(){  \n"+
-			"				int foo() {  \n"+
-			"					System.out.println(\"J\");  \n"+
-			"					return super.foo() + 10; }};  \n"+
-			"		}  \n"+
-			"		return new J().obj.foo();  \n"+
-			"	}  \n"+
-			" }  \n"
-		}, 
-		"loc=5\n" + 
-		"loc=5\n" + 
-		"J\n" + 
-		"I:i=5\n" + 
-		"SUCCESS"
-	);									
-}
-/**
- * 1EUC39Y: Incorrect Synthetic Emulation 
- */
-public void test016() {
-	this.runConformTest(
-		new String[] {
-			/* AAA.java */
-			"AAA.java",
-			"public class AAA {  \n"+
-			"	public static void main(String argv[]){  \n"+
-			"		if (new AAA().foo(5) == 15);  \n"+
-			"		System.out.println(\"SUCCESS\"); \n" +
-			"	}  \n"+
-			"	class B{} \n"+
-			"	int foo(final int loc){ \n"+
-			"		class I extends B { \n"+
-			"			int i = loc; \n"+
-			"			{ \n"+
-			"				System.out.println(\"loc=\"+ loc );	 \n"+
-			"			} \n"+
-			"			int foo(){  \n"+
-			"				System.out.println(\"I:i=\"+ i );	 \n"+
-			"				return i;}  \n"+
-			"		}   \n"+
-			"		class J extends I { \n"+
-			"			I obj = new I(){ \n"+
-			"				int foo() { \n"+
-			"					System.out.println(\"J\"); \n"+
-			"					return super.foo() + 10; }}; \n"+
-			"		} \n"+
-			"		return new J().obj.foo(); \n"+
-			"	} \n"+
-			" }  \n"
-		}, 
-		"loc=5\n" + 
-		"loc=5\n" + 
-		"J\n" + 
-		"I:i=5\n" + 
-		"SUCCESS"
-	);									
-}
-/**
- * Complex multi-threaded test involving inner classes
- */
-public void test017() {
-	this.runConformTest(
-		new String[] {
-			/* MultiComplex.java */
-			"MultiComplex.java",
-			"public class MultiComplex {\n" + 
-			"	// should just be an interface, once supported...\n" + 
-			"	abstract class AbstractTask implements Runnable {\n" + 
-			"		public void run() {\n" + 
-			"			MultiComplex.this.notifyCompletion(this,0); \n" + 
-			"		}\n" + 
-			"		abstract public String taskName();		\n" + 
-			"	}\n" + 
-			"	public static void main(String argv[]){\n" + 
-			"		try {\n" + 
-			"			new MultiComplex().performTasks(3);\n" + 
-			"		}\n" + 
-			"		catch(InterruptedException e){};\n" + 
-			"	}  \n" + 
-			"	void notifyCompleted(AbstractTask task) {\n" + 
-			"	}\n" + 
-			"	void notifyCompletion(AbstractTask task, int percentage) {\n" + 
-			"	}\n" + 
-			"	void notifyExecutionEnd() {\n" + 
-			"		System.out.println(\"EXECUTION FINISHED\");\n" + 
-			"	}\n" + 
-			"	void notifyExecutionStart() {\n" + 
-			"		System.out.println(\"EXECUTION STARTING\");\n" + 
-			"	}\n" + 
-			"	void performTasks(final int maxTasks) throws InterruptedException {\n" + 
-			"		Thread workers[] = new Thread[maxTasks];\n" + 
-			"		AbstractTask tasks[] = new AbstractTask[maxTasks];\n" + 
-			"		final int maxIteration = 5;\n" + 
-			" \n" + 
-			"		// Local Task \n" + 
-			"		class Task extends AbstractTask { \n" + 
-			"				String taskName; \n" + 
-			"				Task(String aName) {\n" + 
-			"					taskName = aName;\n" + 
-			"				}\n" + 
-			"				public String taskName() { \n" + 
-			"					return taskName; \n" + 
-			"				}\n" + 
-			"	\n" + 
-			"				public void run() {\n" + 
-			"					super.run();\n" + 
-			"					for(int j = 0; j < maxIteration; j++)\n" + 
-			"						MultiComplex.this.notifyCompletion(this,  (int)((float) (j + 1) / maxIteration * 100));\n" + 
-			"				}\n" + 
-			"		};\n" + 
-			"		notifyExecutionStart();\n" + 
-			"		\n" + 
-			"		// Creating and launching the tasks\n" + 
-			"		for (int ii = 0; ii < maxTasks; ii++) {\n" + 
-			"			final int i = ii;\n" + 
-			"			tasks[i] = new Task(String.valueOf(i + 1)) {			\n" + 
-			"				public String taskName() { \n" + 
-			"					return super.taskName() +  \" of \" + maxTasks; }\n" + 
-			"				public void run() {\n" + 
-			"					super.run();\n" + 
-			"					MultiComplex.this.notifyCompleted(this);\n" + 
-			"				}		\n" + 
-			"			};\n" + 
-			"			workers[i] = new Thread(tasks[i],tasks[i].taskName());\n" + 
-			"			workers[i].start();\n" + 
-			"		}\n" + 
-			"		// Waiting for *all* tasks to be ended\n" + 
-			"		for (int i = 0; i < tasks.length; i++)\n" + 
-			"			workers[i].join();\n" + 
-			"		notifyExecutionEnd();\n" + 
-			"	}\n" + 
-			"}\n"		
-		}, 
-		"EXECUTION STARTING\n" + 
-		"EXECUTION FINISHED"
-	);									
-}
-/**
- * Complex multi-threaded test involving inner classes
- */
-public void test018() {
-	this.runConformTest(
-		new String[] {
-			/* MultiAnonymous.java */
-			"MultiAnonymous.java",
-			"public class MultiAnonymous {\n" + 
-			"	public static void main(String argv[]){\n" + 
-			"		try {\n" + 
-			"			new MultiAnonymous().performTasks(3);\n" + 
-			"		}\n" + 
-			"		catch(InterruptedException e){};\n" + 
-			"	}\n" + 
-			"	void notifyExecutionEnd() {\n" + 
-			"		System.out.println(\"EXECUTION FINISHED\");\n" + 
-			"	}\n" + 
-			"	void notifyExecutionStart() {\n" + 
-			"		System.out.println(\"EXECUTION STARTING\");\n" + 
-			"	}\n" + 
-			"	void performTasks(final int maxTasks) throws java.lang.InterruptedException {\n" + 
-			"		Thread workers[] = new Thread[maxTasks];\n" + 
-			"		Runnable tasks[] = new Runnable[maxTasks];\n" + 
-			"		final int maxIteration = 5;\n" + 
-			"		notifyExecutionStart();\n" + 
-			"		\n" + 
-			"		// Creating and launching the tasks\n" + 
-			"		for (int ii = 0; ii < maxTasks; ii++) {\n" + 
-			"			final int i = ii;\n" + 
-			"			tasks[i] = new Runnable() {			\n" + 
-			"				public String toString() { return ((i + 1) + \" of \" + maxTasks); }\n" + 
-			"				public void run() {\n" + 
-			"					for(int j = 0; j < maxIteration; j++)\n" + 
-			"						notifyCompletion( (int)((float) (j + 1) / maxIteration * 100));\n" + 
-			"				}		\n" + 
-			"			\n" + 
-			"				void notifyCompletion(int percentage) {\n" + 
-			"				}\n" + 
-			"			};\n" + 
-			"			workers[i] = new Thread(tasks[i],\"Running task(\"+(tasks[i].toString())+\")\");\n" + 
-			"			workers[i].start();\n" + 
-			"		}\n" + 
-			"		// Waiting for *all* tasks to be ended\n" + 
-			"		for (int i = 0; i < tasks.length; i++)\n" + 
-			"			workers[i].join();\n" + 
-			"		notifyExecutionEnd();\n" + 
-			"	}\n" + 
-			"}\n"
-		}, 
-		"EXECUTION STARTING\n" + 
-		"EXECUTION FINISHED"
-	);									
-}
-/**
- * Complex multi-threaded test involving inner classes
- */
-public void test019() {
-	this.runConformTest(
-		new String[] {
-			/* MultiComplex2.java */
-			"MultiComplex2.java",
-			"public class MultiComplex2 {\n" + 
-			"	public interface AbstractTask extends Runnable {\n" + 
-			"		public void run();\n" + 
-			"		public String taskName();		\n" + 
-			"	}\n" + 
-			"	\n" + 
-			"	public static void main(String argv[]){\n" + 
-			"		try {\n" + 
-			"			new MultiComplex2().performTasks(3);\n" + 
-			"		}\n" + 
-			"		catch(InterruptedException e){};\n" + 
-			"	}\n" + 
-			"	void notifyCompleted(AbstractTask task) {\n" + 
-			"	}\n" + 
-			"	void notifyCompletion(AbstractTask task, int percentage) {\n" + 
-			"	}\n" + 
-			"	void notifyExecutionEnd() {\n" + 
-			"		System.out.println(\"EXECUTION FINISHED\");\n" + 
-			"	}\n" + 
-			"	void notifyExecutionStart() {\n" + 
-			"		System.out.println(\"EXECUTION STARTING\");\n" + 
-			"	}\n" + 
-			"		void performTasks(final int maxTasks) throws java.lang.InterruptedException {\n" + 
-			"		Thread workers[] = new Thread[maxTasks];\n" + 
-			"		AbstractTask tasks[] = new AbstractTask[maxTasks];\n" + 
-			"		final int maxIteration = 5;\n" + 
-			"		// Local Task\n" + 
-			"		class Task implements AbstractTask {\n" + 
-			"				String taskName;\n" + 
-			"				Task(String aName) {\n" + 
-			"					taskName = aName;\n" + 
-			"				}\n" + 
-			"				public String taskName() { \n" + 
-			"					return taskName; \n" + 
-			"				}\n" + 
-			"	\n" + 
-			"				public void run() {\n" + 
-			"					MultiComplex2.this.notifyCompletion(this,0); \n" + 
-			"					for(int j = 0; j < maxIteration; j++)\n" + 
-			"						MultiComplex2.this.notifyCompletion(this,  (int)((float) (j + 1) / maxIteration * 100));\n" + 
-			"				}\n" + 
-			"		};\n" + 
-			"		notifyExecutionStart();\n" + 
-			"		\n" + 
-			"		// Creating and launching the tasks\n" + 
-			"		for (int ii = 0; ii < maxTasks; ii++) {\n" + 
-			"			final int i = ii;\n" + 
-			"			tasks[i] = new Task(String.valueOf(i + 1)) {			\n" + 
-			"				public String taskName() { \n" + 
-			"					return super.taskName() +  \" of \" + maxTasks; }\n" + 
-			"				public void run() {\n" + 
-			"					super.run();\n" + 
-			"					MultiComplex2.this.notifyCompleted(this);\n" + 
-			"				}		\n" + 
-			"			};\n" + 
-			"			workers[i] = new Thread(tasks[i],tasks[i].taskName());\n" + 
-			"			workers[i].start();\n" + 
-			"		}\n" + 
-			"		// Waiting for *all* tasks to be ended\n" + 
-			"		for (int i = 0; i < tasks.length; i++)\n" + 
-			"			workers[i].join();\n" + 
-			"		notifyExecutionEnd();\n" + 
-			"	}\n" + 
-			"}\n"
-		}, 
-		"EXECUTION STARTING\n" + 
-		"EXECUTION FINISHED"
-	);									
-}
-/**
- * Complex multi-threaded test involving inner classes
- */
-public void test020() {
-	this.runConformTest(
-		new String[] {
-			/* MultiLocal.java */
-			"MultiLocal.java",
-			"public class MultiLocal {\n" + 
-			"	public static void main(String argv[]){\n" + 
-			"		class Task implements Runnable {\n" + 
-			"			private String taskName;\n" + 
-			"			private int maxIteration; \n" + 
-			"			public Task(String name, int value) {\n" + 
-			"				taskName = name; \n" + 
-			"				maxIteration = value;\n" + 
-			"			}\n" + 
-			"	\n" + 
-			"			public String toString() { return taskName; }\n" + 
-			"			public void run() {\n" + 
-			"				for(int i = 0; i < maxIteration; i++)\n" + 
-			"					notifyCompletion( (int)((float) (i + 1) / maxIteration * 100));\n" + 
-			"			}		\n" + 
-			"			\n" + 
-			"			void notifyCompletion(int percentage) {\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"		MultiLocal multi = new MultiLocal();\n" + 
-			"		int maxTasks = 3;\n" + 
-			"		Task tasks[] = new Task[maxTasks];\n" + 
-			"		for (int i = 0; i < maxTasks; i++) \n" + 
-			"			tasks[i] = new Task(String.valueOf(i),5);\n" + 
-			"		try {\n" + 
-			"			multi.performTasks(tasks);\n" + 
-			"		}\n" + 
-			"		catch(InterruptedException e){};\n" + 
-			"	}\n" + 
-			"	void notifyExecutionEnd() {\n" + 
-			"		System.out.println(\"EXECUTION FINISHED\");\n" + 
-			"	}\n" + 
-			"	void notifyExecutionStart() {\n" + 
-			"		System.out.println(\"EXECUTION STARTING\");\n" + 
-			"	}\n" + 
-			"	void performTasks(Runnable tasks[]) throws java.lang.InterruptedException {\n" + 
-			"		Thread workers[] = new Thread[tasks.length];\n" + 
-			"		notifyExecutionStart();\n" + 
-			"		\n" + 
-			"		// Launching the tasks\n" + 
-			"		for (int i = 0; i < tasks.length; i++) {\n" + 
-			"			workers[i] = new Thread(tasks[i],\"Running task(\"+(tasks[i].toString())+\")\");\n" + 
-			"			workers[i].start();\n" + 
-			"		}\n" + 
-			"		// Waiting for *all* tasks to be ended\n" + 
-			"		for (int i = 0; i < tasks.length; i++)\n" + 
-			"			workers[i].join();\n" + 
-			"		notifyExecutionEnd();\n" + 
-			"	}\n" + 
-			"}\n"
-		}, 
-		"EXECUTION STARTING\n" + 
-		"EXECUTION FINISHED"
-	);									
-}
-/**
- * Complex multi-threaded test involving inner classes
- */
-public void test021() {
-	this.runConformTest(
-		new String[] {
-			/* MultiLocal2.java */
-			"MultiLocal2.java",
-			"public class MultiLocal2 {\n" + 
-			"	public static void main(String argv[]){\n" + 
-			"		final int maxTasks = 3;\n" + 
-			"		class Task implements Runnable {\n" + 
-			"			private String taskName;\n" + 
-			"			private int maxIteration;\n" + 
-			"			public Task(String name, int value) {\n" + 
-			"				taskName = name; \n" + 
-			"				maxIteration = value;\n" + 
-			"			}\n" + 
-			"	\n" + 
-			"			public String toString() { return taskName + \" of \" + String.valueOf(maxTasks); }\n" + 
-			"			public void run() {\n" + 
-			"				for(int i = 0; i < maxIteration; i++)\n" + 
-			"					notifyCompletion( (int)((float) (i + 1) / maxIteration * 100));\n" + 
-			"			}		\n" + 
-			"			\n" + 
-			"			void notifyCompletion(int percentage) {\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"		MultiLocal2 multi = new MultiLocal2();\n" + 
-			"		Task tasks[] = new Task[maxTasks];\n" + 
-			"		for (int i = 0; i < maxTasks; i++) \n" + 
-			"			tasks[i] = new Task(String.valueOf(i+1),5);\n" + 
-			"		try {\n" + 
-			"			multi.performTasks(tasks);\n" + 
-			"		}\n" + 
-			"		catch(InterruptedException e){};\n" + 
-			"	}\n" + 
-			"	void notifyExecutionEnd() {\n" + 
-			"		System.out.println(\"EXECUTION FINISHED\");\n" + 
-			"	}\n" + 
-			"	void notifyExecutionStart() {\n" + 
-			"		System.out.println(\"EXECUTION STARTING\");\n" + 
-			"	}\n" + 
-			"	void performTasks(Runnable tasks[]) throws java.lang.InterruptedException {\n" + 
-			"		Thread workers[] = new Thread[tasks.length];\n" + 
-			"		notifyExecutionStart();\n" + 
-			"		\n" + 
-			"		// Launching the tasks\n" + 
-			"		for (int i = 0; i < tasks.length; i++) {\n" + 
-			"			workers[i] = new Thread(tasks[i],\"Running task(\"+(tasks[i].toString())+\")\");\n" + 
-			"			workers[i].start();\n" + 
-			"		}\n" + 
-			"		// Waiting for *all* tasks to be ended\n" + 
-			"		for (int i = 0; i < tasks.length; i++)\n" + 
-			"			workers[i].join();\n" + 
-			"		notifyExecutionEnd();\n" + 
-			"	}\n" + 
-			"}\n"
-		}, 
-		"EXECUTION STARTING\n" + 
-		"EXECUTION FINISHED"
-	);									
-}
-/**
- * Complex multi-threaded test involving inner classes
- */
-public void test022() {
-	this.runConformTest(
-		new String[] {
-			/* MultiMember.java */
-			"MultiMember.java",
-			"public class MultiMember {\n" + 
-			"	class Task implements Runnable {\n" + 
-			"		private String taskName; \n" + 
-			"		private int maxIteration;\n" + 
-			"		public Task(String name, int value) {\n" + 
-			"			taskName = name; \n" + 
-			"			maxIteration = value;\n" + 
-			"		}\n" + 
-			"		public String toString() { return taskName; }\n" + 
-			"		public void run() {\n" + 
-			"			for(int i = 0; i < maxIteration; i++)\n" + 
-			"				notifyCompletion( (int)((float) (i + 1) / maxIteration * 100));\n" + 
-			"		}		\n" + 
-			"		\n" + 
-			"		void notifyCompletion(int percentage) {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static void main(String argv[]){\n" + 
-			"		MultiMember multi = new MultiMember();\n" + 
-			"		int maxTasks = 3;\n" + 
-			"		Task tasks[] = new Task[maxTasks];\n" + 
-			"		for (int i = 0; i < maxTasks; i++) \n" + 
-			"			tasks[i] = multi.new Task(String.valueOf(i),5);\n" + 
-			"		try {\n" + 
-			"			multi.performTasks(tasks);\n" + 
-			"		}\n" + 
-			"		catch(InterruptedException e){};\n" + 
-			"	}\n" + 
-			"	void notifyExecutionEnd() {\n" + 
-			"		System.out.println(\"EXECUTION FINISHED\");\n" + 
-			"	}\n" + 
-			"	void notifyExecutionStart() {\n" + 
-			"		System.out.println(\"EXECUTION STARTING\");\n" + 
-			"	}\n" + 
-			"	void performTasks(Task tasks[]) throws java.lang.InterruptedException {\n" + 
-			"		Thread workers[] = new Thread[tasks.length];\n" + 
-			"		notifyExecutionStart();\n" + 
-			"		\n" + 
-			"		// Launching the tasks\n" + 
-			"		for (int i = 0; i < tasks.length; i++) {\n" + 
-			"			workers[i] = new Thread(tasks[i],\"Running task(\"+(tasks[i].toString())+\")\");\n" + 
-			"			workers[i].start();\n" + 
-			"		}\n" + 
-			"		// Waiting for *all* tasks to be ended\n" + 
-			"		for (int i = 0; i < tasks.length; i++)\n" + 
-			"			workers[i].join();\n" + 
-			"		notifyExecutionEnd();\n" + 
-			"	}\n" + 
-			"}\n"
-		}, 
-		"EXECUTION STARTING\n" + 
-		"EXECUTION FINISHED"
-	);									
-}
-/**
- * No need for protected access emulation
- */
-public void test023() {
-	this.runNegativeTest(
-		new String[] {
-			/* X.java */
-			"p/X.java",
-			"public class X extends q.Y { \n" +
-			"	void bar(){ Object o = someObject; } \n"+
-			"	public static void main(String[] argv){ \n" +
-			"		new X().bar();\n"+
-			"		System.out.println(\"SUCCESS\");\n"+
-			"	}\n"+
-			"}\n",
-			/* Y.java */
-			"q/Y.java",
-			"package q; \n" + 
-			"public class Y { \n" + 
-			"	protected Object someObject; \n" + 
-			"}\n"
-		}, 
-		""	// no problem log: not even a synthetic access emulation one
-	);									
-}
-/**
- * No need for protected access emulation
- */
-public void test024() {
-	this.runNegativeTest(
-		new String[] {
-			/* X.java */
-			"p/X.java",
-			"package p; \n" + 
-			"public class X extends q.Y { \n" +
-			"	void bar(){ foo(); } \n"+
-			"	public static void main(String[] argv){ \n" +
-			"		new X().bar();\n"+
-			"		System.out.println(\"SUCCESS\");\n"+
-			"	}\n"+
-			"}\n",
-			/* Y.java */
-			"q/Y.java",
-			"package q; \n" + 
-			"public class Y { \n" + 
-			"	protected Object foo(){ return null;} \n" + 
-			"}\n"
-		}, 
-		""	// no problem log: not even a synthetic access emulation one
-	);									
-}
-
-public void test025() {
-	this.runConformTest(
-		new String[] {
-			/* PortReport.java */
-			"PortReport.java",
-			"import java.util.*; \n"+
-			"public class PortReport { \n"+
-			"	public static void main(String[] args) { \n"+
-			"		Portfolio port = new Portfolio(\"foobar\"); \n"+
-			"		System.out.println(\"SUCCESS\"); \n" +
-			"	} \n"+
-			"} \n",
-			/* Portfolio.java */
-			"Portfolio.java",
-			"import java.util.*;	\n"+
-			"public class Portfolio {	\n"+
-			"	String name;	\n"+
-			"	public Portfolio(String buf) {	\n"+
-			"		TokenBuffer tbuf = new TokenBuffer();	\n"+
-			"		switch (1) {	\n"+
-			"			case TokenBuffer.T_NAME :	\n"+
-			"				name = \"figi\";	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	String getName() {	\n"+
-			"		return name;	\n"+
-			"	}	\n"+
-			"	class TokenBuffer {	\n"+
-			"		static final int T_NAME = 3;	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * Compatability - Compiler does not comply with 1.1 standard.
- */
-public void test026() {
-	this.runConformTest(
-		new String[] {
-			/* Test.java */
-			"p2/Test.java",
-			"package p2;	\n"+
-			"public class Test {	\n"+
-			"	public static void main (String args[]){	\n"+
-			"		new c2();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* c1.java */
-			"p1/c1.java",
-			"package p1;	\n"+
-			"public class c1 {	\n"+
-			"	protected class c1a{	\n"+
-			"		public c1a(){}	\n"+
-			"		public void foo(){ System.out.println(\"Foo called\");	\n"+
-			"		}	\n"+
-			"	};	\n"+
-			"}	\n",
-			/* c2.java */
-			"p2/c2.java",
-			"package p2;	\n"+
-			"import p1.*;	\n"+
-			"public class c2 extends c1 {	\n"+
-			"	public c1a myC1a;	\n"+
-			"	{	\n"+
-			"		myC1a = new c1a();	\n"+
-			"		myC1a.foo();	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"Foo called"
-	);									
-}
-/**
- * Compatability - Compiler does not comply with 1.1 standard.
- */
-public void test027() {
-	this.runNegativeTest(
-		new String[] {
-			/* Test.java */
-			"p2/Test.java",
-			"package p2;	\n"+
-			"public class Test {	\n"+
-			"	public static void main (String args[]){	\n"+
-			"		new c2();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* c1.java */
-			"p1/c1.java",
-			"package p1;	\n"+
-			"public class c1 {	\n"+
-			"	public class c1m {	\n"+
-			"		protected class c1a{	\n"+
-			"			public c1a(){}	\n"+
-			"			public void foo(){ System.out.println(\"Foo called\");	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	};	\n"+
-			"}	\n",
-			/* c2.java */
-			"p2/c2.java",
-			"package p2;	\n"+
-			"import p1.*;	\n"+
-			"public class c2 extends c1 {	\n"+
-			"	public c1m.c1a myC1a;	\n"+
-			"	{	\n"+
-			"		myC1a = new c1m().new c1a();	\n"+
-			"		myC1a.foo();	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"----------\n" + 
-		"1. ERROR in p2\\c2.java (at line 4)\n" + 
-		"	public c1m.c1a myC1a;	\n" + 
-		"	       ^^^^^^^\n" + 
-		"The type c1m.c1a is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1m().new c1a();	\n" + 
-		"	^^^^^\n" + 
-		"myC1a cannot be resolved\n" + 
-		"----------\n" + 
-		"3. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1m().new c1a();	\n" + 
-		"	                      ^^^\n" + 
-		"The type c1.c1m.c1a is not visible\n" + 
-		"----------\n" + 
-		"4. ERROR in p2\\c2.java (at line 7)\n" + 
-		"	myC1a.foo();	\n" + 
-		"	^^^^^\n" + 
-		"myC1a cannot be resolved\n" + 
-		"----------\n"
-	);									
-}
-/**
- * Compatability - Compiler does not comply with 1.1 standard.
- */
-public void test028() {
-	this.runNegativeTest(
-		new String[] {
-			/* Test.java */
-			"p2/Test.java",
-			"package p2;	\n"+
-			"public class Test {	\n"+
-			"	public static void main (String args[]){	\n"+
-			"		new c2();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* c1.java */
-			"p1/c1.java",
-			"package p1;	\n"+
-			"public class c1 {	\n"+
-			"	protected class c1m {	\n"+
-			"		protected class c1a{	\n"+
-			"			public c1a(){}	\n"+
-			"			public void foo(){ System.out.println(\"Foo called\");	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	};	\n"+
-			"}	\n",
-			/* c2.java */
-			"p2/c2.java",
-			"package p2;	\n"+
-			"import p1.*;	\n"+
-			"public class c2 extends c1 {	\n"+
-			"	public c1m.c1a myC1a;	\n"+
-			"	{	\n"+
-			"		myC1a = new c1m().new c1a();	\n"+
-			"		myC1a.foo();	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"----------\n" + 
-		"1. ERROR in p2\\c2.java (at line 4)\n" + 
-		"	public c1m.c1a myC1a;	\n" + 
-		"	       ^^^^^^^\n" + 
-		"The type c1m.c1a is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1m().new c1a();	\n" + 
-		"	^^^^^\n" + 
-		"myC1a cannot be resolved\n" + 
-		"----------\n" + 
-		"3. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1m().new c1a();	\n" + 
-		"	        ^^^^^^^^^\n" + 
-		"The constructor c1.c1m() is not visible\n" + 
-		"----------\n" + 
-		"4. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1m().new c1a();	\n" + 
-		"	                      ^^^\n" + 
-		"The type c1.c1m.c1a is not visible\n" + 
-		"----------\n" + 
-		"5. ERROR in p2\\c2.java (at line 7)\n" + 
-		"	myC1a.foo();	\n" + 
-		"	^^^^^\n" + 
-		"myC1a cannot be resolved\n" + 
-		"----------\n"
-	);									
-}
-/**
- * Compatability - Compiler does not comply with 1.1 standard.
- */
-public void test029() {
-	this.runConformTest(
-		new String[] {
-			/* Test.java */
-			"p2/Test.java",
-			"package p2;	\n"+
-			"public class Test {	\n"+
-			"	public static void main (String args[]){	\n"+
-			"		new c2();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* c1.java */
-			"p1/c1.java",
-			"package p1;	\n"+
-			"public class c1 {	\n"+
-			"	protected class c1a{	\n"+
-			"		public c1a(){}	\n"+
-			"		public void foo(){ System.out.println(\"Foo called\");	\n"+
-			"		}	\n"+
-			"	};	\n"+
-			"}	\n",
-			/* c2.java */
-			"p2/c2.java",
-			"package p2;	\n"+
-			"import p1.*;	\n"+
-			"public class c2 extends c1 {	\n"+
-			"	public c1.c1a myC1a;\n"+
-			"	{	\n"+
-			"		myC1a = new c1a();	\n"+
-			"		myC1a.foo();	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"Foo called");									
-}
-/**
- * Compatability - Compiler does not comply with 1.1 standard.
- */
-public void test030() {
-	this.runNegativeTest(
-		new String[] {
-			/* Test.java */
-			"p2/Test.java",
-			"package p2;	\n"+
-			"public class Test {	\n"+
-			"	public static void main (String args[]){	\n"+
-			"		new c2();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* c1.java */
-			"p1/c1.java",
-			"package p1;	\n"+
-			"public class c1 {	\n"+
-			"	protected class c1a{	\n"+
-			"		public c1a(){}	\n"+
-			"		public void foo(){ System.out.println(\"Foo called\");	\n"+
-			"		}	\n"+
-			"	};	\n"+
-			"}	\n",
-			/* c2.java */
-			"p2/c2.java",
-			"package p2;	\n"+
-			"import p1.*;	\n"+
-			"public class c2 extends c1.c1a {// qualified acces does not work	\n"+
-			"	public c1a myC1a; \n"+
-			"	{	\n"+
-			"		myC1a = new c1a();	\n"+
-			"		myC1a.foo();	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"----------\n" + 
-		"1. ERROR in p2\\c2.java (at line 3)\n" + 
-		"	public class c2 extends c1.c1a {// qualified acces does not work	\n" + 
-		"	                        ^^^^^^\n" + 
-		"The type c1.c1a is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p2\\c2.java (at line 4)\n" + 
-		"	public c1a myC1a; \n" + 
-		"	       ^^^\n" + 
-		"c1a cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1a();	\n" + 
-		"	^^^^^\n" + 
-		"myC1a cannot be resolved\n" + 
-		"----------\n" + 
-		"4. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1a();	\n" + 
-		"	            ^^^\n" + 
-		"c1a cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"5. ERROR in p2\\c2.java (at line 7)\n" + 
-		"	myC1a.foo();	\n" + 
-		"	^^^^^\n" + 
-		"myC1a cannot be resolved\n" + 
-		"----------\n"
-	);									
-}
-/**
- * Compatability - Compiler does not comply with 1.1 standard.
- */
-public void test031() {
-	this.runNegativeTest(
-		new String[] {
-			/* Test.java */
-			"p2/Test.java",
-			"package p2;	\n"+
-			"public class Test {	\n"+
-			"	public static void main (String args[]){	\n"+
-			"		new c2();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* c1.java */
-			"p1/c1.java",
-			"package p1;	\n"+
-			"public class c1 {	\n"+
-			"	protected class c1a{	\n"+
-			"		public c1a(){}	\n"+
-			"		public void foo(){ System.out.println(\"Foo called\");	\n"+
-			"		}	\n"+
-			"	};	\n"+
-			"}	\n",
-			/* c2.java */
-			"p2/c2.java",
-			"package p2;	\n"+
-			"import p1.c1.*;	\n"+
-			"public class c2 extends c1a {	\n"+
-			"	public c1a myC1a; \n"+
-			"	{	\n"+
-			"		myC1a = new c1a();	\n"+
-			"		myC1a.foo();	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"----------\n" + 
-		"1. ERROR in p2\\c2.java (at line 3)\n" + 
-		"	public class c2 extends c1a {	\n" + 
-		"	                        ^^^\n" + 
-		"The type c1a is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p2\\c2.java (at line 4)\n" + 
-		"	public c1a myC1a; \n" + 
-		"	       ^^^\n" + 
-		"The type c1a is not visible\n" + 
-		"----------\n" + 
-		"3. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1a();	\n" + 
-		"	^^^^^\n" + 
-		"myC1a cannot be resolved\n" + 
-		"----------\n" + 
-		"4. ERROR in p2\\c2.java (at line 6)\n" + 
-		"	myC1a = new c1a();	\n" + 
-		"	            ^^^\n" + 
-		"The type c1a is not visible\n" + 
-		"----------\n" + 
-		"5. ERROR in p2\\c2.java (at line 7)\n" + 
-		"	myC1a.foo();	\n" + 
-		"	^^^^^\n" + 
-		"myC1a cannot be resolved\n" + 
-		"----------\n"
-
-	);									
-}
-/**
- * VerifyError using .class literal inside inner classes
- */
-public void test032() {
-	this.runConformTest(
-		new String[] {
-			"p/A.java",
-			"package p;	\n"+
-			"public class A {\n" +
-			"		public class B {\n" +
-			"				public B() {\n" +
-			"				}\n" +
-			"				public Class getCls() {\n" +
-			"						return A.class;\n" +
-			"				}\n" +
-			"		}\n" +
-			"		public A() {\n" +
-			"				super();\n" +
-			"				B b = new B();\n" +
-			"				System.out.println(\"Class: \" + b.getCls());\n" + 
-			"		}\n" +
-			"		public static void main(String[] args) {\n" +
-			"				A a = new A();\n" +
-			"		}\n" +
-			"}\n"
-		},
-		"Class: class p.A");
-}
-/**
- * Missing implementation in the compiler compiling invalid code
- */
-public void test033() {
-	this.runNegativeTest(
-		new String[] {
-			/* A2.java */
-			"p1/A2.java",
-			"package p1;	\n"+
-			"class D {	\n"+
-			"	class E {	\n"+
-			"		E(Object o, Object o1, Object o2, F f) {}	\n"+
-			"		void execute() {}	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"class F {	\n"+
-			"	F(Object o) {	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"public class A2 {	\n"+
-			"	private abstract class B {	\n"+
-			"		public Object get() {	\n"+
-			"			return null;	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	private class C extends B {	\n"+
-			"		public void foo() {	\n"+
-			"			(new D.E(null, null, null, new F(get()) {}) {}).execute();	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}\n"
-		}, 
-		"----------\n" + 
-		"1. WARNING in p1\\A2.java (at line 18)\n" + 
-		"	private class C extends B {	\n" + 
-		"	              ^\n" + 
-		"The type A2.C is never used locally\n" + 
-		"----------\n" + 
-		"2. WARNING in p1\\A2.java (at line 18)\n" + 
-		"	private class C extends B {	\n" + 
-		"	              ^\n" + 
-		"Access to enclosing constructor A2.B() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + 
-		"----------\n" + 
-		"3. ERROR in p1\\A2.java (at line 20)\n" + 
-		"	(new D.E(null, null, null, new F(get()) {}) {}).execute();	\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type D is accessible. Must qualify the allocation with an enclosing instance of type D (e.g. x.new A() where x is an instance of D).\n" + 
-		"----------\n");									
-}
-/**
- * Missing implementation in the compiler compiling invalid code
- */
-public void test034() {
-	this.runConformTest(
-		new String[] {
-			/* A2.java */
-			"p1/A2.java",
-			"package p1;	\n"+
-			"class D {	\n"+
-			"	class E {	\n"+
-			"		E(Object o, Object o1, Object o2, F f) {}	\n"+
-			"		void execute() {}	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"class F {	\n"+
-			"	F(Object o) {	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"public class A2 {	\n"+
-			"	private abstract class B {	\n"+
-			"		public Object get() {	\n"+
-			"			return null;	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	private class C extends B {	\n"+
-			"		public void foo() {	\n"+
-			"			(new D().new E(null, null, null, new F(get()) {}) {}).execute();	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	public static void main(String[] argv){	\n"+
-			"		new A2().new C().foo();	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * Missing implementation in the compiler compiling invalid code
- */
-public void test035() {
-	this.runNegativeTest(
-		new String[] {
-			/* A2.java */
-			"p1/A2.java",
-			"package p1;	\n"+
-			"class D {	\n"+
-			"	class E {	\n"+
-			"		E(Object o, Object o1, Object o2, F f) {}	\n"+
-			"		void execute() {}	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"class F {	\n"+
-			"	F(Object o) {	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"public class A2 {	\n"+
-			"	private abstract class B {	\n"+
-			"		public Object get() {	\n"+
-			"			return null;	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	private class C extends B {	\n"+
-			"		public void foo() {	\n"+
-			"			(new D.E(null, null, null, new F(get()) {})).execute();	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}\n"
-		}, 
-		"----------\n" + 
-		"1. WARNING in p1\\A2.java (at line 18)\n" + 
-		"	private class C extends B {	\n" + 
-		"	              ^\n" + 
-		"The type A2.C is never used locally\n" + 
-		"----------\n" + 
-		"2. WARNING in p1\\A2.java (at line 18)\n" + 
-		"	private class C extends B {	\n" + 
-		"	              ^\n" + 
-		"Access to enclosing constructor A2.B() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + 
-		"----------\n" + 
-		"3. ERROR in p1\\A2.java (at line 20)\n" + 
-		"	(new D.E(null, null, null, new F(get()) {})).execute();	\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type D is accessible. Must qualify the allocation with an enclosing instance of type D (e.g. x.new A() where x is an instance of D).\n" + 
-		"----------\n");									
-}
-/**
- * ClassCastException during inner class emulation
- */
-public void test036() {
-	this.runConformTest(
-		new String[] {
-			/* A.java */
-			"p1/A.java",
-			"package p1;	\n"+
-			"public class A {	\n"+
-			"	public static void main(String[] argv){	\n"+
-			"		new A().foo();	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	public Object foo() {	\n"+
-			"		B b = new B() {	\n"+
-			"			protected Object bar() {	\n"+
-			"				return new B.C() {};	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"		return b;	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"class B {	\n"+
-			"	class C {	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * ClassCastException during inner class emulation
- */
-public void test037() {
-	this.runConformTest(
-		new String[] {
-			/* A.java */
-			"p1/A.java",
-			"package p1;	\n"+
-			"public class A {	\n"+
-			"	public static void main(String[] argv){	\n"+
-			"		new A().foo();	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	public Object foo() {	\n"+
-			"		I i = new I() {	\n"+
-			"			protected Object bar() {	\n"+
-			"				return new I.C() {};	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"		return i;	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"interface I {	\n"+
-			"	class C {	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * Enclosing instance comparison
- */
-public void test038() {
-	this.runConformTest(
-		new String[] {
-			/* X.java */
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		if (new X().foo())	\n"+
-			"			System.out.println(\"FAILED\");	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	boolean bar() {	\n"+
-			"		return false;	\n"+
-			"	}	\n"+
-			"	boolean foo() {	\n"+
-			"		X x = new X() {	\n"+
-			"			boolean test() {	\n"+
-			"				return (X.this == this);	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"		return x.bar();	\n"+
-			"	}	\n"+
-			"}	\n"
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test039() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        Y.this.foo(); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test040() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        new Y().foo(); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test041() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        Y.super.foo(); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test042() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"SUCCESS\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(Y.super.foo); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test043() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"SUCCESS\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(Y.this.foo); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test044() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"SUCCESS\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(new Y().foo); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test045() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"SUCCESS\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(foo); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test046() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"SUCCESS\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"   Y someY;	\n"+
-			"	public void bar() {	\n"+
-			"		someY = this;	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(someY.foo); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test047() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"FAILED\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(Y.super.foo = \"SUCCESS\"); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test048() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"FAILED\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(Y.this.foo = \"SUCCESS\"); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test049() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"FAILED\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(new Y().foo = \"SUCCESS\"); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test050() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"FAILED\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(foo = \"SUCCESS\"); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=6456
- * Invalid error when compiling access to protected member inside innerclass   
- */
-public void test051() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"FAILED\";	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new p2.Y().bar();	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends p1.X {	\n"+
-			"   Y someY;	\n"+
-			"	public void bar() {	\n"+
-			"		someY = this;	\n"+
-			"		new Object(){	\n"+
-			"	      void doSomething(){	\n"+
-			"	        System.out.println(someY.foo = \"SUCCESS\"); \n"+
-			"	      }	\n"+
-			"	    }.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n",
-		}, 
-		"SUCCESS"
-	);									
-}
-
-
-public void test052() {
-	this.runConformTest(
-		new String[] {
-			/* p2/Y.java */
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y {	\n"+
-			"	void bar(final int someVal){	\n"+
-			"		class Local {	\n"+
-			"			void localDo(final int localVal){	\n"+
-			"				new Object(){	\n"+
-			"					void doSomething(){	\n"+
-			"						System.out.print(someVal + localVal);	\n"+
-			"					}	\n"+
-			"				}.doSomething();	\n"+
-			"			}				\n"+
-			"		};	\n"+
-			"		Local loc = new Local();	\n"+
-			"		loc.localDo(8);	\n"+
-			"		class SubLocal extends Local {	\n"+
-			"			void localDo(final int localVal){	\n"+
-			"				super.localDo(localVal + 1);	\n"+
-			"				new Object(){	\n"+
-			"					void doSomething(){	\n"+
-			"						SubLocal.super.localDo(localVal + 2);	\n"+
-			"						System.out.print(someVal + localVal + 3);	\n"+
-			"					}	\n"+
-			"				}.doSomething();	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"		SubLocal subloc = new SubLocal();	\n"+
-			"		subloc.localDo(8);	\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new Y().bar(4);	\n"+
-			"		System.out.println();	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"12131415"
-	);
-}
-
-public void test053() {
-	this.runConformTest(
-		new String[] {
-			/* p2/Z.java */
-			"p2/Z.java",
-			"package p2;	\n"+
-			"import p1.X;	\n"+
-			"public class Z {	\n"+
-			"	class ZMember extends X {	\n"+
-			"		ZMember(Object o){}	\n"+
-			"		Z bar(){	\n"+
-			"			System.out.println(foo = \"FAILED\");	\n"+
-			"			return Z.this;	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	Z(final Object foo){	\n"+
-			"		Object obj2 = new Object(){	\n"+
-			"			Object doSomething(){	\n"+
-			"				ZMember obj3 = new ZMember(foo){	\n"+
-			"					Z bar(){	\n"+
-			"						System.out.println(this.foo);	\n"+
-			"						return Z.this;	\n"+
-			"					} \n"+
-			"				};	\n"+
-			"				obj3.bar();	\n"+
-			"				return this;	\n"+
-			"			}	\n"+
-			"		}.doSomething();	\n"+
-			"	}		\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new Z(new Object());	\n"+
-			"	}	\n"+
-			"}	\n",
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected String foo = \"SUCCESS\";	\n"+
-			"}	\n"
-		},
-		"SUCCESS"
-	);
-}
-public void test055() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	void foo() {	\n"+
-			"		class L1 {	\n"+
-			"			class LM1 {	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"		class L2 extends L1.LM1 {	\n"+
-			"		}	\n"+
-			"		new L2();	\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().foo();	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 8)\n" + 
-		"	class L2 extends L1.LM1 {	\n" + 
-		"	      ^^\n" + 
-		"No enclosing instance of type L1 is accessible to invoke the super constructor. Must define a constructor and explicitly qualify its super constructor invocation with an instance of L1 (e.g. x.super() where x is an instance of L1).\n" + 
-		"----------\n"
-
-	);
-}
-
-public void test056() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	void foo() {	\n"+
-			"		class L1 {	\n"+
-			"			class LM1 {	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"		new L1().new LM1(){};	//ok\n"+
-			"		new L1.LM1(){};	//ko\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().foo();	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 9)\n" + 
-		"	new L1.LM1(){};	//ko\n" + 
-		"	^^^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type L1 is accessible. Must qualify the allocation with an enclosing instance of type L1 (e.g. x.new A() where x is an instance of L1).\n" + 
-		"----------\n"
-	);
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=9813
- * VerifyError with Inner Class having private constructor
- */
-public void test057() {
-	this.runConformTest(
-		new String[] {
-			/* VE_Test.java */
-			"VE_Test.java",
-			"public class VE_Test {	\n"+
-			"    class VE_Inner {	\n"+
-			"        private VE_Inner() {}	\n"+
-			"    }	\n"+
-			"    private static void test(){	\n"+
-			"        VE_Test ve_test = new VE_Test();	\n"+
-			"        VE_Inner pi = ve_test.new VE_Inner();	\n"+
-			"    }	\n"+
-			"    public static void main(String[] args){	\n"+
-			"        new VE_Test();	\n"+
-			"        System.out.println(\"SUCCESS\");	\n"+
-			"    }	\n"+
-			"}	\n",
-		},
-		"SUCCESS"
-	);
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=11845
- * NPE during emulation
- */
-public void test058() {
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1;	\n"+
-			"import p2.A;	\n"+
-			"public class Test {	\n"+
-			"    public static void main(String[] args){	\n"+
-			"        new Test().a.bar();	\n"+
-			"    }	\n"+
-			"	private A a = new A() {	\n"+
-			"		public void bar() {	\n"+
-			"			new Object() {	\n"+
-			"				protected void foo() {	\n"+
-			"					init();	\n"+
-			"				}	\n"+
-			"			}.foo(); 	\n"+
-			"		}	\n"+
-			"	};	\n"+
-			"	private void init() {	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n" +
-			"}	\n",
-			"p2/A.java",
-			"package p2;	\n"+
-			"public class A {	\n"+
-			"  public void bar() {	\n"+
-			"  }	\n"+
-			"  private void init() {	\n"+
-			"		System.out.println(\"FAILED\");	\n"+
-			"  }	\n"+
-			"} 	\n"			
-		},
-		"SUCCESS"
-	);
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=11845
- * variant for single name ref
- */
-public void test059() {
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1;	\n"+
-			"import p2.A;	\n"+
-			"public class Test {	\n"+
-			"    public static void main(String[] args){	\n"+
-			"        new Test().a.bar();	\n"+
-			"    }	\n"+
-			"	private A a = new A() {	\n"+
-			"		public void bar() {	\n"+
-			"			new Object() {	\n"+
-			"				protected void foo() {	\n"+
-			"					System.out.println(init);	\n"+
-			"				}	\n"+
-			"			}.foo(); 	\n"+
-			"		}	\n"+
-			"	};	\n"+
-			"	private String init = \"SUCCESS\";	\n"+
-			"}	\n",
-			"p2/A.java",
-			"package p2;	\n"+
-			"public class A {	\n"+
-			"  public void bar() {	\n"+
-			"  }	\n"+
-			"	private String init = \"FAILED\";	\n"+
-			"} 	\n"			
-		},
-		"SUCCESS"
-	);
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=11845
- * variant for qualified name ref
- */
-public void test060() {
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1;	\n"+
-			"import p2.A;	\n"+
-			"public class Test {	\n"+
-			"    public static void main(String[] args){	\n"+
-			"        new Test().a.bar();	\n"+
-			"    }	\n"+
-			"	private A a = new A() {	\n"+
-			"		public void bar() {	\n"+
-			"			class L {	\n"+
-			"				Test next = Test.this;	\n"+
-			"				protected void foo() {	\n"+
-			"					System.out.println(next.init);	\n"+
-			"				}	\n"+
-			"			};	\n" +
-			"			new L().foo(); 	\n"+
-			"		}	\n"+
-			"	};	\n"+
-			"	private String init = \"SUCCESS\";	\n"+
-			"}	\n",
-			"p2/A.java",
-			"package p2;	\n"+
-			"public class A {	\n"+
-			"  public void bar() {	\n"+
-			"  }	\n"+
-			"} 	\n"			
-		},
-		"SUCCESS"
-	);
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=11845
- * variant for field name ref
- */
-public void test061() {
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1;	\n"+
-			"import p2.A;	\n"+
-			"public class Test {	\n"+
-			"    public static void main(String[] args){	\n"+
-			"        new Test().a.bar();	\n"+
-			"    }	\n"+
-			"	private A a = new A() {	\n"+
-			"		public void bar() {	\n"+
-			"			class L {	\n"+
-			"				protected void foo() {	\n"+
-			"					System.out.println(Test.this.init);	\n"+
-			"				}	\n"+
-			"			};	\n" +
-			"			new L().foo(); 	\n"+
-			"		}	\n"+
-			"	};	\n"+
-			"	private String init = \"SUCCESS\";	\n"+
-			"}	\n",
-			"p2/A.java",
-			"package p2;	\n"+
-			"public class A {	\n"+
-			"  public void bar() {	\n"+
-			"  }	\n"+
-			"} 	\n"			
-		},
-		"SUCCESS"
-	);
-}
-
-public void test062() {
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"    public static void main(String args[]) {	\n"+
-			"		final String s = args.length == 0 ? \"SUCCESS\" : null;	\n"+
-			"		final class Local {	\n"+
-			"			private Local() {	\n"+
-			"				new LocalMember();	\n"+
-			"			}	\n"+
-			"			class LocalMember {	\n"+
-			"				{	\n"+
-			"					new LocalMemberMember();	\n"+
-			"				}	\n"+
-			"				class LocalMemberMember {	\n"+
-			"					{	\n"+
-			"						System.out.println(s);	\n"+
-			"					}	\n"+
-			"				}	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"		new Local();	\n"+
-			"    }	\n"+
-			"}	\n"
-		},
-		"SUCCESS"
-	);
-}
-
-public void test062a() {
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"    public static void main(String args[]) {	\n"+
-			"		final String s = \"SUCCESS\";\n"+
-			"		final class Local {	\n"+
-			"			Local() {	\n"+
-			"				new LocalMember();	\n"+
-			"			}	\n"+
-			"			class LocalMember {	\n"+
-			"				{	\n"+
-			"					new LocalMemberMember();	\n"+
-			"				}	\n"+
-			"				class LocalMemberMember {	\n"+
-			"					{	\n"+
-			"						System.out.println(s);	\n"+
-			"					}	\n"+
-			"				}	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"		new Local();	\n"+
-			"    }	\n"+
-			"}	\n"
-		},
-		"SUCCESS"
-	);
-}
-
-public void test063() {
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	String a = new Object(){	\n"+
-			"			class LocalMember {	\n"+
-			"				String s = \"SUCCESS\";	\n"+
-			"			};	\n"+
-			"			String get_a(){	\n"+
-			"				return new LocalMember().s;	\n"+
-			"			}	\n"+
-			"	}.get_a();	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		System.out.println(new X().a);	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"SUCCESS"
-		);
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=21447
- * should invoke Y.foo() at runtime
- */
-public void test064(){
-	this.runConformTest(
-		new String[] {
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends T {	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new Y().bar();	\n"+
-			"	}	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"Y.foo()\");	\n"+
-			"	}	\n"+
-			"}	\n",
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"X.foo()\");	\n"+
-			"	}	\n"+
-			"}	\n",
-			"p2/T.java",
-			"package p2;	\n"+
-			"public class T extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"			void doSomething(){	\n" +
-			"				T.this.foo();	\n"+
-			"			}	\n" +
-			"		}.doSomething();	\n" +
-			"	}	\n"+
-			"}	\n",
-		},
-		"Y.foo()"
-		);
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=21447
- * variation - if T.foo() is defined
- */
-public void test065(){
-	this.runConformTest(
-		new String[] {
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends T {	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new Y().bar();	\n"+
-			"	}	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"Y.foo()\");	\n"+
-			"	}	\n"+
-			"}	\n",
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"X.foo()\");	\n"+
-			"	}	\n"+
-			"}	\n",
-			"p2/T.java",
-			"package p2;	\n"+
-			"public class T extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"			void doSomething(){	\n" +
-			"				T.this.foo();	\n"+
-			"			}	\n" +
-			"		}.doSomething();	\n" +
-			"	}	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"T.foo()\");	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"Y.foo()"
-		);
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=21447
- * should invoke Y.foo() and X.foo() at runtime (through 2 separate access methods)
- */
-public void test066(){
-	this.runConformTest(
-		new String[] {
-			"p2/Y.java",
-			"package p2;	\n"+
-			"public class Y extends T {	\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		new Y().bar();	\n"+
-			"	}	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.print(\"Y.foo()-\");	\n"+
-			"	}	\n"+
-			"}	\n",
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	protected void foo() {	\n"+
-			"		System.out.println(\"X.foo()\");	\n"+
-			"	}	\n"+
-			"}	\n",
-			"p2/T.java",
-			"package p2;	\n"+
-			"public class T extends p1.X {	\n"+
-			"	public void bar() {	\n"+
-			"		new Object(){	\n"+
-			"			void doSomething(){	\n" +
-			"				T.this.foo();	\n"+
-			"				T.super.foo();	//need extra access method \n"+
-			"			}	\n" +
-			"		}.doSomething();	\n" +
-			"	}	\n"+
-			"}	\n",
-		},
-		"Y.foo()-X.foo()"
-		);
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=22093
- * test collision check for synthetic accessors to constructors
- */
-public void test067(){
-	this.runConformTest(
-		new String[] {
-			"p/Test.java",
-			"package p;	\n"+
-			"public class Test {	\n"+
-			"	class Member {	\n"+
-			"		private Member(){	\n"+
-			"		}	\n"+
-			"		private Member(Member other){	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		Test t = new Test();	\n"+
-			"		Member m1 = t.new Member();	\n"+
-			"		t.new Member(m1);	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"SUCCESS"); 
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=25229
-public void test068(){
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new X2().foo();	\n"+
-			"	}	\n"+
-			"	class X1 {	\n"+
-			"		void baz1() {	\n"+
-			"			System.out.print(\"-X1.baz1()\");	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	class X2 {	\n"+
-			"		void foo(){	\n"+
-			"			X.this.new X1(){	\n"+
-			"				void bar(){	\n"+
-			"					baz();	\n"+
-			"					baz1();	\n"+
-			"					baz2();	\n"+
-			"				}	\n"+
-			"			}.bar();	\n"+
-			"		}		\n"+
-			"		void baz2() {	\n"+
-			"			System.out.println(\"-X2.baz2()\");	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	void baz() {	\n"+
-			"		System.out.print(\"X.baz()\");	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"X.baz()-X1.baz1()-X2.baz2()"); 
-}
-
-// http://bugs.eclipse.org/bugs/show_bug.cgi?id=26122
-// synthetic outer local variables must be appended after user arguments
-public void test069() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"    X(String s, int j) {}	\n"+
-			"    public static void main(String[] args) {	\n"+
-			"        final int i;	\n"+
-			"        new X(\"hello\", i = 1) {	\n"+ // val$i must be appended after i got assigned
-			"            { 	\n"+
-			"            	System.out.print(\"SUCCESS:\"+i); 	\n"+
-			"            }	\n"+
-			"        };	\n"+
-			"    }	\n"+
-			"}	\n"
-		},
-		"SUCCESS:1");
-}
-// variation on test069
-public void test070() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"    X() {}	\n"+
-			"    public static void main(String[] args) {	\n"+
-			"        final int i;	\n"+
-			"        new X().new Y(\"hello\", i = 1) {	\n"+ // val$i must be appended after i got assigned
-			"            { 	\n"+
-			"            	System.out.print(\"SUCCESS:\"+i); 	\n"+
-			"            }	\n"+
-			"        };	\n"+
-			"    }	\n"+
-			"	class Y {	\n" +
-			"		Y(String s, int j) {}	\n" +
-			"	}	\n" +
-			"}	\n"
-		},
-		"SUCCESS:1");
-}
-
-// test too many synthetic arguments
-public void test071() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	void foo(int i) {	\n"+
-			"		final long v0 = i, v1 = i, v2 = i, v3 = i, v4 = i, v5 = i, v6 = i;	\n"+
-			"		final long v7 = i, v8 = i, v9 = i, v10 = i, v11 = i, v12 = i, v13 = i;	\n"+
-			"		final long v14 = i, v15 = i, v16 = i, v17 = i, v18 = i, v19 = i, v20 = i;	\n"+
-			"		final long v21 = i, v22 = i, v23 = i, v24 = i, v25 = i, v26 = i, v27 = i;	\n"+
-			"		final long v28 = i, v29 = i, v30 = i, v31 = i, v32 = i, v33 = i, v34 = i;	\n"+
-			"		final long v35 = i, v36 = i, v37 = i, v38 = i, v39 = i, v40 = i, v41 = i;	\n"+
-			"		final long v42 = i, v43 = i, v44 = i, v45 = i, v46 = i, v47 = i, v48 = i;	\n"+
-			"		final long v49 = i, v50 = i, v51 = i, v52 = i, v53 = i, v54 = i, v55 = i;	\n"+
-			"		final long v56 = i, v57 = i, v58 = i, v59 = i, v60 = i, v61 = i, v62 = i;	\n"+
-			"		final long v63 = i, v64 = i, v65 = i, v66 = i, v67 = i, v68 = i, v69 = i;	\n"+
-			"		final long v70 = i, v71 = i, v72 = i, v73 = i, v74 = i, v75 = i, v76 = i;	\n"+
-			"		final long v77 = i, v78 = i, v79 = i, v80 = i, v81 = i, v82 = i, v83 = i;	\n"+
-			"		final long v84 = i, v85 = i, v86 = i, v87 = i, v88 = i, v89 = i, v90 = i;	\n"+
-			"		final long v91 = i, v92 = i, v93 = i, v94 = i, v95 = i, v96 = i, v97 = i;	\n"+
-			"		final long v98 = i, v99 = i, v100 = i, v101 = i, v102 = i, v103 = i, v104 = i;	\n"+
-			"		final long v105 = i, v106 = i, v107 = i, v108 = i, v109 = i, v110 = i, v111 = i;	\n"+
-			"		final long v112 = i, v113 = i, v114 = i, v115 = i, v116 = i, v117 = i, v118 = i;	\n"+
-			"		final long v119 = i, v120 = i, v121 = i, v122 = i, v123 = i, v124 = i, v125 = i;	\n"+
-			"		final long v126 = i;												\n"+
-			"		final int v127 = i;	// int is already too many arg					\n"+
-			"		new X() {															\n"+
-			"			{																\n"+
-			"				System.out.println(											\n"+
-			"					v0 + v1 + v2 + v3 + v4 + v5 + v6						\n" +
-			"					+ v7 + v8 + v9 + v10 + v11 + v12 + v13					\n" +
-			"					+ v14 + v15 + v16 + v17 + v18 + v19 + v20				\n" +
-			"					+ v21 + v22 + v23 + v24 + v25 + v26 + v27				\n" +
-			"					+ v28 + v29 + v30 + v31 + v32 + v33 + v34				\n" +
-			"					+ v35 + v36 + v37 + v38 + v39 + v40 + v41				\n" +
-			"					+ v42 + v43 + v44 + v45 + v46 + v47 + v48				\n" +
-			"					+ v49 + v50 + v51 + v52 + v53 + v54 + v55				\n" +
-			"					+ v56 + v57 + v58 + v59 + v60 + v61 + v62				\n" +
-			"					+ v63 + v64 + v65 + v66 + v67 + v68 + v69				\n" +
-			"					+ v70 + v71 + v72 + v73 + v74 + v75 + v76				\n" +
-			"					+ v77 + v78 + v79 + v80 + v81 + v82 + v83				\n" +
-			"					+ v84 + v85 + v86 + v87 + v88 + v89 + v90				\n" +
-			"					+ v91 + v92 + v93 + v94 + v95 + v96 + v97				\n" +
-			"					+ v98 + v99 + v100 + v101 + v102 + v103 + v104			\n" +
-			"					+ v105 + v106 + v107 + v108 + v109 + v110 + v111		\n" +
-			"					+ v112 + v113 + v114 + v115 + v116 + v117 + v118		\n" +
-			"					+ v119 + v120 + v121 + v122 + v123 + v124 + v125		\n" +
-			"					+ v126);												\n"+
-			"			}	\n"+
-			"		};	\n"+		
-			"	}	\n" +
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 23)\n" + 
-		"	new X() {															\n" + 
-		"	    ^^^\n" + 
-		"Too many synthetic parameters, emulated parameter val$v126 is exceeding the limit of 255 words eligible for method parameters\n" + 
-		"----------\n");
-}
-
-// test too many synthetic arguments
-public void test072() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	void foo(int i) {	\n"+
-			"		final long v0 = i, v1 = i, v2 = i, v3 = i, v4 = i, v5 = i, v6 = i;	\n"+
-			"		final long v7 = i, v8 = i, v9 = i, v10 = i, v11 = i, v12 = i, v13 = i;	\n"+
-			"		final long v14 = i, v15 = i, v16 = i, v17 = i, v18 = i, v19 = i, v20 = i;	\n"+
-			"		final long v21 = i, v22 = i, v23 = i, v24 = i, v25 = i, v26 = i, v27 = i;	\n"+
-			"		final long v28 = i, v29 = i, v30 = i, v31 = i, v32 = i, v33 = i, v34 = i;	\n"+
-			"		final long v35 = i, v36 = i, v37 = i, v38 = i, v39 = i, v40 = i, v41 = i;	\n"+
-			"		final long v42 = i, v43 = i, v44 = i, v45 = i, v46 = i, v47 = i, v48 = i;	\n"+
-			"		final long v49 = i, v50 = i, v51 = i, v52 = i, v53 = i, v54 = i, v55 = i;	\n"+
-			"		final long v56 = i, v57 = i, v58 = i, v59 = i, v60 = i, v61 = i, v62 = i;	\n"+
-			"		final long v63 = i, v64 = i, v65 = i, v66 = i, v67 = i, v68 = i, v69 = i;	\n"+
-			"		final long v70 = i, v71 = i, v72 = i, v73 = i, v74 = i, v75 = i, v76 = i;	\n"+
-			"		final long v77 = i, v78 = i, v79 = i, v80 = i, v81 = i, v82 = i, v83 = i;	\n"+
-			"		final long v84 = i, v85 = i, v86 = i, v87 = i, v88 = i, v89 = i, v90 = i;	\n"+
-			"		final long v91 = i, v92 = i, v93 = i, v94 = i, v95 = i, v96 = i, v97 = i;	\n"+
-			"		final long v98 = i, v99 = i, v100 = i, v101 = i, v102 = i, v103 = i, v104 = i;	\n"+
-			"		final long v105 = i, v106 = i, v107 = i, v108 = i, v109 = i, v110 = i, v111 = i;	\n"+
-			"		final long v112 = i, v113 = i, v114 = i, v115 = i, v116 = i, v117 = i, v118 = i;	\n"+
-			"		final long v119 = i, v120 = i, v121 = i, v122 = i, v123 = i, v124 = i, v125 = i;	\n"+
-			"		new X() {															\n"+
-			"			{																\n"+
-			"				System.out.println(											\n"+
-			"					v0 + v1 + v2 + v3 + v4 + v5 + v6						\n" +
-			"					+ v7 + v8 + v9 + v10 + v11 + v12 + v13					\n" +
-			"					+ v14 + v15 + v16 + v17 + v18 + v19 + v20				\n" +
-			"					+ v21 + v22 + v23 + v24 + v25 + v26 + v27				\n" +
-			"					+ v28 + v29 + v30 + v31 + v32 + v33 + v34				\n" +
-			"					+ v35 + v36 + v37 + v38 + v39 + v40 + v41				\n" +
-			"					+ v42 + v43 + v44 + v45 + v46 + v47 + v48				\n" +
-			"					+ v49 + v50 + v51 + v52 + v53 + v54 + v55				\n" +
-			"					+ v56 + v57 + v58 + v59 + v60 + v61 + v62				\n" +
-			"					+ v63 + v64 + v65 + v66 + v67 + v68 + v69				\n" +
-			"					+ v70 + v71 + v72 + v73 + v74 + v75 + v76				\n" +
-			"					+ v77 + v78 + v79 + v80 + v81 + v82 + v83				\n" +
-			"					+ v84 + v85 + v86 + v87 + v88 + v89 + v90				\n" +
-			"					+ v91 + v92 + v93 + v94 + v95 + v96 + v97				\n" +
-			"					+ v98 + v99 + v100 + v101 + v102 + v103 + v104			\n" +
-			"					+ v105 + v106 + v107 + v108 + v109 + v110 + v111		\n" +
-			"					+ v112 + v113 + v114 + v115 + v116 + v117 + v118		\n" +
-			"					+ v119 + v120 + v121 + v122 + v123 + v124 + v125);		\n" +
-			"			}	\n"+
-			"		};	\n"+		
-			"	}	\n" +
-			"    public static void main(String[] args) {	\n"+
-			"       System.out.print(\"SUCCESS\"); 	\n"+
-			"    }	\n"+
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-/**
- * verify error in synthetic access to constructor
- * (ordering of parameters after moving outerlocals after user args)
- */
-public void test073() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"    public static void main(final String[] args) {	\n" +
-			"		class Local {	\n" +
-			"			private Local(String str){	\n" +
-			"				Object o = args;	\n" +
-			"				System.out.println(str);	\n" +
-			"			}	\n" +
-			"		};	\n" +
-			"		new Local(\"SUCCESS\");	\n" +
-			"	}	\n" +
-			"}	\n" 
-	},
-	"SUCCESS");
-}
-
-/**
- * verify error in synthetic access to constructor - test collisions
- * (ordering of parameters after moving outerlocals after user args)
- */
-public void test074() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"    public static void main(final String[] args) {	\n" +
-			"		class Local {	\n" +
-			"			public Local(String str, Local loc, String str2){	\n" + // collision
-			"			}	\n" +
-			"			public Local(String str, Local loc){	\n" + // collision
-			"			}	\n" +
-			"			private Local(String str){	\n" +
-			"				Object o = args;	\n" +
-			"				System.out.println(str);	\n" +
-			"			}	\n" +
-			"		};	\n" +
-			"		new Local(\"SUCCESS\");	\n" +
-			"	}	\n" +
-			"}	\n" 
-	},
-	"SUCCESS");
-}
-
-/**
- * should not consider synthetic methods on binary types
- */
-public void test075() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"   public static void main(final String[] args) {	\n" +
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	private static void foo() {	\n" +
-			"	}	\n" +
-			"    A a = new A();	\n" +
-			"    class A {	\n" +
-			"		private A() {}	\n" +
-			"		A(String s) {	\n" +
-			"			foo();	\n" +
-			"		}	\n" +
-			"		A(int s) {	\n" +
-			"			foo();	\n" +
-			"		}	\n" +
-			"    }	\n" +
-			"    class B extends A {	\n" +
-			"    	B(){	\n" +
-			"    		super();	\n" +
-			"    	}	\n" +
-			"    }	\n" +
-			"}	\n" 
-		},
-		"SUCCESS");
-		
-	this.runNegativeTest(
-		new String[] {
-			"Y.java",
-			"public class Y {	\n" +
-			"	void foo(){	\n" +
-			"		new X().new A(null);	\n" +
-			"		new X().access$0();	\n" +
-			"	}	\n"+
- 			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in Y.java (at line 4)\n" + 
-		"	new X().access$0();	\n" + 
-		"	        ^^^^^^^^\n" + 
-		"The method access$0() is undefined for the type X\n" + 
-		"----------\n",
-		null, // use default class-path
-		false); // do not flush previous output dir content
-		
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=27413
- * implicit enclosing instances
- */
-public void test076() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel <= ClassFileConstants.JDK1_3) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n"+
-				"	X(Object o){	\n"+
-				"		class A { 	\n"+
-				"			private A() {	\n"+ // implicit enclosing instance in non-static context
-				"			}	\n"+
-				"		}	\n"+
-				"		class B extends X {	\n"+
-				"			B() {	\n"+
-				"				super(new A(){	\n"+
-				"				});	\n"+
-				"			}	\n"+
-				"		}	\n"+
-				"	}	\n"+
-				"} 	\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 7)\n" +
-			"	class B extends X {	\n" +
-			"	      ^\n" +
-			"The type B is never used locally\n" +
-			"----------\n" +
-			"2. WARNING in X.java (at line 8)\n" + 
-			"	B() {	\n" + 
-			"	^^^\n" + 
-			"The constructor B() is never used locally\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 9)\n" + 
-			"	super(new A(){	\n" + 
-			"				});	\n" + 
-			"	      ^^^^^^^^^^^^^^^\n" + 
-			"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 9)\n" + 
-			"	super(new A(){	\n" + 
-			"	          ^^^\n" + 
-			"Access to enclosing constructor A() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + 
-			"----------\n");
-		return;
-	}
-	if (options.sourceLevel <= ClassFileConstants.JDK1_4) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n"+
-				"	X(Object o){	\n"+
-				"		class A { 	\n"+
-				"			private A() {	\n"+ // implicit enclosing instance in non-static context
-				"			}	\n"+
-				"		}	\n"+
-				"		class B extends X {	\n"+
-				"			B() {	\n"+
-				"				super(new A(){	\n"+
-				"				});	\n"+
-				"			}	\n"+
-				"		}	\n"+
-				"	}	\n"+
-				"} 	\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 7)\n" +
-			"	class B extends X {	\n" +
-			"	      ^\n" +
-			"The type B is never used locally\n" +
-			"----------\n" +
-			"2. WARNING in X.java (at line 8)\n" + 
-			"	B() {	\n" + 
-			"	^^^\n" + 
-			"The constructor B() is never used locally\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 9)\n" + 
-			"	super(new A(){	\n" + 
-			"				});	\n" + 
-			"	      ^^^^^^^^^^^^^^^\n" + 
-			"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-			"----------\n");
-		return;
-	}
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	X(Object o){	\n"+
-			"		class A { 	\n"+
-			"			private A() {	\n"+ // implicit enclosing instance in non-static context
-			"			}	\n"+
-			"		}	\n"+
-			"		class B extends X {	\n"+
-			"			B() {	\n"+
-			"				super(new A(){	\n"+
-			"				});	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"} 	\n"
-		},
-		"");
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=27413
- * implicit enclosing instances
- */
-public void test077() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] args){	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n" +
-			"	X(Object o){	\n"+
-			"	}	\n" +
-			"	static void foo() {	\n"+ 
-			"		class A { 	\n"+ // no implicit enclosing in STATIC context
-			"			private A() {	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"		class B extends X {	\n"+
-			"			B() {	\n"+
-			"				super(new A(){	\n"+
-			"				});	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=27413
- * implicit enclosing instances
- */
-public void test078() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel <= ClassFileConstants.JDK1_3) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n"+
-				"	X(Object o){	\n"+
-				"		class A { 	\n"+
-				"			private A() {	\n"+ // implicit enclosing instance in non-static context
-				"			}	\n"+
-				"		}	\n"+
-				"		class B extends X {	\n"+
-				"			B() {	\n"+
-				"				super(new A(){	\n"+
-				"					void foo() { System.out.println(X.this);	} \n"+
-				"				});	\n"+
-				"			}	\n"+
-				"		}	\n"+
-				"	}	\n"+
-				"} 	\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 7)\n" +
-			"	class B extends X {	\n" +
-			"	      ^\n" +
-			"The type B is never used locally\n" +
-			"----------\n" +
-			"2. WARNING in X.java (at line 8)\n" + 
-			"	B() {	\n" + 
-			"	^^^\n" + 
-			"The constructor B() is never used locally\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 9)\n" + 
-			"	super(new A(){	\n" + 
-			"					void foo() { System.out.println(X.this);	} \n" + 
-			"				});	\n" + 
-			"	      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 9)\n" + 
-			"	super(new A(){	\n" + 
-			"	          ^^^\n" + 
-			"Access to enclosing constructor A() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + 
-			"----------\n" + 
-			"5. WARNING in X.java (at line 10)\n" + 
-			"	void foo() { System.out.println(X.this);	} \n" + 
-			"	     ^^^^^\n" + 
-			"The method foo() from the type new A(){} is never used locally\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 10)\n" + 
-			"	void foo() { System.out.println(X.this);	} \n" + 
-			"	                                ^^^^^^\n" + 
-			"No enclosing instance of the type X is accessible in scope\n" + 
-			"----------\n");
-		return;
-	}
-	if (options.sourceLevel <= ClassFileConstants.JDK1_4) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n"+
-				"	X(Object o){	\n"+
-				"		class A { 	\n"+
-				"			private A() {	\n"+ // implicit enclosing instance in non-static context
-				"			}	\n"+
-				"		}	\n"+
-				"		class B extends X {	\n"+
-				"			B() {	\n"+
-				"				super(new A(){	\n"+
-				"					void foo() { System.out.println(X.this);	} \n"+
-				"				});	\n"+
-				"			}	\n"+
-				"		}	\n"+
-				"	}	\n"+
-				"} 	\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 7)\n" +
-			"	class B extends X {	\n" +
-			"	      ^\n" +
-			"The type B is never used locally\n" +
-			"----------\n" +
-			"2. WARNING in X.java (at line 8)\n" + 
-			"	B() {	\n" + 
-			"	^^^\n" + 
-			"The constructor B() is never used locally\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 9)\n" + 
-			"	super(new A(){	\n" + 
-			"					void foo() { System.out.println(X.this);	} \n" + 
-			"				});	\n" + 
-			"	      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 10)\n" + 
-			"	void foo() { System.out.println(X.this);	} \n" + 
-			"	     ^^^^^\n" + 
-			"The method foo() from the type new A(){} is never used locally\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 10)\n" + 
-			"	void foo() { System.out.println(X.this);	} \n" + 
-			"	                                ^^^^^^\n" + 
-			"No enclosing instance of the type X is accessible in scope\n" + 
-			"----------\n");
-		return;
-	}
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	X(Object o){	\n"+
-			"		class A { 	\n"+
-			"			private A() {	\n"+ // implicit enclosing instance in non-static context
-			"			}	\n"+
-			"		}	\n"+
-			"		class B extends X {	\n"+
-			"			B() {	\n"+
-			"				super(new A(){	\n"+
-			"					void foo() { System.out.println(X.this);	} \n"+
-			"				});	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"} 	\n"
-		},
-		"");
-}
-
-/*
- * Check that X.this is actually bound to an X, and not innermost compatible type (Z)
- */
-public void test079() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new Y().new Z().bar();	\n"+
-			"	}	\n"+
-			"	String foo() { return \"X-foo\"; }	\n"+
-			"	class Y extends X {	\n"+
-			"		String foo() { return \"Y-foo\"; }	\n"+
-			"		class Z extends Y {	\n"+
-			"			Z(){	\n"+
-			"				X.this.super();	\n"+
-			"			}	\n"+
-			"			String foo() { return \"Z-foo\"; }	\n"+
-			"			void bar () {	\n"+
-			"				System.out.println(X.this.foo());	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"X-foo");
-}
-
-public void test080() { // verified as conform
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new X().new C();	\n"+
-			"	}	\n"+
-			"	int m() {	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"		return 1;	\n"+
-			"	}	\n"+
-			"	class C extends B {	\n"+
-			"		C(int j){}	\n"+
-			"		C(){	\n"+
-			"			this(X.this.m());	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"class B extends X {	\n"+
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-public void test081() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n"+
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new X().new C();	\n"+
-			"	}	\n"+
-			"	int m() {	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"		return 1;	\n"+
-			"	}	\n"+
-			"	class C extends q.B {	\n"+
-			"		C(int j){}	\n"+
-			"		C(){	\n"+
-			"			this(m());	\n"+ // only X.this can see m()
-			"		}	\n"+
-			"	}	\n"+
-			"}	\n",
-			"q/B.java",
-			"package q;	\n"+
-			"public class B extends p.X {	\n"+
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-/*
- * Default constructor for Z, will use enclosing 'this' as default-value for enclosing instance for super().
- */
-public void test083() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new Y().new Z().bar();	\n"+
-			"	}	\n"+
-			"	String foo() { return \"X-foo\"; }	\n"+
-			"	class Y extends X {	\n"+
-			"		String foo() { return \"Y-foo\"; }	\n"+
-			"		class Z {	\n"+
-			"			Z(){	\n"+
-			"				//X.this.super();	\n"+
-			"			}	\n"+
-			"			String foo() { return \"Z-foo\"; }	\n"+
-			"			void bar () {	\n"+
-			"				System.out.println(X.this.foo());	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"X-foo");
-}
-
-public void test084() {
-	this.runConformTest(
-		new String[] {
-			"Foo.java",
-			"public class Foo {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new Foo(null);	\n"+
-			"	}	\n"+
-			"	Foo(int i){}	\n"+
-			"	Foo(Object o){		\n"+
-			"		class A { 		\n"+
-			"			private A() {	 	\n"+
-			"			}		\n"+
-			"		}		\n"+
-			"		class B extends Foo {		\n"+
-			"			B() {		\n"+
-			"				super(0);	\n"+
-			"				new A(){		\n"+
-			"					void foo() { 	\n"+
-			"						System.out.println(Foo.this.getClass().getName());		\n"+
-			"					} 	\n"+
-			"				}.foo();		\n"+
-			"			}		\n"+
-			"		}		\n"+
-			"		new B();	\n"+
-			"	}		\n"+
-			"} 	\n",
-		},
-		"Foo");
-}
-
-public void test085() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel < ClassFileConstants.JDK1_5) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n"+
-				"	int m() {		\n"+
-				"		return 1;		\n"+
-				"	}		\n"+
-				"	class C extends B {		\n"+
-				"		C(int j){}		\n"+
-				"		C(){		\n"+
-				"			this(	\n"+
-				"				new B(){ 	\n"+
-				"					X x = X.this; 	\n"+
-				"					int m(){	\n"+
-				"						return 1;	\n"+
-				"					}	\n"+
-				"				}.m());	\n"+
-				"		}		\n"+
-				"	}		\n"+
-				"}		\n"+
-				"class B extends X {		\n"+
-				"}	\n"
-			},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 10)\n" + 
-		"	X x = X.this; 	\n" + 
-		"	  ^\n" + 
-		"The field new B(){}.x is never read locally\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 10)\n" + 
-		"	X x = X.this; 	\n" + 
-		"	      ^^^^^^\n" + 
-		"No enclosing instance of the type X is accessible in scope\n" + 
-		"----------\n");
-		return;
-	}
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	int m() {		\n"+
-			"		return 1;		\n"+
-			"	}		\n"+
-			"	class C extends B {		\n"+
-			"		C(int j){}		\n"+
-			"		C(){		\n"+
-			"			this(	\n"+
-			"				new B(){ 	\n"+
-			"					X x = X.this; 	\n"+
-			"					int m(){	\n"+
-			"						return 1;	\n"+
-			"					}	\n"+
-			"				}.m());	\n"+
-			"		}		\n"+
-			"	}		\n"+
-			"}		\n"+
-			"class B extends X {		\n"+
-			"}	\n"
-		},
-		"");
-}
-
-public void test086() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) { 	\n"+
-			"		new X().new C();		\n"+
-			"	}		\n"+
-			"	int m() {		\n"+
-			"		return 1;		\n"+
-			"	}		\n"+
-			"	class C extends B {		\n"+
-			"		C(int j){}		\n"+
-			"		C(){		\n"+
-			"			this(	\n"+
-			"				new B(){ 	\n"+
-			"					int m(){	\n"+
-			"						System.out.println(\"SUCCESS\");		\n"+
-			"						return 1;	\n"+
-			"					}	\n"+
-			"				}.m());	\n"+
-			"		}		\n"+
-			"	}		\n"+
-			"}		\n"+
-			"class B extends X {		\n"+
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-public void test087() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.complianceLevel <= ClassFileConstants.JDK1_4) {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n"+
-				"	public static void main(String[] arguments) {	\n"+
-				"		new X().f();	\n"+
-				"	}	\n"+
-				"    void f () {	\n"+
-				"        class C {	\n"+
-				"        	C() {	\n"+
-				"        		System.out.println(\"[\"+X.this.getClass().getName()+\"]\");	\n"+
-				"        	}	\n"+
-				"        }	\n"+
-				"        class N extends X {	\n"+
-				"            { new C(); } // selects N.this, not O.this	\n"+
-				"        }	\n"+
-				"        new N();	\n"+
-				"    }	\n"+
-				"}	\n"
-			},
-			"[X$1$N]");
-		return;
-	}
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().f();	\n"+
-			"	}	\n"+
-			"    void f () {	\n"+
-			"        class C {	\n"+
-			"        	C() {	\n"+
-			"        		System.out.println(\"[\"+X.this.getClass().getName()+\"]\");	\n"+
-			"        	}	\n"+
-			"        }	\n"+
-			"        class N extends X {	\n"+
-			"            { new C(); } // selects N.this, not O.this	\n"+
-			"        }	\n"+
-			"        new N();	\n"+
-			"    }	\n"+
-			"}	\n"
-		},
-		"[X$1N]");
-}
-
-public void test088() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	class Middle {	\n"+
-			"		class Inner {	\n"+
-			"		}	\n"+
-			"	} 	\n"+
-			"	class M extends Middle.Inner {	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	class M extends Middle.Inner {	\n" + 
-		"	      ^\n" + 
-		"No enclosing instance of type X.Middle is accessible to invoke the super constructor. Must define a constructor and explicitly qualify its super constructor invocation with an instance of X.Middle (e.g. x.super() where x is an instance of X.Middle).\n" + 
-		"----------\n");
-}
-
-public void test089() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	static class Middle {	\n"+
-			"		static class Inner {	\n"+
-			"		}	\n"+
-			"	} 	\n"+
-			"	class M extends Middle.Inner {	\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new M();	\n" +
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-public void test090() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	void foo() {	\n"+
-			"		class Middle {	\n"+
-			"			class Inner {	\n"+
-			"			}	\n"+
-			"		} 	\n"+
-			"		class M extends Middle.Inner {	\n"+
-			"			M() {	\n"+
-			"				new Middle().super();	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().foo();	\n" +
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-// ensure that local member empty constructor gets implicit constructor call
-public void test091() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	Object o = new Object() {	\n"+
-			"		class Inner {	\n"+
-			"			private Inner() {}	\n"+
-			"		}	\n"+
-			"	}.new Inner(){};	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X();	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"SUCCESS");
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=29636
- * ensure first anonymous is X$1(extends X), last is X$2(extends A)
- */
-public void test092() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	class A {	\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		System.out.println(\"[\"+new X(){}.new A(){}.getClass().getName()+\"]\");	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"[X$2]");
-}
-
-public void test093() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		System.out.println(X.this);	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	System.out.println(X.this);	\n" + 
-		"	                   ^^^^^^\n" + 
-		"Cannot use this in a static context \n" + 
-		"----------\n");
-}
-
-public void test094() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	class Y {}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		int i = 0;	\n"+
-			"		i.new Y();	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	i.new Y();	\n" + 
-		"	^\n" + 
-		"Cannot use an expression of the type int as a valid enclosing instance\n" + 
-		"----------\n");
-}
-//http://bugs.eclipse.org/bugs/show_bug.cgi?id=30280
-public void test095() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	class Y {}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		int i = 0;	\n"+
-			"		i.new Y(){};	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	i.new Y(){};	\n" + 
-		"	^\n" + 
-		"Cannot use an expression of the type int as a valid enclosing instance\n" + 
-		"----------\n");
-}
-public void test096() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	static class Y {}	\n"+
-			"	void foo() {	\n"+
-			"		new X().new Y(){};	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	new X().new Y(){};	\n" + 
-		"	^^^^^^^\n" + 
-		"Illegal enclosing instance specification for type X.Y\n" + 
-		"----------\n");
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=35456
- */
-public void test097() { 
-	this.runConformTest(
-		new String[] {
-			"apples/Base.java",
-			"package apples;	\n" +
-			"public class Base {	\n"+
-			"	protected String foo = \"SUCCESS\";	\n" +
-			"	public static void main(String[] args){	\n"+
-			"		new oranges.Derived().new Inner(new oranges.Derived()).bug();	\n"+
-			"	}	\n"+
-			"}	\n",
-			"oranges/Derived.java",
-			"package oranges;	\n"+
-			"import apples.*;	\n"+
-			"public class Derived extends Base {	\n"+
-			"    public class Inner {	\n"+
-			"        Derived c = null;	\n"+
-			"        public Inner(Derived c) {	\n"+
-			"            this.c = c;	\n"+
-			"        } 	\n"+
-			"        public void bug() {	\n"+
-			"            // The following reference to Base.foo causes the 	\n"+
-			"            // VerifyError	\n"+
-			"            System.out.println(c.foo);	\n"+
-			"        }	\n"+
-			"    }	\n"+
-			"}	\n",
-		},
-		"SUCCESS");
-}
-
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33751
- */
-public void test098() { 
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] args) {	\n"+
-			"		System.out.println(\"first inner class = \" + new Object() {}.getClass());	\n"+
-			"		if (true) {	\n"+
-			"			System.out.println(\"Always true\");	\n"+
-			"		} else {	\n"+
-			"		System.out.println(\"unreachable inner class = \" + new Object() {}.getClass());	\n"+
-			"		}	\n"+
-			"		System.out.println(\"last inner class = \" + new Object() {}.getClass());	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"first inner class = class X$1\n" + 
-		"Always true\n" + 
-		"last inner class = class X$2");
-}
-
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40240
- */
-public void test099() {
-	this.runConformTest(
-		new String[] {
-			"Y.java",
-			"public class Y { \n" +
-			"	public static void main(String[] args) {	\n" +
-			"		class Local {} \n"+
-			"		System.out.println(\"SUCCESS\");	\n" +
-			"	} \n" +
-			"} \n",
-		},
-		"SUCCESS");
-
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.complianceLevel <= ClassFileConstants.JDK1_4) {	
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { \n" +
-				"    public static void main(String argv[]) { \n" +
-				"		Object a = new Y$1$Local();        // compile-time error \n" +
-				"    } \n" +
-				"} \n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	Object a = new Y$1$Local();        // compile-time error \n" + 
-			"	               ^^^^^^^^^\n" + 
-			"The nested type Y$1$Local cannot be referenced using its binary name\n" + 
-			"----------\n",
-			null,
-			false);
-		return;
-	}
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X { \n" +
-			"    public static void main(String argv[]) { \n" +
-			"		Object a = new Y$1Local();        // compile-time error \n" +
-			"    } \n" +
-			"} \n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	Object a = new Y$1Local();        // compile-time error \n" + 
-		"	               ^^^^^^^^\n" + 
-		"The nested type Y$1Local cannot be referenced using its binary name\n" + 
-		"----------\n",
-		null,
-		false);
-}
-
-/*
- * Check that member type allocation is granted access to compatible enclosing instance available as constructor argument
- */
-public void test101() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-		"public class X {\n" + 
-		"	X(Object o) {\n" + 
-		"	}\n" + 
-		"	public static void main(String[] args) {\n" + 
-		"		new X(null).new M(null);\n" + 
-		"		System.out.println(\"SUCCESS\");\n" + 
-		"	}\n" + 
-		"	class M extends Top {\n" + // no issue if M is unrelated to X
-		"		M() {\n" + 
-		"			super(null);\n" + 
-		"		}\n" + 
-		"		M(Object o) {\n" + 
-		"			super(new M(){});\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class Top {\n" + 
-		"		Top(Object o) {\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n",
-		},
-		"SUCCESS");
-}
-
-/*
- * Check that direct member type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test102() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	X(Object o) {\n" + 
-			"	}\n" + 
-			"	class M extends X {\n" + 
-			"		M() {\n" + 
-			"			super(null); //1\n" + 
-			"		}\n" + 
-			"		M(Object o) {\n" + 
-			"			super(new M());//2\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	super(new M());//2\n" + 
-		"	      ^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-
-/*
- * Check that indirect member type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test104() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	X(Object o) {\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new X(null).new M(null);\n" + 
-			"		System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"	class N extends X {\n" + 
-			"		N() {\n" + 
-			"			super(null); //1\n" + 
-			"		}\n" + 
-			"		N(Object o) {\n" + 
-			"			super(new M());//2\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			" 	class M extends X {\n" + 
-			"		M() {\n" + 
-			"			super(null); //3\n" + 
-			"		}\n" + 
-			"		M(Object o) {\n" + 
-			"			super(new M());//4\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	super(new M());//2\n" + 
-		"	      ^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 21)\n" + 
-		"	super(new M());//4\n" + 
-		"	      ^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-public void test107() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X { \n" + 
-			"	public static class Y { \n" + 
-			"		public Y(Z z) {} \n" + 
-			"	} \n" + 
-			"	public interface Z {} \n" + 
-			"} \n" + 
-			"\n" + 
-			"class A { \n" + 
-			"	private static class B extends X.Y implements X.Z { \n" + 
-			"		B(A a) { \n" + 
-			"			super(B.this); \n" + 
-			"		} \n" + 
-			"	} \n" + 
-			"} ",
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 9)\n" + 
-		"	private static class B extends X.Y implements X.Z { \n" + 
-		"	                     ^\n" + 
-		"The type A.B is never used locally\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 11)\n" + 
-		"	super(B.this); \n" + 
-		"	      ^^^^^^\n" + 
-		"Cannot refer to \'this\' nor \'super\' while explicitly invoking a constructor\n" + 
-		"----------\n");
-}
-
- // javac 1.4.2 incorrectly accepts it, jikes rejects it as we do
-public void test108() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel == ClassFileConstants.JDK1_4) {	 // 1.3 and 1.5 both accept it
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	{\n" + 
-				"		class Local1 extends X {\n" + 
-				"		}\n" + 
-				"		class Local2 extends Local1 {\n" +
-				"		}\n" + 
-				"	}\n" + 
-				"}",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 5)\n" +
-			"	class Local2 extends Local1 {\n" +
-			"	      ^^^^^^\n" +
-			"The type Local2 is never used locally\n" +
-			"----------\n" +
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	class Local2 extends Local1 {\n" + 
-			"	      ^^^^^^\n" + 
-			"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-			"----------\n");
-		return;
-	}
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	{\n" + 
-			"		class Local1 extends X {\n" + 
-			"		}\n" + 
-			"		class Local2 extends Local1 {\n" +
-			"		}\n" + 
-			"	}\n" + 
-			"}",
-		},
-		"");
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44538
-public void test109() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel == ClassFileConstants.JDK1_4) {		 // 1.3 and 1.5 both accept it
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public void bar() {\n" + 
-				"		class C extends X {\n" + 
-				"			public void foo() {\n" + 
-				"				\n" + 
-				"			}\n" + 
-				"		}\n" + 
-				"		X a= new X() {\n" + 
-				"			public void foo() {\n" + 
-				"				\n" + 
-				"			}\n" + 
-				"		};\n" + 
-				"		class D extends C {\n" + 
-				"			\n" + 
-				"		};\n" + 
-				"	}\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 4)\n" + 
-			"	public void foo() {\n" + 
-			"	            ^^^^^\n" + 
-			"The method foo() from the type C is never used locally\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 9)\n" + 
-			"	public void foo() {\n" + 
-			"	            ^^^^^\n" + 
-			"The method foo() from the type new X(){} is never used locally\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 13)\n" +
-			"	class D extends C {\n" +
-			"	      ^\n" +
-			"The type D is never used locally\n" +
-			"----------\n" +
-			"4. ERROR in X.java (at line 13)\n" + 
-			"	class D extends C {\n" + 
-			"	      ^\n" + 
-			"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-			"----------\n");
-		return;
-	}
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public void bar() {\n" + 
-			"		class C extends X {\n" + 
-			"			public void foo() {\n" + 
-			"				\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		X a= new X() {\n" + 
-			"			public void foo() {\n" + 
-			"				\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"		class D extends C {\n" + 
-			"			\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"");
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44715 - NPE when generating fake reachable local type
-public void test110() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		if (true) {\n" + 
-			"			System.out.println(\"SUCCESS\");\n" + 
-			"			return;\n" + 
-			"		}\n" + 
-			"		class ShouldNotBeGenerated {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44715 - variation with anonymous type
-public void test111() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		if (true) {\n" + 
-			"			System.out.println(\"SUCCESS\");\n" + 
-			"			return;\n" + 
-			"		}\n" + 
-			"		new Object() {}; \n" + 
-			"	}\n" + 
-			"}"
-		},
-		"SUCCESS");
-}
-public void test112() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    private Object t;\n" + 
-			"    X(Object t) {\n" + 
-			"        this.t = t;\n" + 
-			"    }\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        new X(\"OUTER\").bar();\n" + 
-			"    }\n" + 
-			"    void bar() {\n" + 
-			"        new X(this) {\n" + 
-			"            void run() {\n" + 
-			"                new Object() {\n" + 
-			"                    void run() {\n" + 
-			"				        System.out.println(t);\n" + 
-			"                    }\n" + 
-			"                }.run();\n" + 
-			"            }\n" + 
-			"        }.run();\n" + 
-			"    }\n" + 
-			"}\n"
-		},
-		"OUTER");
-}
-public void test113() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    private Object t;\n" + 
-			"    X(Object t) {\n" + 
-			"        this.t = t;\n" + 
-			"    }\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        new X(\"OUTER\").bar();\n" + 
-			"    }\n" + 
-			"    void bar() {\n" + 
-			"        new X(this) {\n" + 
-			"            void run() {\n" + 
-			"                new Object() {\n" + 
-			"                    void run() {\n" + 
-			"						try {	\n" +
-			"							X x = (X) t;	\n" +
-			"				        } catch(ClassCastException e){ \n" +
-			"							System.out.println(\"SUCCESS\");\n" + 
-			"						} \n" +
-			"                    }\n" + 
-			"                }.run();\n" + 
-			"            }\n" + 
-			"        }.run();\n" + 
-			"    }\n" + 
-			"}\n"
-		},
-		"SUCCESS");
-}
-public void test114() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	String s;\n" + 
-			"	X(String s) {\n" + 
-			"		this.s = s;\n" + 
-			"	}\n" + 
-			"	void foo() {\n" + 
-			"		class L extends X {\n" + 
-			"			L() {\n" + 
-			"				super(s);\n" + 
-			"				System.out.println(s);		\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		new L();\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new X(\"SUCCESS\").foo();		\n" + 
-			"	}\n" + 
-			"}\n"		
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	super(s);\n" + 
-		"	      ^\n" + 
-		"Cannot refer to an instance field s while explicitly invoking a constructor\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=58606
-public void test115() {
-	this.runConformTest(
-		new String[] {
-			"p2/X2.java",
-			"package p2;\n" + 
-			"public class X2 extends p1.X1 {\n" + 
-			"    private void foo() {\n" + 
-			"        new p1.X1.M1() {\n" + 
-			"            public void bar() {\n" + 
-			"                System.out.print(X2.this.field);\n" + 
-			"                X2.this.doit();\n" + 
-			"            }\n" + 
-			"        }.bar();\n" + 
-			"    }\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        X2 t2 = new X2();\n" + 
-			"        t2.foo();\n" + 
-			"    }\n" + 
-			"}",
-			"p1/X1.java",
-			"package p1;\n" + 
-			"public class X1 {\n" + 
-			"    public abstract class M1 {\n" + 
-			"        public abstract void bar();\n" + 
-			"    }\n" + 
-			"    protected static String field = \"SUCC\";\n" + 
-			"    protected static void doit() {\n" + 
-			"        System.out.println(\"ESS\");\n" + 
-			"    }\n" + 
-			"}",
-			},
-		"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=68698
-public void test116() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class Display {\n" + 
-			"  public interface Bla {\n" + 
-			"    void a();\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"public class X {\n" + 
-			"  void aMethod() {\n" + 
-			"    Display display = null;\n" + 
-			"    display.new Bla() {\n" + 
-			"    };\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	display.new Bla() {\n" + 
-		"	^^^^^^^\n" + 
-		"Illegal enclosing instance specification for type Display.Bla\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 9)\n" + 
-		"	display.new Bla() {\n" + 
-		"	            ^^^^^\n" + 
-		"The type new Display.Bla(){} must implement the inherited abstract method Display.Bla.a()\n" + 
-		"----------\n");
-}
-
-public void test117() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new X().bar();\n" + 
-			"	}\n" + 
-			"	void bar() {\n" + 
-			"		new X(){\n" + 
-			"			void baz() {\n" + 
-			"				new M();\n" + 
-			"			}\n" + 
-			"		}.baz();\n" + 
-			"	}\n" + 
-			"	class M {\n" + 
-			"		M() {\n" + 
-			"			System.out.println(\"SUCCESS\");\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"SUCCESS");
-}
-
-public void test118() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo() {}\n" + 
-			"	class M {\n" + 
-			"		M(Object o) {}\n" + 
-			"		M() {\n" + 
-			"			this(new Object() {\n" + 
-			"				void baz() {\n" + 
-			"					foo();\n" + 
-			"					bar();\n" + 
-			"				}\n" + 
-			"			});\n" + 
-			"			new Object() {\n" + 
-			"				void baz() {\n" + 
-			"					foo();\n" + 
-			"					bar();\n" + 
-			"				}\n" + 
-			"			};\n" + 
-			"		}\n" + 
-			"		void bar() {}\n" + 
-			"		void baz() {\n" + 
-			"			new Object() {\n" + 
-			"				void baz() {\n" + 
-			"					foo();\n" + 
-			"					bar();\n" + 
-			"				}\n" + 
-			"			};\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	bar();\n" + 
-		"	^^^\n" + 
-		"Cannot refer to an instance method while explicitly invoking a constructor\n" + 
-		"----------\n" + 
-		"2. WARNING in X.java (at line 22)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type new Object(){} is never used locally\n" + 
-		"----------\n");
-}
-public void test119() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel < ClassFileConstants.JDK1_5) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		new X().new M();\n" + 
-				"	}\n" + 
-				"	void foo(String s) { System.out.print(\"<foo:\"+s+\">\"); }\n" + 
-				"	class M {\n" + 
-				"		M(Runnable r) { r.run(); }\n" + 
-				"		M() {\n" + 
-				"			this(new Runnable() {\n" + 
-				"				public void run() {\n" + 
-				"					foo(\"0\");\n" + 
-				"					new Object() {\n" + 
-				"						void baz() {\n" + 
-				"//							foo(\"1\");\n" + 
-				"						}\n" + 
-				"					};\n" + 
-				"					class Local {\n" + 
-				"						void baz() {\n" + 
-				"//							foo(\"2\");\n" + 
-				"						}\n" + 
-				"					}				\n" + 
-				"					new Local();\n" + 
-				"				}\n" + 
-				"			});\n" + 
-				"			new Object() {\n" + 
-				"				void baz() {\n" + 
-				"					foo(\"3\");\n" + 
-				"					bar(\"3\");\n" + 
-				"				}\n" + 
-				"			}.baz();\n" + 
-				"		}\n" + 
-				"		void bar(String s) { System.out.print(\"<bar:\"+s+\">\"); }\n" + 
-				"		void baz() {\n" + 
-				"			new Object() {\n" + 
-				"				void baz() {\n" + 
-				"					foo(\"4\");\n" + 
-				"					bar(\"4\");\n" + 
-				"				}\n" + 
-				"			};\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 11)\n" + 
-			"	foo(\"0\");\n" + 
-			"	^^^^^^^^\n" + 
-			"No enclosing instance of the type X is accessible in scope\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 13)\n" + 
-			"	void baz() {\n" + 
-			"	     ^^^^^\n" + 
-			"The method baz() from the type new Object(){} is never used locally\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 18)\n" + 
-			"	void baz() {\n" + 
-			"	     ^^^^^\n" + 
-			"The method baz() from the type Local is never used locally\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 35)\n" + 
-			"	void baz() {\n" + 
-			"	     ^^^^^\n" + 
-			"The method baz() from the type new Object(){} is never used locally\n" + 
-			"----------\n");
-		return;
-	}
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new X().new M();\n" + 
-			"	}\n" + 
-			"	void foo(String s) { System.out.print(\"<foo:\"+s+\">\"); }\n" + 
-			"	class M {\n" + 
-			"		M(Runnable r) { r.run(); }\n" + 
-			"		M() {\n" + 
-			"			this(new Runnable() {\n" + 
-			"				public void run() {\n" + 
-			"					foo(\"0\");\n" + 
-			"					new Object() {\n" + 
-			"						void baz() {\n" + 
-			"//							foo(\"1\");\n" + 
-			"						}\n" + 
-			"					};\n" + 
-			"					class Local {\n" + 
-			"						void baz() {\n" + 
-			"//							foo(\"2\");\n" + 
-			"						}\n" + 
-			"					}				\n" + 
-			"					new Local();\n" + 
-			"				}\n" + 
-			"			});\n" + 
-			"			new Object() {\n" + 
-			"				void baz() {\n" + 
-			"					foo(\"3\");\n" + 
-			"					bar(\"3\");\n" + 
-			"				}\n" + 
-			"			}.baz();\n" + 
-			"		}\n" + 
-			"		void bar(String s) { System.out.print(\"<bar:\"+s+\">\"); }\n" + 
-			"		void baz() {\n" + 
-			"			new Object() {\n" + 
-			"				void baz() {\n" + 
-			"					foo(\"4\");\n" + 
-			"					bar(\"4\");\n" + 
-			"				}\n" + 
-			"			};\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"<foo:0><foo:3><bar:3>");
-}
-public void test120() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel < ClassFileConstants.JDK1_5) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void foo() {}\n" + 
-				"	class M {\n" + 
-				"		M(Object o) {}\n" + 
-				"		M() {\n" + 
-				"			this(new Object() {\n" + 
-				"				void baz() {\n" + 
-				"					new Object() {\n" + 
-				"						void baz() {\n" + 
-				"							foo(); //0\n" + 
-				"						}\n" + 
-				"					};\n" + 
-				"					class Local {\n" + 
-				"						void baz() {\n" + 
-				"							foo(); //1\n" + 
-				"						}\n" + 
-				"					}\n" + 
-				"					new Local();\n" + 
-				"					foo();//2\n" + 
-				"				}\n" + 
-				"			});\n" + 
-				"			new Object() {\n" + 
-				"				void baz() {\n" + 
-				"					foo();//3\n" + 
-				"					bar();\n" + 
-				"				}\n" + 
-				"			};\n" + 
-				"		}\n" + 
-				"		void bar() {}\n" + 
-				"		void baz() {\n" + 
-				"			new Object() {\n" + 
-				"				void baz() {\n" + 
-				"					foo();//4\n" + 
-				"					bar();\n" + 
-				"				}\n" + 
-				"			};\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 7)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type new Object(){} is never used locally\n" + 
-		"----------\n" + 
-		"2. WARNING in X.java (at line 9)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type new Object(){} is never used locally\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 10)\n" + 
-		"	foo(); //0\n" + 
-		"	^^^^^\n" + 
-		"No enclosing instance of the type X is accessible in scope\n" + 
-		"----------\n" + 
-		"4. WARNING in X.java (at line 14)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type Local is never used locally\n" + 
-		"----------\n" + 
-		"5. ERROR in X.java (at line 15)\n" + 
-		"	foo(); //1\n" + 
-		"	^^^^^\n" + 
-		"No enclosing instance of the type X is accessible in scope\n" + 
-		"----------\n" + 
-		"6. ERROR in X.java (at line 19)\n" + 
-		"	foo();//2\n" + 
-		"	^^^^^\n" + 
-		"No enclosing instance of the type X is accessible in scope\n" + 
-		"----------\n" + 
-		"7. WARNING in X.java (at line 23)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type new Object(){} is never used locally\n" + 
-		"----------\n" + 
-		"8. WARNING in X.java (at line 32)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type new Object(){} is never used locally\n" + 
-		"----------\n");
-		return;
-	}
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo() {}\n" + 
-			"	class M {\n" + 
-			"		M(Object o) {}\n" + 
-			"		M() {\n" + 
-			"			this(new Object() {\n" + 
-			"				void baz() {\n" + 
-			"					class Local {\n" + 
-			"						void baz() {\n" + 
-			"							foo(); //1\n" + 
-			"						}\n" + 
-			"					}\n" + 
-			"					new Local();\n" + 
-			"					foo();//2\n" + 
-			"				}\n" + 
-			"			});\n" + 
-			"			new Object() {\n" + 
-			"				void baz() {\n" + 
-			"					foo();//3\n" + 
-			"					bar();\n" + 
-			"				}\n" + 
-			"			};\n" + 
-			"		}\n" + 
-			"		void bar() {}\n" + 
-			"		void baz() {\n" + 
-			"			new Object() {\n" + 
-			"				void baz() {\n" + 
-			"					foo();//4\n" + 
-			"					bar();\n" + 
-			"				}\n" + 
-			"			};\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 7)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type new Object(){} is never used locally\n" + 
-		"----------\n" + 
-		"2. WARNING in X.java (at line 9)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type Local is never used locally\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 10)\n" + 
-		"	foo(); //1\n" + 
-		"	^^^^^\n" + 
-		"No enclosing instance of the type X is accessible in scope\n" + 
-		"----------\n" + 
-		"4. WARNING in X.java (at line 18)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type new Object(){} is never used locally\n" + 
-		"----------\n" + 
-		"5. WARNING in X.java (at line 27)\n" + 
-		"	void baz() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method baz() from the type new Object(){} is never used locally\n" + 
-		"----------\n");
-}
-public void test121() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	X(Object o) {\n" + 
-			"	}\n" + 
-			"	class M extends X {\n" + 
-			"		M() {\n" + 
-			"			super(null); //1\n" + 
-			"		}\n" + 
-			"		M(Object o) {\n" + 
-			"			super(new X(null){});//2\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"");
-}
-public void _test122() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel < ClassFileConstants.JDK1_5) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		new X().new M();\n" + 
-				"	}\n" + 
-				"	void foo(String s) { System.out.print(\"<foo:\"+s+\">\"); }\n" + 
-				"	class M {\n" + 
-				"		M(Runnable r) { r.run(); }\n" + 
-				"		M() {\n" + 
-				"			this(new Runnable() {\n" + 
-				"				{\n" + 
-				"					foo(\"0\");\n" + 
-				"					bar(\"0\");\n" + 
-				"				}\n" + 
-				"				public void run() {\n" + 
-				"				}\n" + 
-				"			});\n" + 
-				"		}\n" + 
-				"		void bar(String s) { System.out.print(\"<bar:\"+s+\">\"); }\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"cannot access foo(0)\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 12)\n" + 
-			"	bar(\"0\");\n" + 
-			"	^^^\n" + 
-			"Cannot refer to an instance method while explicitly invoking a constructor\n" + 
-			"----------\n");
-		return;
-	}
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new X().new M();\n" + 
-			"	}\n" + 
-			"	void foo(String s) { System.out.print(\"<foo:\"+s+\">\"); }\n" + 
-			"	class M {\n" + 
-			"		M(Runnable r) { r.run(); }\n" + 
-			"		M() {\n" + 
-			"			this(new Runnable() {\n" + 
-			"				{\n" + 
-			"					foo(\"0\");\n" + 
-			"					bar(\"0\");\n" + 
-			"				}\n" + 
-			"				public void run() {\n" + 
-			"				}\n" + 
-			"			});\n" + 
-			"		}\n" + 
-			"		void bar(String s) { System.out.print(\"<bar:\"+s+\">\"); }\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 12)\n" + 
-		"	bar(\"0\");\n" + 
-		"	^^^\n" + 
-		"Cannot refer to an instance method while explicitly invoking a constructor\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=110182 - variation
-public void test123() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"	public static final boolean b = false;\n" + 
-			"}\n" + 
-			"public class X {\n" + 
-			"    private static Y y = new Y(); \n" + 
-			"    private static Object o = new Object(); \n" + 
-			"\n" + 
-			"	static class Z {\n" + 
-			"		Z() {\n" + 
-			"	    	if (y.b) {\n" + 
-			"	    		System.out.println(\"dead code\");\n" + 
-			"	    	}\n" + 
-			"		}\n" + 
-			"		public int bar() {\n" + 
-			"	    	if (y.b) {\n" + 
-			"	    		System.out.println(\"dead code\");\n" + 
-			"	    	}\n" + 
-			"    		System.out.println(\"bar\");\n" + 
-			"			return 0;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"    static int foo() {\n" + 
-			"    	synchronized(o) { \n" + 
-			"	    	Z z = new Z();\n" + 
-			"    		return z.bar();\n" + 
-			"    	}\n" + 
-			"    }\n" + 
-			"    \n" + 
-			"    public static void main(String[] args) {\n" + 
-			"    	foo();\n" + 
-			"    }\n" + 
-			"}\n",
-		},
-		"bar");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=77473
-public void test124() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public static void main(String[] args) throws Exception {\n" + 
-			"        Foo foo = new Foo();\n" + 
-			"        try {\n" + 
-			"	        foo.frob(Baz.class);\n" + 
-			"        	System.out.println(\"FAILED\");\n" + 
-			"        } catch(IllegalAccessException e){\n" + 
-			"        	System.out.println(\"SUCCESS\");\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    private static class Baz {\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"class Foo {\n" + 
-			"    public void frob(Class cls) throws Exception {\n" + 
-			"        Object o = cls.newInstance();\n" + 
-			"    }\n" + 
-			"}\n",
-		},
-		"SUCCESS");
-
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=77473 - variation
-public void test125() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	void foo(final String s) {\n" + 
-			"		class Local {\n" + 
-			"			private Local() {}\n" + 
-			"				void bar() {\n" + 
-			"					System.out.println(s);\n" + 
-			"				}\n" + 
-			"		}\n" + 
-			"		new Local().bar();\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new X().foo(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"SUCCESS");
-	// check private constructor outcome (if >= 1.4 modifier change, if 1.3 synthetic emulation)
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=130117
-public void test126() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel < ClassFileConstants.JDK1_5) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public interface X {\n" + 
-				"        private class Inner {}\n" + 
-				"        private interface IInner {}\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	private class Inner {}\n" + 
-			"	              ^^^^^\n" + 
-			"The interface member type Inner can only be public\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	private interface IInner {}\n" + 
-			"	                  ^^^^^^\n" + 
-			"The interface member type IInner can only be public\n" + 
-			"----------\n");
-		return;
-	}
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public interface X {\n" + 
-			"        private class Inner {}\n" + 
-			"        private interface IInner {}\n" + 
-			"        private enum EInner {}\n" + 
-			"        private @interface AInner {}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	private class Inner {}\n" + 
-		"	              ^^^^^\n" + 
-		"The interface member type Inner can only be public\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	private interface IInner {}\n" + 
-		"	                  ^^^^^^\n" + 
-		"The interface member type IInner can only be public\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 4)\n" + 
-		"	private enum EInner {}\n" + 
-		"	             ^^^^^^\n" + 
-		"The interface member type EInner can only be public\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 5)\n" + 
-		"	private @interface AInner {}\n" + 
-		"	                   ^^^^^^\n" + 
-		"The interface member type AInner can only be public\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=89347
-public void test127() {
-	this.runConformTest(
-		new String[] {
-			"p/BugContainer.java",
-			"package p;\n" + 
-			"\n" + 
-			"public abstract class BugContainer {\n" + 
-			"        protected static class InternalInfo$ {\n" + 
-			"                public InternalInfo$() {}\n" + 
-			"        }\n" + 
-			"        abstract protected InternalInfo$ getInfo();\n" + 
-			"}\n", // =================
-		},
-		"");
-	this.runConformTest(
-		new String[] {
-				"q/BugUser.java", // =================
-				"package q;\n" + 
-				"\n" + 
-				"import p.BugContainer;\n" + 
-				"\n" + 
-				"public class BugUser extends BugContainer{\n" + 
-				"        protected InternalInfo$ getInfo() {\n" + 
-				"                return new InternalInfo$();\n" + 
-				"        }\n" + 
-				"}", // =================
-			},
-		"",
-		null, 
-		false, 
-		null);	
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=89347 - variation
-public void test128() {
-	this.runConformTest(
-		new String[] {
-			"p/BugContainer.java",
-			"package p;\n" + 
-			"\n" + 
-			"public abstract class BugContainer {\n" + 
-			"        protected static class InternalInfo$ {\n" + 
-			"                public InternalInfo$() {}\n" + 
-			"        }\n" + 
-			"        abstract protected InternalInfo$ getInfo();\n" + 
-			"}\n", // =================
-			"q/BugUser.java", // =================
-			"package q;\n" + 
-			"\n" + 
-			"import p.BugContainer;\n" + 
-			"\n" + 
-			"public class BugUser extends BugContainer{\n" + 
-			"        protected InternalInfo$ getInfo() {\n" + 
-			"                return new InternalInfo$();\n" + 
-			"        }\n" + 
-			"}", // =================
-		},
-		"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=160132 - variation
-public void test129() {
-	this.runConformTest(
-		new String[] {
-			"X.java", //========================
-			"public interface X {\n" + 
-			"  interface Entry {\n" + 
-			"    interface Internal extends Entry {\n" + 
-			"      Internal createEntry();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n", //========================
-			"Y.java",
-			"public class Y implements X.Entry.Internal {\n" + 
-			"  public Internal createEntry() {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"}\n" , //========================
-		}, 
-		"");
-	// compile Y against X binary
-	this.runConformTest(
-			new String[] {
-				"Y.java", //========================
-				"public class Y implements X.Entry.Internal {\n" + 
-				"  public Internal createEntry() {\n" + 
-				"    return null;\n" + 
-				"  }\n" + 
-				"}\n" , //========================
-			}, 
-			"",
-			null,
-			false,
-			null);	
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=164497
-public void test130() {
-	CompilerOptions options = new CompilerOptions(getCompilerOptions());
-	if (options.sourceLevel <= ClassFileConstants.JDK1_3) {
-    	this.runConformTestThrowingError(
-    		new String[] {
-    			"X.java", //========================
-    			"public class X {\n" + 
-    			"    public static void main(String[] args) {\n" + 
-    			"    	new M().foo2();\n" + 
-    			"    }\n" + 
-    			"}\n"+
-    			"class M  {\n" + 
-    			"	String name;\n" + 
-    			"	\n" + 
-    			"	M() {\n" + 
-    			"		this.name = \"SUCCESS\";\n" + 
-    			"	}\n" + 
-    			"\n" + 
-    			"	private class Y extends N {\n" + 
-    			"		private Y() {\n" + 
-    			"			super();\n" + 
-    			"		}\n" + 
-    			"		protected void foo(Z z) {\n" + 
-    			"			z.bar(new A());\n" + 
-    			"		}\n" + 
-    			"	}\n" + 
-    			"	\n" + 
-    			"    public class A implements I {\n" + 
-    			"    	public void configure() {\n" + 
-    			"    		new B().foo();\n" + 
-    			"    	}\n" + 
-    			"    	public class B {\n" + 
-    			"            public void foo() {\n" + 
-    			"				try {\n" +
-    			"                System.out.println(M.this.name);\n" + 
-    			"				} catch(NullPointerException e) {\n" +
-    			"					System.err.println(\"NPE THROWN\");\n" +
-    			"				}\n" +
-    			"            }\n" + 
-    			"        }\n" + 
-    			"    }\n" + 
-    			"    \n" + 
-    			"    public void foo2() {\n" + 
-    			"    	new Y();\n" + 
-    			"    }\n" + 
-    			"}\n" + 
-    			"class Z {\n" + 
-    			"	void bar(I i) {\n" + 
-    			"		i.configure();\n" + 
-    			"	}\n" + 
-    			"}\n" + 
-    			"\n" + 
-    			"interface I {\n" + 
-    			"	void configure();\n" + 
-    			"}\n" + 
-    			"\n" + 
-    			"class N {\n" + 
-    			"	protected void foo(Z z) {\n" + 
-    			"	}\n" + 
-    			"	N() {\n" + 
-    			"		this.foo(new Z());\n" + 
-    			"	}\n" + 
-    			"}\n"
-    		}, 
-    		"NPE THROWN",
-    		null,
-    		true,
-    		null);
-    	return;
-	}
-	this.runConformTest(
-    		new String[] {
-    			"X.java", //========================
-    			"public class X {\n" + 
-    			"    public static void main(String[] args) {\n" + 
-    			"    	new M().foo2();\n" + 
-    			"    }\n" + 
-    			"}\n"+
-    			"class M  {\n" + 
-    			"	String name;\n" + 
-    			"	\n" + 
-    			"	M() {\n" + 
-    			"		this.name = \"SUCCESS\";\n" + 
-    			"	}\n" + 
-    			"\n" + 
-    			"	private class Y extends N {\n" + 
-    			"		private Y() {\n" + 
-    			"			super();\n" + 
-    			"		}\n" + 
-    			"		protected void foo(Z z) {\n" + 
-    			"			z.bar(new A());\n" + 
-    			"		}\n" + 
-    			"	}\n" + 
-    			"	\n" + 
-    			"    public class A implements I {\n" + 
-    			"    	public void configure() {\n" + 
-    			"    		new B().foo();\n" + 
-    			"    	}\n" + 
-    			"    	public class B {\n" + 
-    			"            public void foo() {\n" + 
-    			"                System.out.println(M.this.name);\n" + 
-    			"            }\n" + 
-    			"        }\n" + 
-    			"    }\n" + 
-    			"    \n" + 
-    			"    public void foo2() {\n" + 
-    			"    	new Y();\n" + 
-    			"    }\n" + 
-    			"}\n" + 
-    			"class Z {\n" + 
-    			"	void bar(I i) {\n" + 
-    			"		i.configure();\n" + 
-    			"	}\n" + 
-    			"}\n" + 
-    			"\n" + 
-    			"interface I {\n" + 
-    			"	void configure();\n" + 
-    			"}\n" + 
-    			"\n" + 
-    			"class N {\n" + 
-    			"	protected void foo(Z z) {\n" + 
-    			"	}\n" + 
-    			"	N() {\n" + 
-    			"		this.foo(new Z());\n" + 
-    			"	}\n" + 
-    			"}\n"
-    		}, 
-    		"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=165662
-public void test131() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo() {\n" + 
-			"		class Local {\n" + 
-			"			void foo() {\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		{\n" + 
-			"			class Local {\n" + 
-			"				Local(int i) {\n" + 
-			"					this.init(i);\n" + 
-			"					this.bar(); // should detect error\n" + 
-			"				}\n" + 
-			"				void init(int i) {\n" + 
-			"				}\n" + 
-			"			}\n" + 
-			"			Local l = new Local(0); // should be fine\n" + 
-			"		}\n" + 
-			"		Local l = new Local();\n" + 
-			"		l.foo();\n" + 
-			"	}\n" + 
-			"}", // =================,
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	class Local {\n" + 
-		"	      ^^^^^\n" + 
-		"Duplicate nested type Local\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 11)\n" + 
-		"	this.bar(); // should detect error\n" + 
-		"	     ^^^\n" + 
-		"The method bar() is undefined for the type Local\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=165662
-public void test132() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String argv[]) {\n" + 
-			"		class Local {}\n" + 
-			"		class Foo {\n" + 
-			"			void foo() {\n" + 
-			"				class Local {}\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}", // =================
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 3)\n" +
-		"	class Local {}\n" +
-		"	      ^^^^^\n" +
-		"The type Local is never used locally\n" +
-		"----------\n" +
-		"2. WARNING in X.java (at line 4)\n" +
-		"	class Foo {\n" +
-		"	      ^^^\n" +
-		"The type Foo is never used locally\n" +
-		"----------\n" +
-		"3. WARNING in X.java (at line 5)\n" + 
-		"	void foo() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method foo() from the type Foo is never used locally\n" + 
-		"----------\n" + 
-		"4. WARNING in X.java (at line 6)\n" + 
-		"	class Local {}\n" + 
-		"	      ^^^^^\n" + 
-		"The type Local is hiding the type Local\n" + 
-		"----------\n" +
-		"5. WARNING in X.java (at line 6)\n" +
-		"	class Local {}\n" +
-		"	      ^^^^^\n" +
-		"The type Local is never used locally\n" +
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=168331
-public void test133() {
-	if (this.complianceLevel.compareTo(COMPLIANCE_1_5) >= 0) {
-		this.runConformTest(
-			new String[] {
-				"X.java",	//===================
-				"public class X {\n" + 
-				"  public static interface I {\n" + 
-				"  }\n" + 
-				"  public static interface IE extends I {\n" + 
-				"  }\n" + 
-				"  public static interface J {\n" + 
-				"    I getI(int i);\n" + 
-				"  }\n" + 
-				"  public static interface JE extends J {\n" + 
-				"    IE getI(int i);\n" + 
-				"  }\n" + 
-				"  public static class Y implements JE {\n" + 
-				"    public IE getI(int i) {\n" + 
-				"      return null;\n" + 
-				"    }\n" + 
-				"  }\n" + 
-				"  private J j = new Y();\n" + 
-				"  public void foo() {\n" + 
-				"    j.getI(0);\n" + 
-				"    System.out.println(\"SUCCESS\");\n" + 
-				"  }\n" + 
-				"  public static void main(String[] args) {\n" + 
-				"    new X().foo();\n" + 
-				"  }\n" + 
-				"}", 		// =================
-			},
-			"SUCCESS");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=168331
-public void test134() {
-	if (this.complianceLevel.compareTo(COMPLIANCE_1_5) >= 0) {
-		this.runConformTest(
-			new String[] {
-				"X.java",	//===================
-				"public class X {\n" + 
-				"  public interface I {\n" + 
-				"    public String foo();\n" + 
-				"  }\n" + 
-				"  public interface J {\n" + 
-				"    public I getI();\n" + 
-				"  }\n" + 
-				"  public static class XI implements I {\n" + 
-				"    public String foo() {\n" + 
-				"      return \"XI\";\n" + 
-				"    }\n" + 
-				"  }\n" + 
-				"  public interface K extends J {\n" + 
-				"    public XI getI();\n" + 
-				"  }\n" + 
-				"  public static abstract class XK implements K {\n" + 
-				"    public XI getI() {\n" + 
-				"      return new XI();\n" + 
-				"    }\n" + 
-				"  }\n" + 
-				"  public static class Y extends XK {\n" + 
-				"  }\n" + 
-				"  public static void main(String[] args) {\n" + 
-				"    K k = new Y();\n" + 
-				"    System.out.println(k.getI().foo());\n" + 
-				"    J j = k;\n" + 
-				"    System.out.println(j.getI().foo());\n" + 
-				"  }\n" + 
-				"}", 		// =================
-			},
-			"XI\nXI");
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152961
-public void test135() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" +
-			"import p.A;\n" + 
-			"public class X {\n" + 
-			"	\n" + 
-			"	void foo(Object o, Object [] os) {\n" + 
-			"		A.M2.MM1 mm1 = (A.M2.MM1) o;\n" + 
-			"		A.M2.MM1[] mm1s = (A.M2.MM1[]) os;\n" + 
-			"	}\n" + 
-			"	private interface Outer {\n" + 
-			"		interface Inner {\n" + 
-			"			String variable = \"my testing\";\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		System.out.println(Outer.Inner.variable);\n" + 
-			"		Zork z;\n" +
-			"	}\n" + 
-			"}", // =================,
-			"p/A.java",
-			"package p;\n" +
-			"/** @deprecated */\n" +
-			"public class A {\n" + 
-			"	public class M1 {\n" +
-			"		public class MM1 {\n" +
-			"		}\n" +
-			"	}\n" +
-			"	public class M2 extends M1 {\n" +
-			"	}\n" +
-			"}", // =================,
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\X.java (at line 2)\n" + 
-		"	import p.A;\n" + 
-		"	       ^^^\n" + 
-		"The type A is deprecated\n" + 
-		"----------\n" + 
-		"2. WARNING in p\\X.java (at line 6)\n" + 
-		"	A.M2.MM1 mm1 = (A.M2.MM1) o;\n" + 
-		"	^^^^^^^^\n" + 
-		"The type A is deprecated\n" + 
-		"----------\n" + 
-		"3. WARNING in p\\X.java (at line 6)\n" + 
-		"	A.M2.MM1 mm1 = (A.M2.MM1) o;\n" + 
-		"	^^^^^^^^\n" + 
-		"The type A.M2 is deprecated\n" + 
-		"----------\n" + 
-		"4. WARNING in p\\X.java (at line 6)\n" + 
-		"	A.M2.MM1 mm1 = (A.M2.MM1) o;\n" + 
-		"	^^^^^^^^\n" + 
-		"The type A.M1.MM1 is deprecated\n" + 
-		"----------\n" + 
-		"5. WARNING in p\\X.java (at line 6)\n" + 
-		"	A.M2.MM1 mm1 = (A.M2.MM1) o;\n" + 
-		"	                ^\n" + 
-		"The type A is deprecated\n" + 
-		"----------\n" + 
-		"6. WARNING in p\\X.java (at line 6)\n" + 
-		"	A.M2.MM1 mm1 = (A.M2.MM1) o;\n" + 
-		"	                ^^^^\n" + 
-		"The type A.M2 is deprecated\n" + 
-		"----------\n" + 
-		"7. WARNING in p\\X.java (at line 6)\n" + 
-		"	A.M2.MM1 mm1 = (A.M2.MM1) o;\n" + 
-		"	                ^^^^^^^^\n" + 
-		"The type A.M1.MM1 is deprecated\n" + 
-		"----------\n" + 
-		"8. WARNING in p\\X.java (at line 7)\n" + 
-		"	A.M2.MM1[] mm1s = (A.M2.MM1[]) os;\n" + 
-		"	^^^^^^^^\n" + 
-		"The type A is deprecated\n" + 
-		"----------\n" + 
-		"9. WARNING in p\\X.java (at line 7)\n" + 
-		"	A.M2.MM1[] mm1s = (A.M2.MM1[]) os;\n" + 
-		"	^^^^^^^^\n" + 
-		"The type A.M2 is deprecated\n" + 
-		"----------\n" + 
-		"10. WARNING in p\\X.java (at line 7)\n" + 
-		"	A.M2.MM1[] mm1s = (A.M2.MM1[]) os;\n" + 
-		"	^^^^^^^^\n" + 
-		"The type A.M1.MM1 is deprecated\n" + 
-		"----------\n" + 
-		"11. WARNING in p\\X.java (at line 7)\n" + 
-		"	A.M2.MM1[] mm1s = (A.M2.MM1[]) os;\n" + 
-		"	                   ^^^^^^^^\n" + 
-		"The type A is deprecated\n" + 
-		"----------\n" + 
-		"12. WARNING in p\\X.java (at line 7)\n" + 
-		"	A.M2.MM1[] mm1s = (A.M2.MM1[]) os;\n" + 
-		"	                   ^^^^^^^^\n" + 
-		"The type A.M2 is deprecated\n" + 
-		"----------\n" + 
-		"13. WARNING in p\\X.java (at line 7)\n" + 
-		"	A.M2.MM1[] mm1s = (A.M2.MM1[]) os;\n" + 
-		"	                   ^^^^^^^^\n" + 
-		"The type A.M1.MM1 is deprecated\n" + 
-		"----------\n" + 
-		"14. ERROR in p\\X.java (at line 16)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152961 - variation
-public void test136() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" +
-			"public class X {\n" + 
-			"	private interface Outer {\n" + 
-			"		interface Inner {\n" + 
-			"			String variable = \"my testing\";\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		Outer.Inner variable = null;\n" + 
-			"		System.out.println(variable);\n" + 
-			"		Zork z;\n" +
-			"	}\n" + 
-			"}", // =================,
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 11)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152961 - variation
-public void test137() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" +
-			"public class X {\n" + 
-			"	private interface Outer {\n" + 
-			"		interface Inner {\n" + 
-			"			String variable = \"my testing\";\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	private interface Outer2 extends Outer {\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		System.out.println(Outer2.Inner.variable);\n" + 
-			"		Zork z;\n" +
-			"	}\n" + 
-			"}", // =================,
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 12)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152961 - variation
-public void test138() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"public class X {\n" + 
-			"	private interface Outer {\n" + 
-			"		interface Inner {\n" + 
-			"			String variable = \"my testing\";\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	private interface Outer2 extends Outer {\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		Outer2.Inner variable = null;\n" + 
-			"		System.out.println(variable);\n" + 
-			"		Zork z;\n" +
-			"	}\n" + 
-			"}", // =================,
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 12)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152961 - variation
-public void test139() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X { \n" + 
-			"   private class A {\n" + 
-			"    class B {}\n" + 
-			"  }\n" + 
-			"  private class Y extends A {\n" + 
-			"  }\n" + 
-			"  Y.B d = null;\n" + 
-			"}\n" + 
-			"class Y extends Zork {}\n", // =================
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 5)\n" + 
-		"	private class Y extends A {\n" + 
-		"	              ^\n" + 
-		"Access to enclosing constructor X.A() is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 9)\n" + 
-		"	class Y extends Zork {}\n" + 
-		"	                ^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test140() {
-	this.runConformTest(new String[] {
-		"p/A.java",
-		"package p;\n" + 
-		"public class A {\n" + 
-		"	public static interface I {\n" + 
-		"		void foo();\n" + 
-		"	}\n" + 
-		"}",
-		"p1/X.java",
-		"package p1;\n" + 
-		"import p.A;\n" + 
-		"public class X implements A.I {\n" + 
-		"        public void foo() { /* dummy */ }\n" + 
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #5 p/A$I, outer class info: #20 p/A\n" + 
-		"     inner name: #22 I, accessflags: 1545 public abstract static]\n";
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "p1" + File.separator + "X.class", "X", expectedOutput);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test141() {
-	this.runConformTest(new String[] {
-		"p/A.java",
-		"package p;\n" + 
-		"public class A {\n" + 
-		"	public static class B {\n" + 
-		"		void foo() { /* dummy */ }\n" + 
-		"	}\n" + 
-		"}",
-		"p1/X.java",
-		"package p1;\n" + 
-		"import p.A;\n" + 
-		"public class X extends A.B {\n" + 
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #3 p/A$B, outer class info: #17 p/A\n" + 
-		"     inner name: #19 B, accessflags: 9 public static]\n";
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "p1" + File.separator + "X.class", "X", expectedOutput);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test142() {
-	this.runConformTest(new String[] {
-		"p/A.java",
-		"package p;\n" + 
-		"public class A {\n" + 
-		"	public class B {\n" + 
-		"		void foo() { /* dummy */ }\n" + 
-		"	}\n" + 
-		"}",
-		"p1/X.java",
-		"package p1;\n" + 
-		"import p.A;\n" + 
-		"public class X {\n" +
-		"	Object foo() {\n" +
-		"		return new A().new B();\n" +
-		"	}\n" +
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #16 p/A$B, outer class info: #18 p/A\n" + 
-		"     inner name: #31 B, accessflags: 1 public]\n";
-	if (new CompilerOptions(this.getCompilerOptions()).targetJDK == ClassFileConstants.JDK1_1) {
-		expectedOutput =
-			"  Inner classes:\n" + 
-			"    [inner class info: #16 p/A$B, outer class info: #18 p/A\n" + 
-			"     inner name: #27 B, accessflags: 1 public]\n";
-	}
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "p1" + File.separator + "X.class", "X", expectedOutput);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test143() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"class A {\n" + 
-		"	public class B {\n" + 
-		"		void foo() { /* dummy */ }\n" + 
-		"	}\n" + 
-		"}\n" +
-		"public class X {\n" +
-		"	Object foo() {\n" +
-		"		return A.B.class;\n" +
-		"	}\n" +
-		"}"
-	});
-	if (new CompilerOptions(this.getCompilerOptions()).targetJDK >= ClassFileConstants.JDK1_5) {
-		String expectedOutput =
-			"  Inner classes:\n" + 
-			"    [inner class info: #16 A$B, outer class info: #21 A\n" + 
-			"     inner name: #23 B, accessflags: 1 public]\n";
-		checkDisassembledClassFile(OUTPUT_DIR + File.separator + "X.class", "X", expectedOutput);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test144() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"class A {\n" + 
-		"	public static class B {\n" + 
-		"		public static int CONST = 0;\n" + 
-		"	}\n" + 
-		"}\n" +
-		"public class X {\n" +
-		"	int foo() {\n" +
-		"		return A.B.CONST;\n" +
-		"	}\n" +
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #17 A$B, outer class info: #25 A\n" + 
-		"     inner name: #27 B, accessflags: 9 public static]\n";
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "X.class", "X", expectedOutput);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test145() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"class A {\n" + 
-		"	public static class B {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public class X {\n" + 
-		"	A.B field;\n" +
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #19 A$B, outer class info: #21 A\n" + 
-		"     inner name: #23 B, accessflags: 9 public static]\n";
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "X.class", "X", expectedOutput);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test146() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"class A {\n" + 
-		"	public static class B {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public class X {\n" + 
-		"	int foo(A.B o) {\n" +
-		"		return 0;\n" +
-		"	}\n" +
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #21 A$B, outer class info: #23 A\n" + 
-		"     inner name: #25 B, accessflags: 9 public static]\n";
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "X.class", "X", expectedOutput);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test147() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"class A {\n" + 
-		"	public static class B {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public class X {\n" + 
-		"	A.B foo() {\n" +
-		"		return null;\n" +
-		"	}\n" +
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #19 A$B, outer class info: #21 A\n" + 
-		"     inner name: #23 B, accessflags: 9 public static]\n";
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "X.class", "X", expectedOutput);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171184
-public void test148() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"class A {\n" + 
-		"	public static class B extends Exception {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public class X {\n" + 
-		"	void foo() throws A.B{\n" +
-		"	}\n" +
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #16 A$B, outer class info: #21 A\n" + 
-		"     inner name: #23 B, accessflags: 9 public static]\n";
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "X.class", "X", expectedOutput);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171749
-public void test149() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"public final class X implements A.Foo1 {\n" + 
-		"        public void foo() {}\n" + 
-		"        public A.Foo2 foo2() {   return null; }\n" + 
-		"        public void foo3( A.Foo3 foo ) {}\n" + 
-		"        public void foo4() { A.Foo4 foo = null; }\n" + 
-		"        public void foo5() {\n" + 
-		"                new A.Foo5() {\n" + 
-		"                        public void foo() {}\n" + 
-		"                }.foo();\n" + 
-		"        }\n" + 
-		"        public static class Foo6 implements A.Foo6 {\n" + 
-		"                public void foo() {}\n" + 
-		"        }\n" + 
-		"        public void foo7() { Bar2.foo7().foo(); }\n" + 
-		"}",
-		"A.java",
-		"class A {\n" + 
-		"        public static interface Foo1 { void foo(); }\n" + 
-		"        public static interface Foo2 { void foo(); }\n" + 
-		"        public static interface Foo3 { void foo(); }\n" + 
-		"        public static interface Foo4 { void foo(); }\n" + 
-		"        public static interface Foo5 { void foo(); }\n" + 
-		"        public static interface Foo6 { void foo(); }\n" + 
-		"        public static interface Foo7 { void foo(); }\n" + 
-		"}",
-		"Bar2.java",
-		"class Bar2 {\n" + 
-		"        public static A.Foo7 foo7() { return null; }\n" + 
-		"}"
-	});
-	String expectedOutput =
-		"  Inner classes:\n" + 
-		"    [inner class info: #5 A$Foo1, outer class info: #44 A\n" + 
-		"     inner name: #46 Foo1, accessflags: 1545 public abstract static],\n" + 
-		"    [inner class info: #47 A$Foo2, outer class info: #44 A\n" + 
-		"     inner name: #49 Foo2, accessflags: 1545 public abstract static],\n" + 
-		"    [inner class info: #50 A$Foo3, outer class info: #44 A\n" + 
-		"     inner name: #52 Foo3, accessflags: 1545 public abstract static],\n" + 
-		"    [inner class info: #39 A$Foo7, outer class info: #44 A\n" + 
-		"     inner name: #53 Foo7, accessflags: 1545 public abstract static],\n" + 
-		"    [inner class info: #25 X$1, outer class info: #0\n" + 
-		"     inner name: #0, accessflags: 0 default],\n" + 
-		"    [inner class info: #54 X$Foo6, outer class info: #1 X\n" + 
-		"     inner name: #56 Foo6, accessflags: 9 public static]\n";
-	checkDisassembledClassFile(OUTPUT_DIR + File.separator + "X.class", "X", expectedOutput);
-}
-public static Class testClass() {
-	return InnerEmulationTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InternalHexFloatTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InternalHexFloatTest.java
deleted file mode 100644
index bef8cfc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InternalHexFloatTest.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.util.FloatUtil;
-
-public class InternalHexFloatTest extends AbstractRegressionTest {
-	static class DoubleTest {
-		String input;
-		long output;
-		public DoubleTest(String input, long output) {
-			this.input = input;
-			this.output = output;
-		}
-	}
-	
-	static class FloatTest {
-		String input;
-		int output;
-		public FloatTest(String input, int output) {
-			this.input = input;
-			this.output = output;
-		}
-	}
-	
-	public InternalHexFloatTest(String name) {
-		super(name);
-	}
-	public static Test suite() {
-		return buildMinimalComplianceTestSuite(testClass(), F_1_5);
-	}
-
-	public static Class testClass() {
-		return InternalHexFloatTest.class;
-	}
-
-	/**
-	 */
-	public void test001() {
-		List x = new ArrayList();
-		
-		// various forms of zero
-		x.add(new DoubleTest("0x0p0", 0x0L));
-		x.add(new DoubleTest("0x0p0d", 0x0L));
-		x.add(new DoubleTest("0x0p0D", 0x0L));
-		x.add(new DoubleTest("0x0.0p0D", 0x0L));
-		x.add(new DoubleTest("0x.0p0D", 0x0L));
-		x.add(new DoubleTest("0x0.p0D", 0x0L));
-		x.add(new DoubleTest("0x00000.00000000000p0D", 0x0L));
-		x.add(new DoubleTest("0x0p99D", 0x0L));
-		x.add(new DoubleTest("0x0p-99D", 0x0L));
-		x.add(new DoubleTest("0x0p9999999D", 0x0L));
-		x.add(new DoubleTest("0x0p-9999999D", 0x0L));
-		
-		// small doubles
-		x.add(new DoubleTest("0x0.8p0D",       0x3fe0000000000000L));
-		x.add(new DoubleTest("0x0.4p0D",       0x3fd0000000000000L));
-		x.add(new DoubleTest("0x0.2p0D",       0x3fc0000000000000L));
-		x.add(new DoubleTest("0x0.1p0D",       0x3fb0000000000000L));
-		x.add(new DoubleTest("0x0.08p0D",      0x3fa0000000000000L));
-		x.add(new DoubleTest("0x0.04p0D",      0x3f90000000000000L));
-		x.add(new DoubleTest("0x0.02p0D",      0x3f80000000000000L));
-		x.add(new DoubleTest("0x0.01p0D",      0x3f70000000000000L));
-		x.add(new DoubleTest("0x0.010p0D",     0x3f70000000000000L));
-		x.add(new DoubleTest("0x1p0D",         0x3ff0000000000000L));
-		x.add(new DoubleTest("0x2p0D",         0x4000000000000000L));
-		x.add(new DoubleTest("0x4p0D",         0x4010000000000000L));
-		x.add(new DoubleTest("0x8p0D",         0x4020000000000000L));
-		x.add(new DoubleTest("0x10p0D",        0x4030000000000000L));
-		x.add(new DoubleTest("0x20p0D",        0x4040000000000000L));
-		x.add(new DoubleTest("0x40p0D",        0x4050000000000000L));
-		x.add(new DoubleTest("0x80p0D",        0x4060000000000000L));
-		x.add(new DoubleTest("0x80.p0D",       0x4060000000000000L));
-		x.add(new DoubleTest("0x80.8p0D",      0x4060100000000000L));
-		x.add(new DoubleTest("0x80.80p0D",     0x4060100000000000L));
-		x.add(new DoubleTest("0x123456789p0D", 0x41f2345678900000L));
-		x.add(new DoubleTest("0xabcedfp0D",    0x416579dbe0000000L));
-		x.add(new DoubleTest("0xABCDEFp0D",    0x416579bde0000000L));
-				
-		x.add(new DoubleTest("0x0.0100000000000000000000000000000000000000000000000p0d", 0x3f70000000000000L));
-		x.add(new DoubleTest("0x0.0000000000000000000000000000000000000000000000001p0d", 0x33b0000000000000L));
-		x.add(new DoubleTest("0x10000000000000000000000000000000000000000000000000000p0d", 0x4cf0000000000000L));
-		
-		// rounding to 53 bits
-		x.add(new DoubleTest("0x823456789012380p0d", 0x43a0468acf120247L));
-		x.add(new DoubleTest("0xFFFFFFFFFFFFF80p0d", 0x43afffffffffffffL));
-		x.add(new DoubleTest("0xFFFFFFFFFFFFFC0p0d", 0x43b0000000000000L));
-		x.add(new DoubleTest("0xFFFFFFFFFFFFFA0p0d", 0x43afffffffffffffL));
-		x.add(new DoubleTest("0xFFFFFFFFFFFFF81p0d", 0x43afffffffffffffL));
-		x.add(new DoubleTest("0x123456789abcd10p0d", 0x43723456789abcd1L));
-		x.add(new DoubleTest("0x123456789abcd18p0d", 0x43723456789abcd2L));
-		x.add(new DoubleTest("0x7FFFFFFFFFFFFC0p0d", 0x439fffffffffffffL));
-		x.add(new DoubleTest("0x7FFFFFFFFFFFFE0p0d", 0x43a0000000000000L));
-		x.add(new DoubleTest("0x3FFFFFFFFFFFFE0p0d", 0x438fffffffffffffL));
-		x.add(new DoubleTest("0x3FFFFFFFFFFFFF0p0d", 0x4390000000000000L));
-		x.add(new DoubleTest("0x1FFFFFFFFFFFFF0p0d", 0x437fffffffffffffL));
-		x.add(new DoubleTest("0x1FFFFFFFFFFFFF8p0d", 0x4380000000000000L));
-		
-		// rounding to overflow at +1024; denormalized at -1022; underflow at -1075
-		x.add(new DoubleTest("0x1p5000D",    0x7ff0000000000000L));
-		x.add(new DoubleTest("0x1p-5000D",   0x7ff8000000000000L));
-		x.add(new DoubleTest("0x1.0p1022d",  0x7fd0000000000000L));
-		x.add(new DoubleTest("0x1.0p1023d",  0x7fe0000000000000L));
-		x.add(new DoubleTest("0x1.0p1024d",  0x7ff0000000000000L));
-		x.add(new DoubleTest("0x1.0p-1022d", 0x0010000000000000L));
-		x.add(new DoubleTest("0x1.0p-1023d", 0x0008000000000000L));
-		x.add(new DoubleTest("0x1.0p-1024d", 0x0004000000000000L));
-		x.add(new DoubleTest("0x1.0p-1074d", 0x0000000000000001L));
-		x.add(new DoubleTest("0x1.0p-1075d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x1.0p-1076d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x1.0p-1077d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x1.0p-1078d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.8p1023d",  0x7fd0000000000000L));
-		x.add(new DoubleTest("0x0.8p1024d",  0x7fe0000000000000L));
-		x.add(new DoubleTest("0x0.8p1025d",  0x7ff0000000000000L));
-		x.add(new DoubleTest("0x0.8p-1021d", 0x0010000000000000L));
-		x.add(new DoubleTest("0x0.8p-1022d", 0x0008000000000000L));
-		x.add(new DoubleTest("0x0.8p-1023d", 0x0004000000000000L));
-		x.add(new DoubleTest("0x0.8p-1024d", 0x0002000000000000L));
-		x.add(new DoubleTest("0x0.8p-1074d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.8p-1075d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.8p-1076d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.4p-1021d", 0x0008000000000000L));
-		x.add(new DoubleTest("0x0.4p-1022d", 0x0004000000000000L));
-		x.add(new DoubleTest("0x0.4p-1023d", 0x0002000000000000L));
-		x.add(new DoubleTest("0x0.4p-1073d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.4p-1074d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.4p-1075d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.2p-1020d", 0x0008000000000000L));
-		x.add(new DoubleTest("0x0.2p-1021d", 0x0004000000000000L));
-		x.add(new DoubleTest("0x0.2p-1022d", 0x0002000000000000L));
-		x.add(new DoubleTest("0x0.2p-1072d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.2p-1073d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.2p-1074d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.1p-1019d", 0x0008000000000000L));
-		x.add(new DoubleTest("0x0.1p-1020d", 0x0004000000000000L));
-		x.add(new DoubleTest("0x0.1p-1021d", 0x0002000000000000L));
-		x.add(new DoubleTest("0x0.1p-1071d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.1p-1072d", 0x7ff8000000000000L));
-		x.add(new DoubleTest("0x0.1p-1073d", 0x7ff8000000000000L));
-		
-		for (Iterator it = x.iterator(); it.hasNext();) {
-			DoubleTest t = (DoubleTest) it.next();
-			String s = t.input;
-			long expectedBits = t.output;
-			double libExpected = 0.0d;
-			boolean isJ2SE5;
-			try {
-				// note that next line only works with a 1.5 J2SE
-				libExpected = Double.parseDouble(s);
-				isJ2SE5 = true;
-			} catch(NumberFormatException e) {
-				isJ2SE5 = false;
-			}
-			double dActual = FloatUtil.valueOfHexDoubleLiteral(s.toCharArray());
-			long actualBits = Double.doubleToLongBits(dActual);
-			if (isJ2SE5) {
-				// cross-check bits computed by J2SE 1.5 library
-				long libExpectedBits = Double.doubleToRawLongBits(libExpected);
-				if (expectedBits != libExpectedBits) {
-					if (Double.isNaN(Double.longBitsToDouble(expectedBits)) && libExpected == 0.0d) {
-						// this is ok - we return NaN where lib quietly underflows to 0
-					} else {
-						assertEquals("Test has wrong table value for " + s, libExpectedBits, expectedBits);
-					}
-				}
-			}
-			assertEquals("Wrong double value for " + s, expectedBits, actualBits);
-		}
-	}
-	
-	/**
-	 */
-	public void test002() {
-		List x = new ArrayList();
-		// various forms of zero
-		x.add(new FloatTest("0x0p0f", 0x0));
-		x.add(new FloatTest("0x0p0F", 0x0));
-		x.add(new FloatTest("0x0.0p0F", 0x0));
-		x.add(new FloatTest("0x.0p0F", 0x0));
-		x.add(new FloatTest("0x0.p0F", 0x0));
-		x.add(new FloatTest("0x00000.00000000000p0F", 0x0));
-		x.add(new FloatTest("0x0p99F", 0x0));
-		x.add(new FloatTest("0x0p-99F", 0x0));
-		x.add(new FloatTest("0x0p9999999F", 0x0));
-		x.add(new FloatTest("0x0p-9999999F", 0x0));
-		
-		// small floats
-		x.add(new FloatTest("0x0.8p0F", 0x3f000000));
-		x.add(new FloatTest("0x0.4p0F", 0x3e800000));
-		x.add(new FloatTest("0x0.2p0F", 0x3e000000));
-		x.add(new FloatTest("0x0.1p0F", 0x3d800000));
-		x.add(new FloatTest("0x0.08p0F", 0x3d000000));
-		x.add(new FloatTest("0x0.04p0F", 0x3c800000));
-		x.add(new FloatTest("0x0.02p0F", 0x3c000000));
-		x.add(new FloatTest("0x0.01p0F", 0x3b800000));
-		x.add(new FloatTest("0x0.010p0F", 0x3b800000));
-		x.add(new FloatTest("0x1p0F", 0x3f800000));
-		x.add(new FloatTest("0x2p0F", 0x40000000));
-		x.add(new FloatTest("0x4p0F", 0x40800000));
-		x.add(new FloatTest("0x8p0F", 0x41000000));
-		x.add(new FloatTest("0x10p0F", 0x41800000));
-		x.add(new FloatTest("0x20p0F", 0x42000000));
-		x.add(new FloatTest("0x40p0F", 0x42800000));
-		x.add(new FloatTest("0x80p0F", 0x43000000));
-		x.add(new FloatTest("0x80.p0F", 0x43000000));
-		x.add(new FloatTest("0x80.8p0F", 0x43008000));
-		x.add(new FloatTest("0x80.80p0F", 0x43008000));
-		x.add(new FloatTest("0x123456789p0F", 0x4f91a2b4));
-		x.add(new FloatTest("0xabcedfp0F", 0x4b2bcedf));
-		x.add(new FloatTest("0xABCDEFp0F", 0x4b2bcdef));
-		
-		x.add(new FloatTest("0x0.000000000000000000000000000001p0f", 0x3800000));
-		x.add(new FloatTest("0x10000000000000000000000000000000p0f", 0x7d800000));
-		
-		// rounding to 24 bits
-		x.add(new FloatTest("0x823456p0f",   0x4b023456));
-		x.add(new FloatTest("0xFFFFFF80p0f", 0x4f800000));
-		x.add(new FloatTest("0xFFFFFF40p0f", 0x4f7fffff));
-		x.add(new FloatTest("0xFFFFFF20p0f", 0x4f7fffff));
-		x.add(new FloatTest("0x123456p0f",   0x4991a2b0));
-		x.add(new FloatTest("0x7890abp0f",   0x4af12156));
-		x.add(new FloatTest("0xcdefABp0f",   0x4b4defab));
-		x.add(new FloatTest("0xCDEFdep0f",   0x4b4defde));
-		x.add(new FloatTest("0x123456p0f",   0x4991a2b0));
-		x.add(new FloatTest("0x7FFFFF8p0f",  0x4cffffff));
-		x.add(new FloatTest("0x3FFFFFCp0f",  0x4c7fffff));
-		x.add(new FloatTest("0x1FFFFFEp0f",  0x4bffffff));
-		
-		// rounding to overflow at +128; denormalized at -126; underflow at -150
-		x.add(new FloatTest("0x1p5000F",     0x7f800000));
-		x.add(new FloatTest("0x1p-5000F",    0x7fc00000));
-		x.add(new FloatTest("0x1.0p126f",    0x7e800000));
-		x.add(new FloatTest("0x1.0p127f",    0x7f000000));
-		x.add(new FloatTest("0x1.0p128f",    0x7f800000));
-		x.add(new FloatTest("0x1.0p129f",    0x7f800000));
-		x.add(new FloatTest("0x1.0p-127f",   0x00400000));
-		x.add(new FloatTest("0x1.0p-128f",   0x00200000));
-		x.add(new FloatTest("0x1.0p-129f",   0x00100000));
-		x.add(new FloatTest("0x1.0p-149f",   0x00000001));
-		x.add(new FloatTest("0x1.0p-150f",   0x7fc00000));
-		x.add(new FloatTest("0x1.0p-151f",   0x7fc00000));
-		x.add(new FloatTest("0x0.8p127f",    0x7e800000));
-		x.add(new FloatTest("0x0.8p128f",    0x7f000000));
-		x.add(new FloatTest("0x0.8p129f",    0x7f800000));
-		x.add(new FloatTest("0x0.8p-125f",   0x00800000));
-		x.add(new FloatTest("0x0.8p-126f",   0x00400000));
-		x.add(new FloatTest("0x0.8p-127f",   0x00200000));
-		x.add(new FloatTest("0x0.8p-128f",   0x00100000));
-		x.add(new FloatTest("0x0.8p-148f",   0x00000001));
-		x.add(new FloatTest("0x0.8p-149f",   0x7fc00000));
-		x.add(new FloatTest("0x0.8p-150f",   0x7fc00000));
-		x.add(new FloatTest("0x0.4p-124f",   0x00800000));
-		x.add(new FloatTest("0x0.4p-125f",   0x00400000));
-		x.add(new FloatTest("0x0.4p-126f",   0x00200000));
-		x.add(new FloatTest("0x0.4p-147f",   0x00000001));
-		x.add(new FloatTest("0x0.4p-148f",   0x7fc00000));
-		x.add(new FloatTest("0x0.4p-149f",   0x7fc00000));
-		x.add(new FloatTest("0x0.4p-150f",   0x7fc00000));
-		x.add(new FloatTest("0x0.2p-123f",   0x00800000));
-		x.add(new FloatTest("0x0.2p-124f",   0x00400000));
-		x.add(new FloatTest("0x0.2p-125f",   0x00200000));
-		x.add(new FloatTest("0x0.2p-126f",   0x00100000));
-		x.add(new FloatTest("0x0.2p-146f",   0x00000001));
-		x.add(new FloatTest("0x0.2p-147f",   0x7fc00000));
-		x.add(new FloatTest("0x0.2p-148f",   0x7fc00000));
-		x.add(new FloatTest("0x0.2p-149f",   0x7fc00000));
-		x.add(new FloatTest("0x0.1p-122f",   0x00800000));
-		x.add(new FloatTest("0x0.1p-123f",   0x00400000));
-		x.add(new FloatTest("0x0.1p-124f",   0x00200000));
-		x.add(new FloatTest("0x0.1p-145f",   0x00000001));
-		x.add(new FloatTest("0x0.1p-146f",   0x7fc00000));
-		x.add(new FloatTest("0x0.1p-147f",   0x7fc00000));
-		x.add(new FloatTest("0x0.1p-148f",   0x7fc00000));		
-		
-		for (Iterator it = x.iterator(); it.hasNext();) {
-			FloatTest t = (FloatTest) it.next();
-			String s = t.input;
-			int expectedBits = t.output;
-			float libExpected = 0.0f;
-			boolean isJ2SE5;
-			try {
-				// note that next line only works with a 1.5 J2SE
-				libExpected = Float.parseFloat(s);
-				isJ2SE5 = true;
-			} catch(NumberFormatException e) {
-				isJ2SE5 = false;
-			}
-			float dActual = FloatUtil.valueOfHexFloatLiteral(s.toCharArray());
-			long actualBits = Float.floatToIntBits(dActual);
-			if (isJ2SE5) {
-				// cross-check bits computed by J2SE 1.5 library
-				int libExpectedBits = Float.floatToRawIntBits(libExpected);
-				if (expectedBits != libExpectedBits) {
-					if (Float.isNaN(Float.intBitsToFloat(expectedBits)) && libExpected == 0.0f) {
-						// this is ok - we return NaN where lib quietly underflows to 0
-					} else {
-						assertEquals("Test has wrong table value for " + s, libExpectedBits, expectedBits);
-					}
-				}
-			}
-			assertEquals("Wrong float value for " + s, expectedBits, actualBits);
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test003() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n" +
-				"    public static void main(String[] args) {\n" + 
-				"        System.out.println(-0Xf.aP1F);\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"-31.25");
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test004() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n" +
-				"    public static void main(String[] args) {\n" + 
-				"        System.out.println(0X000.0000P5000);\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"0.0");
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test005() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n" +
-				"    public static void main(String[] args) {\n" + 
-				"        System.out.println(-0X000.0000P5000F);\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"-0.0");
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n" +
-				"    public static void main(String[] args) {\n" + 
-				"        System.out.println(0X000.eP-5000F);\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\r\n" + 
-			"	System.out.println(0X000.eP-5000F);\r\n" + 
-			"	                   ^^^^^^^^^^^^^^\n" + 
-			"The literal 0X000.eP-5000F of type float is out of range \n" + 
-			"----------\n");
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test007() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {	\n" +
-				"    public static void main(String[] args) {\n" + 
-				"        System.out.println(0X000.eP5000F);\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\r\n" + 
-			"	System.out.println(0X000.eP5000F);\r\n" + 
-			"	                   ^^^^^^^^^^^^^\n" + 
-			"The literal 0X000.eP5000F of type float is out of range \n" + 
-			"----------\n");
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InternalScannerTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InternalScannerTest.java
deleted file mode 100644
index c3985d1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InternalScannerTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Scanner;
-import org.eclipse.wst.jsdt.internal.compiler.parser.TerminalTokens;
-public class InternalScannerTest extends AbstractRegressionTest {
-
-	public InternalScannerTest(String name) {
-		super(name);
-	}
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(testClass());
-	}
-
-	public static Class testClass() {
-		return InternalScannerTest.class;
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23181
-	 */
-	public void test001() {
-		String source =	"//Comment";
-		Scanner scanner = new Scanner();
-		scanner.setSource(source.toCharArray());
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-		} catch (InvalidInputException e) {
-			// ignore
-		}
-		assertEquals("Wrong token type", TerminalTokens.TokenNameEOF, token);
-		assertEquals("Wrong comment start", 0,  scanner.commentStarts[0]);
-		assertEquals("Wrong comment start", -9, scanner.commentStops[0]);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=73762
-	 */
-	public void test002() throws InvalidInputException {
-		Scanner scanner = new Scanner();
-		scanner.recordLineSeparator = true;
-		scanner.setSource("a\nb\nc\n".toCharArray());
-		int token = 0;
-		while (token !=  TerminalTokens.TokenNameEOF) {
-			token = scanner.getNextToken();
-		}
-		scanner.setSource("a\nb\n".toCharArray());
-		token = 0;
-		while (token !=  TerminalTokens.TokenNameEOF) {
-			token = scanner.getNextToken();
-		}
-		assertEquals("Wrong number of line ends", 2, scanner.getLineEnds().length);
-	}					
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocBugsTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocBugsTest.java
deleted file mode 100644
index 61c4459..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocBugsTest.java
+++ /dev/null
@@ -1,5193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocBugsTest extends JavadocTest {
-
-	String docCommentSupport = CompilerOptions.ENABLED;
-	String reportInvalidJavadoc = CompilerOptions.ERROR;
-	String reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-	String reportMissingJavadocTags = CompilerOptions.ERROR;
-	String reportMissingJavadocComments = null;
-	String reportDeprecation = CompilerOptions.ERROR;
-	String reportJavadocDeprecation = null;
-
-	public JavadocBugsTest(String name) {
-		super(name);
-	}
-
-	public static Class javadocTestClass() {
-		return JavadocBugsTest.class;
-	}
-
-	// Use this static initializer to specify subset for tests
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_PREFIX = "testBug96237";
-//		TESTS_NAMES = new String[] { "testBug68017javadocWarning2" };
-//		TESTS_NUMBERS = new int[] { 129241 };
-//		TESTS_RANGE = new int[] { 21, 50 };
-	}
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(javadocTestClass());
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_DocCommentSupport, docCommentSupport);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, reportInvalidJavadoc);
-		if (!CompilerOptions.IGNORE.equals(reportInvalidJavadoc)) {
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, this.reportInvalidJavadocVisibility);
-		}
-		if (this.reportJavadocDeprecation != null) {
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef, reportJavadocDeprecation);
-		}
-		if (reportMissingJavadocComments != null) {
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments);
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsOverriding, CompilerOptions.ENABLED);
-		} else {
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportInvalidJavadoc);
-		}
-		if (reportMissingJavadocTags != null) {
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportMissingJavadocTags);
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsOverriding, CompilerOptions.ENABLED);
-		} else {
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
-		}
-		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
-//		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_ReportDeprecation, reportDeprecation);
-		options.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_ReportUnusedPrivateMember, CompilerOptions.IGNORE);
-		return options;
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		docCommentSupport = CompilerOptions.ENABLED;
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		reportMissingJavadocComments = CompilerOptions.IGNORE;
-		reportDeprecation = CompilerOptions.ERROR;
-	}
-
-	/**
-	 * Bug 45596.
-	 * When this bug happened, compiler wrongly complained on missing parameter javadoc
-	 * entries for method declaration in anonymous class.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45596">45596</a>
-	 */
-	public void testBug45596() {
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-			 	+ "class X {\n"
-					+ "	void foo(int x, String str) {}\n"
-			  		+ "}\n",
-				"test/Y.java",
-				"package test;\n"
-			   		+ "class Y {\n"
-			   		+ "  /** */\n"
-			   		+ "  protected X field = new X() {\n"
-			   		+ "    void foo(int x, String str) {}\n"
-			   		+ "  };\n"
-			   		+ "}\n"});
-	}
-
-	/**
-	 * Additional test for bug 45596.
-	 * Verify correct complain about missing parameter javadoc entries in anonymous class.
-	 * Since bug 47132, @param, @return and @throws tags are not resolved in javadoc of anonymous
-	 * class...
-	 */
-	public void testBug45596a() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void foo(int x, String str) {}\n" + 
-				"}\n",
-				"Y1.java",
-				"public class Y1 {\n" + 
-				"	/** */\n" +
-				"	protected X field = new X() {\n" + 
-				"		/** Invalid javadoc comment in anonymous class */\n" + 
-				"		void foo(String str) {}\n" + 
-				"	};\n" + 
-				"}\n",
-				"Y2.java",
-				"public class Y2 {\n" + 
-				"	/** */\n" + 
-				"	void foo() {\n" + 
-				"		X x = new X() {\n" + 
-				"			/** Invalid javadoc comment in anonymous class */\n" + 
-				"			void foo(String str) {}\n" + 
-				"		};\n" + 
-				"		x.foo(0, \"\");\n" + 
-				"	}\n" + 
-				"}\n",
-				"Y3.java",
-				"public class Y3 {\n" + 
-				"	static X x;\n" + 
-				"	static {\n" + 
-				"		x = new X() {\n" + 
-				"			/** Invalid javadoc comment in anonymous class */\n" + 
-				"			void foo(String str) {}\n" + 
-				"		};\n" + 
-				"	}\n" + 
-				"}\n" }
-			);
-	}
-
-	/**
-	 * Additional test for bug 45596.
-	 * Verify no complain about missing parameter javadoc entries.
-	 */
-	public void testBug45596b() {
-		runConformTest(
-			new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"	void foo(int x, String str) {}\n" + 
-		"}\n",
-		"Y1.java",
-		"public class Y1 {\n" + 
-		"	/** */\n" + 
-		"	protected X field = new X() {\n" + 
-		"		/**\n" + 
-		"		 * Valid javadoc comment in anonymous class.\n" + 
-		"		 * @param str String\n" + 
-		"		 * @return int\n" + 
-		"		 */\n" + 
-		"		int bar(String str) {\n" + 
-		"			return 10;\n" + 
-		"		}\n" + 
-		"	};\n" + 
-		"}\n",
-		"Y2.java",
-		"public class Y2 {\n" + 
-		"	/** */\n" + 
-		"	void foo() {\n" + 
-		"		X x = new X() {\n" + 
-		"			/**\n" + 
-		"			 * Valid javadoc comment in anonymous class.\n" + 
-		"			 * @param str String\n" + 
-		"			 * @return int\n" + 
-		"			 */\n" + 
-		"			int bar(String str) {\n" + 
-		"				return 10;\n" + 
-		"			}\n" + 
-		"		};\n" + 
-		"		x.foo(0, \"\");\n" + 
-		"	}\n" + 
-		"}\n",
-		"Y3.java",
-		"public class Y3 {\n" + 
-		"	static X x;\n" + 
-		"	static {\n" + 
-		"		x = new X() {\n" + 
-		"			/**\n" + 
-		"			 * Valid javadoc comment in anonymous class.\n" + 
-		"			 * @param str String\n" + 
-		"			 * @return int\n" + 
-		"			 */\n" + 
-		"			int bar(String str) {\n" + 
-		"				return 10;\n" + 
-		"			}\n" + 
-		"		};\n" + 
-		"	}\n" + 
-		"}\n"}
-			);
-	}
-
-	/**
-	 * Bug 45592.
-	 * When this bug happened, a NullPointerException occured during the compilation.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45592">45592</a>
-	 */
-	public void testBug45592() {
-		runConformTest(
-			new String[] {
-				"a/Y.java",
-				"package a;\n" + 
-				"\n" + 
-				"/** */\n" + 
-				"public class Y {\n" + 
-				"	protected boolean bar(Object obj) {\n" + 
-				"		return obj == null;\n" + 
-				"	}\n" + 
-				"}\n",
-				"test/X.java",
-				"package test;\n" + 
-				"public class X {\n" + 
-				"	public static Boolean valueOf(boolean bool) {\n" + 
-				"		if (bool) {\n" + 
-				"			return Boolean.TRUE;\n" + 
-				"		} else {\n" + 
-				"			return Boolean.FALSE;\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test/YY.java",
-				"package test;\n" + 
-				"\n" + 
-				"import a.Y;\n" + 
-				"\n" + 
-				"/** */\n" + 
-				"public class YY extends Y {\n" + 
-				"	/**\n" + 
-				"	 * Returns a Boolean.\n" + 
-				"	 * @param key\n" + 
-				"	 * @return A Boolean telling whether the key is null or not.\n" + 
-				"	 * @see #bar(Object)\n" + 
-				"	 */\n" + 
-				"	protected Boolean foo(Object key) {\n" + 
-				"		return X.valueOf(bar(key));\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 45737.
-	 * When this bug happened, compiler complains on return type and argument of method bar.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45737">45737</a>
-	 */
-	public void testBug45737() {
-		runConformTest(
-			new String[] {
-				"Y.java",
-				"class Y {\n" + 
-				"	void foo() {\n" + 
-				"		X x = new X() {\n" + 
-				"			/**\n" + 
-				"			 * Valid javadoc comment in anonymous class.\n" + 
-				"			 * @param str String\n" + 
-				"			 * @return int\n" + 
-				"			 */\n" + 
-				"			int bar(String str) {\n" + 
-				"				return 10;\n" + 
-				"			}\n" + 
-				"		};\n" + 
-				"		x.foo();\n" + 
-				"	}\n" + 
-				"}\n",
-				"X.java",
-				"class X {\n" + 
-				"	void foo() {}\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 45669.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45669">45669</a>
-	 */
-	public void testBug45669() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * Valid javadoc comment with tags mixed order\n" + 
-				"	 * @param str first param\n" + 
-				"	 * 		@see String\n" + 
-				"	 * @param dbl second param\n" + 
-				"	 * 		@see Double\n" + 
-				"	 * 		also\n" + 
-				"	 * 		@see \"String ref\"\n" + 
-				"	 * @return int\n" + 
-				"	 * @throws InterruptedException\n" + 
-				"	 * \n" + 
-				"	 */\n" + 
-				"	int foo(String str, Double dbl) throws InterruptedException {\n" + 
-				"		return 0;\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	/*
-	 * Additional test for bug 45669.
-	 * Verify that compiler complains when @throws tag is between @param tags.
-	 */
-	public void testBug45669a() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * Javadoc comment with tags invalid mixed order\n" + 
-				"	 * @param str first param\n" + 
-				"	 * 		@see String\n" + 
-				"	 * @throws InterruptedException\n" + 
-				"	 * @param dbl second param\n" + 
-				"	 * 		@see Double\n" + 
-				"	 * 		also\n" + 
-				"	 * 		@see \"String ref\"\n" + 
-				"	 * @return int\n" + 
-				"	 * \n" + 
-				"	 */\n" + 
-				"	public int foo(String str, Double dbl) throws InterruptedException {\n" + 
-				"		return 0;\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	* @param dbl second param\n" + 
-		"	   ^^^^^\n" + 
-		"Javadoc: Unexpected tag\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 14)\n" + 
-		"	public int foo(String str, Double dbl) throws InterruptedException {\n" + 
-		"	                                  ^^^\n" + 
-		"Javadoc: Missing tag for parameter dbl\n" + 
-		"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 45958.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45958">45958</a>
-	 */
-	public void testBug45958() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	int x;\n" + 
-				"	public X(int i) {\n" + 
-				"		x = i;\n" + 
-				"	}\n" + 
-				"	/**\n" + 
-				"	 * @see #X(int)\n" + 
-				"	 */\n" + 
-				"	void foo() {\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug45958a() {
-		runNegativeTest(
-			new String[] {
-			   "X.java",
-		   		"public class X {\n" + 
-		   		"	int x;\n" + 
-		   		"	public X(int i) {\n" + 
-		   		"		x = i;\n" + 
-		   		"	}\n" + 
-		   		"	/**\n" + 
-		   		"	 * @see #X(String)\n" + 
-		   		"	 */\n" + 
-		   		"	public void foo() {\n" + 
-		   		"	}\n" + 
-		   		"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 7)\n" + 
-				"	* @see #X(String)\n" + 
-				"	        ^^^^^^^^^\n" + 
-				"Javadoc: The constructor X(String) is undefined\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug45958b() {
-		runNegativeTest(
-			new String[] {
-			   "X.java",
-		   		"public class X {\n" + 
-		   		"	int x;\n" + 
-		   		"	public X(int i) {\n" + 
-		   		"		x = i;\n" + 
-		   		"	}\n" + 
-		   		"	/**\n" + 
-		   		"	 * @see #X(int)\n" + 
-		   		"	 */\n" + 
-		   		"	public void foo() {\n" + 
-		   		"	}\n" + 
-		   		"}\n",
-		   		"XX.java",
-		   		"public class XX extends X {\n" + 
-		   		"	/**\n" + 
-		   		"	 * @param i\n" + 
-		   		"	 * @see #X(int)\n" + 
-		   		"	 */\n" + 
-		   		"	public XX(int i) {\n" + 
-		   		"		super(i);\n" + 
-		   		"		x++;\n" + 
-		   		"	}\n" + 
-		   		"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in XX.java (at line 4)\n" + 
-				"	* @see #X(int)\n" + 
-				"	        ^\n" + 
-				"Javadoc: The method X(int) is undefined for the type XX\n" + 
-				"----------\n"
-			);
-	}
-	public void testBug45958c() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	int x;\n" + 
-				"	public X(int i) {\n" + 
-				"		x = i;\n" + 
-				"	}\n" + 
-				"	/**\n" + 
-				"	 * @see #X(String)\n" + 
-				"	 */\n" + 
-				"	void foo() {\n" + 
-				"	}\n" + 
-				"	void X(String str) {}\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 46901.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46901">46901</a>
-	 */
-	public void testBug46901() {
-		runConformTest(
-			new String[] {
-				"A.java",
-				"public abstract class A {\n" + 
-				"	public A() { super(); }\n" + 
-				"}\n",
-				"X.java",
-				"/**\n" + 
-				" * @see A#A()\n" + 
-				" */\n" + 
-				"public class X extends A {\n" + 
-				"	public X() { super(); }\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 47215.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47215">47215</a>
-	 */
-	public void testBug47215() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n" + 
-				"	 * @see X\n" + 
-				"	 * @see X#X(int)\n" + 
-				"	 * @see X(double)\n" + 
-				"	 * @see X   (double)\n" + 
-				"	 * @see X[double]\n" + 
-				"	 * @see X!=}}\n" + 
-				"	 * @see foo()\n" + 
-				"	 * @see foo  ()\n" + 
-				"	 */\n" + 
-				"	public class X {\n" + 
-				"		public X(int i){}\n" + 
-				"		public void foo() {}\n" + 
-				"	}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @see X(double)\n" + 
-				"	       ^^^^^^^^^\n" + 
-				"Javadoc: Missing #: \"X(double)\"\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @see X[double]\n" + 
-				"	       ^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* @see X!=}}\n" + 
-				"	       ^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @see foo()\n" + 
-				"	       ^^^^^\n" + 
-				"Javadoc: Missing #: \"foo()\"\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 9)\n" + 
-				"	* @see foo  ()\n" + 
-				"	       ^^^\n" + 
-				"Javadoc: foo cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 47341.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47341">47341</a>
-	 */
-	public void testBug47341() {
-		runConformTest(
-			new String[] {
-				"p1/X.java",
-				"package p1;\n" + 
-				"public class X {\n" + 
-				"	void foo_package() {}\n" + 
-				"	protected void foo_protected() {}\n" + 
-				"}\n",
-				"p1/Y.java",
-				"package p1;\n" + 
-				"public class Y extends X {\n" + 
-				"	/**\n" + 
-				"	 * @see #foo_package()\n" + 
-				"	 */\n" + 
-				"	protected void bar() {\n" + 
-				"		foo_package();\n" + 
-				"	}\n" + 
-				"}\n",
-				"p2/Y.java",
-				"package p2;\n" + 
-				"import p1.X;\n" + 
-				"\n" + 
-				"public class Y extends X {\n" + 
-				"	/**\n" + 
-				"	 * @see X#foo_protected()\n" + 
-				"	 */\n" + 
-				"	protected void bar() {\n" + 
-				"		foo_protected();\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 47132.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47132">47132</a>
-	 */
-	public void testBug47132() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/** */\n" + 
-				"public class X {\n" + 
-				"  /** */\n" + 
-				"  public void foo(){\n" + 
-				"    new Object(){\n" + 
-				"		public int x;\n" + 
-				"       public void bar(){}\n" + 
-				"    };\n" + 
-				"  }\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 47339.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47339">47339</a>
-	 */
-	public void testBug47339() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/** */\n" + 
-				"public class X implements Comparable {\n" + 
-				"	/**\n" + 
-				"	 * @see java.lang.Comparable#compareTo(java.lang.Object)\n" + 
-				"	 */\n" + 
-				"	public int compareTo(Object o) {\n" + 
-				"		return 0;\n" + 
-				"	}\n" + 
-				"	/** @see Object#toString() */\n" + 
-				"	public String toString(){\n" + 
-				"		return \"\";\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug47339a() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/** */\n" + 
-				"public class X extends RuntimeException {\n" + 
-				"	\n" + 
-				"	/**\n" + 
-				"	 * @see RuntimeException#RuntimeException(java.lang.String)\n" + 
-				"	 */\n" + 
-				"	public X(String message) {\n" + 
-				"		super(message);\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug47339b() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/** */\n" + 
-				"public class X implements Comparable {\n" + 
-				"	/** */\n" + 
-				"	public int compareTo(Object o) {\n" + 
-				"		return 0;\n" + 
-				"	}\n" + 
-				"	/** */\n" + 
-				"	public String toString(){\n" + 
-				"		return \"\";\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	public int compareTo(Object o) {\n" + 
-				"	       ^^^\n" + 
-				"Javadoc: Missing tag for return type\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	public int compareTo(Object o) {\n" + 
-				"	                            ^\n" + 
-				"Javadoc: Missing tag for parameter o\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 8)\n" + 
-				"	public String toString(){\n" + 
-				"	       ^^^^^^\n" + 
-				"Javadoc: Missing tag for return type\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug47339c() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/** */\n" + 
-				"public class X extends RuntimeException {\n" + 
-				"	\n" + 
-				"	/** */\n" + 
-				"	public X(String message) {\n" + 
-				"		super(message);\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\n" + 
-			"	public X(String message) {\n" + 
-			"	                ^^^^^^^\n" + 
-			"Javadoc: Missing tag for parameter message\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 48064.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48064">48064</a>
-	 */
-	public void testBug48064() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public X(String str) {}\n" + 
-				"}\n",
-				"Y.java",
-				"public class Y extends X {\n" + 
-				"	/**\n" + 
-				"	 * @see X#X(STRING)\n" + 
-				"	 */\n" + 
-				"	public Y(String str) {super(str);}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 3)\n" + 
-			"	* @see X#X(STRING)\n" + 
-			"	           ^^^^^^\n" + 
-			"Javadoc: STRING cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 5)\n" + 
-			"	public Y(String str) {super(str);}\n" + 
-			"	                ^^^\n" + 
-			"Javadoc: Missing tag for parameter str\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug48064a() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public void foo(String str) {}\n" + 
-				"}\n",
-				"Y.java",
-				"public class Y extends X {\n" + 
-				"	/**\n" + 
-				"	 * @see X#foo(STRING)\n" + 
-				"	 */\n" + 
-				"	public void foo(String str) {super.foo(str);}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 3)\n" + 
-			"	* @see X#foo(STRING)\n" + 
-			"	             ^^^^^^\n" + 
-			"Javadoc: STRING cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 5)\n" + 
-			"	public void foo(String str) {super.foo(str);}\n" + 
-			"	                       ^^^\n" + 
-			"Javadoc: Missing tag for parameter str\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 48523.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48523">48523</a>
-	 */
-	public void testBug48523() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"import java.io.IOException;\n" + 
-					"public class X {\n" + 
-					"	public void foo() throws IOException {}\n" + 
-					"}\n",
-				"Y.java",
-				"import java.io.IOException;\n" + 
-					"public class Y extends X {\n" + 
-					"	/**\n" + 
-					"	 * @throws IOException\n" + 
-					"	 * @see X#foo()\n" + 
-					"	 */\n" + 
-					"	public void foo() throws IOException {}\n" + 
-					"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 48711.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48711">48711</a>
-	 */
-	public void testBug48711() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"import java.io.*;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @throws IOException\n" + 
-				"	 * @throws EOFException\n" + 
-				"	 * @throws FileNotFoundException\n" + 
-				"	 */\n" + 
-				"	public void foo() throws IOException {}\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 45782.
-	 * When this bug happened, compiler wrongly complained on missing parameters declaration
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45782">45782</a>
-	 */
-	public void testBug45782() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X implements Comparable {\n" + 
-					"\n" + 
-					"	/**\n" + 
-					"	 * Overridden method with return value and parameters.\n" + 
-					"	 * {@inheritDoc}\n" + 
-					"	 */\n" + 
-					"	public boolean equals(Object obj) {\n" + 
-					"		return super.equals(obj);\n" + 
-					"	}\n" + 
-					"\n" + 
-					"	/**\n" + 
-					"	 * Overridden method with return value and thrown exception.\n" + 
-					"	 * {@inheritDoc}\n" + 
-					"	 */\n" + 
-					"	public Object clone() throws CloneNotSupportedException {\n" + 
-					"		return super.clone();\n" + 
-					"	}\n" + 
-					"\n" + 
-					"	/**\n" + 
-					"	 * Implemented method (Comparable)  with return value and parameters.\n" + 
-					"	 * {@inheritDoc}\n" + 
-					"	 */\n" + 
-					"	public int compareTo(Object o) { return 0; }\n" + 
-					"}\n"
-			});
-	}
-	public void testBug45782a() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Unefficient inheritDoc tag on a method which is neither overridden nor implemented...\n" + 
-					"	 * {@inheritDoc}\n" + 
-					"	 */\n" + 
-					"	public int foo(String str) throws IllegalArgumentException { return 0; }\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	* {@inheritDoc}\n" + 
-			"	    ^^^^^^^^^^\n" + 
-			"Javadoc: Unexpected tag\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 6)\n" + 
-			"	public int foo(String str) throws IllegalArgumentException { return 0; }\n" + 
-			"	       ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 6)\n" + 
-			"	public int foo(String str) throws IllegalArgumentException { return 0; }\n" + 
-			"	                      ^^^\n" + 
-			"Javadoc: Missing tag for parameter str\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 6)\n" + 
-			"	public int foo(String str) throws IllegalArgumentException { return 0; }\n" + 
-			"	                                  ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing tag for declared exception IllegalArgumentException\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 49260.
-	 * When this bug happened, compiler wrongly complained on Invalid parameters declaration
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49260">49260</a>
-	 */
-	public void testBug49260() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n" + 
-					"public final class X {\n" + 
-					"	int bar(String str, int var, Vector list, char[] array) throws IllegalAccessException { return 0; }\n" + 
-					"	/**\n" + 
-					"	 * Valid method reference on several lines\n" + 
-					"	 * @see #bar(String str,\n" + 
-					"	 * 		int var,\n" + 
-					"	 * 		Vector list,\n" + 
-					"	 * 		char[] array)\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n" });
-	}
-
-	/**
-	 * Bug 48385.
-	 * When this bug happened, compiler does not complain on CharOperation references in @link tags
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48385">48385</a>
-	 */
-	public void testBug48385() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n" + 
-					"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Method outside javaDoc Comment\n" + 
-					"	 *  1) {@link String} tag description not empty\n" + 
-					"	 *  2) {@link CharOperation Label not empty} tag description not empty\n" + 
-					"	 * @param str\n" + 
-					"	 * @param var tag description not empty\n" + 
-					"	 * @param list third param with embedded tag: {@link Vector}\n" + 
-					"	 * @param array fourth param with several embedded tags on several lines:\n" + 
-					"	 *  1) {@link String} tag description not empty\n" + 
-					"	 *  2) {@linkplain CharOperation Label not empty} tag description not empty\n" + 
-					"	 * @throws IllegalAccessException\n" + 
-					"	 * @throws NullPointerException tag description not empty\n" + 
-					"	 * @return an integer\n" + 
-					"	 * @see String\n" + 
-					"	 * @see Vector tag description not empty\n" + 
-					"	 * @see Object tag description includes embedded tags and several lines:\n" + 
-					"	 *  1) {@link String} tag description not empty\n" + 
-					"	 *  2) {@link CharOperation Label not empty} tag description not empty\n" + 
-					"	 */\n" + 
-					"	int foo(String str, int var, Vector list, char[] array) throws IllegalAccessException { return 0; }\n" + 
-					"}\n"},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 6)\n" + 
-				"	*  2) {@link CharOperation Label not empty} tag description not empty\n" + 
-				"	             ^^^^^^^^^^^^^\n" + 
-				"Javadoc: CharOperation cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 12)\n" + 
-				"	*  2) {@linkplain CharOperation Label not empty} tag description not empty\n" + 
-				"	                  ^^^^^^^^^^^^^\n" + 
-				"Javadoc: CharOperation cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 20)\n" + 
-				"	*  2) {@link CharOperation Label not empty} tag description not empty\n" + 
-				"	             ^^^^^^^^^^^^^\n" + 
-				"Javadoc: CharOperation cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	public void testBug48385And49620() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n" + 
-					"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Method outside javaDoc Comment\n" + 
-					"	 *  1) {@link\n" + 
-					"	 * 				String} tag description not empty\n" + 
-					"	 *  2) {@link\n" + 
-					"	 * 				CharOperation Label not empty} tag description not empty\n" + 
-					"	 * @param\n" + 
-					"	 * 				str\n" + 
-					"	 * @param\n" + 
-					"	 * 				var tag description not empty\n" + 
-					"	 * @param list third param with embedded tag: {@link\n" + 
-					"	 * 				Vector} but also on several lines: {@link\n" + 
-					"	 * 				CharOperation}\n" + 
-					"	 * @param array fourth param with several embedded tags on several lines:\n" + 
-					"	 *  1) {@link String} tag description not empty\n" + 
-					"	 *  2) {@link CharOperation Label not empty} tag description not empty\n" + 
-					"	 * @throws\n" + 
-					"	 * 					IllegalAccessException\n" + 
-					"	 * @throws\n" + 
-					"	 * 					NullPointerException tag description not empty\n" + 
-					"	 * @return\n" + 
-					"	 * 					an integer\n" + 
-					"	 * @see\n" + 
-					"	 * 			String\n" + 
-					"	 * @see\n" + 
-					"	 * 		Vector\n" + 
-					"	 * 		tag description not empty\n" + 
-					"	 * @see Object tag description includes embedded tags and several lines:\n" + 
-					"	 *  1) {@link String} tag description not empty\n" + 
-					"	 *  2) {@link CharOperation Label not empty} tag description not empty\n" + 
-					"	 */\n" + 
-					"	int foo(String str, int var, Vector list, char[] array) throws IllegalAccessException { return 0; }\n" + 
-					"}\n"},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 8)\n" + 
-				"	* 				CharOperation Label not empty} tag description not empty\n" + 
-				"	  				^^^^^^^^^^^^^\n" + 
-				"Javadoc: CharOperation cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 15)\n" + 
-				"	* 				CharOperation}\n" + 
-				"	  				^^^^^^^^^^^^^\n" + 
-				"Javadoc: CharOperation cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 18)\n" + 
-				"	*  2) {@link CharOperation Label not empty} tag description not empty\n" + 
-				"	             ^^^^^^^^^^^^^\n" + 
-				"Javadoc: CharOperation cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 32)\n" + 
-				"	*  2) {@link CharOperation Label not empty} tag description not empty\n" + 
-				"	             ^^^^^^^^^^^^^\n" + 
-				"Javadoc: CharOperation cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug48385a() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Method outside javaDoc Comment\n" + 
-					"	 *  1) {@link } Missing reference\n" + 
-					"	 *  2) {@link Unknown} Cannot be resolved\n" + 
-					"	 *  3) {@link *} Missing reference\n" + 
-					"	 *  4) {@link #} Invalid reference\n" + 
-					"	 *  5) {@link String } } Valid reference\n" + 
-					"	 *  6) {@link String {} Invalid tag\n" + 
-					"	 * @return int\n" + 
-					"	 */\n" + 
-					"	int foo() {return 0;}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	*  1) {@link } Missing reference\n" + 
-				"	        ^^^^\n" + 
-				"Javadoc: Missing reference\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	*  2) {@link Unknown} Cannot be resolved\n" + 
-				"	             ^^^^^^^\n" + 
-				"Javadoc: Unknown cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	*  3) {@link *} Missing reference\n" + 
-				"	        ^^^^\n" + 
-				"Javadoc: Missing reference\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	*  4) {@link #} Invalid reference\n" + 
-				"	             ^\n" + 
-				"Javadoc: Invalid reference\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 9)\n" + 
-				"	*  6) {@link String {} Invalid tag\n" + 
-				"	      ^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Missing closing brace for inline tag\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 49491.
-	 * When this bug happened, compiler complained on duplicated throws tag
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49491">49491</a>
-	 */
-	public void testBug49491() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public final class X {\n" + 
-					"	/**\n" + 
-					"	 * Now valid duplicated throws tag\n" + 
-					"	 * @throws IllegalArgumentException First comment\n" + 
-					"	 * @throws IllegalArgumentException Second comment\n" + 
-					"	 * @throws IllegalArgumentException Last comment\n" + 
-					"	 */\n" + 
-					"	void foo() throws IllegalArgumentException {}\n" + 
-					"}\n" });
-	}
-	public void testBug49491a() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public final class X {\n" + 
-					"	/**\n" + 
-					"	 * Duplicated param tags should be still flagged\n" + 
-					"	 * @param str First comment\n" + 
-					"	 * @param str Second comment\n" + 
-					"	 * @param str Last comment\n" + 
-					"	 */\n" + 
-					"	void foo(String str) {}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param str Second comment\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Duplicate tag for parameter\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param str Last comment\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Duplicate tag for parameter\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 48376.
-	 * When this bug happened, compiler complained on duplicated throws tag
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48376">48376</a>
-	 */
-	public void testBug48376() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\">IBM Home Page</a>\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\">\n" + 
-					"	*          IBM Home Page</a>\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\">\n" + 
-					"	*          IBM Home Page\n" + 
-					"	* 			</a>\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\">\n" + 
-					"	*\n" + 
-					"	*          IBM\n" + 
-					"	*\n" + 
-					"	*          Home Page\n" + 
-					"	*\n" + 
-					"	*\n" + 
-					"	* 			</a>\n" + 
-					"	* @see Object\n" + 
-					"	*/\n" + 
-					"public class X {\n" + 
-					"}\n"
-		 });
-	}
-	public void testBug48376a() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\">IBM Home Page\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\">\n" + 
-					"	*          IBM Home Page\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\">\n" + 
-					"	*          IBM Home Page<\n" + 
-					"	* 			/a>\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\">\n" + 
-					"	*\n" + 
-					"	*          IBM\n" + 
-					"	*\n" + 
-					"	*          Home Page\n" + 
-					"	*\n" + 
-					"	*\n" + 
-					"	* 			\n" + 
-					"	* @see Unknown\n" + 
-					"	*/\n" + 
-					"public class X {\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	* @see <a href=\"http:/www.ibm.com\">IBM Home Page\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 3)\n" + 
-				"	* @see <a href=\"http:/www.ibm.com\">\n" + 
-				"	*          IBM Home Page\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	*          IBM Home Page<\n" + 
-				"	                        ^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @see <a href=\"http:/www.ibm.com\">\n" + 
-				"	*\n" + 
-				"	*          IBM\n" + 
-				"	*\n" + 
-				"	*          Home Page\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 16)\n" + 
-				"	* @see Unknown\n" + 
-				"	       ^^^^^^^\n" + 
-				"Javadoc: Unknown cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 50644.
-	 * When this bug happened, compiler complained on duplicated throws tag
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50644">50644</a>
-	 */
-	public void testBug50644() {
-		reportInvalidJavadoc = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"p1/X.java",
-				"package p1;\n" + 
-					"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Should not be @deprecated\n" + 
-					"	 */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"p2/Y.java",
-				"package p2;\n" + 
-					"import p1.X;\n" + 
-					"public class Y {\n" + 
-					"	public void foo() {\n" + 
-					"		X x = new X();\n" + 
-					"		x.foo();\n" + 
-					"	}\n" + 
-					"}\n"
-		 });
-	}
-
-	/**
-	 * Bug 50695.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=50695">50695</a>
-	 */
-	public void testBug50695() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * @see java\n" + 
-					"	 * @see java.util\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-		 });
-	}
-	public void testBug50695b() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * @see java.unknown\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-			 },
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @see java.unknown\n" + 
-				"	       ^^^^^^^^^^^^\n" + 
-				"Javadoc: java.unknown cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 51626.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51626">51626</a>
-	 */
-	public void testBug51626() {
-		runConformTest(
-			new String[] {
-				"p1/X.java",
-				"package p1;\n" + 
-					"public class X {\n" + 
-					"	/**\n" + 
-					"	 * @see String\n" + 
-					"	 * toto @deprecated\n" + 
-					"	 */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"p2/Y.java",
-				"package p2;\n" + 
-					"import p1.*;\n" + 
-					"public class Y {\n" + 
-					"	void foo() {\n" + 
-					"		X x = new X(); \n" + 
-					"		x.foo();\n" + 
-					"	}\n" + 
-					"}\n"
-		 });
-	}
-
-	/**
-	 * Bug 52216.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52216">52216</a>
-	 */
-	public void testBug52216() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-					" * Valid ref with white spaces at the end\n" + 
-					"* @see <a href=\"http://www.ietf.org/rfc/rfc2045.txt\">RFC 2045 - Section 6.8</a>		   \n" + 
-					"*/\n" + 
-					"public class X {\n" + 
-					"}\n"
-		 });
-	}
-	public void testBug52216a() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-					"* @see \"Valid ref with white spaces at the end\"	   \n" + 
-					"*/\n" + 
-					"public class X {\n" + 
-					"}\n"
-		 });
-	}
-	public void testBug52216b() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-					"* @see <a href=\"http://www.ietf.org/rfc/rfc2045.txt\">RFC 2045 - Section 6.8</a>		   \n" + 
-					"* @see <a href=\"http://www.ietf.org/rfc/rfc2045.txt\">RFC 2045 - Section 6.8</a>\n" + 
-					"* @see <a href=\"http://www.ietf.org/rfc/rfc2045.txt\">RFC 2045 - Section 6.8</a>			,\n" + 
-					"* @see \"Valid ref with white spaces at the end\"\n" + 
-					"* @see \"Valid ref with white spaces at the end\"	   \n" + 
-					"* @see \"Invalid ref\"	   .\n" + 
-					"*/\n" + 
-					"public class X {\n" + 
-					"}\n"
-			 },
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @see <a href=\"http://www.ietf.org/rfc/rfc2045.txt\">RFC 2045 - Section 6.8</a>			,\n" + 
-				"	                                                                            ^^^^^^^\n" + 
-				"Javadoc: Unexpected text\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\n" + 
-				"	* @see \"Invalid ref\"	   .\n" + 
-				"	                    ^^^^^\n" + 
-				"Javadoc: Unexpected text\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 51529.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51529">51529</a>
-	 */
-	public void testBug51529() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n" + 
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @see Vector\n" + 
-				"	 */\n" + 
-				"	void foo() {}\n" + 
-				"}\n"
-		 });
-	}
-	public void testBug51529a() {
-		reportInvalidJavadoc = CompilerOptions.IGNORE;
-		reportMissingJavadocComments = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n" + 
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @see Vector\n" + 
-				"	 */\n" + 
-				"	void foo() {}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug51529b() {
-		docCommentSupport = CompilerOptions.DISABLED;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n" + 
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @see Vector\n" + 
-				"	 */\n" + 
-				"	void foo() {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 1)\n" + 
-				"	import java.util.Vector;\n" + 
-				"	       ^^^^^^^^^^^^^^^^\n" + 
-				"The import java.util.Vector is never used\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 51911.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51911">51911</a>
-	 */
-	public void testBug51911() {
-		// Warn an ambiguous method reference
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" +
-					" * @see #foo\n" +
-					" */\n" +
-					"public class X {\n" +
-					"	public void foo(int i, float f) {}\n" +
-					"	public void foo(String str) {}\n" +
-					"}\n"
-		 	},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	* @see #foo\n" + 
-				"	        ^^^\n" + 
-				"Javadoc: foo is an ambiguous method reference or is not a field\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug51911a() {
-		// Accept unambiguous method reference
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/**\n" +
-					" * @see #foo\n" +
-					" */\n" +
-					"public class X {\n" +
-					"	public void foo(String str) {}\n" +
-					"}\n"
-		 	}
-		);
-	}
-	public void testBug51911b() {
-		// Accept field reference with method name
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/**\n" +
-					" * @see #foo\n" +
-					" */\n" +
-					"public class X {\n" +
-					"	public int foo;\n" +
-					"	public void foo(String str) {}\n" +
-					"}\n"
-		 	}
-		);
-	}
-	public void testBug51911c() {
-		// Accept field reference with ambiguous method name
-		runConformTest(
-			new String[] {
-				"X.java",
-					"/**\n" +
-					" * @see #foo\n" +
-					" */\n" +
-					"public class X {\n" +
-					"	public int foo;\n" +
-					"	public void foo() {}\n" +
-					"	public void foo(String str) {}\n" +
-					"}\n"
-		 	}
-		);
-	}
-
-	/**
-	 * Bug 53279: [Javadoc] Compiler should complain when inline tag is not terminated
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53279">53279</a>
-	 */
-	public void testBug53279() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Unterminated inline tags\n" + 
-					"	 *  {@link Object\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	*  {@link Object\n" + 
-				"	   ^^^^^^^^^^^^^\n" + 
-				"Javadoc: Missing closing brace for inline tag\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug53279a() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Unterminated inline tags\n" + 
-					"	 *  {@link Object\n" + 
-					"	 * @return int\n" + 
-					"	 */\n" + 
-					"	int foo() {return 0;}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	*  {@link Object\n" + 
-				"	   ^^^^^^^^^^^^^\n" + 
-				"Javadoc: Missing closing brace for inline tag\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug53279b() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Unterminated inline tags\n" + 
-					"	 *  {@link        \n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	*  {@link        \n" + 
-				"	   ^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Missing closing brace for inline tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	*  {@link        \n" + 
-				"	     ^^^^\n" + 
-				"Javadoc: Missing reference\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug53279c() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Unterminated inline tags\n" + 
-					"	 *  {@link\n" + 
-					"	 * @return int\n" + 
-					"	 */\n" + 
-					"	int foo() {return 0;}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	*  {@link\n" + 
-				"	   ^^^^^^\n" + 
-				"Javadoc: Missing closing brace for inline tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	*  {@link\n" + 
-				"	     ^^^^\n" + 
-				"Javadoc: Missing reference\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 53290: [Javadoc] Compiler should complain when tag name is not correct
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53290">53290</a>
-	 */
-	public void testBug53290() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * See as inline tag\n" + 
-					"	 *  {@see Object}\n" + 
-					"	 *  @see Object\n" + 
-					"	 *  @link Object\n" + 
-					"	 *  {@link Object}\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	*  {@see Object}\n" + 
-				"	     ^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	*  @link Object\n" + 
-				"	    ^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 62812: Some malformed javadoc tags are not reported as malformed
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=62812">62812</a>
-	 */
-	public void testBug62812() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-					" * @see Object#clone())\n" + 
-					" * @see Object#equals(Object)}\n" + 
-					" * @see Object#equals(Object))\n" + 
-					" * @see Object#equals(Object)xx\n" + 
-					" */\n" + 
-					"public class Test {\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in Test.java (at line 2)\n" + 
-				"	* @see Object#clone())\n" + 
-				"	                   ^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"2. ERROR in Test.java (at line 3)\n" + 
-				"	* @see Object#equals(Object)}\n" + 
-				"	                    ^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"3. ERROR in Test.java (at line 4)\n" + 
-				"	* @see Object#equals(Object))\n" + 
-				"	                    ^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"4. ERROR in Test.java (at line 5)\n" + 
-				"	* @see Object#equals(Object)xx\n" + 
-				"	                    ^^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug62812a() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-					" * {@link Object#clone())}\n" + 
-					" * {@link Object#equals(Object)}\n" + 
-					" * {@link Object#equals(Object))}\n" + 
-					" * {@link Object#equals(Object)xx}\n" + 
-					" */\n" + 
-					"public class Test {\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in Test.java (at line 2)\n" + 
-				"	* {@link Object#clone())}\n" + 
-				"	                     ^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"2. ERROR in Test.java (at line 4)\n" + 
-				"	* {@link Object#equals(Object))}\n" + 
-				"	                      ^^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"3. ERROR in Test.java (at line 5)\n" + 
-				"	* {@link Object#equals(Object)xx}\n" + 
-				"	                      ^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 51606: [Javadoc] Compiler should complain when tag name is not correct
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51606">51606</a>
-	 */
-	public void testBug51606() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"  /**\n" + 
-					"   * @param a aaa\n" + 
-					"   * @param b bbb\n" + 
-					"   */\n" + 
-					"  public void foo(int a, int b) {\n" + 
-					"  }\n" + 
-					"}\n",
-				"Y.java",
-				"public class Y extends X {\n" + 
-					"  /**\n" + 
-					"  *  @param a {@inheritDoc}\n" + 
-					"   */\n" + 
-					"  public void foo(int a, int b) {\n" + 
-					"  }\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in Y.java (at line 5)\n" + 
-				"	public void foo(int a, int b) {\n" + 
-				"	                           ^\n" + 
-				"Javadoc: Missing tag for parameter b\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug51606a() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"  /**\n" + 
-					"   * @param a aaa\n" + 
-					"   * @param b bbb\n" + 
-					"   */\n" + 
-					"  public void foo(int a, int b) {\n" + 
-					"  }\n" + 
-					"}\n",
-				"Y.java",
-				"public class Y extends X {\n" + 
-					"  /**\n" + 
-					"   * {@inheritDoc}\n" + 
-					"  *  @param a aaaaa\n" + 
-					"   */\n" + 
-					"  public void foo(int a, int b) {\n" + 
-					"  }\n" + 
-					"}\n"
-			},
-			""
-		);
-	}
-	public void testBug51606b() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"  /**\n" + 
-					"   * @param a aaa\n" + 
-					"   * @param b bbb\n" + 
-					"   */\n" + 
-					"  public void foo(int a, int b) {\n" + 
-					"  }\n" + 
-					"}\n",
-				"Y.java",
-				"public class Y extends X {\n" + 
-					"  /**\n" + 
-					"   * Text before inherit tag\n" + 
-					"   * {@inheritDoc}\n" + 
-					"  *  @param a aaaaa\n" + 
-					"   */\n" + 
-					"  public void foo(int a, int b) {\n" + 
-					"  }\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug51606c() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"  /**\n" + 
-					"   * @param a aaa\n" + 
-					"   * @param b bbb\n" + 
-					"   */\n" + 
-					"  public void foo(int a, int b) {\n" + 
-					"  }\n" + 
-					"}\n",
-				"Y.java",
-				"public class Y extends X {\n" + 
-					"  /**\n" + 
-					"   * Text before inherit tag {@inheritDoc}\n" + 
-					"  *  @param a aaaaa\n" + 
-					"   */\n" + 
-					"  public void foo(int a, int b) {\n" + 
-					"  }\n" + 
-					"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 65174: Spurious "Javadoc: Missing reference" error
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=65174">65174</a>
-	 */
-	public void testBug65174() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-					" * Comment with no error: {@link\n" + 
-					" * Object valid} because it\'s not on first line\n" + 
-					" */\n" + 
-					"public class Test {\n" + 
-					"	/** Comment previously with error: {@link\n" + 
-					"	 * Object valid} because tag is on comment very first line\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug65174a() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-					" * Comment with no error: {@link    		\n" + 
-					" * Object valid} because it\'s not on first line\n" + 
-					" */\n" + 
-					"public class Test {\n" + 
-					"	/** Comment previously with error: {@link   		\n" + 
-					"	 * Object valid} because tag is on comment very first line\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug65174b() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-					" * Comment with no error: {@link java.lang.\n" + 
-					" * Object valid} because it\'s not on first line\n" + 
-					" */\n" + 
-					"public class Test {\n" + 
-					"	/** Comment previously with error: {@link java.lang.\n" + 
-					"	 * Object valid} because tag is on comment very first line\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug65174c() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-					" * Comment with no error: {@link Object\n" + 
-					" * valid} because it\'s not on first line\n" + 
-					" */\n" + 
-					"public class Test {\n" + 
-					"	/** Comment previously with no error: {@link Object\n" + 
-					"	 * valid} because tag is on comment very first line\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug65174d() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"	/** Comment previously with no error: {@link Object valid} comment on one line */\n" + 
-					"	void foo1() {}\n" + 
-					"	/** Comment previously with no error: {@link Object valid}       */\n" + 
-					"	void foo2() {}\n" + 
-					"	/** Comment previously with no error: {@link Object valid}*/\n" + 
-					"	void foo3() {}\n" + 
-					"	/**                    {@link Object valid} comment on one line */\n" + 
-					"	void foo4() {}\n" + 
-					"	/**{@link Object valid} comment on one line */\n" + 
-					"	void foo5() {}\n" + 
-					"	/**       {@link Object valid} 				*/\n" + 
-					"	void foo6() {}\n" + 
-					"	/**{@link Object valid} 				*/\n" + 
-					"	void foo7() {}\n" + 
-					"	/**				{@link Object valid}*/\n" + 
-					"	void foo8() {}\n" + 
-					"	/**{@link Object valid}*/\n" + 
-					"	void foo9() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 65180: Spurious "Javadoc: xxx cannot be resolved or is not a field" error with inner classes
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=65180">65180</a>
-	 */
-	public void testBug65180() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"	public class Inner {\n" + 
-					"		/**\n" + 
-					"		 * Does something.\n" + 
-					"		 * \n" + 
-					"		 * @see #testFunc\n" + 
-					"		 */\n" + 
-					"		public void innerFunc() {\n" + 
-					"			testFunc();\n" + 
-					"		}\n" + 
-					"	}\n" + 
-					"	\n" + 
-					"	public void testFunc() {}\n" + 
-					"}\n" + 
-					"\n"
-			},
-			"----------\n" + 
-				"1. ERROR in Test.java (at line 6)\r\n" + 
-				"	* @see #testFunc\r\n" + 
-				"	        ^^^^^^^^\n" + 
-				"Javadoc: testFunc cannot be resolved or is not a field\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug65180a() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"	public class Inner {\n" + 
-					"		/**\n" + 
-					"		 * Does something.\n" + 
-					"		 * \n" + 
-					"		 * @see #testFunc()\n" + 
-					"		 */\n" + 
-					"		public void innerFunc() {\n" + 
-					"			testFunc();\n" + 
-					"		}\n" + 
-					"	}\n" + 
-					"	\n" + 
-					"	public void testFunc() {}\n" + 
-					"}\n" + 
-					"\n"
-			}
-		);
-	}
-	public void testBug65180b() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"	public class Inner {\n" + 
-					"		/**\n" + 
-					"		 * Does something.\n" + 
-					"		 * \n" + 
-					"		 * @see Test#testFunc\n" + 
-					"		 * @see Test#testFunc()\n" + 
-					"		 */\n" + 
-					"		public void innerFunc() {\n" + 
-					"			testFunc();\n" + 
-					"		}\n" + 
-					"	}\n" + 
-					"	\n" + 
-					"	public void testFunc() {}\n" + 
-					"}\n" + 
-					"\n"
-			}
-		);
-	}
-	public void testBug65180c() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"	public class Inner {\n" + 
-					"		/**\n" + 
-					"		 * Does something.\n" + 
-					"		 * \n" + 
-					"		 * @see #testFunc\n" + 
-					"		 */\n" + 
-					"		public void innerFunc() {\n" + 
-					"			testFunc();\n" + 
-					"		}\n" + 
-					"	}\n" + 
-					"	\n" + 
-					"	public void testFunc() {}\n" + 
-					"	public void testFunc(String str) {}\n" + 
-					"}\n" + 
-					"\n"
-			},
-			"----------\n" + 
-				"1. ERROR in Test.java (at line 6)\n" + 
-				"	* @see #testFunc\n" + 
-				"	        ^^^^^^^^\n" + 
-				"Javadoc: testFunc cannot be resolved or is not a field\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug65180d() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"	int testField;\n" + 
-					"	public class Inner {\n" + 
-					"		/**\n" + 
-					"		 * Does something.\n" + 
-					"		 * \n" + 
-					"		 * @see #testField\n" + 
-					"		 * @see #testFunc(int)\n" + 
-					"		 */\n" + 
-					"		public void innerFunc() {\n" + 
-					"			testFunc(testField);\n" + 
-					"		}\n" + 
-					"	}\n" + 
-					"	\n" + 
-					"	public void testFunc(int test) {\n" + 
-					"		testField = test; \n" + 
-					"	}\n" + 
-					"}\n" + 
-					"\n"
-			}
-		);
-	}
-	public void testBug65180e() {
-		runConformTest(
-			new String[] {
-				"ITest.java",
-				"public interface ITest {\n" + 
-					"	/**\n" + 
-					"	 * @see #foo() \n" + 
-					"	 */\n" + 
-					"	public static int field = 0;\n" + 
-					"	/**\n" + 
-					"	 * @see #field\n" + 
-					"	 */\n" + 
-					"	public void foo();\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug65180f() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"    static class SuperInner {\n" + 
-					"    	public int field;\n" + 
-					"        public void foo() {}\n" + 
-					"     }\n" + 
-					"    \n" + 
-					"	public static class Inner extends SuperInner {\n" + 
-					"		/**\n" + 
-					"		 * @see #field\n" + 
-					"		 */\n" + 
-					"		public static int f;\n" + 
-					"		/**\n" + 
-					"		 * @see #foo()\n" + 
-					"		 */\n" + 
-					"		public static void bar() {}\n" + 
-					"	}\n" + 
-					"	\n" + 
-					"	public void foo() {}\n" + 
-					"}"
-			}
-		);
-	}
-
-	/**
-	 * Bug 65253: [Javadoc] @@tag is wrongly parsed as @tag
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=65253">65253</a>
-	 */
-	public void testBug65253() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-					" * Comment \n" + 
-					" * @@@@see Unknown Should not complain on ref\n" + 
-					" */\n" + 
-					"public class Test {\n" + 
-					"	/**\n" + 
-					"	 * Comment\n" + 
-					"	 * @@@param xxx Should not complain on param\n" + 
-					"	 * @@return int\n" + 
-					"	 */\n" + 
-					"	int foo() { // should warn on missing tag for return type\n" + 
-					"		return 0;\n" + 
-					"	}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 3)\n" + 
-			"	* @@@@see Unknown Should not complain on ref\n" + 
-			"	   ^^^^^^\n" + 
-			"Javadoc: Invalid tag\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 8)\n" + 
-			"	* @@@param xxx Should not complain on param\n" + 
-			"	   ^^^^^^^\n" + 
-			"Javadoc: Invalid tag\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 9)\n" + 
-			"	* @@return int\n" + 
-			"	   ^^^^^^^\n" + 
-			"Javadoc: Invalid tag\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 11)\n" + 
-			"	int foo() { // should warn on missing tag for return type\n" + 
-			"	^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 66551: Error in org.eclipse.swt project on class PrinterData
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=66551">66551</a>
-	 */
-	public void testBug66551() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"    int field;\n" + 
-					"    /**\n" + 
-					"     *  @see #field\n" + 
-					"     */\n" + 
-					"    void foo(int field) {\n" + 
-					"    }\n" + 
-					"\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug66551a() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"    static int field;\n" + 
-					"    /**\n" + 
-					"     *  @see #field\n" + 
-					"     */\n" + 
-					"    static void foo(int field) {\n" + 
-					"    }\n" + 
-					"\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug66551b() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"	int field;\n" + 
-					"	/**\n" + 
-					"	 * {@link #field}\n" + 
-					"	 */\n" + 
-					"	void foo(int field) {\n" + 
-					"	}\n" + 
-					"\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug66551c() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"	static int field;\n" + 
-					"	/**\n" + 
-					"	 * {@link #field}\n" + 
-					"	 */\n" + 
-					"	static void foo(int field) {\n" + 
-					"	}\n" + 
-					"\n" + 
-					"}\n"
-			}
-		);
-	}	
-
-	/**
-	 * Bug 66573: Shouldn't bind to local constructs
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=66573">66573</a>
-	 */
-	public void testBug66573() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"    /**\n" + 
-					"     * @see Local\n" + 
-					"     */\n" + 
-					"    void foo() {\n" + 
-					"        class Local { \n" + 
-					"            // shouldn\'t be seen from javadoc\n" + 
-					"         }\n" + 
-					"    }\n" + 
-					"}\n"	
-			},
-			"----------\n" + 
-				"1. ERROR in Test.java (at line 3)\n" + 
-				"	* @see Local\n" + 
-				"	       ^^^^^\n" + 
-				"Javadoc: Local cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 68017: Javadoc processing does not detect missing argument to @return
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68017">68017</a>
-	 */
-	public void testBug68017conform() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@return valid integer*/\n" + 
-					"	public int foo1() {return 0; }\n" + 
-					"	/**\n" + 
-					"	 *	@return #\n" + 
-					"	 */\n" + 
-					"	public int foo2() {return 0; }\n" + 
-					"}\n",
-			}
-		);
-	}
-	public void testBug68017negative() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@return*/\n" + 
-					"	public int foo1() {return 0; }\n" + 
-					"	/**@return        */\n" + 
-					"	public int foo2() {return 0; }\n" + 
-					"	/**@return****/\n" + 
-					"	public int foo3() {return 0; }\n" + 
-					"	/**\n" + 
-					"	 *	@return\n" + 
-					"	 */\n" + 
-					"	public int foo4() {return 0; }\n" + 
-					"}\n",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	/**@return*/\n" + 
-				"	    ^^^^^^\n" + 
-				"Javadoc: Missing return type description\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	/**@return        */\n" + 
-				"	    ^^^^^^\n" + 
-				"Javadoc: Missing return type description\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	/**@return****/\n" + 
-				"	    ^^^^^^\n" + 
-				"Javadoc: Missing return type description\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 9)\n" + 
-				"	*	@return\n" + 
-				"	 	 ^^^^^^\n" + 
-				"Javadoc: Missing return type description\n" + 
-				"----------\n"
-		);
-	}
-	// Javadoc issue a warning on following tests
-	public void testBug68017javadocWarning1() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@return* */\n" + 
-					"	public int foo1() {return 0; }\n" + 
-					"	/**@return** **/\n" + 
-					"	public int foo2() {return 0; }\n" + 
-					"}\n",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	*	@return* */\n" + 
-				"	 	 ^^^^^^\n" + 
-				"Javadoc: Missing return type description\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	/**@return** **/\n" + 
-				"	    ^^^^^^\n" + 
-				"Javadoc: Missing return type description\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug68017javadocWarning2() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 *	@return #\n" + 
-				"	 */\n" + 
-				"	public int foo1() {return 0; }\n" + 
-				"	/**\n" + 
-				"	 *	@return @\n" + 
-				"	 */\n" + 
-				"	public int foo2() {return 0; }\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug68017javadocWarning3() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@return#\n" + 
-					"	 *	@return#text\n" + 
-					"	 */\n" + 
-					"	public int foo() {return 0; }\n" + 
-					"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	*	@return#\n" + 
-			"	 	 ^^^^^^^\n" + 
-			"Javadoc: Invalid tag\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	*	@return#text\n" + 
-			"	 	 ^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid tag\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 68025: Javadoc processing does not detect some wrong links
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68025">68025</a>
-	 */
-	public void testBug68025conform() {
-		runConformTest(
-			new String[] {
-				"Y.java",
-				"public class Y {\n" + 
-					"	public int field;\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"Z.java",
-				"public class Z {\n" + 
-					"	/**\n" + 
-					"	 *	@see Y#field #valid\n" + 
-					"	 *	@see Y#foo #valid\n" + 
-					"	 */\n" + 
-					"	public void foo1() {}\n" + 
-					"	/**@see Y#field     # valid*/\n" + 
-					"	public void foo2() {}\n" + 
-					"	/**@see Y#foo		# valid*/\n" + 
-					"	public void foo3() {}\n" + 
-					"	/**@see Y#foo()\n" + 
-					"	 *# valid*/\n" + 
-					"	public void foo4() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug68025negative() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	public int field;\n" + 
-					"	public void foo() {}\n" + 
-					"	/**\n" + 
-					"	 *	@see #field#invalid\n" + 
-					"	 *	@see #foo#invalid\n" + 
-					"	 */\n" + 
-					"	public void foo1() {}\n" + 
-					"	/**@see Y#field# invalid*/\n" + 
-					"	public void foo2() {}\n" + 
-					"	/**@see Y#foo#	invalid*/\n" + 
-					"	public void foo3() {}\n" + 
-					"	/**@see Y#foo()#\n" + 
-					"	 *valid*/\n" + 
-					"	public void foo4() {}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	*	@see #field#invalid\n" + 
-				"	 	     ^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	*	@see #foo#invalid\n" + 
-				"	 	     ^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 9)\n" + 
-				"	/**@see Y#field# invalid*/\n" + 
-				"	         ^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 11)\n" + 
-				"	/**@see Y#foo#	invalid*/\n" + 
-				"	         ^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 13)\n" + 
-				"	/**@see Y#foo()#\n" + 
-				"	             ^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 68726: [Javadoc] Target attribute in @see link triggers warning
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68726">68726</a>
-	 */
-	public void testBug68726conform1() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@see Object <a href=\"http://www.eclipse.org\" target=\"_top\">Eclipse</a>\n" + 
-					"	 */\n" + 
-					"	void foo1() {}\n" + 
-					"	/**@see Object <a href=\"http://www.eclipse.org\" target=\"_top\" target1=\"_top1\" target2=\"_top2\">Eclipse</a>*/\n" + 
-					"	void foo2() {}\n" + 
-					"}\n"	
-			}
-		);
-	}
-	public void testBug68726conform2() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">IBM Home Page</a>\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">\n" + 
-					"	*          IBM Home Page</a>\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">\n" + 
-					"	*          IBM Home Page\n" + 
-					"	* 			</a>\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">\n" + 
-					"	*\n" + 
-					"	*          IBM\n" + 
-					"	*\n" + 
-					"	*          Home Page\n" + 
-					"	*\n" + 
-					"	*\n" + 
-					"	* 			</a>\n" + 
-					"	* @see Object\n" + 
-					"	*/\n" + 
-					"public class X {\n" + 
-					"}\n"	
-			}
-		);
-	}
-	public void testBug68726negative1() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Invalid URL link references\n" + 
-					"	 *\n" + 
-					"	 * @see <a href=\"invalid\" target\n" + 
-					"	 * @see <a href=\"invalid\" target=\n" + 
-					"	 * @see <a href=\"invalid\" target=\"\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\"\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\">\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\">\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\">invalid\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\">invalid<\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\">invalid</\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\">invalid</a\n" + 
-					"	 * @see <a href=\"invalid\" target=\"_top\">invalid</a> no text allowed after the href\n" + 
-					"	 */\n" + 
-					"	void foo() {}\n" + 
-					"}\n"	
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @see <a href=\"invalid\" target\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @see <a href=\"invalid\" target=\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* @see <a href=\"invalid\" target=\"\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 9)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\"\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 10)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\">\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"7. ERROR in X.java (at line 11)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\">\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"8. ERROR in X.java (at line 12)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\">invalid\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"9. ERROR in X.java (at line 13)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\">invalid<\n" + 
-				"	                                              ^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"10. ERROR in X.java (at line 14)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\">invalid</\n" + 
-				"	                                              ^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"11. ERROR in X.java (at line 15)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\">invalid</a\n" + 
-				"	                                              ^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"12. ERROR in X.java (at line 16)\n" + 
-				"	* @see <a href=\"invalid\" target=\"_top\">invalid</a> no text allowed after the href\n" + 
-				"	                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Unexpected text\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug68726negative2() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">IBM Home Page\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">\n" + 
-					"	*          IBM Home Page\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">\n" + 
-					"	*          IBM Home Page<\n" + 
-					"	* 			/a>\n" + 
-					"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">\n" + 
-					"	*\n" + 
-					"	*          IBM\n" + 
-					"	*\n" + 
-					"	*          Home Page\n" + 
-					"	*\n" + 
-					"	*\n" + 
-					"	* 			\n" + 
-					"	* @see Unknown\n" + 
-					"	*/\n" + 
-					"public class X {\n" + 
-					"}\n"	
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">IBM Home Page\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 3)\n" + 
-				"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">\n" + 
-				"	*          IBM Home Page\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	*          IBM Home Page<\n" + 
-				"	                        ^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @see <a href=\"http:/www.ibm.com\" target=\"_top\">\n" + 
-				"	*\n" + 
-				"	*          IBM\n" + 
-				"	*\n" + 
-				"	*          Home Page\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 16)\n" + 
-				"	* @see Unknown\n" + 
-				"	       ^^^^^^^\n" + 
-				"Javadoc: Unknown cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 69272: [Javadoc] Invalid malformed reference (missing separator)
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69272">69272</a>
-	 */
-	public void testBug69272classValid() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@see Object*/\n" + 
-					"	public void foo1() {}\n" + 
-					"	/**@see Object\n" + 
-					"	*/\n" + 
-					"	public void foo2() {}\n" + 
-					"	/**@see Object    */\n" + 
-					"	public void foo3() {}\n" + 
-					"	/**@see Object****/\n" + 
-					"	public void foo4() {}\n" + 
-					"	/**@see Object		****/\n" + 
-					"	public void foo5() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug69272classInvalid() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@see Object* */\n" + 
-					"	public void foo1() {}\n" + 
-					"	/**@see Object*** ***/\n" + 
-					"	public void foo2() {}\n" + 
-					"	/**@see Object***\n" + 
-					"	 */\n" + 
-					"	public void foo3() {}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	/**@see Object* */\n" + 
-				"	        ^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	/**@see Object*** ***/\n" + 
-				"	        ^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	/**@see Object***\n" + 
-				"	        ^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug69272fieldValid() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	int field;\n" + 
-					"	/**@see #field*/\n" + 
-					"	public void foo1() {}\n" + 
-					"	/**@see #field\n" + 
-					"	*/\n" + 
-					"	public void foo2() {}\n" + 
-					"	/**@see #field    */\n" + 
-					"	public void foo3() {}\n" + 
-					"	/**@see #field****/\n" + 
-					"	public void foo4() {}\n" + 
-					"	/**@see #field		********/\n" + 
-					"	public void foo5() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug69272fieldInvalid() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	int field;\n" + 
-					"	/**@see #field* */\n" + 
-					"	public void foo1() {}\n" + 
-					"	/**@see #field*** ***/\n" + 
-					"	public void foo2() {}\n" + 
-					"	/**@see #field***\n" + 
-					"	 */\n" + 
-					"	public void foo3() {}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	/**@see #field* */\n" + 
-				"	        ^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	/**@see #field*** ***/\n" + 
-				"	        ^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	/**@see #field***\n" + 
-				"	        ^^^^^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug69272methodValid() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@see Object#wait()*/\n" + 
-					"	public void foo1() {}\n" + 
-					"	/**@see Object#wait()\n" + 
-					"	*/\n" + 
-					"	public void foo2() {}\n" + 
-					"	/**@see Object#wait()    */\n" + 
-					"	public void foo3() {}\n" + 
-					"	/**@see Object#wait()****/\n" + 
-					"	public void foo4() {}\n" + 
-					"	/**@see Object#wait()		****/\n" + 
-					"	public void foo5() {}\n" + 
-					"}\n"
-			}
-		);
-	}
-	public void testBug69272methodInvalid() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@see Object#wait()* */\n" + 
-					"	public void foo1() {}\n" + 
-					"	/**@see Object#wait()*** ***/\n" + 
-					"	public void foo2() {}\n" + 
-					"	/**@see Object#wait()***\n" + 
-					"	 */\n" + 
-					"	public void foo3() {}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	/**@see Object#wait()* */\n" + 
-				"	                   ^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	/**@see Object#wait()*** ***/\n" + 
-				"	                   ^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	/**@see Object#wait()***\n" + 
-				"	                   ^^^^^\n" + 
-				"Javadoc: Malformed reference (missing end space separator)\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 69275: [Javadoc] Invalid warning on @see link
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69275">69275</a>
-	 */
-	public void testBug69275conform() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@see <a href=\"http://www.eclipse.org\">text</a>*/\n" + 
-					"	void foo1() {}\n" + 
-					"	/**@see <a href=\"http://www.eclipse.org\">text</a>\n" + 
-					"	*/\n" + 
-					"	void foo2() {}\n" + 
-					"	/**@see <a href=\"http://www.eclipse.org\">text</a>		*/\n" + 
-					"	void foo3() {}\n" + 
-					"	/**@see <a href=\"http://www.eclipse.org\">text</a>**/\n" + 
-					"	void foo4() {}\n" + 
-					"	/**@see <a href=\"http://www.eclipse.org\">text</a>     *****/\n" + 
-					"	void foo5() {}\n" + 
-					"}\n"	
-			}
-		);
-	}
-	public void testBug69275negative() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@see <a href=\"http://www.eclipse.org\">text</a>* */\n" + 
-					"	void foo1() {}\n" + 
-					"	/**@see <a href=\"http://www.eclipse.org\">text</a>	** **/\n" + 
-					"	void foo2() {}\n" + 
-					"	/**@see <a href=\"http://www.eclipse.org\">text</a>**\n" + 
-					"	*/\n" + 
-					"	void foo3() {}\n" + 
-					"}\n"	
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	/**@see <a href=\"http://www.eclipse.org\">text</a>* */\n" + 
-				"	                                              ^^^^^^^\n" + 
-				"Javadoc: Unexpected text\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	/**@see <a href=\"http://www.eclipse.org\">text</a>	** **/\n" + 
-				"	                                              ^^^^^^^^^^\n" + 
-				"Javadoc: Unexpected text\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 69302: [Javadoc] Invalid reference warning inconsistent with javadoc tool
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=69302"
-	 */
-	public void testBug69302conform1() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@see Object <a href=\"http://www.eclipse.org\">Eclipse</a>\n" + 
-					"	 */\n" + 
-					"	void foo1() {}\n" + 
-					"	/**\n" + 
-					"	 *	@see Object \"Valid string reference\"\n" + 
-					"	 */\n" + 
-					"	void foo2() {}\n" + 
-					"}\n"	
-			}
-		);
-	}
-	public void testBug69302negative1() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@see Unknown <a href=\"http://www.eclipse.org\">Eclipse</a>\n" + 
-					"	 */\n" + 
-					"	void foo1() {}\n" + 
-					"	/**\n" + 
-					"	 *	@see Unknown \"Valid string reference\"\n" + 
-					"	 */\n" + 
-					"	void foo2() {}\n" + 
-					"}\n"	
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	*	@see Unknown <a href=\"http://www.eclipse.org\">Eclipse</a>\n" + 
-			"	 	     ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 7)\n" + 
-			"	*	@see Unknown \"Valid string reference\"\n" + 
-			"	 	     ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug69302negative2() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**@see Unknown blabla <a href=\"http://www.eclipse.org\">text</a>*/\n" + 
-					"	void foo1() {}\n" + 
-					"	/**@see Unknown blabla \"Valid string reference\"*/\n" + 
-					"	void foo2() {}\n" + 
-					"}\n"	
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	/**@see Unknown blabla <a href=\"http://www.eclipse.org\">text</a>*/\n" + 
-			"	        ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	/**@see Unknown blabla \"Valid string reference\"*/\n" + 
-			"	        ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * @bug 70892: [1.5][Javadoc] Compiler should parse reference for inline tag @value
-	 * @test Ensure that reference in tag 'value' is only verified when source level >= 1.5
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=70892"
-	 */
-	public void testBug70892a() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * {@value}\n" + 
-				"	 */\n" + 
-				"	static int field1;\n" + 
-				"	/**\n" + 
-				"	 * {@value }\n" + 
-				"	 */\n" + 
-				"	static int field2;\n" + 
-				"	/**\n" + 
-				"	 * {@value #field}\n" + 
-				"	 */\n" + 
-				"	static int field;\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug70892b() {
-		String[] testFiles = new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	/**\n" + 
-			"	 * {@value \"invalid\"}\n" + 
-			"	 */\n" + 
-			"	final static int field1 = 1;\n" + 
-			"	/**\n" + 
-			"	 * {@value <a href=\"invalid\">invalid</a>} invalid\n" + 
-			"	 */\n" + 
-			"	final static int field2 = 2;\n" + 
-			"	/**\n" + 
-			"	 * {@value #field}\n" + 
-			"	 */\n" + 
-			"	final static int field3 = 3;\n" + 
-			"	/**\n" + 
-			"	 * {@value #foo}\n" + 
-			"	 */\n" + 
-			"	final static int field4 = 4;\n" + 
-			"	/**\n" + 
-			"	 * {@value #foo()}\n" + 
-			"	 */\n" + 
-			"	final static int field5 = 5;\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		};
-		if (this.complianceLevel.equals(COMPLIANCE_1_3) || this.complianceLevel.equals(COMPLIANCE_1_4)) {
-			runConformTest(testFiles);
-		} else {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* {@value \"invalid\"}\r\n" + 
-				"	          ^^^^^^^^^\n" + 
-				"Javadoc: Only static field reference is allowed for @value tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\r\n" + 
-				"	* {@value <a href=\"invalid\">invalid</a>} invalid\r\n" + 
-				"	          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Only static field reference is allowed for @value tag\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 11)\r\n" + 
-				"	* {@value #field}\r\n" + 
-				"	           ^^^^^\n" + 
-				"Javadoc: field cannot be resolved or is not a field\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 15)\r\n" + 
-				"	* {@value #foo}\r\n" + 
-				"	           ^^^\n" + 
-				"Javadoc: Only static field reference is allowed for @value tag\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 19)\r\n" + 
-				"	* {@value #foo()}\r\n" + 
-				"	           ^^^^^\n" + 
-				"Javadoc: Only static field reference is allowed for @value tag\n" + 
-				"----------\n"
-			);
-		}
-	}
-
-	/**
-	 * Bug 73348: [Javadoc] Missing description for return tag is not always warned
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73348">73348</a>
-	 */
-	public void testBug73348conform() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@return      \n" + 
-					"	 *	int\n" + 
-					"	 */\n" + 
-					"	public int foo1() {return 0; }\n" + 
-					"	/**\n" + 
-					"	 *	@return      \n" + 
-					"	 *	int\n" + 
-					"	 *	@see Object\n" + 
-					"	 */\n" + 
-					"	public int foo2() {return 0; }\n" + 
-					"}\n",
-			}
-		);
-	}
-	public void testBug73348negative() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@return\n" + 
-					"	 *	@see Object\n" + 
-					"	 */\n" + 
-					"	public int foo1() {return 0; }\n" + 
-					"	/**\n" + 
-					"	 *	@return      \n" + 
-					"	 *	@see Object\n" + 
-					"	 */\n" + 
-					"	public int foo2() {return 0; }\n" + 
-					"}\n",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	*	@return\n" + 
-				"	 	 ^^^^^^\n" + 
-				"Javadoc: Missing return type description\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\n" + 
-				"	*	@return      \n" + 
-				"	 	 ^^^^^^\n" + 
-				"Javadoc: Missing return type description\n" + 
- 				"----------\n"
- 		);
- 	}
-
-	/**
-	 * Bug 73479: [Javadoc] Improve error message for invalid link in @see tags
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73479">73479</a>
-	 */
-	public void testBug73479() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@see <a href=\"spec.html#section\">Java Spec<a>\n" + 
-					"	 */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	*	@see <a href=\"spec.html#section\">Java Spec<a>\n" + 
-				"	 	                                          ^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
- 				"----------\n"
- 		);
- 	}
-
-	/**
-	 * Bug 73995: [Javadoc] Wrong warning for missing return type description for @return {@inheritdoc}
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73995">73995</a>
-	 */
-	public void testBug73995() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 *	@return {@link Object}     \n" + 
-					"	 */\n" + 
-					"	public int foo1() {return 0; }\n" + 
-					"	/** @return {@inheritedDoc} */\n" + 
-					"	public int foo2() {return 0; }\n" + 
-					"	/**\n" + 
-					"	 *	@return\n" + 
-					"	 *		{@unknown_tag}\n" + 
-					"	 */\n" + 
-					"	public int foo3() {return 0; }\n" + 
-					"}\n"
-			}
- 		);
- 	}
-
-	/**
-	 * Bug 74369: [Javadoc] incorrect javadoc in local class
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74369">74369</a>
-	 */
-	public void testBug74369() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-					"   public void method() {\n" + 
-					"       /**\n" + 
-					"        * @see #hsgdfdj\n" + 
-					"        */\n" + 
-					"        System.out.println(\"println\");\n" + 
-					"        class Local {}\n" + 
-					"    }\n" + 
-					"}"
-			}
- 		);
- 	}
-	public void testBug74369deprecated() {
-		runNegativeTest(
-			new String[] {
-				"p/Y.java",
-				"package p;\n" + 
-					"\n" + 
-					"\n" + 
-					"public class Y {\n" + 
-					"   /**\n" + 
-					"    * @deprecated\n" + 
-					"    */\n" + 
-					"   public void bar() {}\n" + 
-					"}\n",
-				"X.java",
-				"import p.Y;\n" + 
-					"\n" + 
-					"public class X {\n" + 
-					"	Object obj = new Object() {\n" + 
-					"		public boolean equals(Object o) {\n" + 
-					"			/**\n" + 
-					"			 * @deprecated\n" + 
-					"			 */\n" + 
-					"	        System.out.println(\"println\");\n" + 
-					"	        class Local {\n" + 
-					"	        	void bar() {\n" + 
-					"					new Y().bar();\n" + 
-					"	        	}\n" + 
-					"	        }\n" + 
-					"			return super.equals(o);\n" + 
-					"		}\n" + 
-					"	};\n" + 
-					"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 12)\n" + 
-			"	new Y().bar();\n" + 
-			"	^^^^^^^^^^^^^\n" + 
-			"The method bar() from the type Y is deprecated\n" + 
-			"----------\n"
- 		);
- 	}
-
-	/**
-	 * Bug 76324: [Javadoc] Wrongly reports invalid link format in @see and @link
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76324">76324</a>
-	 */
-	public void testBug76324() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"\n" + 
-					"/**\n" + 
-					" * Subclasses perform GUI-related work in a dedicated thread. For instructions\n" + 
-					" * on using this class, see\n" + 
-					" * {@link <a  href=\"http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html\"> Swing tutorial </a>}\n" + 
-					" * \n" + 
-					" * @see <a\n" + 
-					" *      href=\"http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html\">\n" + 
-					" *      EDU.oswego.cs.dl.util.concurrent </a>\n" + 
-					" * @see <a\n" + 
-					" *      href=\"http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html\">\n" + 
-					" *      JDK 5.0 </a>\n" + 
-					" * @author {@link <a href=\"http://gee.cs.oswego.edu/dl\">Doug Lea</a>}\n" + 
-					" * @author {@link <a href=\"http://home.pacbell.net/jfai\">J?rgen Failenschmid</a>}\n" + 
-					"  *\n" + 
-					"  * It is assumed that you have read the introductory document\n" + 
-					"  * {@link <a HREF=\"../../../../../internat/overview.htm\">\n" + 
-					"  * Internationalization</a>}\n" + 
-					"  * and are familiar with \n" + 
-					" */\n" + 
-					"public class X {\n" + 
-					"\n" + 
-					"}\n"
-			}
- 		);
- 	}
-	// URL Link references
-	public void testBug76324url() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-					"	/**\n" +
-					"	 * Invalid inline URL link references \n" +
-					"	 *\n" +
-					"	 * {@link <}\n" +
-					"	 * {@link <a}\n" +
-					"	 * {@link <a hre}\n" +
-					"	 * {@link <a href}\n" +
-					"	 * {@link <a href=}\n" +
-					"	 * {@link <a href=\"}\n" +
-					"	 * {@link <a href=\"invalid}\n" +
-					"	 * {@link <a href=\"invalid\"}\n" +
-					"	 * {@link <a href=\"invalid\">}\n" +
-					"	 * {@link <a href=\"invalid\">invalid}\n" +
-					"	 * {@link <a href=\"invalid\">invalid<}\n" +
-					"	 * {@link <a href=\"invalid\">invalid</}\n" +
-					"	 * {@link <a href=\"invalid\">invalid</a}\n" +
-					"	 * {@link <a href=\"invalid\">invalid</a> no text allowed after}\n" +
-					"	 */\n" +
-					"	public void s_foo() {\n" +
-					"	}\n" +
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* {@link <}\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* {@link <a}\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* {@link <a hre}\n" + 
-				"	         ^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* {@link <a href}\n" + 
-				"	         ^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 9)\n" + 
-				"	* {@link <a href=}\n" + 
-				"	         ^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 10)\n" + 
-				"	* {@link <a href=\"}\n" + 
-				"	         ^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"7. ERROR in X.java (at line 11)\n" + 
-				"	* {@link <a href=\"invalid}\n" + 
-				"	         ^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"8. ERROR in X.java (at line 12)\n" + 
-				"	* {@link <a href=\"invalid\"}\n" + 
-				"	         ^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"9. ERROR in X.java (at line 13)\n" + 
-				"	* {@link <a href=\"invalid\">}\n" + 
-				"	         ^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"10. ERROR in X.java (at line 14)\n" + 
-				"	* {@link <a href=\"invalid\">invalid}\n" + 
-				"	         ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"11. ERROR in X.java (at line 15)\n" + 
-				"	* {@link <a href=\"invalid\">invalid<}\n" + 
-				"	                                  ^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"12. ERROR in X.java (at line 16)\n" + 
-				"	* {@link <a href=\"invalid\">invalid</}\n" + 
-				"	                                  ^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"13. ERROR in X.java (at line 17)\n" + 
-				"	* {@link <a href=\"invalid\">invalid</a}\n" + 
-				"	                                  ^^^^\n" + 
-				"Javadoc: Malformed link reference\n" + 
-				"----------\n" + 
-				"14. ERROR in X.java (at line 18)\n" + 
-				"	* {@link <a href=\"invalid\">invalid</a> no text allowed after}\n" + 
-				"	                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Unexpected text\n" + 
-				"----------\n"
-		);
-	}
-	// String references
-	public void testBug76324string() {
-		runNegativeTest(
-			new String[] {
-			"X.java",
-			"public class X {\n" +
-			"	/**\n" + 
-			"	 * Inline string references \n" + 
-			"	 *\n" + 
-			"	 * {@link \"}\n" + 
-			"	 * {@link \"unterminated string}\n" + 
-			"	 * {@link \"invalid string\"\"}\n" + 
-			"	 * {@link \"valid string\"}\n" + 
-			"	 * {@link \"invalid\" no text allowed after the string}\n" + 
-			"	 */\n" + 
-			"	public void s_foo() {\n" + 
-			"	}\n" + 
-			"}\n" },
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\n" + 
-			"	* {@link \"}\n" + 
-			"	         ^^\n" + 
-			"Javadoc: Invalid reference\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 6)\n" + 
-			"	* {@link \"unterminated string}\n" + 
-			"	         ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid reference\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 7)\n" + 
-			"	* {@link \"invalid string\"\"}\n" + 
-			"	                         ^^\n" + 
-			"Javadoc: Unexpected text\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 9)\n" + 
-			"	* {@link \"invalid\" no text allowed after the string}\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Unexpected text\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 77510: [javadoc] compiler wrongly report deprecation when option "process javadoc comments" is not set
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77510">77510</a>
-	 */
-	public void testBug77510enabled() {
-		runNegativeTest(
-			new String[] {
-				"A.java",
-				"public class A {\n" + 
-					"	/** \\u0009 @deprecated */\n" + 
-					"	static int i0009;\n" + 
-					"	/** \\u000a @deprecated */\n" + 
-					"	static int i000a;\n" + 
-					"	/** \\u000b @deprecated */\n" + 
-					"	static int i000b;\n" + 
-					"	/** \\u000c @deprecated */\n" + 
-					"	static int i000c;\n" + 
-					"	/** \\u001c @deprecated */\n" + 
-					"	static int i001c;\n" + 
-					"	/** \\u001d @deprecated */\n" + 
-					"	static int i001d;\n" + 
-					"	/** \\u001e @deprecated */\n" + 
-					"	static int i001e;\n" + 
-					"	/** \\u001f @deprecated */\n" + 
-					"	static int i001f;\n" + 
-					"	/** \\u2007 @deprecated */\n" + 
-					"	static int i2007;\n" + 
-					"	/** \\u202f @deprecated */\n" + 
-					"	static int i202f;\n" + 
-					"}\n",
-				"X.java",
-				"public class X {\n" + 
-					"	int i0 = A.i0009;\n" + 
-					"	int i1 = A.i000a;\n" + 
-					"	int i2 = A.i000b;\n" + 
-					"	int i3 = A.i000c;\n" + 
-					"	int i4 = A.i001c;\n" + 
-					"	int i5 = A.i001d;\n" + 
-					"	int i6 = A.i001e;\n" + 
-					"	int i7 = A.i001f;\n" + 
-					"	int i8 = A.i2007;\n" + 
-					"	int i9 = A.i202f;\n" + 
-					"}\n" },
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	int i0 = A.i0009;\n" + 
-			"	           ^^^^^\n" + 
-			"The field A.i0009 is deprecated\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	int i1 = A.i000a;\n" + 
-			"	           ^^^^^\n" + 
-			"The field A.i000a is deprecated\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	int i3 = A.i000c;\n" + 
-			"	           ^^^^^\n" + 
-			"The field A.i000c is deprecated\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug77510disabled() {
-		docCommentSupport = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"A.java",
-				"public class A {\n" + 
-					"	/** \\u0009 @deprecated */\n" + 
-					"	static int i0009;\n" + 
-					"	/** \\u000a @deprecated */\n" + 
-					"	static int i000a;\n" + 
-					"	/** \\u000b @deprecated */\n" + 
-					"	static int i000b;\n" + 
-					"	/** \\u000c @deprecated */\n" + 
-					"	static int i000c;\n" + 
-					"	/** \\u001c @deprecated */\n" + 
-					"	static int i001c;\n" + 
-					"	/** \\u001d @deprecated */\n" + 
-					"	static int i001d;\n" + 
-					"	/** \\u001e @deprecated */\n" + 
-					"	static int i001e;\n" + 
-					"	/** \\u001f @deprecated */\n" + 
-					"	static int i001f;\n" + 
-					"	/** \\u2007 @deprecated */\n" + 
-					"	static int i2007;\n" + 
-					"	/** \\u202f @deprecated */\n" + 
-					"	static int i202f;\n" + 
-					"}\n",
-				"X.java",
-				"public class X {\n" + 
-					"	int i0 = A.i0009;\n" + 
-					"	int i1 = A.i000a;\n" + 
-					"	int i2 = A.i000b;\n" + 
-					"	int i3 = A.i000c;\n" + 
-					"	int i4 = A.i001c;\n" + 
-					"	int i5 = A.i001d;\n" + 
-					"	int i6 = A.i001e;\n" + 
-					"	int i7 = A.i001f;\n" + 
-					"	int i8 = A.i2007;\n" + 
-					"	int i9 = A.i202f;\n" + 
-					"}\n" },
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	int i0 = A.i0009;\n" + 
-			"	           ^^^^^\n" + 
-			"The field A.i0009 is deprecated\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	int i1 = A.i000a;\n" + 
-			"	           ^^^^^\n" + 
-			"The field A.i000a is deprecated\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	int i3 = A.i000c;\n" + 
-			"	           ^^^^^\n" + 
-			"The field A.i000c is deprecated\n" + 
-			"----------\n"
-		);
-	}
-	
-	/**
-	 * Test bug 77260: [Javadoc] deprecation warning should not be reported when @deprecated tag is set
-	 */
-	public void testBug77260() {
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/** @deprecated */\n" + 
-					"public class X {\n" + 
-					"	public int x;\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"Y.java",
-				"/**\n" + 
-					" * @see X\n" + 
-					" * @deprecated\n" + 
-					" */\n" + 
-					"public class Y {\n" + 
-					"	/** @see X#x */\n" + 
-					"	public int x;\n" + 
-					"	/** @see X#foo() */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"Z.java",
-				"public class Z {\n" + 
-					"	/** \n" + 
-					"	 * @see X#x\n" + 
-					"	 * @deprecated\n" + 
-					"	 */\n" + 
-					"	public int x;\n" + 
-					"	/**\n" + 
-					"	 * @see X#foo()\n" + 
-					"	 * @deprecated\n" + 
-					"	 */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n" }
-		);
-	}
-	public void testBug77260nested() {
-		Map options = getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, CompilerOptions.ENABLED);
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/** @deprecated */\n" + 
-					"public class X {\n" + 
-					"	public int x;\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"Y.java",
-				"/**\n" + 
-					" * @see X\n" + 
-					" * @deprecated\n" + 
-					" */\n" + 
-					"public class Y {\n" + 
-					"	/** @see X#x */\n" + 
-					"	public int x;\n" + 
-					"	/** @see X#foo() */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"Z.java",
-				"public class Z {\n" + 
-					"	/** \n" + 
-					"	 * @see X#x\n" + 
-					"	 * @deprecated\n" + 
-					"	 */\n" + 
-					"	public int x;\n" + 
-					"	/**\n" + 
-					"	 * @see X#foo()\n" + 
-					"	 * @deprecated\n" + 
-					"	 */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n" },
-			"----------\n" + 
-				"1. ERROR in Y.java (at line 2)\n" + 
-				"	* @see X\n" + 
-				"	       ^\n" + 
-				"Javadoc: The type X is deprecated\n" + 
-				"----------\n" + 
-				"2. ERROR in Y.java (at line 6)\n" + 
-				"	/** @see X#x */\n" + 
-				"	         ^\n" + 
-				"Javadoc: The type X is deprecated\n" + 
-				"----------\n" + 
-				"3. ERROR in Y.java (at line 6)\n" + 
-				"	/** @see X#x */\n" + 
-				"	           ^\n" + 
-				"Javadoc: The field X.x is deprecated\n" + 
-				"----------\n" + 
-				"4. ERROR in Y.java (at line 8)\n" + 
-				"	/** @see X#foo() */\n" + 
-				"	         ^\n" + 
-				"Javadoc: The type X is deprecated\n" + 
-				"----------\n" + 
-				"5. ERROR in Y.java (at line 8)\n" + 
-				"	/** @see X#foo() */\n" + 
-				"	           ^^^^^\n" + 
-				"Javadoc: The method foo() from the type X is deprecated\n" + 
-				"----------\n" + 
-				"----------\n" + 
-				"1. ERROR in Z.java (at line 3)\n" + 
-				"	* @see X#x\n" + 
-				"	       ^\n" + 
-				"Javadoc: The type X is deprecated\n" + 
-				"----------\n" + 
-				"2. ERROR in Z.java (at line 3)\n" + 
-				"	* @see X#x\n" + 
-				"	         ^\n" + 
-				"Javadoc: The field X.x is deprecated\n" + 
-				"----------\n" + 
-				"3. ERROR in Z.java (at line 8)\n" + 
-				"	* @see X#foo()\n" + 
-				"	       ^\n" + 
-				"Javadoc: The type X is deprecated\n" + 
-				"----------\n" + 
-				"4. ERROR in Z.java (at line 8)\n" + 
-				"	* @see X#foo()\n" + 
-				"	         ^^^^^\n" + 
-				"Javadoc: The method foo() from the type X is deprecated\n" + 
-				"----------\n",
-			null,
-			true,
-			options
-		);
-	}
-	public void testBug77260nested_disabled() {
-		Map options = getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode, CompilerOptions.ENABLED);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef, CompilerOptions.DISABLED);
-		runConformTest(
-			new String[] {
-				"X.java",
-				"/** @deprecated */\n" + 
-					"public class X {\n" + 
-					"	public int x;\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"Y.java",
-				"/**\n" + 
-					" * @see X\n" + 
-					" * @deprecated\n" + 
-					" */\n" + 
-					"public class Y {\n" + 
-					"	/** @see X#x */\n" + 
-					"	public int x;\n" + 
-					"	/** @see X#foo() */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n",
-				"Z.java",
-				"public class Z {\n" + 
-					"	/** \n" + 
-					"	 * @see X#x\n" + 
-					"	 * @deprecated\n" + 
-					"	 */\n" + 
-					"	public int x;\n" + 
-					"	/**\n" + 
-					"	 * @see X#foo()\n" + 
-					"	 * @deprecated\n" + 
-					"	 */\n" + 
-					"	public void foo() {}\n" + 
-					"}\n"
-			},
-			"",
-			null,
-			true,
-			null,
-			options,
-			null
-		);
-	}
-
-	/**
-	 * Bug 77602: [javadoc] "Only consider members as visible as" is does not work for syntax error
-	 */
-	public void testBug77602() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"  /**\n" + 
-					"   * @see\n" + 
-					"   * @see UnknownClass\n" + 
-					"   */\n" + 
-					"  protected void foo() {\n" + 
-					"  }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @see\n" + 
-				"	   ^^^\n" + 
-				"Javadoc: Missing reference\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @see UnknownClass\n" + 
-				"	       ^^^^^^^^^^^^\n" + 
-				"Javadoc: UnknownClass cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-	public void testBug77602_Public() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"  /**\n" + 
-					"   * @see\n" + 
-					"   * @see UnknownClass\n" + 
-					"   */\n" + 
-					"  protected void foo() {\n" + 
-					"  }\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 78091: [1.5][javadoc] Compiler should accept new 1.5 syntax for @param
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78091">78091</a>
-	 */
-	public void testBug78091() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param xxx.yyy invalid\n" + 
-					"	 * @param obj(x) invalid\n" + 
-					"	 */\n" + 
-					"	public void foo(int xxx, Object obj) {}\n" + 
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param xxx.yyy invalid\n" + 
-				"	         ^^^^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param obj(x) invalid\n" + 
-				"	         ^^^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	public void foo(int xxx, Object obj) {}\n" + 
-				"	                    ^^^\n" + 
-				"Javadoc: Missing tag for parameter xxx\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public void foo(int xxx, Object obj) {}\n" + 
-				"	                                ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 80910: [javadoc] Invalid missing reference warning on @see or @link tags
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=80910"
-	 */
-	public void testBug80910() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	int field;\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @param key\'s toto\n" + 
-				"	 * @see #field\n" + 
-				"	 */\n" + 
-				"	public void foo(int x) {\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 5)\n" + 
-			"	* @param key\'s toto\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 82088: [search][javadoc] Method parameter types references not found in @see/@link tags
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=82088"
-	 */
-	public void testBug82088() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	int field;\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @param key\'s toto\n" + 
-				"	 * @see #field\n" + 
-				"	 */\n" + 
-				"	public void foo(int x) {\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 5)\n" + 
-			"	* @param key\'s toto\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 83285: [javadoc] Javadoc reference to constructor of secondary type has no binding / not found by search
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83285"
-	 */
-	public void testBug83285a() {
-		runConformTest(
-			new String[] {
-				"p/A.java",
-				"package p;\n" + 
-				"class A { }\n" + 
-				"class C {\n" + 
-				"    /**\n" + 
-				"     * Link {@link #C(String)} was also wrongly warned...\n" + 
-				"     */\n" + 
-				"    private String fGerman;\n" + 
-				"    public C(String german) {\n" + 
-				"        fGerman = german;\n" + 
-				"    }\n" + 
-				"}"
-			}
-		);
-	}
-	public void testBug83285b() {
-		runConformTest(
-			new String[] {
-				"p/A.java",
-				"package p;\n" + 
-				"class A {\n" + 
-				"	A(char c) {}\n" + 
-				"}\n" + 
-				"class B {\n" + 
-				"	B(Exception ex) {}\n" + 
-				"	void foo() {} \n" + 
-				"	class C { \n" + 
-				"	    /**\n" + 
-				"	     * Link {@link #B(Exception)} OK\n" + 
-				"	     * Link {@link #B.C(String)} OK\n" + 
-				"	     * Link {@link #foo()} OK\n" + 
-				"	     * Link {@link #bar()} OK\n" + 
-				"	     */\n" + 
-				"	    public C(String str) {}\n" + 
-				"		void bar() {}\n" + 
-				"	}\n" + 
-				"}"
-			}
-		);
-	}
-	public void testBug83285c() {
-		runNegativeTest(
-			new String[] {
-				"p/A.java",
-				"package p;\n" + 
-				"class A {\n" + 
-				"	A(char c) {}\n" + 
-				"}\n" + 
-				"class B {\n" + 
-				"	B(Exception ex) {}\n" + 
-				"	void foo() {}\n" + 
-				"	class C { \n" + 
-				"	    /**\n" + 
-				"	     * Link {@link #A(char)} KO\n" + 
-				"	     * Link {@link #B(char)}  KO\n" + 
-				"	     * Link {@link #C(char)} KO\n" + 
-				"	     * Link {@link #foo(int)} KO\n" + 
-				"	     * Link {@link #bar(int)} KO\n" + 
-				"	     */\n" + 
-				"	    public C(String str) {}\n" + 
-				"		void bar() {}\n" + 
-				"	}\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in p\\A.java (at line 10)\n" + 
-			"	* Link {@link #A(char)} KO\n" + 
-			"	               ^\n" + 
-			"Javadoc: The method A(char) is undefined for the type B.C\n" + 
-			"----------\n" + 
-			"2. ERROR in p\\A.java (at line 11)\n" + 
-			"	* Link {@link #B(char)}  KO\n" + 
-			"	               ^\n" + 
-			"Javadoc: The method B(char) is undefined for the type B.C\n" + 
-			"----------\n" + 
-			"3. ERROR in p\\A.java (at line 12)\n" + 
-			"	* Link {@link #C(char)} KO\n" + 
-			"	               ^^^^^^^\n" + 
-			"Javadoc: The constructor B.C(char) is undefined\n" + 
-			"----------\n" + 
-			"4. ERROR in p\\A.java (at line 13)\n" + 
-			"	* Link {@link #foo(int)} KO\n" + 
-			"	               ^^^\n" + 
-			"Javadoc: The method foo(int) is undefined for the type B.C\n" + 
-			"----------\n" + 
-			"5. ERROR in p\\A.java (at line 14)\n" + 
-			"	* Link {@link #bar(int)} KO\n" + 
-			"	               ^^^\n" + 
-			"Javadoc: The method bar() in the type B.C is not applicable for the arguments (int)\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 87404: [javadoc] Unexpected not defined warning on constructor
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=87404"
-	 */
-	public void testBug87404() {
-		runConformTest(
-			new String[] {
-				"p/A.java",
-				"package p;\n" + 
-				"class A {\n" + 
-				"	A(char c) {}\n" + 
-				"	class B {\n" + 
-				"		B(Exception ex) {}\n" + 
-				"	}\n" + 
-				"	void foo() {}\n" + 
-				"    /**\n" + 
-				"     * Link {@link #A(char)} OK \n" + 
-				"     * Link {@link #A(String)} OK\n" + 
-				"     * Link {@link #foo()} OK\n" + 
-				"     * Link {@link #bar()} OK\n" + 
-				"     */\n" + 
-				"    public A(String str) {}\n" + 
-				"	void bar() {}\n" + 
-				"}"
-			}
-		);
-	}
-
-	/**
-	 * Bug 90302: [javadoc] {@inheritedDoc} should be inactive for non-overridden method
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=90302"
-	 */
-	public void testBug90302() {
-		this.reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-				" * @see #foo(String)\n" + 
-				" */\n" + 
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * Static method\n" + 
-				"	 * @param str\n" + 
-				"	 * @return int\n" + 
-				"	 * @throws NumberFormatException\n" + 
-				"	 */\n" + 
-				"	static int foo(String str) throws NumberFormatException{\n" + 
-				"		return Integer.parseInt(str);\n" + 
-				"	}\n" + 
-				"}\n",
-				"Y.java",
-				"/**\n" + 
-				" * @see #foo(String)\n" + 
-				" */\n" + 
-				"public class Y extends X { \n" + 
-				"	/**\n" + 
-				"	 * Static method: does not override super\n" + 
-				"	 * {@inheritDoc}\n" + 
-				"	 */\n" + 
-				"	static int foo(String str) throws NumberFormatException{\n" + 
-				"		return Integer.parseInt(str);\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 7)\n" + 
-			"	* {@inheritDoc}\n" + 
-			"	    ^^^^^^^^^^\n" + 
-			"Javadoc: Unexpected tag\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 9)\n" + 
-			"	static int foo(String str) throws NumberFormatException{\n" + 
-			"	       ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"3. ERROR in Y.java (at line 9)\n" + 
-			"	static int foo(String str) throws NumberFormatException{\n" + 
-			"	                      ^^^\n" + 
-			"Javadoc: Missing tag for parameter str\n" + 
-			"----------\n" + 
-			"4. ERROR in Y.java (at line 9)\n" + 
-			"	static int foo(String str) throws NumberFormatException{\n" + 
-			"	                                  ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing tag for declared exception NumberFormatException\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug90302b() {
-		this.reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/** */\n" + 
-				"public class X {\n" + 
-				"}\n",
-				"Y.java",
-				"/**\n" + 
-				" * @see #foo(String)\n" + 
-				" */\n" + 
-				"public class Y extends X { \n" + 
-				"	/**\n" + 
-				"	 * Simple method: does not override super\n" + 
-				"	 * {@inheritDoc}\n" + 
-				"	 */\n" + 
-				"	static int foo(String str) throws NumberFormatException{\n" + 
-				"		return Integer.parseInt(str);\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 7)\n" + 
-			"	* {@inheritDoc}\n" + 
-			"	    ^^^^^^^^^^\n" + 
-			"Javadoc: Unexpected tag\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 9)\n" + 
-			"	static int foo(String str) throws NumberFormatException{\n" + 
-			"	       ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"3. ERROR in Y.java (at line 9)\n" + 
-			"	static int foo(String str) throws NumberFormatException{\n" + 
-			"	                      ^^^\n" + 
-			"Javadoc: Missing tag for parameter str\n" + 
-			"----------\n" + 
-			"4. ERROR in Y.java (at line 9)\n" + 
-			"	static int foo(String str) throws NumberFormatException{\n" + 
-			"	                                  ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing tag for declared exception NumberFormatException\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 103304: [Javadoc] Wrong reference proposal for inner classes.
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=103304"
-	 */
-	public void testBug103304a() {
-		runNegativeTest(
-			new String[] {
-				"boden/IAFAState.java",
-				"package boden;\n" + 
-				"public interface IAFAState {\n" + 
-				"    public class ValidationException extends Exception {\n" + 
-				"        public ValidationException(String variableName, IAFAState subformula) {\n" + 
-				"            super(\"Variable \'\"+variableName+\"\' may be unbound in \'\"+subformula+\"\'\");\n" + 
-				"        }\n" + 
-				"        public void method() {}\n" + 
-				"    }\n" + 
-				"    /**\n" + 
-				"     * Validates a formula for consistent bindings. Bindings are consistent, when at each point in time,\n" + 
-				"     * the set of povided variables can be guaranteed to be a superset of the set of required variables.\n" + 
-				"     * @throws ValidationException Thrown if a variable is unbound. \n" + 
-				"     * @see ValidationException#IAFAState.ValidationException(String, IAFAState)\n" + 
-				"     * @see IAFAState.ValidationException#method()\n" + 
-				"     * @see ValidationException\n" + 
-				"     * {@link ValidationException}\n" + 
-				"     */\n" + 
-				"    public void validate() throws ValidationException;\n" + 
-				"}\n",
-				"boden/TestValid.java",
-				"package boden;\n" + 
-				"import boden.IAFAState.ValidationException;\n" + 
-				"/**\n" + 
-				" * @see ValidationException\n" + 
-				" * @see IAFAState.ValidationException\n" + 
-				" */\n" + 
-				"public class TestValid {\n" + 
-				"	/**  \n" + 
-				"	 * @see ValidationException#IAFAState.ValidationException(String, IAFAState)\n" + 
-				"	 */\n" + 
-				"	IAFAState.ValidationException valid1;\n" + 
-				"	/**\n" + 
-				"	 * @see IAFAState.ValidationException#IAFAState.ValidationException(String, IAFAState)\n" + 
-				"	 */\n" + 
-				"	IAFAState.ValidationException valid2;\n" + 
-				"}\n"
-			},
-			//boden\TestValid.java:8: warning - Tag @see: reference not found: ValidationException
-			//boden\TestValid.java:12: warning - Tag @see: reference not found: ValidationException#IAFAState.ValidationException(String, IAFAState)
-			"----------\n" + 
-			"1. ERROR in boden\\TestValid.java (at line 4)\n" + 
-			"	* @see ValidationException\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in boden\\TestValid.java (at line 9)\n" + 
-			"	* @see ValidationException#IAFAState.ValidationException(String, IAFAState)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug103304b() {
-		runNegativeTest(
-			new String[] {
-				"boden/IAFAState.java",
-				"package boden;\n" + 
-				"public interface IAFAState {\n" + 
-				"    public class ValidationException extends Exception {\n" + 
-				"        public ValidationException(String variableName, IAFAState subformula) {\n" + 
-				"            super(\"Variable \'\"+variableName+\"\' may be unbound in \'\"+subformula+\"\'\");\n" + 
-				"        }\n" + 
-				"        public void method() {}\n" + 
-				"    }\n" + 
-				"}\n",
-				"boden/TestInvalid1.java",
-				"package boden;\n" + 
-				"import boden.IAFAState.ValidationException;\n" + 
-				"public class TestInvalid1 {\n" + 
-				"	/** \n" + 
-				"	 * @see ValidationException#ValidationException(String, IAFAState)\n" + 
-				"	 */ \n" + 
-				"	IAFAState.ValidationException invalid;\n" + 
-				"}\n",
-				"boden/TestInvalid2.java",
-				"package boden;\n" + 
-				"public class TestInvalid2 {\n" + 
-				"	/**\n" + 
-				"	 * @see IAFAState.ValidationException#ValidationException(String, IAFAState)\n" + 
-				"	 */\n" + 
-				"	IAFAState.ValidationException invalid;\n" + 
-				"}\n",
-				"boden/TestInvalid3.java",
-				"package boden;\n" + 
-				"import boden.IAFAState.ValidationException;\n" + 
-				"public class TestInvalid3 {\n" + 
-				"	/**\n" + 
-				"	 * @see IAFAState.ValidationException#IAFA.State.ValidationException(String, IAFAState)\n" + 
-				"	 */\n" + 
-				"	IAFAState.ValidationException invalid;\n" + 
-				"}\n",
-				"boden/TestInvalid4.java",
-				"package boden;\n" + 
-				"import boden.IAFAState.ValidationException;\n" + 
-				"public class TestInvalid4 {\n" + 
-				"	/**\n" + 
-				"	 * @see IAFAState.ValidationException#IAFAState .ValidationException(String, IAFAState)\n" + 
-				"	 */\n" + 
-				"	IAFAState.ValidationException invalid;\n" + 
-				"}\n"
-			},
-			//boden\TestInvalid1.java:7: warning - Tag @see: reference not found: ValidationException#ValidationException(String, IAFAState)
-			//boden\TestInvalid2.java:6: warning - Tag @see: can't find ValidationException(String, IAFAState) in boden.IAFAState.ValidationException => bug ID: 4288720
-			//boden\TestInvalid3.java:6: warning - Tag @see: can't find IAFA.State.ValidationException(String, IAFAState) in boden.IAFAState.ValidationException
-			//boden\TestInvalid4.java:6: warning - Tag @see: can't find IAFAState in boden.IAFAState.ValidationException
-			"----------\n" + 
-			"1. ERROR in boden\\TestInvalid1.java (at line 5)\n" + 
-			"	* @see ValidationException#ValidationException(String, IAFAState)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in boden\\TestInvalid3.java (at line 5)\n" + 
-			"	* @see IAFAState.ValidationException#IAFA.State.ValidationException(String, IAFAState)\n" + 
-		"	                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in boden\\TestInvalid4.java (at line 5)\n" + 
-			"	* @see IAFAState.ValidationException#IAFAState .ValidationException(String, IAFAState)\n" + 
-			"	                                     ^^^^^^^^^\n" + 
-			"Javadoc: IAFAState cannot be resolved or is not a field\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug103304c() {
-		runConformTest(
-			new String[] {
-				"test/Test.java",
-				"package test;\n" + 
-				"public interface Test {\n" + 
-				"	public class Level0 {\n" + 
-				"		public Level0() {}\n" + 
-				"	}\n" + 
-				"	public interface Member {\n" + 
-				"		public class Level1 {\n" + 
-				"			public Level1() {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test/C.java",
-				"package test;\n" + 
-				"public class C {\n" + 
-				"	/**\n" + 
-				"	 * @see Test.Level0#Test.Level0()\n" + 
-				"	 */\n" + 
-				"	Test.Level0 valid = new Test.Level0();\n" + 
-				"	/**\n" + 
-				"	 * @see Test.Level0#Level0()\n" + 
-				"	 */\n" + 
-				"	Test.Level0 invalid = new Test.Level0();\n" + 
-				"}\n"
-			}
-			//test\C.java:10: warning - Tag @see: can't find Level0() in test.Test.Level0 => bug ID: 4288720
-		);
-	}
-	public void testBug103304d() {
-		runNegativeTest(
-			new String[] {
-				"test/Test.java",
-				"package test;\n" + 
-				"public interface Test {\n" + 
-				"	public class Level0 {\n" + 
-				"		public Level0() {}\n" + 
-				"	}\n" + 
-				"	public interface Member {\n" + 
-				"		public class Level1 {\n" + 
-				"			public Level1() {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test/C2.java",
-				"package test;\n" + 
-				"public class C2 {\n" + 
-				"	/**\n" + 
-				"	 * @see Test.Member.Level1#Test.Member.Level1()\n" + 
-				"	 */\n" + 
-				"	Test.Member.Level1 valid = new Test.Member.Level1();\n" + 
-				"	/**\n" + 
-				"	 * @see Test.Member.Level1#Level1()\n" + 
-				"	 */\n" + 
-				"	Test.Member.Level1 invalid = new Test.Member.Level1();\n" + 
-				"	/**\n" + 
-				"	 * @see Test.Member.Level1#Test.Level1()\n" + 
-				"	 */\n" + 
-				"	Test.Member.Level1 wrong = new Test.Member.Level1();\n" + 
-				"}\n"
-			},
-			//test\C2.java:10: warning - Tag @see: can't find Level1() in test.Test.Member.Level1 => Bug ID: 4288720
-			//test\C2.java:14: warning - Tag @see: can't find Test.Level1() in test.Test.Member.Level1
-			"----------\n" + 
-			"1. ERROR in test\\C2.java (at line 12)\n" + 
-			"	* @see Test.Member.Level1#Test.Level1()\n" + 
-			"	                          ^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug103304e() {
-		runConformTest(
-			new String[] {
-				"implicit/Valid.java",
-				"package implicit;\n" + 
-				"public interface Valid {\n" + 
-				"	public class Level0 {\n" + 
-				"		/**\n" + 
-				"		 * @see #Valid.Level0() Valid\n" + 
-				"		 */\n" + 
-				"		public Level0() {}\n" + 
-				"		/**\n" + 
-				"		 * @see #Valid.Level0(String) Valid\n" + 
-				"		 */\n" + 
-				"		public Level0(String str) {}\n" + 
-				"	}\n" + 
-				"	public interface Member {\n" + 
-				"		public class Level1 {\n" + 
-				"			/**\n" + 
-				"			 * @see #Valid.Member.Level1() Valid\n" + 
-				"			 */\n" + 
-				"			public Level1() {}\n" + 
-				"			/**\n" + 
-				"			 * @see #Valid.Member.Level1(int) Valid\n" + 
-				"			 */\n" + 
-				"			public Level1(int x) {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug103304f() {
-		runNegativeTest(
-			new String[] {
-				"implicit/Invalid.java",
-				"package implicit;\n" + 
-				"public interface Invalid {\n" + 
-				"	public class Level0 {\n" + 
-				"		/**\n" + 
-				"		 * @see #Level0() Invalid\n" + 
-				"		 */\n" + 
-				"		public Level0() {}\n" + 
-				"		/**\n" + 
-				"		 * @see #Level0(String) Invalid\n" + 
-				"		 */\n" + 
-				"		public Level0(String str) {}\n" + 
-				"	}\n" + 
-				"	public interface Member {\n" + 
-				"		public class Level1 {\n" + 
-				"			/**\n" + 
-				"			 * @see #Level1() Invalid\n" + 
-				"			 * @see #Member.Level1() Invalid\n" + 
-				"			 * @see #Invalid.Level1() Invalid\n" + 
-				"			 */\n" + 
-				"			public Level1() {}\n" + 
-				"			/**\n" + 
-				"			 * @see #Level1(int) Invalid\n" + 
-				"			 * @see #Invalid.Level1(int) Invalid\n" + 
-				"			 * @see #Member.Level1(int) Invalid\n" + 
-				"			 */\n" + 
-				"			public Level1(int x) {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//implicit\Invalid.java:7: warning - Tag @see: can't find Level0() in implicit.Invalid.Level0 => bug ID: 4288720
-			//implicit\Invalid.java:11: warning - Tag @see: can't find Level0(String) in implicit.Invalid.Level0 => bug ID: 4288720
-			//implicit\Invalid.java:20: warning - Tag @see: can't find Level1() in implicit.Invalid.Member.Level1 => bug ID: 4288720
-			//implicit\Invalid.java:20: warning - Tag @see: can't find Member.Level1() in implicit.Invalid.Member.Level1
-			//implicit\Invalid.java:20: warning - Tag @see: can't find Invalid.Level1() in implicit.Invalid.Member.Level1
-			//implicit\Invalid.java:26: warning - Tag @see: can't find Level1(int) in implicit.Invalid.Member.Level1 => bug ID: 4288720
-			//implicit\Invalid.java:26: warning - Tag @see: can't find Invalid.Level1(int) in implicit.Invalid.Member.Level1
-			//implicit\Invalid.java:26: warning - Tag @see: can't find Member.Level1(int) in implicit.Invalid.Member.Level1
-			"----------\n" + 
-			"1. ERROR in implicit\\Invalid.java (at line 17)\n" + 
-			"	* @see #Member.Level1() Invalid\n" + 
-			"	        ^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in implicit\\Invalid.java (at line 18)\n" + 
-			"	* @see #Invalid.Level1() Invalid\n" + 
-			"	        ^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"3. ERROR in implicit\\Invalid.java (at line 23)\n" + 
-			"	* @see #Invalid.Level1(int) Invalid\n" + 
-			"	        ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"4. ERROR in implicit\\Invalid.java (at line 24)\n" + 
-			"	* @see #Member.Level1(int) Invalid\n" + 
-			"	        ^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 116464: [javadoc] Unicode tag name are not correctly parsed
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=116464"
-	 */
-	public void testBug116464() {
-		this.reportMissingJavadocTags = CompilerOptions.ERROR;
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @\\u0070\\u0061\\u0072\\u0061\\u006d str xxx\n" + 
-				"	 */\n" + 
-				"	void foo(String str) {}\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 125903: [javadoc] Treat whitespace in javadoc tags as invalid tags
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=125903"
-	 */
-	public void testBug125903() {
-		this.reportMissingJavadocTags = CompilerOptions.ERROR;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-				" * {@ link java.lang.String}\n" + 
-				" * @ since 2.1\n" + 
-				" */\n" + 
-				"public class X {\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	* {@ link java.lang.String}\n" + 
-			"	   ^^\n" + 
-			"Javadoc: Invalid tag\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	* @ since 2.1\n" + 
-			"	  ^^\n" + 
-			"Javadoc: Invalid tag\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 128954: Javadoc problems with category CAT_INTERNAL
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=128954"
-	 */
-	public void testBug128954() {
-		this.reportInvalidJavadoc = CompilerOptions.WARNING;
-		this.reportDeprecation = CompilerOptions.WARNING;
-		runNegativeTest(
-			new String[] {
-				"X.java", //========================
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @see p.A#bar()\n" + 
-				"	 */\n" + 
-				"	void foo() {\n" + 
-				"		Zork z;\n" +
-				"	}\n" + 
-				"}\n",
-				"p/A.java",  //========================
-				"package p;\n" +
-				"public class A {\n" + 
-				"	/** @deprecated */\n" +
-				"	public void bar() {\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 3)\n" + 
-			"	* @see p.A#bar()\n" + 
-			"	           ^^^^^\n" + 
-			"[@cat:javadoc] Javadoc: The method bar() from the type A is deprecated\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 6)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"[@cat:type] Zork cannot be resolved to a type\n" + 
-			"----------\n",
-			null,
-			true,
-			null,
-			false,
-			true,
-			true);
-	}	
-	/**
-	 * Bug 128954: Javadoc problems with category CAT_INTERNAL - variation
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=128954" 
-	 */
-	public void testBug128954a() {
-		this.reportInvalidJavadoc = CompilerOptions.WARNING;
-		this.reportDeprecation = CompilerOptions.WARNING;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	\n" + 
-				"	/**\n" + 
-				"	 * @see p.A#bar()\n" + 
-				"	 */\n" + 
-				"	void foo() {\n" + 
-				"		Zork z;\n" +
-				"	}\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 4)\n" + 
-			"	* @see p.A#bar()\n" + 
-			"	       ^^^\n" + 
-			"[@cat:javadoc] Javadoc: p cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 7)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"[@cat:type] Zork cannot be resolved to a type\n" + 
-			"----------\n",
-			null,
-			true,
-			null,
-			false,
-			true,
-			true);
-	}	
-
-	/**
-	 * Bug 129241: [Javadoc] deprecation warning wrongly reported when ignoring Malformed Javadoc comments
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=129241"
-	 */
-	public void testBug129241a() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @see p.A#bar\n" + 
-				"	 */\n" + 
-				"	void foo() {}\n" + 
-				"}\n",
-				"p/A.java",
-				"package p;\n" +
-				"/** @deprecated */\n" +
-				"public class A {\n" + 
-				"	void bar() {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	* @see p.A#bar\n" + 
-			"	       ^^^\n" + 
-			"Javadoc: The type A is deprecated\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug129241b() {
-		this.reportDeprecation = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @see p.A#bar\n" + 
-				"	 */\n" + 
-				"	void foo() {}\n" + 
-				"}\n",
-				"p/A.java",
-				"package p;\n" +
-				"/** @deprecated */\n" +
-				"public class A {\n" + 
-				"	void bar() {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	* @see p.A#bar\n" + 
-			"	       ^^^\n" + 
-			"Javadoc: The type A is deprecated\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug129241c() {
-		this.reportJavadocDeprecation = CompilerOptions.DISABLED;
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @see p.A#bar\n" + 
-				"	 */\n" + 
-				"	void foo() {}\n" + 
-				"}\n",
-				"p/A.java",
-				"package p;\n" +
-				"/** @deprecated */\n" +
-				"public class A {\n" + 
-				"	void bar() {}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug129241d() {
-		this.reportInvalidJavadoc = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	/**\n" + 
-				"	 * @see p.A#bar\n" + 
-				"	 */\n" + 
-				"	void foo() {}\n" + 
-				"}\n",
-				"p/A.java",
-				"package p;\n" +
-				"/** @deprecated */\n" +
-				"public class A {\n" + 
-				"	void bar() {}\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 132813: NPE in Javadoc.resolve(Javadoc.java:196) + log swamped
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=132813"
-	 */
-	public void testBug132813() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class X { \n" + 
-				"	/**	 */ \n" + 
-				"	public Test() {}\n" + 
-				"	/**	 */\n" + 
-				"	public test() {}\n" + 
-				"}\n"			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 1)\n" + 
-			"	public class X { \n" + 
-			"	             ^\n" + 
-			"The public type X must be defined in its own file\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	public Test() {}\n" + 
-			"	       ^^^^^^\n" + 
-			"Return type for the method is missing\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 5)\n" + 
-			"	public test() {}\n" + 
-			"	       ^^^^^^\n" + 
-			"Return type for the method is missing\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 149013: [javadoc] In latest 3.3 build, there is a javadoc error in org.eclipse.core.resources
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=149013"
-	 */
-	public void testBug149013_Private01() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"test1/X.java",
-				"package test1;\n" + 
-				"public class X {\n" + 
-				"	class Inner {\n" + 
-				"		class Level2 {\n" + 
-				"			class Level3 {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test1/Test.java",
-				"package test1;\n" + 
-				"/**\n" + 
-				" * @see X.Inner\n" + 
-				" * @see X.Inner.Level2\n" + 
-				" * @see X.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {}\n",
-				"test1/X.java"
-			}
-		);
-	}
-	public void testBug149013_Public01() {
-		this.reportMissingJavadocTags = CompilerOptions.DISABLED;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test1/X.java",
-				"package test1;\n" + 
-				"public class X {\n" + 
-				"	class Inner {\n" + 
-				"		class Level2 {\n" + 
-				"			class Level3 {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test1/Test.java",
-				"package test1;\n" + 
-				"/**\n" + 
-				" * @see X.Inner\n" + 
-				" * @see X.Inner.Level2\n" + 
-				" * @see X.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"}\n"
-			},
-			//test1\Test.java:7: warning - Tag @see: reference not found: X.Inner
-			//test1\Test.java:7: warning - Tag @see: reference not found: X.Inner.Level2
-			//test1\Test.java:7: warning - Tag @see: reference not found: X.Inner.Level2.Level3
-			"----------\n" + 
-			"1. ERROR in test1\\Test.java (at line 3)\n" + 
-			"	* @see X.Inner\n" + 
-			"	       ^^^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test1\\Test.java (at line 4)\n" + 
-			"	* @see X.Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n" + 
-			"3. ERROR in test1\\Test.java (at line 5)\n" + 
-			"	* @see X.Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug149013_Private02() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"test1/X.java",
-				"package test1;\n" + 
-				"public class X {\n" + 
-				"	class Inner {\n" + 
-				"		class Level2 {\n" + 
-				"			class Level3 {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test2/Test.java",
-				"package test2;\n" + 
-				"import test1.X;\n" + 
-				"/**\n" + 
-				" * @see X.Inner\n" + 
-				" * @see X.Inner.Level2\n" + 
-				" * @see X.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {}\n",
-			},
-			//test2\Test.java:10: warning - Tag @see: reference not found: X.Inner
-			//test2\Test.java:10: warning - Tag @see: reference not found: X.Inner.Level2
-			//test2\Test.java:10: warning - Tag @see: reference not found: X.Inner.Level2.Level3
-			"----------\n" + 
-			"1. ERROR in test2\\Test.java (at line 4)\r\n" + 
-			"	* @see X.Inner\r\n" + 
-			"	       ^^^^^^^\n" + 
-			"Javadoc: The type X.Inner is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test2\\Test.java (at line 5)\r\n" + 
-			"	* @see X.Inner.Level2\r\n" + 
-			"	       ^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type X.Inner is not visible\n" + 
-			"----------\n" + 
-			"3. ERROR in test2\\Test.java (at line 6)\r\n" + 
-			"	* @see X.Inner.Level2.Level3\r\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type X.Inner is not visible\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug149013_Public02() {
-		this.reportMissingJavadocTags = CompilerOptions.DISABLED;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test1/X.java",
-				"package test1;\n" + 
-				"public class X {\n" + 
-				"	class Inner {\n" + 
-				"		class Level2 {\n" + 
-				"			class Level3 {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test2/Test.java",
-				"package test2;\n" + 
-				"import test1.X;\n" + 
-				"/**\n" + 
-				" * @see X.Inner\n" + 
-				" * @see X.Inner.Level2\n" + 
-				" * @see X.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {}\n",
-			},
-			//test2\Test.java:10: warning - Tag @see: reference not found: X.Inner
-			//test2\Test.java:10: warning - Tag @see: reference not found: X.Inner.Level2
-			//test2\Test.java:10: warning - Tag @see: reference not found: X.Inner.Level2.Level3
-			"----------\n" + 
-			"1. ERROR in test2\\Test.java (at line 4)\r\n" + 
-			"	* @see X.Inner\r\n" + 
-			"	       ^^^^^^^\n" + 
-			"Javadoc: The type X.Inner is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test2\\Test.java (at line 5)\r\n" + 
-			"	* @see X.Inner.Level2\r\n" + 
-			"	       ^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type X.Inner is not visible\n" + 
-			"----------\n" + 
-			"3. ERROR in test2\\Test.java (at line 6)\r\n" + 
-			"	* @see X.Inner.Level2.Level3\r\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type X.Inner is not visible\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug149013_Private03() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"test1/X.java",
-				"package test1;\n" + 
-				"public class X {\n" + 
-				"	class Inner {\n" + 
-				"		class Level2 {\n" + 
-				"			class Level3 {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test3/Test.java",
-				"package test3;\n" + 
-				"/**\n" + 
-				" * @see test1.X.Inner\n" + 
-				" * @see test1.X.Inner.Level2\n" + 
-				" * @see test1.X.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {}\n"
-			},
-			// no warning
-			"----------\n" + 
-			"1. ERROR in test3\\Test.java (at line 3)\r\n" + 
-			"	* @see test1.X.Inner\r\n" + 
-			"	       ^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test1.X.Inner is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test3\\Test.java (at line 4)\r\n" + 
-			"	* @see test1.X.Inner.Level2\r\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test1.X.Inner is not visible\n" + 
-			"----------\n" + 
-			"3. ERROR in test3\\Test.java (at line 5)\r\n" + 
-			"	* @see test1.X.Inner.Level2.Level3\r\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test1.X.Inner is not visible\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug149013_Public03() {
-		this.reportMissingJavadocTags = CompilerOptions.DISABLED;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test1/X.java",
-				"package test1;\n" + 
-				"public class X {\n" + 
-				"	class Inner {\n" + 
-				"		class Level2 {\n" + 
-				"			class Level3 {}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-				"test3/Test.java",
-				"package test3;\n" + 
-				"/**\n" + 
-				" * @see test1.X.Inner\n" + 
-				" * @see test1.X.Inner.Level2\n" + 
-				" * @see test1.X.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {}\n"
-			},
-			// no warning
-			"----------\n" + 
-			"1. ERROR in test3\\Test.java (at line 3)\r\n" + 
-			"	* @see test1.X.Inner\r\n" + 
-			"	       ^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test1.X.Inner is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test3\\Test.java (at line 4)\r\n" + 
-			"	* @see test1.X.Inner.Level2\r\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test1.X.Inner is not visible\n" + 
-			"----------\n" + 
-			"3. ERROR in test3\\Test.java (at line 5)\r\n" + 
-			"	* @see test1.X.Inner.Level2.Level3\r\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test1.X.Inner is not visible\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * @bug 153399: [javadoc] JDT Core should warn if the @value tag is not used correctly
-	 * @test Ensure that 'value' tag is well warned when not used correctly
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=153399"
-	 */
-	public void testBug153399a() {
-		String[] testFiles = new String[] {
-			"X.java",
-			"public class X { \n" + 
-			"	/**\n" + 
-			"	 * {@value #MY_VALUE}\n" + 
-			"	 */\n" + 
-			"	public final static int MY_VALUE = 0; \n" + 
-			"	/**\n" + 
-			"	 * {@value #MY_VALUE}\n" + 
-			"	 */\n" + 
-			"	public void foo() {}\n" + 
-			"	/**\n" + 
-			"	 * {@value #MY_VALUE}\n" + 
-			"	 */\n" + 
-			"	class Sub {} \n" + 
-			"}\n"
-		};
-		if (complianceLevel.equals(COMPLIANCE_1_3) || complianceLevel.equals(COMPLIANCE_1_4)) {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 7)\n" + 
-				"	* {@value #MY_VALUE}\n" + 
-				"	    ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 11)\n" + 
-				"	* {@value #MY_VALUE}\n" + 
-				"	    ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n"
-			);
-		} else {
-			runConformTest(testFiles);
-		}
-	}
-	public void testBug153399b() {
-		String[] testFiles = new String[] {
-			"X.java",
-			"public class X { \n" + 
-			"	/**\n" + 
-			"	 * {@value}\n" + 
-			"	 */\n" + 
-			"	public final static int MY_VALUE = 0; \n" + 
-			"	/**\n" + 
-			"	 * {@value}\n" + 
-			"	 */\n" + 
-			"	public void foo() {}\n" + 
-			"	/**\n" + 
-			"	 * {@value}\n" + 
-			"	 */\n" + 
-			"	class Sub {} \n" + 
-			"}\n"
-		};
-		if (complianceLevel.equals(COMPLIANCE_1_3) || complianceLevel.equals(COMPLIANCE_1_4)) {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 7)\n" + 
-				"	* {@value}\n" + 
-				"	    ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 11)\n" + 
-				"	* {@value}\n" + 
-				"	    ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n"
-			);
-		} else {
-			runConformTest(testFiles);
-		}
-	}
-	public void testBug153399c() {
-		String[] testFiles = new String[] {
-			"p1/X.java",
-			"package p1;\n" + 
-			"public class X {\n" + 
-			"	/**\n" + 
-			"	 * @return a\n" + 
-			"	 */\n" + 
-			"	boolean get() {\n" + 
-			"		return false;\n" + 
-			"	}\n" + 
-			"}\n"
-		};
-		runConformTest(testFiles);
-	}
-	public void testBug153399d() {
-		String[] testFiles = new String[] {
-			"X.java",
-			"public class X { \n" + 
-			"	/**\n" + 
-			"	 * {@value #MY_VALUE}\n" + 
-			"	 * {@value}\n" + 
-			"	 * {@value Invalid}\n" + 
-			"	 */\n" + 
-			"	public final static int MY_VALUE = 0; \n" + 
-			"}\n"
-		};
-		if (complianceLevel.equals(COMPLIANCE_1_3) || complianceLevel.equals(COMPLIANCE_1_4)) {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* {@value #MY_VALUE}\n" + 
-				"	    ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* {@value}\n" + 
-				"	    ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n"
-			);
-		} else {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* {@value Invalid}\n" + 
-				"	          ^^^^^^^^\n" + 
-				"Javadoc: Invalid reference\n" + 
-				"----------\n"
-			);
-		}
-	}
-	public void testBug153399e() {
-		String[] testFiles = new String[] {
-			"X.java",
-			"public class X { \n" + 
-			"	/**\n" + 
-			"	 * {@value Invalid}\n" + 
-			"	 * {@value #MY_VALUE}\n" + 
-			"	 */\n" + 
-			"	public final static int MY_VALUE = 0; \n" + 
-			"}\n"
-		};
-		if (complianceLevel.equals(COMPLIANCE_1_3) || complianceLevel.equals(COMPLIANCE_1_4)) {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* {@value Invalid}\n" + 
-				"	    ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n"
-			);
-		} else {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* {@value Invalid}\n" + 
-				"	          ^^^^^^^^\n" + 
-				"Javadoc: Invalid reference\n" + 
-				"----------\n"
-			);
-		}
-	}
-
-	/**
-	 * @bug 160015: [1.5][javadoc] Missing warning on autoboxing compatible methods
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=160015"
-	 */
-	public void testBug160015() {
-		runNegativeTest(new String[] {
-				"Test.java",
-				"/**\n" + 
-				" * @see #method(Long) Warning!\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	public void method(long l) {}\n" + 
-				"	/**\n" + 
-				"	 * @see #method(Long) Warning!\n" + 
-				"	 */\n" + 
-				"	void bar() {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see #method(Long) Warning!\n" + 
-			"	        ^^^^^^\n" + 
-			"Javadoc: The method method(long) in the type Test is not applicable for the arguments (Long)\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 7)\n" + 
-			"	* @see #method(Long) Warning!\n" + 
-			"	        ^^^^^^\n" + 
-			"Javadoc: The method method(long) in the type Test is not applicable for the arguments (Long)\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * @bug 163659: [javadoc] Compiler should warn when method parameters are not identical
-	 * @test Ensure that a warning is raised when method parameter types are not identical
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=163659"
-	 */
-	public void testBug163659() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-				" * @see #foo(MyInterface)\n" + 
-				" * @see #foo(MySubInterface)\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	public void foo(MyInterface mi) {\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"interface MyInterface {}\n" + 
-				"interface MySubInterface extends MyInterface {} \n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 3)\n" + 
-			"	* @see #foo(MySubInterface)\n" + 
-			"	        ^^^\n" + 
-			"Javadoc: The method foo(MyInterface) in the type Test is not applicable for the arguments (MySubInterface)\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * @bug 165794: [javadoc] Should not report ambiguous on method with parameterized types as parameters
-	 * @test Ensure that no warning are raised when ambiguous parameterized methods are present in javadoc comments
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=165794"
-	 */
-	public void testBug165794() {
-		String[] testFiles = new String[] {
-			"X.java",
-			"/**\n" + 
-			" * No reasonable hint for resolving the {@link #getMax(A)}.\n" + 
-			" */\n" + 
-			"public class X {\n" + 
-			"    /**\n" + 
-			"     * Extends Number method.\n" + 
-			"     * @see #getMax(A ipZ)\n" + 
-			"     */\n" + 
-			"    public <T extends Y> T getMax(final A<T> ipY) {\n" + 
-			"        return ipY.t();\n" + 
-			"    }\n" + 
-			"    \n" + 
-			"    /**\n" + 
-			"     * Extends Exception method.\n" + 
-			"     * @see #getMax(A ipY)\n" + 
-			"     */\n" + 
-			"    public <T extends Z> T getMax(final A<T> ipZ) {\n" + 
-			"        return ipZ.t();\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"class A<T> {\n" + 
-			"	T t() { return null; }\n" + 
-			"}\n" + 
-			"class Y {}\n" + 
-			"class Z {}"
-		};
-		if (complianceLevel.equals(COMPLIANCE_1_3) || complianceLevel.equals(COMPLIANCE_1_4)) {
-			return;
-		}
-		runConformTest(testFiles);
-	}
-
-	/**
-	 * @bug 166365: [javadoc] severity level of malformed javadoc comments did not work properly
-	 * @test Ensure that no warning is raised when visibility is lower than the javadoc option one
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=166365"
-	 */
-	public void testBug166365() {
-		String[] testFiles = new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    /**\n" + 
-			"     * @return\n" + 
-			"     */\n" + 
-			"    private String getSomePrivate() {\n" + 
-			"        return \"SomePrivate\";\n" + 
-			"    }\n" + 
-			"    /**\n" + 
-			"     * @return\n" + 
-			"     */\n" + 
-			"    protected String getSomeProtected() {\n" + 
-			"        return \"SomeProtected\";\n" + 
-			"    }\n" + 
-			"    /**\n" + 
-			"     * @return\n" + 
-			"     */\n" + 
-			"    String getSomeDefault() {\n" + 
-			"        return \"SomeDefault\";\n" + 
-			"    }\n" + 
-			"    /**\n" + 
-			"     * @return\n" + 
-			"     */\n" + 
-			"    public String getSomePublic() {\n" + 
-			"        return \"SomePublic\";\n" + 
-			"    }\n" + 
-			"}\n"
-		};
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(testFiles,
-			"----------\n" + 
-			"1. ERROR in X.java (at line 21)\n" + 
-			"	* @return\n" + 
-			"	   ^^^^^^\n" + 
-			"Javadoc: Missing return type description\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * @bug 166436: [javadoc] Potentially wrong javadoc warning for unexpected duplicate tag value
-	 * @test Ensure that no duplicate warning is raised for value tag
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=166436"
-	 */
-	public void testBug166436() {
-		String[] testFiles = new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static final String PUBLIC_CONST = \"public\";\n" + 
-			"	protected static final String PROTECTED_CONST = \"protected\";\n" + 
-			"	static final String DEFAULT_CONST = \"default\"; \n" + 
-			"	private static final String PRIVATE_CONST = \"private\"; \n" + 
-			"	/**\n" + 
-			"	 * Values:\n" + 
-			"	 * <ul>\n" + 
-			"	 * 	<li>{@value #PUBLIC_CONST}</li>\n" + 
-			"	 * 	<li>{@value #PROTECTED_CONST}</li>\n" + 
-			"	 * 	<li>{@value #DEFAULT_CONST}</li>\n" + 
-			"	 * 	<li>{@value #PRIVATE_CONST}</li>\n" + 
-			"	 * </ul>\n" + 
-			"	 */\n" + 
-			"	public X() {\n" + 
-			"	}\n" + 
-			"}\n"
-		};
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		if (complianceLevel.equals(COMPLIANCE_1_3) || complianceLevel.equals(COMPLIANCE_1_4)) {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 9)\n" + 
-				"	* 	<li>{@value #PUBLIC_CONST}</li>\n" + 
-				"	  	      ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 10)\n" + 
-				"	* 	<li>{@value #PROTECTED_CONST}</li>\n" + 
-				"	  	      ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 11)\n" + 
-				"	* 	<li>{@value #DEFAULT_CONST}</li>\n" + 
-				"	  	      ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 12)\n" + 
-				"	* 	<li>{@value #PRIVATE_CONST}</li>\n" + 
-				"	  	      ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n"
-			);
-		} else {
-			runNegativeTest(testFiles,
-				"----------\n" + 
-				"1. ERROR in X.java (at line 10)\n" + 
-				"	* 	<li>{@value #PROTECTED_CONST}</li>\n" + 
-				"	  	            ^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: \'public\' visibility for malformed doc comments hides this \'protected\' reference\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 11)\n" + 
-				"	* 	<li>{@value #DEFAULT_CONST}</li>\n" + 
-				"	  	            ^^^^^^^^^^^^^^\n" + 
-				"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 12)\n" + 
-				"	* 	<li>{@value #PRIVATE_CONST}</li>\n" + 
-				"	  	            ^^^^^^^^^^^^^^\n" + 
-				"Javadoc: \'public\' visibility for malformed doc comments hides this \'private\' reference\n" + 
-				"----------\n"
-			);
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest.java
deleted file mode 100644
index cf6e61f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest.java
+++ /dev/null
@@ -1,578 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public abstract class JavadocTest extends AbstractRegressionTest {
-		
-	boolean useLibrary = false;
-	static String ZIP_FILE = "/TestJavadocVisibility.zip";
-	static final String LINE_SEPARATOR = System.getProperty("line.separator");
-	public static ArrayList ALL_CLASSES = null;
-	static final String DOC_COMMENT_SUPPORT = System.getProperty("doc.support");
-	static boolean debug = false;
-
-	// Javadoc execution
-	protected static final String JAVADOC_NAME = 
-		File.pathSeparatorChar == ':' ? "javadoc" : "javadoc.exe";
-  protected static String javadocCommandLineHeader;
-	
-	static {
-		ALL_CLASSES = new ArrayList();
-		ALL_CLASSES.add(JavadocBugsTest.class);
-		ALL_CLASSES.add(JavadocTestForMethod.class);
-		ALL_CLASSES.add(JavadocTestMixed.class);
-		ALL_CLASSES.add(JavadocTestForClass.class);
-		ALL_CLASSES.add(JavadocTestForConstructor.class);
-		ALL_CLASSES.add(JavadocTestForField.class);
-		ALL_CLASSES.add(JavadocTestForInterface.class);
-		ALL_CLASSES.add(JavadocTestOptions.class);
-	}
-	
-	
-	public static void addTest(TestSuite suite, Class testClass) {
-		TestSuite innerSuite = new TestSuite(testClass);
-		suite.addTest(innerSuite);
-	}
-
-	public static Test suite() {
-		TestSuite testSuite = new TestSuite(JavadocTest.class.getName());
-	
-		// Reset forgotten subsets of tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS = null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-	
-		for (int i = 0, size=ALL_CLASSES.size(); i < size; i++) {
-			Class testClass = (Class) ALL_CLASSES.get(i);
-			Test suite = buildAllCompliancesTestSuite(testClass);
-			testSuite.addTest(suite);
-		}
-		int complianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-		if ((complianceLevels & AbstractCompilerTest.F_1_3) != 0) {
-			testSuite.addTest(buildUniqueComplianceTestSuite(JavadocTest_1_3.class, COMPLIANCE_1_3));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_4) != 0) {
-			testSuite.addTest(buildUniqueComplianceTestSuite(JavadocTest_1_4.class, COMPLIANCE_1_4));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_5) != 0) {
-			testSuite.addTest(buildUniqueComplianceTestSuite(JavadocTest_1_5.class, COMPLIANCE_1_5));
-		}
-		return testSuite;
-	}
-	
-	public static Test suiteForComplianceLevel(String level, Class testClass) {
-		Test suite = buildAllCompliancesTestSuite(testClass);
-		return new RegressionTestSetup(suite, level);
-	}
-	
-	public JavadocTest(String name) {
-		super(name);
-	}
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
-//		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.ENABLED);
-		// Set default before bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=110964 changes
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, CompilerOptions.ENABLED);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef, CompilerOptions.ENABLED);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsNotVisibleRef, CompilerOptions.ENABLED);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, CompilerOptions.PRIVATE);
-//		options.put(CompilerOptions.OPTION_ReportMissingSerialVersion, CompilerOptions.IGNORE);
-		return options;
-	}
-	
-	protected String[] getDefaultClassPaths() {
-		if (useLibrary) {
-			String[] classLibs = super.getDefaultClassPaths();
-			final int length = classLibs.length;
-			String[] newClassPaths = new String[length + 1];
-			System.arraycopy(classLibs, 0, newClassPaths, 0, length);
-			newClassPaths[length] = getClass().getResource(ZIP_FILE).getPath();
-			return newClassPaths;
-		}
-		return super.getDefaultClassPaths();
-	}
-	
-	static String[] referencedClasses = null;
-	static {
-		referencedClasses =
-			new String[] {
-				"test/AbstractVisibility.java",
-				"package test;\n" +
-				"public abstract class AbstractVisibility {\n" +
-				"	private class AvcPrivate {\n" +
-				"		private int avf_private = 10;\n" +
-				"		public int avf_public = avf_private;\n" +
-				"		private int avm_private() {\n" +
-				"			avf_private = (new AvcPrivate()).avf_private;\n" +
-				"			return avf_private;\n" +
-				"		}\n" +
-				"		public int avm_public() {\n" +
-				"			return avm_private();\n" +
-				"		}\n" +
-				"	}\n" +
-				"	public class AvcPublic {\n" +
-				"		private int avf_private = 10;\n" +
-				"		public int avf_public = avf_private;\n" +
-				"		private int avm_private() {\n" +
-				"			avf_private = (new AvcPrivate()).avf_private;\n" +
-				"			return avf_private;\n" +
-				"		}\n" +
-				"		public int avm_public() {\n" +
-				"			return avm_private();\n" +
-				"		}\n" +
-				"	}\n" +
-				"	private int avf_private = 100;\n" +
-				"	public int avf_public = avf_private;\n" +
-				"	\n" +
-				"	private int avm_private() {\n" +
-				"		avf_private = (new AvcPrivate()).avf_private;\n" +
-				"		return avf_private;\n" +
-				"	}\n" +
-				"	public int avm_public() {\n" +
-				"		return avm_private();\n" +
-				"	}\n" +
-				"}\n",
-				"test/Visibility.java",
-				"package test;\n" +
-				"public class Visibility extends AbstractVisibility {\n" +
-				"	private class VcPrivate {\n" +
-				"		private int vf_private = 10;\n" +
-				"		public int vf_public = vf_private;\n" +
-				"		private int vm_private() {\n" +
-				"			vf_private = (new VcPrivate()).vf_private;\n" +
-				"			avf_private = vf_private;\n" +
-				"			return vf_private+avf_private;\n" +
-				"		}\n" +
-				"		public int vm_public() {\n" +
-				"			return vm_private();\n" +
-				"		}\n" +
-				"	};\n" +
-				"	public class VcPublic {\n" +
-				"		private int vf_private = 10;\n" +
-				"		public int vf_public = vf_private;\n" +
-				"		private int vm_private() {\n" +
-				"			vf_private = (new VcPrivate()).vf_private;\n" +
-				"			avf_private = vf_private;\n" +
-				"			return vf_private+avf_private;\n" +
-				"		}\n" +
-				"		public int vm_public() {\n" +
-				"			return vm_private();\n" +
-				"		}\n" +
-				"	};\n" +
-				"	private int vf_private = 100;\n" +
-				"	private int avf_private = 100;\n" +
-				"	public int vf_public = vf_private;\n" +
-				"	public int avf_public = vf_private;\n" +
-				"	\n" +
-				"	private int vm_private() {\n" +
-				"		vf_private = (new VcPrivate()).vf_private;\n" +
-				"		avf_private = vf_private;\n" +
-				"		return vf_private+avf_private;\n" +
-				"	}\n" +
-				"	public int vm_public() {\n" +
-				"		return vm_private();\n" +
-				"	}\n" +
-				"}\n",
-				"test/copy/VisibilityPackage.java",
-				"package test.copy;\n" +
-				"class VisibilityPackage {\n" +
-				"	private class VpPrivate {\n" +
-				"		private int vf_private = 10;\n" +
-				"		public int vf_public = vf_private;\n" +
-				"		private int vm_private() {\n" +
-				"			vf_private = (new VpPrivate()).vf_private;\n" +
-				"			return vf_private;\n" +
-				"		}\n" +
-				"		public int vm_public() {\n" +
-				"			return vm_private();\n" +
-				"		}\n" +
-				"	}\n" +
-				"	public class VpPublic {\n" +
-				"		private int vf_private = 10;\n" +
-				"		public int vf_public = vf_private;\n" +
-				"		private int vm_private() {\n" +
-				"			vf_private = (new VpPrivate()).vf_private;\n" +
-				"			return vf_private;\n" +
-				"		}\n" +
-				"		public int vm_public() {\n" +
-				"			return vm_private();\n" +
-				"		}\n" +
-				"	}\n" +
-				"	private int vf_private = 100;\n" +
-				"	public int vf_public = vf_private;\n" +
-				"	\n" +
-				"	private int vm_private() {\n" +
-				"		vf_private = (new VpPrivate()).vf_private;\n" +
-				"		return vf_private;\n" +
-				"	}\n" +
-				"	public int vm_public() {\n" +
-				"		return vm_private();\n" +
-				"	}\n" +
-				"}\n",
-				"test/copy/VisibilityPublic.java",
-				"package test.copy;\n" +
-				"public class VisibilityPublic {\n" +
-				"	private class VpPrivate {\n" +
-				"		private int vf_private = 10;\n" +
-				"		public int vf_public = vf_private;\n" +
-				"		private int vm_private() {\n" +
-				"			vf_private = (new VpPrivate()).vf_private;\n" +
-				"			return vf_private;\n" +
-				"		}\n" +
-				"		public int vm_public() {\n" +
-				"			return vm_private();\n" +
-				"		}\n" +
-				"	}\n" +
-				"	public class VpPublic {\n" +
-				"		private int vf_private = 10;\n" +
-				"		public int vf_public = vf_private;\n" +
-				"		private int vm_private() {\n" +
-				"			vf_private = (new VpPrivate()).vf_private;\n" +
-				"			return vf_private;\n" +
-				"		}\n" +
-				"		public int vm_public() {\n" +
-				"			return vm_private();\n" +
-				"		}\n" +
-				"	}\n" +
-				"	private int vf_private = 100;\n" +
-				"	public int vf_public = vf_private;\n" +
-				"	\n" +
-				"	private int vm_private() {\n" +
-				"		vf_private = (new VpPrivate()).vf_private;\n" +
-				"		return vf_private;\n" +
-				"	}\n" +
-				"	public int vm_public() {\n" +
-				"		return vm_private();\n" +
-				"	}\n" +
-				"}\n" };
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		if (RUN_JAVAC) {
-			javadocCommandLineHeader = 
-				jdkRootDirPath.append("bin").append(JAVADOC_NAME).toString(); // PREMATURE replace JAVA_NAME and JAVAC_NAME with locals? depends on potential reuse
-		}
-//		SHIFT = true;
-//		INDENT = 3;
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-//		SHIFT = false;
-//		INDENT = 2;
-		super.tearDown();
-	}
-
-	protected void runConformReferenceTest(String[] testFiles) {
-		String[] completedFiles = testFiles;
-		if (!useLibrary) {
-			completedFiles = new String[testFiles.length + referencedClasses.length];
-			System.arraycopy(referencedClasses, 0, completedFiles, 0, referencedClasses.length);
-			System.arraycopy(testFiles, 0, completedFiles, referencedClasses.length, testFiles.length);
-		}
-		runConformTest(completedFiles);
-	}
-	protected void runNegativeReferenceTest(String[] testFiles, String expected) {
-		String[] completedFiles = testFiles;
-		if (!useLibrary) {
-			completedFiles = new String[testFiles.length + referencedClasses.length];
-			System.arraycopy(referencedClasses, 0, completedFiles, 0, referencedClasses.length);
-			System.arraycopy(testFiles, 0, completedFiles, referencedClasses.length, testFiles.length);
-		}
-		runNegativeTest(completedFiles, expected);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractRegressionTest#runConformTest(java.lang.String[], java.lang.String, java.lang.String[], boolean, java.lang.String[], java.util.Map, org.eclipse.wst.jsdt.internal.compiler.ICompilerRequestor)
-	 *
-	protected void runConformTest(String[] testFiles,
-			String expectedSuccessOutputString,
-			String[] classLib,
-			boolean shouldFlushOutputDirectory,
-			String[] vmArguments,
-			Map customOptions,
-			ICompilerRequestor clientRequestor) {
-		if (TESTS_NAMES != null || TESTS_PREFIX != null || TESTS_NUMBERS != null || TESTS_RANGE != null) {
-			writeFiles(testFiles);
-		}
-		super.runConformTest(testFiles,
-			expectedSuccessOutputString,
-			classLib,
-			shouldFlushOutputDirectory,
-			vmArguments,
-			customOptions,
-			clientRequestor);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractRegressionTest#runNegativeTest(java.lang.String[], java.lang.String, java.lang.String[], boolean, java.util.Map, boolean)
-	 *
-	protected void runNegativeTest(String[] testFiles,
-			String expectedProblemLog,
-			String[] classLib,
-			boolean shouldFlushOutputDirectory,
-			Map customOptions,
-			boolean generateOutput) {
-		if (TESTS_NAMES != null || TESTS_PREFIX != null || TESTS_NUMBERS != null || TESTS_RANGE != null) {
-			writeFiles(testFiles);
-		}
-		super.runNegativeTest(testFiles,
-			expectedProblemLog,
-			classLib,
-			shouldFlushOutputDirectory,
-			customOptions,
-			generateOutput);
-	}
-	*/
-	protected void writeFiles(String[] testFiles) {
-		String classDirName = getClass().getName().substring(getClass().getName().lastIndexOf('.')+1); //.substring(11);
-		String testName = getName();
-		int idx = testName.indexOf(" - ");
-		if (idx > 0) {
-			testName = testName.substring(idx+3);
-		}
-
-    // File dir = new File("d:/usr/OTI/tests/javadoc/");
-		// non portable
-		createOutputTestDirectory(classDirName);
-		createOutputTestDirectory(Character.toUpperCase(testName.charAt(0)) + 
-				testName.substring(1));
-		System.out.println("Write test file to " + 
-				this.outputTestDirectory.getPath() + "...");
-		for (int i=0, length=testFiles.length; i<length; i++) {
-			String contents = testFiles[i+1];
-			String fileName = testFiles[i++];
-			String dirFileName = this.outputTestDirectory.getPath();
-			if (fileName.indexOf("Visibility")>0) {
-				continue;
-			} else {
-				int index = fileName.lastIndexOf('/');
-				if (index > 0) {
-					String subdirs = fileName.substring(0, index);
-					String packName = subdirs.replace('/', '.');
-					contents = "package "+packName+";"+contents.substring(contents.indexOf(';')+1);
-					File dir = new File(dirFileName, subdirs);
-					if (!dir.exists()) dir.mkdirs();
-					if (RUN_JAVAC) {
-						Util.writeToFile(contents, dirFileName+"/"+fileName);
-						// PREMATURE this results into a duplicate file.
-					}
-					fileName = fileName.substring(index+1);
-				}
-			}
-			Util.writeToFile(contents, dirFileName+"/"+fileName); 
-			// REVIEW don't know why this is created at the default package level
-		}
-	}
-
-	/*
-	 * Run Sun compilation using javadoc.
-	 * See implementation in parent for details.
-	 */
-	protected void runJavac(
-			String[] testFiles, 
-			final String expectedProblemLog, 
-			final String expectedSuccessOutputString, 
-			boolean shouldFlushOutputDirectory) {
-		String testName = null;
-		Process compileProcess = null;
-		Process execProcess = null;
-		try {
-			// Init test name
-			testName = testName();
-
-			// Cleanup javac output dir if needed
-			File javacOutputDirectory = new File(JAVAC_OUTPUT_DIR);
-			if (shouldFlushOutputDirectory) {
-				Util.delete(javacOutputDirectory);
-			}
-			
-			// Write files in dir
-			writeFiles(testFiles);
-
-			// Prepare command line
-			StringBuffer cmdLine = new StringBuffer(javadocCommandLineHeader);
-			// compute extra classpath
-			String[] classpath = Util.concatWithClassLibs(JAVAC_OUTPUT_DIR, false);
-			StringBuffer cp = new StringBuffer(" -classpath ");
-			int length = classpath.length;
-			for (int i = 0; i < length; i++) {
-				if (i > 0)
-				  cp.append(File.pathSeparatorChar);
-				if (classpath[i].indexOf(" ") != -1) {
-					cp.append("\"" + classpath[i] + "\"");
-				} else {
-					cp.append(classpath[i]);
-				}
-			} 
-			cmdLine.append(cp);
-			// add source files
-			for (int i = 0; i < testFiles.length; i += 2) {
-				// *.java is not enough (p1/X.java, p2/Y.java)
-				cmdLine.append(' ');
-				cmdLine.append(testFiles[i]);
-			}
-
-			// Launch process
-			compileProcess = Runtime.getRuntime().exec(
-				cmdLine.toString(), null, this.outputTestDirectory);
-
-			// Log errors
-      Logger errorLogger = new Logger(compileProcess.getErrorStream(), "ERROR");            
-
-      // Log output
-      Logger outputLogger = new Logger(compileProcess.getInputStream(), "OUTPUT");
-
-      // start the threads to run outputs (standard/error)
-      errorLogger.start();
-      outputLogger.start();
-
-      // Wait for end of process
-			int exitValue = compileProcess.waitFor();
-			errorLogger.join(); // make sure we get the whole output
-			outputLogger.join();
-
-			// Report raw javadoc results
-			if (! testName.equals(javacTestName)) {
-				javacTestName = testName;
-				javacTestErrorFlag = false;
-				javacFullLog.println("-----------------------------------------------------------------");
-				javacFullLog.println(CURRENT_CLASS_NAME + " " + testName);
-			}
-			if (exitValue != 0) {
-				javacTestErrorFlag = true;
-			}
-			if (errorLogger.buffer.length() > 0) {
-				javacFullLog.println("--- javac err: ---");
-				javacFullLog.println(errorLogger.buffer.toString());
-			}
-			if (outputLogger.buffer.length() > 0) {
-				javacFullLog.println("--- javac out: ---");
-				javacFullLog.println(outputLogger.buffer.toString());
-			}
-
-			// Compare compilation results
-			if (expectedProblemLog == null || expectedProblemLog.length() == 0) {
-				// Eclipse found no error and no warning
-				if (exitValue != 0) {
-					// Javac found errors
-					System.out.println("----------------------------------------");
-					System.out.println(testName + " - Javadoc has found error(s) but Eclipse expects conform result:\n");
-					javacFullLog.println("JAVAC_MISMATCH: Javadoc has found error(s) but Eclipse expects conform result");
-					System.out.println(errorLogger.buffer.toString());
-					printFiles(testFiles);
-					DIFF_COUNTERS[0]++;
-				} 
-				else {
-					// Javac found no error - may have found warnings
-					if (errorLogger.buffer.length() > 0) {
-						System.out.println("----------------------------------------");
-						System.out.println(testName + " - Javadoc has found warning(s) but Eclipse expects conform result:\n");
-						javacFullLog.println("JAVAC_MISMATCH: Javadoc has found warning(s) but Eclipse expects conform result");
-						System.out.println(errorLogger.buffer.toString());
-						printFiles(testFiles);
-						DIFF_COUNTERS[0]++;
-					} 
-				}
-			} 
-			else {
-				// Eclipse found errors or warnings
-				if (errorLogger.buffer.length() == 0) {
-					System.out.println("----------------------------------------");
-					System.out.println(testName + " - Eclipse has found error(s)/warning(s) but Javadoc did not find any:");
-					javacFullLog.println("JAVAC_MISMATCH: Eclipse has found error(s)/warning(s) but Javadoc did not find any");
-					dualPrintln("eclipse:");
-					dualPrintln(expectedProblemLog);
-					printFiles(testFiles);
-					DIFF_COUNTERS[1]++;
-				} else if (expectedProblemLog.indexOf("ERROR") > 0 && exitValue == 0){
-					System.out.println("----------------------------------------");
-					System.out.println(testName + " - Eclipse has found error(s) but Javadoc only found warning(s):");
-					javacFullLog.println("JAVAC_MISMATCH: Eclipse has found error(s) but Javadoc only found warning(s)");
-					dualPrintln("eclipse:");
-					dualPrintln(expectedProblemLog);
-					System.out.println("javadoc:");
-					System.out.println(errorLogger.buffer.toString());
-					printFiles(testFiles);
-					DIFF_COUNTERS[1]++;
-				} else {
-					// PREMATURE refine comparison
-					// TODO (frederic) compare warnings in each result and verify they are similar...
-//						System.out.println(testName+": javac has found warnings :");
-//						System.out.print(errorLogger.buffer.toString());
-//						System.out.println(testName+": we're expecting warning results:");
-//						System.out.println(expectedProblemLog);
-				}
-			}
-		} 
-		catch (InterruptedException e1) {
-			if (compileProcess != null) compileProcess.destroy();
-			if (execProcess != null) execProcess.destroy();
-			System.out.println(testName+": Sun javadoc compilation was aborted!");
-			javacFullLog.println("JAVAC_WARNING: Sun javadoc compilation was aborted!");
-			e1.printStackTrace(javacFullLog);
-		}
-		catch (Throwable e) {
-			System.out.println(testName+": could not launch Sun javadoc compilation!");
-			e.printStackTrace();
-			javacFullLog.println("JAVAC_ERROR: could not launch Sun javac compilation!");
-			e.printStackTrace(javacFullLog);
-			// PREMATURE failing the javac pass or comparison could also fail
-			//           the test itself
-		} 
-		finally {
-			Util.delete(outputTestDirectory);
-		}
-	}
-	
-	protected void	printJavacResultsSummary() {
-		if (RUN_JAVAC) {
-			Integer count = (Integer)TESTS_COUNTERS.get(CURRENT_CLASS_NAME);
-			if (count != null) {
-				int newCount = count.intValue()-1;
-				TESTS_COUNTERS.put(CURRENT_CLASS_NAME, new Integer(newCount));
-				if (newCount == 0) {
-					if (DIFF_COUNTERS[0]!=0 || DIFF_COUNTERS[1]!=0 || DIFF_COUNTERS[2]!=0) {
-						dualPrintln("===========================================================================");
-						dualPrintln("Results summary:");
-					}
-					if (DIFF_COUNTERS[0]!=0)
-						dualPrintln("	- "+DIFF_COUNTERS[0]+" test(s) where Javadoc found errors/warnings but Eclipse did not");
-					if (DIFF_COUNTERS[1]!=0)
-						dualPrintln("	- "+DIFF_COUNTERS[1]+" test(s) where Eclipse found errors/warnings but Javadoc did not");
-					System.out.println("\n");
-				}
-			}
-			javacFullLog.flush();
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForClass.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForClass.java
deleted file mode 100644
index 0313a05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForClass.java
+++ /dev/null
@@ -1,990 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTestForClass extends JavadocTest {
-
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(javadocTestClass());
-	}
-	public JavadocTestForClass(String name) {
-		super(name);
-	}
-	public static Class javadocTestClass() {
-		return JavadocTestForClass.class;
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-		return options;
-	}
-
-	/* (non-Javadoc)
-	 * Test unexpected tags
-	 */
-	public void test001() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Valid class javadoc\n"
-					+ "	 * @author ffr\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test002() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @param x Invalid tag\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @param x Invalid tag\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test003() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @throws NullPointerException Invalid tag\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @throws NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test004() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @exception NullPointerException Invalid tag\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @exception NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test005() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @return Invalid tag\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @return Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @exception NullPointerException Invalid tag\n"
-					+ "	 * @throws NullPointerException Invalid tag\n"
-					+ "	 * @return Invalid tag\n"
-					+ "	 * @param x Invalid tag\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @exception NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 4)\n"
-				+ "	* @throws NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 5)\n"
-				+ "	* @return Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 6)\n"
-				+ "	* @param x Invalid tag\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test007() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Valid class javadoc\n"
-					+ "	 * @author ffr\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void foo() {}\n"
-					+ "	/**\n"
-					+ "	 * Invalid javadoc comment\n"
-					+ "	 */\n"
-					+ "}\n" }
-			);
-	}
-
-	public void test008() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	public void foo() {}\n"
-					+ "	/**\n"
-					+ "	 * Invalid javadoc comment\n"
-					+ "	 */\n"
-					+ "}\n" }
-			);
-	}
-
-	public void test009() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid javadoc comment\n"
-					+ "	 */\n"
-					+ "}\n" }
-			);
-	}
-
-	/*
-	 * (non-Javadoc) Test @see tag
-	 */
-	// String references
-	public void test010() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"\n"
-					+ "	 * @see \"unterminated string\n"
-					+ "	 * @see \"invalid string\"\"\n"
-					+ "	 * @see \"invalid\" no text allowed after the string\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @see \"\n"
-				+ "	       ^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	* @see \"unterminated string\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	* @see \"invalid string\"\"\n"
-				+"	                       ^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 7)\n"
-				+ "	* @see \"invalid\" no text allowed after the string\n"
-				+ "	                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test011() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Valid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"Valid normal string\"\n"
-					+ "	 * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	// URL Link references
-	public void test012() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <a href=\n"
-					+ "	 * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @see <a href=\n"
-				+ "	       ^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	* @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-				+ "	                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test013() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Valid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</a>\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	// @see Classes references
-	public void test020() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Valid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility Valid ref: local class \n"
-					+ "	 * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility Valid ref: local class \n"
-					+ "	 * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test021() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see Unknown Invalid ref: unknown class \n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 5)\n"
-				+ "	* @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Unknown Invalid ref: unknown class \n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test022() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"public class X {\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test023() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "	/**\n"
-					+ "	 * Invalid external classes references \n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage Invalid ref: non visible class \n"
-					+ "	 * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see VisibilityPackage Invalid ref: non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test024() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"public class X {\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-				}
-		);
-	}
-
-	// @see Field references
-	public void test030() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Valid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #x Valid ref: accessible field\n"
-					+ "	 * @see Visibility#vf_public Valid ref: visible field\n"
-					+ "	 * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	int x;\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test031() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #x Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#unknown Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#vf_private Invalid ref: non visible field\n"
-					+ "	 * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-					+ "	 * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 5)\n"
-				+ "	* @see #x Invalid ref: non existent field\n"
-				+ "	        ^\n"
-				+ "Javadoc: x cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#unknown Invalid ref: non existent field\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#vf_private Invalid ref: non visible field\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test032() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"public class X {\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test033() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class fields references\n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
-					+ "	 * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-					+ "	 * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-					+ "	 * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-				+ "	                        ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-				+ "	                        ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-				+ "	                                 ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-				+ "	                                 ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	// @see method references
-	public void test040() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references with array\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test041() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references with array (non applicable arrays)\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[][][])\n"
-				+ "----------\n");
-	}
-
-	public void test042() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo() Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test043() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #unknown() Invalid ref: undefined local method reference\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @see #unknown() Invalid ref: undefined local method reference\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type X\n"
-				+ "----------\n");
-	}
-
-	public void test044() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, String, int, String)\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean)\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                             ^^^^^^\n"
-				+ "Javadoc: Vector cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test045() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see X#smr_foo() Valid local method reference\n"
-					+ "	 * @see X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test046() {
-		this.runConformTest(
-			new String[] {
-				"test/deep/qualified/name/p/X.java",
-				"package test.deep.qualified.name.p;\n"
-					+ "import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo() Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test047() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Valid package class methods references\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 * @see test.Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test048() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-existence)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#unknown() Invalid ref: non-existent method\n"
-					+ "	 * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-					+ "	 * @see Unknown#vm_public() Invalid ref: non-existent class\n"
-					+ "	 * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 5)\n"
-				+ "	* @see Visibility#unknown() Invalid ref: non-existent method\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility.VcPublic\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Unknown#vm_public() Invalid ref: non-existent class\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Visibility.Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test049() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private() Invalid ref: non-visible method\n"
-					+ "	 * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-					+ "	 * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 5)\n"
-				+ "	* @see Visibility#vm_private() Invalid ref: non-visible method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility.VcPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test050() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 5)\n"
-				+ "	* @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
-				+ "----------\n");
-	}
-
-	public void test051() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class methods references (non existent/visible arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 */  \n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 6)\n" + 
-			"	* @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 7)\n" + 
-			"	* @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test.copy.VisibilityPackage is not visible\n" + 
-			"----------\n");
-	}
-
-	public void test052() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.VisibilityPublic;\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class methods references \n" +
-				"	 * \n" +
-				"	 * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n" +
-				"	 */\n" +
-				"public class X {\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test053() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Valid other package visible class methods references \n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
-					+ "	 */\n"
-					+ "public class X {\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForConstructor.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForConstructor.java
deleted file mode 100644
index 9658557..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForConstructor.java
+++ /dev/null
@@ -1,946 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTestForConstructor extends JavadocTest {
-	public JavadocTestForConstructor(String name) {
-		super(name);
-	}
-	public static Class javadocTestClass() {
-		return JavadocTestForConstructor.class;
-	}
-
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(javadocTestClass());
-	}
-	static { // Use this static to initialize TESTS_NAMES (String[]) , TESTS_RANGE (int[2]), TESTS_NUMBERS (int[])
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-		return options;
-	}
-
-	/* (non-Javadoc)
-	 * Test @deprecated tag
-	 */
-	public void test001() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	\n"
-					+ "	{\n"
-					+ "		new Z();\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.java",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * \n"
-					+ "   * **   ** ** ** @deprecated */\n"
-					+ "	public Z() { \n"
-					+ "	}\n"
-					+ "}\n",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 4)\n"
-				+ "	new Z();\n"
-				+ "	^^^^^^^\n"
-				+ "The constructor Z() is deprecated\n"
-				+ "----------\n");
-	}
-
-	public void test002() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	\n"
-					+ "	{\n"
-					+ "		new Z(2);\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.java",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Valid tags with deprecation at end\n"
-					+ "   *\n"
-					+ "   * @param value Valid param tag\n"
-					+ "   * @throws NullPointerException Valid throws tag\n"
-					+ "   * @exception IllegalArgumentException Valid throws tag\n"
-					+ "   * @see X Valid see tag\n"
-					+ "   * @deprecated\n"
-					+ "   */\n"
-					+ "	public Z(int value) { \n"
-					+ "	}\n"
-					+ "}\n",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 4)\n"
-				+ "	new Z(2);\n"
-				+ "	^^^^^^^^\n"
-				+ "The constructor Z(int) is deprecated\n"
-				+ "----------\n");
-	}
-
-	public void test003() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	\n"
-					+ "	{\n"
-					+ "		new Z();\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.java",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Invalid javadoc tags with valid deprecation at end\n"
-					+ "   *\n"
-					+ "   * @param\n"
-					+ "   * @return\n"
-					+ "   * @throws Unknown\n"
-					+ "   * @see \"Invalid\n"
-					+ "   * @see Unknown\n"
-					+ "   * @param x\n"
-					+ "   * @deprecated\n"
-					+ "   */\n"
-					+ "	public Z() { \n"
-					+ "	}\n"
-					+ "}\n",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 4)\n"
-				+ "	new Z();\n"
-				+ "	^^^^^^^\n"
-				+ "The constructor Z() is deprecated\n"
-				+ "----------\n"
-				+ "----------\n"
-				+ "1. ERROR in Z.java (at line 5)\n"
-				+ "	* @param\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Missing parameter name\n"
-				+ "----------\n"
-				+ "2. ERROR in Z.java (at line 6)\n"
-				+ "	* @return\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "3. ERROR in Z.java (at line 7)\n"
-				+ "	* @throws Unknown\n"
-				+ "	          ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in Z.java (at line 8)\n"
-				+ "	* @see \"Invalid\n"
-				+ "	       ^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "5. ERROR in Z.java (at line 9)\n"
-				+ "	* @see Unknown\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "6. ERROR in Z.java (at line 10)\n"
-				+ "	* @param x\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	/*
-	 * (non-Javadoc) Test @see tag
-	 */
-	// String references
-	public void test010() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"unterminated string\n"
-					+ "	 * @see \"invalid\" no text allowed after the string\n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see \"unterminated string\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see \"invalid\" no text allowed after the string\n"
-				+ "	                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test011() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"Valid normal string\"\n"
-					+ "	 * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	// URL Link references
-	public void test012() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <a href=\n"
-					+ "	 * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see <a href=\n"
-				+ "	       ^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-				+ "	                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test013() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</a>\n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	// @see Classes references
-	public void test020() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility Valid ref: local class \n"
-					+ "	 * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility Valid ref: local class \n"
-					+ "	 * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test021() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see Unknown Invalid ref: unknown class \n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Unknown Invalid ref: unknown class \n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test022() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"	public X() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test023() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid external classes references \n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage Invalid ref: non visible class \n"
-					+ "	 * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPackage Invalid ref: non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test024() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"	public X() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	// @see Field references
-	public void test030() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	int x;\n"
-					+ "	/**\n"
-					+ "	 * Valid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #x Valid ref: accessible field\n"
-					+ "	 * @see Visibility#vf_public Valid ref: visible field\n"
-					+ "	 * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test031() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #x Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#unknown Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#vf_private Invalid ref: non visible field\n"
-					+ "	 * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-					+ "	 * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see #x Invalid ref: non existent field\n"
-				+ "	        ^\n"
-				+ "Javadoc: x cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#unknown Invalid ref: non existent field\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility#vf_private Invalid ref: non visible field\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test032() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"	public X() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test033() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class fields references\n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
-					+ "	 * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-					+ "	 * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-					+ "	 * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-				+ "	                        ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-				+ "	                        ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-				+ "	                                 ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-				+ "	                                 ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	// @see method references
-	public void test040() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references with array\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test041() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references with array (non applicable arrays)\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[][][])\n"
-				+ "----------\n");
-	}
-
-	public void test042() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo() Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test043() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #unknown() Invalid ref: undefined local method reference\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #unknown() Invalid ref: undefined local method reference\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type X\n"
-				+ "----------\n");
-	}
-
-	public void test044() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, String, int, String)\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean)\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                             ^^^^^^\n"
-				+ "Javadoc: Vector cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test045() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see X#smr_foo() Valid local method reference\n"
-					+ "	 * @see X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test046() {
-		this.runConformTest(
-			new String[] {
-				"test/deep/qualified/name/p/X.java",
-				"package test.deep.qualified.name.p;\n"
-					+ "import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo() Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test047() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid package class methods references\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 * @see test.Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test048() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-existence)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#unknown() Invalid ref: non-existent method\n"
-					+ "	 * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-					+ "	 * @see Unknown#vm_public() Invalid ref: non-existent class\n"
-					+ "	 * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#unknown() Invalid ref: non-existent method\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility.VcPublic\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Unknown#vm_public() Invalid ref: non-existent class\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Visibility.Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test049() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private() Invalid ref: non-visible method\n"
-					+ "	 * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-					+ "	 * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private() Invalid ref: non-visible method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility.VcPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test050() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
-				+ "----------\n");
-	}
-
-	public void test051() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class methods references (non existent/visible arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 */  \n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 7)\n" + 
-			"	* @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 8)\n" + 
-			"	* @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test.copy.VisibilityPackage is not visible\n" + 
-			"----------\n");
-	}
-
-	public void test052() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.VisibilityPublic;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class methods references \n" +
-				"	 * \n" +
-				"	 * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n" +
-				"	 */\n" +
-				"	public X() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test053() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid other package visible class methods references \n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
-					+ "	 */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForField.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForField.java
deleted file mode 100644
index 058f7a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForField.java
+++ /dev/null
@@ -1,1013 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTestForField extends JavadocTest {
-	public JavadocTestForField(String name) {
-		super(name);
-	}
-	public static Class javadocTestClass() {
-		return JavadocTestForField.class;
-	}
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(javadocTestClass());
-	}
-	static { // Use this static to initialize testNames (String[]) , testRange (int[2]), testNumbers (int[])
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-		return options;
-	}
-
-	/*
-	 * (non-Javadoc) Test @param tag
-	 */
-	public void test001() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc\n"
-					+ " * @author ffr\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "}\n" });
-	}
-
-	public void test002() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid field javadoc\n"
-					+ "	 * @param x Invalid tag\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @param x Invalid tag\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test003() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid field javadoc\n"
-					+ "	 * @throws NullPointerException Invalid tag\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @throws NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test004() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid field javadoc\n"
-					+ "	 * @exception NullPointerException Invalid tag\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @exception NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test005() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @return Invalid tag\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @return Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @exception NullPointerException Invalid tag\n"
-					+ "	 * @throws NullPointerException Invalid tag\n"
-					+ "	 * @return Invalid tag\n"
-					+ "	 * @param x Invalid tag\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @exception NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	* @throws NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	* @return Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 7)\n"
-				+ "	* @param x Invalid tag\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-	/*
-	 * (non-Javadoc)
-	 * Test @deprecated tag
-	 */
-	public void test007() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	int x;\n"
-					+ "	{\n"
-					+ "		x=(new Z()).z;\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.java",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * \n"
-					+ "   * **   ** ** ** @deprecated */\n"
-					+ "	public int z;\n"
-					+ "}\n",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 4)\n"
-				+ "	x=(new Z()).z;\n"
-				+ "	            ^\n"
-				+ "The field Z.z is deprecated\n"
-				+ "----------\n");
-	}
-
-	public void test008() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	int x;\n"
-					+ "	{\n"
-					+ "		x=(new Z()).z;\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.java",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Invalid tags with deprecation\n"
-					+ "   *\n"
-					+ "   * @param x\n"
-					+ "   * @return\n"
-					+ "   * @throws NullPointerException\n"
-					+ "   * @exception IllegalArgumentException\n"
-					+ "   * @see X\n"
-					+ "   * @deprecated\n"
-					+ "   */\n"
-					+ "	public int z;\n"
-					+ "}\n",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 4)\n"
-				+ "	x=(new Z()).z;\n"
-				+ "	            ^\n"
-				+ "The field Z.z is deprecated\n"
-				+ "----------\n"
-				+ "----------\n"
-				+ "1. ERROR in Z.java (at line 5)\n"
-				+ "	* @param x\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "2. ERROR in Z.java (at line 6)\n"
-				+ "	* @return\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "3. ERROR in Z.java (at line 7)\n"
-				+ "	* @throws NullPointerException\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "4. ERROR in Z.java (at line 8)\n"
-				+ "	* @exception IllegalArgumentException\n"
-				+ "	   ^^^^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * Test @see tag
-	 */
-	// String references
-	public void test010() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"unterminated string\n"
-					+ "	 * @see \"invalid\" no text allowed after the string\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see \"unterminated string\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see \"invalid\" no text allowed after the string\n"
-				+ "	                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test011() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"Valid normal string\"\n"
-					+ "	 * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" });
-	}
-
-	// URL Link references
-	public void test012() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <a href=\"invalid\">invalid</\n"
-					+ "	 * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see <a href=\"invalid\">invalid</\n"
-				+ "	                                ^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-				+ "	                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test013() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <A HREF = \"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</A>\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" });
-	}
-
-	// @see Classes references
-	public void test020() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility Valid ref: local class \n"
-					+ "	 * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility Valid ref: local class \n"
-					+ "	 * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" });
-	}
-
-	public void test021() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see Unknown Invalid ref: unknown class \n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Unknown Invalid ref: unknown class \n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test022() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"	public int x;\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test023() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid external classes references \n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage Invalid ref: non visible class \n"
-					+ "	 * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPackage Invalid ref: non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test024() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"	public int x;\n" +
-				"}\n"
-				}
-			);
-	}
-
-	// @see Field references
-	public void test030() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #str Valid ref: accessible field\n"
-					+ "	 * @see Visibility#vf_public Valid ref: visible field\n"
-					+ "	 * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "	public String str;\n"
-					+ "}\n" });
-	}
-
-	public void test031() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #str Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#unknown Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#vf_private Invalid ref: non visible field\n"
-					+ "	 * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-					+ "	 * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see #str Invalid ref: non existent field\n"
-				+ "	        ^^^\n"
-				+ "Javadoc: str cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#unknown Invalid ref: non existent field\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility#vf_private Invalid ref: non visible field\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test032() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Invalid other package non visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"	public int x;\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test033() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class fields references\n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
-					+ "	 * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-					+ "	 * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-					+ "	 * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-				+ "	                        ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-				+ "	                        ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-				+ "	                                 ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-				+ "	                                 ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	// @see method references
-	public void test040() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references with array\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test041() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references with array (non applicable arrays)\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(char , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char, int[][], String[][][], Vector[][][][])\n"
-				+ "----------\n");
-	}
-
-	public void test042() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo() Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test043() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #unknown() Invalid ref: undefined local method reference\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #unknown() Invalid ref: undefined local method reference\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type X\n"
-				+ "----------\n");
-	}
-
-	public void test044() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, String, int, String)\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean)\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                             ^^^^^^\n"
-				+ "Javadoc: Vector cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test045() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see X#smr_foo() Valid local method reference\n"
-					+ "	 * @see X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test046() {
-		this.runConformTest(
-			new String[] {
-				"test/deep/qualified/name/p/X.java",
-				"package test.deep.qualified.name.p;\n"
-					+ "import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo() Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test047() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid package class methods references\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 * @see test.Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "}\n" });
-	}
-
-	public void test048() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-existence)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#unknown() Invalid ref: non-existent method\n"
-					+ "	 * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-					+ "	 * @see Unknown#vm_public() Invalid ref: non-existent class\n"
-					+ "	 * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#unknown() Invalid ref: non-existent method\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility.VcPublic\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Unknown#vm_public() Invalid ref: non-existent class\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Visibility.Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test049() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private() Invalid ref: non-visible method\n"
-					+ "	 * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-					+ "	 * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private() Invalid ref: non-visible method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility.VcPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test050() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
-				+ "----------\n");
-	}
-
-	public void test051() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class methods references (non existent/visible arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 */  \n"
-					+ "	public int x;\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 7)\n" + 
-			"	* @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 8)\n" + 
-			"	* @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test.copy.VisibilityPackage is not visible\n" + 
-			"----------\n");
-	}
-
-	public void test052() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" +
-				"import test.copy.VisibilityPublic;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class methods references \n" +
-				"	 * \n" +
-				"	 * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n" +
-				"	 */\n" +
-				"	public int x;\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test053() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid other package visible class methods references \n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
-					+ "	 */\n"
-					+ "	public int x;\n"
-					+ "}\n" });
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForInterface.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForInterface.java
deleted file mode 100644
index b7fb201..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForInterface.java
+++ /dev/null
@@ -1,2219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTestForInterface extends JavadocTest {
-	public JavadocTestForInterface(String name) {
-		super(name);
-	}
-	public static Class javadocTestClass() {
-		return JavadocTestForInterface.class;
-	}
-
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(javadocTestClass());
-	}
-	static { // Use this static to initialize testNames (String[]) , testRange (int[2]), testNumbers (int[])
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-		return options;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * Javadoc comment of Interface
-	 */
-	// Unexpected tag
-	public void test001() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Valid class javadoc\n"
-					+ "	 * @author ffr\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test002() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @param x Invalid tag\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 3)\n"
-				+ "	* @param x Invalid tag\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test003() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @throws NullPointerException Invalid tag\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 3)\n"
-				+ "	* @throws NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test004() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @exception NullPointerException Invalid tag\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 3)\n"
-				+ "	* @exception NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test005() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @return Invalid tag\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 3)\n"
-				+ "	* @return Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid class javadoc\n"
-					+ "	 * @exception NullPointerException Invalid tag\n"
-					+ "	 * @throws NullPointerException Invalid tag\n"
-					+ "	 * @return Invalid tag\n"
-					+ "	 * @param x Invalid tag\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 3)\n"
-				+ "	* @exception NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 4)\n"
-				+ "	* @throws NullPointerException Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "3. ERROR in IX.java (at line 5)\n"
-				+ "	* @return Invalid tag\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "4. ERROR in IX.java (at line 6)\n"
-				+ "	* @param x Invalid tag\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test007() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Valid class javadoc\n"
-					+ "	 * @author ffr\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "	/**\n"
-					+ "	 * Invalid javadoc comment\n"
-					+ "	 */\n"
-					+ "}\n" }
-			);
-	}
-
-	public void test008() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "	/**\n"
-					+ "	 * Invalid javadoc comment\n"
-					+ "	 */\n"
-					+ "}\n" }
-			);
-	}
-
-	public void test009() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid javadoc comment\n"
-					+ "	 */\n"
-					+ "}\n" }
-			);
-	}
-
-
-	// @see tag
-	public void test010() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"unterminated string\n"
-					+ "	 * @see \"invalid\" no text allowed after the string\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 4)\n"
-				+ "	* @see \"unterminated string\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 5)\n"
-				+ "	* @see \"invalid\" no text allowed after the string\n"
-				+ "	                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test011() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Valid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"Valid normal string\"\n"
-					+ "	 * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test012() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <a href=\"invalid\">invalid</a\n"
-					+ "	 * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 4)\n"
-				+ "	* @see <a href=\"invalid\">invalid</a\n"
-				+ "	                                ^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 5)\n"
-				+ "	* @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-				+ "	                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test013() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Valid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <a hReF = \"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</A>\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	// @see Classes references
-	public void test020() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Valid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility Valid ref: local class \n"
-					+ "	 * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility Valid ref: local class \n"
-					+ "	 * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test021() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see Unknown Invalid ref: unknown class \n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 5)\n"
-				+ "	* @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\IX.java (at line 9)\n"
-				+ "	* @see Unknown Invalid ref: unknown class \n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test022() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"public interface IX {\n" +
-				"	public void foo();\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test023() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "	/**\n"
-					+ "	 * Invalid external classes references \n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage Invalid ref: non visible class \n"
-					+ "	 * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see VisibilityPackage Invalid ref: non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test024() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"public interface IX {\n" +
-				"	public void foo();\n" +
-				"}\n"
-			}
-		);
-	}
-
-	// @see Field references
-	public void test030() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Valid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see Visibility#vf_public Valid ref: visible field\n"
-					+ "	 * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test031() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #x Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#unknown Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#vf_private Invalid ref: non visible field\n"
-					+ "	 * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-					+ "	 * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 5)\n"
-				+ "	* @see #x Invalid ref: non existent field\n"
-				+ "	        ^\n"
-				+ "Javadoc: x cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility#unknown Invalid ref: non existent field\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Visibility#vf_private Invalid ref: non visible field\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\IX.java (at line 9)\n"
-				+ "	* @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\IX.java (at line 10)\n"
-				+ "	* @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test032() {
-		runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"public interface IX {\n" +
-				"	public void foo();\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test033() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class fields references\n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
-					+ "	 * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-					+ "	 * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-					+ "	 * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-				+ "	                        ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-				+ "	                        ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 9)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\IX.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-				+ "	                                 ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\IX.java (at line 11)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-				+ "	                                 ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	// @see method references
-	public void test040() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references with array\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra);\n"
-					+ "}\n" });
-	}
-
-	public void test041() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references with array (non applicable arrays)\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra);\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type IX is not applicable for the arguments (char[], int[][], String[][], Vector[][][][])\n"
-				+ "----------\n");
-	}
-
-	public void test042() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo() Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo();\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i);\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
-					+ "}\n" });
-	}
-
-	public void test043() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #unknown() Invalid ref: undefined local method reference\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 4)\n"
-				+ "	* @see #unknown() Invalid ref: undefined local method reference\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type IX\n"
-				+ "----------\n");
-	}
-
-	public void test044() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(int) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo();\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i);\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 4)\n"
-				+ "	* @see #smr_foo(int) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo() in the type IX is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 5)\n"
-				+ "	* @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
-				+ "----------\n"
-				+ "3. ERROR in IX.java (at line 6)\n"
-				+ "	* @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type IX is not applicable for the arguments (String, String, int, String)\n"
-				+ "----------\n"
-				+ "4. ERROR in IX.java (at line 7)\n"
-				+ "	* @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (boolean)\n"
-				+ "----------\n"
-				+ "5. ERROR in IX.java (at line 8)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "6. ERROR in IX.java (at line 8)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                             ^^^^^^\n"
-				+ "Javadoc: Vector cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test045() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see IX#smr_foo() Valid local method reference\n"
-					+ "	 * @see IX#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see IX#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see IX#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void smr_foo();\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i);\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
-					+ "}\n" });
-	}
-
-	public void test046() {
-		this.runConformTest(
-			new String[] {
-				"test/deep/qualified/name/p/IX.java",
-				"package test.deep.qualified.name.p;\n"
-					+ "import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.IX#smr_foo() Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.IX#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.IX#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.IX#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void smr_foo();\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i);\n"
-					+ "	public void smr_foo(java.util.Hashtable h, Vector v, boolean b);\n"
-					+ "}\n" });
-	}
-
-	public void test047() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Valid package class methods references\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 * @see test.Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test048() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-existence)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#unknown() Invalid ref: non-existent method\n"
-					+ "	 * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-					+ "	 * @see Unknown#vm_public() Invalid ref: non-existent class\n"
-					+ "	 * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 5)\n"
-				+ "	* @see Visibility#unknown() Invalid ref: non-existent method\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility.VcPublic\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Unknown#vm_public() Invalid ref: non-existent class\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Visibility.Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test049() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private() Invalid ref: non-visible method\n"
-					+ "	 * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-					+ "	 * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 5)\n"
-				+ "	* @see Visibility#vm_private() Invalid ref: non-visible method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility.VcPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test050() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 5)\n"
-				+ "	* @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
-				+ "----------\n");
-	}
-
-	public void test051() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class methods references (non existent/visible arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\IX.java (at line 6)\n" + 
-			"	* @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\IX.java (at line 7)\n" + 
-			"	* @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test.copy.VisibilityPackage is not visible\n" + 
-			"----------\n");
-	}
-
-	public void test052() {
-		runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n" +
-				"import test.copy.VisibilityPublic;\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class methods references \n" +
-				"	 * \n" +
-				"	 * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n" +
-				"	 */\n" +
-				"public interface IX {\n" +
-				"	public void foo();\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test053() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "	/**\n"
-					+ "	 * Valid other package visible class methods references \n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
-					+ "	 */\n"
-					+ "public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * Javadoc method comment in Interface
-	 */
-	// @deprecated tag
-	public void test060() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	public void foo(IX x) {\n"
-					+ "	 x.foo();\n"
-					+ "	}\n"
-					+ "}\n",
-				"IX.java",
-				"public interface IX {\n"
-					+ "  /** \n"
-					+ "   * \n"
-					+ "   * **   ** ** ** @deprecated */\n"
-					+ "	public void foo();\n"
-					+ "}\n",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 3)\n"
-				+ "	x.foo();\n"
-				+ "	^^^^^^^\n"
-				+ "The method foo() from the type IX is deprecated\n"
-				+ "----------\n");
-	}
-
-	public void test061() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/** @deprecated */\n"
-					+ "	int x=0;\n"
-					+ "	/**\n"
-					+ "	 * @see #x\n"
-					+ "	 */\n"
-					+ "	void foo();\n"
-					+ "}\n",
-				"IY.java",
-				"/** @deprecated */\n"
-					+ "public interface IY {\n"
-					+ "	int y=0;\n"
-					+ "	/**\n"
-					+ "	 * @see IX#x\n"
-					+ "	 * @see IY\n"
-					+ "	 * @see IY#y\n"
-					+ "	 */\n"
-					+ "	void foo();\n"
-					+ "}\n",
-				"X.java",
-				"public class X {\n"
-					+ "	int x;\n"
-					+ "	/**\n"
-					+ "	 * @see IX#x\n"
-					+ "	 * @see IY\n"
-					+ "	 * @see IY#y\n"
-					+ "	 */\n"
-					+ "	void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @see IX#x\n"
-				+ "	          ^\n"
-				+ "Javadoc: The field IX.x is deprecated\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	* @see IY\n"
-				+ "	       ^^\n"
-				+ "Javadoc: The type IY is deprecated\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	* @see IY#y\n"
-				+ "	       ^^\n"
-				+ "Javadoc: The type IY is deprecated\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 6)\n"
-				+ "	* @see IY#y\n"
-				+ "	          ^\n"
-				+ "Javadoc: The field IY.y is deprecated\n"
-				+ "----------\n");
-	}
-
-	public void test062() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	\n"
-					+ "	void foo(IX x) {\n"
-					+ "		x.foo(2);\n"
-					+ "	}\n"
-					+ "}\n",
-				"IX.java",
-				"public interface IX {\n"
-					+ "  /** \n"
-					+ "   * Valid tags with deprecation\n"
-					+ "   *\n"
-					+ "   * @param x Valid param tag\n"
-					+ "   * @return Valid return tag\n"
-					+ "   * @throws NullPointerException Valid throws tag\n"
-					+ "   * @exception IllegalArgumentException Valid throws tag\n"
-					+ "   * @see X Valid see tag\n"
-					+ "   * @deprecated\n"
-					+ "   */\n"
-					+ "	public String foo(int x);\n"
-					+ "}\n",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 4)\n"
-				+ "	x.foo(2);\n"
-				+ "	^^^^^^^^\n"
-				+ "The method foo(int) from the type IX is deprecated\n"
-				+ "----------\n");
-	}
-
-	public void test063() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n"
-					+ "	\n"
-					+ "	void foo(IX x) {\n"
-					+ "		x.foo(2);\n"
-					+ "	}\n"
-					+ "}\n",
-				"IX.java",
-				"public interface IX {\n"
-					+ "  /** \n"
-					+ "   * Invalid javadoc tags with valid deprecation\n"
-					+ "   *\n"
-					+ "   * @param\n"
-					+ "   * @return String\n"
-					+ "   * @throws Unknown\n"
-					+ "   * @see \"Invalid\n"
-					+ "   * @see Unknown\n"
-					+ "   * @param x\n"
-					+ "   * @deprecated\n"
-					+ "   */\n"
-					+ "	public String foo(int x);\n"
-					+ "}\n",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 4)\n"
-				+ "	x.foo(2);\n"
-				+ "	^^^^^^^^\n"
-				+ "The method foo(int) from the type IX is deprecated\n"
-				+ "----------\n"
-				+ "----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @param\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Missing parameter name\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 7)\n"
-				+ "	* @throws Unknown\n"
-				+ "	          ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "3. ERROR in IX.java (at line 8)\n"
-				+ "	* @see \"Invalid\n"
-				+ "	       ^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "4. ERROR in IX.java (at line 9)\n"
-				+ "	* @see Unknown\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "5. ERROR in IX.java (at line 10)\n"
-				+ "	* @param x\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "6. ERROR in IX.java (at line 13)\n"
-				+ "	public String foo(int x);\n"
-				+ "	                      ^\n"
-				+ "Javadoc: Missing tag for parameter x\n"
-				+ "----------\n");
-	}
-
-	// @param tag
-	public void test064() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid @param: no tags, no args\n"
-					+ "	 * Valid @throws/@exception: no tags, no thrown exception\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test065() {
-		this.runConformTest(new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test066() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param declaration: no arguments, 2 declared tags\n"
-					+ "	 * @param x\n"
-					+ "	 * 			Invalid param: not an argument on 2 lines\n"
-					+ "	 * @param x Invalid param: not an argument\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 4)\n"
-				+ "	* @param x\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 6)\n"
-				+ "	* @param x Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n");
-	}
-
-	public void test067() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	\n"
-					+ "	/**\n"
-					+ "	 * Valid @param declaration: 3 arguments, 3 tags in right order\n"
-					+ "	 * @param a Valid param\n"
-					+ "	 * @param b Valid param \n"
-					+ "	 * @param c Valid param\n"
-					+ "	 */\n"
-					+ "	public void foo(int a, int b, int c);\n"
-					+ "}\n" });
-	}
-
-	public void test068() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param declaration: 3 arguments, 3 correct tags in right order + 2 additional\n"
-					+ "	 * @param a Valid param\n"
-					+ "	 * @param x Invalid param: not an argument\n"
-					+ "	 * @param b Valid param \n"
-					+ "	 * @param y Invalid param: not an argument\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 */\n"
-					+ "	public void foo(char a, char b, char c);\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @param x Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 7)\n"
-				+ "	* @param y Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter y is not declared\n"
-				+ "----------\n");
-	}
-
-	public void test069() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: all arguments are not documented\n"
-					+ "	 */\n"
-					+ "	public void foo(double a, double b, double c);\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	public void foo(double a, double b, double c);\n"
-				+ "	                       ^\n"
-				+ "Javadoc: Missing tag for parameter a\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 5)\n"
-				+ "	public void foo(double a, double b, double c);\n"
-				+ "	                                 ^\n"
-				+ "Javadoc: Missing tag for parameter b\n"
-				+ "----------\n"
-				+ "3. ERROR in IX.java (at line 5)\n"
-				+ "	public void foo(double a, double b, double c);\n"
-				+ "	                                           ^\n"
-				+ "Javadoc: Missing tag for parameter c\n"
-				+ "----------\n");
-	}
-
-	public void test070() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: mix of all possible errors (missing a, not argument tag and duplicated)\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 * @param x Invalid param: not an argument\n"
-					+ "	 * @param b Valid param\n"
-					+ "	 * @param c Invalid param: duplicated\n"
-					+ "	 * @param\n"
-					+ "	 */\n"
-					+ "	public void foo(double a, long b, int c);\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @param x Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 7)\n"
-				+ "	* @param c Invalid param: duplicated\n"
-				+ "	         ^\n"
-				+ "Javadoc: Duplicate tag for parameter\n"
-				+ "----------\n"
-				+ "3. ERROR in IX.java (at line 8)\n"
-				+ "	* @param\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Missing parameter name\n"
-				+ "----------\n"
-				+ "4. ERROR in IX.java (at line 10)\n"
-				+ "	public void foo(double a, long b, int c);\n"
-				+ "	                       ^\n"
-				+ "Javadoc: Missing tag for parameter a\n"
-				+ "----------\n");
-	}
-
-	// @throws/@exception tag
-	public void test071() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid @throws tags: documented exception are unchecked\n"
-					+ "	 * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
-					+ "	 * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test072() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.awt.AWTexception Invalid exception: unknown type\n"
-					+ "	 * @throws IOException Invalid exception: unknown type\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 3)\n"
-				+ "	* @throws java.awt.AWTexception Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: java.awt.AWTexception cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 4)\n"
-				+ "	* @throws IOException Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^\n"
-				+ "Javadoc: IOException cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test073() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"import java.io.FileNotFoundException;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 4)\n"
-				+ "	* @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Exception EOFException is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 5)\n"
-				+ "	* @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Exception FileNotFoundException is not declared\n"
-				+ "----------\n");
-	}
-
-	public void test074() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"import java.io.FileNotFoundException;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @throws tags: documented exception are unchecked but some thrown exception are invalid\n"
-					+ "	 * @throws IllegalAccessException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
-					+ "	 * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 */\n"
-					+ "	public void foo() throws\n"
-					+ "		IllegalAccessException, \n"
-					+ "		InvalidException, \n"
-					+ "		String, \n"
-					+ "		java.io.EOFException, \n"
-					+ "		FileNotFoundException, \n"
-					+ "		IOException;\n"
-					+ "}\n" },
-					"----------\n" + 
-					"1. ERROR in IX.java (at line 13)\n" + 
-					"	InvalidException, \n" + 
-					"	^^^^^^^^^^^^^^^^\n" + 
-					"InvalidException cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"2. ERROR in IX.java (at line 14)\n" + 
-					"	String, \n" + 
-					"	^^^^^^\n" + 
-					"No exception of type String can be thrown; an exception type must be a subclass of Throwable\n" + 
-					"----------\n" + 
-					"3. ERROR in IX.java (at line 15)\n" + 
-					"	java.io.EOFException, \n" + 
-					"	^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception EOFException\n" + 
-					"----------\n" + 
-					"4. ERROR in IX.java (at line 16)\n" + 
-					"	FileNotFoundException, \n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception FileNotFoundException\n" + 
-					"----------\n" + 
-					"5. ERROR in IX.java (at line 17)\n" + 
-					"	IOException;\n" + 
-					"	^^^^^^^^^^^\n" + 
-					"IOException cannot be resolved to a type\n" + 
-					"----------\n");
-	}
-
-	// @return tag
-	public void test080() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return Return an int\n"
-					+ "	 */\n"
-					+ "	public int foo();\n"
-					+ "}\n" });
-	}
-
-	public void test081() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid empty return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return string\n"
-					+ "	 */\n"
-					+ "	public String foo();\n"
-					+ "}\n" });
-	}
-
-	public void test082() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Missing return declaration\n"
-					+ "	 */\n"
-					+ "	public Object[] foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	public Object[] foo();\n"
-				+ "	       ^^^^^^^^\n"
-				+ "Javadoc: Missing tag for return type\n"
-				+ "----------\n");
-	}
-
-	public void test083() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return Dimension\n"
-					+ "	 * @return Duplicated\n"
-					+ "	 */\n"
-					+ "	public double foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 6)\n"
-				+ "	* @return Duplicated\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Duplicate tag for return type\n"
-				+ "----------\n");
-	}
-
-	public void test084() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return Invalid return on void method\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @return Invalid return on void method\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	// @see tag: string
-	public void test090() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"unterminated string\n"
-					+ "	 * @see \"invalid\" no text allowed after the string\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @see \"unterminated string\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 6)\n"
-				+ "	* @see \"invalid\" no text allowed after the string\n"
-				+ "	                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test091() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"Valid normal string\"\n"
-					+ "	 * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	// @see tag: URL
-	public void test092() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <a\n"
-					+ "	 * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @see <a\n"
-				+ "	       ^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 6)\n"
-				+ "	* @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-				+ "	                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	// @see tag: class references
-	public void test095() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility Valid ref: local class \n"
-					+ "	 * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility Valid ref: local class \n"
-					+ "	 * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test096() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see Unknown Invalid ref: unknown class \n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 9)\n"
-				+ "	* @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\IX.java (at line 10)\n"
-				+ "	* @see Unknown Invalid ref: unknown class \n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test097() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public interface IX {\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"	public void foo();\n" +
-				"}\n"
-				}
-			);
-	}
-
-	public void test098() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid external classes references \n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage Invalid ref: non visible class \n"
-					+ "	 * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see VisibilityPackage Invalid ref: non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test099() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n" +
-				"public interface IX {\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				// Inner classes are not visible in generated documentation
-				//"	 * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"	public void foo();\n" +
-				"}\n"
-			}
-		);
-	}
-
-	// @see tag: field references
-	public void test105() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see Visibility#vf_public Valid ref: visible field\n"
-					+ "	 * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test106() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #x Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#unknown Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#vf_private Invalid ref: non visible field\n"
-					+ "	 * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-					+ "	 * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see #x Invalid ref: non existent field\n"
-				+ "	        ^\n"
-				+ "Javadoc: x cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Visibility#unknown Invalid ref: non existent field\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see Visibility#vf_private Invalid ref: non visible field\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 9)\n"
-				+ "	* @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\IX.java (at line 10)\n"
-				+ "	* @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\IX.java (at line 11)\n"
-				+ "	* @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test107() {
-		runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public interface IX {\n" +
-				"	/**\n" +
-				"	 * Invalid other package non visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"	public void foo();\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test108() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class fields references\n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
-					+ "	 * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-					+ "	 * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-					+ "	 * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see VisibilityPackage#unknown Invalid ref to non existent field of other package non visible class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-				+ "	                        ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 9)\n"
-				+ "	* @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-				+ "	                        ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\IX.java (at line 11)\n"
-				+ "	* @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-				+ "	                                 ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\IX.java (at line 12)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-				+ "	                                 ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	// @see method references
-	public void test110() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"import java.util.Vector;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references with array\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra);\n"
-					+ "}\n" });
-	}
-
-	public void test111() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"import java.util.Vector;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references with array (non applicable arrays)\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra);\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 6)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type IX is not applicable for the arguments (char[], int[][], String[][], Vector[][][][])\n"
-				+ "----------\n");
-	}
-
-	public void test112() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"import java.util.Vector;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo() Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo();\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i);\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
-					+ "}\n" });
-	}
-
-	public void test113() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #unknown() Invalid ref: undefined local method reference\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @see #unknown() Invalid ref: undefined local method reference\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type IX\n"
-				+ "----------\n");
-	}
-
-	public void test114() {
-		this.runNegativeTest(
-			new String[] {
-				"IX.java",
-				"public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(int) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo();\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i);\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in IX.java (at line 5)\n"
-				+ "	* @see #smr_foo(int) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo() in the type IX is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in IX.java (at line 6)\n"
-				+ "	* @see #smr_foo(float, long, char, short, byte, int, boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (float, long, char, short, byte, int, boolean)\n"
-				+ "----------\n"
-				+ "3. ERROR in IX.java (at line 7)\n"
-				+ "	* @see #smr_foo(String, String, int, String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type IX is not applicable for the arguments (String, String, int, String)\n"
-				+ "----------\n"
-				+ "4. ERROR in IX.java (at line 8)\n"
-				+ "	* @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type IX is not applicable for the arguments (boolean)\n"
-				+ "----------\n"
-				+ "5. ERROR in IX.java (at line 9)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "6. ERROR in IX.java (at line 9)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                             ^^^^^^\n"
-				+ "Javadoc: Vector cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test115() {
-		this.runConformTest(
-			new String[] {
-				"IX.java",
-				"import java.util.Vector;\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see IX#smr_foo() Valid local method reference\n"
-					+ "	 * @see IX#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see IX#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see IX#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "public interface IX {\n"
-					+ "	public void smr_foo();\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i);\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b);\n"
-					+ "}\n" });
-	}
-
-	public void test116() {
-		this.runConformTest(
-			new String[] {
-				"test/deep/qualified/name/p/IX.java",
-				"package test.deep.qualified.name.p;\n"
-					+ "import java.util.Vector;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.IX#smr_foo() Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.IX#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.IX#smr_foo(String x, java.lang.String y, int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.IX#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public void smr_foo();\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d);\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i);\n"
-					+ "	public void smr_foo(java.util.Hashtable h, Vector v, boolean b);\n"
-					+ "}\n" });
-	}
-
-	public void test117() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid package class methods references\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 * @see test.Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-
-	public void test118() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-existence)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#unknown() Invalid ref: non-existent method\n"
-					+ "	 * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-					+ "	 * @see Unknown#vm_public() Invalid ref: non-existent class\n"
-					+ "	 * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility#unknown() Invalid ref: non-existent method\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility.VcPublic\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see Unknown#vm_public() Invalid ref: non-existent class\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 9)\n"
-				+ "	* @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Visibility.Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test119() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private() Invalid ref: non-visible method\n"
-					+ "	 * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-					+ "	 * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private() Invalid ref: non-visible method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility.VcPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test120() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\IX.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\IX.java (at line 7)\n"
-				+ "	* @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\IX.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\IX.java (at line 9)\n"
-				+ "	* @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
-				+ "----------\n");
-	}
-
-	public void test121() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class methods references (non existent/visible arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\IX.java (at line 7)\n" + 
-			"	* @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\IX.java (at line 8)\n" + 
-			"	* @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type test.copy.VisibilityPackage is not visible\n" + 
-			"----------\n");
-	}
-
-	public void test122() {
-		runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n" +
-				"import test.copy.VisibilityPublic;\n" +
-				"public interface IX {\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class methods references \n" +
-				"	 * \n" +
-				"	 * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n" +
-				"	 */\n" +
-				"	public void foo();\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test123() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/IX.java",
-				"package test;\n"
-					+ "public interface IX {\n"
-					+ "	/**\n"
-					+ "	 * Valid other package visible class methods references \n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
-					+ "	 */\n"
-					+ "	public void foo();\n"
-					+ "}\n" });
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForMethod.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForMethod.java
deleted file mode 100644
index 3793429..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestForMethod.java
+++ /dev/null
@@ -1,4835 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTestForMethod extends JavadocTest {
-	public JavadocTestForMethod(String name) {
-		super(name);
-	}
-	public static Class javadocTestClass() {
-		return JavadocTestForMethod.class;
-	}
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(javadocTestClass());
-	}
-
-	// Use this static initializer to specify subset for tests
-	// All specified tests which does not belong to the class are skipped...
-	static {
-		// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//		TESTS_NAMES = new String[] { "Bug51529a", "Bug51529b" };
-		// Numbers of tests to run: "test<number>" will be run for each number of this array
-//		TESTS_NUMBERS = new int[] { 117, 124, 132, 137 };
-		// Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
-//		TESTS_RANGE = new int[] { 21, 50 };
-//		TESTS_RANGE = new int[] { -1, 50 }; // run all tests with a number less or equals to 50
-//		TESTS_RANGE = new int[] { 10, -1 }; // run all tests with a number greater or equals to 10
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, CompilerOptions.PRIVATE);
-		options.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-		return options;
-	}
-
-	/* (non-Javadoc)
-	 * Test @deprecated tag
-	 */
-	public void test001() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					  "	foo();\n"
-//				"Z.java",
-//				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * \n"
-					+ "   * **   ** ** ** @deprecated */\n"
-					+ "	function foo() { \n"
-					+ "	}\n"
-					+ "",
-				},
-			"----------\n"
-				+ "1. WARNING in X.java (at line 1)\n"
-				+ "	foo();\n"
-				+ "	^^^^^\n"
-				+ "The function foo() from the type X.java is deprecated\n"
-				+ "----------\n");
-	}
-
-	public void test002() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	/** @deprecated */\n" +
-				"	int x;\n" +
-				"	/**\n" +
-				"	 * @see #x\n" +
-				"	 */\n" +
-				"	void foo() {\n" +
-				"	}\n" +
-				"}\n",
-				"Y.java",
-				"/** @deprecated */\n" +
-				"public class Y {\n" +
-				"	int y;\n" +
-				"	/**\n" +
-				"	 * @see X#x\n" +
-				"	 * @see Y\n" +
-				"	 * @see Y#y\n" +
-				"	 */\n" +
-				"	void foo() {\n" +
-				"	}\n" +
-				"}\n",
-				"Z.java",
-				"public class Z {\n" +
-				"	int z;\n" +
-				"	/**\n" +
-				"	 * @see X#x\n" +
-				"	 * @see Y\n" +
-				"	 * @see Y#y\n" +
-				"	 */\n" +
-				"	void foo() {\n" +
-				"	}\n" +
-				"}\n" },
-		"----------\n" + 
-		"1. ERROR in Z.java (at line 4)\n" + 
-		"	* @see X#x\n" + 
-		"	         ^\n" + 
-		"Javadoc: The field X.x is deprecated\n" + 
-		"----------\n" + 
-		"2. ERROR in Z.java (at line 5)\n" + 
-		"	* @see Y\n" + 
-		"	       ^\n" + 
-		"Javadoc: The type Y is deprecated\n" + 
-		"----------\n" + 
-		"3. ERROR in Z.java (at line 6)\n" + 
-		"	* @see Y#y\n" + 
-		"	       ^\n" + 
-		"Javadoc: The type Y is deprecated\n" + 
-		"----------\n" + 
-		"4. ERROR in Z.java (at line 6)\n" + 
-		"	* @see Y#y\n" + 
-		"	         ^\n" + 
-		"Javadoc: The field Y.y is deprecated\n" + 
-		"----------\n"
-			);
-	}
-
-	public void test003() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-					"		foo(2);\n"
-//				"Z.java",
-//				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Valid tags with deprecation at end\n"
-					+ "   *\n"
-					+ "   * @param x Valid param tag\n"
-					+ "   * @return Valid return tag\n"
-					+ "   * @throws NullPointerException Valid throws tag\n"
-					+ "   * @exception IllegalArgumentException Valid throws tag\n"
-					+ "   * @see X Valid see tag\n"
-					+ "   * @deprecated\n"
-					+ "   */\n"
-					+ "	function foo( x) { \n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "",
-				},
-		"----------\n" + 
-		"1. WARNING in X.js (at line 1)\n" + 
-		"	foo(2);\n" + 
-		"	^^^^^^\n" + 
-		"The function foo(any) from the type X.js is deprecated\n" + 
-		"----------\n"
-				);
-	}
-
-	public void test004() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	\n"
-					+ "	{\n"
-					+ "		new Z().foo(2);\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.js",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Invalid javadoc tags with valid deprecation at end\n"
-					+ "   *\n"
-					+ "   * @param\n"
-					+ "   * @return String\n"
-					+ "   * @throws Unknown\n"
-					+ "   * @see \"Invalid\n"
-					+ "   * @see Unknown\n"
-					+ "   * @param x\n"
-					+ "   * @deprecated\n"
-					+ "   */\n"
-					+ "	public String foo(int x) { \n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n",
-				},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 4)\n" + 
-		"	new Z().foo(2);\n" + 
-		"	^^^^^^^^^^^^^^\n" + 
-		"The method foo(int) from the type Z is deprecated\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. ERROR in Z.java (at line 5)\n" + 
-		"	* @param\n" + 
-		"	   ^^^^^\n" + 
-		"Javadoc: Missing parameter name\n" + 
-		"----------\n" + 
-		"2. ERROR in Z.java (at line 7)\n" + 
-		"	* @throws Unknown\n" + 
-		"	          ^^^^^^^\n" + 
-		"Javadoc: Unknown cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in Z.java (at line 8)\n" + 
-		"	* @see \"Invalid\n" + 
-		"	       ^^^^^^^^\n" + 
-		"Javadoc: Invalid reference\n" + 
-		"----------\n" + 
-		"4. ERROR in Z.java (at line 9)\n" + 
-		"	* @see Unknown\n" + 
-		"	       ^^^^^^^\n" + 
-		"Javadoc: Unknown cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"5. ERROR in Z.java (at line 10)\n" + 
-		"	* @param x\n" + 
-		"	   ^^^^^\n" + 
-		"Javadoc: Unexpected tag\n" + 
-		"----------\n" + 
-		"6. ERROR in Z.java (at line 13)\n" + 
-		"	public String foo(int x) { \n" + 
-		"	                      ^\n" + 
-		"Javadoc: Missing tag for parameter x\n" + 
-		"----------\n"
-				);
-	}
-
-	public void test005() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	\n"
-					+ "	{\n"
-					+ "		new Z().foo(2);\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.js",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Valid tags with deprecation at beginning\n"
-					+ "   *\n"
-					+ "   * @deprecated\n"
-					+ "   * @param x Valid param tag\n"
-					+ "   * @return Valid return tag\n"
-					+ "   * @exception IllegalArgumentException Valid throws tag\n"
-					+ "   * @throws NullPointerException Valid throws tag\n"
-					+ "   * @see X Valid see tag\n"
-					+ "   */\n"
-					+ "	public String foo(int x) { \n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n",
-				},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 4)\n" + 
-		"	new Z().foo(2);\n" + 
-		"	^^^^^^^^^^^^^^\n" + 
-		"The method foo(int) from the type Z is deprecated\n" + 
-		"----------\n"
-				);
-	}
-
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	\n"
-					+ "	{\n"
-					+ "		new Z().foo(2);\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.js",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Invalid javadoc tags with valid deprecation at beginning\n"
-					+ "   *\n"
-					+ "   * @deprecated\n"
-					+ "   * @param\n"
-					+ "   * @return String\n"
-					+ "   * @throws Unknown\n"
-					+ "   * @exception IllegalArgumentException Valid throws tag\n"
-					+ "   * @see \"Invalid\n"
-					+ "   * @see Unknown\n"
-					+ "   * @param x\n"
-					+ "   */\n"
-					+ "	public String foo(int x) { \n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n",
-				},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 4)\n" + 
-		"	new Z().foo(2);\n" + 
-		"	^^^^^^^^^^^^^^\n" + 
-		"The method foo(int) from the type Z is deprecated\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. ERROR in Z.java (at line 6)\n" + 
-		"	* @param\n" + 
-		"	   ^^^^^\n" + 
-		"Javadoc: Missing parameter name\n" + 
-		"----------\n" + 
-		"2. ERROR in Z.java (at line 8)\n" + 
-		"	* @throws Unknown\n" + 
-		"	          ^^^^^^^\n" + 
-		"Javadoc: Unknown cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in Z.java (at line 10)\n" + 
-		"	* @see \"Invalid\n" + 
-		"	       ^^^^^^^^\n" + 
-		"Javadoc: Invalid reference\n" + 
-		"----------\n" + 
-		"4. ERROR in Z.java (at line 11)\n" + 
-		"	* @see Unknown\n" + 
-		"	       ^^^^^^^\n" + 
-		"Javadoc: Unknown cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"5. ERROR in Z.java (at line 12)\n" + 
-		"	* @param x\n" + 
-		"	   ^^^^^\n" + 
-		"Javadoc: Unexpected tag\n" + 
-		"----------\n" + 
-		"6. ERROR in Z.java (at line 14)\n" + 
-		"	public String foo(int x) { \n" + 
-		"	                      ^\n" + 
-		"Javadoc: Missing tag for parameter x\n" + 
-		"----------\n"
-				);
-	}
-
-	public void test007() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	\n"
-					+ "	{\n"
-					+ "		new Z().foo(2);\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.js",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Valid tags with deprecation in the middle\n"
-					+ "   *\n"
-					+ "   * @param x Valid param tag\n"
-					+ "   * @return Valid return tag\n"
-					+ "   * @deprecated\n"
-					+ "   * @exception IllegalArgumentException Valid throws tag\n"
-					+ "   * @throws NullPointerException Valid throws tag\n"
-					+ "   * @see X Valid see tag\n"
-					+ "   */\n"
-					+ "	public String foo(int x) { \n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n",
-				},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 4)\n" + 
-		"	new Z().foo(2);\n" + 
-		"	^^^^^^^^^^^^^^\n" + 
-		"The method foo(int) from the type Z is deprecated\n" + 
-		"----------\n"
-				);
-	}
-
-	public void test008() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	\n"
-					+ "	{\n"
-					+ "		new Z().foo(2);\n"
-					+ "	}\n"
-					+ "}\n",
-				"Z.js",
-				"public class Z {\n"
-					+ "  /** \n"
-					+ "   * Invalid javadoc tags with valid deprecation in the middle\n"
-					+ "   *\n"
-					+ "   * @param\n"
-					+ "   * @return String\n"
-					+ "   * @throws Unknown\n"
-					+ "   * @exception IllegalArgumentException Valid throws tag\n"
-					+ "   * @see \"Invalid\n"
-					+ "   * @deprecated\n"
-					+ "   * @see Unknown\n"
-					+ "   */\n"
-					+ "	public String foo(int x) { \n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n",
-				},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 4)\n" + 
-		"	new Z().foo(2);\n" + 
-		"	^^^^^^^^^^^^^^\n" + 
-		"The method foo(int) from the type Z is deprecated\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. ERROR in Z.java (at line 5)\n" + 
-		"	* @param\n" + 
-		"	   ^^^^^\n" + 
-		"Javadoc: Missing parameter name\n" + 
-		"----------\n" + 
-		"2. ERROR in Z.java (at line 7)\n" + 
-		"	* @throws Unknown\n" + 
-		"	          ^^^^^^^\n" + 
-		"Javadoc: Unknown cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in Z.java (at line 9)\n" + 
-		"	* @see \"Invalid\n" + 
-		"	       ^^^^^^^^\n" + 
-		"Javadoc: Invalid reference\n" + 
-		"----------\n" + 
-		"4. ERROR in Z.java (at line 11)\n" + 
-		"	* @see Unknown\n" + 
-		"	       ^^^^^^^\n" + 
-		"Javadoc: Unknown cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"5. ERROR in Z.java (at line 13)\n" + 
-		"	public String foo(int x) { \n" + 
-		"	                      ^\n" + 
-		"Javadoc: Missing tag for parameter x\n" + 
-		"----------\n"
-				);
-	}
-
-	/* (non-Javadoc)
-	 * Test @param tag
-	 */
-	public void test011() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid @param: no tags, no args\n"
-					+ "	 * Valid @throws/@exception: no tags, no thrown exception\n"
-					+ "	 */\n"
-					+ "	public void p_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test012() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	public void p_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test013() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param declaration: no arguments, 2 declared tags\n"
-					+ "	 * @param x\n"
-					+ "	 * 			Invalid param: not an argument on 2 lines\n"
-					+ "	 * @param x Invalid param: not an argument\n"
-					+ "	 */\n"
-					+ "	public void p_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @param x\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @param x Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n");
-	}
-
-	public void test014() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	\n"
-					+ "	/**\n"
-					+ "	 * Valid @param declaration: 3 arguments, 3 tags in right order\n"
-					+ "	 * @param a Valid param\n"
-					+ "	 * @param b Valid param \n"
-					+ "	 * @param c Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int a, int b, int c) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test015() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param declaration: 3 arguments, 3 correct tags in right order + 2 additional\n"
-					+ "	 * @param a Valid param\n"
-					+ "	 * @param x Invalid param: not an argument\n"
-					+ "	 * @param b Valid param \n"
-					+ "	 * @param x Invalid param: not an argument\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(char a, char b, char c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @param x Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 7)\n"
-				+ "	* @param x Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n");
-	}
-
-	public void test016() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid @param declaration: 3 arguments, 3 tags in wrong order\n"
-					+ "	 * @param c Valid param, not well placed\n"
-					+ "	 * @param b Valid param, not well placed \n"
-					+ "	 * @param a Valid param, not well placed\n"
-					+ "	 */\n"
-					+ "	public void p_foo(long a, long b, long c) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test017() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param declaration: 3 arguments, 3 correct tags in wrong order + 1 duplicate tag + 1 additional\n"
-					+ "	 * @param c Valid param, not well placed\n"
-					+ "	 * @param a Valid param, not well placed\n"
-					+ "	 * @param b Valid param, not well placed \n"
-					+ "	 * @param a Invalid param: duplicated\n"
-					+ "	 * @param x Invalid param: not an argument\n"
-					+ "	 */\n"
-					+ "	public void p_foo(float a, float b, float c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 7)\n"
-				+ "	* @param a Invalid param: duplicated\n"
-				+ "	         ^\n"
-				+ "Javadoc: Duplicate tag for parameter\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 8)\n"
-				+ "	* @param x Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n");
-	}
-
-	public void test020() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: all arguments are not documented\n"
-					+ "	 */\n"
-					+ "	public void p_foo(double a, double b, double c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	public void p_foo(double a, double b, double c) {\n"
-				+ "	                         ^\n"
-				+ "Javadoc: Missing tag for parameter a\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	public void p_foo(double a, double b, double c) {\n"
-				+ "	                                   ^\n"
-				+ "Javadoc: Missing tag for parameter b\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 5)\n"
-				+ "	public void p_foo(double a, double b, double c) {\n"
-				+ "	                                             ^\n"
-				+ "Javadoc: Missing tag for parameter c\n"
-				+ "----------\n");
-	}
-
-	public void test021() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: b and c arguments are not documented\n"
-					+ "	 * @param a Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int a, char b, long c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                              ^\n"
-				+ "Javadoc: Missing tag for parameter b\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                                      ^\n"
-				+ "Javadoc: Missing tag for parameter c\n"
-				+ "----------\n");
-	}
-
-	public void test022() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: a and c arguments are not documented\n"
-					+ "	 * @param b Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int a, char b, long c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                      ^\n"
-				+ "Javadoc: Missing tag for parameter a\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                                      ^\n"
-				+ "Javadoc: Missing tag for parameter c\n"
-				+ "----------\n");
-	}
-
-	public void test023() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: a and b arguments are not documented\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int a, char b, long c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                      ^\n"
-				+ "Javadoc: Missing tag for parameter a\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                              ^\n"
-				+ "Javadoc: Missing tag for parameter b\n"
-				+ "----------\n");
-	}
-
-	public void test024() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: c argument is not documented\n"
-					+ "	 * @param a Valid param\n"
-					+ "	 * @param b Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int a, char b, long c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 7)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                                      ^\n"
-				+ "Javadoc: Missing tag for parameter c\n"
-				+ "----------\n");
-	}
-
-	public void test025() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: a argument is not documented + b and c are not well placed\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 * @param b Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int a, char b, long c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 7)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                      ^\n"
-				+ "Javadoc: Missing tag for parameter a\n"
-				+ "----------\n");
-	}
-
-	public void test026() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: b argument is not documented + a and c are not well placed\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 * @param a Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int a, char b, long c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 7)\n"
-				+ "	public void p_foo(int a, char b, long c) {\n"
-				+ "	                              ^\n"
-				+ "Javadoc: Missing tag for parameter b\n"
-				+ "----------\n");
-	}
-
-	public void test030() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: mix of all possible errors (missing a, not argument tag and duplicated)\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 * @param x Invalid param: not an argument\n"
-					+ "	 * @param b Valid param\n"
-					+ "	 * @param c Invalid param: duplicated\n"
-					+ "	 */\n"
-					+ "	public void p_foo(double a, long b, int c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @param x Invalid param: not an argument\n"
-				+ "	         ^\n"
-				+ "Javadoc: Parameter x is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 7)\n"
-				+ "	* @param c Invalid param: duplicated\n"
-				+ "	         ^\n"
-				+ "Javadoc: Duplicate tag for parameter\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 9)\n"
-				+ "	public void p_foo(double a, long b, int c) {\n"
-				+ "	                         ^\n"
-				+ "Javadoc: Missing tag for parameter a\n"
-				+ "----------\n");
-	}
-
-	public void test031() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: missing parameter name\n"
-					+ "	 * @param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(String a) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @param\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Missing parameter name\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	public void p_foo(String a) {\n"
-				+ "	                         ^\n"
-				+ "Javadoc: Missing tag for parameter a\n"
-				+ "----------\n");
-	}
-
-	public void test032() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: missing parameter name + valid param \n"
-					+ "	 * @param\n"
-					+ "	 * @param x\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int x) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @param\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Missing parameter name\n"
-				+ "----------\n");
-	}
-
-	public void test033() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: missing parameter names + valid params \n"
-					+ "	 * @param h\n"
-					+ "	 * @param\n"
-					+ "	 * @param h\n"
-					+ "	 * @param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(java.util.Hashtable h, float f) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @param\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Missing parameter name\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @param h\n"
-				+ "	         ^\n"
-				+ "Javadoc: Duplicate tag for parameter\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @param\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Missing parameter name\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 9)\n"
-				+ "	public void p_foo(java.util.Hashtable h, float f) {\n"
-				+ "	                                               ^\n"
-				+ "Javadoc: Missing tag for parameter f\n"
-				+ "----------\n");
-	}
-
-	public void test034() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: missing parameter name + valid param \n"
-					+ "	 * @param *\n"
-					+ "	 * @param ?\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int x) {\n"
-					+ "	}\n"
-					+ "}\n"
-				},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param *\n" + 
-				"	         ^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param ?\n" + 
-				"	         ^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	public void p_foo(int x) {\n" + 
-				"	                      ^\n" + 
-				"Javadoc: Missing tag for parameter x\n" + 
-				"----------\n"
-		);
-	}
-
-	public void test035() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid @param but compiler errors\n"
-					+ "	 * @param a Valid param\n"
-					+ "	 * @param b Valid param\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(inr a, int b, int c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 8)\n"
-				+ "	public void p_foo(inr a, int b, int c) {\n"
-				+ "	                  ^^^\n"
-				+ "inr cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test036() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param + compiler errors\n"
-					+ "	 * @param b Valid param\n"
-					+ "	 * @param b Valid param\n"
-					+ "	 * @param c Valid param\n"
-					+ "	 */\n"
-					+ "	public void p_foo(inr a, inx b, inq c) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 8)\n"
-				+ "	public void p_foo(inr a, inx b, inq c) {\n"
-				+ "	                  ^^^\n"
-				+ "inr cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 8)\n"
-				+ "	public void p_foo(inr a, inx b, inq c) {\n"
-				+ "	                         ^^^\n"
-				+ "inx cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 8)\n"
-				+ "	public void p_foo(inr a, inx b, inq c) {\n"
-				+ "	                                ^^^\n"
-				+ "inq cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test037() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: class reference instead of param name\n"
-					+ "	 * @param java.lang.Hashtable\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int x) {\n"
-					+ "	}\n"
-					+ "}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param java.lang.Hashtable\n" + 
-				"	         ^^^^^^^^^^^^^^^^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	public void p_foo(int x) {\n" + 
-				"	                      ^\n" + 
-				"Javadoc: Missing tag for parameter x\n" + 
-				"----------\n"
-		);
-	}
-
-	public void test038() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.util.Hashtable;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @param: class reference instead of param name + unused import\n"
-					+ "	 * @param Hashtable\n"
-					+ "	 */\n"
-					+ "	public void p_foo(int x) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\n" + 
-			"	* @param Hashtable\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: Parameter Hashtable is not declared\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 7)\n" + 
-			"	public void p_foo(int x) {\n" + 
-			"	                      ^\n" + 
-			"Javadoc: Missing tag for parameter x\n" + 
-			"----------\n");
-	}
-
-	/* (non-Javadoc)
-	 * Test @throws/@exception tag
-	 */
-	public void test050() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid @throws tags: documented exception are unchecked\n"
-					+ "	 * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
-					+ "	 * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 */\n"
-					+ "	public void t_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test051() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws IllegalArgumenException.. Invalid exception: invalid class name\n"
-					+ "	 * @exception IllegalArgumen..Exception.. Invalid exception: invalid class name\n"
-					+ "	 */\n"
-					+ "	public void t_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @throws IllegalArgumenException.. Invalid exception: invalid class name\n"
-				+ "	         ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid class name\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 4)\n"
-				+ "	* @exception IllegalArgumen..Exception.. Invalid exception: invalid class name\n"
-				+ "	            ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid class name\n"
-				+ "----------\n");
-	}
-
-	public void test052() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.awt.AWTexception Invalid exception: unknown type\n"
-					+ "	 * @throws IOException Invalid exception: unknown type\n"
-					+ "	 */\n"
-					+ "	public void t_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @throws java.awt.AWTexception Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: java.awt.AWTexception cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 4)\n"
-				+ "	* @throws IOException Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^\n"
-				+ "Javadoc: IOException cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test053() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.io.FileNotFoundException;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 */\n"
-					+ "	public void t_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Exception EOFException is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	* @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Exception FileNotFoundException is not declared\n"
-				+ "----------\n");
-	}
-
-	public void test055() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid @throws tags: documented exception are unchecked but method throws an unknown exception\n"
-					+ "	 * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
-					+ "	 * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws InvalidException {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 9)\n"
-				+ "	public void t_foo() throws InvalidException {\n"
-				+ "	                           ^^^^^^^^^^^^^^^^\n"
-				+ "InvalidException cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test056() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws IllegalArgumenException._ Invalid exception: invalid class name\n"
-					+ "	 * @exception IllegalArgumen.*.Exception.. Invalid exception: invalid class name\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws InvalidException {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @throws IllegalArgumenException._ Invalid exception: invalid class name\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: IllegalArgumenException cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 4)\n"
-				+ "	* @exception IllegalArgumen.*.Exception.. Invalid exception: invalid class name\n"
-				+ "	            ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid class name\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	public void t_foo() throws InvalidException {\n"
-				+ "	                           ^^^^^^^^^^^^^^^^\n"
-				+ "InvalidException cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test057() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.awt.AWTexception Invalid exception: unknown type\n"
-					+ "	 * @throws IOException Invalid exception: unknown type\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws InvalidException {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @throws java.awt.AWTexception Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: java.awt.AWTexception cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 4)\n"
-				+ "	* @throws IOException Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^\n"
-				+ "Javadoc: IOException cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	public void t_foo() throws InvalidException {\n"
-				+ "	                           ^^^^^^^^^^^^^^^^\n"
-				+ "InvalidException cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test058() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.io.FileNotFoundException;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws InvalidException {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Exception EOFException is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	* @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Exception FileNotFoundException is not declared\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	public void t_foo() throws InvalidException {\n"
-				+ "	                           ^^^^^^^^^^^^^^^^\n"
-				+ "InvalidException cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test060() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @throws tags: documented exception are unchecked but thrown exception is not documented\n"
-					+ "	 * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
-					+ "	 * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws IllegalAccessException {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 9)\n"
-				+ "	public void t_foo() throws IllegalAccessException {\n"
-				+ "	                           ^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Missing tag for declared exception IllegalAccessException\n"
-				+ "----------\n");
-	}
-
-	public void test061() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws /IllegalArgumenException.. Invalid exception: invalid class name\n"
-					+ "	 * @exception .IllegalArgumen..Exception.. Invalid exception: invalid class name\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws IllegalAccessException {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @throws /IllegalArgumenException.. Invalid exception: invalid class name\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Missing class name\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 4)\n"
-				+ "	* @exception .IllegalArgumen..Exception.. Invalid exception: invalid class name\n"
-				+ "	            ^^\n"
-				+ "Javadoc: Invalid class name\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	public void t_foo() throws IllegalAccessException {\n"
-				+ "	                           ^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Missing tag for declared exception IllegalAccessException\n"
-				+ "----------\n");
-	}
-
-	public void test062() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.awt.AWTexception Invalid exception: unknown type\n"
-					+ "	 * @throws IOException Invalid exception: unknown type\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws IllegalAccessException {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 3)\n"
-				+ "	* @throws java.awt.AWTexception Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: java.awt.AWTexception cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 4)\n"
-				+ "	* @throws IOException Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^\n"
-				+ "Javadoc: IOException cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	public void t_foo() throws IllegalAccessException {\n"
-				+ "	                           ^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Missing tag for declared exception IllegalAccessException\n"
-				+ "----------\n");
-	}
-
-	public void test063() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.io.FileNotFoundException;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 * @throws IOException Invalid exception: unknown type\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws IllegalAccessException {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 4)\n"
-				+ "	* @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Exception EOFException is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 5)\n"
-				+ "	* @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-				+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Exception FileNotFoundException is not declared\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 6)\n"
-				+ "	* @throws IOException Invalid exception: unknown type\n"
-				+ "	          ^^^^^^^^^^^\n"
-				+ "Javadoc: IOException cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	public void t_foo() throws IllegalAccessException {\n"
-				+ "	                           ^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Missing tag for declared exception IllegalAccessException\n"
-				+ "----------\n");
-	}
-
-	public void test065() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid @throws tags: documented exception are unchecked but some thrown exception are invalid\n"
-					+ "	 * @throws IllegalAccessException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @throws IllegalArgumentException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @exception NullPointerException Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 * @throws java.awt.AWTError Valid unchecked exception (java.lang.Error subclass)\n"
-					+ "	 * @exception OutOfMemoryError Valid unchecked exception (java.lang.Runtime subclass)\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws\n"
-					+ "		IllegalAccessException, \n"
-					+ "		InvalidException, \n"
-					+ "		String, \n"
-					+ "		IllegalArgumentException\n"
-					+ "	{}\n"
-					+ "}\n" },
-					"----------\n" + 
-					"1. ERROR in X.java (at line 12)\n" + 
-					"	InvalidException, \n" + 
-					"	^^^^^^^^^^^^^^^^\n" + 
-					"InvalidException cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"2. ERROR in X.java (at line 13)\n" + 
-					"	String, \n" + 
-					"	^^^^^^\n" + 
-					"No exception of type String can be thrown; an exception type must be a subclass of Throwable\n" + 
-					"----------\n");
-	}
-
-	public void test066() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws %IllegalArgumenException Invalid exception: invalid class name\n"
-					+ "	 * @exception (IllegalArgumen Invalid exception: invalid class name\n"
-					+ "	 * @exception \"IllegalArgumen Invalid exception: invalid class name\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws\n"
-					+ "		IllegalAccessException, \n"
-					+ "		InvalidException, \n"
-					+ "		String, \n"
-					+ "		IllegalArgumentException\n"
-					+ "	{}\n"
-					+ "}\n" },
-					"----------\n" + 
-					"1. ERROR in X.java (at line 3)\n" + 
-					"	* @throws %IllegalArgumenException Invalid exception: invalid class name\n" + 
-					"	   ^^^^^^\n" + 
-					"Javadoc: Missing class name\n" + 
-					"----------\n" + 
-					"2. ERROR in X.java (at line 4)\n" + 
-					"	* @exception (IllegalArgumen Invalid exception: invalid class name\n" + 
-					"	   ^^^^^^^^^\n" + 
-					"Javadoc: Missing class name\n" + 
-					"----------\n" + 
-					"3. ERROR in X.java (at line 5)\n" + 
-					"	* @exception \"IllegalArgumen Invalid exception: invalid class name\n" + 
-					"	   ^^^^^^^^^\n" + 
-					"Javadoc: Missing class name\n" + 
-					"----------\n" + 
-					"4. ERROR in X.java (at line 8)\n" + 
-					"	IllegalAccessException, \n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception IllegalAccessException\n" + 
-					"----------\n" + 
-					"5. ERROR in X.java (at line 9)\n" + 
-					"	InvalidException, \n" + 
-					"	^^^^^^^^^^^^^^^^\n" + 
-					"InvalidException cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"6. ERROR in X.java (at line 10)\n" + 
-					"	String, \n" + 
-					"	^^^^^^\n" + 
-					"No exception of type String can be thrown; an exception type must be a subclass of Throwable\n" + 
-					"----------\n" + 
-					"7. ERROR in X.java (at line 11)\n" + 
-					"	IllegalArgumentException\n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception IllegalArgumentException\n" + 
-					"----------\n");
-	}
-
-	public void test067() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.awt.AWTexception Invalid exception: unknown type\n"
-					+ "	 * @throws IOException Invalid exception: unknown type\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws\n"
-					+ "		IllegalAccessException, \n"
-					+ "		InvalidException, \n"
-					+ "		String, \n"
-					+ "		IllegalArgumentException\n"
-					+ "	{}\n"
-					+ "}\n" },
-					"----------\n" + 
-					"1. ERROR in X.java (at line 3)\n" + 
-					"	* @throws java.awt.AWTexception Invalid exception: unknown type\n" + 
-					"	          ^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: java.awt.AWTexception cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"2. ERROR in X.java (at line 4)\n" + 
-					"	* @throws IOException Invalid exception: unknown type\n" + 
-					"	          ^^^^^^^^^^^\n" + 
-					"Javadoc: IOException cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"3. ERROR in X.java (at line 7)\n" + 
-					"	IllegalAccessException, \n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception IllegalAccessException\n" + 
-					"----------\n" + 
-					"4. ERROR in X.java (at line 8)\n" + 
-					"	InvalidException, \n" + 
-					"	^^^^^^^^^^^^^^^^\n" + 
-					"InvalidException cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"5. ERROR in X.java (at line 9)\n" + 
-					"	String, \n" + 
-					"	^^^^^^\n" + 
-					"No exception of type String can be thrown; an exception type must be a subclass of Throwable\n" + 
-					"----------\n" + 
-					"6. ERROR in X.java (at line 10)\n" + 
-					"	IllegalArgumentException\n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception IllegalArgumentException\n" + 
-					"----------\n");
-	}
-
-	public void test068() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.io.FileNotFoundException;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 * @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws\n"
-					+ "		IllegalAccessException, \n"
-					+ "		InvalidException, \n"
-					+ "		String, \n"
-					+ "		IllegalArgumentException\n"
-					+ "	{}\n"
-					+ "}\n" },
-					"----------\n" + 
-					"1. ERROR in X.java (at line 4)\n" + 
-					"	* @throws java.io.EOFException Invalid exception: known exception but neither thrown nor unchecked\n" + 
-					"	          ^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Exception EOFException is not declared\n" + 
-					"----------\n" + 
-					"2. ERROR in X.java (at line 5)\n" + 
-					"	* @throws FileNotFoundException Invalid exception: known exception but neither thrown nor unchecked\n" + 
-					"	          ^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Exception FileNotFoundException is not declared\n" + 
-					"----------\n" + 
-					"3. ERROR in X.java (at line 8)\n" + 
-					"	IllegalAccessException, \n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception IllegalAccessException\n" + 
-					"----------\n" + 
-					"4. ERROR in X.java (at line 9)\n" + 
-					"	InvalidException, \n" + 
-					"	^^^^^^^^^^^^^^^^\n" + 
-					"InvalidException cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"5. ERROR in X.java (at line 10)\n" + 
-					"	String, \n" + 
-					"	^^^^^^\n" + 
-					"No exception of type String can be thrown; an exception type must be a subclass of Throwable\n" + 
-					"----------\n" + 
-					"6. ERROR in X.java (at line 11)\n" + 
-					"	IllegalArgumentException\n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception IllegalArgumentException\n" + 
-					"----------\n");
-	}
-
-	public void test069() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.io.FileNotFoundException;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 */\n"
-					+ "	public void t_foo() throws\n"
-					+ "		IllegalAccessException, \n"
-					+ "		InvalidException, \n"
-					+ "		String, \n"
-					+ "		java.io.EOFException, \n"
-					+ "		FileNotFoundException, \n"
-					+ "		IOException, \n"
-					+ "		IllegalArgumentException\n"
-					+ "	{}\n"
-					+ "}\n" },
-					"----------\n" + 
-					"1. ERROR in X.java (at line 6)\n" + 
-					"	IllegalAccessException, \n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception IllegalAccessException\n" + 
-					"----------\n" + 
-					"2. ERROR in X.java (at line 7)\n" + 
-					"	InvalidException, \n" + 
-					"	^^^^^^^^^^^^^^^^\n" + 
-					"InvalidException cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"3. ERROR in X.java (at line 8)\n" + 
-					"	String, \n" + 
-					"	^^^^^^\n" + 
-					"No exception of type String can be thrown; an exception type must be a subclass of Throwable\n" + 
-					"----------\n" + 
-					"4. ERROR in X.java (at line 9)\n" + 
-					"	java.io.EOFException, \n" + 
-					"	^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception EOFException\n" + 
-					"----------\n" + 
-					"5. ERROR in X.java (at line 10)\n" + 
-					"	FileNotFoundException, \n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception FileNotFoundException\n" + 
-					"----------\n" + 
-					"6. ERROR in X.java (at line 11)\n" + 
-					"	IOException, \n" + 
-					"	^^^^^^^^^^^\n" + 
-					"IOException cannot be resolved to a type\n" + 
-					"----------\n" + 
-					"7. ERROR in X.java (at line 12)\n" + 
-					"	IllegalArgumentException\n" + 
-					"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-					"Javadoc: Missing tag for declared exception IllegalArgumentException\n" + 
-					"----------\n");
-	}
-
-	/* (non-Javadoc)
-	 * Test @return tag
-	 */
-	public void test070() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return Return an int\n"
-					+ "	 */\n"
-					+ "	public int s_foo() {\n"
-					+ "	  return 0;\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test071() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid empty return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return string\n"
-					+ "	 */\n"
-					+ "	public String s_foo() {\n"
-					+ "	  return \"\";\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test072() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return Vector A list of things\n"
-					+ "	 */\n"
-					+ "	public java.util.Vector s_foo() {\n"
-					+ "	  return new java.util.Vector();\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test073() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Missing return declaration\n"
-					+ "	 */\n"
-					+ "	public Object[] s_foo() {\n"
-					+ "	  return new Object[0];\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	public Object[] s_foo() {\n"
-				+ "	       ^^^^^^^^\n"
-				+ "Javadoc: Missing tag for return type\n"
-				+ "----------\n");
-	}
-
-	public void test074() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return double\n"
-					+ "	 * @return Dimension\n"
-					+ "	 */\n"
-					+ "	public double s_foo() {\n"
-					+ "	  return 3.14;\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @return Dimension\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Duplicate tag for return type\n"
-				+ "----------\n");
-	}
-
-	public void test075() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return Invalid return on void method\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @return Invalid return on void method\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-
-	public void test076() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid return declaration\n"
-					+ "	 *\n"
-					+ "	 * @return Invalid return on void method\n"
-					+ "	 * @return\n"
-					+ "	 * @return Invalid return on void method\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @return Invalid return on void method\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @return\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Duplicate tag for return type\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @return Invalid return on void method\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Duplicate tag for return type\n"
-				+ "----------\n");
-	}
-
-	/* (non-Javadoc)
-	 * Test @see tag
-	 */
-	// String references
-	public void test080() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"\n"
-					+ "	 * @see \"unterminated string\n"
-					+ "	 * @see \"invalid string\"\"\n"
-					+ "	 * @see \"invalid\" no text allowed after the string\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see \"\n"
-				+ "	       ^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see \"unterminated string\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see \"invalid string\"\"\n"
-				+ "	                       ^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see \"invalid\" no text allowed after the string\n"
-				+ "	                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test081() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid string references \n"
-					+ "	 *\n"
-					+ "	 * @see \"Valid normal string\"\n"
-					+ "	 * @see \"Valid \\\"string containing\\\" \\\"double-quote\\\"\"\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	// URL Link references
-	public void test085() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid URL link references \n"
-					+ "	 *\n"
-					+ "	 * @see <\n"
-					+ "	 * @see <a\n"
-					+ "	 * @see <a hre\n"
-					+ "	 * @see <a href\n"
-					+ "	 * @see <a href=\n"
-					+ "	 * @see <a href=\"\n"
-					+ "	 * @see <a href=\"invalid\n"
-					+ "	 * @see <a href=\"invalid\"\n"
-					+ "	 * @see <a href=\"invalid\">\n"
-					+ "	 * @see <a href=\"invalid\">invalid\n"
-					+ "	 * @see <a href=\"invalid\">invalid<\n"
-					+ "	 * @see <a href=\"invalid\">invalid</\n"
-					+ "	 * @see <a href=\"invalid\">invalid</a\n"
-					+ "	 * @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see <\n"
-				+ "	       ^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see <a\n"
-				+ "	       ^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see <a hre\n"
-				+ "	       ^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see <a href\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 9)\n"
-				+ "	* @see <a href=\n"
-				+ "	       ^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "6. ERROR in X.java (at line 10)\n"
-				+ "	* @see <a href=\"\n"
-				+ "	       ^^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "7. ERROR in X.java (at line 11)\n"
-				+ "	* @see <a href=\"invalid\n"
-				+ "	       ^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "8. ERROR in X.java (at line 12)\n"
-				+ "	* @see <a href=\"invalid\"\n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "9. ERROR in X.java (at line 13)\n"
-				+ "	* @see <a href=\"invalid\">\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "10. ERROR in X.java (at line 14)\n"
-				+ "	* @see <a href=\"invalid\">invalid\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "11. ERROR in X.java (at line 15)\n"
-				+ "	* @see <a href=\"invalid\">invalid<\n"
-				+ "	                                ^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "12. ERROR in X.java (at line 16)\n"
-				+ "	* @see <a href=\"invalid\">invalid</\n"
-				+ "	                                ^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "13. ERROR in X.java (at line 17)\n"
-				+ "	* @see <a href=\"invalid\">invalid</a\n"
-				+ "	                                ^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "14. ERROR in X.java (at line 18)\n"
-				+ "	* @see <a href=\"invalid\">invalid</a> no text allowed after the href\n"
-				+ "	                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n");
-	}
-
-	public void test086() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid URL references \n"
-					+ "	 *\n"
-					+ "	 * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</a>\n"
-					+ "	 * @see <A HREF = \"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</A>\n"
-					+ "	 * @see <a hReF = \"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Valid URL link reference</A>\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test087() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid URL references \n"
-					+ "	 *\n"
-					+ "	 * @see <a xref=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</a>\n"
-					+ "	 * @see <b href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</a>\n"
-					+ "	 * @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</b>\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see <a xref=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</a>\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see <b href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</a>\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see <a href=\"http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html\">Invalid URL link reference</b>\n"
-				+ "	                                                                                                             ^^^^\n"
-				+ "Javadoc: Malformed link reference\n"
-				+ "----------\n");
-	}
-
-	// @see Classes references
-	public void test090() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility Valid ref: local class \n"
-					+ "	 * @see Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility Valid ref: local class \n"
-					+ "	 * @see test.Visibility.VcPublic Valid ref: visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPublic Valid ref: visible inherited inner class of local class \n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test091() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local classes references \n"
-					+ "	 *\n"
-					+ "	 * @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-					+ "	 * @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-					+ "	 * @see Unknown Invalid ref: unknown class \n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.Visibility.VcPrivate Invalid ref: non visible inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.Visibility.AvcPrivate Invalid ref: non visible inherited inner class of local class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Unknown Invalid ref: unknown class \n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test092() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				"	 * @see VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test093() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid external classes references \n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage Invalid ref: non visible class \n"
-					+ "	 * @see VisibilityPackage.VpPrivate Invalid ref: non visible inner class in non visible class \n"
-					+ "	 * @see VisibilityPackage.VpPublic Invalid ref: visible inner class in non visible class \n"
-					+ "	 * @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPackage Invalid ref: non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPackage.VpPrivate Invalid ref: non visible inner class in non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see VisibilityPackage.VpPublic Invalid ref: visible inner class in non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test094() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid external classes references \n" +
-				"	 *\n" +
-				"	 * @see test.copy.VisibilityPublic Valid ref: visible class through import => no warning on import\n" +
-				"	 * @see test.copy.VisibilityPublic.VpPublic Valid ref: visible inner class in visible class \n" +
-				"	 */\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test095() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid external classes references \n"
-					+ "	 *\n"
-					+ "	 * @see test.copy.VisibilityPackage Invalid ref: non visible class \n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate Invalid ref: non visible inner class in non visible class \n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic Invalid ref: visible inner class in non visible class \n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see test.copy.VisibilityPackage Invalid ref: non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate Invalid ref: non visible inner class in non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic Invalid ref: visible inner class in non visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPrivate Invalid ref: non visible inner class in visible class \n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n");
-	}
-
-	// @see Field references
-	public void test100() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	int x;\n"
-					+ "	/**\n"
-					+ "	 * Valid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see #x Valid ref: visible field\n"
-					+ "	 * @see Visibility#vf_public Valid ref: visible field\n"
-					+ "	 * @see Visibility.VcPublic#vf_public Valid ref: visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test101() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local class field references\n"
-					+ "	 *\n"
-					+ "	 * @see Visibility#unknown Invalid ref: non existent field\n"
-					+ "	 * @see Visibility#vf_private Invalid ref: non visible field\n"
-					+ "	 * @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-					+ "	 * @see Visibility.VcPrivate#vf_private Invalid ref: non visible inner class (non visible field)\n"
-					+ "	 * @see Visibility.VcPrivate#vf_public Invalid ref: non visible inner class (public field)\n"
-					+ "	 * @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#unknown Invalid ref: non existent field\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#vf_private Invalid ref: non visible field\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPrivate#unknown Invalid ref: non visible inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPrivate#vf_private Invalid ref: non visible inner class (non visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Visibility.VcPrivate#vf_public Invalid ref: non visible inner class (public field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see Visibility.VcPublic#unknown Invalid ref: non existent field in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: unknown cannot be resolved or is not a field\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see Visibility.VcPublic#vf_private Invalid ref: non visible field in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The field vf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test102() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid super class field references in the same package\n"
-					+ "	 *\n"
-					+ "	 * @see Visibility#avf_public Valid ref: visible inherited field\n"
-					+ "	 * @see Visibility.AvcPublic#avf_public Valid ref: visible field of inherited visible inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test103() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid super class field references in the same package\n"
-					+ "	 *\n"
-					+ "	 * @see Visibility#avf_private Invalid ref: non visible inherited field\n"
-					+ "	 * @see Visibility.AvcPrivate#avf_private Invalid ref: inherited non visible inner class (non visible field)\n"
-					+ "	 * @see Visibility.AvcPrivate#avf_public Invalid ref: inherited non visible inner class (visible field)\n"
-					+ "	 * @see Visibility.AvcPublic#avf_private Invalid ref: non visible field of inherited visible inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#avf_private Invalid ref: non visible inherited field\n"
-				+ "	                  ^^^^^^^^^^^\n"
-				+ "Javadoc: The field avf_private is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.AvcPrivate#avf_private Invalid ref: inherited non visible inner class (non visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.AvcPrivate#avf_public Invalid ref: inherited non visible inner class (visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.AvcPublic#avf_private Invalid ref: non visible field of inherited visible inner class\n"
-				+ "	                            ^^^^^^^^^^^\n"
-				+ "Javadoc: The field avf_private is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test104() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class fields references\n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
-					+ "	 * @see VisibilityPackage#vf_private Invalid ref: non visible class (non existent field)\n"
-					+ "	 * @see VisibilityPackage#vf_public Invalid ref: non visible class (visible field)\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#unknown Invalid ref: non visible class and non visible inner class (non existent field)\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#vf_private Invalid ref: non visible class and non visible inner class (non visible field)\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#vf_public Invalid ref: non visible class and non visible inner class (visible field)\n"
-					+ "	 * @see VisibilityPackage.VpPublic#unknown Invalid ref: non visible class and visible inner class (non existent field)\n"
-					+ "	 * @see VisibilityPackage.VpPublic#vf_private Invalid ref: non visible class and visible inner class (non visible field)\n"
-					+ "	 * @see VisibilityPackage.VpPublic#vf_public Invalid ref: non visible class and visible inner class (visible field)\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 7)\n" + 
-			"	* @see VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 8)\n" + 
-			"	* @see VisibilityPackage#vf_private Invalid ref: non visible class (non existent field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\X.java (at line 9)\n" + 
-			"	* @see VisibilityPackage#vf_public Invalid ref: non visible class (visible field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\X.java (at line 10)\n" + 
-			"	* @see VisibilityPackage.VpPrivate#unknown Invalid ref: non visible class and non visible inner class (non existent field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\X.java (at line 11)\n" + 
-			"	* @see VisibilityPackage.VpPrivate#vf_private Invalid ref: non visible class and non visible inner class (non visible field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\X.java (at line 12)\n" + 
-			"	* @see VisibilityPackage.VpPrivate#vf_public Invalid ref: non visible class and non visible inner class (visible field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"7. ERROR in test\\X.java (at line 13)\n" + 
-			"	* @see VisibilityPackage.VpPublic#unknown Invalid ref: non visible class and visible inner class (non existent field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"8. ERROR in test\\X.java (at line 14)\n" + 
-			"	* @see VisibilityPackage.VpPublic#vf_private Invalid ref: non visible class and visible inner class (non visible field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"9. ERROR in test\\X.java (at line 15)\n" + 
-			"	* @see VisibilityPackage.VpPublic#vf_public Invalid ref: non visible class and visible inner class (visible field)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n");
-	}
-
-	public void test105() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class fields references\n"
-					+ "	 *\n"
-					+ "	 * @see test.copy.VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
-					+ "	 * @see test.copy.VisibilityPackage#vf_private Invalid ref: non visible class (non existent field)\n"
-					+ "	 * @see test.copy.VisibilityPackage#vf_public Invalid ref: non visible class (visible field)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#unknown Invalid ref: non visible class and non visible inner class (non existent field)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#vf_private Invalid ref: non visible class and non visible inner class (non visible field)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#vf_public Invalid ref: non visible class and non visible inner class (visible field)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#unknown Invalid ref: non visible class and visible inner class (non existent field)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#vf_private Invalid ref: non visible class and visible inner class (non visible field)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#vf_public Invalid ref: non visible class and visible inner class (visible field)\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see test.copy.VisibilityPackage#unknown Invalid ref: non visible class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see test.copy.VisibilityPackage#vf_private Invalid ref: non visible class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.copy.VisibilityPackage#vf_public Invalid ref: non visible class (visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#unknown Invalid ref: non visible class and non visible inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#vf_private Invalid ref: non visible class and non visible inner class (non visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#vf_public Invalid ref: non visible class and non visible inner class (visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#unknown Invalid ref: non visible class and visible inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "8. ERROR in test\\X.java (at line 13)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#vf_private Invalid ref: non visible class and visible inner class (non visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "9. ERROR in test\\X.java (at line 14)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#vf_public Invalid ref: non visible class and visible inner class (visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test106() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class fields references\n"
-					+ "	 *\n"
-					+ "	 * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-					+ "	 * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-					+ "	 * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n"
-					+ "	 * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n"
-				+ "	       ^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n"
-				+ "	       ^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n"
-				+ "	       ^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "8. ERROR in test\\X.java (at line 13)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "9. ERROR in test\\X.java (at line 14)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: VisibilityPublic cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test107() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Invalid other package non visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic#vf_public Valid ref to not visible field of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test108() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n" +
-				"import test.copy.*;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Invalid other package non visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n" +
-				"	 * @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n" +
-				"	 * @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n" +
-				"	 * @see VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n" +
-				"	 * @see VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n" +
-				"	 * @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			},
-			"----------\n" +
-			"1. ERROR in test\\X.java (at line 7)\n" +
-			"	* @see VisibilityPublic#unknown Invalid ref to non existent field of other package class\n" +
-			"	                        ^^^^^^^\n" +
-			"Javadoc: unknown cannot be resolved or is not a field\n" +
-			"----------\n" +
-			"2. ERROR in test\\X.java (at line 8)\n" +
-			"	* @see VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n" +
-			"	                        ^^^^^^^^^^\n" +
-			"Javadoc: The field vf_private is not visible\n" +
-			"----------\n" +
-			"3. ERROR in test\\X.java (at line 9)\n" +
-			"	* @see VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n" +
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
-			"Javadoc: The type VisibilityPublic.VpPrivate is not visible\n" +
-			"----------\n" +
-			"4. ERROR in test\\X.java (at line 10)\n" +
-			"	* @see VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n" +
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
-			"Javadoc: The type VisibilityPublic.VpPrivate is not visible\n" +
-			"----------\n" +
-			"5. ERROR in test\\X.java (at line 11)\n" +
-			"	* @see VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n" +
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
-			"Javadoc: The type VisibilityPublic.VpPrivate is not visible\n" +
-			"----------\n" +
-			"6. ERROR in test\\X.java (at line 12)\n" +
-			"	* @see VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n" +
-			"	                                 ^^^^^^^\n" +
-			"Javadoc: unknown cannot be resolved or is not a field\n" +
-			"----------\n" +
-			"7. ERROR in test\\X.java (at line 13)\n" +
-			"	* @see VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n" +
-			"	                                 ^^^^^^^^^^\n" +
-			"Javadoc: The field vf_private is not visible\n" +
-			"----------\n"
-		);
-	}
-
-	public void test109() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Invalid other package non visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see test.copy.VisibilityPublic#vf_public Valid ref to not visible field of other package class\n" +
-				"	 * @see test.copy.VisibilityPublic.VpPublic#vf_public Valid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test110() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Invalid other package non visible class fields references\n" +
-				"	 *\n" +
-				"	 * @see test.copy.VisibilityPublic#unknown Invalid ref to non existent field of other package class\n" +
-				"	 * @see test.copy.VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n" +
-				"	 * @see test.copy.VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n" +
-				"	 * @see test.copy.VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n" +
-				"	 * @see test.copy.VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n" +
-				"	 * @see test.copy.VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n" +
-				"	 * @see test.copy.VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n" +
-				"	 */\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"},
-			"----------\n" +
-			"1. ERROR in test\\X.java (at line 6)\n" +
-			"	* @see test.copy.VisibilityPublic#unknown Invalid ref to non existent field of other package class\n" +
-			"	                                  ^^^^^^^\n" +
-			"Javadoc: unknown cannot be resolved or is not a field\n" +
-			"----------\n" +
-			"2. ERROR in test\\X.java (at line 7)\n" +
-			"	* @see test.copy.VisibilityPublic#vf_private Invalid ref to not visible field of other package class\n" +
-			"	                                  ^^^^^^^^^^\n" +
-			"Javadoc: The field vf_private is not visible\n" +
-			"----------\n" +
-			"3. ERROR in test\\X.java (at line 8)\n" +
-			"	* @see test.copy.VisibilityPublic.VpPrivate#unknown Invalid ref to a non visible other package private inner class (non existent field)\n" +
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
-			"Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n" +
-			"----------\n" +
-			"4. ERROR in test\\X.java (at line 9)\n" +
-			"	* @see test.copy.VisibilityPublic.VpPrivate#vf_private Invalid ref to a non visible other package private inner class (non visible field)\n" +
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
-			"Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n" +
-			"----------\n" +
-			"5. ERROR in test\\X.java (at line 10)\n" +
-			"	* @see test.copy.VisibilityPublic.VpPrivate#vf_public Invalid ref to a non visible other package private inner class (public field)\n" +
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
-			"Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n" +
-			"----------\n" +
-			"6. ERROR in test\\X.java (at line 11)\n" +
-			"	* @see test.copy.VisibilityPublic.VpPublic#unknown Invalid ref to non existent field of other package public inner class\n" +
-			"	                                           ^^^^^^^\n" +
-			"Javadoc: unknown cannot be resolved or is not a field\n" +
-			"----------\n" +
-			"7. ERROR in test\\X.java (at line 12)\n" +
-			"	* @see test.copy.VisibilityPublic.VpPublic#vf_private Invalid ref to not visible field of other package public inner class\n" +
-			"	                                           ^^^^^^^^^^\n" +
-			"Javadoc: The field vf_private is not visible\n" +
-			"----------\n"
-		);
-	}
-
-	// @see local method references
-	public void test115() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references with array\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[], int[][], String[][][], Vector[][][][]) Valid local method reference\n"
-					+ "	 * @see #smr_foo(char[],int[][],java.lang.String[][][],java.util.Vector[][][][]) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test116() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references with array (wrong brackets peer)\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[ , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char] , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][, String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[]], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[[], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][, Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][]], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][[], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[]][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][][][) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][][[]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][]][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][[][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[]][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[[][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(char[ , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(char] , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(char[] , int[][, String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 9)\n"
-				+ "	* @see #smr_foo(char[] , int[]], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 10)\n"
-				+ "	* @see #smr_foo(char[] , int[[], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "6. ERROR in X.java (at line 11)\n"
-				+ "	* @see #smr_foo(char[] , int][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "7. ERROR in X.java (at line 12)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][, Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "8. ERROR in X.java (at line 13)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][]], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "9. ERROR in X.java (at line 14)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][[], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "10. ERROR in X.java (at line 15)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[]][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "11. ERROR in X.java (at line 16)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "12. ERROR in X.java (at line 17)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "13. ERROR in X.java (at line 18)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][][][) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "14. ERROR in X.java (at line 19)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][][]]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "15. ERROR in X.java (at line 20)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][][[]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "16. ERROR in X.java (at line 21)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][]][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "17. ERROR in X.java (at line 22)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][[][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "18. ERROR in X.java (at line 23)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[]][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "19. ERROR in X.java (at line 24)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[[][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "20. ERROR in X.java (at line 25)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test117() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references with array (non applicable arrays)\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int, String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String, Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector) Invalid ref: invalid arguments declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(char , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char, int[][], String[][][], Vector[][][][])\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(char[] , int[], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[], String[][][], Vector[][][][])\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(char[] , int, String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int, String[][][], Vector[][][][])\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 9)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][], Vector[][][][])\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 10)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[], Vector[][][][])\n"
-				+ "----------\n"
-				+ "6. ERROR in X.java (at line 11)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String, Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String, Vector[][][][])\n"
-				+ "----------\n"
-				+ "7. ERROR in X.java (at line 12)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[][][])\n"
-				+ "----------\n"
-				+ "8. ERROR in X.java (at line 13)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[][])\n"
-				+ "----------\n"
-				+ "9. ERROR in X.java (at line 14)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[]) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector[])\n"
-				+ "----------\n"
-				+ "10. ERROR in X.java (at line 15)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector) Invalid ref: invalid arguments declaration\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(char[], int[][], String[][][], Vector[][][][]) in the type X is not applicable for the arguments (char[], int[][], String[][][], Vector)\n"
-				+ "----------\n");
-	}
-
-	public void test118() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references with array (non applicable arrays)\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(char[1] , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[2][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][3], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[4][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][5][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][6], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[7][][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][8][][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][][9][]) Invalid ref: invalid arguments declaration\n"
-					+ "	 * @see #smr_foo(char[] , int[][], String[][][], Vector[][][][10]) Invalid ref: invalid arguments declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(char[] array, int[][] matrix, String[][][] dim, Vector[][][][] extra) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(char[1] , int[][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(char[] , int[2][], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(char[] , int[][3], String[][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 9)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[4][][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 10)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][5][], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "6. ERROR in X.java (at line 11)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][6], Vector[][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "7. ERROR in X.java (at line 12)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[7][][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "8. ERROR in X.java (at line 13)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][8][][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "9. ERROR in X.java (at line 14)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][][9][]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "10. ERROR in X.java (at line 15)\n"
-				+ "	* @see #smr_foo(char[] , int[][], String[][][], Vector[][][][10]) Invalid ref: invalid arguments declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-	public void test120() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo() Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean, int, byte, short, char, long, float, double) Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) Valid local method reference\n"
-					+ "	 * @see #smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
-					+ "	 * @see #smr_foo(String, String, int) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.lang.String, String, int) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.lang.String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(String x,String y,int z) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.lang.String x,String y, int z) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(String x,java.lang.String y,int z) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.lang.String x,java.lang.String y,int z) Valid local method reference   \n"
-					+ "	 * @see #smr_foo(java.util.Hashtable,java.util.Vector,boolean) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.util.Hashtable,Vector,boolean) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.util.Hashtable a, java.util.Vector b, boolean c) Valid local method reference\n"
-					+ "	 * @see #smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test121() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #unknown() Invalid ref: undefined local method reference\n"
-					+ "	 * @see #smrfoo() Invalid ref: undefined local method reference\n"
-					+ "	 * @see #smr_FOO() Invalid ref: undefined local method reference\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #unknown() Invalid ref: undefined local method reference\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type X\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smrfoo() Invalid ref: undefined local method reference\n"
-				+ "	        ^^^^^^\n"
-				+ "Javadoc: The method smrfoo() is undefined for the type X\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_FOO() Invalid ref: undefined local method reference\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_FOO() is undefined for the type X\n"
-				+ "----------\n");
-	}
-
-	public void test122() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(boolean, int, byte, short, char, long, float) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean, int, byte, short, char, long) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean, int, byte, short, char) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean, int, byte, short) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean, int, byte) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean, int) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(boolean, int, byte, short, char, long, float) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte, short, char, long, float)\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(boolean, int, byte, short, char, long) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte, short, char, long)\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(boolean, int, byte, short, char) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte, short, char)\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(boolean, int, byte, short) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte, short)\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 9)\n"
-				+ "	* @see #smr_foo(boolean, int, byte) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int, byte)\n"
-				+ "----------\n"
-				+ "6. ERROR in X.java (at line 10)\n"
-				+ "	* @see #smr_foo(boolean, int) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean, int)\n"
-				+ "----------\n"
-				+ "7. ERROR in X.java (at line 11)\n"
-				+ "	* @see #smr_foo(boolean) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (boolean)\n"
-				+ "----------\n");
-	}
-
-	public void test123() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(int, String, String) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(String, int, String) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(String, String) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(String) Invalid ref: local method not applicable\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(int, String, String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (int, String, String)\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(String, int, String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, int, String)\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(String, String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, String)\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(String) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String)\n"
-				+ "----------\n");
-	}
-
-	public void test124() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(java.util.Hashtable,java.util.Vector) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(java.util.Hashtable,boolean,java.util.Vector) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(boolean,java.util.Hashtable,java.util.Vector) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(java.util.Hashtable) Invalid ref: local method not applicable\n"
-					+ "	 * @see #smr_foo(java.util.Vector) Invalid ref: local method not applicable\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(java.util.Hashtable,java.util.Vector) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable, Vector)\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(java.util.Hashtable,boolean,java.util.Vector) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable, boolean, Vector)\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(boolean,java.util.Hashtable,java.util.Vector) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (boolean, Hashtable, Vector)\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(java.util.Hashtable) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable)\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 9)\n"
-				+ "	* @see #smr_foo(java.util.Vector) Invalid ref: local method not applicable\n"
-				+ "	        ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Vector)\n"
-				+ "----------\n");
-	}
-
-	public void test125() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(boolean,int i,byte y,short s,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(boolean b,int, byte y, short s, char c, long l, float f, double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(boolean b,int i,byte,short s,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(boolean b,int i,byte y,short,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(boolean b,int i,byte y,short s,char,long l,float f,double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(boolean b,int i,byte y,short s,char c,long,float f,double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(boolean b,int i,byte y,short s,char c,long l,float,double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(boolean b,int i,byte y,short s,char c,long l,float f,double) Invalid reference: mixed argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(boolean,int i,byte y,short s,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(boolean b,int, byte y, short s, char c, long l, float f, double d) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(boolean b,int i,byte,short s,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(boolean b,int i,byte y,short,char c,long l,float f,double d) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 9)\n"
-				+ "	* @see #smr_foo(boolean b,int i,byte y,short s,char,long l,float f,double d) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "6. ERROR in X.java (at line 10)\n"
-				+ "	* @see #smr_foo(boolean b,int i,byte y,short s,char c,long,float f,double d) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "7. ERROR in X.java (at line 11)\n"
-				+ "	* @see #smr_foo(boolean b,int i,byte y,short s,char c,long l,float,double d) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "8. ERROR in X.java (at line 12)\n"
-				+ "	* @see #smr_foo(boolean b,int i,byte y,short s,char c,long l,float f,double) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test126() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(String,String y,int z) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(java.lang.String x,String, int z) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(String x,java.lang.String y,int) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(java.lang.String,java.lang.String,int z) Invalid reference: mixed argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see #smr_foo(String,String y,int z) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(java.lang.String x,String, int z) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(String x,java.lang.String y,int) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(java.lang.String,java.lang.String,int z) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test127() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see #smr_foo(Hashtable,java.util.Vector,boolean) Invalid reference: unresolved argument type\n"
-					+ "	 * @see #smr_foo(Hashtable,Vector,boolean) Invalid reference: unresolved argument type\n"
-					+ "	 * @see #smr_foo(Hashtable a, java.util.Vector b, boolean c) Invalid reference: unresolved argument type\n"
-					+ "	 * @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-					+ "	 * @see #smr_foo(java.util.Hashtable a, java.util.Vector b, boolean) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(java.util.Hashtable, Vector, boolean c) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(Hashtable a, java.util.Vector, boolean c) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see #smr_foo(Hashtable, Vector b, boolean c) Invalid reference: mixed argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @see #smr_foo(Hashtable,java.util.Vector,boolean) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 7)\n"
-				+ "	* @see #smr_foo(Hashtable,Vector,boolean) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 8)\n"
-				+ "	* @see #smr_foo(Hashtable a, java.util.Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 9)\n"
-				+ "	* @see #smr_foo(Hashtable a, Vector b, boolean c) Invalid reference: unresolved argument type\n"
-				+ "	                ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 10)\n"
-				+ "	* @see #smr_foo(java.util.Hashtable a, java.util.Vector b, boolean) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "6. ERROR in X.java (at line 11)\n"
-				+ "	* @see #smr_foo(java.util.Hashtable, Vector, boolean c) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "7. ERROR in X.java (at line 12)\n"
-				+ "	* @see #smr_foo(Hashtable a, java.util.Vector, boolean c) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "8. ERROR in X.java (at line 13)\n"
-				+ "	* @see #smr_foo(Hashtable, Vector b, boolean c) Invalid reference: mixed argument declaration\n"
-				+ "	               ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test130() {
-		this.runConformTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see X#smr_foo() Valid local method reference\n"
-					+ "	 * @see X#smr_foo(boolean, int, byte, short, char, long, float, double) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(String, String, int) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(java.lang.String, String, int) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(java.lang.String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(String x,String y,int z) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(java.lang.String x,String y, int z) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(String x,java.lang.String y,int z) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(java.lang.String x,java.lang.String y,int z) Valid local method reference   \n"
-					+ "	 * @see X#smr_foo(java.util.Hashtable,java.util.Vector,boolean) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(java.util.Hashtable,Vector,boolean) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(java.util.Hashtable a, java.util.Vector b, boolean c) Valid local method reference\n"
-					+ "	 * @see X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test131() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see X#unknown() Invalid ref: undefined local method reference\n"
-					+ "	 * @see X#smrfoo() Invalid ref: undefined local method reference\n"
-					+ "	 * @see X#smr_FOO() Invalid ref: undefined local method reference\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 5)\n"
-				+ "	* @see X#unknown() Invalid ref: undefined local method reference\n"
-				+ "	         ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type X\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 6)\n"
-				+ "	* @see X#smrfoo() Invalid ref: undefined local method reference\n"
-				+ "	         ^^^^^^\n"
-				+ "Javadoc: The method smrfoo() is undefined for the type X\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 7)\n"
-				+ "	* @see X#smr_FOO() Invalid ref: undefined local method reference\n"
-				+ "	         ^^^^^^^\n"
-				+ "Javadoc: The method smr_FOO() is undefined for the type X\n"
-				+ "----------\n");
-	}
-
-	public void test132() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see X#smr_foo(Object) Invalid ref: local method not applicable\n"
-					+ "	 * @see X#smr_foo(int, byte, short, char, long, float, double) Invalid ref: local method not applicable\n"
-					+ "	 * @see X#smr_foo(String, int) Invalid ref: local method not applicable\n"
-					+ "	 * @see X#smr_foo(String) Invalid ref: local method not applicable\n"
-					+ "	 * @see X#smr_foo(java.util.Hashtable,Vector) Invalid ref: local method not applicable\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @see X#smr_foo(Object) Invalid ref: local method not applicable\n"
-				+ "	         ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo() in the type X is not applicable for the arguments (Object)\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 7)\n"
-				+ "	* @see X#smr_foo(int, byte, short, char, long, float, double) Invalid ref: local method not applicable\n"
-				+ "	         ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (int, byte, short, char, long, float, double)\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 8)\n"
-				+ "	* @see X#smr_foo(String, int) Invalid ref: local method not applicable\n"
-				+ "	         ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, int)\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 9)\n"
-				+ "	* @see X#smr_foo(String) Invalid ref: local method not applicable\n"
-				+ "	         ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "5. ERROR in X.java (at line 10)\n"
-				+ "	* @see X#smr_foo(java.util.Hashtable,Vector) Invalid ref: local method not applicable\n"
-				+ "	         ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable, Vector)\n"
-				+ "----------\n");
-	}
-
-	public void test133() {
-		this.runNegativeTest(
-			new String[] {
-				"X.js",
-				"import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see X#smr_foo(boolean,int i,byte,short s,char,long l,float,double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see X#smr_foo(String,String y,int) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see X#smr_foo(Hashtable,Vector,boolean) Invalid reference: unresolved argument type\n"
-					+ "	 * @see X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in X.java (at line 6)\n"
-				+ "	* @see X#smr_foo(boolean,int i,byte,short s,char,long l,float,double d) Invalid reference: mixed argument declaration\n"
-				+ "	                ^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "2. ERROR in X.java (at line 7)\n"
-				+ "	* @see X#smr_foo(String,String y,int) Invalid reference: mixed argument declaration\n"
-				+ "	                ^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in X.java (at line 8)\n"
-				+ "	* @see X#smr_foo(Hashtable,Vector,boolean) Invalid reference: unresolved argument type\n"
-				+ "	                 ^^^^^^^^^\n"
-				+ "Javadoc: Hashtable cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in X.java (at line 9)\n"
-				+ "	* @see X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
-				+ "	                ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test135() {
-		this.runConformTest(
-			new String[] {
-				"test/deep/qualified/name/p/X.js",
-				"package test.deep.qualified.name.p;\n"
-					+ "import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo() Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(boolean, int, byte, short, char, long, float, double) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(boolean,int,byte,short,char,long,float,double) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(boolean a1,int a2,byte a3,short a4,char a5,long a6,float a7,double a8) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String, String, int) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.lang.String, String, int) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.lang.String, java.lang.String, int) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String x,String y,int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.lang.String x,String y, int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String x,java.lang.String y,int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.lang.String x,java.lang.String y,int z) Valid local method reference   \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable,java.util.Vector,boolean) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable,Vector,boolean) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, java.util.Vector b, boolean c) Valid local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable a, Vector b, boolean c) Valid local method reference\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test136() {
-		this.runNegativeTest(
-			new String[] {
-				"test/deep/qualified/name/p/X.js",
-				"package test.deep.qualified.name.p;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.X#unknown() Invalid ref: undefined local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smrfoo() Invalid ref: undefined local method reference\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_FOO() Invalid ref: undefined local method reference\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 6)\n"
-				+ "	* @see test.deep.qualified.name.p.X#unknown() Invalid ref: undefined local method reference\n"
-				+ "	                                    ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type X\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 7)\n"
-				+ "	* @see test.deep.qualified.name.p.X#smrfoo() Invalid ref: undefined local method reference\n"
-				+ "	                                    ^^^^^^\n"
-				+ "Javadoc: The method smrfoo() is undefined for the type X\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 8)\n"
-				+ "	* @see test.deep.qualified.name.p.X#smr_FOO() Invalid ref: undefined local method reference\n"
-				+ "	                                    ^^^^^^^\n"
-				+ "Javadoc: The method smr_FOO() is undefined for the type X\n"
-				+ "----------\n");
-	}
-
-	public void test137() {
-		this.runNegativeTest(
-			new String[] {
-				"test/deep/qualified/name/p/X.js",
-				"package test.deep.qualified.name.p;\n"
-					+ "import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(Object) Invalid ref: local method not applicable\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(int, byte, short, char, long, float, double) Invalid ref: local method not applicable\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String, int) Invalid ref: local method not applicable\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String) Invalid ref: local method not applicable\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable,Vector) Invalid ref: local method not applicable\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo() {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 7)\n"
-				+ "	* @see test.deep.qualified.name.p.X#smr_foo(Object) Invalid ref: local method not applicable\n"
-				+ "	                                    ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo() in the type X is not applicable for the arguments (Object)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 8)\n"
-				+ "	* @see test.deep.qualified.name.p.X#smr_foo(int, byte, short, char, long, float, double) Invalid ref: local method not applicable\n"
-				+ "	                                    ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(boolean, int, byte, short, char, long, float, double) in the type X is not applicable for the arguments (int, byte, short, char, long, float, double)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 9)\n"
-				+ "	* @see test.deep.qualified.name.p.X#smr_foo(String, int) Invalid ref: local method not applicable\n"
-				+ "	                                    ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String, int)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 10)\n"
-				+ "	* @see test.deep.qualified.name.p.X#smr_foo(String) Invalid ref: local method not applicable\n"
-				+ "	                                    ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(String, String, int) in the type X is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 11)\n"
-				+ "	* @see test.deep.qualified.name.p.X#smr_foo(java.util.Hashtable,Vector) Invalid ref: local method not applicable\n"
-				+ "	                                    ^^^^^^^\n"
-				+ "Javadoc: The method smr_foo(Hashtable, Vector, boolean) in the type X is not applicable for the arguments (Hashtable, Vector)\n"
-				+ "----------\n");
-	}
-
-	public void test138() {
-		this.runNegativeTest(
-			new String[] {
-				"test/deep/qualified/name/p/X.js",
-				"package test.deep.qualified.name.p;\n"
-					+ "import java.util.Vector;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid local methods references\n"
-					+ "	 * \n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(boolean,int i,byte,short s,char,long l,float,double d) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(String,String y,int) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
-					+ "	 * @see test.deep.qualified.name.p.X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "\n"
-					+ "	// Empty methods definition for reference\n"
-					+ "	public void smr_foo(boolean b, int i, byte y, short s, char c, long l, float f, double d) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(String str1, java.lang.String str2, int i) {\n"
-					+ "	}\n"
-					+ "	public void smr_foo(java.util.Hashtable h, java.util.Vector v, boolean b) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 7)\n" + 
-			"	* @see test.deep.qualified.name.p.X#smr_foo(boolean,int i,byte,short s,char,long l,float,double d) Invalid reference: mixed argument declaration\n" + 
-			"	                                           ^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 8)\n" + 
-			"	* @see test.deep.qualified.name.p.X#smr_foo(String,String y,int) Invalid reference: mixed argument declaration\n" + 
-			"	                                           ^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 9)\n" + 
-			"	* @see test.deep.qualified.name.p.X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n" + 
-			"	                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\deep\\qualified\\name\\p\\X.java (at line 10)\n" + 
-			"	* @see test.deep.qualified.name.p.X#smr_foo(Hashtable,Vector,boolean b) Invalid reference: mixed argument declaration\n" + 
-			"	                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n");
-	}
-
-	public void test140() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid package class methods references\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 * @see test.Visibility#vm_public() Valid ref: visible method\n"
-					+ "	 * @see test.Visibility.VcPublic#vm_public() Valid ref: visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test141() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-existence)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#unknown() Invalid ref: non-existent method\n"
-					+ "	 * @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-					+ "	 * @see Unknown#vm_public() Invalid ref: non-existent class\n"
-					+ "	 * @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#unknown() Invalid ref: non-existent method\n"
-				+ "	                  ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.VcPublic#unknown() Invalid ref: non existent method in visible inner class\n"
-				+ "	                           ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type Visibility.VcPublic\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Unknown#vm_public() Invalid ref: non-existent class\n"
-				+ "	       ^^^^^^^\n"
-				+ "Javadoc: Unknown cannot be resolved to a type\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.Unknown#vm_public() Invalid ref: non existent inner class\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Visibility.Unknown cannot be resolved to a type\n"
-				+ "----------\n");
-	}
-
-	public void test142() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private() Invalid ref: non-visible method\n"
-					+ "	 * @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-					+ "	 * @see Visibility.VcPrivate#vm_private() Invalid ref: non visible inner class (non visible method)\n"
-					+ "	 * @see Visibility.VcPrivate#vm_private(boolean, String) Invalid ref: non visible inner class (non applicable method)\n"
-					+ "	 * @see Visibility.VcPrivate#vm_public() Invalid ref: non visible inner class (visible method)\n"
-					+ "	 * @see Visibility.VcPrivate#vm_public(Object, float) Invalid ref: non visible inner class (non applicable visible method)\n"
-					+ "	 * @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private() Invalid ref: non-visible method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.VcPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPrivate#vm_private() Invalid ref: non visible inner class (non visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPrivate#vm_private(boolean, String) Invalid ref: non visible inner class (non applicable method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Visibility.VcPrivate#vm_public() Invalid ref: non visible inner class (visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see Visibility.VcPrivate#vm_public(Object, float) Invalid ref: non visible inner class (non applicable visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.VcPrivate is not visible\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see Visibility.VcPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type Visibility.VcPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test143() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-					+ "	 * @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 * @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private(int) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#vm_public(String) Invalid ref: non-applicable method\n"
-				+ "	                  ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPublic#vm_private(Integer, byte) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type Visibility.VcPublic is not applicable for the arguments (Integer, byte)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPublic#vm_public(Double z, Boolean x) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                           ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type Visibility.VcPublic is not applicable for the arguments (Double, Boolean)\n"
-				+ "----------\n");
-	}
-
-	public void test144() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package class methods references (invalid arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#vm_private(,) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility#vm_public(,String) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility.VcPrivate#vm_private(char, double d) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility.VcPrivate#vm_public(#) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility.VcPublic#vm_private(a a a) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility.VcPublic#vm_public(####) Invalid ref: Invalid ref: invalid argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#vm_private(,) Invalid ref: invalid argument declaration\n"
-				+ "	                            ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#vm_public(,String) Invalid ref: invalid argument declaration\n"
-				+ "	                           ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.VcPrivate#vm_private(char, double d) Invalid ref: invalid argument declaration\n"
-				+ "	                                      ^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.VcPrivate#vm_public(#) Invalid ref: invalid argument declaration\n"
-				+ "	                                     ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Visibility.VcPublic#vm_private(a a a) Invalid ref: invalid argument declaration\n"
-				+ "	                                     ^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see Visibility.VcPublic#vm_public(####) Invalid ref: Invalid ref: invalid argument declaration\n"
-				+ "	                                    ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test145() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid package super class methods references\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#avm_public() Valid ref: visible inherited method\n"
-					+ "	 * @see Visibility.AvcPublic#avm_public() Valid ref: visible inherited method in visible inner class\n"
-					+ "	 * @see test.Visibility#avm_public() Valid ref: visible inherited method\n"
-					+ "	 * @see test.Visibility.AvcPublic#avm_public() Valid ref: visible inherited method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test146() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package super class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#avm_private() Invalid ref: non-visible inherited method\n"
-					+ "	 * @see Visibility.AvcPrivate#unknown() Invalid ref: non visible inherited inner class (non existent method)\n"
-					+ "	 * @see Visibility.AvcPrivate#avm_private() Invalid ref: non visible inherited inner class (non visible method)\n"
-					+ "	 * @see Visibility.AvcPrivate#avm_private(boolean, String) Invalid ref: non visible inherited inner class (non applicable method)\n"
-					+ "	 * @see Visibility.AvcPrivate#avm_public() Invalid ref: non visible inherited inner class (visible method)\n"
-					+ "	 * @see Visibility.AvcPrivate#avm_public(Object, float) Invalid ref: non visible inherited inner class (non applicable visible method)\n"
-					+ "	 * @see Visibility.AvcPublic#avm_private() Invalid ref: non visible inherited method in visible inherited inner class\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#avm_private() Invalid ref: non-visible inherited method\n"
-				+ "	                  ^^^^^^^^^^^\n"
-				+ "Javadoc: The method avm_private() from the type AbstractVisibility is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility.AvcPrivate#unknown() Invalid ref: non visible inherited inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.AvcPrivate#avm_private() Invalid ref: non visible inherited inner class (non visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.AvcPrivate#avm_private(boolean, String) Invalid ref: non visible inherited inner class (non applicable method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Visibility.AvcPrivate#avm_public() Invalid ref: non visible inherited inner class (visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see Visibility.AvcPrivate#avm_public(Object, float) Invalid ref: non visible inherited inner class (non applicable visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type Visibility.AvcPrivate is not visible\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see Visibility.AvcPublic#avm_private() Invalid ref: non visible inherited method in visible inherited inner class\n"
-				+ "	                            ^^^^^^^^^^^\n"
-				+ "Javadoc: The method avm_private() from the type AbstractVisibility.AvcPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test147() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package super class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#avm_private(int) Invalid ref: non-applicable inherited method\n"
-					+ "	 * @see Visibility#avm_public(String) Invalid ref: non-applicable inherited method\n"
-					+ "	 * @see Visibility.AvcPublic#avm_private(Integer, byte) Invalid ref: non applicable inherited method in visible inner class\n"
-					+ "	 * @see Visibility.AvcPublic#avm_public(Double z, Boolean x) Invalid ref: non applicable inherited method in visible inner class\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#avm_private(int) Invalid ref: non-applicable inherited method\n"
-				+ "	                  ^^^^^^^^^^^\n"
-				+ "Javadoc: The method avm_private() in the type AbstractVisibility is not applicable for the arguments (int)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#avm_public(String) Invalid ref: non-applicable inherited method\n"
-				+ "	                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method avm_public() in the type AbstractVisibility is not applicable for the arguments (String)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.AvcPublic#avm_private(Integer, byte) Invalid ref: non applicable inherited method in visible inner class\n"
-				+ "	                            ^^^^^^^^^^^\n"
-				+ "Javadoc: The method avm_private() in the type AbstractVisibility.AvcPublic is not applicable for the arguments (Integer, byte)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.AvcPublic#avm_public(Double z, Boolean x) Invalid ref: non applicable inherited method in visible inner class\n"
-				+ "	                            ^^^^^^^^^^\n"
-				+ "Javadoc: The method avm_public() in the type AbstractVisibility.AvcPublic is not applicable for the arguments (Double, Boolean)\n"
-				+ "----------\n");
-	}
-
-	public void test148() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid package super class methods references (invalid arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see Visibility#avm_private(,,,,) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility#avm_public(String,,,) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility.AvcPrivate#avm_private(char c, double) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility.AvcPrivate#avm_public(*) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility.AvcPublic#avm_private(a a a) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see Visibility.AvcPublic#avm_public(*****) Invalid ref: invalid argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see Visibility#avm_private(,,,,) Invalid ref: invalid argument declaration\n"
-				+ "	                             ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see Visibility#avm_public(String,,,) Invalid ref: invalid argument declaration\n"
-				+ "	                            ^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see Visibility.AvcPrivate#avm_private(char c, double) Invalid ref: invalid argument declaration\n"
-				+ "	                                        ^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see Visibility.AvcPrivate#avm_public(*) Invalid ref: invalid argument declaration\n"
-				+ "	                                       ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see Visibility.AvcPublic#avm_private(a a a) Invalid ref: invalid argument declaration\n"
-				+ "	                                       ^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see Visibility.AvcPublic#avm_public(*****) Invalid ref: invalid argument declaration\n"
-				+ "	                                      ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test150() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.*;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class methods references (non existent/visible arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see VisibilityPackage#vm_private() Invalid ref: non visible class (non visible method)\n"
-					+ "	 * @see VisibilityPackage#vm_private(boolean) Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see VisibilityPackage#vm_public() Invalid ref: non visible class (visible method)\n"
-					+ "	 * @see VisibilityPackage#vm_public(long,long,long,int) Invalid ref: non visible class (visible method)\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#unknown() Invalid ref: non visible class and non visible inner class (non existent method)\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#vm_private() Invalid ref: non visible class and non visible inner class (non visible method)\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#vm_private(boolean, String) Invalid ref: non visible class and non visible inner class (non applicable method)\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#vm_public() Invalid ref: non visible class and non visible inner class (visible method)\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#vm_public(Object, float) Invalid ref: non visible class and non visible inner class (non applicable visible method)\n"
-					+ "	 * @see VisibilityPackage.VpPublic#unknown() Invalid ref: non visible class and visible inner class (non existent method)\n"
-					+ "	 * @see VisibilityPackage.VpPublic#vm_private() Invalid ref: non visible class and visible inner class (non visible method)\n"
-					+ "	 * @see VisibilityPackage.VpPublic#vm_private(boolean, String) Invalid ref: non visible class and visible inner class (non applicable method)\n"
-					+ "	 * @see VisibilityPackage.VpPublic#vm_public() Invalid ref: non visible class and visible inner class (visible method)\n"
-					+ "	 * @see VisibilityPackage.VpPublic#vm_public(Object, float) Invalid ref: non visible class and visible inner class (non applicable visible method)\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 7)\n" + 
-			"	* @see VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 8)\n" + 
-			"	* @see VisibilityPackage#vm_private() Invalid ref: non visible class (non visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\X.java (at line 9)\n" + 
-			"	* @see VisibilityPackage#vm_private(boolean) Invalid ref: non visible class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\X.java (at line 10)\n" + 
-			"	* @see VisibilityPackage#vm_public() Invalid ref: non visible class (visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\X.java (at line 11)\n" + 
-			"	* @see VisibilityPackage#vm_public(long,long,long,int) Invalid ref: non visible class (visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\X.java (at line 12)\n" + 
-			"	* @see VisibilityPackage.VpPrivate#unknown() Invalid ref: non visible class and non visible inner class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"7. ERROR in test\\X.java (at line 13)\n" + 
-			"	* @see VisibilityPackage.VpPrivate#vm_private() Invalid ref: non visible class and non visible inner class (non visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"8. ERROR in test\\X.java (at line 14)\n" + 
-			"	* @see VisibilityPackage.VpPrivate#vm_private(boolean, String) Invalid ref: non visible class and non visible inner class (non applicable method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"9. ERROR in test\\X.java (at line 15)\n" + 
-			"	* @see VisibilityPackage.VpPrivate#vm_public() Invalid ref: non visible class and non visible inner class (visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"10. ERROR in test\\X.java (at line 16)\n" + 
-			"	* @see VisibilityPackage.VpPrivate#vm_public(Object, float) Invalid ref: non visible class and non visible inner class (non applicable visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"11. ERROR in test\\X.java (at line 17)\n" + 
-			"	* @see VisibilityPackage.VpPublic#unknown() Invalid ref: non visible class and visible inner class (non existent method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"12. ERROR in test\\X.java (at line 18)\n" + 
-			"	* @see VisibilityPackage.VpPublic#vm_private() Invalid ref: non visible class and visible inner class (non visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"13. ERROR in test\\X.java (at line 19)\n" + 
-			"	* @see VisibilityPackage.VpPublic#vm_private(boolean, String) Invalid ref: non visible class and visible inner class (non applicable method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"14. ERROR in test\\X.java (at line 20)\n" + 
-			"	* @see VisibilityPackage.VpPublic#vm_public() Invalid ref: non visible class and visible inner class (visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n" + 
-			"15. ERROR in test\\X.java (at line 21)\n" + 
-			"	* @see VisibilityPackage.VpPublic#vm_public(Object, float) Invalid ref: non visible class and visible inner class (non applicable visible method)\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The type VisibilityPackage is not visible\n" + 
-			"----------\n");
-	}
-
-	public void test151() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.VisibilityPackage;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package non visible class methods references (invalid arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPackage#vm_private(boolean-) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPackage#vm_public(long, int() Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#vm_private(char, a double d()) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPackage.VpPrivate#vm_public(()) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPackage.VpPublic#vm_private(char double) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPackage.VpPublic#vm_public((((() Invalid ref: invalid argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 2)\n"
-				+ "	import test.copy.VisibilityPackage;\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPackage#vm_private(boolean-) Invalid ref: invalid argument declaration\n"
-				+ "	                                   ^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPackage#vm_public(long, int() Invalid ref: invalid argument declaration\n"
-				+ "	                                  ^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see VisibilityPackage.VpPrivate#vm_private(char, a double d()) Invalid ref: invalid argument declaration\n"
-				+ "	                                             ^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see VisibilityPackage.VpPrivate#vm_public(()) Invalid ref: invalid argument declaration\n"
-				+ "	                                            ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see VisibilityPackage.VpPublic#vm_private(char double) Invalid ref: invalid argument declaration\n"
-				+ "	                                            ^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see VisibilityPackage.VpPublic#vm_public((((() Invalid ref: invalid argument declaration\n"
-				+ "	                                           ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test152() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other fully qualified name package non visible class methods references (non existent/visible arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#vm_private() Invalid ref: non visible class (non visible method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#vm_private(boolean) Invalid ref: non visible class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#vm_public() Invalid ref: non visible class (visible method)\n"
-					+ "	 * @see test.copy.VisibilityPackage#vm_public(long,long,long,int) Invalid ref: non visible class (visible method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#unknown() Invalid ref: non visible class and non visible inner class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#vm_private() Invalid ref: non visible class and non visible inner class (non visible method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#vm_private(boolean, String) Invalid ref: non visible class and non visible inner class (non applicable method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#vm_public() Invalid ref: non visible class and non visible inner class (visible method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#vm_public(Object, float) Invalid ref: non visible class and non visible inner class (non applicable visible method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#unknown() Invalid ref: non visible class and visible inner class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#vm_private() Invalid ref: non visible class and visible inner class (non visible method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#vm_private(boolean, String) Invalid ref: non visible class and visible inner class (non applicable method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#vm_public() Invalid ref: non visible class and visible inner class (visible method)\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#vm_public(Object, float) Invalid ref: non visible class and visible inner class (non applicable visible method)\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see test.copy.VisibilityPackage#unknown() Invalid ref: non visible class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see test.copy.VisibilityPackage#vm_private() Invalid ref: non visible class (non visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.copy.VisibilityPackage#vm_private(boolean) Invalid ref: non visible class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.copy.VisibilityPackage#vm_public() Invalid ref: non visible class (visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see test.copy.VisibilityPackage#vm_public(long,long,long,int) Invalid ref: non visible class (visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#unknown() Invalid ref: non visible class and non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#vm_private() Invalid ref: non visible class and non visible inner class (non visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "8. ERROR in test\\X.java (at line 13)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#vm_private(boolean, String) Invalid ref: non visible class and non visible inner class (non applicable method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "9. ERROR in test\\X.java (at line 14)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#vm_public() Invalid ref: non visible class and non visible inner class (visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "10. ERROR in test\\X.java (at line 15)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#vm_public(Object, float) Invalid ref: non visible class and non visible inner class (non applicable visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "11. ERROR in test\\X.java (at line 16)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#unknown() Invalid ref: non visible class and visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "12. ERROR in test\\X.java (at line 17)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#vm_private() Invalid ref: non visible class and visible inner class (non visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "13. ERROR in test\\X.java (at line 18)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#vm_private(boolean, String) Invalid ref: non visible class and visible inner class (non applicable method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "14. ERROR in test\\X.java (at line 19)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#vm_public() Invalid ref: non visible class and visible inner class (visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n"
-				+ "15. ERROR in test\\X.java (at line 20)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#vm_public(Object, float) Invalid ref: non visible class and visible inner class (non applicable visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPackage is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test153() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other fully qualified name package non visible class methods references (invalid arguments)\n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPackage#vm_private(boolean-) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPackage#vm_public(long, int() Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#vm_private(char, a double d()) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPrivate#vm_public(()) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#vm_private(char double) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPackage.VpPublic#vm_public((((() Invalid ref: invalid argument declaration\n"
-					+ "	 */  \n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see test.copy.VisibilityPackage#vm_private(boolean-) Invalid ref: invalid argument declaration\n"
-				+ "	                                             ^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see test.copy.VisibilityPackage#vm_public(long, int() Invalid ref: invalid argument declaration\n"
-				+ "	                                            ^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#vm_private(char, a double d()) Invalid ref: invalid argument declaration\n"
-				+ "	                                                       ^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPrivate#vm_public(()) Invalid ref: invalid argument declaration\n"
-				+ "	                                                      ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#vm_private(char double) Invalid ref: invalid argument declaration\n"
-				+ "	                                                      ^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see test.copy.VisibilityPackage.VpPublic#vm_public((((() Invalid ref: invalid argument declaration\n"
-				+ "	                                                     ^^\n"
-				+ "Javadoc: Invalid parameters declaration\n"
-				+ "----------\n");
-	}
-
-	public void test154() {
-		runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n" +
-				"import test.copy.VisibilityPublic;\n" +
-				"public class X {\n" +
-				"	/**\n" +
-				"	 * Valid other package visible class methods references \n" +
-				"	 * \n" +
-				"	 * @see VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n" +
-				"	 * @see VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n" +
-				"	 */\n" +
-				"	public void s_foo() {\n" +
-				"	}\n" +
-				"}\n"
-			}
-		);
-	}
-
-	public void test155() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.VisibilityPublic;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package visible class methods references (non-existent)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPublic#unknown() Invalid ref: non existent method\n"
-					+ "	 * @see VisibilityPublic.VpPublic#unknown() Invalid ref: non existent method of visible inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPublic#unknown() Invalid ref: non existent method\n"
-				+ "	                        ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type VisibilityPublic\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPublic.VpPublic#unknown() Invalid ref: non existent method of visible inner class\n"
-				+ "	                                 ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type VisibilityPublic.VpPublic\n"
-				+ "----------\n");
-	}
-
-	public void test156() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.VisibilityPublic;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package visible class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPublic#vm_private() Invalid ref: non visible method in visible class\n"
-					+ "	 * @see VisibilityPublic#vm_public() Valid ref: visible method in visible class\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#vm_private() Invalid ref: non visible inner class in visible class and (non visible method)\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#vm_private(boolean, String) Invalid ref: non visible inner class in visible class (non applicable method)\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#vm_public() Invalid ref: non visible inner class in visible class (visible method)\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#vm_public(Object, float) Invalid ref: non visible inner class in visible class (non applicable visible method)\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPublic#vm_private() Invalid ref: non visible method in visible class\n"
-				+ "	                        ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type VisibilityPublic is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#vm_private() Invalid ref: non visible inner class in visible class and (non visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#vm_private(boolean, String) Invalid ref: non visible inner class in visible class (non applicable method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#vm_public() Invalid ref: non visible inner class in visible class (visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 13)\n"
-				+ "	* @see VisibilityPublic.VpPrivate#vm_public(Object, float) Invalid ref: non visible inner class in visible class (non applicable visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 14)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-				+ "	                                 ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type VisibilityPublic.VpPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test157() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.VisibilityPublic;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package visible class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPublic#vm_private(boolean) Invalid ref: non applicable method in visible class\n"
-					+ "	 * @see VisibilityPublic#vm_public(long,long,long,int) Invalid ref: non applicable method in visible class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vm_private(boolean, String) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vm_public(Object, float) Invalid ref: visible inner class (non applicable visible method)\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see VisibilityPublic#vm_private(boolean) Invalid ref: non applicable method in visible class\n"
-				+ "	                        ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type VisibilityPublic is not applicable for the arguments (boolean)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see VisibilityPublic#vm_public(long,long,long,int) Invalid ref: non applicable method in visible class\n"
-				+ "	                        ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type VisibilityPublic is not applicable for the arguments (long, long, long, int)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vm_private(boolean, String) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                                 ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type VisibilityPublic.VpPublic is not applicable for the arguments (boolean, String)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see VisibilityPublic.VpPublic#vm_public(Object, float) Invalid ref: visible inner class (non applicable visible method)\n"
-				+ "	                                 ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type VisibilityPublic.VpPublic is not applicable for the arguments (Object, float)\n"
-				+ "----------\n");
-	}
-
-	public void test158() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.VisibilityPublic;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package visible class methods references (non-existent)\n"
-					+ "	 * \n"
-					+ "	 * @see VisibilityPublic#vm_private(\"boolean\") Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPublic#vm_public(long, \"int) Invalid ref: invalid argument definition\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#vm_private(double d()) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPublic.VpPrivate#vm_public(\") Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vm_private(d()) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see VisibilityPublic.VpPublic#vm_public(205) Invalid ref: invalid argument declaration\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 7)\n" + 
-			"	* @see VisibilityPublic#vm_private(\"boolean\") Invalid ref: invalid argument declaration\n" + 
-			"	                                  ^^^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 8)\n" + 
-			"	* @see VisibilityPublic#vm_public(long, \"int) Invalid ref: invalid argument definition\n" + 
-			"	                                 ^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\X.java (at line 9)\n" + 
-			"	* @see VisibilityPublic.VpPrivate#vm_private(double d()) Invalid ref: invalid argument declaration\n" + 
-			"	                                            ^^^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\X.java (at line 10)\n" + 
-			"	* @see VisibilityPublic.VpPrivate#vm_public(\") Invalid ref: invalid argument declaration\n" + 
-			"	                                           ^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\X.java (at line 11)\n" + 
-			"	* @see VisibilityPublic.VpPublic#vm_private(d()) Invalid ref: invalid argument declaration\n" + 
-			"	                                           ^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\X.java (at line 12)\n" + 
-			"	* @see VisibilityPublic.VpPublic#vm_public(205) Invalid ref: invalid argument declaration\n" + 
-			"	                                          ^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n");
-	}
-
-	public void test159() {
-		this.runConformReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Valid other package visible class methods references \n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public() Valid ref to not visible method of other package class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_public() Valid ref to visible method of other package public inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-
-	public void test160() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package visible class methods references (non-existent)\n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#unknown() Invalid ref: non existent method\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#unknown() Invalid ref: non existent method of visible inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see test.copy.VisibilityPublic#unknown() Invalid ref: non existent method\n"
-				+ "	                                  ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type VisibilityPublic\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPublic#unknown() Invalid ref: non existent method of visible inner class\n"
-				+ "	                                           ^^^^^^^\n"
-				+ "Javadoc: The method unknown() is undefined for the type VisibilityPublic.VpPublic\n"
-				+ "----------\n");
-	}
-
-	public void test161() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package visible class methods references (non-visible)\n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_private() Invalid ref: non visible method in visible class\n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public() Valid ref: visible method in visible class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPrivate#vm_private() Invalid ref: non visible inner class in visible class and (non visible method)\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPrivate#vm_private(boolean, String) Invalid ref: non visible inner class in visible class (non applicable method)\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPrivate#vm_public() Invalid ref: non visible inner class in visible class (visible method)\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPrivate#vm_public(Object, float) Invalid ref: non visible inner class in visible class (non applicable visible method)\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see test.copy.VisibilityPublic#vm_private() Invalid ref: non visible method in visible class\n"
-				+ "	                                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type VisibilityPublic is not visible\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPrivate#unknown() Invalid ref: non visible inner class (non existent method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPrivate#vm_private() Invalid ref: non visible inner class in visible class and (non visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPrivate#vm_private(boolean, String) Invalid ref: non visible inner class in visible class (non applicable method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "5. ERROR in test\\X.java (at line 11)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPrivate#vm_public() Invalid ref: non visible inner class in visible class (visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "6. ERROR in test\\X.java (at line 12)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPrivate#vm_public(Object, float) Invalid ref: non visible inner class in visible class (non applicable visible method)\n"
-				+ "	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: The type test.copy.VisibilityPublic.VpPrivate is not visible\n"
-				+ "----------\n"
-				+ "7. ERROR in test\\X.java (at line 13)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPublic#vm_private() Invalid ref: non visible method in visible inner class\n"
-				+ "	                                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() from the type VisibilityPublic.VpPublic is not visible\n"
-				+ "----------\n");
-	}
-
-	public void test162() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package visible class methods references (non-applicable)\n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_private(boolean) Invalid ref: non applicable method in visible class\n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public(long,long,long,int) Invalid ref: non applicable method in visible class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_private(boolean, String) Invalid ref: non applicable method in visible inner class\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_public(Object, float) Invalid ref: visible inner class (non applicable visible method)\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @see test.copy.VisibilityPublic#vm_private(boolean) Invalid ref: non applicable method in visible class\n"
-				+ "	                                  ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type VisibilityPublic is not applicable for the arguments (boolean)\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 7)\n"
-				+ "	* @see test.copy.VisibilityPublic#vm_public(long,long,long,int) Invalid ref: non applicable method in visible class\n"
-				+ "	                                  ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type VisibilityPublic is not applicable for the arguments (long, long, long, int)\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 8)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPublic#vm_private(boolean, String) Invalid ref: non applicable method in visible inner class\n"
-				+ "	                                           ^^^^^^^^^^\n"
-				+ "Javadoc: The method vm_private() in the type VisibilityPublic.VpPublic is not applicable for the arguments (boolean, String)\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 9)\n"
-				+ "	* @see test.copy.VisibilityPublic.VpPublic#vm_public(Object, float) Invalid ref: visible inner class (non applicable visible method)\n"
-				+ "	                                           ^^^^^^^^^\n"
-				+ "Javadoc: The method vm_public() in the type VisibilityPublic.VpPublic is not applicable for the arguments (Object, float)\n"
-				+ "----------\n");
-	}
-
-	public void test163() {
-		this.runNegativeReferenceTest(
-			new String[] {
-				"test/X.js",
-				"package test;\n"
-					+ "import test.copy.VisibilityPublic;\n"
-					+ "public class X {\n"
-					+ "	/**\n"
-					+ "	 * Invalid other package visible class methods references (non-existent)\n"
-					+ "	 * \n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_private(\"\") Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPublic#vm_public(\"\"\") Invalid ref: invalid argument definition\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPrivate#vm_private(String d()) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPrivate#vm_public([) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_private([]) Invalid ref: invalid argument declaration\n"
-					+ "	 * @see test.copy.VisibilityPublic.VpPublic#vm_public(char[], int[],]) Invalid ref: invalid argument declaration\n"
-					+ "	 */\n"
-					+ "	public void s_foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 7)\n" + 
-			"	* @see test.copy.VisibilityPublic#vm_private(\"\") Invalid ref: invalid argument declaration\n" + 
-			"	                                            ^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 8)\n" + 
-			"	* @see test.copy.VisibilityPublic#vm_public(\"\"\") Invalid ref: invalid argument definition\n" + 
-			"	                                           ^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\X.java (at line 9)\n" + 
-			"	* @see test.copy.VisibilityPublic.VpPrivate#vm_private(String d()) Invalid ref: invalid argument declaration\n" + 
-			"	                                                      ^^^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\X.java (at line 10)\n" + 
-			"	* @see test.copy.VisibilityPublic.VpPrivate#vm_public([) Invalid ref: invalid argument declaration\n" + 
-			"	                                                     ^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\X.java (at line 11)\n" + 
-			"	* @see test.copy.VisibilityPublic.VpPublic#vm_private([]) Invalid ref: invalid argument declaration\n" + 
-			"	                                                     ^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\X.java (at line 12)\n" + 
-			"	* @see test.copy.VisibilityPublic.VpPublic#vm_public(char[], int[],]) Invalid ref: invalid argument declaration\n" + 
-			"	                                                    ^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid parameters declaration\n" + 
-			"----------\n");
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestMixed.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestMixed.java
deleted file mode 100644
index 9539670..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestMixed.java
+++ /dev/null
@@ -1,859 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTestMixed extends JavadocTest {
-
-	String docCommentSupport = CompilerOptions.ENABLED;
-	String reportInvalidJavadoc = CompilerOptions.ERROR;
-	String reportMissingJavadocTags = CompilerOptions.ERROR;
-	String reportMissingJavadocComments = null;
-
-	public JavadocTestMixed(String name) {
-		super(name);
-	}
-
-	public static Class javadocTestClass() {
-		return JavadocTestMixed.class;
-	}
-
-	// Use this static initializer to specify subset for tests
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_PREFIX = "testBug77602";
-//		TESTS_NAMES = new String[] { "testBug80910" };
-//		TESTS_NUMBERS = new int[] { 31, 32, 33 };
-//		TESTS_RANGE = new int[] { 21, 50 };
-	}
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(javadocTestClass());
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_DocCommentSupport, this.docCommentSupport);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, reportInvalidJavadoc);
-		if (reportMissingJavadocComments != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments);
-		else
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportInvalidJavadoc);
-		if (reportMissingJavadocTags != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportMissingJavadocTags);
-		else
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
-		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
-//		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-		return options;
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.docCommentSupport = CompilerOptions.ENABLED;
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocComments = null;
-	}
-	
-	/*
-	 * Test missing javadoc
-	 */
-	public void test001() {
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/** */\n"
-					+ "public class X {\n"
-					+ "  /** */\n"
-					+ "  public int x;\n"
-					+ "  /** */\n"
-					+ "	 public X() {}\n"
-					+ "  /** */\n"
-					+ "	 public void foo() {}\n"
-					+ "}\n" });
-	}
-	
-	public void test002() {
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/** */\n"
-					+ "class X {\n"
-					+ "  /** */\n"
-					+ "  int x;\n"
-					+ "  /** */\n"
-					+ "	 X() {}\n"
-					+ "  /** */\n"
-					+ "  void foo() {}\n"
-					+ "}\n" });
-	}
-	
-	public void test003() {
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/** */\n"
-					+ "class X {\n"
-					+ "  /** */\n"
-					+ "  protected int x;\n"
-					+ "  /** */\n"
-					+ "  protected X() {}\n"
-					+ "  /** */\n"
-					+ "  protected void foo() {}\n"
-					+ "}\n" });
-	}
-	
-	public void test004() {
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/** */\n"
-					+ "class X {\n"
-					+ "  /** */\n"
-					+ "  private int x;\n"
-					+ "  /** */\n"
-					+ "  private X() {}\n"
-					+ "  /** */\n"
-					+ "  private void foo() {}\n"
-					+ "}\n" });
-	}
-	
-	public void test005() {
-		reportInvalidJavadoc = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	public X() {}\n"
-					+ "\n"
-					+ "	public void foo() {}\n"
-					+ "}\n" });
-	}
-	
-	public void test006() {
-		reportMissingJavadocComments = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	String s1 = \"non-terminated;\n" + 
-				"	void foo() {}\n" + 
-				"	String s2 = \"terminated\";\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	String s1 = \"non-terminated;\n" + 
-				"	            ^^^^^^^^^^^^^^^^\n" + 
-				"String literal is not properly closed by a double-quote\n" + 
-				"----------\n"
-		);
-	}
-	
-	public void test010() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "public class X {\n"
-					+ "	/** Field javadoc comment */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	/** Constructor javadoc comment */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	/** Method javadoc comment */\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 2)\n"
-				+ "	public class X {\n"
-				+ "	             ^\n"
-				+ "Javadoc: Missing comment for public declaration\n"
-				+ "----------\n");
-	}
-	
-	public void test011() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/** Class javadoc comment */\n"
-					+ "public class X {\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	/** Constructor javadoc comment */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	/** Method javadoc comment */\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 4)\n"
-				+ "	public int x;\n"
-				+ "	           ^\n"
-				+ "Javadoc: Missing comment for public declaration\n"
-				+ "----------\n");
-	}
-	
-	public void test012() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/** Class javadoc comment */\n"
-					+ "public class X {\n"
-					+ "	/** Field javadoc comment */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	/** Method javadoc comment */\n"
-					+ "	public void foo() {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	public X() {\n"
-				+ "	       ^^^\n"
-				+ "Javadoc: Missing comment for public declaration\n"
-				+ "----------\n");
-	}
-	
-	public void test013() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/** Class javadoc comment */\n"
-					+ "public class X {\n"
-					+ "	/** Field javadoc comment */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "	/** Constructor javadoc comment */\n"
-					+ "	public X() {\n"
-					+ "	}\n"
-					+ "	public void foo(int a) {\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 10)\n"
-				+ "	public void foo(int a) {\n"
-				+ "	            ^^^^^^^^^^\n"
-				+ "Javadoc: Missing comment for public declaration\n"
-				+ "----------\n");
-	}
-	
-	/*
-	 * Test mixing javadoc comments
-	 */
-	public void test021() {
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Valid class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Valid constructor javadoc\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Valid method javadoc\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" });
-	}
-	
-	public void test022() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Unexpected tag in class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " * @param x\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Valid constructor javadoc\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Valid method javadoc\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 6)\n"
-				+ "	* @param x\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-	
-	public void test023() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Valid class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Unexpected tag in field javadoc\n"
-					+ " * @throws InvalidException\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Valid constructor javadoc\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Valid method javadoc\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @throws InvalidException\n"
-				+ "	   ^^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n");
-	}
-	
-	public void test024() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Valid class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Wrong tags order in constructor javadoc\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Valid method javadoc\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 19)\n"
-				+ "	* @param str Valid param tag\n"
-				+ "	   ^^^^^\n"
-				+ "Javadoc: Unexpected tag\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 22)\n"
-				+ "	public X(String str) {\n"
-				+ "	                ^^^\n"
-				+ "Javadoc: Missing tag for parameter str\n"
-				+ "----------\n");
-	}
-	
-	public void test025() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Valid class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Valid constructor javadoc\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Wrong param tag in method javadoc\n"
-					+ " * @param vector Invalid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 26)\n"
-				+ "	* @param vector Invalid param tag\n"
-				+ "	         ^^^^^^\n"
-				+ "Javadoc: Parameter vector is not declared\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 33)\n"
-				+ "	public String foo(java.util.Vector list) {\n"
-				+ "	                                   ^^^^\n"
-				+ "Javadoc: Missing tag for parameter list\n"
-				+ "----------\n");
-	}
-	
-	public void test026() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Invalid see tag in class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Invalid field javadoc\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>unexpected text\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Missing throws tag in constructor javadoc\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) throws java.io.IOException {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Missing return tag in method javadoc\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 5)\n"
-				+ "	* @see \"Test class X\n"
-				+ "	       ^^^^^^^^^^^^^\n"
-				+ "Javadoc: Invalid reference\n"
-				+ "----------\n"
-				+ "2. ERROR in test\\X.java (at line 10)\n"
-				+ "	* @see <a href=\"http://www.ibm.com\">Valid URL</a>unexpected text\n"
-				+ "	                                              ^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Unexpected text\n"
-				+ "----------\n"
-				+ "3. ERROR in test\\X.java (at line 22)\n"
-				+ "	public X(String str) throws java.io.IOException {\n"
-				+ "	                            ^^^^^^^^^^^^^^^^^^^\n"
-				+ "Javadoc: Missing tag for declared exception IOException\n"
-				+ "----------\n"
-				+ "4. ERROR in test\\X.java (at line 32)\n"
-				+ "	public String foo(java.util.Vector list) {\n"
-				+ "	       ^^^^^^\n"
-				+ "Javadoc: Missing tag for return type\n"
-				+ "----------\n");
-	}
-	
-	/*
-	 * Javadoc on invalid syntax
-	 */
-	public void test030() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Valid class javadoc on invalid declaration\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " */\n"
-					+ "protected class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Valid constructor javadoc\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Valid method javadoc\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 7)\n"
-				+ "	protected class X {\n"
-				+ "	                ^\n"
-				+ "Illegal modifier for the class X; only public, abstract & final are permitted\n"
-				+ "----------\n");
-	}
-	
-	public void test031() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Valid class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc on invalid declaration\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Valid constructor javadoc\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Valid method javadoc\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 12)\n"
-				+ "	public int x\n"
-				+ "	           ^\n"
-				+ "Syntax error, insert \";\" to complete ClassBodyDeclarations\n"
-				+ "----------\n");
-	}
-	
-	public void test032() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Valid class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Valid constructor javadoc on invalid declaration\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) \n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Valid method javadoc\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector list) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-			"----------\n"
-				+ "1. ERROR in test\\X.java (at line 22)\n"
-				+ "	public X(String str) \n"
-				+ "	                   ^\n"
-				+ "Syntax error on token \")\", { expected after this token\n"
-				+ "----------\n");
-	}
-	
-	public void test033() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n"
-					+ "/**\n"
-					+ " * Valid class javadoc\n"
-					+ " * @author ffr\n"
-					+ " * @see \"Test class X\"\n"
-					+ " */\n"
-					+ "public class X {\n"
-					+ "/**\n"
-					+ " * Valid field javadoc\n"
-					+ " * @see <a href=\"http://www.ibm.com\">Valid URL</a>\n"
-					+ " */\n"
-					+ "	public int x;\n"
-					+ "\n"
-					+ "/**\n"
-					+ " * Valid constructor javadoc\n"
-					+ " * @param str Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public X(String str) {\n"
-					+ "	}\n"
-					+ "/**\n"
-					+ " * Valid method javadoc on invalid declaration\n"
-					+ " * @param list Valid param tag\n"
-					+ " * @throws NullPointerException Valid throws tag\n"
-					+ " * @exception IllegalArgumentException Valid throws tag\n"
-					+ " * @return Valid return tag\n"
-					+ " * @see X Valid see tag\n"
-					+ " * @deprecated\n"
-					+ " */\n"
-					+ "	public String foo(java.util.Vector ) {\n"
-					+ "		return \"\";\n"
-					+ "	}\n"
-					+ "}\n" },
-					this.complianceLevel.compareTo(COMPLIANCE_1_5) < 0
-					? "----------\n"
-						+ "1. ERROR in test\\X.java (at line 23)\n"
-						+ "	}\n"
-						+ "	^\n"
-						+ "Syntax error, insert \"}\" to complete ClassBody\n"
-						+ "----------\n"
-						+ "2. ERROR in test\\X.java (at line 26)\n"
-						+ "	* @param list Valid param tag\n"
-						+ "	         ^^^^\n"
-						+ "Javadoc: Parameter list is not declared\n"
-						+ "----------\n"
-						+ "3. ERROR in test\\X.java (at line 33)\n"
-						+ "	public String foo(java.util.Vector ) {\n"
-						+ "	                            ^^^^^^\n"
-						+ "Syntax error on token \"Vector\", VariableDeclaratorId expected after this token\n"
-						+ "----------\n"
-						+ "4. ERROR in test\\X.java (at line 36)\n"
-						+ "	}\n"
-						+ "	^\n"
-						+ "Syntax error on token \"}\", delete this token\n"
-						+ "----------\n"
-					: "----------\n"
-						+ "1. ERROR in test\\X.java (at line 23)\n"
-						+ "	}\n"
-						+ "	^\n"
-						+ "Syntax error, insert \"}\" to complete ClassBody\n"
-						+ "----------\n"
-						+ "2. ERROR in test\\X.java (at line 26)\n"
-						+ "	* @param list Valid param tag\n"
-						+ "	         ^^^^\n"
-						+ "Javadoc: Parameter list is not declared\n"
-						+ "----------\n"
-						+ "3. ERROR in test\\X.java (at line 33)\n"
-						+ "	public String foo(java.util.Vector ) {\n"
-						+ "	                           ^\n"
-						+ "Syntax error on token \".\", ... expected\n"
-						+ "----------\n"
-						+ "4. ERROR in test\\X.java (at line 36)\n"
-						+ "	}\n"
-						+ "	^\n"
-						+ "Syntax error on token \"}\", delete this token\n"
-						+ "----------\n");
-	}
-	
-	public void test040() {
-		reportMissingJavadocComments = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	/**\n" + 
-					"	/**\n" + 
-					"	/** \n" + 
-					"	 * @param str\n" + 
-					"	 * @param x\n" + 
-					"	 */\n" + 
-					"	public void bar(String str, int x) {\n" + 
-					"	}\n" + 
-					"	public void foo() {\n" + 
-					"		bar(\"toto\", 0 /* block comment inline */);\n" + 
-					"	}\n" + 
-					"}\n" });
-	}
-	
-	public void test041() {
-		reportMissingJavadocComments = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"	/**\n" + 
-					"	 * @see String\n" + 
-					"	 * @see #\n" + 
-					"	 * @return String\n" + 
-					"	 */\n" + 
-					"	String bar() {return \"\";}\n" + 
-					"}\n"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @see #\n" + 
-				"	       ^\n" + 
-				"Javadoc: Invalid reference\n" + 
-				"----------\n"
-			);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestOptions.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestOptions.java
deleted file mode 100644
index 085e110..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTestOptions.java
+++ /dev/null
@@ -1,2022 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-/**
- * Tests to verify that Compiler options work well for Javadoc.
- * This class does not tests syntax error option as it's considered already
- * tested by other JavadocTest* classes.
- * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46854">46854</a>
- * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=46976">46976</a>
- */
-public class JavadocTestOptions extends JavadocTest {
-
-	String docCommentSupport = null;
-	String reportInvalidJavadoc = null;
-	String reportInvalidJavadocTagsVisibility = null;
-	String reportInvalidJavadocTags = null;
-	String reportInvalidJavadocTagsDeprecatedRef= null;
-	String reportInvalidJavadocTagsNotVisibleRef = null;
-	String reportMissingJavadocTags = null;
-	String reportMissingJavadocTagsVisibility = null;
-	String reportMissingJavadocTagsOverriding = null;
-	String reportMissingJavadocComments = null;
-	String reportMissingJavadocCommentsVisibility = null;
-	String reportMissingJavadocCommentsOverriding = null;
-	
-	private final int PUBLIC_VISIBILITY = 0;
-	private final int PROTECTED_VISIBILITY = 1;
-	private final int DEFAULT_VISIBILITY = 2;
-	private final int PRIVATE_VISIBILITY = 3;
-
-	private static String INVALID_CLASS_JAVADOC_REF = "	/**\n" + 
-		"	 * @see X_dep\n" + 
-		"	 * @see X.X_priv\n" + 
-		"	 * @see X.Unknown\n" + 
-		"	 * @see X#X(int)\n" + 
-		"	 * @see X#X(String)\n" + 
-		"	 * @see X#X()\n" + 
-		"	 * @see X#x_dep\n" + 
-		"	 * @see X#x_priv\n" + 
-		"	 * @see X#unknown\n" + 
-		"	 * @see X#foo_dep()\n" + 
-		"	 * @see X#foo_priv()\n" + 
-		"	 * @see X#foo_dep(String)\n" + 
-		"	 * @see X#unknown()\n" + 
-		"	 */\n";
-	private static String INVALID_METHOD_JAVADOC_REF = "	/**\n" + 
-		"	 * @param str\n" + 
-		"	 * @param str\n" + 
-		"	 * @param xxx\n" + 
-		"	 * @throws IllegalArgumentException\n" + 
-		"	 * @throws IllegalArgumentException\n" + 
-		"	 * @throws java.io.IOException\n" + 
-		"	 * @throws Unknown\n" + 
-		"	 * @see X_dep\n" + 
-		"	 * @see X.X_priv\n" + 
-		"	 * @see X.Unknown\n" + 
-		"	 * @see X#X(int)\n" + 
-		"	 * @see X#X(String)\n" + 
-		"	 * @see X#X()\n" + 
-		"	 * @see X#x_dep\n" + 
-		"	 * @see X#x_priv\n" + 
-		"	 * @see X#unknown\n" + 
-		"	 * @see X#foo_dep()\n" + 
-		"	 * @see X#foo_priv()\n" + 
-		"	 * @see X#foo_dep(String)\n" + 
-		"	 * @see X#unknown()\n" + 
-		"	 */\n";
-	private static String DEP_CLASS =
-		"/** @deprecated */\n" + 
-		"public class X_dep {}\n";
-	private static String REF_CLASS =
-		"public class X {\n" + 
-// Deprecated class must be a top level to avoid visibility issue
-//		"	/** @deprecated */\n" + 
-//		"	class X_dep{}\n" + 
-		"	private class X_priv{}\n" + 
-		"	/** @deprecated */\n" + 
-		"	public int x_dep;\n" + 
-		"	private int x_priv;\n" + 
-		"	/** @deprecated */\n" + 
-		"	public X() {}\n" + 
-		"	private X(int x) {}\n" + 
-		"	/** @deprecated */\n" + 
-		"	public void foo_dep() {}\n" + 
-		"	private void foo_priv() {}\n" + 
-		"	}\n";
-	private static String[] CLASSES_INVALID_COMMENT = {
-		"X.java",
-		REF_CLASS,
-		"X_dep.java",
-		DEP_CLASS,
-		"Y.java",
-		"public class Y {\n" + 
-			INVALID_CLASS_JAVADOC_REF + 
-			"	public class X_pub {}\n" + 
-			INVALID_CLASS_JAVADOC_REF + 
-			"	protected class X_prot {}\n" + 
-			INVALID_CLASS_JAVADOC_REF + 
-			"	class X_pack {}\n" + 
-			INVALID_CLASS_JAVADOC_REF + 
-			"	private class X_priv {}\n" + 
-			"}\n" + 
-			"\n"
-	};
-	private static String[] FIELDS_INVALID_COMMENT = {
-		"X.java",
-		REF_CLASS,
-		"X_dep.java",
-		DEP_CLASS,
-		"Y.java",
-		"public class Y {\n" + 
-			INVALID_CLASS_JAVADOC_REF + 
-			"	public int x_pub;\n" + 
-			INVALID_CLASS_JAVADOC_REF + 
-			"	protected int x_prot;\n" + 
-			INVALID_CLASS_JAVADOC_REF + 
-			"	int x_pack;\n" + 
-			INVALID_CLASS_JAVADOC_REF+ 
-			"	private int x_priv;\n" + 
-			"}\n" + 
-			"\n"
-	};
-	private static String[] METHODS_INVALID_COMMENT = {
-		"X.java",
-		REF_CLASS,
-		"X_dep.java",
-		DEP_CLASS,
-		"Y.java",
-		"public class Y {\n" + 
-			INVALID_METHOD_JAVADOC_REF + 
-			"	public void foo_pub(String str) throws IllegalArgumentException {}\n" +
-			INVALID_METHOD_JAVADOC_REF + 
-			"	protected void foo_pro(String str) throws IllegalArgumentException {}\n" + 
-			INVALID_METHOD_JAVADOC_REF + 
-			"	void foo_pack(String str) throws IllegalArgumentException {}\n" + 
-			INVALID_METHOD_JAVADOC_REF + 
-			"	private void foo_priv(String str) throws IllegalArgumentException {}\n" +
-			"}\n" + 
-			"\n"
-	};
-	private static String[] CONSTRUCTORS_INVALID_COMMENT = {
-		"X.java",
-		REF_CLASS,
-		"X_dep.java",
-		DEP_CLASS,
-		"Y.java",
-		"public class Y {\n" + 
-			INVALID_METHOD_JAVADOC_REF + 
-			"	public Y(int str) {}\n" +
-			INVALID_METHOD_JAVADOC_REF + 
-			"	protected Y(long str) {}\n" + 
-			INVALID_METHOD_JAVADOC_REF + 
-			"	Y(float str) {}\n" + 
-			INVALID_METHOD_JAVADOC_REF + 
-			"	private Y(double str) {}\n" +
-			"}\n" + 
-			"\n"
-	};
-	private static String[] MISSING_TAGS = {
-		"X.java",
-		"public class X {\n" + 
-			"	// public\n" + 
-			"	/** */\n" + 
-			"	public class PublicClass {}\n" + 
-			"	/** */\n" + 
-			"	public int publicField;\n" + 
-			"	/** */\n" + 
-			"	public X(int i) {}\n" + 
-			"	/** */\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	// protected\n" + 
-			"	/** */\n" + 
-			"	protected class ProtectedClass {}\n" + 
-			"	/** */\n" + 
-			"	protected int protectedField;\n" + 
-			"	/** */\n" + 
-			"	protected X(long l) {}\n" + 
-			"	/** */\n" + 
-			"	protected int protectedMethod(long l) { return 0; }\n" + 
-			"	// default\n" + 
-			"	/** */\n" + 
-			"	class PackageClass {}\n" + 
-			"	/** */\n" + 
-			"	int packageField;\n" + 
-			"	/** */\n" + 
-			"	X(float f) {}\n" + 
-			"	/** */\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	// private\n" + 
-			"	/** */\n" + 
-			"	private class PrivateClass {}\n" + 
-			"	/** */\n" + 
-			"	private int privateField;\n" + 
-			"	/** */\n" + 
-			"	private X(double d) {}\n" + 
-			"	/** */\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"}\n" + 
-		"\n",
-		"Y.java",
-		"/** */\n" + 
-			"public class Y extends X {\n" + 
-			"	public Y(int i) { super(i); }\n" + 
-			"	//methods\n" + 
-			"	/** */\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	/** */\n" + 
-			"	protected int protectedMethod(long l) { return 0;}\n" + 
-			"	/** */\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	/** */\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"}\n"
-	};
-	private static String[] MISSING_COMMENTS = {
-		"X.java",
-		"/** */\n" + 
-			"public class X {\n" + 
-			"	// public\n" + 
-			"	public class PublicClass {}\n" + 
-			"	public int publicField;\n" + 
-			"	public X(int i) {}\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	// protected\n" + 
-			"	protected class ProtectedClass {}\n" + 
-			"	protected int protectedField;\n" + 
-			"	protected X(long l) {}\n" + 
-			"	protected int protectedMethod(long l) { return 0; }\n" + 
-			"	// default\n" + 
-			"	class PackageClass {}\n" + 
-			"	int packageField;\n" + 
-			"	X(float f) {}\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	// private\n" + 
-			"	private class PrivateClass {}\n" + 
-			"	private int privateField;\n" + 
-			"	private X(double d) {}\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"}\n" + 
-			"\n",
-		"Y.java",
-		"/** */\n" + 
-			"public class Y extends X {\n" + 
-			"	/** */\n" + 
-			"	public Y(int i) { super(i); }\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	protected int protectedMethod(long l) { return 0;}\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"}\n"
-	};
-
-	private static String[] CLASSES_ERRORS = {
-		"1. ERROR in Y.java (at line 3)\n" + 
-			"	* @see X_dep\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: The type X_dep is deprecated\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 4)\n" + 
-			"	* @see X.X_priv\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: The type X.X_priv is not visible\n" + 
-			"----------\n" + 
-			"3. ERROR in Y.java (at line 5)\n" + 
-			"	* @see X.Unknown\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: X.Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in Y.java (at line 6)\n" + 
-			"	* @see X#X(int)\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The constructor X(int) is not visible\n" + 
-			"----------\n" + 
-			"5. ERROR in Y.java (at line 7)\n" + 
-			"	* @see X#X(String)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor X(String) is undefined\n" + 
-			"----------\n" + 
-			"6. ERROR in Y.java (at line 8)\n" + 
-			"	* @see X#X()\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: The constructor X() is deprecated\n" + 
-			"----------\n" + 
-			"7. ERROR in Y.java (at line 9)\n" + 
-			"	* @see X#x_dep\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: The field X.x_dep is deprecated\n" + 
-			"----------\n" + 
-			"8. ERROR in Y.java (at line 10)\n" + 
-			"	* @see X#x_priv\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The field x_priv is not visible\n" + 
-			"----------\n" + 
-			"9. ERROR in Y.java (at line 11)\n" + 
-			"	* @see X#unknown\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"10. ERROR in Y.java (at line 12)\n" + 
-			"	* @see X#foo_dep()\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() from the type X is deprecated\n" + 
-			"----------\n" + 
-			"11. ERROR in Y.java (at line 13)\n" + 
-			"	* @see X#foo_priv()\n" + 
-			"	         ^^^^^^^^\n" + 
-			"Javadoc: The method foo_priv() from the type X is not visible\n" + 
-			"----------\n" + 
-			"12. ERROR in Y.java (at line 14)\n" + 
-			"	* @see X#foo_dep(String)\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"13. ERROR in Y.java (at line 15)\n" + 
-			"	* @see X#unknown()\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type X\n" + 
-			"----------\n",
-		"14. ERROR in Y.java (at line 19)\n" + 
-			"	* @see X_dep\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: The type X_dep is deprecated\n" + 
-			"----------\n" + 
-			"15. ERROR in Y.java (at line 20)\n" + 
-			"	* @see X.X_priv\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: The type X.X_priv is not visible\n" + 
-			"----------\n" + 
-			"16. ERROR in Y.java (at line 21)\n" + 
-			"	* @see X.Unknown\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: X.Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"17. ERROR in Y.java (at line 22)\n" + 
-			"	* @see X#X(int)\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The constructor X(int) is not visible\n" + 
-			"----------\n" + 
-			"18. ERROR in Y.java (at line 23)\n" + 
-			"	* @see X#X(String)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor X(String) is undefined\n" + 
-			"----------\n" + 
-			"19. ERROR in Y.java (at line 24)\n" + 
-			"	* @see X#X()\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: The constructor X() is deprecated\n" + 
-			"----------\n" + 
-			"20. ERROR in Y.java (at line 25)\n" + 
-			"	* @see X#x_dep\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: The field X.x_dep is deprecated\n" + 
-			"----------\n" + 
-			"21. ERROR in Y.java (at line 26)\n" + 
-			"	* @see X#x_priv\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The field x_priv is not visible\n" + 
-			"----------\n" + 
-			"22. ERROR in Y.java (at line 27)\n" + 
-			"	* @see X#unknown\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"23. ERROR in Y.java (at line 28)\n" + 
-			"	* @see X#foo_dep()\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() from the type X is deprecated\n" + 
-			"----------\n" + 
-			"24. ERROR in Y.java (at line 29)\n" + 
-			"	* @see X#foo_priv()\n" + 
-			"	         ^^^^^^^^\n" + 
-			"Javadoc: The method foo_priv() from the type X is not visible\n" + 
-			"----------\n" + 
-			"25. ERROR in Y.java (at line 30)\n" + 
-			"	* @see X#foo_dep(String)\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"26. ERROR in Y.java (at line 31)\n" + 
-			"	* @see X#unknown()\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type X\n" + 
-			"----------\n",
-		"27. ERROR in Y.java (at line 35)\n" + 
-			"	* @see X_dep\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: The type X_dep is deprecated\n" + 
-			"----------\n" + 
-			"28. ERROR in Y.java (at line 36)\n" + 
-			"	* @see X.X_priv\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: The type X.X_priv is not visible\n" + 
-			"----------\n" + 
-			"29. ERROR in Y.java (at line 37)\n" + 
-			"	* @see X.Unknown\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: X.Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"30. ERROR in Y.java (at line 38)\n" + 
-			"	* @see X#X(int)\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The constructor X(int) is not visible\n" + 
-			"----------\n" + 
-			"31. ERROR in Y.java (at line 39)\n" + 
-			"	* @see X#X(String)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor X(String) is undefined\n" + 
-			"----------\n" + 
-			"32. ERROR in Y.java (at line 40)\n" + 
-			"	* @see X#X()\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: The constructor X() is deprecated\n" + 
-			"----------\n" + 
-			"33. ERROR in Y.java (at line 41)\n" + 
-			"	* @see X#x_dep\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: The field X.x_dep is deprecated\n" + 
-			"----------\n" + 
-			"34. ERROR in Y.java (at line 42)\n" + 
-			"	* @see X#x_priv\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The field x_priv is not visible\n" + 
-			"----------\n" + 
-			"35. ERROR in Y.java (at line 43)\n" + 
-			"	* @see X#unknown\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"36. ERROR in Y.java (at line 44)\n" + 
-			"	* @see X#foo_dep()\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() from the type X is deprecated\n" + 
-			"----------\n" + 
-			"37. ERROR in Y.java (at line 45)\n" + 
-			"	* @see X#foo_priv()\n" + 
-			"	         ^^^^^^^^\n" + 
-			"Javadoc: The method foo_priv() from the type X is not visible\n" + 
-			"----------\n" + 
-			"38. ERROR in Y.java (at line 46)\n" + 
-			"	* @see X#foo_dep(String)\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"39. ERROR in Y.java (at line 47)\n" + 
-			"	* @see X#unknown()\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type X\n" + 
-			"----------\n",
-		"40. ERROR in Y.java (at line 51)\n" + 
-			"	* @see X_dep\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: The type X_dep is deprecated\n" + 
-			"----------\n" + 
-			"41. ERROR in Y.java (at line 52)\n" + 
-			"	* @see X.X_priv\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: The type X.X_priv is not visible\n" + 
-			"----------\n" + 
-			"42. ERROR in Y.java (at line 53)\n" + 
-			"	* @see X.Unknown\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: X.Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"43. ERROR in Y.java (at line 54)\n" + 
-			"	* @see X#X(int)\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The constructor X(int) is not visible\n" + 
-			"----------\n" + 
-			"44. ERROR in Y.java (at line 55)\n" + 
-			"	* @see X#X(String)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor X(String) is undefined\n" + 
-			"----------\n" + 
-			"45. ERROR in Y.java (at line 56)\n" + 
-			"	* @see X#X()\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: The constructor X() is deprecated\n" + 
-			"----------\n" + 
-			"46. ERROR in Y.java (at line 57)\n" + 
-			"	* @see X#x_dep\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: The field X.x_dep is deprecated\n" + 
-			"----------\n" + 
-			"47. ERROR in Y.java (at line 58)\n" + 
-			"	* @see X#x_priv\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The field x_priv is not visible\n" + 
-			"----------\n" + 
-			"48. ERROR in Y.java (at line 59)\n" + 
-			"	* @see X#unknown\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"49. ERROR in Y.java (at line 60)\n" + 
-			"	* @see X#foo_dep()\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() from the type X is deprecated\n" + 
-			"----------\n" + 
-			"50. ERROR in Y.java (at line 61)\n" + 
-			"	* @see X#foo_priv()\n" + 
-			"	         ^^^^^^^^\n" + 
-			"Javadoc: The method foo_priv() from the type X is not visible\n" + 
-			"----------\n" + 
-			"51. ERROR in Y.java (at line 62)\n" + 
-			"	* @see X#foo_dep(String)\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"52. ERROR in Y.java (at line 63)\n" + 
-			"	* @see X#unknown()\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type X\n" + 
-			"----------\n"
-	};
-
-	private static String[] METHODS_ERRORS = {
-		"1. ERROR in Y.java (at line 4)\n" + 
-			"	* @param str\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Duplicate tag for parameter\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 5)\n" + 
-			"	* @param xxx\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Parameter xxx is not declared\n" + 
-			"----------\n" + 
-			"3. ERROR in Y.java (at line 8)\n" + 
-			"	* @throws java.io.IOException\n" + 
-			"	          ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Exception IOException is not declared\n" + 
-			"----------\n" + 
-			"4. ERROR in Y.java (at line 9)\n" + 
-			"	* @throws Unknown\n" + 
-			"	          ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Y.java (at line 10)\n" + 
-			"	* @see X_dep\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: The type X_dep is deprecated\n" + 
-			"----------\n" + 
-			"6. ERROR in Y.java (at line 11)\n" + 
-			"	* @see X.X_priv\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: The type X.X_priv is not visible\n" + 
-			"----------\n" + 
-			"7. ERROR in Y.java (at line 12)\n" + 
-			"	* @see X.Unknown\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: X.Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"8. ERROR in Y.java (at line 13)\n" + 
-			"	* @see X#X(int)\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The constructor X(int) is not visible\n" + 
-			"----------\n" + 
-			"9. ERROR in Y.java (at line 14)\n" + 
-			"	* @see X#X(String)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor X(String) is undefined\n" + 
-			"----------\n" + 
-			"10. ERROR in Y.java (at line 15)\n" + 
-			"	* @see X#X()\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: The constructor X() is deprecated\n" + 
-			"----------\n" + 
-			"11. ERROR in Y.java (at line 16)\n" + 
-			"	* @see X#x_dep\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: The field X.x_dep is deprecated\n" + 
-			"----------\n" + 
-			"12. ERROR in Y.java (at line 17)\n" + 
-			"	* @see X#x_priv\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The field x_priv is not visible\n" + 
-			"----------\n" + 
-			"13. ERROR in Y.java (at line 18)\n" + 
-			"	* @see X#unknown\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"14. ERROR in Y.java (at line 19)\n" + 
-			"	* @see X#foo_dep()\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() from the type X is deprecated\n" + 
-			"----------\n" + 
-			"15. ERROR in Y.java (at line 20)\n" + 
-			"	* @see X#foo_priv()\n" + 
-			"	         ^^^^^^^^\n" + 
-			"Javadoc: The method foo_priv() from the type X is not visible\n" + 
-			"----------\n" + 
-			"16. ERROR in Y.java (at line 21)\n" + 
-			"	* @see X#foo_dep(String)\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"17. ERROR in Y.java (at line 22)\n" + 
-			"	* @see X#unknown()\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type X\n" + 
-			"----------\n",
-		"18. ERROR in Y.java (at line 27)\n" + 
-			"	* @param str\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Duplicate tag for parameter\n" + 
-			"----------\n" + 
-			"19. ERROR in Y.java (at line 28)\n" + 
-			"	* @param xxx\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Parameter xxx is not declared\n" + 
-			"----------\n" + 
-			"20. ERROR in Y.java (at line 31)\n" + 
-			"	* @throws java.io.IOException\n" + 
-			"	          ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Exception IOException is not declared\n" + 
-			"----------\n" + 
-			"21. ERROR in Y.java (at line 32)\n" + 
-			"	* @throws Unknown\n" + 
-			"	          ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"22. ERROR in Y.java (at line 33)\n" + 
-			"	* @see X_dep\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: The type X_dep is deprecated\n" + 
-			"----------\n" + 
-			"23. ERROR in Y.java (at line 34)\n" + 
-			"	* @see X.X_priv\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: The type X.X_priv is not visible\n" + 
-			"----------\n" + 
-			"24. ERROR in Y.java (at line 35)\n" + 
-			"	* @see X.Unknown\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: X.Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"25. ERROR in Y.java (at line 36)\n" + 
-			"	* @see X#X(int)\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The constructor X(int) is not visible\n" + 
-			"----------\n" + 
-			"26. ERROR in Y.java (at line 37)\n" + 
-			"	* @see X#X(String)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor X(String) is undefined\n" + 
-			"----------\n" + 
-			"27. ERROR in Y.java (at line 38)\n" + 
-			"	* @see X#X()\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: The constructor X() is deprecated\n" + 
-			"----------\n" + 
-			"28. ERROR in Y.java (at line 39)\n" + 
-			"	* @see X#x_dep\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: The field X.x_dep is deprecated\n" + 
-			"----------\n" + 
-			"29. ERROR in Y.java (at line 40)\n" + 
-			"	* @see X#x_priv\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The field x_priv is not visible\n" + 
-			"----------\n" + 
-			"30. ERROR in Y.java (at line 41)\n" + 
-			"	* @see X#unknown\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"31. ERROR in Y.java (at line 42)\n" + 
-			"	* @see X#foo_dep()\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() from the type X is deprecated\n" + 
-			"----------\n" + 
-			"32. ERROR in Y.java (at line 43)\n" + 
-			"	* @see X#foo_priv()\n" + 
-			"	         ^^^^^^^^\n" + 
-			"Javadoc: The method foo_priv() from the type X is not visible\n" + 
-			"----------\n" + 
-			"33. ERROR in Y.java (at line 44)\n" + 
-			"	* @see X#foo_dep(String)\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"34. ERROR in Y.java (at line 45)\n" + 
-			"	* @see X#unknown()\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type X\n" + 
-			"----------\n",
-		"35. ERROR in Y.java (at line 50)\n" + 
-			"	* @param str\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Duplicate tag for parameter\n" + 
-			"----------\n" + 
-			"36. ERROR in Y.java (at line 51)\n" + 
-			"	* @param xxx\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Parameter xxx is not declared\n" + 
-			"----------\n" + 
-			"37. ERROR in Y.java (at line 54)\n" + 
-			"	* @throws java.io.IOException\n" + 
-			"	          ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Exception IOException is not declared\n" + 
-			"----------\n" + 
-			"38. ERROR in Y.java (at line 55)\n" + 
-			"	* @throws Unknown\n" + 
-			"	          ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"39. ERROR in Y.java (at line 56)\n" + 
-			"	* @see X_dep\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: The type X_dep is deprecated\n" + 
-			"----------\n" + 
-			"40. ERROR in Y.java (at line 57)\n" + 
-			"	* @see X.X_priv\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: The type X.X_priv is not visible\n" + 
-			"----------\n" + 
-			"41. ERROR in Y.java (at line 58)\n" + 
-			"	* @see X.Unknown\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: X.Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"42. ERROR in Y.java (at line 59)\n" + 
-			"	* @see X#X(int)\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The constructor X(int) is not visible\n" + 
-			"----------\n" + 
-			"43. ERROR in Y.java (at line 60)\n" + 
-			"	* @see X#X(String)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor X(String) is undefined\n" + 
-			"----------\n" + 
-			"44. ERROR in Y.java (at line 61)\n" + 
-			"	* @see X#X()\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: The constructor X() is deprecated\n" + 
-			"----------\n" + 
-			"45. ERROR in Y.java (at line 62)\n" + 
-			"	* @see X#x_dep\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: The field X.x_dep is deprecated\n" + 
-			"----------\n" + 
-			"46. ERROR in Y.java (at line 63)\n" + 
-			"	* @see X#x_priv\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The field x_priv is not visible\n" + 
-			"----------\n" + 
-			"47. ERROR in Y.java (at line 64)\n" + 
-			"	* @see X#unknown\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"48. ERROR in Y.java (at line 65)\n" + 
-			"	* @see X#foo_dep()\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() from the type X is deprecated\n" + 
-			"----------\n" + 
-			"49. ERROR in Y.java (at line 66)\n" + 
-			"	* @see X#foo_priv()\n" + 
-			"	         ^^^^^^^^\n" + 
-			"Javadoc: The method foo_priv() from the type X is not visible\n" + 
-			"----------\n" + 
-			"50. ERROR in Y.java (at line 67)\n" + 
-			"	* @see X#foo_dep(String)\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"51. ERROR in Y.java (at line 68)\n" + 
-			"	* @see X#unknown()\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type X\n" + 
-			"----------\n",
-		"52. ERROR in Y.java (at line 73)\n" + 
-			"	* @param str\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Duplicate tag for parameter\n" + 
-			"----------\n" + 
-			"53. ERROR in Y.java (at line 74)\n" + 
-			"	* @param xxx\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Parameter xxx is not declared\n" + 
-			"----------\n" + 
-			"54. ERROR in Y.java (at line 77)\n" + 
-			"	* @throws java.io.IOException\n" + 
-			"	          ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Exception IOException is not declared\n" + 
-			"----------\n" + 
-			"55. ERROR in Y.java (at line 78)\n" + 
-			"	* @throws Unknown\n" + 
-			"	          ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"56. ERROR in Y.java (at line 79)\n" + 
-			"	* @see X_dep\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: The type X_dep is deprecated\n" + 
-			"----------\n" + 
-			"57. ERROR in Y.java (at line 80)\n" + 
-			"	* @see X.X_priv\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: The type X.X_priv is not visible\n" + 
-			"----------\n" + 
-			"58. ERROR in Y.java (at line 81)\n" + 
-			"	* @see X.Unknown\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: X.Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"59. ERROR in Y.java (at line 82)\n" + 
-			"	* @see X#X(int)\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The constructor X(int) is not visible\n" + 
-			"----------\n" + 
-			"60. ERROR in Y.java (at line 83)\n" + 
-			"	* @see X#X(String)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor X(String) is undefined\n" + 
-			"----------\n" + 
-			"61. ERROR in Y.java (at line 84)\n" + 
-			"	* @see X#X()\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: The constructor X() is deprecated\n" + 
-			"----------\n" + 
-			"62. ERROR in Y.java (at line 85)\n" + 
-			"	* @see X#x_dep\n" + 
-			"	         ^^^^^\n" + 
-			"Javadoc: The field X.x_dep is deprecated\n" + 
-			"----------\n" + 
-			"63. ERROR in Y.java (at line 86)\n" + 
-			"	* @see X#x_priv\n" + 
-			"	         ^^^^^^\n" + 
-			"Javadoc: The field x_priv is not visible\n" + 
-			"----------\n" + 
-			"64. ERROR in Y.java (at line 87)\n" + 
-			"	* @see X#unknown\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"65. ERROR in Y.java (at line 88)\n" + 
-			"	* @see X#foo_dep()\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() from the type X is deprecated\n" + 
-			"----------\n" + 
-			"66. ERROR in Y.java (at line 89)\n" + 
-			"	* @see X#foo_priv()\n" + 
-			"	         ^^^^^^^^\n" + 
-			"Javadoc: The method foo_priv() from the type X is not visible\n" + 
-			"----------\n" + 
-			"67. ERROR in Y.java (at line 90)\n" + 
-			"	* @see X#foo_dep(String)\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"68. ERROR in Y.java (at line 91)\n" + 
-			"	* @see X#unknown()\n" + 
-			"	         ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type X\n" + 
-			"----------\n"
-	};
-
-	private String resultForInvalidTagsClassOrField(int visibility) {
-		if (reportInvalidJavadocTagsDeprecatedRef == null && reportInvalidJavadocTagsNotVisibleRef == null) {
-			String result = "----------\n";
-			for (int i=0; i<=visibility; i++) {
-				result += CLASSES_ERRORS[i];
-			}
-			return result;
-		}
-		StringBuffer result = new StringBuffer("----------\n");
-		for (int i=0, count=1; i<= visibility; i++) {
-			StringTokenizer tokenizer = new StringTokenizer(CLASSES_ERRORS[i], "\n");
-			while (tokenizer.hasMoreTokens()) {
-				StringBuffer error = new StringBuffer();
-				boolean add = true;
-				for (int j=0; j<5; j++) {
-					String line = tokenizer.nextToken();
-					switch (j) {
-						case 0:
-							error.append(count);
-							error.append(line.substring(line.indexOf('.')));
-							break;
-						case 3:
-							if (CompilerOptions.DISABLED.equals(reportInvalidJavadocTagsDeprecatedRef)) {
-								add = line.indexOf("is deprecated") == -1;
-							}
-							if (add && CompilerOptions.DISABLED.equals(reportInvalidJavadocTagsNotVisibleRef)) {
-								add = line.indexOf("is not visible") == -1 && line.indexOf("visibility for malformed doc comments") == -1;
-							}
-						default:
-							error.append(line);
-					}
-					error.append('\n');
-				}
-				if (add) {
-					count++;
-					result.append(error);
-				}
-			}
-		}
-		return result.toString();
-	}
-
-	private String resultForInvalidTagsMethodOrConstructor(int visibility) {
-		if (reportInvalidJavadocTagsDeprecatedRef == null && reportInvalidJavadocTagsNotVisibleRef == null) {
-			String result = "----------\n";
-			for (int i=0; i<=visibility; i++) {
-				result += METHODS_ERRORS[i];
-			}
-			return result;
-		}
-		StringBuffer result = new StringBuffer("----------\n");
-		for (int i=0, count=1; i<= visibility; i++) {
-			StringTokenizer tokenizer = new StringTokenizer(METHODS_ERRORS[i], "\n");
-			while (tokenizer.hasMoreTokens()) {
-				StringBuffer error = new StringBuffer();
-				boolean add = true;
-				for (int j=0; j<5; j++) {
-					String line = tokenizer.nextToken();
-					switch (j) {
-						case 0:
-							error.append(count);
-							error.append(line.substring(line.indexOf('.')));
-							break;
-						case 3:
-							if (CompilerOptions.DISABLED.equals(reportInvalidJavadocTagsDeprecatedRef)) {
-								add = line.indexOf("is deprecated") == -1;
-							}
-							if (add && CompilerOptions.DISABLED.equals(reportInvalidJavadocTagsNotVisibleRef)) {
-								add = line.indexOf("is not visible") == -1 && line.indexOf("visibility for malformed doc comments") == -1;
-							}
-						default:
-							error.append(line);
-					}
-					error.append('\n');
-				}
-				if (add) {
-					count++;
-					result.append(error);
-				}
-			}
-		}
-		return result.toString();
-	}
-	
-	private static String[] X_ResultForMissingTags = {
-		"1. ERROR in X.java (at line 8)\n" + 
-			"	public X(int i) {}\n" + 
-			"	             ^\n" + 
-			"Javadoc: Missing tag for parameter i\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 10)\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	       ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 10)\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	                             ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n",
-		"4. ERROR in X.java (at line 17)\n" + 
-			"	protected X(long l) {}\n" + 
-			"	                 ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 19)\n" + 
-			"	protected int protectedMethod(long l) { return 0; }\n" + 
-			"	          ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 19)\n" + 
-			"	protected int protectedMethod(long l) { return 0; }\n" + 
-			"	                                   ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n",
-		"7. ERROR in X.java (at line 26)\n" + 
-			"	X(float f) {}\n" + 
-			"	        ^\n" + 
-			"Javadoc: Missing tag for parameter f\n" + 
-			"----------\n" + 
-			"8. ERROR in X.java (at line 28)\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"9. ERROR in X.java (at line 28)\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	                       ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n",
-		"10. ERROR in X.java (at line 35)\n" + 
-			"	private X(double d) {}\n" + 
-			"	                 ^\n" + 
-			"Javadoc: Missing tag for parameter d\n" + 
-			"----------\n" + 
-			"11. ERROR in X.java (at line 37)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	        ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"12. ERROR in X.java (at line 37)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	                               ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n"
-	};
-	private static String[] Y_ResultForMissingTags = {
-		"1. ERROR in Y.java (at line 6)\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	       ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 6)\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	                             ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n",
-		"3. ERROR in Y.java (at line 8)\n" + 
-			"	protected int protectedMethod(long l) { return 0;}\n" + 
-			"	          ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"4. ERROR in Y.java (at line 8)\n" + 
-			"	protected int protectedMethod(long l) { return 0;}\n" + 
-			"	                                   ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n",
-		"5. ERROR in Y.java (at line 10)\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"6. ERROR in Y.java (at line 10)\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	                       ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n",
-		"7. ERROR in Y.java (at line 12)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	        ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"8. ERROR in Y.java (at line 12)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	                               ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n",
-		"----------\n" + 
-			"1. ERROR in Y.java (at line 12)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	        ^^^\n" + 
-			"Javadoc: Missing tag for return type\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 12)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	                               ^\n" + 
-			"Javadoc: Missing tag for parameter l\n" + 
-			"----------\n"
-	};
-
-	private String resultForMissingTags(int visibility) {
-		StringBuffer result = new StringBuffer("----------\n");
-		for (int i=0; i<=visibility; i++) {
-			result.append(X_ResultForMissingTags[i]);
-		}
-		if (CompilerOptions.ENABLED.equals(reportMissingJavadocTagsOverriding)) {
-			result.append("----------\n");
-			result.append(Y_ResultForMissingTags[PUBLIC_VISIBILITY]);
-			if (visibility >= PROTECTED_VISIBILITY) {
-				result.append(Y_ResultForMissingTags[PROTECTED_VISIBILITY]);
-				if (visibility >= DEFAULT_VISIBILITY) {
-					result.append(Y_ResultForMissingTags[DEFAULT_VISIBILITY]);
-					if (visibility == PRIVATE_VISIBILITY) {
-						result.append(Y_ResultForMissingTags[PRIVATE_VISIBILITY]);
-					}
-				}
-			}
-		}
-		// Private level is always reported for as it never overrides...
-		else if (visibility == PRIVATE_VISIBILITY) {
-			result.append(Y_ResultForMissingTags[PRIVATE_VISIBILITY+1]);
-		}
-		return result.toString();
-	}
-	
-	private static String[] X_ResultForMissingComments = {
-		"1. ERROR in X.java (at line 4)\n" + 
-			"	public class PublicClass {}\n" + 
-			"	             ^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for public declaration\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	public int publicField;\n" + 
-			"	           ^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for public declaration\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 6)\n" + 
-			"	public X(int i) {}\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Javadoc: Missing comment for public declaration\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	           ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for public declaration\n" + 
-			"----------\n",
-		"5. ERROR in X.java (at line 9)\n" + 
-			"	protected class ProtectedClass {}\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for protected declaration\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 10)\n" + 
-			"	protected int protectedField;\n" + 
-			"	              ^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for protected declaration\n" + 
-			"----------\n" + 
-			"7. ERROR in X.java (at line 11)\n" + 
-			"	protected X(long l) {}\n" + 
-			"	          ^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for protected declaration\n" + 
-			"----------\n" + 
-			"8. ERROR in X.java (at line 12)\n" + 
-			"	protected int protectedMethod(long l) { return 0; }\n" + 
-			"	              ^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for protected declaration\n" + 
-			"----------\n",
-		"9. ERROR in X.java (at line 14)\n" + 
-			"	class PackageClass {}\n" + 
-			"	      ^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for default declaration\n" + 
-			"----------\n" + 
-			"10. ERROR in X.java (at line 15)\n" + 
-			"	int packageField;\n" + 
-			"	    ^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for default declaration\n" + 
-			"----------\n" + 
-			"11. ERROR in X.java (at line 16)\n" + 
-			"	X(float f) {}\n" + 
-			"	^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for default declaration\n" + 
-			"----------\n" + 
-			"12. ERROR in X.java (at line 17)\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	    ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for default declaration\n" + 
-			"----------\n",
-		"13. ERROR in X.java (at line 19)\n" + 
-			"	private class PrivateClass {}\n" + 
-			"	              ^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for private declaration\n" + 
-			"----------\n" + 
-			"14. ERROR in X.java (at line 20)\n" + 
-			"	private int privateField;\n" + 
-			"	            ^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for private declaration\n" + 
-			"----------\n" + 
-			"15. ERROR in X.java (at line 21)\n" + 
-			"	private X(double d) {}\n" + 
-			"	        ^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for private declaration\n" + 
-			"----------\n" + 
-			"16. ERROR in X.java (at line 22)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	            ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for private declaration\n" + 
-			"----------\n"
-	};
-	private static String[] Y_ResultForMissingComments = {
-		"1. ERROR in Y.java (at line 5)\n" + 
-			"	public int publicMethod(long l) { return 0;}\n" + 
-			"	           ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for public declaration\n" + 
-			"----------\n",
-		"2. ERROR in Y.java (at line 6)\n" + 
-			"	protected int protectedMethod(long l) { return 0;}\n" + 
-			"	              ^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for protected declaration\n" + 
-			"----------\n",
-		"3. ERROR in Y.java (at line 7)\n" + 
-			"	int packageMethod(long l) { return 0;}\n" + 
-			"	    ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for default declaration\n" + 
-			"----------\n",
-		"4. ERROR in Y.java (at line 8)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	            ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for private declaration\n" + 
-			"----------\n",
-		"----------\n" + 
-			"1. ERROR in Y.java (at line 8)\n" + 
-			"	private int privateMethod(long l) { return 0;}\n" + 
-			"	            ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Missing comment for private declaration\n" + 
-			"----------\n"			
-	};
-
-	private String resultForMissingComments(int visibility) {
-		StringBuffer result = new StringBuffer("----------\n");
-		for (int i=0; i<=visibility; i++) {
-			result.append(X_ResultForMissingComments[i]);
-		}
-		if (CompilerOptions.ENABLED.equals(reportMissingJavadocCommentsOverriding)) {
-			result.append("----------\n");
-			result.append(Y_ResultForMissingComments[PUBLIC_VISIBILITY]);
-			if (visibility >= PROTECTED_VISIBILITY) {
-				result.append(Y_ResultForMissingComments[PROTECTED_VISIBILITY]);
-				if (visibility >= DEFAULT_VISIBILITY) {
-					result.append(Y_ResultForMissingComments[DEFAULT_VISIBILITY]);
-					if (visibility == PRIVATE_VISIBILITY) {
-						result.append(Y_ResultForMissingComments[PRIVATE_VISIBILITY]);
-					}
-				}
-			}
-		}
-		// Private level is always reported for as it never overrides...
-		else if (visibility == PRIVATE_VISIBILITY) {
-			result.append(Y_ResultForMissingComments[PRIVATE_VISIBILITY+1]);
-		}
-		return result.toString();
-	}
-
-	public JavadocTestOptions(String name) {
-		super(name);
-	}
-	public static Class javadocTestClass() {
-		return JavadocTestOptions.class;
-	}
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(javadocTestClass());
-	}
-	static { // Use this static to initialize testNames (String[]) , testRange (int[2]), testNumbers (int[])
-	}
-	/**
-	 * @return Returns the docCommentSupport.
-	 *
-	public String getNamePrefix() {
-		if (this.localDocCommentSupport == null) {
-			return super.getNamePrefix();
-		} else {
-			return this.localDocCommentSupport;
-		}
-	}
-	*/
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		// Set javadoc options if non null
-		if (this.docCommentSupport != null) 
-			options.put(CompilerOptions.OPTION_DocCommentSupport, this.docCommentSupport);
-		if (reportInvalidJavadoc != null)
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, reportInvalidJavadoc);
-		if (reportInvalidJavadocTagsVisibility != null)
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, reportInvalidJavadocTagsVisibility);
-		if (reportInvalidJavadocTags != null)
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, reportInvalidJavadocTags);
-		if (reportInvalidJavadocTagsDeprecatedRef != null)
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef, reportInvalidJavadocTagsDeprecatedRef);
-		if (reportInvalidJavadocTagsNotVisibleRef!= null)
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsNotVisibleRef, reportInvalidJavadocTagsNotVisibleRef);
-		if (reportMissingJavadocTags != null)
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportMissingJavadocTags);
-		if (reportMissingJavadocTagsVisibility != null)
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, reportMissingJavadocTagsVisibility);
-		if (reportMissingJavadocTagsOverriding != null)
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsOverriding, reportMissingJavadocTagsOverriding);
-		if (reportMissingJavadocComments != null)
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments);
-		if (reportMissingJavadocCommentsVisibility != null)
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsVisibility, reportMissingJavadocCommentsVisibility);
-		if (reportMissingJavadocCommentsOverriding != null)
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsOverriding, reportMissingJavadocCommentsOverriding);
-		
-		// Ignore other options to avoid polluting warnings
-		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
-//		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_ReportUnusedLocal, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_ReportUnusedPrivateMember, CompilerOptions.IGNORE);
-		return options;
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		reportInvalidJavadoc = null;
-		reportInvalidJavadocTagsVisibility = null;
-		reportInvalidJavadocTags = null;
-		reportInvalidJavadocTagsDeprecatedRef = null;
-		reportInvalidJavadocTagsNotVisibleRef = null;
-		reportMissingJavadocTags = null;
-		reportMissingJavadocTagsVisibility = null;
-		reportMissingJavadocTagsOverriding = null;
-		reportMissingJavadocComments = null;
-		reportMissingJavadocCommentsVisibility = null;
-		reportMissingJavadocCommentsOverriding = null;
-	}
-
-	/*
-	 * Tests for 'invalid javadoc' options when no doc support is set
-	 */
-	public void testInvalidTagsClassNoSupport() {
-		docCommentSupport = CompilerOptions.DISABLED;
-		runConformTest(CLASSES_INVALID_COMMENT);
-	}
-	public void testInvalidTagsFieldNoSupport() {
-		docCommentSupport = CompilerOptions.DISABLED;
-		runConformTest(FIELDS_INVALID_COMMENT);
-	}
-	public void testInvalidTagsMethodNoSupport() {
-		docCommentSupport = CompilerOptions.DISABLED;
-		runConformTest(METHODS_INVALID_COMMENT);
-	}
-	public void testInvalidTagsConstructorNoSupport() {
-		docCommentSupport = CompilerOptions.DISABLED;
-		runConformTest(CONSTRUCTORS_INVALID_COMMENT);
-	}
-
-	/*
-	 * Tests for 'invalid javadoc' options
-	 */
-	// Test default invalid javadoc (means "ignore" with tags"disabled" and visibility "public")
-	public void testInvalidTagsClassDefaults() {
-		runConformTest(CLASSES_INVALID_COMMENT);
-	}
-	public void testInvalidTagsFieldDefaults() {
-		runConformTest(FIELDS_INVALID_COMMENT);
-	}
-	public void testInvalidTagsMethodDefaults() {
-		runConformTest(METHODS_INVALID_COMMENT);
-	}
-	public void testInvalidTagsConstructorDefaults() {
-		runConformTest(CONSTRUCTORS_INVALID_COMMENT);
-	}
-
-	// Test invalid javadoc "error" + tags "disabled" and visibility "public"
-	public void testInvalidTagsClassErrorNotags() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.DISABLED;
-		runConformTest(CLASSES_INVALID_COMMENT);
-	}
-	public void testInvalidTagsFieldErrorNotags() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.DISABLED;
-		runConformTest(FIELDS_INVALID_COMMENT);
-	}
-	public void testInvalidTagsMethodErrorNotags() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.DISABLED;
-		runConformTest(METHODS_INVALID_COMMENT);
-	}
-	public void testInvalidTagsConstructorErrorNotags() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.DISABLED;
-		runConformTest(CONSTRUCTORS_INVALID_COMMENT);
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" and visibility "public"
-	public void testInvalidTagsClassErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsFieldErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsMethodErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsConstructorErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" and visibility "protected"
-	public void testInvalidTagsClassErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsFieldErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsMethodErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsConstructorErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" and visibility "default"
-	public void testInvalidTagsClassErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsFieldErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsMethodErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsConstructorErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" and visibility "private"
-	public void testInvalidTagsClassErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsFieldErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsMethodErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsConstructorErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "public"
-	public void testInvalidTagsDeprecatedRefClassErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefFieldErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefMethodErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefConstructorErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" visibility "protected"
-	public void testInvalidTagsDeprecatedRefClassErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefFieldErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefMethodErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefConstructorErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "default"
-	public void testInvalidTagsDeprecatedRefClassErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefFieldErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefMethodErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefConstructorErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "private"
-	public void testInvalidTagsDeprecatedRefClassErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefFieldErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefMethodErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedRefConstructorErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "public"
-	public void testInvalidTagsNotVisibleRefClassErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefFieldErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefMethodErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefConstructorErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" visibility "protected"
-	public void testInvalidTagsNotVisibleRefClassErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefFieldErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefMethodErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefConstructorErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "default"
-	public void testInvalidTagsNotVisibleRefClassErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefFieldErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefMethodErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefConstructorErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "private"
-	public void testInvalidTagsNotVisibleRefClassErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefFieldErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefMethodErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsNotVisibleRefConstructorErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "public"
-	public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPublic() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PUBLIC_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" visibility "protected"
-	public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsProtected() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PROTECTED_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "default"
-	public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPackage() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(DEFAULT_VISIBILITY));
-	}
-
-	// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "private"
-	public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
-	}
-	public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPrivate() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
-		reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
-		runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(PRIVATE_VISIBILITY));
-	}
-
-	/*
-	 * Tests for 'missing javadoc tags' options
-	 */
-	// Test default missing javadoc tags (means "ignore" with visibility "public" and overriding="enabled")
-	public void testMissingTagsDefaults() {
-		runConformTest(MISSING_TAGS);
-	}
-
-	// Test missing javadoc tags "error" + "public" visibility + "enabled" overriding
-	public void testMissingTagsErrorPublicOverriding() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
-		runNegativeTest(MISSING_TAGS, resultForMissingTags(PUBLIC_VISIBILITY));
-	}
-
-	// Test missing javadoc tags "error" + "public" visibility + "disabled" overriding
-	public void testMissingTagsErrorPublic() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PUBLIC;
-		reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
-		runNegativeTest(MISSING_TAGS, resultForMissingTags(PUBLIC_VISIBILITY));
-	}
-
-	// Test missing javadoc tags "error" + "protected" visibility + "enabled" overriding
-	public void testMissingTagsErrorProtectedOverriding() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
-		runNegativeTest(MISSING_TAGS, resultForMissingTags(PROTECTED_VISIBILITY));
-	}
-
-	// Test missing javadoc tags "error" + "protected" visibility + "disabled" overriding
-	public void testMissingTagsErrorProtected() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PROTECTED;
-		reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
-		runNegativeTest(MISSING_TAGS, resultForMissingTags(PROTECTED_VISIBILITY));
-	}
-
-	// Test missing javadoc tags "error" + "default" visibility + "enabled" overriding
-	public void testMissingTagsErrorPackageOverriding() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
-		runNegativeTest(MISSING_TAGS, resultForMissingTags(DEFAULT_VISIBILITY));
-	}
-
-	// Test missing javadoc tags "error" + "default" visibility + "disabled" overriding
-	public void testMissingTagsErrorPackage() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.DEFAULT;
-		reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
-		runNegativeTest(MISSING_TAGS, resultForMissingTags(DEFAULT_VISIBILITY));
-	}
-
-	// Test missing javadoc tags "error" + "private" visibility + "enabled" overriding
-	public void testMissingTagsErrorPrivateOverriding() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
-		reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
-		runNegativeTest(MISSING_TAGS, resultForMissingTags(PRIVATE_VISIBILITY));
-	}
-
-	// Test missing javadoc tags "error" + "private" visibility + "disabled" overriding
-	public void testMissingTagsErrorPrivate() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
-		reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
-		runNegativeTest(MISSING_TAGS, resultForMissingTags(PRIVATE_VISIBILITY));
-	}
-
-	/*
-	 * Tests for 'missing javadoc comments' options
-	 */
-	// Test default missing javadoc comments (means "ignore" with visibility "public" and overriding="enabled")
-	public void testMissingCommentsDefaults() {
-		runConformTest(MISSING_COMMENTS);
-	}
-
-	// Test missing javadoc comments "error" + "public" visibility + "enabled" overriding
-	public void testMissingCommentsErrorPublicOverriding() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC;
-		reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
-		runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PUBLIC_VISIBILITY));
-	}
-
-	// Test missing javadoc comments "error" + "public" visibility + "disabled" overriding
-	public void testMissingCommentsErrorPublic() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC;
-		reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
-		runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PUBLIC_VISIBILITY));
-	}
-
-	// Test missing javadoc comments "error" + "protected" visibility + "enabled" overriding
-	public void testMissingCommentsErrorProtectedOverriding() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		reportMissingJavadocCommentsVisibility = CompilerOptions.PROTECTED;
-		reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
-		runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PROTECTED_VISIBILITY));
-	}
-
-	// Test missing javadoc comments "error" + "protected" visibility + "disabled" overriding
-	public void testMissingCommentsErrorProtected() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		reportMissingJavadocCommentsVisibility = CompilerOptions.PROTECTED;
-		reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
-		runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PROTECTED_VISIBILITY));
-	}
-
-	// Test missing javadoc comments "error" + "default" visibility + "enabled" overriding
-	public void testMissingCommentsErrorPackageOverriding() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
-		reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
-		runNegativeTest(MISSING_COMMENTS, resultForMissingComments(DEFAULT_VISIBILITY));
-	}
-
-	// Test missing javadoc comments "error" + "default" visibility + "disabled" overriding
-	public void testMissingCommentsErrorPackage() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
-		reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
-		runNegativeTest(MISSING_COMMENTS, resultForMissingComments(DEFAULT_VISIBILITY));
-	}
-
-	// Test missing javadoc comments "error" + "private" visibility + "enabled" overriding
-	public void testMissingCommentsErrorPrivateOverriding() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
-		reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
-		runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PRIVATE_VISIBILITY));
-	}
-
-	// Test missing javadoc comments "error" + "private" visibility + "disabled" overriding
-	public void testMissingCommentsErrorPrivate() {
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
-		reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
-		runNegativeTest(MISSING_COMMENTS, resultForMissingComments(PRIVATE_VISIBILITY));
-	}
-	
-	/*
-	 * Crossed tests
-	 */
-	public void testInvalidTagsClassWithMissingTagsOption() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
-		runConformTest(CLASSES_INVALID_COMMENT);
-	}
-	public void testInvalidTagsFieldWithMissingTagsOption() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
-		runConformTest(FIELDS_INVALID_COMMENT);
-	}
-	public void testInvalidTagsMethodWithMissingTagsOption() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
-		runConformTest(METHODS_INVALID_COMMENT);
-	}
-	public void testInvalidTagsConstructorWithMissingTagsOption() {
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
-		runConformTest(CONSTRUCTORS_INVALID_COMMENT);
-	}
-	public void testMissingTagsWithInvalidTagsOption() {
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ENABLED;
-		reportInvalidJavadocTagsVisibility = CompilerOptions.PRIVATE;
-		runConformTest(MISSING_TAGS);
-	}
-
-	/**
-	 * Test fix for bug 52264.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52264">52264</a>
-	 */
-	// Test invalid javadoc "error" with javadoc comment support disabled
-	public void testInvalidTagsJavadocSupportDisabled() {
-		this.docCommentSupport = CompilerOptions.DISABLED;
-		reportInvalidJavadoc = CompilerOptions.ERROR;
-		reportInvalidJavadocTags = CompilerOptions.ERROR;
-		runConformTest(CLASSES_INVALID_COMMENT);
-		runConformTest(FIELDS_INVALID_COMMENT);
-		runConformTest(METHODS_INVALID_COMMENT);
-		runConformTest(CONSTRUCTORS_INVALID_COMMENT);
-	}
-
-	// Test missing javadoc comments "error" with javadoc comment support disabled
-	public void testMissingCommentsJavadocSupportDisabled() {
-		this.docCommentSupport = CompilerOptions.DISABLED;
-		reportMissingJavadocComments = CompilerOptions.ERROR;
-		runConformReferenceTest(MISSING_COMMENTS);
-	}
-
-	// Test missing javadoc tags "error" with javadoc comment support disabled
-	public void testMissingTagsJavadocSupportDisabled() {
-		this.docCommentSupport = CompilerOptions.DISABLED;
-		reportMissingJavadocTags = CompilerOptions.ERROR;
-		runConformReferenceTest(MISSING_TAGS);
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_3.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_3.java
deleted file mode 100644
index 752ca73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_3.java
+++ /dev/null
@@ -1,3914 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTest_1_3 extends JavadocTest {
-
-	String docCommentSupport = CompilerOptions.ENABLED;
-	String reportInvalidJavadoc = CompilerOptions.ERROR;
-	String reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-	String reportMissingJavadocTags = CompilerOptions.ERROR;
-	String reportMissingJavadocComments = null;
-	String reportMissingJavadocCommentsVisibility = null;
-
-	public JavadocTest_1_3(String name) {
-		super(name);
-	}
-
-	public static Class testClass() {
-		return JavadocTest_1_3.class;
-	}
-
-	// Use this static initializer to specify subset for tests
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_NAMES = new String[] {
-//			"testBug70892conform1", "testBug70892conform2"
-//		};
-//		TESTS_NUMBERS = new int[] { 101283 };
-//		TESTS_RANGE = new int[] { 21, 50 };
-	}
-	public static Test suite() {
-		return buildMinimalComplianceTestSuite(testClass(), F_1_3);
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_DocCommentSupport, this.docCommentSupport);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, reportInvalidJavadoc);
-		if (!CompilerOptions.IGNORE.equals(reportInvalidJavadoc)) {
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, this.reportInvalidJavadocVisibility);
-		}
-		if (reportMissingJavadocComments != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments);
-		else
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportInvalidJavadoc);
-		if (reportMissingJavadocCommentsVisibility != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsVisibility, reportMissingJavadocCommentsVisibility);
-		if (reportMissingJavadocTags != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportMissingJavadocTags);
-		else
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
-		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
-//		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
-		return options;
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.docCommentSupport = CompilerOptions.ENABLED;
-		this.reportInvalidJavadoc = CompilerOptions.ERROR;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		this.reportMissingJavadocTags = CompilerOptions.ERROR;
-		this.reportMissingJavadocComments = CompilerOptions.IGNORE;
-	}
-
-
-	/**
-	 * Test fix for bug 70891: [1.5][javadoc] Compiler should accept new 1.5 syntax for @param
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70891">70891</a>
-	 * These two tests fail for 1.5 source level but should pass for 1.3 or 1.4
-	 * @see JavadocTest_1_3
-	 */
-	/* (non-Javadoc)
-	 * Test @param for generic class type parameter
-	 */
-	public void test003() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <E> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* @param <E> Type\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\r\n" + 
-				"	public class X<E> {}\r\n" + 
-				"	               ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test004() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <E> Type extends RuntimeException\n" + 
-					"  */\n" + 
-					" public class X<E extends RuntimeException> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* @param <E> Type extends RuntimeException\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\r\n" + 
-				"	public class X<E extends RuntimeException> {}\r\n" + 
-				"	               ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-
-		);
-	}
-	public void test005() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* @param <T> Type parameter 1\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <U> Type parameter 2\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\r\n" + 
-				"	* @param <V> Type parameter 3\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\r\n" + 
-				"	public class X<T, U, V> {}\r\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E> Type parameter\n" + 
-					"  */\n" + 
-					" public class X {}",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n"
-		);
-	}
-	public void test007() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E> Type parameter\n" + 
-					"  */\n" + 
-					" public class X<E, F> {}",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<E, F> {}\n" + 
-				"	               ^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test008() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T> {}\n" + 
-				"	               ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test009() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <X> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test010() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* @param <V> Type parameter 3\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <U> Type parameter 2\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\r\n" + 
-				"	* @param <T> Type parameter 1\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\r\n" + 
-				"	public class X<T, U, V> {}\r\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test011() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test012() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test013() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test014() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <U> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test015() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <U> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test016() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test017() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <U> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test018() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test019() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <X> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test020() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Missing parameter name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test021() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference: compile error\n" + 
-					"  * @param <T> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, , V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, , V> {}\n" + 
-				"	              ^^\n" + 
-				"Syntax error on tokens, delete these tokens\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, , V> {}\n" + 
-				"	               ^\n" + 
-				"Syntax error, insert \"ClassBody\" to complete JavaScriptUnit\n" + 
-				"----------\n"
-		);
-	}
-	public void test022() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference: compile error\n" + 
-					"  * @param <T> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V extend Exception> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V extend Exception> {}\n" + 
-				"	              ^^^^^^\n" + 
-				"Syntax error on tokens, delete these tokens\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V extend Exception> {}\n" + 
-				"	                   ^\n" + 
-				"Syntax error, insert \"ClassBody\" to complete JavaScriptUnit\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V extend Exception> {}\n" + 
-				"	                       ^^^^^^\n" + 
-				"extend cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	/* (non-Javadoc)
-	 * Test @param for generic method type parameter
-	 */
-	public void test023() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <E> Type\n" + 
-					"	 */\n" + 
-					"	public <E> void foo() {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <E> Type\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\r\n" + 
-				"	public <E> void foo() {}\r\n" + 
-				"	        ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test024() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <E> Type extends RuntimeException\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <E extends RuntimeException> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <E> Type extends RuntimeException\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\r\n" + 
-				"	public <E extends RuntimeException> void foo(int val, Object obj) {}\r\n" + 
-				"	        ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test025() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 6)\r\n" + 
-				"	* @param <T> Type parameter 1\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\r\n" + 
-				"	* @param <U> Type parameter 2\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 8)\r\n" + 
-				"	* @param <V> Type parameter 3\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\r\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\r\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test026() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <E> Type parameter\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n"
-		);
-	}
-	public void test027() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <E> Type parameter\n" + 
-					"	 */\n" + 
-					"	public <E, F> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	                           ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	                                       ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test028() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 * @param xxx int\n" + 
-					"	 * @param Obj Object\n" + 
-					"	 */\n" + 
-					"	public <T> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	* @param xxx int\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Parameter xxx is not declared\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 8)\n" + 
-				"	* @param Obj Object\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Parameter Obj is not declared\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 10)\n" + 
-				"	public <T> void foo(int val, Object obj) {}\n" + 
-				"	        ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"7. ERROR in X.java (at line 10)\n" + 
-				"	public <T> void foo(int val, Object obj) {}\n" + 
-				"	                        ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"8. ERROR in X.java (at line 10)\n" + 
-				"	public <T> void foo(int val, Object obj) {}\n" + 
-				"	                                    ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test029() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <X> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <E> Type parameter 2\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 10)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 12)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test030() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <V> Type parameter 3\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\r\n" + 
-				"	* @param <U> Type parameter 2\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 8)\r\n" + 
-				"	* @param <T> Type parameter 1\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\r\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\r\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test031() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test032() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 3\n" + 
-					"	 * @param val int\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test033() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <U> Type parameter 3\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n"
-		);
-	}
-	public void test034() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <X> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param Object obj\n" + 
-					"	 * @param <E> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @param Object obj\n" + 
-				"	         ^^^^^^\n" + 
-				"Javadoc: Parameter Object is not declared\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 9)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 10)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"7. ERROR in X.java (at line 11)\n" + 
-				"	* @param val int\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Duplicate tag for parameter\n" + 
-				"----------\n" + 
-				"8. ERROR in X.java (at line 13)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"9. ERROR in X.java (at line 13)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test035() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Missing parameter name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	// TODO (david) recovery seems not to work properly here:
-	// we should have type parameters in method declaration.
-	public void test036() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference: compile error\n" + 
-					"	 * @param <T> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <T, , V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\n" + 
-				"	public <T, , V> void foo(int val, Object obj) {}\n" + 
-				"	       ^^^^^^^^\n" + 
-				"Syntax error on tokens, delete these tokens\n" + 
-				"----------\n"
-		);
-	}
-	public void test037() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference: compile error\n" + 
-					"	 * @param <T> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <T, U, V extends Exceptions> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\n" + 
-				"	public <T, U, V extends Exceptions> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test038() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param < Type\n" + 
-					"  * @param < Type for parameterization\n" + 
-					"  * @param <> Type\n" + 
-					"  * @param <?> Type\n" + 
-					"  * @param <*> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param < Type\n" + 
-				"	         ^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param < Type for parameterization\n" + 
-				"	         ^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <> Type\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <?> Type\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <*> Type\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<E> {}\n" + 
-				"	               ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test039() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E Type parameter of class X\n" + 
-					"  * @param E> Type\n" + 
-					"  * @param <<E> Type\n" + 
-					"  * @param <<<E> Type\n" + 
-					"  * @param <E>> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <E Type parameter of class X\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param E> Type\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <<E> Type\n" + 
-				"	         ^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <<<E> Type\n" + 
-				"	         ^^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <E>> Type\n" + 
-				"	         ^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<E> {}\n" + 
-				"	               ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-
-	public void test040() {
-		runConformReferenceTest(
-			new String[] {
-				"X.java",
-				"/**\n" +
-				" * @category\n" +
-				" */\n" +
-				"public class X {\n" +
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Test fix for bug 80257: [javadoc] Invalid missing reference warning on @see or @link tags
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=80257"
-	 */
-	public void testBug80257() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-				" * @see G#G(Object)\n" + 
-				" * @see G#G(Exception)\n" + 
-				" */\n" + 
-				"public class X extends G<Exception> {\n" + 
-				"	X(Exception exc) { super(exc);}\n" + 
-				"}\n" + 
-				"class G<E extends Exception> {\n" + 
-				"	G(E e) {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	* @see G#G(Object)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor G(Object) is undefined\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	* @see G#G(Exception)\n" + 
-			"	         ^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor G(Exception) is undefined\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	public class X extends G<Exception> {\n" + 
-			"	                       ^\n" + 
-			"The type G is not generic; it cannot be parameterized with arguments <Exception>\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 5)\n" + 
-			"	public class X extends G<Exception> {\n" + 
-			"	                         ^^^^^^^^^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 6)\n" + 
-			"	X(Exception exc) { super(exc);}\n" + 
-			"	                   ^^^^^^^^^^^\n" + 
-			"The constructor Object(Exception) is undefined\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 8)\n" + 
-			"	class G<E extends Exception> {\n" + 
-			"	        ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in X.java (at line 9)\n" + 
-			"	G(E e) {}\n" + 
-			"	  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Test fix for bug 82514: [1.5][javadoc] Problem with generics in javadoc
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=82514"
-	 */
-	public void testBug82514() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class ComparableUtils {\n" + 
-				"   public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-				"    {\n" + 
-				"        return 0;\n" + 
-				"    }\n" + 
-				"    public static <X extends Comparable< ? super X>> int compareTo(final X first, final X firstPrime)\n" + 
-				"        throws ClassCastException\n" + 
-				"    {\n" + 
-				"        return 0;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"public final class X {  \n" + 
-				"	/** Tests the method{@link ComparableUtils#compareTo(Object, Object, Class)} and\n" + 
-				"	 *  {@link ComparableUtils#compareTo(Object, Object)}.\n" + 
-				"	 */\n" + 
-				"    public void testCompareTo() {}\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-			"	               ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 2)\n" + 
-			"	public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-			"	                                                                                                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 2)\n" + 
-			"	public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-			"	                                                                                                                         ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 6)\n" + 
-			"	public static <X extends Comparable< ? super X>> int compareTo(final X first, final X firstPrime)\n" + 
-			"	               ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 13)\n" + 
-			"	/** Tests the method{@link ComparableUtils#compareTo(Object, Object, Class)} and\n" + 
-			"	                                           ^^^^^^^^^\n" + 
-			"Javadoc: The method compareTo(X, X) in the type ComparableUtils is not applicable for the arguments (Object, Object, Class)\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 14)\n" + 
-			"	*  {@link ComparableUtils#compareTo(Object, Object)}.\n" + 
-			"	                          ^^^^^^^^^\n" + 
-			"Javadoc: The method compareTo(X, X) in the type ComparableUtils is not applicable for the arguments (Object, Object)\n" + 
-			"----------\n");
-	}
-
-	/**
-	 * Test fix for bug 83127: [1.5][javadoc][dom] Wrong / strange bindings for references in javadoc to methods with type variables as parameter types
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83127"
-	 */
-	public void testBug83127a() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Test#add(T) \n" + 
-				" * @see #add(T)\n" + 
-				" * @see Test#Test(T)\n" + 
-				" * @see #Test(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Test.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" */\n" + 
-				"public class Test<T> {\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Test#add(T) \n" + 
-			"	                ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see #add(T)\n" + 
-			"	            ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 4)\n" + 
-			"	* @see Test#Test(T)\n" + 
-			"	                 ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 5)\n" + 
-			"	* @see #Test(T)\n" + 
-			"	             ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 11)\n" + 
-			"	public class Test<T> {\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 12)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 13)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 19)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"12. ERROR in Test.java (at line 19)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"13. ERROR in Test.java (at line 20)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127b() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Sub#add(T)\n" + 
-				" * @see Sub#Sub(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Test.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" *     -> Do we need to change this as T natually resolved to TypeVariable?\n" + 
-				" *        As compiler raises a warning, it\'s perhaps not a problem now...\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Sub#add(T)\n" + 
-			"	               ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Sub#Sub(T)\n" + 
-			"	               ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 11)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 12)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 13)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 19)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 19)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 20)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127c() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Sub#add(E) \n" + 
-				" * @see Sub#Sub(E)\n" + 
-				" *   - warning = \"E cannot be resolved to a type\"\n" + 
-				" *   - method binding = null\n" + 
-				" *   - parameter binding = null\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Sub#add(E) \n" + 
-			"	               ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Sub#Sub(E)\n" + 
-			"	               ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 8)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 9)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 10)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 17)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127d() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(E)\n" + 
-				" * @see Unrelated1#Unrelated1(E)\n" + 
-				" *   - warning = \"E cannot be resolved to a type\"\n" + 
-				" *   - method binding = null\n" + 
-				" *   - parameter binding = null\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated1.java (at line 1)\n" + 
-			"	public class Unrelated1<E extends Number> {\n" + 
-			"	                        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated1.java (at line 2)\n" + 
-			"	public Unrelated1(E e) {}\n" + 
-			"	                  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Unrelated1.java (at line 3)\n" + 
-			"	public boolean add(E e) { return false; }\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(E)\n" + 
-			"	                      ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(E)\n" + 
-			"	                             ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 8)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 9)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 10)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 17)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127e() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Object)\n" + 
-				" * @see Unrelated1#Unrelated1(Object)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (Object)\"\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Object\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated1.java (at line 1)\n" + 
-			"	public class Unrelated1<E extends Number> {\n" + 
-			"	                        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated1.java (at line 2)\n" + 
-			"	public Unrelated1(E e) {}\n" + 
-			"	                  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Unrelated1.java (at line 3)\n" + 
-			"	public boolean add(E e) { return false; }\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(Object)\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Object) is undefined for the type Unrelated1\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(Object)\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor Unrelated1(Object) is undefined\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 9)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 10)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 11)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 17)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127f() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Number)\n" + 
-				" * @see Unrelated1#Unrelated1(Number)\n" + 
-				" *   - no warning\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Number\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated1.java (at line 1)\r\n" + 
-			"	public class Unrelated1<E extends Number> {\r\n" + 
-			"	                        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated1.java (at line 2)\r\n" + 
-			"	public Unrelated1(E e) {}\r\n" + 
-			"	                  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Unrelated1.java (at line 3)\r\n" + 
-			"	public boolean add(E e) { return false; }\r\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\r\n" + 
-			"	* @see Unrelated1#add(Number)\r\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Number) is undefined for the type Unrelated1\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\r\n" + 
-			"	* @see Unrelated1#Unrelated1(Number)\r\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor Unrelated1(Number) is undefined\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 8)\r\n" + 
-			"	public class Test<T>{\r\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 9)\r\n" + 
-			"	Test(T t) {}\r\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 10)\r\n" + 
-			"	public boolean add(T t) {\r\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 14)\r\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\r\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 14)\r\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\r\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 14)\r\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\r\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 15)\r\n" + 
-			"	Sub (E e) {super(null);}\r\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 15)\r\n" + 
-			"	Sub (E e) {super(null);}\r\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 16)\r\n" + 
-			"	public boolean add(E e) {\r\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127g() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Integer)\n" + 
-				" * @see Unrelated1#Unrelated1(Integer)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (Integer)\"\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Integer\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated1.java (at line 1)\n" + 
-			"	public class Unrelated1<E extends Number> {\n" + 
-			"	                        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated1.java (at line 2)\n" + 
-			"	public Unrelated1(E e) {}\n" + 
-			"	                  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Unrelated1.java (at line 3)\n" + 
-			"	public boolean add(E e) { return false; }\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(Integer)\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Integer) is undefined for the type Unrelated1\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(Integer)\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor Unrelated1(Integer) is undefined\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 9)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 10)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 11)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 16)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 16)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 16)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 17)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 17)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 18)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127h() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated2.java",
-				"public interface Unrelated2<E> {\n" + 
-				"	boolean add(E e);\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated2#add(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Unrelated2.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" *     -> Do we need to change this as T natually resolved to TypeVariable?\n" + 
-				" *        As compiler raises a warning, it\'s perhaps not a problem now...\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated2.java (at line 1)\n" + 
-			"	public interface Unrelated2<E> {\n" + 
-			"	                            ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated2.java (at line 2)\n" + 
-			"	boolean add(E e);\n" + 
-			"	            ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated2#add(T)\n" + 
-			"	                      ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 10)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 11)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 12)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 17)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 17)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 17)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 18)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 18)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 19)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-
-	/**
-	 * Bug 83393: [1.5][javadoc] reference to vararg method also considers non-array type as correct
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83393"
-	 */
-	public void testBug83393a() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	public void foo(int a, int b) {} \n" + 
-				"	public void foo(int a, int... args) {}\n" + 
-				"	public void foo(String... args) {}\n" + 
-				"	public void foo(Exception str, boolean... args) {}\n" + 
-				"}\n",
-				"Valid.java",
-				"/**\n" + 
-				" * @see Test#foo(int, int)\n" + 
-				" * @see Test#foo(int, int[])\n" + 
-				" * @see Test#foo(int, int...)\n" + 
-				" * @see Test#foo(String[])\n" + 
-				" * @see Test#foo(String...)\n" + 
-				" * @see Test#foo(Exception, boolean[])\n" + 
-				" * @see Test#foo(Exception, boolean...)\n" + 
-				" */\n" + 
-				"public class Valid {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 3)\r\n" + 
-			"	public void foo(int a, int... args) {}\r\n" + 
-			"	                       ^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 4)\r\n" + 
-			"	public void foo(String... args) {}\r\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 5)\r\n" + 
-			"	public void foo(Exception str, boolean... args) {}\r\n" + 
-			"	                               ^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83393b() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	public void foo(int a, int b) {} \n" + 
-				"	public void foo(int a, int... args) {}\n" + 
-				"	public void foo(String... args) {}\n" + 
-				"	public void foo(Exception str, boolean... args) {}\n" + 
-				"}\n",
-				"Invalid.java",
-				"/**\n" + 
-				" * @see Test#foo(int)\n" + 
-				" * @see Test#foo(int, int, int)\n" + 
-				" * @see Test#foo()\n" + 
-				" * @see Test#foo(String)\n" + 
-				" * @see Test#foo(String, String)\n" + 
-				" * @see Test#foo(Exception)\n" + 
-				" * @see Test#foo(Exception, boolean)\n" + 
-				" * @see Test#foo(Exception, boolean, boolean)\n" + 
-				" */\n" + 
-				"public class Invalid {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 3)\n" + 
-			"	public void foo(int a, int... args) {}\n" + 
-			"	                       ^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 4)\n" + 
-			"	public void foo(String... args) {}\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 5)\n" + 
-			"	public void foo(Exception str, boolean... args) {}\n" + 
-			"	                               ^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Invalid.java (at line 2)\n" + 
-			"	* @see Test#foo(int)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(int, int) in the type Test is not applicable for the arguments (int)\n" + 
-			"----------\n" + 
-			"2. ERROR in Invalid.java (at line 3)\n" + 
-			"	* @see Test#foo(int, int, int)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(int, int) in the type Test is not applicable for the arguments (int, int, int)\n" + 
-			"----------\n" + 
-			"3. ERROR in Invalid.java (at line 4)\n" + 
-			"	* @see Test#foo()\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(String[]) in the type Test is not applicable for the arguments ()\n" + 
-			"----------\n" + 
-			"4. ERROR in Invalid.java (at line 5)\n" + 
-			"	* @see Test#foo(String)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(String[]) in the type Test is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"5. ERROR in Invalid.java (at line 6)\n" + 
-			"	* @see Test#foo(String, String)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(int, int) in the type Test is not applicable for the arguments (String, String)\n" + 
-			"----------\n" + 
-			"6. ERROR in Invalid.java (at line 7)\n" + 
-			"	* @see Test#foo(Exception)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean[]) in the type Test is not applicable for the arguments (Exception)\n" + 
-			"----------\n" + 
-			"7. ERROR in Invalid.java (at line 8)\n" + 
-			"	* @see Test#foo(Exception, boolean)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean[]) in the type Test is not applicable for the arguments (Exception, boolean)\n" + 
-			"----------\n" + 
-			"8. ERROR in Invalid.java (at line 9)\n" + 
-			"	* @see Test#foo(Exception, boolean, boolean)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean[]) in the type Test is not applicable for the arguments (Exception, boolean, boolean)\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 83804: [1.5][javadoc] Missing Javadoc node for package declaration
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83804"
-	 */
-	public void testBug83804() {
-		runNegativeTest(
-			new String[] {
-				"pack/package-info.java",
-				"/**\n" + 
-				" * Valid javadoc.\n" + 
-				" * @see Test\n" + 
-				" * @see Unknown\n" + 
-				" * @see Test#foo()\n" + 
-				" * @see Test#unknown()\n" + 
-				" * @see Test#field\n" + 
-				" * @see Test#unknown\n" + 
-				" * @param unexpected\n" + 
-				" * @throws unexpected\n" + 
-				" * @return unexpected \n" + 
-				" * @deprecated accepted by javadoc.exe although javadoc 1.5 spec does not say that's a valid tag\n" + 
-				" * @other-tags are valid\n" + 
-				" */\n" + 
-				"package pack;\n",
-				"pack/Test.java",
-				"/**\n" + 
-				" * Invalid javadoc\n" + 
-				" */\n" + 
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	public int field;\n" + 
-				"	public void foo() {}\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-	/**
-	 * Bug 96237: [javadoc] Inner types must be qualified
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=96237"
-	 */
-	public void testBug96237_Public01() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runConformTest(
-			new String[] {
-				"comment6/Valid.java",
-				"package comment6;\n" + 
-				"public class Valid {\n" + 
-				"    /**\n" + 
-				"     * @see Valid.Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Valid.Inner}\n" + 
-				" */\n" + 
-				"class Sub2 extends Valid { }"
-			}
-		);
-	}
-	public void testBug96237_Public02() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"comment6/Invalid.java",
-				"package comment6;\n" + 
-				"public class Invalid {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Inner} \n" + 
-				" */\n" + 
-				"class Sub1 extends Invalid { }\n"
-			},
-			//comment6\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6\\Invalid.java (at line 4)\r\n" + 
-			"	* @see Inner\r\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public03() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"comment6a/def/Test.java",
-				"package comment6a.def;\n" + 
-				"public class Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6a/test/Invalid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * See also {@link Inner}\n" + 
-				" */\n" + 
-				"public class Invalid extends Test { \n" + 
-				"}",
-				"comment6a/test/Invalid2.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Invalid2 extends Test { \n" + 
-				"}",
-				"comment6a/test/Valid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see comment6a.def.Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid extends Test { \n" + 
-				"}"
-			},
-			//comment6a\def\Test.java:6: warning - Tag @see: reference not found: Inner
-			//comment6a\test\Invalid.java:8: warning - Tag @link: reference not found: Inner
-			//comment6a\test\Invalid2.java:8: warning - Tag @see: reference not found: Test.Inner => bug ID: 4464323
-			"----------\n" + 
-			"1. ERROR in comment6a\\def\\Test.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in comment6a\\test\\Invalid.java (at line 4)\n" + 
-			"	* See also {@link Inner}\n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public04() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"comment6b/Invalid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" */\n" + 
-				"public class Invalid implements Test { \n" + 
-				"}",
-				"comment6b/Test.java",
-				"package comment6b;\n" + 
-				"public interface Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6b/Valid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid implements Test { \n" + 
-				"}"
-			},
-			//comment6b\Test.java:6: warning - Tag @see: reference not found: Inner
-			//comment6b\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6b\\Invalid.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in comment6b\\Test.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public05() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/a/Test.java",
-				"package test.a;\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	class Inner {}\n" + 
-				"}\n"
-			},
-			//test\a\Test.java:6: warning - Tag @see: reference not found: Inner
-			//test\a\Test.java:6: warning - Tag @see: reference not found: Test.Inner
-			"----------\n" + 
-			"1. ERROR in test\\a\\Test.java (at line 3)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\a\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner\n" + 
-			"	       ^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public06() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/b/Test.java",
-				"package test.b;\n" + 
-				"/** \n" + 
-				" * @see Inner.Level2\n" + 
-				" * @see Test.Inner.Level2\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	/** \n" + 
-				"	 * @see Level2\n" + 
-				"	 * @see Test.Inner.Level2\n" + 
-				"	 */\n" + 
-				"	public class Inner {\n" + 
-				"		class Level2 {}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//test\b\Test.java:6: warning - Tag @see: reference not found: Inner.Level2
-			//test\b\Test.java:6: warning - Tag @see: reference not found: Test.Inner.Level2
-			//test\b\Test.java:11: warning - Tag @see: reference not found: Level2
-			//test\b\Test.java:11: warning - Tag @see: reference not found: Test.Inner.Level2
-			"----------\n" + 
-			"1. ERROR in test\\b\\Test.java (at line 3)\n" + 
-			"	* @see Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\b\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\b\\Test.java (at line 8)\n" + 
-			"	* @see Level2\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\b\\Test.java (at line 9)\n" + 
-			"	* @see Test.Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public07() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/c/Test.java",
-				"package test.c;\n" + 
-				"/**\n" + 
-				" * @see Inner.Level2.Level3\n" + 
-				" * @see Test.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	public class Inner {\n" + 
-				"		/**\n" + 
-				"		 * @see Level3\n" + 
-				"		 * @see Level2.Level3\n" + 
-				"		 * @see Inner.Level2.Level3\n" + 
-				"		 * @see Test.Inner.Level2.Level3\n" + 
-				"		 */\n" + 
-				"		public class Level2 {\n" + 
-				"			class Level3 {\n" + 
-				"			}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//test\c\Test.java:6: warning - Tag @see: reference not found: Inner.Level2.Level3
-			//test\c\Test.java:6: warning - Tag @see: reference not found: Test.Inner.Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Inner.Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Test.Inner.Level2.Level3
-			"----------\n" + 
-			"1. ERROR in test\\c\\Test.java (at line 3)\n" + 
-			"	* @see Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\c\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\c\\Test.java (at line 9)\n" + 
-			"	* @see Level3\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\c\\Test.java (at line 10)\n" + 
-			"	* @see Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\c\\Test.java (at line 11)\n" + 
-			"	* @see Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\c\\Test.java (at line 12)\n" + 
-			"	* @see Test.Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public08() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/d/Reference.java",
-				"package test.d;\n" + 
-				"class Reference {\n" + 
-				"}\n",
-				"test/d/Test.java",
-				"package test.d;\n" + 
-				"/**\n" + 
-				" * @see Secondary\n" + 
-				" * @see Reference\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"}\n" + 
-				"class Secondary {}"
-			},
-			"----------\n" + 
-			"1. ERROR in test\\d\\Test.java (at line 3)\n" + 
-			"	* @see Secondary\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\d\\Test.java (at line 4)\n" + 
-			"	* @see Reference\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private01() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"comment6/Valid.java",
-				"package comment6;\n" + 
-				"public class Valid {\n" + 
-				"    /**\n" + 
-				"     * @see Valid.Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Valid.Inner}\n" + 
-				" */\n" + 
-				"class Sub2 extends Valid { }"
-			}
-		);
-	}
-	public void testBug96237_Private02() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6/Invalid.java",
-				"package comment6;\n" + 
-				"public class Invalid {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Inner} \n" + 
-				" */\n" + 
-				"class Sub1 extends Invalid { }\n"
-			},
-			//comment6\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			//comment6\Invalid.java:11: warning - Tag @link: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6\\Invalid.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in comment6\\Invalid.java (at line 9)\n" + 
-			"	* See also {@link Inner} \n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private03() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6a/def/Test.java",
-					"package comment6a.def;\n" + 
-				"public class Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6a/test/Invalid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * See also {@link Inner}\n" + 
-				" */\n" + 
-				"public class Invalid extends Test { \n" + 
-				"}",
-				"comment6a/test/Invalid2.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Invalid2 extends Test { \n" + 
-				"}",
-				"comment6a/test/Valid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see comment6a.def.Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid extends Test { \n" + 
-				"}"
-			},
-			//comment6a\def\Test.java:6: warning - Tag @see: reference not found: Inner
-			//comment6a\test\Invalid.java:8: warning - Tag @link: reference not found: Inner
-			//comment6a\test\Invalid2.java:8: warning - Tag @see: reference not found: Test.Inner => bug ID: 4464323
-			"----------\n" + 
-			"1. ERROR in comment6a\\def\\Test.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in comment6a\\test\\Invalid.java (at line 4)\n" + 
-			"	* See also {@link Inner}\n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private04() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6b/Invalid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" */\n" + 
-				"public class Invalid implements Test { \n" + 
-				"}",
-				"comment6b/Test.java",
-				"package comment6b;\n" + 
-				"public interface Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6b/Valid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid implements Test { \n" + 
-				"}"
-			},
-			//comment6b\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			//comment6b\Test.java:6: warning - Tag @see: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6b\\Invalid.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in comment6b\\Test.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private05() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/a/Test.java",
-				"package test.a;\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	class Inner {}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private06() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/b/Test.java",
-				"package test.b;\n" + 
-				"/** \n" + 
-				" * @see Inner.Level2\n" + 
-				" * @see Test.Inner.Level2\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	/** \n" + 
-				"	 * @see Level2\n" + 
-				"	 * @see Test.Inner.Level2\n" + 
-				"	 */\n" + 
-				"	public class Inner {\n" + 
-				"		class Level2 {}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private07() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/c/Test.java",
-				"package test.c;\n" + 
-				"/**\n" + 
-				" * @see Inner.Level2.Level3\n" + 
-				" * @see Test.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	public class Inner {\n" + 
-				"		/**\n" + 
-				"		 * @see Level3\n" + 
-				"		 * @see Level2.Level3\n" + 
-				"		 * @see Inner.Level2.Level3\n" + 
-				"		 * @see Test.Inner.Level2.Level3\n" + 
-				"		 */\n" + 
-				"		public class Level2 {\n" + 
-				"			class Level3 {\n" + 
-				"			}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private08() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/d/Reference.java",
-				"package test.d;\n" + 
-				"class Reference {\n" + 
-				"}\n",
-				"test/d/Test.java",
-				"package test.d;\n" + 
-				"/**\n" + 
-				" * @see Secondary\n" + 
-				" * @see Reference\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"}\n" + 
-				"class Secondary {}"
-			}
-		);
-	}
-
-	/**
-	 * Bug 95286: [1.5][javadoc] package-info.java incorrectly flags "Missing comment for public declaration"
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=95286"
-	 */
-	public void testBug95286_Default() {
-		this.reportMissingJavadocComments = CompilerOptions.ERROR;
-		this.reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
-		runConformTest(
-			new String[] {
-				"test/package-info.java",
-				"/**\n" + 
-				" * Javadoc for all package \n" + 
-				" */\n" + 
-				"package test;\n"
-			}
-		);
-	}
-	public void testBug95286_Private() {
-		this.reportMissingJavadocComments = CompilerOptions.ERROR;
-		this.reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/package-info.java",
-				"/**\n" + 
-				" * Javadoc for all package \n" + 
-				" */\n" + 
-				"package test;\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 95521: [1.5][javadoc] validation with @see tag not working for generic method
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=95521"
-	 */
-	public void testBug95521() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"\n" + 
-				"/** Test */\n" + 
-				"public class X implements I {\n" + 
-				"	/**\n" + 
-				"	 * @see test.I#foo(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-				"		return null;\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"/** Interface */\n" + 
-				"interface I {\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param stuffClass \n" + 
-				"     * @return stuff\n" + 
-				"     */\n" + 
-				"    public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-				"}\n" + 
-				"/** \n" + 
-				" * @param <T>\n" + 
-				" */\n" + 
-				"class G<T> {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	             ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	             ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	                          ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	                          ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\X.java (at line 15)\n" + 
-			"	* @param <T>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"7. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	                            ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"9. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	                            ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"11. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	                                         ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"12. ERROR in test\\X.java (at line 22)\n" + 
-			"	* @param <T>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"13. ERROR in test\\X.java (at line 24)\n" + 
-			"	class G<T> {}\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n");
-	}
-	public void testBug95521b() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"\n" + 
-				"/** Test */\n" + 
-				"public class X {\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param classT \n" + 
-				"     */\n" + 
-				"	public <T> X(Class<T> classT) {\n" + 
-				"	}\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param classT\n" + 
-				"     * @return classT\n" + 
-				"     */\n" + 
-				"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-				"		return classT;\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"/** Super class */\n" + 
-				"class Y extends X {\n" + 
-				"	/**\n" + 
-				"	 * @see X#X(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"	public <T> Y(Class<T> classT) {\n" + 
-				"		super(classT);\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see X#foo(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"    public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-				"    	return null;\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 6)\n" + 
-			"	* @param <T>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 9)\n" + 
-			"	public <T> X(Class<T> classT) {\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\X.java (at line 9)\n" + 
-			"	public <T> X(Class<T> classT) {\n" + 
-			"	                   ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\X.java (at line 9)\n" + 
-			"	public <T> X(Class<T> classT) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\X.java (at line 12)\n" + 
-			"	* @param <T>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	                 ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	                 ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	                              ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"10. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	                              ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"11. ERROR in test\\X.java (at line 25)\n" + 
-			"	public <T> Y(Class<T> classT) {\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"12. ERROR in test\\X.java (at line 25)\n" + 
-			"	public <T> Y(Class<T> classT) {\n" + 
-			"	                   ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"13. ERROR in test\\X.java (at line 25)\n" + 
-			"	public <T> Y(Class<T> classT) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"14. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"15. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	                                ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"16. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	                                ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"17. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	                                             ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"18. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	                                             ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-
-	/**
-	 * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283"
-	 */
-	public void testBug101283a() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @param <T>  \n" + 
-				"	 * @param <F>\n" + 
-				"	 */\n" + 
-				"	static class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X<T, F> {\n" + 
-			"	               ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	* @param <T>  \n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	* @param <F>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	static class Entry<L, R> {\n" + 
-			"	                   ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283b() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see T Variable \n" + 
-				"	 * @see F Variable\n" + 
-				"	 */\n" + 
-				"	static class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X<T, F> {\n" + 
-			"	               ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	* @see T Variable \n" + 
-			"	       ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	* @see F Variable\n" + 
-			"	       ^\n" + 
-			"Javadoc: F cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	static class Entry<L, R> {\n" + 
-			"	                   ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283c() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @param <T>  \n" + 
-				"	 * @param <F>\n" + 
-				"	 */\n" + 
-				"	class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X<T, F> {\n" + 
-			"	               ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	* @param <T>  \n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	* @param <F>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	class Entry<L, R> {\n" + 
-			"	            ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283d() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see T Variable \n" + 
-				"	 * @see F Variable\n" + 
-				"	 */\n" + 
-				"	class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X<T, F> {\n" + 
-			"	               ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	* @see T Variable \n" + 
-			"	       ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	* @see F Variable\n" + 
-			"	       ^\n" + 
-			"Javadoc: F cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	class Entry<L, R> {\n" + 
-			"	            ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	// Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error
-	public void testBug101283g() {
-		reportMissingJavadocTags = CompilerOptions.DISABLED;
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"public class X {\n" + 
-				"	int foo() { return 0; }\n" + 
-				"	class XX extends X2 {\n" + 
-				"		int bar() {\n" + 
-				"			return foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"class X2 {\n" + 
-				"	int foo() {\n" + 
-				"		return 0;\n" + 
-				"	}\n" + 
-				"}\n",
-				"test/Y.java",
-				"package test;\n" + 
-				"public class Y {\n" + 
-				"	int foo;\n" + 
-				"	class YY extends Y2 {\n" + 
-				"	/**\n" + 
-				"	 *  @see #foo\n" + 
-				"	 */\n" + 
-				"		int bar() {\n" + 
-				"			return foo;\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"class Y2 {\n" + 
-				"	int foo;\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 6)\r\n" + 
-			"	return foo();\r\n" + 
-			"	       ^^^\n" + 
-			"The method foo is defined in an inherited type and an enclosing scope\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in test\\Y.java (at line 9)\r\n" + 
-			"	return foo;\r\n" + 
-			"	       ^^^\n" + 
-			"The field foo is defined in an inherited type and an enclosing scope \n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 112346: [javadoc] {@inheritedDoc} should be inactive for non-overridden method
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=112346"
-	 */
-	public void testBug112346() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-				" * Test references\n" + 
-				" * @see Test#field\n" + 
-				" * @see Test#foo()\n" + 
-				" */\n" + 
-				"public class Test<T> {\n" + 
-				"	T field;\n" + 
-				"	T foo() { return null; }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Test#field\n" + 
-			"	            ^^^^^\n" + 
-			"Javadoc: field cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 4)\n" + 
-			"	* @see Test#foo()\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo() is undefined for the type Test\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 6)\n" + 
-			"	public class Test<T> {\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 7)\n" + 
-			"	T field;\n" + 
-			"	^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 8)\n" + 
-			"	T foo() { return null; }\n" + 
-			"	^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 119857: [javadoc] Some inner class references should be flagged as unresolved
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=119857"
-	 */
-	public void testBug119857() {
-		runNegativeTest(
-			new String[] {
-				"DefaultInformationControl.java",
-				"public class DefaultInformationControl {\n" + 
-				"	public interface IInformationPresenter {\n" + 
-				"		/**\n" + 
-				"		 * Updates the given presentation of the given information and\n" + 
-				"		 * thereby may manipulate the information to be displayed. The manipulation\n" + 
-				"		 * could be the extraction of textual encoded style information etc. Returns the\n" + 
-				"		 * manipulated information.\n" + 
-				"		 *\n" + 
-				"		 * @param hoverInfo the information to be presented\n" + 
-				"		 * @param maxWidth the maximal width in pixels\n" + 
-				"		 * @param maxHeight the maximal height in pixels\n" + 
-				"		 *\n" + 
-				"		 * @return the manipulated information\n" + 
-				"		 * @deprecated As of 3.2, replaced by {@link IInformationPresenterExtension#updatePresentation(String, int, int)}\n" + 
-				"		 * 				see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=38528 for details.\n" + 
-				"		 */\n" + 
-				"		String updatePresentation(String hoverInfo, int maxWidth, int maxHeight);\n" + 
-				"	}\n" + 
-				"	/**\n" + 
-				"	 * An information presenter determines the style presentation\n" + 
-				"	 * of information displayed in the default information control.\n" + 
-				"	 * The interface can be implemented by clients.\n" + 
-				"	 * \n" + 
-				"	 * @since 3.2\n" + 
-				"	 */\n" + 
-				"	public interface IInformationPresenterExtension {\n" + 
-				"		\n" + 
-				"		/**\n" + 
-				"		 * Updates the given presentation of the given information and\n" + 
-				"		 * thereby may manipulate the information to be displayed. The manipulation\n" + 
-				"		 * could be the extraction of textual encoded style information etc. Returns the\n" + 
-				"		 * manipulated information.\n" + 
-				"		 * <p>\n" + 
-				"		 * Replaces {@link IInformationPresenter#updatePresentation(String, int, int)}\n" + 
-				"		 * <em>Make sure that you do not pass in a <code>Display</code></em> until\n" + 
-				"		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=38528 is fixed.\n" + 
-				"		 * </p>\n" + 
-				"		 *\n" + 
-				"		 * @param hoverInfo the information to be presented\n" + 
-				"		 * @param maxWidth the maximal width in pixels\n" + 
-				"		 * @param maxHeight the maximal height in pixels\n" + 
-				"		 *\n" + 
-				"		 * @return the manipulated information\n" + 
-				"		 */\n" + 
-				"		String updatePresentation(String hoverInfo, int maxWidth, int maxHeight);\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in DefaultInformationControl.java (at line 14)\n" + 
-			"	* @deprecated As of 3.2, replaced by {@link IInformationPresenterExtension#updatePresentation(String, int, int)}\n" + 
-			"	                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in DefaultInformationControl.java (at line 34)\n" + 
-			"	* Replaces {@link IInformationPresenter#updatePresentation(String, int, int)}\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Fields() {
-		runNegativeTest(
-			new String[] {
-				"TestFields.java",
-				"/**\n" + 
-				" * @see MyInnerClass#foo\n" + 
-				" */\n" + 
-				"public class TestFields {\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerClass#foo\n" + 
-				"     */\n" + 
-				"    public class MyInnerClass {\n" + 
-				"            Object foo;\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in TestFields.java (at line 6)\n" + 
-			"	* @see MyInnerClass#foo\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Methods() {
-		runNegativeTest(
-			new String[] {
-				"TestMethods.java",
-				"/**\n" + 
-				" * @see MyInnerClass#foo()\n" + 
-				" * @see MyInnerInterface#foo()\n" + 
-				" */\n" + 
-				"public class TestMethods {\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerInterface#foo()\n" + 
-				"     */\n" + 
-				"    public class MyInnerClass {\n" + 
-				"            public void foo() {}\n" + 
-				"    }\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerClass#foo()\n" + 
-				"     */\n" + 
-				"    public interface MyInnerInterface {\n" + 
-				"            public void foo();\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in TestMethods.java (at line 7)\n" + 
-			"	* @see MyInnerInterface#foo()\n" + 
-			"	       ^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in TestMethods.java (at line 13)\n" + 
-			"	* @see MyInnerClass#foo()\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Types() {
-		runNegativeTest(
-			new String[] {
-				"TestTypes.java",
-				"/**\n" + 
-				" * @see MyInnerClass\n" + 
-				" * @see MyInnerInterface\n" + 
-				" */\n" + 
-				"public class TestTypes {\n" + 
-				"	/**\n" + 
-				"	 * @see MyInnerInterface\n" + 
-				"	 */\n" + 
-				"	public class MyInnerClass {\n" + 
-				"	        public void foo() {}\n" + 
-				"	}\n" + 
-				"	/**\n" + 
-				"	 * @see MyInnerClass\n" + 
-				"	 */\n" + 
-				"	public interface MyInnerInterface {\n" + 
-				"	        public void foo();\n" + 
-				"	}\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in TestTypes.java (at line 7)\n" + 
-			"	* @see MyInnerInterface\n" + 
-			"	       ^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in TestTypes.java (at line 13)\n" + 
-			"	* @see MyInnerClass\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Private01() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public Inner field;\n" + 
-				"	/** \n" + 
-				"	 * @see Inner#foo()\n" + 
-				"	 */\n" + 
-				"	public Object foo() {\n" + 
-				"		return field.foo();\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug119857_Public01() {
-		this.reportMissingJavadocTags = CompilerOptions.DISABLED;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public Inner field;\n" + 
-				"	/** \n" + 
-				"	 * @see Inner#foo()\n" + 
-				"	 */\n" + 
-				"	public Object foo() {\n" + 
-				"		return field.foo();\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//pack/Test.java:13: warning - Tag @see: reference not found: Inner1#foo()
-			"----------\n" + 
-			"1. ERROR in pack\\Test.java (at line 8)\r\n" + 
-			"	* @see Inner#foo()\r\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Private02() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"test/Test.java",
-				"package test;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//pack\Test2.java:11: warning - Tag @see: reference not found: Inner1#foo()
-			"----------\n" + 
-			"1. ERROR in test\\Test.java (at line 9)\r\n" + 
-			"	* @see Inner1#foo()\r\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Public02() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runConformTest(
-			new String[] {
-				"test/Test.java",
-				"package test;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug119857_Public03() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//pack/Test.java:13: warning - Tag @see: reference not found: Inner1#foo()
-			"----------\n" + 
-			"1. ERROR in pack\\Test.java (at line 9)\n" + 
-			"	* @see Inner1#foo()\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 145007: [1.5][javadoc] Generics + Inner Class -> Javadoc "missing @throws" warning
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=145007"
-	 */
-	public void testBug145007() {
-		runNegativeTest(
-			new String[] {
-				"TestClass.java",
-				"class TestClass<T> {\n" + 
-				"    static class Test1 {\n" + 
-				"        /**\n" + 
-				"         * A simple method that demonstrates tag problems\n" + 
-				"         * \n" + 
-				"         * @return a string\n" + 
-				"         * @throws MyException\n" + 
-				"         *             if something goes wrong\n" + 
-				"         */\n" + 
-				"        public String getString() throws MyException {\n" + 
-				"            throw new MyException();\n" + 
-				"        }\n" + 
-				"    }\n" + 
-				"\n" + 
-				"    static class MyException extends Exception {\n" + 
-				"        private static final long serialVersionUID = 1L;\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in TestClass.java (at line 1)\r\n" + 
-			"	class TestClass<T> {\r\n" + 
-			"	                ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_4.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_4.java
deleted file mode 100644
index a9b902a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_4.java
+++ /dev/null
@@ -1,3908 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTest_1_4 extends JavadocTest {
-
-	String docCommentSupport = CompilerOptions.ENABLED;
-	String reportInvalidJavadoc = CompilerOptions.ERROR;
-	String reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-	String reportMissingJavadocTags = CompilerOptions.ERROR;
-	String reportMissingJavadocComments = null;
-	String reportMissingJavadocCommentsVisibility = null;
-
-	public JavadocTest_1_4(String name) {
-		super(name);
-	}
-
-	public static Class testClass() {
-		return JavadocTest_1_4.class;
-	}
-
-	// Use this static initializer to specify subset for tests
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_PREFIX = "testBug95521";
-//		TESTS_NAMES = new String[] {
-//			"testBug70892conform1", "testBug70892conform2"
-//		};
-//		TESTS_NUMBERS = new int[] { 101283 };
-//		TESTS_RANGE = new int[] { 21, 50 };
-	}
-	public static Test suite() {
-		return buildMinimalComplianceTestSuite(testClass(), F_1_4);
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_DocCommentSupport, this.docCommentSupport);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, reportInvalidJavadoc);
-		if (!CompilerOptions.IGNORE.equals(reportInvalidJavadoc)) {
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, this.reportInvalidJavadocVisibility);
-		}
-		if (reportMissingJavadocComments != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments);
-		else
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportInvalidJavadoc);
-		if (reportMissingJavadocCommentsVisibility != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsVisibility, reportMissingJavadocCommentsVisibility);
-		if (reportMissingJavadocTags != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportMissingJavadocTags);
-		else
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
-		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
-//		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
-		return options;
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.docCommentSupport = CompilerOptions.ENABLED;
-		this.reportInvalidJavadoc = CompilerOptions.ERROR;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		this.reportMissingJavadocTags = CompilerOptions.ERROR;
-		this.reportMissingJavadocComments = CompilerOptions.IGNORE;
-	}
-
-
-	/**
-	 * Test fix for bug 70891: [1.5][javadoc] Compiler should accept new 1.5 syntax for @param
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70891">70891</a>
-	 * These two tests fail for 1.5 source level but should pass for 1.3 or 1.4
-	 * @see JavadocTest_1_4
-	 */
-	/* (non-Javadoc)
-	 * Test @param for generic class type parameter
-	 */
-	public void test003() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <E> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* @param <E> Type\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\r\n" + 
-				"	public class X<E> {}\r\n" + 
-				"	               ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test004() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <E> Type extends RuntimeException\n" + 
-					"  */\n" + 
-					" public class X<E extends RuntimeException> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* @param <E> Type extends RuntimeException\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\r\n" + 
-				"	public class X<E extends RuntimeException> {}\r\n" + 
-				"	               ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-
-		);
-	}
-	public void test005() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* @param <T> Type parameter 1\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <U> Type parameter 2\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\r\n" + 
-				"	* @param <V> Type parameter 3\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\r\n" + 
-				"	public class X<T, U, V> {}\r\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E> Type parameter\n" + 
-					"  */\n" + 
-					" public class X {}",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n"
-		);
-	}
-	public void test007() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E> Type parameter\n" + 
-					"  */\n" + 
-					" public class X<E, F> {}",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<E, F> {}\n" + 
-				"	               ^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test008() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T> {}\n" + 
-				"	               ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test009() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <X> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test010() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\r\n" + 
-				"	* @param <V> Type parameter 3\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <U> Type parameter 2\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\r\n" + 
-				"	* @param <T> Type parameter 1\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\r\n" + 
-				"	public class X<T, U, V> {}\r\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test011() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test012() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test013() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test014() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <U> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test015() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <U> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test016() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test017() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <U> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test018() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test019() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <X> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test020() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Missing parameter name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test021() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference: compile error\n" + 
-					"  * @param <T> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, , V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, , V> {}\n" + 
-				"	              ^^\n" + 
-				"Syntax error on tokens, delete these tokens\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, , V> {}\n" + 
-				"	               ^\n" + 
-				"Syntax error, insert \"ClassBody\" to complete JavaScriptUnit\n" + 
-				"----------\n"
-		);
-	}
-	public void test022() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference: compile error\n" + 
-					"  * @param <T> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V extend Exception> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V extend Exception> {}\n" + 
-				"	              ^^^^^^\n" + 
-				"Syntax error on tokens, delete these tokens\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V extend Exception> {}\n" + 
-				"	                   ^\n" + 
-				"Syntax error, insert \"ClassBody\" to complete JavaScriptUnit\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V extend Exception> {}\n" + 
-				"	                       ^^^^^^\n" + 
-				"extend cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	/* (non-Javadoc)
-	 * Test @param for generic method type parameter
-	 */
-	public void test023() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <E> Type\n" + 
-					"	 */\n" + 
-					"	public <E> void foo() {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <E> Type\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\r\n" + 
-				"	public <E> void foo() {}\r\n" + 
-				"	        ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test024() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <E> Type extends RuntimeException\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <E extends RuntimeException> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <E> Type extends RuntimeException\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\r\n" + 
-				"	public <E extends RuntimeException> void foo(int val, Object obj) {}\r\n" + 
-				"	        ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test025() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 6)\r\n" + 
-				"	* @param <T> Type parameter 1\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\r\n" + 
-				"	* @param <U> Type parameter 2\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 8)\r\n" + 
-				"	* @param <V> Type parameter 3\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\r\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\r\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test026() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <E> Type parameter\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n"
-		);
-	}
-	public void test027() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <E> Type parameter\n" + 
-					"	 */\n" + 
-					"	public <E, F> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	                           ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	                                       ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test028() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 * @param xxx int\n" + 
-					"	 * @param Obj Object\n" + 
-					"	 */\n" + 
-					"	public <T> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 7)\n" + 
-				"	* @param xxx int\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Parameter xxx is not declared\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 8)\n" + 
-				"	* @param Obj Object\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Parameter Obj is not declared\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 10)\n" + 
-				"	public <T> void foo(int val, Object obj) {}\n" + 
-				"	        ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"7. ERROR in X.java (at line 10)\n" + 
-				"	public <T> void foo(int val, Object obj) {}\n" + 
-				"	                        ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"8. ERROR in X.java (at line 10)\n" + 
-				"	public <T> void foo(int val, Object obj) {}\n" + 
-				"	                                    ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test029() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <X> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <E> Type parameter 2\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 10)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 12)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test030() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\r\n" + 
-				"	* @param <V> Type parameter 3\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\r\n" + 
-				"	* @param <U> Type parameter 2\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 8)\r\n" + 
-				"	* @param <T> Type parameter 1\r\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\r\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\r\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test031() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test032() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 3\n" + 
-					"	 * @param val int\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test033() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <U> Type parameter 3\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n"
-		);
-	}
-	public void test034() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <X> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param Object obj\n" + 
-					"	 * @param <E> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @param Object obj\n" + 
-				"	         ^^^^^^\n" + 
-				"Javadoc: Parameter Object is not declared\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 9)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 10)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"7. ERROR in X.java (at line 11)\n" + 
-				"	* @param val int\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Duplicate tag for parameter\n" + 
-				"----------\n" + 
-				"8. ERROR in X.java (at line 13)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"9. ERROR in X.java (at line 13)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test035() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Missing parameter name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	// TODO (david) recovery seems not to work properly here:
-	// we should have type parameters in method declaration.
-	public void test036() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference: compile error\n" + 
-					"	 * @param <T> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <T, , V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\n" + 
-				"	public <T, , V> void foo(int val, Object obj) {}\n" + 
-				"	       ^^^^^^^^\n" + 
-				"Syntax error on tokens, delete these tokens\n" + 
-				"----------\n"
-		);
-	}
-	public void test037() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference: compile error\n" + 
-					"	 * @param <T> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <T, U, V extends Exceptions> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\n" + 
-				"	public <T, U, V extends Exceptions> void foo(int val, Object obj) {}\n" + 
-				"	        ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test038() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param < Type\n" + 
-					"  * @param < Type for parameterization\n" + 
-					"  * @param <> Type\n" + 
-					"  * @param <?> Type\n" + 
-					"  * @param <*> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param < Type\n" + 
-				"	         ^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param < Type for parameterization\n" + 
-				"	         ^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <> Type\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <?> Type\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <*> Type\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<E> {}\n" + 
-				"	               ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-	public void test039() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E Type parameter of class X\n" + 
-					"  * @param E> Type\n" + 
-					"  * @param <<E> Type\n" + 
-					"  * @param <<<E> Type\n" + 
-					"  * @param <E>> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <E Type parameter of class X\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param E> Type\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <<E> Type\n" + 
-				"	         ^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <<<E> Type\n" + 
-				"	         ^^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <E>> Type\n" + 
-				"	         ^^^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<E> {}\n" + 
-				"	               ^\n" + 
-				"Syntax error, type parameters are only available if source level is 5.0\n" + 
-				"----------\n"
-		);
-	}
-
-	public void test040() {
-		runConformReferenceTest(
-			new String[] {
-				"X.java",
-				"/**\n" +
-				" * @category\n" +
-				" */\n" +
-				"public class X {\n" +
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Test fix for bug 80257: [javadoc] Invalid missing reference warning on @see or @link tags
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=80257"
-	 */
-	public void testBug80257() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-				" * @see G#G(Object)\n" + 
-				" * @see G#G(Exception)\n" + 
-				" */\n" + 
-				"public class X extends G<Exception> {\n" + 
-				"	X(Exception exc) { super(exc);}\n" + 
-				"}\n" + 
-				"class G<E extends Exception> {\n" + 
-				"	G(E e) {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	* @see G#G(Object)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor G(Object) is undefined\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	* @see G#G(Exception)\n" + 
-			"	         ^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor G(Exception) is undefined\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	public class X extends G<Exception> {\n" + 
-			"	                       ^\n" + 
-			"The type G is not generic; it cannot be parameterized with arguments <Exception>\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 5)\n" + 
-			"	public class X extends G<Exception> {\n" + 
-			"	                         ^^^^^^^^^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 6)\n" + 
-			"	X(Exception exc) { super(exc);}\n" + 
-			"	                   ^^^^^^^^^^^\n" + 
-			"The constructor Object(Exception) is undefined\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 8)\n" + 
-			"	class G<E extends Exception> {\n" + 
-			"	        ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in X.java (at line 9)\n" + 
-			"	G(E e) {}\n" + 
-			"	  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Test fix for bug 82514: [1.5][javadoc] Problem with generics in javadoc
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=82514"
-	 */
-	public void testBug82514() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class ComparableUtils {\n" + 
-				"   public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-				"    {\n" + 
-				"        return 0;\n" + 
-				"    }\n" + 
-				"    public static <X extends Comparable< ? super X>> int compareTo(final X first, final X firstPrime)\n" + 
-				"        throws ClassCastException\n" + 
-				"    {\n" + 
-				"        return 0;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"public final class X {  \n" + 
-				"	/** Tests the method{@link ComparableUtils#compareTo(Object, Object, Class)} and\n" + 
-				"	 *  {@link ComparableUtils#compareTo(Object, Object)}.\n" + 
-				"	 */\n" + 
-				"    public void testCompareTo() {}\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-			"	               ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 2)\n" + 
-			"	public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-			"	                                                                                                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 2)\n" + 
-			"	public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-			"	                                                                                                                         ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 6)\n" + 
-			"	public static <X extends Comparable< ? super X>> int compareTo(final X first, final X firstPrime)\n" + 
-			"	               ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 13)\n" + 
-			"	/** Tests the method{@link ComparableUtils#compareTo(Object, Object, Class)} and\n" + 
-			"	                                           ^^^^^^^^^\n" + 
-			"Javadoc: The method compareTo(X, X) in the type ComparableUtils is not applicable for the arguments (Object, Object, Class)\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 14)\n" + 
-			"	*  {@link ComparableUtils#compareTo(Object, Object)}.\n" + 
-			"	                          ^^^^^^^^^\n" + 
-			"Javadoc: The method compareTo(X, X) in the type ComparableUtils is not applicable for the arguments (Object, Object)\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Test fix for bug 83127: [1.5][javadoc][dom] Wrong / strange bindings for references in javadoc to methods with type variables as parameter types
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83127"
-	 */
-	public void testBug83127a() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Test#add(T) \n" + 
-				" * @see #add(T)\n" + 
-				" * @see Test#Test(T)\n" + 
-				" * @see #Test(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Test.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" */\n" + 
-				"public class Test<T> {\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Test#add(T) \n" + 
-			"	                ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see #add(T)\n" + 
-			"	            ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 4)\n" + 
-			"	* @see Test#Test(T)\n" + 
-			"	                 ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 5)\n" + 
-			"	* @see #Test(T)\n" + 
-			"	             ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 11)\n" + 
-			"	public class Test<T> {\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 12)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 13)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 19)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"12. ERROR in Test.java (at line 19)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"13. ERROR in Test.java (at line 20)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127b() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Sub#add(T)\n" + 
-				" * @see Sub#Sub(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Test.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" *     -> Do we need to change this as T natually resolved to TypeVariable?\n" + 
-				" *        As compiler raises a warning, it\'s perhaps not a problem now...\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Sub#add(T)\n" + 
-			"	               ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Sub#Sub(T)\n" + 
-			"	               ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 11)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 12)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 13)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 18)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 19)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 19)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 20)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127c() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Sub#add(E) \n" + 
-				" * @see Sub#Sub(E)\n" + 
-				" *   - warning = \"E cannot be resolved to a type\"\n" + 
-				" *   - method binding = null\n" + 
-				" *   - parameter binding = null\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Sub#add(E) \n" + 
-			"	               ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Sub#Sub(E)\n" + 
-			"	               ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 8)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 9)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 10)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 17)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127d() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(E)\n" + 
-				" * @see Unrelated1#Unrelated1(E)\n" + 
-				" *   - warning = \"E cannot be resolved to a type\"\n" + 
-				" *   - method binding = null\n" + 
-				" *   - parameter binding = null\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated1.java (at line 1)\n" + 
-			"	public class Unrelated1<E extends Number> {\n" + 
-			"	                        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated1.java (at line 2)\n" + 
-			"	public Unrelated1(E e) {}\n" + 
-			"	                  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Unrelated1.java (at line 3)\n" + 
-			"	public boolean add(E e) { return false; }\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(E)\n" + 
-			"	                      ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(E)\n" + 
-			"	                             ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 8)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 9)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 10)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 17)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127e() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Object)\n" + 
-				" * @see Unrelated1#Unrelated1(Object)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (Object)\"\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Object\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated1.java (at line 1)\n" + 
-			"	public class Unrelated1<E extends Number> {\n" + 
-			"	                        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated1.java (at line 2)\n" + 
-			"	public Unrelated1(E e) {}\n" + 
-			"	                  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Unrelated1.java (at line 3)\n" + 
-			"	public boolean add(E e) { return false; }\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(Object)\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Object) is undefined for the type Unrelated1\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(Object)\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor Unrelated1(Object) is undefined\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 9)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 10)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 11)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 15)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 16)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 17)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127f() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Number)\n" + 
-				" * @see Unrelated1#Unrelated1(Number)\n" + 
-				" *   - no warning\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Number\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated1.java (at line 1)\r\n" + 
-			"	public class Unrelated1<E extends Number> {\r\n" + 
-			"	                        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated1.java (at line 2)\r\n" + 
-			"	public Unrelated1(E e) {}\r\n" + 
-			"	                  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Unrelated1.java (at line 3)\r\n" + 
-			"	public boolean add(E e) { return false; }\r\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\r\n" + 
-			"	* @see Unrelated1#add(Number)\r\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Number) is undefined for the type Unrelated1\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\r\n" + 
-			"	* @see Unrelated1#Unrelated1(Number)\r\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor Unrelated1(Number) is undefined\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 8)\r\n" + 
-			"	public class Test<T>{\r\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 9)\r\n" + 
-			"	Test(T t) {}\r\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 10)\r\n" + 
-			"	public boolean add(T t) {\r\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 14)\r\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\r\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 14)\r\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\r\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 14)\r\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\r\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 15)\r\n" + 
-			"	Sub (E e) {super(null);}\r\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 15)\r\n" + 
-			"	Sub (E e) {super(null);}\r\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 16)\r\n" + 
-			"	public boolean add(E e) {\r\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127g() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Integer)\n" + 
-				" * @see Unrelated1#Unrelated1(Integer)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (Integer)\"\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Integer\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated1.java (at line 1)\n" + 
-			"	public class Unrelated1<E extends Number> {\n" + 
-			"	                        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated1.java (at line 2)\n" + 
-			"	public Unrelated1(E e) {}\n" + 
-			"	                  ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in Unrelated1.java (at line 3)\n" + 
-			"	public boolean add(E e) { return false; }\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(Integer)\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Integer) is undefined for the type Unrelated1\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(Integer)\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor Unrelated1(Integer) is undefined\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 9)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 10)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 11)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 16)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 16)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 16)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 17)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 17)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"11. ERROR in Test.java (at line 18)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127h() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated2.java",
-				"public interface Unrelated2<E> {\n" + 
-				"	boolean add(E e);\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated2#add(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Unrelated2.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" *     -> Do we need to change this as T natually resolved to TypeVariable?\n" + 
-				" *        As compiler raises a warning, it\'s perhaps not a problem now...\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Unrelated2.java (at line 1)\n" + 
-			"	public interface Unrelated2<E> {\n" + 
-			"	                            ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Unrelated2.java (at line 2)\n" + 
-			"	boolean add(E e);\n" + 
-			"	            ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated2#add(T)\n" + 
-			"	                      ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 10)\n" + 
-			"	public class Test<T>{\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 11)\n" + 
-			"	Test(T t) {}\n" + 
-			"	     ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 12)\n" + 
-			"	public boolean add(T t) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 17)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	          ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"6. ERROR in Test.java (at line 17)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in Test.java (at line 17)\n" + 
-			"	class Sub<E extends Number> extends Test<E> {\n" + 
-			"	                                         ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"8. ERROR in Test.java (at line 18)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	     ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in Test.java (at line 18)\n" + 
-			"	Sub (E e) {super(null);}\n" + 
-			"	           ^^^^^^^^^^^^\n" + 
-			"The constructor Object(null) is undefined\n" + 
-			"----------\n" + 
-			"10. ERROR in Test.java (at line 19)\n" + 
-			"	public boolean add(E e) {\n" + 
-			"	                   ^\n" + 
-			"E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 83393: [1.5][javadoc] reference to vararg method also considers non-array type as correct
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83393"
-	 */
-	public void testBug83393a() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	public void foo(int a, int b) {} \n" + 
-				"	public void foo(int a, int... args) {}\n" + 
-				"	public void foo(String... args) {}\n" + 
-				"	public void foo(Exception str, boolean... args) {}\n" + 
-				"}\n",
-				"Valid.java",
-				"/**\n" + 
-				" * @see Test#foo(int, int)\n" + 
-				" * @see Test#foo(int, int[])\n" + 
-				" * @see Test#foo(int, int...)\n" + 
-				" * @see Test#foo(String[])\n" + 
-				" * @see Test#foo(String...)\n" + 
-				" * @see Test#foo(Exception, boolean[])\n" + 
-				" * @see Test#foo(Exception, boolean...)\n" + 
-				" */\n" + 
-				"public class Valid {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 3)\r\n" + 
-			"	public void foo(int a, int... args) {}\r\n" + 
-			"	                       ^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 4)\r\n" + 
-			"	public void foo(String... args) {}\r\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 5)\r\n" + 
-			"	public void foo(Exception str, boolean... args) {}\r\n" + 
-			"	                               ^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83393b() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	public void foo(int a, int b) {} \n" + 
-				"	public void foo(int a, int... args) {}\n" + 
-				"	public void foo(String... args) {}\n" + 
-				"	public void foo(Exception str, boolean... args) {}\n" + 
-				"}\n",
-				"Invalid.java",
-				"/**\n" + 
-				" * @see Test#foo(int)\n" + 
-				" * @see Test#foo(int, int, int)\n" + 
-				" * @see Test#foo()\n" + 
-				" * @see Test#foo(String)\n" + 
-				" * @see Test#foo(String, String)\n" + 
-				" * @see Test#foo(Exception)\n" + 
-				" * @see Test#foo(Exception, boolean)\n" + 
-				" * @see Test#foo(Exception, boolean, boolean)\n" + 
-				" */\n" + 
-				"public class Invalid {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 3)\n" + 
-			"	public void foo(int a, int... args) {}\n" + 
-			"	                       ^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 4)\n" + 
-			"	public void foo(String... args) {}\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 5)\n" + 
-			"	public void foo(Exception str, boolean... args) {}\n" + 
-			"	                               ^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, varargs are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Invalid.java (at line 2)\n" + 
-			"	* @see Test#foo(int)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(int, int) in the type Test is not applicable for the arguments (int)\n" + 
-			"----------\n" + 
-			"2. ERROR in Invalid.java (at line 3)\n" + 
-			"	* @see Test#foo(int, int, int)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(int, int) in the type Test is not applicable for the arguments (int, int, int)\n" + 
-			"----------\n" + 
-			"3. ERROR in Invalid.java (at line 4)\n" + 
-			"	* @see Test#foo()\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(String[]) in the type Test is not applicable for the arguments ()\n" + 
-			"----------\n" + 
-			"4. ERROR in Invalid.java (at line 5)\n" + 
-			"	* @see Test#foo(String)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(String[]) in the type Test is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"5. ERROR in Invalid.java (at line 6)\n" + 
-			"	* @see Test#foo(String, String)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(int, int) in the type Test is not applicable for the arguments (String, String)\n" + 
-			"----------\n" + 
-			"6. ERROR in Invalid.java (at line 7)\n" + 
-			"	* @see Test#foo(Exception)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean[]) in the type Test is not applicable for the arguments (Exception)\n" + 
-			"----------\n" + 
-			"7. ERROR in Invalid.java (at line 8)\n" + 
-			"	* @see Test#foo(Exception, boolean)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean[]) in the type Test is not applicable for the arguments (Exception, boolean)\n" + 
-			"----------\n" + 
-			"8. ERROR in Invalid.java (at line 9)\n" + 
-			"	* @see Test#foo(Exception, boolean, boolean)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean[]) in the type Test is not applicable for the arguments (Exception, boolean, boolean)\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 83804: [1.5][javadoc] Missing Javadoc node for package declaration
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83804"
-	 */
-	public void testBug83804() {
-		runNegativeTest(
-			new String[] {
-				"pack/package-info.java",
-				"/**\n" + 
-				" * Valid javadoc.\n" + 
-				" * @see Test\n" + 
-				" * @see Unknown\n" + 
-				" * @see Test#foo()\n" + 
-				" * @see Test#unknown()\n" + 
-				" * @see Test#field\n" + 
-				" * @see Test#unknown\n" + 
-				" * @param unexpected\n" + 
-				" * @throws unexpected\n" + 
-				" * @return unexpected \n" + 
-				" * @deprecated accepted by javadoc.exe although javadoc 1.5 spec does not say that's a valid tag\n" + 
-				" * @other-tags are valid\n" + 
-				" */\n" + 
-				"package pack;\n",
-				"pack/Test.java",
-				"/**\n" + 
-				" * Invalid javadoc\n" + 
-				" */\n" + 
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	public int field;\n" + 
-				"	public void foo() {}\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-
-	/**
-	 * Bug 95286: [1.5][javadoc] package-info.java incorrectly flags "Missing comment for public declaration"
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=95286"
-	 */
-	public void testBug95286_Default() {
-		this.reportMissingJavadocComments = CompilerOptions.ERROR;
-		this.reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
-		runConformTest(
-			new String[] {
-				"test/package-info.java",
-				"/**\n" + 
-				" * Javadoc for all package \n" + 
-				" */\n" + 
-				"package test;\n"
-			}
-		);
-	}
-	public void testBug95286_Private() {
-		this.reportMissingJavadocComments = CompilerOptions.ERROR;
-		this.reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/package-info.java",
-				"/**\n" + 
-				" * Javadoc for all package \n" + 
-				" */\n" + 
-				"package test;\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 95521: [1.5][javadoc] validation with @see tag not working for generic method
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=95521"
-	 */
-	public void testBug95521() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"\n" + 
-				"/** Test */\n" + 
-				"public class X implements I {\n" + 
-				"	/**\n" + 
-				"	 * @see test.I#foo(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-				"		return null;\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"/** Interface */\n" + 
-				"interface I {\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param stuffClass \n" + 
-				"     * @return stuff\n" + 
-				"     */\n" + 
-				"    public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-				"}\n" + 
-				"/** \n" + 
-				" * @param <T>\n" + 
-				" */\n" + 
-				"class G<T> {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	             ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	             ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	                          ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\X.java (at line 8)\n" + 
-			"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-			"	                          ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\X.java (at line 15)\n" + 
-			"	* @param <T>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"7. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	                            ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"9. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	                            ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"10. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	                                         ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"11. ERROR in test\\X.java (at line 19)\n" + 
-			"	public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-			"	                                         ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"12. ERROR in test\\X.java (at line 22)\n" + 
-			"	* @param <T>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"13. ERROR in test\\X.java (at line 24)\n" + 
-			"	class G<T> {}\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug95521b() {
-		runNegativeTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"\n" + 
-				"/** Test */\n" + 
-				"public class X {\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param classT \n" + 
-				"     */\n" + 
-				"	public <T> X(Class<T> classT) {\n" + 
-				"	}\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param classT\n" + 
-				"     * @return classT\n" + 
-				"     */\n" + 
-				"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-				"		return classT;\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"/** Super class */\n" + 
-				"class Y extends X {\n" + 
-				"	/**\n" + 
-				"	 * @see X#X(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"	public <T> Y(Class<T> classT) {\n" + 
-				"		super(classT);\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see X#foo(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"    public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-				"    	return null;\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in test\\X.java (at line 6)\n" + 
-			"	* @param <T>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\X.java (at line 9)\n" + 
-			"	public <T> X(Class<T> classT) {\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\X.java (at line 9)\n" + 
-			"	public <T> X(Class<T> classT) {\n" + 
-			"	                   ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\X.java (at line 9)\n" + 
-			"	public <T> X(Class<T> classT) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\X.java (at line 12)\n" + 
-			"	* @param <T>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"7. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	                 ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"8. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	                 ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"9. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	                              ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"10. ERROR in test\\X.java (at line 16)\n" + 
-			"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-			"	                              ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"11. ERROR in test\\X.java (at line 25)\n" + 
-			"	public <T> Y(Class<T> classT) {\n" + 
-			"	        ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"12. ERROR in test\\X.java (at line 25)\n" + 
-			"	public <T> Y(Class<T> classT) {\n" + 
-			"	                   ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"13. ERROR in test\\X.java (at line 25)\n" + 
-			"	public <T> Y(Class<T> classT) {\n" + 
-			"	                   ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"14. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	        ^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"15. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	                                ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"16. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	                                ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"17. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	                                             ^\n" + 
-			"Syntax error, parameterized types are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"18. ERROR in test\\X.java (at line 32)\n" + 
-			"	public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-			"	                                             ^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 96237: [javadoc] Inner types must be qualified
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=96237"
-	 */
-	public void testBug96237_Public01() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runConformTest(
-			new String[] {
-				"comment6/Valid.java",
-				"package comment6;\n" + 
-				"public class Valid {\n" + 
-				"    /**\n" + 
-				"     * @see Valid.Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Valid.Inner}\n" + 
-				" */\n" + 
-				"class Sub2 extends Valid { }"
-			}
-		);
-	}
-	public void testBug96237_Public02() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"comment6/Invalid.java",
-				"package comment6;\n" + 
-				"public class Invalid {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Inner} \n" + 
-				" */\n" + 
-				"class Sub1 extends Invalid { }\n"
-			},
-			//comment6\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6\\Invalid.java (at line 4)\r\n" + 
-			"	* @see Inner\r\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public03() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"comment6a/def/Test.java",
-				"package comment6a.def;\n" + 
-				"public class Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6a/test/Invalid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * See also {@link Inner}\n" + 
-				" */\n" + 
-				"public class Invalid extends Test { \n" + 
-				"}",
-				"comment6a/test/Invalid2.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Invalid2 extends Test { \n" + 
-				"}",
-				"comment6a/test/Valid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see comment6a.def.Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid extends Test { \n" + 
-				"}"
-			},
-			//comment6a\def\Test.java:6: warning - Tag @see: reference not found: Inner
-			//comment6a\test\Invalid.java:8: warning - Tag @link: reference not found: Inner
-			//comment6a\test\Invalid2.java:8: warning - Tag @see: reference not found: Test.Inner => bug ID: 4464323
-			"----------\n" + 
-			"1. ERROR in comment6a\\def\\Test.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in comment6a\\test\\Invalid.java (at line 4)\n" + 
-			"	* See also {@link Inner}\n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public04() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"comment6b/Invalid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" */\n" + 
-				"public class Invalid implements Test { \n" + 
-				"}",
-				"comment6b/Test.java",
-				"package comment6b;\n" + 
-				"public interface Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6b/Valid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid implements Test { \n" + 
-				"}"
-			},
-			//comment6b\Test.java:6: warning - Tag @see: reference not found: Inner
-			//comment6b\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6b\\Invalid.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in comment6b\\Test.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public05() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/a/Test.java",
-				"package test.a;\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	class Inner {}\n" + 
-				"}\n"
-			},
-			//test\a\Test.java:6: warning - Tag @see: reference not found: Inner
-			//test\a\Test.java:6: warning - Tag @see: reference not found: Test.Inner
-			"----------\n" + 
-			"1. ERROR in test\\a\\Test.java (at line 3)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\a\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner\n" + 
-			"	       ^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public06() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/b/Test.java",
-				"package test.b;\n" + 
-				"/** \n" + 
-				" * @see Inner.Level2\n" + 
-				" * @see Test.Inner.Level2\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	/** \n" + 
-				"	 * @see Level2\n" + 
-				"	 * @see Test.Inner.Level2\n" + 
-				"	 */\n" + 
-				"	public class Inner {\n" + 
-				"		class Level2 {}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//test\b\Test.java:6: warning - Tag @see: reference not found: Inner.Level2
-			//test\b\Test.java:6: warning - Tag @see: reference not found: Test.Inner.Level2
-			//test\b\Test.java:11: warning - Tag @see: reference not found: Level2
-			//test\b\Test.java:11: warning - Tag @see: reference not found: Test.Inner.Level2
-			"----------\n" + 
-			"1. ERROR in test\\b\\Test.java (at line 3)\n" + 
-			"	* @see Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\b\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\b\\Test.java (at line 8)\n" + 
-			"	* @see Level2\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\b\\Test.java (at line 9)\n" + 
-			"	* @see Test.Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public07() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/c/Test.java",
-				"package test.c;\n" + 
-				"/**\n" + 
-				" * @see Inner.Level2.Level3\n" + 
-				" * @see Test.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	public class Inner {\n" + 
-				"		/**\n" + 
-				"		 * @see Level3\n" + 
-				"		 * @see Level2.Level3\n" + 
-				"		 * @see Inner.Level2.Level3\n" + 
-				"		 * @see Test.Inner.Level2.Level3\n" + 
-				"		 */\n" + 
-				"		public class Level2 {\n" + 
-				"			class Level3 {\n" + 
-				"			}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//test\c\Test.java:6: warning - Tag @see: reference not found: Inner.Level2.Level3
-			//test\c\Test.java:6: warning - Tag @see: reference not found: Test.Inner.Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Inner.Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Test.Inner.Level2.Level3
-			"----------\n" + 
-			"1. ERROR in test\\c\\Test.java (at line 3)\n" + 
-			"	* @see Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\c\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\c\\Test.java (at line 9)\n" + 
-			"	* @see Level3\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\c\\Test.java (at line 10)\n" + 
-			"	* @see Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\c\\Test.java (at line 11)\n" + 
-			"	* @see Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\c\\Test.java (at line 12)\n" + 
-			"	* @see Test.Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public08() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/d/Reference.java",
-				"package test.d;\n" + 
-				"class Reference {\n" + 
-				"}\n",
-				"test/d/Test.java",
-				"package test.d;\n" + 
-				"/**\n" + 
-				" * @see Secondary\n" + 
-				" * @see Reference\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"}\n" + 
-				"class Secondary {}"
-			},
-			"----------\n" + 
-			"1. ERROR in test\\d\\Test.java (at line 3)\n" + 
-			"	* @see Secondary\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\d\\Test.java (at line 4)\n" + 
-			"	* @see Reference\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private01() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"comment6/Valid.java",
-				"package comment6;\n" + 
-				"public class Valid {\n" + 
-				"    /**\n" + 
-				"     * @see Valid.Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Valid.Inner}\n" + 
-				" */\n" + 
-				"class Sub2 extends Valid { }"
-			}
-		);
-	}
-	public void testBug96237_Private02() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6/Invalid.java",
-				"package comment6;\n" + 
-				"public class Invalid {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Inner} \n" + 
-				" */\n" + 
-				"class Sub1 extends Invalid { }\n"
-			},
-			//comment6\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			//comment6\Invalid.java:11: warning - Tag @link: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6\\Invalid.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in comment6\\Invalid.java (at line 9)\n" + 
-			"	* See also {@link Inner} \n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private03() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6a/def/Test.java",
-					"package comment6a.def;\n" + 
-				"public class Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6a/test/Invalid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * See also {@link Inner}\n" + 
-				" */\n" + 
-				"public class Invalid extends Test { \n" + 
-				"}",
-				"comment6a/test/Invalid2.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Invalid2 extends Test { \n" + 
-				"}",
-				"comment6a/test/Valid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see comment6a.def.Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid extends Test { \n" + 
-				"}"
-			},
-			//comment6a\def\Test.java:6: warning - Tag @see: reference not found: Inner
-			//comment6a\test\Invalid.java:8: warning - Tag @link: reference not found: Inner
-			//comment6a\test\Invalid2.java:8: warning - Tag @see: reference not found: Test.Inner => bug ID: 4464323
-			"----------\n" + 
-			"1. ERROR in comment6a\\def\\Test.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in comment6a\\test\\Invalid.java (at line 4)\n" + 
-			"	* See also {@link Inner}\n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private04() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6b/Invalid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" */\n" + 
-				"public class Invalid implements Test { \n" + 
-				"}",
-				"comment6b/Test.java",
-				"package comment6b;\n" + 
-				"public interface Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6b/Valid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid implements Test { \n" + 
-				"}"
-			},
-			//comment6b\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			//comment6b\Test.java:6: warning - Tag @see: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6b\\Invalid.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in comment6b\\Test.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private05() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/a/Test.java",
-				"package test.a;\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	class Inner {}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private06() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/b/Test.java",
-				"package test.b;\n" + 
-				"/** \n" + 
-				" * @see Inner.Level2\n" + 
-				" * @see Test.Inner.Level2\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	/** \n" + 
-				"	 * @see Level2\n" + 
-				"	 * @see Test.Inner.Level2\n" + 
-				"	 */\n" + 
-				"	public class Inner {\n" + 
-				"		class Level2 {}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private07() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/c/Test.java",
-				"package test.c;\n" + 
-				"/**\n" + 
-				" * @see Inner.Level2.Level3\n" + 
-				" * @see Test.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	public class Inner {\n" + 
-				"		/**\n" + 
-				"		 * @see Level3\n" + 
-				"		 * @see Level2.Level3\n" + 
-				"		 * @see Inner.Level2.Level3\n" + 
-				"		 * @see Test.Inner.Level2.Level3\n" + 
-				"		 */\n" + 
-				"		public class Level2 {\n" + 
-				"			class Level3 {\n" + 
-				"			}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private08() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/d/Reference.java",
-				"package test.d;\n" + 
-				"class Reference {\n" + 
-				"}\n",
-				"test/d/Test.java",
-				"package test.d;\n" + 
-				"/**\n" + 
-				" * @see Secondary\n" + 
-				" * @see Reference\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"}\n" + 
-				"class Secondary {}"
-			}
-		);
-	}
-
-	/**
-	 * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283"
-	 */
-	public void testBug101283a() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @param <T>  \n" + 
-				"	 * @param <F>\n" + 
-				"	 */\n" + 
-				"	static class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X<T, F> {\n" + 
-			"	               ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	* @param <T>  \n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	* @param <F>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	static class Entry<L, R> {\n" + 
-			"	                   ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283b() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see T Variable \n" + 
-				"	 * @see F Variable\n" + 
-				"	 */\n" + 
-				"	static class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X<T, F> {\n" + 
-			"	               ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	* @see T Variable \n" + 
-			"	       ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	* @see F Variable\n" + 
-			"	       ^\n" + 
-			"Javadoc: F cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	static class Entry<L, R> {\n" + 
-			"	                   ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283c() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @param <T>  \n" + 
-				"	 * @param <F>\n" + 
-				"	 */\n" + 
-				"	class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X<T, F> {\n" + 
-			"	               ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	* @param <T>  \n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	* @param <F>\n" + 
-			"	         ^^^\n" + 
-			"Javadoc: Invalid param tag name\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	class Entry<L, R> {\n" + 
-			"	            ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283d() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see T Variable \n" + 
-				"	 * @see F Variable\n" + 
-				"	 */\n" + 
-				"	class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X<T, F> {\n" + 
-			"	               ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	* @see T Variable \n" + 
-			"	       ^\n" + 
-			"Javadoc: T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	* @see F Variable\n" + 
-			"	       ^\n" + 
-			"Javadoc: F cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	class Entry<L, R> {\n" + 
-			"	            ^^^^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-	// Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error
-	public void testBug101283g() {
-		reportMissingJavadocTags = CompilerOptions.DISABLED;
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"public class X {\n" + 
-				"	int foo() { return 0; }\n" + 
-				"	class XX extends X2 {\n" + 
-				"		int bar() {\n" + 
-				"			return foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"class X2 {\n" + 
-				"	int foo() {\n" + 
-				"		return 0;\n" + 
-				"	}\n" + 
-				"}\n",
-				"test/Y.java",
-				"package test;\n" + 
-				"public class Y {\n" + 
-				"	int foo;\n" + 
-				"	class YY extends Y2 {\n" + 
-				"	/**\n" + 
-				"	 *  @see #foo\n" + 
-				"	 */\n" + 
-				"		int bar() {\n" + 
-				"			return foo;\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"class Y2 {\n" + 
-				"	int foo;\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 112346: [javadoc] {@inheritedDoc} should be inactive for non-overridden method
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=112346"
-	 */
-	public void testBug112346() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-				" * Test references\n" + 
-				" * @see Test#field\n" + 
-				" * @see Test#foo()\n" + 
-				" */\n" + 
-				"public class Test<T> {\n" + 
-				"	T field;\n" + 
-				"	T foo() { return null; }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Test#field\n" + 
-			"	            ^^^^^\n" + 
-			"Javadoc: field cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 4)\n" + 
-			"	* @see Test#foo()\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo() is undefined for the type Test\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 6)\n" + 
-			"	public class Test<T> {\n" + 
-			"	                  ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 7)\n" + 
-			"	T field;\n" + 
-			"	^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"5. ERROR in Test.java (at line 8)\n" + 
-			"	T foo() { return null; }\n" + 
-			"	^\n" + 
-			"T cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 119857: [javadoc] Some inner class references should be flagged as unresolved
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=119857"
-	 */
-	public void testBug119857() {
-		runNegativeTest(
-			new String[] {
-				"DefaultInformationControl.java",
-				"public class DefaultInformationControl {\n" + 
-				"	public interface IInformationPresenter {\n" + 
-				"		/**\n" + 
-				"		 * Updates the given presentation of the given information and\n" + 
-				"		 * thereby may manipulate the information to be displayed. The manipulation\n" + 
-				"		 * could be the extraction of textual encoded style information etc. Returns the\n" + 
-				"		 * manipulated information.\n" + 
-				"		 *\n" + 
-				"		 * @param hoverInfo the information to be presented\n" + 
-				"		 * @param maxWidth the maximal width in pixels\n" + 
-				"		 * @param maxHeight the maximal height in pixels\n" + 
-				"		 *\n" + 
-				"		 * @return the manipulated information\n" + 
-				"		 * @deprecated As of 3.2, replaced by {@link IInformationPresenterExtension#updatePresentation(String, int, int)}\n" + 
-				"		 * 				see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=38528 for details.\n" + 
-				"		 */\n" + 
-				"		String updatePresentation(String hoverInfo, int maxWidth, int maxHeight);\n" + 
-				"	}\n" + 
-				"	/**\n" + 
-				"	 * An information presenter determines the style presentation\n" + 
-				"	 * of information displayed in the default information control.\n" + 
-				"	 * The interface can be implemented by clients.\n" + 
-				"	 * \n" + 
-				"	 * @since 3.2\n" + 
-				"	 */\n" + 
-				"	public interface IInformationPresenterExtension {\n" + 
-				"		\n" + 
-				"		/**\n" + 
-				"		 * Updates the given presentation of the given information and\n" + 
-				"		 * thereby may manipulate the information to be displayed. The manipulation\n" + 
-				"		 * could be the extraction of textual encoded style information etc. Returns the\n" + 
-				"		 * manipulated information.\n" + 
-				"		 * <p>\n" + 
-				"		 * Replaces {@link IInformationPresenter#updatePresentation(String, int, int)}\n" + 
-				"		 * <em>Make sure that you do not pass in a <code>Display</code></em> until\n" + 
-				"		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=38528 is fixed.\n" + 
-				"		 * </p>\n" + 
-				"		 *\n" + 
-				"		 * @param hoverInfo the information to be presented\n" + 
-				"		 * @param maxWidth the maximal width in pixels\n" + 
-				"		 * @param maxHeight the maximal height in pixels\n" + 
-				"		 *\n" + 
-				"		 * @return the manipulated information\n" + 
-				"		 */\n" + 
-				"		String updatePresentation(String hoverInfo, int maxWidth, int maxHeight);\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in DefaultInformationControl.java (at line 14)\n" + 
-			"	* @deprecated As of 3.2, replaced by {@link IInformationPresenterExtension#updatePresentation(String, int, int)}\n" + 
-			"	                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in DefaultInformationControl.java (at line 34)\n" + 
-			"	* Replaces {@link IInformationPresenter#updatePresentation(String, int, int)}\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Fields() {
-		runNegativeTest(
-			new String[] {
-				"TestFields.java",
-				"/**\n" + 
-				" * @see MyInnerClass#foo\n" + 
-				" */\n" + 
-				"public class TestFields {\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerClass#foo\n" + 
-				"     */\n" + 
-				"    public class MyInnerClass {\n" + 
-				"            Object foo;\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in TestFields.java (at line 6)\n" + 
-			"	* @see MyInnerClass#foo\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Methods() {
-		runNegativeTest(
-			new String[] {
-				"TestMethods.java",
-				"/**\n" + 
-				" * @see MyInnerClass#foo()\n" + 
-				" * @see MyInnerInterface#foo()\n" + 
-				" */\n" + 
-				"public class TestMethods {\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerInterface#foo()\n" + 
-				"     */\n" + 
-				"    public class MyInnerClass {\n" + 
-				"            public void foo() {}\n" + 
-				"    }\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerClass#foo()\n" + 
-				"     */\n" + 
-				"    public interface MyInnerInterface {\n" + 
-				"            public void foo();\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in TestMethods.java (at line 7)\n" + 
-			"	* @see MyInnerInterface#foo()\n" + 
-			"	       ^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in TestMethods.java (at line 13)\n" + 
-			"	* @see MyInnerClass#foo()\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Types() {
-		runNegativeTest(
-			new String[] {
-				"TestTypes.java",
-				"/**\n" + 
-				" * @see MyInnerClass\n" + 
-				" * @see MyInnerInterface\n" + 
-				" */\n" + 
-				"public class TestTypes {\n" + 
-				"	/**\n" + 
-				"	 * @see MyInnerInterface\n" + 
-				"	 */\n" + 
-				"	public class MyInnerClass {\n" + 
-				"	        public void foo() {}\n" + 
-				"	}\n" + 
-				"	/**\n" + 
-				"	 * @see MyInnerClass\n" + 
-				"	 */\n" + 
-				"	public interface MyInnerInterface {\n" + 
-				"	        public void foo();\n" + 
-				"	}\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in TestTypes.java (at line 7)\n" + 
-			"	* @see MyInnerInterface\n" + 
-			"	       ^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n" + 
-			"2. ERROR in TestTypes.java (at line 13)\n" + 
-			"	* @see MyInnerClass\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Private01() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public Inner field;\n" + 
-				"	/** \n" + 
-				"	 * @see Inner#foo()\n" + 
-				"	 */\n" + 
-				"	public Object foo() {\n" + 
-				"		return field.foo();\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug119857_Public01() {
-		this.reportMissingJavadocTags = CompilerOptions.DISABLED;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public Inner field;\n" + 
-				"	/** \n" + 
-				"	 * @see Inner#foo()\n" + 
-				"	 */\n" + 
-				"	public Object foo() {\n" + 
-				"		return field.foo();\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//pack/Test.java:13: warning - Tag @see: reference not found: Inner1#foo()
-			"----------\n" + 
-			"1. ERROR in pack\\Test.java (at line 8)\r\n" + 
-			"	* @see Inner#foo()\r\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Private02() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"test/Test.java",
-				"package test;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//pack\Test2.java:11: warning - Tag @see: reference not found: Inner1#foo()
-			"----------\n" + 
-			"1. ERROR in test\\Test.java (at line 9)\r\n" + 
-			"	* @see Inner1#foo()\r\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Public02() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runConformTest(
-			new String[] {
-				"test/Test.java",
-				"package test;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug119857_Public03() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//pack/Test.java:13: warning - Tag @see: reference not found: Inner1#foo()
-			"----------\n" + 
-			"1. ERROR in pack\\Test.java (at line 9)\n" + 
-			"	* @see Inner1#foo()\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 145007: [1.5][javadoc] Generics + Inner Class -> Javadoc "missing @throws" warning
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=145007"
-	 */
-	public void testBug145007() {
-		runNegativeTest(
-			new String[] {
-				"TestClass.java",
-				"class TestClass<T> {\n" + 
-				"    static class Test1 {\n" + 
-				"        /**\n" + 
-				"         * A simple method that demonstrates tag problems\n" + 
-				"         * \n" + 
-				"         * @return a string\n" + 
-				"         * @throws MyException\n" + 
-				"         *             if something goes wrong\n" + 
-				"         */\n" + 
-				"        public String getString() throws MyException {\n" + 
-				"            throw new MyException();\n" + 
-				"        }\n" + 
-				"    }\n" + 
-				"\n" + 
-				"    static class MyException extends Exception {\n" + 
-				"        private static final long serialVersionUID = 1L;\n" + 
-				"    }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in TestClass.java (at line 1)\r\n" + 
-			"	class TestClass<T> {\r\n" + 
-			"	                ^\n" + 
-			"Syntax error, type parameters are only available if source level is 5.0\n" + 
-			"----------\n"
-		);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_5.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_5.java
deleted file mode 100644
index bd135cb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/JavadocTest_1_5.java
+++ /dev/null
@@ -1,2940 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavadocTest_1_5 extends JavadocTest {
-
-	String docCommentSupport = CompilerOptions.ENABLED;
-	String reportInvalidJavadoc = CompilerOptions.ERROR;
-	String reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-	String reportMissingJavadocTags = CompilerOptions.ERROR;
-	String reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
-	String reportMissingJavadocComments = null;
-	String reportMissingJavadocCommentsVisibility = null;
-
-	public JavadocTest_1_5(String name) {
-		super(name);
-	}
-
-	public static Class testClass() {
-		return JavadocTest_1_5.class;
-	}
-
-	// Use this static initializer to specify subset for tests
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_PREFIX = "testBug95521";
-//		TESTS_NAMES = new String[] { "testBug83127a" };
-//		TESTS_NUMBERS = new int[] { 101283 };
-//		TESTS_RANGE = new int[] { 23, -1 };
-	}
-	public static Test suite() {
-		return buildMinimalComplianceTestSuite(testClass(), F_1_5);
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_DocCommentSupport, this.docCommentSupport);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, reportInvalidJavadoc);
-		if (!CompilerOptions.IGNORE.equals(reportInvalidJavadoc)) {
-			options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, this.reportInvalidJavadocVisibility);
-		}
-		if (reportMissingJavadocComments != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportMissingJavadocComments);
-		else
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, reportInvalidJavadoc);
-		if (reportMissingJavadocCommentsVisibility != null) 
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsVisibility, reportMissingJavadocCommentsVisibility);
-		if (reportMissingJavadocTags != null)  {
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportMissingJavadocTags);
-			if (this.reportMissingJavadocTagsOverriding != null) {
-				options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsOverriding, reportMissingJavadocTagsOverriding);
-			}
-		} else {
-			options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, reportInvalidJavadoc);
-		}
-		options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
-//		options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-		options.put(CompilerOptions.OPTION_ReportDeprecation, CompilerOptions.ERROR);
-		return options;
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.docCommentSupport = CompilerOptions.ENABLED;
-		this.reportInvalidJavadoc = CompilerOptions.ERROR;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		this.reportMissingJavadocTags = CompilerOptions.ERROR;
-		this.reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
-		this.reportMissingJavadocComments = CompilerOptions.IGNORE;
-	}
-
-	/**
-	 * Test fix for bug 70891: [1.5][javadoc] Compiler should accept new 1.5 syntax for @param
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70891">70891</a>
-	 * These two tests fail for 1.5 source level but should pass for 1.3 or 1.4
-	 * @see JavadocTest_1_4
-	 */
-	/* (non-Javadoc)
-	 * Test @param for generic class type parameter
-	 */
-	public void test003() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <E> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			}
-		);
-	}
-	public void test004() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <E> Type extends RuntimeException\n" + 
-					"  */\n" + 
-					" public class X<E extends RuntimeException> {}"
-			}
-		);
-	}
-	public void test005() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			}
-		);
-	}
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E> Type parameter\n" + 
-					"  */\n" + 
-					" public class X {}",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n"
-		);
-	}
-	public void test007() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E> Type parameter\n" + 
-					"  */\n" + 
-					" public class X<E, F> {}",
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	public class X<E, F> {}\n" + 
-				"	                  ^\n" + 
-				"Javadoc: Missing tag for parameter F\n" + 
-				"----------\n"
-		);
-	}
-	public void test008() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: U cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	          ^\n" + 
-				"Javadoc: V cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-	public void test009() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  * @param <X> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: Parameter X is not declared\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: E cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-	public void test010() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Valid type parameter reference\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <T> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			}
-		);
-	}
-	public void test011() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: E cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: Duplicate tag for parameter\n" + 
-				"----------\n"
-		);
-	}
-	public void test012() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	                  ^\n" + 
-				"Javadoc: Missing tag for parameter U\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 4)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	                     ^\n" + 
-				"Javadoc: Missing tag for parameter V\n" + 
-				"----------\n"
-		);
-	}
-	public void test013() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	                  ^\n" + 
-				"Javadoc: Missing tag for parameter U\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	                     ^\n" + 
-				"Javadoc: Missing tag for parameter V\n" + 
-				"----------\n"
-		);
-	}
-	public void test014() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	                     ^\n" + 
-				"Javadoc: Missing tag for parameter V\n" + 
-				"----------\n"
-		);
-	}
-	public void test015() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n"
-		);
-	}
-	public void test016() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	                  ^\n" + 
-				"Javadoc: Missing tag for parameter U\n" + 
-				"----------\n"
-		);
-	}
-	public void test017() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <T> Type parameter 3\n" + 
-					"  * @param <U> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 6)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	                     ^\n" + 
-				"Javadoc: Missing tag for parameter V\n" + 
-				"----------\n"
-		);
-	}
-	public void test018() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 3\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	                  ^\n" + 
-				"Javadoc: Missing tag for parameter U\n" + 
-				"----------\n"
-		);
-	}
-	public void test019() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <X> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  * @param <E> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 2\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: Parameter X is not declared\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: E cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: Duplicate tag for parameter\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 9)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n"
-		);
-	}
-	public void test020() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Missing parameter name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V> {}\n" + 
-				"	               ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n"
-		);
-	}
-	public void test021() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference: compile error\n" + 
-					"  * @param <T> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, , V> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: V cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	          ^\n" + 
-				"Javadoc: U cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, , V> {}\n" + 
-				"	                  ^\n" + 
-				"Syntax error on token \",\", delete this token\n" + 
-				"----------\n"
-		);
-	}
-	public void test022() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-					" /**\n" + 
-					"  * Invalid type parameter reference: compile error\n" + 
-					"  * @param <T> Type parameter 2\n" + 
-					"  * @param <V> Type parameter 2\n" + 
-					"  * @param <U> Type parameter 1\n" + 
-					"  */\n" + 
-					" public class X<T, U, V extend Exception> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V extend Exception> {}\n" + 
-				"	                       ^^^^^^\n" + 
-				"Syntax error on token \"extend\", extends expected\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\n" + 
-				"	public class X<T, U, V extend Exception> {}\n" + 
-				"	                       ^^^^^^\n" + 
-				"extend cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-
-	/* (non-Javadoc)
-	 * Test @param for generic method type parameter
-	 */
-	public void test023() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <E> Type\n" + 
-					"	 */\n" + 
-					"	public <E> void foo() {}\n" +
-					"}"
-			}
-		);
-	}
-	public void test024() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <E> Type extends RuntimeException\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <E extends RuntimeException> void foo(int val, Object obj) {}\n" +
-					"}"
-			}
-		);
-	}
-	public void test025() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			}
-		);
-	}
-	public void test026() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <E> Type parameter\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <E> Type parameter\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n"
-		);
-	}
-	public void test027() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <E> Type parameter\n" + 
-					"	 */\n" + 
-					"	public <E, F> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	           ^\n" + 
-				"Javadoc: Missing tag for parameter F\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	                           ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	public <E, F> void foo(int val, Object obj) {}\n" + 
-				"	                                       ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test028() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 * @param xxx int\n" + 
-					"	 * @param Obj Object\n" + 
-					"	 */\n" + 
-					"	public <T> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: U cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 6)\n" + 
-				"	* @param <V> Type parameter 3\n" + 
-				"	          ^\n" + 
-				"Javadoc: V cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	* @param xxx int\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Parameter xxx is not declared\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	* @param Obj Object\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Parameter Obj is not declared\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 10)\n" + 
-				"	public <T> void foo(int val, Object obj) {}\n" + 
-				"	                        ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 10)\n" + 
-				"	public <T> void foo(int val, Object obj) {}\n" + 
-				"	                                    ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test029() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 * @param <X> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param <E> Type parameter 2\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: Parameter X is not declared\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: E cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-	public void test030() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Valid type parameter reference\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <T> Type parameter 1\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			}
-		);
-	}
-	public void test031() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	           ^\n" + 
-				"Javadoc: Missing tag for parameter U\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	              ^\n" + 
-				"Javadoc: Missing tag for parameter V\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 5)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test032() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <T> Type parameter 3\n" + 
-					"	 * @param val int\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 7)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	           ^\n" + 
-				"Javadoc: Missing tag for parameter U\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	              ^\n" + 
-				"Javadoc: Missing tag for parameter V\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 7)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test033() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param obj Object\n" + 
-					"	 * @param <U> Type parameter 3\n" + 
-					"	 * @param <V> Type parameter 3\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n"
-		);
-	}
-	public void test034() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <X> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param Object obj\n" + 
-					"	 * @param <E> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 2\n" + 
-					"	 * @param val int\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 6)\n" + 
-				"	* @param <X> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: Parameter X is not declared\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\n" + 
-				"	* @param Object obj\n" + 
-				"	         ^^^^^^\n" + 
-				"Javadoc: Parameter Object is not declared\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 9)\n" + 
-				"	* @param <E> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: E cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\n" + 
-				"	* @param <U> Type parameter 2\n" + 
-				"	          ^\n" + 
-				"Javadoc: Duplicate tag for parameter\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 11)\n" + 
-				"	* @param val int\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Duplicate tag for parameter\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 13)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n" + 
-				"7. ERROR in X.java (at line 13)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	public void test035() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 */\n" + 
-					"	public <T, U, V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 5)\n" + 
-				"	* @param\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Missing parameter name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	        ^\n" + 
-				"Javadoc: Missing tag for parameter T\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                              ^^^\n" + 
-				"Javadoc: Missing tag for parameter val\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 8)\n" + 
-				"	public <T, U, V> void foo(int val, Object obj) {}\n" + 
-				"	                                          ^^^\n" + 
-				"Javadoc: Missing tag for parameter obj\n" + 
-				"----------\n"
-		);
-	}
-	// TODO (david) recovery seems not to work properly here:
-	// we should have type parameters in method declaration.
-	public void test036() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference: compile error\n" + 
-					"	 * @param <T> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <T, , V> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 4)\n" + 
-				"	* @param <T> Type parameter 2\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 5)\n" + 
-				"	* @param <V> Type parameter 2\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 6)\n" + 
-				"	* @param <U> Type parameter 1\n" + 
-				"	   ^^^^^\n" + 
-				"Javadoc: Unexpected tag\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 10)\n" + 
-				"	public <T, , V> void foo(int val, Object obj) {}\n" + 
-				"	           ^\n" + 
-				"Syntax error on token \",\", delete this token\n" + 
-				"----------\n"
-		);
-	}
-	public void test037() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" public class X {\n" +
-					"	/**\n" + 
-					"	 * Invalid type parameter reference: compile error\n" + 
-					"	 * @param <T> Type parameter 2\n" + 
-					"	 * @param <V> Type parameter 2\n" + 
-					"	 * @param <U> Type parameter 1\n" + 
-					"	 * @param val int\n" + 
-					"	 * @param obj Object\n" + 
-					"	 */\n" + 
-					"	public <T, U, V extends Exceptions> void foo(int val, Object obj) {}\n" +
-					"}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 10)\n" + 
-				"	public <T, U, V extends Exceptions> void foo(int val, Object obj) {}\n" + 
-				"	                        ^^^^^^^^^^\n" + 
-				"Exceptions cannot be resolved to a type\n" + 
-				"----------\n"
-		);
-	}
-	public void test038() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param < Type\n" + 
-					"  * @param < Type for parameterization\n" + 
-					"  * @param <> Type\n" + 
-					"  * @param <?> Type\n" + 
-					"  * @param <*> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param < Type\n" + 
-				"	         ^^^^^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param < Type for parameterization\n" + 
-				"	         ^^^^^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <> Type\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <?> Type\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <*> Type\n" + 
-				"	         ^^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<E> {}\n" + 
-				"	               ^\n" + 
-				"Javadoc: Missing tag for parameter E\n" + 
-				"----------\n"
-		);
-	}
-	public void test039() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				" /**\n" + 
-					"  * Invalid type parameter reference\n" + 
-					"  * @param <E Type\n" + 
-					"  * @param E> Type\n" + 
-					"  * @param <<E> Type\n" + 
-					"  * @param <<<E> Type\n" + 
-					"  * @param <E>> Type\n" + 
-					"  */\n" + 
-					" public class X<E> {}"
-			},
-			"----------\n" + 
-				"1. ERROR in X.java (at line 3)\n" + 
-				"	* @param <E Type\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 4)\n" + 
-				"	* @param E> Type\n" + 
-				"	         ^^\n" + 
-				"Javadoc: Invalid param tag name\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 5)\n" + 
-				"	* @param <<E> Type\n" + 
-				"	         ^^^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"4. ERROR in X.java (at line 6)\n" + 
-				"	* @param <<<E> Type\n" + 
-				"	         ^^^^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"5. ERROR in X.java (at line 7)\n" + 
-				"	* @param <E>> Type\n" + 
-				"	         ^^^^\n" + 
-				"Javadoc: Invalid param tag type parameter name\n" + 
-				"----------\n" + 
-				"6. ERROR in X.java (at line 9)\n" + 
-				"	public class X<E> {}\n" + 
-				"	               ^\n" + 
-				"Javadoc: Missing tag for parameter E\n" + 
-				"----------\n"
-		);
-	}
-
-	public void test040() {
-		runConformReferenceTest(
-			new String[] {
-				"X.java",
-				"/**\n" +
-				" * @category\n" +
-				" */\n" +
-				"public class X {\n" +
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Test fix for bug 80257: [javadoc] Invalid missing reference warning on @see or @link tags
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=80257"
-	 */
-	public void testBug80257() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-				" * @see G#G(Object)\n" + 
-				" * @see G#G(Exception)\n" + 
-				" */\n" + 
-				"public class X extends G<Exception> {\n" + 
-				"	X(Exception exc) { super(exc);}\n" + 
-				"}\n" + 
-				"class G<E extends Exception> {\n" + 
-				"	G(E e) {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	* @see G#G(Object)\n" + 
-			"	         ^^^^^^^^^\n" + 
-			"Javadoc: The constructor G(Object) is undefined\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Test fix for bug 82514: [1.5][javadoc] Problem with generics in javadoc
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=82514"
-	 */
-	public void testBug82514() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class ComparableUtils {\n" + 
-				"   public static <T extends Comparable< ? super T>> int compareTo(final Object first, final Object firstPrime,  final Class<T> type) throws ClassCastException\n" + 
-				"    {\n" + 
-				"        return 0;\n" + 
-				"    }\n" + 
-				"    public static <X extends Comparable< ? super X>> int compareTo(final X first, final X firstPrime)\n" + 
-				"        throws ClassCastException\n" + 
-				"    {\n" + 
-				"        return 0;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"public final class X {  \n" + 
-				"	/** Tests the method{@link ComparableUtils#compareTo(Object, Object, Class)} and\n" + 
-				"	 *  {@link ComparableUtils#compareTo(Object, Object)}.\n" + 
-				"	 */\n" + 
-				"    public void testCompareTo() {}\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 6)\n" + 
-			"	public static <X extends Comparable< ? super X>> int compareTo(final X first, final X firstPrime)\n" + 
-			"	               ^\n" + 
-			"The type parameter X is hiding the type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 14)\n" + 
-			"	*  {@link ComparableUtils#compareTo(Object, Object)}.\n" + 
-			"	                          ^^^^^^^^^\n" + 
-			"Javadoc: Bound mismatch: The generic method compareTo(X, X) of type ComparableUtils is not applicable for the arguments (Object, Object). The inferred type Object is not a valid substitute for the bounded parameter <X extends Comparable<? super X>>\n" + 
-			"----------\n");
-	}
-
-	/**
-	 * Test fix for bug 83127: [1.5][javadoc][dom] Wrong / strange bindings for references in javadoc to methods with type variables as parameter types
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83127"
-	 */
-	public void testBug83127a() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Test#add(T) \n" + 
-				" * @see #add(T)\n" + 
-				" * @see Test#Test(T)\n" + 
-				" * @see #Test(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Test.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" */\n" + 
-				"public class Test<T> {\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Test#add(T) \n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method add(Object) in the type Test is not applicable for the arguments (T)\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see #add(T)\n" + 
-			"	        ^^^\n" + 
-			"Javadoc: The method add(Object) in the type Test is not applicable for the arguments (T)\n" + 
-			"----------\n" + 
-			"3. ERROR in Test.java (at line 4)\n" + 
-			"	* @see Test#Test(T)\n" + 
-			"	            ^^^^^^^\n" + 
-			"Javadoc: The constructor Test(T) is undefined\n" + 
-			"----------\n" + 
-			"4. ERROR in Test.java (at line 5)\n" + 
-			"	* @see #Test(T)\n" + 
-			"	        ^^^^^^^\n" + 
-			"Javadoc: The constructor Test(T) is undefined\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127b() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Sub#add(T)\n" + 
-				" * @see Sub#Sub(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Test.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" *     -> Do we need to change this as T natually resolved to TypeVariable?\n" + 
-				" *        As compiler raises a warning, it\'s perhaps not a problem now...\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Sub#add(T)\n" + 
-			"	           ^^^\n" + 
-			"Javadoc: The method add(Object) in the type Test is not applicable for the arguments (T)\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Sub#Sub(T)\n" + 
-			"	           ^^^^^^\n" + 
-			"Javadoc: The constructor Sub(T) is undefined\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127c() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"/** \n" + 
-				" * @see Sub#add(E) \n" + 
-				" * @see Sub#Sub(E)\n" + 
-				" *   - warning = \"E cannot be resolved to a type\"\n" + 
-				" *   - method binding = null\n" + 
-				" *   - parameter binding = null\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Sub#add(E) \n" + 
-			"	               ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Sub#Sub(E)\n" + 
-			"	               ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127d() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(E)\n" + 
-				" * @see Unrelated1#Unrelated1(E)\n" + 
-				" *   - warning = \"E cannot be resolved to a type\"\n" + 
-				" *   - method binding = null\n" + 
-				" *   - parameter binding = null\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(E)\n" + 
-			"	                      ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(E)\n" + 
-			"	                             ^\n" + 
-			"Javadoc: E cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127e() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Object)\n" + 
-				" * @see Unrelated1#Unrelated1(Object)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (Object)\"\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Object\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(Object)\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Number) in the type Unrelated1 is not applicable for the arguments (Object)\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(Object)\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor Unrelated1(Object) is undefined\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127f() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Number)\n" + 
-				" * @see Unrelated1#Unrelated1(Number)\n" + 
-				" *   - no warning\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Number\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug83127g() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated1.java",
-				"public class Unrelated1<E extends Number> {\n" + 
-				"	public Unrelated1(E e) {}\n" + 
-				"	public boolean add(E e) { return false; }\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated1#add(Integer)\n" + 
-				" * @see Unrelated1#Unrelated1(Integer)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (Integer)\"\n" + 
-				" *   - method binding = Unrelated1.add(Number)\n" + 
-				" *   - parameter binding = java.lang.Integer\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"	public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated1#add(Integer)\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Number) in the type Unrelated1 is not applicable for the arguments (Integer)\n" + 
-			"----------\n" + 
-			"2. ERROR in Test.java (at line 3)\n" + 
-			"	* @see Unrelated1#Unrelated1(Integer)\n" + 
-			"	                  ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: The constructor Unrelated1(Integer) is undefined\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug83127h() {
-		reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runNegativeTest(
-			new String[] {
-				"Unrelated2.java",
-				"public interface Unrelated2<E> {\n" + 
-				"	boolean add(E e);\n" + 
-				"}\n",
-				"Test.java",
-				"/** \n" + 
-				" * @see Unrelated2#add(T)\n" + 
-				" *   - warning = \"The method add(Object) in the type Test is not applicable for\n" + 
-				" *                the arguments (T)\"\n" + 
-				" *   - method binding = Unrelated2.add(Object)\n" + 
-				" *   - parameter binding = T of A\n" + 
-				" *     -> Do we need to change this as T natually resolved to TypeVariable?\n" + 
-				" *        As compiler raises a warning, it\'s perhaps not a problem now...\n" + 
-				" */\n" + 
-				"public class Test<T>{\n" + 
-				"	Test(T t) {}\n" + 
-				"    public boolean add(T t) {\n" + 
-				"        return true;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"class Sub<E extends Number> extends Test<E> {\n" + 
-				"	Sub (E e) {super(null);}\n" + 
-				"    public boolean add(E e) {\n" + 
-				"        if (e.doubleValue() > 0)\n" + 
-				"            return false;\n" + 
-				"        return super.add(e);\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 2)\n" + 
-			"	* @see Unrelated2#add(T)\n" + 
-			"	                  ^^^\n" + 
-			"Javadoc: The method add(Object) in the type Unrelated2 is not applicable for the arguments (T)\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 83393: [1.5][javadoc] reference to vararg method also considers non-array type as correct
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83393"
-	 */
-	public void testBug83393a() {
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	public void foo(int a, int b) {} \n" + 
-				"	public void foo(int a, int... args) {}\n" + 
-				"	public void foo(String... args) {}\n" + 
-				"	public void foo(Exception str, boolean... args) {}\n" + 
-				"}\n",
-				"Valid.java",
-				"/**\n" + 
-				" * @see Test#foo(int, int)\n" + 
-				" * @see Test#foo(int, int[])\n" + 
-				" * @see Test#foo(int, int...)\n" + 
-				" * @see Test#foo(String[])\n" + 
-				" * @see Test#foo(String...)\n" + 
-				" * @see Test#foo(Exception, boolean[])\n" + 
-				" * @see Test#foo(Exception, boolean...)\n" + 
-				" */\n" + 
-				"public class Valid {}\n"
-			}
-		);
-	}
-	public void testBug83393b() {
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	public void foo(int a, int b) {} \n" + 
-				"	public void foo(int a, int... args) {}\n" + 
-				"	public void foo(String... args) {}\n" + 
-				"	public void foo(Exception str, boolean... args) {}\n" + 
-				"}\n",
-				"Invalid.java",
-				"/**\n" + 
-				" * @see Test#foo(int)\n" + 
-				" * @see Test#foo(int, int, int)\n" + 
-				" * @see Test#foo()\n" + 
-				" * @see Test#foo(String)\n" + 
-				" * @see Test#foo(String, String)\n" + 
-				" * @see Test#foo(Exception)\n" + 
-				" * @see Test#foo(Exception, boolean)\n" + 
-				" * @see Test#foo(Exception, boolean, boolean)\n" + 
-				" */\n" + 
-				"public class Invalid {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Invalid.java (at line 2)\n" + 
-			"	* @see Test#foo(int)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(int, int...) in the type Test is not applicable for the arguments (int)\n" + 
-			"----------\n" + 
-			"2. ERROR in Invalid.java (at line 3)\n" + 
-			"	* @see Test#foo(int, int, int)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(int, int...) in the type Test is not applicable for the arguments (int, int, int)\n" + 
-			"----------\n" + 
-			"3. ERROR in Invalid.java (at line 4)\n" + 
-			"	* @see Test#foo()\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(String...) in the type Test is not applicable for the arguments ()\n" + 
-			"----------\n" + 
-			"4. ERROR in Invalid.java (at line 5)\n" + 
-			"	* @see Test#foo(String)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(String...) in the type Test is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"5. ERROR in Invalid.java (at line 6)\n" + 
-			"	* @see Test#foo(String, String)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(String...) in the type Test is not applicable for the arguments (String, String)\n" + 
-			"----------\n" + 
-			"6. ERROR in Invalid.java (at line 7)\n" + 
-			"	* @see Test#foo(Exception)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean...) in the type Test is not applicable for the arguments (Exception)\n" + 
-			"----------\n" + 
-			"7. ERROR in Invalid.java (at line 8)\n" + 
-			"	* @see Test#foo(Exception, boolean)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean...) in the type Test is not applicable for the arguments (Exception, boolean)\n" + 
-			"----------\n" + 
-			"8. ERROR in Invalid.java (at line 9)\n" + 
-			"	* @see Test#foo(Exception, boolean, boolean)\n" + 
-			"	            ^^^\n" + 
-			"Javadoc: The method foo(Exception, boolean...) in the type Test is not applicable for the arguments (Exception, boolean, boolean)\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 83804: [1.5][javadoc] Missing Javadoc node for package declaration
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83804"
-	 */
-	public void testBug83804() {
-		runNegativeTest(
-			new String[] {
-				"pack/package-info.java",
-				"/**\n" + 
-				" * Valid javadoc.\n" + 
-				" * @see Test\n" + 
-				" * @see Unknown\n" + 
-				" * @see Test#foo()\n" + 
-				" * @see Test#unknown()\n" + 
-				" * @see Test#field\n" + 
-				" * @see Test#unknown\n" + 
-				" * @param unexpected\n" + 
-				" * @throws unexpected\n" + 
-				" * @return unexpected \n" + 
-				" * @deprecated accepted by javadoc.exe although javadoc 1.5 spec does not say that's a valid tag\n" + 
-				" * @other-tags are valid\n" + 
-				" */\n" + 
-				"package pack;\n",
-				"pack/Test.java",
-				"/**\n" + 
-				" * Invalid javadoc\n" + 
-				" */\n" + 
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	public int field;\n" + 
-				"	public void foo() {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in pack\\package-info.java (at line 4)\n" + 
-			"	* @see Unknown\n" + 
-			"	       ^^^^^^^\n" + 
-			"Javadoc: Unknown cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"2. ERROR in pack\\package-info.java (at line 6)\n" + 
-			"	* @see Test#unknown()\n" + 
-			"	            ^^^^^^^\n" + 
-			"Javadoc: The method unknown() is undefined for the type Test\n" + 
-			"----------\n" + 
-			"3. ERROR in pack\\package-info.java (at line 8)\n" + 
-			"	* @see Test#unknown\n" + 
-			"	            ^^^^^^^\n" + 
-			"Javadoc: unknown cannot be resolved or is not a field\n" + 
-			"----------\n" + 
-			"4. ERROR in pack\\package-info.java (at line 9)\n" + 
-			"	* @param unexpected\n" + 
-			"	   ^^^^^\n" + 
-			"Javadoc: Unexpected tag\n" + 
-			"----------\n" + 
-			"5. ERROR in pack\\package-info.java (at line 10)\n" + 
-			"	* @throws unexpected\n" + 
-			"	   ^^^^^^\n" + 
-			"Javadoc: Unexpected tag\n" + 
-			"----------\n" + 
-			"6. ERROR in pack\\package-info.java (at line 11)\n" + 
-			"	* @return unexpected \n" + 
-			"	   ^^^^^^\n" + 
-			"Javadoc: Unexpected tag\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 95286: [1.5][javadoc] package-info.java incorrectly flags "Missing comment for public declaration"
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=95286"
-	 */
-	public void testBug95286_Default() {
-		this.reportMissingJavadocComments = CompilerOptions.ERROR;
-		this.reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
-		runConformTest(
-			new String[] {
-				"test/package-info.java",
-				"/**\n" + 
-				" * Javadoc for all package \n" + 
-				" */\n" + 
-				"package test;\n"
-			}
-		);
-	}
-	public void testBug95286_Private() {
-		this.reportMissingJavadocComments = CompilerOptions.ERROR;
-		this.reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/package-info.java",
-				"/**\n" + 
-				" * Javadoc for all package \n" + 
-				" */\n" + 
-				"package test;\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 95521: [1.5][javadoc] validation with @see tag not working for generic method
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=95521"
-	 */
-	public void testBug95521() {
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"\n" + 
-				"/** Test */\n" + 
-				"public class X implements I {\n" + 
-				"	/**\n" + 
-				"	 * @see test.I#foo(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"	public <T> G<T> foo(Class<T> stuffClass) {\n" + 
-				"		return null;\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"/** Interface */\n" + 
-				"interface I {\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param stuffClass \n" + 
-				"     * @return stuff\n" + 
-				"     */\n" + 
-				"    public <T extends Object> G<T> foo(Class<T> stuffClass);\n" + 
-				"}\n" + 
-				"/** \n" + 
-				" * @param <T>\n" + 
-				" */\n" + 
-				"class G<T> {}\n"
-			}
-		);
-	}
-	public void testBug95521b() {
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"\n" + 
-				"/** Test */\n" + 
-				"public class X {\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param classT \n" + 
-				"     */\n" + 
-				"	public <T> X(Class<T> classT) {\n" + 
-				"	}\n" + 
-				"    /**\n" + 
-				"     * @param <T>\n" + 
-				"     * @param classT\n" + 
-				"     * @return classT\n" + 
-				"     */\n" + 
-				"	public <T> Class<T> foo(Class<T> classT) {\n" + 
-				"		return classT;\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"/** Super class */\n" + 
-				"class Y extends X {\n" + 
-				"	/**\n" + 
-				"	 * @see X#X(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"	public <T> Y(Class<T> classT) {\n" + 
-				"		super(classT);\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see X#foo(java.lang.Class)\n" + 
-				"	 */\n" + 
-				"    public <T extends Object> Class<T> foo(Class<T> stuffClass) {\n" + 
-				"    	return null;\n" + 
-				"    }\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 96237: [javadoc] Inner types must be qualified
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=96237"
-	 */
-	public void testBug96237_Public01() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runConformTest(
-			new String[] {
-				"comment6/Valid.java",
-				"package comment6;\n" + 
-				"public class Valid {\n" + 
-				"    /**\n" + 
-				"     * @see Valid.Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Valid.Inner}\n" + 
-				" */\n" + 
-				"class Sub2 extends Valid { }"
-			}
-		);
-	}
-	public void testBug96237_Public02() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runConformTest(
-			new String[] {
-				"comment6/Invalid.java",
-				"package comment6;\n" + 
-				"public class Invalid {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Inner} \n" + 
-				" */\n" + 
-				"class Sub1 extends Invalid { }\n"
-			}
-		);
-	}
-	public void testBug96237_Public03() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"comment6a/def/Test.java",
-				"package comment6a.def;\n" + 
-				"public class Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6a/test/Invalid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * See also {@link Inner}\n" + 
-				" */\n" + 
-				"public class Invalid extends Test { \n" + 
-				"}",
-				"comment6a/test/Invalid2.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Invalid2 extends Test { \n" + 
-				"}",
-				"comment6a/test/Valid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see comment6a.def.Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid extends Test { \n" + 
-				"}"
-			},
-			//comment6a\test\Invalid.java:8: warning - Tag @link: reference not found: Inner
-			//comment6a\test\Invalid2.java:8: warning - Tag @see: reference not found: Test.Inner => bug ID: 4464323
-			"----------\n" + 
-			"1. ERROR in comment6a\\test\\Invalid.java (at line 4)\n" + 
-			"	* See also {@link Inner}\n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public04() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"comment6b/Invalid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" */\n" + 
-				"public class Invalid implements Test { \n" + 
-				"}",
-				"comment6b/Test.java",
-				"package comment6b;\n" + 
-				"public interface Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6b/Valid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid implements Test { \n" + 
-				"}"
-			},
-			//comment6b\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6b\\Invalid.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public05() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/a/Test.java",
-				"package test.a;\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	class Inner {}\n" + 
-				"}\n"
-			},
-			//test\a\Test.java:6: warning - Tag @see: reference not found: Inner
-			//test\a\Test.java:6: warning - Tag @see: reference not found: Test.Inner
-			"----------\n" + 
-			"1. ERROR in test\\a\\Test.java (at line 3)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\a\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner\n" + 
-			"	       ^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public06() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/b/Test.java",
-				"package test.b;\n" + 
-				"/** \n" + 
-				" * @see Inner.Level2\n" + 
-				" * @see Test.Inner.Level2\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	/** \n" + 
-				"	 * @see Level2\n" + 
-				"	 * @see Test.Inner.Level2\n" + 
-				"	 */\n" + 
-				"	public class Inner {\n" + 
-				"		class Level2 {}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//test\b\Test.java:6: warning - Tag @see: reference not found: Inner.Level2
-			//test\b\Test.java:6: warning - Tag @see: reference not found: Test.Inner.Level2
-			//test\b\Test.java:11: warning - Tag @see: reference not found: Level2
-			//test\b\Test.java:11: warning - Tag @see: reference not found: Test.Inner.Level2
-			"----------\n" + 
-			"1. ERROR in test\\b\\Test.java (at line 3)\n" + 
-			"	* @see Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\b\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\b\\Test.java (at line 8)\n" + 
-			"	* @see Level2\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\b\\Test.java (at line 9)\n" + 
-			"	* @see Test.Inner.Level2\n" + 
-			"	       ^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public07() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/c/Test.java",
-				"package test.c;\n" + 
-				"/**\n" + 
-				" * @see Inner.Level2.Level3\n" + 
-				" * @see Test.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	public class Inner {\n" + 
-				"		/**\n" + 
-				"		 * @see Level3\n" + 
-				"		 * @see Level2.Level3\n" + 
-				"		 * @see Inner.Level2.Level3\n" + 
-				"		 * @see Test.Inner.Level2.Level3\n" + 
-				"		 */\n" + 
-				"		public class Level2 {\n" + 
-				"			class Level3 {\n" + 
-				"			}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//test\c\Test.java:6: warning - Tag @see: reference not found: Inner.Level2.Level3
-			//test\c\Test.java:6: warning - Tag @see: reference not found: Test.Inner.Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Inner.Level2.Level3
-			//test\c\Test.java:14: warning - Tag @see: reference not found: Test.Inner.Level2.Level3
-			"----------\n" + 
-			"1. ERROR in test\\c\\Test.java (at line 3)\n" + 
-			"	* @see Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\c\\Test.java (at line 4)\n" + 
-			"	* @see Test.Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"3. ERROR in test\\c\\Test.java (at line 9)\n" + 
-			"	* @see Level3\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"4. ERROR in test\\c\\Test.java (at line 10)\n" + 
-			"	* @see Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"5. ERROR in test\\c\\Test.java (at line 11)\n" + 
-			"	* @see Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"6. ERROR in test\\c\\Test.java (at line 12)\n" + 
-			"	* @see Test.Inner.Level2.Level3\n" + 
-			"	       ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Public08() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"test/d/Reference.java",
-				"package test.d;\n" + 
-				"class Reference {\n" + 
-				"}\n",
-				"test/d/Test.java",
-				"package test.d;\n" + 
-				"/**\n" + 
-				" * @see Secondary\n" + 
-				" * @see Reference\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"}\n" + 
-				"class Secondary {}"
-			},
-			"----------\n" + 
-			"1. ERROR in test\\d\\Test.java (at line 3)\n" + 
-			"	* @see Secondary\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n" + 
-			"2. ERROR in test\\d\\Test.java (at line 4)\n" + 
-			"	* @see Reference\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"Javadoc: 'public' visibility for malformed doc comments hides this 'default' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private01() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"comment6/Valid.java",
-				"package comment6;\n" + 
-				"public class Valid {\n" + 
-				"    /**\n" + 
-				"     * @see Valid.Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Valid.Inner}\n" + 
-				" */\n" + 
-				"class Sub2 extends Valid { }"
-			}
-		);
-	}
-	public void testBug96237_Private02() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6/Invalid.java",
-				"package comment6;\n" + 
-				"public class Invalid {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n" + 
-				"/**\n" + 
-				" * See also {@link Inner} \n" + 
-				" */\n" + 
-				"class Sub1 extends Invalid { }\n"
-			},
-			//comment6\Invalid.java:11: warning - Tag @link: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6\\Invalid.java (at line 9)\n" + 
-			"	* See also {@link Inner} \n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private03() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6a/def/Test.java",
-				"package comment6a.def;\n" + 
-				"public class Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6a/test/Invalid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * See also {@link Inner}\n" + 
-				" */\n" + 
-				"public class Invalid extends Test { \n" + 
-				"}",
-				"comment6a/test/Invalid2.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Invalid2 extends Test { \n" + 
-				"}",
-				"comment6a/test/Valid.java",
-				"package comment6a.test;\n" + 
-				"import comment6a.def.Test;\n" + 
-				"/**\n" + 
-				" * @see comment6a.def.Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid extends Test { \n" + 
-				"}"
-			},
-			//comment6a\test\Invalid.java:8: warning - Tag @link: reference not found: Inner
-			//comment6a\test\Invalid2.java:8: warning - Tag @see: reference not found: Test.Inner => bug ID: 4464323
-			"----------\n" + 
-			"1. ERROR in comment6a\\test\\Invalid.java (at line 4)\n" + 
-			"	* See also {@link Inner}\n" + 
-			"	                  ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private04() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runNegativeTest(
-			new String[] {
-				"comment6b/Invalid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" */\n" + 
-				"public class Invalid implements Test { \n" + 
-				"}",
-				"comment6b/Test.java",
-				"package comment6b;\n" + 
-				"public interface Test {\n" + 
-				"    /**\n" + 
-				"     * @see Inner\n" + 
-				"     */\n" + 
-				"    public class Inner { }\n" + 
-				"}\n",
-				"comment6b/Valid.java",
-				"package comment6b;\n" + 
-				"\n" + 
-				"/**\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Valid implements Test { \n" + 
-				"}"
-			},
-			//comment6b\Invalid.java:6: warning - Tag @see: reference not found: Inner
-			"----------\n" + 
-			"1. ERROR in comment6b\\Invalid.java (at line 4)\n" + 
-			"	* @see Inner\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: Invalid member type qualification\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug96237_Private05() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/a/Test.java",
-				"package test.a;\n" + 
-				"/**\n" + 
-				" * @see Inner\n" + 
-				" * @see Test.Inner\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	class Inner {}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private06() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/b/Test.java",
-				"package test.b;\n" + 
-				"/** \n" + 
-				" * @see Inner.Level2\n" + 
-				" * @see Test.Inner.Level2\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	/** \n" + 
-				"	 * @see Level2\n" + 
-				"	 * @see Test.Inner.Level2\n" + 
-				"	 */\n" + 
-				"	public class Inner {\n" + 
-				"		class Level2 {}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private07() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/c/Test.java",
-				"package test.c;\n" + 
-				"/**\n" + 
-				" * @see Inner.Level2.Level3\n" + 
-				" * @see Test.Inner.Level2.Level3\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"	public class Inner {\n" + 
-				"		/**\n" + 
-				"		 * @see Level3\n" + 
-				"		 * @see Level2.Level3\n" + 
-				"		 * @see Inner.Level2.Level3\n" + 
-				"		 * @see Test.Inner.Level2.Level3\n" + 
-				"		 */\n" + 
-				"		public class Level2 {\n" + 
-				"			class Level3 {\n" + 
-				"			}\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug96237_Private08() {
-		this.reportInvalidJavadocVisibility = CompilerOptions.PRIVATE;
-		runConformTest(
-			new String[] {
-				"test/d/Reference.java",
-				"package test.d;\n" + 
-				"class Reference {\n" + 
-				"}\n",
-				"test/d/Test.java",
-				"package test.d;\n" + 
-				"/**\n" + 
-				" * @see Secondary\n" + 
-				" * @see Reference\n" + 
-				" */\n" + 
-				"public class Test {\n" + 
-				"}\n" + 
-				"class Secondary {}"
-			}
-		);
-	}
-
-	/**
-	 * Bug 101283: [1.5][javadoc] Javadoc validation raises missing implementation in compiler
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=101283"
-	 */
-	public void testBug101283a() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @param <T>  \n" + 
-				"	 * @param <F>\n" + 
-				"	 */\n" + 
-				"	static class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	* @param <T>  \n" + 
-			"	          ^\n" + 
-			"Javadoc: Parameter T is not declared\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	* @param <F>\n" + 
-			"	          ^\n" + 
-			"Javadoc: Parameter F is not declared\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 7)\n" + 
-			"	static class Entry<L, R> {\n" + 
-			"	                   ^\n" + 
-			"Javadoc: Missing tag for parameter L\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	static class Entry<L, R> {\n" + 
-			"	                      ^\n" + 
-			"Javadoc: Missing tag for parameter R\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283b() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see T Variable \n" + 
-				"	 * @see F Variable\n" + 
-				"	 */\n" + 
-				"	static class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	* @see T Variable \n" + 
-			"	       ^\n" + 
-			"Javadoc: Invalid reference\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	* @see F Variable\n" + 
-			"	       ^\n" + 
-			"Javadoc: Invalid reference\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 7)\n" + 
-			"	static class Entry<L, R> {\n" + 
-			"	                   ^\n" + 
-			"Javadoc: Missing tag for parameter L\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	static class Entry<L, R> {\n" + 
-			"	                      ^\n" + 
-			"Javadoc: Missing tag for parameter R\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283c() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @param <T>  \n" + 
-				"	 * @param <F>\n" + 
-				"	 */\n" + 
-				"	class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	* @param <T>  \n" + 
-			"	          ^\n" + 
-			"Javadoc: Parameter T is not declared\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	* @param <F>\n" + 
-			"	          ^\n" + 
-			"Javadoc: Parameter F is not declared\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 7)\n" + 
-			"	class Entry<L, R> {\n" + 
-			"	            ^\n" + 
-			"Javadoc: Missing tag for parameter L\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	class Entry<L, R> {\n" + 
-			"	               ^\n" + 
-			"Javadoc: Missing tag for parameter R\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283d() {
-		runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T, F> {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * @see T Variable \n" + 
-				"	 * @see F Variable\n" + 
-				"	 */\n" + 
-				"	class Entry<L, R> {\n" + 
-				"		// empty\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	* @see T Variable \n" + 
-			"	       ^\n" + 
-			"Javadoc: Invalid reference\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	* @see F Variable\n" + 
-			"	       ^\n" + 
-			"Javadoc: Invalid reference\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 7)\n" + 
-			"	class Entry<L, R> {\n" + 
-			"	            ^\n" + 
-			"Javadoc: Missing tag for parameter L\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 7)\n" + 
-			"	class Entry<L, R> {\n" + 
-			"	               ^\n" + 
-			"Javadoc: Missing tag for parameter R\n" + 
-			"----------\n"
-		);
-	}
-	// Verify duplicate test case: bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=102735
-	public void testBug101283e() {
-		reportMissingJavadocTags = CompilerOptions.DISABLED;
-		runNegativeTest(
-			new String[] {
-				"Test.java",
-				"public interface Test<V, R extends Component<?>, C extends\n" + 
-				"Test<V, R, C>> extends Control<SelectModel<V>, C>\n" + 
-				"{\n" + 
-				"	public interface ValueRepresentationStrategy<VV, RR extends Component<?>> extends ComponentFactory<VV, RR>\n" + 
-				"	{\n" + 
-				"		/**This value must be equal to the ID of the component returned by the {@link\n" + 
-				"		ComponentFactory#createComponent(V)} method.*/\n" + 
-				"		public String getID(final VV value);\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"class Component<T> {}\n" + 
-				"interface Control<U, V> {}\n" + 
-				"class SelectModel<V> {}\n" + 
-				"interface ComponentFactory <U, V> {\n" +
-				"	public void createComponent(V v);\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Test.java (at line 7)\n" + 
-			"	ComponentFactory#createComponent(V)} method.*/\n" + 
-			"	                                 ^\n" + 
-			"Javadoc: Cannot make a static reference to the non-static type variable V\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug101283f() {
-		reportMissingJavadocTags = CompilerOptions.DISABLED;
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"public interface Test<V, R extends Component<?>, C extends\n" + 
-				"Test<V, R, C>> extends Control<SelectModel<V>, C>\n" + 
-				"{\n" + 
-				"	public interface ValueRepresentationStrategy<VV, RR extends Component<?>> extends ComponentFactory<VV, RR>\n" + 
-				"	{\n" + 
-				"		/**This value must be equal to the ID of the component returned by the {@link\n" + 
-				"		ComponentFactory#createComponent(Object)} method.*/\n" + 
-				"		public String getID(final VV value);\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"class Component<T> {}\n" + 
-				"interface Control<U, V> {}\n" + 
-				"class SelectModel<V> {}\n" + 
-				"interface ComponentFactory <U, V> {\n" +
-				"	public void createComponent(V v);\n" +
-				"}\n"
-			}
-		);
-	}
-	// Verify that ProblemReasons.InheritedNameHidesEnclosingName is not reported as Javadoc error
-	public void testBug101283g() {
-		reportMissingJavadocTags = CompilerOptions.DISABLED;
-		runConformTest(
-			new String[] {
-				"test/X.java",
-				"package test;\n" + 
-				"public class X {\n" + 
-				"	int foo() { return 0; }\n" + 
-				"	class XX extends X2 {\n" + 
-				"		int bar() {\n" + 
-				"			return foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"class X2 {\n" + 
-				"	int foo() {\n" + 
-				"		return 0;\n" + 
-				"	}\n" + 
-				"}\n",
-				"test/Y.java",
-				"package test;\n" + 
-				"public class Y {\n" + 
-				"	int foo;\n" + 
-				"	class YY extends Y2 {\n" + 
-				"	/**\n" + 
-				"	 *  @see #foo\n" + 
-				"	 */\n" + 
-				"		int bar() {\n" + 
-				"			return foo;\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"class Y2 {\n" + 
-				"	int foo;\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 112346: [javadoc] {@inheritedDoc} should be inactive for non-overridden method
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=112346"
-	 */
-	public void testBug112346() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"Test.java",
-				"/**\n" + 
-				" * Test references\n" + 
-				" * @see Test#field\n" + 
-				" * @see Test#foo()\n" + 
-				" */\n" + 
-				"public class Test<T> {\n" + 
-				"	T field;\n" + 
-				"	T foo() { return null; }\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 119857: [javadoc] Some inner class references should be flagged as unresolved
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=119857"
-	 */
-	public void testBug119857() {
-		runConformTest(
-			new String[] {
-				"DefaultInformationControl.java",
-				"public class DefaultInformationControl {\n" + 
-				"	public interface IInformationPresenter {\n" + 
-				"		/**\n" + 
-				"		 * Updates the given presentation of the given information and\n" + 
-				"		 * thereby may manipulate the information to be displayed. The manipulation\n" + 
-				"		 * could be the extraction of textual encoded style information etc. Returns the\n" + 
-				"		 * manipulated information.\n" + 
-				"		 *\n" + 
-				"		 * @param hoverInfo the information to be presented\n" + 
-				"		 * @param maxWidth the maximal width in pixels\n" + 
-				"		 * @param maxHeight the maximal height in pixels\n" + 
-				"		 *\n" + 
-				"		 * @return the manipulated information\n" + 
-				"		 * @deprecated As of 3.2, replaced by {@link IInformationPresenterExtension#updatePresentation(String, int, int)}\n" + 
-				"		 * 				see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=38528 for details.\n" + 
-				"		 */\n" + 
-				"		String updatePresentation(String hoverInfo, int maxWidth, int maxHeight);\n" + 
-				"	}\n" + 
-				"	/**\n" + 
-				"	 * An information presenter determines the style presentation\n" + 
-				"	 * of information displayed in the default information control.\n" + 
-				"	 * The interface can be implemented by clients.\n" + 
-				"	 * \n" + 
-				"	 * @since 3.2\n" + 
-				"	 */\n" + 
-				"	public interface IInformationPresenterExtension {\n" + 
-				"		\n" + 
-				"		/**\n" + 
-				"		 * Updates the given presentation of the given information and\n" + 
-				"		 * thereby may manipulate the information to be displayed. The manipulation\n" + 
-				"		 * could be the extraction of textual encoded style information etc. Returns the\n" + 
-				"		 * manipulated information.\n" + 
-				"		 * <p>\n" + 
-				"		 * Replaces {@link IInformationPresenter#updatePresentation(String, int, int)}\n" + 
-				"		 * <em>Make sure that you do not pass in a <code>Display</code></em> until\n" + 
-				"		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=38528 is fixed.\n" + 
-				"		 * </p>\n" + 
-				"		 *\n" + 
-				"		 * @param hoverInfo the information to be presented\n" + 
-				"		 * @param maxWidth the maximal width in pixels\n" + 
-				"		 * @param maxHeight the maximal height in pixels\n" + 
-				"		 *\n" + 
-				"		 * @return the manipulated information\n" + 
-				"		 */\n" + 
-				"		String updatePresentation(String hoverInfo, int maxWidth, int maxHeight);\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug119857_Fields() {
-		runConformTest(
-			new String[] {
-				"TestFields.java",
-				"/**\n" + 
-				" * @see MyInnerClass#foo\n" + 
-				" */\n" + 
-				"public class TestFields {\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerClass#foo\n" + 
-				"     */\n" + 
-				"    public class MyInnerClass {\n" + 
-				"            Object foo;\n" + 
-				"    }\n" + 
-				"}"
-			}
-		);
-	}
-	public void testBug119857_Methods() {
-		runConformTest(
-			new String[] {
-				"TestMethods.java",
-				"/**\n" + 
-				" * @see MyInnerClass#foo()\n" + 
-				" * @see MyInnerInterface#foo()\n" + 
-				" */\n" + 
-				"public class TestMethods {\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerInterface#foo()\n" + 
-				"     */\n" + 
-				"    public class MyInnerClass {\n" + 
-				"            public void foo() {}\n" + 
-				"    }\n" + 
-				"    /**\n" + 
-				"     * @see MyInnerClass#foo()\n" + 
-				"     */\n" + 
-				"    public interface MyInnerInterface {\n" + 
-				"            public void foo();\n" + 
-				"    }\n" + 
-				"}"
-			}
-		);
-	}
-	public void testBug119857_Types() {
-		runConformTest(
-			new String[] {
-				"TestTypes.java",
-				"/**\n" + 
-				" * @see MyInnerClass\n" + 
-				" * @see MyInnerInterface\n" + 
-				" */\n" + 
-				"public class TestTypes {\n" + 
-				"	/**\n" + 
-				"	 * @see MyInnerInterface\n" + 
-				"	 */\n" + 
-				"	public class MyInnerClass {\n" + 
-				"	        public void foo() {}\n" + 
-				"	}\n" + 
-				"	/**\n" + 
-				"	 * @see MyInnerClass\n" + 
-				"	 */\n" + 
-				"	public interface MyInnerInterface {\n" + 
-				"	        public void foo();\n" + 
-				"	}\n" + 
-				"}"
-			}
-		);
-	}
-	public void testBug119857_Private01() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public Inner field;\n" + 
-				"	/** \n" + 
-				"	 * @see Inner#foo()\n" + 
-				"	 */\n" + 
-				"	public Object foo() {\n" + 
-				"		return field.foo();\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug119857_Public01() {
-		this.reportMissingJavadocTags = CompilerOptions.DISABLED;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public Inner field;\n" + 
-				"	/** \n" + 
-				"	 * @see Inner#foo()\n" + 
-				"	 */\n" + 
-				"	public Object foo() {\n" + 
-				"		return field.foo();\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//pack/Test.java:13: warning - Tag @see: reference not found: Inner1#foo()
-			"----------\n" + 
-			"1. ERROR in pack\\Test.java (at line 8)\r\n" + 
-			"	* @see Inner#foo()\r\n" + 
-			"	       ^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n"
-		);
-	}
-	public void testBug119857_Private02() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		runConformTest(
-			new String[] {
-				"test/Test.java",
-				"package test;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug119857_Public02() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runConformTest(
-			new String[] {
-				"test/Test.java",
-				"package test;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug119857_Public03() {
-		this.reportMissingJavadocTags = CompilerOptions.IGNORE;
-		this.reportInvalidJavadocVisibility = CompilerOptions.PUBLIC;
-		runNegativeTest(
-			new String[] {
-				"pack/Test.java",
-				"package pack;\n" + 
-				"public class Test {\n" + 
-				"	static class Inner1 {\n" + 
-				"		public Object foo() { return null; }\n" + 
-				"	}\n" + 
-				"	public static class Inner2 {\n" + 
-				"		public Inner1 field;\n" + 
-				"		/** \n" + 
-				"		 * @see Inner1#foo()\n" + 
-				"		 */\n" + 
-				"		public Object foo() {\n" + 
-				"			return field.foo();\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			//pack/Test.java:13: warning - Tag @see: reference not found: Inner1#foo()
-			"----------\n" + 
-			"1. ERROR in pack\\Test.java (at line 9)\n" + 
-			"	* @see Inner1#foo()\n" + 
-			"	       ^^^^^^\n" + 
-			"Javadoc: \'public\' visibility for malformed doc comments hides this \'default\' reference\n" + 
-			"----------\n"
-		);
-	}
-
-	/**
-	 * Bug 132430: [1.5][javadoc] Unwanted missing tag warning for overridden method with parameter containing type variable
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=132430"
-	 */
-	public void testBug132430() {
-		runConformTest(
-			new String[] {
-				"A.java",
-				"public class A<E> {\n" + 
-				"    /**\n" + 
-				"     * @param object\n" + 
-				"     */\n" + 
-				"    public void aMethod(E object) {}\n" + 
-				"}",
-				"B.java",
-				"public class B<E> extends A<E> {\n" + 
-				"	/**\n" + 
-				"	 * @see A#aMethod(java.lang.Object)\n" + 
-				"	 */\n" + 
-				"	@Override\n" + 
-				"	public void aMethod(E object) {\n" + 
-				"		super.aMethod(object);\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug132430b() {
-		runConformTest(
-			new String[] {
-				"A.java",
-				"public class A<E> {\n" + 
-				"    /**\n" + 
-				"     * @param object\n" + 
-				"     */\n" + 
-				"    public void aMethod(E object) {}\n" + 
-				"}",
-				"B.java",
-				"public class B<E> extends A<E> {\n" + 
-				"	/**\n" + 
-				"	 * @see A#aMethod(java.lang.Object)\n" + 
-				"	 */\n" + 
-				"	public void aMethod(E object) {\n" + 
-				"		super.aMethod(object);\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-	public void testBug132430c() {
-		runConformTest(
-			new String[] {
-				"A.java",
-				"public class A<E> {\n" + 
-				"    /**\n" + 
-				"     * @param object\n" + 
-				"     */\n" + 
-				"    public void aMethod(E object) {}\n" + 
-				"}",
-				"B.java",
-				"public class B<E> extends A<E> {\n" + 
-				"	/**\n" + 
-				"	 * Empty comment\n" + 
-				"	 */\n" + 
-				"	@Override\n" + 
-				"	public void aMethod(E object) {\n" + 
-				"		super.aMethod(object);\n" + 
-				"	}\n" + 
-				"}\n"
-			}
-		);
-	}
-
-	/**
-	 * Bug 145007: [1.5][javadoc] Generics + Inner Class -> Javadoc "missing @throws" warning
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=145007"
-	 */
-	public void testBug145007() {
-		runConformTest(
-			new String[] {
-				"TestClass.java",
-				"class TestClass<T> {\n" + 
-				"    static class Test1 {\n" + 
-				"        /**\n" + 
-				"         * A simple method that demonstrates tag problems\n" + 
-				"         * \n" + 
-				"         * @return a string\n" + 
-				"         * @throws MyException\n" + 
-				"         *             if something goes wrong\n" + 
-				"         */\n" + 
-				"        public String getString() throws MyException {\n" + 
-				"            throw new MyException();\n" + 
-				"        }\n" + 
-				"    }\n" + 
-				"    static class MyException extends Exception {\n" + 
-				"        private static final long serialVersionUID = 1L;\n" + 
-				"    }\n" + 
-				"}"
-			}
-		);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/LocalVariableTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/LocalVariableTest.java
deleted file mode 100644
index 99c434f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/LocalVariableTest.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-import junit.framework.Test;
-
-public class LocalVariableTest extends AbstractRegressionTest {
-	
-public LocalVariableTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-
-public void test001() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"        int foo(){\n" + 
-		"                int i;\n" + 
-		"                return 1;\n" + 
-		"        }\n" + 
-		"}\n",
-	});
-}
-public void test002() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    String temp;\n" + 
-		"    try {\n" + 
-		"      return;\n" + 
-		"    }\n" + 
-		"    catch (Exception e){\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-public void test003() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    String temp;\n" + 
-		"    try {\n" + 
-		"      return;\n" + 
-		"    }\n" + 
-		"    catch (Exception e) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-public void test004() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"     int i = 1;\n" + 
-		"    System.out.println(i);\n" + 
-		"  }\n" + 
-		"  X(int j){\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-public void test005() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int j;\n" + 
-		"  void f1() {\n" + 
-		"    int l;\n" + 
-		"    switch (j) {\n" + 
-		"      case 0 :\n" + 
-		"        l = 10;\n" + 
-		"		 l++;\n" + // at least one read usage
-		"        break;\n" + 
-		"      case 1 :\n" + 
-		"        l = 20;\n" + 
-		"        break;\n" + 
-		"      case 2 :\n" + 
-		"        l = 30;\n" + 
-		"        break;\n" + 
-		"      default :\n" + 
-		"        l = 10;\n" + 
-		"        break;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public static void main(String args[]) {\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test006() {
-	this.runConformTest(new String[] {
-		"p/Truc.java",
-		"package p;\n" + 
-		"public class Truc{\n" + 
-		"   void foo(){\n" + 
-		"      final int i; \n" +
-		"	   i = 1;\n" + 
-		"      if (false) i = 2;\n" + 
-		"   } \n" + 
-		"	public static void main(java.lang.String[] args) {\n" + 
-		"  		System.out.println(\"SUCCESS\"); \n" + 
-		"	}	\n" +
-		"}",
-	},
-	"SUCCESS");
-}
-
-public void test007() {
-	this.runConformTest(new String[] {
-		"p/A.java",
-		"package p;\n" + 
-		"import p.helper.Y;\n" + 
-		"class A extends Y {\n" + 
-		"  class Y {\n" + 
-		"    int j = i;// i is a protected member inherited from Y\n" + 
-		"  }\n" + 
-		"}",
-
-		"p/helper/Y.java",
-		"package p.helper;\n" + 
-		"public class Y {\n" + 
-		"  protected int i = 10;\n" + 
-		"  public inner in = new inner();\n" + 
-		"    \n" + 
-		"  protected class inner {\n" + 
-		"    public int  f() {\n" + 
-		"      return 20;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}",
-
-	});
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127078
-public void test008() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"	class Y {\n" + 
-			"		Y innerY;\n" + 
-			"\n" + 
-			"		int longMemberName;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	static public void main(String args[]) {\n" + 
-			"		Y y;\n" + 
-			"		System.out.println(y.innerY.longMemberName);\n" + 
-			"	}\n" + 
-			"}"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 10)\n" + 
-			"	System.out.println(y.innerY.longMemberName);\n" + 
-			"	                   ^\n" + 
-			"The local variable y may not have been initialized\n" + 
-			"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=127078
-public void test009() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"	class Y {\n" + 
-			"		int longMemberName;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	static public void main(String args[]) {\n" + 
-			"		Y y;\n" + 
-			"		System.out.println(y.longMemberName);\n" + 
-			"	}\n" + 
-			"}"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 8)\n" + 
-			"	System.out.println(y.longMemberName);\n" + 
-			"	                   ^\n" + 
-			"The local variable y may not have been initialized\n" + 
-			"----------\n");
-}
-public void test010() {
-	Map options = getCompilerOptions();
-	options.put(
-		CompilerOptions.OPTION_DocCommentSupport,
-		CompilerOptions.ENABLED);
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"/**\n" + 
-		" * @see Y\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}",
-		"p/Y.java",
-		"package p;\n" + 
-		"class Z {\n" + 
-		"}",
-	},
-	"",
-	null,
-	true,
-	null,
-	options,
-	null);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=144426
-public void test011() {
-	this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"        public static void main(String[] args) {\n" + 
-				"                int x = 2;\n" + 
-				"                if (true) {\n" + 
-				"                        int x = 4;\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\n" + 
-			"	int x = 4;\n" + 
-			"	    ^\n" + 
-			"Duplicate local variable x\n" + 
-			"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void test012() {
-	this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"        public static void main(String[] args) {\n" + 
-				"                int x = x = 0;\n" + 
-				"                if (true) {\n" + 
-				"                        int x = x = 1;\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 3)\n" + 
-			"	int x = x = 0;\n" + 
-			"	    ^^^^^^^^^\n" + 
-			"The assignment to variable x has no effect\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	int x = x = 1;\n" + 
-			"	    ^\n" + 
-			"Duplicate local variable x\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 5)\n" + 
-			"	int x = x = 1;\n" + 
-			"	    ^^^^^^^^^\n" + 
-			"The assignment to variable x has no effect\n" + 
-			"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858 - variation
-//check variable collision resiliance (catch argument)
-// variable collision should not interfere with exception collision
-public void test013() {
-	this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"        public static void main(String[] args) {\n" + 
-				"                int x = 2;\n" + 
-				"                try {\n" + 
-				"                	\n" + 
-				"                } catch(Exception x) {\n" + 
-				"                } catch(Exception e) {\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 6)\n" + 
-			"	} catch(Exception x) {\n" + 
-			"	                  ^\n" + 
-			"Duplicate parameter x\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 7)\n" + 
-			"	} catch(Exception e) {\n" + 
-			"	        ^^^^^^^^^\n" + 
-			"Unreachable catch block for Exception. It is already handled by the catch block for Exception\n" + 
-			"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858 - variation
-public void test014() {
-	this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void foo(){\n" + 
-				"		int x = 0;\n" + 
-				"		String x = \"\";\n" + 
-				"		x.toString();\n" + 
-				"	  }\n" +
-				"	}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	String x = \"\";\n" + 
-			"	       ^\n" + 
-			"Duplicate local variable x\n" + 
-			"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157379
-public void test015() {
-	Map options = getCompilerOptions();
-	if (this.complianceLevel.equals(COMPLIANCE_1_3)) return;
-	options.put(CompilerOptions.OPTION_PreserveUnusedLocal, CompilerOptions.OPTIMIZE_OUT);
-	this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"        public static boolean test() {\n" + 
-				"                boolean b = false;\n" + 
-				"                assert b = true;\n" + 
-				"                return false;\n" + 
-				"        }\n" + 
-				"        public static void main(String[] args) {\n" + 
-				"                test();\n" + 
-				"                System.out.println(\"SUCCESS\");\n" + 
-				"        }\n" + 
-				"}\n",
-			},
-			"SUCCESS",
-			null,
-			true,
-			null,
-			options,
-			null);
-}
-public static Class testClass() {
-	return LocalVariableTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/LookupTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/LookupTest.java
deleted file mode 100644
index 959fcc1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/LookupTest.java
+++ /dev/null
@@ -1,2702 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.io.File;
-import java.util.Hashtable;
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-/**
- * Name Lookup within Inner Classes
- * Creation date: (8/2/00 12:04:53 PM)
- * @author Dennis Conway
- */
-public class LookupTest extends AbstractRegressionTest {
-public LookupTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-/**
- * Non-static member class
- */
-public void test001() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A {									\n"+
-			"	private static int value = 23;					\n"+
-			"	class B {										\n"+
-			"		private int value;							\n"+
-			"		B (int val) {								\n"+
-			"			value = (A.value * 2) + val;			\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String args[]) {		\n"+
-			"		int result = new A().new B(12).value; 		\n"+
-			"		int expected = 58; 							\n"+
-			"		System.out.println( 						\n"+
-			"			result == expected 						\n"+
-			"				? \"SUCCESS\"  						\n"+
-			"				: \"FAILED : got \"+result+\" instead of \"+ expected); \n"+
-			"	}												\n"+
-			"}"
-		},
-		"SUCCESS"	
-	);									
-}
-/**
- * Attempt to access non-static field from static inner class (illegal)
- */
-public void test002() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"class A {											\n"+
-			"	private int value;								\n"+
-			"	static class B {								\n"+
-			"		B () {										\n"+
-			"			value = 2;								\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		B result = new B();							\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. WARNING in p1\\A.java (at line 3)\n" + 
-		"	private int value;								\n" + 
-		"	            ^^^^^\n" + 
-		"The field A.value is never read locally\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\A.java (at line 6)\n" + 
-		"	value = 2;								\n" + 
-		"	^^^^^\n" + 
-		"Cannot make a static reference to the non-static field value\n" + 
-		"----------\n");									
-}
-/**
- * Access static field from static inner class
- */
-public void test003() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A {									\n"+
-			"	private static int value;						\n"+
-			"	static class B {								\n"+
-			"		B () {										\n"+
-			"			value = 2;								\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		B result = new B();							\n"+
-			"		System.out.println(\"SUCCESS\");			\n"+
-			"	}												\n"+
-			"}",
-			"SUCCESS"
-		}
-	);									
-}
-/**
- * 
- */
-public void test004() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A {									\n"+
-			"	private String value;							\n"+
-			"	private A (String strIn) {						\n"+
-			"		value = new B(strIn, \"E\").str;			\n"+
-			"	}												\n"+
-			"	class B {										\n"+
-			"		String str;									\n"+
-			"			private B (String strFromA, String strIn)	{\n"+
-			"				str = strFromA + strIn + new C(\"S\").str;\n"+
-			"			}										\n"+
-			"		class C {									\n"+
-			"			String str;								\n"+
-			"			private C (String strIn) {				\n"+
-			"				str = strIn + new D(\"S\").str;		\n"+
-			"			}										\n"+
-			"			class D {								\n"+
-			"				String str;							\n"+
-			"				private D (String strIn) {			\n"+
-			"					str = strIn;					\n"+
-			"				}									\n"+
-			"			}										\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		System.out.println(new A(\"SUCC\").value);	\n"+
-			"	}												\n"+
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- * 
- */
-public void test005() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A {									\n"+
-			"	private static void doSomething(String showThis) {\n"+
-			"		System.out.print(showThis);					\n"+
-			"		return;										\n"+
-			"	}												\n"+
-			"	class B {										\n"+
-			"		void aMethod () {							\n"+
-			"			p1.A.doSomething(\"SUCC\");				\n"+
-			"			A.doSomething(\"ES\");					\n"+
-			"			doSomething(\"S\");						\n"+
-			"		}											\n"+		
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		B foo = new A().new B();					\n"+
-			"		foo.aMethod();								\n"+
-			"	}												\n"+
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- * jdk1.2.2 reports: No variable sucess defined in nested class p1.A. B.C.
- * jdk1.3 reports: success has private access in p1.A
- */
-public void test006() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"class A {											\n"+
-			"	private static String success = \"SUCCESS\";	\n"+
-			"	public interface B {							\n"+
-			"		public abstract void aTask();				\n"+
-			"		class C extends A implements B {			\n"+
-			"			public void aTask() {System.out.println(this.success);}\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String[] argv) {		\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. WARNING in p1\\A.java (at line 3)\n" + 
-		"	private static String success = \"SUCCESS\";	\n" + 
-		"	                      ^^^^^^^\n" + 
-		"The field A.success is never read locally\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\A.java (at line 7)\n" + 
-		"	public void aTask() {System.out.println(this.success);}\n" + 
-		"	                                             ^^^^^^^\n" + 
-		"The field A.success is not visible\n" + 
-		"----------\n");
-}
-/**
- * No errors in jdk1.2.2, jdk1.3
- */
-public void test007() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A {									\n"+
-			"	private static String success = \"SUCCESS\";	\n"+
-			"	public interface B {							\n"+
-			"		public abstract void aTask();				\n"+	
-			"		class C extends A implements B {			\n"+
-			"			public void aTask() {System.out.println(A.success);}\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String[] argv) {		\n"+
-			"	}												\n"+
-			"}"
-		}
-	);
-}
-/**
- * jdk1.2.2 reports: Undefined variable: A.this
- * jdk1.3 reports: non-static variable this cannot be referenced from a static context
- */
-public void test008() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"class A {											\n"+
-			"	private static String success = \"SUCCESS\";	\n"+
-			"	public interface B {							\n"+
-			"		public abstract void aTask();				\n"+	
-			"		class C extends A implements B {			\n"+
-			"			public void aTask() {System.out.println(A.this.success);}\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String[] argv) {		\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\A.java (at line 7)\n" + 
-		"	public void aTask() {System.out.println(A.this.success);}\n" + 
-		"	                                        ^^^^^^\n" + 
-		"No enclosing instance of the type A is accessible in scope\n" + 
-		"----------\n" + 
-		"2. WARNING in p1\\A.java (at line 7)\n" + 
-		"	public void aTask() {System.out.println(A.this.success);}\n" + 
-		"	                                               ^^^^^^^\n" + 
-		"The static field A.success should be accessed in a static way\n" + 
-		"----------\n"
-	);
-}
-/**
- * jdk1.2.2 reports: No variable success defined in nested class p1.A. B.C
- * jdk1.3 reports: success has private access in p1.A
- */
-public void test009() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"class A {											\n"+
-			"	private String success = \"SUCCESS\";			\n"+
-			"	public interface B {							\n"+
-			"		public abstract void aTask();				\n"+
-			"		class C extends A implements B {			\n"+
-			"			public void aTask() {System.out.println(this.success);}\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String[] argv) {		\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. WARNING in p1\\A.java (at line 3)\n" + 
-		"	private String success = \"SUCCESS\";			\n" + 
-		"	               ^^^^^^^\n" + 
-		"The field A.success is never read locally\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\A.java (at line 7)\n" + 
-		"	public void aTask() {System.out.println(this.success);}\n" + 
-		"	                                             ^^^^^^^\n" + 
-		"The field A.success is not visible\n" + 
-		"----------\n");
-}
-/**
- * jdk1.2.2 reports: Can't make a static reference to nonstatic variable success in class p1.A
- * jdk1.3 reports: non-static variable success cannot be referenced from a static context
- */
-public void test010() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"class A {											\n"+
-			"	private String success = \"SUCCESS\";			\n"+
-			"	public interface B {							\n"+
-			"		public abstract void aTask();				\n"+	
-			"		class C extends A implements B {			\n"+
-			"			public void aTask() {System.out.println(A.success);}\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String[] argv) {		\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. WARNING in p1\\A.java (at line 3)\n" + 
-		"	private String success = \"SUCCESS\";			\n" + 
-		"	               ^^^^^^^\n" + 
-		"The field A.success is never read locally\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\A.java (at line 7)\n" + 
-		"	public void aTask() {System.out.println(A.success);}\n" + 
-		"	                                        ^^^^^^^^^\n" + 
-		"Cannot make a static reference to the non-static field A.success\n" + 
-		"----------\n");
-}
-/**
- * 
- */
-public void test011() {
-	this.runNegativeTest(
-		new String[] {
-			/* p2.Aa */
-			"p2/Aa.java",
-			"package p2;										\n"+
-			"class Aa extends p1.A{								\n"+
-			"	class B implements p1.A.C {						\n"+
-			"	}												\n"+
-			"	public static void main (String args[]) {		\n"+
-			"	}												\n"+
-			"}",
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A {									\n"+
-			"   public A() {									\n"+
-			"	}												\n"+
-			"	class B implements C {							\n"+
-			"		public int sMethod() {						\n"+
-			"			return 23;								\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public interface C {							\n"+
-			"		public abstract int sMethod();				\n"+
-			"	}												\n"+
-			"}",
-
-		},
-		"----------\n" + 
-		"1. ERROR in p2\\Aa.java (at line 3)\n" + 
-		"	class B implements p1.A.C {						\n" + 
-		"	      ^\n" + 
-		"The type Aa.B must implement the inherited abstract method A.C.sMethod()\n" + 
-		"----------\n"
-	);
-}
-/**
- * 
- */
-public void test012() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A {									\n"+
-			"	public interface B {							\n"+
-			"		public abstract void aMethod (int A);		\n"+
-			"		public interface C {						\n"+
-			"			public abstract void anotherMethod();	\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public class aClass implements B, B.C {			\n"+
-			"		public void aMethod (int A) {				\n"+
-			"		}											\n"+
-			"		public void anotherMethod(){}				\n"+
-			"	}												\n"+
-			"   	public static void main (String argv[]) {	\n"+
-			"		System.out.println(\"SUCCESS\");			\n"+
-			"	}												\n"+
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- * 
- */
-public void test013() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A {									\n"+
-			"	public interface B {							\n"+
-			"		public abstract void aMethod (int A);		\n"+
-			"		public interface C {						\n"+
-			"			public abstract void anotherMethod(int A);\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public class aClass implements B, B.C {			\n"+
-			"		public void aMethod (int A) {				\n"+
-			"			public void anotherMethod(int A) {};	\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"   	public static void main (String argv[]) {	\n"+
-			"		System.out.println(\"SUCCESS\");			\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\A.java (at line 9)\n" + 
-		"	public class aClass implements B, B.C {			\n" + 
-		"	             ^^^^^^\n" + 
-		"The type A.aClass must implement the inherited abstract method A.B.C.anotherMethod(int)\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\A.java (at line 11)\n" + 
-		"	public void anotherMethod(int A) {};	\n" + 
-		"	                         ^\n" + 
-		"Syntax error on token \"(\", ; expected\n" + 
-		"----------\n" + 
-		"3. ERROR in p1\\A.java (at line 11)\n" + 
-		"	public void anotherMethod(int A) {};	\n" + 
-		"	                               ^\n" + 
-		"Syntax error on token \")\", ; expected\n" + 
-		"----------\n"
-	);
-}
-/**
- *
- */
-public void test014() {
-	this.runNegativeTest(
-		new String[] {
-			/* pack1.First */
-			"pack1/First.java",
-			"package pack1;										\n"+
-			"public class First {								\n"+
-			"	public static void something() {}				\n"+
-			"		class Inner {}								\n"+	
-			"	public static void main (String argv[]) {		\n"+
-			"		First.Inner foo = new First().new Inner();	\n"+
-			"		foo.something();							\n"+
-			"		System.out.println(\"SUCCESS\");			\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in pack1\\First.java (at line 7)\n" + 
-		"	foo.something();							\n" + 
-		"	    ^^^^^^^^^\n" + 
-		"The method something() is undefined for the type First.Inner\n" + 
-		"----------\n"
-	);
-}
-/**
- *
- */
-public void test015() {
-	this.runConformTest(
-		new String[] {
-			/* pack1.First */
-			"pack1/First.java",
-			"package pack1;										\n"+
-			"public class First {								\n"+
-			"		class Inner {								\n"+
-			"			public void something() {}				\n"+
-			"		}											\n"+	
-			"	public static void main (String argv[]) {		\n"+
-			"		First.Inner foo = new First().new Inner();	\n"+
-			"		foo.something();							\n"+
-			"		System.out.println(\"SUCCESS\");			\n"+
-			"	}												\n"+
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- *
- */
-public void test016() {
-	this.runConformTest(
-		new String[] {
-			/* pack1.Outer */
-			"pack1/Outer.java",
-			"package pack1;										\n"+
-			"import pack2.*;									\n"+
-			"public class Outer {								\n"+
-			"	int time, distance;								\n"+
-			"	public Outer() {								\n"+
-			"	}												\n"+
-			"	public Outer(int d) {							\n"+
-			"		distance = d;								\n"+
-			"	}												\n"+
-			"	public void aMethod() {							\n"+
-			"		this.distance *= 2;							\n"+
-			"		return;										\n"+
-			"	}												\n"+
-			"}",
-			/* pack2.OuterTwo */
-			"pack2/OuterTwo.java",
-			"package pack2;										\n"+
-			"import pack1.*;									\n"+
-			"public class OuterTwo extends Outer {				\n"+
-			"	public OuterTwo(int bar) {						\n"+
-			"		Outer A = new Outer(3) {					\n"+
-			"			public void bMethod(){					\n"+
-			"				final class X {						\n"+
-			"					int price;						\n"+
-			"					public X(int inp) {				\n"+
-			"						price = inp + 32;			\n"+
-			"					}								\n"+
-			"				}									\n"+
-			"			}										\n"+
-			"		};											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		System.out.println(\"\");					\n"+
-			"		OuterTwo foo = new OuterTwo(12);			\n"+
-			"		Outer bar = new Outer(8);					\n"+
-			"	}												\n"+
-			"}"
-		}
-	);
-}
-/**
- *
- */
-public void test017() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A	{									\n"+
-			"	int value;										\n"+
-			"	public A(B bVal) {								\n"+
-			"		bVal.sval += \"V\";							\n"+
-			"	}												\n"+
-			"	static class B {								\n"+
-			"		public static String sval;					\n"+
-			"		public void aMethod() {						\n"+
-			"			sval += \"S\";							\n"+
-			"			A bar = new A(this);					\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		B foo = new B();							\n"+
-			"		foo.sval = \"U\";							\n"+
-			"		foo.aMethod();								\n"+
-			"		System.out.println(foo.sval);				\n"+
-			"	}												\n"+
-			"}"
-		},
-		"USV"
-	);
-}
-/**
- * member class
- */
-public void test018() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A	{									\n"+
-			"	private String rating;							\n"+
-			"	public class B {								\n"+
-			"		String rating;								\n"+
-			"		public B (A sth) {							\n"+
-			"			sth.rating = \"m\";						\n"+
-			"			rating = \"er\";						\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		A foo = new A();							\n"+
-			"		foo.rating = \"o\";							\n"+
-			"		B bar = foo.new B(foo);						\n"+
-			"		System.out.println(foo.rating + bar.rating);\n"+
-			"	}												\n"+
-			"}"
-		},
-		"mer"
-	);
-}
-/**
- * member class
- */
-public void test019() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A	{									\n"+
-			"	private String rating;							\n"+
-			"	public void setRating(A sth, String setTo) {	\n"+
-			"		sth.rating = setTo;							\n"+
-			"		return;										\n"+
-			"	}												\n"+
-			"	public class B {								\n"+
-			"		public B (A sth) {							\n"+
-			"			setRating(sth, \"m\");					\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		A foo = new A();							\n"+
-			"		foo.rating = \"o\";							\n"+
-			"		B bar = foo.new B(foo);						\n"+
-			"		System.out.println(foo.rating + bar.other);	\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\A.java (at line 17)\n" + 
-		"	System.out.println(foo.rating + bar.other);	\n" + 
-		"	                                ^^^^^^^^^\n" + 
-		"bar.other cannot be resolved or is not a field\n" + 
-		"----------\n"
-	);
-}
-/**
- * member class
- */
-public void test020() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A	{									\n"+
-			"	private String rating;							\n"+
-			"	public class B {								\n"+
-			"		public B (A sth) {							\n"+
-			"			sth.rating = \"m\";						\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		A foo = new A();							\n"+
-			"		foo.rating = \"o\";							\n"+
-			"		B bar = foo.new B(foo);						\n"+
-			"		System.out.println(foo.rating + bar.other);	\n"+
-			"	}												\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. WARNING in p1\\A.java (at line 6)\n" + 
-		"	sth.rating = \"m\";						\n" + 
-		"	    ^^^^^^\n" + 
-		"Write access to enclosing field A.rating is emulated by a synthetic accessor method. Increasing its visibility will improve your performance\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\A.java (at line 13)\n" + 
-		"	System.out.println(foo.rating + bar.other);	\n" + 
-		"	                                ^^^^^^^^^\n" + 
-		"bar.other cannot be resolved or is not a field\n" + 
-		"----------\n"
-	);
-}
-/**
- * member class
- */
-public void test021() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"public class A	{									\n"+
-			"	private String rating;							\n"+
-			"	public class B {								\n"+
-			"		public B (A sth) {							\n"+
-			"			sth.rating = \"m\";						\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		A foo = new A();							\n"+
-			"		foo.rating = \"o\";							\n"+
-			"		B bar = foo.new B(foo);						\n"+
-			"		System.out.println(foo.rating);				\n"+
-			"	}												\n"+
-			"}"
-		}
-	);
-}
-/**
- *
- */
-public void test022() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;										\n"+
-			"import p2.*;										\n"+
-			"public class A {									\n"+
-			"	public int aValue;								\n"+
-			"	public A() {}									\n"+
-			"	public static class C extends A {				\n"+
-			"		public String aString;						\n"+
-			"		public C() {								\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"}",
-			/* p2.B */
-			"p2/B.java",
-			"package p2;										\n"+
-			"import p1.*;										\n"+
-			"public class B extends A.C {						\n"+
-			"	public B() {}									\n"+
-			"	public class D extends A {						\n"+
-			"		public D() {								\n"+
-			"			C val2 = new C();						\n"+
-			"			val2.aString = \"s\";					\n"+
-			"			A val = new A();						\n"+
-			"			val.aValue = 23;						\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"	public static void main (String argv[]) {		\n"+
-			"		D foo = new B().new D();					\n"+
-			"	}												\n"+
-			"}"
-		}
-	);
-}
-/**
- *
- */
-public void test023() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;\n"+
-			"public class A implements B {						\n"+
-			"}													\n"+
-			"interface B {										\n"+
-			"	public class A implements B {					\n"+
-			"		public static void main (String argv[]) {	\n"+
-			"			class Ba {								\n"+
-			"				int time;							\n"+
-			"			}										\n"+
-			"			Ba foo = new Ba();						\n"+
-			"			foo.time = 3;							\n"+
-			"		}											\n"+
-			"		interface C {								\n"+
-			"		}											\n"+
-			"		interface Bb extends C {					\n"+
-			"		}											\n"+
-			"	}												\n"+
-			"}"
-		}
-	);
-}
-/**
- *
- */
-public void test024() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;									\n"+
-			"public class A {								\n"+
-			"	protected static String bleh;				\n"+
-			"	interface B {								\n"+
-			"		public String bleh();					\n"+
-			"		class C{								\n"+
-			"			public String bleh() {return \"B\";}\n"+
-			"		}										\n"+
-			"	}											\n"+
-			"	class C implements B {						\n"+
-			"		public String bleh() {return \"A\";}	\n"+
-			"	}											\n"+
-			"	public static void main(String argv[]) {	\n"+
-			"		C foo = new A().new C();				\n"+
-			"	}											\n"+
-			"}"
-		}
-	);
-}
-/**
- *
- */
-public void test025() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;								\n"+
-			"import p2.*;								\n"+
-			"public class A {							\n"+
-			"	public static class B {					\n"+
-			"		public static int B;				\n"+
-			"	}										\n"+
-			"	public static void main(String argv[]) {\n"+
-			"		B foo = new A.B();					\n"+
-			"		B bar = new B();					\n"+
-			"		foo.B = 2;							\n"+
-			"		p2.B bbar = new p2.B();				\n"+
-			"		if (bar.B == 35) {					\n"+
-			"			System.out.println(\"SUCCESS\");\n"+
-			"		}									\n"+
-			"		else {								\n"+
-			"			System.out.println(bar.B);		\n"+
-			"		}									\n"+
-			"	}										\n"+
-			"}",
-			"p2/B.java",
-			"package p2;								\n"+
-			"import p1.*;								\n"+
-			"public class B extends A {					\n"+
-			"	public B() {							\n"+
-			"		A.B bleh = new A.B();				\n"+
-			"		bleh.B = 35;						\n"+
-			"	}										\n"+
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- *
- */
-public void test026() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;								\n"+
-			"public class A {							\n"+
-			"	public static class B {					\n"+
-			"		protected static int B;				\n"+
-			"	}										\n"+
-			"	public static void main(String argv[]) {\n"+
-			"		B foo = new A.B();					\n"+
-			"		B bar = new B();					\n"+
-			"		B.B = 2;							\n"+
-			"		p2.B bbar = new p2.B();				\n"+
-			"		if (B.B == 35) {					\n"+
-			"			System.out.println(\"SUCCESS\");\n"+
-			"		}									\n"+
-			"		else {								\n"+
-			"			System.out.println(B.B);		\n"+
-			"		}									\n"+
-			"	}										\n"+
-			"}",
-			"p2/B.java",
-			"package p2;								\n"+
-			"import p1.*;								\n"+
-			"public class B extends A {					\n"+
-			"	public B() {							\n"+
-			"		A.B bleh = new A.B();				\n"+
-			"		bleh.B = 35;						\n"+
-			"	}										\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in p2\\B.java (at line 6)\n" + 
-		"	bleh.B = 35;						\n" + 
-		"	     ^\n" + 
-		"The field A.B.B is not visible\n" + 
-		"----------\n");
-}
-/**
- *
- */
-public void test027() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;								\n"+
-			"public class A {							\n"+
-			"	protected static class B {				\n"+
-			"		public static int B;				\n"+
-			"	}										\n"+
-			"	public static void main(String argv[]) {\n"+
-			"		B foo = new A.B();					\n"+
-			"		B bar = new B();					\n"+
-			"		B.B = 2;							\n"+
-			"		p2.B bbar = new p2.B();				\n"+
-			"		if (B.B == 35) {					\n"+
-			"			System.out.println(\"SUCCESS\");\n"+
-			"		}									\n"+
-			"		else {								\n"+
-			"			System.out.println(B.B);		\n"+
-			"		}									\n"+
-			"	}										\n"+
-			"}",
-			"p2/B.java",
-			"package p2;								\n"+
-			"import p1.*;								\n"+
-			"public class B extends A {					\n"+
-			"	public B() {							\n"+
-			"		A.B bleh = new A.B();				\n"+
-			"		A.B.B = 35;						\n"+
-			"	}										\n"+
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in p2\\B.java (at line 5)\n" + 
-		"	A.B bleh = new A.B();				\n" + 
-		"	           ^^^^^^^^^\n" + 
-		"The constructor A.B() is not visible\n" + 
-		"----------\n"
-	);
-}
-/**
- *
- */
-public void test028() {
-	this.runConformTest(
-		new String[] {
-			/* p1.A */
-			"p1/A.java",
-			"package p1;									\n"+
-			"public class A {								\n"+
-			"	static class B {							\n"+
-			"		public static class C {					\n"+
-			"			private static int a;				\n"+
-			"			private int b;						\n"+
-			"		}										\n"+
-			"	}											\n"+
-			"	class D extends B {							\n"+
-			"		int j = p1.A.B.C.a;						\n"+
-			"	}											\n"+
-			"	public static void main (String argv[]) {	\n"+
-			"		System.out.println(\"SUCCESS\");		\n"+
-			"	}											\n"+
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=10634
- */
-public void test029() {
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"import p2.Top;	\n"+
-			"public class X extends Top {	\n"+
-			"	Member field;	\n"+
-			"}	\n",
-			"p2/Top.java",
-			"package p2;	\n"+
-			"public class Top {	\n"+
-			"	class Member {	\n"+
-			"		void foo(){}	\n"+
-			"	}	\n"	+
-			"}	\n"	
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 4)\n" + 
-		"	Member field;	\n" + 
-		"	^^^^^^\n" + 
-		"The type Member is not visible\n" + 
-		"----------\n");
-}
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11435
- * 1.3 compiler must accept classfiles without abstract method (target >=1.2)
- */
-public void test030() {
-
-	Hashtable target1_2 = new Hashtable();
-	target1_2.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_2);
-	
-	this.runConformTest(
-		new String[] {
-			"p1/A.java",
-			"package p1; \n"+
-			"public abstract class A implements I {	\n" +
-			"  public static void main(String[] args) {	\n" +
-			"    System.out.println(\"SUCCESS\");	\n" +			
-			"  }	\n" +
-			"} \n" +
-			"interface I {	\n" +
-			"	void foo();	\n" +
-			"}	\n",
-		},
-		"SUCCESS", // expected output
-		null, // custom classpath
-		true, // flush previous output dir content
-		null, // special vm args
-		target1_2,  // custom options
-		null/*no custom requestor*/);
-
-	this.runConformTest(
-		new String[] {
-			"p1/C.java",
-			"package p1; \n"+
-			"public class C {	\n" +
-			"	void bar(A a){ \n" +
-			"		a.foo();	\n" +
-			"	}	\n" +
-			"  public static void main(String[] args) {	\n" +
-			"    System.out.println(\"SUCCESS\");	\n" +			
-			"  }	\n" +
-			"} \n"
-		},
-		"SUCCESS", // expected output
-		null, // custom classpath
-		false, // flush previous output dir content
-		null, // special vm args
-		null,  // custom options
-		null/*no custom requestor*/);
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - must filter abstract methods when searching concrete methods
- */
-public void test031() {
-
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X extends AbstractY {	\n"+
-			"	public void init() {	\n"+
-			"		super.init();	\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().init();	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"abstract class AbstractY extends AbstractZ implements I {	\n"+
-			"	public void init(int i) {	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"abstract class AbstractZ implements I {	\n"+
-			"	public void init() {	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"interface I {	\n"+
-			"	void init();	\n"+
-			"	void init(int i);	\n"+
-			"}	\n"
-		},
-		"SUCCESS"); // expected output
-}
-
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=29211
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=29213
- */
-public void test032() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java", //--------------------------------
-			"public class X {\n" + 
-			"	public static void main(String[] arguments) {\n" + 
-			"		System.out.println(p.Bar.array[0].length);\n" + 
-			"		System.out.println(p.Bar.array.length);\n" + 
-			"		System.out.println(p.Bar.array[0].foo());\n" + 
-			"	}\n" + 
-			"}\n",
-			"p/Bar.java", //----------------------------
-			"package p;\n" + 
-			"public class Bar {\n" + 
-			"	public static Z[] array;\n" + 
-			"}\n" + 
-			"class Z {\n" + 
-			"	public String foo(){ \n" + 
-			"		return \"\";\n" + 
-			"	}\n" + 
-			"}\n" 
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	System.out.println(p.Bar.array[0].length);\n" + 
-		"	                   ^^^^^^^^^^^^^^\n" + 
-		"The type Z is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 4)\n" + 
-		"	System.out.println(p.Bar.array.length);\n" + 
-		"	                   ^^^^^^^^^^^^^^^^^^\n" + 
-		"The type Z is not visible\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 5)\n" + 
-		"	System.out.println(p.Bar.array[0].foo());\n" + 
-		"	                   ^^^^^^^^^^^^^^\n" + 
-		"The type Z is not visible\n" + 
-		"----------\n");
-}
-
-// 30805 Abstract non-visible method diagnosis fooled by intermediate declarations
-public void test033() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //==================================
-			"package p;	\n" +
-			"public abstract class X {	\n" +
-			"	abstract void foo();	\n" +
-			"}	\n",
-			"q/Y.java", //==================================
-			"package q;	\n" +
-			"public class Y extends p.X {	\n" +
-			"	void foo(){}	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in q\\Y.java (at line 2)\n" + 
-		"	public class Y extends p.X {	\n" + 
-		"	             ^\n" + 
-		"This class must implement the inherited abstract method X.foo(), but cannot override it since it is not visible from Y. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n" + 
-		"2. WARNING in q\\Y.java (at line 3)\n" + 
-		"	void foo(){}	\n" + 
-		"	     ^^^^^\n" + 
-		"The method Y.foo() does not override the inherited method from X since it is private to a different package\n" + 
-		"----------\n");
-}
-
-// 30805 Abstract non-visible method diagnosis fooled by intermediate declarations
-public void test034() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //==================================
-			"package p;	\n" +
-			"public abstract class X {	\n" +
-			"	abstract void foo();	\n" +
-			"}	\n",
-			"q/Y.java", //==================================
-			"package q;	\n" +
-			"public abstract class Y extends p.X {	\n" +
-			"	void foo(){}	\n" +
-			"}	\n" +
-			"class Z extends Y {	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. WARNING in q\\Y.java (at line 3)\n" + 
-		"	void foo(){}	\n" + 
-		"	     ^^^^^\n" + 
-		"The method Y.foo() does not override the inherited method from X since it is private to a different package\n" + 
-		"----------\n" + 
-		"2. ERROR in q\\Y.java (at line 5)\n" + 
-		"	class Z extends Y {	\n" + 
-		"	      ^\n" + 
-		"This class must implement the inherited abstract method X.foo(), but cannot override it since it is not visible from Z. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n"
-);
-}
-
-// 30805 Abstract non-visible method diagnosis fooled by intermediate declarations
-public void test035() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //==================================
-			"package p;	\n" +
-			"public abstract class X {	\n" +
-			"	abstract void foo();	\n" +
-			"	abstract void bar();	\n" +
-			"}	\n",
-			"p/Y.java", //==================================
-			"package p;	\n" +
-			"public abstract class Y extends X {	\n" +
-			"	void foo(){};	\n" +
-			"}	\n",
-			"q/Z.java", //==================================
-			"package q;	\n" +
-			"class Z extends p.Y {	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in q\\Z.java (at line 2)\n" + 
-		"	class Z extends p.Y {	\n" + 
-		"	      ^\n" + 
-		"This class must implement the inherited abstract method X.bar(), but cannot override it since it is not visible from Z. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n");
-}
-// 30805 Abstract non-visible method diagnosis fooled by intermediate declarations
-public void test036() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //==================================
-			"package p;	\n" +
-			"public abstract class X {	\n" +
-			"	abstract void foo();	\n" +
-			"	public interface I {	\n" +
-			"		void foo();	\n" +
-			"	}	\n" +
-			"}	\n",
-			"q/Y.java", //==================================
-			"package q;	\n" +
-			"public abstract class Y extends p.X {	\n" +
-			"	void foo(){}	\n" +
-			"}	\n" +
-			"class Z extends Y implements p.X.I {	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. WARNING in q\\Y.java (at line 3)\n" + 
-		"	void foo(){}	\n" + 
-		"	     ^^^^^\n" + 
-		"The method Y.foo() does not override the inherited method from X since it is private to a different package\n" + 
-		"----------\n" + 
-		"2. ERROR in q\\Y.java (at line 5)\n" + 
-		"	class Z extends Y implements p.X.I {	\n" + 
-		"	      ^\n" + 
-		"This class must implement the inherited abstract method X.foo(), but cannot override it since it is not visible from Z. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n" + // TODO (philippe) should not have following error due to default abstract?
-		"3. ERROR in q\\Y.java (at line 5)\n" + 
-		"	class Z extends Y implements p.X.I {	\n" + 
-		"	      ^\n" + 
-		"The inherited method Y.foo() cannot hide the public abstract method in X.I\n" + 
-		"----------\n");
-}
-// 30805 Abstract non-visible method diagnosis fooled by intermediate declarations
-public void test037() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //==================================
-			"package p;	\n" +
-			"public abstract class X {	\n" +
-			"	abstract void foo();	\n" +
-			"	void bar(){}	\n" +
-			"}	\n",
-			"q/Y.java", //==================================
-			"package q;	\n" +
-			"public abstract class Y extends p.X {	\n" +
-			"	void foo(){}	//warn \n" +
-			"	void bar(){}	//warn \n" +
-			"}	\n" +
-			"class Z extends Y {	\n" +
-			"	void bar(){}	//nowarn \n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. WARNING in q\\Y.java (at line 3)\n" + 
-		"	void foo(){}	//warn \n" + 
-		"	     ^^^^^\n" + 
-		"The method Y.foo() does not override the inherited method from X since it is private to a different package\n" + 
-		"----------\n" + 
-		"2. WARNING in q\\Y.java (at line 4)\n" + 
-		"	void bar(){}	//warn \n" + 
-		"	     ^^^^^\n" + 
-		"The method Y.bar() does not override the inherited method from X since it is private to a different package\n" + 
-		"----------\n" + 
-		"3. ERROR in q\\Y.java (at line 6)\n" + 
-		"	class Z extends Y {	\n" + 
-		"	      ^\n" + 
-		"This class must implement the inherited abstract method X.foo(), but cannot override it since it is not visible from Z. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n");
-}
-// 30805 Abstract non-visible method diagnosis fooled by intermediate declarations
-public void test038() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //==================================
-			"package p;	\n" +
-			"public abstract class X {	\n" +
-			"	abstract void foo();	\n" +
-			"}	\n",
-			"q/Y.java", //==================================
-			"package q;	\n" +
-			"public abstract class Y extends p.X {	\n" +
-			"	void foo(){}	//warn \n" +
-			"}	\n" +
-			"class Z extends Y {	\n" +
-			"	void foo(){}	//error \n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. WARNING in q\\Y.java (at line 3)\n" + 
-		"	void foo(){}	//warn \n" + 
-		"	     ^^^^^\n" + 
-		"The method Y.foo() does not override the inherited method from X since it is private to a different package\n" + 
-		"----------\n" + 
-		"2. ERROR in q\\Y.java (at line 5)\n" + 
-		"	class Z extends Y {	\n" + 
-		"	      ^\n" + 
-		"This class must implement the inherited abstract method X.foo(), but cannot override it since it is not visible from Z. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n");
-}
-
-// 31198 - regression after 30805 - Abstract non-visible method diagnosis fooled by intermediate declarations
-public void test039() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //==================================
-			"package p;	\n" +
-			"public abstract class X {	\n" +
-			"	abstract void foo();	\n" + // should not complain about this one in Z, since it has a visible implementation
-			"	abstract void bar();	\n" +
-			"}	\n",
-			"p/Y.java", //==================================
-			"package p;	\n" +
-			"public abstract class Y extends X {	\n" +
-			"	public void foo(){};	\n" +
-			"}	\n",
-			"q/Z.java", //==================================
-			"package q;	\n" +
-			"class Z extends p.Y {	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in q\\Z.java (at line 2)\n" + 
-		"	class Z extends p.Y {	\n" + 
-		"	      ^\n" + 
-		"This class must implement the inherited abstract method X.bar(), but cannot override it since it is not visible from Z. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n");
-}
-
-/*
- * 31398 - non-visible abstract method fooling method verification - should not complain about foo() or bar()
- */
-public void test040() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //================================
-			"package p;	\n" +
-			"public class X extends q.Y.Member {	\n" +
-			"		void baz(){}	\n" + // doesn't hide Y.baz()
-			"}	\n",
-			"q/Y.java", //================================
-			"package q;	\n" +
-			"public abstract class Y {	\n" +
-			"	abstract void foo();	\n" +
-			"	abstract void bar();	\n" +
-			"	abstract void baz();	\n" +
-			"	public static abstract class Member extends Y {	\n" +
-			"		public void foo() {}	\n" + 
-			"		void bar(){}	\n" +
-			"	}	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 2)\n" + 
-		"	public class X extends q.Y.Member {	\n" + 
-		"	             ^\n" + 
-		"This class must implement the inherited abstract method Y.baz(), but cannot override it since it is not visible from X. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n" + 
-		"2. WARNING in p\\X.java (at line 3)\n" + 
-		"	void baz(){}	\n" + 
-		"	     ^^^^^\n" + 
-		"The method X.baz() does not override the inherited method from Y since it is private to a different package\n" + 
-		"----------\n");
-}
-
-/*
- * 31450 - non-visible abstract method fooling method verification - should not complain about foo() 
- */
-public void test041() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //================================
-			"package p;	\n" +
-			"public class X extends q.Y.Member {	\n" +
-			"	public void foo() {}	\n" +
-			"	public static class M extends X {}	\n" +
-			"}	\n",
-			"q/Y.java", //================================
-			"package q;	\n" +
-			"public abstract class Y {	\n" +
-			"	abstract void foo();	\n" +
-			"	abstract void bar();	\n" +
-			"	public static abstract class Member extends Y {	\n" +
-			"		protected abstract void foo();	\n" + // takes precedence over inherited abstract Y.foo()
-			"	}	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 2)\n" + 
-		"	public class X extends q.Y.Member {	\n" + 
-		"	             ^\n" + 
-		"This class must implement the inherited abstract method Y.bar(), but cannot override it since it is not visible from X. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 4)\n" + 
-		"	public static class M extends X {}	\n" + 
-		"	                    ^\n" + 
-		"This class must implement the inherited abstract method Y.bar(), but cannot override it since it is not visible from M. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n");
-}
-
-/*
- * 31450 - non-visible abstract method fooling method verification - should not complain about foo() 
- */
-public void test042() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //================================
-			"package p;	\n" +
-			"public class X extends q.Y.Member {	\n" +
-			"	public void foo() {}	\n" +
-			"	public static class M extends X {}	\n" +
-			"}	\n",
-			"q/Y.java", //================================
-			"package q;	\n" +
-			"public abstract class Y {	\n" +
-			"	abstract void foo();	\n" +
-			"	abstract void bar();	\n" +
-			"	public static abstract class Member extends Y {	\n" +
-			"		void foo(){}	\n" + 
-			"	}	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 2)\n" + 
-		"	public class X extends q.Y.Member {	\n" + 
-		"	             ^\n" + 
-		"This class must implement the inherited abstract method Y.bar(), but cannot override it since it is not visible from X. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n" + 
-		"2. WARNING in p\\X.java (at line 3)\n" + 
-		"	public void foo() {}	\n" + 
-		"	            ^^^^^\n" + 
-		"The method X.foo() does not override the inherited method from Y.Member since it is private to a different package\n" + 
-		"----------\n" + 
-		"3. ERROR in p\\X.java (at line 4)\n" + 
-		"	public static class M extends X {}	\n" + 
-		"	                    ^\n" + 
-		"This class must implement the inherited abstract method Y.bar(), but cannot override it since it is not visible from M. Either make the type abstract or make the inherited method visible\n" + 
-		"----------\n");
-}
-
-public void test043() {
-	this.runConformTest(
-		new String[] {
-			"X.java", //================================
-			"public class X {\n" + 
-			"	public interface Copyable extends Cloneable {\n" + 
-			"		public Object clone() throws CloneNotSupportedException;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public interface TestIf extends Copyable {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public static class ClassA implements Copyable {\n" + 
-			"		public Object clone() throws CloneNotSupportedException {\n" + 
-			"			return super.clone();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public static class ClassB implements TestIf {\n" + 
-			"		public Object clone() throws CloneNotSupportedException {\n" + 
-			"			return super.clone();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public static void main(String[] args) throws Exception {\n" + 
-			"		Copyable o1 = new ClassA();\n" + 
-			"		ClassB o2 = new ClassB();\n" + 
-			"		TestIf o3 = o2;\n" + 
-			"		Object clonedObject;\n" + 
-			"		clonedObject = o1.clone();\n" + 
-			"		clonedObject = o2.clone();\n" + 
-			"		clonedObject = o3.clone();\n" + 
-			"		System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"SUCCESS");
-}
-/*
- * 62639 - check that missing member type is not noticed if no direct connection with compiled type
- */
-public void test044() {
-	this.runConformTest(
-		new String[] {
-			"p/Dumbo.java",
-			"package p;\n" +
-			"public class Dumbo {\n" +
-			"  public class Clyde { }\n" +
-			"	public static void main(String[] args) {\n" + 
-			"		  System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"SUCCESS");
-	// delete binary file Dumbo$Clyde (i.e. simulate removing it from classpath for subsequent compile)
-	Util.delete(new File(OUTPUT_DIR, "p" + File.separator + "Dumbo$Clyde.class"));
-	
-	this.runConformTest(
-		new String[] {
-			"q/Main.java",
-			"package q;\n" +
-			"public class Main extends p.Dumbo {\n" +
-			"	public static void main(String[] args) {\n" +
-			"		  p.Dumbo d;\n" +
-			"		  System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" +
-			"}\n",
-		},
-		"SUCCESS",
-		null,
-		false,
-		null);
-}
-/*
- * ensure that can still found binary member types at depth >=2 (enclosing name Dumbo$Clyde $ Fred)
- */
-public void test045() {
-	this.runConformTest(
-		new String[] {
-			"p/Dumbo.java",
-			"package p;\n" +
-			"public class Dumbo {\n" +
-			"  public class Clyde {\n" +
-			"  	  public class Fred {\n" +
-			"	  }\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		  System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"SUCCESS");
-	
-	this.runConformTest(
-		new String[] {
-			"q/Main.java",
-			"package q;\n" +
-			"public class Main extends p.Dumbo {\n" +
-			"	public static void main(String[] args) {\n" +
-			"		  p.Dumbo.Clyde.Fred f;\n" +
-			"		  System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" +
-			"}\n",
-		},
-		"SUCCESS",
-		null,
-		false,
-		null);
-}
-public void test046() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java", //================================
-			"public class X {\n" + 
-			"     private XY foo(XY t) {\n" + 
-			"        System.out.println(t);\n" + 
-			"        return t;\n" + 
-			"    }\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        new X() {\n" + 
-			"            void run() {\n" + 
-			"                foo(new XY());\n" + 
-			"            }\n" + 
-			"        }.run();\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"class XY {\n" + 
-			"    public String toString() {\n" + 
-			"        return \"SUCCESS\";\n" + 
-			"    }\n" + 
-			"}\n"
-		}, 
-			"----------\n" + 
-			"1. ERROR in X.java (at line 9)\n" + 
-			"	foo(new XY());\n" + 
-			"	^^^\n" + 
-			"Cannot make a static reference to the non-static method foo(XY) from the type X\n" + 
-			"----------\n");
-}
-public void test047() {
-	this.runConformTest(
-		new String[] {
-			"X.java", //================================
-			"public class X extends SuperTest\n" + 
-			"{\n" + 
-			"    public X()\n" + 
-			"    {\n" + 
-			"        super();\n" + 
-			"    }\n" + 
-			"  \n" + 
-			"    static void print(Object obj)\n" + 
-			"    {\n" + 
-			"        System.out.println(\"Object:\" + obj.toString());\n" + 
-			"    }\n" + 
-			"    \n" + 
-			"    public static void main(String[] args)\n" + 
-			"    {\n" + 
-			"        print(\"Hello world\");\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"class SuperTest\n" + 
-			"{\n" + 
-			"    SuperTest(){};\n" + 
-			"    static void print(String s)\n" + 
-			"    {\n" + 
-			"        System.out.println(\"String: \" + s);\n" + 
-			"    }\n" + 
-			"}\n"	},
-		"String: Hello world");
-}
-// 76682 - ClassCastException in qualified name computeConversion
-public void test049() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java", //---------------------------
-			"public class X\n" + 
-			"{\n" + 
-			"    private String foo() {\n" + 
-			"        return \"Started \" + java.text.DateFormat.format(new java.util.Date());\n" + 
-			"    }\n" + 
-			"}\n" ,
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\r\n" + 
-		"	return \"Started \" + java.text.DateFormat.format(new java.util.Date());\r\n" + 
-		"	                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Cannot make a static reference to the non-static method format(Date) from the type DateFormat\n" + 
-		"----------\n");
-}
-public void test050() {
-	this.runConformTest(
-		new String[] {
-			"X.java", //---------------------------
-			"public class X {\n" + 
-			"\n" + 
-			"    public static void main(String argv[]) {\n" + 
-			"    	X.Y.Z.foo();\n" + 
-			"    }\n" + 
-			"    static class Y {\n" + 
-			"    	static class Z {\n" + 
-			"    		static void foo() {\n" + 
-			"    			System.out.println(\"SUCCESS\");\n" + 
-			"    		}\n" + 
-			"    	}\n" + 
-			"    }\n" + 
-			"}\n",
-		},
-		"SUCCESS");
-}
-
-public void test051() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java", //---------------------------
-			"public class X {\n" + 
-			"\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        args.finalize();\n" + 
-			"    }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	args.finalize();\n" + 
-		"	     ^^^^^^^^\n" + 
-		"The method finalize() from the type Object is not visible\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=87463
-public void test052() {
-	this.runConformTest(
-		new String[] {
-			"X.java", //---------------------------
-			"public class X {\n" + 
-			"	public void test() {\n" + 
-			"		class C {\n" + 
-			"			public C() {\n" + 
-			"			}\n" + 
-			"			public void foo() {\n" + 
-			"				System.out.println(\"hello\");\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		int n = 0;\n" + 
-			"		switch (n) {\n" + 
-			"			case 0 :\n" + 
-			"				if (true) {\n" + 
-			"					C c2 = new C();\n" + 
-			"				}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=87463 - variation
-public void test053() {
-	this.runConformTest(
-		new String[] {
-			"X.java", //---------------------------
-			"public class X {\n" + 
-			"	public void test() {\n" + 
-			"		int l = 1;\n" + 
-			"		switch(l) {\n" + 
-			"			case 1: \n" + 
-			"				class C {\n" + 
-			"					public C() {\n" + 
-			"					}\n" + 
-			"					public void foo() {\n" + 
-			"						System.out.println(\"hello\");\n" + 
-			"					}\n" + 
-			"				}\n" + 
-			"				int n = 0;\n" + 
-			"				switch (n) {\n" + 
-			"					case 0 :\n" + 
-			"						if (true) {\n" + 
-			"							C c2 = new C();\n" + 
-			"						}\n" + 
-			"				}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=93486
-public void test054() {
-    this.runConformTest(
-        new String[] {
-            "X.java", //---------------------------
-            "import java.util.LinkedHashMap;\n" + 
-            "import java.util.Map.Entry;\n" + 
-            "\n" + 
-            "public class X {\n" + 
-            "    \n" + 
-            "    private LinkedHashMap fCache;\n" + 
-            "    \n" + 
-            "    public X(final int cacheSize) {\n" + 
-            "        // start with 100 elements but be able to grow until cacheSize\n" + 
-            "        fCache= new LinkedHashMap(100, 0.75f, true) {\n" + 
-            "            /** This class is not intended to be serialized. */\n" + 
-            "            private static final long serialVersionUID= 1L;\n" + 
-            "            protected boolean removeEldestEntry(Entry eldest) {\n" + 
-            "                return size() > cacheSize;\n" + 
-            "            }\n" + 
-            "        };\n" + 
-            "    }\n" + 
-            "}\n",
-        },
-        "");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=106140
-public void test055() {
-    this.runNegativeTest(
-        new String[] {
-            "A.java",
-            "import p.*;\n" + 
-            "public class A {\n" + 
-            "    public void errors() {\n" + 
-	            "    B b = new B();\n" + 
-            "        String s1 = b.str;\n" + 
-            "        String s2 = B.str;\n" + 
-            "    }\n" + 
-            "}\n",
-            "p/B.java",
-            "package p;\n" + 
-            "class B {\n" + 
-            "    public static String str;\n" + 
-            "}\n",
-        },
-		"----------\n" + 
-		"1. ERROR in A.java (at line 4)\r\n" + 
-		"	B b = new B();\r\n" + 
-		"	^\n" + 
-		"The type B is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in A.java (at line 4)\r\n" + 
-		"	B b = new B();\r\n" + 
-		"	          ^\n" + 
-		"The type B is not visible\n" + 
-		"----------\n" + 
-		"3. ERROR in A.java (at line 6)\r\n" + 
-		"	String s2 = B.str;\r\n" + 
-		"	            ^\n" + 
-		"The type B is not visible\n" + 
-		"----------\n"
-	);
-}
-// final method in static inner class still found in extending classes
-public void test056() {
-    this.runConformTest(
-        new String[] {
-            "X.java",
-			"public class X {\n" + 
-			"  public static void main(String[] args) {\n" + 
-			"    I x = new Z();\n" + 
-			"    x.foo();\n" + 
-			"  }\n" + 
-			"  static interface I {\n" + 
-			"    Y foo();\n" + 
-			"  }\n" + 
-			"  static class Y {\n" + 
-			"    public final Y foo() { \n" + 
-			"        System.out.println(\"SUCCESS\");\n" + 
-			"        return null; \n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  static class Z extends Y implements I {\n" + 
-			"      // empty\n" + 
-			"  }\n" + 
-			"}",
-        },
-        "SUCCESS");
-}
-// unresolved type does not fool methods signature comparison
-public void test057() {
-    this.runNegativeTest(
-        new String[] {
-            "X.java",
-			"import java.awt.*;\n" + 
-			"public class X {\n" + 
-			"    public void foo(Window w) {\n" + 
-			"        // empty\n" + 
-			"    }\n" + 
-			"    public void foo(Applet a) {\n" + 
-			"        // empty\n" + 
-			"    }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	public void foo(Applet a) {\n" + 
-		"	                ^^^^^^\n" + 
-		"Applet cannot be resolved to a type\n" + 
-		"----------\n"
-		);
-}
-public void test058() {
-    this.runConformTest(
-        new String[] {
-        		"p/X.java", // =================
-        		"package p;\n" + 
-        		"\n" + 
-        		"import p.q.Z;\n" + 
-        		"public class X { \n" + 
-        		"  public static void main(String argv[]) {\n" + 
-        		"     System.out.println(Z.z);\n" + 
-        		"  }\n" + 
-        		"}", // =================
-        		"p/q/Z.java", // =================
-        		"package p.q;\n" + 
-        		"\n" + 
-        		"public class Z extends Y implements I { \n" + 
-        		"}\n" + 
-        		"class Y {\n" + 
-        		"    protected static int z = 1;\n" + 
-        		"}\n" + 
-        		"interface I {\n" + 
-        		"    int z = 0;\n" + 
-        		"}", // =================
-		},
-		"0");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=132813
-public void test059() {
-    this.runNegativeTest(
-        new String[] {
-        		"X.java", // =================
-    			"public class X {\n" + 
-    			"	\n" + 
-    			"	void aa(int i) {\n" + 
-    			"	}\n" + 
-    			"	void aa(long l) {\n" + 
-    			"	}\n" + 
-    			"	Zork bb() {\n" + 
-    			"	}\n" + 
-    			"	void cc() {\n" + 
-    			"		this.bb();\n" + 
-    			"	}\n" + 
-    			"	public static void main(String[] args) {\n" + 
-    			"		System.out.println(\"SUCCESS\");\n" + 
-    			"	}\n" + 
-    			"}\n", // =================
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	Zork bb() {\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 10)\n" + 
-		"	this.bb();\n" + 
-		"	     ^^\n" + 
-		"The method bb() is undefined for the type X\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=132813 - variation
-public void test060() {
-    this.runNegativeTest(
-        new String[] {
-        		"X.java", // =================
-    			"public class X {\n" + 
-    			"	\n" + 
-    			"	void aa(int i) {\n" + 
-    			"	}\n" + 
-    			"	Zork aa(long l) {\n" + 
-    			"	}\n" + 
-    			"	Zork bb() {\n" + 
-    			"	}\n" + 
-    			"	void cc() {\n" +
-    			"		this.bb();\n" + 
-    			"	}\n" + 
-    			"	public static void main(String[] args) {\n" + 
-    			"		System.out.println(\"SUCCESS\");\n" + 
-    			"	}\n" + 
-    			"}\n", // =================
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	Zork aa(long l) {\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 7)\n" + 
-		"	Zork bb() {\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 10)\n" + 
-		"	this.bb();\n" + 
-		"	     ^^\n" + 
-		"The method bb() is undefined for the type X\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=134839
-public void test061() {
-	Map options = this.getCompilerOptions();
-	if (CompilerOptions.VERSION_1_3.equals(options.get(CompilerOptions.OPTION_Compliance))) {
-		// ensure target is 1.1 for having default abstract methods involved
-		options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
-	}
-    this.runConformTest(
-        new String[] {
-        		"X.java", // =================
-    			"interface MyInterface {\n" + 
-    			"        public void writeToStream();\n" + 
-    			"        public void readFromStream();\n" + 
-    			"}\n" + 
-    			"\n" + 
-    			"public abstract class X implements MyInterface {\n" + 
-    			"        public void b() {\n" + 
-    			"        }\n" + 
-    			"        public void a() {\n" + 
-    			"                writeTypeToStream();\n" + 
-    			"        }\n" + 
-    			"        private void writeTypeToStream() {\n" + 
-    			"        }\n" + 
-    			"}\n", // =================
-		},
-		"",
-		null,
-		true,
-		null,
-		options,
-		null);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=134839
-public void test062() {
-	Map options = this.getCompilerOptions();
-	if (CompilerOptions.VERSION_1_3.equals(options.get(CompilerOptions.OPTION_Compliance))) {
-		// ensure target is 1.1 for having default abstract methods involved
-		options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
-	}
-    this.runConformTest(
-        new String[] {
-        		"X.java", // =================
-    			"interface MyInterface {\n" + 
-    			"        public void writeToStream();\n" + 
-    			"        public void readFromStream();\n" + 
-    			"}\n" + 
-    			"\n" + 
-    			"public abstract class X implements MyInterface {\n" + 
-    			"        public void b() {\n" + 
-    			"        }\n" + 
-    			"        public void a() {\n" + 
-    			"                writeTypeToStream();\n" + 
-    			"        }\n" + 
-    			"        private void writeTypeToStream() {\n" + 
-    			"        }\n" + 
-    			"}\n", // =================
-		},
-		"",
-		null,
-		true,
-		null,
-		options,
-		null);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=135292
-public void test063() {
-    this.runNegativeTest(
-        new String[] {
-    		"X.java", // =================
-			"class 56 {\n" + 
-			"\n" + 
-			"        private static class B {\n" + 
-			"                public static final String F = \"\";\n" + 
-			"        }\n" + 
-			"\n" + 
-			"        private static class C {\n" + 
-			"        }\n" + 
-			"\n" + 
-			"        public void foo() {\n" + 
-			"                System.out.println(B.F);\n" + 
-			"        }\n" + 
-			"}\n", // =================
-	},
-	"----------\n" + 
-	"1. ERROR in X.java (at line 1)\n" + 
-	"	class 56 {\n" + 
-	"	      ^^\n" + 
-	"Syntax error on token \"56\", Identifier expected\n" + 
-	"----------\n" + 
-	"2. ERROR in X.java (at line 3)\n" + 
-	"	private static class B {\n" + 
-	"	                     ^\n" + 
-	"Illegal modifier for the class B; only public, abstract & final are permitted\n" + 
-	"----------\n" + 
-	"3. ERROR in X.java (at line 7)\n" + 
-	"	private static class C {\n" + 
-	"	                     ^\n" + 
-	"Illegal modifier for the class C; only public, abstract & final are permitted\n" + 
-	"----------\n" + 
-	"4. ERROR in X.java (at line 8)\n" + 
-	"	}\n" + 
-	"	^\n" + 
-	"Syntax error on token \"}\", delete this token\n" + 
-	"----------\n" + 
-	"5. ERROR in X.java (at line 11)\n" + 
-	"	System.out.println(B.F);\n" + 
-	"	                   ^^^\n" + 
-	"The type B is not visible\n" + 
-	"----------\n" + 
-	"6. ERROR in X.java (at line 13)\n" + 
-	"	}\n" + 
-	"	^\n" + 
-	"Syntax error, insert \"}\" to complete ClassBody\n" + 
-	"----------\n");
-}
-//	https://bugs.eclipse.org/bugs/show_bug.cgi?id=137744
-public void test064() {
-	Map options = this.getCompilerOptions();
-	if (CompilerOptions.VERSION_1_3.equals(options.get(CompilerOptions.OPTION_Compliance))) {
-		// ensure target is 1.1 for having default abstract methods involved
-		options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
-	}
-	this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		System.out.println(\"SUCCESS\");\n" + 
-				"		B a = new C();\n" + 
-				"		\n" + 
-				"		a.hasKursAt(1);\n" + 
-				"	}\n" + 
-				"\n" + 
-				"}",
-				"A.java",
-				"abstract public class A implements IA0 {\n" + 
-				"	int t;\n" + 
-				"	public A() {\n" + 
-				"	}\n" + 
-				"}",
-				"B.java",
-				"abstract public class B extends A implements IA3, IA1 {\n" + 
-				"	int a;\n" + 
-				"	public B() {\n" + 
-				"	}\n" + 
-				"	public void test() {	\n" + 
-				"	}\n" + 
-				"}",
-				"C.java",
-				"public class C extends B implements IA4, IA2{\n" + 
-				"	int c;\n" + 
-				"	public C() {\n" + 
-				"	}\n" + 
-				"	public boolean hasKursAt(int zeitpunkt) {\n" + 
-				"		return false;\n" + 
-				"	}\n" + 
-				"}",
-				"IA0.java",
-				"public interface IA0 {\n" + 
-				"	public void test();\n" + 
-				"}",
-				"IA1.java",
-				"public interface IA1 extends IA0 {\n" + 
-				"	public boolean hasKursAt(int zeitpunkt);\n" + 
-				"}",
-				"IA2.java",
-				"public interface IA2 extends IA0 {\n" + 
-				"	public boolean hasKursAt(int zeitpunkt);\n" + 
-				"}",
-				"IA3.java",
-				"public interface IA3 extends IA2 {\n" + 
-				"}",
-				"IA4.java",
-				"public interface IA4 extends IA3 {\n" + 
-				"}"
-			},
-			"SUCCESS",
-			null,
-			true,
-			null,
-			options,
-			null);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=135323
-public void test065() {
-	this.runConformTest(
-			new String[] {
-				"com/internap/other/ScopeExample.java",//===================
-				"package com.internap.other;\n" + 
-				"import com.internap.*;\n" + 
-				"public class ScopeExample {\n" + 
-				"	private static final String LOGGER = \"SUCCESS\";\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		PublicAccessSubclass sub = new PublicAccessSubclass() {\n" + 
-				"			public void implementMe() {\n" + 
-				"				System.out.println(LOGGER);\n" + 
-				"			}\n" + 
-				"		};\n" + 
-				"		sub.implementMe();\n" + 
-				"	}\n" + 
-				"}",
-				"com/internap/PublicAccessSubclass.java",//===================
-				"package com.internap;\n" + 
-				"public abstract class PublicAccessSubclass extends DefaultAccessSuperclass {\n" + 
-				"	public abstract void implementMe();				\n" + 
-				"}",
-				"com/internap/DefaultAccessSuperclass.java",//===================
-				"package com.internap;\n" + 
-				"class DefaultAccessSuperclass {\n" + 
-				"	private static final String LOGGER = \"FAILED\";\n" + 
-				"}",
-			},
-			"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=135323 - variation
-public void test066() {
-	this.runConformTest(
-			new String[] {
-				"com/internap/other/ScopeExample.java",//===================
-				"package com.internap.other;\n" + 
-				"import com.internap.*;\n" + 
-				"public class ScopeExample {\n" + 
-				"	private static final String LOGGER() { return \"SUCCESS\"; }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		PublicAccessSubclass sub = new PublicAccessSubclass() {\n" + 
-				"			public void implementMe() {\n" + 
-				"				System.out.println(LOGGER());\n" + 
-				"			}\n" + 
-				"		};\n" + 
-				"		sub.implementMe();\n" + 
-				"	}\n" + 
-				"}",
-				"com/internap/PublicAccessSubclass.java",//===================
-				"package com.internap;\n" + 
-				"public abstract class PublicAccessSubclass extends DefaultAccessSuperclass {\n" + 
-				"	public abstract void implementMe();				\n" + 
-				"}",
-				"com/internap/DefaultAccessSuperclass.java",//===================
-				"package com.internap;\n" + 
-				"class DefaultAccessSuperclass {\n" + 
-				"	private static final String LOGGER() { return \"FAILED\"; }\n" + 
-				"}",
-			},
-			"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=135323 - variation
-public void test067() {
-	Map options = this.getCompilerOptions();
-	if (CompilerOptions.VERSION_1_3.equals(options.get(CompilerOptions.OPTION_Compliance))) {
-		this.runNegativeTest(
-				new String[] {
-					"com/internap/other/ScopeExample.java",//===================
-					"package com.internap.other;\n" + 
-					"import com.internap.*;\n" + 
-					"public class ScopeExample {\n" + 
-					"	private static final String LOGGER = \"FAILED\";\n" + 
-					"	public static void main(String[] args) {\n" + 
-					"		PublicAccessSubclass sub = new PublicAccessSubclass() {\n" + 
-					"			public void implementMe() {\n" + 
-					"				System.out.println(LOGGER);\n" + 
-					"			}\n" + 
-					"		};\n" + 
-					"		sub.implementMe();\n" + 
-					"	}\n" + 
-					"}",
-					"com/internap/PublicAccessSubclass.java",//===================
-					"package com.internap;\n" + 
-					"public abstract class PublicAccessSubclass extends DefaultAccessSuperclass {\n" + 
-					"	public abstract void implementMe();				\n" + 
-					"}",
-					"com/internap/DefaultAccessSuperclass.java",//===================
-					"package com.internap;\n" + 
-					"class DefaultAccessSuperclass {\n" + 
-					"	public static final String LOGGER = \"SUCCESS\";\n" + 
-					"}",
-				},
-				"----------\n" + 
-				"1. WARNING in com\\internap\\other\\ScopeExample.java (at line 4)\r\n" + 
-				"	private static final String LOGGER = \"FAILED\";\r\n" + 
-				"	                            ^^^^^^\n" + 
-				"The field ScopeExample.LOGGER is never read locally\n" + 
-				"----------\n" + 
-				"2. ERROR in com\\internap\\other\\ScopeExample.java (at line 8)\r\n" + 
-				"	System.out.println(LOGGER);\r\n" + 
-				"	                   ^^^^^^\n" + 
-				"The field LOGGER is defined in an inherited type and an enclosing scope \n" + 
-				"----------\n");
-		return;
-	}	
-	this.runConformTest(
-			new String[] {
-				"com/internap/other/ScopeExample.java",//===================
-				"package com.internap.other;\n" + 
-				"import com.internap.*;\n" + 
-				"public class ScopeExample {\n" + 
-				"	private static final String LOGGER = \"FAILED\";\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		PublicAccessSubclass sub = new PublicAccessSubclass() {\n" + 
-				"			public void implementMe() {\n" + 
-				"				System.out.println(LOGGER);\n" + 
-				"			}\n" + 
-				"		};\n" + 
-				"		sub.implementMe();\n" + 
-				"	}\n" + 
-				"}",
-				"com/internap/PublicAccessSubclass.java",//===================
-				"package com.internap;\n" + 
-				"public abstract class PublicAccessSubclass extends DefaultAccessSuperclass {\n" + 
-				"	public abstract void implementMe();				\n" + 
-				"}",
-				"com/internap/DefaultAccessSuperclass.java",//===================
-				"package com.internap;\n" + 
-				"class DefaultAccessSuperclass {\n" + 
-				"	public static final String LOGGER = \"SUCCESS\";\n" + 
-				"}",
-			},
-			"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=139099
-public void test068() {
-	Map options = this.getCompilerOptions();
-	CompilerOptions compOptions = new CompilerOptions(options);
-	if (compOptions.complianceLevel < ClassFileConstants.JDK1_5) return;
-	options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
-	this.runConformTest(
-			new String[] {
-				"X.java",//===================
-				"public class X {\n" + 
-				"    public X() {\n" + 
-				"    }\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"        X l = new X();\n" + 
-				"        StringBuffer sb = new StringBuffer();\n" + 
-				"        sb.append(l);\n" + 
-				"    }\n" + 
-				"}", // =================,
-			},
-			"",
-			null,
-			true,
-			null,
-			options,
-			null);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=139099
-public void test068a() {
-	Map options = this.getCompilerOptions();
-	CompilerOptions compOptions = new CompilerOptions(options);
-	if (compOptions.complianceLevel < ClassFileConstants.JDK1_5) return;
-
-	this.runConformTest(
-		new String[] {
-			"X1.java",
-			"public class X1 { X1 foo() { return null; } }\n" + 
-			"class X2 extends X1 { X2 foo() { return null; } }\n" + 
-			"class Y { public X2 foo() { return null; } }\n" + 
-			"interface I { X1 foo(); }\n" + 
-			"class Z extends Y implements I {}",
-		},
-		"");
-	this.runConformTest(
-		new String[] {
-			"Test.java",//===================
-			"public class Test {\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        X1 x = new X2().foo();\n" + 
-			"        X2 xx = new X2().foo();\n" + 
-			"        X1 z = new Z().foo();\n" + 
-			"        X2 zz = new Z().foo();\n" + 
-			"    }\n" + 
-			"}", // =================,
-		},
-		"",
-		null,
-		false,
-		null);
-
-	options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
-	this.runConformTest(
-		new String[] {
-			"Test14.java",//===================
-			"public class Test14 {\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        X1 x = new X2().foo();\n" + 
-			"        X2 xx = new X2().foo();\n" + 
-			"        X1 z = new Z().foo();\n" + 
-			"        X2 zz = new Z().foo();\n" + 
-			"    }\n" + 
-			"}", // =================,
-		},
-		"",
-		null,
-		false,
-		null,
-		options,
-		null);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=139099 - variation
-public void test069() {
-	this.runConformTest(
-			new String[] {
-				"X.java",//===================
-				"public class X {\n" + 
-				"    public X() {\n" + 
-				"    }\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"        X l = new X();\n" + 
-				"        StringBuffer sb = new StringBuffer();\n" + 
-				"        sb.append(l);\n" + 
-				"    }\n" + 
-				"}", // =================,
-			},
-			"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140643
-public void test070() {
-	this.runConformTest(
-			new String[] {
-				"X.java",//===================
-				"public class X {\n" + 
-				"	interface I {\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	void test() {\n" + 
-				"		new I() {\n" + 
-				"			void foo() {\n" + 
-				"			}\n" + 
-				"		}.foo(); // compiles OK.\n" + 
-				"		new I() {\n" + 
-				"			void $foo() {\n" + 
-				"			}\n" + 
-				"		}.$foo(); // The method $foo() is undefined for the type new T.I(){}\n" + 
-				"	}\n" + 
-				"}", // =================
-			},
-			"");
-}
-// using $ in the name of a class defined within another package
-public void test071() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" +
-			"public class X {\n" + 
-			"}",
-			"p/X$X.java",
-			"package p;\n" +
-			"public class X$X {\n" + 
-			"}",
-		},
-		"");
-	this.runConformTest(
-		new String[] {
-			"Y.java",
-			"import p.*;\n" +
-			"public class Y {\n" +
-			"  X$X f = new X$X();\n" + 
-			"}",
-		},
-		"", 
-		null /* no extra class libraries */, 
-		false /* do not flush output directory */, 
-		null /* no vm arguments */,
-		null /* no custom options*/,
-		null /* no custom requestor*/,
-	  	false /* do not skip javac for this peculiar test */);
-}
-public void test072() {
-	this.runNegativeTest(
-			new String[] {
-				"X.java",//===================
-				"public class X {\n" + 
-				"	void bar(AX ax) {\n" + 
-				"		ax.foo(null);\n" + 
-				"	}\n" + 
-				"	\n" + 
-				"}\n" + 
-				"interface IX {\n" + 
-				"	void foo(String s);\n" + 
-				"}\n" + 
-				"interface JX {\n" + 
-				"	void foo(Thread t);\n" + 
-				"}\n" + 
-				"abstract class AX implements IX, JX {\n" + 
-				"	public void foo(String s) {}\n" + 
-				"}\n", // =================
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	ax.foo(null);\n" + 
-			"	   ^^^\n" + 
-			"The method foo(String) is ambiguous for the type AX\n" + 
-			"----------\n");
-}
-public void test073() {
-	this.runNegativeTest(
-		new String[] {
-			"E.java",//===================
-			"public class E {\n" + 
-			"	void run(int i) {}\n" + 
-			"	static class Inner {\n" + 
-			"		void run() { run(1); }\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in E.java (at line 4)\n" + 
-		"	void run() { run(1); }\n" + 
-		"	             ^^^\n" + 
-		"The method run() in the type E.Inner is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-
-// was Compliance_1_x#test008
-public void test074() {
-	String[] sources = new String[] {
-		"p1/Test.java",
-		"package p1; \n"+
-		"import Test2;	\n" +
-		"import Test2.Member;	\n" +
-		"public class Test { \n"+
-		"	public static void main(String[] arguments) { \n"+
-		"		System.out.println(\"SUCCESS\");	\n"	+
-		"	} \n"+
-		"} \n",
-		"Test2.java",
-		"public class Test2 { \n"+
-		"	public class Member {	\n" +
-		"	} \n"+
-		"} \n"
-	};
-	if (this.complianceLevel.equals(COMPLIANCE_1_3)) {
-		runConformTest(
-			sources,
-			"SUCCESS");
-	} else {
-		runNegativeTest(
-			sources,
-			"----------\n" + 
-			"1. ERROR in p1\\Test.java (at line 2)\n" + 
-			"	import Test2;	\n" + 
-			"	       ^^^^^\n" + 
-			"The import Test2 cannot be resolved\n" + 
-			"----------\n" + 
-			"2. ERROR in p1\\Test.java (at line 3)\n" + 
-			"	import Test2.Member;	\n" + 
-			"	       ^^^^^\n" + 
-			"The import Test2 cannot be resolved\n" + 
-			"----------\n");
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150758
-public void test075() {
-	this.runConformTest(
-			new String[] {
-				"package1/Test.java",//===================
-				"package package1;\n" + 
-				"import package2.MyList;\n" + 
-				"public class Test {\n" + 
-				"        public void reproduce(String sortKey, boolean isAscending) {\n" + 
-				"                MyList recList = new MyList();\n" + 
-				"                recList.add(null);\n" + 
-				"        }\n" + 
-				"}\n",//===================
-				"package2/MyList.java",//===================
-				"package package2;\n" + 
-				"import java.util.AbstractList;\n" + 
-				"import java.util.List;\n" + 
-				"public class MyList extends AbstractList implements List {\n" + 
-				"        void add(Integer i) {\n" + 
-				"        }\n" + 
-				"        public Object get(int index) {\n" + 
-				"                return null;\n" + 
-				"        }\n" + 
-				"        public int size() {\n" + 
-				"                return 0;\n" + 
-				"        }\n" + 
-				"}", // =================
-			},
-			"");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159543
-public void test076() {
-	if (this.complianceLevel.compareTo(COMPLIANCE_1_5) >= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"p/Y.java",	//===================
-				"package p;\n" + 
-				"public class Y {\n" + 
-				"  public static void foo(String s) {\n" + 
-				"  }\n" + 
-				"}\n",		//===================
-				"q/X.java",	//===================
-				"package q;\n" + 
-				"import static p.Y.foo;\n" + 
-				"public class X {\n" + 
-				"        void foo() {\n" + 
-				"        }\n" + 
-				"        void bar() {\n" + 
-				"          foo(\"\");\n" + 
-				"        }\n" + 
-				"}", 		// =================
-			},
-			"----------\n" + 
-			"1. ERROR in q\\X.java (at line 7)\n" + 
-			"	foo(\"\");\n" + 
-			"	^^^\n" + 
-			"The method foo() in the type X is not applicable for the arguments (String)\n" + 
-			"----------\n");
-	}
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=159893
-public void test077() {
-	this.runConformTest(
-		new String[] {
-			"X.java",	//===================
-			"abstract  class B {\n" + 
-			"  public String getValue(){\n" + 
-			"    return \"pippo\";\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"class D {\n" + 
-			"  private String value;\n" + 
-			"  public D(String p_Value){\n" + 
-			"    value = p_Value;\n" + 
-			"  }\n" + 
-			"  private  String getValue(){\n" + 
-			"    return \"pippoD\";\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"public class X extends B {\n" + 
-			"  class C extends D{\n" + 
-			"    public C() {\n" + 
-			"      super(getValue());\n" + 
-			"      String s = getValue();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n", 		// =================
-		},
-		"");
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=159893 - variation
-public void test078() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",	//===================
-			"class D {\n" + 
-			"  private String value;\n" + 
-			"  public D(String p_Value){\n" + 
-			"    value = p_Value;\n" + 
-			"  }\n" + 
-			"  private  String getValue(){\n" + 
-			"    return \"pippoD\";\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"public class X {\n" + 
-			"  class C extends D{\n" + 
-			"    public C() {\n" + 
-			"      super(getValue());\n" + 
-			"      String s = getValue();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n", 		// =================
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 2)\n" + 
-		"	private String value;\n" + 
-		"	               ^^^^^\n" + 
-		"The field D.value is never read locally\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 13)\n" + 
-		"	super(getValue());\n" + 
-		"	      ^^^^^^^^\n" + 
-		"The method getValue() from the type D is not visible\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 14)\n" + 
-		"	String s = getValue();\n" + 
-		"	           ^^^^^^^^\n" + 
-		"The method getValue() from the type D is not visible\n" + 
-		"----------\n");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166354
-// **
-public void test079() {
-	this.runConformTest(
-		new String[] {
-			"X.java",	//===================
-			"abstract class Y {\n" + 
-			"  private void foo(boolean b) {\n" + 
-			"    System.out.println(\"Y\");\n" + 
-			"    return;\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"public class X {\n" + 
-			"  private void foo(String s) {\n" + 
-			"    System.out.println(\"X\");\n" + 
-			"    return;\n" + 
-			"  }\n" + 
-			"  private class Z extends Y {\n" + 
-			"    public void bar(boolean b) {\n" + 
-			"      foo(\"Flag \" + b);\n" + 
-			"      X.this.foo(\"Flag \" + b);\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  Z m = new Z();\n" + 
-			"  public static void main(String args[]) {\n" + 
-			"    new X().m.bar(true);\n" + 
-			"  }\n" + 
-			"}", 		// =================
-		},
-		"X\nX");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166354
-// variant
-public void test080() {
-	this.runConformTest(
-		new String[] {
-			"X.java",	//===================
-			"abstract class Y {\n" + 
-			"  private void foo(String s) {\n" + 
-			"    System.out.println(\"Y\");\n" + 
-			"    return;\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"public class X {\n" + 
-			"  private void foo(String s) {\n" + 
-			"    System.out.println(\"X\");\n" + 
-			"    return;\n" + 
-			"  }\n" + 
-			"  private class Z extends Y {\n" + 
-			"    public void bar(boolean b) {\n" + 
-			"      foo(\"Flag \" + b);\n" + 
-			"      X.this.foo(\"Flag \" + b);\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  Z m = new Z();\n" + 
-			"  public static void main(String args[]) {\n" + 
-			"    new X().m.bar(true);\n" + 
-			"  }\n" + 
-			"}", 		// =================
-		},
-		"X\nX");
-}
-public static Class testClass() {	return LookupTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/MethodVerifyTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/MethodVerifyTest.java
deleted file mode 100644
index fdc6555..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/MethodVerifyTest.java
+++ /dev/null
@@ -1,7376 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class MethodVerifyTest extends AbstractComparableTest {
-	static {
-//		TESTS_NAMES = new String[] { "test000" };
-//		TESTS_NUMBERS = new int[] { 121 };
-//		TESTS_RANGE = new int[] { 113, -1};
-	}
-
-	public MethodVerifyTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildComparableTestSuite(testClass());
-	}
-	
-	public static Class testClass() {
-		return MethodVerifyTest.class;
-	}
-
-	public void test001() {
-		this.runNegativeTest(
-			new String[] {
-				"Y.java",
-				"public class Y<T> extends X<A> { public void foo(T t) {} }\n" +
-				"class X<U> { public void foo(U u) {} }\n" +
-				"class A {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 1)\n" + 
-			"	public class Y<T> extends X<A> { public void foo(T t) {} }\n" + 
-			"	                                             ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type Y<T> has the same erasure as foo(U) of type X<U> but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(T) in Y<T> and foo(U) in X<A> have the same erasure, yet neither overrides the other
-		);
-	}
-	
-	public void test001a() {
-		this.runNegativeTest(
-				new String[] {
-					"J.java",
-					"public class J<T> implements I<A> { public void foo(T t) {} }\n" +
-					"interface I<U> { public void foo(U u); }\n" +
-					"class A {}\n"
-				},
-				"----------\n" + 
-				"1. ERROR in J.java (at line 1)\r\n" + 
-				"	public class J<T> implements I<A> { public void foo(T t) {} }\r\n" + 
-				"	             ^\n" + 
-				"The type J<T> must implement the inherited abstract method I<A>.foo(A)\n" + 
-				"----------\n" + 
-				"2. ERROR in J.java (at line 1)\r\n" + 
-				"	public class J<T> implements I<A> { public void foo(T t) {} }\r\n" + 
-				"	                                                ^^^^^^^^\n" + 
-				"Name clash: The method foo(T) of type J<T> has the same erasure as foo(U) of type I<U> but does not override it\n" + 
-				"----------\n"
-				// J is not abstract and does not override abstract method foo(A) in I
-			);
-	}
-	public void test001b() {
-		this.runNegativeTest(
-			new String[] {
-				"YY.java",
-				"public class YY<T> extends X { public void foo(T t) {} }\n" +
-				"class X<U> { public void foo(U u) {} }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in YY.java (at line 1)\n" + 
-			"	public class YY<T> extends X { public void foo(T t) {} }\n" + 
-			"	                           ^\n" + 
-			"X is a raw type. References to generic type X<U> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in YY.java (at line 1)\n" + 
-			"	public class YY<T> extends X { public void foo(T t) {} }\n" + 
-			"	                                           ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type YY<T> has the same erasure as foo(Object) of type X but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(T) in YY<T> and foo(U) in X have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test001c() {
-		this.runNegativeTest(
-				new String[] {
-						"JJ.java",
-						"public class JJ<T> implements I { public void foo(T t) {} }\n" +
-						"interface I<U> { public void foo(U u); }\n"
-				},
-				"----------\n" + 
-				"1. ERROR in JJ.java (at line 1)\n" + 
-				"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-				"	             ^^\n" + 
-				"The type JJ<T> must implement the inherited abstract method I.foo(Object)\n" + 
-				"----------\n" + 
-				"2. WARNING in JJ.java (at line 1)\n" + 
-				"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-				"	                              ^\n" + 
-				"I is a raw type. References to generic type I<U> should be parameterized\n" + 
-				"----------\n" + 
-				"3. ERROR in JJ.java (at line 1)\n" + 
-				"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-				"	                                              ^^^^^^^^\n" + 
-				"Name clash: The method foo(T) of type JJ<T> has the same erasure as foo(Object) of type I but does not override it\n" + 
-				"----------\n"
-				// JJ is not abstract and does not override abstract method foo(java.lang.Object) in I
-		);
-	}
-	public void test001d() {
-		this.runConformTest(
-				new String[] {
-						"YYY.java",
-						"public class YYY<T> extends X<T> { public void foo(T t) {} }\n" +
-						"class X<U> { public void foo(U u) {} }\n"
-				},
-				""
-		);
-	}
-	public void test001e() {
-		this.runConformTest(
-				new String[] {
-						"JJJ.java",
-						"public class JJJ<T> implements I<T> { public void foo(T t) {} }\n" +
-						"interface I<U> { public void foo(U u); }\n"
-				},
-				""
-		);
-	}
-
-	public void test002() { // separate files
-		this.runNegativeTest(
-			new String[] {
-				"Y.java",
-				"public class Y<T> extends X<A> { public void foo(T t) {} }\n" +
-				"class A {}\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 1)\n" + 
-			"	public class Y<T> extends X<A> { public void foo(T t) {} }\n" + 
-			"	                                             ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type Y<T> has the same erasure as foo(U) of type X<U> but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(T) in Y<T> and foo(U) in X<A> have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test002a() { // separate files
-		this.runNegativeTest(
-			new String[] {
-				"J.java",
-				"public class J<T> implements I<A> { public void foo(T t) {} }\n" +
-				"class A {}\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in J.java (at line 1)\r\n" + 
-			"	public class J<T> implements I<A> { public void foo(T t) {} }\r\n" + 
-			"	             ^\n" + 
-			"The type J<T> must implement the inherited abstract method I<A>.foo(A)\n" + 
-			"----------\n" + 
-			"2. ERROR in J.java (at line 1)\r\n" + 
-			"	public class J<T> implements I<A> { public void foo(T t) {} }\r\n" + 
-			"	                                                ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type J<T> has the same erasure as foo(U) of type I<U> but does not override it\n" + 
-			"----------\n"
-			// J is not abstract and does not override abstract method foo(A) in I
-		);
-	}
-	public void test002b() { // separate files
-		this.runNegativeTest(
-			new String[] {
-				"YY.java",
-				"public class YY<T> extends X { public void foo(T t) {} }\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in YY.java (at line 1)\n" + 
-			"	public class YY<T> extends X { public void foo(T t) {} }\n" + 
-			"	                           ^\n" + 
-			"X is a raw type. References to generic type X<U> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in YY.java (at line 1)\n" + 
-			"	public class YY<T> extends X { public void foo(T t) {} }\n" + 
-			"	                                           ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type YY<T> has the same erasure as foo(Object) of type X but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(T) in YY<T> and foo(U) in X have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test002c() { // separate files
-		this.runNegativeTest(
-			new String[] {
-				"JJ.java",
-				"public class JJ<T> implements I { public void foo(T t) {} }\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in JJ.java (at line 1)\n" + 
-			"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-			"	             ^^\n" + 
-			"The type JJ<T> must implement the inherited abstract method I.foo(Object)\n" + 
-			"----------\n" + 
-			"2. WARNING in JJ.java (at line 1)\n" + 
-			"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-			"	                              ^\n" + 
-			"I is a raw type. References to generic type I<U> should be parameterized\n" + 
-			"----------\n" + 
-			"3. ERROR in JJ.java (at line 1)\n" + 
-			"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-			"	                                              ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type JJ<T> has the same erasure as foo(Object) of type I but does not override it\n" + 
-			"----------\n"
-			// JJ is not abstract and does not override abstract method foo(java.lang.Object) in I
-		);
-	}
-	public void test002d() { // separate files
-		this.runConformTest(
-			new String[] {
-				"YYY.java",
-				"public class YYY<T> extends X<T> { public void foo(T t) {} }\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n"
-			},
-			""
-		);
-	}
-	public void test002e() { // separate files
-		this.runConformTest(
-			new String[] {
-				"JJJ.java",
-				"public class JJJ<T> implements I<T> { public void foo(T t) {} }\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n"
-			},
-			""
-		);
-	}
-
-	public void test003() { // pick up superTypes as binaries
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {}\n",
-				"B.java",
-				"class B {}\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n",
-			},
-			""
-		);
-		this.runNegativeTest(
-			new String[] {
-				"Y.java",
-				"public class Y<T> extends X<A> { public void foo(T t) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 1)\n" + 
-			"	public class Y<T> extends X<A> { public void foo(T t) {} }\n" + 
-			"	                                             ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type Y<T> has the same erasure as foo(U) of type X<U> but does not override it\n" + 
-			"----------\n",
-			// name clash: foo(T) in Y<T> and foo(U) in X<A> have the same erasure, yet neither overrides the other
-			null,
-			false,
-			null
-		);
-	}
-	public void test003a() { // pick up superTypes as binaries
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {}\n",
-				"B.java",
-				"class B {}\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n",
-			},
-			""
-		);
-		this.runNegativeTest(
-			new String[] {
-				"J.java",
-				"public class J<T> implements I<A> { public void foo(T t) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in J.java (at line 1)\r\n" + 
-			"	public class J<T> implements I<A> { public void foo(T t) {} }\r\n" + 
-			"	             ^\n" + 
-			"The type J<T> must implement the inherited abstract method I<A>.foo(A)\n" + 
-			"----------\n" + 
-			"2. ERROR in J.java (at line 1)\r\n" + 
-			"	public class J<T> implements I<A> { public void foo(T t) {} }\r\n" + 
-			"	                                                ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type J<T> has the same erasure as foo(U) of type I<U> but does not override it\n" + 
-			"----------\n",
-			// J is not abstract and does not override abstract method foo(A) in I
-			null,
-			false,
-			null
-		);
-	}
-	public void test003b() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {}\n",
-				"B.java",
-				"class B {}\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n",
-			},
-			""
-		);
-		this.runNegativeTest(
-			new String[] {
-				"YY.java",
-				"public class YY<T> extends X { public void foo(T t) {} }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in YY.java (at line 1)\n" + 
-			"	public class YY<T> extends X { public void foo(T t) {} }\n" + 
-			"	                           ^\n" + 
-			"X is a raw type. References to generic type X<U> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in YY.java (at line 1)\n" + 
-			"	public class YY<T> extends X { public void foo(T t) {} }\n" + 
-			"	                                           ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type YY<T> has the same erasure as foo(Object) of type X but does not override it\n" + 
-			"----------\n",
-			// name clash: foo(T) in YY<T> and foo(U) in X have the same erasure, yet neither overrides the other
-			null,
-			false,
-			null
-		);
-	}
-	public void test003c() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {}\n",
-				"B.java",
-				"class B {}\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n",
-			},
-			""
-		);
-		this.runNegativeTest(
-			new String[] {
-				"JJ.java",
-				"public class JJ<T> implements I { public void foo(T t) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in JJ.java (at line 1)\n" + 
-			"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-			"	             ^^\n" + 
-			"The type JJ<T> must implement the inherited abstract method I.foo(Object)\n" + 
-			"----------\n" + 
-			"2. WARNING in JJ.java (at line 1)\n" + 
-			"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-			"	                              ^\n" + 
-			"I is a raw type. References to generic type I<U> should be parameterized\n" + 
-			"----------\n" + 
-			"3. ERROR in JJ.java (at line 1)\n" + 
-			"	public class JJ<T> implements I { public void foo(T t) {} }\n" + 
-			"	                                              ^^^^^^^^\n" + 
-			"Name clash: The method foo(T) of type JJ<T> has the same erasure as foo(Object) of type I but does not override it\n" + 
-			"----------\n",
-			// JJ is not abstract and does not override abstract method foo(java.lang.Object) in I
-			null,
-			false,
-			null
-		);
-	}
-	public void test003d() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {}\n",
-				"B.java",
-				"class B {}\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n",
-			},
-			""
-		);
-		this.runConformTest(
-			new String[] {
-				"YYY.java",
-				"public class YYY<T> extends X<T> { public void foo(T t) {} }\n"
-			},
-			"",
-			null,
-			false,
-			null
-		);
-	}
-	public void test003e() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {}\n",
-				"B.java",
-				"class B {}\n",
-				"X.java",
-				"class X<U> { public void foo(U u) {} }\n",
-				"I.java",
-				"interface I<U> { public void foo(U u); }\n",
-			},
-			""
-		);
-		this.runConformTest(
-			new String[] {
-				"JJJ.java",
-				"public class JJJ<T> implements I<T> { public void foo(T t) {} }\n"
-			},
-			"",
-			null,
-			false,
-			null
-		);
-	}
-
-	public void test004() { // all together
-		this.runNegativeTest(
-			new String[] {
-				"ALL.java",
-				"class A {}\n" +
-				"class B {}\n" +
-				"class X<U> { public U foo() {return null;} }\n" +
-				"interface I<U> { public U foo(); }\n" +
-
-				"class J<T> implements I<B> { public T foo() {return null;} }\n" +
-				"class K<T> implements I<T> { public T foo() {return null;} }\n" +
-				"class L<T> implements I { public T foo() {return null;} }\n" +
-
-				"class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n" +
-				"class Z<T> extends X<T> { @Override public T foo() { return super.foo(); } }\n" +
-				"class W<T> extends X { @Override public T foo() { return super.foo(); } }\n",
-			},
-			"----------\n" + 
-			"1. ERROR in ALL.java (at line 5)\n" + 
-			"	class J<T> implements I<B> { public T foo() {return null;} }\n" + 
-			"	                                    ^\n" + 
-			"The return type is incompatible with I<B>.foo()\n" + 
-			"----------\n" + 
-			"2. WARNING in ALL.java (at line 7)\n" + 
-			"	class L<T> implements I { public T foo() {return null;} }\n" + 
-			"	                      ^\n" + 
-			"I is a raw type. References to generic type I<U> should be parameterized\n" + 
-			"----------\n" + 
-			"3. ERROR in ALL.java (at line 8)\n" + 
-			"	class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n" + 
-			"	                                           ^\n" + 
-			"The return type is incompatible with X<A>.foo()\n" + 
-			"----------\n" + 
-			"4. ERROR in ALL.java (at line 8)\n" + 
-			"	class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n" + 
-			"	                                                            ^^^^^^^^^^^\n" + 
-			"Type mismatch: cannot convert from A to T\n" + 
-			"----------\n" + 
-			"5. WARNING in ALL.java (at line 10)\n" + 
-			"	class W<T> extends X { @Override public T foo() { return super.foo(); } }\n" + 
-			"	                   ^\n" + 
-			"X is a raw type. References to generic type X<U> should be parameterized\n" + 
-			"----------\n" + 
-			"6. ERROR in ALL.java (at line 10)\n" + 
-			"	class W<T> extends X { @Override public T foo() { return super.foo(); } }\n" + 
-			"	                                                         ^^^^^^^^^^^\n" + 
-			"Type mismatch: cannot convert from Object to T\n" + 
-			"----------\n"
-			/*
-			ALL.java:5: J is not abstract and does not override abstract method foo() in I
-			ALL.java:5: foo() in J cannot implement foo() in I; attempting to use incompatible return type
-			ALL.java:8: foo() in Y cannot override foo() in X; attempting to use incompatible return type
-			ALL.java:8: incompatible types
-			found   : A
-			required: T
-			class Y<T> extends X<A> { public T foo() { return super.foo(); } }
-			                                                           ^
-			ALL.java:10: incompatible types
-			found   : java.lang.Object
-			required: T
-			class W<T> extends X { public T foo() { return super.foo(); } }
-			 */
-		);
-	}
-
-	public void test005() { // separate files
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A {}\n",
-				"B.java",
-				"class B {}\n",
-				"X.java",
-				"class X<U> { public U foo() {return null;} }\n",
-				"I.java",
-				"interface I<U> { public U foo(); }\n",
-
-				"J.java",
-				"class J<T> implements I<B> { public T foo() {return null;} }\n",
-				"K.java",
-				"class K<T> implements I<T> { public T foo() {return null;} }\n",
-				"L.java",
-				"class L<T> implements I { public T foo() {return null;} }\n",
-
-				"Y.java",
-				"class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n",
-				"Z.java",
-				"class Z<T> extends X<T> { @Override public T foo() { return super.foo(); } }\n",
-				"W.java",
-				"class W<T> extends X { @Override public T foo() { return super.foo(); } }\n",
-			},
-			"----------\n" + 
-			"1. ERROR in J.java (at line 1)\n" + 
-			"	class J<T> implements I<B> { public T foo() {return null;} }\n" + 
-			"	                                    ^\n" + 
-			"The return type is incompatible with I<B>.foo()\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. WARNING in L.java (at line 1)\n" + 
-			"	class L<T> implements I { public T foo() {return null;} }\n" + 
-			"	                      ^\n" + 
-			"I is a raw type. References to generic type I<U> should be parameterized\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 1)\n" + 
-			"	class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n" + 
-			"	                                           ^\n" + 
-			"The return type is incompatible with X<A>.foo()\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 1)\n" + 
-			"	class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n" + 
-			"	                                                            ^^^^^^^^^^^\n" + 
-			"Type mismatch: cannot convert from A to T\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. WARNING in W.java (at line 1)\n" + 
-			"	class W<T> extends X { @Override public T foo() { return super.foo(); } }\n" + 
-			"	                   ^\n" + 
-			"X is a raw type. References to generic type X<U> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in W.java (at line 1)\n" + 
-			"	class W<T> extends X { @Override public T foo() { return super.foo(); } }\n" + 
-			"	                                                         ^^^^^^^^^^^\n" + 
-			"Type mismatch: cannot convert from Object to T\n" + 
-			"----------\n"
-			/*
-			J.java:1: J is not abstract and does not override abstract method foo() in I
-			J.java:1: foo() in J cannot implement foo() in I; attempting to use incompatible return type
-			W.java:1: incompatible types
-			found   : java.lang.Object
-			required: T
-			class W<T> extends X { public T foo() { return super.foo(); } }
-			Y.java:1: foo() in Y cannot override foo() in X; attempting to use incompatible return type
-			Y.java:1: incompatible types
-			found   : A
-			required: T
-			class Y<T> extends X<A> { public T foo() { return super.foo(); } }
-			 */
-		);
-	}
-
-	public void test006() { // pick up superTypes as binaries
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {}\n",
-				"B.java",
-				"class B {}\n",
-				"X.java",
-				"class X<U> { public U foo() {return null;} }\n",
-				"I.java",
-				"interface I<U> { public U foo(); }\n",
-			},
-			""
-		);
-		this.runNegativeTest(
-			new String[] {
-				"J.java",
-				"class J<T> implements I<B> { public T foo() {return null;} }\n",
-				"K.java",
-				"class K<T> implements I<T> { public T foo() {return null;} }\n",
-				"L.java",
-				"class L<T> implements I { public T foo() {return null;} }\n",
-
-				"Y.java",
-				"class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n",
-				"Z.java",
-				"class Z<T> extends X<T> { @Override public T foo() { return super.foo(); } }\n",
-				"W.java",
-				"class W<T> extends X { @Override public T foo() { return super.foo(); } }\n",
-				},
-				"----------\n" + 
-				"1. ERROR in J.java (at line 1)\n" + 
-				"	class J<T> implements I<B> { public T foo() {return null;} }\n" + 
-				"	                                    ^\n" + 
-				"The return type is incompatible with I<B>.foo()\n" + 
-				"----------\n" + 
-				"----------\n" + 
-				"1. WARNING in L.java (at line 1)\n" + 
-				"	class L<T> implements I { public T foo() {return null;} }\n" + 
-				"	                      ^\n" + 
-				"I is a raw type. References to generic type I<U> should be parameterized\n" + 
-				"----------\n" + 
-				"----------\n" + 
-				"1. ERROR in Y.java (at line 1)\n" + 
-				"	class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n" + 
-				"	                                           ^\n" + 
-				"The return type is incompatible with X<A>.foo()\n" + 
-				"----------\n" + 
-				"2. ERROR in Y.java (at line 1)\n" + 
-				"	class Y<T> extends X<A> { @Override public T foo() { return super.foo(); } }\n" + 
-				"	                                                            ^^^^^^^^^^^\n" + 
-				"Type mismatch: cannot convert from A to T\n" + 
-				"----------\n" + 
-				"----------\n" + 
-				"1. WARNING in W.java (at line 1)\n" + 
-				"	class W<T> extends X { @Override public T foo() { return super.foo(); } }\n" + 
-				"	                   ^\n" + 
-				"X is a raw type. References to generic type X<U> should be parameterized\n" + 
-				"----------\n" + 
-				"2. ERROR in W.java (at line 1)\n" + 
-				"	class W<T> extends X { @Override public T foo() { return super.foo(); } }\n" + 
-				"	                                                         ^^^^^^^^^^^\n" + 
-				"Type mismatch: cannot convert from Object to T\n" + 
-				"----------\n",
-			/*
-			J.java:1: J is not abstract and does not override abstract method foo() in I
-			J.java:1: foo() in J cannot implement foo() in I; attempting to use incompatible return type
-			W.java:1: incompatible types
-			found   : java.lang.Object
-			required: T
-			class W<T> extends X { public T foo() { return super.foo(); } }
-			Y.java:1: foo() in Y cannot override foo() in X; attempting to use incompatible return type
-			Y.java:1: incompatible types
-			found   : A
-			required: T
-			class Y<T> extends X<A> { public T foo() { return super.foo(); } }
-			 */
-			null,
-			false,
-			null
-		);
-	}
-
-	public void test007() { // simple covariance cases
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"abstract class A implements I {}\n" +
-				"interface I extends J { String foo(); }\n" +
-				"interface J { Object foo(); }\n",
-				"X.java",
-				"abstract class X1 extends A implements J {}\n"
-			},
-			""
-		);
-	}
-	public void test007a() { // simple covariance cases
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"abstract class A implements I {}\n" +
-				"interface I extends J { Object foo(); }\n" +
-				"interface J { String foo(); }\n",
-				"X.java",
-				"abstract class X2 extends A implements J {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 1)\n" + 
-			"	abstract class A implements I {}\n" + 
-			"	               ^\n" + 
-			"The return type is incompatible with J.foo(), I.foo()\n" + 
-			"----------\n" + 
-			"2. ERROR in A.java (at line 2)\n" + 
-			"	interface I extends J { Object foo(); }\n" + 
-			"	                        ^^^^^^\n" + 
-			"The return type is incompatible with J.foo()\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	abstract class X2 extends A implements J {}\n" + 
-			"	               ^^\n" + 
-			"The return type is incompatible with I.foo(), J.foo()\n" + 
-			"----------\n"
-		);
-	}
-	public void test007b() { // simple covariance cases
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"abstract class A implements I {}\n" +
-				"interface I { String foo(); }\n",
-				"X.java",
-				"abstract class X3 extends A implements J {}\n" +
-				"interface J { Object foo(); }\n"
-			},
-			""
-		);
-	}
-	public void test007c() { // simple covariance cases
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"abstract class A implements I {}\n" +
-				"interface I { Object foo(); }\n",
-				"X.java",
-				"abstract class X4 extends A implements J {}\n" +
-				"interface J { String foo(); }\n"
-			},
-			""
-		);
-	}
-	public void test007d() { // simple covariance cases
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A { public String foo() { return null; } }\n" +
-				"interface I { Object foo(); }\n",
-				"X.java",
-				"abstract class X5 extends A implements I {}\n"
-			},
-			""
-		);
-	}
-	public void test007e() { // simple covariance cases
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { public Object foo() { return null; } }\n" +
-				"interface I { String foo(); }\n",
-				"X.java",
-				"abstract class X6 extends A implements I {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	abstract class X6 extends A implements I {}\r\n" + 
-			"	               ^^\n" + 
-			"The return type is incompatible with I.foo(), A.foo()\n" + 
-			"----------\n"
-		);
-	}
-	public void test007f() { // simple covariance cases
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { int get(short i, short s) { return i; } }\n" +
-				"class B extends A { @Override short get(short i, short s) {return i; } }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 2)\r\n" + 
-			"	class B extends A { @Override short get(short i, short s) {return i; } }\r\n" + 
-			"	                              ^^^^^\n" + 
-			"The return type is incompatible with A.get(short, short)\n" + 
-			"----------\n"
-		);
-	}
-	
-	public void test008() { // covariance test
-		this.runNegativeTest(
-			new String[] {
-				"ALL.java",
-				"interface I { I foo(); }\n" +
-				"class A implements I { public A foo() { return null; } }\n" +
-				"class B extends A { @Override public B foo() { return null; } }\n" +
-				"class C extends B { @Override public A foo() { return null; } }\n" +
-				"class D extends B implements I {}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in ALL.java (at line 4)\r\n" + 
-			"	class C extends B { @Override public A foo() { return null; } }\r\n" + 
-			"	                                     ^\n" + 
-			"The return type is incompatible with B.foo()\n" + 
-			"----------\n"
-			// foo() in C cannot override foo() in B; attempting to use incompatible return type
-		);
-	}
-
-	public void test009() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class G<T> {}\n" +
-				"interface I { void foo(G<I> x); }\n" +
-				"abstract class A implements I { void foo(G<A> x) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 3)\r\n" + 
-			"	abstract class A implements I { void foo(G<A> x) {} }\r\n" + 
-			"	                                     ^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(G<A>) of type A has the same erasure as foo(G<I>) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(G<A>) in A and foo(G<I>) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test009a() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class G<T> {}\n" +
-				"interface I { I foo(G<I> x); }\n" +
-				"abstract class A implements I { I foo(G<A> x) { return null; } }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 3)\r\n" + 
-			"	abstract class A implements I { I foo(G<A> x) { return null; } }\r\n" + 
-			"	                                  ^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(G<A>) of type A has the same erasure as foo(G<I>) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(G<A>) in A and foo(G<I>) in I have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test010() { // executable bridge method case
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"    public X foo() {\n" +
-				"        System.out.println(\"Did NOT add bridge method\");\n" +
-				"        return this;\n" +
-				"    }\n" +
-				"    public static void main(String[] args) throws Exception {\n" +
-				"        X x = new A();\n" +
-				"        x.foo();\n" +
-				"        System.out.print(\" + \");\n" +
-				"        I i = new A();\n" +
-				"        i.foo();\n" +
-				"    }\n" +
-				"}\n" +
-				"interface I {\n" +
-				"    public I foo();\n" +
-				"}\n" +
-				"class A extends X implements I {\n" +
-				"    public A foo() {\n" +
-				"        System.out.print(\"Added bridge method\");\n" +
-				"        return this;\n" +
-				"    }\n" +
-				"}\n"
-			},
-			"Added bridge method + Added bridge method"
-		);
-	}
-
-	public void test011() {
-		// javac 1.5.0 will only issue 1 name clash per compile... doesn't matter how many source files are involved
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T> void foo(T t) {} }\n" +
-				"interface I { <T> void foo(T t); }\n",
-				"X.java",
-				"abstract class X1 extends A implements I {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	abstract class X1 extends A implements I {}\r\n" + 
-			"	               ^^\n" + 
-			"The inherited method A.foo(T) cannot hide the public abstract method in I\n" + 
-			"----------\n"
-			// <T>foo(T) in A cannot implement <T>foo(T) in I; attempting to assign weaker access privileges; was public
-		);
-	}
-	public void test011a() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T, S> void foo(T t) {} }\n" +
-				"interface I { <T> void foo(T t); }\n",
-				"X.java",
-				"abstract class X2 extends A implements I {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	abstract class X2 extends A implements I {}\n" + 
-			"	               ^^\n" + 
-			"Name clash: The method foo(T) of type A has the same erasure as foo(T) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: <T,S>foo(T) in A and <T>foo(T) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test011b() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T> void foo(T t) {} }\n" +
-				"interface I { <T, S> void foo(T t); }\n",
-				"X.java",
-				"abstract class X3 extends A implements I {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	abstract class X3 extends A implements I {}\n" + 
-			"	               ^^\n" + 
-			"Name clash: The method foo(T) of type A has the same erasure as foo(T) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: <T>foo(T) in A and <T,S>foo(T) in I have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test012() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { public <T> void foo(T s) {} }\n" +
-				"class Y1 extends A { @Override void foo(Object s) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 2)\n" + 
-			"	class Y1 extends A { @Override void foo(Object s) {} }\n" + 
-			"	                                    ^^^^^^^^^^^^^\n" + 
-			"Cannot reduce the visibility of the inherited method from A\n" + 
-			"----------\n"
-			// foo(java.lang.Object) in Y1 cannot override <T>foo(T) in A; attempting to assign weaker access privileges; was public
-		);
-	}		
-	public void test012a() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { public <T> void foo(T[] s) {} }\n" +
-				"class Y2 extends A { @Override void foo(Object[] s) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 2)\n" + 
-			"	class Y2 extends A { @Override void foo(Object[] s) {} }\n" + 
-			"	                                    ^^^^^^^^^^^^^^^\n" + 
-			"Cannot reduce the visibility of the inherited method from A\n" + 
-			"----------\n"
-			// foo(java.lang.Object[]) in Y2 cannot override <T>foo(T[]) in A; attempting to assign weaker access privileges; was public
-		);
-	}
-	public void test012b() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { public void foo(Class<Object> s) {} }\n" +
-				"class Y3 extends A { @Override void foo(Class<Object> s) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 2)\r\n" + 
-			"	class Y3 extends A { @Override void foo(Class<Object> s) {} }\r\n" + 
-			"	                                    ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Cannot reduce the visibility of the inherited method from A\n" + 
-			"----------\n"
-			// foo(java.lang.Class<java.lang.Object>) in Y3 cannot override foo(java.lang.Class<java.lang.Object>) in A; attempting to assign weaker access privileges; was public
-		);
-	}
-
-	public void test013() {
-		// javac 1.5.0 will only issue 1 name clash per compile... doesn't matter how many source files are involved
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A { public <T> void foo(Class<T> s) {} }\n" +
-				"interface I { <T> void foo(Class<T> s); }\n",
-				"X.java",
-				"abstract class X0 extends A implements I {}\n"
-			},
-			""
-		);
-	}
-	public void test013a() {
-		// javac 1.5.0 will only issue 1 name clash per compile... doesn't matter how many source files are involved
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T, S> void foo(Class<T> s) {} }\n" +
-				"interface I { <T> void foo(Class<T> s); }\n",
-				"X.java",
-				"abstract class X1 extends A implements I {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	abstract class X1 extends A implements I {}\r\n" + 
-			"	               ^^\n" + 
-			"Name clash: The method foo(Class<T>) of type A has the same erasure as foo(Class<T>) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: <T,S>foo(java.lang.Class<T>) in A and <T>foo(java.lang.Class<T>) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test013b() {
-		// javac 1.5.0 will only issue 1 name clash per compile... doesn't matter how many source files are involved
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T> void foo(Class<T> s) {} }\n" +
-				"interface I { <T, S> void foo(Class<T> s); }\n",
-				"X.java",
-				"abstract class X2 extends A implements I {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	abstract class X2 extends A implements I {}\r\n" + 
-			"	               ^^\n" + 
-			"Name clash: The method foo(Class<T>) of type A has the same erasure as foo(Class<T>) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: <T>foo(java.lang.Class<T>) in A and <T,S>foo(java.lang.Class<T>) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test013c() {
-		// javac 1.5.0 will only issue 1 name clash per compile... doesn't matter how many source files are involved
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T, S> S foo(Class<T> s) { return null; } }\n" +
-				"interface I { <T> Object foo(Class<T> s); }\n",
-				"X.java",
-				"abstract class X3 extends A implements I {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	abstract class X3 extends A implements I {}\r\n" + 
-			"	               ^^\n" + 
-			"Name clash: The method foo(Class<T>) of type A has the same erasure as foo(Class<T>) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: <T,S>foo(java.lang.Class<T>) in A and <T>foo(java.lang.Class<T>) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test013d() {
-		// javac 1.5.0 will only issue 1 name clash per compile... doesn't matter how many source files are involved
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T> Object foo(Class<T> s) { return null; } }\n" +
-				"interface I { <T, S> S foo(Class<T> s); }\n",
-				"X.java",
-				"abstract class X4 extends A implements I {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	abstract class X4 extends A implements I {}\r\n" + 
-			"	               ^^\n" + 
-			"Name clash: The method foo(Class<T>) of type A has the same erasure as foo(Class<T>) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: <T>foo(java.lang.Class<T>) in A and <T,S>foo(java.lang.Class<T>) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test013e() {
-		// javac 1.5.0 will only issue 1 name clash per compile... doesn't matter how many source files are involved
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { public <T, S> void foo(Class<T> s) {} }\n" +
-				"interface I { <T> void foo(Class<T> s); }\n",
-
-				"X.java",
-				"class X5 extends A implements I { public <T> void foo(Class<T> s) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	class X5 extends A implements I { public <T> void foo(Class<T> s) {} }\r\n" + 
-			"	                                                  ^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(Class<T>) of type X5 has the same erasure as foo(Class<T>) of type A but does not override it\n" + 
-			"----------\n"
-			// name clash: <T>foo(java.lang.Class<T>) in X5 and <T,S>foo(java.lang.Class<T>) in A have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test014() { // name clash tests
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class X { void foo(A a) {} }\n" + 
-				"class Y extends X { void foo(A a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			""
-		);
-	}
-	public void test014a() { // name clash tests
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class X { void foo(A[] a) {} }\n" + 
-				"class Y extends X { void foo(A[] a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			""
-		);
-	}
-	public void test014b() { // name clash tests
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class X { void foo(A<String>[] a) {} }\n" + 
-				"class Y extends X { void foo(A[] a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			""
-		);
-	}
-	public void test014c() { // name clash tests
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class X { void foo(A<String> a) {} }\n" + 
-				"class Y extends X { void foo(A a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			""
-		);
-	}
-	public void test014d() { // name clash tests
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class X { void foo(A a) {} }\n" + 
-				"class Y extends X { void foo(A<String> a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 1)\n" + 
-			"	class X { void foo(A a) {} }\n" + 
-			"	                   ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 2)\n" + 
-			"	class Y extends X { void foo(A<String> a) {} }\n" + 
-			"	                         ^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(A<String>) of type Y has the same erasure as foo(A) of type X but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(A<java.lang.String>) in Y and foo(A) in X have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test014e() { // name clash tests
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class X { void foo(A[] a) {} }\n" + 
-				"class Y extends X { void foo(A<String>[] a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 1)\n" + 
-			"	class X { void foo(A[] a) {} }\n" + 
-			"	                   ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 2)\n" + 
-			"	class Y extends X { void foo(A<String>[] a) {} }\n" + 
-			"	                         ^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(A<String>[]) of type Y has the same erasure as foo(A[]) of type X but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(A<java.lang.String>[]) in Y and foo(A[]) in X have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test015() { // more name clash tests
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"abstract class X extends Y implements I { }\n" + 
-				"interface I { void foo(A a); }\n" + 
-				"class Y { public void foo(A a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			""
-		);
-	}
-	public void test015a() { // more name clash tests
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"abstract class X extends Y implements I { }\n" + 
-				"interface I { void foo(A[] a); }\n" + 
-				"class Y { public void foo(A[] a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			""
-		);
-	}
-	public void test015b() { // more name clash tests
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"abstract class X extends Y implements I { }\n" + 
-				"interface I { void foo(A<String>[] a); }\n" + 
-				"class Y { public void foo(A[] a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			""
-		);
-	}
-	public void test015c() { // more name clash tests
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"abstract class X extends Y implements I { }\n" + 
-				"interface I { void foo(A<String> a); }\n" + 
-				"class Y { public void foo(A a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			""
-		);
-	}
-	public void test015d() { // more name clash tests
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"abstract class X extends Y implements I { }\n" + 
-				"interface I { void foo(A a); }\n" + 
-				"class Y { public void foo(A<String> a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	abstract class X extends Y implements I { }\n" + 
-			"	               ^\n" + 
-			"Name clash: The method foo(A<String>) of type Y has the same erasure as foo(A) of type I but does not override it\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 2)\n" + 
-			"	interface I { void foo(A a); }\n" + 
-			"	                       ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n"
-			// name clash: foo(A<java.lang.String>) in Y and foo(A) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test015e() { // more name clash tests
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"abstract class X extends Y implements I { }\n" + 
-				"interface I { void foo(A[] a); }\n" + 
-				"class Y { public void foo(A<String>[] a) {} }\n" + 
-				"class A<T> {}\n" 
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	abstract class X extends Y implements I { }\n" + 
-			"	               ^\n" + 
-			"Name clash: The method foo(A<String>[]) of type Y has the same erasure as foo(A[]) of type I but does not override it\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 2)\n" + 
-			"	interface I { void foo(A[] a); }\n" + 
-			"	                       ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n"
-			// name clash: foo(A<java.lang.String>[]) in Y and foo(A[]) in I have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test016() { // 73971
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	<E extends A> void m(E e) { System.out.print(\"A=\"+e.getClass()); }\n" + 
-				"	<E extends B> void m(E e) { System.out.print(\"B=\"+e.getClass()); }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		new X().m(new A());\n" +
-				"		new X().m(new B());\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n"
-			},
-			"A=class AB=class B"
-		);
-	}
-	public void test016b() { // 73971
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	static <E extends A> void m(E e) { System.out.print(\"A=\"+e.getClass()); }\n" + 
-				"	static <E extends B> void m(E e) { System.out.print(\"B=\"+e.getClass()); }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		m(new A());\n" +
-				"		m(new B());\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n"
-			},
-			"A=class AB=class B"
-		);
-	}
-
-	public void test017() { // 77785
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class X<T> {}\n" + 
-				"class Y { void test(X<? extends Number> a) {} }\n" + 
-				"class Z extends Y { void test(X<Number> a) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\r\n" + 
-			"	class Z extends Y { void test(X<Number> a) {} }\r\n" + 
-			"	                         ^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method test(X<Number>) of type Z has the same erasure as test(X<? extends Number>) of type Y but does not override it\n" + 
-			"----------\n"
-			// name clash: test(X<java.lang.Number>) in Z and test(X<? extends java.lang.Number>) in Y have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test017a() { // 77785
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class X<T> {}\n" + 
-				"class Y { void test(X<Number> a) {} }\n" + 
-				"class Z extends Y { void test(X<? extends Number> a) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	class Z extends Y { void test(X<? extends Number> a) {} }\n" + 
-			"	                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method test(X<? extends Number>) of type Z has the same erasure as test(X<Number>) of type Y but does not override it\n" + 
-			"----------\n"
-			// name clash: test(X<? extends java.lang.Number>) in Z and test(X<java.lang.Number>) in Y have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test018() { // 77861
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class X implements Comparable<X> {\n" + 
-				"	public int compareTo(Object o) { return 0; }\n" + 
-				"	public int compareTo(X o) { return 1; }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	public int compareTo(Object o) { return 0; }\n" + 
-			"	           ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method compareTo(Object) of type X has the same erasure as compareTo(T) of type Comparable<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: compareTo(java.lang.Object) in X and compareTo(T) in java.lang.Comparable<X> have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test019() { // 78140
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"public class A {\n" + 
-				"	<T> T get() { return null; } \n" + 
-				"}\n" + 
-				"class B extends A {\n" + 
-				"	<T> T get() { return null; } \n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-
-	public void test020() { // 78232
-		this.runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		AbstractBase ab = new AbstractBase();\n" + 
-				"		Derived d = new Derived();\n" + 
-				"		AbstractBase ab2 = new Derived();\n" + 
-				"		Visitor<String, String> v = new MyVisitor();\n" + 
-				"		System.out.print(ab.accept(v, ab.getClass().getName()));\n" + 
-				"		System.out.print('+');\n" + 
-				"		System.out.print(d.accept(v, d.getClass().getName()));\n" + 
-				"		System.out.print('+');\n" + 
-				"		System.out.print(ab2.accept(v, ab2.getClass().getName()));\n" + 
-				"	}\n" + 
-				"	static class MyVisitor implements Visitor<String, String> {\n" + 
-				"		public String visitBase(AbstractBase ab, String obj) { return \"Visited base: \" + obj; }\n" + 
-				"		public String visitDerived(Derived d, String obj) { return \"Visited derived: \" + obj; }\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"interface Visitor<R, T> {\n" + 
-				"	R visitBase(AbstractBase ab, T obj);\n" + 
-				"	R visitDerived(Derived d, T obj);\n" + 
-				"}\n" + 
-				"interface Visitable {\n" + 
-				"	<R, T> R accept(Visitor<R, T> v, T obj);\n" + 
-				"}\n" + 
-				"class AbstractBase implements Visitable {\n" + 
-				"	public <R, T> R accept(Visitor<R, T> v, T obj) { return v.visitBase(this, obj); }\n" + 
-				"}\n" + 
-				"class Derived extends AbstractBase implements Visitable {\n" + 
-				"	public <R, T> R accept(Visitor<R, T> v, T obj) { return v.visitDerived(this, obj); }\n" + 
-				"}\n"
-			},
-			"Visited base: AbstractBase+Visited derived: Derived+Visited derived: Derived"
-		);
-	}
-
-	public void test021() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"public class A {\n" + 
-				"	public void foo(java.util.Map<String, Class<?>> m) { } \n" + 
-				"}\n",
-				"B.java",
-				"class B extends A {\n" + 
-				"	@Override void foo(java.util.Map<String, Class<?>> m) { } \n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in B.java (at line 2)\r\n" + 
-			"	@Override void foo(java.util.Map<String, Class<?>> m) { } \r\n" + 
-			"	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Cannot reduce the visibility of the inherited method from A\n" + 
-			"----------\n"
-		);
-		// now save A & pick it up as a binary type
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"public class A {\n" + 
-				"	public void foo(java.util.Map<String, Class<?>> m) { } \n" + 
-				"}\n"
-			},
-			""
-		);
-		this.runNegativeTest(
-			new String[] {
-				"B.java",
-				"class B extends A {\n" + 
-				"	@Override void foo(java.util.Map<String, Class<?>> m) { } \n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in B.java (at line 2)\r\n" + 
-			"	@Override void foo(java.util.Map<String, Class<?>> m) { } \r\n" + 
-			"	               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Cannot reduce the visibility of the inherited method from A\n" + 
-			"----------\n",
-			null,
-			false,
-			null
-		);
-	}
-
-	public void test022() { // 77562
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"import java.util.*;\n" + 
-				"class A { List getList() { return null; } }\n" + 
-				"class B extends A { @Override List<String> getList() { return null; } }\n"
-			},
-			""
-		);
-	}
-	public void test022a() { // 77562
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"import java.util.*;\n" + 
-				"class A { List<String> getList() { return null; } }\n" + 
-				"class B extends A { @Override List getList() { return null; } }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in A.java (at line 3)\n" + 
-			"	class B extends A { @Override List getList() { return null; } }\n" + 
-			"	                              ^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in A.java (at line 3)\n" + 
-			"	class B extends A { @Override List getList() { return null; } }\n" + 
-			"	                              ^^^^\n" + 
-			"Type safety: The return type List for getList() from the type B needs unchecked conversion to conform to List<String> from the type A\n" + 
-			"----------\n"
-			// unchecked warning on B.getList()
-		);
-	}
-
-	public void test023() { // 80739
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A<T> {\n" + 
-				"	void foo(T t) {}\n" + 
-				"	void foo(String i) {}\n" + 
-				"}\n" + 
-				"class B extends A<String> {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 5)\r\n" + 
-			"	class B extends A<String> {}\r\n" + 
-			"	      ^\n" + 
-			"Duplicate methods named foo with the parameters (String) and (T) are defined by the type A<String>\n" + 
-			"----------\n"
-			// methods foo(T) from A<java.lang.String> and foo(java.lang.String) from A<java.lang.String> are inherited with the same signature
-		);
-	}
-
-	public void test024() { // 80626
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {\n" + 
-				"	public <E extends Object> void m(E e) {}\n" + 
-				"}\n" + 
-				"class B extends A {\n" + 
-				"	public void m(Object e) {}\n" + 
-				"}\n"
-			},
-			""
-			// no complaint
-		);
-	}
-	public void test024a() { // 80626
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A {\n" + 
-				"	public void m(Object e) {}\n" + 
-				"}\n" + 
-				"class B extends A {\n" + 
-				"	public <E extends Object> void m(E e) {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 5)\r\n" + 
-			"	public <E extends Object> void m(E e) {}\r\n" + 
-			"	                               ^^^^^^\n" + 
-			"Name clash: The method m(E) of type B has the same erasure as m(Object) of type A but does not override it\n" + 
-			"----------\n"
-			// name clash: <E>m(E) in B and m(java.lang.Object) in A have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test024b() { // 80626
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A {\n" + 
-				"	public <E extends Object> void m(E e) {}\n" + 
-				"}\n" + 
-				"class B extends A {\n" + 
-				"	@Override public void m(Object e) {}\n" + 
-				"}\n" + 
-				"class C extends B {\n" + 
-				"	public <E extends Object> void m(E e) {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 8)\r\n" + 
-			"	public <E extends Object> void m(E e) {}\r\n" + 
-			"	                               ^^^^^^\n" + 
-			"Name clash: The method m(E) of type C has the same erasure as m(Object) of type B but does not override it\n" + 
-			"----------\n"
-			// name clash: <E>m(E) in C and m(java.lang.Object) in B have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test025() { // 81618
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		new B().test();\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A {\n" + 
-				"	<T extends Number> T test() { return null; }\n" + 
-				"}\n" +
-				"class B extends A {\n" + 
-				"	@Override Integer test() { return 1; }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 10)\n" + 
-			"	@Override Integer test() { return 1; }\n" + 
-			"	          ^^^^^^^\n" + 
-			"Type safety: The return type Integer for test() from the type B needs unchecked conversion to conform to T from the type A\n" + 
-			"----------\n"
-			// warning: test() in B overrides <T>test() in A; return type requires unchecked conversion
-		);
-	}
-	public void test025a() { // 81618
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		new B().test();\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A {\n" + 
-				"	<T extends Number> T[] test() { return null; }\n" + 
-				"}\n" +
-				"class B extends A {\n" + 
-				"	@Override Integer[] test() { return new Integer[] {2}; }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 10)\n" + 
-			"	@Override Integer[] test() { return new Integer[] {2}; }\n" + 
-			"	          ^^^^^^^^^\n" + 
-			"Type safety: The return type Integer[] for test() from the type B needs unchecked conversion to conform to T[] from the type A\n" + 
-			"----------\n"
-			// warning: test() in B overrides <T>test() in A; return type requires unchecked conversion
-		);
-	}
-	public void test025b() { // 81618
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		System.out.println(new B().<Integer>test(new Integer(1)));\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A {\n" + 
-				"	<T> T test(T t) { return null; }\n" + 
-				"}\n" +
-				"class B extends A {\n" + 
-				"	@Override <T> T test(T t) { return t; }\n" + 
-				"}\n"
-			},
-			"1"
-		);
-	}
-	public void test025c() { // 81618
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		System.out.println(new B().<Number>test(1));\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A<T> {\n" + 
-				"	<U> T test(U u) { return null; }\n" + 
-				"}\n" +
-				"class B extends A<Integer> {\n" + 
-				"	@Override <U> Integer test(U u) { return 1; }\n" + 
-				"}\n"
-			},
-			"1"
-		);
-	}
-	public void test025d() { // 81618
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"import java.util.concurrent.Callable;\n" + 
-				"public class A {\n" + 
-				"	public static void main(String[] args) throws Exception {\n" + 
-				"		Callable<Integer> integerCallable = new Callable<Integer>() {\n" + 
-				"			public Integer call() { return new Integer(1); }\n" + 
-				"		};\n" + 
-				"		System.out.println(integerCallable.call());\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"1"
-		);
-	}
-	public void test025e() { // 81618
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"interface X<T extends X> { T x(); }\n" +
-				"abstract class Y<S extends X> implements X<S> { public abstract S x(); }\n" +
-				"abstract class Z implements X { public abstract X x(); }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 1)\n" + 
-			"	interface X<T extends X> { T x(); }\n" + 
-			"	                      ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 2)\n" + 
-			"	abstract class Y<S extends X> implements X<S> { public abstract S x(); }\n" + 
-			"	                           ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 3)\n" + 
-			"	abstract class Z implements X { public abstract X x(); }\n" + 
-			"	                            ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 3)\n" + 
-			"	abstract class Z implements X { public abstract X x(); }\n" + 
-			"	                                                ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n"
-		);
-	}		
-	public void test025f() { // 81618
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"interface X<T extends X> { T[] x(); }\n" +
-				"abstract class Y<S extends X> implements X<S> { public abstract S[] x(); }\n" +
-				"abstract class Z implements X { public abstract X[] x(); }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 1)\n" + 
-			"	interface X<T extends X> { T[] x(); }\n" + 
-			"	                      ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 2)\n" + 
-			"	abstract class Y<S extends X> implements X<S> { public abstract S[] x(); }\n" + 
-			"	                           ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 3)\n" + 
-			"	abstract class Z implements X { public abstract X[] x(); }\n" + 
-			"	                            ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 3)\n" + 
-			"	abstract class Z implements X { public abstract X[] x(); }\n" + 
-			"	                                                ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n"
-		);
-	}
-
-	public void test026() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		System.out.print(\n" + 
-				"			new B().test().getClass() + \" & \"\n" + 
-				"			+ new C().test().getClass() + \" & \"\n" + 
-				"			+ new D().test().getClass());\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A<T extends Number> {\n" + 
-				"	A<T> test() { return this; }\n" + 
-				"}\n" +
-				"class B extends A {\n" + 
-				"	A test() { return super.test(); }\n" + 
-				"}\n" +
-				"class C extends A<Integer> {\n" + 
-				"	A<Integer> test() { return super.test(); }\n" + 
-				"}\n" +
-				"class D<U, V extends Number> extends A<V> {\n" + 
-				"	A<V> test() { return super.test(); }\n" + 
-				"}\n"
-			},
-			"class B & class C & class D"
-		);
-	}
-	public void test026a() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"public abstract class A<E> {\n" + 
-				"	public abstract A<E> test();\n" + 
-				"}\n" +
-				"class H<K,V> {\n" + 
-				"	class M extends A<K> {\n" + 
-				"		public A<K> test() { return null; }\n" + 
-				"	}\n" +
-				"}\n"
-			},
-			""
-		);
-	}		
-	public void test026b() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X extends java.util.AbstractMap {\n" + 
-				"	public java.util.Set entrySet() { return null; }\n" + 
-				"}\n"
-			},
-			""
-		);
-	}		
-	public void test026c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		System.out.print(new C().test().getClass());\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A<T extends Number> {\n" + 
-				"	A<T> test() { return this; }\n" + 
-				"}\n" +
-				"class C extends A<Integer> {\n" + 
-				"	@Override A test() { return super.test(); }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 10)\n" + 
-			"	@Override A test() { return super.test(); }\n" + 
-			"	          ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 10)\n" + 
-			"	@Override A test() { return super.test(); }\n" + 
-			"	          ^\n" + 
-			"Type safety: The return type A for test() from the type C needs unchecked conversion to conform to A<T> from the type A<T>\n" + 
-			"----------\n"
-			// warning: test() in C overrides test() in A; return type requires unchecked conversion
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=82102
-	public void test027() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X { <T> void test() {} }\n" + 
-				"class Y extends X { void test() {} }\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=82102
-	public void test027a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { void test() {} }\n" + 
-				"class Y extends X { <T> void test() {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	class Y extends X { <T> void test() {} }\n" + 
-			"	                             ^^^^^^\n" + 
-			"Name clash: The method test() of type Y has the same erasure as test() of type X but does not override it\n" + 
-			"----------\n"
-			// name clash: <T>foo() in Y and foo() in X have the same erasure, yet neither overrides the other
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=82102
-	public void test027b() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X<T> { void test(T o) {} }\n" + 
-				"class Y<T> extends X<T> { void test(Object o) {} }\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=82102
-	public void test027c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T> { void test(T o, T t) {} }\n" + 
-				"class Y<T> extends X<T> { void test(Object o, T t) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	class Y<T> extends X<T> { void test(Object o, T t) {} }\r\n" + 
-			"	                               ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method test(Object, T) of type Y<T> has the same erasure as test(T, T) of type X<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: test(java.lang.Object,T) in Y<T> and test(T,T) in X<T> have the same erasure, yet neither overrides the other
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=82102
-	public void test027d() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void test() {\n" + 
-				"		Pair<Double, Integer> p = new InvertedPair<Integer, Double>();\n" + 
-				"		p.setA(new Double(1.1));\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class Pair<A, B> {\n" + 
-				"	public void setA(A a) {}\n" + 
-				"}\n" +
-				"class InvertedPair<A, B> extends Pair<B, A> {\n" + 
-				"	public void setA(A a) {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 11)\n" + 
-			"	public void setA(A a) {}\n" + 
-			"	            ^^^^^^^^^\n" + 
-			"Name clash: The method setA(A) of type InvertedPair<A,B> has the same erasure as setA(A) of type Pair<A,B> but does not override it\n" + 
-			"----------\n"
-			// name clash: setA(A) in InvertedPair<A,B> and setA(A) in Pair<B,A> have the same erasure, yet neither overrides the other
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81727
-	public void test028() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X implements I<X>{\n" + 
-				"	public X foo() { return null; }\n" + 
-				"}\n" +
-				"interface I<T extends I> { T foo(); }\n"
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81568
-	public void test029() {
-		this.runConformTest(
-			new String[] {
-				"I.java",
-				"public interface I {\n" + 
-				"	public I clone();\n" + 
-				"}\n" +
-				"interface J extends I {}\n"
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81535
-	public void test030() {
-		java.util.Map options = super.getCompilerOptions();
-		options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);	
-
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.io.OutputStreamWriter;\n" + 
-				"import java.io.PrintWriter;\n" + 
-				"public class X extends PrintWriter implements Runnable {\n" + 
-				"	public X(OutputStreamWriter out, boolean flag) { super(out, flag); }\n" +
-				"	public void run() {}\n" +
-				"}\n"
-			},
-			"",
-			null, // use default class-path
-			false, // do not flush previous output dir content
-			null, // no special vm args
-			options,
-			null
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80743
-	public void test031() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"interface X { long hashCode(); }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	interface X { long hashCode(); }\r\n" + 
-			"	              ^^^^\n" + 
-			"The return type is incompatible with Object.hashCode()\n" + 
-			"----------\n"
-			// hashCode() in X cannot override hashCode() in java.lang.Object; attempting to use incompatible return type
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80736 & https://bugs.eclipse.org/bugs/show_bug.cgi?id=113273
-	public void test032() {
-		// NOTE: javac only reports these errors when the problem type follows the bounds
-		// if the type X is defined first, then no errors are reported
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"interface I { Integer foo(); }\n" +
-				"interface J { Integer foo(); }\n" +
-				"public class X<T extends I&J> implements I {\n" +
-				"	public Integer foo() { return null; }\n" +
-				"}"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80736 & https://bugs.eclipse.org/bugs/show_bug.cgi?id=113273
-	public void test032a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"interface I { Float foo(); }\n" +
-				"interface J { Integer foo(); }\n" +
-				"public class X<T extends I&J> {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\r\n" + 
-			"	public class X<T extends I&J> {}\r\n" + 
-			"	               ^\n" + 
-			"The return type is incompatible with J.foo(), I.foo()\n" + 
-			"----------\n"
-			// types J and I are incompatible; both define foo(), but with unrelated return types
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80736 & https://bugs.eclipse.org/bugs/show_bug.cgi?id=113273
-	public void test032b() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"interface I { String foo(); }\n" +
-				"class A { public Object foo() { return null; } }" +
-				"public class X<T extends A&I> {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	class A { public Object foo() { return null; } }public class X<T extends A&I> {}\r\n" + 
-			"	                                                               ^\n" + 
-			"The return type is incompatible with I.foo(), A.foo()\n" + 
-			"----------\n"
-			// foo() in A cannot implement foo() in I; attempting to use incompatible return type
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80745
-	public void test033() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"interface I { Number foo(); }\n" +
-				"interface J { Integer foo(); }\n" +
-				"public class X implements I, J {\n" +
-				"	public Integer foo() {return 1;}\n" +
-				"	public static void main(String argv[]) {\n" +
-				"		I i = null;\n" +
-				"		J j = null;\n" +
-				"		System.out.print(i instanceof J);\n" +
-				"		System.out.print('=');\n" +
-				"		System.out.print(j instanceof I);\n" +
-				"	}\n" +
-				"}\n"
-			},
-			"false=false"
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80745
-	public void test033a() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"interface I { Number foo(A a); }\n" +
-				"interface J<T> { Integer foo(A<T> a); }\n" +
-				"class A<T>{}\n" +
-				"public class X implements I, J {\n" +
-				"	public Integer foo(A a) {return 1;}\n" +
-				"	public static void main(String argv[]) {\n" +
-				"		I i = null;\n" +
-				"		J j = null;\n" +
-				"		System.out.print(i instanceof J);\n" +
-				"		System.out.print('=');\n" +
-				"		System.out.print(j instanceof I);\n" +
-				"	}\n" +
-				"}\n"
-			},
-			"false=false"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81332
-	public void test034() {
-		this.runConformTest(
-			new String[] {
-				"B.java",
-				"interface I<E extends Comparable<E>> { void test(E element); }\n" +
-				"class A implements I<Integer> { public void test(Integer i) {} }\n" +
-				"public class B extends A { public void test(String i) {} }\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81332
-	public void test034a() {
-		this.runConformTest(
-			new String[] {
-				"B.java",
-				"interface I<E extends Comparable> { void test(E element); }\n" +
-				"class A { public void test(Integer i) {} }\n" +
-				"public class B extends A implements I<Integer> {}\n" +
-				"class C extends B { public void test(Object i) {} }\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81332
-	public void test034b() {
-		this.runNegativeTest(
-			new String[] {
-				"B.java",
-				"interface I<E extends Comparable> { void test(E element); }\n" +
-				"class A { public void test(Integer i) {} }\n" +
-				"public class B extends A implements I<Integer> { public void test(Comparable i) {} }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in B.java (at line 1)\n" + 
-			"	interface I<E extends Comparable> { void test(E element); }\n" + 
-			"	                      ^^^^^^^^^^\n" + 
-			"Comparable is a raw type. References to generic type Comparable<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in B.java (at line 3)\n" + 
-			"	public class B extends A implements I<Integer> { public void test(Comparable i) {} }\n" + 
-			"	                                                             ^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method test(Comparable) of type B has the same erasure as test(E) of type I<E> but does not override it\n" + 
-			"----------\n" + 
-			"3. WARNING in B.java (at line 3)\n" + 
-			"	public class B extends A implements I<Integer> { public void test(Comparable i) {} }\n" + 
-			"	                                                                  ^^^^^^^^^^\n" + 
-			"Comparable is a raw type. References to generic type Comparable<T> should be parameterized\n" + 
-			"----------\n"
-			// name clash: test(java.lang.Comparable) in B and test(E) in I<java.lang.Integer> have the same erasure, yet neither overrides the other
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81332
-	public void test034c() {
-		this.runNegativeTest(
-			new String[] {
-				"B.java",
-				"interface I<E extends Comparable<E>> { void test(E element); }\n" +
-				"class A implements I<Integer> { public void test(Integer i) {} }\n" +
-				"public class B extends A { public void test(Comparable i) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in B.java (at line 3)\n" + 
-			"	public class B extends A { public void test(Comparable i) {} }\n" + 
-			"	                                       ^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method test(Comparable) of type B has the same erasure as test(E) of type I<E> but does not override it\n" + 
-			"----------\n" + 
-			"2. WARNING in B.java (at line 3)\n" + 
-			"	public class B extends A { public void test(Comparable i) {} }\n" + 
-			"	                                            ^^^^^^^^^^\n" + 
-			"Comparable is a raw type. References to generic type Comparable<T> should be parameterized\n" + 
-			"----------\n"
-			// name clash: test(java.lang.Comparable) in B and test(E) in I<java.lang.Integer> have the same erasure, yet neither overrides the other
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81332
-	public void test034d() {
-		this.runNegativeTest(
-			new String[] {
-				"B.java",
-				"abstract class AA<E extends Comparable> { abstract void test(E element); }\n" +
-				"class A extends AA<Integer> { @Override public void test(Integer i) {} }\n" +
-				"public class B extends A { public void test(Comparable i) {} }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in B.java (at line 1)\n" + 
-			"	abstract class AA<E extends Comparable> { abstract void test(E element); }\n" + 
-			"	                            ^^^^^^^^^^\n" + 
-			"Comparable is a raw type. References to generic type Comparable<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in B.java (at line 3)\n" + 
-			"	public class B extends A { public void test(Comparable i) {} }\n" + 
-			"	                                       ^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method test(Comparable) of type B has the same erasure as test(E) of type AA<E> but does not override it\n" + 
-			"----------\n" + 
-			"3. WARNING in B.java (at line 3)\n" + 
-			"	public class B extends A { public void test(Comparable i) {} }\n" + 
-			"	                                            ^^^^^^^^^^\n" + 
-			"Comparable is a raw type. References to generic type Comparable<T> should be parameterized\n" + 
-			"----------\n"
-			// name clash: test(java.lang.Comparable) in B and test(E) in AA<java.lang.Integer> have the same erasure, yet neither overrides the other
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80626
-	public void test035() {
-		this.runNegativeTest(
-			new String[] {
-				"E.java",
-				"interface I<U>{ int compareTo(U o); }\n" +
-				"abstract class F<T extends F<T>> implements I<T>{ public final int compareTo(T o) { return 0; } }\n" +
-				"public class E extends F<E> { public int compareTo(Object o) { return 0; } }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in E.java (at line 3)\n" + 
-			"	public class E extends F<E> { public int compareTo(Object o) { return 0; } }\n" + 
-			"	                                         ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method compareTo(Object) of type E has the same erasure as compareTo(U) of type I<U> but does not override it\n" + 
-			"----------\n"
-			// name clash: compareTo(java.lang.Object) in E and compareTo(U) in I<E> have the same erasure, yet neither overrides the other
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80626
-	public void test035a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public enum X {\n" +
-				"	;\n" +
-				"	public int compareTo(Object o) { return 0; }\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	public int compareTo(Object o) { return 0; }\n" + 
-			"	           ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method compareTo(Object) of type X has the same erasure as compareTo(T) of type Comparable<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: compareTo(java.lang.Object) in X and compareTo(T) in java.lang.Comparable<X> have the same erasure, yet neither overrides the other
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83162
-	public void test036() { // 2 interface cases
-		// no bridge methods are created in these conform cases so no name clashes can occur
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class X implements Equivalent, EqualityComparable {\n" +
-				"	public boolean equalTo(Object other) { return true; }\n" +
-				"}\n" +
-				"abstract class Y implements Equivalent, EqualityComparable {}\n" +
-				"class Z extends Y {\n" +
-				"	public boolean equalTo(Object other) { return true; }\n" +
-				"}\n" +
-				"interface Equivalent<T> { boolean equalTo(T other); }\n" +
-				"interface EqualityComparable<T> { boolean equalTo(T other); }\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83162
-	public void test036a() { // 2 interface cases
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class X implements Equivalent, EqualityComparable {\n" +
-				"	public boolean equalTo(Comparable other) { return true; }\n" +
-				"	public boolean equalTo(Number other) { return true; }\n" +
-				"}\n" +
-				"abstract class Y implements Equivalent, EqualityComparable {}\n" +
-				"class Z extends Y {\n" +
-				"	public boolean equalTo(Comparable other) { return true; }\n" +
-				"	public boolean equalTo(Number other) { return true; }\n" +
-				"}\n" +
-				"interface Equivalent<T extends Comparable> { boolean equalTo(T other); }\n" +
-				"interface EqualityComparable<T extends Number> { boolean equalTo(T other); }\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83162
-	public void test036b() { // 2 interface cases
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class X<S> implements Equivalent<S>, EqualityComparable<S> {\n" +
-				"	public boolean equalTo(S other) { return true; }\n" +
-				"}\n" +
-				"abstract class Y<S> implements Equivalent<S>, EqualityComparable<S> {}\n" +
-				"class Z<U> extends Y<U> {\n" +
-				"	public boolean equalTo(U other) { return true; }\n" +
-				"}\n" +
-				"interface Equivalent<T> { boolean equalTo(T other); }\n" +
-				"interface EqualityComparable<T> { boolean equalTo(T other); }\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83162
-	public void test036c() { // 2 interface cases
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class X<T extends Comparable, S extends Number> implements Equivalent<T>, EqualityComparable<S> {\n" +
-				"	public boolean equalTo(T other) { return true; }\n" +
-				"	public boolean equalTo(S other) { return true; }\n" +
-				"}\n" +
-				"abstract class Y<T extends Comparable, S extends Number> implements Equivalent<T>, EqualityComparable<S> {}\n" +
-				"class Z<U extends Comparable, V extends Number> extends Y<U, V> {\n" +
-				"	public boolean equalTo(U other) { return true; }\n" +
-				"	public boolean equalTo(V other) { return true; }\n" +
-				"}\n" +
-				"interface Equivalent<T extends Comparable> { boolean equalTo(T other); }\n" +
-				"interface EqualityComparable<S extends Number> { boolean equalTo(S other); }\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83162
-	public void test036d() { // 2 interface cases
-		// in these cases, bridge methods are needed once abstract/concrete methods are defiined (either in the abstract class or a concrete subclass)
-		this.runConformTest(
-			new String[] {
-				"Y.java",
-				"abstract class Y implements Equivalent<String>, EqualityComparable<Integer> {\n" +
-				"	public abstract boolean equalTo(Number other);\n" +
-				"}\n" +
-				"interface Equivalent<T> { boolean equalTo(T other); }\n" +
-				"interface EqualityComparable<T> { boolean equalTo(T other); }\n"
-			},
-			""
-			// no bridge methods are created here since Y does not define an equalTo(?) method which equals an inherited equalTo method
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83162
-	public void test036e() { // 2 interface cases
-		this.runNegativeTest(
-			new String[] {
-				"Y.java",
-				"abstract class Y implements Equivalent<String>, EqualityComparable<Integer> {\n" +
-				"	public abstract boolean equalTo(Object other);\n" +
-				"}\n" +
-				"interface Equivalent<T> { boolean equalTo(T other); }\n" +
-				"interface EqualityComparable<T> { boolean equalTo(T other); }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 2)\n" + 
-			"	public abstract boolean equalTo(Object other);\n" + 
-			"	                        ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method equalTo(Object) of type Y has the same erasure as equalTo(T) of type Equivalent<T> but does not override it\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 2)\n" + 
-			"	public abstract boolean equalTo(Object other);\n" + 
-			"	                        ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method equalTo(Object) of type Y has the same erasure as equalTo(T) of type EqualityComparable<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: equalTo(java.lang.Object) in Y and equalTo(T) in Equivalent<java.lang.String> have the same erasure, yet neither overrides the other
-		);
-	}		
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83162
-	public void test036f() { // 2 interface cases
-		// NOTE: javac has a bug, reverse the implemented interfaces & the name clash goes away
-		// but eventually when a concrete subclass must define the remaining method, the error shows up
-		this.runNegativeTest(
-			new String[] {
-				"Y.java",
-				"abstract class Y implements Equivalent<String>, EqualityComparable<Integer> {\n" +
-				"	public abstract boolean equalTo(String other);\n" +
-				"}\n" +
-				"interface Equivalent<T> { boolean equalTo(T other); }\n" +
-				"interface EqualityComparable<T> { boolean equalTo(T other); }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 1)\n" + 
-			"	abstract class Y implements Equivalent<String>, EqualityComparable<Integer> {\n" + 
-			"	               ^\n" + 
-			"Name clash: The method equalTo(T) of type Equivalent<T> has the same erasure as equalTo(T) of type EqualityComparable<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: equalTo(T) in Equivalent<java.lang.String> and equalTo(T) in EqualityComparable<java.lang.Integer> have the same erasure, yet neither overrides the other
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83162
-	public void test036g() { // 2 interface cases
-		this.runNegativeTest(
-			new String[] {
-				"Y.java",
-				"abstract class Y implements EqualityComparable<Integer>, Equivalent<String> {\n" +
-				"	public boolean equalTo(Integer other) { return true; }\n" +
-				"}\n" +
-				"interface Equivalent<T> { boolean equalTo(T other); }\n" +
-				"interface EqualityComparable<T> { boolean equalTo(T other); }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in Y.java (at line 1)\n" + 
-			"	abstract class Y implements EqualityComparable<Integer>, Equivalent<String> {\n" + 
-			"	               ^\n" + 
-			"Name clash: The method equalTo(T) of type EqualityComparable<T> has the same erasure as equalTo(T) of type Equivalent<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: equalTo(T) in EqualityComparable<java.lang.Integer> and equalTo(T) in Equivalent<java.lang.String> have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test037() { // test inheritance scenarios
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public abstract class X implements I, J { }\n" +
-				"abstract class Y implements J, I { }\n" +
-				"abstract class Z implements K { }\n" +
-
-				"class YYY implements J, I { public void foo(A a) {} }\n" +
-				"class XXX implements I, J { public void foo(A a) {} }\n" +
-				"class ZZZ implements K { public void foo(A a) {} }\n" +
-
-				"interface I { void foo(A a); }\n" +
-				"interface J { void foo(A<String> a); }\n" +
-				"interface K extends I { void foo(A<String> a); }\n" +
-				"class A<T> {}"
-			},
-			""
-		);
-	}
-	public void test037a() { // test inheritance scenarios
-		this.runNegativeTest(
-			new String[] {
-				"XX.java",
-				"public abstract class XX implements I, J { public abstract void foo(A<String> a); }\n" +
-				"interface I { void foo(A a); }\n" +
-				"interface J { void foo(A<String> a); }\n" +
-				"class A<T> {}"
-			},
-			"----------\n" + 
-			"1. ERROR in XX.java (at line 1)\n" + 
-			"	public abstract class XX implements I, J { public abstract void foo(A<String> a); }\n" + 
-			"	                                                                ^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(A<String>) of type XX has the same erasure as foo(A) of type I but does not override it\n" + 
-			"----------\n" + 
-			"2. WARNING in XX.java (at line 2)\n" + 
-			"	interface I { void foo(A a); }\n" + 
-			"	                       ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n"
-			// name clash: foo(A<java.lang.String>) in XX and foo(A) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test037b() { // test inheritance scenarios
-		this.runNegativeTest(
-			new String[] {
-				"XX.java",
-				"public class XX implements I, J { public void foo(A<String> a) {} }\n" +
-				"class YY implements J, I { public void foo(A<String> a) {} }\n" +
-				"class ZZ implements K { public void foo(A<String> a) {} }\n" +
-
-				"interface I { void foo(A a); }\n" +
-				"interface J { void foo(A<String> a); }\n" +
-				"interface K extends I { void foo(A<String> a); }\n" +
-				"class A<T> {}"
-			},
-			"----------\n" + 
-			"1. ERROR in XX.java (at line 1)\n" + 
-			"	public class XX implements I, J { public void foo(A<String> a) {} }\n" + 
-			"	             ^^\n" + 
-			"The type XX must implement the inherited abstract method I.foo(A)\n" + 
-			"----------\n" + 
-			"2. ERROR in XX.java (at line 1)\n" + 
-			"	public class XX implements I, J { public void foo(A<String> a) {} }\n" + 
-			"	                                              ^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(A<String>) of type XX has the same erasure as foo(A) of type I but does not override it\n" + 
-			"----------\n" + 
-			"3. ERROR in XX.java (at line 2)\n" + 
-			"	class YY implements J, I { public void foo(A<String> a) {} }\n" + 
-			"	      ^^\n" + 
-			"The type YY must implement the inherited abstract method I.foo(A)\n" + 
-			"----------\n" + 
-			"4. ERROR in XX.java (at line 2)\n" + 
-			"	class YY implements J, I { public void foo(A<String> a) {} }\n" + 
-			"	                                       ^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(A<String>) of type YY has the same erasure as foo(A) of type I but does not override it\n" + 
-			"----------\n" + 
-			"5. ERROR in XX.java (at line 3)\n" + 
-			"	class ZZ implements K { public void foo(A<String> a) {} }\n" + 
-			"	      ^^\n" + 
-			"The type ZZ must implement the inherited abstract method I.foo(A)\n" + 
-			"----------\n" + 
-			"6. ERROR in XX.java (at line 3)\n" + 
-			"	class ZZ implements K { public void foo(A<String> a) {} }\n" + 
-			"	                                    ^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(A<String>) of type ZZ has the same erasure as foo(A) of type I but does not override it\n" + 
-			"----------\n" + 
-			"7. WARNING in XX.java (at line 4)\n" + 
-			"	interface I { void foo(A a); }\n" + 
-			"	                       ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n"
-			// XX/YY/ZZ is not abstract and does not override abstract method foo(A) in I
-		);
-	}
-	public void test037c() { // test inheritance scenarios
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public abstract class X extends Y implements I { }\n" +
-				"interface I { void foo(A a); }\n" +
-				"class Y { void foo(A<String> a) {} }\n" +
-				"class A<T> {}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public abstract class X extends Y implements I { }\n" + 
-			"	                      ^\n" + 
-			"Name clash: The method foo(A<String>) of type Y has the same erasure as foo(A) of type I but does not override it\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 2)\n" + 
-			"	interface I { void foo(A a); }\n" + 
-			"	                       ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n"
-			// name clash: foo(A<java.lang.String>) in Y and foo(A) in I have the same erasure, yet neither overrides the other
-		);
-	}
-	public void test037d() { // test inheritance scenarios
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public abstract class X extends Y implements I { }\n" +
-				"interface I { void foo(A<String> a); }\n" +
-				"class Y { void foo(A a) {} }\n" +
-				"class A<T> {}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public abstract class X extends Y implements I { }\n" + 
-			"	                      ^\n" + 
-			"The inherited method Y.foo(A) cannot hide the public abstract method in I\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 3)\n" + 
-			"	class Y { void foo(A a) {} }\n" + 
-			"	                   ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n"
-			// foo(A) in Y cannot implement foo(A<java.lang.String>) in I; attempting to assign weaker access privileges; was public
-		);
-	}
-	public void test037e() { // test inheritance scenarios
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public abstract class X extends Y implements I { }\n" +
-				"interface I { <T, S> void foo(T t); }\n" +
-				"class Y { <T> void foo(T t) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	public abstract class X extends Y implements I { }\r\n" + 
-			"	                      ^\n" + 
-			"Name clash: The method foo(T) of type Y has the same erasure as foo(T) of type I but does not override it\n" + 
-			"----------\n"
-			// name clash: <T>foo(T) in Y and <T,S>foo(T) in I have the same erasure, yet neither overrides the other
-		);
-	}
-
-	public void test038() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X extends H<Object> { void foo(A<?> a) { super.foo(a); } }\n" +
-				"class H<T extends Object> { void foo(A<? extends T> a) {} }\n" +
-				"class A<T> {}"
-			},
-			""
-		);
-	}
-	public void test038a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X extends H<Number> { void foo(A<?> a) {} }\n" +
-				"class H<T extends Number> { void foo(A<? extends T> a) {} }\n" +
-				"class A<T> {}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	public class X extends H<Number> { void foo(A<?> a) {} }\r\n" + 
-			"	                                        ^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(A<?>) of type X has the same erasure as foo(A<? extends T>) of type H<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(A<?>) in X and foo(A<? extends T>) in H<java.lang.Number> have the same erasure, yet neither overrides the other
-			// with    public class X extends H<Number> { void foo(A<?> a) { super.foo(a); } }
-			// foo(A<? extends java.lang.Number>) in H<java.lang.Number> cannot be applied to (A<capture of ?>)
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83573
-	public void test039() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"   public static void main(String[] args) {\n" + 
-				"      Test test = new Test();\n" + 
-				"      This test2 = new Test();\n" + 
-				"      System.out.println(test.get());\n" + 
-				"   }\n" + 
-				"   interface This {\n" + 
-				"      public Object get();\n" + 
-				"   }\n" + 
-				" \n" + 
-				"   interface That extends This {\n" + 
-				"      public String get();\n" + 
-				" \n" + 
-				"   }\n" + 
-				" \n" + 
-				"   static class Test implements That {\n" + 
-				" \n" + 
-				"      public String get() {\n" + 
-				"         return \"That\";\n" + 
-				" \n" + 
-				"      }\n" + 
-				"   }\n" + 
-				"}\n"
-			},
-			"That"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83218
-	public void test040() {
-		this.runNegativeTest(
-			new String[] {
-				"Base.java",
-				"interface Base<E> { Base<E> proc(); }\n" +
-				"abstract class Derived<D> implements Base<D> { public abstract Derived<D> proc(); }\n"
-			},
-			"" // no warnings
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83218
-	public void test040a() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T extends Number> T test() { return null; } }\n" +
-				"class B extends A { @Override Integer test() { return 1; } }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in A.java (at line 2)\n" + 
-			"	class B extends A { @Override Integer test() { return 1; } }\n" + 
-			"	                              ^^^^^^^\n" + 
-			"Type safety: The return type Integer for test() from the type B needs unchecked conversion to conform to T from the type A\n" + 
-			"----------\n"
-			// warning: test() in B overrides <T>test() in A; return type requires unchecked conversion
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83218
-	public void test040b() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"import java.util.*;\n" + 
-				"class A { List<String> getList() { return null; } }\n" + 
-				"class B extends A { @Override List getList() { return null; } }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in A.java (at line 3)\n" + 
-			"	class B extends A { @Override List getList() { return null; } }\n" + 
-			"	                              ^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in A.java (at line 3)\n" + 
-			"	class B extends A { @Override List getList() { return null; } }\n" + 
-			"	                              ^^^^\n" + 
-			"Type safety: The return type List for getList() from the type B needs unchecked conversion to conform to List<String> from the type A\n" + 
-			"----------\n"
-			// unchecked warning on B.getList()
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83218
-	public void test040c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"interface X<T> { X<T> x(); }\n" +
-				"abstract class Y<S> implements X<S> { public abstract X x(); }\n" + // warning: x() in Y implements x() in X; return type requires unchecked conversion
-				"abstract class Z implements X { public abstract X x(); }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 2)\n" + 
-			"	abstract class Y<S> implements X<S> { public abstract X x(); }\n" + 
-			"	                                                      ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 2)\n" + 
-			"	abstract class Y<S> implements X<S> { public abstract X x(); }\n" + 
-			"	                                                      ^\n" + 
-			"Type safety: The return type X for x() from the type Y<S> needs unchecked conversion to conform to X<T> from the type X<T>\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 3)\n" + 
-			"	abstract class Z implements X { public abstract X x(); }\n" + 
-			"	                            ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 3)\n" + 
-			"	abstract class Z implements X { public abstract X x(); }\n" + 
-			"	                                                ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n"
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83218
-	public void test040d() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"interface X<T> { X<T>[] x(); }\n" +
-				"abstract class Y<S> implements X<S> { public abstract X[] x(); }\n" + // warning: x() in Y implements x() in X; return type requires unchecked conversion
-				"abstract class Z implements X { public abstract X[] x(); }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 2)\n" + 
-			"	abstract class Y<S> implements X<S> { public abstract X[] x(); }\n" + 
-			"	                                                      ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 2)\n" + 
-			"	abstract class Y<S> implements X<S> { public abstract X[] x(); }\n" + 
-			"	                                                      ^^^\n" + 
-			"Type safety: The return type X[] for x() from the type Y<S> needs unchecked conversion to conform to X<T>[] from the type X<T>\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 3)\n" + 
-			"	abstract class Z implements X { public abstract X[] x(); }\n" + 
-			"	                            ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 3)\n" + 
-			"	abstract class Z implements X { public abstract X[] x(); }\n" + 
-			"	                                                ^\n" + 
-			"X is a raw type. References to generic type X<T> should be parameterized\n" + 
-			"----------\n"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83902
-	public void test041() { // inherited cases for bridge methods, varargs clashes, return type conversion checks
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { public void foo(String... n) {} }\n" +
-				"interface I { void foo(String[] n); }\n" +
-				"class Y extends X implements I { }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 3)\n" + 
-			"	class Y extends X implements I { }\n" + 
-			"	      ^\n" + 
-			"Varargs methods should only override or be overridden by other varargs methods unlike X.foo(String...) and I.foo(String[])\n" + 
-			"----------\n"
-			// warning: foo(java.lang.String...) in X cannot implement foo(java.lang.String[]) in I; overridden method has no '...'
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83902
-	public void test041a() { // inherited cases for bridge methods, varargs clashes, return type conversion checks
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { public void foo(String[] n) {} }\n" +
-				"interface I { void foo(String... n); }\n" +
-				"class Y extends X implements I { }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 3)\n" + 
-			"	class Y extends X implements I { }\n" + 
-			"	      ^\n" + 
-			"Varargs methods should only override or be overridden by other varargs methods unlike X.foo(String[]) and I.foo(String...)\n" + 
-			"----------\n"
-			// warning: foo(java.lang.String[]) in X cannot implement foo(java.lang.String...) in I; overriding method is missing '...'
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83902
-	public void test041b() { // inherited cases for bridge methods, varargs clashes, return type conversion checks
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public Y foo() {\n" +
-				"		System.out.println(\"SUCCESS\");\n" +
-				"		return null;\n" +
-				"	}\n" +
-				"	public static void main(String[] args) {\n" +
-				"		((I) new Y()).foo();\n" +
-				"	}\n" +
-				"}\n" +
-				"interface I { X foo(); }\n" +
-				"class Y extends X implements I { }\n"
-			},
-			"SUCCESS"
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83902
-	public void test041c() { // inherited cases for bridge methods, varargs clashes, return type conversion checks
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { public A foo() { return null; } }\n" +
-				"interface I { A<String> foo(); }\n" +
-				"class Y extends X implements I { }\n" +
-				"class A<T> { }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 1)\n" + 
-			"	public class X { public A foo() { return null; } }\n" + 
-			"	                        ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 3)\n" + 
-			"	class Y extends X implements I { }\n" + 
-			"	      ^\n" + 
-			"Type safety: The return type A for foo() from the type X needs unchecked conversion to conform to A<String> from the type I\n" + 
-			"----------\n"
-			// warning: foo() in X implements foo() in I; return type requires unchecked conversion
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83902
-	public void test041d() { // inherited cases for bridge methods, varargs clashes, return type conversion checks
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { public Object foo() { return null; } }\n" +
-				"interface I { <T> T foo(); }\n" +
-				"class Y extends X implements I { }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 3)\n" + 
-			"	class Y extends X implements I { }\n" + 
-			"	      ^\n" + 
-			"Type safety: The return type Object for foo() from the type X needs unchecked conversion to conform to T from the type I\n" + 
-			"----------\n"
-			// NOTE: javac issues an error & a warning which contradict each other
-			// if the method Object foo() is implemented in Y then only the warning is issued, so X should be allowed to implement the method
-			// Y is not abstract and does not override abstract method <T>foo() in I
-			// warning: foo() in X implements <T>foo() in I; return type requires unchecked conversion
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85930
-	public void test042() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"interface Callable<T>\n" + 
-				"{\n" + 
-				"    public enum Result { GOOD, BAD };\n" + 
-				"    public Result call(T arg);\n" + 
-				"}\n" + 
-				"\n" + 
-				"public class X implements Callable<String>\n" + 
-				"{\n" + 
-				"    public Result call(String arg) { return Result.GOOD; } // Warning line\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=72704
-	public void test043() { // ambiguous message sends because of substitution from 2 different type variables
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { void test(E<Integer,Integer> e) { e.id(new Integer(1)); } }\n" +
-				"abstract class C<A> { public abstract void id(A x); }\n" +
-				"interface I<B> { void id(B x); }\n" +
-				"abstract class E<A, B> extends C<A> implements I<B> {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	abstract class E<A, B> extends C<A> implements I<B> {}\n" + 
-			"	               ^\n" + 
-			"Name clash: The method id(A) of type C<A> has the same erasure as id(B) of type I<B> but does not override it\n" + 
-			"----------\n"
-			// javac won't report it until C.id() is made concrete or implemented in E
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=72704
-	public void test043a() { // ambiguous message sends because of substitution from 2 different type variables
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { void test(E<Integer,Integer> e) { e.id(new Integer(2)); } }\n" +
-				"abstract class C<A extends Number> { public abstract void id(A x); }\n" +
-				"interface I<B> { void id(B x); }\n" +
-				"abstract class E<A extends Number, B> extends C<A> implements I<B> {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	public class X { void test(E<Integer,Integer> e) { e.id(new Integer(2)); } }\r\n" + 
-			"	                                                     ^^\n" + 
-			"The method id(Integer) is ambiguous for the type E<Integer,Integer>\n" + 
-			"----------\n"
-			// reference to id is ambiguous, both method id(A) in C<java.lang.Integer> and method id(B) in I<java.lang.Integer> match
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=72704
-	public void test043b() { // ambiguous message sends because of substitution from 2 different type variables
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { void test(E<Integer,Integer> e) { e.id(new Integer(111)); } }\n" +
-				"abstract class C<A extends Number> { public void id(A x) {} }\n" +
-				"interface I<B> { void id(B x); }\n" +
-				"class E<A extends Number, B> extends C<A> implements I<B> { public void id(B b) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	public class X { void test(E<Integer,Integer> e) { e.id(new Integer(111)); } }\r\n" + 
-			"	                                                     ^^\n" + 
-			"The method id(Integer) is ambiguous for the type E<Integer,Integer>\n" + 
-			"----------\n"
-			// reference to id is ambiguous, both method id(A) in C<java.lang.Integer> and method id(B) in E<java.lang.Integer,java.lang.Integer> match
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=72704
-	public void test043c() { // ambiguous message sends because of substitution from 2 different type variables
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	void test(E<Integer,Integer> e) { e.id(new Integer(111)); }\n" +
-				"	void test(M<Integer,Integer> m) {\n" +
-				"		m.id(new Integer(111));\n" +
-				"		((E<Integer, Integer>) m).id(new Integer(111));\n" +
-				"	}\n" +
-				"	void test(N<Integer> n) { n.id(new Integer(111)); }\n" +
-				"}\n" +
-				"abstract class C<A extends Number> { public void id(A x) {} }\n" +
-				"interface I<B> { void id(B x); }\n" +
-				"abstract class E<A extends Number, B> extends C<A> implements I<B> {}\n" +
-				"class M<A extends Number, B> extends E<A, B> { public void id(B b) {} }\n" +
-				"abstract class N<T extends Number> extends E<T, Number> { @Override public void id(T n) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\r\n" + 
-			"	m.id(new Integer(111));\r\n" + 
-			"	  ^^\n" + 
-			"The method id(Integer) is ambiguous for the type M<Integer,Integer>\n" + 
-			"----------\n"
-			// reference to id is ambiguous, both method id(A) in C<java.lang.Integer> and method id(B) in M<java.lang.Integer,java.lang.Integer> match
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=97161
-	public void test043d() {
-		this.runNegativeTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static p.Y.*;\n" +
-				"import static p.Z.*;\n" +
-				"public class X {\n" +
-				"	Y data = null;\n" +
-				"	public X() { foo(data.l); }\n" +
-				"}\n",
-				"p/Y.java",
-				"package p;\n" +
-				"import java.util.List;\n" +
-				"public class Y {\n" +
-				"	List l = null;\n" +
-				"	public static <T> void foo(T... e) {}\n" +
-				"}\n",
-				"p/Z.java",
-				"package p;\n" +
-				"import java.util.List;\n" +
-				"public class Z {\n" +
-				"	public static <T> void foo(List<T>... e) {}\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in p\\X.java (at line 6)\n" + 
-			"	public X() { foo(data.l); }\n" + 
-			"	             ^^^^^^^^^^^\n" + 
-			"Type safety: Unchecked invocation foo(List...) of the generic method foo(List<T>...) of type Z\n" + 
-			"----------\n" + 
-			"2. WARNING in p\\X.java (at line 6)\n" + 
-			"	public X() { foo(data.l); }\n" + 
-			"	                 ^^^^^^\n" + 
-			"Type safety: The expression of type List needs unchecked conversion to conform to List<T>\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. WARNING in p\\Y.java (at line 4)\n" + 
-			"	List l = null;\n" + 
-			"	^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n"
-			// unchecked conversion warnings
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=97161
-	public void test043e() {
-		this.runNegativeTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static p.Y.*;\n" +
-				"public class X {\n" +
-				"	Y data = null;\n" +
-				"	public X() { foo(data.l); }\n" +
-				"}\n",
-				"p/Y.java",
-				"package p;\n" +
-				"import java.util.List;\n" +
-				"public class Y {\n" +
-				"	List l = null;\n" +
-				"	public static <T> void foo(T... e) {}\n" +
-				"	public static <T> void foo(List<T>... e) {}\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in p\\X.java (at line 5)\n" + 
-			"	public X() { foo(data.l); }\n" + 
-			"	             ^^^^^^^^^^^\n" + 
-			"Type safety: Unchecked invocation foo(List...) of the generic method foo(List<T>...) of type Y\n" + 
-			"----------\n" + 
-			"2. WARNING in p\\X.java (at line 5)\n" + 
-			"	public X() { foo(data.l); }\n" + 
-			"	                 ^^^^^^\n" + 
-			"Type safety: The expression of type List needs unchecked conversion to conform to List<T>\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. WARNING in p\\Y.java (at line 4)\n" + 
-			"	List l = null;\n" + 
-			"	^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n"
-			// unchecked conversion warnings
-		);
-	}
-
-	public void test043f() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	void test(M<Integer,Integer> m) {\n" +
-				"		m.id(new Integer(111), new Integer(112));\n" +
-				"	}\n" +
-				"}\n" +
-				"abstract class C<T1 extends Number> { public <U1 extends Number> void id(T1 x, U1 u) {} }\n" +
-				"interface I<T2> { }\n" +
-				"abstract class E<T3 extends Number, T4> extends C<T3> implements I<T4> {}\n" +
-				"class M<T5 extends Number, T6> extends E<T5, T6> { public <U2 extends Number> void id(T5 b, U2 u) {} }\n"
-			},
-			""
-		);
-	}
-	public void test043g() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	void test(M<Integer,Integer> m) {\n" +
-				"		m.id(new Integer(111));\n" +
-				"	}\n" +
-				"}\n" +
-				"abstract class C<T1 extends Number> { public void id(T1 x) {} }\n" +
-				"interface I<T2> { void id(T2 x); }\n" +
-				"abstract class E<T3 extends Number, T4> extends C<T3> implements I<T4> {}\n" +
-				"class M<T5 extends Number, T6> extends E<T5, T6> { public void id(T6 b) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	m.id(new Integer(111));\n" + 
-			"	  ^^\n" + 
-			"The method id(Integer) is ambiguous for the type M<Integer,Integer>\n" + 
-			"----------\n"
-			// reference to id is ambiguous, both method id(A) in C<java.lang.Integer> and method id(B) in M<java.lang.Integer,java.lang.Integer> match
-		);
-	}
-
-	// ensure AccOverriding remains when attempting to override final method 
-	public void test044() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { final void foo() {} }\n" + 
-				"class XS extends X { @Override void foo() {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	class XS extends X { @Override void foo() {} }\n" + 
-			"	                                    ^^^^^\n" + 
-			"Cannot override the final method from X\n" + 
-			"----------\n"
-		);
-	}
-	// ensure AccOverriding remains when attempting to override final method 
-	public void test044a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { public void foo() {} }\n" + 
-				"class XS extends X { @Override void foo() {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	class XS extends X { @Override void foo() {} }\n" + 
-			"	                                    ^^^^^\n" + 
-			"Cannot reduce the visibility of the inherited method from X\n" + 
-			"----------\n"
-		);
-	}
-	// ensure AccOverriding remains when attempting to override final method 
-	public void test044b() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { void foo() {} }\n" + 
-				"class XS extends X { @Override void foo() throws ClassNotFoundException {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	class XS extends X { @Override void foo() throws ClassNotFoundException {} }\n" + 
-			"	                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Exception ClassNotFoundException is not compatible with throws clause in X.foo()\n" + 
-			"----------\n"
-		);
-	}
-	// ensure AccOverriding remains when attempting to override final method 
-	public void test044c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { void foo() {} }\n" + 
-				"class XS extends X { @Override int foo() {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	class XS extends X { @Override int foo() {} }\n" + 
-			"	                               ^^^\n" + 
-			"The return type is incompatible with X.foo()\n" + 
-			"----------\n"
-		);
-	}
-
-	public void test045() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"class Foo {}\n" + 
-				"\n" + 
-				"interface Bar {\n" + 
-				"  Foo get(Class<?> c);\n" + 
-				"}\n" + 
-				"public class X implements Bar {\n" + 
-				"  public Foo get(Class c) { return null; }\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-
-	// ensure no unchecked warning
-	public void test046() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"interface IX <T> {\n" + 
-				"	public T doSomething();\n" + 
-				"}\n" + 
-				"public class X implements IX<Integer> {\n" + 
-				"   Zork z;\n" +
-				"	public Integer doSomething() {\n" + 
-				"		return null;\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87157
-	public void test047() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"interface Interface {\n" + 
-				"    Number getValue();\n" + 
-				"}\n" + 
-				"class C1 {\n" + 
-				"    public Double getValue() {\n" + 
-				"        return 0.0;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"public class X extends C1 implements Interface{\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"        Interface i=new X();\n" + 
-				"        System.out.println(i.getValue());\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-		"0.0");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85900
-	public void test048() {
-		this.runConformTest(
-			new String[] {
-				"X1.java",
-				"import java.util.*;\n" + 
-				"public class X1 extends LinkedHashMap<String, String> {\n" + 
-				"    public Object putAll(Map<String,String> a) { return null; }\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85900
-	public void test048a() {
-		this.runConformTest(
-			new String[] {
-				"X2.java",
-				"public class X2 extends Y<String> {\n" + 
-				"    public Object foo(I<String> z) { return null; }\n" + 
-				"}\n" +
-				"class Y<T> implements I<T> {\n" + 
-				"    public void foo(I<? extends T> a) {}\n" + 
-				"}\n" +
-				"interface I<T> {\n" +
-				"    public void foo(I<? extends T> a);\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85900
-	public void test048b() {
-		this.runNegativeTest(
-			new String[] {
-				"X3.java",
-				"public class X3 extends Y<String> {\n" + 
-				"    public void foo(I<String> z) {}\n" + 
-				"}\n" +
-				"class Y<T> implements I<T> {\n" + 
-				"    public void foo(I<? extends T> a) {}\n" + 
-				"}\n" +
-				"interface I<T> {\n" +
-				"    public void foo(I<? extends T> a);\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X3.java (at line 2)\r\n" + 
-			"	public void foo(I<String> z) {}\r\n" + 
-			"	            ^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(I<String>) of type X3 has the same erasure as foo(I<? extends T>) of type Y<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(I<java.lang.String>) in X and foo(I<? extends T>) in Y<java.lang.String> have the same erasure, yet neither overrides the other
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85900
-	public void test048c() {
-		this.runConformTest(
-			new String[] {
-				"X4.java",
-				"public class X4 extends Y<String> {\n" + 
-				"    public String foo(I<String> z) { return null; }\n" + 
-				"}\n" +
-				"class Y<T> implements I<T> {\n" + 
-				"    public Object foo(I<? extends T> a) { return null; }\n" + 
-				"}\n" +
-				"interface I<T> {\n" +
-				"    public Object foo(I<? extends T> a);\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85900
-	public void test048d() {
-		this.runConformTest(
-			new String[] {
-				"X5.java",
-				"public class X5 extends Y<String> {\n" + 
-				"    public Object foo(I<String> z) { return null; }\n" + 
-				"}\n" +
-				"class Y<T> implements I<T> {\n" + 
-				"    public String foo(I<? extends T> a) { return null; }\n" + 
-				"}\n" +
-				"interface I<T> {\n" +
-				"    public String foo(I<? extends T> a);\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85900
-	public void test048e() {
-		this.runConformTest(
-			new String[] {
-				"X6.java",
-				"public class X6 extends Y<String> {\n" + 
-				"    public void foo(I<String> z) {}\n" + 
-				"}\n" +
-				"class Y<T> implements I<T> {\n" + 
-				"    public Object foo(I<? extends T> a) { return null; }\n" + 
-				"}\n" +
-				"interface I<T> {\n" +
-				"    public Object foo(I<? extends T> a);\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85900
-	public void test048f() {
-		this.runConformTest(
-			new String[] {
-				"X7.java",
-				"public class X7 extends Y<String> {\n" + 
-				"    public String foo(I<String> z) { return null; }\n" + 
-				"}\n" +
-				"class Y<T> implements I<T> {\n" + 
-				"    public T foo(I<? extends T> a) { return null; }\n" + 
-				"}\n" +
-				"interface I<T> {\n" +
-				"    public T foo(I<? extends T> a);\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=85900
-	public void test048g() {
-		this.runNegativeTest(
-			new String[] {
-				"X8.java",
-				"public class X8 extends Y<String> {\n" + 
-				"    public Object foo(I<String> z) { return null; }\n" + 
-				"}\n" +
-				"class Y<T> implements I<T> {\n" + 
-				"    public T foo(I<? extends T> a) { return null; }\n" + 
-				"}\n" +
-				"interface I<T> {\n" +
-				"    public T foo(I<? extends T> a);\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X8.java (at line 2)\r\n" + 
-			"	public Object foo(I<String> z) { return null; }\r\n" + 
-			"	              ^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo(I<String>) of type X8 has the same erasure as foo(I<? extends T>) of type Y<T> but does not override it\n" + 
-			"----------\n"
-			// name clash: foo(I<java.lang.String>) in X7 and foo(I<? extends T>) in Y<java.lang.String> have the same erasure, yet neither overrides the other
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=88094
-	public void test049() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T> {\n" + 
-				"	T id(T x) { return x; }\n" + 
-				"	A id(A x) { return x; }\n" + 
-				"}\n" +
-				"class Y<T extends A> extends X<T> {\n" + 
-				"	@Override T id(T x) { return x; }\n" + 
-				"	@Override A id(A x) { return x; }\n" + 
-				"}\n" + 
-				"class A {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\n" + 
-			"	class Y<T extends A> extends X<T> {\n" + 
-			"	      ^\n" + 
-			"Name clash: The method id(A) of type X<T> has the same erasure as id(T) of type X<T> but does not override it\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 6)\n" + 
-			"	@Override T id(T x) { return x; }\n" + 
-			"	            ^^^^^^^\n" + 
-			"Method id(T) has the same erasure id(A) as another method in type Y<T>\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 7)\n" + 
-			"	@Override A id(A x) { return x; }\n" + 
-			"	            ^^^^^^^\n" + 
-			"Duplicate method id(A) in type Y<T>\n" + 
-			"----------\n"
-			// id(T) is already defined in Y
-			// id(java.lang.String) in Y overrides id(T) in X; return type requires unchecked conversion
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=94754
-	public void test050() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 public static <S extends A> S foo() { System.out.print(\"A\"); return null; }\n" + 
-				"		 public static <N extends B> N foo() { System.out.print(\"B\"); return null; }\n" + 
-				"		 public static void main(String[] args) {\n" + 
-				"		 	X.<A>foo();\n" + 
-				"		 	X.<B>foo();\n" + 
-				"		 	new X().<B>foo();\n" + 
-				"		 }\n" + 
-				"}\n" + 
-				"class A {}\n" + 
-				"class B {}\n"
-			},
-			"ABB"
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=94754
-	public void test050a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 public static <S extends A> void foo() { System.out.print(\"A\"); }\n" + 
-				"		 public static <N extends B> N foo() { System.out.print(\"B\"); return null; }\n" + 
-				"		 static void test () {\n" + 
-				"		 	X.foo();\n" + 
-				"		 	foo();\n" + 
-				"		 }\n" + 
-				"}\n" + 
-				"class A {}\n" + 
-				"class B {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\r\n" + 
-			"	X.foo();\r\n" + 
-			"	  ^^^\n" + 
-			"The method foo() is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 6)\r\n" + 
-			"	foo();\r\n" + 
-			"	^^^\n" + 
-			"The method foo() is ambiguous for the type X\n" + 
-			"----------\n"
-			// both references are ambiguous
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423 - variation
-	public void test050b() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	class C1 {\n" + 
-				"		Y foo(Object o) {  return null; } // duplicate\n" + 
-				"		Z foo(Object o) {  return null; } // duplicate\n" + 
-				"	}\n" + 
-				"	class C2 {\n" + 
-				"		<T extends Y> T foo(Object o) {  return null; } // ok\n" + 
-				"		<T extends Z> T foo(Object o) {  return null; } // ok\n" + 
-				"	}\n" + 
-				"	class C3 {\n" + 
-				"		A<Y> foo(Object o) {  return null; } // duplicate\n" + 
-				"		A<Z> foo(Object o) {  return null; } // duplicate\n" + 
-				"	}\n" + 
-				"	class C4 {\n" + 
-				"		Y foo(Object o) {  return null; } // duplicate\n" + 
-				"		<T extends Z> T foo(Object o) {  return null; } // duplicate\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A<T> {}" +
-				"class Y {}" +
-				"class Z {}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	Y foo(Object o) {  return null; } // duplicate\n" + 
-			"	  ^^^^^^^^^^^^^\n" + 
-			"Duplicate method foo(Object) in type X.C1\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	Z foo(Object o) {  return null; } // duplicate\n" + 
-			"	  ^^^^^^^^^^^^^\n" + 
-			"Duplicate method foo(Object) in type X.C1\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 11)\n" + 
-			"	A<Y> foo(Object o) {  return null; } // duplicate\n" + 
-			"	     ^^^^^^^^^^^^^\n" + 
-			"Duplicate method foo(Object) in type X.C3\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 12)\n" + 
-			"	A<Z> foo(Object o) {  return null; } // duplicate\n" + 
-			"	     ^^^^^^^^^^^^^\n" + 
-			"Duplicate method foo(Object) in type X.C3\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 15)\n" + 
-			"	Y foo(Object o) {  return null; } // duplicate\n" + 
-			"	  ^^^^^^^^^^^^^\n" + 
-			"Duplicate method foo(Object) in type X.C4\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 16)\n" + 
-			"	<T extends Z> T foo(Object o) {  return null; } // duplicate\n" + 
-			"	                ^^^^^^^^^^^^^\n" + 
-			"Duplicate method foo(Object) in type X.C4\n" + 
-			"----------\n"
-			// foo(java.lang.Object) is already defined in X.C1
-			// foo(java.lang.Object) is already defined in X.C3
-			// foo(java.lang.Object) is already defined in X.C4
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423 - variation
-	public void test050c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	class C5 {\n" + 
-				"		A<Y> foo(A<Y> o) {  return null; } // duplicate\n" + 
-				"		A<Z> foo(A<Z> o) {  return null; } // duplicate\n" + 
-				"	}\n" + 
-				"	class C6 {\n" + 
-				"		<T extends Y> T foo(A<Y> o) {  return null; } // ok\n" + 
-				"		<T extends Z> T foo(A<Z> o) {  return null; } // ok\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A<T> {}" +
-				"class Y {}" +
-				"class Z {}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\r\n" + 
-			"	A<Y> foo(A<Y> o) {  return null; } // duplicate\r\n" + 
-			"	     ^^^^^^^^^^^\n" + 
-			"Duplicate method foo(A<Y>) in type X.C5\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\r\n" + 
-			"	A<Z> foo(A<Z> o) {  return null; } // duplicate\r\n" + 
-			"	     ^^^^^^^^^^^\n" + 
-			"Duplicate method foo(A<Z>) in type X.C5\n" + 
-			"----------\n"
-			// name clash: foo(A<Y>) and foo(A<Z>) have the same erasure
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423 - variation
-	public void test050d() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	class C7 {\n" + 
-				"		<T extends Y, U> T foo(Object o) {  return null; } // ok\n" + 
-				"		<T extends Z> T foo(Object o) {  return null; } // ok\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A<T> {}" +
-				"class Y {}" +
-				"class Z {}"
-			},
-			""
-		);
-	}	
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423
-	public void test050e() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 <N extends B> N a(A<String> s) { return null; }\n" + 
-				"		 <N> Object a(A<Number> n) { return null; }\n" + 
-				"		 <N extends B> void b(A<String> s) {}\n" + 
-				"		 <N extends B> B b(A<Number> n) { return null; }\n" + 
-				"		 void c(A<String> s) {}\n" + 
-				"		 B c(A<Number> n) { return null; }\n" + 
-				"}\n" +
-				"class A<T> {}\n" + 
-				"class B {}\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423
-	public void test050f() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 <N extends B> N a(A<String> s) { return null; }\n" + 
-				"		 <N> B a(A<Number> n) { return null; }\n" + 
-				"}\n" +
-				"class A<T> {}\n" + 
-				"class B {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	<N extends B> N a(A<String> s) { return null; }\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method a(A<String>) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	<N> B a(A<Number> n) { return null; }\n" + 
-			"	      ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method a(A<Number>) in type X\n" + 
-			"----------\n"
-			// name clash: <N>a(A<java.lang.String>) and <N>a(A<java.lang.Number>) have the same erasure
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423
-	public void test050g() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 <N extends B> N b(A<String> s) { return null; }\n" + 
-				"		 <N extends B> B b(A<Number> n) { return null; }\n" + 
-				"}\n" +
-				"class A<T> {}\n" + 
-				"class B {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	<N extends B> N b(A<String> s) { return null; }\r\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method b(A<String>) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\r\n" + 
-			"	<N extends B> B b(A<Number> n) { return null; }\r\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method b(A<Number>) in type X\n" + 
-			"----------\n"
-			// name clash: <N>b(A<java.lang.String>) and <N>b(A<java.lang.Number>) have the same erasure
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423
-	public void test050h() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 B c(A<String> s) { return null; }\n" + 
-				"		 B c(A<Number> n) { return null; }\n" + 
-				"}\n" +
-				"class A<T> {}\n" + 
-				"class B {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	B c(A<String> s) { return null; }\r\n" + 
-			"	  ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method c(A<String>) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\r\n" + 
-			"	B c(A<Number> n) { return null; }\r\n" + 
-			"	  ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method c(A<Number>) in type X\n" + 
-			"----------\n"
-			// name clash: c(A<java.lang.String>) and c(A<java.lang.Number>) have the same erasure
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423
-	public void test050i() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 <N extends B> N a(A<Number> s) { return null; }\n" + 
-				"		 <N> Object a(A<Number> n) { return null; }\n" + 
-				"		 <N extends B> N b(A<Number> s) { return null; }\n" + 
-				"		 <N> Object b(A<String> n) { return null; }\n" + 
-				"}\n" +
-				"class A<T> {}\n" + 
-				"class B {}\n"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423
-	public void test050j() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 <N extends B> N a(A<Number> s) { return null; }\n" + 
-				"		 <N> B a(A<Number> n) { return null; }\n" + 
-				"		 <N extends B> N b(A<Number> s) { return null; }\n" + 
-				"		 <N> B b(A<String> n) { return null; }\n" + 
-				"}\n" +
-				"class A<T> {}\n" + 
-				"class B {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	<N extends B> N a(A<Number> s) { return null; }\r\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method a(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\r\n" + 
-			"	<N> B a(A<Number> n) { return null; }\r\n" + 
-			"	      ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method a(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 4)\r\n" + 
-			"	<N extends B> N b(A<Number> s) { return null; }\r\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method b(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 5)\r\n" + 
-			"	<N> B b(A<String> n) { return null; }\r\n" + 
-			"	      ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method b(A<String>) in type X\n" + 
-			"----------\n"
-			// name clash: <N>a(A<java.lang.Number>) and <N>a(A<java.lang.Number>) have the same erasure
-			// name clash: <N>b(A<java.lang.Number>) and <N>b(A<java.lang.String>) have the same erasure
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423
-	public void test050k() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 <N extends B> void a(A<Number> s) {}\n" + 
-				"		 <N extends B> B a(A<Number> n) { return null; }\n" + 
-				"		 <N extends B> Object b(A<Number> s) { return null; }\n" + 
-				"		 <N extends B> B b(A<Number> n) { return null; }\n" + 
-				"}\n" +
-				"class A<T> {}\n" + 
-				"class B {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	<N extends B> void a(A<Number> s) {}\n" + 
-			"	                   ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method a(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	<N extends B> B a(A<Number> n) { return null; }\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method a(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 4)\n" + 
-			"	<N extends B> Object b(A<Number> s) { return null; }\n" + 
-			"	                     ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method b(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 5)\n" + 
-			"	<N extends B> B b(A<Number> n) { return null; }\n" + 
-			"	                ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method b(A<Number>) in type X\n" + 
-			"----------\n"
-			// <N>a(A<java.lang.Number>) is already defined in X
-			// <N>b(A<java.lang.Number>) is already defined in X
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90423
-	public void test050l() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 void a(A<Number> s) {}\n" + 
-				"		 B a(A<Number> n) { return null; }\n" + 
-				"		 Object b(A<Number> s) {}\n" + 
-				"		 B b(A<Number> n) { return null; }\n" + 
-				"}\n" +
-				"class A<T> {}\n" + 
-				"class B {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	void a(A<Number> s) {}\r\n" + 
-			"	     ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method a(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\r\n" + 
-			"	B a(A<Number> n) { return null; }\r\n" + 
-			"	  ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method a(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 4)\r\n" + 
-			"	Object b(A<Number> s) {}\r\n" + 
-			"	       ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method b(A<Number>) in type X\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 5)\r\n" + 
-			"	B b(A<Number> n) { return null; }\r\n" + 
-			"	  ^^^^^^^^^^^^^^\n" + 
-			"Duplicate method b(A<Number>) in type X\n" + 
-			"----------\n"
-			// a(A<java.lang.Number>) is already defined in X
-			// b(A<java.lang.Number>) is already defined in X
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89470
-	public void test051() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X implements I {\n" + 
-				"		 public <T extends I> void foo(T t) {}\n" + 
-				"}\n" +
-				"interface I {\n" + 
-				"		 <T> void foo(T t);\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	public class X implements I {\r\n" + 
-			"	             ^\n" + 
-			"The type X must implement the inherited abstract method I.foo(T)\n" + 
-			"----------\n"
-			// X is not abstract and does not override abstract method <T>foo(T) in I
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89470
-	public void test051a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void foo(A<String> a) {}\n" + 
-				"	void foo(A<Integer> a) {}\n" +
-				"}\n" + 
-				"class A<T> {}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	void foo(A<String> a) {}\r\n" + 
-			"	     ^^^^^^^^^^^^^^^^\n" + 
-			"Duplicate method foo(A<String>) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\r\n" + 
-			"	void foo(A<Integer> a) {}\r\n" + 
-			"	     ^^^^^^^^^^^^^^^^^\n" + 
-			"Duplicate method foo(A<Integer>) in type X\n" + 
-			"----------\n"
-			// name clash: foo(A<java.lang.String>) and foo(A<java.lang.Integer>) have the same erasure
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89470
-	public void test051b() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void foo(A<String> a) {}\n" + 
-				"	Object foo(A<Integer> a) { return null; }\n" +
-				"}\n" + 
-				"class A<T> {}\n",
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=91728
-	public void test052() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"public class A<T> {\n" + 
-				"	public A test() { return null; }\n" + 
-				"	public A<T> test2() { return null; }\n" + 
-				"	public A<X> test3() { return null; }\n" + 
-				"	public <U> A<U> test4() { return null; }\n" + 
-				"}\n" +
-				"class B extends A<X> {\n" + 
-				"	@Override public B test() { return null; }\n" + 
-				"	@Override public B test2() { return null; }\n" + 
-				"	@Override public B test3() { return null; }\n" + 
-				"	@Override public <U> A<U> test4() { return null; }\n" + 
-				"}\n" +
-				"class X{}\n"
-			},
-			""
-		);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=91728
-	public void test052a() {
-		this.runNegativeTest(
-				new String[] {
-					"A.java",
-					"public class A<T> {\n" + 
-					"	public <U> A<U> test() { return null; }\n" + 
-					"	public <U> A<U> test2() { return null; }\n" + 
-					"	public <U> A<U> test3() { return null; }\n" + 
-					"}\n" +
-					"class B extends A<X> {\n" + 
-					"	@Override public B test() { return null; }\n" + 
-					"	@Override public A test2() { return null; }\n" + 
-					"	@Override public A<X> test3() { return null; }\n" + 
-					"}\n" +
-					"class X{}\n"
-				},
-				"----------\n" + 
-				"1. WARNING in A.java (at line 7)\n" + 
-				"	@Override public B test() { return null; }\n" + 
-				"	                 ^\n" + 
-				"Type safety: The return type B for test() from the type B needs unchecked conversion to conform to A<Object> from the type A<X>\n" + 
-				"----------\n" + 
-				"2. WARNING in A.java (at line 8)\n" + 
-				"	@Override public A test2() { return null; }\n" + 
-				"	                 ^\n" + 
-				"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-				"----------\n" + 
-				"3. WARNING in A.java (at line 8)\n" + 
-				"	@Override public A test2() { return null; }\n" + 
-				"	                 ^\n" + 
-				"Type safety: The return type A for test2() from the type B needs unchecked conversion to conform to A<U> from the type A<T>\n" + 
-				"----------\n" + 
-				"4. WARNING in A.java (at line 9)\n" + 
-				"	@Override public A<X> test3() { return null; }\n" + 
-				"	                 ^\n" + 
-				"Type safety: The return type A<X> for test3() from the type B needs unchecked conversion to conform to A<Object> from the type A<X>\n" + 
-				"----------\n"
-				// warning: test() in B overrides <U>test() in A; return type requires unchecked conversion
-				// warning: test2() in B overrides <U>test2() in A; return type requires unchecked conversion
-				// warning: test3() in B overrides <U>test3() in A; return type requires unchecked conversion
-			);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=91728
-	public void test053() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"class X {\n" + 
-				"	void test(A a) { B b = a.foo(); }\n" + 
-				"	void test2(A<X> a) { B b = a.foo(); }\n" + 
-				"	void test3(B b) { B bb = b.foo(); }\n" + 
-				"}\n" +
-				"class A<T> {\n" + 
-				"	<U> A<U> foo() { return null; }\n" + 
-				"}\n" +
-				"class B extends A<X> {\n" + 
-				"	@Override B foo() { return null; }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 2)\n" + 
-			"	void test(A a) { B b = a.foo(); }\n" + 
-			"	          ^\n" + 
-			"A is a raw type. References to generic type A<T> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 2)\n" + 
-			"	void test(A a) { B b = a.foo(); }\n" + 
-			"	                       ^^^^^^^\n" + 
-			"Type mismatch: cannot convert from A to B\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 3)\n" + 
-			"	void test2(A<X> a) { B b = a.foo(); }\n" + 
-			"	                           ^^^^^^^\n" + 
-			"Type mismatch: cannot convert from A<Object> to B\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 10)\n" + 
-			"	@Override B foo() { return null; }\n" + 
-			"	          ^\n" + 
-			"Type safety: The return type B for foo() from the type B needs unchecked conversion to conform to A<Object> from the type A<X>\n" + 
-			"----------\n"
-			// 2: incompatible types
-			// 3: incompatible types; no instance(s) of type variable(s) U exist so that A<U> conforms to B
-			// 10 warning: foo() in B overrides <U>foo() in A; return type requires unchecked conversion
-		);
-	}
-
-	// more duplicate tests, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=94897
-	public void test054() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void a(Object x) {}\n" +
-				"	<T> T a(T x) {  return null; }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	void a(Object x) {}\n" + 
-			"	     ^^^^^^^^^^^\n" + 
-			"Duplicate method a(Object) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	<T> T a(T x) {  return null; }\n" + 
-			"	      ^^^^^^\n" + 
-			"Method a(T) has the same erasure a(Object) as another method in type X\n" + 
-			"----------\n"
-			// a(X) is already defined in X
-		);
-	}
-	// more duplicate tests, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=94897
-	public void test054a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	<T1, T2> String aaa(X x) {  return null; }\n" + 
-				"	<T extends X> T aaa(T x) {  return null; }\n" + 
-				"	<T> String aa(X x) {  return null; }\n" + 
-				"	<T extends X> T aa(T x) {  return null; }\n" + 
-				"	String a(X x) {  return null; }\n" + // dup
-				"	<T extends X> T a(T x) {  return null; }\n" + 
-
-				"	<T> String z(X x) { return null; }\n" + 
-				"	<T, S> Object z(X x) { return null; }\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 6)\r\n" + 
-			"	String a(X x) {  return null; }\r\n" + 
-			"	       ^^^^^^\n" + 
-			"Duplicate method a(X) in type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 7)\r\n" + 
-			"	<T extends X> T a(T x) {  return null; }\r\n" + 
-			"	                ^^^^^^\n" + 
-			"Method a(T) has the same erasure a(X) as another method in type X\n" + 
-			"----------\n"
-			// a(X) is already defined in X
-		);
-	}
-	// more duplicate tests, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=94897
-	public void test054b() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X<T> {\n" + 
-				"		 Object foo(X<T> t) { return null; }\n" + 
-				"		 <S> String foo(X<T> s) { return null; }\n" + 
-				"}\n"
-			},
-			""
-		);
-	}
-	// more duplicate tests, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=94897
-	public void test054c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T> {\n" + 
-				"		<T1 extends X<T1>> void dupT() {}\n" + 
-				"		<T2 extends X<T2>> Object dupT() {return null;}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	<T1 extends X<T1>> void dupT() {}\r\n" + 
-			"	                        ^^^^^^\n" + 
-			"Duplicate method dupT() in type X<T>\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\r\n" + 
-			"	<T2 extends X<T2>> Object dupT() {return null;}\r\n" + 
-			"	                          ^^^^^^\n" + 
-			"Duplicate method dupT() in type X<T>\n" + 
-			"----------\n"
-			// <T1>dupT() is already defined in X
-		);
-	}
-	// more duplicate tests, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=94897
-	public void test054d() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	<T> T a(A<T> t) {return null;}\n" + 
-				"	<T> String a(A<Object> o) {return null;}\n" +
-				"	<T> T aa(A<T> t) {return null;}\n" + 
-				"	String aa(A<Object> o) {return null;}\n" +
-				"}\n" + 
-				"class A<T> {}\n",
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95933
-	public void test055() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		A a = new C();\n" + 
-				"		try { a.f(new Object()); } catch (ClassCastException e) {\n" +
-				"			System.out.println(1);\n" +
-				"		}\n" +
-				"	}\n" + 
-				"}\n" +
-				"interface A<T> { void f(T x); }\n" + 
-				"interface B extends A<String> { void f(String x); }\n" + 
-				"class C implements B { public void f(String x) {} }\n"
-			},
-			"1"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=97809
-	public void test056() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"   public static String bind(String message, Object binding) { return null; }\n" + 
-				"   public static String bind(String message, Object[] bindings) { return null; }\n" + 
-				"}\n" + 
-				"class Y extends X {\n" + 
-				"   public static String bind(String message, Object binding) { return null; }\n" + 
-				"   public static String bind(String message, Object[] bindings) { return null; }\n" + 
-				"}\n" + 
-				"class Z {\n" + 
-				"   void bar() { Y.bind(\"\", new String[] {\"\"}); }\n" + 
-				"}\n"
-			},
-			"");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=84035
-	public void test057() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"   public static void main(String[] args) {\n" + 
-				"   	A<Integer> x = new A<Integer>();\n" + 
-				"   	B<Integer> y = new B<Integer>();\n" + 
-				"   	new X().print(x);\n" + 
-				"   	new X().print(y);\n" + 
-				"	}\n" +
-				"	public <T extends IA<?>> void print(T a) { System.out.print(1); }\n" +
-				"	public <T extends IB<?>> void print(T a) { System.out.print(2); }\n" +
-				"}\n" +
-				"interface IA<E> {}\n" + 
-				"interface IB<E> extends IA<E> {}\n" + 
-				"class A<E> implements IA<E> {}\n" + 
-				"class B<E> implements IB<E> {}\n"
-			},
-			"12");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=84035
-	public void test057a() {
-		this.runConformTest(
-			new String[] {
-				"XX.java",
-				"public class XX {\n" + 
-				"   public static void main(String[] args) {\n" + 
-				"   	A<Integer> x = new A<Integer>();\n" + 
-				"   	B<Integer> y = new B<Integer>();\n" + 
-				"   	print(x);\n" + 
-				"   	print(y);\n" + 
-				"	}\n" +
-				"	public static <T extends IA<?>> void print(T a) { System.out.print(3); }\n" +
-				"	public static <T extends IB<?>> void print(T a) { System.out.print(4); }\n" +
-				"}\n" +
-				"interface IA<E> {}\n" + 
-				"interface IB<E> extends IA<E> {}\n" + 
-				"class A<E> implements IA<E> {}\n" + 
-				"class B<E> implements IB<E> {}\n"
-			},
-			"34");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=94898
-	public void test058() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X <B extends Number> {\n" + 
-				"   public static void main(String[] args) {\n" + 
-				"   	X<Integer> x = new X<Integer>();\n" + 
-				"   	x.aaa(null);\n" + 
-				"   	x.aaa(15);\n" + 
-				"	}\n" +
-				"	<T> T aaa(T t) { System.out.print('T'); return null; }\n" +
-				"	void aaa(B b) { System.out.print('B'); }\n" +
-				"}\n"
-			},
-			"BB");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=94898
-	public void test058a() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<A> {\n" + 
-				"   void test() {\n" + 
-				"   	new X<Object>().foo(\"X\");\n" + 
-				"   	new X<Object>().foo2(\"X\");\n" + 
-				"   }\n" + 
-				"	<T> T foo(T t) {return null;}\n" +
-				"	void foo(A a) {}\n" +
-				"	<T> T foo2(T t) {return null;}\n" +
-				"	<T> void foo2(A a) {}\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\r\n" + 
-			"	new X<Object>().foo(\"X\");\r\n" + 
-			"	                ^^^\n" + 
-			"The method foo(String) is ambiguous for the type X<Object>\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\r\n" + 
-			"	new X<Object>().foo2(\"X\");\r\n" + 
-			"	                ^^^^\n" + 
-			"The method foo2(String) is ambiguous for the type X<Object>\n" + 
-			"----------\n"
-			// both references are ambiguous
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=94898
-	public void test058b() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<A> extends Y<A> {\n" + 
-				"   void test() {\n" + 
-				"   	new X<Object>().foo(\"X\");\n" + 
-				"   	new X<Object>().foo2(\"X\");\n" + 
-				"   }\n" + 
-				"	<T> T foo(T t) {return null;}\n" +
-				"	<T> T foo2(T t) {return null;}\n" +
-				"}\n" +
-				"class Y<A> {\n" +
-				"	void foo(A a) {}\n" +
-				"	<T> void foo2(A a) {}\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\r\n" + 
-			"	new X<Object>().foo(\"X\");\r\n" + 
-			"	                ^^^\n" + 
-			"The method foo(String) is ambiguous for the type X<Object>\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\r\n" + 
-			"	new X<Object>().foo2(\"X\");\r\n" + 
-			"	                ^^^^\n" + 
-			"The method foo2(String) is ambiguous for the type X<Object>\n" + 
-			"----------\n"
-			// both references are ambiguous
-		);
-	}
-
-	public void test059() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {new B().foo(\"aa\");}\n" + 
-				"}\n" +
-				"class A { <U> void foo(U u) {System.out.print(false);} }\n" + 
-				"class B extends A { <V> void foo(String s) {System.out.print(true);} }\n"
-			},
-			"true");
-	}
-	public void test059a() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	public static void main(String[] args) {new B().foo(\"aa\");}\n" + 
-				"}\n" +
-				"class A { <U> void foo(String s) {System.out.print(true);} }\n" + 
-				"class B extends A { <V> void foo(V v) {System.out.print(false);} }\n"
-			},
-			"true");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90619
-	public void test060() {
-		this.runConformTest(
-			new String[] {
-				"I.java",
-				"import java.util.Iterator;\n" +
-				"public interface I {\n" +
-				"	void method(Iterator<Object> iter);\n" +
-				"	public static class TestClass implements I {\n" +
-				"		public void method(Iterator iter) {}\n" +
-				"	}\n" +
-				"}"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90619
-	public void test060b() {
-		this.runConformTest(
-			new String[] {
-				"I2.java",
-				"import java.util.Iterator;\n" +
-				"public interface I2 {\n" +
-				"	void method(Iterator<Object>[] iter);\n" +
-				"	public static class TestClass implements I2 {\n" +
-				"		public void method(Iterator[] iter) {}\n" +
-				"	}\n" +
-				"}"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90619
-	public void test060c() {
-		this.runNegativeTest(
-			new String[] {
-				"I3.java",
-				"import java.util.Iterator;\n" +
-				"public interface I3 {\n" +
-				"	void method(Iterator<Object>[] iter);\n" +
-				"	public static class TestClass implements I3 {\n" +
-				"		public void method(Iterator[][] iter) {}\n" +
-				"	}\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in I3.java (at line 4)\n" + 
-			"	public static class TestClass implements I3 {\n" + 
-			"	                    ^^^^^^^^^\n" + 
-			"The type I3.TestClass must implement the inherited abstract method I3.method(Iterator<Object>[])\n" + 
-			"----------\n" + 
-			"2. WARNING in I3.java (at line 5)\n" + 
-			"	public void method(Iterator[][] iter) {}\n" + 
-			"	                   ^^^^^^^^\n" + 
-			"Iterator is a raw type. References to generic type Iterator<E> should be parameterized\n" + 
-			"----------\n"
-			// does not override abstract method method(java.util.Iterator<java.lang.Object>[]) in I3
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=99106
-	public void test061() {
-		this.runNegativeTest(
-			new String[] {
-				"Try.java",
-				"public class Try {\n" +
-				"	public static void main(String[] args) {\n" +
-				"		Ex<String> ex = new Ex<String>();\n" +
-				"		ex.one(\"eclipse\", new Integer(1));\n" +
-				"		ex.two(new Integer(1));\n" +
-				"		ex.three(\"eclipse\");\n" +
-				"		ex.four(\"eclipse\");\n" +
-				"		System.out.print(',');\n" +
-				"		Ex ex2 = ex;\n" +
-				"		ex2.one(\"eclipse\", new Integer(1));\n" + // unchecked warning
-				"		ex2.two(new Integer(1));\n" + // unchecked warning
-				"		ex2.three(\"eclipse\");\n" + // unchecked warning
-				"		ex2.four(\"eclipse\");\n" + // unchecked warning
-				"	}\n" +
-				"}\n" +
-				"class Top<TC> {\n" +
-				"	<TM> void one(TC cTop, TM mTop) { System.out.print(-1); }\n" +
-				"	<TM> void two(TM mTop) { System.out.print(-2); }\n" +
-				"	void three(TC cTop) { System.out.print(-3); }\n" +
-				"	<TM> void four(TC cTop) { System.out.print(-4); }\n" +
-				"}\n" +
-				"class Ex<C> extends Top<C> {\n" +
-				"	@Override <M> void one(C cEx, M mEx) { System.out.print(1); }\n" +
-				"	@Override <M> void two(M mEx) { System.out.print(2); }\n" +
-				"	@Override void three(C cEx) { System.out.print(3); }\n" +
-				"	@Override <M> void four(C cEx) { System.out.print(4); }\n" +
-				"}"				
-			},
-			"----------\n" + 
-			"1. WARNING in Try.java (at line 9)\n" + 
-			"	Ex ex2 = ex;\n" + 
-			"	^^\n" + 
-			"Ex is a raw type. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in Try.java (at line 10)\n" + 
-			"	ex2.one(\"eclipse\", new Integer(1));\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: The method one(Object, Object) belongs to the raw type Ex. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n" + 
-			"3. WARNING in Try.java (at line 11)\n" + 
-			"	ex2.two(new Integer(1));\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: The method two(Object) belongs to the raw type Ex. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in Try.java (at line 12)\n" + 
-			"	ex2.three(\"eclipse\");\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: The method three(Object) belongs to the raw type Ex. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n" + 
-			"5. WARNING in Try.java (at line 13)\n" + 
-			"	ex2.four(\"eclipse\");\n" + 
-			"	^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: The method four(Object) belongs to the raw type Ex. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=99106
-	public void test062() {
-		String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_6
-		?	"----------\n" + 
-			"1. ERROR in Errors.java (at line 6)\n" + 
-			"	ex.six(\"eclipse\");\n" + 
-			"	   ^^^\n" + 
-			"The method six(String) is ambiguous for the type Ex<String>\n" + 
-			"----------\n" + 
-			"2. WARNING in Errors.java (at line 7)\n" + 
-			"	Ex ex2 = ex;\n" + 
-			"	^^\n" + 
-			"Ex is a raw type. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n" + 
-			"3. WARNING in Errors.java (at line 9)\n" + 
-			"	ex2.five(\"eclipse\");\n" + 
-			"	^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: The method five(Object) belongs to the raw type Ex. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n" + 
-			"4. ERROR in Errors.java (at line 10)\n" + 
-			"	ex2.six(\"eclipse\");\n" + 
-			"	    ^^^\n" + 
-			"The method six(Object) is ambiguous for the type Ex\n" + 
-			"----------\n" + 
-			"5. ERROR in Errors.java (at line 21)\n" + 
-			"	@Override <M> void six(C cEx) {}\n" + 
-			"	                   ^^^^^^^^^^\n" + 
-			"Name clash: The method six(C) of type Ex<C> has the same erasure as six(TC) of type Top<TC> but does not override it\n" + 
-			"----------\n" + 
-			"6. ERROR in Errors.java (at line 21)\n" + 
-			"	@Override <M> void six(C cEx) {}\n" + 
-			"	                   ^^^^^^^^^^\n" + 
-			"The method six(C) of type Ex<C> must override a superclass method\n" + 
-			"----------\n"
-		:	"----------\n" + 
-			"1. ERROR in Errors.java (at line 6)\n" + 
-			"	ex.six(\"eclipse\");\n" + 
-			"	   ^^^\n" + 
-			"The method six(String) is ambiguous for the type Ex<String>\n" + 
-			"----------\n" + 
-			"2. WARNING in Errors.java (at line 7)\n" + 
-			"	Ex ex2 = ex;\n" + 
-			"	^^\n" + 
-			"Ex is a raw type. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n" + 
-			"3. WARNING in Errors.java (at line 9)\n" + 
-			"	ex2.five(\"eclipse\");\n" + 
-			"	^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: The method five(Object) belongs to the raw type Ex. References to generic type Ex<C> should be parameterized\n" + 
-			"----------\n" + 
-			"4. ERROR in Errors.java (at line 10)\n" + 
-			"	ex2.six(\"eclipse\");\n" + 
-			"	    ^^^\n" + 
-			"The method six(Object) is ambiguous for the type Ex\n" + 
-			"----------\n" + 
-			"5. ERROR in Errors.java (at line 21)\n" + 
-			"	@Override <M> void six(C cEx) {}\n" + 
-			"	                   ^^^^^^^^^^\n" + 
-			"Name clash: The method six(C) of type Ex<C> has the same erasure as six(TC) of type Top<TC> but does not override it\n" + 
-			"----------\n" + 
-			"6. ERROR in Errors.java (at line 21)\n" + 
-			"	@Override <M> void six(C cEx) {}\n" + 
-			"	                   ^^^^^^^^^^\n" + 
-			"The method six(C) of type Ex<C> must override or implement a supertype method\n" + 
-			"----------\n";		
-				this.runNegativeTest(
-			new String[] {
-				"Errors.java",
-				"public class Errors {\n" +
-				"	void foo() {\n" +
-				"		Ex<String> ex = new Ex<String>();\n" +
-				"		ex.proof(\"eclipse\");\n" +
-				"		ex.five(\"eclipse\");\n" +
-				"		ex.six(\"eclipse\");\n" +
-				"		Ex ex2 = ex;\n" +
-				"		ex2.proof(\"eclipse\");\n" +
-				"		ex2.five(\"eclipse\");\n" +
-				"		ex2.six(\"eclipse\");\n" +
-				"	}\n" +
-				"}\n" +
-				"class Top<TC> {\n" +
-				"	<TM> void proof(Object cTop) {}\n" +
-				"	<TM> void five(TC cTop) {}\n" +
-				"	void six(TC cTop) {}\n" +
-				"}\n" +
-				"class Ex<C> extends Top<C> {\n" +
-				"	@Override void proof(Object cTop) {}\n" +
-				"	@Override void five(C cEx) {}\n" +
-				"	@Override <M> void six(C cEx) {}\n" +
-				"}"
-			},
-			expectedOutput
-			// we disagree about the ambiguous errors on lines 5, 9 & 20, see the message sends to proof()
-			// 5: reference to five is ambiguous, both method <TM>five(TC) in Top<java.lang.String> and method five(C) in Ex<java.lang.String> match
-			// 6: reference to six is ambiguous, both method six(TC) in Top<java.lang.String> and method <M>six(C) in Ex<java.lang.String> match
-			// 9: reference to five is ambiguous, both method <TM>five(TC) in Top and method five(C) in Ex match
-			// 9: warning: [unchecked] unchecked call to <TM>five(TC) as a member of the raw type Top
-			// 10: reference to six is ambiguous, both method six(TC) in Top and method <M>six(C) in Ex match
-			// 10: warning: [unchecked] unchecked call to six(TC) as a member of the raw type Top
-			// 20: method does not override a method from its superclass
-			// 21: method does not override a method from its superclass
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=104551
-	public void test063() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"interface IStructuredContentProvider<I, E extends I> {\n" + 
-				"    public E[] getElements(I inputElement);\n" + 
-				"    public E[] getChildren(E parent);\n" + 
-				"}\n" + 
-				"\n" + 
-				"public class X implements IStructuredContentProvider {\n" + 
-				"// eclipse error: The type X must implement the inherited\n" + 
-				"// abstract method IStructuredContentProvider.getChildren(I)\n" + 
-				"\n" + 
-				"    public Object[] getElements(Object inputElement) {\n" + 
-				"        // eclipse error: The return type is incompatible with\n" + 
-				"        // IStructuredContentProvider.getElements(Object)\n" + 
-				"        return null;\n" + 
-				"    }\n" + 
-				"\n" + 
-				"    public Object[] getChildren(Object parent) {\n" + 
-				"        // eclipse error: Name clash: The method getChildren(Object) of type\n" + 
-				"        // X has the same erasure as getChildren(E) of type\n" + 
-				"        // IStructuredContentProvider<I,E> but does not override it\n" + 
-				"        return null;\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=104551 - variation
-	public void test064() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"interface IStructuredContentProvider<I, E extends I> {\n" + 
-				"    public E[] getElements(I inputElement);\n" + 
-				"    public E[] getChildren(E parent);\n" + 
-				"}\n" + 
-				"\n" + 
-				"public class X implements IStructuredContentProvider<Object,Object> {\n" + 
-				"// eclipse error: The type X must implement the inherited\n" + 
-				"// abstract method IStructuredContentProvider.getChildren(I)\n" + 
-				"\n" + 
-				"    public Object[] getElements(Object inputElement) {\n" + 
-				"        // eclipse error: The return type is incompatible with\n" + 
-				"        // IStructuredContentProvider.getElements(Object)\n" + 
-				"        return null;\n" + 
-				"    }\n" + 
-				"\n" + 
-				"    public Object[] getChildren(Object parent) {\n" + 
-				"        // eclipse error: Name clash: The method getChildren(Object) of type\n" + 
-				"        // X has the same erasure as getChildren(E) of type\n" + 
-				"        // IStructuredContentProvider<I,E> but does not override it\n" + 
-				"        return null;\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=104551 - variation
-	public void test065() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.List;\n" + 
-				"\n" + 
-				"interface IStructuredContentProvider<I, E extends List<String>> {\n" + 
-				"    public E[] getElements(I inputElement);\n" + 
-				"    public E[] getChildren(E parent);\n" + 
-				"}\n" + 
-				"\n" + 
-				"public class X implements IStructuredContentProvider {\n" + 
-				"// eclipse error: The type X must implement the inherited\n" + 
-				"// abstract method IStructuredContentProvider.getChildren(I)\n" + 
-				"\n" + 
-				"    public List[] getElements(Object inputElement) {\n" + 
-				"        // eclipse error: The return type is incompatible with\n" + 
-				"        // IStructuredContentProvider.getElements(Object)\n" + 
-				"        return null;\n" + 
-				"    }\n" + 
-				"\n" + 
-				"    public List[] getChildren(List parent) {\n" + 
-				"        // eclipse error: Name clash: The method getChildren(Object) of type\n" + 
-				"        // X has the same erasure as getChildren(E) of type\n" + 
-				"        // IStructuredContentProvider<I,E> but does not override it\n" + 
-				"        return null;\n" + 
-				"    }\n" + 
-				"}\n"
-			},
-			"");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=103849
-	public void test066() {
-		this.runConformTest(
-			new String[] {
-				"JukeboxImpl.java",
-				"public class JukeboxImpl implements Jukebox {\n" + 
-				"    public <M extends Music,A extends Artist<M>> A getArtist (M music){return null;}\n" + 
-				"    void test () { getArtist(new Rock()); }\n" + 
-				"}\n" + 
-				"interface Jukebox {\n" + 
-				"	<M extends Music, A extends Artist<M>> A getArtist (M music);\n" + 
-				"}\n" + 
-				"interface Music {}\n" + 
-				"class Rock implements Music {}\n" + 
-				"interface Artist<M extends Music> {}\n"
-			},
-			"");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=107098
-	public void test067() {
-		this.runConformTest(
-			new String[] {
-				"NoErrors.java",
-				"public class NoErrors {\n" + 
-				"    public static void main(String[] args) { new B().foo2(1, 10); }\n" + 
-				"}\n" + 
-				"class A<T> {\n" + 
-				"	<S1 extends T> void foo2(Number t, S1 s) { System.out.print(false); }\n" + 
-				"}\n" + 
-				"class B extends A<Number> {\n" + 
-				"	<S2 extends Number> void foo2(Number t, S2 s) { System.out.print(true); }\n" + 
-				"}\n"
-			},
-			"true");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=107681
-	public void test068() {
-		this.runConformTest(
-			new String[] {
-				"ReflectionNavigator.java",
-				"import java.lang.reflect.Type;\n" +
-				"public class ReflectionNavigator implements Navigator<Type> {\n" + 
-				"    public <T> Class<T> erasure(Type t) { return null; }\n" + 
-				"}\n" + 
-				"interface Navigator<TypeT> {\n" + 
-				"	<T> TypeT erasure(TypeT x);\n" + 
-				"}\n" + 
-				"class Usage {\n" + 
-				"	public void foo(ReflectionNavigator r, Type t) { r.erasure(t); }\n" + 
-				"}\n"
-			},
-			"");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=108203
-	public void test069() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.lang.reflect.Type;\n" +
-				"public class X implements I<A> {\n" + 
-				"    public <N extends A> void x1() {}\n" + 
-				"    public <N extends Number> void x2() {}\n" + 
-				"    public <N extends Number> void x3() {}\n" + 
-				"}\n" + 
-				"interface I<V> {\n" + 
-				"	<N extends V> void x1();\n" + 
-				"	<N extends String> void x2();\n" + 
-				"	<N extends Object> void x3();\n" + 
-				"}\n" + 
-				"class A {}\n" + 
-				"class B<T> {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	public class X implements I<A> {\r\n" + 
-			"	             ^\n" + 
-			"The type X must implement the inherited abstract method I<A>.x3()\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 2)\r\n" + 
-			"	public class X implements I<A> {\r\n" + 
-			"	             ^\n" + 
-			"The type X must implement the inherited abstract method I<A>.x2()\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 4)\r\n" + 
-			"	public <N extends Number> void x2() {}\r\n" + 
-			"	                               ^^^^\n" + 
-			"Name clash: The method x2() of type X has the same erasure as x2() of type I<V> but does not override it\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 5)\r\n" + 
-			"	public <N extends Number> void x3() {}\r\n" + 
-			"	                               ^^^^\n" + 
-			"Name clash: The method x3() of type X has the same erasure as x3() of type I<V> but does not override it\n" + 
-			"----------\n" + 
-			"5. WARNING in X.java (at line 9)\r\n" + 
-			"	<N extends String> void x2();\r\n" + 
-			"	           ^^^^^^\n" + 
-			"The type parameter N should not be bounded by the final type String. Final types cannot be further extended\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=101049
-	public void test070() {
-		this.runNegativeTest(
-			new String[] {
-				"BooleanFactory.java",
-				"interface Factory<T> {\n" +
-				"	<U extends T> U create(Class<U> c);\n" + 
-				"}\n" + 
-				"public class BooleanFactory implements Factory<Boolean> {\n" + 
-				"	public <U extends Boolean> U create(Class<U> c) {\n" + 
-				"		try { return c.newInstance(); } catch(Exception e) { return null; }\n" +
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in BooleanFactory.java (at line 5)\n" + 
-			"	public <U extends Boolean> U create(Class<U> c) {\n" + 
-			"	                  ^^^^^^^\n" + 
-			"The type parameter U should not be bounded by the final type Boolean. Final types cannot be further extended\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=107045
-	public void test071() {
-		String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_6
-		?	"----------\n" + 
-			"1. ERROR in D.java (at line 2)\r\n" + 
-			"	@Override void m(Number t) {}\r\n" + 
-			"	               ^^^^^^^^^^^\n" + 
-			"Name clash: The method m(Number) of type D has the same erasure as m(T) of type A<T> but does not override it\n" + 
-			"----------\n" + 
-			"2. ERROR in D.java (at line 2)\r\n" + 
-			"	@Override void m(Number t) {}\r\n" + 
-			"	               ^^^^^^^^^^^\n" + 
-			"The method m(Number) of type D must override a superclass method\n" + 
-			"----------\n" + 
-			"3. WARNING in D.java (at line 6)\r\n" + 
-			"	class B<S extends Integer> extends A<S> { @Override void m(S t) {} }\r\n" + 
-			"	                  ^^^^^^^\n" + 
-			"The type parameter S should not be bounded by the final type Integer. Final types cannot be further extended\n" + 
-			"----------\n"
-		:	"----------\n" + 
-			"1. ERROR in D.java (at line 2)\n" + 
-			"	@Override void m(Number t) {}\n" + 
-			"	               ^^^^^^^^^^^\n" + 
-			"Name clash: The method m(Number) of type D has the same erasure as m(T) of type A<T> but does not override it\n" + 
-			"----------\n" + 
-			"2. ERROR in D.java (at line 2)\n" + 
-			"	@Override void m(Number t) {}\n" + 
-			"	               ^^^^^^^^^^^\n" + 
-			"The method m(Number) of type D must override or implement a supertype method\n" + 
-			"----------\n" + 
-			"3. WARNING in D.java (at line 6)\n" + 
-			"	class B<S extends Integer> extends A<S> { @Override void m(S t) {} }\n" + 
-			"	                  ^^^^^^^\n" + 
-			"The type parameter S should not be bounded by the final type Integer. Final types cannot be further extended\n" + 
-			"----------\n";
-		this.runNegativeTest(
-			new String[] {
-				"D.java",
-				"class D extends B<Integer> {\n" +
-				"	@Override void m(Number t) {}\n" + 
-				"	@Override void m(Integer t) {}\n" + 
-				"}\n" + 
-				"class A<T extends Number> { void m(T t) {} }\n" +
-				"class B<S extends Integer> extends A<S> { @Override void m(S t) {} }"
-			},
-			expectedOutput);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=108780
-	public void test072() {
-		this.runConformTest(
-			new String[] {
-				"B.java",
-				"class A<E> { E foo(E e) { return null; } }\n" + 
-				"class B<T> extends A<T> {\n" +
-				"	@Override T foo(Object arg0) { return null; }\n" +
-				"}"
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=111350
-	public void test073() {
-		this.runConformTest(
-			new String[] {
-				"NumericArray.java",
-				"class Array<T> {\n" + 
-				"	public void add(T t) { System.out.println(false); }\n" + 
-				"}\n" + 
-				"public class NumericArray<T extends Number> extends Array<T> {\n" +
-				"	public static void main(String[] s) { new NumericArray<Integer>().add(1); }\n" +
-				"	@Override public void add(Number n) { System.out.println(true); }\n" +
-				"}"
-			},
-			"true"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=111350
-	public void test073a() {
-		this.runConformTest(
-			new String[] {
-				"NumericArray2.java",
-				"class Array<T> {\n" + 
-				"	public T add(T t) { System.out.println(false); return null; }\n" + 
-				"}\n" + 
-				"public class NumericArray2<T extends Number> extends Array<T> {\n" +
-				"	public static void main(String[] s) { new NumericArray2<Integer>().add(1); }\n" +
-				"	@Override public T add(Number n) { System.out.println(true); return null; }\n" +
-				"}"
-			},
-			"true"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=111350
-	public void test073b() {
-		this.runConformTest(
-			new String[] {
-				"NumericArray3.java",
-				"class Array<T> {\n" + 
-				"	public <U extends Number> void add(U u) {}\n" + 
-				"}\n" + 
-				"public class NumericArray3<T extends Number> extends Array<T> {\n" +
-				"	public static void main(String[] s) { new NumericArray3<Integer>().add(1); }\n" +
-				"	@Override public void add(Number n) { System.out.println(true); }\n" +
-				"}"
-			},
-			"true"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=111350
-	public void test073c() {
-		String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_6
-		?	"----------\n" + 
-			"1. ERROR in NumericArray4.java (at line 5)\r\n" + 
-			"	@Override public <U> void add(Number n) {}\r\n" + 
-			"	                          ^^^^^^^^^^^^^\n" + 
-			"The method add(Number) of type NumericArray4<T> must override a superclass method\n" + 
-			"----------\n"
-		:	"----------\n" + 
-			"1. ERROR in NumericArray4.java (at line 5)\n" + 
-			"	@Override public <U> void add(Number n) {}\n" + 
-			"	                          ^^^^^^^^^^^^^\n" + 
-			"The method add(Number) of type NumericArray4<T> must override or implement a supertype method\n" + 
-			"----------\n";
-		this.runNegativeTest(
-			new String[] {
-				"NumericArray4.java",
-				"class Array<T> {\n" + 
-				"	public <U> void add(T t) {}\n" + 
-				"}\n" + 
-				"public class NumericArray4<T extends Number> extends Array<T> {\n" +
-				"	@Override public <U> void add(Number n) {}\n" +
-				"}"
-			},
-			expectedOutput);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=111350
-	public void test073d() {
-		String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_6
-		?	"----------\n" + 
-			"1. ERROR in NumericArray5.java (at line 5)\r\n" + 
-			"	@Override public void add(Number n, Integer i) {}\r\n" + 
-			"	                      ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The method add(Number, Integer) of type NumericArray5<T> must override a superclass method\n" + 
-			"----------\n"
-		:	"----------\n" + 
-			"1. ERROR in NumericArray5.java (at line 5)\n" + 
-			"	@Override public void add(Number n, Integer i) {}\n" + 
-			"	                      ^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The method add(Number, Integer) of type NumericArray5<T> must override or implement a supertype method\n" + 
-			"----------\n";		
-		this.runNegativeTest(
-			new String[] {
-				"NumericArray5.java",
-				"class Array<T> {\n" + 
-				"	public <U> void add(T t, U u) {}\n" + 
-				"}\n" + 
-				"public class NumericArray5<T extends Number> extends Array<T> {\n" +
-				"	@Override public void add(Number n, Integer i) {}\n" +
-				"}"
-			},
-			expectedOutput);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=100970
-	public void test074() {
-		String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_6
-		?	"----------\n" + 
-			"1. WARNING in I.java (at line 2)\n" + 
-			"	interface J extends I { @Override void clone(); }\n" + 
-			"	                                  ^^^^\n" + 
-			"The return type is incompatible with Object.clone(), thus this interface cannot be implemented\n" + 
-			"----------\n" + 
-			"2. ERROR in I.java (at line 2)\n" + 
-			"	interface J extends I { @Override void clone(); }\n" + 
-			"	                                       ^^^^^^^\n" + 
-			"The method clone() of type J must override a superclass method\n" + 
-			"----------\n"
-		:	"----------\n" + 
-			"1. WARNING in I.java (at line 2)\n" + 
-			"	interface J extends I { @Override void clone(); }\n" + 
-			"	                                  ^^^^\n" + 
-			"The return type is incompatible with Object.clone(), thus this interface cannot be implemented\n" + 
-			"----------\n" + 
-			"2. ERROR in I.java (at line 2)\n" + 
-			"	interface J extends I { @Override void clone(); }\n" + 
-			"	                                       ^^^^^^^\n" + 
-			"The method clone() of type J must override or implement a supertype method\n" + 
-			"----------\n";		
-		this.runNegativeTest(
-			new String[] {
-				"I.java",
-				"interface I {}\n" +
-				"interface J extends I { @Override void clone(); }"
-			},
-			expectedOutput);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=100970
-	public void test074a() {
-		String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_6
-		?	"----------\n" + 
-			"1. WARNING in I.java (at line 1)\n" + 
-			"	interface I { @Override void clone(); }\n" + 
-			"	                        ^^^^\n" + 
-			"The return type is incompatible with Object.clone(), thus this interface cannot be implemented\n" + 
-			"----------\n" + 
-			"2. ERROR in I.java (at line 1)\n" + 
-			"	interface I { @Override void clone(); }\n" + 
-			"	                             ^^^^^^^\n" + 
-			"The method clone() of type I must override a superclass method\n" + 
-			"----------\n"
-		:	"----------\n" + 
-			"1. WARNING in I.java (at line 1)\n" + 
-			"	interface I { @Override void clone(); }\n" + 
-			"	                        ^^^^\n" + 
-			"The return type is incompatible with Object.clone(), thus this interface cannot be implemented\n" + 
-			"----------\n" + 
-			"2. ERROR in I.java (at line 1)\n" + 
-			"	interface I { @Override void clone(); }\n" + 
-			"	                             ^^^^^^^\n" + 
-			"The method clone() of type I must override or implement a supertype method\n" + 
-			"----------\n";		
-		this.runNegativeTest(
-			new String[] {
-				"I.java",
-				"interface I { @Override void clone(); }\n" +
-				"interface J extends I {}"
-			},
-			expectedOutput);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=100970
-	public void test074b() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"interface I {\n" +
-				"	int finalize();\n" +
-				"	float hashCode();\n" +
-				"}\n" +
-				"interface J extends I {}\n" +
-				"abstract class A implements J {}"
-			},
-			"----------\n" + 
-			"1. WARNING in A.java (at line 2)\n" + 
-			"	int finalize();\n" + 
-			"	^^^\n" + 
-			"The return type is incompatible with Object.finalize(), thus this interface cannot be implemented\n" + 
-			"----------\n" + 
-			"2. ERROR in A.java (at line 3)\n" + 
-			"	float hashCode();\n" + 
-			"	^^^^^\n" + 
-			"The return type is incompatible with Object.hashCode()\n" + 
-			"----------\n" + 
-			"3. ERROR in A.java (at line 6)\n" + 
-			"	abstract class A implements J {}\n" + 
-			"	               ^\n" + 
-			"The return type is incompatible with I.finalize(), Object.finalize()\n" + 
-			"----------\n" + 
-			"4. ERROR in A.java (at line 6)\n" + 
-			"	abstract class A implements J {}\n" + 
-			"	               ^\n" + 
-			"The return type is incompatible with I.hashCode(), Object.hashCode()\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=107105
-	public void test075() {
-		String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_6
-			?	"----------\n" + 
-				"1. ERROR in A.java (at line 2)\n" + 
-				"	class B extends A { @Override <T1, S1 extends J & I<S1>> void foo() { } }\n" + 
-				"	                                                              ^^^^^\n" + 
-				"Name clash: The method foo() of type B has the same erasure as foo() of type A but does not override it\n" + 
-				"----------\n" + 
-				"2. ERROR in A.java (at line 2)\n" + 
-				"	class B extends A { @Override <T1, S1 extends J & I<S1>> void foo() { } }\n" + 
-				"	                                                              ^^^^^\n" + 
-				"The method foo() of type B must override a superclass method\n" + 
-				"----------\n" + 
-				"3. WARNING in A.java (at line 3)\n" + 
-				"	class C extends A { @Override <T2, S2 extends J & I> void foo() { } }\n" + 
-				"	                                                  ^\n" + 
-				"I is a raw type. References to generic type I<TT> should be parameterized\n" + 
-				"----------\n" + 
-				"4. ERROR in A.java (at line 3)\n" + 
-				"	class C extends A { @Override <T2, S2 extends J & I> void foo() { } }\n" + 
-				"	                                                          ^^^^^\n" + 
-				"Name clash: The method foo() of type C has the same erasure as foo() of type A but does not override it\n" + 
-				"----------\n" + 
-				"5. ERROR in A.java (at line 3)\n" + 
-				"	class C extends A { @Override <T2, S2 extends J & I> void foo() { } }\n" + 
-				"	                                                          ^^^^^\n" + 
-				"The method foo() of type C must override a superclass method\n" + 
-				"----------\n"
-			:	"----------\n" + 
-				"1. ERROR in A.java (at line 2)\n" + 
-				"	class B extends A { @Override <T1, S1 extends J & I<S1>> void foo() { } }\n" + 
-				"	                                                              ^^^^^\n" + 
-				"Name clash: The method foo() of type B has the same erasure as foo() of type A but does not override it\n" + 
-				"----------\n" + 
-				"2. ERROR in A.java (at line 2)\n" + 
-				"	class B extends A { @Override <T1, S1 extends J & I<S1>> void foo() { } }\n" + 
-				"	                                                              ^^^^^\n" + 
-				"The method foo() of type B must override or implement a supertype method\n" + 
-				"----------\n" + 
-				"3. WARNING in A.java (at line 3)\n" + 
-				"	class C extends A { @Override <T2, S2 extends J & I> void foo() { } }\n" + 
-				"	                                                  ^\n" + 
-				"I is a raw type. References to generic type I<TT> should be parameterized\n" + 
-				"----------\n" + 
-				"4. ERROR in A.java (at line 3)\n" + 
-				"	class C extends A { @Override <T2, S2 extends J & I> void foo() { } }\n" + 
-				"	                                                          ^^^^^\n" + 
-				"Name clash: The method foo() of type C has the same erasure as foo() of type A but does not override it\n" + 
-				"----------\n" + 
-				"5. ERROR in A.java (at line 3)\n" + 
-				"	class C extends A { @Override <T2, S2 extends J & I> void foo() { } }\n" + 
-				"	                                                          ^^^^^\n" + 
-				"The method foo() of type C must override or implement a supertype method\n" + 
-				"----------\n";		
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A { <T, S extends J & I<T>> void foo() { } }\n" +
-				"class B extends A { @Override <T1, S1 extends J & I<S1>> void foo() { } }\n" + // fails, name clash only shows up when Override is removed
-				"class C extends A { @Override <T2, S2 extends J & I> void foo() { } }\n" + // fails, name clash only shows up when Override is removed
-				"class D extends A { @Override <T3, S3 extends J & I<T3>> void foo() { } }\n" +
-				"class E extends A { @Override <T4, S4 extends I<T4> & J> void foo() { } }\n" +
-				"interface I<TT> {}\n" +
-				"interface J {}"
-			},
-			expectedOutput
-			// A.java:2: method does not override a method from its superclass
-			// A.java:3: method does not override a method from its superclass
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=107105
-	public void test075a() {
-		this.runConformTest(
-			// there is no name clash in this case AND no override error - there would be if the annotation was present
-			new String[] {
-				"A.java",
-				"class A<U> { <S extends J> void foo(U u, S s) { } }\n" +
-				"class B<V> extends A<V> { <S1 extends K> void foo(V v, S1 s) { } }\n" +
-				"interface J {}\n" +
-				"interface K extends J {}"
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=107105
-	public void test075b() {
-		String expectedOutput = new CompilerOptions(getCompilerOptions()).sourceLevel < ClassFileConstants.JDK1_6
-		?	"----------\n" + 
-			"1. ERROR in A.java (at line 2)\r\n" + 
-			"	class B<V> extends A<V> { @Override <T1, S1 extends K & I<T1>> void foo(V v, T1 t, S1 s) { } }\r\n" + 
-			"	                                                                    ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The method foo(V, T1, S1) of type B<V> must override a superclass method\n" + 
-			"----------\n"
-		:	"----------\n" + 
-			"1. ERROR in A.java (at line 2)\n" + 
-			"	class B<V> extends A<V> { @Override <T1, S1 extends K & I<T1>> void foo(V v, T1 t, S1 s) { } }\n" + 
-			"	                                                                    ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The method foo(V, T1, S1) of type B<V> must override or implement a supertype method\n" + 
-			"----------\n";				
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A<U> { <T, S extends J & I<T>> void foo(U u, T t, S s) { } }\n" +
-				"class B<V> extends A<V> { @Override <T1, S1 extends K & I<T1>> void foo(V v, T1 t, S1 s) { } }\n" +
-				"interface I<TT> {}\n" +
-				"interface J {}\n" +
-				"interface K extends J {}"
-			},
-			expectedOutput
-			// A.java:2: method does not override a method from its superclass
-		);
-	}
-	public void test076() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"class A {\n" +
-				"	<T, S extends J & I<S>> void foo(S s) { }\n" +
-				"	<T, S extends I<T> & J > void foo(S s) { }\n" +
-				"}\n" +
-				"interface I<TT> {}\n" +
-				"interface J {}\n"
-			},
-			""
-		);
-	}
-	public void test076a() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A {\n" +
-				"	<T, S extends J & I<T>> void foo() { }\n" +
-				"	<T, S extends I<T> & J> void foo() { }\n" +
-				"}\n" +
-				"interface I<TT> {}\n" +
-				"interface J {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 2)\r\n" + 
-			"	<T, S extends J & I<T>> void foo() { }\r\n" + 
-			"	                             ^^^^^\n" + 
-			"Duplicate method foo() in type A\n" + 
-			"----------\n" + 
-			"2. ERROR in A.java (at line 3)\r\n" + 
-			"	<T, S extends I<T> & J> void foo() { }\r\n" + 
-			"	                             ^^^^^\n" + 
-			"Duplicate method foo() in type A\n" + 
-			"----------\n"
-			// <T,S>foo() is already defined in A
-		);
-	}
-	public void test076b() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A {\n" +
-				"	<T, S extends J & I<T>> void foo() { }\n" +
-				"	<T, S extends I<T> & K> void foo() { }\n" +
-				"}\n" +
-				"interface I<TT> {}\n" +
-				"interface J {}\n" +
-				"interface K extends J {}"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 2)\r\n" + 
-			"	<T, S extends J & I<T>> void foo() { }\r\n" + 
-			"	                             ^^^^^\n" + 
-			"Duplicate method foo() in type A\n" + 
-			"----------\n" + 
-			"2. ERROR in A.java (at line 3)\r\n" + 
-			"	<T, S extends I<T> & K> void foo() { }\r\n" + 
-			"	                             ^^^^^\n" + 
-			"Duplicate method foo() in type A\n" + 
-			"----------\n"
-			// name clash: <T,S>foo() and <T,S>foo() have the same erasure
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=122881
-	public void test077() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	Object o = new A<Integer>().foo(new Integer(1));\n" +
-				"}\n" +
-				"interface I<T1> { I<T1> foo(T1 t); }\n" +
-				"interface J<T2> { J<T2> foo(T2 t); }\n" +
-				"class B<T> { public A<T> foo(T t) { return new A<T>(); } }\n" +
-				"class A<S> extends B<S> implements I<S>, J<S> {}"
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=122881
-	public void test077a() {
-		this.runNegativeTest(
-			new String[] {
-				"I.java",
-				"public interface I { I foo(); }\n" +
-				"interface J { J foo(); }\n" +
-				"interface K extends I, J { K foo(); }\n" +
-				"interface L { K getI(); }\n" +
-				"interface M { I getI(); }\n" +
-				"interface N { J getI(); }\n" +
-				"interface O extends L, M, N { K getI(); }\n" +
-				"interface P extends L, M, N {}\n" +
-				"class X implements L, M, N { public K getI() { return null; } }\n" +
-				"abstract class Y implements L, M, N {}\n" +
-				"abstract class Z implements L, M, N { public K getI() { return null; } }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in I.java (at line 8)\n" + 
-			"	interface P extends L, M, N {}\n" + 
-			"	          ^\n" + 
-			"The return type is incompatible with N.getI(), M.getI(), L.getI()\n" + 
-			"----------\n" + 
-			"2. ERROR in I.java (at line 10)\n" + 
-			"	abstract class Y implements L, M, N {}\n" + 
-			"	               ^\n" + 
-			"The return type is incompatible with N.getI(), M.getI(), L.getI()\n" + 
-			"----------\n"
-/* See addtional comments in https://bugs.eclipse.org/bugs/show_bug.cgi?id=122881
-			"----------\n" + 
-			"1. ERROR in I.java (at line 3)\r\n" + 
-			"	interface K extends I, J { K foo(); }\r\n" + 
-			"	          ^\n" + 
-			"The return type is incompatible with J.foo(), I.foo()\n" + 
-			"----------\n" + 
-			"2. ERROR in I.java (at line 7)\r\n" + 
-			"	interface O extends L, M, N { K getI(); }\r\n" + 
-			"	          ^\n" + 
-			"The return type is incompatible with N.getI(), M.getI(), L.getI()\n" + 
-			"----------\n" + 
-			"3. ERROR in I.java (at line 8)\r\n" + 
-			"	interface P extends L, M, N {}\r\n" + 
-			"	          ^\n" + 
-			"The return type is incompatible with N.getI(), M.getI(), L.getI()\n" + 
-			"----------\n" + 
-			"4. ERROR in I.java (at line 10)\r\n" + 
-			"	abstract class Y implements L, M, N {}\r\n" + 
-			"	               ^\n" + 
-			"The return type is incompatible with N.getI(), M.getI(), L.getI()\n" + 
-			"----------\n"
-*/
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=128560
-	public void test078() {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);			    
-		customOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
-		customOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public abstract class X implements IAppendable {\n" + 
-				"    public X append(char c) {\n" + 
-				"        return null;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"\n" + 
-				"interface IAppendable {\n" + 
-				"	IAppendable append(char c);\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	public X append(char c) {\n" + 
-			"	       ^\n" + 
-			"The return type is incompatible with IAppendable.append(char)\n" + 
-			"----------\n",
-		null,
-		true,
-		customOptions);		
-	}			
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=81222
-	public void test079() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"class A<E> { void x(A<String> s) {} }\n" +
-				"class B extends A { void x(A<String> s) {} }\n" +
-				"class C extends A { @Override void x(A s) {} }\n" +
-				"class D extends A { void x(A<Object> s) {} }"
-			},
-			"----------\n" + 
-			"1. WARNING in A.java (at line 2)\r\n" + 
-			"	class B extends A { void x(A<String> s) {} }\r\n" + 
-			"	                ^\n" + 
-			"A is a raw type. References to generic type A<E> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in A.java (at line 2)\r\n" + 
-			"	class B extends A { void x(A<String> s) {} }\r\n" + 
-			"	                         ^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method x(A<String>) of type B has the same erasure as x(A) of type A but does not override it\n" + 
-			"----------\n" + 
-			"3. WARNING in A.java (at line 3)\r\n" + 
-			"	class C extends A { @Override void x(A s) {} }\r\n" + 
-			"	                ^\n" + 
-			"A is a raw type. References to generic type A<E> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in A.java (at line 3)\r\n" + 
-			"	class C extends A { @Override void x(A s) {} }\r\n" + 
-			"	                                     ^\n" + 
-			"A is a raw type. References to generic type A<E> should be parameterized\n" + 
-			"----------\n" + 
-			"5. WARNING in A.java (at line 4)\r\n" + 
-			"	class D extends A { void x(A<Object> s) {} }\r\n" + 
-			"	                ^\n" + 
-			"A is a raw type. References to generic type A<E> should be parameterized\n" + 
-			"----------\n" + 
-			"6. ERROR in A.java (at line 4)\r\n" + 
-			"	class D extends A { void x(A<Object> s) {} }\r\n" + 
-			"	                         ^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method x(A<Object>) of type D has the same erasure as x(A) of type A but does not override it\n" + 
-			"----------\n"
-			// name clash: x(A<java.lang.String>) in B and x(A<java.lang.String>) in A have the same erasure, yet neither overrides the other
-			// name clash: x(A<java.lang.Object>) in D and x(A<java.lang.String>) in A have the same erasure, yet neither overrides the other
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=106880
-	public void test080() {
-		this.runNegativeTest(
-			new String[] {
-				"HashOrder.java",
-				"public class HashOrder extends DoubleHash<String> {\n" +
-				"	public static HashOrder create() { return null; }\n" +
-				"}\n" +
-				"class DoubleHash<T> {\n" +
-				"	public static <U> DoubleHash<U> create() { return null; }\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. WARNING in HashOrder.java (at line 2)\n" + 
-			"	public static HashOrder create() { return null; }\n" + 
-			"	              ^^^^^^^^^\n" + 
-			"Type safety: The return type HashOrder for create() from the type HashOrder needs unchecked conversion to conform to DoubleHash<Object> from the type DoubleHash<String>\n" + 
-			"----------\n"
-			// warning: create() in HashOrder overrides <U>create() in DoubleHash; return type requires unchecked conversion
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=125956
-	public void test081() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public abstract class X<U> implements I {\n" +
-				"	public A<String> foo() { return null; }\n" +
-				"	public <S> A<U> bar() { return null; }\n" +
-				"}\n" +
-				"interface I {\n" +
-				"	<T> A<T> foo();\n" +
-				"	<S> A<S> bar();\n" +
-				"}\n" +
-				"class A<V> {}"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 2)\r\n" + 
-			"	public A<String> foo() { return null; }\r\n" + 
-			"	       ^\n" + 
-			"Type safety: The return type A<String> for foo() from the type X<U> needs unchecked conversion to conform to A<Object> from the type I\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\r\n" + 
-			"	public <S> A<U> bar() { return null; }\r\n" + 
-			"	           ^^^^\n" + 
-			"The return type is incompatible with I.bar()\n" + 
-			"----------\n"
-			// <S>bar() in X cannot implement <S>bar() in I; attempting to use incompatible return type
-			// warning: foo() in X implements <T>foo() in I; return type requires unchecked conversion
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105339
-	public void test082() {
-		this.runNegativeTest(
-			new String[] {
-				"V.java",
-				"public class V extends U { @Override public C<B> foo() { return null; } }\n" +
-				"class U { public <T extends A> C<T> foo() { return null; } }\n" +
-				"class A {}\n" +
-				"class B extends A {}\n" +
-				"class C<T> {}"
-			},
-			"----------\n" + 
-			"1. WARNING in V.java (at line 1)\n" + 
-			"	public class V extends U { @Override public C<B> foo() { return null; } }\n" + 
-			"	                                            ^\n" + 
-			"Type safety: The return type C<B> for foo() from the type V needs unchecked conversion to conform to C<A> from the type U\n" + 
-			"----------\n"
-			// warning: foo() in V overrides <T>foo() in U; return type requires unchecked conversion
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=132831
-	public void test083() {
-		this.runConformTest(
-			new String[] {
-				"C.java",
-				"public class C extends p.B {\n" +
-				"	public static void main(String[] args) {\n" +
-				"		System.out.println(((p.I) new C()).m() == null);\n" +
-				"	}\n" +
-				"}",
-				"p/B.java",
-				"package p;\n" +
-				"public abstract class B extends A {}\n" +
-				"abstract class A implements I {\n" +
-				"	public A m() { return null; }\n" +
-				"}",
-				"p/I.java",
-				"package p;\n" +
-				"public interface I { I m(); }\n"
-			},
-			"true"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=132841
-	public void test084() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"public class A<T1 extends A.M> implements I<T1> {\n" +
-				"	public java.util.List<T1> f(M n) { return null; }\n" +
-				"	static class M {}\n" +
-				"}\n" +
-				"interface I<T2> {\n" +
-				"	java.util.List<T2> f(T2 t);\n" +
-				"}"
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=132841
-	public void test084a() {
-		this.runConformTest(
-			new String[] {
-				"A.java",
-				"public class A<T1 extends A.M> implements I<T1> {\n" +
-				"	public void foo(Number n, M m) {}\n" +
-				"	public void foo2(Number n, M m) {}\n" +
-				"	public void foo3(Number n, M m) {}\n" +
-				"	static class M {}\n" +
-				"}\n" +
-				"interface I<T2> {\n" +
-				"	<U extends Number> void foo(U u, T2 t);\n" +
-				"	void foo2(Number n, T2 t);\n" +
-				"	<U extends Number> void foo3(U u, A.M m);\n" +
-				"}"
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=132841
-	public void test084b() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"public class A<T1 extends A.M> implements I<T1> {\n" +
-				"	public void foo4(Number n, T1 m) {}\n" +
-				"	static class M {}\n" +
-				"}\n" +
-				"interface I<T2> {\n" +
-				"	<U extends Number> void foo4(U u, A.M m);\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 1)\r\n" + 
-			"	public class A<T1 extends A.M> implements I<T1> {\r\n" + 
-			"	             ^\n" + 
-			"The type A<T1> must implement the inherited abstract method I<T1>.foo4(U, A.M)\n" + 
-			"----------\n" + 
-			"2. ERROR in A.java (at line 2)\r\n" + 
-			"	public void foo4(Number n, T1 m) {}\r\n" + 
-			"	            ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method foo4(Number, T1) of type A<T1> has the same erasure as foo4(U, A.M) of type I<T2> but does not override it\n" + 
-			"----------\n"
-			// A is not abstract and does not override abstract method <U>foo4(U,A.M) in I
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=136543
-	public void test085() {
-		this.runNegativeTest(
-			new String[] {
-				"Parent.java",
-				"import java.util.Collection;\n" +
-				"public class Parent {\n" +
-				"	static void staticCase1(Collection c) {}\n" +
-				"	static void staticCase2(Collection<String> c) {}\n" +
-				"	void instanceCase1(Collection c) {}\n" +
-				"	void instanceCase2(Collection<String> c) {}\n" +
-				"}\n" +
-				"class Child extends Parent {\n" +
-				"	static void staticCase1(Collection<String> c) {}\n" +
-				"	static void staticCase2(Collection c) {}\n" +
-				"	void instanceCase1(Collection<String> c) {}\n" +
-				"	@Override void instanceCase2(Collection c) {}\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. WARNING in Parent.java (at line 3)\n" + 
-			"	static void staticCase1(Collection c) {}\n" + 
-			"	                        ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in Parent.java (at line 5)\n" + 
-			"	void instanceCase1(Collection c) {}\n" + 
-			"	                   ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"3. WARNING in Parent.java (at line 10)\n" + 
-			"	static void staticCase2(Collection c) {}\n" + 
-			"	                        ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"4. ERROR in Parent.java (at line 11)\n" + 
-			"	void instanceCase1(Collection<String> c) {}\n" + 
-			"	     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method instanceCase1(Collection<String>) of type Child has the same erasure as instanceCase1(Collection) of type Parent but does not override it\n" + 
-			"----------\n" + 
-			"5. WARNING in Parent.java (at line 12)\n" + 
-			"	@Override void instanceCase2(Collection c) {}\n" + 
-			"	                             ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n"
-			// @Override is an error for instanceCase1
-			// name clash: instanceCase1(Collection<String>) in Child and instanceCase1(Collection) in Parent have the same erasure, yet neither overrides the other
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=136543 - case 2
-	public void test085b() {
-		this.runNegativeTest(
-			new String[] {
-				"Parent.java",
-				"import java.util.Collection;\n" +
-				"public class Parent {\n" +
-				"	static void staticMismatchCase1(Collection c) {}\n" +
-				"	static void staticMismatchCase2(Collection<String> c) {}\n" +
-				"	void mismatchCase1(Collection c) {}\n" +
-				"	void mismatchCase2(Collection<String> c) {}\n" +
-				"}\n" +
-				"class Child extends Parent {\n" +
-				"	void staticMismatchCase1(Collection c) {}\n" +
-				"	void staticMismatchCase2(Collection<String> c) {}\n" +
-				"	static void mismatchCase1(Collection c) {}\n" +
-				"	static void mismatchCase2(Collection<String> c) {}\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. WARNING in Parent.java (at line 3)\r\n" + 
-			"	static void staticMismatchCase1(Collection c) {}\r\n" + 
-			"	                                ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in Parent.java (at line 5)\r\n" + 
-			"	void mismatchCase1(Collection c) {}\r\n" + 
-			"	                   ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"3. ERROR in Parent.java (at line 9)\r\n" + 
-			"	void staticMismatchCase1(Collection c) {}\r\n" + 
-			"	     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"This instance method cannot override the static method from Parent\n" + 
-			"----------\n" + 
-			"4. WARNING in Parent.java (at line 9)\r\n" + 
-			"	void staticMismatchCase1(Collection c) {}\r\n" + 
-			"	                         ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"5. ERROR in Parent.java (at line 10)\r\n" + 
-			"	void staticMismatchCase2(Collection<String> c) {}\r\n" + 
-			"	     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"This instance method cannot override the static method from Parent\n" + 
-			"----------\n" + 
-			"6. ERROR in Parent.java (at line 11)\r\n" + 
-			"	static void mismatchCase1(Collection c) {}\r\n" + 
-			"	            ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"This static method cannot hide the instance method from Parent\n" + 
-			"----------\n" + 
-			"7. WARNING in Parent.java (at line 11)\r\n" + 
-			"	static void mismatchCase1(Collection c) {}\r\n" + 
-			"	                          ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"8. ERROR in Parent.java (at line 12)\r\n" + 
-			"	static void mismatchCase2(Collection<String> c) {}\r\n" + 
-			"	            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"This static method cannot hide the instance method from Parent\n" + 
-			"----------\n"
-			// staticMismatchCase1(java.util.Collection) in Child cannot override staticMismatchCase1(java.util.Collection) in Parent; overridden method is static
-			// staticMismatchCase2(java.util.Collection<java.lang.String>) in Child cannot override staticMismatchCase2(java.util.Collection<java.lang.String>) in Parent; overridden method is static
-			// mismatchCase1(java.util.Collection) in Child cannot override mismatchCase1(java.util.Collection) in Parent; overriding method is static
-			// mismatchCase2(java.util.Collection<java.lang.String>) in Child cannot override mismatchCase2(java.util.Collection<java.lang.String>) in Parent; overriding method is static
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=136543 - case 3
-	public void test085c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public abstract class X<V> extends CX<V> implements IX<V> {}\n" +
-				"class CX<T> { public static void foo(Object o) {} }\n" +
-				"abstract class X2 extends CX implements IX {}\n" +
-				"interface IX<U> { void foo(U u); }"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public abstract class X<V> extends CX<V> implements IX<V> {}\n" + 
-			"	                      ^\n" + 
-			"The static method foo(Object) conflicts with the abstract method in IX<V>\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\r\n" + 
-			"	abstract class X2 extends CX implements IX {}\r\n" + 
-			"	               ^^\n" + 
-			"The static method foo(Object) conflicts with the abstract method in IX\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 3)\r\n" + 
-			"	abstract class X2 extends CX implements IX {}\r\n" + 
-			"	                          ^^\n" + 
-			"CX is a raw type. References to generic type CX<T> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 3)\r\n" + 
-			"	abstract class X2 extends CX implements IX {}\r\n" + 
-			"	                                        ^^\n" + 
-			"IX is a raw type. References to generic type IX<U> should be parameterized\n" + 
-			"----------\n"
-			// line 1: foo(java.lang.Object) in CX cannot implement foo(U) in IX; overriding method is static
-			// line 3: foo(java.lang.Object) in CX cannot implement foo(U) in IX; overriding method is static
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90438
-	public void test086() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X implements I { public <T extends Object & Data> void copyData(T data) {} }\n" +
-				"interface I { <A extends Data> void copyData(A data); }\n" +
-				"interface Data {}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X implements I { public <T extends Object & Data> void copyData(T data) {} }\n" + 
-			"	             ^\n" + 
-			"The type X must implement the inherited abstract method I.copyData(A)\n" + 
-			"----------\n"
-			// X is not abstract and does not override abstract method <A>copyData(A) in I
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90438 - case 2
-	public void test086b() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X implements I { public <T> G<T> foo(Class<T> stuffClass) { return null; } }\n" +
-				"interface I { <T extends Object> G<T> foo(Class<T> stuffClass); }\n" +
-				"class G<T> {}"
-			},
-			""
-		);
-	}
-	public void test087() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.util.Collection;\n" + 
-				"\n" + 
-				"interface Interface1 {\n" + 
-				"}\n" + 
-				"interface Interface2 extends Interface1 {\n" + 
-				"}\n" + 
-				"interface Interface3 {\n" + 
-				"    <P extends Interface1> Collection<P> doStuff();\n" + 
-				"}\n" + 
-				"interface Interface4 extends Interface3 {\n" + 
-				"    Collection<Interface2> doStuff();\n" + 
-				"}\n" +
-				"public class X {\n" + 
-				"    Zork z;\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 11)\r\n" + 
-			"	Collection<Interface2> doStuff();\r\n" + 
-			"	^^^^^^^^^^\n" + 
-			"Type safety: The return type Collection<Interface2> for doStuff() from the type Interface4 needs unchecked conversion to conform to Collection<Interface1> from the type Interface3\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 14)\r\n" + 
-			"	Zork z;\r\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	}	
-	//	https://bugs.eclipse.org/bugs/show_bug.cgi?id=142653 - variation
-	public void test088() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",//===================
-				"import java.util.*;\n" +
-				"public class X<T0> extends ArrayList<T0> implements I<T0>,Runnable {\n" + 
-				"	\n" + 
-				"	void foo() {\n" + 
-				"		this.add(new Object());\n" + 
-				"		this.add(null);\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"interface I<T1> extends Collection<String> {\n" + 
-				"}\n" , // =================, // =================			
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	public class X<T0> extends ArrayList<T0> implements I<T0>,Runnable {\n" + 
-			"	             ^\n" + 
-			"The interface Collection cannot be implemented more than once with different arguments: Collection<T0> and Collection<String>\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 2)\n" + 
-			"	public class X<T0> extends ArrayList<T0> implements I<T0>,Runnable {\n" + 
-			"	             ^\n" + 
-			"The type X<T0> must implement the inherited abstract method Runnable.run()\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 2)\n" + 
-			"	public class X<T0> extends ArrayList<T0> implements I<T0>,Runnable {\n" + 
-			"	             ^\n" + 
-			"The serializable class X does not declare a static final serialVersionUID field of type long\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 5)\n" + 
-			"	this.add(new Object());\n" + 
-			"	     ^^^\n" + 
-			"The method add(T0) in the type ArrayList<T0> is not applicable for the arguments (Object)\n" + 
-			"----------\n"
-		);
-	}
-	//	https://bugs.eclipse.org/bugs/show_bug.cgi?id=142653 - variation
-	public void test089() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",//===================
-				"import java.util.*;\n" + 
-				"public class X extends X2 {}\n" + 
-				"abstract class X2 extends X3 implements List<String> {}\n" + 
-				"abstract class X3 implements List<Thread> {}", // =================
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	abstract class X2 extends X3 implements List<String> {}\n" + 
-			"	               ^^\n" + 
-			"The interface List cannot be implemented more than once with different arguments: List<Thread> and List<String>\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=147690
-//	public void test090() {
-//		this.runConformTest(
-//			new String[] {
-//				"X.java",
-//				"class XSuper {\n" + 
-//				"	Object foo() throws Exception { return null; }\n" + 
-//				"	protected Object bar() throws Exception { return null; }\n" + 
-//				"}\n" + 
-//				"public class X extends XSuper {\n" + 
-//				"	protected String foo() { return null; }\n" + 
-//				"	public String bar() { return null; }\n" + 
-//				"}", // =================
-//			},
-//			"");
-//		// 	ensure bridge methods have target method modifiers, and inherited thrown exceptions
-//		String expectedOutput =
-//			"  // Method descriptor #17 ()Ljava/lang/Object;\n" + 
-//			"  // Stack: 1, Locals: 1\n" + 
-//			"  public bridge synthetic java.lang.Object bar() throws java.lang.Exception;\n" + 
-//			"    0  aload_0\n" + 
-//			"    1  invokevirtual X.bar() : java.lang.String [21]\n" + 
-//			"    4  areturn\n" + 
-//			"      Line numbers:\n" + 
-//			"        [pc: 0, line: 1]\n" + 
-//			"  \n" + 
-//			"  // Method descriptor #17 ()Ljava/lang/Object;\n" + 
-//			"  // Stack: 1, Locals: 1\n" + 
-//			"  protected bridge synthetic java.lang.Object foo() throws java.lang.Exception;\n" + 
-//			"    0  aload_0\n" + 
-//			"    1  invokevirtual X.foo() : java.lang.String [23]\n" + 
-//			"    4  areturn\n" + 
-//			"      Line numbers:\n" + 
-//			"        [pc: 0, line: 1]\n";
-//		
-//		try {
-//			File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//			byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//			ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//			String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//			int index = result.indexOf(expectedOutput);
-//			if (index == -1 || expectedOutput.length() == 0) {
-//				System.out.println(Util.displayString(result, 3));
-//			}
-//			if (index == -1) {
-//				assertEquals("Wrong contents", expectedOutput, result);
-//			}
-//		} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//			assertTrue(false);
-//		} catch (IOException e) {
-//			assertTrue(false);
-//		}		
-//	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148783	
-	public void test091() {
-		this.runNegativeTest(
-			new String[] {
-				"DataSet.java",//===================
-				"import java.io.Serializable;\n" + 
-				"import java.util.*;\n" + 
-				"\n" + 
-				"class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-				"	\n" + 
-				"	public <S> S[] toArray(S[] s) {\n" + 
-				"		return s;\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	public boolean add(Object o) { return false; }\n" + 
-				"	public void add(int index, Object element) {}\n" + 
-				"	public boolean addAll(Collection c) {	return false; }\n" + 
-				"	public boolean addAll(int index, Collection c) {	return false; }\n" + 
-				"	public void clear() {}\n" + 
-				"	public boolean contains(Object o) {	return false; }\n" + 
-				"	public boolean containsAll(Collection c) { return false; }\n" + 
-				"	public Object get(int index) { return null; }\n" + 
-				"	public int indexOf(Object o) { return 0; }\n" + 
-				"	public boolean isEmpty() {	return false; }\n" + 
-				"	public Iterator iterator() {	return null; }\n" + 
-				"	public int lastIndexOf(Object o) {	return 0; }\n" + 
-				"	public ListIterator listIterator() {	return null; }\n" + 
-				"	public ListIterator listIterator(int index) {	return null; }\n" + 
-				"	public boolean remove(Object o) {	return false; }\n" + 
-				"	public Object remove(int index) {	return null; }\n" + 
-				"	public boolean removeAll(Collection c) {	return false; }\n" + 
-				"	public boolean retainAll(Collection c) {	return false; }\n" + 
-				"	public Object set(int index, Object element) {	return false; }\n" + 
-				"	public int size() {	return 0; }\n" + 
-				"	public List subList(int fromIndex, int toIndex) {	return null; }\n" + 
-				"	public Object[] toArray() {	return null; }\n" + 
-				"	public boolean hasNext() {	return false; }\n" + 
-				"	public Object next() {	return null; }\n" + 
-				"	public void remove() {}\n" + 
-				"}\n", // =================
-			},
-			"----------\n" + 
-			"1. ERROR in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	      ^^^^^^^\n" + 
-			"The type DataSet<T> must implement the inherited abstract method List.toArray(Object[])\n" + 
-			"----------\n" + 
-			"2. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	      ^^^^^^^\n" + 
-			"The serializable class DataSet does not declare a static final serialVersionUID field of type long\n" + 
-			"----------\n" + 
-			"3. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	                                           ^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	                                                 ^^^^^^^^\n" + 
-			"Iterator is a raw type. References to generic type Iterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"5. ERROR in DataSet.java (at line 6)\n" + 
-			"	public <S> S[] toArray(S[] s) {\n" + 
-			"	               ^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method toArray(S[]) of type DataSet<T> has the same erasure as toArray(Object[]) of type List but does not override it\n" + 
-			"----------\n" + 
-			"6. ERROR in DataSet.java (at line 6)\n" + 
-			"	public <S> S[] toArray(S[] s) {\n" + 
-			"	               ^^^^^^^^^^^^^^\n" + 
-			"Name clash: The method toArray(S[]) of type DataSet<T> has the same erasure as toArray(Object[]) of type Collection but does not override it\n" + 
-			"----------\n" + 
-			"7. WARNING in DataSet.java (at line 12)\n" + 
-			"	public boolean addAll(Collection c) {	return false; }\n" + 
-			"	                      ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"8. WARNING in DataSet.java (at line 13)\n" + 
-			"	public boolean addAll(int index, Collection c) {	return false; }\n" + 
-			"	                                 ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"9. WARNING in DataSet.java (at line 16)\n" + 
-			"	public boolean containsAll(Collection c) { return false; }\n" + 
-			"	                           ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"10. WARNING in DataSet.java (at line 20)\n" + 
-			"	public Iterator iterator() {	return null; }\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Iterator is a raw type. References to generic type Iterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"11. WARNING in DataSet.java (at line 22)\n" + 
-			"	public ListIterator listIterator() {	return null; }\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"ListIterator is a raw type. References to generic type ListIterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"12. WARNING in DataSet.java (at line 23)\n" + 
-			"	public ListIterator listIterator(int index) {	return null; }\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"ListIterator is a raw type. References to generic type ListIterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"13. WARNING in DataSet.java (at line 26)\n" + 
-			"	public boolean removeAll(Collection c) {	return false; }\n" + 
-			"	                         ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"14. WARNING in DataSet.java (at line 27)\n" + 
-			"	public boolean retainAll(Collection c) {	return false; }\n" + 
-			"	                         ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"15. WARNING in DataSet.java (at line 30)\n" + 
-			"	public List subList(int fromIndex, int toIndex) {	return null; }\n" + 
-			"	       ^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n"
-		);
-	}	
-	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148783 - variation
-	public void test092() {
-		this.runNegativeTest(
-			new String[] {
-				"DataSet.java",//===================
-				"import java.io.Serializable;\n" + 
-				"import java.util.*;\n" + 
-				"\n" + 
-				"class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-				"	\n" + 
-				"	public <S extends T> S[] toArray(S[] s) {\n" + 
-				"		return s;\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	public boolean add(Object o) { return false; }\n" + 
-				"	public void add(int index, Object element) {}\n" + 
-				"	public boolean addAll(Collection c) {	return false; }\n" + 
-				"	public boolean addAll(int index, Collection c) {	return false; }\n" + 
-				"	public void clear() {}\n" + 
-				"	public boolean contains(Object o) {	return false; }\n" + 
-				"	public boolean containsAll(Collection c) { return false; }\n" + 
-				"	public Object get(int index) { return null; }\n" + 
-				"	public int indexOf(Object o) { return 0; }\n" + 
-				"	public boolean isEmpty() {	return false; }\n" + 
-				"	public Iterator iterator() {	return null; }\n" + 
-				"	public int lastIndexOf(Object o) {	return 0; }\n" + 
-				"	public ListIterator listIterator() {	return null; }\n" + 
-				"	public ListIterator listIterator(int index) {	return null; }\n" + 
-				"	public boolean remove(Object o) {	return false; }\n" + 
-				"	public Object remove(int index) {	return null; }\n" + 
-				"	public boolean removeAll(Collection c) {	return false; }\n" + 
-				"	public boolean retainAll(Collection c) {	return false; }\n" + 
-				"	public Object set(int index, Object element) {	return false; }\n" + 
-				"	public int size() {	return 0; }\n" + 
-				"	public List subList(int fromIndex, int toIndex) {	return null; }\n" + 
-				"	public Object[] toArray() {	return null; }\n" + 
-				"	public boolean hasNext() {	return false; }\n" + 
-				"	public Object next() {	return null; }\n" + 
-				"	public void remove() {}\n" + 
-				"}\n", // =================
-			},
-			"----------\n" + 
-			"1. ERROR in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	      ^^^^^^^\n" + 
-			"The type DataSet<T> must implement the inherited abstract method List.toArray(Object[])\n" + 
-			"----------\n" + 
-			"2. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	      ^^^^^^^\n" + 
-			"The serializable class DataSet does not declare a static final serialVersionUID field of type long\n" + 
-			"----------\n" + 
-			"3. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	                                           ^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	                                                 ^^^^^^^^\n" + 
-			"Iterator is a raw type. References to generic type Iterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"5. WARNING in DataSet.java (at line 12)\n" + 
-			"	public boolean addAll(Collection c) {	return false; }\n" + 
-			"	                      ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"6. WARNING in DataSet.java (at line 13)\n" + 
-			"	public boolean addAll(int index, Collection c) {	return false; }\n" + 
-			"	                                 ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"7. WARNING in DataSet.java (at line 16)\n" + 
-			"	public boolean containsAll(Collection c) { return false; }\n" + 
-			"	                           ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"8. WARNING in DataSet.java (at line 20)\n" + 
-			"	public Iterator iterator() {	return null; }\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Iterator is a raw type. References to generic type Iterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"9. WARNING in DataSet.java (at line 22)\n" + 
-			"	public ListIterator listIterator() {	return null; }\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"ListIterator is a raw type. References to generic type ListIterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"10. WARNING in DataSet.java (at line 23)\n" + 
-			"	public ListIterator listIterator(int index) {	return null; }\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"ListIterator is a raw type. References to generic type ListIterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"11. WARNING in DataSet.java (at line 26)\n" + 
-			"	public boolean removeAll(Collection c) {	return false; }\n" + 
-			"	                         ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"12. WARNING in DataSet.java (at line 27)\n" + 
-			"	public boolean retainAll(Collection c) {	return false; }\n" + 
-			"	                         ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"13. WARNING in DataSet.java (at line 30)\n" + 
-			"	public List subList(int fromIndex, int toIndex) {	return null; }\n" + 
-			"	       ^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n");
-	}	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148783 - variation
-	public void test093() {
-		this.runNegativeTest(
-			new String[] {
-				"DataSet.java",//===================
-				"import java.io.Serializable;\n" + 
-				"import java.util.*;\n" + 
-				"\n" + 
-				"class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-				"	\n" + 
-				"	public <S> S[] toArray(S[] s) {\n" + 
-				"		return s;\n" + 
-				"	}\n" + 
-				"	public Object[] toArray(Object[] o) {\n" + 
-				"		return o;\n" + 
-				"	}\n" + 
-				"	public boolean add(Object o) { return false; }\n" + 
-				"	public void add(int index, Object element) {}\n" + 
-				"	public boolean addAll(Collection c) {	return false; }\n" + 
-				"	public boolean addAll(int index, Collection c) {	return false; }\n" + 
-				"	public void clear() {}\n" + 
-				"	public boolean contains(Object o) {	return false; }\n" + 
-				"	public boolean containsAll(Collection c) { return false; }\n" + 
-				"	public Object get(int index) { return null; }\n" + 
-				"	public int indexOf(Object o) { return 0; }\n" + 
-				"	public boolean isEmpty() {	return false; }\n" + 
-				"	public Iterator iterator() {	return null; }\n" + 
-				"	public int lastIndexOf(Object o) {	return 0; }\n" + 
-				"	public ListIterator listIterator() {	return null; }\n" + 
-				"	public ListIterator listIterator(int index) {	return null; }\n" + 
-				"	public boolean remove(Object o) {	return false; }\n" + 
-				"	public Object remove(int index) {	return null; }\n" + 
-				"	public boolean removeAll(Collection c) {	return false; }\n" + 
-				"	public boolean retainAll(Collection c) {	return false; }\n" + 
-				"	public Object set(int index, Object element) {	return false; }\n" + 
-				"	public int size() {	return 0; }\n" + 
-				"	public List subList(int fromIndex, int toIndex) {	return null; }\n" + 
-				"	public Object[] toArray() {	return null; }\n" + 
-				"	public boolean hasNext() {	return false; }\n" + 
-				"	public Object next() {	return null; }\n" + 
-				"	public void remove() {}\n" + 
-				"}\n", // =================
-			},
-			"----------\n" + 
-			"1. ERROR in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	      ^^^^^^^\n" + 
-			"The type DataSet<T> must implement the inherited abstract method List.toArray(Object[])\n" + 
-			"----------\n" + 
-			"2. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	      ^^^^^^^\n" + 
-			"The serializable class DataSet does not declare a static final serialVersionUID field of type long\n" + 
-			"----------\n" + 
-			"3. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	                                           ^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n" + 
-			"4. WARNING in DataSet.java (at line 4)\n" + 
-			"	class DataSet<T extends Number> implements List, Iterator, Serializable {\n" + 
-			"	                                                 ^^^^^^^^\n" + 
-			"Iterator is a raw type. References to generic type Iterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"5. ERROR in DataSet.java (at line 6)\n" + 
-			"	public <S> S[] toArray(S[] s) {\n" + 
-			"	               ^^^^^^^^^^^^^^\n" + 
-			"Method toArray(S[]) has the same erasure toArray(Object[]) as another method in type DataSet<T>\n" + 
-			"----------\n" + 
-			"6. ERROR in DataSet.java (at line 9)\n" + 
-			"	public Object[] toArray(Object[] o) {\n" + 
-			"	                ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Duplicate method toArray(Object[]) in type DataSet<T>\n" + 
-			"----------\n" + 
-			"7. WARNING in DataSet.java (at line 14)\n" + 
-			"	public boolean addAll(Collection c) {	return false; }\n" + 
-			"	                      ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"8. WARNING in DataSet.java (at line 15)\n" + 
-			"	public boolean addAll(int index, Collection c) {	return false; }\n" + 
-			"	                                 ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"9. WARNING in DataSet.java (at line 18)\n" + 
-			"	public boolean containsAll(Collection c) { return false; }\n" + 
-			"	                           ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"10. WARNING in DataSet.java (at line 22)\n" + 
-			"	public Iterator iterator() {	return null; }\n" + 
-			"	       ^^^^^^^^\n" + 
-			"Iterator is a raw type. References to generic type Iterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"11. WARNING in DataSet.java (at line 24)\n" + 
-			"	public ListIterator listIterator() {	return null; }\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"ListIterator is a raw type. References to generic type ListIterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"12. WARNING in DataSet.java (at line 25)\n" + 
-			"	public ListIterator listIterator(int index) {	return null; }\n" + 
-			"	       ^^^^^^^^^^^^\n" + 
-			"ListIterator is a raw type. References to generic type ListIterator<E> should be parameterized\n" + 
-			"----------\n" + 
-			"13. WARNING in DataSet.java (at line 28)\n" + 
-			"	public boolean removeAll(Collection c) {	return false; }\n" + 
-			"	                         ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"14. WARNING in DataSet.java (at line 29)\n" + 
-			"	public boolean retainAll(Collection c) {	return false; }\n" + 
-			"	                         ^^^^^^^^^^\n" + 
-			"Collection is a raw type. References to generic type Collection<E> should be parameterized\n" + 
-			"----------\n" + 
-			"15. WARNING in DataSet.java (at line 32)\n" + 
-			"	public List subList(int fromIndex, int toIndex) {	return null; }\n" + 
-			"	       ^^^^\n" + 
-			"List is a raw type. References to generic type List<E> should be parameterized\n" + 
-			"----------\n"
-		);
-	}	
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=146383
-public void test094() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",//===================
-			"import java.util.ArrayList;\n" + 
-			"import java.util.Arrays;\n" + 
-			"class Y<T> {}\n" + 
-			"public class X\n" + 
-			"{\n" + 
-			"  private static ArrayList<Y<X>> y = new ArrayList<Y<X>>();\n" + 
-			"  void foo(Y[] array)\n" + 
-			"  {\n" + 
-			"    y.addAll(Arrays.asList(array));\n" + 
-			"  }\n" + 
-			"}\n", // =================
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 7)\n" + 
-		"	void foo(Y[] array)\n" + 
-		"	         ^\n" + 
-		"Y is a raw type. References to generic type Y<T> should be parameterized\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 9)\n" + 
-		"	y.addAll(Arrays.asList(array));\n" + 
-		"	  ^^^^^^\n" + 
-		"The method addAll(Collection<? extends Y<X>>) in the type ArrayList<Y<X>> is not applicable for the arguments (List<Y>)\n" + 
-		"----------\n"
-	);
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148957
-public void test096() {
-	this.runNegativeTest(
-		new String[] {
-			"ProblemClass.java",//===================
-			"import java.util.Collection;\n" + 
-			"import javax.swing.JLabel;\n" + 
-			"interface SuperInterface {\n" + 
-			"   public <A extends JLabel> void doIt(Collection<A> as);\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class ProblemClass implements SuperInterface {\n" + 
-			"   public void doIt(Collection<? extends JLabel> as) {\n" + 
-			"   }\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in ProblemClass.java (at line 7)\n" + 
-		"	public class ProblemClass implements SuperInterface {\n" + 
-		"	             ^^^^^^^^^^^^\n" + 
-		"The type ProblemClass must implement the inherited abstract method SuperInterface.doIt(Collection<A>)\n" + 
-		"----------\n" + 
-		"2. ERROR in ProblemClass.java (at line 8)\n" + 
-		"	public void doIt(Collection<? extends JLabel> as) {\n" + 
-		"	            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Name clash: The method doIt(Collection<? extends JLabel>) of type ProblemClass has the same erasure as doIt(Collection<A>) of type SuperInterface but does not override it\n" + 
-		"----------\n");
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148957 - variation
-public void test097() {
-	this.runConformTest(
-		new String[] {
-			"ProblemClass.java",//===================
-			"import java.util.Collection;\n" + 
-			"import javax.swing.JLabel;\n" + 
-			"interface SuperInterface {\n" + 
-			"   public <A extends JLabel> void doIt(Collection<A> as);\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class ProblemClass implements SuperInterface {\n" + 
-			"   public <B extends JLabel> void doIt(Collection<B> as) {\n" + 
-			"   }\n" + 
-			"}\n"
-		},
-		""
-	);
-}
-
-// autoboxing mixed with type parameters substitution
-public void test098() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"import java.util.*;\n" + 
-			"public class X<A, B> {\n" + 
-			"    public X(List<A> toAdd) {\n" + 
-			"    }\n" + 
-			"    public <L extends List<? super A>, LF extends Factory<L>> L \n" + 
-			"            foo(B b, L l, LF lf) {\n" + 
-			"        return l;\n" + 
-			"    }\n" + 
-			"    public static class ListFactory<T> implements Factory<List<T>> {\n" + 
-			"        public List<T> create() {\n" + 
-			"            return null;\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    public static interface Factory<T> {\n" + 
-			"        public T create();\n" + 
-			"    }\n" + 
-			"    public static void bar() {\n" + 
-			"        (new X<Long, Number>(new ArrayList<Long>())).\n" + 
-			"            foo(1, (List<Number>) null, new ListFactory<Number>());\n" + 
-			"    }\n" + 
-			"}"
-		},
-		""
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=153874
-public void test099() {
-	Map customOptions= getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
-	this.runConformTest(
-		new String[] {
-			"TestCharset.java",
-			"import java.nio.charset.*;\n" + 
-			"public class TestCharset extends Charset {\n" + 
-			"	protected TestCharset(String n, String[] a) { super(n, a); }\n" + 
-			"	public boolean contains(Charset cs) { return false; }\n" + 
-			"	public CharsetDecoder newDecoder() { return null; }\n" + 
-			"	public CharsetEncoder newEncoder() { return null; }\n" + 
-			"}\n" ,
-		},
-		"",
-		null,
-		true,
-		null,
-		customOptions,
-		null/*no custom requestor*/);
-}
-
-// name conflict
-public void test100() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"import java.util.Collection;\n" + 
-			"public class X<E> {\n" + 
-			"  boolean removeAll(Collection<? extends E> c) {\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}\n",
-			"Y.java",
-			"import java.util.Collection;\n" + 
-			"public class Y<E> extends X<E>\n" + 
-			"{\n" + 
-			"  <T extends E> boolean removeAll(Collection<T> c) {\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in Y.java (at line 4)\n" + 
-		"	<T extends E> boolean removeAll(Collection<T> c) {\n" + 
-		"	                      ^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Name clash: The method removeAll(Collection<T>) of type Y<E> has the same erasure as removeAll(Collection<? extends E>) of type X<E> but does not override it\n" + 
-		"----------\n"
-	);
-}
-
-// name conflict
-public void test101() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"import java.util.List;\n" + 
-			"public class X {\n" + 
-			"    Integer getX(List<Integer> l) {\n" + 
-			"        return null;\n" + 
-			"    }\n" + 
-			"    String getX(List<String> l) {\n" + 
-			"        return null;\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"class Y {\n" + 
-			"    Integer getX(List<Integer> l) {\n" + 
-			"        return null;\n" + 
-			"    }\n" + 
-			"    String getX(List<Integer> l) {\n" + 
-			"        return null;\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 11)\n" + 
-		"	Integer getX(List<Integer> l) {\n" + 
-		"	        ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Duplicate method getX(List<Integer>) in type Y\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 14)\n" + 
-		"	String getX(List<Integer> l) {\n" + 
-		"	       ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Duplicate method getX(List<Integer>) in type Y\n" + 
-		"----------\n"
-	);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-public void test102() {
-	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	private interface ReturnBase {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private interface ReturnDerived extends ReturnBase {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private interface ReturnLeaf extends ReturnDerived {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private interface Interface {\n" + 
-			"		ReturnBase bar();\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private static class Implementation {\n" + 
-			"		public final ReturnDerived bar() {\n" + 
-			"			return null;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private static class Child extends Implementation implements Interface {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private static class Grandchild extends Child implements Interface {\n" +
-			"		@Override\n" + 
-			"		public ReturnLeaf bar() {\n" + 
-			"			return null;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new Grandchild();\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 26)\n" + 
-		"	public ReturnLeaf bar() {\n" + 
-		"	                  ^^^^^\n" + 
-		"Cannot override the final method from X.Implementation\n" + 
-		"----------\n",
-		null,
-		true,
-		options
-	);
-}
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test103() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface Interface {\n" + 
-//			"		ReturnBase bar();\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Implementation {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild extends Child implements Interface {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child extends Implementation implements Interface {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertTrue("bar should be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);		
-//}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test104() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface Interface {\n" + 
-//			"		ReturnBase bar();\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Implementation {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child extends Implementation implements Interface {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild extends Child implements Interface {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertTrue("bar should be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);		
-//}
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test105() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Super {\n" + 
-//			"		ReturnBase bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Implementation extends Super {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child extends Implementation {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild extends Child {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Implementation.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	int count = 0;
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		IMethodInfo methodInfo = methodInfos[i];
-//		if (new String(methodInfo.getName()).equals("bar")) {
-//			count++;
-//			if (Flags.isBridge(methodInfo.getAccessFlags())) {
-//				found = true;
-//			}
-//		}
-//	}
-//	assertEquals("Should have two method bar", 2, count);
-//	assertTrue("should have one bridge method", found);
-//}
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test106() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Super {\n" + 
-//			"		ReturnBase bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static abstract class Implementation extends Super {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child extends Implementation {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild extends Child {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Implementation.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	int count = 0;
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		IMethodInfo methodInfo = methodInfos[i];
-//		if (new String(methodInfo.getName()).equals("bar")) {
-//			count ++;
-//			if (Flags.isBridge(methodInfo.getAccessFlags())) {
-//				found = true;
-//			}
-//		}
-//	}
-//	assertEquals("should have two methods bar", 2, count);
-//	assertTrue("should have one bridge method", found);
-//}
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test107() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface Interface<E> {\n" + 
-//			"		ReturnBase bar();\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Implementation<T> {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child<U> extends Implementation<U> implements Interface<U> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild<V> extends Child<V> implements Interface<V> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertTrue("bar should be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-public void test108() {
-	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	private interface ReturnBase {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private interface ReturnDerived extends ReturnBase {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private interface ReturnLeaf extends ReturnDerived {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private interface Interface<E> {\n" + 
-			"		ReturnBase bar();\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private static class Implementation<T> {\n" + 
-			"		public final ReturnDerived bar() {\n" + 
-			"			return null;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private static class Child<U> extends Implementation<U> implements Interface<U> {\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	private static class Grandchild<V> extends Child<V> implements Interface<V> {\n" +
-			"		@Override\n" + 
-			"		public ReturnLeaf bar() {\n" + 
-			"			return null;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new Grandchild<String>();\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 26)\n" + 
-		"	public ReturnLeaf bar() {\n" + 
-		"	                  ^^^^^\n" + 
-		"Cannot override the final method from X.Implementation<V>\n" + 
-		"----------\n",
-		null,
-		true,
-		options
-	);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test109() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface Interface<E> {\n" + 
-//			"		ReturnBase bar();\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Implementation<T> {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild<V> extends Child<V> implements Interface<V> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child<U> extends Implementation<U> implements Interface<U> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertTrue("bar should be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);		
-//}
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test110() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface Interface<E> {\n" + 
-//			"		ReturnBase bar();\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Implementation<T> {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child<U> extends Implementation<U> implements Interface<U> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild<V> extends Child<V> implements Interface<V> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertTrue("bar should be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);		
-//}
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test111() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Super<E> {\n" + 
-//			"		ReturnBase bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Implementation<T> extends Super<T> {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child<U> extends Implementation<U> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild<V> extends Child<V> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Implementation.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	int count = 0;
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		IMethodInfo methodInfo = methodInfos[i];
-//		if (new String(methodInfo.getName()).equals("bar")) {
-//			count++;
-//			if (Flags.isBridge(methodInfo.getAccessFlags())) {
-//				found = true;
-//			}
-//		}
-//	}
-//	assertEquals("should have two methods bar", 2, count);
-//	assertTrue("should have one bridge method", found);
-//}
-//// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159973
-//public void test112() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" + 
-//			"	private interface ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private interface ReturnDerived extends ReturnBase {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Super<E> {\n" + 
-//			"		ReturnBase bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static abstract class Implementation<T> extends Super<T> {\n" + 
-//			"		public final ReturnDerived bar() {\n" + 
-//			"			return null;\n" + 
-//			"		}\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Child<U> extends Implementation<U> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	private static class Grandchild<V> extends Child<V> {\n" + 
-//			"	}\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		new Grandchild();\n" + 
-//			"	}\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//	File fileX = new File(OUTPUT_DIR + File.separator  +"X$Child.class");
-//	IClassFileReader reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	IMethodInfo[] methodInfos = reader.getMethodInfos();
-//	boolean found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Grandchild.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		if (new String(methodInfos[i].getName()).equals("bar")) {
-//			found = true;
-//			break;
-//		}
-//	}
-//	assertFalse("bar should not be there", found);
-//	
-//	fileX = new File(OUTPUT_DIR + File.separator  +"X$Implementation.class");
-//	reader = ToolFactory.createDefaultClassFileReader(fileX.getAbsolutePath(), IClassFileReader.ALL_BUT_METHOD_BODIES);
-//	methodInfos = reader.getMethodInfos();
-//	int count = 0;
-//	found = false;
-//	for (int i = 0, max = methodInfos.length; i < max; i++) {
-//		IMethodInfo methodInfo = methodInfos[i];
-//		if (new String(methodInfo.getName()).equals("bar")) {
-//			count++;
-//			if (Flags.isBridge(methodInfo.getAccessFlags())) {
-//				found = true;
-//			}
-//		}
-//	}
-//	assertEquals("should have two methods bar", 2, count);
-//	assertTrue("should have one bridge method", found);
-//}
-////https://bugs.eclipse.org/bugs/show_bug.cgi?id=156736
-//public void test113() {
-//	Map options = this.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportOverridingMethodWithoutSuperInvocation, CompilerOptions.ERROR);
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"abstract class Y {\n" + 
-//			"  abstract void foo();\n" + 
-//			"}\n" + 
-//			"public class X extends Y {\n" + 
-//			"  void foo() {\n" + 
-//			"    // should not complain for missing super call, since overriding \n" + 
-//			"    // abstract method\n" + 
-//			"  }\n" + 
-//			"}"
-//		},
-//		"",
-//		null,
-//		true,
-//		null,
-//		options,
-//		null
-//	);
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=156736
-public void test114() {
-	Map options = this.getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportOverridingMethodWithoutSuperInvocation, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"  void foo() {}\n" + 
-			"}\n" + 
-			"public class X extends Y {\n" + 
-			"  @Override\n" +
-			"  void foo() {\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	void foo() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method X.foo() is overriding a method without making a super invocation\n" + 
-		"----------\n",
-		null,
-		true,
-		options
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=156736
-public void test115() {
-	Map options = this.getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportOverridingMethodWithoutSuperInvocation, CompilerOptions.ERROR);
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"  void foo() {}\n" + 
-			"}\n" + 
-			"public class X extends Y {\n" + 
-			"  @Override\n" +
-			"  void foo() {\n" + 
-			"    super.foo();\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"",
-		null,
-		true,
-		null,
-		options,
-		null
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=156736
-public void test116() {
-   	Map options = this.getCompilerOptions();
-   	options.put(CompilerOptions.OPTION_ReportOverridingMethodWithoutSuperInvocation, CompilerOptions.ERROR);
-	String expectedOutput = new CompilerOptions(options).sourceLevel < ClassFileConstants.JDK1_6
-	?	"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Zork foo() {}\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	Object foo() {\n" + 
-		"	       ^^^^^\n" + 
-		"The method foo() of type X must override a superclass method\n" + 
-		"----------\n"
-	:	"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Zork foo() {}\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	Object foo() {\n" + 
-		"	       ^^^^^\n" + 
-		"The method foo() of type X must override or implement a supertype method\n" + 
-		"----------\n";	
-   	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"  Zork foo() {}\n" + 
-			"}\n" + 
-			"public class X extends Y {\n" + 
-			"  @Override\n" +
-			"  Object foo() {\n" +
-			"     return new Y() {\n" +
-			"         Object foo() {\n" +
-			"            return null;\n" +
-			"         }\n" +
-			"     };" +
-			"  }\n" + 
-			"}"
-		},
-		expectedOutput,
-		null,
-		true,
-		options	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=156736
-public void test117() {
-	Map options = this.getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportOverridingMethodWithoutSuperInvocation, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class Y {\n" + 
-			"  Object foo() {\n" +
-			"     return null;\n" +
-			"  }\n" + 
-			"}\n" + 
-			"public class X extends Y {\n" + 
-			"  @Override\n" +
-			"  Object foo() {\n" +
-			"     return new Y() {\n" +
-   			"         @Override\n" +
-			"         Object foo() {\n" +
-			"            return null;\n" +
-			"         }\n" +
-			"     };" +
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	Object foo() {\n" + 
-		"	       ^^^^^\n" + 
-		"The method X.foo() is overriding a method without making a super invocation\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 11)\n" + 
-		"	Object foo() {\n" + 
-		"	       ^^^^^\n" + 
-		"The method new Y(){}.foo() is overriding a method without making a super invocation\n" + 
-		"----------\n",
-		null,
-		true,
-		options
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=156736
-public void test118() {
-	Map options = this.getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportOverridingMethodWithoutSuperInvocation, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class Y<E> {\n" + 
-			"	<U extends E> U foo() {\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class X<T> extends Y<T> {\n" + 
-			"	@Override\n" + 
-			"	<V extends T> V foo() {\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	<V extends T> V foo() {\n" + 
-		"	                ^^^^^\n" + 
-		"The method X<T>.foo() is overriding a method without making a super invocation\n" + 
-		"----------\n",
-		null,
-		true,
-		options
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=156736
-public void test119() {
-	Map options = this.getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportOverridingMethodWithoutSuperInvocation, CompilerOptions.ERROR);
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class Y<E> {\n" + 
-			"	E foo() {\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class X<T> extends Y<T> {\n" + 
-			"	@Override\n" + 
-			"	T foo() {\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	T foo() {\n" + 
-		"	  ^^^^^\n" + 
-		"The method X<T>.foo() is overriding a method without making a super invocation\n" + 
-		"----------\n",
-		null,
-		true,
-		options
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=161541
-public void test120() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	abstract class M<T extends CharSequence, S> {\n" + 
-			"		abstract void a(T t);\n" + 
-			"		abstract void a(S s);\n" + 
-			"		void a(String s) {}\n" + 
-			"\n" + 
-			"		abstract void b(T t);\n" + 
-			"		protected void b(String s) {}\n" + 
-			"		protected abstract void b(S s);\n" + 
-			"\n" + 
-			"		public void c(String s) {}\n" + 
-			"		protected abstract void c(T t);\n" + 
-			"		abstract void c(S s);\n" + 
-			"\n" + 
-			"		protected abstract void d(T t);\n" + 
-			"		public void d(S s) {}\n" + 
-			"\n" + 
-			"		void e(T t) {}\n" + 
-			"		void e(S s) {}\n" +
-			"	}\n" + 
-			"	class N extends M<String, String> {}\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 21)\n" + 
-		"	class N extends M<String, String> {}\n" + 
-		"	      ^\n" + 
-		"Duplicate methods named e with the parameters (S) and (T) are defined by the type X.M<String,String>\n" + 
-		"----------\n"
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=173477
-public void test121() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface Root {\n" + 
-			"	public Root someMethod();\n" + 
-			"}\n" + 
-			"\n" + 
-			"interface Intermediary extends Root {\n" + 
-			"	public Leaf someMethod();\n" + 
-			"}\n" + 
-			"\n" + 
-			"class Leaf implements Intermediary {\n" + 
-			"	public Leaf someMethod() {\n" + 
-			"		System.out.print(\"SUCCESS\");\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		Leaf leafReference = new Leaf();\n" + 
-			"		leafReference.someMethod();\n" + 
-			"		Root rootReference = leafReference;\n" + 
-			"		rootReference.someMethod(); /* throws error */\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"SUCCESSSUCCESS"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NonFatalErrorTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NonFatalErrorTest.java
deleted file mode 100644
index 6ba9235..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NonFatalErrorTest.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class NonFatalErrorTest extends AbstractRegressionTest {
-	public NonFatalErrorTest(String name) {
-		super(name);
-	}
-	// Static initializer to specify tests subset using TESTS_* static variables
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_NAMES = new String[] { "test127" };
-//		TESTS_NUMBERS = new int[] { 5 };
-//		TESTS_RANGE = new int[] { 169, 180 };
-	}
-
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(testClass());
-	}
-
-	public static Class testClass() {  
-		return NonFatalErrorTest.class;
-	}
-
-	public void test001() {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_FatalOptionalError, CompilerOptions.DISABLED);
-		this.runNegativeTestWithExecution(
-			new String[] {
-				"X.java",
-				"import java.util.*;\n" +
-				"\n" +
-				"public class X {\n" +
-				"		 public static void main(String argv[]) {\n" +
-				"				 System.out.println(\"SUCCESS\");\n" +
-				"		 }\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	import java.util.*;\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"The import java.util is never used\n" + 
-			"----------\n",
-			"SUCCESS",
-			null,
-			true,
-			null,
-			customOptions,
-			null);
-	}
-	
-	public void test002() {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_FatalOptionalError, CompilerOptions.ENABLED);
-		this.runNegativeTestWithExecution(
-			new String[] {
-				"X.java",
-				"import java.util.*;\n" +
-				"\n" +
-				"public class X {\n" +
-				"		 public static void main(String argv[]) {\n" +
-				"				 System.out.println(\"SUCCESS\");\n" +
-				"		 }\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	import java.util.*;\n" + 
-			"	       ^^^^^^^^^\n" + 
-			"The import java.util is never used\n" + 
-			"----------\n",
-			"Unexpected target error running resulting class file for X.java:\n" + 
-			"java.lang.Error: Unresolved compilation problem: \n" + 
-			"\n",
-			null,
-			true,
-			null,
-			customOptions,
-			null);
-	}
-	
-	public void test003() {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_FatalOptionalError, CompilerOptions.DISABLED);
-		customOptions.put(CompilerOptions.OPTION_ReportNonExternalizedStringLiteral, CompilerOptions.ERROR);
-		this.runNegativeTestWithExecution(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"		 public static void main(String argv[]) {\n" +
-				"				 System.out.println(\"SUCCESS\");\n" +
-				"		 }\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	System.out.println(\"SUCCESS\");\n" + 
-			"	                   ^^^^^^^^^\n" + 
-			"Non-externalized string literal; it should be followed by //$NON-NLS-<n>$\n" + 
-			"----------\n",
-			"SUCCESS",
-			null,
-			true,
-			null,
-			customOptions,
-			null);
-	}
-	
-	public void test004() {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_FatalOptionalError, CompilerOptions.DISABLED);
-		customOptions.put(CompilerOptions.OPTION_ReportUndocumentedEmptyBlock, CompilerOptions.ERROR);
-		this.runNegativeTestWithExecution(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"		 public static void foo() {}\n" +
-				"		 public static void main(String argv[]) {\n" +
-				"				foo();\n" +	
-				"				System.out.println(\"SUCCESS\");\n" +
-				"		 }\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	public static void foo() {}\n" + 
-			"	                         ^^\n" + 
-			"Empty block should be documented\n" + 
-			"----------\n",
-			"SUCCESS",
-			null,
-			true,
-			null,
-			customOptions,
-			null);
-	}
-	
-	public void test005() {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_FatalOptionalError, CompilerOptions.ENABLED);
-		customOptions.put(CompilerOptions.OPTION_ReportUndocumentedEmptyBlock, CompilerOptions.ERROR);
-		this.runNegativeTestWithExecution(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"		 public static void foo() {}\n" +
-				"		 public static void main(String argv[]) {\n" +
-				"				foo();\n" +	
-				"				System.out.println(\"SUCCESS\");\n" +
-				"		 }\n" +
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	public static void foo() {}\n" + 
-			"	                         ^^\n" + 
-			"Empty block should be documented\n" + 
-			"----------\n",
-			"Unexpected target error running resulting class file for X.java:\n" + 
-			"java.lang.Error: Unresolved compilation problem: \n" + 
-			"	Empty block should be documented\n" + 
-			"\n",
-			null,
-			true,
-			null,
-			customOptions,
-			null);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceImplTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceImplTests.java
deleted file mode 100644
index f1c2039..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceImplTests.java
+++ /dev/null
@@ -1,1889 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;
-import org.eclipse.wst.jsdt.internal.compiler.flow.NullInfoRegistry;
-import org.eclipse.wst.jsdt.internal.compiler.flow.UnconditionalFlowInfo;
-import org.eclipse.wst.jsdt.internal.compiler.flow.UnconditionalFlowInfo.AssertionFailedException;
-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.LocalVariableBinding;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * A tests series especially meant to validate the internals of our null
- * reference analysis. See NullReferenceTest for tests targetted at 
- * the source code compiler behavior level.
- */
-public class NullReferenceImplTests extends NullReferenceTest {
-	// Static initializer to specify tests subset using TESTS_* static variables
-  	// All specified tests which does not belong to the class are skipped...
-  	// Only the highest compliance level is run; add the VM argument
-  	// -Dcompliance=1.4 (for example) to lower it if needed
-  	static {
-//    	TESTS_NAMES = new String[] { "test2050" };
-//    	TESTS_NUMBERS = new int[] { 2061 };   
-//    	TESTS_NUMBERS = new int[] { 2999 };   
-//    	TESTS_RANGE = new int[] { 2050, -1 }; 
-  	}
-
-/**
- * A class to hold states as seen by the low level validation tests and machinery.
- * State provides:
- * - singletons for all possible states given the number of bits for the said 
- *   states;
- * - semantic names for known states;
- * - printable representation of states as bit fields;
- * - coordination with other classes to perform transitive closure analysis, etc.
- */
-	/*
-		This is a tabular definition for states. It can be completed/leveraged by 
-		the Generator class so as to smoothen the transition between differing encodings
-		of the states.
-	// STATES DEFINITION START
-			000000	start
-			000001
-			000010
-			000011
-			000100	pot. unknown
-			000101
-			000110
-			000111
-			001000	pot. non null
-			001001
-			001010
-			001011
-			001100	pot. nn & pot. un
-			001101
-			001110
-			001111
-			010000	pot. null
-			010001
-			010010
-			010011
-			010100	pot. n & pot. un
-			010101
-			010110
-			010111
-			011000	pot. n & pot. nn
-			011001
-			011010
-			011011
-			011100
-			011101
-			011110
-			011111
-			100000
-			100001
-			100010
-			100011
-			100100	def. unknown
-			100101
-			100110
-			100111
-			101000	def. non null
-			101001
-			101010
-			101011
-			101100	pot. nn & prot. nn
-			101101
-			101110
-			101111
-			110000	def. null
-			110001
-			110010
-			110011
-			110100	pot. n & prot. n
-			110101
-			110110
-			110111
-			111000	prot. null
-			111001
-			111010
-			111011
-			111100	prot. non null
-			111101
-			111110
-			111111
-	// STATES DEFINITION END
-	*/
-	public static class State implements Comparable {
-		// PREMATURE consider moving initialization to test setup/dispose
-		public final static State[] states = {
-			// STATES INITIALIZER START
-			new State(0, "start"), // 000000
-			new State(1), // 000001
-			new State(2), // 000010
-			new State(3), // 000011
-			new State(4, "pot. unknown"), // 000100
-			new State(5), // 000101
-			new State(6), // 000110
-			new State(7), // 000111
-			new State(8, "pot. non null"), // 001000
-			new State(9), // 001001
-			new State(10), // 001010
-			new State(11), // 001011
-			new State(12, "pot. nn & pot. un"), // 001100
-			new State(13), // 001101
-			new State(14), // 001110
-			new State(15), // 001111
-			new State(16, "pot. null"), // 010000
-			new State(17), // 010001
-			new State(18), // 010010
-			new State(19), // 010011
-			new State(20, "pot. n & pot. un"), // 010100
-			new State(21), // 010101
-			new State(22), // 010110
-			new State(23), // 010111
-			new State(24, "pot. n & pot. nn"), // 011000
-			new State(25), // 011001
-			new State(26), // 011010
-			new State(27), // 011011
-			new State(28), // 011100
-			new State(29), // 011101
-			new State(30), // 011110
-			new State(31), // 011111
-			new State(32), // 100000
-			new State(33), // 100001
-			new State(34), // 100010
-			new State(35), // 100011
-			new State(36, "def. unknown"), // 100100
-			new State(37), // 100101
-			new State(38), // 100110
-			new State(39), // 100111
-			new State(40, "def. non null"), // 101000
-			new State(41), // 101001
-			new State(42), // 101010
-			new State(43), // 101011
-			new State(44, "pot. nn & prot. nn"), // 101100
-			new State(45), // 101101
-			new State(46), // 101110
-			new State(47), // 101111
-			new State(48, "def. null"), // 110000
-			new State(49), // 110001
-			new State(50), // 110010
-			new State(51), // 110011
-			new State(52, "pot. n & prot. n"), // 110100
-			new State(53), // 110101
-			new State(54), // 110110
-			new State(55), // 110111
-			new State(56, "prot. null"), // 111000
-			new State(57), // 111001
-			new State(58), // 111010
-			new State(59), // 111011
-			new State(60, "prot. non null"), // 111100
-			new State(61), // 111101
-			new State(62), // 111110
-			new State(63), // 111111
-			// STATES INITIALIZER END
-		};
-		public final static State start = states[0];
-		public static final int 
-			stateMaxValue = 0x3F,
-			stateWidth = 6,
-			statesNb = stateMaxValue + 1;
-		String name, printableBitsField, hexString;
-		public byte value;
-		boolean symbolic;
-	private State() {
-	}
-	private State(int numericValue) {
-		this(numericValue, null);
-	}
-	private State(int numericValue, String publicName) {
-		if (numericValue > stateMaxValue) {
-			throw new IllegalArgumentException("state value overflow");
-		}
-		this.value = (byte) numericValue;
-		StringBuffer printableValue = new StringBuffer(6);
-		for (int i = stateWidth - 1; i >= 0; i--) {
-			printableValue.append((numericValue >>> i & 1) != 0 ? '1' : '0');
-		}
-		this.printableBitsField = printableValue.toString();
-		if (this.value > 0xF) {
-			this.hexString = "0x" + Integer.toHexString(this.value).toUpperCase();
-		}
-		else {
-			this.hexString = "0x0" + Integer.toHexString(this.value).toUpperCase();
-		}
-		if (publicName != null) {
-			this.name = publicName;
-			this.symbolic = true;
-		}
-		else {
-			this.name = this.printableBitsField;
-		}
-	}
-	private State(String commentLine) {
-		char current = ' '; // keep the initialization status quiet
-		int cursor, length;
-		for (cursor = 0, length = commentLine.length(); 
-			cursor < length;
-			cursor++) {
-			if ((current = commentLine.charAt(cursor)) == '0' ||
-					current == '1') {
-				break;
-			}
-		}
-		if (cursor == length) {
-			throw new RuntimeException("bad state definition format (missing bits field): " + commentLine); 
-			// PREMATURE adopt consistent error policy
-		}
-		int valueDigits;
-		for (valueDigits = 1; cursor < (length - 1) && valueDigits < stateWidth; valueDigits++) {
-			this.value = (byte) ((this.value << 1) + (current - '0'));
-			if ((current = commentLine.charAt(++cursor)) != '0' &&
-					current != '1') {
-				throw new RuntimeException("bad state definition format (inappropriate character in bits field): " + commentLine);
-				// PREMATURE adopt consistent error policy
-			}
-		}
-		if (valueDigits < stateWidth) {
-			throw new RuntimeException("bad state definition format (bits field is too short): " + commentLine);
-			// PREMATURE adopt consistent error policy
-		}
-		this.value = (byte) ((this.value << 1) + (current - '0'));
-		this.printableBitsField = commentLine.substring(cursor - stateWidth + 1, cursor + 1);
-		if (this.value > 0xF) {
-			this.hexString = "0x" + Integer.toHexString(this.value).toUpperCase();
-		}
-		else {
-			this.hexString = "0x0" + Integer.toHexString(this.value).toUpperCase();
-		}
-		while (++cursor < length && Character.isWhitespace(current = commentLine.charAt(++cursor)) && current != '\n') {
-			// loop
-		}
-		if (cursor < length && current != '\n') {
-			this.name = commentLine.substring(cursor, length);
-		}
-		if (this.name == null) {
-			this.name = this.printableBitsField;
-		} else {
-			this.symbolic = true;
-		}
-	}
-	private String asInitializer() {
-		StringBuffer result = new StringBuffer(70);
-		result.append("		new State(");
-		result.append(this.value);
-		char first;
-		boolean nameIsSymbolic = (first = this.name.charAt(0)) != '0'
-			&& first != '1';
-		if (nameIsSymbolic) {
-			result.append(", \"");
-			result.append(this.name);
-			result.append('"');
-		}
-		result.append("), // ");
-		result.append(this.printableBitsField);
-		return result.toString();
-	}
-	long [] asLongArray() {
-		long[] result = new long[stateWidth];
-		for (int i = 0; i < stateWidth; i++) {
-			result[i] = ((this.value >> (stateWidth - i - 1)) & 1) == 0 ? 0 : 1;
-		}
-		return result;
-	}
-	private String asSourceComment() {
-		StringBuffer result = new StringBuffer(70);
-		result.append("\t\t");
-		result.append(this.printableBitsField);
-		char first;
-		boolean nameIsSymbolic = (first = this.name.charAt(0)) != '0'
-			&& first != '1';
-		if (nameIsSymbolic) {
-			result.append('\t');
-			result.append(this.name);
-		}
-		return result.toString();
-	}
-	public int compareTo(Object o) {
-		return this.value - ((State) o).value;
-	}
-	static State fromLongValues(long bit1, long bit2, long bit3, long bit4, long bit5, long bit6) {
-		// PREMATURE consider taking an UnconditionalFlowInfo in parameter
-		return states[(int)(
-			(bit6 & 1) + 
-				2 * ((bit5 & 1) +
-					2 * ((bit4 & 1) +
-						2 * ((bit3 & 1) +
-							2 * ((bit2 & 1) +
-								2 * (bit1 & 1))))))];
-	}
-	private static Map namesIndex; 
-	static State fromSymbolicName (String name) {
-		if (namesIndex == null) {
-			namesIndex = new HashMap(states.length);
-			for (int i = 0; i < states.length; i++) {
-				if (states[i].name != null) {
-					namesIndex.put(states[i].name, states[i]);
-				}
-			}
-		}
-		return (State) namesIndex.get(name);
-	}
-	private static void grabDefinitionFromComment(BufferedReader input) {
-		String line;
-		State current;
-	// use when the initializer is incomplete, hence needs to be reinitialized
-	//	states = new State[stateMaxValue + 1];
-	// use when the states field is final, with the appropriate size:
-		for (int i = 0; i <= stateMaxValue; i++) {
-			states[i] = null;
-		}
-		try {
-			while ((line = input.readLine()) != null && line.indexOf(definitionEndMarker) == -1) {
-				current = new State(line);
-				if (states[current.value] != null) {
-					throw new RuntimeException("duplicate state for index: " + current.value);
-				}
-				else {
-					states[current.value] = current;
-				}
-			}
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-		for (int i = 0; i < stateMaxValue; i++) {
-			if (states[i] == null) {
-				states[i] = new State(i);
-			}
-		}
-	}
-	// PREMATURE may decide to remove
-	//private static void printAsInitializer() {
-	//	int i, length;
-	//	System.out.println(initializerStartMarker);
-	//	for (i = 0, length = states.length; i < length; i++) {
-	//		System.out.println(states[i].asInitializer());
-	//	}
-	//	for (/* continue */; i <= stateMaxValue; i++) {
-	//		System.out.println((new State(i)).asInitializer() + " CHECK");
-	//	}
-	//	System.out.println(initializerEndMarker);
-	//}
-	// PREMATURE may decide to remove
-	//private static void printAsSourceComment() {
-	//	int i, length;
-	//	System.out.println("/*");
-	//	System.out.println(definitionStartMarker);
-	//	for (i = 0, length = states.length; i < length; i++) {
-	//		System.out.println(states[i].asSourceComment());
-	//	}
-	//	for (/* continue */; i <= stateMaxValue; i++) {
-	//		System.out.println((new State(i)).asSourceComment());
-	//	}
-	//	System.out.println(definitionEndMarker);
-	//	System.out.println("*/");
-	//}
-	private final static String 
-		definitionStartMarker = "// STATES " + CodeAnalysis.definitionStartMarker,
-		definitionEndMarker = "// STATES " + CodeAnalysis.definitionEndMarker,
-		initializerStartMarker = "// STATES " + CodeAnalysis.initializerStartMarker,
-		initializerEndMarker = "// STATES " + CodeAnalysis.initializerEndMarker;
-	static void reinitializeFromComment(BufferedReader input, BufferedWriter output) {
-		String line, tab = "";
-		int cursor;
-		char c;
-		try {
-			while ((line = input.readLine()) != null) {
-				output.write(line);
-				output.write('\n');
-				if ((cursor = line.indexOf(definitionStartMarker)) != -1) {
-					// check the line format
-					boolean reachedStart = true;
-					for (int i = 0; i < cursor; i++) {
-						if (!Character.isWhitespace(c = line.charAt(i))) {
-							reachedStart = false;
-							break;
-						}
-						else {
-							tab += c;
-						}
-					}
-					if (reachedStart) {
-						grabDefinitionFromComment(input); // consumes up to the END line
-						int i, length;
-						for (i = 0, length = states.length; i < length; i++) {
-							output.write(states[i].asSourceComment());
-							output.write('\n');
-						}
-						output.write(tab + definitionEndMarker + "\n");
-					}
-				}
-				if ((cursor = line.indexOf(initializerStartMarker)) != -1) {
-					// check the line format
-					boolean reachedStart = true;
-					tab = "";
-					for (int i = 0; i < cursor; i++) {
-						if (!Character.isWhitespace(c = line.charAt(i))) {
-							reachedStart = false;
-							break;
-						}
-						else {
-							tab += c;
-						}
-					}
-					if (reachedStart) {
-						while ((line = input.readLine()) != null && 
-								line.indexOf(initializerEndMarker) == -1) {
-							// loop
-						}
-						int i, length;
-						for (i = 0, length = states.length; i < length; i++) {
-							output.write(states[i].asInitializer());
-							output.write('\n');
-						}
-						output.write(tab + initializerEndMarker + "\n");
-					}
-				}
-			}
-			output.flush();
-			namesIndex = null;
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-	static Iterator symbolicStates() {
-		return new Iterator() {
-			int nextSymbolic = -1;
-			public boolean hasNext() {
-				if (nextSymbolic == -1) {
-					for (nextSymbolic = 0; nextSymbolic < states.length; nextSymbolic++) {
-						if (states[nextSymbolic].symbolic) {
-							break;
-						}
-					}
-				} else {
-					for (; nextSymbolic < states.length; nextSymbolic++) {
-						if (states[nextSymbolic].symbolic) {
-							break;
-						}
-					}
-				}
-				return nextSymbolic < states.length;
-			}
-			public Object next() {
-				State result = null;
-				if (nextSymbolic < states.length) {
-					result = states[nextSymbolic];
-					nextSymbolic++;
-				}
-				return result;
-			}
-			public void remove() {
-				throw new RuntimeException("unimplemented");
-			}
-		};
-	}
-	public String toString() {
-		return this.name;
-	}
-	}
-
-public NullReferenceImplTests(String name) {
-    super(name);
-}
-
-  	// Tests tuning
-	static final boolean 
-		skipHighOrderBits = false; // define to true when tuning encoding
-	static final int
-		combinationTestsloopsNb = 1; // define to 10000s to measure performances
-
-public static Test suite() {
-	// we do not want to run for 1.3, 1.4, 1.5 but once only
-    Class clazz = testClass();
-    TestSuite all = new TestSuite(clazz.getName());
-    List tests = buildTestsList(testClass());
-    for (int i = 0, length = tests.size(); i < length; i++) {
-    	all.addTest((Test) tests.get(i));
-    }
-	return all;
-}
-  
-public static Class testClass() {
-    return NullReferenceImplTests.class;
-}
-
-public void test2050_markAsComparedEqualToNonNull() {
-	int failures = NullReferenceImplTransformations.markAsComparedEqualToNonNull.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2051_markAsComparedEqualToNull() {
-	int failures = NullReferenceImplTransformations.markAsComparedEqualToNull.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2055_markAsDefinitelyNonNull() {
-	int failures = NullReferenceImplTransformations.markAsDefinitelyNonNull.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2056_markAsDefinitelyNull() {
-	int failures = NullReferenceImplTransformations.markAsDefinitelyNull.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2057_markAsDefinitelyUnknown() {
-	int failures = NullReferenceImplTransformations.markAsDefinitelyUnknown.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2060_addInitializationsFrom() {
-	int failures = NullReferenceImplTransformations.addInitializationsFrom.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2061_addPotentialInitializationsFrom() {
-	int failures = NullReferenceImplTransformations.addPotentialInitializationsFrom.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2062_mergedWith() {
-	int failures = NullReferenceImplTransformations.mergedWith.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2070_newNullInfoRegistry() {
-	int failures = NullReferenceImplTransformations.newNullInfoRegistry.test();
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-// PREMATURE rewrite from scratch
-//public void _test2058_recode() {
-//	long [][][] testData = transitionsTablesData[recode];
-//	int failures = 0;
-//	long start;
-//	if (combinationTestsloopsNb > 1) {
-//		start = System.currentTimeMillis();
-//	}
-//	String header = "recode failures: ";
-//	for (int l = 0; l < combinationTestsloopsNb ; l++) {
-//		for (int i = 0; i < testData.length; i++) {
-//			UnconditionalFlowInfoTestHarness result;
-//			result = UnconditionalFlowInfoTestHarness.
-//						testUnconditionalFlowInfo(testData[i][0]);
-//			result.encode();
-//			result.decode();
-//			
-//			if (!result.testEquals(UnconditionalFlowInfoTestHarness.
-//						testUnconditionalFlowInfo(testData[i][0]))) {
-//				if (failures == 0) {
-//					System.out.println(header);
-//				}
-//				failures++;
-//				System.out.println("\t\t{" + result.testString() + 
-//					"}, // instead of: " + testStringValueOf(testData[i][0]));
-//			}
-//		}
-//	}
-//	if (combinationTestsloopsNb > 1) {
-//		System.out.println("mergedWith\t\t\t" + combinationTestsloopsNb + "\t" + 
-//				(System.currentTimeMillis() - start));
-//	}
-//	for (int i = 0; i < testData.length; i++) {
-//		UnconditionalFlowInfoTestHarness result;
-//		result = UnconditionalFlowInfoTestHarness.
-//					testUnconditionalFlowInfo(testData[i][0], 64);
-//		result.encode();
-//		result.decode();
-//		
-//		if (!result.testEquals(UnconditionalFlowInfoTestHarness.
-//					testUnconditionalFlowInfo(testData[i][0], 64))) {
-//			if (failures == 0) {
-//				System.out.println(header);
-//			}
-//			failures++;
-//			System.out.println("\t\t{" + result.testString() + 
-//				"}, // (64) - instead of: " + testStringValueOf(testData[i][0]));
-//		}
-//	}
-//	assertTrue("nb of failures: " + failures, failures == 0);
-//}
-
-public void test2400_state_consistency() {
-	int failures = 0;
-	long start;
-	if (combinationTestsloopsNb > 1) {
-		start = System.currentTimeMillis();
-	}
-	String header = "state consistency failures: ";
-	for (int l = 0; l < combinationTestsloopsNb ; l++) {
-		for (int i = 0; i < State.states.length; i++) {
-			if (State.states[i].symbolic) {
-				UnconditionalFlowInfoTestHarness 
-					state = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(State.states[i]);
-				boolean
-					isDefinitelyNonNull = state.isDefinitelyNonNull(TestLocalVariableBinding.local0),
-					isDefinitelyNull = state.isDefinitelyNull(TestLocalVariableBinding.local0),
-					isDefinitelyUnknown = state.isDefinitelyUnknown(TestLocalVariableBinding.local0),
-					isPotentiallyNonNull = state.isPotentiallyNonNull(TestLocalVariableBinding.local0),
-					isPotentiallyNull = state.isPotentiallyNull(TestLocalVariableBinding.local0),
-					isPotentiallyUnknown = state.isPotentiallyUnknown(TestLocalVariableBinding.local0),
-					isProtectedNonNull = state.isProtectedNonNull(TestLocalVariableBinding.local0),
-					isProtectedNull = state.isProtectedNull(TestLocalVariableBinding.local0),
-					cannotBeDefinitelyNullOrNonNull = state.cannotBeDefinitelyNullOrNonNull(TestLocalVariableBinding.local0),
-					cannotBeNull = state.cannotBeNull(TestLocalVariableBinding.local0),
-					canOnlyBeNull = state.canOnlyBeNull(TestLocalVariableBinding.local0);
-				if (isDefinitelyNonNull
-							&& (isDefinitelyNull || isDefinitelyUnknown
-									|| isPotentiallyNull
-									|| isProtectedNull)) {
-					if (failures == 0) {
-						System.out.println(header);
-					}
-					failures++;
-					System.out.println("\t\tconsistency breakage for definitely non null state " + State.states[i].name);
-				}
-				if (isDefinitelyNull
-							&& (isDefinitelyNonNull || isDefinitelyUnknown
-									|| isPotentiallyUnknown || isProtectedNonNull)) {
-					if (failures == 0) {
-						System.out.println(header);
-					}
-					failures++;
-					System.out.println("\t\tconsistency breakage for definitely null state " + State.states[i].name);
-				}
-				if (isDefinitelyUnknown
-							&& (isDefinitelyNonNull || isDefinitelyNull
-									|| isPotentiallyNull || isProtectedNonNull
-									|| isProtectedNull)) {
-					if (failures == 0) {
-						System.out.println(header);
-					}
-					failures++;
-					System.out.println("\t\tconsistency breakage for definitely unknown state " + State.states[i].name);
-				}
-				if (isProtectedNonNull && !isDefinitelyNonNull
-						|| isProtectedNull && !isDefinitelyNull
-						|| i > 0 // not start
-							&& !State.states[i].name.equals("pot. non null")
-							&& !(isDefinitelyNonNull || isDefinitelyNull
-									|| isDefinitelyUnknown || isPotentiallyNull
-									|| isPotentiallyUnknown || isProtectedNonNull
-									|| isProtectedNull)
-						|| cannotBeDefinitelyNullOrNonNull != 
-							(isPotentiallyUnknown ||
-								isPotentiallyNull && isPotentiallyNonNull)
-						|| cannotBeNull != (isProtectedNonNull || 
-								isDefinitelyNonNull)
-						|| canOnlyBeNull != (isProtectedNull || 
-								isDefinitelyNull)) {
-					if (failures == 0) {
-						System.out.println(header);
-					}
-					failures++;
-					System.out.println("\t\tconsistency breakage for " + State.states[i].name);
-				}
-			}
-		}
-	}
-	if (combinationTestsloopsNb > 1) {
-		System.out.println("mergedWith\t\t\t" + combinationTestsloopsNb + "\t" + 
-				(System.currentTimeMillis() - start));
-	}
-	for (int i = 0; i < State.states.length; i++) {
-		if (State.states[i].symbolic) {
-			UnconditionalFlowInfoTestHarness state;
-			state = UnconditionalFlowInfoTestHarness.
-						testUnconditionalFlowInfo(State.states[i], 64);
-			boolean
-				isDefinitelyNonNull = state.isDefinitelyNonNull(TestLocalVariableBinding.local64),
-				isDefinitelyNull = state.isDefinitelyNull(TestLocalVariableBinding.local64),
-				isDefinitelyUnknown = state.isDefinitelyUnknown(TestLocalVariableBinding.local64),
-				isPotentiallyNonNull = state.isPotentiallyNonNull(TestLocalVariableBinding.local64),
-				isPotentiallyNull = state.isPotentiallyNull(TestLocalVariableBinding.local64),
-				isPotentiallyUnknown = state.isPotentiallyUnknown(TestLocalVariableBinding.local64),
-				isProtectedNonNull = state.isProtectedNonNull(TestLocalVariableBinding.local64),
-				isProtectedNull = state.isProtectedNull(TestLocalVariableBinding.local64),
-				cannotBeDefinitelyNullOrNonNull = state.cannotBeDefinitelyNullOrNonNull(TestLocalVariableBinding.local64),
-				cannotBeNull = state.cannotBeNull(TestLocalVariableBinding.local64),
-				canOnlyBeNull = state.canOnlyBeNull(TestLocalVariableBinding.local64);
-				if (isDefinitelyNonNull
-							&& (isDefinitelyNull || isDefinitelyUnknown
-									|| isPotentiallyNull
-									|| isProtectedNull)) {
-					if (failures == 0) {
-						System.out.println(header);
-					}
-					failures++;
-					System.out.println("\t\tconsistency breakage (64) for definitely non null state " + State.states[i].name);
-				}
-				if (isDefinitelyNull
-							&& (isDefinitelyNonNull || isDefinitelyUnknown
-									|| isPotentiallyUnknown || isProtectedNonNull)) {
-					if (failures == 0) {
-						System.out.println(header);
-					}
-					failures++;
-					System.out.println("\t\tconsistency breakage (64) for definitely null state " + State.states[i].name);
-				}
-				if (isDefinitelyUnknown
-							&& (isDefinitelyNonNull || isDefinitelyNull
-									|| isPotentiallyNull || isProtectedNonNull
-									|| isProtectedNull)) {
-					if (failures == 0) {
-						System.out.println(header);
-					}
-					failures++;
-					System.out.println("\t\tconsistency breakage (64) for definitely unknown state " + State.states[i].name);
-				}
-				if (isProtectedNonNull && !isDefinitelyNonNull
-						|| isProtectedNull && !isDefinitelyNull
-						|| i > 0 // not start
-							&& !State.states[i].name.equals("pot. non null")						
-							&& !(isDefinitelyNonNull || isDefinitelyNull
-									|| isDefinitelyUnknown || isPotentiallyNull
-									|| isPotentiallyUnknown || isProtectedNonNull
-									|| isProtectedNull)
-									|| cannotBeDefinitelyNullOrNonNull != 
-										(isPotentiallyUnknown ||
-											isPotentiallyNull && 
-												isPotentiallyNonNull)
-									|| cannotBeNull != (isProtectedNonNull || 
-											isDefinitelyNonNull)
-									|| canOnlyBeNull != (isProtectedNull || 
-											isDefinitelyNull)) {
-					if (failures == 0) {
-						System.out.println(header);
-					}
-					failures++;
-					System.out.println("\t\tconsistency breakage (64) for " + State.states[i].name);
-				}
-		}
-	}
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-public void test2500_addInitializationsFrom_for_definites() {
-	// when an added initialization is a def. something, it should
-	// affect the left hand term as the markAsDefinite* method would
-	// do
-	int failures = 0;
-	for (int i = 0; i < State.states.length; i++) {
-		if (State.states[i].symbolic) {
-			UnconditionalFlowInfoTestHarness source1, source2, result1, result2;
-			source1 = UnconditionalFlowInfoTestHarness.
-				testUnconditionalFlowInfo(State.states[i]);
-			for (int j = 0; j < State.states.length; j++) {
-				if (State.states[j].symbolic) {
-					source2 = UnconditionalFlowInfoTestHarness.
-						testUnconditionalFlowInfo(State.states[j]);
-					result1 = (UnconditionalFlowInfoTestHarness) source1.copy();
-					result2 = (UnconditionalFlowInfoTestHarness) source1.copy();
-					if (source2.isDefinitelyNonNull(TestLocalVariableBinding.local0)) {
-						if (! source2.isProtectedNonNull(TestLocalVariableBinding.local0)) {
-							result1.markAsDefinitelyNonNull(TestLocalVariableBinding.local0);
-						} else {
-							continue;
-						}
-					}
-					else if (source2.isDefinitelyNull(TestLocalVariableBinding.local0)) {
-						if (! source2.isProtectedNull(TestLocalVariableBinding.local0)) {
-							result1.markAsDefinitelyNull(TestLocalVariableBinding.local0);
-						} else {
-							continue;
-						}
-					}
-					else if (source2.isDefinitelyUnknown(TestLocalVariableBinding.local0)) {
-						result1.markAsDefinitelyUnknown(TestLocalVariableBinding.local0);
-					}
-					else if (source2.nullBit1 != 0) {
-						if (failures == 0) {
-							System.out.println("addInitializationsFrom_for_definites failures: "); //$NON-NLS-1$
-						}
-						failures++;
-						System.out.println("\t\t" + State.states[j].name +
-							" should answer true to at least one isDefinite* query");
-						// PREMATURE move to specific queries test case
-					}
-					else {
-						continue;
-					}
-					result2.addInitializationsFrom(source2);
-					if (!result1.testEquals(result2)) {
-						if (failures == 0) {
-							System.out.println("addInitializationsFrom_for_definites failures: "); //$NON-NLS-1$
-						}
-						failures++;
-						System.out.println("\t\t" + State.states[i].name + 
-							" + " + State.states[j].name +
-							" => " + result2.asState().name + 
-							" instead of: " + result1.asState().name);
-					}
-				}
-			}
-		}
-	}
-	assertTrue("nb of failures: " + failures, failures == 0);
-}
-
-// Use for coverage tests only. Needs specific instrumentation of code,
-// that is controled by UnconditionalFlowInfo#coverageTestFlag.
-// Note: coverage tests tend to fill the console with messages, and the
-//       instrumented code is slower, so never release code with active
-//       coverage tests.
-private static int coveragePointsNb = 39;
-
-// PREMATURE reactivate coverage tests
-// Coverage by state transition tables methods.
-public void test2998_coverage() {
-	if (UnconditionalFlowInfo.coverageTestFlag) {
-		// sanity check: need to be sure that the tests execute properly when not
-		// trying to check coverage
-		UnconditionalFlowInfo.coverageTestId = 0;
-		test0053_array();
-		test0070_type_reference();
-		test2050_markAsComparedEqualToNonNull();
-		test2051_markAsComparedEqualToNull();
-		test2055_markAsDefinitelyNonNull();
-		test2056_markAsDefinitelyNull();
-		test2057_markAsDefinitelyUnknown();
-		test2060_addInitializationsFrom();
-		test2061_addPotentialInitializationsFrom();
-		test2062_mergedWith();
-		// coverage check
-		int failuresNb = 0;
-		for (int i = 1; i <= coveragePointsNb; i++) {
-			if (i == 11 || i == 12 || i == 14) {
-				continue;
-				// these can only be reached via a direct call to addPotentialNullInfoFrom,
-				// which is not implemented in low level tests - all those go through
-				// addPotentialInitsFrom
-			}
-			try {
-				UnconditionalFlowInfo.coverageTestId = i;
-				test0053_array();
-				test0070_type_reference();
-				test2050_markAsComparedEqualToNonNull();
-				test2051_markAsComparedEqualToNull();
-				test2055_markAsDefinitelyNonNull();
-				test2056_markAsDefinitelyNull();
-				test2057_markAsDefinitelyUnknown();
-				test2060_addInitializationsFrom();
-				test2061_addPotentialInitializationsFrom();
-				test2062_mergedWith();
-			}
-			catch (AssertionFailedError e) {
-				continue;
-			}
-			catch (AssertionFailedException e) {
-				continue;
-			}
-			failuresNb++;
-			System.out.println("Missing coverage point: " + i);
-		}
-		UnconditionalFlowInfo.coverageTestId = 0; // reset for other tests
-		assertEquals(failuresNb + " missing coverage point(s)", failuresNb, 0);
-	}
-}
-
-// Coverage by code samples.
-public void test2999_coverage() {
-	if (UnconditionalFlowInfo.coverageTestFlag) {
-		// sanity check: need to be sure that the tests execute properly when not
-		// trying to check coverage
-		UnconditionalFlowInfo.coverageTestId = 0;
-		test0001_simple_local();
-		test0053_array();
-		test0070_type_reference();
-		test0327_if_else();
-		test0401_while();
-		test0420_while();
-		test0509_try_finally_embedded();
-		test2000_flow_info();
-		test2004_flow_info();
-		test2008_flow_info();
-		test2011_flow_info();
-		test2013_flow_info();
-		test2018_flow_info();
-		test2019_flow_info();
-		test2020_flow_info();
-		// coverage check
-		int failuresNb = 0;
-		for (int i = 1; i <= coveragePointsNb; i++) {
-			if (i < 3
-				|| 4 < i && i < 11
-				|| 11 < i && i < 16
-				|| 16 < i && i < 20
-				|| i == 21
-				|| 23 < i && i < 27
-				|| 29 < i && i < 33
-				|| 36 < i) { // TODO (maxime) complete coverage tests
-				continue;
-			}
-			try {
-				UnconditionalFlowInfo.coverageTestId = i;
-				test0001_simple_local();
-				test0053_array();
-				test0070_type_reference();
-				test0327_if_else();
-				test0401_while();
-				test0420_while();
-				test0509_try_finally_embedded();
-				test2000_flow_info();
-				test2004_flow_info();
-				test2008_flow_info();
-				test2011_flow_info();
-				test2013_flow_info();
-				test2018_flow_info();
-				test2019_flow_info();
-				test2020_flow_info();
-			}
-			catch (AssertionFailedError e) {
-				continue;
-			}
-			catch (AssertionFailedException e) {
-				continue;
-			}
-			failuresNb++;
-			System.out.println("Missing coverage point: " + i);
-		}
-		UnconditionalFlowInfo.coverageTestId = 0; // reset for other tests
-		assertEquals(failuresNb + " missing coverage point(s)", failuresNb, 0);
-	}
-}
-
-// only works for info coded on bit 0 - least significant
-String testCodedValueOf(long[] data) {
-	int length;
-	StringBuffer result = new StringBuffer(length = data.length);
-	for (int i = 0; i < length; i++) {
-		result.append(data[i] == 0 ? '0' : '1');
-	}
-	return result.toString();
-}
-
-static String testStringValueOf(long[] data) {
-	int length;
-	StringBuffer result = new StringBuffer((length = data.length) * 2 + 1);
-	result.append('{');
-	for (int i = 0; i < length; i++) {
-		if (i > 0) {
-			result.append(',');
-		}
-		result.append(data[i]);
-	}
-	result.append('}');
-	return result.toString();
-}
-}
-
-/**
- * A specific extension of LocalVariableBinding suitable for flow info 
- * manipulation at an implementation level.
- */
-class TestLocalVariableBinding extends LocalVariableBinding {
-	static class TestTypeBinding extends TypeBinding {
-		public TestTypeBinding() {
-			tagBits = 0L;
-		}
-		public char[] constantPoolName() {
-			return null;
-		}
-		public PackageBinding getPackage() {
-			return null;
-		}
-		public boolean isCompatibleWith(TypeBinding right) {
-			return false;
-		}
-		public char[] qualifiedSourceName() {
-			return null;
-		}
-		public char[] sourceName() {
-			return null;
-		}
-		public char[] readableName() {
-			return null;
-		}
-	}
-	final static TypeBinding testTypeBinding = new TestTypeBinding();
-	final static char [] testName = {'t', 'e', 's', 't'};
-	TestLocalVariableBinding(int id) {
-		super(testName, testTypeBinding, 0, false);
-		this.id = id;
-	}
-	public Constant constant() {
-		return Constant.NotAConstant;
-	}
-	static final TestLocalVariableBinding 
-		local0 = new TestLocalVariableBinding(0),
-		local64 = new TestLocalVariableBinding(64),
-		local128 = new TestLocalVariableBinding(128);	
-}
-
-/**
- * A class meant to augment 
- * @link{org.eclipse.wst.jsdt.internal.compiler.flow.UnconditionalFlowInfo} with
- * capabilities in the test domain. It especially provides factories to build
- * fake flow info instances for use in state transitions validation.
- */
-/*
- * Moreover, this class defines the implementation of key operations for the
- * benefit of itself and NullInfoRegistryTestHarness. Given the fact that the
- * latter could not extend UnconditionalFlowInfoTestHarness and
- * NullInfoRegistry, the code is factorized into static methods.
- */
-class UnconditionalFlowInfoTestHarness extends UnconditionalFlowInfo {
-	int testPosition;
-	// Interface
-/**
- * Return the state represented by this.
- * @return the state represented by this
- */
-NullReferenceImplTests.State asState() {
-	return asState(this, 0);
-}
-
-/**
- * Return the state represented by this for a variable encoded at a given position.
- * @param position - int the position of the considered variable
- * @return the state represented by this for a variable encoded at a given position
- */
-NullReferenceImplTests.State asState(int position) {
-	return asState(this, position);
-}
-
-public FlowInfo copy() {
-	UnconditionalFlowInfoTestHarness copy = 
-		new UnconditionalFlowInfoTestHarness();
-	copy.testPosition = this.testPosition;
-	copy(this, copy);
-	return copy;
-}
-
-public void markAsDefinitelyNonNull(LocalVariableBinding local) {
-	grow( getLocalID(local));
-	super.markAsDefinitelyNonNull(local);
-}
-
-public void markAsDefinitelyNull(LocalVariableBinding local) {
-	grow( getLocalID(local));
-	super.markAsDefinitelyNull(local);
-}
-
-public void markAsDefinitelyUnknown(LocalVariableBinding local) {
-	grow( getLocalID(local));
-	super.markAsDefinitelyUnknown(local);
-}
-
-/**
- * Return a fake unconditional flow info which bit fields represent the given
- * null bits for a local variable of id 0 within a class that would have no
- * field.
- * @param nullBits the bits that must be set, given in the same order as the
- *        nullAssignment* fields in UnconditionalFlowInfo definition; use 0
- *        for a bit that is not set, 1 else
- * @return a fake unconditional flow info which bit fields represent the
- *         null bits given in parameter
- */
-public static UnconditionalFlowInfoTestHarness testUnconditionalFlowInfo(
-		long [] nullBits) {
-	return testUnconditionalFlowInfo(nullBits, 0);
-}
-
-/**
- * Return a fake unconditional flow info which bit fields represent the given
- * null bits for a local variable of id position within a class that would have 
- * no field.
- * @param nullBits the bits that must be set, given in the same order as the
- *        nullAssignment* fields in UnconditionalFlowInfo definition; use 0
- *        for a bit that is not set, 1 else
- * @param position the position of the variable within the bit fields; use
- *        various values to test different parts of the bit fields, within
- *        or beyond BitCacheSize
- * @return a fake unconditional flow info which bit fields represent the
- *         null bits given in parameter
- */
-public static UnconditionalFlowInfoTestHarness testUnconditionalFlowInfo(
-		long [] nullBits, int position) {
- 	UnconditionalFlowInfoTestHarness result = 
- 		new UnconditionalFlowInfoTestHarness();
-	result.testPosition = position;
-	init(result, nullBits, position);
-	return result;
-}
-
-/**
- * Return a fake unconditional flow info which bit fields represent the given
- * state for a local variable of id 0 within a class that would have 
- * no field.
- * @param state - State the desired state for the variable
- * @return a fake unconditional flow info which bit fields represent the
- *         state given in parameter
- */
-public static UnconditionalFlowInfoTestHarness testUnconditionalFlowInfo(NullReferenceImplTests.State state) {
-	return testUnconditionalFlowInfo(state, 0);
-}
-
-/**
- * Return a fake unconditional flow info which bit fields represent the given
- * state for a local variable of id position within a class that would have 
- * no field.
- * @param state - State the desired state for the variable
- * @param position the position of the variable within the bit fields; use
- *        various values to test different parts of the bit fields, within
- *        or beyond BitCacheSize
- * @return a fake unconditional flow info which bit fields represent the
- *         state given in parameter
- */
-public static UnconditionalFlowInfoTestHarness testUnconditionalFlowInfo(
-		NullReferenceImplTests.State state, int position) {
- 	UnconditionalFlowInfoTestHarness result = 
- 		new UnconditionalFlowInfoTestHarness();
- 	long[] nullBits = state.asLongArray();
-	result.testPosition = position;
-	init(result, nullBits, position);
-	return result;
-}
-
-/**
- * Return true iff this flow info can be considered as equal to the one passed
- * in parameter.
- * @param other the flow info to compare to
- * @return true iff this flow info compares equal to other
- */
-public boolean testEquals(UnconditionalFlowInfo other) {
-	return testEquals(this, other);
-}
-
-/**
- * Return true iff this flow info can be considered as equal to the one passed
- * in parameter in respect with a single local variable which id would be
- * position in a class with no field.
- * @param other the flow info to compare to
- * @param position the position of the local to consider
- * @return true iff this flow info compares equal to other for a given local
- */
-public boolean testEquals(UnconditionalFlowInfo other, int position) {
-	return testEquals(this, other, position);
-}
-
-/**
- * Return a string suitable for use as a representation of this flow info
- * within test series.
- * @return a string suitable for use as a representation of this flow info
- */
-public String testString() {
-	if (this == DEAD_END) {
-		return "FlowInfo.DEAD_END"; //$NON-NLS-1$
-	}
-	return testString(this, this.testPosition);
-}
-
-/**
- * Return a string suitable for use as a representation of this flow info
- * within test series.
- * @param position a position to consider instead of this flow info default
- *                 test position
- * @return a string suitable for use as a representation of this flow info
- */
-public String testString(int position) {
-	return testString(this, position);
-}
-	
-	// Factorized implementation
-static NullReferenceImplTests.State asState(UnconditionalFlowInfo zis, int position) {
-	if ((zis.tagBits & NULL_FLAG_MASK) == 0) {
-		return NullReferenceImplTests.State.start;
-	}
-	if (position < BitCacheSize) {
-		return NullReferenceImplTests.State.fromLongValues(
-				(zis.nullBit1 >> position) & 1,
-				(zis.nullBit2 >> position) & 1,
-				(zis.nullBit3 >> position) & 1,
-				(zis.nullBit4 >> position) & 1,
-				0,
-				0);
-	} 
- 	else {
-		int vectorIndex = (position / BitCacheSize) - 1;
-        position %= BitCacheSize;
-        if (vectorIndex >= zis.extra[2].length) {
-        	return NullReferenceImplTests.State.start;
-        }
-		return NullReferenceImplTests.State.fromLongValues(
-				(zis.extra[2][vectorIndex] >> position) & 1,
-				(zis.extra[3][vectorIndex] >> position) & 1,
-				(zis.extra[4][vectorIndex] >> position) & 1,
-				(zis.extra[5][vectorIndex] >> position) & 1,
-				0 //(zis.extra[6][vectorIndex] >> position) & 1,
-				, 0 //(zis.extra[7][vectorIndex] >> position) & 1
-				);
-	}
-}
-
-static void copy(UnconditionalFlowInfo source, UnconditionalFlowInfo target) {
-	target.definiteInits = source.definiteInits;
-	target.potentialInits = source.potentialInits;
-	boolean hasNullInfo = (source.tagBits & NULL_FLAG_MASK) != 0;
-	if (hasNullInfo) { 
-		target.nullBit1 = source.nullBit1;
-		target.nullBit2 = source.nullBit2;
-		target.nullBit3 = source.nullBit3;
-		target.nullBit4 = source.nullBit4;
-//		target.nullBit5 = source.nullBit5;
-//		target.nullBit6 = source.nullBit6;
-	}
-	target.tagBits = source.tagBits;
-	target.maxFieldCount = source.maxFieldCount;
-	if (source.extra != null) {
-		int length;
-        target.extra = new long[extraLength][];
-		System.arraycopy(source.extra[0], 0, 
-			(target.extra[0] = new long[length = source.extra[0].length]), 0, length);
-		System.arraycopy(source.extra[1], 0, 
-			(target.extra[1] = new long[length]), 0, length);
-		if (hasNullInfo) {
-            for (int j = 0; j < extraLength; j++) {
-			    System.arraycopy(source.extra[j], 0, 
-				    (target.extra[j] = new long[length]), 0, length);
-            }
-		}
-		else {
-            for (int j = 0; j < extraLength; j++) {
-			    target.extra[j] = new long[length];
-            }
-		}
-	}
-}
-
-public void grow(int position) {
-	int vectorIndex = ((position) / BitCacheSize) - 1;
-	int length = vectorIndex + 1, oldLength;
-	if (this.extra == null) {
-		this.extra = new long[extraLength][];
-		for (int j = 0; j < extraLength; j++) {
-			this.extra[j] = new long[length];
-		}
-	} else if (length > (oldLength = this.extra[2].length)) {
-		for (int j = 0; j < extraLength; j++) {
-			System.arraycopy(this.extra[j], 0, 
-				this.extra[j] = new long[length], 0, oldLength);
-		}
-	}
-}
-
-static void init(UnconditionalFlowInfo zis, long [] nullBits, int position) {
-	if (position < BitCacheSize) {
-		zis.nullBit1 = nullBits[0] << position;
-		zis.nullBit2 = nullBits[1] << position;
-		zis.nullBit3 = nullBits[2] << position;
-		zis.nullBit4 = nullBits[3] << position;
-//		zis.nullBit5 = nullBits[4] << position;
-//		zis.nullBit6 = nullBits[5] << position;
-	}
- 	else {
-		int vectorIndex = (position / BitCacheSize) - 1,
-			length = vectorIndex + 1;
-        position %= BitCacheSize;
-        zis.extra = new long[extraLength][];
-		zis.extra[0] = new long[length];
-		zis.extra[1] = new long[length];
-        for (int j = 2; j < extraLength; j++) {
-		    zis.extra[j] = new long[length];
-		    zis.extra[j][vectorIndex] = nullBits[j - 2] << position;
-        }
-	}
-	if (nullBits[0] != 0 || nullBits[1] != 0
-	        || nullBits[2] != 0 || nullBits[3] != 0
-	        || nullBits[4] != 0 || nullBits[5] != 0) { 
-		// cascade better than nullBits[0] | nullBits[1] | nullBits[2] | nullBits[3]
-		// by 10%+
-		// TODO (maxime) run stats to determine which is the better order
-		zis.tagBits |= NULL_FLAG_MASK;
-	}
-	zis.maxFieldCount = 0;
-}
-
-static boolean testEquals(UnconditionalFlowInfo zis, UnconditionalFlowInfo other) {
-	if (zis.tagBits != other.tagBits) {
-		return false;
-	}
-	if (zis.nullBit1 != other.nullBit1 
-			|| zis.nullBit2 != other.nullBit2 
-			|| zis.nullBit3 != other.nullBit3 
-			|| zis.nullBit4 != other.nullBit4
-			/* || zis.nullBit5 != other.nullBit5 
-			|| zis.nullBit6 != other.nullBit6 */) {
-		return false;
-	}
-	int left = zis.extra == null ? 0 : zis.extra[2].length,
-			right = other.extra == null ? 0 : other.extra[2].length,
-			both = 0, i;
-	if (left > right) {
-		both = right;
-	}
-	else {
-		both = left;
-	}
-	for (i = 0; i < both ; i++) {
-		for (int j = 2; j < extraLength; j++) { 
-			if (zis.extra[j][i] != 
-					other.extra[j][i]) {
-				return false;
-			}
-		}
-	}
-	for (; i < left; i++) {
-		for (int j = 2; j < extraLength; j++) { 
-			if (zis.extra[j][i] != 0) {
-				return false;
-			}
-		}
-	}
-	for (; i < right; i++) {
-		for (int j = 2; j < extraLength; j++) { 
-			if (other.extra[j][i] != 0) {
-				return false;
-			}
-		}
-	}
-	return true;
-}
-
-static boolean testEquals(UnconditionalFlowInfo zis, UnconditionalFlowInfo other,
-		int position) {
-	int vectorIndex = position / BitCacheSize - 1;
-	if ((zis.tagBits & other.tagBits & NULL_FLAG_MASK) == 0) {
-		return true;
-	}
-	long mask;
-	if (vectorIndex < 0) {
-		return ((zis.nullBit1 & (mask = (1L << position))) ^
-					(other.nullBit1 & mask)) == 0 &&
-				((zis.nullBit2 & mask) ^
-					(other.nullBit2 & mask)) == 0 &&
-				((zis.nullBit3 & mask) ^
-					(other.nullBit3 & mask)) == 0 &&
-				((zis.nullBit4 & mask) ^
-					(other.nullBit4 & mask)) == 0 /* &&
-				((zis.nullBit5 & mask) ^
-					(other.nullBit5 & mask)) == 0 &&
-				((zis.nullBit6 & mask) ^
-					(other.nullBit6 & mask)) == 0 */;
-	}
-	else {
-		int left = zis.extra == null ?
-				0 :
-				zis.extra[0].length;
-		int right = other.extra == null ?
-				0 :
-				other.extra[0].length;
-		int both = left < right ? left : right;
-		if (vectorIndex < both) {
-			mask = (1L << (position % BitCacheSize));
-			for (int j = 2; j < extraLength; j++) {
-				if (((zis.extra[j][vectorIndex] & mask) 
-						^ (other.extra[j][vectorIndex] & mask)) != 0) {
-					return false;
-				}
-			}
-			return true;
-		}
-		if (vectorIndex < left) {
-			return ((zis.extra[2][vectorIndex] |
-					zis.extra[3][vectorIndex] |
-					zis.extra[4][vectorIndex] |
-					zis.extra[5][vectorIndex] |
-					zis.extra[6][vectorIndex] |
-					zis.extra[7][vectorIndex]) &
-					(1L << (position % BitCacheSize))) == 0;
-		}
-		return ((other.extra[2][vectorIndex] |
-				other.extra[3][vectorIndex] |
-				other.extra[4][vectorIndex] |
-				other.extra[5][vectorIndex] |
-				other.extra[6][vectorIndex] |
-				other.extra[7][vectorIndex]) &
-				(1L << (position % BitCacheSize))) == 0;
-	}
-}
-
-static String testString(UnconditionalFlowInfo zis, int position) {
-	if (zis == DEAD_END) {
-		return "FlowInfo.DEAD_END"; //$NON-NLS-1$
-	}
-	if (position < BitCacheSize) {
-		return "{" + (zis.nullBit1 >> position) //$NON-NLS-1$
-					+ "," + (zis.nullBit2 >> position) //$NON-NLS-1$
-					+ "," + (zis.nullBit3 >> position) //$NON-NLS-1$
-					+ "," + (zis.nullBit4 >> position) //$NON-NLS-1$
-//					+ "," + (zis.nullBit5 >> position) //$NON-NLS-1$
-//					+ "," + (zis.nullBit6 >> position) //$NON-NLS-1$
-					+ "}"; //$NON-NLS-1$
-	}
-	else {
-		int vectorIndex = position / BitCacheSize - 1,
-			shift = position % BitCacheSize;
-			return "{" + (zis.extra[2][vectorIndex] //$NON-NLS-1$
-			               >> shift) 
-						+ "," + (zis.extra[3][vectorIndex] //$NON-NLS-1$
-						   >> shift)
-						+ "," + (zis.extra[4][vectorIndex] //$NON-NLS-1$
-						   >> shift)
-						+ "," + (zis.extra[5][vectorIndex] //$NON-NLS-1$
-						   >> shift)
-//						+ "," + (zis.extra[6][vectorIndex] //$NON-NLS-1$
-//						   >> shift)
-//						+ "," + (zis.extra[7][vectorIndex] //$NON-NLS-1$
-//						   >> shift)
-						+ "}"; //$NON-NLS-1$
-	}
-}
-}
-/**
- * A class meant to augment 
- * @link{org.eclipse.wst.jsdt.internal.compiler.flow.NullInfoRegistry} with
- * capabilities in the test domain. It especially provides factories to build
- * fake flow info instances for use in state transitions validation.
- */
-/*
- * The reason why UnconditionalFlowInfoTestHarness and this class were 
- * separated is that NullInfoRegistry redefines part of the markAs* methods,
- * in effect preventing a harness extending NullInfoRegistry to access 
- * UnconditionalFlowInfo implementations of the said methods.
- */
-class NullInfoRegistryTestHarness extends NullInfoRegistry {
-	private int testPosition;
-
-private NullInfoRegistryTestHarness() {
-	super(FlowInfo.DEAD_END);
-}
-	
-	// Interface
-/**
- * Return the state represented by this.
- * @return the state represented by this
- */
-NullReferenceImplTests.State asState() {
-	return UnconditionalFlowInfoTestHarness.asState(this, 0);
-}
-
-/**
- * Return the state represented by this for a variable encoded at a given position.
- * @param position - int the position of the considered variable
- * @return the state represented by this for a variable encoded at a given position
- */
-NullReferenceImplTests.State asState(int position) {
-	return UnconditionalFlowInfoTestHarness.asState(this, position);
-}
-
-public FlowInfo copy() {
-	NullInfoRegistryTestHarness copy = 
-		new NullInfoRegistryTestHarness();
-	copy.testPosition = this.testPosition;
-	UnconditionalFlowInfoTestHarness.copy(this, copy);
-	return copy;
-}
-
-/**
- * Return a fake null info registry derived from an unconditional flow
- * info.
- * @param upstream - UnconditionalFlowInfoTestHarness the upstream flow info
- * @return a fake null info registry derived from upstream
- */
-public static NullInfoRegistryTestHarness testNullInfoRegistry(
-		UnconditionalFlowInfoTestHarness upstream) {
-	NullInfoRegistry nullInfoRegistry = new NullInfoRegistry(upstream);
- 	NullInfoRegistryTestHarness result = 
- 		new NullInfoRegistryTestHarness();
-	result.testPosition = upstream.testPosition;
-	if (result.testPosition < BitCacheSize) {
-		result.nullBit1 = nullInfoRegistry.nullBit1;
-		result.nullBit2 = nullInfoRegistry.nullBit2;
-		result.nullBit3 = nullInfoRegistry.nullBit3;
-		result.nullBit4 = nullInfoRegistry.nullBit4;
-//		result.nullBit5 = nullInfoRegistry.nullBit5;
-//		result.nullBit6 = nullInfoRegistry.nullBit6;
-	} 
- 	else if ((nullInfoRegistry.tagBits & NULL_FLAG_MASK) != 0){
-		int vectorIndex = (result.testPosition / BitCacheSize) - 1,
-			length = vectorIndex + 1;
-        result.extra = new long[extraLength][];
-		result.extra[0] = new long[length];
-		result.extra[1] = new long[length];
-        for (int j = 2; j < extraLength; j++) {
-		    result.extra[j] = new long[length];
-		    result.extra[j][vectorIndex] = nullInfoRegistry.extra[j][vectorIndex];
-        }
-	}
-	if ((nullInfoRegistry.tagBits & NULL_FLAG_MASK) != 0) { 
-		result.tagBits |= NULL_FLAG_MASK;
-	}
-	result.maxFieldCount = 0;
-	return result;
-}
-
-/**
- * Return true iff this flow info can be considered as equal to the one passed
- * in parameter.
- * @param other the flow info to compare to
- * @return true iff this flow info compares equal to other
- */
-public boolean testEquals(UnconditionalFlowInfo other) {
-	return UnconditionalFlowInfoTestHarness.testEquals(this, other);
-}
-
-/**
- * Return true iff this flow info can be considered as equal to the one passed
- * in parameter in respect with a single local variable which id would be
- * position in a class with no field.
- * @param other the flow info to compare to
- * @param position the position of the local to consider
- * @return true iff this flow info compares equal to other for a given local
- */
-public boolean testEquals(UnconditionalFlowInfo other, int position) {
-	return UnconditionalFlowInfoTestHarness.testEquals(this, other, position);
-}
-
-/**
- * Return a string suitable for use as a representation of this flow info
- * within test series.
- * @return a string suitable for use as a representation of this flow info
- */
-public String testString() {
-	if (this == DEAD_END) {
-		return "FlowInfo.DEAD_END"; //$NON-NLS-1$
-	}
-	return UnconditionalFlowInfoTestHarness.testString(this, this.testPosition);
-}
-
-/**
- * Return a string suitable for use as a representation of this flow info
- * within test series.
- * @param position a position to consider instead of this flow info default
- *                 test position
- * @return a string suitable for use as a representation of this flow info
- */
-public String testString(int position) {
-	return UnconditionalFlowInfoTestHarness.testString(this, position);
-}
-}
-
-interface CodeAnalysis {
-	public static final String
-		definitionStartMarker = "DEFINITION START",
-		definitionEndMarker = "DEFINITION END",
-		initializerStartMarker = "INITIALIZER START",
-		initializerEndMarker = "INITIALIZER END";
-}
-class TransitiveClosureHolder {
-static class Element {
-	NullReferenceImplTests.State value;
-	boolean alreadyKnown;
-	Element(NullReferenceImplTests.State value) {
-		if (value == null) {
-			throw new IllegalArgumentException("not a valid element");
-		}
-		this.value = value;
-	}
-}
-Map elements = new TreeMap();
-public TransitiveClosureHolder() {
-	Element start = new Element(NullReferenceImplTests.State.start);
-	this.elements.put(start.value, start);
-}
-void add(NullReferenceImplTests.State value) {
-	if (value == null) {
-		throw new IllegalArgumentException("not a valid state");
-	}
-	if (! this.elements.containsKey(value)) {
-		this.elements.put(value, new Element(value));
-	}
-}
-void add(NullReferenceImplTests.State[] values) {
-	if (values == null) {
-		throw new IllegalArgumentException("not a valid states set");
-	}
-	for (int i = 0, length = values.length; i < length; i++) {
-		add(values[i]);
-	}
-}
-NullReferenceImplTests.State[] asArray() {
-	int length;
-	NullReferenceImplTests.State[] result = new NullReferenceImplTests.State[length = this.elements.size()];
-	Iterator elementsIterator = this.elements.keySet().iterator();
-	for (int j = 0; j < length; j++) {
-		result[j] = (NullReferenceImplTests.State) elementsIterator.next();
-	}
-	return result;
-}
-NullReferenceImplTests.State[] notAlreadyKnowns() {
-	List resultAccumulator = new ArrayList(this.elements.size());
-	Iterator i = this.elements.values().iterator();
-	Element current;
-	while (i.hasNext()) {
-		if (! (current = (Element) i.next()).alreadyKnown) {
-			resultAccumulator.add(current.value);
-		}
-	}
-	int length;
-	NullReferenceImplTests.State[] result = new NullReferenceImplTests.State[length = resultAccumulator.size()];
-	for (int j = 0; j < length; j++) {
-		result[j] = (NullReferenceImplTests.State) resultAccumulator.get(j);
-	}
-	return result;
-}
-void markAllAsAlreadyKnown() {
-	Iterator i = this.elements.values().iterator();
-	while (i.hasNext()) {
-		((Element) i.next()).alreadyKnown = true;
-	}
-}
-public String toString() {
-	StringBuffer output = new StringBuffer();
-	output.append("Transitive closure:\n");
-	SortedMap sorted = new TreeMap(this.elements);
-	Iterator i = sorted.keySet().iterator();
-	while (i.hasNext()) {
-		output.append(i.next().toString());
-		output.append('\n');
-	}
-	return output.toString();
-}
-}
-
-// PREMATURE segregate pure tooling into a separate project, keep tests only here
-/**
- * The Generator class is meant to generate the tabular data needed by the
- * flow information implementation level tests. While the tests should ensure
- * non regression by leveraging their initialization tables only, any change 
- * into the flow information logic or encoding is due to yield considerable
- * changes into the literal values sets of the initializers themselves. 
- * Tooling the production of those literals buys us flexibility.
- * {@link #printHelp printHelp} for details.
- */
-class Generator {
-static NullReferenceImplTests.State[] computeTransitiveClosure() {
-	TransitiveClosureHolder transitiveClosure = new TransitiveClosureHolder();
-	NullReferenceImplTests.State[] unknowns;
-	unknowns = transitiveClosure.notAlreadyKnowns();
-	while (unknowns.length != 0) {
-		transitiveClosure.markAllAsAlreadyKnown();
-		for (int i = 0, length = NullReferenceImplTransformations.transformations.length;	i < length; i ++) {
-			transitiveClosure.add(
-				NullReferenceImplTransformations.transformations[i].
-					computeOutputs(transitiveClosure.asArray()));
-		}
-		unknowns = transitiveClosure.notAlreadyKnowns();
-	} 
-	return transitiveClosure.asArray();
-}
-public static void main(String[] args) {
-	if (args.length == 0) {
-		printHelp(false);
-		System.exit(1);
-	}
-	switch (args.length) {
-		case 1:
-			if (args[0].equals("--help")) {
-				printHelp(true);
-				System.exit(0);
-			}
-			else {
-				printHelp(false);
-				System.exit(1);
-			}
-		case 2:
-			if (args[0].equals("--printTruthTables")) {
-				File outputDir = new File(args[1]);
-				if (outputDir.isDirectory()) {
-					for (int i = 0, length = NullReferenceImplTransformations.transformations.length; i < length; i++) {
-						NullReferenceImplTransformations.transformations[i].printTruthTables(outputDir);
-					}
-				}
-				else {
-					// PREMATURE error handling
-				}
-				System.exit(0);
-			}
-			else {
-				printHelp(false);
-				System.exit(1);
-			}
-		case 3:
-			if (args[0].equals("--reinitializeFromComputedValues")) {
-				reinitializeFromComputedValues(args[1], args[2]);
-				System.out.println("Generator generated new file into " + args[2]);
-				System.exit(0);
-			}
-		case 5:
-			if (args[0].equals("--reinitializeFromComments")) {
-				reinitializeFromComments(args[1], args[2], args[3], args[4]);
-				System.out.println("Generator generated new files into " + args[2]
-					+ " and " + args[4]);
-				System.exit(0);
-			}
-		default:
-			printHelp(false);
-			System.exit(1);
-	}
-}
-	
-private static void reinitializeFromComments(
-		String statesSource, String statesTarget,
-		String transformationsSource, String transformationsTarget) {
-	if (statesSource.equals(transformationsSource) ||
-			statesTarget.equals(transformationsTarget)) {
-		throw new RuntimeException();
-	}
-	try {
-		BufferedReader in;
-		BufferedWriter out;
-		NullReferenceImplTests.State.reinitializeFromComment(
-			in = new BufferedReader(
-				new FileReader(statesSource)), 
-			out = new BufferedWriter(new FileWriter(statesTarget)));
-		in.close();
-		out.close();
-		File[] tempFiles = new File[2];
-		tempFiles[0] = File.createTempFile("generator", "java");
-		tempFiles[1] = File.createTempFile("generator", "java");
-		NullReferenceImplTransformations.transformations[0].reinitializeFromComments(
-			in = new BufferedReader(
-				new FileReader(transformationsSource)), 
-			out = new BufferedWriter(new FileWriter(tempFiles[0])));
-		in.close();
-		out.close();
-		int i, length;
-		for (i = 1, length = NullReferenceImplTransformations.transformations.length - 1; i < length; i++) {
-			NullReferenceImplTransformations.transformations[i].reinitializeFromComments(
-				in = new BufferedReader(
-					new FileReader(tempFiles[(i + 1) % 2])), 
-				out = new BufferedWriter(new FileWriter(tempFiles[i % 2])));
-			in.close();
-			out.close();
-		}
-		NullReferenceImplTransformations.transformations[i].reinitializeFromComments(
-			in = new BufferedReader(
-				new FileReader(tempFiles[(i + 1) % 2])), 
-			out = new BufferedWriter(new FileWriter(transformationsTarget)));
-		in.close();
-		out.close();
-	} catch (Throwable t) {
-		System.err.println("Generator error:");
-		t.printStackTrace(System.err);
-		System.exit(2);
-	}
-}
-
-private static void reinitializeFromComputedValues(String source, String target) {
-	for (int i = 0, length = NullReferenceImplTransformations.transformations.length;
-			i < length; i++) {
-		NullReferenceImplTransformations.transformations[i].hydrate();
-	}
-	NullReferenceImplTests.State[] transitiveClosure = computeTransitiveClosure();
-	try {
-		BufferedReader in;
-		BufferedWriter out;
-		File[] tempFiles = new File[2];
-		tempFiles[0] = File.createTempFile("generator", "java");
-		tempFiles[1] = File.createTempFile("generator", "java");
-		NullReferenceImplTransformations.transformations[0].reinitializeFromComputedValues(
-			in = new BufferedReader(
-				new FileReader(source)), 
-			out = new BufferedWriter(new FileWriter(tempFiles[0])),
-			transitiveClosure);
-		in.close();
-		out.close();
-		int i, length;
-		for (i = 1, length = NullReferenceImplTransformations.transformations.length - 1; i < length; i++) {
-			NullReferenceImplTransformations.transformations[i].reinitializeFromComputedValues(
-				in = new BufferedReader(
-					new FileReader(tempFiles[(i + 1) % 2])), 
-				out = new BufferedWriter(new FileWriter(tempFiles[i % 2])),
-				transitiveClosure);
-			in.close();
-			out.close();
-		}
-		NullReferenceImplTransformations.transformations[i].reinitializeFromComputedValues(
-			in = new BufferedReader(
-				new FileReader(tempFiles[(i + 1) % 2])), 
-			out = new BufferedWriter(new FileWriter(target)),
-			transitiveClosure);
-		in.close();
-		out.close();
-	} catch (Throwable t) {
-		System.err.println("Generator error:");
-		t.printStackTrace(System.err);
-		System.exit(2);
-	}
-}
-
-private static void printHelp(boolean longText) {
-	if (longText) {
-		System.out.println(
-			"Generator use cases\n" +
-			" - when a brand new logic is experimented for the transitions, the best\n" +
-			"   way to go is to write explicit (inefficient) transformation code within\n" +
-			"   UnconditionalFlowInfo, then generate the literal initializers from\n" +
-			"   there; use the command\n" +
-			"   --reinitializeFromComputedValues <source file> <target file>\n" +
-			"   to this effect; in case of inconsistencies or errors, messages are\n" +
-			"   printed to the error output stream and the result should be considered as non reliable;\n" +
-			" - when only a few changes are made to state names or a specific\n" +
-			"   transitions, it should be possible to get the test initializers fixed\n" +
-			"   before UnconditionalFlowInfo implements those changes; use the command\n" +
-	        "   --reinitializeFromComments <states source file> <states target file> <transformations source file> <transformations target file>\n" +
-	        "   to this effect;\n" +
-	        " - the same command can be used when, while the semantics of the system\n" +
-	        "   are unchanged, the encoding is modified; it should then produce the\n" +
-	        "   initializers according to the new encoding, as defined by the comment\n" +
-	        "   for State.states, and the transformations as defined by their\n" +
-	        "   respective comment;\n" +
-	        " - when a given encoding is retained, its optimization may leverage truth\n" +
-	        "   tables; use the --printTruthTables command to this effect.\n" +
-	        "   \n\n");
-		printHelp(false);
-	}
-	else {
-		System.out.println(
-	        "Usage:\n" +
-	        "Generator --help\n" +
-	        "  prints a more detailed help message\n" +
-	        "Generator --printTruthTables\n" +
-	        "  prints the truth tables of the transformations\n" +
-	        "Generator --reinitializeFromComments <source file> <target file>\n" +
-	        "  generates into target file a copy of source file into which\n" +
-	        "  transformations initializers have been reset from their definitions\n" +
-			"Generator --reinitializeFromComputedValues <source file> <target file>\n"  +
-	        "  generates into target file a copy of source file into which\n" +
-	        "  transformations definitions and initializers have been reset\n" +
-	        "  according to the behavior of the current UnconditionalFlowInfo\n"
-	        );
-	}
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceImplTransformations.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceImplTransformations.java
deleted file mode 100644
index 861b550..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceImplTransformations.java
+++ /dev/null
@@ -1,3177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.NullReferenceImplTests.State;
-import org.eclipse.wst.jsdt.internal.compiler.flow.UnconditionalFlowInfo;
-public class NullReferenceImplTransformations {
-	public static final Transformation
-		markAsComparedEqualToNonNull = 
-		// markAsComparedEqualToNonNull DEFINITION START
-		// start => prot. non null
-		// prot. non null => prot. non null
-		// prot. null => prot. non null
-		// pot. unknown => pot. nn & prot. nn 
-		// pot. non null => pot. nn & prot. nn
-		// pot. nn & prot. nn => pot. nn & prot. nn
-		// pot. nn & pot. un => pot. nn & prot. nn
-		// pot. null => prot. non null
-		// pot. n & prot. n => prot. non null
-		// pot. n & pot. un => pot. nn & prot. nn 
-		// pot. n & pot. nn => pot. nn & prot. nn
-		// def. unknown => def. non null 
-		// def. non null => def. non null
-		// def. null => prot. non null
-		// markAsComparedEqualToNonNull DEFINITION END
-			new TwoDimensionalTransformation("markAsComparedEqualToNonNull",
-					new byte[][] {
-					// markAsComparedEqualToNonNull INITIALIZER START
-					{0x00,0x3C},
-					{0x04,0x2C},
-					{0x08,0x2C},
-					{0x0C,0x2C},
-					{0x10,0x3C},
-					{0x14,0x2C},
-					{0x18,0x2C},
-					{0x24,0x28},
-					{0x28,0x28},
-					{0x2C,0x2C},
-					{0x30,0x3C},
-					{0x34,0x3C},
-					{0x38,0x3C},
-					{0x3C,0x3C},
-					// markAsComparedEqualToNonNull INITIALIZER END
-					}) {
-				UnconditionalFlowInfo output(UnconditionalFlowInfo input, 
-						TestLocalVariableBinding local) {
-					UnconditionalFlowInfo result = (UnconditionalFlowInfo)input.copy();
-					result.markAsComparedEqualToNonNull(local);
-					return result;
-				}
-			},
-		markAsComparedEqualToNull =
-		// markAsComparedEqualToNull DEFINITION START
-		// start => prot. null
-		// prot. non null => prot. null
-		// prot. null => prot. null
-		// pot. unknown => pot. n & prot. n
-		// pot. non null => prot. null
-		// pot. nn & prot. nn => prot. null
-		// pot. nn & pot. un => pot. n & prot. n
-		// pot. null => pot. n & prot. n
-		// pot. n & prot. n => pot. n & prot. n
-		// pot. n & pot. un => pot. n & prot. n
-		// pot. n & pot. nn => pot. n & prot. n
-		// def. unknown => def. null
-		// def. non null => prot. null
-		// def. null => def. null
-		// markAsComparedEqualToNull DEFINITION END
-			new TwoDimensionalTransformation("markAsComparedEqualToNull",
-				new byte[][] {
-				// markAsComparedEqualToNull INITIALIZER START
-				{0x00,0x38},
-				{0x04,0x34},
-				{0x08,0x38},
-				{0x0C,0x34},
-				{0x10,0x34},
-				{0x14,0x34},
-				{0x18,0x34},
-				{0x24,0x30},
-				{0x28,0x38},
-				{0x2C,0x38},
-				{0x30,0x30},
-				{0x34,0x34},
-				{0x38,0x38},
-				{0x3C,0x38},
-				// markAsComparedEqualToNull INITIALIZER END
-				}) {
-			UnconditionalFlowInfo output(UnconditionalFlowInfo input, 
-					TestLocalVariableBinding local) {
-				UnconditionalFlowInfo result = (UnconditionalFlowInfo)input.copy();
-				result.markAsComparedEqualToNull(local);
-				return result;
-			}
-		},
-		markAsDefinitelyNonNull = 
-		// markAsDefinitelyNonNull DEFINITION START
-		// start => def. non null
-		// prot. non null => def. non null
-		// prot. null => def. non null
-		// pot. unknown => def. non null
-		// pot. non null => def. non null
-		// pot. nn & prot. nn => def. non null
-		// pot. nn & pot. un => def. non null
-		// pot. null => def. non null
-		// pot. n & prot. n => def. non null
-		// pot. n & pot. un => def. non null
-		// pot. n & pot. nn => def. non null
-		// def. unknown => def. non null
-		// def. non null => def. non null
-		// def. null => def. non null
-		// markAsDefinitelyNonNull DEFINITION END
-			new TwoDimensionalTransformation("markAsDefinitelyNonNull",
-				new byte[][] {
-				// markAsDefinitelyNonNull INITIALIZER START
-				{0x00,0x28},
-				{0x04,0x28},
-				{0x08,0x28},
-				{0x0C,0x28},
-				{0x10,0x28},
-				{0x14,0x28},
-				{0x18,0x28},
-				{0x24,0x28},
-				{0x28,0x28},
-				{0x2C,0x28},
-				{0x30,0x28},
-				{0x34,0x28},
-				{0x38,0x28},
-				{0x3C,0x28},
-				// markAsDefinitelyNonNull INITIALIZER END
-				}) {
-			UnconditionalFlowInfo output(UnconditionalFlowInfo input, 
-					TestLocalVariableBinding local) {
-				UnconditionalFlowInfo result = (UnconditionalFlowInfo)input.copy();
-				result.markAsDefinitelyNonNull(local);
-				return result;
-			}
-		},
-		markAsDefinitelyNull =
-		// markAsDefinitelyNull DEFINITION START
-		// start => def. null
-		// prot. non null => def. null
-		// prot. null => def. null
-		// pot. unknown => def. null
-		// pot. non null => def. null
-		// pot. nn & prot. nn => def. null
-		// pot. nn & pot. un => def. null
-		// pot. null => def. null
-		// pot. n & prot. n => def. null
-		// pot. n & pot. un => def. null
-		// pot. n & pot. nn => def. null
-		// def. unknown => def. null
-		// def. non null => def. null
-		// def. null => def. null
-		// markAsDefinitelyNull DEFINITION END
-			// PREMATURE add 'catch rules'
-			new TwoDimensionalTransformation("markAsDefinitelyNull",
-				new byte[][] {
-				// markAsDefinitelyNull INITIALIZER START
-				{0x00,0x30},
-				{0x04,0x30},
-				{0x08,0x30},
-				{0x0C,0x30},
-				{0x10,0x30},
-				{0x14,0x30},
-				{0x18,0x30},
-				{0x24,0x30},
-				{0x28,0x30},
-				{0x2C,0x30},
-				{0x30,0x30},
-				{0x34,0x30},
-				{0x38,0x30},
-				{0x3C,0x30},
-				// markAsDefinitelyNull INITIALIZER END
-				}) {
-			UnconditionalFlowInfo output(UnconditionalFlowInfo input, 
-					TestLocalVariableBinding local) {
-				UnconditionalFlowInfo result = (UnconditionalFlowInfo)input.copy();
-				result.markAsDefinitelyNull(local);
-				return result;
-			}
-		},
-		markAsDefinitelyUnknown =
-		// markAsDefinitelyUnknown DEFINITION START
-		// start => def. unknown
-		// prot. non null => def. unknown
-		// prot. null => def. unknown
-		// pot. unknown => def. unknown
-		// pot. non null => def. unknown
-		// pot. nn & prot. nn => def. unknown
-		// pot. nn & pot. un => def. unknown
-		// pot. null => def. unknown
-		// pot. n & prot. n => def. unknown
-		// pot. n & pot. un => def. unknown
-		// pot. n & pot. nn => def. unknown
-		// def. unknown => def. unknown
-		// def. non null => def. unknown
-		// def. null => def. unknown
-		// markAsDefinitelyUnknown DEFINITION END
-			new TwoDimensionalTransformation("markAsDefinitelyUnknown",
-				new byte[][] {
-				// markAsDefinitelyUnknown INITIALIZER START
-				{0x00,0x24},
-				{0x04,0x24},
-				{0x08,0x24},
-				{0x0C,0x24},
-				{0x10,0x24},
-				{0x14,0x24},
-				{0x18,0x24},
-				{0x24,0x24},
-				{0x28,0x24},
-				{0x2C,0x24},
-				{0x30,0x24},
-				{0x34,0x24},
-				{0x38,0x24},
-				{0x3C,0x24},
-				// markAsDefinitelyUnknown INITIALIZER END
-				}) {
-			UnconditionalFlowInfo output(UnconditionalFlowInfo input, 
-					TestLocalVariableBinding local) {
-				UnconditionalFlowInfo result = (UnconditionalFlowInfo)input.copy();
-				result.markAsDefinitelyUnknown(local);
-				return result;
-			}
-		},
-		addInitializationsFrom =
-		// addInitializationsFrom DEFINITION START
-		// def. non null + def. non null => def. non null		
-		// def. non null + def. null => def. null		
-		// def. non null + def. unknown => def. unknown		
-		// def. non null + pot. n & pot. nn => pot. n & pot. nn		
-		// def. non null + pot. n & pot. un => pot. n & pot. nn		
-		// def. non null + pot. n & prot. n => pot. n & prot. n		
-		// def. non null + pot. nn & pot. un => def. unknown		
-		// def. non null + pot. nn & prot. nn => def. non null		
-		// def. non null + pot. non null => def. non null		
-		// def. non null + pot. null => pot. n & pot. nn		
-		// def. non null + pot. unknown => def. unknown // priv.	
-		// def. non null + prot. non null => def. non null		
-		// def. non null + prot. null => prot. null		
-		// def. non null + start => def. non null		
-		// def. null + def. non null => def. non null		
-		// def. null + def. null => def. null		
-		// def. null + def. unknown => def. unknown		
-		// def. null + pot. n & pot. nn => pot. n & pot. nn		
-		// def. null + pot. n & pot. un => pot. n & pot. un		
-		// def. null + pot. n & prot. n => def. null		
-		// def. null + pot. nn & pot. un => pot. n & pot. nn		
-		// def. null + pot. nn & prot. nn => pot. nn & prot. nn		
-		// def. null + pot. non null => pot. n & pot. nn		
-		// def. null + pot. null => def. null		
-		// def. null + pot. unknown => pot. n & pot. un // pot. null privileged over def. unknown		
-		// def. null + prot. non null => prot. non null		
-		// def. null + prot. null => def. null		
-		// def. null + start => def. null		
-		// def. unknown + def. non null => def. non null		
-		// def. unknown + def. null => def. null		
-		// def. unknown + def. unknown => def. unknown		
-		// def. unknown + pot. n & pot. nn => pot. n & pot. nn		
-		// def. unknown + pot. n & pot. un => pot. n & pot. un	// we loose the def here, but we need the pot. null
-		// def. unknown + pot. n & prot. n => def. null		
-		// def. unknown + pot. nn & pot. un => def. unknown // priv.
-		// def. unknown + pot. nn & prot. nn => def. non null		
-		// def. unknown + pot. non null => def. unknown	// privileging over pot. nn & pot. un
-		// def. unknown + pot. null => pot. n & pot. un
-		// def. unknown + pot. unknown => def. unknown		
-		// def. unknown + prot. non null => def. non null 		
-		// def. unknown + prot. null => def. null		
-		// def. unknown + start => def. unknown		
-		// pot. n & pot. nn + def. non null => def. non null		
-		// pot. n & pot. nn + def. null => def. null		
-		// pot. n & pot. nn + def. unknown => def. unknown		
-		// pot. n & pot. nn + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. n & pot. un => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. n & prot. n => pot. n & prot. n		
-		// pot. n & pot. nn + pot. nn & pot. un => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. n & pot. nn + pot. non null => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. null => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. unknown => pot. n & pot. nn		
-		// pot. n & pot. nn + prot. non null => pot. nn & prot. nn		
-		// pot. n & pot. nn + prot. null => pot. n & prot. n		
-		// pot. n & pot. nn + start => pot. n & pot. nn		
-		// pot. n & pot. un + def. non null => def. non null		
-		// pot. n & pot. un + def. null => def. null		
-		// pot. n & pot. un + def. unknown => def. unknown		
-		// pot. n & pot. un + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & pot. un + pot. n & pot. un => pot. n & pot. un		
-		// pot. n & pot. un + pot. n & prot. n => pot. n & prot. n		
-		// pot. n & pot. un + pot. nn & pot. un => pot. n & pot. nn		
-		// pot. n & pot. un + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. n & pot. un + pot. non null => pot. n & pot. nn		
-		// pot. n & pot. un + pot. null => pot. n & pot. un		
-		// pot. n & pot. un + pot. unknown => pot. n & pot. un		
-		// pot. n & pot. un + prot. non null => pot. nn & prot. nn 		
-		// pot. n & pot. un + prot. null => pot. n & prot. n		
-		// pot. n & pot. un + start => pot. n & pot. un		
-		// pot. n & prot. n + def. non null => def. non null		
-		// pot. n & prot. n + def. null => def. null		
-		// pot. n & prot. n + def. unknown => def. unknown		
-		// pot. n & prot. n + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & prot. n + pot. n & pot. un => pot. n & pot. un		
-		// pot. n & prot. n + pot. n & prot. n => pot. n & prot. n		
-		// pot. n & prot. n + pot. nn & pot. un => pot. n & pot. nn		
-		// pot. n & prot. n + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. n & prot. n + pot. non null => pot. n & pot. nn		
-		// pot. n & prot. n + pot. null => pot. n & prot. n		
-		// pot. n & prot. n + pot. unknown => pot. n & pot. un		
-		// pot. n & prot. n + prot. non null => prot. non null		
-		// pot. n & prot. n + prot. null => pot. n & prot. n		
-		// pot. n & prot. n + start => pot. n & prot. n		
-		// pot. nn & pot. un + def. non null => def. non null		
-		// pot. nn & pot. un + def. null => def. null		
-		// pot. nn & pot. un + def. unknown => def. unknown		
-		// pot. nn & pot. un + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. n & pot. un => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. n & prot. n => pot. n & prot. n		
-		// pot. nn & pot. un + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. nn & pot. un + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. nn & pot. un + pot. non null => pot. nn & pot. un		
-		// pot. nn & pot. un + pot. null => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. unknown => pot. nn & pot. un		
-		// pot. nn & pot. un + prot. non null => pot. nn & prot. nn
-		// pot. nn & pot. un + prot. null => pot. n & prot. n		
-		// pot. nn & pot. un + start => pot. nn & pot. un		
-		// pot. nn & prot. nn + def. non null => def. non null		
-		// pot. nn & prot. nn + def. null => def. null		
-		// pot. nn & prot. nn + def. unknown => def. unknown		
-		// pot. nn & prot. nn + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. n & pot. un => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. n & prot. n => pot. n & prot. n		
-		// pot. nn & prot. nn + pot. nn & pot. un => pot. nn & pot. un
-		// pot. nn & prot. nn + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. nn & prot. nn + pot. non null => pot. nn & prot. nn		
-		// pot. nn & prot. nn + pot. null => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. unknown => pot. nn & pot. un
-		// pot. nn & prot. nn + prot. non null => pot. nn & prot. nn		
-		// pot. nn & prot. nn + prot. null => prot. null		
-		// pot. nn & prot. nn + start => pot. nn & prot. nn		
-		// pot. non null + def. non null => def. non null		
-		// pot. non null + def. null => def. null		
-		// pot. non null + def. unknown => def. unknown		
-		// pot. non null + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. non null + pot. n & pot. un => pot. n & pot. nn		
-		// pot. non null + pot. n & prot. n => pot. n & prot. n		
-		// pot. non null + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. non null + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. non null + pot. non null => pot. non null		
-		// pot. non null + pot. null => pot. n & pot. nn		
-		// pot. non null + pot. unknown => pot. nn & pot. un		
-		// pot. non null + prot. non null => pot. nn & prot. nn		
-		// pot. non null + prot. null => prot. null		
-		// pot. non null + start => pot. non null
-		// pot. null + def. non null => def. non null		
-		// pot. null + def. null => def. null		
-		// pot. null + def. unknown => def. unknown		
-		// pot. null + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. null + pot. n & pot. un => pot. n & pot. un		
-		// pot. null + pot. n & prot. n => pot. n & prot. n		
-		// pot. null + pot. nn & pot. un => pot. n & pot. nn		
-		// pot. null + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. null + pot. non null => pot. n & pot. nn		
-		// pot. null + pot. null => pot. null		
-		// pot. null + pot. unknown => pot. n & pot. un		
-		// pot. null + prot. non null => prot. non null		
-		// pot. null + prot. null => pot. n & prot. n		
-		// pot. null + start => pot. null		
-		// pot. unknown + def. non null => def. non null
-		// pot. unknown + def. null => def. null
-		// pot. unknown + def. unknown => def. unknown
-		// pot. unknown + pot. n & pot. nn => pot. n & pot. nn
-		// pot. unknown + pot. n & pot. un => pot. n & pot. un
-		// pot. unknown + pot. n & prot. n => pot. n & prot. n
-		// pot. unknown + pot. nn & pot. un => pot. nn & pot. un
-		// pot. unknown + pot. nn & prot. nn => pot. nn & prot. nn
-		// pot. unknown + pot. non null => pot. nn & pot. un
-		// pot. unknown + pot. null => pot. n & pot. un
-		// pot. unknown + pot. unknown => pot. unknown
-		// pot. unknown + prot. non null => pot. nn & prot. nn
-		// pot. unknown + prot. null => pot. n & prot. n
-		// pot. unknown + start => pot. unknown
-		// prot. non null + def. non null => def. non null
-		// prot. non null + def. null => def. null
-		// prot. non null + def. unknown => def. unknown
-		// prot. non null + pot. n & pot. nn => pot. n & pot. nn
-		// prot. non null + pot. n & pot. un => pot. n & pot. un
-		// prot. non null + pot. n & prot. n => pot. n & prot. n
-		// prot. non null + pot. nn & pot. un => pot. nn & pot. un
-		// prot. non null + pot. nn & prot. nn => pot. nn & prot. nn
-		// prot. non null + pot. non null => pot. nn & prot. nn
-		// prot. non null + pot. null => pot. null
-		// prot. non null + pot. unknown => pot. unknown
-		// prot. non null + prot. non null => prot. non null
-		// prot. non null + prot. null => prot. null
-		// prot. non null + start => prot. non null
-		// prot. null + def. non null => def. non null
-		// prot. null + def. null => def. null
-		// prot. null + def. unknown => def. unknown
-		// prot. null + pot. n & pot. nn => pot. n & pot. nn
-		// prot. null + pot. n & pot. un => pot. n & pot. un
-		// prot. null + pot. n & prot. n => pot. n & prot. n
-		// prot. null + pot. nn & pot. un => pot. nn & pot. un
-		// prot. null + pot. nn & prot. nn => pot. nn & prot. nn
-		// prot. null + pot. non null => pot. non null
-		// prot. null + pot. null => pot. n & prot. n
-		// prot. null + pot. unknown => pot. unknown
-		// prot. null + prot. non null => prot. non null
-		// prot. null + prot. null => prot. null
-		// prot. null + start => prot. null
-		// start + def. non null => def. non null
-		// start + def. null => def. null
-		// start + def. unknown => def. unknown
-		// start + pot. n & pot. nn => pot. n & pot. nn
-		// start + pot. n & pot. un => pot. n & pot. un
-		// start + pot. n & prot. n => pot. n & prot. n
-		// start + pot. nn & pot. un => pot. nn & pot. un
-		// start + pot. nn & prot. nn => pot. nn & prot. nn
-		// start + pot. non null => pot. non null
-		// start + pot. null => pot. null
-		// start + pot. unknown => pot. unknown
-		// start + prot. non null => prot. non null
-		// start + prot. null => prot. null
-		// start + start => start
-		// addInitializationsFrom DEFINITION END
-			new ThreeDimensionalTransformation("addInitializationsFrom",
-				new byte[][] {
-				// addInitializationsFrom INITIALIZER START
-				{0x00,0x00,0x00},
-				{0x00,0x04,0x04},
-				{0x00,0x08,0x08},
-				{0x00,0x0C,0x0C},
-				{0x00,0x10,0x10},
-				{0x00,0x14,0x14},
-				{0x00,0x18,0x18},
-				{0x00,0x24,0x24},
-				{0x00,0x28,0x28},
-				{0x00,0x2C,0x2C},
-				{0x00,0x30,0x30},
-				{0x00,0x34,0x34},
-				{0x00,0x38,0x38},
-				{0x00,0x3C,0x3C},
-				{0x04,0x00,0x04},
-				{0x04,0x04,0x04},
-				{0x04,0x08,0x0C},
-				{0x04,0x0C,0x0C},
-				{0x04,0x10,0x14},
-				{0x04,0x14,0x14},
-				{0x04,0x18,0x18},
-				{0x04,0x24,0x24},
-				{0x04,0x28,0x28},
-				{0x04,0x2C,0x2C},
-				{0x04,0x30,0x30},
-				{0x04,0x34,0x34},
-				{0x04,0x38,0x34},
-				{0x04,0x3C,0x2C},
-				{0x08,0x00,0x08},
-				{0x08,0x04,0x0C},
-				{0x08,0x08,0x08},
-				{0x08,0x0C,0x0C},
-				{0x08,0x10,0x18},
-				{0x08,0x14,0x18},
-				{0x08,0x18,0x18},
-				{0x08,0x24,0x24},
-				{0x08,0x28,0x28},
-				{0x08,0x2C,0x2C},
-				{0x08,0x30,0x30},
-				{0x08,0x34,0x34},
-				{0x08,0x38,0x38},
-				{0x08,0x3C,0x2C},
-				{0x0C,0x00,0x0C},
-				{0x0C,0x04,0x0C},
-				{0x0C,0x08,0x0C},
-				{0x0C,0x0C,0x0C},
-				{0x0C,0x10,0x18},
-				{0x0C,0x14,0x18},
-				{0x0C,0x18,0x18},
-				{0x0C,0x24,0x24},
-				{0x0C,0x28,0x28},
-				{0x0C,0x2C,0x2C},
-				{0x0C,0x30,0x30},
-				{0x0C,0x34,0x34},
-				{0x0C,0x38,0x34},
-				{0x0C,0x3C,0x2C},
-				{0x10,0x00,0x10},
-				{0x10,0x04,0x14},
-				{0x10,0x08,0x18},
-				{0x10,0x0C,0x18},
-				{0x10,0x10,0x10},
-				{0x10,0x14,0x14},
-				{0x10,0x18,0x18},
-				{0x10,0x24,0x24},
-				{0x10,0x28,0x28},
-				{0x10,0x2C,0x2C},
-				{0x10,0x30,0x30},
-				{0x10,0x34,0x34},
-				{0x10,0x38,0x34},
-				{0x10,0x3C,0x3C},
-				{0x14,0x00,0x14},
-				{0x14,0x04,0x14},
-				{0x14,0x08,0x18},
-				{0x14,0x0C,0x18},
-				{0x14,0x10,0x14},
-				{0x14,0x14,0x14},
-				{0x14,0x18,0x18},
-				{0x14,0x24,0x24},
-				{0x14,0x28,0x28},
-				{0x14,0x2C,0x2C},
-				{0x14,0x30,0x30},
-				{0x14,0x34,0x34},
-				{0x14,0x38,0x34},
-				{0x14,0x3C,0x2C},
-				{0x18,0x00,0x18},
-				{0x18,0x04,0x18},
-				{0x18,0x08,0x18},
-				{0x18,0x0C,0x18},
-				{0x18,0x10,0x18},
-				{0x18,0x14,0x18},
-				{0x18,0x18,0x18},
-				{0x18,0x24,0x24},
-				{0x18,0x28,0x28},
-				{0x18,0x2C,0x2C},
-				{0x18,0x30,0x30},
-				{0x18,0x34,0x34},
-				{0x18,0x38,0x34},
-				{0x18,0x3C,0x2C},
-				{0x24,0x00,0x24},
-				{0x24,0x04,0x24},
-				{0x24,0x08,0x24},
-				{0x24,0x0C,0x24},
-				{0x24,0x10,0x14},
-				{0x24,0x14,0x14},
-				{0x24,0x18,0x18},
-				{0x24,0x24,0x24},
-				{0x24,0x28,0x28},
-				{0x24,0x2C,0x28},
-				{0x24,0x30,0x30},
-				{0x24,0x34,0x30},
-				{0x24,0x38,0x30},
-				{0x24,0x3C,0x28},
-				{0x28,0x00,0x28},
-				{0x28,0x04,0x24},
-				{0x28,0x08,0x28},
-				{0x28,0x0C,0x24},
-				{0x28,0x10,0x18},
-				{0x28,0x14,0x18},
-				{0x28,0x18,0x18},
-				{0x28,0x24,0x24},
-				{0x28,0x28,0x28},
-				{0x28,0x2C,0x28},
-				{0x28,0x30,0x30},
-				{0x28,0x34,0x34},
-				{0x28,0x38,0x38},
-				{0x28,0x3C,0x28},
-				{0x2C,0x00,0x2C},
-				{0x2C,0x04,0x0C},
-				{0x2C,0x08,0x2C},
-				{0x2C,0x0C,0x0C},
-				{0x2C,0x10,0x18},
-				{0x2C,0x14,0x18},
-				{0x2C,0x18,0x18},
-				{0x2C,0x24,0x24},
-				{0x2C,0x28,0x28},
-				{0x2C,0x2C,0x2C},
-				{0x2C,0x30,0x30},
-				{0x2C,0x34,0x34},
-				{0x2C,0x38,0x38},
-				{0x2C,0x3C,0x2C},
-				{0x30,0x00,0x30},
-				{0x30,0x04,0x14},
-				{0x30,0x08,0x18},
-				{0x30,0x0C,0x18},
-				{0x30,0x10,0x30},
-				{0x30,0x14,0x14},
-				{0x30,0x18,0x18},
-				{0x30,0x24,0x24},
-				{0x30,0x28,0x28},
-				{0x30,0x2C,0x2C},
-				{0x30,0x30,0x30},
-				{0x30,0x34,0x30},
-				{0x30,0x38,0x30},
-				{0x30,0x3C,0x3C},
-				{0x34,0x00,0x34},
-				{0x34,0x04,0x14},
-				{0x34,0x08,0x18},
-				{0x34,0x0C,0x18},
-				{0x34,0x10,0x34},
-				{0x34,0x14,0x14},
-				{0x34,0x18,0x18},
-				{0x34,0x24,0x24},
-				{0x34,0x28,0x28},
-				{0x34,0x2C,0x2C},
-				{0x34,0x30,0x30},
-				{0x34,0x34,0x34},
-				{0x34,0x38,0x34},
-				{0x34,0x3C,0x3C},
-				{0x38,0x00,0x38},
-				{0x38,0x04,0x04},
-				{0x38,0x08,0x08},
-				{0x38,0x0C,0x0C},
-				{0x38,0x10,0x34},
-				{0x38,0x14,0x14},
-				{0x38,0x18,0x18},
-				{0x38,0x24,0x24},
-				{0x38,0x28,0x28},
-				{0x38,0x2C,0x2C},
-				{0x38,0x30,0x30},
-				{0x38,0x34,0x34},
-				{0x38,0x38,0x38},
-				{0x38,0x3C,0x3C},
-				{0x3C,0x00,0x3C},
-				{0x3C,0x04,0x04},
-				{0x3C,0x08,0x2C},
-				{0x3C,0x0C,0x0C},
-				{0x3C,0x10,0x10},
-				{0x3C,0x14,0x14},
-				{0x3C,0x18,0x18},
-				{0x3C,0x24,0x24},
-				{0x3C,0x28,0x28},
-				{0x3C,0x2C,0x2C},
-				{0x3C,0x30,0x30},
-				{0x3C,0x34,0x34},
-				{0x3C,0x38,0x38},
-				{0x3C,0x3C,0x3C},
-				// addInitializationsFrom INITIALIZER END
-				}) {
-			UnconditionalFlowInfo output(UnconditionalFlowInfo input1, 
-					UnconditionalFlowInfo input2) {
-				return (UnconditionalFlowInfo) 
-					input1.copy().addInitializationsFrom(input2);
-			}
-		},
-		// addPotentialInitializationsFrom DEFINITION START
-		// def. non null + def. non null => def. non null		
-		// def. non null + def. null => pot. n & pot. nn		
-		// def. non null + def. unknown => def. unknown		
-		// def. non null + pot. n & pot. nn => pot. n & pot. nn		
-		// def. non null + pot. n & pot. un => pot. n & pot. nn		
-		// def. non null + pot. n & prot. n => pot. n & pot. nn		
-		// def. non null + pot. nn & pot. un => def. unknown		
-		// def. non null + pot. nn & prot. nn => def. non null		
-		// def. non null + pot. non null => def. non null		
-		// def. non null + pot. null => pot. n & pot. nn		
-		// def. non null + pot. unknown => def. unknown		
-		// def. non null + prot. non null => def. non null		
-		// def. non null + prot. null => def. non null		
-		// def. non null + start => def. non null		
-		// def. null + def. non null => pot. n & pot. nn		
-		// def. null + def. null => def. null		
-		// def. null + def. unknown => pot. n & pot. un		
-		// def. null + pot. n & pot. nn => pot. n & pot. nn		
-		// def. null + pot. n & pot. un => pot. n & pot. un
-		// def. null + pot. n & prot. n => def. null		
-		// def. null + pot. nn & pot. un => pot. n & pot. nn		
-		// def. null + pot. nn & prot. nn => pot. n & pot. nn		
-		// def. null + pot. non null => pot. n & pot. nn		
-		// def. null + pot. null => def. null		
-		// def. null + pot. unknown => pot. n & pot. un		
-		// def. null + prot. non null => def. null		
-		// def. null + prot. null => def. null		
-		// def. null + start => def. null
-		// def. unknown + def. non null => def. unknown
-		// def. unknown + def. null => pot. n & pot. un		
-		// def. unknown + def. unknown => def. unknown		
-		// def. unknown + pot. n & pot. nn => pot. n & pot. nn		
-		// def. unknown + pot. n & pot. un => pot. n & pot. un		
-		// def. unknown + pot. n & prot. n => pot. n & pot. un		
-		// def. unknown + pot. nn & pot. un => def. unknown		
-		// def. unknown + pot. nn & prot. nn => def. unknown
-		// def. unknown + pot. non null => def. unknown
-		// def. unknown + pot. null => pot. n & pot. un		
-		// def. unknown + pot. unknown => def. unknown		
-		// def. unknown + prot. non null => def. unknown		
-		// def. unknown + prot. null => def. unknown		
-		// def. unknown + start => def. unknown		
-		// pot. n & pot. nn + def. non null => pot. n & pot. nn		
-		// pot. n & pot. nn + def. null => pot. n & pot. nn		
-		// pot. n & pot. nn + def. unknown => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. n & pot. un => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. n & prot. n => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. nn & pot. un => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. nn & prot. nn => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. non null => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. null => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. unknown => pot. n & pot. nn		
-		// pot. n & pot. nn + prot. non null => pot. n & pot. nn		
-		// pot. n & pot. nn + prot. null => pot. n & pot. nn		
-		// pot. n & pot. nn + start => pot. n & pot. nn		
-		// pot. n & pot. un + def. non null => pot. n & pot. nn		
-		// pot. n & pot. un + def. null => pot. n & pot. un		
-		// pot. n & pot. un + def. unknown => pot. n & pot. un		
-		// pot. n & pot. un + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & pot. un + pot. n & pot. un => pot. n & pot. un		
-		// pot. n & pot. un + pot. n & prot. n => pot. n & pot. un		
-		// pot. n & pot. un + pot. nn & pot. un => pot. n & pot. nn		
-		// pot. n & pot. un + pot. nn & prot. nn => pot. n & pot. nn		
-		// pot. n & pot. un + pot. non null => pot. n & pot. nn		
-		// pot. n & pot. un + pot. null => pot. n & pot. un		
-		// pot. n & pot. un + pot. unknown => pot. n & pot. un		
-		// pot. n & pot. un + prot. non null => pot. n & pot. un		
-		// pot. n & pot. un + prot. null => pot. n & pot. un		
-		// pot. n & pot. un + start => pot. n & pot. un		
-		// pot. n & prot. n + def. non null => pot. n & pot. nn		
-		// pot. n & prot. n + def. null => pot. n & prot. n		
-		// pot. n & prot. n + def. unknown => pot. n & pot. un		
-		// pot. n & prot. n + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & prot. n + pot. n & pot. un => pot. n & pot. un		
-		// pot. n & prot. n + pot. n & prot. n => pot. n & prot. n		
-		// pot. n & prot. n + pot. nn & pot. un => pot. n & pot. nn		
-		// pot. n & prot. n + pot. nn & prot. nn => pot. n & pot. nn		
-		// pot. n & prot. n + pot. non null => pot. n & pot. nn		
-		// pot. n & prot. n + pot. null => pot. n & prot. n		
-		// pot. n & prot. n + pot. unknown => pot. n & pot. un		
-		// pot. n & prot. n + prot. non null => pot. n & prot. n		
-		// pot. n & prot. n + prot. null => pot. n & prot. n		
-		// pot. n & prot. n + start => pot. n & prot. n		
-		// pot. nn & pot. un + def. non null => pot. nn & pot. un		
-		// pot. nn & pot. un + def. null => pot. n & pot. nn		
-		// pot. nn & pot. un + def. unknown => pot. nn & pot. un		
-		// pot. nn & pot. un + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. n & pot. un => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. n & prot. n => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. nn & pot. un + pot. nn & prot. nn => pot. nn & pot. un		
-		// pot. nn & pot. un + pot. non null => pot. nn & pot. un		
-		// pot. nn & pot. un + pot. null => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. unknown => pot. nn & pot. un		
-		// pot. nn & pot. un + prot. non null => pot. nn & pot. un		
-		// pot. nn & pot. un + prot. null => pot. nn & pot. un		
-		// pot. nn & pot. un + start => pot. nn & pot. un		
-		// pot. nn & prot. nn + def. non null => pot. nn & prot. nn		
-		// pot. nn & prot. nn + def. null => pot. n & pot. nn		
-		// pot. nn & prot. nn + def. unknown => pot. nn & pot. un
-		// pot. nn & prot. nn + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. n & pot. un => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. n & prot. n => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. nn & pot. un => pot. nn & pot. un	// see test1501
-		// pot. nn & prot. nn + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. nn & prot. nn + pot. non null => pot. nn & prot. nn		
-		// pot. nn & prot. nn + pot. null => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. unknown => pot. nn & pot. un
-		// pot. nn & prot. nn + prot. non null => pot. nn & prot. nn		
-		// pot. nn & prot. nn + prot. null => pot. nn & prot. nn		
-		// pot. nn & prot. nn + start => pot. nn & prot. nn		
-		// pot. non null + def. non null => pot. non null		
-		// pot. non null + def. null => pot. n & pot. nn		
-		// pot. non null + def. unknown => pot. nn & pot. un		
-		// pot. non null + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. non null + pot. n & pot. un => pot. n & pot. nn		
-		// pot. non null + pot. n & prot. n => pot. n & pot. nn		
-		// pot. non null + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. non null + pot. nn & prot. nn => pot. non null		
-		// pot. non null + pot. non null => pot. non null		
-		// pot. non null + pot. null => pot. n & pot. nn		
-		// pot. non null + pot. unknown => pot. nn & pot. un		
-		// pot. non null + prot. non null => pot. non null		
-		// pot. non null + prot. null => pot. non null		
-		// pot. non null + start => pot. non null		
-		// pot. null + def. non null => pot. n & pot. nn		
-		// pot. null + def. null => pot. null		
-		// pot. null + def. unknown => pot. n & pot. un		
-		// pot. null + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. null + pot. n & pot. un => pot. n & pot. un		
-		// pot. null + pot. n & prot. n => pot. null		
-		// pot. null + pot. nn & pot. un => pot. n & pot. nn		
-		// pot. null + pot. nn & prot. nn => pot. n & pot. nn		
-		// pot. null + pot. non null => pot. n & pot. nn		
-		// pot. null + pot. null => pot. null		
-		// pot. null + pot. unknown => pot. n & pot. un		
-		// pot. null + prot. non null => pot. null		
-		// pot. null + prot. null => pot. null		
-		// pot. null + start => pot. null		
-		// pot. unknown + def. non null => pot. nn & pot. un		
-		// pot. unknown + def. null => pot. n & pot. un		
-		// pot. unknown + def. unknown => pot. unknown		
-		// pot. unknown + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. unknown + pot. n & pot. un => pot. n & pot. un		
-		// pot. unknown + pot. n & prot. n => pot. n & pot. un		
-		// pot. unknown + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. unknown + pot. nn & prot. nn => pot. nn & pot. un		
-		// pot. unknown + pot. non null => pot. nn & pot. un		
-		// pot. unknown + pot. null => pot. n & pot. un		
-		// pot. unknown + pot. unknown => pot. unknown		
-		// pot. unknown + prot. non null => pot. unknown		
-		// pot. unknown + prot. null => pot. unknown		
-		// pot. unknown + start => pot. unknown		
-		// prot. non null + def. non null => pot. nn & prot. nn
-		// prot. non null + def. null => pot. null		
-		// prot. non null + def. unknown => pot. unknown
-		// prot. non null + pot. n & pot. nn => pot. n & pot. nn		
-		// prot. non null + pot. n & pot. un => pot. n & pot. un		
-		// prot. non null + pot. n & prot. n => pot. null		
-		// prot. non null + pot. nn & pot. un => pot. nn & pot. un	// see test1500
-		// prot. non null + pot. nn & prot. nn => pot. nn & prot. nn		
-		// prot. non null + pot. non null => pot. nn & prot. nn		
-		// prot. non null + pot. null => pot. null		
-		// prot. non null + pot. unknown => pot. unknown
-		// prot. non null + prot. non null => prot. non null		
-		// prot. non null + prot. null => prot. non null
-		// prot. non null + start => prot. non null		
-		// prot. null + def. non null => pot. non null		
-		// prot. null + def. null => pot. n & prot. n		
-		// prot. null + def. unknown => pot. unknown		
-		// prot. null + pot. n & pot. nn => pot. n & pot. nn		
-		// prot. null + pot. n & pot. un => pot. n & pot. un		
-		// prot. null + pot. n & prot. n => pot. n & prot. n		
-		// prot. null + pot. nn & pot. un => pot. nn & pot. un		
-		// prot. null + pot. nn & prot. nn => pot. non null		
-		// prot. null + pot. non null => pot. non null		
-		// prot. null + pot. null => pot. n & prot. n		
-		// prot. null + pot. unknown => pot. unknown		
-		// prot. null + prot. non null => prot. null
-		// prot. null + prot. null => prot. null		
-		// prot. null + start => prot. null		
-		// start + def. non null => pot. non null		
-		// start + def. null => pot. null		
-		// start + def. unknown => pot. unknown		
-		// start + pot. n & pot. nn => pot. n & pot. nn		
-		// start + pot. n & pot. un => pot. n & pot. un		
-		// start + pot. n & prot. n => pot. null		
-		// start + pot. nn & pot. un => pot. nn & pot. un		
-		// start + pot. nn & prot. nn => pot. non null		
-		// start + pot. non null => pot. non null		
-		// start + pot. null => pot. null		
-		// start + pot. unknown => pot. unknown		
-		// start + prot. non null => start // PREMATURE may need to be tainted?
-		// start + prot. null => start		// PREMATURE may need to be tainted?
-		// start + start => start
-		// addPotentialInitializationsFrom DEFINITION END
-		addPotentialInitializationsFrom =
-			new ThreeDimensionalTransformation("addPotentialInitializationsFrom",
-				new byte[][] {
-				// addPotentialInitializationsFrom INITIALIZER START
-				{0x00,0x00,0x00},
-				{0x00,0x04,0x04},
-				{0x00,0x08,0x08},
-				{0x00,0x0C,0x0C},
-				{0x00,0x10,0x10},
-				{0x00,0x14,0x14},
-				{0x00,0x18,0x18},
-				{0x00,0x24,0x04},
-				{0x00,0x28,0x08},
-				{0x00,0x2C,0x08},
-				{0x00,0x30,0x10},
-				{0x00,0x34,0x10},
-				{0x00,0x38,0x00},
-				{0x00,0x3C,0x00},
-				{0x04,0x00,0x04},
-				{0x04,0x04,0x04},
-				{0x04,0x08,0x0C},
-				{0x04,0x0C,0x0C},
-				{0x04,0x10,0x14},
-				{0x04,0x14,0x14},
-				{0x04,0x18,0x18},
-				{0x04,0x24,0x04},
-				{0x04,0x28,0x0C},
-				{0x04,0x2C,0x0C},
-				{0x04,0x30,0x14},
-				{0x04,0x34,0x14},
-				{0x04,0x38,0x04},
-				{0x04,0x3C,0x04},
-				{0x08,0x00,0x08},
-				{0x08,0x04,0x0C},
-				{0x08,0x08,0x08},
-				{0x08,0x0C,0x0C},
-				{0x08,0x10,0x18},
-				{0x08,0x14,0x18},
-				{0x08,0x18,0x18},
-				{0x08,0x24,0x0C},
-				{0x08,0x28,0x08},
-				{0x08,0x2C,0x08},
-				{0x08,0x30,0x18},
-				{0x08,0x34,0x18},
-				{0x08,0x38,0x08},
-				{0x08,0x3C,0x08},
-				{0x0C,0x00,0x0C},
-				{0x0C,0x04,0x0C},
-				{0x0C,0x08,0x0C},
-				{0x0C,0x0C,0x0C},
-				{0x0C,0x10,0x18},
-				{0x0C,0x14,0x18},
-				{0x0C,0x18,0x18},
-				{0x0C,0x24,0x0C},
-				{0x0C,0x28,0x0C},
-				{0x0C,0x2C,0x0C},
-				{0x0C,0x30,0x18},
-				{0x0C,0x34,0x18},
-				{0x0C,0x38,0x0C},
-				{0x0C,0x3C,0x0C},
-				{0x10,0x00,0x10},
-				{0x10,0x04,0x14},
-				{0x10,0x08,0x18},
-				{0x10,0x0C,0x18},
-				{0x10,0x10,0x10},
-				{0x10,0x14,0x14},
-				{0x10,0x18,0x18},
-				{0x10,0x24,0x14},
-				{0x10,0x28,0x18},
-				{0x10,0x2C,0x18},
-				{0x10,0x30,0x10},
-				{0x10,0x34,0x10},
-				{0x10,0x38,0x10},
-				{0x10,0x3C,0x10},
-				{0x14,0x00,0x14},
-				{0x14,0x04,0x14},
-				{0x14,0x08,0x18},
-				{0x14,0x0C,0x18},
-				{0x14,0x10,0x14},
-				{0x14,0x14,0x14},
-				{0x14,0x18,0x18},
-				{0x14,0x24,0x14},
-				{0x14,0x28,0x18},
-				{0x14,0x2C,0x18},
-				{0x14,0x30,0x14},
-				{0x14,0x34,0x14},
-				{0x14,0x38,0x14},
-				{0x14,0x3C,0x14},
-				{0x18,0x00,0x18},
-				{0x18,0x04,0x18},
-				{0x18,0x08,0x18},
-				{0x18,0x0C,0x18},
-				{0x18,0x10,0x18},
-				{0x18,0x14,0x18},
-				{0x18,0x18,0x18},
-				{0x18,0x24,0x18},
-				{0x18,0x28,0x18},
-				{0x18,0x2C,0x18},
-				{0x18,0x30,0x18},
-				{0x18,0x34,0x18},
-				{0x18,0x38,0x18},
-				{0x18,0x3C,0x18},
-				{0x24,0x00,0x24},
-				{0x24,0x04,0x24},
-				{0x24,0x08,0x24},
-				{0x24,0x0C,0x24},
-				{0x24,0x10,0x14},
-				{0x24,0x14,0x14},
-				{0x24,0x18,0x18},
-				{0x24,0x24,0x24},
-				{0x24,0x28,0x24},
-				{0x24,0x2C,0x24},
-				{0x24,0x30,0x14},
-				{0x24,0x34,0x14},
-				{0x24,0x38,0x24},
-				{0x24,0x3C,0x24},
-				{0x28,0x00,0x28},
-				{0x28,0x04,0x24},
-				{0x28,0x08,0x28},
-				{0x28,0x0C,0x24},
-				{0x28,0x10,0x18},
-				{0x28,0x14,0x18},
-				{0x28,0x18,0x18},
-				{0x28,0x24,0x24},
-				{0x28,0x28,0x28},
-				{0x28,0x2C,0x28},
-				{0x28,0x30,0x18},
-				{0x28,0x34,0x18},
-				{0x28,0x38,0x28},
-				{0x28,0x3C,0x28},
-				{0x2C,0x00,0x2C},
-				{0x2C,0x04,0x0C},
-				{0x2C,0x08,0x2C},
-				{0x2C,0x0C,0x0C},
-				{0x2C,0x10,0x18},
-				{0x2C,0x14,0x18},
-				{0x2C,0x18,0x18},
-				{0x2C,0x24,0x0C},
-				{0x2C,0x28,0x2C},
-				{0x2C,0x2C,0x2C},
-				{0x2C,0x30,0x18},
-				{0x2C,0x34,0x18},
-				{0x2C,0x38,0x2C},
-				{0x2C,0x3C,0x2C},
-				{0x30,0x00,0x30},
-				{0x30,0x04,0x14},
-				{0x30,0x08,0x18},
-				{0x30,0x0C,0x18},
-				{0x30,0x10,0x30},
-				{0x30,0x14,0x14},
-				{0x30,0x18,0x18},
-				{0x30,0x24,0x14},
-				{0x30,0x28,0x18},
-				{0x30,0x2C,0x18},
-				{0x30,0x30,0x30},
-				{0x30,0x34,0x30},
-				{0x30,0x38,0x30},
-				{0x30,0x3C,0x30},
-				{0x34,0x00,0x34},
-				{0x34,0x04,0x14},
-				{0x34,0x08,0x18},
-				{0x34,0x0C,0x18},
-				{0x34,0x10,0x34},
-				{0x34,0x14,0x14},
-				{0x34,0x18,0x18},
-				{0x34,0x24,0x14},
-				{0x34,0x28,0x18},
-				{0x34,0x2C,0x18},
-				{0x34,0x30,0x34},
-				{0x34,0x34,0x34},
-				{0x34,0x38,0x34},
-				{0x34,0x3C,0x34},
-				{0x38,0x00,0x38},
-				{0x38,0x04,0x04},
-				{0x38,0x08,0x08},
-				{0x38,0x0C,0x0C},
-				{0x38,0x10,0x34},
-				{0x38,0x14,0x14},
-				{0x38,0x18,0x18},
-				{0x38,0x24,0x04},
-				{0x38,0x28,0x08},
-				{0x38,0x2C,0x08},
-				{0x38,0x30,0x34},
-				{0x38,0x34,0x34},
-				{0x38,0x38,0x38},
-				{0x38,0x3C,0x38},
-				{0x3C,0x00,0x3C},
-				{0x3C,0x04,0x04},
-				{0x3C,0x08,0x2C},
-				{0x3C,0x0C,0x0C},
-				{0x3C,0x10,0x10},
-				{0x3C,0x14,0x14},
-				{0x3C,0x18,0x18},
-				{0x3C,0x24,0x04},
-				{0x3C,0x28,0x2C},
-				{0x3C,0x2C,0x2C},
-				{0x3C,0x30,0x10},
-				{0x3C,0x34,0x10},
-				{0x3C,0x38,0x3C},
-				{0x3C,0x3C,0x3C},
-				// addPotentialInitializationsFrom INITIALIZER END
-				}) {
-			UnconditionalFlowInfo output(UnconditionalFlowInfo input1, 
-					UnconditionalFlowInfo input2) {
-				return (UnconditionalFlowInfo) 
-					input1.copy().addPotentialInitializationsFrom(input2);
-			}
-		},
-		mergedWith =
-		// mergedWith DEFINITION START
-		// def. non null + def. non null => def. non null		
-		// def. non null + def. null => pot. n & pot. nn
-		// def. null + def. null => def. null		
-		// def. unknown + def. non null => def. unknown
-		// def. unknown + def. null => pot. n & pot. un // pot. n priv. over def. unknown
-		// def. unknown + def. unknown => def. unknown		
-		// pot. n & pot. nn + def. non null => pot. n & pot. nn		
-		// pot. n & pot. nn + def. null => pot. n & pot. nn		
-		// pot. n & pot. nn + def. unknown => pot. n & pot. nn		
-		// pot. n & pot. nn + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & pot. un + def. non null => pot. n & pot. nn		
-		// pot. n & pot. un + def. null => pot. n & pot. un		
-		// pot. n & pot. un + def. unknown => pot. n & pot. un		
-		// pot. n & pot. un + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & pot. un + pot. n & pot. un => pot. n & pot. un		
-		// pot. n & prot. n + def. non null => pot. n & pot. nn		
-		// pot. n & prot. n + def. null => pot. n & prot. n
-		// pot. n & prot. n + def. unknown => pot. n & pot. un		
-		// pot. n & prot. n + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. n & prot. n + pot. n & pot. un => pot. n & pot. un		
-		// pot. n & prot. n + pot. n & prot. n => pot. n & prot. n		
-		// pot. nn & pot. un + def. non null => pot. nn & pot. un		
-		// pot. nn & pot. un + def. null => pot. n & pot. nn		
-		// pot. nn & pot. un + def. unknown => pot. nn & pot. un		
-		// pot. nn & pot. un + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. n & pot. un => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. n & prot. n => pot. n & pot. nn		
-		// pot. nn & pot. un + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. nn & pot. un + pot. null => pot. n & pot. nn		
-		// pot. nn & prot. nn + def. non null => pot. nn & prot. nn
-		// pot. nn & prot. nn + def. null => pot. n & pot. nn		
-		// pot. nn & prot. nn + def. unknown => pot. nn & pot. un		
-		// pot. nn & prot. nn + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. n & pot. un => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. n & prot. n => pot. n & pot. nn		
-		// pot. nn & prot. nn + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. nn & prot. nn + pot. nn & prot. nn => pot. nn & prot. nn		
-		// pot. nn & prot. nn + pot. null => pot. n & pot. nn		
-		// pot. non null + def. non null => pot. non null		
-		// pot. non null + def. null => pot. n & pot. nn		
-		// pot. non null + def. unknown => pot. nn & pot. un		
-		// pot. non null + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. non null + pot. n & pot. un => pot. n & pot. nn		
-		// pot. non null + pot. n & prot. n => pot. n & pot. nn		
-		// pot. non null + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. non null + pot. nn & prot. nn => pot. non null		
-		// pot. non null + pot. non null => pot. non null		
-		// pot. non null + pot. null => pot. n & pot. nn		
-		// pot. null + def. non null => pot. n & pot. nn		
-		// pot. null + def. null => pot. null		
-		// pot. null + def. unknown => pot. n & pot. un		
-		// pot. null + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. null + pot. n & pot. un => pot. n & pot. un		
-		// pot. null + pot. n & prot. n => pot. null		
-		// pot. null + pot. null => pot. null		
-		// pot. unknown + def. non null => pot. nn & pot. un		
-		// pot. unknown + def. null => pot. n & pot. un		
-		// pot. unknown + def. unknown => pot. unknown		
-		// pot. unknown + pot. n & pot. nn => pot. n & pot. nn		
-		// pot. unknown + pot. n & pot. un => pot. n & pot. un		
-		// pot. unknown + pot. n & prot. n => pot. n & pot. un		
-		// pot. unknown + pot. nn & pot. un => pot. nn & pot. un		
-		// pot. unknown + pot. nn & prot. nn => pot. nn & pot. un		
-		// pot. unknown + pot. non null => pot. nn & pot. un		
-		// pot. unknown + pot. null => pot. n & pot. un		
-		// pot. unknown + pot. unknown => pot. unknown		
-		// prot. non null + def. non null => pot. nn & prot. nn		
-		// prot. non null + def. null => pot. null		
-		// prot. non null + def. unknown => def. unknown // test726
-		// prot. non null + pot. n & pot. nn => pot. n & pot. nn		
-		// prot. non null + pot. n & pot. un => pot. n & pot. un		
-		// prot. non null + pot. n & prot. n => pot. null		
-		// prot. non null + pot. nn & pot. un => pot. nn & pot. un		
-		// prot. non null + pot. nn & prot. nn => pot. nn & prot. nn		
-		// prot. non null + pot. non null => pot. non null		
-		// prot. non null + pot. null => pot. null		
-		// prot. non null + pot. unknown => pot. unknown		
-		// prot. non null + prot. non null => prot. non null		
-		// prot. non null + prot. null => pot. null // PREMATURE use tainted instead
-		// prot. null + def. non null => pot. non null		 // PREMATURE should become tainted null & pot. nn... not really, depends on the three way merge... or even on the conditions that got there (pb with no contrib prot. null branch)
-		// prot. null + def. null => pot. n & prot. n		
-		// prot. null + def. unknown => pot. unknown	// PREMATURE possibly wrong, but no test case yet	
-		// prot. null + pot. n & pot. nn => pot. n & pot. nn		
-		// prot. null + pot. n & pot. un => pot. n & pot. un		
-		// prot. null + pot. n & prot. n => pot. n & prot. n		
-		// prot. null + pot. nn & pot. un => pot. n & pot. nn
-		// prot. null + pot. nn & prot. nn => pot. n & pot. nn
-		// prot. null + pot. non null => pot. n & pot. nn
-		// prot. null + pot. null => pot. null		
-		// prot. null + pot. unknown => pot. unknown // PREMATURE possibly wrong, but no test case yet		
-		// prot. null + prot. null => prot. null		
-		// start + def. non null => pot. non null		
-		// start + def. null => pot. null		
-		// start + def. unknown => pot. unknown		
-		// start + pot. n & pot. nn => pot. n & pot. nn		
-		// start + pot. n & pot. un => pot. n & pot. un		
-		// start + pot. n & prot. n => pot. null		
-		// start + pot. nn & pot. un => pot. nn & pot. un		
-		// start + pot. nn & prot. nn => pot. non null		
-		// start + pot. non null => pot. non null		
-		// start + pot. null => pot. null		
-		// start + pot. unknown => pot. unknown		
-		// start + prot. non null => start // PREMATURE should it taint?		
-		// start + prot. null => start		
-		// start + start => start		
-		// mergedWith DEFINITION END
-			new SymmetricalThreeDimensionalTransformation("mergedWith",
-				new byte[][] {
-				// mergedWith INITIALIZER START
-				{0x00,0x00,0x00},
-				{0x00,0x04,0x04},
-				{0x00,0x08,0x08},
-				{0x00,0x0C,0x0C},
-				{0x00,0x10,0x10},
-				{0x00,0x14,0x14},
-				{0x00,0x18,0x18},
-				{0x00,0x24,0x04},
-				{0x00,0x28,0x08},
-				{0x00,0x2C,0x08},
-				{0x00,0x30,0x10},
-				{0x00,0x34,0x10},
-				{0x00,0x38,0x00},
-				{0x00,0x3C,0x00},
-				{0x04,0x04,0x04},
-				{0x04,0x08,0x0C},
-				{0x04,0x0C,0x0C},
-				{0x04,0x10,0x14},
-				{0x04,0x14,0x14},
-				{0x04,0x18,0x18},
-				{0x04,0x24,0x04},
-				{0x04,0x28,0x0C},
-				{0x04,0x2C,0x0C},
-				{0x04,0x30,0x14},
-				{0x04,0x34,0x14},
-				{0x08,0x08,0x08},
-				{0x08,0x0C,0x0C},
-				{0x08,0x10,0x18},
-				{0x08,0x14,0x18},
-				{0x08,0x18,0x18},
-				{0x08,0x24,0x0C},
-				{0x08,0x28,0x08},
-				{0x08,0x2C,0x08},
-				{0x08,0x30,0x18},
-				{0x08,0x34,0x18},
-				{0x0C,0x0C,0x0C},
-				{0x0C,0x10,0x18},
-				{0x0C,0x14,0x18},
-				{0x0C,0x18,0x18},
-				{0x0C,0x24,0x0C},
-				{0x0C,0x28,0x0C},
-				{0x0C,0x30,0x18},
-				{0x0C,0x34,0x18},
-				{0x10,0x10,0x10},
-				{0x10,0x14,0x14},
-				{0x10,0x18,0x18},
-				{0x10,0x24,0x14},
-				{0x10,0x28,0x18},
-				{0x10,0x30,0x10},
-				{0x10,0x34,0x10},
-				{0x14,0x14,0x14},
-				{0x14,0x18,0x18},
-				{0x14,0x24,0x14},
-				{0x14,0x28,0x18},
-				{0x14,0x30,0x14},
-				{0x18,0x18,0x18},
-				{0x18,0x24,0x18},
-				{0x18,0x28,0x18},
-				{0x18,0x30,0x18},
-				{0x24,0x24,0x24},
-				{0x24,0x28,0x24},
-				{0x24,0x30,0x14},
-				{0x28,0x28,0x28},
-				{0x28,0x30,0x18},
-				{0x2C,0x0C,0x0C},
-				{0x2C,0x10,0x18},
-				{0x2C,0x14,0x18},
-				{0x2C,0x18,0x18},
-				{0x2C,0x24,0x0C},
-				{0x2C,0x28,0x2C},
-				{0x2C,0x2C,0x2C},
-				{0x2C,0x30,0x18},
-				{0x2C,0x34,0x18},
-				{0x30,0x30,0x30},
-				{0x34,0x14,0x14},
-				{0x34,0x18,0x18},
-				{0x34,0x24,0x14},
-				{0x34,0x28,0x18},
-				{0x34,0x30,0x34},
-				{0x34,0x34,0x34},
-				{0x38,0x04,0x04},
-				{0x38,0x08,0x18},
-				{0x38,0x0C,0x18},
-				{0x38,0x10,0x10},
-				{0x38,0x14,0x14},
-				{0x38,0x18,0x18},
-				{0x38,0x24,0x04},
-				{0x38,0x28,0x08},
-				{0x38,0x2C,0x18},
-				{0x38,0x30,0x34},
-				{0x38,0x34,0x34},
-				{0x38,0x38,0x38},
-				{0x3C,0x04,0x04},
-				{0x3C,0x08,0x08},
-				{0x3C,0x0C,0x0C},
-				{0x3C,0x10,0x10},
-				{0x3C,0x14,0x14},
-				{0x3C,0x18,0x18},
-				{0x3C,0x24,0x24},
-				{0x3C,0x28,0x2C},
-				{0x3C,0x2C,0x2C},
-				{0x3C,0x30,0x10},
-				{0x3C,0x34,0x10},
-				{0x3C,0x38,0x10},
-				{0x3C,0x3C,0x3C},
-				// mergedWith INITIALIZER END
-				}) {
-			UnconditionalFlowInfo output(UnconditionalFlowInfo input1, 
-					UnconditionalFlowInfo input2) {
-				return input1.copy().mergedWith(input2);
-			}
-		},
-		newNullInfoRegistry = 
-		// newNullInfoRegistry DEFINITION START
-		// start => start
-		// prot. non null => start
-		// prot. null => start
-		// pot. unknown => start
-		// pot. non null => start
-		// pot. nn & prot. nn => start
-		// pot. nn & pot. un => start
-		// pot. null => start
-		// pot. n & prot. n => start
-		// pot. n & pot. un => start
-		// pot. n & pot. nn => start
-		// def. unknown => pot. unknown
-		// def. non null => pot. non null
-		// def. null => pot. null
-		// newNullInfoRegistry DEFINITION END
-			new CreationalTransformation("newNullInfoRegistry",
-				new byte[][] {
-				// newNullInfoRegistry INITIALIZER START
-				{0x00,0x00},
-				{0x04,0x00},
-				{0x08,0x00},
-				{0x0C,0x00},
-				{0x10,0x00},
-				{0x14,0x00},
-				{0x18,0x00},
-				{0x24,0x04},
-				{0x28,0x08},
-				{0x2C,0x00},
-				{0x30,0x10},
-				{0x34,0x00},
-				{0x38,0x00},
-				{0x3C,0x00},
-				// newNullInfoRegistry INITIALIZER END
-				}) {
-			UnconditionalFlowInfo output(UnconditionalFlowInfo input) {
-				return NullInfoRegistryTestHarness.
-					testNullInfoRegistry((UnconditionalFlowInfoTestHarness) input);
-			}
-		};		
-	public static final Transformation[] transformations = {
-			markAsComparedEqualToNonNull,
-			markAsComparedEqualToNull,
-			markAsDefinitelyNonNull,
-			markAsDefinitelyNull,
-			markAsDefinitelyUnknown,
-			addInitializationsFrom,
-			addPotentialInitializationsFrom,
-			mergedWith,
-			newNullInfoRegistry
-		};
-public abstract static class Transformation {
-	public String name; 
-	String	definitionStartMarker, definitionEndMarker, 
-		initializerStartMarker,	initializerEndMarker;
-	int dimension;
-	public Map initializedTransitions, computedTransitions;
-		// PREMATURE limit public access
-	int failuresNb; // transient
-// PREMATURE complete the test coverage for NullInfoRegistry (need to consider several classes
-//  		 of transitions so as to avoid considering NullInfoRegistry states and 
-//			 UnconditionalFlowInfo states into the same pool; moreover, cross classes 
-//			 transformations exist.
-Transformation(String name) {
-	this.name = name;
-	this.definitionStartMarker = "// " + name + " " + CodeAnalysis.definitionStartMarker;
-	this.definitionEndMarker = "// " + name + " " + CodeAnalysis.definitionEndMarker;
-	this.initializerStartMarker = "// " + name + " " + CodeAnalysis.initializerStartMarker;
-	this.initializerEndMarker = "// " + name + " " + CodeAnalysis.initializerEndMarker;
-}
-abstract State[] computeOutputs(State[] inputs);
-abstract void hydrate();
-void fail() {
-	if (this.failuresNb == 0) {
-		System.out.println(this.name + " failures: ");
-	}
-	this.failuresNb++;
-}
-abstract void printTruthTables(File outputDirectory);
-
-static boolean checkContiguity(String a, String b) {
-	int aLength;
-	if ((aLength = a.length()) != b.length()) {
-		System.out.println("inappropriate string length: " + a + " vs " + b);
-		return false;
-	}
-	int status = 0;
-	for (int i = 0; i < aLength; i++) {
-		if (a.charAt(i) != b.charAt(i)) {
-			status++;
-		} 
-	}
-	if (status != 1) {
-		System.out.println("non contiguous strings: " + a + " vs " + b);
-		return false;
-	}
-	return true;
-}
-
-final static String truthTableRowNames[] = { // need a specific order to yield simplication opportunities
-		"000000",
-		"000100",
-		"001100",
-		"001000",
-		"011000",
-		"011100",
-		"010100",
-		"010000",
-		"110000",
-		"110100",
-		"111100",
-		"111000",
-		"101000",
-		"101100",
-		"100100",
-		"100000",		
-		// PREMATURE cheated to group first four bits... reconsider
-		"000001",
-		"000011",
-		"000010",
-		"000110",
-		"000111",
-		"000101",
-		"001101",
-		"001111",
-		"001110",
-		"001010",
-		"001011",
-		"001001",
-		"011001",
-		"011011",
-		"011010",
-		"011110",
-		"011111",
-		"011101",
-		"010101",
-		"010111",
-		"010110",
-		"010010",
-		"010011",
-		"010001",
-		"110001",
-		"110011",
-		"110010",
-		"110110",
-		"110111",
-		"110101",
-		"111101",
-		"111111",
-		"111110",
-		"111010",
-		"111011",
-		"111001",
-		"101001",
-		"101011",
-		"101010",
-		"101110",
-		"101111",
-		"101101",
-		"100101",
-		"100111",
-		"100110",
-		"100010",
-		"100011",
-		"100001",
-	};
-
-private static Map ranksForStates;
-int rankForState(State state) {
-	int length;
-	if (ranksForStates == null) {
-		ranksForStates = new HashMap(length = truthTableRowNames.length);
-		for (int i = 0; i < length; i++) {
-			ranksForStates.put(truthTableRowNames[i], new Integer(i));
-		}
-	}
-	Integer rank;
-	if ((rank = (Integer) ranksForStates.get(state.printableBitsField)) != null) {
-		return rank.intValue();
-	}
-	return 0;
-}
-
-abstract void reinitializeFromComments(BufferedReader input, BufferedWriter output);
-abstract void reinitializeFromComputedValues(BufferedReader input, BufferedWriter output,
-	State[] consideredStates);
-/**
- * Run a test against UnconditionalFlowInfo by comparing the transitions as memorized
- * into the initializer and as delivered by UnconditionalFlowInfo for various positions
- * in the encoding and return the number of failures.
- * @return the number of failures, that is 0 if the results match the expectations
- */
-abstract int test();
-}
-abstract static class TwoDimensionalTransformation extends Transformation {
-TwoDimensionalTransformation(String name, byte[][] transitions) {
-	super(name);
-	this.dimension = 2;
-	int length;
-	this.initializedTransitions = new HashMap(length = transitions.length);
-	State input1;
-	for (int i = 0; i < length; i++) {
-		if (transitions[i].length != 2) {
-			throw new IllegalArgumentException("transitions should have two entries");
-		}
-		input1 = State.states[transitions[i][0]]; // array out of bounds exception if broken
-		if (this.initializedTransitions.get(input1) != null) {
-			throw new IllegalArgumentException("duplicate entry");
-		}
-		this.initializedTransitions.put(input1, State.states[transitions[i][1]]);
-	}
-}
-State[] computeOutputs(State[] inputs) {
-	Map resultAccumulator = new HashMap(State.stateMaxValue + 1);
-	hydrate(); // pre-compute all possible combinations, then cache them
-	for (int i = 0, inputsLength = inputs.length; i < inputsLength; i++) {
-		resultAccumulator.put(this.computedTransitions.get(inputs[i]), null);
-	}
-	int length;
-	State[] result = new State[length = resultAccumulator.size()];
-	Iterator resultIterator = resultAccumulator.keySet().iterator();
-	for (int j = 0; j < length; j++) {
-		result[j] = (State) resultIterator.next();
-	}
-	return result;	
-}
-void hydrate() {
-	if (this.computedTransitions == null) {
-		State input, output;
-		this.computedTransitions = new HashMap(State.stateMaxValue + 1);
-		for (int i = 0, length = State.states.length; i < length; i++) {
-			output = ((UnconditionalFlowInfoTestHarness)
-				output(UnconditionalFlowInfoTestHarness.
-					testUnconditionalFlowInfo(input = State.states[i]), 
-						TestLocalVariableBinding.local0)).asState();
-			if (input.symbolic && !output.symbolic) {
-				System.err.println(this.name + " generates non-symbolic state " +
-					output + " upon entry: " + input);
-			}
-			this.computedTransitions.put(input, output);
-		}
-	}
-}
-abstract UnconditionalFlowInfo output(UnconditionalFlowInfo input, TestLocalVariableBinding local);
-
-void printTruthTables(File outputDirectory) {
-	try {
-		String outputFileName = outputDirectory.getPath() + File.separator + this.name + ".txt";
-		PrintWriter out = new PrintWriter(new FileOutputStream(
-				new File(outputFileName)));
-		System.out.println("Printing " + outputFileName);
-		out.println("======================================================");
-		out.println("Truth table for " + this.name );
-		char truthValues[][] = new char[State.statesNb][State.stateWidth];
-		int row, column;
-		for (row = 0; row < State.statesNb; row++) {
-			for (column = 0; column < State.stateWidth; column++) {
-				truthValues[row][column] = '.';
-			}
-		}
-		boolean keepRow[] = new boolean[State.statesNb];
-		Iterator i1 = this.initializedTransitions.entrySet().iterator();
-		while (i1.hasNext()) {
-			Map.Entry transitionsSet = (Map.Entry) i1.next();
-			State input = (State) transitionsSet.getKey();
-			keepRow[row = rankForState(input)] = true;
-			for (int bit = 0; bit < State.stateWidth; bit++) {
-				truthValues[row][bit] = 
-					((State) transitionsSet.getValue()).printableBitsField.charAt(bit);
-			}
-		}
-		StringBuffer line;
-		line = new StringBuffer(140);
-		line.append("         ");
-		for (int i = 1; i <= State.stateWidth; i++) {
-			line.append(i);
-			line.append(' ');
-		}
-		out.println(line);
-		line = new StringBuffer(140);
-		line.append("       ---------------------");
-		out.println(line);
-		for (row = 0; row < State.statesNb; row++) {
-			if (keepRow[row]) {
-				line = new StringBuffer(140);
-				line.append(truthTableRowNames[row]);
-				line.append(" | ");
-				for (int i = 0; i < State.stateWidth; i++) {
-					line.append(truthValues[row][i]);
-					line.append(' ');
-				}
-				out.println(line);
-			}
-		}
-		out.println("======================================================");
-		out.flush();
-		out.close();
-	}
-	catch (Throwable t) {
-		// PREMATURE improve error handling
-	}
-}
-
-void reinitializeFromComments(BufferedReader input, BufferedWriter output) {
-	String line, tab = "";
-	int cursor;
-	char c;
-	this.initializedTransitions = new HashMap(State.stateMaxValue);
-	int lineNumber = 0;
-	try {
-		while ((line = input.readLine()) != null) {
-			lineNumber++;
-			output.write(line);
-			output.write('\n');
-			if ((cursor = line.indexOf(definitionStartMarker)) != -1) {
-				// check the line format
-				boolean reachedStart = true;
-				for (int i = 0; i < cursor; i++) {
-					if (!Character.isWhitespace(c = line.charAt(i))) {
-						reachedStart = false;
-						break;
-					}
-					else {
-						tab += c;
-					}
-				}
-				if (reachedStart) {
-					while ((line = input.readLine()) != null && 
-							line.indexOf(definitionEndMarker) == -1) {
-						lineNumber++;
-						final int 
-							start = 0,
-							commentStart = 1,
-							commentFound = 2,
-							firstState = 10,
-							firstStateWS = 11,
-							implies = 20,
-							impliesWS = 21,
-							secondState = 30,
-							secondStateWS = 31, // caveat, multi-state
-							error = 99;
-						int state = start, 
-							firstStateStart = 0, firstStateEnd = 0, firstStateWhiteSpace = 0,
-							secondStateStart = 0, secondStateEnd = 0, secondStateWhiteSpace = 0;
-						char current;
-						analysis: for (int i = 0, length = line.length(); i < length; i++) {
-							current = line.charAt(i);
-							switch (state) {
-								case start:
-									if (current == '/') {
-										state = commentStart;
-									} else if (! Character.isWhitespace(current)) {
-										state = error;
-										break analysis;
-									} 
-									break;
-								case commentStart:
-									if (current == '/') {
-										state = commentFound;
-									} else {
-										state = error;
-										break analysis;
-									}
-									break;
-								case commentFound:
-									if (! Character.isWhitespace(current)) {
-										firstStateStart = firstStateEnd = i;
-										state = firstState;
-									}
-									break;
-								case firstState:
-									if (Character.isWhitespace(current)) {
-										state = firstStateWS;
-										firstStateWhiteSpace = 1;
-									} else {
-										firstStateEnd++;
-									}
-									break;
-								case firstStateWS:
-									if (current == '=') {
-										state = implies;
-									} else if (Character.isWhitespace(current)) {
-										firstStateWhiteSpace++;
-									} else {
-										state = firstState;
-										firstStateEnd += firstStateWhiteSpace + 1;
-									}
-									break;
-								case implies:
-									if (current == '>') {
-										state = impliesWS;
-									} else {
-										state = error;
-										break analysis;
-									}
-									break;
-								case impliesWS:
-									if (! Character.isWhitespace(current)) {
-										secondStateStart = secondStateEnd = i;
-										state = secondState;
-									}
-									break;
-								case secondState:
-									if (current == '/') {
-										break analysis;
-									} else if (Character.isWhitespace(current)) {
-										state = secondStateWS;
-										secondStateWhiteSpace = 1;
-									} else {
-										secondStateEnd++;
-									}
-									break;
-								case secondStateWS:
-									if (current == '/') {
-										state = secondState;
-										break analysis;
-									} else if (current == 'C') {
-										state++;
-									} else if (Character.isWhitespace(current)) {
-										secondStateWhiteSpace++;
-									} else {
-										state = secondState;
-										secondStateEnd += secondStateWhiteSpace + 1;
-									}
-									break;
-								case secondStateWS + 1:
-									if (current == '/') {
-										state = secondState;
-										break analysis;
-									} else if (current == 'H') {
-										state++;
-									} else {
-										state = secondState;
-										secondStateEnd += secondStateWhiteSpace + 2;
-									}
-									break;
-								case secondStateWS + 2:
-									if (current == '/') {
-										state = secondState;
-										break analysis;
-									} else if (current == 'E') {
-										state++;
-									} else {
-										state = secondState;
-										secondStateEnd += secondStateWhiteSpace + 3;
-									}
-									break;
-								case secondStateWS + 3:
-									if (current == '/') {
-										state = secondState;
-										break analysis;
-									} else if (current == 'C') {
-										state++;
-									} else {
-										state = secondState;
-										secondStateEnd += secondStateWhiteSpace + 4;
-									}
-									break;
-								case secondStateWS + 4:
-									if (current == '/' || current == 'K') {
-										state = secondState;
-										break analysis;
-									} else {
-										state = secondState;
-										secondStateEnd += secondStateWhiteSpace + 5;
-									}
-									break;
-									
-							}
-						}
-						if (state == error || state < secondState) {
-							System.err.println("Could not interpret comment definition"); // PREMATURE improve diagnostic
-						} else {
-							if (state > secondStateWS) {
-								secondStateEnd += (state - secondState);
-							}
-							String stateName;
-							State first, second;
-							if ((first = State.fromSymbolicName(
-										stateName = line.substring(firstStateStart, firstStateEnd + 1)))
-									== null) {
-								System.err.println("Could not find state: " + stateName); // PREMATURE improve diagnostic
-							}
-							if ((second = State.fromSymbolicName(
-										stateName = line.substring(secondStateStart, secondStateEnd + 1)))
-									== null) {
-								System.err.println("Could not find state: " + stateName); // PREMATURE improve diagnostic
-							}
-							if (first != null && second != null) {
-								if (this.initializedTransitions.get(first) != null) {
-									System.err.println("Line " + lineNumber + ": Skipping duplicate entry for state: " + first); // PREMATURE improve diagnostic
-								} else {
-									this.initializedTransitions.put(first, second);
-								}
-							}
-						}
-						output.write(line);
-						output.write('\n');
-					}
-					Iterator firsts = State.symbolicStates();
-					State first;
-					while (firsts.hasNext()) {
-						first = (State) firsts.next();
-						if (this.initializedTransitions.get(first) == null) {
-								System.err.println("Adding missing transition for state: " + first);
-								output.write(tab);
-								output.write("// ");
-								output.write(first.toString());
-								output.write(" => start\t\t CHECK\n");
-						}
-					}
-				}
-				output.write(tab + definitionEndMarker + "\n");
-			}
-			if (line != null && (cursor = line.indexOf(initializerStartMarker)) != -1) {
-				// check the line format
-				boolean reachedStart = true;
-				tab = "";
-				for (int i = 0; i < cursor; i++) {
-					if (!Character.isWhitespace(c = line.charAt(i))) {
-						reachedStart = false;
-						break;
-					}
-					else {
-						tab += c;
-					}
-				}
-				if (reachedStart) {
-					while ((line = input.readLine()) != null && 
-							line.indexOf(initializerEndMarker) == -1) {
-						// loop
-					}
-					SortedMap sorted = new TreeMap(this.initializedTransitions);
-					Iterator transitions = sorted.entrySet().iterator();
-					Map.Entry transition;
-					while (transitions.hasNext()) {
-						transition = (Map.Entry) transitions.next();
-						output.write(tab);
-						output.write('{');
-						output.write(((State)transition.getKey()).hexString);
-						output.write(',');
-						output.write(((State)transition.getValue()).hexString);
-						output.write("},");
-						output.write('\n');
-					}
-					output.write(tab + initializerEndMarker + "\n");
-				}
-			}
-		}
-		output.flush();
-	} catch (IOException e) {
-		throw new RuntimeException(e);
-	}
-}
-
-void reinitializeFromComputedValues(BufferedReader input, BufferedWriter output,
-		State[] consideredStates) {
-	String line, tab = "";
-	int cursor;
-	char c;
-	State result;
-	try {
-		while ((line = input.readLine()) != null) {
-			output.write(line);
-			output.write('\n');
-			if ((cursor = line.indexOf(definitionStartMarker)) != -1) {
-				// check the line format
-				boolean reachedStart = true;
-				for (int i = 0; i < cursor; i++) {
-					if (!Character.isWhitespace(c = line.charAt(i))) {
-						reachedStart = false;
-						break;
-					}
-					else {
-						tab += c;
-					}
-				}
-				if (reachedStart) {
-					while ((line = input.readLine()) != null && 
-							line.indexOf(definitionEndMarker) == -1) {
-						// loop
-					}
-					int i, length;
-					for (i = 0, length = consideredStates.length; i < length; i++) {
-						output.write(tab);
-						output.write("// ");
-						output.write(consideredStates[i].name);
-						output.write(" => ");
-						output.write(
-							(result = (State) this.computedTransitions.get(consideredStates[i])).name);
-						if (!result.symbolic ||
-								result != this.initializedTransitions.get(consideredStates[i])) {
-							output.write("\t\t CHECK");
-						}
-						output.write('\n');
-					}
-					output.write(tab + definitionEndMarker + "\n");
-				}
-			}
-			if (line != null && (cursor = line.indexOf(initializerStartMarker)) != -1) {
-				// check the line format
-				boolean reachedStart = true;
-				tab = "";
-				for (int i = 0; i < cursor; i++) {
-					if (!Character.isWhitespace(c = line.charAt(i))) {
-						reachedStart = false;
-						break;
-					}
-					else {
-						tab += c;
-					}
-				}
-				if (reachedStart) {
-					while ((line = input.readLine()) != null && 
-							line.indexOf(initializerEndMarker) == -1) {
-						// loop
-					}
-					int i, length;
-					for (i = 0, length = consideredStates.length; i < length; i++) {
-						output.write(tab);
-						output.write('{');
-						output.write(consideredStates[i].hexString);
-						output.write(',');
-						output.write(
-							((State) this.computedTransitions.get(consideredStates[i])).hexString);
-						output.write("},");
-						output.write('\n');
-					}
-					output.write(tab + initializerEndMarker + "\n");
-				}
-			}
-		}
-		output.flush();
-	} catch (IOException e) {
-		throw new RuntimeException(e);
-	}
-}
-int test() {
-	Iterator transitions = this.initializedTransitions.entrySet().iterator();
-	State input, expectedOutput, effectiveOutput;
-	Map.Entry transition;
-	this.failuresNb = 0; // reset
-	while (transitions.hasNext()) {
-		transition = (Map.Entry) transitions.next();
-		input = (State) transition.getKey();
-		expectedOutput = (State) transition.getValue();
-		effectiveOutput = ((UnconditionalFlowInfoTestHarness) 
-			output(UnconditionalFlowInfoTestHarness.
-				testUnconditionalFlowInfo(input), 
-					TestLocalVariableBinding.local0)).asState();
-		if (effectiveOutput != expectedOutput) {
-			fail();
-			System.out.println("\t\t" + input.printableBitsField + 
-				" => " + effectiveOutput.printableBitsField + 
-				" instead of: " + expectedOutput.printableBitsField);
-		}
-	}
-	transitions = this.initializedTransitions.entrySet().iterator();
-	while (transitions.hasNext()) {
-		transition = (Map.Entry) transitions.next();
-		input = (State) transition.getKey();
-		expectedOutput = (State) transition.getValue();
-		effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-				output(UnconditionalFlowInfoTestHarness.
-					testUnconditionalFlowInfo(input, 64), 
-						TestLocalVariableBinding.local64)).asState(64);
-		if (effectiveOutput != expectedOutput) {
-			fail();
-			System.out.println("\t\t" + input.printableBitsField + 
-				" => " + effectiveOutput.printableBitsField + 
-				" (64) instead of: " + expectedOutput.printableBitsField);
-		}
-		if (input == State.start) {
-			effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-				output(UnconditionalFlowInfoTestHarness.
-					testUnconditionalFlowInfo(expectedOutput),
-						TestLocalVariableBinding.local64)).asState(64);
-			if (effectiveOutput != expectedOutput) {
-				fail();
-				System.out.println("\t\t" + input.printableBitsField + 
-					" => " + effectiveOutput.printableBitsField + 
-					" (zero 64) instead of: " + expectedOutput.printableBitsField);
-			}
-		}
-	}
-	transitions = this.initializedTransitions.entrySet().iterator();
-	while (transitions.hasNext()) {
-		transition = (Map.Entry) transitions.next();
-		input = (State) transition.getKey();
-		if (input == State.start) {
-			expectedOutput = (State) transition.getValue();
-			effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-				output(UnconditionalFlowInfoTestHarness.
-					testUnconditionalFlowInfo(expectedOutput, 64),
-						TestLocalVariableBinding.local128)).asState(128);
-			if (effectiveOutput != expectedOutput) {
-				fail();
-				System.out.println("\t\t" + input.printableBitsField + 
-					" => " + effectiveOutput.printableBitsField + 
-					" (zero 128) instead of: " + expectedOutput.printableBitsField);
-			}
-		}
-	}
-	return this.failuresNb;
-}
-}
-abstract static class CreationalTransformation extends TwoDimensionalTransformation {
-CreationalTransformation(String name, byte[][] transitions) {
-	super(name, transitions);
-}
-void hydrate() {
-	if (this.computedTransitions == null) {
-		State input, output;
-		this.computedTransitions = new HashMap(State.stateMaxValue + 1);
-		for (int i = 0, length = State.states.length; i < length; i++) {
-			output = ((NullInfoRegistryTestHarness)
-				output(UnconditionalFlowInfoTestHarness.
-					testUnconditionalFlowInfo(input = State.states[i]), 
-						TestLocalVariableBinding.local0)).asState();
-			if (input.symbolic && !output.symbolic) {
-				System.err.println(this.name + " generates non-symbolic state " +
-					output + " upon entry: " + input);
-			}
-			this.computedTransitions.put(input, output);
-		}
-	}
-}
-UnconditionalFlowInfo output(UnconditionalFlowInfo input, TestLocalVariableBinding local) {
-	return output(input);
-}
-abstract UnconditionalFlowInfo output(UnconditionalFlowInfo input);
-int test() {
-	Iterator transitions = this.initializedTransitions.entrySet().iterator();
-	State input, expectedOutput, effectiveOutput;
-	Map.Entry transition;
-	this.failuresNb = 0; // reset
-	while (transitions.hasNext()) {
-		transition = (Map.Entry) transitions.next();
-		input = (State) transition.getKey();
-		expectedOutput = (State) transition.getValue();
-		effectiveOutput = ((NullInfoRegistryTestHarness) 
-			output(UnconditionalFlowInfoTestHarness.
-				testUnconditionalFlowInfo(input), 
-					TestLocalVariableBinding.local0)).asState();
-		if (effectiveOutput != expectedOutput) {
-			fail();
-			System.out.println("\t\t" + input.printableBitsField + 
-				" => " + effectiveOutput.printableBitsField + 
-				" instead of: " + expectedOutput.printableBitsField);
-		}
-	}
-	transitions = this.initializedTransitions.entrySet().iterator();
-	while (transitions.hasNext()) {
-		transition = (Map.Entry) transitions.next();
-		input = (State) transition.getKey();
-		expectedOutput = (State) transition.getValue();
-		effectiveOutput = ((NullInfoRegistryTestHarness)
-				output(UnconditionalFlowInfoTestHarness.
-					testUnconditionalFlowInfo(input, 64))).asState(64);
-		if (effectiveOutput != expectedOutput) {
-			fail();
-			System.out.println("\t\t" + input.printableBitsField + 
-				" => " + effectiveOutput.printableBitsField + 
-				" (64) instead of: " + expectedOutput.printableBitsField);
-		}
-	}
-	return this.failuresNb;
-}
-}
-public abstract static class ThreeDimensionalTransformation extends Transformation {
-ThreeDimensionalTransformation(String name) {
-	super(name);
-	this.dimension = 3;
-}
-ThreeDimensionalTransformation(String name, byte[][] transitions) {
-	super(name);
-	this.dimension = 3;
-	int length;
-	this.initializedTransitions = new HashMap(length = transitions.length);
-	State input1, input2;
-	for (int i = 0; i < length; i++) {
-		if (transitions[i].length != 3) {
-			throw new IllegalArgumentException("transitions should have three entries");
-		}
-		input1 = State.states[transitions[i][0]]; // array out of bounds exception if broken
-		input2 = State.states[transitions[i][1]];
-		Map transitionsForInput1 = (Map) this.initializedTransitions.get(input1);
-		if (transitionsForInput1 == null) {
-			transitionsForInput1 = new HashMap(length);
-			this.initializedTransitions.put(input1, transitionsForInput1);
-		}
-		if (transitionsForInput1.get(input2) != null) {
-			throw new IllegalArgumentException("duplicate entry");
-		}
-		transitionsForInput1.put(input2, State.states[transitions[i][2]]);
-	}
-}
-State[] computeOutputs(State[] inputs) {
-	Map resultAccumulator = new HashMap(State.stateMaxValue + 1);
-	hydrate(); // pre-compute all possible combinations, then cache them
-	for (int i = 0, inputsLength = inputs.length; i < inputsLength; i++) {
-		for (int i2 = 0; i2 < inputsLength; i2++) {
-			resultAccumulator.put(
-				((Map) this.computedTransitions.get(inputs[i])).get(inputs[i2]), null);
-		}
-	}
-	int length;
-	State[] result = new State[length = resultAccumulator.size()];
-	Iterator resultIterator = resultAccumulator.keySet().iterator();
-	for (int j = 0; j < length; j++) {
-		result[j] = (State) resultIterator.next();
-	}
-	return result;	
-}
-void hydrate() {
-	if (this.computedTransitions == null) {
-		State input1, input2, output;
-		this.computedTransitions = new HashMap(State.stateMaxValue + 1);
-		Map entry;
-		for (int i = 0, length = State.states.length; i < length; i++) {
-			entry = new HashMap(State.stateMaxValue + 1);
-			this.computedTransitions.put(input1 = State.states[i], entry);
-			for (int j = 0; j < length; j++) {
-				output = ((UnconditionalFlowInfoTestHarness)
-					output(UnconditionalFlowInfoTestHarness.
-						testUnconditionalFlowInfo(input1),
-						UnconditionalFlowInfoTestHarness.
-						testUnconditionalFlowInfo(input2 = State.states[j]))).asState();
-				if (input1.symbolic && input2.symbolic && !output.symbolic) {
-					System.err.println(this.name + " generates non-symbolic state " +
-						output + " upon entry: " + input1 + " + " + input2);
-				}
-				entry.put(input2, output);
-			}
-		}
-	}	
-}
-abstract UnconditionalFlowInfo output(UnconditionalFlowInfo input1, UnconditionalFlowInfo input2);
-void printDefinitions(BufferedWriter output, State[] consideredStates, String tab)
-		throws IOException {
-	int i, j, length;
-	State result;
-	for (i = 0, length = consideredStates.length; i < length; i++) {
-		for (j = 0; j < length; j++) {
-			output.write(tab);
-			output.write("// ");
-			output.write(consideredStates[i].name);
-			output.write(" + ");
-			output.write(consideredStates[j].name);
-			output.write(" => ");
-			output.write(
-				(result = (State)
-					((Map) this.computedTransitions.get(consideredStates[i])).get(consideredStates[j])).name);
-			if (!result.symbolic ||
-				result != this.initializedTransitions.get(consideredStates[i])) {
-				output.write("\t\t CHECK");
-			}
-			output.write('\n');
-		}
-	}
-}
-void printInitializers(BufferedWriter output, State[] consideredStates, String tab)
-		throws IOException {
-	int i, j, length;
-	for (i = 0, length = consideredStates.length; i < length; i++) {
-		for (j = 0; j < length; j++) {
-			output.write(tab);
-			output.write('{');
-			output.write(consideredStates[i].hexString);
-			output.write(',');
-			output.write(consideredStates[j].hexString);
-			output.write(',');
-			output.write(
-				((State)
-					((Map) this.computedTransitions.get(consideredStates[i])).get(consideredStates[j])).hexString);
-			output.write("},");
-			output.write('\n');
-		}
-				}
-}
-void printMissingEntries(BufferedWriter output, String tab) throws IOException {
-	Iterator firsts = State.symbolicStates(), seconds;
-	State first, second;
-	Map transitions;
-	while (firsts.hasNext()) {
-		first = (State) firsts.next();
-		seconds = State.symbolicStates();
-		if ((transitions = (Map) this.initializedTransitions.get(first))
-				== null) {
-			while (seconds.hasNext()) {
-				second = (State) seconds.next();
-				System.err.println("Adding missing transition for states (" + first + ", " + second + ")");
-				output.write(tab);
-				output.write("// ");
-				output.write(first.toString());
-				output.write(" + ");
-				output.write(second.toString());
-				output.write(" => start\t\t CHECK\n");
-			}
-		} else {
-			while (seconds.hasNext()) {
-				second = (State) seconds.next();
-				if (transitions.get(second) == null) {
-					System.err.println("Adding missing transition for states (" + first + ", " + second + ")");
-					output.write(tab);
-					output.write("// ");
-					output.write(first.toString());
-					output.write(" + ");
-					output.write(second.toString());
-					output.write(" => start\t\t CHECK\n");
-				}
-			}
-		}
-	}
-}
-void printTruthTables(File outputDirectory) {
-	for (int bit = 1; bit <= State.stateWidth; bit++) {
-		try {
-			String outputFileName = outputDirectory.getPath() + File.separator + this.name + "_" + bit + ".txt";
-			PrintWriter out = new PrintWriter(new FileOutputStream(
-					new File(outputFileName)));
-			System.out.println("Printing " + outputFileName);
-			out.println("======================================================");
-			out.println("Truth table for " + this.name + " null bit " + bit);
-			char truthValues[][] = new char[State.statesNb][State.statesNb];
-			int row, column;
-			for (row = 0; row < State.statesNb; row++) {
-				for (column = 0; column < State.statesNb; column++) {
-					truthValues[row][column] = '.';
-				}
-			}
-			if (false) { // checking row names
-				boolean gotProblem = false;
-				if (truthTableRowNames.length > State.statesNb) {
-					System.out.println("row names table contains too many rows");
-					gotProblem = true;
-				}
-				else if (truthTableRowNames.length < State.statesNb) {
-					System.out.println("row names table contains too few rows");
-					gotProblem = true;
-				}
-				Map check = new HashMap(State.statesNb);
-				for (row = 0; row < truthTableRowNames.length; row++) {
-					if (check.containsKey(truthTableRowNames[row])) {
-						System.out.println("duplicate row: " + truthTableRowNames[row]);
-						gotProblem = true;
-					}
-					else {
-						check.put(truthTableRowNames[row], null);
-					}
-					if (row > 0 && !checkContiguity(truthTableRowNames[row - 1], truthTableRowNames[row])) {
-						gotProblem = true;
-					}
-				}
-		//		assertFalse("invalid rows table", gotProblem);
-			}
-			boolean keepRow[] = new boolean[State.statesNb], 
-				keepColumn[] = new boolean[State.statesNb];
-			Iterator i1 = this.initializedTransitions.entrySet().iterator();
-			while (i1.hasNext()) {
-				Map.Entry transitionsSet = (Map.Entry) i1.next();
-				State first = (State) transitionsSet.getKey();
-				Iterator i2 = ((Map) transitionsSet.getValue()).entrySet().iterator();
-				while (i2.hasNext()) {
-					Map.Entry transition = (Map.Entry) i2.next();
-					mark(truthValues, keepRow, keepColumn, rankForState(first),
-							rankForState((State) transition.getKey()),
-							((State) transition.getValue()).printableBitsField.charAt(bit - 1));
-				}
-			}
-			for (row = 0; row < State.statesNb; row += 2) {
-				if (keepRow[row]) {
-					keepRow[row + 1] = true;
-				}
-				else if (keepRow[row + 1]) {
-					keepRow[row] = true;
-				}
-				if (keepColumn[row]) {
-					keepColumn[row + 1] = true;
-				}
-				else if (keepColumn[row + 1]) {
-					keepColumn[row] = true;
-				}
-			}
-			StringBuffer line;
-			for (int i = 0; i < State.stateWidth; i++) {
-				line = new StringBuffer(140);
-				line.append("         ");
-				for (column = 0; column < State.statesNb; column++) {
-					if (keepColumn[column]) {
-						line.append(truthTableRowNames[column].charAt(i));
-						line.append(' ');
-					}
-				}
-				out.println(line);
-			}
-			line = new StringBuffer(140);
-			line.append("       --");
-			for (column = 0; column < State.statesNb; column++) {
-				if (keepColumn[column]) {
-					line.append('-');
-					line.append('-');
-				}
-			}
-			out.println(line);
-			for (row = 0; row < State.statesNb; row++) {
-				if (keepRow[row]) {
-					line = new StringBuffer(140);
-					line.append(truthTableRowNames[row]);
-					line.append(" | ");
-					for (column = 0; column < State.statesNb; column++) {
-						if (keepColumn[column]) {
-							line.append(truthValues[row][column]);
-							line.append(' ');
-						}
-					}
-					out.println(line);
-				}
-			}
-			out.println("======================================================");
-			out.flush();
-			out.close();
-		}
-		catch (Throwable t) {
-			// PREMATURE improve error handling
-		}
-	}
-}
-
-void mark(char truthValues[][], boolean keepRow[], boolean keepColumn[],
-		int row, int column, char value) {
-	truthValues[row][column] = value;
-	keepRow[row] = true;
-	keepColumn[column] = true;
-}
-
-void reinitializeFromComments(BufferedReader input, BufferedWriter output) {
-	String line, tab = "";
-	int cursor;
-	char c;
-	this.initializedTransitions = new HashMap(State.stateMaxValue);
-	int lineNumber = 0;
-	try {
-		while ((line = input.readLine()) != null) {
-			lineNumber++;
-			output.write(line);
-			output.write('\n');
-			if ((cursor = line.indexOf(definitionStartMarker)) != -1) {
-				// check the line format
-				boolean reachedStart = true;
-				for (int i = 0; i < cursor; i++) {
-					if (!Character.isWhitespace(c = line.charAt(i))) {
-						reachedStart = false;
-						break;
-					}
-					else {
-						tab += c;
-					}
-				}
-				if (reachedStart) {
-					while ((line = input.readLine()) != null && 
-							line.indexOf(definitionEndMarker) == -1) {
-						lineNumber++;
-						final int 
-							start = 0,
-							commentStart = 1,
-							commentFound = 2,
-							firstState = 10,
-							firstStateWS = 11,
-							plus = 20,
-							secondState = 30,
-							secondStateWS = 31,
-							implies = 40,
-							impliesWS = 41,
-							thirdState = 50,
-							thirdStateWS = 51, // caveat, multi-state
-							error = 99;
-						int state = start, 
-							firstStateStart = 0, firstStateEnd = 0, firstStateWhiteSpace = 0,
-							secondStateStart = 0, secondStateEnd = 0, secondStateWhiteSpace = 0,
-							thirdStateStart = 0, thirdStateEnd = 0, thirdStateWhiteSpace = 0;
-						char current;
-						analysis: for (int i = 0, length = line.length(); i < length; i++) {
-							current = line.charAt(i);
-							switch (state) {
-								case start:
-									if (current == '/') {
-										state = commentStart;
-									} else if (! Character.isWhitespace(current)) {
-										state = error;
-										break analysis;
-									} 
-									break;
-								case commentStart:
-									if (current == '/') {
-										state = commentFound;
-									} else {
-										state = error;
-										break analysis;
-									}
-									break;
-								case commentFound:
-									if (! Character.isWhitespace(current)) {
-										firstStateStart = firstStateEnd = i;
-										state = firstState;
-									}
-									break;
-								case firstState:
-									if (Character.isWhitespace(current)) {
-										state = firstStateWS;
-										firstStateWhiteSpace = 1;
-									} else {
-										firstStateEnd++;
-									}
-									break;
-								case firstStateWS:
-									if (current == '+') {
-										state = plus;
-									} else if (Character.isWhitespace(current)) {
-										firstStateWhiteSpace++;
-									} else {
-										state = firstState;
-										firstStateEnd += firstStateWhiteSpace + 1;
-									}
-									break;
-								case plus:
-									if (! Character.isWhitespace(current)) {
-										secondStateStart = secondStateEnd = i;
-										state = secondState;
-									}
-									break;
-								case secondState:
-									if (Character.isWhitespace(current)) {
-										state = secondStateWS;
-										secondStateWhiteSpace = 1;
-									} else {
-										secondStateEnd++;
-									}
-									break;
-								case secondStateWS:
-									if (current == '=') {
-										state = implies;
-									} else if (Character.isWhitespace(current)) {
-										secondStateWhiteSpace++;
-									} else {
-										state = secondState;
-										secondStateEnd += secondStateWhiteSpace + 1;
-									}
-									break;
-								case implies:
-									if (current == '>') {
-										state = impliesWS;
-									} else {
-										state = error;
-										break analysis;
-									}
-									break;
-								case impliesWS:
-									if (! Character.isWhitespace(current)) {
-										thirdStateStart = thirdStateEnd = i;
-										state = thirdState;
-									}
-									break;
-								case thirdState:
-									if (current == '/') {
-										break analysis;
-									} else if (Character.isWhitespace(current)) {
-										state = thirdStateWS;
-										thirdStateWhiteSpace = 1;
-									} else {
-										thirdStateEnd++;
-									}
-									break;
-								case thirdStateWS:
-									if (current == '/') {
-										state = thirdState;
-										break analysis;
-									} else if (current == 'C') {
-										state++;
-									} else if (Character.isWhitespace(current)) {
-										thirdStateWhiteSpace++;
-									} else {
-										state = thirdState;
-										thirdStateEnd += thirdStateWhiteSpace + 1;
-									}
-									break;
-								case thirdStateWS + 1:
-									if (current == '/') {
-										state = thirdState;
-										break analysis;
-									} else if (current == 'H') {
-										state++;
-									} else {
-										state = thirdState;
-										thirdStateEnd += thirdStateWhiteSpace + 2;
-									}
-									break;
-								case thirdStateWS + 2:
-									if (current == '/') {
-										state = thirdState;
-										break analysis;
-									} else if (current == 'E') {
-										state++;
-									} else {
-										state = thirdState;
-										thirdStateEnd += thirdStateWhiteSpace + 3;
-									}
-									break;
-								case thirdStateWS + 3:
-									if (current == '/') {
-										state = thirdState;
-										break analysis;
-									} else if (current == 'C') {
-										state++;
-									} else {
-										state = thirdState;
-										thirdStateEnd += thirdStateWhiteSpace + 4;
-									}
-									break;
-								case thirdStateWS + 4:
-									if (current == '/' || current == 'K') {
-										state = thirdState;
-										break analysis;
-									} else {
-										state = thirdState;
-										thirdStateEnd += thirdStateWhiteSpace + 5;
-									}
-									break;
-									
-							}
-						}
-						if (state == error || state < thirdState) {
-							System.err.println("Could not interpret comment definition"); // PREMATURE improve diagnostic
-						} else {
-							if (state > thirdStateWS) {
-								thirdStateEnd += (state - thirdState);
-							}
-							String stateName;
-							State first, second, third;
-							if ((first = State.fromSymbolicName(
-										stateName = line.substring(firstStateStart, firstStateEnd + 1)))
-									== null) {
-								System.err.println("Could not find state: " + stateName); // PREMATURE improve diagnostic
-							}
-							if ((second = State.fromSymbolicName(
-										stateName = line.substring(secondStateStart, secondStateEnd + 1)))
-									== null) {
-								System.err.println("Could not find state: " + stateName); // PREMATURE improve diagnostic
-							}
-							if ((third = State.fromSymbolicName(
-										stateName = line.substring(thirdStateStart, thirdStateEnd + 1)))
-									== null) {
-								System.err.println("Could not find state: " + stateName); // PREMATURE improve diagnostic
-							}
-							if (first != null && second != null && third != null) {
-								Map transitions;
-								if ((transitions = (Map) this.initializedTransitions.get(first)) == null) {
-									transitions = new HashMap(State.stateMaxValue + 1);
-									this.initializedTransitions.put(first, transitions);
-								}
-								if (transitions.get(second) != null) {
-									System.err.println("Line " + lineNumber + ": Skipping duplicate entry for states: (" + first
-											+ ", " + second + ")"); // PREMATURE improve diagnostic
-								} else {
-									transitions.put(second, third);
-								}
-							}
-						}
-						output.write(line);
-						output.write('\n');
-					}
-				}
-				printMissingEntries(output, tab);
-				output.write(tab + definitionEndMarker + "\n");
-			}
-			if (line != null && (cursor = line.indexOf(initializerStartMarker)) != -1) {
-				// check the line format
-				boolean reachedStart = true;
-				tab = "";
-				for (int i = 0; i < cursor; i++) {
-					if (!Character.isWhitespace(c = line.charAt(i))) {
-						reachedStart = false;
-						break;
-					}
-					else {
-						tab += c;
-					}
-				}
-				if (reachedStart) {
-					while ((line = input.readLine()) != null && 
-							line.indexOf(initializerEndMarker) == -1) {
-						// loop
-					}
-					SortedMap sortedTransitionsSet = new TreeMap(this.initializedTransitions);
-					Iterator transitionsSets = sortedTransitionsSet.entrySet().iterator();
-					Map.Entry transitionsSet;
-					while (transitionsSets.hasNext()) {
-						transitionsSet = (Map.Entry) transitionsSets.next();
-						SortedMap sortedTransitions = new TreeMap((Map) transitionsSet.getValue());
-						Iterator transitions = sortedTransitions.entrySet().iterator();
-						Map.Entry transition;
-						while (transitions.hasNext()) {
-							transition = (Map.Entry) transitions.next();
-							output.write(tab);
-							output.write('{');
-							output.write(((State)transitionsSet.getKey()).hexString);
-							output.write(',');
-							output.write(((State)transition.getKey()).hexString);
-							output.write(',');
-							output.write(((State)transition.getValue()).hexString);
-							output.write("},");
-							output.write('\n');
-						}
-					}
-					output.write(tab + initializerEndMarker + "\n");
-				}
-			}
-		}
-		output.flush();
-	} catch (IOException e) {
-		throw new RuntimeException(e);
-	}
-}
-void reinitializeFromComputedValues(BufferedReader input, BufferedWriter output,
-		State[] consideredStates) {
-	String line, tab = "";
-	int cursor;
-	char c;
-	try {
-		while ((line = input.readLine()) != null) {
-			output.write(line);
-			output.write('\n');
-			if ((cursor = line.indexOf(definitionStartMarker)) != -1) {
-				// check the line format
-				boolean reachedStart = true;
-				for (int i = 0; i < cursor; i++) {
-					if (!Character.isWhitespace(c = line.charAt(i))) {
-						reachedStart = false;
-						break;
-					}
-					else {
-						tab += c;
-					}
-				}
-				if (reachedStart) {
-					while ((line = input.readLine()) != null && 
-							line.indexOf(definitionEndMarker) == -1) {
-						// loop
-					}
-					printDefinitions(output, consideredStates, tab);
-					output.write(tab + definitionEndMarker + "\n");
-				}
-			}
-			if (line != null && (cursor = line.indexOf(initializerStartMarker)) != -1) {
-				// check the line format
-				boolean reachedStart = true;
-				tab = "";
-				for (int i = 0; i < cursor; i++) {
-					if (!Character.isWhitespace(c = line.charAt(i))) {
-						reachedStart = false;
-						break;
-					}
-					else {
-						tab += c;
-					}
-				}
-				if (reachedStart) {
-					while ((line = input.readLine()) != null && 
-							line.indexOf(initializerEndMarker) == -1) {
-						// loop
-					}
-					printInitializers(output, consideredStates, tab);
-					output.write(tab + initializerEndMarker + "\n");
-				}
-			}
-		}
-		output.flush();
-	} catch (IOException e) {
-		throw new RuntimeException(e);
-	}
-}
-int test() {
-	return test(1, false);
-}
-int test(int combinationTestsLoopsNb, boolean skipHighOrderBits) {
-	Iterator transitionsSetsIterator, transitionsIterator;
-	State input1, input2, expectedOutput, effectiveOutput;
-	Map.Entry transition, transitionsSet;
-	this.failuresNb = 0; // reset
-	this.failuresNb = 0; // reset
-	long start = 0;
-	if (combinationTestsLoopsNb > 1) {
-		start = System.currentTimeMillis();
-	}
-	for (int l = 0; l < combinationTestsLoopsNb ; l++) {
-		transitionsSetsIterator = this.initializedTransitions.entrySet().iterator();
-		while (transitionsSetsIterator.hasNext()) {
-			transitionsSet = (Map.Entry) transitionsSetsIterator.next();
-			input1 = (State) transitionsSet.getKey();
-			transitionsIterator = ((Map) transitionsSet.getValue()).
-				entrySet().iterator();
-			while (transitionsIterator.hasNext()) {
-				transition = (Map.Entry) transitionsIterator.next();
-				input2 = (State) transition.getKey();
-				expectedOutput = (State) transition.getValue();
-				effectiveOutput = ((UnconditionalFlowInfoTestHarness) output(
-						UnconditionalFlowInfoTestHarness.testUnconditionalFlowInfo(input1),
-						UnconditionalFlowInfoTestHarness.testUnconditionalFlowInfo(input2)))
-					.asState();
-				if (effectiveOutput != expectedOutput) {
-					fail();
-					System.out.println("\t\t" + input1.printableBitsField +
-						" + " + input2.printableBitsField +
-						" => " + effectiveOutput.printableBitsField + 
-						" instead of: " + expectedOutput.printableBitsField);
-				}
-			}
-		}
-	}
-	if (combinationTestsLoopsNb > 1) {
-		System.out.println(this.name + "...\t\t" + combinationTestsLoopsNb + "\t" + 
-				(System.currentTimeMillis() - start));
-	}
-	// PREMATURE optimize test (extraneous allocations and copies)
-	// PREMATURE optimize test (extraneous iterations - undup)
-	if (!skipHighOrderBits) {
-		UnconditionalFlowInfoTestHarness 
-			zero = UnconditionalFlowInfoTestHarness.
-					testUnconditionalFlowInfo(State.start),
-			left, right, left64, right64, left128, right128,
-			special = (UnconditionalFlowInfoTestHarness) zero.copy();
-			special.grow(64); // allocates one extra without adding null info
-			transitionsSetsIterator = this.initializedTransitions.entrySet().iterator();
-			while (transitionsSetsIterator.hasNext()) {
-				transitionsSet = (Map.Entry) transitionsSetsIterator.next();
-				input1 = (State) transitionsSet.getKey();
-				transitionsIterator = ((Map) transitionsSet.getValue()).
-					entrySet().iterator();
-				while (transitionsIterator.hasNext()) {
-					transition = (Map.Entry) transitionsIterator.next();
-					input2 = (State) transition.getKey();
-					expectedOutput = (State) transition.getValue();
-					left = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input1);
-					left64 = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input1, 64);
-					left128 = UnconditionalFlowInfoTestHarness.
-						testUnconditionalFlowInfo(input1, 128);
-					right = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input2);
-					right64 = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input2, 64);
-					right128 = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input2, 128);
-				if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-						output(left64, right64)).asState(64)) != 
-							expectedOutput) {
-					fail();
-					System.out.println("\t\t" + input1.printableBitsField +
-						" + " + input2.printableBitsField +
-						" => " + effectiveOutput.printableBitsField + 
-						" (64, 64) - instead of: " + expectedOutput.printableBitsField);
-				}
-				if (input1 == State.start) {
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right128, right)).asState()) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero 128, 1) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(zero, right64)).asState(64)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero, 64) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right128, right64)).asState(64)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero 128, 64) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(zero, right128)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero, 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right64, right128)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero 64, 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(special, right128)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (special zero, 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-				}
-				if (input2 == State.start) {
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(left, left128)).asState()) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (1, zero 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(left64, zero)).asState(64)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (64, zero) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(left64, left128)).asState(64)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (64, zero 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(left128, zero)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (128, zero) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(left128, left64)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (128, zero 64) - instead of: " + expectedOutput.printableBitsField);
-					}
-				}
-			}
-		}
-	}
-	return this.failuresNb;
-}
-}
-
-public abstract static class SymmetricalThreeDimensionalTransformation 
-		extends ThreeDimensionalTransformation{
-SymmetricalThreeDimensionalTransformation(String name, byte[][] transitions) {
-	super(name);
-	int length;
-	this.initializedTransitions = new HashMap((length = transitions.length) * 2 - 1);
-	State input1, input2;
-	for (int i = 0; i < length; i++) {
-		if (transitions[i].length != 3) {
-			throw new IllegalArgumentException("transitions should have three entries");
-		}
-		if (transitions[i][0] <= transitions[i][1]) {
-			input1 = State.states[transitions[i][0]]; // array out of bounds exception if broken
-			input2 = State.states[transitions[i][1]];
-		}
-		else {
-			input1 = State.states[transitions[i][1]];
-			input2 = State.states[transitions[i][0]];
-		}
-		Map transitionsForInput1 = (Map) this.initializedTransitions.get(input1);
-		if (transitionsForInput1 == null) {
-			transitionsForInput1 = new HashMap(length);
-			this.initializedTransitions.put(input1, transitionsForInput1);
-		}
-		if (transitionsForInput1.get(input2) != null) {
-			throw new IllegalArgumentException("duplicate entry");
-		}
-		transitionsForInput1.put(input2, State.states[transitions[i][2]]);
-	}
-}
-void hydrate() {
-	super.hydrate();
-	checkSymmetry(this.computedTransitions);
-}
-private void checkSymmetry(Map map) {
-	State input1, input2, result;
-	Map.Entry entry1, entry2;
-	Map transition;
-	Iterator transitions1 = map.entrySet().iterator(), transitions2;
-	while (transitions1.hasNext()) {
-		entry1 = (Map.Entry) transitions1.next();
-		input1 = (State) entry1.getKey();
-		transition = (Map) entry1.getValue();
-		transitions2 = transition.entrySet().iterator();
-		while (transitions2.hasNext()) {
-			entry2 = (Map.Entry) transitions2.next();
-			input2 = (State) entry2.getKey();
-			result = (State) entry2.getValue();
-			if (result != ((Map) map.get(input2)).get(input1) && input1.symbolic && input2.symbolic) {
-				System.err.println("symmetry mismatch: " + input1 + " + " +
-						input2 + " -> " + result + "/" + ((Map) map.get(input2)).get(input1));
-			}
-		}
-	}
-}
-void mark(char truthValues[][], boolean keepRow[], boolean keepColumn[],
-		int row, int column, char value) {
-	truthValues[row][column] = truthValues[column][row] = value;
-	keepRow[row] = true;
-	keepColumn[column] = true;
-	keepRow[column] = true;
-	keepColumn[row] = true;
-}
-void printDefinitions(BufferedWriter output, State[] consideredStates, String tab)
-		throws IOException {
-	// only difference with parent is that we print only half of possible 
-	// combinations
-	int i, j, length;
-	State result;
-	for (i = 0, length = consideredStates.length; i < length; i++) {
-		for (j = i; j < length; j++) {
-			output.write(tab);
-			output.write("// ");
-			output.write(consideredStates[i].name);
-			output.write(" + ");
-			output.write(consideredStates[j].name);
-			output.write(" => ");
-			output.write(
-				(result = (State)
-					((Map) this.computedTransitions.get(consideredStates[i])).get(consideredStates[j])).name);
-			if (!result.symbolic ||
-				result != this.initializedTransitions.get(consideredStates[i])) {
-				output.write("\t\t CHECK");
-			}
-			output.write('\n');
-		}
-	}
-}
-void printInitializers(BufferedWriter output, State[] consideredStates, String tab)
-		throws IOException {
-	// only difference with parent is that we print only half of possible 
-	// combinations
-	int i, j, length;
-	for (i = 0, length = consideredStates.length; i < length; i++) {
-		for (j = i; j < length; j++) {
-			output.write(tab);
-			output.write('{');
-			output.write(consideredStates[i].hexString);
-			output.write(',');
-			output.write(consideredStates[j].hexString);
-			output.write(',');
-			output.write(
-				((State)
-					((Map) this.computedTransitions.get(consideredStates[i])).get(consideredStates[j])).hexString);
-			output.write("},");
-			output.write('\n');
-		}
-	}
-}
-void printMissingEntries(BufferedWriter output, String tab) throws IOException {
-	Iterator firsts = State.symbolicStates(), seconds;
-	State first, second;
-	while (firsts.hasNext()) {
-		first = (State) firsts.next();
-		seconds = State.symbolicStates();
-		while (seconds.hasNext()) {
-			second = (State) seconds.next();
-			if (!checkPair(first, second)) {
-				addPair(first, second);
-				System.err.println("Adding missing transition for states (" + first + ", " + second + ")");
-				output.write(tab);
-				output.write("// ");
-				output.write(first.toString());
-				output.write(" + ");
-				output.write(second.toString());
-				output.write(" => start\t\t CHECK\n");
-			}
-		}
-	}
-}
-private boolean checkPair(State s1, State s2) {
-	Map transitions;
-	if ((transitions = (Map) this.initializedTransitions.get(s1)) != null) {
-		if (transitions.get(s2) != null) {
-			return true;
-		}
-	}
-	if ((transitions = (Map) this.initializedTransitions.get(s2)) != null) {
-		if (transitions.get(s1) != null) {
-			return true;
-		}
-	}
-	return false;
-}
-private void addPair(State s1, State s2) {
-	Map transitions;
-	if ((transitions = (Map) this.initializedTransitions.get(s1)) == null) {
-		transitions = new HashMap();
-		this.initializedTransitions.put(s1, transitions);
-	}
-	transitions.put(s2, s2); // dummy, non null value
-}
-// PREMATURE factorize upward
-int test(int combinationTestsLoopsNb, boolean skipHighOrderBits) {
-	Iterator transitionsSetsIterator, transitionsIterator;
-	State input1, input2, expectedOutput, effectiveOutput;
-	Map.Entry transition, transitionsSet;
-	this.failuresNb = 0; // reset
-	this.failuresNb = 0; // reset
-	long start = 0;
-	if (combinationTestsLoopsNb > 1) {
-		start = System.currentTimeMillis();
-	}
-	for (int l = 0; l < combinationTestsLoopsNb ; l++) {
-		transitionsSetsIterator = this.initializedTransitions.entrySet().iterator();
-		while (transitionsSetsIterator.hasNext()) {
-			transitionsSet = (Map.Entry) transitionsSetsIterator.next();
-			input1 = (State) transitionsSet.getKey();
-			transitionsIterator = ((Map) transitionsSet.getValue()).
-				entrySet().iterator();
-			while (transitionsIterator.hasNext()) {
-				transition = (Map.Entry) transitionsIterator.next();
-				input2 = (State) transition.getKey();
-				expectedOutput = (State) transition.getValue();
-				effectiveOutput = ((UnconditionalFlowInfoTestHarness) output(
-						UnconditionalFlowInfoTestHarness.testUnconditionalFlowInfo(input1),
-						UnconditionalFlowInfoTestHarness.testUnconditionalFlowInfo(input2)))
-					.asState();
-				if (effectiveOutput != expectedOutput) {
-					fail();
-					System.out.println("\t\t" + input1.printableBitsField +
-						" + " + input2.printableBitsField +
-						" => " + effectiveOutput.printableBitsField + 
-						" instead of: " + expectedOutput.printableBitsField);
-				}
-				effectiveOutput = ((UnconditionalFlowInfoTestHarness) output(
-						UnconditionalFlowInfoTestHarness.testUnconditionalFlowInfo(input2),
-						UnconditionalFlowInfoTestHarness.testUnconditionalFlowInfo(input1)))
-					.asState();
-				if (effectiveOutput != expectedOutput) {
-					fail();
-					System.out.println("\t\t" + input2.printableBitsField +
-						" + " + input1.printableBitsField +
-						" => " + effectiveOutput.printableBitsField + 
-						" instead of: " + expectedOutput.printableBitsField);
-				}
-			}
-		}
-	}
-	if (combinationTestsLoopsNb > 1) {
-		System.out.println(this.name + "...\t\t" + combinationTestsLoopsNb + "\t" + 
-				(System.currentTimeMillis() - start));
-	}
-	// PREMATURE optimize test (extraneous allocations and copies)
-	// PREMATURE optimize test (extraneous iterations - undup)
-	if (!skipHighOrderBits) {
-		UnconditionalFlowInfoTestHarness 
-			zero = UnconditionalFlowInfoTestHarness.
-					testUnconditionalFlowInfo(State.start),
-			right, left64, right64, right128;
-			transitionsSetsIterator = this.initializedTransitions.entrySet().iterator();
-			while (transitionsSetsIterator.hasNext()) {
-				transitionsSet = (Map.Entry) transitionsSetsIterator.next();
-				input1 = (State) transitionsSet.getKey();
-				transitionsIterator = ((Map) transitionsSet.getValue()).
-					entrySet().iterator();
-				while (transitionsIterator.hasNext()) {
-					transition = (Map.Entry) transitionsIterator.next();
-					input2 = (State) transition.getKey();
-					expectedOutput = (State) transition.getValue();
-					left64 = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input1, 64);
-					right = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input2);
-					right64 = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input2, 64);
-					right128 = UnconditionalFlowInfoTestHarness.
-							testUnconditionalFlowInfo(input2, 128);
-				if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-						output(left64, right64)).asState(64)) != 
-							expectedOutput) {
-					fail();
-					System.out.println("\t\t" + input1.printableBitsField +
-						" + " + input2.printableBitsField +
-						" => " + effectiveOutput.printableBitsField + 
-						" (64, 64) - instead of: " + expectedOutput.printableBitsField);
-				}
-				if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-						output(right64, left64)).asState(64)) != 
-							expectedOutput) {
-					fail();
-					System.out.println("\t\t" + input2.printableBitsField +
-						" + " + input1.printableBitsField +
-						" => " + effectiveOutput.printableBitsField + 
-						" (64, 64) - instead of: " + expectedOutput.printableBitsField);
-				}
-				if (input1 == State.start) {
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right128, right)).asState()) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero 128, 1) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(zero, right64)).asState(64)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero, 64) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right128, right64)).asState(64)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero 128, 64) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(zero, right128)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero, 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right64, right128)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input1.printableBitsField +
-							" + " + input2.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (zero 64, 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right, right128)).asState()) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input2.printableBitsField +
-							" + " + input1.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (1, zero 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right64, zero)).asState(64)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input2.printableBitsField +
-							" + " + input1.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (64, zero) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right64, right128)).asState(64)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input2.printableBitsField +
-							" + " + input1.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (64, zero 128) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right128, zero)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input2.printableBitsField +
-							" + " + input1.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (128, zero) - instead of: " + expectedOutput.printableBitsField);
-					}
-					if ((effectiveOutput = ((UnconditionalFlowInfoTestHarness)
-							output(right128, right64)).asState(128)) != expectedOutput) {
-						fail();
-						System.out.println("\t\t" + input2.printableBitsField +
-							" + " + input1.printableBitsField +
-							" => " + effectiveOutput.printableBitsField + 
-							" (128, zero 64) - instead of: " + expectedOutput.printableBitsField);
-					}
-				}
-			}
-		}
-	}
-	return this.failuresNb;
-}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceTest.java
deleted file mode 100644
index 8e8ef7f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NullReferenceTest.java
+++ /dev/null
@@ -1,8710 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import junit.framework.Test;
-
-/* See also NullReferenceImplTests for low level, implementation dependent 
- * tests. */
-public class NullReferenceTest extends AbstractRegressionTest {
-
-public NullReferenceTest(String name) { 
-    super(name);
-}
-
-	// Static initializer to specify tests subset using TESTS_* static variables
-  	// All specified tests which does not belong to the class are skipped...
-  	// Only the highest compliance level is run; add the VM argument
-  	// -Dcompliance=1.4 (for example) to lower it if needed
-  	static {
-//    	TESTS_NAMES = new String[] { "test011" };
-//    	TESTS_NUMBERS = new int[] { 561 };   
-//    	TESTS_NUMBERS = new int[] { 2999 };   
-//    	TESTS_RANGE = new int[] { 2050, -1 }; 
-//  	TESTS_RANGE = new int[] { 1, 2049 }; 
-//  	TESTS_RANGE = new int[] { 449, 451 }; 
-//    	TESTS_RANGE = new int[] { 900, 999 }; 
-  	}
-
-public static Test suite() {
-    return buildAllCompliancesTestSuite(testClass());
-}
-  
-public static Class testClass() {
-    return NullReferenceTest.class;
-}
-
-// Augment problem detection settings
-protected Map getCompilerOptions() {
-    Map defaultOptions = super.getCompilerOptions();
-//    defaultOptions.put(CompilerOptions.OPTION_ReportNullReference, CompilerOptions.WARNING);
-    defaultOptions.put(CompilerOptions.OPTION_ReportNullReference, CompilerOptions.ERROR);
-	defaultOptions.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-//    defaultOptions.put(CompilerOptions.OPTION_ReportNoEffectAssignment, CompilerOptions.WARNING);
-    return defaultOptions;
-}
-  
-// null analysis -- simple case for local
-public void test0001_simple_local() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			  "public class X {\n" + 
-			  "  void foo() {\n" + 
-			  "    Object o = null;\n" + 
-			  "    o.toString();\n" + 
-			  "  }\n" + 
-			  "}\n"},
-	    "----------\n" + 
-	    "1. ERROR in X.java (at line 4)\n" + 
-	    "	o.toString();\n" + 
-	    "	^\n" + 
-	    "The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-	    "----------\n");
-}
-  
-// null analysis -- simple case for field
-// the current design leaves fields out of the analysis altogether
-public void test0002_simple_field() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  void foo() {\n" + 
-			"    o = null;\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-	""
-//      "----------\n" + 
-//      "1. ERROR in X.java (at line 5)\n" + 
-//      "	o.toString();\n" + 
-//      "	^\n" + 
-//      "The field o is likely null; it was either set to null or checked for null when last used\n" + 
-//      "----------\n"
-	);
-}
-
-// null analysis -- simple case for parameter
-public void test0003_simple_parameter() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = null;\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- final local
-public void test0004_final_local() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" +        
-			"    final Object o = null;\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- final local
-public void test0005_final_local() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" +        
-			"    final Object o;\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The local variable o may not have been initialized\n" +
-			// hides the null related message, but complains once, which is good
-		"----------\n");
-}
-
-// null analysis -- final local
-public void test0006_final_local() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" +        
-			"    final Object o = null;\n" + 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
- 
-// null analysis -- local with member
-public void test0007_local_with_member() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"  Object m;\n" + 
-			"  void foo() {\n" +        
-			"    X x = null;\n" + 
-			"    x.m.toString();\n" + // complain 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	x.m.toString();\n" + 
-		"	^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- local with member
-public void test0008_local_with_member() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"  Object m;\n" + 
-			"  void foo() {\n" +        
-			"    X x = null;\n" + 
-			"    System.out.println(x.m);\n" + // complain 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	System.out.println(x.m);\n" + 
-		"	                   ^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- local with member
-public void test0009_local_with_member() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"  Object m;\n" + 
-			"  void foo(X x) {\n" +        
-			"    x.m.toString();\n" + // quiet
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- field
-public void test0010_field_with_method_call() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  void foo() {\n" + 
-			"    o = null;\n" + 
-			"    bar();\n" + // defuses null by side effect
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"  void bar() {\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- field
-public void test0011_field_with_method_call() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  static Object o;\n" + 
-			"  void foo() {\n" + 
-			"    o = null;\n" + 
-			"    bar();\n" + // defuses null by side effect
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"  static void bar() {\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- field
-public void test0012_field_with_method_call() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  void foo() {\n" + 
-			"    o = null;\n" + 
-			"    bar();\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"  static void bar() {\n" + 
-			"  }\n" + 
-			"}\n"},
-		"" // still ok because the class may hold a pointer to this
-	);
-}
-
-// null analysis -- field
-public void test0013_field_with_method_call() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  static Object o;\n" + 
-			"  void foo() {\n" + 
-			"    o = null;\n" + 
-			"    bar();\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"  void bar() {\n" + 
-			"  }\n" + 
-			"}\n"},
-		"" // still ok because this may place a static call upon X
-	);
-}
-
-// null analysis -- field
-public void test0014_field_with_explicit_this_access() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  void foo() {\n" + 
-			"    o = null;\n" + 
-			"    this.o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		""
-//      "----------\n" + 
-//      "1. ERROR in X.java (at line 5)\n" + 
-//      "	this.o.toString();\n" + 
-//      "	^^^^^^\n" + 
-//      "The field o is likely null; it was either set to null or checked for null when last used\n" + 
-//      "----------\n"
-	);
-}
-
-// null analysis -- field
-public void test0015_field_with_explicit_this_access() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  void foo() {\n" + 
-			"    this.o = null;\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		""
-//      "----------\n" + 
-//      "1. ERROR in X.java (at line 5)\n" + 
-//      "	o.toString();\n" + 
-//      "	^\n" + 
-//      "The field o is likely null; it was either set to null or checked for null when last used\n" + 
-//      "----------\n"
-	);
-}
-
-// null analysis -- field
-public void test0016_field_of_another_object() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  void foo() {\n" + 
-			"    X other = new X();\n" + 
-			"    other.o = null;\n" + 
-			"    other.o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- field
-public void test0017_field_of_another_object() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  void foo() {\n" + 
-			"    X other = this;\n" + 
-			"    o = null;\n" + 
-			"    other.o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- field
-public void test0018_field_of_enclosing_object() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  public class Y {\n" + 
-			"    void foo() {\n" + 
-			"      X.this.o = null;\n" + 
-			"      X.this.o.toString();\n" + // complain
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		""
-//      "----------\n" + 
-//      "1. ERROR in X.java (at line 6)\n" + 
-//      "	X.this.o.toString();\n" + 
-//      "	^^^^^^^^\n" + 
-//      "The field o is likely null; it was either set to null or checked for null when last used\n" + 
-//      "----------\n"
-	);
-}
-
-// null analysis -- fields
-// check that fields that are protected against concurrent access
-// behave as locals when no call to further methods can affect them
-public void test0019_field_synchronized() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  public synchronized void foo() {\n" +        
-			"    o = null;\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"  void bar() {/* */}\n" +        
-			"}\n"},
-		""
-//      "----------\n" + 
-//      "1. ERROR in X.java (at line 5)\n" + 
-//      "	o.toString();\n" + 
-//      "	^\n" + 
-//      "The field o is likely null; it was either set to null or checked for null when last used\n" + 
-//      "----------\n" 
-	);
-}
-
-// null analysis -- field
-// check that final fields behave as locals despite calls to further 
-// methods
-public void test0020_final_field() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  final Object o = null;\n" + 
-			"  public synchronized void foo() {\n" +        
-			"    bar();\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"  void bar() {/* */}\n" +        
-			"}\n"},
-		""
-//      "----------\n" + 
-//      "1. ERROR in X.java (at line 5)\n" + 
-//      "	o.toString();\n" + 
-//      "	^\n" + 
-//      "The field o is likely null; it was either set to null or checked for null when last used\n" + 
-//      "----------\n" 
-	);
-}
-
-// null analysis -- field
-public void test0021_final_field() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  final Object o = null;\n" + 
-			"  X () {\n" +        
-			"    bar();\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"  void bar() {/* */}\n" +        
-			"}\n"},
-		""
-//      "----------\n" + 
-//      "1. ERROR in X.java (at line 5)\n" + 
-//      "	o.toString();\n" + 
-//      "	^\n" + 
-//      "The field o is likely null; it was either set to null or checked for null when last used\n" + 
-//      "----------\n" 
-	);
-}
-
-// null analysis -- field
-public void test0022_final_field() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  final Object o = new Object();\n" + 
-			"  X () {\n" +        
-			"    bar();\n" + 
-			"    if (o == null) { /* empty */ }\n" + 
-			"  }\n" + 
-			"  void bar() {/* */}\n" +        
-			"}\n"},
-		""
-//      "----------\n" + 
-//      "1. ERROR in X.java (at line 5)\n" + 
-//      "	if (o == null) { /* empty */ }\n" + 
-//      "	    ^\n" + 
-//      "The field o is likely non null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-//      "----------\n"
-	);
-}
-
-// null analysis -- field
-public void test0023_field_assignment() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m;\n" + 
-			"  void foo(X x) {\n" + 
-			"    Object o = x.m;\n" + 
-			"    if (o == null) { /* */ };\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- field
-public void test0024_field_cast_assignment() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m;\n" + 
-			"  void foo(Object x) {\n" + 
-			"    Object o = ((X) x).m;\n" + 
-			"    if (o == null) { /* */ };\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- parameter
-public void test0025_parameter() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o.toString();\n" + // quiet: parameters have unknown value 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- suppress warnings
-public void test0026_suppress_warnings() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		Map compilerOptions = getCompilerOptions();
-		compilerOptions.put(CompilerOptions.OPTION_ReportNullReference, CompilerOptions.WARNING);
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"@SuppressWarnings(\"null\")\n" + 
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Object o = null;\n" + 
-				"    o.toString();\n" + 
-				"  }\n" + 
-				"}\n"},
-		    "", null, true, null, compilerOptions, null);
-	}
-}
-
-// null analysis -- embedded comparison
-public void test0027_embedded_comparison() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    boolean b = o != null;\n" + // shades doubts upon o 
-			"    if (b) { /* */ }\n" + 
-			"    o.toString();\n" + 		// complain
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- field
-public void test0028_field_as_initializer() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X f;\n" + 
-			"  void foo() {\n" + 
-			"    X x = f;\n" + 
-			"    if (x == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- field
-public void test0029_field_assignment() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m;\n" + 
-			"  void foo() {\n" + 
-			"    X x = null;\n" + 
-			"    x.m = new Object();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	x.m = new Object();\n" + 
-		"	^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- conditional expression
-public void test0030_conditional_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = true ? null : null;\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- conditional expression
-public void test0031_conditional_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = true ? null : new Object();\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- conditional expression
-public void test0032_conditional_expression() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = false ? null : new Object();\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- conditional expression
-public void test0033_conditional_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = (1 == 1) ? null : new Object();\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- conditional expression
-// TODO (maxime) fix - may consider simultaneous computation of expression null status
-// this case is one of those which raise the need for the simultaneous calculation of
-// the null status of an expression and the code analysis of the said expression; this
-// case is simplistic: we need a value (here, potentially null), that is *not* carried
-// by the current embodiment of the flow info; other cases are less trivial in which
-// side effects on variables could introduce errors into after the facts evaluations;
-// one possible trick would be to add a slot for this
-// other path: use a tainted unknown expression status; does not seem to cope well 
-// with o = (o ==  null ? new Object() : o)
-// TODO (maxime) https://bugs.eclipse.org/bugs/show_bug.cgi?id=133125
-public void _test0034_conditional_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean b;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = b ? null : new Object();\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- conditional expression
-public void test0035_conditional_expression() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean b;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = b ? null : new Object();\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- conditional expression
-public void test0036_conditional_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean b;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = b ? null : null;\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- autoboxing
-public void test0040_autoboxing_compound_assignment() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Integer i = null;\n" +
-				"    i += 1;\n" + 
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	i += 1;\n" + 
-			"	^\n" + 
-			"The variable i can only be null; it was either set to null or checked for null when last used\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- autoboxing
-public void test0041_autoboxing_increment_operator() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Integer i = null;\n" +
-				"    i++;\n" + // complain: this is null
-				"    ++i;\n" + // quiet (because previous step guards it)
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	i++;\n" + 
-			"	^\n" + 
-			"The variable i can only be null; it was either set to null or checked for null when last used\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- autoboxing
-public void test0042_autoboxing_literal() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Integer i = 0;\n" +
-				"    if (i == null) {};\n" + // complain: this is non null
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	if (i == null) {};\n" + 
-			"	    ^\n" + 
-			"The variable i cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- autoboxing
-public void test0043_autoboxing_literal() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Integer i = null;\n" +
-				"    System.out.println(i + 4);\n" + // complain: this is null
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	System.out.println(i + 4);\n" + 
-			"	                   ^\n" + 
-			"The variable i can only be null; it was either set to null or checked for null when last used\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- autoboxing
-// origin: AssignmentTest#test020
-public void test0044_autoboxing() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    int i = 0;\n" +
-			"    boolean b = i < 10;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- autoboxing
-// variant of 42 for
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165346
-public void test0045_autoboxing_operator() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" +
-				"    int j = 5;" + 
-				"    Integer i = 0 + j;\n" +
-				"    if (i == null) {}\n" + 
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	if (i == null) {}\n" + 
-			"	    ^\n" + 
-			"The variable i cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- array
-public void test0050_array() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static void main(String args[]) {\n" + 
-			"    args = new String[] {\"zero\"};\n" +
-			"    args[0] = null;\n" +
-			"    if (args[0] == null) {};\n" + 
-			     // quiet: we don't keep track of all array elements
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- array
-public void test0051_array() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static void main(String args[]) {\n" + 
-			"    args = null;\n" +
-			"    args[0].toString();\n" + // complain: args is null
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	args[0].toString();\n" + 
-		"	^^^^\n" + 
-		"The variable args can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- array
-public void test0052_array() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public void foo(String args[]) {\n" + 
-			"    String s = args[0];\n" +
-			"    if (s == null) {};\n" + 
-			     // quiet: we don't keep track of all array elements
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- array
-public void test0053_array() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public void foo(String args[]) {\n" + 
-			"    for (int i = 0; i < args.length; i++) { /* */}\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- method call
-public void test0061_method_call_guard() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o.toString();\n" +      // guards o from being null
-			"    if (o == null) {};\n" + // complain
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o == null) {};\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-} 
-
-// null analysis - method call
-public void test0062_method_call_isolation() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (bar(o = null)) {\n" + 
-			"      if (o == null) {/* empty */}\n" + // complain 
-			"    }\n" + 
-			"  }\n" + 
-			"  boolean bar(Object o) {\n" + 
-			"    return true;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o == null) {/* empty */}\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}   
-
-// null analysis - method call
-public void test0063_method_call_isolation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (bar(o == null ? new Object() : o)) {\n" + 
-			"      if (o == null) {/* empty */}\n" + // quiet 
-			"    }\n" + 
-			"  }\n" + 
-			"  boolean bar(Object o) {\n" + 
-			"    return true;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}   
-
-// null analysis - method call
-public void test0064_method_call_isolation() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (bar(o = new Object())) {\n" + 
-			"      if (o == null) {/* empty */}\n" + // complain 
-			"    }\n" + 
-			"  }\n" + 
-			"  boolean bar(Object o) {\n" + 
-			"    return true;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o == null) {/* empty */}\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}   
-
-// null analysis - method call
-public void test0065_method_call_invocation_target() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    (o = new Object()).toString();\n" + // quiet 
-			"  }\n" + 
-			"}\n"},
-		"");
-}   
-
-// null analysis - method call
-public void test0066_method_call_invocation_target() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    (o = null).toString();\n" + // complain 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	(o = null).toString();\n" + 
-		"	^^^^^^^^^^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}   
-
-// null analysis - method call
-public void test0067_method_call_invocation_target() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    (o = new Object()).toString();\n" + // quiet 
-			"    if (o == null)  { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o == null)  { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}  
-
-// null analysis - method call
-public void test0068_method_call_assignment() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X bar() {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  void foo(X x) {\n" + 
-			"    x = x.bar();\n" +  
-			"    if (x == null)  { /* */ }\n" + // quiet 
-			"  }\n" + 
-			"}\n"},
-		"");
-} 
-
-// null analysis -- type reference
-public void test0070_type_reference() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static void main(String args[]) {\n" + 
-			"    Class c = java.lang.Object.class;\n" +
-			"    if (c == null) {};\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (c == null) {};\n" + 
-		"	    ^\n" + 
-		"The variable c cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-public void test0080_shortcut_boolean_expressions() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o1, Object o2) {\n" + 
-			"    if (o1 != null && (o2 = o1) != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	if (o1 != null && (o2 = o1) != null) { /* */ }\n" + 
-		"	                  ^^^^^^^^^\n" + 
-		"The variable o2 cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n"
-	);
-}
-
-public void test0081_shortcut_boolean_expressions() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o1, Object o2) {\n" + 
-			"    while (o1 != null && (o2 = o1) != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	while (o1 != null && (o2 = o1) != null) { /* */ }\n" + 
-		"	                     ^^^^^^^^^\n" + 
-		"The variable o2 cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n"
-	);
-}
-
-// null analysis - shortcut boolean expression
-public void test0082_shortcut_boolean_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null || o == null) {\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	if (o == null || o == null) {\n" + 
-		"	                 ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - shortcut boolean expression
-public void test0083_shortcut_boolean_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null && o == null) {\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	if (o == null && o == null) {\n" + 
-		"	                 ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - shortcut boolean expression
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=130311
-public void test0084_shortcut_boolean_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean foo(Integer i1, Integer i2) {\n" + 
-			"    return (i1 == null && i2 == null)\n" + 
-			"      || (i1.byteValue() == i2.byteValue());\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	|| (i1.byteValue() == i2.byteValue());\n" + 
-		"	    ^^\n" + 
-		"The variable i1 may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - shortcut boolean expression
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=130311
-public void test0085_shortcut_boolean_expression() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean foo(Integer i1, Integer i2) {\n" + 
-			"    return (i1 == null & i2 == null)\n" + 
-			"      || (i1.byteValue() == i2.byteValue());\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	|| (i1.byteValue() == i2.byteValue());\n" + 
-		"	    ^^\n" + 
-		"The variable i1 may be null\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 4)\n" + 
-		"	|| (i1.byteValue() == i2.byteValue());\n" + 
-		"	                      ^^\n" + 
-		"The variable i2 may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- instanceof
-// JLS: instanceof returns false if o turns out to be null
-public void test0090_instanceof() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo (Object o) {\n" + 
-			"	if (dummy) {\n" + 
-			"	  o = null;\n" + 
-			"	}\n" + 
-			"	if (o instanceof X) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- instanceof
-public void test0091_instanceof() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo (Object o) {\n" + 
-			"	if (dummy) {\n" + 
-			"	  o = null;\n" + 
-			"	}\n" + 
-			"	if (o instanceof X) { /* */ }\n" + 
-			"	if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- instanceof
-// can only be null always yields false
-public void test0092_instanceof() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo () {\n" + 
-			"	Object o = null;\n" + 
-			"	if (o instanceof X) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	if (o instanceof X) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- instanceof
-public void test0093_instanceof() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object x) {\n" + 
-			"    if (x instanceof X) {\n" + 
-			"      if (x == null) { /* */ }\n" + // cannot happen 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (x == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable x cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- instanceof
-public void test0094_instanceof() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object x) {\n" + 
-			"    if (x instanceof X) {\n" + 
-			"      return;\n" + 
-			"    }\n" + 
-			"    if (x != null) { /* */ }\n" + 
-			// cannot decide: could be null of new Object() for example  
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- instanceof combined with conditional or
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=145202
-public void test0095_instanceof_conditional_or() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object x) {\n" + 
-			"    if (! (x instanceof String)\n" +
-			"         || x == null) {\n" + 
-			"      return;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	|| x == null) {\n" + 
-		"	   ^\n" + 
-		"The variable x cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- strings concatenation
-// JLS 15.18.1: if one of the operands is null, it is replaced by "null"
-// Note: having the diagnostic could come handy when the initialization path
-//       is non trivial; to get the diagnostic, simply put in place an
-//       extraneous call to toString() -- and remove it before releasing.
-public void test0120_strings_concatenation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  String foo(String s1, String s2) {\n" + 
-			"    if (s1 == null) { /* */ };\n" +
-			"    return s1 + s2;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- strings concatenation
-public void test0121_strings_concatenation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  String foo(String s1, String s2) {\n" + 
-			"    if (s1 == null) { /* */ };\n" +
-			"    s1 += s2;\n" + 
-			"    return s1;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- strings concatenation
-public void test0122_strings_concatenation() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  String foo(String s1) {\n" + 
-			"    if (s1 == null) { /* */ };\n" +
-			"    return s1.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	return s1.toString();\n" + 
-		"	       ^^\n" + 
-		"The variable s1 may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- strings concatenation
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127919
-// it should suffice that the return type is String to avoid
-// errors
-public void test0123_strings_concatenation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  String foo(String s, Object o, Integer i) {\n" + 
-			"    if (s == null || o == null || i == null) { /* */ };\n" +
-			"    if (bar()) {\n" +
-			"      return s + i;\n" + // quiet: i replaced by "null" if null
-			"    }\n" +
-			"    return o + s;\n" + // quiet: o replaced by "null" if null
-			"  }\n" + 
-			"  boolean bar() {\n" +
-			"    return false;\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- strings concatenation
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127919
-// variant
-public void test0124_strings_concatenation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  String foo(String s, Object o, Integer i) {\n" + 
-			"    if (s == null || o == null || i == null) { /* */ };\n" +
-			"    s += o;\n" + // quiet: o replaced by "null" if null
-			"    s += i;\n" + // quiet: i replaced by "null" if null
-			"    return s;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- strings concatenation
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127919
-// variant
-public void test0125_strings_concatenation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, Integer i) {\n" + 
-			"    System.out.println(o + (o == null ? \"\" : o.toString()));\n" + // quiet: o replaced by "null" if null
-			"    System.out.println(i + (i == null ? \"\" : i.toString()));\n" + // quiet: o replaced by "null" if null
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- strings concatenation
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=132867
-public void test0126_strings_concatenation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    System.out.println(o + \"\");\n" +
-			"    if (o != null) { /* */ };\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- strings concatenation
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=132867
-public void test0127_strings_concatenation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" +
-			"    Object o = null;\n" + 
-			"    System.out.println(o + \"\");\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- if/else
-// check that obviously unreachable code does not modify the null
-// status of a local
-// the said code is not marked as unreachable per JLS 14.21 (the rationale
-// being the accommodation for the if (constant_flag_evaluating_to_false)
-// {code...} volontary code exclusion pattern)
-public void test0300_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public void foo() {\n" +         
-			"    Object o = null;\n" + 
-			"    if (false) {\n" + 
-			"      o = new Object();\n" + // skipped 
-			"    }\n" + 
-			"    if (true) {\n" + 
-			"      //\n" + 
-			"    }\n" + 
-			"    else {\n" + 
-			"      o = new Object();\n" + // skipped
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0301_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    if (o != null) {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0302_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) throws Exception {\n" + 
-			"    if (o == null) {\n" + 
-			"      throw new Exception();\n" + 
-			"    }\n" + 
-			"    if (o != null) {\n" + // only get there if o non null
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0303_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null) {\n" + 
-			"      return;\n" + 
-			"    }\n" + 
-			"    if (o != null) {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0304_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null) {\n" + 
-			"      o.toString();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0305_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null) {\n" + 
-			"      // do nothing\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0306_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o.toString().equals(\"\")) {\n" + 
-			"      if (o == null) {\n" + // complain: could not get here 
-			"        // do nothing\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0307_if_else() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o ==  null) {\n" + 
-			"      System.exit(0);\n" + 
-			"    }\n" + 
-			"    if (o == null) {\n" + 
-			  // quiet 
-			  // a direct call to System.exit() can be recognized as such; yet,
-			  // a lot of other methods may have the same property (aka calling
-			  // System.exit() themselves.)
-			"      // do nothing\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}   
-
-// null analysis - if/else
-public void test0308_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean b;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (b) {\n" + 
-			"      o = null;\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + // complain
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}   
-
-// null analysis - if/else
-public void test0309_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean b1, b2;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (b1) {\n" + 
-			"      o = null;\n" + 
-			"    }\n" + 
-			"    if (b2) {\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + // complain
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}   
-
-// null analysis - if/else
-public void test0310_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean b1, b2;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (b1) {\n" + 
-			"      o = null;\n" + 
-			"    }\n" + 
-			"    if (b2) {\n" + 
-			"      o.toString();\n" + // complain
-			"      o.toString();\n" + // silent
-			"    }\n" + 
-			"    o.toString();\n" + // complain
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 11)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}   
-
-// null analysis - if/else
-public void test0311_if_else() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null)\n" + 
-			"      o = new Object();\n" + 
-			"    o.toString();\n" + // quiet 
-			"  }\n" + 
-			"}"	},
-		"");
-}
-
-// null analysis - if/else
-public void test0312_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    if (o == null) { /* */ }\n" + // complain 
-			"    if (o != null) { /* */ }\n" +
-			"    o.toString();\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
- 
-// null analysis - if/else
-public void test0313_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null) {\n" + // quiet 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			// complain: o set to non null iff it was null 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0314_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o != null) {\n" + // quiet 
-			"      o = null;\n" + 
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0315_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o != null) {\n" + // quiet 
-			"      o = null;\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0316_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (o == null || b) { /* */ }\n" + // quiet 
-			"    else { /* */ }\n" + 
-			"    o.toString();\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0317_if_else_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (o != null) {\n" + // quiet 
-			"      if (b) {\n" + // quiet 
-			"        o = null;\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + // quiet 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - if/else
-public void test0318_if_else_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (o != null) {\n" + // quiet 
-			"      if (b) {\n" + // quiet 
-			"        o = null;\n" + 
-			"      }\n" + 
-			"      if (o == null) { /* */ }\n" + // quiet 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - if/else
-// we do nothing to diagnose the contents of fake reachable code
-public void test0319_if_else_dead_branch() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (false) {\n" + 
-			"      o = null;\n" + 
-			"      if (o == null) { /* */ }\n" + // may have considered complaining here 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - if/else
-public void test0320_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o.toString();\n" + 
-			"    if (o == null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0321_if_else() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    Object other = new Object();\n" + 
-			"    if (b) {\n" +
-			"      other = o;\n" + 
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + // quiet 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - if/else
-public void test0322_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    o.toString();\n" + 
-			"    if (b) { /* */ }\n" + 
-			"    if (o == null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0323_if_else() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (o == null && b) {\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + // quiet 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - if/else
-public void test0324_if_else_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",				
-			"class X {\n" + 
-			"  void foo (boolean b) {\n" + 
-			"    String s = null;\n" + 
-			"    if (b) {\n" + 
-			"      if (b) {\n" + 
-			"        s = \"1\";\n" + 
-			"      } \n" + 
-			"      else {\n" + 
-			"        s = \"2\";\n" + 
-			"      }\n" + 
-			"    } \n" + 
-			"    else if (b) {\n" + 
-			"      s = \"3\"; \n" + 
-			"    } \n" + 
-			"    else {\n" + 
-			"      s = \"4\";\n" + 
-			"    }\n" + 
-			"    s.toString();\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - if/else
-public void test0325_if_else_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",				
-			"class X {\n" + 
-			"  void foo (boolean b) {\n" + 
-			"    String s = null;\n" + 
-			"    if (b) {\n" + 
-			"      if (b) {\n" + 
-			"        s = \"1\";\n" + 
-			"      } \n" + 
-			"      else {\n" + 
-			"        s = \"2\";\n" + 
-			"      }\n" + 
-			"    } \n" + 
-			"    else if (b) {\n" + 
-			"      if (b) {\n" + 
-			"        s = \"3\"; \n" + 
-			"      }\n" + 
-			"    } \n" + 
-			"    else {\n" + 
-			"      s = \"4\";\n" + 
-			"    }\n" + 
-			"    s.toString();\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 20)\n" + 
-		"	s.toString();\n" + 
-		"	^\n" + 
-		"The variable s may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-// limit: we cannot sync on external factors, even if this is a pattern
-// that is quite used
-public void test0326_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",				
-			"class X {\n" + 
-			"  void foo (boolean b) {\n" + 
-			"    String s1 = null;\n" + 
-			"    if (b) {\n" + 
-			"      s1 = \"1\";\n" + 
-			"    }\n" + 
-			"    s1.toString();\n" + // complain: can't guess if b means anything for s1 init 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	s1.toString();\n" + 
-		"	^^\n" + 
-		"The variable s1 may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-// limit: we cannot sync on external factors, even if this is a pattern
-// that is quite used
-public void test0327_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",				
-			"class X {\n" + 
-			"  void foo (String s1) {\n" + 
-			"    String s2 = null;\n" + 
-			"    if (s1 == null) {\n" + 
-			"      s1 = \"1\";\n" + 
-			"      s2 = \"2\";\n" + 
-			"    }\n" + 
-			"    s1.toString();\n" + // quiet 
-			"    s2.toString();\n" + // complain: can't guess whether s2 depends on s1 for init
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	s2.toString();\n" + 
-		"	^^\n" + 
-		"The variable s2 may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0328_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (o != null || b) {\n" +
-			"      if (b) {\n" +
-			"        o = new Object();\n" +
-			"      }\n" +
-			"    }\n" + // quiet 
-			"    else { /* */ }\n" + 
-			"    o.toString();\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0329_if_else_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (b) {\n" +
-			"      if (o != null) { /* */ }\n" + // shade doubts on o
-			"    }\n" +  
-			"    o.toString();\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-public void test0330_if_else_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (b) {\n" +
-			"      if (o == null) {\n" +
-			"        o = new Object();\n" +
-			"      }\n" +
-			"    }\n" +
-			"    o.toString();\n" + // quiet 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - if/else
-public void test0331_if_else_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o1, Object o2) {\n" + 
-			"    Object o3 = o2;\n" + 
-			"    if (o1 != null) {\n" + 
-			"      o3.toString(); // guards o3\n" + 
-			"    }\n" + 
-			"    o1 = o3;\n" + 
-			"    if (o1 != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - if/else
-public void test0332_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    o = new Object();\n" + 
-			"    if (b) {\n" +
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128014
-// invalid analysis when redundant check is done
-public void test0333_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = new Object();\n" + 
-			"    if (o != null) {\n" + // complain
-			"      o.toString();\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + // quiet asked
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128014
-// invalid analysis when redundant check is done - variant
-public void test0334_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = new Object();\n" + 
-			"    if (o != null) {\n" + // complain
-			"      o.toString();\n" + 
-			"    }\n" + 
-			"    else {\n" +
-			"      o.toString();\n" + // must complain anyway (could be quite distant from the if test)
-			"    }\n" + 
-			"    o.toString();\n" + // quiet
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-// TODO (maxime) https://bugs.eclipse.org/bugs/show_bug.cgi?id=129581
-// this is a limit of the fix for bug 128014 - calls for a nuance 
-// between potential null and tainted null
-public void _test0335_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o != null) {\n" + 
-			"      if (o != null) {\n" + // complain
-			"        o.toString();\n" + 
-			"      }\n" + 
-			"      o.toString();\n" + // quiet
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128014
-// invalid analysis when redundant check is done - variant
-public void test0336_if_else() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o != null) {\n" + 
-			"      if (o != null) {\n" + // complain
-			"        o.toString();\n" + 
-			"      }\n" + 
-			"      else {\n" +
-			"        o.toString();\n" + // must complain anyway (could be quite distant from the if test)
-			"      }\n" + 
-			"      o.toString();\n" + // quiet
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-
-// null analysis - if/else nested with correlation
-// reconsider if we implement correlation
-// TODO (maxime) https://bugs.eclipse.org/bugs/show_bug.cgi?id=128861
-public void _test0337_if_else_nested_correlation() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public int foo (Object o1, Object o2) {\n" + 
-			"    int result = 0;\n" + 
-			"    if (o1 == null && o2 != null) {\n" + 
-			"      result = -1;\n" + 
-			"    } else {\n" + 
-			"      if (o1 == null && o2 == null) {\n" + 
-			"        result = 0;\n" + 
-			"      } else {\n" + 
-			"        if (o1 != null && o2 == null) {\n" + 
-			"          result = 1;\n" + 
-			"        } else {\n" + 
-			"          int lhs = ((Y) o1).foo();  // may be null\n" + 
-			"          int rhs = ((Y) o2).foo();\n" + 
-			"          result = lhs - rhs;\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    return result;\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"abstract class Y {\n" + 
-			"  abstract int foo();\n" + 
-			"}\n" + 
-			"\n"},
-		"");
-}
-
-// null analysis - if/else nested with correlation
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128861
-// workaround
-public void test0338_if_else_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public int foo (Object o1, Object o2) {\n" + 
-			"    int result = 0;\n" + 
-			"    if (o1 == null && o2 == null) {\n" + 
-			"      result = 0;\n" + 
-			"    } else {\n" + 
-			"      if (o1 == null) {\n" + 
-			"        result = -1;\n" + 
-			"      } else {\n" + 
-			"        if (o2 == null) {\n" + 
-			"          result = 1;\n" + 
-			"        } else {\n" + 
-			"          int lhs = ((Y) o1).foo();\n" + 
-			"          int rhs = ((Y) o2).foo();\n" + 
-			"          result = lhs - rhs;\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    return result;\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"abstract class Y {\n" + 
-			"  abstract int foo();\n" + 
-			"}\n" + 
-			"\n"},
-		"");
-}
-
-// null analysis - if/else nested with unknown protection: unknown cannot protect
-public void test0339_if_else_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (o == null || b) {\n" + 
-			"      if (bar() == o) {\n" + 
-			"        o.toString();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  Object bar() {\n" + 
-			"    return new Object();\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else nested
-public void test0340_if_else_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null) {\n" + 
-			"      if (bar() == o) {\n" + 
-			"        o.toString();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  Object bar() {\n" + 
-			"    return new Object();\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else nested
-public void test0341_if_else_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o1, Object o2, boolean b) {\n" + 
-			"    if (o1 == null || b) {\n" + 
-			"      if (o1 == o2) {\n" + 
-			"        o1.toString();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	o1.toString();\n" + 
-		"	^^\n" + 
-		"The variable o1 may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - if/else nested
-public void test0342_if_else_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o1, Object o2, boolean b) {\n" + 
-			"    if (o1 == null || b) {\n" + 
-			"      if (o2 == o1) {\n" + 
-			"        o1.toString();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	o1.toString();\n" + 
-		"	^^\n" + 
-		"The variable o1 may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0401_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (o.toString() != null) {/* */}\n" +
-			      // complain: NPE
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	while (o.toString() != null) {/* */}\n" + 
-		"	       ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0402_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (o != null) {/* */}\n" + 
-			  // complain: get o null first time and forever
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	while (o != null) {/* */}\n" + 
-		"	       ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0403_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (o == null) {\n" + 
-			      // quiet: first iteration is sure to find o null, 
-			      // but other iterations may change it 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- while
-public void test0404_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (o == null) {\n" + 
-			     // quiet: first iteration is sure to find o null, 
-			     // but other iterations may change it 
-			"      if (System.currentTimeMillis() > 10L) {\n" + 
-			"        o = new Object();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- while
-public void test0405_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bar() {\n" + 
-			"    return true;\n" + 
-			"  }\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (bar() && o == null) {\n" + 
-			"      o.toString();\n" + // complain: NPE
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0406_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = null;\n" +
-			"    while (dummy || o != null) { /* */ }\n" + // o can only be null 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	while (dummy || o != null) { /* */ }\n" + 
-		"	                ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0407_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) {\n" +
-			"      o.toString();\n" +  // complain: NPE on first iteration
-			"      o = new Object();\n" +
-			"    }\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-// this test shows that, as long as we do not explore all possible
-// paths, we have to take potential initializations into account
-// even in branches that could be pruned in the first passes
-// first approximation is to stop pruning code conditioned by
-// variables
-// second approximation could still rely upon variables that are
-// never affected by the looping code (unassigned variables)
-// complete solution would call for multiple iterations in the
-// null analysis
-public void test0408_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null,\n" + 
-			"           u = new Object(),\n" + 
-			"           v = new Object();\n" + 
-			"    while (o == null) {\n" +
-			"      if (v == null) {\n" +
-			"        o = new Object();\n" +
-			"      };\n" +
-			"      if (u == null) {\n" +
-			"        v = null;\n" +
-			"      };\n" +
-			"      u = null;\n" +
-			"    }\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- while
-public void test0409_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy || (o = new Object()).equals(o)) {\n" +
-			"      o.toString();\n" +
-			"    }\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0410_while_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) {\n" + 
-			"      while (o != null) {\n" + 
-			"        o.toString();\n" + 
-			"      }\n" + 
-			"      if (System.currentTimeMillis() > 10L) {\n" + 
-			"        o = new Object();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- while
-public void test0411_while_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null,\n" + 
-			"           u = new Object(),\n" + 
-			"           v = new Object();\n" + 
-			"    while (o == null) {\n" + 
-			"      if (v == null) {\n" +
-			"        o = new Object();\n" +
-			"      };\n" +
-			"      while (o == null) {\n" +
-			"        if (u == null) {\n" +
-			"          v = null;\n" +
-			"        };\n" +
-			"        u = null;\n" +
-			"      }\n" +
-			"    }\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- while
-public void test0412_while_if_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy, other;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) {\n" +   
-			"      if (other) {\n" + 
-			"        o.toString();\n" +    
-			"      }\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0413_while_unknown_field() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object o;\n" + 
-			"  void foo(boolean dummy) {\n" + 
-			"    while (dummy) {\n" +
-			"      o = null;\n" +
-			"    }\n" +
-			"    o.toString();\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- while
-public void test0414_while_unknown_parameter() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (dummy) {\n" +
-			"      o = null;\n" + // quiet: first iteration doesn't know
-			"    }\n" +
-			"    o.toString();\n" + // complain: only get out of the loop with null
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0415_while_unknown_if_else() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" +
-			"    if (dummy) {\n" +
-			"      o = new Object();\n" +
-			"    }\n" +
-			"    while (dummy) {\n" + 
-			  // limit of the analysis: we do not correlate if and while conditions
-			"      if (o == null) {/* */}\n" + 
-			"    }\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- while
-public void test0416_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) {\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0417_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) { /* */ }\n" + // doesn't affect o
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-// origin AssignmentTest.testO22
-public void test0418_while_try() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bool() { return true; }\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (bool()) {\n" + 
-			"      try {\n" + 
-			"        if (o == null) {\n" + 
-			"          o = new Object();\n" + 
-			"        }\n" + 
-			"      } finally { /* */ }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- while
-public void test0419_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bool;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (bool) {\n" + 
-			"      o.toString();" + // complain NPE because of second iteration
-			"      o = null;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	o.toString();      o = null;\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0420_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bool;\n" + 
-			"  void foo(Object compare) {\n" + 
-			"    Object o = new Object();\n" + 
-			"    while ((o = null) == compare) {\n" + 
-			"      if (true) {\n" +
-			"        break;\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + // complain can only be null
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0421_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bool;\n" + 
-			"  void foo(Object compare) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (bool) {\n" + 
-			"      o = new Object();\n" +
-			"      o.toString();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- while
-public void test0422_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bool;\n" + 
-			"  void foo() {\n" + 
-			"    Object o;\n" + 
-			"    while (bool) {\n" + 
-			"      o = new Object();\n" +
-			"      if (o == null) { /* */ }\n" + 
-			"      o = null;\n" +
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0423_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bool;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (bool) {\n" + 
-			"      o = new Object();\n" +
-			"      if (o == null) { /* */ }\n" + 
-			"      o = null;\n" +
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0424_while_try() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (o == null) {\n" + 
-			     // quiet: first iteration is sure to find o null, 
-			     // but other iterations may change it 
-			"      try { /* */ }\n" + 
-			"      finally {\n" + 
-			"        if (b) {\n" +
-			"          o = new Object();\n" +
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- while
-public void test0425_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo(Object u) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) {\n" + 
-			"      o = u;\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0426_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o.toString();\n" + 
-			"    while (dummy) { /* */ }\n" + 
-			"    if (o == null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- while
-public void test0427_while_return() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) {\n" + 
-			"      if (o == null) {\n" +
-			"        return;\n" +
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - while
-public void test0428_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X bar() {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  void foo(X x) {\n" + 
-			"    x.bar();\n" +  
-			"    while (x != null) {\n" +
-			"      x = x.bar();\n" +  
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-} 
-
-// null analysis - while
-public void test0429_while_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo (X[] xa) {\n" + 
-			"	while (dummy) {\n" + 
-			"	  xa = null;\n" + 
-			"	  if (dummy) {\n" + 
-			"	    xa = new X[5];\n" + 
-			"	  }\n" + 
-			"	  if (xa != null) {\n" + 
-			"		int i = 0;\n" + 
-			"		while (dummy) {\n" + 
-			"		  X x = xa[i++];\n" + 
-			"		  x.toString();\n" + 
-			"		}\n" + 
-			"	  }\n" + 
-			"	}\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0430_while_for_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo (X[] xa) {\n" + 
-			"	while (dummy) {\n" + 
-			"	  xa = null;\n" + 
-			"	  if (dummy) {\n" + 
-			"	    xa = new X[5];\n" + 
-			"	  }\n" + 
-			"	  if (xa != null) {\n" + 
-			"		for (int i = 0; i < xa.length; i++) {\n" + 
-			"		  X x = xa[i];\n" + 
-			"		  x.toString();\n" + 
-			"		}\n" + 
-			"	  }\n" + 
-			"	}\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0431_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo (X x) {\n" + 
-			"	x = null;\n" + 
-			"	while (dummy) {\n" + 
-			"	  x = bar();\n" + 
-			"	  x.toString();\n" + 
-			"	}\n" + 
-			"  }\n" + 
-			"  X bar() {\n" + 
-			"	return null;\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0432_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo (X x) {\n" + 
-			"	while (dummy) {\n" + 
-			"	  x = bar();\n" + 
-			"	  x.toString();\n" + 
-			"	}\n" + 
-			"  }\n" + 
-			"  X bar() {\n" + 
-			"	return null;\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0433_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo (X x) {\n" + 
-			"	x = null;\n" +
-			"   while (dummy) {\n" + 
-			"	  x.toString();\n" + // complain and protect
-			"	  x.toString();\n" + // quiet
-			"	}\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	x.toString();\n" + 
-		"	^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - while
-// this one shows that we cannot project definitely unknown onto potentially unknown too soon
-public void test0434_while_switch_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  Object bar() {\n" + 
-			"    return new Object();\n" + 
-			"  }\n" + 
-			"  void foo(boolean b, int selector) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (b) {\n" + 
-			"      switch (selector) {\n" + 
-			"      case 0:\n" + 
-			"        o = bar();\n" + 
-			"        if (o != null) { \n" + 
-			"          return;\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0435_while_init() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  int f1;\n" + 			
-			"  X f2;\n" + 			
-			"  void foo(X x1, boolean b) {\n" + 
-			"    X x2;\n" + 
-			"    x2 = x1;\n" + 
-			"    while (b) {\n" + 
-//			"      if (x2.f1 > 0) { /* */ }\n" + 
-			"      if (x2.toString().equals(\"\")) { /* */ }\n" + 
-			"      x2 = x2.f2;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0436_while_init() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  int f1;\n" + 			
-			"  X f2;\n" + 			
-			"  void foo(X x1, boolean b) {\n" + 
-			"    X x2 = x1;\n" + 
-			"    while (b) {\n" + 
-			"      if (x2.f1 > 0) { /* */ }\n" + 
-			"      x2 = x2.f2;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0437_while_exit() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (b) {\n" + 
-			"      if (b) {\n" + 
-			"        o = new Object();\n" + 
-			"      }\n" + 
-			"      if (o != null) {\n" + 
-			"        throw new RuntimeException(); \n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-
-// null analysis - while
-public void test0438_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (o == null) { /* */ }\n" + 
-			"    o.toString();\n" + // quiet 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-} 
-
-// null analysis - while
-public void test0439_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (o == null) {\n" +
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    o.toString();\n" + // quiet 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0440_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (o == null) {\n" +
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - while
-public void test0441_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  X bar() {\n" + 
-			"    return new X();\n" + 
-			"  }\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (o == null) {\n" +
-			"      o = bar();\n" +
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - while
-public void test0442_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  boolean bar() {\n" + 
-			"    return true;\n" + 
-			"  }\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (o == null && bar()) { /* */ }\n" + 
-			"    o.toString();\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-} 
-
-// null analysis - while
-public void test0443_while_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    ext: for (int i = 0; i < 5 ; i++) {\n" + 
-			"        if (o != null) {\n" + 
-			"          break;\n" + 
-			"        }\n" + 
-			"        o = new Object();\n" + 
-			"        int j = 0;\n" + 
-			"        while (j++ < 2) {\n" + 
-			"          continue ext;\n" + 
-			"        }\n" + 
-			"        return;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0444_while_deeply_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = null;\n" + 
-			"    ext: for (int i = 0; i < 5 ; i++) {\n" + 
-			"        if (o != null) {\n" + 
-			"          break;\n" + 
-			"        }\n" +
-			"        do {\n" + 
-			"          o = new Object();\n" + 
-			"          int j = 0;\n" + 
-			"          while (j++ < 2) {\n" + 
-			"            continue ext;\n" + 
-			"          }\n" + 
-			"        } while (b);\n" + 
-			"        return;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0445_while_deeply_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = null;\n" + 
-			"    ext: for (int i = 0; i < 5 ; i++) {\n" + 
-			"        if (o != null) {\n" + 
-			"          break;\n" + 
-			"        }\n" +
-			"        do {\n" + 
-			"          // o = new Object();\n" + 
-			"          int j = 0;\n" + 
-			"          while (j++ < 2) {\n" + 
-			"            continue ext;\n" + 
-			"          }\n" + 
-			"        } while (b);\n" + 
-			"        return;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-} 
-
-// null analysis - while
-public void test0446_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    while (o == null || b) {\n" +
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - while
-public void test0447_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    while (o == null & b) {\n" +
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - while
-public void test0448_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(boolean b[]) {\n" + 
-			"    Object o = null;\n" + 
-			"    ext: for (int i = 0; i < 5 ; i++) {\n" + 
-			"        if (o != null) {\n" + 
-			"          break;\n" + 
-			"        }\n" +
-			"        while (b[1]) {\n" + 
-			"          continue ext;\n" + 
-			"        }\n" + 
-			"        while (b[2]) {\n" + 
-			"          continue ext;\n" + 
-			"        }\n" + 
-			"        while (b[3]) {\n" + 
-			"          continue ext;\n" + 
-			"        }\n" + 
-			"        while (b[4]) {\n" + 
-			"          continue ext;\n" + 
-			"        }\n" + 
-			"        while (b[5]) {\n" + 
-			"          continue ext;\n" + 
-			"        }\n" + 
-			"        while (b[6]) {\n" + 
-			"          continue ext;\n" + 
-			"        }\n" + 
-			"        return;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	if (o != null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-} 
-
-// null analysis - while
-// this series (up to 451) shows that the merge of the states
-// potential non null and potential unknown yields damages in
-// case of nested loops (unested loops still OK because we can
-// carry the definite non null property)
-public void test0449_while_nested() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object p, boolean b) {\n" + 
-			"    Object o = new Object();\n" + 
-			"    while (b) {\n" + 
-			"      while (b) {\n" + 
-			"        o = p;\n" + // now o is unknown
-			"      }\n" + 
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-public void test0450_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = new Object();\n" + 
-			"    while (b) {\n" + 
-			"      o = new Object();\n" + // o still non null
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-} 
-
-// null analysis - while
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=133131
-public void test0451_while_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = new Object();\n" + 
-			"    while (b) {\n" + 
-			"      while (b) {\n" + 
-			"        o = new Object();\n" + // o still non null
-			"      }\n" + 
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-} 
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=123399
-// variant - the bug is not specific to the do while loop
-public void _test0452_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object doubt) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (true) {\n" + 
-			"      if (o == null) {\n" +
-			"        return;\n" +
-			"      }\n" + 
-			"      o = doubt;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n"
-	);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=123399
-// variant - cannot refine the diagnostic without engaging into conditionals
-// dedicated flow context
-public void _test0453_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object doubt, boolean b) {\n" + 
-			"    Object o1 = null, o2 = null;\n" + 
-			"    while (true) {\n" + 
-			"      if (o1 == null) { /* empty */ }\n" +
-			"      if (b) {\n" +
-			"        if (o2 == null) {\n" +
-			"          return;\n" +
-			"        }\n" + 
-			"      }\n" + 
-			"      o1 = o2 = doubt;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"ERROR: complain on line 7, but not on line 5"
-	);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129122
-public void test0454_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object bar() {\n" + 
-			"    return new Object();\n" + 
-			"  }\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (true) {\n" + 
-			"      o = bar();\n" + 
-			"      if (o != null) {\n" + 
-			"        o = new Object();\n" + 
-			"      }\n" + 
-			"      o = null; // quiet pls\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		""
-	);
-}
-
-// null analysis - while
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=133131
-// variant
-public void test0455_while_nested() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = new Object();\n" + 
-			"    while (b) {\n" + 
-			"      o = new Object();\n" + // o still non null
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-} 
-
-// null analysis - while
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=134848
-// false positive after nested loop with break to explicit label
-public void test0456_while_nested_explicit_label() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (true) {\n" + 
-			"      if (o != null) {\n" + 
-			"        o.toString();\n" + 
-			"        loop: while (true) {\n" + 
-			"          break loop;\n" + 
-			"        }\n" + 
-			"        o.toString();\n" + // must not complain here 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=154995
-public void test0457_while_nested_break() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public void test(String p, String q, boolean b) {\n" + 
-			"    while (b) {\n" + 
-			"      String e = q;\n" + 
-			"      e.trim();\n" + 
-			"      while (true) {\n" + 
-			"        if (b)\n" + 
-			"          e = q;\n" + 
-			"        else\n" + 
-			"          e = null;\n" + 
-			"        if (e == null || p != null) {\n" + 
-			"          if (e != null) {\n" + // should not complain here
-			"            // Do something\n" + 
-			"          }\n" + 
-			"          break;\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis - while
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=134848
-// variant: no label yields no problem
-public void test0458_while_nested_explicit_label() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    while (true) {\n" + 
-			"      if (o != null) {\n" + 
-			"        o.toString();\n" + 
-			"        while (true) {\n" + 
-			"          break;\n" + 
-			"        }\n" + 
-			"        o.toString();\n" + // must not complain here 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-} 
-
-// null analysis -- try/finally
-public void test0500_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o = m;\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"" // because finally assigns to unknown value
-	);
-}
-
-// null analysis -- try/finally
-public void test0501_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o = null;\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" // because finally assigns to null 
-	);
-}
-
-// null analysis -- try/finally
-public void test0502_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    try {\n" + 
-			"      System.out.println();\n" + // might throw a runtime exception 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    finally { /* */ }\n" + 
-			"    o.toString();\n" + 
-			    // still OK because in case of exception this code is 
-			    // not reached
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- try/finally
-public void test0503_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    x = null;\n" + 
-			"    try {\n" + 
-			"      x = null;\n" +                // complain, already null
-			"    } finally { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	x = null;\n" + 
-		"	^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-public void test0504_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    x = null;\n" + 
-			"    try {\n" + 
-			"    } finally {\n" + 
-			"      if (x != null) { /* */ }\n" + // complain null 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (x != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// origin: AssignmentTest#test017
-// The whole issue here is whether or not to detect premature exits. We
-// follow JLS's conservative approach, which considers that the try
-// block may exit before the assignment is completed.
-// Note: conversely, without line 1, we would complain about x not being 
-//       initialized (for sure) on line 2.
-public void test0505_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" void foo(X x) {\n" + 
-			"   x = this;\n" + // 1
-			"   try {\n" + 
-			"     x = null;\n" + 
-			"   } finally {\n" + 
-			"     if (x == null) {/* */}\n" + // 2
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- try finally
-public void test0506_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try finally
-public void test0507_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o.toString();\n" +  // protect
-			"    }\n" + 
-			"    if (o == null) {\n" + // complain
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try finally
-public void test0508_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = null;" +
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o.toString();\n" +  // complain and protect
-			"      o.toString();\n" +  // quiet
-			"    }\n" + 
-			"    o.toString();\n" +  // quiet
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try finally
-public void test0509_try_finally_embedded() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o1) {\n" + 
-			"    Object o2 = null;" +
-			"    while (true) {\n" + 
-			"      // o2 = o1;\n" + 
-			"      try { /* */ }\n" + 
-			"      finally {\n" + 
-			"        o2.toString();\n" +  // complain and protect
-			"        o2.toString();\n" +  // quiet
-			"      }\n" + 
-			"      o2.toString();\n" +  // quiet
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o2.toString();\n" + 
-		"	^^\n" + 
-		"The variable o2 can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try finally
-public void test0510_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void bar() throws Exception {\n" + 
-			"    // empty\n" + 
-			"  }\n" + 
-			"  void foo(Object o, boolean b) throws Exception {\n" + 
-			"    try {\n" + 
-			"      bar();\n" + 
-			"      if (b) {\n" +
-			"        o.toString();\n" +
-			"      }\n" + 
-			"    }\n" + 
-			"    finally {\n" + 
-			"      if (o != null) {\n" + 
-			"          o.toString();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- try finally
-public void test0511_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o1, boolean b) {\n" + 
-			"    Object o2 = null;\n" +
-			"    if (b) {\n" +
-			"      o2 = new Object();\n" +
-			"    }\n" + 				// 0011
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o2 = o1;\n" + 		// 1011 
-			"    }\n" + 
-			"    o2.toString();\n" + 	// 1011 -- quiet
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- try/finally
-public void test0512_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" void foo(X x) {\n" + 
-			"   x = null;\n" +
-			"   try {\n" + 
-			"     x = new X();\n" + 
-			"   } finally {\n" + 
-			"     x.toString();\n" +
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	x.toString();\n" + 
-		"	^\n" + 
-		"The variable x may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128547
-public void test0513_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" X bar() {\n" + 
-			"   return null;\n" +
-			" }\n" +
-			" Object foo() {\n" + 
-			"   X x = null;\n" +
-			"   try {\n" + 
-			"     x = bar();\n" +
-			"     x.toString();\n" +
-			"     return x;\n" + 
-			"   } finally {\n" + 
-			"     if (x != null) {\n" +
-			"       x.toString();\n" +
-			"     }\n" +
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128547
-// embedded variant 1
-public void test0514_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" X bar() {\n" + 
-			"   return null;\n" +
-			" }\n" +
-			" Object foo() {\n" + 
-			"   X x = null;\n" +
-			"   try {\n" + 
-			"     try {\n" + 
-			"       x = bar();\n" +
-			"       x.toString();\n" +
-			"       return x;\n" + 
-			"     }\n" +
-			"     finally {\n" + 
-			"     }\n" +
-			"   }\n" + 
-			"   finally {\n" + 
-			"     if (x != null) {\n" +
-			"       x.toString();\n" +
-			"     }\n" +
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128547
-// embedded variant 2
-public void test0515_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" X bar() {\n" + 
-			"   return null;\n" +
-			" }\n" +
-			" Object foo() {\n" + 
-			"   X x = null;\n" +
-			"   try {\n" + 
-			"     try {\n" + 
-			"       x = bar();\n" +
-			"       x.toString();\n" +
-			"       return x;\n" + 
-			"     }\n" +
-			"     finally {\n" + 
-			"       System.out.println();\n" +
-			"     }\n" +
-			"   }\n" + 
-			"   finally {\n" + 
-			"     if (x != null) {\n" +
-			"       x.toString();\n" +
-			"     }\n" +
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128547
-// variant
-public void test0516_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" Object foo() {\n" + 
-			"   X x = null;\n" +
-			"   try {\n" + 
-			"     x = new X();\n" +
-			"     return x;\n" +
-			"   }\n" + 
-			"   finally {\n" + 
-			"     if (x != null) {\n" +
-			"       x.toString();\n" +
-			"     }\n" +
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		""); 
-}
-
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=132072
-// AIOOBE in null check compiling com.sun.org.apache.xalan.internal.res.XSLTErrorResources from JDK 1.5 source
-public void test0517_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" Object foo() {\n" +
-			"   String s00, s01, s02, s03, s04, s05, s06, s07, s08, s09;\n" + 
-			"   String s10, s11, s12, s13, s14, s15, s16, s17, s18, s19;\n" + 
-			"   String s20, s21, s22, s23, s24, s25, s26, s27, s28, s29;\n" + 
-			"   String s30, s31, s32, s33, s34, s35, s36, s37, s38, s39;\n" + 
-			"   String s40, s41, s42, s43, s44, s45, s46, s47, s48, s49;\n" + 
-			"   String s50, s51, s52, s53, s54, s55, s56, s57, s58, s59;\n" + 
-			"   String s60, s61, s62, s63, s64, s65, s66, s67, s68, s69;\n" + 
-			"   String s100, s101, s102, s103, s104, s105, s106, s107, s108, s109;\n" + 
-			"   String s110, s111, s112, s113, s114, s115, s116, s117, s118, s119;\n" + 
-			"   String s120, s121, s122, s123, s124, s125, s126, s127, s128, s129;\n" + 
-			"   String s130, s131, s132, s133, s134, s135, s136, s137, s138, s139;\n" + 
-			"   String s140, s141, s142, s143, s144, s145, s146, s147, s148, s149;\n" + 
-			"   String s150, s151, s152, s153, s154, s155, s156, s157, s158, s159;\n" + 
-			"   String s160, s161, s162, s163, s164, s165, s166, s167, s168, s169;\n" + 
-			"   String s200, s201, s202, s203, s204, s205, s206, s207, s208, s209;\n" + 
-			"   String s210, s211, s212, s213, s214, s215, s216, s217, s218, s219;\n" + 
-			"   String s220, s221, s222, s223, s224, s225, s226, s227, s228, s229;\n" + 
-			"   String s230, s231, s232, s233, s234, s235, s236, s237, s238, s239;\n" + 
-			"   String s240, s241, s242, s243, s244, s245, s246, s247, s248, s249;\n" + 
-			"   String s250, s251, s252, s253, s254, s255, s256, s257, s258, s259;\n" + 
-			"   String s260, s261, s262, s263, s264, s265, s266, s267, s268, s269;\n" +
-			"   X x = new X();\n" + 
-			"   try {\n" + 
-			"     return x;\n" +
-			"   }\n" + 
-			"   finally {\n" + 
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		""); 
-}
-
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=132120
-// [compiler][null] NPE batch compiling JDT/Core from HEAD
-public void test0518_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" void foo() {\n" + 
-			"   String s00, s01, s02, s03, s04, s05, s06, s07, s08, s09;\n" + 
-			"   String s10, s11, s12, s13, s14, s15, s16, s17, s18, s19;\n" + 
-			"   String s20, s21, s22, s23, s24, s25, s26, s27, s28, s29;\n" + 
-			"   String s30, s31, s32, s33, s34, s35, s36, s37, s38, s39;\n" + 
-			"   String s40, s41, s42, s43, s44, s45, s46, s47, s48, s49;\n" + 
-			"   String s50, s51, s52, s53, s54, s55, s56, s57, s58, s59;\n" + 
-			"   String s60, s61, s62, s63, s64, s65, s66, s67, s68, s69;\n" +
-			"   String s100, s101, s102, s103, s104, s105, s106, s107, s108, s109;\n" + 
-			"   String s110, s111, s112, s113, s114, s115, s116, s117, s118, s119;\n" + 
-			"   String s120, s121, s122, s123, s124, s125, s126, s127, s128, s129;\n" + 
-			"   String s130, s131, s132, s133, s134, s135, s136, s137, s138, s139;\n" + 
-			"   String s140, s141, s142, s143, s144, s145, s146, s147, s148, s149;\n" + 
-			"   String s150, s151, s152, s153, s154, s155, s156, s157, s158, s159;\n" + 
-			"   String s160, s161, s162, s163, s164, s165, s166, s167, s168, s169;\n" + 
-			"   String s200, s201, s202, s203, s204, s205, s206, s207, s208, s209;\n" + 
-			"   String s210, s211, s212, s213, s214, s215, s216, s217, s218, s219;\n" + 
-			"   String s220, s221, s222, s223, s224, s225, s226, s227, s228, s229;\n" + 
-			"   String s230, s231, s232, s233, s234, s235, s236, s237, s238, s239;\n" + 
-			"   String s240, s241, s242, s243, s244, s245, s246, s247, s248, s249;\n" + 
-			"   String s250, s251, s252, s253, s254, s255, s256, s257, s258, s259;\n" + 
-			"   String s260, s261, s262, s263, s264, s265, s266, s267, s268, s269;\n" +
-			"   X x = null;\n" +
-			"   try {\n" + 
-			"     x = new X();\n" + 
-			"   } finally {\n" + 
-			"     x.toString();\n" +
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 28)\n" + 
-		"	x.toString();\n" + 
-		"	^\n" + 
-		"The variable x may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128962
-// incorrect analysis within try finally with a constructor throwing an exception
-public void test0519_try_finally_constructor_exc() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public void foo(Y y) throws E {\n" + 
-			"    try {\n" + 
-			"      new Y();\n" + 
-			"      y.toString();\n" + // should be quiet
-			"    } finally {\n" + 
-			"      y = null;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"class Y {\n" + 
-			"  Y() throws E {\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"class E extends Exception {\n" + 
-			"  private static final long serialVersionUID = 1L;\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128962
-// incorrect analysis within try finally with a constructor throwing an exception
-// variant
-public void test0520_try_finally_constructor_exc() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public void foo(Y y) throws E { \n" + 
-			"    try { \n" + 
-			"      new Y() {\n" + 
-			"          void bar() {\n" + 
-			"              // do nothing\n" + 
-			"          }\n" + 
-			"      }; \n" + 
-			"      y.toString();\n" + 
-			"    } finally { \n" + 
-			"      y = null; \n" + 
-			"    } \n" + 
-			"  } \n" + 
-			"}\n" + 
-			"abstract class Y {\n" + 
-			"  Y() throws E { \n" + 
-			"  }\n" + 
-			"  abstract void bar();\n" + 
-			"} \n" + 
-			"class E extends Exception {\n" + 
-			"  private static final long serialVersionUID = 1L;\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=149665
-// incorrect analysis within try finally with an embedded && expression
-public void test0521_try_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X\n" + 
-			"{\n" + 
-			"  X m;\n" + 
-			"  public void foo() {\n" + 
-			"    for(int j = 0; j < 10; j++) {\n" + 
-			"      try {\n" + 
-			"        j++;\n" + 
-			"      } finally {\n" + 
-			"        X t = m;\n" + 
-			"        if( t != null && t.bar()) {\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  boolean bar() {\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=149665
-// variant
-public void test0522_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X\n" + 
-			"{\n" + 
-			"  X m;\n" + 
-			"  public void foo() {\n" + 
-			"    for(int j = 0; j < 10; j++) {\n" + 
-			"      try {\n" + 
-			"        j++;\n" + 
-			"      } finally {\n" + 
-			"        X t = null;\n" + 
-			"        if(t.bar()) {\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  boolean bar() {\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	if(t.bar()) {\n" + 
-		"	   ^\n" + 
-		"The variable t can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=149665
-// variant
-public void test0523_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X\n" + 
-			"{\n" + 
-			"  X m;\n" + 
-			"  public void foo() {\n" + 
-			"    for(int j = 0; j < 10; j++) {\n" + 
-			"      try {\n" + 
-			"        j++;\n" + 
-			"      } finally {\n" + 
-			"        X t = m;\n" + 
-			"        if(t == null ? false : (t == null ? false : t.bar())) {\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  boolean bar() {\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	if(t == null ? false : (t == null ? false : t.bar())) {\n" + 
-		"	                        ^\n" + 
-		"The variable t cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=149665
-// variant
-public void test0524_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X\n" + 
-			"{\n" + 
-			"  X m;\n" + 
-			"  public void foo() {\n" + 
-			"    for(int j = 0; j < 10; j++) {\n" + 
-			"      try {\n" + 
-			"        j++;\n" + 
-			"      } finally {\n" + 
-			"        X t = m;\n" + 
-			"        if(t != null ? false : (t == null ? false : t.bar())) {\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  boolean bar() {\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	if(t != null ? false : (t == null ? false : t.bar())) {\n" + 
-		"	                        ^\n" + 
-		"The variable t can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=150082
-public void test0525_try_finally_unchecked_exception() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X\n" + 
-			"{\n" + 
-			"  String foo(Object p) {\n" + 
-			"    String s = null;\n" + 
-			"    Object o = null;\n" + 
-			"    try {\n" + 
-			"        o = p;\n" + 
-			"        if (o == null) {\n" + 
-			"          return null;\n" + 
-			"        }\n" + 
-			"        s = o.getClass().getName();\n" + 
-			"    } catch (RuntimeException e) {\n" + 
-			"            o.toString();\n" + 
-			"            s = null;\n" + 
-			"    } finally {\n" + 
-			"      if (o != null) {\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    return s;\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\r\n" + 
-		"	o.toString();\r\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=150082
-// variant
-public void test0526_try_finally_unchecked_exception() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X\n" + 
-			"{\n" + 
-			"  String foo(Object p) {\n" + 
-			"    String s = null;\n" + 
-			"    Object o = p;\n" + 
-			"    try {\n" + 
-			"        if (o == null) {\n" +  // shades doubts upon o
-			"          return null;\n" +	// may throw a RuntimeException by spec 
-			"        }\n" + 
-			"        s = o.getClass().getName();\n" + 
-			"    } catch (RuntimeException e) {\n" + 
-			"            o.toString();\n" + 
-			"            s = null;\n" + 
-			"    } finally {\n" + 
-			"      if (o != null) {\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    return s;\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 12)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-//null analysis -- try/finally
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150082
-//variant
-public void test0527_try_finally_unchecked_exception() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X\n" + 
-			"{\n" + 
-			"  String foo(Object p) {\n" + 
-			"    String s = null;\n" + 
-			"    Object o = p;\n" + 
-			"    try {\n" + 
-			"        if (o == null) {\n" +  // shades doubts upon o
-			"          return null;\n" +	// may throw a RuntimeException by spec 
-			"        }\n" + 
-			"        s = o.getClass().getName();\n" + 
-			"    } catch (RuntimeException e) {\n" + 
-			"            o.toString();\n" + 
-			"            s = null;\n" + 
-			"    }\n" + 
-			"    return s;\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 12)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158000
-public void test0528_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    x = null;\n" + 
-			"    X y = null;\n" + 
-			"    try {\n" + 
-			"    } finally {\n" + 
-			"      if (x != null) { /* */ }\n" + // complain null 
-			"      if (y != null) { /* */ }\n" + // complain null as well 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (x != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	if (y != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable y can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158000
-public void test0529_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = null;\n" +
-			"    Object o2 = null;\n" +
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o.toString();\n" +  // complain
-			"      o2.toString();\n" + // complain
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	o2.toString();\n" + 
-		"	^^\n" + 
-		"The variable o2 can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158000
-public void test0530_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" void foo(X x) {\n" + 
-			"   x = null;\n" +
-			"   X y = null;\n" +
-			"   try {\n" + 
-			"     x = new X();\n" + 
-			"   } finally {\n" + 
-			"     x.toString();\n" +
-			"     y.toString();\n" + // complain
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	x.toString();\n" + 
-		"	^\n" + 
-		"The variable x may be null\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 9)\n" + 
-		"	y.toString();\n" + 
-		"	^\n" + 
-		"The variable y can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/finally
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158000
-public void test0531_try_finally() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" void foo() {\n" + 
-			"   X x = new X();\n" +
-			"   X y = null;\n" +
-			"   try {\n" + 
-			"   } finally {\n" + 
-			"     if (x != null) {\n" +
-			"       x.toString();\n" +
-			"     }\n" +
-			"     y.toString();\n" + // complain
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (x != null) {\n" + 
-		"	    ^\n" + 
-		"The variable x cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 10)\n" + 
-		"	y.toString();\n" + 
-		"	^\n" + 
-		"The variable y can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- try/catch
-public void test0550_try_catch() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    try {\n" + 
-			"      System.out.println();\n" +  // might throw a runtime exception 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    catch (Throwable t) {\n" + // catches everything 
-			"      return;\n" +             // gets out         
-			"    }\n" + 
-			"    o.toString();\n" +         // non null  
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis - try/catch
-public void test0551_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try {\n" + 
-			"      System.out.println();\n" + 
-			"      if (dummy) {\n" + 
-			"        o = null;\n" + 
-			"        throw new Exception();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    catch (Exception e) {\n" + 
-			"      o.toString();\n" + // complain
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-public void test0552_try_catch() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() throws Exception {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try {\n" + 
-			"      if (dummy) {\n" + 
-			"        o = null;\n" + 
-			"        throw new Exception();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    catch (Exception e) {\n" + 
-			"    }\n" + 
-			"    if (o != null) {\n" +
-			  // quiet: get out of try either through normal flow, leaves a new
-			  // object, or through Exception, leaves a null 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis - try/catch
-public void test0553_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy, other;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try {\n" + 
-			"      if (dummy) {\n" + 
-			"        if (other) {\n" + 
-			"          throw new LocalException();\n" + // may launch new exception
-			"        }\n" + 
-			"        o = null;\n" + 
-			"        throw new LocalException();\n" + // must launch new exception
-			"      }\n" + 
-			"    }\n" + 
-			"    catch (LocalException e) {\n" + 
-			"      o.toString();\n" + // complain
-			"    }\n" + 
-			"  }\n" + 
-			"  class LocalException extends Exception {\n" + 
-			"    private static final long serialVersionUID = 1L;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 15)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-public void test0554_try_catch() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) throws Exception {\n" + 
-			"    try {\n" + 
-			"      o = null;\n" + 
-			"      throwLocalException();\n" + 
-			"      throw new Exception();\n" + 
-			"    }\n" + 
-			"    catch (LocalException e) {\n" + 
-			"    }\n" + 
-			"    if (o != null) {\n" +
-			  // complain: only way to get out of try and get there is to go
-			  // through throwLocalException, after the assignment 
-			"    }\n" + 
-			"  }\n" + 
-			"  class LocalException extends Exception {\n" + 
-			"    private static final long serialVersionUID = 1L;\n" + 
-			"  }\n" + 
-			"  void throwLocalException() throws LocalException {\n" + 
-			"    throw new LocalException();\n" + 
-			"  }\n" + 
-			"}\n"},
-		""
-		// conservative flow analysis suppresses the warning
-//		"----------\n" + 
-//		"1. ERROR in X.java (at line 10)\n" + 
-//		"	if (o != null) {\n" + 
-//		"	    ^\n" + 
-//		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-//		"----------\n"
-	);
-}
-
-// null analysis - try/catch
-public void test0555_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try {\n" + 
-			"      o = null;\n" + 
-			"      throwException();\n" + 
-			"    }\n" + 
-			"    catch (Exception e) {\n" + 
-			"      o.toString();\n" + // complain NPE
-			"    }\n" + 
-			"  }\n" + 
-			"  void throwException() throws Exception {\n" + 
-			"    throw new Exception();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-public void test0556_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try {\n" + 
-			"      o = null;\n" + 
-			"      throwException();\n" + 
-			"    }\n" + 
-			"    catch (Throwable t) {\n" + 
-			"      o.toString();\n" + // complain NPE
-			"    }\n" + 
-			"  }\n" + 
-			"  void throwException() throws Exception {\n" + 
-			"    throw new Exception();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-public void test0557_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try {\n" + 
-			"      if (dummy) {\n" + 
-			"        o = null;\n" + 
-			"        throw new Exception();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    catch (Exception e) {\n" + 
-			"      o.toString();\n" + // complain NPE
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 12)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-public void test0558_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try {\n" + 
-			"      if (dummy) {\n" + 
-			"        System.out.print(0);\n" + // may thow RuntimeException 
-			"        o = null;\n" + 
-			"        throw new LocalException();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    catch (LocalException e) {\n" + // doesn't catch RuntimeException
-			"      o.toString();\n" + // complain NPE
-			"    }\n" + 
-			"  }\n" + 
-			"  class LocalException extends Exception {\n" + 
-			"    private static final long serialVersionUID = 1L;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-//		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"The variable o may be null\n" +
-		// conservative flow analysis softens the error
-		"----------\n");
-}
-
-// null analysis - try/catch
-public void test0559_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    try {\n" + 
-			"      if (dummy) {\n" + 
-			"        o = null;\n" + 
-			"        throw new SubException();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    catch (LocalException e) {\n" + // must catch SubException
-			"      o.toString();\n" + // complain NPE
-			"    }\n" + 
-			"  }\n" + 
-			"  class LocalException extends Exception {\n" + 
-			"    private static final long serialVersionUID = 1L;\n" + 
-			"  }\n" + 
-			"  class SubException extends LocalException {\n" + 
-			"    private static final long serialVersionUID = 1L;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 12)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-//		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"The variable o may be null\n" +
-		// conservative flow analysis softens the error
-		"----------\n");
-}
-
-// null analysis - try/catch
-public void test0560_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Class bar(boolean b) throws ClassNotFoundException {\n" + 
-			"    if (b) {\n" + 
-			"      throw new ClassNotFoundException();\n" + 
-			"    }\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  public Class foo(Class c, boolean b) {\n" + 
-			"    if (c != null)\n" + 
-			"      return c;\n" + 
-			"    if (b) {\n" + 
-			"      try {\n" + 
-			"        c = bar(b);\n" + 
-			"        return c;\n" + 
-			"      } catch (ClassNotFoundException e) {\n" + 
-			"      // empty\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (c == null) { // should complain: c can only be null\n" + 
-			"    }\n" + 
-			"    return c;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 19)\n" + 
-		"	if (c == null) { // should complain: c can only be null\n" + 
-		"	    ^\n" + 
-		"The variable c can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=130359
-public void test0561_try_catch_unchecked_exception() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    try {\n" + 
-			"      o = bar();\n" + 
-			"    } catch (RuntimeException e) {\n" + 
-			"      o.toString();\n" + // may be null
-			"    }\n" + 
-			"  }\n" + 
-			"  private Object bar() {\n" + 
-			"    return new Object();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=150854
-// (slightly different) variant of 561
-public void test0562_try_catch_unchecked_exception() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"import java.io.*;\n" + 
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    LineNumberReader o = null;\n" + 
-			"    try {\n" + 
-			"      o = new LineNumberReader(new FileReader(\"dummy\"));\n" + 
-			"    } catch (NumberFormatException e) {\n" + 
-			"      o.toString();\n" + // may be null
-			"    } catch (IOException e) {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=155117
-public void test0563_try_catch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public void foo(boolean b) {\n" +
-			"    Exception ex = null;\n" + 
-			"    if (b) {\n" + 
-			"      try {\n" + 
-			"        System.out.println();\n" + 
-			"        return;\n" + 
-			"      } catch (Exception e) {\n" + 
-			"        ex = e;\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    else {\n" + 
-			"      try {\n" + 
-			"        System.out.println();\n" + 
-			"        return;\n" + 
-			"      } catch (Exception e) {\n" + 
-			"        ex = e;\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (ex == null) {\n" + // complain: ex cannot be null\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 20)\n" + 
-		"	if (ex == null) {\n" + 
-		"	    ^^\n" + 
-		"The variable ex cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - try/catch
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=150854
-public void test0564_try_catch_unchecked_exception() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static Object foo() {\n" + 
-			"    Object result = null;\n" + 
-			"    try {\n" + 
-			"      result = new Object();\n" + 
-			"    } catch (Exception e) {\n" + 
-			"      result = null;\n" + 
-			"    }\n" + 
-			"    return result;\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - try/catch
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=150854
-// variant
-public void test0565_try_catch_unchecked_exception() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static Object foo() {\n" + 
-			"    Object result = null;\n" + 
-			"    try {\n" + 
-			"      result = new Object();\n" + 
-			"      result = new Object();\n" + 
-			"    } catch (Exception e) {\n" + 
-			"      result = null;\n" + 
-			"    }\n" + 
-			"    return result;\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - try/catch
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=150854
-// variant
-public void test0566_try_catch_unchecked_exception() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static Object foo(Y y) {\n" + 
-			"    Object result = null;\n" + 
-			"    try {\n" + 
-			"      while (y.next()) {\n" + 
-			"        result = y.getObject();\n" + 
-			"      }\n" + 
-			"    } catch (Exception e) {\n" + 
-			"      result = null;\n" + 
-			"    }\n" + 
-			"    return result;\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"class Y {\n" + 
-			"  boolean next() {\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"  Object getObject() {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- do while
-public void test0601_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do {/* */}\n" +
-			"    while (o.toString() != null);\n" +
-			      // complain: NPE
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	while (o.toString() != null);\n" + 
-		"	       ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- do while
-public void test0602_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do {/* */}\n" + 
-			"    while (o != null);\n" + 
-			  // complain: get o null first time and forever
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	while (o != null);\n" + 
-		"	       ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- do while
-public void test0603_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do {\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    while (o == null);\n" + 
-			      // complain: set it to non null before test, for each iteration
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	while (o == null);\n" + 
-		"	       ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- do while
-public void test0604_do_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do {\n" + 
-			"      if (System.currentTimeMillis() > 10L) {\n" + 
-			"        o = new Object();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    while (o == null);\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- do while
-public void test0605_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = null;\n" +
-			"    do {\n" +
-			"      // do nothing\n" +
-			"    }\n" + 
-			"    while (dummy || o != null);\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	while (dummy || o != null);\n" + 
-		"	                ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- do while
-public void test0606_do_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null,\n" + 
-			"           u = new Object(),\n" + 
-			"           v = new Object();\n" + 
-			"    do {\n" +
-			"      if (v == null) {\n" +
-			"        o = new Object();\n" +
-			"      };\n" +
-			"      if (u == null) {\n" +
-			"        v = null;\n" +
-			"      };\n" +
-			"      u = null;\n" +
-			"    }\n" +
-			"    while (o == null);\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- do while
-public void test0607_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do {\n" + 
-			"      o.toString();\n" + 
-			         // complain: NPE
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    while (dummy);\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- do while
-public void test0608_do_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do {\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    while (dummy);\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- do while
-public void test0609_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do { /* */ }\n" + 
-			"    while (dummy);\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - do while
-public void test0610_do_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X bar() {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  void foo(X x) {\n" + 
-			"    x.bar();\n" +  
-			"    do {\n" +
-			"      x = x.bar();\n" +  
-			"    } while (x != null);\n" + // quiet 
-			"  }\n" + 
-			"}\n"},
-		"");
-} 
-
-// null analysis - do while
-public void test0611_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  X bar() {\n" + 
-			"    return new X();\n" + 
-			"  }\n" + 
-			"  void foo(Object o) {\n" + 
-			"    do {\n" +
-			"      o = bar();\n" +
-			"    } while (o == null);\n" + 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// the problem here is that a single pass cannot know for the return
-// embedded into the if; prior approach did use the upstream flow 
-// info to catch this, but this is inappropriate in many cases (eg
-// test0606)
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=123399
-public void _test0612_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object doubt) {\n" + 
-			"    Object o = null;\n" + 
-			"    do {\n" + 
-			"      if (o == null) {\n" +
-			"        return;\n" +
-			"      }\n" + 
-			"      o = doubt;\n" + 
-			"    } while (true);\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n"
-	);
-}
-
-// null analysis - do while
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=147118
-public void test0613_do_while() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  String f;\n" + 
-			"  void foo (boolean b) {\n" +
-			"    X x = new X();\n" + 
-			"    do {\n" + 
-			"      System.out.println(x.f);\n" + 
-			"      if (b) {\n" + 
-			"        x = null;\n" + 
-			"      }\n" + 
-			"    } while (x != null);\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-} 
-
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=123399
-// variant
-public void _test0614_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object doubt) {\n" + 
-			"    Object o = null;\n" + 
-			"    exit: do {\n" + 
-			"      if (o == null) {\n" +
-			"        continue exit;\n" +
-			"      }\n" + 
-			"      o = doubt;\n" + 
-			"    } while (true);\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n"
-	);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=123399
-// variant
-public void _test0615_do_while() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object doubt) {\n" + 
-			"    Object o = null;\n" + 
-			"    do {\n" + 
-			"      if (o == null) {\n" +
-			"        throw new RuntimeException();\n" +
-			"      }\n" + 
-			"      o = doubt;\n" + 
-			"    } while (true);\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n"
-	);
-}
-
-// null analysis -- for
-public void test0701_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    for (;o.toString() != null;) {/* */}\n" +
-			      // complain: NPE
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	for (;o.toString() != null;) {/* */}\n" + 
-		"	      ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- for
-public void test0702_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    for (;o != null;) {/* */}\n" + 
-			  // complain: get o null first time and forever
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	for (;o != null;) {/* */}\n" + 
-		"	      ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- for
-public void test0703_for() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    for (;o == null;) {\n" + 
-			      // quiet: first iteration is sure to find it null, 
-			      // but other iterations may change it 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- for
-public void test0704_for() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    for (;o == null;) {\n" + 
-			     // quiet: first iteration is sure to find it null, 
-			     // but other iterations may change it 
-			"      if (System.currentTimeMillis() > 10L) {\n" + 
-			"        o = new Object();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- for
-public void test0705_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bar() {\n" + 
-			"    return true;\n" + 
-			"  }\n" + 
-			"  void foo(Object o) {\n" + 
-			"    for (;bar() && o == null;) {\n" + 
-			"      o.toString();\n" + // complain: NPE because of condition
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- for
-public void test0707_for() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    for (;o == null; o.toString()) {\n" + 
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- for
-public void test0708_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    for (;o == null; o.toString()) {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for (;o == null; o.toString()) {\n" + 
-		"	                 ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- for
-public void test0709_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    for (o.toString(); o == null;) { /* */ }\n" + // complain: protected then unchanged
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	for (o.toString(); o == null;) { /* */ }\n" + 
-		"	                   ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- for
-public void test0710_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bar() {\n" + 
-			"    return true;\n" + 
-			"  }\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = null;\n" + 
-			"    for (o.toString(); bar();) {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	for (o.toString(); bar();) {\n" + 
-		"	     ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- for
-public void test0711_for() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Object t[] = null;\n" + 
-				"    for (Object o : t) {/* */}\n" +
-				      // complain: NPE
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	for (Object o : t) {/* */}\n" + 
-			"	                ^\n" + 
-			"The variable t can only be null; it was either set to null or checked for null when last used\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- for
-public void test0712_for() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Iterable i = null;\n" + 
-				"    for (Object o : i) {/* */}\n" +
-				      // complain: NPE
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	for (Object o : i) {/* */}\n" + 
-			"	                ^\n" + 
-			"The variable i can only be null; it was either set to null or checked for null when last used\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- for
-public void test0713_for() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Object t[] = new Object[1];\n" + 
-				"    for (Object o : t) {/* */}\n" +
-				"  }\n" + 
-				"}\n"},
-			"");
-	}
-}
-
-// null analysis -- for
-public void test0714_for() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Iterable i = new java.util.Vector<Object>();\n" + 
-				"    for (Object o : i) {/* */}\n" +
-				"  }\n" + 
-				"}\n"},
-			"");
-	}
-}
-
-// null analysis -- for
-public void test0715_for() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Iterable i = new java.util.Vector<Object>();\n" + 
-				"    Object flag = null;\n" + 
-				"    for (Object o : i) {\n" +
-				"      flag = new Object();\n" +
-				"    }\n" +
-				"    flag.toString();\n" + 
-				// complain: cannot know if at least one iteration got executed 
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 8)\n" + 
-			"	flag.toString();\n" + 
-			"	^^^^\n" + 
-			"The variable flag may be null\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- for
-public void test0716_for() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"    Iterable i = new java.util.Vector<Object>();\n" + 
-				"    Object flag = null;\n" + 
-				"    for (Object o : i) { /* */ }\n" +
-				"    flag.toString();\n" + 
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 6)\n" + 
-			"	flag.toString();\n" + 
-			"	^^^^\n" + 
-			"The variable flag can only be null; it was either set to null or checked for null when last used\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- for
-public void test0717_for() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo(boolean dummy) {\n" + 
-				"    Object flag = null;\n" + 
-				"    for (;dummy;) {\n" +
-				"      flag = new Object();\n" +
-				"    }\n" +
-				"    flag.toString();\n" + 
-				"  }\n" + 
-				"}\n"},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 7)\n" + 
-			"	flag.toString();\n" + 
-			"	^^^^\n" + 
-			"The variable flag may be null\n" + 
-			"----------\n");
-	}
-}
-
-// null analysis -- for
-public void test0718_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(boolean dummy) {\n" + 
-			"    Object flag = null;\n" + 
-			"    for (;dummy;) { /* */ }\n" +
-			"    flag.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	flag.toString();\n" + 
-		"	^^^^\n" + 
-		"The variable flag can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- for
-// origin: AssignmentTest#test019
-public void test0719_for() {
-	this.runConformTest(
-		new String[] {
-			    "X.java",
-			    "public class X {\n" + 
-			    "  public static final char[] foo(char[] a, char c1, char c2) {\n" + 
-			    "   char[] r = null;\n" + 
-			    "   for (int i = 0, length = a.length; i < length; i++) {\n" + 
-			    "     char c = a[i];\n" + 
-			    "     if (c == c1) {\n" + 
-			    "       if (r == null) {\n" + 
-			    "         r = new char[length];\n" + 
-			    "       }\n" + 
-			    "       r[i] = c2;\n" + 
-			    "     } else if (r != null) {\n" + 
-			    "       r[i] = c;\n" + 
-			    "     }\n" + 
-			    "   }\n" + 
-			    "   if (r == null) return a;\n" + 
-			    "   return r;\n" + 
-			    " }\n" + 
-			    "}\n"},
-		"");
-}
-
-// null analysis -- for
-public void test0720_for_continue_break() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			  "public class X {\n" + 
-			  "  void foo() {\n" + 
-			  "    Object o = new Object();\n" + 
-			  "    for (int i = 0; i < 10; i++) {\n" + 
-			  "      if (o == null) {\n" + // complain: o cannot be null
-			  "        continue;\n" + 
-			  "      }\n" + 
-			  "      o = null;\n" + 
-			  "      break;\n" + 
-			  "    }\n" + 
-			  "  }\n" + 
-			  "}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-	
-// null analysis -- for
-public void test0721_for() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = null;\n" +
-			"    for (; b ? (o = new Object()).equals(o) : false ;) {\n" +
-			// contrast this with test0238; here the condition shades doubts
-			// upon o being null
-			"      /* */\n" +
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-	
-// null analysis -- for
-public void test0722_for_return() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo (boolean b) {\n" + 
-			"    Object o = null;\n" + 
-			"    for (int i = 0; i < 25; i++) {\n" + 
-			"      if (b) {\n" + 
-			"        if (o == null) {\n" + 
-			"          o = new Object();\n" + // cleared by return downstream 
-			"        }\n" + 
-			"        return;\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-	
-// null analysis -- for
-public void test0723_for() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo () {\n" + 
-			"    Object o[] = new Object[1];\n" + 
-			"    for (int i = 0; i < 1; i++) {\n" + 
-			"      if (i < 1) {\n" +
-			"        o[i].toString();\n" +
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- for
-public void test0724_for_with_initialization() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X field;\n" + 
-			"  void foo(X x1) {\n" + 
-			"    // X x2;\n" + 
-			"    outer: for (int i = 0; i < 30; i++) {\n" + 
-			"      X x2 = x1;\n" + 
-			"      do {\n" + 
-			"        if (x2.equals(x1)) {\n" + 
-			"          continue outer;\n" + 
-			"        }\n" + 
-			"        x2 = x2.field;\n" + 
-			"      } while (x2 != null);\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- for
-public void test0725_for_with_assignment() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X field;\n" + 
-			"  void foo(X x1) {\n" + 
-			"    X x2;\n" + 
-			"    outer: for (int i = 0; i < 30; i++) {\n" + 
-			"      x2 = x1;\n" + 
-			"      do {\n" + 
-			"        if (x2.equals(x1)) {\n" + 
-			"          continue outer;\n" + 
-			"        }\n" + 
-			"        x2 = x2.field;\n" + 
-			"      } while (x2 != null);\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- for
-// changed with https://bugs.eclipse.org/bugs/show_bug.cgi?id=127570
-// we are now able to see that x2 is reinitialized with x1, which is unknown
-public void test0726_for() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x1) {\n" + 
-			"    X x2 = null;\n" + 
-			"    for (int i = 0; i < 5; i++) {\n" + 
-			"      if (x2 == null) {\n" + 
-			"        x2 = x1;\n" + 
-			"      }\n" + 
-			"      x2.toString();\n" + 
-			"    }\n" + 
-			"  }\n" +  
-			"}\n"},
-		"");
-}
-
-// null analysis -- for
-public void test0727_for() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    for (; true;) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- for
-public void test0728_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    for (; true; x.toString()) { /* */ }\n" + 
-			"    if (x == null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (x == null) { /* */ }\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-
-// null analysis -- for
-public void test0729_for_try_catch_finally() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"import java.io.IOException;\n" + 
-			"class X {\n" + 
-			"  X f;\n" + 
-			"  void bar() throws IOException {\n" + 
-			"    throw new IOException();\n" + 
-			"  }\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    for (int i = 0 ; i < 5 ; i++) {\n" + 
-			"      X x = this.f;\n" + 
-			"      if (x == null) { \n" + 
-			"        continue;\n" + 
-			"      }\n" + 
-			"      if (b) {\n" + 
-			"        try {\n" + 
-			"          bar();\n" + 
-			"        } \n" + 
-			"        catch(IOException e) { /* */ }\n" + 
-			"        finally {\n" + 
-			"          x.toString();\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - for
-public void test0730_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    for ( ; o == null ; ) {\n" +
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - for
-public void test0731_for() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  X bar() {\n" + 
-			"    return new X();\n" + 
-			"  }\n" + 
-			"  void foo(Object o) {\n" + 
-			"    for ( ; o == null ; ) {\n" +
-			"      o = bar();\n" +
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + // complain 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	if (o != null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - for nested with break
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129371
-public void test0732_for_nested_break() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(String doubt) {\n" + 
-			"    for(int i = 0; i < 10; i++) {\n" + 
-			"      String s = doubt;\n" + 
-			"      if(s != null) {\n" + 
-			"        for(int j = 0; j < 1; j++) {\n" + 
-			"          break;\n" + 
-			"        }\n" + 
-			"        s.length();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"\n"},
-		"");
-}
-
-// null analysis - for while with break
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129371
-// variant
-public void test0733_for_while_break() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(String doubt, boolean b) {\n" + 
-			"    for(int i = 0; i < 10; i++) {\n" + 
-			"      String s = doubt;\n" + 
-			"      if (s != null) {\n" + 
-			"        while (b) {\n" + 
-			"          break;\n" + 
-			"        }\n" + 
-			"        s.length();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"\n"},
-		"");
-}
-
-// null analysis - for while with break
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129371
-// variant
-public void test0734_for_while_break() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(String doubt, boolean b) {\n" + 
-			"    for(int i = 0; i < 10; i++) {\n" + 
-			"      String s = doubt;\n" + 
-			"      if (s != null) {\n" + 
-			"        do {\n" + 
-			"          break;\n" + 
-			"        } while (b);\n" + 
-			"        s.length();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"\n"},
-		"");
-}
-
-// null analysis - for nested with break
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129371
-// variant
-public void test0735_for_nested_break() {
-	if (COMPLIANCE_1_5.compareTo(this.complianceLevel) <= 0) {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo(Object[] a, String doubt) {\n" + 
-				"    for(int i = 0; i < 10; i++) {\n" + 
-				"      String s = doubt;\n" + 
-				"      if(s != null) {\n" + 
-				"        for(Object o : a) {\n" + 
-				"          break;\n" + 
-				"        }\n" + 
-				"        s.length();\n" + 
-				"      }\n" + 
-				"    }\n" + 
-				"  }\n" + 
-				"}\n" + 
-				"\n"},
-			"");
-	}
-}
-
-// null analysis - for
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127570
-public void test0736_for_embedded_lazy_init() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  public boolean foo() {\n" + 
-			"    Boolean b = null;\n" + 
-			"    for (int i = 0; i < 1; i++) {\n" + 
-			"      if (b == null) {\n" + 
-			"        b = Boolean.TRUE;\n" + 
-			"      }\n" + 
-			"      if (b.booleanValue()) {\n" + // quiet
-			"        return b.booleanValue();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis - for with unknown protection: unknown cannot protect anything
-// suggested by https://bugs.eclipse.org/bugs/show_bug.cgi?id=127570
-public void test0737_for_unknown_protection() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  public boolean foo(Boolean p) {\n" + 
-			"    Boolean b = null;\n" + 
-			"    for (int i = 0; i < 1; i++) {\n" + 
-			"      if (b == p) {\n" + // tells us that p is null as well
-			"        // empty\n" + 
-			"      }\n" +
-			"      else {\n" +
-			"        continue;\n" +
-			"      }\n" + 
-			"      if (b.booleanValue()) {\n" + // complain b can only be null
-			"        return b.booleanValue();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 11)\n" + 
-		"	if (b.booleanValue()) {\n" + 
-		"	    ^\n" + 
-		"The variable b can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis - for with unknown protection
-// suggested by https://bugs.eclipse.org/bugs/show_bug.cgi?id=127570
-// the issue is that we cannot do less than full aliasing analysis to
-// catch this one
-// TODO (maxime) reconsider when/if we bring full aliasing in
-public void _test0738_for_unknown_protection() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  public boolean foo(Boolean p) {\n" + 
-			"    Boolean b = null;\n" + 
-			"    for (int i = 0; i < 1; i++) {\n" + 
-			"      if (b == p) {\n" + 
-			"        // empty\n" + 
-			"      }\n" +
-			"      else {\n" +
-			"        b = p;\n" +
-			"      }\n" + 
-			"      if (b.booleanValue()) {\n" + // quiet because b is an alias for p, unknown
-			"        return b.booleanValue();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    return false;\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-// null analysis -- switch
-public void test0800_switch() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" int k;\n" + 
-			" void foo() {\n" + 
-			"   Object o = null;\n" + 
-			"   switch (k) {\n" + 
-			"     case 0 :\n" + 
-			"       o = new Object();\n" + 
-			"       break;\n" + 
-			"     case 2 :\n" + 
-			"       return;\n" + 
-			"   }\n" + 
-			"   if(o == null) { /* */ }\n" + // quiet: don't know whether came from 0 or default
-			" }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- switch
-public void test0801_switch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" int k;\n" + 
-			" void foo() {\n" + 
-			"   Object o = null;\n" + 
-			"   switch (k) {\n" + 
-			"     case 0 :\n" + 
-			"       o = new Object();\n" + 
-			"       break;\n" + 
-			"     default :\n" + 
-			"       return;\n" + 
-			"   }\n" + 
-			"   if(o == null) { /* */ }\n" + // complain: only get there through 0, o non null
-			" }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 12)\n" + 
-		"	if(o == null) { /* */ }\n" + 
-		"	   ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- switch
-public void test0802_switch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" int k;\n" + 
-			" void foo() {\n" + 
-			"   Object o = null;\n" + 
-			"   switch (k) {\n" + 
-			"     case 0 :\n" + 
-			"       o.toString();\n" + // complain: o can only be null
-			"       break;\n" + 
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- switch
-public void test0803_switch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			" int k;\n" + 
-			" void foo() {\n" + 
-			"   Object o = null;\n" + 
-			"   switch (k) {\n" + 
-			"     case 0 :\n" + 
-			"       o = new Object();\n" + 
-			"     case 1 :\n" + 
-			"       o.toString();\n" + // complain: may come through 0 or 1
-			"       break;\n" + 
-			"   }\n" + 
-			" }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- switch
-public void test0804_switch() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo (Object o, int info) {\n" + 
-			"	 o = null;\n" + 
-			"	 switch (info) {\n" + 
-			"	   case 0 :\n" + 
-			"		 o = new Object();\n" + 
-			"		 break;\n" + 
-			"	   case 1 :\n" + 
-			"		 o = new String();\n" + 
-			"		 break;\n" + 
-			"	   default :\n" + 
-			"		 o = new X();\n" + 
-			"		 break;\n" + 
-			"	 }\n" + 
-			"	 if(o != null) { /* */ }\n" + // complain: all branches allocate a new o
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 15)\n" + 
-		"	if(o != null) { /* */ }\n" + 
-		"	   ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- switch
-public void test0805_switch() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X p) {\n" + 
-			"    X x = this;\n" + 
-			"    for (int i = 0; i < 5; i++) {\n" + 
-			"      switch (i) {\n" + 
-			"        case 1:\n" + 
-			"          x = p;\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (x != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- non null protection tag
-public void _test0900_non_null_protection_tag() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    boolean b = o != null;\n" + // shades doubts upon o 
-			"    o/*NN*/.toString();\n" + 	// protection => do not complain
-			"    o.toString();\n" + 		// protected by previous line
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- non null protection tag
-public void _test0901_non_null_protection_tag() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*NN*/.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*\n" +
-			"         NN  comment  */.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*  NN\n" +
-			"               */.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o               //  NN   \n" +
-			"      .toString();\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- non null protection tag
-public void _test0902_non_null_protection_tag() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*NON-NULL*/.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*  NON-NULL   comment */.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*  NON-NULL   \n" +
-			"               */.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o               //  NON-NULL   \n" +
-			"      .toString();\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- non null protection tag
-public void test0903_non_null_protection_tag() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, boolean b) {\n" + 
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*N N*/.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*NNa*/.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*aNN */.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*NON NULL*/.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*Non-Null*/.toString();\n" +
-			"    if (b) {\n" +
-			"      o = null;\n" +
-			"    }\n" + 
-			"    o/*aNON-NULL */.toString();\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	o/*N N*/.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 10)\n" + 
-		"	o/*NNa*/.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 14)\n" + 
-		"	o/*aNN */.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 18)\n" + 
-		"	o/*NON NULL*/.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n" + 
-		"5. ERROR in X.java (at line 22)\n" + 
-		"	o/*Non-Null*/.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n" + 
-		"6. ERROR in X.java (at line 26)\n" + 
-		"	o/*aNON-NULL */.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-
-// null analysis -- non null protection tag
-public void test0905_non_null_protection_tag() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    boolean b = o != null;\n" + // shades doubts upon o 
-			"    o.toString();/*NN*/\n" + 	// too late to protect => complain
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();/*NN*/\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- non null protection tag
-public void test0906_non_null_protection_tag() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    boolean b = o != null;\n" + // shades doubts upon o 
-			"    /*NN*/o.toString();\n" + 	// too soon to protect => complain
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	/*NN*/o.toString();\n" + 
-		"	      ^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127244
-// [compiler] Null reference analysis doesn't understand assertions
-public void test0950_assert() {
-	if (COMPLIANCE_1_3.compareTo(this.complianceLevel) < 0) {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo(Object o) {\n" + 
-				"    boolean b = o != null;\n" + // shades doubts upon o 
-				"    assert(o != null);\n" + 	// protection
-				"    o.toString();\n" + 		// quiet
-				"  }\n" + 
-				"}\n"},
-			"");
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127244
-// [compiler] Null reference analysis doesn't understand assertions
-public void test0951_assert() {
-	if (COMPLIANCE_1_3.compareTo(this.complianceLevel) < 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo(Object o) {\n" + 
-				"    assert(o == null);\n" + 	// forces null
-				"    o.toString();\n" + 		// can only be null
-				"  }\n" + 
-				"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127244
-// [compiler] Null reference analysis doesn't understand assertions
-public void test0952_assert() {
-	if (COMPLIANCE_1_3.compareTo(this.complianceLevel) < 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo(Object o, boolean b) {\n" + 
-				"    assert(o != null || b);\n" + // shade doubts
-				"    o.toString();\n" + 		// complain
-				"  }\n" + 
-				"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127244
-// [compiler] Null reference analysis doesn't understand assertions
-public void test0953_assert_combined() {
-	if (COMPLIANCE_1_3.compareTo(this.complianceLevel) < 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo(Object o1, Object o2) {\n" + 
-				"    assert(o1 != null && o2 == null);\n" +
-				"    if (o1 == null) { };\n" + 		// complain
-				"    if (o2 == null) { };\n" + 		// complain
-				"  }\n" + 
-				"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o1 == null) { };\n" + 
-		"	    ^^\n" + 
-		"The variable o1 cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\n" + 
-		"	if (o2 == null) { };\n" + 
-		"	    ^^\n" + 
-		"The variable o2 can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127244
-// [compiler] Null reference analysis doesn't understand assertions
-public void test0954_assert_fake_reachable() {
-	if (COMPLIANCE_1_3.compareTo(this.complianceLevel) < 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo(Object o) {\n" + 
-				"    assert(false && o != null);\n" +
-				"    if (o == null) { };\n" + 		// quiet
-				"  }\n" + 
-				"}\n"},
-		"");
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127244
-// [compiler] Null reference analysis doesn't understand assertions
-public void test0955_assert_combined() {
-	if (COMPLIANCE_1_3.compareTo(this.complianceLevel) < 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo(Object o) {\n" + 
-				"    assert(false || o != null);\n" +
-				"    if (o == null) { };\n" + 		// complain
-				"  }\n" + 
-				"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (o == null) { };\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127244
-// [compiler] Null reference analysis doesn't understand assertions
-public void test0956_assert_combined() {
-	if (COMPLIANCE_1_3.compareTo(this.complianceLevel) < 0) {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"  void foo() {\n" +
-				"    Object o = null;\n" + 
-				"    assert(o != null);\n" +    // complain
-				"    if (o == null) { };\n" +   // complain
-				"  }\n" + 
-				"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	assert(o != null);\n" + 
-		"	       ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\n" + 
-		"	if (o == null) { };\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-	}
-}
-
-// null analysis -- notNull protection tag
-public void _test0900_notNull_protection_tag() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(/** @notNull */ Object o) {\n" + 
-			"    boolean b = o != null;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"ERR cannot be null");
-}
-
-// null analysis -- notNull protection tag
-public void _test0901_notNull_protection_tag() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o) {\n" + 
-			"    /** @notNull */ Object l = o;\n" +
-			"  }\n" + 
-			"}\n"},
-		"ERR cannot be null... ou pas ?");
-}
-
-// null analysis -- notNull protection tag
-public void _test0902_notNull_protection_tag() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(/** @nullable */ Object o) {\n" + 
-			"    /** @notNull */ Object l = o;\n" +
-			"  }\n" + 
-			"}\n"},
-		"ERR cannot be null");
-}
-
-// null analysis -- notNull protection tag
-public void test0903_notNull_protection_tag() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object bar() {\n" + 
-			"    return null;\n" +
-			"  }\n" + 
-			"  void foo() {\n" + 
-			"    /** @notNull */ Object l = bar();\n" +
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- notNull protection tag
-public void _test0904_notNull_protection_tag() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  /** @notNull */\n" +
-			"  Object bar() {\n" + 
-			"    return new Object();\n" +
-			"  }\n" + 
-			"  void foo() {\n" + 
-			"    Object l = bar();\n" +
-			"    if (l == null) { /* empty */ }\n" +
-			"  }\n" + 
-			"}\n"},
-		"ERR cannot be null");
-}
-
-// null analysis -- notNull protection tag
-public void _test0905_notNull_protection_tag() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  /** @notNull */\n" +
-			"  Object bar() {\n" + 
-			"    return null;\n" +
-			"  }\n" + 
-			"}\n"},
-		"ERR cannot be null");
-}
-
-// null analysis -- nullable tag
-public void _test0950_nullable_tag() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(/** @nullable */ Object o) {\n" + 
-			"    o.toString();\n" +
-			"  }\n" + 
-			"}\n"},
-		"ERR may be null");
-}
-
-// null analysis -- nullable tag
-public void _test0951_nullable_tag() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(/** @nullable */ Object o) {\n" + 
-			"    Object l = o;\n" +
-			"    l.toString();\n" +
-			"  }\n" + 
-			"}\n"},
-		"ERR may be null");
-}
-
-// null analysis -- nullable tag
-public void _test0952_nullable_tag() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    /** @nullable */ Object o;\n" +
-			"    if (b) {\n" +
-			"      o = new Object();\n" +
-			"    }\n" +
-			"    o.toString();\n" +
-			"  }\n" + 
-			"}\n"},
-		"ERR may be null");
-}
-
-// moved from AssignmentTest
-public void test1004() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X foo(X x) {\n" + 
-			"    x.foo(null); // 0\n" + 
-			"    if (x != null) { // 1\n" + 
-			"      if (x == null) { // 2\n" + 
-			"        x.foo(null); // 3\n" + 
-			"      } else if (x instanceof X) { // 4\n" + 
-			"        x.foo(null); // 5 \n" + 
-			"      } else if (x != null) { // 6\n" + 
-			"        x.foo(null); // 7\n" + 
-			"      }\n" + 
-			"      x.foo(null); // 8\n" + 
-			"    }\n" + 
-			"    return this;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (x != null) { // 1\n" + 
-		"	    ^\n" + 
-		"The variable x cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\n" + 
-		"	if (x == null) { // 2\n" + 
-		"	    ^\n" + 
-		"The variable x cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 6)\n" + 
-		"	x.foo(null); // 3\n" + 
-		"	^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 9)\n" + 
-		"	} else if (x != null) { // 6\n" + 
-		"	           ^\n" + 
-		"The variable x cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"5. ERROR in X.java (at line 12)\n" + 
-		"	x.foo(null); // 8\n" + 
-		"	^\n" + 
-		"The variable x may be null\n" + 
-		"----------\n");
-}
-
-public void test1005() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Class c) {\n" + 
-			"    if (c.isArray() ) {\n" + 
-			"    } else if (c == java.lang.String.class ) {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1006() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    if (x == this)\n" + 
-			"     return;\n" + 
-			"    x.foo(this);\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1007() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x, X x2) {\n" + 
-			"    if (x != null)\n" + 
-			"      return;\n" + 
-			"    x = x2;\n" + 
-			"    if (x == null) {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1008() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x, X x2) {\n" + 
-			"    if (x != null)\n" + 
-			"      return;\n" + 
-			"    try {\n" + 
-			"      x = x2;\n" + 
-			"    } catch(Exception e) {}\n" + 
-			"    if (x == null) {\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1009() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"import java.io.File;\n" + 
-			"\n" + 
-			"public class X {\n" + 
-			"  boolean check(String name) { return true; }\n" + 
-			"  Class bar(String name) throws ClassNotFoundException { return null; }\n" + 
-			"  File baz(String name) { return null; }\n" + 
-			"  \n" + 
-			"  public Class foo(String name, boolean resolve) throws ClassNotFoundException {\n" + 
-			"    \n" + 
-			"    Class c = bar(name);\n" + 
-			"    if (c != null)\n" + 
-			"      return c;\n" + 
-			"    if (check(name)) {\n" + 
-			"      try {\n" + 
-			"        c= bar(name);\n" + 
-			"          return c;\n" + 
-			"      } catch (ClassNotFoundException e) {\n" + 
-			"        // keep searching\n" + 
-			"        // only path to here left c unassigned from try block, means it was assumed to be null\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (c == null) {// should complain: c can only be null\n" + 
-			"      File file= baz(name);\n" + 
-			"      if (file == null)\n" + 
-			"        throw new ClassNotFoundException();\n" + 
-			"    }\n" + 
-			"    return c;\n" + 
-			"  }\n" + 
-			"\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 22)\n" + 
-		"	if (c == null) {// should complain: c can only be null\n" + 
-		"	    ^\n" + 
-		"The variable c can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-public void test1010() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"  X itself() { return this; }\n" + 
-			"\n" + 
-			"  void bar() {\n" + 
-			"    X itself = this.itself();\n" + 
-			"    if (this == itself) {\n" + 
-			"      System.out.println(itself.toString()); //1\n" + 
-			"    } else {\n" + 
-			"      System.out.println(itself.toString()); //2\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1011() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"  X itself() { return this; }\n" + 
-			"\n" + 
-			"  void bar() {\n" + 
-			"    X itself = this.itself();\n" + 
-			"    if (this == itself) {\n" + 
-			"      X other = (X)itself;\n" + 
-			"      if (other != null) {\n" + 
-			"      }\n" + 
-			"      if (other == null) {\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	if (other != null) {\n" + 
-		"	    ^^^^^\n" + 
-		"The variable other cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-public void test1012() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  \n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do {\n" + 
-			"      if (o == null) {\n" +
-			"        return;\n" +
-			"      }\n" + 
-			"      // o = bar();\n" + 
-			"    } while (true);\n" + 
-			"  }\n" + 
-			"  X bar() { \n" + 
-			"    return null; \n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n"
-	);
-}
-
-// x cannot equal this then null with no assignment in between
-// each diagnostic is locally sound though
-public void test1013() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    if (x == this) {\n" + 
-			"      if (x == null) {\n" + 
-			"        x.foo(this);\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	if (x == null) {\n" + 
-		"	    ^\n" + 
-		"The variable x cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\n" + 
-		"	x.foo(this);\n" + 
-		"	^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-public void test1014() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    x = null;\n" + 
-			"    try {\n" + 
-			"      x = this;\n" + 
-			"    } finally {\n" + 
-			"      x.foo(null);\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	x.foo(null);\n" + 
-		"	^\n" + 
-		"The variable x may be null\n" + 
-		"----------\n");
-}
-
-public void test1015() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    int i = 1;\n" + 
-			"    switch (i) {\n" + 
-			"      case 1:\n" + 
-			"        o = new Object();\n" + 
-			"        break;\n" + 
-			"    }\n" + 
-			"    if (o != null)\n" + 
-			"      o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1016() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    x = null;\n" + 
-			"    try {\n" + 
-			"      x = null;\n" + 
-			"    } finally {\n" + 
-			"      if (x != null) {\n" + 
-			"        x.foo(null);\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	x = null;\n" + 
-		"	^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 7)\n" + 
-		"	if (x != null) {\n" + 
-		"	    ^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-public void test1017() { 
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(X x) {\n" + 
-			"    x = this;\n" + 
-			"    try {\n" + 
-			"      x = null;\n" + 
-			"    } finally {\n" + 
-			"      if (x == null) {\n" + 
-			"        x.foo(null);\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	x.foo(null);\n" + 
-		"	^\n" + 
-		"The variable x can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-public void test1018() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  \n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    do {\n" + 
-			"      if (o != null) return;\n" + 
-			"      o = null;\n" + 
-			"    } while (true);\n" + 
-			"  }\n" + 
-			"  X bar() { \n" + 
-			"    return null; \n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\r\n" + 
-		"	if (o != null) return;\r\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 7)\r\n" + 
-		"	o = null;\r\n" + 
-		"	^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-public void test1019() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static final char[] replaceOnCopy(\n" + 
-			"      char[] array,\n" + 
-			"      char toBeReplaced,\n" + 
-			"      char replacementChar) {\n" + 
-			"      \n" + 
-			"    char[] result = null;\n" + 
-			"    for (int i = 0, length = array.length; i < length; i++) {\n" + 
-			"      char c = array[i];\n" + 
-			"      if (c == toBeReplaced) {\n" + 
-			"        if (result == null) {\n" + 
-			"          result = new char[length];\n" + 
-			"          System.arraycopy(array, 0, result, 0, i);\n" + 
-			"        }\n" + 
-			"        result[i] = replacementChar;\n" + 
-			"      } else if (result != null) {\n" + 
-			"        result[i] = c;\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (result == null) return array;\n" + 
-			"    return result;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1021() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  int kind;\n" + 
-			"  X parent;\n" + 
-			"  Object[] foo() { return null; }\n" + 
-			"  void findTypeParameters(X scope) {\n" + 
-			"    Object[] typeParameters = null;\n" + 
-			"    while (scope != null) {\n" + 
-			"      typeParameters = null;\n" + 
-			"      switch (scope.kind) {\n" + 
-			"        case 0 :\n" + 
-			"          typeParameters = foo();\n" + 
-			"          break;\n" + 
-			"        case 1 :\n" + 
-			"          typeParameters = foo();\n" + 
-			"          break;\n" + 
-			"        case 2 :\n" + 
-			"          return;\n" + 
-			"      }\n" + 
-			"      if(typeParameters != null) {\n" + 
-			"        foo();\n" + 
-			"      }\n" + 
-			"      scope = scope.parent;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1022() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean bool() { return true; }\n" + 
-			"  void doSomething() {}\n" + 
-			"  \n" + 
-			"  void foo() {\n" + 
-			"    Object progressJob = null;\n" + 
-			"    while (bool()) {\n" + 
-			"      if (bool()) {\n" + 
-			"        if (progressJob != null)\n" + 
-			"          progressJob = null;\n" + 
-			"        doSomething();\n" + 
-			"      }\n" + 
-			"      try {\n" + 
-			"        if (progressJob == null) {\n" + 
-			"          progressJob = new Object();\n" + 
-			"        }\n" + 
-			"      } finally {\n" + 
-			"        doSomething();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"");
-}
-
-public void test1023() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    while (this != null) {\n" + 
-			"      try {\n" + 
-			"        o = null;\n" + 
-			"        break;\n" + 
-			"      } finally {\n" + 
-			"        o = new Object();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (o == null) return;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	if (o == null) return;\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-public void test1024() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  \n" + 
-			"  boolean bool() { return true; }\n" + 
-			"  void doSomething() {}\n" + 
-			"  \n" + 
-			"  void foo() {\n" + 
-			"    Object progressJob = null;\n" + 
-			"    while (bool()) {\n" + 
-			"      if (progressJob != null)\n" + 
-			"        progressJob = null;\n" + 
-			"      doSomething();\n" + 
-			"      try {\n" + 
-			"        if (progressJob == null) {\n" + 
-			"          progressJob = new Object();\n" + 
-			"        }\n" + 
-			"      } finally {\n" + 
-			"        doSomething();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	if (progressJob == null) {\n" + 
-		"	    ^^^^^^^^^^^\n" + 
-		"The variable progressJob can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-public void test1025() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  \n" + 
-			"  void foo() {\n" + 
-			"    Object o;\n" + 
-			"    try {\n" + 
-			"      o = null;\n" + 
-			"    } finally {\n" + 
-			"      o = new Object();\n" + 
-			"    }\n" + 
-			"    if (o == null) return;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 10)\n" + 
-		"	if (o == null) return;\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// TODO (philippe) reenable once fixed
-public void _test1026() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  \n" + 
-			"  public static void main(String[] args) {\n" + 
-			"    Object o;\n" + 
-			"    try {\n" + 
-			"      o = null;\n" + 
-			"    } finally {\n" + 
-			"      if (args == null) o = new Object();\n" + 
-			"    }\n" + 
-			"    if (o == null) System.out.println(\"SUCCESS\");\n" + 
-			"  }\n" + 
-			"}\n"},
-		"SUCCESS");
-}
-
-public void test1027() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean b;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (b) {\n" + 
-			"      try {\n" + 
-			"        o = null;\n" + 
-			"      } finally {\n" + 
-			"        if (o == null) \n" + 
-			"          o = new Object();\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    if (o == null) return;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// TODO (philippe) reenable once fixed
-public void _test1028() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean b;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"    while (b) {\n" + 
-			"      try {\n" + 
-			"        o = null;\n" + 
-			"        break;\n" + 
-			"      } finally {\n" + 
-			"        if (o == null) \n" + 
-			"          o = new Object();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (o == null) return;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test1029() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static void main(String[] args) {\n" + 
-			"    Object o = null;\n" + 
-			"    int i = 0;\n" + 
-			"    while (i++ < 2) {\n" + 
-			"      try {\n" + 
-			"        if (i == 2) return;\n" + 
-			"        o = null;\n" + 
-			"      } finally {\n" + 
-			"        if (i == 2) System.out.println(o);\n" + 
-			"        o = \"SUCCESS\";\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"    if (o == null) return;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"SUCCESS");
-}
-
-public void test1030() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  \n" + 
-			"  void foo() {\n" + 
-			"    Object a = null;\n" + 
-			"    while (true) {\n" + 
-			"      a = null;\n" + 
-			"      if (a == null) {\n" + 
-			"        System.out.println();\n" + 
-			"      }\n" + 
-			"      a = new Object();\n" + 
-			"      break;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (a == null) {\n" + 
-		"	    ^\n" + 
-		"The variable a can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-public void test1031() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  \n" + 
-			"  void foo() {\n" + 
-			"    Object a = null;\n" + 
-			"    while (true) {\n" + 
-			"      a = null;\n" + 
-			"      if (a == null) {\n" + 
-			"        System.out.println();\n" + 
-			"      }\n" + 
-			"      a = new Object();\n" + 
-			"      break;\n" + 
-			"    }\n" + 
-			"    if (a == null) {\n" + 
-			"      System.out.println();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	if (a == null) {\n" + 
-		"	    ^\n" + 
-		"The variable a can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 13)\n" + 
-		"	if (a == null) {\n" + 
-		"	    ^\n" + 
-		"The variable a cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-public void test1032() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo() {\n" + 
-			"    Object o1 = this;\n" + 
-			"    Object o3;\n" + 
-			"    while (o1 != null && (o3 = o1) != null) {\n" + 
-			"      o1 = o3;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	while (o1 != null && (o3 = o1) != null) {\n" + 
-		"	       ^^\n" + 
-		"The variable o1 cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\n" + 
-		"	while (o1 != null && (o3 = o1) != null) {\n" + 
-		"	                     ^^^^^^^^^\n" + 
-		"The variable o3 cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// (simplified to focus on nulls)
-public void test1033() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  \n" + 
-			"  void foo() {\n" + 
-			"    String a,b;\n" + 
-			"    do{\n" + 
-			"      a=\"Hello \";\n" + 
-			"    }while(a!=null);\n" + 
-			"    if(a!=null)\n" + 
-			"      { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	}while(a!=null);\n" + 
-		"	       ^\n" + 
-		"The variable a cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	if(a!=null)\n" + 
-		"	   ^\n" + 
-		"The variable a can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// from AssignmentTest#test034, simplified
-public void test1034() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public final class X \n" + 
-			"{\n" + 
-			"	void foo()\n" + 
-			"	{\n" + 
-			"		String rs = null;\n" + 
-			"		try\n" + 
-			"		{\n" + 
-			"			rs = \"\";\n" + 
-			"			return;\n" + 
-			"		}\n" + 
-			"		catch (Exception e)\n" + 
-			"		{\n" + 
-			"		}\n" + 
-			"		finally\n" + 
-			"		{\n" + 
-			"			if (rs != null)\n" + 
-			"			{\n" + 
-			"				try\n" + 
-			"				{\n" + 
-			"					rs.toString();\n" + 
-			"				}\n" + 
-			"				catch (Exception e)\n" + 
-			"				{\n" + 
-			"				}\n" + 
-			"			}\n" + 
-			"		}\n" + 
-			"		return;\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"");
-}
-
-public void test1036() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"  void foo() {\n" + 
-			"    Object o = new Object();\n" + 
-			"    do {\n" + 
-			"      o = null;\n" + 
-			"    } while (o != null);\n" + 
-			"    if (o == null) {\n" + 
-			"      // throw new Exception();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 7)\n" + 
-		"	} while (o != null);\n" + 
-		"	         ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	if (o == null) {\n" + 
-		"	    ^\n" + 
-		"The variable o can only be null; it was either set to null or checked for null when last used\n" + 
-		"----------\n");
-}
-
-// encoding validation
-public void test1500() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, int i, boolean b, Object u) {\n" +
-			"    o.toString();\n" + 
-			"    switch (i) {\n" + 
-			"      case 0:\n" +
-			"        if (b) {\n" +
-			"          o = u;\n" +
-			"        } else {\n" +
-			"          o = new Object();\n" +
-			"        }\n" +
-			"        break;\n" + 
-			"    }\n" +
-			"    if (o == null) { /* empty */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// encoding validation
-public void test1501() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, int i, boolean b, Object u) {\n" +
-			"    if (b) {\n" +
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"    switch (i) {\n" + 
-			"      case 0:\n" +
-			"        if (b) {\n" +
-			"          o = u;\n" +
-			"        } else {\n" +
-			"          o = new Object();\n" +
-			"        }\n" +
-			"        break;\n" + 
-			"    }\n" +
-			"    if (o == null) { /* empty */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// encoding validation
-public void test1502() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, int i, boolean b, Object u) {\n" +
-			"    if (b) {\n" +
-			"      o = u;\n" +
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"    switch (i) {\n" + 
-			"      case 0:\n" +
-			"        if (b) {\n" +
-			"          o = u;\n" +
-			"        } else {\n" +
-			"          o = new Object();\n" +
-			"        }\n" +
-			"        break;\n" + 
-			"    }\n" +
-			"    if (o == null) { /* empty */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// encoding validation
-public void test1503() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(Object o, int i, boolean b, Object u) {\n" +
-			"    if (b) {\n" +
-			"      o = u;\n" +
-			"    } else {\n" +
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"    switch (i) {\n" + 
-			"      case 0:\n" +
-			"        if (b) {\n" +
-			"          o = u;\n" +
-			"        } else {\n" +
-			"          o = new Object();\n" +
-			"        }\n" +
-			"        break;\n" + 
-			"    }\n" +
-			"    if (o == null) { /* empty */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// flow info low-level validation
-public void test2000_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"  void foo() {\n" + 
-			"    Object o0 = new Object(), o1 = o0, o2 = o0, o3 = o0, o4 = o0,\n" + 
-			"      o5 = o0, o6 = o0, o7 = o0, o8 = o0, o9 = o0,\n" + 
-			"      o10 = o0, o11 = o0, o12 = o0, o13 = o0, o14 = o0,\n" + 
-			"      o15 = o0, o16 = o0, o17 = o0, o18 = o0, o19 = o0,\n" + 
-			"      o20 = o0, o21 = o0, o22 = o0, o23 = o0, o24 = o0,\n" + 
-			"      o25 = o0, o26 = o0, o27 = o0, o28 = o0, o29 = o0,\n" + 
-			"      o30 = o0, o31 = o0, o32 = o0, o33 = o0, o34 = o0,\n" + 
-			"      o35 = o0, o36 = o0, o37 = o0, o38 = o0, o39 = o0,\n" + 
-			"      o40 = o0, o41 = o0, o42 = o0, o43 = o0, o44 = o0,\n" + 
-			"      o45 = o0, o46 = o0, o47 = o0, o48 = o0, o49 = o0,\n" + 
-			"      o50 = o0, o51 = o0, o52 = o0, o53 = o0, o54 = o0,\n" + 
-			"      o55 = o0, o56 = o0, o57 = o0, o58 = o0, o59 = o0,\n" + 
-			"      o60 = o0, o61 = o0, o62 = o0, o63 = o0, o64 = o0,\n" + 
-			"      o65 = o0, o66 = o0, o67 = o0, o68 = o0, o69 = o0;\n" + 
-			"    if (o65 == null) { /* */ }\n" + // complain 
-			"    if (o65 != null) { /* */ }\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 18)\n" + 
-		"	if (o65 == null) { /* */ }\n" + 
-		"	    ^^^\n" + 
-		"The variable o65 cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-public void test2001_flow_info() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"  void foo(\n" + 
-			"    Object o0, Object o1, Object o2, Object o3, Object o4,\n" + 
-			"      Object o5, Object o6, Object o7, Object o8, Object o9,\n" + 
-			"      Object o10, Object o11, Object o12, Object o13, Object o14,\n" + 
-			"      Object o15, Object o16, Object o17, Object o18, Object o19,\n" + 
-			"      Object o20, Object o21, Object o22, Object o23, Object o24,\n" + 
-			"      Object o25, Object o26, Object o27, Object o28, Object o29,\n" + 
-			"      Object o30, Object o31, Object o32, Object o33, Object o34,\n" + 
-			"      Object o35, Object o36, Object o37, Object o38, Object o39,\n" + 
-			"      Object o40, Object o41, Object o42, Object o43, Object o44,\n" + 
-			"      Object o45, Object o46, Object o47, Object o48, Object o49,\n" + 
-			"      Object o50, Object o51, Object o52, Object o53, Object o54,\n" + 
-			"      Object o55, Object o56, Object o57, Object o58, Object o59,\n" + 
-			"      Object o60, Object o61, Object o62, Object o63, Object o64,\n" + 
-			"      Object o65, Object o66, Object o67, Object o68, Object o69) {\n" + 
-			"    if (o65 == null) { /* */ }\n" + 
-			"    if (o65 != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test2002_flow_info() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m0, m1, m2, m3, m4,\n" + 
-			"    m5, m6, m7, m8, m9,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"    if (o != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test2003_flow_info() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m0, m1, m2, m3, m4,\n" + 
-			"    m5, m6, m7, m8, m9,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test2004_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m0, m1, m2, m3, m4,\n" + 
-			"    m5, m6, m7, m8, m9,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo() {\n" + 
-			"    Object o;\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 17)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The local variable o may not have been initialized\n" + 
-		"----------\n");
-}
-
-public void test2005_flow_info() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m0, m1, m2, m3, m4,\n" + 
-			"    m5, m6, m7, m8, m9,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    o = null;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test2006_flow_info() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m0, m1, m2, m3, m4,\n" + 
-			"    m5, m6, m7, m8, m9,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo() {\n" + 
-			"    Object o = null;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test2007_flow_info() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m0, m1, m2, m3, m4,\n" + 
-			"    m5, m6, m7, m8, m9,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo() {\n" + 
-			"    Object o[] = null;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- flow info
-public void test2008_flow_info() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m0, m1, m2, m3, m4,\n" + 
-			"    m5, m6, m7, m8, m9,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo(boolean b) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (o == null) {\n" + 
-			     // quiet: first iteration is sure to find o null, 
-			     // but other iterations may change it 
-			"      try { /* */ }\n" + 
-			"      finally {\n" + 
-			"        if (b) {\n" +
-			"          o = new Object();\n" +
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-// null analysis -- flow info
-public void test2009_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m0, m1, m2, m3, m4,\n" + 
-			"    m5, m6, m7, m8, m9,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo(Object o) {\n" + 
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 20)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- flow info
-public void test2010_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m00, m01, m02, m03, m04,\n" + 
-			"    m05, m06, m07, m08, m09,\n" + 
-			"    m10, m11, m12, m13, m14,\n" + 
-			"    m15, m16, m17, m18, m19,\n" + 
-			"    m20, m21, m22, m23, m24,\n" + 
-			"    m25, m26, m27, m28, m29,\n" + 
-			"    m30, m31, m32, m33, m34,\n" + 
-			"    m35, m36, m37, m38, m39,\n" + 
-			"    m40, m41, m42, m43, m44,\n" + 
-			"    m45, m46, m47, m48, m49,\n" + 
-			"    m50, m51, m52, m53, m54,\n" + 
-			"    m55, m56, m57, m58, m59,\n" + 
-			"    m60, m61, m62, m63;\n" + 
-			"  void foo() {\n" + 
-			"    Object o;\n" + 
-			"    try { /* */ }\n" + 
-			"    finally {\n" + 
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 21)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- flow info
-public void test2011_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" + 
-			"  void foo() {\n" + 
-			"    Object o000, o001, o002, o003, o004, o005, o006, o007, o008, o009,\n" + 
-			"      o010, o011, o012, o013, o014, o015, o016, o017, o018, o019,\n" + 
-			"      o020, o021, o022, o023, o024, o025, o026, o027, o028, o029,\n" + 
-			"      o030, o031, o032, o033, o034, o035, o036, o037, o038, o039,\n" + 
-			"      o040, o041, o042, o043, o044, o045, o046, o047, o048, o049,\n" + 
-			"      o050, o051, o052, o053, o054, o055, o056, o057, o058, o059,\n" + 
-			"      o060, o061, o062, o063;\n" + 
-			"    Object o;\n" + 
-			"    try {\n" +
-			"      o000 = new Object();\n" +
-			"    }\n" + 
-			"    finally {\n" + 
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 24)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- flow info
-public void test2012_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  Object m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" + 
-			"  void foo() {\n" + 
-			"    Object o000, o001, o002, o003, o004, o005, o006, o007, o008, o009,\n" + 
-			"      o010, o011, o012, o013, o014, o015, o016, o017, o018, o019,\n" + 
-			"      o020, o021, o022, o023, o024, o025, o026, o027, o028, o029,\n" + 
-			"      o030, o031, o032, o033, o034, o035, o036, o037, o038, o039,\n" + 
-			"      o040, o041, o042, o043, o044, o045, o046, o047, o048, o049,\n" + 
-			"      o050, o051, o052, o053, o054, o055, o056, o057, o058, o059,\n" + 
-			"      o060, o061, o062, o063;\n" + 
-			"    Object o;\n" + 
-			"    try {\n" +
-			"      o = new Object();\n" +
-			"    }\n" + 
-			"    finally {\n" + 
-			"      o000 = new Object();\n" +
-			"    }\n" + 
-			"    if (o == null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 24)\n" + 
-		"	if (o == null) { /* */ }\n" + 
-		"	    ^\n" + 
-		"The variable o cannot be null; it was either set to a non-null value or assumed to be non-null when last used\n" + 
-		"----------\n");
-}
-
-// null analysis -- flow info
-public void test2013_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  Object m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" + 
-			"  void foo(Object u) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) {\n" + 
-			"      o = u;\n" + 
-			"    }\n" + 
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 15)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-// null analysis -- flow info
-public void test2014_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  int m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" +
-			"  final int m064;\n" + 
-			"  X() {\n" + 
-			"    m064 = 10;\n" +
-			"    class Inner extends X {\n" + 
-			"      int m100, m101, m102, m103, m104, m105, m106, m107, m108, m109,\n" + 
-			"        m110, m111, m112, m113, m114, m115, m116, m117, m118, m119,\n" + 
-			"        m120, m121, m122, m123, m124, m125, m126, m127, m128, m129,\n" + 
-			"        m130, m131, m132, m133, m134, m135, m136, m137, m138, m139,\n" + 
-			"        m140, m141, m142, m143, m144, m145, m146, m147, m148, m149,\n" + 
-			"        m150, m151, m152, m153, m154, m155, m156, m157, m158, m159,\n" + 
-			"        m160, m161, m162, m163;\n" +
-			"      final int m164;\n" + 
-			"      int bar() {\n" + 
-			"        return m100 + m101 + m102 + m103 + m104 +\n" + 
-			"               m105 + m106 + m107 + m108 + m109 +\n" + 
-			"               m110 + m111 + m112 + m113 + m114 +\n" + 
-			"               m115 + m116 + m117 + m118 + m119 +\n" + 
-			"               m120 + m121 + m122 + m123 + m124 +\n" + 
-			"               m125 + m126 + m127 + m128 + m129 +\n" + 
-			"               m130 + m131 + m132 + m133 + m134 +\n" + 
-			"               m135 + m136 + m137 + m138 + m139 +\n" + 
-			"               m140 + m141 + m142 + m143 + m144 +\n" + 
-			"               m145 + m146 + m147 + m148 + m149 +\n" + 
-			"               m150 + m151 + m152 + m153 + m154 +\n" + 
-			"               m155 + m156 + m157 + m158 + m159 +\n" + 
-			"               m160 + m161 + m162 + m163 + m164;\n" +
-			"      }\n" + 
-			"    };\n" + 
-			"    System.out.println((new Inner()).bar());\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 12)\n" + 
-		"	class Inner extends X {\n" + 
-		"	      ^^^^^\n" + 
-		"The blank final field m164 may not have been initialized\n" + 
-		"----------\n");
-}
-
-// null analysis -- flow info
-public void test2015_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  int m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" +
-			"  final int m200;\n" + 
-			"  int m201, m202, m203, m204, m205, m206, m207, m208, m209,\n" + 
-			"    m210, m211, m212, m213, m214, m215, m216, m217, m218, m219,\n" + 
-			"    m220, m221, m222, m223, m224, m225, m226, m227, m228, m229,\n" + 
-			"    m230, m231, m232, m233, m234, m235, m236, m237, m238, m239,\n" + 
-			"    m240, m241, m242, m243, m244, m245, m246, m247, m248, m249,\n" + 
-			"    m250, m251, m252, m253, m254, m255, m256, m257, m258, m259,\n" + 
-			"    m260, m261, m262, m263;\n" +
-			"  int m301, m302, m303, m304, m305, m306, m307, m308, m309,\n" + 
-			"    m310, m311, m312, m313, m314, m315, m316, m317, m318, m319,\n" + 
-			"    m320, m321, m322, m323, m324, m325, m326, m327, m328, m329,\n" + 
-			"    m330, m331, m332, m333, m334, m335, m336, m337, m338, m339,\n" + 
-			"    m340, m341, m342, m343, m344, m345, m346, m347, m348, m349,\n" + 
-			"    m350, m351, m352, m353, m354, m355, m356, m357, m358, m359,\n" + 
-			"    m360, m361, m362, m363;\n" +
-			"  X() {\n" + 
-			"    m200 = 10;\n" +
-			"    class Inner extends X {\n" + 
-			"      int m100, m101, m102, m103, m104, m105, m106, m107, m108, m109,\n" + 
-			"        m110, m111, m112, m113, m114, m115, m116, m117, m118, m119,\n" + 
-			"        m120, m121, m122, m123, m124, m125, m126, m127, m128, m129,\n" + 
-			"        m130, m131, m132, m133, m134, m135, m136, m137, m138, m139,\n" + 
-			"        m140, m141, m142, m143, m144, m145, m146, m147, m148, m149,\n" + 
-			"        m150, m151, m152, m153, m154, m155, m156, m157, m158, m159,\n" + 
-			"        m160, m161, m162, m163;\n" +
-			"      final int m164;\n" + 
-			"      int bar() {\n" + 
-			"        return m100 + m101 + m102 + m103 + m104 +\n" + 
-			"               m105 + m106 + m107 + m108 + m109 +\n" + 
-			"               m110 + m111 + m112 + m113 + m114 +\n" + 
-			"               m115 + m116 + m117 + m118 + m119 +\n" + 
-			"               m120 + m121 + m122 + m123 + m124 +\n" + 
-			"               m125 + m126 + m127 + m128 + m129 +\n" + 
-			"               m130 + m131 + m132 + m133 + m134 +\n" + 
-			"               m135 + m136 + m137 + m138 + m139 +\n" + 
-			"               m140 + m141 + m142 + m143 + m144 +\n" + 
-			"               m145 + m146 + m147 + m148 + m149 +\n" + 
-			"               m150 + m151 + m152 + m153 + m154 +\n" + 
-			"               m155 + m156 + m157 + m158 + m159 +\n" + 
-			"               m160 + m161 + m162 + m163 + m164;\n" +
-			"      }\n" + 
-			"    };\n" + 
-			"    System.out.println((new Inner()).bar());\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 26)\n" + 
-		"	class Inner extends X {\n" + 
-		"	      ^^^^^\n" + 
-		"The blank final field m164 may not have been initialized\n" + 
-		"----------\n");
-}
-
-// null analysis -- flow info
-public void test2016_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"  int m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061;\n" +
-			"  final int m062;\n" + 
-			"  {\n" +
-			"    int l063, m201 = 0, m202, m203, m204, m205, m206, m207, m208, m209,\n" + 
-			"      m210, m211, m212, m213, m214, m215, m216, m217, m218, m219,\n" + 
-			"      m220, m221, m222, m223, m224, m225, m226, m227, m228, m229,\n" + 
-			"      m230, m231, m232, m233, m234, m235, m236, m237, m238, m239,\n" + 
-			"      m240, m241, m242, m243, m244, m245, m246, m247, m248, m249,\n" + 
-			"      m250, m251, m252, m253, m254, m255, m256, m257, m258, m259,\n" + 
-			"      m260, m261, m262, m263;\n" +
-			"    int m301, m302, m303, m304, m305, m306, m307, m308, m309,\n" + 
-			"      m310, m311, m312, m313, m314, m315, m316, m317, m318, m319,\n" + 
-			"      m320, m321, m322, m323, m324, m325, m326, m327, m328, m329,\n" + 
-			"      m330, m331, m332, m333, m334, m335, m336, m337, m338, m339,\n" + 
-			"      m340, m341, m342, m343, m344, m345, m346, m347, m348, m349,\n" + 
-			"      m350, m351, m352, m353, m354, m355, m356, m357, m358, m359,\n" + 
-			"      m360 = 0, m361 = 0, m362 = 0, m363 = 0;\n" +
-			"    m062 = m360;\n" +
-			"  }\n" +
-			"  X() {\n" + 
-			"    int l0, l1;\n" +
-			"    m000 = l1;\n" +
-			"    class Inner extends X {\n" + 
-			"      int bar() {\n" + 
-			"        return 0;\n" + 
-			"      }\n" + 
-			"    };\n" + 
-			"    System.out.println((new Inner()).bar());\n" +
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 29)\n" + 
-		"	m000 = l1;\n" + 
-		"	       ^^\n" + 
-		"The local variable l1 may not have been initialized\n" + 
-		"----------\n");
-}
-
-public void test2017_flow_info() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  Object m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" + 
-			"  void foo(Object u) {\n" + 
-			"    Object o = null;\n" + 
-			"    while (dummy) {\n" + 
-			"      if (dummy) {\n" + // uncorrelated
-			"        o = u;\n" +
-			"        continue;\n" +
-			"      }\n" + 
-			"    }\n" + 
-			"    if (o != null) { /* */ }\n" + 
-			"  }\n" + 
-			"}\n"},
-		"");
-}
-
-public void test2018_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  Object m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" + 
-			"  void foo() {\n" +
-			"    Object o;\n" + 
-			"    while (dummy) {\n" + 
-			"      if (dummy) {\n" + // uncorrelated
-			"        o = null;\n" +
-			"        continue;\n" +
-			"      }\n" + 
-			"    }\n" +
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 18)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The local variable o may not have been initialized\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 18)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-public void test2019_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  Object m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" + 
-			"  void foo() {\n" +
-			"    Object o;\n" + 
-			"    while (dummy) {\n" + 
-			"      if (dummy) {\n" + // uncorrelated
-			"        continue;\n" +
-			"      }\n" + 
-			"      o = null;\n" +
-			"    }\n" +
-			"    o.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 18)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The local variable o may not have been initialized\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 18)\n" + 
-		"	o.toString();\n" + 
-		"	^\n" + 
-		"The variable o may be null\n" + 
-		"----------\n");
-}
-
-public void test2020_flow_info() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  boolean dummy;\n" + 
-			"  Object m000, m001, m002, m003, m004, m005, m006, m007, m008, m009,\n" + 
-			"    m010, m011, m012, m013, m014, m015, m016, m017, m018, m019,\n" + 
-			"    m020, m021, m022, m023, m024, m025, m026, m027, m028, m029,\n" + 
-			"    m030, m031, m032, m033, m034, m035, m036, m037, m038, m039,\n" + 
-			"    m040, m041, m042, m043, m044, m045, m046, m047, m048, m049,\n" + 
-			"    m050, m051, m052, m053, m054, m055, m056, m057, m058, m059,\n" + 
-			"    m060, m061, m062, m063;\n" + 
-			"  int m200, m201, m202, m203, m204, m205, m206, m207, m208, m209,\n" + 
-			"    m210, m211, m212, m213, m214, m215, m216, m217, m218, m219,\n" + 
-			"    m220, m221, m222, m223, m224, m225, m226, m227, m228, m229,\n" + 
-			"    m230, m231, m232, m233, m234, m235, m236, m237, m238, m239,\n" + 
-			"    m240, m241, m242, m243, m244, m245, m246, m247, m248, m249,\n" + 
-			"    m250, m251, m252, m253, m254, m255, m256, m257, m258, m259,\n" + 
-			"    m260, m261;\n" +
-			"  void foo() {\n" +
-			"    Object o0, o1;\n" + 
-			"    while (dummy) {\n" +
-			"      o0 = new Object();\n" + 
-			"      if (dummy) {\n" + // uncorrelated
-			"        o1 = null;\n" +
-			"        continue;\n" +
-			"      }\n" + 
-			"    }\n" +
-			"    o1.toString();\n" + 
-			"  }\n" + 
-			"}\n"},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 26)\n" + 
-		"	o1.toString();\n" + 
-		"	^^\n" + 
-		"The local variable o1 may not have been initialized\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 26)\n" + 
-		"	o1.toString();\n" + 
-		"	^^\n" + 
-		"The variable o1 may be null\n" + 
-		"----------\n");
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NumericTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NumericTest.java
deleted file mode 100644
index 888e582..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/NumericTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-public class NumericTest extends AbstractRegressionTest {
-	
-public NumericTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-
-public void test001() {
-	this.runConformTest(new String[] {
-		"p/B.java",
-		"package p;\n" + 
-		"public class B {\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    int offset = -8;\n" + 
-		"    int temp = 0 - offset;\n" + 
-		"    offset = 0 - offset;  // This is the problem line\n" + 
-		"    System.out.println(\"offset: \" + offset);\n" + 
-		"    System.out.println(\"temp: \" + temp);\n" + 
-		"    if (offset != temp ) {\n" + 
-		"      System.err.println(\"offset (\" + offset + \") should be equal to temp (\" + temp + \").\");\n" + 
-		"      System.exit(-1);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test002() {
-	this.runConformTest(new String[] {
-		"p/Y.java",
-		"package p;\n" + 
-		"public class Y {\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    int clockend = 0;\n" + 
-		"    clockend += 128;\n" + 
-		"    if(clockend < 0) {\n" + 
-		"      System.out.println(clockend);\n" + 
-		"      System.exit(-1);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=133738
-public void test003() {
-	this.runNegativeTest(new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"  int i1 = -2147483648;\n" + 
-		"  int i2 = -(2147483648);\n" + 
-		"}",
-	},
-	"----------\n" + 
-	"1. ERROR in X.java (at line 3)\n" + 
-	"	int i2 = -(2147483648);\n" + 
-	"	          ^^^^^^^^^^^^\n" + 
-	"The literal 2147483648 of type int is out of range \n" + 
-	"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=133738
-public void test004() {
-	this.runNegativeTest(new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"  long l1 = -9223372036854775808L;\n" + 
-		"  long l2 = -(9223372036854775808L);\n" + 
-		"}",
-	},
-	"----------\n" + 
-	"1. ERROR in X.java (at line 3)\n" + 
-	"	long l2 = -(9223372036854775808L);\n" + 
-	"	           ^^^^^^^^^^^^^^^^^^^^^^\n" + 
-	"The literal 9223372036854775808L of type long is out of range \n" + 
-	"----------\n");
-}
-public static Class testClass() {
-	return NumericTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/OaaMetadataTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/OaaMetadataTests.java
deleted file mode 100644
index 2e71f10..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/OaaMetadataTests.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.HashMap;
-
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.oaametadata.ClassData;
-import org.eclipse.wst.jsdt.internal.oaametadata.IOAAMetaDataConstants;
-import org.eclipse.wst.jsdt.internal.oaametadata.LibraryAPIs;
-import org.eclipse.wst.jsdt.internal.oaametadata.MetadataReader;
-
-
-public class OaaMetadataTests extends AbstractRegressionTest {
-
-	
-	static final String LIB1=
-	"<api xmlns=\"http://ns.openajax.org/api\" version=\"...\" apiType=\"JavaScript\">"
-	+"   <class name=\"libraryname.ClassName\" superclass=\"Object\">"
-	+"      <constructors>"
-	+"          <constructor scope=\"instance\">"
-	+"              <description>Constructor description</description>"
-	+"              <parameters>"
-	+"                  <parameter name=\"message\" required=\"true\" datatype=\"String\">"
-	+"                      <description>Parameter description</description>"
-	+"                  </parameter>"
-	+"              </parameters>"
-	+"              <returns datatype=\"Object\">"
-	+"                <description>...</description>" 
-	+"              </returns>"
-	+"          </constructor>"
-	+"       </constructors>"
-	+"      <fields>" 
-	+"          <field name=\"propertyInstance\" readonly=\"false\" scope=\"instance\" datatype=\"String\">"
-	+"              <description>Property description</description>"
-	+"          </field>"
-	+"          <field name=\"propertyStatic\" readonly=\"false\" scope=\"static\" datatype=\"String\">"
-	+"              <description>Property description</description>"
-	+"          </field>"
-	+"      </fields>"
-	+"      <methods>"
-	+"          <method name=\"functionInstance\" scope=\"instance\">"
-	+"              <description>Method description</description>"
-	+"              <parameters>"
-	+"                  <parameter name=\"param\" required=\"true\" datatype=\"String\">"
-	+"                      <description>Parameter description</description>"
-	+"                  </parameter>"
-	+"              </parameters>"
-	+"              <returns datatype=\"String\">"
-	+"                <description>...</description>"
-	+"              </returns>"
-	+"          </method>"
-	+"          <method name=\"functionStatic\" scope=\"static\">"
-	+"              <description>Method description</description>"
-	+"              <parameters/>"
-	+"              <returns datatype=\"String\">" 
-	+"                <description>...</description>" 
-	+"              </returns>"
-	+"          </method>"
-	+"      </methods>"
-	+"  </class>"
-	+"</api>";
-	
-	public OaaMetadataTests(String name) {
-		super(name);
-
-	}
-	
-	protected void runNegativeTest(String[] testFiles,String[]classLib, String expectedProblemLog) {
-		HashMap options = new HashMap();
-		String[] defaultClassPaths = getDefaultClassPaths();
-		String [] classLibs=new String[classLib.length+defaultClassPaths.length];
-		System.arraycopy(classLib, 0, classLibs, 0, classLib.length);
-		System.arraycopy(defaultClassPaths, 0, classLibs, classLib.length, defaultClassPaths.length);
-		runNegativeTest(
-				testFiles, 
-			expectedProblemLog, 
-			classLibs  , 
-			false /* flush output directory */, 
-			options /* no custom options */,
-			false /* do not generate output */,
-			false /* do not show category */, 
-			false /* do not show warning token */, 
-			false  /* do not skip javac for this peculiar test */,
-			false  /* do not perform statements recovery */,
-			null);
-	}
-	
-
-	
-	public void test001()
-	{
-		
-		LibraryAPIs apis=MetadataReader.readAPIsFromString(LIB1,"");
-		assertTrue(apis.classes!=null && apis.classes.length==1);
-	}
-	
-	
-	public void test003()	{	// local var 
-		String libDir=Util.copyToOutput("libDir/"+IOAAMetaDataConstants.METADATA_FILE, LIB1);
-		this.runNegativeTest(
-				new String[] {
-						"X.js",
-						"var i=new libraryname.ClassName(1);\n" +
-						"var d=i.propertyInstance;\n" +
-						"var e=i.functionInstance(1);\n" +
-						"\n"
-				},
-				new String[]{libDir},
-				""
-		);
-	}
-	
-	
-	public void testInclude1()	{	 
-		String base="<api xmlns=\"http://ns.openajax.org/api\" version=\"...\" apiType=\"JavaScript\">"
-		+"   <class name=\"cls1\" superclass=\"Object\">"
-		+"      <include src=\"incl2.xml\"/>"
-		+"  </class>"
-		+"  <include src=\"..\\incl1.xml\"/>"
-		+"</api>";
-		String incl1="<fragment xmlns=\"http://ns.openajax.org/api\">"
-			+"   <class name=\"cls2\" superclass=\"Object\">"
-			+"  </class>"
-			+"</fragment>";
-		String incl2="<fragment xmlns=\"http://ns.openajax.org/api\">"
-			+"          <method name=\"functionInstance\" scope=\"instance\"/>"
-			+"</fragment>";
-
-		String filePath=Util.copyToOutput("libDir/"+IOAAMetaDataConstants.METADATA_FILE, base);
-		Util.copyToOutput("incl1.xml", incl1);
-		Util.copyToOutput("libDir/incl2.xml", incl2);
-
-		LibraryAPIs apis=MetadataReader.readAPIsFromFile(filePath);
-		assertTrue(apis.classes!=null && apis.classes.length==2);
-		
-		ClassData classData = apis.classes[0];
-		assertTrue(classData.methods!=null && classData.methods.length==1);
-		
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ProblemConstructorTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ProblemConstructorTest.java
deleted file mode 100644
index 134221d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ProblemConstructorTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-public class ProblemConstructorTest extends AbstractRegressionTest {
-
-public ProblemConstructorTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-public static Class testClass() {
-	return ProblemConstructorTest.class;
-}
-
-public void test001() {
-	this.runNegativeTest(
-		new String[] {
-			"prs/Test1.java",
-			"package prs;	\n" +
-			"import java.io.IOException;	\n" +
-			"public class Test1 {	\n" +
-			"String s = 3;	\n" +
-			"Test1() throws IOException {	\n" +
-			"}	\n" +
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in prs\\Test1.java (at line 4)\n" + 
-		"	String s = 3;	\n" + 
-		"	       ^\n" + 
-		"Type mismatch: cannot convert from int to String\n" + 
-		"----------\n",
-		null,
-		true,
-		null,
-		true,
-		false,
-		false);
-
-	this.runNegativeTest(
-		new String[] {
-			"prs/Test2.java",
-			"package prs;	\n" +
-			"import java.io.IOException;	\n" +
-			"public class Test2 {	\n" +
-			"public void foo() {	\n" +
-			"try {	\n" +
-			"Test1 t = new Test1();	\n" +
-			"System.out.println();	\n" +
-			"} catch(IOException e)	\n" +
-			"{	\n" +
-			"e.printStackTrace();	\n" +
-			"}	\n" +
-			"}	\n" +
-			"}"
-		},
-		"",
-		null,
-		false);
-}
-// 49843
-public void test002() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public X();\n" + 
-			"    public Y();\n" + 
-			"    \n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	public X();\n" + 
-		"	       ^^^\n" + 
-		"This method requires a body instead of a semicolon\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	public Y();\n" + 
-		"	       ^^^\n" + 
-		"Return type for the method is missing\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 3)\n" + 
-		"	public Y();\n" + 
-		"	       ^^^\n" + 
-		"This method requires a body instead of a semicolon\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=163443
-public void test003() {
-	this.runNegativeTest(
-		new String[] {
-			"Example.java",
-			"class Example {\n" + 
-			"  private Example() {\n" + 
-			"  }\n" + 
-			"  public Example(int i) {\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"class E1 {\n" + 
-			"    private E1(int i) {}\n" + 
-			"    private E1(long l) {}\n" + 
-			"}\n" + 
-			"class E2 {\n" + 
-			"    private E2(int i) {}\n" + 
-			"}\n" + 
-			"class E3 {\n" + 
-			"    public E3(int i) {}\n" + 
-			"    Zork z;\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. WARNING in Example.java (at line 2)\n" + 
-		"	private Example() {\n" + 
-		"	        ^^^^^^^^^\n" + 
-		"The constructor Example() is never used locally\n" + 
-		"----------\n" + 
-		"2. ERROR in Example.java (at line 16)\n" + 
-		"	Zork z;\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n");
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ProblemTypeAndMethodTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ProblemTypeAndMethodTest.java
deleted file mode 100644
index f94f6b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ProblemTypeAndMethodTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-public class ProblemTypeAndMethodTest extends AbstractRegressionTest {
-public ProblemTypeAndMethodTest(String name) {
-	super(name);
-}
-// Static initializer to specify tests subset using TESTS_* static variables
-// All specified tests which does not belong to the class are skipped...
-static {
-//		TESTS_NAMES = new String[] { "test127" };
-//		TESTS_NUMBERS = new int[] { 5 };
-//		TESTS_RANGE = new int[] { 169, 180 };
-}
-
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-
-public static Class testClass() {  
-	return ProblemTypeAndMethodTest.class;
-}
-
-public void test001() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"        interface Moosh { void foo(); }\n" + 
-			"\n" + 
-			"        static abstract class A implements Moosh {}\n" + 
-			"\n" + 
-			"        static class W extends A {}\n" + 
-			"        static class Y extends A {}\n" + 
-			"        static class Z extends A {}\n" + 
-			"        public static void main(String[] args) {\n" + 
-			"                new W();  // throws ClassFormatError\n" + 
-			"        }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	static class W extends A {}\n" + 
-		"	             ^\n" + 
-		"The type X.W must implement the inherited abstract method X.Moosh.foo()\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 7)\n" + 
-		"	static class Y extends A {}\n" + 
-		"	             ^\n" + 
-		"The type X.Y must implement the inherited abstract method X.Moosh.foo()\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 8)\n" + 
-		"	static class Z extends A {}\n" + 
-		"	             ^\n" + 
-		"The type X.Z must implement the inherited abstract method X.Moosh.foo()\n" + 
-		"----------\n",
-		null /* no extra class libraries */, 
-		true /* flush output directory */, 
-		null /* no custom options */,
-		true /* do not generate output */,
-		false /* do not show category */, 
-		false /* do not show warning token */, 
-		false  /* do not skip javac for this peculiar test */,
-		false  /* do not perform statements recovery */,
-		null);
-//	ClassFileReader reader = this.getClassFileReader(OUTPUT_DIR + File.separator  +"X$W.class", "X$W");
-//	IBinaryMethod[] methods = reader.getMethods();
-//	assertEquals("Wrong size", 2, methods.length);
-//	int counter = 0;
-//	for (int i = 0; i < 2; i++) {
-//		IBinaryMethod method = methods[i];
-//		if (new String(method.getSelector()).equals("foo")) {
-//			counter++;
-//		}
-//	}
-//	assertEquals("Wrong number of foo method", 1, counter);
-//	
-//	reader = this.getClassFileReader(OUTPUT_DIR + File.separator  +"X$Y.class", "X$Y");
-//	methods = reader.getMethods();
-//	assertEquals("Wrong size", 2, methods.length);
-//	counter = 0;
-//	for (int i = 0; i < 2; i++) {
-//		IBinaryMethod method = methods[i];
-//		if (new String(method.getSelector()).equals("foo")) {
-//			counter++;
-//		}
-//	}
-//	assertEquals("Wrong number of foo method", 1, counter);
-//	
-//	reader = this.getClassFileReader(OUTPUT_DIR + File.separator  +"X$Z.class", "X$Z");
-//	methods = reader.getMethods();
-//	assertEquals("Wrong size", 2, methods.length);
-//	counter = 0;
-//	for (int i = 0; i < 2; i++) {
-//		IBinaryMethod method = methods[i];
-//		if (new String(method.getSelector()).equals("foo")) {
-//			counter++;
-//		}
-//	}
-//	assertEquals("Wrong number of foo method", 1, counter);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RegressionTestSetup.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RegressionTestSetup.java
deleted file mode 100644
index c32d341..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RegressionTestSetup.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import org.eclipse.wst.jsdt.core.tests.util.CompilerTestSetup;
-import org.eclipse.wst.jsdt.core.tests.util.TestVerifier;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.env.INameEnvironment;
-import org.eclipse.wst.jsdt.internal.compiler.batch.FileSystem;
-
-import junit.framework.*;
-
-public class RegressionTestSetup extends CompilerTestSetup {
-	
-	TestVerifier verifier = new TestVerifier(true);
-	INameEnvironment javaClassLib;
-	
-	public RegressionTestSetup(Test test, String complianceLevel) {
-		super(test, complianceLevel);
-	}
-
-	protected void setUp() {
-		if (this.javaClassLib == null) {
-			// Create name environment
-			this.javaClassLib = new FileSystem(Util.getJavaClassLibs(), new String[0], null);
-		}
-		super.setUp();
-	}
-	protected void tearDown() {
-		this.verifier.shutDown();
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/Requestor.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/Requestor.java
deleted file mode 100644
index 8e37c2a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/Requestor.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Hashtable;
-
-import junit.framework.Assert;
-
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;
-import org.eclipse.wst.jsdt.internal.compiler.ICompilerRequestor;
-import org.eclipse.wst.jsdt.internal.compiler.IProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblem;
-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;
-
-public class Requestor extends Assert implements ICompilerRequestor {
-	public boolean hasErrors = false;
-	public IProblemFactory problemFactory;
-	public String outputPath;
-	private boolean generateOutput;
-	public Hashtable expectedProblems = new Hashtable();
-	public String problemLog = "";
-	public ICompilerRequestor clientRequestor;
-	public boolean showCategory = false;
-	public boolean showWarningToken = false;
-	
-public Requestor(IProblemFactory problemFactory, String outputPath, boolean generateOutput, ICompilerRequestor clientRequestor, boolean showCategory, boolean showWarningToken) {
-	this.problemFactory = problemFactory;
-	this.outputPath = outputPath;
-	this.generateOutput = generateOutput;
-	this.clientRequestor = clientRequestor;
-	this.showCategory = showCategory;
-	this.showWarningToken = showWarningToken;
-}
-public void acceptResult(CompilationResult compilationResult) {
-	StringBuffer buffer = new StringBuffer(100);
-	hasErrors |= compilationResult.hasErrors();
-	if (compilationResult.hasProblems() || compilationResult.hasTasks()) {
-		CategorizedProblem[] problems = compilationResult.getAllProblems();
-		int count = problems.length;
-		int problemCount = 0;
-		char[] unitSource = compilationResult.compilationUnit.getContents();
-		for (int i = 0; i < count; i++) { 
-			DefaultProblem problem = (DefaultProblem) problems[i];
-			if (problem != null) {
-				if (problemCount == 0)
-					buffer.append("----------\n");
-				problemCount++;
-				buffer.append(problemCount + (problem.isError() ? ". ERROR" : ". WARNING"));
-				buffer.append(" in " + new String(problem.getOriginatingFileName()).replace('/', '\\'));
-				try {
-					buffer.append(problem.errorReportSource(unitSource));
-					buffer.append("\n");
-					if (showCategory) {
-						String category = problem.getInternalCategoryMessage();
-						if (category != null) {
-							buffer.append("[@cat:").append(category).append("] ");
-						}
-					}
-					if (showWarningToken) {
-						long irritant = ProblemReporter.getIrritant(problem.getID());
-						if (irritant != 0) {
-							String warningToken = CompilerOptions.warningTokenFromIrritant(irritant);
-							if (warningToken != null) {
-								buffer.append("[@sup:").append(warningToken).append("] ");
-							}
-						}
-					}
-					buffer.append(problem.getMessage());
-					buffer.append("\n");
-				} catch (Exception e) {
-				}
-				buffer.append("----------\n");
-			}
-		}
-		problemLog += buffer.toString();
-	}
-	if (this.clientRequestor != null) {
-		this.clientRequestor.acceptResult(compilationResult);
-	}
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RunComparableTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RunComparableTests.java
deleted file mode 100644
index aa940ce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RunComparableTests.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-
-import org.eclipse.wst.jsdt.core.tests.future.compiler.regression.AmbiguousMethodTest;
-import org.eclipse.wst.jsdt.core.tests.future.compiler.regression.Compliance_1_5;
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Run all compiler regression tests
- */
-public class RunComparableTests extends junit.framework.TestCase {
-
-	public static ArrayList ALL_CLASSES = null;
-	static {
-		ALL_CLASSES = new ArrayList();
-		ALL_CLASSES.add(AmbiguousMethodTest.class);
-//		ALL_CLASSES.add(AutoBoxingTest.class);
-		ALL_CLASSES.add(Compliance_1_5.class);
-//		ALL_CLASSES.add(ForeachStatementTest.class);
-		ALL_CLASSES.add(StaticImportTest.class);
-		ALL_CLASSES.add(VarargsTest.class);
-		ALL_CLASSES.add(MethodVerifyTest.class);
-//		ALL_CLASSES.add(EnclosingMethodAttributeTest.class);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-	}
-	
-	public RunComparableTests(String testName) {
-		super(testName);
-	}
-
-	public static Test suite() {
-		TestSuite ts = new TestSuite(RunComparableTests.class.getName());
-		for (int i = 0, size=ALL_CLASSES.size(); i < size; i++) {
-			Class testClass = (Class) ALL_CLASSES.get(i);
-			try {
-				Method suiteMethod = testClass.getDeclaredMethod("suite", new Class[0]); //$NON-NLS-1$
-				Test suite = (Test)suiteMethod.invoke(null, new Object[0]);
-				ts.addTest(suite);
-			} catch (IllegalAccessException e) {
-				e.printStackTrace();
-			} catch (InvocationTargetException e) {
-				e.getTargetException().printStackTrace();
-			} catch (NoSuchMethodException e) {
-				e.printStackTrace();
-			}
-		}
-		return ts;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RuntimeTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RuntimeTests.java
deleted file mode 100644
index f8d7019..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/RuntimeTests.java
+++ /dev/null
@@ -1,540 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- * Here we focus on various aspects of the runtime behavior of the generated 
- * code.
- */
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-public class RuntimeTests extends AbstractRegressionTest {
-
-public RuntimeTests(String name) {
-	super(name);
-}
-
-// Static initializer to specify tests subset using TESTS_* static variables
-// All specified tests which does not belong to the class are skipped...
-// Only the highest compliance level is run; add the VM argument
-// -Dcompliance=1.4 (for example) to lower it if needed
-static {
-//		TESTS_NAMES = new String[] { "test0001" };
-//	 	TESTS_NUMBERS = new int[] { 1 };   
-//		TESTS_RANGE = new int[] { 1, -1 }; 
-}
-
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-	
-public static Class testClass() {
-	return RuntimeTests.class;
-}
-
-// memory exhaustion - try to allocate too big an instance
-public void test0001_memory_exhaustion() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static void main(String args[]) {\n" + 
-			"    try {" +
-			"      Y y = new Y(Integer.MAX_VALUE);\n" + 
-			"    }" +
-			"    catch (OutOfMemoryError e) {\n" + 
-			"      System.out.println(\"SUCCESS\");\n" +
-			"      return;\n" +
-			"    }\n" + 
-			"    System.out.println(\"FAILURE\");\n" +
-			"  }\n" + 
-			"}\n" +
-			"class Y {\n" + 
-			"  long storage[];\n" + 
-			"  Y(int itemsNb) {\n" + 
-			"    storage = new long[itemsNb];\n" +
-			"  }\n" + 
-			"}\n"},
-		"SUCCESS"
-	);
-}
-
-// synchronization - concurrent access to a resource with explicit and
-// implicit locks
-public void test0500_synchronization() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main (String args[]) {\n" + 
-			"  new Lock().implicitLock();\n" + 
-			"}\n" + 
-			"}\n" + 
-			"class Lock extends Thread {\n" + 
-			"  byte step = 0;\n" + 
-			"  void logStep(String start) {\n" + 
-			"    System.out.println(start + \" \" + this.step); //$NON-NLS-1$\n" + 
-			"  }\n" + 
-			"  public void run() {\n" + 
-			"    for (int i = 1; i < 3; i++) {\n" + 
-			"      logStep(\"explicit lock\"); //$NON-NLS-1$\n" + 
-			"      synchronized (this) {\n" + 
-			"        this.step++;\n" + 
-			"        notify();\n" + 
-			"        while(this.step < 2 * i) {\n" + 
-			"          try {\n" + 
-			"            wait();\n" + 
-			"          } catch (InterruptedException e) {\n" + 
-			"            System.out.println(\"EXCEPTION\"); //$NON-NLS-1$\n" + 
-			"          }\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  synchronized void implicitLock() {\n" + 
-			"      this.start();\n" + 
-			"      for (int i = 0; i < 2; i++) {\n" + 
-			"        while (this.step < 1 + i * 2) {\n" + 
-			"          try {\n" + 
-			"            wait();\n" + 
-			"          } catch (InterruptedException e) {\n" + 
-			"            System.out.println(\"EXCEPTION\"); //$NON-NLS-1$\n" + 
-			"          }\n" + 
-			"        }\n" + 
-			"        logStep(\"implicit lock\"); //$NON-NLS-1$\n" + 
-			"        this.step++;\n" + 
-			"        notify();\n" + 
-			"      }\n" + 
-			"      return;\n" + 
-			"  }\n" + 
-			"}\n"},
-		"explicit lock 0\n" + 
-		"implicit lock 1\n" + 
-		"explicit lock 2\n" + 
-		"implicit lock 3"
-	);
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126712
-// reflection - access to a public method of a package visible
-// class through a public extending class
-public void _test0600_reflection() {
-	if (COMPLIANCE_1_3.equals(this.complianceLevel) ||
-			COMPLIANCE_1_4.equals(this.complianceLevel)) {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.lang.reflect.*;\n" + 
-				"import p.*;\n" + 
-				"public class X {\n" + 
-				"static public void main (String args[]) {\n" + 
-				"  Y y = new Y();\n" +
-				"  try {\n" +
-				"    Method foo = Y.class.getMethod(\"foo\", null);\n" +
-				"    foo.invoke(y, null);\n" +
-				"    y.foo();\n" +
-				"  }\n" +
-				"  catch (Throwable t) {\n" +
-				"    System.out.println(\"FAILURE: \" + t.getMessage());\n" +
-				"    t.printStackTrace(System.out);\n" +
-				"  }\n" + 
-				"}\n" + 
-				"}\n",
-				"p/Y.java",
-				"package p;\n" +
-				"public class Y extends Z {\n" + 
-				"  /* empty */\n" + 
-				"}\n",
-				"p/Z.java",
-				"package p;\n" +
-				"class Z {\n" + 
-				"  public void foo() {\n" + 
-				"  System.out.println(\"SUCCESS\"); //$NON-NLS-1$\n" + 
-				"  }\n" + 
-				"}\n"},
-			"SUCCESS\nSUCCESS"
-		);
-	}
-	else {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.lang.reflect.*;\n" + 
-				"import p.*;\n" + 
-				"public class X {\n" + 
-				"static public void main (String args[]) {\n" + 
-				"  Y y = new Y();\n" +
-				"  try {\n" +
-				"    Method foo = Y.class.getMethod(\"foo\");\n" +
-				"    foo.invoke(y);\n" +
-				"    y.foo();\n" +
-				"  }\n" +
-				"  catch (Throwable t) {\n" +
-				"    System.out.println(\"FAILURE: \" + t.getMessage());\n" +
-				"    t.printStackTrace(System.out);\n" +
-				"  }\n" + 
-				"}\n" + 
-				"}\n",
-				"p/Y.java",
-				"package p;\n" +
-				"public class Y extends Z {\n" + 
-				"  /* empty */\n" + 
-				"}\n",
-				"p/Z.java",
-				"package p;\n" +
-				"class Z {\n" + 
-				"  public void foo() {\n" + 
-				"  System.out.println(\"SUCCESS\"); //$NON-NLS-1$\n" + 
-				"  }\n" + 
-				"}\n"},
-			"SUCCESS\nSUCCESS"
-		);
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126712
-// reflection - access to a public field of a package visible
-// class through a public extending class
-public void _test0601_reflection() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"import java.lang.reflect.*;\n" + 
-			"import p.*;\n" + 
-			"public class X {\n" + 
-			"static public void main (String args[]) {\n" + 
-			"  Y y = new Y();\n" +
-			"  try {\n" +
-			"    Field f = Y.class.getField(\"m\");\n" +
-			"    System.out.println(y.m);\n" +
-			"    System.out.println(f.get(y));\n" +
-			"  }\n" +
-			"  catch (Throwable t) {\n" +
-			"    System.out.println(\"FAILURE: \" + t.getMessage());\n" +
-			"    t.printStackTrace(System.out);\n" +
-			"  }\n" + 
-			"}\n" + 
-			"}\n",
-			"p/Y.java",
-			"package p;\n" +
-			"public class Y extends Z {\n" + 
-			"  /* empty */\n" + 
-			"}\n",
-			"p/Z.java",
-			"package p;\n" +
-			"class Z {\n" + 
-			"  public String m = \"SUCCESS\";\n" + 
-			"}\n"},
-		"SUCCESS\nSUCCESS"
-	);
-}
-
-// partial rebuild - method signature changed (return type)
-public void test1000_partial_rebuild() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main(String args[]) {\n" + 
-			"  Z.go();\n" +
-			"}\n" + 
-			"}\n",
-			"Z.java",
-			"public class Z {\n" + 
-			"static public void go() {\n" + 
-			"  int flag = 0;\n" +
-			"  try {\n" +
-			"    new Y().random();\n" + 
-			"    flag = 1;\n" + 
-			"  }\n" +
-			"  catch (NoSuchMethodError e) {\n" +
-			"    flag = 2;\n" + 
-			"  }\n" +
-			"  catch (Throwable t) {\n" +
-			"    flag = 3;\n" + 
-			"  }\n" +
-			"  System.out.println(flag);\n" + 
-			"}\n" + 
-			"}\n",
-			"Y.java",
-			"public class Y {\n" + 
-			"java.util.Random generator = new java.util.Random();" +
-			"public byte random() {\n" + 
-			"  return (byte) (generator.nextInt() % Byte.MAX_VALUE);\n" + 
-			"}\n" + 
-			"}\n", 
-			},
-		"1");
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main(String args[]) {\n" + 
-			"  Z.go();\n" +
-			"}\n" + 
-			"}\n",
-			"Y.java",
-			"public class Y {\n" + 
-			"java.util.Random generator = new java.util.Random();" +
-			"public int random() {\n" + // random now returns an int
-			"  return generator.nextInt();\n" + 
-			"}\n" + 
-			"}\n", 
-			},
-		"2",
-		null,
-		false, // do not purge output directory - pick old version of Z.class
-		null);
-}
-
-// partial rebuild - method signature changed (parameter type)
-public void test1001_partial_rebuild() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main(String args[]) {\n" + 
-			"  Z.go();\n" +
-			"}\n" + 
-			"}\n",
-			"Z.java",
-			"public class Z {\n" + 
-			"static public void go() {\n" + 
-			"  byte flag = 0;\n" +
-			"  try {\n" +
-			"    new Y().random(flag);\n" + 
-			"    flag = 1;\n" + 
-			"  }\n" +
-			"  catch (NoSuchMethodError e) {\n" +
-			"    flag = 2;\n" + 
-			"  }\n" +
-			"  catch (Throwable t) {\n" +
-			"    flag = 3;\n" + 
-			"  }\n" +
-			"  System.out.println(flag);\n" + 
-			"}\n" + 
-			"}\n",
-			"Y.java",
-			"public class Y {\n" + 
-			"public int random(byte seed) {\n" + 
-			"  return seed++;\n" + 
-			"}\n" + 
-			"}\n", 
-			},
-		"1");
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main(String args[]) {\n" + 
-			"  Z.go();\n" +
-			"}\n" + 
-			"}\n",
-			"Y.java",
-			"public class Y {\n" + 
-			"public int random(int seed) {\n" + // seed now of type int 
-			"  return seed++;\n" + 
-			"}\n" + 
-			"}\n", 
-			},
-		"2",
-		null,
-		false, // do not purge output directory - pick old version of Z.class
-		null);
-}
-
-// partial rebuild - method signature changed (visibility)
-public void test1002_partial_rebuild() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main(String args[]) {\n" + 
-			"  new Z().go();\n" +
-			"}\n" + 
-			"}\n",
-			"Z.java",
-			"public class Z extends p.Y {\n" +
-			"  class ZInner extends YInner {\n" +
-			"    // empty\n" +
-			"  }\n" +
-			"public void go() {\n" + 
-			"  byte flag = 0;\n" +
-			"  try {\n" +
-			"    new ZInner().foo();\n" + 
-			"    flag = 1;\n" + 
-			"  }\n" +
-			"  catch (IllegalAccessError e) {\n" +
-			"    flag = 2;\n" + 
-			"  }\n" +
-			"  catch (Throwable t) {\n" +
-			"    flag = 3;\n" + 
-			"  }\n" +
-			"  System.out.println(flag);\n" + 
-			"}\n" + 
-			"}\n",
-			"p/Y.java",
-			"package p;\n" + 
-			"public class Y {\n" + 
-			"  public class YInner {\n" + 
-			"    public void foo() {\n" +
-			"      return;\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n", 
-			},
-		"1");
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main(String args[]) {\n" + 
-			"  new Z().go();\n" +
-			"}\n" + 
-			"}\n",
-			"p/Y.java",
-			"package p;\n" + 
-			"public class Y {\n" + 
-			"  public class YInner {\n" + 
-			"    void foo() {\n" + // now foo no more visible (package only)
-			"      return;\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n", 
-			},
-		"2",
-		null,
-		false, // do not purge output directory - pick old version of Z.class
-		null);
-}
-
-// partial rebuild - method signature changed (visibility)
-public void test1003_partial_rebuild() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main(String args[]) {\n" + 
-			"  new Z().go();\n" +
-			"}\n" + 
-			"}\n",
-			"Z.java",
-			"public class Z extends p.Y {\n" +
-			"  class ZInner extends YInner {\n" +
-			"    // empty\n" +
-			"  }\n" +
-			"public void go() {\n" + 
-			"  byte flag = 0;\n" +
-			"  try {\n" +
-			"    new ZInner().foo();\n" + 
-			"    flag = 1;\n" + 
-			"  }\n" +
-			"  catch (IllegalAccessError e) {\n" +
-			"    flag = 2;\n" + 
-			"  }\n" +
-			"  catch (Throwable t) {\n" +
-			"    flag = 3;\n" + 
-			"  }\n" +
-			"  System.out.println(flag);\n" + 
-			"}\n" + 
-			"}\n",
-			"p/Y.java",
-			"package p;\n" + 
-			"public class Y {\n" + 
-			"  public class YInner {\n" + 
-			"    public void foo() {\n" +
-			"      return;\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n", 
-			},
-		"1");
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"static public void main(String args[]) {\n" + 
-			"  new Z().go();\n" +
-			"}\n" + 
-			"}\n",
-			"p/Y.java",
-			"package p;\n" + 
-			"public class Y {\n" + 
-			"  public class YInner {\n" + 
-			"    protected void foo() {\n" + 
-			  // now foo no more visible (package + inheriting classes only)
-			"      return;\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n", 
-			},
-		"2",
-		null,
-		false, // do not purge output directory - pick old version of Z.class
-		null);
-}
-
-// partial rebuild - extending class now redefines extended class fields and
-//                   methods
-// was Compliance_1_x#test009
-public void test1004_partial_rebuild() {
-	this.runConformTest(
-		new String[] {
-			"p1/Z.java",
-			"package p1; \n"+
-			"public class Z {	\n" +
-			"	public static void main(String[] arguments) { \n"+
-			"		Y y = new Y();	\n" +
-			"		System.out.print(y.field);	\n"	+
-			"		System.out.print(y.staticField);	\n"	+
-			"		System.out.print(y.method());	\n"	+
-			"		System.out.println(y.staticMethod());	\n"	+
-			"	} \n"+
-			"} \n",
-			"p1/X.java",
-			"package p1; \n"+
-			"public class X { \n"+
-			"	public String field = \"X.field-\";	\n" +
-			"	public static String staticField = \"X.staticField-\";	\n" +
-			"	public String method(){ return \"X.method()-\";	}	\n" +
-			"	public static String staticMethod(){ return \"X.staticMethod()-\";	}	\n" +
-			"} \n",
-			"p1/Y.java",
-			"package p1; \n"+
-			"public class Y extends X { \n"+
-			"} \n"
-		},
-		"X.field-X.staticField-X.method()-X.staticMethod()-");
-	String expectedOutput =
-		this.complianceLevel.equals(COMPLIANCE_1_3) ?
-			"X.field-X.staticField-Y.method()-X.staticMethod()-" :
-			"Y.field-Y.staticField-Y.method()-Y.staticMethod()-";
-	this.runConformTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1; \n"+
-			"public class Y extends X { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		Z.main(arguments);	\n" +
-			"	}	\n" +
-			"	public String field = \"Y.field-\";	\n" +
-			"	public static String staticField = \"Y.staticField-\";	\n" +
-			"	public String method(){ return \"Y.method()-\";	}	\n" +
-			"	public static String staticMethod(){ return \"Y.staticMethod()-\";	}	\n" +
-			"} \n"
-		},
-		expectedOutput, // expected output
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ScannerTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ScannerTest.java
deleted file mode 100644
index 483f01d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/ScannerTest.java
+++ /dev/null
@@ -1,1202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.ToolFactory;
-import org.eclipse.wst.jsdt.core.compiler.IScanner;
-import org.eclipse.wst.jsdt.core.compiler.ITerminalSymbols;
-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.parser.Scanner;
-import org.eclipse.wst.jsdt.internal.compiler.parser.TerminalTokens;
-import org.eclipse.wst.jsdt.internal.core.util.PublicScanner;
-
-public class ScannerTest extends AbstractRegressionTest {
-
-	public ScannerTest(String name) { 
-		super(name);
-	}
-	// Static initializer to specify tests subset using TESTS_* static variables
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_NAMES = new String[] { "test000" };
-//		TESTS_NUMBERS = new int[] { 42, 43, 44 };
-//		TESTS_RANGE = new int[] { 11, -1 };
-	}
-	
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(testClass());
-	}
-
-	public static Class testClass() {
-		return ScannerTest.class;
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23181
-	 */
-	public void test001() {
-		String sourceA001 = "\\u003b";
-		IScanner scanner = ToolFactory.createScanner(false, true, false, false);
-		scanner.setSource(sourceA001.toCharArray());
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong token type", ITerminalSymbols.TokenNameSEMICOLON, token);
-	}
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23181
-	 */
-	public void test002() {
-		String sourceA002 = "// tests\n  ";
-		IScanner scanner = ToolFactory.createScanner(false, true, false, false);
-		scanner.setSource(sourceA002.toCharArray());
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameWHITESPACE, token);
-			assertEquals("Wrong size", 2, scanner.getCurrentTokenSource().length);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23181
-	 */
-	public void test003() {
-		String sourceA003 = "// tests\n  ";
-		IScanner scanner = ToolFactory.createScanner(true, true, false, false);
-		scanner.setSource(sourceA003.toCharArray());
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameCOMMENT_LINE, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameWHITESPACE, token);
-			assertEquals("Wrong size", 2, scanner.getCurrentTokenSource().length);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-
-	/**
-	 * float constant can have exponent part without dot: 01e0f
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=30704
-	 */
-	public void test004() {
-		String source = "01e0f";
-		IScanner scanner = ToolFactory.createScanner(false, false, false, false);
-		scanner.setSource(source.toCharArray());
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameFloatingPointLiteral, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=43437
-	 */
-	public void test005() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("\"Hello\"");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameStringLiteral, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=43485
-	 */
-	public void test006() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, false);
-		try {
-			scanner.setSource(null);
-		} catch (NullPointerException e) {
-			assertTrue(false);
-		}
-	}
-
-	/*
-	 * Check that bogus resetTo issues EOFs
-	 */
-	public void test007() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, false);
-		char[] source = "int i = 0;".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(source.length + 50, source.length - 1);
-		int token = -1;
-		try {
-			token = scanner.getNextToken();
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Expecting EOF", ITerminalSymbols.TokenNameEOF, token);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test008() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0x11aa.aap-3333f".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int token = -1;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameFloatingPointLiteral, token);
-			token = scanner.getNextToken();
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Expecting EOF", ITerminalSymbols.TokenNameEOF, token);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test009() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_4);
-		char[] source = "0x11aa.aap-3333f".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 5, counter);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test010() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0x11aa.aap-3333f".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test011() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0x.aap-3333f".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test012() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0xaap3f".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test013() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0xaapaf".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(true);
-			return;
-		}
-		assertTrue(false);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test014() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0xaap.1f".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(true);
-			return;
-		}
-		assertTrue(false);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test015() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0xaa.p1f".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test016() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0xaa.p1F".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test017() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0xaa.p1D".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74126
-	 */
-	public void test018() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0xaa.p1d".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74934
-	 */
-	public void test019() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_4);
-		char[] source = "0x".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(true);
-			return;
-		}
-		assertTrue(false);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74934
-	 */
-	public void test020() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0x".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(true);
-			return;
-		}
-		assertTrue(false);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74934
-	 */
-	public void test021() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_4);
-		char[] source = "0x1".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74934
-	 */
-	public void test022() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0x1".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		assertEquals("Wrong number of tokens", 1, counter);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78905 
-	 */
-	public void test023() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_5);
-		char[] source = "0x.p-2".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-			}
-			assertTrue(false);
-		} catch (InvalidInputException e) {
-			assertTrue(true);
-		}
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=84398
-	 */
-	public void test024() {
-		IScanner scanner = ToolFactory.createScanner(false, false, true, JavaScriptCore.VERSION_1_5);
-		char[] source = "public class X {\n\n}".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		int counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-		}
-		
-		assertEquals("wrong number of tokens", 5, counter);
-		int[] lineEnds = scanner.getLineEnds();
-		assertNotNull("No line ends", lineEnds);
-		assertEquals("wrong length", 2, lineEnds.length);
-		source = "public class X {}".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		lineEnds = scanner.getLineEnds();
-		assertNotNull("No line ends", lineEnds);
-		assertEquals("wrong length", 0, lineEnds.length);
-		
-		counter = 0;
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-				counter++;
-			}
-		} catch (InvalidInputException e) {
-		}
-		
-		assertEquals("wrong number of tokens", 5, counter);
-		lineEnds = scanner.getLineEnds();
-		assertNotNull("No line ends", lineEnds);
-		assertEquals("wrong length", 0, lineEnds.length);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=84398
-	 */
-	public void test025() {
-		IScanner scanner = ToolFactory.createScanner(true, true, false, true);
-		scanner.setSource("String\r\nwith\r\nmany\r\nmany\r\nline\r\nbreaks".toCharArray());
-		
-		try {
-			while(scanner.getNextToken()!=ITerminalSymbols.TokenNameEOF){}
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-		
-		assertEquals("Wrong size", 5, scanner.getLineEnds().length);
-		
-		scanner.setSource("No line breaks here".toCharArray()); // expecting line breaks to reset
-		assertEquals("Wrong size", 0, scanner.getLineEnds().length);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=86611 
-	 */
-	public void test026() {
-		IScanner scanner = ToolFactory.createScanner(false, false, false, JavaScriptCore.VERSION_1_4);
-		char[] source = "0x.p-2".toCharArray(); //$NON-NLS-1$
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		try {
-			while (scanner.getNextToken() != ITerminalSymbols.TokenNameEOF) {
-			}
-			assertTrue(false);
-		} catch (InvalidInputException e) {
-			assertTrue(true);
-		}
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test027() {
-		char[] source = ("class Test {\n" +
-				"  char  C = \"\\u005Cn\";\n" +
-				"}").toCharArray();
-		Scanner scanner = new Scanner(false, false, false, ClassFileConstants.JDK1_4, null, null, false);
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		try {
-			int token;
-			StringBuffer buffer = new StringBuffer();
-			while ((token = scanner.getNextToken()) != TerminalTokens.TokenNameEOF) {
-				try {
-					switch(token) {
-						case TerminalTokens.TokenNameEOF :
-							break;
-						default :
-							buffer.append(scanner.getCurrentTokenSource());
-							break;
-					}
-				} catch (ArrayIndexOutOfBoundsException e) {
-					e.printStackTrace();
-				}
-			}
-			assertEquals("Wrong contents", "classTest{charC=\"\n\";}", String.valueOf(buffer));
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}		
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test028() {
-		char[] source = ("class Test {\n" +
-				"  char  C = \'\\u005Cn\';\n" +
-				"}").toCharArray();
-		Scanner scanner = new Scanner(false, false, false, ClassFileConstants.JDK1_4, null, null, false);
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		try {
-			int token;
-			StringBuffer buffer = new StringBuffer();
-			while ((token = scanner.getNextToken()) != TerminalTokens.TokenNameEOF) {
-				try {
-					switch(token) {
-						case TerminalTokens.TokenNameStringLiteral :
-							buffer.append(new String(scanner.getCurrentTokenSourceString()));
-							break;
-						case TerminalTokens.TokenNameEOF :
-							break;
-						default :
-							buffer.append(scanner.getCurrentTokenSource());
-							break;
-					}
-				} catch (ArrayIndexOutOfBoundsException e) {
-					e.printStackTrace();
-				}
-			}
-			assertEquals("Wrong contents", "classTest{charC=\'\\n\';}", String.valueOf(buffer));
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}		
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test029() {
-		char[] source = ("class Test {\n" +
-				"  char  C = \"\\n\";\n" +
-				"}").toCharArray();
-		Scanner scanner = new Scanner(false, false, false, ClassFileConstants.JDK1_4, null, null, false);
-		scanner.setSource(source);
-		scanner.resetTo(0, source.length - 1);
-		try {
-			int token;
-			StringBuffer buffer = new StringBuffer();
-			while ((token = scanner.getNextToken()) != TerminalTokens.TokenNameEOF) {
-				try {
-					switch(token) {
-						case TerminalTokens.TokenNameEOF :
-							break;
-						default :
-							buffer.append(scanner.getCurrentTokenSource());
-							break;
-					}
-				} catch (ArrayIndexOutOfBoundsException e) {
-					e.printStackTrace();
-				}
-			}
-			assertEquals("Wrong contents", "classTest{charC=\"\n\";}", String.valueOf(buffer));
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}		
-	}
-	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test030() {
-		this.runConformTest(
-				new String[] {
-					"Test.java",
-					"public class Test {\n" +
-					"  static String C = \"\\n\";\n" +
-					"  \n" +
-					"  public static void main(String[] args) {\n" +
-					"  	System.out.print(C.length());\n" +
-					"  	System.out.print(C.charAt(0) == \'\\n\');\n" +
-					"  }\n" +
-					"}"
-				},
-				"1true");
-	}
-	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test031() {
-		this.runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test {\n" +
-				"  static String C = \"\\u005Cn\";\n" +
-				"  \n" +
-				"  public static void main(String[] args) {\n" +
-				"  	System.out.print(C.length());\n" +
-				"  	System.out.print(C.charAt(0) == \'\\n\');\n" +
-				"  }\n" +
-				"}"
-			},
-			"1true");
-	}
-	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test032() {
-		this.runConformTest(
-				new String[] {
-					"Test.java",
-					"public class Test {\n" +
-					"  static char C = \'\\u005Cn\';\n" +
-					"  \n" +
-					"  public static void main(String[] args) {\n" +
-					"  	System.out.print(C == \'\\n\');\n" +
-					"  }\n" +
-					"}"
-				},
-				"true");
-	}
-	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test033() {
-		this.runConformTest(
-				new String[] {
-					"Test.java",
-					"public class Test {\n" +
-					"  static char C = \\u0027\\u005Cn\\u0027;\n" +
-					"  \n" +
-					"  public static void main(String[] args) {\n" +
-					"  	System.out.print(C == \'\\n\');\n" +
-					"  }\n" +
-					"}"
-				},
-				"true");
-	}
-	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test034() {
-		this.runConformTest(
-				new String[] {
-					"Test.java",
-					"public class Test {\n" +
-					"  static String C = \"\u0043\\n\\u0043\";\n" +
-					"  \n" +
-					"  public static void main(String[] args) {\n" +
-					"  	System.out.print(C.length());\n" +
-					"  	System.out.print(C.charAt(1) == \'\\n\');\n" +
-					"  }\n" +
-					"}"
-				},
-				"3true");
-	}
-	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90414
-	public void test035() {
-		/*
-		 * Corresponding source:
-		 * 
-		 * public class Test {
-		 * 	  static String C = "\n";
-		 *    public static void main(String[] args) {
-		 * 	  	System.out.print(C.length());
-		 * 		  	System.out.print(C.charAt(0) == '\n');
-		 *    }
-		 * }
-		 */
-		this.runConformTest(
-				new String[] {
-					"Test.java",
-					"\\u0070\\u0075\\u0062\\u006c\\u0069\\u0063\\u0020\\u0063\\u006c\\u0061\\u0073\\u0073\\u0020\\u0054\\u0065\\u0073\\u0074\\u0020\\u007b\\u000A\n" +
-					"\\u0020\\u0020\\u0073\\u0074\\u0061\\u0074\\u0069\\u0063\\u0020\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u0020\\u0043\\u0020\\u003d\\u0020\\u0022\\u005c\\u006e\\u0022\\u003b\\u000A\n" +
-					"\\u0020\\u0020\\u000A\n" +
-					"\\u0020\\u0020\\u0070\\u0075\\u0062\\u006c\\u0069\\u0063\\u0020\\u0073\\u0074\\u0061\\u0074\\u0069\\u0063\\u0020\\u0076\\u006f\\u0069\\u0064\\u0020\\u006d\\u0061\\u0069\\u006e\\u0028\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\\u005b\\u005d\\u0020\\u0061\\u0072\\u0067\\u0073\\u0029\\u0020\\u007b\\u000A\n" +
-					"\\u0020\\u0020\\u0009\\u0053\\u0079\\u0073\\u0074\\u0065\\u006d\\u002e\\u006f\\u0075\\u0074\\u002e\\u0070\\u0072\\u0069\\u006e\\u0074\\u0028\\u0043\\u002e\\u006c\\u0065\\u006e\\u0067\\u0074\\u0068\\u0028\\u0029\\u0029\\u003b\\u000A\n" +
-					"\\u0020\\u0020\\u0009\\u0053\\u0079\\u0073\\u0074\\u0065\\u006d\\u002e\\u006f\\u0075\\u0074\\u002e\\u0070\\u0072\\u0069\\u006e\\u0074\\u0028\\u0043\\u002e\\u0063\\u0068\\u0061\\u0072\\u0041\\u0074\\u0028\\u0030\\u0029\\u0020\\u003d\\u003d\\u0020\\u0027\\u005c\\u006e\\u0027\\u0029\\u003b\\u000A\n" +
-					"\\u0020\\u0020\\u007d\\u0020\\u0009\\u000A\n" +
-					"\\u007d"
-				},
-				"1true");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106403
-	public void test036() {
-		try {
-			IScanner s = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-			char[] source = { ';', ' ' };
-			s.setSource(source);
-			s.resetTo(0, 0);
-			int token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameSEMICOLON, token);
-			char[] tokenSource = s.getCurrentTokenSource();
-			assertEquals("wront size", 1, tokenSource.length);
-			assertEquals("Wrong character", ';', tokenSource[0]);
-			token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue("Should not happen", false);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106403
-	public void test037() {
-		try {
-			IScanner s = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-			char[] source = { ';', ' ' };
-			s.setSource(source);
-			int token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameSEMICOLON, token);
-			char[] tokenSource = s.getCurrentTokenSource();
-			assertEquals("wront size", 1, tokenSource.length);
-			assertEquals("Wrong character", ';', tokenSource[0]);
-			token = s.getNextToken();
-			tokenSource = s.getCurrentTokenSource();
-			assertEquals("wront size", 1, tokenSource.length);
-			assertEquals("Wrong character", ' ', tokenSource[0]);
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameWHITESPACE, token);
-			token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue("Should not happen", false);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106403
-	public void test038() {
-		try {
-			IScanner s = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-			char[] source = { ';', ' ' };
-			s.setSource(source);
-			s.resetTo(0, 1);
-			int token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameSEMICOLON, token);
-			char[] tokenSource = s.getCurrentTokenSource();
-			assertEquals("wront size", 1, tokenSource.length);
-			assertEquals("Wrong character", ';', tokenSource[0]);
-			token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameWHITESPACE, token);
-			tokenSource = s.getCurrentTokenSource();
-			assertEquals("wront size", 1, tokenSource.length);
-			assertEquals("Wrong character", ' ', tokenSource[0]);
-			token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue("Should not happen", false);
-		}
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106403
-	public void test039() {
-		try {
-			IScanner s = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-			char[] source = { ';', ' ' };
-			s.setSource(source);
-			s.resetTo(1, 1);
-			int token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameWHITESPACE, token);
-			char[] tokenSource = s.getCurrentTokenSource();
-			assertEquals("wront size", 1, tokenSource.length);
-			assertEquals("Wrong character", ' ', tokenSource[0]);
-			token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue("Should not happen", false);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106403
-	public void test040() {
-		try {
-			IScanner s = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-			char[] source = { ';', ' ' };
-			s.setSource(source);
-			s.resetTo(2, 1);
-			int token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue("Should not happen", false);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106403
-	public void test041() {
-		try {
-			IScanner s = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-			char[] source = "\\u003B\\u0020".toCharArray();
-			assertEquals("wrong size", 12, source.length);
-			s.setSource(source);
-			s.resetTo(0, 5);
-			int token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameSEMICOLON, token);
-			char[] tokenSource = s.getRawTokenSource();
-			assertEquals("wront size", 6, tokenSource.length);
-			assertEquals("Wrong character", "\\u003B", new String(tokenSource));
-			token = s.getNextToken();
-			assertEquals("Wrong token", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue("Should not happen", false);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=112223
-	public void test042() {
-		IScanner scanner = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-		final char[] source = "\"a\\u000D\"".toCharArray();
-		scanner.setSource(source);
-		final StringBuffer buffer = new StringBuffer();
-		try {
-			int token;
-			while ((token = scanner.getNextToken()) != ITerminalSymbols.TokenNameEOF) {
-				try {
-					switch(token) {
-						case ITerminalSymbols.TokenNameEOF :
-							break;
-						default :
-							buffer.append(scanner.getCurrentTokenSource());
-							break;
-					}
-				} catch (ArrayIndexOutOfBoundsException e) {
-					e.printStackTrace();
-				}
-			}
-			assertTrue("Should have failed", false);
-		} catch (InvalidInputException e) {
-			buffer.append(scanner.getRawTokenSource());
-			assertEquals("Unexpected contents", "\"a\\u000D\"", String.valueOf(buffer));
-			assertEquals("Wrong exception", PublicScanner.INVALID_CHAR_IN_STRING, e.getMessage());
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=112223
-	public void test043() {
-		IScanner scanner = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-		final char[] source = "\"\\u004Ca\\u000D\"".toCharArray();
-		scanner.setSource(source);
-		final StringBuffer buffer = new StringBuffer();
-		try {
-			int token;
-			while ((token = scanner.getNextToken()) != ITerminalSymbols.TokenNameEOF) {
-				try {
-					switch(token) {
-						case ITerminalSymbols.TokenNameEOF :
-							break;
-						default :
-							buffer.append(scanner.getCurrentTokenSource());
-							break;
-					}
-				} catch (ArrayIndexOutOfBoundsException e) {
-					e.printStackTrace();
-				}
-			}
-			assertTrue("Should have failed", false);
-		} catch (InvalidInputException e) {
-			buffer.append(scanner.getRawTokenSource());
-			assertEquals("Unexpected contents", "\"\\u004Ca\\u000D\"", String.valueOf(buffer));
-			assertEquals("Wrong exception", PublicScanner.INVALID_CHAR_IN_STRING, e.getMessage());
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=112223
-	public void test044() {
-		IScanner scanner = ToolFactory.createScanner(true, true, true, "1.5", "1.5");
-		final char[] source = "\"\\u004Ca\\u000D\\u0022".toCharArray();
-		scanner.setSource(source);
-		final StringBuffer buffer = new StringBuffer();
-		try {
-			int token;
-			while ((token = scanner.getNextToken()) != ITerminalSymbols.TokenNameEOF) {
-				try {
-					switch(token) {
-						case ITerminalSymbols.TokenNameEOF :
-							break;
-						default :
-							buffer.append(scanner.getCurrentTokenSource());
-							break;
-					}
-				} catch (ArrayIndexOutOfBoundsException e) {
-					e.printStackTrace();
-				}
-			}
-			assertTrue("Should have failed", false);
-		} catch (InvalidInputException e) {
-			buffer.append(scanner.getRawTokenSource());
-			assertEquals("Unexpected contents", "\"\\u004Ca\\u000D\\u0022", String.valueOf(buffer));
-			assertEquals("Wrong exception", PublicScanner.INVALID_CHAR_IN_STRING, e.getMessage());
-		}
-	}
-
-	public void test045() {
-		/*
-		 * Corresponding source:
-		 * 
-		 * public class Test {
-		 * 	  static String C = "\n";
-		 *    public static void main(String[] args) {
-		 * 	  	System.out.print(C.length());
-		 * 		  	System.out.print(C.charAt(0) == '\n');
-		 *    }
-		 * }
-		 */
-		this.runConformTest(
-				new String[] {
-					"_X.java",
-					"import java.lang.reflect.Field;\n" + 
-					"public class _X {\n" + 
-					"	public static void main(String[] args) {\n" + 
-					"		String i\\u0000;\n" + 
-					"		String i\\u0001;\n" + 
-					"		String i\\u0002;\n" + 
-					"		String i\\u0003;\n" + 
-					"		String i\\u0004;\n" + 
-					"		String i\\u0005;\n" + 
-					"		String i\\u0006;\n" + 
-					"		String i\\u0007;\n" + 
-					"		String i\\u0008;\n" + 
-					"		String i\\u000e;\n" + 
-					"		String i\\u000f;\n" + 
-					"		String i\\u0010;\n" + 
-					"		String i\\u0011;\n" + 
-					"		String i\\u0012;\n" + 
-					"		String i\\u0013;\n" + 
-					"		String i\\u0014;\n" + 
-					"		String i\\u0015;\n" + 
-					"		String i\\u0016;\n" + 
-					"		String i\\u0017;\n" + 
-					"		String i\\u0018;\n" + 
-					"		String i\\u0019;\n" + 
-					"		String i\\u001a;\n" + 
-					"		String i\\u001b;\n" + 
-					"		String i\\u007f;\n" + 
-					"		System.out.print(\"SUCCESS\");\n" + 
-					"	}\n" + 
-					"}"
-				},
-				"SUCCESS");
-	}
-	
-	public void test046() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("'Hello'");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameCharacterLiteral, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	
-	public void test047() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("/=/g");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameRegExLiteral, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	
-	public void test048() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("// test unicode \\u000a var a =1; \n");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameCOMMENT_LINE, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	
-	public void test049() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("/* \n");
-		buf.append("* test unicode \\u000a var a =1; \n ");
-		buf.append("*/");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameCOMMENT_BLOCK, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameEOF, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	
-	public void test050() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("\"a\\>\"");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameStringLiteral, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-
-	public void test051() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("\"abc\\u000adef\";");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameStringLiteral, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameSEMICOLON, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	
-	public void test052() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("\"abc\\u0022def\";\n");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameStringLiteral, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameSEMICOLON, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	
-	public void test053() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("'abc\\u0027def';\n");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameCharacterLiteral, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameSEMICOLON, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-
-	public void test054() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("\"\\u0022def\";\n");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameStringLiteral, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameSEMICOLON, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	
-	public void test055() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("\"abc\\x22def\";\n");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameStringLiteral, token);
-			char[] characters = scanner.getCurrentTokenSource();
-			String results = String.valueOf(characters);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameSEMICOLON, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-
-	public void test056() {
-		StringBuffer buf = new StringBuffer();
-		buf.append("\"\\x22def\";\n");
-		String str = buf.toString();
-		IScanner scanner = ToolFactory.createScanner(true, false, false, false);
-		scanner.setSource(str.toCharArray());
-		scanner.resetTo(0, str.length() - 1);
-		int token = 0;
-		try {
-			token = scanner.getNextToken();
-			char[] characters = scanner.getCurrentTokenSource();
-			String results = String.valueOf(characters);
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameStringLiteral, token);
-			token = scanner.getNextToken();
-			assertEquals("Wrong token type", ITerminalSymbols.TokenNameSEMICOLON, token);
-		} catch (InvalidInputException e) {
-			assertTrue(false);
-		}
-	}
-	
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SerialVersionUIDTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SerialVersionUIDTests.java
deleted file mode 100644
index 86d3397..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SerialVersionUIDTests.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- * Here we focus on various aspects of the runtime behavior of the generated 
- * code.
- */
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-public class SerialVersionUIDTests extends AbstractRegressionTest {
-
-public SerialVersionUIDTests(String name) {
-	super(name);
-}
-// Static initializer to specify tests subset using TESTS_* static variables
-// All specified tests which does not belong to the class are skipped...
-// Only the highest compliance level is run; add the VM argument
-// -Dcompliance=1.4 (for example) to lower it if needed
-static {
-//		TESTS_NAMES = new String[] { "test0001" };
-//	 	TESTS_NUMBERS = new int[] { 1 };   
-//		TESTS_RANGE = new int[] { 1, -1 }; 
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-public static Class testClass() {
-	return SerialVersionUIDTests.class;
-}
-protected Map getCompilerOptions() {
-	Map options = super.getCompilerOptions();
-//	options.put(CompilerOptions.OPTION_ReportMissingSerialVersion, CompilerOptions.ERROR);
-	return options;
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=101476
-public void test001() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"import java.io.Serializable;\n" + 
-			"\n" + 
-			"public class X implements Serializable {\n" + 
-			"	private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException {}\n" + 
-			"	private void writeObject(java.io.ObjectOutputStream stream) throws java.io.IOException {}\n" + 
-			"}"
-		},
-		""
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=101476
-public void test002() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X implements java.io.Externalizable {\n" + 
-			"	public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException {}\n" + 
-			"	public void readExternal(java.io.ObjectInput in) throws java.io.IOException, ClassNotFoundException {}\n" + 
-			"}"
-		},
-		""
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=101476
-public void test003() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X implements java.io.Serializable {\n" + 
-			"	private void writeObject(java.io.ObjectOutputStream stream) throws java.io.IOException {}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X implements java.io.Serializable {\n" + 
-		"	             ^\n" + 
-		"The serializable class X does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n"
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=101476
-public void test004() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X implements java.io.Serializable {\n" + 
-			"	private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException {}\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X implements java.io.Serializable {\n" + 
-		"	             ^\n" + 
-		"The serializable class X does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n"
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=101476
-public void test005() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X implements java.io.Serializable {\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X implements java.io.Serializable {\n" + 
-		"	             ^\n" + 
-		"The serializable class X does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n"
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=101476
-public void test006() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X implements java.io.Serializable {\n" + 
-			"	Object writeReplace() throws java.io.ObjectStreamException { return null;}\n" + 
-			"}"
-		},
-		""
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/StaticImportTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/StaticImportTest.java
deleted file mode 100644
index 062ed3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/StaticImportTest.java
+++ /dev/null
@@ -1,1875 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-public class StaticImportTest extends AbstractComparableTest {
-
-	// Static initializer to specify tests subset using TESTS_* static variables
-	// All specified tests which do not belong to the class are skipped...
-	static {
-//		TESTS_NAMES = new String[] { "test036" };
-//		TESTS_NUMBERS = new int[] { 46 };
-//		TESTS_RANGE = new int[] { 169, 180 };
-	}
-	
-	public StaticImportTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildComparableTestSuite(testClass());
-	}
-	
-	public static Class testClass() {
-		return StaticImportTest.class;
-	}
-
-
-	public void test001() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static java.lang.Math.*;\n" +
-				"import static java.lang.Math.PI;\n" +
-				"public class X { double pi = abs(PI); }\n",
-			},
-			"");
-	}
-
-	public void test002() {
-		this.runConformTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static p2.Y.*;\n" +
-				"import static p2.Z.Zint;\n" +
-				"import static p2.Z.ZMember;\n" +
-				"public class X {\n" +
-				"	int x = y(1);\n" +
-				"	int y = Yint;\n" +
-				"	int z = Zint;\n" +
-				"	void m1(YMember m) {}\n" +
-				"	void m2(ZMember m) {}\n" +
-				"}\n",
-				"p2/Y.java",
-				"package p2;\n" +
-				"public class Y {\n" +
-				"	public static int Yint = 1;\n" +
-				"	public static int y(int y) { return y; }\n" +
-				"	public static class YMember {}\n" +
-				"}\n",
-				"p2/Z.java",
-				"package p2;\n" +
-				"public class Z {\n" +
-				"	public static int Zint = 1;\n" +
-				"	public static class ZMember {}\n" +
-				"}\n",
-			},
-			"");
-	}
-
-	public void test003() { // test inheritance
-		this.runConformTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static p2.Y.*;\n" +
-				"import static p2.Z.Zint;\n" +
-				"import static p2.Z.ZMember;\n" +
-				"public class X {\n" +
-				"	int x = y(1);\n" +
-				"	int y = Yint;\n" +
-				"	int z = Zint;\n" +
-				"	void m1(YMember m) {}\n" +
-				"	void m2(ZMember m) {}\n" +
-				"}\n",
-				"p2/YY.java",
-				"package p2;\n" +
-				"public class YY {\n" +
-				"	public static int Yint = 1;\n" +
-				"	public static int y(int y) { return y; }\n" +
-				"	public static class YMember {}\n" +
-				"}\n",
-				"p2/Y.java",
-				"package p2;\n" +
-				"public class Y extends YY {}\n",
-				"p2/ZZ.java",
-				"package p2;\n" +
-				"public class ZZ {\n" +
-				"	public static int Zint = 1;\n" +
-				"	public static class ZMember {}\n" +
-				"}\n",
-				"p2/Z.java",
-				"package p2;\n" +
-				"public class Z extends ZZ {}\n",
-			},
-			"");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.C;\n" + 
-				"public class X { int i = C; }\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A extends B implements I {}\n" +
-				"class B implements I {}\n",
-				"p/I.java",
-				"package p;\n" + 
-				"public interface I { public static int C = 1; }\n"
-			},
-			""
-		);
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.C;\n" + 
-				"public class X { \n" +
-				"	int i = C; \n" +
-				"	int j = p.A.C; \n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A implements I {}\n" +
-				"interface I { public static int C = 1; }\n"
-			},
-			"");
-	}
-
-	public void test004() { // test static vs. instance
-		this.runNegativeTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static p2.Y.*;\n" +
-				"import static p2.Z.Zint;\n" +
-				"import static p2.Z.ZMember;\n" +
-				"public class X {\n" +
-				"	int x = y(1);\n" +
-				"	int y = Yint;\n" +
-				"	int z = Zint;\n" +
-				"	void m1(YMember m) {}\n" +
-				"	void m2(ZMember m) {}\n" +
-				"}\n",
-				"p2/Y.java",
-				"package p2;\n" +
-				"public class Y {\n" +
-				"	public int Yint = 1;\n" +
-				"	public int y(int y) { return y; }\n" +
-				"	public class YMember {}\n" +
-				"}\n",
-				"p2/Z.java",
-				"package p2;\n" +
-				"public class Z {\n" +
-				"	public int Zint = 1;\n" +
-				"	public class ZMember {}\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in p\\X.java (at line 3)\n" + 
-			"	import static p2.Z.Zint;\n" + 
-			"	              ^^^^^^^^^\n" + 
-			"The import p2.Z.Zint cannot be resolved\n" + 
-			"----------\n" + 
-			"2. ERROR in p\\X.java (at line 4)\n" + 
-			"	import static p2.Z.ZMember;\n" + 
-			"	              ^^^^^^^^^^^^\n" + 
-			"The import p2.Z.ZMember cannot be resolved\n" + 
-			"----------\n" + 
-			"3. ERROR in p\\X.java (at line 6)\n" + 
-			"	int x = y(1);\n" + 
-			"	        ^\n" + 
-			"The method y(int) is undefined for the type X\n" + 
-			"----------\n" + 
-			"4. ERROR in p\\X.java (at line 7)\n" + 
-			"	int y = Yint;\n" + 
-			"	        ^^^^\n" + 
-			"Yint cannot be resolved\n" + 
-			"----------\n" + 
-			"5. ERROR in p\\X.java (at line 8)\n" + 
-			"	int z = Zint;\n" + 
-			"	        ^^^^\n" + 
-			"Zint cannot be resolved\n" + 
-			"----------\n" + 
-			"6. ERROR in p\\X.java (at line 9)\n" + 
-			"	void m1(YMember m) {}\n" + 
-			"	        ^^^^^^^\n" + 
-			"YMember cannot be resolved to a type\n" + 
-			"----------\n" + 
-			"7. ERROR in p\\X.java (at line 10)\n" + 
-			"	void m2(ZMember m) {}\n" + 
-			"	        ^^^^^^^\n" + 
-			"ZMember cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-
-	public void test005() { // test visibility
-		this.runNegativeTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static p2.Y.*;\n" +
-				"import static p2.Z.Zint;\n" +
-				"import static p2.Z.ZMember;\n" +
-				"public class X {\n" +
-				"	int x = y(1);\n" +
-				"	int y = Yint;\n" +
-				"	int z = Zint;\n" +
-				"	void m1(YMember m) {}\n" +
-				"	void m2(ZMember m) {}\n" +
-				"}\n",
-				"p2/Y.java",
-				"package p2;\n" +
-				"public class Y {\n" +
-				"	static int Yint = 1;\n" +
-				"	static int y(int y) { return y; }\n" +
-				"	static class YMember {}\n" +
-				"}\n",
-				"p2/Z.java",
-				"package p2;\n" +
-				"public class Z {\n" +
-				"	static int Zint = 1;\n" +
-				"	static class ZMember {}\n" +
-				"}\n",
-			},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 3)\n" + 
-		"	import static p2.Z.Zint;\n" + 
-		"	              ^^^^^^^^^\n" + 
-		"The field Z.p2.Z.Zint is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 4)\n" + 
-		"	import static p2.Z.ZMember;\n" + 
-		"	              ^^^^^^^^^^^^\n" + 
-		"The type p2.Z.ZMember is not visible\n" + 
-		"----------\n" + 
-		"3. ERROR in p\\X.java (at line 6)\n" + 
-		"	int x = y(1);\n" + 
-		"	        ^\n" + 
-		"The method y(int) from the type Y is not visible\n" + 
-		"----------\n" + 
-		"4. ERROR in p\\X.java (at line 7)\n" + 
-		"	int y = Yint;\n" + 
-		"	        ^^^^\n" + 
-		"The field Y.Yint is not visible\n" + 
-		"----------\n" + 
-		"5. ERROR in p\\X.java (at line 8)\n" + 
-		"	int z = Zint;\n" + 
-		"	        ^^^^\n" + 
-		"Zint cannot be resolved\n" + 
-		"----------\n" + 
-		"6. ERROR in p\\X.java (at line 9)\n" + 
-		"	void m1(YMember m) {}\n" + 
-		"	        ^^^^^^^\n" + 
-		"The type YMember is not visible\n" + 
-		"----------\n" + 
-		"7. ERROR in p\\X.java (at line 10)\n" + 
-		"	void m2(ZMember m) {}\n" + 
-		"	        ^^^^^^^\n" + 
-		"ZMember cannot be resolved to a type\n" + 
-		"----------\n");
-	}
-
-	public void test006() { // test non static member types
-		this.runNegativeTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static p2.Z.ZStatic;\n" +
-				"import static p2.Z.ZNonStatic;\n" +
-				"import p2.Z.ZNonStatic;\n" +
-				"public class X {\n" +
-				"	void m2(ZStatic m) {}\n" +
-				"	void m3(ZNonStatic m) {}\n" +
-				"}\n",
-				"p2/Z.java",
-				"package p2;\n" +
-				"public class Z {\n" +
-				"	public static class ZStatic {}\n" +
-				"	public class ZNonStatic {}\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in p\\X.java (at line 3)\n" + 
-			"	import static p2.Z.ZNonStatic;\n" + 
-			"	              ^^^^^^^^^^^^^^^\n" + 
-			"The import p2.Z.ZNonStatic cannot be resolved\n" + 
-			"----------\n");
-	}
-
-	public void test007() { // test non static member types vs. static field
-		this.runConformTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static p2.Z.ZFieldOverMember;\n" +
-				"public class X {\n" +
-				"	int z = ZFieldOverMember;\n" +
-				"}\n",
-				"p2/Z.java",
-				"package p2;\n" +
-				"public class Z {\n" +
-				"	public static int ZFieldOverMember = 1;\n" +
-				"	public class ZFieldOverMember {}\n" +
-				"}\n",
-			},
-			"");
-	}
-
-	public void test008() { // test static top level types
-		this.runNegativeTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static java.lang.System;\n" +
-				"public class X {}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in p\\X.java (at line 2)\n" + 
-			"	import static java.lang.System;\n" + 
-			"	              ^^^^^^^^^^^^^^^^\n" + 
-			"The static import java.lang.System must be a field or member type\n" + 
-			"----------\n");
-	}
-
-	public void test009() { // test static top level types
-		this.runNegativeTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" +
-				"import static java.lang.reflect.Method.*;\n" +
-				"public class X {Method m;}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in p\\X.java (at line 3)\n" + 
-			"	public class X {Method m;}\n" + 
-			"	                ^^^^^^\n" + 
-			"Method cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=76174
-	public void test010() { 
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static java.lang.System.*;\n" +
-				"public class X {\n" +
-				"	void foo() { arraycopy(); }\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	void foo() { arraycopy(); }\n" + 
-			"	             ^^^^^^^^^\n" + 
-			"The method arraycopy(Object, int, Object, int, int) in the type System is not applicable for the arguments ()\n" + 
-			"----------\n");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=76360
-	public void test011() { 
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static p.Y.*;\n" +
-				"public class X extends p.Z {}\n" +
-				"class XX extends M.N {}\n" +
-				"class XXX extends M.Missing {}\n",
-				"p/YY.java",
-				"package p;\n" +
-				"public class YY {\n" +
-				"	public static class M {\n" +
-				"		public static class N {}\n" +
-				"	}\n" +
-				"}\n",
-				"p/Y.java",
-				"package p;\n" +
-				"public class Y extends YY {}\n",
-				"p/Z.java",
-				"package p;\n" +
-				"public class Z {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	class XXX extends M.Missing {}\n" + 
-			"	                  ^^^^^^^^^\n" + 
-			"M.Missing cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-
-	public void test012() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static java.lang.Math.*;\n" +
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.println(max(1, 2));\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"2");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static java.lang.Math.max;\n" +
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.println(max(1, 3));\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"3");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p1.C.F;\n" +
-				"import p2.*;\n" +
-				"public class X implements F {" +
-				"	int i = F();" +
-				"}\n",
-				"p1/C.java",
-				"package p1;\n" +
-				"public class C {\n" +
-				"	public static int F() { return 0; }\n" +
-				"}\n",
-				"p2/F.java",
-				"package p2;\n" +
-				"public interface F {}\n"
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=77955
-	public void test013() { 
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static p.Y.ZZ;\n" + // found if ZZ is static
-				"import static p.Z.ZZ.WW;\n" + // found if WW is static
-				"import static p.Z.Zz.WW;\n" + // found if WW is static
-				"import static p.Z.Zz.*;\n" + // legal
-				"import static p.Z.Zz.Zzz;\n" + // legal
-
-				"import static p.Y.Zz;\n" + // Zz is not static
-				"import static p.Z.Zz.WW.*;\n" + // import requires canonical name for p.W.WW
-
-				"import p.Y.ZZ;\n" + // import requires canonical name for p.Z.ZZ
-				"import static p.Y.ZZ.*;\n" + // import requires canonical name for p.Z.ZZ
-				"import static p.Y.ZZ.WW;\n" + // import requires canonical name for p.Z.ZZ
-				"import static p.Y.ZZ.WW.*;\n" + // import requires canonical name for p.W.WW
-				"import static p.Y.ZZ.ZZZ;\n" + // import requires canonical name for p.Z.ZZ
-				"import static p.Y.ZZ.WW.WWW;\n" + // import requires canonical name for p.W.WW
-				"public class X {\n" +
-				"	int i = Zzz + Zzzz;\n" +
-				"	ZZ z;\n" +
-				"	WW w;\n" +
-				"}\n",
-				"p/Y.java",
-				"package p;\n" +
-				"public class Y extends Z {}\n",
-				"p/Z.java",
-				"package p;\n" +
-				"public class Z {\n" +
-				"	public class Zz extends W { public static final int Zzz = 0; public static final int Zzzz = 1; }\n" +
-				"	public static class ZZ extends W { public static final int ZZZ = 0; }\n" +
-				"}\n",
-				"p/W.java",
-				"package p;\n" +
-				"public class W {\n" +
-				"	public static class WW { public static final int WWW = 0; }\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 6)\r\n" + 
-			"	import static p.Y.Zz;\r\n" + 
-			"	              ^^^^^^\n" + 
-			"The import p.Y.Zz cannot be resolved\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 7)\r\n" + 
-			"	import static p.Z.Zz.WW.*;\r\n" + 
-			"	              ^^^^^^^^^\n" + 
-			"The import p.Z.Zz.WW cannot be resolved\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 8)\r\n" + 
-			"	import p.Y.ZZ;\r\n" + 
-			"	       ^^^^^^\n" + 
-			"The import p.Y.ZZ cannot be resolved\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 9)\r\n" + 
-			"	import static p.Y.ZZ.*;\r\n" + 
-			"	              ^^^^^^\n" + 
-			"The import p.Y.ZZ cannot be resolved\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 10)\r\n" + 
-			"	import static p.Y.ZZ.WW;\r\n" + 
-			"	              ^^^^^^\n" + 
-			"The import p.Y.ZZ cannot be resolved\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 11)\r\n" + 
-			"	import static p.Y.ZZ.WW.*;\r\n" + 
-			"	              ^^^^^^\n" + 
-			"The import p.Y.ZZ cannot be resolved\n" + 
-			"----------\n" + 
-			"7. ERROR in X.java (at line 12)\r\n" + 
-			"	import static p.Y.ZZ.ZZZ;\r\n" + 
-			"	              ^^^^^^\n" + 
-			"The import p.Y.ZZ cannot be resolved\n" + 
-			"----------\n" + 
-			"8. ERROR in X.java (at line 13)\r\n" + 
-			"	import static p.Y.ZZ.WW.WWW;\r\n" + 
-			"	              ^^^^^^\n" + 
-			"The import p.Y.ZZ cannot be resolved\n" + 
-			"----------\n"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=78056
-	public void test014() { 
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.Z.ZZ.ZZZ;\n" +
-				"public class X {}\n",
-				"p/Z.java",
-				"package p;\n" +
-				"public class Z {\n" +
-				"	public class ZZ { public static final  int ZZZ = 0; }\n" +
-				"}\n",
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=78075
-	public void test015() { 
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import p.Z.*;\n" +
-				"import static p.Z.*;\n" +
-				"public class X { int i = COUNT; }\n",
-				"p/Z.java",
-				"package p;\n" +
-				"public class Z {\n" +
-				"	public static final  int COUNT = 0;\n" +
-				"}\n",
-			},
-			""
-		);
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.Z.*;\n" +
-				"import p.Z.*;\n" +
-				"public class X { int i = COUNT; }\n",
-				"p/Z.java",
-				"package p;\n" +
-				"public class Z {\n" +
-				"	public static final  int COUNT = 0;\n" +
-				"}\n",
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=77630
-	public void test016() { 
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static java.lang.*;\n" +
-				"public class X {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	import static java.lang.*;\r\n" + 
-			"	              ^^^^^^^^^\n" + 
-			"Only a type can be imported. java.lang resolves to a package\n" + 
-			"----------\n"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81724
-	public void test017() {
-		this.runConformTest(
-			new String[] {
-				"bug/A.java",
-				"package bug;\n" +
-				"import static bug.C.*;\n" +
-				"public class A {\n" +
-				"   private B b;\n" +
-				"}\n",
-				"bug/B.java",
-				"package bug;\n" +
-				"import static bug.C.*;\n" +
-				"public class B {\n" +
-				"}\n",
-				"bug/C.java",
-				"package bug;\n" +
-				"public class C {\n" +
-				"   private B b;\n" +
-				"}\n",
-			},
-			""
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81724 - variation
-	public void test018() {
-		this.runNegativeTest(
-			new String[] {
-				"bug/A.java",
-				"package bug;\n" +
-				"import static bug.C.*;\n" +
-				"public class A {\n" +
-				"   private B b2 = b;\n" +
-				"}\n",
-				"bug/B.java",
-				"package bug;\n" +
-				"import static bug.C.*;\n" +
-				"public class B {\n" +
-				"}\n",
-				"bug/C.java",
-				"package bug;\n" +
-				"public class C {\n" +
-				"   private static B b;\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in bug\\A.java (at line 4)\n" + 
-			"	private B b2 = b;\n" + 
-			"	               ^\n" + 
-			"The field C.b is not visible\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. WARNING in bug\\B.java (at line 2)\n" + 
-			"	import static bug.C.*;\n" + 
-			"	              ^^^^^\n" + 
-			"The import bug.C is never used\n" + 
-			"----------\n" + 
-			"----------\n" + 
-			"1. WARNING in bug\\C.java (at line 3)\n" + 
-			"	private static B b;\n" + 
-			"	                 ^\n" + 
-			"The field C.b is never read locally\n" + 
-			"----------\n");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81718
-	public void test019() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static java.lang.Math.PI;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"  boolean PI;\n" + 
-				"  Zork z;\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=82754
-	public void test020() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static java.lang.Math.round;\n" + 
-				"public class X {\n" + 
-				"  void foo() { cos(0); }\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	void foo() { cos(0); }\n" + 
-			"	             ^^^\n" + 
-			"The method cos(int) is undefined for the type X\n" + 
-			"----------\n"	);
-	}
-
-	public void test021() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.B.foo;\n" + 
-				"public class X {\n" + 
-				"  void test() { foo(); }\n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A { public static void foo() {} }\n",
-				"p/B.java",
-				"package p;\n" + 
-				"public class B extends A { }\n"
-			},
-			""
-		);
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static p.B.foo;\n" + 
-				"public class X {\n" + 
-				"  void test() { foo(); }\n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A { public void foo() {} }\n",
-				"p/B.java",
-				"package p;\n" + 
-				"public class B extends A { static void foo(int i) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	import static p.B.foo;\n" + 
-			"	              ^^^^^^^\n" + 
-			"The import p.B.foo cannot be resolved\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	void test() { foo(); }\n" + 
-			"	              ^^^\n" + 
-			"The method foo() is undefined for the type X\n" + 
-			"----------\n"
-		);
-	}
-
-	public void test022() { // test field/method collisions
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.F;\n" + 
-				"import static p.B.F;\n" + 
-				"public class X {\n" + 
-				"	int i = F;\n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A { public static class F {} }\n",
-				"p/B.java",
-				"package p;\n" + 
-				"public class B { public static int F = 2; }\n",
-			},
-			""
-			// no collision between field and member type
-		);
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.F;\n" + 
-				"import static p.B.F;\n" + 
-				"public class X {\n" + 
-				"	int i = F + F();\n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A { public static int F() { return 1; } }\n",
-				"p/B.java",
-				"package p;\n" + 
-				"public class B { public static int F = 2; }\n",
-			},
-			""
-			// no collision between field and method
-		);
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.F;\n" + 
-				"import static p.B.F;\n" + 
-				"public class X {\n" + 
-				"	int i = F;\n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A { public static int F = 1; }\n",
-				"p/B.java",
-				"package p;\n" + 
-				"public class B extends A {}\n",
-			},
-			""
-			// no collision between 2 fields that are the same
-		);
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static p.A.F;\n" + 
-				"import static p.B.F;\n" + 
-				"public class X {\n" + 
-				"	int i = F;\n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A { public static int F = 1; }\n",
-				"p/B.java",
-				"package p;\n" + 
-				"public class B { public static int F = 2; }\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	import static p.B.F;\n" + 
-			"	              ^^^^^\n" + 
-			"The import p.B.F collides with another import statement\n" + 
-			"----------\n"
-			// F is already defined in a single-type import
-		);
-	}
-
-	public void test023() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.C;\n" + 
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" +
-				"		System.out.print(C);\n" +
-				"		System.out.print(C());\n" +
-				"	}\n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A {\n" +
-				"	public static int C = 1;\n" +
-				"	public static int C() { return C + 3; }\n" +
-				"}\n"
-			},
-			"14"
-		);
-		this.runConformTest( // extra inheritance hiccup for method lookup
-			new String[] {
-				"X.java",
-				"import static p.A.C;\n" + 
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" +
-				"		System.out.print(C);\n" +
-				"		System.out.print(C());\n" +
-				"	}\n" +
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A extends B {\n" +
-				"	public static int C() { return C + 3; }\n" +
-				"}\n",
-				"p/B.java",
-				"package p;\n" + 
-				"public class B {\n" +
-				"	public static int C = 1;\n" +
-				"}\n"
-			},
-			"14"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83376
-	public void test024() {
-		this.runNegativeTest(
-			new String[] {
-				"p/B.java",
-				"package p;\n" + 
-				"import static p.A.m;\n" + 
-				"import static p2.C.m;\n" + 
-				"class A { static void m() {} }\n" + 
-				"public class B { public static void main(String[] args) { m(); } }\n",
-				"p2/C.java",
-				"package p2;\n" + 
-				"public class C { public static void m() {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in p\\B.java (at line 5)\r\n" + 
-			"	public class B { public static void main(String[] args) { m(); } }\r\n" + 
-			"	                                                          ^\n" + 
-			"The method m() is ambiguous for the type B\n" + 
-			"----------\n"
-		);
-		this.runConformTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" + 
-				"import static p.A.m;\n" + 
-				"import static p.B.m;\n" + 
-				"public class X { void test() { m(); } }\n" + 
-				"class B extends A {}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A { public static int m() { return 0; } }\n"
-			},
-			""
-		);
-	}
-
-	public void test025() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static java.lang.Math.*;\n" + 
-				"public class X {\n" + 
-				"	public static void main(String[] s) {\n" + 
-				"		System.out.print(max(PI, 4));\n" + 
-				"		new Runnable() {\n" + 
-				"			public void run() {\n" + 
-				"				System.out.println(max(PI, 5));\n" + 
-				"			}\n" + 
-				"		}.run();\n" + 
-				"	}\n" + 
-				"}\n"
-			},
-			"4.05.0"
-		);
-	}
-
-	public void test026() { // ensure inherited problem fields do not stop package resolution
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X extends Y { static void test() { java.lang.String.valueOf(0); } }\n" + 
-				"class Y { private String java; }\n"
-			},
-			""
-		);
-	}
-	
-	public void test027() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static p.ST.foo;\n" + 
-				"public class X {\n" + 
-				"	\n" + 
-				"	foo bar;\n" + 
-				"}\n", 
-				"p/ST.java",
-				"package p; \n" + 
-				"public class ST {\n" + 
-				"	public static int foo;\n" + 
-				"}\n"	,			
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 4)\n" + 
-			"	foo bar;\n" + 
-			"	^^^\n" + 
-			"foo cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=87490
-	public void test028() {
-		this.runConformTest(
-			new String[] {
-				"p1/Z.java",//====================
-				"package p1;\n" + 
-				"public class Z {\n" + 
-				"	public interface I {\n" + 
-				"	}\n" + 
-				"}\n",
-				"q/Y.java",//====================
-				"package q;\n" + 
-				"import static p.X.I;\n" + 
-				"import static p1.Z.I;\n" + 
-				"public class Y implements I {\n" + 
-				"}\n",
-				"p/X.java",//====================
-				"package p;\n" + 
-				"public enum X {\n" + 
-				"	I, J, K\n" + 
-				"}\n"	,			
-			},
-			"");
-		// recompile Y against binaries
-		this.runConformTest(
-			new String[] {
-				"q/Y.java",//====================
-				"package q;\n" + 
-				"import static p.X.I;\n" + 
-				"import static p1.Z.I;\n" + 
-				"public class Y implements I {\n" + 
-				"}\n",
-			},
-			"",
-			null,
-			false,
-			null);
-	}
-
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=93913
-	public void test029() {
-		this.runNegativeTest(
-			new String[] {
-				"p1/A.java",
-				"package p1;\n" + 
-				"import static p2.C.B;\n" + 
-				"public class A extends B {\n" + 
-				"	void test() {" +
-				"		int i = B();\n" +
-				"		B b = null;\n" +
-				"		b.fooB();\n" +
-				"		b.fooC();\n" +
-				"		fooC();\n" +
-				"	}\n" + 
-				"}\n",
-				"p1/B.java",
-				"package p1;\n" + 
-				"public class B {\n" + 
-				"	public void fooB() {}\n" + 
-				"}\n",
-				"p2/C.java",
-				"package p2;\n" + 
-				"public class C {\n" + 
-				"	public static class B { public void fooC() {} }\n" + 
-				"	public static int B() { return 0; }\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in p1\\A.java (at line 6)\n" + 
-			"	b.fooB();\n" + 
-			"	  ^^^^\n" + 
-			"The method fooB() is undefined for the type C.B\n" + 
-			"----------\n"
-		);
-	}
-
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=94262
-	public void test030() {
-		this.runNegativeTest(
-			new String[] {
-				"p2/Test.java",
-				"package p2;\n" + 
-				"import static p1.A.*;\n" + 
-				"public class Test {\n" + 
-				"	Inner1 i; // not found\n" + 
-				"	Inner2 j;\n" + 
-				"}\n",
-				"p1/A.java",
-				"package p1;\n" + 
-				"public class A {\n" + 
-				"	public class Inner1 {}\n" +
-				"	public static class Inner2 {}\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in p2\\Test.java (at line 4)\n" + 
-			"	Inner1 i; // not found\n" + 
-			"	^^^^^^\n" + 
-			"Inner1 cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-		this.runConformTest(
-			new String[] {
-				"p2/Test.java",
-				"package p2;\n" + 
-				"import p1.A.*;\n" + 
-				"import static p1.A.*;\n" + 
-				"import static p1.A.*;\n" + 
-				"public class Test {\n" + 
-				"	Inner1 i;\n" + 
-				"	Inner2 j;\n" + 
-				"}\n",
-				"p1/A.java",
-				"package p1;\n" + 
-				"public class A {\n" + 
-				"	public class Inner1 {}\n" +
-				"	public static class Inner2 {}\n" + 
-				"}\n",
-			},
-			""
-		);
-	}
-
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=95909
-	public void test031() {
-		this.runNegativeTest(
-			new String[] {
-				"PointRadius.java",
-				"import static java.lang.Math.sqrt;\n" + 
-				"\n" + 
-				"public class PointRadius {\n" + 
-				"\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		double radius = 0;\n" + 
-				"		radius = sqrt(pondArea / Math.PI);\n" + 
-				"\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in PointRadius.java (at line 7)\n" + 
-			"	radius = sqrt(pondArea / Math.PI);\n" + 
-			"	              ^^^^^^^^\n" + 
-			"pondArea cannot be resolved\n" + 
-			"----------\n");
-	}
-
-	//http://bugs.eclipse.org/bugs/show_bug.cgi?id=97809
-	public void test032() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.*;\n" + 
-				"import static p.B.*;\n" + 
-				"public class X {\n" + 
-				"	public static void main(String[] args) {foo();}\n" + 
-				"}\n",
-				"p/A.java",
-				"package p;" +
-				"public class A {\n" + 
-				"	public static void foo() {System.out.print(false);}\n" + 
-				"}\n",
-				"p/B.java",
-				"package p;" +
-				"public class B extends A {\n" + 
-				"	public static void foo() {System.out.print(true);}\n" + 
-				"}\n"
-			},
-			"true");
-	}
-
-	//http://bugs.eclipse.org/bugs/show_bug.cgi?id=97809
-	public void test032b() {
-		this.runNegativeTest(
-			new String[] {
-				"X2.java",
-				"import static p2.A.*;\n" + 
-				"import static p2.B.*;\n" + 
-				"public class X2 { void test() {foo();} }\n",
-				"p2/A.java",
-				"package p2;" +
-				"public class A {\n" + 
-				"	public static void foo() {}\n" + 
-				"}\n",
-				"p2/B.java",
-				"package p2;" +
-				"public class B {\n" + 
-				"	public static void foo() {}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X2.java (at line 3)\r\n" + 
-			"	public class X2 { void test() {foo();} }\r\n" + 
-			"	                               ^^^\n" + 
-			"The method foo() is ambiguous for the type X2\n" + 
-			"----------\n"
-			// reference to foo is ambiguous, both method foo() in p.B and method foo() in p.A match
-		);
-	}
-
-	//http://bugs.eclipse.org/bugs/show_bug.cgi?id=97809
-	public void test032c() {
-		this.runConformTest(
-			new String[] {
-				"X3.java",
-				"import static p3.A.*;\n" + 
-				"import static p3.B.foo;\n" + 
-				"public class X3 {\n" + 
-				"	public static void main(String[] args) {foo();}\n" + 
-				"}\n",
-				"p3/A.java",
-				"package p3;" +
-				"public class A {\n" + 
-				"	public static void foo() {System.out.print(false);}\n" + 
-				"}\n",
-				"p3/B.java",
-				"package p3;" +
-				"public class B {\n" + 
-				"	public static void foo() {System.out.print(true);}\n" + 
-				"}\n"
-			},
-			"true");
-	}
-
-	//http://bugs.eclipse.org/bugs/show_bug.cgi?id=97809
-	public void test032d() {
-		this.runConformTest(
-			new String[] {
-				"X4.java",
-				"import static p4.A.foo;\n" + 
-				"import static p4.B.*;\n" + 
-				"public class X4 {\n" + 
-				"	public static void main(String[] args) {foo();}\n" + 
-				"}\n",
-				"p4/A.java",
-				"package p4;" +
-				"public class A {\n" + 
-				"	public static void foo() {System.out.print(true);}\n" + 
-				"}\n",
-				"p4/B.java",
-				"package p4;" +
-				"public class B extends A {\n" + 
-				"	public static void foo() {System.out.print(false);}\n" + 
-				"}\n"
-			},
-			"true");
-	}
-
-	public void test033() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.*;\n" + 
-				"import static p.B.*;\n" + 
-				"public class X {\n" + 
-				"	public static void main(String[] args) {foo(\"aa\");}\n" + 
-				"}\n",
-				"p/A.java",
-				"package p;" +
-				"public class A {\n" + 
-				"	public static <U> void foo(U u) {System.out.print(false);}\n" + 
-				"}\n",
-				"p/B.java",
-				"package p;" +
-				"public class B extends A {\n" + 
-				"	public static <V> void foo(String s) {System.out.print(true);}\n" + 
-				"}\n"
-			},
-			"true");
-	}
-
-	public void test033b() {
-		this.runConformTest(
-			new String[] {
-				"X2.java",
-				"import static p2.A.*;\n" + 
-				"import static p2.B.*;\n" + 
-				"public class X2 {\n" + 
-				"	public static void main(String[] args) {foo(\"aa\");}\n" + 
-				"}\n",
-				"p2/A.java",
-				"package p2;" +
-				"public class A {\n" + 
-				"	public static <U> void foo(String s) {System.out.print(true);}\n" + 
-				"}\n",
-				"p2/B.java",
-				"package p2;" +
-				"public class B extends A {\n" + 
-				"	public static <V> void foo(V v) {System.out.print(false);}\n" + 
-				"}\n"
-			},
-			"true");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=104198
-	public void test034() {
-		this.runConformTest(
-			new String[] {
-				"test/AbstractTest.java",
-				"package test;\n" +
-				"public abstract class AbstractTest<Z> {\n" + 
-				"  \n" + 
-				"  public abstract MyEnum m(Z z);\n" + 
-				"  \n" + 
-				"  public enum MyEnum {\n" + 
-				"    A,B\n" + 
-				"  }\n" + 
-				"}\n",
-				"test/X.java",
-				"package test;\n" +
-				"import static test.AbstractTest.MyEnum.*;\n" +
-				"public class X extends AbstractTest<String> {\n" + 
-				"  @Override public MyEnum m(String s) {\n" + 
-				"    return A;\n" + 
-				"  }\n" + 
-				"}\n"
-			},
-			"");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117861
-	public void test035() {
-		this.runConformTest(
-			new String[] {
-				"Bug.java",
-				"import static java.lang.String.format;\n" +
-				"public class Bug extends p.TestCase {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		String msg = \"test\";\n" + 
-				"		System.out.print(format(msg));\n" + 
-				"		System.out.print(format(msg, 1, 2));\n" +
-				"	}\n" + 
-				"}\n",
-				"p/TestCase.java",
-				"package p;\n" + 
-				"public class TestCase {\n" + 
-				"	static String format(String message, Object expected, Object actual) {return null;}\n" + 
-				"}\n"
-			},
-			"testtest");
-		this.runNegativeTest(
-			new String[] {
-				"C.java",
-				"class A {\n" + 
-				"	static class B { void foo(Object o, String s) {} }\n" + 
-				"	void foo(int i) {}\n" + 
-				"}\n" +
-				"class C extends A.B {\n" +
-				"	void test() { foo(1); }\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in C.java (at line 6)\r\n" + 
-			"	void test() { foo(1); }\r\n" + 
-			"	              ^^^\n" + 
-			"The method foo(Object, String) in the type A.B is not applicable for the arguments (int)\n" + 
-			"----------\n");
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"public class A {\n" + 
-				"  void foo(int i, long j) {}\n" + 
-				"  class B {\n" + 
-				"    void foo() { foo(1, 1); }\n" + 
-				"  }\n" + 
-				"}",
-			}, 
-			"----------\n" + 
-			"1. ERROR in A.java (at line 4)\n" + 
-			"	void foo() { foo(1, 1); }\n" + 
-			"	             ^^^\n" + 
-			"The method foo() in the type A.B is not applicable for the arguments (int, int)\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=126564
-	public void test036() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static p.A.CONSTANT_I;\n" + 
-				"import static p.A.CONSTANT_B;\n" + 
-				"public class X {\n" + 
-				"  static int i = p.A.CONSTANT_I;\n" + 
-				"  static int j = p.A.CONSTANT_B;\n" + 
-				"  static int m = CONSTANT_I;\n" + 
-				"  static int n = CONSTANT_B;\n" + 
-				"}",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A extends B implements I {}\n" + 
-				"interface I { int CONSTANT_I = 1; }\n" + 
-				"class B { int CONSTANT_B = 1; }",
-			}, 
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	import static p.A.CONSTANT_B;\n" + 
-			"	              ^^^^^^^^^^^^^^\n" + 
-			"The field B.p.A.CONSTANT_B is not visible\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	static int j = p.A.CONSTANT_B;\n" + 
-			"	                   ^^^^^^^^^^\n" + 
-			"The field B.CONSTANT_B is not visible\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 7)\n" + 
-			"	static int n = CONSTANT_B;\n" + 
-			"	               ^^^^^^^^^^\n" + 
-			"CONSTANT_B cannot be resolved\n" + 
-			"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=126564 - variation
-	public void test037() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import static p.A.CONSTANT_I;\n" + 
-				"import static p.A.CONSTANT_B;\n" + 
-				"public class X {\n" + 
-				"  static int i = p.A.CONSTANT_I;\n" + 
-				"  static int j = p.A.CONSTANT_B;\n" + 
-				"  static int m = CONSTANT_I;\n" + 
-				"  static int n = CONSTANT_B;\n" + 
-				"}",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A extends B implements I {}\n" + 
-				"interface I { int CONSTANT_I = 1; }\n" + 
-				"class B { public static int CONSTANT_B = 1; }",
-			}, 
-			"");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=126564 - variation
-	public void test038() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static p.A.foo_I;\n" + 
-				"import static p.A.foo_B;\n" + 
-				"public class X {\n" + 
-				"  static int i = p.A.foo_I();\n" + 
-				"  static int j = p.A.foo_B();\n" + 
-				"  static int m = foo_I();\n" + 
-				"  static int n = foo_B();\n" + 
-				"}",
-				"p/A.java",
-				"package p;\n" + 
-				"public abstract class A extends B implements I {}\n" + 
-				"interface I { int foo_I(); }\n" + 
-				"class B { int foo_B() { return 2;} }",
-			}, 
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	import static p.A.foo_I;\n" + 
-			"	              ^^^^^^^^^\n" + 
-			"The import p.A.foo_I cannot be resolved\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 2)\n" + 
-			"	import static p.A.foo_B;\n" + 
-			"	              ^^^^^^^^^\n" + 
-			"The import p.A.foo_B cannot be resolved\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 4)\n" + 
-			"	static int i = p.A.foo_I();\n" + 
-			"	               ^^^^^^^^^^^\n" + 
-			"Cannot make a static reference to the non-static method foo_I() from the type I\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 5)\n" + 
-			"	static int j = p.A.foo_B();\n" + 
-			"	                   ^^^^^\n" + 
-			"The method foo_B() from the type B is not visible\n" + 
-			"----------\n" + 
-			"5. ERROR in X.java (at line 6)\n" + 
-			"	static int m = foo_I();\n" + 
-			"	               ^^^^^\n" + 
-			"The method foo_I() is undefined for the type X\n" + 
-			"----------\n" + 
-			"6. ERROR in X.java (at line 7)\n" + 
-			"	static int n = foo_B();\n" + 
-			"	               ^^^^^\n" + 
-			"The method foo_B() is undefined for the type X\n" + 
-			"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=126564 - variation
-	public void test039() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static p.A.foo_I;\n" + 
-				"import static p.A.foo_B;\n" + 
-				"public class X {\n" + 
-				"  static int i = p.A.foo_I();\n" + 
-				"  static int j = p.A.foo_B();\n" + 
-				"  static int m = foo_I();\n" + 
-				"  static int n = foo_B();\n" + 
-				"}",
-				"p/A.java",
-				"package p;\n" + 
-				"public abstract class A extends B implements I {}\n" + 
-				"interface I { int foo_I(); }\n" + 
-				"class B { public static int foo_B() { return 2;} }",
-			}, 
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\r\n" + 
-			"	import static p.A.foo_I;\r\n" + 
-			"	              ^^^^^^^^^\n" + 
-			"The import p.A.foo_I cannot be resolved\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\r\n" + 
-			"	static int i = p.A.foo_I();\r\n" + 
-			"	               ^^^^^^^^^^^\n" + 
-			"Cannot make a static reference to the non-static method foo_I() from the type I\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 6)\r\n" + 
-			"	static int m = foo_I();\r\n" + 
-			"	               ^^^^^\n" + 
-			"The method foo_I() is undefined for the type X\n" + 
-			"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=87490 - variation
-	public void test040() {
-		this.runConformTest(
-			new String[] {
-				"p1/Z.java",//====================
-				"package p1;\n" + 
-				"public class Z {\n" + 
-				"	public interface I {\n" + 
-				"	}\n" + 
-				"}\n",
-				"q/Y.java",//====================
-				"package q;\n" + 
-				"import static p.X.foo;\n" + 
-				"import static p1.Z.I;\n" + 
-				"public class Y implements I {\n" + 
-				"}\n",
-				"p/X.java",//====================
-				"package p;\n" + 
-				"public class X {\n" + 
-				"	public static void foo() {}\n" + 
-				"}\n"	,			
-			},
-			"");
-		// recompile Y against binaries
-		this.runConformTest(
-			new String[] {
-				"q/Y.java",//====================
-				"package q;\n" + 
-				"import static p.X.foo;\n" + 
-				"import static p1.Z.I;\n" + 
-				"public class Y implements I {\n" + 
-				"}\n",
-			},
-			"",
-			null,
-			false,
-			null);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=134118
-	public void test041() {
-		this.runNegativeTest(
-			new String[] {
-				"Test.java",
-				"import static p.I.*;\n" + 
-				"import static p.J.*;\n" + 
-				"public class Test {\n" + 
-				"	int i = Constant;\n" + 
-				"}\n",
-				"p/I.java",
-				"package p;\n" + 
-				"public interface I { static int Constant = 1; }\n",
-				"p/J.java",
-				"package p;\n" + 
-				"public interface J extends I {}\n"	,			
-			},
-			"----------\n" + 
-			"1. WARNING in Test.java (at line 2)\n" + 
-			"	import static p.J.*;\n" + 
-			"	              ^^^\n" + 
-			"The import p.J is never used\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=133737
-	public void test042() {
-		this.runNegativeTest(
-			new String[] {
-				"ImportTest.java",
-				"import static p.ArrayTest.toString2;\n" + 
-				"public class ImportTest extends SuperTest {\n" + 
-				"	public static void main(String[] args) { printArgs(1, 2, 3, 4, 5); }\n" +
-				"	static void printArgs(Object... args) { toString2(args); }\n" + 
-				"}\n" +
-				"class SuperTest {\n" + 
-				"	static void toString2() {}\n" +
-				"}\n",
-				"p/ArrayTest.java",
-				"package p;\n" + 
-				"public class ArrayTest {\n" + 
-				"	public static void toString2(String[] args) {}\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in ImportTest.java (at line 4)\r\n" + 
-			"	static void printArgs(Object... args) { toString2(args); }\r\n" + 
-			"	                                        ^^^^^^^^^\n" + 
-			"The method toString2() in the type SuperTest is not applicable for the arguments (Object[])\n" + 
-			"----------\n"
-			// toString2() in SuperTest cannot be applied to (java.lang.Object[])
-		);
-		this.runNegativeTest(
-			new String[] {
-				"ImportTest.java",
-				"import static java.util.Arrays.toString;\n" + 
-				"public class ImportTest {\n" + 
-				"	public static void main(String[] args) { printArgs(1, 2, 3, 4, 5); }\n" +
-				"	static void printArgs(Object... args) { toString(args); }\n" + 
-				"}\n"	
-			},
-			"----------\n" + 
-			"1. ERROR in ImportTest.java (at line 4)\n" + 
-			"	static void printArgs(Object... args) { toString(args); }\n" + 
-			"	                                        ^^^^^^^^\n" + 
-			"The method toString() in the type Object is not applicable for the arguments (Object[])\n" + 
-			"----------\n"
-			// toString() in java.lang.Object cannot be applied to (java.lang.Object[])
-		);
-	}
-	public void test042b() {
-		this.runConformTest(
-			new String[] {
-				"ImportTest.java",
-				"import static p.DefinesFoo.foo;\n" + 
-				"public class ImportTest extends SuperImportTest {\n" + 
-				"	void test() { foo(\"fails?\"); }\n" + 
-				"}\n" +
-				"class SuperImportTest {\n" + 
-				"	private void foo() {}\n" +
-				"}\n",
-				"p/DefinesFoo.java",
-				"package p;\n" + 
-				"public class DefinesFoo {\n" + 
-				"	public static void foo(String s) {}\n" +
-				"}\n",
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=129388
-	public void test043() {
-		this.runConformTest(
-			new String[] {
-				"B.java",
-				"import static java.lang.String.format;\n" + 
-				"public class B extends p.A {\n" + 
-				"	void test() { format(\"fails?\"); }\n" + 
-				"	void test2() { format(\"fails?\", null); }\n" + 
-				"	void test3() { format(\"fails?\", null, null); }\n" + 
-				"	void test4() { format(\"fails?\", null, null, null); }\n" + 
-				"}\n",
-				"p/A.java",
-				"package p;\n" + 
-				"public class A {\n" + 
-				"	static String format(String message, Object expected, Object actual) { return null; }\n" +
-				"}\n",
-			},
-			""
-		);
-	}
-	// names potential confusion
-	public void test044() {
-		this.runConformTest(
-			new String[] {
-				"p/X.java",
-				"package p;\n" + 
-				"import static p.X.B.E;\n" + 
-				"import static p.X.B.*;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"  public static class Y {\n" + 
-				"    public enum E { FOO; }\n" + 
-				"    public static Object E() { return null; }\n" + 
-				"    public enum F { FOO; }\n" + 
-				"    public static Object F() { return null; }\n" + 
-				"  }\n" + 
-				"  public static class B extends Y {}\n" + 
-				"  Object f1 = E.FOO;\n" + 
-				"  Object f2 = E();\n" + 
-				"  Object f3 = F.FOO;\n" + 
-				"  Object f4 = F();\n" + 
-				"}\n",
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=142772
-	public void test045() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import static test.Y.arrayList;\n" +
-				"public class X { static void arrayList(int x) { arrayList(); } }\n",
-				"test/Y.java",
-				"package test;\n" +
-				"public class Y { public static void arrayList() {} }\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	public class X { static void arrayList(int x) { arrayList(); } }\n" + 
-			"	                                                ^^^^^^^^^\n" + 
-			"The method arrayList(int) in the type X is not applicable for the arguments ()\n" + 
-			"----------\n"
-			// arrayList(int) in X cannot be applied to ()
-		);
-	}
-	public void test045b() {
-		this.runNegativeTest(
-			new String[] {
-				"test/One.java",
-				"package test;\n" +
-				"public class One { public static void arrayList(String s) {} }\n",
-				"test/Two.java",
-				"package test;\n" +
-				"public class Two { public void arrayList(int i) {} }\n",
-				"test/Three.java",
-				"package test;\n" +
-				"import static test.One.arrayList;\n" +
-				"public class Three extends Two { public static void test(String s) { arrayList(s); } }\n",
-			},
-			"----------\n" + 
-			"1. ERROR in test\\Three.java (at line 3)\n" + 
-			"	public class Three extends Two { public static void test(String s) { arrayList(s); } }\n" + 
-			"	                                                                     ^^^^^^^^^\n" + 
-			"The method arrayList(int) in the type Two is not applicable for the arguments (String)\n" + 
-			"----------\n"
-			// arrayList(int) in test.Two cannot be applied to (java.lang.String)
-		);
-		this.runNegativeTest(
-			new String[] {
-				"test/One.java",
-				"package test;\n" +
-				"public class One { public static void arrayList(String s) {} }\n",
-				"test/Two.java",
-				"package test;\n" +
-				"public class Two { public static void arrayList(int i) {} }\n",
-				"test/Three.java",
-				"package test;\n" +
-				"import static test.One.arrayList;\n" +
-				"public class Three extends Two { public static void test(String s) { arrayList(s); } }\n",
-			},
-			"----------\n" + 
-			"1. ERROR in test\\Three.java (at line 3)\r\n" + 
-			"	public class Three extends Two { public static void test(String s) { arrayList(s); } }\r\n" + 
-			"	                                                                     ^^^^^^^^^\n" + 
-			"The method arrayList(int) in the type Two is not applicable for the arguments (String)\n" + 
-			"----------\n"
-			// arrayList(int) in test.Two cannot be applied to (java.lang.String)
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=133737
-	public void test046() {
-		this.runNegativeTest(
-			new String[] {
-				"error/Exporter.java",
-				"package error;\n" + 
-				"public class Exporter {\n" + 
-				"  public static String getName(Class<?> c) {\n" + 
-				"    return null;\n" + 
-				"  }\n" + 
-				"}",
-				"error/Importer.java",
-				"package error;\n" + 
-				"import static error.Exporter.getName;\n" + 
-				"public class Importer extends Base {\n" + 
-				"  public void testSomething() {\n" + 
-				"    getName();\n" + 
-				"    getName(Importer.class);\n" + 
-				"  }\n" + 
-				"}",
-				"error/Base.java",
-				"package error;\n" + 
-				"public class Base {\n" + 
-				"  public String getName() {\n" + 
-				"    return \"name\";\n" + 
-				"  }\n" + 
-				"}"
-			},
-			"----------\n" + 
-			"1. ERROR in error\\Importer.java (at line 6)\n" + 
-			"	getName(Importer.class);\n" + 
-			"	^^^^^^^\n" + 
-			"The method getName() in the type Base is not applicable for the arguments (Class<Importer>)\n" + 
-			"----------\n"
-		);		
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165069
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165081
-	public void test047() {
-		this.runNegativeTest(
-			new String[] {
-				"sample/X.java",
-				"package sample;\n" + 
-				"import static sample.X.TestEnum.V1;\n" + 
-				"import static sample.X.TestEnum.V2;\n" + 
-				"\n" + 
-				"public class X<T> {\n" + 
-				"        public static enum TestEnum {\n" + 
-				"                V1,\n" + 
-				"                V2\n" + 
-				"        }\n" + 
-				"\n" + 
-				"        public void test(final TestEnum value) {\n" + 
-				"                switch (value) {\n" + 
-				"                        case V1:\n" + 
-				"                        case V2:\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"\n" + 
-				"        public void ref() {\n" + 
-				"               final TestEnum v1 = TestEnum.V1;\n" + 
-				"               final TestEnum v2 = TestEnum.V2;\n" + 
-				"				int i;\n" +
-				"				i++;\n" +
-				"        }\n" + 
-				"}", // =================
-			},
-			"----------\n" + 
-			"1. WARNING in sample\\X.java (at line 2)\n" + 
-			"	import static sample.X.TestEnum.V1;\n" + 
-			"	              ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The import sample.X.TestEnum.V1 is never used\n" + 
-			"----------\n" + 
-			"2. WARNING in sample\\X.java (at line 3)\n" + 
-			"	import static sample.X.TestEnum.V2;\n" + 
-			"	              ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The import sample.X.TestEnum.V2 is never used\n" + 
-			"----------\n" + 
-			"3. ERROR in sample\\X.java (at line 22)\n" + 
-			"	i++;\n" + 
-			"	^\n" + 
-			"The local variable i may not have been initialized\n" + 
-			"----------\n");		
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165069 - variation
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165081 - variation
-	public void test048() {
-		this.runNegativeTest(
-			new String[] {
-				"sample/X.java",
-				"package sample;\n" + 
-				"import static sample.X.TestEnum.*;\n" + 
-				"\n" + 
-				"public class X<T> {\n" + 
-				"        public static enum TestEnum {\n" + 
-				"                V1,\n" + 
-				"                V2\n" + 
-				"        }\n" + 
-				"\n" + 
-				"        public void test(final TestEnum value) {\n" + 
-				"                switch (value) {\n" + 
-				"                        case V1:\n" + 
-				"                        case V2:\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"\n" + 
-				"        public void ref() {\n" + 
-				"               final TestEnum v1 = TestEnum.V1;\n" + 
-				"               final TestEnum v2 = TestEnum.V2;\n" + 
-				"				int i;\n" +
-				"				i++;\n" +
-				"        }\n" + 
-				"}", // =================
-			},
-			"----------\n" + 
-			"1. WARNING in sample\\X.java (at line 2)\n" + 
-			"	import static sample.X.TestEnum.*;\n" + 
-			"	              ^^^^^^^^^^^^^^^^^\n" + 
-			"The import sample.X.TestEnum is never used\n" + 
-			"----------\n" + 
-			"2. ERROR in sample\\X.java (at line 21)\n" + 
-			"	i++;\n" + 
-			"	^\n" + 
-			"The local variable i may not have been initialized\n" + 
-			"----------\n");		
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165081 - variation
-	public void test049() {
-		this.runNegativeTest(
-			new String[] {
-				"sample/X.java",
-				"package sample;\n" + 
-				"import static sample.X.*;\n" + 
-				"public class X {\n" + 
-				"	public class Member {}\n" + 
-				"	public void ref() {\n" + 
-				"		int i;\n" +
-				"		i++;\n" +
-				"	}\n" + 
-				"}", // =================
-			},
-			"----------\n" + 
-			"1. WARNING in sample\\X.java (at line 2)\n" + 
-			"	import static sample.X.*;\n" + 
-			"	              ^^^^^^^^\n" + 
-			"The import sample.X is never used\n" + 
-			"----------\n" + 
-			"2. ERROR in sample\\X.java (at line 7)\n" + 
-			"	i++;\n" + 
-			"	^\n" + 
-			"The local variable i may not have been initialized\n" + 
-			"----------\n");		
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SuperTypeTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SuperTypeTest.java
deleted file mode 100644
index 00ca596..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SuperTypeTest.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-public class SuperTypeTest extends AbstractRegressionTest {
-
-	public SuperTypeTest(String name) {
-		super(name);
-	}
-	// Static initializer to specify tests subset using TESTS_* static variables
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_NAMES = new String[] { "test000" };
-//		TESTS_NUMBERS = new int[] { 42, 43, 44 };
-//		TESTS_RANGE = new int[] { 11, -1 };
-	}
-	
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(testClass());
-	}
-
-	public static Class testClass() {
-		return SuperTypeTest.class;
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=136106
-	 */
-	public void test001() {
-		this.runConformTest(
-			new String[] {
-				/* org.eclipse.curiosity.A */
-				"org/eclipse/curiosity/A.java",
-				"package org.eclipse.curiosity;\n" + 
-				"public abstract class A implements InterfaceA {\n" + 
-				"	private void e() {\n" + 
-				"	}\n" + 
-				"	public void f() {\n" + 
-				"		this.e();\n" + 
-				"	}\n" + 
-				"}",
-				/* org.eclipse.curiosity.InterfaceA */
-				"org/eclipse/curiosity/InterfaceA.java",
-				"package org.eclipse.curiosity;\n" + 
-				"public interface InterfaceA extends InterfaceBase {}\n",
-				"org/eclipse/curiosity/InterfaceBase.java",
-				/* org.eclipse.curiosity.InterfaceBase */
-				"package org.eclipse.curiosity;\n" + 
-				"public interface InterfaceBase {\n" + 
-				"    public void a();\n" + 
-				"    public void b();\n" + 
-				"    public void c();\n" + 
-				"    public void d();\n" + 
-				"}"
-			}
-		);
-	}
-// was Compliance_1_x#test001
-public void test002() {
-	String[] sources = new String[] {
-		"p1/Test.java",
-		"package p1; \n"+
-		"public class Test { \n"+
-		"	public static void main(String[] arguments) { \n"+
-		"		new Test().foo(); \n"+
-		"	} \n"+
-		"	class M { \n"+
-		"	} \n"+
-		"	void foo(){ \n"+
-		"		class Y extends Secondary { \n"+
-		"			M m; \n"+
-		"		}; \n"+
-		"		System.out.println(\"SUCCESS\");	\n" +
-		"	} \n"+
-		"} \n" +
-		"class Secondary { \n" +
-		"	class M {} \n" +
-		"} \n"
-	};
-	if (this.complianceLevel.equals(COMPLIANCE_1_3)) {
-		runNegativeTest(
-			sources,
-			"----------\n" + 
-			"1. ERROR in p1\\Test.java (at line 10)\n" + 
-			"	M m; \n" + 
-			"	^\n" + 
-			"The type M is defined in an inherited type and an enclosing scope\n" + 
-			"----------\n");
-	} else {
-		runConformTest(
-			sources,
-			"SUCCESS");
-	}
-}	
-
-// was Compliance_1_x#test002
-public void test003() {
-	String[] sources = new String[] {
-		"p1/Test.java",
-		"package p1; \n"+
-		"public class Test { \n"+
-		"	public static void main(String[] arguments) { \n"+
-		"		new Test().foo(); \n"+
-		"	} \n"+
-		"	String bar() { \n"+
-		"		return \"FAILED\";	\n" +
-		"	} \n"+
-		"	void foo(){ \n"+
-		"		class Y extends Secondary { \n"+
-		"			String z = bar();	\n" +
-		"		}; \n"+
-		"		System.out.println(new Y().z);	\n" +
-		"	} \n"+
-		"} \n" +
-		"class Secondary { \n" +
-		"	String bar(){ return \"SUCCESS\"; } \n" +
-		"} \n"
-	};
-	if (this.complianceLevel.equals(COMPLIANCE_1_3)) {
-		runNegativeTest(
-			sources,
-			"----------\n" + 
-			"1. ERROR in p1\\Test.java (at line 11)\n" + 
-			"	String z = bar();	\n" + 
-			"	           ^^^\n" + 
-			"The method bar is defined in an inherited type and an enclosing scope\n" + 
-			"----------\n");
-	} else {
-		runConformTest(
-			sources,
-			"SUCCESS");
-	}
-}
-
-// was Compliance_1_x#test003
-public void test004() {
-	String[] sources = new String[] {
-		"p1/Test.java",
-		"package p1; \n"+
-		"public class Test { \n"+
-		"	public static void main(String[] arguments) { \n"+
-		"		new Test().foo(); \n"+
-		"	} \n"+
-		"	String bar = \"FAILED\";"+
-		"	void foo(){ \n"+
-		"		class Y extends Secondary { \n"+
-		"			String z = bar; \n"+
-		"		}; \n"+
-		"		System.out.println(new Y().z);	\n" +
-		"	} \n"+
-		"} \n" +
-		"class Secondary { \n" +
-		"	String bar = \"SUCCESS\"; \n" +
-		"} \n"
-	};
-	if (this.complianceLevel.equals(COMPLIANCE_1_3)) {
-		runNegativeTest(
-			sources,
-			"----------\n" + 
-			"1. ERROR in p1\\Test.java (at line 8)\n" + 
-			"	String z = bar; \n" + 
-			"	           ^^^\n" + 
-			"The field bar is defined in an inherited type and an enclosing scope \n" + 
-			"----------\n");
-	} else {
-		runConformTest(
-			sources,
-			"SUCCESS");
-	}
-}
-
-// was Compliance_1_x#test004
-public void test005() {
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1; \n"+
-			"public class Test { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new Test().foo(); \n"+
-			"	} \n"+
-			"	String bar() { \n"+
-			"		return \"SUCCESS\";	\n" +
-			"	} \n"+
-			"	void foo(){ \n"+
-			"		class Y extends Secondary { \n"+
-			"			String z = bar();	\n" +
-			"		}; \n"+
-			"		System.out.println(new Y().z);	\n" +
-			"	} \n"+
-			"} \n" +
-			"class Secondary { \n" +
-			"	private String bar(){ return \"FAILED\"; } \n" +
-			"} \n"
-		},
-		"SUCCESS");
-}
-
-// was Compliance_1_x#test005
-public void test006() {
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1; \n"+
-			"public class Test { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new Test().foo(); \n"+
-			"	} \n"+
-			"	String bar = \"SUCCESS\";"+
-			"	void foo(){ \n"+
-			"		class Y extends Secondary { \n"+
-			"			String z = bar; \n"+
-			"		}; \n"+
-			"		System.out.println(new Y().z);	\n" +
-			"	} \n"+
-			"} \n" +
-			"class Secondary { \n" +
-			"	private String bar = \"FAILED\"; \n" +
-			"} \n"
-		},
-		"SUCCESS");
-}
-
-// was Compliance_1_x#test006
-public void test007() {
-	this.runNegativeTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1; \n"+
-			"public class Test { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new Test().foo(); \n"+
-			"	} \n"+
-			"	String bar() { \n"+
-			"		return \"FAILED\";	\n" +
-			"	} \n"+
-			"	void foo(){ \n"+
-			"		class Y extends Secondary { \n"+
-			"			String z = bar();	\n" +
-			"		}; \n"+
-			"		System.out.println(new Y().z);	\n" +
-			"	} \n"+
-			"} \n" +
-			"class Secondary { \n" +
-			"	String bar(int i){ return \"SUCCESS\"; } \n" +
-			"} \n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\Test.java (at line 11)\n" + 
-		"	String z = bar();	\n" + 
-		"	           ^^^\n" + 
-		"The method bar(int) in the type Secondary is not applicable for the arguments ()\n" + 
-		"----------\n"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SwitchTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SwitchTest.java
deleted file mode 100644
index bde73f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/SwitchTest.java
+++ /dev/null
@@ -1,576 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-public class SwitchTest extends AbstractRegressionTest {
-	
-public SwitchTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-
-public void test001() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public static void main(String args[]) {\n" + 
-		"    foo();\n" + 
-		"  }\n" + 
-		"  public static void foo() {\n" + 
-		"    try {\n" + 
-		"      switch(0) {\n" + 
-		"      case 0 :\n" + 
-		"      case 1 - (1 << 31) :\n" + 
-		"      case (1 << 30) :\n" + 
-		"      }\n" + 
-		"    } catch (OutOfMemoryError e) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-public void test002() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int k;\n" + 
-		"  public void foo() {\n" + 
-		"    int c;\n" + 
-		"    switch (k) {\n" + 
-		"      default :\n" + 
-		"        c = 2;\n" + 
-		"        break;\n" + 
-		"      case 2 :\n" + 
-		"        c = 3;\n" + 
-		"        break;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test003() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int i = 0;\n" + 
-		"  void foo() {\n" + 
-		"    switch (i) {\n" + 
-		"      case 1 :\n" + 
-		"        {\n" + 
-		"          int j;\n" + 
-		"          break;\n" + 
-		"        }\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test004() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public static int foo() {\n" + 
-		"    int i = 0, j;\n" + 
-		"    switch (i) {\n" + 
-		"      default :\n" + 
-		"        int k = 2;\n" + 
-		"        j = k;\n" + 
-		"    }\n" + 
-		"    if (j != -2) {\n" + 
-		"      return 1;\n" + 
-		"    }\n" + 
-		"    return 0;\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test005() {
-	this.runConformTest(new String[] {
-		"p/BugJavaCase.java",
-		"package p;\n" + 
-		"class BugJavaCase {\n" + 
-		"  public static final int BC_ZERO_ARG = 1;\n" + 
-		"  public void test01(int i) {\n" + 
-		"    switch (i) {\n" + 
-		"      case BC_ZERO_ARG :\n" + 
-		"        System.out.println(\"i = \" + i);\n" + 
-		"        break;\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-
-public void test006() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public static void main(String args[]) {\n" + 
-		"    foo(); \n" + 
-		"  } \n" + 
-		" \n" + 
-		"  public static void foo() { \n" + 
-		"    char x = 5;\n" + 
-		"    final short b = 5;\n" + 
-		"    int a;\n" + 
-		"    \n" + 
-		"    switch (x) {\n" + 
-		"      case b:        // compile time error\n" + 
-		"        a = 0;\n" + 
-		"        break; \n" + 
-		"      default:\n" + 
-		"        a=1;\n" + 
-		"    }\n" + 
-		"    \n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test007() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"class X {\n" + 
-			"  void v() {\n" + 
-			"    switch (1) {\n" + 
-			"      case (int) (1.0 / 0.0) :\n" + 
-			"        break;\n" + 
-			"      case (int) (2.0 / 0.0) :\n" + 
-			"        break;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 5)\n" + 
-		"	case (int) (1.0 / 0.0) :\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Duplicate case\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 7)\n" + 
-		"	case (int) (2.0 / 0.0) :\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Duplicate case\n" + 
-		"----------\n"
-	);
-}
-public void test008() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"	public static void main(String[] args) {\n" + 
-		"		switch(args.length){\n" + 
-		"		}\n" + 
-		"		System.out.println(\"SUCCESS\");\n" + 
-		"	}\n" + 
-		"}\n",
-	},
-	"SUCCESS");
-}
-public void test009() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"    public static void main(String argv[]) {\n" + 
-		"        switch (81391861) {\n" + 
-		"        case (81391861) :\n" + 
-		"        	System.out.println(\"SUCCESS\");\n" + 
-		"            break;\n" + 
-		"        default:\n" + 
-		"        	System.out.println(\"FAILED\");\n" + 
-		"        }\n" + 
-		"    }\n" + 
-		"}\n",
-	},
-	"SUCCESS");
-}
-public void test010() {
-	this.runNegativeTest(new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"	\n" + 
-		"	void foo(){\n" + 
-		"		switch(this){\n" + 
-		"			case 0 : \n" + 
-		"				Zork z;\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	\n" + 
-		"	void bar(){\n" + 
-		"		switch(x){\n" + 
-		"			case 0 : \n" + 
-		"				Zork z;\n" + 
-		"		}\n" + 
-		"	}	\n" + 
-		"}\n",
-	},
-	"----------\n" + 
-	"1. ERROR in X.java (at line 4)\n" + 
-	"	switch(this){\n" + 
-	"	       ^^^^\n" + 
-	"Cannot switch on a value of type X. Only int values or enum constants are permitted\n" + 
-	"----------\n" + 
-	"2. ERROR in X.java (at line 6)\n" + 
-	"	Zork z;\n" + 
-	"	^^^^\n" + 
-	"Zork cannot be resolved to a type\n" + 
-	"----------\n" + 
-	"3. ERROR in X.java (at line 11)\n" + 
-	"	switch(x){\n" + 
-	"	       ^\n" + 
-	"x cannot be resolved\n" + 
-	"----------\n" + 
-	"4. ERROR in X.java (at line 13)\n" + 
-	"	Zork z;\n" + 
-	"	^^^^\n" + 
-	"Zork cannot be resolved to a type\n" + 
-	"----------\n");
-}
-public void test011() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"	public static void main(String args[]) {\n" + 
-		"		switch (args.length) {\n" + 
-		"			case 1 :\n" + 
-		"				System.out.println();\n" + 
-		"			case 3 :\n" + 
-		"				break;\n" + 
-		"			default :\n" + 
-		"		}\n" + 
-		"		System.out.println(\"SUCCESS\");\n" + 
-		"	}\n" + 
-		"}\n",
-	},
-	"SUCCESS");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=86813
-//public void test012() {
-//	this.runConformTest(new String[] {
-//		"X.java",
-//		"public class X {\n" + 
-//		"  public static void main(String[] args) {\n" + 
-//		"    boolean x= true;\n" + 
-//		"    try {\n" + 
-//		"      int i= 1;\n" + 
-//		"      switch (i) { // <-- breakpoint here\n" + 
-//		"        case 1:\n" + 
-//		"          break;      //step 1 \n" + 
-//		"        case 2:\n" + 
-//		"          x = false;   //step 2 \n" + 
-//		"          break;\n" + 
-//		"      }\n" + 
-//		"    }catch(Exception e) {\n" + 
-//		"    }\n" + 
-//		"    System.out.println(\"SUCCESS\");\n" + 
-//		"  }\n" + 
-//		"}\n",
-//	},
-//	"SUCCESS");
-//
-//	String expectedOutput = 
-//		"  // Method descriptor #15 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 2, Locals: 3\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"     0  iconst_1\n" + 
-//		"     1  istore_1 [x]\n" + 
-//		"     2  iconst_1\n" + 
-//		"     3  istore_2 [i]\n" + 
-//		"     4  iload_2 [i]\n" + 
-//		"     5  tableswitch default: 33\n" + 
-//		"          case 1: 28\n" + 
-//		"          case 2: 31\n" + 
-//		"    28  goto 37\n" + 
-//		"    31  iconst_0\n" + 
-//		"    32  istore_1 [x]\n" + 
-//		"    33  goto 37\n" + 
-//		"    36  astore_2\n" + 
-//		"    37  getstatic java.lang.System.out : java.io.PrintStream [16]\n" + 
-//		"    40  ldc <String \"SUCCESS\"> [22]\n" + 
-//		"    42  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + 
-//		"    45  return\n" + 
-//		"      Exception Table:\n" + 
-//		"        [pc: 2, pc: 33] -> 36 when : java.lang.Exception\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 3]\n" + 
-//		"        [pc: 2, line: 5]\n" + 
-//		"        [pc: 4, line: 6]\n" + 
-//		"        [pc: 28, line: 8]\n" + 
-//		"        [pc: 31, line: 10]\n" + 
-//		"        [pc: 33, line: 12]\n" + 
-//		"        [pc: 36, line: 13]\n" + 
-//		"        [pc: 37, line: 15]\n" + 
-//		"        [pc: 45, line: 16]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 46] local: args index: 0 type: java.lang.String[]\n" + 
-//		"        [pc: 2, pc: 46] local: x index: 1 type: boolean\n" + 
-//		"        [pc: 4, pc: 36] local: i index: 2 type: int\n";
-//	
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		e.printStackTrace();
-//		assertTrue("ClassFormatException", false);
-//	} catch (IOException e) {
-//		e.printStackTrace();
-//		assertTrue("IOException", false);
-//	}		
-//}
-//public void test013() {
-//	this.runConformTest(new String[] {
-//		"X.java",
-//		"public class X {\n" + 
-//		"\n" + 
-//		"	public static void main(String[] args) {\n" + 
-//		"		X x;\n" + 
-//		"		Object o = null;\n" + 
-//		"		for (int i = 0; i < 10; i++) {\n" + 
-//		"			if (i < 90) {\n" + 
-//		"				x = new X();\n" + 
-//		"				if (i > 4) {\n" + 
-//		"					o = new Object();\n" + 
-//		"				} else {\n" + 
-//		"					o = null;\n" + 
-//		"				}\n" + 
-//		"				switch (2) {\n" + 
-//		"					case 0:\n" + 
-//		"						if (o instanceof String) {\n" + 
-//		"							System.out.print(\"1\");\n" + 
-//		"							return;\n" + 
-//		"						} else {\n" + 
-//		"							break;\n" + 
-//		"						}\n" + 
-//		"					default: {\n" + 
-//		"						Object diff = o;\n" + 
-//		"						if (diff != null) {\n" + 
-//		"							System.out.print(\"2\");\n" + 
-//		"						}\n" + 
-//		"						break;\n" + 
-//		"					}\n" + 
-//		"				}\n" + 
-//		"				System.out.print(\"3\");				\n" + 
-//		"			}\n" + 
-//		"		}\n" + 
-//		"	}\n" + 
-//		"}\n",
-//	},
-//	"333332323232323");
-//
-//	String expectedOutput = new CompilerOptions(this.getCompilerOptions()).complianceLevel < ClassFileConstants.JDK1_6
-//		?	"  // Method descriptor #15 ([Ljava/lang/String;)V\n" + 
-//			"  // Stack: 2, Locals: 5\n" + 
-//			"  public static void main(java.lang.String[] args);\n" + 
-//			"      0  aconst_null\n" + 
-//			"      1  astore_2 [o]\n" + 
-//			"      2  iconst_0\n" + 
-//			"      3  istore_3 [i]\n" + 
-//			"      4  goto 103\n" + 
-//			"      7  iload_3 [i]\n" + 
-//			"      8  bipush 90\n" + 
-//			"     10  if_icmpge 100\n" + 
-//			"     13  new X [1]\n" + 
-//			"     16  dup\n" + 
-//			"     17  invokespecial X() [16]\n" + 
-//			"     20  astore_1 [x]\n" + 
-//			"     21  iload_3 [i]\n" + 
-//			"     22  iconst_4\n" + 
-//			"     23  if_icmple 37\n" + 
-//			"     26  new java.lang.Object [3]\n" + 
-//			"     29  dup\n" + 
-//			"     30  invokespecial java.lang.Object() [8]\n" + 
-//			"     33  astore_2 [o]\n" + 
-//			"     34  goto 39\n" + 
-//			"     37  aconst_null\n" + 
-//			"     38  astore_2 [o]\n" + 
-//			"     39  iconst_2\n" + 
-//			"     40  tableswitch default: 76\n" + 
-//			"          case 0: 60\n" + 
-//			"     60  aload_2 [o]\n" + 
-//			"     61  instanceof java.lang.String [17]\n" + 
-//			"     64  ifeq 92\n" + 
-//			"     67  getstatic java.lang.System.out : java.io.PrintStream [19]\n" + 
-//			"     70  ldc <String \"1\"> [25]\n" + 
-//			"     72  invokevirtual java.io.PrintStream.print(java.lang.String) : void [27]\n" + 
-//			"     75  return\n" + 
-//			"     76  aload_2 [o]\n" + 
-//			"     77  astore 4 [diff]\n" + 
-//			"     79  aload 4 [diff]\n" + 
-//			"     81  ifnull 92\n" + 
-//			"     84  getstatic java.lang.System.out : java.io.PrintStream [19]\n" + 
-//			"     87  ldc <String \"2\"> [33]\n" + 
-//			"     89  invokevirtual java.io.PrintStream.print(java.lang.String) : void [27]\n" + 
-//			"     92  getstatic java.lang.System.out : java.io.PrintStream [19]\n" + 
-//			"     95  ldc <String \"3\"> [35]\n" + 
-//			"     97  invokevirtual java.io.PrintStream.print(java.lang.String) : void [27]\n" + 
-//			"    100  iinc 3 1 [i]\n" + 
-//			"    103  iload_3 [i]\n" + 
-//			"    104  bipush 10\n" + 
-//			"    106  if_icmplt 7\n" + 
-//			"    109  return\n" + 
-//			"      Line numbers:\n" + 
-//			"        [pc: 0, line: 5]\n" + 
-//			"        [pc: 2, line: 6]\n" + 
-//			"        [pc: 7, line: 7]\n" + 
-//			"        [pc: 13, line: 8]\n" + 
-//			"        [pc: 21, line: 9]\n" + 
-//			"        [pc: 26, line: 10]\n" + 
-//			"        [pc: 37, line: 12]\n" + 
-//			"        [pc: 39, line: 14]\n" + 
-//			"        [pc: 60, line: 16]\n" + 
-//			"        [pc: 67, line: 17]\n" + 
-//			"        [pc: 75, line: 18]\n" + 
-//			"        [pc: 76, line: 23]\n" + 
-//			"        [pc: 79, line: 24]\n" + 
-//			"        [pc: 84, line: 25]\n" + 
-//			"        [pc: 92, line: 30]\n" + 
-//			"        [pc: 100, line: 6]\n" + 
-//			"        [pc: 109, line: 33]\n" + 
-//			"      Local variable table:\n" + 
-//			"        [pc: 0, pc: 110] local: args index: 0 type: java.lang.String[]\n" + 
-//			"        [pc: 21, pc: 100] local: x index: 1 type: X\n" + 
-//			"        [pc: 2, pc: 110] local: o index: 2 type: java.lang.Object\n" + 
-//			"        [pc: 4, pc: 109] local: i index: 3 type: int\n" + 
-//			"        [pc: 79, pc: 92] local: diff index: 4 type: java.lang.Object\n"
-//		:
-//			"  // Method descriptor #15 ([Ljava/lang/String;)V\n" + 
-//			"  // Stack: 2, Locals: 5\n" + 
-//			"  public static void main(java.lang.String[] args);\n" + 
-//			"      0  aconst_null\n" + 
-//			"      1  astore_2 [o]\n" + 
-//			"      2  iconst_0\n" + 
-//			"      3  istore_3 [i]\n" + 
-//			"      4  goto 103\n" + 
-//			"      7  iload_3 [i]\n" + 
-//			"      8  bipush 90\n" + 
-//			"     10  if_icmpge 100\n" + 
-//			"     13  new X [1]\n" + 
-//			"     16  dup\n" + 
-//			"     17  invokespecial X() [16]\n" + 
-//			"     20  astore_1 [x]\n" + 
-//			"     21  iload_3 [i]\n" + 
-//			"     22  iconst_4\n" + 
-//			"     23  if_icmple 37\n" + 
-//			"     26  new java.lang.Object [3]\n" + 
-//			"     29  dup\n" + 
-//			"     30  invokespecial java.lang.Object() [8]\n" + 
-//			"     33  astore_2 [o]\n" + 
-//			"     34  goto 39\n" + 
-//			"     37  aconst_null\n" + 
-//			"     38  astore_2 [o]\n" + 
-//			"     39  iconst_2\n" + 
-//			"     40  tableswitch default: 76\n" + 
-//			"          case 0: 60\n" + 
-//			"     60  aload_2 [o]\n" + 
-//			"     61  instanceof java.lang.String [17]\n" + 
-//			"     64  ifeq 92\n" + 
-//			"     67  getstatic java.lang.System.out : java.io.PrintStream [19]\n" + 
-//			"     70  ldc <String \"1\"> [25]\n" + 
-//			"     72  invokevirtual java.io.PrintStream.print(java.lang.String) : void [27]\n" + 
-//			"     75  return\n" + 
-//			"     76  aload_2 [o]\n" + 
-//			"     77  astore 4 [diff]\n" + 
-//			"     79  aload 4 [diff]\n" + 
-//			"     81  ifnull 92\n" + 
-//			"     84  getstatic java.lang.System.out : java.io.PrintStream [19]\n" + 
-//			"     87  ldc <String \"2\"> [33]\n" + 
-//			"     89  invokevirtual java.io.PrintStream.print(java.lang.String) : void [27]\n" + 
-//			"     92  getstatic java.lang.System.out : java.io.PrintStream [19]\n" + 
-//			"     95  ldc <String \"3\"> [35]\n" + 
-//			"     97  invokevirtual java.io.PrintStream.print(java.lang.String) : void [27]\n" + 
-//			"    100  iinc 3 1 [i]\n" + 
-//			"    103  iload_3 [i]\n" + 
-//			"    104  bipush 10\n" + 
-//			"    106  if_icmplt 7\n" + 
-//			"    109  return\n" + 
-//			"      Line numbers:\n" + 
-//			"        [pc: 0, line: 5]\n" + 
-//			"        [pc: 2, line: 6]\n" + 
-//			"        [pc: 7, line: 7]\n" + 
-//			"        [pc: 13, line: 8]\n" + 
-//			"        [pc: 21, line: 9]\n" + 
-//			"        [pc: 26, line: 10]\n" + 
-//			"        [pc: 37, line: 12]\n" + 
-//			"        [pc: 39, line: 14]\n" + 
-//			"        [pc: 60, line: 16]\n" + 
-//			"        [pc: 67, line: 17]\n" + 
-//			"        [pc: 75, line: 18]\n" + 
-//			"        [pc: 76, line: 23]\n" + 
-//			"        [pc: 79, line: 24]\n" + 
-//			"        [pc: 84, line: 25]\n" + 
-//			"        [pc: 92, line: 30]\n" + 
-//			"        [pc: 100, line: 6]\n" + 
-//			"        [pc: 109, line: 33]\n" + 
-//			"      Local variable table:\n" + 
-//			"        [pc: 0, pc: 110] local: args index: 0 type: java.lang.String[]\n" + 
-//			"        [pc: 21, pc: 100] local: x index: 1 type: X\n" + 
-//			"        [pc: 2, pc: 110] local: o index: 2 type: java.lang.Object\n" + 
-//			"        [pc: 4, pc: 109] local: i index: 3 type: int\n" + 
-//			"        [pc: 79, pc: 92] local: diff index: 4 type: java.lang.Object\n" + 
-//			"      Stack map table: number of frames 8\n" + 
-//			"        [pc: 7, full, stack: {}, locals: {java.lang.String[], _, java.lang.Object, int}]\n" + 
-//			"        [pc: 37, full, stack: {}, locals: {java.lang.String[], X, java.lang.Object, int}]\n" + 
-//			"        [pc: 39, same]\n" + 
-//			"        [pc: 60, same]\n" + 
-//			"        [pc: 76, same]\n" + 
-//			"        [pc: 92, same]\n" + 
-//			"        [pc: 100, full, stack: {}, locals: {java.lang.String[], _, java.lang.Object, int}]\n" + 
-//			"        [pc: 103, same]\n";
-//	
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		e.printStackTrace();
-//		assertTrue("ClassFormatException", false);
-//	} catch (IOException e) {
-//		e.printStackTrace();
-//		assertTrue("IOException", false);
-//	}		
-//}
-public static Class testClass() {
-	return SwitchTest.class;
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/TestAll.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/TestAll.java
deleted file mode 100644
index a50dd1f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/TestAll.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.ArrayList;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.tests.future.compiler.regression.ArrayTest;
-import org.eclipse.wst.jsdt.core.tests.future.compiler.regression.BooleanTest;
-import org.eclipse.wst.jsdt.core.tests.future.compiler.regression.Compliance_1_4;
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-
-/**
- * Run all compiler regression tests
- */
-public class TestAll extends junit.framework.TestCase {
-
-public TestAll(String testName) {
-	super(testName);
-}
-public static Test suite() {
-	
-	// Common test suites
-	ArrayList standardTests = new ArrayList();
-	standardTests.add(ArrayTest.class);
-	standardTests.add(AssignmentTest.class);
-	standardTests.add(BooleanTest.class);
-//	standardTests.add(ClassFileComparatorTest.class);
-//	standardTests.add(CollisionCase.class);
-//	standardTests.add(ConstantTest.class);
-	standardTests.add(DeprecatedTest.class);
-	standardTests.add(LocalVariableTest.class);
-	standardTests.add(LookupTest.class);
-	standardTests.add(NumericTest.class);
-	standardTests.add(ProblemConstructorTest.class);
-	standardTests.add(ProblemTypeAndMethodTest.class);
-	standardTests.add(ScannerTest.class);
-	standardTests.add(SwitchTest.class);
-	standardTests.add(TryStatementTest.class);
-	standardTests.add(UtilTest.class);
-	standardTests.add(XLargeTest.class);
-	standardTests.add(InternalScannerTest.class);
-//	standardTests.add(ConditionalExpressionTest.class);
-	standardTests.add(ExternalizeStringLiteralsTest.class);
-	standardTests.add(NonFatalErrorTest.class);
-	standardTests.add(FlowAnalysisTest.class);
-	standardTests.add(CharOperationTest.class);
-	standardTests.add(RuntimeTests.class);
-//	standardTests.add(DebugAttributeTest.class);
-	standardTests.add(NullReferenceTest.class);
-	standardTests.add(CompilerInvocationTests.class);
-	standardTests.add(InnerEmulationTest.class);
-	standardTests.add(SuperTypeTest.class);
-	standardTests.add(ForStatementTest.class);
-	standardTests.add(FieldAccessTest.class);
-	standardTests.add(SerialVersionUIDTests.class);
-//	standardTests.add(LineNumberAttributeTest.class);
-	
-	// add all javadoc tests
-	for (int i=0, l=JavadocTest.ALL_CLASSES.size(); i<l; i++) {
-		standardTests.add(JavadocTest.ALL_CLASSES.get(i));
-	}
-
-	// Tests to run when compliance is greater than 1.3
-	ArrayList since_1_4 = new ArrayList();
-//	since_1_4.add(AssertionTest.class);
-
-	// Tests to run when compliance is greater than 1.4
-	ArrayList since_1_5 = new ArrayList();
-	since_1_5.addAll(RunComparableTests.ALL_CLASSES);
-//	since_1_5.add(ClassFileReaderTest_1_5.class);
-	since_1_5.add(InternalHexFloatTest.class);
-	since_1_5.add(JavadocTest_1_5.class);
-//	since_1_5.add(BatchCompilerTest.class);
-	since_1_5.add(ExternalizeStringLiterals15Test.class);
-//	since_1_5.add(Deprecated15Test.class);
-
-	// Tests to run when compliance is greater than 1.5
-	ArrayList since_1_6 = new ArrayList();
-//	since_1_6.add(StackMapAttributeTest.class);
-
-	// Build final test suite
-	TestSuite all = new TestSuite(TestAll.class.getName());
-	int possibleComplianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_3) != 0) {
-		ArrayList tests_1_3 = (ArrayList)standardTests.clone();
-		tests_1_3.add(Compliance_1_3.class);
-		tests_1_3.add(JavadocTest_1_3.class);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_3, tests_1_3));
-	}
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_4) != 0) {
-		ArrayList tests_1_4 = (ArrayList)standardTests.clone();
-		tests_1_4.addAll(since_1_4);
-		tests_1_4.add(Compliance_1_4.class);
-//		tests_1_4.add(ClassFileReaderTest_1_4.class);
-		tests_1_4.add(JavadocTest_1_4.class);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_4, tests_1_4));
-	}
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_5) != 0) {
-		ArrayList tests_1_5 = (ArrayList)standardTests.clone();
-		tests_1_5.addAll(since_1_4);
-		tests_1_5.addAll(since_1_5);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_5, tests_1_5));
-	}
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_6) != 0) {
-		ArrayList tests_1_6 = (ArrayList)standardTests.clone();
-		tests_1_6.addAll(since_1_4);
-		tests_1_6.addAll(since_1_5);
-		tests_1_6.addAll(since_1_6);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_6, tests_1_6));
-	}
-	if ((possibleComplianceLevels & AbstractCompilerTest.F_1_7) != 0) {
-		ArrayList tests_1_7 = (ArrayList)standardTests.clone();
-		tests_1_7.addAll(since_1_4);
-		tests_1_7.addAll(since_1_5);
-		tests_1_7.addAll(since_1_6);
-		// Reset forgotten subsets tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS= null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-		all.addTest(AbstractCompilerTest.buildComplianceTestSuite(AbstractCompilerTest.COMPLIANCE_1_7, tests_1_7));
-	}
-	return all;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/TryStatementTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/TryStatementTest.java
deleted file mode 100644
index 96e3c3c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/TryStatementTest.java
+++ /dev/null
@@ -1,5366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class TryStatementTest extends AbstractRegressionTest {
-
-	static {
-		// TESTS_NAMES = new String[] { "test000" };
-		// TESTS_NUMBERS = new int[] { 54 };
-		// TESTS_RANGE = new int[] { 11, -1 };
-	}
-
-	public TryStatementTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(testClass());
-	}
-
-	public void test001() {
-		this.runConformTest(new String[] {
-				"p/X.java",
-				"package p;\n" + "public class X {\n" + "  public class X1 {\n"
-						+ "    public X1() throws Exception {\n" + "    }\n"
-						+ "  }\n" + "  public void method1(){\n"
-						+ "    try {\n" + "      new X1() {\n" + "      };\n"
-						+ "    } catch(Exception e){\n" + "    }\n" + "  }\n"
-						+ "}\n", });
-	}
-
-	public void test002() {
-		this.runConformTest(new String[] {
-				"p/X.java",
-				"package p;\n" + "import java.io.*;\n"
-						+ "import java.util.zip.*;\n" + "class X {\n"
-						+ "  void bar() throws ZipException, IOException {}\n"
-						+ "  void foo() {\n" + "    try {\n" + "      bar();\n"
-						+ "    } catch (ZipException e) {\n"
-						+ "    } catch (IOException e) {\n" + "    }\n"
-						+ "  }\n" + "}\n", });
-	}
-
-	public void test003() {
-		this.runConformTest(new String[] {
-				"p/X.java",
-				"package p;\n" + "public class X {\n" + "  public class A1 {\n"
-						+ "    public A1() throws Exception {\n" + "    }\n"
-						+ "  }\n" + "  public void method1(){\n"
-						+ "    try {\n" + "      new A1() {\n" + "      };\n"
-						+ "    } catch(Exception e){\n" + "    }\n" + "  }\n"
-						+ "}\n", });
-	}
-
-	public void test004() {
-		this.runConformTest(new String[] {
-				"p/ATC.java",
-				"package p;\n" + "public class ATC {\n" + "    \n"
-						+ "    public class B extends Exception {\n"
-						+ "      public B(String msg) { super(msg); }\n"
-						+ "    }\n" + "    \n"
-						+ "    void foo() throws ATC.B {\n"
-						+ "      Object hello$1 = null;\n" + "      try {\n"
-						+ "        throw new B(\"Inside foo()\");\n"
-						+ "      } catch(B e) {\n"
-						+ "        System.out.println(\"Caught B\");\n"
-						+ "      }    \n" + "    }       \n" + "}\n", });
-	}
-
-	public void test005() {
-		this
-				.runConformTest(new String[] {
-						"p/A.java",
-						"package p;\n"
-								+ "import java.io.IOException;\n"
-								+ "import java.util.Vector;\n"
-								+ "/**\n"
-								+ " * This test0 should run without producing a java.lang.ClassFormatError\n"
-								+ " */\n"
-								+ "public class A {\n"
-								+ "  public Vector getComponents () {\n"
-								+ "    try{\n"
-								+ "      throw new IOException();\n"
-								+ "    }\n"
-								+ "    catch (IOException ioe) {\n"
-								+ "    }\n"
-								+ "    return null;\n"
-								+ "  }\n"
-								+ "  public static void main(String[] args) {\n"
-								+ "    new A().getComponents();\n" + "  }\n"
-								+ "}\n", });
-	}
-
-	public void test006() {
-		this
-				.runConformTest(new String[] {
-						"p/T.java",
-						"package p;\n"
-								+ "import java.lang.reflect.*;\n"
-								+ "public class T extends InvocationTargetException {\n"
-								+ "  public static void main(String[] args) {\n"
-								+ "    T ct = new T();\n"
-								+ "    ct.getTargetException();\n"
-								+ "  }\n"
-								+ "  public Throwable getTargetException() {\n"
-								+ "    Runnable runnable = new Runnable() {\n"
-								+ "      public void run() {\n"
-								+ "        System.out.println(\"we got here\");\n"
-								+ "        T.super.getTargetException();\n"
-								+ "      }\n" + "    };\n"
-								+ "    runnable.run();\n"
-								+ "    return new Throwable();\n" + "  }\n"
-								+ "}\n", });
-	}
-
-	public void test007() {
-		this
-				.runConformTest(new String[] {
-						"TryFinally.java",
-						"class TryFinally {	\n"
-								+ "	public int readFile(String filename) throws Exception {	\n"
-								+ "		int interfaceID = -1;	\n"
-								+ "		int iNdx = 0;	\n"
-								+ "		try {	\n"
-								+ "			try {	\n"
-								+ "				return interfaceID;	\n"
-								+ "			} // end try	\n"
-								+ "			finally {	\n"
-								+ "				iNdx = 1;	\n"
-								+ "			} // end finally	\n"
-								+ "		} // end try	\n"
-								+ "		catch (Exception ex) {	\n"
-								+ "			throw new Exception(\"general exception \" + ex.getMessage() + \" on processing file \" + filename);	\n"
-								+ "		} // end catch	\n" + "		finally {	\n"
-								+ "		} // end finally	\n"
-								+ "	} // end readFile method	\n" + "}	\n" });
-	}
-
-	/*
-	 * 1FZR1TO: IVJCOM:WIN - Class does not compile in VAJava 3.02-Java2
-	 */
-	public void test008() {
-		this
-				.runConformTest(
-						new String[] {
-								"RedundantException.java",
-								"import java.io.*;\n"
-										+ "public class RedundantException {\n"
-										+ "	/**\n"
-										+ "	     * Runs the class as an application.\n"
-										+ "	     */\n"
-										+ "	public static void main(String[] args) {\n"
-										+ "		RedundantException re = new RedundantException();\n"
-										+ "		re.catchIt();\n"
-										+ "		System.out.println(\"SUCCESS\");\n"
-										+ "	}\n"
-										+ "	/**\n"
-										+ "	     * Defines a method that lists an exception twice.\n"
-										+ "	     * This can be buried in a much longer list.\n"
-										+ "	     */\n"
-										+ "	void throwIt() throws IOException, IOException {\n"
-										+ "		throw new IOException();\n"
-										+ "	}\n"
-										+ "	/**\n"
-										+ "	     * Catches the redundantly defined exception.\n"
-										+ "	     */\n"
-										+ "	void catchIt() {\n"
-										+ "		try {\n"
-										+ "			throwIt(); // compile error here\n"
-										+ "		} catch (IOException e) {\n"
-										+ "			System.out.println(\"Caught.\");\n"
-										+ "		}\n" + "	}\n" + "}" }, "Caught.\n"
-								+ "SUCCESS");
-	}
-
-	public void test009() {
-		this.runConformTest(new String[] {
-				"Test.java",
-				"public class Test {\n" + "public void save() {\n"
-						+ "	int a = 3;\n" + "	try {\n"
-						+ "		Object warnings = null;\n" + "      	try {\n"
-						+ "         	Object contexts = null;\n"
-						+ "         	try {\n"
-						+ "            	System.out.println(warnings);\n"
-						+ "			 	return;\n"
-						+ "      	 	} catch (NullPointerException npe) {\n"
-						+ "				System.out.println(contexts);\n"
-						+ "               return;\n" + "       	}\n"
-						+ "		} catch (Exception e) {\n" + " 			return;\n"
-						+ "   	}\n" + "	} finally {\n" + "     	int b = 4;\n"
-						+ "       System.out.println(\"#save -> \" + b + a);\n"
-						+ "    }\n" + "}\n"
-						+ "public static void main(String[] args) {\n"
-						+ "	new Test().save();\n" + "}\n" + "}" }, "null\n"
-				+ "#save -> 43");
-	}
-
-	public void test010() {
-		this.runConformTest(new String[] {
-				"Test.java",
-				"public class Test {\n" + "public void save() {\n"
-						+ "	int a = 3;\n" + "	try {\n"
-						+ "		Object warnings = null;\n" + "      	try {\n"
-						+ "         	Object contexts = null;\n"
-						+ "         	try {\n"
-						+ "            	System.out.println(warnings);\n"
-						+ "			 	return;\n"
-						+ "      	 	} catch (NullPointerException npe) {\n"
-						+ "				System.out.println(contexts);\n"
-						+ "               return;\n" + "       	}\n"
-						+ "		} catch (Exception e) {\n" + " 			return;\n"
-						+ "   	}\n" + "	} catch(Exception e){\n"
-						+ "		Object dummy1 = null;\n"
-						+ "		System.out.println(dummy1);\n"
-						+ "		Object dummy2 = null;\n"
-						+ "		System.out.println(dummy2);\n" + "		return;\n"
-						+ "	} finally {\n" + "     	int b = 4;\n"
-						+ "       System.out.println(\"#save -> \" + b + a);\n"
-						+ "    }\n" + "}\n"
-						+ "public static void main(String[] args) {\n"
-						+ "	new Test().save();\n" + "}\n" + "}" }, "null\n"
-				+ "#save -> 43");
-	}
-
-	public void test011() {
-		this.runConformTest(new String[] {
-				"Test.java",
-				"public class Test {\n" + "public void save() {\n"
-						+ "	int a = 3;\n" + "	try {\n"
-						+ "		Object warnings = null;\n" + "      	try {\n"
-						+ "         	Object contexts = null;\n"
-						+ "         	try {\n"
-						+ "            	System.out.println(warnings);\n"
-						+ "			 	return;\n"
-						+ "      	 	} catch (NullPointerException npe) {\n"
-						+ "				System.out.println(contexts);\n"
-						+ "               return;\n" + "       	}\n"
-						+ "		} catch (Exception e) {\n" + " 			return;\n"
-						+ "   	}\n" + "	} catch(Exception e){\n"
-						+ "		int dummy1 = 11;\n"
-						+ "		System.out.println(dummy1);\n"
-						+ "		int dummy2 = 12;\n"
-						+ "		System.out.println(dummy2);\n" + "		return;\n"
-						+ "	} finally {\n" + "     	int b = 4;\n"
-						+ "       System.out.println(\"#save -> \" + b + a);\n"
-						+ "    }\n" + "}\n"
-						+ "public static void main(String[] args) {\n"
-						+ "	new Test().save();\n" + "}\n" + "}" }, "null\n"
-				+ "#save -> 43");
-	}
-
-	/*
-	 * 4943 Verification error
-	 */
-	public void test012() {
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"import java.io.*;\n"
-										+ "public class X {\n"
-										+ "	public static void main(String[] args) {\n"
-										+ "		try {\n"
-										+ "			new X().delete(args);\n"
-										+ "			System.out.println(\"success\");\n"
-										+ "		} catch (Exception e) {\n"
-										+ "		}\n"
-										+ "	}\n"
-										+ "	void bar(int i) {\n"
-										+ "	}\n"
-										+ "	public Object delete(String[] resources) throws IOException {\n"
-										+ "		try {\n"
-										+ "			int totalWork = 3;\n"
-										+ "			Object result = \"aaa\";\n"
-										+ "			try {\n" + "				return result;\n"
-										+ "			} catch (Exception e) {\n"
-										+ "				throw new IOException();\n"
-										+ "			} finally {\n"
-										+ "				bar(totalWork);\n" + "			}\n"
-										+ "		} finally {\n" + "			bar(0);\n"
-										+ "		}\n" + "	}\n" + "}\n" }, "success");
-	}
-
-	/*
-	 * 4943 Verification error
-	 */
-	public void test013() {
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"import java.io.*;\n"
-										+ "public class X {\n"
-										+ "	public static void main(String[] args) {\n"
-										+ "		try {\n"
-										+ "			new X().delete(args);\n"
-										+ "			System.out.println(\"success\");\n"
-										+ "		} catch (Exception e) {\n"
-										+ "		}\n"
-										+ "	}\n"
-										+ "	void bar(int i) {\n"
-										+ "	}\n"
-										+ "	public Object delete(String[] resources) throws IOException {\n"
-										+ "		try {\n"
-										+ "			int totalWork = 3;\n"
-										+ "			Object result = \"aaa\";\n"
-										+ "			try {\n" + "				return result;\n"
-										+ "			} catch (Exception e) {\n"
-										+ "				throw new IOException();\n"
-										+ "			} finally {\n"
-										+ "				bar(totalWork);\n" + "			}\n"
-										+ "		} finally {\n"
-										+ "			int totalWork = 4;\n"
-										+ "			bar(totalWork);\n" + "		}\n"
-										+ "	}\n" + "}\n" }, "success");
-	}
-
-	public void test014() {
-		this
-				.runConformTest(
-						new String[] {
-								"Test.java",
-								"public class Test {\n"
-										+ "public void save() {\n"
-										+ "	int a = 3;\n"
-										+ "	try {\n"
-										+ "		Object warnings = null;\n"
-										+ "      	try {\n"
-										+ "         	int contexts = 17;\n"
-										+ "         	try {\n"
-										+ "				Object dummy = null;\n"
-										+ "            	System.out.println(warnings);\n"
-										+ "            	System.out.println(dummy);\n"
-										+ "			 	return;\n"
-										+ "      	 	} catch (NullPointerException npe) {\n"
-										+ "				System.out.println(contexts);\n"
-										+ "               return;\n"
-										+ "       	}\n"
-										+ "		} catch (Exception e) {\n"
-										+ " 			return;\n"
-										+ "   	} finally { \n"
-										+ "			int c = 34; \n"
-										+ "			System.out.println(\"#inner-finally ->\" + a + c);\n"
-										+ "       }\n"
-										+ "	} finally {\n"
-										+ "     	int b = 4;\n"
-										+ "       System.out.println(\"#save -> \" + b + a);\n"
-										+ "    }\n"
-										+ "}\n"
-										+ "public static void main(String[] args) {\n"
-										+ "	new Test().save();\n" + "}\n" + "}" },
-						"null\n" + "null\n" + "#inner-finally ->334\n"
-								+ "#save -> 43");
-	}
-
-	public void test015() {
-		this.runConformTest(new String[] {
-				"p1/X.java",
-				"package p1;	\n" + "import java.io.IOException;	\n"
-						+ "public class X {	\n"
-						+ "	public static void main(String args[]) {	\n"
-						+ "		try { 	\n" + "			new Object(){	\n" + "				{	\n"
-						+ "					if (true) throw new IOException();	\n"
-						+ "					if (true) throw new Exception();	\n"
-						+ "				}	\n" + "			};	\n"
-						+ "			System.out.println(\"FAILED\");	\n"
-						+ "		} catch(Exception e){	\n"
-						+ "			System.out.println(\"SUCCESS\");	\n" + "		}	\n"
-						+ "	}	\n" + "}	\n", }, "SUCCESS");
-	}
-
-	public void test016() {
-		this.runConformTest(new String[] {
-				"p1/X.java",
-				"package p1;	\n" + "import java.io.IOException;	\n"
-						+ "public class X {	\n"
-						+ "	public static void main(String args[]) {	\n"
-						+ "		class SomeClass {	\n"
-						+ "			SomeClass () throws IOException {	\n" + "			}	\n"
-						+ "		}	\n" + "		try { 	\n" + "			new Object(){	\n"
-						+ "				{	\n"
-						+ "					if (true) throw new IOException();	\n"
-						+ "					if (true) throw new Exception();	\n"
-						+ "				}	\n" + "			};	\n"
-						+ "			System.out.println(\"FAILED\");	\n"
-						+ "		} catch(Exception e){	\n"
-						+ "			System.out.println(\"SUCCESS\");	\n" + "		}	\n"
-						+ "	}	\n" + "}	\n", }, "SUCCESS");
-	}
-
-	public void test017() {
-		this.runConformTest(new String[] {
-				"p1/X.java",
-				"package p1;	\n" + "public class X {	\n"
-						+ "	public static void main(String args[]) {	\n"
-						+ "		try { 	\n" + "			new Object(){	\n" + "				{	\n"
-						+ "					foo();	\n" + "				}	\n" + "			};	\n"
-						+ "			System.out.println(\"FAILED\");	\n"
-						+ "		} catch(Exception e){	\n"
-						+ "			System.out.println(\"SUCCESS\");	\n" + "		}	\n"
-						+ "	}	\n" + "	static class AEx extends Exception {} \n"
-						+ "	static class BEx extends Exception {} \n"
-						+ "	static void foo() throws AEx, BEx {	\n"
-						+ "		throw new AEx();	\n" + "	}	\n" + "}	\n", },
-				"SUCCESS");
-	}
-
-	// 8773 verification error
-	public void test018() {
-		this.runConformTest(new String[] {
-				"VerifyEr.java",
-				"public class VerifyEr {	\n"
-						+ "  protected boolean err(boolean b) {	\n"
-						+ "     try {	\n"
-						+ "          System.out.print(\"SUCC\");	\n"
-						+ "     } catch (Throwable t) {	\n"
-						+ "          return b;	\n" + "     } finally {	\n"
-						+ "          try {	\n" + "               if (b) {	\n"
-						+ "                    return b;	\n"
-						+ "               }	\n" + "          } finally {	\n"
-						+ "          		System.out.println(\"ESS\");	\n"
-						+ "          }	\n" + "     }	\n"
-						+ "     return false;	\n" + "  }	\n"
-						+ "  public static void main(String[] args) {	\n"
-						+ "     new VerifyEr().err(false);	\n" + "  }	\n"
-						+ "}	\n", }, "SUCCESS");
-	}
-
-	/*
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=16279
-	 */
-	public void test019() {
-		this.runConformTest(new String[] {
-				"X.java",
-				"public class X {	\n" + "	String logger;	\n"
-						+ "  public static void main(String[] args) {	\n"
-						+ "    new X().foo();	\n" + "	}	\n"
-						+ "	public void foo() {	\n" + "		try {	\n"
-						+ "			System.out.println(\"SUCCESS\");	\n"
-						+ "		} catch (Exception ce) {	\n"
-						+ "			String s = null;	\n" + "			try {	\n"
-						+ "				return;	\n" + "			} catch (Exception ex) {	\n"
-						+ "			}	\n" + "			s.hashCode();	\n"
-						+ "		} finally {	\n"
-						+ "			if (this.logger == null) {	\n"
-						+ "				String loggerManager = null;	\n"
-						+ "				System.out.println(loggerManager);	\n"
-						+ "			}	\n" + "		}	\n" + "	}	\n" + "}	\n" },
-				"SUCCESS\n" + "null");
-	}
-
-	/*
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=16279 shifting of finaly
-	 * scopes against try/catch ones makes the custom ret address shifting
-	 * unnecessary.
-	 */
-	public void test020() {
-		this.runConformTest(new String[] {
-				"X.java",
-				"public class X {	\n" + "	String logger;	\n"
-						+ "  public static void main(String[] args) {	\n"
-						+ "    new X().foo();	\n" + "	}	\n"
-						+ "	public void foo() {	\n" + "		try {	\n"
-						+ "			System.out.println(\"try1\");	\n" + "			try {	\n"
-						+ "				System.out.println(\"try2\");	\n"
-						+ "			} finally {	\n"
-						+ "				System.out.println(\"finally2\");	\n"
-						+ "			}	\n" + "		} catch (Exception ce) {	\n"
-						+ "			String s = null;	\n" + "			try {	\n"
-						+ "				return;	\n" + "			} catch (Exception ex) {	\n"
-						+ "			}	\n" + "			s.hashCode();	\n"
-						+ "		} finally {	\n"
-						+ "			System.out.println(\"finally1\");	\n"
-						+ "			try {	\n"
-						+ "				System.out.println(\"try3\");	\n"
-						+ "				if (this.logger == null) {	\n"
-						+ "					String loggerManager = null;	\n" + "				}	\n"
-						+ "			} finally {	\n"
-						+ "				System.out.println(\"finally3\");	\n"
-						+ "			}	\n" + "		}	\n" + "		int i1 = 0;	\n"
-						+ "		int i2 = 0;	\n" + "		int i3 = 0;	\n"
-						+ "		int i4 = 0;	\n" + "		int i5 = 0;	\n"
-						+ "		int i6 = 0;	\n" + "		int i7 = 0;	\n"
-						+ "		int i8 = 0;	\n" + "		int i9 = 0;	\n" + "	}	\n"
-						+ "}	\n" }, "try1\n" + "try2\n" + "finally2\n"
-				+ "finally1\n" + "try3\n" + "finally3");
-	}
-
-	/*
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21116 protected type
-	 * visibility check
-	 */
-	public void test021() {
-		this.runConformTest(new String[] {
-				"pa/A.java",
-				"package pa;	\n" + "public abstract class A {	\n"
-						+ "  public static void main(String[] args) {	\n"
-						+ "    System.out.println(\"SUCCESS\");	\n" + "	}	\n"
-						+ "	protected AIC memberA;	\n"
-						+ "	protected class AIC {	\n"
-						+ "		public void methodAIC(String parameter) {	\n"
-						+ "		  // ....do something	\n" + "		}	\n" + "	}	\n"
-						+ "}	\n",
-				"pb/B.java",
-				"package pb;	\n" + "public class B extends pa.A {	\n"
-						+ "	private class BIC {	\n"
-						+ "		public void methodBIC(String param) {	\n"
-						+ "			memberA.methodAIC(param);	\n" + "		}	\n"
-						+ "	}	\n" + "}	\n" }, "SUCCESS");
-	}
-
-	/*
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=19916 nested try/synchronized
-	 * statements (local var index alloc)
-	 */
-	public void test022() {
-		this.runConformTest(new String[] {
-				"pa/A.java",
-				"package pa;	\n" + "public class A {	\n"
-						+ "  public static void main(String[] args) {	\n"
-						+ "	 new A().f();	\n"
-						+ "    System.out.println(\"SUCCESS\");	\n" + "	}	\n"
-						+ "	boolean b = false;	\n"
-						+ "	private Integer f() {	\n" + "		while (true) {	\n"
-						+ "			try {	\n" + "				int x = 3;	\n"
-						+ "				synchronized (this) {	\n"
-						+ "					return null;	\n" + "				}	\n"
-						+ "			} finally {	\n" + "				if (b)	\n"
-						+ "					synchronized (this) {	\n"
-						+ "					int y = 3;	\n" + "				}	\n" + "			}	\n"
-						+ "		}	\n" + "	}	\n" + "}	\n" }, "SUCCESS");
-	}
-
-	public void test023() {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_ReportHiddenCatchBlock,
-				CompilerOptions.ERROR);
-		this
-				.runNegativeTest(
-						new String[] {
-								"X.java",
-								"public class X {\n"
-										+ "	public static void main(String[] args) {\n"
-										+ "		try {\n" + "			throw new BX();\n"
-										+ "		} catch(BX e) {\n"
-										+ "		} catch(AX e) {\n" + "		}\n"
-										+ "	}\n" + "} \n"
-										+ "class AX extends Exception {}\n"
-										+ "class BX extends AX {}\n" },
-						"----------\n"
-								+ "1. ERROR in X.java (at line 6)\n"
-								+ "	} catch(AX e) {\n"
-								+ "	        ^^\n"
-								+ "Unreachable catch block for AX. Only more specific exceptions are thrown and handled by previous catch block(s).\n"
-								+ "----------\n"
-								+ "2. WARNING in X.java (at line 10)\n"
-								+ "	class AX extends Exception {}\n"
-								+ "	      ^^\n"
-								+ "The serializable class AX does not declare a static final serialVersionUID field of type long\n"
-								+ "----------\n"
-								+ "3. WARNING in X.java (at line 11)\n"
-								+ "	class BX extends AX {}\n"
-								+ "	      ^^\n"
-								+ "The serializable class BX does not declare a static final serialVersionUID field of type long\n"
-								+ "----------\n", null, true, customOptions);
-	}
-
-	/*
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21203 NPE in
-	 * ExceptionFlowContext
-	 */
-	public void test024() {
-
-		this
-				.runNegativeTest(
-						new String[] {
-								"p/X.java",
-								"package p;	\n"
-										+ "public class X {	\n"
-										+ "	public void myMethod() {	\n"
-										+ "	    System.out.println(\"starting\");	\n"
-										+ "	    try {	\n"
-										+ "	        if (true) throw new LookupException();	\n"
-										+ "	    } catch(DataException de) {	\n"
-										+ "	       	System.out.println(\"DataException occurred\");	\n"
-										+ "	    } catch(LookupException le) {	\n"
-										+ "	       	System.out.println(\"LookupException occurred\");	\n"
-										+ "	    } catch(Throwable t) {	\n"
-										+ "	       	System.out.println(\"Throwable occurred\");	\n"
-										+ "	    }	\n"
-										+ "	    System.out.println(\"SUCCESS\");	\n"
-										+ "	}	\n"
-										+ "}	\n"
-										+ "class DataException extends Throwable {	\n"
-										+ "} 	\n"
-										+ "class LookupException extends DataException {	\n"
-										+ "}	\n" },
-						"----------\n"
-								+ "1. ERROR in p\\X.java (at line 9)\n"
-								+ "	} catch(LookupException le) {	\n"
-								+ "	        ^^^^^^^^^^^^^^^\n"
-								+ "Unreachable catch block for LookupException. It is already handled by the catch block for DataException\n"
-								+ "----------\n"
-								+ "2. WARNING in p\\X.java (at line 17)\n"
-								+ "	class DataException extends Throwable {	\n"
-								+ "	      ^^^^^^^^^^^^^\n"
-								+ "The serializable class DataException does not declare a static final serialVersionUID field of type long\n"
-								+ "----------\n"
-								+ "3. WARNING in p\\X.java (at line 19)\n"
-								+ "	class LookupException extends DataException {	\n"
-								+ "	      ^^^^^^^^^^^^^^^\n"
-								+ "The serializable class LookupException does not declare a static final serialVersionUID field of type long\n"
-								+ "----------\n");
-	}
-
-	// 60081
-	public void test025() {
-
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"import java.io.*;\n"
-										+ "public class X\n"
-										+ "{\n"
-										+ "    {\n"
-										+ "        String licenseFileName = \"C:/Program Files/Jatt/bin/license.key\";\n"
-										+ "        File licenseFile = new File(licenseFileName);\n"
-										+ "        try {\n"
-										+ "            BufferedReader licenseReader = new BufferedReader(\n"
-										+ "                new FileReader(licenseFile));\n"
-										+ "            StringBuffer buf = new StringBuffer();\n"
-										+ "            String line = null;\n"
-										+ "            while ((line = licenseReader.readLine()) != null) {\n"
-										+ "                char[] chars = line.toCharArray();\n"
-										+ "                for (int i = 0; i < line.length(); i++) {\n"
-										+ "                    if (!Character.isSpace(line.charAt(i))) {\n"
-										+ "                        buf.append(line.charAt(i));\n"
-										+ "                    }\n"
-										+ "                }\n"
-										+ "            }\n"
-										+ "            \n"
-										+ "        } catch (FileNotFoundException e) {\n"
-										+ "            throw new Error(\"License file not found\", e);\n"
-										+ "        } catch (IOException e) {\n"
-										+ "            throw new Error(\"License file cannot be read\", e);\n"
-										+ "        }\n"
-										+ "    }\n"
-										+ "  public X()\n"
-										+ "  {\n"
-										+ "  }\n"
-										+ "  \n"
-										+ "  public X(X r) \n"
-										+ "  {\n"
-										+ "  }    \n"
-										+ "  public static void main(String[] args) {\n"
-										+ "        System.out.println(\"SUCCESS\");\n"
-										+ "    }\n" + "}\n" }, "SUCCESS");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89710
-	// public void test026() {
-	//
-	// Map customOptions = this.getCompilerOptions();
-	// customOptions.put(CompilerOptions.OPTION_PreserveUnusedLocal,
-	// CompilerOptions.PRESERVE);
-	//
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "import java.util.*;\n" +
-	// "\n" +
-	// "public class X {\n" +
-	// "	\n" +
-	// "	static private ResourceBundle bundle = null;\n" +
-	// "	static {\n" +
-	// "		int i = 0;\n" +
-	// "		try {\n" +
-	// "			bundle = foo();\n" +
-	// "		} catch(Throwable e) {\n" +
-	// "			e.printStackTrace();\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "\n" +
-	// "	static ResourceBundle foo() {\n" +
-	// "		return null;\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "",
-	// null,
-	// true,
-	// null,
-	// customOptions,
-	// null); // custom requestor
-	//	
-	// String expectedOutput =
-	// "      Local variable table:\n" +
-	// "        [pc: 6, pc: 21] local: i index: 0 type: int\n" +
-	// "        [pc: 16, pc: 20] local: e index: 1 type: java.lang.Throwable\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89710 - variation
-	// public void test027() {
-	//
-	// Map customOptions = this.getCompilerOptions();
-	// customOptions.put(CompilerOptions.OPTION_PreserveUnusedLocal,
-	// CompilerOptions.PRESERVE);
-	//
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "import java.util.*;\n" +
-	// "\n" +
-	// "public class X {\n" +
-	// "	\n" +
-	// "	void bar(boolean b) {\n" +
-	// "		if (b) {\n" +
-	// "			try {\n" +
-	// "				int i = 0;\n" +
-	// "			} catch(Exception e) {\n" +
-	// "				e.printStackTrace();\n" +
-	// "			}\n" +
-	// "		} else {\n" +
-	// "			int j = 0;\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "",
-	// null,
-	// true,
-	// null,
-	// customOptions,
-	// null); // custom requestor
-	//	
-	// String expectedOutput =
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 20] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 20] local: b index: 1 type: boolean\n" +
-	// "        [pc: 6, pc: 9] local: i index: 2 type: int\n" +
-	// "        [pc: 10, pc: 14] local: e index: 2 type: java.lang.Exception\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=98892
-	public void test028() {
-
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"public class X {\n"
-										+ "\n"
-										+ "    public static void main(String[] args) {\n"
-										+ "    	try {\n"
-										+ "	        new X().start();\n"
-										+ "    	} catch(Exception e) {\n"
-										+ "            System.out.println(\"SUCCESS\");\n"
-										+ "    	}\n"
-										+ "    }\n"
-										+ "    public Object start() {\n"
-										+ "        try {\n"
-										+ "            return null;\n"
-										+ "        } finally {\n"
-										+ "            System.out.print(\"ONCE:\");\n"
-										+ "            foo();\n"
-										+ "        }\n"
-										+ "    }\n"
-										+ "\n"
-										+ "    private void foo() {\n"
-										+ "        throw new IllegalStateException(\"Gah!\");\n"
-										+ "    }        \n" + "}\n", },
-						"ONCE:SUCCESS");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=98892 - variation
-	public void test029() {
-
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"public class X {\n"
-										+ "\n"
-										+ "    public static void main(String[] args) {\n"
-										+ "    	try {\n"
-										+ "	        new X().start();\n"
-										+ "    	} catch(Exception e) {\n"
-										+ "            System.out.println(\"SUCCESS\");\n"
-										+ "    	}\n"
-										+ "    }\n"
-										+ "    public Object start() {\n"
-										+ "        try {\n"
-										+ "            return null;\n"
-										+ "        } finally {\n"
-										+ "            System.out.print(\"ONCE:\");\n"
-										+ "            foo();\n"
-										+ "            return this;\n"
-										+ "        }\n"
-										+ "    }\n"
-										+ "\n"
-										+ "    private void foo() {\n"
-										+ "        throw new IllegalStateException(\"Gah!\");\n"
-										+ "    }        \n" + "}\n", },
-						"ONCE:SUCCESS");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=98892 - variation
-	public void test030() {
-
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"public class X {\n"
-										+ "\n"
-										+ "    public static void main(String[] args) {\n"
-										+ "    	try {\n"
-										+ "	        new X().start();\n"
-										+ "    	} catch(Exception e) {\n"
-										+ "            System.out.println(\"SUCCESS\");\n"
-										+ "    	}\n"
-										+ "    }\n"
-										+ "    public Object start() {\n"
-										+ "        try {\n"
-										+ "            Object o = null;\n"
-										+ "            o.toString();\n"
-										+ "            return null;\n"
-										+ "        } catch(Exception e) {\n"
-										+ "            System.out.print(\"EXCEPTION:\");\n"
-										+ "			return e;        	\n"
-										+ "        } finally {\n"
-										+ "            System.out.print(\"ONCE:\");\n"
-										+ "            foo();\n"
-										+ "        }\n"
-										+ "    }\n"
-										+ "\n"
-										+ "    private void foo() {\n"
-										+ "        throw new IllegalStateException(\"Gah!\");\n"
-										+ "    }        \n" + "}\n", },
-						"EXCEPTION:ONCE:SUCCESS");
-	}
-
-	/*
-	 * Try block is never reached
-	 */
-	public void test031() {
-		Map customOptions = getCompilerOptions();
-		customOptions.put(CompilerOptions.OPTION_ReportUnusedPrivateMember,
-				CompilerOptions.IGNORE);
-
-		this
-				.runNegativeTest(
-						new String[] {
-								"X.java",
-								"import java.io.IOException;\n"
-										+ "\n"
-										+ "public class X {\n"
-										+ "	static void foo(Object o) {}\n"
-										+ "	\n"
-										+ "    public static void main(String[] args) {\n"
-										+ "    	try {\n"
-										+ "    		foo(new Object() {\n"
-										+ "    			public void bar() throws IOException {\n"
-										+ "    				bar1();\n"
-										+ "    			}\n"
-										+ "    		});\n"
-										+ "    	} catch(IOException e) {\n"
-										+ "    		e.printStackTrace();\n"
-										+ "    	}\n"
-										+ "    }\n"
-										+ "    \n"
-										+ "    static void bar1() throws IOException {}\n"
-										+ "}" },
-						"----------\n"
-								+ "1. ERROR in X.java (at line 13)\n"
-								+ "	} catch(IOException e) {\n"
-								+ "	        ^^^^^^^^^^^\n"
-								+ "Unreachable catch block for IOException. This exception is never thrown from the try statement body\n"
-								+ "----------\n", null, true, customOptions);
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=114855
-	 */
-	public void test032() {
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"public class X\n"
-										+ "{\n"
-										+ "  static int except_count;\n"
-										+ "\n"
-										+ "  static boolean test_result = true;\n"
-										+ "  \n"
-										+ "  static Throwable all_except[] =\n"
-										+ "  {\n"
-										+ "    new AbstractMethodError(),             //  0\n"
-										+ "    new ArithmeticException(),             //  1\n"
-										+ "    new ArrayIndexOutOfBoundsException(),  //  2\n"
-										+ "    new ArrayStoreException(),             //  3\n"
-										+ "    new ClassCastException(),              //  4\n"
-										+ "    new ClassCircularityError(),           //  5\n"
-										+ "    new ClassFormatError(),                //  6\n"
-										+ "    new ClassNotFoundException(),          //  7\n"
-										+ "    new CloneNotSupportedException(),      //  8\n"
-										+ "    new Error(),                           //  9\n"
-										+ "    new Exception(),                       // 10\n"
-										+ "    new IllegalAccessError(),              // 11\n"
-										+ "    new IllegalAccessException(),          // 12\n"
-										+ "    new IllegalArgumentException(),        // 13\n"
-										+ "    new IllegalMonitorStateException(),    // 14\n"
-										+ "    new IllegalThreadStateException(),     // 15\n"
-										+ "    new IncompatibleClassChangeError(),    // 16\n"
-										+ "    new IndexOutOfBoundsException(),       // 17\n"
-										+ "    new InstantiationError(),              // 18\n"
-										+ "    new InstantiationException(),          // 19\n"
-										+ "    new InternalError(),                   // 20\n"
-										+ "    new InterruptedException(),            // 21\n"
-										+ "    new LinkageError(),                    // 22\n"
-										+ "    new NegativeArraySizeException(),      // 23\n"
-										+ "    new NoClassDefFoundError(),            // 24\n"
-										+ "    new NoSuchFieldError(),                // 25\n"
-										+ "    new NoSuchMethodError(),               // 26\n"
-										+ "    new NoSuchMethodException(),           // 27\n"
-										+ "    new NullPointerException(),            // 28\n"
-										+ "    new NumberFormatException(),           // 29\n"
-										+ "    new OutOfMemoryError(),                // 30\n"
-										+ "    new StackOverflowError(),              // 31\n"
-										+ "    new RuntimeException(),                // 32\n"
-										+ "    new SecurityException(),               // 33\n"
-										+ "    new StringIndexOutOfBoundsException(), // 34\n"
-										+ "    new ThreadDeath(),                     // 35\n"
-										+ "    new UnknownError(),                    // 36\n"
-										+ "    new UnsatisfiedLinkError(),            // 37\n"
-										+ "    new VerifyError(),                     // 38\n"
-										+ "  };\n"
-										+ "\n"
-										+ "  private static void check_except(int i)\n"
-										+ "    throws Throwable\n"
-										+ "  {\n"
-										+ "    if (except_count != i)\n"
-										+ "    {\n"
-										+ "      System.out.println(\"Error \"+except_count+\" != \"+i+\";\");\n"
-										+ "      test_result=false;\n"
-										+ "    }\n"
-										+ "    throw all_except[++except_count];\n"
-										+ "  }\n"
-										+ "\n"
-										+ "  public static void main(String[] args) throws Throwable\n"
-										+ "  {\n"
-										+ "    try {\n"
-										+ "      except_count = 0;\n"
-										+ "      throw all_except[except_count];\n"
-										+ "    } catch (AbstractMethodError e0) {\n"
-										+ "      try {\n"
-										+ "        check_except(0);\n"
-										+ "      } catch (ArithmeticException e1) {\n"
-										+ "        try {\n"
-										+ "          check_except(1);\n"
-										+ "        } catch (ArrayIndexOutOfBoundsException e2) {\n"
-										+ "          try {\n"
-										+ "            check_except(2);\n"
-										+ "          } catch (ArrayStoreException e3) {\n"
-										+ "            try {\n"
-										+ "              check_except(3);\n"
-										+ "            } catch (ClassCastException e4) {\n"
-										+ "              try {\n"
-										+ "                check_except(4);\n"
-										+ "              } catch (ClassCircularityError e5) {\n"
-										+ "                try {\n"
-										+ "                  check_except(5);\n"
-										+ "                } catch (ClassFormatError e6) {\n"
-										+ "                  try {\n"
-										+ "                    check_except(6);\n"
-										+ "                  } catch (ClassNotFoundException e7) {\n"
-										+ "                    try {\n"
-										+ "                      check_except(7);\n"
-										+ "                    } catch (CloneNotSupportedException e8) {\n"
-										+ "                      try {\n"
-										+ "                        check_except(8);\n"
-										+ "                      } catch (Error e9) {\n"
-										+ "                        try {\n"
-										+ "                          check_except(9);\n"
-										+ "                        } catch (Exception e10) {\n"
-										+ "                          try {\n"
-										+ "                            check_except(10);\n"
-										+ "                          } catch (IllegalAccessError e11) {\n"
-										+ "                            try {\n"
-										+ "                              check_except(11);\n"
-										+ "                            } catch (IllegalAccessException e12) {\n"
-										+ "                              try {\n"
-										+ "                                check_except(12);\n"
-										+ "                              } catch (IllegalArgumentException e13) {\n"
-										+ "                                try {\n"
-										+ "                                  check_except(13);\n"
-										+ "                                } catch (IllegalMonitorStateException e14) {\n"
-										+ "                                  try {\n"
-										+ "                                    check_except(14);\n"
-										+ "                                  } catch (IllegalThreadStateException e15) {\n"
-										+ "                                    try {\n"
-										+ "                                      check_except(15);\n"
-										+ "                                    } catch (IncompatibleClassChangeError e16) {\n"
-										+ "                                      try {\n"
-										+ "                                        check_except(16);\n"
-										+ "                                      } catch (IndexOutOfBoundsException e17) {\n"
-										+ "                                        try {\n"
-										+ "                                          check_except(17);\n"
-										+ "                                        } catch (InstantiationError e18) {\n"
-										+ "                                          try {\n"
-										+ "                                            check_except(18);\n"
-										+ "                                          } catch (InstantiationException e19) {\n"
-										+ "                                            try {\n"
-										+ "                                              check_except(19);\n"
-										+ "                                            } catch (InternalError e20) {\n"
-										+ "                                              try {\n"
-										+ "                                                check_except(20);\n"
-										+ "                                              } catch (InterruptedException \n"
-										+ "e21) {\n"
-										+ "                                                try {\n"
-										+ "                                                  check_except(21);\n"
-										+ "                                                } catch (LinkageError e22) {\n"
-										+ "                                                  try {\n"
-										+ "                                                    check_except(22);\n"
-										+ "                                                  } catch \n"
-										+ "(NegativeArraySizeException e23) {\n"
-										+ "                                                    try {\n"
-										+ "                                                      check_except(23);\n"
-										+ "                                                    } catch \n"
-										+ "(NoClassDefFoundError e24) {\n"
-										+ "                                                      try {\n"
-										+ "                                                        check_except(24);\n"
-										+ "                                                      } catch (NoSuchFieldError \n"
-										+ "e25) {\n"
-										+ "                                                        try {\n"
-										+ "                                                          check_except(25);\n"
-										+ "                                                        } catch \n"
-										+ "(NoSuchMethodError e26) {\n"
-										+ "                                                          try {\n"
-										+ "                                                            check_except(26);\n"
-										+ "                                                          } catch \n"
-										+ "(NoSuchMethodException e27) {\n"
-										+ "                                                            try {\n"
-										+ "                                                              check_except(27);\n"
-										+ "                                                            } catch \n"
-										+ "(NullPointerException e28) {\n"
-										+ "                                                              try {\n"
-										+ "                                                                check_except\n"
-										+ "(28);\n"
-										+ "                                                              } catch \n"
-										+ "(NumberFormatException e29) {\n"
-										+ "                                                                try {\n"
-										+ "                                                                  check_except\n"
-										+ "(29);\n"
-										+ "                                                                } catch \n"
-										+ "(OutOfMemoryError e30) {\n"
-										+ "                                                                  try {\n"
-										+ "                                                                    check_except\n"
-										+ "(30);\n"
-										+ "                                                                  } catch \n"
-										+ "(StackOverflowError e31) {\n"
-										+ "                                                                    try {\n"
-										+ "                                                                      \n"
-										+ "check_except(31);\n"
-										+ "                                                                    } catch \n"
-										+ "(RuntimeException e32) {\n"
-										+ "                                                                      try {\n"
-										+ "                                                                        \n"
-										+ "check_except(32);\n"
-										+ "                                                                      } catch \n"
-										+ "(SecurityException e33) {\n"
-										+ "                                                                        try {\n"
-										+ "                                                                          \n"
-										+ "check_except(33);\n"
-										+ "                                                                        } catch \n"
-										+ "(StringIndexOutOfBoundsException e34) {\n"
-										+ "                                                                          try {\n"
-										+ "                                                                            \n"
-										+ "check_except(34);\n"
-										+ "                                                                          } \n"
-										+ "catch (ThreadDeath e35) {\n"
-										+ "                                                                            try \n"
-										+ "{\n"
-										+ "                                                                              \n"
-										+ "check_except(35);\n"
-										+ "                                                                            } \n"
-										+ "catch (UnknownError e36) {\n"
-										+ "                                                                              \n"
-										+ "try {\n"
-										+ "                                                                                \n"
-										+ "check_except(36);\n"
-										+ "                                                                              } \n"
-										+ "catch (UnsatisfiedLinkError e37) {\n"
-										+ "                                                                                \n"
-										+ "try {\n"
-										+ "                                                                                \n"
-										+ "  check_except(37);\n"
-										+ "                                                                                \n"
-										+ "} catch (VerifyError e38) {\n"
-										+ "                                                                                \n"
-										+ "  ++except_count;\n"
-										+ "                                                                                \n"
-										+ "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}\n"
-										+ "    System.out.print(test_result & (except_count == all_except.length));\n"
-										+ "  }\n" + "}", }, "true");
-	}
-
-	// public void test033() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	interface IActionSetContributionItem {\n" +
-	// "		String getActionSetId();\n" +
-	// "	}\n" +
-	// "	public interface IAction {\n" +
-	// "	}\n" +
-	// "	interface IContributionItem {\n" +
-	// "		String getId();\n" +
-	// "		boolean isSeparator();\n" +
-	// "		boolean isGroupMarker();\n" +
-	// "	}\n" +
-	// "    public static void findInsertionPoint(String startId,\n" +
-	// "            String sortId, IContributionItem[] items) {\n" +
-	// "        // Find the reference item.\n" +
-	// "        try {\n" +
-	// "	        int insertIndex = 0;\n" +
-	// "	        while (insertIndex < items.length) {\n" +
-	// "	            if (startId.equals(items[insertIndex].getId()))\n" +
-	// "	                break;\n" +
-	// "	            ++insertIndex;\n" +
-	// "	        }\n" +
-	// "	        if (insertIndex >= items.length)\n" +
-	// "	            return;\n" +
-	// "	\n" +
-	// "	        int compareMetric = 0;\n" +
-	// "	\n" +
-	// "	        // Find the insertion point for the new item.\n" +
-	// "	        // We do this by iterating through all of the previous\n" +
-	// "	        // action set contributions define within the current group.\n"
-	// +
-	// "	        for (int nX = insertIndex + 1; nX < items.length; nX++) {\n" +
-	// "	            IContributionItem item = items[nX];\n" +
-	// "	            if (item.isSeparator() || item.isGroupMarker()) {\n" +
-	// "	                // Fix for bug report 18357\n" +
-	// "	                break;\n" +
-	// "	            }\n" +
-	// "	            if (item instanceof IActionSetContributionItem) {\n" +
-	// "	                if (sortId != null) {\n" +
-	// "	                    String testId = ((IActionSetContributionItem) item)\n"
-	// +
-	// "	                            .getActionSetId();\n" +
-	// "	                    if (sortId.compareTo(testId) < compareMetric)\n" +
-	// "	                        break;\n" +
-	// "	                }\n" +
-	// "	                insertIndex = nX;\n" +
-	// "	            } else {\n" +
-	// "	                break;\n" +
-	// "	            }\n" +
-	// "	        }\n" +
-	// "	    } catch(Exception e) {}\n" +
-	// "    }\n" +
-	// "    \n" +
-	// "    public static void main(String[] args) {\n" +
-	// "		findInsertionPoint(\"\", \"\", null);\n" +
-	// "	}\n" +
-	// "}",
-	// },
-	// "");
-	// String expectedOutput =
-	// "  // Method descriptor #15 (Ljava/lang/String;Ljava/lang/String;[LX$IContributionItem;)V\n"
-	// +
-	// "  // Stack: 3, Locals: 8\n" +
-	// "  public static void findInsertionPoint(java.lang.String startId, java.lang.String sortId, X.IContributionItem[] items);\n"
-	// +
-	// "      0  iconst_0\n" +
-	// "      1  istore_3 [insertIndex]\n" +
-	// "      2  goto 26\n" +
-	// "      5  aload_0 [startId]\n" +
-	// "      6  aload_2 [items]\n" +
-	// "      7  iload_3 [insertIndex]\n" +
-	// "      8  aaload\n" +
-	// "      9  invokeinterface X$IContributionItem.getId() : java.lang.String [16] [nargs: 1]\n"
-	// +
-	// "     14  invokevirtual java.lang.String.equals(java.lang.Object) : boolean [22]\n"
-	// +
-	// "     17  ifeq 23\n" +
-	// "     20  goto 32\n" +
-	// "     23  iinc 3 1 [insertIndex]\n" +
-	// "     26  iload_3 [insertIndex]\n" +
-	// "     27  aload_2 [items]\n" +
-	// "     28  arraylength\n" +
-	// "     29  if_icmplt 5\n" +
-	// "     32  iload_3 [insertIndex]\n" +
-	// "     33  aload_2 [items]\n" +
-	// "     34  arraylength\n" +
-	// "     35  if_icmplt 39\n" +
-	// "     38  return\n" +
-	// "     39  iconst_0\n" +
-	// "     40  istore 4 [compareMetric]\n" +
-	// "     42  iload_3 [insertIndex]\n" +
-	// "     43  iconst_1\n" +
-	// "     44  iadd\n" +
-	// "     45  istore 5 [nX]\n" +
-	// "     47  goto 123\n" +
-	// "     50  aload_2 [items]\n" +
-	// "     51  iload 5 [nX]\n" +
-	// "     53  aaload\n" +
-	// "     54  astore 6 [item]\n" +
-	// "     56  aload 6 [item]\n" +
-	// "     58  invokeinterface X$IContributionItem.isSeparator() : boolean [28] [nargs: 1]\n"
-	// +
-	// "     63  ifne 134\n" +
-	// "     66  aload 6 [item]\n" +
-	// "     68  invokeinterface X$IContributionItem.isGroupMarker() : boolean [32] [nargs: 1]\n"
-	// +
-	// "     73  ifeq 79\n" +
-	// "     76  goto 134\n" +
-	// "     79  aload 6 [item]\n" +
-	// "     81  instanceof X$IActionSetContributionItem [35]\n" +
-	// "     84  ifeq 134\n" +
-	// "     87  aload_1 [sortId]\n" +
-	// "     88  ifnull 117\n" +
-	// "     91  aload 6 [item]\n" +
-	// "     93  checkcast X$IActionSetContributionItem [35]\n" +
-	// "     96  invokeinterface X$IActionSetContributionItem.getActionSetId() : java.lang.String [37] [nargs: 1]\n"
-	// +
-	// "    101  astore 7 [testId]\n" +
-	// "    103  aload_1 [sortId]\n" +
-	// "    104  aload 7 [testId]\n" +
-	// "    106  invokevirtual java.lang.String.compareTo(java.lang.String) : int [40]\n"
-	// +
-	// "    109  iload 4 [compareMetric]\n" +
-	// "    111  if_icmpge 117\n" +
-	// "    114  goto 134\n" +
-	// "    117  iload 5 [nX]\n" +
-	// "    119  istore_3 [insertIndex]\n" +
-	// "    120  iinc 5 1 [nX]\n" +
-	// "    123  iload 5 [nX]\n" +
-	// "    125  aload_2 [items]\n" +
-	// "    126  arraylength\n" +
-	// "    127  if_icmplt 50\n" +
-	// "    130  goto 134\n" +
-	// "    133  astore_3\n" +
-	// "    134  return\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124853
-	// public void test034() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	private static int scenario(){\n" +
-	// "		try {\n" +
-	// "			int i = 1;\n" +
-	// "			System.out.print(\"[i: \" + i+\"]\");\n" +
-	// "			if (i > 5) {\n" +
-	// "				return i;\n" +
-	// "			}\n" +
-	// "			return -i;\n" +
-	// "		} catch (Exception e) {\n" +
-	// "			System.out.print(\"[WRONG CATCH]\");\n" +
-	// "			return 2;\n" +
-	// "		} finally {\n" +
-	// "			System.out.print(\"[finally]\");\n" +
-	// "			try {\n" +
-	// "				throwRuntime();\n" +
-	// "			} finally {\n" +
-	// "				clean();\n" +
-	// "			}\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "\n" +
-	// "	private static void throwRuntime() {\n" +
-	// "		throw new RuntimeException(\"error\");\n" +
-	// "	}\n" +
-	// "\n" +
-	// "	private static void clean() {\n" +
-	// "		System.out.print(\"[clean]\");\n" +
-	// "	}\n" +
-	// "\n" +
-	// "	public static void main(String[] args) {\n" +
-	// "		try {\n" +
-	// "			scenario();\n" +
-	// "		} catch(Exception e){\n" +
-	// "			System.out.println(\"[end]\");\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "\n" +
-	// "}\n",
-	// },
-	// "[i: 1][finally][clean][end]");
-	//	
-	// // if (this.complianceLevel.compareTo(COMPLIANCE_1_6) >= 0) return;
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode
-	// ? "  // Method descriptor #15 ()I\n" +
-	// "  // Stack: 4, Locals: 4\n" +
-	// "  private static int scenario();\n" +
-	// "      0  iconst_1\n" +
-	// "      1  istore_0 [i]\n" +
-	// "      2  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "      5  new java.lang.StringBuilder [22]\n" +
-	// "      8  dup\n" +
-	// "      9  ldc <String \"[i: \"> [24]\n" +
-	// "     11  invokespecial java.lang.StringBuilder(java.lang.String) [26]\n"
-	// +
-	// "     14  iload_0 [i]\n" +
-	// "     15  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [29]\n"
-	// +
-	// "     18  ldc <String \"]\"> [33]\n" +
-	// "     20  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [35]\n"
-	// +
-	// "     23  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "     26  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     29  iload_0 [i]\n" +
-	// "     30  iconst_5\n" +
-	// "     31  if_icmple 61\n" +
-	// "     34  iload_0 [i]\n" +
-	// "     35  istore_2\n" +
-	// "     36  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     39  ldc <String \"[finally]\"> [47]\n" +
-	// "     41  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     44  invokestatic X.throwRuntime() : void [49]\n" +
-	// "     47  goto 56\n" +
-	// "     50  astore_3\n" +
-	// "     51  invokestatic X.clean() : void [52]\n" +
-	// "     54  aload_3\n" +
-	// "     55  athrow\n" +
-	// "     56  invokestatic X.clean() : void [52]\n" +
-	// "     59  iload_2\n" +
-	// "     60  ireturn\n" +
-	// "     61  iload_0 [i]\n" +
-	// "     62  ineg\n" +
-	// "     63  istore_2\n" +
-	// "     64  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     67  ldc <String \"[finally]\"> [47]\n" +
-	// "     69  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     72  invokestatic X.throwRuntime() : void [49]\n" +
-	// "     75  goto 84\n" +
-	// "     78  astore_3\n" +
-	// "     79  invokestatic X.clean() : void [52]\n" +
-	// "     82  aload_3\n" +
-	// "     83  athrow\n" +
-	// "     84  invokestatic X.clean() : void [52]\n" +
-	// "     87  iload_2\n" +
-	// "     88  ireturn\n" +
-	// "     89  astore_0 [e]\n" +
-	// "     90  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     93  ldc <String \"[WRONG CATCH]\"> [55]\n" +
-	// "     95  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     98  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    101  ldc <String \"[finally]\"> [47]\n" +
-	// "    103  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "    106  invokestatic X.throwRuntime() : void [49]\n" +
-	// "    109  goto 118\n" +
-	// "    112  astore_3\n" +
-	// "    113  invokestatic X.clean() : void [52]\n" +
-	// "    116  aload_3\n" +
-	// "    117  athrow\n" +
-	// "    118  invokestatic X.clean() : void [52]\n" +
-	// "    121  iconst_2\n" +
-	// "    122  ireturn\n" +
-	// "    123  astore_1\n" +
-	// "    124  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    127  ldc <String \"[finally]\"> [47]\n" +
-	// "    129  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "    132  invokestatic X.throwRuntime() : void [49]\n" +
-	// "    135  goto 144\n" +
-	// "    138  astore_3\n" +
-	// "    139  invokestatic X.clean() : void [52]\n" +
-	// "    142  aload_3\n" +
-	// "    143  athrow\n" +
-	// "    144  invokestatic X.clean() : void [52]\n" +
-	// "    147  aload_1\n" +
-	// "    148  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 44, pc: 50] -> 50 when : any\n" +
-	// "        [pc: 72, pc: 78] -> 78 when : any\n" +
-	// "        [pc: 0, pc: 36] -> 89 when : java.lang.Exception\n" +
-	// "        [pc: 61, pc: 64] -> 89 when : java.lang.Exception\n" +
-	// "        [pc: 106, pc: 112] -> 112 when : any\n" +
-	// "        [pc: 0, pc: 36] -> 123 when : any\n" +
-	// "        [pc: 61, pc: 64] -> 123 when : any\n" +
-	// "        [pc: 89, pc: 98] -> 123 when : any\n" +
-	// "        [pc: 132, pc: 138] -> 138 when : any\n"
-	// : "  // Method descriptor #15 ()I\n" +
-	// "  // Stack: 4, Locals: 6\n" +
-	// "  private static int scenario();\n" +
-	// "      0  iconst_1\n" +
-	// "      1  istore_0 [i]\n" +
-	// "      2  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "      5  new java.lang.StringBuffer [22]\n" +
-	// "      8  dup\n" +
-	// "      9  ldc <String \"[i: \"> [24]\n" +
-	// "     11  invokespecial java.lang.StringBuffer(java.lang.String) [26]\n"
-	// +
-	// "     14  iload_0 [i]\n" +
-	// "     15  invokevirtual java.lang.StringBuffer.append(int) : java.lang.StringBuffer [29]\n"
-	// +
-	// "     18  ldc <String \"]\"> [33]\n" +
-	// "     20  invokevirtual java.lang.StringBuffer.append(java.lang.String) : java.lang.StringBuffer [35]\n"
-	// +
-	// "     23  invokevirtual java.lang.StringBuffer.toString() : java.lang.String [38]\n"
-	// +
-	// "     26  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     29  iload_0 [i]\n" +
-	// "     30  iconst_5\n" +
-	// "     31  if_icmple 41\n" +
-	// "     34  iload_0 [i]\n" +
-	// "     35  istore_3\n" +
-	// "     36  jsr 69\n" +
-	// "     39  iload_3\n" +
-	// "     40  ireturn\n" +
-	// "     41  iload_0 [i]\n" +
-	// "     42  ineg\n" +
-	// "     43  istore_3\n" +
-	// "     44  jsr 69\n" +
-	// "     47  iload_3\n" +
-	// "     48  ireturn\n" +
-	// "     49  astore_0 [e]\n" +
-	// "     50  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     53  ldc <String \"[WRONG CATCH]\"> [47]\n" +
-	// "     55  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     58  jsr 69\n" +
-	// "     61  iconst_2\n" +
-	// "     62  ireturn\n" +
-	// "     63  astore_2\n" +
-	// "     64  jsr 69\n" +
-	// "     67  aload_2\n" +
-	// "     68  athrow\n" +
-	// "     69  astore_1\n" +
-	// "     70  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     73  ldc <String \"[finally]\"> [49]\n" +
-	// "     75  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     78  invokestatic X.throwRuntime() : void [51]\n" +
-	// "     81  goto 99\n" +
-	// "     84  astore 5\n" +
-	// "     86  jsr 92\n" +
-	// "     89  aload 5\n" +
-	// "     91  athrow\n" +
-	// "     92  astore 4\n" +
-	// "     94  invokestatic X.clean() : void [54]\n" +
-	// "     97  ret 4\n" +
-	// "     99  jsr 92\n" +
-	// "    102  ret 1\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 39] -> 49 when : java.lang.Exception\n" +
-	// "        [pc: 41, pc: 47] -> 49 when : java.lang.Exception\n" +
-	// "        [pc: 0, pc: 39] -> 63 when : any\n" +
-	// "        [pc: 41, pc: 47] -> 63 when : any\n" +
-	// "        [pc: 49, pc: 61] -> 63 when : any\n" +
-	// "        [pc: 78, pc: 84] -> 84 when : any\n" +
-	// "        [pc: 99, pc: 102] -> 84 when : any\n";
-	//
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124853 - variation
-	public void test035() {
-		this.runConformTest(
-				new String[] {
-						"X.java",
-						"public class X {\n"
-								+ "	public static void main(String[] args) {\n"
-								+ "		try {\n" + "			new X().bar();\n"
-								+ "		} catch(Exception e){\n"
-								+ "			System.out.println(\"[end]\");\n"
-								+ "		}\n" + "	}\n" + "	Object bar() {\n"
-								+ "		try {\n"
-								+ "			System.out.print(\"[try]\");\n"
-								+ "			return this;\n"
-								+ "		} catch(Exception e){\n"
-								+ "			System.out.print(\"[WRONG CATCH]\");\n"
-								+ "		} finally {\n"
-								+ "			System.out.print(\"[finally]\");\n"
-								+ "			foo();\n" + "		}\n" + "		return this;\n"
-								+ "	}\n" + "	Object foo() {\n"
-								+ "		throw new RuntimeException();\n" + "	}\n"
-								+ "}\n", }, "[try][finally][end]");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124853 - variation
-	public void test036() {
-		this.runConformTest(
-				new String[] {
-						"X.java",
-						"public class X {\n"
-								+ "	public static void main(String[] args) {\n"
-								+ "		try {\n" + "			new X().bar();\n"
-								+ "		} catch(Exception e){\n"
-								+ "			System.out.println(\"[end]\");\n"
-								+ "		}\n" + "	}\n" + "	Object bar() {\n"
-								+ "		try {\n"
-								+ "			System.out.print(\"[try]\");\n"
-								+ "			throw new RuntimeException();\n"
-								+ "		} catch(Exception e){\n"
-								+ "			System.out.print(\"[catch]\");\n"
-								+ "			return this;\n" + "		} finally {\n"
-								+ "			System.out.print(\"[finally]\");\n"
-								+ "			foo();\n" + "		}\n" + "	}\n"
-								+ "	Object foo() {\n"
-								+ "		throw new RuntimeException();\n" + "	}\n"
-								+ "}\n", }, "[try][catch][finally][end]");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124853 - variation
-	public void test037() {
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"public class X {\n"
-										+ "\n"
-										+ "	public static void main(String[] args) {\n"
-										+ "		try {\n"
-										+ "			scenario();\n"
-										+ "		} catch(Exception e){\n"
-										+ "			System.out.println(\"[end]\");\n"
-										+ "		}\n"
-										+ "	}\n"
-										+ "\n"
-										+ "	private static void scenario() throws Exception {\n"
-										+ "		try {\n"
-										+ "			System.out.print(\"[try1]\");\n"
-										+ "			try {\n"
-										+ "				System.out.print(\"[try2]\");\n"
-										+ "				return;\n"
-										+ "			} catch(Exception e) {\n"
-										+ "				System.out.print(\"[catch2]\");\n"
-										+ "			} finally {\n"
-										+ "				System.out.print(\"[finally2]\");\n"
-										+ "				throwRuntime();\n"
-										+ "			}\n"
-										+ "		} catch(Exception e) {\n"
-										+ "			System.out.print(\"[catch1]\");\n"
-										+ "			throw e;\n"
-										+ "		} finally {\n"
-										+ "			System.out.print(\"[finally1]\");\n"
-										+ "		}\n"
-										+ "	}\n"
-										+ "\n"
-										+ "	private static void throwRuntime() {\n"
-										+ "		throw new RuntimeException(\"error\");\n"
-										+ "	}\n" + "}\n", },
-						"[try1][try2][finally2][catch1][finally1][end]");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87423
-	public void test038() {
-		this.runConformTest(new String[] {
-				"X.java",
-				"public class X {\n" + "\n" + "	int hasLoop() {\n"
-						+ "		int l, m, n;\n" + "		for (m = 0; m < 10; m++) {\n"
-						+ "			n = 2;\n" + "			try {\n" + "				n = 3;\n"
-						+ "				try {\n" + "					n = 4;\n"
-						+ "				} catch (ArithmeticException e1) {\n"
-						+ "					n = 11;\n" + "				} finally {\n"
-						+ "					for (l = 0; l < 10; l++) {\n" + "						n++;\n"
-						+ "					}\n" + "					if (n == 12) {\n"
-						+ "						n = 13;\n" + "						break;\n" + "					}\n"
-						+ "					n = 15;\n" + "				}\n"
-						+ "			} catch (OutOfMemoryError e2) {\n"
-						+ "				n = 18;\n" + "			}\n" + "		}\n"
-						+ "		return 0;\n" + "	}\n" + "\n"
-						+ "	public static void main(String args[]) {\n"
-						+ "      System.out.println(\"Loaded fine\");\n"
-						+ "   }\n" + "}\n", }, "Loaded fine");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127603
-	public void test039() {
-		this
-				.runConformTest(
-						new String[] {
-								"X.java",
-								"public class X {\n"
-										+ "	public static void someMethod() {\n"
-										+ "		int count = 0;\n"
-										+ "		int code = -1;\n"
-										+ "		while (count < 2 && (code == -1 || code == 2)) {\n"
-										+ "			count++;\n"
-										+ "			try {\n"
-										+ "				{\n"
-										+ "					System.out.print(\"[Try:\" + count + \";\" + code+\"]\");\n"
-										+ "				}\n"
-										+ "				code = 0;\n"
-										+ "\n"
-										+ "			} finally {\n"
-										+ "				System.out.print(\"[Finally\" + count + \";\" + code+\"]\");\n"
-										+ "			}\n"
-										+ "		}\n"
-										+ "		System.out.print(\"[Outering\");\n"
-										+ "\n"
-										+ "		if (code == 0) {\n"
-										+ "			System.out.print(\"[Return:\" + count + \";\" + code+\"]\");\n"
-										+ "			return;\n"
-										+ "		}\n"
-										+ "		throw new RuntimeException(null + \"a\");\n"
-										+ "	}\n"
-										+ "\n"
-										+ "	public static void main(String[] args) throws Exception {\n"
-										+ "		for (int i = 0; i < 1; i++) {\n"
-										+ "			someMethod();\n"
-										+ "			System.out.println();\n"
-										+ "		}\n" + "	}\n" + "}\n", },
-						"[Try:1;-1][Finally1;0][Outering[Return:1;0]");
-	}
-
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=128705
-	// public void test040() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	public void foo(boolean b) {\n" +
-	// "		try { \n" +
-	// "			if (b){ \n" +
-	// "				int i = 0;\n" +
-	// "				return;\n" +
-	// "			} else {\n" +
-	// "				Object o = null;\n" +
-	// "				return;\n" +
-	// "			}\n" +
-	// "		} finally {\n" +
-	// "			System.out.println(\"done\");\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	public static void main(String[] args) {\n" +
-	// "		new X().foo(true);\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "done");
-	//	
-	// CompilerOptions compilerOptions = new
-	// CompilerOptions(this.getCompilerOptions());
-	// String expectedOutput = !compilerOptions.inlineJsrBytecode
-	// ? "  // Method descriptor #15 (Z)V\n" +
-	// "  // Stack: 2, Locals: 5\n" +
-	// "  public void foo(boolean b);\n" +
-	// "     0  iload_1 [b]\n" +
-	// "     1  ifeq 10\n" +
-	// "     4  iconst_0\n" +
-	// "     5  istore_2 [i]\n" +
-	// "     6  jsr 23\n" +
-	// "     9  return\n" +
-	// "    10  aconst_null\n" +
-	// "    11  astore_2 [o]\n" +
-	// "    12  goto 6\n" +
-	// "    15  astore 4\n" +
-	// "    17  jsr 23\n" +
-	// "    20  aload 4\n" +
-	// "    22  athrow\n" +
-	// "    23  astore_3\n" +
-	// "    24  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    27  ldc <String \"done\"> [22]\n" +
-	// "    29  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    32  ret 3\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 9] -> 15 when : any\n" +
-	// "        [pc: 10, pc: 15] -> 15 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 4, line: 5]\n" +
-	// "        [pc: 6, line: 6]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 12, line: 9]\n" +
-	// "        [pc: 15, line: 11]\n" +
-	// "        [pc: 20, line: 13]\n" +
-	// "        [pc: 23, line: 11]\n" +
-	// "        [pc: 24, line: 12]\n" +
-	// "        [pc: 32, line: 13]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 34] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 34] local: b index: 1 type: boolean\n" +
-	// "        [pc: 6, pc: 10] local: i index: 2 type: int\n" +
-	// "        [pc: 12, pc: 15] local: o index: 2 type: java.lang.Object\n"
-	// : null;
-	// if (expectedOutput == null) {
-	// if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) {
-	// expectedOutput = "  // Method descriptor #15 (Z)V\n" +
-	// "  // Stack: 2, Locals: 4\n" +
-	// "  public void foo(boolean b);\n" +
-	// "     0  iload_1 [b]\n" +
-	// "     1  ifeq 15\n" +
-	// "     4  iconst_0\n" +
-	// "     5  istore_2 [i]\n" +
-	// "     6  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     9  ldc <String \"done\"> [22]\n" +
-	// "    11  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    14  return\n" +
-	// "    15  aconst_null\n" +
-	// "    16  astore_2 [o]\n" +
-	// "    17  goto 6\n" +
-	// "    20  astore_3\n" +
-	// "    21  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    24  ldc <String \"done\"> [22]\n" +
-	// "    26  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    29  aload_3\n" +
-	// "    30  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 6] -> 20 when : any\n" +
-	// "        [pc: 15, pc: 20] -> 20 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 4, line: 5]\n" +
-	// "        [pc: 6, line: 12]\n" +
-	// "        [pc: 14, line: 6]\n" +
-	// "        [pc: 15, line: 8]\n" +
-	// "        [pc: 17, line: 9]\n" +
-	// "        [pc: 20, line: 11]\n" +
-	// "        [pc: 21, line: 12]\n" +
-	// "        [pc: 29, line: 13]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 31] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 31] local: b index: 1 type: boolean\n" +
-	// "        [pc: 6, pc: 15] local: i index: 2 type: int\n" +
-	// "        [pc: 17, pc: 20] local: o index: 2 type: java.lang.Object\n";
-	// } else {
-	// expectedOutput = "  // Method descriptor #15 (Z)V\n" +
-	// "  // Stack: 2, Locals: 4\n" +
-	// "  public void foo(boolean b);\n" +
-	// "     0  iload_1 [b]\n" +
-	// "     1  ifeq 15\n" +
-	// "     4  iconst_0\n" +
-	// "     5  istore_2 [i]\n" +
-	// "     6  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     9  ldc <String \"done\"> [22]\n" +
-	// "    11  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    14  return\n" +
-	// "    15  aconst_null\n" +
-	// "    16  astore_2 [o]\n" +
-	// "    17  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    20  ldc <String \"done\"> [22]\n" +
-	// "    22  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    25  return\n" +
-	// "    26  astore_3\n" +
-	// "    27  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    30  ldc <String \"done\"> [22]\n" +
-	// "    32  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    35  aload_3\n" +
-	// "    36  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 6] -> 26 when : any\n" +
-	// "        [pc: 15, pc: 17] -> 26 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 4, line: 5]\n" +
-	// "        [pc: 6, line: 12]\n" +
-	// "        [pc: 14, line: 6]\n" +
-	// "        [pc: 15, line: 8]\n" +
-	// "        [pc: 17, line: 12]\n" +
-	// "        [pc: 25, line: 9]\n" +
-	// "        [pc: 26, line: 11]\n" +
-	// "        [pc: 27, line: 12]\n" +
-	// "        [pc: 35, line: 13]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 37] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 37] local: b index: 1 type: boolean\n" +
-	// "        [pc: 6, pc: 15] local: i index: 2 type: int\n" +
-	// "        [pc: 17, pc: 26] local: o index: 2 type: java.lang.Object\n" +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 15, same]\n" +
-	// "        [pc: 26, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n";
-	// }
-	// }
-	//
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128705 - variation
-	// public void test041() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	public void foo(boolean b) {\n" +
-	// "		try { \n" +
-	// "			int i = 0;\n" +
-	// "			return;\n" +
-	// "		} catch(Exception e) {\n" +
-	// "			return;\n" +
-	// "		} finally {\n" +
-	// "			System.out.println(\"done\");\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	public static void main(String[] args) {\n" +
-	// "		new X().foo(true);\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "done");
-	//	
-	// CompilerOptions compilerOptions = new
-	// CompilerOptions(this.getCompilerOptions());
-	// String expectedOutput = !compilerOptions.inlineJsrBytecode
-	// ? "  // Method descriptor #15 (Z)V\n" +
-	// "  // Stack: 2, Locals: 5\n" +
-	// "  public void foo(boolean b);\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_2 [i]\n" +
-	// "     2  jsr 18\n" +
-	// "     5  return\n" +
-	// "     6  astore_2 [e]\n" +
-	// "     7  goto 2\n" +
-	// "    10  astore 4\n" +
-	// "    12  jsr 18\n" +
-	// "    15  aload 4\n" +
-	// "    17  athrow\n" +
-	// "    18  astore_3\n" +
-	// "    19  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    22  ldc <String \"done\"> [22]\n" +
-	// "    24  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    27  ret 3\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 5] -> 6 when : java.lang.Exception\n" +
-	// "        [pc: 0, pc: 5] -> 10 when : any\n" +
-	// "        [pc: 6, pc: 10] -> 10 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 2, line: 5]\n" +
-	// "        [pc: 6, line: 6]\n" +
-	// "        [pc: 7, line: 7]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 15, line: 10]\n" +
-	// "        [pc: 18, line: 8]\n" +
-	// "        [pc: 19, line: 9]\n" +
-	// "        [pc: 27, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 29] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 29] local: b index: 1 type: boolean\n" +
-	// "        [pc: 2, pc: 6] local: i index: 2 type: int\n" +
-	// "        [pc: 7, pc: 10] local: e index: 2 type: java.lang.Exception\n"
-	// : null;
-	// if (expectedOutput == null) {
-	// if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) {
-	// expectedOutput = "  // Method descriptor #15 (Z)V\n" +
-	// "  // Stack: 2, Locals: 4\n" +
-	// "  public void foo(boolean b);\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_2 [i]\n" +
-	// "     2  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     5  ldc <String \"done\"> [22]\n" +
-	// "     7  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    10  return\n" +
-	// "    11  astore_2 [e]\n" +
-	// "    12  goto 2\n" +
-	// "    15  astore_3\n" +
-	// "    16  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    19  ldc <String \"done\"> [22]\n" +
-	// "    21  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    24  aload_3\n" +
-	// "    25  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 2] -> 11 when : java.lang.Exception\n" +
-	// "        [pc: 0, pc: 2] -> 15 when : any\n" +
-	// "        [pc: 11, pc: 15] -> 15 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 2, line: 9]\n" +
-	// "        [pc: 10, line: 5]\n" +
-	// "        [pc: 11, line: 6]\n" +
-	// "        [pc: 12, line: 7]\n" +
-	// "        [pc: 15, line: 8]\n" +
-	// "        [pc: 16, line: 9]\n" +
-	// "        [pc: 24, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 26] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 26] local: b index: 1 type: boolean\n" +
-	// "        [pc: 2, pc: 11] local: i index: 2 type: int\n" +
-	// "        [pc: 12, pc: 15] local: e index: 2 type: java.lang.Exception\n";
-	// } else {
-	// expectedOutput = "  // Method descriptor #15 (Z)V\n" +
-	// "  // Stack: 2, Locals: 4\n" +
-	// "  public void foo(boolean b);\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_2 [i]\n" +
-	// "     2  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     5  ldc <String \"done\"> [22]\n" +
-	// "     7  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    10  return\n" +
-	// "    11  astore_2 [e]\n" +
-	// "    12  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    15  ldc <String \"done\"> [22]\n" +
-	// "    17  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    20  return\n" +
-	// "    21  astore_3\n" +
-	// "    22  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    25  ldc <String \"done\"> [22]\n" +
-	// "    27  invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n"
-	// +
-	// "    30  aload_3\n" +
-	// "    31  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 2] -> 11 when : java.lang.Exception\n" +
-	// "        [pc: 0, pc: 2] -> 21 when : any\n" +
-	// "        [pc: 11, pc: 12] -> 21 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 2, line: 9]\n" +
-	// "        [pc: 10, line: 5]\n" +
-	// "        [pc: 11, line: 6]\n" +
-	// "        [pc: 12, line: 9]\n" +
-	// "        [pc: 20, line: 7]\n" +
-	// "        [pc: 21, line: 8]\n" +
-	// "        [pc: 22, line: 9]\n" +
-	// "        [pc: 30, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 32] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 32] local: b index: 1 type: boolean\n" +
-	// "        [pc: 2, pc: 11] local: i index: 2 type: int\n" +
-	// "        [pc: 12, pc: 21] local: e index: 2 type: java.lang.Exception\n"
-	// +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 11, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 21, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n";
-	// }
-	// }
-	//
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128705 - variation
-	// public void test042() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// " public class X {\n" +
-	// " public static void main(String[] args) {\n" +
-	// "		System.out.println(new X().foo(args));\n" +
-	// "	}\n" +
-	// "	String foo(String[] args) {\n" +
-	// "		try {\n" +
-	// "			if (args == null) return \"KO\";\n" +
-	// "			switch(args.length) {\n" +
-	// "			case 0:\n" +
-	// "				return \"OK\";\n" +
-	// "			case 1:\n" +
-	// "				return \"KO\";\n" +
-	// "			case 3:\n" +
-	// "				return \"OK\";\n" +
-	// "			default:\n" +
-	// "				return \"KO\";\n" +
-	// "			}\n" +
-	// "		} finally {\n" +
-	// "			System.out.print(\"FINALLY:\");\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "FINALLY:OK");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode
-	// ? "  // Method descriptor #26 ([Ljava/lang/String;)Ljava/lang/String;\n"
-	// +
-	// "  // Stack: 2, Locals: 3\n" +
-	// "  java.lang.String foo(java.lang.String[] args);\n" +
-	// "     0  aload_1 [args]\n" +
-	// "     1  ifnonnull 15\n" +
-	// "     4  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "     7  ldc <String \"FINALLY:\"> [35]\n" +
-	// "     9  invokevirtual java.io.PrintStream.print(java.lang.String) : void [37]\n"
-	// +
-	// "    12  ldc <String \"KO\"> [40]\n" +
-	// "    14  areturn\n" +
-	// "    15  aload_1 [args]\n" +
-	// "    16  arraylength\n" +
-	// "    17  tableswitch default: 65\n" +
-	// "          case 0: 48\n" +
-	// "          case 1: 59\n" +
-	// "          case 2: 65\n" +
-	// "          case 3: 62\n" +
-	// "    48  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    51  ldc <String \"FINALLY:\"> [35]\n" +
-	// "    53  invokevirtual java.io.PrintStream.print(java.lang.String) : void [37]\n"
-	// +
-	// "    56  ldc <String \"OK\"> [42]\n" +
-	// "    58  areturn\n" +
-	// "    59  goto 4\n" +
-	// "    62  goto 48\n" +
-	// "    65  goto 4\n" +
-	// "    68  astore_2\n" +
-	// "    69  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    72  ldc <String \"FINALLY:\"> [35]\n" +
-	// "    74  invokevirtual java.io.PrintStream.print(java.lang.String) : void [37]\n"
-	// +
-	// "    77  aload_2\n" +
-	// "    78  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 4] -> 68 when : any\n" +
-	// "        [pc: 15, pc: 48] -> 68 when : any\n" +
-	// "        [pc: 59, pc: 68] -> 68 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 7]\n" +
-	// "        [pc: 4, line: 19]\n" +
-	// "        [pc: 12, line: 7]\n" +
-	// "        [pc: 15, line: 8]\n" +
-	// "        [pc: 48, line: 19]\n" +
-	// "        [pc: 56, line: 10]\n" +
-	// "        [pc: 59, line: 12]\n" +
-	// "        [pc: 62, line: 14]\n" +
-	// "        [pc: 65, line: 16]\n" +
-	// "        [pc: 68, line: 18]\n" +
-	// "        [pc: 69, line: 19]\n" +
-	// "        [pc: 77, line: 20]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 79] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 79] local: args index: 1 type: java.lang.String[]\n"
-	// : "  // Method descriptor #26 ([Ljava/lang/String;)Ljava/lang/String;\n"
-	// +
-	// "  // Stack: 2, Locals: 4\n" +
-	// "  java.lang.String foo(java.lang.String[] args);\n" +
-	// "     0  aload_1 [args]\n" +
-	// "     1  ifnonnull 10\n" +
-	// "     4  jsr 65\n" +
-	// "     7  ldc <String \"KO\"> [35]\n" +
-	// "     9  areturn\n" +
-	// "    10  aload_1 [args]\n" +
-	// "    11  arraylength\n" +
-	// "    12  tableswitch default: 56\n" +
-	// "          case 0: 44\n" +
-	// "          case 1: 50\n" +
-	// "          case 2: 56\n" +
-	// "          case 3: 53\n" +
-	// "    44  jsr 65\n" +
-	// "    47  ldc <String \"OK\"> [37]\n" +
-	// "    49  areturn\n" +
-	// "    50  goto 4\n" +
-	// "    53  goto 44\n" +
-	// "    56  goto 4\n" +
-	// "    59  astore_3\n" +
-	// "    60  jsr 65\n" +
-	// "    63  aload_3\n" +
-	// "    64  athrow\n" +
-	// "    65  astore_2\n" +
-	// "    66  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    69  ldc <String \"FINALLY:\"> [39]\n" +
-	// "    71  invokevirtual java.io.PrintStream.print(java.lang.String) : void [41]\n"
-	// +
-	// "    74  ret 2\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 59 when : any\n" +
-	// "        [pc: 10, pc: 47] -> 59 when : any\n" +
-	// "        [pc: 50, pc: 59] -> 59 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 7]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 44, line: 10]\n" +
-	// "        [pc: 50, line: 12]\n" +
-	// "        [pc: 53, line: 14]\n" +
-	// "        [pc: 56, line: 16]\n" +
-	// "        [pc: 59, line: 18]\n" +
-	// "        [pc: 63, line: 20]\n" +
-	// "        [pc: 65, line: 18]\n" +
-	// "        [pc: 66, line: 19]\n" +
-	// "        [pc: 74, line: 20]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 76] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 76] local: args index: 1 type: java.lang.String[]\n";
-	//
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=128705 - variation
-	// public void test043() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	public void save() {\n" +
-	// "		int a = 3;\n" +
-	// "		try {\n" +
-	// "			Object warnings = null;\n" +
-	// "			Object contexts = null;\n" +
-	// "			try {\n" +
-	// "				System.out.print(warnings);\n" +
-	// "				return;\n" +
-	// "			} catch (NullPointerException npe) {\n" +
-	// "				System.out.print(contexts);\n" +
-	// "				return;\n" +
-	// "			} finally {\n" +
-	// "				System.out.print(\"#inner -> \" + a);\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "			return;\n" +
-	// "		} finally {\n" +
-	// "			int var = 0;\n" +
-	// "			System.out.println(\"#save -> \" + a);\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	public static void main(String[] args) {\n" +
-	// "		new X().save();\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "null#inner -> 3#save -> 3");
-	//	
-	// CompilerOptions compilerOptions = new
-	// CompilerOptions(this.getCompilerOptions());
-	// String expectedOutput = !compilerOptions.inlineJsrBytecode
-	// ? "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 4, Locals: 10\n" +
-	// "  public void save();\n" +
-	// "      0  iconst_3\n" +
-	// "      1  istore_1 [a]\n" +
-	// "      2  aconst_null\n" +
-	// "      3  astore_2 [warnings]\n" +
-	// "      4  aconst_null\n" +
-	// "      5  astore_3 [contexts]\n" +
-	// "      6  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "      9  aload_2 [warnings]\n" +
-	// "     10  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n"
-	// +
-	// "     13  jsr 40\n" +
-	// "     16  jsr 78\n" +
-	// "     19  return\n" +
-	// "     20  astore 4 [npe]\n" +
-	// "     22  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     25  aload_3 [contexts]\n" +
-	// "     26  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n"
-	// +
-	// "     29  goto 13\n" +
-	// "     32  astore 6\n" +
-	// "     34  jsr 40\n" +
-	// "     37  aload 6\n" +
-	// "     39  athrow\n" +
-	// "     40  astore 5\n" +
-	// "     42  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     45  new java.lang.StringBuffer [27]\n" +
-	// "     48  dup\n" +
-	// "     49  ldc <String \"#inner -> \"> [29]\n" +
-	// "     51  invokespecial java.lang.StringBuffer(java.lang.String) [31]\n"
-	// +
-	// "     54  iload_1 [a]\n" +
-	// "     55  invokevirtual java.lang.StringBuffer.append(int) : java.lang.StringBuffer [34]\n"
-	// +
-	// "     58  invokevirtual java.lang.StringBuffer.toString() : java.lang.String [38]\n"
-	// +
-	// "     61  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     64  ret 5\n" +
-	// "     66  astore_2 [e]\n" +
-	// "     67  goto 16\n" +
-	// "     70  astore 8\n" +
-	// "     72  jsr 78\n" +
-	// "     75  aload 8\n" +
-	// "     77  athrow\n" +
-	// "     78  astore 7\n" +
-	// "     80  iconst_0\n" +
-	// "     81  istore 9 [var]\n" +
-	// "     83  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     86  new java.lang.StringBuffer [27]\n" +
-	// "     89  dup\n" +
-	// "     90  ldc <String \"#save -> \"> [44]\n" +
-	// "     92  invokespecial java.lang.StringBuffer(java.lang.String) [31]\n"
-	// +
-	// "     95  iload_1 [a]\n" +
-	// "     96  invokevirtual java.lang.StringBuffer.append(int) : java.lang.StringBuffer [34]\n"
-	// +
-	// "     99  invokevirtual java.lang.StringBuffer.toString() : java.lang.String [38]\n"
-	// +
-	// "    102  invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n"
-	// +
-	// "    105  ret 7\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 6, pc: 16] -> 20 when : java.lang.NullPointerException\n" +
-	// "        [pc: 6, pc: 16] -> 32 when : any\n" +
-	// "        [pc: 20, pc: 32] -> 32 when : any\n" +
-	// "        [pc: 2, pc: 19] -> 66 when : java.lang.Exception\n" +
-	// "        [pc: 20, pc: 66] -> 66 when : java.lang.Exception\n" +
-	// "        [pc: 2, pc: 19] -> 70 when : any\n" +
-	// "        [pc: 20, pc: 70] -> 70 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 3]\n" +
-	// "        [pc: 2, line: 5]\n" +
-	// "        [pc: 4, line: 6]\n" +
-	// "        [pc: 6, line: 8]\n" +
-	// "        [pc: 13, line: 9]\n" +
-	// "        [pc: 20, line: 10]\n" +
-	// "        [pc: 22, line: 11]\n" +
-	// "        [pc: 29, line: 12]\n" +
-	// "        [pc: 32, line: 13]\n" +
-	// "        [pc: 37, line: 15]\n" +
-	// "        [pc: 40, line: 13]\n" +
-	// "        [pc: 42, line: 14]\n" +
-	// "        [pc: 64, line: 15]\n" +
-	// "        [pc: 66, line: 16]\n" +
-	// "        [pc: 67, line: 17]\n" +
-	// "        [pc: 70, line: 18]\n" +
-	// "        [pc: 75, line: 21]\n" +
-	// "        [pc: 78, line: 18]\n" +
-	// "        [pc: 80, line: 19]\n" +
-	// "        [pc: 83, line: 20]\n" +
-	// "        [pc: 105, line: 21]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 107] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 107] local: a index: 1 type: int\n" +
-	// "        [pc: 4, pc: 66] local: warnings index: 2 type: java.lang.Object\n"
-	// +
-	// "        [pc: 6, pc: 66] local: contexts index: 3 type: java.lang.Object\n"
-	// +
-	// "        [pc: 22, pc: 32] local: npe index: 4 type: java.lang.NullPointerException\n"
-	// +
-	// "        [pc: 67, pc: 70] local: e index: 2 type: java.lang.Exception\n"
-	// +
-	// "        [pc: 83, pc: 105] local: var index: 9 type: int\n"
-	// : null;
-	//
-	// if (expectedOutput == null) {
-	// if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) {
-	// expectedOutput = "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 4, Locals: 8\n" +
-	// "  public void save();\n" +
-	// "      0  iconst_3\n" +
-	// "      1  istore_1 [a]\n" +
-	// "      2  aconst_null\n" +
-	// "      3  astore_2 [warnings]\n" +
-	// "      4  aconst_null\n" +
-	// "      5  astore_3 [contexts]\n" +
-	// "      6  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "      9  aload_2 [warnings]\n" +
-	// "     10  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n"
-	// +
-	// "     13  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     16  new java.lang.StringBuilder [27]\n" +
-	// "     19  dup\n" +
-	// "     20  ldc <String \"#inner -> \"> [29]\n" +
-	// "     22  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "     25  iload_1 [a]\n" +
-	// "     26  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "     29  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "     32  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     35  iconst_0\n" +
-	// "     36  istore 7 [var]\n" +
-	// "     38  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     41  new java.lang.StringBuilder [27]\n" +
-	// "     44  dup\n" +
-	// "     45  ldc <String \"#save -> \"> [44]\n" +
-	// "     47  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "     50  iload_1 [a]\n" +
-	// "     51  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "     54  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "     57  invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n"
-	// +
-	// "     60  return\n" +
-	// "     61  astore 4 [npe]\n" +
-	// "     63  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     66  aload_3 [contexts]\n" +
-	// "     67  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n"
-	// +
-	// "     70  goto 13\n" +
-	// "     73  astore 5\n" +
-	// "     75  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     78  new java.lang.StringBuilder [27]\n" +
-	// "     81  dup\n" +
-	// "     82  ldc <String \"#inner -> \"> [29]\n" +
-	// "     84  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "     87  iload_1 [a]\n" +
-	// "     88  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "     91  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "     94  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     97  aload 5\n" +
-	// "     99  athrow\n" +
-	// "    100  astore_2 [e]\n" +
-	// "    101  goto 35\n" +
-	// "    104  astore 6\n" +
-	// "    106  iconst_0\n" +
-	// "    107  istore 7 [var]\n" +
-	// "    109  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    112  new java.lang.StringBuilder [27]\n" +
-	// "    115  dup\n" +
-	// "    116  ldc <String \"#save -> \"> [44]\n" +
-	// "    118  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "    121  iload_1 [a]\n" +
-	// "    122  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "    125  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "    128  invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n"
-	// +
-	// "    131  aload 6\n" +
-	// "    133  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" +
-	// "        [pc: 6, pc: 13] -> 73 when : any\n" +
-	// "        [pc: 61, pc: 73] -> 73 when : any\n" +
-	// "        [pc: 2, pc: 35] -> 100 when : java.lang.Exception\n" +
-	// "        [pc: 61, pc: 100] -> 100 when : java.lang.Exception\n" +
-	// "        [pc: 2, pc: 35] -> 104 when : any\n" +
-	// "        [pc: 61, pc: 104] -> 104 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 3]\n" +
-	// "        [pc: 2, line: 5]\n" +
-	// "        [pc: 4, line: 6]\n" +
-	// "        [pc: 6, line: 8]\n" +
-	// "        [pc: 13, line: 14]\n" +
-	// "        [pc: 35, line: 19]\n" +
-	// "        [pc: 38, line: 20]\n" +
-	// "        [pc: 60, line: 9]\n" +
-	// "        [pc: 61, line: 10]\n" +
-	// "        [pc: 63, line: 11]\n" +
-	// "        [pc: 70, line: 12]\n" +
-	// "        [pc: 73, line: 13]\n" +
-	// "        [pc: 75, line: 14]\n" +
-	// "        [pc: 97, line: 15]\n" +
-	// "        [pc: 100, line: 16]\n" +
-	// "        [pc: 101, line: 17]\n" +
-	// "        [pc: 104, line: 18]\n" +
-	// "        [pc: 106, line: 19]\n" +
-	// "        [pc: 109, line: 20]\n" +
-	// "        [pc: 131, line: 21]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 134] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 134] local: a index: 1 type: int\n" +
-	// "        [pc: 4, pc: 100] local: warnings index: 2 type: java.lang.Object\n"
-	// +
-	// "        [pc: 6, pc: 100] local: contexts index: 3 type: java.lang.Object\n"
-	// +
-	// "        [pc: 63, pc: 73] local: npe index: 4 type: java.lang.NullPointerException\n"
-	// +
-	// "        [pc: 101, pc: 104] local: e index: 2 type: java.lang.Exception\n"
-	// +
-	// "        [pc: 38, pc: 60] local: var index: 7 type: int\n" +
-	// "        [pc: 109, pc: 131] local: var index: 7 type: int\n";
-	// } else {
-	// expectedOutput = "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 4, Locals: 8\n" +
-	// "  public void save();\n" +
-	// "      0  iconst_3\n" +
-	// "      1  istore_1 [a]\n" +
-	// "      2  aconst_null\n" +
-	// "      3  astore_2 [warnings]\n" +
-	// "      4  aconst_null\n" +
-	// "      5  astore_3 [contexts]\n" +
-	// "      6  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "      9  aload_2 [warnings]\n" +
-	// "     10  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n"
-	// +
-	// "     13  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     16  new java.lang.StringBuilder [27]\n" +
-	// "     19  dup\n" +
-	// "     20  ldc <String \"#inner -> \"> [29]\n" +
-	// "     22  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "     25  iload_1 [a]\n" +
-	// "     26  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "     29  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "     32  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     35  iconst_0\n" +
-	// "     36  istore 7 [var]\n" +
-	// "     38  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     41  new java.lang.StringBuilder [27]\n" +
-	// "     44  dup\n" +
-	// "     45  ldc <String \"#save -> \"> [44]\n" +
-	// "     47  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "     50  iload_1 [a]\n" +
-	// "     51  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "     54  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "     57  invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n"
-	// +
-	// "     60  return\n" +
-	// "     61  astore 4 [npe]\n" +
-	// "     63  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     66  aload_3 [contexts]\n" +
-	// "     67  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n"
-	// +
-	// "     70  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     73  new java.lang.StringBuilder [27]\n" +
-	// "     76  dup\n" +
-	// "     77  ldc <String \"#inner -> \"> [29]\n" +
-	// "     79  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "     82  iload_1 [a]\n" +
-	// "     83  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "     86  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "     89  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "     92  iconst_0\n" +
-	// "     93  istore 7 [var]\n" +
-	// "     95  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     98  new java.lang.StringBuilder [27]\n" +
-	// "    101  dup\n" +
-	// "    102  ldc <String \"#save -> \"> [44]\n" +
-	// "    104  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "    107  iload_1 [a]\n" +
-	// "    108  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "    111  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "    114  invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n"
-	// +
-	// "    117  return\n" +
-	// "    118  astore 5\n" +
-	// "    120  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    123  new java.lang.StringBuilder [27]\n" +
-	// "    126  dup\n" +
-	// "    127  ldc <String \"#inner -> \"> [29]\n" +
-	// "    129  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "    132  iload_1 [a]\n" +
-	// "    133  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "    136  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "    139  invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n"
-	// +
-	// "    142  aload 5\n" +
-	// "    144  athrow\n" +
-	// "    145  astore_2 [e]\n" +
-	// "    146  iconst_0\n" +
-	// "    147  istore 7 [var]\n" +
-	// "    149  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    152  new java.lang.StringBuilder [27]\n" +
-	// "    155  dup\n" +
-	// "    156  ldc <String \"#save -> \"> [44]\n" +
-	// "    158  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "    161  iload_1 [a]\n" +
-	// "    162  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "    165  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "    168  invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n"
-	// +
-	// "    171  return\n" +
-	// "    172  astore 6\n" +
-	// "    174  iconst_0\n" +
-	// "    175  istore 7 [var]\n" +
-	// "    177  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    180  new java.lang.StringBuilder [27]\n" +
-	// "    183  dup\n" +
-	// "    184  ldc <String \"#save -> \"> [44]\n" +
-	// "    186  invokespecial java.lang.StringBuilder(java.lang.String) [31]\n"
-	// +
-	// "    189  iload_1 [a]\n" +
-	// "    190  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n"
-	// +
-	// "    193  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n"
-	// +
-	// "    196  invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n"
-	// +
-	// "    199  aload 6\n" +
-	// "    201  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" +
-	// "        [pc: 6, pc: 13] -> 118 when : any\n" +
-	// "        [pc: 61, pc: 70] -> 118 when : any\n" +
-	// "        [pc: 2, pc: 35] -> 145 when : java.lang.Exception\n" +
-	// "        [pc: 61, pc: 92] -> 145 when : java.lang.Exception\n" +
-	// "        [pc: 118, pc: 145] -> 145 when : java.lang.Exception\n" +
-	// "        [pc: 2, pc: 35] -> 172 when : any\n" +
-	// "        [pc: 61, pc: 92] -> 172 when : any\n" +
-	// "        [pc: 118, pc: 146] -> 172 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 3]\n" +
-	// "        [pc: 2, line: 5]\n" +
-	// "        [pc: 4, line: 6]\n" +
-	// "        [pc: 6, line: 8]\n" +
-	// "        [pc: 13, line: 14]\n" +
-	// "        [pc: 35, line: 19]\n" +
-	// "        [pc: 38, line: 20]\n" +
-	// "        [pc: 60, line: 9]\n" +
-	// "        [pc: 61, line: 10]\n" +
-	// "        [pc: 63, line: 11]\n" +
-	// "        [pc: 70, line: 14]\n" +
-	// "        [pc: 92, line: 19]\n" +
-	// "        [pc: 95, line: 20]\n" +
-	// "        [pc: 117, line: 12]\n" +
-	// "        [pc: 118, line: 13]\n" +
-	// "        [pc: 120, line: 14]\n" +
-	// "        [pc: 142, line: 15]\n" +
-	// "        [pc: 145, line: 16]\n" +
-	// "        [pc: 146, line: 19]\n" +
-	// "        [pc: 149, line: 20]\n" +
-	// "        [pc: 171, line: 17]\n" +
-	// "        [pc: 172, line: 18]\n" +
-	// "        [pc: 174, line: 19]\n" +
-	// "        [pc: 177, line: 20]\n" +
-	// "        [pc: 199, line: 21]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 202] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 202] local: a index: 1 type: int\n" +
-	// "        [pc: 4, pc: 145] local: warnings index: 2 type: java.lang.Object\n"
-	// +
-	// "        [pc: 6, pc: 145] local: contexts index: 3 type: java.lang.Object\n"
-	// +
-	// "        [pc: 63, pc: 118] local: npe index: 4 type: java.lang.NullPointerException\n"
-	// +
-	// "        [pc: 146, pc: 172] local: e index: 2 type: java.lang.Exception\n"
-	// +
-	// "        [pc: 38, pc: 60] local: var index: 7 type: int\n" +
-	// "        [pc: 95, pc: 117] local: var index: 7 type: int\n" +
-	// "        [pc: 149, pc: 171] local: var index: 7 type: int\n" +
-	// "        [pc: 177, pc: 199] local: var index: 7 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 61, full, stack: {java.lang.NullPointerException}, locals: {X, int, java.lang.Object, java.lang.Object}]\n"
-	// +
-	// "        [pc: 118, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"
-	// +
-	// "        [pc: 145, full, stack: {java.lang.Exception}, locals: {X, int}]\n"
-	// +
-	// "        [pc: 172, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n";
-	// }
-	// }
-	//
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=129305
-	// public void test044() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	public static void main(String[] args) {\n" +
-	// "		foo();\n" +
-	// "	}  \n" +
-	// "	static Object foo() {\n" +
-	// "		try {\n" +
-	// "			return null;\n" +
-	// "		} catch(Exception e) {\n" +
-	// "			return null;\n" +
-	// "		} finally {\n" +
-	// "			System.out.println(\"SUCCESS\");\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "SUCCESS");
-	//	
-	// CompilerOptions compilerOptions = new
-	// CompilerOptions(this.getCompilerOptions());
-	// String expectedOutput = !compilerOptions.inlineJsrBytecode ?
-	// "  // Method descriptor #19 ()Ljava/lang/Object;\n" +
-	// "  // Stack: 2, Locals: 3\n" +
-	// "  static java.lang.Object foo();\n" +
-	// "     0  jsr 15\n" +
-	// "     3  aconst_null\n" +
-	// "     4  areturn\n" +
-	// "     5  astore_0 [e]\n" +
-	// "     6  goto 0\n" +
-	// "     9  astore_2\n" +
-	// "    10  jsr 15\n" +
-	// "    13  aload_2\n" +
-	// "    14  athrow\n" +
-	// "    15  astore_1\n" +
-	// "    16  getstatic java.lang.System.out : java.io.PrintStream [22]\n" +
-	// "    19  ldc <String \"SUCCESS\"> [28]\n" +
-	// "    21  invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n"
-	// +
-	// "    24  ret 1\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 3] -> 5 when : java.lang.Exception\n" +
-	// "        [pc: 0, pc: 3] -> 9 when : any\n" +
-	// "        [pc: 5, pc: 9] -> 9 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 7]\n" +
-	// "        [pc: 5, line: 8]\n" +
-	// "        [pc: 6, line: 9]\n" +
-	// "        [pc: 9, line: 10]\n" +
-	// "        [pc: 13, line: 12]\n" +
-	// "        [pc: 15, line: 10]\n" +
-	// "        [pc: 16, line: 11]\n" +
-	// "        [pc: 24, line: 12]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 6, pc: 9] local: e index: 0 type: java.lang.Exception\n"
-	// : null;
-	//
-	// if (expectedOutput == null) {
-	// if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) {
-	// expectedOutput = "  // Method descriptor #19 ()Ljava/lang/Object;\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  static java.lang.Object foo();\n" +
-	// "     0  getstatic java.lang.System.out : java.io.PrintStream [22]\n" +
-	// "     3  ldc <String \"SUCCESS\"> [28]\n" +
-	// "     5  invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n"
-	// +
-	// "     8  aconst_null\n" +
-	// "     9  areturn\n" +
-	// "    10  astore_0 [e]\n" +
-	// "    11  goto 0\n" +
-	// "    14  astore_1\n" +
-	// "    15  getstatic java.lang.System.out : java.io.PrintStream [22]\n" +
-	// "    18  ldc <String \"SUCCESS\"> [28]\n" +
-	// "    20  invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n"
-	// +
-	// "    23  aload_1\n" +
-	// "    24  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 10, pc: 14] -> 14 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 11]\n" +
-	// "        [pc: 8, line: 7]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 11, line: 9]\n" +
-	// "        [pc: 14, line: 10]\n" +
-	// "        [pc: 15, line: 11]\n" +
-	// "        [pc: 23, line: 12]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 11, pc: 14] local: e index: 0 type: java.lang.Exception\n";
-	// } else {
-	// expectedOutput = "  // Method descriptor #19 ()Ljava/lang/Object;\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  static java.lang.Object foo();\n" +
-	// "     0  getstatic java.lang.System.out : java.io.PrintStream [22]\n" +
-	// "     3  ldc <String \"SUCCESS\"> [28]\n" +
-	// "     5  invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n"
-	// +
-	// "     8  aconst_null\n" +
-	// "     9  areturn\n" +
-	// "    10  astore_0 [e]\n" +
-	// "    11  getstatic java.lang.System.out : java.io.PrintStream [22]\n" +
-	// "    14  ldc <String \"SUCCESS\"> [28]\n" +
-	// "    16  invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n"
-	// +
-	// "    19  aconst_null\n" +
-	// "    20  areturn\n" +
-	// "    21  astore_1\n" +
-	// "    22  getstatic java.lang.System.out : java.io.PrintStream [22]\n" +
-	// "    25  ldc <String \"SUCCESS\"> [28]\n" +
-	// "    27  invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n"
-	// +
-	// "    30  aload_1\n" +
-	// "    31  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 10, pc: 11] -> 21 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 11]\n" +
-	// "        [pc: 8, line: 7]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 11, line: 11]\n" +
-	// "        [pc: 19, line: 9]\n" +
-	// "        [pc: 21, line: 10]\n" +
-	// "        [pc: 22, line: 11]\n" +
-	// "        [pc: 30, line: 12]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 11, pc: 21] local: e index: 0 type: java.lang.Exception\n"
-	// +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 10, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 21, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n";
-	// }
-	// }
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=129306
-	// public void test045() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	public void save() {\n" +
-	// "		try {\n" +
-	// "			Object warnings = null;\n" +
-	// "			Object contexts = null;\n" +
-	// "			try {\n" +
-	// "				System.out.print(\"[try]\");\n" +
-	// "				System.out.print(warnings); \n" +
-	// "				return;\n" +
-	// "			} catch (NullPointerException npe) {\n" +
-	// "				System.out.print(\"[npe]\");\n" +
-	// "				System.out.print(contexts); \n" +
-	// "				return;\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "			System.out.print(\"[e]\");\n" +
-	// "			return;\n" +
-	// "		} finally { \n" +
-	// "			int var = 0;\n" +
-	// "			System.out.print(\"[finally]\");\n" +
-	// "			Object o = null;\n" +
-	// "			o.toString();\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	public static void main(String[] args) {\n" +
-	// "		try {\n" +
-	// "			new X().save();\n" +
-	// "		} catch(NullPointerException e) {\n" +
-	// "			System.out.println(\"[caught npe]\");\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "[try]null[finally][caught npe]");
-	//	
-	// CompilerOptions compilerOptions = new
-	// CompilerOptions(this.getCompilerOptions());
-	// String expectedOutput = !compilerOptions.inlineJsrBytecode
-	// ? "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 8\n" +
-	// "  public void save();\n" +
-	// "     0  aconst_null\n" +
-	// "     1  astore_1 [warnings]\n" +
-	// "     2  aconst_null\n" +
-	// "     3  astore_2 [contexts]\n" +
-	// "     4  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     7  ldc <String \"[try]\"> [21]\n" +
-	// "     9  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    12  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    15  aload_1 [warnings]\n" +
-	// "    16  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n"
-	// +
-	// "    19  jsr 62\n" +
-	// "    22  return\n" +
-	// "    23  astore_3 [npe]\n" +
-	// "    24  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    27  ldc <String \"[npe]\"> [32]\n" +
-	// "    29  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    32  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    35  aload_2 [contexts]\n" +
-	// "    36  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n"
-	// +
-	// "    39  goto 19\n" +
-	// "    42  astore_1 [e]\n" +
-	// "    43  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    46  ldc <String \"[e]\"> [34]\n" +
-	// "    48  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    51  goto 19\n" +
-	// "    54  astore 5\n" +
-	// "    56  jsr 62\n" +
-	// "    59  aload 5\n" +
-	// "    61  athrow\n" +
-	// "    62  astore 4\n" +
-	// "    64  iconst_0\n" +
-	// "    65  istore 6 [var]\n" +
-	// "    67  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    70  ldc <String \"[finally]\"> [36]\n" +
-	// "    72  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    75  aconst_null\n" +
-	// "    76  astore 7 [o]\n" +
-	// "    78  aload 7 [o]\n" +
-	// "    80  invokevirtual java.lang.Object.toString() : java.lang.String [38]\n"
-	// +
-	// "    83  pop\n" +
-	// "    84  ret 4\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 4, pc: 19] -> 23 when : java.lang.NullPointerException\n" +
-	// "        [pc: 0, pc: 22] -> 42 when : java.lang.Exception\n" +
-	// "        [pc: 23, pc: 42] -> 42 when : java.lang.Exception\n" +
-	// "        [pc: 0, pc: 22] -> 54 when : any\n" +
-	// "        [pc: 23, pc: 54] -> 54 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 2, line: 5]\n" +
-	// "        [pc: 4, line: 7]\n" +
-	// "        [pc: 12, line: 8]\n" +
-	// "        [pc: 19, line: 9]\n" +
-	// "        [pc: 23, line: 10]\n" +
-	// "        [pc: 24, line: 11]\n" +
-	// "        [pc: 32, line: 12]\n" +
-	// "        [pc: 39, line: 13]\n" +
-	// "        [pc: 42, line: 15]\n" +
-	// "        [pc: 43, line: 16]\n" +
-	// "        [pc: 51, line: 17]\n" +
-	// "        [pc: 54, line: 18]\n" +
-	// "        [pc: 59, line: 23]\n" +
-	// "        [pc: 62, line: 18]\n" +
-	// "        [pc: 64, line: 19]\n" +
-	// "        [pc: 67, line: 20]\n" +
-	// "        [pc: 75, line: 21]\n" +
-	// "        [pc: 78, line: 22]\n" +
-	// "        [pc: 84, line: 23]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 86] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 42] local: warnings index: 1 type: java.lang.Object\n"
-	// +
-	// "        [pc: 4, pc: 42] local: contexts index: 2 type: java.lang.Object\n"
-	// +
-	// "        [pc: 24, pc: 42] local: npe index: 3 type: java.lang.NullPointerException\n"
-	// +
-	// "        [pc: 43, pc: 54] local: e index: 1 type: java.lang.Exception\n"
-	// +
-	// "        [pc: 67, pc: 84] local: var index: 6 type: int\n" +
-	// "        [pc: 78, pc: 84] local: o index: 7 type: java.lang.Object\n"
-	// : null;
-	//
-	// if (expectedOutput == null) {
-	// if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) {
-	// expectedOutput = "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 7\n" +
-	// "  public void save();\n" +
-	// "     0  aconst_null\n" +
-	// "     1  astore_1 [warnings]\n" +
-	// "     2  aconst_null\n" +
-	// "     3  astore_2 [contexts]\n" +
-	// "     4  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     7  ldc <String \"[try]\"> [21]\n" +
-	// "     9  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    12  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    15  aload_1 [warnings]\n" +
-	// "    16  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n"
-	// +
-	// "    19  iconst_0\n" +
-	// "    20  istore 5 [var]\n" +
-	// "    22  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    25  ldc <String \"[finally]\"> [32]\n" +
-	// "    27  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    30  aconst_null\n" +
-	// "    31  astore 6 [o]\n" +
-	// "    33  aload 6 [o]\n" +
-	// "    35  invokevirtual java.lang.Object.toString() : java.lang.String [34]\n"
-	// +
-	// "    38  pop\n" +
-	// "    39  return\n" +
-	// "    40  astore_3 [npe]\n" +
-	// "    41  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    44  ldc <String \"[npe]\"> [38]\n" +
-	// "    46  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    49  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    52  aload_2 [contexts]\n" +
-	// "    53  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n"
-	// +
-	// "    56  goto 19\n" +
-	// "    59  astore_1 [e]\n" +
-	// "    60  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    63  ldc <String \"[e]\"> [40]\n" +
-	// "    65  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    68  goto 19\n" +
-	// "    71  astore 4\n" +
-	// "    73  iconst_0\n" +
-	// "    74  istore 5 [var]\n" +
-	// "    76  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    79  ldc <String \"[finally]\"> [32]\n" +
-	// "    81  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    84  aconst_null\n" +
-	// "    85  astore 6 [o]\n" +
-	// "    87  aload 6 [o]\n" +
-	// "    89  invokevirtual java.lang.Object.toString() : java.lang.String [34]\n"
-	// +
-	// "    92  pop\n" +
-	// "    93  aload 4\n" +
-	// "    95  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 4, pc: 19] -> 40 when : java.lang.NullPointerException\n" +
-	// "        [pc: 0, pc: 19] -> 59 when : java.lang.Exception\n" +
-	// "        [pc: 40, pc: 59] -> 59 when : java.lang.Exception\n" +
-	// "        [pc: 0, pc: 19] -> 71 when : any\n" +
-	// "        [pc: 40, pc: 71] -> 71 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 2, line: 5]\n" +
-	// "        [pc: 4, line: 7]\n" +
-	// "        [pc: 12, line: 8]\n" +
-	// "        [pc: 19, line: 19]\n" +
-	// "        [pc: 22, line: 20]\n" +
-	// "        [pc: 30, line: 21]\n" +
-	// "        [pc: 33, line: 22]\n" +
-	// "        [pc: 39, line: 9]\n" +
-	// "        [pc: 40, line: 10]\n" +
-	// "        [pc: 41, line: 11]\n" +
-	// "        [pc: 49, line: 12]\n" +
-	// "        [pc: 56, line: 13]\n" +
-	// "        [pc: 59, line: 15]\n" +
-	// "        [pc: 60, line: 16]\n" +
-	// "        [pc: 68, line: 17]\n" +
-	// "        [pc: 71, line: 18]\n" +
-	// "        [pc: 73, line: 19]\n" +
-	// "        [pc: 76, line: 20]\n" +
-	// "        [pc: 84, line: 21]\n" +
-	// "        [pc: 87, line: 22]\n" +
-	// "        [pc: 93, line: 23]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 96] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 59] local: warnings index: 1 type: java.lang.Object\n"
-	// +
-	// "        [pc: 4, pc: 59] local: contexts index: 2 type: java.lang.Object\n"
-	// +
-	// "        [pc: 41, pc: 59] local: npe index: 3 type: java.lang.NullPointerException\n"
-	// +
-	// "        [pc: 60, pc: 71] local: e index: 1 type: java.lang.Exception\n"
-	// +
-	// "        [pc: 22, pc: 39] local: var index: 5 type: int\n" +
-	// "        [pc: 76, pc: 93] local: var index: 5 type: int\n" +
-	// "        [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" +
-	// "        [pc: 87, pc: 93] local: o index: 6 type: java.lang.Object\n";
-	// } else {
-	// expectedOutput = "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 7\n" +
-	// "  public void save();\n" +
-	// "      0  aconst_null\n" +
-	// "      1  astore_1 [warnings]\n" +
-	// "      2  aconst_null\n" +
-	// "      3  astore_2 [contexts]\n" +
-	// "      4  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "      7  ldc <String \"[try]\"> [21]\n" +
-	// "      9  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "     12  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     15  aload_1 [warnings]\n" +
-	// "     16  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n"
-	// +
-	// "     19  iconst_0\n" +
-	// "     20  istore 5 [var]\n" +
-	// "     22  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     25  ldc <String \"[finally]\"> [32]\n" +
-	// "     27  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "     30  aconst_null\n" +
-	// "     31  astore 6 [o]\n" +
-	// "     33  aload 6 [o]\n" +
-	// "     35  invokevirtual java.lang.Object.toString() : java.lang.String [34]\n"
-	// +
-	// "     38  pop\n" +
-	// "     39  return\n" +
-	// "     40  astore_3 [npe]\n" +
-	// "     41  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     44  ldc <String \"[npe]\"> [38]\n" +
-	// "     46  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "     49  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     52  aload_2 [contexts]\n" +
-	// "     53  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n"
-	// +
-	// "     56  iconst_0\n" +
-	// "     57  istore 5 [var]\n" +
-	// "     59  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     62  ldc <String \"[finally]\"> [32]\n" +
-	// "     64  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "     67  aconst_null\n" +
-	// "     68  astore 6 [o]\n" +
-	// "     70  aload 6 [o]\n" +
-	// "     72  invokevirtual java.lang.Object.toString() : java.lang.String [34]\n"
-	// +
-	// "     75  pop\n" +
-	// "     76  return\n" +
-	// "     77  astore_1 [e]\n" +
-	// "     78  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     81  ldc <String \"[e]\"> [40]\n" +
-	// "     83  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "     86  iconst_0\n" +
-	// "     87  istore 5 [var]\n" +
-	// "     89  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "     92  ldc <String \"[finally]\"> [32]\n" +
-	// "     94  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "     97  aconst_null\n" +
-	// "     98  astore 6 [o]\n" +
-	// "    100  aload 6 [o]\n" +
-	// "    102  invokevirtual java.lang.Object.toString() : java.lang.String [34]\n"
-	// +
-	// "    105  pop\n" +
-	// "    106  return\n" +
-	// "    107  astore 4\n" +
-	// "    109  iconst_0\n" +
-	// "    110  istore 5 [var]\n" +
-	// "    112  getstatic java.lang.System.out : java.io.PrintStream [15]\n" +
-	// "    115  ldc <String \"[finally]\"> [32]\n" +
-	// "    117  invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n"
-	// +
-	// "    120  aconst_null\n" +
-	// "    121  astore 6 [o]\n" +
-	// "    123  aload 6 [o]\n" +
-	// "    125  invokevirtual java.lang.Object.toString() : java.lang.String [34]\n"
-	// +
-	// "    128  pop\n" +
-	// "    129  aload 4\n" +
-	// "    131  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 4, pc: 19] -> 40 when : java.lang.NullPointerException\n" +
-	// "        [pc: 0, pc: 19] -> 77 when : java.lang.Exception\n" +
-	// "        [pc: 40, pc: 56] -> 77 when : java.lang.Exception\n" +
-	// "        [pc: 0, pc: 19] -> 107 when : any\n" +
-	// "        [pc: 40, pc: 56] -> 107 when : any\n" +
-	// "        [pc: 77, pc: 86] -> 107 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 2, line: 5]\n" +
-	// "        [pc: 4, line: 7]\n" +
-	// "        [pc: 12, line: 8]\n" +
-	// "        [pc: 19, line: 19]\n" +
-	// "        [pc: 22, line: 20]\n" +
-	// "        [pc: 30, line: 21]\n" +
-	// "        [pc: 33, line: 22]\n" +
-	// "        [pc: 39, line: 9]\n" +
-	// "        [pc: 40, line: 10]\n" +
-	// "        [pc: 41, line: 11]\n" +
-	// "        [pc: 49, line: 12]\n" +
-	// "        [pc: 56, line: 19]\n" +
-	// "        [pc: 59, line: 20]\n" +
-	// "        [pc: 67, line: 21]\n" +
-	// "        [pc: 70, line: 22]\n" +
-	// "        [pc: 76, line: 13]\n" +
-	// "        [pc: 77, line: 15]\n" +
-	// "        [pc: 78, line: 16]\n" +
-	// "        [pc: 86, line: 19]\n" +
-	// "        [pc: 89, line: 20]\n" +
-	// "        [pc: 97, line: 21]\n" +
-	// "        [pc: 100, line: 22]\n" +
-	// "        [pc: 106, line: 17]\n" +
-	// "        [pc: 107, line: 18]\n" +
-	// "        [pc: 109, line: 19]\n" +
-	// "        [pc: 112, line: 20]\n" +
-	// "        [pc: 120, line: 21]\n" +
-	// "        [pc: 123, line: 22]\n" +
-	// "        [pc: 129, line: 23]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 132] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 77] local: warnings index: 1 type: java.lang.Object\n"
-	// +
-	// "        [pc: 4, pc: 77] local: contexts index: 2 type: java.lang.Object\n"
-	// +
-	// "        [pc: 41, pc: 77] local: npe index: 3 type: java.lang.NullPointerException\n"
-	// +
-	// "        [pc: 78, pc: 107] local: e index: 1 type: java.lang.Exception\n"
-	// +
-	// "        [pc: 22, pc: 39] local: var index: 5 type: int\n" +
-	// "        [pc: 59, pc: 76] local: var index: 5 type: int\n" +
-	// "        [pc: 89, pc: 106] local: var index: 5 type: int\n" +
-	// "        [pc: 112, pc: 129] local: var index: 5 type: int\n" +
-	// "        [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" +
-	// "        [pc: 70, pc: 76] local: o index: 6 type: java.lang.Object\n" +
-	// "        [pc: 100, pc: 106] local: o index: 6 type: java.lang.Object\n" +
-	// "        [pc: 123, pc: 129] local: o index: 6 type: java.lang.Object\n" +
-	// "      Stack map table: number of frames 3\n" +
-	// "        [pc: 40, full, stack: {java.lang.NullPointerException}, locals: {X, java.lang.Object, java.lang.Object}]\n"
-	// +
-	// "        [pc: 77, full, stack: {java.lang.Exception}, locals: {X}]\n" +
-	// "        [pc: 107, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n";
-	// }
-	// }
-	//
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=108180
-	// public void test046() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "    public static Object sanityCheckBug() {\n" +
-	// "        Object obj;\n" +
-	// "        try {\n" +
-	// "            obj = new Object();\n" +
-	// "            return obj;\n" +
-	// "        } finally {\n" +
-	// "             obj = null;\n" +
-	// "        }\n" +
-	// "    }\n" +
-	// "    public static void main(String[] arguments) {\n" +
-	// "		X.sanityCheckBug();\n" +
-	// "    }\n" +
-	// "}\n",
-	// },
-	// "");
-	//	
-	// CompilerOptions compilerOptions = new
-	// CompilerOptions(this.getCompilerOptions());
-	// String expectedOutput = !compilerOptions.inlineJsrBytecode
-	// ? "  // Method descriptor #15 ()Ljava/lang/Object;\n" +
-	// "  // Stack: 2, Locals: 4\n" +
-	// "  public static java.lang.Object sanityCheckBug();\n" +
-	// "     0  new java.lang.Object [3]\n" +
-	// "     3  dup\n" +
-	// "     4  invokespecial java.lang.Object() [8]\n" +
-	// "     7  astore_0 [obj]\n" +
-	// "     8  aload_0 [obj]\n" +
-	// "     9  astore_3\n" +
-	// "    10  jsr 21\n" +
-	// "    13  aload_3\n" +
-	// "    14  areturn\n" +
-	// "    15  astore_2\n" +
-	// "    16  jsr 21\n" +
-	// "    19  aload_2\n" +
-	// "    20  athrow\n" +
-	// "    21  astore_1\n" +
-	// "    22  aconst_null\n" +
-	// "    23  astore_0 [obj]\n" +
-	// "    24  ret 1\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 13] -> 15 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 8, line: 6]\n" +
-	// "        [pc: 15, line: 7]\n" +
-	// "        [pc: 19, line: 9]\n" +
-	// "        [pc: 21, line: 7]\n" +
-	// "        [pc: 22, line: 8]\n" +
-	// "        [pc: 24, line: 9]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 8, pc: 15] local: obj index: 0 type: java.lang.Object\n" +
-	// "        [pc: 24, pc: 26] local: obj index: 0 type: java.lang.Object\n"
-	// : null;
-	//
-	// if (expectedOutput == null) {
-	// if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) {
-	// expectedOutput = "  // Method descriptor #15 ()Ljava/lang/Object;\n" +
-	// "  // Stack: 2, Locals: 3\n" +
-	// "  public static java.lang.Object sanityCheckBug();\n" +
-	// "     0  new java.lang.Object [3]\n" +
-	// "     3  dup\n" +
-	// "     4  invokespecial java.lang.Object() [8]\n" +
-	// "     7  astore_0 [obj]\n" +
-	// "     8  aload_0 [obj]\n" +
-	// "     9  astore_2\n" +
-	// "    10  aconst_null\n" +
-	// "    11  astore_0 [obj]\n" +
-	// "    12  aload_2\n" +
-	// "    13  areturn\n" +
-	// "    14  astore_1\n" +
-	// "    15  aconst_null\n" +
-	// "    16  astore_0 [obj]\n" +
-	// "    17  aload_1\n" +
-	// "    18  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 10] -> 14 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 8, line: 6]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 12, line: 6]\n" +
-	// "        [pc: 14, line: 7]\n" +
-	// "        [pc: 15, line: 8]\n" +
-	// "        [pc: 17, line: 9]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 8, pc: 14] local: obj index: 0 type: java.lang.Object\n" +
-	// "        [pc: 17, pc: 19] local: obj index: 0 type: java.lang.Object\n";
-	// } else {
-	// expectedOutput = "  // Method descriptor #15 ()Ljava/lang/Object;\n" +
-	// "  // Stack: 2, Locals: 3\n" +
-	// "  public static java.lang.Object sanityCheckBug();\n" +
-	// "     0  new java.lang.Object [3]\n" +
-	// "     3  dup\n" +
-	// "     4  invokespecial java.lang.Object() [8]\n" +
-	// "     7  astore_0 [obj]\n" +
-	// "     8  aload_0 [obj]\n" +
-	// "     9  astore_2\n" +
-	// "    10  aconst_null\n" +
-	// "    11  astore_0 [obj]\n" +
-	// "    12  aload_2\n" +
-	// "    13  areturn\n" +
-	// "    14  astore_1\n" +
-	// "    15  aconst_null\n" +
-	// "    16  astore_0 [obj]\n" +
-	// "    17  aload_1\n" +
-	// "    18  athrow\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 10] -> 14 when : any\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 8, line: 6]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 12, line: 6]\n" +
-	// "        [pc: 14, line: 7]\n" +
-	// "        [pc: 15, line: 8]\n" +
-	// "        [pc: 17, line: 9]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 8, pc: 14] local: obj index: 0 type: java.lang.Object\n" +
-	// "        [pc: 17, pc: 19] local: obj index: 0 type: java.lang.Object\n";
-	// }
-	// }
-	//
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	public void test047() {
-		if (new CompilerOptions(getCompilerOptions()).complianceLevel <= ClassFileConstants.JDK1_3) {
-			this
-					.runNegativeTest(
-							new String[] {
-									"X.java",
-									"public class X {\n"
-											+ "        public static void main(String[] args) {\n"
-											+ "                try {\n"
-											+ "					if (false) throw null;\n"
-											+ "					throw new Object();\n"
-											+ "                } catch(Object o) {\n"
-											+ "                }\n"
-											+ "        }\n" + "}\n", },
-							"----------\n"
-									+ "1. ERROR in X.java (at line 4)\n"
-									+ "	if (false) throw null;\n"
-									+ "	                 ^^^^\n"
-									+ "Cannot throw null as an exception\n"
-									+ "----------\n"
-									+ "2. ERROR in X.java (at line 5)\n"
-									+ "	throw new Object();\n"
-									+ "	      ^^^^^^^^^^^^\n"
-									+ "No exception of type Object can be thrown; an exception type must be a subclass of Throwable\n"
-									+ "----------\n"
-									+ "3. ERROR in X.java (at line 6)\n"
-									+ "	} catch(Object o) {\n"
-									+ "	        ^^^^^^\n"
-									+ "No exception of type Object can be thrown; an exception type must be a subclass of Throwable\n"
-									+ "----------\n");
-			return;
-		}
-		this
-				.runNegativeTest(
-						new String[] {
-								"X.java",
-								"public class X {\n"
-										+ "        public static void main(String[] args) {\n"
-										+ "                try {\n"
-										+ "					if (false) throw null;\n"
-										+ "					throw new Object();\n"
-										+ "                } catch(Object o) {\n"
-										+ "                }\n" + "        }\n"
-										+ "}\n", },
-						"----------\n"
-								+ "1. ERROR in X.java (at line 5)\n"
-								+ "	throw new Object();\n"
-								+ "	      ^^^^^^^^^^^^\n"
-								+ "No exception of type Object can be thrown; an exception type must be a subclass of Throwable\n"
-								+ "----------\n"
-								+ "2. ERROR in X.java (at line 6)\n"
-								+ "	} catch(Object o) {\n"
-								+ "	        ^^^^^^\n"
-								+ "No exception of type Object can be thrown; an exception type must be a subclass of Throwable\n"
-								+ "----------\n");
-	}
-
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=114894
-	// public void test048() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	boolean bool() { return true; }\n" +
-	// "	void foo() {\n" +
-	// "		try {\n" +
-	// "			if (bool()) {\n" +
-	// "				return;\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	int foo2() {\n" +
-	// "		try {\n" +
-	// "			while (bool()) {\n" +
-	// "				return 0;\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "		return 1;\n" +
-	// "	}\n" +
-	// "	long foo3() {\n" +
-	// "		try {\n" +
-	// "			do {\n" +
-	// "				if (true) return 0L;\n" +
-	// "			} while (bool());\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "		return 1L;\n" +
-	// "	}	\n" +
-	// "	float foo4() {\n" +
-	// "		try {\n" +
-	// "			for (int i  = 0; bool(); i++) {\n" +
-	// "				return 0.0F;\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "		return 1.0F;\n" +
-	// "	}		\n" +
-	// "	double bar() {\n" +
-	// "		if (bool()) {\n" +
-	// "			if (bool())\n" +
-	// "				return 0.0;\n" +
-	// "		} else {\n" +
-	// "			if (bool()) {\n" +
-	// "				throw new NullPointerException();\n" +
-	// "			}\n" +
-	// "		}\n" +
-	// "		return 1.0;\n" +
-	// "	}\n" +
-	// "	void baz(int i) {\n" +
-	// "		if (bool()) {\n" +
-	// "			switch(i) {\n" +
-	// "				case 0 : return;\n" +
-	// "				default : break;\n" +
-	// "			}\n" +
-	// "		} else {\n" +
-	// "			bool();\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).complianceLevel <
-	// ClassFileConstants.JDK1_6
-	// ? "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 9\n" +
-	// "     7  return\n" +
-	// "     8  astore_1\n" +
-	// "     9  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 8 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 7, line: 6]\n" +
-	// "        [pc: 8, line: 8]\n" +
-	// "        [pc: 9, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 10] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #22 ()I\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  int foo2();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 10\n" +
-	// "     7  iconst_0\n" +
-	// "     8  ireturn\n" +
-	// "     9  astore_1\n" +
-	// "    10  iconst_1\n" +
-	// "    11  ireturn\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 9 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 13]\n" +
-	// "        [pc: 7, line: 14]\n" +
-	// "        [pc: 9, line: 16]\n" +
-	// "        [pc: 10, line: 18]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 12] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #24 ()J\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  long foo3();\n" +
-	// "    0  lconst_0\n" +
-	// "    1  lreturn\n" +
-	// "    2  astore_1\n" +
-	// "    3  lconst_1\n" +
-	// "    4  lreturn\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 23]\n" +
-	// "        [pc: 2, line: 25]\n" +
-	// "        [pc: 3, line: 27]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 5] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #26 ()F\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  float foo4();\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_1 [i]\n" +
-	// "     2  goto 7\n" +
-	// "     5  fconst_0\n" +
-	// "     6  freturn\n" +
-	// "     7  aload_0 [this]\n" +
-	// "     8  invokevirtual X.bool() : boolean [17]\n" +
-	// "    11  ifne 5\n" +
-	// "    14  goto 18\n" +
-	// "    17  astore_1\n" +
-	// "    18  fconst_1\n" +
-	// "    19  freturn\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 5] -> 17 when : java.lang.Exception\n" +
-	// "        [pc: 7, pc: 14] -> 17 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 31]\n" +
-	// "        [pc: 5, line: 32]\n" +
-	// "        [pc: 7, line: 31]\n" +
-	// "        [pc: 17, line: 34]\n" +
-	// "        [pc: 18, line: 36]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 20] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 14] local: i index: 1 type: int\n" +
-	// "  \n" +
-	// "  // Method descriptor #30 ()D\n" +
-	// "  // Stack: 2, Locals: 1\n" +
-	// "  double bar();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 16\n" +
-	// "     7  aload_0 [this]\n" +
-	// "     8  invokevirtual X.bool() : boolean [17]\n" +
-	// "    11  ifeq 31\n" +
-	// "    14  dconst_0\n" +
-	// "    15  dreturn\n" +
-	// "    16  aload_0 [this]\n" +
-	// "    17  invokevirtual X.bool() : boolean [17]\n" +
-	// "    20  ifeq 31\n" +
-	// "    23  new java.lang.NullPointerException [31]\n" +
-	// "    26  dup\n" +
-	// "    27  invokespecial java.lang.NullPointerException() [33]\n" +
-	// "    30  athrow\n" +
-	// "    31  dconst_1\n" +
-	// "    32  dreturn\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 39]\n" +
-	// "        [pc: 7, line: 40]\n" +
-	// "        [pc: 14, line: 41]\n" +
-	// "        [pc: 16, line: 43]\n" +
-	// "        [pc: 23, line: 44]\n" +
-	// "        [pc: 31, line: 47]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 33] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #35 (I)V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void baz(int i);\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 32\n" +
-	// "     7  iload_1 [i]\n" +
-	// "     8  tableswitch default: 29\n" +
-	// "          case 0: 28\n" +
-	// "    28  return\n" +
-	// "    29  goto 37\n" +
-	// "    32  aload_0 [this]\n" +
-	// "    33  invokevirtual X.bool() : boolean [17]\n" +
-	// "    36  pop\n" +
-	// "    37  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 50]\n" +
-	// "        [pc: 7, line: 51]\n" +
-	// "        [pc: 28, line: 52]\n" +
-	// "        [pc: 29, line: 53]\n" +
-	// "        [pc: 32, line: 56]\n" +
-	// "        [pc: 37, line: 58]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 38] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 38] local: i index: 1 type: int\n"
-	// :
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 9\n" +
-	// "     7  return\n" +
-	// "     8  astore_1\n" +
-	// "     9  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 8 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 7, line: 6]\n" +
-	// "        [pc: 8, line: 8]\n" +
-	// "        [pc: 9, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 10] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 8, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 9, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #23 ()I\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  int foo2();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 10\n" +
-	// "     7  iconst_0\n" +
-	// "     8  ireturn\n" +
-	// "     9  astore_1\n" +
-	// "    10  iconst_1\n" +
-	// "    11  ireturn\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 9 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 13]\n" +
-	// "        [pc: 7, line: 14]\n" +
-	// "        [pc: 9, line: 16]\n" +
-	// "        [pc: 10, line: 18]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 12] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 3\n" +
-	// "        [pc: 7, same]\n" +
-	// "        [pc: 9, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 10, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #25 ()J\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  long foo3();\n" +
-	// "    0  lconst_0\n" +
-	// "    1  lreturn\n" +
-	// "    2  astore_1\n" +
-	// "    3  lconst_1\n" +
-	// "    4  lreturn\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 23]\n" +
-	// "        [pc: 2, line: 25]\n" +
-	// "        [pc: 3, line: 27]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 5] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 3\n" +
-	// "        [pc: 0, same]\n" +
-	// "        [pc: 2, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 3, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #27 ()F\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  float foo4();\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_1 [i]\n" +
-	// "     2  goto 7\n" +
-	// "     5  fconst_0\n" +
-	// "     6  freturn\n" +
-	// "     7  aload_0 [this]\n" +
-	// "     8  invokevirtual X.bool() : boolean [17]\n" +
-	// "    11  ifne 5\n" +
-	// "    14  goto 18\n" +
-	// "    17  astore_1\n" +
-	// "    18  fconst_1\n" +
-	// "    19  freturn\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 5] -> 17 when : java.lang.Exception\n" +
-	// "        [pc: 7, pc: 14] -> 17 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 31]\n" +
-	// "        [pc: 5, line: 32]\n" +
-	// "        [pc: 7, line: 31]\n" +
-	// "        [pc: 17, line: 34]\n" +
-	// "        [pc: 18, line: 36]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 20] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 14] local: i index: 1 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 5, append: {int}]\n" +
-	// "        [pc: 7, same]\n" +
-	// "        [pc: 17, full, stack: {java.lang.Exception}, locals: {X}]\n" +
-	// "        [pc: 18, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #31 ()D\n" +
-	// "  // Stack: 2, Locals: 1\n" +
-	// "  double bar();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 16\n" +
-	// "     7  aload_0 [this]\n" +
-	// "     8  invokevirtual X.bool() : boolean [17]\n" +
-	// "    11  ifeq 31\n" +
-	// "    14  dconst_0\n" +
-	// "    15  dreturn\n" +
-	// "    16  aload_0 [this]\n" +
-	// "    17  invokevirtual X.bool() : boolean [17]\n" +
-	// "    20  ifeq 31\n" +
-	// "    23  new java.lang.NullPointerException [32]\n" +
-	// "    26  dup\n" +
-	// "    27  invokespecial java.lang.NullPointerException() [34]\n" +
-	// "    30  athrow\n" +
-	// "    31  dconst_1\n" +
-	// "    32  dreturn\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 39]\n" +
-	// "        [pc: 7, line: 40]\n" +
-	// "        [pc: 14, line: 41]\n" +
-	// "        [pc: 16, line: 43]\n" +
-	// "        [pc: 23, line: 44]\n" +
-	// "        [pc: 31, line: 47]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 33] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 16, same]\n" +
-	// "        [pc: 31, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #36 (I)V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void baz(int i);\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 32\n" +
-	// "     7  iload_1 [i]\n" +
-	// "     8  tableswitch default: 29\n" +
-	// "          case 0: 28\n" +
-	// "    28  return\n" +
-	// "    29  goto 37\n" +
-	// "    32  aload_0 [this]\n" +
-	// "    33  invokevirtual X.bool() : boolean [17]\n" +
-	// "    36  pop\n" +
-	// "    37  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 50]\n" +
-	// "        [pc: 7, line: 51]\n" +
-	// "        [pc: 28, line: 52]\n" +
-	// "        [pc: 29, line: 53]\n" +
-	// "        [pc: 32, line: 56]\n" +
-	// "        [pc: 37, line: 58]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 38] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 38] local: i index: 1 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 28, same]\n" +
-	// "        [pc: 29, same]\n" +
-	// "        [pc: 32, same]\n" +
-	// "        [pc: 37, same]\n";
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	//
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=114894 - variation
-	// public void test049() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	boolean bool() { return true; }\n" +
-	// "	void foo() {\n" +
-	// "		try {\n" +
-	// "			if (bool()) {\n" +
-	// "				throw new NullPointerException();\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	void foo2() {\n" +
-	// "		try {\n" +
-	// "			while (bool()) {\n" +
-	// "				throw new NullPointerException();\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	void foo3() {\n" +
-	// "		try {\n" +
-	// "			do {\n" +
-	// "				if (true) throw new NullPointerException();\n" +
-	// "			} while (bool());\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}	\n" +
-	// "	void foo4() {\n" +
-	// "		try {\n" +
-	// "			for (int i  = 0; bool(); i++) {\n" +
-	// "				throw new NullPointerException();\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}		\n" +
-	// "	void bar() {\n" +
-	// "		if (bool()) {\n" +
-	// "			if (bool())\n" +
-	// "				throw new NullPointerException();\n" +
-	// "		} else {\n" +
-	// "			if (bool()) {\n" +
-	// "				throw new NullPointerException();\n" +
-	// "			}\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	void baz(int i) {\n" +
-	// "		if (bool()) {\n" +
-	// "			switch(i) {\n" +
-	// "				case 0 : throw new NullPointerException();\n" +
-	// "				default : break;\n" +
-	// "			}\n" +
-	// "		} else {\n" +
-	// "			bool();\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).complianceLevel <
-	// ClassFileConstants.JDK1_6
-	// ? "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void foo();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 16\n" +
-	// "     7  new java.lang.NullPointerException [19]\n" +
-	// "    10  dup\n" +
-	// "    11  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    14  athrow\n" +
-	// "    15  astore_1\n" +
-	// "    16  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 15] -> 15 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 7, line: 6]\n" +
-	// "        [pc: 15, line: 8]\n" +
-	// "        [pc: 16, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 17] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void foo2();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 16\n" +
-	// "     7  new java.lang.NullPointerException [19]\n" +
-	// "    10  dup\n" +
-	// "    11  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    14  athrow\n" +
-	// "    15  astore_1\n" +
-	// "    16  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 15] -> 15 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 13]\n" +
-	// "        [pc: 7, line: 14]\n" +
-	// "        [pc: 15, line: 16]\n" +
-	// "        [pc: 16, line: 18]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 17] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void foo3();\n" +
-	// "     0  new java.lang.NullPointerException [19]\n" +
-	// "     3  dup\n" +
-	// "     4  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "     7  athrow\n" +
-	// "     8  astore_1\n" +
-	// "     9  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 8] -> 8 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 22]\n" +
-	// "        [pc: 8, line: 24]\n" +
-	// "        [pc: 9, line: 26]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 10] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void foo4();\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_1 [i]\n" +
-	// "     2  goto 13\n" +
-	// "     5  new java.lang.NullPointerException [19]\n" +
-	// "     8  dup\n" +
-	// "     9  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    12  athrow\n" +
-	// "    13  aload_0 [this]\n" +
-	// "    14  invokevirtual X.bool() : boolean [17]\n" +
-	// "    17  ifne 5\n" +
-	// "    20  goto 24\n" +
-	// "    23  astore_1\n" +
-	// "    24  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 20] -> 23 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 29]\n" +
-	// "        [pc: 5, line: 30]\n" +
-	// "        [pc: 13, line: 29]\n" +
-	// "        [pc: 23, line: 32]\n" +
-	// "        [pc: 24, line: 34]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 25] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 20] local: i index: 1 type: int\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 1\n" +
-	// "  void bar();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 22\n" +
-	// "     7  aload_0 [this]\n" +
-	// "     8  invokevirtual X.bool() : boolean [17]\n" +
-	// "    11  ifeq 37\n" +
-	// "    14  new java.lang.NullPointerException [19]\n" +
-	// "    17  dup\n" +
-	// "    18  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    21  athrow\n" +
-	// "    22  aload_0 [this]\n" +
-	// "    23  invokevirtual X.bool() : boolean [17]\n" +
-	// "    26  ifeq 37\n" +
-	// "    29  new java.lang.NullPointerException [19]\n" +
-	// "    32  dup\n" +
-	// "    33  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    36  athrow\n" +
-	// "    37  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 36]\n" +
-	// "        [pc: 7, line: 37]\n" +
-	// "        [pc: 14, line: 38]\n" +
-	// "        [pc: 22, line: 40]\n" +
-	// "        [pc: 29, line: 41]\n" +
-	// "        [pc: 37, line: 44]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 38] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #31 (I)V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void baz(int i);\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 39\n" +
-	// "     7  iload_1 [i]\n" +
-	// "     8  tableswitch default: 36\n" +
-	// "          case 0: 28\n" +
-	// "    28  new java.lang.NullPointerException [19]\n" +
-	// "    31  dup\n" +
-	// "    32  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    35  athrow\n" +
-	// "    36  goto 44\n" +
-	// "    39  aload_0 [this]\n" +
-	// "    40  invokevirtual X.bool() : boolean [17]\n" +
-	// "    43  pop\n" +
-	// "    44  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 46]\n" +
-	// "        [pc: 7, line: 47]\n" +
-	// "        [pc: 28, line: 48]\n" +
-	// "        [pc: 36, line: 49]\n" +
-	// "        [pc: 39, line: 52]\n" +
-	// "        [pc: 44, line: 54]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 45] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 45] local: i index: 1 type: int\n"
-	// :
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void foo();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 16\n" +
-	// "     7  new java.lang.NullPointerException [19]\n" +
-	// "    10  dup\n" +
-	// "    11  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    14  athrow\n" +
-	// "    15  astore_1\n" +
-	// "    16  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 15] -> 15 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 7, line: 6]\n" +
-	// "        [pc: 15, line: 8]\n" +
-	// "        [pc: 16, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 17] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 15, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 16, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void foo2();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 16\n" +
-	// "     7  new java.lang.NullPointerException [19]\n" +
-	// "    10  dup\n" +
-	// "    11  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    14  athrow\n" +
-	// "    15  astore_1\n" +
-	// "    16  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 15] -> 15 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 13]\n" +
-	// "        [pc: 7, line: 14]\n" +
-	// "        [pc: 15, line: 16]\n" +
-	// "        [pc: 16, line: 18]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 17] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 3\n" +
-	// "        [pc: 7, same]\n" +
-	// "        [pc: 15, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 16, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void foo3();\n" +
-	// "     0  new java.lang.NullPointerException [19]\n" +
-	// "     3  dup\n" +
-	// "     4  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "     7  athrow\n" +
-	// "     8  astore_1\n" +
-	// "     9  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 8] -> 8 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 22]\n" +
-	// "        [pc: 8, line: 24]\n" +
-	// "        [pc: 9, line: 26]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 10] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 3\n" +
-	// "        [pc: 0, same]\n" +
-	// "        [pc: 8, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 9, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void foo4();\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_1 [i]\n" +
-	// "     2  goto 13\n" +
-	// "     5  new java.lang.NullPointerException [19]\n" +
-	// "     8  dup\n" +
-	// "     9  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    12  athrow\n" +
-	// "    13  aload_0 [this]\n" +
-	// "    14  invokevirtual X.bool() : boolean [17]\n" +
-	// "    17  ifne 5\n" +
-	// "    20  goto 24\n" +
-	// "    23  astore_1\n" +
-	// "    24  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 20] -> 23 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 29]\n" +
-	// "        [pc: 5, line: 30]\n" +
-	// "        [pc: 13, line: 29]\n" +
-	// "        [pc: 23, line: 32]\n" +
-	// "        [pc: 24, line: 34]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 25] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 20] local: i index: 1 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 5, append: {int}]\n" +
-	// "        [pc: 13, same]\n" +
-	// "        [pc: 23, full, stack: {java.lang.Exception}, locals: {X}]\n" +
-	// "        [pc: 24, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 2, Locals: 1\n" +
-	// "  void bar();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 22\n" +
-	// "     7  aload_0 [this]\n" +
-	// "     8  invokevirtual X.bool() : boolean [17]\n" +
-	// "    11  ifeq 37\n" +
-	// "    14  new java.lang.NullPointerException [19]\n" +
-	// "    17  dup\n" +
-	// "    18  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    21  athrow\n" +
-	// "    22  aload_0 [this]\n" +
-	// "    23  invokevirtual X.bool() : boolean [17]\n" +
-	// "    26  ifeq 37\n" +
-	// "    29  new java.lang.NullPointerException [19]\n" +
-	// "    32  dup\n" +
-	// "    33  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    36  athrow\n" +
-	// "    37  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 36]\n" +
-	// "        [pc: 7, line: 37]\n" +
-	// "        [pc: 14, line: 38]\n" +
-	// "        [pc: 22, line: 40]\n" +
-	// "        [pc: 29, line: 41]\n" +
-	// "        [pc: 37, line: 44]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 38] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 22, same]\n" +
-	// "        [pc: 37, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #32 (I)V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  void baz(int i);\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 39\n" +
-	// "     7  iload_1 [i]\n" +
-	// "     8  tableswitch default: 36\n" +
-	// "          case 0: 28\n" +
-	// "    28  new java.lang.NullPointerException [19]\n" +
-	// "    31  dup\n" +
-	// "    32  invokespecial java.lang.NullPointerException() [21]\n" +
-	// "    35  athrow\n" +
-	// "    36  goto 44\n" +
-	// "    39  aload_0 [this]\n" +
-	// "    40  invokevirtual X.bool() : boolean [17]\n" +
-	// "    43  pop\n" +
-	// "    44  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 46]\n" +
-	// "        [pc: 7, line: 47]\n" +
-	// "        [pc: 28, line: 48]\n" +
-	// "        [pc: 36, line: 49]\n" +
-	// "        [pc: 39, line: 52]\n" +
-	// "        [pc: 44, line: 54]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 45] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 45] local: i index: 1 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 28, same]\n" +
-	// "        [pc: 36, same]\n" +
-	// "        [pc: 39, same]\n" +
-	// "        [pc: 44, same]\n";
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=114894 - variation
-	// public void test050() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	boolean bool() { return true; }\n" +
-	// "	void foo() {\n" +
-	// "		check: try {\n" +
-	// "			if (bool()) {\n" +
-	// "				break check;\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	void foo2() {\n" +
-	// "		check: try {\n" +
-	// "			while (bool()) {\n" +
-	// "				break check;\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	void foo3() {\n" +
-	// "		check: try {\n" +
-	// "			do {\n" +
-	// "				if (true) break check;\n" +
-	// "			} while (bool());\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}	\n" +
-	// "	void foo4() {\n" +
-	// "		check: try {\n" +
-	// "			for (int i  = 0; bool(); i++) {\n" +
-	// "				break check;\n" +
-	// "			}\n" +
-	// "		} catch (Exception e) {\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	void bar() {\n" +
-	// "		check: if (bool()) {\n" +
-	// "			if (bool())\n" +
-	// "				break check;\n" +
-	// "		} else {\n" +
-	// "			if (bool()) {\n" +
-	// "				break check;\n" +
-	// "			}\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "	void baz(int i) {\n" +
-	// "		check: if (bool()) {\n" +
-	// "			switch(i) {\n" +
-	// "				case 0 : break check;\n" +
-	// "				default : break;\n" +
-	// "			}\n" +
-	// "		} else {\n" +
-	// "			bool();\n" +
-	// "		}\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).complianceLevel <
-	// ClassFileConstants.JDK1_6
-	// ? "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 11\n" +
-	// "     7  goto 11\n" +
-	// "    10  astore_1\n" +
-	// "    11  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 10 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 7, line: 6]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 11, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 12] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo2();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 11\n" +
-	// "     7  goto 11\n" +
-	// "    10  astore_1\n" +
-	// "    11  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 10 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 13]\n" +
-	// "        [pc: 7, line: 14]\n" +
-	// "        [pc: 10, line: 16]\n" +
-	// "        [pc: 11, line: 18]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 12] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo3();\n" +
-	// "    0  goto 4\n" +
-	// "    3  astore_1\n" +
-	// "    4  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 22]\n" +
-	// "        [pc: 3, line: 24]\n" +
-	// "        [pc: 4, line: 26]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 5] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo4();\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_1 [i]\n" +
-	// "     2  aload_0 [this]\n" +
-	// "     3  invokevirtual X.bool() : boolean [17]\n" +
-	// "     6  ifne 13\n" +
-	// "     9  goto 13\n" +
-	// "    12  astore_1\n" +
-	// "    13  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 9] -> 12 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 29]\n" +
-	// "        [pc: 12, line: 32]\n" +
-	// "        [pc: 13, line: 34]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 14] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 9] local: i index: 1 type: int\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 1\n" +
-	// "  void bar();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 17\n" +
-	// "     7  aload_0 [this]\n" +
-	// "     8  invokevirtual X.bool() : boolean [17]\n" +
-	// "    11  ifeq 24\n" +
-	// "    14  goto 24\n" +
-	// "    17  aload_0 [this]\n" +
-	// "    18  invokevirtual X.bool() : boolean [17]\n" +
-	// "    21  ifeq 24\n" +
-	// "    24  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 36]\n" +
-	// "        [pc: 7, line: 37]\n" +
-	// "        [pc: 14, line: 38]\n" +
-	// "        [pc: 17, line: 40]\n" +
-	// "        [pc: 24, line: 44]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 25] local: this index: 0 type: X\n" +
-	// "  \n" +
-	// "  // Method descriptor #28 (I)V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void baz(int i);\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 34\n" +
-	// "     7  iload_1 [i]\n" +
-	// "     8  tableswitch default: 31\n" +
-	// "          case 0: 28\n" +
-	// "    28  goto 39\n" +
-	// "    31  goto 39\n" +
-	// "    34  aload_0 [this]\n" +
-	// "    35  invokevirtual X.bool() : boolean [17]\n" +
-	// "    38  pop\n" +
-	// "    39  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 46]\n" +
-	// "        [pc: 7, line: 47]\n" +
-	// "        [pc: 28, line: 48]\n" +
-	// "        [pc: 31, line: 49]\n" +
-	// "        [pc: 34, line: 52]\n" +
-	// "        [pc: 39, line: 54]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 40] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 40] local: i index: 1 type: int\n"
-	// :
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 11\n" +
-	// "     7  goto 11\n" +
-	// "    10  astore_1\n" +
-	// "    11  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 10 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 7, line: 6]\n" +
-	// "        [pc: 10, line: 8]\n" +
-	// "        [pc: 11, line: 10]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 12] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 10, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 11, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo2();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 11\n" +
-	// "     7  goto 11\n" +
-	// "    10  astore_1\n" +
-	// "    11  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 7] -> 10 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 13]\n" +
-	// "        [pc: 7, line: 14]\n" +
-	// "        [pc: 10, line: 16]\n" +
-	// "        [pc: 11, line: 18]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 12] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 3\n" +
-	// "        [pc: 7, same]\n" +
-	// "        [pc: 10, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 11, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo3();\n" +
-	// "    0  goto 4\n" +
-	// "    3  astore_1\n" +
-	// "    4  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 22]\n" +
-	// "        [pc: 3, line: 24]\n" +
-	// "        [pc: 4, line: 26]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 5] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 3\n" +
-	// "        [pc: 0, same]\n" +
-	// "        [pc: 3, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 4, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo4();\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_1 [i]\n" +
-	// "     2  aload_0 [this]\n" +
-	// "     3  invokevirtual X.bool() : boolean [17]\n" +
-	// "     6  ifne 13\n" +
-	// "     9  goto 13\n" +
-	// "    12  astore_1\n" +
-	// "    13  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 9] -> 12 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 29]\n" +
-	// "        [pc: 12, line: 32]\n" +
-	// "        [pc: 13, line: 34]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 14] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 9] local: i index: 1 type: int\n" +
-	// "      Stack map table: number of frames 3\n" +
-	// "        [pc: 2, append: {int}]\n" +
-	// "        [pc: 12, full, stack: {java.lang.Exception}, locals: {X}]\n" +
-	// "        [pc: 13, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 1, Locals: 1\n" +
-	// "  void bar();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 17\n" +
-	// "     7  aload_0 [this]\n" +
-	// "     8  invokevirtual X.bool() : boolean [17]\n" +
-	// "    11  ifeq 24\n" +
-	// "    14  goto 24\n" +
-	// "    17  aload_0 [this]\n" +
-	// "    18  invokevirtual X.bool() : boolean [17]\n" +
-	// "    21  ifeq 24\n" +
-	// "    24  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 36]\n" +
-	// "        [pc: 7, line: 37]\n" +
-	// "        [pc: 14, line: 38]\n" +
-	// "        [pc: 17, line: 40]\n" +
-	// "        [pc: 24, line: 44]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 25] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 2\n" +
-	// "        [pc: 17, same]\n" +
-	// "        [pc: 24, same]\n" +
-	// "  \n" +
-	// "  // Method descriptor #29 (I)V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void baz(int i);\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  invokevirtual X.bool() : boolean [17]\n" +
-	// "     4  ifeq 34\n" +
-	// "     7  iload_1 [i]\n" +
-	// "     8  tableswitch default: 31\n" +
-	// "          case 0: 28\n" +
-	// "    28  goto 39\n" +
-	// "    31  goto 39\n" +
-	// "    34  aload_0 [this]\n" +
-	// "    35  invokevirtual X.bool() : boolean [17]\n" +
-	// "    38  pop\n" +
-	// "    39  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 46]\n" +
-	// "        [pc: 7, line: 47]\n" +
-	// "        [pc: 28, line: 48]\n" +
-	// "        [pc: 31, line: 49]\n" +
-	// "        [pc: 34, line: 52]\n" +
-	// "        [pc: 39, line: 54]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 40] local: this index: 0 type: X\n" +
-	// "        [pc: 0, pc: 40] local: i index: 1 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 28, same]\n" +
-	// "        [pc: 31, same]\n" +
-	// "        [pc: 34, same]\n" +
-	// "        [pc: 39, same]\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=114894 - variation
-	// public void test051() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	public static void main(String argv[]) {\n" +
-	// "		System.out.println(\"[count=\" + count() + \"]\");\n" +
-	// "	}\n" +
-	// "	static int count() {\n" +
-	// "		int count = 0;\n" +
-	// "		try {\n" +
-	// "			for (int i = 0;;) {\n" +
-	// "				count++;\n" +
-	// "				if (i++ > 10) \n" +
-	// "					break; \n" +
-	// "			}\n" +
-	// "		} catch(Exception e) {\n" +
-	// "		}\n" +
-	// "		return count;\n" +
-	// "	}\n" +
-	// "}\n",
-	// },
-	// "[count=12]");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).complianceLevel <
-	// ClassFileConstants.JDK1_6
-	// ? "  // Method descriptor #32 ()I\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  static int count();\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_0 [count]\n" +
-	// "     2  iconst_0\n" +
-	// "     3  istore_1 [i]\n" +
-	// "     4  iinc 0 1 [count]\n" +
-	// "     7  iload_1 [i]\n" +
-	// "     8  iinc 1 1 [i]\n" +
-	// "    11  bipush 10\n" +
-	// "    13  if_icmple 4\n" +
-	// "    16  goto 20\n" +
-	// "    19  astore_1\n" +
-	// "    20  iload_0 [count]\n" +
-	// "    21  ireturn\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 2, pc: 16] -> 19 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 6]\n" +
-	// "        [pc: 2, line: 8]\n" +
-	// "        [pc: 4, line: 9]\n" +
-	// "        [pc: 7, line: 10]\n" +
-	// "        [pc: 16, line: 11]\n" +
-	// "        [pc: 19, line: 13]\n" +
-	// "        [pc: 20, line: 15]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 2, pc: 22] local: count index: 0 type: int\n" +
-	// "        [pc: 4, pc: 16] local: i index: 1 type: int\n"
-	// :
-	// "  // Method descriptor #32 ()I\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  static int count();\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_0 [count]\n" +
-	// "     2  iconst_0\n" +
-	// "     3  istore_1 [i]\n" +
-	// "     4  iinc 0 1 [count]\n" +
-	// "     7  iload_1 [i]\n" +
-	// "     8  iinc 1 1 [i]\n" +
-	// "    11  bipush 10\n" +
-	// "    13  if_icmple 4\n" +
-	// "    16  goto 20\n" +
-	// "    19  astore_1\n" +
-	// "    20  iload_0 [count]\n" +
-	// "    21  ireturn\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 2, pc: 16] -> 19 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 6]\n" +
-	// "        [pc: 2, line: 8]\n" +
-	// "        [pc: 4, line: 9]\n" +
-	// "        [pc: 7, line: 10]\n" +
-	// "        [pc: 16, line: 11]\n" +
-	// "        [pc: 19, line: 13]\n" +
-	// "        [pc: 20, line: 15]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 2, pc: 22] local: count index: 0 type: int\n" +
-	// "        [pc: 4, pc: 16] local: i index: 1 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 4, append: {int, int}]\n" +
-	// "        [pc: 16, chop 1 local(s)]\n" +
-	// "        [pc: 19, same_locals_1_stack_item, stack: {java.lang.Exception}]\n"
-	// +
-	// "        [pc: 20, same]\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=114894 - variation
-	// public void test052() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	public static void main(String argv[]) {\n" +
-	// "		try {\n" +
-	// "			for (int i = 0; i < 0; i++)\n" +
-	// "				do ;  while (true);\n" +
-	// "		} catch(Exception e) {\n" +
-	// "		}\n" +
-	// "	} \n" +
-	// "}\n",
-	// },
-	// "");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).complianceLevel <
-	// ClassFileConstants.JDK1_6
-	// ? "  // Method descriptor #15 ([Ljava/lang/String;)V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  public static void main(java.lang.String[] argv);\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_1 [i]\n" +
-	// "     2  goto 8\n" +
-	// "     5  goto 5\n" +
-	// "     8  iload_1 [i]\n" +
-	// "     9  iflt 5\n" +
-	// "    12  goto 16\n" +
-	// "    15  astore_1\n" +
-	// "    16  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 12] -> 15 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 5, line: 5]\n" +
-	// "        [pc: 8, line: 4]\n" +
-	// "        [pc: 15, line: 6]\n" +
-	// "        [pc: 16, line: 8]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 17] local: argv index: 0 type: java.lang.String[]\n"
-	// +
-	// "        [pc: 2, pc: 12] local: i index: 1 type: int\n"
-	// :
-	// "  // Method descriptor #15 ([Ljava/lang/String;)V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  public static void main(java.lang.String[] argv);\n" +
-	// "     0  iconst_0\n" +
-	// "     1  istore_1 [i]\n" +
-	// "     2  goto 8\n" +
-	// "     5  goto 5\n" +
-	// "     8  iload_1 [i]\n" +
-	// "     9  iflt 5\n" +
-	// "    12  goto 16\n" +
-	// "    15  astore_1\n" +
-	// "    16  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 12] -> 15 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "        [pc: 5, line: 5]\n" +
-	// "        [pc: 8, line: 4]\n" +
-	// "        [pc: 15, line: 6]\n" +
-	// "        [pc: 16, line: 8]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 17] local: argv index: 0 type: java.lang.String[]\n"
-	// +
-	// "        [pc: 2, pc: 12] local: i index: 1 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 5, append: {int}]\n" +
-	// "        [pc: 8, same]\n" +
-	// "        [pc: 15, full, stack: {java.lang.Exception}, locals: {java.lang.String[]}]\n"
-	// +
-	// "        [pc: 16, same]\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=114894 - variation
-	// public void test053() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "	public static void main(String[] args) {\n" +
-	// "		try {\n" +
-	// "			final int val;\n" +
-	// "			for (val = 7; val > 0;) break;\n" +
-	// "			System.out.println(val);\n" +
-	// "		} catch(Exception e) {\n" +
-	// "		}\n" +
-	// "	}	\n" +
-	// "}\n",
-	// },
-	// "7");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).complianceLevel <
-	// ClassFileConstants.JDK1_6
-	// ? "  // Method descriptor #15 ([Ljava/lang/String;)V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  public static void main(java.lang.String[] args);\n" +
-	// "     0  bipush 7\n" +
-	// "     2  istore_1 [val]\n" +
-	// "     3  iload_1 [val]\n" +
-	// "     4  ifgt 7\n" +
-	// "     7  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    10  iload_1 [val]\n" +
-	// "    11  invokevirtual java.io.PrintStream.println(int) : void [22]\n" +
-	// "    14  goto 18\n" +
-	// "    17  astore_1\n" +
-	// "    18  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 14] -> 17 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 7, line: 6]\n" +
-	// "        [pc: 17, line: 7]\n" +
-	// "        [pc: 18, line: 9]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 19] local: args index: 0 type: java.lang.String[]\n"
-	// +
-	// "        [pc: 3, pc: 17] local: val index: 1 type: int\n"
-	// :
-	// "  // Method descriptor #15 ([Ljava/lang/String;)V\n" +
-	// "  // Stack: 2, Locals: 2\n" +
-	// "  public static void main(java.lang.String[] args);\n" +
-	// "     0  bipush 7\n" +
-	// "     2  istore_1 [val]\n" +
-	// "     3  iload_1 [val]\n" +
-	// "     4  ifgt 7\n" +
-	// "     7  getstatic java.lang.System.out : java.io.PrintStream [16]\n" +
-	// "    10  iload_1 [val]\n" +
-	// "    11  invokevirtual java.io.PrintStream.println(int) : void [22]\n" +
-	// "    14  goto 18\n" +
-	// "    17  astore_1\n" +
-	// "    18  return\n" +
-	// "      Exception Table:\n" +
-	// "        [pc: 0, pc: 14] -> 17 when : java.lang.Exception\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 5]\n" +
-	// "        [pc: 7, line: 6]\n" +
-	// "        [pc: 17, line: 7]\n" +
-	// "        [pc: 18, line: 9]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 19] local: args index: 0 type: java.lang.String[]\n"
-	// +
-	// "        [pc: 3, pc: 17] local: val index: 1 type: int\n" +
-	// "      Stack map table: number of frames 4\n" +
-	// "        [pc: 3, append: {int}]\n" +
-	// "        [pc: 7, same]\n" +
-	// "        [pc: 17, full, stack: {java.lang.Exception}, locals: {java.lang.String[]}]\n"
-	// +
-	// "        [pc: 18, same]\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=114894 - variation
-	// public void test054() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// " X parent;\n" +
-	// " int kind;\n" +
-	// " static boolean F = false;\n" +
-	// " public static void main(String[] args) {\n" +
-	// "  X x = new X();\n" +
-	// "  x.kind = 2; \n" +
-	// "  try {\n" +
-	// "   x.foo();\n" +
-	// "  } catch(NullPointerException e) { \n" +
-	// "   System.out.println(\"SUCCESS\");\n" +
-	// "   return;\n" +
-	// "  }\n" +
-	// "  System.out.println(\"FAILED\");  \n" +
-	// " }\n" +
-	// " void foo() {\n" +
-	// "  X x = this;\n" +
-	// "  done : while (true) {\n" +
-	// "   switch (x.kind) {\n" +
-	// "    case 2 :\n" +
-	// "     if (F) {\n" +
-	// "      return;\n" +
-	// "     }\n" +
-	// "     break;\n" +
-	// "    case 3 :\n" +
-	// "     break done;\n" +
-	// "   }\n" +
-	// "   x = x.parent; // should throw npe\n" +
-	// "  }\n" +
-	// " } \n" +
-	// "}\n",
-	// },
-	// "SUCCESS");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).complianceLevel <
-	// ClassFileConstants.JDK1_6
-	// ? "  // Method descriptor #12 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  astore_1 [x]\n" +
-	// "     2  aload_1 [x]\n" +
-	// "     3  getfield X.kind : int [25]\n" +
-	// "     6  tableswitch default: 38\n" +
-	// "          case 2: 28\n" +
-	// "          case 3: 35\n" +
-	// "    28  getstatic X.F : boolean [14]\n" +
-	// "    31  ifeq 38\n" +
-	// "    34  return\n" +
-	// "    35  goto 46\n" +
-	// "    38  aload_1 [x]\n" +
-	// "    39  getfield X.parent : X [53]\n" +
-	// "    42  astore_1 [x]\n" +
-	// "    43  goto 2\n" +
-	// "    46  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 17]\n" +
-	// "        [pc: 2, line: 19]\n" +
-	// "        [pc: 28, line: 21]\n" +
-	// "        [pc: 34, line: 22]\n" +
-	// "        [pc: 35, line: 26]\n" +
-	// "        [pc: 38, line: 27]\n" +
-	// "        [pc: 39, line: 28]\n" +
-	// "        [pc: 43, line: 18]\n" +
-	// "        [pc: 46, line: 30]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 47] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 47] local: x index: 1 type: X\n"
-	// :
-	// "  // Method descriptor #12 ()V\n" +
-	// "  // Stack: 1, Locals: 2\n" +
-	// "  void foo();\n" +
-	// "     0  aload_0 [this]\n" +
-	// "     1  astore_1 [x]\n" +
-	// "     2  aload_1 [x]\n" +
-	// "     3  getfield X.kind : int [25]\n" +
-	// "     6  tableswitch default: 38\n" +
-	// "          case 2: 28\n" +
-	// "          case 3: 35\n" +
-	// "    28  getstatic X.F : boolean [14]\n" +
-	// "    31  ifeq 38\n" +
-	// "    34  return\n" +
-	// "    35  goto 46\n" +
-	// "    38  aload_1 [x]\n" +
-	// "    39  getfield X.parent : X [55]\n" +
-	// "    42  astore_1 [x]\n" +
-	// "    43  goto 2\n" +
-	// "    46  return\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 17]\n" +
-	// "        [pc: 2, line: 19]\n" +
-	// "        [pc: 28, line: 21]\n" +
-	// "        [pc: 34, line: 22]\n" +
-	// "        [pc: 35, line: 26]\n" +
-	// "        [pc: 38, line: 27]\n" +
-	// "        [pc: 39, line: 28]\n" +
-	// "        [pc: 43, line: 18]\n" +
-	// "        [pc: 46, line: 30]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 47] local: this index: 0 type: X\n" +
-	// "        [pc: 2, pc: 47] local: x index: 1 type: X\n" +
-	// "      Stack map table: number of frames 5\n" +
-	// "        [pc: 2, append: {X}]\n" +
-	// "        [pc: 28, same]\n" +
-	// "        [pc: 35, same]\n" +
-	// "        [pc: 38, same]\n" +
-	// "        [pc: 46, same]\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	// //https://bugs.eclipse.org/bugs/show_bug.cgi?id=114894 - variation
-	// public void test055() {
-	// this.runConformTest(
-	// new String[] {
-	// "X.java",
-	// "public class X {\n" +
-	// "\n" +
-	// "void foo5() {\n" +
-	// "  L : for (;;) {\n" +
-	// "    continue L; // good\n" +
-	// "  }\n" +
-	// "}\n" +
-	// "}\n",
-	// },
-	// "");
-	//	
-	// String expectedOutput = new
-	// CompilerOptions(this.getCompilerOptions()).complianceLevel <
-	// ClassFileConstants.JDK1_6
-	// ? "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 0, Locals: 1\n" +
-	// "  void foo5();\n" +
-	// "    0  goto 0\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 3] local: this index: 0 type: X\n"
-	// :
-	// "  // Method descriptor #6 ()V\n" +
-	// "  // Stack: 0, Locals: 1\n" +
-	// "  void foo5();\n" +
-	// "    0  goto 0\n" +
-	// "      Line numbers:\n" +
-	// "        [pc: 0, line: 4]\n" +
-	// "      Local variable table:\n" +
-	// "        [pc: 0, pc: 3] local: this index: 0 type: X\n" +
-	// "      Stack map table: number of frames 1\n" +
-	// "        [pc: 0, same]\n";
-	//	
-	// try {
-	// File f = new File(OUTPUT_DIR + File.separator + "X.class");
-	// byte[] classFileBytes =
-	// org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-	// ClassFileBytesDisassembler disassembler =
-	// ToolFactory.createDefaultClassFileBytesDisassembler();
-	// String result = disassembler.disassemble(classFileBytes, "\n",
-	// ClassFileBytesDisassembler.DETAILED);
-	// int index = result.indexOf(expectedOutput);
-	// if (index == -1 || expectedOutput.length() == 0) {
-	// System.out.println(Util.displayString(result, 3));
-	// }
-	// if (index == -1) {
-	// assertEquals("Wrong contents", expectedOutput, result);
-	// }
-	// } catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-	// assertTrue(false);
-	// } catch (IOException e) {
-	// assertTrue(false);
-	// }
-	// }
-	public void _test056() {
-		this
-				.runNegativeTest(
-						new String[] {
-								"p/BytecodeA.java",
-								"package p;\n"
-										+ "class BytecodeA {\n"
-										+ "  \n"
-										+ "int foo() { // good\n"
-										+ "  boolean b = true;\n"
-										+ "  if (b) {\n"
-										+ "    if (true)\n"
-										+ "      return 0;\n"
-										+ "  } else {\n"
-										+ "    if (true)\n"
-										+ "      return 1;\n"
-										+ "  }\n"
-										+ "  return 5;\n"
-										+ "}\n"
-										+ "int foo10() {\n"
-										+ "  try {\n"
-										+ "    //if (true)\n"
-										+ "      return 0;\n"
-										+ "  } catch (Exception e) {\n"
-										+ "    if (true)\n"
-										+ "      return 1;\n"
-										+ "  } finally {\n"
-										+ "    if (true)\n"
-										+ "      return 2;\n"
-										+ "  };\n"
-										+ "  return 1;\n"
-										+ "}   \n"
-										+ "int foo11() {\n"
-										+ "  synchronized (this) {\n"
-										+ "    if (true)\n"
-										+ "      return 1;\n"
-										+ "  };\n"
-										+ "  return 2;\n"
-										+ "} \n"
-										+ "int foo12() {\n"
-										+ "  for (;;)\n"
-										+ "    return 1;\n"
-										+ "}\n"
-										+ "int foo13() {\n"
-										+ "  for (;;)\n"
-										+ "    if (true)\n"
-										+ "      return 1;\n"
-										+ "}\n"
-										+ "int foo14() {\n"
-										+ "  for (int i = 1; i < 10; i++)\n"
-										+ "    if (true)\n"
-										+ "      return 1;\n"
-										+ "  return 2;\n"
-										+ "} \n"
-										+ "int foo15() {\n"
-										+ "  for (int i = 1; i < 10; i++)\n"
-										+ "    return 1;\n"
-										+ "  return 2;\n"
-										+ "}\n"
-										+ "int foo16() {\n"
-										+ "  final int i;\n"
-										+ "  while (true) {\n"
-										+ "    i = 1;\n"
-										+ "    if (true)\n"
-										+ "      break;\n"
-										+ "  };\n"
-										+ "  return 1;\n"
-										+ "}              \n"
-										+ "int foo17() {\n"
-										+ "  final int i;\n"
-										+ "  for (;;) {\n"
-										+ "    i = 1;\n"
-										+ "    if (true)\n"
-										+ "      break;\n"
-										+ "  };\n"
-										+ "  return 1;\n"
-										+ "} \n"
-										+ "void foo2() {\n"
-										+ "  L1 :;  // good\n"
-										+ "}\n"
-										+ "void foo20() {\n"
-										+ "  if (true)\n"
-										+ "    return;\n"
-										+ "} \n"
-										+ "void foo3() {\n"
-										+ "  L : if (true) {\n"
-										+ "    for (;;) {\n"
-										+ "      continue L; // bad\n"
-										+ "    }\n"
-										+ "  }\n"
-										+ "}   \n"
-										+ "void foo4() {\n"
-										+ "  L : if (true) {\n"
-										+ "    try {\n"
-										+ "      for (;;) {\n"
-										+ "        continue L; // bad\n"
-										+ "      }\n"
-										+ "    } finally {\n"
-										+ "      return;\n"
-										+ "    }\n"
-										+ "  } \n"
-										+ "}\n"
-										+ "void foo5() {\n"
-										+ "  L : for (;;) {\n"
-										+ "    continue L; // good\n"
-										+ "  }\n"
-										+ "}\n"
-										+ "void foo5bis() {\n"
-										+ "  L : K : for (;;) {\n"
-										+ "    continue L; // good\n"
-										+ "  }\n"
-										+ "}\n"
-										+ "void foo6(){\n"
-										+ "  int i;\n"
-										+ "  boolean a[] = new boolean[5];\n"
-										+ "  a[i=1] = i > 0; // good\n"
-										+ "}    \n"
-										+ "void foo7(){\n"
-										+ "  Object x[];\n"
-										+ "  x [1] = (x = new Object[5]); // bad\n"
-										+ "}    \n"
-										+ "void foo8() {\n"
-										+ "  try {\n"
-										+ "  } catch (java.io.IOException e) {\n"
-										+ "    foo(); // unreachable\n"
-										+ "  }\n"
-										+ "}\n"
-										+ "void foo9() {\n"
-										+ "  try {\n"
-										+ "  } catch (NullPointerException e) {\n"
-										+ "    foo(); // ok\n"
-										+ "  }\n"
-										+ "}\n"
-										+ "    public static void main(String args[]) {\n"
-										+ "      BytecodeA a = new BytecodeA();\n"
-										+ "      a.foo10();\n" + "    }\n"
-										+ "}", },
-						"----------\n"
-								+ "1. WARNING in p\\BytecodeA.java (at line 74)\n"
-								+ "	L1 :;  // good\n"
-								+ "	^^\n"
-								+ "The label L1 is never explicitly referenced\n"
-								+ "----------\n"
-								+ "2. ERROR in p\\BytecodeA.java (at line 83)\n"
-								+ "	continue L; // bad\n"
-								+ "	^^^^^^^^^^\n"
-								+ "continue cannot be used outside of a loop\n"
-								+ "----------\n"
-								+ "3. ERROR in p\\BytecodeA.java (at line 91)\n"
-								+ "	continue L; // bad\n"
-								+ "	^^^^^^^^^^\n"
-								+ "continue cannot be used outside of a loop\n"
-								+ "----------\n"
-								+ "4. WARNING in p\\BytecodeA.java (at line 93)\n"
-								+ "	} finally {\n"
-								+ "      return;\n"
-								+ "    }\n"
-								+ "	          ^^^^^^^^^^^^^^^^^^^^^\n"
-								+ "finally block does not complete normally\n"
-								+ "----------\n"
-								+ "5. WARNING in p\\BytecodeA.java (at line 104)\n"
-								+ "	L : K : for (;;) {\n"
-								+ "	    ^\n"
-								+ "The label K is never explicitly referenced\n"
-								+ "----------\n"
-								+ "6. ERROR in p\\BytecodeA.java (at line 105)\n"
-								+ "	continue L; // good\n"
-								+ "	^^^^^^^^^^\n"
-								+ "continue cannot be used outside of a loop\n"
-								+ "----------\n"
-								+ "7. ERROR in p\\BytecodeA.java (at line 115)\n"
-								+ "	x [1] = (x = new Object[5]); // bad\n"
-								+ "	^\n"
-								+ "The local variable x may not have been initialized\n"
-								+ "----------\n"
-								+ "8. ERROR in p\\BytecodeA.java (at line 119)\n"
-								+ "	} catch (java.io.IOException e) {\n"
-								+ "	         ^^^^^^^^^^^^^^^^^^^\n"
-								+ "Unreachable catch block for IOException. This exception is never thrown from the try statement body\n"
-								+ "----------\n");
-	}
-
-	// was Compliance_1_x#test007
-	public void test057() {
-		String[] sources = new String[] {
-				"p1/Test.java",
-				"package p1; \n" + "public class Test { \n"
-						+ "	public static void main(String[] arguments) { \n"
-						+ "		try {	\n" + "			throw null; \n"
-						+ "		} catch(NullPointerException e){ 	\n"
-						+ "			System.out.println(\"SUCCESS\");	\n" + "		}	\n"
-						+ "	} \n" + "} \n" };
-		if (this.complianceLevel.equals(COMPLIANCE_1_3)) {
-			runNegativeTest(sources, "----------\n"
-					+ "1. ERROR in p1\\Test.java (at line 5)\n"
-					+ "	throw null; \n" + "	      ^^^^\n"
-					+ "Cannot throw null as an exception\n" + "----------\n");
-		} else {
-			runConformTest(sources, "SUCCESS");
-		}
-	}
-
-	public static Class testClass() {
-		return TryStatementTest.class;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/UtilTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/UtilTest.java
deleted file mode 100644
index 0b58ab1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/UtilTest.java
+++ /dev/null
@@ -1,605 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.io.File;
-
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-
-public class UtilTest extends AbstractRegressionTest {
-
-StringBuffer camelCaseErrors;
-
-public UtilTest(String name) {
-	super(name);
-}
-
-/**
- * Assert that a pattern and a name matches or not.
- * If result is invalid then store warning in buffer and display it.
- */
-void assertCamelCase(String pattern, String name, boolean match) {
-	boolean camelCase = CharOperation.camelCaseMatch(pattern==null?null:pattern.toCharArray(), name==null?null:name.toCharArray());
-	if (match != camelCase) {
-		StringBuffer line = new StringBuffer("'");
-		line.append(name);
-		line.append("' SHOULD");
-		if (!match) line.append(" NOT");
-		line.append(" match pattern '");
-		line.append(pattern);
-		line.append("', but it DOES");
-		if (!camelCase) line.append(" NOT");
-		if (this.camelCaseErrors.length() == 0) {
-			System.out.println("Invalid results in test "+getName()+":");
-		}
-		System.out.println("	- "+line);
-		this.camelCaseErrors.append('\n');
-		this.camelCaseErrors.append(line);
-	}
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractRegressionTest#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	this.camelCaseErrors = new StringBuffer();
-}
-
-public boolean checkPathMatch(char[] pattern, char[] path, boolean isCaseSensitive) {
-	
-	CharOperation.replace(pattern, '/', File.separatorChar);
-	CharOperation.replace(pattern, '\\', File.separatorChar);
-	CharOperation.replace(path, '/', File.separatorChar);
-	CharOperation.replace(path, '\\', File.separatorChar);
-	
-	boolean result = CharOperation.pathMatch(pattern, path, isCaseSensitive, File.separatorChar);
-
-//	boolean antResult = SelectorUtils.matchPath(new String(pattern), new String(path), isCaseSensitive);
-//	if (antResult != result) {
-//		new AssertionFailedError("WARNING : Ant expectation for patchMatch(\""+new String(pattern)+"\", \""+new String(path)+"\", ...) is: "+antResult).printStackTrace();
-//	}
-
-	return result;
-}
-
-public void test01() {
-
-	assertTrue("Pattern matching failure",
-		!CharOperation.match("X".toCharArray(), "Xyz".toCharArray(), true));
-}
-public void test02() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("X*".toCharArray(), "Xyz".toCharArray(), true));
-}
-public void test03() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("X".toCharArray(), "X".toCharArray(), true));
-}
-public void test04() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("X*X".toCharArray(), "XYX".toCharArray(), true));
-}
-public void test05() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("XY*".toCharArray(), "XYZ".toCharArray(), true));
-}
-public void test06() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("*XY*".toCharArray(), "XYZ".toCharArray(), true));
-}
-public void test07() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("*".toCharArray(), "XYZ".toCharArray(), true));
-}
-public void test08() {
-
-	assertTrue("Pattern matching failure",
-		!CharOperation.match("a*".toCharArray(), "XYZ".toCharArray(), true));
-}
-public void test09() {
-
-	assertTrue("Pattern matching failure",
-		!CharOperation.match("abc".toCharArray(), "XYZ".toCharArray(), true));
-}
-public void test10() {
-
-	assertTrue("Pattern matching failure",
-		!CharOperation.match("ab*c".toCharArray(), "abX".toCharArray(), true));
-}
-public void test11() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("a*b*c".toCharArray(), "aXXbYYc".toCharArray(), true));
-}
-public void test12() {
-
-	assertTrue("Pattern matching failure",
-		!CharOperation.match("*a*bc".toCharArray(), "aXXbYYc".toCharArray(), true));
-}
-public void test13() {
-
-	assertTrue("Pattern matching failure",
-		!CharOperation.match("*foo*bar".toCharArray(), "".toCharArray(), true));
-}
-public void test14() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("*foo*bar".toCharArray(), "ffoobabar".toCharArray(), true));
-}
-public void test15() {
-
-	assertTrue("Pattern matching failure",
-		!CharOperation.match("*fol*bar".toCharArray(), "ffoobabar".toCharArray(), true));
-}
-public void test16() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("*X*Y*".toCharArray(), "XY".toCharArray(), true));
-}
-public void test17() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("*X*Y*".toCharArray(), "XYZ".toCharArray(), true));
-}
-public void test18() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("main(*)".toCharArray(), "main(argv)".toCharArray(), true));
-}
-public void test19() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("*rr*".toCharArray(), "ARRAY".toCharArray(), false));
-}
-
-public void test20() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("hello*World".toCharArray(), "helloWorld".toCharArray(), true));
-}
-
-public void test21() {
-	assertEquals("Trim failure", "hello", new String(CharOperation.trim("hello".toCharArray())));
-}
-public void test22() {
-	assertEquals("Trim failure", "hello", new String(CharOperation.trim("   hello".toCharArray())));
-}
-public void test23() {
-	assertEquals("Trim failure", "hello", new String(CharOperation.trim("   hello   ".toCharArray())));
-}
-public void test24() {
-	assertEquals("Trim failure", "hello", new String(CharOperation.trim("hello   ".toCharArray())));
-}
-public void test25() {
-	assertEquals("Trim failure", "", new String(CharOperation.trim("   ".toCharArray())));
-}
-public void test26() {
-	assertEquals("Trim failure", "hello world", new String(CharOperation.trim(" hello world  ".toCharArray())));
-}
-public void test27() {
-	char [][] tokens = CharOperation.splitAndTrimOn(','," hello,world".toCharArray());
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < tokens.length; i++){
-		buffer.append('[').append(tokens[i]).append(']');
-	}
-	assertEquals("SplitTrim failure", "[hello][world]", buffer.toString());
-}
-public void test28() {
-	char [][] tokens = CharOperation.splitAndTrimOn(','," hello , world".toCharArray());
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < tokens.length; i++){
-		buffer.append('[').append(tokens[i]).append(']');
-	}
-	assertEquals("SplitTrim failure", "[hello][world]", buffer.toString());
-}
-public void test29() {
-	char [][] tokens = CharOperation.splitAndTrimOn(','," hello, world   ".toCharArray());
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < tokens.length; i++){
-		buffer.append('[').append(tokens[i]).append(']');
-	}
-	assertEquals("SplitTrim failure", "[hello][world]", buffer.toString());
-}
-public void test30() {
-	char [][] tokens = CharOperation.splitAndTrimOn(','," hello, world   ,zork/, aaa bbb".toCharArray());
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < tokens.length; i++){
-		buffer.append('[').append(tokens[i]).append(']');
-	}
-	assertEquals("SplitTrim failure", "[hello][world][zork/][aaa bbb]", buffer.toString());
-}
-public void test31() {
-	char [][] tokens = CharOperation.splitAndTrimOn(',',"  ,  ".toCharArray());
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < tokens.length; i++){
-		buffer.append('[').append(tokens[i]).append(']');
-	}
-	assertEquals("SplitTrim failure", "[][]", buffer.toString());
-}
-public void test32() {
-	char [][] tokens = CharOperation.splitAndTrimOn(',',"   ".toCharArray());
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < tokens.length; i++){
-		buffer.append('[').append(tokens[i]).append(']');
-	}
-	assertEquals("SplitTrim failure", "[]", buffer.toString());
-}
-public void test33() {
-	char [][] tokens = CharOperation.splitAndTrimOn(',',"  , hello  ".toCharArray());
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < tokens.length; i++){
-		buffer.append('[').append(tokens[i]).append(']');
-	}
-	assertEquals("SplitTrim failure", "[][hello]", buffer.toString());
-}
-
-public void test34() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("hello/*/World".toCharArray(), "hello/zzz/World".toCharArray(), true));
-}
-
-public void test35() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("hello/**/World".toCharArray(), "hello/x/y/z/World".toCharArray(), true));
-}
-
-public void test36() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("hello/**/World/**/*.java".toCharArray(), "hello/x/y/z/World/X.java".toCharArray(), true));
-}
-
-public void test37() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("**/World/**/*.java".toCharArray(), "hello/x/y/z/World/X.java".toCharArray(), true));
-}
-
-public void test38() {
-
-	assertTrue("Path pattern matching failure",
-		!checkPathMatch("/*.java".toCharArray(), "/hello/x/y/z/World/X.java".toCharArray(), true));
-}
-
-/*
- * From Ant pattern set examples
- */
-public void test39() {
-
-	assertTrue("Path pattern matching failure-1",
-		checkPathMatch("**/CVS/*".toCharArray(), "CVS/Repository".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		checkPathMatch("**/CVS/*".toCharArray(), "org/apache/CVS/Entries".toCharArray(), true));
-	assertTrue("Path pattern matching failure-3",
-		checkPathMatch("**/CVS/*".toCharArray(), "org/apache/jakarta/tools/ant/CVS/Entries".toCharArray(), true));
-	assertTrue("Path pattern matching failure-4",
-		!checkPathMatch("**/CVS/*".toCharArray(), "org/apache/CVS/foo/bar/Entries".toCharArray(), true));
-}
-
-/*
- * From Ant pattern set examples
- */
-public void test40() {
-
-	assertTrue("Path pattern matching failure-1",
-		checkPathMatch("org/apache/jakarta/**".toCharArray(), "org/apache/jakarta/tools/ant/docs/index.html".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		checkPathMatch("org/apache/jakarta/**".toCharArray(), "org/apache/jakarta/test.xml".toCharArray(), true));
-	assertTrue("Path pattern matching failure-3",
-		!checkPathMatch("org/apache/jakarta/**".toCharArray(), "org/apache/xyz.java".toCharArray(), true));
-}
-
-/*
- * From Ant pattern set examples
- */
-public void test41() {
-
-	assertTrue("Path pattern matching failure-1",
-		checkPathMatch("org/apache/**/CVS/*".toCharArray(), "org/apache/CVS/Entries".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		checkPathMatch("org/apache/**/CVS/*".toCharArray(), "org/apache/jakarta/tools/ant/CVS/Entries".toCharArray(), true));
-	assertTrue("Path pattern matching failure-3",
-		!checkPathMatch("org/apache/**/CVS/*".toCharArray(), "org/apache/CVS/foo/bar/Entries".toCharArray(), true));
-}
-
-/*
- * From Ant pattern set examples
- */
-public void test42() {
-
-	assertTrue("Path pattern matching failure-1",
-		checkPathMatch("**/test/**".toCharArray(), "org/apache/test/CVS/Entries".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		checkPathMatch("**/test/**".toCharArray(), "test".toCharArray(), true));
-	assertTrue("Path pattern matching failure-3",
-		checkPathMatch("**/test/**".toCharArray(), "a/test".toCharArray(), true));
-	assertTrue("Path pattern matching failure-4",
-		checkPathMatch("**/test/**".toCharArray(), "test/a.js".toCharArray(), true));
-	assertTrue("Path pattern matching failure-5",
-		!checkPathMatch("**/test/**".toCharArray(), "org/apache/test.js".toCharArray(), true));
-}
-/*
- * Corner cases
- */
-public void test43() {
-
-	assertTrue("Path pattern matching failure-1",
-		checkPathMatch("/test/".toCharArray(), "/test/CVS/Entries".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		checkPathMatch("/test/**".toCharArray(), "/test/CVS/Entries".toCharArray(), true));
-}
-/*
- * Corner cases
- */
-public void test44() {
-		
-	assertTrue("Path pattern matching failure-1",
-		!checkPathMatch("test".toCharArray(), "test/CVS/Entries".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		!checkPathMatch("**/test".toCharArray(), "test/CVS/Entries".toCharArray(), true));
-}
-/*
- * Corner cases
- */
-public void test45() {
-		
-	assertTrue("Path pattern matching failure-1",
-		checkPathMatch("/test/test1/".toCharArray(), "/test/test1/test/test1".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		!checkPathMatch("/test/test1".toCharArray(), "/test/test1/test/test1".toCharArray(), true));
-}
-public void test46() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("hello/**/World".toCharArray(), "hello/World".toCharArray(), true));
-}
-/*
- * Regression test for 28316 Missing references to constructor 
- */
-public void test47() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("*x".toCharArray(), "x.X".toCharArray(), false));
-}
-public void test48() {
-
-	assertTrue("Pattern matching failure",
-		CharOperation.match("*a*".toCharArray(), "abcd".toCharArray(), false));
-}
-public void test49() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("**/hello".toCharArray(), "hello/hello".toCharArray(), true));
-}
-public void test50() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("**/hello/**".toCharArray(), "hello/hello".toCharArray(), true));
-}
-public void test51() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("**/hello/".toCharArray(), "hello/hello".toCharArray(), true));
-}
-public void test52() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("hello/".toCharArray(), "hello/hello".toCharArray(), true));
-}
-public void test53() {
-
-	assertTrue("Path pattern matching failure",
-		!checkPathMatch("/".toCharArray(), "hello/hello".toCharArray(), true));
-}
-public void test54() {
-
-	assertTrue("Path pattern matching failure-1",
-		!checkPathMatch("x/".toCharArray(), "hello/x".toCharArray(), true)); // 29761
-
-	assertTrue("Path pattern matching failure-2",
-		checkPathMatch("**/x/".toCharArray(), "hello/x".toCharArray(), true)); 
-
-	assertTrue("Path pattern matching failure-3",
-		!checkPathMatch("/x/".toCharArray(), "hello/x".toCharArray(), true));
-}
-public void test56() {
-
-	assertTrue("Path pattern matching failure",
-		!checkPathMatch("/**".toCharArray(), "hello/hello".toCharArray(), true));
-}
-public void test57() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("/".toCharArray(), "/hello/hello".toCharArray(), true));
-}
-public void test58() {
-
-	assertTrue("Path pattern matching failure",
-		checkPathMatch("/**".toCharArray(), "/hello/hello".toCharArray(), true));
-}
-public void test59() {
-
-	assertTrue("Path pattern matching failure",
-		!checkPathMatch("**".toCharArray(), "/hello/hello".toCharArray(), true));
-}
-public void test60() {
-
-	assertTrue("Path pattern matching failure-1",
-		!checkPathMatch("/P/src".toCharArray(), "/P/src/X".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		!checkPathMatch("/P/**/src".toCharArray(), "/P/src/X".toCharArray(), true));
-	assertTrue("Path pattern matching failure-3",
-		checkPathMatch("/P/src".toCharArray(), "/P/src".toCharArray(), true));
-	assertTrue("Path pattern matching failure-4",
-		!checkPathMatch("A.java".toCharArray(), "/P/src/A.java".toCharArray(), true));		
-}
-public void test61() {
-
-	assertTrue("Path pattern matching failure-1",
-		checkPathMatch("/P/src/**/CVS".toCharArray(), "/P/src/CVS".toCharArray(), true));
-	assertTrue("Path pattern matching failure-2",
-		checkPathMatch("/P/src/**/CVS/".toCharArray(), "/P/src/CVS".toCharArray(), true));
-}
-public void test62() {
-	assertCamelCase("NPE", "NullPointerException", true/* should match */);
-	assertCamelCase("NPExc", "NullPointerException", true/* should match */);
-	assertCamelCase("NPoE", "NullPointerException", true/* should match */);
-	assertCamelCase("NuPExc", "NullPointerException", true/* should match */);
-	// Verify that there were no unexpected results
-    assertTrue(this.camelCaseErrors.toString(), this.camelCaseErrors.length()==0);
-}
-public void test63() {
-	assertCamelCase("NPEX", "NullPointerException", false/* should not match */);
-	assertCamelCase("NPex", "NullPointerException", false/* should not match */);
-	assertCamelCase("npe", "NullPointerException", false/* should not match */);
-	assertCamelCase("npe", "NPException", false/* should not match */);
-	assertCamelCase("NPointerE", "NullPointerException", true/* should match */);
-	// Verify that there were no unexpected results
-    assertTrue(this.camelCaseErrors.toString(), this.camelCaseErrors.length()==0);
-}
-public void test64() {
-	assertCamelCase("IAE", "IgnoreAllErrorHandler", true/* should match */);
-	assertCamelCase("IAE", "IAnchorElement", true/* should match */);
-	assertCamelCase("IAnchorEleme", "IAnchorElement", true/* should match */);
-	assertCamelCase("", "IAnchorElement", false/* should not match */);
-	assertCamelCase(null, "IAnchorElement", true/* should match */);
-	assertCamelCase("", "", true/* should match */);
-	assertCamelCase("IAnchor", null, false/* should not match */);
-	// Verify that there were no unexpected results
-    assertTrue(this.camelCaseErrors.toString(), this.camelCaseErrors.length()==0);
-}
-public void test65() {
-	assertCamelCase("iSCDCo", "invokeStringConcatenationDefaultConstructor", true/* should match */);
-	assertCamelCase("inVOke", "invokeStringConcatenationDefaultConstructor", false/* should not match */);
-	assertCamelCase("i", "invokeStringConcatenationDefaultConstructor", true/* should match */);
-	assertCamelCase("I", "invokeStringConcatenationDefaultConstructor", false/* should not match */);
-	assertCamelCase("iStringCD", "invokeStringConcatenationDefaultConstructor", true/* should match */);
-	assertCamelCase("NPE", "NullPointerException/java.lang", true/* should match */);
-	assertCamelCase("NPE", "NullPointer/lang.Exception", false/* should not match */);
-	assertCamelCase("NPE", "Null_Pointer$Exception", true/* should match */);
-	assertCamelCase("NPE", "Null1Pointer2Exception", true/* should match */);
-	assertCamelCase("NPE", "Null.Pointer.Exception", false/* should not match */);
-	assertCamelCase("NPE", "aNullPointerException", false/* should not match */);
-	assertCamelCase("nullP", "nullPointerException", true/* should match */);
-	assertCamelCase("nP", "nullPointerException", true/* should match */);
-	// Verify that there were no unexpected results
-    assertTrue(this.camelCaseErrors.toString(), this.camelCaseErrors.length()==0);
-}
-
-/**
- * Bug 130390: CamelCase algorithm cleanup and improvement
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=130390"
- */
-public void test66() {
-    String[][] MATCHES = {
-            {"TZ","TimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"TiZ","TimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"TiZon","TimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"TZon","TimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"TZone","TimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"TimeZone","TimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"TimeZ","TimeZ"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"TZ","TimeZ"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"T","TimeZ"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"T","TimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"TZ","TZ"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aT","aTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aTi","aTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aTiZ","aTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aTZ","aTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aT","artTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aTi","artTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aTiZ","artTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aTZ","artTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-    };
-    
-    for (int i = 0; i<MATCHES.length ; i++) {
-        String[] match = MATCHES[i];
-        assertCamelCase(match[0], match[1], true/*should match*/);
-    }
-    
-    String[][] MIS_MATCHES = {
-            {"TZ","Timezone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aTZ","TimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aTZ","TZ"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"arT","aTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"arTi","aTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"arTiZ","aTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"arTZ","aTimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-            {"aT","atimeZone"},  //$NON-NLS-1$//$NON-NLS-2$
-    };
-    
-    for (int i = 0; i<MIS_MATCHES.length ; i++) {
-        String[] match = MIS_MATCHES[i];
-        assertCamelCase(match[0], match[1], false/*should not match*/);
-    }
-
-	// Verify that there were no unexpected results
-    assertTrue(this.camelCaseErrors.toString(), this.camelCaseErrors.length()==0);
-}
-
-/**
- * Bug 137087: Open Type - missing matches when using mixed case pattern
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=137087"
- */
-public void test67() {
-	assertCamelCase("runtimeEx", "RuntimeException", false/* should not match */);
-	assertCamelCase("Runtimeex", "RuntimeException", false/* should not match */);
-	assertCamelCase("runtimeexception", "RuntimeException", false/* should not match */);
-	assertCamelCase("Runtimexception", "RuntimeException", false/* should not match */);
-	assertCamelCase("illegalMSException", "IllegalMonitorStateException", false/* should not match */);
-	assertCamelCase("illegalMsException", "IllegalMonitorStateException", false /* should not match */);
-	assertCamelCase("IllegalMSException", "IllegalMonitorStateException", true/* should match */);
-	assertCamelCase("IllegalMsException", "IllegalMonitorStateException", false /* should not match */);
-	assertCamelCase("clonenotsupportedex", "CloneNotSupportedException", false/* should not match */);
-	assertCamelCase("CloneNotSupportedEx", "CloneNotSupportedException", true/* should match */);
-	assertCamelCase("cloneNotsupportedEx", "CloneNotSupportedException", false/* should not match */);
-	assertCamelCase("ClonenotSupportedexc", "CloneNotSupportedException", false/* should not match */);
-	assertCamelCase("cloneNotSupportedExcep", "CloneNotSupportedException", false/* should not match */);
-	assertCamelCase("Clonenotsupportedexception", "CloneNotSupportedException", false/* should not match */);
-	assertCamelCase("CloneNotSupportedException", "CloneNotSupportedException", true /* should match */);
-	// Verify that there were no unexpected results
-    assertTrue(this.camelCaseErrors.toString(), this.camelCaseErrors.length()==0);
-}
-// lower CamelCase
-public void test68() {
-	assertCamelCase("aMe", "aMethod", true/* should match */);
-	assertCamelCase("ame", "aMethod", false/* should not match */);
-	assertCamelCase("longNOM", "longNameOfMethod", true/* should match */);
-	assertCamelCase("longNOMeth", "longNameOfMethod", true/* should match */);
-	assertCamelCase("longNOMethod", "longNameOfMethod", true/* should match */);
-	assertCamelCase("longNoMethod", "longNameOfMethod", false/* should not match */);
-	// Verify that there were no unexpected results
-    assertTrue(this.camelCaseErrors.toString(), this.camelCaseErrors.length()==0);
-}
-// search tests
-public void test69() {
-	assertCamelCase("aa", "AxxAyy", false /* should not match */);
-	assertCamelCase("Aa", "AxxAyy", false /* should not match */);
-	assertCamelCase("aA", "AxxAyy", false /* should not match */);
-	assertCamelCase("AA", "AxxAyy", true /* should match */);
-	assertCamelCase("aa", "AbcdAbcdefAbcAbcdefghAbAAzzzzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnAbcAbcdefghijklm", false /* should not match */);
-	assertCamelCase("AA", "AbcdAbcdefAbcAbcdefghAbAAzzzzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnAbcAbcdefghijklm", true /* should match */);
-	// Verify that there were no unexpected results
-    assertTrue(this.camelCaseErrors.toString(), this.camelCaseErrors.length()==0);
-}
-public static Class testClass() {
-	return UtilTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/VarargsTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/VarargsTest.java
deleted file mode 100644
index c323074..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/VarargsTest.java
+++ /dev/null
@@ -1,2067 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import junit.framework.Test;
-
-public class VarargsTest extends AbstractComparableTest {
-
-	public VarargsTest(String name) {
-		super(name);
-	}
-
-	// Static initializer to specify tests subset using TESTS_* static variables
-	// All specified tests which does not belong to the class are skipped...
-	static {
-//		TESTS_NAMES = new String[] { "test000" };
-//		TESTS_NUMBERS = new int[] { 30 };
-//		TESTS_RANGE = new int[] { 11, -1 };
-	}
-	public static Test suite() {
-		return buildComparableTestSuite(testClass());
-	}
-	
-	public static Class testClass() {
-		return VarargsTest.class;
-	}
-
-	public void test001() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y y = new Y();\n" +
-				"		y = new Y(null);\n" +
-				"		y = new Y(1);\n" +
-				"		y = new Y(1, 2, (byte) 3, 4);\n" +
-				"		y = new Y(new int[] {1, 2, 3, 4 });\n" +
-				"		\n" +
-				"		Y.count();\n" +
-				"		Y.count(null);\n" +
-				"		Y.count(1);\n" +
-				"		Y.count(1, 2, (byte) 3, 4);\n" +
-				"		Y.count(new int[] {1, 2, 3, 4 });\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public Y(int ... values) {\n" +
-				"		int result = 0;\n" +
-				"		for (int i = 0, l = values == null ? 0 : values.length; i < l; i++)\n" +
-				"			result += values[i];\n" +
-				"		System.out.print(result);\n" +
-				"		System.out.print(' ');\n" +
-				"	}\n" +
-				"	public static void count(int ... values) {\n" +
-				"		int result = 0;\n" +
-				"		for (int i = 0, l = values == null ? 0 : values.length; i < l; i++)\n" +
-				"			result += values[i];\n" +
-				"		System.out.print(result);\n" +
-				"		System.out.print(' ');\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"<0 0 1 10 10 0 0 1 10 10 >");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y y = new Y();\n" +
-				"		y = new Y(null);\n" +
-				"		y = new Y(1);\n" +
-				"		y = new Y(1, 2, (byte) 3, 4);\n" +
-				"		y = new Y(new int[] {1, 2, 3, 4 });\n" +
-				"		\n" +
-				"		Y.count();\n" +
-				"		Y.count(null);\n" +
-				"		Y.count(1);\n" +
-				"		Y.count(1, 2, (byte) 3, 4);\n" +
-				"		Y.count(new int[] {1, 2, 3, 4 });\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"<0 0 1 10 10 0 0 1 10 10 >",
-			null,
-			false,
-			null);
-	}
-
-	public void test002() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y y = new Y();\n" +
-				"		y = new Y(null);\n" +
-				"		y = new Y(1);\n" +
-				"		y = new Y(1, 2, (byte) 3, 4);\n" +
-				"		y = new Y(new int[] {1, 2, 3, 4 });\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y extends Z {\n" +
-				"	public Y(int ... values) { super(values); }\n" +
-				"}\n" +
-				"class Z {\n" +
-				"	public Z(int ... values) {\n" +
-				"		int result = 0;\n" +
-				"		for (int i = 0, l = values == null ? 0 : values.length; i < l; i++)\n" +
-				"			result += values[i];\n" +
-				"		System.out.print(result);\n" +
-				"		System.out.print(' ');\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"<0 0 1 10 10 >");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y y = new Y();\n" +
-				"		y = new Y(null);\n" +
-				"		y = new Y(1);\n" +
-				"		y = new Y(1, 2, (byte) 3, 4);\n" +
-				"		y = new Y(new int[] {1, 2, 3, 4 });\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"<0 0 1 10 10 >",
-			null,
-			false,
-			null);
-	}
-
-	public void test003() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.count();\n" +
-				"		Y.count((int[]) null);\n" +
-				"		Y.count((int[][]) null);\n" +
-				"		Y.count(new int[] {1});\n" +
-				"		Y.count(new int[] {1, 2}, new int[] {3, 4});\n" +
-				"		Y.count(new int[][] {new int[] {1, 2, 3}, new int[] {4}});\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static int count(int[] values) {\n" +
-				"		int result = 0;\n" +
-				"		for (int i = 0, l = values == null ? 0 : values.length; i < l; i++)\n" +
-				"			result += values[i];\n" +
-				"		System.out.print(' ');\n" +
-				"		System.out.print(result);\n" +
-				"		return result;\n" +
-				"	}\n" +
-				"	public static void count(int[] ... values) {\n" +
-				"		int result = 0;\n" +
-				"		for (int i = 0, l = values == null ? 0 : values.length; i < l; i++)\n" +
-				"			result += count(values[i]);\n" +
-				"		System.out.print('=');\n" +
-				"		System.out.print(result);\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"<=0 0=0 1 3 7=10 6 4=10>");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.count();\n" +
-				"		Y.count((int[]) null);\n" +
-				"		Y.count((int[][]) null);\n" +
-				"		Y.count(new int[] {1});\n" +
-				"		Y.count(new int[] {1, 2}, new int[] {3, 4});\n" +
-				"		Y.count(new int[][] {new int[] {1, 2, 3}, new int[] {4}});\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n"
-			},
-			"<=0 0=0 1 3 7=10 6 4=10>",
-			null,
-			false,
-			null);
-	}
-
-	public void test004() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.count(0);\n" +
-				"		Y.count(-1, (int[]) null);\n" +
-				"		Y.count(-2, (int[][]) null);\n" +
-				"		Y.count(1);\n" +
-				"		Y.count(2, new int[] {1});\n" +
-				"		Y.count(3, new int[] {1}, new int[] {2, 3}, new int[] {4});\n" +
-				"		Y.count((byte) 4, new int[][] {new int[] {1}, new int[] {2, 3}, new int[] {4}});\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static int count(int j, int[] values) {\n" +
-				"		int result = j;\n" +
-				"		System.out.print(' ');\n" +
-				"		System.out.print('[');\n" +
-				"		for (int i = 0, l = values == null ? 0 : values.length; i < l; i++)\n" +
-				"			result += values[i];\n" +
-				"		System.out.print(result);\n" +
-				"		System.out.print(']');\n" +
-				"		return result;\n" +
-				"	}\n" +
-				"	public static void count(int j, int[] ... values) {\n" +
-				"		int result = j;\n" +
-				"		System.out.print(' ');\n" +
-				"		System.out.print(result);\n" +
-				"		System.out.print(':');\n" +
-				"		for (int i = 0, l = values == null ? 0 : values.length; i < l; i++)\n" +
-				"			result += count(j, values[i]);\n" +
-				"		System.out.print('=');\n" +
-				"		System.out.print(result);\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"< 0:=0 [-1] -2:=-2 1:=1 [3] 3: [4] [8] [7]=22 4: [5] [9] [8]=26>");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.count(0);\n" +
-				"		Y.count(-1, (int[]) null);\n" +
-				"		Y.count(-2, (int[][]) null);\n" +
-				"		Y.count(1);\n" +
-				"		Y.count(2, new int[] {1});\n" +
-				"		Y.count(3, new int[] {1}, new int[] {2, 3}, new int[] {4});\n" +
-				"		Y.count((byte) 4, new int[][] {new int[] {1}, new int[] {2, 3}, new int[] {4}});\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n"
-			},
-			"< 0:=0 [-1] -2:=-2 1:=1 [3] 3: [4] [8] [7]=22 4: [5] [9] [8]=26>",
-			null,
-			false,
-			null);
-	}	
-
-	public void test005() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.print();\n" +
-				"		Y.print(new Integer(1));\n" +
-				"		Y.print(new Integer(1), new Byte((byte) 3), new Integer(7));\n" +
-				"		Y.print(new Integer[] {new Integer(11) });\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void print(Number ... values) {\n" +
-				"		for (int i = 0, l = values.length; i < l; i++) {\n" +
-				"			System.out.print(' ');\n" +
-				"			System.out.print(values[i]);\n" +
-				"		}\n" +
-				"		System.out.print(',');\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"<, 1, 1 3 7, 11,>");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.print();\n" +
-				"		Y.print(new Integer(1));\n" +
-				"		Y.print(new Integer(1), new Byte((byte) 3), new Integer(7));\n" +
-				"		Y.print(new Integer[] {new Integer(11) });\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"<, 1, 1 3 7, 11,>",
-			null,
-			false,
-			null);
-	}
-
-	public void test006() { // 70056
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		String[] T_NAMES = new String[] {\"foo\"};\n" +
-				"		String error = \"error\";\n" +
-				"		Y.format(\"E_UNSUPPORTED_CONV\", new Integer(0));\n" +
-				"		Y.format(\"E_SAVE\", T_NAMES[0], error);\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static String format(String key) { return null; }\n" +
-				"	public static String format(String key, Object ... args) { return null; }\n" +
-				"}\n",
-			},
-			"");
-	}
-
-	public void test007() { // array dimension test compatibility with Object
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y.byte2(null);\n" + // warning: inexact argument type for last parameter
-				"		Y.byte2((byte) 1);\n" + // error
-				"		Y.byte2(new byte[] {});\n" +
-				"		Y.byte2(new byte[][] {});\n" + 
-				"		Y.byte2(new byte[][][] {});\n" + // error
-				"\n" +
-				"		Y.object(null);\n" + // warning
-				"		Y.object((byte) 1);\n" +
-				"		Y.object(new byte[] {});\n" +
-				"		Y.object(new byte[][] {});\n" + // warning
-				"		Y.object(new byte[][][] {});\n" + // warning
-				"\n" +
-				"		Y.object(new String());\n" +
-				"		Y.object(new String[] {});\n" + // warning
-				"		Y.object(new String[][] {});\n" + // warning
-				"\n" +
-				"		Y.object2(null);\n" + // warning
-				"		Y.object2((byte) 1);\n" + // error
-				"		Y.object2(new byte[] {});\n" + // error
-				"		Y.object2(new byte[][] {});\n" + 
-				"		Y.object2(new byte[][][] {});\n" + // warning
-				"\n" +
-				"		Y.object2(new String());\n" + // error
-				"		Y.object2(new String[] {});\n" + 
-				"		Y.object2(new String[][] {});\n" + // warning
-				"\n" +
-				"		Y.string(null);\n" + // warning
-				"		Y.string(new String());\n" +
-				"		Y.string(new String[] {});\n" +
-				"		Y.string(new String[][] {});\n" + // error
-				"\n" +
-				"		Y.string(new Object());\n" + // error
-				"		Y.string(new Object[] {});\n" + // error
-				"		Y.string(new Object[][] {});\n" + // error
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void byte2(byte[] ... values) {}\n" +
-				"	public static void object(Object ... values) {}\n" +
-				"	public static void object2(Object[] ... values) {}\n" +
-				"	public static void string(String ... values) {}\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 3)\n" + 
-			"	Y.byte2(null);\n" + 
-			"	^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to byte[][] for the invocation of the varargs method byte2(byte[]...) from type Y. It could alternatively be cast to byte[] for a varargs invocation\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	Y.byte2((byte) 1);\n" + 
-			"	  ^^^^^\n" + 
-			"The method byte2(byte[]...) in the type Y is not applicable for the arguments (byte)\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 7)\n" + 
-			"	Y.byte2(new byte[][][] {});\n" + 
-			"	  ^^^^^\n" + 
-			"The method byte2(byte[]...) in the type Y is not applicable for the arguments (byte[][][])\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 9)\n" + 
-			"	Y.object(null);\n" + 
-			"	^^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to Object[] for the invocation of the varargs method object(Object...) from type Y. It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"5. WARNING in X.java (at line 12)\n" + 
-			"	Y.object(new byte[][] {});\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type byte[][] should explicitly be cast to Object[] for the invocation of the varargs method object(Object...) from type Y. It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"6. WARNING in X.java (at line 13)\n" + 
-			"	Y.object(new byte[][][] {});\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type byte[][][] should explicitly be cast to Object[] for the invocation of the varargs method object(Object...) from type Y. It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"7. WARNING in X.java (at line 16)\n" + 
-			"	Y.object(new String[] {});\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type String[] should explicitly be cast to Object[] for the invocation of the varargs method object(Object...) from type Y. It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"8. WARNING in X.java (at line 17)\n" + 
-			"	Y.object(new String[][] {});\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type String[][] should explicitly be cast to Object[] for the invocation of the varargs method object(Object...) from type Y. It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"9. WARNING in X.java (at line 19)\n" + 
-			"	Y.object2(null);\n" + 
-			"	^^^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to Object[][] for the invocation of the varargs method object2(Object[]...) from type Y. It could alternatively be cast to Object[] for a varargs invocation\n" + 
-			"----------\n" + 
-			"10. ERROR in X.java (at line 20)\n" + 
-			"	Y.object2((byte) 1);\n" + 
-			"	  ^^^^^^^\n" + 
-			"The method object2(Object[]...) in the type Y is not applicable for the arguments (byte)\n" + 
-			"----------\n" + 
-			"11. ERROR in X.java (at line 21)\n" + 
-			"	Y.object2(new byte[] {});\n" + 
-			"	  ^^^^^^^\n" + 
-			"The method object2(Object[]...) in the type Y is not applicable for the arguments (byte[])\n" + 
-			"----------\n" + 
-			"12. WARNING in X.java (at line 23)\n" + 
-			"	Y.object2(new byte[][][] {});\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type byte[][][] should explicitly be cast to Object[][] for the invocation of the varargs method object2(Object[]...) from type Y. It could alternatively be cast to Object[] for a varargs invocation\n" + 
-			"----------\n" + 
-			"13. ERROR in X.java (at line 25)\n" + 
-			"	Y.object2(new String());\n" + 
-			"	  ^^^^^^^\n" + 
-			"The method object2(Object[]...) in the type Y is not applicable for the arguments (String)\n" + 
-			"----------\n" + 
-			"14. WARNING in X.java (at line 27)\n" + 
-			"	Y.object2(new String[][] {});\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type String[][] should explicitly be cast to Object[][] for the invocation of the varargs method object2(Object[]...) from type Y. It could alternatively be cast to Object[] for a varargs invocation\n" + 
-			"----------\n" + 
-			"15. WARNING in X.java (at line 29)\n" + 
-			"	Y.string(null);\n" + 
-			"	^^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to String[] for the invocation of the varargs method string(String...) from type Y. It could alternatively be cast to String for a varargs invocation\n" + 
-			"----------\n" + 
-			"16. ERROR in X.java (at line 32)\n" + 
-			"	Y.string(new String[][] {});\n" + 
-			"	  ^^^^^^\n" + 
-			"The method string(String...) in the type Y is not applicable for the arguments (String[][])\n" + 
-			"----------\n" + 
-			"17. ERROR in X.java (at line 34)\n" + 
-			"	Y.string(new Object());\n" + 
-			"	  ^^^^^^\n" + 
-			"The method string(String...) in the type Y is not applicable for the arguments (Object)\n" + 
-			"----------\n" + 
-			"18. ERROR in X.java (at line 35)\n" + 
-			"	Y.string(new Object[] {});\n" + 
-			"	  ^^^^^^\n" + 
-			"The method string(String...) in the type Y is not applicable for the arguments (Object[])\n" + 
-			"----------\n" + 
-			"19. ERROR in X.java (at line 36)\n" + 
-			"	Y.string(new Object[][] {});\n" + 
-			"	  ^^^^^^\n" + 
-			"The method string(String...) in the type Y is not applicable for the arguments (Object[][])\n" + 
-			"----------\n");
-	}
-
-	public void test008() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y y = new Y(null);\n" +
-				"		y = new Y(true, null);\n" + // null warning
-				"		y = new Y('i', null);\n" + // null warning
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public Y(int ... values) {}\n" +
-				"	public Y(boolean b, Object ... values) {}\n" +
-				"	public Y(char c, int[] ... values) {}\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 4)\n" + 
-			"	y = new Y(true, null);\n" + 
-			"	    ^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to Object[] for the invocation of the varargs constructor Y(boolean, Object...). It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 5)\n" + 
-			"	y = new Y(\'i\', null);\n" + 
-			"	    ^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to int[][] for the invocation of the varargs constructor Y(char, int[]...). It could alternatively be cast to int[] for a varargs invocation\n" + 
-			"----------\n");
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y y = new Y(null);\n" +
-				"		y = new Y(true, null);\n" + // null warning
-				"		y = new Y('i', null);\n" + // null warning
-				"	}\n" +
-				"}\n" +
-				"class Y extends Z {\n" +
-				"	public Y(int ... values) { super(values); }\n" +
-				"	public Y(boolean b, Object ... values) { super(b, values); }\n" +
-				"	public Y(char c, int[] ... values) {}\n" +
-				"}\n" +
-				"class Z {\n" +
-				"	public Z(int ... values) {}\n" +
-				"	public Z(boolean b, Object ... values) {}\n" +
-				"	public Z(char c, int[] ... values) {}\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 4)\n" + 
-			"	y = new Y(true, null);\n" + 
-			"	    ^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to Object[] for the invocation of the varargs constructor Y(boolean, Object...). It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 5)\n" + 
-			"	y = new Y(\'i\', null);\n" + 
-			"	    ^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to int[][] for the invocation of the varargs constructor Y(char, int[]...). It could alternatively be cast to int[] for a varargs invocation\n" + 
-			"----------\n");
-	}
-
-	public void test009() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.count(null);\n" +
-				"		Y.count(1);\n" +
-				"		Y.count(1, 2);\n" +
-				"\n" +
-				"		Z.count(1L, 1);\n" + // only choice is Z.count(long, int)
-				"		Z.count(1, 1);\n" + // chooses Z.count(long, long) over Z.count(int,int...)
-				"		Z.count(1, null);\n" + // only choice is Z.count(int,int...)
-				"		Z.count2(1, null);\n" + // better choice is Z.count(int,int[])
-				"		Z.count2(1L, null);\n" + // better choice is Z.count(long,int...)
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void count(int values) { System.out.print('1'); }\n" +
-				"	public static void count(int ... values) { System.out.print('2'); }\n" +
-				"}\n" +
-				"class Z {\n" +
-				"	public static void count(long l, long values) { System.out.print('3'); }\n" +
-				"	public static void count(int i, int ... values) { System.out.print('4'); }\n" +
-				"	public static void count2(int i, int values) { System.out.print('5'); }\n" +
-				"	public static void count2(long l, int ... values) { System.out.print('6'); }\n" +
-				"}\n",
-			},
-			"<21233466>");
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.test((Object[]) null);\n" + // cast to avoid null warning
-				"		Y.test(null, null);\n" +
-				"		Y.test(null, null, null);\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void test(Object o, Object o2) { System.out.print('1'); }\n" +
-				"	public static void test(Object ... values) { System.out.print('2'); }\n" +
-				"}\n",
-			},
-			"<212>");
-	}
-
-	public void test010() {
-		// according to spec this should find count(Object) since it should consider count(Object...) as count(Object[]) until all fixed arity methods are ruled out
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.count((Object) new Integer(1));\n" +
-				"		Y.count(new Integer(1));\n" +
-				"\n" +
-				"		Y.count((Object) null);\n" +
-				"		Y.count((Object[]) null);\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void count(Object values) { System.out.print('1'); }\n" +
-				"	public static void count(Object ... values) { System.out.print('2'); }\n" +
-				"}\n",
-			},
-			"<1112>");
-		// according to spec this should find count(Object[]) since it should consider count(Object[]...) as count(Object[][]) until all fixed arity methods are ruled out
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		System.out.print('<');\n" +
-				"		Y.count(new Object[] {new Integer(1)});\n" +
-				"		Y.count(new Integer[] {new Integer(1)});\n" +
-				"\n" +
-				"		Y.count((Object[]) null);\n" +
-				"		Y.count((Object[][]) null);\n" +
-				"		System.out.print('>');\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void count(Object[] values) { System.out.print('1'); }\n" +
-				"	public static void count(Object[] ... values) { System.out.print('2'); }\n" +
-				"}\n",
-			},
-			"<1112>");
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y.string(null);\n" +
-				"		Y.string2(null);\n" +
-				"		Y.int2(null);\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void string(String values) { System.out.print('1'); }\n" +
-				"	public static void string(String ... values) { System.out.print('2'); }\n" +
-				"	public static void string2(String[] values) { System.out.print('1'); }\n" +
-				"	public static void string2(String[] ... values) { System.out.print('2'); }\n" +
-				"	public static void int2(int[] values) { System.out.print('1'); }\n" +
-				"	public static void int2(int[] ... values) { System.out.print('2'); }\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	Y.string(null);\n" + 
-			"	  ^^^^^^\n" + 
-			"The method string(String) is ambiguous for the type Y\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	Y.string2(null);\n" + 
-			"	  ^^^^^^^\n" + 
-			"The method string2(String[]) is ambiguous for the type Y\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	Y.int2(null);\n" + 
-			"	  ^^^^\n" + 
-			"The method int2(int[]) is ambiguous for the type Y\n" + 
-			"----------\n");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83379
-	public void test011() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { void count(int ... values) {} }\n" +
-				"class Y extends X { void count(int[] values) {} }\n" +
-				"class Z extends Y { void count(int... values) {} }\n"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 2)\n" + 
-			"	class Y extends X { void count(int[] values) {} }\n" + 
-			"	                         ^^^^^^^^^^^^^^^^^^^\n" + 
-			"Varargs methods should only override or be overridden by other varargs methods unlike Y.count(int[]) and X.count(int...)\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 2)\n" + 
-			"	class Y extends X { void count(int[] values) {} }\n" + 
-			"	                         ^^^^^^^^^^^^^^^^^^^\n" + 
-			"The method count(int[]) of type Y should be tagged with @Override since it actually overrides a superclass method\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 3)\n" + 
-			"	class Z extends Y { void count(int... values) {} }\n" + 
-			"	                         ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Varargs methods should only override or be overridden by other varargs methods unlike Z.count(int...) and Y.count(int[])\n" + 
-			"----------\n" + 
-			"4. WARNING in X.java (at line 3)\n" + 
-			"	class Z extends Y { void count(int... values) {} }\n" + 
-			"	                         ^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The method count(int...) of type Z should be tagged with @Override since it actually overrides a superclass method\n" + 
-			"----------\n");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=77084
-	public void test012() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-					"   public static void main (String ... args) {\n" + 
-					"       for (String a:args) {\n" + 
-					"           System.out.println(a);\n" + 
-					"       }\n" + 
-					"   }\n" + 
-					"}\n" + 
-					"\n"
-			}
-		);
-	}
-
-	public void test013() { // check behaviour of Scope.mostSpecificMethodBinding()
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y.count(1, 1);\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void count(long i, int j) { System.out.print(1); }\n" +
-				"	public static void count(int ... values) { System.out.print(2); }\n" +
-				"}\n",
-			},
-			"1");
-	}
-
-	public void test014() { // check behaviour of Scope.mostSpecificMethodBinding()
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y.count(new int[0], 1);\n" +
-				"		Y.count(new int[0], 1, 1);\n" +
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void count(int[] array, int ... values) { System.out.print(1); }\n" +
-				"	public static void count(Object o, int ... values) { System.out.print(2); }\n" +
-				"}\n",
-			},
-			"11"
-		);
-	}
-
-	public void test015() { // check behaviour of Scope.mostSpecificMethodBinding()
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y.count(new int[0]);\n" + // for some reason this is not ambiguous
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void count(int[] array, int ... values) { System.out.print(1); }\n" +
-				"	public static void count(int[] array, int[] ... values) { System.out.print(2); }\n" +
-				"}\n",
-			},
-			"1"
-		);
-	}
-
-	public void test016() { // check behaviour of Scope.mostSpecificMethodBinding()
-		this.runNegativeTest( // but this call is ambiguous
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y.count(new int[0]);\n" + // reference to count is ambiguous, both method count(int[],int...) in Y and method count(int[],int[][]...) in Y match
-				"		Y.count(new int[0], null);\n" + // reference to count is ambiguous, both method count(int[],int...) in Y and method count(int[],int[]...) in Y match
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void count(int[] array, int ... values) { System.out.print(0); }\n" +
-				"	public static void count(int[] array, int[][] ... values) { System.out.print(1); }\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	Y.count(new int[0]);\n" + 
-			"	  ^^^^^\n" + 
-			"The method count(int[], int[]) is ambiguous for the type Y\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	Y.count(new int[0], null);\n" + 
-			"	  ^^^^^\n" + 
-			"The method count(int[], int[]) is ambiguous for the type Y\n" + 
-			"----------\n"
-		);
-	}
-
-	public void test017() { // check behaviour of Scope.mostSpecificMethodBinding()
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	public static void main(String[] s) {\n" +
-				"		Y.count(new int[0], 1);\n" + // reference to count is ambiguous, both method count(int[],int...) in Y and method count(int[],int,int...) in Y match
-				"		Y.count(new int[0], 1, 1);\n" + // reference to count is ambiguous, both method count(int[],int...) in Y and method count(int[],int,int...) in Y match
-				"		Y.count(new int[0], 1, 1, 1);\n" + // reference to count is ambiguous, both method count(int[],int...) in Y and method count(int[],int,int...) in Y match
-				"	}\n" +
-				"}\n" +
-				"class Y {\n" +
-				"	public static void count(int[] array, int ... values) {}\n" +
-				"	public static void count(int[] array, int[] ... values) {}\n" +
-				"	public static void count(int[] array, int i, int ... values) {}\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	Y.count(new int[0], 1);\n" + 
-			"	  ^^^^^\n" + 
-			"The method count(int[], int[]) is ambiguous for the type Y\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	Y.count(new int[0], 1, 1);\n" + 
-			"	  ^^^^^\n" + 
-			"The method count(int[], int[]) is ambiguous for the type Y\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	Y.count(new int[0], 1, 1, 1);\n" + 
-			"	  ^^^^^\n" + 
-			"The method count(int[], int[]) is ambiguous for the type Y\n" + 
-			"----------\n"
-		);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81590
-	public void test018() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.*;\n" + 
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		String[][] x = {{\"X\"}, {\"Y\"}};\n" + 
-				"		List l = Arrays.asList(x);\n" + 
-				"		System.out.println(l.size() + \" \" + l.get(0).getClass().getName());\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"2 [Ljava.lang.String;");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81590 - variation
-	public void test019() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.*;\n" +
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		String[][] x = {{\"X\"}, {\"Y\"}};\n" + 
-				"		System.out.println(asList(x[0], x[1]).get(1).getClass().getName());\n" + 
-				"	}\n" + 
-				"	static <U> List<U> asList(U u1, U... us) {\n" + 
-				"		List<U> result = new ArrayList<U>();\n" + 
-				"		result.add(u1);\n" + 
-				"		result.add(us[0]);\n" + 
-				"		return result;\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"java.lang.String");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81590 - variation
-	public void test020() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.*;\n" +
-				"public class X {\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		String[][] x = {{\"X\"}, {\"Y\"}};\n" + 
-				"		System.out.println(asList(x[0], x).get(1).getClass().getName());\n" + 
-				"	}\n" + 
-				"	static <U> List<U> asList(U u1, U... us) {\n" + 
-				"		List<U> result = new ArrayList<U>();\n" + 
-				"		result.add(u1);\n" + 
-				"		result.add(us[0]);\n" + 
-				"		return result;\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"[Ljava.lang.String;");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81911
-	public void test021() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.ArrayList;\n" + 
-				"import java.util.Arrays;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"   public static void main(String[] args) {\n" + 
-				"      String[][] arr = new String[][] { args };\n" + 
-				"      ArrayList<String[]> al = new ArrayList<String[]>(Arrays.asList(arr));\n" + 
-				"   }\n" + 
-				"}\n",
-			},
-			"");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83032
-	public void test022() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	String[] args;\n" +
-				"	public X(String... args) {\n" +
-				"		this.args = args;\n" +
-				"	}\n" +
-				"	public static X foo() {\n" +
-				"		return new X(\"SU\", \"C\", \"CE\", \"SS\"){};\n" +
-				"	}\n" +
-				"	public String bar() {\n" +
-				"		if (this.args != null) {\n" +
-				"			StringBuffer buffer = new StringBuffer();\n" +
-				"			for (String s : this.args) {\n" +
-				"				buffer.append(s);\n" +
-				"			}\n" +
-				"			return String.valueOf(buffer);\n" +
-				"		}\n" +
-				"		return null;\n" +
-				"	}\n" +
-				"	public static void main(String[] args) {\n" +
-				"		System.out.print(foo().bar());\n" +
-				"	}\n" +
-				"}\n",
-			},
-			"SUCCESS");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=83536
-	public void test023() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"    public static void main (String[] args) {\n" + 
-				"        new X().test (new byte[5]);\n" + 
-				"		 System.out.print(\"SUCCESS\");\n" +
-				"    }\n" + 
-				"    private void test (Object... params) {\n" + 
-				"    }\n" + 
-				"}",
-			},
-			"SUCCESS");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87042
-	public void test024() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	static boolean foo(Object... args) {\n" + 
-				"		return args == null;\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		System.out.println(foo(null, null));\n" + 
-				"	}\n" + 
-				"}",
-			},
-			"false");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87042
-	public void test025() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	static boolean foo(Object... args) {\n" + 
-				"		return args == null;\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		System.out.println(foo(null));\n" + 
-				"	}\n" + 
-				"}",
-			},
-			"true");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87318
-	public void test026() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.*;\n" + 
-				"public class X {\n" + 
-				"	static void foo(int[] intarray) {\n" + 
-				"		List<int[]> l = Arrays.asList(intarray);\n" + 
-				"		System.out.print(l.get(0).length);\n" + 
-				"	}\n" + 
-				"	static void foo(String[] strarray) {\n" + 
-				"		List l = Arrays.asList(strarray);\n" + 
-				"		System.out.print(l);\n" + 
-				"	}	\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		foo(new int[]{0, 1});\n" + 
-				"		foo(new String[]{\"a\",\"b\"});\n" + 
-				"		System.out.println(\"done\");\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"2[a, b]done");
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87900
-	public void test027() { // ensure AccVarargs does not collide
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	transient private X() {}\n" + 
-				"	void test() { X x = new X(); }\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	transient private X() {}\r\n" + 
-			"	                  ^^^\n" + 
-			"Illegal modifier for the method X.X()\n" + 
-			"----------\n"
-		);
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	transient private X(Object... o) {}\n" + 
-				"	void test() { X x = new X(1, 2); }\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	transient private X(Object... o) {}\n" + 
-			"	                  ^^^^^^^^^^^^^^\n" + 
-			"Illegal modifier for the method X.X()\n" + 
-			"----------\n"
-		);
-	}
-	// check no offending unnecessary varargs cast gets diagnosed
-	public void test028() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.lang.reflect.Method;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"	void test(Method method){ \n" + 
-				"		try {\n" + 
-				"			method.invoke(this);\n" + 
-				"			method.invoke(this, new Class[0]);\n" + 
-				"			method.invoke(this, (Object[])new Class[0]);\n" + 
-				"		} catch (Exception e) {\n" + 
-				"		}		\n" + 
-				"	}\n" + 
-				"  Zork z;\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 7)\n" + 
-			"	method.invoke(this, new Class[0]);\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type Class[] should explicitly be cast to Object[] for the invocation of the varargs method invoke(Object, Object...) from type Method. It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 12)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n");
-	}	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=91467
-	public void test029() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"/**\n" + 
-				" * Whatever you do, eclipse doesn\'t like it.\n" + 
-				" */\n" + 
-				"public class X {\n" + 
-				"\n" + 
-				"	/**\n" + 
-				"	 * Passing a String vararg to a method needing an Object array makes eclipse\n" + 
-				"	 * either ask for a cast or complain that it is unnecessary. You cannot do\n" + 
-				"	 * it right.\n" + 
-				"	 * \n" + 
-				"	 * @param s\n" + 
-				"	 */\n" + 
-				"	public static void q(String... s) {\n" + 
-				"		 // OK reports: Varargs argument String[] should be cast to Object[] when passed to the method 	printf(String, Object...) from type PrintStream\n" + 
-				"		System.out.printf(\"\", s);\n" + 
-				"		// WRONG reports: Unnecessary cast from String[] to Object[]\n" + 
-				"		System.out.printf(\"\", (Object[]) s); \n" + 
-				"	}\n" + 
-				"  Zork z;\n" +
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 15)\n" + 
-			"	System.out.printf(\"\", s);\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type String[] should explicitly be cast to Object[] for the invocation of the varargs method printf(String, Object...) from type PrintStream. It could alternatively be cast to Object for a varargs invocation\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 19)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=99260
-	public void test030() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.io.Serializable;\n" +
-				"public class X {\n" +
-				"	public static void main(String[] args) {\n" +
-				"		audit(\"osvaldo\", \"localhost\", \"logged\", \"X\", new Integer(0));\n" +
-				"		audit(\"osvaldo\", \"localhost\", \"logged\", \"X\", \"Y\");\n" +
-				"		audit(\"osvaldo\", \"localhost\", \"logged\", new Float(0), new java.awt.Point(0, 0));\n" +
-				"	}\n" +
-				"	public static <A extends Serializable> void audit(String login,\n" +
-				"			String address, String event, A... args) {\n" +
-				"		for (A a : args) {\n" +
-				"			System.out.println(a.getClass());\n" +
-				"		}\n" +
-				"	}\n" +
-				"}",
-			},
-			"class java.lang.String\n" + 
-			"class java.lang.Integer\n" + 
-			"class java.lang.String\n" + 
-			"class java.lang.String\n" + 
-			"class java.lang.Float\n" + 
-			"class java.awt.Point");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=102181
-	public void test031() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		Test<String> t = new Tester();\n" + 
-				"		t.method(\"SUCCESS\");\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	static abstract class Test<A> {\n" + 
-				"		abstract void method(A... args);\n" + 
-				"	}\n" + 
-				"\n" + 
-				"	static class Tester extends Test<String> {\n" + 
-				"\n" + 
-				"		@Override void method(String... args) {\n" + 
-				"			call(args);\n" + 
-				"		}\n" + 
-				"\n" + 
-				"		void call(String[] args) {\n" + 
-				"			for (String str : args)\n" + 
-				"				System.out.println(str);\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"SUCCESS");
-	}	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=102278
-	public void test032() {
-		this.runConformTest(
-			new String[] {
-				"Functor.java",
-				"public class Functor<T> {\n" + 
-				"	public void func(T... args) {\n" + 
-				"		// do noting;\n" + 
-				"	}\n" + 
-				"	\n" + 
-				"	public static void main(String... args) {\n" + 
-				"		Functor<String> functor = new Functor<String>() {\n" + 
-				"			public void func(String... args) {\n" + 
-				"				System.out.println(args.length);\n" + 
-				"			}\n" + 
-				"		};\n" + 
-				"		functor.func(\"Hello!\");\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"1");
-	}		
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=102631
-	public void test033() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void a(boolean b, Object... o) {System.out.print(1);}\n" + 
-				"	void a(Object... o) {System.out.print(2);}\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		X x = new X();\n" + 
-				"		x.a(true);\n" + 
-				"		x.a(true, \"foobar\");\n" + 
-				"		x.a(\"foo\", \"bar\");\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"112");
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void b(boolean b, Object... o) {}\n" + 
-				"	void b(Boolean... o) {}\n" + 
-				"	void c(boolean b, boolean b2, Object... o) {}\n" + 
-				"	void c(Boolean b, Object... o) {}\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		X x = new X();\n" + 
-				"		x.b(true);\n" + 
-				"		x.b(true, false);\n" + 
-				"		x.c(true, true, true);\n" + 
-				"		x.c(Boolean.TRUE, Boolean.TRUE, Boolean.TRUE);\n" + 
-				"	}\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 8)\r\n" + 
-			"	x.b(true);\r\n" + 
-			"	  ^\n" + 
-			"The method b(boolean, Object[]) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 9)\r\n" + 
-			"	x.b(true, false);\r\n" + 
-			"	  ^\n" + 
-			"The method b(boolean, Object[]) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 10)\r\n" + 
-			"	x.c(true, true, true);\r\n" + 
-			"	  ^\n" + 
-			"The method c(boolean, boolean, Object[]) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"4. ERROR in X.java (at line 11)\r\n" + 
-			"	x.c(Boolean.TRUE, Boolean.TRUE, Boolean.TRUE);\r\n" + 
-			"	  ^\n" + 
-			"The method c(boolean, boolean, Object[]) is ambiguous for the type X\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=106106
-	public void test034() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.*; \n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"  public static void main(String[] args) {\n" + 
-				"    double[][] d = { { 1 } , { 2 } }; \n" + 
-				"    List<double[]> l = Arrays.asList(d); // <T> List<T> asList(T... a)\n" + 
-				"    System.out.println(\"List size: \" + l.size());\n" + 
-				"  }\n" + 
-				"}\n",
-			},
-			"List size: 2");
-	}
-	//	https://bugs.eclipse.org/bugs/show_bug.cgi?id=108095
-	public void test035() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"  public static <T> void foo(T ... values) {\n" +
-				"      System.out.print(values.getClass());\n" +
-				"  }\n" +
-				"	public static void main(String args[]) {\n" +
-				"	   X.<String>foo(\"monkey\", \"cat\");\n" +
-				"      X.<String>foo(new String[] { \"monkey\", \"cat\" });\n" +
-				"	}\n" +
-				"}",
-			},
-			"class [Ljava.lang.String;class [Ljava.lang.String;");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=110563
-	public void test036() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.util.*;\n" + 
-				"public class X {\n" + 
-				"    public void testBreak() {\n" + 
-				"        Collection<Class> classes = new ArrayList<Class>();\n" + 
-				"        classes.containsAll(Arrays.asList(String.class, Integer.class, Long.class));\n" + 
-				"    }\n" + 
-				"}\n",
-			},
-			"");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=110783
-	public void test037() {
-		this.runConformTest(
-			new String[] {
-				"V.java",
-				"public class V {\n" + 
-				"    public static void main(String[] s) {\n" + 
-				"        V v = new V();\n" + 
-				"        v.foo(\"\", v, null, \"\");\n" + 
-				"        v.foo(\"\", v, null, \"\", 1);\n" + 
-				"        v.foo2(\"\");\n" + 
-				"        v.foo2(\"\", null);\n" + 
-				"        v.foo2(\"\", null, null);\n" + 
-				"        v.foo3(\"\", v, null, \"\", null);\n" + 
-				"    }\n" + 
-				"    void foo(String s, V v, Object... obs) {System.out.print(1);}\n" + 
-				"    void foo(String s, V v, String r, Object o, Object... obs) {System.out.print(2);}\n" + 
-				"    void foo2(Object... a) {System.out.print(1);}\n" + 
-				"    void foo2(String s, Object... a) {System.out.print(2);}\n" + 
-				"    void foo2(String s, Object o, Object... a) {System.out.print(3);}\n" + 
-				"    void foo3(String s, V v, String... obs) {System.out.print(1);}\n" + 
-				"    void foo3(String s, V v, String r, Object o, Object... obs) {System.out.print(2);}\n" + 
-				"}\n",
-			},
-			"222232");
-		this.runNegativeTest(
-			new String[] {
-				"V.java",
-				"public class V {\n" + 
-				"    public static void main(String[] s) {\n" + 
-				"        V v = new V();\n" + 
-				"        v.foo2(null, \"\");\n" + 
-				"        v.foo2(null, \"\", \"\");\n" + 
-				"        v.foo3(\"\", v, null, \"\");\n" + 
-				"    }\n" + 
-				"    void foo2(String s, Object... a) {System.out.print(2);}\n" + 
-				"    void foo2(String s, Object o, Object... a) {System.out.print(3);}\n" + 
-				"    void foo3(String s, V v, String... obs) {System.out.print(1);}\n" + 
-				"    void foo3(String s, V v, String r, Object o, Object... obs) {System.out.print(2);}\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in V.java (at line 4)\r\n" + 
-			"	v.foo2(null, \"\");\r\n" + 
-			"	  ^^^^\n" + 
-			"The method foo2(String, Object[]) is ambiguous for the type V\n" + 
-			"----------\n" + 
-			"2. ERROR in V.java (at line 5)\r\n" + 
-			"	v.foo2(null, \"\", \"\");\r\n" + 
-			"	  ^^^^\n" + 
-			"The method foo2(String, Object[]) is ambiguous for the type V\n" + 
-			"----------\n" + 
-			"3. ERROR in V.java (at line 6)\r\n" + 
-			"	v.foo3(\"\", v, null, \"\");\r\n" + 
-			"	  ^^^^\n" + 
-			"The method foo3(String, V, String[]) is ambiguous for the type V\n" + 
-			"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105801
-	public void test038() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.io.Serializable;\n" + 
-				"import java.util.Arrays;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"    static void varargs(Serializable... items) {\n" + 
-				"        System.out.println(Arrays.deepToString(items) + \" (argument wrapped)\");\n" + 
-				"    }\n" + 
-				"    @SuppressWarnings({\"boxing\"})\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"	     varargs(new Object[] {1, 2}); //warns \"Varargs argument Object[] \n" + 
-				"	     //should be cast to Serializable[] ..\", but proposed cast to\n" + 
-				"	     //Serializable[] fails at runtime (javac does not warn here)\n" + 
-				"	     varargs((Serializable[])new Object[] {1, 2}); //warns \"Varargs argument Object[] \n" + 
-				"	     //should be cast to Serializable[] ..\", but proposed cast to\n" + 
-				"	     //Serializable[] fails at runtime (javac does not warn here)\n" + 
-				"        Zork z;\n" + 
-				"    }\n" + 
-				"}\n",
-			},
-			// check no varargs warning
-			"----------\n" + 
-			"1. WARNING in X.java (at line 13)\n" + 
-			"	varargs((Serializable[])new Object[] {1, 2}); //warns \"Varargs argument Object[] \n" + 
-			"	        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Unnecessary cast from Object[] to Serializable[]\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 16)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105801 - variation
-	public void test039() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.io.Serializable;\n" + 
-				"import java.util.Arrays;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"    static void varargs(Serializable... items) {\n" + 
-				"        System.out.print(Arrays.deepToString(items) + \" (argument wrapped)\");\n" + 
-				"    }\n" + 
-				"    @SuppressWarnings({\"boxing\"})\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"    	try {\n" + 
-				"	        varargs(new Object[] {1, 2}); //warns \"Varargs argument Object[] \n" + 
-				"	        	//should be cast to Serializable[] ..\", but proposed cast to\n" + 
-				"	            //Serializable[] fails at runtime (javac does not warn here)\n" + 
-				"	        varargs((Serializable[])new Object[] {1, 2}); //warns \"Varargs argument Object[] \n" + 
-				"	    	//should be cast to Serializable[] ..\", but proposed cast to\n" + 
-				"	        //Serializable[] fails at runtime (javac does not warn here)\n" + 
-				"    	} catch(ClassCastException e) {\n" + 
-				"    		System.out.println(\"SUCCESS\");\n" + 
-				"    	}\n" + 
-				"    }\n" + 
-				"}\n",
-			},
-			"[[1, 2]] (argument wrapped)SUCCESS");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105801 - variation
-	public void test040() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.io.Serializable;\n" + 
-				"import java.util.Arrays;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"    static void array(Serializable... items) {\n" + 
-				"        System.out.print(Arrays.deepToString(items));\n" + 
-				"    }\n" + 
-				"    @SuppressWarnings({\"boxing\"})\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"        array(new Serializable[] {3, 4});\n" + 
-				"        array(new Integer[] {5, 6}); //warns (as javac does)\n" + 
-				"        array(null); //warns (as javac does)\n" + 
-				"    }\n" + 
-				"}\n",
-			},
-			"[3, 4][5, 6]null");
-	}	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105801 - variation
-	public void test041() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.io.Serializable;\n" + 
-				"import java.util.Arrays;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"    static void array(Serializable... items) {\n" + 
-				"        System.out.print(Arrays.deepToString(items));\n" + 
-				"    }\n" + 
-				"    @SuppressWarnings({\"boxing\"})\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"        array(new Serializable[] {3, 4});\n" + 
-				"        array(new Integer[] {5, 6}); //warns (as javac does)\n" + 
-				"        array(null); //warns (as javac does)\n" + 
-				"        Zork z;\n" + 
-				"    }\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 11)\n" + 
-			"	array(new Integer[] {5, 6}); //warns (as javac does)\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type Integer[] should explicitly be cast to Serializable[] for the invocation of the varargs method array(Serializable...) from type X. It could alternatively be cast to Serializable for a varargs invocation\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 12)\n" + 
-			"	array(null); //warns (as javac does)\n" + 
-			"	^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to Serializable[] for the invocation of the varargs method array(Serializable...) from type X. It could alternatively be cast to Serializable for a varargs invocation\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 13)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105801 - variation
-	public void test042() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.io.Serializable;\n" + 
-				"import java.util.Arrays;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"    static void varargs(Serializable... items) {\n" + 
-				"        System.out.print(Arrays.deepToString(items) + \" (argument wrapped)\");\n" + 
-				"    }\n" + 
-				"    @SuppressWarnings({\"boxing\"})\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"        varargs((Serializable) new Object[] {1, 2});\n" + 
-				"        varargs((Serializable) new Serializable[] {3, 4}); //warns about\n" + 
-				"            //unnecessary cast, although cast is necessary (causes varargs call)\n" + 
-				"        varargs((Serializable) new Integer[] {5, 6});\n" + 
-				"        varargs((Serializable) null);\n" + 
-				"    }\n" + 
-				"}\n",
-			},
-			"[[1, 2]] (argument wrapped)[[3, 4]] (argument wrapped)[[5, 6]] (argument wrapped)[null] (argument wrapped)");
-	}	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105801 - variation
-	public void test043() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"import java.io.Serializable;\n" + 
-				"import java.util.Arrays;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"    static void varargs(Serializable... items) {\n" + 
-				"        System.out.print(Arrays.deepToString(items) + \" (argument wrapped)\");\n" + 
-				"    }\n" + 
-				"    @SuppressWarnings({\"boxing\"})\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"        varargs((Serializable) new Object[] {1, 2});\n" + 
-				"        varargs((Serializable) new Serializable[] {3, 4}); //warns about\n" + 
-				"            //unnecessary cast, although cast is necessary (causes varargs call)\n" + 
-				"        varargs((Serializable) new Integer[] {5, 6});\n" + 
-				"        varargs((Serializable) null);\n" + 
-				"        Zork z;\n" + 
-				"    }\n" + 
-				"}\n",
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 10)\n" + 
-			"	varargs((Serializable) new Object[] {1, 2});\n" + 
-			"	        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Unnecessary cast from Object[] to Serializable\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 15)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105801 - variation
-	public void test044() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"import java.io.Serializable;\n" + 
-				"import java.util.Arrays;\n" + 
-				"\n" + 
-				"public class X {\n" + 
-				"    static void array(Serializable... items) {\n" + 
-				"        System.out.print(Arrays.deepToString(items));\n" + 
-				"    }\n" + 
-				"    @SuppressWarnings({\"boxing\"})\n" + 
-				"    public static void main(String[] args) {\n" + 
-				"        array((Serializable[]) new Serializable[] {3, 4}); //warns about unnecessary cast\n" + 
-				"        array((Serializable[]) new Integer[] {5, 6});\n" + 
-				"        array((Serializable[]) null);\n" + 
-				"        try {\n" + 
-				"	        array((Serializable[]) new Object[] {1, 2}); // CCE at run time\n" + 
-				"        } catch(ClassCastException e) {\n" + 
-				"        	System.out.println(\"SUCCESS\");\n" + 
-				"        }\n" + 
-				"    }\n" + 
-				"}\n",
-			},
-			"[3, 4][5, 6]nullSUCCESS");
-	}	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=105801 - variation
-	public void test045() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"import java.io.Serializable;\n" + 
-					"import java.util.Arrays;\n" + 
-					"\n" + 
-					"public class X {\n" + 
-					"    static void array(Serializable... items) {\n" + 
-					"        System.out.print(Arrays.deepToString(items));\n" + 
-					"    }\n" + 
-					"    @SuppressWarnings({\"boxing\"})\n" + 
-					"    public static void main(String[] args) {\n" + 
-					"        array((Serializable[]) new Serializable[] {3, 4}); //warns about unnecessary cast\n" + 
-					"        array((Serializable[]) new Integer[] {5, 6});\n" + 
-					"        array((Serializable[]) null);\n" + 
-					"	     array((Serializable[]) new Object[] {1, 2}); // CCE at run time\n" + 
-					"        Zork z;\n" + 
-					"    }\n" + 
-					"}\n",
-				},
-				"----------\n" + 
-				"1. WARNING in X.java (at line 10)\n" + 
-				"	array((Serializable[]) new Serializable[] {3, 4}); //warns about unnecessary cast\n" + 
-				"	      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Unnecessary cast from Serializable[] to Serializable[]\n" + 
-				"----------\n" + 
-				"2. WARNING in X.java (at line 13)\n" + 
-				"	array((Serializable[]) new Object[] {1, 2}); // CCE at run time\n" + 
-				"	      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Unnecessary cast from Object[] to Serializable[]\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 14)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=133918
-	public void test046() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"public class X {\n" + 
-					"	void foo(Throwable... exceptions) {\n" + 
-					"	}\n" + 
-					"	void bar(Exception[] exceptions) {\n" + 
-					"		foo((Throwable[])exceptions);\n" + 
-					"	}\n" + 
-					"	Zork z;\n" +
-					"}\n",
-				},
-				"----------\n" + 
-				"1. WARNING in X.java (at line 5)\n" + 
-				"	foo((Throwable[])exceptions);\n" + 
-				"	    ^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Unnecessary cast from Exception[] to Throwable[]\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 7)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140168
-	public void test047() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void foo(Object id, Object value, String... groups) {}\n" + 
-				"	void foo(Y y, String... groups) {System.out.println(true);}\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		new X().foo(new Y(), \"a\", \"b\");\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class Y {}",
-			},
-			"true");
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void foo(Y y, Object value, String... groups) {}\n" + 
-				"	void foo(Object id, String... groups) {}\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		new X().foo(new Y(), \"a\", \"b\");\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class Y {}",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\r\n" + 
-			"	new X().foo(new Y(), \"a\", \"b\");\r\n" + 
-			"	        ^^^\n" + 
-			"The method foo(Y, Object, String[]) is ambiguous for the type X\n" + 
-			"----------\n"
-			//reference to foo is ambiguous, both method foo(Y,java.lang.Object,java.lang.String...) in X and method foo(java.lang.Object,java.lang.String...) in X match
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=139931
-	public void test048() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"public class X {\n" + 
-					"        Y<String> [] foo() {\n" + 
-					"                return null;\n" + 
-					"        }\n" + 
-					"        void bar(Y... y) {\n" + 
-					"        }\n" + 
-					"        void fred() {\n" + 
-					"                bar(foo());\n" + 
-					"                bar((Y[])foo());\n" + 
-					"                Zork z;\n" +
-					"        }\n" + 
-					"}\n" + 
-					"class Y<E> {\n" + 
-					"}\n",
-				},
-				"----------\n" + 
-				"1. WARNING in X.java (at line 5)\n" + 
-				"	void bar(Y... y) {\n" + 
-				"	         ^\n" + 
-				"Y is a raw type. References to generic type Y<E> should be parameterized\n" + 
-				"----------\n" + 
-				"2. WARNING in X.java (at line 9)\n" + 
-				"	bar((Y[])foo());\n" + 
-				"	    ^^^^^^^^^^\n" + 
-				"Unnecessary cast from Y<String>[] to Y[]\n" + 
-				"----------\n" + 
-				"3. ERROR in X.java (at line 10)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=141704
-	public void test049() {
-		this.runConformTest(
-				new String[] {
-					"Y.java",
-					"public class Y extends X {\n" +
-					"	public static void main(String[] args) {\n" + 
-					"		Y y = new Y();\n" + 
-					"		y.a(null, \"\");\n" + 
-					"		y.a(null);\n" +
-					"		y.a(y, \"\");\n" + 
-					"		y.a(y);\n" +
-					"		y.a(y, \"\", y, y);\n" + 
-					"		y.a(y, y, y);\n" +
-					"	}\n" + 
-					"	@Override public void a(Object anObject, String aString, Object... args) { super.a(anObject, aString, this, args); }\n" + 
-					"	@Override public void a(Object anObject, Object... args) { super.a(anObject, this, args); }\n" + 
-					"}\n" + 
-					"class X implements I {\n" + 
-					"	public void a(Object anObject, String aString, Object... args) { System.out.print(1); }\n" + 
-					"	public void a(Object anObject, Object... args) { System.out.print(2); }\n" + 
-					"}\n" + 
-					"interface I {\n" + 
-					"	void a(Object anObject, String aString, Object... args);\n" + 
-					"	void a(Object anObject, Object... args);\n" + 
-					"}\n",
-				},
-				"121212");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=141800
-	public void test050() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					" import java.util.Arrays;\n" + 
-					" public class X {\n" + 
-					"   public static void main( String args[] ) {\n" + 
-					"      Object test = new Object[] { \"Hello\", \"World\" };\n" + 
-					"      System.out.println(Arrays.asList(test));\n" + 
-					"      System.out.println(Arrays.asList((Object[])test)); // Warning here\n" + 
-					"	   Zork z;\n" +
-					"   }\n" + 
-					"}",
-				},
-				// ensure no complaint about unnecessary cast
-				"----------\n" + 
-				"1. ERROR in X.java (at line 7)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}	
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=141800 - variation
-	public void test051() {
-		this.runConformTest(
-				new String[] {
-					"X.java",
-					" import java.util.Arrays;\n" + 
-					" public class X {\n" + 
-					"   public static void main( String args[] ) {\n" + 
-					"      Object test = new Object[] { \"Hello\", \"World\" };\n" + 
-					"      System.out.print(Arrays.asList(test).size());\n" + 
-					"      System.out.println(Arrays.asList((Object[])test).size()); // Warning here\n" + 
-					"   }\n" + 
-					"}",
-				},
-				"12");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=159607
-	public void test052() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"class X {\n" + 
-					"	void addChildren(Widget w) {\n" + 
-					"		if (w instanceof Composite) {\n" + 
-					"			Composite composite = (Composite) w;\n" + 
-					"			addAll((Widget[]) composite.getChildren());\n" + 
-					"			addAll(composite.getChildren());\n" + 
-					"		}\n" + 
-					"		Zork z;\n" +
-					"	}\n" + 
-					"	void addAll(Widget... widgets) {\n" + 
-					"	}\n" + 
-					"}\n" + 
-					"\n" + 
-					"class Widget {}\n" + 
-					"class Control extends Widget {}\n" + 
-					"class Composite extends Control {\n" + 
-					"	Control[] getChildren() {\n" + 
-					"		return null;\n" + 
-					"	}\n" + 
-					"}", // =================,
-				},
-				"----------\n" + 
-				"1. WARNING in X.java (at line 5)\n" + 
-				"	addAll((Widget[]) composite.getChildren());\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Unnecessary cast from Control[] to Widget[]\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}		
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=159607 - variation
-	public void test053() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"class X {\n" + 
-					"	void addChildren(Widget w) {\n" + 
-					"		if (w instanceof Composite) {\n" + 
-					"			Composite composite = (Composite) w;\n" + 
-					"			addAll((Control[]) composite.getChildren());\n" + 
-					"			addAll(composite.getChildren());\n" + 
-					"		}\n" + 
-					"		Zork z;\n" +
-					"	}\n" + 
-					"	void addAll(Control... widgets) {\n" + 
-					"	}\n" + 
-					"}\n" + 
-					"\n" + 
-					"class Widget {}\n" + 
-					"class Control extends Widget {}\n" + 
-					"class Composite extends Control {\n" + 
-					"	Control[] getChildren() {\n" + 
-					"		return null;\n" + 
-					"	}\n" + 
-					"}", // =================,
-				},
-				"----------\n" + 
-				"1. WARNING in X.java (at line 5)\n" + 
-				"	addAll((Control[]) composite.getChildren());\n" + 
-				"	       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Unnecessary cast from Control[] to Control[]\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 8)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}		
-	public void test054() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"public class X {\n" + 
-					"	Zork z;\n" + 
-					"	public static void varargs(Object... args) {\n" + 
-					"		if (args == null) {\n" + 
-					"			System.out.println(\"args is null\");\n" + 
-					"			return;\n" + 
-					"		}\n" + 
-					"		if (args.length == 0) {\n" + 
-					"			System.out.println(\"args is of length 0\");\n" + 
-					"			return;\n" + 
-					"		}\n" + 
-					"\n" + 
-					"		System.out.println(args.length + \" \" + args[0]);\n" + 
-					"	}\n" + 
-					"\n" + 
-					"	public static void main(String[] args) {\n" + 
-					"		@SuppressWarnings(\"boxing\")\n" + 
-					"		Integer[] i = { 0, 1, 2, 3, 4 };\n" + 
-					"		varargs(i);\n" + 
-					"		varargs((Object[]) i);\n" + 
-					"		varargs((Object) i);\n" + 
-					"		varargs(i.clone());\n" + 
-					"	}\n" + 
-					"}\n", // =================
-				},
-				"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"2. WARNING in X.java (at line 19)\n" + 
-				"	varargs(i);\n" + 
-				"	^^^^^^^^^^\n" + 
-				"The argument of type Integer[] should explicitly be cast to Object[] for the invocation of the varargs method varargs(Object...) from type X. It could alternatively be cast to Object for a varargs invocation\n" + 
-				"----------\n" + 
-				"3. WARNING in X.java (at line 22)\n" + 
-				"	varargs(i.clone());\n" + 
-				"	^^^^^^^^^^^^^^^^^^\n" + 
-				"The argument of type Integer[] should explicitly be cast to Object[] for the invocation of the varargs method varargs(Object...) from type X. It could alternatively be cast to Object for a varargs invocation\n" + 
-				"----------\n");
-	}		
-	public void test055() {
-		this.runConformTest(
-				new String[] {
-					"X.java",
-					"public class X {\n" + 
-					"	private static int elementCount(Object... elements) {\n" + 
-					"     return elements == null ? 0 : elements.length;\n" + 
-					"   }\n" + 
-					"   public static void main(String... args) {\n" + 
-					"     System.out.print(\"null length array: \" + elementCount(null));\n" + 
-					"     System.out.print(\"/[null] length array: \" + elementCount((Object)null));\n" + 
-					"     System.out.print(\"/empty length array: \" + elementCount());\n" + 
-					"     System.out.println(\"/[a,b,c] length array: \" + elementCount(\"a\", \"b\", \"c\"));\n" + 
-					"   }\n" + 
-					"}", // =================
-				},
-				"null length array: 0/[null] length array: 1/empty length array: 0/[a,b,c] length array: 3");
-	}		
-	public void test056() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"public class X {\n" + 
-					"	Zork z;\n" +
-					"	private static int elementCount(Object... elements) {\n" + 
-					"     return elements == null ? 0 : elements.length;\n" + 
-					"   }\n" + 
-					"   public static void main(String... args) {\n" + 
-					"     System.out.print(\"null length array: \" + elementCount(null));\n" + 
-					"     System.out.print(\"/[null] length array: \" + elementCount((Object)null));\n" + 
-					"     System.out.print(\"/empty length array: \" + elementCount());\n" + 
-					"     System.out.println(\"/[a,b,c] length array: \" + elementCount(\"a\", \"b\", \"c\"));\n" + 
-					"   }\n" + 
-					"}", // =================
-				},
-				"----------\n" + 
-				"1. ERROR in X.java (at line 2)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n" + 
-				"2. WARNING in X.java (at line 7)\n" + 
-				"	System.out.print(\"null length array: \" + elementCount(null));\n" + 
-				"	                                         ^^^^^^^^^^^^^^^^^^\n" + 
-				"The argument of type null should explicitly be cast to Object[] for the invocation of the varargs method elementCount(Object...) from type X. It could alternatively be cast to Object for a varargs invocation\n" + 
-				"----------\n");
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=163889
-	public void test057() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"import java.lang.annotation.RetentionPolicy;\n" + 
-					"\n" + 
-					"public class X {\n" + 
-					"\n" + 
-					"  void a(Enum<?>...enums) {}\n" + 
-					"\n" + 
-					"  void b () {\n" + 
-					"    RetentionPolicy[] t = null;\n" + 
-					"    a(t);\n" + 
-					"    a((Enum<?>[])t);\n" + 
-					"    Zork z;\n" +	 
-					"  }\n" + 
-					"}\n", // =================
-				},
-				"----------\n" + 
-				"1. WARNING in X.java (at line 10)\n" + 
-				"	a((Enum<?>[])t);\n" + 
-				"	  ^^^^^^^^^^^^\n" + 
-				"Unnecessary cast from RetentionPolicy[] to Enum<?>[]\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 11)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}		
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=162171
-	public void test058() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"public class X {\n" + 
-					"    public void testPassingSubclassArrayAsVararg() {\n" + 
-					"        // The argument of type VarargsTest.Subclass[] should explicitly be\n" + 
-					"        // cast to VarargsTest.Parent[] for the invocation of the varargs\n" + 
-					"        // method processVararg(VarargsTest.Parent...) from type VarargsTest.\n" + 
-					"        // It could alternatively be cast to VarargsTest.Parent for a varargs\n" + 
-					"        // invocation\n" + 
-					"        processVararg(new Subclass[] {});\n" + 
-					"    }\n" + 
-					"\n" + 
-					"    public void testPassingSubclassArrayAsVarargWithCast() {\n" + 
-					"        // Unnecessary cast from VarargsTest.Subclass[] to\n" + 
-					"        // VarargsTest.Parent[]\n" + 
-					"        processVararg((Parent[]) new Subclass[] {});\n" + 
-					"        processVararg(new Subclass[] {});\n" + 
-					"        Zork z;\n" + 
-					"    }\n" + 
-					"\n" + 
-					"    private void processVararg(Parent... objs) {\n" + 
-					"    }\n" + 
-					"\n" + 
-					"    class Parent {\n" + 
-					"    }\n" + 
-					"\n" + 
-					"    class Subclass extends Parent {\n" + 
-					"    }\n" + 
-					"}\n", // =================
-				},
-				"----------\n" + 
-				"1. WARNING in X.java (at line 14)\n" + 
-				"	processVararg((Parent[]) new Subclass[] {});\n" + 
-				"	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"Unnecessary cast from X.Subclass[] to X.Parent[]\n" + 
-				"----------\n" + 
-				"2. ERROR in X.java (at line 16)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}		
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=170765
-	public void test059() {
-		this.runNegativeTest(
-				new String[] {
-					"X.java",
-					"public class X {\n" + 
-					"	public void foo() {\n" + 
-					"		Integer[] array = null;\n" + 
-					"		varargs(array);\n" + 
-					"	}\n" + 
-					"\n" + 
-					"	public void varargs(Number... o) {\n" + 
-					"	}\n" + 
-					"    Zork z;\n" +	 
-					"}\n", // =================
-				},
-				"----------\n" + 
-				"1. ERROR in X.java (at line 9)\n" + 
-				"	Zork z;\n" + 
-				"	^^^^\n" + 
-				"Zork cannot be resolved to a type\n" + 
-				"----------\n");
-	}		
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/XLargeTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/XLargeTest.java
deleted file mode 100644
index 8ef6041..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/XLargeTest.java
+++ /dev/null
@@ -1,11826 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.compiler.regression;
-
-import java.util.Map;
-import java.util.Random;
-
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-import junit.framework.Test;
-
-public class XLargeTest extends AbstractRegressionTest {
-	
-public XLargeTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-
-public void test001() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"\n" +
-			"public class X {\n" +
-			"    public static int i,j;\n" +
-			"    public static long l;\n" +
-			"\n" +
-			"    public static void main(String args[]) {\n" +
-			"    	foo();\n" +
-			"    }\n" +
-			"    \n" +
-			"    public static void foo() {\n" +
-			"	byte b = 0;\n" +
-			"	while ( b < 4 ) {\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"    	    b++;\n" +
-			"	}\n" +
-			"	if (b == 4 && i == 0) System.out.println(\"SUCCESS\");\n" +
-			"	else System.out.println(\"FAILED\");\n" +
-			"   }\n" +
-			"}"
-		},
-		"SUCCESS");
-}
-
-public void test002() {
-	this.runConformTest(
-		new String[] {
-			"X2.java",
-			"public class X2 {\n" +
-			"    public static boolean b = false;\n" +
-			"    public static int i, l, j;\n" +
-			"\n" +
-			"    public static void main(String args[]) {\n" +
-			"    }\n" +
-			"    \n" +
-			"    static {\n" +
-			"	while (b) {\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"    	    b = false;\n" +
-			"	}\n" +
-			"	if (i == 0) {\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"	} else {\n" +
-			"		System.out.println(\"FAILED\");\n" +
-			"	}\n" +
-			"    }\n" +
-			"}"
-		},
-		"SUCCESS");
-}
-
-public void test003() {
-	this.runConformTest(
-		new String[] {
-			"X3.java",
-			"\n" +
-			"public class X3 {\n" +
-			"    public int i,j;\n" +
-			"    public long l;\n" +
-			"\n" +
-			"    public static void main(String args[]) {\n" +
-			"    	X3 x = new X3();\n" +
-			"    }\n" +
-			"    \n" +
-			"    public X3() {\n" +
-			"	byte b = 0;\n" +
-			"	i = j = 0;\n" +
-			"	l = 0L;\n" +
-			"	while ( b < 4 ) {\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"    	    b++;\n" +
-			"	}\n" +
-			"	if (b == 4 && i == 0) {\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"	} else {\n" +
-			"		System.out.println(\"FAILED\");\n" +
-			"	}\n" +
-			"    }\n" +
-			"}"
-		},
-		"SUCCESS");
-}
-
-public void test004() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"\n" +
-			"public class X {\n" +
-			"    public static int i,j;\n" +
-			"    public static long l;\n" +
-			"\n" +
-			"    public static void main(String args[]) {\n" +
-			"    	foo();\n" +
-			"    }\n" +
-			"    \n" +
-			"    public static void foo() {\n" +
-			"	byte b = 0;\n" +
-			"	for (int i = 0; i < 1; i++) {\n" +
-			"	while ( b < 4 ) {\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"    	    b++;\n" +
-			"	}\n" +
-			"	}\n" +
-			"	if (b == 4 && i == 0) System.out.println(\"SUCCESS\");\n" +
-			"	else System.out.println(\"FAILED\");\n" +
-			"    }\n" +
-			"}"
-		},
-		"SUCCESS");
-}
-
-public void test005() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public static void main(String args[]) {\n" + 
-		"    System.out.println(\"\" + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' \n" + 
-		"      + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\' + \'a\');\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=26129
- */
-public void test006() {
-	this.runConformTest(
-		new String[] {
-			"A.java",
-			"public class A {" + // $NON-NLS-1$
-			"    public static void main(String[] args) {" + // $NON-NLS-1$
-			"        int i = 1;" + // $NON-NLS-1$
-			"        try {" + // $NON-NLS-1$
-			"            if (i == 0)" + // $NON-NLS-1$
-			"                throw new Exception();" + // $NON-NLS-1$
-			"            return;" + // $NON-NLS-1$
-			"        } catch (Exception e) {" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"        	i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;i = 366 * i % 534;" + // $NON-NLS-1$
-			"		} finally {" + // $NON-NLS-1$
-			"            if (i == 1)" + // $NON-NLS-1$
-			"                System.out.print(\"OK\");" + // $NON-NLS-1$
-			"            else" + // $NON-NLS-1$
-			"                System.out.print(\"FAIL\");" + // $NON-NLS-1$
-			"        }" + // $NON-NLS-1$
-			"    }" + // $NON-NLS-1$
-			"}"// $NON-NLS-1$
-		},
-		"OK");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=31811
- */
-public void test007() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"\n" +
-			"public class X {\n" +
-			"    public static int i,j;\n" +
-			"    public static long l;\n" +
-			"\n" +
-			"    public static void main(String args[]) {\n" +
-			"    	foo();\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"    }\n" +
-			"    \n" +
-			"    public static void foo() {\n" +
-			"	byte b = 0;\n" +
-			"	 for(;;) {\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"	    i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;i*=l+j;\n" +
-			"		b++;\n" +
-			"    	if (b > 1) {\n" +
-			"			break;" +
-			"		};\n" +
-			"	};\n" +
-			"	}\n" +
-			"}"
-		},
-		"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=115408
-public void test008() {
-	Map options = getCompilerOptions();
-	options.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.DO_NOT_GENERATE);
-	options.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.DO_NOT_GENERATE);
-	options.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.DO_NOT_GENERATE);
-	this.runConformTest(new String[] {
-		"X.java",
-		"public class X extends B implements IToken {\n" + 
-		"	public X( int t, int endOffset, char [] filename, int line  ) {\n" + 
-		"		super( t, filename, line );\n" + 
-		"		setOffsetAndLength( endOffset );\n" + 
-		"	}\n" + 
-		"	protected int offset;\n" + 
-		"	public int getOffset() { \n" + 
-		"		return offset; \n" + 
-		"	}\n" + 
-		"	public int getLength() {\n" + 
-		"		return getCharImage().length;\n" + 
-		"	}\n" + 
-		"	protected void setOffsetAndLength( int endOffset ) {\n" + 
-		"		this.offset = endOffset - getLength();\n" + 
-		"	}\n" + 
-		"	public String foo() { \n" + 
-		"		switch ( getType() ) {\n" + 
-		"				case IToken.tCOLONCOLON :\n" + 
-		"					return \"::\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tCOLON :\n" + 
-		"					return \":\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tSEMI :\n" + 
-		"					return \";\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tCOMMA :\n" + 
-		"					return \",\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tQUESTION :\n" + 
-		"					return \"?\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tLPAREN  :\n" + 
-		"					return \"(\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tRPAREN  :\n" + 
-		"					return \")\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tLBRACKET :\n" + 
-		"					return \"[\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tRBRACKET :\n" + 
-		"					return \"]\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tLBRACE :\n" + 
-		"					return \"{\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tRBRACE :\n" + 
-		"					return \"}\"; //$NON-NLS-1$\n" + 
-		"				case IToken.tPLUSASSIGN :\n" + 
-		"					return \"+=\"; //$NON-NLS-1$\n" + 
-		"				case IToken.tINCR :\n" + 
-		"					return \"++\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tPLUS :\n" + 
-		"					return \"+\"; //$NON-NLS-1$\n" + 
-		"				case IToken.tMINUSASSIGN :\n" + 
-		"					return \"-=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tDECR :\n" + 
-		"					return \"--\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tARROWSTAR :\n" + 
-		"					return \"->*\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tARROW :\n" + 
-		"					return \"->\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tMINUS :\n" + 
-		"					return \"-\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tSTARASSIGN :\n" + 
-		"					return \"*=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tSTAR :\n" + 
-		"					return \"*\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tMODASSIGN :\n" + 
-		"					return \"%=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tMOD :\n" + 
-		"					return \"%\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tXORASSIGN :\n" + 
-		"					return \"^=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tXOR :\n" + 
-		"					return \"^\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tAMPERASSIGN :\n" + 
-		"					return \"&=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tAND :\n" + 
-		"					return \"&&\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tAMPER :\n" + 
-		"					return \"&\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tBITORASSIGN :\n" + 
-		"					return \"|=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tOR :\n" + 
-		"					return \"||\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tBITOR :\n" + 
-		"					return \"|\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tCOMPL :\n" + 
-		"					return \"~\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tNOTEQUAL :\n" + 
-		"					return \"!=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tNOT :\n" + 
-		"					return \"!\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tEQUAL :\n" + 
-		"					return \"==\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tASSIGN :\n" + 
-		"					return \"=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tSHIFTL :\n" + 
-		"					return \"<<\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tLTEQUAL :\n" + 
-		"					return \"<=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tLT :\n" + 
-		"					return \"<\"; //$NON-NLS-1$\n" + 
-		"				case IToken.tSHIFTRASSIGN :\n" + 
-		"					return \">>=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tSHIFTR :\n" + 
-		"					return \">>\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tGTEQUAL :\n" + 
-		"					return \">=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tGT :\n" + 
-		"					return \">\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tSHIFTLASSIGN :\n" + 
-		"					return \"<<=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tELLIPSIS :\n" + 
-		"					return \"...\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tDOTSTAR :\n" + 
-		"					return \".*\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tDOT :\n" + 
-		"					return \".\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tDIVASSIGN :\n" + 
-		"					return \"/=\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.tDIV :\n" + 
-		"					return \"/\" ; //$NON-NLS-1$\n" + 
-		"				case IToken.t_and :\n" + 
-		"					return Keywords.AND;\n" + 
-		"				case IToken.t_and_eq :\n" + 
-		"					return Keywords.AND_EQ ;\n" + 
-		"				case IToken.t_asm :\n" + 
-		"					return Keywords.ASM ;\n" + 
-		"				case IToken.t_auto :\n" + 
-		"					return Keywords.AUTO ;\n" + 
-		"				case IToken.t_bitand :\n" + 
-		"					return Keywords.BITAND ;\n" + 
-		"				case IToken.t_bitor :\n" + 
-		"					return Keywords.BITOR ;\n" + 
-		"				case IToken.t_bool :\n" + 
-		"					return Keywords.BOOL ;\n" + 
-		"				case IToken.t_break :\n" + 
-		"					return Keywords.BREAK ;\n" + 
-		"				case IToken.t_case :\n" + 
-		"					return Keywords.CASE ;\n" + 
-		"				case IToken.t_catch :\n" + 
-		"					return Keywords.CATCH ;\n" + 
-		"				case IToken.t_char :\n" + 
-		"					return Keywords.CHAR ;\n" + 
-		"				case IToken.t_class :\n" + 
-		"					return Keywords.CLASS ;\n" + 
-		"				case IToken.t_compl :\n" + 
-		"					return Keywords.COMPL ;\n" + 
-		"				case IToken.t_const :\n" + 
-		"					return Keywords.CONST ;\n" + 
-		"				case IToken.t_const_cast :\n" + 
-		"					return Keywords.CONST_CAST ;\n" + 
-		"				case IToken.t_continue :\n" + 
-		"					return Keywords.CONTINUE ;\n" + 
-		"				case IToken.t_default :\n" + 
-		"					return Keywords.DEFAULT ;\n" + 
-		"				case IToken.t_delete :\n" + 
-		"					return Keywords.DELETE ;\n" + 
-		"				case IToken.t_do :\n" + 
-		"					return Keywords.DO;\n" + 
-		"				case IToken.t_double :\n" + 
-		"					return Keywords.DOUBLE ;\n" + 
-		"				case IToken.t_dynamic_cast :\n" + 
-		"					return Keywords.DYNAMIC_CAST ;\n" + 
-		"				case IToken.t_else :\n" + 
-		"					return Keywords.ELSE;\n" + 
-		"				case IToken.t_enum :\n" + 
-		"					return Keywords.ENUM ;\n" + 
-		"				case IToken.t_explicit :\n" + 
-		"					return Keywords.EXPLICIT ;\n" + 
-		"				case IToken.t_export :\n" + 
-		"					return Keywords.EXPORT ;\n" + 
-		"				case IToken.t_extern :\n" + 
-		"					return Keywords.EXTERN;\n" + 
-		"				case IToken.t_false :\n" + 
-		"					return Keywords.FALSE;\n" + 
-		"				case IToken.t_float :\n" + 
-		"					return Keywords.FLOAT;\n" + 
-		"				case IToken.t_for :\n" + 
-		"					return Keywords.FOR;\n" + 
-		"				case IToken.t_friend :\n" + 
-		"					return Keywords.FRIEND;\n" + 
-		"				case IToken.t_goto :\n" + 
-		"					return Keywords.GOTO;\n" + 
-		"				case IToken.t_if :\n" + 
-		"					return Keywords.IF ;\n" + 
-		"				case IToken.t_inline :\n" + 
-		"					return Keywords.INLINE ;\n" + 
-		"				case IToken.t_int :\n" + 
-		"					return Keywords.INT ;\n" + 
-		"				case IToken.t_long :\n" + 
-		"					return Keywords.LONG ;\n" + 
-		"				case IToken.t_mutable :\n" + 
-		"					return Keywords.MUTABLE ;\n" + 
-		"				case IToken.t_namespace :\n" + 
-		"					return Keywords.NAMESPACE ;\n" + 
-		"				case IToken.t_new :\n" + 
-		"					return Keywords.NEW ;\n" + 
-		"				case IToken.t_not :\n" + 
-		"					return Keywords.NOT ;\n" + 
-		"				case IToken.t_not_eq :\n" + 
-		"					return Keywords.NOT_EQ; \n" + 
-		"				case IToken.t_operator :\n" + 
-		"					return Keywords.OPERATOR ;\n" + 
-		"				case IToken.t_or :\n" + 
-		"					return Keywords.OR ;\n" + 
-		"				case IToken.t_or_eq :\n" + 
-		"					return Keywords.OR_EQ;\n" + 
-		"				case IToken.t_private :\n" + 
-		"					return Keywords.PRIVATE ;\n" + 
-		"				case IToken.t_protected :\n" + 
-		"					return Keywords.PROTECTED ;\n" + 
-		"				case IToken.t_public :\n" + 
-		"					return Keywords.PUBLIC ;\n" + 
-		"				case IToken.t_register :\n" + 
-		"					return Keywords.REGISTER ;\n" + 
-		"				case IToken.t_reinterpret_cast :\n" + 
-		"					return Keywords.REINTERPRET_CAST ;\n" + 
-		"				case IToken.t_return :\n" + 
-		"					return Keywords.RETURN ;\n" + 
-		"				case IToken.t_short :\n" + 
-		"					return Keywords.SHORT ;\n" + 
-		"				case IToken.t_sizeof :\n" + 
-		"					return Keywords.SIZEOF ;\n" + 
-		"				case IToken.t_static :\n" + 
-		"					return Keywords.STATIC ;\n" + 
-		"				case IToken.t_static_cast :\n" + 
-		"					return Keywords.STATIC_CAST ;\n" + 
-		"				case IToken.t_signed :\n" + 
-		"					return Keywords.SIGNED ;\n" + 
-		"				case IToken.t_struct :\n" + 
-		"					return Keywords.STRUCT ;\n" + 
-		"				case IToken.t_switch :\n" + 
-		"					return Keywords.SWITCH ;\n" + 
-		"				case IToken.t_template :\n" + 
-		"					return Keywords.TEMPLATE ;\n" + 
-		"				case IToken.t_this :\n" + 
-		"					return Keywords.THIS ;\n" + 
-		"				case IToken.t_throw :\n" + 
-		"					return Keywords.THROW ;\n" + 
-		"				case IToken.t_true :\n" + 
-		"					return Keywords.TRUE ;\n" + 
-		"				case IToken.t_try :\n" + 
-		"					return Keywords.TRY ;\n" + 
-		"				case IToken.t_typedef :\n" + 
-		"					return Keywords.TYPEDEF ;\n" + 
-		"				case IToken.t_typeid :\n" + 
-		"					return Keywords.TYPEID ;\n" + 
-		"				case IToken.t_typename :\n" + 
-		"					return Keywords.TYPENAME ;\n" + 
-		"				case IToken.t_union :\n" + 
-		"					return Keywords.UNION ;\n" + 
-		"				case IToken.t_unsigned :\n" + 
-		"					return Keywords.UNSIGNED ;\n" + 
-		"				case IToken.t_using :\n" + 
-		"					return Keywords.USING ;\n" + 
-		"				case IToken.t_virtual :\n" + 
-		"					return Keywords.VIRTUAL ;\n" + 
-		"				case IToken.t_void :\n" + 
-		"					return Keywords.VOID ;\n" + 
-		"				case IToken.t_volatile :\n" + 
-		"					return Keywords.VOLATILE;\n" + 
-		"				case IToken.t_wchar_t :\n" + 
-		"					return Keywords.WCHAR_T ;\n" + 
-		"				case IToken.t_while :\n" + 
-		"					return Keywords.WHILE ;\n" + 
-		"				case IToken.t_xor :\n" + 
-		"					return Keywords.XOR ;\n" + 
-		"				case IToken.t_xor_eq :\n" + 
-		"					return Keywords.XOR_EQ ;\n" + 
-		"				case IToken.t__Bool :\n" + 
-		"					return Keywords._BOOL ;\n" + 
-		"				case IToken.t__Complex :\n" + 
-		"					return Keywords._COMPLEX ;\n" + 
-		"				case IToken.t__Imaginary :\n" + 
-		"					return Keywords._IMAGINARY ;\n" + 
-		"				case IToken.t_restrict :\n" + 
-		"					return Keywords.RESTRICT ;\n" + 
-		"				case IScanner.tPOUND:\n" + 
-		"					return \"#\"; //$NON-NLS-1$\n" + 
-		"				case IScanner.tPOUNDPOUND:\n" + 
-		"					return \"##\"; //$NON-NLS-1$\n" + 
-		"				case IToken.tEOC:\n" + 
-		"					return \"EOC\"; //$NON-NLS-1$\n" + 
-		"				default :\n" + 
-		"					return \"\"; //$NON-NLS-1$ \n" + 
-		"		}			\n" + 
-		"	}\n" + 
-		"	public char[] getCharImage() {\n" + 
-		"	    return getCharImage( getType() );\n" + 
-		"	}\n" + 
-		"	static public char[] getCharImage( int type ){\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"	public static void main(String[] args) {\n" + 
-		"		System.out.println(\"SUCCESS\");\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"interface IToken {\n" + 
-		"	static public final int tIDENTIFIER = 1;\n" + 
-		"	static public final int tINTEGER = 2;\n" + 
-		"	static public final int tCOLONCOLON = 3;\n" + 
-		"	static public final int tCOLON = 4;\n" + 
-		"	static public final int tSEMI = 5;\n" + 
-		"	static public final int tCOMMA = 6;\n" + 
-		"	static public final int tQUESTION = 7;\n" + 
-		"	static public final int tLPAREN = 8;\n" + 
-		"	static public final int tRPAREN = 9;\n" + 
-		"	static public final int tLBRACKET = 10;\n" + 
-		"	static public final int tRBRACKET = 11;\n" + 
-		"	static public final int tLBRACE = 12;\n" + 
-		"	static public final int tRBRACE = 13;\n" + 
-		"	static public final int tPLUSASSIGN = 14;\n" + 
-		"	static public final int tINCR = 15;\n" + 
-		"	static public final int tPLUS = 16;\n" + 
-		"	static public final int tMINUSASSIGN = 17;\n" + 
-		"	static public final int tDECR = 18;\n" + 
-		"	static public final int tARROWSTAR = 19;\n" + 
-		"	static public final int tARROW = 20;\n" + 
-		"	static public final int tMINUS = 21;\n" + 
-		"	static public final int tSTARASSIGN = 22;\n" + 
-		"	static public final int tSTAR = 23;\n" + 
-		"	static public final int tMODASSIGN = 24;\n" + 
-		"	static public final int tMOD = 25;\n" + 
-		"	static public final int tXORASSIGN = 26;\n" + 
-		"	static public final int tXOR = 27;\n" + 
-		"	static public final int tAMPERASSIGN = 28;\n" + 
-		"	static public final int tAND = 29;\n" + 
-		"	static public final int tAMPER = 30;\n" + 
-		"	static public final int tBITORASSIGN = 31;\n" + 
-		"	static public final int tOR = 32;\n" + 
-		"	static public final int tBITOR = 33;\n" + 
-		"	static public final int tCOMPL = 34;\n" + 
-		"	static public final int tNOTEQUAL = 35;\n" + 
-		"	static public final int tNOT = 36;\n" + 
-		"	static public final int tEQUAL = 37;\n" + 
-		"	static public final int tASSIGN = 38;\n" + 
-		"	static public final int tSHIFTL = 40;\n" + 
-		"	static public final int tLTEQUAL = 41;\n" + 
-		"	static public final int tLT = 42;\n" + 
-		"	static public final int tSHIFTRASSIGN = 43;\n" + 
-		"	static public final int tSHIFTR = 44;\n" + 
-		"	static public final int tGTEQUAL = 45;\n" + 
-		"	static public final int tGT = 46;\n" + 
-		"	static public final int tSHIFTLASSIGN = 47;\n" + 
-		"	static public final int tELLIPSIS = 48;\n" + 
-		"	static public final int tDOTSTAR = 49;\n" + 
-		"	static public final int tDOT = 50;\n" + 
-		"	static public final int tDIVASSIGN = 51;\n" + 
-		"	static public final int tDIV = 52;\n" + 
-		"	static public final int t_and = 54;\n" + 
-		"	static public final int t_and_eq = 55;\n" + 
-		"	static public final int t_asm = 56;\n" + 
-		"	static public final int t_auto = 57;\n" + 
-		"	static public final int t_bitand = 58;\n" + 
-		"	static public final int t_bitor = 59;\n" + 
-		"	static public final int t_bool = 60;\n" + 
-		"	static public final int t_break = 61;\n" + 
-		"	static public final int t_case = 62;\n" + 
-		"	static public final int t_catch = 63;\n" + 
-		"	static public final int t_char = 64;\n" + 
-		"	static public final int t_class = 65;\n" + 
-		"	static public final int t_compl = 66;\n" + 
-		"	static public final int t_const = 67;\n" + 
-		"	static public final int t_const_cast = 69;\n" + 
-		"	static public final int t_continue = 70;\n" + 
-		"	static public final int t_default = 71;\n" + 
-		"	static public final int t_delete = 72;\n" + 
-		"	static public final int t_do = 73;\n" + 
-		"	static public final int t_double = 74;\n" + 
-		"	static public final int t_dynamic_cast = 75;\n" + 
-		"	static public final int t_else = 76;\n" + 
-		"	static public final int t_enum = 77;\n" + 
-		"	static public final int t_explicit = 78;\n" + 
-		"	static public final int t_export = 79;\n" + 
-		"	static public final int t_extern = 80;\n" + 
-		"	static public final int t_false = 81;\n" + 
-		"	static public final int t_float = 82;\n" + 
-		"	static public final int t_for = 83;\n" + 
-		"	static public final int t_friend = 84;\n" + 
-		"	static public final int t_goto = 85;\n" + 
-		"	static public final int t_if = 86;\n" + 
-		"	static public final int t_inline = 87;\n" + 
-		"	static public final int t_int = 88;\n" + 
-		"	static public final int t_long = 89;\n" + 
-		"	static public final int t_mutable = 90;\n" + 
-		"	static public final int t_namespace = 91;\n" + 
-		"	static public final int t_new = 92;\n" + 
-		"	static public final int t_not = 93;\n" + 
-		"	static public final int t_not_eq = 94;\n" + 
-		"	static public final int t_operator = 95;\n" + 
-		"	static public final int t_or = 96;\n" + 
-		"	static public final int t_or_eq = 97;\n" + 
-		"	static public final int t_private = 98;\n" + 
-		"	static public final int t_protected = 99;\n" + 
-		"	static public final int t_public = 100;\n" + 
-		"	static public final int t_register = 101;\n" + 
-		"	static public final int t_reinterpret_cast = 102;\n" + 
-		"	static public final int t_return = 103;\n" + 
-		"	static public final int t_short = 104;\n" + 
-		"	static public final int t_sizeof = 105;\n" + 
-		"	static public final int t_static = 106;\n" + 
-		"	static public final int t_static_cast = 107;\n" + 
-		"	static public final int t_signed = 108;\n" + 
-		"	static public final int t_struct = 109;\n" + 
-		"	static public final int t_switch = 110;\n" + 
-		"	static public final int t_template = 111;\n" + 
-		"	static public final int t_this = 112;\n" + 
-		"	static public final int t_throw = 113;\n" + 
-		"	static public final int t_true = 114;\n" + 
-		"	static public final int t_try = 115;\n" + 
-		"	static public final int t_typedef = 116;\n" + 
-		"	static public final int t_typeid = 117;\n" + 
-		"	static public final int t_typename = 118;\n" + 
-		"	static public final int t_union = 119;\n" + 
-		"	static public final int t_unsigned = 120;\n" + 
-		"	static public final int t_using = 121;\n" + 
-		"	static public final int t_virtual = 122;\n" + 
-		"	static public final int t_void = 123;\n" + 
-		"	static public final int t_volatile = 124;\n" + 
-		"	static public final int t_wchar_t = 125;\n" + 
-		"	static public final int t_while = 126;\n" + 
-		"	static public final int t_xor = 127;\n" + 
-		"	static public final int t_xor_eq = 128;\n" + 
-		"	static public final int tFLOATINGPT = 129;\n" + 
-		"	static public final int tSTRING = 130;\n" + 
-		"	static public final int tLSTRING = 131;\n" + 
-		"	static public final int tCHAR = 132;\n" + 
-		"	static public final int tLCHAR = 133;\n" + 
-		"	static public final int t__Bool = 134;\n" + 
-		"	static public final int t__Complex = 135;\n" + 
-		"	static public final int t__Imaginary = 136;\n" + 
-		"	static public final int t_restrict = 137;\n" + 
-		"	static public final int tMACROEXP = 138;\n" + 
-		"	static public final int tPOUNDPOUND = 139;\n" + 
-		"	static public final int tCOMPLETION = 140;\n" + 
-		"	static public final int tEOC = 141; // End of Completion\\n\" + \n" + 
-		"	static public final int tLAST = 141;\n" + 
-		"}\n" + 
-		"class Keywords {\n" + 
-		"	public static final String CAST = \"cast\"; //$NON-NLS-1$\n" + 
-		"	public static final String ALIGNOF = \"alignof\"; //$NON-NLS-1$\n" + 
-		"	public static final String TYPEOF = \"typeof\"; //$NON-NLS-1$\n" + 
-		"	public static final String cpMIN = \"<?\"; //$NON-NLS-1$\n" + 
-		"	public static final String cpMAX = \">?\"; //$NON-NLS-1$\n" + 
-		"	public static final String _BOOL = \"_Bool\"; //$NON-NLS-1$\n" + 
-		"	public static final String _COMPLEX = \"_Complex\"; //$NON-NLS-1$\n" + 
-		"	public static final String _IMAGINARY = \"_Imaginary\"; //$NON-NLS-1$\n" + 
-		"	public static final String AND = \"and\"; //$NON-NLS-1$\n" + 
-		"	public static final String AND_EQ = \"and_eq\"; //$NON-NLS-1$\n" + 
-		"	public static final String ASM = \"asm\"; //$NON-NLS-1$\n" + 
-		"	public static final String AUTO = \"auto\"; //$NON-NLS-1$\n" + 
-		"	public static final String BITAND = \"bitand\"; //$NON-NLS-1$\n" + 
-		"	public static final String BITOR = \"bitor\"; //$NON-NLS-1$\n" + 
-		"	public static final String BOOL = \"bool\"; //$NON-NLS-1$\n" + 
-		"	public static final String BREAK = \"break\"; //$NON-NLS-1$\n" + 
-		"	public static final String CASE = \"case\"; //$NON-NLS-1$\n" + 
-		"	public static final String CATCH = \"catch\"; //$NON-NLS-1$\n" + 
-		"	public static final String CHAR = \"char\"; //$NON-NLS-1$\n" + 
-		"	public static final String CLASS = \"class\"; //$NON-NLS-1$\n" + 
-		"	public static final String COMPL = \"compl\"; //$NON-NLS-1$\n" + 
-		"	public static final String CONST = \"const\"; //$NON-NLS-1$\n" + 
-		"	public static final String CONST_CAST = \"const_cast\"; //$NON-NLS-1$\n" + 
-		"	public static final String CONTINUE = \"continue\"; //$NON-NLS-1$\n" + 
-		"	public static final String DEFAULT = \"default\"; //$NON-NLS-1$\n" + 
-		"	public static final String DELETE = \"delete\"; //$NON-NLS-1$\n" + 
-		"	public static final String DO = \"do\"; //$NON-NLS-1$\n" + 
-		"	public static final String DOUBLE = \"double\"; //$NON-NLS-1$\n" + 
-		"	public static final String DYNAMIC_CAST = \"dynamic_cast\"; //$NON-NLS-1$\n" + 
-		"	public static final String ELSE = \"else\"; //$NON-NLS-1$\n" + 
-		"	public static final String ENUM = \"enum\"; //$NON-NLS-1$\n" + 
-		"	public static final String EXPLICIT = \"explicit\"; //$NON-NLS-1$\n" + 
-		"	public static final String EXPORT = \"export\"; //$NON-NLS-1$\n" + 
-		"	public static final String EXTERN = \"extern\"; //$NON-NLS-1$\n" + 
-		"	public static final String FALSE = \"false\"; //$NON-NLS-1$\n" + 
-		"	public static final String FLOAT = \"float\"; //$NON-NLS-1$\n" + 
-		"	public static final String FOR = \"for\"; //$NON-NLS-1$\n" + 
-		"	public static final String FRIEND = \"friend\"; //$NON-NLS-1$\n" + 
-		"	public static final String GOTO = \"goto\"; //$NON-NLS-1$\n" + 
-		"	public static final String IF = \"if\"; //$NON-NLS-1$\n" + 
-		"	public static final String INLINE = \"inline\"; //$NON-NLS-1$\n" + 
-		"	public static final String INT = \"int\"; //$NON-NLS-1$\n" + 
-		"	public static final String LONG = \"long\"; //$NON-NLS-1$\n" + 
-		"	public static final String LONG_LONG = \"long long\"; //$NON-NLS-1$\n" + 
-		"	public static final String MUTABLE = \"mutable\"; //$NON-NLS-1$\n" + 
-		"	public static final String NAMESPACE = \"namespace\"; //$NON-NLS-1$\n" + 
-		"	public static final String NEW = \"new\"; //$NON-NLS-1$\n" + 
-		"	public static final String NOT = \"not\"; //$NON-NLS-1$\n" + 
-		"	public static final String NOT_EQ = \"not_eq\"; //$NON-NLS-1$\n" + 
-		"	public static final String OPERATOR = \"operator\"; //$NON-NLS-1$\n" + 
-		"	public static final String OR = \"or\"; //$NON-NLS-1$\n" + 
-		"	public static final String OR_EQ = \"or_eq\"; //$NON-NLS-1$\n" + 
-		"	public static final String PRIVATE = \"private\"; //$NON-NLS-1$\n" + 
-		"	public static final String PROTECTED = \"protected\"; //$NON-NLS-1$\n" + 
-		"	public static final String PUBLIC = \"public\"; //$NON-NLS-1$\n" + 
-		"	public static final String REGISTER = \"register\"; //$NON-NLS-1$\n" + 
-		"	public static final String REINTERPRET_CAST = \"reinterpret_cast\"; //$NON-NLS-1$\n" + 
-		"	public static final String RESTRICT = \"restrict\"; //$NON-NLS-1$\n" + 
-		"	public static final String RETURN = \"return\"; //$NON-NLS-1$\n" + 
-		"	public static final String SHORT = \"short\"; //$NON-NLS-1$\n" + 
-		"	public static final String SIGNED = \"signed\"; //$NON-NLS-1$\n" + 
-		"	public static final String SIZEOF = \"sizeof\"; //$NON-NLS-1$\n" + 
-		"	public static final String STATIC = \"static\"; //$NON-NLS-1$\n" + 
-		"	public static final String STATIC_CAST = \"static_cast\"; //$NON-NLS-1$\n" + 
-		"	public static final String STRUCT = \"struct\"; //$NON-NLS-1$\n" + 
-		"	public static final String SWITCH = \"switch\"; //$NON-NLS-1$\n" + 
-		"	public static final String TEMPLATE = \"template\"; //$NON-NLS-1$\n" + 
-		"	public static final String THIS = \"this\"; //$NON-NLS-1$\n" + 
-		"	public static final String THROW = \"throw\"; //$NON-NLS-1$\n" + 
-		"	public static final String TRUE = \"true\"; //$NON-NLS-1$\n" + 
-		"	public static final String TRY = \"try\"; //$NON-NLS-1$\n" + 
-		"	public static final String TYPEDEF = \"typedef\"; //$NON-NLS-1$\n" + 
-		"	public static final String TYPEID = \"typeid\"; //$NON-NLS-1$\n" + 
-		"	public static final String TYPENAME = \"typename\"; //$NON-NLS-1$\n" + 
-		"	public static final String UNION = \"union\"; //$NON-NLS-1$\n" + 
-		"	public static final String UNSIGNED = \"unsigned\"; //$NON-NLS-1$\n" + 
-		"	public static final String USING = \"using\"; //$NON-NLS-1$\n" + 
-		"	public static final String VIRTUAL = \"virtual\"; //$NON-NLS-1$\n" + 
-		"	public static final String VOID = \"void\"; //$NON-NLS-1$\n" + 
-		"	public static final String VOLATILE = \"volatile\"; //$NON-NLS-1$\n" + 
-		"	public static final String WCHAR_T = \"wchar_t\"; //$NON-NLS-1$\n" + 
-		"	public static final String WHILE = \"while\"; //$NON-NLS-1$\n" + 
-		"	public static final String XOR = \"xor\"; //$NON-NLS-1$\n" + 
-		"	public static final String XOR_EQ = \"xor_eq\"; //$NON-NLS-1$\n" + 
-		"	public static final char[] c_BOOL = \"_Bool\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] c_COMPLEX = \"_Complex\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] c_IMAGINARY = \"_Imaginary\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cAND = \"and\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cAND_EQ = \"and_eq\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cASM = \"asm\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cAUTO = \"auto\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cBITAND = \"bitand\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cBITOR = \"bitor\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cBOOL = \"bool\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cBREAK = \"break\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cCASE = \"case\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cCATCH = \"catch\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cCHAR = \"char\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cCLASS = \"class\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cCOMPL = \"compl\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cCONST = \"const\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cCONST_CAST = \"const_cast\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cCONTINUE = \"continue\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cDEFAULT = \"default\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cDELETE = \"delete\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cDO = \"do\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cDOUBLE = \"double\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cDYNAMIC_CAST = \"dynamic_cast\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cELSE = \"else\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cENUM = \"enum\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cEXPLICIT = \"explicit\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cEXPORT = \"export\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cEXTERN = \"extern\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cFALSE = \"false\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cFLOAT = \"float\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cFOR = \"for\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cFRIEND = \"friend\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cGOTO = \"goto\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cIF = \"if\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cINLINE = \"inline\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cINT = \"int\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cLONG = \"long\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cMUTABLE = \"mutable\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cNAMESPACE = \"namespace\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cNEW = \"new\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cNOT = \"not\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cNOT_EQ = \"not_eq\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cOPERATOR = \"operator\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cOR = \"or\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cOR_EQ = \"or_eq\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cPRIVATE = \"private\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cPROTECTED = \"protected\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cPUBLIC = \"public\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cREGISTER = \"register\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cREINTERPRET_CAST = \"reinterpret_cast\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cRESTRICT = \"restrict\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cRETURN = \"return\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cSHORT = \"short\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cSIGNED = \"signed\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cSIZEOF = \"sizeof\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cSTATIC = \"static\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cSTATIC_CAST = \"static_cast\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cSTRUCT = \"struct\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cSWITCH = \"switch\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cTEMPLATE = \"template\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cTHIS = \"this\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cTHROW = \"throw\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cTRUE = \"true\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cTRY = \"try\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cTYPEDEF = \"typedef\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cTYPEID = \"typeid\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cTYPENAME = \"typename\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cUNION = \"union\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cUNSIGNED = \"unsigned\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cUSING = \"using\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cVIRTUAL = \"virtual\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cVOID = \"void\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cVOLATILE = \"volatile\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cWCHAR_T = \"wchar_t\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cWHILE = \"while\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cXOR = \"xor\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cXOR_EQ = \"xor_eq\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpCOLONCOLON = \"::\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpCOLON = \":\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpSEMI = \";\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpCOMMA =	\",\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpQUESTION = \"?\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpLPAREN  = \"(\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpRPAREN  = \")\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpLBRACKET = \"[\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpRBRACKET = \"]\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpLBRACE = \"{\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpRBRACE = \"}\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpPLUSASSIGN =	\"+=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpINCR = 	\"++\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpPLUS = 	\"+\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpMINUSASSIGN =	\"-=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpDECR = 	\"--\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpARROWSTAR =	\"->*\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpARROW = 	\"->\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpMINUS = 	\"-\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpSTARASSIGN =	\"*=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpSTAR = 	\"*\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpMODASSIGN =	\"%=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpMOD = 	\"%\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpXORASSIGN =	\"^=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpXOR = 	\"^\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpAMPERASSIGN =	\"&=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpAND = 	\"&&\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpAMPER =	\"&\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpBITORASSIGN =	\"|=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpOR = 	\"||\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpBITOR =	\"|\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpCOMPL =	\"~\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpNOTEQUAL =	\"!=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpNOT = 	\"!\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpEQUAL =	\"==\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpASSIGN =\"=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpSHIFTL =	\"<<\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpLTEQUAL =	\"<=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpLT = 	\"<\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpSHIFTRASSIGN =	\">>=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpSHIFTR = 	\">>\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpGTEQUAL = 	\">=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpGT = 	\">\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpSHIFTLASSIGN =	\"<<=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpELLIPSIS = 	\"...\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpDOTSTAR = 	\".*\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpDOT = 	\".\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpDIVASSIGN =	\"/=\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpDIV = 	\"/\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpPOUND = \"#\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cpPOUNDPOUND = \"##\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	// preprocessor keywords\\n\" + \n" + 
-		"	public static final char[] cIFDEF = \"ifdef\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cIFNDEF = \"ifndef\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cELIF = \"elif\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cENDIF = \"endif\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cINCLUDE = \"include\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cDEFINE = \"define\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cUNDEF = \"undef\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cERROR = \"error\".toCharArray(); //$NON-NLS-1$\n" + 
-		"	public static final char[] cINCLUDE_NEXT = \"include_next\".toCharArray(); //$NON-NLS-1$\n" + 
-		"}\n" + 
-		"interface IScanner  {\n" + 
-		"	public static final int tPOUNDPOUND = -6;\n" + 
-		"	public static final int tPOUND      = -7;\n" + 
-		"}\n" + 
-		"abstract class B  {\n" + 
-		"	public B( int type, char [] filename, int lineNumber ) {\n" + 
-		"	}\n" + 
-		"	public int getType() { return 0; }\n" + 
-		"}",
-	},
-	"SUCCESS",
-	null,
-	true,
-	null,
-	options,
-	null);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=126744
-public void test009() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public static String CONSTANT = \n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n" + 
-			"    	\"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxy12\";\n" + 
-			"    	\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"    	System.out.print(CONSTANT == CONSTANT);\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"true");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// Failed before using a non recursive implementation of deep binary
-// expressions.
-public void test010() {
-	StringBuffer sourceCode = new StringBuffer(			
-			"public class X {\n" + 
-			"  void foo(String a, String b, String c, String d, String e) {\n" +
-			"    String s = \n");
-	for (int i = 0; i < 350; i++) {
-		sourceCode.append(
-			"    	\"abcdef\" + a + b + c + d + e + " +
-			"\" ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmno" +
-			"pqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n");
-	}
-	sourceCode.append(			
-			"    	\"abcdef\" + a + b + c + d + e + \" ghijklmnopqrstuvwxyz" +
-			"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" +
-			"abcdefghijklmnopqrstuvwxy12\";\n" + 
-			"    }\n" + 
-			"}");
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			sourceCode.toString()
-		},
-		"");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// check if we hit the 64Kb limit on method code lenth in class files before 
-// filling the stack
-// need to use a computed string (else this source file will get blown away
-// as well)
-public void test011() {
-	int length = 3 * 54 * 1000; 
-		// the longer the slower, but still needs to reach the limit...
-	StringBuffer veryLongString = new StringBuffer(length + 20);
-	veryLongString.append('"');
-	Random random = new Random();
-	while (veryLongString.length() < length) {
-		veryLongString.append("\"+a+\"");
-		veryLongString.append(random.nextLong());
-	}
-	veryLongString.append('"');
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  void foo(String a, String b, String c, String d, String e) {\n" +
-			"    String s = \n" +
-			veryLongString.toString() +
-			"    	+ \"abcdef\" + a + b + c + d + e + \" ghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxy12\";\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" +
-		"1. ERROR in X.java (at line 2)\n" +
-		"	void foo(String a, String b, String c, String d, String e) {\n" +
-		"	     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +
-		"The code of method foo(String, String, String, String, String) is " +
-			"exceeding the 65535 bytes limit\n" +
-		"----------\n");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-// variant: right member of the topmost expression is left-deep
-public void test012() {
-	StringBuffer sourceCode = new StringBuffer(			
-			"public class X {\n" + 
-			"  void foo(String a, String b, String c, String d, String e) {\n" +
-			"    String s = a + (\n");
-	for (int i = 0; i < 1000; i++) {
-		sourceCode.append(
-			"    	\"abcdef\" + a + b + c + d + e + " +
-			"\" ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmno" +
-			"pqrstuvwxyzabcdefghijklmnopqrstuvwxyz\" +\n");
-	}
-	sourceCode.append(			
-			"    	\"abcdef\" + a + b + c + d + e + \" ghijklmnopqrstuvwxyz" +
-			"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" +
-			"abcdefghijklmnopqrstuvwxy12\");\n" + 
-			"    }\n" + 
-			"}");
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			sourceCode.toString()
-		},
-		"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-//variant: right member of the topmost expression is left-deep
-public void test013() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"	// left to right marker\n" + 
-			"	protected static char LRM = \'\\u200e\';\n" + 
-			"	// left to right embedding\n" + 
-			"	protected static char LRE = \'\\u202a\';\n" + 
-			"	// pop directional format	\n" + 
-			"	protected static char PDF = \'\\u202c\';\n" + 
-			"\n" + 
-			"	private static String PATH_1_RESULT = LRE + \"d\" + PDF + \":\" + LRM + \"\\\\\" + LRM + LRE + \"test\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05d0\\u05d1\\u05d2\\u05d3 \\u05d4\\u05d5\" + PDF + \"\\\\\" + LRM + LRE + \"segment\" + PDF;\n" + 
-			"	private static String PATH_2_RESULT = LRM + \"\\\\\" + LRM + LRE + \"test\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05d0\\u05d1\\u05d2\\u05d3 \\u05d4\\u05d5\" + PDF + \"\\\\\" + LRM + LRE + \"segment\" + PDF;\n" + 
-			"	private static String PATH_3_RESULT = LRE + \"d\" + PDF + \":\" + LRM + \"\\\\\" + LRM + LRE + \"\\u05ea\\u05e9\\u05e8\\u05e7\\u05e6 abcdef-\\u05e5\\u05e4\\u05e3\" + PDF + \"\\\\\" + LRM + LRE + \"xyz\" + PDF + \"\\\\\" + LRM + LRE + \"abcdef\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05e2\\u05e1\\u05e0\" + PDF;\n" + 
-			"	private static String PATH_4_RESULT = LRM + \"\\\\\" + LRM + LRE + \"\\u05ea\\u05e9\\u05e8\\u05e7\\u05e6 abcdef-\\u05e5\\u05e4\\u05e3\" + PDF + \"\\\\\" + LRM + LRE + \"xyz\" + PDF + \"\\\\\" + LRM + LRE + \"abcdef\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05e2\\u05e1\\05e0\" + PDF;\n" + 
-			"	private static String PATH_5_RESULT = LRE + \"d\" + PDF + \":\" + LRM + \"\\\\\" + LRM + LRE + \"\\u05ea\\u05e9\\u05e8\\u05e7\\u05e6 abcdef-\\u05e5\\u05e4\\u05e3\" + PDF + \"\\\\\" + LRM + LRE + \"xyz\" + PDF + \"\\\\\" + LRM + LRE + \"abcdef\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05e2\\u05e1\\05e0\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05df\\u05fd\\u05dd\" + PDF + \".\" + LRM + LRE + \"java\" + PDF;\n" + 
-			"	private static String PATH_6_RESULT = LRE + \"d\" + PDF + \":\" + LRM + \"\\\\\" + LRM + LRE + \"\\u05ea\\u05e9\\u05e8\\u05e7\\u05e6 abcdef-\\u05e5\\u05e4\\u05e3\" + PDF + \"\\\\\" + LRM + LRE + \"xyz\" + PDF + \"\\\\\" + LRM + LRE + \"abcdef\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05e2\\u05e1\\05e0\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05df\\u05fd\\u05dd\" + PDF + \".\" + LRM + LRE + \"\\u05dc\\u05db\\u05da\" + PDF;\n" + 
-			"	private static String PATH_7_RESULT = LRE + \"d\" + PDF + \":\" + LRM + \"\\\\\" + LRM + LRE + \"\\u05ea\\u05e9\\u05e8\\u05e7\\u05e6 abcdef-\\u05e5\\u05e4\\u05e3\" + PDF + \"\\\\\" + LRM + LRE + \"xyz\" + PDF + \"\\\\\" + LRM + LRE + \"abcdef\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05e2\\u05e1\\05e0\" + PDF + \"\\\\\" + LRM + LRE + \"Test\" + PDF + \".\" + LRM + LRE + \"java\" + PDF;\n" + 
-			"	private static String PATH_8_RESULT = LRM + \"\\\\\" + LRM + LRE + \"test\" + PDF + \"\\\\\" + LRM + LRE + \"jkl\\u05d0\\u05d1\\u05d2\\u05d3 \\u05d4\\u05d5\" + PDF + \"\\\\\" + LRM + LRE + \"segment\" + PDF;\n" + 
-			"	private static String PATH_9_RESULT = LRM + \"\\\\\" + LRM + LRE + \"test\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05d0\\u05d1\\u05d2\\u05d3 \\u05d4\\u05d5jkl\" + PDF + \"\\\\\" + LRM + LRE + \"segment\" + PDF;\n" + 
-			"	private static String PATH_10_RESULT = LRE + \"d\" + PDF + \":\" + LRM + \"\\\\\" + LRM + LRE + \"t\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05d0\" + PDF + \"\\\\\" + LRM + LRE + \"segment\" + PDF;\n" + 
-			"	private static String PATH_11_RESULT = \"\\\\\" + LRM + LRE + \"t\" + PDF + \"\\\\\" + LRM + LRE + \"\\u05d0\" + PDF + \"\\\\\" + LRM + LRE + \"segment\" + PDF;\n" + 
-			"	private static String PATH_12_RESULT = LRE + \"d\" + PDF + \":\" + LRM + \"\\\\\" + LRM;\n" + 
-			"	private static String PATH_13_RESULT = LRM + \"\\\\\" + LRM + LRE + \"test\" + PDF;\n" + 
-			"\n" + 
-			"	private static String OTHER_STRING_NO_DELIM = \"\\u05ea\\u05e9\\u05e8\\u05e7\\u05e6 abcdef-\\u05e5\\u05e4\\u05e3\";\n" + 
-			"\n" + 
-			"	private static String OTHER_STRING_1_RESULT = LRM + \"*\" + LRM + \".\" + LRM + LRE + \"java\" + PDF;\n" + 
-			"	private static String OTHER_STRING_2_RESULT = LRM + \"*\" + LRM + \".\" + LRM + LRE + \"\\u05d0\\u05d1\\u05d2\" + PDF;\n" + 
-			"	private static String OTHER_STRING_3_RESULT = LRE + \"\\u05d0\\u05d1\\u05d2 \" + PDF + \"=\" + LRM + LRE + \" \\u05ea\\u05e9\\u05e8\\u05e7\\u05e6\" + PDF;\n" + 
-			"	// result strings if null delimiter is passed for *.<string> texts\n" + 
-			"	private static String OTHER_STRING_1_ND_RESULT = LRE + \"*\" + PDF + \".\" + LRM + LRE + \"java\" + PDF;\n" + 
-			"	private static String OTHER_STRING_2_ND_RESULT = LRE + \"*\" + PDF + \".\" + LRM + LRE + \"\\u05d0\\u05d1\\u05d2\" + PDF;\n" + 
-			"\n" + 
-			"	private static String[] RESULT_DEFAULT_PATHS = {PATH_1_RESULT, PATH_2_RESULT, PATH_3_RESULT, PATH_4_RESULT, PATH_5_RESULT, PATH_6_RESULT, PATH_7_RESULT, PATH_8_RESULT, PATH_9_RESULT, PATH_10_RESULT, PATH_11_RESULT, PATH_12_RESULT, PATH_13_RESULT};\n" + 
-			"\n" + 
-			"	private static String[] RESULT_STAR_PATHS = {OTHER_STRING_1_RESULT, OTHER_STRING_2_RESULT};\n" + 
-			"	private static String[] RESULT_EQUALS_PATHS = {OTHER_STRING_3_RESULT};\n" + 
-			"	private static String[] RESULT_STAR_PATHS_ND = {OTHER_STRING_1_ND_RESULT, OTHER_STRING_2_ND_RESULT};\n" + 
-			"\n" + 
-			"	/**\n" + 
-			"	 * Constructor.\n" + 
-			"	 * \n" + 
-			"	 * @param name test name\n" + 
-			"	 */\n" + 
-			"	public X(String name) {\n" + 
-			"	}\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" +
-			"		System.out.print(\"SUCCESS\");\n" +
-			"	}\n" + 
-			"}\n"
-		},
-		"SUCCESS");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124099
-// Undue partial reset of receiver in 
-// UnconditionalFlowInfo#addInitializationsFrom.
-public void test014() {
-	this.runConformTest(new String[] {
-		"X.java",
-			"class X {\n" + 
-			"    int      i01, i02, i03, i04, i05, i06, i07, i08, i09,\n" + 
-			"        i10, i11, i12, i13, i14, i15, i16, i17, i18, i19,\n" + 
-			"        i20, i21, i22, i23, i24, i25, i26, i27, i28, i29,\n" + 
-			"        i30, i31, i32, i33, i34, i35, i36, i37, i38, i39,\n" + 
-			"        i40, i41, i42, i43, i44, i45, i46, i47, i48, i49,\n" + 
-			"        i50, i51, i52, i53, i54, i55, i56, i57, i58, i59,\n" + 
-			"        i60, i61, i62, i63,    i64, i65 = 1;\n" + 
-			"public X() {\n" + 
-			"    new Object() {\n" + 
-			"        int      \n" + 
-			"            k01, k02, k03, k04, k05, k06, k07, k08, k09,\n" + 
-			"            k10, k11, k12, k13, k14, k15, k16, k17, k18, k19,\n" + 
-			"            k20, k21, k22, k23, k24, k25, k26, k27, k28, k29,\n" + 
-			"            k30, k31, k32, k33, k34, k35, k36, k37, k38, k39,\n" + 
-			"            k40, k41, k42, k43, k44, k45, k46, k47, k48, k49,\n" + 
-			"            k50, k51, k52, k53, k54, k55, k56, k57, k58, k59,\n" + 
-			"            k60, k61, k62, k63, k64;\n" + 
-			"        int      \n" + 
-			"            k101, k102, k103, k104, k105, k106, k107, k108, k109,\n" + 
-			"            k110, k111, k112, k113, k114, k115, k116, k117, k118, k119,\n" + 
-			"            k120, k121, k122, k123, k124, k125, k126, k127, k128, k129,\n" + 
-			"            k130, k131, k132, k133, k134, k135, k136, k137, k138, k139,\n" + 
-			"            k140, k141, k142, k143, k144, k145, k146, k147, k148, k149,\n" + 
-			"            k150, k151, k152, k153, k154, k155, k156, k157, k158, k159,\n" + 
-			"            k160, k161, k162, k163, k164;\n" + 
-			"        final int l = 1;\n" + 
-			"        public int hashCode() {\n" + 
-			"            return\n" + 
-			"                k01 + k02 + k03 + k04 + k05 + k06 + k07 + k08 + k09 +\n" + 
-			"                k10 + k11 + k12 + k13 + k14 + k15 + k16 + k17 + k18 + k19 +\n" + 
-			"                k20 + k21 + k22 + k23 + k24 + k25 + k26 + k27 + k28 + k29 +\n" + 
-			"                k30 + k31 + k32 + k33 + k34 + k35 + k36 + k37 + k38 + k39 +\n" + 
-			"                k40 + k41 + k42 + k43 + k44 + k45 + k46 + k47 + k48 + k49 +\n" + 
-			"                k50 + k51 + k52 + k53 + k54 + k55 + k56 + k57 + k58 + k59 +\n" + 
-			"                k60 + k61 + k62 + k63 + k64 +\n" + 
-			"                k101 + k102 + k103 + k104 + k105 + k106 + k107 + k108 + k109 +\n" + 
-			"                k110 + k111 + k112 + k113 + k114 + k115 + k116 + k117 + k118 + k119 +\n" + 
-			"                k120 + k121 + k122 + k123 + k124 + k125 + k126 + k127 + k128 + k129 +\n" + 
-			"                k130 + k131 + k132 + k133 + k134 + k135 + k136 + k137 + k138 + k139 +\n" + 
-			"                k140 + k141 + k142 + k143 + k144 + k145 + k146 + k147 + k148 + k149 +\n" + 
-			"                k150 + k151 + k152 + k153 + k154 + k155 + k156 + k157 + k158 + k159 +\n" + 
-			"                k160 + k161 + k162 + k163 + k164 +\n" + 
-			"                l;\n" + 
-			"        }\n" + 
-			"    };\n" + 
-			"}\n" + 
-			"\n" + 
-			"}\n" + 
-			"\n",
-	},
-	"");
-}
-public void test015() {
-	this.runConformTest(new String[] {
-		"X.java",
-		"public class X {\n" + 
-		"	public static int foo(int i) {\n" + 
-		"		try {\n" + 
-		"			switch(i) {\n" + 
-		"				case 0 :\n" + 
-		"					return 3;\n" + 
-		"				case 1 :\n" + 
-		"					return 3;\n" + 
-		"				case 2 :\n" + 
-		"					return 3;\n" + 
-		"				case 3 :\n" + 
-		"					return 3;\n" + 
-		"				case 4 :\n" + 
-		"					return 3;\n" + 
-		"				case 5 :\n" + 
-		"					return 3;\n" + 
-		"				case 6 :\n" + 
-		"					return 3;\n" + 
-		"				case 7 :\n" + 
-		"					return 3;\n" + 
-		"				case 8 :\n" + 
-		"					return 3;\n" + 
-		"				case 9 :\n" + 
-		"					return 3;\n" + 
-		"				case 10 :\n" + 
-		"					return 3;\n" + 
-		"				case 11 :\n" + 
-		"					return 3;\n" + 
-		"				case 12 :\n" + 
-		"					return 3;\n" + 
-		"				case 13 :\n" + 
-		"					return 3;\n" + 
-		"				case 14 :\n" + 
-		"					return 3;\n" + 
-		"				case 15 :\n" + 
-		"					return 3;\n" + 
-		"				case 16 :\n" + 
-		"					return 3;\n" + 
-		"				case 17 :\n" + 
-		"					return 3;\n" + 
-		"				case 18 :\n" + 
-		"					return 3;\n" + 
-		"				case 19 :\n" + 
-		"					return 3;\n" + 
-		"				case 20 :\n" + 
-		"					return 3;\n" + 
-		"				case 21 :\n" + 
-		"					return 3;\n" + 
-		"				case 22 :\n" + 
-		"					return 3;\n" + 
-		"				case 23 :\n" + 
-		"					return 3;\n" + 
-		"				case 24 :\n" + 
-		"					return 3;\n" + 
-		"				case 25 :\n" + 
-		"					return 3;\n" + 
-		"				case 26 :\n" + 
-		"					return 3;\n" + 
-		"				case 27 :\n" + 
-		"					return 3;\n" + 
-		"				case 28 :\n" + 
-		"					return 3;\n" + 
-		"				case 29 :\n" + 
-		"					return 3;\n" + 
-		"				case 30 :\n" + 
-		"					return 3;\n" + 
-		"				case 31 :\n" + 
-		"					return 3;\n" + 
-		"				case 32 :\n" + 
-		"					return 3;\n" + 
-		"				case 33 :\n" + 
-		"					return 3;\n" + 
-		"				case 34 :\n" + 
-		"					return 3;\n" + 
-		"				case 35 :\n" + 
-		"					return 3;\n" + 
-		"				case 36 :\n" + 
-		"					return 3;\n" + 
-		"				case 37 :\n" + 
-		"					return 3;\n" + 
-		"				case 38 :\n" + 
-		"					return 3;\n" + 
-		"				case 39 :\n" + 
-		"					return 3;\n" + 
-		"				case 40 :\n" + 
-		"					return 3;\n" + 
-		"				case 41 :\n" + 
-		"					return 3;\n" + 
-		"				case 42 :\n" + 
-		"					return 3;\n" + 
-		"				case 43 :\n" + 
-		"					return 3;\n" + 
-		"				case 44 :\n" + 
-		"					return 3;\n" + 
-		"				case 45 :\n" + 
-		"					return 3;\n" + 
-		"				case 46 :\n" + 
-		"					return 3;\n" + 
-		"				case 47 :\n" + 
-		"					return 3;\n" + 
-		"				case 48 :\n" + 
-		"					return 3;\n" + 
-		"				case 49 :\n" + 
-		"					return 3;\n" + 
-		"				case 50 :\n" + 
-		"					return 3;\n" + 
-		"				case 51 :\n" + 
-		"					return 3;\n" + 
-		"				case 52 :\n" + 
-		"					return 3;\n" + 
-		"				case 53 :\n" + 
-		"					return 3;\n" + 
-		"				case 54 :\n" + 
-		"					return 3;\n" + 
-		"				case 55 :\n" + 
-		"					return 3;\n" + 
-		"				case 56 :\n" + 
-		"					return 3;\n" + 
-		"				case 57 :\n" + 
-		"					return 3;\n" + 
-		"				case 58 :\n" + 
-		"					return 3;\n" + 
-		"				case 59 :\n" + 
-		"					return 3;\n" + 
-		"				case 60 :\n" + 
-		"					return 3;\n" + 
-		"				case 61 :\n" + 
-		"					return 3;\n" + 
-		"				case 62 :\n" + 
-		"					return 3;\n" + 
-		"				case 63 :\n" + 
-		"					return 3;\n" + 
-		"				case 64 :\n" + 
-		"					return 3;\n" + 
-		"				case 65 :\n" + 
-		"					return 3;\n" + 
-		"				case 66 :\n" + 
-		"					return 3;\n" + 
-		"				case 67 :\n" + 
-		"					return 3;\n" + 
-		"				case 68 :\n" + 
-		"					return 3;\n" + 
-		"				case 69 :\n" + 
-		"					return 3;\n" + 
-		"				case 70 :\n" + 
-		"					return 3;\n" + 
-		"				case 71 :\n" + 
-		"					return 3;\n" + 
-		"				case 72 :\n" + 
-		"					return 3;\n" + 
-		"				case 73 :\n" + 
-		"					return 3;\n" + 
-		"				case 74 :\n" + 
-		"					return 3;\n" + 
-		"				case 75 :\n" + 
-		"					return 3;\n" + 
-		"				case 76 :\n" + 
-		"					return 3;\n" + 
-		"				case 77 :\n" + 
-		"					return 3;\n" + 
-		"				case 78 :\n" + 
-		"					return 3;\n" + 
-		"				case 79 :\n" + 
-		"					return 3;\n" + 
-		"				case 80 :\n" + 
-		"					return 3;\n" + 
-		"				case 81 :\n" + 
-		"					return 3;\n" + 
-		"				case 82 :\n" + 
-		"					return 3;\n" + 
-		"				case 83 :\n" + 
-		"					return 3;\n" + 
-		"				case 84 :\n" + 
-		"					return 3;\n" + 
-		"				case 85 :\n" + 
-		"					return 3;\n" + 
-		"				case 86 :\n" + 
-		"					return 3;\n" + 
-		"				case 87 :\n" + 
-		"					return 3;\n" + 
-		"				case 88 :\n" + 
-		"					return 3;\n" + 
-		"				case 89 :\n" + 
-		"					return 3;\n" + 
-		"				case 90 :\n" + 
-		"					return 3;\n" + 
-		"				case 91 :\n" + 
-		"					return 3;\n" + 
-		"				case 92 :\n" + 
-		"					return 3;\n" + 
-		"				case 93 :\n" + 
-		"					return 3;\n" + 
-		"				case 94 :\n" + 
-		"					return 3;\n" + 
-		"				case 95 :\n" + 
-		"					return 3;\n" + 
-		"				case 96 :\n" + 
-		"					return 3;\n" + 
-		"				case 97 :\n" + 
-		"					return 3;\n" + 
-		"				case 98 :\n" + 
-		"					return 3;\n" + 
-		"				case 99 :\n" + 
-		"					return 3;\n" + 
-		"				case 100 :\n" + 
-		"					return 3;\n" + 
-		"				case 101 :\n" + 
-		"					return 3;\n" + 
-		"				case 102 :\n" + 
-		"					return 3;\n" + 
-		"				case 103 :\n" + 
-		"					return 3;\n" + 
-		"				case 104 :\n" + 
-		"					return 3;\n" + 
-		"				case 105 :\n" + 
-		"					return 3;\n" + 
-		"				case 106 :\n" + 
-		"					return 3;\n" + 
-		"				case 107 :\n" + 
-		"					return 3;\n" + 
-		"				case 108 :\n" + 
-		"					return 3;\n" + 
-		"				case 109 :\n" + 
-		"					return 3;\n" + 
-		"				case 110 :\n" + 
-		"					return 3;\n" + 
-		"				case 111 :\n" + 
-		"					return 3;\n" + 
-		"				case 112 :\n" + 
-		"					return 3;\n" + 
-		"				case 113 :\n" + 
-		"					return 3;\n" + 
-		"				case 114 :\n" + 
-		"					return 3;\n" + 
-		"				case 115 :\n" + 
-		"					return 3;\n" + 
-		"				case 116 :\n" + 
-		"					return 3;\n" + 
-		"				case 117 :\n" + 
-		"					return 3;\n" + 
-		"				case 118 :\n" + 
-		"					return 3;\n" + 
-		"				case 119 :\n" + 
-		"					return 3;\n" + 
-		"				case 120 :\n" + 
-		"					return 3;\n" + 
-		"				case 121 :\n" + 
-		"					return 3;\n" + 
-		"				case 122 :\n" + 
-		"					return 3;\n" + 
-		"				case 123 :\n" + 
-		"					return 3;\n" + 
-		"				case 124 :\n" + 
-		"					return 3;\n" + 
-		"				case 125 :\n" + 
-		"					return 3;\n" + 
-		"				case 126 :\n" + 
-		"					return 3;\n" + 
-		"				case 127 :\n" + 
-		"					return 3;\n" + 
-		"				case 128 :\n" + 
-		"					return 3;\n" + 
-		"				case 129 :\n" + 
-		"					return 3;\n" + 
-		"				case 130 :\n" + 
-		"					return 3;\n" + 
-		"				case 131 :\n" + 
-		"					return 3;\n" + 
-		"				case 132 :\n" + 
-		"					return 3;\n" + 
-		"				case 133 :\n" + 
-		"					return 3;\n" + 
-		"				case 134 :\n" + 
-		"					return 3;\n" + 
-		"				case 135 :\n" + 
-		"					return 3;\n" + 
-		"				case 136 :\n" + 
-		"					return 3;\n" + 
-		"				case 137 :\n" + 
-		"					return 3;\n" + 
-		"				case 138 :\n" + 
-		"					return 3;\n" + 
-		"				case 139 :\n" + 
-		"					return 3;\n" + 
-		"				case 140 :\n" + 
-		"					return 3;\n" + 
-		"				case 141 :\n" + 
-		"					return 3;\n" + 
-		"				case 142 :\n" + 
-		"					return 3;\n" + 
-		"				case 143 :\n" + 
-		"					return 3;\n" + 
-		"				case 144 :\n" + 
-		"					return 3;\n" + 
-		"				case 145 :\n" + 
-		"					return 3;\n" + 
-		"				case 146 :\n" + 
-		"					return 3;\n" + 
-		"				case 147 :\n" + 
-		"					return 3;\n" + 
-		"				case 148 :\n" + 
-		"					return 3;\n" + 
-		"				case 149 :\n" + 
-		"					return 3;\n" + 
-		"				case 150 :\n" + 
-		"					return 3;\n" + 
-		"				case 151 :\n" + 
-		"					return 3;\n" + 
-		"				case 152 :\n" + 
-		"					return 3;\n" + 
-		"				case 153 :\n" + 
-		"					return 3;\n" + 
-		"				case 154 :\n" + 
-		"					return 3;\n" + 
-		"				case 155 :\n" + 
-		"					return 3;\n" + 
-		"				case 156 :\n" + 
-		"					return 3;\n" + 
-		"				case 157 :\n" + 
-		"					return 3;\n" + 
-		"				case 158 :\n" + 
-		"					return 3;\n" + 
-		"				case 159 :\n" + 
-		"					return 3;\n" + 
-		"				case 160 :\n" + 
-		"					return 3;\n" + 
-		"				case 161 :\n" + 
-		"					return 3;\n" + 
-		"				case 162 :\n" + 
-		"					return 3;\n" + 
-		"				case 163 :\n" + 
-		"					return 3;\n" + 
-		"				case 164 :\n" + 
-		"					return 3;\n" + 
-		"				case 165 :\n" + 
-		"					return 3;\n" + 
-		"				case 166 :\n" + 
-		"					return 3;\n" + 
-		"				case 167 :\n" + 
-		"					return 3;\n" + 
-		"				case 168 :\n" + 
-		"					return 3;\n" + 
-		"				case 169 :\n" + 
-		"					return 3;\n" + 
-		"				case 170 :\n" + 
-		"					return 3;\n" + 
-		"				case 171 :\n" + 
-		"					return 3;\n" + 
-		"				case 172 :\n" + 
-		"					return 3;\n" + 
-		"				case 173 :\n" + 
-		"					return 3;\n" + 
-		"				case 174 :\n" + 
-		"					return 3;\n" + 
-		"				case 175 :\n" + 
-		"					return 3;\n" + 
-		"				case 176 :\n" + 
-		"					return 3;\n" + 
-		"				case 177 :\n" + 
-		"					return 3;\n" + 
-		"				case 178 :\n" + 
-		"					return 3;\n" + 
-		"				case 179 :\n" + 
-		"					return 3;\n" + 
-		"				case 180 :\n" + 
-		"					return 3;\n" + 
-		"				case 181 :\n" + 
-		"					return 3;\n" + 
-		"				case 182 :\n" + 
-		"					return 3;\n" + 
-		"				case 183 :\n" + 
-		"					return 3;\n" + 
-		"				case 184 :\n" + 
-		"					return 3;\n" + 
-		"				case 185 :\n" + 
-		"					return 3;\n" + 
-		"				case 186 :\n" + 
-		"					return 3;\n" + 
-		"				case 187 :\n" + 
-		"					return 3;\n" + 
-		"				case 188 :\n" + 
-		"					return 3;\n" + 
-		"				case 189 :\n" + 
-		"					return 3;\n" + 
-		"				case 190 :\n" + 
-		"					return 3;\n" + 
-		"				case 191 :\n" + 
-		"					return 3;\n" + 
-		"				case 192 :\n" + 
-		"					return 3;\n" + 
-		"				case 193 :\n" + 
-		"					return 3;\n" + 
-		"				case 194 :\n" + 
-		"					return 3;\n" + 
-		"				case 195 :\n" + 
-		"					return 3;\n" + 
-		"				case 196 :\n" + 
-		"					return 3;\n" + 
-		"				case 197 :\n" + 
-		"					return 3;\n" + 
-		"				case 198 :\n" + 
-		"					return 3;\n" + 
-		"				case 199 :\n" + 
-		"					return 3;\n" + 
-		"				case 200 :\n" + 
-		"					return 3;\n" + 
-		"				case 201 :\n" + 
-		"					return 3;\n" + 
-		"				case 202 :\n" + 
-		"					return 3;\n" + 
-		"				case 203 :\n" + 
-		"					return 3;\n" + 
-		"				case 204 :\n" + 
-		"					return 3;\n" + 
-		"				case 205 :\n" + 
-		"					return 3;\n" + 
-		"				case 206 :\n" + 
-		"					return 3;\n" + 
-		"				case 207 :\n" + 
-		"					return 3;\n" + 
-		"				case 208 :\n" + 
-		"					return 3;\n" + 
-		"				case 209 :\n" + 
-		"					return 3;\n" + 
-		"				case 210 :\n" + 
-		"					return 3;\n" + 
-		"				case 211 :\n" + 
-		"					return 3;\n" + 
-		"				case 212 :\n" + 
-		"					return 3;\n" + 
-		"				case 213 :\n" + 
-		"					return 3;\n" + 
-		"				case 214 :\n" + 
-		"					return 3;\n" + 
-		"				case 215 :\n" + 
-		"					return 3;\n" + 
-		"				case 216 :\n" + 
-		"					return 3;\n" + 
-		"				case 217 :\n" + 
-		"					return 3;\n" + 
-		"				case 218 :\n" + 
-		"					return 3;\n" + 
-		"				case 219 :\n" + 
-		"					return 3;\n" + 
-		"				case 220 :\n" + 
-		"					return 3;\n" + 
-		"				case 221 :\n" + 
-		"					return 3;\n" + 
-		"				case 222 :\n" + 
-		"					return 3;\n" + 
-		"				case 223 :\n" + 
-		"					return 3;\n" + 
-		"				case 224 :\n" + 
-		"					return 3;\n" + 
-		"				case 225 :\n" + 
-		"					return 3;\n" + 
-		"				case 226 :\n" + 
-		"					return 3;\n" + 
-		"				case 227 :\n" + 
-		"					return 3;\n" + 
-		"				case 228 :\n" + 
-		"					return 3;\n" + 
-		"				case 229 :\n" + 
-		"					return 3;\n" + 
-		"				case 230 :\n" + 
-		"					return 3;\n" + 
-		"				case 231 :\n" + 
-		"					return 3;\n" + 
-		"				case 232 :\n" + 
-		"					return 3;\n" + 
-		"				case 233 :\n" + 
-		"					return 3;\n" + 
-		"				case 234 :\n" + 
-		"					return 3;\n" + 
-		"				case 235 :\n" + 
-		"					return 3;\n" + 
-		"				case 236 :\n" + 
-		"					return 3;\n" + 
-		"				case 237 :\n" + 
-		"					return 3;\n" + 
-		"				case 238 :\n" + 
-		"					return 3;\n" + 
-		"				case 239 :\n" + 
-		"					return 3;\n" + 
-		"				case 240 :\n" + 
-		"					return 3;\n" + 
-		"				case 241 :\n" + 
-		"					return 3;\n" + 
-		"				case 242 :\n" + 
-		"					return 3;\n" + 
-		"				case 243 :\n" + 
-		"					return 3;\n" + 
-		"				case 244 :\n" + 
-		"					return 3;\n" + 
-		"				case 245 :\n" + 
-		"					return 3;\n" + 
-		"				case 246 :\n" + 
-		"					return 3;\n" + 
-		"				case 247 :\n" + 
-		"					return 3;\n" + 
-		"				case 248 :\n" + 
-		"					return 3;\n" + 
-		"				case 249 :\n" + 
-		"					return 3;\n" + 
-		"				case 250 :\n" + 
-		"					return 3;\n" + 
-		"				case 251 :\n" + 
-		"					return 3;\n" + 
-		"				case 252 :\n" + 
-		"					return 3;\n" + 
-		"				case 253 :\n" + 
-		"					return 3;\n" + 
-		"				case 254 :\n" + 
-		"					return 3;\n" + 
-		"				case 255 :\n" + 
-		"					return 3;\n" + 
-		"				case 256 :\n" + 
-		"					return 3;\n" + 
-		"				case 257 :\n" + 
-		"					return 3;\n" + 
-		"				case 258 :\n" + 
-		"					return 3;\n" + 
-		"				case 259 :\n" + 
-		"					return 3;\n" + 
-		"				case 260 :\n" + 
-		"					return 3;\n" + 
-		"				case 261 :\n" + 
-		"					return 3;\n" + 
-		"				case 262 :\n" + 
-		"					return 3;\n" + 
-		"				case 263 :\n" + 
-		"					return 3;\n" + 
-		"				case 264 :\n" + 
-		"					return 3;\n" + 
-		"				case 265 :\n" + 
-		"					return 3;\n" + 
-		"				case 266 :\n" + 
-		"					return 3;\n" + 
-		"				case 267 :\n" + 
-		"					return 3;\n" + 
-		"				case 268 :\n" + 
-		"					return 3;\n" + 
-		"				case 269 :\n" + 
-		"					return 3;\n" + 
-		"				case 270 :\n" + 
-		"					return 3;\n" + 
-		"				case 271 :\n" + 
-		"					return 3;\n" + 
-		"				case 272 :\n" + 
-		"					return 3;\n" + 
-		"				case 273 :\n" + 
-		"					return 3;\n" + 
-		"				case 274 :\n" + 
-		"					return 3;\n" + 
-		"				case 275 :\n" + 
-		"					return 3;\n" + 
-		"				case 276 :\n" + 
-		"					return 3;\n" + 
-		"				case 277 :\n" + 
-		"					return 3;\n" + 
-		"				case 278 :\n" + 
-		"					return 3;\n" + 
-		"				case 279 :\n" + 
-		"					return 3;\n" + 
-		"				case 280 :\n" + 
-		"					return 3;\n" + 
-		"				case 281 :\n" + 
-		"					return 3;\n" + 
-		"				case 282 :\n" + 
-		"					return 3;\n" + 
-		"				case 283 :\n" + 
-		"					return 3;\n" + 
-		"				case 284 :\n" + 
-		"					return 3;\n" + 
-		"				case 285 :\n" + 
-		"					return 3;\n" + 
-		"				case 286 :\n" + 
-		"					return 3;\n" + 
-		"				case 287 :\n" + 
-		"					return 3;\n" + 
-		"				case 288 :\n" + 
-		"					return 3;\n" + 
-		"				case 289 :\n" + 
-		"					return 3;\n" + 
-		"				case 290 :\n" + 
-		"					return 3;\n" + 
-		"				case 291 :\n" + 
-		"					return 3;\n" + 
-		"				case 292 :\n" + 
-		"					return 3;\n" + 
-		"				case 293 :\n" + 
-		"					return 3;\n" + 
-		"				case 294 :\n" + 
-		"					return 3;\n" + 
-		"				case 295 :\n" + 
-		"					return 3;\n" + 
-		"				case 296 :\n" + 
-		"					return 3;\n" + 
-		"				case 297 :\n" + 
-		"					return 3;\n" + 
-		"				case 298 :\n" + 
-		"					return 3;\n" + 
-		"				case 299 :\n" + 
-		"					return 3;\n" + 
-		"				case 300 :\n" + 
-		"					return 3;\n" + 
-		"				case 301 :\n" + 
-		"					return 3;\n" + 
-		"				case 302 :\n" + 
-		"					return 3;\n" + 
-		"				case 303 :\n" + 
-		"					return 3;\n" + 
-		"				case 304 :\n" + 
-		"					return 3;\n" + 
-		"				case 305 :\n" + 
-		"					return 3;\n" + 
-		"				case 306 :\n" + 
-		"					return 3;\n" + 
-		"				case 307 :\n" + 
-		"					return 3;\n" + 
-		"				case 308 :\n" + 
-		"					return 3;\n" + 
-		"				case 309 :\n" + 
-		"					return 3;\n" + 
-		"				case 310 :\n" + 
-		"					return 3;\n" + 
-		"				case 311 :\n" + 
-		"					return 3;\n" + 
-		"				case 312 :\n" + 
-		"					return 3;\n" + 
-		"				case 313 :\n" + 
-		"					return 3;\n" + 
-		"				case 314 :\n" + 
-		"					return 3;\n" + 
-		"				case 315 :\n" + 
-		"					return 3;\n" + 
-		"				case 316 :\n" + 
-		"					return 3;\n" + 
-		"				case 317 :\n" + 
-		"					return 3;\n" + 
-		"				case 318 :\n" + 
-		"					return 3;\n" + 
-		"				case 319 :\n" + 
-		"					return 3;\n" + 
-		"				case 320 :\n" + 
-		"					return 3;\n" + 
-		"				case 321 :\n" + 
-		"					return 3;\n" + 
-		"				case 322 :\n" + 
-		"					return 3;\n" + 
-		"				case 323 :\n" + 
-		"					return 3;\n" + 
-		"				case 324 :\n" + 
-		"					return 3;\n" + 
-		"				case 325 :\n" + 
-		"					return 3;\n" + 
-		"				case 326 :\n" + 
-		"					return 3;\n" + 
-		"				case 327 :\n" + 
-		"					return 3;\n" + 
-		"				case 328 :\n" + 
-		"					return 3;\n" + 
-		"				case 329 :\n" + 
-		"					return 3;\n" + 
-		"				case 330 :\n" + 
-		"					return 3;\n" + 
-		"				case 331 :\n" + 
-		"					return 3;\n" + 
-		"				case 332 :\n" + 
-		"					return 3;\n" + 
-		"				case 333 :\n" + 
-		"					return 3;\n" + 
-		"				case 334 :\n" + 
-		"					return 3;\n" + 
-		"				case 335 :\n" + 
-		"					return 3;\n" + 
-		"				case 336 :\n" + 
-		"					return 3;\n" + 
-		"				case 337 :\n" + 
-		"					return 3;\n" + 
-		"				case 338 :\n" + 
-		"					return 3;\n" + 
-		"				case 339 :\n" + 
-		"					return 3;\n" + 
-		"				case 340 :\n" + 
-		"					return 3;\n" + 
-		"				case 341 :\n" + 
-		"					return 3;\n" + 
-		"				case 342 :\n" + 
-		"					return 3;\n" + 
-		"				case 343 :\n" + 
-		"					return 3;\n" + 
-		"				case 344 :\n" + 
-		"					return 3;\n" + 
-		"				case 345 :\n" + 
-		"					return 3;\n" + 
-		"				case 346 :\n" + 
-		"					return 3;\n" + 
-		"				case 347 :\n" + 
-		"					return 3;\n" + 
-		"				case 348 :\n" + 
-		"					return 3;\n" + 
-		"				case 349 :\n" + 
-		"					return 3;\n" + 
-		"				case 350 :\n" + 
-		"					return 3;\n" + 
-		"				case 351 :\n" + 
-		"					return 3;\n" + 
-		"				case 352 :\n" + 
-		"					return 3;\n" + 
-		"				case 353 :\n" + 
-		"					return 3;\n" + 
-		"				case 354 :\n" + 
-		"					return 3;\n" + 
-		"				case 355 :\n" + 
-		"					return 3;\n" + 
-		"				case 356 :\n" + 
-		"					return 3;\n" + 
-		"				case 357 :\n" + 
-		"					return 3;\n" + 
-		"				case 358 :\n" + 
-		"					return 3;\n" + 
-		"				case 359 :\n" + 
-		"					return 3;\n" + 
-		"				case 360 :\n" + 
-		"					return 3;\n" + 
-		"				case 361 :\n" + 
-		"					return 3;\n" + 
-		"				case 362 :\n" + 
-		"					return 3;\n" + 
-		"				case 363 :\n" + 
-		"					return 3;\n" + 
-		"				case 364 :\n" + 
-		"					return 3;\n" + 
-		"				case 365 :\n" + 
-		"					return 3;\n" + 
-		"				case 366 :\n" + 
-		"					return 3;\n" + 
-		"				case 367 :\n" + 
-		"					return 3;\n" + 
-		"				case 368 :\n" + 
-		"					return 3;\n" + 
-		"				case 369 :\n" + 
-		"					return 3;\n" + 
-		"				case 370 :\n" + 
-		"					return 3;\n" + 
-		"				case 371 :\n" + 
-		"					return 3;\n" + 
-		"				case 372 :\n" + 
-		"					return 3;\n" + 
-		"				case 373 :\n" + 
-		"					return 3;\n" + 
-		"				case 374 :\n" + 
-		"					return 3;\n" + 
-		"				case 375 :\n" + 
-		"					return 3;\n" + 
-		"				case 376 :\n" + 
-		"					return 3;\n" + 
-		"				case 377 :\n" + 
-		"					return 3;\n" + 
-		"				case 378 :\n" + 
-		"					return 3;\n" + 
-		"				case 379 :\n" + 
-		"					return 3;\n" + 
-		"				case 380 :\n" + 
-		"					return 3;\n" + 
-		"				case 381 :\n" + 
-		"					return 3;\n" + 
-		"				case 382 :\n" + 
-		"					return 3;\n" + 
-		"				case 383 :\n" + 
-		"					return 3;\n" + 
-		"				case 384 :\n" + 
-		"					return 3;\n" + 
-		"				case 385 :\n" + 
-		"					return 3;\n" + 
-		"				case 386 :\n" + 
-		"					return 3;\n" + 
-		"				case 387 :\n" + 
-		"					return 3;\n" + 
-		"				case 388 :\n" + 
-		"					return 3;\n" + 
-		"				case 389 :\n" + 
-		"					return 3;\n" + 
-		"				case 390 :\n" + 
-		"					return 3;\n" + 
-		"				case 391 :\n" + 
-		"					return 3;\n" + 
-		"				case 392 :\n" + 
-		"					return 3;\n" + 
-		"				case 393 :\n" + 
-		"					return 3;\n" + 
-		"				case 394 :\n" + 
-		"					return 3;\n" + 
-		"				case 395 :\n" + 
-		"					return 3;\n" + 
-		"				case 396 :\n" + 
-		"					return 3;\n" + 
-		"				case 397 :\n" + 
-		"					return 3;\n" + 
-		"				case 398 :\n" + 
-		"					return 3;\n" + 
-		"				case 399 :\n" + 
-		"					return 3;\n" + 
-		"				case 400 :\n" + 
-		"					return 3;\n" + 
-		"				case 401 :\n" + 
-		"					return 3;\n" + 
-		"				case 402 :\n" + 
-		"					return 3;\n" + 
-		"				case 403 :\n" + 
-		"					return 3;\n" + 
-		"				case 404 :\n" + 
-		"					return 3;\n" + 
-		"				case 405 :\n" + 
-		"					return 3;\n" + 
-		"				case 406 :\n" + 
-		"					return 3;\n" + 
-		"				case 407 :\n" + 
-		"					return 3;\n" + 
-		"				case 408 :\n" + 
-		"					return 3;\n" + 
-		"				case 409 :\n" + 
-		"					return 3;\n" + 
-		"				case 410 :\n" + 
-		"					return 3;\n" + 
-		"				case 411 :\n" + 
-		"					return 3;\n" + 
-		"				case 412 :\n" + 
-		"					return 3;\n" + 
-		"				case 413 :\n" + 
-		"					return 3;\n" + 
-		"				case 414 :\n" + 
-		"					return 3;\n" + 
-		"				case 415 :\n" + 
-		"					return 3;\n" + 
-		"				case 416 :\n" + 
-		"					return 3;\n" + 
-		"				case 417 :\n" + 
-		"					return 3;\n" + 
-		"				case 418 :\n" + 
-		"					return 3;\n" + 
-		"				case 419 :\n" + 
-		"					return 3;\n" + 
-		"				case 420 :\n" + 
-		"					return 3;\n" + 
-		"				case 421 :\n" + 
-		"					return 3;\n" + 
-		"				case 422 :\n" + 
-		"					return 3;\n" + 
-		"				case 423 :\n" + 
-		"					return 3;\n" + 
-		"				case 424 :\n" + 
-		"					return 3;\n" + 
-		"				case 425 :\n" + 
-		"					return 3;\n" + 
-		"				case 426 :\n" + 
-		"					return 3;\n" + 
-		"				case 427 :\n" + 
-		"					return 3;\n" + 
-		"				case 428 :\n" + 
-		"					return 3;\n" + 
-		"				case 429 :\n" + 
-		"					return 3;\n" + 
-		"				case 430 :\n" + 
-		"					return 3;\n" + 
-		"				case 431 :\n" + 
-		"					return 3;\n" + 
-		"				case 432 :\n" + 
-		"					return 3;\n" + 
-		"				case 433 :\n" + 
-		"					return 3;\n" + 
-		"				case 434 :\n" + 
-		"					return 3;\n" + 
-		"				case 435 :\n" + 
-		"					return 3;\n" + 
-		"				case 436 :\n" + 
-		"					return 3;\n" + 
-		"				case 437 :\n" + 
-		"					return 3;\n" + 
-		"				case 438 :\n" + 
-		"					return 3;\n" + 
-		"				case 439 :\n" + 
-		"					return 3;\n" + 
-		"				case 440 :\n" + 
-		"					return 3;\n" + 
-		"				case 441 :\n" + 
-		"					return 3;\n" + 
-		"				case 442 :\n" + 
-		"					return 3;\n" + 
-		"				case 443 :\n" + 
-		"					return 3;\n" + 
-		"				case 444 :\n" + 
-		"					return 3;\n" + 
-		"				case 445 :\n" + 
-		"					return 3;\n" + 
-		"				case 446 :\n" + 
-		"					return 3;\n" + 
-		"				case 447 :\n" + 
-		"					return 3;\n" + 
-		"				case 448 :\n" + 
-		"					return 3;\n" + 
-		"				case 449 :\n" + 
-		"					return 3;\n" + 
-		"				case 450 :\n" + 
-		"					return 3;\n" + 
-		"				case 451 :\n" + 
-		"					return 3;\n" + 
-		"				case 452 :\n" + 
-		"					return 3;\n" + 
-		"				case 453 :\n" + 
-		"					return 3;\n" + 
-		"				case 454 :\n" + 
-		"					return 3;\n" + 
-		"				case 455 :\n" + 
-		"					return 3;\n" + 
-		"				case 456 :\n" + 
-		"					return 3;\n" + 
-		"				case 457 :\n" + 
-		"					return 3;\n" + 
-		"				case 458 :\n" + 
-		"					return 3;\n" + 
-		"				case 459 :\n" + 
-		"					return 3;\n" + 
-		"				case 460 :\n" + 
-		"					return 3;\n" + 
-		"				case 461 :\n" + 
-		"					return 3;\n" + 
-		"				case 462 :\n" + 
-		"					return 3;\n" + 
-		"				case 463 :\n" + 
-		"					return 3;\n" + 
-		"				case 464 :\n" + 
-		"					return 3;\n" + 
-		"				case 465 :\n" + 
-		"					return 3;\n" + 
-		"				case 466 :\n" + 
-		"					return 3;\n" + 
-		"				case 467 :\n" + 
-		"					return 3;\n" + 
-		"				case 468 :\n" + 
-		"					return 3;\n" + 
-		"				case 469 :\n" + 
-		"					return 3;\n" + 
-		"				case 470 :\n" + 
-		"					return 3;\n" + 
-		"				case 471 :\n" + 
-		"					return 3;\n" + 
-		"				case 472 :\n" + 
-		"					return 3;\n" + 
-		"				case 473 :\n" + 
-		"					return 3;\n" + 
-		"				case 474 :\n" + 
-		"					return 3;\n" + 
-		"				case 475 :\n" + 
-		"					return 3;\n" + 
-		"				case 476 :\n" + 
-		"					return 3;\n" + 
-		"				case 477 :\n" + 
-		"					return 3;\n" + 
-		"				case 478 :\n" + 
-		"					return 3;\n" + 
-		"				case 479 :\n" + 
-		"					return 3;\n" + 
-		"				case 480 :\n" + 
-		"					return 3;\n" + 
-		"				case 481 :\n" + 
-		"					return 3;\n" + 
-		"				case 482 :\n" + 
-		"					return 3;\n" + 
-		"				case 483 :\n" + 
-		"					return 3;\n" + 
-		"				case 484 :\n" + 
-		"					return 3;\n" + 
-		"				case 485 :\n" + 
-		"					return 3;\n" + 
-		"				case 486 :\n" + 
-		"					return 3;\n" + 
-		"				case 487 :\n" + 
-		"					return 3;\n" + 
-		"				case 488 :\n" + 
-		"					return 3;\n" + 
-		"				case 489 :\n" + 
-		"					return 3;\n" + 
-		"				case 490 :\n" + 
-		"					return 3;\n" + 
-		"				case 491 :\n" + 
-		"					return 3;\n" + 
-		"				case 492 :\n" + 
-		"					return 3;\n" + 
-		"				case 493 :\n" + 
-		"					return 3;\n" + 
-		"				case 494 :\n" + 
-		"					return 3;\n" + 
-		"				case 495 :\n" + 
-		"					return 3;\n" + 
-		"				case 496 :\n" + 
-		"					return 3;\n" + 
-		"				case 497 :\n" + 
-		"					return 3;\n" + 
-		"				case 498 :\n" + 
-		"					return 3;\n" + 
-		"				case 499 :\n" + 
-		"					return 3;\n" + 
-		"				case 500 :\n" + 
-		"					return 3;\n" + 
-		"				case 501 :\n" + 
-		"					return 3;\n" + 
-		"				case 502 :\n" + 
-		"					return 3;\n" + 
-		"				case 503 :\n" + 
-		"					return 3;\n" + 
-		"				case 504 :\n" + 
-		"					return 3;\n" + 
-		"				case 505 :\n" + 
-		"					return 3;\n" + 
-		"				case 506 :\n" + 
-		"					return 3;\n" + 
-		"				case 507 :\n" + 
-		"					return 3;\n" + 
-		"				case 508 :\n" + 
-		"					return 3;\n" + 
-		"				case 509 :\n" + 
-		"					return 3;\n" + 
-		"				case 510 :\n" + 
-		"					return 3;\n" + 
-		"				case 511 :\n" + 
-		"					return 3;\n" + 
-		"				case 512 :\n" + 
-		"					return 3;\n" + 
-		"				case 513 :\n" + 
-		"					return 3;\n" + 
-		"				case 514 :\n" + 
-		"					return 3;\n" + 
-		"				case 515 :\n" + 
-		"					return 3;\n" + 
-		"				case 516 :\n" + 
-		"					return 3;\n" + 
-		"				case 517 :\n" + 
-		"					return 3;\n" + 
-		"				case 518 :\n" + 
-		"					return 3;\n" + 
-		"				case 519 :\n" + 
-		"					return 3;\n" + 
-		"				case 520 :\n" + 
-		"					return 3;\n" + 
-		"				case 521 :\n" + 
-		"					return 3;\n" + 
-		"				case 522 :\n" + 
-		"					return 3;\n" + 
-		"				case 523 :\n" + 
-		"					return 3;\n" + 
-		"				case 524 :\n" + 
-		"					return 3;\n" + 
-		"				case 525 :\n" + 
-		"					return 3;\n" + 
-		"				case 526 :\n" + 
-		"					return 3;\n" + 
-		"				case 527 :\n" + 
-		"					return 3;\n" + 
-		"				case 528 :\n" + 
-		"					return 3;\n" + 
-		"				case 529 :\n" + 
-		"					return 3;\n" + 
-		"				case 530 :\n" + 
-		"					return 3;\n" + 
-		"				case 531 :\n" + 
-		"					return 3;\n" + 
-		"				case 532 :\n" + 
-		"					return 3;\n" + 
-		"				case 533 :\n" + 
-		"					return 3;\n" + 
-		"				case 534 :\n" + 
-		"					return 3;\n" + 
-		"				case 535 :\n" + 
-		"					return 3;\n" + 
-		"				case 536 :\n" + 
-		"					return 3;\n" + 
-		"				case 537 :\n" + 
-		"					return 3;\n" + 
-		"				case 538 :\n" + 
-		"					return 3;\n" + 
-		"				case 539 :\n" + 
-		"					return 3;\n" + 
-		"				case 540 :\n" + 
-		"					return 3;\n" + 
-		"				case 541 :\n" + 
-		"					return 3;\n" + 
-		"				case 542 :\n" + 
-		"					return 3;\n" + 
-		"				case 543 :\n" + 
-		"					return 3;\n" + 
-		"				case 544 :\n" + 
-		"					return 3;\n" + 
-		"				case 545 :\n" + 
-		"					return 3;\n" + 
-		"				case 546 :\n" + 
-		"					return 3;\n" + 
-		"				case 547 :\n" + 
-		"					return 3;\n" + 
-		"				case 548 :\n" + 
-		"					return 3;\n" + 
-		"				case 549 :\n" + 
-		"					return 3;\n" + 
-		"				case 550 :\n" + 
-		"					return 3;\n" + 
-		"				case 551 :\n" + 
-		"					return 3;\n" + 
-		"				case 552 :\n" + 
-		"					return 3;\n" + 
-		"				case 553 :\n" + 
-		"					return 3;\n" + 
-		"				case 554 :\n" + 
-		"					return 3;\n" + 
-		"				case 555 :\n" + 
-		"					return 3;\n" + 
-		"				case 556 :\n" + 
-		"					return 3;\n" + 
-		"				case 557 :\n" + 
-		"					return 3;\n" + 
-		"				case 558 :\n" + 
-		"					return 3;\n" + 
-		"				case 559 :\n" + 
-		"					return 3;\n" + 
-		"				case 560 :\n" + 
-		"					return 3;\n" + 
-		"				case 561 :\n" + 
-		"					return 3;\n" + 
-		"				case 562 :\n" + 
-		"					return 3;\n" + 
-		"				case 563 :\n" + 
-		"					return 3;\n" + 
-		"				case 564 :\n" + 
-		"					return 3;\n" + 
-		"				case 565 :\n" + 
-		"					return 3;\n" + 
-		"				case 566 :\n" + 
-		"					return 3;\n" + 
-		"				case 567 :\n" + 
-		"					return 3;\n" + 
-		"				case 568 :\n" + 
-		"					return 3;\n" + 
-		"				case 569 :\n" + 
-		"					return 3;\n" + 
-		"				case 570 :\n" + 
-		"					return 3;\n" + 
-		"				case 571 :\n" + 
-		"					return 3;\n" + 
-		"				case 572 :\n" + 
-		"					return 3;\n" + 
-		"				case 573 :\n" + 
-		"					return 3;\n" + 
-		"				case 574 :\n" + 
-		"					return 3;\n" + 
-		"				case 575 :\n" + 
-		"					return 3;\n" + 
-		"				case 576 :\n" + 
-		"					return 3;\n" + 
-		"				case 577 :\n" + 
-		"					return 3;\n" + 
-		"				case 578 :\n" + 
-		"					return 3;\n" + 
-		"				case 579 :\n" + 
-		"					return 3;\n" + 
-		"				case 580 :\n" + 
-		"					return 3;\n" + 
-		"				case 581 :\n" + 
-		"					return 3;\n" + 
-		"				case 582 :\n" + 
-		"					return 3;\n" + 
-		"				case 583 :\n" + 
-		"					return 3;\n" + 
-		"				case 584 :\n" + 
-		"					return 3;\n" + 
-		"				case 585 :\n" + 
-		"					return 3;\n" + 
-		"				case 586 :\n" + 
-		"					return 3;\n" + 
-		"				case 587 :\n" + 
-		"					return 3;\n" + 
-		"				case 588 :\n" + 
-		"					return 3;\n" + 
-		"				case 589 :\n" + 
-		"					return 3;\n" + 
-		"				case 590 :\n" + 
-		"					return 3;\n" + 
-		"				case 591 :\n" + 
-		"					return 3;\n" + 
-		"				case 592 :\n" + 
-		"					return 3;\n" + 
-		"				case 593 :\n" + 
-		"					return 3;\n" + 
-		"				case 594 :\n" + 
-		"					return 3;\n" + 
-		"				case 595 :\n" + 
-		"					return 3;\n" + 
-		"				case 596 :\n" + 
-		"					return 3;\n" + 
-		"				case 597 :\n" + 
-		"					return 3;\n" + 
-		"				case 598 :\n" + 
-		"					return 3;\n" + 
-		"				case 599 :\n" + 
-		"					return 3;\n" + 
-		"				case 600 :\n" + 
-		"					return 3;\n" + 
-		"				case 601 :\n" + 
-		"					return 3;\n" + 
-		"				case 602 :\n" + 
-		"					return 3;\n" + 
-		"				case 603 :\n" + 
-		"					return 3;\n" + 
-		"				case 604 :\n" + 
-		"					return 3;\n" + 
-		"				case 605 :\n" + 
-		"					return 3;\n" + 
-		"				case 606 :\n" + 
-		"					return 3;\n" + 
-		"				case 607 :\n" + 
-		"					return 3;\n" + 
-		"				case 608 :\n" + 
-		"					return 3;\n" + 
-		"				case 609 :\n" + 
-		"					return 3;\n" + 
-		"				case 610 :\n" + 
-		"					return 3;\n" + 
-		"				case 611 :\n" + 
-		"					return 3;\n" + 
-		"				case 612 :\n" + 
-		"					return 3;\n" + 
-		"				case 613 :\n" + 
-		"					return 3;\n" + 
-		"				case 614 :\n" + 
-		"					return 3;\n" + 
-		"				case 615 :\n" + 
-		"					return 3;\n" + 
-		"				case 616 :\n" + 
-		"					return 3;\n" + 
-		"				case 617 :\n" + 
-		"					return 3;\n" + 
-		"				case 618 :\n" + 
-		"					return 3;\n" + 
-		"				case 619 :\n" + 
-		"					return 3;\n" + 
-		"				case 620 :\n" + 
-		"					return 3;\n" + 
-		"				case 621 :\n" + 
-		"					return 3;\n" + 
-		"				case 622 :\n" + 
-		"					return 3;\n" + 
-		"				case 623 :\n" + 
-		"					return 3;\n" + 
-		"				case 624 :\n" + 
-		"					return 3;\n" + 
-		"				case 625 :\n" + 
-		"					return 3;\n" + 
-		"				case 626 :\n" + 
-		"					return 3;\n" + 
-		"				case 627 :\n" + 
-		"					return 3;\n" + 
-		"				case 628 :\n" + 
-		"					return 3;\n" + 
-		"				case 629 :\n" + 
-		"					return 3;\n" + 
-		"				case 630 :\n" + 
-		"					return 3;\n" + 
-		"				case 631 :\n" + 
-		"					return 3;\n" + 
-		"				case 632 :\n" + 
-		"					return 3;\n" + 
-		"				case 633 :\n" + 
-		"					return 3;\n" + 
-		"				case 634 :\n" + 
-		"					return 3;\n" + 
-		"				case 635 :\n" + 
-		"					return 3;\n" + 
-		"				case 636 :\n" + 
-		"					return 3;\n" + 
-		"				case 637 :\n" + 
-		"					return 3;\n" + 
-		"				case 638 :\n" + 
-		"					return 3;\n" + 
-		"				case 639 :\n" + 
-		"					return 3;\n" + 
-		"				case 640 :\n" + 
-		"					return 3;\n" + 
-		"				case 641 :\n" + 
-		"					return 3;\n" + 
-		"				case 642 :\n" + 
-		"					return 3;\n" + 
-		"				case 643 :\n" + 
-		"					return 3;\n" + 
-		"				case 644 :\n" + 
-		"					return 3;\n" + 
-		"				case 645 :\n" + 
-		"					return 3;\n" + 
-		"				case 646 :\n" + 
-		"					return 3;\n" + 
-		"				case 647 :\n" + 
-		"					return 3;\n" + 
-		"				case 648 :\n" + 
-		"					return 3;\n" + 
-		"				case 649 :\n" + 
-		"					return 3;\n" + 
-		"				case 650 :\n" + 
-		"					return 3;\n" + 
-		"				case 651 :\n" + 
-		"					return 3;\n" + 
-		"				case 652 :\n" + 
-		"					return 3;\n" + 
-		"				case 653 :\n" + 
-		"					return 3;\n" + 
-		"				case 654 :\n" + 
-		"					return 3;\n" + 
-		"				case 655 :\n" + 
-		"					return 3;\n" + 
-		"				case 656 :\n" + 
-		"					return 3;\n" + 
-		"				case 657 :\n" + 
-		"					return 3;\n" + 
-		"				case 658 :\n" + 
-		"					return 3;\n" + 
-		"				case 659 :\n" + 
-		"					return 3;\n" + 
-		"				case 660 :\n" + 
-		"					return 3;\n" + 
-		"				case 661 :\n" + 
-		"					return 3;\n" + 
-		"				case 662 :\n" + 
-		"					return 3;\n" + 
-		"				case 663 :\n" + 
-		"					return 3;\n" + 
-		"				case 664 :\n" + 
-		"					return 3;\n" + 
-		"				case 665 :\n" + 
-		"					return 3;\n" + 
-		"				case 666 :\n" + 
-		"					return 3;\n" + 
-		"				case 667 :\n" + 
-		"					return 3;\n" + 
-		"				case 668 :\n" + 
-		"					return 3;\n" + 
-		"				case 669 :\n" + 
-		"					return 3;\n" + 
-		"				case 670 :\n" + 
-		"					return 3;\n" + 
-		"				case 671 :\n" + 
-		"					return 3;\n" + 
-		"				case 672 :\n" + 
-		"					return 3;\n" + 
-		"				case 673 :\n" + 
-		"					return 3;\n" + 
-		"				case 674 :\n" + 
-		"					return 3;\n" + 
-		"				case 675 :\n" + 
-		"					return 3;\n" + 
-		"				case 676 :\n" + 
-		"					return 3;\n" + 
-		"				case 677 :\n" + 
-		"					return 3;\n" + 
-		"				case 678 :\n" + 
-		"					return 3;\n" + 
-		"				case 679 :\n" + 
-		"					return 3;\n" + 
-		"				case 680 :\n" + 
-		"					return 3;\n" + 
-		"				case 681 :\n" + 
-		"					return 3;\n" + 
-		"				case 682 :\n" + 
-		"					return 3;\n" + 
-		"				case 683 :\n" + 
-		"					return 3;\n" + 
-		"				case 684 :\n" + 
-		"					return 3;\n" + 
-		"				case 685 :\n" + 
-		"					return 3;\n" + 
-		"				case 686 :\n" + 
-		"					return 3;\n" + 
-		"				case 687 :\n" + 
-		"					return 3;\n" + 
-		"				case 688 :\n" + 
-		"					return 3;\n" + 
-		"				case 689 :\n" + 
-		"					return 3;\n" + 
-		"				case 690 :\n" + 
-		"					return 3;\n" + 
-		"				case 691 :\n" + 
-		"					return 3;\n" + 
-		"				case 692 :\n" + 
-		"					return 3;\n" + 
-		"				case 693 :\n" + 
-		"					return 3;\n" + 
-		"				case 694 :\n" + 
-		"					return 3;\n" + 
-		"				case 695 :\n" + 
-		"					return 3;\n" + 
-		"				case 696 :\n" + 
-		"					return 3;\n" + 
-		"				case 697 :\n" + 
-		"					return 3;\n" + 
-		"				case 698 :\n" + 
-		"					return 3;\n" + 
-		"				case 699 :\n" + 
-		"					return 3;\n" + 
-		"				case 700 :\n" + 
-		"					return 3;\n" + 
-		"				case 701 :\n" + 
-		"					return 3;\n" + 
-		"				case 702 :\n" + 
-		"					return 3;\n" + 
-		"				case 703 :\n" + 
-		"					return 3;\n" + 
-		"				case 704 :\n" + 
-		"					return 3;\n" + 
-		"				case 705 :\n" + 
-		"					return 3;\n" + 
-		"				case 706 :\n" + 
-		"					return 3;\n" + 
-		"				case 707 :\n" + 
-		"					return 3;\n" + 
-		"				case 708 :\n" + 
-		"					return 3;\n" + 
-		"				case 709 :\n" + 
-		"					return 3;\n" + 
-		"				case 710 :\n" + 
-		"					return 3;\n" + 
-		"				case 711 :\n" + 
-		"					return 3;\n" + 
-		"				case 712 :\n" + 
-		"					return 3;\n" + 
-		"				case 713 :\n" + 
-		"					return 3;\n" + 
-		"				case 714 :\n" + 
-		"					return 3;\n" + 
-		"				case 715 :\n" + 
-		"					return 3;\n" + 
-		"				case 716 :\n" + 
-		"					return 3;\n" + 
-		"				case 717 :\n" + 
-		"					return 3;\n" + 
-		"				case 718 :\n" + 
-		"					return 3;\n" + 
-		"				case 719 :\n" + 
-		"					return 3;\n" + 
-		"				case 720 :\n" + 
-		"					return 3;\n" + 
-		"				case 721 :\n" + 
-		"					return 3;\n" + 
-		"				case 722 :\n" + 
-		"					return 3;\n" + 
-		"				case 723 :\n" + 
-		"					return 3;\n" + 
-		"				case 724 :\n" + 
-		"					return 3;\n" + 
-		"				case 725 :\n" + 
-		"					return 3;\n" + 
-		"				case 726 :\n" + 
-		"					return 3;\n" + 
-		"				case 727 :\n" + 
-		"					return 3;\n" + 
-		"				case 728 :\n" + 
-		"					return 3;\n" + 
-		"				case 729 :\n" + 
-		"					return 3;\n" + 
-		"				case 730 :\n" + 
-		"					return 3;\n" + 
-		"				case 731 :\n" + 
-		"					return 3;\n" + 
-		"				case 732 :\n" + 
-		"					return 3;\n" + 
-		"				case 733 :\n" + 
-		"					return 3;\n" + 
-		"				case 734 :\n" + 
-		"					return 3;\n" + 
-		"				case 735 :\n" + 
-		"					return 3;\n" + 
-		"				case 736 :\n" + 
-		"					return 3;\n" + 
-		"				case 737 :\n" + 
-		"					return 3;\n" + 
-		"				case 738 :\n" + 
-		"					return 3;\n" + 
-		"				case 739 :\n" + 
-		"					return 3;\n" + 
-		"				case 740 :\n" + 
-		"					return 3;\n" + 
-		"				case 741 :\n" + 
-		"					return 3;\n" + 
-		"				case 742 :\n" + 
-		"					return 3;\n" + 
-		"				case 743 :\n" + 
-		"					return 3;\n" + 
-		"				case 744 :\n" + 
-		"					return 3;\n" + 
-		"				case 745 :\n" + 
-		"					return 3;\n" + 
-		"				case 746 :\n" + 
-		"					return 3;\n" + 
-		"				case 747 :\n" + 
-		"					return 3;\n" + 
-		"				case 748 :\n" + 
-		"					return 3;\n" + 
-		"				case 749 :\n" + 
-		"					return 3;\n" + 
-		"				case 750 :\n" + 
-		"					return 3;\n" + 
-		"				case 751 :\n" + 
-		"					return 3;\n" + 
-		"				case 752 :\n" + 
-		"					return 3;\n" + 
-		"				case 753 :\n" + 
-		"					return 3;\n" + 
-		"				case 754 :\n" + 
-		"					return 3;\n" + 
-		"				case 755 :\n" + 
-		"					return 3;\n" + 
-		"				case 756 :\n" + 
-		"					return 3;\n" + 
-		"				case 757 :\n" + 
-		"					return 3;\n" + 
-		"				case 758 :\n" + 
-		"					return 3;\n" + 
-		"				case 759 :\n" + 
-		"					return 3;\n" + 
-		"				case 760 :\n" + 
-		"					return 3;\n" + 
-		"				case 761 :\n" + 
-		"					return 3;\n" + 
-		"				case 762 :\n" + 
-		"					return 3;\n" + 
-		"				case 763 :\n" + 
-		"					return 3;\n" + 
-		"				case 764 :\n" + 
-		"					return 3;\n" + 
-		"				case 765 :\n" + 
-		"					return 3;\n" + 
-		"				case 766 :\n" + 
-		"					return 3;\n" + 
-		"				case 767 :\n" + 
-		"					return 3;\n" + 
-		"				case 768 :\n" + 
-		"					return 3;\n" + 
-		"				case 769 :\n" + 
-		"					return 3;\n" + 
-		"				case 770 :\n" + 
-		"					return 3;\n" + 
-		"				case 771 :\n" + 
-		"					return 3;\n" + 
-		"				case 772 :\n" + 
-		"					return 3;\n" + 
-		"				case 773 :\n" + 
-		"					return 3;\n" + 
-		"				case 774 :\n" + 
-		"					return 3;\n" + 
-		"				case 775 :\n" + 
-		"					return 3;\n" + 
-		"				case 776 :\n" + 
-		"					return 3;\n" + 
-		"				case 777 :\n" + 
-		"					return 3;\n" + 
-		"				case 778 :\n" + 
-		"					return 3;\n" + 
-		"				case 779 :\n" + 
-		"					return 3;\n" + 
-		"				case 780 :\n" + 
-		"					return 3;\n" + 
-		"				case 781 :\n" + 
-		"					return 3;\n" + 
-		"				case 782 :\n" + 
-		"					return 3;\n" + 
-		"				case 783 :\n" + 
-		"					return 3;\n" + 
-		"				case 784 :\n" + 
-		"					return 3;\n" + 
-		"				case 785 :\n" + 
-		"					return 3;\n" + 
-		"				case 786 :\n" + 
-		"					return 3;\n" + 
-		"				case 787 :\n" + 
-		"					return 3;\n" + 
-		"				case 788 :\n" + 
-		"					return 3;\n" + 
-		"				case 789 :\n" + 
-		"					return 3;\n" + 
-		"				case 790 :\n" + 
-		"					return 3;\n" + 
-		"				case 791 :\n" + 
-		"					return 3;\n" + 
-		"				case 792 :\n" + 
-		"					return 3;\n" + 
-		"				case 793 :\n" + 
-		"					return 3;\n" + 
-		"				case 794 :\n" + 
-		"					return 3;\n" + 
-		"				case 795 :\n" + 
-		"					return 3;\n" + 
-		"				case 796 :\n" + 
-		"					return 3;\n" + 
-		"				case 797 :\n" + 
-		"					return 3;\n" + 
-		"				case 798 :\n" + 
-		"					return 3;\n" + 
-		"				case 799 :\n" + 
-		"					return 3;\n" + 
-		"				case 800 :\n" + 
-		"					return 3;\n" + 
-		"				case 801 :\n" + 
-		"					return 3;\n" + 
-		"				case 802 :\n" + 
-		"					return 3;\n" + 
-		"				case 803 :\n" + 
-		"					return 3;\n" + 
-		"				case 804 :\n" + 
-		"					return 3;\n" + 
-		"				case 805 :\n" + 
-		"					return 3;\n" + 
-		"				case 806 :\n" + 
-		"					return 3;\n" + 
-		"				case 807 :\n" + 
-		"					return 3;\n" + 
-		"				case 808 :\n" + 
-		"					return 3;\n" + 
-		"				case 809 :\n" + 
-		"					return 3;\n" + 
-		"				case 810 :\n" + 
-		"					return 3;\n" + 
-		"				case 811 :\n" + 
-		"					return 3;\n" + 
-		"				case 812 :\n" + 
-		"					return 3;\n" + 
-		"				case 813 :\n" + 
-		"					return 3;\n" + 
-		"				case 814 :\n" + 
-		"					return 3;\n" + 
-		"				case 815 :\n" + 
-		"					return 3;\n" + 
-		"				case 816 :\n" + 
-		"					return 3;\n" + 
-		"				case 817 :\n" + 
-		"					return 3;\n" + 
-		"				case 818 :\n" + 
-		"					return 3;\n" + 
-		"				case 819 :\n" + 
-		"					return 3;\n" + 
-		"				case 820 :\n" + 
-		"					return 3;\n" + 
-		"				case 821 :\n" + 
-		"					return 3;\n" + 
-		"				case 822 :\n" + 
-		"					return 3;\n" + 
-		"				case 823 :\n" + 
-		"					return 3;\n" + 
-		"				case 824 :\n" + 
-		"					return 3;\n" + 
-		"				case 825 :\n" + 
-		"					return 3;\n" + 
-		"				case 826 :\n" + 
-		"					return 3;\n" + 
-		"				case 827 :\n" + 
-		"					return 3;\n" + 
-		"				case 828 :\n" + 
-		"					return 3;\n" + 
-		"				case 829 :\n" + 
-		"					return 3;\n" + 
-		"				case 830 :\n" + 
-		"					return 3;\n" + 
-		"				case 831 :\n" + 
-		"					return 3;\n" + 
-		"				case 832 :\n" + 
-		"					return 3;\n" + 
-		"				case 833 :\n" + 
-		"					return 3;\n" + 
-		"				case 834 :\n" + 
-		"					return 3;\n" + 
-		"				case 835 :\n" + 
-		"					return 3;\n" + 
-		"				case 836 :\n" + 
-		"					return 3;\n" + 
-		"				case 837 :\n" + 
-		"					return 3;\n" + 
-		"				case 838 :\n" + 
-		"					return 3;\n" + 
-		"				case 839 :\n" + 
-		"					return 3;\n" + 
-		"				case 840 :\n" + 
-		"					return 3;\n" + 
-		"				case 841 :\n" + 
-		"					return 3;\n" + 
-		"				case 842 :\n" + 
-		"					return 3;\n" + 
-		"				case 843 :\n" + 
-		"					return 3;\n" + 
-		"				case 844 :\n" + 
-		"					return 3;\n" + 
-		"				case 845 :\n" + 
-		"					return 3;\n" + 
-		"				case 846 :\n" + 
-		"					return 3;\n" + 
-		"				case 847 :\n" + 
-		"					return 3;\n" + 
-		"				case 848 :\n" + 
-		"					return 3;\n" + 
-		"				case 849 :\n" + 
-		"					return 3;\n" + 
-		"				case 850 :\n" + 
-		"					return 3;\n" + 
-		"				case 851 :\n" + 
-		"					return 3;\n" + 
-		"				case 852 :\n" + 
-		"					return 3;\n" + 
-		"				case 853 :\n" + 
-		"					return 3;\n" + 
-		"				case 854 :\n" + 
-		"					return 3;\n" + 
-		"				case 855 :\n" + 
-		"					return 3;\n" + 
-		"				case 856 :\n" + 
-		"					return 3;\n" + 
-		"				case 857 :\n" + 
-		"					return 3;\n" + 
-		"				case 858 :\n" + 
-		"					return 3;\n" + 
-		"				case 859 :\n" + 
-		"					return 3;\n" + 
-		"				case 860 :\n" + 
-		"					return 3;\n" + 
-		"				case 861 :\n" + 
-		"					return 3;\n" + 
-		"				case 862 :\n" + 
-		"					return 3;\n" + 
-		"				case 863 :\n" + 
-		"					return 3;\n" + 
-		"				case 864 :\n" + 
-		"					return 3;\n" + 
-		"				case 865 :\n" + 
-		"					return 3;\n" + 
-		"				case 866 :\n" + 
-		"					return 3;\n" + 
-		"				case 867 :\n" + 
-		"					return 3;\n" + 
-		"				case 868 :\n" + 
-		"					return 3;\n" + 
-		"				case 869 :\n" + 
-		"					return 3;\n" + 
-		"				case 870 :\n" + 
-		"					return 3;\n" + 
-		"				case 871 :\n" + 
-		"					return 3;\n" + 
-		"				case 872 :\n" + 
-		"					return 3;\n" + 
-		"				case 873 :\n" + 
-		"					return 3;\n" + 
-		"				case 874 :\n" + 
-		"					return 3;\n" + 
-		"				case 875 :\n" + 
-		"					return 3;\n" + 
-		"				case 876 :\n" + 
-		"					return 3;\n" + 
-		"				case 877 :\n" + 
-		"					return 3;\n" + 
-		"				case 878 :\n" + 
-		"					return 3;\n" + 
-		"				case 879 :\n" + 
-		"					return 3;\n" + 
-		"				case 880 :\n" + 
-		"					return 3;\n" + 
-		"				case 881 :\n" + 
-		"					return 3;\n" + 
-		"				case 882 :\n" + 
-		"					return 3;\n" + 
-		"				case 883 :\n" + 
-		"					return 3;\n" + 
-		"				case 884 :\n" + 
-		"					return 3;\n" + 
-		"				case 885 :\n" + 
-		"					return 3;\n" + 
-		"				case 886 :\n" + 
-		"					return 3;\n" + 
-		"				case 887 :\n" + 
-		"					return 3;\n" + 
-		"				case 888 :\n" + 
-		"					return 3;\n" + 
-		"				case 889 :\n" + 
-		"					return 3;\n" + 
-		"				case 890 :\n" + 
-		"					return 3;\n" + 
-		"				case 891 :\n" + 
-		"					return 3;\n" + 
-		"				case 892 :\n" + 
-		"					return 3;\n" + 
-		"				case 893 :\n" + 
-		"					return 3;\n" + 
-		"				case 894 :\n" + 
-		"					return 3;\n" + 
-		"				case 895 :\n" + 
-		"					return 3;\n" + 
-		"				case 896 :\n" + 
-		"					return 3;\n" + 
-		"				case 897 :\n" + 
-		"					return 3;\n" + 
-		"				case 898 :\n" + 
-		"					return 3;\n" + 
-		"				case 899 :\n" + 
-		"					return 3;\n" + 
-		"				case 900 :\n" + 
-		"					return 3;\n" + 
-		"				case 901 :\n" + 
-		"					return 3;\n" + 
-		"				case 902 :\n" + 
-		"					return 3;\n" + 
-		"				case 903 :\n" + 
-		"					return 3;\n" + 
-		"				case 904 :\n" + 
-		"					return 3;\n" + 
-		"				case 905 :\n" + 
-		"					return 3;\n" + 
-		"				case 906 :\n" + 
-		"					return 3;\n" + 
-		"				case 907 :\n" + 
-		"					return 3;\n" + 
-		"				case 908 :\n" + 
-		"					return 3;\n" + 
-		"				case 909 :\n" + 
-		"					return 3;\n" + 
-		"				case 910 :\n" + 
-		"					return 3;\n" + 
-		"				case 911 :\n" + 
-		"					return 3;\n" + 
-		"				case 912 :\n" + 
-		"					return 3;\n" + 
-		"				case 913 :\n" + 
-		"					return 3;\n" + 
-		"				case 914 :\n" + 
-		"					return 3;\n" + 
-		"				case 915 :\n" + 
-		"					return 3;\n" + 
-		"				case 916 :\n" + 
-		"					return 3;\n" + 
-		"				case 917 :\n" + 
-		"					return 3;\n" + 
-		"				case 918 :\n" + 
-		"					return 3;\n" + 
-		"				case 919 :\n" + 
-		"					return 3;\n" + 
-		"				case 920 :\n" + 
-		"					return 3;\n" + 
-		"				case 921 :\n" + 
-		"					return 3;\n" + 
-		"				case 922 :\n" + 
-		"					return 3;\n" + 
-		"				case 923 :\n" + 
-		"					return 3;\n" + 
-		"				case 924 :\n" + 
-		"					return 3;\n" + 
-		"				case 925 :\n" + 
-		"					return 3;\n" + 
-		"				case 926 :\n" + 
-		"					return 3;\n" + 
-		"				case 927 :\n" + 
-		"					return 3;\n" + 
-		"				case 928 :\n" + 
-		"					return 3;\n" + 
-		"				case 929 :\n" + 
-		"					return 3;\n" + 
-		"				case 930 :\n" + 
-		"					return 3;\n" + 
-		"				case 931 :\n" + 
-		"					return 3;\n" + 
-		"				case 932 :\n" + 
-		"					return 3;\n" + 
-		"				case 933 :\n" + 
-		"					return 3;\n" + 
-		"				case 934 :\n" + 
-		"					return 3;\n" + 
-		"				case 935 :\n" + 
-		"					return 3;\n" + 
-		"				case 936 :\n" + 
-		"					return 3;\n" + 
-		"				case 937 :\n" + 
-		"					return 3;\n" + 
-		"				case 938 :\n" + 
-		"					return 3;\n" + 
-		"				case 939 :\n" + 
-		"					return 3;\n" + 
-		"				case 940 :\n" + 
-		"					return 3;\n" + 
-		"				case 941 :\n" + 
-		"					return 3;\n" + 
-		"				case 942 :\n" + 
-		"					return 3;\n" + 
-		"				case 943 :\n" + 
-		"					return 3;\n" + 
-		"				case 944 :\n" + 
-		"					return 3;\n" + 
-		"				case 945 :\n" + 
-		"					return 3;\n" + 
-		"				case 946 :\n" + 
-		"					return 3;\n" + 
-		"				case 947 :\n" + 
-		"					return 3;\n" + 
-		"				case 948 :\n" + 
-		"					return 3;\n" + 
-		"				case 949 :\n" + 
-		"					return 3;\n" + 
-		"				case 950 :\n" + 
-		"					return 3;\n" + 
-		"				case 951 :\n" + 
-		"					return 3;\n" + 
-		"				case 952 :\n" + 
-		"					return 3;\n" + 
-		"				case 953 :\n" + 
-		"					return 3;\n" + 
-		"				case 954 :\n" + 
-		"					return 3;\n" + 
-		"				case 955 :\n" + 
-		"					return 3;\n" + 
-		"				case 956 :\n" + 
-		"					return 3;\n" + 
-		"				case 957 :\n" + 
-		"					return 3;\n" + 
-		"				case 958 :\n" + 
-		"					return 3;\n" + 
-		"				case 959 :\n" + 
-		"					return 3;\n" + 
-		"				case 960 :\n" + 
-		"					return 3;\n" + 
-		"				case 961 :\n" + 
-		"					return 3;\n" + 
-		"				case 962 :\n" + 
-		"					return 3;\n" + 
-		"				case 963 :\n" + 
-		"					return 3;\n" + 
-		"				case 964 :\n" + 
-		"					return 3;\n" + 
-		"				case 965 :\n" + 
-		"					return 3;\n" + 
-		"				case 966 :\n" + 
-		"					return 3;\n" + 
-		"				case 967 :\n" + 
-		"					return 3;\n" + 
-		"				case 968 :\n" + 
-		"					return 3;\n" + 
-		"				case 969 :\n" + 
-		"					return 3;\n" + 
-		"				case 970 :\n" + 
-		"					return 3;\n" + 
-		"				case 971 :\n" + 
-		"					return 3;\n" + 
-		"				case 972 :\n" + 
-		"					return 3;\n" + 
-		"				case 973 :\n" + 
-		"					return 3;\n" + 
-		"				case 974 :\n" + 
-		"					return 3;\n" + 
-		"				case 975 :\n" + 
-		"					return 3;\n" + 
-		"				case 976 :\n" + 
-		"					return 3;\n" + 
-		"				case 977 :\n" + 
-		"					return 3;\n" + 
-		"				case 978 :\n" + 
-		"					return 3;\n" + 
-		"				case 979 :\n" + 
-		"					return 3;\n" + 
-		"				case 980 :\n" + 
-		"					return 3;\n" + 
-		"				case 981 :\n" + 
-		"					return 3;\n" + 
-		"				case 982 :\n" + 
-		"					return 3;\n" + 
-		"				case 983 :\n" + 
-		"					return 3;\n" + 
-		"				case 984 :\n" + 
-		"					return 3;\n" + 
-		"				case 985 :\n" + 
-		"					return 3;\n" + 
-		"				case 986 :\n" + 
-		"					return 3;\n" + 
-		"				case 987 :\n" + 
-		"					return 3;\n" + 
-		"				case 988 :\n" + 
-		"					return 3;\n" + 
-		"				case 989 :\n" + 
-		"					return 3;\n" + 
-		"				case 990 :\n" + 
-		"					return 3;\n" + 
-		"				case 991 :\n" + 
-		"					return 3;\n" + 
-		"				case 992 :\n" + 
-		"					return 3;\n" + 
-		"				case 993 :\n" + 
-		"					return 3;\n" + 
-		"				case 994 :\n" + 
-		"					return 3;\n" + 
-		"				case 995 :\n" + 
-		"					return 3;\n" + 
-		"				case 996 :\n" + 
-		"					return 3;\n" + 
-		"				case 997 :\n" + 
-		"					return 3;\n" + 
-		"				case 998 :\n" + 
-		"					return 3;\n" + 
-		"				case 999 :\n" + 
-		"					return 3;\n" + 
-		"				case 1000 :\n" + 
-		"					return 3;\n" + 
-		"				case 1001 :\n" + 
-		"					return 3;\n" + 
-		"				case 1002 :\n" + 
-		"					return 3;\n" + 
-		"				case 1003 :\n" + 
-		"					return 3;\n" + 
-		"				case 1004 :\n" + 
-		"					return 3;\n" + 
-		"				case 1005 :\n" + 
-		"					return 3;\n" + 
-		"				case 1006 :\n" + 
-		"					return 3;\n" + 
-		"				case 1007 :\n" + 
-		"					return 3;\n" + 
-		"				case 1008 :\n" + 
-		"					return 3;\n" + 
-		"				case 1009 :\n" + 
-		"					return 3;\n" + 
-		"				case 1010 :\n" + 
-		"					return 3;\n" + 
-		"				case 1011 :\n" + 
-		"					return 3;\n" + 
-		"				case 1012 :\n" + 
-		"					return 3;\n" + 
-		"				case 1013 :\n" + 
-		"					return 3;\n" + 
-		"				case 1014 :\n" + 
-		"					return 3;\n" + 
-		"				case 1015 :\n" + 
-		"					return 3;\n" + 
-		"				case 1016 :\n" + 
-		"					return 3;\n" + 
-		"				case 1017 :\n" + 
-		"					return 3;\n" + 
-		"				case 1018 :\n" + 
-		"					return 3;\n" + 
-		"				case 1019 :\n" + 
-		"					return 3;\n" + 
-		"				case 1020 :\n" + 
-		"					return 3;\n" + 
-		"				case 1021 :\n" + 
-		"					return 3;\n" + 
-		"				case 1022 :\n" + 
-		"					return 3;\n" + 
-		"				case 1023 :\n" + 
-		"					return 3;\n" + 
-		"				case 1024 :\n" + 
-		"					return 3;\n" + 
-		"				case 1025 :\n" + 
-		"					return 3;\n" + 
-		"				case 1026 :\n" + 
-		"					return 3;\n" + 
-		"				case 1027 :\n" + 
-		"					return 3;\n" + 
-		"				case 1028 :\n" + 
-		"					return 3;\n" + 
-		"				case 1029 :\n" + 
-		"					return 3;\n" + 
-		"				case 1030 :\n" + 
-		"					return 3;\n" + 
-		"				case 1031 :\n" + 
-		"					return 3;\n" + 
-		"				case 1032 :\n" + 
-		"					return 3;\n" + 
-		"				case 1033 :\n" + 
-		"					return 3;\n" + 
-		"				case 1034 :\n" + 
-		"					return 3;\n" + 
-		"				case 1035 :\n" + 
-		"					return 3;\n" + 
-		"				case 1036 :\n" + 
-		"					return 3;\n" + 
-		"				case 1037 :\n" + 
-		"					return 3;\n" + 
-		"				case 1038 :\n" + 
-		"					return 3;\n" + 
-		"				case 1039 :\n" + 
-		"					return 3;\n" + 
-		"				case 1040 :\n" + 
-		"					return 3;\n" + 
-		"				case 1041 :\n" + 
-		"					return 3;\n" + 
-		"				case 1042 :\n" + 
-		"					return 3;\n" + 
-		"				case 1043 :\n" + 
-		"					return 3;\n" + 
-		"				case 1044 :\n" + 
-		"					return 3;\n" + 
-		"				case 1045 :\n" + 
-		"					return 3;\n" + 
-		"				case 1046 :\n" + 
-		"					return 3;\n" + 
-		"				case 1047 :\n" + 
-		"					return 3;\n" + 
-		"				case 1048 :\n" + 
-		"					return 3;\n" + 
-		"				case 1049 :\n" + 
-		"					return 3;\n" + 
-		"				case 1050 :\n" + 
-		"					return 3;\n" + 
-		"				case 1051 :\n" + 
-		"					return 3;\n" + 
-		"				case 1052 :\n" + 
-		"					return 3;\n" + 
-		"				case 1053 :\n" + 
-		"					return 3;\n" + 
-		"				case 1054 :\n" + 
-		"					return 3;\n" + 
-		"				case 1055 :\n" + 
-		"					return 3;\n" + 
-		"				case 1056 :\n" + 
-		"					return 3;\n" + 
-		"				case 1057 :\n" + 
-		"					return 3;\n" + 
-		"				case 1058 :\n" + 
-		"					return 3;\n" + 
-		"				case 1059 :\n" + 
-		"					return 3;\n" + 
-		"				case 1060 :\n" + 
-		"					return 3;\n" + 
-		"				case 1061 :\n" + 
-		"					return 3;\n" + 
-		"				case 1062 :\n" + 
-		"					return 3;\n" + 
-		"				case 1063 :\n" + 
-		"					return 3;\n" + 
-		"				case 1064 :\n" + 
-		"					return 3;\n" + 
-		"				case 1065 :\n" + 
-		"					return 3;\n" + 
-		"				case 1066 :\n" + 
-		"					return 3;\n" + 
-		"				case 1067 :\n" + 
-		"					return 3;\n" + 
-		"				case 1068 :\n" + 
-		"					return 3;\n" + 
-		"				case 1069 :\n" + 
-		"					return 3;\n" + 
-		"				case 1070 :\n" + 
-		"					return 3;\n" + 
-		"				case 1071 :\n" + 
-		"					return 3;\n" + 
-		"				case 1072 :\n" + 
-		"					return 3;\n" + 
-		"				case 1073 :\n" + 
-		"					return 3;\n" + 
-		"				case 1074 :\n" + 
-		"					return 3;\n" + 
-		"				case 1075 :\n" + 
-		"					return 3;\n" + 
-		"				case 1076 :\n" + 
-		"					return 3;\n" + 
-		"				case 1077 :\n" + 
-		"					return 3;\n" + 
-		"				case 1078 :\n" + 
-		"					return 3;\n" + 
-		"				case 1079 :\n" + 
-		"					return 3;\n" + 
-		"				case 1080 :\n" + 
-		"					return 3;\n" + 
-		"				case 1081 :\n" + 
-		"					return 3;\n" + 
-		"				case 1082 :\n" + 
-		"					return 3;\n" + 
-		"				case 1083 :\n" + 
-		"					return 3;\n" + 
-		"				case 1084 :\n" + 
-		"					return 3;\n" + 
-		"				case 1085 :\n" + 
-		"					return 3;\n" + 
-		"				case 1086 :\n" + 
-		"					return 3;\n" + 
-		"				case 1087 :\n" + 
-		"					return 3;\n" + 
-		"				case 1088 :\n" + 
-		"					return 3;\n" + 
-		"				case 1089 :\n" + 
-		"					return 3;\n" + 
-		"				case 1090 :\n" + 
-		"					return 3;\n" + 
-		"				case 1091 :\n" + 
-		"					return 3;\n" + 
-		"				case 1092 :\n" + 
-		"					return 3;\n" + 
-		"				case 1093 :\n" + 
-		"					return 3;\n" + 
-		"				case 1094 :\n" + 
-		"					return 3;\n" + 
-		"				case 1095 :\n" + 
-		"					return 3;\n" + 
-		"				case 1096 :\n" + 
-		"					return 3;\n" + 
-		"				case 1097 :\n" + 
-		"					return 3;\n" + 
-		"				case 1098 :\n" + 
-		"					return 3;\n" + 
-		"				case 1099 :\n" + 
-		"					return 3;\n" + 
-		"				case 1100 :\n" + 
-		"					return 3;\n" + 
-		"				case 1101 :\n" + 
-		"					return 3;\n" + 
-		"				case 1102 :\n" + 
-		"					return 3;\n" + 
-		"				case 1103 :\n" + 
-		"					return 3;\n" + 
-		"				case 1104 :\n" + 
-		"					return 3;\n" + 
-		"				case 1105 :\n" + 
-		"					return 3;\n" + 
-		"				case 1106 :\n" + 
-		"					return 3;\n" + 
-		"				case 1107 :\n" + 
-		"					return 3;\n" + 
-		"				case 1108 :\n" + 
-		"					return 3;\n" + 
-		"				case 1109 :\n" + 
-		"					return 3;\n" + 
-		"				case 1110 :\n" + 
-		"					return 3;\n" + 
-		"				case 1111 :\n" + 
-		"					return 3;\n" + 
-		"				case 1112 :\n" + 
-		"					return 3;\n" + 
-		"				case 1113 :\n" + 
-		"					return 3;\n" + 
-		"				case 1114 :\n" + 
-		"					return 3;\n" + 
-		"				case 1115 :\n" + 
-		"					return 3;\n" + 
-		"				case 1116 :\n" + 
-		"					return 3;\n" + 
-		"				case 1117 :\n" + 
-		"					return 3;\n" + 
-		"				case 1118 :\n" + 
-		"					return 3;\n" + 
-		"				case 1119 :\n" + 
-		"					return 3;\n" + 
-		"				case 1120 :\n" + 
-		"					return 3;\n" + 
-		"				case 1121 :\n" + 
-		"					return 3;\n" + 
-		"				case 1122 :\n" + 
-		"					return 3;\n" + 
-		"				case 1123 :\n" + 
-		"					return 3;\n" + 
-		"				case 1124 :\n" + 
-		"					return 3;\n" + 
-		"				case 1125 :\n" + 
-		"					return 3;\n" + 
-		"				case 1126 :\n" + 
-		"					return 3;\n" + 
-		"				case 1127 :\n" + 
-		"					return 3;\n" + 
-		"				case 1128 :\n" + 
-		"					return 3;\n" + 
-		"				case 1129 :\n" + 
-		"					return 3;\n" + 
-		"				case 1130 :\n" + 
-		"					return 3;\n" + 
-		"				case 1131 :\n" + 
-		"					return 3;\n" + 
-		"				case 1132 :\n" + 
-		"					return 3;\n" + 
-		"				case 1133 :\n" + 
-		"					return 3;\n" + 
-		"				case 1134 :\n" + 
-		"					return 3;\n" + 
-		"				case 1135 :\n" + 
-		"					return 3;\n" + 
-		"				case 1136 :\n" + 
-		"					return 3;\n" + 
-		"				case 1137 :\n" + 
-		"					return 3;\n" + 
-		"				case 1138 :\n" + 
-		"					return 3;\n" + 
-		"				case 1139 :\n" + 
-		"					return 3;\n" + 
-		"				case 1140 :\n" + 
-		"					return 3;\n" + 
-		"				case 1141 :\n" + 
-		"					return 3;\n" + 
-		"				case 1142 :\n" + 
-		"					return 3;\n" + 
-		"				case 1143 :\n" + 
-		"					return 3;\n" + 
-		"				case 1144 :\n" + 
-		"					return 3;\n" + 
-		"				case 1145 :\n" + 
-		"					return 3;\n" + 
-		"				case 1146 :\n" + 
-		"					return 3;\n" + 
-		"				case 1147 :\n" + 
-		"					return 3;\n" + 
-		"				case 1148 :\n" + 
-		"					return 3;\n" + 
-		"				case 1149 :\n" + 
-		"					return 3;\n" + 
-		"				case 1150 :\n" + 
-		"					return 3;\n" + 
-		"				case 1151 :\n" + 
-		"					return 3;\n" + 
-		"				case 1152 :\n" + 
-		"					return 3;\n" + 
-		"				case 1153 :\n" + 
-		"					return 3;\n" + 
-		"				case 1154 :\n" + 
-		"					return 3;\n" + 
-		"				case 1155 :\n" + 
-		"					return 3;\n" + 
-		"				case 1156 :\n" + 
-		"					return 3;\n" + 
-		"				case 1157 :\n" + 
-		"					return 3;\n" + 
-		"				case 1158 :\n" + 
-		"					return 3;\n" + 
-		"				case 1159 :\n" + 
-		"					return 3;\n" + 
-		"				case 1160 :\n" + 
-		"					return 3;\n" + 
-		"				case 1161 :\n" + 
-		"					return 3;\n" + 
-		"				case 1162 :\n" + 
-		"					return 3;\n" + 
-		"				case 1163 :\n" + 
-		"					return 3;\n" + 
-		"				case 1164 :\n" + 
-		"					return 3;\n" + 
-		"				case 1165 :\n" + 
-		"					return 3;\n" + 
-		"				case 1166 :\n" + 
-		"					return 3;\n" + 
-		"				case 1167 :\n" + 
-		"					return 3;\n" + 
-		"				case 1168 :\n" + 
-		"					return 3;\n" + 
-		"				case 1169 :\n" + 
-		"					return 3;\n" + 
-		"				case 1170 :\n" + 
-		"					return 3;\n" + 
-		"				case 1171 :\n" + 
-		"					return 3;\n" + 
-		"				case 1172 :\n" + 
-		"					return 3;\n" + 
-		"				case 1173 :\n" + 
-		"					return 3;\n" + 
-		"				case 1174 :\n" + 
-		"					return 3;\n" + 
-		"				case 1175 :\n" + 
-		"					return 3;\n" + 
-		"				case 1176 :\n" + 
-		"					return 3;\n" + 
-		"				case 1177 :\n" + 
-		"					return 3;\n" + 
-		"				case 1178 :\n" + 
-		"					return 3;\n" + 
-		"				case 1179 :\n" + 
-		"					return 3;\n" + 
-		"				case 1180 :\n" + 
-		"					return 3;\n" + 
-		"				case 1181 :\n" + 
-		"					return 3;\n" + 
-		"				case 1182 :\n" + 
-		"					return 3;\n" + 
-		"				case 1183 :\n" + 
-		"					return 3;\n" + 
-		"				case 1184 :\n" + 
-		"					return 3;\n" + 
-		"				case 1185 :\n" + 
-		"					return 3;\n" + 
-		"				case 1186 :\n" + 
-		"					return 3;\n" + 
-		"				case 1187 :\n" + 
-		"					return 3;\n" + 
-		"				case 1188 :\n" + 
-		"					return 3;\n" + 
-		"				case 1189 :\n" + 
-		"					return 3;\n" + 
-		"				case 1190 :\n" + 
-		"					return 3;\n" + 
-		"				case 1191 :\n" + 
-		"					return 3;\n" + 
-		"				case 1192 :\n" + 
-		"					return 3;\n" + 
-		"				case 1193 :\n" + 
-		"					return 3;\n" + 
-		"				case 1194 :\n" + 
-		"					return 3;\n" + 
-		"				case 1195 :\n" + 
-		"					return 3;\n" + 
-		"				case 1196 :\n" + 
-		"					return 3;\n" + 
-		"				case 1197 :\n" + 
-		"					return 3;\n" + 
-		"				case 1198 :\n" + 
-		"					return 3;\n" + 
-		"				case 1199 :\n" + 
-		"					return 3;\n" + 
-		"				case 1200 :\n" + 
-		"					return 3;\n" + 
-		"				case 1201 :\n" + 
-		"					return 3;\n" + 
-		"				case 1202 :\n" + 
-		"					return 3;\n" + 
-		"				case 1203 :\n" + 
-		"					return 3;\n" + 
-		"				case 1204 :\n" + 
-		"					return 3;\n" + 
-		"				case 1205 :\n" + 
-		"					return 3;\n" + 
-		"				case 1206 :\n" + 
-		"					return 3;\n" + 
-		"				case 1207 :\n" + 
-		"					return 3;\n" + 
-		"				case 1208 :\n" + 
-		"					return 3;\n" + 
-		"				case 1209 :\n" + 
-		"					return 3;\n" + 
-		"				case 1210 :\n" + 
-		"					return 3;\n" + 
-		"				case 1211 :\n" + 
-		"					return 3;\n" + 
-		"				case 1212 :\n" + 
-		"					return 3;\n" + 
-		"				case 1213 :\n" + 
-		"					return 3;\n" + 
-		"				case 1214 :\n" + 
-		"					return 3;\n" + 
-		"				case 1215 :\n" + 
-		"					return 3;\n" + 
-		"				case 1216 :\n" + 
-		"					return 3;\n" + 
-		"				case 1217 :\n" + 
-		"					return 3;\n" + 
-		"				case 1218 :\n" + 
-		"					return 3;\n" + 
-		"				case 1219 :\n" + 
-		"					return 3;\n" + 
-		"				case 1220 :\n" + 
-		"					return 3;\n" + 
-		"				case 1221 :\n" + 
-		"					return 3;\n" + 
-		"				case 1222 :\n" + 
-		"					return 3;\n" + 
-		"				case 1223 :\n" + 
-		"					return 3;\n" + 
-		"				case 1224 :\n" + 
-		"					return 3;\n" + 
-		"				case 1225 :\n" + 
-		"					return 3;\n" + 
-		"				case 1226 :\n" + 
-		"					return 3;\n" + 
-		"				case 1227 :\n" + 
-		"					return 3;\n" + 
-		"				case 1228 :\n" + 
-		"					return 3;\n" + 
-		"				case 1229 :\n" + 
-		"					return 3;\n" + 
-		"				case 1230 :\n" + 
-		"					return 3;\n" + 
-		"				case 1231 :\n" + 
-		"					return 3;\n" + 
-		"				case 1232 :\n" + 
-		"					return 3;\n" + 
-		"				case 1233 :\n" + 
-		"					return 3;\n" + 
-		"				case 1234 :\n" + 
-		"					return 3;\n" + 
-		"				case 1235 :\n" + 
-		"					return 3;\n" + 
-		"				case 1236 :\n" + 
-		"					return 3;\n" + 
-		"				case 1237 :\n" + 
-		"					return 3;\n" + 
-		"				case 1238 :\n" + 
-		"					return 3;\n" + 
-		"				case 1239 :\n" + 
-		"					return 3;\n" + 
-		"				case 1240 :\n" + 
-		"					return 3;\n" + 
-		"				case 1241 :\n" + 
-		"					return 3;\n" + 
-		"				case 1242 :\n" + 
-		"					return 3;\n" + 
-		"				case 1243 :\n" + 
-		"					return 3;\n" + 
-		"				case 1244 :\n" + 
-		"					return 3;\n" + 
-		"				case 1245 :\n" + 
-		"					return 3;\n" + 
-		"				case 1246 :\n" + 
-		"					return 3;\n" + 
-		"				case 1247 :\n" + 
-		"					return 3;\n" + 
-		"				case 1248 :\n" + 
-		"					return 3;\n" + 
-		"				case 1249 :\n" + 
-		"					return 3;\n" + 
-		"				case 1250 :\n" + 
-		"					return 3;\n" + 
-		"				case 1251 :\n" + 
-		"					return 3;\n" + 
-		"				case 1252 :\n" + 
-		"					return 3;\n" + 
-		"				case 1253 :\n" + 
-		"					return 3;\n" + 
-		"				case 1254 :\n" + 
-		"					return 3;\n" + 
-		"				case 1255 :\n" + 
-		"					return 3;\n" + 
-		"				case 1256 :\n" + 
-		"					return 3;\n" + 
-		"				case 1257 :\n" + 
-		"					return 3;\n" + 
-		"				case 1258 :\n" + 
-		"					return 3;\n" + 
-		"				case 1259 :\n" + 
-		"					return 3;\n" + 
-		"				case 1260 :\n" + 
-		"					return 3;\n" + 
-		"				case 1261 :\n" + 
-		"					return 3;\n" + 
-		"				case 1262 :\n" + 
-		"					return 3;\n" + 
-		"				case 1263 :\n" + 
-		"					return 3;\n" + 
-		"				case 1264 :\n" + 
-		"					return 3;\n" + 
-		"				case 1265 :\n" + 
-		"					return 3;\n" + 
-		"				case 1266 :\n" + 
-		"					return 3;\n" + 
-		"				case 1267 :\n" + 
-		"					return 3;\n" + 
-		"				case 1268 :\n" + 
-		"					return 3;\n" + 
-		"				case 1269 :\n" + 
-		"					return 3;\n" + 
-		"				case 1270 :\n" + 
-		"					return 3;\n" + 
-		"				case 1271 :\n" + 
-		"					return 3;\n" + 
-		"				case 1272 :\n" + 
-		"					return 3;\n" + 
-		"				case 1273 :\n" + 
-		"					return 3;\n" + 
-		"				case 1274 :\n" + 
-		"					return 3;\n" + 
-		"				case 1275 :\n" + 
-		"					return 3;\n" + 
-		"				case 1276 :\n" + 
-		"					return 3;\n" + 
-		"				case 1277 :\n" + 
-		"					return 3;\n" + 
-		"				case 1278 :\n" + 
-		"					return 3;\n" + 
-		"				case 1279 :\n" + 
-		"					return 3;\n" + 
-		"				case 1280 :\n" + 
-		"					return 3;\n" + 
-		"				case 1281 :\n" + 
-		"					return 3;\n" + 
-		"				case 1282 :\n" + 
-		"					return 3;\n" + 
-		"				case 1283 :\n" + 
-		"					return 3;\n" + 
-		"				case 1284 :\n" + 
-		"					return 3;\n" + 
-		"				case 1285 :\n" + 
-		"					return 3;\n" + 
-		"				case 1286 :\n" + 
-		"					return 3;\n" + 
-		"				case 1287 :\n" + 
-		"					return 3;\n" + 
-		"				case 1288 :\n" + 
-		"					return 3;\n" + 
-		"				case 1289 :\n" + 
-		"					return 3;\n" + 
-		"				case 1290 :\n" + 
-		"					return 3;\n" + 
-		"				case 1291 :\n" + 
-		"					return 3;\n" + 
-		"				case 1292 :\n" + 
-		"					return 3;\n" + 
-		"				case 1293 :\n" + 
-		"					return 3;\n" + 
-		"				case 1294 :\n" + 
-		"					return 3;\n" + 
-		"				case 1295 :\n" + 
-		"					return 3;\n" + 
-		"				case 1296 :\n" + 
-		"					return 3;\n" + 
-		"				case 1297 :\n" + 
-		"					return 3;\n" + 
-		"				case 1298 :\n" + 
-		"					return 3;\n" + 
-		"				case 1299 :\n" + 
-		"					return 3;\n" + 
-		"				case 1300 :\n" + 
-		"					return 3;\n" + 
-		"				case 1301 :\n" + 
-		"					return 3;\n" + 
-		"				case 1302 :\n" + 
-		"					return 3;\n" + 
-		"				case 1303 :\n" + 
-		"					return 3;\n" + 
-		"				case 1304 :\n" + 
-		"					return 3;\n" + 
-		"				case 1305 :\n" + 
-		"					return 3;\n" + 
-		"				case 1306 :\n" + 
-		"					return 3;\n" + 
-		"				case 1307 :\n" + 
-		"					return 3;\n" + 
-		"				case 1308 :\n" + 
-		"					return 3;\n" + 
-		"				case 1309 :\n" + 
-		"					return 3;\n" + 
-		"				case 1310 :\n" + 
-		"					return 3;\n" + 
-		"				case 1311 :\n" + 
-		"					return 3;\n" + 
-		"				case 1312 :\n" + 
-		"					return 3;\n" + 
-		"				case 1313 :\n" + 
-		"					return 3;\n" + 
-		"				case 1314 :\n" + 
-		"					return 3;\n" + 
-		"				case 1315 :\n" + 
-		"					return 3;\n" + 
-		"				case 1316 :\n" + 
-		"					return 3;\n" + 
-		"				case 1317 :\n" + 
-		"					return 3;\n" + 
-		"				case 1318 :\n" + 
-		"					return 3;\n" + 
-		"				case 1319 :\n" + 
-		"					return 3;\n" + 
-		"				case 1320 :\n" + 
-		"					return 3;\n" + 
-		"				case 1321 :\n" + 
-		"					return 3;\n" + 
-		"				case 1322 :\n" + 
-		"					return 3;\n" + 
-		"				case 1323 :\n" + 
-		"					return 3;\n" + 
-		"				case 1324 :\n" + 
-		"					return 3;\n" + 
-		"				case 1325 :\n" + 
-		"					return 3;\n" + 
-		"				case 1326 :\n" + 
-		"					return 3;\n" + 
-		"				case 1327 :\n" + 
-		"					return 3;\n" + 
-		"				case 1328 :\n" + 
-		"					return 3;\n" + 
-		"				case 1329 :\n" + 
-		"					return 3;\n" + 
-		"				case 1330 :\n" + 
-		"					return 3;\n" + 
-		"				case 1331 :\n" + 
-		"					return 3;\n" + 
-		"				case 1332 :\n" + 
-		"					return 3;\n" + 
-		"				case 1333 :\n" + 
-		"					return 3;\n" + 
-		"				case 1334 :\n" + 
-		"					return 3;\n" + 
-		"				case 1335 :\n" + 
-		"					return 3;\n" + 
-		"				case 1336 :\n" + 
-		"					return 3;\n" + 
-		"				case 1337 :\n" + 
-		"					return 3;\n" + 
-		"				case 1338 :\n" + 
-		"					return 3;\n" + 
-		"				case 1339 :\n" + 
-		"					return 3;\n" + 
-		"				case 1340 :\n" + 
-		"					return 3;\n" + 
-		"				case 1341 :\n" + 
-		"					return 3;\n" + 
-		"				case 1342 :\n" + 
-		"					return 3;\n" + 
-		"				case 1343 :\n" + 
-		"					return 3;\n" + 
-		"				case 1344 :\n" + 
-		"					return 3;\n" + 
-		"				case 1345 :\n" + 
-		"					return 3;\n" + 
-		"				case 1346 :\n" + 
-		"					return 3;\n" + 
-		"				case 1347 :\n" + 
-		"					return 3;\n" + 
-		"				case 1348 :\n" + 
-		"					return 3;\n" + 
-		"				case 1349 :\n" + 
-		"					return 3;\n" + 
-		"				case 1350 :\n" + 
-		"					return 3;\n" + 
-		"				case 1351 :\n" + 
-		"					return 3;\n" + 
-		"				case 1352 :\n" + 
-		"					return 3;\n" + 
-		"				case 1353 :\n" + 
-		"					return 3;\n" + 
-		"				case 1354 :\n" + 
-		"					return 3;\n" + 
-		"				case 1355 :\n" + 
-		"					return 3;\n" + 
-		"				case 1356 :\n" + 
-		"					return 3;\n" + 
-		"				case 1357 :\n" + 
-		"					return 3;\n" + 
-		"				case 1358 :\n" + 
-		"					return 3;\n" + 
-		"				case 1359 :\n" + 
-		"					return 3;\n" + 
-		"				case 1360 :\n" + 
-		"					return 3;\n" + 
-		"				case 1361 :\n" + 
-		"					return 3;\n" + 
-		"				case 1362 :\n" + 
-		"					return 3;\n" + 
-		"				case 1363 :\n" + 
-		"					return 3;\n" + 
-		"				case 1364 :\n" + 
-		"					return 3;\n" + 
-		"				case 1365 :\n" + 
-		"					return 3;\n" + 
-		"				case 1366 :\n" + 
-		"					return 3;\n" + 
-		"				case 1367 :\n" + 
-		"					return 3;\n" + 
-		"				case 1368 :\n" + 
-		"					return 3;\n" + 
-		"				case 1369 :\n" + 
-		"					return 3;\n" + 
-		"				case 1370 :\n" + 
-		"					return 3;\n" + 
-		"				case 1371 :\n" + 
-		"					return 3;\n" + 
-		"				case 1372 :\n" + 
-		"					return 3;\n" + 
-		"				case 1373 :\n" + 
-		"					return 3;\n" + 
-		"				case 1374 :\n" + 
-		"					return 3;\n" + 
-		"				case 1375 :\n" + 
-		"					return 3;\n" + 
-		"				case 1376 :\n" + 
-		"					return 3;\n" + 
-		"				case 1377 :\n" + 
-		"					return 3;\n" + 
-		"				case 1378 :\n" + 
-		"					return 3;\n" + 
-		"				case 1379 :\n" + 
-		"					return 3;\n" + 
-		"				case 1380 :\n" + 
-		"					return 3;\n" + 
-		"				case 1381 :\n" + 
-		"					return 3;\n" + 
-		"				case 1382 :\n" + 
-		"					return 3;\n" + 
-		"				case 1383 :\n" + 
-		"					return 3;\n" + 
-		"				case 1384 :\n" + 
-		"					return 3;\n" + 
-		"				case 1385 :\n" + 
-		"					return 3;\n" + 
-		"				case 1386 :\n" + 
-		"					return 3;\n" + 
-		"				case 1387 :\n" + 
-		"					return 3;\n" + 
-		"				case 1388 :\n" + 
-		"					return 3;\n" + 
-		"				case 1389 :\n" + 
-		"					return 3;\n" + 
-		"				case 1390 :\n" + 
-		"					return 3;\n" + 
-		"				case 1391 :\n" + 
-		"					return 3;\n" + 
-		"				case 1392 :\n" + 
-		"					return 3;\n" + 
-		"				case 1393 :\n" + 
-		"					return 3;\n" + 
-		"				case 1394 :\n" + 
-		"					return 3;\n" + 
-		"				case 1395 :\n" + 
-		"					return 3;\n" + 
-		"				case 1396 :\n" + 
-		"					return 3;\n" + 
-		"				case 1397 :\n" + 
-		"					return 3;\n" + 
-		"				case 1398 :\n" + 
-		"					return 3;\n" + 
-		"				case 1399 :\n" + 
-		"					return 3;\n" + 
-		"				case 1400 :\n" + 
-		"					return 3;\n" + 
-		"				case 1401 :\n" + 
-		"					return 3;\n" + 
-		"				case 1402 :\n" + 
-		"					return 3;\n" + 
-		"				case 1403 :\n" + 
-		"					return 3;\n" + 
-		"				case 1404 :\n" + 
-		"					return 3;\n" + 
-		"				case 1405 :\n" + 
-		"					return 3;\n" + 
-		"				case 1406 :\n" + 
-		"					return 3;\n" + 
-		"				case 1407 :\n" + 
-		"					return 3;\n" + 
-		"				case 1408 :\n" + 
-		"					return 3;\n" + 
-		"				case 1409 :\n" + 
-		"					return 3;\n" + 
-		"				case 1410 :\n" + 
-		"					return 3;\n" + 
-		"				case 1411 :\n" + 
-		"					return 3;\n" + 
-		"				case 1412 :\n" + 
-		"					return 3;\n" + 
-		"				case 1413 :\n" + 
-		"					return 3;\n" + 
-		"				case 1414 :\n" + 
-		"					return 3;\n" + 
-		"				case 1415 :\n" + 
-		"					return 3;\n" + 
-		"				case 1416 :\n" + 
-		"					return 3;\n" + 
-		"				case 1417 :\n" + 
-		"					return 3;\n" + 
-		"				case 1418 :\n" + 
-		"					return 3;\n" + 
-		"				case 1419 :\n" + 
-		"					return 3;\n" + 
-		"				case 1420 :\n" + 
-		"					return 3;\n" + 
-		"				case 1421 :\n" + 
-		"					return 3;\n" + 
-		"				case 1422 :\n" + 
-		"					return 3;\n" + 
-		"				case 1423 :\n" + 
-		"					return 3;\n" + 
-		"				case 1424 :\n" + 
-		"					return 3;\n" + 
-		"				case 1425 :\n" + 
-		"					return 3;\n" + 
-		"				case 1426 :\n" + 
-		"					return 3;\n" + 
-		"				case 1427 :\n" + 
-		"					return 3;\n" + 
-		"				case 1428 :\n" + 
-		"					return 3;\n" + 
-		"				case 1429 :\n" + 
-		"					return 3;\n" + 
-		"				case 1430 :\n" + 
-		"					return 3;\n" + 
-		"				case 1431 :\n" + 
-		"					return 3;\n" + 
-		"				case 1432 :\n" + 
-		"					return 3;\n" + 
-		"				case 1433 :\n" + 
-		"					return 3;\n" + 
-		"				case 1434 :\n" + 
-		"					return 3;\n" + 
-		"				case 1435 :\n" + 
-		"					return 3;\n" + 
-		"				case 1436 :\n" + 
-		"					return 3;\n" + 
-		"				case 1437 :\n" + 
-		"					return 3;\n" + 
-		"				case 1438 :\n" + 
-		"					return 3;\n" + 
-		"				case 1439 :\n" + 
-		"					return 3;\n" + 
-		"				case 1440 :\n" + 
-		"					return 3;\n" + 
-		"				case 1441 :\n" + 
-		"					return 3;\n" + 
-		"				case 1442 :\n" + 
-		"					return 3;\n" + 
-		"				case 1443 :\n" + 
-		"					return 3;\n" + 
-		"				case 1444 :\n" + 
-		"					return 3;\n" + 
-		"				case 1445 :\n" + 
-		"					return 3;\n" + 
-		"				case 1446 :\n" + 
-		"					return 3;\n" + 
-		"				case 1447 :\n" + 
-		"					return 3;\n" + 
-		"				case 1448 :\n" + 
-		"					return 3;\n" + 
-		"				case 1449 :\n" + 
-		"					return 3;\n" + 
-		"				case 1450 :\n" + 
-		"					return 3;\n" + 
-		"				case 1451 :\n" + 
-		"					return 3;\n" + 
-		"				case 1452 :\n" + 
-		"					return 3;\n" + 
-		"				case 1453 :\n" + 
-		"					return 3;\n" + 
-		"				case 1454 :\n" + 
-		"					return 3;\n" + 
-		"				case 1455 :\n" + 
-		"					return 3;\n" + 
-		"				case 1456 :\n" + 
-		"					return 3;\n" + 
-		"				case 1457 :\n" + 
-		"					return 3;\n" + 
-		"				case 1458 :\n" + 
-		"					return 3;\n" + 
-		"				case 1459 :\n" + 
-		"					return 3;\n" + 
-		"				case 1460 :\n" + 
-		"					return 3;\n" + 
-		"				case 1461 :\n" + 
-		"					return 3;\n" + 
-		"				case 1462 :\n" + 
-		"					return 3;\n" + 
-		"				case 1463 :\n" + 
-		"					return 3;\n" + 
-		"				case 1464 :\n" + 
-		"					return 3;\n" + 
-		"				case 1465 :\n" + 
-		"					return 3;\n" + 
-		"				case 1466 :\n" + 
-		"					return 3;\n" + 
-		"				case 1467 :\n" + 
-		"					return 3;\n" + 
-		"				case 1468 :\n" + 
-		"					return 3;\n" + 
-		"				case 1469 :\n" + 
-		"					return 3;\n" + 
-		"				case 1470 :\n" + 
-		"					return 3;\n" + 
-		"				case 1471 :\n" + 
-		"					return 3;\n" + 
-		"				case 1472 :\n" + 
-		"					return 3;\n" + 
-		"				case 1473 :\n" + 
-		"					return 3;\n" + 
-		"				case 1474 :\n" + 
-		"					return 3;\n" + 
-		"				case 1475 :\n" + 
-		"					return 3;\n" + 
-		"				case 1476 :\n" + 
-		"					return 3;\n" + 
-		"				case 1477 :\n" + 
-		"					return 3;\n" + 
-		"				case 1478 :\n" + 
-		"					return 3;\n" + 
-		"				case 1479 :\n" + 
-		"					return 3;\n" + 
-		"				case 1480 :\n" + 
-		"					return 3;\n" + 
-		"				case 1481 :\n" + 
-		"					return 3;\n" + 
-		"				case 1482 :\n" + 
-		"					return 3;\n" + 
-		"				case 1483 :\n" + 
-		"					return 3;\n" + 
-		"				case 1484 :\n" + 
-		"					return 3;\n" + 
-		"				case 1485 :\n" + 
-		"					return 3;\n" + 
-		"				case 1486 :\n" + 
-		"					return 3;\n" + 
-		"				case 1487 :\n" + 
-		"					return 3;\n" + 
-		"				case 1488 :\n" + 
-		"					return 3;\n" + 
-		"				case 1489 :\n" + 
-		"					return 3;\n" + 
-		"				case 1490 :\n" + 
-		"					return 3;\n" + 
-		"				case 1491 :\n" + 
-		"					return 3;\n" + 
-		"				case 1492 :\n" + 
-		"					return 3;\n" + 
-		"				case 1493 :\n" + 
-		"					return 3;\n" + 
-		"				case 1494 :\n" + 
-		"					return 3;\n" + 
-		"				case 1495 :\n" + 
-		"					return 3;\n" + 
-		"				case 1496 :\n" + 
-		"					return 3;\n" + 
-		"				case 1497 :\n" + 
-		"					return 3;\n" + 
-		"				case 1498 :\n" + 
-		"					return 3;\n" + 
-		"				case 1499 :\n" + 
-		"					return 3;\n" + 
-		"				case 1500 :\n" + 
-		"					return 3;\n" + 
-		"				case 1501 :\n" + 
-		"					return 3;\n" + 
-		"				case 1502 :\n" + 
-		"					return 3;\n" + 
-		"				case 1503 :\n" + 
-		"					return 3;\n" + 
-		"				case 1504 :\n" + 
-		"					return 3;\n" + 
-		"				case 1505 :\n" + 
-		"					return 3;\n" + 
-		"				case 1506 :\n" + 
-		"					return 3;\n" + 
-		"				case 1507 :\n" + 
-		"					return 3;\n" + 
-		"				case 1508 :\n" + 
-		"					return 3;\n" + 
-		"				case 1509 :\n" + 
-		"					return 3;\n" + 
-		"				case 1510 :\n" + 
-		"					return 3;\n" + 
-		"				case 1511 :\n" + 
-		"					return 3;\n" + 
-		"				case 1512 :\n" + 
-		"					return 3;\n" + 
-		"				case 1513 :\n" + 
-		"					return 3;\n" + 
-		"				case 1514 :\n" + 
-		"					return 3;\n" + 
-		"				case 1515 :\n" + 
-		"					return 3;\n" + 
-		"				case 1516 :\n" + 
-		"					return 3;\n" + 
-		"				case 1517 :\n" + 
-		"					return 3;\n" + 
-		"				case 1518 :\n" + 
-		"					return 3;\n" + 
-		"				case 1519 :\n" + 
-		"					return 3;\n" + 
-		"				case 1520 :\n" + 
-		"					return 3;\n" + 
-		"				case 1521 :\n" + 
-		"					return 3;\n" + 
-		"				case 1522 :\n" + 
-		"					return 3;\n" + 
-		"				case 1523 :\n" + 
-		"					return 3;\n" + 
-		"				case 1524 :\n" + 
-		"					return 3;\n" + 
-		"				case 1525 :\n" + 
-		"					return 3;\n" + 
-		"				case 1526 :\n" + 
-		"					return 3;\n" + 
-		"				case 1527 :\n" + 
-		"					return 3;\n" + 
-		"				case 1528 :\n" + 
-		"					return 3;\n" + 
-		"				case 1529 :\n" + 
-		"					return 3;\n" + 
-		"				case 1530 :\n" + 
-		"					return 3;\n" + 
-		"				case 1531 :\n" + 
-		"					return 3;\n" + 
-		"				case 1532 :\n" + 
-		"					return 3;\n" + 
-		"				case 1533 :\n" + 
-		"					return 3;\n" + 
-		"				case 1534 :\n" + 
-		"					return 3;\n" + 
-		"				case 1535 :\n" + 
-		"					return 3;\n" + 
-		"				case 1536 :\n" + 
-		"					return 3;\n" + 
-		"				case 1537 :\n" + 
-		"					return 3;\n" + 
-		"				case 1538 :\n" + 
-		"					return 3;\n" + 
-		"				case 1539 :\n" + 
-		"					return 3;\n" + 
-		"				case 1540 :\n" + 
-		"					return 3;\n" + 
-		"				case 1541 :\n" + 
-		"					return 3;\n" + 
-		"				case 1542 :\n" + 
-		"					return 3;\n" + 
-		"				case 1543 :\n" + 
-		"					return 3;\n" + 
-		"				case 1544 :\n" + 
-		"					return 3;\n" + 
-		"				case 1545 :\n" + 
-		"					return 3;\n" + 
-		"				case 1546 :\n" + 
-		"					return 3;\n" + 
-		"				case 1547 :\n" + 
-		"					return 3;\n" + 
-		"				case 1548 :\n" + 
-		"					return 3;\n" + 
-		"				case 1549 :\n" + 
-		"					return 3;\n" + 
-		"				case 1550 :\n" + 
-		"					return 3;\n" + 
-		"				case 1551 :\n" + 
-		"					return 3;\n" + 
-		"				case 1552 :\n" + 
-		"					return 3;\n" + 
-		"				case 1553 :\n" + 
-		"					return 3;\n" + 
-		"				case 1554 :\n" + 
-		"					return 3;\n" + 
-		"				case 1555 :\n" + 
-		"					return 3;\n" + 
-		"				case 1556 :\n" + 
-		"					return 3;\n" + 
-		"				case 1557 :\n" + 
-		"					return 3;\n" + 
-		"				case 1558 :\n" + 
-		"					return 3;\n" + 
-		"				case 1559 :\n" + 
-		"					return 3;\n" + 
-		"				case 1560 :\n" + 
-		"					return 3;\n" + 
-		"				case 1561 :\n" + 
-		"					return 3;\n" + 
-		"				case 1562 :\n" + 
-		"					return 3;\n" + 
-		"				case 1563 :\n" + 
-		"					return 3;\n" + 
-		"				case 1564 :\n" + 
-		"					return 3;\n" + 
-		"				case 1565 :\n" + 
-		"					return 3;\n" + 
-		"				case 1566 :\n" + 
-		"					return 3;\n" + 
-		"				case 1567 :\n" + 
-		"					return 3;\n" + 
-		"				case 1568 :\n" + 
-		"					return 3;\n" + 
-		"				case 1569 :\n" + 
-		"					return 3;\n" + 
-		"				case 1570 :\n" + 
-		"					return 3;\n" + 
-		"				case 1571 :\n" + 
-		"					return 3;\n" + 
-		"				case 1572 :\n" + 
-		"					return 3;\n" + 
-		"				case 1573 :\n" + 
-		"					return 3;\n" + 
-		"				case 1574 :\n" + 
-		"					return 3;\n" + 
-		"				case 1575 :\n" + 
-		"					return 3;\n" + 
-		"				case 1576 :\n" + 
-		"					return 3;\n" + 
-		"				case 1577 :\n" + 
-		"					return 3;\n" + 
-		"				case 1578 :\n" + 
-		"					return 3;\n" + 
-		"				case 1579 :\n" + 
-		"					return 3;\n" + 
-		"				case 1580 :\n" + 
-		"					return 3;\n" + 
-		"				case 1581 :\n" + 
-		"					return 3;\n" + 
-		"				case 1582 :\n" + 
-		"					return 3;\n" + 
-		"				case 1583 :\n" + 
-		"					return 3;\n" + 
-		"				case 1584 :\n" + 
-		"					return 3;\n" + 
-		"				case 1585 :\n" + 
-		"					return 3;\n" + 
-		"				case 1586 :\n" + 
-		"					return 3;\n" + 
-		"				case 1587 :\n" + 
-		"					return 3;\n" + 
-		"				case 1588 :\n" + 
-		"					return 3;\n" + 
-		"				case 1589 :\n" + 
-		"					return 3;\n" + 
-		"				case 1590 :\n" + 
-		"					return 3;\n" + 
-		"				case 1591 :\n" + 
-		"					return 3;\n" + 
-		"				case 1592 :\n" + 
-		"					return 3;\n" + 
-		"				case 1593 :\n" + 
-		"					return 3;\n" + 
-		"				case 1594 :\n" + 
-		"					return 3;\n" + 
-		"				case 1595 :\n" + 
-		"					return 3;\n" + 
-		"				case 1596 :\n" + 
-		"					return 3;\n" + 
-		"				case 1597 :\n" + 
-		"					return 3;\n" + 
-		"				case 1598 :\n" + 
-		"					return 3;\n" + 
-		"				case 1599 :\n" + 
-		"					return 3;\n" + 
-		"				case 1600 :\n" + 
-		"					return 3;\n" + 
-		"				case 1601 :\n" + 
-		"					return 3;\n" + 
-		"				case 1602 :\n" + 
-		"					return 3;\n" + 
-		"				case 1603 :\n" + 
-		"					return 3;\n" + 
-		"				case 1604 :\n" + 
-		"					return 3;\n" + 
-		"				case 1605 :\n" + 
-		"					return 3;\n" + 
-		"				case 1606 :\n" + 
-		"					return 3;\n" + 
-		"				case 1607 :\n" + 
-		"					return 3;\n" + 
-		"				case 1608 :\n" + 
-		"					return 3;\n" + 
-		"				case 1609 :\n" + 
-		"					return 3;\n" + 
-		"				case 1610 :\n" + 
-		"					return 3;\n" + 
-		"				case 1611 :\n" + 
-		"					return 3;\n" + 
-		"				case 1612 :\n" + 
-		"					return 3;\n" + 
-		"				case 1613 :\n" + 
-		"					return 3;\n" + 
-		"				case 1614 :\n" + 
-		"					return 3;\n" + 
-		"				case 1615 :\n" + 
-		"					return 3;\n" + 
-		"				case 1616 :\n" + 
-		"					return 3;\n" + 
-		"				case 1617 :\n" + 
-		"					return 3;\n" + 
-		"				case 1618 :\n" + 
-		"					return 3;\n" + 
-		"				case 1619 :\n" + 
-		"					return 3;\n" + 
-		"				case 1620 :\n" + 
-		"					return 3;\n" + 
-		"				case 1621 :\n" + 
-		"					return 3;\n" + 
-		"				case 1622 :\n" + 
-		"					return 3;\n" + 
-		"				case 1623 :\n" + 
-		"					return 3;\n" + 
-		"				case 1624 :\n" + 
-		"					return 3;\n" + 
-		"				case 1625 :\n" + 
-		"					return 3;\n" + 
-		"				case 1626 :\n" + 
-		"					return 3;\n" + 
-		"				case 1627 :\n" + 
-		"					return 3;\n" + 
-		"				case 1628 :\n" + 
-		"					return 3;\n" + 
-		"				case 1629 :\n" + 
-		"					return 3;\n" + 
-		"				case 1630 :\n" + 
-		"					return 3;\n" + 
-		"				case 1631 :\n" + 
-		"					return 3;\n" + 
-		"				case 1632 :\n" + 
-		"					return 3;\n" + 
-		"				case 1633 :\n" + 
-		"					return 3;\n" + 
-		"				case 1634 :\n" + 
-		"					return 3;\n" + 
-		"				case 1635 :\n" + 
-		"					return 3;\n" + 
-		"				case 1636 :\n" + 
-		"					return 3;\n" + 
-		"				case 1637 :\n" + 
-		"					return 3;\n" + 
-		"				case 1638 :\n" + 
-		"					return 3;\n" + 
-		"				case 1639 :\n" + 
-		"					return 3;\n" + 
-		"				case 1640 :\n" + 
-		"					return 3;\n" + 
-		"				case 1641 :\n" + 
-		"					return 3;\n" + 
-		"				case 1642 :\n" + 
-		"					return 3;\n" + 
-		"				case 1643 :\n" + 
-		"					return 3;\n" + 
-		"				case 1644 :\n" + 
-		"					return 3;\n" + 
-		"				case 1645 :\n" + 
-		"					return 3;\n" + 
-		"				case 1646 :\n" + 
-		"					return 3;\n" + 
-		"				case 1647 :\n" + 
-		"					return 3;\n" + 
-		"				case 1648 :\n" + 
-		"					return 3;\n" + 
-		"				case 1649 :\n" + 
-		"					return 3;\n" + 
-		"				case 1650 :\n" + 
-		"					return 3;\n" + 
-		"				case 1651 :\n" + 
-		"					return 3;\n" + 
-		"				case 1652 :\n" + 
-		"					return 3;\n" + 
-		"				case 1653 :\n" + 
-		"					return 3;\n" + 
-		"				case 1654 :\n" + 
-		"					return 3;\n" + 
-		"				case 1655 :\n" + 
-		"					return 3;\n" + 
-		"				case 1656 :\n" + 
-		"					return 3;\n" + 
-		"				case 1657 :\n" + 
-		"					return 3;\n" + 
-		"				case 1658 :\n" + 
-		"					return 3;\n" + 
-		"				case 1659 :\n" + 
-		"					return 3;\n" + 
-		"				case 1660 :\n" + 
-		"					return 3;\n" + 
-		"				case 1661 :\n" + 
-		"					return 3;\n" + 
-		"				case 1662 :\n" + 
-		"					return 3;\n" + 
-		"				case 1663 :\n" + 
-		"					return 3;\n" + 
-		"				case 1664 :\n" + 
-		"					return 3;\n" + 
-		"				case 1665 :\n" + 
-		"					return 3;\n" + 
-		"				case 1666 :\n" + 
-		"					return 3;\n" + 
-		"				case 1667 :\n" + 
-		"					return 3;\n" + 
-		"				case 1668 :\n" + 
-		"					return 3;\n" + 
-		"				case 1669 :\n" + 
-		"					return 3;\n" + 
-		"				case 1670 :\n" + 
-		"					return 3;\n" + 
-		"				case 1671 :\n" + 
-		"					return 3;\n" + 
-		"				case 1672 :\n" + 
-		"					return 3;\n" + 
-		"				case 1673 :\n" + 
-		"					return 3;\n" + 
-		"				case 1674 :\n" + 
-		"					return 3;\n" + 
-		"				case 1675 :\n" + 
-		"					return 3;\n" + 
-		"				case 1676 :\n" + 
-		"					return 3;\n" + 
-		"				case 1677 :\n" + 
-		"					return 3;\n" + 
-		"				case 1678 :\n" + 
-		"					return 3;\n" + 
-		"				case 1679 :\n" + 
-		"					return 3;\n" + 
-		"				case 1680 :\n" + 
-		"					return 3;\n" + 
-		"				case 1681 :\n" + 
-		"					return 3;\n" + 
-		"				case 1682 :\n" + 
-		"					return 3;\n" + 
-		"				case 1683 :\n" + 
-		"					return 3;\n" + 
-		"				case 1684 :\n" + 
-		"					return 3;\n" + 
-		"				case 1685 :\n" + 
-		"					return 3;\n" + 
-		"				case 1686 :\n" + 
-		"					return 3;\n" + 
-		"				case 1687 :\n" + 
-		"					return 3;\n" + 
-		"				case 1688 :\n" + 
-		"					return 3;\n" + 
-		"				case 1689 :\n" + 
-		"					return 3;\n" + 
-		"				case 1690 :\n" + 
-		"					return 3;\n" + 
-		"				case 1691 :\n" + 
-		"					return 3;\n" + 
-		"				case 1692 :\n" + 
-		"					return 3;\n" + 
-		"				case 1693 :\n" + 
-		"					return 3;\n" + 
-		"				case 1694 :\n" + 
-		"					return 3;\n" + 
-		"				case 1695 :\n" + 
-		"					return 3;\n" + 
-		"				case 1696 :\n" + 
-		"					return 3;\n" + 
-		"				case 1697 :\n" + 
-		"					return 3;\n" + 
-		"				case 1698 :\n" + 
-		"					return 3;\n" + 
-		"				case 1699 :\n" + 
-		"					return 3;\n" + 
-		"				case 1700 :\n" + 
-		"					return 3;\n" + 
-		"				case 1701 :\n" + 
-		"					return 3;\n" + 
-		"				case 1702 :\n" + 
-		"					return 3;\n" + 
-		"				case 1703 :\n" + 
-		"					return 3;\n" + 
-		"				case 1704 :\n" + 
-		"					return 3;\n" + 
-		"				case 1705 :\n" + 
-		"					return 3;\n" + 
-		"				case 1706 :\n" + 
-		"					return 3;\n" + 
-		"				case 1707 :\n" + 
-		"					return 3;\n" + 
-		"				case 1708 :\n" + 
-		"					return 3;\n" + 
-		"				case 1709 :\n" + 
-		"					return 3;\n" + 
-		"				case 1710 :\n" + 
-		"					return 3;\n" + 
-		"				case 1711 :\n" + 
-		"					return 3;\n" + 
-		"				case 1712 :\n" + 
-		"					return 3;\n" + 
-		"				case 1713 :\n" + 
-		"					return 3;\n" + 
-		"				case 1714 :\n" + 
-		"					return 3;\n" + 
-		"				case 1715 :\n" + 
-		"					return 3;\n" + 
-		"				case 1716 :\n" + 
-		"					return 3;\n" + 
-		"				case 1717 :\n" + 
-		"					return 3;\n" + 
-		"				case 1718 :\n" + 
-		"					return 3;\n" + 
-		"				case 1719 :\n" + 
-		"					return 3;\n" + 
-		"				case 1720 :\n" + 
-		"					return 3;\n" + 
-		"				case 1721 :\n" + 
-		"					return 3;\n" + 
-		"				case 1722 :\n" + 
-		"					return 3;\n" + 
-		"				case 1723 :\n" + 
-		"					return 3;\n" + 
-		"				case 1724 :\n" + 
-		"					return 3;\n" + 
-		"				case 1725 :\n" + 
-		"					return 3;\n" + 
-		"				case 1726 :\n" + 
-		"					return 3;\n" + 
-		"				case 1727 :\n" + 
-		"					return 3;\n" + 
-		"				case 1728 :\n" + 
-		"					return 3;\n" + 
-		"				case 1729 :\n" + 
-		"					return 3;\n" + 
-		"				case 1730 :\n" + 
-		"					return 3;\n" + 
-		"				case 1731 :\n" + 
-		"					return 3;\n" + 
-		"				case 1732 :\n" + 
-		"					return 3;\n" + 
-		"				case 1733 :\n" + 
-		"					return 3;\n" + 
-		"				case 1734 :\n" + 
-		"					return 3;\n" + 
-		"				case 1735 :\n" + 
-		"					return 3;\n" + 
-		"				case 1736 :\n" + 
-		"					return 3;\n" + 
-		"				case 1737 :\n" + 
-		"					return 3;\n" + 
-		"				case 1738 :\n" + 
-		"					return 3;\n" + 
-		"				case 1739 :\n" + 
-		"					return 3;\n" + 
-		"				case 1740 :\n" + 
-		"					return 3;\n" + 
-		"				case 1741 :\n" + 
-		"					return 3;\n" + 
-		"				case 1742 :\n" + 
-		"					return 3;\n" + 
-		"				case 1743 :\n" + 
-		"					return 3;\n" + 
-		"				case 1744 :\n" + 
-		"					return 3;\n" + 
-		"				case 1745 :\n" + 
-		"					return 3;\n" + 
-		"				case 1746 :\n" + 
-		"					return 3;\n" + 
-		"				case 1747 :\n" + 
-		"					return 3;\n" + 
-		"				case 1748 :\n" + 
-		"					return 3;\n" + 
-		"				case 1749 :\n" + 
-		"					return 3;\n" + 
-		"				case 1750 :\n" + 
-		"					return 3;\n" + 
-		"				case 1751 :\n" + 
-		"					return 3;\n" + 
-		"				case 1752 :\n" + 
-		"					return 3;\n" + 
-		"				case 1753 :\n" + 
-		"					return 3;\n" + 
-		"				case 1754 :\n" + 
-		"					return 3;\n" + 
-		"				case 1755 :\n" + 
-		"					return 3;\n" + 
-		"				case 1756 :\n" + 
-		"					return 3;\n" + 
-		"				case 1757 :\n" + 
-		"					return 3;\n" + 
-		"				case 1758 :\n" + 
-		"					return 3;\n" + 
-		"				case 1759 :\n" + 
-		"					return 3;\n" + 
-		"				case 1760 :\n" + 
-		"					return 3;\n" + 
-		"				case 1761 :\n" + 
-		"					return 3;\n" + 
-		"				case 1762 :\n" + 
-		"					return 3;\n" + 
-		"				case 1763 :\n" + 
-		"					return 3;\n" + 
-		"				case 1764 :\n" + 
-		"					return 3;\n" + 
-		"				case 1765 :\n" + 
-		"					return 3;\n" + 
-		"				case 1766 :\n" + 
-		"					return 3;\n" + 
-		"				case 1767 :\n" + 
-		"					return 3;\n" + 
-		"				case 1768 :\n" + 
-		"					return 3;\n" + 
-		"				case 1769 :\n" + 
-		"					return 3;\n" + 
-		"				case 1770 :\n" + 
-		"					return 3;\n" + 
-		"				case 1771 :\n" + 
-		"					return 3;\n" + 
-		"				case 1772 :\n" + 
-		"					return 3;\n" + 
-		"				case 1773 :\n" + 
-		"					return 3;\n" + 
-		"				case 1774 :\n" + 
-		"					return 3;\n" + 
-		"				case 1775 :\n" + 
-		"					return 3;\n" + 
-		"				case 1776 :\n" + 
-		"					return 3;\n" + 
-		"				case 1777 :\n" + 
-		"					return 3;\n" + 
-		"				case 1778 :\n" + 
-		"					return 3;\n" + 
-		"				case 1779 :\n" + 
-		"					return 3;\n" + 
-		"				case 1780 :\n" + 
-		"					return 3;\n" + 
-		"				case 1781 :\n" + 
-		"					return 3;\n" + 
-		"				case 1782 :\n" + 
-		"					return 3;\n" + 
-		"				case 1783 :\n" + 
-		"					return 3;\n" + 
-		"				case 1784 :\n" + 
-		"					return 3;\n" + 
-		"				case 1785 :\n" + 
-		"					return 3;\n" + 
-		"				case 1786 :\n" + 
-		"					return 3;\n" + 
-		"				case 1787 :\n" + 
-		"					return 3;\n" + 
-		"				case 1788 :\n" + 
-		"					return 3;\n" + 
-		"				case 1789 :\n" + 
-		"					return 3;\n" + 
-		"				case 1790 :\n" + 
-		"					return 3;\n" + 
-		"				case 1791 :\n" + 
-		"					return 3;\n" + 
-		"				case 1792 :\n" + 
-		"					return 3;\n" + 
-		"				case 1793 :\n" + 
-		"					return 3;\n" + 
-		"				case 1794 :\n" + 
-		"					return 3;\n" + 
-		"				case 1795 :\n" + 
-		"					return 3;\n" + 
-		"				case 1796 :\n" + 
-		"					return 3;\n" + 
-		"				case 1797 :\n" + 
-		"					return 3;\n" + 
-		"				case 1798 :\n" + 
-		"					return 3;\n" + 
-		"				case 1799 :\n" + 
-		"					return 3;\n" + 
-		"				case 1800 :\n" + 
-		"					return 3;\n" + 
-		"				case 1801 :\n" + 
-		"					return 3;\n" + 
-		"				case 1802 :\n" + 
-		"					return 3;\n" + 
-		"				case 1803 :\n" + 
-		"					return 3;\n" + 
-		"				case 1804 :\n" + 
-		"					return 3;\n" + 
-		"				case 1805 :\n" + 
-		"					return 3;\n" + 
-		"				case 1806 :\n" + 
-		"					return 3;\n" + 
-		"				case 1807 :\n" + 
-		"					return 3;\n" + 
-		"				case 1808 :\n" + 
-		"					return 3;\n" + 
-		"				case 1809 :\n" + 
-		"					return 3;\n" + 
-		"				case 1810 :\n" + 
-		"					return 3;\n" + 
-		"				case 1811 :\n" + 
-		"					return 3;\n" + 
-		"				case 1812 :\n" + 
-		"					return 3;\n" + 
-		"				case 1813 :\n" + 
-		"					return 3;\n" + 
-		"				case 1814 :\n" + 
-		"					return 3;\n" + 
-		"				case 1815 :\n" + 
-		"					return 3;\n" + 
-		"				case 1816 :\n" + 
-		"					return 3;\n" + 
-		"				case 1817 :\n" + 
-		"					return 3;\n" + 
-		"				case 1818 :\n" + 
-		"					return 3;\n" + 
-		"				case 1819 :\n" + 
-		"					return 3;\n" + 
-		"				case 1820 :\n" + 
-		"					return 3;\n" + 
-		"				case 1821 :\n" + 
-		"					return 3;\n" + 
-		"				case 1822 :\n" + 
-		"					return 3;\n" + 
-		"				case 1823 :\n" + 
-		"					return 3;\n" + 
-		"				case 1824 :\n" + 
-		"					return 3;\n" + 
-		"				case 1825 :\n" + 
-		"					return 3;\n" + 
-		"				case 1826 :\n" + 
-		"					return 3;\n" + 
-		"				case 1827 :\n" + 
-		"					return 3;\n" + 
-		"				case 1828 :\n" + 
-		"					return 3;\n" + 
-		"				case 1829 :\n" + 
-		"					return 3;\n" + 
-		"				case 1830 :\n" + 
-		"					return 3;\n" + 
-		"				case 1831 :\n" + 
-		"					return 3;\n" + 
-		"				case 1832 :\n" + 
-		"					return 3;\n" + 
-		"				case 1833 :\n" + 
-		"					return 3;\n" + 
-		"				case 1834 :\n" + 
-		"					return 3;\n" + 
-		"				case 1835 :\n" + 
-		"					return 3;\n" + 
-		"				case 1836 :\n" + 
-		"					return 3;\n" + 
-		"				case 1837 :\n" + 
-		"					return 3;\n" + 
-		"				case 1838 :\n" + 
-		"					return 3;\n" + 
-		"				case 1839 :\n" + 
-		"					return 3;\n" + 
-		"				case 1840 :\n" + 
-		"					return 3;\n" + 
-		"				case 1841 :\n" + 
-		"					return 3;\n" + 
-		"				case 1842 :\n" + 
-		"					return 3;\n" + 
-		"				case 1843 :\n" + 
-		"					return 3;\n" + 
-		"				case 1844 :\n" + 
-		"					return 3;\n" + 
-		"				case 1845 :\n" + 
-		"					return 3;\n" + 
-		"				case 1846 :\n" + 
-		"					return 3;\n" + 
-		"				case 1847 :\n" + 
-		"					return 3;\n" + 
-		"				case 1848 :\n" + 
-		"					return 3;\n" + 
-		"				case 1849 :\n" + 
-		"					return 3;\n" + 
-		"				case 1850 :\n" + 
-		"					return 3;\n" + 
-		"				case 1851 :\n" + 
-		"					return 3;\n" + 
-		"				case 1852 :\n" + 
-		"					return 3;\n" + 
-		"				case 1853 :\n" + 
-		"					return 3;\n" + 
-		"				case 1854 :\n" + 
-		"					return 3;\n" + 
-		"				case 1855 :\n" + 
-		"					return 3;\n" + 
-		"				case 1856 :\n" + 
-		"					return 3;\n" + 
-		"				case 1857 :\n" + 
-		"					return 3;\n" + 
-		"				case 1858 :\n" + 
-		"					return 3;\n" + 
-		"				case 1859 :\n" + 
-		"					return 3;\n" + 
-		"				case 1860 :\n" + 
-		"					return 3;\n" + 
-		"				case 1861 :\n" + 
-		"					return 3;\n" + 
-		"				case 1862 :\n" + 
-		"					return 3;\n" + 
-		"				case 1863 :\n" + 
-		"					return 3;\n" + 
-		"				case 1864 :\n" + 
-		"					return 3;\n" + 
-		"				case 1865 :\n" + 
-		"					return 3;\n" + 
-		"				case 1866 :\n" + 
-		"					return 3;\n" + 
-		"				case 1867 :\n" + 
-		"					return 3;\n" + 
-		"				case 1868 :\n" + 
-		"					return 3;\n" + 
-		"				case 1869 :\n" + 
-		"					return 3;\n" + 
-		"				case 1870 :\n" + 
-		"					return 3;\n" + 
-		"				case 1871 :\n" + 
-		"					return 3;\n" + 
-		"				case 1872 :\n" + 
-		"					return 3;\n" + 
-		"				case 1873 :\n" + 
-		"					return 3;\n" + 
-		"				case 1874 :\n" + 
-		"					return 3;\n" + 
-		"				case 1875 :\n" + 
-		"					return 3;\n" + 
-		"				case 1876 :\n" + 
-		"					return 3;\n" + 
-		"				case 1877 :\n" + 
-		"					return 3;\n" + 
-		"				case 1878 :\n" + 
-		"					return 3;\n" + 
-		"				case 1879 :\n" + 
-		"					return 3;\n" + 
-		"				case 1880 :\n" + 
-		"					return 3;\n" + 
-		"				case 1881 :\n" + 
-		"					return 3;\n" + 
-		"				case 1882 :\n" + 
-		"					return 3;\n" + 
-		"				case 1883 :\n" + 
-		"					return 3;\n" + 
-		"				case 1884 :\n" + 
-		"					return 3;\n" + 
-		"				case 1885 :\n" + 
-		"					return 3;\n" + 
-		"				case 1886 :\n" + 
-		"					return 3;\n" + 
-		"				case 1887 :\n" + 
-		"					return 3;\n" + 
-		"				case 1888 :\n" + 
-		"					return 3;\n" + 
-		"				case 1889 :\n" + 
-		"					return 3;\n" + 
-		"				case 1890 :\n" + 
-		"					return 3;\n" + 
-		"				case 1891 :\n" + 
-		"					return 3;\n" + 
-		"				case 1892 :\n" + 
-		"					return 3;\n" + 
-		"				case 1893 :\n" + 
-		"					return 3;\n" + 
-		"				case 1894 :\n" + 
-		"					return 3;\n" + 
-		"				case 1895 :\n" + 
-		"					return 3;\n" + 
-		"				case 1896 :\n" + 
-		"					return 3;\n" + 
-		"				case 1897 :\n" + 
-		"					return 3;\n" + 
-		"				case 1898 :\n" + 
-		"					return 3;\n" + 
-		"				case 1899 :\n" + 
-		"					return 3;\n" + 
-		"				case 1900 :\n" + 
-		"					return 3;\n" + 
-		"				case 1901 :\n" + 
-		"					return 3;\n" + 
-		"				case 1902 :\n" + 
-		"					return 3;\n" + 
-		"				case 1903 :\n" + 
-		"					return 3;\n" + 
-		"				case 1904 :\n" + 
-		"					return 3;\n" + 
-		"				case 1905 :\n" + 
-		"					return 3;\n" + 
-		"				case 1906 :\n" + 
-		"					return 3;\n" + 
-		"				case 1907 :\n" + 
-		"					return 3;\n" + 
-		"				case 1908 :\n" + 
-		"					return 3;\n" + 
-		"				case 1909 :\n" + 
-		"					return 3;\n" + 
-		"				case 1910 :\n" + 
-		"					return 3;\n" + 
-		"				case 1911 :\n" + 
-		"					return 3;\n" + 
-		"				case 1912 :\n" + 
-		"					return 3;\n" + 
-		"				case 1913 :\n" + 
-		"					return 3;\n" + 
-		"				case 1914 :\n" + 
-		"					return 3;\n" + 
-		"				case 1915 :\n" + 
-		"					return 3;\n" + 
-		"				case 1916 :\n" + 
-		"					return 3;\n" + 
-		"				case 1917 :\n" + 
-		"					return 3;\n" + 
-		"				case 1918 :\n" + 
-		"					return 3;\n" + 
-		"				case 1919 :\n" + 
-		"					return 3;\n" + 
-		"				case 1920 :\n" + 
-		"					return 3;\n" + 
-		"				case 1921 :\n" + 
-		"					return 3;\n" + 
-		"				case 1922 :\n" + 
-		"					return 3;\n" + 
-		"				case 1923 :\n" + 
-		"					return 3;\n" + 
-		"				case 1924 :\n" + 
-		"					return 3;\n" + 
-		"				case 1925 :\n" + 
-		"					return 3;\n" + 
-		"				case 1926 :\n" + 
-		"					return 3;\n" + 
-		"				case 1927 :\n" + 
-		"					return 3;\n" + 
-		"				case 1928 :\n" + 
-		"					return 3;\n" + 
-		"				case 1929 :\n" + 
-		"					return 3;\n" + 
-		"				case 1930 :\n" + 
-		"					return 3;\n" + 
-		"				case 1931 :\n" + 
-		"					return 3;\n" + 
-		"				case 1932 :\n" + 
-		"					return 3;\n" + 
-		"				case 1933 :\n" + 
-		"					return 3;\n" + 
-		"				case 1934 :\n" + 
-		"					return 3;\n" + 
-		"				case 1935 :\n" + 
-		"					return 3;\n" + 
-		"				case 1936 :\n" + 
-		"					return 3;\n" + 
-		"				case 1937 :\n" + 
-		"					return 3;\n" + 
-		"				case 1938 :\n" + 
-		"					return 3;\n" + 
-		"				case 1939 :\n" + 
-		"					return 3;\n" + 
-		"				case 1940 :\n" + 
-		"					return 3;\n" + 
-		"				case 1941 :\n" + 
-		"					return 3;\n" + 
-		"				case 1942 :\n" + 
-		"					return 3;\n" + 
-		"				case 1943 :\n" + 
-		"					return 3;\n" + 
-		"				case 1944 :\n" + 
-		"					return 3;\n" + 
-		"				case 1945 :\n" + 
-		"					return 3;\n" + 
-		"				case 1946 :\n" + 
-		"					return 3;\n" + 
-		"				case 1947 :\n" + 
-		"					return 3;\n" + 
-		"				case 1948 :\n" + 
-		"					return 3;\n" + 
-		"				case 1949 :\n" + 
-		"					return 3;\n" + 
-		"				case 1950 :\n" + 
-		"					return 3;\n" + 
-		"				case 1951 :\n" + 
-		"					return 3;\n" + 
-		"				case 1952 :\n" + 
-		"					return 3;\n" + 
-		"				case 1953 :\n" + 
-		"					return 3;\n" + 
-		"				case 1954 :\n" + 
-		"					return 3;\n" + 
-		"				case 1955 :\n" + 
-		"					return 3;\n" + 
-		"				case 1956 :\n" + 
-		"					return 3;\n" + 
-		"				case 1957 :\n" + 
-		"					return 3;\n" + 
-		"				case 1958 :\n" + 
-		"					return 3;\n" + 
-		"				case 1959 :\n" + 
-		"					return 3;\n" + 
-		"				case 1960 :\n" + 
-		"					return 3;\n" + 
-		"				case 1961 :\n" + 
-		"					return 3;\n" + 
-		"				case 1962 :\n" + 
-		"					return 3;\n" + 
-		"				case 1963 :\n" + 
-		"					return 3;\n" + 
-		"				case 1964 :\n" + 
-		"					return 3;\n" + 
-		"				case 1965 :\n" + 
-		"					return 3;\n" + 
-		"				case 1966 :\n" + 
-		"					return 3;\n" + 
-		"				case 1967 :\n" + 
-		"					return 3;\n" + 
-		"				case 1968 :\n" + 
-		"					return 3;\n" + 
-		"				case 1969 :\n" + 
-		"					return 3;\n" + 
-		"				case 1970 :\n" + 
-		"					return 3;\n" + 
-		"				case 1971 :\n" + 
-		"					return 3;\n" + 
-		"				case 1972 :\n" + 
-		"					return 3;\n" + 
-		"				case 1973 :\n" + 
-		"					return 3;\n" + 
-		"				case 1974 :\n" + 
-		"					return 3;\n" + 
-		"				case 1975 :\n" + 
-		"					return 3;\n" + 
-		"				case 1976 :\n" + 
-		"					return 3;\n" + 
-		"				case 1977 :\n" + 
-		"					return 3;\n" + 
-		"				case 1978 :\n" + 
-		"					return 3;\n" + 
-		"				case 1979 :\n" + 
-		"					return 3;\n" + 
-		"				case 1980 :\n" + 
-		"					return 3;\n" + 
-		"				case 1981 :\n" + 
-		"					return 3;\n" + 
-		"				case 1982 :\n" + 
-		"					return 3;\n" + 
-		"				case 1983 :\n" + 
-		"					return 3;\n" + 
-		"				case 1984 :\n" + 
-		"					return 3;\n" + 
-		"				case 1985 :\n" + 
-		"					return 3;\n" + 
-		"				case 1986 :\n" + 
-		"					return 3;\n" + 
-		"				case 1987 :\n" + 
-		"					return 3;\n" + 
-		"				case 1988 :\n" + 
-		"					return 3;\n" + 
-		"				case 1989 :\n" + 
-		"					return 3;\n" + 
-		"				case 1990 :\n" + 
-		"					return 3;\n" + 
-		"				case 1991 :\n" + 
-		"					return 3;\n" + 
-		"				case 1992 :\n" + 
-		"					return 3;\n" + 
-		"				case 1993 :\n" + 
-		"					return 3;\n" + 
-		"				case 1994 :\n" + 
-		"					return 3;\n" + 
-		"				case 1995 :\n" + 
-		"					return 3;\n" + 
-		"				case 1996 :\n" + 
-		"					return 3;\n" + 
-		"				case 1997 :\n" + 
-		"					return 3;\n" + 
-		"				case 1998 :\n" + 
-		"					return 3;\n" + 
-		"				case 1999 :\n" + 
-		"					return 3;\n" + 
-		"				case 2000 :\n" + 
-		"					return 3;\n" + 
-		"				case 2001 :\n" + 
-		"					return 3;\n" + 
-		"				case 2002 :\n" + 
-		"					return 3;\n" + 
-		"				case 2003 :\n" + 
-		"					return 3;\n" + 
-		"				case 2004 :\n" + 
-		"					return 3;\n" + 
-		"				case 2005 :\n" + 
-		"					return 3;\n" + 
-		"				case 2006 :\n" + 
-		"					return 3;\n" + 
-		"				case 2007 :\n" + 
-		"					return 3;\n" + 
-		"				case 2008 :\n" + 
-		"					return 3;\n" + 
-		"				case 2009 :\n" + 
-		"					return 3;\n" + 
-		"				case 2010 :\n" + 
-		"					return 3;\n" + 
-		"				case 2011 :\n" + 
-		"					return 3;\n" + 
-		"				case 2012 :\n" + 
-		"					return 3;\n" + 
-		"				case 2013 :\n" + 
-		"					return 3;\n" + 
-		"				case 2014 :\n" + 
-		"					return 3;\n" + 
-		"				case 2015 :\n" + 
-		"					return 3;\n" + 
-		"				case 2016 :\n" + 
-		"					return 3;\n" + 
-		"				case 2017 :\n" + 
-		"					return 3;\n" + 
-		"				case 2018 :\n" + 
-		"					return 3;\n" + 
-		"				case 2019 :\n" + 
-		"					return 3;\n" + 
-		"				case 2020 :\n" + 
-		"					return 3;\n" + 
-		"				case 2021 :\n" + 
-		"					return 3;\n" + 
-		"				case 2022 :\n" + 
-		"					return 3;\n" + 
-		"				case 2023 :\n" + 
-		"					return 3;\n" + 
-		"				case 2024 :\n" + 
-		"					return 3;\n" + 
-		"				case 2025 :\n" + 
-		"					return 3;\n" + 
-		"				case 2026 :\n" + 
-		"					return 3;\n" + 
-		"				case 2027 :\n" + 
-		"					return 3;\n" + 
-		"				case 2028 :\n" + 
-		"					return 3;\n" + 
-		"				case 2029 :\n" + 
-		"					return 3;\n" + 
-		"				case 2030 :\n" + 
-		"					return 3;\n" + 
-		"				case 2031 :\n" + 
-		"					return 3;\n" + 
-		"				case 2032 :\n" + 
-		"					return 3;\n" + 
-		"				case 2033 :\n" + 
-		"					return 3;\n" + 
-		"				case 2034 :\n" + 
-		"					return 3;\n" + 
-		"				case 2035 :\n" + 
-		"					return 3;\n" + 
-		"				case 2036 :\n" + 
-		"					return 3;\n" + 
-		"				case 2037 :\n" + 
-		"					return 3;\n" + 
-		"				case 2038 :\n" + 
-		"					return 3;\n" + 
-		"				case 2039 :\n" + 
-		"					return 3;\n" + 
-		"				case 2040 :\n" + 
-		"					return 3;\n" + 
-		"				case 2041 :\n" + 
-		"					return 3;\n" + 
-		"				case 2042 :\n" + 
-		"					return 3;\n" + 
-		"				case 2043 :\n" + 
-		"					return 3;\n" + 
-		"				case 2044 :\n" + 
-		"					return 3;\n" + 
-		"				case 2045 :\n" + 
-		"					return 3;\n" + 
-		"				case 2046 :\n" + 
-		"					return 3;\n" + 
-		"				case 2047 :\n" + 
-		"					return 3;\n" + 
-		"				case 2048 :\n" + 
-		"					return 3;\n" + 
-		"				case 2049 :\n" + 
-		"					return 3;\n" + 
-		"				case 2050 :\n" + 
-		"					return 3;\n" + 
-		"				case 2051 :\n" + 
-		"					return 3;\n" + 
-		"				case 2052 :\n" + 
-		"					return 3;\n" + 
-		"				case 2053 :\n" + 
-		"					return 3;\n" + 
-		"				case 2054 :\n" + 
-		"					return 3;\n" + 
-		"				case 2055 :\n" + 
-		"					return 3;\n" + 
-		"				case 2056 :\n" + 
-		"					return 3;\n" + 
-		"				case 2057 :\n" + 
-		"					return 3;\n" + 
-		"				case 2058 :\n" + 
-		"					return 3;\n" + 
-		"				case 2059 :\n" + 
-		"					return 3;\n" + 
-		"				case 2060 :\n" + 
-		"					return 3;\n" + 
-		"				case 2061 :\n" + 
-		"					return 3;\n" + 
-		"				case 2062 :\n" + 
-		"					return 3;\n" + 
-		"				case 2063 :\n" + 
-		"					return 3;\n" + 
-		"				case 2064 :\n" + 
-		"					return 3;\n" + 
-		"				case 2065 :\n" + 
-		"					return 3;\n" + 
-		"				case 2066 :\n" + 
-		"					return 3;\n" + 
-		"				case 2067 :\n" + 
-		"					return 3;\n" + 
-		"				case 2068 :\n" + 
-		"					return 3;\n" + 
-		"				case 2069 :\n" + 
-		"					return 3;\n" + 
-		"				case 2070 :\n" + 
-		"					return 3;\n" + 
-		"				case 2071 :\n" + 
-		"					return 3;\n" + 
-		"				case 2072 :\n" + 
-		"					return 3;\n" + 
-		"				case 2073 :\n" + 
-		"					return 3;\n" + 
-		"				case 2074 :\n" + 
-		"					return 3;\n" + 
-		"				case 2075 :\n" + 
-		"					return 3;\n" + 
-		"				case 2076 :\n" + 
-		"					return 3;\n" + 
-		"				case 2077 :\n" + 
-		"					return 3;\n" + 
-		"				case 2078 :\n" + 
-		"					return 3;\n" + 
-		"				case 2079 :\n" + 
-		"					return 3;\n" + 
-		"				case 2080 :\n" + 
-		"					return 3;\n" + 
-		"				case 2081 :\n" + 
-		"					return 3;\n" + 
-		"				case 2082 :\n" + 
-		"					return 3;\n" + 
-		"				case 2083 :\n" + 
-		"					return 3;\n" + 
-		"				case 2084 :\n" + 
-		"					return 3;\n" + 
-		"				case 2085 :\n" + 
-		"					return 3;\n" + 
-		"				case 2086 :\n" + 
-		"					return 3;\n" + 
-		"				case 2087 :\n" + 
-		"					return 3;\n" + 
-		"				case 2088 :\n" + 
-		"					return 3;\n" + 
-		"				case 2089 :\n" + 
-		"					return 3;\n" + 
-		"				case 2090 :\n" + 
-		"					return 3;\n" + 
-		"				case 2091 :\n" + 
-		"					return 3;\n" + 
-		"				case 2092 :\n" + 
-		"					return 3;\n" + 
-		"				case 2093 :\n" + 
-		"					return 3;\n" + 
-		"				case 2094 :\n" + 
-		"					return 3;\n" + 
-		"				case 2095 :\n" + 
-		"					return 3;\n" + 
-		"				case 2096 :\n" + 
-		"					return 3;\n" + 
-		"				case 2097 :\n" + 
-		"					return 3;\n" + 
-		"				case 2098 :\n" + 
-		"					return 3;\n" + 
-		"				case 2099 :\n" + 
-		"					return 3;\n" + 
-		"				case 2100 :\n" + 
-		"					return 3;\n" + 
-		"				case 2101 :\n" + 
-		"					return 3;\n" + 
-		"				case 2102 :\n" + 
-		"					return 3;\n" + 
-		"				case 2103 :\n" + 
-		"					return 3;\n" + 
-		"				case 2104 :\n" + 
-		"					return 3;\n" + 
-		"				case 2105 :\n" + 
-		"					return 3;\n" + 
-		"				case 2106 :\n" + 
-		"					return 3;\n" + 
-		"				case 2107 :\n" + 
-		"					return 3;\n" + 
-		"				case 2108 :\n" + 
-		"					return 3;\n" + 
-		"				case 2109 :\n" + 
-		"					return 3;\n" + 
-		"				case 2110 :\n" + 
-		"					return 3;\n" + 
-		"				case 2111 :\n" + 
-		"					return 3;\n" + 
-		"				case 2112 :\n" + 
-		"					return 3;\n" + 
-		"				case 2113 :\n" + 
-		"					return 3;\n" + 
-		"				case 2114 :\n" + 
-		"					return 3;\n" + 
-		"				case 2115 :\n" + 
-		"					return 3;\n" + 
-		"				case 2116 :\n" + 
-		"					return 3;\n" + 
-		"				case 2117 :\n" + 
-		"					return 3;\n" + 
-		"				case 2118 :\n" + 
-		"					return 3;\n" + 
-		"				case 2119 :\n" + 
-		"					return 3;\n" + 
-		"				case 2120 :\n" + 
-		"					return 3;\n" + 
-		"				case 2121 :\n" + 
-		"					return 3;\n" + 
-		"				case 2122 :\n" + 
-		"					return 3;\n" + 
-		"				case 2123 :\n" + 
-		"					return 3;\n" + 
-		"				case 2124 :\n" + 
-		"					return 3;\n" + 
-		"				case 2125 :\n" + 
-		"					return 3;\n" + 
-		"				case 2126 :\n" + 
-		"					return 3;\n" + 
-		"				case 2127 :\n" + 
-		"					return 3;\n" + 
-		"				case 2128 :\n" + 
-		"					return 3;\n" + 
-		"				case 2129 :\n" + 
-		"					return 3;\n" + 
-		"				case 2130 :\n" + 
-		"					return 3;\n" + 
-		"				case 2131 :\n" + 
-		"					return 3;\n" + 
-		"				case 2132 :\n" + 
-		"					return 3;\n" + 
-		"				case 2133 :\n" + 
-		"					return 3;\n" + 
-		"				case 2134 :\n" + 
-		"					return 3;\n" + 
-		"				case 2135 :\n" + 
-		"					return 3;\n" + 
-		"				case 2136 :\n" + 
-		"					return 3;\n" + 
-		"				case 2137 :\n" + 
-		"					return 3;\n" + 
-		"				case 2138 :\n" + 
-		"					return 3;\n" + 
-		"				case 2139 :\n" + 
-		"					return 3;\n" + 
-		"				case 2140 :\n" + 
-		"					return 3;\n" + 
-		"				case 2141 :\n" + 
-		"					return 3;\n" + 
-		"				case 2142 :\n" + 
-		"					return 3;\n" + 
-		"				case 2143 :\n" + 
-		"					return 3;\n" + 
-		"				case 2144 :\n" + 
-		"					return 3;\n" + 
-		"				case 2145 :\n" + 
-		"					return 3;\n" + 
-		"				case 2146 :\n" + 
-		"					return 3;\n" + 
-		"				case 2147 :\n" + 
-		"					return 3;\n" + 
-		"				case 2148 :\n" + 
-		"					return 3;\n" + 
-		"				case 2149 :\n" + 
-		"					return 3;\n" + 
-		"				case 2150 :\n" + 
-		"					return 3;\n" + 
-		"				case 2151 :\n" + 
-		"					return 3;\n" + 
-		"				case 2152 :\n" + 
-		"					return 3;\n" + 
-		"				case 2153 :\n" + 
-		"					return 3;\n" + 
-		"				case 2154 :\n" + 
-		"					return 3;\n" + 
-		"				case 2155 :\n" + 
-		"					return 3;\n" + 
-		"				case 2156 :\n" + 
-		"					return 3;\n" + 
-		"				case 2157 :\n" + 
-		"					return 3;\n" + 
-		"				case 2158 :\n" + 
-		"					return 3;\n" + 
-		"				case 2159 :\n" + 
-		"					return 3;\n" + 
-		"				case 2160 :\n" + 
-		"					return 3;\n" + 
-		"				case 2161 :\n" + 
-		"					return 3;\n" + 
-		"				case 2162 :\n" + 
-		"					return 3;\n" + 
-		"				case 2163 :\n" + 
-		"					return 3;\n" + 
-		"				case 2164 :\n" + 
-		"					return 3;\n" + 
-		"				case 2165 :\n" + 
-		"					return 3;\n" + 
-		"				case 2166 :\n" + 
-		"					return 3;\n" + 
-		"				case 2167 :\n" + 
-		"					return 3;\n" + 
-		"				case 2168 :\n" + 
-		"					return 3;\n" + 
-		"				case 2169 :\n" + 
-		"					return 3;\n" + 
-		"				case 2170 :\n" + 
-		"					return 3;\n" + 
-		"				case 2171 :\n" + 
-		"					return 3;\n" + 
-		"				case 2172 :\n" + 
-		"					return 3;\n" + 
-		"				case 2173 :\n" + 
-		"					return 3;\n" + 
-		"				case 2174 :\n" + 
-		"					return 3;\n" + 
-		"				case 2175 :\n" + 
-		"					return 3;\n" + 
-		"				case 2176 :\n" + 
-		"					return 3;\n" + 
-		"				case 2177 :\n" + 
-		"					return 3;\n" + 
-		"				case 2178 :\n" + 
-		"					return 3;\n" + 
-		"				case 2179 :\n" + 
-		"					return 3;\n" + 
-		"				case 2180 :\n" + 
-		"					return 3;\n" + 
-		"				case 2181 :\n" + 
-		"					return 3;\n" + 
-		"				case 2182 :\n" + 
-		"					return 3;\n" + 
-		"				case 2183 :\n" + 
-		"					return 3;\n" + 
-		"				case 2184 :\n" + 
-		"					return 3;\n" + 
-		"				case 2185 :\n" + 
-		"					return 3;\n" + 
-		"				case 2186 :\n" + 
-		"					return 3;\n" + 
-		"				case 2187 :\n" + 
-		"					return 3;\n" + 
-		"				case 2188 :\n" + 
-		"					return 3;\n" + 
-		"				case 2189 :\n" + 
-		"					return 3;\n" + 
-		"				case 2190 :\n" + 
-		"					return 3;\n" + 
-		"				case 2191 :\n" + 
-		"					return 3;\n" + 
-		"				case 2192 :\n" + 
-		"					return 3;\n" + 
-		"				case 2193 :\n" + 
-		"					return 3;\n" + 
-		"				case 2194 :\n" + 
-		"					return 3;\n" + 
-		"				case 2195 :\n" + 
-		"					return 3;\n" + 
-		"				case 2196 :\n" + 
-		"					return 3;\n" + 
-		"				case 2197 :\n" + 
-		"					return 3;\n" + 
-		"				case 2198 :\n" + 
-		"					return 3;\n" + 
-		"				case 2199 :\n" + 
-		"					return 3;\n" + 
-		"				case 2200 :\n" + 
-		"					return 3;\n" + 
-		"				case 2201 :\n" + 
-		"					return 3;\n" + 
-		"				case 2202 :\n" + 
-		"					return 3;\n" + 
-		"				case 2203 :\n" + 
-		"					return 3;\n" + 
-		"				case 2204 :\n" + 
-		"					return 3;\n" + 
-		"				case 2205 :\n" + 
-		"					return 3;\n" + 
-		"				case 2206 :\n" + 
-		"					return 3;\n" + 
-		"				case 2207 :\n" + 
-		"					return 3;\n" + 
-		"				case 2208 :\n" + 
-		"					return 3;\n" + 
-		"				case 2209 :\n" + 
-		"					return 3;\n" + 
-		"				case 2210 :\n" + 
-		"					return 3;\n" + 
-		"				case 2211 :\n" + 
-		"					return 3;\n" + 
-		"				case 2212 :\n" + 
-		"					return 3;\n" + 
-		"				case 2213 :\n" + 
-		"					return 3;\n" + 
-		"				case 2214 :\n" + 
-		"					return 3;\n" + 
-		"				case 2215 :\n" + 
-		"					return 3;\n" + 
-		"				case 2216 :\n" + 
-		"					return 3;\n" + 
-		"				case 2217 :\n" + 
-		"					return 3;\n" + 
-		"				case 2218 :\n" + 
-		"					return 3;\n" + 
-		"				case 2219 :\n" + 
-		"					return 3;\n" + 
-		"				case 2220 :\n" + 
-		"					return 3;\n" + 
-		"				case 2221 :\n" + 
-		"					return 3;\n" + 
-		"				case 2222 :\n" + 
-		"					return 3;\n" + 
-		"				case 2223 :\n" + 
-		"					return 3;\n" + 
-		"				case 2224 :\n" + 
-		"					return 3;\n" + 
-		"				case 2225 :\n" + 
-		"					return 3;\n" + 
-		"				case 2226 :\n" + 
-		"					return 3;\n" + 
-		"				case 2227 :\n" + 
-		"					return 3;\n" + 
-		"				case 2228 :\n" + 
-		"					return 3;\n" + 
-		"				case 2229 :\n" + 
-		"					return 3;\n" + 
-		"				case 2230 :\n" + 
-		"					return 3;\n" + 
-		"				case 2231 :\n" + 
-		"					return 3;\n" + 
-		"				case 2232 :\n" + 
-		"					return 3;\n" + 
-		"				case 2233 :\n" + 
-		"					return 3;\n" + 
-		"				case 2234 :\n" + 
-		"					return 3;\n" + 
-		"				case 2235 :\n" + 
-		"					return 3;\n" + 
-		"				case 2236 :\n" + 
-		"					return 3;\n" + 
-		"				case 2237 :\n" + 
-		"					return 3;\n" + 
-		"				case 2238 :\n" + 
-		"					return 3;\n" + 
-		"				case 2239 :\n" + 
-		"					return 3;\n" + 
-		"				case 2240 :\n" + 
-		"					return 3;\n" + 
-		"				case 2241 :\n" + 
-		"					return 3;\n" + 
-		"				case 2242 :\n" + 
-		"					return 3;\n" + 
-		"				case 2243 :\n" + 
-		"					return 3;\n" + 
-		"				case 2244 :\n" + 
-		"					return 3;\n" + 
-		"				case 2245 :\n" + 
-		"					return 3;\n" + 
-		"				case 2246 :\n" + 
-		"					return 3;\n" + 
-		"				case 2247 :\n" + 
-		"					return 3;\n" + 
-		"				case 2248 :\n" + 
-		"					return 3;\n" + 
-		"				case 2249 :\n" + 
-		"					return 3;\n" + 
-		"				case 2250 :\n" + 
-		"					return 3;\n" + 
-		"				case 2251 :\n" + 
-		"					return 3;\n" + 
-		"				case 2252 :\n" + 
-		"					return 3;\n" + 
-		"				case 2253 :\n" + 
-		"					return 3;\n" + 
-		"				case 2254 :\n" + 
-		"					return 3;\n" + 
-		"				case 2255 :\n" + 
-		"					return 3;\n" + 
-		"				case 2256 :\n" + 
-		"					return 3;\n" + 
-		"				case 2257 :\n" + 
-		"					return 3;\n" + 
-		"				case 2258 :\n" + 
-		"					return 3;\n" + 
-		"				case 2259 :\n" + 
-		"					return 3;\n" + 
-		"				case 2260 :\n" + 
-		"					return 3;\n" + 
-		"				case 2261 :\n" + 
-		"					return 3;\n" + 
-		"				case 2262 :\n" + 
-		"					return 3;\n" + 
-		"				case 2263 :\n" + 
-		"					return 3;\n" + 
-		"				case 2264 :\n" + 
-		"					return 3;\n" + 
-		"				case 2265 :\n" + 
-		"					return 3;\n" + 
-		"				case 2266 :\n" + 
-		"					return 3;\n" + 
-		"				case 2267 :\n" + 
-		"					return 3;\n" + 
-		"				case 2268 :\n" + 
-		"					return 3;\n" + 
-		"				case 2269 :\n" + 
-		"					return 3;\n" + 
-		"				case 2270 :\n" + 
-		"					return 3;\n" + 
-		"				case 2271 :\n" + 
-		"					return 3;\n" + 
-		"				case 2272 :\n" + 
-		"					return 3;\n" + 
-		"				case 2273 :\n" + 
-		"					return 3;\n" + 
-		"				case 2274 :\n" + 
-		"					return 3;\n" + 
-		"				case 2275 :\n" + 
-		"					return 3;\n" + 
-		"				case 2276 :\n" + 
-		"					return 3;\n" + 
-		"				case 2277 :\n" + 
-		"					return 3;\n" + 
-		"				case 2278 :\n" + 
-		"					return 3;\n" + 
-		"				case 2279 :\n" + 
-		"					return 3;\n" + 
-		"				case 2280 :\n" + 
-		"					return 3;\n" + 
-		"				case 2281 :\n" + 
-		"					return 3;\n" + 
-		"				case 2282 :\n" + 
-		"					return 3;\n" + 
-		"				case 2283 :\n" + 
-		"					return 3;\n" + 
-		"				case 2284 :\n" + 
-		"					return 3;\n" + 
-		"				case 2285 :\n" + 
-		"					return 3;\n" + 
-		"				case 2286 :\n" + 
-		"					return 3;\n" + 
-		"				case 2287 :\n" + 
-		"					return 3;\n" + 
-		"				case 2288 :\n" + 
-		"					return 3;\n" + 
-		"				case 2289 :\n" + 
-		"					return 3;\n" + 
-		"				case 2290 :\n" + 
-		"					return 3;\n" + 
-		"				case 2291 :\n" + 
-		"					return 3;\n" + 
-		"				case 2292 :\n" + 
-		"					return 3;\n" + 
-		"				case 2293 :\n" + 
-		"					return 3;\n" + 
-		"				case 2294 :\n" + 
-		"					return 3;\n" + 
-		"				case 2295 :\n" + 
-		"					return 3;\n" + 
-		"				case 2296 :\n" + 
-		"					return 3;\n" + 
-		"				case 2297 :\n" + 
-		"					return 3;\n" + 
-		"				case 2298 :\n" + 
-		"					return 3;\n" + 
-		"				case 2299 :\n" + 
-		"					return 3;\n" + 
-		"				case 2300 :\n" + 
-		"					return 3;\n" + 
-		"				case 2301 :\n" + 
-		"					return 3;\n" + 
-		"				case 2302 :\n" + 
-		"					return 3;\n" + 
-		"				case 2303 :\n" + 
-		"					return 3;\n" + 
-		"				case 2304 :\n" + 
-		"					return 3;\n" + 
-		"				case 2305 :\n" + 
-		"					return 3;\n" + 
-		"				case 2306 :\n" + 
-		"					return 3;\n" + 
-		"				case 2307 :\n" + 
-		"					return 3;\n" + 
-		"				case 2308 :\n" + 
-		"					return 3;\n" + 
-		"				case 2309 :\n" + 
-		"					return 3;\n" + 
-		"				case 2310 :\n" + 
-		"					return 3;\n" + 
-		"				case 2311 :\n" + 
-		"					return 3;\n" + 
-		"				case 2312 :\n" + 
-		"					return 3;\n" + 
-		"				case 2313 :\n" + 
-		"					return 3;\n" + 
-		"				case 2314 :\n" + 
-		"					return 3;\n" + 
-		"				case 2315 :\n" + 
-		"					return 3;\n" + 
-		"				case 2316 :\n" + 
-		"					return 3;\n" + 
-		"				case 2317 :\n" + 
-		"					return 3;\n" + 
-		"				case 2318 :\n" + 
-		"					return 3;\n" + 
-		"				case 2319 :\n" + 
-		"					return 3;\n" + 
-		"				case 2320 :\n" + 
-		"					return 3;\n" + 
-		"				case 2321 :\n" + 
-		"					return 3;\n" + 
-		"				case 2322 :\n" + 
-		"					return 3;\n" + 
-		"				case 2323 :\n" + 
-		"					return 3;\n" + 
-		"				case 2324 :\n" + 
-		"					return 3;\n" + 
-		"				case 2325 :\n" + 
-		"					return 3;\n" + 
-		"				case 2326 :\n" + 
-		"					return 3;\n" + 
-		"				case 2327 :\n" + 
-		"					return 3;\n" + 
-		"				case 2328 :\n" + 
-		"					return 3;\n" + 
-		"				case 2329 :\n" + 
-		"					return 3;\n" + 
-		"				case 2330 :\n" + 
-		"					return 3;\n" + 
-		"				case 2331 :\n" + 
-		"					return 3;\n" + 
-		"				case 2332 :\n" + 
-		"					return 3;\n" + 
-		"				case 2333 :\n" + 
-		"					return 3;\n" + 
-		"				case 2334 :\n" + 
-		"					return 3;\n" + 
-		"				case 2335 :\n" + 
-		"					return 3;\n" + 
-		"				case 2336 :\n" + 
-		"					return 3;\n" + 
-		"				case 2337 :\n" + 
-		"					return 3;\n" + 
-		"				case 2338 :\n" + 
-		"					return 3;\n" + 
-		"				case 2339 :\n" + 
-		"					return 3;\n" + 
-		"				case 2340 :\n" + 
-		"					return 3;\n" + 
-		"				case 2341 :\n" + 
-		"					return 3;\n" + 
-		"				case 2342 :\n" + 
-		"					return 3;\n" + 
-		"				case 2343 :\n" + 
-		"					return 3;\n" + 
-		"				case 2344 :\n" + 
-		"					return 3;\n" + 
-		"				case 2345 :\n" + 
-		"					return 3;\n" + 
-		"				case 2346 :\n" + 
-		"					return 3;\n" + 
-		"				case 2347 :\n" + 
-		"					return 3;\n" + 
-		"				case 2348 :\n" + 
-		"					return 3;\n" + 
-		"				case 2349 :\n" + 
-		"					return 3;\n" + 
-		"				case 2350 :\n" + 
-		"					return 3;\n" + 
-		"				case 2351 :\n" + 
-		"					return 3;\n" + 
-		"				case 2352 :\n" + 
-		"					return 3;\n" + 
-		"				case 2353 :\n" + 
-		"					return 3;\n" + 
-		"				case 2354 :\n" + 
-		"					return 3;\n" + 
-		"				case 2355 :\n" + 
-		"					return 3;\n" + 
-		"				case 2356 :\n" + 
-		"					return 3;\n" + 
-		"				case 2357 :\n" + 
-		"					return 3;\n" + 
-		"				case 2358 :\n" + 
-		"					return 3;\n" + 
-		"				case 2359 :\n" + 
-		"					return 3;\n" + 
-		"				case 2360 :\n" + 
-		"					return 3;\n" + 
-		"				case 2361 :\n" + 
-		"					return 3;\n" + 
-		"				case 2362 :\n" + 
-		"					return 3;\n" + 
-		"				case 2363 :\n" + 
-		"					return 3;\n" + 
-		"				case 2364 :\n" + 
-		"					return 3;\n" + 
-		"				case 2365 :\n" + 
-		"					return 3;\n" + 
-		"				case 2366 :\n" + 
-		"					return 3;\n" + 
-		"				case 2367 :\n" + 
-		"					return 3;\n" + 
-		"				case 2368 :\n" + 
-		"					return 3;\n" + 
-		"				case 2369 :\n" + 
-		"					return 3;\n" + 
-		"				case 2370 :\n" + 
-		"					return 3;\n" + 
-		"				case 2371 :\n" + 
-		"					return 3;\n" + 
-		"				case 2372 :\n" + 
-		"					return 3;\n" + 
-		"				case 2373 :\n" + 
-		"					return 3;\n" + 
-		"				case 2374 :\n" + 
-		"					return 3;\n" + 
-		"				case 2375 :\n" + 
-		"					return 3;\n" + 
-		"				case 2376 :\n" + 
-		"					return 3;\n" + 
-		"				case 2377 :\n" + 
-		"					return 3;\n" + 
-		"				case 2378 :\n" + 
-		"					return 3;\n" + 
-		"				case 2379 :\n" + 
-		"					return 3;\n" + 
-		"				case 2380 :\n" + 
-		"					return 3;\n" + 
-		"				case 2381 :\n" + 
-		"					return 3;\n" + 
-		"				case 2382 :\n" + 
-		"					return 3;\n" + 
-		"				case 2383 :\n" + 
-		"					return 3;\n" + 
-		"				case 2384 :\n" + 
-		"					return 3;\n" + 
-		"				case 2385 :\n" + 
-		"					return 3;\n" + 
-		"				case 2386 :\n" + 
-		"					return 3;\n" + 
-		"				case 2387 :\n" + 
-		"					return 3;\n" + 
-		"				case 2388 :\n" + 
-		"					return 3;\n" + 
-		"				case 2389 :\n" + 
-		"					return 3;\n" + 
-		"				case 2390 :\n" + 
-		"					return 3;\n" + 
-		"				case 2391 :\n" + 
-		"					return 3;\n" + 
-		"				case 2392 :\n" + 
-		"					return 3;\n" + 
-		"				case 2393 :\n" + 
-		"					return 3;\n" + 
-		"				case 2394 :\n" + 
-		"					return 3;\n" + 
-		"				case 2395 :\n" + 
-		"					return 3;\n" + 
-		"				case 2396 :\n" + 
-		"					return 3;\n" + 
-		"				case 2397 :\n" + 
-		"					return 3;\n" + 
-		"				case 2398 :\n" + 
-		"					return 3;\n" + 
-		"				case 2399 :\n" + 
-		"					return 3;\n" + 
-		"				case 2400 :\n" + 
-		"					return 3;\n" + 
-		"				case 2401 :\n" + 
-		"					return 3;\n" + 
-		"				case 2402 :\n" + 
-		"					return 3;\n" + 
-		"				case 2403 :\n" + 
-		"					return 3;\n" + 
-		"				case 2404 :\n" + 
-		"					return 3;\n" + 
-		"				case 2405 :\n" + 
-		"					return 3;\n" + 
-		"				case 2406 :\n" + 
-		"					return 3;\n" + 
-		"				case 2407 :\n" + 
-		"					return 3;\n" + 
-		"				case 2408 :\n" + 
-		"					return 3;\n" + 
-		"				case 2409 :\n" + 
-		"					return 3;\n" + 
-		"				case 2410 :\n" + 
-		"					return 3;\n" + 
-		"				case 2411 :\n" + 
-		"					return 3;\n" + 
-		"				case 2412 :\n" + 
-		"					return 3;\n" + 
-		"				case 2413 :\n" + 
-		"					return 3;\n" + 
-		"				case 2414 :\n" + 
-		"					return 3;\n" + 
-		"				case 2415 :\n" + 
-		"					return 3;\n" + 
-		"				case 2416 :\n" + 
-		"					return 3;\n" + 
-		"				case 2417 :\n" + 
-		"					return 3;\n" + 
-		"				case 2418 :\n" + 
-		"					return 3;\n" + 
-		"				case 2419 :\n" + 
-		"					return 3;\n" + 
-		"				case 2420 :\n" + 
-		"					return 3;\n" + 
-		"				case 2421 :\n" + 
-		"					return 3;\n" + 
-		"				case 2422 :\n" + 
-		"					return 3;\n" + 
-		"				case 2423 :\n" + 
-		"					return 3;\n" + 
-		"				case 2424 :\n" + 
-		"					return 3;\n" + 
-		"				case 2425 :\n" + 
-		"					return 3;\n" + 
-		"				case 2426 :\n" + 
-		"					return 3;\n" + 
-		"				case 2427 :\n" + 
-		"					return 3;\n" + 
-		"				case 2428 :\n" + 
-		"					return 3;\n" + 
-		"				case 2429 :\n" + 
-		"					return 3;\n" + 
-		"				case 2430 :\n" + 
-		"					return 3;\n" + 
-		"				case 2431 :\n" + 
-		"					return 3;\n" + 
-		"				case 2432 :\n" + 
-		"					return 3;\n" + 
-		"				case 2433 :\n" + 
-		"					return 3;\n" + 
-		"				case 2434 :\n" + 
-		"					return 3;\n" + 
-		"				case 2435 :\n" + 
-		"					return 3;\n" + 
-		"				case 2436 :\n" + 
-		"					return 3;\n" + 
-		"				case 2437 :\n" + 
-		"					return 3;\n" + 
-		"				case 2438 :\n" + 
-		"					return 3;\n" + 
-		"				case 2439 :\n" + 
-		"					return 3;\n" + 
-		"				case 2440 :\n" + 
-		"					return 3;\n" + 
-		"				case 2441 :\n" + 
-		"					return 3;\n" + 
-		"				case 2442 :\n" + 
-		"					return 3;\n" + 
-		"				case 2443 :\n" + 
-		"					return 3;\n" + 
-		"				case 2444 :\n" + 
-		"					return 3;\n" + 
-		"				case 2445 :\n" + 
-		"					return 3;\n" + 
-		"				case 2446 :\n" + 
-		"					return 3;\n" + 
-		"				case 2447 :\n" + 
-		"					return 3;\n" + 
-		"				case 2448 :\n" + 
-		"					return 3;\n" + 
-		"				case 2449 :\n" + 
-		"					return 3;\n" + 
-		"				case 2450 :\n" + 
-		"					return 3;\n" + 
-		"				case 2451 :\n" + 
-		"					return 3;\n" + 
-		"				case 2452 :\n" + 
-		"					return 3;\n" + 
-		"				case 2453 :\n" + 
-		"					return 3;\n" + 
-		"				case 2454 :\n" + 
-		"					return 3;\n" + 
-		"				case 2455 :\n" + 
-		"					return 3;\n" + 
-		"				case 2456 :\n" + 
-		"					return 3;\n" + 
-		"				case 2457 :\n" + 
-		"					return 3;\n" + 
-		"				case 2458 :\n" + 
-		"					return 3;\n" + 
-		"				case 2459 :\n" + 
-		"					return 3;\n" + 
-		"				case 2460 :\n" + 
-		"					return 3;\n" + 
-		"				case 2461 :\n" + 
-		"					return 3;\n" + 
-		"				case 2462 :\n" + 
-		"					return 3;\n" + 
-		"				case 2463 :\n" + 
-		"					return 3;\n" + 
-		"				case 2464 :\n" + 
-		"					return 3;\n" + 
-		"				case 2465 :\n" + 
-		"					return 3;\n" + 
-		"				case 2466 :\n" + 
-		"					return 3;\n" + 
-		"				case 2467 :\n" + 
-		"					return 3;\n" + 
-		"				case 2468 :\n" + 
-		"					return 3;\n" + 
-		"				case 2469 :\n" + 
-		"					return 3;\n" + 
-		"				case 2470 :\n" + 
-		"					return 3;\n" + 
-		"				case 2471 :\n" + 
-		"					return 3;\n" + 
-		"				case 2472 :\n" + 
-		"					return 3;\n" + 
-		"				case 2473 :\n" + 
-		"					return 3;\n" + 
-		"				case 2474 :\n" + 
-		"					return 3;\n" + 
-		"				case 2475 :\n" + 
-		"					return 3;\n" + 
-		"				case 2476 :\n" + 
-		"					return 3;\n" + 
-		"				case 2477 :\n" + 
-		"					return 3;\n" + 
-		"				case 2478 :\n" + 
-		"					return 3;\n" + 
-		"				case 2479 :\n" + 
-		"					return 3;\n" + 
-		"				case 2480 :\n" + 
-		"					return 3;\n" + 
-		"				case 2481 :\n" + 
-		"					return 3;\n" + 
-		"				case 2482 :\n" + 
-		"					return 3;\n" + 
-		"				case 2483 :\n" + 
-		"					return 3;\n" + 
-		"				case 2484 :\n" + 
-		"					return 3;\n" + 
-		"				case 2485 :\n" + 
-		"					return 3;\n" + 
-		"				case 2486 :\n" + 
-		"					return 3;\n" + 
-		"				case 2487 :\n" + 
-		"					return 3;\n" + 
-		"				case 2488 :\n" + 
-		"					return 3;\n" + 
-		"				case 2489 :\n" + 
-		"					return 3;\n" + 
-		"				case 2490 :\n" + 
-		"					return 3;\n" + 
-		"				case 2491 :\n" + 
-		"					return 3;\n" + 
-		"				case 2492 :\n" + 
-		"					return 3;\n" + 
-		"				case 2493 :\n" + 
-		"					return 3;\n" + 
-		"				case 2494 :\n" + 
-		"					return 3;\n" + 
-		"				case 2495 :\n" + 
-		"					return 3;\n" + 
-		"				case 2496 :\n" + 
-		"					return 3;\n" + 
-		"				case 2497 :\n" + 
-		"					return 3;\n" + 
-		"				case 2498 :\n" + 
-		"					return 3;\n" + 
-		"				case 2499 :\n" + 
-		"					return 3;\n" + 
-		"				case 2500 :\n" + 
-		"					return 3;\n" + 
-		"				case 2501 :\n" + 
-		"					return 3;\n" + 
-		"				case 2502 :\n" + 
-		"					return 3;\n" + 
-		"				case 2503 :\n" + 
-		"					return 3;\n" + 
-		"				case 2504 :\n" + 
-		"					return 3;\n" + 
-		"				case 2505 :\n" + 
-		"					return 3;\n" + 
-		"				case 2506 :\n" + 
-		"					return 3;\n" + 
-		"				case 2507 :\n" + 
-		"					return 3;\n" + 
-		"				case 2508 :\n" + 
-		"					return 3;\n" + 
-		"				case 2509 :\n" + 
-		"					return 3;\n" + 
-		"				case 2510 :\n" + 
-		"					return 3;\n" + 
-		"				case 2511 :\n" + 
-		"					return 3;\n" + 
-		"				case 2512 :\n" + 
-		"					return 3;\n" + 
-		"				case 2513 :\n" + 
-		"					return 3;\n" + 
-		"				case 2514 :\n" + 
-		"					return 3;\n" + 
-		"				case 2515 :\n" + 
-		"					return 3;\n" + 
-		"				case 2516 :\n" + 
-		"					return 3;\n" + 
-		"				case 2517 :\n" + 
-		"					return 3;\n" + 
-		"				case 2518 :\n" + 
-		"					return 3;\n" + 
-		"				case 2519 :\n" + 
-		"					return 3;\n" + 
-		"				case 2520 :\n" + 
-		"					return 3;\n" + 
-		"				case 2521 :\n" + 
-		"					return 3;\n" + 
-		"				case 2522 :\n" + 
-		"					return 3;\n" + 
-		"				case 2523 :\n" + 
-		"					return 3;\n" + 
-		"				case 2524 :\n" + 
-		"					return 3;\n" + 
-		"				case 2525 :\n" + 
-		"					return 3;\n" + 
-		"				case 2526 :\n" + 
-		"					return 3;\n" + 
-		"				case 2527 :\n" + 
-		"					return 3;\n" + 
-		"				case 2528 :\n" + 
-		"					return 3;\n" + 
-		"				case 2529 :\n" + 
-		"					return 3;\n" + 
-		"				case 2530 :\n" + 
-		"					return 3;\n" + 
-		"				case 2531 :\n" + 
-		"					return 3;\n" + 
-		"				case 2532 :\n" + 
-		"					return 3;\n" + 
-		"				case 2533 :\n" + 
-		"					return 3;\n" + 
-		"				case 2534 :\n" + 
-		"					return 3;\n" + 
-		"				case 2535 :\n" + 
-		"					return 3;\n" + 
-		"				case 2536 :\n" + 
-		"					return 3;\n" + 
-		"				case 2537 :\n" + 
-		"					return 3;\n" + 
-		"				case 2538 :\n" + 
-		"					return 3;\n" + 
-		"				case 2539 :\n" + 
-		"					return 3;\n" + 
-		"				case 2540 :\n" + 
-		"					return 3;\n" + 
-		"				case 2541 :\n" + 
-		"					return 3;\n" + 
-		"				case 2542 :\n" + 
-		"					return 3;\n" + 
-		"				case 2543 :\n" + 
-		"					return 3;\n" + 
-		"				case 2544 :\n" + 
-		"					return 3;\n" + 
-		"				case 2545 :\n" + 
-		"					return 3;\n" + 
-		"				case 2546 :\n" + 
-		"					return 3;\n" + 
-		"				case 2547 :\n" + 
-		"					return 3;\n" + 
-		"				case 2548 :\n" + 
-		"					return 3;\n" + 
-		"				case 2549 :\n" + 
-		"					return 3;\n" + 
-		"				case 2550 :\n" + 
-		"					return 3;\n" + 
-		"				case 2551 :\n" + 
-		"					return 3;\n" + 
-		"				case 2552 :\n" + 
-		"					return 3;\n" + 
-		"				case 2553 :\n" + 
-		"					return 3;\n" + 
-		"				case 2554 :\n" + 
-		"					return 3;\n" + 
-		"				case 2555 :\n" + 
-		"					return 3;\n" + 
-		"				case 2556 :\n" + 
-		"					return 3;\n" + 
-		"				case 2557 :\n" + 
-		"					return 3;\n" + 
-		"				case 2558 :\n" + 
-		"					return 3;\n" + 
-		"				case 2559 :\n" + 
-		"					return 3;\n" + 
-		"				case 2560 :\n" + 
-		"					return 3;\n" + 
-		"				case 2561 :\n" + 
-		"					return 3;\n" + 
-		"				case 2562 :\n" + 
-		"					return 3;\n" + 
-		"				case 2563 :\n" + 
-		"					return 3;\n" + 
-		"				case 2564 :\n" + 
-		"					return 3;\n" + 
-		"				case 2565 :\n" + 
-		"					return 3;\n" + 
-		"				case 2566 :\n" + 
-		"					return 3;\n" + 
-		"				case 2567 :\n" + 
-		"					return 3;\n" + 
-		"				case 2568 :\n" + 
-		"					return 3;\n" + 
-		"				case 2569 :\n" + 
-		"					return 3;\n" + 
-		"				case 2570 :\n" + 
-		"					return 3;\n" + 
-		"				case 2571 :\n" + 
-		"					return 3;\n" + 
-		"				case 2572 :\n" + 
-		"					return 3;\n" + 
-		"				case 2573 :\n" + 
-		"					return 3;\n" + 
-		"				case 2574 :\n" + 
-		"					return 3;\n" + 
-		"				case 2575 :\n" + 
-		"					return 3;\n" + 
-		"				case 2576 :\n" + 
-		"					return 3;\n" + 
-		"				case 2577 :\n" + 
-		"					return 3;\n" + 
-		"				case 2578 :\n" + 
-		"					return 3;\n" + 
-		"				case 2579 :\n" + 
-		"					return 3;\n" + 
-		"				case 2580 :\n" + 
-		"					return 3;\n" + 
-		"				case 2581 :\n" + 
-		"					return 3;\n" + 
-		"				case 2582 :\n" + 
-		"					return 3;\n" + 
-		"				case 2583 :\n" + 
-		"					return 3;\n" + 
-		"				case 2584 :\n" + 
-		"					return 3;\n" + 
-		"				case 2585 :\n" + 
-		"					return 3;\n" + 
-		"				case 2586 :\n" + 
-		"					return 3;\n" + 
-		"				case 2587 :\n" + 
-		"					return 3;\n" + 
-		"				case 2588 :\n" + 
-		"					return 3;\n" + 
-		"				case 2589 :\n" + 
-		"					return 3;\n" + 
-		"				case 2590 :\n" + 
-		"					return 3;\n" + 
-		"				case 2591 :\n" + 
-		"					return 3;\n" + 
-		"				case 2592 :\n" + 
-		"					return 3;\n" + 
-		"				case 2593 :\n" + 
-		"					return 3;\n" + 
-		"				case 2594 :\n" + 
-		"					return 3;\n" + 
-		"				case 2595 :\n" + 
-		"					return 3;\n" + 
-		"				case 2596 :\n" + 
-		"					return 3;\n" + 
-		"				case 2597 :\n" + 
-		"					return 3;\n" + 
-		"				case 2598 :\n" + 
-		"					return 3;\n" + 
-		"				case 2599 :\n" + 
-		"					return 3;\n" + 
-		"				case 2600 :\n" + 
-		"					return 3;\n" + 
-		"				case 2601 :\n" + 
-		"					return 3;\n" + 
-		"				case 2602 :\n" + 
-		"					return 3;\n" + 
-		"				case 2603 :\n" + 
-		"					return 3;\n" + 
-		"				case 2604 :\n" + 
-		"					return 3;\n" + 
-		"				case 2605 :\n" + 
-		"					return 3;\n" + 
-		"				case 2606 :\n" + 
-		"					return 3;\n" + 
-		"				case 2607 :\n" + 
-		"					return 3;\n" + 
-		"				case 2608 :\n" + 
-		"					return 3;\n" + 
-		"				case 2609 :\n" + 
-		"					return 3;\n" + 
-		"				case 2610 :\n" + 
-		"					return 3;\n" + 
-		"				case 2611 :\n" + 
-		"					return 3;\n" + 
-		"				case 2612 :\n" + 
-		"					return 3;\n" + 
-		"				case 2613 :\n" + 
-		"					return 3;\n" + 
-		"				case 2614 :\n" + 
-		"					return 3;\n" + 
-		"				case 2615 :\n" + 
-		"					return 3;\n" + 
-		"				case 2616 :\n" + 
-		"					return 3;\n" + 
-		"				case 2617 :\n" + 
-		"					return 3;\n" + 
-		"				case 2618 :\n" + 
-		"					return 3;\n" + 
-		"				case 2619 :\n" + 
-		"					return 3;\n" + 
-		"				case 2620 :\n" + 
-		"					return 3;\n" + 
-		"				case 2621 :\n" + 
-		"					return 3;\n" + 
-		"				case 2622 :\n" + 
-		"					return 3;\n" + 
-		"				case 2623 :\n" + 
-		"					return 3;\n" + 
-		"				case 2624 :\n" + 
-		"					return 3;\n" + 
-		"				case 2625 :\n" + 
-		"					return 3;\n" + 
-		"				case 2626 :\n" + 
-		"					return 3;\n" + 
-		"				case 2627 :\n" + 
-		"					return 3;\n" + 
-		"				case 2628 :\n" + 
-		"					return 3;\n" + 
-		"				case 2629 :\n" + 
-		"					return 3;\n" + 
-		"				case 2630 :\n" + 
-		"					return 3;\n" + 
-		"				case 2631 :\n" + 
-		"					return 3;\n" + 
-		"				case 2632 :\n" + 
-		"					return 3;\n" + 
-		"				case 2633 :\n" + 
-		"					return 3;\n" + 
-		"				case 2634 :\n" + 
-		"					return 3;\n" + 
-		"				case 2635 :\n" + 
-		"					return 3;\n" + 
-		"				case 2636 :\n" + 
-		"					return 3;\n" + 
-		"				case 2637 :\n" + 
-		"					return 3;\n" + 
-		"				case 2638 :\n" + 
-		"					return 3;\n" + 
-		"				case 2639 :\n" + 
-		"					return 3;\n" + 
-		"				case 2640 :\n" + 
-		"					return 3;\n" + 
-		"				case 2641 :\n" + 
-		"					return 3;\n" + 
-		"				case 2642 :\n" + 
-		"					return 3;\n" + 
-		"				case 2643 :\n" + 
-		"					return 3;\n" + 
-		"				case 2644 :\n" + 
-		"					return 3;\n" + 
-		"				case 2645 :\n" + 
-		"					return 3;\n" + 
-		"				case 2646 :\n" + 
-		"					return 3;\n" + 
-		"				case 2647 :\n" + 
-		"					return 3;\n" + 
-		"				case 2648 :\n" + 
-		"					return 3;\n" + 
-		"				case 2649 :\n" + 
-		"					return 3;\n" + 
-		"				case 2650 :\n" + 
-		"					return 3;\n" + 
-		"				case 2651 :\n" + 
-		"					return 3;\n" + 
-		"				case 2652 :\n" + 
-		"					return 3;\n" + 
-		"				case 2653 :\n" + 
-		"					return 3;\n" + 
-		"				case 2654 :\n" + 
-		"					return 3;\n" + 
-		"				case 2655 :\n" + 
-		"					return 3;\n" + 
-		"				case 2656 :\n" + 
-		"					return 3;\n" + 
-		"				case 2657 :\n" + 
-		"					return 3;\n" + 
-		"				case 2658 :\n" + 
-		"					return 3;\n" + 
-		"				case 2659 :\n" + 
-		"					return 3;\n" + 
-		"				case 2660 :\n" + 
-		"					return 3;\n" + 
-		"				case 2661 :\n" + 
-		"					return 3;\n" + 
-		"				case 2662 :\n" + 
-		"					return 3;\n" + 
-		"				case 2663 :\n" + 
-		"					return 3;\n" + 
-		"				case 2664 :\n" + 
-		"					return 3;\n" + 
-		"				case 2665 :\n" + 
-		"					return 3;\n" + 
-		"				case 2666 :\n" + 
-		"					return 3;\n" + 
-		"				case 2667 :\n" + 
-		"					return 3;\n" + 
-		"				case 2668 :\n" + 
-		"					return 3;\n" + 
-		"				case 2669 :\n" + 
-		"					return 3;\n" + 
-		"				case 2670 :\n" + 
-		"					return 3;\n" + 
-		"				case 2671 :\n" + 
-		"					return 3;\n" + 
-		"				case 2672 :\n" + 
-		"					return 3;\n" + 
-		"				case 2673 :\n" + 
-		"					return 3;\n" + 
-		"				case 2674 :\n" + 
-		"					return 3;\n" + 
-		"				case 2675 :\n" + 
-		"					return 3;\n" + 
-		"				case 2676 :\n" + 
-		"					return 3;\n" + 
-		"				case 2677 :\n" + 
-		"					return 3;\n" + 
-		"				case 2678 :\n" + 
-		"					return 3;\n" + 
-		"				case 2679 :\n" + 
-		"					return 3;\n" + 
-		"				case 2680 :\n" + 
-		"					return 3;\n" + 
-		"				case 2681 :\n" + 
-		"					return 3;\n" + 
-		"				case 2682 :\n" + 
-		"					return 3;\n" + 
-		"				case 2683 :\n" + 
-		"					return 3;\n" + 
-		"				case 2684 :\n" + 
-		"					return 3;\n" + 
-		"				case 2685 :\n" + 
-		"					return 3;\n" + 
-		"				case 2686 :\n" + 
-		"					return 3;\n" + 
-		"				case 2687 :\n" + 
-		"					return 3;\n" + 
-		"				case 2688 :\n" + 
-		"					return 3;\n" + 
-		"				case 2689 :\n" + 
-		"					return 3;\n" + 
-		"				case 2690 :\n" + 
-		"					return 3;\n" + 
-		"				case 2691 :\n" + 
-		"					return 3;\n" + 
-		"				case 2692 :\n" + 
-		"					return 3;\n" + 
-		"				case 2693 :\n" + 
-		"					return 3;\n" + 
-		"				case 2694 :\n" + 
-		"					return 3;\n" + 
-		"				case 2695 :\n" + 
-		"					return 3;\n" + 
-		"				case 2696 :\n" + 
-		"					return 3;\n" + 
-		"				case 2697 :\n" + 
-		"					return 3;\n" + 
-		"				case 2698 :\n" + 
-		"					return 3;\n" + 
-		"				case 2699 :\n" + 
-		"					return 3;\n" + 
-		"				case 2700 :\n" + 
-		"					return 3;\n" + 
-		"				case 2701 :\n" + 
-		"					return 3;\n" + 
-		"				case 2702 :\n" + 
-		"					return 3;\n" + 
-		"				case 2703 :\n" + 
-		"					return 3;\n" + 
-		"				case 2704 :\n" + 
-		"					return 3;\n" + 
-		"				case 2705 :\n" + 
-		"					return 3;\n" + 
-		"				case 2706 :\n" + 
-		"					return 3;\n" + 
-		"				case 2707 :\n" + 
-		"					return 3;\n" + 
-		"				case 2708 :\n" + 
-		"					return 3;\n" + 
-		"				case 2709 :\n" + 
-		"					return 3;\n" + 
-		"				case 2710 :\n" + 
-		"					return 3;\n" + 
-		"				case 2711 :\n" + 
-		"					return 3;\n" + 
-		"				case 2712 :\n" + 
-		"					return 3;\n" + 
-		"				case 2713 :\n" + 
-		"					return 3;\n" + 
-		"				case 2714 :\n" + 
-		"					return 3;\n" + 
-		"				case 2715 :\n" + 
-		"					return 3;\n" + 
-		"				case 2716 :\n" + 
-		"					return 3;\n" + 
-		"				case 2717 :\n" + 
-		"					return 3;\n" + 
-		"				case 2718 :\n" + 
-		"					return 3;\n" + 
-		"				case 2719 :\n" + 
-		"					return 3;\n" + 
-		"				case 2720 :\n" + 
-		"					return 3;\n" + 
-		"				case 2721 :\n" + 
-		"					return 3;\n" + 
-		"				case 2722 :\n" + 
-		"					return 3;\n" + 
-		"				case 2723 :\n" + 
-		"					return 3;\n" + 
-		"				case 2724 :\n" + 
-		"					return 3;\n" + 
-		"				case 2725 :\n" + 
-		"					return 3;\n" + 
-		"				case 2726 :\n" + 
-		"					return 3;\n" + 
-		"				case 2727 :\n" + 
-		"					return 3;\n" + 
-		"				case 2728 :\n" + 
-		"					return 3;\n" + 
-		"				case 2729 :\n" + 
-		"					return 3;\n" + 
-		"				case 2730 :\n" + 
-		"					return 3;\n" + 
-		"				case 2731 :\n" + 
-		"					return 3;\n" + 
-		"				case 2732 :\n" + 
-		"					return 3;\n" + 
-		"				case 2733 :\n" + 
-		"					return 3;\n" + 
-		"				case 2734 :\n" + 
-		"					return 3;\n" + 
-		"				case 2735 :\n" + 
-		"					return 3;\n" + 
-		"				case 2736 :\n" + 
-		"					return 3;\n" + 
-		"				case 2737 :\n" + 
-		"					return 3;\n" + 
-		"				case 2738 :\n" + 
-		"					return 3;\n" + 
-		"				case 2739 :\n" + 
-		"					return 3;\n" + 
-		"				case 2740 :\n" + 
-		"					return 3;\n" + 
-		"				case 2741 :\n" + 
-		"					return 3;\n" + 
-		"				case 2742 :\n" + 
-		"					return 3;\n" + 
-		"				case 2743 :\n" + 
-		"					return 3;\n" + 
-		"				case 2744 :\n" + 
-		"					return 3;\n" + 
-		"				case 2745 :\n" + 
-		"					return 3;\n" + 
-		"				case 2746 :\n" + 
-		"					return 3;\n" + 
-		"				case 2747 :\n" + 
-		"					return 3;\n" + 
-		"				case 2748 :\n" + 
-		"					return 3;\n" + 
-		"				case 2749 :\n" + 
-		"					return 3;\n" + 
-		"				case 2750 :\n" + 
-		"					return 3;\n" + 
-		"				case 2751 :\n" + 
-		"					return 3;\n" + 
-		"				case 2752 :\n" + 
-		"					return 3;\n" + 
-		"				case 2753 :\n" + 
-		"					return 3;\n" + 
-		"				case 2754 :\n" + 
-		"					return 3;\n" + 
-		"				case 2755 :\n" + 
-		"					return 3;\n" + 
-		"				case 2756 :\n" + 
-		"					return 3;\n" + 
-		"				case 2757 :\n" + 
-		"					return 3;\n" + 
-		"				case 2758 :\n" + 
-		"					return 3;\n" + 
-		"				case 2759 :\n" + 
-		"					return 3;\n" + 
-		"				case 2760 :\n" + 
-		"					return 3;\n" + 
-		"				case 2761 :\n" + 
-		"					return 3;\n" + 
-		"				case 2762 :\n" + 
-		"					return 3;\n" + 
-		"				case 2763 :\n" + 
-		"					return 3;\n" + 
-		"				case 2764 :\n" + 
-		"					return 3;\n" + 
-		"				case 2765 :\n" + 
-		"					return 3;\n" + 
-		"				case 2766 :\n" + 
-		"					return 3;\n" + 
-		"				case 2767 :\n" + 
-		"					return 3;\n" + 
-		"				case 2768 :\n" + 
-		"					return 3;\n" + 
-		"				case 2769 :\n" + 
-		"					return 3;\n" + 
-		"				case 2770 :\n" + 
-		"					return 3;\n" + 
-		"				case 2771 :\n" + 
-		"					return 3;\n" + 
-		"				case 2772 :\n" + 
-		"					return 3;\n" + 
-		"				case 2773 :\n" + 
-		"					return 3;\n" + 
-		"				case 2774 :\n" + 
-		"					return 3;\n" + 
-		"				case 2775 :\n" + 
-		"					return 3;\n" + 
-		"				case 2776 :\n" + 
-		"					return 3;\n" + 
-		"				case 2777 :\n" + 
-		"					return 3;\n" + 
-		"				case 2778 :\n" + 
-		"					return 3;\n" + 
-		"				case 2779 :\n" + 
-		"					return 3;\n" + 
-		"				case 2780 :\n" + 
-		"					return 3;\n" + 
-		"				case 2781 :\n" + 
-		"					return 3;\n" + 
-		"				case 2782 :\n" + 
-		"					return 3;\n" + 
-		"				case 2783 :\n" + 
-		"					return 3;\n" + 
-		"				case 2784 :\n" + 
-		"					return 3;\n" + 
-		"				case 2785 :\n" + 
-		"					return 3;\n" + 
-		"				case 2786 :\n" + 
-		"					return 3;\n" + 
-		"				case 2787 :\n" + 
-		"					return 3;\n" + 
-		"				case 2788 :\n" + 
-		"					return 3;\n" + 
-		"				case 2789 :\n" + 
-		"					return 3;\n" + 
-		"				case 2790 :\n" + 
-		"					return 3;\n" + 
-		"				case 2791 :\n" + 
-		"					return 3;\n" + 
-		"				case 2792 :\n" + 
-		"					return 3;\n" + 
-		"				case 2793 :\n" + 
-		"					return 3;\n" + 
-		"				case 2794 :\n" + 
-		"					return 3;\n" + 
-		"				case 2795 :\n" + 
-		"					return 3;\n" + 
-		"				case 2796 :\n" + 
-		"					return 3;\n" + 
-		"				case 2797 :\n" + 
-		"					return 3;\n" + 
-		"				case 2798 :\n" + 
-		"					return 3;\n" + 
-		"				case 2799 :\n" + 
-		"					return 3;\n" + 
-		"				case 2800 :\n" + 
-		"					return 3;\n" + 
-		"				case 2801 :\n" + 
-		"					return 3;\n" + 
-		"				case 2802 :\n" + 
-		"					return 3;\n" + 
-		"				case 2803 :\n" + 
-		"					return 3;\n" + 
-		"				case 2804 :\n" + 
-		"					return 3;\n" + 
-		"				case 2805 :\n" + 
-		"					return 3;\n" + 
-		"				case 2806 :\n" + 
-		"					return 3;\n" + 
-		"				case 2807 :\n" + 
-		"					return 3;\n" + 
-		"				case 2808 :\n" + 
-		"					return 3;\n" + 
-		"				case 2809 :\n" + 
-		"					return 3;\n" + 
-		"				case 2810 :\n" + 
-		"					return 3;\n" + 
-		"				case 2811 :\n" + 
-		"					return 3;\n" + 
-		"				case 2812 :\n" + 
-		"					return 3;\n" + 
-		"				case 2813 :\n" + 
-		"					return 3;\n" + 
-		"				case 2814 :\n" + 
-		"					return 3;\n" + 
-		"				case 2815 :\n" + 
-		"					return 3;\n" + 
-		"				case 2816 :\n" + 
-		"					return 3;\n" + 
-		"				case 2817 :\n" + 
-		"					return 3;\n" + 
-		"				case 2818 :\n" + 
-		"					return 3;\n" + 
-		"				case 2819 :\n" + 
-		"					return 3;\n" + 
-		"				case 2820 :\n" + 
-		"					return 3;\n" + 
-		"				case 2821 :\n" + 
-		"					return 3;\n" + 
-		"				case 2822 :\n" + 
-		"					return 3;\n" + 
-		"				case 2823 :\n" + 
-		"					return 3;\n" + 
-		"				case 2824 :\n" + 
-		"					return 3;\n" + 
-		"				case 2825 :\n" + 
-		"					return 3;\n" + 
-		"				case 2826 :\n" + 
-		"					return 3;\n" + 
-		"				case 2827 :\n" + 
-		"					return 3;\n" + 
-		"				case 2828 :\n" + 
-		"					return 3;\n" + 
-		"				case 2829 :\n" + 
-		"					return 3;\n" + 
-		"				case 2830 :\n" + 
-		"					return 3;\n" + 
-		"				case 2831 :\n" + 
-		"					return 3;\n" + 
-		"				case 2832 :\n" + 
-		"					return 3;\n" + 
-		"				case 2833 :\n" + 
-		"					return 3;\n" + 
-		"				case 2834 :\n" + 
-		"					return 3;\n" + 
-		"				case 2835 :\n" + 
-		"					return 3;\n" + 
-		"				case 2836 :\n" + 
-		"					return 3;\n" + 
-		"				case 2837 :\n" + 
-		"					return 3;\n" + 
-		"				case 2838 :\n" + 
-		"					return 3;\n" + 
-		"				case 2839 :\n" + 
-		"					return 3;\n" + 
-		"				case 2840 :\n" + 
-		"					return 3;\n" + 
-		"				case 2841 :\n" + 
-		"					return 3;\n" + 
-		"				case 2842 :\n" + 
-		"					return 3;\n" + 
-		"				case 2843 :\n" + 
-		"					return 3;\n" + 
-		"				case 2844 :\n" + 
-		"					return 3;\n" + 
-		"				case 2845 :\n" + 
-		"					return 3;\n" + 
-		"				case 2846 :\n" + 
-		"					return 3;\n" + 
-		"				case 2847 :\n" + 
-		"					return 3;\n" + 
-		"				case 2848 :\n" + 
-		"					return 3;\n" + 
-		"				case 2849 :\n" + 
-		"					return 3;\n" + 
-		"				case 2850 :\n" + 
-		"					return 3;\n" + 
-		"				case 2851 :\n" + 
-		"					return 3;\n" + 
-		"				case 2852 :\n" + 
-		"					return 3;\n" + 
-		"				case 2853 :\n" + 
-		"					return 3;\n" + 
-		"				case 2854 :\n" + 
-		"					return 3;\n" + 
-		"				case 2855 :\n" + 
-		"					return 3;\n" + 
-		"				case 2856 :\n" + 
-		"					return 3;\n" + 
-		"				case 2857 :\n" + 
-		"					return 3;\n" + 
-		"				case 2858 :\n" + 
-		"					return 3;\n" + 
-		"				case 2859 :\n" + 
-		"					return 3;\n" + 
-		"				case 2860 :\n" + 
-		"					return 3;\n" + 
-		"				case 2861 :\n" + 
-		"					return 3;\n" + 
-		"				case 2862 :\n" + 
-		"					return 3;\n" + 
-		"				case 2863 :\n" + 
-		"					return 3;\n" + 
-		"				case 2864 :\n" + 
-		"					return 3;\n" + 
-		"				case 2865 :\n" + 
-		"					return 3;\n" + 
-		"				case 2866 :\n" + 
-		"					return 3;\n" + 
-		"				case 2867 :\n" + 
-		"					return 3;\n" + 
-		"				case 2868 :\n" + 
-		"					return 3;\n" + 
-		"				case 2869 :\n" + 
-		"					return 3;\n" + 
-		"				case 2870 :\n" + 
-		"					return 3;\n" + 
-		"				case 2871 :\n" + 
-		"					return 3;\n" + 
-		"				case 2872 :\n" + 
-		"					return 3;\n" + 
-		"				case 2873 :\n" + 
-		"					return 3;\n" + 
-		"				case 2874 :\n" + 
-		"					return 3;\n" + 
-		"				case 2875 :\n" + 
-		"					return 3;\n" + 
-		"				case 2876 :\n" + 
-		"					return 3;\n" + 
-		"				case 2877 :\n" + 
-		"					return 3;\n" + 
-		"				case 2878 :\n" + 
-		"					return 3;\n" + 
-		"				case 2879 :\n" + 
-		"					return 3;\n" + 
-		"				case 2880 :\n" + 
-		"					return 3;\n" + 
-		"				case 2881 :\n" + 
-		"					return 3;\n" + 
-		"				case 2882 :\n" + 
-		"					return 3;\n" + 
-		"				case 2883 :\n" + 
-		"					return 3;\n" + 
-		"				case 2884 :\n" + 
-		"					return 3;\n" + 
-		"				case 2885 :\n" + 
-		"					return 3;\n" + 
-		"				case 2886 :\n" + 
-		"					return 3;\n" + 
-		"				case 2887 :\n" + 
-		"					return 3;\n" + 
-		"				case 2888 :\n" + 
-		"					return 3;\n" + 
-		"				case 2889 :\n" + 
-		"					return 3;\n" + 
-		"				case 2890 :\n" + 
-		"					return 3;\n" + 
-		"				case 2891 :\n" + 
-		"					return 3;\n" + 
-		"				case 2892 :\n" + 
-		"					return 3;\n" + 
-		"				case 2893 :\n" + 
-		"					return 3;\n" + 
-		"				case 2894 :\n" + 
-		"					return 3;\n" + 
-		"				case 2895 :\n" + 
-		"					return 3;\n" + 
-		"				case 2896 :\n" + 
-		"					return 3;\n" + 
-		"				case 2897 :\n" + 
-		"					return 3;\n" + 
-		"				case 2898 :\n" + 
-		"					return 3;\n" + 
-		"				case 2899 :\n" + 
-		"					return 3;\n" + 
-		"				case 2900 :\n" + 
-		"					return 3;\n" + 
-		"				case 2901 :\n" + 
-		"					return 3;\n" + 
-		"				case 2902 :\n" + 
-		"					return 3;\n" + 
-		"				case 2903 :\n" + 
-		"					return 3;\n" + 
-		"				case 2904 :\n" + 
-		"					return 3;\n" + 
-		"				case 2905 :\n" + 
-		"					return 3;\n" + 
-		"				case 2906 :\n" + 
-		"					return 3;\n" + 
-		"				case 2907 :\n" + 
-		"					return 3;\n" + 
-		"				case 2908 :\n" + 
-		"					return 3;\n" + 
-		"				case 2909 :\n" + 
-		"					return 3;\n" + 
-		"				case 2910 :\n" + 
-		"					return 3;\n" + 
-		"				case 2911 :\n" + 
-		"					return 3;\n" + 
-		"				case 2912 :\n" + 
-		"					return 3;\n" + 
-		"				case 2913 :\n" + 
-		"					return 3;\n" + 
-		"				case 2914 :\n" + 
-		"					return 3;\n" + 
-		"				case 2915 :\n" + 
-		"					return 3;\n" + 
-		"				case 2916 :\n" + 
-		"					return 3;\n" + 
-		"				case 2917 :\n" + 
-		"					return 3;\n" + 
-		"				case 2918 :\n" + 
-		"					return 3;\n" + 
-		"				case 2919 :\n" + 
-		"					return 3;\n" + 
-		"				case 2920 :\n" + 
-		"					return 3;\n" + 
-		"				case 2921 :\n" + 
-		"					return 3;\n" + 
-		"				case 2922 :\n" + 
-		"					return 3;\n" + 
-		"				case 2923 :\n" + 
-		"					return 3;\n" + 
-		"				case 2924 :\n" + 
-		"					return 3;\n" + 
-		"				case 2925 :\n" + 
-		"					return 3;\n" + 
-		"				case 2926 :\n" + 
-		"					return 3;\n" + 
-		"				case 2927 :\n" + 
-		"					return 3;\n" + 
-		"				case 2928 :\n" + 
-		"					return 3;\n" + 
-		"				case 2929 :\n" + 
-		"					return 3;\n" + 
-		"				case 2930 :\n" + 
-		"					return 3;\n" + 
-		"				case 2931 :\n" + 
-		"					return 3;\n" + 
-		"				case 2932 :\n" + 
-		"					return 3;\n" + 
-		"				case 2933 :\n" + 
-		"					return 3;\n" + 
-		"				case 2934 :\n" + 
-		"					return 3;\n" + 
-		"				case 2935 :\n" + 
-		"					return 3;\n" + 
-		"				case 2936 :\n" + 
-		"					return 3;\n" + 
-		"				case 2937 :\n" + 
-		"					return 3;\n" + 
-		"				case 2938 :\n" + 
-		"					return 3;\n" + 
-		"				case 2939 :\n" + 
-		"					return 3;\n" + 
-		"				case 2940 :\n" + 
-		"					return 3;\n" + 
-		"				case 2941 :\n" + 
-		"					return 3;\n" + 
-		"				case 2942 :\n" + 
-		"					return 3;\n" + 
-		"				case 2943 :\n" + 
-		"					return 3;\n" + 
-		"				case 2944 :\n" + 
-		"					return 3;\n" + 
-		"				case 2945 :\n" + 
-		"					return 3;\n" + 
-		"				case 2946 :\n" + 
-		"					return 3;\n" + 
-		"				case 2947 :\n" + 
-		"					return 3;\n" + 
-		"				case 2948 :\n" + 
-		"					return 3;\n" + 
-		"				case 2949 :\n" + 
-		"					return 3;\n" + 
-		"				case 2950 :\n" + 
-		"					return 3;\n" + 
-		"				case 2951 :\n" + 
-		"					return 3;\n" + 
-		"				case 2952 :\n" + 
-		"					return 3;\n" + 
-		"				case 2953 :\n" + 
-		"					return 3;\n" + 
-		"				case 2954 :\n" + 
-		"					return 3;\n" + 
-		"				case 2955 :\n" + 
-		"					return 3;\n" + 
-		"				case 2956 :\n" + 
-		"					return 3;\n" + 
-		"				case 2957 :\n" + 
-		"					return 3;\n" + 
-		"				case 2958 :\n" + 
-		"					return 3;\n" + 
-		"				case 2959 :\n" + 
-		"					return 3;\n" + 
-		"				case 2960 :\n" + 
-		"					return 3;\n" + 
-		"				case 2961 :\n" + 
-		"					return 3;\n" + 
-		"				case 2962 :\n" + 
-		"					return 3;\n" + 
-		"				case 2963 :\n" + 
-		"					return 3;\n" + 
-		"				case 2964 :\n" + 
-		"					return 3;\n" + 
-		"				case 2965 :\n" + 
-		"					return 3;\n" + 
-		"				case 2966 :\n" + 
-		"					return 3;\n" + 
-		"				case 2967 :\n" + 
-		"					return 3;\n" + 
-		"				case 2968 :\n" + 
-		"					return 3;\n" + 
-		"				case 2969 :\n" + 
-		"					return 3;\n" + 
-		"				case 2970 :\n" + 
-		"					return 3;\n" + 
-		"				case 2971 :\n" + 
-		"					return 3;\n" + 
-		"				case 2972 :\n" + 
-		"					return 3;\n" + 
-		"				case 2973 :\n" + 
-		"					return 3;\n" + 
-		"				case 2974 :\n" + 
-		"					return 3;\n" + 
-		"				case 2975 :\n" + 
-		"					return 3;\n" + 
-		"				case 2976 :\n" + 
-		"					return 3;\n" + 
-		"				case 2977 :\n" + 
-		"					return 3;\n" + 
-		"				case 2978 :\n" + 
-		"					return 3;\n" + 
-		"				case 2979 :\n" + 
-		"					return 3;\n" + 
-		"				case 2980 :\n" + 
-		"					return 3;\n" + 
-		"				case 2981 :\n" + 
-		"					return 3;\n" + 
-		"				case 2982 :\n" + 
-		"					return 3;\n" + 
-		"				case 2983 :\n" + 
-		"					return 3;\n" + 
-		"				case 2984 :\n" + 
-		"					return 3;\n" + 
-		"				case 2985 :\n" + 
-		"					return 3;\n" + 
-		"				case 2986 :\n" + 
-		"					return 3;\n" + 
-		"				case 2987 :\n" + 
-		"					return 3;\n" + 
-		"				case 2988 :\n" + 
-		"					return 3;\n" + 
-		"				case 2989 :\n" + 
-		"					return 3;\n" + 
-		"				case 2990 :\n" + 
-		"					return 3;\n" + 
-		"				case 2991 :\n" + 
-		"					return 3;\n" + 
-		"				case 2992 :\n" + 
-		"					return 3;\n" + 
-		"				case 2993 :\n" + 
-		"					return 3;\n" + 
-		"				case 2994 :\n" + 
-		"					return 3;\n" + 
-		"				case 2995 :\n" + 
-		"					return 3;\n" + 
-		"				case 2996 :\n" + 
-		"					return 3;\n" + 
-		"				case 2997 :\n" + 
-		"					return 3;\n" + 
-		"				case 2998 :\n" + 
-		"					return 3;\n" + 
-		"				case 2999 :\n" + 
-		"					return 3;\n" + 
-		"				case 3000 :\n" + 
-		"					return 3;\n" + 
-		"				case 3001 :\n" + 
-		"					return 3;\n" + 
-		"				case 3002 :\n" + 
-		"					return 3;\n" + 
-		"				case 3003 :\n" + 
-		"					return 3;\n" + 
-		"				case 3004 :\n" + 
-		"					return 3;\n" + 
-		"				case 3005 :\n" + 
-		"					return 3;\n" + 
-		"				case 3006 :\n" + 
-		"					return 3;\n" + 
-		"				case 3007 :\n" + 
-		"					return 3;\n" + 
-		"				case 3008 :\n" + 
-		"					return 3;\n" + 
-		"				case 3009 :\n" + 
-		"					return 3;\n" + 
-		"				case 3010 :\n" + 
-		"					return 3;\n" + 
-		"				case 3011 :\n" + 
-		"					return 3;\n" + 
-		"				case 3012 :\n" + 
-		"					return 3;\n" + 
-		"				case 3013 :\n" + 
-		"					return 3;\n" + 
-		"				case 3014 :\n" + 
-		"					return 3;\n" + 
-		"				case 3015 :\n" + 
-		"					return 3;\n" + 
-		"				case 3016 :\n" + 
-		"					return 3;\n" + 
-		"				case 3017 :\n" + 
-		"					return 3;\n" + 
-		"				case 3018 :\n" + 
-		"					return 3;\n" + 
-		"				case 3019 :\n" + 
-		"					return 3;\n" + 
-		"				case 3020 :\n" + 
-		"					return 3;\n" + 
-		"				case 3021 :\n" + 
-		"					return 3;\n" + 
-		"				case 3022 :\n" + 
-		"					return 3;\n" + 
-		"				case 3023 :\n" + 
-		"					return 3;\n" + 
-		"				case 3024 :\n" + 
-		"					return 3;\n" + 
-		"				case 3025 :\n" + 
-		"					return 3;\n" + 
-		"				case 3026 :\n" + 
-		"					return 3;\n" + 
-		"				case 3027 :\n" + 
-		"					return 3;\n" + 
-		"				case 3028 :\n" + 
-		"					return 3;\n" + 
-		"				case 3029 :\n" + 
-		"					return 3;\n" + 
-		"				case 3030 :\n" + 
-		"					return 3;\n" + 
-		"				case 3031 :\n" + 
-		"					return 3;\n" + 
-		"				case 3032 :\n" + 
-		"					return 3;\n" + 
-		"				case 3033 :\n" + 
-		"					return 3;\n" + 
-		"				case 3034 :\n" + 
-		"					return 3;\n" + 
-		"				case 3035 :\n" + 
-		"					return 3;\n" + 
-		"				case 3036 :\n" + 
-		"					return 3;\n" + 
-		"				case 3037 :\n" + 
-		"					return 3;\n" + 
-		"				case 3038 :\n" + 
-		"					return 3;\n" + 
-		"				case 3039 :\n" + 
-		"					return 3;\n" + 
-		"				case 3040 :\n" + 
-		"					return 3;\n" + 
-		"				case 3041 :\n" + 
-		"					return 3;\n" + 
-		"				case 3042 :\n" + 
-		"					return 3;\n" + 
-		"				case 3043 :\n" + 
-		"					return 3;\n" + 
-		"				case 3044 :\n" + 
-		"					return 3;\n" + 
-		"				case 3045 :\n" + 
-		"					return 3;\n" + 
-		"				case 3046 :\n" + 
-		"					return 3;\n" + 
-		"				case 3047 :\n" + 
-		"					return 3;\n" + 
-		"				case 3048 :\n" + 
-		"					return 3;\n" + 
-		"				case 3049 :\n" + 
-		"					return 3;\n" + 
-		"				case 3050 :\n" + 
-		"					return 3;\n" + 
-		"				case 3051 :\n" + 
-		"					return 3;\n" + 
-		"				case 3052 :\n" + 
-		"					return 3;\n" + 
-		"				case 3053 :\n" + 
-		"					return 3;\n" + 
-		"				case 3054 :\n" + 
-		"					return 3;\n" + 
-		"				case 3055 :\n" + 
-		"					return 3;\n" + 
-		"				case 3056 :\n" + 
-		"					return 3;\n" + 
-		"				case 3057 :\n" + 
-		"					return 3;\n" + 
-		"				case 3058 :\n" + 
-		"					return 3;\n" + 
-		"				case 3059 :\n" + 
-		"					return 3;\n" + 
-		"				case 3060 :\n" + 
-		"					return 3;\n" + 
-		"				case 3061 :\n" + 
-		"					return 3;\n" + 
-		"				case 3062 :\n" + 
-		"					return 3;\n" + 
-		"				case 3063 :\n" + 
-		"					return 3;\n" + 
-		"				case 3064 :\n" + 
-		"					return 3;\n" + 
-		"				case 3065 :\n" + 
-		"					return 3;\n" + 
-		"				case 3066 :\n" + 
-		"					return 3;\n" + 
-		"				case 3067 :\n" + 
-		"					return 3;\n" + 
-		"				case 3068 :\n" + 
-		"					return 3;\n" + 
-		"				case 3069 :\n" + 
-		"					return 3;\n" + 
-		"				case 3070 :\n" + 
-		"					return 3;\n" + 
-		"				case 3071 :\n" + 
-		"					return 3;\n" + 
-		"				case 3072 :\n" + 
-		"					return 3;\n" + 
-		"				case 3073 :\n" + 
-		"					return 3;\n" + 
-		"				case 3074 :\n" + 
-		"					return 3;\n" + 
-		"				case 3075 :\n" + 
-		"					return 3;\n" + 
-		"				case 3076 :\n" + 
-		"					return 3;\n" + 
-		"				case 3077 :\n" + 
-		"					return 3;\n" + 
-		"				case 3078 :\n" + 
-		"					return 3;\n" + 
-		"				case 3079 :\n" + 
-		"					return 3;\n" + 
-		"				case 3080 :\n" + 
-		"					return 3;\n" + 
-		"				case 3081 :\n" + 
-		"					return 3;\n" + 
-		"				case 3082 :\n" + 
-		"					return 3;\n" + 
-		"				case 3083 :\n" + 
-		"					return 3;\n" + 
-		"				case 3084 :\n" + 
-		"					return 3;\n" + 
-		"				case 3085 :\n" + 
-		"					return 3;\n" + 
-		"				case 3086 :\n" + 
-		"					return 3;\n" + 
-		"				case 3087 :\n" + 
-		"					return 3;\n" + 
-		"				case 3088 :\n" + 
-		"					return 3;\n" + 
-		"				case 3089 :\n" + 
-		"					return 3;\n" + 
-		"				case 3090 :\n" + 
-		"					return 3;\n" + 
-		"				case 3091 :\n" + 
-		"					return 3;\n" + 
-		"				case 3092 :\n" + 
-		"					return 3;\n" + 
-		"				case 3093 :\n" + 
-		"					return 3;\n" + 
-		"				case 3094 :\n" + 
-		"					return 3;\n" + 
-		"				case 3095 :\n" + 
-		"					return 3;\n" + 
-		"				case 3096 :\n" + 
-		"					return 3;\n" + 
-		"				case 3097 :\n" + 
-		"					return 3;\n" + 
-		"				case 3098 :\n" + 
-		"					return 3;\n" + 
-		"				case 3099 :\n" + 
-		"					return 3;\n" + 
-		"				case 3100 :\n" + 
-		"					return 3;\n" + 
-		"				case 3101 :\n" + 
-		"					return 3;\n" + 
-		"				case 3102 :\n" + 
-		"					return 3;\n" + 
-		"				case 3103 :\n" + 
-		"					return 3;\n" + 
-		"				case 3104 :\n" + 
-		"					return 3;\n" + 
-		"				case 3105 :\n" + 
-		"					return 3;\n" + 
-		"				case 3106 :\n" + 
-		"					return 3;\n" + 
-		"				case 3107 :\n" + 
-		"					return 3;\n" + 
-		"				case 3108 :\n" + 
-		"					return 3;\n" + 
-		"				case 3109 :\n" + 
-		"					return 3;\n" + 
-		"				case 3110 :\n" + 
-		"					return 3;\n" + 
-		"				case 3111 :\n" + 
-		"					return 3;\n" + 
-		"				case 3112 :\n" + 
-		"					return 3;\n" + 
-		"				case 3113 :\n" + 
-		"					return 3;\n" + 
-		"				case 3114 :\n" + 
-		"					return 3;\n" + 
-		"				case 3115 :\n" + 
-		"					return 3;\n" + 
-		"				case 3116 :\n" + 
-		"					return 3;\n" + 
-		"				case 3117 :\n" + 
-		"					return 3;\n" + 
-		"				case 3118 :\n" + 
-		"					return 3;\n" + 
-		"				case 3119 :\n" + 
-		"					return 3;\n" + 
-		"				case 3120 :\n" + 
-		"					return 3;\n" + 
-		"				case 3121 :\n" + 
-		"					return 3;\n" + 
-		"				case 3122 :\n" + 
-		"					return 3;\n" + 
-		"				case 3123 :\n" + 
-		"					return 3;\n" + 
-		"				case 3124 :\n" + 
-		"					return 3;\n" + 
-		"				case 3125 :\n" + 
-		"					return 3;\n" + 
-		"				case 3126 :\n" + 
-		"					return 3;\n" + 
-		"				case 3127 :\n" + 
-		"					return 3;\n" + 
-		"				case 3128 :\n" + 
-		"					return 3;\n" + 
-		"				case 3129 :\n" + 
-		"					return 3;\n" + 
-		"				case 3130 :\n" + 
-		"					return 3;\n" + 
-		"				case 3131 :\n" + 
-		"					return 3;\n" + 
-		"				case 3132 :\n" + 
-		"					return 3;\n" + 
-		"				case 3133 :\n" + 
-		"					return 3;\n" + 
-		"				case 3134 :\n" + 
-		"					return 3;\n" + 
-		"				case 3135 :\n" + 
-		"					return 3;\n" + 
-		"				case 3136 :\n" + 
-		"					return 3;\n" + 
-		"				case 3137 :\n" + 
-		"					return 3;\n" + 
-		"				case 3138 :\n" + 
-		"					return 3;\n" + 
-		"				case 3139 :\n" + 
-		"					return 3;\n" + 
-		"				case 3140 :\n" + 
-		"					return 3;\n" + 
-		"				case 3141 :\n" + 
-		"					return 3;\n" + 
-		"				case 3142 :\n" + 
-		"					return 3;\n" + 
-		"				case 3143 :\n" + 
-		"					return 3;\n" + 
-		"				case 3144 :\n" + 
-		"					return 3;\n" + 
-		"				case 3145 :\n" + 
-		"					return 3;\n" + 
-		"				case 3146 :\n" + 
-		"					return 3;\n" + 
-		"				case 3147 :\n" + 
-		"					return 3;\n" + 
-		"				case 3148 :\n" + 
-		"					return 3;\n" + 
-		"				case 3149 :\n" + 
-		"					return 3;\n" + 
-		"				case 3150 :\n" + 
-		"					return 3;\n" + 
-		"				case 3151 :\n" + 
-		"					return 3;\n" + 
-		"				case 3152 :\n" + 
-		"					return 3;\n" + 
-		"				case 3153 :\n" + 
-		"					return 3;\n" + 
-		"				case 3154 :\n" + 
-		"					return 3;\n" + 
-		"				case 3155 :\n" + 
-		"					return 3;\n" + 
-		"				case 3156 :\n" + 
-		"					return 3;\n" + 
-		"				case 3157 :\n" + 
-		"					return 3;\n" + 
-		"				case 3158 :\n" + 
-		"					return 3;\n" + 
-		"				case 3159 :\n" + 
-		"					return 3;\n" + 
-		"				case 3160 :\n" + 
-		"					return 3;\n" + 
-		"				case 3161 :\n" + 
-		"					return 3;\n" + 
-		"				case 3162 :\n" + 
-		"					return 3;\n" + 
-		"				case 3163 :\n" + 
-		"					return 3;\n" + 
-		"				case 3164 :\n" + 
-		"					return 3;\n" + 
-		"				case 3165 :\n" + 
-		"					return 3;\n" + 
-		"				case 3166 :\n" + 
-		"					return 3;\n" + 
-		"				case 3167 :\n" + 
-		"					return 3;\n" + 
-		"				case 3168 :\n" + 
-		"					return 3;\n" + 
-		"				case 3169 :\n" + 
-		"					return 3;\n" + 
-		"				case 3170 :\n" + 
-		"					return 3;\n" + 
-		"				case 3171 :\n" + 
-		"					return 3;\n" + 
-		"				case 3172 :\n" + 
-		"					return 3;\n" + 
-		"				case 3173 :\n" + 
-		"					return 3;\n" + 
-		"				case 3174 :\n" + 
-		"					return 3;\n" + 
-		"				case 3175 :\n" + 
-		"					return 3;\n" + 
-		"				case 3176 :\n" + 
-		"					return 3;\n" + 
-		"				case 3177 :\n" + 
-		"					return 3;\n" + 
-		"				case 3178 :\n" + 
-		"					return 3;\n" + 
-		"				case 3179 :\n" + 
-		"					return 3;\n" + 
-		"				case 3180 :\n" + 
-		"					return 3;\n" + 
-		"				case 3181 :\n" + 
-		"					return 3;\n" + 
-		"				case 3182 :\n" + 
-		"					return 3;\n" + 
-		"				case 3183 :\n" + 
-		"					return 3;\n" + 
-		"				case 3184 :\n" + 
-		"					return 3;\n" + 
-		"				case 3185 :\n" + 
-		"					return 3;\n" + 
-		"				case 3186 :\n" + 
-		"					return 3;\n" + 
-		"				case 3187 :\n" + 
-		"					return 3;\n" + 
-		"				case 3188 :\n" + 
-		"					return 3;\n" + 
-		"				case 3189 :\n" + 
-		"					return 3;\n" + 
-		"				case 3190 :\n" + 
-		"					return 3;\n" + 
-		"				case 3191 :\n" + 
-		"					return 3;\n" + 
-		"				case 3192 :\n" + 
-		"					return 3;\n" + 
-		"				case 3193 :\n" + 
-		"					return 3;\n" + 
-		"				case 3194 :\n" + 
-		"					return 3;\n" + 
-		"				case 3195 :\n" + 
-		"					return 3;\n" + 
-		"				case 3196 :\n" + 
-		"					return 3;\n" + 
-		"				case 3197 :\n" + 
-		"					return 3;\n" + 
-		"				case 3198 :\n" + 
-		"					return 3;\n" + 
-		"				case 3199 :\n" + 
-		"					return 3;\n" + 
-		"				case 3200 :\n" + 
-		"					return 3;\n" + 
-		"				case 3201 :\n" + 
-		"					return 3;\n" + 
-		"				case 3202 :\n" + 
-		"					return 3;\n" + 
-		"				case 3203 :\n" + 
-		"					return 3;\n" + 
-		"				case 3204 :\n" + 
-		"					return 3;\n" + 
-		"				case 3205 :\n" + 
-		"					return 3;\n" + 
-		"				case 3206 :\n" + 
-		"					return 3;\n" + 
-		"				case 3207 :\n" + 
-		"					return 3;\n" + 
-		"				case 3208 :\n" + 
-		"					return 3;\n" + 
-		"				case 3209 :\n" + 
-		"					return 3;\n" + 
-		"				case 3210 :\n" + 
-		"					return 3;\n" + 
-		"				case 3211 :\n" + 
-		"					return 3;\n" + 
-		"				case 3212 :\n" + 
-		"					return 3;\n" + 
-		"				case 3213 :\n" + 
-		"					return 3;\n" + 
-		"				case 3214 :\n" + 
-		"					return 3;\n" + 
-		"				case 3215 :\n" + 
-		"					return 3;\n" + 
-		"				case 3216 :\n" + 
-		"					return 3;\n" + 
-		"				case 3217 :\n" + 
-		"					return 3;\n" + 
-		"				case 3218 :\n" + 
-		"					return 3;\n" + 
-		"				case 3219 :\n" + 
-		"					return 3;\n" + 
-		"				case 3220 :\n" + 
-		"					return 3;\n" + 
-		"				case 3221 :\n" + 
-		"					return 3;\n" + 
-		"				case 3222 :\n" + 
-		"					return 3;\n" + 
-		"				case 3223 :\n" + 
-		"					return 3;\n" + 
-		"				case 3224 :\n" + 
-		"					return 3;\n" + 
-		"				case 3225 :\n" + 
-		"					return 3;\n" + 
-		"				case 3226 :\n" + 
-		"					return 3;\n" + 
-		"				case 3227 :\n" + 
-		"					return 3;\n" + 
-		"				case 3228 :\n" + 
-		"					return 3;\n" + 
-		"				case 3229 :\n" + 
-		"					return 3;\n" + 
-		"				case 3230 :\n" + 
-		"					return 3;\n" + 
-		"				case 3231 :\n" + 
-		"					return 3;\n" + 
-		"				case 3232 :\n" + 
-		"					return 3;\n" + 
-		"				case 3233 :\n" + 
-		"					return 3;\n" + 
-		"				case 3234 :\n" + 
-		"					return 3;\n" + 
-		"				case 3235 :\n" + 
-		"					return 3;\n" + 
-		"				case 3236 :\n" + 
-		"					return 3;\n" + 
-		"				case 3237 :\n" + 
-		"					return 3;\n" + 
-		"				case 3238 :\n" + 
-		"					return 3;\n" + 
-		"				case 3239 :\n" + 
-		"					return 3;\n" + 
-		"				case 3240 :\n" + 
-		"					return 3;\n" + 
-		"				case 3241 :\n" + 
-		"					return 3;\n" + 
-		"				case 3242 :\n" + 
-		"					return 3;\n" + 
-		"				case 3243 :\n" + 
-		"					return 3;\n" + 
-		"				case 3244 :\n" + 
-		"					return 3;\n" + 
-		"				case 3245 :\n" + 
-		"					return 3;\n" + 
-		"				case 3246 :\n" + 
-		"					return 3;\n" + 
-		"				case 3247 :\n" + 
-		"					return 3;\n" + 
-		"				case 3248 :\n" + 
-		"					return 3;\n" + 
-		"				case 3249 :\n" + 
-		"					return 3;\n" + 
-		"				case 3250 :\n" + 
-		"					return 3;\n" + 
-		"				case 3251 :\n" + 
-		"					return 3;\n" + 
-		"				case 3252 :\n" + 
-		"					return 3;\n" + 
-		"				case 3253 :\n" + 
-		"					return 3;\n" + 
-		"				case 3254 :\n" + 
-		"					return 3;\n" + 
-		"				case 3255 :\n" + 
-		"					return 3;\n" + 
-		"				case 3256 :\n" + 
-		"					return 3;\n" + 
-		"				case 3257 :\n" + 
-		"					return 3;\n" + 
-		"				case 3258 :\n" + 
-		"					return 3;\n" + 
-		"				case 3259 :\n" + 
-		"					return 3;\n" + 
-		"				case 3260 :\n" + 
-		"					return 3;\n" + 
-		"				case 3261 :\n" + 
-		"					return 3;\n" + 
-		"				case 3262 :\n" + 
-		"					return 3;\n" + 
-		"				case 3263 :\n" + 
-		"					return 3;\n" + 
-		"				case 3264 :\n" + 
-		"					return 3;\n" + 
-		"				case 3265 :\n" + 
-		"					return 3;\n" + 
-		"				case 3266 :\n" + 
-		"					return 3;\n" + 
-		"				case 3267 :\n" + 
-		"					return 3;\n" + 
-		"				case 3268 :\n" + 
-		"					return 3;\n" + 
-		"				case 3269 :\n" + 
-		"					return 3;\n" + 
-		"				case 3270 :\n" + 
-		"					return 3;\n" + 
-		"				case 3271 :\n" + 
-		"					return 3;\n" + 
-		"				case 3272 :\n" + 
-		"					return 3;\n" + 
-		"				case 3273 :\n" + 
-		"					return 3;\n" + 
-		"				case 3274 :\n" + 
-		"					return 3;\n" + 
-		"				case 3275 :\n" + 
-		"					return 3;\n" + 
-		"				case 3276 :\n" + 
-		"					return 3;\n" + 
-		"				case 3277 :\n" + 
-		"					return 3;\n" + 
-		"				case 3278 :\n" + 
-		"					return 3;\n" + 
-		"				case 3279 :\n" + 
-		"					return 3;\n" + 
-		"				case 3280 :\n" + 
-		"					return 3;\n" + 
-		"				case 3281 :\n" + 
-		"					return 3;\n" + 
-		"				case 3282 :\n" + 
-		"					return 3;\n" + 
-		"				case 3283 :\n" + 
-		"					return 3;\n" + 
-		"				case 3284 :\n" + 
-		"					return 3;\n" + 
-		"				case 3285 :\n" + 
-		"					return 3;\n" + 
-		"				case 3286 :\n" + 
-		"					return 3;\n" + 
-		"				case 3287 :\n" + 
-		"					return 3;\n" + 
-		"				case 3288 :\n" + 
-		"					return 3;\n" + 
-		"				case 3289 :\n" + 
-		"					return 3;\n" + 
-		"				case 3290 :\n" + 
-		"					return 3;\n" + 
-		"				case 3291 :\n" + 
-		"					return 3;\n" + 
-		"				case 3292 :\n" + 
-		"					return 3;\n" + 
-		"				case 3293 :\n" + 
-		"					return 3;\n" + 
-		"				case 3294 :\n" + 
-		"					return 3;\n" + 
-		"				case 3295 :\n" + 
-		"					return 3;\n" + 
-		"				case 3296 :\n" + 
-		"					return 3;\n" + 
-		"				case 3297 :\n" + 
-		"					return 3;\n" + 
-		"				case 3298 :\n" + 
-		"					return 3;\n" + 
-		"				case 3299 :\n" + 
-		"					return 3;\n" + 
-		"				case 3300 :\n" + 
-		"					return 3;\n" + 
-		"				case 3301 :\n" + 
-		"					return 3;\n" + 
-		"				case 3302 :\n" + 
-		"					return 3;\n" + 
-		"				case 3303 :\n" + 
-		"					return 3;\n" + 
-		"				case 3304 :\n" + 
-		"					return 3;\n" + 
-		"				case 3305 :\n" + 
-		"					return 3;\n" + 
-		"				case 3306 :\n" + 
-		"					return 3;\n" + 
-		"				case 3307 :\n" + 
-		"					return 3;\n" + 
-		"				case 3308 :\n" + 
-		"					return 3;\n" + 
-		"				case 3309 :\n" + 
-		"					return 3;\n" + 
-		"				case 3310 :\n" + 
-		"					return 3;\n" + 
-		"				case 3311 :\n" + 
-		"					return 3;\n" + 
-		"				case 3312 :\n" + 
-		"					return 3;\n" + 
-		"				case 3313 :\n" + 
-		"					return 3;\n" + 
-		"				case 3314 :\n" + 
-		"					return 3;\n" + 
-		"				case 3315 :\n" + 
-		"					return 3;\n" + 
-		"				case 3316 :\n" + 
-		"					return 3;\n" + 
-		"				case 3317 :\n" + 
-		"					return 3;\n" + 
-		"				case 3318 :\n" + 
-		"					return 3;\n" + 
-		"				case 3319 :\n" + 
-		"					return 3;\n" + 
-		"				case 3320 :\n" + 
-		"					return 3;\n" + 
-		"				case 3321 :\n" + 
-		"					return 3;\n" + 
-		"				case 3322 :\n" + 
-		"					return 3;\n" + 
-		"				case 3323 :\n" + 
-		"					return 3;\n" + 
-		"				case 3324 :\n" + 
-		"					return 3;\n" + 
-		"				case 3325 :\n" + 
-		"					return 3;\n" + 
-		"				case 3326 :\n" + 
-		"					return 3;\n" + 
-		"				case 3327 :\n" + 
-		"					return 3;\n" + 
-		"				case 3328 :\n" + 
-		"					return 3;\n" + 
-		"				case 3329 :\n" + 
-		"					return 3;\n" + 
-		"				case 3330 :\n" + 
-		"					return 3;\n" + 
-		"				case 3331 :\n" + 
-		"					return 3;\n" + 
-		"				case 3332 :\n" + 
-		"					return 3;\n" + 
-		"				case 3333 :\n" + 
-		"					return 3;\n" + 
-		"				case 3334 :\n" + 
-		"					return 3;\n" + 
-		"				case 3335 :\n" + 
-		"					return 3;\n" + 
-		"				case 3336 :\n" + 
-		"					return 3;\n" + 
-		"				case 3337 :\n" + 
-		"					return 3;\n" + 
-		"				case 3338 :\n" + 
-		"					return 3;\n" + 
-		"				case 3339 :\n" + 
-		"					return 3;\n" + 
-		"				case 3340 :\n" + 
-		"					return 3;\n" + 
-		"				case 3341 :\n" + 
-		"					return 3;\n" + 
-		"				case 3342 :\n" + 
-		"					return 3;\n" + 
-		"				case 3343 :\n" + 
-		"					return 3;\n" + 
-		"				case 3344 :\n" + 
-		"					return 3;\n" + 
-		"				case 3345 :\n" + 
-		"					return 3;\n" + 
-		"				case 3346 :\n" + 
-		"					return 3;\n" + 
-		"				case 3347 :\n" + 
-		"					return 3;\n" + 
-		"				case 3348 :\n" + 
-		"					return 3;\n" + 
-		"				case 3349 :\n" + 
-		"					return 3;\n" + 
-		"				case 3350 :\n" + 
-		"					return 3;\n" + 
-		"				case 3351 :\n" + 
-		"					return 3;\n" + 
-		"				case 3352 :\n" + 
-		"					return 3;\n" + 
-		"				case 3353 :\n" + 
-		"					return 3;\n" + 
-		"				case 3354 :\n" + 
-		"					return 3;\n" + 
-		"				case 3355 :\n" + 
-		"					return 3;\n" + 
-		"				case 3356 :\n" + 
-		"					return 3;\n" + 
-		"				case 3357 :\n" + 
-		"					return 3;\n" + 
-		"				case 3358 :\n" + 
-		"					return 3;\n" + 
-		"				case 3359 :\n" + 
-		"					return 3;\n" + 
-		"				case 3360 :\n" + 
-		"					return 3;\n" + 
-		"				case 3361 :\n" + 
-		"					return 3;\n" + 
-		"				case 3362 :\n" + 
-		"					return 3;\n" + 
-		"				case 3363 :\n" + 
-		"					return 3;\n" + 
-		"				case 3364 :\n" + 
-		"					return 3;\n" + 
-		"				case 3365 :\n" + 
-		"					return 3;\n" + 
-		"				case 3366 :\n" + 
-		"					return 3;\n" + 
-		"				case 3367 :\n" + 
-		"					return 3;\n" + 
-		"				case 3368 :\n" + 
-		"					return 3;\n" + 
-		"				case 3369 :\n" + 
-		"					return 3;\n" + 
-		"				case 3370 :\n" + 
-		"					return 3;\n" + 
-		"				case 3371 :\n" + 
-		"					return 3;\n" + 
-		"				case 3372 :\n" + 
-		"					return 3;\n" + 
-		"				case 3373 :\n" + 
-		"					return 3;\n" + 
-		"				case 3374 :\n" + 
-		"					return 3;\n" + 
-		"				case 3375 :\n" + 
-		"					return 3;\n" + 
-		"				case 3376 :\n" + 
-		"					return 3;\n" + 
-		"				case 3377 :\n" + 
-		"					return 3;\n" + 
-		"				case 3378 :\n" + 
-		"					return 3;\n" + 
-		"				case 3379 :\n" + 
-		"					return 3;\n" + 
-		"				case 3380 :\n" + 
-		"					return 3;\n" + 
-		"				case 3381 :\n" + 
-		"					return 3;\n" + 
-		"				case 3382 :\n" + 
-		"					return 3;\n" + 
-		"				case 3383 :\n" + 
-		"					return 3;\n" + 
-		"				case 3384 :\n" + 
-		"					return 3;\n" + 
-		"				case 3385 :\n" + 
-		"					return 3;\n" + 
-		"				case 3386 :\n" + 
-		"					return 3;\n" + 
-		"				case 3387 :\n" + 
-		"					return 3;\n" + 
-		"				case 3388 :\n" + 
-		"					return 3;\n" + 
-		"				case 3389 :\n" + 
-		"					return 3;\n" + 
-		"				case 3390 :\n" + 
-		"					return 3;\n" + 
-		"				case 3391 :\n" + 
-		"					return 3;\n" + 
-		"				case 3392 :\n" + 
-		"					return 3;\n" + 
-		"				case 3393 :\n" + 
-		"					return 3;\n" + 
-		"				case 3394 :\n" + 
-		"					return 3;\n" + 
-		"				case 3395 :\n" + 
-		"					return 3;\n" + 
-		"				case 3396 :\n" + 
-		"					return 3;\n" + 
-		"				case 3397 :\n" + 
-		"					return 3;\n" + 
-		"				case 3398 :\n" + 
-		"					return 3;\n" + 
-		"				case 3399 :\n" + 
-		"					return 3;\n" + 
-		"				case 3400 :\n" + 
-		"					return 3;\n" + 
-		"				case 3401 :\n" + 
-		"					return 3;\n" + 
-		"				case 3402 :\n" + 
-		"					return 3;\n" + 
-		"				case 3403 :\n" + 
-		"					return 3;\n" + 
-		"				case 3404 :\n" + 
-		"					return 3;\n" + 
-		"				case 3405 :\n" + 
-		"					return 3;\n" + 
-		"				case 3406 :\n" + 
-		"					return 3;\n" + 
-		"				case 3407 :\n" + 
-		"					return 3;\n" + 
-		"				case 3408 :\n" + 
-		"					return 3;\n" + 
-		"				case 3409 :\n" + 
-		"					return 3;\n" + 
-		"				case 3410 :\n" + 
-		"					return 3;\n" + 
-		"				case 3411 :\n" + 
-		"					return 3;\n" + 
-		"				case 3412 :\n" + 
-		"					return 3;\n" + 
-		"				case 3413 :\n" + 
-		"					return 3;\n" + 
-		"				case 3414 :\n" + 
-		"					return 3;\n" + 
-		"				case 3415 :\n" + 
-		"					return 3;\n" + 
-		"				case 3416 :\n" + 
-		"					return 3;\n" + 
-		"				case 3417 :\n" + 
-		"					return 3;\n" + 
-		"				case 3418 :\n" + 
-		"					return 3;\n" + 
-		"				case 3419 :\n" + 
-		"					return 3;\n" + 
-		"				case 3420 :\n" + 
-		"					return 3;\n" + 
-		"				case 3421 :\n" + 
-		"					return 3;\n" + 
-		"				case 3422 :\n" + 
-		"					return 3;\n" + 
-		"				case 3423 :\n" + 
-		"					return 3;\n" + 
-		"				case 3424 :\n" + 
-		"					return 3;\n" + 
-		"				case 3425 :\n" + 
-		"					return 3;\n" + 
-		"				case 3426 :\n" + 
-		"					return 3;\n" + 
-		"				case 3427 :\n" + 
-		"					return 3;\n" + 
-		"				case 3428 :\n" + 
-		"					return 3;\n" + 
-		"				case 3429 :\n" + 
-		"					return 3;\n" + 
-		"				case 3430 :\n" + 
-		"					return 3;\n" + 
-		"				case 3431 :\n" + 
-		"					return 3;\n" + 
-		"				case 3432 :\n" + 
-		"					return 3;\n" + 
-		"				case 3433 :\n" + 
-		"					return 3;\n" + 
-		"				case 3434 :\n" + 
-		"					return 3;\n" + 
-		"				case 3435 :\n" + 
-		"					return 3;\n" + 
-		"				case 3436 :\n" + 
-		"					return 3;\n" + 
-		"				case 3437 :\n" + 
-		"					return 3;\n" + 
-		"				case 3438 :\n" + 
-		"					return 3;\n" + 
-		"				case 3439 :\n" + 
-		"					return 3;\n" + 
-		"				case 3440 :\n" + 
-		"					return 3;\n" + 
-		"				case 3441 :\n" + 
-		"					return 3;\n" + 
-		"				case 3442 :\n" + 
-		"					return 3;\n" + 
-		"				case 3443 :\n" + 
-		"					return 3;\n" + 
-		"				case 3444 :\n" + 
-		"					return 3;\n" + 
-		"				case 3445 :\n" + 
-		"					return 3;\n" + 
-		"				case 3446 :\n" + 
-		"					return 3;\n" + 
-		"				case 3447 :\n" + 
-		"					return 3;\n" + 
-		"				case 3448 :\n" + 
-		"					return 3;\n" + 
-		"				case 3449 :\n" + 
-		"					return 3;\n" + 
-		"				case 3450 :\n" + 
-		"					return 3;\n" + 
-		"				case 3451 :\n" + 
-		"					return 3;\n" + 
-		"				case 3452 :\n" + 
-		"					return 3;\n" + 
-		"				case 3453 :\n" + 
-		"					return 3;\n" + 
-		"				case 3454 :\n" + 
-		"					return 3;\n" + 
-		"				case 3455 :\n" + 
-		"					return 3;\n" + 
-		"				case 3456 :\n" + 
-		"					return 3;\n" + 
-		"				case 3457 :\n" + 
-		"					return 3;\n" + 
-		"				case 3458 :\n" + 
-		"					return 3;\n" + 
-		"				case 3459 :\n" + 
-		"					return 3;\n" + 
-		"				case 3460 :\n" + 
-		"					return 3;\n" + 
-		"				case 3461 :\n" + 
-		"					return 3;\n" + 
-		"				case 3462 :\n" + 
-		"					return 3;\n" + 
-		"				case 3463 :\n" + 
-		"					return 3;\n" + 
-		"				case 3464 :\n" + 
-		"					return 3;\n" + 
-		"				case 3465 :\n" + 
-		"					return 3;\n" + 
-		"				case 3466 :\n" + 
-		"					return 3;\n" + 
-		"				case 3467 :\n" + 
-		"					return 3;\n" + 
-		"				case 3468 :\n" + 
-		"					return 3;\n" + 
-		"				case 3469 :\n" + 
-		"					return 3;\n" + 
-		"				case 3470 :\n" + 
-		"					return 3;\n" + 
-		"				case 3471 :\n" + 
-		"					return 3;\n" + 
-		"				case 3472 :\n" + 
-		"					return 3;\n" + 
-		"				case 3473 :\n" + 
-		"					return 3;\n" + 
-		"				case 3474 :\n" + 
-		"					return 3;\n" + 
-		"				case 3475 :\n" + 
-		"					return 3;\n" + 
-		"				case 3476 :\n" + 
-		"					return 3;\n" + 
-		"				case 3477 :\n" + 
-		"					return 3;\n" + 
-		"				case 3478 :\n" + 
-		"					return 3;\n" + 
-		"				case 3479 :\n" + 
-		"					return 3;\n" + 
-		"				case 3480 :\n" + 
-		"					return 3;\n" + 
-		"				case 3481 :\n" + 
-		"					return 3;\n" + 
-		"				case 3482 :\n" + 
-		"					return 3;\n" + 
-		"				case 3483 :\n" + 
-		"					return 3;\n" + 
-		"				case 3484 :\n" + 
-		"					return 3;\n" + 
-		"				case 3485 :\n" + 
-		"					return 3;\n" + 
-		"				case 3486 :\n" + 
-		"					return 3;\n" + 
-		"				case 3487 :\n" + 
-		"					return 3;\n" + 
-		"				case 3488 :\n" + 
-		"					return 3;\n" + 
-		"				case 3489 :\n" + 
-		"					return 3;\n" + 
-		"				case 3490 :\n" + 
-		"					return 3;\n" + 
-		"				case 3491 :\n" + 
-		"					return 3;\n" + 
-		"				case 3492 :\n" + 
-		"					return 3;\n" + 
-		"				case 3493 :\n" + 
-		"					return 3;\n" + 
-		"				case 3494 :\n" + 
-		"					return 3;\n" + 
-		"				case 3495 :\n" + 
-		"					return 3;\n" + 
-		"				case 3496 :\n" + 
-		"					return 3;\n" + 
-		"				case 3497 :\n" + 
-		"					return 3;\n" + 
-		"				case 3498 :\n" + 
-		"					return 3;\n" + 
-		"				case 3499 :\n" + 
-		"					return 3;\n" + 
-		"				case 3500 :\n" + 
-		"					return 3;\n" + 
-		"				case 3501 :\n" + 
-		"					return 3;\n" + 
-		"				case 3502 :\n" + 
-		"					return 3;\n" + 
-		"				case 3503 :\n" + 
-		"					return 3;\n" + 
-		"				case 3504 :\n" + 
-		"					return 3;\n" + 
-		"				case 3505 :\n" + 
-		"					return 3;\n" + 
-		"				case 3506 :\n" + 
-		"					return 3;\n" + 
-		"				case 3507 :\n" + 
-		"					return 3;\n" + 
-		"				case 3508 :\n" + 
-		"					return 3;\n" + 
-		"				case 3509 :\n" + 
-		"					return 3;\n" + 
-		"				case 3510 :\n" + 
-		"					return 3;\n" + 
-		"				case 3511 :\n" + 
-		"					return 3;\n" + 
-		"				case 3512 :\n" + 
-		"					return 3;\n" + 
-		"				case 3513 :\n" + 
-		"					return 3;\n" + 
-		"				case 3514 :\n" + 
-		"					return 3;\n" + 
-		"				case 3515 :\n" + 
-		"					return 3;\n" + 
-		"				case 3516 :\n" + 
-		"					return 3;\n" + 
-		"				case 3517 :\n" + 
-		"					return 3;\n" + 
-		"				case 3518 :\n" + 
-		"					return 3;\n" + 
-		"				case 3519 :\n" + 
-		"					return 3;\n" + 
-		"				case 3520 :\n" + 
-		"					return 3;\n" + 
-		"				case 3521 :\n" + 
-		"					return 3;\n" + 
-		"				case 3522 :\n" + 
-		"					return 3;\n" + 
-		"				case 3523 :\n" + 
-		"					return 3;\n" + 
-		"				case 3524 :\n" + 
-		"					return 3;\n" + 
-		"				case 3525 :\n" + 
-		"					return 3;\n" + 
-		"				case 3526 :\n" + 
-		"					return 3;\n" + 
-		"				case 3527 :\n" + 
-		"					return 3;\n" + 
-		"				case 3528 :\n" + 
-		"					return 3;\n" + 
-		"				case 3529 :\n" + 
-		"					return 3;\n" + 
-		"				case 3530 :\n" + 
-		"					return 3;\n" + 
-		"				case 3531 :\n" + 
-		"					return 3;\n" + 
-		"				case 3532 :\n" + 
-		"					return 3;\n" + 
-		"				case 3533 :\n" + 
-		"					return 3;\n" + 
-		"				case 3534 :\n" + 
-		"					return 3;\n" + 
-		"				case 3535 :\n" + 
-		"					return 3;\n" + 
-		"				case 3536 :\n" + 
-		"					return 3;\n" + 
-		"				case 3537 :\n" + 
-		"					return 3;\n" + 
-		"				case 3538 :\n" + 
-		"					return 3;\n" + 
-		"				case 3539 :\n" + 
-		"					return 3;\n" + 
-		"				case 3540 :\n" + 
-		"					return 3;\n" + 
-		"				case 3541 :\n" + 
-		"					return 3;\n" + 
-		"				case 3542 :\n" + 
-		"					return 3;\n" + 
-		"				case 3543 :\n" + 
-		"					return 3;\n" + 
-		"				case 3544 :\n" + 
-		"					return 3;\n" + 
-		"				case 3545 :\n" + 
-		"					return 3;\n" + 
-		"				case 3546 :\n" + 
-		"					return 3;\n" + 
-		"				case 3547 :\n" + 
-		"					return 3;\n" + 
-		"				case 3548 :\n" + 
-		"					return 3;\n" + 
-		"				case 3549 :\n" + 
-		"					return 3;\n" + 
-		"				case 3550 :\n" + 
-		"					return 3;\n" + 
-		"				case 3551 :\n" + 
-		"					return 3;\n" + 
-		"				case 3552 :\n" + 
-		"					return 3;\n" + 
-		"				case 3553 :\n" + 
-		"					return 3;\n" + 
-		"				case 3554 :\n" + 
-		"					return 3;\n" + 
-		"				case 3555 :\n" + 
-		"					return 3;\n" + 
-		"				case 3556 :\n" + 
-		"					return 3;\n" + 
-		"				case 3557 :\n" + 
-		"					return 3;\n" + 
-		"				case 3558 :\n" + 
-		"					return 3;\n" + 
-		"				case 3559 :\n" + 
-		"					return 3;\n" + 
-		"				case 3560 :\n" + 
-		"					return 3;\n" + 
-		"				case 3561 :\n" + 
-		"					return 3;\n" + 
-		"				case 3562 :\n" + 
-		"					return 3;\n" + 
-		"				case 3563 :\n" + 
-		"					return 3;\n" + 
-		"				case 3564 :\n" + 
-		"					return 3;\n" + 
-		"				case 3565 :\n" + 
-		"					return 3;\n" + 
-		"				case 3566 :\n" + 
-		"					return 3;\n" + 
-		"				case 3567 :\n" + 
-		"					return 3;\n" + 
-		"				case 3568 :\n" + 
-		"					return 3;\n" + 
-		"				case 3569 :\n" + 
-		"					return 3;\n" + 
-		"				case 3570 :\n" + 
-		"					return 3;\n" + 
-		"				case 3571 :\n" + 
-		"					return 3;\n" + 
-		"				case 3572 :\n" + 
-		"					return 3;\n" + 
-		"				case 3573 :\n" + 
-		"					return 3;\n" + 
-		"				case 3574 :\n" + 
-		"					return 3;\n" + 
-		"				case 3575 :\n" + 
-		"					return 3;\n" + 
-		"				case 3576 :\n" + 
-		"					return 3;\n" + 
-		"				case 3577 :\n" + 
-		"					return 3;\n" + 
-		"				case 3578 :\n" + 
-		"					return 3;\n" + 
-		"				case 3579 :\n" + 
-		"					return 3;\n" + 
-		"				case 3580 :\n" + 
-		"					return 3;\n" + 
-		"				case 3581 :\n" + 
-		"					return 3;\n" + 
-		"				case 3582 :\n" + 
-		"					return 3;\n" + 
-		"				case 3583 :\n" + 
-		"					return 3;\n" + 
-		"				case 3584 :\n" + 
-		"					return 3;\n" + 
-		"				case 3585 :\n" + 
-		"					return 3;\n" + 
-		"				case 3586 :\n" + 
-		"					return 3;\n" + 
-		"				case 3587 :\n" + 
-		"					return 3;\n" + 
-		"				case 3588 :\n" + 
-		"					return 3;\n" + 
-		"				case 3589 :\n" + 
-		"					return 3;\n" + 
-		"				case 3590 :\n" + 
-		"					return 3;\n" + 
-		"				case 3591 :\n" + 
-		"					return 3;\n" + 
-		"				case 3592 :\n" + 
-		"					return 3;\n" + 
-		"				case 3593 :\n" + 
-		"					return 3;\n" + 
-		"				case 3594 :\n" + 
-		"					return 3;\n" + 
-		"				case 3595 :\n" + 
-		"					return 3;\n" + 
-		"				case 3596 :\n" + 
-		"					return 3;\n" + 
-		"				case 3597 :\n" + 
-		"					return 3;\n" + 
-		"				case 3598 :\n" + 
-		"					return 3;\n" + 
-		"				case 3599 :\n" + 
-		"					return 3;\n" + 
-		"				case 3600 :\n" + 
-		"					return 3;\n" + 
-		"				case 3601 :\n" + 
-		"					return 3;\n" + 
-		"				case 3602 :\n" + 
-		"					return 3;\n" + 
-		"				case 3603 :\n" + 
-		"					return 3;\n" + 
-		"				case 3604 :\n" + 
-		"					return 3;\n" + 
-		"				case 3605 :\n" + 
-		"					return 3;\n" + 
-		"				case 3606 :\n" + 
-		"					return 3;\n" + 
-		"				case 3607 :\n" + 
-		"					return 3;\n" + 
-		"				case 3608 :\n" + 
-		"					return 3;\n" + 
-		"				case 3609 :\n" + 
-		"					return 3;\n" + 
-		"				case 3610 :\n" + 
-		"					return 3;\n" + 
-		"				case 3611 :\n" + 
-		"					return 3;\n" + 
-		"				case 3612 :\n" + 
-		"					return 3;\n" + 
-		"				case 3613 :\n" + 
-		"					return 3;\n" + 
-		"				case 3614 :\n" + 
-		"					return 3;\n" + 
-		"				case 3615 :\n" + 
-		"					return 3;\n" + 
-		"				case 3616 :\n" + 
-		"					return 3;\n" + 
-		"				case 3617 :\n" + 
-		"					return 3;\n" + 
-		"				case 3618 :\n" + 
-		"					return 3;\n" + 
-		"				case 3619 :\n" + 
-		"					return 3;\n" + 
-		"				case 3620 :\n" + 
-		"					return 3;\n" + 
-		"				case 3621 :\n" + 
-		"					return 3;\n" + 
-		"				case 3622 :\n" + 
-		"					return 3;\n" + 
-		"				case 3623 :\n" + 
-		"					return 3;\n" + 
-		"				case 3624 :\n" + 
-		"					return 3;\n" + 
-		"				case 3625 :\n" + 
-		"					return 3;\n" + 
-		"				case 3626 :\n" + 
-		"					return 3;\n" + 
-		"				case 3627 :\n" + 
-		"					return 3;\n" + 
-		"				case 3628 :\n" + 
-		"					return 3;\n" + 
-		"				case 3629 :\n" + 
-		"					return 3;\n" + 
-		"				case 3630 :\n" + 
-		"					return 3;\n" + 
-		"				case 3631 :\n" + 
-		"					return 3;\n" + 
-		"				case 3632 :\n" + 
-		"					return 3;\n" + 
-		"				case 3633 :\n" + 
-		"					return 3;\n" + 
-		"				case 3634 :\n" + 
-		"					return 3;\n" + 
-		"				case 3635 :\n" + 
-		"					return 3;\n" + 
-		"				case 3636 :\n" + 
-		"					return 3;\n" + 
-		"				case 3637 :\n" + 
-		"					return 3;\n" + 
-		"				case 3638 :\n" + 
-		"					return 3;\n" + 
-		"				case 3639 :\n" + 
-		"					return 3;\n" + 
-		"				case 3640 :\n" + 
-		"					return 3;\n" + 
-		"				case 3641 :\n" + 
-		"					return 3;\n" + 
-		"				case 3642 :\n" + 
-		"					return 3;\n" + 
-		"				case 3643 :\n" + 
-		"					return 3;\n" + 
-		"				case 3644 :\n" + 
-		"					return 3;\n" + 
-		"				case 3645 :\n" + 
-		"					return 3;\n" + 
-		"				case 3646 :\n" + 
-		"					return 3;\n" + 
-		"				case 3647 :\n" + 
-		"					return 3;\n" + 
-		"				case 3648 :\n" + 
-		"					return 3;\n" + 
-		"				case 3649 :\n" + 
-		"					return 3;\n" + 
-		"				case 3650 :\n" + 
-		"					return 3;\n" + 
-		"				case 3651 :\n" + 
-		"					return 3;\n" + 
-		"				case 3652 :\n" + 
-		"					return 3;\n" + 
-		"				case 3653 :\n" + 
-		"					return 3;\n" + 
-		"				case 3654 :\n" + 
-		"					return 3;\n" + 
-		"				case 3655 :\n" + 
-		"					return 3;\n" + 
-		"				case 3656 :\n" + 
-		"					return 3;\n" + 
-		"				case 3657 :\n" + 
-		"					return 3;\n" + 
-		"				case 3658 :\n" + 
-		"					return 3;\n" + 
-		"				case 3659 :\n" + 
-		"					return 3;\n" + 
-		"				case 3660 :\n" + 
-		"					return 3;\n" + 
-		"				case 3661 :\n" + 
-		"					return 3;\n" + 
-		"				case 3662 :\n" + 
-		"					return 3;\n" + 
-		"				case 3663 :\n" + 
-		"					return 3;\n" + 
-		"				case 3664 :\n" + 
-		"					return 3;\n" + 
-		"				case 3665 :\n" + 
-		"					return 3;\n" + 
-		"				case 3666 :\n" + 
-		"					return 3;\n" + 
-		"				case 3667 :\n" + 
-		"					return 3;\n" + 
-		"				case 3668 :\n" + 
-		"					return 3;\n" + 
-		"				case 3669 :\n" + 
-		"					return 3;\n" + 
-		"				case 3670 :\n" + 
-		"					return 3;\n" + 
-		"				case 3671 :\n" + 
-		"					return 3;\n" + 
-		"				case 3672 :\n" + 
-		"					return 3;\n" + 
-		"				case 3673 :\n" + 
-		"					return 3;\n" + 
-		"				case 3674 :\n" + 
-		"					return 3;\n" + 
-		"				case 3675 :\n" + 
-		"					return 3;\n" + 
-		"				case 3676 :\n" + 
-		"					return 3;\n" + 
-		"				case 3677 :\n" + 
-		"					return 3;\n" + 
-		"				case 3678 :\n" + 
-		"					return 3;\n" + 
-		"				case 3679 :\n" + 
-		"					return 3;\n" + 
-		"				case 3680 :\n" + 
-		"					return 3;\n" + 
-		"				case 3681 :\n" + 
-		"					return 3;\n" + 
-		"				case 3682 :\n" + 
-		"					return 3;\n" + 
-		"				case 3683 :\n" + 
-		"					return 3;\n" + 
-		"				case 3684 :\n" + 
-		"					return 3;\n" + 
-		"				case 3685 :\n" + 
-		"					return 3;\n" + 
-		"				case 3686 :\n" + 
-		"					return 3;\n" + 
-		"				case 3687 :\n" + 
-		"					return 3;\n" + 
-		"				case 3688 :\n" + 
-		"					return 3;\n" + 
-		"				case 3689 :\n" + 
-		"					return 3;\n" + 
-		"				case 3690 :\n" + 
-		"					return 3;\n" + 
-		"				case 3691 :\n" + 
-		"					return 3;\n" + 
-		"				case 3692 :\n" + 
-		"					return 3;\n" + 
-		"				case 3693 :\n" + 
-		"					return 3;\n" + 
-		"				case 3694 :\n" + 
-		"					return 3;\n" + 
-		"				case 3695 :\n" + 
-		"					return 3;\n" + 
-		"				case 3696 :\n" + 
-		"					return 3;\n" + 
-		"				case 3697 :\n" + 
-		"					return 3;\n" + 
-		"				case 3698 :\n" + 
-		"					return 3;\n" + 
-		"				case 3699 :\n" + 
-		"					return 3;\n" + 
-		"				case 3700 :\n" + 
-		"					return 3;\n" + 
-		"				case 3701 :\n" + 
-		"					return 3;\n" + 
-		"				case 3702 :\n" + 
-		"					return 3;\n" + 
-		"				case 3703 :\n" + 
-		"					return 3;\n" + 
-		"				case 3704 :\n" + 
-		"					return 3;\n" + 
-		"				case 3705 :\n" + 
-		"					return 3;\n" + 
-		"				case 3706 :\n" + 
-		"					return 3;\n" + 
-		"				case 3707 :\n" + 
-		"					return 3;\n" + 
-		"				case 3708 :\n" + 
-		"					return 3;\n" + 
-		"				case 3709 :\n" + 
-		"					return 3;\n" + 
-		"				case 3710 :\n" + 
-		"					return 3;\n" + 
-		"				case 3711 :\n" + 
-		"					return 3;\n" + 
-		"				case 3712 :\n" + 
-		"					return 3;\n" + 
-		"				case 3713 :\n" + 
-		"					return 3;\n" + 
-		"				case 3714 :\n" + 
-		"					return 3;\n" + 
-		"				case 3715 :\n" + 
-		"					return 3;\n" + 
-		"				case 3716 :\n" + 
-		"					return 3;\n" + 
-		"				case 3717 :\n" + 
-		"					return 3;\n" + 
-		"				case 3718 :\n" + 
-		"					return 3;\n" + 
-		"				case 3719 :\n" + 
-		"					return 3;\n" + 
-		"				case 3720 :\n" + 
-		"					return 3;\n" + 
-		"				case 3721 :\n" + 
-		"					return 3;\n" + 
-		"				case 3722 :\n" + 
-		"					return 3;\n" + 
-		"				case 3723 :\n" + 
-		"					return 3;\n" + 
-		"				case 3724 :\n" + 
-		"					return 3;\n" + 
-		"				case 3725 :\n" + 
-		"					return 3;\n" + 
-		"				case 3726 :\n" + 
-		"					return 3;\n" + 
-		"				case 3727 :\n" + 
-		"					return 3;\n" + 
-		"				case 3728 :\n" + 
-		"					return 3;\n" + 
-		"				case 3729 :\n" + 
-		"					return 3;\n" + 
-		"				case 3730 :\n" + 
-		"					return 3;\n" + 
-		"				case 3731 :\n" + 
-		"					return 3;\n" + 
-		"				case 3732 :\n" + 
-		"					return 3;\n" + 
-		"				case 3733 :\n" + 
-		"					return 3;\n" + 
-		"				case 3734 :\n" + 
-		"					return 3;\n" + 
-		"				case 3735 :\n" + 
-		"					return 3;\n" + 
-		"				case 3736 :\n" + 
-		"					return 3;\n" + 
-		"				case 3737 :\n" + 
-		"					return 3;\n" + 
-		"				case 3738 :\n" + 
-		"					return 3;\n" + 
-		"				case 3739 :\n" + 
-		"					return 3;\n" + 
-		"				case 3740 :\n" + 
-		"					return 3;\n" + 
-		"				case 3741 :\n" + 
-		"					return 3;\n" + 
-		"				case 3742 :\n" + 
-		"					return 3;\n" + 
-		"				case 3743 :\n" + 
-		"					return 3;\n" + 
-		"				case 3744 :\n" + 
-		"					return 3;\n" + 
-		"				case 3745 :\n" + 
-		"					return 3;\n" + 
-		"				case 3746 :\n" + 
-		"					return 3;\n" + 
-		"				case 3747 :\n" + 
-		"					return 3;\n" + 
-		"				case 3748 :\n" + 
-		"					return 3;\n" + 
-		"				case 3749 :\n" + 
-		"					return 3;\n" + 
-		"				case 3750 :\n" + 
-		"					return 3;\n" + 
-		"				case 3751 :\n" + 
-		"					return 3;\n" + 
-		"				case 3752 :\n" + 
-		"					return 3;\n" + 
-		"				case 3753 :\n" + 
-		"					return 3;\n" + 
-		"				case 3754 :\n" + 
-		"					return 3;\n" + 
-		"				case 3755 :\n" + 
-		"					return 3;\n" + 
-		"				case 3756 :\n" + 
-		"					return 3;\n" + 
-		"				case 3757 :\n" + 
-		"					return 3;\n" + 
-		"				case 3758 :\n" + 
-		"					return 3;\n" + 
-		"				case 3759 :\n" + 
-		"					return 3;\n" + 
-		"				case 3760 :\n" + 
-		"					return 3;\n" + 
-		"				case 3761 :\n" + 
-		"					return 3;\n" + 
-		"				case 3762 :\n" + 
-		"					return 3;\n" + 
-		"				case 3763 :\n" + 
-		"					return 3;\n" + 
-		"				case 3764 :\n" + 
-		"					return 3;\n" + 
-		"				case 3765 :\n" + 
-		"					return 3;\n" + 
-		"				case 3766 :\n" + 
-		"					return 3;\n" + 
-		"				case 3767 :\n" + 
-		"					return 3;\n" + 
-		"				case 3768 :\n" + 
-		"					return 3;\n" + 
-		"				case 3769 :\n" + 
-		"					return 3;\n" + 
-		"				case 3770 :\n" + 
-		"					return 3;\n" + 
-		"				case 3771 :\n" + 
-		"					return 3;\n" + 
-		"				case 3772 :\n" + 
-		"					return 3;\n" + 
-		"				case 3773 :\n" + 
-		"					return 3;\n" + 
-		"				case 3774 :\n" + 
-		"					return 3;\n" + 
-		"				case 3775 :\n" + 
-		"					return 3;\n" + 
-		"				case 3776 :\n" + 
-		"					return 3;\n" + 
-		"				case 3777 :\n" + 
-		"					return 3;\n" + 
-		"				case 3778 :\n" + 
-		"					return 3;\n" + 
-		"				case 3779 :\n" + 
-		"					return 3;\n" + 
-		"				case 3780 :\n" + 
-		"					return 3;\n" + 
-		"				case 3781 :\n" + 
-		"					return 3;\n" + 
-		"				case 3782 :\n" + 
-		"					return 3;\n" + 
-		"				case 3783 :\n" + 
-		"					return 3;\n" + 
-		"				case 3784 :\n" + 
-		"					return 3;\n" + 
-		"				case 3785 :\n" + 
-		"					return 3;\n" + 
-		"				case 3786 :\n" + 
-		"					return 3;\n" + 
-		"				case 3787 :\n" + 
-		"					return 3;\n" + 
-		"				case 3788 :\n" + 
-		"					return 3;\n" + 
-		"				case 3789 :\n" + 
-		"					return 3;\n" + 
-		"				case 3790 :\n" + 
-		"					return 3;\n" + 
-		"				case 3791 :\n" + 
-		"					return 3;\n" + 
-		"				case 3792 :\n" + 
-		"					return 3;\n" + 
-		"				case 3793 :\n" + 
-		"					return 3;\n" + 
-		"				case 3794 :\n" + 
-		"					return 3;\n" + 
-		"				case 3795 :\n" + 
-		"					return 3;\n" + 
-		"				case 3796 :\n" + 
-		"					return 3;\n" + 
-		"				case 3797 :\n" + 
-		"					return 3;\n" + 
-		"				case 3798 :\n" + 
-		"					return 3;\n" + 
-		"				case 3799 :\n" + 
-		"					return 3;\n" + 
-		"				case 3800 :\n" + 
-		"					return 3;\n" + 
-		"				case 3801 :\n" + 
-		"					return 3;\n" + 
-		"				case 3802 :\n" + 
-		"					return 3;\n" + 
-		"				case 3803 :\n" + 
-		"					return 3;\n" + 
-		"				case 3804 :\n" + 
-		"					return 3;\n" + 
-		"				case 3805 :\n" + 
-		"					return 3;\n" + 
-		"				case 3806 :\n" + 
-		"					return 3;\n" + 
-		"				case 3807 :\n" + 
-		"					return 3;\n" + 
-		"				case 3808 :\n" + 
-		"					return 3;\n" + 
-		"				case 3809 :\n" + 
-		"					return 3;\n" + 
-		"				case 3810 :\n" + 
-		"					return 3;\n" + 
-		"				case 3811 :\n" + 
-		"					return 3;\n" + 
-		"				case 3812 :\n" + 
-		"					return 3;\n" + 
-		"				case 3813 :\n" + 
-		"					return 3;\n" + 
-		"				case 3814 :\n" + 
-		"					return 3;\n" + 
-		"				case 3815 :\n" + 
-		"					return 3;\n" + 
-		"				case 3816 :\n" + 
-		"					return 3;\n" + 
-		"				case 3817 :\n" + 
-		"					return 3;\n" + 
-		"				case 3818 :\n" + 
-		"					return 3;\n" + 
-		"				case 3819 :\n" + 
-		"					return 3;\n" + 
-		"				case 3820 :\n" + 
-		"					return 3;\n" + 
-		"				case 3821 :\n" + 
-		"					return 3;\n" + 
-		"				case 3822 :\n" + 
-		"					return 3;\n" + 
-		"				case 3823 :\n" + 
-		"					return 3;\n" + 
-		"				case 3824 :\n" + 
-		"					return 3;\n" + 
-		"				case 3825 :\n" + 
-		"					return 3;\n" + 
-		"				case 3826 :\n" + 
-		"					return 3;\n" + 
-		"				case 3827 :\n" + 
-		"					return 3;\n" + 
-		"				case 3828 :\n" + 
-		"					return 3;\n" + 
-		"				case 3829 :\n" + 
-		"					return 3;\n" + 
-		"				case 3830 :\n" + 
-		"					return 3;\n" + 
-		"				case 3831 :\n" + 
-		"					return 3;\n" + 
-		"				case 3832 :\n" + 
-		"					return 3;\n" + 
-		"				case 3833 :\n" + 
-		"					return 3;\n" + 
-		"				case 3834 :\n" + 
-		"					return 3;\n" + 
-		"				case 3835 :\n" + 
-		"					return 3;\n" + 
-		"				case 3836 :\n" + 
-		"					return 3;\n" + 
-		"				case 3837 :\n" + 
-		"					return 3;\n" + 
-		"				case 3838 :\n" + 
-		"					return 3;\n" + 
-		"				case 3839 :\n" + 
-		"					return 3;\n" + 
-		"				case 3840 :\n" + 
-		"					return 3;\n" + 
-		"				case 3841 :\n" + 
-		"					return 3;\n" + 
-		"				case 3842 :\n" + 
-		"					return 3;\n" + 
-		"				case 3843 :\n" + 
-		"					return 3;\n" + 
-		"				case 3844 :\n" + 
-		"					return 3;\n" + 
-		"				case 3845 :\n" + 
-		"					return 3;\n" + 
-		"				case 3846 :\n" + 
-		"					return 3;\n" + 
-		"				case 3847 :\n" + 
-		"					return 3;\n" + 
-		"				case 3848 :\n" + 
-		"					return 3;\n" + 
-		"				case 3849 :\n" + 
-		"					return 3;\n" + 
-		"				case 3850 :\n" + 
-		"					return 3;\n" + 
-		"				case 3851 :\n" + 
-		"					return 3;\n" + 
-		"				case 3852 :\n" + 
-		"					return 3;\n" + 
-		"				case 3853 :\n" + 
-		"					return 3;\n" + 
-		"				case 3854 :\n" + 
-		"					return 3;\n" + 
-		"				case 3855 :\n" + 
-		"					return 3;\n" + 
-		"				case 3856 :\n" + 
-		"					return 3;\n" + 
-		"				case 3857 :\n" + 
-		"					return 3;\n" + 
-		"				case 3858 :\n" + 
-		"					return 3;\n" + 
-		"				case 3859 :\n" + 
-		"					return 3;\n" + 
-		"				case 3860 :\n" + 
-		"					return 3;\n" + 
-		"				case 3861 :\n" + 
-		"					return 3;\n" + 
-		"				case 3862 :\n" + 
-		"					return 3;\n" + 
-		"				case 3863 :\n" + 
-		"					return 3;\n" + 
-		"				case 3864 :\n" + 
-		"					return 3;\n" + 
-		"				case 3865 :\n" + 
-		"					return 3;\n" + 
-		"				case 3866 :\n" + 
-		"					return 3;\n" + 
-		"				case 3867 :\n" + 
-		"					return 3;\n" + 
-		"				case 3868 :\n" + 
-		"					return 3;\n" + 
-		"				case 3869 :\n" + 
-		"					return 3;\n" + 
-		"				case 3870 :\n" + 
-		"					return 3;\n" + 
-		"				case 3871 :\n" + 
-		"					return 3;\n" + 
-		"				case 3872 :\n" + 
-		"					return 3;\n" + 
-		"				case 3873 :\n" + 
-		"					return 3;\n" + 
-		"				case 3874 :\n" + 
-		"					return 3;\n" + 
-		"				case 3875 :\n" + 
-		"					return 3;\n" + 
-		"				case 3876 :\n" + 
-		"					return 3;\n" + 
-		"				case 3877 :\n" + 
-		"					return 3;\n" + 
-		"				case 3878 :\n" + 
-		"					return 3;\n" + 
-		"				case 3879 :\n" + 
-		"					return 3;\n" + 
-		"				case 3880 :\n" + 
-		"					return 3;\n" + 
-		"				case 3881 :\n" + 
-		"					return 3;\n" + 
-		"				case 3882 :\n" + 
-		"					return 3;\n" + 
-		"				case 3883 :\n" + 
-		"					return 3;\n" + 
-		"				case 3884 :\n" + 
-		"					return 3;\n" + 
-		"				case 3885 :\n" + 
-		"					return 3;\n" + 
-		"				case 3886 :\n" + 
-		"					return 3;\n" + 
-		"				case 3887 :\n" + 
-		"					return 3;\n" + 
-		"				case 3888 :\n" + 
-		"					return 3;\n" + 
-		"				case 3889 :\n" + 
-		"					return 3;\n" + 
-		"				case 3890 :\n" + 
-		"					return 3;\n" + 
-		"				case 3891 :\n" + 
-		"					return 3;\n" + 
-		"				case 3892 :\n" + 
-		"					return 3;\n" + 
-		"				case 3893 :\n" + 
-		"					return 3;\n" + 
-		"				case 3894 :\n" + 
-		"					return 3;\n" + 
-		"				case 3895 :\n" + 
-		"					return 3;\n" + 
-		"				case 3896 :\n" + 
-		"					return 3;\n" + 
-		"				case 3897 :\n" + 
-		"					return 3;\n" + 
-		"				case 3898 :\n" + 
-		"					return 3;\n" + 
-		"				case 3899 :\n" + 
-		"					return 3;\n" + 
-		"				case 3900 :\n" + 
-		"					return 3;\n" + 
-		"				case 3901 :\n" + 
-		"					return 3;\n" + 
-		"				case 3902 :\n" + 
-		"					return 3;\n" + 
-		"				case 3903 :\n" + 
-		"					return 3;\n" + 
-		"				case 3904 :\n" + 
-		"					return 3;\n" + 
-		"				case 3905 :\n" + 
-		"					return 3;\n" + 
-		"				case 3906 :\n" + 
-		"					return 3;\n" + 
-		"				case 3907 :\n" + 
-		"					return 3;\n" + 
-		"				case 3908 :\n" + 
-		"					return 3;\n" + 
-		"				case 3909 :\n" + 
-		"					return 3;\n" + 
-		"				case 3910 :\n" + 
-		"					return 3;\n" + 
-		"				case 3911 :\n" + 
-		"					return 3;\n" + 
-		"				case 3912 :\n" + 
-		"					return 3;\n" + 
-		"				case 3913 :\n" + 
-		"					return 3;\n" + 
-		"				case 3914 :\n" + 
-		"					return 3;\n" + 
-		"				case 3915 :\n" + 
-		"					return 3;\n" + 
-		"				case 3916 :\n" + 
-		"					return 3;\n" + 
-		"				case 3917 :\n" + 
-		"					return 3;\n" + 
-		"				case 3918 :\n" + 
-		"					return 3;\n" + 
-		"				case 3919 :\n" + 
-		"					return 3;\n" + 
-		"				case 3920 :\n" + 
-		"					return 3;\n" + 
-		"				case 3921 :\n" + 
-		"					return 3;\n" + 
-		"				case 3922 :\n" + 
-		"					return 3;\n" + 
-		"				case 3923 :\n" + 
-		"					return 3;\n" + 
-		"				case 3924 :\n" + 
-		"					return 3;\n" + 
-		"				case 3925 :\n" + 
-		"					return 3;\n" + 
-		"				case 3926 :\n" + 
-		"					return 3;\n" + 
-		"				case 3927 :\n" + 
-		"					return 3;\n" + 
-		"				case 3928 :\n" + 
-		"					return 3;\n" + 
-		"				case 3929 :\n" + 
-		"					return 3;\n" + 
-		"				case 3930 :\n" + 
-		"					return 3;\n" + 
-		"				case 3931 :\n" + 
-		"					return 3;\n" + 
-		"				case 3932 :\n" + 
-		"					return 3;\n" + 
-		"				case 3933 :\n" + 
-		"					return 3;\n" + 
-		"				case 3934 :\n" + 
-		"					return 3;\n" + 
-		"				case 3935 :\n" + 
-		"					return 3;\n" + 
-		"				case 3936 :\n" + 
-		"					return 3;\n" + 
-		"				case 3937 :\n" + 
-		"					return 3;\n" + 
-		"				case 3938 :\n" + 
-		"					return 3;\n" + 
-		"				case 3939 :\n" + 
-		"					return 3;\n" + 
-		"				case 3940 :\n" + 
-		"					return 3;\n" + 
-		"				case 3941 :\n" + 
-		"					return 3;\n" + 
-		"				case 3942 :\n" + 
-		"					return 3;\n" + 
-		"				case 3943 :\n" + 
-		"					return 3;\n" + 
-		"				case 3944 :\n" + 
-		"					return 3;\n" + 
-		"				case 3945 :\n" + 
-		"					return 3;\n" + 
-		"				case 3946 :\n" + 
-		"					return 3;\n" + 
-		"				case 3947 :\n" + 
-		"					return 3;\n" + 
-		"				case 3948 :\n" + 
-		"					return 3;\n" + 
-		"				case 3949 :\n" + 
-		"					return 3;\n" + 
-		"				case 3950 :\n" + 
-		"					return 3;\n" + 
-		"				case 3951 :\n" + 
-		"					return 3;\n" + 
-		"				case 3952 :\n" + 
-		"					return 3;\n" + 
-		"				case 3953 :\n" + 
-		"					return 3;\n" + 
-		"				case 3954 :\n" + 
-		"					return 3;\n" + 
-		"				case 3955 :\n" + 
-		"					return 3;\n" + 
-		"				case 3956 :\n" + 
-		"					return 3;\n" + 
-		"				case 3957 :\n" + 
-		"					return 3;\n" + 
-		"				case 3958 :\n" + 
-		"					return 3;\n" + 
-		"				case 3959 :\n" + 
-		"					return 3;\n" + 
-		"				case 3960 :\n" + 
-		"					return 3;\n" + 
-		"				case 3961 :\n" + 
-		"					return 3;\n" + 
-		"				case 3962 :\n" + 
-		"					return 3;\n" + 
-		"				case 3963 :\n" + 
-		"					return 3;\n" + 
-		"				case 3964 :\n" + 
-		"					return 3;\n" + 
-		"				case 3965 :\n" + 
-		"					return 3;\n" + 
-		"				case 3966 :\n" + 
-		"					return 3;\n" + 
-		"				case 3967 :\n" + 
-		"					return 3;\n" + 
-		"				case 3968 :\n" + 
-		"					return 3;\n" + 
-		"				case 3969 :\n" + 
-		"					return 3;\n" + 
-		"				case 3970 :\n" + 
-		"					return 3;\n" + 
-		"				case 3971 :\n" + 
-		"					return 3;\n" + 
-		"				case 3972 :\n" + 
-		"					return 3;\n" + 
-		"				case 3973 :\n" + 
-		"					return 3;\n" + 
-		"				case 3974 :\n" + 
-		"					return 3;\n" + 
-		"				case 3975 :\n" + 
-		"					return 3;\n" + 
-		"				case 3976 :\n" + 
-		"					return 3;\n" + 
-		"				case 3977 :\n" + 
-		"					return 3;\n" + 
-		"				case 3978 :\n" + 
-		"					return 3;\n" + 
-		"				case 3979 :\n" + 
-		"					return 3;\n" + 
-		"				case 3980 :\n" + 
-		"					return 3;\n" + 
-		"				case 3981 :\n" + 
-		"					return 3;\n" + 
-		"				case 3982 :\n" + 
-		"					return 3;\n" + 
-		"				case 3983 :\n" + 
-		"					return 3;\n" + 
-		"				case 3984 :\n" + 
-		"					return 3;\n" + 
-		"				case 3985 :\n" + 
-		"					return 3;\n" + 
-		"				case 3986 :\n" + 
-		"					return 3;\n" + 
-		"				case 3987 :\n" + 
-		"					return 3;\n" + 
-		"				case 3988 :\n" + 
-		"					return 3;\n" + 
-		"				case 3989 :\n" + 
-		"					return 3;\n" + 
-		"				case 3990 :\n" + 
-		"					return 3;\n" + 
-		"				case 3991 :\n" + 
-		"					return 3;\n" + 
-		"				case 3992 :\n" + 
-		"					return 3;\n" + 
-		"				case 3993 :\n" + 
-		"					return 3;\n" + 
-		"				case 3994 :\n" + 
-		"					return 3;\n" + 
-		"				case 3995 :\n" + 
-		"					return 3;\n" + 
-		"				case 3996 :\n" + 
-		"					return 3;\n" + 
-		"				case 3997 :\n" + 
-		"					return 3;\n" + 
-		"				case 3998 :\n" + 
-		"					return 3;\n" + 
-		"				case 3999 :\n" + 
-		"					return 3;\n" + 
-		"				default:\n" + 
-		"					return -1;\n" + 
-		"			}\n" + 
-		"		} catch(Exception e) {\n" + 
-		"			//ignore\n" + 
-		"		} finally {\n" + 
-		"			System.out.println(\"Enter finally block\");\n" + 
-		"			System.out.println(\"Inside finally block\");\n" + 
-		"			System.out.println(\"Leave finally block\");\n" + 
-		"		}\n" + 
-		"		return -1;\n" + 
-		"	}\n" + 
-		"	public static void main(String[] args) {\n" + 
-		"		System.out.println(foo(1));\n" + 
-		"	}\n" + 
-		"}"},
-		"Enter finally block\n" + 
-		"Inside finally block\n" + 
-		"Leave finally block\n" + 
-		"3");
-}
-public static Class testClass() {
-	return XLargeTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/CodeSnippetClassLoader.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/CodeSnippetClassLoader.java
deleted file mode 100644
index e4ac955..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/CodeSnippetClassLoader.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.eval.target;
-
-import java.util.*;
-
-/**
- * A code snippet class loader is a class loader that loads code snippet classes and global
- * variable classes.
- */
-public class CodeSnippetClassLoader extends ClassLoader {
-	/**
-	 * Whether the code snippet support classes should be given by the IDE
-	 * or should be found on disk.
-	 */
-	static boolean DEVELOPMENT_MODE = false;
-
-	Hashtable loadedClasses = new Hashtable();
-/**
- * Asks the class loader that loaded this class to load the given class.
- * @throws ClassNotFoundException if it could not be loaded.
- */
-private Class delegateLoadClass(String name) throws ClassNotFoundException {
-	ClassLoader myLoader = getClass().getClassLoader();
-	if (myLoader == null) {
-		return Class.forName(name);
-	}
-	return myLoader.loadClass(name);
-}
-/**
- * Loads the given class. If the class is known to this runner, returns it.
- * If only  the class definition is known to this runner, makes it a class and returns it.
- * Otherwise delegates to the real class loader.
- */
-protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
-	if (DEVELOPMENT_MODE) {
-		try {
-			return delegateLoadClass(name);
-		} catch (ClassNotFoundException e) {
-			Class clazz = makeClass(name, resolve);
-			if (clazz == null) {
-				throw e;
-			}
-			return clazz;
-		}
-	}
-	Class clazz = makeClass(name, resolve);
-	if (clazz == null) {
-		return delegateLoadClass(name);
-	}
-	return clazz;
-}
-/**
- * Loads the given class either from the stored class definition or from the system.
- * Returns the existing class if it has already been loaded.
- * Returns null if no class definition can be found.
- */
-Class loadIfNeeded(String className) {
-	Class clazz = null;
-	if (!supportsHotCodeReplacement()) {
-		clazz = findLoadedClass(className);
-	}
-	if (clazz == null) {
-		try {
-			clazz = loadClass(className, true);
-		} catch (NoClassDefFoundError e) {
-			e.printStackTrace();
-		} catch (ClassNotFoundException e) {
-			e.printStackTrace();
-		}
-	}
-	return clazz;
-}
-/**
- * Makes the class definition known by this code snippet runner a real class and
- * returns it.
- * Returns null if there is no class definition.
- */
-private Class makeClass(String name, boolean resolve) {
-	Object o = this.loadedClasses.get(name);
-	if (o == null) {
-		return null;
-	}
-	if (o instanceof Class) {
-		return (Class) o;
-	}
-	byte[] classDefinition = (byte[]) o;
-	Class clazz = defineClass(null, classDefinition, 0, classDefinition.length);
-	if (resolve) {
-		resolveClass(clazz);
-	}
-	this.loadedClasses.put(name, clazz);
-	return clazz;
-}
-/**
- * Stores the given class definition for the given class.
- */
-void storeClassDefinition(String className, byte[] classDefinition) {
-	Object clazz = this.loadedClasses.get(className);
-	if (clazz == null || supportsHotCodeReplacement()) {
-		this.loadedClasses.put(className, classDefinition);
-	}
-}
-/**
- * Returns whether this class loader supports Hot Code Replacement.
- */
-protected boolean supportsHotCodeReplacement() {
-	return false;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/CodeSnippetRunner.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/CodeSnippetRunner.java
deleted file mode 100644
index 1024bc7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/CodeSnippetRunner.java
+++ /dev/null
@@ -1,471 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.eval.target;
-
-import java.lang.reflect.*;
-import java.io.*;
-import java.util.*;
-
-/**
- * A code snippet runner loads code snippet classes and global
- * variable classes, and that run the code snippet classes.
- * <p>
- * When started, this runner first connects using TCP/IP to the provided port number.
- * If a regular classpath directory is provided, it writes the class definitions it gets from the IDE
- * to this directory (or to the bootclasspath directory if the class name starts with "java") and it
- * lets the system class loader (or the bootstrap class loader if it is a "java" class) load
- * the class.
- * If the regular classpath directory is null, it uses a code snippet class loader to load the classes
- * it gets from the IDE. 
- * <p>
- * IMPORTANT NOTE:
- * Using a code snippet class loader has the following limitation when the code snippet is ran:
- * <ul>
- * <li>The code snippet class can access only public classes, and public members or these classes.
- *	   This is because the "runtime package" of the code snippet class is always different from
- *	   the "runtime package" of the class it is trying to access since the class loaders are 
- * 	   different.
- * <li>The code snippet class cannot be defined in a "java.*" package. Only the bootstrap class 
- *	   loader can load such a class.
- * </ul> 
- */
-public class CodeSnippetRunner {
-	public static CodeSnippetRunner theRunner;
-	static final String CODE_SNIPPET_CLASS_NAME = "org.eclipse.wst.jsdt.internal.eval.target.CodeSnippet";
-	static final String RUN_METHOD_NAME = "run";
-	static final String GET_RESULT_TYPE_METHOD_NAME = "getResultType";
-	static final String GET_RESULT_VALUE_METHOD_NAME = "getResultValue";
-	
-	IDEInterface ide;
-	String classPathDirectory;
-	String bootclassPathDirectory;
-	CodeSnippetClassLoader loader;
-	Class codeSnippetClass = null;
-/**
- * Creates a new code snippet runner. 
- */
-public CodeSnippetRunner(int portNumber, String classPathDirectory, String bootclassPathDirectory) {
-	this.ide = new IDEInterface(portNumber);
-	if (classPathDirectory != null) {
-		this.classPathDirectory = classPathDirectory;
-		if (bootclassPathDirectory != null) {
-			this.bootclassPathDirectory = bootclassPathDirectory;
-		}
-	} else {
-		this.loader = new CodeSnippetClassLoader();
-	}
-}
-/**
- * Returns the forward slash separated class name from the given class definition.
- */
-private String className(byte[] classDefinition) {
-	// NB: The following code was copied from org.eclipse.wst.jsdt.internal.compiler.cfmt, 
-	//     thus it is highly dependent on the class file format.
-	int readOffset = 10;
-	try {
-		int constantPoolCount = u2At(8, classDefinition);
-		int[] constantPoolOffsets = new int[constantPoolCount];
-		for (int i = 1; i < constantPoolCount; i++) {
-			int tag = u1At(readOffset, classDefinition);
-			switch (tag) {
-				case 1 : // Utf8Tag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += u2At(readOffset + 1, classDefinition);
-					readOffset += 3; // ConstantUtf8.fixedSize
-					break;
-				case 3 : // IntegerTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 5; // ConstantInteger.fixedSize
-					break;
-				case 4 : // FloatTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 5; // ConstantFloat.fixedSize
-					break;
-				case 5 : // LongTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 9; // ConstantLong.fixedSize
-					i++;
-					break;
-				case 6 : // DoubleTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 9; // ConstantDouble.fixedSize
-					i++;
-					break;
-				case 7 : // ClassTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 3; // ConstantClass.fixedSize
-					break;
-				case 8 : // StringTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 3; // ConstantString.fixedSize
-					break;
-				case 9 : // FieldRefTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 5; // ConstantFieldRef.fixedSize
-					break;
-				case 10 : // MethodRefTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 5; // ConstantMethodRef.fixedSize
-					break;
-				case 11 : // InterfaceMethodRefTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 5; // ConstantInterfaceMethodRef.fixedSize
-					break;
-				case 12 : // NameAndTypeTag
-					constantPoolOffsets[i] = readOffset;
-					readOffset += 5; // ConstantNameAndType.fixedSize
-			}
-		}
-		// Skip access flags
-		readOffset += 2;
-
-		// Read the classname, use exception handlers to catch bad format
-		int constantPoolIndex = u2At(readOffset, classDefinition);
-		int utf8Offset = constantPoolOffsets[u2At(constantPoolOffsets[constantPoolIndex] + 1, classDefinition)];
-		char[] className = utf8At(utf8Offset + 3, u2At(utf8Offset + 1, classDefinition), classDefinition);
-		return new String(className);
-	} catch (ArrayIndexOutOfBoundsException e) {
-		e.printStackTrace();
-		return null;
-	}
-}
-/**
- * Creates a new instance of the given class. It is
- * assumed that it is a subclass of CodeSnippet.
- */
-Object createCodeSnippet(Class snippetClass) {
-	Object object = null;
-	try {
-		object = snippetClass.newInstance();
-	} catch (InstantiationException e) {
-		e.printStackTrace();
-		this.ide.sendResult(void.class, null);
-		return null;
-	} catch (IllegalAccessException e) {
-		e.printStackTrace();
-		this.ide.sendResult(void.class, null);
-		return null;
-	}
-	return object;
-}
-/**
- * Whether this code snippet runner is currently running.
- */
-public boolean isRunning() {
-	return this.ide.isConnected();
-}
-/**
- * Starts a new CodeSnippetRunner that will serve code snippets from the IDE.
- * It waits for a connection on the given evaluation port number.
- * <p> 
- * Usage: java org.eclipse.wst.jsdt.tests.eval.target.CodeSnippetRunner -evalport <portNumber> [-options] [<mainClassName>] [<arguments>]
- * where options include:
- * -cscp <codeSnippetClasspath> the the classpath directory for the code snippet classes.
- * that are not defined in a "java.*" package.
- * -csbp <codeSnippetBootClasspath> the bootclasspath directory for the code snippet classes
- * that are defined in a "java.*" package.
- * <p>
- * The mainClassName and its arguments are optional: when not present only the server will start 
- * and run until the VM is shut down, when present the server will start, the main class will run
- * but the server will exit when the main class has finished running.
- */
-public static void main(String[] args) {
-	int length = args.length;
-	if (length < 2 || !args[0].toLowerCase().equals("-evalport")) {
-		printUsage();
-		return;
-	}
-	int evalPort = Integer.parseInt(args[1]);
-	String classPath = null;
-	String bootPath = null;
-	int mainClass = -1;
-	for (int i = 2; i < length; i++) {
-		String arg = args[i];
-		if (arg.startsWith("-")) {
-			if (arg.toLowerCase().equals("-cscp")) {
-				if (++i < length) {
-					classPath = args[i];
-				} else {
-					printUsage();
-					return;
-				}
-			} else if (arg.toLowerCase().equals("-csbp")) {
-				if (++i < length) {
-					bootPath = args[i];
-				} else {
-					printUsage();
-					return;
-				}
-			}
-		} else {
-			mainClass = i;
-			break;
-		}
-	}
-	theRunner = new CodeSnippetRunner(evalPort, classPath, bootPath);
-	if (mainClass == -1) {
-		theRunner.start();
-	} else {
-		Thread server = new Thread() {
-			public void run() {
-				theRunner.start();
-			}
-		};
-		server.setDaemon(true);
-		server.start();
-		int mainArgsLength = length-mainClass-1;
-		String[] mainArgs = new String[mainArgsLength];
-		System.arraycopy(args, mainClass+1, mainArgs, 0, mainArgsLength);
-		try {
-			Class clazz = Class.forName(args[mainClass]);
-			Method mainMethod = clazz.getMethod("main", new Class[] {String[].class});
-			mainMethod.invoke(null, new String[][] {mainArgs});
-		} catch (ClassNotFoundException e) {
-			e.printStackTrace();
-		} catch (NoSuchMethodException e) {
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-		}
-	}
-}
-private static void printUsage() {
-	System.out.println("Usage: java org.eclipse.wst.jsdt.tests.eval.target.CodeSnippetRunner -evalport <portNumber> [-options] [<mainClassName>] [<arguments>]");
-	System.out.println("where options include:");
-	System.out.println("-cscp <codeSnippetClasspath> the the classpath directory for the code snippet classes.");
-	System.out.println("that are not defined in a \"java.*\" package.");
-	System.out.println("-csbp <codeSnippetBootClasspath> the bootclasspath directory for the code snippet classes");
-	System.out.println("that are defined in a \"java.*\" package.");
-}
-/**
- * Loads the given class definitions. The way these class definitions are loaded is described
- * in the CodeSnippetRunner constructor.
- * The class definitions are code snippet classes and/or global variable classes.
- * Code snippet classes are assumed be direct or indirect subclasses of CodeSnippet and implement 
- * only the run()V method. 
- * They are instanciated and run.
- * Global variable classes are assumed to be direct subclasses of CodeSnippet. Their fields are assumed
- * to be static. The value of each field is sent back to the IDE.
- */
-void processClasses(boolean mustRun, byte[][] classDefinitions) {
-	// store the class definitions (either in the code snippet class loader or on disk)
-	String[] newClasses = new String[classDefinitions.length];
-	for (int i = 0; i < classDefinitions.length; i++) {
-		byte[] classDefinition = classDefinitions[i];
-		String classFileName = className(classDefinition);
-		String className = classFileName.replace('/', '.');
-		if (this.loader != null) {
-			this.loader.storeClassDefinition(className, classDefinition);
-		} else {
-			writeClassOnDisk(classFileName, classDefinition);
-		}
-		newClasses[i] = className;
-	}
-
-	// load the classes and collect code snippet classes
-	Vector codeSnippetClasses = new Vector();
-	for (int i = 0; i < newClasses.length; i++) {
-		String className = newClasses[i];
-		Class clazz = null;
-		if (this.loader != null) {
-			clazz = this.loader.loadIfNeeded(className);
-			if (clazz == null) {
-				System.err.println("Could not find class definition for " + className);
-				break;
-			}
-		} else {
-			// use the system class loader
-			try {
-				clazz = Class.forName(className);
-			} catch (ClassNotFoundException e) {
-				e.printStackTrace(); // should never happen since we just wrote it on disk
-				this.ide.sendResult(void.class, null);
-				break;
-			}
-		}
-		
-		Class superclass = clazz.getSuperclass();
-		Method[] methods = clazz.getDeclaredMethods();
-		if (this.codeSnippetClass == null) {
-			if (superclass.equals(Object.class) && clazz.getName().equals(CODE_SNIPPET_CLASS_NAME)) {
-				// The CodeSnippet class is being deployed
-				this.codeSnippetClass = clazz;
-			} else {
-				System.out.println("Expecting CodeSnippet class to be deployed first");
-			}
-		} else if (superclass.equals(this.codeSnippetClass)) {
-			// It may be a code snippet class with no global variable
-			if (methods.length == 1 && methods[0].getName().equals(RUN_METHOD_NAME)) {
-				codeSnippetClasses.addElement(clazz);
-			}
-			// Evaluate global variables and send result back
-			Field[] fields = clazz.getDeclaredFields();
-			for (int j = 0; j < fields.length; j++) {
-				Field field = fields[j];
-				if (Modifier.isPublic(field.getModifiers())) {
-					try {
-						this.ide.sendResult(field.getType(), field.get(null));
-					} catch (IllegalAccessException e) {
-						e.printStackTrace(); // Cannot happen because the field is public
-						this.ide.sendResult(void.class, null);
-						break;
-					}
-				}
-			}
-		} else if (this.codeSnippetClass.equals(superclass.getSuperclass()) && methods.length == 1 && methods[0].getName().equals("run")) {
-			// It is a code snippet class with a global variable superclass
-			codeSnippetClasses.addElement(clazz);
-		}
-	}
-
-	// run the code snippet classes
-	if (codeSnippetClasses.size() != 0 && mustRun) {
-		for (Enumeration e = codeSnippetClasses.elements(); e.hasMoreElements();) {
-			Object codeSnippet = this.createCodeSnippet((Class) e.nextElement());
-			if (codeSnippet != null) {
-				this.runCodeSnippet(codeSnippet);
-			}
-		}
-	}
-}
-/**
- * Runs the given code snippet in a new thread and send the result back to the IDE.
- */
-void runCodeSnippet(final Object snippet) {
-	Thread thread = new Thread() {
-		public void run() {
-			try {
-				try {
-					Method runMethod = codeSnippetClass.getMethod(RUN_METHOD_NAME, new Class[] {});
-					runMethod.invoke(snippet, new Object[] {});
-				} finally {
-					Method getResultTypeMethod = codeSnippetClass.getMethod(GET_RESULT_TYPE_METHOD_NAME, new Class[] {});
-					Class resultType = (Class)getResultTypeMethod.invoke(snippet, new Object[] {});
-					Method getResultValueMethod = codeSnippetClass.getMethod(GET_RESULT_VALUE_METHOD_NAME, new Class[] {});
-					Object resultValue = getResultValueMethod.invoke(snippet, new Object[] {});
-					CodeSnippetRunner.this.ide.sendResult(resultType, resultValue);
-				}
-			} catch (NoSuchMethodException e) {
-				e.printStackTrace();
-			} catch (IllegalAccessException e) {
-				e.printStackTrace();
-			} catch (IllegalArgumentException e) {
-				System.out.println("codeSnippetClass = " + codeSnippetClass.getName());
-				System.out.println("snippet.class = " + snippet.getClass().getName());
-				Class superclass = snippet.getClass().getSuperclass();
-				System.out.println("snippet.superclass = " + (superclass == null ? "null" : superclass.getName()));
-				e.printStackTrace();
-			} catch (InvocationTargetException e) {
-				e.getTargetException().printStackTrace();
-			}
-		}
-	};
-	thread.setDaemon(true);
-	thread.start();
-}
-/**
- * Starts this code snippet runner in a different thread.
- */
-public void start() {
-	Thread thread = new Thread("Code snippet runner") {
-		public void run() {
-			try {
-				ide.connect();
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			while (ide.isConnected()) {
-				try {
-					processClasses(ide.getRunFlag(), ide.getNextClasses());
-				} catch (Error e) {
-					ide.sendResult(void.class, null);
-					e.printStackTrace();
-				} catch (RuntimeException e) {
-					ide.sendResult(void.class, null);
-					e.printStackTrace();
-				}
-			}
-		}
-	};
-	thread.start();
-}
-/**
- * Stops this code snippet runner.
- */
-public void stop() {
-	this.ide.disconnect();
-}
-private int u1At(int position, byte[] bytes) {
-	return bytes[position] & 0xFF;
-}
-private int u2At(int position, byte[] bytes) {
-	return ((bytes[position++] & 0xFF) << 8) + (bytes[position] & 0xFF);
-}
-private char[] utf8At(int readOffset, int bytesAvailable, byte[] bytes) {
-	int x, y, z;
-	int length = bytesAvailable;
-	char outputBuf[] = new char[bytesAvailable];
-	int outputPos = 0;
-	while (length != 0) {
-		x = bytes[readOffset++] & 0xFF;
-		length--;
-		if ((0x80 & x) != 0) {
-			y = bytes[readOffset++] & 0xFF;
-			length--;
-			if ((x & 0x20) != 0) {
-				z = bytes[readOffset++] & 0xFF;
-				length--;
-				x = ((x & 0x1F) << 12) + ((y & 0x3F) << 6) + (z & 0x3F);
-			} else {
-				x = ((x & 0x1F) << 6) + (y & 0x3F);
-			}
-		}
-		outputBuf[outputPos++] = (char) x;
-	}
-
-	if (outputPos != bytesAvailable) {
-		System.arraycopy(outputBuf, 0, (outputBuf = new char[outputPos]), 0, outputPos);
-	}
-	return outputBuf;
-}
-/**
- * Writes the given class definition on disk. The give name is the forward slash separated
- * fully qualified name of the class.
- */
-private void writeClassOnDisk(String className, byte[] classDefinition) {
-	try {
-		String fileName = className.replace('/', File.separatorChar) + ".class";
-		File classFile = new File(
-			(this.bootclassPathDirectory != null && 
-			(className.startsWith("java") || className.replace('/', '.').equals(CODE_SNIPPET_CLASS_NAME))) ? 
-				this.bootclassPathDirectory : 
-				this.classPathDirectory, fileName);
-		File parent = new File(classFile.getParent());
-		parent.mkdirs();
-		if (!parent.exists()) {
-			throw new IOException("Could not create directory " + parent.getPath());
-		}
-		FileOutputStream out = null;
-		try {
-			out = new FileOutputStream(classFile);
-			out.write(classDefinition);
-		} finally {
-			if (out != null) {
-				out.close();
-			}
-		}
-	} catch (IOException e) {
-		e.printStackTrace();
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/IDEInterface.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/IDEInterface.java
deleted file mode 100644
index d96a4f0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/eval/target/IDEInterface.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.eval.target;
-
-import java.io.*;
-import java.net.*;
-/**
- * The interface to the IDE. When connected, it uses TCP/IP sockets
- * to get code snippet classes and global variable classes from the IDE.
- * It sends the result of the evaluation back using the same socket.
- * <p>
- * The format from the socket input stream is the following:
- * <pre>
- *		[run flag: boolean coded on 1 byte]
- * 		[number of class files: int coded on 4 bytes]
- *		*[
- *			[length of class file: int coded on 4 bytes]
- *      	[class file: Java Class file format]
- *       ]
- * </pre>
- * This sequence is infinitely repeated until the input socket stream is closed.
- * <p>
- * The format from the socket output stream is the following:
- * <pre>
- * 		[has result flag: 1 if there is a result, 0 otherwise]
- * 		if there is a result:
- *		[fully qualified type name of result: utf8 encoded string]
- *      [toString representation of result: utf8 encoded string]
- * </pre>
- * This sequence is infinitely repeated until the output socket stream is closed.
- */
-public class IDEInterface {
-	/**
-	 * Whether timing info should be printed to stdout
-	 */
-	static final boolean TIMING = false;
-	long startTime;
-
-	int portNumber = 0;
-	Socket socket;
-/**
- * Creates a new IDEInterface.
- */
-IDEInterface(int portNumber) {
-	this.portNumber = portNumber;
-}
-/**
- * Waits for a connection from the ide on the given port.
- * @throws IOException if the connection could not be established.
- */
-void connect() throws IOException {
-	ServerSocket server = new ServerSocket(this.portNumber);
-	this.socket = server.accept();
-	this.socket.setTcpNoDelay(true);
-	server.close();
-}
-/**
- * Disconnects this interface from the IDE.
- */
-void disconnect() {
-	if (this.socket != null) {
-		try {
-			this.socket.close();
-		} catch (IOException e2) {
-			// Ignore
-		}
-		this.socket = null;
-	}
-}
-/**
- * Returns the class definitions of the classes that compose the next code snippet to evaluate.
- */
-protected byte[][] getNextClasses() {
-	if (this.socket == null) {
-		return new byte[0][];
-	}
-	if (TIMING) {
-		this.startTime = System.currentTimeMillis();
-	}
-	try {
-		DataInputStream in = new DataInputStream(this.socket.getInputStream());
-		int numberOfClasses = in.readInt();
-		byte[][] result = new byte[numberOfClasses][];
-		for (int i = 0; i < numberOfClasses; i++) {
-			int lengthOfClassFile = in.readInt();
-			byte[] classFile = new byte[lengthOfClassFile];
-			int read = 0;
-			while (read < lengthOfClassFile && read != -1) {
-				read += in.read(classFile, read, lengthOfClassFile - read);
-			}
-			result[i] = classFile;
-		}
-		return result;
-	} catch (IOException e) {
-		// The socket has likely been closed on the other end, close this end too.
-		disconnect();
-		return new byte[0][];
-	}
-}
-/**
- * Returns whether the code snippet classes that follow should be run or just loaded.
- */
-protected boolean getRunFlag() {
-	if (this.socket == null) {
-		return false;
-	}
-	if (TIMING) {
-		this.startTime = System.currentTimeMillis();
-	}
-	try {
-		DataInputStream in = new DataInputStream(this.socket.getInputStream());
-		return in.readBoolean();
-	} catch (IOException e) {
-		// The socket has likely been closed on the other end, close this end too.
-		disconnect();
-		return false;
-	}
-}
-/**
- * Returns whether this interface is connected to the IDE.
- */
-boolean isConnected() {
-	return this.socket != null;
-}
-/**
- * Sends the result of the evaluation to the IDE.
- */
-protected void sendResult(Class resultType, Object resultValue) {
-	if (this.socket == null) {
-		return;
-	}
-	try {
-		DataOutputStream out = new DataOutputStream(this.socket.getOutputStream());
-		if (resultType == void.class) {
-			out.writeBoolean(false);
-		} else {
-			out.writeBoolean(true);
-			out.writeUTF(resultType.isPrimitive() ? resultType.toString() : resultType.getName());
-			out.writeUTF(resultValue == null ? "null" : resultValue.toString());
-		}
-	} catch (IOException e) {
-		// The socket has likely been closed on the other end, disconnect this end too
-		disconnect();
-	}
-	if (TIMING) {
-		System.out.println("Time to run on target is " + (System.currentTimeMillis() - this.startTime) + "ms");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/AmbiguousMethodTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/AmbiguousMethodTest.java
deleted file mode 100644
index 818ab8a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/AmbiguousMethodTest.java
+++ /dev/null
@@ -1,1988 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.future.compiler.regression;
-
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractComparableTest;
-
-import junit.framework.*;
-
-public class AmbiguousMethodTest extends AbstractComparableTest {
-
-	public AmbiguousMethodTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildComparableTestSuite(testClass());
-	}
-	
-	public static Class testClass() {
-		return AmbiguousMethodTest.class;
-	}
-
-	public void test000() {
-		this.runConformTest(
-			new String[] {
-				"Test.java",
-				"public class Test { public static void main(String[] args) { new B().foo(new C()); } }\n" +
-				"class A { void foo(A a) {} }\n" +
-				"class B extends A { void foo(B b) { System.out.println(1); } }\n" +
-				"class C extends B {}"
-			},
-			"1"
-		);
-	}
-	public void test000a() {
-		this.runConformTest(
-				new String[] {
-					"Test.java",
-					"public class Test { public static void main(String[] args) { new Subtype<String>().foo(1, \"works\"); } }\n" +
-					"class Supertype<T1> { <U1> void foo(U1 u, T1 t) {} }\n" +
-					"class Subtype <T2> extends Supertype<T2> { <U3> void foo(U3 u, T2 t) { System.out.println(t); } }"
-				},
-				"works"
-			);		
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=122881
-	public void test001() {
-		this.runConformTest(
-			new String[] {
-				"C.java",
-				"public class C { public static void main(String[] args) { new B().m(\"works\"); } }\n" +
-				"class B extends A { @Override <T extends Comparable<T>> void m(T t) { System.out.println(t); } }\n" +
-				"abstract class A { abstract <T extends Comparable<T>> void m(T t); }"
-			},
-			"works"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=122881
-	public void test002() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	static interface I1<E1> { void method(E1 o); }\n" +
-				"	static interface I2<E2> { void method(E2 o); }\n" +
-				"	static interface I3<E3, E4> extends I1<E3>, I2<E4> {}\n" +
-				"	static class Class1 implements I3<String, String> {\n" +
-				"		public void method(String o) { System.out.println(o); }\n" +
-				"	}\n" +
-				"	public static void main(String[] args) {\n" +
-				"		I3<String, String> i = new Class1();\n" +
-				"		i.method(\"works\");\n" +
-				"	}\n" +
-				"}"
-			},
-			"works"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=122881
-	public void test002a() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	static interface I1<E> { void method(E o); }\n" +
-				"	static interface I2<E> { void method(E o); }\n" +
-				"	static interface I3<E> extends I1<E>, I2<E> {}\n" +
-				"	static class Class1 implements I3<String> {\n" +
-				"		public void method(String o) { System.out.println(o); }\n" +
-				"	}\n" +
-				"	public static void main(String[] args) {\n" +
-				"		I3<String> i = new Class1();\n" +
-				"		i.method(\"works\");\n" +
-				"	}\n" +
-				"}"
-			},
-			"works"
-		);
-	}
-	public void test003() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X { void foo() { new BB().test(); } }\n" + 
-				"class AA<T> { void test() {} }\n" + 
-				"class BB extends AA<CC> { <U> void test() {} }\n" + 
-				"class CC {}\n",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	public class X { void foo() { new BB().test(); } }\n" + 
-			"	                                       ^^^^\n" + 
-			"The method test() is ambiguous for the type BB\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 3)\n" + 
-			"	class BB extends AA<CC> { <U> void test() {} }\n" + 
-			"	                                   ^^^^^^\n" + 
-			"Name clash: The method test() of type BB has the same erasure as test() of type AA<T> but does not override it\n" + 
-			"----------\n"
-		);
-	}
-	public void test003a() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	void singleMatch() { System.out.print(new BB().test(new N(), new Integer(1))); }\n" +
-				"	void betterMatch() { System.out.print(new CC().test(new N(), new Integer(1))); }\n" +
-				"	void worseMatch() { System.out.print(new DD().test(new N(), new Integer(1))); }\n" +
-				"	public static void main(String[] s) {\n" +
-				"		new X().singleMatch();\n" +
-				"		new X().betterMatch();\n" +
-				"		new X().worseMatch();\n" +
-				"	}\n" +
-				"}\n" + 
-				"class AA<T> { int test(T t, Number num) { return 1; } }\n" + 
-				"class BB extends AA<N> { @Override int test(N n, Number num) { return 2; } }\n" + 
-				"class CC extends AA<M> { <U extends Number> int test(N n, U u) { return 3; } }\n" + 
-				"class DD extends AA<N> { <U extends Number> int test(M m, U u) { return 4; } }\n" + 
-				"class M {}\n" +
-				"class N extends M {}",
-			},
-			"231"
-		);
-	}
-	public void test003b() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	void ambiguous() { new BB().test(new N()); }\n" +
-				"	void exactMatch() { new CC().test(new N()); }\n" +
-				"}\n" + 
-				"class AA<T> { void test(T t) {} }\n" + 
-				"class BB extends AA<N> { <U> void test(N n) {} }\n" + 
-				"class CC extends AA<N> { @Override void test(N n) {} }\n" + 
-				"class M {}\n" +
-				"class N extends M {}",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\r\n" + 
-			"	void ambiguous() { new BB().test(new N()); }\r\n" + 
-			"	                            ^^^^\n" + 
-			"The method test(N) is ambiguous for the type BB\n" + 
-			"----------\n"
-		);
-	}
-	public void test003c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	void ambiguous() { new BB().test(new N(), new Integer(1)); }\n" +
-				"}\n" + 
-				"class AA<T> { void test(T t, Integer i) {} }\n" + 
-				"class BB extends AA<M> { <U extends Number> void test(N n, U u) {} }\n" + 
-				"class M {}\n" +
-				"class N extends M {}",
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 2)\n" + 
-			"	void ambiguous() { new BB().test(new N(), new Integer(1)); }\n" + 
-			"	                            ^^^^\n" + 
-			"The method test(N, Integer) is ambiguous for the type BB\n" + 
-			"----------\n"
-		);
-	}
-	public void test004() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	void test(M<Integer> m) {\n" +
-				"		m.id(new Integer(111));\n" +
-				"	}\n" +
-				"}\n" +
-				"class C<T extends Number> { public void id(T t) {} }\n" +
-				"class M<TT> extends C<Integer> { public <ZZ> void id(Integer i) {} }\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	m.id(new Integer(111));\n" + 
-			"	  ^^\n" + 
-			"The method id(Integer) is ambiguous for the type M<Integer>\n" + 
-			"----------\n"
-			// reference to id is ambiguous, both method id(A) in C<java.lang.Integer> and method id(B) in M<java.lang.Integer,java.lang.Integer> match
-		);
-	}
-	public void test004a() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" +
-				"	void test(M<Integer> m) {\n" +
-				"		m.id(new Integer(111));\n" +
-				"	}\n" +
-				"}\n" +
-				"class C<T extends Number> { public void id(T t) {} }\n" +
-				"class M<TT> extends C<Integer> { public void id(Integer i) {} }\n"
-			},
-			""
-		);
-	}
-	public void test005() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"		 <S extends A> void foo() { }\n" + 
-				"		 <N extends B> N foo() { return null; }\n" + 
-				"		 void test () {\n" + 
-				"		 	new X().foo();\n" + 
-				"		 }\n" + 
-				"}\n" + 
-				"class A {}\n" + 
-				"class B {}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 5)\n" + 
-			"	new X().foo();\n" + 
-			"	        ^^^\n" + 
-			"The method foo() is ambiguous for the type X\n" + 
-			"----------\n"
-		);
-	}
-	public void test006() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<T> {\n" + 
-				"   void test() {\n" + 
-				"   	new Y<Object>().foo(\"X\");\n" + 
-				"   	new Y<Object>().foo2(\"X\");\n" + 
-				"   }\n" + 
-				"	<U1> U1 foo(U1 t) {return null;}\n" +
-				"	<U2> U2 foo2(U2 t) {return null;}\n" +
-				"}\n" +
-				"class Y<T2> extends X<T2> {\n" + 
-				"	void foo(T2 t) {}\n" +
-				"	<U3> void foo2(T2 t) {}\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 3)\n" + 
-			"	new Y<Object>().foo(\"X\");\n" + 
-			"	                ^^^\n" + 
-			"The method foo(Object) is ambiguous for the type Y<Object>\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 4)\n" + 
-			"	new Y<Object>().foo2(\"X\");\n" + 
-			"	                ^^^^\n" + 
-			"The method foo2(Object) is ambiguous for the type Y<Object>\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=129056
-	public void test007() {
-		this.runNegativeTest(
-			new String[] {
-				"B.java",
-				"public class B {\n" + 
-				"   public static void main(String[] args) {\n" + 
-				"   	new M().foo(new Integer(1), 2);\n" + 
-				"   	new N().foo(new Integer(1), 2);\n" + 
-				"   }\n" +
-				"}" + 
-				"interface I { void foo(Number arg1, Number arg2); }\n" +
-				"class M {\n" +
-				"	public void foo(int arg1, int arg2) {}\n" +
-				"	public void foo(Number arg1, Number arg2) {}\n" +
-				"}\n" +
-				"class N implements I {\n" +
-				"	public void foo(int arg1, int arg2) {}\n" +
-				"	public void foo(Number arg1, Number arg2) {}\n" +
-				"}\n"
-			},
-			"----------\n" + 
-			"1. ERROR in B.java (at line 3)\r\n" + 
-			"	new M().foo(new Integer(1), 2);\r\n" + 
-			"	        ^^^\n" + 
-			"The method foo(int, int) is ambiguous for the type M\n" + 
-			"----------\n" +
-			"2. ERROR in B.java (at line 4)\r\n" + 
-			"	new N().foo(new Integer(1), 2);\r\n" + 
-			"	        ^^^\n" + 
-			"The method foo(int, int) is ambiguous for the type N\n" + 
-			"----------\n"
-			// reference to foo is ambiguous, both method foo(int,int) in M and method foo(java.lang.Number,java.lang.Number) in M match
-			// reference to foo is ambiguous, both method foo(int,int) in N and method foo(java.lang.Number,java.lang.Number) in N match
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=123943 - case 1
-	public void test008() {
-		this.runConformTest(
-			new String[] {
-				"AA.java",
-				"public class AA {\n" + 
-				"   public static void main(String[] a) { System.out.print(new C().test(new T())); }\n" + 
-				"}" + 
-				"class S {}\n" +
-				"class T extends S {}\n" +
-				"class B { <U extends S> int test(U u) {return -1;} }\n" +
-				"class C extends B { @Override int test(S s) {return 1;} }"
-			},
-			"1"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=123943 - case 1
-	public void test008a() {
-		this.runNegativeTest(
-			new String[] {
-				"A.java",
-				"public class A { void check() { new C().test(new T()); } }\n" + 
-				"class S {}\n" +
-				"class T extends S {}\n" +
-				"class B { int test(S s) {return 1;} }\n" +
-				"class C extends B { <U extends S> int test(U u) {return -1;} }"
-			},
-			"----------\n" + 
-			"1. ERROR in A.java (at line 1)\n" + 
-			"	public class A { void check() { new C().test(new T()); } }\n" + 
-			"	                                        ^^^^\n" + 
-			"The method test(T) is ambiguous for the type C\n" + 
-			"----------\n" + 
-			"2. ERROR in A.java (at line 5)\n" + 
-			"	class C extends B { <U extends S> int test(U u) {return -1;} }\n" + 
-			"	                                      ^^^^^^^^^\n" + 
-			"Name clash: The method test(U) of type C has the same erasure as test(S) of type B but does not override it\n" + 
-			"----------\n"
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=123943 - case 2
-	public void test009() {
-		this.runConformTest(
-			new String[] {
-				"T.java",
-				"import java.util.*;\n" + 
-				"public class T {\n" + 
-				"   void test() {\n" + 
-				"   	OrderedSet<String> os = null;\n" + 
-				"   	os.add(\"hello\");\n" + 
-				"   	OrderedSet<Integer> os2 = null;\n" + 
-				"   	os2.add(1);\n" + 
-				"   }\n" +
-				"}" + 
-				"interface OrderedSet<E> extends List<E>, Set<E> { boolean add(E o); }\n"
-			},
-			""
-		);
-	}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=121024
-public void _test010a() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  	interface Listener {}\n" + 
-			"  	interface ErrorListener {}\n" + 
-			"  	static <L1 extends Listener & ErrorListener> Object createParser(L1 l) { return null; }\n" + 
-			"  	static <L2 extends ErrorListener & Listener> Object createParser(L2 l) { return null; }\n" + 
-			"   public static void main(String[] s) {\n" + 
-			"   	class A implements Listener, ErrorListener {}\n" + 
-			"   	createParser(new A());\n" + 
-			"   }\n" +
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\r\n" + 
-		"	static <L1 extends Listener & ErrorListener> Object createParser(L1 l) { return null; }\r\n" + 
-		"	                                                    ^^^^^^^^^^^^^^^^^^\n" + 
-		"Method createParser(L1) has the same erasure createParser(X.Listener) as another method in type X\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\r\n" + 
-		"	static <L2 extends ErrorListener & Listener> Object createParser(L2 l) { return null; }\r\n" + 
-		"	                                                    ^^^^^^^^^^^^^^^^^^\n" + 
-		"Method createParser(L2) has the same erasure createParser(X.ErrorListener) as another method in type X\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 8)\r\n" + 
-		"	createParser(new A());\r\n" + 
-		"	^^^^^^^^^^^^\n" + 
-		"The method createParser(A) is undefined for the type X\n" + 
-		"----------\n"
-	);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=121024
-public void _test010b() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  	interface Listener {}\n" + 
-			"  	interface ErrorListener {}\n" + 
-			"  	static <L1 extends Listener> int createParser(L1 l) { return 1; }\n" + 
-			"  	static <L2 extends ErrorListener & Listener> int createParser(L2 l) { return 2; }\n" + 
-			"   public static void main(String[] s) {\n" + 
-			"   	class A implements Listener, ErrorListener {}\n" + 
-			"   	System.out.print(createParser(new A()));\n" + 
-			"   }\n" +
-			"}"
-		},
-		"2"
-	);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=121024
-public void _test010c() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  	interface Listener {}\n" + 
-			"  	interface ErrorListener {}\n" + 
-			"  	static int createParser(Listener l) { return 1; }\n" + 
-			"  	static <L extends ErrorListener & Listener> int createParser(L l) { return 2; }\n" + 
-			"   public static void main(String[] s) {\n" + 
-			"   	class A implements Listener, ErrorListener {}\n" + 
-			"   	System.out.print(createParser(new A()));\n" + 
-			"   }\n" +
-			"}"
-		},
-		"2"
-	);
-}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106090
-	public void test011() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X<A extends Number> extends Y<A> {\n" + 
-				"	<T> void foo(A n, T t) throws ExOne {}\n" + 
-				"	void test(X<Integer> x) throws ExTwo { x.foo(new Integer(1), new Integer(2)); }\n" +
-				"	void test2(X x) throws ExTwo { x.foo(new Integer(1), new Integer(2)); }\n" +
-				"}\n" +
-				"class Y<C extends Number> {\n" + 
-				"	void foo(C x, C n) throws ExTwo {}\n" +
-				"}\n" + 
-				"class ExOne extends Exception {static final long serialVersionUID = 1;}\n" +
-				"class ExTwo extends Exception {static final long serialVersionUID = 2;}"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 4)\n" + 
-			"	void test2(X x) throws ExTwo { x.foo(new Integer(1), new Integer(2)); }\n" + 
-			"	           ^\n" + 
-			"X is a raw type. References to generic type X<A> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 4)\n" + 
-			"	void test2(X x) throws ExTwo { x.foo(new Integer(1), new Integer(2)); }\n" + 
-			"	                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: The method foo(Number, Number) belongs to the raw type Y. References to generic type Y<C> should be parameterized\n" + 
-			"----------\n"
-			// test2 - warning: [unchecked] unchecked call to foo(C,C) as a member of the raw type Y
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106090
-	public void test011a() {
-		this.runConformTest(
-			new String[] {
-				"Combined.java",
-				"public class Combined<A, B> {\n" + 
-				"	<T extends Comparable<T>> void pickOne(T value) throws ExOne {}\n" + 
-				"	<T> T pickOne(Comparable<T> value) throws ExTwo { return null;}\n" + 
-				"	void pickOne(Combined<Integer,Integer> c) throws ExOne { c.pickOne(\"test\"); }\n" + 
-				"	<T extends Number> void pickTwo(Number n, T t) throws ExOne {}\n" + 
-				"	void pickTwo(A x, Number n) throws ExTwo {}\n" + 
-				"	void pickTwo(Combined<Integer,Integer> c) throws ExTwo { c.pickTwo(new Integer(1), 2); }\n" +
-				"}\n" +
-				"class ExOne extends Exception {static final long serialVersionUID = 1;}\n" +
-				"class ExTwo extends Exception {static final long serialVersionUID = 2;}"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106090
-	public void test011b() {
-		this.runNegativeTest(
-			new String[] {
-				"Test1.java",
-				"public class Test1<AA, BB> {\n" +
-				"	<T extends Comparable<T>> void pickOne(T value) throws ExOne {}\n" +
-				"	<T> T pickOne(Comparable<T> value) throws ExTwo { return null;}\n" +
-				"	void pickOne2(Test1<Integer,Integer> c) throws ExOne { c.pickOne((Comparable) \"test\"); }\n" +
-				"}\n" +
-				"class ExOne extends Exception {static final long serialVersionUID = 1;}\n" +
-				"class ExTwo extends Exception {static final long serialVersionUID = 2;}"
-			},
-			"----------\n" + 
-			"1. WARNING in Test1.java (at line 4)\n" + 
-			"	void pickOne2(Test1<Integer,Integer> c) throws ExOne { c.pickOne((Comparable) \"test\"); }\n" + 
-			"	                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: Unchecked invocation pickOne(Comparable) of the generic method pickOne(T) of type Test1<Integer,Integer>\n" + 
-			"----------\n" + 
-			"2. WARNING in Test1.java (at line 4)\n" + 
-			"	void pickOne2(Test1<Integer,Integer> c) throws ExOne { c.pickOne((Comparable) \"test\"); }\n" + 
-			"	                                                                  ^^^^^^^^^^\n" + 
-			"Comparable is a raw type. References to generic type Comparable<T> should be parameterized\n" + 
-			"----------\n"
-		);
-	}
-	public void test012() {
-		this.runConformTest(
-			new String[] {
-				"XX.java",
-				"public class XX {\n" +
-				"	public static void main(String[] s) { System.out.println(new B().id(new Integer(1))); }\n" + 
-				"}\n" + 
-				"class A<T extends Number> { public int id(T t) {return 2;} }\n" + 
-				"class B extends A<Integer> { public int id(Integer i) {return 1;} }"
-			},
-			"1"
-		);
-	}
-	public void test012a() {
-		this.runNegativeTest(
-			new String[] {
-				"XX.java",
-				"public class XX {\n" +
-				"	public static void main(String[] s) { System.out.println(new B().id(new Integer(1))); }\n" + 
-				"}\n" + 
-				"class A<T extends Number> { public int id(T t) {return 2;} }\n" + 
-				"class B extends A<Integer> { public <ZZ> int id(Integer i) {return 1;} }"
-			},
-			"----------\n" + 
-			"1. ERROR in XX.java (at line 2)\r\n" + 
-			"	public static void main(String[] s) { System.out.println(new B().id(new Integer(1))); }\r\n" + 
-			"	                                                                 ^^\n" + 
-			"The method id(Integer) is ambiguous for the type B\n" + 
-			"----------\n"
-			// reference to id is ambiguous, both method id(T) in A<java.lang.Integer> and method <ZZ>id(java.lang.Integer) in B match
-		);
-	}
-	public void test013() {
-			this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	<E extends A> void m(E e) { System.out.print(1); }\n" + 
-				"	<E extends B> void m(E e) { System.out.print(2); }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		new X().m(new A());\n" +
-				"		new X().m(new B());\n" + 
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n"
-			},
-			"12"
-		);
-	}
-	public void test014() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void a(G x) { System.out.print(1); }\n" + 
-				"	void b(F x) { System.out.print(2); }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		H<C> h = null;\n" +
-				"		G<C> g = null;\n" +
-				"		new X().a(h);\n" +
-				"		new X().a(g);\n" +
-				"		new X().b(h);\n" +
-				"		new X().b(g);\n" +
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"1122"
-		);
-	}
-	public void test014a() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void a(G<C> x) { System.out.print(1); }\n" + 
-				"	void b(F<C> x) { System.out.print(2); }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		H h = null;\n" +
-				"		G g = null;\n" +
-				"		new X().a(h);\n" +
-				"		new X().a(g);\n" +
-				"		new X().b(h);\n" +
-				"		new X().b(g);\n" +
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"1122"
-		);
-	}
-	public void test014b() {
-		this.runConformTest(
-			new String[] {
-				"X0.java",
-				"public class X0 {\n" + 
-				"	void two(G x) { System.out.print(1); }\n" + 
-				"	void two(F<A> x) { System.out.print(2); }\n" + 
-				"	void three(G x) { System.out.print(3); }\n" + 
-				"	void three(F<B> x) { System.out.print(4); }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		H<C> h = null;\n" +
-				"		new X0().two(h);\n" +
-				"		new X0().three(h);\n" +
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"13"
-		);
-	}
-	public void test014c() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void a(G x) {}\n" + 
-				"	void a(F<C> x) {}\n" + 
-				"	void b(G<C> x) {}\n" + 
-				"	void b(F x) {}\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		H<C> h = null;\n" +
-				"		new X().a(h);\n" +
-				"		new X().b(h);\n" +
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 2)\r\n" + 
-			"	void a(G x) {}\r\n" + 
-			"	       ^\n" + 
-			"G is a raw type. References to generic type G<T2> should be parameterized\n" + 
-			"----------\n" + 
-			"2. WARNING in X.java (at line 5)\r\n" + 
-			"	void b(F x) {}\r\n" + 
-			"	       ^\n" + 
-			"F is a raw type. References to generic type F<T1> should be parameterized\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 8)\r\n" + 
-			"	new X().a(h);\r\n" + 
-			"	        ^\n" + 
-			"The method a(G) is ambiguous for the type X\n" + 
-			"----------\n"
-			// reference to a is ambiguous, both method a(G) in X and method a(F<C>) in X match
-		);
-	}
-	public void test014d() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void one(G<B> x) {}\n" + 
-				"	void one(F<B> x) {}\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		H<C> h = null;\n" +
-				"		new X().one(h);\n" + // no match
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 6)\r\n" + 
-			"	new X().one(h);\r\n" + 
-			"	        ^^^\n" + 
-			"The method one(G<B>) in the type X is not applicable for the arguments (H<C>)\n" + 
-			"----------\n"
-		);
-	}
-	public void test014e() {
-		this.runConformTest(
-			new String[] {
-				"X1.java",
-				"public class X1 {\n" + 
-				"	void two(G<C> x) { System.out.print(1); }\n" + 
-				"	void two(F<B> x) { System.out.print(2); }\n" + 
-				"	void three(G<B> x) { System.out.print(3); }\n" + 
-				"	void three(F<C> x) { System.out.print(4); }\n" + 
-				"	void four(G<C> x) { System.out.print(5); }\n" + 
-				"	void four(F<C> x) { System.out.print(6); }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		H<C> h = null;\n" +
-				"		new X1().two(h);\n" +
-				"		new X1().three(h);\n" +
-				"		new X1().four(h);\n" +
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"145"
-		);
-	}
-	public void test014f() {
-		this.runNegativeTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	<E1, E2 extends B> void three(G<E2> x) {}\n" + 
-				"	<E3 extends C> void three(F<E3> x) {}\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		H<C> h = null;\n" +
-				"		new X().three(h);\n" +
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"----------\n" + 
-			"1. ERROR in X.java (at line 6)\r\n" + 
-			"	new X().three(h);\r\n" + 
-			"	        ^^^^^\n" + 
-			"The method three(G<C>) is ambiguous for the type X\n" + 
-			"----------\n"
-		);
-	}
-	public void test014g() {
-		this.runConformTest(
-			new String[] {
-				"X3.java",
-				"public class X3 {\n" + 
-				"	<E1, E2 extends B> void one(G<E2> x) { System.out.print(1); }\n" + 
-				"	<E3 extends B> void one(F<E3> x) { System.out.print(2); }\n" + 
-				"	<E1, E2 extends C> void two(G<E2> x) { System.out.print(3); }\n" + 
-				"	<E3 extends B> void two(F<E3> x) { System.out.print(4); }\n" + 
-				"	<E1, E2 extends C> void four(G<E2> x) { System.out.print(5); }\n" + 
-				"	<E3 extends C> void four(F<E3> x) { System.out.print(6); }\n" + 
-				"	public static void main(String[] args) {\n" + 
-				"		H<C> h = null;\n" +
-				"		new X3().one(h);\n" +
-				"		new X3().two(h);\n" +
-				"		new X3().four(h);\n" +
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"135"
-		);
-	}
-	public void test014h() {
-		this.runConformTest(
-			new String[] {
-				"X.java",
-				"public class X {\n" + 
-				"	void x(G x) { System.out.print(true); }\n" + 
-				"	void x(F x) { System.out.print(false); }\n" +  
-				"	void x2(G<C> x) { System.out.print(true); }\n" + 
-				"	void x2(F<C> x) { System.out.print(false); }\n" +  
-				"	void a(G x) {}\n" + 
-				"	void a(F<C> x) {}\n" +  
-				"	void a2(G x) {}\n" + 
-				"	<T extends C> void a2(F<T> x) {}\n" +  
-				"	void a3(G x) {}\n" + 
-				"	<T extends F<C>> void a3(T x) {}\n" + 
-				"	void a4(G x) {}\n" + 
-				"	<T extends C, S extends F<T>> void a4(S x) {}\n" + 
-				"	<T extends G> void a5(T x) {}\n" + 
-				"	void a5(F<C> x) {}\n" +  
-				"	void b(G<C> x) { System.out.print(true); }\n" + 
-				"	void b(F x) { System.out.print(false); }\n" +  
-				"	void b2(G<C> x) { System.out.print(true); }\n" + 
-				"	<T extends F> void b2(T x) { System.out.print(false); }\n" +  
-				"	<T extends C> void b3(G<T> x) { System.out.print(true); }\n" + 
-				"	void b3(F x) { System.out.print(false); }\n" +  
-				"	<T extends G<C>> void b4(T x) { System.out.print(true); }\n" + 
-				"	void b4(F x) { System.out.print(false); }\n" +  
-				"	<T extends C, S extends G<T>> void b5(S x) { System.out.print(true); }\n" + 
-				"	void b5(F x) { System.out.print(false); }\n" + 
-				"	void c(G x) { System.out.print(true); }\n" + 
-				"	<T extends C> void c(F x) { System.out.print(false); }\n" +  
-				"	public static void main(String[] args) {\n" + 
-				"		H<C> h = null;\n" +
-				"		H hraw = null;\n" +
-				"		new X().x(h);\n" +
-				"		new X().x(hraw);\n" +
-				"		new X().x2(h);\n" +
-				"		new X().x2(hraw);\n" +
-				"		new X().b(h);\n" +
-				"		new X().b(hraw);\n" +
-				"		new X().b2(h);\n" +
-				"		new X().b2(hraw);\n" +
-				"		new X().b3(h);\n" +
-				"		new X().b3(hraw);\n" +
-				"		new X().b4(h);\n" +
-				"		new X().b4(hraw);\n" +
-				"		new X().b5(h);\n" +
-				"		new X().b5(hraw);\n" +
-				"		new X().c(h);\n" +
-				"		new X().c(hraw);\n" +
-				"	}\n" + 
-				"}\n" +
-				"class A {}\n" + 
-				"class B extends A {}\n" +
-				"class C extends B {}\n" +
-				"class F<T1> {} \n" + 
-				"class G<T2> extends F<T2> {}\n" +
-				"class H<T3> extends G<T3> {}"
-			},
-			"truetruetruetruetruetruetruetruetruetruetruetruetruetruetruetrue"
-		);
-		this.runNegativeTest(
-			new String[] {
-				"Y.java",
-				"public class Y extends X {\n" + 
-				"	public static void ambiguousCases() {\n" + 
-				"		H<C> h = null;\n" +
-				"		H hraw = null;\n" +
-				"		new X().a(h);\n" +
-				"		new X().a(hraw);\n" +
-				"		new X().a2(h);\n" +
-				"		new X().a2(hraw);\n" +
-				"		new X().a3(h);\n" +
-				"		new X().a3(hraw);\n" +
-				"		new X().a4(h);\n" +
-				"		new X().a4(hraw);\n" +
-				"		new X().a5(h);\n" +
-				"		new X().a5(hraw);\n" +
-				"	}\n" + 
-				"}\n"
-			},
-			"----------\n" + 
-			"1. WARNING in Y.java (at line 4)\n" + 
-			"	H hraw = null;\n" + 
-			"	^\n" + 
-			"H is a raw type. References to generic type H<T3> should be parameterized\n" + 
-			"----------\n" + 
-			"2. ERROR in Y.java (at line 5)\n" + 
-			"	new X().a(h);\n" + 
-			"	        ^\n" + 
-			"The method a(G) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"3. ERROR in Y.java (at line 6)\n" + 
-			"	new X().a(hraw);\n" + 
-			"	        ^\n" + 
-			"The method a(G) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"4. ERROR in Y.java (at line 7)\n" + 
-			"	new X().a2(h);\n" + 
-			"	        ^^\n" + 
-			"The method a2(G) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"5. ERROR in Y.java (at line 8)\n" + 
-			"	new X().a2(hraw);\n" + 
-			"	        ^^\n" + 
-			"The method a2(G) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"6. ERROR in Y.java (at line 9)\n" + 
-			"	new X().a3(h);\n" + 
-			"	        ^^\n" + 
-			"The method a3(G) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"7. ERROR in Y.java (at line 10)\n" + 
-			"	new X().a3(hraw);\n" + 
-			"	        ^^\n" + 
-			"The method a3(G) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"8. ERROR in Y.java (at line 11)\n" + 
-			"	new X().a4(h);\n" + 
-			"	        ^^\n" + 
-			"The method a4(G) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"9. ERROR in Y.java (at line 12)\n" + 
-			"	new X().a4(hraw);\n" + 
-			"	        ^^\n" + 
-			"The method a4(G) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"10. ERROR in Y.java (at line 13)\n" + 
-			"	new X().a5(h);\n" + 
-			"	        ^^\n" + 
-			"The method a5(H<C>) is ambiguous for the type X\n" + 
-			"----------\n" + 
-			"11. ERROR in Y.java (at line 14)\n" + 
-			"	new X().a5(hraw);\n" + 
-			"	        ^^\n" + 
-			"The method a5(H) is ambiguous for the type X\n" + 
-			"----------\n",
-			null,
-			false
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=79798
-	public void test015() {
-		this.runConformTest(
-			new String[] {
-				"E.java",
-				"public class E {\n" + 
-				"	public static void main(String[] s) {\n" + 
-				"		IJ ij = new K();\n" + 
-				"		try { ij.m(); } catch(E11 e) {}\n" +
-				"	}\n" +
-				"}\n" + 
-				"interface I { void m() throws E1; }\n" + 
-				"interface J { void m() throws E11; }\n" +
-				"interface IJ extends I, J {}\n" + 
-				"class K implements IJ { public void m() {} }\n" + 
-				"class E1 extends Exception { static final long serialVersionUID = 1; }\n" +
-				"class E11 extends E1 { static final long serialVersionUID = 2; }\n" + 
-				"class E2 extends Exception { static final long serialVersionUID = 3; }"
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=79798
-	public void _test016() {
-		this.runConformTest(
-			new String[] {
-				"E.java",
-				"public class E {\n" + 
-				"	public static void main(String[] s) {\n" + 
-				"		IJ ij = new K();\n" + 
-				"		try { ij.m(); } catch(E11 e) {}\n" +
-				"	}\n" +
-				"}\n" + 
-				"interface I { void m() throws E1; }\n" + 
-				"interface J { void m() throws E2, E11; }\n" +
-				"interface IJ extends I, J {}\n" + 
-				"class K implements IJ { public void m() {} }\n" + 
-				"class E1 extends Exception { static final long serialVersionUID = 1; }\n" +
-				"class E11 extends E1 { static final long serialVersionUID = 2; }\n" + 
-				"class E2 extends Exception { static final long serialVersionUID = 3; }"
-			},
-			""
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=79798
-	public void _test016a() {
-		this.runNegativeTest(
-			new String[] {
-				"E.java",
-				"public class E {\n" + 
-				"	public static void main(String[] s) {\n" + 
-				"		IJ ij = new K();\n" + 
-				"		ij.m();\n" + 
-				"		try { ij.m(); } catch(E2 e) {}\n" +
-				"	}\n" +
-				"}\n" + 
-				"interface I { void m() throws E1; }\n" + 
-				"interface J { void m() throws E2, E11; }\n" +
-				"interface IJ extends I, J {}\n" + 
-				"class K implements IJ { public void m() {} }\n" + 
-				"class E1 extends Exception { static final long serialVersionUID = 1; }\n" +
-				"class E11 extends E1 { static final long serialVersionUID = 2; }\n" + 
-				"class E2 extends Exception { static final long serialVersionUID = 3; }"
-			},
-			"----------\n" + 
-			"1. ERROR in E.java (at line 4)\r\n" + 
-			"	ij.m();\r\n" + 
-			"	^^^^^^\n" + 
-			"Unhandled exception type E11\n" + 
-			"----------\n" + 
-			"2. ERROR in E.java (at line 5)\r\n" + 
-			"	try { ij.m(); } catch(E2 e) {}\r\n" + 
-			"	      ^^^^^^\n" + 
-			"Unhandled exception type E11\n" + 
-			"----------\n" + 
-			"3. ERROR in E.java (at line 5)\r\n" + 
-			"	try { ij.m(); } catch(E2 e) {}\r\n" + 
-			"	                      ^^\n" + 
-			"Unreachable catch block for E2. This exception is never thrown from the try statement body\n" + 
-			"----------\n"
-			// 4: unreported exception E11; must be caught or declared to be thrown
-			// 5: exception E2 is never thrown in body of corresponding try statement
-			// 5: unreported exception E11; must be caught or declared to be thrown
-		);
-	}
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=149893
-	public void test017() {
-		this.runConformTest(
-			new String[] {
-				"AbstractFilter.java",
-				"import java.util.*;\n" + 
-				"public class AbstractFilter<T> implements IFilter<T> {\n" + 
-				"	public final <E extends T> boolean selekt(E obj) { return true; }\n" + 
-				"	public final <E extends T> List<E> filter(List<E> elements) {\n" + 
-				"		if ((elements == null) || (elements.size() == 0)) return elements;\n" +
-				"		List<E> okElements = new ArrayList<E>(elements.size());\n" +
-				"		for (E obj : elements) {\n" +
-				"			if (selekt(obj)) okElements.add(obj);\n" +
-				"		}\n" +
-				"		return okElements;" +
-				"	}\n" +
-				"}\n" + 
-				"interface IFilter<T> {\n" + 
-				"	<E extends T> boolean selekt(E obj);\n" +
-				"	<E extends T> List<E> filter(List<E> elements);\n" + 
-				"}"
-			},
-			""
-		);
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=147647
-	public void test018() {
-	this.runConformTest(
-		new String[] {
-			"Y.java",
-			"class X<T extends Object> {\n" + 
-			"  public static <U extends Object> X<U> make(Class<U> clazz) {\n" + 
-			"    System.out.print(false);\n" + 
-			"    return new X<U>();\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"public class Y<V extends String> extends X<V> {\n" + 
-			"  public static <W extends String> Y<W> make(Class<W> clazz) {\n" + 
-			"    System.out.print(true);\n" + 
-			"    return new Y<W>();\n" + 
-			"  }\n" + 
-			"  public static void main(String[] args) throws Exception {\n" + 
-			"    Y.make(String.class);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"true");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=147647
-	// in fact, <W extends String> Y<W> make(Class<W> clazz) is the most
-	// specific method according to JLS 15.12.2.5
-	public void test019() {
-	this.runConformTest(
-		new String[] {
-			"Y.java",
-			"class X<T extends Object> {\n" + 
-			"  public static <U extends Object> X<U> make(Class<U> clazz) {\n" + 
-			"    System.out.print(false);\n" + 
-			"    return new X<U>();\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"public class Y<V extends String> extends X<V> {\n" + 
-			"  public static <W extends String> Y<W> make(Class<W> clazz) {\n" + 
-			"    System.out.print(true);\n" + 
-			"    return new Y<W>();\n" + 
-			"  }\n" + 
-			"  public static void main(String[] args) throws Exception {\n" + 
-			"    Y.make(getClazz());\n" + 
-			"  }\n" + 
-			"  public static Class getClazz() {\n" + 
-			"    return String.class;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"true");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=147647
-	public void test020() {
-	this.runConformTest(
-		new String[] {
-			"Y.java",
-			"class X<T extends Object> {\n" + 
-			"  public static <U extends Object> X<U> make(Class<U> clazz) {\n" + 
-			"    System.out.print(true);\n" + 
-			"    return new X<U>();\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"public class Y<V extends String> extends X<V> {\n" + 
-			"  public static <W extends String> Y<W> make(Class<W> clazz) {\n" + 
-			"    System.out.print(false);\n" + 
-			"    return new Y<W>();\n" + 
-			"  }\n" + 
-			"  public static void main(String[] args) throws Exception {\n" + 
-			"    Y.make(getClazz().newInstance().getClass());\n" + 
-			"  }\n" + 
-			"  public static Class getClazz() {\n" + 
-			"    return String.class;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"true");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=147647
-	// variant: having both methods in the same class should not change anything
-	public void test021() {
-	this.runConformTest(
-		new String[] {
-			"Y.java",
-			"class X<T extends Object> {\n" + 
-			"}\n" + 
-			"public class Y<V extends String> extends X<V> {\n" + 
-			"  public static <W extends String> Y<W> make(Class<W> clazz) {\n" + 
-			"    System.out.print(true);\n" + 
-			"    return new Y<W>();\n" + 
-			"  }\n" + 
-			"  public static <U extends Object> X<U> make(Class<U> clazz) {\n" + 
-			"    System.out.print(false);\n" + 
-			"    return new X<U>();\n" + 
-			"  }\n" + 
-			"  public static void main(String[] args) throws Exception {\n" + 
-			"    Y.make(getClazz());\n" + 
-			"  }\n" + 
-			"  public static Class getClazz() {\n" + 
-			"    return String.class;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"true");
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=147647
-	// variant: using instances triggers raw methods, which are ambiguous
-	public void test022() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X<T extends Object> {\n" + 
-			"}\n" + 
-			"class Y<V extends String> extends X<V> {\n" + 
-			"  public <W extends String> Y<W> make(Class<W> clazz) {\n" + 
-			"    return new Y<W>();\n" + 
-			"  }\n" + 
-			"  public <U extends Object> X<U> make(Class<U> clazz) {\n" + 
-			"    return new X<U>();\n" + 
-			"  }\n" + 
-			"  public static void main(String[] args) throws Exception {\n" + 
-			"    Y y = new Y();\n" + 
-			"    y.make(String.class);\n" + 
-			"    y.make(getClazz());\n" + 
-			"    y.make(getClazz().newInstance().getClass());\n" + 
-			"  }\n" + 
-			"  public static Class getClazz() {\n" + 
-			"    return String.class;\n" + 
-			"  }\n" + 
-			"}"			
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 3)\n" + 
-		"	class Y<V extends String> extends X<V> {\n" + 
-		"	                  ^^^^^^\n" + 
-		"The type parameter V should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"2. WARNING in X.java (at line 4)\n" + 
-		"	public <W extends String> Y<W> make(Class<W> clazz) {\n" + 
-		"	                  ^^^^^^\n" + 
-		"The type parameter W should not be bounded by the final type String. Final types cannot be further extended\n" + 
-		"----------\n" + 
-		"3. WARNING in X.java (at line 11)\n" + 
-		"	Y y = new Y();\n" + 
-		"	^\n" + 
-		"Y is a raw type. References to generic type Y<V> should be parameterized\n" + 
-		"----------\n" + 
-		"4. WARNING in X.java (at line 11)\n" + 
-		"	Y y = new Y();\n" + 
-		"	          ^\n" + 
-		"Y is a raw type. References to generic type Y<V> should be parameterized\n" + 
-		"----------\n" + 
-		"5. ERROR in X.java (at line 12)\n" + 
-		"	y.make(String.class);\n" + 
-		"	  ^^^^\n" + 
-		"The method make(Class) is ambiguous for the type Y\n" + 
-		"----------\n" + 
-		"6. ERROR in X.java (at line 13)\n" + 
-		"	y.make(getClazz());\n" + 
-		"	  ^^^^\n" + 
-		"The method make(Class) is ambiguous for the type Y\n" + 
-		"----------\n" + 
-		"7. ERROR in X.java (at line 14)\n" + 
-		"	y.make(getClazz().newInstance().getClass());\n" + 
-		"	  ^^^^\n" + 
-		"The method make(Class) is ambiguous for the type Y\n" + 
-		"----------\n" + 
-		"8. WARNING in X.java (at line 16)\n" + 
-		"	public static Class getClazz() {\n" + 
-		"	              ^^^^^\n" + 
-		"Class is a raw type. References to generic type Class<T> should be parameterized\n" + 
-		"----------\n");
-	}	
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159711
-public void test023() {
-this.runConformTest(
-	new String[] {
-		"X.java",
-		"import java.util.*;\n" + 
-		"public class X {\n" +
-		"  public static void staticFoo(Collection<?> p) {\n" +
-		"    System.out.print(1);\n" +
-		"  }\n" +
-		"  public static <T extends List<?>> void staticFoo(T p) {\n" + 
-		"    System.out.print(2);\n" +
-		"  }\n" +
-		"  public void foo(Collection<?> p) {\n" +
-		"    System.out.print(1);\n" +
-		"  }\n" +
-		"  public <T extends List<?>> void foo(T p) {\n" + 
-		"    System.out.print(2);\n" +
-		"  }\n" +
-		"  public void foo2(Collection<?> p) {\n" +
-		"    System.out.print(1);\n" +
-		"  }\n" +
-		"  public void foo2(List<?> p) {\n" + 
-		"    System.out.print(2);\n" +
-		"  }\n" +
-		"  public static void main(String[] args) {\n" + 
-		"    staticFoo(new ArrayList<String>(Arrays.asList(\"\")));\n" + 
-		"    new X().foo(new ArrayList<String>(Arrays.asList(\"\")));\n" + 
-		"    new X().foo2(new ArrayList<String>(Arrays.asList(\"\")));\n" + 
-		"  }\n" +
-		"}"
-	},
-	"222");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=159711
-// self contained variant
-public void test024() {
-this.runConformTest(
-	new String[] {
-		"X.java",
-		"public class X {\n" +
-		"  public static void foo(L1<?> p) {\n" +
-		"    System.out.println(1);\n" +
-		"  }\n" +
-		"  public static <T extends L2<?>> void foo(T p) {\n" + 
-		"    System.out.println(2);\n" +
-		"  }\n" +
-		"  public static void main(String[] args) {\n" + 
-		"    foo(new L3<String>());\n" + 
-		"  }\n" +
-		"}",
-		"L1.java",
-		"public interface L1<T> {\n" +
-		"}",
-		"L2.java",
-		"public interface L2<T> extends L1<T> {\n" +
-		"}",
-		"L3.java",
-		"public class L3<T> implements L2<T> {\n" +
-		"  public L3() {\n" +
-		"  }\n" +
-		"}",
-	},
-	"2");
-}	
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162026
-public void test025() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"  J m = new Y();" +
-			"  void foo() {\n" +
-			"    m.foo(1.0f);\n" +
-			"  }\n" +
-			"}",
-			"I.java",
-			"public interface I {\n" +
-			"  <T extends Number> T foo(final Number p);\n" +
-			"}",
-			"J.java",
-			"public interface J extends I {\n" +
-			"  Float foo(final Number p);\n" +
-			"}",
-			"Y.java",
-			"public class Y implements J {\n" +
-			"  public Float foo(final Number p){\n" +
-			"    return null;" +
-			"  }\n" +
-			"}",
-		},
-		"");
-}	
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162026
-// variant
-public void test026() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"  void foo() {\n" +
-			"    (new Y()).foo(1.0f);\n" +
-			"  }\n" +
-			"}",
-			"I.java",
-			"public interface I {\n" +
-			"  <T extends Number> T foo(final Number p);\n" +
-			"}",
-			"J.java",
-			"public interface J extends I {\n" +
-			"  Float foo(final Number p);\n" +
-			"}",
-			"Y.java",
-			"public class Y implements J {\n" +
-			"  public Float foo(final Number p){\n" +
-			"    return null;" +
-			"  }\n" +
-			"}",
-		},
-		"");
-}	
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162026
-// variant
-public void test027() {
-	this.runNegativeTest(
-		new String[] {
-			"J.java",
-			"public interface J {\n" +
-			"  <T extends Number> T foo(final Number p);\n" +
-			"  Float foo(final Number p);\n" +
-			"}",
-		},
-		"----------\n" + 
-		"1. ERROR in J.java (at line 2)\n" + 
-		"	<T extends Number> T foo(final Number p);\n" + 
-		"	                     ^^^^^^^^^^^^^^^^^^^\n" + 
-		"Duplicate method foo(Number) in type J\n" + 
-		"----------\n" + 
-		"2. ERROR in J.java (at line 3)\n" + 
-		"	Float foo(final Number p);\n" + 
-		"	      ^^^^^^^^^^^^^^^^^^^\n" + 
-		"Duplicate method foo(Number) in type J\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// **
-public void test028() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface Irrelevant {}\n" + 
-			"interface I {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"interface J extends Irrelevant, I {\n" + 
-			"  String foo(Number n);\n" + 
-			"}\n" + 
-			"interface K {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X implements J, K {\n" + 
-			"  void foo() {\n" + 
-			"    foo(0.0f);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - simplified
-// **
-public void test029() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface J {\n" + 
-			"  String foo(Number n);\n" + 
-			"}\n" + 
-			"interface K {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X implements J, K {\n" + 
-			"  void foo() {\n" + 
-			"    foo(0.0f);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - same return type
-public void test030() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface J {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"interface K {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X implements J, K {\n" + 
-			"  void foo() {\n" + 
-			"    foo(0.0f);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant
-// **
-public void test031() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface Irrelevant {}\n" + 
-			"interface I {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"interface J extends Irrelevant, I {\n" + 
-			"  String foo(Number n);\n" + 
-			"}\n" + 
-			"interface K {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X implements Irrelevant, I, J, K {\n" + 
-			"  void foo() {\n" + 
-			"    foo(0.0f);\n" +
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162073
-public void test032() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  <T extends Exception & Cloneable> T foo(Number n);\n" + 
-			"}\n" + 
-			"interface J extends I {\n" + 
-			"  XX foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X implements J {\n" + 
-			"}\n" + 
-			"abstract class XX extends Exception implements Cloneable {}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162073
-// variant that shows that the use of a substitution is needed during the bounds
-// check
-public void test032a() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class Z { }\n" +
-			"class Y <U> extends Z { }" +
-			"interface I {\n" + 
-			"  <T extends Y<T> & Cloneable> T foo(Number n);\n" + 
-			"}\n" + 
-			"interface J extends I {\n" + 
-			"  XX foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X implements J {\n" + 
-			"}\n" + 
-			"abstract class XX extends Y<XX> implements Cloneable {}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162073
-// variant
-public void test032b() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class A<T> { }" +			
-			"interface I {\n" + 
-			"  <T extends Exception & Cloneable> A<T> foo(Number n);\n" +
-			"}\n" +
-			"interface J extends I {\n" +
-			"  A<XX> foo(Number n);\n" +
-			"}\n" + 
-			"public abstract class X implements J {\n" + 
-			"}\n" + 
-			"abstract class XX extends Exception implements Cloneable {}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162073
-// variant
-public void test032c() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class A<T> { }" +			
-			"interface I {\n" + 
-			"  <T extends Exception & Cloneable> A<T> foo(Number n);\n" +
-			"}\n" +
-			"interface J extends I {\n" +
-			"  <S extends XX>  A<S> foo(Number n);\n" +
-			"}\n" + 
-			"public abstract class X implements J {\n" + 
-			"}\n" + 
-			"abstract class XX extends Exception implements Cloneable {}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162073
-// variant
-public void test032d() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class A<T> { }" +			
-			"interface I {\n" + 
-			"  A<XX> foo(Number n);\n" +
-			"}\n" +
-			"interface J extends I {\n" +
-			"  <T extends Exception & Cloneable> A<T> foo(Number n);\n" +
-			"}\n" + 
-			"public abstract class X implements J {\n" + 
-			"}\n" + 
-			"abstract class XX extends Exception implements Cloneable {}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162073
-// variant
-public void test033() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  <T extends Exception & Cloneable> T foo(Number n);\n" + 
-			"}\n" + 
-			"interface J extends I {\n" + 
-			"  XX foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X implements J {\n" + 
-			"  void foo() {\n" + 
-			"  }\n" + 
-			"  public XX foo(Number n) {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"abstract class XX extends Exception implements Cloneable {}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162073
-// variant that rightly complains
-public void test034() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  <T extends Exception & Cloneable> T foo(Number n);\n" + 
-			"}\n" + 
-			"interface J extends I {\n" + 
-			"  XX foo(Number n);\n" + 
-			"}\n" + 
-			"interface K {\n" + 
-			"  NullPointerException foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X implements J, K {\n" + 
-			"}\n" + 
-			"abstract class XX extends Exception implements Cloneable {}"
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 5)\n" + 
-		"	XX foo(Number n);\n" + 
-		"	^^\n" + 
-		"Type safety: The return type XX for foo(Number) from the type J needs unchecked conversion to conform to T from the type I\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 10)\n" + 
-		"	public abstract class X implements J, K {\n" + 
-		"	                      ^\n" + 
-		"The return type is incompatible with K.foo(Number), J.foo(Number)\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - the inheriting class implements foo
-public void test035() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"abstract class J {\n" + 
-			"  abstract String foo(Number n);\n" + 
-			"}\n" + 
-			"public class X extends J implements I {\n" + 
-			"  void bar() {\n" + 
-			"    foo(0.0f);\n" + // calls X#foo(Number)
-			"  }\n" + 
-			"  public String foo(Number n) {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - extending instead of implementing
-// **
-public void test037() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  Object foo(Number n);\n" + 
-			"}\n" + 
-			"abstract class J {\n" + 
-			"  abstract String foo(Number n);\n" + 
-			"}\n" + 
-			"public abstract class X extends J implements I {\n" + 
-			"  void bar() {\n" + 
-			"    foo(0.0f);\n" +
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - no promotion of parameter from float to Number
-// **
-public void test038() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  Object foo(float f);\n" + 
-			"}\n" + 
-			"abstract class J {\n" + 
-			"  public abstract String foo(float f);\n" + 
-			"}\n" + 
-			"public abstract class X extends J implements I {\n" + 
-			"  void bar() {\n" + 
-			"    foo(0.0f);\n" +
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - an explicit cast solves the issue
-public void test039() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  Object foo(float f);\n" + 
-			"}\n" + 
-			"abstract class J {\n" + 
-			"  public abstract String foo(float f);\n" + 
-			"}\n" + 
-			"public abstract class X extends J implements I {\n" + 
-			"  void bar() {\n" + 
-			"    String s = ((J) this).foo(0.0f);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - an explicit cast solves the issue
-public void test040() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  Object foo(float f);\n" + 
-			"}\n" + 
-			"abstract class J {\n" + 
-			"  public abstract String foo(float f);\n" + 
-			"}\n" + 
-			"public abstract class X extends J implements I {\n" + 
-			"  void bar() {\n" + 
-			"    Object o = ((I) this).foo(0.0f);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - connecting return types
-public void test041() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  Object foo(float f);\n" + 
-			"}\n" + 
-			"abstract class J {\n" + 
-			"  public abstract String foo(float f);\n" + 
-			"}\n" + 
-			"public abstract class X extends J implements I {\n" + 
-			"  void bar() {\n" + 
-			"    String s = ((I) this).foo(0.0f);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	String s = ((I) this).foo(0.0f);\n" + 
-		"	           ^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Type mismatch: cannot convert from Object to String\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - a further inheriting class implements String foo
-// **
-public void test042() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  Object foo(float f);\n" + 
-			"}\n" + 
-			"abstract class J {\n" + 
-			"  public abstract String foo(float f);\n" + 
-			"}\n" + 
-			"public abstract class X extends J implements I {\n" + 
-			"  void bar() {\n" + 
-			"    foo(0.0f);\n" +
-			"  }\n" + 
-			"}\n" + 
-			"class Z extends X {\n" +
-			"  @Override" + 
-			"  public String foo(float f) {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=162065
-// variant - a further inheriting class implements Object foo
-public void test043() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  Object foo(float f);\n" + 
-			"}\n" + 
-			"abstract class J {\n" + 
-			"  public abstract String foo(float f);\n" + 
-			"}\n" + 
-			"public abstract class X extends J implements I {\n" + 
-			"  void bar() {\n" + 
-			"    foo(0.0f);\n" +
-			"  }\n" + 
-			"}\n" + 
-			"class Z extends X {\n" +
-			"  @Override\n" + 
-			"  public Object foo(float f) {\n" +  // cannot override String foo
-			"    return null;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 14)\n" + 
-		"	public Object foo(float f) {\n" + 
-		"	       ^^^^^^\n" + 
-		"The return type is incompatible with J.foo(float)\n" + 
-		"----------\n");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=163370
-public void test044() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I<E> {}\n" + 
-			"class Y<E> {}\n" + 
-			"public class X<E extends Y<E>> implements I<E> {\n" + 
-			"  public static <E extends Y<E>> X<E> bar(X<E> s) {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  public static <E extends Y<E>> X<E> bar(I<E> c) {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  public static <E extends Y<E>> X<E> foo(X<E> s) {\n" + 
-			"    X<E> result = bar(s);\n" + 
-			"    return result;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165620
-public void test045() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"abstract class Y<T> implements I<T> {\n" + 
-			"}\n" + 
-			"interface I<T> { \n" + 
-			"}\n" + 
-			"interface J<T> {\n" + 
-			"}\n" + 
-			"class X {\n" + 
-			"  public static <V extends J<? super V>> V foo(final I<V> a)\n" + 
-			"  {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  public static <V extends J<? super V>> V foo(final Y<V> a)\n" + 
-			"  {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  public static <V extends J<? super V>> void test(final Y<V> a)\n" + 
-			"  {\n" + 
-			"    foo(a);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=163370
-// variant
-public void test046() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"abstract class Y<T, U> implements I<T, U> {\n" + 
-			"}\n" + 
-			"interface I<T, U> { \n" + 
-			"}\n" + 
-			"interface J<T, U> {\n" + 
-			"}\n" + 
-			"class X {\n" + 
-			"  public static <V extends J<V, W>, W extends J<V, W>> V foo(final I<V, W> a)\n" + 
-			"  {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  public static <V extends J<V, W>, W extends J<V, W>> V foo(final Y<V, W> a)\n" + 
-			"  {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"  public static <V extends J<V, W>, W extends J<V, W>> void test(final Y<V, W> a)\n" + 
-			"  {\n" + 
-			"    foo(a);\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=163590
-// **
-public void test047() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X<T extends I & J> {\n" + 
-			"  void foo(T t) {\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"interface I {\n" + 
-			"  public int method();\n" + 
-			"}\n" + 
-			"interface J {\n" + 
-			"  public boolean method();\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X<T extends I & J> {\n" + 
-		"	               ^\n" + 
-		"The return type is incompatible with J.method(), I.method()\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=163590
-// Variant: javac complains as well if we attempt to use method, but noone
-// complains upon bar or CONSTANT.
-public void test048() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X<T extends I & J> {\n" + 
-			"  void foo(T t) {\n" + 
-			"    t.method();\n" + 
-			"    t.bar();\n" + 
-			"    if (t.CONSTANT > 0);\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"interface I {\n" + 
-			"  public int method();\n" + 
-			"  void bar();\n" + 
-			"}\n" + 
-			"interface J {\n" + 
-			"  public boolean method();\n" + 
-			"  static final int CONSTANT = 0;\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X<T extends I & J> {\n" + 
-		"	               ^\n" + 
-		"The return type is incompatible with J.method(), I.method()\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	t.method();\n" + 
-		"	  ^^^^^^\n" + 
-		"The method method() is ambiguous for the type T\n" + 
-		"----------\n" + 
-		"3. WARNING in X.java (at line 5)\n" + 
-		"	if (t.CONSTANT > 0);\n" + 
-		"	      ^^^^^^^^\n" + 
-		"The static field J.CONSTANT should be accessed in a static way\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=163590
-// can't implement both interfaces though
-public void test049() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"  public int method();\n" + 
-			"}\n" + 
-			"interface J {\n" + 
-			"  public boolean method();\n" + 
-			"}\n" + 
-			"class X implements I, J {\n" + 
-			"  public int method() {\n" + 
-			"    return 0;\n" + 
-			"  }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	public int method() {\n" + 
-		"	       ^^^\n" + 
-		"The return type is incompatible with J.method()\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=163590
-// variant: secure the legal case
-public void test050() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X<T extends I & J> {\n" + 
-			"  void foo(T t) {\n" + 
-			"  }\n" + 
-			"}\n" + 
-			"interface I {\n" + 
-			"  public int method();\n" + 
-			"}\n" + 
-			"interface J {\n" + 
-			"  public int method();\n" + 
-			"}\n"
-		},
-		"");
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/ArrayTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/ArrayTest.java
deleted file mode 100644
index 85b0307..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/ArrayTest.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.future.compiler.regression;
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractRegressionTest;
-
-import junit.framework.Test;
-
-public class ArrayTest extends AbstractRegressionTest {
-
-	public ArrayTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildAllCompliancesTestSuite(testClass());
-	}
-	
-	public static Class testClass() {
-		return ArrayTest.class;
-	}
-
-public void test001() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  int[] x= new int[] {,};\n" + 
-		"}\n",
-	});
-}
-
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=28615
- */
-public void test002() {
-	this.runConformTest(
-		new String[] {
-			"A.java",
-			"public class A {\n" +
-			"    public static void main(String[] args) {\n" +
-			"        float[] tab = new float[] {-0.0f};\n" +
-			"        System.out.print(tab[0]);\n" +
-			"    }\n" +
-			"}",
-		},
-		"-0.0");
-}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=28615
- */
-public void test003() {
-	this.runConformTest(
-		new String[] {
-			"A.java",
-			"public class A {\n" +
-			"    public static void main(String[] args) {\n" +
-			"        float[] tab = new float[] {0.0f};\n" +
-			"        System.out.print(tab[0]);\n" +
-			"    }\n" +
-			"}",
-		},
-		"0.0");
-}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=28615
- */
-public void test004() {
-	this.runConformTest(
-		new String[] {
-			"A.java",
-			"public class A {\n" +
-			"    public static void main(String[] args) {\n" +
-			"        int[] tab = new int[] {-0};\n" +
-			"        System.out.print(tab[0]);\n" +
-			"    }\n" +
-			"}",
-		},
-		"0");
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=37387
- */
-//public void test005() {
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" +
-//			"	 private static final Object X[] = new Object[]{null,null};\n" +
-//			"    public static void main(String[] args) {\n" +
-//			"		System.out.println(\"SUCCESS\");\n" +
-//			"    }\n" +
-//			"}\n",
-//		},
-//		"SUCCESS");
-//		
-//	ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//	String actualOutput = null;
-//	try {
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(new File(OUTPUT_DIR + File.separator  +"X.class"));
-//		actualOutput =
-//			disassembler.disassemble(
-//				classFileBytes,
-//				"\n",
-//				ClassFileBytesDisassembler.DETAILED); 
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		e.printStackTrace();
-//		assertTrue("ClassFormatException", false);
-//	} catch (IOException e) {
-//		e.printStackTrace();
-//		assertTrue("IOException", false);
-//	}
-//	
-//	String expectedOutput = 
-//		"  static {};\n" + 
-//		"    0  iconst_2\n" + 
-//		"    1  anewarray java.lang.Object [3]\n" + 
-//		"    4  putstatic X.X : java.lang.Object[] [9]\n" + 
-//		"    7  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 2]\n" + 
-//		"        [pc: 7, line: 1]\n";
-//
-//	int index = actualOutput.indexOf(expectedOutput);
-//	if (index == -1 || expectedOutput.length() == 0) {
-//		System.out.println(Util.displayString(actualOutput, 3));
-//	}
-//	if (index == -1) {
-//		assertEquals("unexpected bytecode sequence", expectedOutput, actualOutput);
-//	}
-//}
-/**
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=80597
- */
-public void test006() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"	void foo() {\n" +
-			"		char[][][] array = new char[][][10];\n" +
-			"	}\n" +
-			"}",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	char[][][] array = new char[][][10];\n" + 
-		"	                                ^^\n" + 
-		"Cannot specify an array dimension after an empty dimension\n" + 
-		"----------\n");
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=85203
- */
-public void test007() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	static long lfield;\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		lfield = args.length;\n" + 
-			"		lfield = args(args).length;\n" + 
-			"		\n" + 
-			"	}\n" + 
-			"	static String[] args(String[] args) {\n" + 
-			"		return args;\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"");
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=85125
- */
-public void test008() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"	public String getTexts(int i) [] {\n" +
-			"		String[] texts = new String[1];\n" +
-			"		return texts; \n" +
-			"	}\n" +
-			"    public static void main(String[] args) {\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"    }\n" +
-			"}\n",
-		},
-		"SUCCESS");
-}
-// check deep resolution of faulty initializer (no array expected type)
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=120263 
-public void test009() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo() {\n" + 
-			"		X x = { 10, zork() };\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	X x = { 10, zork() };\n" + 
-		"	      ^^^^^^^^^^^^^^\n" + 
-		"Type mismatch: cannot convert from int[] to X\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 3)\n" + 
-		"	X x = { 10, zork() };\n" + 
-		"	            ^^^^\n" + 
-		"The method zork() is undefined for the type X\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=124101
-public void test010() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	int i = {};\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	int i = {};\n" + 
-		"	        ^^\n" + 
-		"Type mismatch: cannot convert from Object[] to int\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148807 - variation
-//public void test011() {
-//	if (new CompilerOptions(getCompilerOptions()).complianceLevel < ClassFileConstants.JDK1_5) {
-//		// there is a bug on 1.4 VMs which make them fail verification (see 148807)
-//		return;
-//	}
-//	this.runConformTest(
-//			new String[] {
-//				"X.java",
-//				"public class X {\n" + 
-//				"	public static void main(String[] args) {\n" + 
-//				"		try {\n" + 
-//				"			Object[][] all = new String[1][];\n" + 
-//				"			all[0] = new Object[0];\n" + 
-//				"		} catch (ArrayStoreException e) {\n" + 
-//				"			System.out.println(\"SUCCESS\");\n" + 
-//				"		}\n" + 
-//				"	}\n" + 
-//				"}", // =================
-//			},
-//			"SUCCESS");
-//		String expectedOutput =
-//			"  // Method descriptor #15 ([Ljava/lang/String;)V\n" + 
-//			"  // Stack: 3, Locals: 2\n" + 
-//			"  public static void main(java.lang.String[] args);\n" + 
-//			"     0  iconst_1\n" + 
-//			"     1  anewarray java.lang.String[] [16]\n" + 
-//			"     4  astore_1 [all]\n" + 
-//			"     5  aload_1 [all]\n" + 
-//			"     6  iconst_0\n" + 
-//			"     7  iconst_0\n" + 
-//			"     8  anewarray java.lang.Object [3]\n" + 
-//			"    11  aastore\n" + 
-//			"    12  goto 24\n" + 
-//			"    15  astore_1 [e]\n" + 
-//			"    16  getstatic java.lang.System.out : java.io.PrintStream [18]\n" + 
-//			"    19  ldc <String \"SUCCESS\"> [24]\n" + 
-//			"    21  invokevirtual java.io.PrintStream.println(java.lang.String) : void [26]\n" + 
-//			"    24  return\n" + 
-//			"      Exception Table:\n" + 
-//			"        [pc: 0, pc: 12] -> 15 when : java.lang.ArrayStoreException\n" + 
-//			"      Line numbers:\n" + 
-//			"        [pc: 0, line: 4]\n" + 
-//			"        [pc: 5, line: 5]\n" + 
-//			"        [pc: 15, line: 6]\n" + 
-//			"        [pc: 16, line: 7]\n" + 
-//			"        [pc: 24, line: 9]\n" + 
-//			"      Local variable table:\n" + 
-//			"        [pc: 0, pc: 25] local: args index: 0 type: java.lang.String[]\n" + 
-//			"        [pc: 5, pc: 15] local: all index: 1 type: java.lang.Object[][]\n" + 
-//			"        [pc: 16, pc: 24] local: e index: 1 type: java.lang.ArrayStoreException\n";
-//
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue(false);
-//	} catch (IOException e) {
-//		assertTrue(false);
-//	}		
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=148807 - variation
-//public void test012() {
-//	if (new CompilerOptions(getCompilerOptions()).complianceLevel < ClassFileConstants.JDK1_5) {
-//		// there is a bug on 1.4 VMs which make them fail verification (see 148807)
-//		return;
-//	}
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"import java.util.Map;\n" + 
-//			"\n" + 
-//			"public class X {\n" + 
-//			"	Map fValueMap;\n" + 
-//			"\n" + 
-//			"	public static void main(String[] args) {\n" + 
-//			"		System.out.println(\"SUCCESS\");\n" + 
-//			"	}\n" + 
-//			"	public Object[][] getAllChoices() {\n" + 
-//			"		Object[][] all = new String[this.fValueMap.size()][];\n" + 
-//			"		return all;\n" + 
-//			"	}\n" + 
-//			"}", // =================,
-//		},
-//		"SUCCESS");
-//	String expectedOutput =
-//	"  // Method descriptor #35 ()[[Ljava/lang/Object;\n" + 
-//	"  // Stack: 1, Locals: 2\n" + 
-//	"  public java.lang.Object[][] getAllChoices();\n" + 
-//	"     0  aload_0 [this]\n" + 
-//	"     1  getfield X.fValueMap : java.util.Map [36]\n" + 
-//	"     4  invokeinterface java.util.Map.size() : int [38] [nargs: 1]\n" + 
-//	"     9  anewarray java.lang.String[] [44]\n" + 
-//	"    12  astore_1 [all]\n" + 
-//	"    13  aload_1 [all]\n" + 
-//	"    14  areturn\n" + 
-//	"      Line numbers:\n" + 
-//	"        [pc: 0, line: 10]\n" + 
-//	"        [pc: 13, line: 11]\n" + 
-//	"      Local variable table:\n" + 
-//	"        [pc: 0, pc: 15] local: this index: 0 type: X\n" + 
-//	"        [pc: 13, pc: 15] local: all index: 1 type: java.lang.Object[][]\n";
-//
-//try {
-//	File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//	byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//	ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//	String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//	int index = result.indexOf(expectedOutput);
-//	if (index == -1 || expectedOutput.length() == 0) {
-//		System.out.println(Util.displayString(result, 3));
-//	}
-//	if (index == -1) {
-//		assertEquals("Wrong contents", expectedOutput, result);
-//	}
-//} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//	assertTrue(false);
-//} catch (IOException e) {
-//	assertTrue(false);
-//}		
-//}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/BooleanTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/BooleanTest.java
deleted file mode 100644
index 6eb6870..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/BooleanTest.java
+++ /dev/null
@@ -1,1151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.future.compiler.regression;
-
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractRegressionTest;
-
-import junit.framework.Test;
-
-public class BooleanTest extends AbstractRegressionTest {
-	
-public BooleanTest(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildAllCompliancesTestSuite(testClass());
-}
-
-public void test001() {
-	this.runConformTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public Object getAccessibleSelection(int i) {\n" + 
-		"    int c, d;\n" + 
-		"    if ((this == null) || ((d = 4) > 0)) {\n" + 
-		"      c = 2;\n" + 
-		"    }\n" + 
-		"    else {\n" + 
-		"      if (this == null) {\n" + 
-		"        c = 3;\n" + 
-		"        i++;\n" + 
-		"      }\n" + 
-		"      i++;\n" + 
-		"    }\n" + 
-		"    return null;\n" + 
-		"  }\n" + 
-		"  public String getAccessibleSelection2(int i) {\n" + 
-		"    int c, d;\n" + 
-		"    return ((this == null) || ((d = 4) > 0))\n" + 
-		"      ? String.valueOf(c = 2)\n" + 
-		"      : String.valueOf(i++); \n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test002() {
-	this.runConformTest(new String[] {
-		"p/H.java",
-		"package p;\n" + 
-		"public class H {\n" + 
-		"  Thread fPeriodicSaveThread;\n" + 
-		"  public void bar() {\n" + 
-		"    int a = 0, b = 0;\n" + 
-		"    if (a == 0 || (b = 2) == 2) {\n" + 
-		"      //a = 1;\n" + 
-		"    }\n" + 
-		"    System.out.println(b);\n" + 
-		"    if (b != 0) {\n" + 
-		"      System.err.println(\"<bar>b should be equal to 0.\");\n" + 
-		"      System.exit(-1);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public void bar2() {\n" + 
-		"    int a = 0, b = 0;\n" + 
-		"    if (a == 1 && (b = 2) == 2) {\n" + 
-		"      //a = 1;\n" + 
-		"    }\n" + 
-		"    System.out.println(b);\n" + 
-		"    if (b != 0) {\n" + 
-		"      System.err.println(\"<bar2>b should be equal to 0.\");\n" + 
-		"      System.exit(-1);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    new H().bar();\n" + 
-		"    new H().bar2();\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-public void test003() {
-	this.runConformTest(new String[] {
-		"p/I.java",
-		"package p;\n" + 
-		"/**\n" + 
-		" * This test0 should run without producing a java.lang.ClassFormatError\n" + 
-		" */\n" + 
-		"public class I {\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    int i = 1, j;\n" + 
-		"    if (((i > 0) || ((j = 10) > j--)) && (i < 12)) {\n" + 
-		"      System.out.println(i);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public static void main1(String[] args) {\n" + 
-		"    int i = 1, j;\n" + 
-		"    if (((i < 12) && ((j = 10) > j--)) || (i > 0)) {\n" + 
-		"      System.out.println(i);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"  public static void main2(String[] args) {\n" + 
-		"    int i = 1, j;\n" + 
-		"    if (((i < 12) && ((j = 10) > j--)) && (i > 0)) {\n" + 
-		"      System.out.println(i);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-public void test004() {
-	this.runConformTest(new String[] {
-		"p/J.java",
-		"package p;\n" + 
-		"/**\n" + 
-		" * This test0 should run without producing a java.lang.ClassFormatError\n" + 
-		" */\n" + 
-		"public class J {\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    int i = 1, j;\n" + 
-		"    if (((i > 0) || ((j = 10) > j--)) && (i < 12)) {\n" + 
-		"      System.out.println(i);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test005() {
-	this.runConformTest(new String[] {
-		"p/M.java",
-		"package p;\n" + 
-		"public class M {\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    int a = 0, b = 0;\n" + 
-		"    if (a == 0 || (b = 2) == 2) {\n" + 
-		"    }\n" + 
-		"    if (b != 0) {\n" + 
-		"      System.out.println(\"b should be equal to zero\");\n" + 
-		"      System.exit(-1);\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-public void test006() {
-	this.runConformTest(new String[] {
-		"p/Q.java",
-		"package p;\n" + 
-		"/**\n" + 
-		" * This test0 should run without producing a java.lang.VerifyError\n" + 
-		" */\n" + 
-		"public class Q {\n" + 
-		"  boolean bar() {\n" + 
-		"    if (false && foo()) {\n" + 
-		"      return true;\n" + 
-		"    }\n" + 
-		"    return false;\n" + 
-		"  }\n" + 
-		"  boolean foo() {\n" + 
-		"    return true;\n" + 
-		"  }\n" + 
-		"  public static void main(String[] args) {\n" + 
-		"    new Q().bar();\n" + 
-		"  }\n" + 
-		"}\n",
-	});
-}
-
-// Bug 6596
-public void test007() {
-	this.runConformTest(
-		new String[] {
-			"Test.java",
-			"public class Test {\n" +
-			"	Object t;\n" +
-			"	public static void main(String args[]) {\n" +
-			"		new Test().testMethod();\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"	}\n" +
-			"	private void testMethod(){\n" +
-			"		boolean a = false;\n" +
-			"		boolean b = false;\n" +
-			"		if (!(a&&b)){}\n" +
-			"	}\n" +
-			"}\n",
-		},
-		"SUCCESS");			
-}
-// Bug 6596
-public void test008() {
-	this.runConformTest(
-		new String[] {
-			"Test.java",
-			"public class Test {\n" +
-			"	Object t;\n" +
-			"	public static void main(String args[]) {\n" +
-			"		new Test().testMethod();\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"	}\n" +
-			"	private void testMethod(){\n" +
-			"		boolean a = false;\n" +
-			"		boolean b = false;\n" +
-			"		if (!(a||b)){}\n" +
-			"	}\n" +
-			"}\n",
-		},
-		"SUCCESS");			
-}
-// Bug 6596
-public void test009() {
-	this.runConformTest(
-		new String[] {
-			"Test.java",
-			"public class Test {\n" +
-			"	Object t;\n" +
-			"	public static void main(String args[]) {\n" +
-			"		new Test().testMethod();\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"	}\n" +
-			"	private void testMethod(){\n" +
-			"		final boolean a = false;\n" +
-			"		boolean b = false;\n" +
-			"		if (!(a&&b)){}\n" +
-			"	}\n" +
-			"}\n",
-		},
-		"SUCCESS");			
-}
-
-// Bug 6596
-public void test010() {
-	this.runConformTest(
-		new String[] {
-			"Test.java",
-			"public class Test {\n" +
-			"	Object t;\n" +
-			"	public static void main(String args[]) {\n" +
-			"		new Test().testMethod();\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"	}\n" +
-			"	private void testMethod(){\n" +
-			"		boolean a = false;\n" +
-			"		boolean b = false;\n" +
-			"		if (a == b){}\n" +
-			"	}\n" +
-			"}\n",
-		},
-		"SUCCESS");			
-}
-
-// Bug 46675
-public void test011() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		String s = null;\n" + 
-			"		boolean b = s != null && (s.length() == 0 ? TestConst.c1 : TestConst.c2);\n" + 
-			"		if (!b) System.out.println(\"SUCCESS\");\n" +
-			"	}\n" + 
-			"\n" + 
-			"	public static class TestConst {\n" + 
-			"		public static final boolean c1 = true;\n" + 
-			"		public static final boolean c2 = true;\n" + 
-			"	}\n" + 
-			"}",
-		},
-		"SUCCESS");
-}
-
-// Bug 46675 - variation
-public void test012() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		String s = \"aaa\";\n" + 
-			"		boolean b = s != null && (s.length() == 0 ? TestConst.c1 : TestConst.c2);\n" + 
-			"		if (b) System.out.println(\"SUCCESS\");\n" +
-			"	}\n" + 
-			"\n" + 
-			"	public static class TestConst {\n" + 
-			"		public static final boolean c1 = true;\n" + 
-			"		public static final boolean c2 = true;\n" + 
-			"	}\n" + 
-			"}",
-		},
-		"SUCCESS");
-}
-
-// Bug 46675 - variation
-public void test013() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		String s = \"aaa\";\n" + 
-			"		boolean b = s == null || (s.length() == 0 ? TestConst.c1 : TestConst.c2);\n" + 
-			"		if (!b) System.out.println(\"SUCCESS\");\n" +
-			"	}\n" + 
-			"\n" + 
-			"	public static class TestConst {\n" + 
-			"		public static final boolean c1 = false;\n" + 
-			"		public static final boolean c2 = false;\n" + 
-			"	}\n" + 
-			"}",
-		},
-		"SUCCESS");
-}
-
-// Bug 47881
-public void test014() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X  {\n" + 
-			"\n" + 
-			"    public static void main(String args[]) {\n" + 
-			"		boolean b = true;\n" + 
-			"		b = b && false;                 \n" + 
-			"		if (b) {\n" + 
-			"			System.out.println(\"FAILED\");\n" + 
-			"		} else {\n" + 
-			"			System.out.println(\"SUCCESS\");\n" + 
-			"		}\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"\n",
-		},
-		"SUCCESS");
-}
-
-// Bug 47881 - variation
-public void test015() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X  {\n" + 
-			"\n" + 
-			"    public static void main(String args[]) {\n" + 
-			"		boolean b = true;\n" + 
-			"		b = b || true;                 \n" + 
-			"		if (b) {\n" + 
-			"			System.out.println(\"SUCCESS\");\n" + 
-			"		} else {\n" + 
-			"			System.out.println(\"FAILED\");\n" + 
-			"		}\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"\n",
-		},
-		"SUCCESS");
-}
-// Bug 47881 - variation
-public void test016() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X  {\n" + 
-			"\n" + 
-			"    public static void main(String args[]) {\n" + 
-			"		boolean b = false;\n" + 
-			"		b = b && true;                 \n" + 
-			"		if (b) {\n" + 
-			"			System.out.println(\"FAILED\");\n" + 
-			"		} else {\n" + 
-			"			System.out.println(\"SUCCESS\");\n" + 
-			"		}\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"\n",
-		},
-		"SUCCESS");
-}
-
-// Bug 47881 - variation
-public void test017() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X  {\n" + 
-			"\n" + 
-			"    public static void main(String args[]) {\n" + 
-			"		boolean b = true;\n" + 
-			"		b = b || false;                 \n" + 
-			"		if (b) {\n" + 
-			"			System.out.println(\"SUCCESS\");\n" + 
-			"		} else {\n" + 
-			"			System.out.println(\"FAILED\");\n" + 
-			"		}\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"\n",
-		},
-		"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120
-public void test018() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0++) || true) != ((true && true) && (!(false || true)))));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"true");
-//	// 	ensure optimized boolean codegen sequence
-//	String expectedOutput =
-//		"  // Method descriptor #17 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 3, Locals: 3\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"     0  ldc2_w <Long -26> [18]\n" + 
-//		"     3  lstore_1 [l11]\n" + 
-//		"     4  getstatic java.lang.System.out : java.io.PrintStream [20]\n" + 
-//		"     7  getstatic X.f0 : float [26]\n" + 
-//		"    10  fconst_1\n" + 
-//		"    11  fadd\n" + 
-//		"    12  putstatic X.f0 : float [26]\n" + 
-//		"    15  iconst_1\n" + 
-//		"    16  invokevirtual java.io.PrintStream.println(boolean) : void [28]\n" + 
-//		"    19  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 6]\n" + 
-//		"        [pc: 4, line: 8]\n" + 
-//		"        [pc: 7, line: 9]\n" + 
-//		"        [pc: 16, line: 8]\n" + 
-//		"        [pc: 19, line: 10]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 20] local: args index: 0 type: java.lang.String[]\n" + 
-//		"        [pc: 4, pc: 20] local: l11 index: 1 type: long\n";
-//	
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue(false);
-//	} catch (IOException e) {
-//		assertTrue(false);
-//	}		
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test019() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0++) || false) != true));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"false");
-	// 	ensure optimized boolean codegen sequence
-//	String expectedOutput =
-//		"  // Method descriptor #17 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 5, Locals: 3\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"     0  ldc2_w <Long -26> [18]\n" + 
-//		"     3  lstore_1 [l11]\n" + 
-//		"     4  getstatic java.lang.System.out : java.io.PrintStream [20]\n" + 
-//		"     7  lload_1 [l11]\n" + 
-//		"     8  l2f\n" + 
-//		"     9  getstatic X.f0 : float [26]\n" + 
-//		"    12  dup\n" + 
-//		"    13  fconst_1\n" + 
-//		"    14  fadd\n" + 
-//		"    15  putstatic X.f0 : float [26]\n" + 
-//		"    18  fcmpg\n" + 
-//		"    19  ifge 26\n" + 
-//		"    22  iconst_0\n" + 
-//		"    23  goto 27\n" + 
-//		"    26  iconst_1\n" + 
-//		"    27  invokevirtual java.io.PrintStream.println(boolean) : void [28]\n" + 
-//		"    30  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 6]\n" + 
-//		"        [pc: 4, line: 8]\n" + 
-//		"        [pc: 7, line: 9]\n" + 
-//		"        [pc: 27, line: 8]\n" + 
-//		"        [pc: 30, line: 10]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 31] local: args index: 0 type: java.lang.String[]\n" + 
-//		"        [pc: 4, pc: 31] local: l11 index: 1 type: long\n";
-//	
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue(false);
-//	} catch (IOException e) {
-//		assertTrue(false);
-//	}		
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test020() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0) | true) != false));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"true");
-//	// 	ensure optimized boolean codegen sequence
-//	String expectedOutput =
-//		"  // Method descriptor #17 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 2, Locals: 3\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"     0  ldc2_w <Long -26> [18]\n" + 
-//		"     3  lstore_1 [l11]\n" + 
-//		"     4  getstatic java.lang.System.out : java.io.PrintStream [20]\n" + 
-//		"     7  iconst_1\n" + 
-//		"     8  invokevirtual java.io.PrintStream.println(boolean) : void [26]\n" + 
-//		"    11  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 6]\n" + 
-//		"        [pc: 4, line: 8]\n" + 
-//		"        [pc: 7, line: 9]\n" + 
-//		"        [pc: 8, line: 8]\n" + 
-//		"        [pc: 11, line: 10]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 12] local: args index: 0 type: java.lang.String[]\n" + 
-//		"        [pc: 4, pc: 12] local: l11 index: 1 type: long\n";
-//	
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue(false);
-//	} catch (IOException e) {
-//		assertTrue(false);
-//	}		
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test021() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0) && false) != true));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"true");
-//	// 	ensure optimized boolean codegen sequence
-//	String expectedOutput =
-//		"  // Method descriptor #17 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 2, Locals: 3\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"     0  ldc2_w <Long -26> [18]\n" + 
-//		"     3  lstore_1 [l11]\n" + 
-//		"     4  getstatic java.lang.System.out : java.io.PrintStream [20]\n" + 
-//		"     7  iconst_1\n" + 
-//		"     8  invokevirtual java.io.PrintStream.println(boolean) : void [26]\n" + 
-//		"    11  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 6]\n" + 
-//		"        [pc: 4, line: 8]\n" + 
-//		"        [pc: 7, line: 9]\n" + 
-//		"        [pc: 8, line: 8]\n" + 
-//		"        [pc: 11, line: 10]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 12] local: args index: 0 type: java.lang.String[]\n" + 
-//		"        [pc: 4, pc: 12] local: l11 index: 1 type: long\n";
-//	
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue(false);
-//	} catch (IOException e) {
-//		assertTrue(false);
-//	}		
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test022() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0) & false) != true));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"true");
-//	// 	ensure optimized boolean codegen sequence
-//	String expectedOutput =
-//		"  // Method descriptor #17 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 2, Locals: 3\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"     0  ldc2_w <Long -26> [18]\n" + 
-//		"     3  lstore_1 [l11]\n" + 
-//		"     4  getstatic java.lang.System.out : java.io.PrintStream [20]\n" + 
-//		"     7  iconst_1\n" + 
-//		"     8  invokevirtual java.io.PrintStream.println(boolean) : void [26]\n" + 
-//		"    11  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 6]\n" + 
-//		"        [pc: 4, line: 8]\n" + 
-//		"        [pc: 7, line: 9]\n" + 
-//		"        [pc: 8, line: 8]\n" + 
-//		"        [pc: 11, line: 10]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 12] local: args index: 0 type: java.lang.String[]\n" + 
-//		"        [pc: 4, pc: 12] local: l11 index: 1 type: long\n";
-//	
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue(false);
-//	} catch (IOException e) {
-//		assertTrue(false);
-//	}		
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120
-public void test023() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0++) || true) == ((true && true) && (!(false || true)))));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"false");
-//	// 	ensure optimized boolean codegen sequence
-//	String expectedOutput =
-//		"  // Method descriptor #17 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 3, Locals: 3\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"     0  ldc2_w <Long -26> [18]\n" + 
-//		"     3  lstore_1 [l11]\n" + 
-//		"     4  getstatic java.lang.System.out : java.io.PrintStream [20]\n" + 
-//		"     7  getstatic X.f0 : float [26]\n" + 
-//		"    10  fconst_1\n" + 
-//		"    11  fadd\n" + 
-//		"    12  putstatic X.f0 : float [26]\n" + 
-//		"    15  iconst_0\n" + 
-//		"    16  invokevirtual java.io.PrintStream.println(boolean) : void [28]\n" + 
-//		"    19  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 6]\n" + 
-//		"        [pc: 4, line: 8]\n" + 
-//		"        [pc: 7, line: 9]\n" + 
-//		"        [pc: 16, line: 8]\n" + 
-//		"        [pc: 19, line: 10]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 20] local: args index: 0 type: java.lang.String[]\n" + 
-//		"        [pc: 4, pc: 20] local: l11 index: 1 type: long\n";
-//	
-//	try {
-//		File f = new File(OUTPUT_DIR + File.separator + "X.class");
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(f);
-//		ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//		String result = disassembler.disassemble(classFileBytes, "\n", ClassFileBytesDisassembler.DETAILED);
-//		int index = result.indexOf(expectedOutput);
-//		if (index == -1 || expectedOutput.length() == 0) {
-//			System.out.println(Util.displayString(result, 3));
-//		}
-//		if (index == -1) {
-//			assertEquals("Wrong contents", expectedOutput, result);
-//		}
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue(false);
-//	} catch (IOException e) {
-//		assertTrue(false);
-//	}		
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test024() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0++) || false) == true));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"true");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test025() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0) | true) == false));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"false");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test026() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0) && false) == true));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"false");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test027() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0) & false) == true));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"false");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test028() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0) || true) == false));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"false");
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test029() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"   	System.out.println(\n" + 
-			"   			((foo() || bar()) || true) && false); 		\n" + 
-			"  }\n" + 
-			"  static boolean foo(){ \n" + 
-			"	  System.out.print(\"foo\");\n" + 
-			"	  return false;\n" + 
-			"  }\n" + 
-			"  static boolean bar(){\n" + 
-			"	  System.out.print(\"bar\");\n" + 
-			"	  return true;\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"foobarfalse");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117120 - variation
-public void test030() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public static float f0;\n" + 
-			"  \n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    \n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < f0++) || true) == ((foo() || bar()) || true)));\n" + 
-			"  }\n" + 
-			"  static boolean foo() {\n" + 
-			"	  System.out.print(\"foo\");\n" + 
-			"	  return false;\n" + 
-			"  }\n" + 
-			"  static boolean bar() {\n" + 
-			"	  System.out.print(\"bar\");\n" + 
-			"	  return true;\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"foobartrue");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117451
-public void test031() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  public float f0;\n" + 
-			"\n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    X x = new X();\n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < x.f0) || true) != false));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"true");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117451 - variation
-public void test032() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  static float f0;\n" + 
-			"\n" + 
-			"  public static void main(String[] args)\n" + 
-			"  {\n" + 
-			"    long l11 = -26;\n" + 
-			"    System.out.println(\n" + 
-			"        (((l11 < (f0=13)) || true) != false));\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"true");
-}
-
-public void test033() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		boolean b = true;\n" + 
-			"		System.out.print(b ^ b);\n" + 
-			"		System.out.println(b ^ true);\n" + 
-			"	} \n" + 
-			"}\n",
-		},
-		"falsefalse");
-}
-public void test034() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		boolean b = true;\n" + 
-			"		if ((b ^ true) || b) {\n" + 
-			"			System.out.println(\"SUCCESS\");\n" + 
-			"		}\n" + 
-			"	} \n" + 
-			"}\n",
-		},
-		"SUCCESS");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117451 - variation
-public void test035() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	static float f0;\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		System.out.println((X.f0 > 0 || true) == false);\n" + 
-			"	} \n" + 
-			"}\n",
-		},
-		"false");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=117451 - variation
-public void test036() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	float f0;\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new X().foo();\n" +
-			"	}\n" +
-			"	void foo() {\n" +
-			"		System.out.println((this.f0 > 0 || true) == false);\n" + 
-			"	} \n" + 
-			"}\n",
-		},
-		"false");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=147024
-public void test037() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			" public class X {\n" + 
-			" public static final boolean T = true;\n" + 
-			"	public static final boolean F = false;\n" + 
-			"	\n" + 
-			"	public boolean getFlagBT() {\n" + 
-			"		boolean b = this.T;\n" + 
-			"		if (this.T)\n" + 
-			"			return true;\n" + 
-			"		else\n" + 
-			"			return false;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public int getFlagIT() {\n" + 
-			"		boolean b = this.T;\n" + 
-			"		if (this.T)\n" + 
-			"			return 0;\n" + 
-			"		else\n" + 
-			"			return 1;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public boolean getFlagBF() {\n" + 
-			"		boolean b = this.F;\n" + 
-			"		if (this.F)\n" + 
-			"			return true;\n" + 
-			"		else\n" + 
-			"			return false;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public int getFlagIF() {\n" + 
-			"		boolean b = this.F;\n" + 
-			"		if (this.F)\n" + 
-			"			return 0;\n" + 
-			"		else\n" + 
-			"			return 1;\n" + 
-			"	}\n" + 
-			"	public boolean getFlagBT2() {\n" + 
-			"		boolean b = T;\n" + 
-			"		if (T)\n" + 
-			"			return true;\n" + 
-			"		else\n" + 
-			"			return false;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public int getFlagIT2() {\n" + 
-			"		boolean b = T;\n" + 
-			"		if (T)\n" + 
-			"			return 0;\n" + 
-			"		else\n" + 
-			"			return 1;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public boolean getFlagBF2() {\n" + 
-			"		boolean b = F;\n" + 
-			"		if (F)\n" + 
-			"			return true;\n" + 
-			"		else\n" + 
-			"			return false;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public int getFlagIF2() {\n" + 
-			"		boolean b = F;\n" + 
-			"		if (F)\n" + 
-			"			return 0;\n" + 
-			"		else\n" + 
-			"			return 1;\n" + 
-			"	}\n" + 
-			"	public boolean getFlagBT3() {\n" + 
-			"		X self = this;\n" + 
-			"		boolean b = self.T;\n" + 
-			"		if (self.T)\n" + 
-			"			return true;\n" + 
-			"		else\n" + 
-			"			return false;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public int getFlagIT3() {\n" + 
-			"		X self = this;\n" + 
-			"		boolean b = self.T;\n" + 
-			"		if (self.T)\n" + 
-			"			return 0;\n" + 
-			"		else\n" + 
-			"			return 1;\n" + 
-			"	}\n" + 
-			"\n" + 
-			"	public boolean getFlagBF3() {\n" + 
-			"		X self = this;\n" + 
-			"		boolean b = self.F;\n" + 
-			"		if (self.F)\n" + 
-			"			return true;\n" + 
-			"		else\n" + 
-			"			return false;\n" + 
-			"	}\n" + 
-			"	public int getFlagIF3() {\n" + 
-			"		X self = this;\n" + 
-			"		boolean b = self.F;\n" + 
-			"		if (self.F)\n" + 
-			"			return 0;\n" + 
-			"		else\n" + 
-			"			return 1;\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		System.out.println(\"It worked.\");\n" + 
-			"	}\n" + 
-			"}", // =================
-		},
-		"It worked.");
-	// 	ensure optimized boolean codegen sequence
-}
-public void test038() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			" public class X {\n" + 
-			"	static boolean foo() { System.out.print(\"[foo]\"); return false; }\n" + 
-			"	static boolean bar() { System.out.print(\"[bar]\"); return true; }\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		if ((foo() || bar()) && false) {\n" + 
-			"			return;\n" + 
-			"		}\n" + 
-			"		System.out.println(\"[done]\");\n" + 
-			"	}\n" + 
-			"}", // =================
-		},
-		"[foo][bar][done]");
-}
-
-public static Class testClass() {
-	return BooleanTest.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/Compliance_1_4.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/Compliance_1_4.java
deleted file mode 100644
index 5002177..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/Compliance_1_4.java
+++ /dev/null
@@ -1,3431 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.future.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractRegressionTest;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class Compliance_1_4 extends AbstractRegressionTest {
-boolean docSupport = false;
-
-public Compliance_1_4(String name) {
-	super(name);
-}
-
-/*
- * Toggle compiler in mode -1.4
- */
-protected Map getCompilerOptions() {
-	Map options = super.getCompilerOptions();	
-	if (docSupport) {
-		options.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.ENABLED);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, CompilerOptions.ENABLED);
-	}
-	return options;
-}
-public static Test suite() {
-		return buildUniqueComplianceTestSuite(testClass(), COMPLIANCE_1_4);
-}
-public static Class testClass() {
-	return Compliance_1_4.class;
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which does not belong to the class are skipped...
-static {
-//		TESTS_NAMES = new String[] { "Bug58069" };
-//		TESTS_NUMBERS = new int[] { 104 };
-//		TESTS_RANGE = new int[] { 85, -1 };
-}
-/* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	// Javadoc disabled by default 
-	docSupport = false;
-}
-
-// test001 - moved to SuperTypeTest#test002
-// test002 - moved to SuperTypeTest#test003
-// test003 - moved to SuperTypeTest#test004
-// test004 - moved to SuperTypeTest#test005
-// test005 - moved to SuperTypeTest#test006
-// test006 - moved to SuperTypeTest#test007
-// test007 - moved to TryStatementTest#test057
-// test008 - moved to LookupTest#test074
-// test009 - moved to RuntimeTests#test1004
-
-// check actualReceiverType when array type
-public void test010() {
-	this.runConformTest(
-		new String[] {
-			"p1/Z.java",
-			"package p1; \n"+
-			"public class Z {	\n" +
-			"	public static void main(String[] arguments) { \n"+
-			"		String[] s = new String[]{\"SUCCESS\" };	\n" +
-			"		System.out.print(s.length);	\n"	+
-			"		System.out.print(((String[])s.clone())[0]);	\n"	+
-			"	} \n"+
-			"} \n"
-		},
-		"1SUCCESS");
-}
-// test unreachable code complaints
-public void test011() {
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1; \n"+
-			"public class X { \n"+
-			"	void foo() { \n"+
-			"		while (false);	\n" +
-			"		while (false) System.out.println(\"unreachable\");	\n" +
-			"		do ; while (false);	\n" +
-			"		do System.out.println(\"unreachable\"); while (false);	\n" +
-			"		for (;false;);	\n" +
-			"		for (;false;) System.out.println(\"unreachable\");	\n" +
-			"		if (false);	\n" +
-			"		if (false)System.out.println(\"unreachable\");		\n" +		
-			"	}	\n" +
-			"} \n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 4)\n" + 
-		"	while (false);	\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.java (at line 5)\n" + 
-		"	while (false) System.out.println(\"unreachable\");	\n" + 
-		"	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"3. ERROR in p1\\X.java (at line 8)\n" + 
-		"	for (;false;);	\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"4. ERROR in p1\\X.java (at line 9)\n" + 
-		"	for (;false;) System.out.println(\"unreachable\");	\n" + 
-		"	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n"
-	);
-}
-// binary compatibility
-public void test012() {
-	this.runConformTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1;	\n" +
-			"class Store {	\n" +
-			"	String value;	\n" +
-			"	Store(String value){	\n" +
-			"		this.value = value;	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"class Top {	\n" +
-			"	static String bar = \"Top.bar\";	\n" +
-			"	String foo = \"Top.foo\";	\n" +
-			"	Store store = new Store(\"Top.store\");	\n" +
-			"	static Store sstore = new Store(\"Top.sstore\");	\n" +
-			"	static Top ss = new Top();	\n" +
-			"}	\n" +
-			"public class Y extends Updated {		\n" +
-			"	public static void main(String[] arguments) {	\n" +
-			"		new Y().test();	\n" +
-			"	}	\n" +
-			"	void test() {		\n" +
-			"		System.out.print(\"*** FIELD ACCESS ***\");	\n" +
-			"		System.out.print(\"*1* new Updated().bar: \" + new Updated().bar);	\n" +
-			"		System.out.print(\"*2* new Updated().foo: \" + new Updated().foo);	\n" +
-			"		System.out.print(\"*3* new Y().foo: \" + new Y().foo);	\n" +
-			"		System.out.print(\"*4* new Y().bar: \" + new Y().bar);	\n" +
-			"		System.out.print(\"*5* bar: \" + bar);	\n" +
-			"		System.out.print(\"*6* foo: \" + foo);	\n" +
-			"		System.out.print(\"*7* Y.bar: \" + Y.bar);	\n" +
-			"		System.out.print(\"*8* this.bar: \" + this.bar);	\n" +
-			"		System.out.print(\"*9* this.foo: \" + this.foo);	\n" +
-			"		System.out.print(\"*10* store.value: \" + store.value);	\n" +
-			"		System.out.print(\"*11* sstore.value: \" + sstore.value);	\n" +
-			"		System.out.print(\"*12* ss.sstore.value: \" + ss.sstore.value);	\n" +
-			"	}		\n" +
-			"}		\n",
-			"p1/Updated.java",
-			"package p1;	\n" +
-			"public class Updated extends Top {	\n" +
-			"}	\n"
-		},
-		"*** FIELD ACCESS ***"
-		+"*1* new Updated().bar: Top.bar"
-		+"*2* new Updated().foo: Top.foo"
-		+"*3* new Y().foo: Top.foo"
-		+"*4* new Y().bar: Top.bar"
-		+"*5* bar: Top.bar"
-		+"*6* foo: Top.foo"
-		+"*7* Y.bar: Top.bar"
-		+"*8* this.bar: Top.bar"
-		+"*9* this.foo: Top.foo"
-		+"*10* store.value: Top.store"
-		+"*11* sstore.value: Top.sstore"
-		+"*12* ss.sstore.value: Top.sstore");
-
-	this.runConformTest(
-		new String[] {
-			"p1/Updated.java",
-			"package p1; \n"+
-			"public class Updated extends Top { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		Y.main(arguments);	\n" +
-			"	}	\n" +
-			"	static String bar = \"Updated.bar\";	\n" +
-			"	String foo = \"Updated.foo\";	\n" +
-			"	Store store = new Store(\"Updated.store\");	\n" +
-			"	static Store sstore = new Store(\"Updated.sstore\");	\n" +
-			"	static Updated ss = new Updated();	\n" +
-			"} \n"
-		},
-		"*** FIELD ACCESS ***"
-		+"*1* new Updated().bar: Updated.bar"
-		+"*2* new Updated().foo: Updated.foo"
-		+"*3* new Y().foo: Updated.foo"
-		+"*4* new Y().bar: Updated.bar"
-		+"*5* bar: Updated.bar"
-		+"*6* foo: Updated.foo"
-		+"*7* Y.bar: Updated.bar"
-		+"*8* this.bar: Updated.bar"
-		+"*9* this.foo: Updated.foo"
-		+"*10* store.value: Updated.store"
-		+"*11* sstore.value: Updated.sstore"
-		+"*12* ss.sstore.value: Top.sstore",
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args		
-}
-// binary compatibility
-public void test013() {
-	this.runConformTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1;	\n" +
-			"class Store {	\n" +
-			"	String value;	\n" +
-			"	Store(String value){	\n" +
-			"		this.value = value;	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"class Top {	\n" +
-			"	static String bar() { return \"Top.bar()\"; }	\n" +
-			"	String foo() { return \"Top.foo()\"; }	\n" +
-			"}	\n" +
-			"public class Y extends Updated {		\n" +
-			"	public static void main(String[] arguments) {	\n" +
-			"		new Y().test();	\n" +
-			"	}	\n" +
-			"	void test() {		\n" +
-			"		System.out.print(\"*** METHOD ACCESS ***\");	\n" +
-			"		System.out.print(\"*1* new Updated().bar(): \" + new Updated().bar());	\n" +
-			"		System.out.print(\"*2* new Updated().foo(): \" + new Updated().foo());	\n" +
-			"		System.out.print(\"*3* new Y().foo(): \" + new Y().foo());	\n" +
-			"		System.out.print(\"*4* new Y().bar(): \" + new Y().bar());	\n" +
-			"		System.out.print(\"*5* bar(): \" + bar());	\n" +
-			"		System.out.print(\"*6* foo(): \" + foo());	\n" +
-			"		System.out.print(\"*7* Y.bar(): \" + Y.bar());	\n" +
-			"		System.out.print(\"*8* this.bar(): \" + this.bar());	\n" +
-			"		System.out.print(\"*9* this.foo(): \" + this.foo());	\n" +
-			"	}		\n" +
-			"}		\n",
-			"p1/Updated.java",
-			"package p1;	\n" +
-			"public class Updated extends Top {	\n" +
-			"}	\n"
-		},
-		"*** METHOD ACCESS ***"
-		+"*1* new Updated().bar(): Top.bar()"
-		+"*2* new Updated().foo(): Top.foo()"
-		+"*3* new Y().foo(): Top.foo()"
-		+"*4* new Y().bar(): Top.bar()"
-		+"*5* bar(): Top.bar()"
-		+"*6* foo(): Top.foo()"
-		+"*7* Y.bar(): Top.bar()"
-		+"*8* this.bar(): Top.bar()"
-		+"*9* this.foo(): Top.foo()");
-
-	this.runConformTest(
-		new String[] {
-			"p1/Updated.java",
-			"package p1; \n"+
-			"public class Updated extends Top { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		Y.main(arguments);	\n" +
-			"	}	\n" +
-			"	static String bar() { return \"Updated.bar()\"; }	\n" +
-			"	String foo() { return \"Updated.foo()\"; }	\n" +
-			"} \n"
-		},
-		"*** METHOD ACCESS ***"
-		+"*1* new Updated().bar(): Updated.bar()"
-		+"*2* new Updated().foo(): Updated.foo()"
-		+"*3* new Y().foo(): Updated.foo()"
-		+"*4* new Y().bar(): Updated.bar()"
-		+"*5* bar(): Updated.bar()"
-		+"*6* foo(): Updated.foo()"
-		+"*7* Y.bar(): Updated.bar()"
-		+"*8* this.bar(): Updated.bar()"
-		+"*9* this.foo(): Updated.foo()",
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args		
-}
-
-public void test014() {
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n" +
-			"class T {	\n" +
-			"	void foo(boolean b) {	\n" +
-			"		 System.out.print(\"T.foo(boolean)#\"); 	\n" +
-			"	}	\n" +
-			"	boolean bar = false;	\n" +
-			"	class Member {	\n" +
-			"		void display(){ System.out.print(\"T.Member#\"); }	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"public class X {	\n" +
-			"	void foo(int i) {	\n" +
-			"		 System.out.println(\"X.foo(int)#\"); 			\n" +
-			"	}	\n" +
-			"	int bar;	\n" +
-			"	class Member {	\n" +
-			"		void display(){ System.out.print(\"X.Member#\"); }	\n" +
-			"	}	\n" +
-			"	public static void main(String[] arguments) {	\n" +
-			"		new X().bar();	\n" +
-			"	}				\n" +
-			"	void bar() { 	\n" +
-			"		new T() {	\n" +
-			"			{	\n" +
-			"				foo(true);	\n" +
-			"				System.out.print((boolean)bar + \"#\");	\n" +
-			"				Member m = new Member();	\n" +	
-			"				m.display();	\n" +
-			"			} 	\n" +
-			"		};	\n" +
-			"	}	\n" +
-			"}	\n"
-		},
-		"T.foo(boolean)#false#T.Member#");
-}
-
-/*
- * check handling of default abstract methods
- */
-public void test015() {
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		C c = new C() {	\n"+
-			"			public void doSomething(){	\n"+
-			"				System.out.println(\"SUCCESS\");	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"		c.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"interface I {	\n"+
-			"	void doSomething();	\n"+
-			"}	\n"+
-			"abstract class C implements I {	\n"+
-			"}	\n"
-		},
-		"SUCCESS");
-}
-			
-public void test016() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(boolean b) {}	\n"+
-			"}	\n"+
-			"public class X {	\n"+
-			"      void foo(int i) {}	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(0); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"} 	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	foo(0); 	\n" + 
-		"	^^^\n" + 
-		"The method foo(boolean) in the type T is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-
-public void test017() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(boolean b) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"public class X {	\n"+
-			"      void foo(int i) {}	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(false); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-
-public void test018() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(int j) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"public class X {	\n"+
-			"      void foo(int i) {}	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(0); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-public void test019() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(int j) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"class U {	\n"+
-			"      void foo(int j) { System.out.println(\"FAILED\"); }	\n"+
-			"}	\n"+
-			"public class X extends U {	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(0); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-public void test020() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(int j) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"class U {	\n"+
-			"      void foo(boolean j) { System.out.println(\"FAILED\"); }	\n"+
-			"}	\n"+
-			"public class X extends U {	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(0); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-public void test020a() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(U j) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"class U {	\n"+
-			"}	\n"+
-			"public class X extends U {	\n"+
-			"      void foo(X j) { System.out.println(\"FAILED\"); }	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(new X()); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-// binary check for 11511
-public void test021() {
-	this.runConformTest(
-		new String[] {
-			"p1/Z.java",
-			"package p1;	\n" +
-			"public class Z extends AbstractA {	\n" +
-			"	public static void main(String[] arguments) {	\n" +
-			"		new Z().init(); 	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"abstract class AbstractB implements K {	\n" +
-			"	public void init() {	\n" +
-			"		System.out.println(\"AbstractB.init()\");	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"interface K {	\n" +
-			"	void init();	\n" +
-			"	void init(int i);	\n" +
-			"}	\n",
-			"p1/AbstractA.java",
-			"package p1;	\n" +
-			"public abstract class AbstractA extends AbstractB implements K {	\n" +
-			"	public void init(int i) {	\n" +
-			"	}	\n" +
-			"}	\n"			
-		},
-		"AbstractB.init()"); // no special vm args			
-
-		// check that "new Z().init()" is bound to "Z.init()"
-		String computedReferences = findReferences(OUTPUT_DIR + "/p1/Z.class");
-		boolean check = 
-			computedReferences.indexOf("constructorRef/Z/0") >= 0
-			&& computedReferences.indexOf("methodRef/init/0") >= 0;
-		if (!check){
-			System.out.println(computedReferences);
-		}
-		assertTrue("did not bind 'new Z().init()' to Z.init()'", check);
-}
- /*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis
- */
-public void test022() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/T.java",
-			"package p1;	\n"+
-			"interface II {}	\n"+
-			"class TT {	\n"+
-			"	void foo(boolean b) {}	\n"+
-			"	void foo(int i, boolean b) {}	\n"+
-			"	void foo(String s) {}	\n"+
-			"}	\n"+
-			"public abstract class T implements II {	\n"+
-			"	void foo(int i) {}	\n"+
-			"	void bar() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(0); // should say that foo(int, boolean) isn't applicable	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"	void boo() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(true); // should not complain about ambiguity	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"} 	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\T.java (at line 13)\n" + 
-		"	foo(0); // should say that foo(int, boolean) isn\'t applicable	\n" + 
-		"	^^^\n" + 
-		"The method foo(int, boolean) in the type TT is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-   
- /*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis
- */
-public void test023() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/T.java",
-			"package p1;	\n"+
-			"interface II {}	\n"+
-			"abstract class TT {	\n"+		// 259+ABSTRACT
-			"	void foo(boolean b) {}	\n"+
-			"	void foo(int i, boolean b) {}	\n"+
-			"	void foo(String s) {}	\n"+
-			"}	\n"+
-			"public abstract class T implements II {	\n"+
-			"	void foo(int i) {}	\n"+
-			"	void bar() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(0); // should say that foo(int, boolean) isn't applicable	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"	void boo() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(true); // should complain ambiguity	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"} 	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\T.java (at line 13)\n" + 
-		"	foo(0); // should say that foo(int, boolean) isn\'t applicable	\n" + 
-		"	^^^\n" + 
-		"The method foo(int, boolean) in the type TT is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis
- */
-public void test024() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"interface II {}	\n"+
-			"abstract class T implements II {	\n"+
-			"	void foo(boolean b) {}	\n"+
-			"	void foo(int i, boolean b) {}	\n"+
-			"}	\n"+
-			"abstract class TT implements II {	\n"+
-			"	void foo(boolean b) {}	\n"+
-			"}	\n"+
-			"public class X {	\n"+
-			"	void foo(int i) {}	\n"+
-			"	void bar() {	\n"+
-			"		new T() {	\n"+
-			"			{	\n"+
-			"				foo(0); // javac says foo cannot be resolved because of multiple matches	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"	void bar2() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(0); // should say that foo(boolean) isn't applicable	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"	void boo() {	\n"+
-			"		new T() {	\n"+
-			"			{	\n"+
-			"				foo(true); // should complain ambiguity	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 15)\n" + 
-		"	foo(0); // javac says foo cannot be resolved because of multiple matches	\n" + 
-		"	^^^\n" + 
-		"The method foo(int, boolean) in the type T is not applicable for the arguments (int)\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.java (at line 22)\n" + 
-		"	foo(0); // should say that foo(boolean) isn\'t applicable	\n" + 
-		"	^^^\n" + 
-		"The method foo(boolean) in the type TT is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis (no matter if super is abstract or not)
- */
-public void test025() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X extends AbstractY {	\n"+
-			"	void bar(){	\n"+
-			"		init(\"hello\");	\n"+
-			"	}		\n"+
-			"}	\n"+
-			"abstract class AbstractY implements I {	\n"+
-			"}	\n"+
-			"interface I {	\n"+
-			"	void init(String s, int i);	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 2)\n" + 
-		"	public class X extends AbstractY {	\n" + 
-		"	             ^\n" + 
-		"The type X must implement the inherited abstract method I.init(String, int)\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.java (at line 4)\n" + 
-		"	init(\"hello\");	\n" + 
-		"	^^^^\n" + 
-		"The method init(String, int) in the type I is not applicable for the arguments (String)\n" + 
-		"----------\n");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis (no matter if super is abstract or not)
- */
-public void test026() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X extends AbstractY {	\n"+
-			"	void bar(){	\n"+
-			"		init(\"hello\");	\n"+
-			"	}		\n"+
-			"}	\n"+
-			"class AbstractY implements I {	\n"+
-			"}	\n"+
-			"interface I {	\n"+
-			"	void init(String s, int i);	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 4)\n" + 
-		"	init(\"hello\");	\n" + 
-		"	^^^^\n" + 
-		"The method init(String, int) in the type I is not applicable for the arguments (String)\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.java (at line 7)\n" + 
-		"	class AbstractY implements I {	\n" + 
-		"	      ^^^^^^^^^\n" + 
-		"The type AbstractY must implement the inherited abstract method I.init(String, int)\n" + 
-		"----------\n"
-);
-}
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11922
- * should report unreachable empty statement
- */
-public void test027() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		for (;false;p());	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	static void p(){	\n"+
-			"		System.out.println(\"FAILED\");	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 4)\n" + 
-		"	for (;false;p());	\n" + 
-		"	                ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=12445
- * should report unreachable empty statement
- */
-public void test028() {
-
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n" +
-			"interface FooInterface {	\n" +
-			"	public boolean foo(int a);	\n" +
-			"	public boolean bar(int a);	\n" +
-			"}	\n" +
-			"public class X extends Z {	\n" +
-			"	public boolean foo(int a){ return true; }	\n" +
-			"	public boolean bar(int a){ return false; }	\n" +
-			"	public static void main(String[] arguments) {	\n"+
-			"		System.out.println(new X().test(0));	\n"+
-			"	}	\n" +
-			"}\n" +
-			"abstract class Z implements FooInterface {	\n" +
-			"	public boolean foo(int a, int b) {	\n" +
-			"		return true;	\n" +
-			"	}	\n" +
-			"	public String test(int a) {	\n" +
-			"		boolean result = foo(a); \n" +
-			"		if (result)	\n" +
-			"			return \"SUCCESS\";	\n" +
-			"		else	\n" +
-			"			return \"FAILED\";	\n" +
-			"	}	\n" +
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580
- * verify error on qualified name ref in 1.4
- */
-public void test029() {
-
-	this.runConformTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X {	\n" +
-			"	public static void main(String[] args) {	\n" +
-			"		new X();	\n" +
-			"		System.out.println(\"SUCCESS\");	\n" +
-			"	}  	\n" +
-			"	Woof woof_1;	\n" +
-			"	public class Honk {	\n" +
-			"		Integer honks;	\n" +
-			"	}	\n" +
-			"	public class Meow {	\n" +
-			"		Honk honk_1;	\n" +
-			"	}	\n" +
-			"	public class Woof {	\n" +
-			"		Meow meow_1;	\n" +
-			"	}	\n" +
-			"	public void setHonks(int num) {	\n" +
-			"		// This is the line that causes the VerifyError	\n" +
-			"		woof_1.meow_1.honk_1.honks = new Integer(num);	\n" +
-			"		// Here is equivalent code that does not cause the error.	\n" +
-			"		//  Honk h = woof_1.moo_1.meow_1.honk_1;	\n" +
-			"		//  h.honks = new Integer(num);	\n" +
-			"	}	\n" +
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580
- * 1.4 signals invocations of non-visible abstract protected method implementations.
- */
-public void test030() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X {	\n" +
-			"	public static void main(String[] args){	\n" +
-			"		new q.X2().foo(\"String\");	\n" +
-			"		new q.X2().bar(\"String\");	\n" +
-			"		new q.X2().barbar(\"String\");	\n" +
-			"		new q.X2().baz(\"String\");	\n" +
-			"	}	\n" +
-			"}	\n",
-			
-			"p/X1.java",
-			"package p;	\n" +
-			"public abstract class X1 {	\n" +
-			"	protected void foo(Object o){	System.out.println(\"X1.foo(Object)\"); }	\n" +
-			"	protected void bar(Object o){	System.out.println(\"X1.bar(Object)\"); }	\n" +
-			"	void barbar(Object o){	System.out.println(\"X1.barbar(Object)\"); }	\n" +
-			"	protected void baz(Object o) { System.out.println(\"X1.baz(Object)\"); }	\n" +
-			"}	\n",
-			
-			"q/X2.java",
-			"package q;	\n" +
-			"public class X2 extends p.X1 {	\n" +
-			"	protected void foo(int i) { System.out.println(\"X2.foo(int)\"); }	\n" +
-			"	protected void bar(Object o) { System.out.println(\"X2.bar(Object)\"); }	\n" +
-			"	void barbar(Object o){	System.out.println(\"X2.barbar(Object)\"); }	\n" +
-			"	protected void baz(String s) {	System.out.println(\"X2.baz(String)\"); }	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 5)\n" + 
-		"	new q.X2().bar(\"String\");	\n" + 
-		"	           ^^^\n" + 
-		"The method bar(Object) from the type X2 is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 6)\n" + 
-		"	new q.X2().barbar(\"String\");	\n" + 
-		"	           ^^^^^^\n" + 
-		"The method barbar(Object) from the type X2 is not visible\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. WARNING in q\\X2.java (at line 5)\n" + 
-		"	void barbar(Object o){	System.out.println(\"X2.barbar(Object)\"); }	\n" + 
-		"	     ^^^^^^^^^^^^^^^^\n" + 
-		"The method X2.barbar(Object) does not override the inherited method from X1 since it is private to a different package\n" + 
-		"----------\n");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580
- * 1.4 signals invocations of non-visible abstract protected method implementations.
- */
-public void test031() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X extends q.X2 {	\n" +
-			"	public static void main(String[] args){	\n" +
-			"			new X().doSomething();	\n" +
-			"	}	\n" +
-			"	void doSomething(){	\n" +
-			"		foo(\"String\");	\n" +
-			"		bar(\"String\");	\n" +
-			"		barbar(\"String\");	\n" +
-			"		baz(\"String\");	\n" +
-			"	}	\n" +
-			"}	\n",
-			
-			"p/X1.java",
-			"package p;	\n" +
-			"public abstract class X1 {	\n" +
-			"	protected void foo(Object o){	System.out.println(\"X1.foo(Object)\"); }	\n" +
-			"	protected void bar(Object o){	System.out.println(\"X1.bar(Object)\"); }	\n" +
-			"	void barbar(Object o){	System.out.println(\"X1.barbar(Object)\"); }	\n" +
-			"	protected void baz(Object o) { System.out.println(\"X1.baz(Object)\"); }	\n" +
-			"}	\n",
-			
-			"q/X2.java",
-			"package q;	\n" +
-			"public class X2 extends p.X1 {	\n" +
-			"	protected void foo(int i) { System.out.println(\"X2.foo(int)\"); }	\n" +
-			"	protected void bar(Object o) { System.out.println(\"X2.bar(Object)\"); }	\n" +
-			"	void barbar(Object o){	System.out.println(\"X2.barbar(Object)\"); }	\n" +
-			"	protected void baz(String s) {	System.out.println(\"X2.baz(String)\"); }	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 9)\n" + 
-		"	barbar(\"String\");	\n" + 
-		"	^^^^^^\n" + 
-		"The method barbar(Object) from the type X2 is not visible\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. WARNING in q\\X2.java (at line 5)\n" + 
-		"	void barbar(Object o){	System.out.println(\"X2.barbar(Object)\"); }	\n" + 
-		"	     ^^^^^^^^^^^^^^^^\n" + 
-		"The method X2.barbar(Object) does not override the inherited method from X1 since it is private to a different package\n" + 
-		"----------\n"
-);
-}
-			
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580
- * 1.4 signals invocations of non-visible abstract protected field implementations.
- */
-public void test032() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X {	\n" +
-			"	public static void main(String[] args){	\n" +
-			"		System.out.println(new q.X2().foo);	\n" +
-			"		System.out.println(new q.X2().bar);	\n" +
-			"	}	\n" +
-			"}	\n",
-			
-			"p/X1.java",
-			"package p;	\n" +
-			"public abstract class X1 {	\n" +
-			"	protected String foo = \"X1.foo\"; 	\n" +
-			"	String bar = \"X1.bar\";	\n" +
-			"}	\n",
-			
-			"q/X2.java",
-			"package q;	\n" +
-			"public class X2 extends p.X1 {	\n" +
-			"	protected String foo = \"X2.foo\";	\n" +
-			"	String bar = \"X2.bar\";	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 4)\n" + 
-		"	System.out.println(new q.X2().foo);	\n" + 
-		"	                              ^^^\n" + 
-		"The field X2.foo is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 5)\n" + 
-		"	System.out.println(new q.X2().bar);	\n" + 
-		"	                              ^^^\n" + 
-		"The field X2.bar is not visible\n" + 
-		"----------\n");
-}
-
-/*
- * Initialization of synthetic fields prior to super constructor call
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23075
- */
-public void test033() {
-
-	this.runConformTest(
-		new String[] {
-			"A.java",
-			"public class A {	\n"+
-			"  public int m;	\n"+
-			"  public void pp() {	\n"+
-			"     C c = new C(4);	\n"+
-			"     System.out.println(c.get());	\n"+
-			"  }	\n"+
-			"  public static void main(String[] args) {	\n"+
-			"     A a = new A();	\n"+
-			"	  try {	\n"+
-			"       a.pp(); 	\n"+
-			"		System.out.println(\"SyntheticInit BEFORE SuperConstructorCall\");	\n"+
-			"	  } catch(NullPointerException e) {	\n"+
-			"		System.out.println(\"SyntheticInit AFTER SuperConstructorCall\"); // should no longer occur with target 1.4 \n"+
-			"	  }	\n"+
-			"  }	\n"+
-			"  class C extends B {	\n"+
-			"    public C(int x1) {	\n"+
-			"      super(x1);    	\n"+
-			"    }	\n"+
-			"    protected void init(int x1) {	\n"+
-			"       x = m * x1; // <- NULL POINTER EXCEPTION because of m	\n"+
-			"    }  	\n"+
-			"  }	\n"+
-			"}	\n"+
-			"class B {	\n"+
-			"  int x;	\n"+
-			"  public B(int x1) {	\n"+
-			"    init(x1);	\n"+
-			"  }	\n"+
-			"  protected void init(int x1) {	\n"+
-			"    x  = x1;	\n"+
-			"  }	\n"+
-			"  public int get() {	\n"+
-			"    return x;	\n"+
-			"  }	\n"+
-			"}	\n"
-		},
-		"0\n" + 
-		"SyntheticInit BEFORE SuperConstructorCall");
-}
-/*
- * Initialization of synthetic fields prior to super constructor call - NPE check
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25174
- */
-public void test034() {
-
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new X2();	\n"+
-			"	}	\n"+
-			"	class X1 {	\n"+
-			"		X1(){	\n"+
-			"			this.baz();	\n"+
-			"		}	\n"+
-			"		void baz() {	\n"+
-			"			System.out.println(\"-X1.baz()\");	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	class X2 extends X1 {	\n"+
-			"		void baz() {	\n"+
-			"			System.out.print(X.this==null ? \"X.this == null\" : \"X.this != null\");	\n"+
-			"			X1 x1 = X.this.new X1(){	\n"+
-			"				void baz(){	\n"+
-			"					System.out.println(\"-X$1.baz()\");	\n"+
-			"				}	\n"+
-			"			};	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}\n",
-		},
-		"X.this != null-X$1.baz()");
-}
-
-public void test035() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	class Y { Y(int i){} }	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		int i = 1;	\n" +
-			"		try {	\n" +
-			"			X x =null;	\n" +
-			"			x.new Y(++i);	\n" + // i won't get incremented before NPE
-			"			System.out.println(\"FAILED\");	\n" +
-			"		} catch(NullPointerException e){	\n" +
-			"			System.out.println(\"SUCCESS:\"+i);	\n" +
-			"		}	\n" +
-			"	}	\n"+
-			"}	\n",
-		},
-		"SUCCESS:1"
-	);
-}
-
-public void test036() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	class Y {}	\n"+
-			"	static class Z extends Y {	\n"+
-			"		Z (X x){	\n"+
-			"			x.super();	\n" +
-			"		}		\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		try {	\n" +
-			"			new Z(null);	\n" +
-			"			System.out.println(\"FAILED\");	\n" +
-			"		} catch(NullPointerException e){	\n" +
-			"			System.out.println(\"SUCCESS\");	\n" +
-			"		}	\n" +
-			"	}	\n"+
-			"}	\n",
-		},
-		"SUCCESS"
-	);
-}
-
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=24744
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23096
- * 
- * NOTE: since JLS got revised to allow unterminated line comments (32476)
- */
-public void test037() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_TaskTags, "TODO:");
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n"+
-			"public class X {\n"+
-			"}\n"+
-			"// TODO: something"
-		},
-		"----------\n" + 
-		"1. WARNING in p\\X.java (at line 4)\n" + 
-		"	// TODO: something\n" + 
-		"	   ^^^^^^^^^^^^^^^\n" + 
-		"TODO: something\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=24833
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23096
- * 
- * NOTE: since JLS got revised to allow unterminated line comments (32476)
- */
-public void test038() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_TaskTags, "TODO:");
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"// TODO: something"
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 1)\n" + 
-		"	// TODO: something\n" + 
-		"	   ^^^^^^^^^^^^^^^\n" + 
-		"TODO: something\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-
-/*
- * unreachable empty statement/block are diagnosed in 1.3
- */
-public void test039() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"	public static void main(String[] args){	\n"+
-			"		for (;null != null;);	\n"+
-			"		for (;null != null;){}	\n"+
-			"		for (;false;);	\n"+
-			"		for (;false;){}	\n"+
-			"		while (false);	\n"+
-			"		while (false){}	\n"+
-			"		if (false) {} else {}	\n"+
-			"		if (false) ; else ;			\n"+
-			"		System.out.println(\"FAILED\");	\n" +
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	for (;false;);	\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	for (;false;){}	\n" + 
-		"	             ^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 7)\n" + 
-		"	while (false);	\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 8)\n" + 
-		"	while (false){}	\n" + 
-		"	             ^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-// jls6.5.5.1 - simple type names favor member type over toplevel one.
-//http://bugs.eclipse.org/bugs/show_bug.cgi?id=30705
-public void test040() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	interface Homonym {}	\n"+ // takes precedence over others.
-			"	void foo() {	\n"+
-			"		class Homonym extends X {	\n"+
-			"			{	\n"+
-			"				class Y extends Homonym {};	\n"+ // X$Homonym
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"class Homonym extends X {	\n"+
-			"	{	\n"+
-			"		class Y extends Homonym {};	\n"+ // X$Homonym
-			"	}	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 4)\n" + 
-		"	class Homonym extends X {	\n" + 
-		"	      ^^^^^^^\n" + 
-		"The type Homonym is hiding the type X.Homonym\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	class Y extends Homonym {};	\n" + 
-		"	                ^^^^^^^\n" + 
-		"The type X.Homonym cannot be the superclass of Y; a superclass must be a class\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 13)\n" + 
-		"	class Y extends Homonym {};	\n" + 
-		"	                ^^^^^^^\n" + 
-		"The type X.Homonym cannot be the superclass of Y; a superclass must be a class\n" + 
-		"----------\n");
-}
-/*
- * 30856 - 1.4 compliant mode should consider abstract method matches
- */
-public void test041() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java", //================================
-			"package p;	\n" +
-			"public class X {	\n" +
-			"	void foo(int i, float f){}	\n" +
-			"	public static void main(String[] args) {	\n" +
-			"		q.Y y = new q.Y.Z();	\n" +
-			"		y.bar();	\n" +
-			"	}	\n" +
-			"}	\n",
-			"q/Y.java", //================================
-			"package q;	\n" +
-			"public abstract class Y extends p.X implements I {	\n" +
-			"	public void bar(){   foo(1, 2); }	\n" +
-			"	public static class Z extends Y {	\n" +
-			"		public void foo(float f, int i) {	\n" +
-			"			System.out.println(\"SUCCESS\");	\n" +
-			"		}	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"interface I {	\n" +
-			"	void foo(float f, int i);	\n" +
-			"}	\n",
-		},
-		"SUCCESS");
-}
-/*
- * variation - 30856 - 1.4 compliant mode should consider abstract method matches
- */
-public void test042() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java", //================================
-			"package p;	\n" +
-			"public class X extends X0 {	\n" +
-			"	void foo(int i, float f){}	\n" +
-			"	public static void main(String[] args) {	\n" +
-			"		q.Y y = new q.Y.Z();	\n" +
-			"		y.bar();	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"class X0 {	\n" +
-			"	void foo(int i, double d){}	\n" + // extra match
-			"}	\n",
-			"q/Y.java", //================================
-			"package q;	\n" +
-			"public abstract class Y extends p.X implements I {	\n" +
-			"	public void bar(){   foo(1, 2); }	\n" +
-			"	public static class Z extends Y {	\n" +
-			"		public void foo(float f, int i) {	\n" +
-			"			System.out.println(\"SUCCESS\");	\n" +
-			"		}	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"interface I {	\n" +
-			"	void foo(float f, int i);	\n" +
-			"}	\n",
-		},
-		"SUCCESS");
-}
-
-// binary compatibility
-public void _test043() {
-	this.runConformTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1;	\n" +
-			"public class Y extends A implements I { \n" +
-			"	public static void main(String[] args) {	\n" +
-			"		Y.printValues();	\n" +
-			"	}	\n" +
-			"	public static void printValues() {	\n" +
-			"		System.out.println(\"i=\"+i+\",j=\"+j+\",Y.i=\"+Y.i+\",Y.j=\"+Y.j);	\n" +
-			"	}	\n" +
-			"}	\n",
-			"p1/A.java",
-			"package p1;	\n" +
-			"public class A {	\n" +
-			"	static int i = 1;	\n" +
-			"}	\n",
-			"p1/I.java",
-			"package p1;	\n" +
-			"interface I {	\n" +
-			"	int j = \"aa\".length();	\n" +
-			"}	\n",
-		},
-		"i=1,j=2,Y.i=1,Y.j=2");
-
-	this.runConformTest(
-		new String[] {
-			"p1/A.java",
-			"package p1;	\n" +
-			"public class A {	\n" +
-			"	static int j = 3;	\n" +
-			"	public static void main(String[] args) {	\n" +
-			"		Y.printValues();	\n" +
-			"	}	\n" +
-			"}	\n",
-			"p1/I.java",
-			"package p1;	\n" +
-			"interface I {	\n" +
-			"	int j = \"aaaa\".length();	\n" +
-			"}	\n",
-		},
-		"i=4,j=3,Y.i=4,Y.j=3",
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args		
-}
-///* 
-// * array.clone() should use array type in methodRef
-// * http://bugs.eclipse.org/bugs/show_bug.cgi?id=36307
-// */
-//public void test044() {
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" +
-//			"    public static void main(String[] args) {\n" +
-//			"		args.clone();	\n"+
-//			"		System.out.println(\"SUCCESS\");\n" +
-//			"    }\n" +
-//			"}\n",
-//		},
-//		"SUCCESS");
-//		
-//	ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//	String actualOutput = null;
-//	try {
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(new File(OUTPUT_DIR + File.separator  +"X.class"));
-//		actualOutput =
-//			disassembler.disassemble(
-//				classFileBytes,
-//				"\n",
-//				ClassFileBytesDisassembler.DETAILED); 
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue("ClassFormatException", false);
-//	} catch (IOException e) {
-//		assertTrue("IOException", false);
-//	}
-//	
-//	String expectedOutput = 
-//		"     1  invokevirtual java.lang.String[].clone() : java.lang.Object [16]\n";
-//		
-//	int index = actualOutput.indexOf(expectedOutput);
-//	if (index == -1 || expectedOutput.length() == 0) {
-//		System.out.println(Util.displayString(actualOutput, 2));
-//	}
-//	if (index == -1) {
-//		assertEquals("Wrong contents", expectedOutput, actualOutput);
-//	}
-//}
-// 39172
-public void test045() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X { \n" +
-			"	public static void main(String[] args) {	\n" +
-			"		System.out.println(\"FAILED\");	\n" +
-			"		return;;	\n" + // unreachable empty statement - must complain in 1.4 mode
-			"	}	\n" +
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 5)\n" + 
-		"	return;;	\n" + 
-		"	       ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n"
-	);
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39467
- * should diagnose missing abstract method implementation
- */
-public void test046() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X extends Y {\n" + 
-			"}\n" + 
-			"abstract class Y extends Z {\n" + 
-			"  public abstract void foo();\n" + 
-			"}\n" + 
-			"abstract class Z extends T {\n" + 
-			"}\n" + 
-			"class T implements I {\n" + 
-			"  public void foo(){}\n" + 
-			"}\n" + 
-			"interface I {\n" + 
-			"    public void foo ();\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X extends Y {\n" + 
-		"	             ^\n" + 
-		"The type X must implement the inherited abstract method Y.foo()\n" + 
-		"----------\n"
-	);
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40442
- * Abstract class fails to invoke interface-defined method in 1.4 compliance mode.
- */
-public void test047() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X extends AbstractDoubleAlgorithm {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		((ObjectAlgorithm)(new X())).operate(new Double(0));\n" + 
-			"	}\n" + 
-			"    public void operate(Double pDouble)\n" + 
-			"    {\n" + 
-			"        System.out.println(\"SUCCESS\");\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"abstract class AbstractDoubleAlgorithm implements DoubleAlgorithm {\n" + 
-			"    public void operate(Object pObject)\n" + 
-			"    {\n" + 
-			"        operate((Double)pObject);\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"interface DoubleAlgorithm extends ObjectAlgorithm {\n" + 
-			"    void operate(Double pDouble);\n" + 
-			"}\n" + 
-			"interface ObjectAlgorithm {\n" + 
-			"    void operate(Object pObject);\n" + 
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40442
- * Abstract class fails to invoke interface-defined method in 1.4 compliance mode.
- * variation with 2 found methods
- */
-public void test048() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X extends AbstractDoubleAlgorithm {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		((ObjectAlgorithm)(new X())).operate(new Double(0));\n" + 
-			"	}\n" + 
-			"    public void operate(Double pDouble)\n" + 
-			"    {\n" + 
-			"        System.out.println(\"SUCCESS\");\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"abstract class AbstractDoubleAlgorithm implements DoubleAlgorithm {\n" + 
-			"    public void operate(Object pObject)\n" + 
-			"    {\n" + 
-			"        operate((Double)pObject);\n" + 
-			"    }\n" + 
-			"    public void operate(X x) {}\n" + 
-			"}\n" + 
-			"interface DoubleAlgorithm extends ObjectAlgorithm {\n" + 
-			"    void operate(Double pDouble);\n" + 
-			"}\n" + 
-			"interface ObjectAlgorithm {\n" + 
-			"    void operate(Object pObject);\n" + 
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=41278
- */
-public void test049() {
-	this.runNegativeTest(
-		new String[] {
-			"pa/Caller.java",
-			"package pa;\n" + 
-			"import pb.Concrete;\n" + 
-			"public class Caller {\n" + 
-			"\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		Concrete aConcrete = new Concrete(); \n" + 
-			"		aConcrete.callme();\n" + 
-			"	}\n" + 
-			"}\n",
-			"pa/Abstract.java",
-			"package pa;\n" + 
-			"public abstract class Abstract {\n" + 
-			"\n" + 
-			"	protected void callme(){}\n" + 
-			"}\n",
-			"pb/Concrete.java",
-			"package pb;\n" + 
-			"public class Concrete extends pa.Abstract {\n" + 
-			"\n" + 
-			"	protected void callme(){	System.out.println(\"SUCCESS\"); }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in pa\\Caller.java (at line 7)\n" + 
-		"	aConcrete.callme();\n" + 
-		"	          ^^^^^^\n" + 
-		"The method callme() from the type Concrete is not visible\n" + 
-		"----------\n");
-}
-
-public void test050() {
-	this.runNegativeTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public static void main(String args[]) {\n" + 
-		"     foo();\n" + 
-		"  }\n" + 
-		"  public static void foo() {\n" + 
-		"     int a1 = 1;\n" + 
-		"     int a2 = 1;\n" + 
-		"     a1 = 2;\n" + 
-		"     while (false) {};\n" + 
-		"     a2 = 2;\n" + 
-		"  }\n" + 
-		"}\n",
-	},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 10)\n" + 
-		"	while (false) {};\n" + 
-		"	              ^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-
-public void test051() {
-	this.runNegativeTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public static void main(String args[]) {\n" + 
-		"     foo();\n" + 
-		"  }\n" + 
-		"  public static void foo() {\n" + 
-		"     int a1 = 1;\n" + 
-		"     int a2 = 1;\n" + 
-		"     a1 = 2;\n" + 
-		"     while (false);\n" + 
-		"     a2 = 2;\n" + 
-		"  }\n" + 
-		"}\n",
-	},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 10)\n" + 
-		"	while (false);\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-
-public void test052() {
-	this.runNegativeTest(
-		new String[] {
-			"p/A.java",
-			"package p;\n" + 
-			"public class A {\n" + 
-			"  public static void main(String[] argv) {\n" + 
-			"    foo();\n" + 
-			"  }\n" + 
-			"  private int i;\n" + 
-			"  static class Y extends X {\n" + 
-			"    int x = i;\n" + 
-			"  }\n" + 
-			"  public static void foo() {\n" + 
-			"    return;\n" + 
-			"  }\n" + 
-			"}",
-	
-			"p/X.java",
-			"package p;\n" + 
-			"public class X {\n" + 
-			"  public static void main(String argv[]) {\n" + 
-			"     foo();\n" + 
-			"  }\n" + 
-			"  public static void foo() {\n" + 
-			"     int a1 = 1;\n" + 
-			"     int a2 = 1;\n" + 
-			"     a1 = 2;\n" + 
-			"     while (false);\n" + 
-			"     a2 = 2;\n" + 
-			"  }\n" + 
-			"}"
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\A.java (at line 6)\n" + 
-		"	private int i;\n" + 
-		"	            ^\n" + 
-		"The field A.i is never read locally\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\A.java (at line 8)\n" + 
-		"	int x = i;\n" + 
-		"	        ^\n" + 
-		"Cannot make a static reference to the non-static field i\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 10)\n" + 
-		"	while (false);\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-
-public void test053() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"class X {\n" + 
-			"  static class A {\n" + 
-			"    interface I {\n" + 
-			"      int a = 3;\n" + 
-			"    }\n" + 
-			"  } \n" + 
-			"  interface I { \n" + 
-			"    int b = 4;\n" + 
-			"  }\n" + 
-			"  class Y extends A implements I {\n" + 
-			"    Object F() {\n" + 
-			"      return new I() {\n" + 
-			"        int c = a; // WE SHOULD NOT BE ABLE TO SEE BOTH a and b\n" + 
-			"        int d = b; // WE SHOULD NOT BE ABLE TO SEE BOTH a and b\n" + 
-			"      };\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}",
-		}
-	);
-}
-
-public void test054() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"public class X {\n" + 
-			"  static class A {\n" + 
-			"    interface I {\n" + 
-			"      int a = 3;\n" + 
-			"      void foo();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  interface I {\n" + 
-			"    int a = 4;\n" + 
-			"    void foo();\n" + 
-			"  }\n" + 
-			"  class Y extends A implements I {\n" + 
-			"    public void foo() {\n" + 
-			"      new I() {\n" + 
-			"        public void foo() {\n" + 
-			"          System.out.println(\"X$1::foo-\" + a);\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"      .foo();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"public static void main(String argv[]) {\n" + 
-			"  new X().new Y().foo();\n" + 
-			"}\n" + 
-			"}",
-		}
-	);
-}
-public void test055() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"public class X {\n" + 
-			"  static class A {\n" + 
-			"    interface I2 {\n" + 
-			"      int a = 3;\n" + 
-			"      void foo();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  interface I1 {\n" + 
-			"    int a = 4;\n" + 
-			"    void foo(int a);\n" + 
-			"  }\n" + 
-			"  class Y extends A implements I1 {\n" + 
-			"    public void foo(int a) {\n" + 
-			"      new I2() {\n" + 
-			"        public void foo() {\n" + 
-			"          System.out.println(\"X$1::foo-\" + a);\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"      .foo();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"public static void main(String argv[]) {\n" + 
-			"  new X().new Y().foo(8);\n" + 
-			"}\n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\X.java (at line 11)\n" + 
-		"	void foo(int a);\n" + 
-		"	             ^\n" + 
-		"The parameter a is hiding a field from type X.I1\n" + 
-		"----------\n" + 
-		"2. WARNING in p\\X.java (at line 14)\n" + 
-		"	public void foo(int a) {\n" + 
-		"	                    ^\n" + 
-		"The parameter a is hiding a field from type X.I1\n" + 
-		"----------\n"
-	);
-}
-
-public void test056() {
-	this.runConformTest(
-		new String[] {
-			"p/MethodQualification.java",
-			"package p;\n" + 
-			"public class MethodQualification {\n" + 
-			"  void foo() {\n" + 
-			"  System.out.println(\"Inherited foo() for anonymous type\");\n" + 
-			"  class Local {\n" + 
-			"    void foo(){\n" + 
-			"    System.out.println(\"Enclosing foo() for anonymous type\");\n" + 
-			"    new MethodQualification () { {foo();} };\n" + 
-			"    }\n" + 
-			"  };\n" + 
-			"  }  \n" + 
-			"}",
-		}, 
-		""
-	);
-}
-
-public void test057() {
-	this.runConformTest(
-		new String[] {
-			"p/AG.java",
-			"package p;\n" + 
-			"/**\n" + 
-			" * 1F9RITI\n" + 
-			" */\n" + 
-			"public class AG {\n" + 
-			"  public class X {\n" + 
-			"    class B {\n" + 
-			"      int intValueOfB = -9;\n" + 
-			"    }\n" + 
-			"    class SomeInner extends A {\n" + 
-			"      void someMethod() {\n" + 
-			"        int i = new B().intValueOfB; \n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  class A {\n" + 
-			"    class B {\n" + 
-			"      int intValueOfB = -9;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}",
-		}, 
-		""
-	);
-}
-
-public void test058() {
-	this.runConformTest(
-		new String[] {
-			"p/AE.java",
-			"package p;\n" + 
-			"/**\n" + 
-			" * 1F9RITI\n" + 
-			" */\n" + 
-			"public class AE {\n" + 
-			"  public class X {\n" + 
-			"    int intValue = 153;\n" + 
-			"    class SomeInner extends A {\n" + 
-			"      void someMethod() {\n" + 
-			"        int i = intValue; \n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  class A {\n" + 
-			"    int intValue = 153;\n" + 
-			"  }\n" + 
-			"}",
-		}, 
-		""
-	);
-}
-
-public void test059() {
-	this.runNegativeTest(
-		new String[] {
-			"p/FieldQualification.java",
-			"package p;\n" + 
-			"public class FieldQualification {\n" + 
-			"  String field = \"Inherited field for anonymous type\";\n" + 
-			"void foo() {\n" + 
-			"  class Local {\n" + 
-			"    String field = \"Enclosing field for anonymous type\";\n" + 
-			"    void foo() {\n" + 
-			"      System.out.println(\"Enclosing foo() for anonymous type\");\n" + 
-			"      new FieldQualification() {\n" + 
-			"        {\n" + 
-			"          System.out.println(field);\n" + 
-			"        }\n" + 
-			"      };\n" + 
-			"    }\n" + 
-			"  };\n" + 
-			"}\n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\FieldQualification.java (at line 5)\n" +
-		"	class Local {\n" +
-		"	      ^^^^^\n" +
-		"The type Local is never used locally\n" +
-		"----------\n" +
-		"2. WARNING in p\\FieldQualification.java (at line 6)\n" + 
-		"	String field = \"Enclosing field for anonymous type\";\n" + 
-		"	       ^^^^^\n" + 
-		"The field Local.field is hiding a field from type FieldQualification\n" + 
-		"----------\n" + 
-		"3. WARNING in p\\FieldQualification.java (at line 6)\n" + 
-		"	String field = \"Enclosing field for anonymous type\";\n" + 
-		"	       ^^^^^\n" + 
-		"The field Local.field is never read locally\n" + 
-		"----------\n" + 
-		"4. WARNING in p\\FieldQualification.java (at line 7)\n" + 
-		"	void foo() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method foo() from the type Local is never used locally\n" + 
-		"----------\n");
-}
-
-public void test060() {
-	this.runConformTest(
-		new String[] {
-			"p/AF.java",
-			"package p;\n" + 
-			"/**\n" + 
-			" * 1F9RITI\n" + 
-			" */\n" + 
-			"public class AF {\n" + 
-			"  public class X {\n" + 
-			"    int intMethod() {\n" + 
-			"      return 3333;\n" + 
-			"    }\n" + 
-			"    class SomeInner extends A {\n" + 
-			"      void someMethod() {\n" + 
-			"        int i = intMethod();\n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  class A {\n" + 
-			"    int intMethod() {\n" + 
-			"      return 3333;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}",
-		}, 
-		""
-	);
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=32342
- */
-public void test061() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //======================
-			"package p;	\n" +
-			"public class X extends q.Y {	\n" +
-			"	X someField;	\n" + // no ambiguity since inherited Y.X isn't visible
-			"}	\n" +
-			"class Z extends q.Y {	\n" +
-			"	Z someField;	\n" + // ambiguous
-			"}	\n",
-			"q/Y.java", //======================
-			"package q;	\n" +
-			"public class Y {	\n" +
-			"	private static class X {}	\n" +
-			"	public static class Z {}	\n" +
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. WARNING in q\\Y.java (at line 3)\n" + 
-		"	private static class X {}	\n" + 
-		"	                     ^\n" + 
-		"The type Y.X is never used locally\n" + 
-		"----------\n");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11435
- * variant - must still complain when targeting super abstract method
- */
-public void test062() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1;	\n"+
-			"public class Y extends AbstractT {	\n"+
-			"	public void init(){	\n"+
-			"		super.init();	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"abstract class AbstractT implements J {	\n"+
-			"}	\n"+
-			"interface J {	\n"+
-			"	void init();	\n"+
-			"}	\n"	
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\Y.java (at line 4)\n" + 
-		"	super.init();	\n" + 
-		"	^^^^^^^^^^^^\n" + 
-		"Cannot directly invoke the abstract method init() for the type J\n" + 
-		"----------\n"); // expected log
-}
-
-public void test063() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	class Y extends X {}	\n"+
-			"	class Z extends Y {	\n"+
-			"		Z(){	\n"+
-			"			System.out.println(\"SUCCESS\");	\n"+
-			"		}	\n" +
-			"	}	\n" +
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new Z();	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 5)\n" + 
-		"	Z(){	\n" + 
-		"	^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n"
-	);
-}
-
-/**
- * Refuse selection of own enclosing instance arg for super constructor call in 1.3 compliant mode
- */
-public void test064() {
-	this.runNegativeTest(
-		new String[] {
-			"Foo.java",
-			"public class Foo {\n" +
-			"	public static void main(String[] args) {\n"+
-			"		System.out.println(\"SUCCESS\");\n"+
-			"	}\n"+
-			"	public class Bar extends Foo {\n" +
-			"		public Bar() {\n" +
-			"		}\n" +
-			"	}\n" +
-			"	public class Baz extends Bar {\n" +
-			"		public Baz() {\n" +
-			"		}\n" +
-			"	}\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in Foo.java (at line 10)\n" + 
-		"	public Baz() {\n" + 
-		"	       ^^^^^\n" + 
-		"No enclosing instance of type Foo is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-public void test065() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new Y().new Z().bar();	\n"+
-			"	}	\n"+
-			"	String foo() { return \"X-foo\"; }	\n"+
-			"	class Y extends X {	\n"+
-			"		String foo() { return \"Y-foo\"; }	\n"+
-			"		class Z extends Y {	\n"+
-			"			Z(){	\n"+
-			"				//X.this.super();	\n"+
-			"			}	\n"+
-			"			String foo() { return \"Z-foo\"; }	\n"+
-			"			void bar () {	\n"+
-			"				System.out.println(X.this.foo());	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	Z(){	\n" + 
-		"	^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-/*
- * Check that anonymous type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test066() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X(Object o) {}\n" + 
-			"  class M extends X {\n" + 
-			"    M(){\n" + 
-			"      super(null);\n" + 
-			"    }\n" + 
-			"    M(Object o) {\n" + 
-			"      super(new M(){});\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	super(new M(){});\n" + 
-		"	      ^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	super(new M(){});\n" + 
-		"	          ^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-/*
- * Check that indirect member type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test067() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	X(Object o) {\n" + 
-			"	}\n" + 
-			"	class N extends X {\n" + 
-			"		N(Object o) {\n" + 
-			"			super(o);\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	class M extends N {\n" + 
-			"		M() {\n" + 
-			"			super(null); //1\n" + 
-			"		}\n" + 
-			"		M(Object o) {\n" + 
-			"			super(new M());//2\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 11)\n" + 
-		"	super(null); //1\n" + 
-		"	^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 14)\n" + 
-		"	super(new M());//2\n" + 
-		"	^^^^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 14)\n" + 
-		"	super(new M());//2\n" + 
-		"	      ^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-/*
- * Check that indirect member type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test068() { 
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	class MX1 extends X {\n" + 
-			"		MX1() {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	class MX2 extends MX1 {\n" + 
-			"		MX2() {\n" + 
-			"			super();	// ko\n" + 
-			"		}\n" + 
-			"		MX2(X x) {\n" + 
-			"			this();		// ok\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	super();	// ko\n" + 
-		"	^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-/*
- * Check that indirect member type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test069() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	class MX3 extends X {\n" + 
-			"		MX3(X x) {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	class MX4 extends MX3 {\n" + 
-			"		MX4() {\n" + 
-			"			super(new MX4());	// ko\n" + 
-			"		}\n" + 
-			"		MX4(X x) {\n" + 
-			"			this();		// ok\n" + 
-			"		}\n" + 
-			"		MX4(int i) {\n" + 
-			"			this(new MX4());		// ko\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	super(new MX4());	// ko\n" + 
-		"	^^^^^^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	super(new MX4());	// ko\n" + 
-		"	      ^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 14)\n" + 
-		"	this(new MX4());		// ko\n" + 
-		"	     ^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-// binary compatibility
-public void test070() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X extends Middle {\n" + 
-			"	public static void main(String argv[]) {\n" + 
-			"		System.out.println(new X().field);\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class Middle extends Top {\n" + 
-			"}\n" + 
-			"class Top {\n" + 
-			"	String field = \"Top.field\";\n" + 
-			"}\n"		
-		},
-		"Top.field");
-
-	this.runConformTest(
-		new String[] {
-			"Middle.java",
-			"public class Middle extends Top {\n" + 
-			"	public static void main(String[] arguments) { \n"+
-			"		X.main(arguments);	\n" +
-			"	}	\n" +
-			"	String field = \"Middle.field\";\n" + 
-			"}\n"
-		},
-		"Middle.field",
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args		
-}
-
-/*
- * 43429 - AbstractMethodError calling clone() at runtime when using Eclipse compiler
- */
-public void test071() {
-	this.runConformTest(
-		new String[] {
-			"X.java", //================================
-			"public class X {\n" + 
-			"	public interface Copyable extends Cloneable {\n" + 
-			"		public Object clone() throws CloneNotSupportedException;\n" + 
-			"	}\n" + 
-			"	public interface TestIf extends Copyable {\n" + 
-			"	}\n" + 
-			"	public static class ClassA implements Copyable {\n" + 
-			"		public Object clone() throws CloneNotSupportedException {\n" + 
-			"			return super.clone();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static class ClassB implements TestIf {\n" + 
-			"		public Object clone() throws CloneNotSupportedException {\n" + 
-			"			return super.clone();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) throws Exception {\n" + 
-			"		Copyable o1 = new ClassA();\n" + 
-			"		ClassB o2 = new ClassB();\n" + 
-			"		TestIf o3 = o2;\n" + 
-			"		Object clonedObject;\n" + 
-			"		clonedObject = o1.clone();\n" + 
-			"		clonedObject = o2.clone();\n" + 
-			"		// The following line fails at runtime with AbstractMethodError when\n" + 
-			"		// compiled with Eclipse\n" + 
-			"		clonedObject = o3.clone();\n" + 
-			"		System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"}",
-		},
-		"SUCCESS");
-}
-public void test072() {
-	
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        try {\n" + 
-			"            f();\n" + 
-			"        } catch(NullPointerException e) {\n" + 
-			"            System.out.println(\"SUCCESS\");\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    static void f() {\n" + 
-			"        Object x = new Object() {\n" + 
-			"            {\n" + 
-			"                    if (true) throw null;\n" + 
-			"            }\n" + 
-			"        };\n" + 
-			"    }\n" + 
-			"}",
-		},
-	"SUCCESS");
-}
-// 52221
-public void test073() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        \n" + 
-			"        switch(args.length) {\n" + 
-			"            \n" + 
-			"            case 1:\n" + 
-			"                int i = 0;\n" + 
-			"                class Local {\n" + 
-			"	            }\n" + 
-			"                break;\n" + 
-			"                \n" + 
-			"			case 0 :\n" + 
-			"			    System.out.println(i); // local var can be referred to, only an initialization pb\n" + 
-			"			    System.out.println(new Local());\n" + 
-			"        		break;\n" + 
-			"\n" + 
-			"			case 2 :\n" + 
-			"                class Local { // not a duplicate\n" + 
-			"	            }\n" + 
-			"        		break;\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 14)\n" + 
-		"	System.out.println(new Local());\n" + 
-		"	                       ^^^^^\n" + 
-		"Local cannot be resolved to a type\n" + 
-		"----------\n");
-}
-
-// checking for captured outer local initialization status
-// NOTE: only complain against non-inlinable outer locals
-// http://bugs.eclipse.org/bugs/show_bug.cgi?id=26134
-public void test074() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"    public static void main(String[] args) {	\n" +
-			"    	String nonInlinedString = \"[Local]\";	\n" +
-			"    	int i = 2;	\n" +
-			"		switch(i){	\n" +
-			"			case 1:	\n" +
-			"				final String displayString = nonInlinedString;\n" +
-			"				final String inlinedString = \"a\";	\n" +
-			"				class Local {	\n" +
-			"					public String toString() {	\n" +
-			"						return inlinedString + displayString;	\n" +
-			"					}	\n" +
-			"				}	\n" +
-			"			case 2:	\n" +
-			"				System.out.print(new Local());	\n" +
-			"				System.out.print(\"-\");	\n" +
-			"				System.out.println(new Local(){	\n" +
-			"					public String toString() {	\n" +
-			"						return super.toString()+\": anonymous\";	\n" +
-			"					}	\n" +
-			"				});	\n" +
-			"		}	\n" +
-			"    }	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 15)\n" + 
-		"	System.out.print(new Local());	\n" + 
-		"	                     ^^^^^\n" + 
-		"Local cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 17)\n" + 
-		"	System.out.println(new Local(){	\n" + 
-		"	                       ^^^^^\n" + 
-		"Local cannot be resolved to a type\n" + 
-		"----------\n");
-}
-public void test075() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"    public static void main(String[] args) {\n" + 
-			"        System.out.println(\"SUCCESS\");\n" + 
-			"    }\n" + 
-			"    public void foo(int p1) {} \n" +
-			"    public void foo(short p1) {} \n" +
-			"}	\n",
-			"Y.java",
-			"public class Y extends X {	\n" +
-			"    public void foo(long p1) {} \n" +
-			"    public void testEc() { foo((short)1); } \n" +
-			"}	\n",
-		},
-		"SUCCESS");
-}
-
-/**
- * Test fix for bug 58069.
- * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58069">58069</a>
- */
-public void test076() {
-	docSupport = true;
-	runNegativeTest(
-		new String[] {
-			"IX.java",
-			"interface IX {\n" + 
-				"	public static class Problem extends Exception {}\n" + 
-				"}\n",
-			"X.java",
-			"public abstract class X {\n" + 
-				"	public static class Problem extends Exception {}\n" + 
-				"	public abstract static class InnerClass implements IX {\n" + 
-				"		/**\n" + 
-				"		 * @throws Problem \n" + 
-				"		 */\n" + 
-				"		public void foo() throws IllegalArgumentException {\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"\n"
-		},
-		"----------\n" + 
-		"1. WARNING in IX.java (at line 2)\n" + 
-		"	public static class Problem extends Exception {}\n" + 
-		"	                    ^^^^^^^\n" + 
-		"The serializable class Problem does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 2)\n" + 
-		"	public static class Problem extends Exception {}\n" + 
-		"	                    ^^^^^^^\n" + 
-		"The serializable class Problem does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\n" + 
-		"	* @throws Problem \n" + 
-		"	          ^^^^^^^\n" + 
-		"Javadoc: Exception Problem is not declared\n" + 
-		"----------\n"	);
-}
-/**
- * Test fix bug 58069 for method.
- * Note that problem is not flagged in doc comments as it is only raised while verifying
- * implicit method and javadoc resolution does not use it.
- */
-public void test077() {
-	docSupport = true;
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1; \n"+
-			"public class Test { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new Test().foo(); \n"+
-			"	} \n"+
-			"	String bar() { \n"+
-			"		return \"FAILED\";	\n" +
-			"	} \n"+
-			"	void foo(){ \n"+
-			"		/** @see #bar() */\n" +
-			"		class Y extends Secondary { \n"+
-			"			/** @see #bar() */\n" +
-			"			String z = bar();	\n" +
-			"		}; \n"+
-			"		System.out.println(new Y().z);	\n" +
-			"	} \n"+
-			"} \n" +
-			"class Secondary { \n" +
-			"	String bar(){ return \"FAILED\"; } \n" +
-			"} \n"
-		}
-	);
-}
-/**
- * Test fix bug 58069 for field.
- * Note that problem is not flagged in doc comments as it is only raised while verifying
- * Name or Qualified name references and javadoc reference is a field reference.
- */
-public void test078() {
-	docSupport = true;
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1; \n"+
-			"public class Test { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new Test().foo(); \n"+
-			"	} \n"+
-			"	String bar = \"FAILED\";"+
-			"	void foo(){ \n"+
-			"		/** @see #bar */\n" +
-			"		class Y extends Secondary { \n"+
-			"			/** @see #bar */\n" +
-			"			String z = bar; \n"+
-			"		}; \n"+
-			"		System.out.println(new Y().z);	\n" +
-			"	} \n"+
-			"} \n" +
-			"class Secondary { \n" +
-			"	String bar = \"FAILED\"; \n" +
-			"} \n"
-		}
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47227
- */
-public void test079() {
-	this.runNegativeTest(
-		new String[] {
-			"Hello.java",
-			"void ___eval() {\n" +
-			"	new Runnable() {\n" +
-			"		int ___run() throws Throwable {\n" +
-			"			return blah;\n" +
-			"		}\n" +
-			"		private String blarg;\n" +
-			"		public void run() {\n" +
-			"		}\n" +
-			"	};\n" +
-			"}\n" +
-			"public class Hello {\n" +
-			"	private static int x;\n" +
-			"	private String blah;\n" +
-			"	public static void main(String[] args) {\n" +
-			"	}\n" +
-			"	public void hello() {\n" +
-			"	}\n" +
-			"	public boolean blah() {\n" +
-			"		return false;\n" +
-			"	}\n" +
-			"	public void foo() {\n" +
-			"	}\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in Hello.java (at line 7)\n" + 
-		"	public void run() {\n" + 
-		"		}\n" + 
-		"	};\n" + 
-		"}\n" + 
-		"	       ^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n"
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=67643
- * from 1.5 source level on most specific common super type is allowed
- */
-public void test080() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"import java.util.ArrayList;\n" + 
-			"public class X {\n" + 
-			"    private static class C1 extends ArrayList {\n" + 
-			"    }\n" + 
-			"    private static class C2 extends ArrayList {\n" + 
-			"    }\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"		ArrayList list = args == null ? new C1(): new C2();\n" + 
-			"		System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 3)\n" + 
-		"	private static class C1 extends ArrayList {\n" + 
-		"	                     ^^\n" + 
-		"The serializable class C1 does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n" + 
-		"2. WARNING in X.java (at line 5)\n" + 
-		"	private static class C2 extends ArrayList {\n" + 
-		"	                     ^^\n" + 
-		"The serializable class C2 does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 8)\n" + 
-		"	ArrayList list = args == null ? new C1(): new C2();\n" + 
-		"	                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Incompatible conditional operand types C1 and C2\n" + 
-		"----------\n");
-}
-public void test081() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"    public X foo() { return this; } \n" +
-			"}\n" +
-			"class Y extends X {\n" +
-			"    public Y foo() { return this; } \n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	public Y foo() { return this; } \n" + 
-		"	       ^\n" + 
-		"The return type is incompatible with X.foo()\n" + 
-		"----------\n");
-}
-// covariance
-public void test082() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		X x = new X1();\n" + 
-			"		System.out.println(x.foo());\n" + 
-			"	}\n" + 
-			"	Object foo() {\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"\n" + 
-			"class X1 extends X {\n" + 
-			"	String foo() {\n" + 
-			"		return \"SUCCESS\";\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	String foo() {\n" + 
-		"	^^^^^^\n" + 
-		"The return type is incompatible with X.foo()\n" + 
-		"----------\n");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=66533
- */
-public void test084() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo() {\n" + 
-			"		Object enum = null;\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 3)\n" + 
-		"	Object enum = null;\n" + 
-		"	       ^^^^\n" + 
-		"\'enum\' should not be used as an identifier, since it is a reserved keyword from source level 5.0 on\n" + 
-		"----------\n");
-}
-/**
- * Test unused import with static
- */
-public void test085() {
-	this.runNegativeTest(
-		new String[] {
-			"A.java",
-			"import static j.l.S.*;\n" + 
-				"import static j.l.S.in;\n" + 
-				"\n" + 
-				"public class A {\n" + 
-				"\n" + 
-				"}\n",
-			"j/l/S.java",
-			"package j.l;\n" + 
-				"public class S {\n" + 
-				"	public static int in;\n" + 
-				"}\n"
-		},
-		"----------\n" + 
-			"1. ERROR in A.java (at line 1)\n" + 
-			"	import static j.l.S.*;\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, static imports are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in A.java (at line 2)\n" + 
-			"	import static j.l.S.in;\n" + 
-			"	^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, static imports are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"3. ERROR in A.java (at line 2)\n" + 
-			"	import static j.l.S.in;\n" + 
-			"	              ^^^^^^^^\n" + 
-			"The import j.l.S.in cannot be resolved\n" + 
-			"----------\n"
-		);
-}
-/**
- * Test invalid static import syntax
- */
-public void test086() {
-	this.runNegativeTest(
-		new String[] {
-			"p/S.java",
-			"package p;\n" + 
-				"public class S {\n" + 
-				"    public final static String full = \"FULL\";\n" + 
-				"    public final static String success = \"SUCCESS\";\n" + 
-				"}\n",
-			"X.java",
-			"import static p.S;\n" + 
-				"public class X {\n" + 
-				"	public static void main ( String[] args) {\n" + 
-				"		\n" + 
-				"      System.out.print(full+\" \"+p.S.success);\n" + 
-				"   }\n" + 
-				"}\n"
-		},
-		"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	import static p.S;\n" + 
-			"	^^^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, static imports are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	System.out.print(full+\" \"+p.S.success);\n" + 
-			"	                 ^^^^\n" + 
-			"full cannot be resolved\n" + 
-			"----------\n"
-		);
-}
-public void test087() {
-	this.runNegativeTest(
-		new String[] {
-			"p/S.java",
-			"public class S {\n" + 
-				"    public final static String full = \"FULL\";\n" + 
-				"    public final static String success = \"SUCCESS\";\n" + 
-				"}\n",
-			"X.java",
-			"import static S;\n" + 
-				"public class X {\n" + 
-				"	public static void main ( String[] args) {\n" + 
-				"		\n" + 
-				"      System.out.print(full+\" \"+S.success);\n" + 
-				"   }\n" + 
-				"}\n"
-		},
-		"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	import static S;\n" + 
-			"	^^^^^^^^^^^^^^^^\n" + 
-			"Syntax error, static imports are only available if source level is 5.0\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 1)\n" + 
-			"	import static S;\n" + 
-			"	              ^\n" + 
-			"The import S cannot be resolved\n" + 
-			"----------\n" + 
-			"3. ERROR in X.java (at line 5)\n" + 
-			"	System.out.print(full+\" \"+S.success);\n" + 
-			"	                 ^^^^\n" + 
-			"full cannot be resolved\n" + 
-			"----------\n"
-		);
-}
-public void test088() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"import java.util.Date;\n" + 
-			"import java.lang.reflect.*;\n" + 
-			"public class X extends Date implements Runnable{\n" + 
-			" \n" + 
-			" Integer w = new Integer(90);\n" + 
-			" protected double x = 91.1;\n" + 
-			" public long y = 92;\n" + 
-			" static public Boolean z = new Boolean(true); \n" + 
-			" public class X_inner {\n" + 
-			"  public X_inner() {\n" + 
-			"   this.super();\n" + 
-			"   System.out.println(\"....\");\n" + 
-			"  }\n" + 
-			" }\n" + 
-			" X_inner a = new X_inner();\n" + 
-			" public interface X_interface {\n" + 
-			"   public void f(); \n" + 
-			" }\n" + 
-			" static {\n" + 
-			"  System.out.println(\"Static initializer\");\n" + 
-			" }\n" + 
-			" public X() { } \n" + 
-			" public X(int a1,int b1) { } \n" + 
-			" private void a() { System.out.println(\"A\");} \n" + 
-			" protected void b() { System.out.println(\"B\");} \n" + 
-			" public void c() { System.out.println(\"C\");} \n" + 
-			" static public int d() {System.out.println(\"Static D\");return -1;} \n" + 
-			" public static void main(String args[]) {\n" + 
-			"  X  b = new X();\n" + 
-			"  Class c = b.getClass();\n" + 
-			"  Class _getClasses [] = X.class.getClasses(); \n" + 
-			"//  System.out.println(_getClasses[0].toString());\n" + 
-			"//  System.out.println(_getClasses[1].toString());\n" + 
-			"  if (_getClasses.length == 0) {System.out.println(\"FAILED\");};\n" + 
-			"  Constructor _getConstructors[] = c.getConstructors(); \n" + 
-			"  try {\n" + 
-			"   Field _getField = c.getField(\"y\");\n" + 
-			"   Method _getMethod = c.getMethod(\"d\",null);\n" + 
-			" \n" + 
-			"   Boolean b_z = X.z; \n" + 
-			"  }\n" + 
-			"  catch (NoSuchFieldException e) { System.out.println(\"NoSuchFieldException\");}\n" + 
-			"  catch (NoSuchMethodException e) { System.out.println(\"NoSuchMethodException\");};\n" + 
-			" } \n" + 
-			" public void run() {System.out.println(\"RUN\");} \n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\X.java (at line 4)\n" + 
-		"	public class X extends Date implements Runnable{\n" + 
-		"	             ^\n" + 
-		"The serializable class X does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 12)\n" + 
-		"	this.super();\n" + 
-		"	^^^^\n" + 
-		"Illegal enclosing instance specification for type Object\n" + 
-		"----------\n" + 
-		"3. WARNING in p\\X.java (at line 25)\n" + 
-		"	private void a() { System.out.println(\"A\");} \n" + 
-		"	             ^^^\n" + 
-		"The method a() from the type X is never used locally\n" + 
-		"----------\n");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78089
- */
-public void test089() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"    @interface I1 {}\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class X {\n" + 
-			"    public static void main(String argv[])   {\n" + 
-			"    	System.out.print(\"SUCCESS\");\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\r\n" + 
-		"	@interface I1 {}\r\n" + 
-		"	           ^^\n" + 
-		"Syntax error, annotation declarations are only available if source level is 5.0\n" + 
-		"----------\n");
-}
-//78104
-public void test090() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	void foo(int[] ints, Object o) {\n" + 
-			"		ints = ints.clone();\n" + 
-			"		ints = (int[])ints.clone();\n" + 
-			"		X x = this.clone();\n" + 
-			"	}\n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	ints = ints.clone();\n" + 
-		"	       ^^^^^^^^^^^^\n" + 
-		"Type mismatch: cannot convert from Object to int[]\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	X x = this.clone();\n" + 
-		"	      ^^^^^^^^^^^^\n" + 
-		"Type mismatch: cannot convert from Object to X\n" + 
-		"----------\n"
-	);
-}
-//78104 - variation
-public void test091() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		args = args.clone();\n" + 
-			"	}\n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\r\n" + 
-		"	args = args.clone();\r\n" + 
-		"	       ^^^^^^^^^^^^\n" + 
-		"Type mismatch: cannot convert from Object to String[]\n" + 
-		"----------\n"
-	);
-}
-// check autoboxing only enabled in 5.0 source mode
-public void test092() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo(Boolean b) {\n" + 
-			"		if (b) { \n" + 
-			"			int i = 0;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	if (b) { \n" + 
-		"	    ^\n" + 
-		"Type mismatch: cannot convert from Boolean to boolean\n" + 
-		"----------\n"
-	);
-}
-public void test093() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X_1.java",
-			"package p;\n" + 
-			"/*   dena JTest Suite, Version 2.2, September 1997\n" + 
-			" *   Copyright (c) 1995-1997 Modena Software (I) Pvt. Ltd., All Rights Reserved\n" + 
-			" */\n" + 
-			"/*  Section    :  Inner classes \n" + 
-			" *  FileName   :  ciner026.java\n" + 
-			" *  Purpose    :  Positive test for Inner classes\n" + 
-			" *  \n" + 
-			" *  An anonymous class can have initializers but cannot have a constructor.\n" + 
-			" *  The argument list of the associated new expression is implicitely \n" + 
-			" *  passed to the constructor of the super class. \n" + 
-			" *\n" + 
-			" */\n" + 
-			" \n" + 
-			" class X_1 {\n" + 
-			"  static int xx = 100;\n" + 
-			"  //inner class Y  \n" + 
-			"  static class Y {  \n" + 
-			"   public int j = 0;\n" + 
-			"   Y(int x){ j = x; }\n" + 
-			"   }  \n" + 
-			" public void call_inner()\n" + 
-			" {\n" + 
-			"   int i = test_anonymous().j;\n" + 
-			" }     \n" + 
-			" public static void main(String argv[])\n" + 
-			" {\n" + 
-			"   X_1 ox = new X_1();\n" + 
-			"   ox.call_inner(); \n" + 
-			" }  \n" + 
-			"public void newMethod ( ) {\n" + 
-			"  Float f1 = null;\n" + 
-			"  f1=(f1==0.0)?1.0:f1;\n" + 
-			"}\n" + 
-			"   static Y test_anonymous()\n" + 
-			"   { \n" + 
-			"    //anonymous implementation of class Y\n" + 
-			"    return new Y(xx) //xx should be implicitely passed to Y()\n" + 
-			"    {\n" + 
-			"    };    \n" + 
-			"   \n" + 
-			"   } //end test_anonymous      \n" + 
-			"} ",
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\X_1.java (at line 33)\n" + 
-		"	f1=(f1==0.0)?1.0:f1;\n" + 
-		"	   ^^^^^^^^^\n" + 
-		"Incompatible operand types Float and double\n" + 
-		"----------\n"
-	);
-}
-/*
- * Test unused import warning in presence of syntax errors
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21022
- */
-public void test094(){
-
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"import java.io.*;	\n" +
-			"public class X {	\n" +
-			"	void foo(){\n" +
-			"		()\n" +
-			"		IOException e;\n" +
-			"	} \n" +
-			"}		\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	()\n" + 
-		"	^^\n" + 
-		"Syntax error on tokens, delete these tokens\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=84743
-public void test095(){
-
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"   int foo();\n" + 
-			"}\n" + 
-			"interface J {\n" + 
-			"   String foo();\n" + 
-			"}\n" + 
-			" \n" + 
-			"public class X implements I {\n" + 
-			"   public int foo() {\n" + 
-			" 	return 0;\n" + 
-			"   }\n" + 
-			"   public static void main(String[] args) {\n" + 
-			"         I i = new X();\n" + 
-			"         try {\n" + 
-			"	        J j = (J) i;\n" + 
-			"         } catch(ClassCastException e) {\n" + 
-			"	        System.out.println(\"SUCCESS\");\n" + 
-			"         }\n" + 
-			"  }\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 15)\n" + 
-		"	J j = (J) i;\n" + 
-		"	      ^^^^^\n" + 
-		"Cannot cast from I to J\n" + 
-		"----------\n");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47074
- */
-public void test096() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"    interface A {\n" + 
-			"       void doSomething();\n" + 
-			"    }\n" + 
-			"\n" + 
-			"    interface B {\n" + 
-			"       int doSomething();\n" + 
-			"    }\n" + 
-			"\n" + 
-			"    interface C extends B {\n" + 
-			"    }\n" + 
-			"\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        \n" + 
-			"        A a = null;\n" + 
-			"        C c = (C)a; //COMPILER ERROR\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 17)\n" + 
-		"	C c = (C)a; //COMPILER ERROR\n" + 
-		"	      ^^^^\n" + 
-		"Cannot cast from X.A to X.C\n" + 
-		"----------\n");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=79396
-public void test097() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"    public static void main(String argv[]) {\n" + 
-			"    	int cst = X1.CST;\n" + 
-			"        X2.Root.foo();\n" + 
-			"    }\n" + 
-			"    static void foo() {}\n" + 
-			"}\n" + 
-			"\n" + 
-			"class X1 {\n" + 
-			"    static {\n" + 
-			"		System.out.print(\"[X1]\");\n" + 
-			"    }\n" + 
-			"    public static final int CST = 12;\n" + 
-			"    static X Root = null;\n" + 
-			"}\n" + 
-			"class X2 {\n" + 
-			"    static {\n" + 
-			"		System.out.print(\"[X2]\");\n" + 
-			"    }\n" + 
-			"    public final int CST = 12;\n" + 
-			"    static X Root = null;\n" + 
-			"}\n"
-		},
-		"[X2]");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78906
-public void test098() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo() {\n" + 
-			"		System.out.print(\"foo\");\n" + 
-			"	}\n" + 
-			"	class Y {\n" + 
-			"		String this$0;\n" + 
-			"		String this$0$;\n" + 
-			"		void print() { \n" + 
-			"			foo();\n" + 
-			"			System.out.println(this$0+this$0$);\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		X.Y y = new X().new Y();\n" + 
-			"		y.this$0 = \"hello\";\n" + 
-			"		y.this$0$ = \"world\";\n" + 
-			"		y.print();\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	String this$0;\n" + 
-		"	       ^^^^^^\n" + 
-		"Duplicate field X.Y.this$0\n" + 
-		"----------\n");
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=77349
-public void test099() {
-	this.runNegativeTest(
-		new String[] {
-			"I.java",
-			"public interface I extends Cloneable {\n" + 
-			"	class Inner {\n" +
-			"		Object bar(I i) throws CloneNotSupportedException { return i.clone(); }\n" +
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in I.java (at line 3)\n" + 
-		"	Object bar(I i) throws CloneNotSupportedException { return i.clone(); }\n" + 
-		"	                                                             ^^^^^\n" + 
-		"The method clone() is undefined for the type I\n" + 
-		"----------\n"
-	);
-}
-
-public void test100() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    int \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-			"    void foo() {\n" + 
-			"        int \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-			"    }\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	int \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-		"	    ^^^^^^\n" + 
-		"Invalid unicode\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 4)\n" + 
-		"	int \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-		"	    ^^^^^^\n" + 
-		"Invalid unicode\n" + 
-		"----------\n"
-	);
-}
-
-public void test101() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	Character c0 = \'a\';\n" +
-			"	public static void main(String argv[]) {\n" + 
-			"		Character c1;\n" + 
-			"		c1 = \'b\';\n" + 
-			"\n" + 
-			"		Character c2 = \'c\';\n" + 
-			"		Character[] c3 = { \'d\' };\n" +
-			"	\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 2)\n" + 
-		"	Character c0 = \'a\';\n" + 
-		"	          ^^\n" + 
-		"Type mismatch: cannot convert from char to Character\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\n" + 
-		"	c1 = \'b\';\n" + 
-		"	     ^^^\n" + 
-		"Type mismatch: cannot convert from char to Character\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 7)\n" + 
-		"	Character c2 = \'c\';\n" + 
-		"	               ^^^\n" + 
-		"Type mismatch: cannot convert from char to Character\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 8)\n" + 
-		"	Character[] c3 = { \'d\' };\n" + 
-		"	                   ^^^\n" + 
-		"Type mismatch: cannot convert from char to Character\n" + 
-		"----------\n"
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=108856
-public void test102() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] s) {\n" + 
-			"		new Object() {\n" + 
-			"			{\n" + 
-			"				new Object() {\n" + 
-			"					{\n" + 
-			"						System.out.println(this.getClass().getName());\n" + 
-			"					}\n" + 
-			"				};\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"X$2");
-}
-//public void test103() {
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" +
-//			"    public static void main(String[] args) {\n" +
-//			"		System.out.print(X.class);\n" +
-//			"    }\n" +
-//			"}\n",
-//		},
-//		"class X");
-//		
-//	ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//	String actualOutput = null;
-//	try {
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(new File(OUTPUT_DIR + File.separator  +"X.class"));
-//		actualOutput =
-//			disassembler.disassemble(
-//				classFileBytes,
-//				"\n",
-//				ClassFileBytesDisassembler.DETAILED); 
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue("ClassFormatException", false);
-//	} catch (IOException e) {
-//		assertTrue("IOException", false);
-//	}
-//	
-//	String expectedOutput = 
-//		"// Compiled from X.java (version 1.4 : 48.0, super bit)\n" + 
-//		"public class X {\n" + 
-//		"  \n" + 
-//		"  // Field descriptor #6 Ljava/lang/Class;\n" + 
-//		"  static synthetic java.lang.Class class$0;\n" + 
-//		"  \n" + 
-//		"  // Method descriptor #9 ()V\n" + 
-//		"  // Stack: 1, Locals: 1\n" + 
-//		"  public X();\n" + 
-//		"    0  aload_0 [this]\n" + 
-//		"    1  invokespecial java.lang.Object() [11]\n" + 
-//		"    4  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 1]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 5] local: this index: 0 type: X\n" + 
-//		"  \n" + 
-//		"  // Method descriptor #18 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 3, Locals: 1\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"     0  getstatic java.lang.System.out : java.io.PrintStream [19]\n" + 
-//		"     3  getstatic X.class$0 : java.lang.Class [25]\n" + 
-//		"     6  dup\n" + 
-//		"     7  ifnonnull 35\n" + 
-//		"    10  pop\n" + 
-//		"    11  ldc <String \"X\"> [27]\n" + 
-//		"    13  invokestatic java.lang.Class.forName(java.lang.String) : java.lang.Class [28]\n" + 
-//		"    16  dup\n" + 
-//		"    17  putstatic X.class$0 : java.lang.Class [25]\n" + 
-//		"    20  goto 35\n" + 
-//		"    23  new java.lang.NoClassDefFoundError [34]\n" + 
-//		"    26  dup_x1\n" + 
-//		"    27  swap\n" + 
-//		"    28  invokevirtual java.lang.Throwable.getMessage() : java.lang.String [36]\n" + 
-//		"    31  invokespecial java.lang.NoClassDefFoundError(java.lang.String) [42]\n" + 
-//		"    34  athrow\n" + 
-//		"    35  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [45]\n" + 
-//		"    38  return\n" + 
-//		"      Exception Table:\n" + 
-//		"        [pc: 11, pc: 16] -> 23 when : java.lang.ClassNotFoundException\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 3]\n" + 
-//		"        [pc: 38, line: 4]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 39] local: args index: 0 type: java.lang.String[]\n" + 
-//		"}";
-//		
-//	int index = actualOutput.indexOf(expectedOutput);
-//	if (index == -1 || expectedOutput.length() == 0) {
-//		System.out.println(Util.displayString(actualOutput, 2));
-//	}
-//	if (index == -1) {
-//		assertEquals("Wrong contents", expectedOutput, actualOutput);
-//	}
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=125570
-public void test104() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] s) {\n" + 
-			"		new Object() {\n" + 
-			"			{\n" + 
-			"				new Object() {\n" + 
-			"					{\n" + 
-			"						class Y {\n" + 
-			"							{\n" + 
-			"								System.out.print(this.getClass());\n" + 
-			"								System.out.print(\' \');\n" + 
-			"								System.out.print(this.getClass().getName());\n" + 
-			"							}\n" + 
-			"						}\n" + 
-			"						;\n" + 
-			"						new Y();\n" + 
-			"					}\n" + 
-			"				};\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"class X$1$Y X$1$Y");
-}
-
-// enclosing instance - note that the behavior is different in 1.5
-public void test105() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    static class Y { }\n" + 
-			"    static class Z1 {\n" + 
-			"        Runnable m;\n" + 
-			"        Z1(Runnable p) {\n" + 
-			"            this.m = p;\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    class Z2 extends Z1 {\n" + 
-			"        Z2(final Y p) {\n" + 
-			"            super(new Runnable() {\n" + 
-			"                public void run() {\n" + 
-			"                    foo(p);\n" + 
-			"                }\n" + 
-			"            });\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    void foo(Y p) { }\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 13)\n" + 
-		"	foo(p);\n" + 
-		"	^^^^^^\n" + 
-		"No enclosing instance of the type X is accessible in scope\n" + 
-		"----------\n");
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/Compliance_1_5.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/Compliance_1_5.java
deleted file mode 100644
index f05e168..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/future/compiler/regression/Compliance_1_5.java
+++ /dev/null
@@ -1,3456 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.future.compiler.regression;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.AbstractComparableTest;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class Compliance_1_5 extends AbstractComparableTest {
-boolean docSupport = false;
-
-public Compliance_1_5(String name) {
-	super(name);
-}
-
-/*
- * Toggle compiler in mode -1.5
- */
-protected Map getCompilerOptions() {
-	Map options = super.getCompilerOptions();
-	options.put(CompilerOptions.OPTION_ReportUnnecessaryTypeCheck, CompilerOptions.IGNORE);
-	if (docSupport) {
-		options.put(CompilerOptions.OPTION_DocCommentSupport, CompilerOptions.ENABLED);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, CompilerOptions.ERROR);
-		options.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, CompilerOptions.ENABLED);
-	}
-	return options;
-}
-public static Test suite() {
-		return buildComparableTestSuite(testClass());
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which does not belong to the class are skipped...
-static {
-	// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//		TESTS_NAMES = new String[] { "Bug58069" };
-	// Numbers of tests to run: "test<number>" will be run for each number of this array
-//	TESTS_NUMBERS = new int[] { 104 };
-	// Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
-//		TESTS_RANGE = new int[] { 85, -1 };
-}
-/* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	// Javadoc disabled by default 
-	docSupport = false;
-}
-
-// test001 - moved to SuperTypeTest#test002
-// test002 - moved to SuperTypeTest#test003
-// test003 - moved to SuperTypeTest#test004
-// test004 - moved to SuperTypeTest#test005
-// test005 - moved to SuperTypeTest#test006
-// test006 - moved to SuperTypeTest#test007
-// test007 - moved to TryStatementTest#test057
-// test008 - moved to LookupTest#test074
-// test009 - moved to RuntimeTests#test1004
-
-// check actualReceiverType when array type
-public void test010() {
-	this.runConformTest(
-		new String[] {
-			"p1/Z.java",
-			"package p1; \n"+
-			"public class Z {	\n" +
-			"	public static void main(String[] arguments) { \n"+
-			"		String[] s = new String[]{\"SUCCESS\" };	\n" +
-			"		System.out.print(s.length);	\n"	+
-			"		System.out.print(((String[])s.clone())[0]);	\n"	+
-			"	} \n"+
-			"} \n"
-		},
-		"1SUCCESS");
-}
-// test unreachable code complaints
-public void test011() {
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1; \n"+
-			"public class X { \n"+
-			"	void foo() { \n"+
-			"		while (false);	\n" +
-			"		while (false) System.out.println(\"unreachable\");	\n" +
-			"		do ; while (false);	\n" +
-			"		do System.out.println(\"unreachable\"); while (false);	\n" +
-			"		for (;false;);	\n" +
-			"		for (;false;) System.out.println(\"unreachable\");	\n" +
-			"		if (false);	\n" +
-			"		if (false)System.out.println(\"unreachable\");		\n" +		
-			"	}	\n" +
-			"} \n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 4)\n" + 
-		"	while (false);	\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.java (at line 5)\n" + 
-		"	while (false) System.out.println(\"unreachable\");	\n" + 
-		"	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"3. ERROR in p1\\X.java (at line 8)\n" + 
-		"	for (;false;);	\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"4. ERROR in p1\\X.java (at line 9)\n" + 
-		"	for (;false;) System.out.println(\"unreachable\");	\n" + 
-		"	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n"
-	);
-}
-/// binary compatibility
-public void test012() {
-	this.runConformTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1;	\n" +
-			"class Store {	\n" +
-			"	String value;	\n" +
-			"	Store(String value){	\n" +
-			"		this.value = value;	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"class Top {	\n" +
-			"	static String bar = \"Top.bar\";	\n" +
-			"	String foo = \"Top.foo\";	\n" +
-			"	Store store = new Store(\"Top.store\");	\n" +
-			"	static Store sstore = new Store(\"Top.sstore\");	\n" +
-			"	static Top ss = new Top();	\n" +
-			"}	\n" +
-			"public class Y extends Updated {		\n" +
-			"	public static void main(String[] arguments) {	\n" +
-			"		new Y().test();	\n" +
-			"	}	\n" +
-			"	void test() {		\n" +
-			"		System.out.print(\"*** FIELD ACCESS ***\");	\n" +
-			"		System.out.print(\"*1* new Updated().bar: \" + new Updated().bar);	\n" +
-			"		System.out.print(\"*2* new Updated().foo: \" + new Updated().foo);	\n" +
-			"		System.out.print(\"*3* new Y().foo: \" + new Y().foo);	\n" +
-			"		System.out.print(\"*4* new Y().bar: \" + new Y().bar);	\n" +
-			"		System.out.print(\"*5* bar: \" + bar);	\n" +
-			"		System.out.print(\"*6* foo: \" + foo);	\n" +
-			"		System.out.print(\"*7* Y.bar: \" + Y.bar);	\n" +
-			"		System.out.print(\"*8* this.bar: \" + this.bar);	\n" +
-			"		System.out.print(\"*9* this.foo: \" + this.foo);	\n" +
-			"		System.out.print(\"*10* store.value: \" + store.value);	\n" +
-			"		System.out.print(\"*11* sstore.value: \" + sstore.value);	\n" +
-			"		System.out.print(\"*12* ss.sstore.value: \" + ss.sstore.value);	\n" +
-			"	}		\n" +
-			"}		\n",
-			"p1/Updated.java",
-			"package p1;	\n" +
-			"public class Updated extends Top {	\n" +
-			"}	\n"
-		},
-		"*** FIELD ACCESS ***"
-		+"*1* new Updated().bar: Top.bar"
-		+"*2* new Updated().foo: Top.foo"
-		+"*3* new Y().foo: Top.foo"
-		+"*4* new Y().bar: Top.bar"
-		+"*5* bar: Top.bar"
-		+"*6* foo: Top.foo"
-		+"*7* Y.bar: Top.bar"
-		+"*8* this.bar: Top.bar"
-		+"*9* this.foo: Top.foo"
-		+"*10* store.value: Top.store"
-		+"*11* sstore.value: Top.sstore"
-		+"*12* ss.sstore.value: Top.sstore");
-
-	this.runConformTest(
-		new String[] {
-			"p1/Updated.java",
-			"package p1; \n"+
-			"public class Updated extends Top { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		Y.main(arguments);	\n" +
-			"	}	\n" +
-			"	static String bar = \"Updated.bar\";	\n" +
-			"	String foo = \"Updated.foo\";	\n" +
-			"	Store store = new Store(\"Updated.store\");	\n" +
-			"	static Store sstore = new Store(\"Updated.sstore\");	\n" +
-			"	static Updated ss = new Updated();	\n" +
-			"} \n"
-		},
-		"*** FIELD ACCESS ***"
-		+"*1* new Updated().bar: Updated.bar"
-		+"*2* new Updated().foo: Updated.foo"
-		+"*3* new Y().foo: Updated.foo"
-		+"*4* new Y().bar: Updated.bar"
-		+"*5* bar: Updated.bar"
-		+"*6* foo: Updated.foo"
-		+"*7* Y.bar: Updated.bar"
-		+"*8* this.bar: Updated.bar"
-		+"*9* this.foo: Updated.foo"
-		+"*10* store.value: Updated.store"
-		+"*11* sstore.value: Updated.sstore"
-		+"*12* ss.sstore.value: Top.sstore",
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args		
-}
-// binary compatibility
-public void test013() {
-	this.runConformTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1;	\n" +
-			"class Store {	\n" +
-			"	String value;	\n" +
-			"	Store(String value){	\n" +
-			"		this.value = value;	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"class Top {	\n" +
-			"	static String bar() { return \"Top.bar()\"; }	\n" +
-			"	String foo() { return \"Top.foo()\"; }	\n" +
-			"}	\n" +
-			"public class Y extends Updated {		\n" +
-			"	public static void main(String[] arguments) {	\n" +
-			"		new Y().test();	\n" +
-			"	}	\n" +
-			"	void test() {		\n" +
-			"		System.out.print(\"*** METHOD ACCESS ***\");	\n" +
-			"		System.out.print(\"*1* new Updated().bar(): \" + new Updated().bar());	\n" +
-			"		System.out.print(\"*2* new Updated().foo(): \" + new Updated().foo());	\n" +
-			"		System.out.print(\"*3* new Y().foo(): \" + new Y().foo());	\n" +
-			"		System.out.print(\"*4* new Y().bar(): \" + new Y().bar());	\n" +
-			"		System.out.print(\"*5* bar(): \" + bar());	\n" +
-			"		System.out.print(\"*6* foo(): \" + foo());	\n" +
-			"		System.out.print(\"*7* Y.bar(): \" + Y.bar());	\n" +
-			"		System.out.print(\"*8* this.bar(): \" + this.bar());	\n" +
-			"		System.out.print(\"*9* this.foo(): \" + this.foo());	\n" +
-			"	}		\n" +
-			"}		\n",
-			"p1/Updated.java",
-			"package p1;	\n" +
-			"public class Updated extends Top {	\n" +
-			"}	\n"
-		},
-		"*** METHOD ACCESS ***"
-		+"*1* new Updated().bar(): Top.bar()"
-		+"*2* new Updated().foo(): Top.foo()"
-		+"*3* new Y().foo(): Top.foo()"
-		+"*4* new Y().bar(): Top.bar()"
-		+"*5* bar(): Top.bar()"
-		+"*6* foo(): Top.foo()"
-		+"*7* Y.bar(): Top.bar()"
-		+"*8* this.bar(): Top.bar()"
-		+"*9* this.foo(): Top.foo()");
-
-	this.runConformTest(
-		new String[] {
-			"p1/Updated.java",
-			"package p1; \n"+
-			"public class Updated extends Top { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		Y.main(arguments);	\n" +
-			"	}	\n" +
-			"	static String bar() { return \"Updated.bar()\"; }	\n" +
-			"	String foo() { return \"Updated.foo()\"; }	\n" +
-			"} \n"
-		},
-		"*** METHOD ACCESS ***"
-		+"*1* new Updated().bar(): Updated.bar()"
-		+"*2* new Updated().foo(): Updated.foo()"
-		+"*3* new Y().foo(): Updated.foo()"
-		+"*4* new Y().bar(): Updated.bar()"
-		+"*5* bar(): Updated.bar()"
-		+"*6* foo(): Updated.foo()"
-		+"*7* Y.bar(): Updated.bar()"
-		+"*8* this.bar(): Updated.bar()"
-		+"*9* this.foo(): Updated.foo()",
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args		
-}
-
-public void test014() {
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n" +
-			"class T {	\n" +
-			"	void foo(boolean b) {	\n" +
-			"		 System.out.print(\"T.foo(boolean)#\"); 	\n" +
-			"	}	\n" +
-			"	boolean bar = false;	\n" +
-			"	class Member {	\n" +
-			"		void display(){ System.out.print(\"T.Member#\"); }	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"public class X {	\n" +
-			"	void foo(int i) {	\n" +
-			"		 System.out.println(\"X.foo(int)#\"); 			\n" +
-			"	}	\n" +
-			"	int bar;	\n" +
-			"	class Member {	\n" +
-			"		void display(){ System.out.print(\"X.Member#\"); }	\n" +
-			"	}	\n" +
-			"	public static void main(String[] arguments) {	\n" +
-			"		new X().bar();	\n" +
-			"	}				\n" +
-			"	void bar() { 	\n" +
-			"		new T() {	\n" +
-			"			{	\n" +
-			"				foo(true);	\n" +
-			"				System.out.print((boolean)bar + \"#\");	\n" +
-			"				Member m = new Member();	\n" +	
-			"				m.display();	\n" +
-			"			} 	\n" +
-			"		};	\n" +
-			"	}	\n" +
-			"}	\n"
-		},
-		"T.foo(boolean)#false#T.Member#");
-}
-
-/*
- * check handling of default abstract methods
- */
-public void test015() {
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		C c = new C() {	\n"+
-			"			public void doSomething(){	\n"+
-			"				System.out.println(\"SUCCESS\");	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"		c.doSomething();	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"interface I {	\n"+
-			"	void doSomething();	\n"+
-			"}	\n"+
-			"abstract class C implements I {	\n"+
-			"}	\n"
-		},
-		"SUCCESS");
-}
-			
-public void test016() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(boolean b) {}	\n"+
-			"}	\n"+
-			"public class X {	\n"+
-			"      void foo(int i) {}	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(0); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"} 	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 9)\n" + 
-		"	foo(0); 	\n" + 
-		"	^^^\n" + 
-		"The method foo(boolean) in the type T is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-
-public void test017() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(boolean b) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"public class X {	\n"+
-			"      void foo(int i) {}	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(false); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-
-public void test018() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(int j) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"public class X {	\n"+
-			"      void foo(int i) {}	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(0); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-public void test019() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(int j) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"class U {	\n"+
-			"      void foo(int j) { System.out.println(\"FAILED\"); }	\n"+
-			"}	\n"+
-			"public class X extends U {	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(0); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-public void test020() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(int j) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"class U {	\n"+
-			"      void foo(boolean j) { System.out.println(\"FAILED\"); }	\n"+
-			"}	\n"+
-			"public class X extends U {	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(0); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-public void test020a() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"class T {	\n"+
-			"      void foo(U j) { System.out.println(\"SUCCESS\"); }	\n"+
-			"}	\n"+
-			"class U {	\n"+
-			"}	\n"+
-			"public class X extends U {	\n"+
-			"      void foo(X j) { System.out.println(\"FAILED\"); }	\n"+
-			"      void bar() {	\n"+
-			"            new T() {	\n"+
-			"                  {	\n"+
-			"                        foo(new X()); 	\n"+
-			"                  }	\n"+
-			"            };	\n"+
-			"      }	\n"+
-			"      public static void main(String[] arguments) {	\n"+
-			"			new X().bar();	\n" +
-			"      }	\n"+
-			"} 	\n"
-		},
-		"SUCCESS");
-}
-// binary check for 11511
-public void test021() {
-	this.runConformTest(
-		new String[] {
-			"p1/Z.java",
-			"package p1;	\n" +
-			"public class Z extends AbstractA {	\n" +
-			"	public static void main(String[] arguments) {	\n" +
-			"		new Z().init(); 	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"abstract class AbstractB implements K {	\n" +
-			"	public void init() {	\n" +
-			"		System.out.println(\"AbstractB.init()\");	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"interface K {	\n" +
-			"	void init();	\n" +
-			"	void init(int i);	\n" +
-			"}	\n",
-			"p1/AbstractA.java",
-			"package p1;	\n" +
-			"public abstract class AbstractA extends AbstractB implements K {	\n" +
-			"	public void init(int i) {	\n" +
-			"	}	\n" +
-			"}	\n"			
-		},
-		"AbstractB.init()"); // no special vm args			
-
-		// check that "new Z().init()" is bound to "Z.init()"
-		String computedReferences = findReferences(OUTPUT_DIR + "/p1/Z.class");
-		boolean check = 
-			computedReferences.indexOf("constructorRef/Z/0") >= 0
-			&& computedReferences.indexOf("methodRef/init/0") >= 0;
-		if (!check){
-			System.out.println(computedReferences);
-		}
-		assertTrue("did not bind 'new Z().init()' to Z.init()'", check);
-}
- /*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis
- */
-public void test022() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/T.java",
-			"package p1;	\n"+
-			"interface II {}	\n"+
-			"class TT {	\n"+
-			"	void foo(boolean b) {}	\n"+
-			"	void foo(int i, boolean b) {}	\n"+
-			"	void foo(String s) {}	\n"+
-			"}	\n"+
-			"public abstract class T implements II {	\n"+
-			"	void foo(int i) {}	\n"+
-			"	void bar() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(0); // should say that foo(int, boolean) isn't applicable	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"	void boo() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(true); // should not complain about ambiguity	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"} 	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\T.java (at line 13)\n" + 
-		"	foo(0); // should say that foo(int, boolean) isn\'t applicable	\n" + 
-		"	^^^\n" + 
-		"The method foo(int, boolean) in the type TT is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-   
- /*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis
- */
-public void test023() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/T.java",
-			"package p1;	\n"+
-			"interface II {}	\n"+
-			"abstract class TT {	\n"+		// 259+ABSTRACT
-			"	void foo(boolean b) {}	\n"+
-			"	void foo(int i, boolean b) {}	\n"+
-			"	void foo(String s) {}	\n"+
-			"}	\n"+
-			"public abstract class T implements II {	\n"+
-			"	void foo(int i) {}	\n"+
-			"	void bar() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(0); // should say that foo(int, boolean) isn't applicable	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"	void boo() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(true); // should complain ambiguity	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"} 	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\T.java (at line 13)\n" + 
-		"	foo(0); // should say that foo(int, boolean) isn\'t applicable	\n" + 
-		"	^^^\n" + 
-		"The method foo(int, boolean) in the type TT is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis
- */
-public void test024() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"interface II {}	\n"+
-			"abstract class T implements II {	\n"+
-			"	void foo(boolean b) {}	\n"+
-			"	void foo(int i, boolean b) {}	\n"+
-			"}	\n"+
-			"abstract class TT implements II {	\n"+
-			"	void foo(boolean b) {}	\n"+
-			"}	\n"+
-			"public class X {	\n"+
-			"	void foo(int i) {}	\n"+
-			"	void bar() {	\n"+
-			"		new T() {	\n"+
-			"			{	\n"+
-			"				foo(0); // javac says foo cannot be resolved because of multiple matches	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"	void bar2() {	\n"+
-			"		new TT() {	\n"+
-			"			{	\n"+
-			"				foo(0); // should say that foo(boolean) isn't applicable	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"	void boo() {	\n"+
-			"		new T() {	\n"+
-			"			{	\n"+
-			"				foo(true); // should complain ambiguity	\n"+
-			"			}	\n"+
-			"		};	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 15)\n" + 
-		"	foo(0); // javac says foo cannot be resolved because of multiple matches	\n" + 
-		"	^^^\n" + 
-		"The method foo(int, boolean) in the type T is not applicable for the arguments (int)\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.java (at line 22)\n" + 
-		"	foo(0); // should say that foo(boolean) isn\'t applicable	\n" + 
-		"	^^^\n" + 
-		"The method foo(boolean) in the type TT is not applicable for the arguments (int)\n" + 
-		"----------\n");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis (no matter if super is abstract or not)
- */
-public void test025() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X extends AbstractY {	\n"+
-			"	void bar(){	\n"+
-			"		init(\"hello\");	\n"+
-			"	}		\n"+
-			"}	\n"+
-			"abstract class AbstractY implements I {	\n"+
-			"}	\n"+
-			"interface I {	\n"+
-			"	void init(String s, int i);	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 2)\n" + 
-		"	public class X extends AbstractY {	\n" + 
-		"	             ^\n" + 
-		"The type X must implement the inherited abstract method I.init(String, int)\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.java (at line 4)\n" + 
-		"	init(\"hello\");	\n" + 
-		"	^^^^\n" + 
-		"The method init(String, int) in the type I is not applicable for the arguments (String)\n" + 
-		"----------\n");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11511
- * variant - applicable error diagnosis (no matter if super is abstract or not)
- */
-public void test026() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X extends AbstractY {	\n"+
-			"	void bar(){	\n"+
-			"		init(\"hello\");	\n"+
-			"	}		\n"+
-			"}	\n"+
-			"class AbstractY implements I {	\n"+
-			"}	\n"+
-			"interface I {	\n"+
-			"	void init(String s, int i);	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 4)\n" + 
-		"	init(\"hello\");	\n" + 
-		"	^^^^\n" + 
-		"The method init(String, int) in the type I is not applicable for the arguments (String)\n" + 
-		"----------\n" + 
-		"2. ERROR in p1\\X.java (at line 7)\n" + 
-		"	class AbstractY implements I {	\n" + 
-		"	      ^^^^^^^^^\n" + 
-		"The type AbstractY must implement the inherited abstract method I.init(String, int)\n" + 
-		"----------\n");
-}
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11922
- * should report unreachable empty statement
- */
-public void test027() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		for (;false;p());	\n"+
-			"		System.out.println(\"SUCCESS\");	\n"+
-			"	}	\n"+
-			"	static void p(){	\n"+
-			"		System.out.println(\"FAILED\");	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 4)\n" + 
-		"	for (;false;p());	\n" + 
-		"	                ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=12445
- * should report unreachable empty statement
- */
-public void test028() {
-
-	this.runConformTest(
-		new String[] {
-			"p1/X.java",
-			"package p1;	\n" +
-			"interface FooInterface {	\n" +
-			"	public boolean foo(int a);	\n" +
-			"	public boolean bar(int a);	\n" +
-			"}	\n" +
-			"public class X extends Z {	\n" +
-			"	public boolean foo(int a){ return true; }	\n" +
-			"	public boolean bar(int a){ return false; }	\n" +
-			"	public static void main(String[] arguments) {	\n"+
-			"		System.out.println(new X().test(0));	\n"+
-			"	}	\n" +
-			"}\n" +
-			"abstract class Z implements FooInterface {	\n" +
-			"	public boolean foo(int a, int b) {	\n" +
-			"		return true;	\n" +
-			"	}	\n" +
-			"	public String test(int a) {	\n" +
-			"		boolean result = foo(a); \n" +
-			"		if (result)	\n" +
-			"			return \"SUCCESS\";	\n" +
-			"		else	\n" +
-			"			return \"FAILED\";	\n" +
-			"	}	\n" +
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580
- * verify error on qualified name ref in 1.4
- */
-public void test029() {
-
-	this.runConformTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X {	\n" +
-			"	public static void main(String[] args) {	\n" +
-			"		new X();	\n" +
-			"		System.out.println(\"SUCCESS\");	\n" +
-			"	}  	\n" +
-			"	Woof woof_1;	\n" +
-			"	public class Honk {	\n" +
-			"		Integer honks;	\n" +
-			"	}	\n" +
-			"	public class Meow {	\n" +
-			"		Honk honk_1;	\n" +
-			"	}	\n" +
-			"	public class Woof {	\n" +
-			"		Meow meow_1;	\n" +
-			"	}	\n" +
-			"	public void setHonks(int num) {	\n" +
-			"		// This is the line that causes the VerifyError	\n" +
-			"		woof_1.meow_1.honk_1.honks = new Integer(num);	\n" +
-			"		// Here is equivalent code that does not cause the error.	\n" +
-			"		//  Honk h = woof_1.moo_1.meow_1.honk_1;	\n" +
-			"		//  h.honks = new Integer(num);	\n" +
-			"	}	\n" +
-			"}	\n"
-		},
-		"SUCCESS");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580
- * 1.4 signals invocations of non-visible abstract protected method implementations.
- */
-public void test030() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X {	\n" +
-			"	public static void main(String[] args){	\n" +
-			"		new q.X2().foo(\"String\");	\n" +
-			"		new q.X2().bar(\"String\");	\n" +
-			"		new q.X2().barbar(\"String\");	\n" +
-			"		new q.X2().baz(\"String\");	\n" +
-			"	}	\n" +
-			"}	\n",
-			
-			"p/X1.java",
-			"package p;	\n" +
-			"public abstract class X1 {	\n" +
-			"	protected void foo(Object o){	System.out.println(\"X1.foo(Object)\"); }	\n" +
-			"	protected void bar(Object o){	System.out.println(\"X1.bar(Object)\"); }	\n" +
-			"	void barbar(Object o){	System.out.println(\"X1.barbar(Object)\"); }	\n" +
-			"	protected void baz(Object o) { System.out.println(\"X1.baz(Object)\"); }	\n" +
-			"}	\n",
-			
-			"q/X2.java",
-			"package q;	\n" +
-			"public class X2 extends p.X1 {	\n" +
-			"	protected void foo(int i) { System.out.println(\"X2.foo(int)\"); }	\n" +
-			"	protected void bar(Object o) { System.out.println(\"X2.bar(Object)\"); }	\n" +
-			"	void barbar(Object o){	System.out.println(\"X2.barbar(Object)\"); }	\n" +
-			"	protected void baz(String s) {	System.out.println(\"X2.baz(String)\"); }	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 5)\n" + 
-		"	new q.X2().bar(\"String\");	\n" + 
-		"	           ^^^\n" + 
-		"The method bar(Object) from the type X2 is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 6)\n" + 
-		"	new q.X2().barbar(\"String\");	\n" + 
-		"	           ^^^^^^\n" + 
-		"The method barbar(Object) from the type X2 is not visible\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. WARNING in q\\X2.java (at line 4)\n" + 
-		"	protected void bar(Object o) { System.out.println(\"X2.bar(Object)\"); }	\n" + 
-		"	               ^^^^^^^^^^^^^\n" + 
-		"The method bar(Object) of type X2 should be tagged with @Override since it actually overrides a superclass method\n" + 
-		"----------\n" + 
-		"2. WARNING in q\\X2.java (at line 5)\n" + 
-		"	void barbar(Object o){	System.out.println(\"X2.barbar(Object)\"); }	\n" + 
-		"	     ^^^^^^^^^^^^^^^^\n" + 
-		"The method X2.barbar(Object) does not override the inherited method from X1 since it is private to a different package\n" + 
-		"----------\n");
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580
- * 1.4 signals invocations of non-visible abstract protected method implementations.
- */
-public void test031() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X extends q.X2 {	\n" +
-			"	public static void main(String[] args){	\n" +
-			"			new X().doSomething();	\n" +
-			"	}	\n" +
-			"	void doSomething(){	\n" +
-			"		foo(\"String\");	\n" +
-			"		bar(\"String\");	\n" +
-			"		barbar(\"String\");	\n" +
-			"		baz(\"String\");	\n" +
-			"	}	\n" +
-			"}	\n",
-			
-			"p/X1.java",
-			"package p;	\n" +
-			"public abstract class X1 {	\n" +
-			"	protected void foo(Object o){	System.out.println(\"X1.foo(Object)\"); }	\n" +
-			"	protected void bar(Object o){	System.out.println(\"X1.bar(Object)\"); }	\n" +
-			"	void barbar(Object o){	System.out.println(\"X1.barbar(Object)\"); }	\n" +
-			"	protected void baz(Object o) { System.out.println(\"X1.baz(Object)\"); }	\n" +
-			"}	\n",
-			
-			"q/X2.java",
-			"package q;	\n" +
-			"public class X2 extends p.X1 {	\n" +
-			"	protected void foo(int i) { System.out.println(\"X2.foo(int)\"); }	\n" +
-			"	protected void bar(Object o) { System.out.println(\"X2.bar(Object)\"); }	\n" +
-			"	void barbar(Object o){	System.out.println(\"X2.barbar(Object)\"); }	\n" +
-			"	protected void baz(String s) {	System.out.println(\"X2.baz(String)\"); }	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 9)\n" + 
-		"	barbar(\"String\");	\n" + 
-		"	^^^^^^\n" + 
-		"The method barbar(Object) from the type X2 is not visible\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. WARNING in q\\X2.java (at line 4)\n" + 
-		"	protected void bar(Object o) { System.out.println(\"X2.bar(Object)\"); }	\n" + 
-		"	               ^^^^^^^^^^^^^\n" + 
-		"The method bar(Object) of type X2 should be tagged with @Override since it actually overrides a superclass method\n" + 
-		"----------\n" + 
-		"2. WARNING in q\\X2.java (at line 5)\n" + 
-		"	void barbar(Object o){	System.out.println(\"X2.barbar(Object)\"); }	\n" + 
-		"	     ^^^^^^^^^^^^^^^^\n" + 
-		"The method X2.barbar(Object) does not override the inherited method from X1 since it is private to a different package\n" + 
-		"----------\n"
-);
-}
-			
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21580
- * 1.4 signals invocations of non-visible abstract protected field implementations.
- */
-public void test032() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X {	\n" +
-			"	public static void main(String[] args){	\n" +
-			"		System.out.println(new q.X2().foo);	\n" +
-			"		System.out.println(new q.X2().bar);	\n" +
-			"	}	\n" +
-			"}	\n",
-			
-			"p/X1.java",
-			"package p;	\n" +
-			"public abstract class X1 {	\n" +
-			"	protected String foo = \"X1.foo\"; 	\n" +
-			"	String bar = \"X1.bar\";	\n" +
-			"}	\n",
-			
-			"q/X2.java",
-			"package q;	\n" +
-			"public class X2 extends p.X1 {	\n" +
-			"	protected String foo = \"X2.foo\";	\n" +
-			"	String bar = \"X2.bar\";	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 4)\n" + 
-		"	System.out.println(new q.X2().foo);	\n" + 
-		"	                              ^^^\n" + 
-		"The field X2.foo is not visible\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 5)\n" + 
-		"	System.out.println(new q.X2().bar);	\n" + 
-		"	                              ^^^\n" + 
-		"The field X2.bar is not visible\n" + 
-		"----------\n");
-}
-
-/*
- * Initialization of synthetic fields prior to super constructor call
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23075
- */
-public void test033() {
-
-	this.runConformTest(
-		new String[] {
-			"A.java",
-			"public class A {	\n"+
-			"  public int m;	\n"+
-			"  public void pp() {	\n"+
-			"     C c = new C(4);	\n"+
-			"     System.out.println(c.get());	\n"+
-			"  }	\n"+
-			"  public static void main(String[] args) {	\n"+
-			"     A a = new A();	\n"+
-			"	  try {	\n"+
-			"       a.pp(); 	\n"+
-			"		System.out.println(\"SyntheticInit BEFORE SuperConstructorCall\");	\n"+
-			"	  } catch(NullPointerException e) {	\n"+
-			"		System.out.println(\"SyntheticInit AFTER SuperConstructorCall\"); // should no longer occur with target 1.4 \n"+
-			"	  }	\n"+
-			"  }	\n"+
-			"  class C extends B {	\n"+
-			"    public C(int x1) {	\n"+
-			"      super(x1);    	\n"+
-			"    }	\n"+
-			"    protected void init(int x1) {	\n"+
-			"       x = m * x1; // <- NULL POINTER EXCEPTION because of m	\n"+
-			"    }  	\n"+
-			"  }	\n"+
-			"}	\n"+
-			"class B {	\n"+
-			"  int x;	\n"+
-			"  public B(int x1) {	\n"+
-			"    init(x1);	\n"+
-			"  }	\n"+
-			"  protected void init(int x1) {	\n"+
-			"    x  = x1;	\n"+
-			"  }	\n"+
-			"  public int get() {	\n"+
-			"    return x;	\n"+
-			"  }	\n"+
-			"}	\n"
-		},
-		"0\n" + 
-		"SyntheticInit BEFORE SuperConstructorCall");
-}
-/*
- * Initialization of synthetic fields prior to super constructor call - NPE check
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25174
- */
-public void test034() {
-
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new X2();	\n"+
-			"	}	\n"+
-			"	class X1 {	\n"+
-			"		X1(){	\n"+
-			"			this.baz();	\n"+
-			"		}	\n"+
-			"		void baz() {	\n"+
-			"			System.out.println(\"-X1.baz()\");	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"	class X2 extends X1 {	\n"+
-			"		void baz() {	\n"+
-			"			System.out.print(X.this==null ? \"X.this == null\" : \"X.this != null\");	\n"+
-			"			X1 x1 = X.this.new X1(){	\n"+
-			"				void baz(){	\n"+
-			"					System.out.println(\"-X$1.baz()\");	\n"+
-			"				}	\n"+
-			"			};	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}\n",
-		},
-		"X.this != null-X$1.baz()");
-}
-
-public void test035() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	class Y { Y(int i){} }	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		int i = 1;	\n" +
-			"		try {	\n" +
-			"			X x =null;	\n" +
-			"			x.new Y(++i);	\n" + // i won't get incremented before NPE
-			"			System.out.println(\"FAILED\");	\n" +
-			"		} catch(NullPointerException e){	\n" +
-			"			System.out.println(\"SUCCESS:\"+i);	\n" +
-			"		}	\n" +
-			"	}	\n"+
-			"}	\n",
-		},
-		"SUCCESS:1"
-	);
-}
-
-public void test036() {
-	this.runConformTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	class Y {}	\n"+
-			"	static class Z extends Y {	\n"+
-			"		Z (X x){	\n"+
-			"			x.super();	\n" +
-			"		}		\n"+
-			"	}	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		try {	\n" +
-			"			new Z(null);	\n" +
-			"			System.out.println(\"FAILED\");	\n" +
-			"		} catch(NullPointerException e){	\n" +
-			"			System.out.println(\"SUCCESS\");	\n" +
-			"		}	\n" +
-			"	}	\n"+
-			"}	\n",
-		},
-		"SUCCESS"
-	);
-}
-
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=24744
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23096
- * 
- * NOTE: since JLS got revised to allow unterminated line comments (32476)
- */
-public void test037() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_TaskTags, "TODO:");
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n"+
-			"public class X {\n"+
-			"}\n"+
-			"// TODO: something"
-		},
-		"----------\n" + 
-		"1. WARNING in p\\X.java (at line 4)\n" + 
-		"	// TODO: something\n" + 
-		"	   ^^^^^^^^^^^^^^^\n" + 
-		"TODO: something\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-
-/*
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=24833
- * http://dev.eclipse.org/bugs/show_bug.cgi?id=23096
- * 
- * NOTE: since JLS got revised to allow unterminated line comments (32476)
- */
-public void test038() {
-	Map customOptions = getCompilerOptions();
-	customOptions.put(CompilerOptions.OPTION_TaskTags, "TODO:");
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"// TODO: something"
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 1)\n" + 
-		"	// TODO: something\n" + 
-		"	   ^^^^^^^^^^^^^^^\n" + 
-		"TODO: something\n" + 
-		"----------\n",
-		null,
-		true,
-		customOptions);
-}
-
-/*
- * unreachable empty statement/block are diagnosed in 1.3
- */
-public void test039() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"	public static void main(String[] args){	\n"+
-			"		for (;null != null;);	\n"+
-			"		for (;null != null;){}	\n"+
-			"		for (;false;);	\n"+
-			"		for (;false;){}	\n"+
-			"		while (false);	\n"+
-			"		while (false){}	\n"+
-			"		if (false) {} else {}	\n"+
-			"		if (false) ; else ;			\n"+
-			"		System.out.println(\"FAILED\");	\n" +
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 5)\n" + 
-		"	for (;false;);	\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	for (;false;){}	\n" + 
-		"	             ^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 7)\n" + 
-		"	while (false);	\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n" + 
-		"4. ERROR in X.java (at line 8)\n" + 
-		"	while (false){}	\n" + 
-		"	             ^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-// jls6.5.5.1 - simple type names favor member type over toplevel one.
-//http://bugs.eclipse.org/bugs/show_bug.cgi?id=30705
-public void test040() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	interface Homonym {}	\n"+ // takes precedence over others.
-			"	void foo() {	\n"+
-			"		class Homonym extends X {	\n"+
-			"			{	\n"+
-			"				class Y extends Homonym {};	\n"+ // X$Homonym
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"class Homonym extends X {	\n"+
-			"	{	\n"+
-			"		class Y extends Homonym {};	\n"+ // X$Homonym
-			"	}	\n"+
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 4)\n" + 
-		"	class Homonym extends X {	\n" + 
-		"	      ^^^^^^^\n" + 
-		"The type Homonym is hiding the type X.Homonym\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 6)\n" + 
-		"	class Y extends Homonym {};	\n" + 
-		"	                ^^^^^^^\n" + 
-		"The type X.Homonym cannot be the superclass of Y; a superclass must be a class\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 13)\n" + 
-		"	class Y extends Homonym {};	\n" + 
-		"	                ^^^^^^^\n" + 
-		"The type X.Homonym cannot be the superclass of Y; a superclass must be a class\n" + 
-		"----------\n");
-}
-/*
- * 30856 - 1.4 compliant mode should consider abstract method matches
- */
-public void test041() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java", //================================
-			"package p;	\n" +
-			"public class X {	\n" +
-			"	void foo(int i, float f){}	\n" +
-			"	public static void main(String[] args) {	\n" +
-			"		q.Y y = new q.Y.Z();	\n" +
-			"		y.bar();	\n" +
-			"	}	\n" +
-			"}	\n",
-			"q/Y.java", //================================
-			"package q;	\n" +
-			"public abstract class Y extends p.X implements I {	\n" +
-			"	public void bar(){   foo(1, 2); }	\n" +
-			"	public static class Z extends Y {	\n" +
-			"		public void foo(float f, int i) {	\n" +
-			"			System.out.println(\"SUCCESS\");	\n" +
-			"		}	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"interface I {	\n" +
-			"	void foo(float f, int i);	\n" +
-			"}	\n",
-		},
-		"SUCCESS");
-}
-/*
- * variation - 30856 - 1.4 compliant mode should consider abstract method matches
- */
-public void test042() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java", //================================
-			"package p;	\n" +
-			"public class X extends X0 {	\n" +
-			"	void foo(int i, float f){}	\n" +
-			"	public static void main(String[] args) {	\n" +
-			"		q.Y y = new q.Y.Z();	\n" +
-			"		y.bar();	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"class X0 {	\n" +
-			"	void foo(int i, double d){}	\n" + // extra match
-			"}	\n",
-			"q/Y.java", //================================
-			"package q;	\n" +
-			"public abstract class Y extends p.X implements I {	\n" +
-			"	public void bar(){   foo(1, 2); }	\n" +
-			"	public static class Z extends Y {	\n" +
-			"		public void foo(float f, int i) {	\n" +
-			"			System.out.println(\"SUCCESS\");	\n" +
-			"		}	\n" +
-			"	}	\n" +
-			"}	\n" +
-			"interface I {	\n" +
-			"	void foo(float f, int i);	\n" +
-			"}	\n",
-		},
-		"SUCCESS");
-}
-
-// binary compatibility
-public void _test043() {
-	this.runConformTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1;	\n" +
-			"public class Y extends A implements I { \n" +
-			"	public static void main(String[] args) {	\n" +
-			"		Y.printValues();	\n" +
-			"	}	\n" +
-			"	public static void printValues() {	\n" +
-			"		System.out.println(\"i=\"+i+\",j=\"+j+\",Y.i=\"+Y.i+\",Y.j=\"+Y.j);	\n" +
-			"	}	\n" +
-			"}	\n",
-			"p1/A.java",
-			"package p1;	\n" +
-			"public class A {	\n" +
-			"	static int i = 1;	\n" +
-			"}	\n",
-			"p1/I.java",
-			"package p1;	\n" +
-			"interface I {	\n" +
-			"	int j = \"aa\".length();	\n" +
-			"}	\n",
-		},
-		"i=1,j=2,Y.i=1,Y.j=2");
-
-	this.runConformTest(
-		new String[] {
-			"p1/A.java",
-			"package p1;	\n" +
-			"public class A {	\n" +
-			"	static int j = 3;	\n" +
-			"	public static void main(String[] args) {	\n" +
-			"		Y.printValues();	\n" +
-			"	}	\n" +
-			"}	\n",
-			"p1/I.java",
-			"package p1;	\n" +
-			"interface I {	\n" +
-			"	int j = \"aaaa\".length();	\n" +
-			"}	\n",
-		},
-		"i=4,j=3,Y.i=4,Y.j=3",
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args		
-}
-///* 
-// * array.clone() should use array type in methodRef
-// * http://bugs.eclipse.org/bugs/show_bug.cgi?id=36307
-// */
-//public void test044() {
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" +
-//			"    public static void main(String[] args) {\n" +
-//			"		args.clone();	\n"+
-//			"		System.out.println(\"SUCCESS\");\n" +
-//			"    }\n" +
-//			"}\n",
-//		},
-//		"SUCCESS");
-//		
-//	ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//	String actualOutput = null;
-//	try {
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(new File(OUTPUT_DIR + File.separator  +"X.class"));
-//		actualOutput =
-//			disassembler.disassemble(
-//				classFileBytes,
-//				"\n",
-//				ClassFileBytesDisassembler.DETAILED); 
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue("ClassFormatException", false);
-//	} catch (IOException e) {
-//		assertTrue("IOException", false);
-//	}
-//	
-//	String expectedOutput = 
-//		"     1  invokevirtual java.lang.String[].clone() : java.lang.Object [16]\n";
-//		
-//	int index = actualOutput.indexOf(expectedOutput);
-//	if (index == -1 || expectedOutput.length() == 0) {
-//		System.out.println(Util.displayString(actualOutput, 2));
-//	}
-//	if (index == -1) {
-//		assertEquals("Wrong contents", expectedOutput, actualOutput);
-//	}
-//}
-// 39172
-public void test045() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;	\n" +
-			"public class X { \n" +
-			"	public static void main(String[] args) {	\n" +
-			"		System.out.println(\"FAILED\");	\n" +
-			"		return;;	\n" + // unreachable empty statement - must complain in 1.4 mode
-			"	}	\n" +
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 5)\n" + 
-		"	return;;	\n" + 
-		"	       ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n"
-	);
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39467
- * should diagnose missing abstract method implementation
- */
-public void test046() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X extends Y {\n" + 
-			"}\n" + 
-			"abstract class Y extends Z {\n" + 
-			"  public abstract void foo();\n" + 
-			"}\n" + 
-			"abstract class Z extends T {\n" + 
-			"}\n" + 
-			"class T implements I {\n" + 
-			"  public void foo(){}\n" + 
-			"}\n" + 
-			"interface I {\n" + 
-			"    public void foo ();\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 1)\n" + 
-		"	public class X extends Y {\n" + 
-		"	             ^\n" + 
-		"The type X must implement the inherited abstract method Y.foo()\n" + 
-		"----------\n" + 
-		"2. WARNING in X.java (at line 4)\n" + 
-		"	public abstract void foo();\n" + 
-		"	                     ^^^^^\n" + 
-		"The method foo() of type Y should be tagged with @Override since it actually overrides a superclass method\n" + 
-		"----------\n"
-	);
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40442
- * Abstract class fails to invoke interface-defined method in 1.4 compliance mode.
- */
-public void test047() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X extends AbstractDoubleAlgorithm {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		((ObjectAlgorithm)(new X())).operate(new Double(0));\n" + 
-			"	}\n" + 
-			"    public void operate(Double pDouble)\n" + 
-			"    {\n" + 
-			"        System.out.println(\"SUCCESS\");\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"abstract class AbstractDoubleAlgorithm implements DoubleAlgorithm {\n" + 
-			"    public void operate(Object pObject)\n" + 
-			"    {\n" + 
-			"        operate((Double)pObject);\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"interface DoubleAlgorithm extends ObjectAlgorithm {\n" + 
-			"    void operate(Double pDouble);\n" + 
-			"}\n" + 
-			"interface ObjectAlgorithm {\n" + 
-			"    void operate(Object pObject);\n" + 
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40442
- * Abstract class fails to invoke interface-defined method in 1.4 compliance mode.
- * variation with 2 found methods
- */
-public void test048() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X extends AbstractDoubleAlgorithm {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		((ObjectAlgorithm)(new X())).operate(new Double(0));\n" + 
-			"	}\n" + 
-			"    public void operate(Double pDouble)\n" + 
-			"    {\n" + 
-			"        System.out.println(\"SUCCESS\");\n" + 
-			"    }\n" + 
-			"}\n" + 
-			"abstract class AbstractDoubleAlgorithm implements DoubleAlgorithm {\n" + 
-			"    public void operate(Object pObject)\n" + 
-			"    {\n" + 
-			"        operate((Double)pObject);\n" + 
-			"    }\n" + 
-			"    public void operate(X x) {}\n" + 
-			"}\n" + 
-			"interface DoubleAlgorithm extends ObjectAlgorithm {\n" + 
-			"    void operate(Double pDouble);\n" + 
-			"}\n" + 
-			"interface ObjectAlgorithm {\n" + 
-			"    void operate(Object pObject);\n" + 
-			"}"
-		},
-		"SUCCESS"
-	);
-}
-/**
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=41278
- */
-public void test049() {
-	this.runNegativeTest(
-		new String[] {
-			"pa/Caller.java",
-			"package pa;\n" + 
-			"import pb.Concrete;\n" + 
-			"public class Caller {\n" + 
-			"\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		Concrete aConcrete = new Concrete(); \n" + 
-			"		aConcrete.callme();\n" + 
-			"	}\n" + 
-			"}\n",
-			"pa/Abstract.java",
-			"package pa;\n" + 
-			"public abstract class Abstract {\n" + 
-			"\n" + 
-			"	protected void callme(){}\n" + 
-			"}\n",
-			"pb/Concrete.java",
-			"package pb;\n" + 
-			"public class Concrete extends pa.Abstract {\n" + 
-			"\n" + 
-			"	protected void callme(){	System.out.println(\"SUCCESS\"); }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in pa\\Caller.java (at line 7)\n" + 
-		"	aConcrete.callme();\n" + 
-		"	          ^^^^^^\n" + 
-		"The method callme() from the type Concrete is not visible\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. WARNING in pb\\Concrete.java (at line 4)\n" + 
-		"	protected void callme(){	System.out.println(\"SUCCESS\"); }\n" + 
-		"	               ^^^^^^^^\n" + 
-		"The method callme() of type Concrete should be tagged with @Override since it actually overrides a superclass method\n" + 
-		"----------\n");
-}
-
-public void test050() {
-	this.runNegativeTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public static void main(String args[]) {\n" + 
-		"     foo();\n" + 
-		"  }\n" + 
-		"  public static void foo() {\n" + 
-		"     int a1 = 1;\n" + 
-		"     int a2 = 1;\n" + 
-		"     a1 = 2;\n" + 
-		"     while (false) {};\n" + 
-		"     a2 = 2;\n" + 
-		"  }\n" + 
-		"}\n",
-	},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 10)\n" + 
-		"	while (false) {};\n" + 
-		"	              ^^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-
-public void test051() {
-	this.runNegativeTest(new String[] {
-		"p/X.java",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"  public static void main(String args[]) {\n" + 
-		"     foo();\n" + 
-		"  }\n" + 
-		"  public static void foo() {\n" + 
-		"     int a1 = 1;\n" + 
-		"     int a2 = 1;\n" + 
-		"     a1 = 2;\n" + 
-		"     while (false);\n" + 
-		"     a2 = 2;\n" + 
-		"  }\n" + 
-		"}\n",
-	},
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 10)\n" + 
-		"	while (false);\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-
-public void test052() {
-	this.runNegativeTest(
-		new String[] {
-			"p/A.java",
-			"package p;\n" + 
-			"public class A {\n" + 
-			"  public static void main(String[] argv) {\n" + 
-			"    foo();\n" + 
-			"  }\n" + 
-			"  private int i;\n" + 
-			"  static class Y extends X {\n" + 
-			"    int x = i;\n" + 
-			"  }\n" + 
-			"  public static void foo() {\n" + 
-			"    return;\n" + 
-			"  }\n" + 
-			"}",
-	
-			"p/X.java",
-			"package p;\n" + 
-			"public class X {\n" + 
-			"  public static void main(String argv[]) {\n" + 
-			"     foo();\n" + 
-			"  }\n" + 
-			"  public static void foo() {\n" + 
-			"     int a1 = 1;\n" + 
-			"     int a2 = 1;\n" + 
-			"     a1 = 2;\n" + 
-			"     while (false);\n" + 
-			"     a2 = 2;\n" + 
-			"  }\n" + 
-			"}"
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\A.java (at line 6)\n" + 
-		"	private int i;\n" + 
-		"	            ^\n" + 
-		"The field A.i is never read locally\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\A.java (at line 8)\n" + 
-		"	int x = i;\n" + 
-		"	        ^\n" + 
-		"Cannot make a static reference to the non-static field i\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. ERROR in p\\X.java (at line 10)\n" + 
-		"	while (false);\n" + 
-		"	             ^\n" + 
-		"Unreachable code\n" + 
-		"----------\n");
-}
-
-public void test053() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"class X {\n" + 
-			"  static class A {\n" + 
-			"    interface I {\n" + 
-			"      int a = 3;\n" + 
-			"    }\n" + 
-			"  } \n" + 
-			"  interface I { \n" + 
-			"    int b = 4;\n" + 
-			"  }\n" + 
-			"  class Y extends A implements I {\n" + 
-			"    Object F() {\n" + 
-			"      return new I() {\n" + 
-			"        int c = a; // WE SHOULD NOT BE ABLE TO SEE BOTH a and b\n" + 
-			"        int d = b; // WE SHOULD NOT BE ABLE TO SEE BOTH a and b\n" + 
-			"      };\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}",
-		}
-	);
-}
-
-public void test054() {
-	this.runConformTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"public class X {\n" + 
-			"  static class A {\n" + 
-			"    interface I {\n" + 
-			"      int a = 3;\n" + 
-			"      void foo();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  interface I {\n" + 
-			"    int a = 4;\n" + 
-			"    void foo();\n" + 
-			"  }\n" + 
-			"  class Y extends A implements I {\n" + 
-			"    public void foo() {\n" + 
-			"      new I() {\n" + 
-			"        public void foo() {\n" + 
-			"          System.out.println(\"X$1::foo-\" + a);\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"      .foo();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"public static void main(String argv[]) {\n" + 
-			"  new X().new Y().foo();\n" + 
-			"}\n" + 
-			"}",
-		}
-	);
-}
-public void test055() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"public class X {\n" + 
-			"  static class A {\n" + 
-			"    interface I2 {\n" + 
-			"      int a = 3;\n" + 
-			"      void foo();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  interface I1 {\n" + 
-			"    int a = 4;\n" + 
-			"    void foo(int a);\n" + 
-			"  }\n" + 
-			"  class Y extends A implements I1 {\n" + 
-			"    public void foo(int a) {\n" + 
-			"      new I2() {\n" + 
-			"        public void foo() {\n" + 
-			"          System.out.println(\"X$1::foo-\" + a);\n" + 
-			"        }\n" + 
-			"      }\n" + 
-			"      .foo();\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"public static void main(String argv[]) {\n" + 
-			"  new X().new Y().foo(8);\n" + 
-			"}\n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\X.java (at line 11)\n" + 
-		"	void foo(int a);\n" + 
-		"	             ^\n" + 
-		"The parameter a is hiding a field from type X.I1\n" + 
-		"----------\n" + 
-		"2. WARNING in p\\X.java (at line 14)\n" + 
-		"	public void foo(int a) {\n" + 
-		"	                    ^\n" + 
-		"The parameter a is hiding a field from type X.I1\n" + 
-		"----------\n"
-	);
-}
-
-public void test056() {
-	this.runConformTest(
-		new String[] {
-			"p/MethodQualification.java",
-			"package p;\n" + 
-			"public class MethodQualification {\n" + 
-			"  void foo() {\n" + 
-			"  System.out.println(\"Inherited foo() for anonymous type\");\n" + 
-			"  class Local {\n" + 
-			"    void foo(){\n" + 
-			"    System.out.println(\"Enclosing foo() for anonymous type\");\n" + 
-			"    new MethodQualification () { {foo();} };\n" + 
-			"    }\n" + 
-			"  };\n" + 
-			"  }  \n" + 
-			"}",
-		}, 
-		""
-	);
-}
-
-public void test057() {
-	this.runConformTest(
-		new String[] {
-			"p/AG.java",
-			"package p;\n" + 
-			"/**\n" + 
-			" * 1F9RITI\n" + 
-			" */\n" + 
-			"public class AG {\n" + 
-			"  public class X {\n" + 
-			"    class B {\n" + 
-			"      int intValueOfB = -9;\n" + 
-			"    }\n" + 
-			"    class SomeInner extends A {\n" + 
-			"      void someMethod() {\n" + 
-			"        int i = new B().intValueOfB; \n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  class A {\n" + 
-			"    class B {\n" + 
-			"      int intValueOfB = -9;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}",
-		}, 
-		""
-	);
-}
-
-public void test058() {
-	this.runConformTest(
-		new String[] {
-			"p/AE.java",
-			"package p;\n" + 
-			"/**\n" + 
-			" * 1F9RITI\n" + 
-			" */\n" + 
-			"public class AE {\n" + 
-			"  public class X {\n" + 
-			"    int intValue = 153;\n" + 
-			"    class SomeInner extends A {\n" + 
-			"      void someMethod() {\n" + 
-			"        int i = intValue; \n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  class A {\n" + 
-			"    int intValue = 153;\n" + 
-			"  }\n" + 
-			"}",
-		}, 
-		""
-	);
-}
-
-public void test059() {
-	this.runNegativeTest(
-		new String[] {
-			"p/FieldQualification.java",
-			"package p;\n" + 
-			"public class FieldQualification {\n" + 
-			"  String field = \"Inherited field for anonymous type\";\n" + 
-			"void foo() {\n" + 
-			"  class Local {\n" + 
-			"    String field = \"Enclosing field for anonymous type\";\n" + 
-			"    void foo() {\n" + 
-			"      System.out.println(\"Enclosing foo() for anonymous type\");\n" + 
-			"      new FieldQualification() {\n" + 
-			"        {\n" + 
-			"          System.out.println(field);\n" + 
-			"        }\n" + 
-			"      };\n" + 
-			"    }\n" + 
-			"  };\n" + 
-			"}\n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. WARNING in p\\FieldQualification.java (at line 5)\n" +
-		"	class Local {\n" +
-		"	      ^^^^^\n" +
-		"The type Local is never used locally\n" +
-		"----------\n" +
-		"2. WARNING in p\\FieldQualification.java (at line 6)\n" + 
-		"	String field = \"Enclosing field for anonymous type\";\n" + 
-		"	       ^^^^^\n" + 
-		"The field Local.field is hiding a field from type FieldQualification\n" + 
-		"----------\n" + 
-		"3. WARNING in p\\FieldQualification.java (at line 6)\n" + 
-		"	String field = \"Enclosing field for anonymous type\";\n" + 
-		"	       ^^^^^\n" + 
-		"The field Local.field is never read locally\n" + 
-		"----------\n" + 
-		"4. WARNING in p\\FieldQualification.java (at line 7)\n" + 
-		"	void foo() {\n" + 
-		"	     ^^^^^\n" + 
-		"The method foo() from the type Local is never used locally\n" + 
-		"----------\n");
-}
-
-public void test060() {
-	this.runConformTest(
-		new String[] {
-			"p/AF.java",
-			"package p;\n" + 
-			"/**\n" + 
-			" * 1F9RITI\n" + 
-			" */\n" + 
-			"public class AF {\n" + 
-			"  public class X {\n" + 
-			"    int intMethod() {\n" + 
-			"      return 3333;\n" + 
-			"    }\n" + 
-			"    class SomeInner extends A {\n" + 
-			"      void someMethod() {\n" + 
-			"        int i = intMethod(); \n" + 
-			"      }\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"  class A {\n" + 
-			"    int intMethod() {\n" + 
-			"      return 3333;\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}",
-		}, 
-		""
-	);
-}
-
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=32342
- */
-public void test061() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java", //======================
-			"package p;	\n" +
-			"public class X extends q.Y {	\n" +
-			"	X someField;	\n" + // no ambiguity since inherited Y.X isn't visible
-			"}	\n" +
-			"class Z extends q.Y {	\n" +
-			"	Z someField;	\n" + // ambiguous
-			"}	\n",
-			"q/Y.java", //======================
-			"package q;	\n" +
-			"public class Y {	\n" +
-			"	private static class X {}	\n" +
-			"	public static class Z {}	\n" +
-			"}	\n"
-		},
-		"----------\n" + 
-		"1. WARNING in q\\Y.java (at line 3)\n" + 
-		"	private static class X {}	\n" + 
-		"	                     ^\n" + 
-		"The type Y.X is never used locally\n" + 
-		"----------\n");
-}
-/*
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=11435
- * variant - must still complain when targeting super abstract method
- */
-public void test062() {
-
-	this.runNegativeTest(
-		new String[] {
-			"p1/Y.java",
-			"package p1;	\n"+
-			"public class Y extends AbstractT {	\n"+
-			"	public void init(){	\n"+
-			"		super.init();	\n"+
-			"	}	\n"+
-			"}	\n"+
-			"abstract class AbstractT implements J {	\n"+
-			"}	\n"+
-			"interface J {	\n"+
-			"	void init();	\n"+
-			"}	\n"	
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\Y.java (at line 4)\n" + 
-		"	super.init();	\n" + 
-		"	^^^^^^^^^^^^\n" + 
-		"Cannot directly invoke the abstract method init() for the type J\n" + 
-		"----------\n"); // expected log
-}
-
-public void test063() {
-	this.runNegativeTest(
-		new String[] {
-			/* p1/X.java */
-			"p1/X.java",
-			"package p1;	\n"+
-			"public class X {	\n"+
-			"	class Y extends X {}	\n"+
-			"	class Z extends Y {	\n"+
-			"		Z(){	\n"+
-			"			System.out.println(\"SUCCESS\");	\n"+
-			"		}	\n" +
-			"	}	\n" +
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new Z();	\n"+
-			"	}	\n"+
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. ERROR in p1\\X.java (at line 5)\n" + 
-		"	Z(){	\n" + 
-		"	^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n"
-	);
-}
-
-/**
- * Refuse selection of own enclosing instance arg for super constructor call in 1.3 compliant mode
- */
-public void test064() {
-	this.runNegativeTest(
-		new String[] {
-			"Foo.java",
-			"public class Foo {\n" +
-			"	public static void main(String[] args) {\n"+
-			"		System.out.println(\"SUCCESS\");\n"+
-			"	}\n"+
-			"	public class Bar extends Foo {\n" +
-			"		public Bar() {\n" +
-			"		}\n" +
-			"	}\n" +
-			"	public class Baz extends Bar {\n" +
-			"		public Baz() {\n" +
-			"		}\n" +
-			"	}\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in Foo.java (at line 10)\n" + 
-		"	public Baz() {\n" + 
-		"	       ^^^^^\n" + 
-		"No enclosing instance of type Foo is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-public void test065() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n"+
-			"	public static void main(String[] arguments) {	\n"+
-			"		new X().new Y().new Z().bar();	\n"+
-			"	}	\n"+
-			"	String foo() { return \"X-foo\"; }	\n"+
-			"	class Y extends X {	\n"+
-			"		String foo() { return \"Y-foo\"; }	\n"+
-			"		class Z extends Y {	\n"+
-			"			Z(){	\n"+
-			"				//X.this.super();	\n"+
-			"			}	\n"+
-			"			String foo() { return \"Z-foo\"; }	\n"+
-			"			void bar () {	\n"+
-			"				System.out.println(X.this.foo());	\n"+
-			"			}	\n"+
-			"		}	\n"+
-			"	}	\n"+
-			"}	\n"
-		},
-			"----------\n" + 
-			"1. WARNING in X.java (at line 7)\n" + 
-			"	String foo() { return \"Y-foo\"; }	\n" + 
-			"	       ^^^^^\n" + 
-			"The method foo() of type X.Y should be tagged with @Override since it actually overrides a superclass method\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 9)\n" + 
-			"	Z(){	\n" + 
-			"	^^^\n" + 
-			"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-			"----------\n" + 
-			"3. WARNING in X.java (at line 12)\n" + 
-			"	String foo() { return \"Z-foo\"; }	\n" + 
-			"	       ^^^^^\n" + 
-			"The method foo() of type X.Y.Z should be tagged with @Override since it actually overrides a superclass method\n" + 
-			"----------\n");
-}
-
-/*
- * Check that anonymous type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test066() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"  X(Object o) {}\n" + 
-			"  class M extends X {\n" + 
-			"    M(){\n" + 
-			"      super(null);\n" + 
-			"    }\n" + 
-			"    M(Object o) {\n" + 
-			"      super(new M(){});\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	super(new M(){});\n" + 
-		"	          ^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-/*
- * Check that indirect member type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test067() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	X(Object o) {\n" + 
-			"	}\n" + 
-			"	class N extends X {\n" + 
-			"		N(Object o) {\n" + 
-			"			super(o);\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	class M extends N {\n" + 
-			"		M() {\n" + 
-			"			super(null); //1\n" + 
-			"		}\n" + 
-			"		M(Object o) {\n" + 
-			"			super(new M());//2\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 11)\n" + 
-		"	super(null); //1\n" + 
-		"	^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 14)\n" + 
-		"	super(new M());//2\n" + 
-		"	^^^^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 14)\n" + 
-		"	super(new M());//2\n" + 
-		"	      ^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-/*
- * Check that indirect member type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test068() { 
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	class MX1 extends X {\n" + 
-			"		MX1() {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	class MX2 extends MX1 {\n" + 
-			"		MX2() {\n" + 
-			"			super();	// ko\n" + 
-			"		}\n" + 
-			"		MX2(X x) {\n" + 
-			"			this();		// ok\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	super();	// ko\n" + 
-		"	^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-/*
- * Check that indirect member type allocation is denied access to compatible enclosing instance available as constructor argument
- */
-public void test069() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	class MX3 extends X {\n" + 
-			"		MX3(X x) {\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	class MX4 extends MX3 {\n" + 
-			"		MX4() {\n" + 
-			"			super(new MX4());	// ko\n" + 
-			"		}\n" + 
-			"		MX4(X x) {\n" + 
-			"			this();		// ok\n" + 
-			"		}\n" + 
-			"		MX4(int i) {\n" + 
-			"			this(new MX4());		// ko\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 8)\n" + 
-		"	super(new MX4());	// ko\n" + 
-		"	^^^^^^^^^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 8)\n" + 
-		"	super(new MX4());	// ko\n" + 
-		"	      ^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 14)\n" + 
-		"	this(new MX4());		// ko\n" + 
-		"	     ^^^^^^^^^\n" + 
-		"No enclosing instance of type X is available due to some intermediate constructor invocation\n" + 
-		"----------\n");
-}
-
-// binary compatibility
-public void test070() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X extends Middle {\n" + 
-			"	public static void main(String argv[]) {\n" + 
-			"		System.out.println(new X().field);\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class Middle extends Top {\n" + 
-			"}\n" + 
-			"class Top {\n" + 
-			"	String field = \"Top.field\";\n" + 
-			"}\n"		
-		},
-		"Top.field");
-
-	this.runConformTest(
-		new String[] {
-			"Middle.java",
-			"public class Middle extends Top {\n" + 
-			"	public static void main(String[] arguments) { \n"+
-			"		X.main(arguments);	\n" +
-			"	}	\n" +
-			"	String field = \"Middle.field\";\n" + 
-			"}\n"
-		},
-		"Middle.field",
-		null, // use default class-path
-		false, // do not flush previous output dir content
-		null); // no special vm args		
-}
-
-/*
- * 43429 - AbstractMethodError calling clone() at runtime when using Eclipse compiler
- */
-public void test071() {
-	this.runConformTest(
-		new String[] {
-			"X.java", //================================
-			"public class X {\n" + 
-			"	public interface Copyable extends Cloneable {\n" + 
-			"		public Object clone() throws CloneNotSupportedException;\n" + 
-			"	}\n" + 
-			"	public interface TestIf extends Copyable {\n" + 
-			"	}\n" + 
-			"	public static class ClassA implements Copyable {\n" + 
-			"		public Object clone() throws CloneNotSupportedException {\n" + 
-			"			return super.clone();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static class ClassB implements TestIf {\n" + 
-			"		public Object clone() throws CloneNotSupportedException {\n" + 
-			"			return super.clone();\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) throws Exception {\n" + 
-			"		Copyable o1 = new ClassA();\n" + 
-			"		ClassB o2 = new ClassB();\n" + 
-			"		TestIf o3 = o2;\n" + 
-			"		Object clonedObject;\n" + 
-			"		clonedObject = o1.clone();\n" + 
-			"		clonedObject = o2.clone();\n" + 
-			"		// The following line fails at runtime with AbstractMethodError when\n" + 
-			"		// compiled with Eclipse\n" + 
-			"		clonedObject = o3.clone();\n" + 
-			"		System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"}",
-		},
-		"SUCCESS");
-}
-public void test072() {
-	
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        try {\n" + 
-			"            f();\n" + 
-			"        } catch(NullPointerException e) {\n" + 
-			"            System.out.println(\"SUCCESS\");\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    static void f() {\n" + 
-			"        Object x = new Object() {\n" + 
-			"            {\n" + 
-			"                    if (true) throw null;\n" + 
-			"            }\n" + 
-			"        };\n" + 
-			"    }\n" + 
-			"}",
-		},
-	"SUCCESS");
-}
-// 52221
-public void test073() {
-	
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"class X {\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        \n" + 
-			"        switch(args.length) {\n" + 
-			"            \n" + 
-			"            case 1:\n" + 
-			"                int i = 0;\n" + 
-			"                class Local {\n" + 
-			"	            }\n" + 
-			"                break;\n" + 
-			"                \n" + 
-			"			case 0 :\n" + 
-			"			    System.out.println(i); // local var can be referred to, only an initialization pb\n" + 
-			"			    System.out.println(new Local());\n" + 
-			"        		break;\n" + 
-			"\n" + 
-			"			case 2 :\n" + 
-			"                class Local { // not a duplicate\n" + 
-			"	            }\n" + 
-			"        		break;\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}\n",
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 14)\n" + 
-		"	System.out.println(new Local());\n" + 
-		"	                       ^^^^^\n" + 
-		"Local cannot be resolved to a type\n" + 
-		"----------\n");
-}
-
-// checking for captured outer local initialization status
-// NOTE: only complain against non-inlinable outer locals
-// http://bugs.eclipse.org/bugs/show_bug.cgi?id=26134
-public void test074() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"    public static void main(String[] args) {	\n" +
-			"    	String nonInlinedString = \"[Local]\";	\n" +
-			"    	int i = 2;	\n" +
-			"		switch(i){	\n" +
-			"			case 1:	\n" +
-			"				final String displayString = nonInlinedString;\n" +
-			"				final String inlinedString = \"a\";	\n" +
-			"				class Local {	\n" +
-			"					public String toString() {	\n" +
-			"						return inlinedString + displayString;	\n" +
-			"					}	\n" +
-			"				}	\n" +
-			"			case 2:	\n" +
-			"				System.out.print(new Local());	\n" +
-			"				System.out.print(\"-\");	\n" +
-			"				System.out.println(new Local(){	\n" +
-			"					public String toString() {	\n" +
-			"						return super.toString()+\": anonymous\";	\n" +
-			"					}	\n" +
-			"				});	\n" +
-			"		}	\n" +
-			"    }	\n" +
-			"}	\n",
-		},
-		"----------\n" + 
-		"1. WARNING in X.java (at line 10)\n" + 
-		"	public String toString() {	\n" + 
-		"	              ^^^^^^^^^^\n" + 
-		"The method toString() of type Local should be tagged with @Override since it actually overrides a superclass method\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 15)\n" + 
-		"	System.out.print(new Local());	\n" + 
-		"	                     ^^^^^\n" + 
-		"Local cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"3. ERROR in X.java (at line 17)\n" + 
-		"	System.out.println(new Local(){	\n" + 
-		"	                       ^^^^^\n" + 
-		"Local cannot be resolved to a type\n" + 
-		"----------\n");
-}
-public void test075() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {	\n" +
-			"    public static void main(String[] args) {\n" + 
-			"        System.out.println(\"SUCCESS\");\n" + 
-			"    }\n" + 
-			"    public void foo(int p1) {} \n" +
-			"    public void foo(short p1) {} \n" +
-			"}	\n",
-			"Y.java",
-			"public class Y extends X {	\n" +
-			"    public void foo(long p1) {} \n" +
-			"    public void testEc() { foo((short)1); } \n" +
-			"}	\n",
-		},
-		"SUCCESS");
-}
-
-/**
- * Test fix for bug 58069.
- * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58069">58069</a>
- */
-public void test076() {
-	docSupport = true;
-	runNegativeTest(
-		new String[] {
-			"IX.java",
-			"interface IX {\n" + 
-				"	public static class Problem extends Exception {}\n" + 
-				"}\n",
-			"X.java",
-			"public abstract class X {\n" + 
-				"	public static class Problem extends Exception {}\n" + 
-				"	public abstract static class InnerClass implements IX {\n" + 
-				"		/**\n" + 
-				"		 * @throws Problem \n" + 
-				"		 */\n" + 
-				"		public void foo() throws IllegalArgumentException {\n" + 
-				"		}\n" + 
-				"	}\n" + 
-				"}\n" + 
-				"\n"
-		},
-		"----------\n" + 
-		"1. WARNING in IX.java (at line 2)\n" + 
-		"	public static class Problem extends Exception {}\n" + 
-		"	                    ^^^^^^^\n" + 
-		"The serializable class Problem does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n" + 
-		"----------\n" + 
-		"1. WARNING in X.java (at line 2)\n" + 
-		"	public static class Problem extends Exception {}\n" + 
-		"	                    ^^^^^^^\n" + 
-		"The serializable class Problem does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n" + 
-		"2. ERROR in X.java (at line 5)\n" + 
-		"	* @throws Problem \n" + 
-		"	          ^^^^^^^\n" + 
-		"Javadoc: Exception Problem is not declared\n" + 
-		"----------\n"	);
-}
-/**
- * Test fix bug 58069 for method.
- * Note that problem is not flagged in doc comments as it is only raised while verifying
- * implicit method and javadoc resolution does not use it.
- */
-public void test077() {
-	docSupport = true;
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1; \n"+
-			"public class Test { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new Test().foo(); \n"+
-			"	} \n"+
-			"	String bar() { \n"+
-			"		return \"FAILED\";	\n" +
-			"	} \n"+
-			"	void foo(){ \n"+
-			"		/** @see #bar() */\n" +
-			"		class Y extends Secondary { \n"+
-			"			/** @see #bar() */\n" +
-			"			String z = bar();	\n" +
-			"		}; \n"+
-			"		System.out.println(new Y().z);	\n" +
-			"	} \n"+
-			"} \n" +
-			"class Secondary { \n" +
-			"	String bar(){ return \"FAILED\"; } \n" +
-			"} \n"
-		}
-	);
-}
-/**
- * Test fix bug 58069 for field.
- * Note that problem is not flagged in doc comments as it is only raised while verifying
- * Name or Qualified name references and javadoc reference is a field reference.
- */
-public void test078() {
-	docSupport = true;
-	this.runConformTest(
-		new String[] {
-			"p1/Test.java",
-			"package p1; \n"+
-			"public class Test { \n"+
-			"	public static void main(String[] arguments) { \n"+
-			"		new Test().foo(); \n"+
-			"	} \n"+
-			"	String bar = \"FAILED\";"+
-			"	void foo(){ \n"+
-			"		/** @see #bar */\n" +
-			"		class Y extends Secondary { \n"+
-			"			/** @see #bar */\n" +
-			"			String z = bar; \n"+
-			"		}; \n"+
-			"		System.out.println(new Y().z);	\n" +
-			"	} \n"+
-			"} \n" +
-			"class Secondary { \n" +
-			"	String bar = \"FAILED\"; \n" +
-			"} \n"
-		}
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47227
- */
-public void test079() {
-	this.runNegativeTest(
-		new String[] {
-			"Hello.java",
-			"void ___eval() {\n" +
-			"	new Runnable() {\n" +
-			"		int ___run() throws Throwable {\n" +
-			"			return blah;\n" +
-			"		}\n" +
-			"		private String blarg;\n" +
-			"		public void run() {\n" +
-			"		}\n" +
-			"	};\n" +
-			"}\n" +
-			"public class Hello {\n" +
-			"	private static int x;\n" +
-			"	private String blah;\n" +
-			"	public static void main(String[] args) {\n" +
-			"	}\n" +
-			"	public void hello() {\n" +
-			"	}\n" +
-			"	public boolean blah() {\n" +
-			"		return false;\n" +
-			"	}\n" +
-			"	public void foo() {\n" +
-			"	}\n" +
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in Hello.java (at line 1)\n" + 
-		"	void ___eval() {\n" + 
-		"	^^^^\n" + 
-		"Syntax error on token \"void\", @ expected\n" + 
-		"----------\n" + 
-		"2. ERROR in Hello.java (at line 1)\n" + 
-		"	void ___eval() {\n" + 
-		"	             ^\n" + 
-		"Syntax error on token \")\", delete this token\n" + 
-		"----------\n" + 
-		"3. ERROR in Hello.java (at line 9)\n" + 
-		"	};\n" + 
-		"	^\n" + 
-		"Syntax error on token \"}\", { expected\n" + 
-		"----------\n" + 
-		"4. ERROR in Hello.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"}\" to complete ClassBody\n" + 
-		"----------\n" + 
-		"5. ERROR in Hello.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"}\" to complete MemberValueArrayInitializer\n" + 
-		"----------\n" + 
-		"6. ERROR in Hello.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \")\" to complete Modifiers\n" + 
-		"----------\n" + 
-		"7. ERROR in Hello.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"enum Identifier\" to complete EnumHeader\n" + 
-		"----------\n" + 
-		"8. ERROR in Hello.java (at line 23)\n" + 
-		"	}\n" + 
-		"	^\n" + 
-		"Syntax error, insert \"EnumBody\" to complete JavaScriptUnit\n" + 
-		"----------\n"
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=67643
- * from 1.5 source level on most specific common super type is allowed
- */
-public void test080() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"import java.util.ArrayList;\n" + 
-			"public class X {\n" + 
-			"    private static class C1 extends ArrayList {\n" + 
-			"    }\n" + 
-			"    private static class C2 extends ArrayList {\n" + 
-			"    }\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"		ArrayList list = args == null ? new C1(): new C2();\n" + 
-			"		System.out.println(\"SUCCESS\");\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"SUCCESS");
-}
-public void test081() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" +
-			"    public X foo() { return this; } \n" +
-			"    public static void main(String[] args) {\n" +
-			"		System.out.println(\"SUCCESS\");\n" +
-			"    }\n" +
-			"}\n" +
-			"class Y extends X {\n" +
-			"    public Y foo() { return this; } \n" +
-			"}\n"
-		},
-		"SUCCESS");
-}
-// covariance
-public void test082() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		X x = new X1();\n" + 
-			"		System.out.println(x.foo());\n" + 
-			"	}\n" + 
-			"	Object foo() {\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"\n" + 
-			"class X1 extends X {\n" + 
-			"	String foo() {\n" + 
-			"		return \"SUCCESS\";\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"SUCCESS");
-}
-
-/**
- * Test fix for bug 71079: [1.5] ClassCastException resolving Javadoc
- * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71079">71079</a>
- */
-public void test083() {
-	docSupport = true;
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public @interface X {\n" + 
-				"    /** Value */\n" + 
-				"    String[] value();\n" + 
-				"}\n"
-		}
-	);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=66533
- */
-public void test084() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo() {\n" + 
-			"		Object enum = null;\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 3)\n" + 
-		"	Object enum = null;\n" + 
-		"	       ^^^^\n" + 
-		"Syntax error on token \"enum\", delete this token\n" + 
-		"----------\n");
-}
-/**
- * Test unused import with static
- */
-public void test085() {
-	this.runNegativeTest(
-		new String[] {
-			"A.java",
-			"import static j.l.S.*;\n" + 
-				"import static j.l.S.in;\n" + 
-				"\n" + 
-				"public class A {\n" + 
-				"\n" + 
-				"}\n",
-			"j/l/S.java",
-			"package j.l;\n" + 
-				"public class S {\n" + 
-				"	public static int in;\n" + 
-				"}\n"
-		},
-		"----------\n" + 
-			"1. WARNING in A.java (at line 1)\n" + 
-			"	import static j.l.S.*;\n" + 
-			"	              ^^^^^\n" + 
-			"The import j.l.S is never used\n" + 
-			"----------\n" + 
-			"2. WARNING in A.java (at line 2)\n" + 
-			"	import static j.l.S.in;\n" + 
-			"	              ^^^^^^^^\n" + 
-			"The import j.l.S.in is never used\n" + 
-			"----------\n");
-}
-/**
- * Test invalid static import syntax
- */
-public void test086() {
-	this.runNegativeTest(
-		new String[] {
-			"p/S.java",
-			"package p;\n" + 
-				"public class S {\n" + 
-				"    public final static String full = \"FULL\";\n" + 
-				"    public final static String success = \"SUCCESS\";\n" + 
-				"}\n",
-			"X.java",
-			"import static p.S;\n" + 
-				"public class X {\n" + 
-				"	public static void main ( String[] args) {\n" + 
-				"		\n" + 
-				"      System.out.print(full+\" \"+p.S.success);\n" + 
-				"   }\n" + 
-				"}\n"
-		},
-		"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	import static p.S;\n" + 
-			"	              ^^^\n" + 
-			"The static import p.S must be a field or member type\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	System.out.print(full+\" \"+p.S.success);\n" + 
-			"	                 ^^^^\n" + 
-			"full cannot be resolved\n" + 
-			"----------\n"
-		);
-}
-public void test087() {
-	this.runNegativeTest(
-		new String[] {
-			"S.java",
-			"public class S {\n" + 
-				"    public final static String full = \"FULL\";\n" + 
-				"    public final static String success = \"SUCCESS\";\n" + 
-				"}\n",
-			"X.java",
-			"import static S;\n" + 
-				"public class X {\n" + 
-				"	public static void main ( String[] args) {\n" + 
-				"		\n" + 
-				"      System.out.print(full+\" \"+S.success);\n" + 
-				"   }\n" + 
-				"}\n"
-		},
-		"----------\n" + 
-			"1. ERROR in X.java (at line 1)\n" + 
-			"	import static S;\n" + 
-			"	              ^\n" + 
-			"The import S cannot be resolved\n" + 
-			"----------\n" + 
-			"2. ERROR in X.java (at line 5)\n" + 
-			"	System.out.print(full+\" \"+S.success);\n" + 
-			"	                 ^^^^\n" + 
-			"full cannot be resolved\n" + 
-			"----------\n"
-		);
-}
-public void test088() {
-	String errorMessage =
-		"----------\n" + 
-		"1. WARNING in p\\X.java (at line 4)\n" + 
-		"	public class X extends Date implements Runnable{\n" + 
-		"	             ^\n" + 
-		"The serializable class X does not declare a static final serialVersionUID field of type long\n" + 
-		"----------\n" + 
-		"2. ERROR in p\\X.java (at line 12)\n" + 
-		"	this.super();\n" + 
-		"	^^^^\n" + 
-		"Illegal enclosing instance specification for type Object\n" + 
-		"----------\n" + 
-		"3. WARNING in p\\X.java (at line 25)\n" + 
-		"	private void a() { System.out.println(\"A\");} \n" + 
-		"	             ^^^\n" + 
-		"The method a() from the type X is never used locally\n" + 
-		"----------\n" + 
-		"4. WARNING in p\\X.java (at line 31)\n" + 
-		"	Class c = b.getClass();\n" + 
-		"	^^^^^\n" + 
-		"Class is a raw type. References to generic type Class<T> should be parameterized\n" + 
-		"----------\n" + 
-		"5. WARNING in p\\X.java (at line 32)\n" + 
-		"	Class _getClasses [] = X.class.getClasses(); \n" + 
-		"	^^^^^\n" + 
-		"Class is a raw type. References to generic type Class<T> should be parameterized\n" + 
-		"----------\n" + 
-		"6. WARNING in p\\X.java (at line 36)\n" + 
-		"	Constructor _getConstructors[] = c.getConstructors(); \n" + 
-		"	^^^^^^^^^^^\n" + 
-		"Constructor is a raw type. References to generic type Constructor<T> should be parameterized\n" + 
-		"----------\n" + 
-		"7. WARNING in p\\X.java (at line 39)\n" + 
-		"	Method _getMethod = c.getMethod(\"d\",null);\n" + 
-		"	                    ^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"The argument of type null should explicitly be cast to Class[] for the invocation of the varargs method getMethod(String, Class...) from type Class. It could alternatively be cast to Class for a varargs invocation\n" + 
-		"----------\n";
-	if (isJRELevel(AbstractCompilerTest.F_1_6|AbstractCompilerTest.F_1_7)) {
-		errorMessage =
-			"----------\n" + 
-			"1. WARNING in p\\X.java (at line 4)\n" + 
-			"	public class X extends Date implements Runnable{\n" + 
-			"	             ^\n" + 
-			"The serializable class X does not declare a static final serialVersionUID field of type long\n" + 
-			"----------\n" + 
-			"2. ERROR in p\\X.java (at line 12)\n" + 
-			"	this.super();\n" + 
-			"	^^^^\n" + 
-			"Illegal enclosing instance specification for type Object\n" + 
-			"----------\n" + 
-			"3. WARNING in p\\X.java (at line 25)\n" + 
-			"	private void a() { System.out.println(\"A\");} \n" + 
-			"	             ^^^\n" + 
-			"The method a() from the type X is never used locally\n" + 
-			"----------\n" + 
-			"4. WARNING in p\\X.java (at line 31)\n" + 
-			"	Class c = b.getClass();\n" + 
-			"	^^^^^\n" + 
-			"Class is a raw type. References to generic type Class<T> should be parameterized\n" + 
-			"----------\n" + 
-			"5. WARNING in p\\X.java (at line 32)\n" + 
-			"	Class _getClasses [] = X.class.getClasses(); \n" + 
-			"	^^^^^\n" + 
-			"Class is a raw type. References to generic type Class<T> should be parameterized\n" + 
-			"----------\n" + 
-			"6. WARNING in p\\X.java (at line 36)\n" + 
-			"	Constructor _getConstructors[] = c.getConstructors(); \n" + 
-			"	^^^^^^^^^^^\n" + 
-			"Constructor is a raw type. References to generic type Constructor<T> should be parameterized\n" + 
-			"----------\n" + 
-			"7. WARNING in p\\X.java (at line 39)\n" + 
-			"	Method _getMethod = c.getMethod(\"d\",null);\n" + 
-			"	                    ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"The argument of type null should explicitly be cast to Class[] for the invocation of the varargs method getMethod(String, Class...) from type Class. It could alternatively be cast to Class for a varargs invocation\n" + 
-			"----------\n" + 
-			"8. WARNING in p\\X.java (at line 39)\n" + 
-			"	Method _getMethod = c.getMethod(\"d\",null);\n" + 
-			"	                    ^^^^^^^^^^^^^^^^^^^^^\n" + 
-			"Type safety: The method getMethod(String, Class...) belongs to the raw type Class. References to generic type Class<T> should be parameterized\n" + 
-			"----------\n";
-	}
-	this.runNegativeTest(
-		new String[] {
-			"p/X.java",
-			"package p;\n" + 
-			"import java.util.Date;\n" + 
-			"import java.lang.reflect.*;\n" + 
-			"public class X extends Date implements Runnable{\n" + 
-			" \n" + 
-			" Integer w = new Integer(90);\n" + 
-			" protected double x = 91.1;\n" + 
-			" public long y = 92;\n" + 
-			" static public Boolean z = new Boolean(true); \n" + 
-			" public class X_inner {\n" + 
-			"  public X_inner() {\n" + 
-			"   this.super();\n" + 
-			"   System.out.println(\"....\");\n" + 
-			"  }\n" + 
-			" }\n" + 
-			" X_inner a = new X_inner();\n" + 
-			" public interface X_interface {\n" + 
-			"   public void f(); \n" + 
-			" }\n" + 
-			" static {\n" + 
-			"  System.out.println(\"Static initializer\");\n" + 
-			" }\n" + 
-			" public X() { } \n" + 
-			" public X(int a1,int b1) { } \n" + 
-			" private void a() { System.out.println(\"A\");} \n" + 
-			" protected void b() { System.out.println(\"B\");} \n" + 
-			" public void c() { System.out.println(\"C\");} \n" + 
-			" static public int d() {System.out.println(\"Static D\");return -1;} \n" + 
-			" public static void main(String args[]) {\n" + 
-			"  X  b = new X();\n" + 
-			"  Class c = b.getClass();\n" + 
-			"  Class _getClasses [] = X.class.getClasses(); \n" + 
-			"//  System.out.println(_getClasses[0].toString());\n" + 
-			"//  System.out.println(_getClasses[1].toString());\n" + 
-			"  if (_getClasses.length == 0) {System.out.println(\"FAILED\");};\n" + 
-			"  Constructor _getConstructors[] = c.getConstructors(); \n" + 
-			"  try {\n" + 
-			"   Field _getField = c.getField(\"y\");\n" + 
-			"   Method _getMethod = c.getMethod(\"d\",null);\n" + 
-			" \n" + 
-			"   Boolean b_z = X.z; \n" + 
-			"  }\n" + 
-			"  catch (NoSuchFieldException e) { System.out.println(\"NoSuchFieldException\");}\n" + 
-			"  catch (NoSuchMethodException e) { System.out.println(\"NoSuchMethodException\");};\n" + 
-			" } \n" + 
-			" public void run() {System.out.println(\"RUN\");} \n" + 
-			"}",
-		}, 
-		errorMessage);
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78089
- */
-public void test089() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"    @interface I1 {}\n" + 
-			"}\n" + 
-			"\n" + 
-			"public class X {\n" + 
-			"    public static void main(String argv[])   {\n" + 
-			"    	System.out.print(\"SUCCESS\");\n" + 
-			"    }\n" + 
-			"}"
-		},
-		"SUCCESS");
-}
-//78104
-public void test090() {
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	void foo(int[] ints, Object o) {\n" + 
-			"		ints = ints.clone();\n" + 
-			"		ints = (int[])ints.clone();\n" + 
-			"		X x = this.clone();\n" + 
-			"	}\n" + 
-			"}",
-		}, 
-		"----------\n" + 
-		"1. ERROR in X.java (at line 6)\n" + 
-		"	X x = this.clone();\n" + 
-		"	      ^^^^^^^^^^^^\n" + 
-		"Type mismatch: cannot convert from Object to X\n" + 
-		"----------\n"
-	);
-}
-//78104 - variation
-public void test091() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		args = args.clone();\n" + 
-			"	}\n" + 
-			"}",
-		}, 
-		""
-	);
-}
-// check autoboxing only enabled in 1.5 source mode
-public void test092() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo(Boolean b) {\n" + 
-			"		if (b) { \n" + 
-			"			int i = 0;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n",
-		}, 
-		""
-	);
-}
-public void test093() {
-	this.runNegativeTest(
-		new String[] {
-			"p/X_1.java",
-			"package p;\n" + 
-			"/*   dena JTest Suite, Version 2.2, September 1997\n" + 
-			" *   Copyright (c) 1995-1997 Modena Software (I) Pvt. Ltd., All Rights Reserved\n" + 
-			" */\n" + 
-			"/*  Section    :  Inner classes \n" + 
-			" *  FileName   :  ciner026.java\n" + 
-			" *  Purpose    :  Positive test for Inner classes\n" + 
-			" *  \n" + 
-			" *  An anonymous class can have initializers but cannot have a constructor.\n" + 
-			" *  The argument list of the associated new expression is implicitely \n" + 
-			" *  passed to the constructor of the super class. \n" + 
-			" *\n" + 
-			" */\n" + 
-			" \n" + 
-			" class X_1 {\n" + 
-			"  static int xx = 100;\n" + 
-			"  //inner class Y  \n" + 
-			"  static class Y {  \n" + 
-			"   public int j = 0;\n" + 
-			"   Y(int x){ j = x; }\n" + 
-			"   }  \n" + 
-			" public void call_inner()\n" + 
-			" {\n" + 
-			"   int i = test_anonymous().j;\n" + 
-			" }     \n" + 
-			" public static void main(String argv[])\n" + 
-			" {\n" + 
-			"   X_1 ox = new X_1();\n" + 
-			"   ox.call_inner(); \n" + 
-			" }  \n" + 
-			"public void newMethod ( ) {\n" + 
-			"  Float f1 = null;\n" + 
-			"  f1=(f1==0.0)?1.0:f1;\n" + 
-			"}\n" + 
-			"   static Y test_anonymous()\n" + 
-			"   { \n" + 
-			"    //anonymous implementation of class Y\n" + 
-			"    return new Y(xx) //xx should be implicitely passed to Y()\n" + 
-			"    {\n" + 
-			"    };    \n" + 
-			"   \n" + 
-			"   } //end test_anonymous      \n" + 
-			"} ",
-		}, 
-		"----------\n" + 
-		"1. ERROR in p\\X_1.java (at line 33)\n" + 
-		"	f1=(f1==0.0)?1.0:f1;\n" + 
-		"	   ^^^^^^^^^^^^^^^^\n" + 
-		"Type mismatch: cannot convert from double to Float\n" + 
-		"----------\n"
-	);
-}
-/*
- * Test unused import warning in presence of syntax errors
- * http://bugs.eclipse.org/bugs/show_bug.cgi?id=21022
- */
-public void test094(){
-
-	this.runNegativeTest(
-		new String[] {
-			"X.java",
-			"import java.io.*;	\n" +
-			"public class X {	\n" +
-			"	void foo(){\n" +
-			"		()\n" +
-			"		IOException e;\n" +
-			"	} \n" +
-			"}		\n"
-		},
-		"----------\n" + 
-		"1. ERROR in X.java (at line 4)\n" + 
-		"	()\n" + 
-		"	^\n" + 
-		"Syntax error on token \"(\", AnnotationName expected before this token\n" + 
-		"----------\n");
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=84743
-public void test095(){
-
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"interface I {\n" + 
-			"   int foo();\n" + 
-			"}\n" + 
-			"interface J {\n" + 
-			"   String foo();\n" + 
-			"}\n" + 
-			" \n" + 
-			"public class X implements I {\n" + 
-			"   public int foo() {\n" + 
-			" 	return 0;\n" + 
-			"   }\n" + 
-			"   public static void main(String[] args) {\n" + 
-			"         I i = new X();\n" + 
-			"         try {\n" + 
-			"	        J j = (J) i;\n" + 
-			"         } catch(ClassCastException e) {\n" + 
-			"	        System.out.println(\"SUCCESS\");\n" + 
-			"         }\n" + 
-			"  }\n" + 
-			"}\n"
-		},
-		"SUCCESS");
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47074
- */
-public void test096() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"    interface A {\n" + 
-			"       void doSomething();\n" + 
-			"    }\n" + 
-			"\n" + 
-			"    interface B {\n" + 
-			"       int doSomething();\n" + 
-			"    }\n" + 
-			"\n" + 
-			"    interface C extends B {\n" + 
-			"    }\n" + 
-			"\n" + 
-			"    public static void main(String[] args) {\n" + 
-			"        \n" + 
-			"        A a = null;\n" + 
-			"        C c = (C)a; \n" + 
-			"    }\n" + 
-			"}"
-		},
-		"");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=79396
-public void test097() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"\n" + 
-			"    public static void main(String argv[]) {\n" + 
-			"    	int cst = X1.CST;\n" + 
-			"        X2.Root.foo();\n" + 
-			"    }\n" + 
-			"    static void foo() {}\n" + 
-			"}\n" + 
-			"\n" + 
-			"class X1 {\n" + 
-			"    static {\n" + 
-			"		System.out.print(\"[X1]\");\n" + 
-			"    }\n" + 
-			"    public static final int CST = 12;\n" + 
-			"    static X Root = null;\n" + 
-			"}\n" + 
-			"class X2 {\n" + 
-			"    static {\n" + 
-			"		System.out.print(\"[X2]\");\n" + 
-			"    }\n" + 
-			"    public final int CST = 12;\n" + 
-			"    static X Root = null;\n" + 
-			"}\n"
-		},
-		"[X2]");
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78906
-public void test098() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	void foo() {\n" + 
-			"		System.out.print(\"foo\");\n" + 
-			"	}\n" + 
-			"	class Y {\n" + 
-			"		String this$0;\n" + 
-			"		String this$0$;\n" + 
-			"		void print() { \n" + 
-			"			foo();\n" + 
-			"			System.out.println(this$0+this$0$);\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		X.Y y = new X().new Y();\n" + 
-			"		y.this$0 = \"hello\";\n" + 
-			"		y.this$0$ = \"world\";\n" + 
-			"		y.print();\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"foohelloworld");
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=77349
-public void test099() {
-	this.runNegativeTest(
-		new String[] {
-			"I.java",
-			"public interface I extends Cloneable {\n" + 
-			"	class Inner {\n" +
-			"		Object bar(I i) throws CloneNotSupportedException { return i.clone(); }\n" +
-			"	}\n" + 
-			"}\n"
-		},
-		"----------\n" + 
-		"1. ERROR in I.java (at line 3)\n" + 
-		"	Object bar(I i) throws CloneNotSupportedException { return i.clone(); }\n" + 
-		"	                                                             ^^^^^\n" + 
-		"The method clone() is undefined for the type I\n" + 
-		"----------\n"
-	);
-}
-
-public void test100() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    int \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-			"    void foo() {\n" + 
-			"        int \\ud800\\udc05\\ud800\\udc04\\ud800\\udc03\\ud800\\udc02\\ud800\\udc01\\ud800\\udc00;\n" + 
-			"    }\n" + 
-			"}\n"
-		}
-	);
-}
-public void test101() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	Character c0 = \'a\';\n" +
-			"	public static void main(String argv[]) {\n" + 
-			"		Character c1;\n" + 
-			"		c1 = \'b\';\n" + 
-			"\n" + 
-			"		Character c2 = \'c\';\n" + 
-			"		Character[] c3 = { \'d\' };\n" +
-			"	\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		""
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=108856
-public void test102() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] s) {\n" + 
-			"		new Object() {\n" + 
-			"			{\n" + 
-			"				new Object() {\n" + 
-			"					{\n" + 
-			"						System.out.println(this.getClass().getName());\n" + 
-			"						System.out.println(this.getClass().getSimpleName());\n" + 
-			"					}\n" + 
-			"				};\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n"
-		},
-		"X$1$1");
-}
-//public void test103() {
-//	this.runConformTest(
-//		new String[] {
-//			"X.java",
-//			"public class X {\n" +
-//			"    public static void main(String[] args) {\n" +
-//			"		System.out.print(X.class);\n" +
-//			"    }\n" +
-//			"}\n",
-//		},
-//		"class X");
-//		
-//	ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler();
-//	String actualOutput = null;
-//	try {
-//		byte[] classFileBytes = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(new File(OUTPUT_DIR + File.separator  +"X.class"));
-//		actualOutput =
-//			disassembler.disassemble(
-//				classFileBytes,
-//				"\n",
-//				ClassFileBytesDisassembler.DETAILED); 
-//	} catch (org.eclipse.wst.jsdt.core.util.ClassFormatException e) {
-//		assertTrue("ClassFormatException", false);
-//	} catch (IOException e) {
-//		assertTrue("IOException", false);
-//	}
-//	
-//	String expectedOutput = 
-//		"public class X {\n" + 
-//		"  \n" + 
-//		"  // Method descriptor #6 ()V\n" + 
-//		"  // Stack: 1, Locals: 1\n" + 
-//		"  public X();\n" + 
-//		"    0  aload_0 [this]\n" + 
-//		"    1  invokespecial java.lang.Object() [8]\n" + 
-//		"    4  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 1]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 5] local: this index: 0 type: X\n" + 
-//		"  \n" + 
-//		"  // Method descriptor #15 ([Ljava/lang/String;)V\n" + 
-//		"  // Stack: 2, Locals: 1\n" + 
-//		"  public static void main(java.lang.String[] args);\n" + 
-//		"    0  getstatic java.lang.System.out : java.io.PrintStream [16]\n" + 
-//		"    3  ldc <Class X> [1]\n" + 
-//		"    5  invokevirtual java.io.PrintStream.print(java.lang.Object) : void [22]\n" + 
-//		"    8  return\n" + 
-//		"      Line numbers:\n" + 
-//		"        [pc: 0, line: 3]\n" + 
-//		"        [pc: 8, line: 4]\n" + 
-//		"      Local variable table:\n" + 
-//		"        [pc: 0, pc: 9] local: args index: 0 type: java.lang.String[]\n";
-//		
-//	int index = actualOutput.indexOf(expectedOutput);
-//	if (index == -1 || expectedOutput.length() == 0) {
-//		System.out.println(Util.displayString(actualOutput, 2));
-//	}
-//	if (index == -1) {
-//		assertEquals("Wrong contents", expectedOutput, actualOutput);
-//	}
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=125570
-public void test104() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"	public static void main(String[] s) {\n" + 
-			"		new Object() {\n" + 
-			"			{\n" + 
-			"				new Object() {\n" + 
-			"					{\n" + 
-			"						class Y {\n" + 
-			"							{\n" + 
-			"								System.out.print(this.getClass());\n" + 
-			"								System.out.print(\' \');\n" + 
-			"								System.out.print(this.getClass().getSimpleName());\n" + 
-			"							}\n" + 
-			"						}\n" + 
-			"						;\n" + 
-			"						new Y();\n" + 
-			"					}\n" + 
-			"				};\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}"
-		},
-		"class X$1$1$1Y Y");
-}
-
-// enclosing instance - note that the behavior is different in 1.3 and 1.4
-public void test105() {
-	this.runConformTest(
-		new String[] {
-			"X.java",
-			"public class X {\n" + 
-			"    static class Y { }\n" + 
-			"    static class Z1 {\n" + 
-			"        Runnable m;\n" + 
-			"        Z1(Runnable p) {\n" + 
-			"            this.m = p;\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    class Z2 extends Z1 {\n" + 
-			"        Z2(final Y p) {\n" + 
-			"            super(new Runnable() {\n" + 
-			"                public void run() {\n" + 
-			"                    foo(p);\n" + 
-			"                }\n" + 
-			"            });\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"    void foo(Y p) { }\n" + 
-			"}\n"
-		},
-		"");
-}
-
-public static Class testClass() {
-	return Compliance_1_5.class;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/BasicInterpretTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/BasicInterpretTest.java
deleted file mode 100644
index 0bfb3d0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/BasicInterpretTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.interpret;
-
-public class BasicInterpretTest extends InterpretTest {
-
-	public BasicInterpretTest(String name) {
-		super(name);
-	}
-
-	
-	public void test0001() {
-		interpetTest("1+2","3");
-	}
-
-	public void test0002() {
-		interpetTest("a=10","a","10");
-	}
-
-	public void test0003() {
-		interpetTest("a=10;b=a+11;","b","21");
-	}
-	
-	public void test0004() {
-		interpetTest("a={p:21}; b=a.p;","b","21");
-	}
-
-	public void test0005() {
-		interpetTest("a = new Object(); a.hasProperty(\"c\");","false");
-	}
-	
-	public void test0005a() {
-		interpetTest("a = new Object(); a.c=1; a.hasProperty('c');","true");
-	}
-	
-	public void test0007() {
-		interpetTest("function box(w,h){this.width=w;this.height=h;}"+
-				"box.prototype.area=function (){return this.width*this.height;}"+
-				"b=new box(3,4); b.area();"
-				,"12");
-	}
-
-	public void test0008() {
-		interpetTest("var i=1;"+
-				"if (i>0) i=3;"
-				,"i","3");
-	}
-
-	public void test0008b() {
-		interpetTest("var i=1;"+
-				"if (i>1) i=3;"
-				,"i","1");
-	}
-
-
-	public void test0009() {
-		interpetTest("var i=1;"+
-				"while (i<3) i++;"
-				,"i","3");
-	}
-
-	public void test0009a() {
-		interpetTest("var i=1;"+
-				"while (i<3) {i++; if (i==2) break;}"
-				,"i","2");
-	}
-
-	
-	public void test0010() {
-		interpetTest("a = \"abc\"; a.indexOf(\"b\");","1");
-	}
-	
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/InterpretTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/InterpretTest.java
deleted file mode 100644
index 77da302..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/InterpretTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.interpret;
-
-import org.eclipse.wst.jsdt.core.tests.junit.extension.StopableTestCase;
-import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.wst.jsdt.internal.core.interpret.Interpreter;
-import org.eclipse.wst.jsdt.internal.core.interpret.InterpreterContext;
-import org.eclipse.wst.jsdt.internal.core.interpret.InterpreterResult;
-import org.eclipse.wst.jsdt.internal.core.interpret.Value;
-
-public class InterpretTest extends AbstractCompilerTest implements
-		StopableTestCase {
-
-	
-	InterpreterResult result;
-	
-	public InterpretTest(String name) {
-		super(name);
-	}
-
-	public void stop() {
-
-	}
-
-	public void interpetTest(String source, String expected)
-	{
-		
-		InterpreterContext context= new InterpreterContext();
-		context.initailizeBuiltins();
-		
-		result=Interpreter.interpet(source, context);
-		Object res=result.getResult();
-		if (res instanceof Value)
-			res=((Value)res).stringValue();
-		assertTrue("Result has errors", !result.hasErrors());
-		assertEquals("Unexpected result",expected, res.toString());
-		
-
-	}
-	
-	public void interpetTest(String source, String varName, String expected)
-	{
-		
-		InterpreterContext context= new InterpreterContext();
-		
-		result=Interpreter.interpet(source, context);
-		
-		assertTrue("Result has errors", !result.hasErrors());
-		Value value =context.getValue(varName.toCharArray());
-		assertTrue("var not found: "+varName, value!=null);
-		assertEquals("Unexpected result",expected, value.stringValue() );
-		
-
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/PerformanceTestSuite.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/PerformanceTestSuite.java
deleted file mode 100644
index 84760f3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/PerformanceTestSuite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.junit.extension;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.Vector;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class PerformanceTestSuite extends TestSuite {
-	
-	/**
-	 * Constructs a TestSuite from the given class. Adds all the methods
-	 * starting with "testPerf" as test cases to the suite.
-	 */
-	 public PerformanceTestSuite(final Class theClass) {
-		setName(theClass.getName());
-		try {
-			getTestConstructor(theClass); // Avoid generating multiple error messages
-		} catch (NoSuchMethodException e) {
-			addTest(addWarningTest("Class "+theClass.getName()+" has no public constructor TestCase(String name) or TestCase()"));
-			return;
-		}
-
-		if (!Modifier.isPublic(theClass.getModifiers())) {
-			addTest(addWarningTest("Class "+theClass.getName()+" is not public"));
-			return;
-		}
-
-		Class superClass= theClass;
-		Vector names= new Vector();
-		while (Test.class.isAssignableFrom(superClass)) {
-			Method[] methods= superClass.getDeclaredMethods();
-			for (int i= 0; i < methods.length; i++) {
-				addTestMethod(methods[i], names, theClass);
-			}
-			superClass= superClass.getSuperclass();
-		}
-		if (countTestCases() == 0)
-			addTest(addWarningTest("No tests found in "+theClass.getName()));
-	}
-	
-	public PerformanceTestSuite(String name) {
-		setName(name);
-	}
-	
-	private void addTestMethod(Method m, Vector names, Class theClass) {
-		String name= m.getName();
-		if (names.contains(name))
-			return;
-		if (! isPublicTestMethod(m)) {
-			if (isTestMethod(m))
-				addTest(addWarningTest("Test method isn't public: "+m.getName()));
-			return;
-		}
-		names.addElement(name);
-		addTest(createTest(theClass, name));
-	}
-
-	public void addTestSuite(Class theClass) {
-		addTest(new PerformanceTestSuite(theClass));
-	}
-	
-	private boolean isPublicTestMethod(Method m) {
-		return isTestMethod(m) && Modifier.isPublic(m.getModifiers());
-	 }
-	 
-	private boolean isTestMethod(Method m) {
-		String name= m.getName();
-		Class[] parameters= m.getParameterTypes();
-		Class returnType= m.getReturnType();
-		return parameters.length == 0 && name.startsWith("testPerf") && returnType.equals(Void.TYPE);
-	 }
-	 
-	/**
-	 * Returns a test which will fail and log a warning message.
-	 */
-	private static Test addWarningTest(final String message) {
-		return new TestCase("warning") {
-			protected void runTest() {
-				fail(message);
-			}
-		};
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/StopableTestCase.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/StopableTestCase.java
deleted file mode 100644
index 8d4cf56..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/StopableTestCase.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.junit.extension;
-
-/**
- * A test case that is being sent stop() when the user presses 'Stop' or 'Exit'.
- */
-public interface StopableTestCase {
-	/**
-	 * Invoked when this test needs to be stoped.
-	 */
-	public void stop();
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestCase.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestCase.java
deleted file mode 100644
index 9b41657..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestCase.java
+++ /dev/null
@@ -1,748 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.junit.extension;
-
-import java.io.*;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.text.DateFormat;
-import java.util.*;
-
-import org.eclipse.wst.jsdt.core.Flags;
-import org.eclipse.wst.jsdt.internal.compiler.batch.Main;
-
-import junit.framework.ComparisonFailure;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class TestCase extends junit.framework.TestCase {
-
-	// Filters
-	public static final String METHOD_PREFIX = "test";
-	public  static String RUN_ONLY_ID = "ONLY_";
-	
-	// Ordering
-	public static final int NO_ORDER = 0;
-	public static final int ALPHABETICAL_SORT = 1;
-	public static final int ALPHA_REVERSE_SORT = 2;
-	public static final int RANDOM_ORDER_JDT = 3;
-	public static final int RANDOM_ORDER_TIME = 4;
-
-	/**
-	 * Expected tests order while building tests list for test suites.
-	 * 	@see #buildTestsList(Class, int, long)
-	 * <br>
-	 * User may use following different values:
-	 * 	<ul>
-	 *			<li>{@link #NO_ORDER}: none (this is the default)</li>
-	 *			<li>{@link #ALPHABETICAL_SORT}: alphabetical order (ie. ascending)</li>
-	 *			<li>{@link #ALPHA_REVERSE_SORT}: alpha reverse order (ie. descending )</li>
-	 *			<li>{@link #RANDOM_ORDER_JDT}: random order using JDT/Core current version as seed</li>
-	 *			<li>{@link #RANDOM_ORDER_TIME}: random order using current time as seed (used time value is displayed in console)</li>
-	 *			<li>other values: random order using given <code>long</code> value as seed</li>
-	 * 	</ul>
-	 * This value is initialized with <code>"ordering"</code> system property.
-	 */
-	public static final long ORDERING;
-	static {
-		long ordering = NO_ORDER; // default is no order
-		try {
-			long seed = Long.parseLong(System.getProperty("ordering", "0"));
-			try {
-				int kind = Integer.parseInt(System.getProperty("ordering", "0"));
-				switch (kind) {
-					case NO_ORDER:
-						break;
-					case ALPHABETICAL_SORT:
-						ordering = kind;
-						System.err.println("Note that tests will be run sorted using alphabetical order...");
-						break;
-					case ALPHA_REVERSE_SORT:
-						ordering = kind;
-						System.err.println("Note that tests will be run sorted using alphabetical reverse order...");
-						break;
-					case RANDOM_ORDER_JDT:
-						String version = new Main(null, null, false).bind("compiler.version");
-						try {
-							String v_number = version.substring(2, 5);
-							ordering = Long.parseLong(v_number);
-							System.err.println("Note that tests will be run in random order using seed="+v_number+" (ie. JDT/Core version)");
-						}
-						catch (NumberFormatException nfe) {
-							System.err.println("Cannot extract valid JDT/Core version number from 'compiler.version': "+version+" => no order will be finally used...");
-							ordering = NO_ORDER;
-						}
-						break;
-					case RANDOM_ORDER_TIME:
-						ordering = System.currentTimeMillis();
-						System.err.println("Note that tests will be run in random order using seed="+ordering+" (ie. current time)");
-						break;
-					default:
-						ordering = seed;
-						System.err.println("Note that tests will be run in random order using seed="+seed+" (ie. given value)");
-						break;
-				}
-			} catch (NumberFormatException nfe) {
-				// ordering value is over int range but is a valid long => keep the value
-				ordering = seed;
-				System.err.println("Note that tests will be run in random order using seed="+seed+" (ie. given value)");
-			}
-		}
-		catch (NumberFormatException nfe) {
-			System.err.println("Only integer or long values are allowed for 'ordering' system property: "+System.getProperty("ordering", "0")+" is not valid ! => no order will be finally used...");
-			ordering = NO_ORDER;
-		}
-		ORDERING = ordering;
-	}
-
-	// Garbage collect constants
-	final static int MAX_GC = 5; // Max gc iterations
-	final static int TIME_GC = 200; // Sleep to wait gc to run (in ms)
-	final static int DELTA_GC = 1000; // Threshold to remaining free memory
-
-	// Debug Log Information
-	public final static File MEM_LOG_FILE;
-	public final static File MEM_LOG_DIR;
-	public static Class CURRENT_CLASS;
-	public static String CURRENT_CLASS_NAME;
-	public final static String STORE_MEMORY;
-	public final static boolean ALL_TESTS_LOG;
-	public final static boolean RUN_GC;
-
-	/*
-	 * Static initializer for memory trace.
-	 * This functionality is activated using system property "storeMemory".
-	 * Here's possible format for this property:
-	 * 	-DstoreMemory=<file name>[,all][,gc][,dir=<directory name>]
-	 * 		<file name>: name of the file where memory data will be stored
-	 * 		optional parameters:
-	 * 			all:	flag to store memory data for all tests. If not specified,
-	 * 					then data will be stored only per test suite
-	 * 			gc:	flag to run garbage collection before each test or test suite
-	 * 					(depending of "all" parameter)
-	 * 			dir=<directory name>:
-	 * 					specify directory where to put the file. Default is the directory
-	 * 					specified in 'user.home' property
-	 */
-	static {
-		String storeMemory = System.getProperty("storeMemory");
-		boolean allTestsLog = false;
-		boolean runGc = false;
-		File memLogDir = new File(System.getProperty("user.home"));
-		if (storeMemory != null) {
-			int index = storeMemory.indexOf(',');
-			if (index>0) {
-				StringTokenizer parameters = new StringTokenizer(storeMemory.substring(storeMemory.indexOf(',')+1), ",");
-				while (parameters.hasMoreTokens()) {
-					String param = parameters.nextToken();
-					if ("all".equals(param)) {
-						allTestsLog = true;
-					} else if ("gc".equals(param)) {
-						runGc = true;
-					} else if (param.startsWith("dir=")) {
-						memLogDir = new File(param.substring(4));
-					}
-				}
-				storeMemory = storeMemory.substring(0, index);
-			}
-		}
-		STORE_MEMORY = storeMemory;
-		ALL_TESTS_LOG = allTestsLog;
-		RUN_GC = runGc;
-		if (!verifyLogDir(memLogDir)) {
-			memLogDir = null;
-		}
-		MEM_LOG_DIR = memLogDir;
-		MEM_LOG_FILE = createMemLogFile();
-		if (STORE_MEMORY != null && MEM_LOG_FILE != null) {
-			System.out.println("Memory storage activated:");
-			System.out.println("	data stored in file "+MEM_LOG_FILE);
-			System.out.println("	all tests log: "+ALL_TESTS_LOG);
-			System.out.println("	gc activated: "+RUN_GC);
-		}
-	}
-	/*
-	 * Flag telling if current test is the first of TestSuite it belongs or not.
-	 */
-	private boolean first;
-
-	// static variables for subsets tests
-	public static String TESTS_PREFIX = null; // prefix of test names to perform
-	public static String[] TESTS_NAMES = null; // list of test names to perform
-	public static int[] TESTS_NUMBERS = null; // list of test numbers to perform
-	public static int[] TESTS_RANGE = null; // range of test numbers to perform
-
-	public TestCase(String name) {
-		setName(name);
-	}
-
-public static void assertEquals(String expected, String actual) {
-    assertEquals(null, expected, actual);
-}
-public static void assertEquals(String message, String expected, String actual) {
-	assertStringEquals(message, expected, actual, true);
-}
-public static void assertStringEquals(String expected, String actual, boolean showLineSeparators) {
-	assertStringEquals(null, expected, actual, showLineSeparators);
-}
-public static void assertStringEquals(String message, String expected, String actual, boolean showLineSeparators) {
-	if (expected == null && actual == null)
-		return;
-	if (expected != null && expected.equals(actual))
-		return;
-	final String formatted;
-	if (message != null) {
-		formatted = message+"."; //$NON-NLS-1$
-	} else {
-		formatted = ""; //$NON-NLS-1$
-	}
-	if (showLineSeparators) {
-		final String expectedWithLineSeparators = showLineSeparators(expected);
-		final String actualWithLineSeparators = showLineSeparators(actual);
-		throw new ComparisonFailure(
-			    formatted
-					+ "\n----------- Expected ------------\n" //$NON-NLS-1$
-					+ expectedWithLineSeparators
-					+ "\n------------ but was ------------\n" //$NON-NLS-1$
-					+ actualWithLineSeparators
-					+ "\n--------- Difference is ----------\n", //$NON-NLS-1$
-			    expectedWithLineSeparators, 
-			    actualWithLineSeparators);
-	} else {
-		throw new ComparisonFailure(
-			    formatted
-					+ "\n----------- Expected ------------\n" //$NON-NLS-1$
-					+ expected
-					+ "\n------------ but was ------------\n" //$NON-NLS-1$
-					+ actual
-					+ "\n--------- Difference is ----------\n", //$NON-NLS-1$
-			    expected, 
-			    actual);
-	}
-}
-
-/**
- * Build a list of methods to run for a test suite.
- * There's no recursion in given class hierarchy, methods are only
- * public method starting with "test" of it.
- * <p></p>
- *  Note that this list may be reduced using 2 different mechanism:
- * <p></p>
- * 1) TESTS* static variables:
- * <ul>
- * <li>{@link #TESTS_PREFIX}: only methods starting with this prefix (after "test" of course)
- * 		will be put in test suite.
- * </li>
- * <li>{@link #TESTS_NAMES}: only methods with these names will be put in test suite.
- * </li>
- * <li>{@link #TESTS_NUMBERS}: only methods including these numbers will be put in test suite.<br>
- * 	For example, <code>TESTS_NUMBERS = new int[] { 10, 100, 125678 };</code> will put
- * 	<code>test010()</code>, <code>test100()</code> and <code>testBug125678()</code>
- * 	methods in test suite.
- * </li>
- * <li>{@link #TESTS_RANGE}: only methods which numbers are between first and second value
- * 	of this int array will be put in the suite.
- * 	For example: <code>TESTS_RANGE = new int[] { 10, 12 };</code> will put
- * 	<code>test010()</code>, <code>test011()</code> and <code>test012()</code>
- * 	methods in test suite.<br>
- * 	Note that -1 will clean min or max value, for example <code>TESTS_RANGE = new int[] { 10, -1 };</code>
- * 	will put all methods after <code>test010()</code> in the test suite.
- * </li>
- * </ul>
- * <p></p>
- * 2) testONLY_ methods<br>
- * As static variables needs a static initializer usually put at the beginning of the test suite,
- * it could be a little be boring while adding tests at the end of the file to modify this static initializer.
- * One solution to avoid this was to introduced specific methods name which will be only executed
- * when test suite is run alone.
- * For example:
- * <pre>
- * 	public class MyTest extends TestCase {
- * 		public MyTest(String name) {
- * 			super(name);
- * 		}
- * 		public test001() {
- * 			...
- * 		}
- * 		public test002() {
- * 			...
- * 		}
- * 		...
- * 		public testONLY_100() {
- * 			...
- * 		}
- * 	}
- * </pre>
- * This test suite will have only test "testONLY_100" put in test suite while running it.
- * 
- * Note that these 2 mechanisms should be reset while executing "global" test suites.
- * For example:
- * <pre>
- * 	public class TestAll extends junit.framework.TestCase {
- * 		public TestAll(String testName) {
- * 			super(testName);
- * 		}
- * 		public static Test suite() {
- * 			TestCase.TESTS_PREFIX = null;
- * 			TestCase.TESTS_NAMES = null;
- * 			TestCase.TESTS_NUMBERS= null;
- * 			TestCase.TESTS_RANGE = null;
- * 			TestCase.RUN_ONLY_ID = null;
- * 			return buildTestSuite(MyTest.class);
- * 		}
- * 	}
- * </pre>
- * This will insure you that all tests will be put in TestAll test suite, even if static variables
- * values are set or some methods start as testONLY_...
- * 
- * @param evaluationTestClass the test suite class
- * @return a list ({@link List}) of tests ({@link Test}).
- */
-public static List buildTestsList(Class evaluationTestClass) {
-	return buildTestsList(evaluationTestClass, 0/*only one level*/, ORDERING);
-}
-
-/**
- * Build a list of methods to run for a test suite.
- * <br>
- * Differ from {@link #buildTestsList(Class)} in the fact that one
- * can specify level of recursion in hierarchy to find additional tests.
- * 
- * @param evaluationTestClass the test suite class
- * @param inheritedDepth level of recursion in top-level hierarchy to find other tests
- * @return a {@link List list} of {@link Test tests}.
- */
-public static List buildTestsList(Class evaluationTestClass, int inheritedDepth) {
-	return buildTestsList(evaluationTestClass, inheritedDepth, ORDERING);
-}
-
-/**
- * Build a list of methods to run for a test suite.
- * <br>
- * This list may be ordered in different ways using {@link #ORDERING}.
- * <br>
- * Example
- * <pre>
- * 	public class AbstractTest extends TestCase {
- * 		public MyTest(String name) {
- * 			super(name);
- * 		}
- * 		public testOne() {
- * 			...
- * 		}
- * 		public testTwo() {
- * 			...
- * 		}
- * 	}
- * 	public class MyTest extends AbstractTest {
- * 		public MyTest(String name) {
- * 			super(name);
- * 		}
- * 		public test001() {
- * 			...
- * 		}
- * 		public test002() {
- * 			...
- * 		}
- * 		...
- * 		public testONLY_100() {
- * 			...
- * 		}
- * 	}
- * </pre>
- * Returned list will have 5 tests if inheritedDepth is equals to 1 instead of
- * 3 if it was 0 as while calling by {@link #buildTestsList(Class)}.
- * 
- * @see #buildTestsList(Class) for complete explanation of subsets mechanisms.
- * 
- * @param evaluationTestClass the test suite class
- * @param inheritedDepth level of recursion in top-level hierarchy to find other tests
- * @param ordering kind of sort use for the list (see {@link #ORDERING} for possible values)
- * @return a {@link List list } of {@link Test tests}
- */
-public static List buildTestsList(Class evaluationTestClass, int inheritedDepth, long ordering) {
-	List tests = new ArrayList();
-	List testNames = new ArrayList();
-	List onlyNames = new ArrayList();
-	Constructor constructor = null;
-	try {
-		// Get class constructor
-		Class[] paramTypes = new Class[] { String.class };
-		constructor = evaluationTestClass.getConstructor(paramTypes);
-	}
-	catch (Exception e) {
-		// cannot get constructor, skip suite
-		return tests;
-	}
-
-	// Get all tests from "test%" methods
-	Method[] methods = evaluationTestClass.getDeclaredMethods();
-	Class evaluationTestSuperclass = evaluationTestClass.getSuperclass();
-	for (int i=0; i<inheritedDepth && !Flags.isAbstract(evaluationTestSuperclass.getModifiers()); i++) {
-		Method[] superMethods = evaluationTestSuperclass.getDeclaredMethods();
-		Method[] mergedMethods = new Method[methods.length+superMethods.length];
-		System.arraycopy(superMethods, 0, mergedMethods, 0, superMethods.length);
-		System.arraycopy(methods, 0, mergedMethods, superMethods.length, methods.length);
-		methods = mergedMethods;
-		evaluationTestSuperclass = evaluationTestSuperclass.getSuperclass();
-	}
-
-	// Build test names list
-	final int methodPrefixLength = METHOD_PREFIX.length();
-	nextMethod: for (int m = 0, max = methods.length; m < max; m++) {
-		int modifiers = methods[m].getModifiers();
-		if (Flags.isPublic(modifiers) && !Flags.isStatic(modifiers)) {
-			String methName = methods[m].getName();
-			if (methName.startsWith(METHOD_PREFIX)) {
-
-				// look if this is a run only method
-				boolean isOnly = RUN_ONLY_ID != null && methName.substring(methodPrefixLength).startsWith(RUN_ONLY_ID);
-				if (isOnly) {
-					if (!onlyNames.contains(methName)) {
-						onlyNames.add(methName);
-					}
-					continue;
-				}
-
-				// no prefix, no subsets => add method
-				if (TESTS_PREFIX == null && TESTS_NAMES == null && TESTS_NUMBERS == null && TESTS_RANGE == null) {
-					if (!testNames.contains(methName)) {
-						testNames.add(methName);
-					}
-					continue nextMethod;
-				}
-
-				// no prefix or method matches prefix
-				if (TESTS_PREFIX == null || methName.startsWith(TESTS_PREFIX)) {
-					int numStart = TESTS_PREFIX==null ? methodPrefixLength : TESTS_PREFIX.length();
-					// tests names subset
-					if (TESTS_NAMES != null) {
-						for (int i = 0, imax= TESTS_NAMES.length; i<imax; i++) {
-							if (methName.indexOf(TESTS_NAMES[i]) >= 0) {
-								if (!testNames.contains(methName)) {
-									testNames.add(methName);
-								}
-								continue nextMethod;
-							}
-						}
-					}
-					// look for test number
-					int length = methName.length();
-					if (numStart < length) {
-						// get test number
-						while (numStart<length && !Character.isDigit(methName.charAt(numStart))) numStart++; // skip to first digit
-						while (numStart<length && methName.charAt(numStart) == '0') numStart++; // skip to first non-nul digit
-						int n = numStart;
-						while (n<length && Character.isDigit(methName.charAt(n))) n++; // skip to next non-digit
-						if (n>numStart && n <= length) {
-							try {
-								int num = Integer.parseInt(methName.substring(numStart, n));
-								// tests numbers subset
-								if (TESTS_NUMBERS != null && !testNames.contains(methName)) {
-									for (int i = 0; i < TESTS_NUMBERS.length; i++) {
-										if (TESTS_NUMBERS[i] == num) {
-											testNames.add(methName);
-											continue nextMethod;
-										}
-									}
-								}
-								// tests range subset
-								if (TESTS_RANGE != null && TESTS_RANGE.length == 2 && !testNames.contains(methName)) {
-									if ((TESTS_RANGE[0]==-1 || num>=TESTS_RANGE[0]) && (TESTS_RANGE[1]==-1 || num<=TESTS_RANGE[1])) {
-										testNames.add(methName);
-										continue nextMethod;
-									}
-								}
-							} catch (NumberFormatException e) {
-								System.out.println("Method "+methods[m]+" has an invalid number format: "+e.getMessage());
-							}
-						}
-					}
-
-					// no subset, add all tests
-					if (TESTS_NAMES==null && TESTS_NUMBERS==null && TESTS_RANGE==null) {
-						if (!testNames.contains(methName)) {
-							testNames.add(methName);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	// Order tests
-	List names = onlyNames.size() > 0 ? onlyNames : testNames;
-	if (ordering == ALPHA_REVERSE_SORT) {
-		Collections.sort(names, Collections.reverseOrder());
-	} else if (ordering == ALPHABETICAL_SORT) {
-		Collections.sort(names);
-	} else if (ordering != NO_ORDER) {
-		Collections.shuffle(names, new Random(ordering));
-	}
-
-	// Add corresponding tests
-	Iterator iterator = names.iterator();
-	while (iterator.hasNext()) {
-		String testName = (String) iterator.next();
-		try {
-			tests.add(constructor.newInstance(new Object[] { testName } ));
-		}
-		catch (Exception e) {
-			System.err.println("Method "+testName+" removed from suite due to exception: "+e.getMessage());
-		}
-	}
-	return tests;
-}
-
-/**
- * Build a test suite with all tests computed from public methods starting with "test"
- * found in the given test class.
- * Test suite name is the name of the given test class.
- * 
- * Note that this lis maybe reduced using some mechanisms detailed in {@link #buildTestsList(Class)} method.
- * 
- * @param evaluationTestClass
- * @return a {@link Test test suite} 
- */
-public static Test buildTestSuite(Class evaluationTestClass) {
-	return buildTestSuite(evaluationTestClass, null); //$NON-NLS-1$
-}
-
-/**
- * Build a test suite with all tests computed from public methods starting with "test"
- * found in the given test class.
- * Test suite name is the given name.
- * 
- * Note that this lis maybe reduced using some mechanisms detailed in {@link #buildTestsList(Class)} method.
- * 
- * @param evaluationTestClass
- * @param suiteName
- * @return a test suite ({@link Test}) 
- */
-public static Test buildTestSuite(Class evaluationTestClass, String suiteName) {
-	TestSuite suite = new TestSuite(suiteName==null?evaluationTestClass.getName():suiteName);
-	List tests = buildTestsList(evaluationTestClass);
-	for (int index=0, size=tests.size(); index<size; index++) {
-		suite.addTest((Test)tests.get(index));
-	}
-	return suite;
-}
-
-private static File createMemLogFile() {
-	if (STORE_MEMORY == null || MEM_LOG_DIR == null) {
-		return null;
-	}
-	// Get file (create if necessary)
-	File logFile = new File(MEM_LOG_DIR, STORE_MEMORY+".log");
-	try {
-		boolean fileExist = logFile.exists();
-		PrintStream stream = new PrintStream(new FileOutputStream(logFile, true));
-		if (stream != null) {
-			if (fileExist) {
-				stream.println();
-			}
-			// Log date and time
-			Date date = new Date(System.currentTimeMillis());
-			stream.println("Tests:\t" + STORE_MEMORY);
-			stream.println("Date:\t" + DateFormat.getDateInstance(3).format(date));
-			stream.println("Time:\t" + DateFormat.getTimeInstance(3).format(date));
-			// Log columns title
-			stream.print("Class");
-			if (ALL_TESTS_LOG) stream.print("\tTest");
-			stream.print("\tUsed\tTotal\tMax");
-			stream.println();
-			stream.close();
-			System.out.println("Log file " + logFile.getPath() + " opened.");
-			return logFile;
-		} else {
-			System.err.println("Cannot open file " + logFile.getPath());
-		}
-	} catch (FileNotFoundException e) {
-		// no log available for this statistic
-	}
-	return null;
-}
-
-/*
- * Shows the line separators in the given String.
- */
-protected static String showLineSeparators(String string) {
-	if (string == null) return null;
-	StringBuffer buffer = new StringBuffer();
-	int length = string.length();
-	for (int i = 0; i < length; i++) {
-		char car = string.charAt(i);
-		switch (car) {
-			case '\n': 
-				buffer.append("\\n\n"); //$NON-NLS-1$
-				break;
-			case '\r':
-				if (i < length-1 && string.charAt(i+1) == '\n') {
-					buffer.append("\\r\\n\n"); //$NON-NLS-1$
-					i++;
-				} else {
-					buffer.append("\\r\n"); //$NON-NLS-1$
-				}
-				break;
-			default:
-				buffer.append(car);
-				break;
-		}
-	}
-	return buffer.toString();
-}
-
-/*
- * Returns whether a given file is a valid log directory or not.
- */
-private static boolean verifyLogDir(File logDir) {
-	if (logDir.exists()) {
-		if (logDir.isDirectory()) {
-			return true;
-		} else {
-			System.err.println(logDir+" is not a valid directory. Log files will NOT be written!");
-		}
-	} else {
-		if (logDir.mkdir()) {
-			return true;
-		} else {
-			System.err.println("Cannot create "+logDir+" as its parent does not exist. Log files will NOT be written!");
-		}
-	}
-	return false;
-}
-
-public void assertPerformance() {
-	// make it public to avoid compiler warning about synthetic access
-//	super.assertPerformance();
-}
-
-
-/**
- * Clean test before run it.
- * Currently, clean only performs a gc.
- */
-protected void clean() {
-	System.out.println("Clean test "+getName());
-	// Run gc
-	int iterations = 0;
-	long delta=0, free=0;
-	for (int i=0; i<MAX_GC; i++) {
-		free = Runtime.getRuntime().freeMemory();
-		System.gc();
-		delta = Runtime.getRuntime().freeMemory() - free;
-		try {
-			Thread.sleep(TIME_GC);
-		} catch (InterruptedException e) {
-			// do nothing
-		}
-	}
-	if (iterations == MAX_GC && delta > DELTA_GC) {
-		// perhaps gc was not well executed
-		try {
-			Thread.sleep(1000);
-		} catch (InterruptedException e) {
-			// do nothing
-		}
-	}
-}
-
-public void commitMeasurements() {
-//	super.commitMeasurements();
-}
-
-/**
- * Return whether current test is on a new {@link Test test} class or not.
- * 
- * @return <code>true</code> if it's the first test of a {@link TestSuite},
- * 	<code>false</code> otherwise.
- */
-protected boolean isFirst() {
-	return first;
-}
-
-protected void setUp() throws Exception {
-	super.setUp();
-
-	// Store test class and its name when changing
-	first = false;
-	if (CURRENT_CLASS == null || CURRENT_CLASS != getClass()) {
-		if (CURRENT_CLASS != null && RUN_GC) clean();
-		CURRENT_CLASS = getClass();
-		first = true;
-		CURRENT_CLASS_NAME = getClass().getName();
-		CURRENT_CLASS_NAME = CURRENT_CLASS_NAME.substring(CURRENT_CLASS_NAME.indexOf(".tests.")+7, CURRENT_CLASS_NAME.length());
-	}
-
-	// Memory storage if specified
-	if (STORE_MEMORY != null && MEM_LOG_FILE != null) {
-		if (ALL_TESTS_LOG && MEM_LOG_FILE.exists()) {
-			PrintStream stream = new PrintStream(new FileOutputStream(MEM_LOG_FILE, true));
-			stream.print(CURRENT_CLASS_NAME);
-			stream.print('\t');
-			String testName = getName();
-			stream.print(testName);
-			stream.print('\t');
-			long total = Runtime.getRuntime().totalMemory();
-			long used = total - Runtime.getRuntime().freeMemory();
-			stream.print(used);
-			stream.print('\t');
-			stream.print(total);
-			stream.print('\t');
-			stream.print(Runtime.getRuntime().maxMemory());
-			stream.println();
-			stream.close();
-		}
-	}
-}
-
-public void startMeasuring() {
-	// make it public to avoid compiler warning about synthetic access
-//	super.startMeasuring();
-}
-public void stopMeasuring() {
-	// make it public to avoid compiler warning about synthetic access
-//	super.stopMeasuring();
-}
-
-protected void tearDown() throws Exception {
-	super.tearDown();
-
-	// Memory storage if specified
-	if (STORE_MEMORY != null && MEM_LOG_FILE != null) {
-		if ((first || ALL_TESTS_LOG) && MEM_LOG_FILE.exists()) {
-			PrintStream stream = new PrintStream(new FileOutputStream(MEM_LOG_FILE, true));
-			stream.print(CURRENT_CLASS_NAME);
-			stream.print('\t');
-			if (ALL_TESTS_LOG) {
-				String testName = getName();
-				String str = "";
-				int length = testName.length()-4;
-				for (int i=0; i<length; i++) {
-					str += '.';
-				}
-				stream.print(str);
-				stream.print("end:");
-				stream.print('\t');
-			}
-			long total = Runtime.getRuntime().totalMemory();
-			long used = total - Runtime.getRuntime().freeMemory();
-			stream.print(used);
-			stream.print('\t');
-			stream.print(total);
-			stream.print('\t');
-			stream.print(Runtime.getRuntime().maxMemory());
-			stream.println();
-			stream.close();
-		}
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestListener.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestListener.java
deleted file mode 100644
index b642f96..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.junit.extension;
-
-import junit.framework.Test;
-import junit.framework.TestFailure;
-/**
- * A Listener for test progress
- */
-public interface TestListener extends junit.framework.TestListener {
-   /**
- 	* An error occurred.
- 	*/
-	public void addError(Test test, TestFailure testFailure);
-   /**
- 	* A failure occurred.
- 	*/
- 	public void addFailure(Test test, TestFailure testFailure); 
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestResult.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestResult.java
deleted file mode 100644
index e549866..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/junit/extension/TestResult.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.junit.extension;
-
-import java.util.*;
-import junit.framework.*;
-
-public class TestResult extends junit.framework.TestResult {
-	TestCase currentTest;
-/**
- * TestResult constructor comment.
- */
-public TestResult() {
-	super();
-}
-	/**
-	 * Adds an error to the list of errors. The passed in exception
-	 * caused the error.
-	 */
-	public synchronized void addError(Test test, Throwable t) {
-		TestFailure testFailure= new TestFailure(test, t);
-		fErrors.addElement(testFailure);
-		for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) {
-			((TestListener)e.nextElement()).addError(test, testFailure);
-		}
-	}
-	/**
-	 * Adds a failure to the list of failures. The passed in exception
-	 * caused the failure.
-	 */
-	public synchronized void addFailure(Test test, AssertionFailedError t) {
-		TestFailure testFailure= new TestFailure(test, t);
-		fFailures.addElement(testFailure);
-		for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) {
-			((TestListener)e.nextElement()).addFailure(test, testFailure);
-		}
-	}
-	/**
-	 * Returns a copy of the listeners.
-	 */
-	private synchronized Vector cloneListeners() {
-		return (Vector)fListeners.clone();
-	}
-	protected void run(final TestCase test) {
-		this.currentTest = test;
-		super.run(test);
-		this.currentTest = null;
-	}
-public synchronized void stop() {
-	super.stop();
-	if (this.currentTest != null && this.currentTest instanceof StopableTestCase) {
-		((StopableTestCase)this.currentTest).stop();
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/AbstractReader.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/AbstractReader.java
deleted file mode 100644
index 5fd50b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/AbstractReader.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-/**
- * An abstract reader that continuously reads.
- */
-
-abstract public class AbstractReader {
-	protected String name;
-	protected Thread readerThread;
-	protected boolean isStopping= false;
-/*
- * Creates a new reader with the given name.
- */
-public AbstractReader(String name) {
-	this.name = name;
-}
-/**
- * Continuously reads. Note that if the read involves waiting
- * it can be interrupted and a InterruptedException will be thrown.
- */
-abstract protected void readerLoop();
-/**
- * Start the thread that reads events.
- * 
- */
-public void start() {
-	this.readerThread = new Thread(
-		new Runnable() {
-			public void run () {
-				readerLoop();
-			}
-		},
-		AbstractReader.this.name);
-	this.readerThread.start();
-}
-/**
- * Tells the reader loop that it should stop.
- */
-public void stop() {
-	this.isStopping= true;
-	if (this.readerThread != null)
-		this.readerThread.interrupt();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/J9VMLauncher.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/J9VMLauncher.java
deleted file mode 100644
index 4455268..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/J9VMLauncher.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.*;
-
-import java.util.Vector;
-
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-/**
- * A J9 VM launcher launches an external J9 VM (and J9 Proxy if needed) with
- * the given arguments on the same machine.
- * <p>
- * Unlike with the <code>StandardVMLauncher</code>, a debugger would have to
- * connect to the J9 Proxy instead of connecting to the VM directly. In this case,
- * the Proxy port is the specified debug port. Note that an internal debug port
- * must also be specified. This port is used for the communication between the
- * Proxy and the VM.
- */
-public class J9VMLauncher extends LocalVMLauncher implements RuntimeConstants {
-	int internalDebugPort = -1;
-	String proxyOutFile;
-	String symbolPath;
-/**
- * Creates a new J9VMLauncher that launches a J9 VM
- * (and J9 Proxy if needed) on the same machine.
- */
-public J9VMLauncher() {
-	super();
-}
-/**
- * Builds the actual boot class path that is going to be passed to the VM.
- */
-protected String buildBootClassPath() {
-	StringBuffer bootPathString = new StringBuffer();
-	char pathSeparator = File.pathSeparatorChar;
-	
-	if (this.bootPath != null) {
-		// Add boot class path given by client
-		int length = this.bootPath.length;
-		for (int i = 0; i < length; i++){
-			bootPathString.append(this.bootPath[i]);
-			bootPathString.append(pathSeparator);
-		}
-	} else {
-		// Add regular classes.zip
-		bootPathString.append(this.vmPath);
-		bootPathString.append(File.separator);
-		bootPathString.append("lib");
-		bootPathString.append(File.separator);
-		bootPathString.append("jclMax");
-		bootPathString.append(File.separator);
-		bootPathString.append("classes.zip");
-		bootPathString.append(pathSeparator);
-	}
-	
-	// Add boot class path directory if needed
-	if (this.evalTargetPath != null && TARGET_HAS_FILE_SYSTEM) {
-		bootPathString.append(this.evalTargetPath);
-		bootPathString.append(File.separatorChar);
-		bootPathString.append(BOOT_CLASSPATH_DIRECTORY);
-	}
-
-	return bootPathString.toString();
-}
-/**
- * @see LocalVMLauncher#execCommandLine
- */
-protected Process execCommandLine() throws TargetException {
-	// Check that the internal debug port has been specified if in debug mode
-	if (this.debugPort != -1 && this.internalDebugPort == -1) {
-		throw new TargetException("Internal debug port has not been specified");
-	}
-
-	return super.execCommandLine();
-}
-/**
- * @see LocalVMLauncher#getCommandLine
- */
-public String[] getCommandLine() {	
-	Vector commandLine = new Vector();
-	
-	// VM binary
-	commandLine.addElement(
-		this.vmPath + 
-		(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-		"bin" + 
-		File.separator + 
-		"j9");
-
-	// VM arguments
-	if (this.vmArguments != null) {
-		for (int i = 0; i < this.vmArguments.length; i++) {
-			commandLine.addElement(this.vmArguments[i]);
-		}
-	}
-
-	// debug mode
-	if (this.debugPort != -1 && this.internalDebugPort != -1) {
-		commandLine.addElement("-debug:" + this.internalDebugPort);
-	}
-
-	// boot class path
-	commandLine.addElement("-Xbootclasspath:" + buildBootClassPath());
-
-	// regular class path
-	commandLine.addElement("-classpath");
-	commandLine.addElement(buildClassPath());
-	
-	// code snippet runner class
-	if (this.evalPort != -1) {
-		commandLine.addElement(CODE_SNIPPET_RUNNER_CLASS_NAME);
-	}
-	
-	// code snippet runner arguments
-	if (this.evalPort != -1) {
-		commandLine.addElement(EVALPORT_ARG);
-		commandLine.addElement(Integer.toString(this.evalPort));
-		if (TARGET_HAS_FILE_SYSTEM) {
-			commandLine.addElement(CODESNIPPET_CLASSPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + REGULAR_CLASSPATH_DIRECTORY);
-			commandLine.addElement(CODESNIPPET_BOOTPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + BOOT_CLASSPATH_DIRECTORY);
-		}
-	}
-	
-	// program class
-	if (this.programClass != null) {
-		commandLine.addElement(this.programClass);
-	}
-	
-	// program arguments
-	if (this.programArguments != null) {
-		for (int i=0;i<this.programArguments.length;i++) {
-			commandLine.addElement(this.programArguments[i]);
-		}
-	}
-
-	String[] result= new String[commandLine.size()];
-	commandLine.copyInto(result);
-
-	// check for spaces in result
-	for (int i = 0; i < result.length; i++) {
-		String argument = result[i];
-		if (argument.indexOf(' ') != -1) {
-			result[i] = "\"" + argument + "\"";
-		}
-	}
-
-	return result;
-}
-/**
- * Returns the debug port the J9 Proxy uses to connect to the J9 VM. 
- * The value is unspecified if debug mode is disabled.
- * Note that the regular debug port is the port used to connect the J9 Proxy and 
- * the IDE in the case of the J9 VM Launcher.
- */
-public int getInternalDebugPort() {
-	return this.internalDebugPort;
-}
-/**
- * Returns the command line which will be used to launch the Proxy. 
- */
-public String[] getProxyCommandLine() {	
-	Vector commandLine = new Vector();
-	
-	// Proxy binary
-	commandLine.addElement(
-		this.vmPath + 
-		(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-		"bin" + 
-		File.separator + 
-		"j9proxy");
-
-	// Arguments
-	commandLine.addElement(getTargetAddress() + ":" + this.internalDebugPort);
-	commandLine.addElement(Integer.toString(this.debugPort));
-	if (this.symbolPath != null && this.symbolPath != "") {
-		commandLine.addElement(this.symbolPath);
-	}
-	
-	String[] result= new String[commandLine.size()];
-	commandLine.copyInto(result);
-	return result;
-}
-/**
- * Returns the full path name to the file where the proxy output is redirected.
- * Returns "con" if the proxy output is redirected to the stdout.
- * Returns null if the proxy output is not redirected.
- */
-public String getProxyOutFile() {
-	return this.proxyOutFile;
-}
-/**
- * Returns the full path name to the symbol file used by the J9 Proxy.
- * Returns null if the no symbol file is passed to the J9 Proxy.
- */
-public String getSymbolPath() {
-	return this.symbolPath;
-}
-/**
- * @see LocalVMLauncher#launch
- */
-public LocalVirtualMachine launch() throws TargetException {
-	// Launch VM
-	LocalVirtualMachine localVM = super.launch();
-
-	// Launch Proxy if needed
-	Process proxyProcess= null;
-	if (this.debugPort != -1) {
-		try {
-			// Use Runtime.exec(String[]) with tokens because Runtime.exec(String) with commandLineString
-			// does not properly handle spaces in arguments on Unix/Linux platforms.
-			String[] commandLine = getProxyCommandLine();
-			
-			// DEBUG
-			/*
-			for (int i = 0; i < commandLine.length; i++) {
-				System.out.print(commandLine[i] + " ");
-			}
-			System.out.println();
-			*/
-
-			proxyProcess= Runtime.getRuntime().exec(commandLine);
-		} catch (IOException e) {
-			localVM.shutDown();
-			throw new TargetException("Error launching J9 Proxy at " + this.vmPath);
-		}
-	}
-
-	// Transform launched VM into J9 VM
-	Process vmProcess = localVM.process;
-	this.runningVMs.removeElement(localVM);
-	J9VirtualMachine vm= new J9VirtualMachine(vmProcess, this.debugPort, this.evalTargetPath, proxyProcess, this.proxyOutFile);
-	this.runningVMs.addElement(vm);
-	return vm;
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.runtime.LocalVMLauncher#setDebugPort(int)
- */
-public void setDebugPort(int debugPort) {
-	super.setDebugPort(debugPort);
-	
-	// specify default internal debug port as well
-	this.setInternalDebugPort(Util.getFreePort());
-}
-
-/**
- * Sets the debug port the J9 Proxy uses to connect to the J9 VM.
- * This is mandatory if debug mode is enabled.
- * This is ignored if debug mode is disabled.
- * Note that the regular debug port is the port used to connect the J9 Proxy and 
- * the IDE in the case of the J9 VM Launcher.
- */
-public void setInternalDebugPort(int internalDebugPort) {
-	this.internalDebugPort = internalDebugPort;
-}
-/**
- * Sets the full path name to the file where the proxy output must be redirected.
- * Specify "con" if the proxy output must be redirected to the stdout.
- * Specify null if the proxy output must not be redirected (default value).
- * This is ignored if debug mode is disabled.
- */
-public void setProxyOutFile(String proxyOutFile) {
-	this.proxyOutFile = proxyOutFile;
-}
-/**
- * Sets the full path name to the symbol file used by the J9 Proxy.
- * Specify null if the no symbol file must be passed to the J9 Proxy (default value).
- * This is ignored if debug mode is disabled.
- */
-public void setSymbolPath(String symbolPath) {
-	this.symbolPath = symbolPath;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/J9VirtualMachine.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/J9VirtualMachine.java
deleted file mode 100644
index 8ee53da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/J9VirtualMachine.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-/**
- * Wrapper around the external processes that are running a J9 VM
- * and a J9 Proxy.
- * This allows to kill these processes when we exit this vm.
- */
-class J9VirtualMachine extends LocalVirtualMachine {
-	private Process proxyProcess;
-	private AbstractReader proxyConsoleReader;
-	private String proxyOutputFile;
-/**
- * Creates a new J9VirtualMachine from the Processes that runs this VM
- * and its J9 Proxy and with the given info.
- */
-public J9VirtualMachine(Process vmProcess, int debugPort, String evalTargetPath, Process proxyProcess, String proxyOutputFile) {
-	super(vmProcess, debugPort, evalTargetPath);
-	this.proxyProcess = proxyProcess;
-	this.proxyOutputFile = proxyOutputFile;
-	
-	// Start the Proxy console reader so that the proxy is not blocked on its stdout.
-	if (this.proxyProcess != null) {
-		if (this.proxyOutputFile == null) {
-			this.proxyConsoleReader= 
-				new NullConsoleReader(
-					"J9 Proxy Console Reader", 
-					this.proxyProcess.getInputStream());
-		} else {
-			this.proxyConsoleReader= 
-				new ProxyConsoleReader(
-					"J9 Proxy Console Reader", 
-					this.proxyProcess.getInputStream(),
-					this.proxyOutputFile);
-		}
-		this.proxyConsoleReader.start();
-	}
-
-}
-private boolean isProxyRunning() {
-	if (this.proxyProcess == null) {
-		return false;
-	}
-	boolean hasExited;
-	try {
-		this.proxyProcess.exitValue();
-		hasExited = true;
-	} catch (IllegalThreadStateException e) {
-		hasExited = false;
-	}
-	return !hasExited;
-}
-/**
- * @see LocalVirtualMachine#shutDown
- */
-public void shutDown()  throws TargetException {
-	super.shutDown();
-	if (this.proxyConsoleReader != null)
-		this.proxyConsoleReader.stop();
-	if ((this.proxyProcess != null) && isProxyRunning()) 
-		this.proxyProcess.destroy();
-}
-/**
- * @see LocalVirtualMachine#shutDown
- */
-public void waitForTermination() throws InterruptedException {
-	super.waitForTermination();
-	if (this.proxyProcess != null)
-		this.proxyProcess.waitFor();
-	if (this.proxyConsoleReader != null)
-		this.proxyConsoleReader.stop();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/JRockitVMLauncher.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/JRockitVMLauncher.java
deleted file mode 100644
index 7f9029e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/JRockitVMLauncher.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-
-import java.io.*;
-
-import java.util.Vector;
-import java.util.Enumeration;
-
-/**
- * A standard VM launcher launches an external standard VM with
- * the given arguments on the same machine.
- */
-public class JRockitVMLauncher extends LocalVMLauncher implements RuntimeConstants {
-	String batchFileName;
-/**
- * Creates a new StandardVMLauncher that launches a standard VM
- * on the same machine.
- */
-public JRockitVMLauncher() {
-	super();
-}
-/**
- * Builds the actual boot class path that is going to be passed to the VM.
- */
-protected String buildBootClassPath() {
-	StringBuffer bootPathString = new StringBuffer();
-
-	// Add boot class path directory if needed
-	if (this.evalTargetPath != null && TARGET_HAS_FILE_SYSTEM) {
-		bootPathString.append(this.evalTargetPath);
-		bootPathString.append(File.separatorChar);
-		bootPathString.append(BOOT_CLASSPATH_DIRECTORY);
-	}
-
-	return bootPathString.toString();
-}
-/**
- * Returns the name of the batch file used to launch the VM.
- */
-public String getBatchFileName() {
-	return this.batchFileName;
-}
-/**
- * @see LocalVMLauncher#getCommandLine
- */
-public String[] getCommandLine() {
-	Vector commandLine= new Vector();
-	
-	// VM binary
-	if (System.getProperty("java.vm.version").startsWith("1.4.2")) {
-		commandLine.addElement(
-			this.vmPath + 
-			(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-			"bin" + 
-			File.separator + 
-			"java");
-	} else {
-		String vmLocation = this.vmPath + 
-			(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-			"bin" + 
-			File.separator + 
-			"javaw";
-		final String osName = System.getProperty("os.name");
-		if (osName.indexOf("win32") != -1) {
-			vmLocation += ".exe";
-		}
-		if (!new File(vmLocation).exists()) {
-			vmLocation = 
-				this.vmPath + 
-				(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-				"bin" + 
-				File.separator + 
-				"java";
-		}
-		commandLine.addElement(vmLocation);
-	}
-
-	// VM arguments
-	if (this.vmArguments != null) {
-		for (int i = 0; i < this.vmArguments.length; i++) {
-			commandLine.addElement(this.vmArguments[i]);
-		}
-	}
-
-	// debug mode
-	if (this.debugPort != -1) {
-		commandLine.addElement("-Xdebug");
-		commandLine.addElement("-Xnoagent");
-		commandLine.addElement(
-			"-Xrunjdwp:transport=dt_socket,address=" +
-			this.debugPort +
-			",server=y,suspend=n");
-	}
-
-	// set the classpath
-	// we don't set the bootclasspath as for StandardVMLauncher as this breaks the debug mode of JRockit
-	// we would get: [JRockit] ERROR:  failed to set up MAPI gc reporting
-	commandLine.addElement("-classpath");
-	String classpath = buildBootClassPath() + File.pathSeparator + buildClassPath();
-	System.out.println(classpath);
-	commandLine.addElement(classpath);
-
-	// code snippet runner class
-	if (this.evalPort != -1) {
-		commandLine.addElement(CODE_SNIPPET_RUNNER_CLASS_NAME);
-	}
-	
-	// code snippet runner arguments
-	if (this.evalPort != -1) {
-		commandLine.addElement(EVALPORT_ARG);
-		commandLine.addElement(Integer.toString(this.evalPort));
-		if (TARGET_HAS_FILE_SYSTEM) {
-			commandLine.addElement(CODESNIPPET_CLASSPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + REGULAR_CLASSPATH_DIRECTORY);
-			commandLine.addElement(CODESNIPPET_BOOTPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + BOOT_CLASSPATH_DIRECTORY);
-		}
-	}
-
-	// program class
-	if (this.programClass != null) {
-		commandLine.addElement(this.programClass);
-	}
-	
-	// program arguments
-	if (this.programArguments != null) {
-		for (int i=0;i<this.programArguments.length;i++) {
-			commandLine.addElement(this.programArguments[i]);
-		}
-	}
-
-	String[] result;
-	if (this.batchFileName!= null) {
-		// Write to batch file if specified
-		writeBatchFile(this.batchFileName, commandLine);
-		result = new String[] {this.batchFileName};
-	} else {
-		result = new String[commandLine.size()];
-		commandLine.copyInto(result);
-	}
-
-	// check for spaces in result
-	for (int i = 0; i < result.length; i++) {
-		String argument = result[i];
-		if (argument.indexOf(' ') != -1) {
-			result[i] = "\"" + argument + "\"";
-		}
-	}
-	
-	return result;
-}
-/**
- * Sets the name of the batch file used to launch the VM.
- * When this option is set, the launcher writes the command line to the given batch file, 
- * and it launches the  batch file. This causes a DOS console to be opened. Note it 
- * doesn't delete the batch file when done.
- */
-public void setBatchFileName(String batchFileName) {
-	this.batchFileName = batchFileName;
-}
-protected void writeBatchFile(String fileName, Vector commandLine) {
-	FileOutputStream output = null;
-	try {
-		output = new FileOutputStream(fileName);
-		PrintWriter out= new PrintWriter(output);
-		for (Enumeration e = commandLine.elements(); e.hasMoreElements();) {
-			out.print((String)e.nextElement());
-			out.print(" ");
-		}
-		out.println("pause");
-		out.close();
-	} catch (IOException e) {
-		e.printStackTrace();
-		if (output != null) {
-			try {
-				output.close();
-			} catch (IOException e2) {
-				// ignore
-			}
-		}
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/LocalVMLauncher.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/LocalVMLauncher.java
deleted file mode 100644
index 7a49609..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/LocalVMLauncher.java
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-/**
- * The root of the VM launchers that launch VMs on the same machine.
- * <p>
- * A local VM launcher has the following limitations:
- * <ul>
- *   <li>It can only retrieve the running virtual machines that it has launched. So if
- *       a client is using 2 instances of <code>LocalVMLauncher</code>, each of these
- *       instances will be able to retrieve only a part of the running VMs.
- * </ul>
- */
-public abstract class LocalVMLauncher implements RuntimeConstants {
-
-	/**
-	 * Whether the target has a file system and thus whether it supports writing
-	 * class files to disk. See org.eclipse.wst.jsdt.core.tests.eval.target.CodeSnippetRunner for more
-	 * information.
-	 */
-	public static final boolean TARGET_HAS_FILE_SYSTEM = true;
-	public static final String REGULAR_CLASSPATH_DIRECTORY = "regularPath";
-	public static final String BOOT_CLASSPATH_DIRECTORY = "bootPath";
-	
-	protected String[] bootPath;
-	protected String[] classPath;
-	protected int debugPort = -1;
-	protected int evalPort = -1;
-	protected String evalTargetPath;
-	protected String[] programArguments;
-	protected String programClass;
-	protected Vector runningVMs = new Vector(); // a Vector of LocalVirtualMachine
-	protected String[] vmArguments;
-	protected String vmPath;
-	
-/**
- * Returns a launcher that will launch the same kind of VM that is currently running
- */
-public static LocalVMLauncher getLauncher() {
-	final String vmName = System.getProperty("java.vm.name");
-	if ("J9".equals(vmName)) {
-		return new J9VMLauncher();
-	}
-	if (vmName != null && vmName.indexOf("JRockit") != -1) {
-		return new JRockitVMLauncher();
-	}
-	final String osName = System.getProperty("os.name");
-	if (osName.startsWith("Mac")) {
-		return new MacVMLauncher();
-	}
-	File file = new File(Util.getJREDirectory() + "/lib/rt.jar");
-	if (file.exists()) {
-		return new StandardVMLauncher();
-	}
-	if ("IBM J9SE VM".equals(vmName)) {
-		return new SideCarJ9VMLauncher();
-	}
-	return new SideCarVMLauncher();
-}
-/**
- * Builds the actual class path that is going to be passed to the VM.
- */
-protected String buildClassPath() {
-	StringBuffer classPathString = new StringBuffer();
-	char pathSeparator = File.pathSeparatorChar;
-	
-	// Add jar support if in evaluation mode
-	if (this.evalPort != -1) {
-		classPathString.append(new File(this.evalTargetPath, SUPPORT_ZIP_FILE_NAME).getPath());
-		classPathString.append(pathSeparator);
-	}
-
-	// Add class path given by client
-	if (this.classPath != null) {
-		int length = this.classPath.length;
-		for (int i = 0; i < length; i++){
-			classPathString.append(this.classPath[i]);
-			classPathString.append(pathSeparator);
-		}
-	}
-	
-	// Add regular classpath directory if needed
-	if (this.evalPort != -1 && TARGET_HAS_FILE_SYSTEM) {
-		classPathString.append(this.evalTargetPath);
-		classPathString.append(File.separatorChar);
-		classPathString.append(REGULAR_CLASSPATH_DIRECTORY);
-	}
-
-	return classPathString.toString();
-}
-/**
- * Launches the VM by exec'ing the command line and returns the resulting Process.
- */
-protected Process execCommandLine() throws TargetException {
-	// Check that the VM path has been specified
-	if (this.vmPath == null) {
-		throw new TargetException("Path to the VM has not been specified");
-	}
-	
-	// Check that the program class has been specified if not in evaluation mode
-	if ((this.programClass == null) && (this.evalPort == -1)) {
-		throw new TargetException("Program class has not been specified");
-	}
-
-	// Launch VM
-	Process vmProcess= null;
-	try {
-		// Use Runtime.exec(String[]) with tokens because Runtime.exec(String) with commandLineString
-		// does not properly handle spaces in arguments on Unix/Linux platforms.
-		String[] commandLine = getCommandLine();
-		
-		// DEBUG
-		/*for (int i = 0; i < commandLine.length; i++) {
-			System.out.print(commandLine[i] + " ");
-		}
-		System.out.println();
-		*/
-		
-		vmProcess= Runtime.getRuntime().exec(commandLine);
-	} catch (IOException e) {
-		throw new TargetException("Error launching VM at " + this.vmPath);
-	}
-	return vmProcess;
-}
-/**
- * Returns the boot class path used when a VM is launched.
- */
-public String[] getBootClassPath() {
-	return this.bootPath;
-}
-/**
- * Returns the class path used when a VM is launched.
- */
-public String[] getClassPath() {
-	return this.classPath;
-}
-/**
- * Returns the command line which will be used to launch the VM.
- * The segments are in the following order:
- * <p><ul>
- * <li> VM path,
- * <li> VM arguments,
- * <li> the class path, 
- * <li> the program class
- * <li> the program arguments
- * </ul>
- */
-public abstract String[] getCommandLine();
-/**
- * Returns the debug port, or -1 if debug mode is disabled.
- * The default is -1.
- */
-public int getDebugPort() {
-	return this.debugPort;
-}
-/**
- * Returns the evaluation port for evaluation support.
- * The default is -1, indicating no evaluation support.
- *
- * @see #setEvalPort(int)
- */
-public int getEvalPort() {
-	return this.evalPort;
-}
-/**
- * Returns the evaluation target path for evaluation support.
- *
- * @see #setEvalTargetPath(String)
- */
-public String getEvalTargetPath() {
-	return this.evalTargetPath;
-}
-/**
- * Returns the arguments passed to the program class.
- * Returns null if the VM is being launched for evaluation support only.
- */
-public String[] getProgramArguments() {
-	if (this.evalPort != -1) {
-		return null;
-	}
-	return this.programArguments;
-}
-/**
- * Returns the dot-separated, fully qualified name of the class to run.  
- * It must implement main(String[] args).
- * Returns null if the VM is being launched for evaluation support only.
- */
-public String getProgramClass() {
-	if (this.evalPort != -1) {
-		return null;
-	}
-	return this.programClass;
-}
-/**
- * Returns all the target VMs that are running at this launcher's target 
- * address.
- * Note that these target VMs may or may not have been launched by this 
- * launcher.
- * Note also that if the list of running VMs doesn't change on the target,
- * two calls to this method return VMs that are equal.
- * 
- * @return the list of running target VMs
- */
-public LocalVirtualMachine[] getRunningVirtualMachines() {
-	// Select the VMs that are actually running
-	Vector actuallyRunning = new Vector();
-	Enumeration en = this.runningVMs.elements();
-	while (en.hasMoreElements()) {
-		LocalVirtualMachine vm = (LocalVirtualMachine)en.nextElement();
-		if (vm.isRunning())
-			actuallyRunning.addElement(vm);
-	}
-	this.runningVMs = actuallyRunning;
-
-	// Return the running VMs
-	int size = actuallyRunning.size();
-	LocalVirtualMachine[] result = new LocalVirtualMachine[size];
-	for (int i=0; i<size; i++)
-		result[i] = (LocalVirtualMachine)actuallyRunning.elementAt(i);
-	return result;
-}
-/**
- * Returns the address of the target where this launcher runs the target VMs. The format
- * of this address is transport specific.
- * For example, a VM launcher using a TCP/IP transport returns target addresses looking like:
- * <code>"localhost:2010"</code>, or <code>"joe.ibm.com"</code>.
- *
- * @return transport specific address of the target
- */
-public String getTargetAddress() {
-	return "localhost";
-}
-/**
- * Returns the VM-specific arguments. This does not include:
- * <p><ul>
- * <li>the VM path
- * <li>the class path or the boot class path
- * <li>the program class or program arguments
- * </ul>
- */
-public String[] getVMArguments() {
-	return this.vmArguments;
-}
-/**
- * Returns the path on disk of the VM to launch.
- */
-public String getVMPath() {
-	return this.vmPath;
-}
-/**
- * Initializes this context's target path by copying the jar file for the code snippet support 
- * and by creating the 2 directories that will contain the code snippet classes (see TARGET_HAS_FILE_SYSTEM).
- * Add the code snipport root class to the boot path directory so that code snippets can be run in
- * java.* packages
- *
- * @throws TargetException if the path could not be initialized with the code snippet support
- */
-protected void initTargetPath() throws TargetException {
-	// create directories
-	File directory = new File(this.evalTargetPath);
-	directory.mkdirs();
-	if (!directory.exists()) {
-		throw new TargetException("Could not create directory " + this.evalTargetPath);
-	}
-	if (TARGET_HAS_FILE_SYSTEM) {
-		File classesDirectory = new File(directory, REGULAR_CLASSPATH_DIRECTORY);
-		classesDirectory.mkdir();
-		if (!classesDirectory.exists()) {
-			throw new TargetException("Could not create directory " + classesDirectory.getPath());
-		}
-		File bootDirectory = new File(directory, BOOT_CLASSPATH_DIRECTORY);
-		bootDirectory.mkdir();
-		if (!bootDirectory.exists()) {
-			throw new TargetException("Could not create directory " + bootDirectory.getPath());
-		}
-		/*
-		// add the code snippet root class to the boot path directory
-		InputStream in = null;
-		try {
-			in = EvaluationContext.class.getResourceAsStream("/" + SUPPORT_ZIP_FILE_NAME);
-			ZipInputStream zip = new ZipInputStream(in);
-			String rootClassFileName = ROOT_FULL_CLASS_NAME.replace('.', '/') + ".class";
-			while (true) {
-				ZipEntry entry = zip.getNextEntry();
-				if (entry.getName().equals(rootClassFileName)) {
-					// read root class file contents
-					int size = (int)entry.getSize();
-					byte[] buffer = new byte[size];
-					int totalRead = 0;
-					int read = 0;
-					while (totalRead < size) {
-						read = zip.read(buffer, totalRead, size - totalRead);
-						if (read != -1) {
-							totalRead += read;
-						}
-					}
-					// write root class file contents
-					FileOutputStream out = null;
-					try {
-						File rootFile = new File(bootDirectory, rootClassFileName.replace('/', File.separatorChar));
-						File parent = new File(rootFile.getParent());
-						parent.mkdirs();
-						out = new FileOutputStream(rootFile);
-						out.write(buffer);
-						out.close();
-					} catch (IOException e) {
-						e.printStackTrace();
-						if (out != null) {
-							try {
-								out.close();
-							} catch (IOException e2) {
-							}
-						}
-					}
-					break;
-				}
-			}
-			in.close();
-		} catch (IOException e) {
-			e.printStackTrace();
-			if (in != null) {
-				try {
-					in.close();
-				} catch (IOException e2) {
-				}
-			}
-		}*/
-	}
-
-	// copy jar file
-	InputStream in = null;
-	FileOutputStream out = null;
-	try {
-		in = this.getClass().getResourceAsStream("/" + SUPPORT_ZIP_FILE_NAME);
-		if (in == null) {
-			throw new TargetException("Could not find resource /" + SUPPORT_ZIP_FILE_NAME);
-		}
-		int bufferLength = 1024;
-		byte[] buffer = new byte[bufferLength];
-		File file = new File(directory, SUPPORT_ZIP_FILE_NAME);
-		out = new FileOutputStream(file);
-		int read = 0;
-		while (read != -1) {
-			read = in.read(buffer, 0, bufferLength);
-			if (read != -1) {
-				out.write(buffer, 0, read);
-			}
-		}
-	} catch (IOException e) {
-		throw new TargetException("IOException while copying " + SUPPORT_ZIP_FILE_NAME + ": " + e.getMessage());
-	} finally {
-		if (in != null) {
-			try {
-				in.close();
-			} catch (IOException e) {
-			}
-		}
-		if (out != null) {
-			try {
-				out.close();
-			} catch (IOException e) {
-			}
-		}
-	}
-}
-/**
- * Launches a new target VM with the registered arguments.
- * This operation returns once a new target VM has been launched.
- *
- * @exception TargetException if the target VM could not be launched.
- */
-public LocalVirtualMachine launch() throws TargetException {
-	// evaluation mode
-	if (this.evalTargetPath != null) {
-		// init target path
-		this.initTargetPath();
-	}
-
-	// launch VM
-	LocalVirtualMachine vm;
-	Process p = execCommandLine();
-	vm = new LocalVirtualMachine(p, this.debugPort, this.evalTargetPath);
-
-	// TBD: Start reading VM stdout and stderr right away otherwise this may prevent the connection
-	//		from happening.
-
-	// add VM to list of known running VMs
-	this.runningVMs.addElement(vm);
-	return vm;
-}
-/**
- * Sets the boot class path used when a VM is launched.
- */
-public void setBootClassPath(java.lang.String[] bootClassPath) {
-	this.bootPath = bootClassPath;
-}
-/**
- * Sets the class path used when a VM is launched.
- */
-public void setClassPath(String[] classPath) {
-	this.classPath = classPath;
-}
-/**
- * Sets the debug port to use for debug support.
- * Specify -1 to disable debug mode.
- */
-public void setDebugPort(int debugPort) {
-	this.debugPort = debugPort;
-}
-/**
- * Sets the evaluation port to use for evaluation support.
- * Setting the port enables evaluation support.
- * Specify null to disable evaluation support.
- */
-public void setEvalPort(int evalPort) {
-	this.evalPort = evalPort;
-}
-/**
- * Sets the evaluation target path to use for evaluation support.
- */
-public void setEvalTargetPath(String evalTargetPath) {
-	this.evalTargetPath = evalTargetPath;
-}
-/**
- * Sets the arguments passed to the program class.
- * This is ignored if the VM is being launched for evaluation support only.
- */
-public void setProgramArguments(String[] args) {
-	this.programArguments = args;
-}
-/**
- * Sets the dot-separated, fully qualified name of the class to run.  
- * It must implement main(String[] args).
- * This is ignored if the VM is being launched for evaluation support only.
- */
-public void setProgramClass(String programClass) {
-	this.programClass = programClass;
-}
-/**
- * Sets the VM-specific arguments. This does not include:
- * <p><ul>
- * <li>the VM path
- * <li>the class path or the boot class path
- * <li>the program class or program arguments
- * </ul>
- */
-public void setVMArguments(String[] args) {
-	this.vmArguments = args;
-}
-/**
- * Sets the path on disk of the VM to launch.
- */
-public void setVMPath(String vmPath) {
-	this.vmPath = vmPath;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/LocalVirtualMachine.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/LocalVirtualMachine.java
deleted file mode 100644
index 4cb14e0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/LocalVirtualMachine.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.*;
-
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-/**
- * Wrapper around the external process that is running a local VM.
- * This allows to kill this process when we exit this vm.
- */
-public class LocalVirtualMachine {
-	protected Process process;
-	protected int debugPort;
-	protected String evalTargetPath;
-/**
- * Creates a new LocalVirtualMachine that doesn't run and that cannot be debugged nor used to
- * evaluate.
- */
-public LocalVirtualMachine() {
-	this.process = null;
-	this.debugPort = -1;
-	this.evalTargetPath = null;
-}
-/**
- * Creates a new LocalVirtualMachine from the Process that runs this VM
- * and with the given debug port number.
- */
-public LocalVirtualMachine(Process p, int debugPort, String evalTargetPath) {
-	this.process = p;
-	this.debugPort = debugPort;
-	this.evalTargetPath = evalTargetPath;
-}
-/**
- * Destroys the process running this VM.
- */
-protected void basicShutDown() {
-	if ((this.process != null) && this.isRunning()) {
-		this.process.destroy();
-	}
-}
-/*
- * Cleans up the given directory by removing all the files it contains as well
- * but leaving the directory.
- * @throws TargetException if the target path could not be cleaned up
- *
-private void cleanupDirectory(File directory) throws TargetException {
-	if (!directory.exists()) {
-		return;
-	}
-	String[] fileNames = directory.list();
-	for (int i = 0; i < fileNames.length; i++) {
-		File file = new File(directory, fileNames[i]);
-		if (file.isDirectory()) {
-			cleanupDirectory(file);
-			if (!file.delete()) {
-				throw new TargetException("Could not delete directory " + directory.getPath());
-			}
-		} else {
-			if (!file.delete()) {
-				throw new TargetException("Could not delete file " + file.getPath());
-			}
-		}
-	}
-}
-*/
-/**
- * Cleans up this context's target path by removing all the files it contains
- * but leaving the directory.
- * @throws TargetException if the target path could not be cleaned up
- */
-protected void cleanupTargetPath() throws TargetException {
-	if (this.evalTargetPath == null) return;
-	String targetPath = this.evalTargetPath;
-	if (LocalVMLauncher.TARGET_HAS_FILE_SYSTEM) {
-		Util.delete(new File(targetPath, LocalVMLauncher.REGULAR_CLASSPATH_DIRECTORY));
-		Util.delete(new File(targetPath, LocalVMLauncher.BOOT_CLASSPATH_DIRECTORY));
-		File file = new File(targetPath, RuntimeConstants.SUPPORT_ZIP_FILE_NAME);
-
-		/* workaround pb with Process.exitValue() that returns the process has exited, but it has not free the file yet
-		int count = 10;
-		for (int i = 0; i < count; i++) {
-			if (file.delete()) {
-				break;
-			}
-			try {
-				Thread.sleep(count * 100);
-			} catch (InterruptedException e) {
-			}
-		}
-		*/
-		if (!Util.delete(file)) {
-			throw new TargetException("Could not delete " + file.getPath());
-		}
-	} else {
-		Util.delete(targetPath);
-	}
-}
-/**
- * Returns the debug port number for this VM. This is the port number that was
- * passed as the "-debug" option if this VM was launched using a <code>LocalVMLauncher</code>.
- * Returns -1 if this information is not available or if this VM is not running in
- * debug mode.
- */
-public int getDebugPortNumber() {
-	return this.debugPort;
-}
-/**
- * Returns an input stream that is connected to the standard error 
- * (<code>System.err</code>) of this target VM.
- * Bytes that are written to <code>System.err</code> by the target
- * program become available in the input stream.
- * <p>
- * Note 1: This stream is usually unbuffered.
- * <p>
- * Note 2: Two calls to this method return the same identical input stream.
- * <p>
- * See also <code>java.lang.Process.getErrorStream()</code>.
- * 
- * @return an input stream connected to the target VM's <code>System.err</code>.
- * @exception TargetException if the target VM is not reachable.
- */
-public InputStream getErrorStream() throws TargetException {
-	if (this.process == null)
-		throw new TargetException("The VM is not running");
-	return this.process.getErrorStream();
-}
-/** 
- * Returns an input stream that is connected to the standard output 
- * (<code>System.out</code>) of this target VM.
- * Bytes that are written to <code>System.out</code> by the target
- * program become available in the input stream.
- * <p>
- * Note 1: This stream is usually buffered.
- * <p>
- * Note 2: Two calls to this method return the same identical input stream.
- * <p>
- * See also <code>java.lang.Process.getInputStream()</code>.
- *
- * @return an input stream connected to the target VM's <code>System.out</code>.
- * @exception TargetException if the target VM is not reachable.
- */
-public InputStream getInputStream() throws TargetException {
-	if (this.process == null)
-		throw new TargetException("The VM is not running");
-	// Workaround problem with input stream of a Process
-	return new VMInputStream(this.process, this.process.getInputStream());
-}
-/**
- * Returns an output stream that is connected to the standard input 
- * (<code>System.in</code>) of this target VM.
- * Bytes that are written to the output stream by a client become available to the target 
- * program in <code>System.in</code>.
- * <p>
- * Note 1: This stream is usually buffered.
- * <p>
- * Note 2: Two calls to this method return the same identical output stream.
- * <p>
- * See also <code>java.lang.Process.getOutputStream()</code>.
- *
- * @return an output stream connected to the target VM's <code>System.in</code>.
- * @exception TargetException if the target VM is not reachable.
- */
-public OutputStream getOutputStream() throws TargetException {
-	if (this.process == null)
-		throw new TargetException("The VM is not running");
-	return this.process.getOutputStream();
-}
-/**
- * Returns whether this target VM is still running.
- * <p>
- * Note: This operation may require contacting the target VM to find out 
- *       if it is still running.
- */
-public boolean isRunning() {
-	if (this.process == null) {
-		return false;
-	}
-	boolean hasExited;
-	try {
-		this.process.exitValue();
-		hasExited = true;
-	} catch (IllegalThreadStateException e) {
-		hasExited = false;
-	}
-	return !hasExited;
-}
-/**
- * Shuts down this target VM. 
- * This causes the VM to exit. This operation is ignored
- * if the VM has already shut down.
- *
- * @exception TargetException if the target VM could not be shut down.
- */
-public void shutDown()  throws TargetException {
-	this.basicShutDown();
-	int retry = 0;
-	while (this.isRunning() && (++retry < 20)) {
-		try {
-			Thread.sleep(retry * 100);
-		} catch (InterruptedException e) {
-		}
-	}
-	if (this.isRunning()) { // give up cleaning the target path if VM is still running
-		throw new TargetException("Could not shut the VM down");
-	}
-	this.cleanupTargetPath();
-}
-/**
- * Waits for the VM to shut down. This method returns 
- * immediately if the VM has already shut down. If the
- * VM has not yet shut down, the calling thread will be
- * blocked until the VM shuts down.
- *
- * @exception  InterruptedException  if the <code>waitForTermination</code> was
- *               interrupted.
- */
-public void waitForTermination() throws InterruptedException {
-	if (this.process == null) return;
-	this.process.waitFor();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/MacVMLauncher.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/MacVMLauncher.java
deleted file mode 100644
index 810127c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/MacVMLauncher.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.File;
-import java.util.Vector;
-/**
- * This is a new vm launcher to support sidecar settings
- */
-public class MacVMLauncher extends StandardVMLauncher {
-/**
- * @see LocalVMLauncher#getCommandLine
- */
-public String[] getCommandLine() {	
-	Vector commandLine= new Vector();
-	
-	// VM binary
-	commandLine.addElement(
-		this.vmPath + 
-		(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-		"bin" + 
-		File.separator + 
-		"java");
-
-	// VM arguments
-	if (this.vmArguments != null) {
-		for (int i = 0; i < this.vmArguments.length; i++) {
-			commandLine.addElement(this.vmArguments[i]);
-		}
-	}
-
-	// boot classpath
-	commandLine.addElement("-Xbootclasspath/a:" + buildBootClassPath());
-
-	// debug mode
-	if (this.debugPort != -1) {
-		commandLine.addElement("-Xdebug");
-		commandLine.addElement("-Xnoagent");
-		// commandLine.addElement("-Djava.compiler=NONE");
-		commandLine.addElement(
-			"-Xrunjdwp:transport=dt_socket,address=" +
-			this.debugPort +
-			",server=y,suspend=n");
-	} else {
-		commandLine.addElement("-Xdebug");
-	}
-
-	// regular classpath
-	commandLine.addElement("-classpath");
-	commandLine.addElement(buildClassPath());
-
-	// code snippet runner class
-	if (this.evalPort != -1) {
-		commandLine.addElement(CODE_SNIPPET_RUNNER_CLASS_NAME);
-	}
-	
-	// code snippet runner arguments
-	if (this.evalPort != -1) {
-		commandLine.addElement(EVALPORT_ARG);
-		commandLine.addElement(Integer.toString(this.evalPort));
-		if (TARGET_HAS_FILE_SYSTEM) {
-			commandLine.addElement(CODESNIPPET_CLASSPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + REGULAR_CLASSPATH_DIRECTORY);
-			commandLine.addElement(CODESNIPPET_BOOTPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + BOOT_CLASSPATH_DIRECTORY);
-		}
-	}
-
-	// program class
-	if (this.programClass != null) {
-		commandLine.addElement(this.programClass);
-	}
-	
-	// program arguments
-	if (this.programArguments != null) {
-		for (int i=0;i<this.programArguments.length;i++) {
-			commandLine.addElement(this.programArguments[i]);
-		}
-	}
-
-	String[] result;
-	if (this.batchFileName!= null) {
-		// Write to batch file if specified
-		writeBatchFile(this.batchFileName, commandLine);
-		result = new String[] {this.batchFileName};
-	} else {
-		result = new String[commandLine.size()];
-		commandLine.copyInto(result);
-	}
-
-	// check for spaces in result
-	for (int i = 0; i < result.length; i++) {
-		String argument = result[i];
-		if (argument.indexOf(' ') != -1) {
-			result[i] = "\"" + argument + "\"";
-		}
-	}
-	
-	return result;
-}
-
-/**
- * Builds the actual boot class path that is going to be passed to the VM.
- */
-protected String buildBootClassPath() {
-	StringBuffer bootPathString = new StringBuffer();
-	char pathSeparator = File.pathSeparatorChar;
-	
-	if (this.bootPath != null) {
-		// Add boot class path given by client
-		int length = this.bootPath.length;
-		for (int i = 0; i < length; i++){
-			bootPathString.append(this.bootPath[i]);
-			bootPathString.append(pathSeparator);
-		}
-	}
-		
-	// Add boot class path directory if needed
-	if (this.evalTargetPath != null && TARGET_HAS_FILE_SYSTEM) {
-		bootPathString.append(this.evalTargetPath);
-		bootPathString.append(File.separatorChar);
-		bootPathString.append(BOOT_CLASSPATH_DIRECTORY);
-	}
-
-	return bootPathString.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/NullConsoleReader.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/NullConsoleReader.java
deleted file mode 100644
index 9c4dae7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/NullConsoleReader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.InputStream;
-
-/**
- * A null console reader that continuously reads from the VM input stream
- * so that the VM doesn't block when the program writes to the stout.
- */
-
-public class NullConsoleReader extends AbstractReader {
-	private InputStream input;
-/*
- * Creates a new console reader that will read from the given input stream.
- */
-public NullConsoleReader(String name, InputStream input) {
-	super(name);
-	this.input = input;
-}
-/**
- * Continuously reads events that are coming from the event queue.
- */
-protected void readerLoop() {
-	java.io.BufferedReader bufferedInput = new java.io.BufferedReader(new java.io.InputStreamReader(this.input));
-	try {
-		int read= 0;
-		while (!this.isStopping && read != -1) {
-			read= bufferedInput.read();
-		}
-	} catch (java.io.IOException e) {
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/ProxyConsoleReader.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/ProxyConsoleReader.java
deleted file mode 100644
index 0f105b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/ProxyConsoleReader.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.*;
-
-/**
- * A <code>ProxyConsoleReader</code> reads the ouput from the proxy and
- * redirects it to a file or to the stdout if "con" is the name of the file.
- */
-class ProxyConsoleReader extends AbstractReader {
-	private InputStream input;
-	private OutputStream output;
-/*
- * Creates a new proxy console reader that will read from the given input stream
- * and rewrite what's read to the given file (or the stdout is the file name is
- * "con")
- */
-public ProxyConsoleReader(String name, InputStream input, String fileName) {
-	super(name);
-	this.input = input;
-	if (fileName.equals("con")) {
-		this.output= System.out;
-	} else {
-		try {
-			this.output= new FileOutputStream(fileName);
-		} catch (IOException e) {
-			System.out.println("Could not create file " + fileName + ". Redirecting to stdout");
-			this.output= System.out;
-		}
-	}
-}
-/**
- * Continuously reads from the proxy output and redirect what's read to
- * this reader's file.
- */
-protected void readerLoop() {
-	try {
-		byte[] buffer= new byte[1024];
-		int read= 0;
-		while (!this.isStopping && read != -1) {
-			read= this.input.read(buffer);
-			if (read != -1)
-				this.output.write(buffer, 0, read);
-		}
-	} catch (java.io.IOException e) {
-	}
-}
-/**
- * Stop this reader
- */
-public void stop() {
-	super.stop();
-	try {
-		if (this.output != System.out)
-			this.output.close();
-	} catch (IOException e) {
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/RuntimeConstants.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/RuntimeConstants.java
deleted file mode 100644
index dc17a5a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/RuntimeConstants.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-public interface RuntimeConstants {
-	public static final String SUPPORT_ZIP_FILE_NAME = "EvalTestsTarget.zip";
-	public static final String CODE_SNIPPET_RUNNER_CLASS_NAME = "org.eclipse.wst.jsdt.core.tests.eval.target.CodeSnippetRunner";
-	public static final String RUN_CODE_SNIPPET_METHOD = "runCodeSnippet";
-	public static final String THE_RUNNER_FIELD = "theRunner";
-	public static final String EVALPORT_ARG = "-evalport";
-	public static final String CODESNIPPET_CLASSPATH_ARG = "-cscp";
-	public static final String CODESNIPPET_BOOTPATH_ARG = "-csbp";
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/SideCarJ9VMLauncher.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/SideCarJ9VMLauncher.java
deleted file mode 100644
index 7c369db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/SideCarJ9VMLauncher.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.File;
-import java.util.Vector;
-/**
- * This is a new vm launcher to support sidecar settings
- */
-public class SideCarJ9VMLauncher extends StandardVMLauncher {
-/**
- * @see LocalVMLauncher#getCommandLine
- */
-public String[] getCommandLine() {	
-	Vector commandLine= new Vector();
-	
-	// VM binary
-	commandLine.addElement(
-		this.vmPath + 
-		(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-		"bin" + 
-		File.separator + 
-		"javaw");
-
-	// VM arguments
-	if (this.vmArguments != null) {
-		for (int i = 0; i < this.vmArguments.length; i++) {
-			commandLine.addElement(this.vmArguments[i]);
-		}
-	}
-
-	// boot classpath
-	commandLine.addElement("-Xbootclasspath/a:" + buildBootClassPath());
-
-	// debug mode
-	if (this.debugPort != -1) {
-		commandLine.addElement("-Xdebug");
-		commandLine.addElement("-Xnoagent");
-		// commandLine.addElement("-Djava.compiler=NONE");
-		commandLine.addElement(
-			"-Xrunjdwp:transport=dt_socket,address=" +
-			this.debugPort +
-			",server=y,suspend=n");
-	} else {
-		commandLine.addElement("-Xdebug");
-	}
-
-	commandLine.addElement("-Xj9");
-	commandLine.addElement("-Xprod");
-
-	// regular classpath
-	commandLine.addElement("-classpath");
-	commandLine.addElement(buildClassPath());
-
-	// code snippet runner class
-	if (this.evalPort != -1) {
-		commandLine.addElement(CODE_SNIPPET_RUNNER_CLASS_NAME);
-	}
-	
-	// code snippet runner arguments
-	if (this.evalPort != -1) {
-		commandLine.addElement(EVALPORT_ARG);
-		commandLine.addElement(Integer.toString(this.evalPort));
-		if (TARGET_HAS_FILE_SYSTEM) {
-			commandLine.addElement(CODESNIPPET_CLASSPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + REGULAR_CLASSPATH_DIRECTORY);
-			commandLine.addElement(CODESNIPPET_BOOTPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + BOOT_CLASSPATH_DIRECTORY);
-		}
-	}
-
-	// program class
-	if (this.programClass != null) {
-		commandLine.addElement(this.programClass);
-	}
-	
-	// program arguments
-	if (this.programArguments != null) {
-		for (int i=0;i<this.programArguments.length;i++) {
-			commandLine.addElement(this.programArguments[i]);
-		}
-	}
-
-	String[] result;
-	if (this.batchFileName!= null) {
-		// Write to batch file if specified
-		writeBatchFile(this.batchFileName, commandLine);
-		result = new String[] {this.batchFileName};
-	} else {
-		result = new String[commandLine.size()];
-		commandLine.copyInto(result);
-	}
-
-	// check for spaces in result
-	for (int i = 0; i < result.length; i++) {
-		String argument = result[i];
-		if (argument.indexOf(' ') != -1) {
-			result[i] = "\"" + argument + "\"";
-		}
-	}
-	
-	return result;
-}
-
-/**
- * Builds the actual boot class path that is going to be passed to the VM.
- */
-protected String buildBootClassPath() {
-	StringBuffer bootPathString = new StringBuffer();
-	char pathSeparator = File.pathSeparatorChar;
-	
-	if (this.bootPath != null) {
-		// Add boot class path given by client
-		int length = this.bootPath.length;
-		for (int i = 0; i < length; i++){
-			bootPathString.append(this.bootPath[i]);
-			bootPathString.append(pathSeparator);
-		}
-	}
-		
-	// Add boot class path directory if needed
-	if (this.evalTargetPath != null && TARGET_HAS_FILE_SYSTEM) {
-		bootPathString.append(this.evalTargetPath);
-		bootPathString.append(File.separatorChar);
-		bootPathString.append(BOOT_CLASSPATH_DIRECTORY);
-	}
-
-	return bootPathString.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/SideCarVMLauncher.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/SideCarVMLauncher.java
deleted file mode 100644
index 29913ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/SideCarVMLauncher.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.File;
-import java.util.Vector;
-/**
- * This is a new vm launcher to support sidecar settings
- */
-public class SideCarVMLauncher extends StandardVMLauncher {
-/**
- * @see LocalVMLauncher#getCommandLine
- */
-public String[] getCommandLine() {	
-	Vector commandLine= new Vector();
-	
-	// VM binary
-	commandLine.addElement(
-		this.vmPath + 
-		(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-		"bin" + 
-		File.separator + 
-		"javaw");
-
-	// VM arguments
-	if (this.vmArguments != null) {
-		for (int i = 0; i < this.vmArguments.length; i++) {
-			commandLine.addElement(this.vmArguments[i]);
-		}
-	}
-
-	// boot classpath
-	commandLine.addElement("-Xbootclasspath/a:" + buildBootClassPath());
-
-	// debug mode
-	if (this.debugPort != -1) {
-		commandLine.addElement("-Xdebug");
-		commandLine.addElement("-Xnoagent");
-		// commandLine.addElement("-Djava.compiler=NONE");
-		commandLine.addElement(
-			"-Xrunjdwp:transport=dt_socket,address=" +
-			this.debugPort +
-			",server=y,suspend=n");
-	}
-	
-	// regular classpath
-	commandLine.addElement("-classpath");
-	commandLine.addElement(buildClassPath());
-
-	// code snippet runner class
-	if (this.evalPort != -1) {
-		commandLine.addElement(CODE_SNIPPET_RUNNER_CLASS_NAME);
-	}
-	
-	// code snippet runner arguments
-	if (this.evalPort != -1) {
-		commandLine.addElement(EVALPORT_ARG);
-		commandLine.addElement(Integer.toString(this.evalPort));
-		if (TARGET_HAS_FILE_SYSTEM) {
-			commandLine.addElement(CODESNIPPET_CLASSPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + REGULAR_CLASSPATH_DIRECTORY);
-			commandLine.addElement(CODESNIPPET_BOOTPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + BOOT_CLASSPATH_DIRECTORY);
-		}
-	}
-
-	// program class
-	if (this.programClass != null) {
-		commandLine.addElement(this.programClass);
-	}
-	
-	// program arguments
-	if (this.programArguments != null) {
-		for (int i=0;i<this.programArguments.length;i++) {
-			commandLine.addElement(this.programArguments[i]);
-		}
-	}
-
-	String[] result;
-	if (this.batchFileName!= null) {
-		// Write to batch file if specified
-		writeBatchFile(this.batchFileName, commandLine);
-		result = new String[] {this.batchFileName};
-	} else {
-		result = new String[commandLine.size()];
-		commandLine.copyInto(result);
-	}
-
-	// check for spaces in result
-	for (int i = 0; i < result.length; i++) {
-		String argument = result[i];
-		if (argument.indexOf(' ') != -1) {
-			result[i] = "\"" + argument + "\"";
-		}
-	}
-	
-	return result;
-}
-
-/**
- * Builds the actual boot class path that is going to be passed to the VM.
- */
-protected String buildBootClassPath() {
-	StringBuffer bootPathString = new StringBuffer();
-	char pathSeparator = File.pathSeparatorChar;
-	
-	if (this.bootPath != null) {
-		// Add boot class path given by client
-		int length = this.bootPath.length;
-		for (int i = 0; i < length; i++){
-			bootPathString.append(this.bootPath[i]);
-			bootPathString.append(pathSeparator);
-		}
-	}
-		
-	// Add boot class path directory if needed
-	if (this.evalTargetPath != null && TARGET_HAS_FILE_SYSTEM) {
-		bootPathString.append(this.evalTargetPath);
-		bootPathString.append(File.separatorChar);
-		bootPathString.append(BOOT_CLASSPATH_DIRECTORY);
-	}
-
-	return bootPathString.toString();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/StandardVMLauncher.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/StandardVMLauncher.java
deleted file mode 100644
index 0b430da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/StandardVMLauncher.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-
-import java.io.*;
-
-import java.util.Vector;
-import java.util.Enumeration;
-
-/**
- * A standard VM launcher launches an external standard VM with
- * the given arguments on the same machine.
- */
-public class StandardVMLauncher extends LocalVMLauncher implements RuntimeConstants {
-	String batchFileName;
-/**
- * Creates a new StandardVMLauncher that launches a standard VM
- * on the same machine.
- */
-public StandardVMLauncher() {
-	super();
-}
-/**
- * Builds the actual boot class path that is going to be passed to the VM.
- */
-protected String buildBootClassPath() {
-	StringBuffer bootPathString = new StringBuffer();
-	char pathSeparator = File.pathSeparatorChar;
-	
-	if (this.bootPath != null) {
-		// Add boot class path given by client
-		int length = this.bootPath.length;
-		for (int i = 0; i < length; i++){
-			bootPathString.append(this.bootPath[i]);
-			bootPathString.append(pathSeparator);
-		}
-	} else {
-		// Add regular rt.jar
-		bootPathString.append(this.vmPath);
-		bootPathString.append(File.separator);
-		if (!(this.vmPath.toLowerCase().endsWith("jre") || this.vmPath.toLowerCase().endsWith("jre" + File.separator))) {
-			bootPathString.append("jre");
-			bootPathString.append(File.separator);
-		}
-		bootPathString.append("lib");
-		bootPathString.append(File.separator);
-		bootPathString.append("rt.jar");
-		bootPathString.append(pathSeparator);
-	}
-	
-	// Add boot class path directory if needed
-	if (this.evalTargetPath != null && TARGET_HAS_FILE_SYSTEM) {
-		bootPathString.append(this.evalTargetPath);
-		bootPathString.append(File.separatorChar);
-		bootPathString.append(BOOT_CLASSPATH_DIRECTORY);
-	}
-
-	return bootPathString.toString();
-}
-/**
- * Returns the name of the batch file used to launch the VM.
- */
-public String getBatchFileName() {
-	return this.batchFileName;
-}
-/**
- * @see LocalVMLauncher#getCommandLine
- */
-public String[] getCommandLine() {	
-	Vector commandLine= new Vector();
-	
-	// VM binary
-	if (System.getProperty("java.vm.version").startsWith("1.4.2")) {
-		commandLine.addElement(
-			this.vmPath + 
-			(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-			"bin" + 
-			File.separator + 
-			"java");
-	} else {
-		String vmLocation = this.vmPath + 
-			(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-			"bin" + 
-			File.separator + 
-			"javaw";
-		final String osName = System.getProperty("os.name");
-		if (osName.indexOf("win32") != -1) {
-			vmLocation += ".exe";
-		}
-		if (!new File(vmLocation).exists()) {
-			vmLocation = 
-				this.vmPath + 
-				(this.vmPath.endsWith(File.separator) ? "" : File.separator) + 
-				"bin" + 
-				File.separator + 
-				"java";
-		}
-		commandLine.addElement(vmLocation);
-	}
-
-	// VM arguments
-	if (this.vmArguments != null) {
-		for (int i = 0; i < this.vmArguments.length; i++) {
-			commandLine.addElement(this.vmArguments[i]);
-		}
-	}
-
-	String vmVersion = System.getProperty("java.vm.version");
-	if (vmVersion != null && vmVersion.startsWith("1.6")) {
-		commandLine.addElement("-XX:-FailOverToOldVerifier");
-		commandLine.addElement("-Xverify:all");
-	}
-
-	// debug mode
-	if (this.debugPort != -1) {
-		commandLine.addElement("-Xdebug");
-		commandLine.addElement("-Xnoagent");
-		// commandLine.addElement("-Djava.compiler=NONE");
-		commandLine.addElement(
-			"-Xrunjdwp:transport=dt_socket,address=" +
-			this.debugPort +
-			",server=y,suspend=n");
-	}
-
-	// boot classpath
-	commandLine.addElement("-Xbootclasspath:" + buildBootClassPath());
-
-	// regular classpath
-	commandLine.addElement("-classpath");
-	commandLine.addElement(buildClassPath());
-
-	// code snippet runner class
-	if (this.evalPort != -1) {
-		commandLine.addElement(CODE_SNIPPET_RUNNER_CLASS_NAME);
-	}
-	
-	// code snippet runner arguments
-	if (this.evalPort != -1) {
-		commandLine.addElement(EVALPORT_ARG);
-		commandLine.addElement(Integer.toString(this.evalPort));
-		if (TARGET_HAS_FILE_SYSTEM) {
-			commandLine.addElement(CODESNIPPET_CLASSPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + REGULAR_CLASSPATH_DIRECTORY);
-			commandLine.addElement(CODESNIPPET_BOOTPATH_ARG);
-			commandLine.addElement(this.evalTargetPath + File.separator + BOOT_CLASSPATH_DIRECTORY);
-		}
-	}
-
-	// program class
-	if (this.programClass != null) {
-		commandLine.addElement(this.programClass);
-	}
-	
-	// program arguments
-	if (this.programArguments != null) {
-		for (int i=0;i<this.programArguments.length;i++) {
-			commandLine.addElement(this.programArguments[i]);
-		}
-	}
-
-	String[] result;
-	if (this.batchFileName!= null) {
-		// Write to batch file if specified
-		writeBatchFile(this.batchFileName, commandLine);
-		result = new String[] {this.batchFileName};
-	} else {
-		result = new String[commandLine.size()];
-		commandLine.copyInto(result);
-	}
-
-	// check for spaces in result
-	for (int i = 0; i < result.length; i++) {
-		String argument = result[i];
-		if (argument.indexOf(' ') != -1) {
-			result[i] = "\"" + argument + "\"";
-		}
-	}
-	
-	return result;
-}
-/**
- * Sets the name of the batch file used to launch the VM.
- * When this option is set, the launcher writes the command line to the given batch file, 
- * and it launches the  batch file. This causes a DOS console to be opened. Note it 
- * doesn't delete the batch file when done.
- */
-public void setBatchFileName(String batchFileName) {
-	this.batchFileName = batchFileName;
-}
-protected void writeBatchFile(String fileName, Vector commandLine) {
-	FileOutputStream output = null;
-	try {
-		output = new FileOutputStream(fileName);
-		PrintWriter out= new PrintWriter(output);
-		for (Enumeration e = commandLine.elements(); e.hasMoreElements();) {
-			out.print((String)e.nextElement());
-			out.print(" ");
-		}
-		out.println("pause");
-		out.close();
-	} catch (IOException e) {
-		e.printStackTrace();
-		if (output != null) {
-			try {
-				output.close();
-			} catch (IOException e2) {
-				// ignore
-			}
-		}
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/TargetException.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/TargetException.java
deleted file mode 100644
index c78bdd3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/TargetException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-/**
- * A TargetException is thrown when an operation on a target has failed
- * for any reason.
- */
-public class TargetException extends Exception {
-private static final long serialVersionUID = 1L;
-/**
- * Constructs a <code>TargetException</code> with no detail  message.
- */
-public TargetException() {
-	super();
-}
-/**
- * Constructs a <code>TargetException</code> with the specified 
- * detail message. 
- *
- * @param   s   the detail message.
- */
-public TargetException(String s) {
-	super(s);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/TargetInterface.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/TargetInterface.java
deleted file mode 100644
index a4208b9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/TargetInterface.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.net.Socket;
-import java.net.UnknownHostException;
-/**
- * This is the interface to the target VM. It connects to an IDEInterface on the target side 
- * using TCP/IO to send request for code snippet evaluation and to get the result back.
- *
- * @see org.eclipse.wst.jsdt.core.tests.eval.target.IDEInterface for details about the protocol.
- */
-public class TargetInterface {
-	/**
-	 * Whether class files should be written in d:\eval\ instead of sending them to the target
-	 * NB: d:\eval should contain a batch file TestCodeSnippet.bat with the following contents:
-	 *		SET JDK=c:\jdk1.2.2
-	 *		SET EVAL=d:\eval
-	 *		%JDK%\bin\java -Xbootclasspath:%JDK%\jre\lib\rt.jar;%EVAL%\javaClasses; -classpath c:\temp;%EVAL%\snippets;%EVAL%\classes;"d:\ide\project_resources\Eclipse Java Evaluation\CodeSnippetSupport.jar" CodeSnippetTester %1
-	 */
-	static final boolean DEBUG = false;
-	String codeSnippetClassName;
-
-	/**
-	 * Whether timing info should be printed to stdout
-	 */
-	static final boolean TIMING = false;
-	long sentTime;
-	
-	/**
-	 * The connection to the target's ide interface.
-	 */
-	Socket socket;
-
-	public class Result {
-		public char[] displayString;
-		public char[] typeName;
-	}
-
-/**
- * (PRIVATE API)
- * Connects this interface to the target.
- * Try as long as the given time (in ms) has not expired.
- * Use isConnected() to find out if the connection was successful.
- */
-public void connect(String targetAddress, int portNumber, int timeout) {
-	if (isConnected()) {
-		return;
-	}
-	if (portNumber > 0) {
-		long startTime = System.currentTimeMillis();
-		do {
-			try {
-				this.socket = new Socket(targetAddress, portNumber);
-				this.socket.setTcpNoDelay(true);
-				break;
-			} catch (UnknownHostException e) {
-			} catch (IOException e) {
-			}
-			if (this.socket == null) {
-				try {
-					Thread.sleep(100);
-				} catch (InterruptedException e) {
-				}
-			}
-		} while (!isConnected() && (System.currentTimeMillis() - startTime) < timeout);
-	}
-}
-/**
- * (PRIVATE API)
- * Disconnects this interface from the target. 
- */
-public void disconnect() {
-	if (this.socket != null) {
-		try {
-			this.socket.close();
-		} catch (IOException e) {
-			// Already closed. Nothing more to do
-		}
-		this.socket = null;
-	}
-}
-/**
- * Returns the result of the evaluation sent previously to the target. 
- */
-public Result getResult() {
-	boolean hasValue = false;
-	String typeName = null;
-	String toString = null;
-	if (DEBUG) {
-		hasValue = true;
-		typeName = "TargetInterface in debug mode. Run d:\\eval\\TestCodeSnippet.bat d:\\eval\\snippets\\" + codeSnippetClassName;
-		toString = "";
-	} else {
-		if (this.isConnected()) {
-			// TBD: Read type name and toString as a character array
-			try {
-				DataInputStream in = new DataInputStream(this.socket.getInputStream());
-				hasValue = in.readBoolean();
-				if (hasValue) {
-					typeName = in.readUTF();
-					toString = in.readUTF();
-				} else {
-					typeName = null;
-					toString = null;
-				}
-			} catch (IOException e) {
-				// The socket has likely been closed on the other end. So the code snippet runner has stopped.
-				hasValue = true;
-				typeName = e.getMessage();
-				toString = "";
-				this.disconnect();
-			}
-		} else {
-			hasValue = true;
-			typeName = "Connection has been lost";
-			toString = "";
-		}
-	}
-	if (TIMING) {
-		System.out.println("Time to send compiled classes, run on target and get result is " + (System.currentTimeMillis() - this.sentTime) + "ms");
-	}
-	Result result = new Result();
-	result.displayString = toString == null ? null : toString.toCharArray();
-	result.typeName = typeName == null ? null : typeName.toCharArray();
-	return result;
-}
-/**
- * Returns whether this interface is connected to the target.
- */
-boolean isConnected() {
-	return this.socket != null;
-}
-/**
- * Sends the given class definitions to the target for loading and (if specified) for running.
- */
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/VMInputStream.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/VMInputStream.java
deleted file mode 100644
index b86ea20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/runtime/VMInputStream.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.runtime;
-
-import java.io.*;
-
-/**
- * Workaround problem with input stream from a <code>java.lang.Process</code>
- * that throws an <code>IOException</code> even if there is something to read.
- */
-public class VMInputStream extends InputStream {
-	InputStream input;
-	Process process;
-public VMInputStream(Process process, InputStream input) {
-	this.process= process;
-	this.input= input;
-}
-public int available() throws IOException {
-	return this.input.available();
-}
-public void close() throws IOException {
-	this.input.close();
-}
-private boolean isRunning() {
-	if (this.process == null) {
-		return false;
-	}
-	boolean hasExited;
-	try {
-		this.process.exitValue();
-		hasExited = true;
-	} catch (IllegalThreadStateException e) {
-		hasExited = false;
-	}
-	return !hasExited;
-}
-public synchronized void mark(int readlimit) {
-	this.input.mark(readlimit);
-}
-public boolean markSupported() {
-	return this.input.markSupported();
-}
-public int read() throws IOException {
-	try {
-		return this.input.read();
-	} catch (IOException e) {
-		if (isRunning()) {
-			return read();
-		}
-		throw e;
-	}
-}
-public int read(byte b[]) throws IOException {
-	// Make sure the byte array is initialized (value of 0 is used in the workaround below)
-	for (int i=0;i<b.length;i++)
-		b[i]=0;
-		
-	int read;
-	try {
-		read = this.input.read(b);
-	} catch (IOException e) {
-		if (isRunning()) {
-			// Workaround problem with implementation of Process.getInputStream()
-			// (see PR 1PRW670: LFRE:WINNT - Program hangs running in LeapFrog)
-			read= 0;
-			while (read < b.length && b[read] != 0) {
-				read++;
-			}
-		} else
-			throw e;
-	}
-
-	return read;
-}
-public int read(byte b[], int off, int len) throws IOException {
-	// Make sure the byte array is initialized (value of 0 is used in the workaround below)
-	for (int i = off; i < len; i++)
-		b[i] = 0;
-
-	int read;
-	try {
-		read = this.input.read(b, off, len);
-	} catch (IOException e) {
-		if (isRunning()) {
-			// Workaround problem with implementation of Process.getInputStream()
-			// (see PR 1PRW670: LFRE:WINNT - Program hangs running in LeapFrog)
-			read = 0;
-			while (off + read < len && b[off + read] != 0) {
-				read++;
-			}
-		} else
-			throw e;
-	}
-	return read;
-}
-public synchronized void reset() throws IOException {
-	this.input.reset();
-}
-public long skip(long n) throws IOException {
-	return this.input.skip(n);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/AbstractCompilerTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/AbstractCompilerTest.java
deleted file mode 100644
index e9a0378..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/AbstractCompilerTest.java
+++ /dev/null
@@ -1,502 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.util;
-
-import java.io.File;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.RegressionTestSetup;
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class AbstractCompilerTest extends TestCase {
-
-	public static final String COMPLIANCE_1_3 = CompilerOptions.VERSION_1_3;
-	public static final String COMPLIANCE_1_4 = CompilerOptions.VERSION_1_4;
-	public static final String COMPLIANCE_1_5 = CompilerOptions.VERSION_1_5;
-	public static final String COMPLIANCE_1_6 = CompilerOptions.VERSION_1_6;
-	public static final String COMPLIANCE_1_7 = CompilerOptions.VERSION_1_7;
-
-	public static final int F_1_3 = 0x01;
-	public static final int F_1_4 = 0x02;
-	public static final int F_1_5 = 0x04;
-	public static final int F_1_6 = 0x08;
-	public static final int F_1_7 = 0x10;
-
-	protected static boolean RUN_JAVAC = CompilerOptions.ENABLED.equals(System.getProperty("run.javac"));
-	private static int possibleComplianceLevels = 
-		RUN_JAVAC ? F_1_5 : -1;
-	  // javac tests imply 1.5 compliance
-
-	protected String complianceLevel;
-
-	/**
-	 * Build a test suite made of test suites for all possible running VM compliances .
-	 * 
-	 * @see #buildUniqueComplianceTestSuite(Class, String) for test suite children content.
-	 * 
-	 * @param evaluationTestClass The main test suite to build.
-	 * @return built test suite (see {@link TestSuite}
-	 */
-	public static Test buildAllCompliancesTestSuite(Class evaluationTestClass) {
-		TestSuite suite = new TestSuite(evaluationTestClass.getName());
-		int complianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-		if ((complianceLevels & AbstractCompilerTest.F_1_3) != 0) {
-			suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_3));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_4) != 0) {
-			suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_4));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_5) != 0) {
-			suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_5));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_6) != 0) {
-			suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_6));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_7) != 0) {
-			suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_7));
-		}
-		return suite;
-	}
-
-	/**
-	 * Build a test suite made of test suites for all possible running VM compliances .
-	 * 
-	 * @see #buildComplianceTestSuite(List, Class, String) for test suite children content.
-	 * 
-	 * @param testSuiteClass The main test suite to build.
-	 * @param setupClass The compiler setup to class to use to bundle given tets suites tests.
-	 * @param testClasses The list of test suites to include in main test suite.
-	 * @return built test suite (see {@link TestSuite}
-	 */
-	public static Test buildAllCompliancesTestSuite(Class testSuiteClass, Class setupClass, List testClasses) {
-		TestSuite suite = new TestSuite(testSuiteClass.getName());
-		int complianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-		if ((complianceLevels & AbstractCompilerTest.F_1_3) != 0) {
-			suite.addTest(buildComplianceTestSuite(testClasses, setupClass, COMPLIANCE_1_3));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_4) != 0) {
-			suite.addTest(buildComplianceTestSuite(testClasses, setupClass, COMPLIANCE_1_4));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_5) != 0) {
-			suite.addTest(buildComplianceTestSuite(testClasses, setupClass, COMPLIANCE_1_5));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_6) != 0) {
-			suite.addTest(buildComplianceTestSuite(testClasses, setupClass, COMPLIANCE_1_6));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_7) != 0) {
-			suite.addTest(buildComplianceTestSuite(testClasses, setupClass, COMPLIANCE_1_7));
-		}
-		return suite;
-	}
-
-	/**
-	 * Build a test suite for a compliance and a list of test suites.
-	 * Returned test suite has only one child: {@link RegressionTestSetup} test suite.
-	 * Name of returned suite is the given compliance level.
-	 * 
-	 * @see #buildComplianceTestSuite(List, Class, String) for child test suite content.
-	 * 
-	 * @param complianceLevel The compliance level used for this test suite.
-	 * @param testClasses The list of test suites to include in main test suite.
-	 * @return built test suite (see {@link TestSuite}
-	 */
-	public static Test buildComplianceTestSuite(String complianceLevel, List testClasses) {
-		return buildComplianceTestSuite(testClasses, RegressionTestSetup.class, complianceLevel);
-	}
-
-	/**
-	 * Build a test suite for a compliance and a list of test suites.
-	 * Children of returned test suite are setup test suites (see {@link CompilerTestSetup}).
-	 * Name of returned suite is the given compliance level.
-	 * 
-	 * @param complianceLevel The compliance level used for this test suite.
-	 * @param testClasses The list of test suites to include in main test suite.
-	 * @return built test suite (see {@link TestSuite}
-	 */
-	private static Test buildComplianceTestSuite(List testClasses, Class setupClass, String complianceLevel) {
-		TestSuite complianceSuite = new TestSuite(complianceLevel);
-		for (int i=0, m=testClasses.size(); i<m ; i++) {
-			Class testClass = (Class)testClasses.get(i);
-			TestSuite suite = new TestSuite(testClass.getName());
-			List tests = buildTestsList(testClass);
-			for (int index=0, size=tests.size(); index<size; index++) {
-				suite.addTest((Test)tests.get(index));
-			}
-			complianceSuite.addTest(suite);
-		}
-	
-		// call the setup constructor with the suite and compliance level
-		try {
-			Constructor constructor = setupClass.getConstructor(new Class[]{Test.class, String.class});
-			Test setUp = (Test)constructor.newInstance(new Object[]{complianceSuite, complianceLevel});
-			return setUp;
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		} catch (InstantiationException e) {
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			e.getTargetException().printStackTrace();
-		} catch (NoSuchMethodException e) {
-			e.printStackTrace();
-		}
-	
-		return null;
-	}
-
-	/**
-	 * Build a regression test setup suite for a minimal compliance and a test suite to run.
-	 * Returned test suite has only one child: {@link RegressionTestSetup} test suite.
-	 * Name of returned suite is the name of given test suite class.
-	 * The test suite will be run iff the compliance is at least the specified one.
-	 * 
-	 * @param minimalCompliance The unqie compliance level used for this test suite.
-	 * @param evaluationTestClass The test suite to run.
-	 * @return built test suite (see {@link TestSuite}
-	 */
-	public static Test buildMinimalComplianceTestSuite(Class evaluationTestClass, int minimalCompliance) {
-		TestSuite suite = new TestSuite(evaluationTestClass.getName());
-		int complianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-		int level13 = complianceLevels & AbstractCompilerTest.F_1_3;
-		if (level13 != 0) {
-			if (level13 < minimalCompliance) {
-				System.err.println("Cannot run "+evaluationTestClass.getName()+" at compliance "+COMPLIANCE_1_3+"!");
-			} else {
-				suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_3));
-			}
-		}
-		int level14 = complianceLevels & AbstractCompilerTest.F_1_4;
-		if (level14 != 0) {
-			if (level14 < minimalCompliance) {
-				System.err.println("Cannot run "+evaluationTestClass.getName()+" at compliance "+COMPLIANCE_1_4+"!");
-			} else {
-				suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_4));
-			}
-		}
-		int level15 = complianceLevels & AbstractCompilerTest.F_1_5;
-		if (level15 != 0) {
-			if (level15 < minimalCompliance) {
-				System.err.println("Cannot run "+evaluationTestClass.getName()+" at compliance "+COMPLIANCE_1_5+"!");
-			} else {
-				suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_5));
-			}
-		}
-		int level16 = complianceLevels & AbstractCompilerTest.F_1_6;
-		if (level16 != 0) {
-			if (level16 < minimalCompliance) {
-				System.err.println("Cannot run "+evaluationTestClass.getName()+" at compliance "+COMPLIANCE_1_6+"!");
-			} else {
-				suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_6));
-			}
-		}
-		int level17 = complianceLevels & AbstractCompilerTest.F_1_7;
-		if (level17 != 0) {
-			if (level17 < minimalCompliance) {
-				System.err.println("Cannot run "+evaluationTestClass.getName()+" at compliance "+COMPLIANCE_1_7+"!");
-			} else {
-				suite.addTest(buildUniqueComplianceTestSuite(evaluationTestClass, AbstractCompilerTest.COMPLIANCE_1_7));
-			}
-		}
-		return suite;
-	}
-
-	/**
-	 * Build a regression test setup suite for a compliance and a test suite to run.
-	 * Returned test suite has only one child: {@link RegressionTestSetup} test suite.
-	 * Name of returned suite is the name of given test suite class.
-	 * 
-	 * @param uniqueCompliance The unqie compliance level used for this test suite.
-	 * @param evaluationTestClass The test suite to run.
-	 * @return built test suite (see {@link TestSuite}
-	 */
-	public static Test buildUniqueComplianceTestSuite(Class evaluationTestClass, String uniqueCompliance) {
-		String highestLevel = highestComplianceLevels();
-		if (highestLevel.compareTo(uniqueCompliance) < 0) {
-			System.err.println("Cannot run "+evaluationTestClass.getName()+" at compliance "+highestLevel+"!");
-			return new TestSuite();
-		}
-		TestSuite complianceSuite = new TestSuite(uniqueCompliance);
-		List tests = buildTestsList(evaluationTestClass);
-		for (int index=0, size=tests.size(); index<size; index++) {
-			complianceSuite.addTest((Test)tests.get(index));
-		}
-		TestSuite suite = new TestSuite(evaluationTestClass.getName());
-		suite.addTest(new RegressionTestSetup(complianceSuite, uniqueCompliance));
-		return suite;
-	}
-
-	/*
-	 * Returns the highest compliance level this VM instance can run.
-	 */
-	public static String highestComplianceLevels() {
-		int complianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-		if ((complianceLevels & AbstractCompilerTest.F_1_7) != 0) {
-			return COMPLIANCE_1_7;
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_6) != 0) {
-			return COMPLIANCE_1_6;
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_5) != 0) {
-			return COMPLIANCE_1_5;
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_4) != 0) {
-			return COMPLIANCE_1_4;
-		}
-		return COMPLIANCE_1_3;
-	}
-
-	/*
-	 * Returns the possible compliance levels this VM instance can run.
-	 */
-	public static int getPossibleComplianceLevels() {
-		if (possibleComplianceLevels == -1) {
-			String compliance = System.getProperty("compliance");
-			if (compliance != null) {
-				if (COMPLIANCE_1_3.equals(compliance)) {
-					possibleComplianceLevels = F_1_3;
-				} else if (COMPLIANCE_1_4.equals(compliance)) {
-					possibleComplianceLevels = F_1_4;
-				} else if (COMPLIANCE_1_5.equals(compliance)) {
-					possibleComplianceLevels = F_1_5;
-				} else if (COMPLIANCE_1_6.equals(compliance)) {
-					possibleComplianceLevels = F_1_6;
-				} else if (COMPLIANCE_1_7.equals(compliance)) {
-					possibleComplianceLevels = F_1_7;
-				} else {
-					System.out.println("Invalid compliance specified (" + compliance + ")");
-					System.out.print("Use one of ");
-					System.out.print(COMPLIANCE_1_3 + ", ");
-					System.out.print(COMPLIANCE_1_4 + ", ");
-					System.out.print(COMPLIANCE_1_5 + ", ");
-					System.out.print(COMPLIANCE_1_6 + ", ");
-					System.out.println(COMPLIANCE_1_7);
-					System.out.println("Defaulting to all possible compliances");
-				}
-			}
-			if (possibleComplianceLevels == -1) {
-				possibleComplianceLevels = F_1_3;
-				String specVersion = System.getProperty("java.specification.version");
-				boolean canRun1_4 = !"1.0".equals(specVersion)
-					&& !CompilerOptions.VERSION_1_1.equals(specVersion)
-					&& !CompilerOptions.VERSION_1_2.equals(specVersion)
-					&& !CompilerOptions.VERSION_1_3.equals(specVersion);
-				if (canRun1_4) {
-					possibleComplianceLevels |= F_1_4;
-				}
-				boolean canRun1_5 = canRun1_4 && !CompilerOptions.VERSION_1_4.equals(specVersion);
-				if (canRun1_5) {
-					possibleComplianceLevels |= F_1_5;
-				}
-				boolean canRun1_6 = canRun1_5 && !CompilerOptions.VERSION_1_5.equals(specVersion);
-				if (canRun1_6) {
-					possibleComplianceLevels |= F_1_6;
-				}
-				boolean canRun1_7 = canRun1_6 && !CompilerOptions.VERSION_1_6.equals(specVersion);
-				if (canRun1_7) {
-					possibleComplianceLevels |= F_1_7;
-				}
-			}
-		}
-		return possibleComplianceLevels;
-	}
-
-	/*
-	 * Returns a test suite including the tests defined by the given classes for all possible complianceLevels
-	 * and using the given setup class (CompilerTestSetup or a subclass)
-	 */
-	public static Test suite(String suiteName, Class setupClass, ArrayList testClasses) {
-		TestSuite all = new TestSuite(suiteName);
-		int complianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
-		if ((complianceLevels & AbstractCompilerTest.F_1_3) != 0) {
-			all.addTest(suiteForComplianceLevel(COMPLIANCE_1_3, setupClass, testClasses));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_4) != 0) {
-			all.addTest(suiteForComplianceLevel(COMPLIANCE_1_4, setupClass, testClasses));
-		}
-		if ((complianceLevels & AbstractCompilerTest.F_1_5) != 0) {
-			all.addTest(suiteForComplianceLevel(COMPLIANCE_1_5, setupClass, testClasses));
-		}
-		return all;
-	}
-
-	/*
-	 * Returns a test suite including the tests defined by the given classes for the given complianceLevel 
-	 * (see AbstractCompilerTest for valid values) and using the given setup class (CompilerTestSetup or a subclass)
-	 */
-	public static Test suiteForComplianceLevel(String complianceLevel, Class setupClass, ArrayList testClasses) {
-		TestSuite suite;
-		Class testClass;
-		if (testClasses.size() == 1) {
-			suite = new TestSuite(testClass = (Class)testClasses.get(0), complianceLevel);
-			TESTS_COUNTERS.put(testClass.getName(), new Integer(suite.countTestCases()));
-		} else {
-			suite = new TestSuite(complianceLevel);
-			for (int i = 0, length = testClasses.size(); i < length; i++) {
-				TestSuite innerSuite = new TestSuite(testClass = (Class)testClasses.get(i));
-				TESTS_COUNTERS.put(testClass.getName(), new Integer(innerSuite.countTestCases()));
-				suite.addTest(innerSuite);
-			}
-		}
-
-		// call the setup constructor with the suite and compliance level
-		try {
-			Constructor constructor = setupClass.getConstructor(new Class[]{Test.class, String.class});
-			Test setUp = (Test)constructor.newInstance(new Object[]{suite, complianceLevel});
-			return setUp;
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		} catch (InstantiationException e) {
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			e.getTargetException().printStackTrace();
-		} catch (NoSuchMethodException e) {
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-
-	public static Test setupSuite(Class clazz) {
-		ArrayList testClasses = new ArrayList();
-		testClasses.add(clazz);
-		return suite(clazz.getName(), RegressionTestSetup.class, testClasses);
-	}
-
-	public static Test buildTestSuite(Class evaluationTestClass) {
-		if (TESTS_PREFIX != null || TESTS_NAMES != null || TESTS_NUMBERS!=null || TESTS_RANGE !=null) {
-			return buildTestSuite(evaluationTestClass, highestComplianceLevels());
-		}
-		return setupSuite(evaluationTestClass);
-	}
-
-	public static Test buildTestSuite(Class evaluationTestClass, String complianceLevel) {
-		TestSuite suite = new TestSuite(complianceLevel);
-		List tests = buildTestsList(evaluationTestClass);
-		for (int index=0, size=tests.size(); index<size; index++) {
-			suite.addTest((Test)tests.get(index));
-		}
-		TestSuite test = new TestSuite(evaluationTestClass.getName());
-		test.addTest(new RegressionTestSetup(suite, complianceLevel));
-		String className = evaluationTestClass.getName();
-		Integer testsNb;
-		int newTestsNb = test.countTestCases();
-		if ((testsNb = (Integer) TESTS_COUNTERS.get(className)) != null)
-			newTestsNb += testsNb.intValue();
-		TESTS_COUNTERS.put(className, new Integer(newTestsNb));
-		return test;
-	}
-
-	
-	public static boolean isJRELevel(int compliance) {
-		return (AbstractCompilerTest.getPossibleComplianceLevels() & compliance) != 0;
-	}
-	
-	public AbstractCompilerTest(String name) {
-		super(name);
-	}
-
-	protected Map getCompilerOptions() {
-		Map options = new CompilerOptions().getMap();
-		options.put(CompilerOptions.OPTION_ReportUnusedLocal, CompilerOptions.IGNORE);
-		if (COMPLIANCE_1_3.equals(this.complianceLevel)) {
-			options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_3);
-			options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_3);
-			options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
-		} else if (COMPLIANCE_1_4.equals(this.complianceLevel)) {
-			options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_4);
-			options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
-			options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
-		} else if (COMPLIANCE_1_5.equals(this.complianceLevel)) {
-			options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-		} else if (COMPLIANCE_1_6.equals(this.complianceLevel)) {
-			options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_6);
-			options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6);
-			options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
-		} else if (COMPLIANCE_1_7.equals(this.complianceLevel)) {
-			options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_7);
-			options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_7);
-			options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_7);
-		}
-		return options;
-	}
-
-	public String getName() {
-		String name = super.getName();
-		if (this.complianceLevel != null) {
-			name = name + " - " + this.complianceLevel;
-		}
-		return name;
-	}
-
-	public void initialize(CompilerTestSetup setUp) {
-		this.complianceLevel = setUp.complianceLevel;
-	}
-
-	protected String testName() {
-		return super.getName();
-	}
-	
-	// Output files management
-	protected IPath outputRootDirectoryPath = new Path(Util.getOutputDirectory());
-	protected File outputTestDirectory;
-
-	/**
-	 * Create a test specific output directory as a subdirectory of 
-	 * outputRootDirectory, given a subdirectory path. The whole 
-	 * subtree is created as needed. outputTestDirectoryPath is 
-	 * modified according to the latest call to this method.
-	 * @param suffixPath a valid relative path for the subdirectory
-	 */
-	protected void createOutputTestDirectory(String suffixPath) {
-		this.outputTestDirectory =  new File(this.outputRootDirectoryPath.toFile(), suffixPath);
-		if (!this.outputTestDirectory.exists()) {
-			this.outputTestDirectory.mkdirs();
-		}
-	}
-	/*
-	 * Write given source test files in current output sub-directory.
-	 * Use test name for this sub-directory name (ie. test001, test002, etc...)
-	 */
-	protected void writeFiles(String[] testFiles) {
-		createOutputTestDirectory(testName());
-
-		// Write each given test file
-		for (int i = 0, length = testFiles.length; i < length; ) {
-			String fileName = testFiles[i++];
-			String contents = testFiles[i++];
-			File file = new File(this.outputTestDirectory, fileName);
-			if (fileName.lastIndexOf('/') >= 0) {
-				File dir = file.getParentFile();
-				if (!dir.exists()) {
-					dir.mkdirs();
-				}
-			}
-			Util.writeToFile(contents, file.getPath());
-		}
-	}
-	
-	// Summary display		
-	// Used by AbstractRegressionTest for javac comparison tests
-	protected static Map TESTS_COUNTERS = new HashMap();
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/CompilerTestSetup.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/CompilerTestSetup.java
deleted file mode 100644
index 7cd3971..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/CompilerTestSetup.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.util;
-
-import java.util.Enumeration;
-
-import junit.extensions.TestDecorator;
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-public class CompilerTestSetup extends TestDecorator {
-
-	String complianceLevel;
-
-	public CompilerTestSetup(Test test, String complianceLevel) {
-		super(test);
-		this.complianceLevel = complianceLevel;
-	}
-
-	protected void initTest(Object test) {
-		if (test instanceof AbstractCompilerTest) {
-			AbstractCompilerTest compilerTest = (AbstractCompilerTest)test;
-			compilerTest.initialize(this);
-			return;
-		}
-		if (test instanceof TestSuite) {
-			TestSuite testSuite = (TestSuite)test;
-			Enumeration evaluationTestClassTests = testSuite.tests();
-			while (evaluationTestClassTests.hasMoreElements()) {
-				initTest(evaluationTestClassTests.nextElement());
-			}
-			return;
-		}
-	}
-
-	public void run(TestResult result) {
-		try {
-			setUp();
-			super.run(result);
-		} finally {
-			tearDown();
-		}
-	}
-
-	protected void setUp() {
-		// Init wrapped suite
-		initTest(fTest);
-	}
-
-	protected void tearDown() {
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/TestVerifier.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/TestVerifier.java
deleted file mode 100644
index 86decab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/TestVerifier.java
+++ /dev/null
@@ -1,618 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.util;
-
-import org.eclipse.wst.jsdt.core.tests.runtime.*;
-import java.io.*;
-import java.net.*;
-/**
- * Verifies that the .class files resulting from a compilation can be loaded
- * in a VM and that they can be run.
- */
-public class TestVerifier {
-	public String failureReason;
-	
-	boolean reuseVM = true;
-	String[] classpathCache;
-	LocalVirtualMachine vm;
-	StringBuffer outputBuffer;
-	StringBuffer errorBuffer;
-	Socket socket;
-public TestVerifier(boolean reuseVM) {
-	this.reuseVM = reuseVM;
-}
-private boolean checkBuffers(String errorString, String outputString, String sourceFileName, String expectedSuccessOutputString) {
-
-	if (errorString.trim().length() > 0) {
-		this.failureReason =
-			"Unexpected target error running resulting class file for "
-				+ sourceFileName
-				+ ":\n"
-				+ errorString;
-		return false;
-	}
-	String platformIndependantOutputString = Util.convertToIndependantLineDelimiter(outputString.trim());
-	if (expectedSuccessOutputString != null && !Util.convertToIndependantLineDelimiter(expectedSuccessOutputString).equals(platformIndependantOutputString)) {
-		System.out.println(Util.displayString(platformIndependantOutputString, 2));
-		this.failureReason =
-			"Unexpected output running resulting class file for "
-				+ sourceFileName
-				+ ":\n"
-				+ "--[START]--\n"
-				+ outputString
-				+ "---[END]---\n";
-		return false;
-	}
-	
-	return true;
-}
-
-private boolean checkBuffersThrowingError(String errorString, String sourceFileName, String expectedSuccessOutputString) {
-
-	if (errorString.length() > 0 && errorString.indexOf(expectedSuccessOutputString) != -1) {
-		return true;
-	}
-	
-	this.failureReason =
-		"Expected error not thrown for "
-			+ sourceFileName
-			+ ":\n"
-			+ expectedSuccessOutputString;
-	return false;
-}
-
-private void compileVerifyTests(String verifierDir) {
-	String fullyQualifiedName = VerifyTests.class.getName();
-
-	int lastDot = fullyQualifiedName.lastIndexOf('.');
-	String packageName = fullyQualifiedName.substring(0, lastDot);
-	String simpleName = fullyQualifiedName.substring(lastDot + 1);
-	
-	String dirName = verifierDir.replace('\\', '/') + "/" + packageName.replace('.', '/');
-	File dir = new File(dirName.replace('/', File.separatorChar));
-	if (!dir.exists() && !dir.mkdirs()) {
-		System.out.println("Could not create " + dir);
-		return;
-	}
-	String fileName = dir + File.separator + simpleName + ".java";
-	Util.writeToFile(this.getVerifyTestsCode(), fileName);
-	org.eclipse.wst.jsdt.internal.compiler.batch.Main.compile("\"" + fileName + "\" -d \"" + verifierDir + "\" -classpath \"" + Util.getJavaClassLibsAsString() + "\"");
-}
-public void execute(String className, String[] classpaths) {
-	this.outputBuffer = new StringBuffer();
-	this.errorBuffer = new StringBuffer();
-	
-	launchAndRun(className, classpaths, null, null);
-}
-protected void finalize() throws Throwable {
-	this.shutDown();
-}
-public String getExecutionOutput(){
-	return outputBuffer.toString();
-}
-
-public String getExecutionError(){
-	return errorBuffer.toString();
-}
-/**
- * Returns the code of the VerifyTests class.
- * 
- * IMPORTANT NOTE: DO NOTE EDIT BUT GENERATE INSTEAD (see below)
- *
- * To generate:
- * - export VerifyTests.java to d:/temp
- * - inspect org.eclipse.wst.jsdt.core.tests.util.Util.fileContentToDisplayString("d:/temp/VerifyTests.java", 2, true)
- */
-private String getVerifyTestsCode() {
-	return 
-		"/*******************************************************************************" +
-		" * Copyright (c) 2000, 2005 IBM Corporation and others." +
-		" * All rights reserved. This program and the accompanying materials" +
-		" * are made available under the terms of the Eclipse Public License v1.0" +
-		" * which accompanies this distribution, and is available at" +
-		" * http://www.eclipse.org/legal/epl-v10.html" +
-		" *" +
-		" * Contributors:" +
-		" *     IBM Corporation - initial API and implementation" +
-		" *******************************************************************************/" +
-		"package org.eclipse.wst.jsdt.core.tests.util;\n" + 
-		"\n" + 
-		"import java.lang.reflect.*;\n" + 
-		"import java.io.*;\n" + 
-		"import java.net.*;\n" + 
-		"import java.util.*;\n" + 
-		"\n" + 
-		"/******************************************************\n" + 
-		" * \n" + 
-		" * IMPORTANT NOTE: If modifying this class, copy the source to TestVerifier#getVerifyTestsCode()\n" + 
-		" * (see this method for details)\n" + 
-		" * \n" + 
-		" ******************************************************/\n" + 
-		"\n" + 
-		"public class VerifyTests {\n" + 
-		"	int portNumber;\n" + 
-		"	Socket socket;\n" + 
-		"\n" + 
-		"/**\n" + 
-		" * NOTE: Code copied from junit.util.TestCaseClassLoader.\n" + 
-		" *\n" + 
-		" * A custom class loader which enables the reloading\n" + 
-		" * of classes for each test run. The class loader\n" + 
-		" * can be configured with a list of package paths that\n" + 
-		" * should be excluded from loading. The loading\n" + 
-		" * of these packages is delegated to the system class\n" + 
-		" * loader. They will be shared across test runs.\n" + 
-		" * <p>\n" + 
-		" * The list of excluded package paths is specified in\n" + 
-		" * a properties file \"excluded.properties\" that is located in \n" + 
-		" * the same place as the TestCaseClassLoader class.\n" + 
-		" * <p>\n" + 
-		" * <b>Known limitation:</b> the VerifyClassLoader cannot load classes\n" + 
-		" * from jar files.\n" + 
-		" */\n" + 
-		"\n" + 
-		"\n" + 
-		"public class VerifyClassLoader extends ClassLoader {\n" + 
-		"	/** scanned class path */\n" + 
-		"	private String[] fPathItems;\n" + 
-		"	\n" + 
-		"	/** excluded paths */\n" + 
-		"	private String[] fExcluded= {};\n" + 
-		"\n" + 
-		"	/**\n" + 
-		"	 * Constructs a VerifyClassLoader. It scans the class path\n" + 
-		"	 * and the excluded package paths\n" + 
-		"	 */\n" + 
-		"	public VerifyClassLoader() {\n" + 
-		"		super();\n" + 
-		"		String classPath= System.getProperty(\"java.class.path\");\n" + 
-		"		String separator= System.getProperty(\"path.separator\");\n" + 
-		"		\n" + 
-		"		// first pass: count elements\n" + 
-		"		StringTokenizer st= new StringTokenizer(classPath, separator);\n" + 
-		"		int i= 0;\n" + 
-		"		while (st.hasMoreTokens()) {\n" + 
-		"			st.nextToken();\n" + 
-		"			i++;\n" + 
-		"		}\n" + 
-		"		// second pass: split\n" + 
-		"		fPathItems= new String[i];\n" + 
-		"		st= new StringTokenizer(classPath, separator);\n" + 
-		"		i= 0;\n" + 
-		"		while (st.hasMoreTokens()) {\n" + 
-		"			fPathItems[i++]= st.nextToken();\n" + 
-		"		}\n" + 
-		"\n" + 
-		"	}\n" + 
-		"	public java.net.URL getResource(String name) {\n" + 
-		"		return ClassLoader.getSystemResource(name);\n" + 
-		"	}\n" + 
-		"	public InputStream getResourceAsStream(String name) {\n" + 
-		"		return ClassLoader.getSystemResourceAsStream(name);\n" + 
-		"	}\n" + 
-		"	protected boolean isExcluded(String name) {\n" + 
-		"		// exclude the \"java\" packages.\n" + 
-		"		// They always need to be excluded so that they are loaded by the system class loader\n" + 
-		"		if (name.startsWith(\"java\"))\n" + 
-		"			return true;\n" + 
-		"			\n" + 
-		"		// exclude the user defined package paths\n" + 
-		"		for (int i= 0; i < fExcluded.length; i++) {\n" + 
-		"			if (name.startsWith(fExcluded[i])) {\n" + 
-		"				return true;\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"		return false;	\n" + 
-		"	}\n" + 
-		"	public synchronized Class loadClass(String name, boolean resolve)\n" + 
-		"		throws ClassNotFoundException {\n" + 
-		"			\n" + 
-		"		Class c= findLoadedClass(name);\n" + 
-		"		if (c != null)\n" + 
-		"			return c;\n" + 
-		"		//\n" + 
-		"		// Delegate the loading of excluded classes to the\n" + 
-		"		// standard class loader.\n" + 
-		"		//\n" + 
-		"		if (isExcluded(name)) {\n" + 
-		"			try {\n" + 
-		"				c= findSystemClass(name);\n" + 
-		"				return c;\n" + 
-		"			} catch (ClassNotFoundException e) {\n" + 
-		"				// keep searching\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"		File file= locate(name);\n" + 
-		"		if (file == null)\n" + 
-		"			throw new ClassNotFoundException();\n" + 
-		"		byte data[]= loadClassData(file);\n" + 
-		"		c= defineClass(name, data, 0, data.length);\n" + 
-		"		if (resolve) \n" + 
-		"			resolveClass(c);\n" + 
-		"		return c;\n" + 
-		"	}\n" + 
-		"	private byte[] loadClassData(File f) throws ClassNotFoundException {\n" + 
-		"		try {\n" + 
-		"			//System.out.println(\"loading: \"+f.getPath());\n" + 
-		"			FileInputStream stream= new FileInputStream(f);\n" + 
-		"			\n" + 
-		"			try {\n" + 
-		"				byte[] b= new byte[stream.available()];\n" + 
-		"				stream.read(b);\n" + 
-		"				stream.close();\n" + 
-		"				return b;\n" + 
-		"			}\n" + 
-		"			catch (IOException e) {\n" + 
-		"				throw new ClassNotFoundException();\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"		catch (FileNotFoundException e) {\n" + 
-		"			throw new ClassNotFoundException();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	/**\n" + 
-		"	 * Locate the given file.\n" + 
-		"	 * @return Returns null if file couldn\'t be found.\n" + 
-		"	 */\n" + 
-		"	private File locate(String fileName) { \n" + 
-		"		fileName= fileName.replace(\'.\', \'/\')+\".class\";\n" + 
-		"		File path= null;\n" + 
-		"		\n" + 
-		"		if (fileName != null) {\n" + 
-		"			for (int i= 0; i < fPathItems.length; i++) {\n" + 
-		"				path= new File(fPathItems[i], fileName);\n" + 
-		"				if (path.exists())\n" + 
-		"					return path;\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"	\n" + 
-		"public void loadAndRun(String className) throws Throwable {\n" + 
-		"	//System.out.println(\"Loading \" + className + \"...\");\n" + 
-		"	Class testClass = new VerifyClassLoader().loadClass(className);\n" + 
-		"	//System.out.println(\"Loaded \" + className);\n" + 
-		"	try {\n" + 
-		"		Method main = testClass.getMethod(\"main\", new Class[] {String[].class});\n" + 
-		"		//System.out.println(\"Running \" + className);\n" + 
-		"		main.invoke(null, new Object[] {new String[] {}});\n" + 
-		"		//System.out.println(\"Finished running \" + className);\n" + 
-		"	} catch (NoSuchMethodException e) {\n" + 
-		"		return;\n" + 
-		"	} catch (InvocationTargetException e) {\n" + 
-		"		throw e.getTargetException();\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"public static void main(String[] args) throws IOException {\n" + 
-		"	VerifyTests verify = new VerifyTests();\n" + 
-		"	verify.portNumber = Integer.parseInt(args[0]);\n" + 
-		"	verify.run();\n" + 
-		"}\n" + 
-		"public void run() throws IOException {\n" + 
-		"	ServerSocket server = new ServerSocket(this.portNumber);\n" + 
-		"	this.socket = server.accept();\n" + 
-		"	this.socket.setTcpNoDelay(true);\n" + 
-		"	server.close();\n" + 
-		"\n" + 
-		"	DataInputStream in = new DataInputStream(this.socket.getInputStream());\n" + 
-		"	final DataOutputStream out = new DataOutputStream(this.socket.getOutputStream());\n" + 
-		"	while (true) {\n" + 
-		"		final String className = in.readUTF();\n" + 
-		"		Thread thread = new Thread() {\n" + 
-		"			public void run() {\n" + 
-		"				try {\n" + 
-		"					loadAndRun(className);\n" + 
-		"					out.writeBoolean(true);\n" + 
-		"					System.err.println(VerifyTests.class.getName());\n" + 
-		"					System.out.println(VerifyTests.class.getName());\n" + 
-		"				} catch (Throwable e) {\n" + 
-		"					e.printStackTrace();\n" + 
-		"					try {\n" + 
-		"						System.err.println(VerifyTests.class.getName());\n" + 
-		"						System.out.println(VerifyTests.class.getName());\n" + 
-		"						out.writeBoolean(false);\n" + 
-		"					} catch (IOException e1) {\n" + 
-		"						// ignore\n" + 
-		"					}\n" + 
-		"				}\n" + 
-		"			}\n" + 
-		"		};\n" + 
-		"		thread.start();\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"}\n";
-}
-private void launchAndRun(String className, String[] classpaths, String[] programArguments, String[] vmArguments) {
-	// we won't reuse the vm, shut the existing one if running
-	if (this.vm != null) {
-		try {
-			vm.shutDown();
-		} catch (TargetException e) {
-		}
-	}
-	this.classpathCache = null;
-
-	// launch a new one
-	LocalVMLauncher launcher = LocalVMLauncher.getLauncher();
-	launcher.setClassPath(classpaths);
-	launcher.setVMPath(Util.getJREDirectory());
-	if (vmArguments != null) {
-		String[] completeVmArguments = new String[vmArguments.length + 1];
-		System.arraycopy(vmArguments, 0, completeVmArguments, 1, vmArguments.length);
-		completeVmArguments[0] = "-verify";
-		launcher.setVMArguments(completeVmArguments);
-	} else {
-		launcher.setVMArguments(new String[] {"-verify"});
-	}
-	launcher.setProgramClass(className);
-	launcher.setProgramArguments(programArguments);
-	Thread outputThread;
-	Thread errorThread;
-	try {
-		this.vm = launcher.launch();
-		final InputStream input = this.vm.getInputStream();
-		outputThread = new Thread(new Runnable() {
-			public void run() {
-				try {
-					int c = input.read();
-					while (c != -1) {
-						outputBuffer.append((char) c);
-						c = input.read();
-					}
-				} catch(IOException ioEx) {
-				}
-			}
-		});
-		final InputStream errorStream = this.vm.getErrorStream();
-		errorThread = new Thread(new Runnable() {
-			public void run() {
-				try {
-					int c = errorStream.read();
-					while (c != -1) {
-						errorBuffer.append((char) c);
-						c = errorStream.read();
-					}
-				} catch(IOException ioEx) {
-				}
-			}
-		});
-		outputThread.start();
-		errorThread.start();
-	} catch(TargetException e) {
-		throw new Error(e.getMessage());
-	}
-
-	// wait for vm to shut down by itself
-	try {
-		outputThread.join(5000);
-		errorThread.join(5000);
-	} catch (InterruptedException e) {
-	}
-}
-private void launchVerifyTestsIfNeeded(String[] classpaths, String[] vmArguments) {
-	// determine if we can reuse the vm
-	if (this.vm != null && this.vm.isRunning() && this.classpathCache != null) {
-		if (classpaths.length == classpathCache.length) {
-			boolean sameClasspaths = true;
-			for (int i = 0; i < classpaths.length; i++) {
-				if (!this.classpathCache[i].equals(classpaths[i])) {
-					sameClasspaths = false;
-					break;
-				}
-			}
-			if (sameClasspaths) {
-				return;
-			}
-		}
-	}
-
-	// we could not reuse the vm, shut the existing one if running
-	if (this.vm != null) {
-		try {
-			vm.shutDown();
-		} catch (TargetException e) {
-		}
-	}
-
-	this.classpathCache = classpaths;
-
-	// launch a new one
-	LocalVMLauncher launcher = LocalVMLauncher.getLauncher();
-	int length = classpaths.length;
-	String[] cp = new String[length + 1];
-	System.arraycopy(classpaths, 0, cp, 0, length);
-	String verifierDir = Util.getOutputDirectory() + File.separator + "verifier";
-	this.compileVerifyTests(verifierDir);
-	cp[length] = verifierDir;
-	launcher.setClassPath(cp);
-	launcher.setVMPath(Util.getJREDirectory());
-	if (vmArguments != null) {
-		String[] completeVmArguments = new String[vmArguments.length + 1];
-		System.arraycopy(vmArguments, 0, completeVmArguments, 1, vmArguments.length);
-		completeVmArguments[0] = "-verify";
-		launcher.setVMArguments(completeVmArguments);
-	} else {
-		launcher.setVMArguments(new String[] {"-verify"});
-	}
-	launcher.setProgramClass(VerifyTests.class.getName());
-	int portNumber = Util.getFreePort();
-	launcher.setProgramArguments(new String[] {Integer.toString(portNumber)});
-	try {
-		this.vm = launcher.launch();
-		final InputStream input = this.vm.getInputStream();
-		Thread outputThread = new Thread(new Runnable() {
-			public void run() {
-				try {
-					int c = input.read();
-					while (c != -1) {
-						outputBuffer.append((char) c);
-						c = input.read();
-					}
-				} catch(IOException ioEx) {
-				}
-			}
-		});
-		final InputStream errorStream = this.vm.getErrorStream();
-		Thread errorThread = new Thread(new Runnable() {
-			public void run() {
-				try {
-					int c = errorStream.read();
-					while (c != -1) {
-						errorBuffer.append((char) c);
-						c = errorStream.read();
-					}
-				} catch(IOException ioEx) {
-				}
-			}
-		});
-		outputThread.start();
-		errorThread.start();
-	} catch(TargetException e) {
-		throw new Error(e.getMessage());
-	}
-
-	// connect to the vm
-	this.socket = null;
-	boolean isVMRunning = false;
-	do {
-		try {
-			this.socket = new Socket("localhost", portNumber);
-			this.socket.setTcpNoDelay(true);
-			break;
-		} catch (UnknownHostException e) {
-		} catch (IOException e) {
-		}
-		if (this.socket == null) {
-			try {
-				Thread.sleep(100);
-			} catch (InterruptedException e) {
-			}
-			isVMRunning = vm.isRunning();
-		}
-	} while (this.socket == null && isVMRunning);
-	
-}
-/**
- * Loads and runs the given class.
- * Return whether no exception was thrown while running the class.
- */
-private boolean loadAndRun(String className) {
-	if (this.socket != null) {
-		try {
-			DataOutputStream out = new DataOutputStream(this.socket.getOutputStream());
-			out.writeUTF(className);
-			DataInputStream in = new DataInputStream(this.socket.getInputStream());
-			try {
-				boolean result = in.readBoolean();
-				this.waitForFullBuffers();
-				return result;
-			} catch (SocketException e) {
-				// connection was reset because target program has exited
-				return true;
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
-	return true;
-}
-public void shutDown() {
-	// Close the socket first so that the OS resource has a chance to be freed.
-	if (this.socket != null) {
-		try {
-			this.socket.close();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
-	// Wait for the vm to shut down by itself for 2 seconds. If not succesfull, force the shut down.
-	if (this.vm != null) {
-		try {
-			int retry = 0;
-			while (this.vm.isRunning() && (++retry < 20)) {
-				try {
-					Thread.sleep(100);
-				} catch (InterruptedException e) {
-				}
-			}
-			if (this.vm.isRunning()) {
-				this.vm.shutDown();
-			}
-		} catch (TargetException e) {
-			e.printStackTrace();
-		}
-	}
-}
-/**
- * Verify that the class files created for the given test file can be loaded by
- * a virtual machine.
- */
-public boolean verifyClassFiles(String sourceFilePath, String className, String expectedSuccessOutputString, String[] classpaths) {
-	return verifyClassFiles(sourceFilePath, className, expectedSuccessOutputString, classpaths, null, null);
-}
-/**
- * Verify that the class files created for the given test file can be loaded by
- * a virtual machine.
- */
-public boolean verifyClassFiles(String sourceFilePath, String className, String expectedSuccessOutputString, String[] classpaths, String[] programArguments, String[] vmArguments) {
-	this.outputBuffer = new StringBuffer();
-	this.errorBuffer = new StringBuffer();
-	if (this.reuseVM && programArguments == null) {
-		this.launchVerifyTestsIfNeeded(classpaths, vmArguments);
-		this.loadAndRun(className);
-	} else {
-		this.launchAndRun(className, classpaths, programArguments, vmArguments);
-	}
-	
-	this.failureReason = null;
-	return this.checkBuffers(this.errorBuffer.toString(), this.outputBuffer.toString(), sourceFilePath, expectedSuccessOutputString);
-}
-
-/**
- * Verify that the class files created for the given test file can be loaded and run with an expected error contained
- * in the expectedSuccessOutputString string.
- */
-public boolean verifyClassFilesThrowingError(String sourceFilePath, String className, String expectedSuccessOutputString, String[] classpaths, String[] programArguments, String[] vmArguments) {
-	this.outputBuffer = new StringBuffer();
-	this.errorBuffer = new StringBuffer();
-	if (this.reuseVM && programArguments == null) {
-		this.launchVerifyTestsIfNeeded(classpaths, vmArguments);
-		this.loadAndRun(className);
-	} else {
-		this.launchAndRun(className, classpaths, programArguments, vmArguments);
-	}
-	
-	this.failureReason = null;
-	return this.checkBuffersThrowingError(this.errorBuffer.toString(), sourceFilePath, expectedSuccessOutputString);
-}
-
-/**
- * Wait until there is nothing more to read from the stdout or sterr.
- */
-private void waitForFullBuffers() {
-	String endString = VerifyTests.class.getName();
-	int count = 50;
-	int errorEndStringStart = this.errorBuffer.toString().indexOf(endString);
-	int outputEndStringStart = this.outputBuffer.toString().indexOf(endString);
-	while (errorEndStringStart == -1 || outputEndStringStart == -1) {
-		try {
-			Thread.sleep(100);
-		} catch (InterruptedException e) {
-		}
-		if (--count == 0) return;
-		errorEndStringStart = this.errorBuffer.toString().indexOf(endString);
-		outputEndStringStart = this.outputBuffer.toString().indexOf(endString);
-	}
-	this.errorBuffer.setLength(errorEndStringStart);
-	this.outputBuffer.setLength(outputEndStringStart);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/Util.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/Util.java
deleted file mode 100644
index f5a8c69..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/Util.java
+++ /dev/null
@@ -1,1299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.util;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.StringBufferInputStream;
-import java.net.ServerSocket;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.compiler.libraries.SystemLibraryLocation;
-import org.eclipse.wst.jsdt.core.tests.compiler.regression.Requestor;
-import org.eclipse.wst.jsdt.internal.compiler.Compiler;
-import org.eclipse.wst.jsdt.internal.compiler.IErrorHandlingPolicy;
-import org.eclipse.wst.jsdt.internal.compiler.IProblemFactory;
-import org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.compiler.batch.FileSystem;
-import org.eclipse.wst.jsdt.internal.compiler.env.INameEnvironment;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblem;
-import org.eclipse.wst.jsdt.internal.compiler.problem.DefaultProblemFactory;
-public class Util {
-	private static String TARGET_PLUGIN="org.eclipse.wst.jsdt.core";
-	// Trace for delete operation
-	/*
-	 * Maximum time wasted repeating delete operations while running JDT/Core tests.
-	 */
-	private static int DELETE_MAX_TIME = 0;
-	/**
-	 * Trace deletion operations while running JDT/Core tests.
-	 */
-	public static boolean DELETE_DEBUG = false;
-	/**
-	 * Maximum of time in ms to wait in deletion operation while running JDT/Core tests.
-	 * Default is 10 seconds. This number cannot exceed 1 minute (ie. 60000).
-	 * <br>
-	 * To avoid too many loops while waiting, the ten first ones are done waiting
-	 * 10ms before repeating, the ten loops after are done waiting 100ms and
-	 * the other loops are done waiting 1s...
-	 */
-	public static int DELETE_MAX_WAIT = 10000;
-
-	private static final boolean DEBUG = false;
-	/**
-	 * Initially, output directory was located in System.getProperty("user.home")+"\comptest".
-	 * To allow user to run several compiler tests at the same time, main output directory
-	 * is now located in a sub-directory of "comptest" which name is "run."+<code>System.currentMilliseconds</code>.
-	 * 
-	 * @see #DELAY_BEFORE_CLEAN_PREVIOUS
-	 */
-	private final static String OUTPUT_DIRECTORY;
-	/**
-	 * Let user specify the delay in hours before output directories are removed from file system
-	 * while starting a new test run. Default value is 2 hours.
-	 * <p>
-	 * Note that this value may be a float and so have time less than one hour.
-	 * If value is 0 or negative, then all previous run directories will be removed...
-	 * 
-	 * @see #OUTPUT_DIRECTORY
-	 */
-	private final static String DELAY_BEFORE_CLEAN_PREVIOUS = System.getProperty("delay");
-	/*
-	 * Static initializer to clean directories created while running previous test suites.
-	 */
-	static {
-		// Get delay for cleaning sub-directories
-		long millisecondsPerHour = 1000L * 3600L;
-		long delay = millisecondsPerHour * 2; // default is to keep previous run directories for 2 hours
-		try {
-			if (DELAY_BEFORE_CLEAN_PREVIOUS != null) {
-				float hours = Float.parseFloat(DELAY_BEFORE_CLEAN_PREVIOUS);
-				delay = (int) (millisecondsPerHour * hours);
-			}
-		}
-		catch (NumberFormatException nfe) {
-			// use default
-		}
-
-		// Get output directory root from system properties
-		String container = System.getProperty("jdt.test.output_directory");
-		if (container == null){
-			container = System.getProperty("user.home");
-		}
-		if (container == null) {
-			container = ".";	// use current directory
-		}
-		
-		// Get file for root directory
-		if (Character.isLowerCase(container.charAt(0)) && container.charAt(1) == ':') {
-			container = Character.toUpperCase(container.charAt(0)) + container.substring(1);
-		}
-		File dir = new File(new File(container), "comptest");
-
-		// If root directory already exists, clean it
-		if (dir.exists()) {
-			long now = System.currentTimeMillis();
-			if ((now - dir.lastModified()) > delay) {
-				// remove all directory content
-				flushDirectoryContent(dir);
-			} else {
-				// remove only old sub-dirs
-				File[] testDirs = dir.listFiles();
-				for (int i=0,l=testDirs.length; i<l; i++) {
-					if (testDirs[i].isDirectory()) {
-						if ((now - testDirs[i].lastModified()) > delay) {
-							delete(testDirs[i]);
-						}
-					}
-				}
-			}
-		}
-
-		// Computed test run directory name based on current time
-		File dateDir = new File(dir, "run."+System.currentTimeMillis());
-		OUTPUT_DIRECTORY = dateDir.getPath();
-	}
-
-public static void appendProblem(StringBuffer problems, IProblem problem, char[] source, int problemCount) {
-	problems.append(problemCount + (problem.isError() ? ". ERROR" : ". WARNING"));
-	problems.append(" in " + new String(problem.getOriginatingFileName()));
-	if (source != null) {
-		problems.append(((DefaultProblem)problem).errorReportSource(source));
-	}
-	problems.append("\n");
-	problems.append(problem.getMessage());
-	problems.append("\n");
-}
-
-public static CompilationUnit[] compilationUnits(String[] testFiles) {
-	int length = testFiles.length / 2;
-	CompilationUnit[] result = new CompilationUnit[length];
-	int index = 0;
-	for (int i = 0; i < length; i++) {
-		String fileName = testFiles[index];
-		result[i] = new CompilationUnit(testFiles[index + 1].toCharArray(), fileName, null);
-		char [] fileNameChars=fileName.toCharArray();
-		int lastIndexOf = CharOperation.lastIndexOf('/', fileNameChars);
-		if (lastIndexOf>=0)
-		{
-			char[] subarray = CharOperation.subarray(fileNameChars, 0, lastIndexOf);
-			result[i].packageName=CharOperation.splitOn('/', subarray);
-		}
-		index += 2;
-	}
-	return result;
-}
-public static void compile(String[] pathsAndContents, Map options, String outputPath) {
-		IProblemFactory problemFactory = new DefaultProblemFactory(Locale.getDefault());
-		Requestor requestor = 
-			new Requestor(
-				problemFactory, 
-				outputPath.endsWith(File.separator) ? outputPath : outputPath + File.separator, 
-				false,
-				null/*no custom requestor*/,
-				false, /* show category */
-				false /* show warning token*/);
-		
-		INameEnvironment nameEnvironment = new FileSystem(getJavaClassLibs(), new String[] {}, null);
-		IErrorHandlingPolicy errorHandlingPolicy = 
-			new IErrorHandlingPolicy() {
-				public boolean proceedOnErrors() {
-					return true;
-				}
-				public boolean stopOnFirstError() {
-					return false;
-				}
-			};
-		CompilerOptions compilerOptions = new CompilerOptions(options);
-		compilerOptions.performMethodsFullRecovery = false;
-		compilerOptions.performStatementsRecovery = false;
-		Compiler batchCompiler = 
-			new Compiler(
-				nameEnvironment, 
-				errorHandlingPolicy, 
-				compilerOptions,
-				requestor, 
-				problemFactory);
-		batchCompiler.options.produceReferenceInfo = true;
-		batchCompiler.compile(compilationUnits(pathsAndContents)); // compile all files together
-		System.err.print(requestor.problemLog); // problem log empty if no problems
-}
-public static String[] concatWithClassLibs(String[] classpaths, boolean inFront) {
-	String[] classLibs = getJavaClassLibs();
-	if (classpaths == null) return classLibs;
-	final int classLibsLength = classLibs.length;
-	final int classpathsLength = classpaths.length;
-	String[] defaultClassPaths = new String[classLibsLength + classpathsLength];
-	if (inFront) {
-		System.arraycopy(classLibs, 0, defaultClassPaths, classpathsLength, classLibsLength);
-		System.arraycopy(classpaths, 0, defaultClassPaths, 0, classpathsLength);
-	} else {
-		System.arraycopy(classLibs, 0, defaultClassPaths, 0, classLibsLength);
-		System.arraycopy(classpaths, 0, defaultClassPaths, classLibsLength, classpathsLength);
-	}
-	for (int i = 0; i < classpathsLength; i++) {
-		File file = new File(classpaths[i]);
-		if (!file.exists()) {
-			file.mkdirs();
-		} 
-	}
-	return defaultClassPaths;
-}
-public static String[] concatWithClassLibs(String classpath, boolean inFront) {
-	String[] classLibs = getJavaClassLibs();
-	final int length = classLibs.length;
-	File dir = new File(classpath);
-	if (!dir.exists())
-		dir.mkdirs();
-	String[] defaultClassPaths = new String[length + 1];
-	if (inFront) {
-		System.arraycopy(classLibs, 0, defaultClassPaths, 1, length);
-		defaultClassPaths[0] = classpath;
-	} else {
-		System.arraycopy(classLibs, 0, defaultClassPaths, 0, length);
-		defaultClassPaths[length] = classpath;
-	} 
-	return defaultClassPaths;
-}
-public static String convertToIndependantLineDelimiter(String source) {
-	if (source.indexOf('\n') == -1 && source.indexOf('\r') == -1) return source;
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0, length = source.length(); i < length; i++) {
-		char car = source.charAt(i);
-		if (car == '\r') {
-			buffer.append('\n');
-			if (i < length-1 && source.charAt(i+1) == '\n') {
-				i++; // skip \n after \r
-			}
-		} else {
-			buffer.append(car);
-		}
-	}
-	return buffer.toString();
-}
-/**
- * Copy the given source (a file or a directory that must exists) to the given destination (a directory that must exists).
- */
-public static void copy(String sourcePath, String destPath) {
-	sourcePath = toNativePath(sourcePath);
-	destPath = toNativePath(destPath);
-	File source = new File(sourcePath);
-	if (!source.exists()) return;
-	File dest = new File(destPath);
-	if (!dest.exists()) return;
-	if (source.isDirectory()) {
-		String[] files = source.list();
-		if (files != null) {
-			for (int i = 0; i < files.length; i++) {
-				String file = files[i];
-				File sourceFile = new File(source, file);
-				if (sourceFile.isDirectory()) {
-					File destSubDir = new File(dest, file);
-					destSubDir.mkdir();
-					copy(sourceFile.getPath(), destSubDir.getPath());
-				} else {
-					copy(sourceFile.getPath(), dest.getPath());
-				}
-			}
-		}
-	} else {
-		FileInputStream in = null;
-		FileOutputStream out = null;
-		try {
-			in = new FileInputStream(source);
-			File destFile = new File(dest, source.getName());
-			if (destFile.exists()) {
-				if (!Util.delete(destFile)) {
-					throw new IOException(destFile + " is in use");
-				}
-			}
-		 	out = new FileOutputStream(destFile);
-			int bufferLength = 1024;
-			byte[] buffer = new byte[bufferLength];
-			int read = 0;
-			while (read != -1) {
-				read = in.read(buffer, 0, bufferLength);
-				if (read != -1) {
-					out.write(buffer, 0, read);
-				}
-			}
-		} catch (IOException e) {
-			throw new Error(e.toString());
-		} finally {
-			if (in != null) {
-				try {
-					in.close();
-				} catch (IOException e) {
-				}
-			}
-			if (out != null) {
-				try {
-					out.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-}
-public static void createFile(String path, String contents) throws IOException {
-	FileOutputStream output = new FileOutputStream(path);
-	try {
-		output.write(contents.getBytes());
-	} finally {
-		output.close();
-	}
-}
-public static void createJar(String[] pathsAndContents, Map options, String jarPath) throws IOException {
-	String classesPath = getOutputDirectory() + File.separator + "classes";
-	File classesDir = new File(classesPath);
-	flushDirectoryContent(classesDir);
-	compile(pathsAndContents, options, classesPath);
-	zip(classesDir, jarPath);
-}
-public static void createJar(String[] pathsAndContents, String jarPath, String compliance) throws IOException {
-	Map options = new HashMap();
-	options.put(CompilerOptions.OPTION_Compliance, compliance);
-	options.put(CompilerOptions.OPTION_Source, compliance);
-	options.put(CompilerOptions.OPTION_TargetPlatform, compliance);
-	// Ignore options with new defaults (since bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=76530)
-	options.put(CompilerOptions.OPTION_ReportUnusedLocal, CompilerOptions.IGNORE);
-	options.put(CompilerOptions.OPTION_ReportUnusedPrivateMember, CompilerOptions.IGNORE);
-	options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
-	options.put(CompilerOptions.OPTION_ReportLocalVariableHiding, CompilerOptions.IGNORE);
-	options.put(CompilerOptions.OPTION_ReportTypeParameterHiding, CompilerOptions.IGNORE);
-	options.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.GENERATE);
-	options.put(CompilerOptions.OPTION_ReportRawTypeReference, CompilerOptions.IGNORE);
-	createJar(pathsAndContents, options, jarPath);
-}
-public static void createSourceZip(String[] pathsAndContents, String zipPath) throws IOException {
-	String sourcesPath = getOutputDirectory() + File.separator + "sources";
-	File sourcesDir = new File(sourcesPath);
-	flushDirectoryContent(sourcesDir);
-	for (int i = 0, length = pathsAndContents.length; i < length; i+=2) {
-		String sourcePath = sourcesPath + File.separator + pathsAndContents[i];
-		File sourceFile = new File(sourcePath);
-		sourceFile.getParentFile().mkdirs();
-		createFile(sourcePath, pathsAndContents[i+1]);
-	}
-	zip(sourcesDir, zipPath);
-}
-/**
- * Delete a file or directory and insure that the file is no longer present
- * on file system. In case of directory, delete all the hierarchy underneath.
- * 
- * @param file The file or directory to delete
- * @return true iff the file was really delete, false otherwise
- */
-public static boolean delete(File file) {
-	// flush all directory content
-	if (file.isDirectory()) {
-		flushDirectoryContent(file);
-	}
-	// remove file
-	file.delete();
-	if (isFileDeleted(file)) {
-		return true;
-	}
-	return waitUntilFileDeleted(file);
-}
-/**
- * Delete a file or directory and insure that the file is no longer present
- * on file system. In case of directory, delete all the hierarchy underneath.
- * 
- * @param resource The resource to delete
- * @return true iff the file was really delete, false otherwise
- */
-public static boolean delete(IResource resource) {
-	try {
-		resource.delete(true, null);
-		if (isResourceDeleted(resource)) {
-			return true;
-		}
-	}
-	catch (CoreException e) {
-		//	skip
-	}
-	return waitUntilResourceDeleted(resource);
-}
-/**
- * Delete a file or directory and insure that the file is no longer present
- * on file system. In case of directory, delete all the hierarchy underneath.
- * 
- * @param path The path of the file or directory to delete
- * @return true iff the file was really delete, false otherwise
- */
-public static boolean delete(String path) {
-	return delete(new File(path));
-}
-/**
- * Generate a display string from the given String.
- * @param inputString the given input string
- *
- * Example of use: [org.eclipse.wst.jsdt.core.tests.util.Util.displayString("abc\ndef\tghi")]
-*/
-public static String displayString(String inputString){
-	return displayString(inputString, 0);
-}
-/**
- * Generate a display string from the given String.
- * It converts:
- * <ul>
- * <li>\t to \t</li>
- * <li>\r to \\r</li>
- * <li>\n to \n</li>
- * <li>\b to \\b</li>
- * <li>\f to \\f</li>
- * <li>\" to \\\"</li>
- * <li>\' to \\'</li>
- * <li>\\ to \\\\</li>
- * <li>All other characters are unchanged.</li>
- * </ul>
- * This method doesn't convert \r\n to \n. 
- * <p>
- * Example of use:
- * <o>
- * <li>
- * <pre>
- * input string = "abc\ndef\tghi",
- * indent = 3
- * result = "\"\t\t\tabc\\n" +
- * 			"\t\t\tdef\tghi\""
- * </pre>
- * </li>
- * <li>
- * <pre>
- * input string = "abc\ndef\tghi\n",
- * indent = 3
- * result = "\"\t\t\tabc\\n" +
- * 			"\t\t\tdef\tghi\\n\""
- * </pre>
- * </li>
- * <li>
- * <pre>
- * input string = "abc\r\ndef\tghi\r\n",
- * indent = 3
- * result = "\"\t\t\tabc\\r\\n" +
- * 			"\t\t\tdef\tghi\\r\\n\""
- * </pre>
- * </li>
- * </ol>
- * </p>
- * 
- * @param inputString the given input string
- * @param indent number of tabs are added at the begining of each line.
- *
- * @return the displayed string
-*/
-public static String displayString(String inputString, int indent) {
-	return displayString(inputString, indent, false);
-}
-public static String displayString(String inputString, int indent, boolean shift) {
-	if (inputString == null)
-		return "null";
-	int length = inputString.length();
-	StringBuffer buffer = new StringBuffer(length);
-	java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(inputString, "\n\r", true);
-	for (int i = 0; i < indent; i++) buffer.append("\t");
-	if (shift) indent++;
-	buffer.append("\"");
-	while (tokenizer.hasMoreTokens()){
-
-		String token = tokenizer.nextToken();
-		if (token.equals("\r")) {
-			buffer.append("\\r");
-			if (tokenizer.hasMoreTokens()) {
-				token = tokenizer.nextToken();
-				if (token.equals("\n")) {
-					buffer.append("\\n");
-					if (tokenizer.hasMoreTokens()) {
-						buffer.append("\" + \n");
-						for (int i = 0; i < indent; i++) buffer.append("\t");
-						buffer.append("\"");
-					}
-					continue;
-				}
-				buffer.append("\" + \n");
-				for (int i = 0; i < indent; i++) buffer.append("\t");
-				buffer.append("\"");
-			} else {
-				continue;
-			}
-		} else if (token.equals("\n")) {
-			buffer.append("\\n");
-			if (tokenizer.hasMoreTokens()) {
-				buffer.append("\" + \n");
-				for (int i = 0; i < indent; i++) buffer.append("\t");
-				buffer.append("\"");
-			}
-			continue;
-		}	
-
-		StringBuffer tokenBuffer = new StringBuffer();
-		for (int i = 0; i < token.length(); i++){ 
-			char c = token.charAt(i);
-			switch (c) {
-				case '\r' :
-					tokenBuffer.append("\\r");
-					break;
-				case '\n' :
-					tokenBuffer.append("\\n");
-					break;
-				case '\b' :
-					tokenBuffer.append("\\b");
-					break;
-				case '\t' :
-					tokenBuffer.append("\t");
-					break;
-				case '\f' :
-					tokenBuffer.append("\\f");
-					break;
-				case '\"' :
-					tokenBuffer.append("\\\"");
-					break;
-				case '\'' :
-					tokenBuffer.append("\\'");
-					break;
-				case '\\' :
-					tokenBuffer.append("\\\\");
-					break;
-				default :
-					tokenBuffer.append(c);
-			}
-		}
-		buffer.append(tokenBuffer.toString());
-	}
-	buffer.append("\"");
-	return buffer.toString();
-}
-/**
- * Reads the content of the given source file.
- * Returns null if enable to read given source file.
- *
- * Example of use: [org.eclipse.wst.jsdt.core.tests.util.Util.fileContent("c:/temp/X.java")]
-*/
-public static String fileContent(String sourceFilePath) {
-	File sourceFile = new File(sourceFilePath);
-	if (!sourceFile.exists()) {
-		if (DEBUG) System.out.println("File " + sourceFilePath + " does not exists.");
-		return null;
-	}
-	if (!sourceFile.isFile()) {
-		if (DEBUG) System.out.println(sourceFilePath + " is not a file.");
-		return null;
-	}
-	StringBuffer sourceContentBuffer = new StringBuffer();
-	FileInputStream input = null;
-	try {
-		input = new FileInputStream(sourceFile);
-	} catch (FileNotFoundException e) {
-		return null;
-	}
-	try { 
-		int read;
-		do {
-			read = input.read();
-			if (read != -1) {
-				sourceContentBuffer.append((char)read);
-			}
-		} while (read != -1);
-		input.close();
-	} catch (IOException e) {
-		e.printStackTrace();
-		return null;
-	} finally {
-		try {
-			input.close();
-		} catch (IOException e2) {
-		}
-	}
-	return sourceContentBuffer.toString();
-}
-
-/**
- * Reads the content of the given source file and converts it to a display string.
- *
- * Example of use: [org.eclipse.wst.jsdt.core.tests.util.Util.fileContentToDisplayString("c:/temp/X.java", 0)]
-*/
-public static String fileContentToDisplayString(String sourceFilePath, int indent, boolean independantLineDelimiter) {
-	String sourceString = fileContent(sourceFilePath);
-	if (independantLineDelimiter) {
-		sourceString = convertToIndependantLineDelimiter(sourceString);
-	}
-	return displayString(sourceString, indent);
-}
-/**
- * Reads the content of the given source file, converts it to a display string.
- * If the destination file path is not null, writes the result to this file.
- * Otherwise writes it to the console.
- *
- * Example of use: [org.eclipse.wst.jsdt.core.tests.util.Util.fileContentToDisplayString("c:/temp/X.java", 0, null)]
-*/
-public static void fileContentToDisplayString(String sourceFilePath, int indent, String destinationFilePath, boolean independantLineDelimiter) {
-	String displayString = fileContentToDisplayString(sourceFilePath, indent, independantLineDelimiter);
-	if (destinationFilePath == null) {
-		System.out.println(displayString);
-		return;
-	}
-	writeToFile(displayString, destinationFilePath);
-}
-/**
- * Flush content of a given directory (leaving it empty),
- * no-op if not a directory.
- */
-public static void flushDirectoryContent(File dir) {
-	File[] files = dir.listFiles();
-	if (files == null) return;
-	for (int i = 0, max = files.length; i < max; i++) {
-		delete(files[i]);
-	}
-}
-/**
- * Returns the next available port number on the local host.
- */
-public static int getFreePort() {
-	ServerSocket socket = null;
-	try {
-		socket = new ServerSocket(0);
-		return socket.getLocalPort();
-	} catch (IOException e) {
-		// ignore
-	} finally {
-		if (socket != null) {
-			try {
-				socket.close();
-			} catch (IOException e) {
-				// ignore
-			}
-		}
-	}
-	return -1;
-}
-/**
- * Search the user hard-drive for a Java class library.
- * Returns null if none could be found.
- *
- * Example of use: [org.eclipse.wst.jsdt.core.tests.util.Util.getJavaClassLib()]
-*/
-public static String[] getJavaClassLibs() {
-	
-	IPath targetRoot =  (new Path(System.getProperty("user.dir"))).removeLastSegments(1);
-	IPath pluginDir = targetRoot.append(new Path(TARGET_PLUGIN));
-	IPath libDir = pluginDir.append(new Path(new String(SystemLibraryLocation.LIBRARY_PLUGIN_DIRECTORY)));
-	IPath fullDir = libDir.append(new Path(new String(SystemLibraryLocation.SYSTEM_LIBARAY_NAME)));
-	File libFile=new File(fullDir.toOSString());
-	if (!libFile.exists())
-	{
-	targetRoot =  new Path(OUTPUT_DIRECTORY);
-	libDir = targetRoot.append(new Path(new String(SystemLibraryLocation.LIBRARY_PLUGIN_DIRECTORY)));
-	
-	 libFile=new File(libDir.toOSString());
-	libFile.mkdirs();
-	
-	 fullDir = libDir.append(new Path(new String(SystemLibraryLocation.SYSTEM_LIBARAY_NAME)));
-
-	Class clazz=SystemLibraryLocation.class;
- 
-	String inputName=/*"../../../../../../../"+*/
-	new String(SystemLibraryLocation.LIBRARY_PLUGIN_DIRECTORY)+"/"+new String(SystemLibraryLocation.SYSTEM_LIBARAY_NAME);
-
-	URL resource = clazz.getClassLoader().getResource(inputName);
-
-	InputStream inputStream=clazz.getClassLoader().getResourceAsStream(inputName);
-	
-	try {
-		copyFile(inputStream, new File(fullDir.toOSString()));
-	} catch (IOException e) {
-		// TODO Auto-generated catch block
-		e.printStackTrace();
-	}
-	
-	}
-	
-	return new String[]
-	                  {
-			fullDir.toOSString()
-	                  };
-//	String jreDir = getJREDirectory();
-//	final String osName = System.getProperty("os.name");
-//	if (jreDir == null)  {
-//		return new String[] {};
-//	}
-//	if (osName.startsWith("Mac")) {
-//		return new String[] { toNativePath(jreDir + "/../Classes/classes.jar")};
-//	}
-//	final String vmName = System.getProperty("java.vm.name");
-//	if ("J9".equals(vmName)) {
-//		return new String[] { toNativePath(jreDir + "/lib/jclMax/classes.zip")};
-//	}
-//	File file = new File(jreDir + "/lib/rt.jar");
-//	if (file.exists()) {
-//		return new String[] {
-//			toNativePath(jreDir + "/lib/rt.jar")
-//		};				
-//	}
-//	return new String[] { 
-//		toNativePath(jreDir + "/lib/core.jar"),
-//		toNativePath(jreDir + "/lib/security.jar"),
-//		toNativePath(jreDir + "/lib/graphics.jar")
-//	};
-}
-
-public static void copyFile(InputStream src, File dst) throws IOException {
-	InputStream in=null;
-	OutputStream out=null;
-	try {
-		in = new BufferedInputStream(src);
-		out = new BufferedOutputStream(new FileOutputStream(dst));
-		byte[] buffer = new byte[4096];
-		int len;
-		while ((len=in.read(buffer)) != -1) {
-			out.write(buffer, 0, len);
-		}
-	} finally {
-		if (in != null)
-			try {
-				in.close();
-			} catch (IOException e) {
-			}
-		if (out != null)
-			try {
-				out.close();
-			} catch (IOException e) {
-			}
-	}
-}
-
-public static String copyToOutput(String fileName, String contents) {
-	
-	Path targetRoot =  new Path(OUTPUT_DIRECTORY);
-	Path filePath=new Path(fileName);
-	
-	IPath libDir = targetRoot.append(filePath.removeLastSegments(1));
-	String fullFileName=libDir.toOSString();
-	 File libFile=new File(fullFileName);
-	libFile.mkdirs();
-	
-	 IPath fullDir = libDir.append(filePath.lastSegment());
-
-
-	InputStream inputStream=new StringBufferInputStream(contents);
-	
-	try {
-		copyFile(inputStream, new File(fullDir.toOSString()));
-	} catch (IOException e) {
-		e.printStackTrace();
-	}
-	
-	
-	
-	return 
-			fullDir.toOSString();
-	                  
-}
-
-
-
-public static String getJavaClassLibsAsString() {
-	String[] classLibs = getJavaClassLibs();
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0, max = classLibs.length; i < max; i++) {
-		buffer
-			.append(classLibs[i])
-			.append(File.pathSeparatorChar);
-		
-	}
-	return buffer.toString();
-}
-/**
- * Returns the JRE directory this tests are running on.
- * Returns null if none could be found.
- * 
- * Example of use: [org.eclipse.wst.jsdt.core.tests.util.Util.getJREDirectory()]
- */
-public static String getJREDirectory() {
-	return System.getProperty("java.home");
-}
-/**
- * Search the user hard-drive for a possible output directory.
- * Returns null if none could be found.
- * 
- * Example of use: [org.eclipse.wst.jsdt.core.tests.util.Util.getOutputDirectory()]
- */
-public static String getOutputDirectory() {
-	return OUTPUT_DIRECTORY;
-}
-/**
- * Returns the parent's child file matching the given file or null if not found.
- * 
- * @param file The searched file in parent
- * @return The parent's child matching the given file or null if not found.
- */
-private static File getParentChildFile(File file) {
-	File parent = file.getParentFile();
-	if (parent == null || !parent.exists()) return null;
-	File[] files = parent.listFiles();
-	int length = files==null ? 0 : files.length;
-	if (length > 0) {
-		for (int i=0; i<length; i++) {
-			if (files[i] == file) {
-				return files[i];
-			} else if (files[i].equals(file)) {
-				return files[i];
-			} else if (files[i].getPath().equals(file.getPath())) {
-				return files[i];
-			}
-		}
-	}
-	return null;
-}
-/**
- * Returns parent's child resource matching the given resource or null if not found.
- * 
- * @param resource The searched file in parent
- * @return The parent's child matching the given file or null if not found.
- */
-private static IResource getParentChildResource(IResource resource) {
-	IContainer parent = resource.getParent();
-	if (parent == null || !parent.exists()) return null;
-	try {
-		IResource[] members = parent.members();
-		int length = members ==null ? 0 : members.length;
-		if (length > 0) {
-			for (int i=0; i<length; i++) {
-				if (members[i] == resource) {
-					return members[i];
-				} else if (members[i].equals(resource)) {
-					return members[i];
-				} else if (members[i].getFullPath().equals(resource.getFullPath())) {
-					return members[i];
-				}
-			}
-		}
-	}
-	catch (CoreException ce) {
-		// skip
-	}
-	return null;
-}
-/**
- * Returns the test name from stack elements info.
- * 
- * @return The name of the test currently running
- */
-private static String getTestName() {
-	StackTraceElement[] elements = new Exception().getStackTrace();
-	int idx = 0, length=elements.length;
-	while (idx<length && !elements[idx++].getClassName().startsWith("org.eclipse.wst.jsdt")) {
-		// loop until JDT/Core class appears in the stack
-	}
-	if (idx<length) {
-		StackTraceElement testElement = null;
-		while (idx<length && elements[idx].getClassName().startsWith("org.eclipse.wst.jsdt")) {
-			testElement = elements[idx++];
-		}
-		if (testElement != null) {
-			return testElement.getClassName() + " - " + testElement.getMethodName();
-		}
-	}
-	return "?";
-}
-public static String indentString(String inputString, int indent) {
-	if (inputString == null)
-		return "";
-	int length = inputString.length();
-	StringBuffer buffer = new StringBuffer(length);
-	java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(inputString, "\n\r", true);
-	StringBuffer indentStr = new StringBuffer(indent);
-	for (int i = 0; i < indent; i++) indentStr.append("\t");
-	buffer.append(indentStr);
-	while (tokenizer.hasMoreTokens()){
-		String token = tokenizer.nextToken();
-		buffer.append(token);
-		if (token.equals("\r") || token.equals("\n")) {
-			buffer.append(indentStr);
-		}
-	}
-	return buffer.toString();
-}
-/**
- * Returns whether a file is really deleted or not.
- * Does not only rely on {@link File#exists()} method but also
- * look if it's not in its parent children {@link #getParentChildFile(File)}.
- * 
- * @param file The file to test if deleted
- * @return true if the file does not exist and was not found in its parent children.
- */
-public static boolean isFileDeleted(File file) {
-	return !file.exists() && getParentChildFile(file) == null;
-}
-public static boolean isMacOS() {
-	return System.getProperty("os.name").indexOf("Mac") != -1;
-}
-/**
- * Returns whether a resource is really deleted or not.
- * Does not only rely on {@link IResource#isAccessible()} method but also
- * look if it's not in its parent children {@link #getParentChildResource(IResource)}.
- * 
- * @param resource The resource to test if deleted
- * @return true if the resource is not accessible and was not found in its parent children.
- */
-public static boolean isResourceDeleted(IResource resource) {
-	return !resource.isAccessible() && getParentChildResource(resource) == null;
-}
-/**
- * Print given file information with specified indentation.
- * These information are:<ul>
- * 	<li>read {@link File#canRead()}</li>
- * 	<li>write {@link File#canWrite()}</li>
- * 	<li>exists {@link File#exists()}</li>
- * 	<li>is file {@link File#isFile()}</li>
- * 	<li>is directory {@link File#isDirectory()}</li>
- * 	<li>is hidden {@link File#isHidden()}</li>
- * </ul>
- * May recurse several level in parents hierarchy.
- * May also display children, but then will not recusre in parent
- * hierarchy to avoid infinite loop...
- * 
- * @param file The file to display information
- * @param indent Number of tab to print before the information
- * @param recurse Display also information on <code>recurse</code>th parents in hierarchy.
- * 	If negative then display children information instead.
- */
-private static void printFileInfo(File file, int indent, int recurse) {
-	String tab = "";
-	for (int i=0; i<indent; i++) tab+="\t";
-	System.out.print(tab+"- "+file.getName()+" file info: ");
-	String sep = "";
-	if (file.canRead()) {
-		System.out.print("read");
-		sep = ", ";
-	}
-	if (file.canWrite()) {
-		System.out.print(sep+"write");
-		sep = ", ";
-	}
-	if (file.exists()) {
-		System.out.print(sep+"exist");
-		sep = ", ";
-	}
-	if (file.isDirectory()) {
-		System.out.print(sep+"dir");
-		sep = ", ";
-	}
-	if (file.isFile()) {
-		System.out.print(sep+"file");
-		sep = ", ";
-	}
-	if (file.isHidden()) {
-		System.out.print(sep+"hidden");
-		sep = ", ";
-	}
-	System.out.println();
-	File[] files = file.listFiles();
-	int length = files==null ? 0 : files.length;
-	if (length > 0) {
-		boolean children = recurse < 0;
-		System.out.print(tab+"	+ children: ");
-		if (children) System.out.println();
-		for (int i=0; i<length; i++) {
-			if (children) { // display children
-				printFileInfo(files[i], indent+2, -1);
-			} else {
-				if (i>0) System.out.print(", ");
-				System.out.print(files[i].getName());
-				if (files[i].isDirectory()) System.out.print("[dir]");
-				else if (files[i].isFile()) System.out.print("[file]");
-				else System.out.print("[?]");
-			}
-		}
-		if (!children) System.out.println();
-	}
-	if (recurse > 0) {
-		File parent = file.getParentFile();
-		if (parent != null) printFileInfo(parent, indent+1, recurse-1);
-	}
-}
-/**
- * Print stack trace with only JDT/Core elements.
- * 
- * @param exception Exception of the stack trace. May be null, then a fake exception is used.
- * @param indent Number of tab to display before the stack elements to display.
- */
-private static void printJdtCoreStackTrace(Exception exception, int indent) {
-	String tab = "";
-	for (int i=0; i<indent; i++) tab+="\t";
-	StackTraceElement[] elements = (exception==null?new Exception():exception).getStackTrace();
-	int idx = 0, length=elements.length;
-	while (idx<length && !elements[idx++].getClassName().startsWith("org.eclipse.wst.jsdt")) {
-		// loop until JDT/Core class appears in the stack
-	}
-	if (idx<length) {
-		System.out.print(tab+"- stack trace");
-		if (exception == null)
-			System.out.println(":");
-		else
-			System.out.println(" for exception "+exception+":");
-		while (idx<length && elements[idx].getClassName().startsWith("org.eclipse.wst.jsdt")) {
-			StackTraceElement testElement = elements[idx++];
-			System.out.println(tab+"	-> "+testElement);
-		}
-	} else {
-		exception.printStackTrace(System.out);
-	}
-}
-/**
- * Makes the given path a path using native path separators as returned by File.getPath()
- * and trimming any extra slash.
- */
-public static String toNativePath(String path) {
-	String nativePath = path.replace('\\', File.separatorChar).replace('/', File.separatorChar);
-	return
-		nativePath.endsWith("/") || nativePath.endsWith("\\") ?
-			nativePath.substring(0, nativePath.length() - 1) :
-			nativePath;
-}
-/**
- * Unzip the contents of the given zip in the given directory (create it if it doesn't exist)
- */
-public static void unzip(String zipPath, String destDirPath) throws IOException {
-
-	InputStream zipIn = new FileInputStream(zipPath);
-	byte[] buf = new byte[8192];
-	File destDir = new File(destDirPath);
-	ZipInputStream zis = new ZipInputStream(zipIn);
-	FileOutputStream fos = null;
-	try {
-		ZipEntry zEntry;
-		while ((zEntry = zis.getNextEntry()) != null) {
-			// if it is empty directory, create it
-			if (zEntry.isDirectory()) {
-				new File(destDir, zEntry.getName()).mkdirs();
-				continue;
-			}
-			// if it is a file, extract it
-			String filePath = zEntry.getName();
-			int lastSeparator = filePath.lastIndexOf("/"); //$NON-NLS-1$
-			String fileDir = ""; //$NON-NLS-1$
-			if (lastSeparator >= 0) {
-				fileDir = filePath.substring(0, lastSeparator);
-			}
-			//create directory for a file
-			new File(destDir, fileDir).mkdirs();
-			//write file
-			File outFile = new File(destDir, filePath);
-			fos = new FileOutputStream(outFile);
-			int n = 0;
-			while ((n = zis.read(buf)) >= 0) {
-				fos.write(buf, 0, n);
-			}
-			fos.close();
-		}
-	} catch (IOException ioe) {
-		if (fos != null) {
-			try {
-				fos.close();
-			} catch (IOException ioe2) {
-			}
-		}
-	} finally {
-		try {
-			zipIn.close();
-			if (zis != null)
-				zis.close();
-		} catch (IOException ioe) {
-		}
-	}
-}
-/**
- * Wait until the file is _really_ deleted on file system.
- * 
- * @param file Deleted file
- * @return true if the file was finally deleted, false otherwise
- */
-private static boolean waitUntilFileDeleted(File file) {
-	if (DELETE_DEBUG) {
-		System.out.println();
-		System.out.println("WARNING in test: "+getTestName());
-		System.out.println("	- problems occured while deleting "+file);
-		printJdtCoreStackTrace(null, 1);
-		printFileInfo(file.getParentFile(), 1, -1); // display parent with its children
-		System.out.print("	- wait for ("+DELETE_MAX_WAIT+"ms max): ");
-	}
-	int count = 0;
-	int delay = 10; // ms
-	int maxRetry = DELETE_MAX_WAIT / delay;
-	int time = 0;
-	while (count < maxRetry) {
-		try {
-			count++;
-			Thread.sleep(delay);
-			time += delay;
-			if (time > DELETE_MAX_TIME) DELETE_MAX_TIME = time;
-			if (DELETE_DEBUG) System.out.print('.');
-			if (file.exists()) {
-				if (file.delete()) {
-					// SUCCESS
-					if (DELETE_DEBUG) {
-						System.out.println();
-						System.out.println("	=> file really removed after "+time+"ms (max="+DELETE_MAX_TIME+"ms)");
-						System.out.println();
-					}
-					return true;
-				}
-			}
-			if (isFileDeleted(file)) {
-				// SUCCESS
-				if (DELETE_DEBUG) {
-					System.out.println();
-					System.out.println("	=> file disappeared after "+time+"ms (max="+DELETE_MAX_TIME+"ms)");
-					System.out.println();
-				}
-				return true;
-			}
-			// Increment waiting delay exponentially
-			if (count >= 10 && delay <= 100) {
-				count = 1;
-				delay *= 10;
-				maxRetry = DELETE_MAX_WAIT / delay;
-				if ((DELETE_MAX_WAIT%delay) != 0) {
-					maxRetry++;
-				}
-			}
-		}
-		catch (InterruptedException ie) {
-			break; // end loop
-		}
-	}
-	if (!DELETE_DEBUG) {
-		System.out.println();
-		System.out.println("WARNING in test: "+getTestName());
-		System.out.println("	- problems occured while deleting "+file);
-		printJdtCoreStackTrace(null, 1);
-		printFileInfo(file.getParentFile(), 1, -1); // display parent with its children
-	}
-	System.out.println();
-	System.out.println("	!!! ERROR: "+file+" was never deleted even after having waited "+DELETE_MAX_TIME+"ms!!!");
-	System.out.println();
-	return false;
-}
-/**
- * Wait until a resource is _really_ deleted on file system.
- * 
- * @param resource Deleted resource
- * @return true if the file was finally deleted, false otherwise
- */
-private static boolean waitUntilResourceDeleted(IResource resource) {
-	File file = resource.getLocation().toFile();
-	if (DELETE_DEBUG) {
-		System.out.println();
-		System.out.println("WARNING in test: "+getTestName());
-		System.out.println("	- problems occured while deleting resource "+resource);
-		printJdtCoreStackTrace(null, 1);
-		printFileInfo(file.getParentFile(), 1, -1); // display parent with its children
-		System.out.print("	- wait for ("+DELETE_MAX_WAIT+"ms max): ");
-	}
-	int count = 0;
-	int delay = 10; // ms
-	int maxRetry = DELETE_MAX_WAIT / delay;
-	int time = 0;
-	while (count < maxRetry) {
-		try {
-			count++;
-			Thread.sleep(delay);
-			time += delay;
-			if (time > DELETE_MAX_TIME) DELETE_MAX_TIME = time;
-			if (DELETE_DEBUG) System.out.print('.');
-			if (resource.isAccessible()) {
-				try {
-					resource.delete(true, null);
-					if (isResourceDeleted(resource) && isFileDeleted(file)) {
-						// SUCCESS
-						if (DELETE_DEBUG) {
-							System.out.println();
-							System.out.println("	=> resource really removed after "+time+"ms (max="+DELETE_MAX_TIME+"ms)");
-							System.out.println();
-						}
-						return true;
-					}
-				}
-				catch (CoreException e) {
-					//	skip
-				}
-			}
-			if (isResourceDeleted(resource) && isFileDeleted(file)) {
-				// SUCCESS
-				if (DELETE_DEBUG) {
-					System.out.println();
-					System.out.println("	=> resource disappeared after "+time+"ms (max="+DELETE_MAX_TIME+"ms)");
-					System.out.println();
-				}
-				return true;
-			}
-			// Increment waiting delay exponentially
-			if (count >= 10 && delay <= 100) {
-				count = 1;
-				delay *= 10;
-				maxRetry = DELETE_MAX_WAIT / delay;
-				if ((DELETE_MAX_WAIT%delay) != 0) {
-					maxRetry++;
-				}
-			}
-		}
-		catch (InterruptedException ie) {
-			break; // end loop
-		}
-	}
-	if (!DELETE_DEBUG) {
-		System.out.println();
-		System.out.println("WARNING in test: "+getTestName());
-		System.out.println("	- problems occured while deleting resource "+resource);
-		printJdtCoreStackTrace(null, 1);
-		printFileInfo(file.getParentFile(), 1, -1); // display parent with its children
-	}
-	System.out.println();
-	System.out.println("	!!! ERROR: "+resource+" was never deleted even after having waited "+DELETE_MAX_TIME+"ms!!!");
-	System.out.println();
-	return false;
-}
-public static void writeToFile(String contents, String destinationFilePath) {
-	File destFile = new File(destinationFilePath);
-	FileOutputStream output = null;
-	try {
-		output = new FileOutputStream(destFile);
-		PrintWriter writer = new PrintWriter(output);
-		writer.print(contents);
-		writer.flush();
-	} catch (IOException e) {
-		e.printStackTrace();
-		return;
-	} finally {
-		if (output != null) {
-			try {
-				output.close();
-			} catch (IOException e2) {
-			}
-		}
-	}
-}
-public static void zip(File rootDir, String zipPath) throws IOException {
-	ZipOutputStream zip = null;
-	try {
-		File zipFile = new File(zipPath);
-		if (zipFile.exists()) delete(zipFile);
-		zip = new ZipOutputStream(new FileOutputStream(zipFile));
-		zip(rootDir, zip, rootDir.getPath().length()+1); // 1 for last slash
-	} finally {
-		if (zip != null) {
-			zip.close();
-		}
-	}
-}
-private static void zip(File dir, ZipOutputStream zip, int rootPathLength) throws IOException {
-	File[] files = dir.listFiles();
-	if (files != null) {
-		for (int i = 0, length = files.length; i < length; i++) {
-			File file = files[i];
-			if (file.isFile()) {
-				String path = file.getPath();
-				path = path.substring(rootPathLength);
-				ZipEntry entry = new ZipEntry(path.replace('\\', '/'));
-				zip.putNextEntry(entry);
-				zip.write(org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(file));
-				zip.closeEntry();
-			} else {
-				zip(file, zip, rootPathLength);
-			}
-		}
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/VerifyTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/VerifyTests.java
deleted file mode 100644
index 9beddab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/util/VerifyTests.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.util;
-
-import java.lang.reflect.*;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-/******************************************************
- * 
- * IMPORTANT NOTE: If modifying this class, copy the source to TestVerifier#getVerifyTestsCode()
- * (see this method for details)
- * 
- ******************************************************/
-
-public class VerifyTests {
-	int portNumber;
-	Socket socket;
-
-/**
- * NOTE: Code copied from junit.util.TestCaseClassLoader.
- *
- * A custom class loader which enables the reloading
- * of classes for each test run. The class loader
- * can be configured with a list of package paths that
- * should be excluded from loading. The loading
- * of these packages is delegated to the system class
- * loader. They will be shared across test runs.
- * <p>
- * The list of excluded package paths is specified in
- * a properties file "excluded.properties" that is located in 
- * the same place as the TestCaseClassLoader class.
- * <p>
- * <b>Known limitation:</b> the VerifyClassLoader cannot load classes
- * from jar files.
- */
-
-
-public class VerifyClassLoader extends ClassLoader {
-	/** scanned class path */
-	private String[] fPathItems;
-	
-	/** excluded paths */
-	private String[] fExcluded= {};
-
-	/**
-	 * Constructs a VerifyClassLoader. It scans the class path
-	 * and the excluded package paths
-	 */
-	public VerifyClassLoader() {
-		super();
-		String classPath= System.getProperty("java.class.path");
-		String separator= System.getProperty("path.separator");
-		
-		// first pass: count elements
-		StringTokenizer st= new StringTokenizer(classPath, separator);
-		int i= 0;
-		while (st.hasMoreTokens()) {
-			st.nextToken();
-			i++;
-		}
-		// second pass: split
-		fPathItems= new String[i];
-		st= new StringTokenizer(classPath, separator);
-		i= 0;
-		while (st.hasMoreTokens()) {
-			fPathItems[i++]= st.nextToken();
-		}
-
-	}
-	public java.net.URL getResource(String name) {
-		return ClassLoader.getSystemResource(name);
-	}
-	public InputStream getResourceAsStream(String name) {
-		return ClassLoader.getSystemResourceAsStream(name);
-	}
-	protected boolean isExcluded(String name) {
-		// exclude the "java" packages.
-		// They always need to be excluded so that they are loaded by the system class loader
-		if (name.startsWith("java"))
-			return true;
-			
-		// exclude the user defined package paths
-		for (int i= 0; i < fExcluded.length; i++) {
-			if (name.startsWith(fExcluded[i])) {
-				return true;
-			}
-		}
-		return false;	
-	}
-	public synchronized Class loadClass(String name, boolean resolve)
-		throws ClassNotFoundException {
-			
-		Class c= findLoadedClass(name);
-		if (c != null)
-			return c;
-		//
-		// Delegate the loading of excluded classes to the
-		// standard class loader.
-		//
-		if (isExcluded(name)) {
-			try {
-				c= findSystemClass(name);
-				return c;
-			} catch (ClassNotFoundException e) {
-				// keep searching
-			}
-		}
-		File file= locate(name);
-		if (file == null)
-			throw new ClassNotFoundException();
-		byte data[]= loadClassData(file);
-		c= defineClass(name, data, 0, data.length);
-		if (resolve) 
-			resolveClass(c);
-		return c;
-	}
-	private byte[] loadClassData(File f) throws ClassNotFoundException {
-		try {
-			//System.out.println("loading: "+f.getPath());
-			FileInputStream stream= new FileInputStream(f);
-			
-			try {
-				byte[] b= new byte[stream.available()];
-				stream.read(b);
-				stream.close();
-				return b;
-			}
-			catch (IOException e) {
-				throw new ClassNotFoundException();
-			}
-		}
-		catch (FileNotFoundException e) {
-			throw new ClassNotFoundException();
-		}
-	}
-	/**
-	 * Locate the given file.
-	 * @return Returns null if file couldn't be found.
-	 */
-	private File locate(String fileName) { 
-		fileName= fileName.replace('.', '/')+".class";
-		File path= null;
-		
-		if (fileName != null) {
-			for (int i= 0; i < fPathItems.length; i++) {
-				path= new File(fPathItems[i], fileName);
-				if (path.exists())
-					return path;
-			}
-		}
-		return null;
-	}
-}
-	
-public void loadAndRun(String className) throws Throwable {
-	//System.out.println("Loading " + className + "...");
-	Class testClass = new VerifyClassLoader().loadClass(className);
-	//System.out.println("Loaded " + className);
-	try {
-		Method main = testClass.getMethod("main", new Class[] {String[].class});
-		//System.out.println("Running " + className);
-		main.invoke(null, new Object[] {new String[] {}});
-		//System.out.println("Finished running " + className);
-	} catch (NoSuchMethodException e) {
-		return;
-	} catch (InvocationTargetException e) {
-		throw e.getTargetException();
-	}
-}
-public static void main(String[] args) throws IOException {
-	VerifyTests verify = new VerifyTests();
-	verify.portNumber = Integer.parseInt(args[0]);
-	verify.run();
-}
-public void run() throws IOException {
-	ServerSocket server = new ServerSocket(this.portNumber);
-	this.socket = server.accept();
-	this.socket.setTcpNoDelay(true);
-	server.close();
-
-	DataInputStream in = new DataInputStream(this.socket.getInputStream());
-	final DataOutputStream out = new DataOutputStream(this.socket.getOutputStream());
-	while (true) {
-		final String className = in.readUTF();
-		Thread thread = new Thread() {
-			public void run() {
-				try {
-					loadAndRun(className);
-					out.writeBoolean(true);
-					System.err.println(VerifyTests.class.getName());
-					System.out.println(VerifyTests.class.getName());
-				} catch (Throwable e) {
-					e.printStackTrace();
-					try {
-						System.err.println(VerifyTests.class.getName());
-						System.out.println(VerifyTests.class.getName());
-						out.writeBoolean(false);
-					} catch (IOException e1) {
-						// ignore
-					}
-				}
-			}
-		};
-		thread.start();
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/test.xml b/tests/org.eclipse.wst.jsdt.core.tests.compiler/test.xml
deleted file mode 100644
index 3472b27..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/test.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project
-    name="testsuite"
-    default="run"
-    basedir=".">
-    
-    <!-- The following properties should be passed into this script -->
-    <!-- ${eclipse-home}   -->
-    <!-- ${buildDirectory}  -->
-    <!-- ${buildLabel}        -->
-
-    <!-- should be little need to change what's above  -->
-    <property
-        name="plugin-name"
-        value="org.eclipse.wst.jsdt.core.tests.compiler" />
-    <property
-        name="classname"
-        value="org.eclipse.wst.jsdt.core.tests.compiler.JSDTCompilerTests" />
-    <property
-        name="testType"
-        value="core-test" />
-
-    <!-- should be little need to change what's below -->
-
-    <echo message="basedir: ${basedir}" />
-    <echo message="eclipse-home: ${eclipse-home}" />
-    <echo message="buildDirectory: ${buildDirectory}" />
-    <echo message="plugin-name: ${plugin-name}" />
-    <echo message="classname: ${classname}" />
-    <echo message="testType ${testType}" />
-
-
-    <property
-        name="library-file"
-        value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml" />
-    <property
-        name="workspace"
-        value="${eclipse-home}/junitworkspaces/${plugin-name}" />
-        
-    <!-- This target holds all initialization code that needs to be done for -->
-    <!-- all tests that are to be run. Initialization for individual tests -->
-    <!-- should be done within the body of the suite target. -->
-    <target name="init">
-        <tstamp />
-        <delete>
-            <fileset
-                dir="${eclipse-home}"
-                includes="${plugin-name}.*xml" />
-        </delete>
-        <!-- make directory, in case path doesn't exist yet -->
-        <mkdir dir="${workspace}" />
-        <!--  but delete to make sure fresh contents-->
-        <delete
-            dir="${workspace}"
-            quiet="true" />
-
-    </target>
-
-    <!-- This target defines the tests that need to be run. -->
-    <target name="suite">
-
-        <ant
-            target="${testType}"
-            antfile="${library-file}"
-            dir="${eclipse-home}">
-            <property
-                name="data-dir"
-                value="${workspace}" />
-            <property
-                name="plugin-name"
-                value="${plugin-name}" />
-            <property
-                name="classname"
-                value="${classname}" />
-            <property
-                name="plugin-path"
-                value="${eclipse-home}/plugins/${plugin-name}" />
-        </ant>
-
-        <copy
-            failonerror="false"
-            file="${workspace}/.metadata/.log"
-            tofile="${buildDirectory}/${buildLabel}/testResults/consolelogs/${plugin-name}.consolelog.txt" />
-
-    </target>
-
-    <!-- This target holds code to cleanup the testing environment after -->
-    <!-- after all of the tests have been run. You can use this target to -->
-    <!-- delete temporary files that have been created. -->
-    <target name="cleanup">
-        <!-- usually no need to delete workspace until next run, and leaving it allows inspection -->
-        <!-- <delete dir="${workspace}" quiet="true" /> -->
-    </target>
-
-    <!-- This target runs the test suite. Any actions that need to happen -->
-    <!-- after all the tests have been run should go here. -->
-    <target
-        name="run"
-        depends="init,suite,cleanup">
-        <ant
-            target="collect"
-            antfile="${library-file}"
-            dir="${eclipse-home}">
-            <property
-                name="includes"
-                value="${plugin-name}.*xml" />
-            <property
-                name="output-file"
-                value="${plugin-name}.xml" />
-        </ant>
-    </target>
-
-</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/.cvsignore b/tests/org.eclipse.wst.jsdt.core.tests.model/.cvsignore
deleted file mode 100644
index 7722bc8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-javaCompiler...args
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/.project
deleted file mode 100644
index 15cf2d2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core.tests.model</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.wst.jsdt.core.tests.model/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 039fac0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jan 28 15:47:49 CST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.jsdt.core.tests.model/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d8c99ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Tue Apr 17 15:48:57 CDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/MANIFEST.MF
deleted file mode 100644
index 5e189db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.jsdt.core.tests.model; singleton:=true
-Bundle-Version: 1.0.300.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.jsdt.core.tests,
- org.eclipse.wst.jsdt.core.tests.dom,
- org.eclipse.wst.jsdt.core.tests.formatter,
- org.eclipse.wst.jsdt.core.tests.formatter.comment,
- org.eclipse.wst.jsdt.core.tests.model,
- org.eclipse.wst.jsdt.core.tests.rewrite.describing,
- org.eclipse.wst.jsdt.core.tests.rewrite.modifying
-Import-Package: com.ibm.icu.text; version="3.8",
- com.ibm.icu.util; version="3.8"
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.junit;bundle-version="[3.8.2,4.0.0)",
- org.eclipse.wst.jsdt.core.tests.compiler,
- org.eclipse.team.core,
- org.eclipse.text,
- org.eclipse.wst.jsdt.core
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/eclipse.inf b/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/eclipse.inf
deleted file mode 100644
index fdcf47e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/eclipse.inf
+++ /dev/null
@@ -1,6 +0,0 @@
-# We do not want any nested jars 
-# signed or normalized for packing
-# see bug 274743 Some unit tests are sensitive to details of build
-# https://bugs.eclipse.org/bugs/show_bug.cgi?id=274743
-
-jarprocessor.exclude.children=true
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/about.html b/tests/org.eclipse.wst.jsdt.core.tests.model/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/build.properties b/tests/org.eclipse.wst.jsdt.core.tests.model/build.properties
deleted file mode 100644
index fe0e4e9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml,\
-               workspace/,\
-               .,\
-               test.xml,\
-               plugin.properties,\
-               META-INF/,\
-               about.html
-source.. = src/
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/plugin.properties b/tests/org.eclipse.wst.jsdt.core.tests.model/plugin.properties
deleted file mode 100644
index 5167a7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-#
-# Messages in plugin.xml.
-#
-pluginName=JSDT Tests - Model
-providerName=Eclipse.org
-
-JsGlobalScopeVariableInitializer.deprecated.0 = Test deprecated flag
-JsGlobalScopeVariableInitializer.deprecated.1 = A deprecated and read-only initializer
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/plugin.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/plugin.xml
deleted file mode 100644
index 18bd40e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/plugin.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   	<!-- Classpath variable initializer -->
-	<extension point = "org.eclipse.wst.jsdt.core.JsGlobalScopeVariableInitializer">
-		<JsGlobalScopeVariableInitializer
-			variable="TEST_LIB"
-			class="org.eclipse.wst.jsdt.core.tests.model.VariablesInitializer"/>
-		<JsGlobalScopeVariableInitializer
-			variable="TEST_SRC"
-			class="org.eclipse.wst.jsdt.core.tests.model.VariablesInitializer"/>
-		<JsGlobalScopeVariableInitializer
-			variable="TEST_ROOT"
-			class="org.eclipse.wst.jsdt.core.tests.model.VariablesInitializer"/>
-  <JsGlobalScopeVariableInitializer
-        class="org.eclipse.wst.jsdt.core.tests.model.VariablesInitializer"
-        deprecated="%JsGlobalScopeVariableInitializer.deprecated.0"
-        variable="TEST_DEPRECATED">
-  </JsGlobalScopeVariableInitializer>
-  <JsGlobalScopeVariableInitializer
-        class="org.eclipse.wst.jsdt.core.tests.model.VariablesInitializer"
-        readOnly="true"
-        variable="TEST_READ_ONLY">
-  </JsGlobalScopeVariableInitializer>
-  <JsGlobalScopeVariableInitializer
-        class="org.eclipse.wst.jsdt.core.tests.model.VariablesInitializer"
-        deprecated="%JsGlobalScopeVariableInitializer.deprecated.1"
-        readOnly="true"
-        variable="TEST_DEPRECATED_READ_ONLY">
-  </JsGlobalScopeVariableInitializer>
-	</extension>		
-
-	<!-- Classpath container initializer -->
-	<extension point = "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer">
-		<JsGlobalScopeContainerInitializer
-			id="org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"
-			class="org.eclipse.wst.jsdt.core.tests.model.ContainerInitializer"/>
-	</extension>
-
-	<!-- Extra JavaScript-like file extensions -->
-	<extension point="org.eclipse.core.contenttype.contentTypes">
-	    <file-association 
-	        content-type="org.eclipse.wst.jsdt.core.javaSource"
-	        file-extensions="foo,bar"/>
-	</extension>
-
-	<!-- Repository provider -->
-	<extension point="org.eclipse.team.core.repository">
-		<repository
-			id="org.eclipse.wst.jsdt.core.tests.model.pessimisticnature"
-			class="org.eclipse.wst.jsdt.core.tests.model.TestPessimisticProvider">
-		</repository>;
-	</extension>
-	
-	<!-- Compilation participant -->
-	 <extension point="org.eclipse.wst.jsdt.core.validationParticipant">
-	   <validationParticipant
-          class="org.eclipse.wst.jsdt.core.tests.model.TestvalidationParticipant"
-          createsProblems="true"
-          id="org.eclipse.wst.jsdt.core.tests.model.validationParticipant"
-          requiredSourceLevel="1.4"
-          modifiesEnvironment="true">
-       <requires id="non.existing"/>
-    </validationParticipant>
-	 </extension>
-	
-</plugin>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunCompilerTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunCompilerTests.java
deleted file mode 100644
index faae149..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunCompilerTests.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Runs all compiler tests (including parser tests) See AbstractCompilerTests
- * for more details.
- */
-public class RunCompilerTests extends TestCase {
-
-	public RunCompilerTests(String name) {
-		super(name);
-	}
-
-	public static Class[] getAllTestClasses() {
-		return new Class[] {
-				org.eclipse.wst.jsdt.core.tests.compiler.regression.TestAll.class,
-				org.eclipse.wst.jsdt.core.tests.compiler.parser.TestAll.class };
-	}
-
-	public static Test suite() {
-		TestSuite ts = new TestSuite(RunCompilerTests.class.getName());
-
-		Class[] testClasses = getAllTestClasses();
-		for (int i = 0; i < testClasses.length; i++) {
-			Class testClass = testClasses[i];
-
-			// call the suite() method and add the resulting suite to the suite
-			try {
-				Method suiteMethod = testClass.getDeclaredMethod(
-						"suite", new Class[0]); //$NON-NLS-1$
-				Test suite = (Test) suiteMethod.invoke(null, new Object[0]);
-				ts.addTest(suite);
-			} catch (IllegalAccessException e) {
-				e.printStackTrace();
-			} catch (InvocationTargetException e) {
-				e.getTargetException().printStackTrace();
-			} catch (NoSuchMethodException e) {
-				e.printStackTrace();
-			}
-		}
-		return ts;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunDOMTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunDOMTests.java
deleted file mode 100644
index 7358ecf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunDOMTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.tests.dom.RunAllTests;
-
-/**
- * Runs all DOM AST tests.
- */
-public class RunDOMTests extends TestCase {
-
-public RunDOMTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	TestSuite suite = new TestSuite(RunDOMTests.class.getName());
-	suite.addTest(RunAllTests.suite());
-	return suite;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunFormatterTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunFormatterTests.java
deleted file mode 100644
index 88afcb4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunFormatterTests.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.tests.formatter.comment.CommentsTestSuite;
-
-/**
- * Runs all formatter tests.
- */
-public class RunFormatterTests extends TestCase {
-	
-	public static Class[] getAllTestClasses() {
-		return new Class[] {
-			//FormatterRegressionTests.class,
-			CommentsTestSuite.class,
-		};
-	}
-	public static Test suite() {
-		TestSuite ts = new TestSuite(RunFormatterTests.class.getName());
-
-		Class[] testClasses = getAllTestClasses();
-		for (int i = 0; i < testClasses.length; i++) {
-			Class testClass = testClasses[i];
-
-			// call the suite() method and add the resulting suite to the suite
-			try {
-				Method suiteMethod = testClass.getDeclaredMethod("suite", new Class[0]); //$NON-NLS-1$
-				Test suite = (Test)suiteMethod.invoke(null, new Object[0]);
-				ts.addTest(suite);
-			} catch (IllegalAccessException e) {
-				e.printStackTrace();
-			} catch (InvocationTargetException e) {
-				e.getTargetException().printStackTrace();
-			} catch (NoSuchMethodException e) {
-				e.printStackTrace();
-			}
-		}
-		return ts;
-	}
-	
-public RunFormatterTests(String name) {
-	super(name);
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunJSDTCoreTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunJSDTCoreTests.java
deleted file mode 100644
index 309911f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunJSDTCoreTests.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.tests.utils.SequenceReaderTests;
-
-/**
- * Runs all JDT Core tests.
- */
-public class RunJSDTCoreTests extends TestCase {
-public RunJSDTCoreTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	TestSuite suite = new TestSuite("JSDT 'Model' Tests");
-	suite.addTest(RunDOMTests.suite());
-	suite.addTest(RunFormatterTests.suite());
-	suite.addTest(RunModelTests.suite());
-	suite.addTestSuite(SequenceReaderTests.class);
-	return suite;
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunModelTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunModelTests.java
deleted file mode 100644
index 1f53b8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/RunModelTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.tests.model.JSDTModelTests;
-
-/**
- * Runs all Java model tests.
- */
-public class RunModelTests extends TestCase {
-public RunModelTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	TestSuite suite = new TestSuite(RunModelTests.class.getName());
-	suite.addTest(JSDTModelTests.suite());
-	return suite;
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterAST3Test.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterAST3Test.java
deleted file mode 100644
index 2e407ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterAST3Test.java
+++ /dev/null
@@ -1,9467 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.List;
-
-import junit.framework.Test;
-
-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.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.AbstractTypeDeclaration;
-import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration;
-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.BreakStatement;
-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.ContinueStatement;
-import org.eclipse.wst.jsdt.core.dom.DoStatement;
-import org.eclipse.wst.jsdt.core.dom.EmptyStatement;
-import org.eclipse.wst.jsdt.core.dom.Expression;
-import org.eclipse.wst.jsdt.core.dom.ExpressionStatement;
-import org.eclipse.wst.jsdt.core.dom.FieldAccess;
-import org.eclipse.wst.jsdt.core.dom.FieldDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ForStatement;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionInvocation;
-import org.eclipse.wst.jsdt.core.dom.IBinding;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.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.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.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.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.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.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.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.util.IModifierConstants;
-
-public class ASTConverterAST3Test extends ConverterTestSetup {
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		this.ast = AST.newAST(AST.JLS3);
-	}
-
-	public ASTConverterAST3Test(String name) {
-		super(name);
-	}
-
-	static {
-	}
-	
-	public static Test suite() {
-		return buildModelTestSuite(ASTConverterAST3Test.class);
-	}
-		
-	public void test0001() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0001", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		
-		// check that we have the right tree
-		JavaScriptUnit unit = this.ast.newJavaScriptUnit();
-		FunctionDeclaration methodDeclaration = this.ast.newFunctionDeclaration();
-		methodDeclaration.setConstructor(false);
-		methodDeclaration.setName(this.ast.newSimpleName("main"));//$NON-NLS-1$
-		SingleVariableDeclaration variableDeclaration = this.ast.newSingleVariableDeclaration();
-		variableDeclaration.setName(this.ast.newSimpleName("args"));//$NON-NLS-1$
-		methodDeclaration.parameters().add(variableDeclaration);
-		org.eclipse.wst.jsdt.core.dom.Block block = this.ast.newBlock();
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		methodInvocation.setName(this.ast.newSimpleName("print")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();
-		literal.setLiteralValue("Hello");//$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();
-		literal.setLiteralValue(" world");//$NON-NLS-1$
-		infixExpression.setRightOperand(literal);//$NON-NLS-1$
-		methodInvocation.arguments().add(infixExpression);
-		ExpressionStatement expressionStatement = this.ast.newExpressionStatement(methodInvocation);
-		block.statements().add(expressionStatement);
-		methodDeclaration.setBody(block);
-		assertTrue("Both AST trees should be identical", result.subtreeMatch(new ASTMatcher(), unit));//$NON-NLS-1$
-		String expected =
-			"function main(args) {\n" + 
-			"	print(\"Hello\" + \" world\");\n" + 
-			"}";
-		checkSourceRange(result, expected, source);
-	}
-	
-	/**
-	 * Test allocation expression: new Object() ==> ClassInstanceCreation
-	 */
-	public void test0002() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0002", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-		classInstanceCreation.setType(this.ast.newSimpleType(this.ast.newSimpleName("Object"))); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new Object()", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new java.lang.Object() ==> ClassInstanceCreation
-	 */
-	public void test0003() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0003", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-		QualifiedName name = 
-			this.ast.newQualifiedName(
-				this.ast.newQualifiedName(
-					this.ast.newSimpleName("java"), //$NON-NLS-1$
-					this.ast.newSimpleName("lang")), //$NON-NLS-1$
-				this.ast.newSimpleName("Object"));//$NON-NLS-1$
-		classInstanceCreation.setType(this.ast.newSimpleType(name));
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new java.lang.Object()", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new java.lang.Exception("ERROR") ==> ClassInstanceCreation
-	 */
-	public void test0004() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0004", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-		QualifiedName name = 
-			this.ast.newQualifiedName(
-				this.ast.newQualifiedName(
-					this.ast.newSimpleName("java"), //$NON-NLS-1$
-					this.ast.newSimpleName("lang")), //$NON-NLS-1$
-				this.ast.newSimpleName("Exception"));//$NON-NLS-1$
-		classInstanceCreation.setType(this.ast.newSimpleType(name));
-		StringLiteral literal = this.ast.newStringLiteral();
-		literal.setLiteralValue("ERROR"); //$NON-NLS-1$
-		classInstanceCreation.arguments().add(literal);
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new java.lang.Exception(\"ERROR\")", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new java.lang.Object() {} ==> ClassInstanceCreation
-	 */
-	public void test0005() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0005", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-		QualifiedName name = 
-			this.ast.newQualifiedName(
-				this.ast.newQualifiedName(
-					this.ast.newSimpleName("java"), //$NON-NLS-1$
-					this.ast.newSimpleName("lang")), //$NON-NLS-1$
-				this.ast.newSimpleName("Object"));//$NON-NLS-1$
-		classInstanceCreation.setType(this.ast.newSimpleType(name));
-		AnonymousClassDeclaration anonymousClassDeclaration = this.ast.newAnonymousClassDeclaration();
-		classInstanceCreation.setAnonymousClassDeclaration(anonymousClassDeclaration);
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new java.lang.Object() {}", source); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation2 = (ClassInstanceCreation) expression;
-		Type type = classInstanceCreation2.getType();
-		checkSourceRange(type, "java.lang.Object", source); //$NON-NLS-1$
-	}
-	
-				
-	/**
-	 * Test allocation expression: new java.lang.Runnable() { public void run() {}} ==> ClassInstanceCreation
-	 */
-	public void test0006() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0006", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-		QualifiedName name = 
-			this.ast.newQualifiedName(
-				this.ast.newQualifiedName(
-					this.ast.newSimpleName("java"), //$NON-NLS-1$
-					this.ast.newSimpleName("lang")), //$NON-NLS-1$
-				this.ast.newSimpleName("Runnable"));//$NON-NLS-1$
-		classInstanceCreation.setType(this.ast.newSimpleType(name));
-		FunctionDeclaration methodDeclaration = this.ast.newFunctionDeclaration();
-		methodDeclaration.setBody(this.ast.newBlock());
-		methodDeclaration.setConstructor(false);
-		methodDeclaration.modifiers().add(this.ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
-		methodDeclaration.setName(this.ast.newSimpleName("run"));//$NON-NLS-1$
-		methodDeclaration.setReturnType2(this.ast.newPrimitiveType(PrimitiveType.VOID));
-		AnonymousClassDeclaration anonymousClassDeclaration = this.ast.newAnonymousClassDeclaration();
-		anonymousClassDeclaration.bodyDeclarations().add(methodDeclaration);
-		classInstanceCreation.setAnonymousClassDeclaration(anonymousClassDeclaration);
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new java.lang.Runnable() { public void run() {}}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new Test().new D() ==> ClassInstanceCreation
-	 */
-	public void test0007() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0007", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		ASTNode expression = (ASTNode) ((FunctionInvocation) expressionStatement.getExpression()).arguments().get(0);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-		classInstanceCreation.setType(this.ast.newSimpleType(this.ast.newSimpleName("D"))); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreationExpression = this.ast.newClassInstanceCreation();
-		classInstanceCreationExpression.setType(this.ast.newSimpleType(this.ast.newSimpleName("Test"))); //$NON-NLS-1$
-		classInstanceCreation.setExpression(classInstanceCreationExpression);
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new Test().new D()", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new int[] {1, 2, 3, 4} ==> ArrayCreation
-	 */
-	public void test0008() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0008", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ArrayCreation arrayCreation = this.ast.newArrayCreation();
-		arrayCreation.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 1));
-		ArrayInitializer arrayInitializer = this.ast.newArrayInitializer();
-		arrayInitializer.expressions().add(this.ast.newNumberLiteral("1"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(this.ast.newNumberLiteral("3"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(this.ast.newNumberLiteral("4"));//$NON-NLS-1$
-		arrayCreation.setInitializer(arrayInitializer);
-		assertTrue("Both AST trees should be identical", arrayCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new int[] {1, 2, 3, 4}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new int[][] {{1}, {2}} ==> ArrayCreation
-	 */
-	public void test0009() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0009", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ArrayCreation arrayCreation = this.ast.newArrayCreation();
-		arrayCreation.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 2));
-		ArrayInitializer arrayInitializer = this.ast.newArrayInitializer();
-		ArrayInitializer innerArrayInitializer = this.ast.newArrayInitializer();
-		innerArrayInitializer.expressions().add(this.ast.newNumberLiteral("1"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(innerArrayInitializer);
-		innerArrayInitializer = this.ast.newArrayInitializer();
-		innerArrayInitializer.expressions().add(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(innerArrayInitializer);
-		arrayCreation.setInitializer(arrayInitializer);
-		assertTrue("Both AST trees should be identical", arrayCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new int[][] {{1}, {2}}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new int[3] ==> ArrayCreation
-	 */
-	public void test0010() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0010", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ArrayCreation arrayCreation = this.ast.newArrayCreation();
-		arrayCreation.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 1));
-		arrayCreation.dimensions().add(this.ast.newNumberLiteral("3")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", arrayCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new int[3]", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new int[3][] ==> ArrayCreation
-	 */
-	public void test0011() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0011", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ArrayCreation arrayCreation = this.ast.newArrayCreation();
-		arrayCreation.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 2));
-		arrayCreation.dimensions().add(this.ast.newNumberLiteral("3")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", arrayCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new int[3][]", source); //$NON-NLS-1$
-	}
-		
-	/**
-	 * Test allocation expression: new int[][] {{},{}} ==> ArrayCreation
-	 */
-	public void test0012() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0012", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ArrayCreation arrayCreation = this.ast.newArrayCreation();
-		arrayCreation.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 2));
-		ArrayInitializer arrayInitializer = this.ast.newArrayInitializer();
-		ArrayInitializer innerArrayInitializer = this.ast.newArrayInitializer();
-		arrayInitializer.expressions().add(innerArrayInitializer);
-		innerArrayInitializer = this.ast.newArrayInitializer();
-		arrayInitializer.expressions().add(innerArrayInitializer);
-		arrayCreation.setInitializer(arrayInitializer);
-		assertTrue("Both AST trees should be identical", arrayCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new int[][] {{}, {}}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * int i; ==> VariableDeclarationFragment
-	 */
-	public void test0013() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0013", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * int i = 0; ==> VariableDeclarationFragment
-	 */
-	public void test0014() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0014", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int i = 0;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i = 1; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0015() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0015", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("1")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i = 1;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i += 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0016() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0016", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.PLUS_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i += 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i -= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0017() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0017", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.MINUS_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i -= 2;", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * i *= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0018() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0018", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.TIMES_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i *= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i /= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0019() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0019", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.DIVIDE_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i /= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i &= 2 ==> ExpressionStatement(Assignment)
-	 */
-	public void test0020() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0020", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.BIT_AND_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i &= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i |= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0021() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0021", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.BIT_OR_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i |= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i ^= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0022() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0022", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.BIT_XOR_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i ^= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i %= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0023() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0023", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.REMAINDER_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i %= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i <<= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0024() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0024", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.LEFT_SHIFT_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i <<= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i >>= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0025() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0025", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.RIGHT_SHIFT_SIGNED_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i >>= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i >>>= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0026() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0026", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i >>>= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * --i; ==> ExpressionStatement(PrefixExpression)
-	 */
-	public void test0027() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0027", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		prefixExpression.setOperator(PrefixExpression.Operator.DECREMENT);//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(prefixExpression);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "--i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * --i; ==> ExpressionStatement(PrefixExpression)
-	 */
-	public void test0028() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0028", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(prefixExpression);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "++i;", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * i--; ==> ExpressionStatement(PostfixExpression)
-	 */
-	public void test0029() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0029", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.DECREMENT);//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(postfixExpression);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i--;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i++; ==> ExpressionStatement(PostfixExpression)
-	 */
-	public void test0030() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0030", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(postfixExpression);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i++;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * int.class; ==> ExpressionStatement(TypeLiteral)
-	 */
-	public void test0038() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0038", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-		TypeLiteral typeLiteral = this.ast.newTypeLiteral();
-		typeLiteral.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		variableDeclarationFragment.setInitializer(typeLiteral);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("Class")));//$NON-NLS-1$
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(((VariableDeclarationFragment)((VariableDeclarationStatement)node).fragments().get(0)).getInitializer(), "int.class", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * void.class; ==> ExpressionStatement(TypeLiteral)
-	 */
-	public void test0039() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0039", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-		TypeLiteral typeLiteral = this.ast.newTypeLiteral();
-		typeLiteral.setType(this.ast.newPrimitiveType(PrimitiveType.VOID));
-		variableDeclarationFragment.setInitializer(typeLiteral);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("Class")));//$NON-NLS-1$
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(((VariableDeclarationFragment)((VariableDeclarationStatement)node).fragments().get(0)).getInitializer(), "void.class", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * double.class; ==> ExpressionStatement(TypeLiteral)
-	 */
-	public void test0040() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0040", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-		TypeLiteral typeLiteral = this.ast.newTypeLiteral();
-		typeLiteral.setType(this.ast.newPrimitiveType(PrimitiveType.DOUBLE));
-		variableDeclarationFragment.setInitializer(typeLiteral);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("Class")));//$NON-NLS-1$
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(((VariableDeclarationFragment)((VariableDeclarationStatement)node).fragments().get(0)).getInitializer(), "double.class", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * long.class; ==> ExpressionStatement(TypeLiteral)
-	 */
-	public void test0041() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0041", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-		TypeLiteral typeLiteral = this.ast.newTypeLiteral();
-		typeLiteral.setType(this.ast.newPrimitiveType(PrimitiveType.LONG));
-		variableDeclarationFragment.setInitializer(typeLiteral);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("Class")));//$NON-NLS-1$
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(((VariableDeclarationFragment)((VariableDeclarationStatement)node).fragments().get(0)).getInitializer(), "long.class", source); //$NON-NLS-1$
-	}	
-		
-	/**
-	 * false ==> BooleanLiteral
-	 */
-	public void test0042() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0042", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		BooleanLiteral literal = this.ast.newBooleanLiteral(false);
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "false", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * true ==> BooleanLiteral
-	 */
-	public void test0043() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0043", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		BooleanLiteral literal = this.ast.newBooleanLiteral(true);
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "true", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * null ==> NullLiteral
-	 */
-	public void test0044() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0044", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NullLiteral literal = this.ast.newNullLiteral();
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "null", source); //$NON-NLS-1$
-	}
-		
-	/**
-	 * CharLiteral ==> CharacterLiteral
-	 */
-	public void test0045() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0045", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		CharacterLiteral literal = this.ast.newCharacterLiteral();
-		literal.setEscapedValue("'c'"); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "'c'", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * DoubleLiteral ==> NumberLiteral
-	 */
-	public void test0046() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0046", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("1.00001");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "1.00001", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * FloatLiteral ==> NumberLiteral
-	 */
-	public void test0047() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0047", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("1.00001f");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "1.00001f", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * IntLiteral ==> NumberLiteral
-	 */
-	public void test0048() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0048", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("30000");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "30000", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * IntLiteralMinValue ==> NumberLiteral
-	 */
-	public void test0049() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0049", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("-2147483648");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "-2147483648", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LongLiteral ==> NumberLiteral
-	 */
-	public void test0050() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0050", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("2147483648L");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "2147483648L", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LongLiteral ==> NumberLiteral (negative value)
-	 */
-	public void test0051() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0051", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("2147483648L");//$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperand(literal);
-		prefixExpression.setOperator(PrefixExpression.Operator.MINUS);
-		assertTrue("Both AST trees should be identical", prefixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "-2147483648L", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LongLiteralMinValue ==> NumberLiteral
-	 */
-	public void test0052() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0052", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("-9223372036854775808L");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "-9223372036854775808L", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ExtendedStringLiteral ==> StringLiteral
-	 */
-	public void test0053() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0053", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		/*
-		StringLiteral literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("Hello World");*/
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();
-		literal.setLiteralValue("Hello");//$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();
-		literal.setLiteralValue(" World");//$NON-NLS-1$
-		infixExpression.setRightOperand(literal);//$NON-NLS-1$
-		
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"Hello\" + \" World\"", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * AND_AND_Expression ==> InfixExpression
-	 */
-	public void test0054() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0054", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b3")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.CONDITIONAL_AND);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b3 = b && b2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * OR_OR_Expression ==> InfixExpression
-	 */
-	public void test0055() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0055", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b3")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.CONDITIONAL_OR);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b3 = b || b2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * EqualExpression ==> InfixExpression
-	 */
-	public void test0056() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0056", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b3")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.EQUALS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b3 = b == b2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (+) ==> InfixExpression
-	 */
-	public void test0057() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0057", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = i + j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (-) ==> InfixExpression
-	 */
-	public void test0058() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0058", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.MINUS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = i - j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (*) ==> InfixExpression
-	 */
-	public void test0059() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0059", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.TIMES);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = i * j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (/) ==> InfixExpression
-	 */
-	public void test0060() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0060", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.DIVIDE);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = i / j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (%) ==> InfixExpression
-	 */
-	public void test0061() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0061", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.REMAINDER);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = i % j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (^) ==> InfixExpression
-	 */
-	public void test0062() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0062", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.XOR);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = i ^ j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (&) ==> InfixExpression
-	 */
-	public void test0063() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0063", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.AND);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = i & j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (|) ==> InfixExpression
-	 */
-	public void test0064() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0064", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.OR);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = i | j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (<) ==> InfixExpression
-	 */
-	public void test0065() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0065", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b2 = b < b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (<=) ==> InfixExpression
-	 */
-	public void test0066() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0066", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS_EQUALS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b2 = b <= b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (>) ==> InfixExpression
-	 */
-	public void test0067() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0067", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.GREATER);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b2 = b > b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (>=) ==> InfixExpression
-	 */
-	public void test0068() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0068", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.GREATER_EQUALS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b2 = b >= b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (!=) ==> InfixExpression
-	 */
-	public void test0069() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0069", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.NOT_EQUALS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b2 = b != b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * InstanceofExpression ==> InfixExpression
-	 */
-	public void test0070() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0070", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		InstanceofExpression instanceOfExpression = this.ast.newInstanceofExpression();
-		instanceOfExpression.setLeftOperand(this.ast.newSimpleName("o"));//$NON-NLS-1$ 
-		SimpleType simpleType = this.ast.newSimpleType(this.ast.newSimpleName("Integer"));//$NON-NLS-1$
-		instanceOfExpression.setRightOperand(simpleType); 
-		variableDeclarationFragment.setInitializer(instanceOfExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b = o instanceof Integer;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * InstanceofExpression ==> InfixExpression
-	 */
-	public void test0071() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0071", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		InstanceofExpression instanceOfExpression = this.ast.newInstanceofExpression();
-		instanceOfExpression.setLeftOperand(this.ast.newSimpleName("o")); //$NON-NLS-1$
-		QualifiedName name =
-			this.ast.newQualifiedName(
-				this.ast.newQualifiedName(
-					this.ast.newSimpleName("java"), //$NON-NLS-1$
-					this.ast.newSimpleName("lang")), //$NON-NLS-1$
-				this.ast.newSimpleName("Integer")); //$NON-NLS-1$
-		Type type = ast.newSimpleType(name);
-		instanceOfExpression.setRightOperand(type);
-		variableDeclarationFragment.setInitializer(instanceOfExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b = o instanceof java.lang.Integer;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * UnaryExpression (!) ==> PrefixExpression
-	 */
-	public void test0072() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0072", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperator(PrefixExpression.Operator.NOT);
-		prefixExpression.setOperand(this.ast.newSimpleName("b"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(prefixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b1 = !b;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * UnaryExpression (~) ==> PrefixExpression
-	 */
-	public void test0073() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0073", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperator(PrefixExpression.Operator.COMPLEMENT);
-		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(prefixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int n = ~i;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * UnaryExpression (+) ==> PrefixExpression
-	 */
-	public void test0074() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0074", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperator(PrefixExpression.Operator.PLUS);
-		prefixExpression.setOperand(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(prefixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int i = +2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * UnaryExpression (-) ==> PrefixExpression
-	 */
-	public void test0075() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0075", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperator(PrefixExpression.Operator.MINUS);
-		prefixExpression.setOperand(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(prefixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int i = -2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * ConditionalExpression ==> ConditionalExpression
-	 */
-	public void test0076() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0076", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		ConditionalExpression conditionalExpression = this.ast.newConditionalExpression();
-		InfixExpression condition = this.ast.newInfixExpression();
-		condition.setLeftOperand(this.ast.newSimpleName("args")); //$NON-NLS-1$
-		condition.setRightOperand(this.ast.newNullLiteral()); //$NON-NLS-1$
-		condition.setOperator(InfixExpression.Operator.NOT_EQUALS);
-		conditionalExpression.setExpression(condition);
-		conditionalExpression.setThenExpression(this.ast.newBooleanLiteral(true));
-		conditionalExpression.setElseExpression(this.ast.newBooleanLiteral(false));
-		variableDeclarationFragment.setInitializer(conditionalExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "boolean b = args != null ? true : false;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * ConditionalExpression ==> ConditionalExpression
-	 */
-	public void test0077() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0077", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		ConditionalExpression conditionalExpression = this.ast.newConditionalExpression();
-		conditionalExpression.setExpression(this.ast.newBooleanLiteral(true));
-		QualifiedName name = 
-			this.ast.newQualifiedName(
-				this.ast.newSimpleName("args"), //$NON-NLS-1$
-				this.ast.newSimpleName("length")); //$NON-NLS-1$
-		conditionalExpression.setThenExpression(name);
-		conditionalExpression.setElseExpression(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(conditionalExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int i = true ? args.length: 0;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * MessageSend ==> SuperMethodInvocation
-	 */
-	public void test0078() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0078", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		SuperMethodInvocation superMethodInvocation = this.ast.newSuperMethodInvocation();
-		superMethodInvocation.setName(this.ast.newSimpleName("bar")); //$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(superMethodInvocation);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "super.bar();", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * MessageSend ==> SuperMethodInvocation
-	 */
-	public void test0079() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0079", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		SuperMethodInvocation superMethodInvocation = this.ast.newSuperMethodInvocation();
-		superMethodInvocation.setName(this.ast.newSimpleName("bar")); //$NON-NLS-1$
-		superMethodInvocation.arguments().add(this.ast.newNumberLiteral("4"));//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(superMethodInvocation);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "super.bar(4);", source); //$NON-NLS-1$
-	}	
-	
-	/**
-	 * MessageSend ==> FunctionInvocation
-	 */
-	public void test0080() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0080", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		methodInvocation.setName(this.ast.newSimpleName("bar")); //$NON-NLS-1$
-		methodInvocation.arguments().add(this.ast.newNumberLiteral("4"));//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(methodInvocation);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "bar(4);", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * MessageSend ==> FunctionInvocation
-	 */
-	public void test0081() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0081", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		methodInvocation.setName(this.ast.newSimpleName("bar")); //$NON-NLS-1$
-		methodInvocation.setExpression(this.ast.newThisExpression());
-		methodInvocation.arguments().add(this.ast.newNumberLiteral("4"));//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(methodInvocation);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "this.bar(4);", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0082() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0082", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (;;);", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0083() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0083", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		forStatement.initializers().add(variableDeclarationExpression);
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		forStatement.setBody(this.ast.newBlock());
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		infixExpression.setRightOperand(this.ast.newNumberLiteral("10")); //$NON-NLS-1$
-		forStatement.setExpression(infixExpression);
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (int i = 0; i < 10; i++) {}", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0084() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0084", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		
-		forStatement.initializers().add(variableDeclarationExpression);
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		infixExpression.setRightOperand(this.ast.newNumberLiteral("10")); //$NON-NLS-1$
-		forStatement.setExpression(infixExpression);
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (int i = 0; i < 10; i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0085() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0085", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		
-		forStatement.initializers().add(variableDeclarationExpression);
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (int i = 0;; i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0086() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0086", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		infixExpression.setRightOperand(this.ast.newNumberLiteral("10")); //$NON-NLS-1$
-		forStatement.setExpression(infixExpression);
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (; i < 10; i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0087() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0087", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (;;i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LocalDeclaration ==> VariableDeclarationStatement
-	 */
-	public void test0088() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0088", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LocalDeclaration ==> VariableDeclarationStatement
-	 */
-	public void test0089() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0089", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("s")); //$NON-NLS-1$
-
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		QualifiedName name = 
-			this.ast.newQualifiedName(
-				this.ast.newQualifiedName(
-					this.ast.newSimpleName("java"),//$NON-NLS-1$
-					this.ast.newSimpleName("lang")//$NON-NLS-1$
-				),
-				this.ast.newSimpleName("String") //$NON-NLS-1$
-			);
-		statement.setType(this.ast.newSimpleType(name));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "java.lang.String s;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LocalDeclaration ==> VariableDeclarationStatement
-	 */
-	public void test0090() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0090", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-	
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		ArrayInitializer initializer = this.ast.newArrayInitializer();
-		initializer.expressions().add(this.ast.newNumberLiteral("1"));//$NON-NLS-1$
-		initializer.expressions().add(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(initializer);
-		variableDeclarationFragment.setName(this.ast.newSimpleName("tab")); //$NON-NLS-1$
-
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 1));
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int[] tab = {1, 2};", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Argument ==> SingleVariableDeclaration
-	 */
-	public void test0091() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0091", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		FunctionDeclaration method = (FunctionDeclaration)((TypeDeclaration) ((JavaScriptUnit) result).types().get(0)).bodyDeclarations().get(0);
-		SingleVariableDeclaration node = (SingleVariableDeclaration) method.parameters().get(0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		SingleVariableDeclaration variableDeclaration = this.ast.newSingleVariableDeclaration();
-		variableDeclaration.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-		variableDeclaration.setName(this.ast.newSimpleName("s")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", variableDeclaration.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "String s", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Argument ==> SingleVariableDeclaration
-	 */
-	public void test0092() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0092", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		FunctionDeclaration method = (FunctionDeclaration)((TypeDeclaration) ((JavaScriptUnit) result).types().get(0)).bodyDeclarations().get(0);
-		SingleVariableDeclaration node = (SingleVariableDeclaration) method.parameters().get(0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		SingleVariableDeclaration variableDeclaration = this.ast.newSingleVariableDeclaration();
-		variableDeclaration.modifiers().add(this.ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD));
-		variableDeclaration.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-		variableDeclaration.setName(this.ast.newSimpleName("s")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", variableDeclaration.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "final String s", source); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 0, node.getExtraDimensions()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Break ==> BreakStatement
-	 */
-	public void test0093() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0093", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ForStatement forStatement = (ForStatement) node;
-		BreakStatement statement = (BreakStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		BreakStatement breakStatement = this.ast.newBreakStatement();
-		assertTrue("Both AST trees should be identical", breakStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "break;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Continue ==> ContinueStatement
-	 */
-	public void test0094() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0094", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ForStatement forStatement = (ForStatement) node;
-		ContinueStatement statement = (ContinueStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		ContinueStatement continueStatement = this.ast.newContinueStatement();
-		assertTrue("Both AST trees should be identical", continueStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "continue;", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Continue with Label ==> ContinueStatement
-	 */
-	public void test0095() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0095", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		LabeledStatement labeledStatement = (LabeledStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ForStatement forStatement = (ForStatement) labeledStatement.getBody();
-		ContinueStatement statement = (ContinueStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		ContinueStatement continueStatement = this.ast.newContinueStatement();
-		continueStatement.setLabel(this.ast.newSimpleName("label")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", continueStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "continue label;", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Break + label  ==> BreakStatement
-	 */
-	public void test0096() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0096", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		LabeledStatement labeledStatement = (LabeledStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ForStatement forStatement = (ForStatement) labeledStatement.getBody();
-		BreakStatement statement = (BreakStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		BreakStatement breakStatement = this.ast.newBreakStatement();
-		breakStatement.setLabel(this.ast.newSimpleName("label")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", breakStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "break label;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * SwitchStatement ==> SwitchStatement
-	 */
-	public void test0097() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0097", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		SwitchStatement switchStatement = this.ast.newSwitchStatement();
-		switchStatement.setExpression(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		SwitchCase _case = this.ast.newSwitchCase();
-		_case.setExpression(this.ast.newNumberLiteral("1"));//$NON-NLS-1$
-		switchStatement.statements().add(_case);
-		switchStatement.statements().add(this.ast.newBreakStatement());
-		_case = this.ast.newSwitchCase();
-		_case.setExpression(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		switchStatement.statements().add(_case);
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		QualifiedName name = 
-			this.ast.newQualifiedName(
-				this.ast.newSimpleName("System"),//$NON-NLS-1$
-				this.ast.newSimpleName("out"));//$NON-NLS-1$
-		methodInvocation.setExpression(name);
-		methodInvocation.setName(this.ast.newSimpleName("println")); //$NON-NLS-1$
-		methodInvocation.arguments().add(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		ExpressionStatement expressionStatement = this.ast.newExpressionStatement(methodInvocation);
-		switchStatement.statements().add(expressionStatement);
-		switchStatement.statements().add(this.ast.newBreakStatement());
-		_case = this.ast.newSwitchCase();
-		_case.setExpression(null);
-		switchStatement.statements().add(_case);
-		methodInvocation = this.ast.newFunctionInvocation();
-		name = 
-			this.ast.newQualifiedName(
-				this.ast.newSimpleName("System"),//$NON-NLS-1$
-				this.ast.newSimpleName("out"));//$NON-NLS-1$
-		methodInvocation.setExpression(name);
-		methodInvocation.setName(this.ast.newSimpleName("println")); //$NON-NLS-1$
-		StringLiteral literal = this.ast.newStringLiteral();
-		literal.setLiteralValue("default");	//$NON-NLS-1$
-		methodInvocation.arguments().add(literal);
-		expressionStatement = this.ast.newExpressionStatement(methodInvocation);
-		switchStatement.statements().add(expressionStatement);
-		assertTrue("Both AST trees should be identical", switchStatement.subtreeMatch(new ASTMatcher(), node));	//$NON-NLS-1$
-		String expectedSource = "switch(i) {\n" +//$NON-NLS-1$
-			 "			case 1: \n" +//$NON-NLS-1$
-			 "              break;\n" +//$NON-NLS-1$
-			 "			case 2:\n" +//$NON-NLS-1$
-			 "				System.out.println(2);\n" +//$NON-NLS-1$
-			 "              break;\n" +//$NON-NLS-1$
-			 "          default:\n" +//$NON-NLS-1$
-			 "				System.out.println(\"default\");\n" +//$NON-NLS-1$
-			 "		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-		SwitchStatement switchStatement2 = (SwitchStatement) node;
-		List statements = switchStatement2.statements();
-		assertEquals("wrong size", 7, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(5);
-		assertTrue("Not a case statement", stmt instanceof SwitchCase); //$NON-NLS-1$
-		SwitchCase switchCase = (SwitchCase) stmt;
-		assertTrue("Not the default case", switchCase.isDefault()); //$NON-NLS-1$
-	}
-
-	/**
-	 * EmptyStatement ==> EmptyStatement
-	 */
-	public void test0098() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0098", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		EmptyStatement emptyStatement = this.ast.newEmptyStatement();
-		assertTrue("Both AST trees should be identical", emptyStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * DoStatement ==> DoStatement
-	 */
-	public void test0099() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0099", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		DoStatement doStatement = this.ast.newDoStatement();
-		Block block = this.ast.newBlock();
-		block.statements().add(this.ast.newEmptyStatement());
-		doStatement.setBody(block);
-		doStatement.setExpression(this.ast.newBooleanLiteral(true));
-		assertTrue("Both AST trees should be identical", doStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "do {;\n" +//$NON-NLS-1$
-			 "		} while(true);";//$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * WhileStatement ==> WhileStatement
-	 */
-	public void test0100() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0100", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		WhileStatement whileStatement = this.ast.newWhileStatement();
-		whileStatement.setExpression(this.ast.newBooleanLiteral(true));
-		whileStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", whileStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "while(true);", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * WhileStatement ==> WhileStatement
-	 */
-	public void test0101() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0101", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		WhileStatement whileStatement = this.ast.newWhileStatement();
-		whileStatement.setExpression(this.ast.newBooleanLiteral(true));
-		whileStatement.setBody(this.ast.newBlock());
-		assertTrue("Both AST trees should be identical", whileStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "while(true) {}", source);//$NON-NLS-1$
-	}
-	
-	/**
-	 * ExtendedStringLiteral ==> StringLiteral
-	 */
-	public void test0102() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0102", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("Hello"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue(" World"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("!"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"Hello\" + \" World\" + \"!\"", source);//$NON-NLS-1$
-	}
-	
-	/**
-	 * ExtendedStringLiteral ==> StringLiteral
-	 */
-	public void test0103() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0103", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("Hello"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue(" World"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("!"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("!"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"Hello\" + \" World\" + \"!\" + \"!\"", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ExtendedStringLiteral ==> StringLiteral
-	 */
-	public void test0104() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0104", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("Hello"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue(" World"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("!"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		NumberLiteral numberLiteral = this.ast.newNumberLiteral();//$NON-NLS-1$
-		numberLiteral.setToken("4"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(numberLiteral);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"Hello\" + \" World\" + \"!\" + 4", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0105() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0105", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "4 + 5 + 6 + 4", source);//$NON-NLS-1$
-	}
-	
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0106() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0106", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.MINUS);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		
-		InfixExpression infixExpression2 = this.ast.newInfixExpression();
-		infixExpression2.setOperator(InfixExpression.Operator.PLUS);
-		infixExpression2.setLeftOperand(infixExpression);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression2.setRightOperand(literal);		
-		
-		InfixExpression infixExpression3 = this.ast.newInfixExpression();
-		infixExpression3.setOperator(InfixExpression.Operator.PLUS);
-		infixExpression3.setLeftOperand(infixExpression2);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression3.setRightOperand(literal);		
-		
-		assertTrue("Both AST trees should be identical", infixExpression3.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "4 - 5 + 6 + 4", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0107() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0107", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.MINUS);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "4 - 5 - 6 - 4", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0108() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0108", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral stringLiteral = this.ast.newStringLiteral();//$NON-NLS-1$
-		stringLiteral.setLiteralValue("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(stringLiteral);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"4\" + 5 + 6 + 4", source);//$NON-NLS-1$
-	}
-	
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0109() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0109", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.MINUS);
-		StringLiteral stringLiteral = this.ast.newStringLiteral();//$NON-NLS-1$
-		stringLiteral.setLiteralValue("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(stringLiteral);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		
-		InfixExpression infixExpression2 = this.ast.newInfixExpression();
-		infixExpression2.setOperator(InfixExpression.Operator.PLUS);
-		infixExpression2.setLeftOperand(infixExpression);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression2.setRightOperand(literal);		
-		
-		InfixExpression infixExpression3 = this.ast.newInfixExpression();
-		infixExpression3.setOperator(InfixExpression.Operator.PLUS);
-		infixExpression3.setLeftOperand(infixExpression2);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression3.setRightOperand(literal);		
-		
-		assertTrue("Both AST trees should be identical", infixExpression3.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"4\" - 5 + 6 + 4", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ReturnStatement ==> ReturnStatement
-	 */
-	public void test0110() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0110", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		assertTrue("Both AST trees should be identical", returnStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "return 2;", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ReturnStatement ==> ReturnStatement
-	 */
-	public void test0111() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0111", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		assertTrue("Both AST trees should be identical", returnStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "return 2\\u003B", source);//$NON-NLS-1$
-	}
-	
-
-
-	/**
-	 * TryStatement ==> TryStatement
-	 */
-	public void test0113() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0113", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		TryStatement tryStatement = this.ast.newTryStatement();
-		tryStatement.setBody(this.ast.newBlock());
-		tryStatement.setFinally(this.ast.newBlock());
-		CatchClause catchBlock = this.ast.newCatchClause();
-		catchBlock.setBody(this.ast.newBlock());
-		SingleVariableDeclaration exceptionVariable = this.ast.newSingleVariableDeclaration();
-		exceptionVariable.setName(this.ast.newSimpleName("e"));//$NON-NLS-1$
-		exceptionVariable.setType(this.ast.newSimpleType(this.ast.newSimpleName("Exception")));//$NON-NLS-1$
-		catchBlock.setException(exceptionVariable);
-		tryStatement.catchClauses().add(catchBlock);
-		assertTrue("Both AST trees should be identical", tryStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "try {\n" +//$NON-NLS-1$
-			 "		} catch(Exception e) {\n" +//$NON-NLS-1$
-			 "		} finally {\n" +//$NON-NLS-1$
-			 "		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * TryStatement ==> TryStatement
-	 */
-	public void test0114() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0114", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		TryStatement tryStatement = this.ast.newTryStatement();
-		tryStatement.setBody(this.ast.newBlock());
-		CatchClause catchBlock = this.ast.newCatchClause();
-		catchBlock.setBody(this.ast.newBlock());
-		SingleVariableDeclaration exceptionVariable = this.ast.newSingleVariableDeclaration();
-		exceptionVariable.setName(this.ast.newSimpleName("e"));//$NON-NLS-1$
-		exceptionVariable.setType(this.ast.newSimpleType(this.ast.newSimpleName("Exception")));//$NON-NLS-1$
-		catchBlock.setException(exceptionVariable);
-		tryStatement.catchClauses().add(catchBlock);
-		assertTrue("Both AST trees should be identical", tryStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "try {\n" +//$NON-NLS-1$
-			 "		} catch(Exception e) {\n" +//$NON-NLS-1$
-			 "		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * TryStatement ==> TryStatement
-	 */
-	public void test0115() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0115", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		TryStatement tryStatement = this.ast.newTryStatement();
-		Block block = this.ast.newBlock();
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		block.statements().add(returnStatement);
-		tryStatement.setBody(block);
-		CatchClause catchBlock = this.ast.newCatchClause();
-		catchBlock.setBody(this.ast.newBlock());
-		SingleVariableDeclaration exceptionVariable = this.ast.newSingleVariableDeclaration();
-		exceptionVariable.setName(this.ast.newSimpleName("e"));//$NON-NLS-1$
-		exceptionVariable.setType(this.ast.newSimpleType(this.ast.newSimpleName("Exception")));//$NON-NLS-1$
-		catchBlock.setException(exceptionVariable);
-		tryStatement.catchClauses().add(catchBlock);
-		assertTrue("Both AST trees should be identical", tryStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "try {\n" +//$NON-NLS-1$
-			 "			return 2;\n" +//$NON-NLS-1$
-			 "		} catch(Exception e) {\n" +//$NON-NLS-1$
-			 "		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-		
-	/**
-	 * ThrowStatement ==> ThrowStatement
-	 */
-	public void test0116() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0116", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ThrowStatement throwStatement = this.ast.newThrowStatement();
-		throwStatement.setExpression(this.ast.newSimpleName("e")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", throwStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "throw e   \\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ThrowStatement ==> ThrowStatement
-	 */
-	public void test0117() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0117", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ThrowStatement throwStatement = this.ast.newThrowStatement();
-		throwStatement.setExpression(this.ast.newSimpleName("e")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", throwStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "throw e /* comment in the middle of a throw */  \\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ThrowStatement ==> ThrowStatement
-	 */
-	public void test0118() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0118", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ThrowStatement throwStatement = this.ast.newThrowStatement();
-		throwStatement.setExpression(this.ast.newSimpleName("e")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", throwStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "throw e /* comment in the middle of a throw */  \\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0119() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0119", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ifStatement.setThenStatement(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "if (true)\\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0120() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0120", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ifStatement.setThenStatement(this.ast.newEmptyStatement());
-		ifStatement.setElseStatement(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "if (true)\\u003B\n" +//$NON-NLS-1$
-			 "\t\telse ;"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0121() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0121", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ifStatement.setThenStatement(this.ast.newBlock());
-		ifStatement.setElseStatement(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "if (true) {}\n" +//$NON-NLS-1$
-			 "		else ;"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0122() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0122", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		ifStatement.setThenStatement(returnStatement);
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "if (true) return 2\\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0123() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0123", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		ifStatement.setThenStatement(returnStatement);
-		returnStatement = this.ast.newReturnStatement();
-		literal = this.ast.newNumberLiteral();
-		literal.setToken("3");//$NON-NLS-1$
-		returnStatement.setExpression(literal);		
-		ifStatement.setElseStatement(returnStatement);
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "if (true) return 2;\n" +//$NON-NLS-1$
-			 "		else return 3;"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * Multiple local declaration => VariabledeclarationStatement
-	 */
-	public void test0124() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0124", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("x"));//$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("10");//$NON-NLS-1$
-		fragment.setInitializer(literal);
-		fragment.setExtraDimensions(0);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("z"));//$NON-NLS-1$
-		fragment.setInitializer(this.ast.newNullLiteral());
-		fragment.setExtraDimensions(1);
-		statement.fragments().add(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		fragment.setExtraDimensions(0);
-		statement.fragments().add(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("j"));//$NON-NLS-1$
-		fragment.setExtraDimensions(2);
-		statement.fragments().add(fragment);
-		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		VariableDeclarationFragment[] fragments = (VariableDeclarationFragment[])((VariableDeclarationStatement) node).fragments().toArray(new VariableDeclarationFragment[4]);
-		assertTrue("fragments.length != 4", fragments.length == 4); //$NON-NLS-1$
-		checkSourceRange(fragments[0], "x= 10", source);//$NON-NLS-1$
-		checkSourceRange(fragments[1], "z[] = null", source);//$NON-NLS-1$
-		checkSourceRange(fragments[2], "i", source);//$NON-NLS-1$
-		checkSourceRange(fragments[3], "j[][]", source);//$NON-NLS-1$
-		checkSourceRange(node, "int x= 10, z[] = null, i, j[][];", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * Multiple local declaration => VariabledeclarationStatement
-	 */
-	public void test0125() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0125", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("x"));//$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("10");//$NON-NLS-1$
-		fragment.setInitializer(literal);
-		fragment.setExtraDimensions(0);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("z"));//$NON-NLS-1$
-		fragment.setInitializer(this.ast.newNullLiteral());
-		fragment.setExtraDimensions(1);
-		statement.fragments().add(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		fragment.setExtraDimensions(0);
-		statement.fragments().add(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("j"));//$NON-NLS-1$
-		fragment.setExtraDimensions(2);
-		statement.fragments().add(fragment);
-		statement.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 1));
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int[] x= 10, z[] = null, i, j[][];", source); //$NON-NLS-1$
-		VariableDeclarationFragment[] fragments = (VariableDeclarationFragment[])((VariableDeclarationStatement) node).fragments().toArray(new VariableDeclarationFragment[4]);
-		assertTrue("fragments.length != 4", fragments.length == 4); //$NON-NLS-1$
-		checkSourceRange(fragments[0], "x= 10", source);//$NON-NLS-1$
-		checkSourceRange(fragments[1], "z[] = null", source);//$NON-NLS-1$
-		checkSourceRange(fragments[2], "i", source);//$NON-NLS-1$
-		checkSourceRange(fragments[3], "j[][]", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement
-	 */
-	public void test0126() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0126", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("tab")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNullLiteral());//$NON-NLS-1$
-		variableDeclarationFragment.setExtraDimensions(1);
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setType(this.ast.newArrayType(this.ast.newSimpleType(this.ast.newSimpleName("String")), 1));//$NON-NLS-1$
-		forStatement.initializers().add(variableDeclarationExpression);
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(prefixExpression);
-		forStatement.setBody(this.ast.newBlock());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (String[] tab[] = null;; ++i) {}", source); //$NON-NLS-1$
-		checkSourceRange((ASTNode) ((ForStatement) node).updaters().get(0), "++i", source); //$NON-NLS-1$
-		checkSourceRange((ASTNode) ((ForStatement) node).initializers().get(0), "String[] tab[] = null", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement
-	 */
-	public void test0127() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0127", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("tab")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNullLiteral());//$NON-NLS-1$
-		variableDeclarationFragment.setExtraDimensions(1);
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-		forStatement.initializers().add(variableDeclarationExpression);
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(prefixExpression);
-		forStatement.setBody(this.ast.newBlock());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (String tab[] = null;; ++i) {}", source); //$NON-NLS-1$
-		checkSourceRange((ASTNode) ((ForStatement) node).updaters().get(0), "++i", source); //$NON-NLS-1$
-		checkSourceRange((ASTNode) ((ForStatement) node).initializers().get(0), "String tab[] = null", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement
-	 */
-	public void test0128() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0128", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("tab")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNullLiteral());//$NON-NLS-1$
-		variableDeclarationFragment.setExtraDimensions(1);
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-		forStatement.initializers().add(variableDeclarationExpression);
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		forStatement.setBody(this.ast.newBlock());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (String tab[] = null;; i++/**/) {}", source); //$NON-NLS-1$
-		checkSourceRange((ASTNode) ((ForStatement) node).updaters().get(0), "i++", source); //$NON-NLS-1$
-		checkSourceRange((ASTNode) ((ForStatement) node).initializers().get(0), "String tab[] = null", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * FieldDeclaration
-	 */
-	public void test0129() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0129", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		VariableDeclarationFragment frag = (VariableDeclarationFragment) ((FieldDeclaration) node).fragments().get(0);
-		assertTrue("Not a declaration", frag.getName().isDeclaration()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		fragment.setExtraDimensions(0);
-		FieldDeclaration fieldDeclaration = this.ast.newFieldDeclaration(fragment);
-		fieldDeclaration.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		assertTrue("Both AST trees should be identical", fieldDeclaration.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * FieldDeclaration
-	 */
-	public void test0130() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0130", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("x")); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("10"); //$NON-NLS-1$
-		fragment.setInitializer(literal);
-		fragment.setExtraDimensions(0);
-		FieldDeclaration fieldDeclaration = this.ast.newFieldDeclaration(fragment);
-		fieldDeclaration.modifiers().add(this.ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
-		fieldDeclaration.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("y"));//$NON-NLS-1$
-		fragment.setExtraDimensions(1);
-		fragment.setInitializer(this.ast.newNullLiteral());
-		fieldDeclaration.fragments().add(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		fragment.setExtraDimensions(0);
-		fieldDeclaration.fragments().add(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("j"));//$NON-NLS-1$
-		fragment.setExtraDimensions(2);
-		fieldDeclaration.fragments().add(fragment);
-		assertTrue("Both AST trees should be identical", fieldDeclaration.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "public int x= 10, y[] = null, i, j[][];", source); //$NON-NLS-1$
-		VariableDeclarationFragment[] fragments = (VariableDeclarationFragment[])((FieldDeclaration) node).fragments().toArray(new VariableDeclarationFragment[4]);
-		assertTrue("fragments.length != 4", fragments.length == 4); //$NON-NLS-1$
-		checkSourceRange(fragments[0], "x= 10", source);//$NON-NLS-1$
-		checkSourceRange(fragments[1], "y[] = null", source);//$NON-NLS-1$
-		checkSourceRange(fragments[2], "i", source);//$NON-NLS-1$
-		checkSourceRange(fragments[3], "j[][]", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * Argument with final modifier
-	 */
-	public void test0131() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0131", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		assertTrue("Not a declaration", ((FunctionDeclaration) node).getName().isDeclaration()); //$NON-NLS-1$
-		List parameters = ((FunctionDeclaration) node).parameters();
-		assertTrue("Parameters.length != 1", parameters.size() == 1);		//$NON-NLS-1$
-		SingleVariableDeclaration arg = (SingleVariableDeclaration) ((FunctionDeclaration) node).parameters().get(0);
-		SingleVariableDeclaration singleVariableDeclaration = this.ast.newSingleVariableDeclaration();
-		singleVariableDeclaration.modifiers().add(this.ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD));
-		singleVariableDeclaration.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		singleVariableDeclaration.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		assertTrue("Both AST trees should be identical", singleVariableDeclaration.subtreeMatch(new ASTMatcher(), arg));		//$NON-NLS-1$
-		checkSourceRange(node, "void foo(final int i) {}", source); //$NON-NLS-1$
-		checkSourceRange(arg, "final int i", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0132() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0132", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		checkSourceRange(node, "/** JavaDoc Comment*/\n  void foo(final int i) {}", source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test0133() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0133", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "void foo(final int i) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test0134() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0134", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "void foo(final int i) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FieldDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0135() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0135", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((FieldDeclaration) node).getJavadoc();
-		checkSourceRange(node, "/** JavaDoc Comment*/\n  int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FieldDeclaration
-	 */
-	public void test0136() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0136", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FieldDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FieldDeclaration
-	 */
-	public void test0137() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0137", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FieldDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for TypeDeclaration
-	 */
-	public void test0138() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0138", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		String expectedContents = "public class Test {\n" +//$NON-NLS-1$
-			"  int i;\n"  +//$NON-NLS-1$
-			"}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for TypeDeclaration
-	 */
-	public void test0139() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0139", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		String expectedContents = "public class Test {\n" +//$NON-NLS-1$
-			"  int i;\n"  +//$NON-NLS-1$
-			"}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for TypeDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0140() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0140", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		String expectedContents = 
-			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-			"public class Test {\n" +//$NON-NLS-1$
-			"  int i;\n"  +//$NON-NLS-1$
-			"}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for MemberTypeDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0141() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0141", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		String expectedContents = 
-			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-			 "  class B {}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for MemberTypeDeclaration
-	 */
-	public void test0142() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0142", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "class B {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for MemberTypeDeclaration
-	 */
-	public void test0143() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0143", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "public static class B {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for MemberTypeDeclaration
-	 */
-	public void test0144() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0144", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "public static class B {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking initializers
-	 */
-	public void test0145() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0145", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		checkSourceRange(node, "{}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking initializers
-	 */
-	public void test0146() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0146", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		checkSourceRange(node, "static {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking initializers
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0147() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0147", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((Initializer) node).getJavadoc();
-		assertNotNull("Javadoc comment should no be null", actualJavadoc); //$NON-NLS-1$
-		String expectedContents = 
-			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-			 "  static {}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-		
-	}
-
-	/**
-	 * Checking initializers
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0148() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0148", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((Initializer) node).getJavadoc();
-		assertNotNull("Javadoc comment should not be null", actualJavadoc); //$NON-NLS-1$
-		String expectedContents = 
-			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-			 "  {}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-		
-	}
-
-	/**
-	 * Checking initializers
-	 */
-	public void test0149() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0149", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((Initializer) node).getJavadoc();
-		assertNull("Javadoc comment should be null", actualJavadoc); //$NON-NLS-1$
-		checkSourceRange(node, "{}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking syntax error
-	 */
-	public void test0150() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0150", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertTrue("The compilation unit is malformed", !isMalformed(unit)); //$NON-NLS-1$
-		assertTrue("The package declaration is not malformed", isMalformed(unit.getPackage())); //$NON-NLS-1$
-		List imports = unit.imports();
-		assertTrue("The imports list size is not one", imports.size() == 1); //$NON-NLS-1$
-		assertTrue("The first import is malformed", !isMalformed((ASTNode) imports.get(0))); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking syntax error
-	 */
-	public void test0151() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0151", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The compilation unit is malformed", !isMalformed(result)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking syntax error
-	 */
-	public void test0152() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0152", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The compilation unit is malformed", !isMalformed(result)); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The type is malformed", !isMalformed(node)); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The field is not malformed", isMalformed(node)); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The method is not malformed", isMalformed(node)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking syntax error
-	 */
-	public void test0153() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0153", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The compilation unit is malformed", !isMalformed(result)); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The method is not original", isOriginal(node)); //$NON-NLS-1$
-		assertTrue("The method is not malformed", isMalformed(node)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking binding of package declaration
-	 */
-	public void test0154() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0154", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		IBinding binding = compilationUnit.getPackage().getName().resolveBinding();
-		assertNotNull("The package binding is null", binding); //$NON-NLS-1$
-		assertTrue("The binding is not a package binding", binding instanceof IPackageBinding); //$NON-NLS-1$
-		IPackageBinding packageBinding = (IPackageBinding) binding;
-		assertEquals("The package name is incorrect", "test0154", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = compilationUnit.getPackage().getName().resolveBinding();
-		assertTrue("The package binding is not canonical", binding == binding2); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking arguments positions
-	 */
-	public void test0155() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0155", "Test.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);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit);  //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("The result is not a method declaration", node instanceof FunctionDeclaration);  //$NON-NLS-1$
-		FunctionDeclaration methodDecl = (FunctionDeclaration) node;
-		List parameters = methodDecl.parameters();
-		assertTrue("The parameters size is different from 2", parameters.size() == 2);  //$NON-NLS-1$
-		Object parameter = parameters.get(0);
-		assertTrue("The parameter is not a SingleVariableDeclaration", parameter instanceof SingleVariableDeclaration);  //$NON-NLS-1$
-		checkSourceRange((ASTNode) parameter, "int i", source); //$NON-NLS-1$
-		parameter = parameters.get(1);
-		assertTrue("The parameter is not a SingleVariableDeclaration", parameter instanceof SingleVariableDeclaration);  //$NON-NLS-1$
-		checkSourceRange((ASTNode) parameter, "final boolean b", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Checking arguments positions
-	 */
-	public void test0156() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0156", "Test.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);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit);  //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("The result is not a method declaration", node instanceof FunctionDeclaration);  //$NON-NLS-1$
-		FunctionDeclaration methodDecl = (FunctionDeclaration) node;
-		List parameters = methodDecl.parameters();
-		assertTrue("The parameters size is different from 1", parameters.size() == 1);  //$NON-NLS-1$
-		Object parameter = parameters.get(0);
-		assertTrue("The parameter is not a SingleVariableDeclaration", parameter instanceof SingleVariableDeclaration);  //$NON-NLS-1$
-		checkSourceRange((ASTNode) parameter, "int i", source); //$NON-NLS-1$
-		Block block = methodDecl.getBody();
-		List statements = block.statements();
-		assertTrue("The statements size is different from 2", statements.size() == 2);  //$NON-NLS-1$
-		ASTNode statement = (ASTNode) statements.get(0);
-		assertTrue("The statements[0] is a postfixExpression statement", statement instanceof ExpressionStatement);  //$NON-NLS-1$
-	}
-
-	/**
-	 * Check canonic binding for fields
-	 */
-	public void test0157() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test0157.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Type binding is null", typeBinding); //$NON-NLS-1$
-		assertTrue("The type binding is canonical", typeBinding == typeDeclaration.resolveBinding()); //$NON-NLS-1$
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertTrue("The body declaration list is empty", bodyDeclarations.size() != 0); //$NON-NLS-1$
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("This is not a field", bodyDeclaration instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) bodyDeclaration;
-		List variableFragments = fieldDeclaration.fragments();
-		assertTrue("The fragment list is empty", variableFragments.size() != 0); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableFragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("the field binding is null", variableBinding); //$NON-NLS-1$
-		assertFalse("Not a parameter", variableBinding.isParameter());
-		assertTrue("The field binding is not canonical", variableBinding == fragment.resolveBinding()); //$NON-NLS-1$
-		typeBinding = variableBinding.getType();
-		assertTrue("The type is not an array type", typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue("The type binding for the field is not canonical", typeBinding == variableBinding.getType()); //$NON-NLS-1$
-		SimpleName name = fragment.getName();
-		assertTrue("is a declaration", name.isDeclaration()); //$NON-NLS-1$
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong type", IBinding.VARIABLE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("not a field", ((IVariableBinding) binding).isField()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check canonic bindings for fields
-	 */
-	public void test0158() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test0158.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Type binding is null", typeBinding); //$NON-NLS-1$
-		assertTrue("The type binding is canonical", typeBinding == typeDeclaration.resolveBinding()); //$NON-NLS-1$
-		SimpleName simpleName = typeDeclaration.getName();
-		assertTrue("is a declaration", simpleName.isDeclaration()); //$NON-NLS-1$
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertEquals("wrong name", simpleName.getIdentifier(), binding.getName()); //$NON-NLS-1$
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertTrue("The body declaration list is empty", bodyDeclarations.size() != 0); //$NON-NLS-1$
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("This is not a field", bodyDeclaration instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) bodyDeclaration;
-		List variableFragments = fieldDeclaration.fragments();
-		assertTrue("The fragment list is empty", variableFragments.size() != 0); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableFragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("the field binding is null", variableBinding); //$NON-NLS-1$
-		assertTrue("The field binding is not canonical", variableBinding == fragment.resolveBinding()); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = variableBinding.getType();
-		assertTrue("The type is not an array type", typeBinding2.isArray()); //$NON-NLS-1$
-		assertTrue("The type binding for the field is not canonical", typeBinding2 == variableBinding.getType()); //$NON-NLS-1$
-		assertTrue("The type binding for the field is not canonical with the declaration type binding", typeBinding == typeBinding2.getElementType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Define an anonymous type
-	 */
-	public void test0159() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0159", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check bindings for multiple field declarations
-	 */
-	public void test0160() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0160", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Type binding is null", typeBinding); //$NON-NLS-1$
-		assertTrue("The type binding is canonical", typeBinding == typeDeclaration.resolveBinding()); //$NON-NLS-1$
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertTrue("The body declaration list is empty", bodyDeclarations.size() != 0); //$NON-NLS-1$
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("This is not a field", bodyDeclaration instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) bodyDeclaration;
-		List variableFragments = fieldDeclaration.fragments();
-		assertTrue("The fragment list size is not 2", variableFragments.size() == 2); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableFragments.get(0);
-		IVariableBinding variableBinding1 = fragment.resolveBinding();
-		assertNotNull("the field binding is null", variableBinding1); //$NON-NLS-1$
-		assertTrue("The field binding is not canonical", variableBinding1 == fragment.resolveBinding()); //$NON-NLS-1$
-		ITypeBinding type1 = variableBinding1.getType();
-		assertNotNull("The type is null", type1); //$NON-NLS-1$
-		assertTrue("The field type is canonical", type1 == variableBinding1.getType()); //$NON-NLS-1$
-		assertTrue("The type is not an array type",type1.isArray()); //$NON-NLS-1$
-		assertTrue("The type dimension is 1", type1.getDimensions() == 1); //$NON-NLS-1$
-		fragment = (VariableDeclarationFragment) variableFragments.get(1);
-		IVariableBinding variableBinding2 = fragment.resolveBinding();
-		assertNotNull("the field binding is null", variableBinding2); //$NON-NLS-1$
-		assertTrue("The field binding is not canonical", variableBinding2 == fragment.resolveBinding()); //$NON-NLS-1$
-		ITypeBinding type2 = variableBinding2.getType();
-		type2 = variableBinding2.getType();
-		assertNotNull("The type is null", type2); //$NON-NLS-1$
-		assertTrue("The field type is canonical", type2 == variableBinding2.getType()); //$NON-NLS-1$
-		assertTrue("The type is not an array type",type2.isArray()); //$NON-NLS-1$
-		assertTrue("The type dimension is 2", type2.getDimensions() == 2); //$NON-NLS-1$
-		assertTrue("Element type is canonical", type1.getElementType() == type2.getElementType()); //$NON-NLS-1$
-		assertTrue("type1.id < type2.id", variableBinding1.getVariableId() < variableBinding2.getVariableId()); //$NON-NLS-1$
-				
-	}
-	
-	/**
-	 * Check ITypeBinding APIs:
-	 *  - getModifiers()
-	 *  - getElementType() when it is not an array type
-	 *  - getDimensions() when it is not an array type
-	 *  - getDeclaringClass()
-	 *  - getDeclaringName()
-	 *  - getName()
-	 *  - isNested()
-	 *  - isAnonymous()
-	 *  - isLocal()
-	 *  - isMember()
-	 *  - isArray()
-	 *  - getDeclaredMethods() => returns binding for default constructor
-	 *  - isPrimitive()
-	 *  - isTopLevel()
-	 *  - getSuperclass()
-	 */
-	public void test0161() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0161", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("The type binding should not be null", typeBinding); //$NON-NLS-1$
-		assertEquals("The modifier is PUBLIC", Modifier.PUBLIC, typeBinding.getModifiers()); //$NON-NLS-1$
-		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertNull("This is not a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-		assertEquals("Contains the default constructor", 1, methods.length); //$NON-NLS-1$
-		assertEquals("The name is not Test", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("An anonymous class", !typeBinding.isAnonymous()); //$NON-NLS-1$
-		assertTrue("A local class", !typeBinding.isLocal()); //$NON-NLS-1$
-		assertTrue("A nested class", !typeBinding.isNested()); //$NON-NLS-1$
-		assertTrue("A member class", !typeBinding.isMember()); //$NON-NLS-1$
-		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-		assertTrue("Is nested", typeBinding.isTopLevel()); //$NON-NLS-1$
-		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-		ITypeBinding superclass = typeBinding.getSuperclass();
-		assertNotNull("No superclass", superclass); //$NON-NLS-1$
-		assertTrue("From source", !superclass.isFromSource()); //$NON-NLS-1$
-		ITypeBinding supersuperclass = superclass.getSuperclass();
-		assertNull("No superclass for java.lang.Object", supersuperclass); //$NON-NLS-1$
-		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check ITypeBinding APIs:
-	 *  - getModifiers()
-	 *  - getElementType() when it is not an array type
-	 *  - getDimensions() when it is not an array type
-	 *  - getDeclaringClass()
-	 *  - getDeclaringName()
-	 *  - getName()
-	 *  - isNested()
-	 *  - isAnonymous()
-	 *  - isLocal()
-	 *  - isMember()
-	 *  - isArray()
-	 *  - getDeclaredMethods() => returns binding for default constructor
-	 *  - isPrimitive()
-	 *  - isTopLevel()
-	 *  - getSuperclass()
-	 */
-	public void test0162() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0162", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("The type binding should not be null", typeBinding); //$NON-NLS-1$
-		assertEquals("The modifier is PUBLIC", Modifier.PUBLIC, typeBinding.getModifiers()); //$NON-NLS-1$
-		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertNull("This is not a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-		assertEquals("Contains no methos", 0, methods.length); //$NON-NLS-1$
-		assertEquals("The name is not Test", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("An anonymous class", !typeBinding.isAnonymous()); //$NON-NLS-1$
-		assertTrue("A local class", !typeBinding.isLocal()); //$NON-NLS-1$
-		assertTrue("A nested class", !typeBinding.isNested()); //$NON-NLS-1$
-		assertTrue("A member class", !typeBinding.isMember()); //$NON-NLS-1$
-		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue("A class", !typeBinding.isClass()); //$NON-NLS-1$
-		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-		assertTrue("Is nested", typeBinding.isTopLevel()); //$NON-NLS-1$
-		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-		ITypeBinding superclass = typeBinding.getSuperclass();
-		assertNull("No superclass", superclass); //$NON-NLS-1$
-		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test binding for anonymous declaration: new java.lang.Object() {}
-	 */
-	public void test0163() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0163", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		assertTrue("Not an anonymous type declaration", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation anonymousClass = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = anonymousClass.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not an anonymous class", typeBinding.isAnonymous()); //$NON-NLS-1$
-		assertEquals("The modifier is not default", Modifier.NONE, typeBinding.getModifiers()); //$NON-NLS-1$
-		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertNotNull("This is a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-		assertEquals("The name is not empty", "", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-		assertEquals("Contains the default constructor", 1, methods.length); //$NON-NLS-1$
-		assertTrue("Not a local class", typeBinding.isLocal()); //$NON-NLS-1$
-		assertTrue("Not a nested class", typeBinding.isNested()); //$NON-NLS-1$
-		assertTrue("A member class", !typeBinding.isMember()); //$NON-NLS-1$
-		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-		assertTrue("Is a top level", !typeBinding.isTopLevel()); //$NON-NLS-1$
-		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-		assertEquals("wrong qualified name", "", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding superclass = typeBinding.getSuperclass();
-		assertNotNull("No superclass", superclass); //$NON-NLS-1$
-		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Test binding for member type declaration
-	 */
-	public void test0164() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0164", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Not an type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertTrue("An anonymous class", !typeBinding.isAnonymous()); //$NON-NLS-1$
-		assertEquals("The modifier is not default", Modifier.PRIVATE, typeBinding.getModifiers()); //$NON-NLS-1$
-		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertNotNull("This is not a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-		assertEquals("The name is not 'B'", "B", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-		assertEquals("Contains the default constructor", 1, methods.length); //$NON-NLS-1$
-		assertTrue("A local class", !typeBinding.isLocal()); //$NON-NLS-1$
-		assertTrue("Not a nested class", typeBinding.isNested()); //$NON-NLS-1$
-		assertTrue("Not a member class", typeBinding.isMember()); //$NON-NLS-1$
-		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-		assertTrue("Is a top level", !typeBinding.isTopLevel()); //$NON-NLS-1$
-		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-		ITypeBinding superclass = typeBinding.getSuperclass();
-		assertNotNull("No superclass", superclass); //$NON-NLS-1$
-		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Test binding for local type declaration
-	 */
-	public void test0165() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0165", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Not an type declaration", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-		TypeDeclarationStatement statement = (TypeDeclarationStatement) node;
-		AbstractTypeDeclaration typeDeclaration = statement.getDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertTrue("An anonymous class", !typeBinding.isAnonymous()); //$NON-NLS-1$
-		assertEquals("The modifier is not default", Modifier.NONE, typeBinding.getModifiers()); //$NON-NLS-1$
-		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertNotNull("This is not a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-		assertEquals("The name is not 'C'", "C", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-		assertEquals("Contains the default constructor", 1, methods.length); //$NON-NLS-1$
-		assertTrue("Not a local class", typeBinding.isLocal()); //$NON-NLS-1$
-		assertTrue("Not a nested class", typeBinding.isNested()); //$NON-NLS-1$
-		assertTrue("A member class", !typeBinding.isMember()); //$NON-NLS-1$
-		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-		assertTrue("Is a top level", !typeBinding.isTopLevel()); //$NON-NLS-1$
-		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-		assertEquals("wrong qualified name", "", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding superclass = typeBinding.getSuperclass();
-		assertNotNull("No superclass", superclass); //$NON-NLS-1$
-		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * Multiple local declaration => VariabledeclarationStatement
-	 */
-	public void test0166() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0166", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("Fragment list is not 4 ", fragments.size() == 4); //$NON-NLS-1$
-		VariableDeclarationFragment fragment1 = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding binding1 = fragment1.resolveBinding();
-		assertNotNull("Binding is null", binding1); //$NON-NLS-1$
-		assertEquals("wrong name for binding1", "x", binding1.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier for binding1", 0, binding1.getModifiers()); //$NON-NLS-1$
-		assertTrue("a field", !binding1.isField()); //$NON-NLS-1$
-		assertNull("declaring class is not null", binding1.getDeclaringClass()); //$NON-NLS-1$
-		ITypeBinding typeBinding1 = binding1.getType();
-		assertNotNull("typeBinding1 is null", typeBinding1); //$NON-NLS-1$
-		assertTrue("typeBinding1 is not a primitive type", typeBinding1.isPrimitive()); //$NON-NLS-1$
-		assertTrue("typeBinding1 is not canonical", typeBinding1 == binding1.getType()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment2 = (VariableDeclarationFragment) fragments.get(1);
-		IVariableBinding binding2 = fragment2.resolveBinding();
-		assertNotNull("Binding is null", binding2); //$NON-NLS-1$
-		assertEquals("wrong name for binding2", "z", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier for binding2", 0, binding2.getModifiers()); //$NON-NLS-1$
-		assertTrue("a field", !binding2.isField()); //$NON-NLS-1$
-		assertNull("declaring class is not null", binding2.getDeclaringClass()); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = binding2.getType();
-		assertNotNull("typeBinding2 is null", typeBinding2); //$NON-NLS-1$
-		assertTrue("typeBinding2 is not an array type", typeBinding2.isArray()); //$NON-NLS-1$
-		assertTrue("typeBinding2 is not canonical", typeBinding2 == binding2.getType()); //$NON-NLS-1$
-		assertTrue("primitive type is not canonical", typeBinding1 == typeBinding2.getElementType()); //$NON-NLS-1$
-		assertEquals("dimension is 1", 1, typeBinding2.getDimensions()); //$NON-NLS-1$
-		assertEquals("it is not int[]", "int[]", typeBinding2.getName());		 //$NON-NLS-1$ //$NON-NLS-2$
-		VariableDeclarationFragment fragment3 = (VariableDeclarationFragment) fragments.get(2);
-		IVariableBinding binding3 = fragment3.resolveBinding();
-		assertNotNull("Binding is null", binding3); //$NON-NLS-1$
-		assertEquals("wrong name for binding3", "i", binding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier for binding3", 0, binding3.getModifiers()); //$NON-NLS-1$
-		assertTrue("a field", !binding3.isField()); //$NON-NLS-1$
-		assertNull("declaring class is not null", binding3.getDeclaringClass()); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = binding3.getType();
-		assertNotNull("typeBinding3 is null", typeBinding3); //$NON-NLS-1$
-		assertTrue("typeBinding3 is not an primitive type", typeBinding3.isPrimitive()); //$NON-NLS-1$
-		assertTrue("typeBinding3 is not canonical", typeBinding3 == binding3.getType()); //$NON-NLS-1$
-		assertTrue("primitive type is not canonical", typeBinding1 == typeBinding3); //$NON-NLS-1$
-		assertEquals("dimension is 0", 0, typeBinding3.getDimensions()); //$NON-NLS-1$
-		assertEquals("it is not the primitive type int", "int", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		VariableDeclarationFragment fragment4 = (VariableDeclarationFragment) fragments.get(3);
-		IVariableBinding binding4 = fragment4.resolveBinding();
-		assertNotNull("Binding is null", binding4); //$NON-NLS-1$
-		assertEquals("wrong name for binding4", "j", binding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier for binding4", 0, binding4.getModifiers()); //$NON-NLS-1$
-		assertTrue("a field", !binding4.isField()); //$NON-NLS-1$
-		assertNull("declaring class is not null", binding4.getDeclaringClass()); //$NON-NLS-1$
-		ITypeBinding typeBinding4 = binding4.getType();
-		assertNotNull("typeBinding4 is null", typeBinding4); //$NON-NLS-1$
-		assertTrue("typeBinding4 is not an array type", typeBinding4.isArray()); //$NON-NLS-1$
-		assertTrue("typeBinding4 is not canonical", typeBinding4 == binding4.getType()); //$NON-NLS-1$
-		assertTrue("primitive type is not canonical", typeBinding1 == typeBinding4.getElementType()); //$NON-NLS-1$
-		assertEquals("dimension is 2", 2, typeBinding4.getDimensions()); //$NON-NLS-1$
-		assertEquals("it is not int[][]", "int[][]", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("ids in the wrong order", binding1.getVariableId() < binding2.getVariableId()); //$NON-NLS-1$
-		assertTrue("ids in the wrong order", binding2.getVariableId() < binding3.getVariableId()); //$NON-NLS-1$
-		assertTrue("ids in the wrong order", binding3.getVariableId() < binding4.getVariableId()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check source position for new Test[1+2].length.
-	 */
-	public void test0167() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0167", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Instance of VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("fragment list size is not 1", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertNotNull("No initialization", initialization); //$NON-NLS-1$
-		assertTrue("Not a FieldAccess", initialization instanceof FieldAccess); //$NON-NLS-1$
-		checkSourceRange(initialization, "new Test[1+2].length", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check package binding: test0168.test
-	 */
-	public void test0168() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0168.test1", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-		IPackageBinding packageBinding = typeBinding.getPackage();
-		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "test0168.test1", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		String[] components = packageBinding.getNameComponents();
-		assertNotNull("no components", components); //$NON-NLS-1$
-		assertTrue("components size != 2", components.length == 2); //$NON-NLS-1$
-		assertEquals("wrong component name", "test0168", components[0]); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong component name", "test1", components[1]); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong type", IBinding.PACKAGE, packageBinding.getKind()); //$NON-NLS-1$
-		assertTrue("Unnamed package", !packageBinding.isUnnamed()); //$NON-NLS-1$
-		assertTrue("Package binding is not canonical", packageBinding == typeBinding.getPackage()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check package binding: test0169
-	 */
-	public void test0169() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0169", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-		IPackageBinding packageBinding = typeBinding.getPackage();
-		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "test0169", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		String[] components = packageBinding.getNameComponents();
-		assertNotNull("no components", components); //$NON-NLS-1$
-		assertTrue("components size != 1", components.length == 1); //$NON-NLS-1$
-		assertEquals("wrong component name", "test0169", components[0]); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong type", IBinding.PACKAGE, packageBinding.getKind()); //$NON-NLS-1$
-		assertTrue("Unnamed package", !packageBinding.isUnnamed()); //$NON-NLS-1$
-		assertTrue("Package binding is not canonical", packageBinding == typeBinding.getPackage()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check package binding: test0170
-	 */
-	public void test0170() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test0170.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-		IPackageBinding packageBinding = typeBinding.getPackage();
-		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		String[] components = packageBinding.getNameComponents();
-		assertNotNull("no components", components); //$NON-NLS-1$
-		assertTrue("components size != 0", components.length == 0); //$NON-NLS-1$
-		assertEquals("wrong type", IBinding.PACKAGE, packageBinding.getKind()); //$NON-NLS-1$
-		assertTrue("Not an unnamed package", packageBinding.isUnnamed()); //$NON-NLS-1$
-		assertTrue("Package binding is not canonical", packageBinding == typeBinding.getPackage()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check package binding: test0171
-	 */
-	public void test0171() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0171", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() == 2); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-		IPackageBinding packageBinding = typeBinding.getPackage();
-		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "test0171", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		String[] components = packageBinding.getNameComponents();
-		assertNotNull("no components", components); //$NON-NLS-1$
-		assertTrue("components size != 1", components.length == 1); //$NON-NLS-1$
-		assertEquals("wrong component name", "test0171", components[0]); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong type", IBinding.PACKAGE, packageBinding.getKind()); //$NON-NLS-1$
-		assertTrue("Unnamed package", !packageBinding.isUnnamed()); //$NON-NLS-1$
-		assertTrue("Package binding is not canonical", packageBinding == typeBinding.getPackage()); //$NON-NLS-1$
-		
-		typeDeclaration = (TypeDeclaration) types.get(1);
-		typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-		IPackageBinding packageBinding2 = typeBinding.getPackage();
-		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-		assertTrue("Package binding is not canonical", packageBinding == packageBinding2); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check method binding
-	 */
-	public void test0172() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0172", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List types = compilationUnit.types();
-		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-		assertEquals("methods.length != 4", 4, methods.length); //$NON-NLS-1$
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("body declaration size != 3", 3, bodyDeclarations.size()); //$NON-NLS-1$
-		FunctionDeclaration method1 = (FunctionDeclaration) bodyDeclarations.get(0);
-		IFunctionBinding methodBinding1 = method1.resolveBinding();
-		assertNotNull("No method binding for foo", methodBinding1); //$NON-NLS-1$
-		SimpleName simpleName = method1.getName();
-		assertTrue("not a declaration", simpleName.isDeclaration()); //$NON-NLS-1$
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", binding.getName(), simpleName.getIdentifier()); //$NON-NLS-1$
-		// search method foo
-		IFunctionBinding methodBinding = null;
-		loop: for (int i = 0, max = methods.length; i < max; i++) {
-			IFunctionBinding currentMethod = methods[i];
-			if ("foo".equals(currentMethod.getName())) {
-				methodBinding = currentMethod;
-				break loop;
-			}
-		}
-		assertNotNull("Cannot be null", methodBinding);
-		assertTrue("Canonical method binding", methodBinding1 == methodBinding); //$NON-NLS-1$
-		assertTrue("declaring class is canonical", typeBinding == methodBinding1.getDeclaringClass()); //$NON-NLS-1$
-		assertEquals("wrong modifier", Modifier.NONE, methodBinding1.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name for method", "foo", methodBinding1.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding[] parameters = methodBinding1.getParameterTypes();
-		assertNotNull("No parameters", parameters); //$NON-NLS-1$
-		assertEquals("wrong size", 1, parameters.length); //$NON-NLS-1$
-		assertEquals("wrong type", "int[]", parameters[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong return type", "void", methodBinding1.getReturnType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("A constructor", !methodBinding1.isConstructor()); //$NON-NLS-1$
-		
-		FunctionDeclaration method2 = (FunctionDeclaration) bodyDeclarations.get(1);
-		IFunctionBinding methodBinding2 = method2.resolveBinding();
-		assertNotNull("No method binding for main", methodBinding2); //$NON-NLS-1$
-		// search main
-		methodBinding = null;
-		loop: for (int i = 0, max = methods.length; i < max; i++) {
-			IFunctionBinding currentMethod = methods[i];
-			if ("main".equals(currentMethod.getName())) {
-				methodBinding = currentMethod;
-				break loop;
-			}
-		}
-		assertNotNull("Cannot be null", methodBinding);		
-		assertTrue("Canonical method binding", methodBinding2 == methodBinding); //$NON-NLS-1$
-		assertTrue("declaring class is canonical", typeBinding == methodBinding2.getDeclaringClass()); //$NON-NLS-1$
-		assertEquals("wrong modifier", Modifier.PUBLIC | Modifier.STATIC, methodBinding2.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name for method", "main", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding[] parameters2 = methodBinding2.getParameterTypes();
-		assertNotNull("No parameters", parameters2); //$NON-NLS-1$
-		assertEquals("wrong size", 1, parameters2.length); //$NON-NLS-1$
-		assertEquals("wrong type for parameter2[0]", "String[]", parameters2[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong return type", "void", methodBinding2.getReturnType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("A constructor", !methodBinding2.isConstructor()); //$NON-NLS-1$
-		
-		FunctionDeclaration method3 = (FunctionDeclaration) bodyDeclarations.get(2);
-		IFunctionBinding methodBinding3 = method3.resolveBinding();
-		assertNotNull("No method binding for bar", methodBinding3); //$NON-NLS-1$
-		// search method bar
-		methodBinding = null;
-		loop: for (int i = 0, max = methods.length; i < max; i++) {
-			IFunctionBinding currentMethod = methods[i];
-			if ("bar".equals(currentMethod.getName())) {
-				methodBinding = currentMethod;
-				break loop;
-			}
-		}
-		assertNotNull("Cannot be null", methodBinding);		
-		assertTrue("Canonical method binding", methodBinding3 == methodBinding); //$NON-NLS-1$
-		assertTrue("declaring class is canonical", typeBinding == methodBinding3.getDeclaringClass()); //$NON-NLS-1$
-		assertEquals("wrong modifier", Modifier.PRIVATE, methodBinding3.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name for method", "bar", methodBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding[] parameters3 = methodBinding3.getParameterTypes();
-		assertNotNull("No parameters", parameters3); //$NON-NLS-1$
-		assertEquals("wrong size", 1, parameters3.length); //$NON-NLS-1$
-		assertEquals("wrong type", "String", parameters3[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong return type", "String", methodBinding3.getReturnType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("A constructor", !methodBinding3.isConstructor()); //$NON-NLS-1$
-		assertTrue("The binding is not canonical", parameters3[0] == methodBinding3.getReturnType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * i++; IVariableBinding
-	 */
-	public void test0173() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0173", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Not an expressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Not a postfixexpression", ex instanceof PostfixExpression); //$NON-NLS-1$
-		PostfixExpression postfixExpression = (PostfixExpression) ex;
-		Expression expr = postfixExpression.getOperand();
-		assertTrue("Not a simpleName", expr instanceof SimpleName); //$NON-NLS-1$
-		SimpleName name = (SimpleName) expr;
-		assertTrue("a declaration", !name.isDeclaration()); //$NON-NLS-1$
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertTrue(variableBinding == binding);
-	}
-
-	/**
-	 * i++; IVariableBinding (field)
-	 */
-	public void test0174() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0174", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Not an expressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Not a postfixexpression", ex instanceof PostfixExpression); //$NON-NLS-1$
-		PostfixExpression postfixExpression = (PostfixExpression) ex;
-		Expression expr = postfixExpression.getOperand();
-		assertTrue("Not a simpleName", expr instanceof SimpleName); //$NON-NLS-1$
-		SimpleName name = (SimpleName) expr;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("FieldDeclaration", node2 instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node2;
-		List fragments = fieldDeclaration.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertTrue(variableBinding == binding);
-	}
-	
-	/**
-	 * int i = 0; Test IntBinding for the field declaration and the 0 literal
-	 */
-	public void test0175() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0175", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node2;
-		List fragments = fieldDeclaration.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		ITypeBinding typeBinding = fragment.getInitializer().resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not a primitive type", typeBinding.isPrimitive()); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(variableBinding.getType() == typeBinding);
-	}
-	
-	/**
-	 * ThisReference
-	 */
-	public void test0176() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0176", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertTrue("Return statement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node2;
-		assertTrue("Not a field access", returnStatement.getExpression() instanceof FieldAccess); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) returnStatement.getExpression();
-		ITypeBinding typeBinding = fieldAccess.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not a primitive type", typeBinding.isPrimitive()); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Expression expr = fieldAccess.getExpression();
-		assertTrue("Not a this expression", expr instanceof ThisExpression); //$NON-NLS-1$
-		ThisExpression thisExpression = (ThisExpression) expr;
-		ITypeBinding typeBinding2 = thisExpression.resolveTypeBinding();
-		assertNotNull("No type binding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * i++; IVariableBinding
-	 */
-	public void test0177() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0177", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 1, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Not an expressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Not a postfixexpression", ex instanceof PostfixExpression); //$NON-NLS-1$
-		PostfixExpression postfixExpression = (PostfixExpression) ex;
-		Expression expr = postfixExpression.getOperand();
-		assertTrue("Not a simpleName", expr instanceof SimpleName); //$NON-NLS-1$
-		SimpleName name = (SimpleName) expr;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertEquals("return type is not int", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(variableBinding == binding);
-	}
-
-	/**
-	 * SuperReference
-	 */
-	public void test0178() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0178", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-		assertTrue("Return statement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node2;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not a field access", expr instanceof SuperFieldAccess); //$NON-NLS-1$
-		SuperFieldAccess fieldAccess = (SuperFieldAccess) expr;
-		ITypeBinding typeBinding = fieldAccess.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not a primitive type", typeBinding.isPrimitive()); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * Allocation expression
-	 */
-	public void test0179() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0179", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		Expression initialization = fragment.getInitializer();
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue(variableBinding.getType() == typeBinding);
-	}	
-
-	/**
-	 * Allocation expression
-	 */
-	public void test0180() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0180", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		Expression initialization = fragment.getInitializer();
-		assertTrue("No an array creation", initialization instanceof ArrayCreation); //$NON-NLS-1$
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not an array", typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue(variableBinding.getType() == typeBinding);
-	}	
-
-	/**
-	 * Allocation expression
-	 */
-	public void test0181() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0181", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		Expression initialization = fragment.getInitializer();
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not an array", typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue(variableBinding.getType() == typeBinding);
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0182() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0182", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i < 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0183() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0183", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i < 10 && i < 20", source); //$NON-NLS-1$
-	}	
-	
-	/**
-	 * BinaryExpression
-	 */
-	public void test0184() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0184", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i < 10 || i < 20", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0185() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0185", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i == 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0186() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0186", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "o == o", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0187() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0187", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof WhileStatement); //$NON-NLS-1$
-		WhileStatement whileStatement = (WhileStatement) node2;
-		Expression expr = whileStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i <= 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0188() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0188", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertTrue("DoStatement", node2 instanceof DoStatement); //$NON-NLS-1$
-		DoStatement statement = (DoStatement) node2;
-		Expression expr = statement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i <= 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0189() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0189", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("ForStatement", node2 instanceof ForStatement); //$NON-NLS-1$
-		ForStatement statement = (ForStatement) node2;
-		Expression expr = statement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i < 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0190() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0190", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 2, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement statement = (IfStatement) node2;
-		Expression expr = statement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "scanner.x < selection.start && selection.start < scanner.y", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0191() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0191", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Assignment", ex instanceof Assignment); //$NON-NLS-1$
-		Assignment statement = (Assignment) ex;
-		Expression rightExpr = statement.getRightHandSide();
-		assertTrue("Not an infix expression", rightExpr instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) rightExpr;
-		Expression expr = infixExpression.getRightOperand();
-		assertNotNull("No right hand side expression", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "2 < 20", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0192() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0192", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		Expression initialization = fragment.getInitializer();
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue(variableBinding.getType() == typeBinding);
-		checkSourceRange(initialization, "0", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0193() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0193", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		Expression initialization = fragment.getInitializer();
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue(variableBinding.getType() == typeBinding);
-		checkSourceRange(initialization, "new Inner()", source); //$NON-NLS-1$
-		assertEquals("Wrong type", "Inner", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0194() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0194", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		Expression initialization = fragment.getInitializer();
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue(variableBinding.getType() == typeBinding);
-		checkSourceRange(initialization, "new Inner[10]", source); //$NON-NLS-1$
-		assertTrue("Not an array", typeBinding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong type", "Inner[]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0195() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0195", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 1, 0, 1);
-		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("FunctionInvocation", ex instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) ex;
-		checkSourceRange(methodInvocation, "a.useFile(/*]*/a.getFile()/*[*/)", source); //$NON-NLS-1$
-		List list = methodInvocation.arguments();
-		assertTrue("Parameter list not empty", list.size() == 1); //$NON-NLS-1$
-		Expression parameter = (Expression) list.get(0);
-		assertTrue("Not a method invocation", parameter instanceof FunctionInvocation); //$NON-NLS-1$
-		ITypeBinding typeBinding = parameter.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "File", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(parameter, "a.getFile()", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0196() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0196", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 2);
-		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Assignment", ex instanceof Assignment); //$NON-NLS-1$
-		Assignment statement = (Assignment) ex;
-		Expression rightExpr = statement.getRightHandSide();
-		assertTrue("Not an instanceof expression", rightExpr instanceof InstanceofExpression); //$NON-NLS-1$
-		ITypeBinding typeBinding = rightExpr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong type", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(rightExpr, "inner instanceof Inner", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0197() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0197", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType());
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 0);
-		ASTNode node2 = getASTNode(unit, 1, 0, 1);
-		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("FunctionInvocation", ex instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) ex;
-		checkSourceRange(methodInvocation, "a.getFile()/*[*/.getName()", source); //$NON-NLS-1$
-		Expression receiver = methodInvocation.getExpression();
-		assertTrue("Not a method invocation", receiver instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) receiver;
-		ITypeBinding typeBinding = methodInvocation2.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "File", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(methodInvocation2, "a.getFile()", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0198() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0198", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("ReturnStatement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node2;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not an infixExpression", expr instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expr;
-		Expression left = infixExpression.getLeftOperand();
-		assertTrue("Not an InfixExpression", left instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression2 = (InfixExpression) left;
-		Expression right = infixExpression2.getRightOperand();
-		assertTrue("Not an InfixExpression", right instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression3 = (InfixExpression) right;
-		assertEquals("A multiplication", InfixExpression.Operator.TIMES, infixExpression3.getOperator()); //$NON-NLS-1$
-		ITypeBinding typeBinding = infixExpression3.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(infixExpression3, "20 * 30", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0199() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0199", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not an infixExpression", initialization instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) initialization;
-		Expression left = infixExpression.getLeftOperand();
-		assertTrue("Not an InfixExpression", left instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression2 = (InfixExpression) left;
-		Expression right = infixExpression2.getRightOperand();
-		assertTrue("Not an InfixExpression", right instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression3 = (InfixExpression) right;
-		assertEquals("A multiplication", InfixExpression.Operator.TIMES, infixExpression3.getOperator()); //$NON-NLS-1$
-		ITypeBinding typeBinding = infixExpression3.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(infixExpression3, "10 * 30", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0200() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0200", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not an infixExpression", initialization instanceof FieldAccess); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) initialization;
-		Expression receiver = fieldAccess.getExpression();
-		assertTrue("ArrayCreation", receiver instanceof ArrayCreation); //$NON-NLS-1$
-		ArrayCreation arrayCreation = (ArrayCreation) receiver;
-		List dimensions = arrayCreation.dimensions();
-		assertEquals("Wrong dimension", 1, dimensions.size()); //$NON-NLS-1$
-		Expression dim = (Expression) dimensions.get(0);
-		assertTrue("InfixExpression", dim instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) dim;
-		ITypeBinding typeBinding = infixExpression.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(infixExpression, "1 + 2", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Position inside for statement: PR 3300
-	 */
-	public void test0201() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0201", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("ForStatement", node2 instanceof ForStatement); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node2;
-		List initializers = forStatement.initializers();
-		assertTrue("wrong size", initializers.size() == 1); //$NON-NLS-1$
-		Expression init = (Expression) initializers.get(0);
-		checkSourceRange(init, "int i= 0", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * PR 7386
-	 */
-	public void test0202() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0202", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("FieldDeclaration", node2 instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node2;
-		checkSourceRange(fieldDeclaration, "int f= (2);", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not a parenthesized expression", initialization instanceof ParenthesizedExpression); //$NON-NLS-1$
-		checkSourceRange(initialization, "(2)", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("no binding", typeBinding); //$NON-NLS-1$
-		assertEquals("not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}		
-
-	/**
-	 * PR 7386
-	 */
-	public void test0203() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0203", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("FieldDeclaration", node2 instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node2;
-		checkSourceRange(fieldDeclaration, "int f= (2);", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not a parenthesized expression", initialization instanceof ParenthesizedExpression); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) initialization;
-		checkSourceRange(parenthesizedExpression, "(2)", source); //$NON-NLS-1$
-		Expression expr = parenthesizedExpression.getExpression();
-		checkSourceRange(expr, "2", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("no binding", typeBinding); //$NON-NLS-1$
-		assertEquals("not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("type binding is canonical", typeBinding == parenthesizedExpression.resolveTypeBinding()); //$NON-NLS-1$
-	}		
-
-	/**
-	 * PR 7386
-	 */
-	public void test0204() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0204", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("FieldDeclaration", node2 instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node2;
-		checkSourceRange(fieldDeclaration, "int f= ((2));", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not a parenthesized expression", initialization instanceof ParenthesizedExpression); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) initialization;
-		checkSourceRange(parenthesizedExpression, "((2))", source); //$NON-NLS-1$
-		Expression expr = parenthesizedExpression.getExpression();
-		assertTrue("Not a parenthesized expression", expr instanceof ParenthesizedExpression); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression2 = (ParenthesizedExpression) expr;
-		checkSourceRange(parenthesizedExpression2, "(2)", source); //$NON-NLS-1$
-		expr = parenthesizedExpression2.getExpression();
-		checkSourceRange(expr, "2", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("no binding", typeBinding); //$NON-NLS-1$
-		assertEquals("not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = parenthesizedExpression.resolveTypeBinding();
-		assertNotNull("no binding", typeBinding); //$NON-NLS-1$
-		assertEquals("not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("type binding is canonical", typeBinding == parenthesizedExpression2.resolveTypeBinding()); //$NON-NLS-1$
-	}		
-
-
-	/**
-	 * Local class end position when trailing comment
-	 */
-	public void test0205() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0205", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("TypeDeclarationStatement", node2 instanceof TypeDeclarationStatement); //$NON-NLS-1$
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node2;
-		AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
-		assertEquals("wrong name", "AA", typeDeclaration.getName().getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(typeDeclaration, "class AA extends Test {}", source); //$NON-NLS-1$
-	}		
-
-	/**
-	 * QualifiedName
-	 */
-	public void test0206() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0206", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 5, 0);
-		assertTrue("ReturnStatement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node2;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not a qualifiedName", expr instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) expr;
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not an int (typeBinding)", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(qualifiedName, "field1.field2.field3.field4.i", source); //$NON-NLS-1$
-		assertTrue("Not a simple name", qualifiedName.getName().isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = qualifiedName.getName();
-		assertTrue("a declaration", !simpleName.isDeclaration()); //$NON-NLS-1$
-		checkSourceRange(simpleName, "i", source); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-		assertNotNull("No typebinding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("Not an int (typeBinding2)", "int", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("VariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Not Test", "Test", variableBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not default", Modifier.PUBLIC, variableBinding.getModifiers()); //$NON-NLS-1$
-		Name qualifierName = qualifiedName.getQualifier();
-		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(qualifierName, "field1.field2.field3.field4", source); //$NON-NLS-1$
-		ITypeBinding typeBinding5 = qualifierName.resolveTypeBinding();
-		assertNotNull("No binding5", typeBinding5); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", typeBinding5.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-
-		qualifiedName = (QualifiedName) qualifierName;
-		simpleName = qualifiedName.getName();
-		checkSourceRange(simpleName, "field4", source); //$NON-NLS-1$
-		ITypeBinding typeBinding6 = simpleName.resolveTypeBinding();
-		assertNotNull("No binding6", typeBinding6); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", typeBinding6.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		qualifierName = qualifiedName.getQualifier();
-		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(qualifierName, "field1.field2.field3", source); //$NON-NLS-1$
-		ITypeBinding typeBinding7 = qualifierName.resolveTypeBinding();
-		assertNotNull("No binding7", typeBinding7); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", typeBinding7.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		qualifiedName = (QualifiedName) qualifierName;
-		simpleName = qualifiedName.getName();
-		checkSourceRange(simpleName, "field3", source); //$NON-NLS-1$
-		qualifierName = qualifiedName.getQualifier();
-		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(qualifierName, "field1.field2", source); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = qualifierName.resolveTypeBinding();
-		assertNotNull("No binding3", typeBinding3); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		qualifiedName = (QualifiedName) qualifierName;
-		simpleName = qualifiedName.getName();
-		checkSourceRange(simpleName, "field2", source); //$NON-NLS-1$
-		qualifierName = qualifiedName.getQualifier();
-		assertTrue("Not a simple name", qualifierName.isSimpleName()); //$NON-NLS-1$
-		assertTrue("a declaration", !((SimpleName)qualifierName).isDeclaration()); //$NON-NLS-1$
-		checkSourceRange(qualifierName, "field1", source); //$NON-NLS-1$
-		ITypeBinding typeBinding4 = qualifierName.resolveTypeBinding();
-		assertNotNull("No binding4", typeBinding4); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0207() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0207", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		checkSourceRange(node, "/** JavaDoc Comment*/\n  void foo(final int i) {}", source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test0208() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0208", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "void foo(final int i) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test0209() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0209", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "void foo(final int i) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FieldDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0210() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0210", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((FieldDeclaration) node).getJavadoc();
-		checkSourceRange(node, "/** JavaDoc Comment*/\n  int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FieldDeclaration
-	 */
-	public void test0211() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0211", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FieldDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FieldDeclaration
-	 */
-	public void test0212() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0212", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FieldDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "int i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for TypeDeclaration
-	 */
-	public void test0213() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0213", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		String expectedContents = "public class Test {\n" +//$NON-NLS-1$
-			"  int i;\n"  +//$NON-NLS-1$
-			"}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for TypeDeclaration
-	 */
-	public void test0214() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0214", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		String expectedContents = "public class Test {\n" +//$NON-NLS-1$
-			"  int i;\n"  +//$NON-NLS-1$
-			"}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for TypeDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0215() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0215", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		String expectedContents = 
-			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-			"public class Test {\n" +//$NON-NLS-1$
-			"  int i;\n"  +//$NON-NLS-1$
-			"}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for MemberTypeDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0216() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0216", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		String expectedContents = 
-			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-			 "  class B {}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for MemberTypeDeclaration
-	 */
-	public void test0217() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0217", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "class B {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for MemberTypeDeclaration
-	 */
-	public void test0218() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0218", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "public static class B {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for MemberTypeDeclaration
-	 */
-	public void test0219() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0219", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "public static class B {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking initializers
-	 */
-	public void test0220() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0220", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		checkSourceRange(node, "{}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking initializers
-	 */
-	public void test0221() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0221", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		checkSourceRange(node, "static {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking initializers
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0222() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0222", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((Initializer) node).getJavadoc();
-		assertNotNull("Javadoc comment should no be null", actualJavadoc); //$NON-NLS-1$
-		String expectedContents = 
-			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-			 "  static {}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-		
-	}
-
-	/**
-	 * Checking initializers
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0223() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0223", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((Initializer) node).getJavadoc();
-		assertNotNull("Javadoc comment should not be null", actualJavadoc); //$NON-NLS-1$
-		String expectedContents = 
-			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-			 "  {}";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-		
-	}
-
-	/**
-	 * Checking initializers
-	 */
-	public void test0224() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0224", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((Initializer) node).getJavadoc();
-		assertNull("Javadoc comment should be null", actualJavadoc); //$NON-NLS-1$
-		checkSourceRange(node, "{}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Continue ==> ContinueStatement
-	 */
-	public void test0225() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0225", "Test.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);
-		LabeledStatement labeledStatement = (LabeledStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		checkSourceRange(labeledStatement.getLabel(), "label", source); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) labeledStatement.getBody();
-		ContinueStatement statement = (ContinueStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		ContinueStatement continueStatement = this.ast.newContinueStatement();
-		continueStatement.setLabel(this.ast.newSimpleName("label")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", continueStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "continue label;", source); //$NON-NLS-1$
-		checkSourceRange(statement.getLabel(), "label", source); //$NON-NLS-1$
-	}
-		
-	/**
-	 * Break + label  ==> BreakStatement
-	 */
-	public void test0226() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0226", "Test.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);
-		LabeledStatement labeledStatement = (LabeledStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		checkSourceRange(labeledStatement.getLabel(), "label", source); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) labeledStatement.getBody();
-		BreakStatement statement = (BreakStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		BreakStatement breakStatement = this.ast.newBreakStatement();
-		breakStatement.setLabel(this.ast.newSimpleName("label")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", breakStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "break label;", source); //$NON-NLS-1$
-		checkSourceRange(statement.getLabel(), "label", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * QualifiedName
-	 */
-	public void test0227() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0227", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 3, 2, 0);
-		assertTrue("ReturnStatement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node2;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not a qualifiedName", expr instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) expr;
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not an long (typeBinding)", "long", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(qualifiedName, "field.fB.fA.j", source); //$NON-NLS-1$
-
-		SimpleName simpleName = qualifiedName.getName();
-		checkSourceRange(simpleName, "j", source); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-		assertEquals("Not an long (typeBinding2)", "long", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("VariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Not A", "A", variableBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not default", Modifier.NONE, variableBinding.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name", "j", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-
-		Name qualifierName = qualifiedName.getQualifier();
-		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(qualifierName, "field.fB.fA", source); //$NON-NLS-1$
-		qualifiedName = (QualifiedName) qualifierName;
-		ITypeBinding typeBinding3 = qualifiedName.resolveTypeBinding();
-		assertNotNull("No type binding3", typeBinding3); //$NON-NLS-1$
-		assertEquals("Not an A", "A", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		simpleName = qualifiedName.getName();
-		checkSourceRange(simpleName, "fA", source); //$NON-NLS-1$
-		ITypeBinding typeBinding4 = simpleName.resolveTypeBinding();
-		assertNotNull("No typeBinding4", typeBinding4); //$NON-NLS-1$
-		assertEquals("Not an A", "A", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = qualifiedName.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		assertTrue("VariableBinding", binding2 instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding2 = (IVariableBinding) binding2;
-		assertEquals("Not B", "B", variableBinding2.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not default", Modifier.NONE, variableBinding2.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name", "fA", variableBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		qualifierName = qualifiedName.getQualifier();
-		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(qualifierName, "field.fB", source); //$NON-NLS-1$
-		qualifiedName = (QualifiedName) qualifierName;
-		ITypeBinding typeBinding5 = qualifiedName.resolveTypeBinding();
-		assertNotNull("No typeBinding5", typeBinding5); //$NON-NLS-1$
-		assertEquals("Not a B", "B", typeBinding5.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		simpleName = qualifiedName.getName();
-		checkSourceRange(simpleName, "fB", source); //$NON-NLS-1$
-		ITypeBinding typeBinding6 = simpleName.resolveTypeBinding();
-		assertNotNull("No typebinding6", typeBinding6); //$NON-NLS-1$
-		assertEquals("not a B", "B", typeBinding6.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding3 = qualifiedName.resolveBinding();
-		assertNotNull("No binding2", binding3); //$NON-NLS-1$
-		assertTrue("VariableBinding", binding3 instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding3 = (IVariableBinding) binding3;
-		assertEquals("Not C", "C", variableBinding3.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not default", Modifier.NONE, variableBinding3.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name", "fB", variableBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		qualifierName = qualifiedName.getQualifier();
-		assertTrue("Not a simple name", qualifierName.isSimpleName()); //$NON-NLS-1$
-		checkSourceRange(qualifierName, "field", source); //$NON-NLS-1$
-		simpleName = (SimpleName) qualifierName;
-		ITypeBinding typeBinding7 = simpleName.resolveTypeBinding();
-		assertNotNull("No typeBinding7", typeBinding7); //$NON-NLS-1$
-		assertEquals("Not a C", "C", typeBinding7.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding4 = simpleName.resolveBinding();
-		assertNotNull("No binding4", binding4); //$NON-NLS-1$
-		assertTrue("VariableBinding", binding4 instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding4 = (IVariableBinding) binding4;
-		assertEquals("Not Test", "Test", variableBinding4.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not public", Modifier.PUBLIC, variableBinding4.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name", "field", variableBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong return type", "C", variableBinding4.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * QualifiedName as TypeReference
-	 */
-	public void test0228() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0228", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertTrue("ReturnStatement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node2;
-		Expression expr = returnStatement.getExpression();
-		checkSourceRange(expr, "test0228.Test.foo()", source); //$NON-NLS-1$
-		assertTrue("FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		Expression qualifier = methodInvocation.getExpression();
-		assertNotNull("no qualifier", qualifier); //$NON-NLS-1$
-		assertTrue("QualifiedName", qualifier instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) qualifier;
-		checkSourceRange(qualifiedName, "test0228.Test", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = qualifiedName.resolveTypeBinding();
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong type", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding = qualifiedName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Not a type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		
-	}
-
-	/**
-	 * FunctionInvocation
-	 */
-	public void test0229() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0229", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expr = expressionStatement.getExpression();
-		assertTrue("FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		checkSourceRange(expr, "System.err.println()", source); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		Expression qualifier = methodInvocation.getExpression();
-		assertTrue("QualifiedName", qualifier instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) qualifier;
-		ITypeBinding typeBinding = qualifier.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "PrintStream", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding = qualifiedName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("VariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("wrong name", "err", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName methodName = methodInvocation.getName();
-		IBinding binding2 = methodName.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-	}
-	
-	/**
-	 * FunctionInvocation
-	 */
-	public void test0230() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0230", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expr = expressionStatement.getExpression();
-		assertTrue("FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		checkSourceRange(expr, "err.println()", source); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		Expression qualifier = methodInvocation.getExpression();
-		assertTrue("SimpleName", qualifier instanceof SimpleName); //$NON-NLS-1$
-		SimpleName name = (SimpleName) qualifier;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong name", "err", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding = name.resolveTypeBinding();
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wron type name", "PrintStream", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * FunctionInvocation
-	 */
-	public void test0231() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0231", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expr = expressionStatement.getExpression();
-		assertTrue("FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		checkSourceRange(expr, "System.err.println()", source); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		Expression qualifier = methodInvocation.getExpression();
-		assertTrue("QualifiedName", qualifier instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) qualifier;
-		ITypeBinding typeBinding = qualifier.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "PrintStream", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding = qualifiedName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("VariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("wrong name", "err", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName methodName = methodInvocation.getName();
-		IBinding binding2 = methodName.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		Name name = qualifiedName.getQualifier();
-		assertTrue("SimpleName", name.isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-		assertNotNull("No typeBinding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("wrong type name", "System", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * FunctionInvocation
-	 */
-	public void test0232() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0232", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = variableDeclarationFragment.getInitializer();
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not a primitive type", typeBinding.isPrimitive()); //$NON-NLS-1$
-		assertEquals("wrong name", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("QualifiedName", initialization instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) initialization;
-		SimpleName simpleName = qualifiedName.getName();
-		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-		assertTrue("Not a primitive type", typeBinding2.isPrimitive()); //$NON-NLS-1$
-		assertEquals("wrong name", "int", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("IVariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertNull("No declaring class", variableBinding.getDeclaringClass()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Checking that only syntax errors are reported for the MALFORMED tag
-	 */
-	public void test0233() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0233", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The compilation unit is malformed", !isMalformed(result)); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("The fiels is not malformed", !isMalformed(node)); //$NON-NLS-1$
-		assertEquals("No problem found", 1, unit.getMessages().length); //$NON-NLS-1$
-		assertEquals("No problem found", 1, unit.getProblems().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking that null is returned for a resolveBinding if the type is unknown
-	 */
-	public void test0234() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0234", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("The fiels is not malformed", !isMalformed(node)); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("No problem found", 1, unit.getMessages().length); //$NON-NLS-1$
-		assertEquals("No problem found", 1, unit.getProblems().length); //$NON-NLS-1$
-		assertTrue("FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNull("binding not null", variableBinding); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking that null is returned for a resolveBinding if the type is unknown
-	 */
-	public void test0235() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0235", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("The fiels is not malformed", !isMalformed(node)); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("problems found", 0, unit.getMessages().length); //$NON-NLS-1$
-		assertEquals("problems found", 0, unit.getProblems().length); //$NON-NLS-1$
-		assertTrue("FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=9452
-	 */
-	public void test0237() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "junit.framework", "TestCase.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-	}
-		
-	/**
-	 * Check ThisExpression
-	 */
-	public void test0238() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0238", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		char[] source = sourceUnit.getSource().toCharArray();
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a type declaration statement", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-		AbstractTypeDeclaration typeDecl = typeDeclarationStatement.getDeclaration();
-		Object o = typeDecl.bodyDeclarations().get(0);
-		assertTrue("Not a method", o instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDecl = (FunctionDeclaration) o;
-		Block block = methodDecl.getBody();
-		List statements = block.statements();
-		assertEquals("Not 1", 1, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(0);
-		assertTrue("Not a return statement", stmt instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) stmt;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not a method invocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		checkSourceRange(methodInvocation, "Test.this.bar()", source); //$NON-NLS-1$
-		Expression qualifier = methodInvocation.getExpression();
-		assertTrue("Not a ThisExpression", qualifier instanceof ThisExpression); //$NON-NLS-1$
-		ThisExpression thisExpression = (ThisExpression) qualifier;
-		Name name = thisExpression.getQualifier();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", "Test", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Check ThisExpression
-	 */
-	public void test0239() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0239", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-		assertTrue("Not a type declaration statement", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-		AbstractTypeDeclaration typeDecl = typeDeclarationStatement.getDeclaration();
-		Object o = typeDecl.bodyDeclarations().get(0);
-		assertTrue("Not a method", o instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDecl = (FunctionDeclaration) o;
-		Block block = methodDecl.getBody();
-		List statements = block.statements();
-		assertEquals("Not 1", 1, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(0);
-		assertTrue("Not a return statement", stmt instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) stmt;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not a SuperMethodInvocation", expr instanceof SuperMethodInvocation); //$NON-NLS-1$
-		SuperMethodInvocation superMethodInvocation = (SuperMethodInvocation) expr;
-		Name name = superMethodInvocation.getQualifier();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("A type binding", binding instanceof ITypeBinding); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Name methodName = superMethodInvocation.getName();
-		IBinding binding2 = methodName.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		assertTrue("No an IFunctionBinding", binding2 instanceof IFunctionBinding); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Not bar", "bar", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not T", "T", methodBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Check FieldAccess
-	 */
-	public void test0240() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0240", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a type declaration statement", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-		AbstractTypeDeclaration typeDecl = typeDeclarationStatement.getDeclaration();
-		Object o = typeDecl.bodyDeclarations().get(0);
-		assertTrue("Not a method", o instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDecl = (FunctionDeclaration) o;
-		Block block = methodDecl.getBody();
-		List statements = block.statements();
-		assertEquals("Not 1", 1, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(0);
-		assertTrue("Not a return statement", stmt instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) stmt;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not a field access", expr instanceof FieldAccess); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) expr;
-		Expression qualifier = fieldAccess.getExpression();
-		assertTrue("Not a ThisExpression", qualifier instanceof ThisExpression); //$NON-NLS-1$
-		ThisExpression thisExpression = (ThisExpression) qualifier;
-		Name name = thisExpression.getQualifier();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Name fieldName = fieldAccess.getName();
-		IBinding binding2 = fieldName.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		assertEquals("Wrong name", "f", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong modifier", Modifier.PUBLIC, binding2.getModifiers()); //$NON-NLS-1$
-		ITypeBinding typeBinding = fieldName.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Check order of body declarations
-	 */
-	public void test0241() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0241", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assertTrue("Not a type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		assertTrue("Not a declaration", ((TypeDeclaration) node).getName().isDeclaration()); //$NON-NLS-1$
-		assertEquals("Wrong size", 11, ((TypeDeclaration)node).bodyDeclarations().size()); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not a Type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not a Type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 7);
-		assertTrue("Not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 8);
-		assertTrue("Not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 9);
-		assertTrue("Not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 10);
-		assertTrue("Not a Type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check ThisExpression
-	 */
-	public void test0242() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0242", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-		assertTrue("Not a type declaration statement", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-		AbstractTypeDeclaration typeDecl = typeDeclarationStatement.getDeclaration();
-		Object o = typeDecl.bodyDeclarations().get(0);
-		assertTrue("Not a method", o instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDecl = (FunctionDeclaration) o;
-		Block block = methodDecl.getBody();
-		List statements = block.statements();
-		assertEquals("Not 1", 1, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(0);
-		assertTrue("Not a return statement", stmt instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) stmt;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not a SuperFieldAccess", expr instanceof SuperFieldAccess); //$NON-NLS-1$
-		SuperFieldAccess superFieldAccess = (SuperFieldAccess) expr;
-		Name name = superFieldAccess.getQualifier();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("A type binding", binding instanceof ITypeBinding); //$NON-NLS-1$
-		assertEquals("Not Test", "Test", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Name fieldName = superFieldAccess.getName();
-		IBinding binding2 = fieldName.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		assertTrue("No an IVariableBinding", binding2 instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding2;
-		assertEquals("Not f", "f", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not T", "T", variableBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding2 = fieldName.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Check catch clause positions:
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10570
-	 */
-	public void test0243() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0243", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a try statement", node instanceof TryStatement); //$NON-NLS-1$
-		TryStatement tryStatement = (TryStatement) node;
-		List catchClauses = tryStatement.catchClauses();
-		assertEquals("wrong size", 1, catchClauses.size()); //$NON-NLS-1$
-		CatchClause catchClause = (CatchClause) catchClauses.get(0);
-		checkSourceRange(catchClause, "catch (Exception e){m();}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check catch clause positions:
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10570
-	 */
-	public void test0244() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0244", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a try statement", node instanceof TryStatement); //$NON-NLS-1$
-		TryStatement tryStatement = (TryStatement) node;
-		List catchClauses = tryStatement.catchClauses();
-		assertEquals("wrong size", 2, catchClauses.size()); //$NON-NLS-1$
-		CatchClause catchClause = (CatchClause) catchClauses.get(0);
-		checkSourceRange(catchClause, "catch (RuntimeException e){m();}", source); //$NON-NLS-1$
-		catchClause = (CatchClause) catchClauses.get(1);
-		checkSourceRange(catchClause, "catch(Exception e) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=10587
-	 */
-	public void test0245() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0245", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("not a name", expr instanceof Name); //$NON-NLS-1$
-		Name name = (Name) expr;
-		IBinding binding = name.resolveBinding();
-		assertTrue("Not a variable binding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Not i", "i", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not int", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ASTNode declaringNode = unit.findDeclaringNode(variableBinding);
-		assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
-		assertTrue("Not a VariableDeclarationFragment", declaringNode instanceof VariableDeclarationFragment); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Test binding resolution for import declaration
-	 */
-	public void test0246() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0246", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		List imports = unit.imports();
-		assertEquals("wrong imports size", 2, imports.size()); //$NON-NLS-1$
-		ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
-		assertTrue("Not on demand", importDeclaration.isOnDemand()); //$NON-NLS-1$
-		checkSourceRange(importDeclaration, "import java.util.*;", source); //$NON-NLS-1$
-		IBinding binding = importDeclaration.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-		assertEquals("Wrong name", "java.util", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		importDeclaration = (ImportDeclaration) imports.get(1);
-		assertTrue("On demand", !importDeclaration.isOnDemand()); //$NON-NLS-1$
-		checkSourceRange(importDeclaration, "import java.io.IOException;", source); //$NON-NLS-1$
-		binding = importDeclaration.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertEquals("Wrong name", "IOException", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Test binding resolution for import declaration
-	 */
-	public void test0247() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0247", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		PackageDeclaration packageDeclaration = unit.getPackage();
-		checkSourceRange(packageDeclaration, "package test0247;", source); //$NON-NLS-1$
-		IPackageBinding binding = packageDeclaration.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-		assertEquals("Wrong name", "test0247", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10592
-	 */
-	public void test0248() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0248", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration);		 //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 1, parameters.size()); //$NON-NLS-1$
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		Name name = singleVariableDeclaration.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("Not a variable binding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "i", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong type", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10592
-	 */
-	public void test0249() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0249", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 2, 1);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not an assignment", expression instanceof Assignment); //$NON-NLS-1$
-		Assignment assignment = (Assignment) expression;
-		Expression leftHandSide = assignment.getLeftHandSide();
-		assertTrue("Not a qualified name", leftHandSide instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) leftHandSide;
-		Name simpleName = qualifiedName.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertTrue("Not a IVariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "k", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong modifier", Modifier.STATIC, variableBinding.getModifiers()); //$NON-NLS-1$
-		assertEquals("Wrong type", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong declaring class name", "j", variableBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10592
-	 */
-	public void test0250() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0250", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration);		 //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		Name name = singleVariableDeclaration.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("Not a variable binding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "i", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong type", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-		
-	/**
-	 * Check qualified name resolution for static fields
-	 */
-	public void test0251() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0251", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		checkSourceRange(methodInvocation, "java.lang.System.out.println()", source); //$NON-NLS-1$
-		Expression qualifier = methodInvocation.getExpression();
-		assertTrue("Not a qualified name", qualifier instanceof QualifiedName); //$NON-NLS-1$
-		checkSourceRange(qualifier, "java.lang.System.out", source); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) qualifier;
-		Name typeName = qualifiedName.getQualifier();
-		assertTrue("Not a QualifiedName", typeName instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedTypeName = (QualifiedName) typeName;
-		IBinding binding = qualifiedTypeName.getName().resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong name", "System", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		binding = qualifiedTypeName.getQualifier().resolveBinding();
-		assertNotNull("No binding2", binding); //$NON-NLS-1$
-		assertEquals("Wrong type binding", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-	}
-		
-	/**
-	 * Check binding for anonymous class
-	 */
-	public void test0252() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0252", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not a classinstancecreation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		IFunctionBinding methodBinding = classInstanceCreation.resolveConstructorBinding();
-		assertNotNull("No methodBinding", methodBinding); //$NON-NLS-1$
-		assertTrue("Not a constructor", methodBinding.isConstructor()); //$NON-NLS-1$
-		assertTrue("Not an anonymous class", methodBinding.getDeclaringClass().isAnonymous()); //$NON-NLS-1$
-		assertEquals("Not an anonymous class of java.lang.Object", "Object", methodBinding.getDeclaringClass().getSuperclass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not an anonymous class of java.lang.Object", "java.lang", methodBinding.getDeclaringClass().getSuperclass().getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Check binding for allocation expression
-	 */
-	public void test0253() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0253", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not a classinstancecreation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		IFunctionBinding methodBinding = classInstanceCreation.resolveConstructorBinding();
-		assertNotNull("No methodBinding", methodBinding); //$NON-NLS-1$
-		assertTrue("Not a constructor", methodBinding.isConstructor()); //$NON-NLS-1$
-		assertEquals("Wrong size", 1, methodBinding.getParameterTypes().length); //$NON-NLS-1$
-		assertEquals("Wrong type", "String", methodBinding.getParameterTypes()[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Check binding for allocation expression
-	 */
-	public void test0254() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0254", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not a class instance creation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong type", "C", binding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-
-	/**
-	 * Check binding for allocation expression
-	 */
-	public void test0255() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0255", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a FunctionInvocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		List arguments = methodInvocation.arguments();
-		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check binding for allocation expression
-	 */
-	public void test0256() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0256", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a FunctionInvocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		List arguments = methodInvocation.arguments();
-		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check binding for allocation expression
-	 */
-	public void test0257() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0257", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a FunctionInvocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		List arguments = methodInvocation.arguments();
-		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check binding for allocation expression
-	 */
-	public void test0258() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0258", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a FunctionInvocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		List arguments = methodInvocation.arguments();
-		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10663
-	 */
-	public void test0259() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0259", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10592
-	 */
-	public void test0260() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0260", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration);		 //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		IBinding binding = singleVariableDeclaration.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		Name name = singleVariableDeclaration.getName();
-		assertTrue("Not a simple name", name instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		assertEquals("Wrong name", "i", simpleName.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = name.resolveBinding();
-		assertNotNull("No binding", binding2); //$NON-NLS-1$
-		assertTrue("binding == binding2", binding == binding2); //$NON-NLS-1$
-		assertTrue("Not a variable binding", binding2 instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding2;
-		assertEquals("Wrong name", "i", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong type", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10679
-	 */
-	public void test0261() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0261", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("Wrong msg size", 1, compilationUnit.getMessages().length); //$NON-NLS-1$
-		assertEquals("Wrong pb size", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		ITypeBinding binding = expression.resolveTypeBinding();
-		assertNull("got a binding", binding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10676
-	 */
-	public void test0262() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0262", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expr = expressionStatement.getExpression();
-		assertTrue("Not a FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		List arguments = methodInvocation.arguments();
-		assertEquals("Wrong argument list size", 1, arguments.size()); //$NON-NLS-1$
-		Expression expr2 = (Expression) arguments.get(0);
-		assertTrue("Not a class instance creation", expr2 instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expr2;
-		arguments = classInstanceCreation.arguments();
-		assertEquals("Wrong size", 1, arguments.size()); //$NON-NLS-1$
-		Expression expression2 = (Expression) arguments.get(0);
-		assertTrue("Not a string literal", expression2 instanceof StringLiteral); //$NON-NLS-1$
-		StringLiteral stringLiteral = (StringLiteral) expression2;
-		ITypeBinding typeBinding = stringLiteral.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "String", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10700
-	 */
-	public void test0263() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0263", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expr = expressionStatement.getExpression();
-		assertTrue("Not a FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		List arguments = methodInvocation.arguments();
-		assertEquals("Wrong argument list size", 1, arguments.size()); //$NON-NLS-1$
-		Expression expr2 = (Expression) arguments.get(0);
-		assertTrue("Not a simple name", expr2 instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expr2;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10699
-	 */
-	public void test0264() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0264", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong fragment size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a classinstancecreation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		assertNotNull("No anonymousclassdeclaration", anonymousClassDeclaration); //$NON-NLS-1$
-		String expectedSourceRange = 
-			"{\n"+  //$NON-NLS-1$
-			"			void m(int k){\n"+ //$NON-NLS-1$
-			"				k= i;\n"+ //$NON-NLS-1$
-			"			}\n"+ //$NON-NLS-1$
-			"		}"; //$NON-NLS-1$
-		checkSourceRange(anonymousClassDeclaration, expectedSourceRange, source);
-		List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size()); //$NON-NLS-1$
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		assertEquals("Wrong name", "m", methodDeclaration.getName().getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10698
-	 */
-	public void test0265() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0265", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-	 */
-	public void test0266() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0266", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "Inner\\u005b]", source); //$NON-NLS-1$
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type type2 = arrayType.getElementType();
-		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type2;
-		checkSourceRange(simpleType, "Inner", source); //$NON-NLS-1$
-		Name name = simpleType.getName();
-		assertTrue("not a simple name", name.isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		checkSourceRange(simpleName, "Inner", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-	 */
-	public void test0267() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0267", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "Inner[]", source); //$NON-NLS-1$
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type type2 = arrayType.getElementType();
-		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type2;
-		checkSourceRange(simpleType, "Inner", source); //$NON-NLS-1$
-		Name name = simpleType.getName();
-		assertTrue("not a simple name", name.isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		checkSourceRange(simpleName, "Inner", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-	 */
-	public void test0268() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0268", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "test0268.Test.Inner[]", source); //$NON-NLS-1$
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type type2 = arrayType.getElementType();
-		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type2;
-		checkSourceRange(simpleType, "test0268.Test.Inner", source); //$NON-NLS-1$
-		Name name = simpleType.getName();
-		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(name, "test0268.Test.Inner", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-	 */
-	public void test0269() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0269", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "test0269.Test.Inner[/**/]", source); //$NON-NLS-1$
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type type2 = arrayType.getElementType();
-		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type2;
-		checkSourceRange(simpleType, "test0269.Test.Inner", source); //$NON-NLS-1$
-		Name name = simpleType.getName();
-		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(name, "test0269.Test.Inner", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-	 */
-	public void test0270() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0270", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "test0270.Test.Inner", source); //$NON-NLS-1$
-		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(name, "test0270.Test.Inner", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-	 */
-	public void test0271() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0271", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "test0271.Test.Inner[]", source); //$NON-NLS-1$
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type type2 = arrayType.getElementType();
-		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type2;
-		checkSourceRange(simpleType, "test0271.Test.Inner", source); //$NON-NLS-1$
-		Name name = simpleType.getName();
-		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		checkSourceRange(name, "test0271.Test.Inner", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10843
-	 */
-	public void test0272() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0272", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a For statement", node instanceof ForStatement); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		checkSourceRange(forStatement, "for (int i= 0; i < 10; i++) foo();", source); //$NON-NLS-1$
-		Statement action = forStatement.getBody();
-		checkSourceRange(action, "foo();", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10843
-	 */
-	public void test0273() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0273", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a For statement", node instanceof ForStatement); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		checkSourceRange(forStatement, "for (int i= 0; i < 10; i++) { foo(); }", source); //$NON-NLS-1$
-		Statement action = forStatement.getBody();
-		checkSourceRange(action, "{ foo(); }", source); //$NON-NLS-1$
-		assertTrue("Not a block", action instanceof Block); //$NON-NLS-1$
-		Block block = (Block) action;
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(0);
-		checkSourceRange(stmt, "foo();", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10843
-	 */
-	public void test0274() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0274", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not a While statement", node instanceof WhileStatement); //$NON-NLS-1$
-		WhileStatement whileStatement = (WhileStatement) node;
-		checkSourceRange(whileStatement, "while (i < 10) { foo(i++); }", source); //$NON-NLS-1$
-		Statement action = whileStatement.getBody();
-		checkSourceRange(action, "{ foo(i++); }", source); //$NON-NLS-1$
-		assertTrue("Not a block", action instanceof Block); //$NON-NLS-1$
-		Block block = (Block) action;
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(0);
-		checkSourceRange(stmt, "foo(i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10843
-	 */
-	public void test0275() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0275", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not a While statement", node instanceof WhileStatement); //$NON-NLS-1$
-		WhileStatement whileStatement = (WhileStatement) node;
-		checkSourceRange(whileStatement, "while (i < 10) foo(i++);", source); //$NON-NLS-1$
-		Statement action = whileStatement.getBody();
-		checkSourceRange(action, "foo(i++);", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10798
-	 */
-	public void test0276() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0276", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		String expectedSource = 
-			"public void foo() {\n" + //$NON-NLS-1$
-			"		foo();\n" + //$NON-NLS-1$
-			"	}"; //$NON-NLS-1$
-		checkSourceRange(methodDeclaration, expectedSource, source);
-		expectedSource = 
-			"{\n" + //$NON-NLS-1$
-			"		foo();\n" + //$NON-NLS-1$
-			"	}";		 //$NON-NLS-1$
-		checkSourceRange(methodDeclaration.getBody(), expectedSource, source);
-	}
-		
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10798
-	 */
-	public void test0277() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0277", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		String expectedSource = 
-			"public void foo() {\n" + //$NON-NLS-1$
-			"	}"; //$NON-NLS-1$
-		checkSourceRange(methodDeclaration, expectedSource, source);
-		expectedSource = 
-			"{\n" + //$NON-NLS-1$
-			"	}";		 //$NON-NLS-1$
-		checkSourceRange(methodDeclaration.getBody(), expectedSource, source);
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10861
-	 */
-	public void test0278() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0278", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "Class c = java.lang.String.class;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a type literal", expression instanceof TypeLiteral); //$NON-NLS-1$
-		ITypeBinding typeBinding = expression.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Class", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10861
-	 */
-	public void test0279() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0279", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0,0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		checkSourceRange(variableDeclarationStatement, "Class c = java.lang.String.class;", source); //$NON-NLS-1$
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a type literal", expression instanceof TypeLiteral); //$NON-NLS-1$
-		ITypeBinding typeBinding = expression.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Class", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10865
-	 * Check well known types
-	 */
-	public void test0280() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0280", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		AST newAst = result.getAST();
-		ITypeBinding typeBinding = newAst.resolveWellKnownType("boolean"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("char"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "char", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("byte"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "byte", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("short"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "short", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("int"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("long"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "long", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("float"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "float", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("double"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "double", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("void"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "void", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.Object"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Object", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.String"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "String", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.StringBuffer"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "StringBuffer", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.Throwable"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Throwable", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.Exception"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Exception", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.RuntimeException"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "RuntimeException", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.Error"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Error", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.Class"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Class", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("java.lang.Runnable"); //$NON-NLS-1$
-		assertNull("typeBinding not null", typeBinding); //$NON-NLS-1$
-		typeBinding = newAst.resolveWellKnownType("java.lang.Cloneable"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$
-		typeBinding = newAst.resolveWellKnownType("java.io.Serializable"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Boolean"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Byte"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Character"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Double"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Float"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Integer"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Long"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Short"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-		typeBinding = newAst.resolveWellKnownType("java.lang.Void"); //$NON-NLS-1$
-		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0281() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0281", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "Object o= /*]*/new Object()/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "new Object()", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0282() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0282", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "boolean b = /*]*/true/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "true", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0283() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0283", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "char c = /*]*/'c'/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "'c'", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0284() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0284", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "Object o = /*]*/null/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "null", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0285() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0285", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "Object o = /*]*/Object.class/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "Object.class", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0286() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0286", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "int i = /**/(2)/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "(2)", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0287() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0287", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "String[] tab = /**/new String[3]/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "new String[3]", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0288() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0288", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "String[] tab = /**/{ }/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "{ }", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0289() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0289", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "String s = /**/tab1[0]/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "tab1[0]", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0290() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0290", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "Object o = /*]*/new java.lang.Object()/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "new java.lang.Object()", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10898
-	 */
-	public void test0291() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0291", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("no errors", 1, unit.getMessages().length); //$NON-NLS-1$
-		assertEquals("no errors", 1, unit.getProblems().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10913
-	 */
-	public void test0292() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0292", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not a qualifiedName", expression instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) expression;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("Wrong name", "x", simpleName.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("NO binding", binding); //$NON-NLS-1$
-		assertTrue("Not a variable binding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "x", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Name name = qualifiedName.getQualifier();
-		assertTrue("Not a simpleName", name instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleName2 = (SimpleName) name;
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		assertTrue("Not a type binding", binding2 instanceof ITypeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Test", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10933
- 	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10935
-	 */
-	public void test0293() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0293", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a class instance creation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		assertNotNull("No body", anonymousClassDeclaration); //$NON-NLS-1$
-		String expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			public void run() {\n" + //$NON-NLS-1$
-				"				/*]*/foo();/*[*/\n" + //$NON-NLS-1$
-				"			}\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(anonymousClassDeclaration, expectedSource, source);
-		expectedSource =
-				"run= new Runnable() {\n" + //$NON-NLS-1$
-				"			public void run() {\n" + //$NON-NLS-1$
-				"				/*]*/foo();/*[*/\n" + //$NON-NLS-1$
-				"			}\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(variableDeclarationFragment, expectedSource, source);
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10984
-	 */
-	public void test0294() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0294", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		String expectedSource = 
-				"public void fails() {\n" + //$NON-NLS-1$
-				"		foo()\n" + //$NON-NLS-1$
-				"	}"; //$NON-NLS-1$
-		checkSourceRange(methodDeclaration, expectedSource, source);
-		Block block = methodDeclaration.getBody();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"		foo()\n" + //$NON-NLS-1$
-				"	}"; //$NON-NLS-1$
-		checkSourceRange(block, expectedSource, source);	
-		node = getASTNode(compilationUnit, 0, 1);	
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10986
-	 */
-	public void test0295() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0295", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("Wrong size", 2, compilationUnit.getMessages().length); //$NON-NLS-1$
-		assertEquals("Wrong size", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("not a method invocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		ITypeBinding typeBinding = methodInvocation.resolveTypeBinding();
-		assertNull("type binding is not null", typeBinding); //$NON-NLS-1$
-	}
-
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10984
-	 */
-	public void test0296() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0296", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		String expectedSource = 
-				"public void fails() {\n" + //$NON-NLS-1$
-				"		foo()\n" + //$NON-NLS-1$
-				"	}"; //$NON-NLS-1$
-		checkSourceRange(methodDeclaration, expectedSource, source);
-		Block block = methodDeclaration.getBody();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"		foo()\n" + //$NON-NLS-1$
-				"	}"; //$NON-NLS-1$
-		checkSourceRange(block, expectedSource, source);	
-		node = getASTNode(compilationUnit, 0, 1);	
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11037
-	 */
-	public void test0297() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0297", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		runConversion(AST.JLS3, sourceUnit, false);
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10984
-	 */
-	public void test0298() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0298", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a ReturnStatement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		checkSourceRange(expression, "a().length != 3", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11104
-	 */
-	public void test0299() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0299", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "int i = (/**/2/**/);", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a parenthesized expression", expression instanceof ParenthesizedExpression); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression;
-		Expression expression2 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression2, "2", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11104
-	 */
-	public void test0300() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0300", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "boolean b = /**/true/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "true", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11104
-	 */
-	public void test0301() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0301", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		checkSourceRange(fieldDeclaration, "Object o = /**/null/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "null", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11106
-	 */
-	public void test0302() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0302", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a DoStatement", node instanceof DoStatement); //$NON-NLS-1$
-		DoStatement doStatement = (DoStatement) node;
-		String expectedSource = 
-				"do\n" +   //$NON-NLS-1$
-				"			foo();\n" +  //$NON-NLS-1$
-				"		while(1 < 10);"; //$NON-NLS-1$
-		checkSourceRange(doStatement, expectedSource, source);
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11129
-	 */
-	public void test0303() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0303", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression2 = expressionStatement.getExpression();
-		assertTrue("Not an Assignement", expression2 instanceof Assignment); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11151
-	 */
-	public void test0304() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0304", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		checkSourceRange(node, "public void foo(int arg);", source); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		assertNull("Has a body", block); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11125
-	 */
-	public void test0305() {
-		char[] source = 
-				("package test0305;\n" +  //$NON-NLS-1$
-				"\n" +  //$NON-NLS-1$
-				"class Test {\n" +  //$NON-NLS-1$
-				"	public void foo(int arg) {}\n" +  //$NON-NLS-1$
-				"}").toCharArray(); //$NON-NLS-1$
-		IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
-		ASTNode result = runConversion(AST.JLS3, source, "Test.js", project, true); //$NON-NLS-1$
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong package", "test0305", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Not an interface", typeBinding.isClass()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11125
-	 */
-	public void test0306() {
-		char[] source = 
-				("package java.lang;\n" +  //$NON-NLS-1$
-				"\n" +  //$NON-NLS-1$
-				"class Object {\n" +  //$NON-NLS-1$
-				"	public void foo(int arg) {}\n" +  //$NON-NLS-1$
-				"}").toCharArray(); //$NON-NLS-1$
-		IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
-		ASTNode result = runConversion(AST.JLS3, source, "Object.js", project, true); //$NON-NLS-1$
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Object", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong package", "java.lang", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Not an interface", typeBinding.isClass()); //$NON-NLS-1$
-		assertEquals("Wrong size", 2, typeBinding.getDeclaredMethods().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11371
-	 */
-	public void test0307() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0307", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		assertNotNull("No body", block); //$NON-NLS-1$
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not a super constructor invocation", statement instanceof SuperConstructorInvocation); //$NON-NLS-1$
-		checkSourceRange(statement, "super(10);", source);
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11371
-	 */
-	public void test0308() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0308", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		assertNotNull("No body", block); //$NON-NLS-1$
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not a super constructor invocation", statement instanceof SuperConstructorInvocation); //$NON-NLS-1$
-		SuperConstructorInvocation superConstructorInvocation = (SuperConstructorInvocation) statement;
-		IFunctionBinding methodBinding = superConstructorInvocation.resolveConstructorBinding();
-		assertNotNull("No methodBinding", methodBinding); //$NON-NLS-1$
-		IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-		assertNotNull("No methodBinding2", methodBinding2); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11380
-	 */
-	public void test0309() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0309", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a conditional expression", expression instanceof ConditionalExpression); //$NON-NLS-1$
-		ConditionalExpression conditionalExpression = (ConditionalExpression) expression;
-		ITypeBinding typeBinding = conditionalExpression.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11380
-	 */
-	public void test0310() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0310", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a qualified name", expression instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) expression;
-		Name qualifier = qualifiedName.getQualifier();
-		IBinding binding = qualifier.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", "I", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11638
-	 */
-	public void test0311() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0311", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("not a class instance creation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		assertNotNull("No body", anonymousClassDeclaration); //$NON-NLS-1$
-		List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-		assertEquals("wrong size for body declarations", 1, bodyDeclarations.size()); //$NON-NLS-1$
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		assertNotNull("no body", block); //$NON-NLS-1$
-		List statements = block.statements();
-		assertEquals("Wrong size for statements", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("not a variable declaration statement", statement instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement2 = (VariableDeclarationStatement) statement;
-		List fragments2 = variableDeclarationStatement2.fragments();
-		assertEquals("wrong size for fragments2", 1, fragments2.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment2 = (VariableDeclarationFragment) fragments2.get(0);
-		Expression expression2 = variableDeclarationFragment2.getInitializer();
-		assertTrue("Not a name", expression2 instanceof Name); //$NON-NLS-1$
-		Name name = (Name) expression2;
-		checkSourceRange(name, "j", source); //$NON-NLS-1$
-		IBinding binding = name.resolveBinding();
-		ASTNode declaringNode = compilationUnit.findDeclaringNode(binding);
-		assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
-		checkSourceRange(declaringNode, "int j", source); //$NON-NLS-1$
-		assertTrue("Not a single variable declaration", declaringNode instanceof SingleVariableDeclaration); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11638
-	 * There is a error in this source. A is unresolved. Then there is no
-	 * declaring node.
-	 */
-	public void test0312() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0312", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("not a class instance creation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		assertNotNull("No body", anonymousClassDeclaration); //$NON-NLS-1$
-		List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-		assertEquals("wrong size for body declarations", 1, bodyDeclarations.size()); //$NON-NLS-1$
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		assertNotNull("no body", block); //$NON-NLS-1$
-		List statements = block.statements();
-		assertEquals("Wrong size for statements", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("not a variable declaration statement", statement instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement2 = (VariableDeclarationStatement) statement;
-		List fragments2 = variableDeclarationStatement2.fragments();
-		assertEquals("wrong size for fragments2", 1, fragments2.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment2 = (VariableDeclarationFragment) fragments2.get(0);
-		Expression expression2 = variableDeclarationFragment2.getInitializer();
-		assertTrue("Not a name", expression2 instanceof Name); //$NON-NLS-1$
-		Name name = (Name) expression2;
-		checkSourceRange(name, "j", source); //$NON-NLS-1$
-		IBinding binding = name.resolveBinding();
-		ASTNode declaringNode = compilationUnit.findDeclaringNode(binding);
-		assertNull("No declaring node is available", declaringNode); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11659
-	 */
-	public void test0313() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0313", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an InfixExpression", expression instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "i+j", source); //$NON-NLS-1$
-		Expression expression2 = infixExpression.getLeftOperand();
-		checkSourceRange(expression2, "i", source); //$NON-NLS-1$
-		assertTrue("Not a name", expression2 instanceof Name); //$NON-NLS-1$
-		Name name = (Name) expression2;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		ASTNode astNode = compilationUnit.findDeclaringNode(binding);
-		assertNotNull("No declaring node", astNode); //$NON-NLS-1$
-		checkSourceRange(astNode, "int i", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=12326
-	 */
-	public void test0314() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0314", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("No result", result); //$NON-NLS-1$
-		assertTrue("Not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("Wrong line number", 1, compilationUnit.getLineNumber(0)); //$NON-NLS-1$
-		// ensure that last character is on the last line
-		assertEquals("Wrong line number", 3, compilationUnit.getLineNumber(source.length - 1)); //$NON-NLS-1$
-		// source.length is beyond the size of the compilation unit source
-		assertEquals("Wrong line number", -1, compilationUnit.getLineNumber(source.length)); //$NON-NLS-1$
-	}
-		
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=12326
-	 */
-	public void test0315() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0315", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a Return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not an instanceof expression", expression instanceof InstanceofExpression); //$NON-NLS-1$
-		InstanceofExpression instanceOfExpression = (InstanceofExpression) expression;
-		Type rightOperand = instanceOfExpression.getRightOperand();
-		assertTrue("Not a simpleType", rightOperand instanceof SimpleType); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) rightOperand;
-		Name n = simpleType.getName();
-		assertTrue("Not a qualified name", n instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName name = (QualifiedName) n;
-		checkSourceRange(name, "java.io.Serializable", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = name.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Serializable", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Name qualifier = name.getQualifier();
-		assertTrue("Not a qualified name", qualifier instanceof QualifiedName); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = qualifier.resolveTypeBinding();
-		assertNull("typebinding2 is not null", typeBinding2); //$NON-NLS-1$
-		IBinding binding = qualifier.resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-		IPackageBinding pBinding = (IPackageBinding) binding;
-		assertEquals("Wrong name", "java.io", pBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-		
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=12454
-	 */
-	public void test0316() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Hello.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No result", result); //$NON-NLS-1$
-		assertTrue("Not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("Wrong size", 1, compilationUnit.getMessages().length); //$NON-NLS-1$
-		assertEquals("Wrong size", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=12781
-	 */
-	public void test0317() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0317", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("not an instanceof expression", expression instanceof InstanceofExpression); //$NON-NLS-1$
-		InstanceofExpression instanceOfExpression = (InstanceofExpression) expression;
-		Expression left = instanceOfExpression.getLeftOperand();
-		assertTrue("Not a Name", left instanceof Name); //$NON-NLS-1$
-		Name name = (Name) left;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", "x", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding = name.resolveTypeBinding();
-		assertNotNull("No typebinding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong type", "Object", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Type right = instanceOfExpression.getRightOperand();
-		assertTrue("Not a simpleType", right instanceof SimpleType); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) right;
-		name = simpleType.getName();
-		assertTrue("Not a simpleName", name instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding2 = simpleName.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-		assertNotNull("No typeBinding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-					
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13233
-	 */
-	public void test0318() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0318", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("No error", 1, unit.getMessages().length); //$NON-NLS-1$
-		assertEquals("No error", 1, unit.getProblems().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0319() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0319", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an array creation", expression instanceof ArrayCreation); //$NON-NLS-1$
-		ArrayCreation arrayCreation = (ArrayCreation) expression;
-		ITypeBinding typeBinding = arrayCreation.resolveTypeBinding();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ArrayType arrayType = arrayCreation.getType();
-		ITypeBinding typeBinding2 = arrayType.resolveBinding();
-		assertNotNull("no type binding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Type type = arrayType.getElementType();
-		assertTrue("Not a simple type", type instanceof SimpleType); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		ITypeBinding typeBinding3 = simpleType.resolveBinding();
-		assertNotNull("no type binding3", typeBinding3); //$NON-NLS-1$
-		assertEquals("wrong name", "Object", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-			
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0320() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0320", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "int[]", source); //$NON-NLS-1$
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding typeBinding = arrayType.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		Type elementType = arrayType.getElementType();
-		assertTrue("Not a simple type", elementType.isPrimitiveType()); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = elementType.resolveBinding();
-		assertNotNull("No type binding2", typeBinding2); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0321() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0321", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding typeBinding = arrayType.resolveBinding();
-		checkSourceRange(type, "java.lang.Object[][]", source); //$NON-NLS-1$
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		Type elementType = arrayType.getComponentType();
-		ITypeBinding typeBinding2 = elementType.resolveBinding();
-		assertNotNull("No type binding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("wrong dimension", 1, typeBinding2.getDimensions()); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding2.getName());		 //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Not an array type", elementType.isArrayType()); //$NON-NLS-1$
-		Type elementType2 = ((ArrayType) elementType).getComponentType();
-		assertTrue("Not a simple type", elementType2.isSimpleType()); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = elementType2.resolveBinding();
-		assertNotNull("No type binding3", typeBinding3); //$NON-NLS-1$
-		assertEquals("wrong dimension", 0, typeBinding3.getDimensions()); //$NON-NLS-1$
-		assertEquals("wrong name", "Object", typeBinding3.getName());		 //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13231
-	 */
-	public void test0322() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0322", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a FieldDeclaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a null literal", expression instanceof NullLiteral); //$NON-NLS-1$
-		NullLiteral nullLiteral = (NullLiteral) expression;
-		ITypeBinding typeBinding = nullLiteral.resolveTypeBinding();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not the null type", typeBinding.isNullType()); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", typeBinding.getQualifiedName(), "null"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14198
-	 */
-	public void test0323() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0323", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression2 = expressionStatement.getExpression();
-		assertTrue("Not an Assignement", expression2 instanceof Assignment); //$NON-NLS-1$
-	}					
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14198
-	 */
-	public void test0324() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0324", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression2 = expressionStatement.getExpression();
-		assertTrue("Not an Assignement", expression2 instanceof Assignment); //$NON-NLS-1$
-	}					
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14198
-	 */
-	public void test0325() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0325", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression2 = expressionStatement.getExpression();
-		assertTrue("Not an Assignement", expression2 instanceof Assignment); //$NON-NLS-1$
-	}					
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14217
-	 */
-	public void test0326() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0326", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		char[] source = sourceUnit.getSource().toCharArray();
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		checkSourceRange(expressionStatement.getExpression(), "a().f= a()", source); //$NON-NLS-1$
-		checkSourceRange(expressionStatement, "a().f= a();", source); //$NON-NLS-1$
-	}					
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14198
-	 */
-	public void test0327() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0327", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of errors", 2, compilationUnit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not an VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-	}					
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0328() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0328", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "java.lang.Object[]", source); //$NON-NLS-1$
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding typeBinding = arrayType.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Type elementType = arrayType.getElementType();
-		assertTrue("Not a simple type", elementType.isSimpleType()); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = elementType.resolveBinding();
-		assertNotNull("No type binding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("wrong name", "Object", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a array creation", expression instanceof ArrayCreation); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = expression.resolveTypeBinding();
-		assertNotNull("No typeBinding3", typeBinding3); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ArrayCreation arrayCreation = (ArrayCreation) expression;
-		ArrayInitializer arrayInitializer = arrayCreation.getInitializer();
-		assertNotNull("not array initializer", arrayInitializer); //$NON-NLS-1$
-		ITypeBinding typeBinding4 = arrayInitializer.resolveTypeBinding();
-		assertNotNull("No typeBinding4", typeBinding3); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0329() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0329", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "java.lang.Object[]", source); //$NON-NLS-1$
-		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding typeBinding = arrayType.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Type elementType = arrayType.getElementType();
-		assertTrue("Not a simple type", elementType.isSimpleType()); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = elementType.resolveBinding();
-		assertNotNull("No type binding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("wrong name", "Object", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a array creation", expression instanceof ArrayCreation); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = expression.resolveTypeBinding();
-		assertNotNull("No typeBinding3", typeBinding3); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ArrayCreation arrayCreation = (ArrayCreation) expression;
-		ArrayInitializer arrayInitializer = arrayCreation.getInitializer();
-		assertNotNull("not array initializer", arrayInitializer); //$NON-NLS-1$
-		ITypeBinding typeBinding4 = arrayInitializer.resolveTypeBinding();
-		assertNotNull("No typeBinding4", typeBinding3); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14313
-	 */
-	public void test0330() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0330", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("wrong size", 2, compilationUnit.getMessages().length); //$NON-NLS-1$
-		assertEquals("wrong size", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-		assertEquals("wrong size", 1, methods.length); //$NON-NLS-1$
-		assertTrue("not a constructor", methods[0].isConstructor()); //$NON-NLS-1$
-		assertTrue("wrong name", !methods[0].getName().equals("foo")); //$NON-NLS-1$ //$NON-NLS-2$
-		node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a methodDeclaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNull("method binding not null", methodBinding); //$NON-NLS-1$
-		node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		ITypeBinding typeBinding2 = expression.resolveTypeBinding();
-		assertNotNull("no type binding2", typeBinding2); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14322
-	 */
-	public void test0331() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0331", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not an VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a QualifiedName", expression instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) expression;
-		IBinding binding = qualifiedName.getName().resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind()); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertTrue("Not a field", variableBinding.isField()); //$NON-NLS-1$
-		assertNull("Got a declaring class", variableBinding.getDeclaringClass()); //$NON-NLS-1$
-		assertEquals("wrong name", "length", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}					
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14403
-	 */
-	public void test0332() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0332", "LocalSelectionTransfer.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0333() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0333", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an array creation", expression instanceof ArrayCreation); //$NON-NLS-1$
-		ArrayCreation arrayCreation = (ArrayCreation) expression;
-		ITypeBinding typeBinding = arrayCreation.resolveTypeBinding();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[][]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ArrayType arrayType = arrayCreation.getType();
-		ITypeBinding typeBinding2 = arrayType.resolveBinding();
-		assertNotNull("no type binding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[][]", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Type type = arrayType.getElementType();
-		assertTrue("Not a simple type", type instanceof SimpleType); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		ITypeBinding typeBinding3 = simpleType.resolveBinding();
-		assertNotNull("no type binding3", typeBinding3); //$NON-NLS-1$
-		assertEquals("wrong name", "Object", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		type = arrayType.getComponentType();
-		assertTrue("Not an array type", type instanceof ArrayType); //$NON-NLS-1$
-		ArrayType arrayType2 = (ArrayType) type;
-		ITypeBinding typeBinding4 = arrayType2.resolveBinding();
-		assertNotNull("no type binding4", typeBinding4); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0334() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0334", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an array creation", expression instanceof ArrayCreation); //$NON-NLS-1$
-		ArrayCreation arrayCreation = (ArrayCreation) expression;
-		ITypeBinding typeBinding = arrayCreation.resolveTypeBinding();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[][][]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ArrayType arrayType = arrayCreation.getType();
-		checkSourceRange(arrayType, "Object[10][][]", source); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = arrayType.resolveBinding();
-		assertNotNull("no type binding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[][][]", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Type type = arrayType.getElementType();
-		assertTrue("Not a simple type", type instanceof SimpleType); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		checkSourceRange(simpleType, "Object", source); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = simpleType.resolveBinding();
-		assertNotNull("no type binding3", typeBinding3); //$NON-NLS-1$
-		assertEquals("wrong name", "Object", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		type = arrayType.getComponentType();
-		assertTrue("Not an array type", type instanceof ArrayType); //$NON-NLS-1$
-		ArrayType arrayType2 = (ArrayType) type;
-		checkSourceRange(arrayType2, "Object[10][]", source); //$NON-NLS-1$
-		ITypeBinding typeBinding4 = arrayType2.resolveBinding();
-		assertNotNull("no type binding4", typeBinding4); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[][]", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		type = arrayType2.getComponentType();
-		assertTrue("Not an array type", type instanceof ArrayType); //$NON-NLS-1$
-		ArrayType arrayType3 = (ArrayType) type;
-		ITypeBinding typeBinding5 = arrayType3.resolveBinding();
-		assertNotNull("no type binding5", typeBinding5); //$NON-NLS-1$
-		assertEquals("wrong name", "Object[]", typeBinding5.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(arrayType3, "Object[10]", source); //$NON-NLS-1$
-	}
-	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14526
-	 */
-	public void test0335() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0335", "ExceptionTestCaseTest.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		assertEquals("errors found", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		Type superclassType = typeDeclaration.getSuperclassType();
-		assertNotNull("no super class", superclassType); //$NON-NLS-1$
-		assertEquals("Wrong type", superclassType.getNodeType(), ASTNode.SIMPLE_TYPE);
-		SimpleType simpleType = (SimpleType) superclassType;
-		Name name = simpleType.getName();
-		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) name;
-		name = qualifiedName.getQualifier();
-		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		qualifiedName = (QualifiedName) name;
-		name = qualifiedName.getQualifier();
-		assertTrue("not a simple name", name.isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertEquals("wrong type", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-		assertEquals("wrong name", "junit", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14526
-	 */
-	public void test0336() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0336", "SorterTest.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		assertEquals("errors found", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-	}	
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14602
-	 */
-	public void test0337() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0337", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		checkSourceRange(variableDeclarationFragment, "message= Test.m(\"s\", new String[]{\"g\"})", source); //$NON-NLS-1$
-		checkSourceRange(fieldDeclaration, "String message= Test.m(\"s\", new String[]{\"g\"});", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14852
-	 */
-	public void test0338() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0338", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List thrownExceptions = methodDeclaration.thrownExceptions();
-		assertEquals("Wrong size", 1, thrownExceptions.size()); //$NON-NLS-1$
-		Name name = (Name) thrownExceptions.get(0);
-		IBinding binding = name.resolveBinding();
-		assertEquals("wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertEquals("wrong name", "IOException", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=15061
-	 */
-	public void test0339() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0339", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No errors found", 3, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a Type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size()); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclarations.get(0);
-		checkSourceRange(methodDeclaration, "int doQuery(boolean x);", source); //$NON-NLS-1$
-		node = getASTNode(compilationUnit, 0, 1);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		String expectedSource = 
-			"public void setX(boolean x) {\n" +  //$NON-NLS-1$
-			" 		{\n" +  //$NON-NLS-1$
-			"		z\n" +  //$NON-NLS-1$
-			"	}\n" +  //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-		int methodEndPosition = node.getStartPosition() + node.getLength();
-		node = getASTNode(compilationUnit, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		int typeEndPosition = node.getStartPosition() + node.getLength();
-		assertEquals("different positions", methodEndPosition, typeEndPosition); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14852
-	 */
-	public void test0340() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "p3", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not an method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertNotNull("No receiver", expression2); //$NON-NLS-1$
-		ITypeBinding binding = expression2.resolveTypeBinding();
-		assertNotNull("No type binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", "A", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong name", "p2", binding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Not a qualified name", expression2.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) expression2;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("wrong name", "A", simpleName.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding = simpleName.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "A", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong name", "p2", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Name name = qualifiedName.getQualifier();
-		assertTrue("Not a simple name", name.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName2 = (SimpleName) name;
-		assertEquals("wrong name", "p2", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("No binding", binding2); //$NON-NLS-1$
-		assertEquals("wrong type", IBinding.PACKAGE, binding2.getKind()); //$NON-NLS-1$
-		assertEquals("wrong name", "p2", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement2 = (ExpressionStatement) node;
-		Expression expression3 = expressionStatement2.getExpression();
-		assertTrue("Not an method invocation", expression3.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) expression3;
-		Expression expression4 = methodInvocation2.getExpression();
-		assertNotNull("No receiver", expression4); //$NON-NLS-1$
-		ITypeBinding binding3 = expression4.resolveTypeBinding();
-		assertNotNull("No type binding", binding3); //$NON-NLS-1$
-		assertEquals("wrong name", "A", binding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong name", "p1", binding3.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=15804
-	 */
-	public void test0341() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0341", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an if statement", node.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		String expectedSource = 
-				"if (field != null) {\n" + //$NON-NLS-1$
-				"			throw new IOException();\n" + //$NON-NLS-1$
-				"		} else if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new MalformedURLException();\n" + //$NON-NLS-1$
-				"		} else if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new InterruptedIOException();\n" + //$NON-NLS-1$
-				"		} else {\n" + //$NON-NLS-1$
-				"			throw new UnsupportedEncodingException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-		IfStatement ifStatement = (IfStatement) node;
-		Statement thenStatement = ifStatement.getThenStatement();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			throw new IOException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(thenStatement, expectedSource, source);
-		Statement elseStatement = ifStatement.getElseStatement();
-		expectedSource = 
-				"if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new MalformedURLException();\n" + //$NON-NLS-1$
-				"		} else if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new InterruptedIOException();\n" + //$NON-NLS-1$
-				"		} else {\n" + //$NON-NLS-1$
-				"			throw new UnsupportedEncodingException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(elseStatement, expectedSource, source);
-		assertTrue("Not a if statement", elseStatement.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		ifStatement = (IfStatement) elseStatement;
-		thenStatement = ifStatement.getThenStatement();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			throw new MalformedURLException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(thenStatement, expectedSource, source);
-		elseStatement = ifStatement.getElseStatement();
-		expectedSource = 
-				"if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new InterruptedIOException();\n" + //$NON-NLS-1$
-				"		} else {\n" + //$NON-NLS-1$
-				"			throw new UnsupportedEncodingException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(elseStatement, expectedSource, source);
-		assertTrue("Not a if statement", elseStatement.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		ifStatement = (IfStatement) elseStatement;
-		thenStatement = ifStatement.getThenStatement();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			throw new InterruptedIOException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(thenStatement, expectedSource, source);
-		elseStatement = ifStatement.getElseStatement();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			throw new UnsupportedEncodingException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(elseStatement, expectedSource, source);
-	}	
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=15657
-//	 * @deprecated marked deprecated to suppress JDOM-related deprecation warnings
-//	 */
-//	public void test0342() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0342", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		IDOMCompilationUnit dcompUnit = new DOMFactory().createCompilationUnit(sourceUnit.getSource(), sourceUnit.getElementName());
-//		assertNotNull("dcompUnit is null", dcompUnit); //$NON-NLS-1$
-//
-//		// searching class 
-//		IDOMType classNode = null;
-//		Enumeration children = dcompUnit.getChildren();
-//		assertNotNull("dcompUnit has no children", children); //$NON-NLS-1$
-//		
-//		while (children.hasMoreElements()) {
-//			IDOMNode child = (IDOMNode) children.nextElement();
-//			if (child.getNodeType() == IDOMNode.TYPE) {
-//				classNode = (IDOMType) child;
-//				break;
-//			}
-//		}
-//		assertNotNull("classNode is null", classNode); //$NON-NLS-1$
-//
-//		// searching for methods
-//		children = classNode.getChildren();
-//
-//		assertNotNull("classNode has no children", children); //$NON-NLS-1$
-//
-//		while (children.hasMoreElements()) {
-//			IDOMNode child = (IDOMNode) children.nextElement();
-//			if (child.getNodeType() == IDOMNode.METHOD) {
-//				IDOMMethod childMethod = (IDOMMethod) child;
-//
-//				// returnType is always null;
-//				String returnType = childMethod.getReturnType();
-//				if (childMethod.isConstructor()) {
-//					assertNull(returnType);
-//				} else {
-//					assertNotNull("no return type", returnType); //$NON-NLS-1$
-//				}
-//			}
-//		}
-//	}	
-//
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=16051
-	 */
-	public void test0343() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0343", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 1);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an if statement", node.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		String expectedSource = 
-				"if (flag)\n" + //$NON-NLS-1$
-				"			i= 10;"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=16132
-	 */
-	public void test0344() throws JavaScriptModelException {
-		IJavaScriptProject project = null;
-		String pb_assert = null;
-		String compiler_source = null;
-		String compiler_compliance = null;
-		try {
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0344", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			project = sourceUnit.getJavaScriptProject();
-			pb_assert = project.getOption(JavaScriptCore.COMPILER_PB_ASSERT_IDENTIFIER, true);
-			compiler_source = project.getOption(JavaScriptCore.COMPILER_SOURCE, true);
-			compiler_compliance = project.getOption(JavaScriptCore.COMPILER_COMPLIANCE, true);
-			project.setOption(JavaScriptCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaScriptCore.ERROR); 
-			project.setOption(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			project.setOption(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_4);
-			ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-			assertNotNull("No compilation unit", result); //$NON-NLS-1$
-			assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-			assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		} finally {
-			if (project != null) {
-				project.setOption(JavaScriptCore.COMPILER_PB_ASSERT_IDENTIFIER, pb_assert); 
-				project.setOption(JavaScriptCore.COMPILER_SOURCE, compiler_source); 
-				project.setOption(JavaScriptCore.COMPILER_COMPLIANCE, compiler_compliance); 
-			}
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=17922
-	 */
-	public void test0345() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0345", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an ArrayCreation", expression.getNodeType() == ASTNode.ARRAY_CREATION); //$NON-NLS-1$
-		ArrayCreation arrayCreation = (ArrayCreation) expression;
-		ArrayType arrayType = arrayCreation.getType();
-		IBinding binding2 = arrayType.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertEquals("not a type", binding2.getKind(), IBinding.TYPE); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = (ITypeBinding) binding2;
-		assertTrue("Not an array type binding2", typeBinding2.isArray()); //$NON-NLS-1$
-		Type type = arrayType.getElementType();
-		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("QualifiedName", name.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
-		SimpleName simpleName = ((QualifiedName) name).getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertEquals("not a type", binding.getKind(), IBinding.TYPE); //$NON-NLS-1$
-		ITypeBinding typeBinding = (ITypeBinding) binding;
-		assertTrue("An array type binding", !typeBinding.isArray()); //$NON-NLS-1$
-		Type type2 = fieldDeclaration.getType();
-		assertTrue("Not a array type", type2.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType2 = (ArrayType) type2;
-		Type type3 = arrayType2.getElementType();
-		assertTrue("Not a simple type", type3.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType2 = (SimpleType) type3;
-		Name name2 = simpleType2.getName();
-		assertTrue("Not a qualified name", name2.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
-		SimpleName simpleName2 = ((QualifiedName) name2).getName();
-		IBinding binding3 = simpleName2.resolveBinding();
-		assertNotNull("no binding", binding3); //$NON-NLS-1$
-		assertEquals("not a type", binding3.getKind(), IBinding.TYPE); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = (ITypeBinding) binding3;
-		assertTrue("An array type binding", !typeBinding3.isArray()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0346() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0346", "Test2.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an variable declaration", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "Vector", source); //$NON-NLS-1$
-		assertTrue("not an array type", !type.isArrayType()); //$NON-NLS-1$
-		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("Not a simpleName", name.isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		ITypeBinding typeBinding = (ITypeBinding) binding;
-		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding2 = simpleType.resolveBinding();
-		assertNotNull("No binding", typeBinding2); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, typeBinding2.getKind()); //$NON-NLS-1$
-		assertTrue("An array", !typeBinding2.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0347() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0347", "Test2.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an variable declaration", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "Vector[]", source); //$NON-NLS-1$
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding binding = arrayType.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("Not an array type", binding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector[]", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0348() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0348", "Test2.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an variable declaration", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "Vector[][]", source); //$NON-NLS-1$
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding binding = arrayType.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("Not an array type", binding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector[][]", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0349() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0349", "Test2.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Vector[][]", source); //$NON-NLS-1$
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding binding = arrayType.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("Not an array type", binding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector[][]", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0350() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0350", "Test2.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Vector", source); //$NON-NLS-1$
-		assertTrue("not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		ITypeBinding binding = simpleType.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("An array type", binding.isClass()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18169
-	 */
-	public void test0351() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0351", "Test2.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		checkSourceRange(singleVariableDeclaration, "int a", source); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(1);
-		checkSourceRange(singleVariableDeclaration, "int[] b", source); //$NON-NLS-1$
-		node = getASTNode(compilationUnit, 0, 1);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		checkSourceRange(singleVariableDeclaration, "int a", source); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(1);
-		checkSourceRange(singleVariableDeclaration, "int b[]", source);			 //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18169
-	 */
-	public void test0352() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0352", "Test2.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		checkSourceRange(singleVariableDeclaration, "final int a", source); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(1);
-		checkSourceRange(singleVariableDeclaration, "final int[] b", source); //$NON-NLS-1$
-		node = getASTNode(compilationUnit, 0, 1);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		checkSourceRange(singleVariableDeclaration, "final int a", source); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(1);
-		checkSourceRange(singleVariableDeclaration, "final int b[]", source);			 //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18042
-	 */
-	public void test0353() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0353", "Test.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);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an variable declaration", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "InputStream", source); //$NON-NLS-1$
-		assertTrue("not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		ITypeBinding binding = type.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("Not a class", binding.isClass()); //$NON-NLS-1$
-		assertEquals("Wrong name", "InputStream", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong package", "java.io", binding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		IBinding binding2 = name.resolveBinding();
-		assertNotNull("No binding", binding2); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding2.getKind()); //$NON-NLS-1$
-		ITypeBinding typeBinding = (ITypeBinding) binding2;
-		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-		assertEquals("Wrong name", "InputStream", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong package", "java.io", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=19851
-	 */
-	public void test0354() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0354", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 2, compilationUnit.getMessages().length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=20520
-	 */
-	public void test0355() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0355", "Foo.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not an if statement", node.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node;
-		Expression condition = ifStatement.getExpression();
-		assertTrue("Not an infixExpression", condition.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) condition;
-		Expression expression = infixExpression.getLeftOperand();
-		assertTrue("Not a method invocation expression", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a parenthesis expression", expression2.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=20865
-	 */
-	public void test0356() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0356", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 1, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		ITypeBinding binding = type.resolveBinding();
-		assertNotNull("Binding should NOT be null for type: "+type, binding);
-
-		// Verify that class instance creation has a null binding
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Expect only one fragment for VariableDeclarationStatement: "+variableDeclarationStatement, 1, fragments.size());
-		node = (ASTNode) fragments.get(0);
-		assertEquals("Not a variable declaration fragment", ASTNode.VARIABLE_DECLARATION_FRAGMENT, node.getNodeType()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) node;
-		Expression initializer = fragment.getInitializer();
-		assertEquals("Expect a class instance creation for initializer: "+initializer, ASTNode.CLASS_INSTANCE_CREATION, initializer.getNodeType()); //$NON-NLS-1$
-		ClassInstanceCreation instanceCreation = (ClassInstanceCreation) initializer;
-		type = instanceCreation.getType();
-		binding = type.resolveBinding();
-		assertNull("Binding should BE null for type: "+type, binding);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21757
-	 */
-	public void test0357() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0357", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration statement", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		SimpleName name = typeDeclaration.getName();
-		checkSourceRange(name, "A", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21768
-	 */
-	public void test0358() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0358", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0,0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration statement", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		SimpleName name = methodDeclaration.getName();
-		checkSourceRange(name, "mdd", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21768
-	 */
-	public void test0359() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0359", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0,0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration statement", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		SimpleName name = methodDeclaration.getName();
-		checkSourceRange(name, "mdd", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21916
-	 */
-	public void test0360() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0360", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0,0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		List initializers = forStatement.initializers();
-		assertEquals("Wrong size", 1, initializers.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21916
-	 */
-	public void test0361() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0361", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0,0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		List initializers = forStatement.initializers();
-		assertEquals("Wrong size", 1, initializers.size()); //$NON-NLS-1$
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21916
-	 */
-	public void test0362() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0362", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-
-		VariableDeclarationFragment iFragment = this.ast.newVariableDeclarationFragment();
-		iFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		iFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		VariableDeclarationFragment jFragment = this.ast.newVariableDeclarationFragment();
-		jFragment.setName(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		jFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		VariableDeclarationFragment kFragment = this.ast.newVariableDeclarationFragment();
-		kFragment.setName(this.ast.newSimpleName("k")); //$NON-NLS-1$
-		kFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(iFragment);
-		variableDeclarationExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		variableDeclarationExpression.fragments().add(jFragment);
-		variableDeclarationExpression.fragments().add(kFragment);
-		forStatement.initializers().add(variableDeclarationExpression);
-
-		PostfixExpression iPostfixExpression = this.ast.newPostfixExpression();
-		iPostfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		iPostfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(iPostfixExpression);
-		
-		PostfixExpression jPostfixExpression = this.ast.newPostfixExpression();
-		jPostfixExpression.setOperand(this.ast.newSimpleName("j"));//$NON-NLS-1$
-		jPostfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(jPostfixExpression);
-
-		PostfixExpression kPostfixExpression = this.ast.newPostfixExpression();
-		kPostfixExpression.setOperand(this.ast.newSimpleName("k"));//$NON-NLS-1$
-		kPostfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(kPostfixExpression);
-
-		forStatement.setBody(this.ast.newBlock());
-		
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		infixExpression.setRightOperand(this.ast.newNumberLiteral("10")); //$NON-NLS-1$
-		forStatement.setExpression(infixExpression);
-		
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (int i=0, j=0, k=0; i<10 ; i++, j++, k++) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22939
-	 */
-	public void test0363() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0363", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a parenthesized expression", expression.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION); //$NON-NLS-1$
-		Expression expression2 = ((ParenthesizedExpression) expression).getExpression();
-		checkSourceRange(expression2, "xxxx", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11529
-	 */
-	public void test0364() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0364", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		checkSourceRange(variableDeclarationStatement, "int local;", source); //$NON-NLS-1$
-		SimpleName simpleName = variableDeclarationFragment.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11529
-	 */
-	public void test0365() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0365", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		List initializers = forStatement.initializers();
-		assertEquals("Wrong size", 1, initializers.size()); //$NON-NLS-1$
-		VariableDeclarationExpression variableDeclarationExpression = (VariableDeclarationExpression) initializers.get(0);
-		List fragments = variableDeclarationExpression.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		SimpleName simpleName = variableDeclarationFragment.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0366() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0366", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		checkSourceRange(forStatement, "for (int i = 0; i < 5; ++i);", source); //$NON-NLS-1$
-		Statement statement = forStatement.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0367() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0367", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a while statement", node.getNodeType() == ASTNode.WHILE_STATEMENT); //$NON-NLS-1$
-		WhileStatement whileStatement = (WhileStatement) node;
-		checkSourceRange(whileStatement, "while(i == 2);", source); //$NON-NLS-1$
-		Statement statement = whileStatement.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0368() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0368", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertProblemsSize(compilationUnit, 1, "The label test is never explicitly referenced"); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a labeled statement", node.getNodeType() == ASTNode.LABELED_STATEMENT); //$NON-NLS-1$
-		LabeledStatement labeledStatement = (LabeledStatement) node;
-		checkSourceRange(labeledStatement, "test:;", source); //$NON-NLS-1$
-		Statement statement = labeledStatement.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0369() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0369", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertProblemsSize(compilationUnit, 1, "The label test is never explicitly referenced"); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a labeled statement", node.getNodeType() == ASTNode.LABELED_STATEMENT); //$NON-NLS-1$
-		LabeledStatement labeledStatement = (LabeledStatement) node;
-		checkSourceRange(labeledStatement, "test:\\u003B", source); //$NON-NLS-1$
-		Statement statement = labeledStatement.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, "\\u003B", source); //$NON-NLS-1$
-	}
-			
-	/**
-	 * DoStatement ==> DoStatement
-	 */
-	public void test0370() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0370", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		DoStatement doStatement = this.ast.newDoStatement();
-		doStatement.setBody(this.ast.newEmptyStatement());
-		doStatement.setExpression(this.ast.newBooleanLiteral(true));
-		assertTrue("Both AST trees should be identical", doStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "do ; while(true);";//$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-		DoStatement doStatement2 = (DoStatement) node;
-		Statement statement = doStatement2.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0371() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0371", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a labeled statement", node.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node;
-		checkSourceRange(ifStatement, "if (i == 6);", source); //$NON-NLS-1$
-		Statement statement = ifStatement.getThenStatement();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0372() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0372", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a labeled statement", node.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node;
-		checkSourceRange(ifStatement, "if (i == 6) {} else ;", source); //$NON-NLS-1$
-		Statement statement = ifStatement.getElseStatement();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23118
-	 */
-	public void test0373() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0373", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		Statement statement = forStatement.getBody();
-		assertTrue("Not a block statement", statement.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-		Block block = (Block) statement;
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement2 = (Statement) statements.get(0);
-		assertTrue("Not a break statement", statement2.getNodeType() == ASTNode.BREAK_STATEMENT); //$NON-NLS-1$
-		BreakStatement breakStatement = (BreakStatement) statement2;
-		checkSourceRange(breakStatement, "break;", source);		 //$NON-NLS-1$
-	}
-							
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23118
-	 */
-	public void test0374() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0374", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		Statement statement = forStatement.getBody();
-		assertTrue("Not a block statement", statement.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-		Block block = (Block) statement;
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement2 = (Statement) statements.get(0);
-		assertTrue("Not a break statement", statement2.getNodeType() == ASTNode.CONTINUE_STATEMENT); //$NON-NLS-1$
-		ContinueStatement continueStatement = (ContinueStatement) statement2;
-		checkSourceRange(continueStatement, "continue;", source);		 //$NON-NLS-1$
-	}						
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23052
-	 */
-	public void test0375() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0375", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("problems found", 1, compilationUnit.getMessages().length); //$NON-NLS-1$
-		List imports = compilationUnit.imports();
-		assertEquals("wrong size", 1, imports.size()); //$NON-NLS-1$
-		ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
-		IBinding binding = importDeclaration.resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertEquals("Not a type binding", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22939
-	 */
-	public void test0376() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0376", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23050
-	 */
-	public void test0377() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0377", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = variableDeclarationFragment.resolveBinding();
-		assertNotNull("No variable binding", variableBinding); //$NON-NLS-1$
-		assertEquals("Wrong modifier", IModifierConstants.ACC_FINAL, variableBinding.getModifiers()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22161
-	 */
-	public void test0378() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0378", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		SimpleName name = typeDeclaration.getName();
-		checkSourceRange(name, "B", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22161
-	 */
-	public void test0379() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0379", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION);		//$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation2 = (ClassInstanceCreation) expression;
-		Type type = classInstanceCreation2.getType();
-		checkSourceRange(type, "Object", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22054
-	 */
-	public void test0380() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0380", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not a super method invocation", expression.getNodeType() == ASTNode.SUPER_METHOD_INVOCATION); //$NON-NLS-1$
-		SuperMethodInvocation superMethodInvocation = (SuperMethodInvocation) expression;
-		ITypeBinding typeBinding = superMethodInvocation.resolveTypeBinding();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong declaring class", typeBinding.getSuperclass().getName(), "Object"); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName = superMethodInvocation.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.METHOD, binding.getKind()); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding;
-		assertEquals("Wrong declaring class", methodBinding.getDeclaringClass().getName(), "Object"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23054
-	 */
-	public void test0381() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0381", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		JSdoc javadoc = typeDeclaration.getJavadoc();
-		assertNull("Javadoc not null", javadoc); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22154
-	 */
-	public void test0382() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0382", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong fully qualified name", typeBinding.getQualifiedName(), "test0382.A"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-		
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22154
-	 */
-	public void test0383() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0383", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong fully qualified name", typeBinding.getQualifiedName(), "test0383.A.B"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22154
-	 */
-	public void test0384() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0384", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong fully qualified name", typeBinding.getQualifiedName(), "test0384.A.B.D"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23117
-	 */
-	public void test0385() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0385", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 1, compilationUnit.getMessages().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23259
-	 */
-	public void test0386() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0386", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a switch statement", node.getNodeType() == ASTNode.SWITCH_STATEMENT); //$NON-NLS-1$
-		SwitchStatement switchStatement = (SwitchStatement) node;
-		List statements = switchStatement.statements();
-		assertEquals("Wrong size", 5, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not a case statement", statement.getNodeType() == ASTNode.SWITCH_CASE); //$NON-NLS-1$
-		checkSourceRange(statement, "case 1:", source); //$NON-NLS-1$
-		statement = (Statement) statements.get(3);
-		assertTrue("Not a default case statement", statement.getNodeType() == ASTNode.SWITCH_CASE); //$NON-NLS-1$
-		checkSourceRange(statement, "default :", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22939
-	 */
-	public void test0387() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0387", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22154
-	 */
-	public void test0388() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0388", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "test0388.A", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22154
-	 */
-	public void test0389() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0389", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "test0389.A.B", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22154
-	 */
-	public void test0390() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0390", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "int", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22154
-	 */
-	public void test0391() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0391", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "int[]", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22154
-	 */
-	public void test0392() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0392", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "java.lang.String[]", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23284
-	 */
-	public void test0393() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0393", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		checkSourceRange(type, "String", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "java.lang.String", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong dimension", 1, methodDeclaration.getExtraDimensions()); //$NON-NLS-1$
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNotNull("No method binding", methodBinding); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = methodBinding.getReturnType();
-		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "java.lang.String[]", typeBinding2.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong dimension", 1, typeBinding2.getDimensions()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23284
-	 */
-	public void test0394() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0394", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		checkSourceRange(type, "String", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "java.lang.String", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong dimension", 0, methodDeclaration.getExtraDimensions()); //$NON-NLS-1$
-	}	
-
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23284
-	 */
-	public void test0395() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0395", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		checkSourceRange(type, "String[]", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 1, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "java.lang.String[]", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong dimension", 1, methodDeclaration.getExtraDimensions()); //$NON-NLS-1$
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNotNull("No method binding", methodBinding); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = methodBinding.getReturnType();
-		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", "java.lang.String[][]", typeBinding2.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong dimension", 2, typeBinding2.getDimensions()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23284
-	 */
-	public void test0396() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0396", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration method = (FunctionDeclaration) node;
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) method.parameters().get(0);
-		assertNotNull("Expression should not be null", singleVariableDeclaration); //$NON-NLS-1$
-		checkSourceRange(singleVariableDeclaration, "final String s[]", source); //$NON-NLS-1$
-		Type type = singleVariableDeclaration.getType();
-		checkSourceRange(type, "String", source); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 1, singleVariableDeclaration.getExtraDimensions()); //$NON-NLS-1$
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("An array binding", !typeBinding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertEquals("wrong fully qualified name", "java.lang.String", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IVariableBinding variableBinding = singleVariableDeclaration.resolveBinding();
-		assertNotNull("No variable binding", variableBinding); //$NON-NLS-1$
-		assertTrue("Is a parameter", variableBinding.isParameter());
-		ITypeBinding typeBinding2 = variableBinding.getType();
-		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-		assertTrue("Not an array binding", typeBinding2.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 1, typeBinding2.getDimensions()); //$NON-NLS-1$
-		assertEquals("wrong fully qualified name", "java.lang.String[]", typeBinding2.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23284
-	 */
-	public void test0397() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0397", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration method = (FunctionDeclaration) node;
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) method.parameters().get(0);
-		assertNotNull("Expression should not be null", singleVariableDeclaration); //$NON-NLS-1$
-		checkSourceRange(singleVariableDeclaration, "final String[] \\u0073\\u005B][]", source); //$NON-NLS-1$
-		Type type = singleVariableDeclaration.getType();
-		checkSourceRange(type, "String[]", source); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 2, singleVariableDeclaration.getExtraDimensions()); //$NON-NLS-1$
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not an array binding", typeBinding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 1, typeBinding.getDimensions()); //$NON-NLS-1$
-		assertEquals("wrong fully qualified name", "java.lang.String[]", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IVariableBinding variableBinding = singleVariableDeclaration.resolveBinding();
-		assertNotNull("No variable binding", variableBinding); //$NON-NLS-1$
-		assertTrue("Is a parameter", variableBinding.isParameter());
-		ITypeBinding typeBinding2 = variableBinding.getType();
-		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-		assertTrue("Not an array binding", typeBinding2.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong dimension", 3, typeBinding2.getDimensions()); //$NON-NLS-1$
-		assertEquals("wrong fully qualified name", "java.lang.String[][][]", typeBinding2.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23362
-	 */
-	public void test0398() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0398", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an infix expression", expression.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "(1 + 2) * 3", source); //$NON-NLS-1$
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertTrue("Not an parenthesis expression", expression2.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		assertTrue("Not an infix expression", expression3.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		checkSourceRange(expression3, "1 + 2", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22306
-	 */
-	public void test0399() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0399", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", methodDeclaration.isConstructor()); //$NON-NLS-1$
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 2, statements.size()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22306
-	 */
-	public void test0400() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0400", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", methodDeclaration.isConstructor()); //$NON-NLS-1$
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 3, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an superconstructorinvocation", statement.getNodeType() == ASTNode.SUPER_CONSTRUCTOR_INVOCATION); //$NON-NLS-1$
-		checkSourceRange(statement, "super();", source); //$NON-NLS-1$
-	}	
-}
-
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
deleted file mode 100644
index efa3e8f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterBindingsTest.java
+++ /dev/null
@@ -1,506 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-
-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.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.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.JavaScriptUnit;
-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.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;
-
-public class ASTConverterBindingsTest extends ConverterTestSetup {
-	private static final boolean DEBUG = false;
-
-	static class BindingsCollector extends ASTVisitor {
-
-		public ArrayList arrayList;
-		
-		BindingsCollector() {
-			// visit Javadoc.tags() as well
-			super(true);
-			this.arrayList = new ArrayList();
-		}
-		
-		private void collectBindings(
-			ASTNode node,
-			IBinding binding) {
-			
-			if (binding != null) {
-				arrayList.add(binding);
-			}
-		}
-
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnonymousClassDeclaration)
-		 */
-		public void endVisit(AnonymousClassDeclaration node) {
-			ITypeBinding typeBinding = node.resolveBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ArrayAccess)
-		 */
-		public void endVisit(ArrayAccess node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ArrayCreation)
-		 */
-		public void endVisit(ArrayCreation node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ArrayInitializer)
-		 */
-		public void endVisit(ArrayInitializer node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ArrayType)
-		 */
-		public void endVisit(ArrayType node) {
-			ITypeBinding typeBinding = node.resolveBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(Assignment)
-		 */
-		public void endVisit(Assignment node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(BooleanLiteral)
-		 */
-		public void endVisit(BooleanLiteral node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(CharacterLiteral)
-		 */
-		public void endVisit(CharacterLiteral node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ClassInstanceCreation)
-		 */
-		public void endVisit(ClassInstanceCreation node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ConditionalExpression)
-		 */
-		public void endVisit(ConditionalExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ConstructorInvocation)
-		 */
-		public void endVisit(ConstructorInvocation node) {
-			IFunctionBinding methodBinding = node.resolveConstructorBinding();
-			collectBindings(node, methodBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(FieldAccess)
-		 */
-		public void endVisit(FieldAccess node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-		
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ImportDeclaration)
-		 */
-		public void endVisit(ImportDeclaration node) {
-			IBinding binding = node.resolveBinding();
-			collectBindings(node, binding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(InfixExpression)
-		 */
-		public void endVisit(InfixExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(InstanceofExpression)
-		 */
-		public void endVisit(InstanceofExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		public void endVisit(ListExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-		
-		/**
-		 * @see ASTVisitor#endVisit(MemberRef)
-		 * @since 3.0
-		 */
-		public void endVisit(MemberRef node) {
-			IBinding binding = node.resolveBinding();
-			collectBindings(node, binding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(FunctionDeclaration)
-		 */
-		public void endVisit(FunctionDeclaration node) {
-			IFunctionBinding methodBinding = node.resolveBinding();
-			collectBindings(node, methodBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(FunctionInvocation)
-		 */
-		public void endVisit(FunctionInvocation node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see ASTVisitor#endVisit(FunctionRef )
-		 * @since 3.0
-		 */
-		public void endVisit(FunctionRef node) {
-			IBinding binding = node.resolveBinding();
-			collectBindings(node, binding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(NullLiteral)
-		 */
-		public void endVisit(NullLiteral node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(NumberLiteral)
-		 */
-		public void endVisit(NumberLiteral node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(PackageDeclaration)
-		 */
-		public void endVisit(PackageDeclaration node) {
-			IPackageBinding packageBinding = node.resolveBinding();
-			collectBindings(node, packageBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ParenthesizedExpression)
-		 */
-		public void endVisit(ParenthesizedExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(PostfixExpression)
-		 */
-		public void endVisit(PostfixExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(PrefixExpression)
-		 */
-		public void endVisit(PrefixExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(PrimitiveType)
-		 */
-		public void endVisit(PrimitiveType node) {
-			ITypeBinding typeBinding = node.resolveBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(QualifiedName)
-		 */
-		public void endVisit(QualifiedName node) {
-			IBinding binding = node.resolveBinding();
-			collectBindings(node, binding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SimpleName)
-		 */
-		public void endVisit(SimpleName node) {
-			IBinding binding = node.resolveBinding();
-			collectBindings(node, binding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SimpleType)
-		 */
-		public void endVisit(SimpleType node) {
-			ITypeBinding typeBinding = node.resolveBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SingleVariableDeclaration)
-		 */
-		public void endVisit(SingleVariableDeclaration node) {
-			IVariableBinding variableBinding = node.resolveBinding();
-			collectBindings(node, variableBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(StringLiteral)
-		 */
-		public void endVisit(StringLiteral node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SuperConstructorInvocation)
-		 */
-		public void endVisit(SuperConstructorInvocation node) {
-			IFunctionBinding methodBinding = node.resolveConstructorBinding();
-			collectBindings(node, methodBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SuperFieldAccess)
-		 */
-		public void endVisit(SuperFieldAccess node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SuperMethodInvocation)
-		 */
-		public void endVisit(SuperMethodInvocation node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ThisExpression)
-		 */
-		public void endVisit(ThisExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(TypeDeclaration)
-		 */
-		public void endVisit(TypeDeclaration node) {
-			ITypeBinding typeBinding = node.resolveBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(TypeLiteral)
-		 */
-		public void endVisit(TypeLiteral node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(VariableDeclarationExpression)
-		 */
-		public void endVisit(VariableDeclarationExpression node) {
-			ITypeBinding typeBinding = node.resolveTypeBinding();
-			collectBindings(node, typeBinding);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(VariableDeclarationFragment)
-		 */
-		public void endVisit(VariableDeclarationFragment node) {
-			IVariableBinding variableBinding = node.resolveBinding();
-			collectBindings(node, variableBinding);
-		}
-
-		public List getBindings() {
-			return arrayList;
-		}
-
-	}
-
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		this.ast = AST.newAST(AST.JLS3);
-	}
-
-	public ASTConverterBindingsTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(ASTConverterBindingsTest.class);		
-	}
-
-	public void test0001() throws JavaScriptModelException {
-		checkBindingEqualityForProject("Converter");
-		checkBindingEqualityForProject("Converter15");
-	}
-
-	/**
-	 * @throws JavaScriptModelException
-	 */
-	private void checkBindingEqualityForProject(String projectName) throws JavaScriptModelException {
-		IJavaScriptProject javaProject = getJavaProject(projectName);
-		IPackageFragment[] packageFragments = javaProject.getPackageFragments();
-		ArrayList compilationUnitscollector = new ArrayList();
-		for (int j = 0, max2 = packageFragments.length; j < max2; j++) {
-			IJavaScriptUnit[] units = packageFragments[j].getJavaScriptUnits();
-			if (units != null) {
-				for (int k = 0, max3 = units.length; k < max3; k++) {
-					compilationUnitscollector.add(units[k]);
-				}
-			}
-		}
-		final int length = compilationUnitscollector.size();
-		IJavaScriptUnit[] units = new IJavaScriptUnit[length];
-		compilationUnitscollector.toArray(units);
-		long totalTime = 0;
-		for (int j = 0; j < length; j++) {
-			IJavaScriptUnit currentUnit = units[j];
-			ASTNode result = runConversion(AST.JLS3, currentUnit, true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) result;
-			result = runConversion(AST.JLS3, currentUnit, true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType());
-			if (DEBUG) {
-				if (unit.types().size() > 0 ) {
-					AbstractTypeDeclaration typeDeclaration = (AbstractTypeDeclaration) unit.types().get(0);
-					StringBuffer buffer = new StringBuffer();
-					PackageDeclaration packageDeclaration = unit.getPackage();
-					if (packageDeclaration != null) {
-						buffer.append(unit.getPackage().getName()).append(".").append(typeDeclaration.getName());
-					} else {
-						buffer.append(typeDeclaration.getName());
-					}
-					System.out.println(String.valueOf(buffer));
-				} else {
-					System.out.println(currentUnit.getElementName());
-				}
-			}
-			JavaScriptUnit unit2 = (JavaScriptUnit) result;
-			BindingsCollector collector = new BindingsCollector();
-			unit.accept(collector);
-			List bindings1 = collector.getBindings();
-			BindingsCollector collector2 = new BindingsCollector();
-			unit2.accept(collector2);
-			List bindings2 = collector2.getBindings();
-			assertEquals("Wrong size", bindings1.size(), bindings2.size());
-			long time = System.currentTimeMillis();
-			for (int i = 0, max = bindings1.size(); i < max; i++) {
-				final Object object = bindings1.get(i);
-				assertTrue("not a binding", object instanceof IBinding);
-				final IBinding binding = (IBinding) object;
-				final Object object2 = bindings2.get(i);
-				assertTrue("not a binding", object2 instanceof IBinding);
-				final IBinding binding2 = (IBinding) object2;
-				final boolean equalTo = binding.isEqualTo(binding2);
-				assertTrue("not equals", equalTo);
-			}
-			totalTime += (System.currentTimeMillis() - time);
-		}
-		if (DEBUG) {
-			System.out.println("Total time = " + totalTime + "ms");
-		}
-	}
-}
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
deleted file mode 100644
index c7900f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterJavadocTest.java
+++ /dev/null
@@ -1,3405 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.CoreException;
-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.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 {
-
-	// Flag to know whether Converter directory should be copied from org.eclipse.wst.jsdt.core.tests.model project
-	static protected boolean COPY_DIR = true;
-
-	// Test counters
-	protected static int[] TEST_COUNTERS = { 0, 0, 0, 0 };
-	// Unicode tests
-	protected static boolean UNICODE = false;
-	// Unix tests
-	final boolean unix;
-	static final String UNIX_SUPPORT = System.getProperty("unix");
-	// Doc Comment support
-	static final String DOC_COMMENT_SUPPORT = System.getProperty("doc.support");
-	final String docCommentSupport;
-
-	// List of comments read from source of test
-	private final int LINE_COMMENT = 100;
-	private final int BLOCK_COMMENT =200;
-	private final int DOC_COMMENT = 300;
-	List comments = new ArrayList();
-	private String chars;
-	// List of tags contained in each comment read from test source.
-	List allTags = new ArrayList();
-	// Current compilation unit
-	protected IJavaScriptUnit sourceUnit;
-	// Test package binding
-	protected boolean resolveBinding = true;
-	protected boolean packageBinding = true;
-	// AST Level
-	/** @deprecated using deprecated code */
-	protected int astLevel = AST.JLS2;
-	protected int savedLevel;
-	// Debug
-	protected String prefix = "";
-	protected boolean debug = false;
-	protected StringBuffer problems;
-	protected String compilerOption = JavaScriptCore.IGNORE;
-	protected List failures;
-	protected boolean stopOnFailure = true;
-	// Project
-	protected IJavaScriptProject currentProject;
-	Map savedOptions = null;
-
-	/**
-	 * @param name
-	 * @param support
-	 */
-	public ASTConverterJavadocTest(String name, String support, String unix) {
-		super(name);
-		this.docCommentSupport = support;
-		this.unix = "true".equals(unix);
-	}
-	/**
-	 * @param name
-	 */
-	public ASTConverterJavadocTest(String name) {
-		this(name, JavaScriptCore.ENABLED, UNIX_SUPPORT);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new Suite(ASTConverterJavadocTest.class.getName());		
-//		String param = System.getProperty("unicode");
-//		if ("true".equals(param)) {
-//			unicode = true;
-//		}
-//		String param = System.getProperty("unix");
-//		if ("true".equals(param)) {
-//			unix = true;
-//		}
-		if (true) {
-			if (DOC_COMMENT_SUPPORT == null) {
-				buildSuite(suite, JavaScriptCore.ENABLED);
-				buildSuite(suite, JavaScriptCore.DISABLED);
-			} else {
-				String support = DOC_COMMENT_SUPPORT==null ? JavaScriptCore.DISABLED : (DOC_COMMENT_SUPPORT.equals(JavaScriptCore.DISABLED)?JavaScriptCore.DISABLED:JavaScriptCore.ENABLED);
-				buildSuite(suite, support);
-			}
-			return suite;
-		}
-
-		// Run test cases subset
-		COPY_DIR = false;
-		System.err.println("WARNING: only subset of tests will be executed!!!");
-		suite.addTest(new ASTConverterJavadocTest("testBug165525"));
-		return suite;
-	}
-
-	public static void buildSuite(TestSuite suite, String support) {
-		Class c = ASTConverterJavadocTest.class;
-		Method[] methods = c.getMethods();
-		for (int i = 0, max = methods.length; i < max; i++) {
-			if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
-				suite.addTest(new ASTConverterJavadocTest(methods[i].getName(), support, UNIX_SUPPORT));
-			}
-		}
-		// when unix support not specified, also run using unix format
-		if (UNIX_SUPPORT == null && JavaScriptCore.ENABLED.equals(support)) {
-			for (int i = 0, max = methods.length; i < max; i++) {
-				if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
-					suite.addTest(new ASTConverterJavadocTest(methods[i].getName(), support, "true"));
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#copyDirectory(java.io.File, java.io.File)
-	 */
-	protected void copyDirectory(File sourceDir, File targetDir) throws IOException {
-		if (COPY_DIR) {
-			super.copyDirectory(sourceDir, targetDir);
-		} else {
-			targetDir.mkdirs();
-			File sourceFile = new File(sourceDir, ".project");
-			File targetFile = new File(targetDir, ".project");
-			targetFile.createNewFile();
-			copy(sourceFile, targetFile);
-			sourceFile = new File(sourceDir, ".classpath");
-			targetFile = new File(targetDir, ".classpath");
-			targetFile.createNewFile();
-			copy(sourceFile, targetFile);
-		}
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#getName()
-	 */
-	public String getName() {
-		String strUnix = unix ? " - Unix" : "";
-		return "Doc "+docCommentSupport+strUnix+" - "+super.getName();
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		TEST_COUNTERS[0]++;
-		failures = new ArrayList();
-		problems = new StringBuffer();
-		workingCopies = null;
-		savedLevel = astLevel;
-	}
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		int size = failures.size();
-		String title = size+" positions/bindings were incorrect in "+getName();
-		if (size == 0) {
-			TEST_COUNTERS[1]++;
-		} else if (problems.length() > 0) {
-			if (debug) {
-				System.out.println("Compilation warnings/errors occured:");
-				System.out.println(problems.toString());
-			}
-			TEST_COUNTERS[2]++;
-		} else {
-			TEST_COUNTERS[3]++;
-			System.out.println(title+":");
-			for (int i=0; i<size; i++) {
-				System.out.println("	- "+failures.get(i));
-			}
-		}
-//		if (!stopOnFailure) {
-			assertTrue(title, size==0 || problems.length() > 0);
-//		}
-		super.tearDown();
-		
-		// Restore saved ast level
-		astLevel = savedLevel;
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	public void tearDownSuite() throws Exception {
-		// put default options on project
-		if (currentProject != null && savedOptions != null) {
-			currentProject.setOptions(savedOptions);
-		}
-		super.tearDownSuite();
-		if (TEST_COUNTERS[0] != TEST_COUNTERS[1]) {
-			NumberFormat intFormat = NumberFormat.getInstance();
-			intFormat.setMinimumIntegerDigits(3);
-			intFormat.setMaximumIntegerDigits(3);
-			System.out.println("=====================================");
-			System.out.println(intFormat.format(TEST_COUNTERS[0])+" tests have been executed:");
-			System.out.println("  - "+intFormat.format(TEST_COUNTERS[1])+" tests have been actually executed.");
-			System.out.println("  - "+intFormat.format(TEST_COUNTERS[2])+" tests were skipped due to compilation errors.");
-			System.out.println("  - "+intFormat.format(TEST_COUNTERS[3])+" tests failed.");
-		}
-	}
-
-	public ASTNode runConversion(char[] source, String unitName, IJavaScriptProject project) {
-		ASTParser parser = ASTParser.newParser(astLevel);
-		parser.setSource(source);
-		parser.setUnitName(unitName);
-		parser.setProject(project);
-		parser.setResolveBindings(resolveBinding);
-		return parser.createAST(null);
-	}
-
-	public ASTNode runConversion(char[] source, String unitName, IJavaScriptProject project, Map options) {
-		if (project == null) {
-			ASTParser parser = ASTParser.newParser(astLevel);
-			parser.setSource(source);
-			parser.setUnitName(unitName);
-			parser.setCompilerOptions(options);
-			parser.setResolveBindings(resolveBinding);
-			return parser.createAST(null);
-		}
-		return runConversion(source, unitName, project);
-	}
-
-// NOT USED
-//	class ASTConverterJavadocFlattener extends ASTVisitor {
-//
-//		/**
-//		 * The string buffer into which the serialized representation of the AST is
-//		 * written.
-//		 */
-//		private StringBuffer buffer;
-//		
-//		private String comment;
-//		
-//		/**
-//		 * Creates a new AST printer.
-//		 */
-//		ASTConverterJavadocFlattener(String comment) {
-//			buffer = new StringBuffer();
-//			comment = comment;
-//		}
-//		
-//		/**
-//		 * Returns the string accumulated in the visit.
-//		 *
-//		 * @return the serialized 
-//		 */
-//		public String getResult() {
-//			return buffer.toString();
-//		}
-//		
-//		/**
-//		 * Resets this printer so that it can be used again.
-//		 */
-//		public void reset() {
-//			buffer.setLength(0);
-//		}
-//
-//		/*
-//		 * @see ASTVisitor#visit(ArrayType)
-//		 */
-//		public boolean visit(ArrayType node) {
-//			node.getComponentType().accept(this);
-//			buffer.append("[]");//$NON-NLS-1$
-//			return false;
-//		}
-//	
-//		/*
-//		 * @see ASTVisitor#visit(BlockComment)
-//		 * @since 3.0
-//		 */
-//		public boolean visit(BlockComment node) {
-//			buffer.append(comment);
-//			return false;
-//		}
-//	
-//		/*
-//		 * @see ASTVisitor#visit(Javadoc)
-//		 */
-//		public boolean visit(Javadoc node) {
-//			
-//			// ignore deprecated node.getComment()
-//			buffer.append("/**");//$NON-NLS-1$
-//			ASTNode e = null;
-//			int start = 3;
-//			for (Iterator it = node.tags().iterator(); it.hasNext(); ) {
-//				e = (ASTNode) it.next();
-//				try {
-//					buffer.append(comment.substring(start, e.getStartPosition()-node.getStartPosition()));
-//					start = e.getStartPosition()-node.getStartPosition();
-//				} catch (IndexOutOfBoundsException ex) {
-//					// do nothing
-//				}
-//				e.accept(this);
-//				start += e.getLength();
-//			}
-//			buffer.append(comment.substring(start, node.getLength()));
-//			return false;
-//		}
-//	
-//		/*
-//		 * @see ASTVisitor#visit(LineComment)
-//		 * @since 3.0
-//		 */
-//		public boolean visit(LineComment node) {
-//			buffer.append(comment);
-//			return false;
-//		}
-//	
-//		/*
-//		 * @see ASTVisitor#visit(MemberRef)
-//		 * @since 3.0
-//		 */
-//		public boolean visit(MemberRef node) {
-//			if (node.getQualifier() != null) {
-//				node.getQualifier().accept(this);
-//			}
-//			buffer.append("#");//$NON-NLS-1$
-//			node.getName().accept(this);
-//			return true;
-//		}
-//		
-//		/*
-//		 * @see ASTVisitor#visit(FunctionRef)
-//		 * @since 3.0
-//		 */
-//		public boolean visit(FunctionRef node) {
-//			if (node.getQualifier() != null) {
-//				node.getQualifier().accept(this);
-//			}
-//			buffer.append("#");//$NON-NLS-1$
-//			node.getName().accept(this);
-//			buffer.append("(");//$NON-NLS-1$
-//			for (Iterator it = node.parameters().iterator(); it.hasNext(); ) {
-//				FunctionRefParameter e = (FunctionRefParameter) it.next();
-//				e.accept(this);
-//				if (it.hasNext()) {
-//					buffer.append(",");//$NON-NLS-1$
-//				}
-//			}
-//			buffer.append(")");//$NON-NLS-1$
-//			return true;
-//		}
-//		
-//		/*
-//		 * @see ASTVisitor#visit(FunctionRefParameter)
-//		 * @since 3.0
-//		 */
-//		public boolean visit(FunctionRefParameter node) {
-//			node.getType().accept(this);
-//			if (node.getName() != null) {
-//				buffer.append(" ");//$NON-NLS-1$
-//				node.getName().accept(this);
-//			}
-//			return true;
-//		}
-//
-//		/*
-//		 * @see ASTVisitor#visit(TagElement)
-//		 * @since 3.0
-//		 */
-//		public boolean visit(TagElement node) {
-//			Javadoc javadoc = null;
-//			int start = 0;
-//			if (node.isNested()) {
-//				// nested tags are always enclosed in braces
-//				buffer.append("{");//$NON-NLS-1$
-//				javadoc = (Javadoc) node.getParent().getParent();
-//				start++;
-//			} else {
-//				javadoc = (Javadoc) node.getParent();
-//			}
-//			start += node.getStartPosition()-javadoc.getStartPosition();
-//			if (node.getTagName() != null) {
-//				buffer.append(node.getTagName());
-//				start += node.getTagName().length();
-//			}
-//			for (Iterator it = node.fragments().iterator(); it.hasNext(); ) {
-//				ASTNode e = (ASTNode) it.next();
-//				try {
-//					buffer.append(comment.substring(start, e.getStartPosition()-javadoc.getStartPosition()));
-//					start = e.getStartPosition()-javadoc.getStartPosition();
-//				} catch (IndexOutOfBoundsException ex) {
-//					// do nothing
-//				}
-//				start += e.getLength();
-//				e.accept(this);
-//			}
-//			if (node.isNested()) {
-//				buffer.append("}");//$NON-NLS-1$
-//			}
-//			return true;
-//		}
-//		
-//		/*
-//		 * @see ASTVisitor#visit(TextElement)
-//		 * @since 3.0
-//		 */
-//		public boolean visit(TextElement node) {
-//			buffer.append(node.getText());
-//			return false;
-//		}
-//
-//		/*
-//		 * @see ASTVisitor#visit(PrimitiveType)
-//		 */
-//		public boolean visit(PrimitiveType node) {
-//			buffer.append(node.getPrimitiveTypeCode().toString());
-//			return false;
-//		}
-//	
-//		/*
-//		 * @see ASTVisitor#visit(QualifiedName)
-//		 */
-//		public boolean visit(QualifiedName node) {
-//			node.getQualifier().accept(this);
-//			buffer.append(".");//$NON-NLS-1$
-//			node.getName().accept(this);
-//			return false;
-//		}
-//
-//		/*
-//		 * @see ASTVisitor#visit(SimpleName)
-//		 */
-//		public boolean visit(SimpleName node) {
-//			buffer.append(node.getIdentifier());
-//			return false;
-//		}
-//
-//		/*
-//		 * @see ASTVisitor#visit(SimpleName)
-//		 */
-//		public boolean visit(SimpleType node) {
-//			node.getName().accept(this);
-//			return false;
-//		}
-//	}
-
-	private char getNextChar(char[] source, int idx) {
-			// get next char
-			char ch = source[idx];
-			int charLength = 1;
-			int pos = idx;
-			chars = null;
-			if (ch == '\\' && source[idx+1] == 'u') {
-				//-------------unicode traitement ------------
-				int c1, c2, c3, c4;
-				charLength++;
-				while (source[idx+charLength] == 'u') charLength++;
-				if (((c1 = ScannerHelper.getNumericValue(source[idx+charLength++])) > 15
-					|| c1 < 0)
-					|| ((c2 = ScannerHelper.getNumericValue(source[idx+charLength++])) > 15 || c2 < 0)
-					|| ((c3 = ScannerHelper.getNumericValue(source[idx+charLength++])) > 15 || c3 < 0)
-					|| ((c4 = ScannerHelper.getNumericValue(source[idx+charLength++])) > 15 || c4 < 0)) {
-					return ch;
-				}
-				ch = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);
-				chars = new String(source, pos, charLength);
-			}
-			return ch;
-	}
-	/*
-	 * Convert Javadoc source to match Javadoc.toString().
-	 * Store converted comments and their corresponding tags respectively
-	 * in comments and allTags fields
-	 */
-	protected void setSourceComment(char[] source) throws ArrayIndexOutOfBoundsException {
-		comments = new ArrayList();
-		allTags = new ArrayList();
-		StringBuffer buffer = null;
-		int comment = 0;
-		boolean end = false, lineStarted = false;
-		String tag = null;
-		List tags = new ArrayList();
-		int length = source.length;
-		char previousChar=0, currentChar=0;
-		for (int i=0; i<length;) {
-			previousChar = currentChar;
-			// get next char
-			currentChar = getNextChar(source, i);
-			i += (chars==null) ? 1 : chars.length();
-
-			// 
-			switch (comment) {
-				case 0: 
-					switch (currentChar) {
-						case '/':
-							comment = 1; // first char for comments...
-							buffer = new StringBuffer();
-							if (chars == null) buffer.append(currentChar);
-							else buffer.append(chars);
-							break;
-						case '\'':
-							while (i<length) {
-								// get next char
-								currentChar = getNextChar(source, i);
-								i += (chars==null) ? 1 : chars.length();
-								if (currentChar == '\\') {
-									// get next char
-									currentChar = getNextChar(source, i);
-									i += (chars==null) ? 1 : chars.length();
-								} else {
-									if (currentChar == '\'') {
-										break;
-									}
-								}
-							}
-							break;
-						case '"':
-							while (i<length) {
-								// get next char
-								currentChar = getNextChar(source, i);
-								i += (chars==null) ? 1 : chars.length();
-								if (currentChar == '\\') {
-									// get next char
-									currentChar = getNextChar(source, i);
-									i += (chars==null) ? 1 : chars.length();
-								} else {
-									if (currentChar == '"') {
-										// get next char
-										currentChar = getNextChar(source, i);
-										if (currentChar == '"') {
-											i += (chars==null) ? 1 : chars.length();
-										} else {
-											break;
-										}
-									}
-								}
-							}
-							break;
-					}
-					break;
-				case 1: // first '/' has been found...
-					switch (currentChar) {
-						case '/':
-							if (chars == null) buffer.append(currentChar);
-							else buffer.append(chars);
-							comment = LINE_COMMENT;
-							break;
-						case '*':
-							if (chars == null) buffer.append(currentChar);
-							else buffer.append(chars);
-							comment = 2; // next step
-							break;
-						default:
-							comment = 0;
-							break;
-					}
-					break;
-				case 2: // '/*' has been found...
-					if (currentChar == '*') {
-						comment = 3; // next step...
-					} else {
-						comment = BLOCK_COMMENT;
-					}
-					if (chars == null) buffer.append(currentChar);
-					else buffer.append(chars);
-					break;
-				case 3: // '/**' has bee found, verify that's not an empty block comment
-					if (currentChar == '/') { // empty block comment
-						if (chars == null) buffer.append(currentChar);
-						else buffer.append(chars);
-						comments.add(buffer.toString());
-						allTags.add(new ArrayList());
-						comment = 0;
-						break;
-					}
-					// do not break, directly go to next case...
-					comment = DOC_COMMENT;
-				case DOC_COMMENT:
-					if (tag != null) {
-						if (currentChar >= 'a' && currentChar <= 'z') {
-							tag += currentChar;
-						} else {
-							tags.add(tag);
-							tag = null;
-						}
-					}
-					switch (currentChar) {
-						case '@':
-							if (!lineStarted || previousChar == '{') {
-								tag = "";
-								lineStarted = true;
-							}
-							break;
-						case '\r':
-						case '\n':
-							lineStarted = false;
-							break;
-						case '*':
-							break;
-						default:
-							if (!Character.isWhitespace(currentChar)) {
-								lineStarted = true;
-							}
-					}
-				case BLOCK_COMMENT:
-					if (chars == null) buffer.append(currentChar);
-					else buffer.append(chars);
-					if (end && currentChar == '/') {
-						comment = 0;
-						lineStarted = false;
-						comments.add(buffer.toString());
-						allTags.add(tags);
-						tags = new ArrayList();
-					}
-					end = currentChar == '*';
-					break;
-				case LINE_COMMENT:
-					if (currentChar == '\r' || currentChar == '\n') {
-						/*
-						if (currentChar == '\r' && source[i+1] == '\n') {
-							buffer.append(source[++i]);
-						}
-						*/
-						comment = 0;
-						comments.add(buffer.toString());
-						allTags.add(tags);
-					} else {
-						if (chars == null) buffer.append(currentChar);
-						else buffer.append(chars);
-					}
-					break;
-				default:
-					// do nothing
-					break;
-			}
-		}
-	}
-
-	/*
-	 * Convert Javadoc source to match Javadoc.toString().
-	 * Store converted comments and their corresponding tags respectively
-	 * in comments and allTags fields
-	 */
-	char[] getUnicodeSource(char[] source) {
-		int length = source.length;
-		int unicodeLength = length*6;
-		char[] unicodeSource = new char[unicodeLength];
-		int u=0;
-		for (int i=0; i<length; i++) {
-			// get next char
-			if (source[i] == '\\' && source[i+1] == 'u') {
-				//-------------unicode traitement ------------
-				int c1, c2, c3, c4;
-				unicodeSource[u++] = source[i];
-				unicodeSource[u++] = source[++i];
-				if (((c1 = ScannerHelper.getNumericValue(source[i+1])) > 15
-					|| c1 < 0)
-					|| ((c2 = ScannerHelper.getNumericValue(source[i+2])) > 15 || c2 < 0)
-					|| ((c3 = ScannerHelper.getNumericValue(source[i+3])) > 15 || c3 < 0)
-					|| ((c4 = ScannerHelper.getNumericValue(source[i+4])) > 15 || c4 < 0)) {
-					throw new RuntimeException("Invalid unicode in source at "+i);
-				}
-				for (int j=0; j<4; j++) unicodeSource[u++] = source[++i];
-			} else {
-				unicodeSource[u++] = '\\';
-				unicodeSource[u++] = 'u';
-				unicodeSource[u++] = '0';
-				unicodeSource[u++] = '0';
-				int val = source[i]/16;
-				unicodeSource[u++] = (char) (val<10 ? val+ 0x30 : val-10+0x61);
-				val = source[i]%16;
-				unicodeSource[u++] = (char) (val<10 ? val+ 0x30 : val-10+0x61);
-			}
-		}
-		// Return one well sized array
-		if (u != unicodeLength) {
-			char[] result = new char[u];
-			System.arraycopy(unicodeSource, 0, result, 0, u);
-			return result;
-		}
-		return unicodeSource;
-	}
-
-	/*
-	 * Convert Javadoc source to match Javadoc.toString().
-	 * Store converted comments and their corresponding tags respectively
-	 * in comments and allTags fields
-	 */
-	char[] getUnixSource(char[] source) {
-		int length = source.length;
-		int unixLength = length;
-		char[] unixSource = new char[unixLength];
-		int u=0;
-		for (int i=0; i<length; i++) {
-			// get next char
-			if (source[i] == '\r' && source[i+1] == '\n') {
-				i++;
-			}
-			unixSource[u++] = source[i];
-		}
-		// Return one well sized array
-		if (u != unixLength) {
-			char[] result = new char[u];
-			System.arraycopy(unixSource, 0, result, 0, u);
-			return result;
-		}
-		return unixSource;
-	}
-	
-	/*
-	 * Return all tags number for a given Javadoc
-	 */
-	int allTags(JSdoc docComment) {
-		int all = 0;
-		// Count main tags
-		Iterator tags = docComment.tags().listIterator();
-		while (tags.hasNext()) {
-			TagElement tagElement = (TagElement) tags.next();
-			if (tagElement.getTagName() != null) {
-				all++;
-			}
-			Iterator fragments = tagElement.fragments().listIterator();
-			while (fragments.hasNext()) {
-				ASTNode node = (ASTNode) fragments.next();
-				if (node.getNodeType() == ASTNode.TAG_ELEMENT) {
-					all++;
-				}
-			}
-		}
-		return all;
-	}
-
-	/*
-	 * Add a failure to the list. Use only one method as it easier to put breakpoint to
-	 * debug failure when it occurs...
-	 */
-	private void addFailure(String msg) {
-		failures.add(msg);
-	}
-
-	/*
-	 * Put the failure message in list instead of throwing exception immediately.
-	 * This allow to store several failures per test...
-	 * @see tearDown method which finally throws the execption to signal that test fails.
-	 */
-	protected void assumeTrue(String msg, boolean cond) {
-		if (!cond) {
-			addFailure(msg);
-			if (stopOnFailure) assertTrue(msg, cond);
-		}
-	}
-
-	/*
-	 * Put the failure message in list instead of throwing exception immediately.
-	 * This allow to store several failures per test...
-	 * @see tearDown method which finally throws the execption to signal that test fails.
-	 */
-	protected void assumeNull(String msg, Object obj) {
-		if (obj != null) {
-			addFailure(msg);
-			if (stopOnFailure) assertNull(msg, obj);
-		}
-	}
-
-	/*
-	 * Put the failure message in list instead of throwing exception immediately.
-	 * This allow to store several failures per test...
-	 * @see tearDown method which finally throws the execption to signal that test fails.
-	 */
-	protected void assumeNotNull(String msg, Object obj) {
-		if (obj == null) {
-			addFailure(msg);
-			if (stopOnFailure) assertNotNull(msg, obj);
-		}
-	}
-
-	/*
-	 * Put the failure message in list instead of throwing exception immediately.
-	 * This allow to store several failures per test...
-	 * @see tearDown method which finally throws the execption to signal that test fails.
-	 */
-	protected void assumeEquals(String msg, int expected, int actual) {
-		if (expected != actual) {
-			addFailure(msg+", expected="+expected+" actual="+actual);
-			if (stopOnFailure) assertEquals(msg, expected, actual);
-		}
-	}
-
-	/*
-	 * Put the failure message in list instead of throwing exception immediately.
-	 * This allow to store several failures per test...
-	 * @see tearDown method which finally throws the execption to signal that test fails.
-	 */
-	protected void assumeEquals(String msg, Object expected, Object actual) {
-		if (expected == null && actual == null)
-			return;
-		if (expected != null && expected.equals(actual))
-			return;
-		addFailure(msg+", expected:<"+expected+"> actual:<"+actual+'>');
-		if (stopOnFailure) assertEquals(msg, expected, actual);
-	}
-
-	/*
-	 * Verify positions of tags in source
-	 */
-	private void verifyPositions(JSdoc docComment, char[] source) {
-		boolean stop = stopOnFailure;
-//		stopOnFailure = false;
-		// Verify javadoc start and end position
-		int start = docComment.getStartPosition();
-		int end = start+docComment.getLength()-1;
-		assumeTrue(prefix+"Misplaced javadoc start at <"+start+">: "+docComment, source[start++] == '/' && source[start++] == '*' && source[start++] == '*');
-		// Get first meaningful character
-		int tagStart = start;
-		// Verify tags
-		Iterator tags = docComment.tags().listIterator();
-		while (tags.hasNext()) {
-			while (source[tagStart] == '*' || Character.isWhitespace(source[tagStart])) {
-				tagStart++; // purge non-stored characters
-			}
-			TagElement tagElement = (TagElement) tags.next();
-			int teStart = tagElement.getStartPosition();
-			assumeEquals(prefix+"Wrong start position <"+teStart+"> for tag element: "+tagElement, tagStart, teStart);
-			verifyPositions(tagElement, source);
-			tagStart += tagElement.getLength();
-		}
-		while (source[tagStart] == '*' || Character.isWhitespace(source[tagStart])) {
-			tagStart++; // purge non-stored characters
-		}
-		assumeTrue(prefix+"Misplaced javadoc end at <"+tagStart+'>', source[tagStart-1] == '*' && source[tagStart] == '/');
-		assumeEquals(prefix+"Wrong javadoc length at <"+end+">: ", tagStart, end);
-		stopOnFailure = stop;
-		assertTrue(!stop || failures.size()==0);
-	}
-
-	/**
-	 * Verify positions of fragments in source
-	 * @deprecated using deprecated code
-	 */
-	private void verifyPositions(TagElement tagElement, char[] source) {
-		String text = null;
-		// Verify tag name
-		String tagName = tagElement.getTagName();
-		int tagStart = tagElement.getStartPosition();
-		if (tagElement.isNested()) {
-			assumeEquals(prefix+"Wrong start position <"+tagStart+"> for "+tagElement, '{', source[tagStart++]);
-		}
-		if (tagName != null) {
-			text= new String(source, tagStart, tagName.length());
-			assumeEquals(prefix+"Misplaced tag name at <"+tagStart+">: ", tagName, text);
-			tagStart += tagName.length();
-		}
-		// Verify each fragment
-		ASTNode previousFragment = null;
-		Iterator elements = tagElement.fragments().listIterator();
-		while (elements.hasNext()) {
-			ASTNode fragment = (ASTNode) elements.next();
-			if (fragment.getNodeType() == ASTNode.TEXT_ELEMENT) {
-				if (previousFragment == null && TagElement.TAG_PARAM.equals(tagName) && ((TextElement)fragment).getText().equals("<")) { // special case here for @param <E> syntax
-					int start = tagStart;
-					// verify '<'
-					while (source[start] == ' ' || Character.isWhitespace(source[start])) {
-						start++; // purge white characters
-					}
-					text = new String(source, start, fragment.getLength());
-					assumeEquals(prefix+"Misplaced text element at <"+fragment.getStartPosition()+">: ", text, ((TextElement) fragment).getText());
-					start += fragment.getLength();
-					// verify simple name
-					assumeTrue(prefix+"Unexpected fragment end for "+tagElement, elements.hasNext());
-					fragment = (ASTNode) elements.next();
-					while (source[start] == ' ' || Character.isWhitespace(source[start])) {
-						start++; // purge white characters
-					}
-					assumeEquals(prefix+"Unexpected node type for tag element "+tagElement, ASTNode.SIMPLE_NAME, fragment.getNodeType());
-					Name name = (Name) fragment;
-					verifyNamePositions(start, name, source);
-					start += fragment.getLength();
-					// verify simple name
-					assumeTrue(prefix+"Unexpected fragment end for "+tagElement, elements.hasNext());
-					fragment = (ASTNode) elements.next();
-					while (source[start] == ' ' || Character.isWhitespace(source[start])) {
-						start++; // purge white characters
-					}
-					text = new String(source, start, fragment.getLength());
-					assumeEquals(prefix+"Misplaced text element at <"+fragment.getStartPosition()+">: ", text, ((TextElement) fragment).getText());
-					start += fragment.getLength();
-					// reset fragment as simple name to avoid issue with next text element
-					fragment = name;
-					tagStart += (start- tagStart) - name.getLength();
-				} else {
-					if (previousFragment == null) {
-						if (tagName != null && (source[tagStart] == '\r' || source[tagStart] == '\n')) {
-							while (source[tagStart] == '*' || Character.isWhitespace(source[tagStart])) {
-								tagStart++; // purge non-stored characters
-							}
-						}
-					} else {
-						if (previousFragment.getNodeType() == ASTNode.TEXT_ELEMENT) {
-							assumeTrue(prefix+"Wrong length at <"+previousFragment.getStartPosition()+"> for text element "+previousFragment, (source[tagStart] == '\r' /* && source[tagStart+1] == '\n' */ || source[tagStart] == '\n'));
-							while (source[tagStart] == '*' || Character.isWhitespace(source[tagStart])) {
-								tagStart++; // purge non-stored characters
-							}
-						} else if (TagElement.TAG_PARAM.equals(tagName) && previousFragment.getNodeType() == ASTNode.SIMPLE_NAME && ((TextElement)fragment).getText().equals(">")) {
-							while (source[tagStart] == ' ' || Character.isWhitespace(source[tagStart])) {
-								tagStart++; // purge white characters
-							}
-						} else {
-							int start = tagStart;
-							boolean newLine = false;
-							while (source[start] == '*' || Character.isWhitespace(source[start])) {
-								start++; // purge non-stored characters
-								if (source[tagStart] == '\r' || source[tagStart] == '\n') {
-									newLine = true;
-								}
-							}
-							if (newLine) tagStart = start;
-						}
-					}
-					text = new String(source, tagStart, fragment.getLength());
-					assumeEquals(prefix+"Misplaced text element at <"+fragment.getStartPosition()+">: ", text, ((TextElement) fragment).getText());
-				}
-			} else {
-				while (source[tagStart] == '*' || Character.isWhitespace(source[tagStart])) {
-					tagStart++; // purge non-stored characters
-				}
-				if (fragment.getNodeType() == ASTNode.SIMPLE_NAME || fragment.getNodeType() == ASTNode.QUALIFIED_NAME) {
-					verifyNamePositions(tagStart, (Name) fragment, source);
-				} else if (fragment.getNodeType() == ASTNode.TAG_ELEMENT) {
-					TagElement inlineTag = (TagElement) fragment;
-					assumeEquals(prefix+"Tag element <"+inlineTag+"> has wrong start position", tagStart, inlineTag.getStartPosition());
-					verifyPositions(inlineTag, source);
-				} else if (fragment.getNodeType() == ASTNode.MEMBER_REF) {
-					MemberRef memberRef = (MemberRef) fragment;
-					// Store start position
-					int start = tagStart;
-					// Verify qualifier position
-					Name qualifier = memberRef.getQualifier();
-					if (qualifier != null) {
-						verifyNamePositions(start, qualifier, source);
-						start += qualifier.getLength();
-						while (source[start] == '*' || Character.isWhitespace(source[start])) {
-							start++; // purge non-stored characters
-						}
-					}
-					// Verify member separator position
-					assumeEquals(prefix+"Misplaced # separator at <"+start+"> for member ref "+memberRef, '#', source[start]);
-					start++;
-					while (source[start] == '*' || Character.isWhitespace(source[start])) {
-						start++; // purge non-stored characters
-					}
-					// Verify member name position
-					Name name = memberRef.getName();
-					text = new String(source, start, name.getLength());
-					assumeEquals(prefix+"Misplaced member ref at <"+start+">: ", text, name.toString());
-					verifyNamePositions(start, name, source);
-				} else if (fragment.getNodeType() == ASTNode.FUNCTION_REF) {
-					FunctionRef methodRef = (FunctionRef) fragment;
-					// Store start position
-					int start = tagStart;
-					// Verify qualifier position
-					Name qualifier = methodRef.getQualifier();
-					if (qualifier != null) {
-						verifyNamePositions(start, qualifier, source);
-						start += qualifier.getLength();
-						while (source[start] == '*' || Character.isWhitespace(source[start])) {
-							start++; // purge non-stored characters
-						}
-					}
-					// Verify member separator position
-					assumeEquals(prefix+"Misplaced # separator at <"+start+"> for method ref: "+methodRef, '#', source[start]);
-					start++;
-					while (source[start] == '*' || Character.isWhitespace(source[start])) {
-						start++; // purge non-stored characters
-					}
-					// Verify member name position
-					Name name = methodRef.getName();
-					int nameLength = name.getLength();
-					text = new String(source, start, nameLength);
-					if (!text.equals(name.toString())) { // may have qualified constructor reference for inner classes
-						if (methodRef.getQualifier().isQualifiedName()) {
-							text = new String(source, start, methodRef.getQualifier().getLength());
-							assumeEquals(prefix+"Misplaced method ref name at <"+start+">: ", text, methodRef.getQualifier().toString());
-							while (source[start] != '.' || Character.isWhitespace(source[start])) {
-								start++; // purge non-stored characters
-							}
-							start++;
-						} else {
-							while (source[start] != '.' || Character.isWhitespace(source[start])) {
-								start++; // purge non-stored characters
-							}
-							start++;
-							text = new String(source, start, nameLength);
-							assumeEquals(prefix+"Misplaced method ref name at <"+start+">: ", text, name.toString());
-						}
-					}
-					verifyNamePositions(start, name, source);
-					start += nameLength;
-					// Verify arguments starting open parenthesis
-					while (source[start] == '*' || Character.isWhitespace(source[start])) {
-						start++; // purge non-stored characters
-					}
-//					assumeEquals(prefix+"Misplaced ( at <"+start+"> for method ref: "+methodRef, '(', source[start]);
-					if (source[start] == '(') { // now method reference may have no parenthesis...
-						start++;
-						// Verify parameters
-						Iterator parameters = methodRef.parameters().listIterator();
-						while (parameters.hasNext()) {
-							FunctionRefParameter param = (FunctionRefParameter) parameters.next();
-							boolean lastParam = !parameters.hasNext();
-							// Verify parameter type positions
-							while (source[start] == '*' || Character.isWhitespace(source[start])) {
-								 start++; // purge non-stored characters
-							}
-							Type type = param.getType();
-							if (type.isSimpleType()) {
-								verifyNamePositions(start, ((SimpleType)type).getName(), source);
-							} else if (type.isPrimitiveType()) {
-								text = new String(source, start, type.getLength());
-								assumeEquals(prefix+"Misplaced method ref parameter type at <"+start+"> for method ref: "+methodRef, text, type.toString());
-							} else if (type.isArrayType()) {
-								Type elementType = ((ArrayType) param.getType()).getElementType();
-								if (elementType.isSimpleType()) {
-									verifyNamePositions(start, ((SimpleType)elementType).getName(), source);
-								} else if (elementType.isPrimitiveType()) {
-									text = new String(source, start, elementType.getLength());
-									assumeEquals(prefix+"Misplaced method ref parameter type at <"+start+"> for method ref: "+methodRef, text, elementType.toString());
-								}
-							}
-							start += type.getLength();
-							// if last param then perhaps a varargs
-							while (Character.isWhitespace(source[start])) { // do NOT accept '*' in parameter declaration
-								 start++; // purge non-stored characters
-							}
-							if (lastParam && this.astLevel != AST.JLS2 && param.isVarargs()) {
-								for (int p=0;p<3;p++) {
-									assumeTrue(prefix+"Missing ellipsis for vararg method ref parameter at <"+start+"> for method ref: "+methodRef, source[start++]=='.');
-								}
-							}
-							// Verify parameter name positions
-							while (Character.isWhitespace(source[start])) { // do NOT accept '*' in parameter declaration
-								 start++; // purge non-stored characters
-							}
-							name = param.getName();
-							if (name != null) {
-								text = new String(source, start, name.getLength());
-								assumeEquals(prefix+"Misplaced method ref parameter name at <"+start+"> for method ref: "+methodRef, text, name.toString());
-								start += name.getLength();
-							}
-							// Verify end parameter declaration
-							while (source[start] == '*' || Character.isWhitespace(source[start])) {
-								start++;
-							}
-							assumeTrue(prefix+"Misplaced parameter end at <"+start+"> for method ref: "+methodRef, source[start] == ',' || source[start] == ')');
-							start++;
-							if (source[start] == ')') {
-								break;
-							}
-						}
-					}
-				}
-			}
-			tagStart += fragment.getLength();
-			previousFragment = fragment;
-		}
-		if (tagElement.isNested()) {
-			assumeEquals(prefix+"Wrong end character at <"+tagStart+"> for "+tagElement, '}', source[tagStart++]);
-		}
-	}
-
-	/*
-	 * Verify each name component positions.
-	 */
-	private void verifyNamePositions(int nameStart, Name name, char[] source) {
-		if (name.isQualifiedName()) {
-			QualifiedName qualified = (QualifiedName) name;
-			int start = qualified.getName().getStartPosition();
-			String str = new String(source, start, qualified.getName().getLength());
-			assumeEquals(prefix+"Misplaced or wrong name for qualified name: "+name, str, qualified.getName().toString());
-			verifyNamePositions(nameStart, ((QualifiedName) name).getQualifier(), source);
-		}
-		String str = new String(source, nameStart, name.getLength());
-		if (str.indexOf('\n') < 0) { // cannot compare if text contains new line
-			assumeEquals(prefix+"Misplaced name for qualified name: ", str, name.toString());
-		} else if (debug) {
-			System.out.println(prefix+"Name contains new line for qualified name: "+name);
-		}
-	}
-
-	/*
-	 * Verify that bindings of Javadoc comment structure are resolved or not.
-	 * For expected unresolved binding, verify that following text starts with 'Unknown'
-	 */
-	private void verifyBindings(JSdoc docComment) {
-		boolean stop = stopOnFailure;
-//		stopOnFailure = false;
-		// Verify tags
-		Iterator tags = docComment.tags().listIterator();
-		while (tags.hasNext()) {
-			verifyBindings((TagElement) tags.next());
-		}
-		stopOnFailure = stop;
-		assertTrue(!stop || failures.size()==0);
-	}
-
-	/*
-	 * Verify that bindings of Javadoc tag structure are resolved or not.
-	 * For expected unresolved binding, verify that following text starts with 'Unknown'
-	 */
-	private void verifyBindings(TagElement tagElement) {
-		// Verify each fragment
-		Iterator elements = tagElement.fragments().listIterator();
-		IBinding previousBinding = null;
-		ASTNode previousFragment = null;
-		boolean resolvedBinding = false;
-		while (elements.hasNext()) {
-			ASTNode fragment = (ASTNode) elements.next();
-			if (fragment.getNodeType() == ASTNode.TEXT_ELEMENT) {
-				TextElement text = (TextElement) fragment;
-				if (resolvedBinding) {
-					if (previousBinding == null) {
-						assumeTrue(prefix+"Reference '"+previousFragment+"' should be bound!", text.getText().trim().indexOf("Unknown")>=0);
-					} else {
-						assumeTrue(prefix+"Unknown reference '"+previousFragment+"' should NOT be bound!", text.getText().trim().indexOf("Unknown")<0);
-					}
-				}
-				previousBinding = null;
-				resolvedBinding = false;
-			} else if (fragment.getNodeType() == ASTNode.TAG_ELEMENT) {
-				verifyBindings((TagElement) fragment);
-				previousBinding = null;
-				resolvedBinding = false;
-			} else {
-				resolvedBinding = true;
-				if (fragment.getNodeType() == ASTNode.SIMPLE_NAME) {
-					previousBinding = ((Name)fragment).resolveBinding();
-				} else if (fragment.getNodeType() == ASTNode.QUALIFIED_NAME) {
-					QualifiedName name = (QualifiedName) fragment;
-					previousBinding = name.resolveBinding();
-					verifyNameBindings(name);
-				} else if (fragment.getNodeType() == ASTNode.MEMBER_REF) {
-					MemberRef memberRef = (MemberRef) fragment;
-					previousBinding = memberRef.resolveBinding();
-					if (previousBinding != null) {
-						SimpleName name = memberRef.getName();
-						assumeNotNull(prefix+""+name+" binding was not foundfound in "+fragment, name.resolveBinding());
-						verifyNameBindings(memberRef.getQualifier());
-					}
-				} else if (fragment.getNodeType() == ASTNode.FUNCTION_REF) {
-					FunctionRef methodRef = (FunctionRef) fragment;
-					previousBinding = methodRef.resolveBinding();
-					if (previousBinding != null) {
-						SimpleName methodName = methodRef.getName();
-						IBinding methNameBinding = methodName.resolveBinding();
-						Name methodQualifier = methodRef.getQualifier();
-						// TODO (frederic) Replace the two following lines by commented block when bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=62650 will be fixed
-						assumeNotNull(prefix+""+methodName+" binding was not found in "+fragment, methNameBinding);
-						verifyNameBindings(methodQualifier);
-						/*
-						if (methodQualifier == null) {
-							if (methNameBinding == null) {
-								char firstChar = methodName.getIdentifier().charAt(0);
-								if (Character.isUpperCase(firstChar)) {
-									// assume that selector starting with uppercase is for constructor => signal that binding is null
-									System.out.println(prefix+"Binding for selector of  '"+methodRef+"' is null.");
-								}
-							} else {
-								if (methNameBinding.getName().equals(methodName.getIdentifier())) { // binding is not null only for constructor
-									assumeNotNull(prefix+""+methodName+" binding was not found!",methNameBinding);
-								} else {
-									assumeNull(prefix+""+methodName+" binding should be null!", methNameBinding);
-								}
-							}
-						} else {
-							SimpleName methodSimpleType = null;
-							if (methodQualifier.isQualifiedName()) {
-								methodSimpleType = ((QualifiedName)methodQualifier).getName();
-							} else {
-								methodSimpleType = (SimpleName) methodQualifier;
-							}
-							if (methodSimpleType.getIdentifier().equals(methodName.getIdentifier())) { // binding is not null only for constructor
-								assumeNotNull(prefix+""+methodName+" binding was not found!",methNameBinding);
-							} else {
-								assumeNull(prefix+""+methodName+" binding should be null!", methNameBinding);
-							}
-							verifyNameBindings(methodRef.getQualifier());
-						}
-						*/
-						Iterator parameters = methodRef.parameters().listIterator();
-						while (parameters.hasNext()) {
-							FunctionRefParameter param = (FunctionRefParameter) parameters.next();
-							Type type = param.getType();
-							assumeNotNull(prefix+""+type+" binding was not found in "+fragment, type.resolveBinding());
-							if (type.isSimpleType()) {
-								verifyNameBindings(((SimpleType)type).getName());
-							} else if (type.isArrayType()) {
-								Type elementType = ((ArrayType) param.getType()).getElementType();
-								assumeNotNull(prefix+""+elementType+" binding was not found in "+fragment, elementType.resolveBinding());
-								if (elementType.isSimpleType()) {
-									verifyNameBindings(((SimpleType)elementType).getName());
-								}
-							}
-							//	Do not verify parameter name as no binding is expected for them
-						}
-					}
-				}
-			}
-			previousFragment = fragment;
-		}
-		assumeTrue(prefix+"Reference '"+(previousFragment==null?tagElement:previousFragment)+"' should be bound!", (!resolvedBinding || previousBinding != null));
-	}
-
-	/*
-	 * Verify each name component binding.
-	 */
-	private void verifyNameBindings(Name name) {
-		if (name != null) {
-			IBinding binding = name.resolveBinding();
-			if (name.toString().indexOf("Unknown") > 0) {
-				assumeNull(prefix+name+" binding should be null!", binding);
-			} else {
-				assumeNotNull(prefix+name+" binding was not found!", binding);
-			}
-			SimpleName simpleName = null;
-			int index = 0;
-			while (name.isQualifiedName()) {
-				simpleName = ((QualifiedName) name).getName();
-				binding = simpleName.resolveBinding();
-				if (simpleName.getIdentifier().equalsIgnoreCase("Unknown")) {
-					assumeNull(prefix+simpleName+" binding should be null!", binding);
-				} else {
-					assumeNotNull(prefix+simpleName+" binding was not found!", binding);
-				}
-				if (index > 0 && packageBinding) {
-					assumeEquals(prefix+"Wrong binding type!", IBinding.PACKAGE, binding.getKind());
-				}
-				index++;
-				name = ((QualifiedName) name).getQualifier();
-				binding = name.resolveBinding();
-				if (name.toString().indexOf("Unknown") > 0) {
-					assumeNull(prefix+name+" binding should be null!", binding);
-				} else {
-					assumeNotNull(prefix+name+" binding was not found!", binding);
-				}
-				if (packageBinding) {
-					assumeEquals(prefix+"Wrong binding type!", IBinding.PACKAGE, binding.getKind());
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void verifyComments(String test) throws JavaScriptModelException {
-		IJavaScriptUnit[] units = getCompilationUnits("Converter" , "src", "javadoc."+test); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		for (int i=0; i<units.length; i++) {
-			verifyComments(units[i]);
-		}
-	}
-
-	/*
-	 * Verify the comments of a compilation unit.
-	 */
-	protected void verifyWorkingCopiesComments() throws JavaScriptModelException {
-		assumeNotNull("No working copies to verify!", workingCopies);
-		int length = workingCopies.length;
-		assumeTrue("We need to have at least one working copy to verify!", length>0);
-		for (int i=0; i<length; i++) {
-			verifyComments(workingCopies[i]);
-		}
-	}
-
-	/*
-	 * Verify the comments of a compilation unit.
-	 */
-	protected JavaScriptUnit verifyComments(IJavaScriptUnit unit) throws JavaScriptModelException {
-		// Get test file
-		sourceUnit = unit;
-		prefix = unit.getElementName()+": ";
-
-		// Get current project
-		String sourceStr = sourceUnit.getSource();
-		if (savedOptions != null && !sourceUnit.getJavaScriptProject().getElementName().equals(currentProject.getElementName())) {
-			currentProject.setOptions(savedOptions);
-			savedOptions = null;
-		}
-		currentProject = sourceUnit.getJavaScriptProject();
-		if (savedOptions == null) savedOptions = currentProject.getOptions(false);
-
-		// set up java project options
-		currentProject.setOption(JavaScriptCore.COMPILER_PB_INVALID_JAVADOC, compilerOption);
-		currentProject.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_TAGS, compilerOption);
-		currentProject.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS, compilerOption);
-		currentProject.setOption(JavaScriptCore.COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME, JavaScriptCore.IGNORE);
-		currentProject.setOption(JavaScriptCore.COMPILER_DOC_COMMENT_SUPPORT, docCommentSupport);
-
-		// Verify source regardings converted comments
-		char[] source = sourceStr.toCharArray();
-		String fileName = unit.getPath().toString();
-		try {
-			return verifyComments(fileName, source);
-		}
-		catch (RuntimeException ex) {
-			TEST_COUNTERS[3]++;
-			throw ex;
-		}
-	}
-
-	protected JavaScriptUnit verifyComments(String fileName, char[] source) {
-		return verifyComments(fileName, source, null);
-	}
-
-	protected JavaScriptUnit verifyComments(String fileName, char[] source, Map options) {
-
-		// Verify comments either in unicode or not
-		char[] testedSource = source;
-		if (UNICODE) {
-			testedSource = getUnicodeSource(source);
-		}
-
-		// Verify comments either in unicode or not
-		else if (unix) {
-			testedSource = getUnixSource(source);
-		}
-		
-		// Get comments infos from test file
-		setSourceComment(testedSource);
-
-		// Create DOM AST nodes hierarchy		
-		List unitComments = null;
-		String sourceLevel = null;
-		String complianceLevel = null;
-		if (currentProject != null) {
-			if (astLevel == AST.JLS3) {
-				complianceLevel = currentProject.getOption(JavaScriptCore.COMPILER_COMPLIANCE, true);
-				sourceLevel = currentProject.getOption(JavaScriptCore.COMPILER_SOURCE, true);
-				currentProject.setOption(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_5);
-				currentProject.setOption(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_5);
-			}
-		}
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(testedSource, fileName, currentProject, options);
-		if (compilerOption.equals(JavaScriptCore.ERROR)) {
-			assumeEquals(prefix+"Unexpected problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-		} else if (compilerOption.equals(JavaScriptCore.WARNING)) {
-			IProblem[] problemsList = compilUnit.getProblems();
-			int length = problemsList.length;
-			if (length > 0) {
-				problems.append("  - "+prefix+length+" problems:"); //$NON-NLS-1$
-				for (int i = 0; i < problemsList.length; i++) {
-					problems.append("	+ ");
-					problems.append(problemsList[i]);
-					problems.append("\n");
-				}
-			}
-		}
-		unitComments = compilUnit.getCommentList();
-		assumeNotNull(prefix+"Unexpected problems", unitComments);
-		
-		// Basic comments verification
-		int size = unitComments.size();
-		assumeEquals(prefix+"Wrong number of comments!", comments.size(), size);
-
-		// Verify comments positions and bindings
-		for (int i=0; i<size; i++) {
-			Comment comment = (Comment) unitComments.get(i);
-			List tags = (List) allTags.get(i);
-			// Verify flattened content
-			String stringComment = (String) comments.get(i);
-//			ASTConverterJavadocFlattener printer = new ASTConverterJavadocFlattener(stringComment);
-//			comment.accept(printer);
-			String text = new String(testedSource, comment.getStartPosition(), comment.getLength());
-			assumeEquals(prefix+"Flattened comment does NOT match source!", stringComment, text);
-			// Verify javdoc tags positions and bindings
-			if (comment.isDocComment()) {
-				JSdoc docComment = (JSdoc)comment;
-				if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-					assumeEquals(prefix+"Invalid tags number in javadoc:\n"+docComment+"\n", tags.size(), allTags(docComment));
-					verifyPositions(docComment, testedSource);
-					if (resolveBinding) {
-						verifyBindings(docComment);
-					}
-				} else {
-					assumeEquals("Javadoc should be flat!", 0, docComment.tags().size());
-				}
-			}
-		}
-		
-		/* Verify each javadoc: not implemented yet
-		Iterator types = compilUnit.types().listIterator();
-		while (types.hasNext()) {
-			TypeDeclaration typeDeclaration = (TypeDeclaration) types.next();
-			verifyJavadoc(typeDeclaration.getJavadoc());
-		}
-		*/
-
-		if (sourceLevel != null) {
-			currentProject.setOption(JavaScriptCore.COMPILER_COMPLIANCE, complianceLevel);
-			currentProject.setOption(JavaScriptCore.COMPILER_SOURCE, sourceLevel);
-		}
-		// Return compilation unit for possible further verifications
-		return compilUnit;
-	}
-
-	/* 
-	 * Verify each javadoc
-	 * Not implented yet
-	private void verifyJavadoc(Javadoc docComment) {
-	}
-	*/
-
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test000() throws JavaScriptModelException {
-		verifyComments("test000");
-	}
-
-	/**
-	 * Check javadoc for invalid syntax
-	 */
-	public void test001() throws JavaScriptModelException {
-		verifyComments("test001");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50781"
-	 */
-	public void test002() throws JavaScriptModelException {
-		verifyComments("test002");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50784"
-	 */
-	public void test003() throws JavaScriptModelException {
-		verifyComments("test003");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50785"
-	 */
-	public void test004() throws JavaScriptModelException {
-		verifyComments("test004");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50838"
-	 */
-	public void test005() throws JavaScriptModelException {
-		verifyComments("test005");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50877"
-	 */
-	public void test006() throws JavaScriptModelException {
-		verifyComments("test006");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50877"
-	 */
-	public void test007() throws JavaScriptModelException {
-		verifyComments("test007");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50877"
-	 */
-	public void test008() throws JavaScriptModelException {
-		verifyComments("test008");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50877"
-	 */
-	public void test009() throws JavaScriptModelException {
-		verifyComments("test009");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50880"
-	 */
-	public void test010() throws JavaScriptModelException {
-		verifyComments("test010");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=47396"
-	 */
-	public void test011() throws JavaScriptModelException {
-		problems = new StringBuffer();
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.test011", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assumeNotNull("No compilation unit", result);
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50938"
-	 */
-	public void test012() throws JavaScriptModelException {
-		verifyComments("test012");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51104"
-	 */
-	public void test013() throws JavaScriptModelException {
-		verifyComments("test013");
-	}
-
-	/**
-	 * Verify that text on next line following empty tag element
-	 * is well positionned.
-	 */
-	public void test014() throws JavaScriptModelException {
-		verifyComments("test014");
-	}
-
-	/**
-	 * Verify that we do not report failure when types are written on several lines
-	 * in Javadoc comments.
-	 */
-	public void test015() throws JavaScriptModelException {
-		verifyComments("test015");
-	}
-
-	/**
-	 * Verify DefaultCommentMapper heuristic to get leading and trailing comments
-	 */
-	protected void verifyMapper(String folder, int count, int[] indexes) throws JavaScriptModelException {
-		IJavaScriptUnit[] units = getCompilationUnits("Converter" , "src", "javadoc."+folder); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		for (int i=0; i<units.length; i++) {
-			sourceUnit = units[i];
-			ASTNode result = runConversion(sourceUnit, false);
-			final JavaScriptUnit compilUnit = (JavaScriptUnit) result;
-			assumeEquals(prefix+"Wrong number of problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-			assumeEquals(prefix+"Wrong number of comments", count, compilUnit.getCommentList().size());
-			// Verify first method existence
-			ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-			assumeNotNull("We should get a non-null ast node", node);
-			assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-			FunctionDeclaration method = (FunctionDeclaration) node;
-			// Verify first method extended positions
-			int commentStart = method.getStartPosition();
-			if (indexes[0]>=0) {
-				Comment comment = (Comment) compilUnit.getCommentList().get(indexes[0]);
-				commentStart = comment.getStartPosition();
-			}
-			int startPosition = compilUnit.getExtendedStartPosition(method);
-			assumeEquals("Method "+node+" does not start at the right position", commentStart, startPosition);
-			int methodEnd = startPosition + compilUnit.getExtendedLength(method) - 1;
-			int commentEnd = method.getStartPosition() + method.getLength() - 1;
-			if (indexes[1]>=0) {
-				Comment comment = (Comment) compilUnit.getCommentList().get(indexes[1]);
-				commentEnd = comment.getStartPosition() + comment.getLength() - 1;
-			}
-			assumeEquals("Method "+node+" does not have the correct length", commentEnd, methodEnd);
-			// Verify second method existence
-			node = getASTNode((JavaScriptUnit) result, 0, 1);
-			assumeNotNull("We should get a non-null ast node", node);
-			assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-			method = (FunctionDeclaration) node;
-			// Verify second method extended positions
-			commentStart = method.getStartPosition();
-			if (indexes[2]>=0) {
-				Comment comment = (Comment) compilUnit.getCommentList().get(indexes[2]);
-				commentStart = comment.getStartPosition();
-			}
-			startPosition = compilUnit.getExtendedStartPosition(method);
-			assumeEquals("Method "+node+" does not start at the right position", commentStart, startPosition);
-			methodEnd = startPosition + compilUnit.getExtendedLength(method) - 1;
-			commentEnd = method.getStartPosition() + method.getLength() - 1;
-			if (indexes[3]>=0) {
-				Comment comment = (Comment) compilUnit.getCommentList().get(indexes[3]);
-				commentEnd = comment.getStartPosition() + comment.getLength() - 1;
-			}
-			assumeEquals("Method "+node+" does not have the correct length", commentEnd, methodEnd);
-		}
-	}
-
-	/**
-	 * Verify DefaultCommentMapper heuristic to get leading and trailing comments
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=53445"
-	 */
-	public void test100() throws JavaScriptModelException {
-		verifyMapper("test100", 16, new int[] {2,7,8,15});
-	}
-	public void test101() throws JavaScriptModelException {
-		verifyMapper("test101", 8, new int[] {1,3,4,7});
-	}
-	public void test102() throws JavaScriptModelException {
-		verifyMapper("test102", 16, new int[] {4,9,10,13});
-	}
-	public void test103() throws JavaScriptModelException {
-		verifyMapper("test103", 8, new int[] {2,4,5,6});
-	}
-	public void test104() throws JavaScriptModelException {
-		verifyMapper("test104", 16, new int[] {2,7,8,15});
-	}
-	public void test105() throws JavaScriptModelException {
-		verifyMapper("test105", 16, new int[] {-1,11,-1,15});
-	}
-	public void test106() throws JavaScriptModelException {
-		verifyMapper("test106", 8, new int[] {-1,5,-1,7});
-	}
-	public void test107() throws JavaScriptModelException {
-		verifyMapper("test107", 16, new int[] {2,7,8,-1});
-	}
-	public void test108() throws JavaScriptModelException {
-		verifyMapper("test108", 8, new int[] {1,3,4,-1});
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=54776"
-	 */
-	public void testBug54776() throws JavaScriptModelException {
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.testBug54776", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit compilUnit = (JavaScriptUnit) result;
-		assumeEquals(prefix+"Wrong number of problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-		assumeEquals(prefix+"Wrong number of comments", 2, compilUnit.getCommentList().size());
-		// get comments range
-		Comment comment = (Comment) compilUnit.getCommentList().get(0);
-		int commentStart = comment.getStartPosition();
-		int extendedLength = ((Comment) compilUnit.getCommentList().get(1)).getStartPosition()-commentStart+comment.getLength();
-		// get method invocation in field initializer
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDecl = (TypeDeclaration) node;
-		FieldDeclaration[] fields = typeDecl.getFields();
-		assumeEquals("We should have a field declaration", 1, fields.length);
-		List fragments = fields[0].fragments();
-		assumeEquals("We should have a variable fragment", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assumeTrue("We should get an expression", expression instanceof FunctionInvocation);
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		// verify  that methodinvocation extended range includes leading and trailing comment
-		int methodStart = compilUnit.getExtendedStartPosition(methodInvocation);
-		assumeEquals("Method invocation "+methodInvocation+" does not start at the right position", commentStart, methodStart);
-		int methodLength = compilUnit.getExtendedLength(methodInvocation);
-		assumeEquals("Method invocation "+methodInvocation+" does not have the correct length", extendedLength, methodLength);
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=55221"
-	 */
-	public void testBug55221a() throws JavaScriptModelException {
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.testBug55221.a", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit compilUnit = (JavaScriptUnit) result;
-		assumeEquals(prefix+"Wrong number of problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-		assumeEquals(prefix+"Wrong number of comments", 1, compilUnit.getCommentList().size());
-		// Get comment range
-		Comment comment = (Comment) compilUnit.getCommentList().get(0);
-		int commentStart = comment.getStartPosition();
-		// get first method
-		ASTNode node = getASTNode(compilUnit, 0, 0);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration method = (FunctionDeclaration) node;
-		// verify that first method does not include comment
-		int methodStart = compilUnit.getExtendedStartPosition(method);
-		assumeEquals("Method "+method+" does not start at the right position", method.getStartPosition(), methodStart);
-		int methodLength = compilUnit.getExtendedLength(method);
-		assumeEquals("Method declaration "+method+" does not end at the right position",method.getLength(), methodLength);
-		// get method body
-		node = method.getBody();
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a block", node.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-		Block block = (Block) node;
-		// verify that body does not include following comment
-		int blockStart = compilUnit.getExtendedStartPosition(block);
-		assumeEquals("Body block "+block+" does not start at the right position", block.getStartPosition(), blockStart);
-		int blockLength = compilUnit.getExtendedLength(block);
-		assumeEquals("Body block "+block+" does not have the correct length", block.getLength(), blockLength);
-		// get second method
-		node = getASTNode(compilUnit, 0, 1);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		method = (FunctionDeclaration) node;
-		// verify that second method start includes comment
-		assumeEquals("Method declaration "+method+" does not start at the right position", commentStart, method.getStartPosition());
-	}
-	public void testBug55221b() throws JavaScriptModelException {
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.testBug55221.b", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit compilUnit = (JavaScriptUnit) result;
-		assumeEquals(prefix+"Wrong number of problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-		assumeEquals(prefix+"Wrong number of comments", 1, compilUnit.getCommentList().size());
-		// Get comment range
-		Comment comment = (Comment) compilUnit.getCommentList().get(0);
-		int commentStart = comment.getStartPosition();
-		// get first method
-		ASTNode node = getASTNode(compilUnit, 0, 0);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration method = (FunctionDeclaration) node;
-		// verify that first method does not include comment
-		int methodStart = compilUnit.getExtendedStartPosition(method);
-		assumeEquals("Method "+method+" does not start at the right position", method.getStartPosition(), methodStart);
-		int methodLength = compilUnit.getExtendedLength(method);
-		assumeEquals("Method declaration "+method+" does not end at the right position",method.getLength(), methodLength);
-		// get method body
-		node = method.getBody();
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a block", node.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-		Block block = (Block) node;
-		// verify that body does not include following comment
-		int blockStart = compilUnit.getExtendedStartPosition(block);
-		assumeEquals("Body block "+block+" does not start at the right position", block.getStartPosition(), blockStart);
-		int blockLength = compilUnit.getExtendedLength(block);
-		assumeEquals("Body block "+block+" does not have the correct length", block.getLength(), blockLength);
-		// get second method
-		node = getASTNode(compilUnit, 0, 1);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		method = (FunctionDeclaration) node;
-		// verify that second method start includes comment
-		assumeEquals("Method declaration "+method+" does not start at the right position", commentStart, method.getStartPosition());
-	}
-	public void testBug55221c() throws JavaScriptModelException {
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.testBug55221.c", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit compilUnit = (JavaScriptUnit) result;
-		assumeEquals(prefix+"Wrong number of problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-		assumeEquals(prefix+"Wrong number of comments", 1, compilUnit.getCommentList().size());
-		// Get comment range
-		Comment comment = (Comment) compilUnit.getCommentList().get(0);
-		int commentStart = comment.getStartPosition();
-		int commentEnd = commentStart+comment.getLength()-1;
-		// get first method
-		ASTNode node = getASTNode(compilUnit, 0, 0);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration method = (FunctionDeclaration) node;
-		// verify that first method includes comment
-		int methodStart = compilUnit.getExtendedStartPosition(method);
-		assumeEquals("Method "+method+" does not start at the right position", method.getStartPosition(), methodStart);
-		int methodLength = compilUnit.getExtendedLength(method);
-		assumeEquals("Method "+method+" does not end at the right position", commentEnd, methodStart+methodLength-1);
-		// get method body
-		node = method.getBody();
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a block", node.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-		Block block = (Block) node;
-		// verify that body includes following comment
-		int blockStart = compilUnit.getExtendedStartPosition(block);
-		assumeEquals("Body block "+block+" does not start at the right position", block.getStartPosition(), blockStart);
-		int blockLength = compilUnit.getExtendedLength(block);
-		assumeEquals("Body block "+block+" does not end at the right position", commentEnd, blockStart+blockLength-1);
-		// get second method
-		node = getASTNode(compilUnit, 0, 1);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		method = (FunctionDeclaration) node;
-		// verify that second method does not include comment
-		methodStart = compilUnit.getExtendedStartPosition(method);
-		assumeEquals("Method "+method+" does not start at the right position", method.getStartPosition(), methodStart);
-		methodLength = compilUnit.getExtendedLength(method);
-		assumeEquals("Method declaration "+method+" does not end at the right position",method.getLength(), methodLength);
-	}
-	/** @deprecated using deprecated code */
-	public void testBug55221d() throws JavaScriptModelException {
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.testBug55221.d", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit compilUnit = (JavaScriptUnit) result;
-		assumeEquals(prefix+"Wrong number of problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-		assumeEquals(prefix+"Wrong number of comments", 2, compilUnit.getCommentList().size());
-		// get first method
-		ASTNode node = getASTNode(compilUnit, 0, 0);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration method = (FunctionDeclaration) node;
-		// verify that first method includes comment
-		int methodStart = compilUnit.getExtendedStartPosition(method);
-		assumeEquals("Method "+method+" does not start at the right position", method.getStartPosition(), methodStart);
-		int methodLength = compilUnit.getExtendedLength(method);
-		assumeEquals("Method "+method+" does not have the right length", methodLength, method.getLength());
-		// get return type
-		node = method.getReturnType();
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not return type", node.getNodeType() == ASTNode.PRIMITIVE_TYPE); //$NON-NLS-1$
-		PrimitiveType returnType = (PrimitiveType) node;
-		// verify that return type includes following comment
-		int returnStart = compilUnit.getExtendedStartPosition(returnType);
-		assumeEquals("Return type "+returnType+" does not start at the right position", returnType.getStartPosition(), returnStart);
-		int returnLength = compilUnit.getExtendedLength(returnType);
-		assumeEquals("Return type "+returnType+" does not have the right length", returnType.getLength(), returnLength);
-	}
-	public void testBug55223a() throws JavaScriptModelException {
-//		stopOnFailure = false;
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.testBug55223", "TestA.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit compilUnit = (JavaScriptUnit) result;
-		assumeEquals(prefix+"Wrong number of problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-		assumeEquals(prefix+"Wrong number of comments", 2, compilUnit.getCommentList().size());
-		// get method
-		ASTNode node = getASTNode(compilUnit, 0, 0);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		FunctionDeclaration method = (FunctionDeclaration) node;
-		// get method body
-		node = method.getBody();
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeEquals("Not a block", ASTNode.BLOCK, node.getNodeType()); //$NON-NLS-1$
-		Block block = (Block) node;
-		// verify block statements start/end positions
-		Iterator statements = block.statements().iterator();
-		int idx = 0;
-		while (statements.hasNext()) {
-			node = (ExpressionStatement) statements.next();
-			assumeEquals("Not a block", ASTNode.EXPRESSION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
-			ExpressionStatement statement = (ExpressionStatement) node;
-			int statementStart = statement.getStartPosition();
-			int statementEnd = statementStart + statement.getLength() - 1;
-			if (idx < 2) {
-				// Get comment range
-				Comment comment = (Comment) compilUnit.getCommentList().get(idx);
-				int commentStart = comment.getStartPosition();
-				statementEnd = commentStart+comment.getLength()-1;
-			}
-			int extendedStart = compilUnit.getExtendedStartPosition(statement);
-			assumeEquals("Statement "+statement+" does not start at the right position", statementStart, extendedStart);
-			int extendedEnd = extendedStart + compilUnit.getExtendedLength(statement) - 1;
-			assumeEquals("Statement "+statement+" does not end at the right position", statementEnd, extendedEnd);
-			idx++;
-		}
-	}
-	/** @deprecated using deprecated code */
-	public void testBug55223b() throws JavaScriptModelException {
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.testBug55223", "TestB.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit compilUnit = (JavaScriptUnit) result;
-		assumeEquals(prefix+"Wrong number of problems", 0, compilUnit.getProblems().length); //$NON-NLS-1$
-		assumeEquals(prefix+"Wrong number of comments", 2, compilUnit.getCommentList().size());
-		// Get comment range
-		Comment comment = (Comment) compilUnit.getCommentList().get(1);
-		int commentStart = comment.getStartPosition();
-		// get method
-		ASTNode node = getASTNode(compilUnit, 0, 0);
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		FunctionDeclaration method = (FunctionDeclaration) node;
-		// get return type
-		node = method.getReturnType();
-		assumeNotNull("We should get a non-null ast node", node);
-		assumeTrue("Not return type", node.getNodeType() == ASTNode.SIMPLE_TYPE); //$NON-NLS-1$
-		SimpleType returnType = (SimpleType) node;
-		// verify that return type includes following comment
-		int returnStart = compilUnit.getExtendedStartPosition(returnType);
-		assumeEquals("Return type "+returnType+" does not start at the right position", commentStart, returnStart);
-		int returnEnd = returnStart + compilUnit.getExtendedLength(returnType) - 1;
-		assumeEquals("Return type "+returnType+" does not end at the right length", returnType.getStartPosition()+returnType.getLength()-1, returnEnd);
-	}
-	/*
-	 * End DefaultCommentMapper verifications
-	 */
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=48489"
-	 */
-	public void testBug48489() throws JavaScriptModelException {
-		verifyComments("testBug48489");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=50898"
-	 */
-	public void testBug50898() throws JavaScriptModelException {
-		IJavaScriptUnit unit = getCompilationUnit("Converter" , "src", "javadoc.testBug50898", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		packageBinding = false;
-		verifyComments(unit);
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51226"
-	 */
-	public void testBug51226() throws JavaScriptModelException {
-		IJavaScriptUnit[] units = getCompilationUnits("Converter" , "src", "javadoc.testBug51226"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		for (int i=0; i<units.length; i++) {
-			ASTNode result = runConversion(units[i], false);
-			final JavaScriptUnit unit = (JavaScriptUnit) result;
-			assumeEquals(prefix+"Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-			assumeEquals(prefix+"Wrong number of comments", 1, unit.getCommentList().size());
-			Comment comment = (Comment) unit.getCommentList().get(0);
-			assumeTrue(prefix+"Comment should be a Javadoc one", comment.isDocComment());
-			if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-				JSdoc docComment = (JSdoc) comment;
-				assumeEquals(prefix+"Wrong number of tags", 1, docComment.tags().size());
-				TagElement tagElement = (TagElement) docComment.tags().get(0);
-				assumeNull(prefix+"Wrong type of tag ["+tagElement+"]", tagElement.getTagName());
-				assumeEquals(prefix+"Wrong number of fragments in tag ["+tagElement+"]", 1, tagElement.fragments().size());
-				ASTNode fragment = (ASTNode) tagElement.fragments().get(0);
-				assumeEquals(prefix+"Invalid type for fragment ["+fragment+"]", ASTNode.TEXT_ELEMENT, fragment.getNodeType());
-				TextElement textElement = (TextElement) fragment;
-				assumeEquals(prefix+"Invalid content for text element ", "Test", textElement.getText());
-				if (debug) System.out.println(docComment+"\nsuccessfully verified.");
-			}
-		}
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51241"
-	 */
-	public void testBug51241() throws JavaScriptModelException {
-		verifyComments("testBug51241");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51363"
-	 */
-	public void testBug51363() throws JavaScriptModelException {
-		sourceUnit = getCompilationUnit("Converter" , "src", "javadoc.testBug51363", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assumeEquals(prefix+"Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		assumeEquals(prefix+"Wrong number of comments", 2, unit.getCommentList().size());
-		// verify first comment
-		Comment comment = (Comment) unit.getCommentList().get(0);
-		assumeTrue(prefix+"Comment should be a line comment ", comment.isLineComment());
-		String sourceStr = sourceUnit.getSource();
-		int startPos = comment.getStartPosition()+comment.getLength();
-		assumeEquals("Wrong length for line comment "+comment, "\\u000D\\u000A", sourceStr.substring(startPos, startPos+12));
-		if (debug) System.out.println(comment+"\nsuccessfully verified.");
-		// verify second comment
-		comment = (Comment) unit.getCommentList().get(1);
-		assumeTrue(prefix+"Comment should be a line comment", comment.isLineComment());
-		sourceStr = sourceUnit.getSource();
-		startPos = comment.getStartPosition()+comment.getLength();
-		assumeEquals("Wrong length for line comment "+comment, "\\u000Dvoid", sourceStr.substring(startPos, startPos+10));
-		if (debug) System.out.println(comment+"\nsuccessfully verified.");
-//		verifyComments("testBug51363");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51476"
-	 */
-	public void testBug51476() throws JavaScriptModelException {
-		verifyComments("testBug51476");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51478"
-	 */
-	public void testBug51478() throws JavaScriptModelException {
-		verifyComments("testBug51478");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51508"
-	 */
-	public void testBug51508() throws JavaScriptModelException {
-		verifyComments("testBug51508");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51650"
-	 */
-	public void testBug51650() throws JavaScriptModelException {
-		verifyComments("testBug51650");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51770"
-	 */
-	public void testBug51770() throws JavaScriptModelException {
-		verifyComments("testBug51770");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=52908"
-	 */
-	public void testBug52908() throws JavaScriptModelException {
-		verifyComments("testBug52908");
-	}
-	public void testBug52908a() throws JavaScriptModelException {
-		verifyComments("testBug52908a");
-	}
-	public void testBug52908unicode() throws JavaScriptModelException {
-		verifyComments("testBug52908unicode");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=53276"
-	 */
-	public void testBug53276() throws JavaScriptModelException {
-		verifyComments("testBug53276");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=53075"
-	 */
-	public void testBug53075() throws JavaScriptModelException {
-		IJavaScriptUnit unit = getCompilationUnit("Converter" , "src", "javadoc.testBug53075", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		boolean pb = packageBinding;
-		packageBinding = false;
-		JavaScriptUnit compilUnit = verifyComments(unit);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			Comment comment = (Comment) compilUnit.getCommentList().get(0);
-			assumeTrue(prefix+"Comment should be a javadoc comment ", comment.isDocComment());
-			JSdoc docComment = (JSdoc) comment;
-			TagElement tagElement = (TagElement) docComment.tags().get(0);
-			assumeEquals("Wrong tag type!", TagElement.TAG_LINK, tagElement.getTagName());
-			tagElement = (TagElement) docComment.tags().get(1);
-			assumeEquals("Wrong tag type!", TagElement.TAG_LINKPLAIN, tagElement.getTagName());
-		}
-		packageBinding = pb;
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=53757"
-	 */
-	public void testBug53757() throws JavaScriptModelException {
-		verifyComments("testBug53757");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51600"
-	 */
-	public void testBug51600() throws JavaScriptModelException {
-		verifyComments("testBug51600");
-	}
-	public void testBug51617() throws JavaScriptModelException {
-		stopOnFailure = false;
-		String [] unbound = { "e" };
-		verifyComments("testBug51617");
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			int size = unbound.length;
-			for (int i=0, f=0; i<size; i++) {
-				assertTrue("Invalid number of failures!", failures.size()>f);
-				String failure = (String) failures.get(f);
-				String expected = "Reference '"+unbound[i]+"' should be bound!";
-				if (expected.equals(failure.substring(failure.indexOf(' ')+1))) {
-					failures.remove(f);
-				} else {
-					f++;	// skip offending failure
-					i--;	// stay on expected string
-				}
-			}
-		}
-		stopOnFailure = true;
-	}
-	public void testBug54424() throws JavaScriptModelException {
-		stopOnFailure = false;
-		String [] unbound = { "tho",
-				"from",
-				"A#getList(int,long,boolean)",
-				"#getList(Object,java.util.AbstractList)",
-				"from",
-				"#getList(int from,long tho)",
-				"to"
-		};
-		verifyComments("testBug54424");
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			int size = unbound.length;
-			for (int i=0, f=0; i<size; i++) {
-				assertTrue("Invalid number of failures!", failures.size()>f);
-				String failure = (String) failures.get(f);
-				String expected = "Reference '"+unbound[i]+"' should be bound!";
-				if (expected.equals(failure.substring(failure.indexOf(' ')+1))) {
-					failures.remove(f);
-				} else {
-					f++;	// skip offending failure
-					i--;	// stay on expected string
-				}
-			}
-		}
-		stopOnFailure = true;
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=63044"
-	 */
-	public void testBug63044() throws JavaScriptModelException {
-		verifyComments("testBug63044");
-	}
-
-	/**
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51660"
-	 */
-	public void testBug51660() throws JavaScriptModelException {
-		stopOnFailure = false;
-		IJavaScriptUnit unit = getCompilationUnit("Converter" , "src", "javadoc.testBug51660", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit compilUnit = verifyComments(unit);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			String[] tagNames = {
-				"@ejb",
-				"@ejb",
-				"@ejb",
-				"@ejb",
-				"@ejb",
-				"@ejb",
-				"@ejb(bean",
-				"@ejb)bean",
-				"@ejb",
-				"@ejb+bean",
-				"@ejb,bean",
-				"@ejb-bean",
-				"@ejb.bean",
-				"@ejb/bean",
-				"@ejb",
-				"@ejb;bean",
-				"@ejb",
-				"@ejb=bean",
-				"@ejb",
-				"@ejb?bean",
-				"@ejb@bean",
-				"@ejb[bean",
-				"@ejb\\bean",
-				"@ejb]bean",
-				"@ejb^bean",
-				"@ejb`bean",
-				"@ejb{bean",
-				"@ejb|bean",
-				"@ejb",
-				"@ejb~bean",
-				"@unknown"
-			};
-			String[] tagTexts = {
-				"!bean test non-java id character '!' (val=33) in tag name",
-				"\"bean test non-java id character '\"' (val=34) in tag name",
-				"#bean test non-java id character '#' (val=35) in tag name",
-				"%bean test non-java id character '%' (val=37) in tag name",
-				"&bean test non-java id character '&' (val=38) in tag name",
-				"'bean test non-java id character ''' (val=39) in tag name",
-				" test non-java id character '(' (val=40) in tag name",
-				" test non-java id character ')' (val=41) in tag name",
-				"*bean test non-java id character '*' (val=42) in tag name",
-				" test non-java id character '+' (val=43) in tag name",
-				" test non-java id character ',' (val=44) in tag name",
-				" test non-java id character '-' (val=45) in tag name",
-				" test non-java id character '.' (val=46) in tag name",
-				" test non-java id character '/' (val=47) in tag name",
-				":bean test non-java id character ':' (val=58) in tag name",
-				" test non-java id character ';' (val=59) in tag name",
-				"<bean test non-java id character '<' (val=60) in tag name",
-				" test non-java id character '=' (val=61) in tag name",
-				">bean test non-java id character '>' (val=62) in tag name",
-				" test non-java id character '?' (val=63) in tag name",
-				" test non-java id character '@' (val=64) in tag name",
-				" test non-java id character '[' (val=91) in tag name",
-				" test non-java id character '\\' (val=92) in tag name",
-				" test non-java id character ']' (val=93) in tag name",
-				" test non-java id character '^' (val=94) in tag name",
-				" test non-java id character '`' (val=96) in tag name",
-				" test non-java id character '{' (val=123) in tag name",
-				" test non-java id character '|' (val=124) in tag name",
-				"}bean test non-java id character '}' (val=125) in tag name",
-				" test non-java id character '~' (val=126) in tag name",
-				" test java id"
-			};
-			Comment comment = (Comment) compilUnit.getCommentList().get(0);
-			assumeTrue(prefix+"Comment should be a javadoc comment ", comment.isDocComment());
-			JSdoc docComment = (JSdoc) comment;
-			int size = docComment.tags().size();
-			for (int i=0; i<size; i++) {
-				TagElement tagElement = (TagElement) docComment.tags().get(i);
-				assumeEquals("Wrong tag name for:"+tagElement, tagNames[i], tagElement.getTagName());
-				assumeEquals("Wrong fragments size for :"+tagElement, 1, tagElement.fragments().size());
-				ASTNode fragment = (ASTNode) tagElement.fragments().get(0);
-				assumeEquals("Wrong fragments type for :"+tagElement, ASTNode.TEXT_ELEMENT, fragment.getNodeType());
-				TextElement textElement = (TextElement) fragment;
-				assumeEquals("Wrong text for tag!", tagTexts[i], textElement.getText());
-			}
-		}
-		stopOnFailure = true;
-	}
-
-	/**
-	 * Bug 65174: Spurious "Javadoc: Missing reference" error
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=65174"
-	 */
-	public void testBug65174() throws JavaScriptModelException {
-		verifyComments("testBug65174");
-	}
-
-	/**
-	 * Bug 65253: [Javadoc] @@tag is wrongly parsed as @tag
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=65253"
-	 */
-	public void testBug65253() throws JavaScriptModelException {
-		verifyComments("testBug65253");
-	}
-
-	/**
-	 * Bug 65288: Javadoc: tag gets mangled when javadoc closing on same line without whitespace
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=65288"
-	 */
-	public void testBug65288() throws JavaScriptModelException {
-		verifyComments("testBug65288");
-	}
-
-	/**
-	 * Bug 68017: Javadoc processing does not detect missing argument to @return
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=68017"
-	 */
-	public void testBug68017() throws JavaScriptModelException {
-		verifyComments("testBug68017");
-	}
-
-	/**
-	 * Bug 68025: Javadoc processing does not detect some wrong links
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=68025"
-	 */
-	public void testBug68025() throws JavaScriptModelException {
-		verifyComments("testBug68025");
-	}
-
-	/**
-	 * Bug 69272: [Javadoc] Invalid malformed reference (missing separator)
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=69272"
-	 */
-	public void testBug69272() throws JavaScriptModelException {
-		verifyComments("testBug69272");
-	}
-
-	/**
-	 * Bug 69275: [Javadoc] Invalid warning on @see link
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=69275"
-	 */
-	public void testBug69275() throws JavaScriptModelException {
-		verifyComments("testBug69275");
-	}
-
-	/**
-	 * Bug 69302: [Javadoc] Invalid reference warning inconsistent with javadoc tool
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=69302"
-	 */
-	public void testBug69302() throws JavaScriptModelException {
-		verifyComments("testBug69302");
-	}
-
-	/**
-	 * Bug 68726: [Javadoc] Target attribute in @see link triggers warning
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=68726"
-	 */
-	public void testBug68726() throws JavaScriptModelException {
-		verifyComments("testBug68726");
-	}
-
-	/**
-	 * Bug 70892: [1.5][Javadoc] Compiler should parse reference for inline tag @value
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=70892"
-	 * @deprecated using deprecated code
-	 */
-	public void testBug70892_JLS2() throws JavaScriptModelException {
-		int level = astLevel;
-		astLevel = AST.JLS2;
-		verifyComments("testBug70892");
-		astLevel = level;
-	}
-	public void testBug70892_JLS3() throws JavaScriptModelException {
-		int level = astLevel;
-		astLevel = AST.JLS3;
-		verifyComments("testBug70892");
-		astLevel = level;
-	}
-
-	/**
-	 * Bug 51911: [Javadoc] @see method w/out ()
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=51911"
-	 */
-	public void testBug51911() throws JavaScriptModelException {
-		verifyComments("testBug51911");
-	}
-
-	/**
-	 * Bug 73348: [Javadoc] Missing description for return tag is not always warned
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=73348"
-	 */
-	public void testBug73348() throws JavaScriptModelException {
-		verifyComments("testBug73348");
-	}
-
-	/**
-	 * Bug 77644: [dom] AST node extended positions may be wrong while moving
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=77644"
-	 */
-	public void testBug77644() throws JavaScriptModelException {
-		verifyComments("testBug77644");
-	}
-
-	/**
-	 * Bug 79809: [1.5][dom][javadoc] Need better support for type parameter Javadoc tags
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=79809"
-	 */
-	public void testBug79809() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter/src/javadoc/b79809/Test.js",
-			"package javadoc.b79809;\n" +
-			"/**\n" + 
-			" * @param <E>  Class type parameter\n" + 
-			" * @see Object\n" + 
-			" */\n" + 
-			"public class Test<E> {\n" + 
-			"	/**\n" + 
-			"	 * @param t\n" + 
-			"	 * @param <T> Method type parameter\n" + 
-			"	 */\n" + 
-			"	<T> void foo(T t) {}\n" + 
-			"}\n");
-		verifyWorkingCopiesComments();
-	}
-	public void testBug79809b() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter/src/javadoc/b79809/Test.js",
-			"package javadoc.b79809;\n" + 
-			"\n" + 
-			"/**\n" + 
-			" * New tags for 5.0\n" + 
-			" *  - literal: {@literal a<B>c}\n" + 
-			" *  - code: {@code abc}\n" + 
-			" *  - value: {@value System#out}\n" + 
-			" */\n" + 
-			"public class Test {\n" + 
-			"\n" + 
-			"}\n");
-		verifyWorkingCopiesComments();
-	}
-
-	/**
-	 * Bug 79904: [1.5][dom][javadoc] TagElement range not complete for type parameter tags
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=79904"
-	 */
-	public void testBug79904() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter/src/javadoc/b79904/Test.js",
-			"package javadoc.b79904;\n" +
-			"/**\n" + 
-			" * @param <E>\n" + 
-			" * @see Object\n" + 
-			" */\n" + 
-			"public class Test<E> {\n" + 
-			"	/**\n" + 
-			"	 * @param t\n" + 
-			"	 * @param <T>\n" + 
-			"	 */\n" + 
-			"	<T> void foo(T t) {}\n" + 
-			"}\n");
-		verifyWorkingCopiesComments();
-	}
-
-	/**
-	 * Bug 80221: [1.5][dom][javadoc] Need better support for type parameter Javadoc tags
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=80221"
-	 */
-	public void testBug80221() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter/src/javadoc/b80221/Test.js",
-			"package javadoc.b80221;\n" +
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Object Unknown: ref is not resolved due to compile error...\n" + 
-			"	 */\n" + 
-			"	public foo() {\n" + 
-			"		return 1;\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		verifyWorkingCopiesComments();
-	}
-
-	/**
-	 * Bug 80257: [1.5][javadoc][dom] Type references in javadocs should have generic binding, not raw
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=80257"
-	 */
-	public void testBug80257() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b80257/Test.js",
-			"package javadoc.b80257;\n" + 
-			"import java.util.*;\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see ArrayList\n" + 
-			"	 * @return {@link java.util.List}\n" + 
-			"	 */\n" + 
-			"	List<String> getList() {\n" + 
-			"		return new ArrayList<String>();\n" + 
-			"	}\n" + 
-			"}\n"
-			);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Do not need to verify following statement as we know it's ok as verifyComments did not fail
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // get javadoc comment
-			TagElement firstTag = (TagElement) docComment.tags().get(0); // get first tag
-			TagElement secondTag = (TagElement) docComment.tags().get(1); // get second tag
-			TagElement inlineTag = (TagElement) secondTag.fragments().get(1); // get inline tag
-			// Get tag simple name reference in first tag
-			assertEquals("Invalid number of fragments for tag element: "+firstTag, 1, firstTag.fragments().size());
-			ASTNode node = (ASTNode) firstTag.fragments().get(0);
-			assertEquals("Invalid kind of name reference for tag element: "+firstTag, ASTNode.SIMPLE_NAME, node.getNodeType());
-			SimpleName seeRef = (SimpleName) node;
-			// Verify binding for simple name
-			IBinding binding = seeRef.resolveBinding();
-			assertTrue("Wrong kind of binding", binding instanceof ITypeBinding);
-			// Get inline tag simple name reference in second tag
-			assertEquals("Invalid number of fragments for inline tag element: "+inlineTag, 1, inlineTag.fragments().size());
-			node = (ASTNode) inlineTag.fragments().get(0);
-			assertEquals("Invalid kind of name reference for tag element: "+inlineTag, ASTNode.QUALIFIED_NAME, node.getNodeType());
-			QualifiedName linkRef = (QualifiedName) node;
-			// Verify binding for qualified name
-			binding = linkRef.resolveBinding();
-			assertTrue("Wrong kind of binding", binding instanceof ITypeBinding);
-		}
-	}
-
-	/**
-	 * Bug 83804: [1.5][javadoc] Missing Javadoc node for package declaration
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=83804"
-	 */
-	public void testBug83804() throws CoreException, JavaScriptModelException {
-		astLevel = AST.JLS3;
-		workingCopies = new IJavaScriptUnit[2];
-		workingCopies[0] = getCompilationUnit("Converter15", "src", "javadoc.b83804", "package-info.js");
-		workingCopies[1] = getCompilationUnit("Converter15", "src", "javadoc.b83804", "Test.js");
-		verifyWorkingCopiesComments();
-	}
-	public void testBug83804a() throws CoreException, JavaScriptModelException {
-		astLevel = AST.JLS3;
-		workingCopies = new IJavaScriptUnit[2];
-		workingCopies[0] = getCompilationUnit("Converter15", "src", "javadoc.b83804a", "package-info.js");
-		workingCopies[1] = getCompilationUnit("Converter15", "src", "javadoc.b83804a", "Test.js");
-		verifyWorkingCopiesComments();
-	}
-
-	/**
-	 * Bug 84049: [javadoc][dom] Extended ranges wrong for method name without return type
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=84049"
-	 */
-	public void testBug84049() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b84049/Test.js",
-			"package javadoc.b84049;\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Object\n" + 
-			"	 */\n" + 
-			"	foo() {\n" + 
-			"	}\n" + 
-			"}\n"
-			);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			ASTNode node = getASTNode(compilUnit, 0, 0);
-			assertEquals("Invalid type for node: "+node, ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			JSdoc methodJavadoc = methodDeclaration.getJavadoc();
-			assertNotNull("FunctionDeclaration have a javadoc comment", methodJavadoc);
-			int javadocStart = methodJavadoc.getStartPosition();
-			assertEquals("Method declaration should include javadoc comment", methodDeclaration.getStartPosition(), javadocStart);
-			SimpleName methodName = methodDeclaration.getName();
-			int nameStart = methodName.getStartPosition();
-			assertTrue("Method simple name should not include javadoc comment", nameStart > javadocStart+methodJavadoc.getLength());
-			int extendedStart = compilUnit.getExtendedStartPosition(methodName);
-			assertEquals("Method simple name start position should not be extended!", nameStart, extendedStart);
-			int extendedLength = compilUnit.getExtendedLength(methodName);
-			assertEquals("Method simple name length should not be extended!", methodName.getLength(), extendedLength);
-		}
-	}
-
-	/**
-	 * Bug 87845: [1.5][javadoc][dom] Type references in javadocs should have generic binding, not raw
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=87845"
-	 */
-	public void testBug87845() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b87845/Test.js",
-			"package javadoc.b87845;\n" + 
-			"public class Test {\n" + 
-			"	public void foo(int a, int b) {} \n" + 
-			"	public void foo(int a, int... args) {}\n" + 
-			"	public void foo(String... args) {}\n" + 
-			"	public void foo(Exception str, boolean... args) {}\n" + 
-			"	/**\n" + 
-			"	* @see Test#foo(int, int)\n" + 
-			"	* @see Test#foo(int, int[])\n" + 
-			"	* @see Test#foo(int, int...)\n" + 
-			"	* @see Test#foo(String[])\n" + 
-			"	* @see Test#foo(String...)\n" + 
-			"	* @see Test#foo(Exception, boolean[])\n" + 
-			"	* @see Test#foo(Exception, boolean...)\n" + 
-			"	*/\n" + 
-			"	public void valid() {}\n" + 
-			"	/**\n" + 
-			"	* @see Test#foo(int)\n" + 
-			"	* @see Test#foo(int, int, int)\n" + 
-			"	* @see Test#foo()\n" + 
-			"	* @see Test#foo(String)\n" + 
-			"	* @see Test#foo(String, String)\n" + 
-			"	* @see Test#foo(Exception)\n" + 
-			"	* @see Test#foo(Exception, boolean)\n" + 
-			"	* @see Test#foo(Exception, boolean, boolean)\n" + 
-			"	*/\n" + 
-			"	public void invalid() {}\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Do not need to verify following statement as we know it's ok as verifyComments did not fail
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // get first javadoc comment
-			// Verify last parameter for all methods reference in javadoc comment
-			List tags = docComment.tags();
-			int size = tags.size();
-			for (int i=0; i<size; i++) {
-				TagElement tag = (TagElement) docComment.tags().get(i);				
-				assertEquals("Invalid number of fragment for see reference: "+tag, 1, tag.fragments().size());
-				ASTNode node = (ASTNode) tag.fragments().get(0);
-				assertEquals("Invalid kind of name reference for tag element: "+tag, ASTNode.FUNCTION_REF, node.getNodeType());
-				FunctionRef methodRef = (FunctionRef) node;
-				List parameters = methodRef.parameters();
-				int paramSize = parameters.size();
-				for (int j=0; j<paramSize; j++) {
-					node = (ASTNode) parameters.get(j);
-					assertEquals("Invalid kind of method parameter: "+node, ASTNode.FUNCTION_REF_PARAMETER, node.getNodeType());
-					FunctionRefParameter parameter = (FunctionRefParameter) node;
-					if (j==(paramSize-1)) {
-						switch (i) {
-							case 2:
-							case 4:
-							case 6:
-								assertTrue("Method parameter \""+parameter+"\" should be varargs!", parameter.isVarargs());
-								break;
-							default:
-								assertFalse("Method parameter \""+parameter+"\" should not be varargs!", parameter.isVarargs());
-								break;
-						}
-					} else {
-						assertFalse("Method parameter \""+parameter+"\" should not be varargs!", parameter.isVarargs());
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Bug 93880: [1.5][javadoc] Source range of PackageDeclaration does not include Javadoc child
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=93880"
-	 */
-	public void testBug93880_15a() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/Test.js",
-			"/**\n" + 
-			" * Javadoc\n" + 
-			" */\n" + 
-			"package javadoc.b93880;\n" + 
-			"public class Test {\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // Do not need to verify following statement as we know it's ok as verifyComments did not fail
-
-			// Verify package declaration javadoc
-			assertTrue("Javadoc should be set on package declaration", docComment == packDecl.getJavadoc());
-
-			// Verify package declaration declaration source start
-			assertEquals("Source range of PackageDeclaration should include Javadoc child", docComment.getStartPosition(), packDecl.getStartPosition());
-		}
-	}
-	public void testBug93880_15b() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/package-info.js",
-			"/**\n" + 
-			" * Javadoc for all package\n" + 
-			" */\n" + 
-			"package javadoc.b93880;"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // Do not need to verify following statement as we know it's ok as verifyComments did not fail
-
-			// Verify package declaration javadoc
-			assertTrue("Javadoc should be set on package declaration", docComment == packDecl.getJavadoc());
-
-			// Verify package declaration declaration source start
-			assertEquals("Source range of PackageDeclaration should include Javadoc child", docComment.getStartPosition(), packDecl.getStartPosition());
-		}
-	}
-	public void testBug93880_15c() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/package-info.js",
-			"/**\n" + 
-			" * Javadoc for all package\n" + 
-			" */\n" + 
-			"private package javadoc.b93880;"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // Do not need to verify following statement as we know it's ok as verifyComments did not fail
-
-			// Verify package declaration javadoc
-			assertTrue("Javadoc should be set on package declaration", docComment == packDecl.getJavadoc());
-
-			// Verify package declaration declaration source start
-			assertEquals("Source range of PackageDeclaration should include Javadoc child", docComment.getStartPosition(), packDecl.getStartPosition());
-		}
-	}
-	public void testBug93880_15d() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/package-info.js",
-			"/**\n" + 
-			" * Javadoc for all package\n" + 
-			" */\n" + 
-			"@Deprecated\n" + 
-			"package javadoc.b93880;"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			assertNotNull("Compilation unit should have a package declaration", packDecl);
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // Do not need to verify following statement as we know it's ok as verifyComments did not fail
-
-			// Verify package declaration javadoc
-			assertTrue("Javadoc should be set on package declaration", docComment == packDecl.getJavadoc());
-
-			// Verify package declaration declaration source start
-			assertEquals("Source range of PackageDeclaration should include Javadoc child", docComment.getStartPosition(), packDecl.getStartPosition());
-		}
-	}
-	public void testBug93880_15e() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/package-info.js",
-			"/* (non-javadoc)\n" + 
-			" * No comment\n" + 
-			" */\n" + 
-			"package javadoc.b93880;"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			List unitComments = compilUnit.getCommentList();
-			assertEquals("Wrong number of comments", 1, unitComments.size());
-			Comment comment = (Comment) unitComments.get(0);
-
-			// Verify package declaration javadoc
-			assertNull("Package declaration should not have any javadoc", packDecl.getJavadoc());
-
-			// Verify package declaration declaration source start
-			assertTrue("Source range of PackageDeclaration should NOT include Javadoc child", packDecl.getStartPosition() > comment.getStartPosition()+comment.getLength());
-		}
-	}
-	public void testBug93880_14a() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/Test.js",
-			"/**\n" + 
-			" * Javadoc\n" + 
-			" */\n" + 
-			"package javadoc.b93880;\n" + 
-			"public class Test {\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // Do not need to verify following statement as we know it's ok as verifyComments did not fail
-
-			// Verify package declaration declaration source start
-			assertEquals("Source range of PackageDeclaration should include Javadoc child", docComment.getStartPosition(), packDecl.getStartPosition());
-		}
-	}
-	public void testBug93880_14b() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/package-info.js",
-			"/**\n" + 
-			" * Javadoc for all package\n" + 
-			" */\n" + 
-			"package javadoc.b93880;"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // Do not need to verify following statement as we know it's ok as verifyComments did not fail
-
-			// Verify package declaration declaration source start
-			assertEquals("Source range of PackageDeclaration should include Javadoc child", docComment.getStartPosition(), packDecl.getStartPosition());
-		}
-	}
-	public void testBug93880_14c() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/package-info.js",
-			"/**\n" + 
-			" * Javadoc for all package\n" + 
-			" */\n" + 
-			"private package javadoc.b93880;"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // Do not need to verify following statement as we know it's ok as verifyComments did not fail
-
-			// Verify package declaration declaration source start
-			assertEquals("Source range of PackageDeclaration should include Javadoc child", docComment.getStartPosition(), packDecl.getStartPosition());
-		}
-	}
-	public void testBug93880_14d() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/package-info.js",
-			"/**\n" + 
-			" * Javadoc for all package\n" + 
-			" */\n" + 
-			"@Deprecated\n" + 
-			"package javadoc.b93880;"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			assertNotNull("Compilation unit should have a package declaration", packDecl);
-			JSdoc docComment = (JSdoc) compilUnit.getCommentList().get(0); // Do not need to verify following statement as we know it's ok as verifyComments did not fail
-
-			// Verify package declaration declaration source start
-			assertEquals("Source range of PackageDeclaration should include Javadoc child", docComment.getStartPosition(), packDecl.getStartPosition());
-		}
-	}
-	public void testBug93880_14e() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b93880/package-info.js",
-			"/* (non-javadoc)\n" + 
-			" * No comment\n" + 
-			" */\n" + 
-			"package javadoc.b93880;"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get package declaration declaration and javadoc
-			PackageDeclaration packDecl = compilUnit.getPackage();
-			List unitComments = compilUnit.getCommentList();
-			assertEquals("Wrong number of comments", 1, unitComments.size());
-			Comment comment = (Comment) unitComments.get(0);
-
-			// Verify package declaration declaration source start
-			assertTrue("Source range of PackageDeclaration should NOT not include Javadoc child", packDecl.getStartPosition() > comment.getStartPosition()+comment.getLength());
-		}
-	}
-
-
-	/**
-	 * Bug 99507: [javadoc] Infinit loop in DocCommentParser
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=99507"
-	 */
-	public void testBug99507() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b99507/X.js",
-			"package javadoc.b99507;\n" + 
-			"public class X {\n" + 
-			"}\n" +
-			"/** @param test*/" 
-		);
-		verifyComments(workingCopies[0]);
-	}
-	public void testBug99507b() throws JavaScriptModelException {
-        String source = "/**\n@param country*/";
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_COMPILATION_UNIT);
-		parser.setSource(source.toCharArray());
-		parser.createAST(null);
-	}
-
-	/**
-	 * Bug 100041: [javadoc] Infinit loop in DocCommentParser
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=100041"
-	 */
-	public void testBug100041() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b100041/X.js",
-			"package javadoc.b100041;\n" + 
-			"class X {\n" +
-			"	static Object object;\n" +
-			"	static void foo() {\n" +
-			"		/**\n" +
-			"		 * javadoc comment.\n" +
-			"		 */\n" +
-			"		if (object instanceof String) {\n" +
-			"			final String clr = null;\n" +
-			"		}\n" +
-			"	}\n" +
-			"}"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get comment
-			List unitComments = compilUnit.getCommentList();
-			assertEquals("Wrong number of comments", 1, unitComments.size());
-			Comment comment = (Comment) unitComments.get(0);
-			int commentStart = comment.getStartPosition();
-			int commentEnd = commentStart+comment.getLength();
-
-			// Get local variable declaration
-			ASTNode node = getASTNode(compilUnit, 0, 1, 0);
-			assertEquals("Expected if statement for node: "+node, ASTNode.IF_STATEMENT, node.getNodeType());
-			IfStatement ifStatement = (IfStatement) node;
-			assertTrue("Invalid start position for IfStatement: "+ifStatement, ifStatement.getStartPosition() > commentEnd);
-			Statement statement  = ifStatement.getThenStatement();
-			assertEquals("Expected block for node: "+statement, ASTNode.BLOCK, statement.getNodeType());
-			Block block = (Block) statement;
-			assertTrue("Invalid start position for Block: "+block, block.getStartPosition() > commentEnd);
-			List statements = block.statements();
-			assertEquals("Invalid number of statements for block: "+block, 1, statements.size());
-			statement = (Statement) statements.get(0);
-			assertEquals("Expected variable declaration statement for node: "+statement, ASTNode.VARIABLE_DECLARATION_STATEMENT, statement.getNodeType());
-			VariableDeclarationStatement varDecl = (VariableDeclarationStatement) statement;
-			assertTrue("Invalid start position for : VariableDeclarationStatement"+varDecl, varDecl.getStartPosition() > commentEnd);
-		}
-	}
-	public void testBug100041b() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b100041/X.js",
-			"package javadoc.b100041;\n" + 
-			"class X {\n" +
-			"	static Object object;\n" +
-			"	static void foo() {\n" +
-			"		/**\n" +
-			"		 * javadoc comment.\n" +
-			"		 */\n" +
-			"		if (object instanceof String)\n" +
-			"			return;\n" +
-			"	}\n" +
-			"}"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get comment
-			List unitComments = compilUnit.getCommentList();
-			assertEquals("Wrong number of comments", 1, unitComments.size());
-			Comment comment = (Comment) unitComments.get(0);
-			int commentStart = comment.getStartPosition();
-			int commentEnd = commentStart+comment.getLength();
-
-			// Get local variable declaration
-			ASTNode node = getASTNode(compilUnit, 0, 1, 0);
-			assertEquals("Expected if statement for node: "+node, ASTNode.IF_STATEMENT, node.getNodeType());
-			IfStatement ifStatement = (IfStatement) node;
-			assertTrue("Invalid start position for IfStatement: "+ifStatement, ifStatement.getStartPosition() > commentEnd);
-			Statement statement  = ifStatement.getThenStatement();
-			assertEquals("Expected block for node: "+statement, ASTNode.RETURN_STATEMENT, statement.getNodeType());
-			ReturnStatement returnStatement = (ReturnStatement) statement;
-			assertTrue("Invalid start position for Block: "+returnStatement, returnStatement.getStartPosition() > commentEnd);
-		}
-	}
-	public void testBug100041c() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b100041/Z.js",
-			"package javadoc.b100041;\n" + 
-			"public class Z {\n" + 
-			"	/** C1 */\n" + 
-			"	class Z1 {}\n" + 
-			"	/** C2 */\n" + 
-			"	Z1 z1;\n" + 
-			"	/** C3 */\n" + 
-			"	public static void foo(Object object) {\n" + 
-			"		/** C4 */\n" + 
-			"		class ZZ {\n" + 
-			"			/** C5 */\n" + 
-			"			ZZ zz;\n" + 
-			"			/** C6 */\n" + 
-			"			public void bar() {}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get comments
-			List unitComments = compilUnit.getCommentList();
-			int size = unitComments.size();
-			assertEquals("Wrong number of comments", 6, size);
-			JSdoc[] javadocs = new JSdoc[size];
-			Iterator iterator = unitComments.iterator();
-			for (int i=0; i<size; i++) {
-				Comment comment = (Comment) iterator.next();
-				assertEquals("Expect javadoc for comment: "+comment, ASTNode.JSDOC, comment.getNodeType());
-				javadocs[i] = (JSdoc) comment;
-			}
-
-			// Verify member type declaration start
-			ASTNode node = getASTNode(compilUnit, 0, 0);
-			assertEquals("Expected type declaration for node: "+node, ASTNode.TYPE_DECLARATION, node.getNodeType());
-			TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-			int javadocStart = javadocs[0].getStartPosition();
-			assertEquals("Invalid start position for TypeDeclaration: "+typeDeclaration, typeDeclaration.getStartPosition(), javadocStart);
-
-			// Verify field declaration start
-			node = getASTNode(compilUnit, 0, 1);
-			assertEquals("Expected field declaration for node: "+node, ASTNode.FIELD_DECLARATION, node.getNodeType());
-			FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-			javadocStart = javadocs[1].getStartPosition();
-			assertEquals("Invalid start position for FieldDeclaration: "+fieldDeclaration, fieldDeclaration.getStartPosition(), javadocStart);
-
-			// Verify method declaration start
-			node = getASTNode(compilUnit, 0, 2);
-			assertEquals("Expected method declaration for node: "+node, ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			javadocStart = javadocs[2].getStartPosition();
-			assertEquals("Invalid start position for FunctionDeclaration: "+methodDeclaration, methodDeclaration.getStartPosition(), javadocStart);
-
-			// Verify local type declaration start
-			node = getASTNode(compilUnit, 0, 2, 0);
-			assertEquals("Expected type declaration for node: "+node, ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType());
-			typeDeclaration = (TypeDeclaration) ((TypeDeclarationStatement) node).getDeclaration();
-			javadocStart = javadocs[3].getStartPosition();
-			assertEquals("Invalid start position for TypeDeclaration: "+typeDeclaration, typeDeclaration.getStartPosition(), javadocStart);
-
-			// Verify field declaration start
-			List bodyDeclarations = typeDeclaration.bodyDeclarations();
-			node = (ASTNode) bodyDeclarations.get(0);
-			assertEquals("Expected field declaration for node: "+node, ASTNode.FIELD_DECLARATION, node.getNodeType());
-			fieldDeclaration = (FieldDeclaration) node;
-			javadocStart = javadocs[4].getStartPosition();
-			assertEquals("Invalid start position for FieldDeclaration: "+fieldDeclaration, fieldDeclaration.getStartPosition(), javadocStart);
-
-			// Verify method declaration start
-			node = (ASTNode) bodyDeclarations.get(1);
-			assertEquals("Expected method declaration for node: "+node, ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			methodDeclaration = (FunctionDeclaration) node;
-			javadocStart = javadocs[5].getStartPosition();
-			assertEquals("Invalid start position for FunctionDeclaration: "+methodDeclaration, methodDeclaration.getStartPosition(), javadocStart);
-		}
-	}
-
-	/**
-	 * @bug 103304: [Javadoc] Wrong reference proposal for inner classes.
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=103304"
-	 */
-	public void testBug103304() throws JavaScriptModelException {
-		this.packageBinding = false; // do NOT verify that qualification only can be package name
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b103304/Test.js",
-			"package javadoc.b103304;\n" + 
-			"interface IAFAState {\n" + 
-			"    public class ValidationException extends Exception {\n" + 
-			"        public ValidationException(String variableName, IAFAState subformula) {\n" + 
-			"            super(\"Variable \'\"+variableName+\"\' may be unbound in \'\"+subformula+\"\'\");\n" + 
-			"        }\n" + 
-			"    }\n" + 
-			"}\n" +
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see IAFAState.ValidationException#IAFAState.ValidationException(String, IAFAState)\n" + 
-			"	 */\n" + 
-			"	IAFAState.ValidationException valid;\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		verifyWorkingCopiesComments();
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify comment type
-			Iterator unitComments = compilUnit.getCommentList().iterator();
-			while (unitComments.hasNext()) {
-				Comment comment = (Comment) unitComments.next();
-				assertEquals("Comment should be javadoc", comment.getNodeType(), ASTNode.JSDOC);
-				JSdoc javadoc = (JSdoc) comment;
-
-				// Verify that there's always a method reference in tags
-				List tags = javadoc.tags();
-				int size = tags.size();
-				for (int i=0; i<size; i++) {
-					TagElement tag = (TagElement) javadoc.tags().get(i);				
-					assertEquals("Invalid number of fragment for see reference: "+tag, 1, tag.fragments().size());
-					ASTNode node = (ASTNode) tag.fragments().get(0);
-					assertEquals("Invalid kind of name reference for tag element: "+tag, ASTNode.FUNCTION_REF, node.getNodeType());
-				}
-			}
-		}
-	}
-
-	/**
-	 * Bug 106581: [javadoc] null type binding for parameter in javadoc
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=106581"
-	 */
-	public void testBug106581() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b106581/A.js",
-			"package javadoc.b106581;\n" + 
-			"public class A {\n" + 
-			"    /**\n" + 
-			"     * @param x\n" + 
-			"     */ \n" + 
-			"     public void foo(int x) {},\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = verifyComments(workingCopies[0]);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Get comment
-			List unitComments = compilUnit.getCommentList();
-			assertEquals("Wrong number of comments", 1, unitComments.size());
-			Comment comment = (Comment) unitComments.get(0);
-			assertEquals("Comment should be javadoc", comment.getNodeType(), ASTNode.JSDOC);
-
-			// Get local variable declaration
-			JSdoc docComment = (JSdoc) comment;
-			TagElement tag = (TagElement) docComment.tags().get(0);
-			assertEquals("Invalid number of fragment for tag: "+tag, 1, tag.fragments().size());
-			ASTNode node = (ASTNode) tag.fragments().get(0);
-			assertEquals("Invalid kind of name reference for tag element: "+tag, ASTNode.SIMPLE_NAME, node.getNodeType());
-			SimpleName simpleName = (SimpleName) node;
-			assertNotNull("We should have a type binding for simple name: "+simpleName, simpleName.resolveTypeBinding());
-		}
-	}
-
-	/**
-	 * Bug 108622: [javadoc][dom] ASTNode not including javadoc
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=108622"
-	 */
-	public void testBug108622() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b108622/Test.js",
-			"package javadoc.b108622;\n" + 
-			"/**\n" + 
-			" * \n" + 
-			" */\n" + 
-			"public abstract class Test {\n" + 
-			"\n" + 
-			"	/**\n" + 
-			"	 * \n" + 
-			"	 */\n" + 
-			"	public abstract Zork getFoo();\n" + 
-			"\n" + 
-			"	/**\n" + 
-			"	 * \n" + 
-			"	 */\n" + 
-			"	public abstract void setFoo(Zork dept);\n" + 
-			"\n" + 
-			"}"
-			);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify first method
-			ASTNode node = getASTNode(compilUnit, 0, 0);
-			assertEquals("Invalid type for node: "+node, ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			assertEquals("Invalid method name", "getFoo", methodDeclaration.getName().toString());
-			JSdoc methodJavadoc = methodDeclaration.getJavadoc();
-			assertNotNull("FunctionDeclaration have a javadoc comment", methodJavadoc);
-			int javadocStart = methodJavadoc.getStartPosition();
-			assertEquals("Method declaration should include javadoc comment", methodDeclaration.getStartPosition(), javadocStart);
-			// Verify second method
-			node = getASTNode(compilUnit, 0, 1);
-			assertEquals("Invalid type for node: "+node, ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			methodDeclaration = (FunctionDeclaration) node;
-			assertEquals("Invalid method name", "setFoo", methodDeclaration.getName().toString());
-			methodJavadoc = methodDeclaration.getJavadoc();
-			assertNotNull("FunctionDeclaration have a javadoc comment", methodJavadoc);
-			javadocStart = methodJavadoc.getStartPosition();
-			assertEquals("Method declaration should include javadoc comment", methodDeclaration.getStartPosition(), javadocStart);
-		}
-	}
-
-	/**
-	 * Bug 113108: [API][comments] JavaScriptUnit.getNodeComments(ASTNode)
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=113108"
-	 */
-	public void testBug113108a() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b113108/Test.js",
-			"package javadoc.b113108;\n" + 
-			"/** C0 */\n" +
-			"public class Test {\n" + 
-			"	/* C1 */\n" + 
-			"	/** C2 */\n" + 
-			"	// C3\n" + 
-			"	public void foo() {\n" + 
-			"		/* C4 */\n" + 
-			"	}\n" + 
-			"	/* C5 */\n" + 
-			"	/** C6 */\n" + 
-			"	// C7\n" + 
-			"}"
-			);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		verifyWorkingCopiesComments();
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify  method javadoc
-			ASTNode node = getASTNode(compilUnit, 0, 0);
-			assertEquals("Invalid type for node: "+node, ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			assertEquals("Invalid method name", "foo", methodDeclaration.getName().toString());
-			JSdoc methodJavadoc = methodDeclaration.getJavadoc();
-			assertNotNull("FunctionDeclaration have a javadoc comment", methodJavadoc);
-			int javadocStart = methodJavadoc.getStartPosition();
-			assertEquals("Method declaration should include javadoc comment", methodDeclaration.getStartPosition(), javadocStart);
-			// Verify method first leading and last trailing comment
-			int index = compilUnit.firstLeadingCommentIndex(methodDeclaration);
-			assertEquals("Invalid first leading comment for "+methodDeclaration, 1, index);
-			index = compilUnit.lastTrailingCommentIndex(methodDeclaration);
-			assertEquals("Invalid last trailing comment for "+methodDeclaration, 7, index);
-		}
-	}
-	public void testBug113108b() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b113108/Test.js",
-			"package javadoc.b113108;\n" + 
-			"/** C0 */\n" +
-			"public class Test {\n" + 
-			"	/** C1 */\n" + 
-			"	// C2\n" + 
-			"	/* C3 */\n" + 
-			"	public void foo() {\n" + 
-			"		// C4\n" + 
-			"	}\n" + 
-			"	/** C5 */\n" + 
-			"	/// C6\n" + 
-			"	/* C7 */\n" + 
-			"}"
-			);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		verifyWorkingCopiesComments();
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify  method javadoc
-			ASTNode node = getASTNode(compilUnit, 0, 0);
-			assertEquals("Invalid type for node: "+node, ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			assertEquals("Invalid method name", "foo", methodDeclaration.getName().toString());
-			JSdoc methodJavadoc = methodDeclaration.getJavadoc();
-			assertNotNull("FunctionDeclaration have a javadoc comment", methodJavadoc);
-			int javadocStart = methodJavadoc.getStartPosition();
-			assertEquals("Method declaration should include javadoc comment", methodDeclaration.getStartPosition(), javadocStart);
-			// Verify method first leading and last trailing comment
-			int index = compilUnit.firstLeadingCommentIndex(methodDeclaration);
-			assertEquals("Invalid first leading comment for "+methodDeclaration, 1, index);
-			index = compilUnit.lastTrailingCommentIndex(methodDeclaration);
-			assertEquals("Invalid last trailing comment for "+methodDeclaration, 7, index);
-		}
-	}
-	public void testBug113108c() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b113108/Test.js",
-			"package javadoc.b113108;\n" + 
-			"/** C0 */\n" +
-			"public class Test {\n" + 
-			"	// C1\n" + 
-			"	/* C2 */\n" + 
-			"	/** C3 */\n" + 
-			"	public void foo() {\n" + 
-			"		/** C4 */\n" + 
-			"	}\n" + 
-			"	// C5\n" + 
-			"	/* C6 */\n" + 
-			"	/** C7 */\n" + 
-			"}"
-			);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		verifyWorkingCopiesComments();
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify  method javadoc
-			ASTNode node = getASTNode(compilUnit, 0, 0);
-			assertEquals("Invalid type for node: "+node, ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			assertEquals("Invalid method name", "foo", methodDeclaration.getName().toString());
-			JSdoc methodJavadoc = methodDeclaration.getJavadoc();
-			assertNotNull("FunctionDeclaration have a javadoc comment", methodJavadoc);
-			int javadocStart = methodJavadoc.getStartPosition();
-			assertEquals("Method declaration should include javadoc comment", methodDeclaration.getStartPosition(), javadocStart);
-			// Verify method first leading and last trailing comment
-			int index = compilUnit.firstLeadingCommentIndex(methodDeclaration);
-			assertEquals("Invalid first leading comment for "+methodDeclaration, 1, index);
-			index = compilUnit.lastTrailingCommentIndex(methodDeclaration);
-			assertEquals("Invalid last trailing comment for "+methodDeclaration, 7, index);
-		}
-	}
-
-	/**
-	 * @bug 125676: [javadoc] @category should not read beyond end of line
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=125676"
-	 */
-	public void testBug125676() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[3];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b125676/A.js",
-			"package javadoc.b125676;\n" + 
-			"public class A {\n" + 
-			"        /**\n" + 
-			"         * @category \n" + 
-			"         * When searching for field matches, it will exclusively find read accesses, as\n" + 
-			"         * opposed to write accesses. Note that some expressions are considered both\n" + 
-			"         * as field read/write accesses: for example, x++; x+= 1;\n" + 
-			"         * \n" + 
-			"         * @since 2.0\n" + 
-			"         */\n" + 
-			"        int READ_ACCESSES = 4;\n" + 
-			"}\n"
-		);
-		workingCopies[1] = getWorkingCopy("/Converter15/src/javadoc/b125676/B.js",
-			"package javadoc.b125676;\n" + 
-			"public class B {\n" + 
-			"        /**\n" + 
-			"         * @category test\n" + 
-			"         */\n" + 
-			"        int field1;\n" + 
-			"        /**\n" + 
-			"         * @category     test\n" + 
-			"         */\n" + 
-			"        int field2;\n" + 
-			"        /**\n" + 
-			"         * @category test    \n" + 
-			"         */\n" + 
-			"        int field3;\n" + 
-			"        /**\n" + 
-			"         * @category    test    \n" + 
-			"         */\n" + 
-			"        int field4;\n" + 
-			"        /** @category test */\n" + 
-			"        int field5;\n" + 
-			"\n" + 
-			"}\n"
-		);
-		workingCopies[2] = getWorkingCopy("/Converter15/src/javadoc/b125676/C.js",
-			"package javadoc.b125676;\n" + 
-			"public class C { \n" + 
-			"        /**\n" + 
-			"         * @category test mutli ids\n" + 
-			"         */\n" + 
-			"        int field1;\n" + 
-			"        /**\n" + 
-			"         * @category    test    mutli    ids   \n" + 
-			"         */\n" + 
-			"        int field2;\n" + 
-			"        /** @category    test    mutli    ids*/\n" + 
-			"        int field3;\n" + 
-			"}\n"
-		);
-		verifyWorkingCopiesComments();
-	}
-
-	/**
-	 * @bug 125903: [javadoc] Treat whitespace in javadoc tags as invalid tags
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=125903"
-	 */
-	public void testBug125903() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		astLevel = AST.JLS3;
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b125903/Test.js",
-			"package javadoc.b125903;\n" + 
-			"/**\n" + 
-			" * {@ link java.lang.String}\n" + 
-			" * @ since 2.1\n" + 
-			" */\n" + 
-			"public class Test {\n" + 
-			"\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		verifyWorkingCopiesComments();
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify  method javadoc
-			ASTNode node = getASTNode(compilUnit, 0);
-			assertEquals("Invalid type for node: "+node, ASTNode.TYPE_DECLARATION, node.getNodeType());
-			TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-			JSdoc javadoc = typeDeclaration.getJavadoc();
-			assertNotNull("TypeDeclaration should have a javadoc comment", javadoc);
-			List tags = javadoc.tags();
-			TagElement tag = (TagElement) tags.get(0);
-			tag = (TagElement) tag.fragments().get(0);
-			assertEquals("Tag name should be empty", tag.getTagName(), "@");
-			tag = (TagElement) tags.get(1);
-			assertEquals("Tag name should be empty", tag.getTagName(), "@");
-		}
-	}
-
-	/**
-	 * @bug 130752: [comments] first BlockComment parsed as LineComment
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=130752"
-	 */
-	public void testBug130752() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b130752/Test.js",
-			"/* Ceci n'est pas\n" + 
-			" * une ligne. */\n" + 
-			"package javadoc.b130752;\n" + 
-			"public class Test {\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		verifyWorkingCopiesComments();
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify comment type
-			List unitComments = compilUnit.getCommentList();
-			assertEquals("Wrong number of comments", 1, unitComments.size());
-			Comment comment = (Comment) unitComments.get(0);
-			assertEquals("Comment should be javadoc", comment.getNodeType(), ASTNode.BLOCK_COMMENT);
-		}
-	}
-	public void testBug130752b() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b130752/Test.js",
-			"// Line comment\n" + 
-			"package javadoc.b130752;\n" + 
-			"public class Test {\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		verifyWorkingCopiesComments();
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify comment type
-			List unitComments = compilUnit.getCommentList();
-			assertEquals("Wrong number of comments", 1, unitComments.size());
-			Comment comment = (Comment) unitComments.get(0);
-			assertEquals("Comment should be javadoc", comment.getNodeType(), ASTNode.LINE_COMMENT);
-		}
-	}
-	public void testBug130752c() throws JavaScriptModelException {
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b130752/Test.js",
-			"/** Javadoc comment */\n" + 
-			"package javadoc.b130752;\n" + 
-			"public class Test {\n" + 
-			"}\n"
-		);
-		JavaScriptUnit compilUnit = (JavaScriptUnit) runConversion(workingCopies[0], true);
-		verifyWorkingCopiesComments();
-		if (docCommentSupport.equals(JavaScriptCore.ENABLED)) {
-			// Verify comment type
-			List unitComments = compilUnit.getCommentList();
-			assertEquals("Wrong number of comments", 1, unitComments.size());
-			Comment comment = (Comment) unitComments.get(0);
-			assertEquals("Comment should be javadoc", comment.getNodeType(), ASTNode.JSDOC);
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterRecoveryTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterRecoveryTest.java
deleted file mode 100644
index 2fbd5ac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterRecoveryTest.java
+++ /dev/null
@@ -1,923 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.List;
-
-import junit.framework.Test;
-
-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.ArrayInitializer;
-import org.eclipse.wst.jsdt.core.dom.Assignment;
-import org.eclipse.wst.jsdt.core.dom.Block;
-import org.eclipse.wst.jsdt.core.dom.EmptyStatement;
-import org.eclipse.wst.jsdt.core.dom.Expression;
-import org.eclipse.wst.jsdt.core.dom.ExpressionStatement;
-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.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.NumberLiteral;
-import org.eclipse.wst.jsdt.core.dom.SimpleName;
-import org.eclipse.wst.jsdt.core.dom.Statement;
-import org.eclipse.wst.jsdt.core.dom.StringLiteral;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationExpression;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement;
-
-public class ASTConverterRecoveryTest extends ConverterTestSetup {
-	public ASTConverterRecoveryTest(String name) {
-		super(name);
-	}
-
-	static {
-//		TESTS_NAMES = new String[] {"test0003"};
-//		TESTS_NUMBERS =  new int[] { 624 };
-	}
-	public static Test suite() {
-		return buildModelTestSuite(ASTConverterRecoveryTest.class);
-	}
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		this.ast = AST.newAST(AST.JLS3);
-	}
-	
-	public void test0001() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    bar(0)\n"+
-			"	    baz(1);\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    bar(0);\n" + 
-			"    baz(1);\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 2, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "bar(0)", source); //$NON-NLS-1$
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		checkSourceRange(methodInvocation, "bar(0)", source); //$NON-NLS-1$
-		List list = methodInvocation.arguments();
-		assertTrue("Parameter list is empty", list.size() == 1); //$NON-NLS-1$
-		Expression parameter = (Expression) list.get(0);
-		assertTrue("Not a number", parameter instanceof NumberLiteral); //$NON-NLS-1$
-		ITypeBinding typeBinding = parameter.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(parameter, "0", source); //$NON-NLS-1$
-		Statement statement2 = (Statement) statements.get(1);
-		assertTrue("Not an expression statement", statement2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement2 = (ExpressionStatement) statement2;
-		checkSourceRange(expressionStatement2, "baz(1);", source); //$NON-NLS-1$
-		Expression expression2 = expressionStatement2.getExpression();
-		assertTrue("Not a method invocation", expression2.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) expression2;
-		checkSourceRange(methodInvocation2, "baz(1)", source); //$NON-NLS-1$
-		List list2 = methodInvocation2.arguments();
-		assertTrue("Parameter list is empty", list2.size() == 1); //$NON-NLS-1$
-		Expression parameter2 = (Expression) list2.get(0);
-		assertTrue("Not a number", parameter2 instanceof NumberLiteral); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = parameter2.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding2); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(parameter2, "1", source); //$NON-NLS-1$
-	}
-	
-	public void test0002() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    baz(0);\n"+
-			"	    bar(1,\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    baz(0);\n" + 
-			"    bar(1);\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 2, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "baz(0);", source); //$NON-NLS-1$
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		checkSourceRange(methodInvocation, "baz(0)", source); //$NON-NLS-1$
-		List list = methodInvocation.arguments();
-		assertTrue("Parameter list is empty", list.size() == 1); //$NON-NLS-1$
-		Expression parameter = (Expression) list.get(0);
-		assertTrue("Not a number", parameter instanceof NumberLiteral); //$NON-NLS-1$
-		ITypeBinding typeBinding = parameter.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(parameter, "0", source); //$NON-NLS-1$
-		Statement statement2 = (Statement) statements.get(1);
-		assertTrue("Not an expression statement", statement2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement2 = (ExpressionStatement) statement2;
-		checkSourceRange(expressionStatement2, "bar(1", source); //$NON-NLS-1$
-		Expression expression2 = expressionStatement2.getExpression();
-		assertTrue("Not a method invocation", expression2.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) expression2;
-		checkSourceRange(methodInvocation2, "bar(1", source); //$NON-NLS-1$
-		List list2 = methodInvocation2.arguments();
-		assertTrue("Parameter list is empty", list2.size() == 1); //$NON-NLS-1$
-		Expression parameter2 = (Expression) list2.get(0);
-		assertTrue("Not a number", parameter2 instanceof NumberLiteral); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = parameter2.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding2); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(parameter2, "1", source); //$NON-NLS-1$
-	}
-	
-	public void test0003() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    baz(0);\n"+
-			"	    bar(1,\n"+
-			"	    foo(3);\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    baz(0);\n" + 
-			"    bar(1,foo(3));\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 2, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "baz(0);", source); //$NON-NLS-1$
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		checkSourceRange(methodInvocation, "baz(0)", source); //$NON-NLS-1$
-		List list = methodInvocation.arguments();
-		assertTrue("Parameter list is empty", list.size() == 1); //$NON-NLS-1$
-		Expression parameter = (Expression) list.get(0);
-		assertTrue("Not a number", parameter instanceof NumberLiteral); //$NON-NLS-1$
-		ITypeBinding typeBinding = parameter.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(parameter, "0", source); //$NON-NLS-1$
-		Statement statement2 = (Statement) statements.get(1);
-		assertTrue("Not an expression statement", statement2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement2 = (ExpressionStatement) statement2;
-		checkSourceRange(expressionStatement2, "bar(1,\n\t    foo(3);", source); //$NON-NLS-1$
-		Expression expression2 = expressionStatement2.getExpression();
-		assertTrue("Not a method invocation", expression2.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) expression2;
-		checkSourceRange(methodInvocation2, "bar(1,\n\t    foo(3)", source); //$NON-NLS-1$
-		List list2 = methodInvocation2.arguments();
-		assertTrue("Parameter list is empty", list2.size() == 2); //$NON-NLS-1$
-		Expression parameter2 = (Expression) list2.get(0);
-		assertTrue("Not a Number", parameter2 instanceof NumberLiteral); //$NON-NLS-1$
-		parameter2 = (Expression) list2.get(1);
-		assertTrue("Not a method invocation", parameter2 instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation3 = (FunctionInvocation) parameter2;
-		checkSourceRange(methodInvocation3, "foo(3)", source); //$NON-NLS-1$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124296
-	public void test0004() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    int var= 123\n"+
-			"	    System.out.println(var);\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    int var=123;\n" + 
-			"    System.out.println(var);\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 2, statements.size()); //$NON-NLS-1$
-		Statement statement1 = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement1.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement1;
-		checkSourceRange(variableDeclarationStatement, "int var= 123", source); //$NON-NLS-1$
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment)fragments.get(0);
-		checkSourceRange(variableDeclarationFragment, "var= 123", source); //$NON-NLS-1$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126148
-	public void test0005() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    String[] s =  {\"\",,,};\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    String[] s={\"\",$missing$};\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement1 = (Statement) statements.get(0);
-		assertTrue("Not an expression variable declaration statement", statement1.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement1;
-		checkSourceRange(variableDeclarationStatement, "String[] s =  {\"\",,,};", source); //$NON-NLS-1$
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment)fragments.get(0);
-		checkSourceRange(variableDeclarationFragment, "s =  {\"\",,,}", source); //$NON-NLS-1$
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an array initializer", expression.getNodeType() == ASTNode.ARRAY_INITIALIZER); //$NON-NLS-1$
-		ArrayInitializer arrayInitializer = (ArrayInitializer) expression;
-		checkSourceRange(arrayInitializer, "{\"\",,,}", source); //$NON-NLS-1$
-		List expressions = arrayInitializer.expressions();
-		assertEquals("wrong size", 2, expressions.size()); //$NON-NLS-1$
-		Expression expression1 = (Expression) expressions.get(0);
-		assertTrue("Not a string literal", expression1.getNodeType() == ASTNode.STRING_LITERAL); //$NON-NLS-1$
-		StringLiteral stringLiteral = (StringLiteral) expression1;
-		checkSourceRange(stringLiteral, "\"\"", source); //$NON-NLS-1$
-		Expression expression2 = (Expression) expressions.get(1);
-		assertTrue("Not a string literal", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		checkSourceRange(simpleName, ",", source); //$NON-NLS-1$
-		
-	}
-		
-	// check RECOVERED flag (insert tokens)
-	public void test0006() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    bar()\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    bar();\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "bar()", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (expressionStatement.getFlags() & ASTNode.RECOVERED) != 0);
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation)expression;
-		checkSourceRange(methodInvocation, "bar()", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (methodInvocation.getFlags() & ASTNode.RECOVERED) == 0);
-	}
-	
-	// check RECOVERED flag (insert tokens)
-	public void test0007() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    bar(baz()\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    bar(baz());\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "bar(baz()", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (expressionStatement.getFlags() & ASTNode.RECOVERED) != 0);
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation)expression;
-		checkSourceRange(methodInvocation, "bar(baz()", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (methodInvocation.getFlags() & ASTNode.RECOVERED) != 0);
-		List arguments = methodInvocation.arguments();
-		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-		Expression argument = (Expression) arguments.get(0);
-		assertTrue("Not a method invocation", argument.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) argument;
-		checkSourceRange(methodInvocation2, "baz()", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (methodInvocation2.getFlags() & ASTNode.RECOVERED) == 0);
-	}
-	
-	// check RECOVERED flag (insert tokens)
-	public void test0008() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    for(int i\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    for (int i; ; )     ;\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Not flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) != 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not a for statement", statement.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) statement;
-		checkSourceRange(forStatement, "for(int i", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (forStatement.getFlags() & ASTNode.RECOVERED) != 0);
-		List initializers = forStatement.initializers();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Expression expression = (Expression)initializers.get(0);
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.VARIABLE_DECLARATION_EXPRESSION); //$NON-NLS-1$
-		VariableDeclarationExpression variableDeclarationExpression = (VariableDeclarationExpression)expression;
-		checkSourceRange(variableDeclarationExpression, "int i", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (variableDeclarationExpression.getFlags() & ASTNode.RECOVERED) != 0);
-		List fragments = variableDeclarationExpression.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment)fragments.get(0);
-		checkSourceRange(fragment, "i", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (fragment.getFlags() & ASTNode.RECOVERED) != 0);
-		SimpleName name = fragment.getName();
-		checkSourceRange(name, "i", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (name.getFlags() & ASTNode.RECOVERED) == 0);
-		Statement statement2 = forStatement.getBody();
-		assertTrue("Not an empty statement", statement2.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		EmptyStatement emptyStatement = (EmptyStatement)statement2;
-		checkSourceRange(emptyStatement, "i", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (emptyStatement.getFlags() & ASTNode.RECOVERED) != 0);
-	}
-	
-	// check RECOVERED flag (remove tokens)
-	public void test0009() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    bar(baz());#\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    bar(baz());\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Not flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) != 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "bar(baz());", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (expressionStatement.getFlags() & ASTNode.RECOVERED) == 0);
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation)expression;
-		checkSourceRange(methodInvocation, "bar(baz())", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (methodInvocation.getFlags() & ASTNode.RECOVERED) == 0);
-		List arguments = methodInvocation.arguments();
-		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-		Expression argument = (Expression) arguments.get(0);
-		assertTrue("Not a method invocation", argument.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) argument;
-		checkSourceRange(methodInvocation2, "baz()", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (methodInvocation2.getFlags() & ASTNode.RECOVERED) == 0);
-	}
-	
-	// check RECOVERED flag (remove tokens)
-	public void test0010() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    bar(baz())#;\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    bar(baz());\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "bar(baz())#;", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (expressionStatement.getFlags() & ASTNode.RECOVERED) != 0);
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation)expression;
-		checkSourceRange(methodInvocation, "bar(baz())", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (methodInvocation.getFlags() & ASTNode.RECOVERED) == 0);
-		List arguments = methodInvocation.arguments();
-		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-		Expression argument = (Expression) arguments.get(0);
-		assertTrue("Not a method invocation", argument.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) argument;
-		checkSourceRange(methodInvocation2, "baz()", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (methodInvocation2.getFlags() & ASTNode.RECOVERED) == 0);
-	}
-	
-	// check RECOVERED flag (remove tokens)
-	public void test0011() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    bar(baz()#);\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    bar(baz());\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "bar(baz()#);", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (expressionStatement.getFlags() & ASTNode.RECOVERED) == 0);
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation)expression;
-		checkSourceRange(methodInvocation, "bar(baz()#)", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (methodInvocation.getFlags() & ASTNode.RECOVERED) != 0);
-		List arguments = methodInvocation.arguments();
-		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-		Expression argument = (Expression) arguments.get(0);
-		assertTrue("Not a method invocation", argument.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) argument;
-		checkSourceRange(methodInvocation2, "baz()", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (methodInvocation2.getFlags() & ASTNode.RECOVERED) == 0);
-	}
-	
-	// check RECOVERED flag (insert tokens)
-	public void test0012() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    bar()#\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    bar();\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "bar()#", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (expressionStatement.getFlags() & ASTNode.RECOVERED) != 0);
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation)expression;
-		checkSourceRange(methodInvocation, "bar()", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (methodInvocation.getFlags() & ASTNode.RECOVERED) == 0);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129555
-	public void test0013() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    a[0]\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    a[0]=$missing$;\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) != 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not an expression statement", statement.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) statement;
-		checkSourceRange(expressionStatement, "a[0]", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (expressionStatement.getFlags() & ASTNode.RECOVERED) != 0);
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not an assigment", expression.getNodeType() == ASTNode.ASSIGNMENT); //$NON-NLS-1$
-		Assignment assignment = (Assignment)expression;
-		checkSourceRange(assignment, "a[0]", source); //$NON-NLS-1$
-		assertTrue("Flag as RECOVERED", (assignment.getFlags() & ASTNode.RECOVERED) != 0);
-		Expression rhs = assignment.getRightHandSide();
-		assertTrue("Not a simple name", rhs.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) rhs;
-		assertEquals("Not length isn't correct", 0, simpleName.getLength()); //$NON-NLS-1$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=129909
-	public void test0014() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    int[] = a[0];\n"+
-			"	}\n"+
-			"}\n");
-		
-		char[] source = this.workingCopies[0].getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    int[] $missing$=a[0];\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not a variable declaration statement", statement.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement;
-		checkSourceRange(variableDeclarationStatement, "int[] = a[0];", source); //$NON-NLS-1$
-		assertTrue("Not flag as RECOVERED", (variableDeclarationStatement.getFlags() & ASTNode.RECOVERED) != 0);
-		List fragments = variableDeclarationStatement.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		SimpleName simpleName = fragment.getName();
-		assertEquals("Not length isn't correct", 0, simpleName.getLength()); //$NON-NLS-1$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=143212
-	public void test0015() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    assert 0 == 0 : a[0;\n"+
-			"	}\n"+
-			"}\n");
-		
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    assert 0 == 0 : a[0];\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=143212
-	public void test0016() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    assert 0 == 0 : foo(;\n"+
-			"	}\n"+
-			"}\n");
-		
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    assert 0 == 0 : foo();\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=143212
-	public void test0017() throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Converter/src/test/X.js",
-			"package test;\n"+
-			"\n"+
-			"public class X {\n"+
-			"	void foo() {\n"+
-			"	    assert 0 == 0 : (\"aa\";\n"+
-			"	}\n"+
-			"}\n");
-		
-		ASTNode result = runConversion(AST.JLS3, this.workingCopies[0], true, true);
-		
-		assertASTNodeEquals(
-			"package test;\n" + 
-			"public class X {\n" + 
-			"  void foo(){\n" + 
-			"    assert 0 == 0 : (\"aa\");\n" + 
-			"  }\n" + 
-			"}\n",
-			result);
-		
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Flag as RECOVERED", (methodDeclaration.getFlags() & ASTNode.RECOVERED) == 0);
-		Block block = methodDeclaration.getBody();
-		assertTrue("Flag as RECOVERED", (block.getFlags() & ASTNode.RECOVERED) == 0);
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTest.java
deleted file mode 100644
index 9b97b0b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTest.java
+++ /dev/null
@@ -1,8795 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.IField;
-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.ASTMatcher;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-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.BooleanLiteral;
-import org.eclipse.wst.jsdt.core.dom.BreakStatement;
-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.ContinueStatement;
-import org.eclipse.wst.jsdt.core.dom.DoStatement;
-import org.eclipse.wst.jsdt.core.dom.EmptyStatement;
-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.ForStatement;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionInvocation;
-import org.eclipse.wst.jsdt.core.dom.IBinding;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.IVariableBinding;
-import org.eclipse.wst.jsdt.core.dom.IfStatement;
-import org.eclipse.wst.jsdt.core.dom.InfixExpression;
-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.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.ParenthesizedExpression;
-import org.eclipse.wst.jsdt.core.dom.PostfixExpression;
-import org.eclipse.wst.jsdt.core.dom.PrefixExpression;
-import org.eclipse.wst.jsdt.core.dom.QualifiedName;
-import org.eclipse.wst.jsdt.core.dom.ReturnStatement;
-import org.eclipse.wst.jsdt.core.dom.SimpleName;
-import org.eclipse.wst.jsdt.core.dom.SimpleType;
-import org.eclipse.wst.jsdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.wst.jsdt.core.dom.Statement;
-import org.eclipse.wst.jsdt.core.dom.StringLiteral;
-import org.eclipse.wst.jsdt.core.dom.SwitchCase;
-import org.eclipse.wst.jsdt.core.dom.SwitchStatement;
-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.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;
-
-public class ASTConverterTest extends ConverterTestSetup {
-	
-	/** @deprecated using deprecated code */
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		this.ast = AST.newAST(AST.JLS2);
-	}
-
-	public ASTConverterTest(String name) {
-		super(name);
-	}
-
-	static {
-//		TESTS_NUMBERS = new int[] { 305 };
-	}
-	public static Test suite() {
-		return buildModelTestSuite(ASTConverterTest.class);
-	}
-
-	public void test00() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0005", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ExpressionStatement statement = (ExpressionStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ASTNode expression=statement.getExpression();
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		ArrayAccess arrayAccess = this.ast.newArrayAccess();
-		arrayAccess.setArray(this.ast.newSimpleName("args"));
-		arrayAccess.setIndex(this.ast.newNumberLiteral("5"));
-		methodInvocation.setExpression(arrayAccess);
-		
-		NumberLiteral literal = this.ast.newNumberLiteral("1");
-		methodInvocation.arguments().add(literal);
-		
-		
-		assertTrue("Both AST trees should be identical", methodInvocation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "args[5](1)", source); //$NON-NLS-1$
-	}
-	
-	/** @deprecated using deprecated code */
-	public void test0001() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0001", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		
-		// check that we have the right tree
-		JavaScriptUnit unit = this.ast.newJavaScriptUnit();
-//		PackageDeclaration packageDeclaration = this.ast.newPackageDeclaration();
-//		packageDeclaration.setName(this.ast.newSimpleName("test0001"));//$NON-NLS-1$
-//		unit.setPackage(packageDeclaration);
-//		ImportDeclaration importDeclaration = this.ast.newImportDeclaration();
-//		QualifiedName name = 
-//			this.ast.newQualifiedName(
-//				this.ast.newSimpleName("java"),//$NON-NLS-1$
-//				this.ast.newSimpleName("util"));//$NON-NLS-1$
-//		importDeclaration.setName(name);
-//		importDeclaration.setOnDemand(true);
-//		unit.imports().add(importDeclaration);
-//		TypeDeclaration type = this.ast.newTypeDeclaration();
-//		type.setInterface(false);
-//		type.setModifiers(Modifier.PUBLIC);
-//		type.setName(this.ast.newSimpleName("Test"));//$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = this.ast.newFunctionDeclaration();
-		methodDeclaration.setConstructor(false);
-//		methodDeclaration.setModifiers(Modifier.PUBLIC | Modifier.STATIC);
-		methodDeclaration.setName(this.ast.newSimpleName("main"));//$NON-NLS-1$
-//		methodDeclaration.setReturnType(this.ast.newPrimitiveType(PrimitiveType.VOID));
-		SingleVariableDeclaration variableDeclaration = this.ast.newSingleVariableDeclaration();
-//		variableDeclaration.setModifiers(Modifier.NONE);
-//		variableDeclaration.setType(this.ast.newArrayType(this.ast.newSimpleType(this.ast.newSimpleName("String"))));//$NON-NLS-1$
-		variableDeclaration.setName(this.ast.newSimpleName("args"));//$NON-NLS-1$
-		methodDeclaration.parameters().add(variableDeclaration);
-		org.eclipse.wst.jsdt.core.dom.Block block = this.ast.newBlock();
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		QualifiedName name = 
-			this.ast.newQualifiedName(
-				this.ast.newSimpleName("System"),//$NON-NLS-1$
-				this.ast.newSimpleName("out"));//$NON-NLS-1$
-		methodInvocation.setExpression(name);
-		methodInvocation.setName(this.ast.newSimpleName("println")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();
-		literal.setLiteralValue("Hello");//$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();
-		literal.setLiteralValue(" world");//$NON-NLS-1$
-		infixExpression.setRightOperand(literal);//$NON-NLS-1$
-		methodInvocation.arguments().add(infixExpression);
-		ExpressionStatement expressionStatement = this.ast.newExpressionStatement(methodInvocation);
-		block.statements().add(expressionStatement);
-		methodDeclaration.setBody(block);
-		unit.statements().add(methodDeclaration);
-		assertTrue("Both AST trees should be identical", result.subtreeMatch(new ASTMatcher(), unit));//$NON-NLS-1$
-		String expected =
-			"function main(args) {\n" + 
-			"	print(\"Hello\" + \" world\");\n" + 
-			"}" + 
-			"";
-		checkSourceRange(result, expected, source);
-	}
-	
-	/**
-	 * Test allocation expression: new Object() ==> ClassInstanceCreation
-	 * @deprecated using deprecated code
-	 */
-	public void test0002() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0002", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-		classInstanceCreation.setMember(this.ast.newSimpleName("Object")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new Object()", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new java.lang.Object() ==> ClassInstanceCreation
-	 * @deprecated using deprecated code
-	 */
-	public void test0003() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0003", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-		
-		FieldAccess expr = this.ast.newFieldAccess();
-		expr.setName(this.ast.newSimpleName("Object"));
-		
-		FieldAccess expr2 = this.ast.newFieldAccess();
-		expr2.setName(this.ast.newSimpleName("lang"));
-		expr2.setExpression(this.ast.newSimpleName("java"));
-		
-		expr.setExpression(expr2);
-
-		classInstanceCreation.setMember(expr);
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new java.lang.Object()", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new java.lang.Exception("ERROR") ==> ClassInstanceCreation
-	 * @deprecated using deprecated code
-	 */
-	public void test0004() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0004", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-
-		FieldAccess expr = this.ast.newFieldAccess();
-		expr.setName(this.ast.newSimpleName("Exception"));
-		
-		FieldAccess expr2 = this.ast.newFieldAccess();
-		expr2.setName(this.ast.newSimpleName("lang"));
-		expr2.setExpression(this.ast.newSimpleName("java"));
-		
-		expr.setExpression(expr2);
-
-		classInstanceCreation.setMember(expr);
-		StringLiteral literal = this.ast.newStringLiteral();
-		literal.setLiteralValue("ERROR"); //$NON-NLS-1$
-		classInstanceCreation.arguments().add(literal);
-		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "new java.lang.Exception(\"ERROR\")", source); //$NON-NLS-1$
-	}
-
-	public void test0005() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0005", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ExpressionStatement statement = (ExpressionStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ASTNode expression=statement.getExpression();
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		ArrayAccess arrayAccess = this.ast.newArrayAccess();
-		arrayAccess.setArray(this.ast.newSimpleName("args"));
-		arrayAccess.setIndex(this.ast.newNumberLiteral("5"));
-		methodInvocation.setExpression(arrayAccess);
-		
-		NumberLiteral literal = this.ast.newNumberLiteral("1");
-		methodInvocation.arguments().add(literal);
-		
-		
-		assertTrue("Both AST trees should be identical", methodInvocation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "args[5](1)", source); //$NON-NLS-1$
-	}
-	
-				
-//	/**
-//	 * Test allocation expression: new java.lang.Runnable() { public void run() {}} ==> ClassInstanceCreation
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0006() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0006", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-//		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-//		QualifiedName name = 
-//			this.ast.newQualifiedName(
-//				this.ast.newQualifiedName(
-//					this.ast.newSimpleName("java"), //$NON-NLS-1$
-//					this.ast.newSimpleName("lang")), //$NON-NLS-1$
-//				this.ast.newSimpleName("Runnable"));//$NON-NLS-1$
-//		classInstanceCreation.setName(name);
-//		FunctionDeclaration methodDeclaration = this.ast.newMethodDeclaration();
-//		methodDeclaration.setBody(this.ast.newBlock());
-//		methodDeclaration.setConstructor(false);
-//		methodDeclaration.setModifiers(Modifier.PUBLIC);
-//		methodDeclaration.setName(this.ast.newSimpleName("run"));//$NON-NLS-1$
-//		methodDeclaration.setReturnType(this.ast.newPrimitiveType(PrimitiveType.VOID));
-//		AnonymousClassDeclaration anonymousClassDeclaration = this.ast.newAnonymousClassDeclaration();
-//		anonymousClassDeclaration.bodyDeclarations().add(methodDeclaration);
-//		classInstanceCreation.setAnonymousClassDeclaration(anonymousClassDeclaration);
-//		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-//		checkSourceRange(expression, "new java.lang.Runnable() { public void run() {}}", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Test allocation expression: new Test().new D() ==> ClassInstanceCreation
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0007() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0007", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-//		ASTNode expression = (ASTNode) ((FunctionInvocation) expressionStatement.getExpression()).arguments().get(0);
-//		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreation = this.ast.newClassInstanceCreation();
-//		classInstanceCreation.setName(this.ast.newSimpleName("D")); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreationExpression = this.ast.newClassInstanceCreation();
-//		classInstanceCreationExpression.setName(this.ast.newSimpleName("Test")); //$NON-NLS-1$
-//		classInstanceCreation.setExpression(classInstanceCreationExpression);
-//		assertTrue("Both AST trees should be identical", classInstanceCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-//		checkSourceRange(expression, "new Test().new D()", source); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Test allocation expression: new int[] {1, 2, 3, 4} ==> ArrayCreation
-	 */
-	public void test0008() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0008", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ArrayInitializer arrayInitializer = this.ast.newArrayInitializer();
-		arrayInitializer.expressions().add(this.ast.newNumberLiteral("1"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(this.ast.newNumberLiteral("3"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(this.ast.newNumberLiteral("4"));//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", arrayInitializer.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "[1, 2, 3, 4]", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test allocation expression: new int[][] {{1}, {2}} ==> ArrayCreation
-	 */
-	public void test0009() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0009", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		ArrayInitializer arrayInitializer = this.ast.newArrayInitializer();
-		ArrayInitializer innerArrayInitializer = this.ast.newArrayInitializer();
-		innerArrayInitializer.expressions().add(this.ast.newNumberLiteral("1"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(innerArrayInitializer);
-		innerArrayInitializer = this.ast.newArrayInitializer();
-		innerArrayInitializer.expressions().add(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		arrayInitializer.expressions().add(innerArrayInitializer);
-		assertTrue("Both AST trees should be identical", arrayInitializer.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "[[1], [2]]", source); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * Test allocation expression: new int[3] ==> ArrayCreation
-//	 */
-//	public void test0010() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0010", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-//		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-//		ArrayCreation arrayCreation = this.ast.newArrayCreation();
-//		arrayCreation.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 1));
-//		arrayCreation.dimensions().add(this.ast.newNumberLiteral("3")); //$NON-NLS-1$
-//		assertTrue("Both AST trees should be identical", arrayCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-//		checkSourceRange(expression, "new int[3]", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Test allocation expression: new int[3][] ==> ArrayCreation
-//	 */
-//	public void test0011() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0011", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-//		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-//		ArrayCreation arrayCreation = this.ast.newArrayCreation();
-//		arrayCreation.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 2));
-//		arrayCreation.dimensions().add(this.ast.newNumberLiteral("3")); //$NON-NLS-1$
-//		assertTrue("Both AST trees should be identical", arrayCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-//		checkSourceRange(expression, "new int[3][]", source); //$NON-NLS-1$
-//	}
-//		
-//	/**
-//	 * Test allocation expression: new int[][] {{},{}} ==> ArrayCreation
-//	 */
-//	public void test0012() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0012", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-//		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-//		ArrayCreation arrayCreation = this.ast.newArrayCreation();
-//		arrayCreation.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 2));
-//		ArrayInitializer arrayInitializer = this.ast.newArrayInitializer();
-//		ArrayInitializer innerArrayInitializer = this.ast.newArrayInitializer();
-//		arrayInitializer.expressions().add(innerArrayInitializer);
-//		innerArrayInitializer = this.ast.newArrayInitializer();
-//		arrayInitializer.expressions().add(innerArrayInitializer);
-//		arrayCreation.setInitializer(arrayInitializer);
-//		assertTrue("Both AST trees should be identical", arrayCreation.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-//		checkSourceRange(expression, "new int[][] {{}, {}}", source); //$NON-NLS-1$
-//	}
-
-	/**
-	 * int i; ==> VariableDeclarationFragment
-	 * @deprecated using deprecated code
-	 */
-	public void test0013() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0013", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * int i = 0; ==> VariableDeclarationFragment
-	 * @deprecated using deprecated code
-	 */
-	public void test0014() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0014", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var i = 0;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i = 1; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0015() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0015", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("1")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i = 1;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i += 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0016() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0016", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.PLUS_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i += 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i -= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0017() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0017", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.MINUS_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i -= 2;", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * i *= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0018() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0018", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.TIMES_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i *= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i /= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0019() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0019", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.DIVIDE_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i /= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i &= 2 ==> ExpressionStatement(Assignment)
-	 */
-	public void test0020() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0020", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.BIT_AND_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i &= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i |= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0021() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0021", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.BIT_OR_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i |= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i ^= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0022() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0022", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.BIT_XOR_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i ^= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i %= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0023() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0023", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.REMAINDER_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i %= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i <<= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0024() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0024", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.LEFT_SHIFT_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i <<= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i >>= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0025() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0025", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.RIGHT_SHIFT_SIGNED_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i >>= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i >>>= 2; ==> ExpressionStatement(Assignment)
-	 */
-	public void test0026() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0026", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		Assignment assignment = this.ast.newAssignment();
-		assignment.setLeftHandSide(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		assignment.setRightHandSide(this.ast.newNumberLiteral("2")); //$NON-NLS-1$
-		assignment.setOperator(Assignment.Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN);
-		ExpressionStatement statement = this.ast.newExpressionStatement(assignment);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i >>>= 2;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * --i; ==> ExpressionStatement(PrefixExpression)
-	 */
-	public void test0027() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0027", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		prefixExpression.setOperator(PrefixExpression.Operator.DECREMENT);//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(prefixExpression);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "--i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * --i; ==> ExpressionStatement(PrefixExpression)
-	 */
-	public void test0028() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0028", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(prefixExpression);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "++i;", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * i--; ==> ExpressionStatement(PostfixExpression)
-	 */
-	public void test0029() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0029", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.DECREMENT);//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(postfixExpression);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i--;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * i++; ==> ExpressionStatement(PostfixExpression)
-	 */
-	public void test0030() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0030", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(postfixExpression);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "i++;", source); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * (String) o; ==> ExpressionStatement(CastExpression)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0031() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0031", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("s")); //$NON-NLS-1$
-//		CastExpression castExpression = this.ast.newCastExpression();
-//		castExpression.setExpression(this.ast.newSimpleName("o"));//$NON-NLS-1$
-//		castExpression.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(castExpression);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "String s = (String) o;", source); //$NON-NLS-1$
-//	}						
-//
-//	/**
-//	 * (int) d; ==> ExpressionStatement(CastExpression)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0032() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0032", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-//		CastExpression castExpression = this.ast.newCastExpression();
-//		castExpression.setExpression(this.ast.newSimpleName("d"));//$NON-NLS-1$
-//		castExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));//$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(castExpression);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));//$NON-NLS-1$
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "int i = (int) d;", source); //$NON-NLS-1$
-//	}	
-//	
-//	/**
-//	 * (float) d; ==> ExpressionStatement(CastExpression)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0033() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0033", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("f")); //$NON-NLS-1$
-//		CastExpression castExpression = this.ast.newCastExpression();
-//		castExpression.setExpression(this.ast.newSimpleName("d"));//$NON-NLS-1$
-//		castExpression.setType(this.ast.newPrimitiveType(PrimitiveType.FLOAT));//$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(castExpression);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.FLOAT));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "float f = (float) d;", source); //$NON-NLS-1$
-//	}	
-//
-//	/**
-//	 * (byte) d; ==> ExpressionStatement(CastExpression)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0034() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0034", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("b")); //$NON-NLS-1$
-//		CastExpression castExpression = this.ast.newCastExpression();
-//		castExpression.setExpression(this.ast.newSimpleName("d"));//$NON-NLS-1$
-//		castExpression.setType(this.ast.newPrimitiveType(PrimitiveType.BYTE));//$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(castExpression);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BYTE));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "byte b = (byte) d;", source); //$NON-NLS-1$
-//	}	
-//
-//	/**
-//	 * (short) d; ==> ExpressionStatement(CastExpression)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0035() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0035", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("s")); //$NON-NLS-1$
-//		CastExpression castExpression = this.ast.newCastExpression();
-//		castExpression.setExpression(this.ast.newSimpleName("d"));//$NON-NLS-1$
-//		castExpression.setType(this.ast.newPrimitiveType(PrimitiveType.SHORT));//$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(castExpression);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.SHORT));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "short s = (short) d;", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * (long) d; ==> ExpressionStatement(CastExpression)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0036() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0036", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("l")); //$NON-NLS-1$
-//		CastExpression castExpression = this.ast.newCastExpression();
-//		castExpression.setExpression(this.ast.newSimpleName("d"));//$NON-NLS-1$
-//		castExpression.setType(this.ast.newPrimitiveType(PrimitiveType.LONG));//$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(castExpression);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.LONG));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "long l = (long) d;", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * (char) i; ==> ExpressionStatement(CastExpression)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0037() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0037", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-//		CastExpression castExpression = this.ast.newCastExpression();
-//		castExpression.setExpression(this.ast.newSimpleName("i"));//$NON-NLS-1$
-//		castExpression.setType(this.ast.newPrimitiveType(PrimitiveType.CHAR));//$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(castExpression);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.CHAR));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "char c = (char) i;", source); //$NON-NLS-1$
-//	}	
-//
-//	/**
-//	 * int.class; ==> ExpressionStatement(TypeLiteral)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0038() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0038", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-//		TypeLiteral typeLiteral = this.ast.newTypeLiteral();
-//		typeLiteral.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-//		variableDeclarationFragment.setInitializer(typeLiteral);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("Class")));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(((VariableDeclarationFragment)((VariableDeclarationStatement)node).fragments().get(0)).getInitializer(), "int.class", source); //$NON-NLS-1$
-//	}	
-//
-//	/**
-//	 * void.class; ==> ExpressionStatement(TypeLiteral)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0039() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0039", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-//		TypeLiteral typeLiteral = this.ast.newTypeLiteral();
-//		typeLiteral.setType(this.ast.newPrimitiveType(PrimitiveType.VOID));
-//		variableDeclarationFragment.setInitializer(typeLiteral);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("Class")));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(((VariableDeclarationFragment)((VariableDeclarationStatement)node).fragments().get(0)).getInitializer(), "void.class", source); //$NON-NLS-1$
-//	}	
-//
-//	/**
-//	 * double.class; ==> ExpressionStatement(TypeLiteral)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0040() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0040", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-//		TypeLiteral typeLiteral = this.ast.newTypeLiteral();
-//		typeLiteral.setType(this.ast.newPrimitiveType(PrimitiveType.DOUBLE));
-//		variableDeclarationFragment.setInitializer(typeLiteral);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("Class")));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(((VariableDeclarationFragment)((VariableDeclarationStatement)node).fragments().get(0)).getInitializer(), "double.class", source); //$NON-NLS-1$
-//	}	
-//
-//	/**
-//	 * long.class; ==> ExpressionStatement(TypeLiteral)
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0041() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0041", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("c")); //$NON-NLS-1$
-//		TypeLiteral typeLiteral = this.ast.newTypeLiteral();
-//		typeLiteral.setType(this.ast.newPrimitiveType(PrimitiveType.LONG));
-//		variableDeclarationFragment.setInitializer(typeLiteral);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newSimpleType(this.ast.newSimpleName("Class")));//$NON-NLS-1$
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(((VariableDeclarationFragment)((VariableDeclarationStatement)node).fragments().get(0)).getInitializer(), "long.class", source); //$NON-NLS-1$
-//	}	
-		
-	/**
-	 * false ==> BooleanLiteral
-	 */
-	public void test0042() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0042", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		BooleanLiteral literal = this.ast.newBooleanLiteral(false);
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "false", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * true ==> BooleanLiteral
-	 */
-	public void test0043() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0043", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		BooleanLiteral literal = this.ast.newBooleanLiteral(true);
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "true", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * null ==> NullLiteral
-	 */
-	public void test0044() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0044", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NullLiteral literal = this.ast.newNullLiteral();
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "null", source); //$NON-NLS-1$
-	}
-		
-	/**
-	 * CharLiteral ==> CharacterLiteral
-	 */
-	public void test0045() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0045", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		CharacterLiteral literal = this.ast.newCharacterLiteral();
-		literal.setEscapedValue("'c'"); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "'c'", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * DoubleLiteral ==> NumberLiteral
-	 */
-	public void test0046() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0046", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("1.00001");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "1.00001", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * FloatLiteral ==> NumberLiteral
-	 */
-	public void test0047() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0047", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("1.00001f");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "1.00001f", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * IntLiteral ==> NumberLiteral
-	 */
-	public void test0048() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0048", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("30000");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "30000", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * IntLiteralMinValue ==> NumberLiteral
-	 */
-	public void test0049() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0049", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("-2147483648");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "-2147483648", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LongLiteral ==> NumberLiteral
-	 */
-	public void test0050() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0050", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("2147483648L");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "2147483648L", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LongLiteral ==> NumberLiteral (negative value)
-	 */
-	public void test0051() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0051", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("2147483648L");//$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperand(literal);
-		prefixExpression.setOperator(PrefixExpression.Operator.MINUS);
-		assertTrue("Both AST trees should be identical", prefixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "-2147483648L", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LongLiteralMinValue ==> NumberLiteral
-	 */
-	public void test0052() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0052", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral("-9223372036854775808L");//$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", literal.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "-9223372036854775808L", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ExtendedStringLiteral ==> StringLiteral
-	 */
-	public void test0053() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0053", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		/*
-		StringLiteral literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("Hello World");*/
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();
-		literal.setLiteralValue("Hello");//$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();
-		literal.setLiteralValue(" World");//$NON-NLS-1$
-		infixExpression.setRightOperand(literal);//$NON-NLS-1$
-		
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"Hello\" + \" World\"", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * AND_AND_Expression ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0054() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0054", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b3")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.CONDITIONAL_AND);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b3 = b && b2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * OR_OR_Expression ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0055() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0055", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b3")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.CONDITIONAL_OR);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b3 = b || b2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * EqualExpression ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0056() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0056", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b3")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.EQUALS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b3 = b == b2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (+) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0057() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0057", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = i + j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (-) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0058() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0058", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.MINUS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = i - j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (*) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0059() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0059", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.TIMES);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = i * j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (/) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0060() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0060", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.DIVIDE);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = i / j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (%) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0061() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0061", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.REMAINDER);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = i % j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (^) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0062() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0062", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.XOR);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = i ^ j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (&) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0063() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0063", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.AND);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = i & j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (|) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0064() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0064", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.OR);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = i | j;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (<) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0065() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0065", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b2 = b < b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (<=) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0066() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0066", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS_EQUALS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b2 = b <= b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (>) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0067() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0067", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.GREATER);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b2 = b > b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (>=) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0068() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0068", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.GREATER_EQUALS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b2 = b >= b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression (!=) ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0069() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0069", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b2")); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		infixExpression.setRightOperand(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.NOT_EQUALS);
-		variableDeclarationFragment.setInitializer(infixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b2 = b != b1;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * InstanceofExpression ==> InfixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0070() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0070", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		InfixExpression instanceOfExpression = this.ast.newInfixExpression();
-		instanceOfExpression.setLeftOperand(this.ast.newSimpleName("o"));//$NON-NLS-1$ 
-		instanceOfExpression.setOperator(InfixExpression.Operator.INSTANCEOF); 
-//		SimpleType simpleType = this.ast.newSimpleType(this.ast.newSimpleName("Integer"));//$NON-NLS-1$
-		instanceOfExpression.setRightOperand(this.ast.newSimpleName("Number")); 
-		variableDeclarationFragment.setInitializer(instanceOfExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b = o instanceof Number;", source); //$NON-NLS-1$
-	}	
-
-//	/**
-//	 * InstanceofExpression ==> InfixExpression
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0071() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0071", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("b")); //$NON-NLS-1$
-//		InstanceofExpression instanceOfExpression = this.ast.newInstanceofExpression();
-//		instanceOfExpression.setLeftOperand(this.ast.newSimpleName("o")); //$NON-NLS-1$
-//		QualifiedName name =
-//			this.ast.newQualifiedName(
-//				this.ast.newQualifiedName(
-//					this.ast.newSimpleName("java"), //$NON-NLS-1$
-//					this.ast.newSimpleName("lang")), //$NON-NLS-1$
-//				this.ast.newSimpleName("Integer")); //$NON-NLS-1$
-//		Type type = ast.newSimpleType(name);
-//		instanceOfExpression.setRightOperand(type);
-//		variableDeclarationFragment.setInitializer(instanceOfExpression);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setModifiers(Modifier.NONE);
-////		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "var b = o instanceof java.lang.Integer;", source); //$NON-NLS-1$
-//	}	
-
-	/**
-	 * UnaryExpression (!) ==> PrefixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0072() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0072", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b1")); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperator(PrefixExpression.Operator.NOT);
-		prefixExpression.setOperand(this.ast.newSimpleName("b"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(prefixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b1 = !b;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * UnaryExpression (~) ==> PrefixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0073() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0073", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("n")); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperator(PrefixExpression.Operator.COMPLEMENT);
-		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(prefixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var n = ~i;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * UnaryExpression (+) ==> PrefixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0074() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0074", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperator(PrefixExpression.Operator.PLUS);
-		prefixExpression.setOperand(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(prefixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var i = +2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * UnaryExpression (-) ==> PrefixExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0075() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0075", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-		prefixExpression.setOperator(PrefixExpression.Operator.MINUS);
-		prefixExpression.setOperand(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(prefixExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var i = -2;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * ConditionalExpression ==> ConditionalExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0076() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0076", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("b")); //$NON-NLS-1$
-		ConditionalExpression conditionalExpression = this.ast.newConditionalExpression();
-		InfixExpression condition = this.ast.newInfixExpression();
-		condition.setLeftOperand(this.ast.newSimpleName("args")); //$NON-NLS-1$
-		condition.setRightOperand(this.ast.newNullLiteral()); //$NON-NLS-1$
-		condition.setOperator(InfixExpression.Operator.NOT_EQUALS);
-		conditionalExpression.setExpression(condition);
-		conditionalExpression.setThenExpression(this.ast.newBooleanLiteral(true));
-		conditionalExpression.setElseExpression(this.ast.newBooleanLiteral(false));
-		variableDeclarationFragment.setInitializer(conditionalExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.BOOLEAN));
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var b = args != null ? true : false;", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * ConditionalExpression ==> ConditionalExpression
-	 * @deprecated using deprecated code
-	 */
-	public void test0077() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0077", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		ConditionalExpression conditionalExpression = this.ast.newConditionalExpression();
-		conditionalExpression.setExpression(this.ast.newBooleanLiteral(true));
-//		QualifiedName name = 
-//			this.ast.newQualifiedName(
-//				this.ast.newSimpleName("args"), //$NON-NLS-1$
-//				this.ast.newSimpleName("length")); //$NON-NLS-1$
-//		conditionalExpression.setThenExpression(name);
-		FieldAccess fieldAccess=this.ast.newFieldAccess();
-		fieldAccess.setExpression(this.ast.newSimpleName("args"));
-		fieldAccess.setName(this.ast.newSimpleName("length"));
-		conditionalExpression.setThenExpression(fieldAccess);
-		conditionalExpression.setElseExpression(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(conditionalExpression);
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-		statement.setModifiers(Modifier.NONE);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var i = true ? args.length: 0;", source); //$NON-NLS-1$
-	}	
-//
-//	/**
-//	 * MessageSend ==> SuperMethodInvocation
-//	 */
-//	public void test0078() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0078", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		SuperMethodInvocation superMethodInvocation = this.ast.newSuperMethodInvocation();
-//		superMethodInvocation.setName(this.ast.newSimpleName("bar")); //$NON-NLS-1$
-//		ExpressionStatement statement = this.ast.newExpressionStatement(superMethodInvocation);
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "super.bar();", source); //$NON-NLS-1$
-//	}	
-//
-//	/**
-//	 * MessageSend ==> SuperMethodInvocation
-//	 */
-//	public void test0079() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0079", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		SuperMethodInvocation superMethodInvocation = this.ast.newSuperMethodInvocation();
-//		superMethodInvocation.setName(this.ast.newSimpleName("bar")); //$NON-NLS-1$
-//		superMethodInvocation.arguments().add(this.ast.newNumberLiteral("4"));//$NON-NLS-1$
-//		ExpressionStatement statement = this.ast.newExpressionStatement(superMethodInvocation);
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "super.bar(4);", source); //$NON-NLS-1$
-//	}	
-	
-	/**
-	 * MessageSend ==> FunctionInvocation
-	 */
-	public void test0080() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0080", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		methodInvocation.setName(this.ast.newSimpleName("bar")); //$NON-NLS-1$
-		methodInvocation.arguments().add(this.ast.newNumberLiteral("4"));//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(methodInvocation);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "bar(4);", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * MessageSend ==> FunctionInvocation
-	 */
-	public void test0081() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0081", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-		methodInvocation.setName(this.ast.newSimpleName("bar")); //$NON-NLS-1$
-		methodInvocation.setExpression(this.ast.newThisExpression());
-		methodInvocation.arguments().add(this.ast.newNumberLiteral("4"));//$NON-NLS-1$
-		ExpressionStatement statement = this.ast.newExpressionStatement(methodInvocation);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "this.bar(4);", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0082() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0082", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (;;);", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * ForStatement ==> ForStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0083() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0083", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setModifiers(Modifier.NONE);
-//		variableDeclarationExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		forStatement.initializers().add(variableDeclarationExpression);
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		forStatement.setBody(this.ast.newBlock());
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		infixExpression.setRightOperand(this.ast.newNumberLiteral("10")); //$NON-NLS-1$
-		forStatement.setExpression(infixExpression);
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (var i = 0; i < 10; i++) {}", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * ForStatement ==> ForStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0084() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0084", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setModifiers(Modifier.NONE);
-//		variableDeclarationExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		
-		forStatement.initializers().add(variableDeclarationExpression);
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		infixExpression.setRightOperand(this.ast.newNumberLiteral("10")); //$NON-NLS-1$
-		forStatement.setExpression(infixExpression);
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (var i = 0; i < 10; i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement ==> ForStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0085() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0085", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setModifiers(Modifier.NONE);
-//		variableDeclarationExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		
-		forStatement.initializers().add(variableDeclarationExpression);
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (var i = 0;; i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0086() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0086", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		infixExpression.setRightOperand(this.ast.newNumberLiteral("10")); //$NON-NLS-1$
-		forStatement.setExpression(infixExpression);
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (; i < 10; i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * ForStatement ==> ForStatement
-	 */
-	public void test0087() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0087", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		forStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (;;i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * LocalDeclaration ==> VariableDeclarationStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0088() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0088", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		statement.setModifiers(Modifier.NONE);
-
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var i;", source); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * LocalDeclaration ==> VariableDeclarationStatement
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0089() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0089", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("s")); //$NON-NLS-1$
-//
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		QualifiedName name = 
-//			this.ast.newQualifiedName(
-//				this.ast.newQualifiedName(
-//					this.ast.newSimpleName("java"),//$NON-NLS-1$
-//					this.ast.newSimpleName("lang")//$NON-NLS-1$
-//				),
-//				this.ast.newSimpleName("String") //$NON-NLS-1$
-//			);
-//		statement.setType(this.ast.newSimpleType(name));
-//		statement.setModifiers(Modifier.NONE);
-//
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "java.lang.String s;", source); //$NON-NLS-1$
-//	}
-
-	/**
-	 * LocalDeclaration ==> VariableDeclarationStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0090() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0090", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-	
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		ArrayInitializer initializer = this.ast.newArrayInitializer();
-		initializer.expressions().add(this.ast.newNumberLiteral("1"));//$NON-NLS-1$
-		initializer.expressions().add(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(initializer);
-		variableDeclarationFragment.setName(this.ast.newSimpleName("tab")); //$NON-NLS-1$
-
-		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(variableDeclarationFragment);
-//		statement.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 1));
-		statement.setModifiers(Modifier.NONE);
-		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var tab = [1, 2];", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Argument ==> SingleVariableDeclaration
-	 * @deprecated using deprecated code
-	 */
-	public void test0091() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0091", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		FunctionDeclaration method = (FunctionDeclaration) ((JavaScriptUnit) result).statements().get(0);
-		SingleVariableDeclaration node = (SingleVariableDeclaration) method.parameters().get(0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		SingleVariableDeclaration variableDeclaration = this.ast.newSingleVariableDeclaration();
-		variableDeclaration.setModifiers(Modifier.NONE);
-//		variableDeclaration.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-		variableDeclaration.setName(this.ast.newSimpleName("s")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", variableDeclaration.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "s", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Argument ==> SingleVariableDeclaration
-	 * @deprecated using deprecated code
-	 */
-//	public void test0092() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0092", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		FunctionDeclaration method = (FunctionDeclaration)((TypeDeclaration) ((JavaScriptUnit) result).types().get(0)).bodyDeclarations().get(0);
-//		SingleVariableDeclaration node = (SingleVariableDeclaration) method.parameters().get(0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		SingleVariableDeclaration variableDeclaration = this.ast.newSingleVariableDeclaration();
-//		variableDeclaration.setModifiers(Modifier.FINAL);
-//		variableDeclaration.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-//		variableDeclaration.setName(this.ast.newSimpleName("s")); //$NON-NLS-1$
-//		assertTrue("Both AST trees should be identical", variableDeclaration.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "final String s", source); //$NON-NLS-1$
-//		assertEquals("Wrong dimension", 0, node.getExtraDimensions()); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Break ==> BreakStatement
-	 */
-	public void test0093() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0093", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ForStatement forStatement = (ForStatement) node;
-		BreakStatement statement = (BreakStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		BreakStatement breakStatement = this.ast.newBreakStatement();
-		assertTrue("Both AST trees should be identical", breakStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "break;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Continue ==> ContinueStatement
-	 */
-	public void test0094() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0094", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ForStatement forStatement = (ForStatement) node;
-		ContinueStatement statement = (ContinueStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		ContinueStatement continueStatement = this.ast.newContinueStatement();
-		assertTrue("Both AST trees should be identical", continueStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "continue;", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Continue with Label ==> ContinueStatement
-	 */
-	public void test0095() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0095", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		LabeledStatement labeledStatement = (LabeledStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ForStatement forStatement = (ForStatement) labeledStatement.getBody();
-		ContinueStatement statement = (ContinueStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		ContinueStatement continueStatement = this.ast.newContinueStatement();
-		continueStatement.setLabel(this.ast.newSimpleName("label")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", continueStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "continue label;", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Break + label  ==> BreakStatement
-	 */
-	public void test0096() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0096", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		LabeledStatement labeledStatement = (LabeledStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		ForStatement forStatement = (ForStatement) labeledStatement.getBody();
-		BreakStatement statement = (BreakStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		BreakStatement breakStatement = this.ast.newBreakStatement();
-		breakStatement.setLabel(this.ast.newSimpleName("label")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", breakStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "break label;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * SwitchStatement ==> SwitchStatement
-	 */
-	public void test0097() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0097", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		SwitchStatement switchStatement = this.ast.newSwitchStatement();
-		switchStatement.setExpression(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		SwitchCase _case = this.ast.newSwitchCase();
-		_case.setExpression(this.ast.newNumberLiteral("1"));//$NON-NLS-1$
-		switchStatement.statements().add(_case);
-		switchStatement.statements().add(this.ast.newBreakStatement());
-		_case = this.ast.newSwitchCase();
-		_case.setExpression(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		switchStatement.statements().add(_case);
-		FunctionInvocation methodInvocation = this.ast.newFunctionInvocation();
-//		QualifiedName name = 
-//			this.ast.newQualifiedName(
-//				this.ast.newSimpleName("System"),//$NON-NLS-1$
-//				this.ast.newSimpleName("out"));//$NON-NLS-1$
-//		methodInvocation.setExpression(name);
-		FieldAccess fieldAccess = this.ast.newFieldAccess();
-		fieldAccess.setExpression(this.ast.newSimpleName("System"));
-		fieldAccess.setName(this.ast.newSimpleName("out"));
-		methodInvocation.setExpression(fieldAccess);
-		methodInvocation.setName(this.ast.newSimpleName("println")); //$NON-NLS-1$
-		methodInvocation.arguments().add(this.ast.newNumberLiteral("2"));//$NON-NLS-1$
-		ExpressionStatement expressionStatement = this.ast.newExpressionStatement(methodInvocation);
-		switchStatement.statements().add(expressionStatement);
-		switchStatement.statements().add(this.ast.newBreakStatement());
-		_case = this.ast.newSwitchCase();
-		_case.setExpression(null);
-		switchStatement.statements().add(_case);
-		methodInvocation = this.ast.newFunctionInvocation();
-//		name = 
-//			this.ast.newQualifiedName(
-//				this.ast.newSimpleName("System"),//$NON-NLS-1$
-//				this.ast.newSimpleName("out"));//$NON-NLS-1$
-//		methodInvocation.setExpression(name);
-		fieldAccess = this.ast.newFieldAccess();
-		fieldAccess.setExpression(this.ast.newSimpleName("System"));
-		fieldAccess.setName(this.ast.newSimpleName("out"));
-		methodInvocation.setExpression(fieldAccess);
-		methodInvocation.setName(this.ast.newSimpleName("println")); //$NON-NLS-1$
-		StringLiteral literal = this.ast.newStringLiteral();
-		literal.setLiteralValue("default");	//$NON-NLS-1$
-		methodInvocation.arguments().add(literal);
-		expressionStatement = this.ast.newExpressionStatement(methodInvocation);
-		switchStatement.statements().add(expressionStatement);
-		assertTrue("Both AST trees should be identical", switchStatement.subtreeMatch(new ASTMatcher(), node));	//$NON-NLS-1$
-		String expectedSource = "switch(i) {\n" +//$NON-NLS-1$
-			 "			case 1: \n" +//$NON-NLS-1$
-			 "              break;\n" +//$NON-NLS-1$
-			 "			case 2:\n" +//$NON-NLS-1$
-			 "				System.out.println(2);\n" +//$NON-NLS-1$
-			 "              break;\n" +//$NON-NLS-1$
-			 "          default:\n" +//$NON-NLS-1$
-			 "				System.out.println(\"default\");\n" +//$NON-NLS-1$
-			 "		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-		SwitchStatement switchStatement2 = (SwitchStatement) node;
-		List statements = switchStatement2.statements();
-		assertEquals("wrong size", 7, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(5);
-		assertTrue("Not a case statement", stmt instanceof SwitchCase); //$NON-NLS-1$
-		SwitchCase switchCase = (SwitchCase) stmt;
-		assertTrue("Not the default case", switchCase.isDefault()); //$NON-NLS-1$
-	}
-
-	/**
-	 * EmptyStatement ==> EmptyStatement
-	 */
-	public void test0098() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0098", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		EmptyStatement emptyStatement = this.ast.newEmptyStatement();
-		assertTrue("Both AST trees should be identical", emptyStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * DoStatement ==> DoStatement
-	 */
-	public void test0099() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0099", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		DoStatement doStatement = this.ast.newDoStatement();
-		Block block = this.ast.newBlock();
-		block.statements().add(this.ast.newEmptyStatement());
-		doStatement.setBody(block);
-		doStatement.setExpression(this.ast.newBooleanLiteral(true));
-		assertTrue("Both AST trees should be identical", doStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "do {;\n" +//$NON-NLS-1$
-			 "		} while(true);";//$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * WhileStatement ==> WhileStatement
-	 */
-	public void test0100() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0100", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		WhileStatement whileStatement = this.ast.newWhileStatement();
-		whileStatement.setExpression(this.ast.newBooleanLiteral(true));
-		whileStatement.setBody(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", whileStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "while(true);", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * WhileStatement ==> WhileStatement
-	 */
-	public void test0101() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0101", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		WhileStatement whileStatement = this.ast.newWhileStatement();
-		whileStatement.setExpression(this.ast.newBooleanLiteral(true));
-		whileStatement.setBody(this.ast.newBlock());
-		assertTrue("Both AST trees should be identical", whileStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "while(true) {}", source);//$NON-NLS-1$
-	}
-	
-	/**
-	 * ExtendedStringLiteral ==> StringLiteral
-	 */
-	public void test0102() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0102", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("Hello"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue(" World"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("!"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"Hello\" + \" World\" + \"!\"", source);//$NON-NLS-1$
-	}
-	
-	/**
-	 * ExtendedStringLiteral ==> StringLiteral
-	 */
-	public void test0103() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0103", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("Hello"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue(" World"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("!"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("!"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"Hello\" + \" World\" + \"!\" + \"!\"", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ExtendedStringLiteral ==> StringLiteral
-	 */
-	public void test0104() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0104", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("Hello"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue(" World"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newStringLiteral();//$NON-NLS-1$
-		literal.setLiteralValue("!"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		NumberLiteral numberLiteral = this.ast.newNumberLiteral();//$NON-NLS-1$
-		numberLiteral.setToken("4"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(numberLiteral);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"Hello\" + \" World\" + \"!\" + 4", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0105() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0105", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "4 + 5 + 6 + 4", source);//$NON-NLS-1$
-	}
-	
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0106() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0106", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.MINUS);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		
-		InfixExpression infixExpression2 = this.ast.newInfixExpression();
-		infixExpression2.setOperator(InfixExpression.Operator.PLUS);
-		infixExpression2.setLeftOperand(infixExpression);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression2.setRightOperand(literal);		
-		
-		InfixExpression infixExpression3 = this.ast.newInfixExpression();
-		infixExpression3.setOperator(InfixExpression.Operator.PLUS);
-		infixExpression3.setLeftOperand(infixExpression2);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression3.setRightOperand(literal);		
-		
-		assertTrue("Both AST trees should be identical", infixExpression3.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "4 - 5 + 6 + 4", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0107() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0107", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.MINUS);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "4 - 5 - 6 - 4", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0108() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0108", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		StringLiteral stringLiteral = this.ast.newStringLiteral();//$NON-NLS-1$
-		stringLiteral.setLiteralValue("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(stringLiteral);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression.extendedOperands().add(literal);
-		assertTrue("Both AST trees should be identical", infixExpression.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"4\" + 5 + 6 + 4", source);//$NON-NLS-1$
-	}
-	
-	/**
-	 * NumberLiteral ==> InfixExpression
-	 */
-	public void test0109() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0109", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setOperator(InfixExpression.Operator.MINUS);
-		StringLiteral stringLiteral = this.ast.newStringLiteral();//$NON-NLS-1$
-		stringLiteral.setLiteralValue("4"); //$NON-NLS-1$
-		infixExpression.setLeftOperand(stringLiteral);
-		NumberLiteral literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("5"); //$NON-NLS-1$
-		infixExpression.setRightOperand(literal);		
-		
-		InfixExpression infixExpression2 = this.ast.newInfixExpression();
-		infixExpression2.setOperator(InfixExpression.Operator.PLUS);
-		infixExpression2.setLeftOperand(infixExpression);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("6"); //$NON-NLS-1$
-		infixExpression2.setRightOperand(literal);		
-		
-		InfixExpression infixExpression3 = this.ast.newInfixExpression();
-		infixExpression3.setOperator(InfixExpression.Operator.PLUS);
-		infixExpression3.setLeftOperand(infixExpression2);
-		literal = this.ast.newNumberLiteral();//$NON-NLS-1$
-		literal.setToken("4"); //$NON-NLS-1$
-		infixExpression3.setRightOperand(literal);		
-		
-		assertTrue("Both AST trees should be identical", infixExpression3.subtreeMatch(new ASTMatcher(), expression));		//$NON-NLS-1$
-		checkSourceRange(expression, "\"4\" - 5 + 6 + 4", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ReturnStatement ==> ReturnStatement
-	 */
-	public void test0110() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0110", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		assertTrue("Both AST trees should be identical", returnStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "return 2;", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ReturnStatement ==> ReturnStatement
-	 */
-	public void test0111() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0111", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		assertTrue("Both AST trees should be identical", returnStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "return 2\\u003B", source);//$NON-NLS-1$
-	}
-	
-//	/**
-//	 * SynchronizedStatement ==> SynchronizedStatement
-//	 */
-//	public void test0112() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0112", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		SynchronizedStatement synchronizedStatement = this.ast.newSynchronizedStatement();
-//		synchronizedStatement.setExpression(this.ast.newThisExpression());
-//		synchronizedStatement.setBody(this.ast.newBlock());
-//		assertTrue("Both AST trees should be identical", synchronizedStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		String expectedSource = "synchronized(this) {\n" +//$NON-NLS-1$
-//			 "		}"; //$NON-NLS-1$
-//		checkSourceRange(node, expectedSource, source);
-//	}
-
-	/**
-	 * TryStatement ==> TryStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0113() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0113", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		TryStatement tryStatement = this.ast.newTryStatement();
-		tryStatement.setBody(this.ast.newBlock());
-		tryStatement.setFinally(this.ast.newBlock());
-		CatchClause catchBlock = this.ast.newCatchClause();
-		catchBlock.setBody(this.ast.newBlock());
-		SingleVariableDeclaration exceptionVariable = this.ast.newSingleVariableDeclaration();
-		exceptionVariable.setModifiers(Modifier.NONE);
-		exceptionVariable.setName(this.ast.newSimpleName("e"));//$NON-NLS-1$
-//		exceptionVariable.setType(this.ast.newSimpleType(this.ast.newSimpleName("Exception")));//$NON-NLS-1$
-		catchBlock.setException(exceptionVariable);
-		tryStatement.catchClauses().add(catchBlock);
-		assertTrue("Both AST trees should be identical", tryStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "try {\n" +//$NON-NLS-1$
-			 "		} catch( e) {\n" +//$NON-NLS-1$
-			 "		} finally {\n" +//$NON-NLS-1$
-			 "		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * TryStatement ==> TryStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0114() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0114", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		TryStatement tryStatement = this.ast.newTryStatement();
-		tryStatement.setBody(this.ast.newBlock());
-		CatchClause catchBlock = this.ast.newCatchClause();
-		catchBlock.setBody(this.ast.newBlock());
-		SingleVariableDeclaration exceptionVariable = this.ast.newSingleVariableDeclaration();
-		exceptionVariable.setModifiers(Modifier.NONE);
-		exceptionVariable.setName(this.ast.newSimpleName("e"));//$NON-NLS-1$
-//		exceptionVariable.setType(this.ast.newSimpleType(this.ast.newSimpleName("Exception")));//$NON-NLS-1$
-		catchBlock.setException(exceptionVariable);
-		tryStatement.catchClauses().add(catchBlock);
-		assertTrue("Both AST trees should be identical", tryStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "try {\n" +//$NON-NLS-1$
-			 "		} catch(e) {\n" +//$NON-NLS-1$
-			 "		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * TryStatement ==> TryStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0115() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0115", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		TryStatement tryStatement = this.ast.newTryStatement();
-		Block block = this.ast.newBlock();
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		block.statements().add(returnStatement);
-		tryStatement.setBody(block);
-		CatchClause catchBlock = this.ast.newCatchClause();
-		catchBlock.setBody(this.ast.newBlock());
-		SingleVariableDeclaration exceptionVariable = this.ast.newSingleVariableDeclaration();
-		exceptionVariable.setModifiers(Modifier.NONE);
-		exceptionVariable.setName(this.ast.newSimpleName("e"));//$NON-NLS-1$
-//		exceptionVariable.setType(this.ast.newSimpleType(this.ast.newSimpleName("Exception")));//$NON-NLS-1$
-		catchBlock.setException(exceptionVariable);
-		tryStatement.catchClauses().add(catchBlock);
-		assertTrue("Both AST trees should be identical", tryStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "try {\n" +//$NON-NLS-1$
-			 "			return 2;\n" +//$NON-NLS-1$
-			 "		} catch(e) {\n" +//$NON-NLS-1$
-			 "		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-		
-	/**
-	 * ThrowStatement ==> ThrowStatement
-	 */
-	public void test0116() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0116", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ThrowStatement throwStatement = this.ast.newThrowStatement();
-		throwStatement.setExpression(this.ast.newSimpleName("e")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", throwStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "throw e   \\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ThrowStatement ==> ThrowStatement
-	 */
-	public void test0117() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0117", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ThrowStatement throwStatement = this.ast.newThrowStatement();
-		throwStatement.setExpression(this.ast.newSimpleName("e")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", throwStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "throw e /* comment in the middle of a throw */  \\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * ThrowStatement ==> ThrowStatement
-	 */
-	public void test0118() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0118", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ThrowStatement throwStatement = this.ast.newThrowStatement();
-		throwStatement.setExpression(this.ast.newSimpleName("e")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", throwStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "throw e /* comment in the middle of a throw */  \\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0119() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0119", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ifStatement.setThenStatement(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "if (true)\\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0120() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0120", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ifStatement.setThenStatement(this.ast.newEmptyStatement());
-		ifStatement.setElseStatement(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "if (true)\\u003B\n" +//$NON-NLS-1$
-			 "\t\telse ;"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0121() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0121", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ifStatement.setThenStatement(this.ast.newBlock());
-		ifStatement.setElseStatement(this.ast.newEmptyStatement());
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "if (true) {}\n" +//$NON-NLS-1$
-			 "		else ;"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0122() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0122", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		ifStatement.setThenStatement(returnStatement);
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "if (true) return 2\\u003B", source);//$NON-NLS-1$
-	}
-
-	/**
-	 * IfStatement ==> IfStatement
-	 */
-	public void test0123() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0123", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		IfStatement ifStatement = this.ast.newIfStatement();
-		ifStatement.setExpression(this.ast.newBooleanLiteral(true));
-		ReturnStatement returnStatement = this.ast.newReturnStatement();
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("2");//$NON-NLS-1$
-		returnStatement.setExpression(literal);
-		ifStatement.setThenStatement(returnStatement);
-		returnStatement = this.ast.newReturnStatement();
-		literal = this.ast.newNumberLiteral();
-		literal.setToken("3");//$NON-NLS-1$
-		returnStatement.setExpression(literal);		
-		ifStatement.setElseStatement(returnStatement);
-		assertTrue("Both AST trees should be identical", ifStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "if (true) return 2;\n" +//$NON-NLS-1$
-			 "		else return 3;"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-
-	/**
-	 * Multiple local declaration => VariabledeclarationStatement
-	 * @deprecated using deprecated code
-	 */
-//	public void test0124() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0124", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = this.ast.newVariableDeclarationFragment();
-//		fragment.setName(this.ast.newSimpleName("x"));//$NON-NLS-1$
-//		NumberLiteral literal = this.ast.newNumberLiteral();
-//		literal.setToken("10");//$NON-NLS-1$
-//		fragment.setInitializer(literal);
-//		fragment.setExtraDimensions(0);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(fragment);
-//		fragment = this.ast.newVariableDeclarationFragment();
-//		fragment.setName(this.ast.newSimpleName("z"));//$NON-NLS-1$
-//		fragment.setInitializer(this.ast.newNullLiteral());
-//		fragment.setExtraDimensions(1);
-//		statement.fragments().add(fragment);
-//		fragment = this.ast.newVariableDeclarationFragment();
-//		fragment.setName(this.ast.newSimpleName("i"));//$NON-NLS-1$
-//		fragment.setExtraDimensions(0);
-//		statement.fragments().add(fragment);
-//		fragment = this.ast.newVariableDeclarationFragment();
-//		fragment.setName(this.ast.newSimpleName("j"));//$NON-NLS-1$
-//		fragment.setExtraDimensions(2);
-//		statement.fragments().add(fragment);
-//		statement.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-//		statement.setModifiers(Modifier.NONE);
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		VariableDeclarationFragment[] fragments = (VariableDeclarationFragment[])((VariableDeclarationStatement) node).fragments().toArray(new VariableDeclarationFragment[4]);
-//		assertTrue("fragments.length != 4", fragments.length == 4); //$NON-NLS-1$
-//		checkSourceRange(fragments[0], "x= 10", source);//$NON-NLS-1$
-//		checkSourceRange(fragments[1], "z[] = null", source);//$NON-NLS-1$
-//		checkSourceRange(fragments[2], "i", source);//$NON-NLS-1$
-//		checkSourceRange(fragments[3], "j[][]", source);//$NON-NLS-1$
-//		checkSourceRange(node, "int x= 10, z[] = null, i, j[][];", source);//$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Multiple local declaration => VariabledeclarationStatement
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0125() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0125", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = this.ast.newVariableDeclarationFragment();
-//		fragment.setName(this.ast.newSimpleName("x"));//$NON-NLS-1$
-//		NumberLiteral literal = this.ast.newNumberLiteral();
-//		literal.setToken("10");//$NON-NLS-1$
-//		fragment.setInitializer(literal);
-//		fragment.setExtraDimensions(0);
-//		VariableDeclarationStatement statement = this.ast.newVariableDeclarationStatement(fragment);
-//		fragment = this.ast.newVariableDeclarationFragment();
-//		fragment.setName(this.ast.newSimpleName("z"));//$NON-NLS-1$
-//		fragment.setInitializer(this.ast.newNullLiteral());
-//		fragment.setExtraDimensions(1);
-//		statement.fragments().add(fragment);
-//		fragment = this.ast.newVariableDeclarationFragment();
-//		fragment.setName(this.ast.newSimpleName("i"));//$NON-NLS-1$
-//		fragment.setExtraDimensions(0);
-//		statement.fragments().add(fragment);
-//		fragment = this.ast.newVariableDeclarationFragment();
-//		fragment.setName(this.ast.newSimpleName("j"));//$NON-NLS-1$
-//		fragment.setExtraDimensions(2);
-//		statement.fragments().add(fragment);
-//		statement.setType(this.ast.newArrayType(this.ast.newPrimitiveType(PrimitiveType.INT), 1));
-//		statement.setModifiers(Modifier.NONE);
-//		assertTrue("Both AST trees should be identical", statement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "int[] x= 10, z[] = null, i, j[][];", source); //$NON-NLS-1$
-//		VariableDeclarationFragment[] fragments = (VariableDeclarationFragment[])((VariableDeclarationStatement) node).fragments().toArray(new VariableDeclarationFragment[4]);
-//		assertTrue("fragments.length != 4", fragments.length == 4); //$NON-NLS-1$
-//		checkSourceRange(fragments[0], "x= 10", source);//$NON-NLS-1$
-//		checkSourceRange(fragments[1], "z[] = null", source);//$NON-NLS-1$
-//		checkSourceRange(fragments[2], "i", source);//$NON-NLS-1$
-//		checkSourceRange(fragments[3], "j[][]", source);//$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * ForStatement
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0126() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0126", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		ForStatement forStatement = this.ast.newForStatement();
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("tab")); //$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(this.ast.newNullLiteral());//$NON-NLS-1$
-//		variableDeclarationFragment.setExtraDimensions(1);
-//		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-//		variableDeclarationExpression.setModifiers(Modifier.NONE);
-//		variableDeclarationExpression.setType(this.ast.newArrayType(this.ast.newSimpleType(this.ast.newSimpleName("String")), 1));//$NON-NLS-1$
-//		forStatement.initializers().add(variableDeclarationExpression);
-//		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-//		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-//		prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);
-//		forStatement.updaters().add(prefixExpression);
-//		forStatement.setBody(this.ast.newBlock());
-//		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "for (String[] tab[] = null;; ++i) {}", source); //$NON-NLS-1$
-//		checkSourceRange((ASTNode) ((ForStatement) node).updaters().get(0), "++i", source); //$NON-NLS-1$
-//		checkSourceRange((ASTNode) ((ForStatement) node).initializers().get(0), "String[] tab[] = null", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * ForStatement
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0127() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0127", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		ForStatement forStatement = this.ast.newForStatement();
-//		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-//		variableDeclarationFragment.setName(this.ast.newSimpleName("tab")); //$NON-NLS-1$
-//		variableDeclarationFragment.setInitializer(this.ast.newNullLiteral());//$NON-NLS-1$
-//		variableDeclarationFragment.setExtraDimensions(1);
-//		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-//		variableDeclarationExpression.setModifiers(Modifier.NONE);
-//		variableDeclarationExpression.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-//		forStatement.initializers().add(variableDeclarationExpression);
-//		PrefixExpression prefixExpression = this.ast.newPrefixExpression();
-//		prefixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-//		prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);
-//		forStatement.updaters().add(prefixExpression);
-//		forStatement.setBody(this.ast.newBlock());
-//		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-//		checkSourceRange(node, "for (String tab[] = null;; ++i) {}", source); //$NON-NLS-1$
-//		checkSourceRange((ASTNode) ((ForStatement) node).updaters().get(0), "++i", source); //$NON-NLS-1$
-//		checkSourceRange((ASTNode) ((ForStatement) node).initializers().get(0), "String tab[] = null", source); //$NON-NLS-1$
-//	}
-//
-	/**
-	 * ForStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0128() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0128", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-		VariableDeclarationFragment variableDeclarationFragment = this.ast.newVariableDeclarationFragment();
-		variableDeclarationFragment.setName(this.ast.newSimpleName("tab")); //$NON-NLS-1$
-		variableDeclarationFragment.setInitializer(this.ast.newNullLiteral());//$NON-NLS-1$
-//		variableDeclarationFragment.setExtraDimensions(1);
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(variableDeclarationFragment);
-		variableDeclarationExpression.setModifiers(Modifier.NONE);
-//		variableDeclarationExpression.setType(this.ast.newSimpleType(this.ast.newSimpleName("String")));//$NON-NLS-1$
-		forStatement.initializers().add(variableDeclarationExpression);
-		PostfixExpression postfixExpression = this.ast.newPostfixExpression();
-		postfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		postfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(postfixExpression);
-		forStatement.setBody(this.ast.newBlock());
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (var tab = null;; i++/**/) {}", source); //$NON-NLS-1$
-		checkSourceRange((ASTNode) ((ForStatement) node).updaters().get(0), "i++", source); //$NON-NLS-1$
-		checkSourceRange((ASTNode) ((ForStatement) node).initializers().get(0), "var tab = null", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * VariableDeclarationStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0129() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0129", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationFragment frag = (VariableDeclarationFragment) ((VariableDeclarationStatement) node).fragments().get(0);
-		assertTrue("Not a declaration", frag.getName().isDeclaration()); //$NON-NLS-1$
-
-		VariableDeclarationFragment fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-
-		
-		VariableDeclarationStatement var = this.ast.newVariableDeclarationStatement(fragment);
-//		fragment.setExtraDimensions(0);
-//		VariableDeclarationStatement fieldDeclaration = this.ast.newVariableDeclarationStatement(fragment);
-//		fieldDeclaration.setModifiers(Modifier.NONE);
-//		fieldDeclaration.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		assertTrue("Both AST trees should be identical", var.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * VariableDeclarationStatement
-	 * @deprecated using deprecated code
-	 */
-	public void test0130() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0130", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("x")); //$NON-NLS-1$
-		NumberLiteral literal = this.ast.newNumberLiteral();
-		literal.setToken("10"); //$NON-NLS-1$
-		fragment.setInitializer(literal);
-//		fragment.setExtraDimensions(0);
-		VariableDeclarationStatement variableDeclaration = this.ast.newVariableDeclarationStatement(fragment);
-//		variableDeclaration.setModifiers(Modifier.PUBLIC);
-//		fieldDeclaration.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("y"));//$NON-NLS-1$
-//		fragment.setExtraDimensions(1);
-		fragment.setInitializer(this.ast.newNullLiteral());
-		variableDeclaration.fragments().add(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("i"));//$NON-NLS-1$
-//		fragment.setExtraDimensions(0);
-		variableDeclaration.fragments().add(fragment);
-		fragment = this.ast.newVariableDeclarationFragment();
-		fragment.setName(this.ast.newSimpleName("j"));//$NON-NLS-1$
-//		fragment.setExtraDimensions(2);
-		variableDeclaration.fragments().add(fragment);
-		assertTrue("Both AST trees should be identical", variableDeclaration.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "var x= 10, y = null, i, j;", source); //$NON-NLS-1$
-		VariableDeclarationFragment[] fragments = (VariableDeclarationFragment[])((VariableDeclarationStatement) node).fragments().toArray(new VariableDeclarationFragment[4]);
-		assertTrue("fragments.length != 4", fragments.length == 4); //$NON-NLS-1$
-		checkSourceRange(fragments[0], "x= 10", source);//$NON-NLS-1$
-		checkSourceRange(fragments[1], "y = null", source);//$NON-NLS-1$
-		checkSourceRange(fragments[2], "i", source);//$NON-NLS-1$
-		checkSourceRange(fragments[3], "j", source);//$NON-NLS-1$
-	}
-
-//	/**
-//	 * Argument with final modifier
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0131() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0131", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-//		assertTrue("Not a declaration", ((FunctionDeclaration) node).getName().isDeclaration()); //$NON-NLS-1$
-//		List parameters = ((FunctionDeclaration) node).parameters();
-//		assertTrue("Parameters.length != 1", parameters.size() == 1);		//$NON-NLS-1$
-//		SingleVariableDeclaration arg = (SingleVariableDeclaration) ((FunctionDeclaration) node).parameters().get(0);
-//		SingleVariableDeclaration singleVariableDeclaration = this.ast.newSingleVariableDeclaration();
-//		singleVariableDeclaration.setModifiers(Modifier.FINAL);
-//		singleVariableDeclaration.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-//		singleVariableDeclaration.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-//		assertTrue("Both AST trees should be identical", singleVariableDeclaration.subtreeMatch(new ASTMatcher(), arg));		//$NON-NLS-1$
-//		checkSourceRange(node, "void foo(final int i) {}", source); //$NON-NLS-1$
-//		checkSourceRange(arg, "final int i", source); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0132() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0132", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		JSdoc javadoc = this.ast.newJSdoc();
-		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-		checkSourceRange(node, "/** JavaDoc Comment*/\n  function foo(i) {}", source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test0133() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0133", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "function foo(i) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test0134() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0134", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "function foo( i) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for VariableDeclarationStatement
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0135() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0135", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((VariableDeclarationStatement) node).getJavadoc();
-		JSdoc javadoc = this.ast.newJSdoc();
-		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-		checkSourceRange(node, "/** JavaDoc Comment*/\n var i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for VariableDeclarationStatement
-	 */
-	public void test0136() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0136", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((VariableDeclarationStatement) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "var i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for VariableDeclarationStatement
-	 */
-	public void test0137() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0137", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((VariableDeclarationStatement) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "var i;", source); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * Check javadoc for TypeDeclaration
-//	 */
-//	public void test0138() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0138", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		String expectedContents = "public class Test {\n" +//$NON-NLS-1$
-//			"  int i;\n"  +//$NON-NLS-1$
-//			"}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check javadoc for TypeDeclaration
-//	 */
-//	public void test0139() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0139", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		String expectedContents = "public class Test {\n" +//$NON-NLS-1$
-//			"  int i;\n"  +//$NON-NLS-1$
-//			"}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check javadoc for TypeDeclaration
-//	 * @deprecated marking deprecated since using deprecated code
-//	 */
-//	public void test0140() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0140", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		Javadoc javadoc = this.ast.newJavadoc();
-//		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-//		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-//		String expectedContents = 
-//			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-//			"public class Test {\n" +//$NON-NLS-1$
-//			"  int i;\n"  +//$NON-NLS-1$
-//			"}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * Check javadoc for MemberTypeDeclaration
-//	 * @deprecated marking deprecated since using deprecated code
-//	 */
-//	public void test0141() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0141", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		Javadoc javadoc = this.ast.newJavadoc();
-//		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-//		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-//		String expectedContents = 
-//			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-//			 "  class B {}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check javadoc for MemberTypeDeclaration
-//	 */
-//	public void test0142() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0142", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		checkSourceRange(node, "class B {}", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check javadoc for MemberTypeDeclaration
-//	 */
-//	public void test0143() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0143", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		checkSourceRange(node, "public static class B {}", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check javadoc for MemberTypeDeclaration
-//	 */
-//	public void test0144() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0144", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		checkSourceRange(node, "public static class B {}", source); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * Checking initializers
-//	 */
-//	public void test0145() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0145", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		checkSourceRange(node, "{}", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Checking initializers
-//	 */
-//	public void test0146() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0146", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		checkSourceRange(node, "static {}", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Checking initializers
-//	 * @deprecated marking deprecated since using deprecated code
-//	 */
-//	public void test0147() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0147", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((Initializer) node).getJavadoc();
-//		assertNotNull("Javadoc comment should no be null", actualJavadoc); //$NON-NLS-1$
-//		Javadoc javadoc = this.ast.newJavadoc();
-//		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-//		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-//		String expectedContents = 
-//			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-//			 "  static {}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-//		
-//	}
-//
-//	/**
-//	 * Checking initializers
-//	 * @deprecated marking deprecated since using deprecated code
-//	 */
-//	public void test0148() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0148", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((Initializer) node).getJavadoc();
-//		assertNotNull("Javadoc comment should not be null", actualJavadoc); //$NON-NLS-1$
-//		Javadoc javadoc = this.ast.newJavadoc();
-//		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-//		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-//		String expectedContents = 
-//			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-//			 "  {}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-//		
-//	}
-//
-//	/**
-//	 * Checking initializers
-//	 */
-//	public void test0149() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0149", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((Initializer) node).getJavadoc();
-//		assertNull("Javadoc comment should be null", actualJavadoc); //$NON-NLS-1$
-//		checkSourceRange(node, "{}", source); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Checking syntax error
-	 */
-	public void test0150() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0150", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertTrue("The compilation unit is malformed", !isMalformed(unit)); //$NON-NLS-1$
-//		assertTrue("The package declaration is not malformed", isMalformed(unit.getPackage())); //$NON-NLS-1$
-//		List imports = unit.imports();
-//		assertTrue("The imports list size is not one", imports.size() == 1); //$NON-NLS-1$
-//		assertTrue("The first import is malformed", !isMalformed((ASTNode) imports.get(0))); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * Checking syntax error
-//	 */
-//	public void test0151() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0151", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, false);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The compilation unit is malformed", !isMalformed(result)); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Checking syntax error
-	 */
-	public void test0152() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0152", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The compilation unit is malformed", !isMalformed(result)); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The type is malformed", !isMalformed(node)); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The field is not malformed", isMalformed(node)); //$NON-NLS-1$
-//		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The method is not malformed", isMalformed(node)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Checking syntax error
-	 */
-	public void test0153() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0153", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The compilation unit is malformed", !isMalformed(result)); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The method is not original", isOriginal(node)); //$NON-NLS-1$
-		assertTrue("The method is not malformed", isMalformed(node)); //$NON-NLS-1$
-	}
-//
-//	/**
-//	 * Checking binding of package declaration
-//	 */
-//	public void test0154() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0154", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		IBinding binding = compilationUnit.getPackage().getName().resolveBinding();
-//		assertNotNull("The package binding is null", binding); //$NON-NLS-1$
-//		assertTrue("The binding is not a package binding", binding instanceof IPackageBinding); //$NON-NLS-1$
-//		IPackageBinding packageBinding = (IPackageBinding) binding;
-//		assertEquals("The package name is incorrect", "test0154", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding2 = compilationUnit.getPackage().getName().resolveBinding();
-//		assertTrue("The package binding is not canonical", binding == binding2); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Checking arguments positions
-	 */
-	public void test0155() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0155", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit);  //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("The result is not a method declaration", node instanceof FunctionDeclaration);  //$NON-NLS-1$
-		FunctionDeclaration methodDecl = (FunctionDeclaration) node;
-		List parameters = methodDecl.parameters();
-		assertTrue("The parameters size is different from 2", parameters.size() == 2);  //$NON-NLS-1$
-		Object parameter = parameters.get(0);
-		assertTrue("The parameter is not a SingleVariableDeclaration", parameter instanceof SingleVariableDeclaration);  //$NON-NLS-1$
-		checkSourceRange((ASTNode) parameter, "i", source); //$NON-NLS-1$
-		parameter = parameters.get(1);
-		assertTrue("The parameter is not a SingleVariableDeclaration", parameter instanceof SingleVariableDeclaration);  //$NON-NLS-1$
-		checkSourceRange((ASTNode) parameter, "b", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Checking arguments positions
-	 */
-	public void test0156() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0156", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit);  //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("The result is not a method declaration", node instanceof FunctionDeclaration);  //$NON-NLS-1$
-		FunctionDeclaration methodDecl = (FunctionDeclaration) node;
-		List parameters = methodDecl.parameters();
-		assertTrue("The parameters size is different from 1", parameters.size() == 1);  //$NON-NLS-1$
-		Object parameter = parameters.get(0);
-		assertTrue("The parameter is not a SingleVariableDeclaration", parameter instanceof SingleVariableDeclaration);  //$NON-NLS-1$
-		checkSourceRange((ASTNode) parameter, "i", source); //$NON-NLS-1$
-		Block block = methodDecl.getBody();
-		List statements = block.statements();
-		assertTrue("The statements size is different from 2", statements.size() == 2);  //$NON-NLS-1$
-		ASTNode statement = (ASTNode) statements.get(0);
-		assertTrue("The statements[0] is a postfixExpression statement", statement instanceof ExpressionStatement);  //$NON-NLS-1$
-	}
-
-	/**
-	 * Check canonic binding for fields
-	 */
-	public void test0157() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test0157.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List statements = compilationUnit.statements();
-		assertTrue("The types list is empty", statements.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("Type binding is null", typeBinding); //$NON-NLS-1$
-//		assertTrue("The type binding is canonical", typeBinding == typeDeclaration.resolveBinding()); //$NON-NLS-1$
-//		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-//		assertTrue("The body declaration list is empty", bodyDeclarations.size() != 0); //$NON-NLS-1$
-		Statement bodyDeclaration = (Statement) statements.get(0);
-		assertTrue("This is not a field", bodyDeclaration instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) bodyDeclaration;
-		List variableFragments = fieldDeclaration.fragments();
-		assertTrue("The fragment list is empty", variableFragments.size() != 0); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableFragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("the field binding is null", variableBinding); //$NON-NLS-1$
-		assertTrue("The field binding is not canonical", variableBinding == fragment.resolveBinding()); //$NON-NLS-1$
-		ITypeBinding typeBinding = variableBinding.getType();
-//		assertTrue("The type is not an array type", typeBinding.isArray()); //$NON-NLS-1$
-		assertTrue("The type binding for the field is not canonical", typeBinding == variableBinding.getType()); //$NON-NLS-1$
-		SimpleName name = fragment.getName();
-		assertTrue("is a declaration", name.isDeclaration()); //$NON-NLS-1$
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong type", IBinding.VARIABLE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("is a field", !((IVariableBinding) binding).isField()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check canonic bindings for fields
-	 */
-	public void test0158() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test0158.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List statements = compilationUnit.statements();
-		assertTrue("The types list is empty", statements.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("Type binding is null", typeBinding); //$NON-NLS-1$
-//		assertTrue("The type binding is canonical", typeBinding == typeDeclaration.resolveBinding()); //$NON-NLS-1$
-//		SimpleName simpleName = typeDeclaration.getName();
-//		assertTrue("is a declaration", simpleName.isDeclaration()); //$NON-NLS-1$
-//		IBinding binding = simpleName.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-//		assertEquals("wrong name", simpleName.getIdentifier(), binding.getName()); //$NON-NLS-1$
-//		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-//		assertTrue("The body declaration list is empty", bodyDeclarations.size() != 0); //$NON-NLS-1$
-		Statement bodyDeclaration = (Statement) statements.get(0);
-		assertTrue("This is not a field", bodyDeclaration instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) bodyDeclaration;
-		List variableFragments = fieldDeclaration.fragments();
-		assertTrue("The fragment list is empty", variableFragments.size() != 0); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableFragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("the field binding is null", variableBinding); //$NON-NLS-1$
-		assertTrue("The field binding is not canonical", variableBinding == fragment.resolveBinding()); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = variableBinding.getType();
-//		assertTrue("The type is not an array type", typeBinding2.isArray()); //$NON-NLS-1$
-		assertTrue("The type binding for the field is not canonical", typeBinding2 == variableBinding.getType()); //$NON-NLS-1$
-//		assertTrue("The type binding for the field is not canonical with the declaration type binding", typeBinding == typeBinding2.getElementType()); //$NON-NLS-1$
-	}
-	
-//	/**
-//	 * Define an anonymous type
-//	 */
-//	public void test0159() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0159", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//	}
-	
-	/**
-	 * Check bindings for multiple field declarations
-	 */
-	public void test0160() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0160", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List statements = compilationUnit.statements();
-		assertTrue("The statements list is empty", statements.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("Type binding is null", typeBinding); //$NON-NLS-1$
-//		assertTrue("The type binding is canonical", typeBinding == typeDeclaration.resolveBinding()); //$NON-NLS-1$
-//		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-//		assertTrue("The body declaration list is empty", bodyDeclarations.size() != 0); //$NON-NLS-1$
-		Statement bodyDeclaration = (Statement) statements.get(0);
-		assertTrue("This is not a field", bodyDeclaration instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) bodyDeclaration;
-		List variableFragments = fieldDeclaration.fragments();
-		assertTrue("The fragment list size is not 2", variableFragments.size() == 2); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableFragments.get(0);
-		IVariableBinding variableBinding1 = fragment.resolveBinding();
-		assertNotNull("the field binding is null", variableBinding1); //$NON-NLS-1$
-		assertTrue("The field binding is not canonical", variableBinding1 == fragment.resolveBinding()); //$NON-NLS-1$
-		ITypeBinding type1 = variableBinding1.getType();
-		assertNotNull("The type is null", type1); //$NON-NLS-1$
-		assertTrue("The field type is canonical", type1 == variableBinding1.getType()); //$NON-NLS-1$
-//		assertTrue("The type is not an array type",type1.isArray()); //$NON-NLS-1$
-//		assertTrue("The type dimension is 1", type1.getDimensions() == 1); //$NON-NLS-1$
-		fragment = (VariableDeclarationFragment) variableFragments.get(1);
-		IVariableBinding variableBinding2 = fragment.resolveBinding();
-		assertNotNull("the field binding is null", variableBinding2); //$NON-NLS-1$
-		assertTrue("The field binding is not canonical", variableBinding2 == fragment.resolveBinding()); //$NON-NLS-1$
-		ITypeBinding type2 = variableBinding2.getType();
-		type2 = variableBinding2.getType();
-		assertNotNull("The type is null", type2); //$NON-NLS-1$
-		assertTrue("The field type is canonical", type2 == variableBinding2.getType()); //$NON-NLS-1$
-//		assertTrue("The type is not an array type",type2.isArray()); //$NON-NLS-1$
-//		assertTrue("The type dimension is 2", type2.getDimensions() == 2); //$NON-NLS-1$
-//		assertTrue("Element type is canonical", type1.getElementType() == type2.getElementType()); //$NON-NLS-1$
-		assertTrue("type1.id < type2.id", variableBinding1.getVariableId() < variableBinding2.getVariableId()); //$NON-NLS-1$
-				
-	}
-//	
-//	/**
-//	 * Check ITypeBinding APIs:
-//	 *  - getModifiers()
-//	 *  - getElementType() when it is not an array type
-//	 *  - getDimensions() when it is not an array type
-//	 *  - getDeclaringClass()
-//	 *  - getDeclaringName()
-//	 *  - getName()
-//	 *  - isNested()
-//	 *  - isAnonymous()
-//	 *  - isLocal()
-//	 *  - isMember()
-//	 *  - isArray()
-//	 *  - getDeclaredMethods() => returns binding for default constructor
-//	 *  - isPrimitive()
-//	 *  - isTopLevel()
-//	 *  - getSuperclass()
-//	 */
-//	public void test0161() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0161", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		List types = compilationUnit.types();
-//		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("The type binding should not be null", typeBinding); //$NON-NLS-1$
-//		assertEquals("The modifier is PUBLIC", Modifier.PUBLIC, typeBinding.getModifiers()); //$NON-NLS-1$
-//		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-//		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-//		assertNull("This is not a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-//		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-//		assertEquals("Contains the default constructor", 1, methods.length); //$NON-NLS-1$
-//		assertEquals("The name is not Test", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("An anonymous class", !typeBinding.isAnonymous()); //$NON-NLS-1$
-//		assertTrue("A local class", !typeBinding.isLocal()); //$NON-NLS-1$
-//		assertTrue("A nested class", !typeBinding.isNested()); //$NON-NLS-1$
-//		assertTrue("A member class", !typeBinding.isMember()); //$NON-NLS-1$
-//		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-//		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-//		assertTrue("An interface", !typeBinding.isInterface()); //$NON-NLS-1$
-//		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-//		assertTrue("Is nested", typeBinding.isTopLevel()); //$NON-NLS-1$
-//		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-//		ITypeBinding superclass = typeBinding.getSuperclass();
-//		assertNotNull("No superclass", superclass); //$NON-NLS-1$
-//		assertTrue("From source", !superclass.isFromSource()); //$NON-NLS-1$
-//		ITypeBinding supersuperclass = superclass.getSuperclass();
-//		assertNull("No superclass for java.lang.Object", supersuperclass); //$NON-NLS-1$
-//		ITypeBinding[] interfaces = typeBinding.getInterfaces();
-//		assertNotNull("No interfaces", interfaces); //$NON-NLS-1$
-//		assertEquals("More then one super interface", 1, interfaces.length); //$NON-NLS-1$
-//		assertTrue("is not an interface", interfaces[0].isInterface()); //$NON-NLS-1$
-//		assertTrue("From source", !interfaces[0].isFromSource()); //$NON-NLS-1$
-//		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check ITypeBinding APIs:
-//	 *  - getModifiers()
-//	 *  - getElementType() when it is not an array type
-//	 *  - getDimensions() when it is not an array type
-//	 *  - getDeclaringClass()
-//	 *  - getDeclaringName()
-//	 *  - getName()
-//	 *  - isNested()
-//	 *  - isAnonymous()
-//	 *  - isLocal()
-//	 *  - isMember()
-//	 *  - isArray()
-//	 *  - getDeclaredMethods() => returns binding for default constructor
-//	 *  - isPrimitive()
-//	 *  - isTopLevel()
-//	 *  - getSuperclass()
-//	 */
-//	public void test0162() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0162", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		List types = compilationUnit.types();
-//		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("The type binding should not be null", typeBinding); //$NON-NLS-1$
-//		assertEquals("The modifier is PUBLIC", Modifier.PUBLIC, typeBinding.getModifiers()); //$NON-NLS-1$
-//		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-//		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-//		assertNull("This is not a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-//		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-//		assertEquals("Contains no methos", 0, methods.length); //$NON-NLS-1$
-//		assertEquals("The name is not Test", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("An anonymous class", !typeBinding.isAnonymous()); //$NON-NLS-1$
-//		assertTrue("A local class", !typeBinding.isLocal()); //$NON-NLS-1$
-//		assertTrue("A nested class", !typeBinding.isNested()); //$NON-NLS-1$
-//		assertTrue("A member class", !typeBinding.isMember()); //$NON-NLS-1$
-//		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-//		assertTrue("A class", !typeBinding.isClass()); //$NON-NLS-1$
-//		assertTrue("Not an interface", typeBinding.isInterface()); //$NON-NLS-1$
-//		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-//		assertTrue("Is nested", typeBinding.isTopLevel()); //$NON-NLS-1$
-//		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-//		ITypeBinding superclass = typeBinding.getSuperclass();
-//		assertNull("No superclass", superclass); //$NON-NLS-1$
-//		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Test binding for anonymous declaration: new java.lang.Object() {}
-//	 */
-//	public void test0163() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0163", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode expression = getASTNodeToCompare((JavaScriptUnit) result);
-//		assertNotNull("Expression should not be null", expression); //$NON-NLS-1$
-//		assertTrue("Not an anonymous type declaration", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-//		ClassInstanceCreation anonymousClass = (ClassInstanceCreation) expression;
-//		ITypeBinding typeBinding = anonymousClass.resolveTypeBinding();
-//		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-//		assertTrue("Not an anonymous class", typeBinding.isAnonymous()); //$NON-NLS-1$
-//		assertEquals("The modifier is not default", Modifier.NONE, typeBinding.getModifiers()); //$NON-NLS-1$
-//		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-//		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-//		assertNotNull("This is a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-//		assertEquals("The name is not empty", "", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-//		assertEquals("Contains the default constructor", 1, methods.length); //$NON-NLS-1$
-//		assertTrue("Not a local class", typeBinding.isLocal()); //$NON-NLS-1$
-//		assertTrue("Not a nested class", typeBinding.isNested()); //$NON-NLS-1$
-//		assertTrue("A member class", !typeBinding.isMember()); //$NON-NLS-1$
-//		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-//		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-//		assertTrue("An interface", !typeBinding.isInterface()); //$NON-NLS-1$
-//		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-//		assertTrue("Is a top level", !typeBinding.isTopLevel()); //$NON-NLS-1$
-//		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-//		assertEquals("wrong qualified name", "", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		ITypeBinding superclass = typeBinding.getSuperclass();
-//		assertNotNull("No superclass", superclass); //$NON-NLS-1$
-//		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-//	}
-//	
-//	/**
-//	 * Test binding for member type declaration
-//	 */
-//	public void test0164() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0164", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("Not an type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-//		assertTrue("An anonymous class", !typeBinding.isAnonymous()); //$NON-NLS-1$
-//		assertEquals("The modifier is not default", Modifier.PRIVATE, typeBinding.getModifiers()); //$NON-NLS-1$
-//		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-//		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-//		assertNotNull("This is not a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-//		assertEquals("The name is not 'B'", "B", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-//		assertEquals("Contains the default constructor", 1, methods.length); //$NON-NLS-1$
-//		assertTrue("A local class", !typeBinding.isLocal()); //$NON-NLS-1$
-//		assertTrue("Not a nested class", typeBinding.isNested()); //$NON-NLS-1$
-//		assertTrue("Not a member class", typeBinding.isMember()); //$NON-NLS-1$
-//		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-//		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-//		assertTrue("An interface", !typeBinding.isInterface()); //$NON-NLS-1$
-//		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-//		assertTrue("Is a top level", !typeBinding.isTopLevel()); //$NON-NLS-1$
-//		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-//		ITypeBinding superclass = typeBinding.getSuperclass();
-//		assertNotNull("No superclass", superclass); //$NON-NLS-1$
-//		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-//	}
-//	
-//	/**
-//	 * Test binding for local type declaration
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0165() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0165", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("Not an type declaration", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-//		TypeDeclarationStatement statement = (TypeDeclarationStatement) node;
-//		TypeDeclaration typeDeclaration = statement.getTypeDeclaration();
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-//		assertTrue("An anonymous class", !typeBinding.isAnonymous()); //$NON-NLS-1$
-//		assertEquals("The modifier is not default", Modifier.NONE, typeBinding.getModifiers()); //$NON-NLS-1$
-//		assertNull("There is no element type", typeBinding.getElementType()); //$NON-NLS-1$
-//		assertEquals("There is no dimension", 0, typeBinding.getDimensions()); //$NON-NLS-1$
-//		assertNotNull("This is not a member type", typeBinding.getDeclaringClass()); //$NON-NLS-1$
-//		assertEquals("The name is not 'C'", "C", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IFunctionBinding[] methods = typeBinding.getDeclaredMethods();
-//		assertEquals("Contains the default constructor", 1, methods.length); //$NON-NLS-1$
-//		assertTrue("Not a local class", typeBinding.isLocal()); //$NON-NLS-1$
-//		assertTrue("Not a nested class", typeBinding.isNested()); //$NON-NLS-1$
-//		assertTrue("A member class", !typeBinding.isMember()); //$NON-NLS-1$
-//		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-//		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-//		assertTrue("An interface", !typeBinding.isInterface()); //$NON-NLS-1$
-//		assertTrue("Not from source", typeBinding.isFromSource()); //$NON-NLS-1$
-//		assertTrue("Is a top level", !typeBinding.isTopLevel()); //$NON-NLS-1$
-//		assertTrue("A primitive type", !typeBinding.isPrimitive()); //$NON-NLS-1$
-//		assertEquals("wrong qualified name", "", typeBinding.getQualifiedName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		ITypeBinding superclass = typeBinding.getSuperclass();
-//		assertNotNull("No superclass", superclass); //$NON-NLS-1$
-//		assertEquals("Has fields", 0, typeBinding.getDeclaredFields().length); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Multiple local declaration => VariabledeclarationStatement
-	 */
-	public void test0166() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0166", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("Fragment list is not 4 ", fragments.size() == 4); //$NON-NLS-1$
-		VariableDeclarationFragment fragment1 = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding binding1 = fragment1.resolveBinding();
-		assertNotNull("Binding is null", binding1); //$NON-NLS-1$
-		assertEquals("wrong name for binding1", "x", binding1.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier for binding1", 0, binding1.getModifiers()); //$NON-NLS-1$
-		assertTrue("a field", !binding1.isField()); //$NON-NLS-1$
-//		assertNull("declaring class is not null", binding1.getDeclaringClass()); //$NON-NLS-1$
-		ITypeBinding typeBinding1 = binding1.getType();
-		assertNotNull("typeBinding1 is null", typeBinding1); //$NON-NLS-1$
-//		assertTrue("typeBinding1 is not a primitive type", typeBinding1.isPrimitive()); //$NON-NLS-1$
-//		assertTrue("typeBinding1 is not canonical", typeBinding1 == binding1.getType()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment2 = (VariableDeclarationFragment) fragments.get(1);
-		IVariableBinding binding2 = fragment2.resolveBinding();
-		assertNotNull("Binding is null", binding2); //$NON-NLS-1$
-		assertEquals("wrong name for binding2", "z", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier for binding2", 0, binding2.getModifiers()); //$NON-NLS-1$
-		assertTrue("a field", !binding2.isField()); //$NON-NLS-1$
-//		assertNull("declaring class is not null", binding2.getDeclaringClass()); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = binding2.getType();
-		assertNotNull("typeBinding2 is null", typeBinding2); //$NON-NLS-1$
-//		assertTrue("typeBinding2 is not an array type", typeBinding2.isArray()); //$NON-NLS-1$
-//		assertTrue("typeBinding2 is not canonical", typeBinding2 == binding2.getType()); //$NON-NLS-1$
-//		assertTrue("primitive type is not canonical", typeBinding1 == typeBinding2.getElementType()); //$NON-NLS-1$
-//		assertEquals("dimension is 1", 1, typeBinding2.getDimensions()); //$NON-NLS-1$
-//		assertEquals("it is not int[]", "int[]", typeBinding2.getName());		 //$NON-NLS-1$ //$NON-NLS-2$
-		VariableDeclarationFragment fragment3 = (VariableDeclarationFragment) fragments.get(2);
-		IVariableBinding binding3 = fragment3.resolveBinding();
-		assertNotNull("Binding is null", binding3); //$NON-NLS-1$
-		assertEquals("wrong name for binding3", "i", binding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier for binding3", 0, binding3.getModifiers()); //$NON-NLS-1$
-		assertTrue("a field", !binding3.isField()); //$NON-NLS-1$
-//		assertNull("declaring class is not null", binding3.getDeclaringClass()); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = binding3.getType();
-		assertNotNull("typeBinding3 is null", typeBinding3); //$NON-NLS-1$
-//		assertTrue("typeBinding3 is not an primitive type", typeBinding3.isPrimitive()); //$NON-NLS-1$
-//		assertTrue("typeBinding3 is not canonical", typeBinding3 == binding3.getType()); //$NON-NLS-1$
-//		assertTrue("primitive type is not canonical", typeBinding1 == typeBinding3); //$NON-NLS-1$
-		assertEquals("dimension is 0", 0, typeBinding3.getDimensions()); //$NON-NLS-1$
-		assertEquals("it is not the primitive type any", "any", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		VariableDeclarationFragment fragment4 = (VariableDeclarationFragment) fragments.get(3);
-		IVariableBinding binding4 = fragment4.resolveBinding();
-		assertNotNull("Binding is null", binding4); //$NON-NLS-1$
-		assertEquals("wrong name for binding4", "j", binding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier for binding4", 0, binding4.getModifiers()); //$NON-NLS-1$
-		assertTrue("a field", !binding4.isField()); //$NON-NLS-1$
-		assertNull("declaring class is not null", binding4.getDeclaringClass()); //$NON-NLS-1$
-		ITypeBinding typeBinding4 = binding4.getType();
-		assertNotNull("typeBinding4 is null", typeBinding4); //$NON-NLS-1$
-//		assertTrue("typeBinding4 is not an array type", typeBinding4.isArray()); //$NON-NLS-1$
-//		assertTrue("typeBinding4 is not canonical", typeBinding4 == binding4.getType()); //$NON-NLS-1$
-//		assertTrue("primitive type is not canonical", typeBinding1 == typeBinding4.getElementType()); //$NON-NLS-1$
-//		assertEquals("dimension is 2", 2, typeBinding4.getDimensions()); //$NON-NLS-1$
-//		assertEquals("it is not int[][]", "int[][]", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("ids in the wrong order", binding1.getVariableId() < binding2.getVariableId()); //$NON-NLS-1$
-		assertTrue("ids in the wrong order", binding2.getVariableId() < binding3.getVariableId()); //$NON-NLS-1$
-		assertTrue("ids in the wrong order", binding3.getVariableId() < binding4.getVariableId()); //$NON-NLS-1$
-	}
-//	
-//	/**
-//	 * Check source position for new Test[1+2].length.
-//	 */
-//	public void test0167() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0167", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("Instance of VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertTrue("fragment list size is not 1", fragments.size() == 1); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression initialization = fragment.getInitializer();
-//		assertNotNull("No initialization", initialization); //$NON-NLS-1$
-//		assertTrue("Not a FieldAccess", initialization instanceof FieldAccess); //$NON-NLS-1$
-//		checkSourceRange(initialization, "new Test[1+2].length", source); //$NON-NLS-1$
-//	}
-//	
-//	/**
-//	 * Check package binding: test0168.test
-//	 */
-//	public void test0168() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0168.test1", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		List types = compilationUnit.types();
-//		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-//		IPackageBinding packageBinding = typeBinding.getPackage();
-//		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-//		assertEquals("wrong name", "test0168.test1", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		String[] components = packageBinding.getNameComponents();
-//		assertNotNull("no components", components); //$NON-NLS-1$
-//		assertTrue("components size != 2", components.length == 2); //$NON-NLS-1$
-//		assertEquals("wrong component name", "test0168", components[0]); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("wrong component name", "test1", components[1]); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("wrong type", IBinding.PACKAGE, packageBinding.getKind()); //$NON-NLS-1$
-//		assertTrue("Unnamed package", !packageBinding.isUnnamed()); //$NON-NLS-1$
-//		assertTrue("Package binding is not canonical", packageBinding == typeBinding.getPackage()); //$NON-NLS-1$
-//	}
-	
-//	/**
-//	 * Check package binding: test0169
-//	 */
-//	public void test0169() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0169", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		List types = compilationUnit.types();
-//		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-//		IPackageBinding packageBinding = typeBinding.getPackage();
-//		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-//		assertEquals("wrong name", "test0169", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		String[] components = packageBinding.getNameComponents();
-//		assertNotNull("no components", components); //$NON-NLS-1$
-//		assertTrue("components size != 1", components.length == 1); //$NON-NLS-1$
-//		assertEquals("wrong component name", "test0169", components[0]); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("wrong type", IBinding.PACKAGE, packageBinding.getKind()); //$NON-NLS-1$
-//		assertTrue("Unnamed package", !packageBinding.isUnnamed()); //$NON-NLS-1$
-//		assertTrue("Package binding is not canonical", packageBinding == typeBinding.getPackage()); //$NON-NLS-1$
-//	}
-	
-//	/**
-//	 * Check package binding: test0170
-//	 */
-//	public void test0170() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test0170.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		List types = compilationUnit.types();
-//		assertTrue("The types list is empty", types.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-//		IPackageBinding packageBinding = typeBinding.getPackage();
-//		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-//		assertEquals("wrong name", "", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		String[] components = packageBinding.getNameComponents();
-//		assertNotNull("no components", components); //$NON-NLS-1$
-//		assertTrue("components size != 0", components.length == 0); //$NON-NLS-1$
-//		assertEquals("wrong type", IBinding.PACKAGE, packageBinding.getKind()); //$NON-NLS-1$
-//		assertTrue("Not an unnamed package", packageBinding.isUnnamed()); //$NON-NLS-1$
-//		assertTrue("Package binding is not canonical", packageBinding == typeBinding.getPackage()); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check package binding: test0171
-//	 */
-//	public void test0171() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0171", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		List types = compilationUnit.types();
-//		assertTrue("The types list is empty", types.size() == 2); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) types.get(0);
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-//		IPackageBinding packageBinding = typeBinding.getPackage();
-//		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-//		assertEquals("wrong name", "test0171", packageBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		String[] components = packageBinding.getNameComponents();
-//		assertNotNull("no components", components); //$NON-NLS-1$
-//		assertTrue("components size != 1", components.length == 1); //$NON-NLS-1$
-//		assertEquals("wrong component name", "test0171", components[0]); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("wrong type", IBinding.PACKAGE, packageBinding.getKind()); //$NON-NLS-1$
-//		assertTrue("Unnamed package", !packageBinding.isUnnamed()); //$NON-NLS-1$
-//		assertTrue("Package binding is not canonical", packageBinding == typeBinding.getPackage()); //$NON-NLS-1$
-//		
-//		typeDeclaration = (TypeDeclaration) types.get(1);
-//		typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-//		IPackageBinding packageBinding2 = typeBinding.getPackage();
-//		assertNotNull("No package binding", packageBinding); //$NON-NLS-1$
-//		assertTrue("Package binding is not canonical", packageBinding == packageBinding2); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Check method binding
-	 */
-	public void test0172() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0172", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-		assertTrue("The result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		List statements = compilationUnit.statements();
-		assertTrue("The statements list is empty", statements.size() != 0); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) statements.get(0);
-//		ITypeBinding typeBinding =  typeDeclaration.resolveBinding();
-//		assertNotNull("Binding not null", typeBinding); //$NON-NLS-1$
-//		IFunctionBinding[] methods = null;// typeBinding.getDeclaredMethods();
-//		assertNotNull("No methods", methods);
-//		assertEquals("methods.length != 4", 4, methods.length); //$NON-NLS-1$
-//		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("statements size != 3", 3, statements.size()); //$NON-NLS-1$
-		FunctionDeclaration method1 = (FunctionDeclaration) statements.get(0);
-		IFunctionBinding methodBinding1 = method1.resolveBinding();
-		assertNotNull("No method binding for foo", methodBinding1); //$NON-NLS-1$
-		SimpleName simpleName = method1.getName();
-		assertTrue("not a declaration", simpleName.isDeclaration()); //$NON-NLS-1$
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", binding.getName(), simpleName.getIdentifier()); //$NON-NLS-1$
-		// search method foo
-//		IFunctionBinding methodBinding = null;
-//		loop: for (int i = 0, max = methods.length; i < max; i++) {
-//			IFunctionBinding currentMethod = methods[i];
-//			if ("foo".equals(currentMethod.getName())) {
-//				methodBinding = currentMethod;
-//				break loop;
-//			}
-//		}
-//		assertNotNull("Cannot be null", methodBinding);
-//		assertTrue("Canonical method binding", methodBinding1 == methodBinding); //$NON-NLS-1$
-//		assertTrue("declaring class is canonical", typeBinding == methodBinding1.getDeclaringClass()); //$NON-NLS-1$
-//		ITypeBinding[] exceptionTypes = methodBinding1.getExceptionTypes();
-//		assertNotNull("No exception types", exceptionTypes); //$NON-NLS-1$
-//		assertEquals("One exception", 1, exceptionTypes.length); //$NON-NLS-1$
-//		assertEquals("wrong name for exception", "IOException", exceptionTypes[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong modifier", Modifier.PUBLIC, methodBinding1.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name for method", "foo", methodBinding1.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding[] parameters = methodBinding1.getParameterTypes();
-		assertNotNull("No parameters", parameters); //$NON-NLS-1$
-		assertEquals("wrong size", 1, parameters.length); //$NON-NLS-1$
-//		assertEquals("wrong type", "int[]", parameters[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong return type", "void", methodBinding1.getReturnType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("A constructor", !methodBinding1.isConstructor()); //$NON-NLS-1$
-		
-		FunctionDeclaration method2 = (FunctionDeclaration) statements.get(1);
-		IFunctionBinding methodBinding2 = method2.resolveBinding();
-		assertNotNull("No method binding for main", methodBinding2); //$NON-NLS-1$
-//		methodBinding = null;
-//		loop: for (int i = 0, max = methods.length; i < max; i++) {
-//			IFunctionBinding currentMethod = methods[i];
-//			if ("main".equals(currentMethod.getName())) {
-//				methodBinding = currentMethod;
-//				break loop;
-//			}
-//		}
-//		assertNotNull("Cannot be null", methodBinding);
-//		assertTrue("Canonical method binding", methodBinding2 == methodBinding); //$NON-NLS-1$
-//		assertTrue("declaring class is canonical", typeBinding == methodBinding2.getDeclaringClass()); //$NON-NLS-1$
-//		ITypeBinding[] exceptionTypes2 = methodBinding2.getExceptionTypes();
-//		assertNotNull("No exception types", exceptionTypes2); //$NON-NLS-1$
-//		assertEquals("No exception", 0, exceptionTypes2.length); //$NON-NLS-1$
-//		assertEquals("wrong modifier", Modifier.PUBLIC | Modifier.STATIC, methodBinding2.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name for method", "main", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding[] parameters2 = methodBinding2.getParameterTypes();
-		assertNotNull("No parameters", parameters2); //$NON-NLS-1$
-		assertEquals("wrong size", 1, parameters2.length); //$NON-NLS-1$
-//		assertEquals("wrong type for parameter2[0]", "String[]", parameters2[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong return type", "void", methodBinding2.getReturnType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("A constructor", !methodBinding2.isConstructor()); //$NON-NLS-1$
-		
-		FunctionDeclaration method3 = (FunctionDeclaration) statements.get(2);
-		IFunctionBinding methodBinding3 = method3.resolveBinding();
-		assertNotNull("No method binding for main", methodBinding3); //$NON-NLS-1$
-//		methodBinding = null;
-//		loop: for (int i = 0, max = methods.length; i < max; i++) {
-//			IFunctionBinding currentMethod = methods[i];
-//			if ("bar".equals(currentMethod.getName())) {
-//				methodBinding = currentMethod;
-//				break loop;
-//			}
-//		}		
-//		assertNotNull("Cannot be null", methodBinding);
-//		assertTrue("Canonical method binding", methodBinding3 == methodBinding); //$NON-NLS-1$
-//		assertTrue("declaring class is canonical", typeBinding == methodBinding3.getDeclaringClass()); //$NON-NLS-1$
-//		ITypeBinding[] exceptionTypes3 = methodBinding3.getExceptionTypes();
-//		assertNotNull("No exception types", exceptionTypes3); //$NON-NLS-1$
-//		assertEquals("No exception", 1, exceptionTypes3.length); //$NON-NLS-1$
-//		assertEquals("wrong modifier", Modifier.PRIVATE, methodBinding3.getModifiers()); //$NON-NLS-1$
-		assertEquals("wrong name for method", "bar", methodBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding[] parameters3 = methodBinding3.getParameterTypes();
-		assertNotNull("No parameters", parameters3); //$NON-NLS-1$
-		assertEquals("wrong size", 1, parameters3.length); //$NON-NLS-1$
-		assertEquals("wrong type", "any", parameters3[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong return type", "any", methodBinding3.getReturnType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("A constructor", !methodBinding3.isConstructor()); //$NON-NLS-1$
-		assertTrue("The binding is not canonical", parameters3[0] == methodBinding3.getReturnType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * i++; IVariableBinding
-	 */
-	public void test0173() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0173", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Not an expressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Not a postfixexpression", ex instanceof PostfixExpression); //$NON-NLS-1$
-		PostfixExpression postfixExpression = (PostfixExpression) ex;
-		Expression expr = postfixExpression.getOperand();
-		assertTrue("Not a simpleName", expr instanceof SimpleName); //$NON-NLS-1$
-		SimpleName name = (SimpleName) expr;
-		assertTrue("a declaration", !name.isDeclaration()); //$NON-NLS-1$
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertTrue(variableBinding == binding);
-	}
-
-	/**
-	 * i++; IVariableBinding (field)
-	 */
-	public void test0174() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0174", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Not an expressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Not a postfixexpression", ex instanceof PostfixExpression); //$NON-NLS-1$
-		PostfixExpression postfixExpression = (PostfixExpression) ex;
-		Expression expr = postfixExpression.getOperand();
-		assertTrue("Not a simpleName", expr instanceof SimpleName); //$NON-NLS-1$
-		SimpleName name = (SimpleName) expr;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node2;
-		List fragments = fieldDeclaration.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertTrue(variableBinding == binding);
-	}
-	
-	/**
-	 * int i = 0; Test IntBinding for the field declaration and the 0 literal
-	 */
-	public void test0175() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0175", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node2;
-		List fragments = fieldDeclaration.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		ITypeBinding typeBinding = fragment.getInitializer().resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not Number", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * i++; IVariableBinding
-	 */
-	public void test0177() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0177", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 1, 1);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("Not an expressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Not a postfixexpression", ex instanceof PostfixExpression); //$NON-NLS-1$
-		PostfixExpression postfixExpression = (PostfixExpression) ex;
-		Expression expr = postfixExpression.getOperand();
-		assertTrue("Not a simpleName", expr instanceof SimpleName); //$NON-NLS-1$
-		SimpleName name = (SimpleName) expr;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertEquals("return type is not Number", "Number", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(variableBinding == binding);
-	}
-//
-//	/**
-//	 * SuperReference
-//	 */
-//	public void test0178() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0178", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-//		assertTrue("Return statement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) node2;
-//		Expression expr = returnStatement.getExpression();
-//		assertTrue("Not a field access", expr instanceof SuperFieldAccess); //$NON-NLS-1$
-//		SuperFieldAccess fieldAccess = (SuperFieldAccess) expr;
-//		ITypeBinding typeBinding = fieldAccess.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertTrue("Not a primitive type", typeBinding.isPrimitive()); //$NON-NLS-1$
-//		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}	
-	
-	/**
-	 * Allocation expression
-	 */
-	public void test0179() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0179", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		Expression initialization = fragment.getInitializer();
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue(variableBinding.getType() == typeBinding);
-	}	
-
-//	/**
-//	 * Allocation expression
-//	 */
-//	public void test0180() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0180", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-//		IVariableBinding variableBinding = fragment.resolveBinding();
-//		Expression initialization = fragment.getInitializer();
-//		assertTrue("No an array creation", initialization instanceof ArrayCreation); //$NON-NLS-1$
-//		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertTrue("Not an array", typeBinding.isArray()); //$NON-NLS-1$
-//		assertTrue(variableBinding.getType() == typeBinding);
-//	}	
-//
-//	/**
-//	 * Allocation expression
-//	 */
-//	public void test0181() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0181", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-//		IVariableBinding variableBinding = fragment.resolveBinding();
-//		Expression initialization = fragment.getInitializer();
-//		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertTrue("Not an array", typeBinding.isArray()); //$NON-NLS-1$
-//		assertTrue(variableBinding.getType() == typeBinding);
-//	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0182() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0182", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i < 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0183() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0183", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i < 10 && i < 20", source); //$NON-NLS-1$
-	}	
-	
-	/**
-	 * BinaryExpression
-	 */
-	public void test0184() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0184", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i < 10 || i < 20", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0185() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0185", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i == 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0186() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0186", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node2;
-		Expression expr = ifStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "o == o", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0187() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0187", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("IfStatement", node2 instanceof WhileStatement); //$NON-NLS-1$
-		WhileStatement whileStatement = (WhileStatement) node2;
-		Expression expr = whileStatement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i <= 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0188() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0188", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 2);
-		assertTrue("DoStatement", node2 instanceof DoStatement); //$NON-NLS-1$
-		DoStatement statement = (DoStatement) node2;
-		Expression expr = statement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i <= 10", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0189() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0189", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("ForStatement", node2 instanceof ForStatement); //$NON-NLS-1$
-		ForStatement statement = (ForStatement) node2;
-		Expression expr = statement.getExpression();
-		assertNotNull("No condition", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "i < 10", source); //$NON-NLS-1$
-	}	
-//
-//	/**
-//	 * BinaryExpression
-//	 */
-//	public void test0190() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0190", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 2, 1);
-//		assertTrue("IfStatement", node2 instanceof IfStatement); //$NON-NLS-1$
-//		IfStatement statement = (IfStatement) node2;
-//		Expression expr = statement.getExpression();
-//		assertNotNull("No condition", expr); //$NON-NLS-1$
-//		ITypeBinding typeBinding = expr.resolveTypeBinding();
-//		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		checkSourceRange(expr, "scanner.x < selection.start && selection.start < scanner.y", source); //$NON-NLS-1$
-//	}	
-
-	/**
-	 * BinaryExpression
-	 */
-	public void test0191() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0191", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression ex = expressionStatement.getExpression();
-		assertTrue("Assignment", ex instanceof Assignment); //$NON-NLS-1$
-		Assignment statement = (Assignment) ex;
-		Expression rightExpr = statement.getRightHandSide();
-		assertTrue("Not an infix expression", rightExpr instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) rightExpr;
-		Expression expr = infixExpression.getRightOperand();
-		assertNotNull("No right hand side expression", expr); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not a boolean", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(expr, "2 < 20", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0192() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0192", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		Expression initialization = fragment.getInitializer();
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertTrue(variableBinding.getType() == typeBinding);
-		checkSourceRange(initialization, "0", source); //$NON-NLS-1$
-	}	
-
-//	/**
-//	 * Initializer
-//	 */
-//	public void test0193() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0193", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-//		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-//		IVariableBinding variableBinding = fragment.resolveBinding();
-//		Expression initialization = fragment.getInitializer();
-//		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertTrue(variableBinding.getType() == typeBinding);
-//		checkSourceRange(initialization, "new Inner()", source); //$NON-NLS-1$
-//		assertEquals("Wrong type", "Inner", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}	
-//
-//	/**
-//	 * Initializer
-//	 */
-//	public void test0194() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0194", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-//		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-//		IVariableBinding variableBinding = fragment.resolveBinding();
-//		Expression initialization = fragment.getInitializer();
-//		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertTrue(variableBinding.getType() == typeBinding);
-//		checkSourceRange(initialization, "new Inner[10]", source); //$NON-NLS-1$
-//		assertTrue("Not an array", typeBinding.isArray()); //$NON-NLS-1$
-//		assertEquals("Wrong type", "Inner[]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}	
-
-//	/**
-//	 * Initializer
-//	 */
-//	public void test0195() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0195", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 1, 0, 1);
-//		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-//		Expression ex = expressionStatement.getExpression();
-//		assertTrue("FunctionInvocation", ex instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) ex;
-//		checkSourceRange(methodInvocation, "a.useFile(/*]*/a.getFile()/*[*/)", source); //$NON-NLS-1$
-//		List list = methodInvocation.arguments();
-//		assertTrue("Parameter list not empty", list.size() == 1); //$NON-NLS-1$
-//		Expression parameter = (Expression) list.get(0);
-//		assertTrue("Not a method invocation", parameter instanceof FunctionInvocation); //$NON-NLS-1$
-//		ITypeBinding typeBinding = parameter.resolveTypeBinding();
-//		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Not a boolean", "File", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		checkSourceRange(parameter, "a.getFile()", source); //$NON-NLS-1$
-//	}	
-
-//	/**
-//	 * Initializer
-//	 */
-//	public void test0196() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0196", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 2);
-//		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-//		Expression ex = expressionStatement.getExpression();
-//		assertTrue("Assignment", ex instanceof Assignment); //$NON-NLS-1$
-//		Assignment statement = (Assignment) ex;
-//		Expression rightExpr = statement.getRightHandSide();
-//		assertTrue("Not an instanceof expression", rightExpr instanceof InstanceofExpression); //$NON-NLS-1$
-//		ITypeBinding typeBinding = rightExpr.resolveTypeBinding();
-//		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("wrong type", "boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		checkSourceRange(rightExpr, "inner instanceof Inner", source); //$NON-NLS-1$
-//	}	
-//
-//	/**
-//	 * Initializer
-//	 */
-//	public void test0197() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0197", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType());
-//		JavaScriptUnit unit = (JavaScriptUnit) result;
-//		assertProblemsSize(unit, 0); 
-//		ASTNode node2 = getASTNode(unit, 1, 0, 1);
-//		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-//		Expression ex = expressionStatement.getExpression();
-//		assertTrue("FunctionInvocation", ex instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) ex;
-//		checkSourceRange(methodInvocation, "a.getFile()/*[*/.getName()", source); //$NON-NLS-1$
-//		Expression receiver = methodInvocation.getExpression();
-//		assertTrue("Not a method invocation", receiver instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation2 = (FunctionInvocation) receiver;
-//		ITypeBinding typeBinding = methodInvocation2.resolveTypeBinding();
-//		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "File", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		checkSourceRange(methodInvocation2, "a.getFile()", source); //$NON-NLS-1$
-//	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0198() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0198", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("ReturnStatement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node2;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("Not an infixExpression", expr instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expr;
-		Expression left = infixExpression.getLeftOperand();
-		assertTrue("Not an InfixExpression", left instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression2 = (InfixExpression) left;
-		Expression right = infixExpression2.getRightOperand();
-		assertTrue("Not an InfixExpression", right instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression3 = (InfixExpression) right;
-		assertEquals("A multiplication", InfixExpression.Operator.TIMES, infixExpression3.getOperator()); //$NON-NLS-1$
-		ITypeBinding typeBinding = infixExpression3.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not Number", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(infixExpression3, "20 * 30", source); //$NON-NLS-1$
-	}	
-
-	/**
-	 * Initializer
-	 */
-	public void test0199() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0199", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-		List fragments = variableDeclarationStatement.fragments();
-		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not an infixExpression", initialization instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) initialization;
-		Expression left = infixExpression.getLeftOperand();
-		assertTrue("Not an InfixExpression", left instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression2 = (InfixExpression) left;
-		Expression right = infixExpression2.getRightOperand();
-		assertTrue("Not an InfixExpression", right instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression3 = (InfixExpression) right;
-		assertEquals("A multiplication", InfixExpression.Operator.TIMES, infixExpression3.getOperator()); //$NON-NLS-1$
-		ITypeBinding typeBinding = infixExpression3.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Not Number", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		checkSourceRange(infixExpression3, "10 * 30", source); //$NON-NLS-1$
-	}	
-//
-//	/**
-//	 * Initializer
-//	 */
-//	public void test0200() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0200", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-//		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertTrue("No fragment", fragments.size() == 1); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression initialization = fragment.getInitializer();
-//		assertTrue("Not an infixExpression", initialization instanceof FieldAccess); //$NON-NLS-1$
-//		FieldAccess fieldAccess = (FieldAccess) initialization;
-//		Expression receiver = fieldAccess.getExpression();
-//		assertTrue("ArrayCreation", receiver instanceof ArrayCreation); //$NON-NLS-1$
-//		ArrayCreation arrayCreation = (ArrayCreation) receiver;
-//		List dimensions = arrayCreation.dimensions();
-//		assertEquals("Wrong dimension", 1, dimensions.size()); //$NON-NLS-1$
-//		Expression dim = (Expression) dimensions.get(0);
-//		assertTrue("InfixExpression", dim instanceof InfixExpression); //$NON-NLS-1$
-//		InfixExpression infixExpression = (InfixExpression) dim;
-//		ITypeBinding typeBinding = infixExpression.resolveTypeBinding();
-//		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		checkSourceRange(infixExpression, "1 + 2", source); //$NON-NLS-1$
-//	}	
-
-	/**
-	 * Position inside for statement: PR 3300
-	 */
-	public void test0201() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0201", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("ForStatement", node2 instanceof ForStatement); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node2;
-		List initializers = forStatement.initializers();
-		assertTrue("wrong size", initializers.size() == 1); //$NON-NLS-1$
-		Expression init = (Expression) initializers.get(0);
-		checkSourceRange(init, "var i= 0", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * PR 7386
-	 */
-	public void test0202() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0202", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node2;
-		checkSourceRange(fieldDeclaration, "var f= (2);", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not a parenthesized expression", initialization instanceof ParenthesizedExpression); //$NON-NLS-1$
-		checkSourceRange(initialization, "(2)", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-		assertNotNull("no binding", typeBinding); //$NON-NLS-1$
-		assertEquals("not Number", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}		
-
-	/**
-	 * PR 7386
-	 */
-	public void test0203() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0203", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node2;
-		checkSourceRange(fieldDeclaration, "var f= (2);", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not a parenthesized expression", initialization instanceof ParenthesizedExpression); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) initialization;
-		checkSourceRange(parenthesizedExpression, "(2)", source); //$NON-NLS-1$
-		Expression expr = parenthesizedExpression.getExpression();
-		checkSourceRange(expr, "2", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("no binding", typeBinding); //$NON-NLS-1$
-		assertEquals("not Number", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("type binding is canonical", typeBinding == parenthesizedExpression.resolveTypeBinding()); //$NON-NLS-1$
-	}		
-
-	/**
-	 * PR 7386
-	 */
-	public void test0204() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0204", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node2;
-		checkSourceRange(fieldDeclaration, "var f= ((2));", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression initialization = fragment.getInitializer();
-		assertTrue("Not a parenthesized expression", initialization instanceof ParenthesizedExpression); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) initialization;
-		checkSourceRange(parenthesizedExpression, "((2))", source); //$NON-NLS-1$
-		Expression expr = parenthesizedExpression.getExpression();
-		assertTrue("Not a parenthesized expression", expr instanceof ParenthesizedExpression); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression2 = (ParenthesizedExpression) expr;
-		checkSourceRange(parenthesizedExpression2, "(2)", source); //$NON-NLS-1$
-		expr = parenthesizedExpression2.getExpression();
-		checkSourceRange(expr, "2", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = expr.resolveTypeBinding();
-		assertNotNull("no binding", typeBinding); //$NON-NLS-1$
-		assertEquals("not Number", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = parenthesizedExpression.resolveTypeBinding();
-		assertNotNull("no binding", typeBinding); //$NON-NLS-1$
-		assertEquals("not Number", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("type binding is canonical", typeBinding == parenthesizedExpression2.resolveTypeBinding()); //$NON-NLS-1$
-	}		
-
-
-//	/**
-//	 * Local class end position when trailing comment
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0205() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0205", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("TypeDeclarationStatement", node2 instanceof TypeDeclarationStatement); //$NON-NLS-1$
-//		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node2;
-//		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-//		assertEquals("wrong name", "AA", typeDeclaration.getName().getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-//		checkSourceRange(typeDeclaration, "class AA extends Test {}", source); //$NON-NLS-1$
-//	}		
-
-//	/**
-//	 * QualifiedName
-//	 */
-//	public void test0206() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0206", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 5, 0);
-//		assertTrue("ReturnStatement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) node2;
-//		Expression expr = returnStatement.getExpression();
-//		assertTrue("Not a qualifiedName", expr instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName qualifiedName = (QualifiedName) expr;
-//		ITypeBinding typeBinding = expr.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Not an int (typeBinding)", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		checkSourceRange(qualifiedName, "field1.field2.field3.field4.i", source); //$NON-NLS-1$
-//		assertTrue("Not a simple name", qualifiedName.getName().isSimpleName()); //$NON-NLS-1$
-//		SimpleName simpleName = qualifiedName.getName();
-//		assertTrue("a declaration", !simpleName.isDeclaration()); //$NON-NLS-1$
-//		checkSourceRange(simpleName, "i", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-//		assertNotNull("No typebinding2", typeBinding2); //$NON-NLS-1$
-//		assertEquals("Not an int (typeBinding2)", "int", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding = simpleName.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("VariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding;
-//		assertEquals("Not Test", "Test", variableBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Not default", Modifier.PUBLIC, variableBinding.getModifiers()); //$NON-NLS-1$
-//		Name qualifierName = qualifiedName.getQualifier();
-//		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(qualifierName, "field1.field2.field3.field4", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding5 = qualifierName.resolveTypeBinding();
-//		assertNotNull("No binding5", typeBinding5); //$NON-NLS-1$
-//		assertEquals("Not Test", "Test", typeBinding5.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//
-//		qualifiedName = (QualifiedName) qualifierName;
-//		simpleName = qualifiedName.getName();
-//		checkSourceRange(simpleName, "field4", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding6 = simpleName.resolveTypeBinding();
-//		assertNotNull("No binding6", typeBinding6); //$NON-NLS-1$
-//		assertEquals("Not Test", "Test", typeBinding6.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		
-//		qualifierName = qualifiedName.getQualifier();
-//		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(qualifierName, "field1.field2.field3", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding7 = qualifierName.resolveTypeBinding();
-//		assertNotNull("No binding7", typeBinding7); //$NON-NLS-1$
-//		assertEquals("Not Test", "Test", typeBinding7.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		
-//		qualifiedName = (QualifiedName) qualifierName;
-//		simpleName = qualifiedName.getName();
-//		checkSourceRange(simpleName, "field3", source); //$NON-NLS-1$
-//		qualifierName = qualifiedName.getQualifier();
-//		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(qualifierName, "field1.field2", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding3 = qualifierName.resolveTypeBinding();
-//		assertNotNull("No binding3", typeBinding3); //$NON-NLS-1$
-//		assertEquals("Not Test", "Test", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		qualifiedName = (QualifiedName) qualifierName;
-//		simpleName = qualifiedName.getName();
-//		checkSourceRange(simpleName, "field2", source); //$NON-NLS-1$
-//		qualifierName = qualifiedName.getQualifier();
-//		assertTrue("Not a simple name", qualifierName.isSimpleName()); //$NON-NLS-1$
-//		assertTrue("a declaration", !((SimpleName)qualifierName).isDeclaration()); //$NON-NLS-1$
-//		checkSourceRange(qualifierName, "field1", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding4 = qualifierName.resolveTypeBinding();
-//		assertNotNull("No binding4", typeBinding4); //$NON-NLS-1$
-//		assertEquals("Not Test", "Test", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0207() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0207", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		JSdoc javadoc = this.ast.newJSdoc();
-		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-		checkSourceRange(node, "/** JavaDoc Comment*/\n function foo( i) {}", source); //$NON-NLS-1$
-		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test0208() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0208", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "function foo( i) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for FunctionDeclaration
-	 */
-	public void test0209() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0209", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((FunctionDeclaration) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "function foo( i) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for VariableDeclarationStatement
-	 * @deprecated marking deprecated since using deprecated code
-	 */
-	public void test0210() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0210", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((VariableDeclarationStatement) node).getJavadoc();
-		JSdoc javadoc = this.ast.newJSdoc();
-		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-		checkSourceRange(node, "/** JavaDoc Comment*/\n  var i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for VariableDeclarationStatement
-	 */
-	public void test0211() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0211", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((VariableDeclarationStatement) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "var i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for VariableDeclarationStatement
-	 */
-	public void test0212() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0212", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((VariableDeclarationStatement) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		checkSourceRange(node, "var i;", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check javadoc for TypeDeclaration
-	 */
-	public void test0213() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0213", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0,0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		assertTrue("The node is not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		JSdoc actualJavadoc = ((VariableDeclarationStatement) node).getJavadoc();
-		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-		String expectedContents = "" +//$NON-NLS-1$
-			"var i;"  +//$NON-NLS-1$
-			"";//$NON-NLS-1$
-		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$	}	
-	}
-
-//	/**
-//	 * Check javadoc for TypeDeclaration
-//	 */
-//	public void test0214() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0214", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		String expectedContents = "public class Test {\n" +//$NON-NLS-1$
-//			"  int i;\n"  +//$NON-NLS-1$
-//			"}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check javadoc for TypeDeclaration
-//	 * @deprecated marking deprecated since using deprecated code
-//	 */
-//	public void test0215() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0215", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		Javadoc javadoc = this.ast.newJavadoc();
-//		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-//		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-//		String expectedContents = 
-//			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-//			"public class Test {\n" +//$NON-NLS-1$
-//			"  int i;\n"  +//$NON-NLS-1$
-//			"}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * Check javadoc for MemberTypeDeclaration
-//	 * @deprecated marking deprecated since using deprecated code
-//	 */
-//	public void test0216() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0216", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		Javadoc javadoc = this.ast.newJavadoc();
-//		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-//		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-//		String expectedContents = 
-//			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-//			 "  class B {}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check javadoc for MemberTypeDeclaration
-//	 */
-//	public void test0217() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0217", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		checkSourceRange(node, "class B {}", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Check javadoc for MemberTypeDeclaration
-//	 */
-//	public void test0218() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0218", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		checkSourceRange(node, "public static class B {}", source); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * Check javadoc for MemberTypeDeclaration
-//	 */
-//	public void test0219() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0219", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		assertTrue("The node is not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((TypeDeclaration) node).getJavadoc();
-//		assertTrue("Javadoc must be null", actualJavadoc == null);//$NON-NLS-1$
-//		checkSourceRange(node, "public static class B {}", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Checking initializers
-//	 */
-//	public void test0220() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0220", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		checkSourceRange(node, "{}", source); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * Checking initializers
-//	 */
-//	public void test0221() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0221", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		checkSourceRange(node, "static {}", source); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * Checking initializers
-//	 * @deprecated marking deprecated since using deprecated code
-//	 */
-//	public void test0222() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0222", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((Initializer) node).getJavadoc();
-//		assertNotNull("Javadoc comment should no be null", actualJavadoc); //$NON-NLS-1$
-//		Javadoc javadoc = this.ast.newJavadoc();
-//		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-//		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-//		String expectedContents = 
-//			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-//			 "  static {}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-//		
-//	}
-
-//	/**
-//	 * Checking initializers
-//	 * @deprecated marking deprecated since using deprecated code
-//	 */
-//	public void test0223() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0223", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((Initializer) node).getJavadoc();
-//		assertNotNull("Javadoc comment should not be null", actualJavadoc); //$NON-NLS-1$
-//		Javadoc javadoc = this.ast.newJavadoc();
-//		javadoc.setComment("/** JavaDoc Comment*/");//$NON-NLS-1$*/
-//		assertTrue("Both AST trees should be identical", javadoc.subtreeMatch(new ASTMatcher(), actualJavadoc));//$NON-NLS-1$
-//		String expectedContents = 
-//			 "/** JavaDoc Comment*/\n" + //$NON-NLS-1$
-//			 "  {}";//$NON-NLS-1$
-//		checkSourceRange(node, expectedContents, source); //$NON-NLS-1$
-//		checkSourceRange(actualJavadoc, "/** JavaDoc Comment*/", source); //$NON-NLS-1$
-//		
-//	}
-
-//	/**
-//	 * Checking initializers
-//	 */
-//	public void test0224() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0224", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-//		Javadoc actualJavadoc = ((Initializer) node).getJavadoc();
-//		assertNull("Javadoc comment should be null", actualJavadoc); //$NON-NLS-1$
-//		checkSourceRange(node, "{}", source); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Continue ==> ContinueStatement
-	 */
-	public void test0225() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0225", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		LabeledStatement labeledStatement = (LabeledStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		checkSourceRange(labeledStatement.getLabel(), "label", source); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) labeledStatement.getBody();
-		ContinueStatement statement = (ContinueStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		ContinueStatement continueStatement = this.ast.newContinueStatement();
-		continueStatement.setLabel(this.ast.newSimpleName("label")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", continueStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "continue label;", source); //$NON-NLS-1$
-		checkSourceRange(statement.getLabel(), "label", source); //$NON-NLS-1$
-	}
-		
-	/**
-	 * Break + label  ==> BreakStatement
-	 */
-	public void test0226() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0226", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		LabeledStatement labeledStatement = (LabeledStatement) getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		checkSourceRange(labeledStatement.getLabel(), "label", source); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) labeledStatement.getBody();
-		BreakStatement statement = (BreakStatement) ((Block) forStatement.getBody()).statements().get(0);
-		assertNotNull("Expression should not be null", statement); //$NON-NLS-1$
-		BreakStatement breakStatement = this.ast.newBreakStatement();
-		breakStatement.setLabel(this.ast.newSimpleName("label")); //$NON-NLS-1$
-		assertTrue("Both AST trees should be identical", breakStatement.subtreeMatch(new ASTMatcher(), statement));		//$NON-NLS-1$
-		checkSourceRange(statement, "break label;", source); //$NON-NLS-1$
-		checkSourceRange(statement.getLabel(), "label", source); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * QualifiedName
-//	 */
-//	public void test0227() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0227", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 3, 2, 0);
-//		assertTrue("ReturnStatement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) node2;
-//		Expression expr = returnStatement.getExpression();
-//		assertTrue("Not a qualifiedName", expr instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName qualifiedName = (QualifiedName) expr;
-//		ITypeBinding typeBinding = expr.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Not an long (typeBinding)", "long", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		checkSourceRange(qualifiedName, "field.fB.fA.j", source); //$NON-NLS-1$
-//
-//		SimpleName simpleName = qualifiedName.getName();
-//		checkSourceRange(simpleName, "j", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-//		assertEquals("Not an long (typeBinding2)", "long", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding = simpleName.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("VariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding;
-//		assertEquals("Not A", "A", variableBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Not default", Modifier.NONE, variableBinding.getModifiers()); //$NON-NLS-1$
-//		assertEquals("wrong name", "j", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//
-//		Name qualifierName = qualifiedName.getQualifier();
-//		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(qualifierName, "field.fB.fA", source); //$NON-NLS-1$
-//		qualifiedName = (QualifiedName) qualifierName;
-//		ITypeBinding typeBinding3 = qualifiedName.resolveTypeBinding();
-//		assertNotNull("No type binding3", typeBinding3); //$NON-NLS-1$
-//		assertEquals("Not an A", "A", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		simpleName = qualifiedName.getName();
-//		checkSourceRange(simpleName, "fA", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding4 = simpleName.resolveTypeBinding();
-//		assertNotNull("No typeBinding4", typeBinding4); //$NON-NLS-1$
-//		assertEquals("Not an A", "A", typeBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding2 = qualifiedName.resolveBinding();
-//		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-//		assertTrue("VariableBinding", binding2 instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding2 = (IVariableBinding) binding2;
-//		assertEquals("Not B", "B", variableBinding2.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Not default", Modifier.NONE, variableBinding2.getModifiers()); //$NON-NLS-1$
-//		assertEquals("wrong name", "fA", variableBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		
-//		qualifierName = qualifiedName.getQualifier();
-//		assertTrue("Not a qualified name", qualifierName.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(qualifierName, "field.fB", source); //$NON-NLS-1$
-//		qualifiedName = (QualifiedName) qualifierName;
-//		ITypeBinding typeBinding5 = qualifiedName.resolveTypeBinding();
-//		assertNotNull("No typeBinding5", typeBinding5); //$NON-NLS-1$
-//		assertEquals("Not a B", "B", typeBinding5.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		simpleName = qualifiedName.getName();
-//		checkSourceRange(simpleName, "fB", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding6 = simpleName.resolveTypeBinding();
-//		assertNotNull("No typebinding6", typeBinding6); //$NON-NLS-1$
-//		assertEquals("not a B", "B", typeBinding6.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding3 = qualifiedName.resolveBinding();
-//		assertNotNull("No binding2", binding3); //$NON-NLS-1$
-//		assertTrue("VariableBinding", binding3 instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding3 = (IVariableBinding) binding3;
-//		assertEquals("Not C", "C", variableBinding3.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Not default", Modifier.NONE, variableBinding3.getModifiers()); //$NON-NLS-1$
-//		assertEquals("wrong name", "fB", variableBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		
-//		qualifierName = qualifiedName.getQualifier();
-//		assertTrue("Not a simple name", qualifierName.isSimpleName()); //$NON-NLS-1$
-//		checkSourceRange(qualifierName, "field", source); //$NON-NLS-1$
-//		simpleName = (SimpleName) qualifierName;
-//		ITypeBinding typeBinding7 = simpleName.resolveTypeBinding();
-//		assertNotNull("No typeBinding7", typeBinding7); //$NON-NLS-1$
-//		assertEquals("Not a C", "C", typeBinding7.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding4 = simpleName.resolveBinding();
-//		assertNotNull("No binding4", binding4); //$NON-NLS-1$
-//		assertTrue("VariableBinding", binding4 instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding4 = (IVariableBinding) binding4;
-//		assertEquals("Not Test", "Test", variableBinding4.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Not public", Modifier.PUBLIC, variableBinding4.getModifiers()); //$NON-NLS-1$
-//		assertEquals("wrong name", "field", variableBinding4.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("wrong return type", "C", variableBinding4.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-//	/**
-//	 * QualifiedName as TypeReference
-//	 */
-//	public void test0228() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0228", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-//		assertTrue("ReturnStatement", node2 instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) node2;
-//		Expression expr = returnStatement.getExpression();
-//		checkSourceRange(expr, "test0228.Test.foo()", source); //$NON-NLS-1$
-//		assertTrue("FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-//		Expression qualifier = methodInvocation.getExpression();
-//		assertNotNull("no qualifier", qualifier); //$NON-NLS-1$
-//		assertTrue("QualifiedName", qualifier instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName qualifiedName = (QualifiedName) qualifier;
-//		checkSourceRange(qualifiedName, "test0228.Test", source); //$NON-NLS-1$
-//		ITypeBinding typeBinding = qualifiedName.resolveTypeBinding();
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong type", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding = qualifiedName.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("Not a type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-//		
-//	}
-
-//	/**
-//	 * FunctionInvocation
-//	 */
-//	public void test0229() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0229", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-//		Expression expr = expressionStatement.getExpression();
-//		assertTrue("FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-//		checkSourceRange(expr, "System.err.println()", source); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-//		Expression qualifier = methodInvocation.getExpression();
-//		assertTrue("QualifiedName", qualifier instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName qualifiedName = (QualifiedName) qualifier;
-//		ITypeBinding typeBinding = qualifier.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "PrintStream", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding = qualifiedName.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("VariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding;
-//		assertEquals("wrong name", "err", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		SimpleName methodName = methodInvocation.getName();
-//		IBinding binding2 = methodName.resolveBinding();
-//		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-//	}
-	
-//	/**
-//	 * FunctionInvocation
-//	 */
-//	public void test0230() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0230", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-//		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-//		Expression expr = expressionStatement.getExpression();
-//		assertTrue("FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-//		checkSourceRange(expr, "err.println()", source); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-//		Expression qualifier = methodInvocation.getExpression();
-//		assertTrue("SimpleName", qualifier instanceof SimpleName); //$NON-NLS-1$
-//		SimpleName name = (SimpleName) qualifier;
-//		IBinding binding = name.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "err", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		ITypeBinding typeBinding = name.resolveTypeBinding();
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wron type name", "PrintStream", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-	
-//	/**
-//	 * FunctionInvocation
-//	 */
-//	public void test0231() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0231", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("ExpressionStatement", node2 instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-//		Expression expr = expressionStatement.getExpression();
-//		assertTrue("FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-//		checkSourceRange(expr, "System.err.println()", source); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-//		Expression qualifier = methodInvocation.getExpression();
-//		assertTrue("QualifiedName", qualifier instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName qualifiedName = (QualifiedName) qualifier;
-//		ITypeBinding typeBinding = qualifier.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "PrintStream", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding = qualifiedName.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("VariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding;
-//		assertEquals("wrong name", "err", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		SimpleName methodName = methodInvocation.getName();
-//		IBinding binding2 = methodName.resolveBinding();
-//		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-//		Name name = qualifiedName.getQualifier();
-//		assertTrue("SimpleName", name.isSimpleName()); //$NON-NLS-1$
-//		SimpleName simpleName = (SimpleName) name;
-//		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-//		assertNotNull("No typeBinding2", typeBinding2); //$NON-NLS-1$
-//		assertEquals("wrong type name", "System", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-//	/**
-//	 * FunctionInvocation
-//	 */
-//	public void test0232() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0232", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		ASTNode node2 = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("VariableDeclarationStatement", node2 instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node2;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression initialization = variableDeclarationFragment.getInitializer();
-//		ITypeBinding typeBinding = initialization.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertTrue("Not a primitive type", typeBinding.isPrimitive()); //$NON-NLS-1$
-//		assertEquals("wrong name", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("QualifiedName", initialization instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName qualifiedName = (QualifiedName) initialization;
-//		SimpleName simpleName = qualifiedName.getName();
-//		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-//		assertTrue("Not a primitive type", typeBinding2.isPrimitive()); //$NON-NLS-1$
-//		assertEquals("wrong name", "int", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding = simpleName.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("IVariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding;
-//		assertNull("No declaring class", variableBinding.getDeclaringClass()); //$NON-NLS-1$
-//	}
-	
-//	/**
-//	 * Checking that only syntax errors are reported for the MALFORMED tag
-//	 */
-//	public void test0233() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0233", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("Expression should not be null", result); //$NON-NLS-1$
-//		assertTrue("The compilation unit is malformed", !isMalformed(result)); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit unit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertTrue("The fiels is not malformed", !isMalformed(node)); //$NON-NLS-1$
-//		assertEquals("No problem found", 1, unit.getMessages().length); //$NON-NLS-1$
-//		assertEquals("No problem found", 1, unit.getProblems().length); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * Checking that null is returned for a resolveBinding if the type is unknown
-//	 */
-//	public void test0234() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0234", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertTrue("The fiels is not malformed", !isMalformed(node)); //$NON-NLS-1$
-//		JavaScriptUnit unit = (JavaScriptUnit) result;
-//		assertEquals("No problem found", 1, unit.getMessages().length); //$NON-NLS-1$
-//		assertEquals("No problem found", 1, unit.getProblems().length); //$NON-NLS-1$
-//		assertTrue("VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-//		List fragments = fieldDeclaration.fragments();
-//		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-//		IVariableBinding variableBinding = fragment.resolveBinding();
-//		assertNull("binding not null", variableBinding); //$NON-NLS-1$
-//	}
-
-	/**
-	 * Checking that null is returned for a resolveBinding if the type is unknown
-	 */
-	public void test0235() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0235", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("The fiels is not malformed", !isMalformed(node)); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("problems found", 0, unit.getMessages().length); //$NON-NLS-1$
-		assertEquals("problems found", 0, unit.getProblems().length); //$NON-NLS-1$
-		assertTrue("VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test the removal of a IField inside a CU that has an initializer
-	 */
-	public void test0236() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0236", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		IType type = sourceUnit.getType("Test"); //$NON-NLS-1$
-//		assertNotNull("No type", type); //$NON-NLS-1$
-		IField field = sourceUnit.getField("i"); //$NON-NLS-1$
-		assertNotNull("No field", field); //$NON-NLS-1$
-		field.delete(true, null);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=9452
-	 */
-	public void test0237() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "junit.framework", "TestCase.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-	}
-		
-//	/**
-//	 * Check ThisExpression
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0238() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0238", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("Not a type declaration statement", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-//		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-//		TypeDeclaration typeDecl = typeDeclarationStatement.getTypeDeclaration();
-//		Object o = typeDecl.bodyDeclarations().get(0);
-//		assertTrue("Not a method", o instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDecl = (FunctionDeclaration) o;
-//		Block block = methodDecl.getBody();
-//		List statements = block.statements();
-//		assertEquals("Not 1", 1, statements.size()); //$NON-NLS-1$
-//		Statement stmt = (Statement) statements.get(0);
-//		assertTrue("Not a return statement", stmt instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) stmt;
-//		Expression expr = returnStatement.getExpression();
-//		assertTrue("Not a method invocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-//		checkSourceRange(methodInvocation, "Test.this.bar()", source); //$NON-NLS-1$
-//		Expression qualifier = methodInvocation.getExpression();
-//		assertTrue("Not a ThisExpression", qualifier instanceof ThisExpression); //$NON-NLS-1$
-//		ThisExpression thisExpression = (ThisExpression) qualifier;
-//		Name name = thisExpression.getQualifier();
-//		IBinding binding = name.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("wrong name", "Test", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-//	/**
-//	 * Check ThisExpression
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0239() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0239", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-//		assertTrue("Not a type declaration statement", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-//		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-//		TypeDeclaration typeDecl = typeDeclarationStatement.getTypeDeclaration();
-//		Object o = typeDecl.bodyDeclarations().get(0);
-//		assertTrue("Not a method", o instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDecl = (FunctionDeclaration) o;
-//		Block block = methodDecl.getBody();
-//		List statements = block.statements();
-//		assertEquals("Not 1", 1, statements.size()); //$NON-NLS-1$
-//		Statement stmt = (Statement) statements.get(0);
-//		assertTrue("Not a return statement", stmt instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) stmt;
-//		Expression expr = returnStatement.getExpression();
-//		assertTrue("Not a SuperMethodInvocation", expr instanceof SuperMethodInvocation); //$NON-NLS-1$
-//		SuperMethodInvocation superMethodInvocation = (SuperMethodInvocation) expr;
-//		Name name = superMethodInvocation.getQualifier();
-//		IBinding binding = name.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("A type binding", binding instanceof ITypeBinding); //$NON-NLS-1$
-//		assertEquals("Not Test", "Test", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		Name methodName = superMethodInvocation.getName();
-//		IBinding binding2 = methodName.resolveBinding();
-//		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-//		assertTrue("No an IFunctionBinding", binding2 instanceof IFunctionBinding); //$NON-NLS-1$
-//		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-//		assertEquals("Not bar", "bar", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Not T", "T", methodBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-	
-//	/**
-//	 * Check FieldAccess
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0240() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0240", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("Not a type declaration statement", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-//		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-//		TypeDeclaration typeDecl = typeDeclarationStatement.getTypeDeclaration();
-//		Object o = typeDecl.bodyDeclarations().get(0);
-//		assertTrue("Not a method", o instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDecl = (FunctionDeclaration) o;
-//		Block block = methodDecl.getBody();
-//		List statements = block.statements();
-//		assertEquals("Not 1", 1, statements.size()); //$NON-NLS-1$
-//		Statement stmt = (Statement) statements.get(0);
-//		assertTrue("Not a return statement", stmt instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) stmt;
-//		Expression expr = returnStatement.getExpression();
-//		assertTrue("Not a field access", expr instanceof FieldAccess); //$NON-NLS-1$
-//		FieldAccess fieldAccess = (FieldAccess) expr;
-//		Expression qualifier = fieldAccess.getExpression();
-//		assertTrue("Not a ThisExpression", qualifier instanceof ThisExpression); //$NON-NLS-1$
-//		ThisExpression thisExpression = (ThisExpression) qualifier;
-//		Name name = thisExpression.getQualifier();
-//		IBinding binding = name.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("Not Test", "Test", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		Name fieldName = fieldAccess.getName();
-//		IBinding binding2 = fieldName.resolveBinding();
-//		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-//		assertEquals("Wrong name", "f", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Wrong modifier", Modifier.PUBLIC, binding2.getModifiers()); //$NON-NLS-1$
-//		ITypeBinding typeBinding = fieldName.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Not int", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-	/**
-	 * Check order of body declarations
-	 */
-	public void test0241() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0241", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0);
-//		assertTrue("Not a type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		assertTrue("Not a declaration", ((TypeDeclaration) node).getName().isDeclaration()); //$NON-NLS-1$
-//		assertEquals("Wrong size", 11, ((TypeDeclaration)node).bodyDeclarations().size()); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-//		node = getASTNode((JavaScriptUnit) result, 0, 2);
-//		assertTrue("Not a Type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		node = getASTNode((JavaScriptUnit) result, 0, 3);
-//		assertTrue("Not a Type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not a field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		node = getASTNode((JavaScriptUnit) result, 0, 7);
-		assertTrue("Not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-//		node = getASTNode((JavaScriptUnit) result, 0, 10);
-//		assertTrue("Not a Type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * Check ThisExpression
-//	 * @deprecated using deprecated code
-//	 */
-//	public void test0242() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0242", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-//		assertTrue("Not a type declaration statement", node instanceof TypeDeclarationStatement); //$NON-NLS-1$
-//		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-//		TypeDeclaration typeDecl = typeDeclarationStatement.getTypeDeclaration();
-//		Object o = typeDecl.bodyDeclarations().get(0);
-//		assertTrue("Not a method", o instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDecl = (FunctionDeclaration) o;
-//		Block block = methodDecl.getBody();
-//		List statements = block.statements();
-//		assertEquals("Not 1", 1, statements.size()); //$NON-NLS-1$
-//		Statement stmt = (Statement) statements.get(0);
-//		assertTrue("Not a return statement", stmt instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) stmt;
-//		Expression expr = returnStatement.getExpression();
-//		assertTrue("Not a SuperFieldAccess", expr instanceof SuperFieldAccess); //$NON-NLS-1$
-//		SuperFieldAccess superFieldAccess = (SuperFieldAccess) expr;
-//		Name name = superFieldAccess.getQualifier();
-//		IBinding binding = name.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("A type binding", binding instanceof ITypeBinding); //$NON-NLS-1$
-//		assertEquals("Not Test", "Test", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		Name fieldName = superFieldAccess.getName();
-//		IBinding binding2 = fieldName.resolveBinding();
-//		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-//		assertTrue("No an IVariableBinding", binding2 instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding2;
-//		assertEquals("Not f", "f", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Not T", "T", variableBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		ITypeBinding typeBinding2 = fieldName.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-//		assertEquals("Not int", "int", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	/**
-	 * Check catch clause positions:
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10570
-	 */
-	public void test0243() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0243", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a try statement", node instanceof TryStatement); //$NON-NLS-1$
-		TryStatement tryStatement = (TryStatement) node;
-		List catchClauses = tryStatement.catchClauses();
-		assertEquals("wrong size", 1, catchClauses.size()); //$NON-NLS-1$
-		CatchClause catchClause = (CatchClause) catchClauses.get(0);
-		checkSourceRange(catchClause, "catch (e){m();}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check catch clause positions:
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10570
-	 */
-	public void test0244() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0244", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a try statement", node instanceof TryStatement); //$NON-NLS-1$
-		TryStatement tryStatement = (TryStatement) node;
-		List catchClauses = tryStatement.catchClauses();
-		assertEquals("wrong size", 1, catchClauses.size()); //$NON-NLS-1$
-		CatchClause catchClause = (CatchClause) catchClauses.get(0);
-		checkSourceRange(catchClause, "catch (e){m();}", source); //$NON-NLS-1$
-//		catchClause = (CatchClause) catchClauses.get(1);
-//		checkSourceRange(catchClause, "catch(e) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=10587
-	 */
-	public void test0245() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0245", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expr = returnStatement.getExpression();
-		assertTrue("not a name", expr instanceof Name); //$NON-NLS-1$
-		Name name = (Name) expr;
-		IBinding binding = name.resolveBinding();
-		assertTrue("Not a variable binding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Not i", "i", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Not Number", "Number", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ASTNode declaringNode = unit.findDeclaringNode(variableBinding);
-		assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
-		assertTrue("Not a VariableDeclarationFragment", declaringNode instanceof VariableDeclarationFragment); //$NON-NLS-1$
-	}
-	
-//	/**
-//	 * Test binding resolution for import declaration
-//	 */
-//	public void test0246() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0246", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit unit = (JavaScriptUnit) result;
-//		List imports = unit.imports();
-//		assertEquals("wrong imports size", 2, imports.size()); //$NON-NLS-1$
-//		ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
-//		assertTrue("Not on demand", importDeclaration.isOnDemand()); //$NON-NLS-1$
-//		checkSourceRange(importDeclaration, "import java.util.*;", source); //$NON-NLS-1$
-//		IBinding binding = importDeclaration.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("Wrong type", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-//		assertEquals("Wrong name", "java.util", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		importDeclaration = (ImportDeclaration) imports.get(1);
-//		assertTrue("On demand", !importDeclaration.isOnDemand()); //$NON-NLS-1$
-//		checkSourceRange(importDeclaration, "import java.io.IOException;", source); //$NON-NLS-1$
-//		binding = importDeclaration.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-//		assertEquals("Wrong name", "IOException", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-//	/**
-//	 * Test binding resolution for import declaration
-//	 */
-//	public void test0247() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0247", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit unit = (JavaScriptUnit) result;
-//		PackageDeclaration packageDeclaration = unit.getPackage();
-//		checkSourceRange(packageDeclaration, "package test0247;", source); //$NON-NLS-1$
-//		IPackageBinding binding = packageDeclaration.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("Wrong type", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-//		assertEquals("Wrong name", "test0247", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10592
-	 */
-	public void test0248() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0248", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration);		 //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 1, parameters.size()); //$NON-NLS-1$
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		Name name = singleVariableDeclaration.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("Not a variable binding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "i", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong type", "any", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10592
-//	 */
-//	public void test0249() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0249", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 2, 1);
-//		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-//		Expression expression = expressionStatement.getExpression();
-//		assertTrue("Not an assignment", expression instanceof Assignment); //$NON-NLS-1$
-//		Assignment assignment = (Assignment) expression;
-//		Expression leftHandSide = assignment.getLeftHandSide();
-//		assertTrue("Not a qualified name", leftHandSide instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName qualifiedName = (QualifiedName) leftHandSide;
-//		Name simpleName = qualifiedName.getName();
-//		IBinding binding = simpleName.resolveBinding();
-//		assertNotNull("no binding", binding); //$NON-NLS-1$
-//		assertTrue("Not a IVariableBinding", binding instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding;
-//		assertEquals("Wrong name", "k", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Wrong modifier", Modifier.STATIC, variableBinding.getModifiers()); //$NON-NLS-1$
-//		assertEquals("Wrong type", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Wrong declaring class name", "j", variableBinding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10592
-//	 */
-//	public void test0250() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0250", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertTrue("Not a method declaration", node instanceof FunctionDeclaration);		 //$NON-NLS-1$
-//		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-//		List parameters = methodDeclaration.parameters();
-//		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-//		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-//		Name name = singleVariableDeclaration.getName();
-//		IBinding binding = name.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("Not a variable binding", binding instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding;
-//		assertEquals("Wrong name", "i", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Wrong type", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//		
-//	/**
-//	 * Check qualified name resolution for static fields
-//	 */
-//	public void test0251() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0251", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("Not a ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-//		Expression expression = expressionStatement.getExpression();
-//		assertTrue("Not a method invocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-//		checkSourceRange(methodInvocation, "java.lang.System.out.println()", source); //$NON-NLS-1$
-//		Expression qualifier = methodInvocation.getExpression();
-//		assertTrue("Not a qualified name", qualifier instanceof QualifiedName); //$NON-NLS-1$
-//		checkSourceRange(qualifier, "java.lang.System.out", source); //$NON-NLS-1$
-//		QualifiedName qualifiedName = (QualifiedName) qualifier;
-//		Name typeName = qualifiedName.getQualifier();
-//		assertTrue("Not a QualifiedName", typeName instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName qualifiedTypeName = (QualifiedName) typeName;
-//		IBinding binding = qualifiedTypeName.getName().resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "System", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		binding = qualifiedTypeName.getQualifier().resolveBinding();
-//		assertNotNull("No binding2", binding); //$NON-NLS-1$
-//		assertEquals("Wrong type binding", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-//	}
-//		
-//	/**
-//	 * Check binding for anonymous class
-//	 */
-//	public void test0252() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0252", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-//		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) node;
-//		Expression expression = returnStatement.getExpression();
-//		assertTrue("Not a classinstancecreation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-//		IFunctionBinding methodBinding = classInstanceCreation.resolveConstructorBinding();
-//		assertNotNull("No methodBinding", methodBinding); //$NON-NLS-1$
-//		assertTrue("Not a constructor", methodBinding.isConstructor()); //$NON-NLS-1$
-//		assertTrue("Not an anonymous class", methodBinding.getDeclaringClass().isAnonymous()); //$NON-NLS-1$
-//		assertEquals("Not an anonymous class of java.lang.Object", "Object", methodBinding.getDeclaringClass().getSuperclass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Not an anonymous class of java.lang.Object", "java.lang", methodBinding.getDeclaringClass().getSuperclass().getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	/**
-	 * Check binding for allocation expression
-	 */
-	public void test0253() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0253", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not a classinstancecreation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		IFunctionBinding methodBinding = classInstanceCreation.resolveConstructorBinding();
-		assertNotNull("No methodBinding", methodBinding); //$NON-NLS-1$
-		assertTrue("Not a constructor", methodBinding.isConstructor()); //$NON-NLS-1$
-//		assertEquals("Wrong size", 1, methodBinding.getParameterTypes().length); //$NON-NLS-1$
-//		assertEquals("Wrong type", "String", methodBinding.getParameterTypes()[0].getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-//	/**
-//	 * Check binding for allocation expression
-//	 */
-//	public void test0254() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0254", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 1, 0);
-//		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) node;
-//		Expression expression = returnStatement.getExpression();
-//		assertTrue("Not a class instance creation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-//		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertEquals("wrong type", "C", binding.getDeclaringClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-
-//	/**
-//	 * Check binding for allocation expression
-//	 */
-//	public void test0255() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0255", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-//		Expression expression = expressionStatement.getExpression();
-//		assertTrue("Not a FunctionInvocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-//		List arguments = methodInvocation.arguments();
-//		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-//		Expression expression2 = (Expression) arguments.get(0);
-//		assertTrue("Not a CastExpression", expression2 instanceof CastExpression); //$NON-NLS-1$
-//		CastExpression castExpression = (CastExpression) expression2;
-//		Type type = castExpression.getType();
-//		ITypeBinding binding = type.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("Not an array type", binding.isArray()); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * Check binding for allocation expression
-//	 */
-//	public void test0256() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0256", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-//		Expression expression = expressionStatement.getExpression();
-//		assertTrue("Not a FunctionInvocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-//		List arguments = methodInvocation.arguments();
-//		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-//		Expression expression2 = (Expression) arguments.get(0);
-//		assertTrue("Not a CastExpression", expression2 instanceof CastExpression); //$NON-NLS-1$
-//		CastExpression castExpression = (CastExpression) expression2;
-//		Type type = castExpression.getType();
-//		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type;
-//		ITypeBinding binding = type.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("Not a class", binding.isClass()); //$NON-NLS-1$
-//		Name name = simpleType.getName();
-//		IBinding binding2 = name.resolveBinding();
-//		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-//		assertEquals("Wrong type", "Object", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-//	/**
-//	 * Check binding for allocation expression
-//	 */
-//	public void test0257() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0257", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-//		Expression expression = expressionStatement.getExpression();
-//		assertTrue("Not a FunctionInvocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-//		List arguments = methodInvocation.arguments();
-//		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-//		Expression expression2 = (Expression) arguments.get(0);
-//		assertTrue("Not a CastExpression", expression2 instanceof CastExpression); //$NON-NLS-1$
-//		CastExpression castExpression = (CastExpression) expression2;
-//		Type type = castExpression.getType();
-//		assertTrue("Not a primitive type", type.isPrimitiveType()); //$NON-NLS-1$
-//		PrimitiveType primitiveType = (PrimitiveType) type;
-//		assertEquals("Not int", PrimitiveType.INT, primitiveType.getPrimitiveTypeCode()); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * Check binding for allocation expression
-//	 */
-//	public void test0258() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0258", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-//		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-//		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-//		Expression expression = expressionStatement.getExpression();
-//		assertTrue("Not a FunctionInvocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-//		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-//		List arguments = methodInvocation.arguments();
-//		assertEquals("wrong size", 1, arguments.size()); //$NON-NLS-1$
-//		Expression expression2 = (Expression) arguments.get(0);
-//		assertTrue("Not a CastExpression", expression2 instanceof CastExpression); //$NON-NLS-1$
-//		CastExpression castExpression = (CastExpression) expression2;
-//		Type type = castExpression.getType();
-//		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type;
-//		ITypeBinding binding = type.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		assertTrue("Not a class", binding.isClass()); //$NON-NLS-1$
-//		Name name = simpleType.getName();
-//		IBinding binding2 = name.resolveBinding();
-//		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-//		assertEquals("Wrong type", "Object", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10663
-	 */
-	public void test0259() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0259", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10592
-//	 */
-//	public void test0260() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0260", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-//		assertTrue("Not a method declaration", node instanceof FunctionDeclaration);		 //$NON-NLS-1$
-//		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-//		List parameters = methodDeclaration.parameters();
-//		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-//		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-//		IBinding binding = singleVariableDeclaration.resolveBinding();
-//		assertNotNull("No binding", binding); //$NON-NLS-1$
-//		Name name = singleVariableDeclaration.getName();
-//		assertTrue("Not a simple name", name instanceof SimpleName); //$NON-NLS-1$
-//		SimpleName simpleName = (SimpleName) name;
-//		assertEquals("Wrong name", "i", simpleName.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-//		IBinding binding2 = name.resolveBinding();
-//		assertNotNull("No binding", binding2); //$NON-NLS-1$
-//		assertTrue("binding == binding2", binding == binding2); //$NON-NLS-1$
-//		assertTrue("Not a variable binding", binding2 instanceof IVariableBinding); //$NON-NLS-1$
-//		IVariableBinding variableBinding = (IVariableBinding) binding2;
-//		assertEquals("Wrong name", "i", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		assertEquals("Wrong type", "int", variableBinding.getType().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10676
-	 */
-	public void test0262() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0262", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expr = expressionStatement.getExpression();
-		assertTrue("Not a FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		List arguments = methodInvocation.arguments();
-		assertEquals("Wrong argument list size", 1, arguments.size()); //$NON-NLS-1$
-		Expression expr2 = (Expression) arguments.get(0);
-		assertTrue("Not a class instance creation", expr2 instanceof ClassInstanceCreation); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expr2;
-		arguments = classInstanceCreation.arguments();
-		assertEquals("Wrong size", 1, arguments.size()); //$NON-NLS-1$
-		Expression expression2 = (Expression) arguments.get(0);
-		assertTrue("Not a string literal", expression2 instanceof StringLiteral); //$NON-NLS-1$
-		StringLiteral stringLiteral = (StringLiteral) expression2;
-		ITypeBinding typeBinding = stringLiteral.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "String", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10700
-	 */
-	public void test0263() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0263", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expr = expressionStatement.getExpression();
-		assertTrue("Not a FunctionInvocation", expr instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expr;
-		List arguments = methodInvocation.arguments();
-		assertEquals("Wrong argument list size", 1, arguments.size()); //$NON-NLS-1$
-		Expression expr2 = (Expression) arguments.get(0);
-		assertTrue("Not a simple name", expr2 instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expr2;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10699
-	 */
-//	public void test0264() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0264", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertEquals("Wrong fragment size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression expression = variableDeclarationFragment.getInitializer();
-//		assertTrue("Not a classinstancecreation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-//		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-//		assertNotNull("No anonymousclassdeclaration", anonymousClassDeclaration); //$NON-NLS-1$
-//		String expectedSourceRange = 
-//			"{\n"+  //$NON-NLS-1$
-//			"			void m(int k){\n"+ //$NON-NLS-1$
-//			"				k= i;\n"+ //$NON-NLS-1$
-//			"			}\n"+ //$NON-NLS-1$
-//			"		}"; //$NON-NLS-1$
-//		checkSourceRange(anonymousClassDeclaration, expectedSourceRange, source);
-//		List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-//		assertEquals("Wrong size", 1, bodyDeclarations.size()); //$NON-NLS-1$
-//		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-//		assertTrue("Not a method declaration", bodyDeclaration instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-//		assertEquals("Wrong name", "m", methodDeclaration.getName().getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10698
-	 */
-	public void test0265() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0265", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-//	 */
-//	public void test0266() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0266", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		Type type = variableDeclarationStatement.getType();
-//		checkSourceRange(type, "Inner\\u005b]", source); //$NON-NLS-1$
-//		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-//		ArrayType arrayType = (ArrayType) type;
-//		Type type2 = arrayType.getElementType();
-//		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type2;
-//		checkSourceRange(simpleType, "Inner", source); //$NON-NLS-1$
-//		Name name = simpleType.getName();
-//		assertTrue("not a simple name", name.isSimpleName()); //$NON-NLS-1$
-//		SimpleName simpleName = (SimpleName) name;
-//		checkSourceRange(simpleName, "Inner", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-//	 */
-//	public void test0267() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0267", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		Type type = variableDeclarationStatement.getType();
-//		checkSourceRange(type, "Inner[]", source); //$NON-NLS-1$
-//		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-//		ArrayType arrayType = (ArrayType) type;
-//		Type type2 = arrayType.getElementType();
-//		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type2;
-//		checkSourceRange(simpleType, "Inner", source); //$NON-NLS-1$
-//		Name name = simpleType.getName();
-//		assertTrue("not a simple name", name.isSimpleName()); //$NON-NLS-1$
-//		SimpleName simpleName = (SimpleName) name;
-//		checkSourceRange(simpleName, "Inner", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-//	 */
-//	public void test0268() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0268", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		Type type = variableDeclarationStatement.getType();
-//		checkSourceRange(type, "test0268.Test.Inner[]", source); //$NON-NLS-1$
-//		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-//		ArrayType arrayType = (ArrayType) type;
-//		Type type2 = arrayType.getElementType();
-//		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type2;
-//		checkSourceRange(simpleType, "test0268.Test.Inner", source); //$NON-NLS-1$
-//		Name name = simpleType.getName();
-//		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(name, "test0268.Test.Inner", source); //$NON-NLS-1$
-//	}
-//	
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-//	 */
-//	public void test0269() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0269", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		Type type = variableDeclarationStatement.getType();
-//		checkSourceRange(type, "test0269.Test.Inner[/**/]", source); //$NON-NLS-1$
-//		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-//		ArrayType arrayType = (ArrayType) type;
-//		Type type2 = arrayType.getElementType();
-//		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type2;
-//		checkSourceRange(simpleType, "test0269.Test.Inner", source); //$NON-NLS-1$
-//		Name name = simpleType.getName();
-//		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(name, "test0269.Test.Inner", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-//	 */
-//	public void test0270() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0270", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		Type type = variableDeclarationStatement.getType();
-//		checkSourceRange(type, "test0270.Test.Inner", source); //$NON-NLS-1$
-//		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type;
-//		Name name = simpleType.getName();
-//		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(name, "test0270.Test.Inner", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10759
-//	 */
-//	public void test0271() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0271", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		Type type = variableDeclarationStatement.getType();
-//		checkSourceRange(type, "test0271.Test.Inner[]", source); //$NON-NLS-1$
-//		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-//		ArrayType arrayType = (ArrayType) type;
-//		Type type2 = arrayType.getElementType();
-//		assertTrue("Not a simple type", type2.isSimpleType()); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type2;
-//		checkSourceRange(simpleType, "test0271.Test.Inner", source); //$NON-NLS-1$
-//		Name name = simpleType.getName();
-//		assertTrue("not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-//		checkSourceRange(name, "test0271.Test.Inner", source); //$NON-NLS-1$
-//	}
-//
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10843
-	 */
-	public void test0272() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0272", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a For statement", node instanceof ForStatement); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		checkSourceRange(forStatement, "for (var i= 0; i < 10; i++) foo();", source); //$NON-NLS-1$
-		Statement action = forStatement.getBody();
-		checkSourceRange(action, "foo();", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10843
-	 */
-	public void test0273() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0273", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a For statement", node instanceof ForStatement); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		checkSourceRange(forStatement, "for (var i= 0; i < 10; i++) { foo(); }", source); //$NON-NLS-1$
-		Statement action = forStatement.getBody();
-		checkSourceRange(action, "{ foo(); }", source); //$NON-NLS-1$
-		assertTrue("Not a block", action instanceof Block); //$NON-NLS-1$
-		Block block = (Block) action;
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(0);
-		checkSourceRange(stmt, "foo();", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10843
-	 */
-	public void test0274() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0274", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not a While statement", node instanceof WhileStatement); //$NON-NLS-1$
-		WhileStatement whileStatement = (WhileStatement) node;
-		checkSourceRange(whileStatement, "while (i < 10) { foo(i++); }", source); //$NON-NLS-1$
-		Statement action = whileStatement.getBody();
-		checkSourceRange(action, "{ foo(i++); }", source); //$NON-NLS-1$
-		assertTrue("Not a block", action instanceof Block); //$NON-NLS-1$
-		Block block = (Block) action;
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement stmt = (Statement) statements.get(0);
-		checkSourceRange(stmt, "foo(i++);", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10843
-	 */
-	public void test0275() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0275", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not a While statement", node instanceof WhileStatement); //$NON-NLS-1$
-		WhileStatement whileStatement = (WhileStatement) node;
-		checkSourceRange(whileStatement, "while (i < 10) foo(i++);", source); //$NON-NLS-1$
-		Statement action = whileStatement.getBody();
-		checkSourceRange(action, "foo(i++);", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10798
-	 */
-	public void test0276() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0276", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		String expectedSource = 
-			"function foo() {\n" + //$NON-NLS-1$
-			"		foo();\n" + //$NON-NLS-1$
-			"	}"; //$NON-NLS-1$
-		checkSourceRange(methodDeclaration, expectedSource, source);
-		expectedSource = 
-			"{\n" + //$NON-NLS-1$
-			"		foo();\n" + //$NON-NLS-1$
-			"	}";		 //$NON-NLS-1$
-		checkSourceRange(methodDeclaration.getBody(), expectedSource, source);
-	}
-		
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10798
-	 */
-	public void test0277() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0277", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		String expectedSource = 
-			"function foo() {\n" + //$NON-NLS-1$
-			"	}"; //$NON-NLS-1$
-		checkSourceRange(methodDeclaration, expectedSource, source);
-		expectedSource = 
-			"{\n" + //$NON-NLS-1$
-			"	}";		 //$NON-NLS-1$
-		checkSourceRange(methodDeclaration.getBody(), expectedSource, source);
-	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10861
-//	 */
-//	public void test0278() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0278", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0);
-//		assertTrue("Not a Field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-//		checkSourceRange(fieldDeclaration, "Class c = java.lang.String.class;", source); //$NON-NLS-1$
-//		List fragments = fieldDeclaration.fragments();
-//		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression expression = variableDeclarationFragment.getInitializer();
-//		assertTrue("Not a type literal", expression instanceof TypeLiteral); //$NON-NLS-1$
-//		ITypeBinding typeBinding = expression.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "Class", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//	
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10861
-//	 */
-//	public void test0279() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0279", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0,0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		checkSourceRange(variableDeclarationStatement, "Class c = java.lang.String.class;", source); //$NON-NLS-1$
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression expression = variableDeclarationFragment.getInitializer();
-//		assertTrue("Not a type literal", expression instanceof TypeLiteral); //$NON-NLS-1$
-//		ITypeBinding typeBinding = expression.resolveTypeBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "Class", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10865
-	 * Check well known types
-	 */
-	public void test0280() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0280", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		AST newAst = result.getAST();
-		ITypeBinding typeBinding = newAst.resolveWellKnownType("Boolean"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Boolean", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("String"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "String", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		typeBinding = newAst.resolveWellKnownType("Number"); //$NON-NLS-1$
-		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("short"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "short", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("int"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("long"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "long", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("float"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "float", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("double"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "double", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("void"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "void", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Object"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "Object", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.String"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "String", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.StringBuffer"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "StringBuffer", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Throwable"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "Throwable", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Exception"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "Exception", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.RuntimeException"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "RuntimeException", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Error"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "Error", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Class"); //$NON-NLS-1$
-//		assertNotNull("No typeBinding", typeBinding); //$NON-NLS-1$
-//		assertEquals("Wrong name", "Class", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Runnable"); //$NON-NLS-1$
-//		assertNull("typeBinding not null", typeBinding); //$NON-NLS-1$
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Cloneable"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$
-//		typeBinding = newAst.resolveWellKnownType("java.io.Serializable"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Boolean"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Byte"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Character"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Double"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Float"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Integer"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Long"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Short"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-//		typeBinding = newAst.resolveWellKnownType("java.lang.Void"); //$NON-NLS-1$
-//		assertNotNull("typeBinding not null", typeBinding); //$NON-NLS-1$				
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0281() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0281", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var o= /*]*/new Object()/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "new Object()", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0282() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0282", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var b = /*]*/true/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "true", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0283() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0283", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var c = /*]*/'c'/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "'c'", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0284() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0284", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var o = /*]*/null/*[*/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "null", source); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-//	 */
-//	public void test0285() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0285", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0);
-//		assertTrue("Not a Field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-//		checkSourceRange(fieldDeclaration, "var o = /*]*/Object.class/*[*/;", source); //$NON-NLS-1$
-//		List fragments = fieldDeclaration.fragments();
-//		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression expression = variableDeclarationFragment.getInitializer();
-//		checkSourceRange(expression, "Object.class", source); //$NON-NLS-1$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0286() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0286", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var i = /**/(2)/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "(2)", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0287() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0287", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var tab = /**/new String/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "new String", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0288() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0288", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var tab = /**/[]/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "[]", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 */
-	public void test0289() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0289", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1);
-		assertTrue("Not a VariableDeclarationStatement declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var s = /**/tab1[0]/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "tab1[0]", source); //$NON-NLS-1$
-	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-//	 */
-//	public void test0290() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0290", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0);
-//		assertTrue("Not a Field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-//		checkSourceRange(fieldDeclaration, "var o = /*]*/new java.lang.Object()/*[*/;", source); //$NON-NLS-1$
-//		List fragments = fieldDeclaration.fragments();
-//		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression expression = variableDeclarationFragment.getInitializer();
-//		checkSourceRange(expression, "new java.lang.Object()", source); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10898
-//	 */
-//	public void test0291() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0291", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit unit = (JavaScriptUnit) result;
-//		assertEquals("no errors", 1, unit.getMessages().length); //$NON-NLS-1$
-//		assertEquals("no errors", 1, unit.getProblems().length); //$NON-NLS-1$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10913
-	 */
-	public void test0292() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0292", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not a FieldAccess", expression instanceof FieldAccess); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) expression;
-		SimpleName simpleName = fieldAccess.getName();
-		assertEquals("Wrong name", "x", simpleName.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("NO binding", binding); //$NON-NLS-1$
-		assertTrue("Not a variable binding", binding instanceof IVariableBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "x", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Expression expr = fieldAccess.getExpression();
-		assertTrue("Not a simpleName", expr instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleName2 = (SimpleName) expr;
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		assertTrue("Not a type binding", binding2 instanceof ITypeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Test", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10933
-// 	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10935
-//	 */
-//	public void test0293() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0293", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression expression = variableDeclarationFragment.getInitializer();
-//		assertTrue("Not a class instance creation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-//		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-//		assertNotNull("No body", anonymousClassDeclaration); //$NON-NLS-1$
-//		String expectedSource = 
-//				"{\n" + //$NON-NLS-1$
-//				"			public void run() {\n" + //$NON-NLS-1$
-//				"				/*]*/foo();/*[*/\n" + //$NON-NLS-1$
-//				"			}\n" + //$NON-NLS-1$
-//				"		}"; //$NON-NLS-1$
-//		checkSourceRange(anonymousClassDeclaration, expectedSource, source);
-//		expectedSource =
-//				"run= new Runnable() {\n" + //$NON-NLS-1$
-//				"			public void run() {\n" + //$NON-NLS-1$
-//				"				/*]*/foo();/*[*/\n" + //$NON-NLS-1$
-//				"			}\n" + //$NON-NLS-1$
-//				"		}"; //$NON-NLS-1$
-//		checkSourceRange(variableDeclarationFragment, expectedSource, source);
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10984
-	 */
-	public void test0294() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0294", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		String expectedSource = 
-				"function fails() {\n" + //$NON-NLS-1$
-				"		foo()\n" + //$NON-NLS-1$
-				"	}"; //$NON-NLS-1$
-		checkSourceRange(methodDeclaration, expectedSource, source);
-		Block block = methodDeclaration.getBody();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"		foo()\n" + //$NON-NLS-1$
-				"	}"; //$NON-NLS-1$
-		checkSourceRange(block, expectedSource, source);	
-		node = getASTNode(compilationUnit, 0, 1);	
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10986
-	 */
-	public void test0295() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0295", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		assertEquals("Wrong size", 2, compilationUnit.getMessages().length); //$NON-NLS-1$
-//		assertEquals("Wrong size", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("not a method invocation", expression instanceof FunctionInvocation); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		ITypeBinding typeBinding = methodInvocation.resolveTypeBinding();
-		assertNotNull("type binding is null", typeBinding); //$NON-NLS-1$
-	}
-
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10984
-	 */
-	public void test0296() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0296", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		String expectedSource = 
-				"function fails() {\n" + //$NON-NLS-1$
-				"		foo()\n" + //$NON-NLS-1$
-				"	}"; //$NON-NLS-1$
-		checkSourceRange(methodDeclaration, expectedSource, source);
-		Block block = methodDeclaration.getBody();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"		foo()\n" + //$NON-NLS-1$
-				"	}"; //$NON-NLS-1$
-		checkSourceRange(block, expectedSource, source);	
-		node = getASTNode(compilationUnit, 0, 1);	
-		assertTrue("Not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11037
-	 */
-	public void test0297() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0297", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		runConversion(sourceUnit, false);
-	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10984
-//	 */
-//	public void test0298() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0298", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, false);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-//		assertTrue("Not a ReturnStatement", node instanceof ReturnStatement); //$NON-NLS-1$
-//		ReturnStatement returnStatement = (ReturnStatement) node;
-//		Expression expression = returnStatement.getExpression();
-//		checkSourceRange(expression, "a().length != 3", source); //$NON-NLS-1$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11104
-	 */
-	public void test0299() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0299", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var i = (/**/2/**/);", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a parenthesized expression", expression instanceof ParenthesizedExpression); //$NON-NLS-1$
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression;
-		Expression expression2 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression2, "2", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11104
-	 */
-	public void test0300() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0300", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var b = /**/true/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "true", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=10874
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11104
-	 */
-	public void test0301() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0301", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a Field declaration", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		checkSourceRange(fieldDeclaration, "var o = /**/null/**/;", source); //$NON-NLS-1$
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		checkSourceRange(expression, "null", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11106
-	 */
-	public void test0302() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0302", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a DoStatement", node instanceof DoStatement); //$NON-NLS-1$
-		DoStatement doStatement = (DoStatement) node;
-		String expectedSource = 
-				"do\n" +   //$NON-NLS-1$
-				"			foo();\n" +  //$NON-NLS-1$
-				"		while(1 < 10);"; //$NON-NLS-1$
-		checkSourceRange(doStatement, expectedSource, source);
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11129
-	 */
-	public void test0303() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0303", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression2 = expressionStatement.getExpression();
-		assertTrue("Not an Assignement", expression2 instanceof Assignment); //$NON-NLS-1$
-		Assignment assignment = (Assignment) expression2;
-		Expression expression = assignment.getRightHandSide();
-//		assertTrue("Not a CastExpression", expression instanceof CastExpression); //$NON-NLS-1$
-//		CastExpression castExpression = (CastExpression) expression;
-		ITypeBinding typeBinding = expression.resolveTypeBinding();
-		assertNotNull("No binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		Type type = castExpression.getType();
-//		ITypeBinding typeBinding2 = type.resolveBinding();
-//		assertNotNull("No binding2", typeBinding2); //$NON-NLS-1$
-//		assertEquals("Wrong name", "char", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11151
-	 */
-	public void test0304() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0304", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		checkSourceRange(node, "function foo(arg);", source); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		assertNull("Has a body", block); //$NON-NLS-1$
-	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11125
-//	 */
-//	public void test0305() {
-//		char[] source = 
-//				("" +  //$NON-NLS-1$
-//				"	function  foo(arg) {}\n" +  //$NON-NLS-1$
-//				"").toCharArray(); //$NON-NLS-1$
-//		IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
-//		ASTNode result = runConversion(source, "Test.js", project, true); //$NON-NLS-1$
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0);
-//		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-////		assertEquals("Wrong name", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-////		assertEquals("Wrong package", "test0305", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-////		assertTrue("Not an interface", typeBinding.isClass()); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11125
-//	 */
-//	public void test0306() {
-//		char[] source = 
-//				("" +  //$NON-NLS-1$
-//				"	function  foo(arg) {}\n" +  //$NON-NLS-1$
-//				"").toCharArray(); //$NON-NLS-1$
-//		IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
-//		ASTNode result = runConversion(source, "Object.js", project, true); //$NON-NLS-1$
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0);
-//		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-//		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-////		assertEquals("Wrong name", "Object", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-////		assertEquals("Wrong package", "java.lang", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-////		assertTrue("Not an interface", typeBinding.isClass()); //$NON-NLS-1$
-//		assertEquals("Wrong size", 2, typeBinding.getDeclaredMethods().length); //$NON-NLS-1$
-//	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11371
-//	 */
-//	public void test0307() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0307", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-//		assertTrue("not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-//		Block block = methodDeclaration.getBody();
-//		assertNotNull("No body", block); //$NON-NLS-1$
-//		List statements = block.statements();
-//		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-//		Statement statement = (Statement) statements.get(0);
-//		assertTrue("Not a super constructor invocation", statement instanceof SuperConstructorInvocation); //$NON-NLS-1$
-//		checkSourceRange(statement, "super(10);", source);
-//	}
-//
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11371
-//	 */
-//	public void test0308() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0308", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-//		assertTrue("not a method declaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-//		Block block = methodDeclaration.getBody();
-//		assertNotNull("No body", block); //$NON-NLS-1$
-//		List statements = block.statements();
-//		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-//		Statement statement = (Statement) statements.get(0);
-//		assertTrue("Not a super constructor invocation", statement instanceof SuperConstructorInvocation); //$NON-NLS-1$
-//		SuperConstructorInvocation superConstructorInvocation = (SuperConstructorInvocation) statement;
-//		IFunctionBinding methodBinding = superConstructorInvocation.resolveConstructorBinding();
-//		assertNotNull("No methodBinding", methodBinding); //$NON-NLS-1$
-//		IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-//		assertNotNull("No methodBinding2", methodBinding2); //$NON-NLS-1$
-//	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11380
-	 */
-	public void test0309() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0309", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a conditional expression", expression instanceof ConditionalExpression); //$NON-NLS-1$
-		ConditionalExpression conditionalExpression = (ConditionalExpression) expression;
-		ITypeBinding typeBinding = conditionalExpression.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "Number", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11380
-	 */
-	public void test0310() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0310", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a fieldAccess", expression instanceof FieldAccess); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) expression;
-		SimpleName qualifier = (SimpleName)fieldAccess.getExpression();
-		IBinding binding = qualifier.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", "I", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11638
-//	 */
-//	public void test0311() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0311", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression expression = variableDeclarationFragment.getInitializer();
-//		assertTrue("not a class instance creation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-//		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-//		assertNotNull("No body", anonymousClassDeclaration); //$NON-NLS-1$
-//		List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-//		assertEquals("wrong size for body declarations", 1, bodyDeclarations.size()); //$NON-NLS-1$
-//		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-//		assertTrue("Not a method declaration", bodyDeclaration instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-//		Block block = methodDeclaration.getBody();
-//		assertNotNull("no body", block); //$NON-NLS-1$
-//		List statements = block.statements();
-//		assertEquals("Wrong size for statements", 1, statements.size()); //$NON-NLS-1$
-//		Statement statement = (Statement) statements.get(0);
-//		assertTrue("not a variable declaration statement", statement instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement2 = (VariableDeclarationStatement) statement;
-//		List fragments2 = variableDeclarationStatement2.fragments();
-//		assertEquals("wrong size for fragments2", 1, fragments2.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment2 = (VariableDeclarationFragment) fragments2.get(0);
-//		Expression expression2 = variableDeclarationFragment2.getInitializer();
-//		assertTrue("Not a name", expression2 instanceof Name); //$NON-NLS-1$
-//		Name name = (Name) expression2;
-//		checkSourceRange(name, "j", source); //$NON-NLS-1$
-//		IBinding binding = name.resolveBinding();
-//		ASTNode declaringNode = compilationUnit.findDeclaringNode(binding);
-//		assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
-//		checkSourceRange(declaringNode, "var j", source); //$NON-NLS-1$
-//		assertTrue("Not a single variable declaration", declaringNode instanceof SingleVariableDeclaration); //$NON-NLS-1$
-//	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11638
-//	 * There is a error in this source. A is unresolved. Then there is no
-//	 * declaring node.
-//	 */
-//	public void test0312() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0312", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		List fragments = variableDeclarationStatement.fragments();
-//		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-//		Expression expression = variableDeclarationFragment.getInitializer();
-//		assertTrue("not a class instance creation", expression instanceof ClassInstanceCreation); //$NON-NLS-1$
-//		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-//		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-//		assertNotNull("No body", anonymousClassDeclaration); //$NON-NLS-1$
-//		List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-//		assertEquals("wrong size for body declarations", 1, bodyDeclarations.size()); //$NON-NLS-1$
-//		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-//		assertTrue("Not a method declaration", bodyDeclaration instanceof FunctionDeclaration); //$NON-NLS-1$
-//		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-//		Block block = methodDeclaration.getBody();
-//		assertNotNull("no body", block); //$NON-NLS-1$
-//		List statements = block.statements();
-//		assertEquals("Wrong size for statements", 1, statements.size()); //$NON-NLS-1$
-//		Statement statement = (Statement) statements.get(0);
-//		assertTrue("not a variable declaration statement", statement instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement2 = (VariableDeclarationStatement) statement;
-//		List fragments2 = variableDeclarationStatement2.fragments();
-//		assertEquals("wrong size for fragments2", 1, fragments2.size()); //$NON-NLS-1$
-//		VariableDeclarationFragment variableDeclarationFragment2 = (VariableDeclarationFragment) fragments2.get(0);
-//		Expression expression2 = variableDeclarationFragment2.getInitializer();
-//		assertTrue("Not a name", expression2 instanceof Name); //$NON-NLS-1$
-//		Name name = (Name) expression2;
-//		checkSourceRange(name, "j", source); //$NON-NLS-1$
-//		IBinding binding = name.resolveBinding();
-//		ASTNode declaringNode = compilationUnit.findDeclaringNode(binding);
-//		assertNull("No declaring node is available", declaringNode); //$NON-NLS-1$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11659
-	 */
-	public void test0313() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0313", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an InfixExpression", expression instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "i+j", source); //$NON-NLS-1$
-		Expression expression2 = infixExpression.getLeftOperand();
-		checkSourceRange(expression2, "i", source); //$NON-NLS-1$
-		assertTrue("Not a name", expression2 instanceof Name); //$NON-NLS-1$
-		Name name = (Name) expression2;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		ASTNode astNode = compilationUnit.findDeclaringNode(binding);
-		assertNotNull("No declaring node", astNode); //$NON-NLS-1$
-		checkSourceRange(astNode, "i", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=12326
-	 */
-	public void test0314() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0314", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("No result", result); //$NON-NLS-1$
-		assertTrue("Not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("Wrong line number", 1, compilationUnit.getLineNumber(0)); //$NON-NLS-1$
-		// ensure that last character is on the last line
-		assertEquals("Wrong line number", 1, compilationUnit.getLineNumber(source.length - 1)); //$NON-NLS-1$
-		// source.length is beyond the size of the compilation unit source
-		assertEquals("Wrong line number", -1, compilationUnit.getLineNumber(source.length)); //$NON-NLS-1$
-	}
-		
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=12326
-	 */
-	public void test0315() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0315", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a Return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("Not an InfixExpression expression", expression instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression instanceOfExpression = (InfixExpression) expression;
-		Expression rightOperand = instanceOfExpression.getRightOperand();
-		assertTrue("Not a SimpleName", rightOperand instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleType = (SimpleName) rightOperand;
-		assertTrue("wrong operator",instanceOfExpression.getOperator().equals(InfixExpression.Operator.INSTANCEOF));
-//		Name n = simpleType.getName();
-//		assertTrue("Not a qualified name", n instanceof QualifiedName); //$NON-NLS-1$
-//		QualifiedName name = (QualifiedName) n;
-		checkSourceRange(simpleType, "String", source); //$NON-NLS-1$
-		ITypeBinding typeBinding = simpleType.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "String", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		Name qualifier = name.getQualifier();
-//		assertTrue("Not a qualified name", qualifier instanceof QualifiedName); //$NON-NLS-1$
-//		ITypeBinding typeBinding2 = qualifier.resolveTypeBinding();
-//		assertNull("typebinding2 is not null", typeBinding2); //$NON-NLS-1$
-//		IBinding binding = qualifier.resolveBinding();
-//		assertNotNull("no binding", binding); //$NON-NLS-1$
-//		assertEquals("Wrong type", IBinding.PACKAGE, binding.getKind()); //$NON-NLS-1$
-//		IPackageBinding pBinding = (IPackageBinding) binding;
-//		assertEquals("Wrong name", "java.io", pBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-		
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=12454
-//	 */
-//	public void test0316() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Hello.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No result", result); //$NON-NLS-1$
-//		assertTrue("Not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		assertEquals("Wrong size", 1, compilationUnit.getMessages().length); //$NON-NLS-1$
-//		assertEquals("Wrong size", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=12781
-	 */
-	public void test0317() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0317", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a return statement", node instanceof ReturnStatement); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("not an InfixExpression expression", expression instanceof InfixExpression); //$NON-NLS-1$
-		InfixExpression instanceOfExpression = (InfixExpression) expression;
-		assertTrue("wrong operator",instanceOfExpression.getOperator().equals(InfixExpression.Operator.INSTANCEOF));
-		Expression left = instanceOfExpression.getLeftOperand();
-		assertTrue("Not a Name", left instanceof Name); //$NON-NLS-1$
-		Name name = (Name) left;
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", "x", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding = name.resolveTypeBinding();
-		assertNotNull("No typebinding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong type", "any", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Expression right = instanceOfExpression.getRightOperand();
-		assertTrue("Not a simpleName", right instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleType = (SimpleName) right;
-		name = simpleType;//.getName();
-		assertTrue("Not a simpleName", name instanceof SimpleName); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding2 = simpleName.resolveBinding();
-		assertNotNull("No binding2", binding2); //$NON-NLS-1$
-		assertEquals("Wrong name", "Boolean", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-		assertNotNull("No typeBinding2", typeBinding2); //$NON-NLS-1$
-		assertEquals("Wrong name", "Boolean", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-					
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13233
-	 */
-	public void test0318() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0318", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("No error", 1, unit.getMessages().length); //$NON-NLS-1$
-		assertEquals("No error", 1, unit.getProblems().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0319() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0319", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an array creation", expression instanceof ArrayInitializer); //$NON-NLS-1$
-		ArrayInitializer arrayCreation = (ArrayInitializer) expression;
-		ITypeBinding typeBinding = arrayCreation.resolveTypeBinding();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "any[]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		ArrayType arrayType = arrayCreation.getType();
-//		ITypeBinding typeBinding2 = arrayType.resolveBinding();
-//		assertNotNull("no type binding2", typeBinding2); //$NON-NLS-1$
-//		assertEquals("wrong name", "Object[]", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-//		Type type = arrayType.getElementType();
-//		assertTrue("Not a simple type", type instanceof SimpleType); //$NON-NLS-1$
-//		SimpleType simpleType = (SimpleType) type;
-//		ITypeBinding typeBinding3 = simpleType.resolveBinding();
-//		assertNotNull("no type binding3", typeBinding3); //$NON-NLS-1$
-//		assertEquals("wrong name", "Object", typeBinding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-			
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-	 */
-	public void test0320() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0320", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-
-		
-		IVariableBinding binding = variableDeclarationFragment.resolveBinding();
-		ITypeBinding typeBinding = binding.getType();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "Number[]", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		
-//		Type type = variableDeclarationStatement.getType();
-//		checkSourceRange(type, "int[]", source); //$NON-NLS-1$
-//		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-//		ArrayType arrayType = (ArrayType) type;
-//		ITypeBinding typeBinding = arrayType.resolveBinding();
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		Type elementType = arrayType.getElementType();
-//		assertTrue("Not a simple type", elementType.isPrimitiveType()); //$NON-NLS-1$
-//		ITypeBinding typeBinding2 = elementType.resolveBinding();
-//		assertNotNull("No type binding2", typeBinding2); //$NON-NLS-1$
-	}
-
-//	/**
-//	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13807
-//	 */
-//	public void test0321() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0321", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		char[] source = sourceUnit.getSource().toCharArray();
-//		ASTNode result = runConversion(sourceUnit, true);
-//		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-//		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-//		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-//		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-//		Type type = variableDeclarationStatement.getType();
-//		assertTrue("Not an array type", type.isArrayType()); //$NON-NLS-1$
-//		ArrayType arrayType = (ArrayType) type;
-//		ITypeBinding typeBinding = arrayType.resolveBinding();
-//		checkSourceRange(type, "java.lang.Object[][]", source); //$NON-NLS-1$
-//		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-//		Type elementType = arrayType.getComponentType();
-//		ITypeBinding typeBinding2 = elementType.resolveBinding();
-//		assertNotNull("No type binding2", typeBinding2); //$NON-NLS-1$
-//		assertEquals("wrong dimension", 1, typeBinding2.getDimensions()); //$NON-NLS-1$
-//		assertEquals("wrong name", "Object[]", typeBinding2.getName());		 //$NON-NLS-1$ //$NON-NLS-2$
-//		assertTrue("Not an array type", elementType.isArrayType()); //$NON-NLS-1$
-//		Type elementType2 = ((ArrayType) elementType).getComponentType();
-//		assertTrue("Not a simple type", elementType2.isSimpleType()); //$NON-NLS-1$
-//		ITypeBinding typeBinding3 = elementType2.resolveBinding();
-//		assertNotNull("No type binding3", typeBinding3); //$NON-NLS-1$
-//		assertEquals("wrong dimension", 0, typeBinding3.getDimensions()); //$NON-NLS-1$
-//		assertEquals("wrong name", "Object", typeBinding3.getName());		 //$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=13231
-	 */
-	public void test0322() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0322", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertTrue("Not a VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a null literal", expression instanceof NullLiteral); //$NON-NLS-1$
-		NullLiteral nullLiteral = (NullLiteral) expression;
-		ITypeBinding typeBinding = nullLiteral.resolveTypeBinding();
-		assertNotNull("no type binding", typeBinding); //$NON-NLS-1$
-		assertTrue("Not the null type", typeBinding.isNullType()); //$NON-NLS-1$
-		assertEquals("Wrong qualified name", typeBinding.getQualifiedName(), "null"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14198
-	 */
-	public void test0323() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0323", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression2 = expressionStatement.getExpression();
-		assertTrue("Not an Assignement", expression2 instanceof Assignment); //$NON-NLS-1$
-	}					
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14217
-	 */
-	public void test0326() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0326", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		char[] source = sourceUnit.getSource().toCharArray();
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertTrue("Not an ExpressionStatement", node instanceof ExpressionStatement); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		checkSourceRange(expressionStatement.getExpression(), "a().f= a()", source); //$NON-NLS-1$
-		checkSourceRange(expressionStatement, "a().f= a();", source); //$NON-NLS-1$
-	}					
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14322
-	 */
-	public void test0331() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0331", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertTrue("Not an VariableDeclarationStatement", node instanceof VariableDeclarationStatement); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a QualifiedName", expression instanceof QualifiedName); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) expression;
-		IBinding binding = qualifiedName.getName().resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind()); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertTrue("Not a field", variableBinding.isField()); //$NON-NLS-1$
-		assertNull("Got a declaring class", variableBinding.getDeclaringClass()); //$NON-NLS-1$
-		assertEquals("wrong name", "length", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}					
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=15061
-	 */
-	public void test0339() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0339", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No errors found", 3, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a Type declaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size()); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclarations.get(0);
-		checkSourceRange(methodDeclaration, "function doQuery(boolean x);", source); //$NON-NLS-1$
-		node = getASTNode(compilationUnit, 0, 1);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a FunctionDeclaration", node instanceof FunctionDeclaration); //$NON-NLS-1$
-		String expectedSource = 
-			"function setX( x) {\n" +  //$NON-NLS-1$
-			" 		{\n" +  //$NON-NLS-1$
-			"		z\n" +  //$NON-NLS-1$
-			"	}\n" +  //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-		int methodEndPosition = node.getStartPosition() + node.getLength();
-		node = getASTNode(compilationUnit, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		int typeEndPosition = node.getStartPosition() + node.getLength();
-		assertEquals("different positions", methodEndPosition, typeEndPosition); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14852
-	 */
-	public void test0340() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "p3", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not an method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertNotNull("No receiver", expression2); //$NON-NLS-1$
-		ITypeBinding binding = expression2.resolveTypeBinding();
-		assertNotNull("No type binding", binding); //$NON-NLS-1$
-		assertEquals("wrong name", "A", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong name", "p2", binding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Not a qualified name", expression2.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) expression2;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("wrong name", "A", simpleName.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding = simpleName.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "A", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong name", "p2", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		Name name = qualifiedName.getQualifier();
-		assertTrue("Not a simple name", name.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName2 = (SimpleName) name;
-		assertEquals("wrong name", "p2", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("No binding", binding2); //$NON-NLS-1$
-		assertEquals("wrong type", IBinding.PACKAGE, binding2.getKind()); //$NON-NLS-1$
-		assertEquals("wrong name", "p2", binding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement2 = (ExpressionStatement) node;
-		Expression expression3 = expressionStatement2.getExpression();
-		assertTrue("Not an method invocation", expression3.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) expression3;
-		Expression expression4 = methodInvocation2.getExpression();
-		assertNotNull("No receiver", expression4); //$NON-NLS-1$
-		ITypeBinding binding3 = expression4.resolveTypeBinding();
-		assertNotNull("No type binding", binding3); //$NON-NLS-1$
-		assertEquals("wrong name", "A", binding3.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("wrong name", "p1", binding3.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=15804
-	 */
-	public void test0341() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0341", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an if statement", node.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		String expectedSource = 
-				"if (field != null) {\n" + //$NON-NLS-1$
-				"			throw new IOException();\n" + //$NON-NLS-1$
-				"		} else if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new MalformedURLException();\n" + //$NON-NLS-1$
-				"		} else if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new InterruptedIOException();\n" + //$NON-NLS-1$
-				"		} else {\n" + //$NON-NLS-1$
-				"			throw new UnsupportedEncodingException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-		IfStatement ifStatement = (IfStatement) node;
-		Statement thenStatement = ifStatement.getThenStatement();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			throw new IOException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(thenStatement, expectedSource, source);
-		Statement elseStatement = ifStatement.getElseStatement();
-		expectedSource = 
-				"if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new MalformedURLException();\n" + //$NON-NLS-1$
-				"		} else if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new InterruptedIOException();\n" + //$NON-NLS-1$
-				"		} else {\n" + //$NON-NLS-1$
-				"			throw new UnsupportedEncodingException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(elseStatement, expectedSource, source);
-		assertTrue("Not a if statement", elseStatement.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		ifStatement = (IfStatement) elseStatement;
-		thenStatement = ifStatement.getThenStatement();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			throw new MalformedURLException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(thenStatement, expectedSource, source);
-		elseStatement = ifStatement.getElseStatement();
-		expectedSource = 
-				"if (field == null) {\n" + //$NON-NLS-1$
-				"			throw new InterruptedIOException();\n" + //$NON-NLS-1$
-				"		} else {\n" + //$NON-NLS-1$
-				"			throw new UnsupportedEncodingException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(elseStatement, expectedSource, source);
-		assertTrue("Not a if statement", elseStatement.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		ifStatement = (IfStatement) elseStatement;
-		thenStatement = ifStatement.getThenStatement();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			throw new InterruptedIOException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(thenStatement, expectedSource, source);
-		elseStatement = ifStatement.getElseStatement();
-		expectedSource = 
-				"{\n" + //$NON-NLS-1$
-				"			throw new UnsupportedEncodingException();\n" + //$NON-NLS-1$
-				"		}"; //$NON-NLS-1$
-		checkSourceRange(elseStatement, expectedSource, source);
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=16051
-	 */
-	public void test0343() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0343", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 1);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an if statement", node.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		String expectedSource = 
-				"if (flag)\n" + //$NON-NLS-1$
-				"			i= 10;"; //$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=17922
-	 */
-	public void test0345() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0345", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not an ArrayCreation", expression.getNodeType() == ASTNode.ARRAY_CREATION); //$NON-NLS-1$
-		ArrayCreation arrayCreation = (ArrayCreation) expression;
-		ArrayType arrayType = arrayCreation.getType();
-		IBinding binding2 = arrayType.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertEquals("not a type", binding2.getKind(), IBinding.TYPE); //$NON-NLS-1$
-		ITypeBinding typeBinding2 = (ITypeBinding) binding2;
-		assertTrue("Not an array type binding2", typeBinding2.isArray()); //$NON-NLS-1$
-		Type type = arrayType.getElementType();
-		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("QualifiedName", name.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
-		SimpleName simpleName = ((QualifiedName) name).getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("no binding", binding); //$NON-NLS-1$
-		assertEquals("not a type", binding.getKind(), IBinding.TYPE); //$NON-NLS-1$
-		ITypeBinding typeBinding = (ITypeBinding) binding;
-		assertTrue("An array type binding", !typeBinding.isArray()); //$NON-NLS-1$
-		Type type2 = fieldDeclaration.getType();
-		assertTrue("Not a array type", type2.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType2 = (ArrayType) type2;
-		Type type3 = arrayType2.getElementType();
-		assertTrue("Not a simple type", type3.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType2 = (SimpleType) type3;
-		Name name2 = simpleType2.getName();
-		assertTrue("Not a qualified name", name2.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
-		SimpleName simpleName2 = ((QualifiedName) name2).getName();
-		IBinding binding3 = simpleName2.resolveBinding();
-		assertNotNull("no binding", binding3); //$NON-NLS-1$
-		assertEquals("not a type", binding3.getKind(), IBinding.TYPE); //$NON-NLS-1$
-		ITypeBinding typeBinding3 = (ITypeBinding) binding3;
-		assertTrue("An array type binding", !typeBinding3.isArray()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0346() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0346", "Test2.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an variable declaration", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "Vector", source); //$NON-NLS-1$
-		assertTrue("not an array type", !type.isArrayType()); //$NON-NLS-1$
-		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("Not a simpleName", name.isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		ITypeBinding typeBinding = (ITypeBinding) binding;
-		assertTrue("An array", !typeBinding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		ITypeBinding typeBinding2 = simpleType.resolveBinding();
-		assertNotNull("No binding", typeBinding2); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, typeBinding2.getKind()); //$NON-NLS-1$
-		assertTrue("An array", !typeBinding2.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector", typeBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0347() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0347", "Test2.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an variable declaration", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "Vector[]", source); //$NON-NLS-1$
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding binding = arrayType.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("Not an array type", binding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector[]", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0348() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0348", "Test2.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an variable declaration", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "Vector[][]", source); //$NON-NLS-1$
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding binding = arrayType.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("Not an array type", binding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector[][]", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0349() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0349", "Test2.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Vector[][]", source); //$NON-NLS-1$
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		ITypeBinding binding = arrayType.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("Not an array type", binding.isArray()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector[][]", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18138
-	 */
-	public void test0350() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0350", "Test2.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		VariableDeclarationStatement fieldDeclaration = (VariableDeclarationStatement) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Vector", source); //$NON-NLS-1$
-		assertTrue("not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		ITypeBinding binding = simpleType.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("An array type", binding.isClass()); //$NON-NLS-1$
-		assertEquals("Wrong name", "Vector", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18169
-	 */
-	public void test0351() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0351", "Test2.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		checkSourceRange(singleVariableDeclaration, "var a", source); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(1);
-		checkSourceRange(singleVariableDeclaration, "var b", source); //$NON-NLS-1$
-		node = getASTNode(compilationUnit, 0, 1);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		checkSourceRange(singleVariableDeclaration, "var a", source); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(1);
-		checkSourceRange(singleVariableDeclaration, "var b", source);			 //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18169
-	 */
-	public void test0352() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0352", "Test2.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		checkSourceRange(singleVariableDeclaration, "var a", source); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(1);
-		checkSourceRange(singleVariableDeclaration, "var b", source); //$NON-NLS-1$
-		node = getASTNode(compilationUnit, 0, 1);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		parameters = methodDeclaration.parameters();
-		assertEquals("wrong size", 2, parameters.size()); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-		checkSourceRange(singleVariableDeclaration, "vara", source); //$NON-NLS-1$
-		singleVariableDeclaration = (SingleVariableDeclaration) parameters.get(1);
-		checkSourceRange(singleVariableDeclaration, "var b", source);			 //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=18042
-	 */
-	public void test0353() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0353", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("not null", node); //$NON-NLS-1$
-		assertTrue("Not an variable declaration", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		checkSourceRange(type, "InputStream", source); //$NON-NLS-1$
-		assertTrue("not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		ITypeBinding binding = type.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind()); //$NON-NLS-1$
-		assertTrue("Not a class", binding.isClass()); //$NON-NLS-1$
-		assertEquals("Wrong name", "InputStream", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong package", "java.io", binding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		IBinding binding2 = name.resolveBinding();
-		assertNotNull("No binding", binding2); //$NON-NLS-1$
-		assertEquals("Wrong type", IBinding.TYPE, binding2.getKind()); //$NON-NLS-1$
-		ITypeBinding typeBinding = (ITypeBinding) binding2;
-		assertTrue("Not a class", typeBinding.isClass()); //$NON-NLS-1$
-		assertEquals("Wrong name", "InputStream", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong package", "java.io", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=19851
-	 */
-	public void test0354() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0354", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 2, compilationUnit.getMessages().length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=20520
-	 */
-	public void test0355() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0355", "Foo.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not an if statement", node.getNodeType() == ASTNode.IF_STATEMENT); //$NON-NLS-1$
-		IfStatement ifStatement = (IfStatement) node;
-		Expression condition = ifStatement.getExpression();
-		assertTrue("Not an infixExpression", condition.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) condition;
-		Expression expression = infixExpression.getLeftOperand();
-		assertTrue("Not a method invocation expression", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a parenthesis expression", expression2.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=20865
-	 */
-	public void test0356() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0356", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 1, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		Type type = variableDeclarationStatement.getType();
-		ITypeBinding binding = type.resolveBinding();
-		assertNotNull("Binding should NOT be null for type: "+type, binding);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21757
-	 */
-	public void test0357() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0357", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration statement", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		SimpleName name = typeDeclaration.getName();
-		checkSourceRange(name, "A", source); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21768
-	 */
-	public void test0358() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0358", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0,0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration statement", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		SimpleName name = methodDeclaration.getName();
-		checkSourceRange(name, "mdd", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21768
-	 */
-	public void test0359() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0359", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0,0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration statement", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		SimpleName name = methodDeclaration.getName();
-		checkSourceRange(name, "mdd", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21916
-	 */
-	public void test0360() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0360", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0,0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		List initializers = forStatement.initializers();
-		assertEquals("Wrong size", 1, initializers.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21916
-	 */
-	public void test0361() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0361", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0,0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		List initializers = forStatement.initializers();
-		assertEquals("Wrong size", 1, initializers.size()); //$NON-NLS-1$
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=21916
-	 * @deprecated using deprecated code
-	 */
-	public void test0362() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0362", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		ForStatement forStatement = this.ast.newForStatement();
-
-		VariableDeclarationFragment iFragment = this.ast.newVariableDeclarationFragment();
-		iFragment.setName(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		iFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		VariableDeclarationFragment jFragment = this.ast.newVariableDeclarationFragment();
-		jFragment.setName(this.ast.newSimpleName("j")); //$NON-NLS-1$
-		jFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-		VariableDeclarationFragment kFragment = this.ast.newVariableDeclarationFragment();
-		kFragment.setName(this.ast.newSimpleName("k")); //$NON-NLS-1$
-		kFragment.setInitializer(this.ast.newNumberLiteral("0"));//$NON-NLS-1$
-
-		VariableDeclarationExpression variableDeclarationExpression = this.ast.newVariableDeclarationExpression(iFragment);
-		variableDeclarationExpression.setModifiers(Modifier.NONE);
-//		variableDeclarationExpression.setType(this.ast.newPrimitiveType(PrimitiveType.INT));
-		variableDeclarationExpression.fragments().add(jFragment);
-		variableDeclarationExpression.fragments().add(kFragment);
-		forStatement.initializers().add(variableDeclarationExpression);
-
-		PostfixExpression iPostfixExpression = this.ast.newPostfixExpression();
-		iPostfixExpression.setOperand(this.ast.newSimpleName("i"));//$NON-NLS-1$
-		iPostfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(iPostfixExpression);
-		
-		PostfixExpression jPostfixExpression = this.ast.newPostfixExpression();
-		jPostfixExpression.setOperand(this.ast.newSimpleName("j"));//$NON-NLS-1$
-		jPostfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(jPostfixExpression);
-
-		PostfixExpression kPostfixExpression = this.ast.newPostfixExpression();
-		kPostfixExpression.setOperand(this.ast.newSimpleName("k"));//$NON-NLS-1$
-		kPostfixExpression.setOperator(PostfixExpression.Operator.INCREMENT);
-		forStatement.updaters().add(kPostfixExpression);
-
-		forStatement.setBody(this.ast.newBlock());
-		
-		InfixExpression infixExpression = this.ast.newInfixExpression();
-		infixExpression.setLeftOperand(this.ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.LESS);
-		infixExpression.setRightOperand(this.ast.newNumberLiteral("10")); //$NON-NLS-1$
-		forStatement.setExpression(infixExpression);
-		
-		assertTrue("Both AST trees should be identical", forStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		checkSourceRange(node, "for (var i=0, j=0, k=0; i<10 ; i++, j++, k++) {}", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22939
-	 */
-	public void test0363() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0363", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 1);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = variableDeclarationFragment.getInitializer();
-		assertTrue("Not a parenthesized expression", expression.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION); //$NON-NLS-1$
-		Expression expression2 = ((ParenthesizedExpression) expression).getExpression();
-		checkSourceRange(expression2, "xxxx", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11529
-	 */
-	public void test0364() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0364", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		checkSourceRange(variableDeclarationStatement, "var local;", source); //$NON-NLS-1$
-		SimpleName simpleName = variableDeclarationFragment.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11529
-	 */
-	public void test0365() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0365", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		List initializers = forStatement.initializers();
-		assertEquals("Wrong size", 1, initializers.size()); //$NON-NLS-1$
-		VariableDeclarationExpression variableDeclarationExpression = (VariableDeclarationExpression) initializers.get(0);
-		List fragments = variableDeclarationExpression.fragments();
-		assertEquals("Wrong size", 1, fragments.size()); //$NON-NLS-1$
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) fragments.get(0);
-		SimpleName simpleName = variableDeclarationFragment.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0366() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0366", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		checkSourceRange(forStatement, "for (var i = 0; i < 5; ++i);", source); //$NON-NLS-1$
-		Statement statement = forStatement.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0367() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0367", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("errors found", 0, compilationUnit.getMessages().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a while statement", node.getNodeType() == ASTNode.WHILE_STATEMENT); //$NON-NLS-1$
-		WhileStatement whileStatement = (WhileStatement) node;
-		checkSourceRange(whileStatement, "while(i == 2);", source); //$NON-NLS-1$
-		Statement statement = whileStatement.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0368() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0368", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertProblemsSize(compilationUnit, 1, "The label test is never explicitly referenced"); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a labeled statement", node.getNodeType() == ASTNode.LABELED_STATEMENT); //$NON-NLS-1$
-		LabeledStatement labeledStatement = (LabeledStatement) node;
-		checkSourceRange(labeledStatement, "test:;", source); //$NON-NLS-1$
-		Statement statement = labeledStatement.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23048
-	 */
-	public void test0369() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0369", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertProblemsSize(compilationUnit, 1, "The label test is never explicitly referenced"); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a labeled statement", node.getNodeType() == ASTNode.LABELED_STATEMENT); //$NON-NLS-1$
-		LabeledStatement labeledStatement = (LabeledStatement) node;
-		checkSourceRange(labeledStatement, "test:\\u003B", source); //$NON-NLS-1$
-		Statement statement = labeledStatement.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, "\\u003B", source); //$NON-NLS-1$
-	}
-			
-	/**
-	 * DoStatement ==> DoStatement
-	 */
-	public void test0370() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0370", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull("Expression should not be null", node); //$NON-NLS-1$
-		DoStatement doStatement = this.ast.newDoStatement();
-		doStatement.setBody(this.ast.newEmptyStatement());
-		doStatement.setExpression(this.ast.newBooleanLiteral(true));
-		assertTrue("Both AST trees should be identical", doStatement.subtreeMatch(new ASTMatcher(), node));		//$NON-NLS-1$
-		String expectedSource = "do ; while(true);";//$NON-NLS-1$
-		checkSourceRange(node, expectedSource, source);
-		DoStatement doStatement2 = (DoStatement) node;
-		Statement statement = doStatement2.getBody();
-		assertTrue("Not an empty statement", statement.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-		checkSourceRange(statement, ";", source); //$NON-NLS-1$
-	}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTest2.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTest2.java
deleted file mode 100644
index 69fd0b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTest2.java
+++ /dev/null
@@ -1,5418 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.io.IOException;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.dom.*;
-import org.eclipse.wst.jsdt.core.tests.model.CancelCounter;
-import org.eclipse.wst.jsdt.core.tests.model.Canceler;
-import org.eclipse.wst.jsdt.core.tests.model.ReconcilerTests;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-public class ASTConverterTest2 extends ConverterTestSetup {
-	
-	/** @deprecated using deprecated code */
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		this.ast = AST.newAST(AST.JLS2);
-	}
-
-	public ASTConverterTest2(String name) {
-		super(name);
-	}
-
-	static {
-//		TESTS_NAMES = new String[] {"test0578"};
-//		TESTS_NUMBERS =  new int[] { 606 };
-	}
-	public static Test suite() {
-		return buildModelTestSuite(ASTConverterTest2.class);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22560
-	 * @deprecated using deprecated code
-	 */
-	public void test0401() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0401", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not a return statement", statement.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) statement;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("there is no expression", expression); //$NON-NLS-1$
-		// call the default initialization
-		methodDeclaration.getReturnType();
-		ITypeBinding typeBinding = expression.resolveTypeBinding();
-		assertNotNull("No typebinding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23464
-	 */
-	public void test0402() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0402", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not a super method invocation", node.getNodeType() == ASTNode.SUPER_CONSTRUCTOR_INVOCATION); //$NON-NLS-1$
-		checkSourceRange(node, "new A().super();", source); //$NON-NLS-1$
-	}	
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
-	 */
-	public void test0403() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0403", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 1);
-		assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "test", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IFunctionBinding methodBinding2 = methodInvocation.resolveMethodBinding();
-		assertNotNull("No method binding2", methodBinding2);
-		assertTrue("Wrong binding", methodBinding == methodBinding2);
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
-	 */
-	public void test0404() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0404", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
-	 */
-	public void test0405() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0405", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 1);
-		assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
-	 */
-	public void test0406() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0406", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "foo", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "foo", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertNull("Got a declaring node in the unit", unit.findDeclaringNode(methodBinding));
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
-	 */
-	public void test0407() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0407", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		SimpleName simpleName = methodDeclaration.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("Not a method binding", binding.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding;
-		assertEquals("wrong name", "foo", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		methodDeclaration.setName(methodDeclaration.getAST().newSimpleName("foo2")); //$NON-NLS-1$
-		IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-		assertNotNull("No methodbinding2", methodBinding2); //$NON-NLS-1$
-		assertEquals("wrong name", "foo", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		simpleName = methodDeclaration.getName();
-		IBinding binding2 = simpleName.resolveBinding();
-		assertNull("Got a binding2", binding2); //$NON-NLS-1$
-		
-		ASTNode astNode = unit.findDeclaringNode(methodBinding);
-		assertNotNull("No declaring node", astNode);
-		assertEquals("wrong declaring node", methodDeclaration, astNode);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
-	 * @deprecated using deprecated code
-	 */
-	public void test0408() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0408", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType();
-		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("Not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) name;
-		name = qualifiedName.getQualifier();
-		assertTrue("Not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		qualifiedName = (QualifiedName) name;
-		name = qualifiedName.getQualifier();
-		assertTrue("Not a simple name", name.isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("Not a package binding", binding.getKind() == IBinding.PACKAGE); //$NON-NLS-1$
-		assertEquals("Wrong name", "java", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-		
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
-	 */
-	public void test0409() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0409", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(sourceUnit, true);
-			assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result; 
-			assertProblemsSize(compilationUnit, 0);
-			BindingsCollectorVisitor bindingsCollectorVisitor = new BindingsCollectorVisitor();
-			compilationUnit.accept(bindingsCollectorVisitor);
-			assertEquals("wrong number", 3, bindingsCollectorVisitor.getUnresolvedNodesSet().size()); //$NON-NLS-1$
-			Map bindingsMap = bindingsCollectorVisitor.getBindingsMap();
-			assertEquals("wrong number", 205, bindingsMap.size()); //$NON-NLS-1$
-			ASTNodesCollectorVisitor nodesCollector = new ASTNodesCollectorVisitor();
-			compilationUnit.accept(nodesCollector);
-			Set detachedNodes = nodesCollector.getDetachedAstNodes();
-			int counter = 0;
-			for (Iterator iterator = detachedNodes.iterator(); iterator.hasNext(); ) {
-				ASTNode detachedNode = (ASTNode) iterator.next();
-				counter++;
-				IBinding binding = (IBinding) bindingsMap.get(detachedNode);
-				assertNotNull(binding);
-				switch(detachedNode.getNodeType()) {
-					case ASTNode.ARRAY_ACCESS :
-					case ASTNode.ARRAY_CREATION :
-					case ASTNode.ARRAY_INITIALIZER :
-					case ASTNode.ASSIGNMENT :
-					case ASTNode.BOOLEAN_LITERAL :
-					case ASTNode.CHARACTER_LITERAL :
-					case ASTNode.CLASS_INSTANCE_CREATION :
-					case ASTNode.CONDITIONAL_EXPRESSION :
-					case ASTNode.FIELD_ACCESS :
-					case ASTNode.INFIX_EXPRESSION :
-					case ASTNode.INSTANCEOF_EXPRESSION :
-					case ASTNode.FUNCTION_INVOCATION :
-					case ASTNode.NULL_LITERAL :
-					case ASTNode.NUMBER_LITERAL :
-					case ASTNode.POSTFIX_EXPRESSION :
-					case ASTNode.PREFIX_EXPRESSION :
-					case ASTNode.THIS_EXPRESSION :
-					case ASTNode.TYPE_LITERAL :
-					case ASTNode.VARIABLE_DECLARATION_EXPRESSION :
-						ITypeBinding typeBinding = ((Expression) detachedNode).resolveTypeBinding();
-						if (!binding.equals(typeBinding)) {
-							System.out.println(detachedNode);
-						}
-						assertTrue("binding not equals", binding.equals(typeBinding)); //$NON-NLS-1$
-						break;						
-					case ASTNode.VARIABLE_DECLARATION_FRAGMENT :
-						assertTrue("binding not equals", binding.equals(((VariableDeclarationFragment) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;						
-					case ASTNode.ANONYMOUS_CLASS_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((AnonymousClassDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.QUALIFIED_NAME :
-					case ASTNode.SIMPLE_NAME :
-						IBinding newBinding = ((Name) detachedNode).resolveBinding();
-						assertTrue("binding not equals", binding.equals(newBinding)); //$NON-NLS-1$
-						break;
-					case ASTNode.ARRAY_TYPE :
-					case ASTNode.SIMPLE_TYPE :
-					case ASTNode.PRIMITIVE_TYPE :
-						assertTrue("binding not equals", binding.equals(((Type) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.CONSTRUCTOR_INVOCATION :
-						assertTrue("binding not equals", binding.equals(((ConstructorInvocation) detachedNode).resolveConstructorBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.IMPORT_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((ImportDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.FUNCTION_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((FunctionDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.PACKAGE_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((PackageDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.TYPE_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((TypeDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-				}
-			}
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-
-	/**
-	 * Test for message on jdt-core-dev
-	 */
-	public void test0410() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0410", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		Expression expression = ((ReturnStatement) node).getExpression();
-		assertTrue("Not an infix expression", expression.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression;
-		List extendedOperands = infixExpression.extendedOperands();
-		assertEquals("wrong size", 3, extendedOperands.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test for message on jdt-core-dev
-	 */
-	public void test0411() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0411", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		Expression expression = ((ReturnStatement) node).getExpression();
-		assertTrue("Not an infix expression", expression.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression;
-		List extendedOperands = infixExpression.extendedOperands();
-		assertEquals("wrong size", 0, extendedOperands.size()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23901
-	 */
-	public void test0412() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0412", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertNotNull("No declaring node", unit.findDeclaringNode(typeBinding)); //$NON-NLS-1$
-		Name name = typeDeclaration.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		ASTNode declaringNode = unit.findDeclaringNode(binding);
-		assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
-		assertEquals("Wrong node", typeDeclaration, declaringNode); //$NON-NLS-1$
-		typeBinding = name.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		declaringNode = unit.findDeclaringNode(typeBinding);
-		assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
-		assertEquals("Wrong node", typeDeclaration, declaringNode); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=20881
-	 */
-	public void test0413() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0413", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List throwsException = methodDeclaration.thrownExceptions();
-		assertEquals("wrong size", 2, throwsException.size()); //$NON-NLS-1$
-		Name name = (Name) throwsException.get(0);
-		IBinding binding = name.resolveBinding();
-		assertNull("Got a binding", binding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23734
-	 * @deprecated using deprecated code
-	 */
-	public void test0414() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0414", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType();
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		ASTNode declaringNode = unit.findDeclaringNode(typeBinding);
-		assertNull("Got a declaring node", declaringNode); //$NON-NLS-1$
-
-		node = getASTNode(unit, 0, 1);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration2 = (FunctionDeclaration) node;
-		Type type2 = methodDeclaration2.getReturnType();
-		ITypeBinding typeBinding2 = type2.resolveBinding();
-		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-		ASTNode declaringNode2 = unit.findDeclaringNode(typeBinding2);
-		assertNotNull("No declaring node", declaringNode2); //$NON-NLS-1$
-
-		IJavaScriptUnit sourceUnit2 = getCompilationUnit("Converter" , "src", "test0414", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		
-		result = runConversion(sourceUnit2, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit2 = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit2.getProblems().length); //$NON-NLS-1$
-		ASTNode declaringNode3 = unit2.findDeclaringNode(typeBinding);
-		assertNull("Got a declaring node", declaringNode3); //$NON-NLS-1$
-		
-		ASTNode declaringNode4 = unit2.findDeclaringNode(typeBinding.getKey());
-		assertNotNull("No declaring node", declaringNode4); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24268
-	 */
-	public void test0415() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0415", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a switch statement", node.getNodeType() == ASTNode.SWITCH_STATEMENT); //$NON-NLS-1$
-		SwitchStatement switchStatement = (SwitchStatement) node;
-		List statements = switchStatement.statements();
-		assertEquals("wrong size", statements.size(), 5); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(3);
-		assertTrue("not a switch case (default)", statement.getNodeType() == ASTNode.SWITCH_CASE); //$NON-NLS-1$
-		SwitchCase defaultCase = (SwitchCase) statement;
-		assertTrue("not a default case", defaultCase.isDefault());
-		checkSourceRange(defaultCase, "default:", source);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24324
-	 */
-	public void test0416() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0416", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", fragments.size(), 1);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression init = fragment.getInitializer();
-		assertTrue("not a qualified name", init.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) init;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("Wrong name", "CONST", simpleName.getIdentifier());
-		IBinding binding = simpleName.resolveBinding();
-		assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong modifier", variableBinding.getModifiers(), Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL);
-		ASTNode declaringNode = unit.findDeclaringNode(variableBinding);
-		assertNotNull("No declaring node", declaringNode);
-		assertTrue("not a variable declaration fragment", declaringNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT);
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) declaringNode;
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) variableDeclarationFragment.getParent();
-		assertEquals("Wrong modifier", fieldDeclaration.getModifiers(), Modifier.NONE);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24347
-	 */
-	public void test0417() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0417", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertTrue("not a simple type", type.getNodeType() == ASTNode.SIMPLE_TYPE); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("Not a qualified name", name.isQualifiedName());
-		QualifiedName qualifiedName = (QualifiedName) name;
-		Name qualifier = qualifiedName.getQualifier();
-		assertTrue("Not a simple name", qualifier.isSimpleName());
-		IBinding binding = qualifier.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24406
-	 */
-	public void test0418() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0418", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertTrue("not an expression statement ", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("not an method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Name name = methodInvocation.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0419() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0419", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a name", expression2.getNodeType(), ASTNode.SIMPLE_NAME);
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding = simpleName.resolveBinding();
-		assertNull(binding);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0420() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0420", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getRightOperand();
-		assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
-		checkSourceRange(expression2, "(2 + 3)", source);
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression3, "2 + 3", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0421() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0421", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "(1 + 2) + 3", source);
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
-		checkSourceRange(expression2, "(1 + 2)", source);
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression3, "1 + 2", source);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0422() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0422", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "( 1 + 2 ) + 3", source);
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
-		checkSourceRange(expression2, "( 1 + 2 )", source);
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression3, "1 + 2", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0423() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0423", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getRightOperand();
-		assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
-		checkSourceRange(expression2, "( 2 + 3 )", source);
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression3, "2 + 3", source);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0424() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0424", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		assertEquals("Wrong size", 1, infixExpression.extendedOperands().size());
-		Expression expression2 = (Expression) infixExpression.extendedOperands().get(0);
-		checkSourceRange(expression2, "( 2 + 3 )", source);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0425() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0425", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		assertEquals("Wrong size", 0, infixExpression.extendedOperands().size());
-		Expression expression2 = infixExpression.getRightOperand();
-		assertTrue("not an infix expression", expression2.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression2 = (InfixExpression) expression2;
-		Expression expression3 = infixExpression2.getRightOperand();
-		assertTrue("not a parenthesized expression", expression3.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION); //$NON-NLS-1$
-		checkSourceRange(expression3, "( 2 + 3 )", source);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0426() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0426", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertTrue("not a simple type", type.getNodeType() == ASTNode.SIMPLE_TYPE);
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertNotNull("No name", name);
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-	}	
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0427() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0427", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a super field access", expression2.getNodeType(), ASTNode.SUPER_FIELD_ACCESS);
-		SuperFieldAccess superFieldAccess = (SuperFieldAccess) expression2;
-		Name name = superFieldAccess.getName();
-		assertNotNull("No name", name);
-		IBinding binding = name.resolveBinding();
-		assertNull("Got a binding", binding);
-		assertNull("Got a binding", superFieldAccess.resolveFieldBinding());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0428() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0428", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a qualified name", expression2.getNodeType(), ASTNode.QUALIFIED_NAME);
-		QualifiedName name = (QualifiedName) expression2;
-		SimpleName simpleName = name.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-		IBinding binding2 = name.resolveBinding();
-		assertNotNull("No binding2", binding2);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0429() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0429", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a qualified name", expression2.getNodeType(), ASTNode.QUALIFIED_NAME);
-		QualifiedName name = (QualifiedName) expression2;
-		SimpleName simpleName = name.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-		IBinding binding2 = name.resolveBinding();
-		assertNotNull("No binding2", binding2);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24499
-	 */
-	public void test0430() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0430", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertTrue("Not a constructor invocation", node.getNodeType() == ASTNode.CONSTRUCTOR_INVOCATION);
-		ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
-		checkSourceRange(constructorInvocation, "this(coo2());", source);
-		List arguments = constructorInvocation.arguments();
-		assertEquals("Wrong size", 1, arguments.size());
-		Expression expression = (Expression) arguments.get(0);
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		SimpleName simpleName = methodInvocation.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24500
-	 */
-	public void test0431() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0431", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertTrue("Not a constructor invocation", node.getNodeType() == ASTNode.CONSTRUCTOR_INVOCATION);
-		ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
-		List arguments = constructorInvocation.arguments();
-		assertEquals("Wrong size", 1, arguments.size());
-		Expression expression = (Expression) arguments.get(0);
-		assertTrue("Not a simple name", expression.getNodeType() == ASTNode.SIMPLE_NAME);
-		SimpleName simpleName = (SimpleName) expression;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
-	 */
-	public void test0432() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0432", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType());
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
-	 */
-	public void test0433() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0433", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a super field access", ASTNode.SUPER_FIELD_ACCESS, expression2.getNodeType());
-		SuperFieldAccess superFieldAccess = (SuperFieldAccess) expression2;
-		SimpleName simpleName = superFieldAccess.getName();
-		assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Wrong binding", IBinding.VARIABLE, binding.getKind());
-		IVariableBinding variableBinding = superFieldAccess.resolveFieldBinding();
-		assertTrue("Different binding", binding == variableBinding);
-		ASTNode astNode = unit.findDeclaringNode(variableBinding);
-		assertTrue("Wrong type", astNode.getNodeType() == ASTNode.SINGLE_VARIABLE_DECLARATION || astNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT || astNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_EXPRESSION);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
-	 */
-	public void test0434() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0434", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression2.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) expression2;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
-	 */
-	public void test0435() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0435", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression2.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) expression2;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
-	 */
-	public void test0436() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0436", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 1, "The type A.CInner is not visible"); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, name.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) name;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("wrong name", "CInner", simpleName.getIdentifier());
-		IBinding binding2 = simpleName.resolveBinding();
-		assertNotNull("No binding", binding2);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
-	 */
-	public void test0437() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0437", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 1, "The type CInner is not visible"); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24511
-	 */
-	public void test0438() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0438", "D.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		List imports = unit.imports();
-		assertEquals("Wrong size", 1, imports.size()); //$NON-NLS-1$<
-		ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
-		IBinding binding = importDeclaration.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
-	 */
-	public void test0439() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0439", "E.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
-	 */
-	public void test0440() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0440", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		// 2 * 3 + "" + (true)
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "2 * 3 + \"\" + (true)", source);
-		Expression leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "2 * 3 + \"\"", source);
-		checkSourceRange(infixExpression.getRightOperand(), "(true)", source);
-		assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.PLUS);
-		assertEquals("wrong type", ASTNode.INFIX_EXPRESSION, leftOperand.getNodeType());
-		infixExpression = (InfixExpression) leftOperand;
-		checkSourceRange(infixExpression, "2 * 3 + \"\"", source);
-		leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "2 * 3", source);
-		checkSourceRange(infixExpression.getRightOperand(), "\"\"", source);
-		assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.PLUS);
-		assertEquals("wrong type", ASTNode.INFIX_EXPRESSION, leftOperand.getNodeType());
-		infixExpression = (InfixExpression) leftOperand;
-		checkSourceRange(infixExpression, "2 * 3", source);
-		leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "2", source);
-		checkSourceRange(infixExpression.getRightOperand(), "3", source);
-		assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.TIMES);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
-	 */
-	public void test0441() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0441", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "(2 + 2) * 3 * 1", source);
-		Expression leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "(2 + 2)", source);
-		checkSourceRange(infixExpression.getRightOperand(), "3", source);
-		List extendedOperands = infixExpression.extendedOperands();
-		assertEquals("wrong size", 1, extendedOperands.size());
-		checkSourceRange((Expression) extendedOperands.get(0), "1", source);
-		assertEquals("wrong operator", InfixExpression.Operator.TIMES, infixExpression.getOperator());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
-	 */
-	public void test0442() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0442", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "2 + (2 * 3) + 1", source);
-		Expression leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "2", source);
-		Expression rightOperand = infixExpression.getRightOperand();
-		checkSourceRange(rightOperand, "(2 * 3)", source);
-		assertEquals("wrong type", ASTNode.PARENTHESIZED_EXPRESSION, rightOperand.getNodeType());
-		List extendedOperands = infixExpression.extendedOperands();
-		assertEquals("wrong size", 1, extendedOperands.size());
-		checkSourceRange((Expression) extendedOperands.get(0), "1", source);
-		assertEquals("wrong operator", InfixExpression.Operator.PLUS, infixExpression.getOperator());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24623
-	 */
-	public void test0443() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0443", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertNotNull("No body", methodDeclaration.getBody());
-		assertNotNull("No binding", methodDeclaration.resolveBinding());
-		assertTrue("Not an abstract method", Modifier.isAbstract(methodDeclaration.getModifiers()));
-		assertTrue("Not malformed", isMalformed(methodDeclaration)); 
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24623
-	 */
-	public void test0444() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0444", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0);
-		assertEquals("Wrong type", ASTNode.TYPE_DECLARATION, node.getNodeType());
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 2, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration)bodyDeclarations.get(0);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		assertEquals("Wrong name", "foo", methodDeclaration.getName().getIdentifier());
-		assertNull("Got a binding", methodDeclaration.resolveBinding());
-		bodyDeclaration = (BodyDeclaration)bodyDeclarations.get(1);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
-		assertEquals("Wrong name", "foo", ((FunctionDeclaration) bodyDeclaration).getName().getIdentifier());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24773
-	 */
-	public void test0445() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0445", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25018
-	 */
-	public void test0446() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0446", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25124
-	 */
-	public void test0447() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0447", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 3, unit.getProblems().length); //$NON-NLS-1$<
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25330
-	 * @deprecated using deprecated code
-	 */
-	public void test0448() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0448", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Not a method declaration", node.getNodeType(), ASTNode.FUNCTION_DECLARATION);
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-		ITypeBinding returnTypeBinding = methodDeclaration.getReturnType().resolveBinding();
-		assertNotNull("No return type binding", returnTypeBinding);
-		Block block = methodDeclaration.getBody();
-		assertNotNull("No method body", block);
-		assertEquals("wrong size", 0, block.statements().size()); 
-	}
-	
-	/**
-	 * Check that the implicit super constructor call is not there
-	 */
-	public void test0449() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0449", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Not a method declaration", node.getNodeType(), ASTNode.FUNCTION_DECLARATION);
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-		Block block = methodDeclaration.getBody();
-		assertNotNull("No method body", block);
-		assertEquals("wrong size", 1, block.statements().size()); 
-	}	
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=26452
-	 */
-	public void test0450() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0450", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0);
-		assertEquals("Not a type declaration", node.getNodeType(), ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding);
-		assertTrue("not a class", typeBinding.isClass());
-		assertTrue("not a toplevel type", typeBinding.isTopLevel());
-		assertTrue("a local type", !typeBinding.isLocal());
-		assertTrue("an anonymous type", !typeBinding.isAnonymous());
-		assertTrue("a member type", !typeBinding.isMember());
-		assertTrue("a nested type", !typeBinding.isNested());
-		node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		Expression expression = ((ExpressionStatement) node).getExpression();
-		assertEquals("Not a class instance creation", expression.getNodeType(), ASTNode.CLASS_INSTANCE_CREATION);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding);
-		assertTrue("not a class", typeBinding.isClass());
-		assertTrue("a toplevel type", !typeBinding.isTopLevel());
-		assertTrue("not a local type", typeBinding.isLocal());
-		assertTrue("not an anonymous type", typeBinding.isAnonymous());
-		assertTrue("a member type", !typeBinding.isMember());
-		assertTrue("not a nested type", typeBinding.isNested());
-		ASTNode astNode = unit.findDeclaringNode(typeBinding);
-		assertEquals("Wrong type", ASTNode.ANONYMOUS_CLASS_DECLARATION, astNode.getNodeType());
-		assertNotNull("Didn't get a key", typeBinding.getKey());
-		astNode = unit.findDeclaringNode(typeBinding.getKey());
-		assertNotNull("Didn't get a declaring node", astNode);
-		
-		ITypeBinding typeBinding3 = classInstanceCreation.resolveTypeBinding();
-		assertEquals("wrong binding", typeBinding, typeBinding3);
-		
-		List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 2, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("not a type declaration", bodyDeclaration.getNodeType() == ASTNode.TYPE_DECLARATION);
-		typeDeclaration = (TypeDeclaration) bodyDeclaration;
-		
-		bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(1);
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		assertNotNull("No body", block);
-		List statements = block.statements();
-		assertEquals("wrong size", 2, statements.size());
-		Statement statement = (Statement) statements.get(1);
-		assertEquals("Not a variable declaration statement", statement.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement;
-		Type type = variableDeclarationStatement.getType();
-		assertNotNull("No type", type);
-		
-		ITypeBinding typeBinding2 = type.resolveBinding();
-		typeBinding = typeDeclaration.resolveBinding();
-		assertTrue("not equals", typeBinding == typeBinding2);
-		assertNotNull("No type binding", typeBinding);
-		assertTrue("not a class", typeBinding.isClass());
-		assertTrue("a toplevel type", !typeBinding.isTopLevel());
-		assertTrue("an anonymous type", !typeBinding.isAnonymous());
-		assertTrue("not a member type", typeBinding.isMember());
-		assertTrue("not a nested type", typeBinding.isNested());		
-		assertTrue("a local type", !typeBinding.isLocal());
-		
-		bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size());
-		bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("not a type declaration", bodyDeclaration.getNodeType() == ASTNode.TYPE_DECLARATION);
-		typeDeclaration = (TypeDeclaration) bodyDeclaration;
-		typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding);
-		assertTrue("not a class", typeBinding.isClass());
-		assertTrue("a toplevel type", !typeBinding.isTopLevel());
-		assertTrue("an anonymous type", !typeBinding.isAnonymous());
-		assertTrue("not a member type", typeBinding.isMember());
-		assertTrue("not a nested type", typeBinding.isNested());		
-		assertTrue("a local type", !typeBinding.isLocal());
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24916
-	 * @deprecated using deprecated code
-	 */
-	public void test0451() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0451", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType();
-		checkSourceRange(type, "int", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=27204
-	 */
-	public void test0452() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "NO_WORKING.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		SimpleName name = methodDeclaration.getName();
-		assertEquals("wrong line number", 3, compilationUnit.getLineNumber(name.getStartPosition()));
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=27173
-	 */
-	public void test0453() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0453", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0,0);
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("not a super method invocation", expression.getNodeType() == ASTNode.SUPER_METHOD_INVOCATION); //$NON-NLS-1$
-		SuperMethodInvocation methodInvocation = (SuperMethodInvocation) expression;
-		IFunctionBinding methodBinding = methodInvocation.resolveMethodBinding();
-		assertNotNull("No method binding", methodBinding);
-		assertEquals("Wrong binding", "toString", methodBinding.getName());
-	}	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28296
-	 */
-	public void test0454() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0454", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0,1);
-		assertNotNull("No node", node);
-		assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		checkSourceRange(expression, "(int) (3.14f * a)", source);
-	}
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0455() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0455", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int i = 0; i < 10; i++)  // for 1\n" +
-			"	        for (int j = 0; j < 10; j++)  // for 2\n" +
-			"	            if (true) { }";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "for (int j = 0; j < 10; j++)  // for 2\n" +
-			"	            if (true) { }";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement2 = (ForStatement) body;
-		body = forStatement2.getBody();
-		expectedSource = "if (true) { }";
-		checkSourceRange(body, expectedSource, source);		
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0456() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0456", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int x= 10; x < 20; x++)\n" +
-			"			main();";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "main();";
-		checkSourceRange(body, expectedSource, source);		
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0457() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0457", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
-			"			for (int z= 10; z < 10; z++)\n" +
-			"				foo();";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "for (int z= 10; z < 10; z++)\n" +
-			"				foo();";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement2 = (ForStatement) body;
-		body = forStatement2.getBody();
-		expectedSource = "foo();";
-		checkSourceRange(body, expectedSource, source);		
-	}	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0458() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0458", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
-			"			for (int z= 10; z < 10; z++)\n" +
-			"				;";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "for (int z= 10; z < 10; z++)\n" +
-			"				;";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement2 = (ForStatement) body;
-		body = forStatement2.getBody();
-		expectedSource = ";";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not an empty statement", body.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0459() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0459", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
-			"			for (int z= 10; z < 10; z++)\n" +
-			"				{    }";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "for (int z= 10; z < 10; z++)\n" +
-			"				{    }";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement2 = (ForStatement) body;
-		body = forStatement2.getBody();
-		expectedSource = "{    }";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a block", body.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28869
-	 */
-	public void test0460() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0460", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("Malformed", !isMalformed(node));
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28824
-	 */
-	public void test0461() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0461", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		char[] source = sourceUnit.getSource().toCharArray();
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("Malformed", !isMalformed(node));
-		assertTrue("not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("not an assignment", expression.getNodeType() == ASTNode.ASSIGNMENT); //$NON-NLS-1$
-		Assignment assignment = (Assignment) expression;
-		checkSourceRange(assignment, "z= foo().y.toList()", source);
-		Expression expression2 = assignment.getRightHandSide();
-		checkSourceRange(expression2, "foo().y.toList()", source);
-		assertTrue("not a method invocation", expression2.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		checkSourceRange(expression3, "foo().y", source);
-		checkSourceRange(methodInvocation.getName(), "toList", source);
-		assertTrue("not a field access", expression3.getNodeType() == ASTNode.FIELD_ACCESS);
-		FieldAccess fieldAccess = (FieldAccess) expression3;
-		checkSourceRange(fieldAccess.getName(), "y", source);
-		Expression expression4 = fieldAccess.getExpression();
-		checkSourceRange(expression4, "foo()", source);
-		assertTrue("not a method invocation", expression4.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) expression4;
-		checkSourceRange(methodInvocation2.getName(), "foo", source);
-		assertNull("no null", methodInvocation2.getExpression());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=32338
-	 */
-	public void test0462() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test462.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("Wrong name", "Test462", typeDeclaration.getName().getIdentifier());
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No binding", typeBinding);
-		assertEquals("Wrong name", "Test462", typeBinding.getQualifiedName());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33450
-	 */
-	public void test0463() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0463", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertTrue("not a string literal", expression.getNodeType() == ASTNode.STRING_LITERAL); //$NON-NLS-1$
-		StringLiteral stringLiteral = (StringLiteral) expression;
-		checkSourceRange(stringLiteral, "\"\\012\\015\\u0061\"", source);
-		assertEquals("wrong value", "\012\015a", stringLiteral.getLiteralValue());
-		assertEquals("wrong value", "\"\\012\\015\\u0061\"", stringLiteral.getEscapedValue());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33039
-	 */
-	public void test0464() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0464", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertTrue("not a null literal", expression.getNodeType() == ASTNode.NULL_LITERAL); //$NON-NLS-1$
-		NullLiteral nullLiteral = (NullLiteral) expression;
-		ITypeBinding typeBinding = nullLiteral.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding);
-		assertFalse("A primitive type", typeBinding.isPrimitive());
-		assertTrue("Null type", typeBinding.isNullType());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33831
-	 */
-	public void test0465() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0465", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertTrue("not a field access", expression.getNodeType() == ASTNode.FIELD_ACCESS); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) expression;
-		Name name = fieldAccess.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "i", variableBinding.getName());
-		assertEquals("Wrong type", "int", variableBinding.getType().getName());
-		IVariableBinding variableBinding2 = fieldAccess.resolveFieldBinding();
-		assertTrue("different binding", variableBinding == variableBinding2);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33949
-	 */
-	public void test0466() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0466", "Assert.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(sourceUnit, true);
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-			char[] source = sourceUnit.getSource().toCharArray();
-			ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-			checkSourceRange(node, "assert ref != null : message;", source);
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33949
-	 */
-	public void test0467() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0467", "Assert.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(sourceUnit, true);
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-			char[] source = sourceUnit.getSource().toCharArray();
-			ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-			checkSourceRange(node, "assert ref != null : message\\u003B", source);
-			
-			node = getASTNode(compilationUnit, 0, 0, 1);
-			checkSourceRange(node, "assert ref != null\\u003B", source);
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=36772
-	 */
-	public void test0468() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0468", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertTrue("not a field access", expression.getNodeType() == ASTNode.FIELD_ACCESS); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) expression;
-		Name name = fieldAccess.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "i", variableBinding.getName());
-		assertEquals("Wrong type", "int", variableBinding.getType().getName());
-		IVariableBinding variableBinding2 = fieldAccess.resolveFieldBinding();
-		assertTrue("different binding", variableBinding == variableBinding2);
-		
-		node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("No node", node);
-		assertEquals("Wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		
-		ASTNode foundNode = compilationUnit.findDeclaringNode(variableBinding);
-		assertNotNull("No found node", foundNode);
-		assertEquals("wrong node", fragment, foundNode);
-	}		
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=36895
-	 */
-	public void test0469() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "codeManipulation", "bug.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 2, 0);
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		ASTNode parent = node.getParent();
-		assertNotNull(parent);
-		assertTrue("not a block", parent.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-	}		
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=37381
-	 */
-	public void test0470() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0470", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		List initializers = forStatement.initializers();
-		assertEquals("wrong size", 1, initializers.size());
-		Expression initializer = (Expression) initializers.get(0);
-		assertTrue("not a variable declaration expression", initializer.getNodeType() == ASTNode.VARIABLE_DECLARATION_EXPRESSION); //$NON-NLS-1$
-		VariableDeclarationExpression variableDeclarationExpression = (VariableDeclarationExpression) initializer;
-		List fragments = variableDeclarationExpression.fragments();
-		assertEquals("wrong size", 2, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		checkSourceRange(fragment, "i= 0", source);
-		fragment = (VariableDeclarationFragment) fragments.get(1);
-		checkSourceRange(fragment, "j= goo(3)", source);
-		checkSourceRange(variableDeclarationExpression, "int i= 0, j= goo(3)", source);
-	}		
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38447
-	 */
-	public void test0471() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0471", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Is a constructor", !methodDeclaration.isConstructor());
-		checkSourceRange(methodDeclaration, "private void foo(){", source);
-		node = getASTNode(compilationUnit, 0, 1);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Is a constructor", !methodDeclaration.isConstructor());
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38447
-	 */
-	public void test0472() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "junit.textui", "ResultPrinter.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 2);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38732
-	 */
-	public void test0473() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			newOptions.put(JavaScriptCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaScriptCore.ERROR);
-			JavaScriptCore.setOptions(newOptions);
-				
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0473", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(sourceUnit, true);
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-			assertEquals("No error", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
-			ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-			assertNotNull("No node", node);
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
-	 */
-	public void test0474() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0474", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertEquals("Not a while statement", node.getNodeType(), ASTNode.WHILE_STATEMENT);
-		WhileStatement whileStatement = (WhileStatement) node;
-		Statement statement = whileStatement.getBody();
-		assertEquals("Not a while statement", statement.getNodeType(), ASTNode.WHILE_STATEMENT);
-		WhileStatement whileStatement2 = (WhileStatement) statement;
-		String expectedSource = 
-			"while(b())\n" +
-			"				foo();";
-		checkSourceRange(whileStatement2, expectedSource, source);
-		Statement statement2 = whileStatement2.getBody();
-		checkSourceRange(statement2, "foo();", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
-	 */
-	public void test0475() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0475", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertEquals("Not an if statement", node.getNodeType(), ASTNode.IF_STATEMENT);
-		IfStatement statement = (IfStatement) node;
-		Statement statement2 = statement.getThenStatement();
-		assertEquals("Not an if statement", statement2.getNodeType(), ASTNode.IF_STATEMENT);
-		IfStatement statement3 = (IfStatement) statement2;
-		String expectedSource = 
-			"if(b())\n" +
-			"				foo();";
-		checkSourceRange(statement3, expectedSource, source);
-		Statement statement4 = statement3.getThenStatement();
-		checkSourceRange(statement4, "foo();", source);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
-	 */
-	public void test0476() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0476", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertEquals("Not a for statement", node.getNodeType(), ASTNode.FOR_STATEMENT);
-		ForStatement statement = (ForStatement) node;
-		Statement statement2 = statement.getBody();
-		assertEquals("Not a for statement", statement2.getNodeType(), ASTNode.FOR_STATEMENT);
-		ForStatement statement3 = (ForStatement) statement2;
-		String expectedSource = 
-			"for(;b();)\n" +
-			"				foo();";
-		checkSourceRange(statement3, expectedSource, source);
-		Statement statement4 = statement3.getBody();
-		checkSourceRange(statement4, "foo();", source);
-	}	
-
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39327
-	 */
-	public void test0477() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0477", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("No node", node);
-
-		checkSourceRange(node, "this(undef());", source);
-		assertEquals("Not a constructor invocation", node.getNodeType(), ASTNode.CONSTRUCTOR_INVOCATION);		
-		ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
-		List arguments = constructorInvocation.arguments();
-		assertEquals("Wrong size", 1, arguments.size());
-		IFunctionBinding binding = constructorInvocation.resolveConstructorBinding();
-		assertNotNull("No binding", binding);
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0478() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0478", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 2, types.length);
-		IType type = types[1];
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNotNull(methodBinding);
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 2, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(1);
-		assertNotNull(node2);
-		assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding2 = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0479() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0479", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 2, types.length);
-		IType type = types[1];
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 2, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(1);
-		assertNotNull(node2);
-		assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNull("No binding", binding); //$NON-NLS-1$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0480() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0480", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0481() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0481", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0482() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		IFunction[] methods = memberType.getFunctions();
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-		assertTrue(typeBinding.isAnonymous());
-		assertEquals("Wrong name", "", typeBinding.getName());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0483() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0483", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "A", methodDeclaration.getName().getIdentifier());
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-		IBinding binding = methodDeclaration.getName().resolveBinding();
-		assertNotNull(binding);
-		assertEquals("Wrong type", IBinding.METHOD, binding.getKind());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-		assertTrue(typeBinding.isAnonymous());
-		assertEquals("Wrong name", "", typeBinding.getName());
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0484() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		ISourceRange sourceRange = memberType.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0485() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		ISourceRange sourceRange = memberType.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0486() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0486", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 2, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0487() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0487", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 3, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 2, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		expression = fragment.getInitializer();
-		assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		Initializer initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0488() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0488", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IInitializer[] initializers = type.getInitializers();
-		assertEquals("wrong size", 2, initializers.length);
-		IInitializer init = initializers[1];
-		ISourceRange sourceRange = init.getSourceRange(); 
-		ASTNode result = runConversion(sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		expression = fragment.getInitializer();
-		assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		Initializer initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40804
-	 */
-	public void test0489() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0489", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertNull("Got a type binding", typeDeclaration.resolveBinding()); 
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40804
-	 */
-	public void test0490() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0490", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42647
-	 */
-	public void test0491() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0491", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(sourceUnit, true);
-			assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-			JavaScriptUnit unit = (JavaScriptUnit) result;
-			assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42647
-	 */
-	public void test0492() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0492", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(sourceUnit, true);
-			assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-			JavaScriptUnit unit = (JavaScriptUnit) result;
-			assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0493() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0493", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[][]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0494() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0494", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[][][]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[][]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0495() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0495", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[][]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		assertEquals("wrong extra dimension", 1, fragment.getExtraDimensions());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0496() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0496", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[][][][]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[][][]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[][]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0497() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0497", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-	}
-
-	/**
-	 */
-	public void test0498() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0498", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=45199
-	 */
-	public void test0499() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0499", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 1);
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		Expression expression = ((ExpressionStatement) node).getExpression();
-		assertTrue("Not an assignment", expression.getNodeType() == ASTNode.ASSIGNMENT); //$NON-NLS-1$
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getRightHandSide();
-		assertTrue("Not an infix expression", expression2.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression2;
-		Expression expression3 = infixExpression.getLeftOperand();
-		assertTrue("Not a simple name", expression3.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		ITypeBinding binding = expression3.resolveTypeBinding();
-		assertNotNull("No binding", binding);
-		Expression expression4 = assignment.getLeftHandSide();
-		assertTrue("Not a simple name", expression4.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		ITypeBinding binding2 = expression4.resolveTypeBinding();
-		assertNotNull("No binding", binding2);
-		assertTrue("Should be the same", binding == binding2);
-	}
-	
-	/**
-	 * Test for bug 45436 fix.
-	 * When this bug happened, the first assertion was false (2 problems found).
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45436">bug 45436</a>
-	 * @throws JavaScriptModelException
-	 */
-	public void test0500() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0500", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IJavaScriptProject project = sourceUnit.getJavaScriptProject();
-		Map originalOptions = project.getOptions(false);
-		try {
-			project.setOption(JavaScriptCore.COMPILER_PB_INVALID_JAVADOC, JavaScriptCore.ERROR);
-			project.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_TAGS, JavaScriptCore.ERROR);
-			project.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS, JavaScriptCore.ERROR);
-			JavaScriptUnit result = (JavaScriptUnit)runConversion(sourceUnit, true);
-			IProblem[] problems= result.getProblems();
-			assertTrue(problems.length == 1);
-			assertEquals("Invalid warning", "Javadoc: Missing tag for parameter a", problems[0].getMessage());
-		} finally {
-			project.setOptions(originalOptions);
-		}
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46012
-	 */
-	public void test0501() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0501", "JavaEditor.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull(result);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502a() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// 'i' in initializer
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement)getASTNode(unit, 0, 0, 0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;#0#i", localBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502b() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// 'j' in 'then' block in initializer
-		IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 0, 1);
-		Block block = (Block)ifStatement.getThenStatement();
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;#0#0#j", localBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502c() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// 'i' in 'foo()'
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement)getASTNode(unit, 0, 1, 0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;.foo()V#i", localBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502d() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// 'j' in 'then' block in 'foo()'
-		IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 1);
-		Block block = (Block)ifStatement.getThenStatement();
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;.foo()V#0#j", localBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502e() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// 'j' in 'else' block in 'foo()'
-		IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 1);
-		Block block = (Block)ifStatement.getElseStatement();
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;.foo()V#1#j", localBinding.getKey()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502f() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// first 'new Object(){...}' in 'foo()'
-		ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 2);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$182;", typeBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 * @deprecated using deprecated code
-	 */
-	public void test0502g() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// 'B' in 'foo()'
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
-		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$206$B;", typeBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502h() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// second 'new Object(){...}' in 'foo()'
-		ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 4);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$255;", typeBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 * @deprecated using deprecated code
-	 */
-	public void test0502i() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// 'field' in 'B' in 'foo()'
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
-		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-		FieldDeclaration fieldDeclaration = typeDeclaration.getFields()[0];
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fieldDeclaration.fragments().get(0);
-		IVariableBinding fieldBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$206$B;.field)I", fieldBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 * @deprecated using deprecated code
-	 */
-	public void test0502j() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// 'bar()' in 'B' in 'foo()'
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
-		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-		FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$206$B;.bar()V", methodBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503a() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// top level type A
-		TypeDeclaration type = (TypeDeclaration)getASTNode(unit, 0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503b() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// member type B in A
-		TypeDeclaration type = (TypeDeclaration)getASTNode(unit, 0, 0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$B", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 * @deprecated using deprecated code
-	 */
-	public void test0503c() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// local type E in foo() in A
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 0);
-		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$1$E", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503d() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// anonymous type new Object() {...} in foo() in A
-		ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 1);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$2", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503e() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// type F in anonymous type new Object() {...} in foo() in A
-		ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 1);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		TypeDeclaration type = (TypeDeclaration) anonymousClassDeclaration.bodyDeclarations().get(0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$2$F", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 * @deprecated using deprecated code
-	 */
-	public void test0503f() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// local type C in bar() in B in A
-		FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) method.getBody().statements().get(0);
-		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$1$C", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503g() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// anonymous type new Object() {...} in bar() in B in A
-		FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
-		ExpressionStatement expressionStatement = (ExpressionStatement) method.getBody().statements().get(1);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$1", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503h() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// type D in anonymous type new Object() {...} in bar() in B in A
-		FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
-		ExpressionStatement expressionStatement = (ExpressionStatement) method.getBody().statements().get(1);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		TypeDeclaration type = (TypeDeclaration) anonymousClassDeclaration.bodyDeclarations().get(0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$1$D", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 * @deprecated using deprecated code
-	 */
-	public void test0503i() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(sourceUnit, true);
-		
-		// unreachable type G in foo() in A
-		IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 2);
-		Block block = (Block)ifStatement.getThenStatement();
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) block.statements().get(0);
-		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", null, typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=47396
-	 */
-	public void test0504() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0504", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0);
-		assertNotNull(node);
-		assertTrue("Not a constructor declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		assertTrue("A constructor", !declaration.isConstructor());
-		checkSourceRange(declaration, "public method(final int parameter);", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=47396
-	 */
-	public void test0505() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0505", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0);
-		assertNotNull(node);
-		assertTrue("Not a constructor declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		assertTrue("A constructor", !declaration.isConstructor());
-		checkSourceRange(declaration, "public method(final int parameter) {     }", source);
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0506() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0506", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertTrue("is default constructor", binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0507() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0507", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertTrue("is default constructor", binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0508() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0508", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertTrue("not a default constructor", !binding.isDefaultConstructor());
-		assertNotNull("Has no declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0509() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0509", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertTrue("not a default constructor", !binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0510() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0510", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertFalse("is default constructor", binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0511() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0511", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertFalse("is default constructor", binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=47326
-	 */
-	public void test0512() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0512", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", declaration.isConstructor());
-		checkSourceRange(declaration, "public A();", source);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=49429
-	 */
-	public void test0513() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0513", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48502
-	 */
-	public void test0514() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0514", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=49204
-	 */
-	public void test0515() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0515", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a if statement", node.getNodeType() == ASTNode.IF_STATEMENT);
-		IfStatement ifStatement = (IfStatement) node;
-		assertTrue("not an empty statement", ifStatement.getThenStatement().getNodeType() == ASTNode.EMPTY_STATEMENT);
-		checkSourceRange(ifStatement.getThenStatement(), ";", source);
-		Statement statement = ifStatement.getElseStatement();
-		assertTrue("not a if statement", statement.getNodeType() == ASTNode.IF_STATEMENT);
-		ifStatement = (IfStatement) statement;
-		assertTrue("not an empty statement", ifStatement.getThenStatement().getNodeType() == ASTNode.EMPTY_STATEMENT);
-		checkSourceRange(ifStatement.getThenStatement(), ";", source);
-		Statement statement2 = ifStatement.getElseStatement();
-		assertTrue("not an empty statement", statement2.getNodeType() == ASTNode.EMPTY_STATEMENT);
-		checkSourceRange(statement2, ";", source);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0516() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0516", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION);
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
-		ASTNode root = bodyDeclaration.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 3, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0517() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0517", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No comments", unit.getCommentList());
-		assertEquals("Wrong size", 3, unit.getCommentList().size());
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
-		FieldDeclaration declaration = (FieldDeclaration) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
-		ASTNode root = bodyDeclaration.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 2, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0518() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0518", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not an initializer", node.getNodeType() == ASTNode.INITIALIZER);
-		Initializer declaration = (Initializer) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
-		ASTNode root = bodyDeclaration.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 3, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0519() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0519", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No comments", unit.getCommentList());
-		assertEquals("Wrong size", 2, unit.getCommentList().size());
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		ASTNode statement = node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_STATEMENTS);
-		parser.setSource(source);
-		parser.setSourceRange(statement.getStartPosition(), statement.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a block", result2.getNodeType() == ASTNode.BLOCK);
-		Block block = (Block) result2;
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size());
-		Statement statement2 = (Statement) statements.get(0);
-		assertTrue(statement.subtreeMatch(new ASTMatcher(), statement2));
-		ASTNode root = statement2.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 1, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0520() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0520", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No comments", unit.getCommentList());
-		assertEquals("Wrong size", 2, unit.getCommentList().size());
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a block", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_EXPRESSION);
-		parser.setSource(source);
-		parser.setSourceRange(expression.getStartPosition(), expression.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a method invocation", result2.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		assertTrue(expression.subtreeMatch(new ASTMatcher(), result2));
-		ASTNode root = result2.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 1, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * Ensure an OperationCanceledException is correcly thrown when progress monitor is canceled
-	 * @deprecated using deprecated code
-	 */
-	public void test0521() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0521", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		
-		// count the number of time isCanceled() is called when converting this source unit
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		CancelCounter counter = new CancelCounter();
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setSource(sourceUnit);
-		parser.setResolveBindings(true);
-		parser.setWorkingCopyOwner(owner);
-		parser.createAST(counter);
-		
-		// throw an OperatonCanceledException at each point isCanceled() is called
-		for (int i = 0; i < counter.count; i++) {
-			boolean gotException = false;
-			try {
-				parser = ASTParser.newParser(AST.JLS2);
-				parser.setSource(sourceUnit);
-				parser.setResolveBindings(true);
-				parser.setWorkingCopyOwner(owner);
-				parser.createAST(new Canceler(i));
-			} catch (OperationCanceledException e) {
-				gotException = true;
-			}
-			assertTrue("Should get an OperationCanceledException (" + i + ")", gotException);
-		}
-		
-		// last should not throw an OperationCanceledException
-		parser = ASTParser.newParser(AST.JLS2);
-		parser.setSource(sourceUnit);
-		parser.setResolveBindings(true);
-		parser.setWorkingCopyOwner(owner);
-		parser.createAST(new Canceler(counter.count));
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0522() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0522", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNotNull(methodBinding);
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 2, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(1);
-		assertNotNull(node2);
-		assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding2 = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0523() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0523", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 2, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(1);
-		assertNotNull(node2);
-		assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNull("No binding", binding); //$NON-NLS-1$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0524() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0524", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0525() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0525", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0526() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0526", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		IFunction[] methods = memberType.getFunctions();
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-		assertTrue(typeBinding.isAnonymous());
-		assertEquals("Wrong name", "", typeBinding.getName());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0527() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0527", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "A", methodDeclaration.getName().getIdentifier());
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-		IBinding binding = methodDeclaration.getName().resolveBinding();
-		assertNotNull(binding);
-		assertEquals("Wrong type", IBinding.METHOD, binding.getKind());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-		assertTrue(typeBinding.isAnonymous());
-		assertEquals("Wrong name", "", typeBinding.getName());
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0528() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0528", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		ISourceRange sourceRange = memberType.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0529() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0529", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		ISourceRange sourceRange = memberType.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0530() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0530", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 3, methods.length);
-		IFunction method = methods[2];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 2, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0531() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0531", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 5, methods.length);
-		IFunction method = methods[3];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 2, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		expression = fragment.getInitializer();
-		assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		Initializer initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0532() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0488", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IInitializer[] initializers = type.getInitializers();
-		assertEquals("wrong size", 2, initializers.length);
-		IInitializer init = initializers[1];
-		ISourceRange sourceRange = init.getSourceRange(); 
-		int position = sourceRange.getOffset() + sourceRange.getLength() / 2;
-
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0532", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		type = classFile.getType();
-		initializers = type.getInitializers();
-		assertEquals("wrong size", 0, initializers.length);
-		ASTNode result = runConversion(classFile, position, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-	
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-	
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		expression = fragment.getInitializer();
-		assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-	
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		Initializer initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0533() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0533", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION);
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
-		assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
-	}	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0534() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0534", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
-		FieldDeclaration declaration = (FieldDeclaration) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
-		assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0535() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0535", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not an initializer", node.getNodeType() == ASTNode.INITIALIZER);
-		Initializer declaration = (Initializer) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
-		assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=47396
-	 */
-	public void test0536() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0536", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("No compilation unit", result);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
-	 */
-	public void test0537a() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("No compilation unit", result);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
-	 */
-	public void test0537b() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("No compilation unit", result);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
-	 */
-	public void test0537c() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "C.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertNotNull("No compilation unit", result);
-	}
-	/**
-	 * Ensures that an AST can be created during reconcile.
-	 * @deprecated using deprecated code
-	 */
-	public void test0538a() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  int i;\n" +
-				"}"
-			);
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
-			assertNotNull("No level 2 compilation unit", unit);
-			assertEquals("Compilation unit has wrong AST level (2)", AST.JLS2, unit.getAST().apiLevel());
-			// TODO improve test for AST.JLS3
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/*
-	 * Ensures that no AST is created during reconcile if not requested.
-	 */
-	public void test0538b() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  int i;\n" +
-				"}"
-			);
-			JavaScriptUnit unit = sourceUnit.reconcile(0, false, null, null);
-			assertNull("Unexpected compilation unit", unit);
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that no AST is created during reconcile if consistent.
-	 * @deprecated using deprecated code
-	 */
-	public void test0538c() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			sourceUnit.becomeWorkingCopy(null);
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
-			assertNull("Unexpected compilation unit", unit);
-			// TODO improve test for AST.JLS3
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that bindings are created during reconcile if the problem requestor is active.
-	 * @deprecated using deprecated code
-	 */
-	public void test0538d() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  Object field;\n" +
-				"}"
-			);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
-			ASTNode node = getASTNode(unit, 0, 0);
-			assertNotNull("No node", node);
-			assertTrue("Not original", isOriginal(node));
-			assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
-			FieldDeclaration declaration = (FieldDeclaration) node;
-			Type type = declaration.getType();
-			ITypeBinding typeBinding = type.resolveBinding();
-			assertNotNull("No type binding", typeBinding); 
-			assertEquals("Wrong name", "Object", typeBinding.getName());
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that bindings are created during reconcile if force problem detection is turned on.
-	 * @deprecated using deprecated code
-	 */
-	public void test0538e() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-			sourceUnit.becomeWorkingCopy(null);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
-			ASTNode node = getASTNode(unit, 0);
-			assertNotNull("No node", node);
-			assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION);
-			TypeDeclaration declaration = (TypeDeclaration) node;
-			ITypeBinding typeBinding = declaration.resolveBinding();
-			assertNotNull("No type binding", typeBinding); 
-			assertEquals("Wrong name", "A", typeBinding.getName());
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that bindings are created during reconcile if force problem detection is turned on.
-	 * Case of a unit containing an anonymous type.
-	 * (regression test for bug 55102 NPE when using ICU.reconcile(GET_AST_TRUE, ...))
-	 * @deprecated using deprecated code
-	 */
-	public void test0538f() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  void foo() {\n" +
-				"    new Object() {\n" +
-				"      void bar() {\n" +
-				"      }\n" +
-				"    };\n" +
-				"  }\n" +
-				"}"
-			);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
-			ASTNode node = getASTNode(unit, 0);
-			assertNotNull("No node", node);
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that bindings are created during reconcile if force problem detection is turned on.
-	 * Case of a unit containing an anonymous type.
-	 * (regression test for bug 55102 NPE when using ICU.reconcile(GET_AST_TRUE, ...))
-	 * @deprecated using deprecated code
-	 */
-	public void test0538g() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  void foo() {\n" +
-				"    new Object() {\n" +
-				"      void bar() {\n" +
-				"      }\n" +
-				"    };\n" +
-				"  }\n" +
-				"}"
-			);
-			sourceUnit.reconcile(IJavaScriptUnit.NO_AST, false/* don't force pb detection*/, null, null);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
-			ASTNode node = getASTNode(unit, 0);
-			assertNotNull("No node", node);
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that asking for well known type doesn't throw a NPE if the problem requestor is not active.
-	 * (regression test for bug 64750 NPE in Java AST Creation - editing some random file)
-	 * @deprecated using deprecated code
-	 */
-	public void test0538h() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor() {
-                public boolean isActive() {
-                    return false;
-                }
-			};
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  Object field;\n" +
-				"}"
-			);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
-			assertEquals("Unexpected well known type", null, unit.getAST().resolveWellKnownType("void"));
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=53477
-	 */
-	public void test0539() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0539", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertTrue("not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		checkSourceRange(classInstanceCreation, "new A(){}.new Inner(){/*x*/}", source);
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		Expression expression2 = classInstanceCreation.getExpression();
-		assertTrue("not a class instance creation", expression2.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION);
-		ClassInstanceCreation classInstanceCreation2 = (ClassInstanceCreation) expression2;
-		AnonymousClassDeclaration anonymousClassDeclaration2 = classInstanceCreation2.getAnonymousClassDeclaration();
-		assertNotNull("No anonymous class declaration", anonymousClassDeclaration2);
-		checkSourceRange(anonymousClassDeclaration2, "{}", source);
-		assertNotNull("No anonymous class declaration", anonymousClassDeclaration);
-		checkSourceRange(anonymousClassDeclaration, "{/*x*/}", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=54431
-	 */
-	public void test0540() {
-		char[] source = 
-				("package test0540;\n" +  //$NON-NLS-1$
-				"\n" +  //$NON-NLS-1$
-				"class Test {\n" +  //$NON-NLS-1$
-				"	public void foo(int arg) {\n" +//$NON-NLS-1$
-				"		assert true;\n" +//$NON-NLS-1$
-				"	}\n" +  //$NON-NLS-1$
-				"}").toCharArray(); //$NON-NLS-1$
-		IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
-		Map options = project.getOptions(true);
-		options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-		options.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_4);
-		options.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_4);
-		ASTNode result = runConversion(source, "Test.js", project, options, true); //$NON-NLS-1$
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("Problems found", 0, compilationUnit.getProblems().length);
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong package", "test0540", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Not an interface", typeBinding.isClass()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=56697
-	 */
-	public void test0541() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0541", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-		class Change14FieldAccessASTVisitor extends ASTVisitor {
-			int counter;
-			Change14FieldAccessASTVisitor() {
-				counter = 0;
-			}
-			public void endVisit(QualifiedName qualifiedName) {
-				IBinding i_binding = qualifiedName.getQualifier().resolveBinding();						
-				ITypeBinding type_binding = qualifiedName.getQualifier().resolveTypeBinding();
-				if (i_binding == null || type_binding == null) {
-					counter++;
-				}
-			}
-		}
-		Change14FieldAccessASTVisitor visitor = new Change14FieldAccessASTVisitor();
-		unit.accept(visitor);
-		assertEquals("Missing binding", 0, visitor.counter);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55004
-	 */
-	public void test0542() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0542", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "STRING_FIELD", variableBinding.getName());
-		Object constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", "Hello world!", constantValue);
-		Expression initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "\"Hello world!\"", source);
-
-		node = getASTNode(unit, 0, 1);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "BOOLEAN_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Boolean(true), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "true", source);
-
-		node = getASTNode(unit, 0, 2);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "BYTE_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Byte((byte)1), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "1", source);
-
-		node = getASTNode(unit, 0, 3);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "CHAR_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Character('{'), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "\'{\'", source);
-
-		node = getASTNode(unit, 0, 4);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "DOUBLE_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Double("3.1415"), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "3.1415", source);
-		
-		node = getASTNode(unit, 0, 5);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "FLOAT_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Float("3.14159f"), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "3.14159f", source);
-
-		node = getASTNode(unit, 0, 6);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "INT_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", Integer.valueOf("7fffffff", 16), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "Integer.MAX_VALUE", source);
-		
-		node = getASTNode(unit, 0, 7);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "LONG_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Long("34"), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "34L", source);
-		
-		node = getASTNode(unit, 0, 8);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "SHORT_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Short("130"), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "130", source);
-		
-		node = getASTNode(unit, 0, 9);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "int_field", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNull("Got a constant", constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "Integer.MAX_VALUE", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=58436
-	 */
-	public void test0543() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0543", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		unit.accept(new GetKeyVisitor());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51500
-	 */
-	public void test0544() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0544", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not an abstract method", (methodDeclaration.getModifiers() & Modifier.ABSTRACT) != 0);
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNotNull("No binding", methodBinding);
-		assertTrue("Not an abstract method binding", (methodBinding.getModifiers() & Modifier.ABSTRACT) != 0);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59843
-	 */
-	public void test0545() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0545", "First.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0545/First$Test;", typeBinding.getKey());
-		
-		sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Second.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		result = runConversion(sourceUnit, true);
-		unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		node = getASTNode(unit, 0, 0);
-		assertEquals("not a method declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		typeDeclaration = (TypeDeclaration) node;
-		typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0545/Second$Test;", typeBinding.getKey());
-		
-		sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Third.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		result = runConversion(sourceUnit, true);
-		unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		node = getASTNode(unit, 0, 0);
-		assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		typeDeclaration = (TypeDeclaration) node;
-		typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0545/Third$Test;", typeBinding.getKey());
-
-	
-		sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		result = runConversion(sourceUnit, true);
-		unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		node = getASTNode(unit, 0);
-		assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		typeDeclaration = (TypeDeclaration) node;
-		typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0545/Test;", typeBinding.getKey());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59848
-	 * @deprecated using deprecated code
-	 */
-	public void test0546() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0546", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		ITypeBinding typeBinding = variableBinding.getType();
-		assertTrue("An anonymous type binding", !typeBinding.isAnonymous());
-		Expression initializer = fragment.getInitializer();
-		assertEquals("not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, initializer.getNodeType()); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) initializer;
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding2 = anonymousClassDeclaration.resolveBinding();
-		assertTrue("Not an anonymous type binding", typeBinding2.isAnonymous());
-		ITypeBinding typeBinding3 = classInstanceCreation.resolveTypeBinding();
-		assertTrue("Not an anonymous type binding", typeBinding3.isAnonymous());
-		node = getASTNode(unit, 1, 0, 1);
-		assertEquals("not a expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
-		ExpressionStatement statement = (ExpressionStatement) node;
-		Expression expression = statement.getExpression();
-		assertEquals("not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType()); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertEquals("not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		ITypeBinding typeBinding4 = simpleName.resolveTypeBinding();
-		assertTrue("An anonymous type binding", !typeBinding4.isAnonymous());		
-		Name name = classInstanceCreation.getName();
-		IBinding binding = name.resolveBinding();
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind());
-		ITypeBinding typeBinding5 = (ITypeBinding) binding;
-		assertTrue("An anonymous type binding", !typeBinding5.isAnonymous());		
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60078
-	 * @deprecated using deprecated code
-	 */
-	public void test0547() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0547", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0547/A$74$Local;", typeBinding.getKey());
-		
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 3, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertEquals("not a type declaration statement", ASTNode.TYPE_DECLARATION, bodyDeclaration.getNodeType()); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration2 = (TypeDeclaration) bodyDeclaration;
-		
-		typeBinding = typeDeclaration2.resolveBinding();
-		assertEquals("Wrong key", "Ltest0547/A$100$LocalMember;", typeBinding.getKey());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60581
-	 */
-	public void test0548() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0548", "PaletteStackEditPart.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48502
-	 */
-	public void test0549() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0549", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48502
-	 */
-	public void test0550() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0550", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, false);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60848
-	 */
-	public void test0551() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0551", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, false);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 1, problems.length); //$NON-NLS-1$
-		IProblem problem = problems[0];
-		assertEquals("wrong end position", source.length - 1, problem.getSourceEnd());
-	}
-	
-	public void test0552() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0552", "Test.js");
-		char[] source = sourceUnit.getSource().toCharArray();
-		JavaScriptUnit result = (JavaScriptUnit) runConversion(sourceUnit, true);
-		assertEquals("Got errors", 0, result.getProblems().length);
-		TypeDeclaration declaration = (TypeDeclaration) result.types().get(0);
-		Block body = declaration.getMethods()[0].getBody();
-		ExpressionStatement expr = (ExpressionStatement) body.statements().get(0);
-		FunctionInvocation invocation = (FunctionInvocation) expr.getExpression();
-		InfixExpression node = (InfixExpression) invocation.arguments().get(0);
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
-		checkSourceRange(node, "\"a\" + \"a\" + \"a\"", source);
-		List extendedOperands = node.extendedOperands();
-		assertEquals("Wrong size", 1, extendedOperands.size());
-		Expression leftOperand = node.getLeftOperand();
-		checkSourceRange(leftOperand, "\"a\"", source);
-		typeBinding = leftOperand.resolveTypeBinding();
-		assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
-		Expression rightOperand = node.getRightOperand();
-		checkSourceRange(rightOperand, "\"a\"", source);
-		typeBinding = rightOperand.resolveTypeBinding();
-		assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
-		Expression expression = (Expression) extendedOperands.get(0);
-		checkSourceRange(expression, "\"a\"", source);
-		typeBinding = expression.resolveTypeBinding();
-		assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
-	 */
-	public void test0553() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0553", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		Object constantValue = variableBinding.getConstantValue();
-		assertNull("Got a constant value", constantValue);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
-	 */
-	public void test0554() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0554", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		checkSourceRange(expression2, "A", source);
-		ITypeBinding typeBinding = expression2.resolveTypeBinding();
-		assertEquals("wrong type", "test0554.A", typeBinding.getQualifiedName());
-		IVariableBinding[] fields = typeBinding.getDeclaredFields();
-		assertEquals("Wrong size", 1, fields.length);
-		IVariableBinding variableBinding = fields[0];
-		Object constantValue = variableBinding.getConstantValue();
-		assertNotNull("Missing constant", constantValue);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
-	 */
-	public void test0555() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0555", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) expression;
-		Name name = qualifiedName.getQualifier();
-		checkSourceRange(name, "A", source);
-		ITypeBinding typeBinding = name.resolveTypeBinding();
-		assertEquals("wrong type", "test0555.A", typeBinding.getQualifiedName());
-		IVariableBinding[] fields = typeBinding.getDeclaredFields();
-		assertEquals("Wrong size", 1, fields.length);
-		IVariableBinding variableBinding = fields[0];
-		Object constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant value", constantValue);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=62463
-	 */
-	public void test0556() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0556", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		checkSourceRange(expression2, "(aa.bar())", source);
-		SimpleName simpleName = methodInvocation.getName();
-		checkSourceRange(simpleName, "size", source);
-		checkSourceRange(expression, "(aa.bar()).size()", source);
-		checkSourceRange(expressionStatement, "(aa.bar()).size();", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=62463
-	 */
-	public void test0557() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0557", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		checkSourceRange(expression2, "(aa.bar())", source);
-		SimpleName simpleName = methodInvocation.getName();
-		checkSourceRange(simpleName, "get", source);
-		checkSourceRange(expression, "(aa.bar()).get(0)", source);
-		checkSourceRange(expressionStatement, "(aa.bar()).get(0);", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65090
-	 * @deprecated using deprecated code
-	 */
-	public void test0558() {
-		String src = "\tSystem.out.println(\"Hello\");\n\tSystem.out.println(\"World\");\n";
-		char[] source = src.toCharArray();
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind (ASTParser.K_STATEMENTS);
-		parser.setSource (source);
-		ASTNode result = parser.createAST (null);
-		assertNotNull("no result", result);
-		assertEquals("Wrong type", ASTNode.BLOCK, result.getNodeType());
-		Block block = (Block) result;
-		List statements = block.statements();
-		assertNotNull("No statements", statements);
-		assertEquals("Wrong size", 2, statements.size());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0559() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0559", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
-		checkSourceRange(expression4, "\" \"", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0560() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0560", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
-		checkSourceRange(expression4, "\" \"", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0561() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0561", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
-		checkSourceRange(expression4, "\" \"", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0562() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0562", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
-		checkSourceRange(expression4, "\" \"", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0563() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0563", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression4, "new String()", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0564() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0564", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression4, "new String()", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0565() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0565", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression4, "(/**/ String /**/) new String()", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=69349
-	 */
-	public void test0566() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0566", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		assertEquals("Wrong character", '}', source[node.getStartPosition() + node.getLength() - 1]);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=69349
-	 */
-	public void test0567() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0567", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		assertEquals("Wrong character", '}', source[node.getStartPosition() + node.getLength() - 1]);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=74369
-	 * @deprecated using deprecated code
-	 */
-	public void test0569() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0569", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 1);
-		assertEquals("not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-		TypeDeclaration typeDeclaration = typeDeclarationStatement.getTypeDeclaration();
-		assertEquals("wrong name", "Local", typeDeclaration.getName().getIdentifier());
-		assertNull("Got a javadoc", typeDeclaration.getJavadoc());
-		node = getASTNode(unit, 0);
-		assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "A", typeDeclaration.getName().getIdentifier());
-		assertNotNull("No javadoc", typeDeclaration.getJavadoc());
-		node = getASTNode(unit, 0, 0);
-		assertEquals("not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "method", methodDeclaration.getName().getIdentifier());
-		assertNotNull("No javadoc", methodDeclaration.getJavadoc());
-	}
-	
-	/*
-	 * Ensures that the type binding from an import and the type binding from a type ref are equals
-	 * when the AST is computed using IJavaScriptUnit#reconcile(...)
-	 * (regression test for bug 83210 Unidentical ITypeBindings for same type from same AST from reconcile)
-	 */
-	public void test0570() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true);
-			JavaScriptUnit unit = (JavaScriptUnit) buildAST(
-				"import java.util.List;\n" +
-				"public class X{\n" +
-				"  List field;\n" +
-				"}",
-				workingCopy
-			);
-			ImportDeclaration importDeclaration = (ImportDeclaration) unit.imports().iterator().next();
-			TypeDeclaration typeDeclaration = (TypeDeclaration) unit.types().iterator().next();
-			FieldDeclaration fieldDeclaration = typeDeclaration.getFields()[0];
-			Type type = fieldDeclaration.getType();
-			IBinding importBinding = importDeclaration.resolveBinding();
-			IBinding typeBinding = type.resolveBinding();
-			assertEquals(importBinding,typeBinding);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * Ensures that the bindings for a member type in a .class file can be created.
-	 */
-	public void test0571() throws CoreException, IOException {
-		try {
-			IJavaScriptProject p = createJavaProject("P", new String[] {""}, new String[] {"CONVERTER_JCL_LIB"});
-			String source =
-				"public class X {\n" +
-				"  public class Y {\n" +
-				"  }\n" +
-				"}";
-			addLibrary(p, "test0571.jar", "test0571.zip", new String[] {"X.js", source	}, "1.4");
-			IClassFile classFile = getClassFile("P", "/P/test0571.jar", "", "X$Y.class");
-			JavaScriptUnit unit = (JavaScriptUnit) runConversion(AST.JLS3, classFile, 0, true);
-			IProblem[] problems = unit.getProblems();
-			StringBuffer buffer = new StringBuffer();
-			for (int i = 0, length = problems.length; i < length; i++)
-				Util.appendProblem(buffer, problems[i], source.toCharArray(), i);
-			assertEquals("Unexpected problems", "", buffer.toString());
-		} finally {
-			deleteProject("P");
-		}
-	}
-	
-	/*
-	 * Ensures that the method bindings of an anonymous type are correct.
-	 */
-	public void test0572() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			AnonymousClassDeclaration type = (AnonymousClassDeclaration) buildAST(
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    new X() /*start*/{\n" +
-				"      void bar() {}\n" +
-				"    }/*end*/;\n" +
-				"  }\n" +
-				"}",
-				workingCopy);
-			ITypeBinding typeBinding = type.resolveBinding();
-			assertBindingsEqual(
-				"LX$40;.(LX;)V\n" + 
-				"LX$40;.bar()V",
-				typeBinding.getDeclaredMethods());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-
-	/*
-	 * Ensures that the Java element of a compilation is correct.
-	 */
-	public void test0573() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			JavaScriptUnit cu = (JavaScriptUnit) buildAST(
-				"public class X {\n" +
-				"}",
-				workingCopy);
-			assertElementEquals("Unexpected Java element", "[Working copy] X.java [in <default> [in src [in Converter]]]", cu.getJavaElement());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/*
-	 * Ensures that strings are not optimized when creating the AST through a reconcile.
-	 * (regression test for bug 82830 AST: String concatenation represented as single node)
-	 */
-	public void test0574() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode string = buildAST(
-				"public class X {\n" +
-				"  String s = /*start*/\"a\" + \"b\"/*end*/;\n" +
-				"}",
-				workingCopy);
-			assertEquals("Unexpected node type", ASTNode.INFIX_EXPRESSION, string.getNodeType());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * Ensures that 2 different method bindings with the same return type are not "isEqualTo(...)".
-	 * (regression test for bug 99978 MalformedTreeException on Inline Method)
-	 */
-	public void test0575() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-    		workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-	    	String contents =
-				"public class X {\n" + 
-				"	/*start1*/String foo(String o) {return null;}/*end1*/\n" + 
-				"	/*start2*/String foo(Object o) {return null;}/*end2*/\n" + 
-				"}";
-		   	IBinding[] firstBatch = resolveBindings(contents, workingCopy);
-		   	IBinding[] secondBatch = resolveBindings(contents, workingCopy);
-		   	assertTrue("2 different method type bindings should not be equals", !firstBatch[0].isEqualTo(secondBatch[1]));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * Ensures that the binding key of a raw member type is correct.
-	 * (regression test for bug 100549 Strange binding keys from AST on class file of nested type)
-	 */
-	public void test0576() throws CoreException, IOException {
-		try {
-			IJavaScriptProject project = createJavaProject("P1", new String[] {""}, new String[] {"CONVERTER_JCL15_LIB"}, "", "1.5");
-			addLibrary(project, "lib.jar", "src.zip", new String[] {
-				"/P1/p/X.js",
-				"package p;\n" +
-				"public class X<T> {\n" +
-				"  /*start*/public class Member {\n" +
-				"  }/*end*/\n" +
-				"}",
-			}, "1.5");
-			IClassFile classFile = getClassFile("P1", "/P1/lib.jar", "p", "X$Member.class");
-			String source = classFile.getSource();
-			MarkerInfo markerInfo = new MarkerInfo(source);
-			markerInfo.astStarts = new int[] {source.indexOf("/*start*/") + "/*start*/".length()};
-			markerInfo.astEnds = new int[] {source.indexOf("/*end*/")};
-			ASTNode node = buildAST(markerInfo, classFile);
-			ITypeBinding binding = ((TypeDeclaration) node).resolveBinding();
-			assertBindingKeyEquals("Lp/X<TT;>.Member;", binding.getKey());
-		} finally {
-			deleteProject("P1");
-		}
-	}
-	
-	/*
-	 * Ensures that strings are not optimized when creating the AST through a reconcile
-	 * even if the working copy was consistent.
-	 * (regression test for bug 114909 AST: String concatenation represented as single node)
-	 */
-	public void test0577() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy(
-				"/Converter/src/X.js", 
-				"public class X {\n" +
-				"  String s = /*start*/\"a\" + \"b\"/*end*/;\n" +
-				"}",
-				true/*resolve*/);
-			ASTNode string = buildAST(workingCopy);
-			assertEquals("Unexpected node type", ASTNode.INFIX_EXPRESSION, string.getNodeType());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-
-
-	/*
-	 * Ensures that the start position of an argument that has a previous sibbling with a comment is correct
-	 * (regression test for bug 80904 Quick Fix "Assign parameter to new field" doesn't appear with commented type)
-	 */
-	public void test0579() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy(
-				"/Converter/src/X.js", 
-				"public class X {\n" +
-				"  /*start*/void foo(Object/*first arg*/ arg1, Object arg2) {\n" +
-				"  }/*end*/\n" +
-				"}",
-				true/*resolve*/);
-			FunctionDeclaration method = (FunctionDeclaration) buildAST(workingCopy);
-			SingleVariableDeclaration arg2 = (SingleVariableDeclaration) method.parameters().get(1);
-			int start = arg2.getStartPosition();
-			assertEquals("Unexpected range for arg2", "Object arg2", workingCopy.getSource().substring(start, start+arg2.getLength()));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	public void test0606() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0606", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 0);
-		unit.accept(new ASTVisitor() {
-			public boolean visit(FunctionDeclaration methodDeclaration) {
-				IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-				IJavaScriptElement javaElement = methodBinding.getJavaElement();
-				assertNotNull("No java element", javaElement);
-				return false;
-			}
-		});
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=173853
-	 */
-	public void test0607() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy(
-				"/Converter/src/X.js", 
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    #\n" +
-				"    /*start*/new Object() {\n" +
-				"    }/*end*/;\n" +
-				"  }\n" +
-				"}",
-				true/*resolve*/);
-			ASTNode string = buildAST(null, workingCopy, true, true);
-			assertEquals("Unexpected node type", ASTNode.CLASS_INSTANCE_CREATION, string.getNodeType());
-			ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) string;
-			ITypeBinding resolveTypeBinding = classInstanceCreation.resolveTypeBinding();
-			assertNotNull("Binding is null", resolveTypeBinding);
-			IFunctionBinding[] declaredMethods = resolveTypeBinding.getDeclaredMethods();
-			assertNotNull("Should have one method", declaredMethods);
-			assertEquals("Should have one method", 1, declaredMethods.length);
-			assertTrue("The method should be a default constructor", declaredMethods[0].isDefaultConstructor());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTestAST3_2.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTestAST3_2.java
deleted file mode 100644
index db189c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTConverterTestAST3_2.java
+++ /dev/null
@@ -1,8652 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IInitializer;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.ISourceRange;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTMatcher;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.ASTParser;
-import org.eclipse.wst.jsdt.core.dom.ASTRequestor;
-import org.eclipse.wst.jsdt.core.dom.ASTVisitor;
-import org.eclipse.wst.jsdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ArrayInitializer;
-import org.eclipse.wst.jsdt.core.dom.ArrayType;
-import org.eclipse.wst.jsdt.core.dom.Assignment;
-import org.eclipse.wst.jsdt.core.dom.Block;
-import org.eclipse.wst.jsdt.core.dom.BodyDeclaration;
-import org.eclipse.wst.jsdt.core.dom.CatchClause;
-import org.eclipse.wst.jsdt.core.dom.CharacterLiteral;
-import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation;
-import org.eclipse.wst.jsdt.core.dom.ConstructorInvocation;
-import org.eclipse.wst.jsdt.core.dom.Expression;
-import org.eclipse.wst.jsdt.core.dom.ExpressionStatement;
-import org.eclipse.wst.jsdt.core.dom.FieldAccess;
-import org.eclipse.wst.jsdt.core.dom.FieldDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ForStatement;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionInvocation;
-import org.eclipse.wst.jsdt.core.dom.IBinding;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.IVariableBinding;
-import org.eclipse.wst.jsdt.core.dom.IfStatement;
-import org.eclipse.wst.jsdt.core.dom.ImportDeclaration;
-import org.eclipse.wst.jsdt.core.dom.InfixExpression;
-import org.eclipse.wst.jsdt.core.dom.Initializer;
-import org.eclipse.wst.jsdt.core.dom.InstanceofExpression;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.Modifier;
-import org.eclipse.wst.jsdt.core.dom.Name;
-import org.eclipse.wst.jsdt.core.dom.NullLiteral;
-import org.eclipse.wst.jsdt.core.dom.PackageDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ParenthesizedExpression;
-import org.eclipse.wst.jsdt.core.dom.PrimitiveType;
-import org.eclipse.wst.jsdt.core.dom.QualifiedName;
-import org.eclipse.wst.jsdt.core.dom.ReturnStatement;
-import org.eclipse.wst.jsdt.core.dom.SimpleName;
-import org.eclipse.wst.jsdt.core.dom.SimpleType;
-import org.eclipse.wst.jsdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.wst.jsdt.core.dom.Statement;
-import org.eclipse.wst.jsdt.core.dom.StringLiteral;
-import org.eclipse.wst.jsdt.core.dom.SuperFieldAccess;
-import org.eclipse.wst.jsdt.core.dom.SuperMethodInvocation;
-import org.eclipse.wst.jsdt.core.dom.SwitchCase;
-import org.eclipse.wst.jsdt.core.dom.SwitchStatement;
-import org.eclipse.wst.jsdt.core.dom.TryStatement;
-import org.eclipse.wst.jsdt.core.dom.Type;
-import org.eclipse.wst.jsdt.core.dom.TypeDeclaration;
-import org.eclipse.wst.jsdt.core.dom.TypeDeclarationStatement;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationExpression;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement;
-import org.eclipse.wst.jsdt.core.dom.WhileStatement;
-import org.eclipse.wst.jsdt.core.tests.model.CancelCounter;
-import org.eclipse.wst.jsdt.core.tests.model.Canceler;
-import org.eclipse.wst.jsdt.core.tests.model.ReconcilerTests;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-public class ASTConverterTestAST3_2 extends ConverterTestSetup {
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		this.ast = AST.newAST(AST.JLS3);
-	}
-
-	public ASTConverterTestAST3_2(String name) {
-		super(name);
-	}
-
-	static {
-//		TESTS_NAMES = new String[] {"test0602"};
-//		TESTS_RANGE = new int[] { 664, -1 };
-//		TESTS_NUMBERS =  new int[] { 664 };
-	}
-	public static Test suite() {
-		return buildModelTestSuite(ASTConverterTestAST3_2.class);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=22560
-	 */
-	public void test0401() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0401", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size()); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(0);
-		assertTrue("Not a return statement", statement.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) statement;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("there is no expression", expression); //$NON-NLS-1$
-		// call the default initialization
-		methodDeclaration.getReturnType2();
-		ITypeBinding typeBinding = expression.resolveTypeBinding();
-		assertNotNull("No typebinding", typeBinding); //$NON-NLS-1$
-		assertEquals("wrong name", "int", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23464
-	 */
-	public void test0402() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0402", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 0);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not a super method invocation", node.getNodeType() == ASTNode.SUPER_CONSTRUCTOR_INVOCATION); //$NON-NLS-1$
-		checkSourceRange(node, "new A().super();", source); //$NON-NLS-1$
-	}	
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
-	 */
-	public void test0403() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0403", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 1);
-		assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "test", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		IFunctionBinding methodBinding2 = methodInvocation.resolveMethodBinding();
-		assertNotNull("No method binding2", methodBinding2);
-		assertTrue("Wrong binding", methodBinding == methodBinding2);
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
-	 */
-	public void test0404() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0404", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
-	 */
-	public void test0405() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0405", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0, 1);
-		assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23597
-	 */
-	public void test0406() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0406", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 1);
-		assertEquals("Wrong number of problems", 1, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "foo", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "foo", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertNull("Got a declaring node in the unit", unit.findDeclaringNode(methodBinding));
-	}	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
-	 */
-	public void test0407() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0407", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		SimpleName simpleName = methodDeclaration.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("Not a method binding", binding.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding = (IFunctionBinding) binding;
-		assertEquals("wrong name", "foo", methodBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		methodDeclaration.setName(methodDeclaration.getAST().newSimpleName("foo2")); //$NON-NLS-1$
-		IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-		assertNotNull("No methodbinding2", methodBinding2); //$NON-NLS-1$
-		assertEquals("wrong name", "foo", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		simpleName = methodDeclaration.getName();
-		IBinding binding2 = simpleName.resolveBinding();
-		assertNull("Got a binding2", binding2); //$NON-NLS-1$
-		
-		ASTNode astNode = unit.findDeclaringNode(methodBinding);
-		assertNotNull("No declaring node", astNode);
-		assertEquals("wrong declaring node", methodDeclaration, astNode);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
-	 */
-	public void test0408() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0408", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		assertTrue("Not a simple type", type.isSimpleType()); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("Not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) name;
-		name = qualifiedName.getQualifier();
-		assertTrue("Not a qualified name", name.isQualifiedName()); //$NON-NLS-1$
-		qualifiedName = (QualifiedName) name;
-		name = qualifiedName.getQualifier();
-		assertTrue("Not a simple name", name.isSimpleName()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("Not a package binding", binding.getKind() == IBinding.PACKAGE); //$NON-NLS-1$
-		assertEquals("Wrong name", "java", binding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-		
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=23162
-	 */
-	public void test0409() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0409", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-			assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result; 
-			assertProblemsSize(compilationUnit, 0);
-			BindingsCollectorVisitor bindingsCollectorVisitor = new BindingsCollectorVisitor();
-			compilationUnit.accept(bindingsCollectorVisitor);
-			assertEquals("wrong number", 3, bindingsCollectorVisitor.getUnresolvedNodesSet().size()); //$NON-NLS-1$
-			Map bindingsMap = bindingsCollectorVisitor.getBindingsMap();
-			assertEquals("wrong number", 211, bindingsMap.size()); //$NON-NLS-1$
-			ASTNodesCollectorVisitor nodesCollector = new ASTNodesCollectorVisitor();
-			compilationUnit.accept(nodesCollector);
-			Set detachedNodes = nodesCollector.getDetachedAstNodes();
-			int counter = 0;
-			for (Iterator iterator = detachedNodes.iterator(); iterator.hasNext(); ) {
-				ASTNode detachedNode = (ASTNode) iterator.next();
-				counter++;
-				IBinding binding = (IBinding) bindingsMap.get(detachedNode);
-				assertNotNull(binding);
-				switch(detachedNode.getNodeType()) {
-					case ASTNode.ARRAY_ACCESS :
-					case ASTNode.ARRAY_CREATION :
-					case ASTNode.ARRAY_INITIALIZER :
-					case ASTNode.ASSIGNMENT :
-					case ASTNode.BOOLEAN_LITERAL :
-					case ASTNode.CHARACTER_LITERAL :
-					case ASTNode.CLASS_INSTANCE_CREATION :
-					case ASTNode.CONDITIONAL_EXPRESSION :
-					case ASTNode.FIELD_ACCESS :
-					case ASTNode.INFIX_EXPRESSION :
-					case ASTNode.INSTANCEOF_EXPRESSION :
-					case ASTNode.FUNCTION_INVOCATION :
-					case ASTNode.NULL_LITERAL :
-					case ASTNode.NUMBER_LITERAL :
-					case ASTNode.POSTFIX_EXPRESSION :
-					case ASTNode.PREFIX_EXPRESSION :
-					case ASTNode.THIS_EXPRESSION :
-					case ASTNode.TYPE_LITERAL :
-					case ASTNode.VARIABLE_DECLARATION_EXPRESSION :
-						ITypeBinding typeBinding = ((Expression) detachedNode).resolveTypeBinding();
-						if (!binding.equals(typeBinding)) {
-							System.out.println(detachedNode);
-						}
-						assertTrue("binding not equals", binding.equals(typeBinding)); //$NON-NLS-1$
-						break;						
-					case ASTNode.VARIABLE_DECLARATION_FRAGMENT :
-						assertTrue("binding not equals", binding.equals(((VariableDeclarationFragment) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;						
-					case ASTNode.ANONYMOUS_CLASS_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((AnonymousClassDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.QUALIFIED_NAME :
-					case ASTNode.SIMPLE_NAME :
-						IBinding newBinding = ((Name) detachedNode).resolveBinding();
-						assertTrue("binding not equals", binding.equals(newBinding)); //$NON-NLS-1$
-						break;
-					case ASTNode.ARRAY_TYPE :
-					case ASTNode.SIMPLE_TYPE :
-					case ASTNode.PRIMITIVE_TYPE :
-						assertTrue("binding not equals", binding.equals(((Type) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.CONSTRUCTOR_INVOCATION :
-						assertTrue("binding not equals", binding.equals(((ConstructorInvocation) detachedNode).resolveConstructorBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.IMPORT_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((ImportDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.FUNCTION_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((FunctionDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.PACKAGE_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((PackageDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-					case ASTNode.TYPE_DECLARATION :
-						assertTrue("binding not equals", binding.equals(((TypeDeclaration) detachedNode).resolveBinding())); //$NON-NLS-1$
-						break;
-				}
-			}
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-
-	/**
-	 * Test for message on jdt-core-dev
-	 */
-	public void test0410() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0410", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		Expression expression = ((ReturnStatement) node).getExpression();
-		assertTrue("Not an infix expression", expression.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression;
-		List extendedOperands = infixExpression.extendedOperands();
-		assertEquals("wrong size", 3, extendedOperands.size()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test for message on jdt-core-dev
-	 */
-	public void test0411() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0411", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("Wrong number of problems", 0, ((JavaScriptUnit) result).getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		Expression expression = ((ReturnStatement) node).getExpression();
-		assertTrue("Not an infix expression", expression.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression;
-		List extendedOperands = infixExpression.extendedOperands();
-		assertEquals("wrong size", 0, extendedOperands.size()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23901
-	 */
-	public void test0412() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0412", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0);
-		assertNotNull(node);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertNotNull("No declaring node", unit.findDeclaringNode(typeBinding)); //$NON-NLS-1$
-		Name name = typeDeclaration.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		ASTNode declaringNode = unit.findDeclaringNode(binding);
-		assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
-		assertEquals("Wrong node", typeDeclaration, declaringNode); //$NON-NLS-1$
-		typeBinding = name.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		declaringNode = unit.findDeclaringNode(typeBinding);
-		assertNotNull("No declaring node", declaringNode); //$NON-NLS-1$
-		assertEquals("Wrong node", typeDeclaration, declaringNode); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=20881
-	 */
-	public void test0413() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0413", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		List throwsException = methodDeclaration.thrownExceptions();
-		assertEquals("wrong size", 2, throwsException.size()); //$NON-NLS-1$
-		Name name = (Name) throwsException.get(0);
-		IBinding binding = name.resolveBinding();
-		assertNull("Got a binding", binding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=23734
-	 */
-	public void test0414() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0414", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		ASTNode declaringNode = unit.findDeclaringNode(typeBinding);
-		assertNull("Got a declaring node", declaringNode); //$NON-NLS-1$
-
-		node = getASTNode(unit, 0, 1);
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration2 = (FunctionDeclaration) node;
-		Type type2 = methodDeclaration2.getReturnType2();
-		ITypeBinding typeBinding2 = type2.resolveBinding();
-		assertNotNull("No type binding", typeBinding2); //$NON-NLS-1$
-		ASTNode declaringNode2 = unit.findDeclaringNode(typeBinding2);
-		assertNotNull("No declaring node", declaringNode2); //$NON-NLS-1$
-
-		IJavaScriptUnit sourceUnit2 = getCompilationUnit("Converter" , "src", "test0414", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		
-		result = runConversion(AST.JLS3, sourceUnit2, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit2 = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit2.getProblems().length); //$NON-NLS-1$
-		ASTNode declaringNode3 = unit2.findDeclaringNode(typeBinding);
-		assertNull("Got a declaring node", declaringNode3); //$NON-NLS-1$
-		
-		ASTNode declaringNode4 = unit2.findDeclaringNode(typeBinding.getKey());
-		assertNotNull("No declaring node", declaringNode4); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24268
-	 */
-	public void test0415() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0415", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a switch statement", node.getNodeType() == ASTNode.SWITCH_STATEMENT); //$NON-NLS-1$
-		SwitchStatement switchStatement = (SwitchStatement) node;
-		List statements = switchStatement.statements();
-		assertEquals("wrong size", statements.size(), 5); //$NON-NLS-1$
-		Statement statement = (Statement) statements.get(3);
-		assertTrue("not a switch case (default)", statement.getNodeType() == ASTNode.SWITCH_CASE); //$NON-NLS-1$
-		SwitchCase defaultCase = (SwitchCase) statement;
-		assertTrue("not a default case", defaultCase.isDefault());
-		checkSourceRange(defaultCase, "default:", source);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24324
-	 */
-	public void test0416() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0416", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", fragments.size(), 1);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression init = fragment.getInitializer();
-		assertTrue("not a qualified name", init.getNodeType() == ASTNode.QUALIFIED_NAME); //$NON-NLS-1$
-		QualifiedName qualifiedName = (QualifiedName) init;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("Wrong name", "CONST", simpleName.getIdentifier());
-		IBinding binding = simpleName.resolveBinding();
-		assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong modifier", variableBinding.getModifiers(), Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL);
-		ASTNode declaringNode = unit.findDeclaringNode(variableBinding);
-		assertNotNull("No declaring node", declaringNode);
-		assertTrue("not a variable declaration fragment", declaringNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT);
-		VariableDeclarationFragment variableDeclarationFragment = (VariableDeclarationFragment) declaringNode;
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) variableDeclarationFragment.getParent();
-		assertEquals("Wrong modifier", fieldDeclaration.getModifiers(), Modifier.NONE);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24347
-	 */
-	public void test0417() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0417", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertTrue("not a simple type", type.getNodeType() == ASTNode.SIMPLE_TYPE); //$NON-NLS-1$
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertTrue("Not a qualified name", name.isQualifiedName());
-		QualifiedName qualifiedName = (QualifiedName) name;
-		Name qualifier = qualifiedName.getQualifier();
-		assertTrue("Not a simple name", qualifier.isSimpleName());
-		IBinding binding = qualifier.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24406
-	 */
-	public void test0418() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0418", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertTrue("not an expression statement ", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("not an method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Name name = methodInvocation.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0419() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0419", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a name", expression2.getNodeType(), ASTNode.SIMPLE_NAME);
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding = simpleName.resolveBinding();
-		assertNull(binding);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0420() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0420", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getRightOperand();
-		assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
-		checkSourceRange(expression2, "(2 + 3)", source);
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression3, "2 + 3", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0421() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0421", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "(1 + 2) + 3", source);
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
-		checkSourceRange(expression2, "(1 + 2)", source);
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression3, "1 + 2", source);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0422() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0422", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "( 1 + 2 ) + 3", source);
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
-		checkSourceRange(expression2, "( 1 + 2 )", source);
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression3, "1 + 2", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0423() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0423", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getRightOperand();
-		assertEquals("Not a parenthesized expression", expression2.getNodeType(), ASTNode.PARENTHESIZED_EXPRESSION);
-		checkSourceRange(expression2, "( 2 + 3 )", source);
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression2;
-		Expression expression3 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression3, "2 + 3", source);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0424() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0424", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		assertEquals("Wrong size", 1, infixExpression.extendedOperands().size());
-		Expression expression2 = (Expression) infixExpression.extendedOperands().get(0);
-		checkSourceRange(expression2, "( 2 + 3 )", source);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24453
-	 */
-	public void test0425() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0425", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", expression.getNodeType(), ASTNode.INFIX_EXPRESSION);
-		InfixExpression infixExpression = (InfixExpression) expression;
-		assertEquals("Wrong size", 0, infixExpression.extendedOperands().size());
-		Expression expression2 = infixExpression.getRightOperand();
-		assertTrue("not an infix expression", expression2.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression2 = (InfixExpression) expression2;
-		Expression expression3 = infixExpression2.getRightOperand();
-		assertTrue("not a parenthesized expression", expression3.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION); //$NON-NLS-1$
-		checkSourceRange(expression3, "( 2 + 3 )", source);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0426() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0426", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not a variable declaration statement", node.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertTrue("not a simple type", type.getNodeType() == ASTNode.SIMPLE_TYPE);
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertNotNull("No name", name);
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-	}	
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0427() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0427", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a super field access", expression2.getNodeType(), ASTNode.SUPER_FIELD_ACCESS);
-		SuperFieldAccess superFieldAccess = (SuperFieldAccess) expression2;
-		Name name = superFieldAccess.getName();
-		assertNotNull("No name", name);
-		IBinding binding = name.resolveBinding();
-		assertNull("Got a binding", binding);
-		assertNull("Got a binding", superFieldAccess.resolveFieldBinding());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0428() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0428", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a qualified name", expression2.getNodeType(), ASTNode.QUALIFIED_NAME);
-		QualifiedName name = (QualifiedName) expression2;
-		SimpleName simpleName = name.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-		IBinding binding2 = name.resolveBinding();
-		assertNotNull("No binding2", binding2);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24449
-	 */
-	public void test0429() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0429", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", expression.getNodeType(), ASTNode.ASSIGNMENT);
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a qualified name", expression2.getNodeType(), ASTNode.QUALIFIED_NAME);
-		QualifiedName name = (QualifiedName) expression2;
-		SimpleName simpleName = name.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-		IBinding binding2 = name.resolveBinding();
-		assertNotNull("No binding2", binding2);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24499
-	 */
-	public void test0430() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0430", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertTrue("Not a constructor invocation", node.getNodeType() == ASTNode.CONSTRUCTOR_INVOCATION);
-		ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
-		checkSourceRange(constructorInvocation, "this(coo2());", source);
-		List arguments = constructorInvocation.arguments();
-		assertEquals("Wrong size", 1, arguments.size());
-		Expression expression = (Expression) arguments.get(0);
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		SimpleName simpleName = methodInvocation.getName();
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24500
-	 */
-	public void test0431() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0431", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertTrue("Not a constructor invocation", node.getNodeType() == ASTNode.CONSTRUCTOR_INVOCATION);
-		ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
-		List arguments = constructorInvocation.arguments();
-		assertEquals("Wrong size", 1, arguments.size());
-		Expression expression = (Expression) arguments.get(0);
-		assertTrue("Not a simple name", expression.getNodeType() == ASTNode.SIMPLE_NAME);
-		SimpleName simpleName = (SimpleName) expression;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
-	 */
-	public void test0432() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0432", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType());
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
-	 */
-	public void test0433() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0433", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a super field access", ASTNode.SUPER_FIELD_ACCESS, expression2.getNodeType());
-		SuperFieldAccess superFieldAccess = (SuperFieldAccess) expression2;
-		SimpleName simpleName = superFieldAccess.getName();
-		assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Wrong binding", IBinding.VARIABLE, binding.getKind());
-		IVariableBinding variableBinding = superFieldAccess.resolveFieldBinding();
-		assertTrue("Different binding", binding == variableBinding);
-		ASTNode astNode = unit.findDeclaringNode(variableBinding);
-		assertTrue("Wrong type", astNode.getNodeType() == ASTNode.SINGLE_VARIABLE_DECLARATION || astNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT || astNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_EXPRESSION);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
-	 */
-	public void test0434() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0434", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression2.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) expression2;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24501
-	 */
-	public void test0435() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0435", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getLeftHandSide();
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression2.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) expression2;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("wrong name", "fCoo", simpleName.getIdentifier());
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
-	 */
-	public void test0436() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0436", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 1, "The type A.CInner is not visible"); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, name.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) name;
-		SimpleName simpleName = qualifiedName.getName();
-		assertEquals("wrong name", "CInner", simpleName.getIdentifier());
-		IBinding binding2 = simpleName.resolveBinding();
-		assertNotNull("No binding", binding2);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
-	 */
-	public void test0437() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0437", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 1, "The type CInner is not visible"); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
-		SimpleName simpleName = (SimpleName) name;
-		IBinding binding = simpleName.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24511
-	 */
-	public void test0438() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0438", "D.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		List imports = unit.imports();
-		assertEquals("Wrong size", 1, imports.size()); //$NON-NLS-1$<
-		ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
-		IBinding binding = importDeclaration.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24502
-	 */
-	public void test0439() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0439", "E.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		Type type = statement.getType();
-		assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
-	 */
-	public void test0440() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0440", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		// 2 * 3 + "" + (true)
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "2 * 3 + \"\" + (true)", source);
-		Expression leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "2 * 3 + \"\"", source);
-		checkSourceRange(infixExpression.getRightOperand(), "(true)", source);
-		assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.PLUS);
-		assertEquals("wrong type", ASTNode.INFIX_EXPRESSION, leftOperand.getNodeType());
-		infixExpression = (InfixExpression) leftOperand;
-		checkSourceRange(infixExpression, "2 * 3 + \"\"", source);
-		leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "2 * 3", source);
-		checkSourceRange(infixExpression.getRightOperand(), "\"\"", source);
-		assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.PLUS);
-		assertEquals("wrong type", ASTNode.INFIX_EXPRESSION, leftOperand.getNodeType());
-		infixExpression = (InfixExpression) leftOperand;
-		checkSourceRange(infixExpression, "2 * 3", source);
-		leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "2", source);
-		checkSourceRange(infixExpression.getRightOperand(), "3", source);
-		assertEquals("wrong operator", infixExpression.getOperator(), InfixExpression.Operator.TIMES);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
-	 */
-	public void test0441() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0441", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "(2 + 2) * 3 * 1", source);
-		Expression leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "(2 + 2)", source);
-		checkSourceRange(infixExpression.getRightOperand(), "3", source);
-		List extendedOperands = infixExpression.extendedOperands();
-		assertEquals("wrong size", 1, extendedOperands.size());
-		checkSourceRange((Expression) extendedOperands.get(0), "1", source);
-		assertEquals("wrong operator", InfixExpression.Operator.TIMES, infixExpression.getOperator());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24622
-	 */
-	public void test0442() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0442", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		checkSourceRange(infixExpression, "2 + (2 * 3) + 1", source);
-		Expression leftOperand = infixExpression.getLeftOperand();
-		checkSourceRange(leftOperand, "2", source);
-		Expression rightOperand = infixExpression.getRightOperand();
-		checkSourceRange(rightOperand, "(2 * 3)", source);
-		assertEquals("wrong type", ASTNode.PARENTHESIZED_EXPRESSION, rightOperand.getNodeType());
-		List extendedOperands = infixExpression.extendedOperands();
-		assertEquals("wrong size", 1, extendedOperands.size());
-		checkSourceRange((Expression) extendedOperands.get(0), "1", source);
-		assertEquals("wrong operator", InfixExpression.Operator.PLUS, infixExpression.getOperator());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24623
-	 */
-	public void test0443() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0443", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertNotNull("No body", methodDeclaration.getBody());
-		assertNotNull("No binding", methodDeclaration.resolveBinding());
-		assertTrue("Not an abstract method", Modifier.isAbstract(methodDeclaration.getModifiers()));
-		List modifiers = methodDeclaration.modifiers();
-		assertEquals("Wrong size", 2, modifiers.size());
-		Modifier modifier1 = (Modifier) modifiers.get(0);
-		assertTrue("Not a public modifier", modifier1.isPublic());
-		Modifier modifier2 = (Modifier) modifiers.get(1);
-		assertTrue("Not an abstract modifier", modifier2.isAbstract());		
-		assertTrue("Not malformed", isMalformed(methodDeclaration)); 
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24623
-	 */
-	public void test0444() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0444", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0);
-		assertEquals("Wrong type", ASTNode.TYPE_DECLARATION, node.getNodeType());
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 2, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration)bodyDeclarations.get(0);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		assertEquals("Wrong name", "foo", methodDeclaration.getName().getIdentifier());
-		assertNull("Got a binding", methodDeclaration.resolveBinding());
-		bodyDeclaration = (BodyDeclaration)bodyDeclarations.get(1);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
-		assertEquals("Wrong name", "foo", ((FunctionDeclaration) bodyDeclaration).getName().getIdentifier());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24773
-	 */
-	public void test0445() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0445", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25018
-	 */
-	public void test0446() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0446", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$<
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25124
-	 */
-	public void test0447() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0447", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 3, unit.getProblems().length); //$NON-NLS-1$<
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=25330
-	 */
-	public void test0448() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0448", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Not a method declaration", node.getNodeType(), ASTNode.FUNCTION_DECLARATION);
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-		assertNull("No return type", methodDeclaration.getReturnType2());
-		Block block = methodDeclaration.getBody();
-		assertNotNull("No method body", block);
-		assertEquals("wrong size", 0, block.statements().size()); 
-	}
-	
-	/**
-	 * Check that the implicit super constructor call is not there
-	 */
-	public void test0449() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0449", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Not a method declaration", node.getNodeType(), ASTNode.FUNCTION_DECLARATION);
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-		Block block = methodDeclaration.getBody();
-		assertNotNull("No method body", block);
-		assertEquals("wrong size", 1, block.statements().size()); 
-	}	
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=26452
-	 */
-	public void test0450() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0450", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0);
-		assertEquals("Not a type declaration", node.getNodeType(), ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding);
-		assertTrue("not a class", typeBinding.isClass());
-		assertTrue("not a toplevel type", typeBinding.isTopLevel());
-		assertTrue("a local type", !typeBinding.isLocal());
-		assertTrue("an anonymous type", !typeBinding.isAnonymous());
-		assertTrue("a member type", !typeBinding.isMember());
-		assertTrue("a nested type", !typeBinding.isNested());
-		node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not an expression statement", node.getNodeType(), ASTNode.EXPRESSION_STATEMENT);
-		Expression expression = ((ExpressionStatement) node).getExpression();
-		assertEquals("Not a class instance creation", expression.getNodeType(), ASTNode.CLASS_INSTANCE_CREATION);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding);
-		assertTrue("not a class", typeBinding.isClass());
-		assertTrue("a toplevel type", !typeBinding.isTopLevel());
-		assertTrue("not a local type", typeBinding.isLocal());
-		assertTrue("not an anonymous type", typeBinding.isAnonymous());
-		assertTrue("a member type", !typeBinding.isMember());
-		assertTrue("not a nested type", typeBinding.isNested());
-		ASTNode astNode = unit.findDeclaringNode(typeBinding);
-		assertEquals("Wrong type", ASTNode.ANONYMOUS_CLASS_DECLARATION, astNode.getNodeType());
-		assertNotNull("Didn't get a key", typeBinding.getKey());
-		astNode = unit.findDeclaringNode(typeBinding.getKey());
-		assertNotNull("Didn't get a declaring node", astNode);
-		
-		ITypeBinding typeBinding3 = classInstanceCreation.resolveTypeBinding();
-		assertEquals("wrong binding", typeBinding, typeBinding3);
-		
-		List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 2, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("not a type declaration", bodyDeclaration.getNodeType() == ASTNode.TYPE_DECLARATION);
-		typeDeclaration = (TypeDeclaration) bodyDeclaration;
-		
-		bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(1);
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		assertNotNull("No body", block);
-		List statements = block.statements();
-		assertEquals("wrong size", 2, statements.size());
-		Statement statement = (Statement) statements.get(1);
-		assertEquals("Not a variable declaration statement", statement.getNodeType(), ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement;
-		Type type = variableDeclarationStatement.getType();
-		assertNotNull("No type", type);
-		
-		ITypeBinding typeBinding2 = type.resolveBinding();
-		typeBinding = typeDeclaration.resolveBinding();
-		assertTrue("not equals", typeBinding == typeBinding2);
-		assertNotNull("No type binding", typeBinding);
-		assertTrue("not a class", typeBinding.isClass());
-		assertTrue("a toplevel type", !typeBinding.isTopLevel());
-		assertTrue("an anonymous type", !typeBinding.isAnonymous());
-		assertTrue("not a member type", typeBinding.isMember());
-		assertTrue("not a nested type", typeBinding.isNested());		
-		assertTrue("a local type", !typeBinding.isLocal());
-		
-		bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size());
-		bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("not a type declaration", bodyDeclaration.getNodeType() == ASTNode.TYPE_DECLARATION);
-		typeDeclaration = (TypeDeclaration) bodyDeclaration;
-		typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding);
-		assertTrue("not a class", typeBinding.isClass());
-		assertTrue("a toplevel type", !typeBinding.isTopLevel());
-		assertTrue("an anonymous type", !typeBinding.isAnonymous());
-		assertTrue("not a member type", typeBinding.isMember());
-		assertTrue("not a nested type", typeBinding.isNested());		
-		assertTrue("a local type", !typeBinding.isLocal());
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=24916
-	 */
-	public void test0451() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0451", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Type type = methodDeclaration.getReturnType2();
-		checkSourceRange(type, "int", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=27204
-	 */
-	public void test0452() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "NO_WORKING.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		SimpleName name = methodDeclaration.getName();
-		assertEquals("wrong line number", 3, compilationUnit.getLineNumber(name.getStartPosition()));
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=27173
-	 */
-	public void test0453() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0453", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0,0);
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertTrue("not a super method invocation", expression.getNodeType() == ASTNode.SUPER_METHOD_INVOCATION); //$NON-NLS-1$
-		SuperMethodInvocation methodInvocation = (SuperMethodInvocation) expression;
-		IFunctionBinding methodBinding = methodInvocation.resolveMethodBinding();
-		assertNotNull("No method binding", methodBinding);
-		assertEquals("Wrong binding", "toString", methodBinding.getName());
-	}	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28296
-	 */
-	public void test0454() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0454", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0,1);
-		assertNotNull("No node", node);
-		assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-		List fragments = statement.fragments();
-		assertEquals("wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		checkSourceRange(expression, "(int) (3.14f * a)", source);
-	}
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0455() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0455", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int i = 0; i < 10; i++)  // for 1\n" +
-			"	        for (int j = 0; j < 10; j++)  // for 2\n" +
-			"	            if (true) { }";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "for (int j = 0; j < 10; j++)  // for 2\n" +
-			"	            if (true) { }";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement2 = (ForStatement) body;
-		body = forStatement2.getBody();
-		expectedSource = "if (true) { }";
-		checkSourceRange(body, expectedSource, source);		
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0456() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0456", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int x= 10; x < 20; x++)\n" +
-			"			main();";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "main();";
-		checkSourceRange(body, expectedSource, source);		
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0457() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0457", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
-			"			for (int z= 10; z < 10; z++)\n" +
-			"				foo();";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "for (int z= 10; z < 10; z++)\n" +
-			"				foo();";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement2 = (ForStatement) body;
-		body = forStatement2.getBody();
-		expectedSource = "foo();";
-		checkSourceRange(body, expectedSource, source);		
-	}	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0458() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0458", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
-			"			for (int z= 10; z < 10; z++)\n" +
-			"				;";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "for (int z= 10; z < 10; z++)\n" +
-			"				;";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement2 = (ForStatement) body;
-		body = forStatement2.getBody();
-		expectedSource = ";";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not an empty statement", body.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28682
-	 */
-	public void test0459() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0459", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node; // first for loop
-		String expectedSource = "for (int i= 10; i < 10; i++)/*[*/\n"+
-			"			for (int z= 10; z < 10; z++)\n" +
-			"				{    }";
-		checkSourceRange(forStatement, expectedSource, source);
-		Statement body = forStatement.getBody();
-		expectedSource = "for (int z= 10; z < 10; z++)\n" +
-			"				{    }";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a for statement", body.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement2 = (ForStatement) body;
-		body = forStatement2.getBody();
-		expectedSource = "{    }";
-		checkSourceRange(body, expectedSource, source);		
-		assertTrue("not a block", body.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28869
-	 */
-	public void test0460() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0460", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("Malformed", !isMalformed(node));
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=28824
-	 */
-	public void test0461() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0461", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		char[] source = sourceUnit.getSource().toCharArray();
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("Malformed", !isMalformed(node));
-		assertTrue("not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("not an assignment", expression.getNodeType() == ASTNode.ASSIGNMENT); //$NON-NLS-1$
-		Assignment assignment = (Assignment) expression;
-		checkSourceRange(assignment, "z= foo().y.toList()", source);
-		Expression expression2 = assignment.getRightHandSide();
-		checkSourceRange(expression2, "foo().y.toList()", source);
-		assertTrue("not a method invocation", expression2.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		checkSourceRange(expression3, "foo().y", source);
-		checkSourceRange(methodInvocation.getName(), "toList", source);
-		assertTrue("not a field access", expression3.getNodeType() == ASTNode.FIELD_ACCESS);
-		FieldAccess fieldAccess = (FieldAccess) expression3;
-		checkSourceRange(fieldAccess.getName(), "y", source);
-		Expression expression4 = fieldAccess.getExpression();
-		checkSourceRange(expression4, "foo()", source);
-		assertTrue("not a method invocation", expression4.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		FunctionInvocation methodInvocation2 = (FunctionInvocation) expression4;
-		checkSourceRange(methodInvocation2.getName(), "foo", source);
-		assertNull("no null", methodInvocation2.getExpression());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=32338
-	 */
-	public void test0462() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "", "Test462.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertTrue("Has error", compilationUnit.getProblems().length == 0); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("Wrong name", "Test462", typeDeclaration.getName().getIdentifier());
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No binding", typeBinding);
-		assertEquals("Wrong name", "Test462", typeBinding.getQualifiedName());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33450
-	 */
-	public void test0463() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0463", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertTrue("not a string literal", expression.getNodeType() == ASTNode.STRING_LITERAL); //$NON-NLS-1$
-		StringLiteral stringLiteral = (StringLiteral) expression;
-		checkSourceRange(stringLiteral, "\"\\012\\015\\u0061\"", source);
-		assertEquals("wrong value", "\012\015a", stringLiteral.getLiteralValue());
-		assertEquals("wrong value", "\"\\012\\015\\u0061\"", stringLiteral.getEscapedValue());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33039
-	 */
-	public void test0464() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0464", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertTrue("not a null literal", expression.getNodeType() == ASTNode.NULL_LITERAL); //$NON-NLS-1$
-		NullLiteral nullLiteral = (NullLiteral) expression;
-		ITypeBinding typeBinding = nullLiteral.resolveTypeBinding();
-		assertNotNull("No type binding", typeBinding);
-		assertFalse("A primitive type", typeBinding.isPrimitive());
-		assertTrue("Null type", typeBinding.isNullType());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33831
-	 */
-	public void test0465() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0465", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertTrue("not a field access", expression.getNodeType() == ASTNode.FIELD_ACCESS); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) expression;
-		Name name = fieldAccess.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "i", variableBinding.getName());
-		assertEquals("Wrong type", "int", variableBinding.getType().getName());
-		IVariableBinding variableBinding2 = fieldAccess.resolveFieldBinding();
-		assertTrue("different binding", variableBinding == variableBinding2);
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33949
-	 */
-	public void test0466() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0466", "Assert.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-			char[] source = sourceUnit.getSource().toCharArray();
-			ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-			checkSourceRange(node, "assert ref != null : message;", source);
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=33949
-	 */
-	public void test0467() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0467", "Assert.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-			char[] source = sourceUnit.getSource().toCharArray();
-			ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-			checkSourceRange(node, "assert ref != null : message\\u003B", source);
-			
-			node = getASTNode(compilationUnit, 0, 0, 1);
-			checkSourceRange(node, "assert ref != null\\u003B", source);
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=36772
-	 */
-	public void test0468() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0468", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a return statement", node.getNodeType() == ASTNode.RETURN_STATEMENT); //$NON-NLS-1$
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertTrue("not a field access", expression.getNodeType() == ASTNode.FIELD_ACCESS); //$NON-NLS-1$
-		FieldAccess fieldAccess = (FieldAccess) expression;
-		Name name = fieldAccess.getName();
-		IBinding binding = name.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Wrong type", IBinding.VARIABLE, binding.getKind());
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "i", variableBinding.getName());
-		assertEquals("Wrong type", "int", variableBinding.getType().getName());
-		IVariableBinding variableBinding2 = fieldAccess.resolveFieldBinding();
-		assertTrue("different binding", variableBinding == variableBinding2);
-		
-		node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("No node", node);
-		assertEquals("Wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		
-		ASTNode foundNode = compilationUnit.findDeclaringNode(variableBinding);
-		assertNotNull("No found node", foundNode);
-		assertEquals("wrong node", fragment, foundNode);
-	}		
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=36895
-	 */
-	public void test0469() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "codeManipulation", "bug.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 2, 0);
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a variable declaration statement", node.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		ASTNode parent = node.getParent();
-		assertNotNull(parent);
-		assertTrue("not a block", parent.getNodeType() == ASTNode.BLOCK); //$NON-NLS-1$
-	}		
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=37381
-	 */
-	public void test0470() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0470", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No node", node);
-		assertTrue("not a for statement", node.getNodeType() == ASTNode.FOR_STATEMENT); //$NON-NLS-1$
-		ForStatement forStatement = (ForStatement) node;
-		List initializers = forStatement.initializers();
-		assertEquals("wrong size", 1, initializers.size());
-		Expression initializer = (Expression) initializers.get(0);
-		assertTrue("not a variable declaration expression", initializer.getNodeType() == ASTNode.VARIABLE_DECLARATION_EXPRESSION); //$NON-NLS-1$
-		VariableDeclarationExpression variableDeclarationExpression = (VariableDeclarationExpression) initializer;
-		List fragments = variableDeclarationExpression.fragments();
-		assertEquals("wrong size", 2, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		checkSourceRange(fragment, "i= 0", source);
-		fragment = (VariableDeclarationFragment) fragments.get(1);
-		checkSourceRange(fragment, "j= goo(3)", source);
-		checkSourceRange(variableDeclarationExpression, "int i= 0, j= goo(3)", source);
-	}		
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38447
-	 */
-	public void test0471() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0471", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Is a constructor", !methodDeclaration.isConstructor());
-		checkSourceRange(methodDeclaration, "private void foo(){", source);
-		node = getASTNode(compilationUnit, 0, 1);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Is a constructor", !methodDeclaration.isConstructor());
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38447
-	 */
-	public void test0472() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "junit.textui", "ResultPrinter.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 2);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=38732
-	 */
-	public void test0473() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			newOptions.put(JavaScriptCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaScriptCore.ERROR);
-			JavaScriptCore.setOptions(newOptions);
-				
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0473", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-			assertEquals("No error", 2, compilationUnit.getProblems().length); //$NON-NLS-1$
-			ASTNode node = getASTNode(compilationUnit, 0, 0, 0);
-			assertNotNull("No node", node);
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
-	 */
-	public void test0474() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0474", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertEquals("Not a while statement", node.getNodeType(), ASTNode.WHILE_STATEMENT);
-		WhileStatement whileStatement = (WhileStatement) node;
-		Statement statement = whileStatement.getBody();
-		assertEquals("Not a while statement", statement.getNodeType(), ASTNode.WHILE_STATEMENT);
-		WhileStatement whileStatement2 = (WhileStatement) statement;
-		String expectedSource = 
-			"while(b())\n" +
-			"				foo();";
-		checkSourceRange(whileStatement2, expectedSource, source);
-		Statement statement2 = whileStatement2.getBody();
-		checkSourceRange(statement2, "foo();", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
-	 */
-	public void test0475() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0475", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertEquals("Not an if statement", node.getNodeType(), ASTNode.IF_STATEMENT);
-		IfStatement statement = (IfStatement) node;
-		Statement statement2 = statement.getThenStatement();
-		assertEquals("Not an if statement", statement2.getNodeType(), ASTNode.IF_STATEMENT);
-		IfStatement statement3 = (IfStatement) statement2;
-		String expectedSource = 
-			"if(b())\n" +
-			"				foo();";
-		checkSourceRange(statement3, expectedSource, source);
-		Statement statement4 = statement3.getThenStatement();
-		checkSourceRange(statement4, "foo();", source);
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39259
-	 */
-	public void test0476() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0476", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 0, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertEquals("Not a for statement", node.getNodeType(), ASTNode.FOR_STATEMENT);
-		ForStatement statement = (ForStatement) node;
-		Statement statement2 = statement.getBody();
-		assertEquals("Not a for statement", statement2.getNodeType(), ASTNode.FOR_STATEMENT);
-		ForStatement statement3 = (ForStatement) statement2;
-		String expectedSource = 
-			"for(;b();)\n" +
-			"				foo();";
-		checkSourceRange(statement3, expectedSource, source);
-		Statement statement4 = statement3.getBody();
-		checkSourceRange(statement4, "foo();", source);
-	}	
-
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=39327
-	 */
-	public void test0477() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0477", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("No error", 1, compilationUnit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(compilationUnit, 0, 1, 0);
-		assertNotNull("No node", node);
-
-		checkSourceRange(node, "this(undef());", source);
-		assertEquals("Not a constructor invocation", node.getNodeType(), ASTNode.CONSTRUCTOR_INVOCATION);		
-		ConstructorInvocation constructorInvocation = (ConstructorInvocation) node;
-		List arguments = constructorInvocation.arguments();
-		assertEquals("Wrong size", 1, arguments.size());
-		IFunctionBinding binding = constructorInvocation.resolveConstructorBinding();
-		assertNotNull("No binding", binding);
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0478() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0478", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 2, types.length);
-		IType type = types[1];
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNotNull(methodBinding);
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 2, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(1);
-		assertNotNull(node2);
-		assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding2 = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0479() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0479", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 2, types.length);
-		IType type = types[1];
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 2, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(1);
-		assertNotNull(node2);
-		assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNull("No binding", binding); //$NON-NLS-1$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0480() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0480", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0481() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0481", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0482() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		IFunction[] methods = memberType.getFunctions();
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-		assertTrue(typeBinding.isAnonymous());
-		assertEquals("Wrong name", "", typeBinding.getName());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0483() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0483", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "A", methodDeclaration.getName().getIdentifier());
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-		IBinding binding = methodDeclaration.getName().resolveBinding();
-		assertNotNull(binding);
-		assertEquals("Wrong type", IBinding.METHOD, binding.getKind());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-		assertTrue(typeBinding.isAnonymous());
-		assertEquals("Wrong name", "", typeBinding.getName());
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0484() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		ISourceRange sourceRange = memberType.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0485() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0482", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		ISourceRange sourceRange = memberType.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0486() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0486", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 2, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0487() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0487", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 3, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 2, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		expression = fragment.getInitializer();
-		assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		Initializer initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=40474
-	 */
-	public void test0488() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0488", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IInitializer[] initializers = type.getInitializers();
-		assertEquals("wrong size", 2, initializers.length);
-		IInitializer init = initializers[1];
-		ISourceRange sourceRange = init.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		expression = fragment.getInitializer();
-		assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		Initializer initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40804
-	 */
-	public void test0489() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0489", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertNull("Got a type binding", typeDeclaration.resolveBinding()); 
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=40804
-	 */
-	public void test0490() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0490", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42647
-	 */
-	public void test0491() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0491", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-			assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-			JavaScriptUnit unit = (JavaScriptUnit) result;
-			assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42647
-	 */
-	public void test0492() throws JavaScriptModelException {
-		Hashtable options = JavaScriptCore.getOptions();
-		Hashtable newOptions = JavaScriptCore.getOptions();
-		try {
-			newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			JavaScriptCore.setOptions(newOptions);
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0492", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-			assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-			JavaScriptUnit unit = (JavaScriptUnit) result;
-			assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		} finally {
-			JavaScriptCore.setOptions(options);
-		}
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0493() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0493", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[][]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0494() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0494", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[][][]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[][]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0495() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0495", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[][]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		assertEquals("wrong extra dimension", 1, fragment.getExtraDimensions());
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0496() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0496", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[][][][]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[][][]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[][]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("not an array type", componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class[]", source);
-		arrayType = (ArrayType) componentType;
-		componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=42839
-	 */
-	public void test0497() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0497", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$<
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		Type type = fieldDeclaration.getType();
-		checkSourceRange(type, "Class[]", source);
-		assertTrue("not an array type", type.isArrayType()); //$NON-NLS-1$
-		ArrayType arrayType = (ArrayType) type;
-		Type componentType = arrayType.getComponentType();
-		assertTrue("is an array type", !componentType.isArrayType()); //$NON-NLS-1$
-		checkSourceRange(componentType, "Class", source);
-	}
-
-	/**
-	 */
-	public void test0498() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0498", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=45199
-	 */
-	public void test0499() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0499", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 1);
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		Expression expression = ((ExpressionStatement) node).getExpression();
-		assertTrue("Not an assignment", expression.getNodeType() == ASTNode.ASSIGNMENT); //$NON-NLS-1$
-		Assignment assignment = (Assignment) expression;
-		Expression expression2 = assignment.getRightHandSide();
-		assertTrue("Not an infix expression", expression2.getNodeType() == ASTNode.INFIX_EXPRESSION); //$NON-NLS-1$
-		InfixExpression infixExpression = (InfixExpression) expression2;
-		Expression expression3 = infixExpression.getLeftOperand();
-		assertTrue("Not a simple name", expression3.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		ITypeBinding binding = expression3.resolveTypeBinding();
-		assertNotNull("No binding", binding);
-		Expression expression4 = assignment.getLeftHandSide();
-		assertTrue("Not a simple name", expression4.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		ITypeBinding binding2 = expression4.resolveTypeBinding();
-		assertNotNull("No binding", binding2);
-		assertTrue("Should be the same", binding == binding2);
-	}
-	
-	/**
-	 * Test for bug 45436 fix.
-	 * When this bug happened, the first assertion was false (2 problems found).
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=45436">bug 45436</a>
-	 * @throws JavaScriptModelException
-	 */
-	public void test0500() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0500", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IJavaScriptProject project = sourceUnit.getJavaScriptProject();
-		Map originalOptions = project.getOptions(false);
-		try {
-			project.setOption(JavaScriptCore.COMPILER_PB_INVALID_JAVADOC, JavaScriptCore.ERROR);
-			project.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_TAGS, JavaScriptCore.ERROR);
-			project.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS, JavaScriptCore.ERROR);
-			JavaScriptUnit result = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-			IProblem[] problems= result.getProblems();
-			assertTrue(problems.length == 1);
-			assertEquals("Invalid warning", "Javadoc: Missing tag for parameter a", problems[0].getMessage());
-		} finally {
-			project.setOptions(originalOptions);
-		}
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46012
-	 */
-	public void test0501() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0501", "JavaEditor.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull(result);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502a() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// 'i' in initializer
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement)getASTNode(unit, 0, 0, 0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;#0#i", localBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502b() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// 'j' in 'then' block in initializer
-		IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 0, 1);
-		Block block = (Block)ifStatement.getThenStatement();
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;#0#0#j", localBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502c() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// 'i' in 'foo()'
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement)getASTNode(unit, 0, 1, 0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;.foo()V#i", localBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502d() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// 'j' in 'then' block in 'foo()'
-		IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 1);
-		Block block = (Block)ifStatement.getThenStatement();
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;.foo()V#0#j", localBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502e() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// 'j' in 'else' block in 'foo()'
-		IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 1);
-		Block block = (Block)ifStatement.getElseStatement();
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) block.statements().get(0);
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) variableDeclarationStatement.fragments().get(0);
-		IVariableBinding localBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A;.foo()V#1#j", localBinding.getKey()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502f() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// first 'new Object(){...}' in 'foo()'
-		ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 2);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$182;", typeBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502g() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// 'B' in 'foo()'
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
-		AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$206$B;", typeBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502h() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// second 'new Object(){...}' in 'foo()'
-		ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 4);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$255;", typeBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502i() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// 'field' in 'B' in 'foo()'
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
-		AbstractTypeDeclaration abstractTypeDeclaration = typeDeclarationStatement.getDeclaration();
-		assertEquals("Wrong type", abstractTypeDeclaration.getNodeType(), ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) abstractTypeDeclaration;
-		FieldDeclaration fieldDeclaration = typeDeclaration.getFields()[0];
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fieldDeclaration.fragments().get(0);
-		IVariableBinding fieldBinding = fragment.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$206$B;.field)I", fieldBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46013
-	 */
-	public void test0502j() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0502", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// 'bar()' in 'B' in 'foo()'
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 3);
-		AbstractTypeDeclaration abstractTypeDeclaration = typeDeclarationStatement.getDeclaration();
-		assertEquals("Wrong type", abstractTypeDeclaration.getNodeType(), ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) abstractTypeDeclaration;
-		FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertEquals("Unexpected key", "Ltest0502/A$206$B;.bar()V", methodBinding.getKey()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503a() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// top level type A
-		TypeDeclaration type = (TypeDeclaration)getASTNode(unit, 0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503b() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// member type B in A
-		TypeDeclaration type = (TypeDeclaration)getASTNode(unit, 0, 0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$B", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503c() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// local type E in foo() in A
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) getASTNode(unit, 0, 1, 0);
-		AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$1$E", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503d() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// anonymous type new Object() {...} in foo() in A
-		ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 1);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$2", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503e() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// type F in anonymous type new Object() {...} in foo() in A
-		ExpressionStatement expressionStatement = (ExpressionStatement) getASTNode(unit, 0, 1, 1);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		TypeDeclaration type = (TypeDeclaration) anonymousClassDeclaration.bodyDeclarations().get(0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$2$F", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503f() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// local type C in bar() in B in A
-		FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) method.getBody().statements().get(0);
-		AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$1$C", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503g() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// anonymous type new Object() {...} in bar() in B in A
-		FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
-		ExpressionStatement expressionStatement = (ExpressionStatement) method.getBody().statements().get(1);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding = anonymousClassDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$1", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503h() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// type D in anonymous type new Object() {...} in bar() in B in A
-		FunctionDeclaration method = (FunctionDeclaration) getASTNode(unit, 0, 0, 0);
-		ExpressionStatement expressionStatement = (ExpressionStatement) method.getBody().statements().get(1);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		TypeDeclaration type = (TypeDeclaration) anonymousClassDeclaration.bodyDeclarations().get(0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertEquals("Unexpected binary name", "test0503.A$1$D", typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=46057
-	 */
-	public void test0503i() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0503", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		JavaScriptUnit unit = (JavaScriptUnit)runConversion(AST.JLS3, sourceUnit, true);
-		
-		// unreachable type G in foo() in A
-		IfStatement ifStatement = (IfStatement) getASTNode(unit, 0, 1, 2);
-		Block block = (Block)ifStatement.getThenStatement();
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) block.statements().get(0);
-		AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Unexpected binary name", null, typeBinding.getBinaryName()); //$NON-NLS-1$
-	}	
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=47396
-	 */
-	public void test0504() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0504", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0);
-		assertNotNull(node);
-		assertTrue("Not a constructor declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		assertTrue("A constructor", !declaration.isConstructor());
-		checkSourceRange(declaration, "public method(final int parameter);", source);
-	}
-
-	/**
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=47396
-	 */
-	public void test0505() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0505", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertTrue("not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0);
-		assertNotNull(node);
-		assertTrue("Not a constructor declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		assertTrue("A constructor", !declaration.isConstructor());
-		checkSourceRange(declaration, "public method(final int parameter) {     }", source);
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0506() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0506", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertTrue("is default constructor", binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0507() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0507", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertTrue("is default constructor", binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0508() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0508", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertTrue("not a default constructor", !binding.isDefaultConstructor());
-		assertNotNull("Has no declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0509() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0509", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertTrue("not a default constructor", !binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0510() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0510", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertFalse("is default constructor", binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=46699
-	 */
-	public void test0511() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0511", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong number of problems", 0, (unit).getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		assertTrue("Not a class instance creation", expressionStatement.getExpression().getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expressionStatement.getExpression();
-		IFunctionBinding binding = classInstanceCreation.resolveConstructorBinding();
-		assertFalse("is default constructor", binding.isDefaultConstructor());
-		assertNull("Has a declaring node", unit.findDeclaringNode(binding));
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=47326
-	 */
-	public void test0512() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0512", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Wrong number of problems", 2, unit.getProblems().length); //$NON-NLS-1$
-		assertNotNull(node);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		assertTrue("Not a constructor", declaration.isConstructor());
-		checkSourceRange(declaration, "public A();", source);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=49429
-	 */
-	public void test0513() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0513", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-	}
-	
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48502
-	 */
-	public void test0514() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0514", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=49204
-	 */
-	public void test0515() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0515", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a if statement", node.getNodeType() == ASTNode.IF_STATEMENT);
-		IfStatement ifStatement = (IfStatement) node;
-		assertTrue("not an empty statement", ifStatement.getThenStatement().getNodeType() == ASTNode.EMPTY_STATEMENT);
-		checkSourceRange(ifStatement.getThenStatement(), ";", source);
-		Statement statement = ifStatement.getElseStatement();
-		assertTrue("not a if statement", statement.getNodeType() == ASTNode.IF_STATEMENT);
-		ifStatement = (IfStatement) statement;
-		assertTrue("not an empty statement", ifStatement.getThenStatement().getNodeType() == ASTNode.EMPTY_STATEMENT);
-		checkSourceRange(ifStatement.getThenStatement(), ";", source);
-		Statement statement2 = ifStatement.getElseStatement();
-		assertTrue("not an empty statement", statement2.getNodeType() == ASTNode.EMPTY_STATEMENT);
-		checkSourceRange(statement2, ";", source);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 */
-	public void test0516() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0516", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION);
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
-		ASTNode root = bodyDeclaration.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 3, compilationUnit.getCommentList().size());
-	}	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 */
-	public void test0517() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0517", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No comments", unit.getCommentList());
-		assertEquals("Wrong size", 3, unit.getCommentList().size());
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
-		FieldDeclaration declaration = (FieldDeclaration) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
-		ASTNode root = bodyDeclaration.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 2, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 */
-	public void test0518() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0518", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not an initializer", node.getNodeType() == ASTNode.INITIALIZER);
-		Initializer declaration = (Initializer) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a type declaration", result2.getNodeType() == ASTNode.TYPE_DECLARATION);
-		TypeDeclaration typeDeclaration = (TypeDeclaration) result2;
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue(declaration.subtreeMatch(new ASTMatcher(), bodyDeclaration));
-		ASTNode root = bodyDeclaration.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 3, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 */
-	public void test0519() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0519", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No comments", unit.getCommentList());
-		assertEquals("Wrong size", 2, unit.getCommentList().size());
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		ASTNode statement = node;
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_STATEMENTS);
-		parser.setSource(source);
-		parser.setSourceRange(statement.getStartPosition(), statement.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a block", result2.getNodeType() == ASTNode.BLOCK);
-		Block block = (Block) result2;
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size());
-		Statement statement2 = (Statement) statements.get(0);
-		assertTrue(statement.subtreeMatch(new ASTMatcher(), statement2));
-		ASTNode root = statement2.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 1, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 */
-	public void test0520() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0520", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		assertNotNull("No comments", unit.getCommentList());
-		assertEquals("Wrong size", 2, unit.getCommentList().size());
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a block", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_EXPRESSION);
-		parser.setSource(source);
-		parser.setSourceRange(expression.getStartPosition(), expression.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a method invocation", result2.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		assertTrue(expression.subtreeMatch(new ASTMatcher(), result2));
-		ASTNode root = result2.getRoot();
-		assertNotNull("No root", root);
-		assertTrue("not a compilation unit", root.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) root;
-		assertEquals("wrong problem size", 0, compilationUnit.getProblems().length);
-		assertNotNull("No comments", compilationUnit.getCommentList());
-		assertEquals("Wrong size", 1, compilationUnit.getCommentList().size());
-	}
-	/**
-	 * Ensure an OperationCanceledException is correcly thrown when progress monitor is canceled
-	 * @deprecated using deprecated code
-	 */
-	public void test0521() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0521", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		
-		// count the number of time isCanceled() is called when converting this source unit
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		CancelCounter counter = new CancelCounter();
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setSource(sourceUnit);
-		parser.setResolveBindings(true);
-		parser.setWorkingCopyOwner(owner);
-		parser.createAST(counter);
-		
-		// throw an OperatonCanceledException at each point isCanceled() is called
-		for (int i = 0; i < counter.count; i++) {
-			boolean gotException = false;
-			try {
-				parser = ASTParser.newParser(AST.JLS2);
-				parser.setSource(sourceUnit);
-				parser.setResolveBindings(true);
-				parser.setWorkingCopyOwner(owner);
-				parser.createAST(new Canceler(i));
-			} catch (OperationCanceledException e) {
-				gotException = true;
-			}
-			assertTrue("Should get an OperationCanceledException (" + i + ")", gotException);
-		}
-		
-		// last should not throw an OperationCanceledException
-		parser = ASTParser.newParser(AST.JLS2);
-		parser.setSource(sourceUnit);
-		parser.setResolveBindings(true);
-		parser.setWorkingCopyOwner(owner);
-		parser.createAST(new Canceler(counter.count));
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0522() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0522", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNotNull(methodBinding);
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 2, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(1);
-		assertNotNull(node2);
-		assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNotNull("No binding", binding); //$NON-NLS-1$
-		assertTrue("wrong type", binding.getKind() == IBinding.VARIABLE); //$NON-NLS-1$
-		IVariableBinding variableBinding = (IVariableBinding) binding;
-		assertEquals("Wrong name", "a", variableBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		IBinding binding2 = simpleName2.resolveBinding();
-		assertNotNull("no binding2", binding2); //$NON-NLS-1$
-		assertTrue("Wrong type", binding2.getKind() == IBinding.METHOD); //$NON-NLS-1$
-		IFunctionBinding methodBinding2 = (IFunctionBinding) binding2;
-		assertEquals("Wrong name", "clone", methodBinding2.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0523() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0523", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 1, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 2, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(1);
-		assertNotNull(node2);
-		assertTrue("Not an expression statement", node2.getNodeType() == ASTNode.EXPRESSION_STATEMENT); //$NON-NLS-1$
-		ExpressionStatement expressionStatement = (ExpressionStatement) node2;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("Not a method invocation", expression.getNodeType() == ASTNode.FUNCTION_INVOCATION); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertTrue("Not a simple name", expression2.getNodeType() == ASTNode.SIMPLE_NAME); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		IBinding binding  = simpleName.resolveBinding();
-		assertNull("No binding", binding); //$NON-NLS-1$
-		SimpleName simpleName2 = methodInvocation.getName();
-		assertEquals("Wrong name", "clone", simpleName2.getIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0524() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0524", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0525() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0525", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertNotNull(methods);
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0526() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0526", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		IFunction[] methods = memberType.getFunctions();
-		assertEquals("wrong size", 2, methods.length);
-		IFunction method = methods[1];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "test", methodDeclaration.getName().getIdentifier());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-		assertTrue(typeBinding.isAnonymous());
-		assertEquals("Wrong name", "", typeBinding.getName());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0527() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0527", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		assertNotNull(type);
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertEquals("wrong name", "A", methodDeclaration.getName().getIdentifier());
-		assertTrue("Not a constructor", methodDeclaration.isConstructor());
-		IBinding binding = methodDeclaration.getName().resolveBinding();
-		assertNotNull(binding);
-		assertEquals("Wrong type", IBinding.METHOD, binding.getKind());
-		List statements = ((FunctionDeclaration) node).getBody().statements();
-		assertEquals("wrong size", 1, statements.size());
-		ASTNode node2 = (ASTNode) statements.get(0);
-		assertNotNull(node2);
-		assertTrue("Not an variable declaration statement", node2.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT); //$NON-NLS-1$
-		VariableDeclarationStatement statement = (VariableDeclarationStatement) node2;
-		List fragments = statement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertTrue("Not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		ITypeBinding typeBinding = classInstanceCreation.resolveTypeBinding();
-		assertNotNull(typeBinding);
-		assertTrue(typeBinding.isAnonymous());
-		assertEquals("Wrong name", "", typeBinding.getName());
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0528() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0528", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		ISourceRange sourceRange = memberType.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, true);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0529() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0529", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		IType[] memberTypes = type.getTypes();
-		assertNotNull(memberTypes);
-		assertEquals("wrong size", 1, memberTypes.length);
-		IType memberType = memberTypes[0];
-		ISourceRange sourceRange = memberType.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		assertEquals("wrong name", "B", typeDeclaration.getName().getIdentifier());
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("Wrong size", 1, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertTrue("Not a method declaration", bodyDeclaration.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0530() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0530", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 3, methods.length);
-		IFunction method = methods[2];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 2, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0531() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0531", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		IType type = classFile.getType();
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 5, methods.length);
-		IFunction method = methods[3];
-		ISourceRange sourceRange = method.getSourceRange(); 
-		ASTNode result = runConversion(AST.JLS3, classFile, sourceRange.getOffset() + sourceRange.getLength() / 2, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 2, statements.size());
-
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		expression = fragment.getInitializer();
-		assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		Initializer initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48292
-	 */
-	public void test0532() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0488", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertNotNull(types);
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IInitializer[] initializers = type.getInitializers();
-		assertEquals("wrong size", 2, initializers.length);
-		IInitializer init = initializers[1];
-		ISourceRange sourceRange = init.getSourceRange(); 
-		int position = sourceRange.getOffset() + sourceRange.getLength() / 2;
-
-		IClassFile classFile = getClassFile("Converter" , "bins", "test0532", "A.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertNotNull(classFile);
-		assertNotNull(classFile.getSource());
-		type = classFile.getType();
-		initializers = type.getInitializers();
-		assertEquals("wrong size", 0, initializers.length);
-		ASTNode result = runConversion(AST.JLS3, classFile, position, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT); //$NON-NLS-1$
-	
-		ASTNode node = getASTNode((JavaScriptUnit) result, 0, 5);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		Block block = methodDeclaration.getBody();
-		List statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	
-		node = getASTNode((JavaScriptUnit) result, 0, 4);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 0);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		Expression expression = fragment.getInitializer();
-		assertEquals("Wrong name", "field", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-	
-		node = getASTNode((JavaScriptUnit) result, 0, 1);
-		assertTrue("Not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		expression = fragment.getInitializer();
-		assertEquals("Wrong name", "i", fragment.getName().getIdentifier());
-		assertNotNull("No initializer", expression);
-	
-		node = getASTNode((JavaScriptUnit) result, 0, 2);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		Initializer initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.NONE, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 3);
-		assertTrue("Not an initializer", node.getNodeType() == ASTNode.INITIALIZER); //$NON-NLS-1$
-		initializer = (Initializer) node;
-		assertEquals("Not static", Modifier.STATIC, initializer.getModifiers());
-		block = initializer.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 1, statements.size());
-		
-		node = getASTNode((JavaScriptUnit) result, 0, 6);
-		assertTrue("Not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION); //$NON-NLS-1$
-		methodDeclaration = (FunctionDeclaration) node;
-		block = methodDeclaration.getBody();
-		statements = block.statements();
-		assertEquals("Wrong size", 0, statements.size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0533() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0533", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a method declaration", node.getNodeType() == ASTNode.FUNCTION_DECLARATION);
-		FunctionDeclaration declaration = (FunctionDeclaration) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
-		assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
-	}	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0534() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0534", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
-		FieldDeclaration declaration = (FieldDeclaration) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
-		assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=48489
-	 * @deprecated using deprecated code
-	 */
-	public void test0535() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0535", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("No node", node);
-		assertTrue("not an initializer", node.getNodeType() == ASTNode.INITIALIZER);
-		Initializer declaration = (Initializer) node;
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		parser.setSourceRange(declaration.getStartPosition(), declaration.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a compilation unit", result2.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result2;
-		assertEquals("wrong problem size", 1, compilationUnit.getProblems().length);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=47396
-	 */
-	public void test0536() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0536", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("No compilation unit", result);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
-	 */
-	public void test0537a() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("No compilation unit", result);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
-	 */
-	public void test0537b() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("No compilation unit", result);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=51089
-	 */
-	public void test0537c() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0537", "C.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertNotNull("No compilation unit", result);
-	}
-	/**
-	 * Ensures that an AST can be created during reconcile.
-	 * @deprecated using deprecated code
-	 */
-	public void test0538a() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  int i;\n" +
-				"}"
-			);
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
-			assertNotNull("No level 2 compilation unit", unit);
-			assertEquals("Compilation unit has wrong AST level (2)", AST.JLS2, unit.getAST().apiLevel());
-			// TODO improve test for AST.JLS3
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/*
-	 * Ensures that no AST is created during reconcile if not requested.
-	 */
-	public void test0538b() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  int i;\n" +
-				"}"
-			);
-			JavaScriptUnit unit = sourceUnit.reconcile(0, false, null, null);
-			assertNull("Unexpected compilation unit", unit);
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that no AST is created during reconcile if consistent.
-	 */
-	public void test0538c() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			sourceUnit.becomeWorkingCopy(null);
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
-			assertNull("Unexpected compilation unit", unit);
-			// TODO improve test for AST.JLS3
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that bindings are created during reconcile if the problem requestor is active.
-	 */
-	public void test0538d() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  Object field;\n" +
-				"}"
-			);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
-			ASTNode node = getASTNode(unit, 0, 0);
-			assertNotNull("No node", node);
-			assertTrue("Not original", isOriginal(node));
-			assertTrue("not a field declaration", node.getNodeType() == ASTNode.FIELD_DECLARATION);
-			FieldDeclaration declaration = (FieldDeclaration) node;
-			Type type = declaration.getType();
-			ITypeBinding typeBinding = type.resolveBinding();
-			assertNotNull("No type binding", typeBinding); 
-			assertEquals("Wrong name", "Object", typeBinding.getName());
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that bindings are created during reconcile if force problem detection is turned on.
-	 * @deprecated using deprecated code
-	 */
-	public void test0538e() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-			sourceUnit.becomeWorkingCopy(null);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
-			ASTNode node = getASTNode(unit, 0);
-			assertNotNull("No node", node);
-			assertTrue("not a type declaration", node.getNodeType() == ASTNode.TYPE_DECLARATION);
-			TypeDeclaration declaration = (TypeDeclaration) node;
-			ITypeBinding typeBinding = declaration.resolveBinding();
-			assertNotNull("No type binding", typeBinding); 
-			assertEquals("Wrong name", "A", typeBinding.getName());
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that bindings are created during reconcile if force problem detection is turned on.
-	 * Case of a unit containing an anonymous type.
-	 * (regression test for bug 55102 NPE when using ICU.reconcile(GET_AST_TRUE, ...))
-	 * @deprecated using deprecated code
-	 */
-	public void test0538f() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  void foo() {\n" +
-				"    new Object() {\n" +
-				"      void bar() {\n" +
-				"      }\n" +
-				"    };\n" +
-				"  }\n" +
-				"}"
-			);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
-			ASTNode node = getASTNode(unit, 0);
-			assertNotNull("No node", node);
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that bindings are created during reconcile if force problem detection is turned on.
-	 * Case of a unit containing an anonymous type.
-	 * (regression test for bug 55102 NPE when using ICU.reconcile(GET_AST_TRUE, ...))
-	 * @deprecated using deprecated code
-	 */
-	public void test0538g() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  void foo() {\n" +
-				"    new Object() {\n" +
-				"      void bar() {\n" +
-				"      }\n" +
-				"    };\n" +
-				"  }\n" +
-				"}"
-			);
-			sourceUnit.reconcile(IJavaScriptUnit.NO_AST, false/* don't force pb detection*/, null, null);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, true/*force pb detection*/, null, null);
-			ASTNode node = getASTNode(unit, 0);
-			assertNotNull("No node", node);
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * Ensures that asking for well known type doesn't throw a NPE if the problem requestor is not active.
-	 * (regression test for bug 64750 NPE in Java AST Creation - editing some random file)
-	 * @deprecated using deprecated code
-	 */
-	public void test0538h() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0538", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		try {
-			ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor() {
-                public boolean isActive() {
-                    return false;
-                }
-			};
-			sourceUnit.becomeWorkingCopy(null);
-			sourceUnit.getBuffer().setContents(
-				"package test0538;\n" +
-				"public class A {\n" +
-				"  Object field;\n" +
-				"}"
-			);
-			// TODO improve test for AST.JLS3
-			JavaScriptUnit unit = sourceUnit.reconcile(AST.JLS2, false, null, null);
-			assertEquals("Unexpected well known type", null, unit.getAST().resolveWellKnownType("void"));
-		} finally {
-			sourceUnit.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=53477
-	 */
-	public void test0539() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0539", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertNotNull("No node", node);
-		assertTrue("not an expression statement", node.getNodeType() == ASTNode.EXPRESSION_STATEMENT);
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertTrue("not a class instance creation", expression.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION);
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-		checkSourceRange(classInstanceCreation, "new A(){}.new Inner(){/*x*/}", source);
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		Expression expression2 = classInstanceCreation.getExpression();
-		assertTrue("not a class instance creation", expression2.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION);
-		ClassInstanceCreation classInstanceCreation2 = (ClassInstanceCreation) expression2;
-		AnonymousClassDeclaration anonymousClassDeclaration2 = classInstanceCreation2.getAnonymousClassDeclaration();
-		assertNotNull("No anonymous class declaration", anonymousClassDeclaration2);
-		checkSourceRange(anonymousClassDeclaration2, "{}", source);
-		assertNotNull("No anonymous class declaration", anonymousClassDeclaration);
-		checkSourceRange(anonymousClassDeclaration, "{/*x*/}", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=54431
-	 */
-	public void test0540() {
-		char[] source = 
-				("package test0540;\n" +  //$NON-NLS-1$
-				"\n" +  //$NON-NLS-1$
-				"class Test {\n" +  //$NON-NLS-1$
-				"	public void foo(int arg) {\n" +//$NON-NLS-1$
-				"		assert true;\n" +//$NON-NLS-1$
-				"	}\n" +  //$NON-NLS-1$
-				"}").toCharArray(); //$NON-NLS-1$
-		IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
-		Map options = project.getOptions(true);
-		options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-		options.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_4);
-		options.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_4);
-		ASTNode result = runConversion(AST.JLS3, source, "Test.js", project, options, true); //$NON-NLS-1$
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertEquals("Problems found", 0, compilationUnit.getProblems().length);
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNotNull("No type binding", typeBinding); //$NON-NLS-1$
-		assertEquals("Wrong name", "Test", typeBinding.getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong package", "test0540", typeBinding.getPackage().getName()); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Not an interface", typeBinding.isClass()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=56697
-	 */
-	public void test0541() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0541", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-		class Change14FieldAccessASTVisitor extends ASTVisitor {
-			int counter;
-			Change14FieldAccessASTVisitor() {
-				counter = 0;
-			}
-			public void endVisit(QualifiedName qualifiedName) {
-				IBinding i_binding = qualifiedName.getQualifier().resolveBinding();						
-				ITypeBinding type_binding = qualifiedName.getQualifier().resolveTypeBinding();
-				if (i_binding == null || type_binding == null) {
-					counter++;
-				}
-			}
-		}
-		Change14FieldAccessASTVisitor visitor = new Change14FieldAccessASTVisitor();
-		unit.accept(visitor);
-		assertEquals("Missing binding", 0, visitor.counter);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55004
-	 */
-	public void test0542() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0542", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "STRING_FIELD", variableBinding.getName());
-		Object constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", "Hello world!", constantValue);
-		Expression initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "\"Hello world!\"", source);
-
-		node = getASTNode(unit, 0, 1);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "BOOLEAN_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Boolean(true), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "true", source);
-
-		node = getASTNode(unit, 0, 2);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "BYTE_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Byte((byte)1), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "1", source);
-
-		node = getASTNode(unit, 0, 3);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "CHAR_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Character('{'), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "\'{\'", source);
-
-		node = getASTNode(unit, 0, 4);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "DOUBLE_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Double("3.1415"), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "3.1415", source);
-		
-		node = getASTNode(unit, 0, 5);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "FLOAT_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Float("3.14159f"), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "3.14159f", source);
-
-		node = getASTNode(unit, 0, 6);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "INT_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", Integer.valueOf("7fffffff", 16), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "Integer.MAX_VALUE", source);
-		
-		node = getASTNode(unit, 0, 7);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "LONG_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Long("34"), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "34L", source);
-		
-		node = getASTNode(unit, 0, 8);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "SHORT_FIELD", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant", constantValue);
-		assertEquals("Wrong value", new Short("130"), constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "130", source);
-		
-		node = getASTNode(unit, 0, 9);
-		assertTrue("not a field declaration", node instanceof FieldDeclaration); //$NON-NLS-1$
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		assertEquals("Wrong name", "int_field", variableBinding.getName());
-		constantValue = variableBinding.getConstantValue();
-		assertNull("Got a constant", constantValue);
-		initializer = fragment.getInitializer();
-		assertNotNull("No initializer", initializer);
-		checkSourceRange(initializer, "Integer.MAX_VALUE", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=58436
-	 */
-	public void test0543() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0543", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		unit.accept(new GetKeyVisitor());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51500
-	 */
-	public void test0544() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0544", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		assertTrue("Not an abstract method", (methodDeclaration.getModifiers() & Modifier.ABSTRACT) != 0);
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		assertNotNull("No binding", methodBinding);
-		assertTrue("Not an abstract method binding", (methodBinding.getModifiers() & Modifier.ABSTRACT) != 0);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59843
-	 */
-	public void test0545() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0545", "First.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0545/First$Test;", typeBinding.getKey());
-		
-		sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Second.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		result = runConversion(AST.JLS3, sourceUnit, true);
-		unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		node = getASTNode(unit, 0, 0);
-		assertEquals("not a method declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		typeDeclaration = (TypeDeclaration) node;
-		typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0545/Second$Test;", typeBinding.getKey());
-		
-		sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Third.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		result = runConversion(AST.JLS3, sourceUnit, true);
-		unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		node = getASTNode(unit, 0, 0);
-		assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		typeDeclaration = (TypeDeclaration) node;
-		typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0545/Third$Test;", typeBinding.getKey());
-
-	
-		sourceUnit = getCompilationUnit("Converter", "src", "test0545", "Test.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		result = runConversion(AST.JLS3, sourceUnit, true);
-		unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		node = getASTNode(unit, 0);
-		assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		typeDeclaration = (TypeDeclaration) node;
-		typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0545/Test;", typeBinding.getKey());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59848
-	 */
-	public void test0546() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0546", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 0, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 1, 0, 0);
-		assertEquals("not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
-		VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) node;
-		List fragments = variableDeclarationStatement.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		ITypeBinding typeBinding = variableBinding.getType();
-		assertTrue("An anonymous type binding", !typeBinding.isAnonymous());
-		Expression initializer = fragment.getInitializer();
-		assertEquals("not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, initializer.getNodeType()); //$NON-NLS-1$
-		ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) initializer;
-		AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-		ITypeBinding typeBinding2 = anonymousClassDeclaration.resolveBinding();
-		assertTrue("Not an anonymous type binding", typeBinding2.isAnonymous());
-		ITypeBinding typeBinding3 = classInstanceCreation.resolveTypeBinding();
-		assertTrue("Not an anonymous type binding", typeBinding3.isAnonymous());
-		node = getASTNode(unit, 1, 0, 1);
-		assertEquals("not a expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
-		ExpressionStatement statement = (ExpressionStatement) node;
-		Expression expression = statement.getExpression();
-		assertEquals("not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType()); //$NON-NLS-1$
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		assertEquals("not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType()); //$NON-NLS-1$
-		SimpleName simpleName = (SimpleName) expression2;
-		ITypeBinding typeBinding4 = simpleName.resolveTypeBinding();
-		assertTrue("An anonymous type binding", !typeBinding4.isAnonymous());		
-		Type type = classInstanceCreation.getType();
-		IBinding binding = type.resolveBinding();
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind());
-		ITypeBinding typeBinding5 = (ITypeBinding) binding;
-		assertTrue("An anonymous type binding", !typeBinding5.isAnonymous());		
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60078
-	 */
-	public void test0547() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0547", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertEquals("Wrong number of problems", 1, unit.getProblems().length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType()); //$NON-NLS-1$
-		TypeDeclarationStatement typeDeclarationStatement = (TypeDeclarationStatement) node;
-		AbstractTypeDeclaration typeDeclaration = typeDeclarationStatement.getDeclaration();
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertEquals("Wrong key", "Ltest0547/A$74$Local;", typeBinding.getKey());
-		
-		List bodyDeclarations = typeDeclaration.bodyDeclarations();
-		assertEquals("wrong size", 3, bodyDeclarations.size());
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-		assertEquals("not a type declaration statement", ASTNode.TYPE_DECLARATION, bodyDeclaration.getNodeType()); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration2 = (TypeDeclaration) bodyDeclaration;
-		
-		typeBinding = typeDeclaration2.resolveBinding();
-		assertEquals("Wrong key", "Ltest0547/A$100$LocalMember;", typeBinding.getKey());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60581
-	 */
-	public void test0548() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0548", "PaletteStackEditPart.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48502
-	 */
-	public void test0549() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0549", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48502
-	 */
-	public void test0550() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0550", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60848
-	 */
-	public void test0551() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0551", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 1, problems.length); //$NON-NLS-1$
-		IProblem problem = problems[0];
-		assertEquals("wrong end position", source.length - 1, problem.getSourceEnd());
-	}
-	
-	public void test0552() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0552", "Test.js");
-		char[] source = sourceUnit.getSource().toCharArray();
-		JavaScriptUnit result = (JavaScriptUnit) runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("Got errors", 0, result.getProblems().length);
-		TypeDeclaration declaration = (TypeDeclaration) result.types().get(0);
-		Block body = declaration.getMethods()[0].getBody();
-		ExpressionStatement expr = (ExpressionStatement) body.statements().get(0);
-		FunctionInvocation invocation = (FunctionInvocation) expr.getExpression();
-		InfixExpression node = (InfixExpression) invocation.arguments().get(0);
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
-		checkSourceRange(node, "\"a\" + \"a\" + \"a\"", source);
-		List extendedOperands = node.extendedOperands();
-		assertEquals("Wrong size", 1, extendedOperands.size());
-		Expression leftOperand = node.getLeftOperand();
-		checkSourceRange(leftOperand, "\"a\"", source);
-		typeBinding = leftOperand.resolveTypeBinding();
-		assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
-		Expression rightOperand = node.getRightOperand();
-		checkSourceRange(rightOperand, "\"a\"", source);
-		typeBinding = rightOperand.resolveTypeBinding();
-		assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
-		Expression expression = (Expression) extendedOperands.get(0);
-		checkSourceRange(expression, "\"a\"", source);
-		typeBinding = expression.resolveTypeBinding();
-		assertEquals("wrong type", "java.lang.String", typeBinding.getQualifiedName());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
-	 */
-	public void test0553() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0553", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		assertNotNull("No binding", variableBinding);
-		Object constantValue = variableBinding.getConstantValue();
-		assertNull("Got a constant value", constantValue);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
-	 */
-	public void test0554() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0554", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		checkSourceRange(expression2, "A", source);
-		ITypeBinding typeBinding = expression2.resolveTypeBinding();
-		assertEquals("wrong type", "test0554.A", typeBinding.getQualifiedName());
-		IVariableBinding[] fields = typeBinding.getDeclaredFields();
-		assertEquals("Wrong size", 1, fields.length);
-		IVariableBinding variableBinding = fields[0];
-		Object constantValue = variableBinding.getConstantValue();
-		assertNotNull("Missing constant", constantValue);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61946
-	 */
-	public void test0555() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0555", "B.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-		ReturnStatement returnStatement = (ReturnStatement) node;
-		Expression expression = returnStatement.getExpression();
-		assertNotNull("No expression", expression);
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) expression;
-		Name name = qualifiedName.getQualifier();
-		checkSourceRange(name, "A", source);
-		ITypeBinding typeBinding = name.resolveTypeBinding();
-		assertEquals("wrong type", "test0555.A", typeBinding.getQualifiedName());
-		IVariableBinding[] fields = typeBinding.getDeclaredFields();
-		assertEquals("Wrong size", 1, fields.length);
-		IVariableBinding variableBinding = fields[0];
-		Object constantValue = variableBinding.getConstantValue();
-		assertNotNull("No constant value", constantValue);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=62463
-	 */
-	public void test0556() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0556", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		checkSourceRange(expression2, "(aa.bar())", source);
-		SimpleName simpleName = methodInvocation.getName();
-		checkSourceRange(simpleName, "size", source);
-		checkSourceRange(expression, "(aa.bar()).size()", source);
-		checkSourceRange(expressionStatement, "(aa.bar()).size();", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=62463
-	 */
-	public void test0557() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0557", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 1, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertEquals("Not an method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		Expression expression2 = methodInvocation.getExpression();
-		checkSourceRange(expression2, "(aa.bar())", source);
-		SimpleName simpleName = methodInvocation.getName();
-		checkSourceRange(simpleName, "get", source);
-		checkSourceRange(expression, "(aa.bar()).get(0)", source);
-		checkSourceRange(expressionStatement, "(aa.bar()).get(0);", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65090
-	 * @deprecated using deprecated code
-	 */
-	public void test0558() {
-		String src = "\tSystem.out.println(\"Hello\");\n\tSystem.out.println(\"World\");\n";
-		char[] source = src.toCharArray();
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setKind (ASTParser.K_STATEMENTS);
-		parser.setSource (source);
-		ASTNode result = parser.createAST (null);
-		assertNotNull("no result", result);
-		assertEquals("Wrong type", ASTNode.BLOCK, result.getNodeType());
-		Block block = (Block) result;
-		List statements = block.statements();
-		assertNotNull("No statements", statements);
-		assertEquals("Wrong size", 2, statements.size());
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0559() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0559", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
-		checkSourceRange(expression4, "\" \"", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0560() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0560", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
-		checkSourceRange(expression4, "\" \"", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0561() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0561", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
-		checkSourceRange(expression4, "\" \"", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0562() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0562", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, expression4.getNodeType());
-		checkSourceRange(expression4, "\" \"", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0563() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0563", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression4, "new String()", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0564() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0564", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression4, "new String()", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65562
-	 */
-	public void test0565() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0565", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertEquals("Wrong type", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Wrong type", ASTNode.INFIX_EXPRESSION, expression.getNodeType());
-		InfixExpression infixExpression = (InfixExpression) expression;
-		Expression expression2 = infixExpression.getLeftOperand();
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression2.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression2;
-		Expression expression3 = methodInvocation.getExpression();
-		assertEquals("Wrong type", ASTNode.PARENTHESIZED_EXPRESSION, expression3.getNodeType());
-		ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression3;
-		Expression expression4 = parenthesizedExpression.getExpression();
-		checkSourceRange(expression4, "(/**/ String /**/) new String()", source);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=69349
-	 */
-	public void test0566() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0566", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		assertEquals("Wrong character", '}', source[node.getStartPosition() + node.getLength() - 1]);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=69349
-	 */
-	public void test0567() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0567", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		assertEquals("Wrong character", '}', source[node.getStartPosition() + node.getLength() - 1]);
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=70398
-	 */
-	public void test0568() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0568", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=70398
-	 */
-	public void test0570() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0570", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * No binding when there is no unit name set
-	 */
-	public void test0571() throws JavaScriptModelException {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		String source = "public class A {public boolean foo() {}}";
-		parser.setSource(source.toCharArray());
-		parser.setProject(getJavaProject("Converter"));
-		// no unit name parser.setUnitName("A");
-		parser.setResolveBindings(true);
-		ASTNode node = parser.createAST(null);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) node;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * No binding when there is no unit name set
-	 */
-	public void test0572() throws JavaScriptModelException {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		String source = "public class A {public boolean foo() {}}";
-		parser.setSource(source.toCharArray());
-		parser.setProject(getJavaProject("Converter"));
-		parser.setUnitName("A");
-		parser.setResolveBindings(true);
-		ASTNode node = parser.createAST(null);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) node;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 1, problems.length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77968
-	 */
-	public void test0573() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0573", "Z.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String source = sourceUnit.getSource();
-		int pos = source.indexOf("his.ba");
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, pos, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("Missing node", node);
-		assertEquals("Wrong type", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement expressionStatement = (ExpressionStatement) node;
-		Expression expression = expressionStatement.getExpression();
-		assertNotNull("Missing node", expression);
-		assertEquals("Wrong type", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 1, problems.length); //$NON-NLS-1$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78735
-	 */
-	public void test0574() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0574", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 0);
-		assertNotNull("Missing node", node);
-		assertEquals("Wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding = fragment.resolveBinding();
-		node = getASTNode(unit, 0, 1, 0);
-		assertNotNull("Missing node", node);
-		assertEquals("Wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
-		fieldDeclaration = (FieldDeclaration) node;
-		fragments = fieldDeclaration.fragments();
-		assertEquals("Wrong size", 1, fragments.size());
-		fragment = (VariableDeclarationFragment) fragments.get(0);
-		IVariableBinding variableBinding2 = fragment.resolveBinding();
-		assertFalse("are Equals", variableBinding.isEqualTo(variableBinding2));
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78735
-	 */
-	public void test0575() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0575", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		final IProblem[] problems = unit.getProblems();
-		assertEquals("Wrong number of problems", 0, problems.length); //$NON-NLS-1$
-		ASTNode node = getASTNode(unit, 0, 2);
-		assertNotNull("Missing node", node);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-		node = getASTNode(unit, 0, 1, 1);
-		assertNotNull("Missing node", node);
-		assertEquals("Wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		methodDeclaration = (FunctionDeclaration) node;
-		IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-		assertFalse("are Equals", methodBinding.isEqualTo(methodBinding2));
-	}
-	
-//	/**
-//	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78740
-//	 * @deprecated marked deprecated to suppress JDOM-related deprecation warnings
-//	 */
-//	public void test0576() throws JavaScriptModelException {
-//		org.eclipse.wst.jsdt.core.jdom.DOMFactory factory = new org.eclipse.wst.jsdt.core.jdom.DOMFactory();
-//		org.eclipse.wst.jsdt.core.jdom.IDOMCompilationUnit domCompilationUnit = factory.createCompilationUnit(
-//				"package x; /** @model */ interface X  {}", "NAME");
-//		org.eclipse.wst.jsdt.core.jdom.IDOMType domType = (org.eclipse.wst.jsdt.core.jdom.IDOMType) domCompilationUnit.getFirstChild().getNextNode();
-//		assertTrue("Not an interface", Flags.isInterface(domType.getFlags()));
-//		domType.getComment();
-//		assertTrue("Not an interface", Flags.isInterface(domType.getFlags()));
-//	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77645
-	 */
-	public void test0578() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0578", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 0);
-		unit.accept(new ASTVisitor() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#visit(org.eclipse.wst.jsdt.core.dom.SingleVariableDeclaration)
-			 */
-			public boolean visit(SingleVariableDeclaration node) {
-				IVariableBinding binding = node.resolveBinding();
-				assertNotNull("No method", binding.getDeclaringMethod());
-				return false;
-			}
-			/* (non-Javadoc)
-			 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#visit(org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment)
-			 */
-			public boolean visit(VariableDeclarationFragment node) {
-				IVariableBinding binding = node.resolveBinding();
-				ASTNode parent = node.getParent();
-				if (parent != null && binding != null) {
-					final IFunctionBinding declaringMethod = binding.getDeclaringMethod();
-					final String variableBindingName = binding.getName();
-					switch(parent.getNodeType()) {
-						case ASTNode.FIELD_DECLARATION :
-							assertNull("Got a method", declaringMethod);
-							break;
-						default :
-							if (variableBindingName.equals("var1")
-									|| variableBindingName.equals("var2")) {
-								assertNull("Got a method", declaringMethod);
-							} else {
-								assertNotNull("No method", declaringMethod);
-								String methodName = declaringMethod.getName();
-								if (variableBindingName.equals("var4")) {
-									assertEquals("Wrong method", "foo", methodName);
-								} else if (variableBindingName.equals("var5")) {
-									assertEquals("Wrong method", "foo2", methodName);
-								} else if (variableBindingName.equals("var7")) {
-									assertEquals("Wrong method", "foo3", methodName);
-								} else if (variableBindingName.equals("var8")) {
-									assertEquals("Wrong method", "X", methodName);
-								} else if (variableBindingName.equals("var9")) {
-									assertEquals("Wrong method", "bar3", methodName);
-								} else if (variableBindingName.equals("var10")) {
-									assertEquals("Wrong method", "bar3", methodName);
-								} else if (variableBindingName.equals("var11")) {
-									assertEquals("Wrong method", "X", methodName);
-								} 
-							}
-					}
-				}
-				return false;
-			}
-			/* (non-Javadoc)
-			 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#visit(org.eclipse.wst.jsdt.core.dom.FieldAccess)
-			 */
-			public boolean visit(FieldAccess node) {
-				IVariableBinding binding = node.resolveFieldBinding();
-				assertNull("No method", binding.getDeclaringMethod());
-				return false;
-			}
-			/* (non-Javadoc)
-			 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.SuperFieldAccess)
-			 */
-			public boolean visit(SuperFieldAccess node) {
-				IVariableBinding binding = node.resolveFieldBinding();
-				assertNull("No method", binding.getDeclaringMethod());
-				return false;
-			}
-		});
-	}
-	
-//	/**
-//	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77984
-//	 * @deprecated
-//	 */
-//	public void test0579() throws JavaScriptModelException {
-//		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0579", "ParserTask.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-//		ASTNode result = AST.parseCompilationUnit(sourceUnit, true);
-//		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-//		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-//		ASTNode node = getASTNode(compilationUnit, 0);
-//		assertEquals("not a type declaration", ASTNode.TYPE_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-//		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-//		assertEquals("Wrong number of body declarations", 3, typeDeclaration.bodyDeclarations().size());
-//	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79953
-	 */
-	public void test0580() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy("/Converter/src/p/X.js", true/*resolve*/);
-			String source = "package p;\n" +
-			"public class X {\n" +
-			"	d String[][]tab;\n" +
-			"}";
-			ASTNode node = buildAST(
-				source,
-				workingCopy,
-				false);
-			assertEquals("wrong type", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			node = getASTNode(compilationUnit, 0, 0);
-			assertEquals("wrong type", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-			checkSourceRange(fieldDeclaration, "d String[][]", source.toCharArray());
-			Type type = fieldDeclaration.getType();
-			assertTrue("Not a simple type", type.isSimpleType());
-			List fragments = fieldDeclaration.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			assertEquals("Wrong extended dimensions", 2, fragment.getExtraDimensions());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=80041
-	 */
-	public void test0581() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy("/Converter/src/p/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				"package p;\n" +
-				"public class X {\n" +
-				"    void m(Object obj) {}\n" +
-				"    void foo(Object obj) {}\n" +
-				"}",
-				workingCopy);
-			assertEquals("wrong type", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			node = getASTNode(compilationUnit, 0, 0);
-			assertEquals("wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			List parameters = methodDeclaration.parameters();
-			SingleVariableDeclaration variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-			IVariableBinding variableBinding = variableDeclaration.resolveBinding();
-			node = getASTNode(compilationUnit, 0, 1);
-			assertEquals("wrong type", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			methodDeclaration = (FunctionDeclaration) node;
-			parameters = methodDeclaration.parameters();
-			variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-			IVariableBinding variableBinding2 = variableDeclaration.resolveBinding();
-			assertFalse("Bindings are equal", variableBinding.isEqualTo(variableBinding2));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=80338
-	 */
-	// TODO (jerome) remove this test as it has nothing to do on ASTConverterTest and it is a dup of ExistenceTests#testMethodWithInvalidParameter()
-	public void test0582() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0582", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IType[] types = sourceUnit.getTypes();
-		assertEquals("wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction[] methods = type.getFunctions();
-		assertEquals("wrong size", 1, methods.length);
-		IFunction method = methods[0];
-		assertEquals("wrong number", 1, method.getNumberOfParameters());
-		assertEquals("wrong signature", "([[I)[[[[[I", method.getSignature());
-		assertEquals("wrong return type", "[[[[[I", method.getReturnType());
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0583() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\000\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\000', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0584() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\u0020\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", 32, literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0585() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\b\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\b', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0586() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\t\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\t', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0587() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\n\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\n', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0588() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\f\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\f', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0589() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\r\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\r', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0590() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\\"\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\"', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0591() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\'\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\'', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0592() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\\\\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\\', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0593() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\077\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a return statement", ASTNode.RETURN_STATEMENT, node.getNodeType());
-			ReturnStatement statement = (ReturnStatement) node;
-			Expression expression = statement.getExpression();
-			assertEquals("Not a character literal", ASTNode.CHARACTER_LITERAL, expression.getNodeType());
-			CharacterLiteral literal = (CharacterLiteral) expression;
-			assertEquals("Wrong character", '\077', literal.charValue());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82616
-	 */
-	public void test0594() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	private char nextChar() {\n" +
-				"		return \'\\777\';\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 1, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			assertTrue("not malformed", isMalformed(methodDeclaration));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82985
-	 */
-	public void test0595() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0595", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(result);
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		assertProblemsSize(compilationUnit, 0);
-		List imports = compilationUnit.imports();
-		assertEquals("Wrong size", 1, imports.size());
-		ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
-		IBinding binding = importDeclaration.resolveBinding();
-		assertNotNull("No binding", binding);
-		assertEquals("Wrong type", IBinding.TYPE, binding.getKind());
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83098
-	 */
-	public void test0596() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	void m(String[] args) {\n" +
-				"		for (int i= 0; i < args.length; i++) {\n" +
-				"			String string= args[i];\n" +
-				"		}\n" +
-				"		for (int i= 0; i < args.length; i++) {\n" +
-				"			String string= args[i];\n" +
-				"		}\n" +
-				"	}\n" +
-				"}\n";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertEquals("Got problems", 0, compilationUnit.getProblems().length);
-			node = getASTNode(compilationUnit, 0, 0, 0);
-			assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
-			ForStatement forStatement = (ForStatement) node;
-			Statement action = forStatement.getBody();
-			assertEquals("Not a block", ASTNode.BLOCK, action.getNodeType());
-			Block block = (Block) action;
-			List statements = block.statements();
-			assertEquals("Wrong size", 1, statements.size());
-			Statement statement = (Statement) statements.get(0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement.getNodeType());
-			VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement;
-			List fragments = variableDeclarationStatement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			IVariableBinding variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			
-			node = getASTNode(compilationUnit, 0, 0, 1);
-			assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
-			forStatement = (ForStatement) node;
-			action = forStatement.getBody();
-			assertEquals("Not a block", ASTNode.BLOCK, action.getNodeType());
-			block = (Block) action;
-			statements = block.statements();
-			assertEquals("Wrong size", 1, statements.size());
-			statement = (Statement) statements.get(0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement.getNodeType());
-			variableDeclarationStatement = (VariableDeclarationStatement) statement;
-			fragments = variableDeclarationStatement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			fragment = (VariableDeclarationFragment) fragments.get(0);
-			IVariableBinding variableBinding2 = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding2);
-			
-			assertFalse("Bindings are equals", variableBinding.isEqualTo(variableBinding2));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83210
-	 */
-	public void test0597() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0597", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode node = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(node);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-		assertProblemsSize(compilationUnit, 0);
-		node = getASTNode(compilationUnit, 0, 0, 0);
-		assertEquals("Not an if statement", ASTNode.IF_STATEMENT, node.getNodeType());
-		IfStatement ifStatement = (IfStatement) node;
-		Expression expression = ifStatement.getExpression();
-		assertEquals("Not an instanceof expression", ASTNode.INSTANCEOF_EXPRESSION, expression.getNodeType());
-		InstanceofExpression instanceofExpression = (InstanceofExpression) expression;
-		Type type = instanceofExpression.getRightOperand();
-		assertEquals("Not a simple type", ASTNode.SIMPLE_TYPE, type.getNodeType());
-		SimpleType simpleType = (SimpleType) type;
-		Name name = simpleType.getName();
-		assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
-		SimpleName simpleName = (SimpleName) name;
-		ITypeBinding typeBinding = simpleName.resolveTypeBinding();
-		
-		List imports = compilationUnit.imports();
-		assertEquals("Wrong size", 2, imports.size());
-		ImportDeclaration importDeclaration = (ImportDeclaration) imports.get(0);
-		name = importDeclaration.getName();
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, name.getNodeType());
-		QualifiedName qualifiedName = (QualifiedName) name;
-		simpleName = qualifiedName.getName();
-		ITypeBinding typeBinding2 = simpleName.resolveTypeBinding();
-		
-		assertTrue("not identical", typeBinding == typeBinding2);
-		assertTrue("not identical", typeBinding.isEqualTo(typeBinding2));
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=84778
-	 */
-	public void test0598() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	int m(int i) {\n" +
-				"		return /*start*/1 + 2 + ++i/*end*/;\n" +
-				"	}\n" +
-				"}\n";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, node.getNodeType());
-			assertEquals("Wrong debug string", "1 + 2 + ++i", node.toString());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=86541
-	 */
-	public void test0599() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0599", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode node = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(node);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-		String expectedResult = 
-			"The hierarchy of the type X is inconsistent\n" + 
-			"The type test0599.Zork2 cannot be resolved. It is indirectly referenced from required .class files";
-		assertProblemsSize(compilationUnit, 2, expectedResult);
-		compilationUnit.accept(new ASTVisitor() {
-			public void endVisit(FunctionDeclaration methodDeclaration) {
-				Block body = methodDeclaration.getBody();
-				assertNotNull("No body", body);
-				assertTrue("No statements", body.statements().size() != 0);
-			}
-		});
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=87777
-	 */
-	public void test0600() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0600", "Try.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode node = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(node);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-		assertProblemsSize(compilationUnit, 0);
-		node = getASTNode(compilationUnit, 0, 0, 0);
-		assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement statement = (ExpressionStatement) node;
-		Expression expression = statement.getExpression();
-		assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-		FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-		IFunctionBinding methodBinding = methodInvocation.resolveMethodBinding().getMethodDeclaration();
-		
-		sourceUnit = getCompilationUnit("Converter" , "src", "test0600", "C.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		node = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(node);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		compilationUnit = (JavaScriptUnit) node;
-		assertProblemsSize(compilationUnit, 0);
-		node = getASTNode(compilationUnit, 0, 0);
-		assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-		FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-		IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding().getMethodDeclaration();
-		
-		assertTrue("Not equals", methodBinding.isEqualTo(methodBinding2));
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=89014
-	 */
-	public void test0601() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	Runnable one= new Runnable(){\n" +
-				"		public void run() {\n" +
-				"		}\n" +
-				"	};\n" +
-				"	Runnable two= new Runnable(){\n" +
-				"		public void run() {\n" +
-				"		}\n" +
-				"	};\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertProblemsSize(compilationUnit, 0);
-			node = getASTNode(compilationUnit, 0, 0);
-			assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-			List fragments = fieldDeclaration.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression expression = fragment.getInitializer();
-			assertEquals("Not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, expression.getNodeType());
-			ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) expression;
-			AnonymousClassDeclaration anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-			assertNotNull("No anonymous", anonymousClassDeclaration);
-			List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-			assertEquals("Wrong size", 1, bodyDeclarations.size());
-			BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-			IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-			
-			node = getASTNode(compilationUnit, 0, 1);
-			assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			fieldDeclaration = (FieldDeclaration) node;
-			fragments = fieldDeclaration.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			fragment = (VariableDeclarationFragment) fragments.get(0);
-			expression = fragment.getInitializer();
-			assertEquals("Not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, expression.getNodeType());
-			classInstanceCreation = (ClassInstanceCreation) expression;
-			anonymousClassDeclaration = classInstanceCreation.getAnonymousClassDeclaration();
-			assertNotNull("No anonymous", anonymousClassDeclaration);
-			bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-			assertEquals("Wrong size", 1, bodyDeclarations.size());
-			bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
-			methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-			IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-			
-			assertFalse("Bindings are equals", methodBinding.isEqualTo(methodBinding2));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=70526
-	 */
-	public void test0602() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0602", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode node = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(node);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-		assertProblemsSize(compilationUnit, 0);
-		compilationUnit.accept(new ASTVisitor() {
-			public boolean visit(StringLiteral stringLiteral) {
-				assertTrue("Wrong start position", stringLiteral.getStartPosition() != 0);
-				assertTrue("Wrong length", stringLiteral.getLength() != -1);
-				return false;
-			}
-		});
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=91098
-	 */
-	public void test0603() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0603", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode node = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(node);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-		assertProblemsSize(compilationUnit, 0);
-		assertProblemsSize(compilationUnit, 0);
-		compilationUnit.accept(new ASTVisitor() {
-			public boolean visit(SimpleType type) {
-				assertFalse("start cannot be -1", type.getStartPosition() == -1);
-				assertFalse("length cannot be 0", type.getLength() == 0);
-				return false;
-			}
-			public boolean visit(ArrayType type) {
-				assertFalse("start cannot be -1", type.getStartPosition() == -1);
-				assertFalse("length cannot be 0", type.getLength() == 0);
-				return true;
-			}
-		});
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=91098
-	 */
-	public void test0604() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0604", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode node = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(node);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-		assertProblemsSize(compilationUnit, 0);
-		assertProblemsSize(compilationUnit, 0);
-		compilationUnit.accept(new ASTVisitor() {
-			public boolean visit(SimpleType type) {
-				assertFalse("start cannot be -1", type.getStartPosition() == -1);
-				assertFalse("length cannot be 0", type.getLength() == 0);
-				return false;
-			}
-			public boolean visit(ArrayType type) {
-				assertFalse("start cannot be -1", type.getStartPosition() == -1);
-				assertFalse("length cannot be 0", type.getLength() == 0);
-				return true;
-			}
-		});
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=92059
-	 * check resolvedType binding from variable ref (of array type)
-	 */
-	public void test0605() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0605", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode node = runJLS3Conversion(sourceUnit, true, false);
-		assertNotNull(node);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-		assertProblemsSize(compilationUnit, 0);
-		node = getASTNode(compilationUnit, 0, 0, 1);
-		assertEquals("Not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		VariableDeclarationStatement varDecl = (VariableDeclarationStatement) node;
-		List fragments = varDecl.fragments();
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);		
-		Expression expression = fragment.getInitializer();
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
-		IBinding arraylength = ((QualifiedName)expression).resolveBinding();
-		IJavaScriptElement element = arraylength.getJavaElement();		
-		assertNull("Shouldn't be binding for arraylength", element);
-		Name name = ((QualifiedName) expression).getQualifier();
-		assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
-		ITypeBinding binding = name.resolveTypeBinding();
-		assertNotNull("No binding", binding);
-		assertTrue("No array", binding.isArray());
-
-		node = getASTNode(compilationUnit, 0, 0, 4);
-		assertEquals("Not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		varDecl = (VariableDeclarationStatement) node;
-		fragments = varDecl.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);		
-		expression = fragment.getInitializer();
-		assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
-		name = ((QualifiedName) expression).getQualifier();
-		assertEquals("Not a simple name", ASTNode.QUALIFIED_NAME, name.getNodeType());
-		name = ((QualifiedName) name).getName();
-		assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
-		ITypeBinding binding2 = name.resolveTypeBinding();
-		assertNotNull("No binding", binding2);
-		assertTrue("No array", binding2.isArray());
-		
-		assertEquals("Not same binding", binding, binding2);
-
-		node = getASTNode(compilationUnit, 0, 0, 2);
-		assertEquals("Not a variable declaration", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-		varDecl = (VariableDeclarationStatement) node;
-		fragments = varDecl.fragments();
-		fragment = (VariableDeclarationFragment) fragments.get(0);		
-		expression = fragment.getInitializer();
-		assertEquals("Not a qualified name", ASTNode.FIELD_ACCESS, expression.getNodeType());
-		expression = ((FieldAccess) expression).getExpression();
-		assertEquals("Not a simple name", ASTNode.FIELD_ACCESS, expression.getNodeType());
-		name = ((FieldAccess) expression).getName();
-		assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, name.getNodeType());
-		ITypeBinding binding3 = name.resolveTypeBinding();
-		assertNotNull("No binding", binding3);
-		assertTrue("No array", binding3.isArray());
-
-		assertEquals("Not same binding", binding, binding3);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=89014
-	 */
-	public void test0606() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"  public static void main(String[] args) {\n" +
-				"    int i = 0;\n" +
-				"    i += 1;\n" +
-				"    String s = \"\";\n" +
-				"    s += \"hello world\";\n" +
-				"    System.out.println(i+s);\n" +
-				"  }\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-			assertProblemsSize(compilationUnit, 0);
-			node = getASTNode(compilationUnit, 0, 0, 1);
-			assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-			Expression expression = ((ExpressionStatement) node).getExpression();
-			assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-			Assignment assignment = (Assignment) expression;
-			assertEquals("Wrong operator", Assignment.Operator.PLUS_ASSIGN, assignment.getOperator());
-			ITypeBinding typeBinding = assignment.resolveTypeBinding();
-			assertNotNull("No binding", typeBinding);
-			assertEquals("Wrong type", "int", typeBinding.getQualifiedName());
-			
-			node = getASTNode(compilationUnit, 0, 0, 3);
-			assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-			expression = ((ExpressionStatement) node).getExpression();
-			assertEquals("Not an assignment", ASTNode.ASSIGNMENT, expression.getNodeType());
-			assignment = (Assignment) expression;
-			assertEquals("Wrong operator", Assignment.Operator.PLUS_ASSIGN, assignment.getOperator());
-			typeBinding = assignment.resolveTypeBinding();
-			assertNotNull("No binding", typeBinding);
-			assertEquals("Wrong type", "java.lang.String", typeBinding.getQualifiedName());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=95262
-	 */
-	public void test0607() throws JavaScriptModelException {
-		final char[] source = "private static Category[] values = new Category[]{v1, v2, v3};".toCharArray();
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-		parser.setSource(source);
-		ASTNode root = parser.createAST(null);
-		assertNotNull("cannot be null", root);
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=96698
-	 */
-	public void test0608() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"  public static void main(String[] args) {\n" +
-				"    for (int /*start*/i = 0/*end*/; i < args.length; i++) {\n" +
-				"		System.out.println(args[i]);\n" +
-				"	 }\n" +
-				"  }\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a variable declaration fragment", ASTNode.VARIABLE_DECLARATION_FRAGMENT, node.getNodeType());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) node;
-			IVariableBinding variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			IJavaScriptElement javaElement = variableBinding.getJavaElement();
-			assertNotNull("No java element", javaElement);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=96698
-	 */
-	public void test0609() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"  public static void main(String[] args) {\n" +
-				"    int /*start*/i = 0/*end*/;\n" +
-				"	 System.out.println(i);\n" +
-				"  }\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a variable declaration fragment", ASTNode.VARIABLE_DECLARATION_FRAGMENT, node.getNodeType());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) node;
-			IVariableBinding variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			IJavaScriptElement javaElement = variableBinding.getJavaElement();
-			assertNotNull("No java element", javaElement);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=98088
-	 */
-	public void test0610() throws JavaScriptModelException {
-		final IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0610", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		final ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 1, "The type Test is deprecated");
-	}
-	
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=96698
-	 */
-	public void test0611() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"abstract class SearchPattern {\n" +
-				"}\n" +
-				"class InternalSearchPattern extends SearchPattern {\n" +
-				"	boolean mustResolve;\n" +
-				"}\n" +
-				"public class X {\n" +
-				"	public static final int POSSIBLE_MATCH = 0;\n" +
-				"	public static final int ACCURATE_MATCH = 1;\n" +
-				"	\n" +
-				"	public void foo(SearchPattern pattern) {\n" +
-				"		int declarationLevel = ((InternalSearchPattern) pattern).mustResolve ? POSSIBLE_MATCH : ACCURATE_MATCH;\n" +
-				"		System.out.println(declarationLevel);\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 2, 2, 0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression expression = fragment.getInitializer();
-			checkSourceRange(expression, "((InternalSearchPattern) pattern).mustResolve ? POSSIBLE_MATCH : ACCURATE_MATCH", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	public void test0612() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"    void foo(boolean[]value) {\n" +
-				"    }\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			List parameters = methodDeclaration.parameters();
-			assertEquals("Wrong size", 1, parameters.size());
-			SingleVariableDeclaration variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-			checkSourceRange(variableDeclaration, "boolean[]value", contents);
-			Type type = variableDeclaration.getType();
-			checkSourceRange(type, "boolean[]", contents);
-			assertTrue("Not an array type", type.isArrayType());
-			ArrayType arrayType = (ArrayType) type;
-			Type componentType = arrayType.getComponentType();
-			assertTrue("Not a primitive type", componentType.isPrimitiveType());
-			PrimitiveType primitiveType = (PrimitiveType) componentType;
-			assertEquals("Not boolean", PrimitiveType.BOOLEAN, primitiveType.getPrimitiveTypeCode());
-			checkSourceRange(primitiveType, "boolean", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	public void test0613() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	void foo(boolean b) {\n" +
-				"		Zork z = null;\n" +
-				"		if (b) {\n" +
-				"			System.out.println(z);\n" +
-				"		}\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 1, "Zork cannot be resolved to a type");
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			IVariableBinding binding = fragment.resolveBinding();
-			assertNull("Got a binding", binding);
-
-			node = getASTNode(unit, 0, 0, 1);
-			assertEquals("Not an if statement", ASTNode.IF_STATEMENT, node.getNodeType());
-			IfStatement ifStatement = (IfStatement) node;
-			Statement statement2 = ifStatement.getThenStatement();
-			assertEquals("Not a block", ASTNode.BLOCK, statement2.getNodeType());
-			Block block = (Block) statement2;
-			List statements = block.statements();
-			assertEquals("Wrong size", 1, statements.size());
-			
-			Statement statement3 = (Statement) statements.get(0);
-			assertEquals("Not a expression statement", ASTNode.EXPRESSION_STATEMENT, statement3.getNodeType());
-			ExpressionStatement expressionStatement = (ExpressionStatement) statement3;
-			Expression expression = expressionStatement.getExpression();
-			assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-			FunctionInvocation methodInvocation = (FunctionInvocation) expression;
-			List arguments = methodInvocation.arguments();
-			assertEquals("Wrong size", 1, arguments.size());
-			Expression expression2 = (Expression) arguments.get(0);
-			ITypeBinding typeBinding = expression2.resolveTypeBinding();
-			assertNull("Got a binding", typeBinding);
-			assertEquals("Not a simple name", ASTNode.SIMPLE_NAME, expression2.getNodeType());
-			SimpleName simpleName = (SimpleName) expression2;
-			IBinding binding2 = simpleName.resolveBinding();
-			assertNull("Got a binding", binding2);			
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=105192
-	public void test0614() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-		    String contents =
-		    	"class T { void m() { for (i=0, j=0; i<10; i++, j++) ; }}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			final String expectedOutput = "class T {\n" +
-					"  void m(){\n" +
-					"    for (i=0, j=0; i < 10; i++, j++)     ;\n" +
-					"  }\n" +
-					"}\n";
-			assertEquals("Wrong output", Util.convertToIndependantLineDelimiter(expectedOutput), Util.convertToIndependantLineDelimiter(node.toString()));	
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=100041
-	 */
-	public void test0615() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"class X {\n" +
-				"	static Object object;\n" +
-				"	static void foo() {\n" +
-				"		/**\n" +
-				"		 * javadoc comment.\n" +
-				"		 */\n" +
-				"		if (object instanceof String) {\n" +
-				"			final String clr = null;\n" +
-				"		}\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 1, 0);
-			assertNotNull("No node", node);
-			assertEquals("Not an if statement", ASTNode.IF_STATEMENT, node.getNodeType());
-			IfStatement ifStatement = (IfStatement) node;
-			String expectedSource = "if (object instanceof String) {\n" +
-			"			final String clr = null;\n" +
-			"		}";
-			checkSourceRange(ifStatement, expectedSource, contents);
-			Statement statement = ifStatement.getThenStatement();
-			assertNotNull("No then statement", statement);
-			assertEquals("not a block", ASTNode.BLOCK, statement.getNodeType());
-			Block block = (Block) statement;
-			expectedSource = "{\n" +
-			"			final String clr = null;\n" +
-			"		}";
-			checkSourceRange(block, expectedSource, contents);
-			List statements = block.statements();
-			assertEquals("Wrong size", 1, statements.size());
-			Statement statement2 = (Statement) statements.get(0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement2.getNodeType());
-			VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement2;
-			checkSourceRange(variableDeclarationStatement, "final String clr = null;", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=109333
-	 */
-	public void test0616() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"class X {\n" +
-				"	boolean val = true && false && true && false && true;\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0);
-			assertNotNull("No node", node);
-			assertEquals("Not a field declaration ", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			final FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-			final List fragments = fieldDeclaration.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			final Expression initializer = fragment.getInitializer();
-			assertNotNull("No initializer", initializer);
-			assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, initializer.getNodeType());
-			InfixExpression infixExpression = (InfixExpression) initializer;
-			final List extendedOperands = infixExpression.extendedOperands();
-			assertEquals("Wrong size", 3, extendedOperands.size());
-			assertEquals("Wrong operator", InfixExpression.Operator.CONDITIONAL_AND, infixExpression.getOperator());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=109333
-	 */
-	public void test0617() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"class X {\n" +
-				"	boolean val = true || false || true || false || true;\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0);
-			assertNotNull("No node", node);
-			assertEquals("Not a field declaration ", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			final FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-			final List fragments = fieldDeclaration.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			final Expression initializer = fragment.getInitializer();
-			assertNotNull("No initializer", initializer);
-			assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, initializer.getNodeType());
-			InfixExpression infixExpression = (InfixExpression) initializer;
-			final List extendedOperands = infixExpression.extendedOperands();
-			assertEquals("Wrong size", 3, extendedOperands.size());
-			assertEquals("Wrong operator", InfixExpression.Operator.CONDITIONAL_OR, infixExpression.getOperator());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=109535
-	 */
-	public void test0618() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	String f = \"\" + \"\" - 1;\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0);
-			assertNotNull("No node", node);
-			assertEquals("Not a field declaration ", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			final FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-			final List fragments = fieldDeclaration.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			final Expression initializer = fragment.getInitializer();
-			assertNotNull("No initializer", initializer);
-			assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, initializer.getNodeType());
-			InfixExpression infixExpression = (InfixExpression) initializer;
-			List extendedOperands = infixExpression.extendedOperands();
-			assertEquals("Wrong size", 0, extendedOperands.size());
-			assertEquals("Wrong operator", InfixExpression.Operator.MINUS, infixExpression.getOperator());
-			Expression leftOperand = infixExpression.getLeftOperand();
-			assertEquals("Not an infix expression", ASTNode.INFIX_EXPRESSION, leftOperand.getNodeType());
-			InfixExpression infixExpression2 = (InfixExpression) leftOperand;
-			extendedOperands = infixExpression.extendedOperands();
-			assertEquals("Wrong size", 0, extendedOperands.size());
-			assertEquals("Wrong operator", InfixExpression.Operator.PLUS, infixExpression2.getOperator());
-			assertEquals("Not a string literal", ASTNode.STRING_LITERAL, infixExpression2.getLeftOperand().getNodeType());
-			assertEquals("Not a string literal", ASTNode.STRING_LITERAL, infixExpression2.getRightOperand().getNodeType());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=109646
-	 */
-	public void test0619() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter", "src", "test0619", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, false);
-		final JavaScriptUnit unit = (JavaScriptUnit) result;
-		assertProblemsSize(unit, 0);
-		ASTNode node = getASTNode(unit, 0, 0, 0);
-		assertNotNull("No node", node);
-		ASTNode statement = node;
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_STATEMENTS);
-		parser.setSource(source);
-		parser.setSourceRange(statement.getStartPosition(), statement.getLength());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result2 = parser.createAST(null);
-		assertNotNull("No node", result2);
-		assertTrue("not a block", result2.getNodeType() == ASTNode.BLOCK);
-		Block block = (Block) result2;
-		List statements = block.statements();
-		assertEquals("wrong size", 1, statements.size());
-		Statement statement2 = (Statement) statements.get(0);
-		assertEquals("Statement is not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement2.getNodeType());
-		VariableDeclarationStatement declarationStatement = (VariableDeclarationStatement) statement2;
-		assertEquals("Wrong number of fragments", 4, declarationStatement.fragments().size());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=109940
-	 */
-	public void test0620() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	public static void main(String[] args) {\n" +
-				"		System.out.println((int) \'\\0\');\n" +
-				"		System.out.println((int) \'\\1\');\n" +
-				"		System.out.println((int) \'\\2\');\n" +
-				"		System.out.println((int) \'\\3\');\n" +
-				"		System.out.println((int) \'\\4\');\n" +
-				"		System.out.println((int) \'\\5\');\n" +
-				"		System.out.println((int) \'\\6\');\n" +
-				"		System.out.println((int) \'\\7\');\n" +
-				"		System.out.println((int) \'\\077\');\n" +
-				"		System.out.println((int) \'\\55\');\n" +
-				"		System.out.println((int) \'\\77\');\n" +
-				"		System.out.println((int) \'\\377\');\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			unit.accept(new ASTVisitor() {
-				public boolean visit(CharacterLiteral characterLiteral) {
-					try {
-						final String escapedValue = characterLiteral.getEscapedValue();
-						final char charValue = characterLiteral.charValue();
-						if (escapedValue.equals("\'\\0\'")) {
-							assertEquals("Wrong value", 0, charValue);
-						} else if (escapedValue.equals("\'\\1\'")) {
-							assertEquals("Wrong value", 1, charValue);
-						} else if (escapedValue.equals("\'\\2\'")) {
-							assertEquals("Wrong value", 2, charValue);
-						} else if (escapedValue.equals("\'\\3\'")) {
-							assertEquals("Wrong value", 3, charValue);
-						} else if (escapedValue.equals("\'\\4\'")) {
-							assertEquals("Wrong value", 4, charValue);
-						} else if (escapedValue.equals("\'\\5\'")) {
-							assertEquals("Wrong value", 5, charValue);
-						} else if (escapedValue.equals("\'\\6\'")) {
-							assertEquals("Wrong value", 6, charValue);
-						} else if (escapedValue.equals("\'\\7\'")) {
-							assertEquals("Wrong value", 7, charValue);
-						} else if (escapedValue.equals("\'\\077\'")) {
-							assertEquals("Wrong value", 63, charValue);
-						} else if (escapedValue.equals("\'\\55\'")) {
-							assertEquals("Wrong value", 45, charValue);
-						} else if (escapedValue.equals("\'\\77\'")) {
-							assertEquals("Wrong value", 63, charValue);
-						} else if (escapedValue.equals("\'\\377\'")) {
-							assertEquals("Wrong value", 255, charValue);
-						} else {
-							assertTrue("Should not get there", false);
-						}
-					} catch(IllegalArgumentException e) {
-						assertTrue("Should not happen", false);
-					}
-					return false;
-				}
-			});
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=109963
-	 */
-	public void test0621() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	public void foo(int y) {\n" +
-				"		switch (y) {\n" +
-				"			case 1:\n" +
-				"				int i,j;\n" +
-				"		}\n" +
-				"	}\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0, 0);
-			assertNotNull("No node", node);
-			assertEquals("Not a switch statement", ASTNode.SWITCH_STATEMENT, node.getNodeType());
-			SwitchStatement switchStatement = (SwitchStatement) node;
-			List statements = switchStatement.statements();
-			assertEquals("Wrong size", 2, statements.size());
-			Statement statement = (Statement) statements.get(1);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement.getNodeType());
-			VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement;
-			assertEquals("Wrong size", 2, variableDeclarationStatement.fragments().size());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=92866
-	 */
-	public void test0622() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	public static void main(String[] args) {\n" +
-				"		System.out.println((int) \'\\0\');\n" +
-				"		System.out.println((int) \'\\00\');\n" +
-				"		System.out.println((int) \'\\000\');\n" +
-				"		System.out.println((int) \'\\40\');\n" +
-				"		System.out.println((int) \'\\040\');\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", false/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			unit.accept(new ASTVisitor() {
-				public boolean visit(CharacterLiteral characterLiteral) {
-					try {
-						characterLiteral.charValue();
-					} catch(IllegalArgumentException e) {
-						assertTrue("Should not happen", false);
-					}
-					return false;
-				}
-			});
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=116573
-	 */
-	public void test0623() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"class X {\n" + 
-				"        X(boolean x, String y, String z) {}\n" + 
-				"        X(int x, String y) {}\n" + 
-				"        X(String x) {\n" + 
-				"                this(first, second);\n" + 
-				"        }\n" + 
-				"        void test() {\n" + 
-				"                new X(first, second);\n" + 
-				"        }\n" + 
-				"        class Z extends X {\n" + 
-				"                public Z() {\n" + 
-				"                        super(first, second);\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			String expectedOutput =
-				"first cannot be resolved\n" + 
-				"second cannot be resolved\n" + 
-				"first cannot be resolved\n" + 
-				"second cannot be resolved\n" + 
-				"first cannot be resolved\n" + 
-				"second cannot be resolved";
-			assertProblemsSize(unit, 6, expectedOutput);
-			unit.accept(new ASTVisitor() {
-				public boolean visit(ConstructorInvocation constructorInvocation) {
-					assertNotNull("No binding", constructorInvocation.resolveConstructorBinding());
-					return false;
-				}
-				public boolean visit(ClassInstanceCreation classInstanceCreation) {
-					assertNotNull("No binding", classInstanceCreation.resolveConstructorBinding());
-					return false;
-				}
-			});
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=118876
-	 */
-	public void test0624() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X extend {}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			String expectedOutput =
-				"Syntax error on token \"extend\", delete this token";
-			assertProblemsSize(unit, 1, expectedOutput);
-			unit.accept(new ASTVisitor() {
-				public boolean visit(TypeDeclaration typeDeclaration) {
-					assertTrue("Should be malformed", isMalformed(typeDeclaration));
-					return false;
-				}
-				public boolean visit(JavaScriptUnit compilationUnit) {
-					assertFalse("Should not be malformed", isMalformed(compilationUnit));
-					return true;
-				}
-			});
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=118897
-	 */
-	public void test0625() {
-		char[] source = 
-				("package test0305;\n" +  //$NON-NLS-1$
-				"\n" +  //$NON-NLS-1$
-				"class Test {\n" +  //$NON-NLS-1$
-				"	public void foo(int arg) {}\n" +  //$NON-NLS-1$
-				"}").toCharArray(); //$NON-NLS-1$
-		IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
-		ASTNode result = runConversion(AST.JLS3, source, "Test.js", project); //$NON-NLS-1$
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNull("Got a type binding", typeBinding); //$NON-NLS-1$
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=118897
-	 */
-	public void test0626() {
-		char[] source = 
-				("package java.lang;\n" +  //$NON-NLS-1$
-				"\n" +  //$NON-NLS-1$
-				"class Object {\n" +  //$NON-NLS-1$
-				"	public void foo(int arg) {}\n" +  //$NON-NLS-1$
-				"}").toCharArray(); //$NON-NLS-1$
-		IJavaScriptProject project = getJavaProject("Converter"); //$NON-NLS-1$
-		ASTNode result = runConversion(AST.JLS3, source, "Object.js", project); //$NON-NLS-1$
-		assertNotNull("No compilation unit", result); //$NON-NLS-1$
-		assertTrue("result is not a compilation unit", result instanceof JavaScriptUnit); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		ASTNode node = getASTNode(compilationUnit, 0);
-		assertTrue("not a TypeDeclaration", node instanceof TypeDeclaration); //$NON-NLS-1$
-		TypeDeclaration typeDeclaration = (TypeDeclaration) node;
-		ITypeBinding typeBinding = typeDeclaration.resolveBinding();
-		assertNull("Got a type binding", typeBinding); //$NON-NLS-1$
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=116833
-	 */
-	public void test0627() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"    void m() {\n" + 
-				"        error();\n" + 
-				"        new Cloneable() {\n" + 
-				"            void xx() {}\n" + 
-				"        };\n" + 
-				"        new Cloneable() {\n" + 
-				"            void xx() {}\n" + 
-				"        };\n" + 				"    }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			String expectedOutput =
-				"The method error() is undefined for the type X";
-			assertProblemsSize(unit, 1, expectedOutput);
-			node = getASTNode(unit, 0, 0, 1);
-			assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-			Expression expression = ((ExpressionStatement) node).getExpression();
-			assertEquals("Not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, expression.getNodeType());
-			AnonymousClassDeclaration anonymousClassDeclaration = ((ClassInstanceCreation) expression).getAnonymousClassDeclaration();
-			assertNotNull("No anonymous class declaration", anonymousClassDeclaration);
-			List bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-			assertEquals("Wrong size", 1, bodyDeclarations.size());
-			BodyDeclaration bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-			IFunctionBinding methodBinding = methodDeclaration.resolveBinding();
-			
-			node = getASTNode(unit, 0, 0, 2);
-			assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-			expression = ((ExpressionStatement) node).getExpression();
-			assertEquals("Not a class instance creation", ASTNode.CLASS_INSTANCE_CREATION, expression.getNodeType());
-			anonymousClassDeclaration = ((ClassInstanceCreation) expression).getAnonymousClassDeclaration();
-			assertNotNull("No anonymous class declaration", anonymousClassDeclaration);
-			bodyDeclarations = anonymousClassDeclaration.bodyDeclarations();
-			assertEquals("Wrong size", 1, bodyDeclarations.size());
-			bodyDeclaration = (BodyDeclaration) bodyDeclarations.get(0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, bodyDeclaration.getNodeType());
-			methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-			IFunctionBinding methodBinding2 = methodDeclaration.resolveBinding();
-			
-			assertFalse("Should not be equal", methodBinding.isEqualTo(methodBinding2));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=125270
-	 */
-	public void test0628() throws JavaScriptModelException {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind(ASTParser.K_EXPRESSION);
-		String source = "{\"red\", \"yellow\"}";
-		parser.setSource(source.toCharArray());
-		parser.setSourceRange(0, source.length());
-		parser.setCompilerOptions(JavaScriptCore.getOptions());
-		ASTNode result = parser.createAST(null);
-		assertNotNull("No node", result);
-		assertEquals("not an array initializer", ASTNode.ARRAY_INITIALIZER, result.getNodeType());
-		ArrayInitializer arrayInitializer = (ArrayInitializer) result;
-		List expressions = arrayInitializer.expressions();
-		assertEquals("Wrong size", 2, expressions.size());
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, ((Expression) expressions.get(0)).getNodeType());
-		assertEquals("Wrong type", ASTNode.STRING_LITERAL, ((Expression) expressions.get(1)).getNodeType());
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=126598
-	 */
-	public void test0629() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0629", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true, true);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result; 
-		String expectedOutput =
-			"Syntax error on token \",\", invalid VariableInitializer";
-		assertProblemsSize(compilationUnit, 1, expectedOutput);
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertEquals("Not a compilation unit", ASTNode.FIELD_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		checkSourceRange(fragment, "s =  {\"\",,,}", source);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=126598
-	 */
-	public void test0630() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0630", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true, true);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result; 
-		String expectedOutput =
-			"Syntax error on token \",\", invalid VariableInitializer";
-		assertProblemsSize(compilationUnit, 1, expectedOutput);
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=126598
-	 */
-	public void test0631() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0631", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		char[] source = sourceUnit.getSource().toCharArray();
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true, true);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType()); //$NON-NLS-1$
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result; 
-		String expectedOutput =
-			"Syntax error, insert \"}\" to complete ArrayInitializer\n" + 
-			"Syntax error, insert \";\" to complete FieldDeclaration\n" + 
-			"Syntax error, insert \"}\" to complete ClassBody";
-		assertProblemsSize(compilationUnit, 3, expectedOutput);
-		ASTNode node = getASTNode(compilationUnit, 0, 0);
-		assertEquals("Not a compilation unit", ASTNode.FIELD_DECLARATION, node.getNodeType()); //$NON-NLS-1$
-		FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-		List fragments = fieldDeclaration.fragments();
-		assertEquals("wrong size", 1, fragments.size());
-		VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-		checkSourceRange(fragment, "s =  {\"\",,,", source);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=128539
-	 */
-	public void test0632() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	void m(int state) {\n" +
-				"		switch (state) {\n" + 
-				"			case 4:\n" + 
-				"				double M0,M1;\n" + 
-				"		}\n" +
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a switch statement", ASTNode.SWITCH_STATEMENT, node.getNodeType());
-			SwitchStatement statement = (SwitchStatement) node;
-			List statements = statement.statements();
-			assertEquals("wrong size", 2, statements.size());
-			assertEquals("Not a switch case", ASTNode.SWITCH_CASE, ((ASTNode) statements.get(0)).getNodeType());
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, ((ASTNode) statements.get(1)).getNodeType());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=128539
-	 */
-	public void test0633() {
-		String src = "switch (state) {case 4:double M0,M1;}";
-		char[] source = src.toCharArray();
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind (ASTParser.K_STATEMENTS);
-		parser.setSource (source);
-		ASTNode result = parser.createAST (null);
-		assertNotNull("no result", result);
-		assertEquals("Wrong type", ASTNode.BLOCK, result.getNodeType());
-		Block block = (Block) result;
-		List statements = block.statements();
-		assertNotNull("No statements", statements);
-		assertEquals("Wrong size", 1, statements.size());
-		final ASTNode node = (ASTNode) statements.get(0);
-		assertEquals("Not a switch statement", ASTNode.SWITCH_STATEMENT, node.getNodeType());
-		SwitchStatement statement = (SwitchStatement) node;
-		statements = statement.statements();
-		assertEquals("wrong size", 2, statements.size());
-		assertEquals("Not a switch case", ASTNode.SWITCH_CASE, ((ASTNode) statements.get(0)).getNodeType());
-		assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, ((ASTNode) statements.get(1)).getNodeType());	
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=128823
-	 */
-	public void test0634() throws JavaScriptModelException {
-		try {
-			String src =
-				"public class X {\n" + 
-					"	void foo() {\n" +
-					"		int i1 i1;\n" + 
-					"		int i2 i2;\n" + 
-					"		int i3 i3;\n" + 
-					"		int i4 i4;\n" + 
-	 				"		int i5 i5;\n" + 
-					"		int i6 i6;\n" + 
-	 				"		int i7 i7;\n" + 
-					"		int i8 i8;\n" + 
-					"		int i9 i9;\n" + 
-					"		int i10 i10;\n" + 
-					"		int i11 i11;\n" + 
-					"		\n" + 
-					"		for for ;;){}\n" + 
-					"	}\n" +
-					"}";
-			
-			char[] source = src.toCharArray();
-			ASTParser parser = ASTParser.newParser(AST.JLS3);
-			parser.setKind (ASTParser.K_COMPILATION_UNIT);
-			parser.setSource (source);
-			parser.setStatementsRecovery(true);
-			ASTNode result = parser.createAST (null);
-			assertNotNull("no result", result);
-		} catch (ArrayIndexOutOfBoundsException e) {
-			assertTrue("ArrayIndexOutOfBoundsException", false);
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=128960
-	 */
-	public void test0635() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	void foo(Object tab[]) {\n" + 
-				"    }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration declaration = (FunctionDeclaration) node;
-			List parameters = declaration.parameters();
-			assertEquals("wrong number", 1, parameters.size());
-			SingleVariableDeclaration variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-			checkSourceRange(variableDeclaration, "Object tab[]", contents);
-			checkSourceRange(variableDeclaration.getType(), "Object", contents);
-			checkSourceRange(variableDeclaration.getName(), "tab", contents);
-			assertEquals("wrong number of extra dimensions", 1, variableDeclaration.getExtraDimensions());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=128960
-	 */
-	public void test0636() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	void foo(java.lang.Object tab[]) {\n" + 
-				"    }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration declaration = (FunctionDeclaration) node;
-			List parameters = declaration.parameters();
-			assertEquals("wrong number", 1, parameters.size());
-			SingleVariableDeclaration variableDeclaration = (SingleVariableDeclaration) parameters.get(0);
-			checkSourceRange(variableDeclaration, "java.lang.Object tab[]", contents);
-			checkSourceRange(variableDeclaration.getType(), "java.lang.Object", contents);
-			checkSourceRange(variableDeclaration.getName(), "tab", contents);
-			assertEquals("wrong number of extra dimensions", 1, variableDeclaration.getExtraDimensions());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=128961
-	 */
-	public void test0637() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	void foo() {\n" + 
-				"		for( int i = (1); ; ) {\n" + 
-				"       }\n" +
-				"   }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
-			ForStatement forStatement = (ForStatement) node;
-			List inits = forStatement.initializers();
-			assertEquals("Wrong size", 1, inits.size());
-			Expression expression = (Expression) inits.get(0);
-			assertEquals("Not a variable declaration expression", ASTNode.VARIABLE_DECLARATION_EXPRESSION, expression.getNodeType());
-			VariableDeclarationExpression declarationExpression = (VariableDeclarationExpression) expression;
-			List fragments = declarationExpression.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression initializer = fragment.getInitializer();
-			checkSourceRange(initializer, "(1)", contents);
-			checkSourceRange(fragment, "i = (1)", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=128961
-	 */
-	public void test0638() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	int i = (1);\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0);
-			assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-			List fragments = fieldDeclaration.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression initializer = fragment.getInitializer();
-			checkSourceRange(initializer, "(1)", contents);
-			checkSourceRange(fragment, "i = (1)", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=128961
-	 */
-	public void test0639() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	void foo() {\n" + 
-				"		for( int i = (1), j = 0; ; ) {\n" + 
-				"       }\n" +
-				"   }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
-			ForStatement forStatement = (ForStatement) node;
-			List inits = forStatement.initializers();
-			assertEquals("Wrong size", 1, inits.size());
-			Expression expression = (Expression) inits.get(0);
-			assertEquals("Not a variable declaration expression", ASTNode.VARIABLE_DECLARATION_EXPRESSION, expression.getNodeType());
-			VariableDeclarationExpression declarationExpression = (VariableDeclarationExpression) expression;
-			List fragments = declarationExpression.fragments();
-			assertEquals("Wrong size", 2, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression initializer = fragment.getInitializer();
-			checkSourceRange(initializer, "(1)", contents);
-			checkSourceRange(fragment, "i = (1)", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=129589
-	 * TODO (david) enable once fixed
-	 */
-	public void _test0640() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"    protected void primExecute() {\n" + 
-				"        String temp= this.toString();\n" + 
-				"    }\n" + 
-				"        if (image != null) {\n" + 
-				"            Object loc = null;\n" + 
-				"        }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 2, "Syntax error on token \"}\", { expected after this token\n" + 
-					"Syntax error, insert \"}\" to complete ClassBody");
-			node = getASTNode(unit, 0, 0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			assertFalse("A recovered node", isRecovered(methodDeclaration));
-			assertFalse("A malformed node", isMalformed(methodDeclaration));
-			assertFalse("A recovered node", isRecovered(methodDeclaration.getBody()));
-			assertFalse("A malformed node", isMalformed(methodDeclaration.getBody()));
-			node = getASTNode(unit, 0, 1);
-			assertEquals("Not an initializer", ASTNode.INITIALIZER, node.getNodeType());
-			Initializer initializer = (Initializer) node;
-			assertTrue("Not a recovered node", isRecovered(initializer));
-			assertTrue("Not a malformed node", isMalformed(initializer));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * Ensures that 2 type bindings (one from .class file, the other from attache source) are "isEqualTo(...)".
-	 * (regression test for bug 130317 ASTParser with IClassFile as source creates type bindings that are not isEqualTo(..) binary bindings)
-	 */
-	public void test0641() throws JavaScriptModelException {
-		// Integer from attached source
-		IClassFile classFile = getClassFile("Converter", getConverterJCLPath().toOSString(), "java.lang", "Integer.class");
-		String source = classFile.getSource();
-		MarkerInfo markerInfo = new MarkerInfo(source);
-		markerInfo.astStarts = new int[] {source.indexOf("public")};
-		markerInfo.astEnds = new int[] {source.lastIndexOf('}') + 1};
-		ASTNode node = buildAST(markerInfo, classFile);
-		IBinding bindingFromAttachedSource = ((TypeDeclaration) node).resolveBinding();		
-		
-		IJavaScriptUnit workingCopy = null;
-		try {
-    		workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-	    	String contents =
-				"public class X {\n" + 
-				"	/*start*/Integer/*end*/ field;\n" + 
-				"}";
-		   	IBinding[] bindings = resolveBindings(contents, workingCopy);
-		   	assertTrue("2 type bindings should be equals", bindingFromAttachedSource.isEqualTo(bindings[0]));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=129330
-	 */
-	public void test0642() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"import java.awt.Point;\n" +
-				"public class X {\n" +
-				"	public void foo(Point p, int[] a) {\n" + 
-				"	   p.x;\n" + 
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 1, "Syntax error, insert \"AssignmentOperator Expression\" to complete Expression");
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-			assertTrue("Not recovered", isRecovered(node));
-			final Expression expression = ((ExpressionStatement) node).getExpression();
-			assertEquals("Not a qualified name", ASTNode.QUALIFIED_NAME, expression.getNodeType());
-			assertTrue("Not recovered", isRecovered(expression));
-			checkSourceRange(expression, "p.x", contents);
-			checkSourceRange(node, "p.x;", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=129330
-	 */
-	public void test0643() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"import java.awt.Point;\n" +
-				"public class X {\n" +
-				"	public void foo(Point p, int[] a) {\n" + 
-				"	   a[0];\n" + 
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 1, "Syntax error, insert \"AssignmentOperator Expression\" to complete Expression");
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-			assertTrue("Not recovered", isRecovered(node));
-			final Expression expression = ((ExpressionStatement) node).getExpression();
-			assertEquals("Not an array access", ASTNode.ARRAY_ACCESS, expression.getNodeType());
-			assertTrue("Not recovered", isRecovered(expression));
-			checkSourceRange(expression, "a[0]", contents);
-			checkSourceRange(node, "a[0];", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=129330
-	 */
-	public void test0644() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	public void foo() {\n" + 
-				"	   int x =;\n" + 
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 1, "Syntax error on token \"=\", VariableInitializer expected after this token");
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression expression = fragment.getInitializer();
-			assertNull("No initializer", expression);
-			assertTrue("Not recovered", isRecovered(fragment));
-			checkSourceRange(fragment, "x =", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=135997
-	 */
-	public void test0645() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	{\n" + 
-				"	   new Object();\n" + 
-				"	   Object.equ;\n" + 
-				"	}\n" +
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(
-					unit,
-					2,
-					"Object.equ cannot be resolved\n" + 
-					"Syntax error, insert \"AssignmentOperator Expression\" to complete Expression");
-			node = getASTNode(unit, 0, 0);
-			assertEquals("Not a field declaration statement", ASTNode.INITIALIZER, node.getNodeType());
-			Initializer initializer = (Initializer) node;
-			checkSourceRange(
-					initializer,
-					"{\n" + 
-					"	   new Object();\n" + 
-					"	   Object.equ;\n" + 
-					"	}",
-					contents);
-			Block block = initializer.getBody();
-			checkSourceRange(
-					block,
-					"{\n" + 
-					"	   new Object();\n" + 
-					"	   Object.equ;\n" + 
-					"	}",
-					contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=136972
-	 */
-	public void test0646() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"        static {\n" + 
-				"                class A\n" + 
-				"                Object o = new Object(){\n" + 
-				"                        void test(){\n" + 
-				"                        }\n" + 
-				"                };\n" + 
-				"        }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=141043
-	 */
-	public void test0647() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"    public void run(int i) {\n" + 
-				"    }\n" + 
-				"    public void foo() {\n" + 
-				"        new Runnable() {\n" + 
-				"            public void run() {\n" + 
-				"                run(1);    \n" + 
-				"            }\n" + 
-				"        };\n" + 
-				"    }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 1, "The method run() in the type new Runnable(){} is not applicable for the arguments (int)");
-			node = getASTNode(unit, 0, 1, 0);
-			assertEquals("Not an expression statement", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-			Expression expression = ((ExpressionStatement) node).getExpression();
-			ITypeBinding typeBinding = expression.resolveTypeBinding();
-			IFunctionBinding[] methodBindings = typeBinding.getDeclaredMethods();
-			assertEquals("Wrong size", 2, methodBindings.length);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=147877
-	 */
-	public void test0648() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"    public void foo(int[] a) {\n" + 
-				"        int i = a[0];\n" + 
-				"    }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression expression = fragment.getInitializer();
-			assertNotNull("No initializer", expression);
-			checkSourceRange(expression, "a[0]", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=147877
-	 */
-	public void test0649() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"    public void foo(int[] a) {\n" + 
-				"        int i = a[0\\u005D;\n" + 
-				"    }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression expression = fragment.getInitializer();
-			assertNotNull("No initializer", expression);
-			checkSourceRange(expression, "a[0\\u005D", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=147877
-	 */
-	public void test0650() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"    public void foo(int[] a) {\n" + 
-				"        int[] i = new int[0];\n" + 
-				"    }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression expression = fragment.getInitializer();
-			assertNotNull("No initializer", expression);
-			checkSourceRange(expression, "new int[0]", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=147877
-	 */
-	public void test0651() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"    public void foo(int[] a) {\n" + 
-				"        int[] i = new int[0\\u005D;\n" + 
-				"    }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a vaviable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			Expression expression = fragment.getInitializer();
-			assertNotNull("No initializer", expression);
-			checkSourceRange(expression, "new int[0\\u005D", contents);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=149126
-	 */
-	public void _test0652() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"import java.nio.ByteBuffer;\n" + 
-				"import java.nio.CharBuffer;\n" + 
-				"import java.nio.charset.Charset;\n" + 
-				"import java.nio.charset.CharsetDecoder;\n" + 
-				"import java.nio.charset.CharsetEncoder;\n" + 
-				"import java.nio.charset.CoderResult;\n" + 
-				"public class TestCharset extends Charset {\n" + 
-				"        public CharsetDecoder newDecoder() {\n" + 
-				"                return new CharsetDecoder(this, 2.0, 2.0) {\n" + 
-				"                        CharsetDecoder(CharSet\n" + 
-				"                        protected CoderResult decodeLoop(ByteBuffer in,\n" + 
-				"CharBuffer out) {\n" + 
-				"                                return null;\n" + 
-				"                        }\n" + 
-				"                };;\n" + 
-				"        }\n" + 
-				"        public CharsetEncoder newEncoder() {\n" + 
-				"                return null;\n" + 
-				"        }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 1);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=150409
-	 * TODO (olivier) renable if the bindings are available
-	 */
-	public void _test0653() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0653", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		ASTNode result = runConversion(AST.JLS3, sourceUnit, true);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType());
-		JavaScriptUnit unit = (JavaScriptUnit) result;
-	
-		ASTNode node = getASTNode(unit, 0, 2, 0);
-		assertEquals("Not a method invocation", ASTNode.EXPRESSION_STATEMENT, node.getNodeType());
-		ExpressionStatement statement = (ExpressionStatement) node;
-		FunctionInvocation invocation = (FunctionInvocation) statement.getExpression();
-		List arguments = invocation.arguments();
-		assertEquals("Wrong size", 1, arguments.size());
-		Expression argument = (Expression) arguments.get(0);
-		assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, argument.getNodeType());
-		invocation = (FunctionInvocation) argument;
-		Expression expression = invocation.getExpression();
-		assertEquals("Not a method invocation", ASTNode.FIELD_ACCESS, expression.getNodeType());
-		FieldAccess fieldAccess = (FieldAccess) expression;
-		IVariableBinding variableBinding = fieldAccess.resolveFieldBinding();
-		assertNotNull("No variable binding", variableBinding);
-	}
-	
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=148224
-	 */
-	public void test0654() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" +
-				"	int i;\n" +
-				"	public void foo(int[] a) {\n" + 
-				"	}\n" + 
-				"	String s;\n" +
-				"	public String[][] bar() {\n" + 
-				"		return null;\n" +
-				"	}\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false,
-				true);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 0);
-			node = getASTNode(unit, 0, 0);
-			assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			FieldDeclaration declaration = (FieldDeclaration) node;
-			Type type = declaration.getType();
-			ITypeBinding typeBinding = type.resolveBinding();
-			assertTrue("Not a primitive type", typeBinding.isPrimitive());
-			assertEquals("Not int", "int", typeBinding.getName());
-			try {
-				typeBinding.createArrayType(-1);
-				assertTrue("Should throw an exception", false);
-			} catch(IllegalArgumentException exception) {
-				// ignore
-			}
-			try {
-				typeBinding.createArrayType(0);
-				assertTrue("Should throw an exception", false);
-			} catch(IllegalArgumentException exception) {
-				// ignore
-			}
-			try {
-				typeBinding.createArrayType(256);
-				assertTrue("Should throw an exception", false);
-			} catch(IllegalArgumentException exception) {
-				// ignore
-			}
-			ITypeBinding binding = typeBinding.createArrayType(2);
-			assertEquals("Wrong dimensions", 2, binding.getDimensions());
-			assertTrue("Not an array type binding", binding.isArray());
-			ITypeBinding componentType = binding.getComponentType();
-			assertTrue("Not an array type binding", componentType.isArray());
-			assertEquals("Wrong dimensions", 1, componentType.getDimensions());
-			componentType = componentType.getComponentType();
-			assertFalse("An array type binding", componentType.isArray());
-			assertEquals("Wrong dimensions", 0, componentType.getDimensions());
-			
-			binding = typeBinding.createArrayType(1);
-			node = getASTNode(unit, 0, 1);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-			List parameters = methodDeclaration.parameters();
-			assertEquals("Wrong size", 1, parameters.size());
-			SingleVariableDeclaration parameter = (SingleVariableDeclaration) parameters.get(0);
-			Type type2 = parameter.getType();
-			ITypeBinding typeBinding2 = type2.resolveBinding();
-			assertNotNull("No binding", typeBinding2);
-			assertTrue("Not an array binding", typeBinding2.isArray());
-			assertEquals("Wrong dimension", 1, typeBinding2.getDimensions());
-			assertEquals("Wrong type", "int", typeBinding2.getElementType().getName());
-			assertTrue("Should be equals", binding == typeBinding2);
-			
-			binding = typeBinding2.createArrayType(3);
-			assertTrue("Not an array binding", binding.isArray());
-			assertEquals("Wrong dimension", 4, binding.getDimensions());
-
-			node = getASTNode(unit, 0, 2);
-			assertEquals("Not a field declaration", ASTNode.FIELD_DECLARATION, node.getNodeType());
-			declaration = (FieldDeclaration) node;
-			type = declaration.getType();
-			typeBinding = type.resolveBinding();
-			assertTrue("A primitive type", !typeBinding.isPrimitive());
-			assertEquals("Not String", "String", typeBinding.getName());
-
-			binding = typeBinding.createArrayType(1);
-			node = getASTNode(unit, 0, 3);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			methodDeclaration = (FunctionDeclaration) node;
-			type = methodDeclaration.getReturnType2();
-			assertNotNull("No return type", type);
-			typeBinding2 = type.resolveBinding();
-			assertNotNull("No binding", typeBinding2);
-			assertTrue("Not an array binding", typeBinding2.isArray());
-			assertEquals("Wrong dimension", 2, typeBinding2.getDimensions());
-			assertEquals("Wrong type", "String", typeBinding2.getElementType().getName());
-			typeBinding2 = typeBinding2.getComponentType();
-			assertTrue("Not an array binding", typeBinding2.isArray());
-			assertEquals("Wrong dimension", 1, typeBinding2.getDimensions());
-			assertTrue("Should be equals", binding == typeBinding2);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=157570
-	 */
-	public void _test0655() {
-		String src = "public static void m1()\n" + 
-				"    {\n" + 
-				"        int a;\n" + 
-				"        int b;\n" + 
-				"    }\n" + 
-				"\n" + 
-				"    public static void m2()\n" + 
-				"    {\n" + 
-				"        int c;\n" + 
-				"        int d;\n" + 
-				"    }";
-		char[] source = src.toCharArray();
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind (ASTParser.K_STATEMENTS);
-		parser.setStatementsRecovery(true);
-		parser.setSource (source);
-		ASTNode result = parser.createAST (null);
-		assertNotNull("no result", result);
-		assertEquals("Not a block", ASTNode.BLOCK, result.getNodeType());
-		Block block = (Block) result;
-		List statements = block.statements();
-		for (Iterator iterator = statements.iterator(); iterator.hasNext(); ) {
-			Statement statement = (Statement) iterator.next();
-			assertTrue(isMalformed(statement));
-		}
-	}
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=157570
-	 */
-	public void test0656() {
-		String src = "public static void m1()\n" + 
-				"    {\n" + 
-				"        int a;\n" + 
-				"        int b;\n" + 
-				"    }\n" + 
-				"\n" + 
-				"    public static void m2()\n" + 
-				"    {\n" + 
-				"        int c;\n" + 
-				"        int d;\n" + 
-				"    }";
-		char[] source = src.toCharArray();
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind (ASTParser.K_STATEMENTS);
-		parser.setStatementsRecovery(false);
-		parser.setSource (source);
-		ASTNode result = parser.createAST (null);
-		assertNotNull("no result", result);
-		assertEquals("Not a block", ASTNode.BLOCK, result.getNodeType());
-		Block block = (Block) result;
-		List statements = block.statements();
-		assertEquals("Should be empty", 0, statements.size());
-	}
-	
-	// http://dev.eclipse.org/bugs/show_bug.cgi?id=160198
-	public void test0657() throws JavaScriptModelException {
-		IJavaScriptUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0657", "X.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		IJavaScriptUnit sourceUnit2 = getCompilationUnit("Converter" , "src", "test0657", "A.js"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		class TestASTRequestor extends ASTRequestor {
-			public ArrayList asts = new ArrayList();
-			public void acceptAST(IJavaScriptUnit source, JavaScriptUnit compilationUnit) {
-				this.asts.add(compilationUnit);
-			}
-			public void acceptBinding(String bindingKey, IBinding binding) {
-			}
-		}
-		TestASTRequestor requestor = new TestASTRequestor();
-		resolveASTs(
-			new IJavaScriptUnit[] {sourceUnit, sourceUnit2}, 
-			new String[0],
-			requestor,
-			getJavaProject("Converter"),
-			sourceUnit.getOwner()
-		);
-		ArrayList arrayList = requestor.asts;
-		assertEquals("Wrong size", 2, arrayList.size());
-		int problemsCount = 0;
-		for (int i = 0, max = arrayList.size(); i < max; i++) {
-			Object current = arrayList.get(i);
-			assertTrue("not a compilation unit", current instanceof JavaScriptUnit);
-			JavaScriptUnit unit = (JavaScriptUnit) current;
-			IProblem[] problems = unit.getProblems();
-			problemsCount += problems.length;
-		}
-		assertEquals("wrong size", 1, problemsCount);
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=157570
-	 */
-	public void test0658() {
-		String src = "public static void m1()\n" + 
-				"    {\n" + 
-				"        int a;\n" + 
-				"        int b;\n" + 
-				"    }\n" + 
-				"\n" + 
-				"    public static void m2()\n" + 
-				"    {\n" + 
-				"        int c;\n" + 
-				"        int d;\n" + 
-				"    }";
-		char[] source = src.toCharArray();
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setKind (ASTParser.K_STATEMENTS);
-		parser.setStatementsRecovery(true);
-		parser.setSource (source);
-		ASTNode result = parser.createAST (null);
-		assertNotNull("no result", result);
-		assertEquals("Not a block", ASTNode.BLOCK, result.getNodeType());
-		Block block = (Block) result;
-		List statements = block.statements();
-		assertEquals("Should be empty", 4, statements.size());
-		assertTrue("Not recovered", isRecovered(block));
-		ASTNode root = block.getRoot();
-		assertNotNull("No root", root);
-		assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, root.getNodeType());
-		JavaScriptUnit unit = (JavaScriptUnit) root;
-		String errors =
-			"Syntax error on token(s), misplaced construct(s)\n" + 
-			"Syntax error, insert \";\" to complete BlockStatements\n" + 
-			"Syntax error on token(s), misplaced construct(s)\n" + 
-			"Syntax error, insert \";\" to complete Statement";
-		assertProblemsSize(unit, 4, errors);
-	}
-	
-	public void test0659() throws CoreException, JavaScriptModelException {
-		IJavaScriptProject javaProject = createJavaProject("P659", new String[] { "src" }, new String[0]);
-		try {
-			ASTParser parser = ASTParser.newParser(AST.JLS3);
-			parser.setKind(ASTParser.K_COMPILATION_UNIT);
-			parser.setStatementsRecovery(true);
-			String source ="package java.lang;\n" + 
-					"public class Object {\n" + 
-					"        public String toString() {\n" + 
-					"                return \"\";\n" + 
-					"        }\n" + 
-					"}";
-			parser.setSource(source.toCharArray());
-			parser.setProject(javaProject);
-			parser.setResolveBindings(true);
-			parser.setUnitName("Object.js");
-			ASTNode result = parser.createAST (null);
-			assertNotNull("no result", result);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, result.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) result;
-			ASTNode node = getASTNode(unit, 0, 0);
-			assertNotNull("No node", node);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, node.getNodeType());
-			FunctionDeclaration declaration = (FunctionDeclaration) node;
-			Block block = declaration.getBody();
-			assertNotNull("no block", block);
-			List statements = block.statements();
-			assertEquals("Wrong size", 1, statements.size());
-			ReturnStatement returnStatement = (ReturnStatement) statements.get(0);
-			Expression expression = returnStatement.getExpression();
-			assertNotNull("No expression", expression);
-			ITypeBinding binding = expression.resolveTypeBinding();
-			assertNull("No binding", binding);
-		} finally {
-			deleteProject("P659");
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=144858
-	 * TODO (frederic) check that keys are different (PR 149590) 
-	 */
-	public void test0660() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"	void foo() {\n" + 
-				"		int x = 0;\n" + 
-				"		String x = \"\"; //$NON-NLS-1$\n" + 
-				"		x.toString();\n" + 
-				"	}\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 1, "Duplicate local variable x");
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List  fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			IVariableBinding variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "x", variableBinding.getName());
-			// (PR 149590) 
-			// String key = variableBinding.getKey();
-			
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			statement = (VariableDeclarationStatement) node;
-			fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			fragment = (VariableDeclarationFragment) fragments.get(0);
-			variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "x", variableBinding.getName());
-			// (PR 149590) 
-			// String key2 = variableBinding.getKey();
-			//assertFalse("Keys should not be equals", key2.equals(key));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=144858
-	 * TODO (frederic) check that keys are different (PR 149590) 
-	 */
-	public void test0661() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"        public static void main(String[] args) {\n" + 
-				"                int x = 2;\n" + 
-				"                try {\n" + 
-				"\n" + 
-				"                } catch(NullPointerException x) {\n" + 
-				"                } catch(Exception e) {\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			assertProblemsSize(unit, 1, "Duplicate parameter x");
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List  fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			IVariableBinding variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "x", variableBinding.getName());
-			// (PR 149590) 
-			// String key = variableBinding.getKey();
-			
-			node = getASTNode(unit, 0, 0, 1);
-			assertEquals("Not a try statement", ASTNode.TRY_STATEMENT, node.getNodeType());
-			TryStatement statement2 = (TryStatement) node;
-			List catchClauses = statement2.catchClauses();
-			assertEquals("Wrong size", 2, catchClauses.size());
-			CatchClause catchClause = (CatchClause) catchClauses.get(0);
-			SingleVariableDeclaration variableDeclaration = catchClause.getException();
-			variableBinding = variableDeclaration.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "x", variableBinding.getName());
-			// (PR 149590) 
-			// String key2 = variableBinding.getKey();
-			//assertFalse("Keys should not be equals", key2.equals(key));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=144858
-	 * TODO (frederic) check that keys are different (PR 149590) 
-	 */
-	public void test0662() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"        public static void main(String[] args) {\n" + 
-				"                int x = x = 0;\n" + 
-				"                if (true) {\n" + 
-				"                        int x = x = 1;\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			String expectedLog =
-				"The assignment to variable x has no effect\n" + 
-				"Duplicate local variable x\n" + 
-				"The assignment to variable x has no effect";
-			assertProblemsSize(unit, 3, expectedLog);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, node.getNodeType());
-			VariableDeclarationStatement statement = (VariableDeclarationStatement) node;
-			List  fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			IVariableBinding variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "x", variableBinding.getName());
-			// (PR 149590) 
-			// String key = variableBinding.getKey();
-			
-			node = getASTNode(unit, 0, 0, 1);
-			assertEquals("Not an if statement", ASTNode.IF_STATEMENT, node.getNodeType());
-			IfStatement ifStatement = (IfStatement) node;
-			Block block = (Block) ifStatement.getThenStatement();
-			List statements = block.statements();
-			assertEquals("Wrong size", 1, statements.size());
-			Statement statement2 = (Statement) statements.get(0);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement2.getNodeType());
-			statement = (VariableDeclarationStatement) statement2;
-			fragments = statement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			fragment = (VariableDeclarationFragment) fragments.get(0);
-			variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "x", variableBinding.getName());
-			
-			// (PR 149590) 
-			// String key2 = variableBinding.getKey();
-			//assertFalse("Keys should not be equals", key2.equals(key));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=144858
-	 * TODO (frederic) check that keys are different (PR 149590) 
-	 */
-	public void test0663() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"        public static void main(String[] args) {\n" + 
-				"                for (int i = 0; i < 10; i++) {\n" + 
-				"                        for (int i = 0; i < 5; i++)  {\n" + 
-				"                                // do something\n" + 
-				"                        }\n" + 
-				"                }\n" + 
-				"        }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			String expectedLog = "Duplicate local variable i";
-			assertProblemsSize(unit, 1, expectedLog);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, node.getNodeType());
-			ForStatement statement = (ForStatement) node;
-			List initializers = statement.initializers();
-			assertEquals("Wrong size", 1, initializers.size());
-			Expression expression = (Expression) initializers.get(0);
-			assertEquals("Not a variable declaration expression", ASTNode.VARIABLE_DECLARATION_EXPRESSION, expression.getNodeType());
-			VariableDeclarationExpression expression2 = (VariableDeclarationExpression) expression;
-			List fragments = expression2.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			IVariableBinding variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "i", variableBinding.getName());
-			// (PR 149590) 
-			// String key = variableBinding.getKey();
-			
-			Block block = (Block) statement.getBody();
-			List statements = block.statements();
-			assertEquals("Wrong size", 1, statements.size());
-			Statement statement2 = (Statement) statements.get(0);
-			assertEquals("Not a for statement", ASTNode.FOR_STATEMENT, statement2.getNodeType());
-			statement = (ForStatement) statement2;
-			initializers = statement.initializers();
-			assertEquals("Wrong size", 1, initializers.size());
-			expression = (Expression) initializers.get(0);
-			assertEquals("Not a variable declaration expression", ASTNode.VARIABLE_DECLARATION_EXPRESSION, expression.getNodeType());
-			expression2 = (VariableDeclarationExpression) expression;
-			fragments = expression2.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			fragment = (VariableDeclarationFragment) fragments.get(0);
-			variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "i", variableBinding.getName());
-
-			// (PR 149590) 
-			// String key2 = variableBinding.getKey();
-			//assertFalse("Keys should not be equals", key2.equals(key));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=165662
-	 */
-	public void test0664() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"  void foo() {\n" + 
-				"     class Local {\n" + 
-				"        void foo() {}\n" + 
-				"     }\n" + 
-				"     {\n" + 
-				"        class Local {\n" + 
-				"                Local(int i) {\n" + 
-				"                        this.init(i);\n" + 
-				"                }\n" + 
-				"				 void init(int i) {}\n" +
-				"        }\n" + 
-				"        Local l = new Local(0);\n" + 
-				"     }\n" + 
-				"  }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			String expectedLog = "Duplicate nested type Local";
-			assertProblemsSize(unit, 1, expectedLog);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType());
-			TypeDeclarationStatement statement = (TypeDeclarationStatement) node;
-			ITypeBinding typeBinding = statement.resolveBinding();
-			assertNotNull("No binding", typeBinding);
-			String key = typeBinding.getKey();
-			assertNotNull("No key", key);
-			
-			node = getASTNode(unit, 0, 0, 1);
-			assertEquals("Not a block", ASTNode.BLOCK, node.getNodeType());
-			Block block = (Block) node;
-			List statements = block.statements();
-			assertEquals("wrong size", 2, statements.size());
-			Statement statement2 = (Statement) statements.get(0);
-			assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, statement2.getNodeType());
-			statement = (TypeDeclarationStatement) statement2;
-			typeBinding = statement.resolveBinding();
-			assertNotNull("No binding", typeBinding);
-			String key2 = typeBinding.getKey();
-			assertNotNull("No key2", key2);
-			assertFalse("Keys should not be equals", key.equals(key2));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=165662
-	 */
-	public void test0665() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String contents =
-				"public class X {\n" + 
-				"        void foo() {\n" + 
-				"                class Local {\n" + 
-				"                        void foo() {\n" + 
-				"                        }\n" + 
-				"                }\n" + 
-				"                {\n" + 
-				"                        class Local {\n" + 
-				"                               Local(int i) {\n" + 
-				"                                       this.init(i);\n" + 
-				"                                       this.bar();\n" + 
-				"                               }\n" + 
-				"				 				void init(int i) {}\n" +
-				"                        		void bar() {\n" + 
-				"                        		}\n" + 
-				"                        }\n" + 
-				"                        Local l = new Local(0);\n" + 
-				"                }\n" + 
-				"                Local l = new Local();\n" + 
-				"                l.foo();\n" + 
-				"        }\n" + 
-				"}";
-			workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-			ASTNode node = buildAST(
-				contents,
-				workingCopy,
-				false);
-			assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-			JavaScriptUnit unit = (JavaScriptUnit) node;
-			String expectedLog = "Duplicate nested type Local";
-			assertProblemsSize(unit, 1, expectedLog);
-			node = getASTNode(unit, 0, 0, 0);
-			assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, node.getNodeType());
-			TypeDeclarationStatement statement = (TypeDeclarationStatement) node;
-			ITypeBinding typeBinding = statement.resolveBinding();
-			assertNotNull("No binding", typeBinding);
-			String key = typeBinding.getKey();
-			assertNotNull("No key", key);
-			
-			node = getASTNode(unit, 0, 0, 1);
-			assertEquals("Not a block", ASTNode.BLOCK, node.getNodeType());
-			Block block = (Block) node;
-			List statements = block.statements();
-			assertEquals("wrong size", 2, statements.size());
-			Statement statement2 = (Statement) statements.get(0);
-			assertEquals("Not a type declaration statement", ASTNode.TYPE_DECLARATION_STATEMENT, statement2.getNodeType());
-			statement = (TypeDeclarationStatement) statement2;
-			typeBinding = statement.resolveBinding();
-			assertNotNull("No binding", typeBinding);
-			String key2 = typeBinding.getKey();
-			assertNotNull("No key2", key2);
-			assertFalse("Keys should not be equals", key.equals(key2));
-			
-			Statement statement3 = (Statement) statements.get(1);
-			assertEquals("Not a variable declaration statement", ASTNode.VARIABLE_DECLARATION_STATEMENT, statement3.getNodeType());
-			VariableDeclarationStatement variableDeclarationStatement = (VariableDeclarationStatement) statement3;
-			List  fragments = variableDeclarationStatement.fragments();
-			assertEquals("Wrong size", 1, fragments.size());
-			VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(0);
-			IVariableBinding variableBinding = fragment.resolveBinding();
-			assertNotNull("No binding", variableBinding);
-			assertEquals("Wrong name", "l", variableBinding.getName());
-			Expression expression = fragment.getInitializer();
-			ITypeBinding typeBinding2 = expression.resolveTypeBinding();
-			assertNotNull("No type binding2", typeBinding2);
-			
-			AbstractTypeDeclaration declaration = statement.getDeclaration();
-			List bodyDeclarations = declaration.bodyDeclarations();
-			assertEquals("Wrong size", 3, bodyDeclarations.size());
-			BodyDeclaration declaration2 = (BodyDeclaration) bodyDeclarations.get(0);
-			assertEquals("Not a method declaration", ASTNode.FUNCTION_DECLARATION, declaration2.getNodeType());
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) declaration2;
-			assertTrue("not a constructor", methodDeclaration.isConstructor());
-			block = methodDeclaration.getBody();
-			statements = block.statements();
-			assertEquals("Wrong size", 2, statements.size());
-			statement3 = (Statement) statements.get(1);
-			assertEquals("Not a expression statement", ASTNode.EXPRESSION_STATEMENT, statement3.getNodeType());
-			expression = ((ExpressionStatement) statement3).getExpression();
-			assertEquals("Not a method invocation", ASTNode.FUNCTION_INVOCATION, expression.getNodeType());
-			FunctionInvocation invocation = (FunctionInvocation) expression;
-			IFunctionBinding methodBinding = invocation.resolveMethodBinding();
-			assertNotNull(methodBinding);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-}
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
deleted file mode 100644
index 861606a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTMatcherTest.java
+++ /dev/null
@@ -1,1112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.lang.reflect.Method;
-
-import junit.framework.Test;
-
-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.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.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.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.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;
-
-/**
- * Test suite for <code>ASTMatcher</code> and <code>ASTNode.subtreeMatch</code>.
- */
-public class ASTMatcherTest extends org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase { 
-
-	/** @deprecated using deprecated code */
-	public static Test suite() {
-		// TODO (frederic) use buildList + setAstLevel(init) instead...
-		junit.framework.TestSuite suite = new junit.framework.TestSuite(ASTMatcherTest.class.getName());
-		
-		Class c = ASTMatcherTest.class;
-		Method[] methods = c.getMethods();
-		for (int i = 0, max = methods.length; i < max; i++) {
-			if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
-				suite.addTest(new ASTMatcherTest(methods[i].getName(), AST.JLS2));
-				suite.addTest(new ASTMatcherTest(methods[i].getName(), AST.JLS3));
-			}
-		}
-		return suite;
-	}	
-	
-	AST ast;
-	SimpleName N1;
-	SimpleName N2;
-	SimpleName N3;
-	SimpleName N4;
-	Expression E1;
-	Expression E2;
-	Type T1;
-	String T1S;
-	Type T2;
-	String T2S;
-	String PT1S;
-	Statement S1;
-	Statement S2;
-	Block B1;
-	SingleVariableDeclaration V1;
-	SingleVariableDeclaration V2;
-	VariableDeclarationFragment W1;
-	VariableDeclarationFragment W2;
-	FieldDeclaration FD1;
-	FieldDeclaration FD2;
-	PackageDeclaration PD1;
-	ImportDeclaration ID1;
-	ImportDeclaration ID2;
-	TypeDeclaration TD1;
-	TypeDeclaration TD2;
-	AnonymousClassDeclaration ACD1;
-	JSdoc JD1;
-	JSdoc JD2;
-	String JD2S;
-	String TP1S;
-	String TP2S;
-	TagElement TAG1;
-	TagElement TAG2;
-	TextElement TEXT1;
-	MemberRef MBREF1;
-	FunctionRef MTHREF1;
-	FunctionRefParameter MPARM1;
-	LineComment LC1;
-	BlockComment BC1;
-	Modifier MOD1;
-	Modifier MOD2;
-	
-	final StringBuffer b = new StringBuffer();
-	
-	int API_LEVEL;
-
-	public ASTMatcherTest(String name, int apiLevel) {
-		super(name);
-		this.API_LEVEL = apiLevel;
-	}
-		
-	/**
-	 * @deprecated (not really - just suppressing the warnings
-	 * that come from testing Javadoc.getComment())
-	 *
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		ast = AST.newAST(this.API_LEVEL);
-		N1 = ast.newSimpleName("N"); //$NON-NLS-1$
-		N2 = ast.newSimpleName("M"); //$NON-NLS-1$
-		N3 = ast.newSimpleName("O"); //$NON-NLS-1$
-		N4 = ast.newSimpleName("P"); //$NON-NLS-1$
-		E1 = ast.newSimpleName("X"); //$NON-NLS-1$
-		E2 = ast.newSimpleName("Y"); //$NON-NLS-1$
-		T1 = ast.newSimpleType(ast.newSimpleName("Z")); //$NON-NLS-1$
-		T1S = "(tS(nSZZnS)tS)"; //$NON-NLS-1$
-		T2 = ast.newSimpleType(ast.newSimpleName("Y")); //$NON-NLS-1$
-		T2S = "(tS(nSYYnS)tS)"; //$NON-NLS-1$
-		S1 = ast.newContinueStatement();
-		S2 = ast.newBreakStatement();
-		B1 = ast.newBlock();
-		V1 = ast.newSingleVariableDeclaration();
-		V1.setType(ast.newPrimitiveType(PrimitiveType.INT));
-		V1.setName(ast.newSimpleName("a")); //$NON-NLS-1$
-		V2 = ast.newSingleVariableDeclaration();
-		V2.setType(ast.newPrimitiveType(PrimitiveType.BYTE));
-		V2.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		W1 = ast.newVariableDeclarationFragment();
-		W1.setName(ast.newSimpleName("a")); //$NON-NLS-1$
-		W2 = ast.newVariableDeclarationFragment();
-		W2.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		{
-			VariableDeclarationFragment temp = ast.newVariableDeclarationFragment();
-			temp.setName(ast.newSimpleName("f")); //$NON-NLS-1$
-			FD1 = ast.newFieldDeclaration(temp);
-			FD1.setType(ast.newPrimitiveType(PrimitiveType.INT));
-		}
-		{
-			VariableDeclarationFragment temp = ast.newVariableDeclarationFragment();
-			temp.setName(ast.newSimpleName("g")); //$NON-NLS-1$
-			FD2 = ast.newFieldDeclaration(temp);
-			FD2.setType(ast.newPrimitiveType(PrimitiveType.CHAR));
-		}
-		PD1 = ast.newPackageDeclaration();
-		PD1.setName(ast.newSimpleName("p")); //$NON-NLS-1$
-		ID1 = ast.newImportDeclaration();
-		ID1.setName(ast.newSimpleName("i")); //$NON-NLS-1$
-		ID2 = ast.newImportDeclaration();
-		ID2.setName(ast.newSimpleName("j")); //$NON-NLS-1$
-		TD1 = ast.newTypeDeclaration();
-		TD1.setName(ast.newSimpleName("c")); //$NON-NLS-1$
-		TD2 = ast.newTypeDeclaration();
-		TD2.setName(ast.newSimpleName("d")); //$NON-NLS-1$
-		
-		ACD1 = ast.newAnonymousClassDeclaration();
-		
-		JD1 = ast.newJSdoc();
-		JD2 = ast.newJSdoc();
-		if (ast.apiLevel() == AST.JLS2) {
-			JD1.setComment("/**X*/"); //$NON-NLS-1$
-			JD2.setComment("/**Y*/"); //$NON-NLS-1$
-		}
-
-		BC1 = ast.newBlockComment();
-		
-		TAG1 = ast.newTagElement();
-		TAG1.setTagName("@foo"); //$NON-NLS-1$
-
-		TAG2 = ast.newTagElement();
-		TAG2.setTagName("@bar"); //$NON-NLS-1$
-
-		TEXT1 = ast.newTextElement();
-		TEXT1.setText("foo"); //$NON-NLS-1$
-
-		MBREF1 = ast.newMemberRef();
-		MBREF1.setName(ast.newSimpleName("p")); //$NON-NLS-1$
-
-		MTHREF1 = ast.newFunctionRef();
-		MTHREF1.setName(ast.newSimpleName("p")); //$NON-NLS-1$
-
-		MPARM1 = ast.newFunctionRefParameter();
-		MPARM1.setType(ast.newPrimitiveType(PrimitiveType.CHAR));
-
-		if (ast.apiLevel() >= AST.JLS3) {
-			PT1S = "[(tM[(tS[(nSZZnS)]tS)]tM)]"; //$NON-NLS-1$
-
-			TP1S = "[(tTP[(nSxxnS)]tTP)]"; //$NON-NLS-1$
-
-			TP2S = "[(tTP[(nSyynS)]tTP)]"; //$NON-NLS-1$
-			LC1 = ast.newLineComment();
-
-			
-			MOD1 = ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
-			MOD2 = ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD);
-			
-		}
-
-	}
-	
-	protected void tearDown() throws Exception {
-		ast = null;
-		super.tearDown();
-	}
-	
-	/** @deprecated using deprecated code */
-	public String getName() {
-		String name = super.getName();
-		switch (this.API_LEVEL) {
-			case AST.JLS2:
-				name = "JLS2 - " + name;
-				break;
-			case AST.JLS3:
-				name = "JLS3 - " + name; 
-				break;
-		}
-		return name;
-	}
-		
-	/**
-	 * An ASTMatcher that simply records the arguments it is passed,
-	 * immediately returns a pre-ordained answer, and counts how many
-	 * times it is called.
-	 */
-	class TestMatcher extends ASTMatcher {
-
-		public Object receiverNode;
-		public Object otherNode;
-		public boolean result;
-		public boolean superMatch;
-		public boolean superMatchResult;
-		public int matchCalls = 0;
-
-		TestMatcher() {
-			this(false);
-		}
-
-		TestMatcher(boolean visitDocTags) {
-			super(visitDocTags);
-		}
-
-		boolean standardBody(ASTNode receiver, Object other, boolean matchResult) {
-			matchCalls++;
-			this.receiverNode = receiver;
-			this.otherNode = other;
-			this.superMatchResult = matchResult;
-			if (superMatch) {
-				return this.superMatchResult;
-			}
-			return this.result;
-		}
-
-		public boolean match(AnonymousClassDeclaration node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ArrayAccess node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ArrayCreation node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ArrayInitializer node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ArrayType node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(Assignment node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(Block node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(BlockComment node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(BooleanLiteral node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(BreakStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(CatchClause node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(CharacterLiteral node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ClassInstanceCreation node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(JavaScriptUnit node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ConditionalExpression node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ConstructorInvocation node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ContinueStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(DoStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(EmptyStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(EnhancedForStatement 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);
-		}
-		public boolean match(FieldAccess node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(FieldDeclaration node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ForStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(IfStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ImportDeclaration node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(InfixExpression node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(Initializer node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(JSdoc node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(LabeledStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(LineComment 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(FunctionDeclaration node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(FunctionInvocation node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(FunctionRef node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(FunctionRefParameter node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(Modifier 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);
-		}
-		public boolean match(NumberLiteral node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(PackageDeclaration node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ParenthesizedExpression node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(PostfixExpression node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(PrefixExpression node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(PrimitiveType node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(QualifiedName node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(QualifiedType node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ReturnStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(SimpleName node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(SimpleType 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);
-		}
-		public boolean match(StringLiteral node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(SuperConstructorInvocation node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(SuperFieldAccess node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(SuperMethodInvocation node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(SwitchCase node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(SwitchStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-
-		public boolean match(TagElement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(TextElement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ThisExpression node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(ThrowStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(TryStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(TypeDeclaration node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(TypeDeclarationStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(TypeLiteral node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(VariableDeclarationExpression node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(VariableDeclarationFragment node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(VariableDeclarationStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-		public boolean match(WhileStatement node, Object other) {
-			return standardBody(node, other, superMatch ? super.match(node, other) : false);
-		}
-	}
-	
-	/**
-	 * AST node visitor that counts the nodes visited.
-	 */
-	static class NodeCounter extends ASTVisitor {
-		public NodeCounter(boolean visitDocTags) {
-			super(visitDocTags);
-		}
-		
-		public int count = 0;
-
-		/* (no javadoc for this method)
-		 * Method declared on ASTVisitor.
-		 */
-		public void preVisit(ASTNode node) {
-			count++;
-		}
-
-	}
-	
-	/**
-	 * Returns the number of AST nodes in the given subtree.
-	 * 
-	 * @param node the root of the subtree
-	 * @param visitDocTags true if doc tags should be visited
-	 * @return the number of nodes (always positive)
-	 */
-	static int nodeCount(ASTNode node, boolean visitDocTags) {
-		NodeCounter c = new NodeCounter(visitDocTags);
-		node.accept(c);
-		return c.count;
-	}		
-	
-	/**
-	 * Checks that the ASTNode.subtreeMatch mechanism is working
-	 * for a node of a given type. 
-	 */
-	void basicMatch(ASTNode node) {
-		TestMatcher[] m = {
-			new TestMatcher(),
-			new TestMatcher(true),
-			new TestMatcher(false)};
-		for (int i = 0; i < m.length; i++) {
-			// check that matcher was called with right arguments
-			// and that matches succeed
-			TestMatcher m1 = m[i];
-			Object o1 = new Object();
-			m1.result = true;
-			boolean result = node.subtreeMatch(m1, o1);
-			assertTrue(m1.matchCalls == 1);
-			assertTrue(m1.receiverNode == node);
-			assertTrue(m1.otherNode == o1);
-			assertTrue(result == true);
-		}
-		
-		m = new TestMatcher[] {
-							new TestMatcher(),
-							new TestMatcher(true),
-							new TestMatcher(false)};
-		for (int i = 0; i < m.length; i++) {
-			// check that matcher was called with right arguments
-			// and that non-matches fail
-			TestMatcher m1 = m[i];
-			Object o1 = new Object();
-			m1.result = false;
-			boolean result = node.subtreeMatch(m1, o1);
-			assertTrue(m1.matchCalls == 1);
-			assertTrue(m1.receiverNode == node);
-			assertTrue(m1.otherNode == o1);
-			assertTrue(result == false);
-		}
-		
-		// check that ASTMatcher() default implementations delegate
-		{
-			int count = nodeCount(node, false); // ignore doc tags
-			TestMatcher m1 = new TestMatcher();
-			m1.superMatch = true;
-			boolean result = node.subtreeMatch(m1, node);
-			assertTrue(m1.matchCalls == count);
-			assertTrue(result == true);
-		}
-		
-		// check that ASTMatcher(false) default implementations delegate
-		{
-			int count = nodeCount(node, false); // ignore doc tags
-			TestMatcher m1 = new TestMatcher(false);
-			m1.superMatch = true;
-			boolean result = node.subtreeMatch(m1, node);
-			assertTrue(m1.matchCalls == count);
-			assertTrue(result == true);
-		}
-		
-		// check that ASTMatcher(true) default implementations delegate
-		{
-			int count = nodeCount(node, true); // include doc tags
-			TestMatcher m1 = new TestMatcher(true);
-			m1.superMatch = true;
-			boolean result = node.subtreeMatch(m1, node);
-			assertTrue(m1.matchCalls == count);
-			assertTrue(result == true);
-		}
-		
-	}
-
-	// NAMES
-	public void testSimpleName() {
-		Name x1 = ast.newName(new String[]{"Z"}); //$NON-NLS-1$
-		basicMatch(x1);
-	}
-
-	public void testQualifiedName() {
-		Name x1 = ast.newName(new String[]{"X", "Y"}); //$NON-NLS-1$ //$NON-NLS-2$
-		basicMatch(x1);
-	}
-
-	
-	// TYPES
-	public void testPrimitiveType() {
-		Type x1 = ast.newPrimitiveType(PrimitiveType.CHAR);
-		basicMatch(x1);
-	}
-
-	public void testSimpleType() {
-		Type x1 = ast.newSimpleType(N1);
-		basicMatch(x1);
-	}
-
-	public void testArrayType() {
-		Type x0 = ast.newPrimitiveType(PrimitiveType.CHAR);
-		Type x1 = ast.newArrayType(x0);
-		basicMatch(x1);
-	}
-
-	/** @deprecated using deprecated code */
-	public void testQualifiedType() {
-		if (ast.apiLevel() == AST.JLS2) {
-			return;
-		}
-		Type x1 = ast.newQualifiedType(T1, N1);
-		basicMatch(x1);
-	}
-
-	// EXPRESSIONS and STATEMENTS
-
-	public void testAnonymousClassDeclaration() {
-		AnonymousClassDeclaration x1 = ast.newAnonymousClassDeclaration();
-		x1.bodyDeclarations().add(FD1);
-		x1.bodyDeclarations().add(FD2);
-		basicMatch(x1);
-	}
-	public void testArrayAccess() {
-		ArrayAccess x1 = ast.newArrayAccess();
-		x1.setArray(E1);
-		x1.setIndex(E2);
-		basicMatch(x1);
-	}
-	public void testArrayCreation() {
-		ArrayCreation x1 = ast.newArrayCreation();
-		x1.setType(ast.newArrayType(T1));
-		x1.dimensions().add(E1);
-		x1.dimensions().add(E2);
-		x1.setInitializer(ast.newArrayInitializer());
-		basicMatch(x1);
-	}
-	public void testArrayInitializer() {
-		ArrayInitializer x1 = ast.newArrayInitializer();
-		x1.expressions().add(E1);
-		x1.expressions().add(E2);
-		basicMatch(x1);
-	}
-	public void testAssignment() {
-		Assignment x1 = ast.newAssignment();
-		x1.setLeftHandSide(E1);
-		x1.setRightHandSide(E2);
-		basicMatch(x1);
-	}
-	public void testBlock() {
-		Block x1 = ast.newBlock();
-		x1.statements().add(S1);
-		x1.statements().add(S2);
-		basicMatch(x1);
-	}
-	
-	public void testBlockComment() {
-		BlockComment x1 = ast.newBlockComment();
-		basicMatch(x1);
-	}
-
-	public void testBooleanLiteral() {
-		BooleanLiteral x1 = ast.newBooleanLiteral(true);
-		basicMatch(x1);
-	}
-	public void testBreakStatement() {
-		BreakStatement x1 = ast.newBreakStatement();
-		x1.setLabel(N1);
-		basicMatch(x1);
-	}
-	public void testCatchClause() {
-		CatchClause x1 = ast.newCatchClause();
-		x1.setException(V1);
-		x1.setBody(B1);
-		basicMatch(x1);
-	}
-	public void testCharacterLiteral() {
-		CharacterLiteral x1 = ast.newCharacterLiteral();
-		x1.setCharValue('q');
-		basicMatch(x1);
-	}
-	/** @deprecated using deprecated code */
-	public void testClassInstanceCreation() {
-		ClassInstanceCreation x1 = ast.newClassInstanceCreation();
-		x1.setExpression(E1);
-		if (ast.apiLevel() == AST.JLS2) {
-			x1.setName(N1);
-		} else {
-			x1.setType(T1);
-		}
-		x1.setAnonymousClassDeclaration(ACD1);
-		basicMatch(x1);
-	}
-	public void testCompilationUnit() {
-		JavaScriptUnit x1 = ast.newJavaScriptUnit();
-		x1.setPackage(PD1);
-		x1.imports().add(ID1);
-		x1.imports().add(ID2);
-		x1.types().add(TD1);
-		x1.types().add(TD2);
-		basicMatch(x1);
-	}
-	public void testConditionalExpression() {
-		ConditionalExpression x1 = ast.newConditionalExpression();
-		x1.setExpression(E1);
-		x1.setThenExpression(E2);
-		x1.setElseExpression(N1);
-		basicMatch(x1);
-	}
-	public void testConstructorInvocation() {
-		ConstructorInvocation x1 = ast.newConstructorInvocation();
-		
-		x1.arguments().add(E1);
-		x1.arguments().add(E2);
-		basicMatch(x1);
-	}
-	public void testContinueStatement() {
-		ContinueStatement x1 = ast.newContinueStatement();
-		x1.setLabel(N1);
-		basicMatch(x1);
-	}
-	public void testDoStatement() {
-		DoStatement x1 = ast.newDoStatement();
-		x1.setExpression(E1);
-		x1.setBody(S1);
-		basicMatch(x1);
-	}
-	public void testEmptyStatement() {
-		EmptyStatement x1 = ast.newEmptyStatement();
-		basicMatch(x1);
-	}
-	/** @deprecated using deprecated code */
-	public void testEnhancedForStatement() {
-		if (ast.apiLevel() == AST.JLS2) {
-			return;
-		}
-		EnhancedForStatement x1 = ast.newEnhancedForStatement();
-		x1.setParameter(V1);
-		x1.setExpression(E1);
-		x1.setBody(S1);
-		basicMatch(x1);
-	}
-	public void testExpressionStatement() {
-		ExpressionStatement x1 = ast.newExpressionStatement(E1);
-		basicMatch(x1);
-	}
-	public void testFieldAccess() {
-		FieldAccess x1 = ast.newFieldAccess();
-		x1.setExpression(E1);
-		x1.setName(N1);
-		basicMatch(x1);
-	}
-	public void testFieldDeclaration() {
-		FieldDeclaration x1 = ast.newFieldDeclaration(W1);
-		x1.setJavadoc(JD1);
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setType(T1);
-		x1.fragments().add(W2);
-		basicMatch(x1);
-	}
-	public void testForStatement() {
-		ForStatement x1 = ast.newForStatement();
-		x1.initializers().add(E1);
-		x1.initializers().add(E2);
-		x1.setExpression(N1);
-		x1.updaters().add(N2);
-		x1.updaters().add(N3);
-		x1.setBody(S1);
-		basicMatch(x1);
-	}
-	public void testIfStatement() {
-		IfStatement x1 = ast.newIfStatement();
-		x1.setExpression(E1);
-		x1.setThenStatement(S1);
-		x1.setElseStatement(S2);
-		basicMatch(x1);
-	}
-	public void testImportDeclaration() {
-		ImportDeclaration x1 = ast.newImportDeclaration();
-		x1.setName(N1);
-		basicMatch(x1);
-	}
-	public void testInfixExpression() {
-		InfixExpression x1 = ast.newInfixExpression();
-		x1.setOperator(InfixExpression.Operator.PLUS);
-		x1.setLeftOperand(E1);
-		x1.setRightOperand(E2);
-		x1.extendedOperands().add(N1);
-		x1.extendedOperands().add(N2);
-		basicMatch(x1);
-	}
-	public void testInitializer() {
-		Initializer x1 = ast.newInitializer();
-		x1.setJavadoc(JD1);
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setBody(B1);
-		basicMatch(x1);
-	}
-	/**
-	 * @deprecated (not really - just suppressing the warnings
-	 * that come from testing Javadoc.getComment())
-	 *
-	 */
-	public void testJavadoc() {
-		JSdoc x1 = ast.newJSdoc();
-		if (ast.apiLevel() == AST.JLS2) {
-			x1.setComment("/**?*/"); //$NON-NLS-1$
-		}
-		x1.tags().add(TAG1);
-		x1.tags().add(TAG2);
-		basicMatch(x1);
-	}
-
-	public void testLabeledStatement() {
-		LabeledStatement x1 = ast.newLabeledStatement();
-		x1.setLabel(N1);
-		x1.setBody(S1);
-		basicMatch(x1);
-	}
-
-	public void testLineComment() {
-		LineComment x1 = ast.newLineComment();
-		basicMatch(x1);
-	}
-
-	public void testMemberRef() {
-		MemberRef x1 = ast.newMemberRef();
-		x1.setQualifier(N1);
-		x1.setName(N2);
-		basicMatch(x1);
-	}
-
-	/** @deprecated using deprecated code */
-	public void testMethodDeclaration() {
-		FunctionDeclaration x1 = ast.newFunctionDeclaration();
-		x1.setJavadoc(JD1);
-		if (ast.apiLevel() == AST.JLS2) {
-			x1.setReturnType(T1);
-		} else {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-			x1.setReturnType2(T1);
-		}
-		x1.setName(N1);
-		x1.parameters().add(V1);
-		x1.parameters().add(V2);
-		x1.thrownExceptions().add(N2);
-		x1.thrownExceptions().add(N3);
-		x1.setBody(B1);
-		basicMatch(x1);
-	}
-	public void testMethodInvocation() {
-		FunctionInvocation x1 = ast.newFunctionInvocation();
-		x1.setExpression(N1);
-		
-		x1.setName(N2);
-		x1.arguments().add(E1);
-		x1.arguments().add(E2);
-		basicMatch(x1);
-	}
-	
-	public void testMethodRef() {
-		FunctionRef x1 = ast.newFunctionRef();
-		basicMatch(x1);
-		x1.setQualifier(N1);
-		x1.setName(N2);
-		x1.parameters().add(MPARM1);
-	}
-	public void testMethodRefParameter() {
-		FunctionRefParameter x1 = ast.newFunctionRefParameter();
-		x1.setType(T1);
-		x1.setName(N1);
-		basicMatch(x1);
-	}
-	
-	public void testNullLiteral() {
-		NullLiteral x1 = ast.newNullLiteral();
-		basicMatch(x1);
-	}
-	public void testNumberLiteral() {
-		NumberLiteral x1 = ast.newNumberLiteral("1.0"); //$NON-NLS-1$
-		basicMatch(x1);
-	}
-	public void testParenthesizedExpression() {
-		ParenthesizedExpression x1 = ast.newParenthesizedExpression();
-		basicMatch(x1);
-	}
-	public void testPostfixExpression() {
-		PostfixExpression x1 = ast.newPostfixExpression();
-		x1.setOperand(E1);
-		x1.setOperator(PostfixExpression.Operator.INCREMENT);
-		basicMatch(x1);
-	}
-	public void testPrefixExpression() {
-		PrefixExpression x1 = ast.newPrefixExpression();
-		x1.setOperand(E1);
-		x1.setOperator(PrefixExpression.Operator.INCREMENT);
-		basicMatch(x1);
-	}
-	public void testReturnStatement() {
-		ReturnStatement x1 = ast.newReturnStatement();
-		x1.setExpression(E1);
-		basicMatch(x1);
-	}
-	public void testSingleVariableDeclaration() {
-		SingleVariableDeclaration x1 = ast.newSingleVariableDeclaration();
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setType(T1);
-		x1.setName(N1);
-		x1.setInitializer(E1);
-		basicMatch(x1);
-	}
-	public void testStringLiteral() {
-		StringLiteral x1 = ast.newStringLiteral();
-		x1.setLiteralValue("H"); //$NON-NLS-1$
-		basicMatch(x1);
-	}
-	public void testSuperConstructorInvocation() {
-		SuperConstructorInvocation x1 = ast.newSuperConstructorInvocation();
-		x1.setExpression(N1);
-
-		x1.arguments().add(E1);
-		x1.arguments().add(E2);
-		basicMatch(x1);
-	}
-	public void testSuperFieldAccess() {
-		SuperFieldAccess x1 = ast.newSuperFieldAccess();
-		x1.setQualifier(N1);
-		x1.setName(N2);
-		basicMatch(x1);
-	}
-	public void testSuperMethodInvocation() {
-		SuperMethodInvocation x1 = ast.newSuperMethodInvocation();
-		x1.setQualifier(N1);
-
-		x1.setName(N2);
-		x1.arguments().add(E1);
-		x1.arguments().add(E2);
-		basicMatch(x1);
-	}
-	public void testSwitchCase() {
-		SwitchCase x1 = ast.newSwitchCase();
-		x1.setExpression(E1);
-		basicMatch(x1);
-	}
-	public void testSwitchStatement() {
-		SwitchStatement x1 = ast.newSwitchStatement();
-		x1.setExpression(E1);
-		x1.statements().add(S1);
-		x1.statements().add(S2);
-		basicMatch(x1);
-	}
-	
-	public void testTagElement() {
-		TagElement x1 = ast.newTagElement();
-		x1.setTagName("@foo"); //$NON-NLS-1$
-		x1.fragments().add(TAG1);
-		x1.fragments().add(TEXT1);
-		x1.fragments().add(N1);
-		x1.fragments().add(MTHREF1);
-		basicMatch(x1);
-	}
-	public void testTextElement() {
-		TextElement x1 = ast.newTextElement();
-		x1.setText("foo"); //$NON-NLS-1$
-		basicMatch(x1);
-	}
-
-	public void testThisExpression() {
-		ThisExpression x1 = ast.newThisExpression();
-		x1.setQualifier(N1);
-		basicMatch(x1);
-	}
-	public void testThrowStatement() {
-		ThrowStatement x1 = ast.newThrowStatement();
-		x1.setExpression(E1);
-		basicMatch(x1);
-	}
-	public void testTryStatement() {
-		TryStatement x1 = ast.newTryStatement();
-		x1.setBody(B1);
-		CatchClause c1 = ast.newCatchClause();
-		c1.setException(V1);
-		c1.setBody(ast.newBlock());
-		x1.catchClauses().add(c1);
-		CatchClause c2 = ast.newCatchClause();
-		c2.setException(V2);
-		c2.setBody(ast.newBlock());
-		x1.catchClauses().add(c2);
-		x1.setFinally(ast.newBlock());
-		basicMatch(x1);
-	}
-	/** @deprecated using deprecated code */
-	public void testTypeDeclaration() {
-		TypeDeclaration x1 = ast.newTypeDeclaration();
-		x1.setJavadoc(JD1);
-		x1.setName(N1);
-		if (ast.apiLevel() == AST.JLS2) {
-			x1.setSuperclass(N2);
-		} else {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.bodyDeclarations().add(FD1);
-		x1.bodyDeclarations().add(FD2);
-		basicMatch(x1);
-	}
-	public void testTypeDeclarationStatement() {
-		TypeDeclarationStatement x1 = ast.newTypeDeclarationStatement(TD1);
-		basicMatch(x1);
-	}
-	public void testTypeLiteral() {
-		TypeLiteral x1 = ast.newTypeLiteral();
-		x1.setType(T1);
-		basicMatch(x1);
-	}
-	public void testVariableDeclarationFragment() {
-		VariableDeclarationFragment x1 = ast.newVariableDeclarationFragment();
-		x1.setName(N1);
-		x1.setInitializer(E1);
-		basicMatch(x1);
-	}
-	public void testVariableDeclarationExpression() {
-		VariableDeclarationExpression x1 = ast.newVariableDeclarationExpression(W1);
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setType(T1);
-		x1.fragments().add(W2);
-		basicMatch(x1);
-	}
-	public void testVariableDeclarationStatement() {
-		VariableDeclarationStatement x1 = ast.newVariableDeclarationStatement(W1);
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setType(T1);
-		x1.fragments().add(W2);
-		basicMatch(x1);
-	}
-	public void testWhileStatement() {
-		WhileStatement x1 = ast.newWhileStatement();
-		x1.setExpression(E1);
-		x1.setBody(S1);
-		basicMatch(x1);
-	}
-	
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTModelBridgeTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTModelBridgeTests.java
deleted file mode 100644
index 2642df9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTModelBridgeTests.java
+++ /dev/null
@@ -1,1419 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.IClassFile;
-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.WorkingCopyOwner;
-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.AnonymousClassDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ArrayType;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionInvocation;
-import org.eclipse.wst.jsdt.core.dom.IBinding;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.IPackageBinding;
-import org.eclipse.wst.jsdt.core.dom.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.QualifiedName;
-import org.eclipse.wst.jsdt.core.dom.SimpleName;
-import org.eclipse.wst.jsdt.core.dom.SuperConstructorInvocation;
-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.VariableDeclaration;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchConstants;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope;
-import org.eclipse.wst.jsdt.core.search.SearchEngine;
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaSearchTests;
-
-/*
- * Test the bridge between the DOM AST and the Java model.
- */
-public class ASTModelBridgeTests extends AbstractASTTests {
-	
-	IJavaScriptUnit workingCopy;
-
-	public ASTModelBridgeTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(ASTModelBridgeTests.class);
-	}
-	
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-//		TESTS_PREFIX =  "testBug86380";
-//		TESTS_NAMES = new String[] { "testCreateBindings19" };
-//		TESTS_NUMBERS = new int[] { 83230 };
-//		TESTS_RANGE = new int[] { 83304, -1 };
-		}
-
-	/*
-	 * Removes the marker comments "*start*" and "*end*" from the given contents,
-	 * builds an AST from the resulting source, and returns the AST node that was delimited
-	 * by "*start*" and "*end*".
-	 */
-	private ASTNode buildAST(String contents) throws JavaScriptModelException {
-		return buildAST(contents, this.workingCopy);
-	}
-	
-	private IBinding[] createBindings(String contents, IJavaScriptElement element) throws JavaScriptModelException {
-		this.workingCopy.getBuffer().setContents(contents);
-		this.workingCopy.makeConsistent(null);
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setProject(getJavaProject("P"));
-		IJavaScriptElement[] elements = new IJavaScriptElement[] {element};
-		return parser.createBindings(elements, null);
-	}
-	
-	private IBinding[] createBinaryBindings(String contents, IJavaScriptElement element) throws CoreException {
-		createClassFile("/P/lib", "A.class", contents);
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setProject(getJavaProject("P"));
-		IJavaScriptElement[] elements = new IJavaScriptElement[] {element};
-		return parser.createBindings(elements, null);
-	}
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		setUpJavaProject();
-	}
-
-	private void setUpJavaProject() throws CoreException, IOException, JavaScriptModelException {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"}, new String[] {"JCL15_LIB,JCL15_SRC", "/P/lib"}, "bin", "1.5");
-		project.setOption(JavaScriptCore.COMPILER_PB_UNUSED_LOCAL, JavaScriptCore.IGNORE);
-		project.setOption(JavaScriptCore.COMPILER_PB_UNUSED_PRIVATE_MEMBER, JavaScriptCore.IGNORE);
-		project.setOption(JavaScriptCore.COMPILER_PB_FIELD_HIDING, JavaScriptCore.IGNORE);
-		project.setOption(JavaScriptCore.COMPILER_PB_LOCAL_VARIABLE_HIDING, JavaScriptCore.IGNORE);
-		project.setOption(JavaScriptCore.COMPILER_PB_TYPE_PARAMETER_HIDING, JavaScriptCore.IGNORE);
-		project.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		addLibrary(
-			project, 
-			"lib.jar",
-			"libsrc.zip", 
-			new String[] {
-				"p/Y.js",
-				"package p;\n" +
-				"public class Y<T> {\n" +
-				"  public Y(T t) {\n" +
-				"  }\n" +
-				"}",
-				"p/Z.js",
-				"package p;\n" +
-				"public class Z {\n" +
-				"  /*start*/class Member {\n" +
-				"  }/*end*/\n" +
-				"  void foo() {\n" +
-				"    new Member() {};\n" +
-				"  }\n" +
-				"}",
-				"p/W.js",
-				"package p;\n" +
-				"public class W {\n" +
-				"  class Member {\n" +
-				"    /*start*/Member(String s) {\n" +
-				"    }/*end*/\n" +
-				"  }\n" +
-				"}",
-				"p/ABC.js",
-				"package p;\n" +
-				"public class ABC {\n" +
-				"}",
-				"Z.js",
-				"public class Z {\n" +
-				"  /*start*/class Member {\n" +
-				"  }/*end*/\n" +
-				"  void foo() {\n" +
-				"    new Member() {};\n" +
-				"  }\n" +
-				"}"
-			}, 
-			"1.5");
-		this.workingCopy = getCompilationUnit("/P/src/X.js").getWorkingCopy(
-			new WorkingCopyOwner() {},  
-			null/*no progress*/);
-	}
-	
-	public void tearDownSuite() throws Exception {
-		tearDownJavaProject();
-		super.tearDownSuite();
-	}
-
-	private void tearDownJavaProject() throws JavaScriptModelException, CoreException {
-		if (this.workingCopy != null)
-			this.workingCopy.discardWorkingCopy();
-		deleteProject("P");
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing an anonymous type is correct.
-	 */
-	public void testAnonymousType() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  Object foo() {\n" +
-			"    return new Object() /*start*/{\n" +
-			"    }/*end*/;\n" +
-			"  }\n" +
-			"}"
-		);
-		IBinding binding = ((AnonymousClassDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"<anonymous #1> [in foo() [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	public void testAnonymousType2() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" + 
-			"	public void foo() {\n" + 
-			"		new Y(0/*c*/) /*start*/{\n" + 
-			"			Object field;\n" + 
-			"		}/*end*/;\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class Y {\n" + 
-			"	Y(int i) {\n" + 
-			"	}\n" + 
-			"}"
-		);
-		IBinding binding = ((AnonymousClassDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"<anonymous #1> [in foo() [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing an array type is correct.
-	 */
-	public void testArrayType1() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/Object[]/*end*/ field;\n" +
-			"}"
-		);
-		IBinding binding = ((ArrayType) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing an array type of base type null.
-	 * (regression test for bug 100142
-	  	CCE when calling ITypeBinding#getJavaElement() on char[][]
-	 */
-	public void testArrayType2() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/char[][]/*end*/ field;\n" +
-			"}"
-		);
-		IBinding binding = ((ArrayType) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"<null>",
-			element
-		);
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method coming from a class file is correct.
-	 * (regression test for bug 91445 IFunctionBinding.getJavaElement() returns an "unopen" IFunction)
-	 */
-	public void testBinaryMethod() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("P", getExternalJCLPathString("1.5"), "java.lang", "Enum.class");
-		String source = classFile.getSource();
-		MarkerInfo markerInfo = new MarkerInfo(source);
-		markerInfo.astStarts = new int[] {source.indexOf("protected Enum")};
-		markerInfo.astEnds = new int[] {source.indexOf('}', markerInfo.astStarts[0]) + 1};
-		ASTNode node = buildAST(markerInfo, classFile);
-		IBinding binding = ((FunctionDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Enum(java.lang.String, int) [in Enum [in Enum.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a constructor of a binary member type is correct.
-	 * (regression test for bug 119249 codeResolve, search, etc. don't work on constructor of binary inner class)
-	 */
-	public void testBinaryMemberTypeConstructor() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("P", "/P/lib.jar", "p", "W$Member.class");
-		String source = classFile.getSource();
-		MarkerInfo markerInfo = new MarkerInfo(source);
-		markerInfo.astStarts = new int[] {source.indexOf("/*start*/") + "/*start*/".length()};
-		markerInfo.astEnds = new int[] {source.indexOf("/*end*/")};
-		ASTNode node = buildAST(markerInfo, classFile);
-		IBinding binding = ((FunctionDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Member(p.W, java.lang.String) [in Member [in W$Member.class [in p [in lib.jar [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a type coming from a class file is correct.
-	 */
-	public void testBinaryType() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("P", getExternalJCLPathString("1.5"), "java.lang", "String.class");
-		String source = classFile.getSource();
-		MarkerInfo markerInfo = new MarkerInfo(source);
-		markerInfo.astStarts = new int[] {source.indexOf("public")};
-		markerInfo.astEnds = new int[] {source.lastIndexOf('}') + 1};
-		ASTNode node = buildAST(markerInfo, classFile);
-		IBinding binding = ((TypeDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"String [in String.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a type coming from a class file is correct
-	 * after searching for references to this type.
-	 * (regression test for bug 136016 [refactoring] CCE during Use Supertype refactoring)
-	 */
-	public void testBinaryType2() throws CoreException {
-		IClassFile classFile = getClassFile("P", "lib.jar", "p", "ABC.class"); // class with no references
-		
-		// ensure classfile is open
-		classFile.open(null);
-		
-		//search for references to p.ABC after adding references in exactly 1 file
-		try {
-			createFile(
-				"/P/src/Test.js",
-				"import p.ABC;\n" +
-				"public class Test extends ABC {\n" +
-				"}"
-				);
-			IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {getPackageFragmentRoot("/P/src")});
-			search(classFile.getType(), IJavaScriptSearchConstants.REFERENCES, scope, new AbstractJavaSearchTests.JavaSearchResultCollector());
-		} finally {
-			deleteFile("/P/src/Test.js");
-		}
-		
-		String source = classFile.getSource();
-		MarkerInfo markerInfo = new MarkerInfo(source);
-		markerInfo.astStarts = new int[] {source.indexOf("public")};
-		markerInfo.astEnds = new int[] {source.lastIndexOf('}') + 1};
-		ASTNode node = buildAST(markerInfo, classFile);
-		IBinding binding = ((TypeDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"ABC [in ABC.class [in p [in lib.jar [in P]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a type in a jar is correct after deleting the first project
-	 * referencing it.
-	 */
-	public void testBinaryType3() throws CoreException, IOException {
-		// force String to be put in the jar cache
-		buildAST(
-			"public class X {\n" + 
-			"    /*start*/String/*end*/ field;\n" + 
-			"}"
-		);
-		try {
-			tearDownJavaProject();
-			
-			createJavaProject("P1", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-			createFile(
-				"/P1/X.js",
-				"public class X {\n" + 
-				"    /*start*/String/*end*/ field;\n" + 
-				"}"
-			);
-			ASTNode node = buildAST(getCompilationUnit("/P1/X.js"));
-			IBinding binding = ((Type) node).resolveBinding();
-			IJavaScriptElement element = binding.getJavaElement();
-			assertElementEquals(
-				"Unexpected Java element",
-				"String [in String.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]",
-				element
-			);
-			assertTrue("Element should exist", element.exists());
-		} finally {
-			deleteProject("P1");
-			setUpJavaProject();
-		}
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement for a binary member type coming from an anoumous class file is correct.
-	 * (regression test for bug 100636 [model] Can't find overriden methods of protected nonstatic inner class.)
-	 */
-	public void testBinaryMemberTypeFromAnonymousClassFile1() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("P", "/P/lib.jar", "p", "Z$1.class");
-		String source = classFile.getSource();
-		MarkerInfo markerInfo = new MarkerInfo(source);
-		markerInfo.astStarts = new int[] {source.indexOf("/*start*/") + "/*start*/".length()};
-		markerInfo.astEnds = new int[] {source.indexOf("/*end*/")};
-		ASTNode node = buildAST(markerInfo, classFile);
-		IBinding binding = ((TypeDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Member [in Z$Member.class [in p [in lib.jar [in P]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement for a binary member type coming from an anoumous class file is correct.
-	 * (regression test for bug 100636 [model] Can't find overriden methods of protected nonstatic inner class.)
-	 */
-	public void testBinaryMemberTypeFromAnonymousClassFile2() throws JavaScriptModelException {
-		IClassFile classFile = getClassFile("P", "/P/lib.jar", "", "Z$1.class");
-		String source = classFile.getSource();
-		MarkerInfo markerInfo = new MarkerInfo(source);
-		markerInfo.astStarts = new int[] {source.indexOf("/*start*/") + "/*start*/".length()};
-		markerInfo.astEnds = new int[] {source.indexOf("/*end*/")};
-		ASTNode node = buildAST(markerInfo, classFile);
-		IBinding binding = ((TypeDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Member [in Z$Member.class [in <default> [in lib.jar [in P]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (test several kinds of elements)
-	 */
-	public void testCreateBindings01() throws JavaScriptModelException {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setResolveBindings(true);
-		parser.setProject(getJavaProject("P"));
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		this.workingCopies = new IJavaScriptUnit[3];
-		this.workingCopies[0] = getWorkingCopy(
-			"/P/src/X.js", 
-			"public class X {\n" +
-			"  public void foo(int i, String s) {\n" +
-			"  }\n" +
-			"}",
-			owner, false);
-		this.workingCopies[1] = getWorkingCopy(
-			"/P/src/Y.js", 
-			"public class Y extends X {\n" +
-			"  void bar() {\n" +
-			"    new Y() {};\n" +
-			"  }\n" +
-			"}",
-			owner, false);
-		this.workingCopies[2] = getWorkingCopy(
-			"/P/src/I.js", 
-			"public interface I {\n" +
-			"  int BAR;\n" +
-			"}",
-			owner, false);
-		IType typeX = this.workingCopies[0].getType("X");
-		IJavaScriptElement[] elements = new IJavaScriptElement[] {
-			typeX, 
-			getClassFile("P", getExternalJCLPathString("1.5"), "java.lang", "Object.class").getType(),
-			typeX.getFunction("foo", new String[] {"I", "QString;"}),
-			this.workingCopies[2].getType("I").getField("BAR"),
-			this.workingCopies[1].getType("Y").getFunction("bar", new String[0]).getType("", 1)
-		};
-		IBinding[] bindings = parser.createBindings(elements, null);
-		assertBindingsEqual(
-			"LX;\n" + 
-			"Ljava/lang/Object;\n" + 
-			"LX;.foo(ILjava/lang/String;)V\n" + 
-			"LI;.BAR)I\n" + 
-			"LY$50;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (top level type)
-	 */
-	public void testCreateBindings02() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"public class X {\n" +
-			"}",
-			this.workingCopy.getType("X")
-		);
-		assertBindingsEqual(
-			"LX;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (member type)
-	 */
-	public void testCreateBindings03() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"public class X {\n" +
-			"  public class Member {\n" +
-			"  }\n" +
-			"}",
-			this.workingCopy.getType("X").getType("Member")
-		);
-		assertBindingsEqual(
-			"LX$Member;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (anonymous type)
-	 */
-	public void testCreateBindings04() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"public class X {\n" +
-			"  void foo() {\n" +
-			"    new X() {\n" +
-			"    };\n" +
-			"  }\n" +
-			"}",
-			this.workingCopy.getType("X").getFunction("foo", new String[0]).getType("", 1)
-		);
-		assertBindingsEqual(
-			"LX$40;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (local type)
-	 */
-	public void testCreateBindings05() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"public class X {\n" +
-			"  void foo() {\n" +
-			"    class Y {\n" +
-			"    }\n" +
-			"  }\n" +
-			"}",
-			this.workingCopy.getType("X").getFunction("foo", new String[0]).getType("Y", 1)
-		);
-		assertBindingsEqual(
-			"LX$42$Y;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (field)
-	 */
-	public void testCreateBindings06() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"public class X {\n" +
-			"  int field;\n" +
-			"}",
-			this.workingCopy.getType("X").getField("field")
-		);
-		assertBindingsEqual(
-			"LX;.field)I",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (method)
-	 */
-	public void testCreateBindings07() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"public class X {\n" +
-			"  void foo() {}\n" +
-			"}",
-			this.workingCopy.getType("X").getFunction("foo", new String[0])
-		);
-		assertBindingsEqual(
-			"LX;.foo()V",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (annotation declaration)
-	 */
-	public void testCreateBindings08() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"@interface X {\n" +
-			"}",
-			this.workingCopy.getType("X")
-		);
-		assertBindingsEqual(
-			"LX;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (enum declaration)
-	 */
-	public void testCreateBindings09() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"public enum X {\n" +
-			"}",
-			this.workingCopy.getType("X")
-		);
-		assertBindingsEqual(
-			"LX;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (annotation member declaration)
-	 */
-	public void testCreateBindings10() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"@interface X {\n" +
-			"  int foo();\n" +
-			"}",
-			this.workingCopy.getType("X").getFunction("foo", new String[0])
-		);
-		assertBindingsEqual(
-			"LX;.foo()I",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (enum constant)
-	 */
-	public void testCreateBindings11() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"public enum X {\n" +
-			"  FOO;\n" +
-			"}",
-			this.workingCopy.getType("X").getField("FOO")
-		);
-		assertBindingsEqual(
-			"LX;.FOO)LX;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (import)
-	 */
-	public void testCreateBindings12() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"import java.io.*;\n" +
-			"public class X implements Serializable {\n" +
-			"  static final long serialVersionUID = 0;\n" +
-			"}",
-			this.workingCopy.getImport("java.io.*")
-		);
-		assertBindingsEqual(
-			"java/io",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (import)
-	 */
-	public void testCreateBindings13() throws JavaScriptModelException {
-		IBinding[] bindings = createBindings(
-			"import java.io.Serializable;\n" +
-			"public class X implements Serializable {\n" +
-			"  static final long serialVersionUID = 0;\n" +
-			"}",
-			this.workingCopy.getImport("java.io.Serializable")
-		);
-		assertBindingsEqual(
-			"Ljava/io/Serializable;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (binary type)
-	 */
-	public void testCreateBindings15() throws CoreException {
-		IBinding[] bindings = createBinaryBindings(
-			"public class A {\n" +
-			"}",
-			getClassFile("/P/lib/A.class").getType()
-		);
-		assertBindingsEqual(
-			"LA;",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (binary field)
-	 */
-	public void testCreateBindings16() throws CoreException {
-		IBinding[] bindings = createBinaryBindings(
-			"public class A {\n" +
-			"  int field;\n" +
-			"}",
-			getClassFile("/P/lib/A.class").getType().getField("field")
-		);
-		assertBindingsEqual(
-			"LA;.field)I",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (binary method)
-	 */
-	public void testCreateBindings17() throws CoreException {
-		IBinding[] bindings = createBinaryBindings(
-			"public class A {\n" +
-			"  int foo(String s, boolean b) {\n" +
-			"    return -1;\n" +
-			"  }\n" +
-			"}",
-			getClassFile("/P/lib/A.class").getType().getFunction("foo", new String[] {"Ljava.lang.String;", "Z"})
-		);
-		assertBindingsEqual(
-			"LA;.foo(Ljava/lang/String;Z)I",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that the correct IBindings are created for a given set of IJavaScriptElement
-	 * (binary method)
-	 * (regression test for bug 122650 ASTParser.createBindings(IJavaScriptElement[]) returns wrong element)
-	 */
-	public void testCreateBindings18() throws CoreException {
-		IBinding[] bindings = createBinaryBindings(
-			"public class A {\n" +
-			"  <E> void foo(E e) {\n" +
-			"  }\n" +
-			"}",
-			getClassFile("/P/lib/A.class").getType().getFunction("foo", new String[] {"TE;"})
-		);
-		assertBindingsEqual(
-			"LA;.foo<E:Ljava/lang/Object;>(TE;)V",
-			bindings);
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a field is correct.
-	 */
-	public void testField1() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  Object /*start*/field/*end*/;\n" +
-			"}"
-		);
-		IBinding binding = ((VariableDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"field [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a field is correct.
-	 */
-	public void testField2() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  Object foo() {\n" +
-			"    return new Object() {\n" +
-			"      Object /*start*/field/*end*/;\n" +
-			"    };\n" +
-			"  }\n" +
-			"}"
-		);
-		IBinding binding = ((VariableDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"field [in <anonymous #1> [in foo() [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a local type is correct.
-	 */
-	public void testLocalType() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  void foo() {\n" +
-			"    /*start*/class Y {\n" +
-			"    }/*end*/\n" +
-			"  }\n" +
-			"}"
-		);
-		IBinding binding = ((TypeDeclarationStatement) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Y [in foo() [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a local type
-	 * and coming from a binding key resolution is correct.
-	 */
-	public void testLocalType2() throws CoreException {
-		String filePath = "/P/src/Z.js";
-		try {
-			String contents = 
-				"public class Z {\n" +
-				"  void foo() {\n" +
-				"    /*start*/class Local {\n" +
-				"    }/*end*/\n" +
-				"  }\n" +
-				"}";
-			createFile(filePath, contents);
-
-			// Get the binding key
-			ASTNode node = buildAST(contents, getCompilationUnit(filePath));
-			IBinding binding = ((TypeDeclarationStatement) node).resolveBinding();
-			String bindingKey = binding.getKey();
-			
-			// Resolve the binding key
-			BindingRequestor requestor = new BindingRequestor();
-			String[] bindingKeys = new String[] {bindingKey};
-			resolveASTs(
-				new IJavaScriptUnit[] {}, 
-				bindingKeys,
-				requestor,
-				getJavaProject("P"),
-				workingCopy.getOwner()
-			);
-			IBinding[] bindings = requestor.getBindings(bindingKeys);
-			
-			// Ensure the Java element is correct
-			IJavaScriptElement element = bindings[0].getJavaElement();
-			assertElementEquals(
-				"Unexpected Java element",
-				"Local [in foo() [in Z [in Z.java [in <default> [in src [in P]]]]]]",
-				element
-			);
-			assertTrue("Element should exist", element.exists());
-		} finally {
-			deleteFile(filePath);
-		}
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a local variable is correct.
-	 * (regression test for bug 79610 IVariableBinding#getJavaElement() returns null for local variables)
-	 */
-	public void testLocalVariable1() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  void foo() {\n" +
-			"    int /*start*/local/*end*/;\n" +
-			"  }\n" +
-			"}"
-		);
-		IBinding binding = ((VariableDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		IJavaScriptElement expected = getLocalVariable(this.workingCopy, "local", "local");
-		assertEquals(
-			"Unexpected Java element",
-			expected,
-			element
-		);
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a local variable is correct.
-	 * (regression test for bug 79610 IVariableBinding#getJavaElement() returns null for local variables)
-	 */
-	public void testLocalVariable2() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  void foo() {\n" +
-			"    Object first, /*start*/second/*end*/, third;\n" +
-			"  }\n" +
-			"}"
-		);
-		IBinding binding = ((VariableDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		IJavaScriptElement expected = getLocalVariable(this.workingCopy, "second", "second");
-		assertEquals(
-			"Unexpected Java element",
-			expected,
-			element
-		);
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a local variable is correct.
-	 * (regression test for bug 80021 [1.5] CCE in VariableBinding.getJavaElement())
-	 */
-	public void testLocalVariable3() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  void foo(/*start*/int arg/*end*/) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IBinding binding = ((VariableDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		IJavaScriptElement expected = getLocalVariable(this.workingCopy, "arg", "arg");
-		assertEquals(
-			"Unexpected Java element",
-			expected,
-			element
-		);
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a member type is correct.
-	 */
-	public void testMemberType() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/class Y {\n" +
-			"  }/*end*/\n" +
-			"}"
-		);
-		IBinding binding = ((TypeDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Y [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method is correct.
-	 */
-	public void testMethod01() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X<K, V> {\n" +
-			"  /*start*/void foo(int i, Object o, java.lang.String s, Class[] c, X<K, V> x) {\n" +
-			"  }/*end*/\n" +
-			"}"
-		);
-		IBinding binding = ((FunctionDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"foo(int, Object, java.lang.String, Class[], X<K,V>) [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method is correct.
-	 */
-	public void testMethod02() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X<K, V> {\n" +
-			"  /*start*/void foo() {\n" +
-			"  }/*end*/\n" +
-			"}"
-		);
-		IBinding binding = ((FunctionDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"foo() [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method is correct.
-	 * (regression test for bug 78757 FunctionBinding.getJavaElement() returns null)
-	 */
-	public void testMethod03() throws JavaScriptModelException {
-		IJavaScriptUnit otherWorkingCopy = null;
-		try {
-			otherWorkingCopy = getWorkingCopy(
-				"/P/src/Y.js",
-				"public class Y {\n" +
-				"  void foo(int i, String[] args, java.lang.Class clazz) {}\n" +
-				"}",
-				this.workingCopy.getOwner(), 
-				null
-			);
-			ASTNode node = buildAST(
-				"public class X {\n" +
-				"  void bar() {\n" +
-				"    Y y = new Y();\n" +
-				"    /*start*/y.foo(1, new String[0], getClass())/*end*/;\n" +
-				"  }\n" +
-				"}"
-			);
-			IBinding binding = ((FunctionInvocation) node).resolveMethodBinding();
-			assertNotNull("No binding", binding);
-			IJavaScriptElement element = binding.getJavaElement();
-			assertElementEquals(
-				"Unexpected Java element",
-				"foo(int, String[], java.lang.Class) [in Y [in [Working copy] Y.java [in <default> [in src [in P]]]]]",
-				element
-			);
-			assertTrue("Element should exist", element.exists());
-		} finally {
-			if (otherWorkingCopy != null)
-				otherWorkingCopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method is correct.
-	 * (regression test for bug 81258 IFunctionBinding#getJavaElement() is null with inferred method parameterization)
-	 */
-	public void testMethod04() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" + 
-			"	void foo() {\n" + 
-			"		/*start*/bar(new B<Object>())/*end*/;\n" + 
-			"	}\n" + 
-			"	<T extends Object> void bar(A<? extends T> arg) {\n" + 
-			"	}\n" + 
-			"}\n" + 
-			"class A<T> {\n" + 
-			"}\n" + 
-			"class B<T> extends A<T> {	\n" + 
-			"}"
-		);
-		IBinding binding = ((FunctionInvocation) node).resolveMethodBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"bar(A<? extends T>) [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a parameterized method is correct.
-	 * (regression test for bug 82382 IFunctionBinding#getJavaElement() for method m(T t) in parameterized type Gen<T> is null)
-	 */
-	public void testMethod05() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X<T> {\n" + 
-			"    void m(T t) { }\n" + 
-			"}\n" + 
-			"\n" + 
-			"class Y {\n" + 
-			"    {\n" + 
-			"        /*start*/new X<String>().m(\"s\")/*end*/;\n" + 
-			"    }\n" + 
-			"}"
-		);
-		IBinding binding = ((FunctionInvocation) node).resolveMethodBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"m(T) [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method inside an annotation is correct.
-	 * (regression test for bug 83300 [1.5] ClassCastException in #getJavaElement() on binding of annotation element)
-	 */
-	public void testMethod06() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"@X(/*start*/value/*end*/=\"Hello\", count=-1)\n" + 
-			"@interface X {\n" + 
-			"    String value();\n" + 
-			"    int count();\n" + 
-			"}"
-		);
-		IBinding binding = ((SimpleName) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"value() [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method with array parameters is correct.
-	 * (regression test for bug 88769 IFunctionBinding#getJavaElement() drops extra array dimensions and varargs
-	 */
-	public void testMethod07() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/public int[] bar(int a[]) {\n" +
-			"    return a;\n" +
-			"  }/*end*/\n" +
-			"}"
-		);
-		IBinding binding = ((FunctionDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"bar(int[]) [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method with array parameters is correct.
-	 * (regression test for bug 88769 IFunctionBinding#getJavaElement() drops extra array dimensions and varargs
-	 */
-	public void testMethod08() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/public Object[] bar2(Object[] o[][]) [][] {\n" +
-			"    return o;\n" +
-			"  }/*end*/\n" +
-			"}"
-		);
-		IBinding binding = ((FunctionDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"bar2(Object[][][]) [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a method with varargs parameters is correct.
-	 * (regression test for bug 88769 IFunctionBinding#getJavaElement() drops extra array dimensions and varargs
-	 */
-	public void testMethod09() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/public void bar3(Object... objs) {\n" +
-			"  }/*end*/\n" +
-			"}"
-		);
-		IBinding binding = ((FunctionDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"bar3(Object[]) [in X [in [Working copy] X.java [in <default> [in src [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that getting the IJavaScriptElement of an IBinding representing a method in an anonymous type
-	 * doesn't throw a ClassCastException if there is a syntax error.
-	 * (regression test for bug 149853 CCE in IFunctionBinding#getJavaElement() for recovered anonymous type)
-	 */
-	public void testMethod10() throws CoreException {
-		try {
-			// use a compilation unit instead of a working copy to use the ASTParser instead of reconcile
-			createFile(
-				"/P/src/Test.js",
-				"public class X {\n" + 
-				"        void test() {\n" + 
-				"                new Object() {\n" + 
-				"                        /*start*/public void yes() {\n" + 
-				"                                System.out.println(\"hello world\");\n" + 
-				"                        }/*end*/\n" + 
-				"                } // missing semicolon;\n" + 
-				"        }\n" + 
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/src/Test.js");
-			
-			ASTNode node = buildAST(null/*use existing contents*/, cu, false/*don't report errors*/, true/*statement recovery*/);
-			IBinding binding = ((FunctionDeclaration) node).resolveBinding();
-			assertNotNull("No binding", binding);
-			IJavaScriptElement element = binding.getJavaElement();
-			assertElementEquals(
-				"Unexpected Java element",
-				"yes() [in <anonymous #1> [in test() [in X [in Test.java [in <default> [in src [in P]]]]]]]",
-				element
-			);
-			assertTrue("Element should exist", element.exists());
-		} finally {
-			deleteFile("/P/src/Test.js");
-		}
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a package is correct.
-	 */
-	public void testPackage1() throws CoreException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/java.lang/*end*/.String field;\n" +
-			"}"
-		);
-		IBinding binding = ((QualifiedName) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"java.lang [in "+ getExternalJCLPathString("1.5") + "]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a package is correct
-	 * (case of default package)
-	 */
-	public void testPackage2() throws CoreException {
-		ASTNode node = buildAST(
-			"/*start*/public class X {\n" +
-			"}/*end*/"
-		);
-		ITypeBinding typeBinding = ((TypeDeclaration) node).resolveBinding();
-		assertNotNull("No binding", typeBinding);
-		IPackageBinding binding = typeBinding.getPackage();
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"<default> [in src [in P]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a parameterized binary type is correct.
-	 * (regression test for bug 78087 [dom] TypeBinding#getJavaElement() throws IllegalArgumentException for parameterized or raw reference to binary type)
-	 */
-	public void testParameterizedBinaryType() throws CoreException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/Comparable<String>/*end*/ field;\n" +
-			"}"
-		);
-		IBinding binding = ((Type) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Comparable [in Comparable.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a parameterized binary method is correct.
-	 * (regression test for bug 88892 [1.5] IFunctionBinding#getJavaElement() returns nonexistent IMethods (wrong parameter types))
-	 */
-	public void testParameterizedBinaryMethod() throws CoreException {
-		ASTNode node = buildAST(
-			"public class X extends p.Y<String> {\n" +
-			"  public X(String s) {\n" +
-			"    /*start*/super(s);/*end*/\n" +
-			"  }\n" +
-			"}"		
-		);
-		IBinding binding = ((SuperConstructorInvocation) node).resolveConstructorBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Y(T) [in Y [in Y.class [in p [in lib.jar [in P]]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a raw binary type is correct.
-	 * (regression test for bug 78087 [dom] TypeBinding#getJavaElement() throws IllegalArgumentException for parameterized or raw reference to binary type)
-	 */
-	public void testRawBinaryType() throws CoreException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/Comparable/*end*/ field;\n" +
-			"}"
-		);
-		IBinding binding = ((Type) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"Comparable [in Comparable.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-	
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a top level type is correct.
-	 */
-	public void testTopLevelType1() throws JavaScriptModelException {
-		ASTNode node = buildAST(
-			"/*start*/public class X {\n" +
-			"}/*end*/"
-		);
-		IBinding binding = ((TypeDeclaration) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"X [in [Working copy] X.java [in <default> [in src [in P]]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a top level type is correct
-	 * (the top level type being in another compilation unit)
-	 */
-	public void testTopLevelType2() throws CoreException {
-		try {
-			createFile(
-				"/P/src/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			ASTNode node = buildAST(
-				"public class X extends /*start*/Y/*end*/ {\n" +
-				"}"
-			);
-			IBinding binding = ((Type) node).resolveBinding();
-			assertNotNull("No binding", binding);
-			IJavaScriptElement element = binding.getJavaElement();
-			assertElementEquals(
-				"Unexpected Java element",
-				"Y [in Y.java [in <default> [in src [in P]]]]",
-				element
-			);
-			assertTrue("Element should exist", element.exists());
-		} finally {
-			deleteFile("/P/src/Y.js");
-		}
-	}
-
-	/*
-	 * Ensures that the IJavaScriptElement of an IBinding representing a top level type is correct
-	 * (the top level type being in a jar)
-	 */
-	public void testTopLevelType3() throws CoreException {
-		ASTNode node = buildAST(
-			"public class X {\n" +
-			"  /*start*/String/*end*/ field;\n" +
-			"}"
-		);
-		IBinding binding = ((Type) node).resolveBinding();
-		assertNotNull("No binding", binding);
-		IJavaScriptElement element = binding.getJavaElement();
-		assertElementEquals(
-			"Unexpected Java element",
-			"String [in String.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]",
-			element
-		);
-		assertTrue("Element should exist", element.exists());
-	}
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=160637
-	 */
-	public void testCreateBindings19() throws CoreException {
-		IBinding[] bindings = createBinaryBindings(
-			"public class A {\n" +
-			"  String foo(String s) {\n" +
-			"		return null;\n" +
-			"  }\n" +
-			"}",
-			getClassFile("/P/lib/A.class").getType().getFunction("foo", new String[] {"Ljava.lang.String;"})
-		);
-		assertNotNull("No bindings", bindings);
-		assertEquals("Wrong size", 1, bindings.length);
-		assertTrue("Not a method binding", bindings[0] instanceof IFunctionBinding);
-		assertBindingsEqual(
-			"LA;.foo(Ljava/lang/String;)Ljava/lang/String;",
-			bindings);
-	}
-}
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
deleted file mode 100644
index 2b9ec0e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTNodesCollectorVisitor.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-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 {
-	
-	private Set detachedAstNodes;
-	
-	/**
-	 * 
-	 * @see java.lang.Object#Object()
-	 */
-	ASTNodesCollectorVisitor() {
-        // visit Javadoc.tags()
-		super(true); 
-		this.detachedAstNodes = new HashSet();
-	}
-
-	private void add(ASTNode node) {
-		this.detachedAstNodes.add(node);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration)
-	 */
-	public void endVisit(AnonymousClassDeclaration node) {
-		add(node);
-		detachedListElement(node.bodyDeclarations());
-	}
-
-	private void detachedListElement(List list) {
-		for (int i = 0; i < list.size(); i++) {
-			list.remove(0);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation)
-	 * @deprecated using deprecated code
-	 */
-	public void endVisit(ClassInstanceCreation node) {
-		if (node.getAST().apiLevel() == AST.JLS2) {
-			node.setName(
-					node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.JavaScriptUnit)
-	 */
-	public void endVisit(JavaScriptUnit node) {
-		detachedListElement(node.imports());
-		node.setPackage(node.getAST().newPackageDeclaration());
-	}
-
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.FieldAccess)
-	 */
-	public void endVisit(FieldAccess 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.FieldDeclaration)
-	 */
-	public void endVisit(FieldDeclaration node) {
-		detachedListElement(node.fragments());
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.ImportDeclaration)
-	 */
-	public void endVisit(ImportDeclaration node) {
-		add(node);
-		node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see ASTVisitor#endVisit(MemberRef)
-	 * @since 3.0
-	 */
-	public void endVisit(MemberRef node) {
-		add(node);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.FunctionDeclaration)
-	 */
-	public void endVisit(FunctionDeclaration 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.FunctionInvocation)
-	 */
-	public void endVisit(FunctionInvocation node) {
-		add(node);
-		node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see ASTVisitor#endVisit(FunctionRef)
-	 * @since 3.0
-	 */
-	public void endVisit(FunctionRef node) {
-		add(node);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.PackageDeclaration)
-	 */
-	public void endVisit(PackageDeclaration node) {
-		add(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.QualifiedName)
-	 */
-	public void endVisit(QualifiedName node) {
-		add(node);
-		node.setQualifier(node.getAST().newSimpleName("sss")); //$NON-NLS-1$
-		node.setName(node.getAST().newSimpleName("sss")); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.SimpleName)
-	 */
-	public void endVisit(SimpleName node) {
-		ASTNode parent = node.getParent();
-		switch(parent.getNodeType()) {
-			case ASTNode.CONTINUE_STATEMENT :
-			case ASTNode.BREAK_STATEMENT :
-			case ASTNode.LABELED_STATEMENT :
-				break;
-			default :
-				add(node);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.SimpleType)
-	 */
-	public void endVisit(SimpleType 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.SingleVariableDeclaration)
-	 */
-	public void endVisit(SingleVariableDeclaration 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.SuperFieldAccess)
-	 */
-	public void endVisit(SuperFieldAccess node) {
-		node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-		node.setQualifier(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.SuperMethodInvocation)
-	 */
-	public void endVisit(SuperMethodInvocation node) {
-		node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-		node.setQualifier(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.ThisExpression)
-	 */
-	public void endVisit(ThisExpression node) {
-		node.setQualifier(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.TypeDeclaration)
-	 * @deprecated using deprecated code
-	 */
-	public void endVisit(TypeDeclaration node) {
-		add(node);
-		node.setName(node.getAST().newSimpleName("XXX")); //$NON-NLS-1$
-		if (node.getAST().apiLevel() == AST.JLS2) {
-			node.setSuperclass(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.VariableDeclarationExpression)
-	 */
-	public void endVisit(VariableDeclarationExpression node) {
-		detachedListElement(node.fragments());
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment)
-	 */
-	public void endVisit(VariableDeclarationFragment node) {
-		add(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.VariableDeclarationStatement)
-	 */
-	public void endVisit(VariableDeclarationStatement node) {
-		detachedListElement(node.fragments());
-	}
-
-	/**
-	 * Returns the detachedAstNodes.
-	 * @return Set
-	 */
-	public Set getDetachedAstNodes() {
-		return detachedAstNodes;
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTParserTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTParserTest.java
deleted file mode 100644
index 52c580e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTParserTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.lang.reflect.Method;
-import java.util.HashMap;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTParser;
-
-public class ASTParserTest extends org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase { 
-
-	/** @deprecated using deprecated code */
-	public static Test suite() {
-		// TODO (frederic) use buildList + setAstLevel(init) instead...
-		junit.framework.TestSuite suite = new junit.framework.TestSuite(ASTParserTest.class.getName());
-		
-		Class c = ASTParserTest.class;
-		Method[] methods = c.getMethods();
-		for (int i = 0, max = methods.length; i < max; i++) {
-			if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
-				suite.addTest(new ASTParserTest(methods[i].getName(), AST.JLS2));
-				//suite.addTest(new ASTParserTest(methods[i].getName(), AST.JLS3));
-			}
-		}
-		return suite;
-	}	
-	
-	AST ast;
-	ASTParser parser;
-	int API_LEVEL;
-
-	public ASTParserTest(String name, int apiLevel) {
-		super(name);
-		this.API_LEVEL = apiLevel;
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		ast = AST.newAST(this.API_LEVEL);
-		parser = ASTParser.newParser(this.API_LEVEL);
-	}
-	
-	protected void tearDown() throws Exception {
-		ast = null;
-		super.tearDown();
-	}
-	
-	/** @deprecated using deprecated code */
-	public String getName() {
-		String name = super.getName();
-		switch (this.API_LEVEL) {
-			case AST.JLS2:
-				name = "JLS2 - " + name;
-				break;
-			case AST.JLS3:
-				name = "JLS3 - " + name; 
-				break;
-		}
-		return name;
-	}
-	
-	public void testKConstants() {
-		assertTrue(ASTParser.K_EXPRESSION == 1);
-		assertTrue(ASTParser.K_STATEMENTS == 2);
-		assertTrue(ASTParser.K_CLASS_BODY_DECLARATIONS == 4);
-		assertTrue(ASTParser.K_COMPILATION_UNIT == 8);
-	}
-
-	public void testSetting() {
-		// for now, just slam some values in
-	    parser.setKind(ASTParser.K_COMPILATION_UNIT);
-	    parser.setKind(ASTParser.K_CLASS_BODY_DECLARATIONS);
-	    parser.setKind(ASTParser.K_EXPRESSION);
-	    parser.setKind(ASTParser.K_STATEMENTS);
-	    
-	    parser.setSource(new char[0]);
-	    parser.setSource((char[]) null);
-	    parser.setSource((IJavaScriptUnit) null);
-	    parser.setSource((IClassFile) null);
-	    
-	    parser.setResolveBindings(false);
-	    parser.setResolveBindings(true);
-	    
-	    parser.setSourceRange(0, -1);
-	    parser.setSourceRange(0, 1);
-	    parser.setSourceRange(1, 0);
-	    parser.setSourceRange(1, -1);
-	    
-	    parser.setWorkingCopyOwner(null);
-
-	    parser.setUnitName(null);
-	    parser.setUnitName("Foo.js"); //$NON-NLS-1$
-
-	    parser.setProject(null);
-
-	    parser.setFocalPosition(-1);
-	    parser.setFocalPosition(0);
-
-	    parser.setCompilerOptions(null);
-	    parser.setCompilerOptions(new HashMap());
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTPositionsTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTPositionsTest.java
deleted file mode 100644
index e95775a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTPositionsTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import junit.framework.Test;
-
-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.JavaScriptUnit;
-
-public class ASTPositionsTest extends ConverterTestSetup {
-	
-	IJavaScriptUnit workingCopy;
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		this.ast = AST.newAST(AST.JLS3);
-	}
-	
-	public ASTPositionsTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(ASTPositionsTest.class);
-	}
-	
-	private void sanityCheck(final String contents, JavaScriptUnit compilationUnit) {
-		for (int i = 0, max = contents.length(); i < max; i++) {
-    		final int lineNumber = compilationUnit.getLineNumber(i);
-    		assertTrue("Wrong value for char at " + i, lineNumber >= 1);
-    		final int columnNumber = compilationUnit.getColumnNumber(i);
-    		assertTrue("Wrong value for char at " + i, columnNumber >= 0);
-    		final int position = compilationUnit.getPosition(lineNumber, columnNumber);
-    		assertTrue("Wrong value for char at i", position >= 0);
-    		if (position == 0) {
-    			assertEquals("Only true for first character", 0, i);
-    		}
-			assertEquals("Wrong char", contents.charAt(i), contents.charAt(position));
-    	}
-	}
-	
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		if (this.workingCopy != null) {
-			this.workingCopy.discardWorkingCopy();
-			this.workingCopy = null;
-		}
-	}
-		
-	public void test001() throws JavaScriptModelException {
-    	this.workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-    	final String contents =
-			"var d = new Date();\r\n" +
-			"function X() {\r\n" +
-			"	var date= d;\r\n" +
-			"}";
-    	ASTNode node = buildAST(
-    			contents,
-    			this.workingCopy,
-    			false);
-    	assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-    	JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-    	assertEquals("Wrong char", 'X', contents.charAt(compilationUnit.getPosition(2, 9)));
-    	assertEquals("Wrong char", 'v', contents.charAt(compilationUnit.getPosition(1, 0)));
-    	assertEquals("Wrong position", -1, compilationUnit.getPosition(1, -1));
-    	assertEquals("Wrong position", -1, compilationUnit.getPosition(-1, 0));
-    	assertEquals("Wrong position", -1, compilationUnit.getPosition(5, 0));
-    	assertEquals("Wrong position", -1, compilationUnit.getPosition(4, 1));
-    	assertEquals("Wrong char", '}', contents.charAt(compilationUnit.getPosition(4, 0)));
-    	assertEquals("Wrong char", '\r', contents.charAt(compilationUnit.getPosition(1, 19)));
-    	
-    	sanityCheck(contents, compilationUnit);
-	}
-
-	public void test002() throws JavaScriptModelException {
-    	this.workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-    	final String contents =
-			"function X() {\n" +
-			"	var map= null;\n" +
-			"}\n";
-    	ASTNode node = buildAST(
-    			contents,
-    			this.workingCopy,
-    			false);
-    	assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-    	JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-    	sanityCheck(contents, compilationUnit);
-	}
-	
-	public void test003() throws JavaScriptModelException {
-    	this.workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-    	final String contents =
-			"function X() {\r" +
-			"	var map= null;\r" +
-			"}\r";
-    	ASTNode node = buildAST(
-    			contents,
-    			this.workingCopy,
-    			false);
-    	assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-    	JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-    	sanityCheck(contents, compilationUnit);
-	}
-	
-	public void test004() throws JavaScriptModelException {
-    	this.workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-    	String contents =
-			"function X() {}";
-    	ASTNode node = buildAST(
-    			contents,
-    			this.workingCopy,
-    			false);
-       	assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-       	JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-       	sanityCheck(contents, compilationUnit);
-		assertEquals(1, compilationUnit.getLineNumber(0));
-	}
-	
-	public void test005() throws JavaScriptModelException {
-    	this.workingCopy = getWorkingCopy("/Converter/src/X.js", true/*resolve*/);
-    	String contents =
-			"function X() {}";
-    	ASTNode node = buildAST(
-    			contents,
-    			this.workingCopy,
-    			false);
-       	assertEquals("Not a compilation unit", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-       	JavaScriptUnit compilationUnit = (JavaScriptUnit) node;
-		assertEquals(1, compilationUnit.getLineNumber(0));
-       	sanityCheck(contents, compilationUnit);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTStructuralPropertyTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTStructuralPropertyTest.java
deleted file mode 100644
index 13eab69..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTStructuralPropertyTest.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.dom.*;
-
-public class ASTStructuralPropertyTest extends org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase { 
-
-	/** @deprecated using deprecated code */
-	public static Test suite() {
-		// TODO (frederic) use buildList + setAstLevel(init) instead...
-		junit.framework.TestSuite suite = new junit.framework.TestSuite(ASTStructuralPropertyTest.class.getName());
-		
-		Class c = ASTStructuralPropertyTest.class;
-		Method[] methods = c.getMethods();
-		for (int i = 0, max = methods.length; i < max; i++) {
-			if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
-				suite.addTest(new ASTStructuralPropertyTest(methods[i].getName(), AST.JLS2));
-				suite.addTest(new ASTStructuralPropertyTest(methods[i].getName(), AST.JLS3));
-			}
-		}
-		return suite;
-	}	
-	
-	AST ast;
-	ASTParser parser;
-	int API_LEVEL;
-
-	public ASTStructuralPropertyTest(String name, int apiLevel) {
-		super(name);
-		this.API_LEVEL = apiLevel;
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		ast = AST.newAST(this.API_LEVEL);
-		parser = ASTParser.newParser(this.API_LEVEL);
-	}
-	
-	protected void tearDown() throws Exception {
-		ast = null;
-		super.tearDown();
-	}
-	
-	/** @deprecated using deprecated code */
-	public String getName() {
-		String name = super.getName();
-		switch (this.API_LEVEL) {
-			case AST.JLS2:
-				name = "JLS2 - " + name;
-				break;
-			case AST.JLS3:
-				name = "JLS3 - " + name; 
-				break;
-		}
-		return name;
-	}
-	
-	public void testLocationInParent() {
-		final ASTNode root = SampleASTs.oneOfEach(ast);
-		ASTVisitor v = new ASTVisitor(true) {
-			public void postVisit(ASTNode node) {
-				StructuralPropertyDescriptor me = node.getLocationInParent();
-				assertTrue(me != null || (node == root));
-                ASTNode p = node.getParent();
-                if (p != null) {
-                    List parentProperties = p.structuralPropertiesForType();
-                    boolean foundMe = false;
-                    for (Iterator it = parentProperties.iterator(); it
-                            .hasNext();) {
-                        StructuralPropertyDescriptor prop = 
-                            (StructuralPropertyDescriptor) it.next();
-                        if (me == prop || prop.getId().equals(me.getId())) {
-                            foundMe = true;
-                            break;
-                        }
-                    }
-                    assertTrue(foundMe);
-                }
-			}
-		};
-		root.accept(v);
-	}
-		
-	/**
-	 * @deprecated since using deprecated constant
-	 */
-	public void testStructuralProperties() {
-		final ASTNode root = SampleASTs.oneOfEach(ast);
-		
-		final Set simpleProperties = new HashSet(400);
-		final Set childProperties = new HashSet(400);
-		final Set childListProperties = new HashSet(400);
-		final Set visitedProperties = new HashSet(400);
-		final Set nodeClasses = new HashSet(100);
-		
-		ASTVisitor v = new ASTVisitor(true) {
-			public void postVisit(ASTNode node) {
-				StructuralPropertyDescriptor me = node.getLocationInParent();
-				if (me != null) {
-					visitedProperties.add(me);
-				}
-				visitedProperties.add(me);
-				nodeClasses.add(node.getClass());
-				List ps = node.structuralPropertiesForType();
-				for (Iterator it = ps.iterator(); it.hasNext(); ) {
-					StructuralPropertyDescriptor p = (StructuralPropertyDescriptor) it.next();
-					Object o = node.getStructuralProperty(p);
-					if (p.isSimpleProperty()) {
-						simpleProperties.add(p);
-						// slam simple properties
-						node.setStructuralProperty(p, o);
-					} else if (p.isChildProperty()) {
-						childProperties.add(p);
-						// replace child with a copy
-						ASTNode copy = ASTNode.copySubtree(ast, (ASTNode) o);
-						node.setStructuralProperty(p, copy);
-					} else if (p.isChildListProperty()) {
-						childListProperties.add(p);
-						// replace child list with copies
-						List list = (List) o;
-						List copy = ASTNode.copySubtrees(ast, list);
-						list.clear();
-						list.addAll(copy);
-					}
-				}
-			}
-		};
-		root.accept(v);
-		switch(this.API_LEVEL) {
-			case AST.JLS2 :
-				assertEquals("Wrong number of visited node classes", 67, nodeClasses.size());
-				assertEquals("Wrong number of visited properties", 82, visitedProperties.size());
-				assertEquals("Wrong number of simple properties", 26, simpleProperties.size());
-				assertEquals("Wrong number of child properties", 90, childProperties.size());
-				assertEquals("Wrong number of child list properties", 26, childListProperties.size());
-				break;
-			case AST.JLS3 :
-				assertEquals("Wrong number of visited node classes", 80, nodeClasses.size());
-				assertEquals("Wrong number of visited properties", 104, visitedProperties.size());
-				assertEquals("Wrong number of simple properties", 23, simpleProperties.size());
-				assertEquals("Wrong number of child properties", 115, childProperties.size());
-				assertEquals("Wrong number of child list properties", 52, childListProperties.size());
-		}
-		// visit should rebuild tree
-		ASTNode newRoot = SampleASTs.oneOfEach(ast);
-		assertTrue(root.subtreeMatch(new ASTMatcher(), newRoot));
-	}
-	
-	public void testProtect() {
-		final ASTNode root = SampleASTs.oneOfEach(ast);
-		
-		// check that all properties are again modifiable
-		class Slammer extends ASTVisitor {
-			boolean shouldBeProtected;
-			Slammer(boolean shouldBeProtected){
-				super(true); // visit doc
-				this.shouldBeProtected = shouldBeProtected;
-			}
-			public void postVisit(ASTNode node) {
-				try {
-					node.setSourceRange(1, 1);
-					assertTrue(!shouldBeProtected);
-				} catch (RuntimeException e) {
-					assertTrue(shouldBeProtected);
-				}
-				List ps = node.structuralPropertiesForType();
-				for (Iterator it = ps.iterator(); it.hasNext(); ) {
-					StructuralPropertyDescriptor p = (StructuralPropertyDescriptor) it.next();
-					Object o = node.getStructuralProperty(p);
-					if (p.isSimpleProperty()) {
-						// slam simple properties
-						try {
-							node.setStructuralProperty(p, o);
-							assertTrue(!shouldBeProtected);
-						} catch (RuntimeException e) {
-							assertTrue(shouldBeProtected);
-						}
-					} else if (p.isChildProperty()) {
-						// replace child with a copy
-						ASTNode copy = ASTNode.copySubtree(ast, (ASTNode) o);
-						try {
-							node.setStructuralProperty(p, copy);
-							assertTrue(!shouldBeProtected);
-						} catch (RuntimeException e) {
-							assertTrue(shouldBeProtected);
-						}
-					} else if (p.isChildListProperty()) {
-						// replace child list with copies
-						List list = (List) o;
-						List copy = ASTNode.copySubtrees(ast, list);
-						if (!list.isEmpty()) {
-							try {
-								list.clear();
-								assertTrue(!shouldBeProtected);
-							} catch (RuntimeException e) {
-								assertTrue(shouldBeProtected);
-							}
-							try {
-								list.addAll(copy);
-								assertTrue(!shouldBeProtected);
-							} catch (RuntimeException e) {
-								assertTrue(shouldBeProtected);
-							}
-						}
-					}
-				}
-			}
-		}
-		
-		class Protector extends ASTVisitor {
-			boolean shouldBeProtected;
-			Protector(boolean shouldBeProtected){
-				super(true); // visit doc
-				this.shouldBeProtected = shouldBeProtected;
-			}
-			public void preVisit(ASTNode node) {
-				int f = node.getFlags();
-				if (shouldBeProtected) {
-					f |= ASTNode.PROTECT;
-				} else {
-					f &= ~ASTNode.PROTECT;
-				}
-				node.setFlags(f);
-			}
-		}
-
-
-		// mark all nodes as protected
-		root.accept(new Protector(true));
-		root.accept(new Slammer(true));
-		
-		// mark all nodes as unprotected
-		root.accept(new Protector(false));
-		root.accept(new Slammer(false));
-	}
-	
-	public void testDelete() {
-		final ASTNode root = SampleASTs.oneOfEach(ast);
-		
-		// check that nodes can be deleted unless mandatory
-		root.accept(new ASTVisitor(true) {
-			public void postVisit(ASTNode node) {
-				List ps = node.structuralPropertiesForType();
-				for (Iterator it = ps.iterator(); it.hasNext(); ) {
-					StructuralPropertyDescriptor p = (StructuralPropertyDescriptor) it.next();
-					if (p.isChildProperty()) {
-						ChildPropertyDescriptor c = (ChildPropertyDescriptor) p;
-						ASTNode child = (ASTNode) node.getStructuralProperty(c);
-						if (!c.isMandatory() && child != null) {
-							try {
-								child.delete(); 
-								assertTrue(node.getStructuralProperty(c) == null);
-						    } catch (RuntimeException e) {
-							    assertTrue(false);
-						    }
-						}
-					} else if (p.isChildListProperty()) {
-						// replace child list with copies
-						List list = (List) node.getStructuralProperty(p);
-						// iterate over a copy and try removing all members
-						List copy = new ArrayList();
-						copy.addAll(list);
-						for (Iterator it2 = copy.iterator(); it2.hasNext(); ) {
-							ASTNode n = (ASTNode) it2.next();
-							try {
-								n.delete();
-								assertTrue(!list.contains(n));
-						    } catch (RuntimeException e) {
-							    assertTrue(false);
-						    }
-						}
-					}
-				}
-			}
-		});
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testCreateInstance() {
-		for (int nodeType = 0; nodeType < 100; nodeType++) {
-			Class nodeClass = null;
-			try {
-				nodeClass = ASTNode.nodeClassForType(nodeType);
-			} catch (RuntimeException e) {
-				// oops - guess that's not valid
-			}
-			if (nodeClass != null) {
-				try {
-					ASTNode node = ast.createInstance(nodeClass);
-					if (ast.apiLevel() == AST.JLS2) {
-						assertTrue((nodeType >= 1) && (nodeType <= 69));
-					} else {
-						assertTrue((nodeType >= 1) && (nodeType <= 83));
-					}
-					assertTrue(node.getNodeType() == nodeType);
-					//ASTNode node2 = ast.createInstance(nodeType);
-					//assertTrue(node2.getNodeType() == nodeType);
-				} catch (RuntimeException e) {
-					if (ast.apiLevel() == AST.JLS2) {
-						assertTrue((nodeType < 1) || (nodeType > 69));
-					} else {
-						assertTrue((nodeType < 1) || (nodeType > 83));
-					}
-				}
-			}
-		}
-	}
-	
-	public void testNodeClassForType() {
-		Set classes = new HashSet(100);
-		// make sure node types are contiguous starting at 0
-		int hi = 0;
-		for (int nodeType = 1; nodeType < 100; nodeType++) {
-			try {
-				Class nodeClass = ASTNode.nodeClassForType(nodeType);
-				assertTrue(ASTNode.class.isAssignableFrom(nodeClass));
-				classes.add(nodeClass);
-				if (nodeType > 1) {
-					assertTrue(hi == nodeType - 1);
-				}
-				hi = nodeType;
-			} catch (RuntimeException e) {
-				// oops - guess that's not valid
-			}
-		}
-		assertTrue(hi == 83); // last known one
-		assertTrue(classes.size() == hi); // all classes are distinct
-	}
-}
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
deleted file mode 100644
index dfb9462..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTTest.java
+++ /dev/null
@@ -1,7191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import junit.framework.Test;
-
-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.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.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.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.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;
-
-// testing
-
-public class ASTTest extends org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase { 
-	
-	class CheckPositionsMatcher extends ASTMatcher {
-		
-		public CheckPositionsMatcher() {
-			// include doc tags
-			super(true);
-		}
-	
-		private void checkPositions(Object source, Object destination) {
-			assertTrue(source instanceof ASTNode);
-			assertTrue(destination instanceof ASTNode);
-			int startPosition = ((ASTNode)source).getStartPosition();
-			if (startPosition != -1) {
-				assertTrue(startPosition == ((ASTNode)destination).getStartPosition());
-			}
-			int length = ((ASTNode)source).getLength();
-			if (length != 0) {
-				assertTrue(length == ((ASTNode)destination).getLength());
-			}
-		}
-	
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(AnonymousClassDeclaration, Object)
-		 */
-		public boolean match(AnonymousClassDeclaration node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ArrayAccess, Object)
-		 */
-		public boolean match(ArrayAccess node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ArrayCreation, Object)
-		 */
-		public boolean match(ArrayCreation node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ArrayInitializer, Object)
-		 */
-		public boolean match(ArrayInitializer node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ArrayType, Object)
-		 */
-		public boolean match(ArrayType node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(Assignment, Object)
-		 */
-		public boolean match(Assignment node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(Block, Object)
-		 */
-		public boolean match(Block node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(BlockComment, Object)
-         * @since 3.0
-		 */
-		public boolean match(BlockComment node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(BooleanLiteral, Object)
-		 */
-		public boolean match(BooleanLiteral node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(BreakStatement, Object)
-		 */
-		public boolean match(BreakStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(CatchClause, Object)
-		 */
-		public boolean match(CatchClause node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(CharacterLiteral, Object)
-		 */
-		public boolean match(CharacterLiteral node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ClassInstanceCreation, Object)
-		 */
-		public boolean match(ClassInstanceCreation node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(JavaScriptUnit, Object)
-		 */
-		public boolean match(JavaScriptUnit node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ConditionalExpression, Object)
-		 */
-		public boolean match(ConditionalExpression node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ConstructorInvocation, Object)
-		 */
-		public boolean match(ConstructorInvocation node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ContinueStatement, Object)
-		 */
-		public boolean match(ContinueStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(DoStatement, Object)
-		 */
-		public boolean match(DoStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(EmptyStatement, Object)
-		 */
-		public boolean match(EmptyStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-		
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(EnhancedForStatement, Object)
-		 * @since 3.0
-		 */
-		public boolean match(EnhancedForStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ExpressionStatement, Object)
-		 */
-		public boolean match(ExpressionStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(FieldAccess, Object)
-		 */
-		public boolean match(FieldAccess node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(FieldDeclaration, Object)
-		 */
-		public boolean match(FieldDeclaration node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ForStatement, Object)
-		 */
-		public boolean match(ForStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(IfStatement, Object)
-		 */
-		public boolean match(IfStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ImportDeclaration, Object)
-		 */
-		public boolean match(ImportDeclaration node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(InfixExpression, Object)
-		 */
-		public boolean match(InfixExpression node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(Initializer, Object)
-		 */
-		public boolean match(Initializer node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(InstanceofExpression, Object)
-		 */
-		public boolean match(InstanceofExpression node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(JSdoc, Object)
-		 */
-		public boolean match(JSdoc node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(LabeledStatement, Object)
-		 */
-		public boolean match(LabeledStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(LineComment, Object)
-         * @since 3.0
-		 */
-		public boolean match(LineComment node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(MemberRef, Object)
-         * @since 3.0
-		 */
-		public boolean match(MemberRef node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(FunctionDeclaration, Object)
-		 */
-		public boolean match(FunctionDeclaration node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(FunctionInvocation, Object)
-		 */
-		public boolean match(FunctionInvocation node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(FunctionRef, Object)
-         * @since 3.0
-		 */
-		public boolean match(FunctionRef node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(FunctionRefParameter, Object)
-         * @since 3.0
-		 */
-		public boolean match(FunctionRefParameter node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(Modifier, Object)
-		 * @since 3.0
-		 */
-		public boolean match(Modifier node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(NullLiteral, Object)
-		 */
-		public boolean match(NullLiteral node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(NumberLiteral, Object)
-		 */
-		public boolean match(NumberLiteral node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(PackageDeclaration, Object)
-		 */
-		public boolean match(PackageDeclaration node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ParenthesizedExpression, Object)
-		 */
-		public boolean match(ParenthesizedExpression node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(PostfixExpression, Object)
-		 */
-		public boolean match(PostfixExpression node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(PrefixExpression, Object)
-		 */
-		public boolean match(PrefixExpression node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(PrimitiveType, Object)
-		 */
-		public boolean match(PrimitiveType node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(QualifiedName, Object)
-		 */
-		public boolean match(QualifiedName node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(QualifiedType, Object)
-		 * @since 3.0
-		 */
-		public boolean match(QualifiedType node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ReturnStatement, Object)
-		 */
-		public boolean match(ReturnStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SimpleName, Object)
-		 */
-		public boolean match(SimpleName node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SimpleType, Object)
-		 */
-		public boolean match(SimpleType 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) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(StringLiteral, Object)
-		 */
-		public boolean match(StringLiteral node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SuperConstructorInvocation, Object)
-		 */
-		public boolean match(SuperConstructorInvocation node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SuperFieldAccess, Object)
-		 */
-		public boolean match(SuperFieldAccess node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SuperMethodInvocation, Object)
-		 */
-		public boolean match(SuperMethodInvocation node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SwitchCase, Object)
-		 */
-		public boolean match(SwitchCase node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(SwitchStatement, Object)
-		 */
-		public boolean match(SwitchStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(TagElement, Object)
-         * @since 3.0
-		 */
-		public boolean match(TagElement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(TextElement, Object)
-         * @since 3.0
-		 */
-		public boolean match(TextElement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ThisExpression, Object)
-		 */
-		public boolean match(ThisExpression node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(ThrowStatement, Object)
-		 */
-		public boolean match(ThrowStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(TryStatement, Object)
-		 */
-		public boolean match(TryStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(TypeDeclaration, Object)
-		 */
-		public boolean match(TypeDeclaration node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(TypeDeclarationStatement, Object)
-		 */
-		public boolean match(TypeDeclarationStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(TypeLiteral, Object)
-		 */
-		public boolean match(TypeLiteral node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(VariableDeclarationExpression, Object)
-		 */
-		public boolean match(VariableDeclarationExpression node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(VariableDeclarationFragment, Object)
-		 */
-		public boolean match(VariableDeclarationFragment node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(VariableDeclarationStatement, Object)
-		 */
-		public boolean match(VariableDeclarationStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	
-		/**
-		 * @see org.eclipse.wst.jsdt.core.dom.ASTMatcher#match(WhileStatement, Object)
-		 */
-		public boolean match(WhileStatement node, Object other) {
-			checkPositions(node, other);
-			return super.match(node, other);
-		}
-	}
-	
-	/** @deprecated using deprecated code */
-	public static Test suite() {
-		// TODO (frederic) use buildList + setAstLevel(init) instead...
-		junit.framework.TestSuite suite = new junit.framework.TestSuite(ASTTest.class.getName());
-		
-		Class c = ASTTest.class;
-		Method[] methods = c.getMethods();
-		for (int i = 0, max = methods.length; i < max; i++) {
-			if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
-				suite.addTest(new ASTTest(methods[i].getName(), AST.JLS2));
-				//suite.addTest(new ASTTest(methods[i].getName(), AST.JLS3));
-			}
-		}
-		return suite;
-	}	
-	
-	AST ast;
-	int API_LEVEL;
-	
-	
-	public ASTTest(String name, int apiLevel) {
-		super(name);
-		this.API_LEVEL = apiLevel;
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		ast = AST.newAST(this.API_LEVEL);
-	}
-	
-	protected void tearDown() throws Exception {
-		ast = null;
-		super.tearDown();
-	}
-	
-	/** @deprecated using deprecated code */
-	public String getName() {
-		String name = super.getName();
-		switch (this.API_LEVEL) {
-			case AST.JLS2:
-				name = "JLS2 - " + name;
-				break;
-			case AST.JLS3:
-				name = "JLS3 - " + name; 
-				break;
-		}
-		return name;
-	}
-	
-	/**
-	 * Snippets that show how to...
-	 * @deprecated using deprecated code
-	 */
-	public void testExampleSnippets() {
-		{
-			AST localAst = AST.newAST(ast.apiLevel());
-			JavaScriptUnit cu = localAst.newJavaScriptUnit();
-
-			// package com.example;
-			PackageDeclaration pd = localAst.newPackageDeclaration();
-			pd.setName(localAst.newName(new String[]{"com", "example"})); //$NON-NLS-1$ //$NON-NLS-2$
-			cu.setPackage(pd);
-			assertTrue(pd.getRoot() == cu);
-
-			// import java.io;*;
-			ImportDeclaration im1 = localAst.newImportDeclaration();
-			im1.setName(localAst.newName(new String[]{"java", "io"})); //$NON-NLS-1$ //$NON-NLS-2$
-			im1.setOnDemand(true);
-			cu.imports().add(im1);
-			assertTrue(im1.getRoot() == cu);
-			
-			// import java.util.List;
-			ImportDeclaration im2 = localAst.newImportDeclaration();
-			im2.setName(localAst.newName(new String[]{"java", "util", "List"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			im2.setOnDemand(false);
-			cu.imports().add(im2);
-			assertTrue(im2.getRoot() == cu);
-			
-			// /** Spec. \n @deprecated Use {@link #foo() bar} instead. */public class MyClass {}
-			TypeDeclaration td = localAst.newTypeDeclaration();
-			if (ast.apiLevel() == AST.JLS2) {
-				td.setModifiers(Modifier.PUBLIC);
-			} else {
-				td.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
-			}
-			td.setName(localAst.newSimpleName("MyClass")); //$NON-NLS-1$
-			{ 
-				JSdoc jd = localAst.newJSdoc();
-				TagElement tg0 = localAst.newTagElement();
-				jd.tags().add(tg0);
-				TextElement tx1 = localAst.newTextElement();
-				tx1.setText("Spec."); //$NON-NLS-1$
-				tg0.fragments().add(tx1);
-				TagElement tg1 = localAst.newTagElement();
-				tg1.setTagName(TagElement.TAG_DEPRECATED);
-				jd.tags().add(tg1);
-				TextElement tx2 = localAst.newTextElement();
-				tx2.setText("Use "); //$NON-NLS-1$
-				tg1.fragments().add(tx2);
-				TagElement tg2 = localAst.newTagElement();
-				tg2.setTagName(TagElement.TAG_LINK);
-				tg1.fragments().add(tg2);
-				FunctionRef mr1 = localAst.newFunctionRef();
-				mr1.setName(localAst.newSimpleName("foo"));
-				tg2.fragments().add(mr1);
-				TextElement tx3 = localAst.newTextElement();
-				tx3.setText("bar"); //$NON-NLS-1$
-				tg2.fragments().add(tx3);
-				TextElement tx4 = localAst.newTextElement();
-				tx2.setText(" instead."); //$NON-NLS-1$
-				tg1.fragments().add(tx4);
-			}
-			
-			cu.types().add(td);
-			assertTrue(td.getRoot() == cu);
-			
-			// private static boolean DEBUG = true;
-			VariableDeclarationFragment f1 = localAst.newVariableDeclarationFragment();
-			f1.setName(localAst.newSimpleName("DEBUG")); //$NON-NLS-1$
-			f1.setInitializer(localAst.newBooleanLiteral(true));
-			FieldDeclaration fd = localAst.newFieldDeclaration(f1);
-			fd.setType(localAst.newPrimitiveType(PrimitiveType.BOOLEAN));
-			if (ast.apiLevel() == AST.JLS2) {
-				fd.setModifiers(Modifier.PRIVATE | Modifier.FINAL);
-			} else {
-				fd.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD));
-				fd.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.STATIC_KEYWORD));
-			}
-			td.bodyDeclarations().add(fd);
-			assertTrue(fd.getRoot() == cu);
-			
-			// public static void main();
-			FunctionDeclaration md = localAst.newFunctionDeclaration();
-			if (ast.apiLevel() == AST.JLS2) {
-				md.setModifiers(Modifier.PUBLIC | Modifier.STATIC);
-				md.setReturnType(localAst.newPrimitiveType(PrimitiveType.VOID));
-			} else {
-				md.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
-				md.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.STATIC_KEYWORD));
-				md.setReturnType2(localAst.newPrimitiveType(PrimitiveType.VOID));
-			}
-			md.setConstructor(false);
-			md.setName(localAst.newSimpleName("main")); //$NON-NLS-1$
-			td.bodyDeclarations().add(md);
-			assertTrue(md.getRoot() == cu);
-			
-			// String[] args
-			SingleVariableDeclaration a1 = localAst.newSingleVariableDeclaration();
-			a1.setType(localAst.newArrayType(
-				localAst.newSimpleType(localAst.newSimpleName("String")))); //$NON-NLS-1$
-			a1.setName(localAst.newSimpleName("args")); //$NON-NLS-1$
-			md.parameters().add(a1);
-			assertTrue(a1.getRoot() == cu);
-			
-			// {}
-			Block b = localAst.newBlock();
-			md.setBody(b);
-			assertTrue(b.getRoot() == cu);
-
-			// System.out.println("hello world");		
-			FunctionInvocation e = localAst.newFunctionInvocation();
-			e.setExpression(localAst.newName(new String[] {"System", "out"})); //$NON-NLS-1$ //$NON-NLS-2$
-			e.setName(localAst.newSimpleName("println")); //$NON-NLS-1$
-			StringLiteral h = localAst.newStringLiteral();
-			h.setLiteralValue("hello world"); //$NON-NLS-1$
-			e.arguments().add(h);
-			
-			b.statements().add(localAst.newExpressionStatement(e));
-			assertTrue(e.getRoot() == cu);
-			assertTrue(h.getRoot() == cu);
-			
-			// new String[len];
-			ArrayCreation ac1 = localAst.newArrayCreation();
-			ac1.setType(
-				localAst.newArrayType(
-					localAst.newSimpleType(localAst.newSimpleName("String")))); //$NON-NLS-1$
-			ac1.dimensions().add(localAst.newSimpleName("len")); //$NON-NLS-1$
-			b.statements().add(localAst.newExpressionStatement(ac1));
-			assertTrue(ac1.getRoot() == cu);
-
-			// new double[7][24][];
-			ArrayCreation ac2 = localAst.newArrayCreation();
-			ac2.setType(
-				localAst.newArrayType(
-					localAst.newPrimitiveType(PrimitiveType.DOUBLE), 3));
-			ac2.dimensions().add(localAst.newNumberLiteral("7")); //$NON-NLS-1$
-			ac2.dimensions().add(localAst.newNumberLiteral("24")); //$NON-NLS-1$
-			b.statements().add(localAst.newExpressionStatement(ac2));
-			assertTrue(ac2.getRoot() == cu);
-
-			// new int[] {1, 2};
-			ArrayCreation ac3 = localAst.newArrayCreation();
-			ac3.setType(
-				localAst.newArrayType(
-					localAst.newPrimitiveType(PrimitiveType.INT)));
-			ArrayInitializer ai = localAst.newArrayInitializer();
-			ac3.setInitializer(ai);
-			ai.expressions().add(localAst.newNumberLiteral("1")); //$NON-NLS-1$
-			ai.expressions().add(localAst.newNumberLiteral("2")); //$NON-NLS-1$
-			b.statements().add(localAst.newExpressionStatement(ac3));
-			assertTrue(ac3.getRoot() == cu);
-			assertTrue(ai.getRoot() == cu);
-			
-			// new String(10);
-			ClassInstanceCreation cr1 = localAst.newClassInstanceCreation();
-			if (ast.apiLevel() == AST.JLS2) {
-				cr1.setName(localAst.newSimpleName("String")); //$NON-NLS-1$
-			} else {
-				cr1.setType(localAst.newSimpleType(localAst.newSimpleName("String"))); //$NON-NLS-1$
-			}
-			cr1.arguments().add(localAst.newNumberLiteral("10"));		 //$NON-NLS-1$
-			b.statements().add(localAst.newExpressionStatement(cr1));
-			assertTrue(cr1.getRoot() == cu);
-
-			// new Listener() {public void handleEvent() {} };
-			ClassInstanceCreation cr2 = localAst.newClassInstanceCreation();
-			AnonymousClassDeclaration ad1 = localAst.newAnonymousClassDeclaration();
-			cr2.setAnonymousClassDeclaration(ad1);
-			if (ast.apiLevel() == AST.JLS2) {
-				cr2.setName(localAst.newSimpleName("Listener")); //$NON-NLS-1$
-			} else {
-				cr2.setType(localAst.newSimpleType(localAst.newSimpleName("Listener"))); //$NON-NLS-1$
-			}
-			FunctionDeclaration md0 = localAst.newFunctionDeclaration();
-			if (ast.apiLevel() == AST.JLS2) {
-				md0.setModifiers(Modifier.PUBLIC);
-			} else {
-				md0.modifiers().add(localAst.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
-			}
-			md0.setName(localAst.newSimpleName("handleEvent")); //$NON-NLS-1$
-			md0.setBody(localAst.newBlock());
-			ad1.bodyDeclarations().add(md0);
-			b.statements().add(localAst.newExpressionStatement(cr2));
-			assertTrue(cr2.getRoot() == cu);
-			assertTrue(md0.getRoot() == cu);
-			assertTrue(ad1.getRoot() == cu);
-
-		}
-	}
-	
-	abstract class Property {
-		
-		/**
-		 * Indicates whether this property is compulsory, in that every node
-		 * must have a value at all times.
-		 */
-		private boolean compulsory;
-
-		private Class nodeType;		
-		private String propertyName;
-
-		/**
-		 * Creates a new property with the given name.
-		 */
-		Property(String propertyName, boolean compulsory, Class nodeType) {
-			this.propertyName = propertyName;
-			this.compulsory = compulsory;
-			this.nodeType = nodeType;
-		}
-		
-		/**
-		 * Returns a sample node of a type suitable for storing
-		 * in this property.
-		 * 
-		 * @param targetAST the target AST
-		 * @param parented <code>true</code> if the sample should be
-		 *    parented, and <code>false</code> if unparented
-		 * @return a sample node
-		 */
-		public abstract ASTNode sample(AST targetAST, boolean parented);
-
-		/**
-		 * Returns examples of node of types unsuitable for storing
-		 * in this property.
-		 * <p>
-		 * This implementation returns an empty list. Subclasses
-		 * should reimplement to specify counter-examples.
-		 * </p>
-		 * 
-		 * @param targetAST the target AST
-		 * @return a list of counter-example nodes
-		 */
-		public ASTNode[] counterExamples(AST targetAST) {
-			return new ASTNode[] {};
-		}
-
-		/**
-		 * Returns a sample node of a type suitable for storing
-		 * in this property. The sample embeds the node itself.
-		 * <p>
-		 * For instance, for an Expression-valued property of a given
-		 * Statement, this method returns an Expression that embeds
-		 * this Statement node (as a descendent).
-		 * </p>
-		 * <p>
-		 * Returns <code>null</code> if such an embedding is impossible.
-		 * For instance, for an Name-valued property of a given
-		 * Statement, this method returns <code>null</code> because
-		 * an Expression cannot be embedded in a Name.
-		 * </p>
-		 * <p>
-		 * This implementation returns <code>null</code>. Subclasses
-		 * should reimplement to specify an embedding.
-		 * </p>
-		 * 
-		 * @return a sample node that embeds the given node,
-		 *    and <code>null</code> if such an embedding is impossible
-		 */
-		public ASTNode wrap() {
-			return null;
-		}
-		
-		/**
-		 * Undoes the effects of a previous <code>wrap</code>.
-		 * <p>
-		 * This implementation does nothing. Subclasses
-		 * should reimplement if they reimplement <code>wrap</code>.
-		 * </p>
-		 */
-		public void unwrap() {
-		}
-		
-		/**
-		 * Returns whether this property is compulsory, in that every node
-		 * must have a value at all times.
-		 * 
-		 * @return <code>true</code> if the property is compulsory,
-		 *    and <code>false</code> if the property may be null
-		 */
-		public final boolean isCompulsory() {
-			return compulsory;
-		}
-		
-		/**
-		 * Returns the value of this property.
-		 * <p>
-		 * This implementation throws an unchecked exception. Subclasses 
-		 * should reimplement.
-		 * </p>
-		 * 
-		 * @return the property value, or <code>null</code> if no value
-		 */
-		public ASTNode get() {
-			throw new RuntimeException("get not implemented"); //$NON-NLS-1$
-		}
-		
-		/**
-		 * Sets or clears the value of this property.
-		 * <p>
-		 * This implementation throws an unchecked exception. Subclasses 
-		 * should reimplement.
-		 * </p>
-		 * 
-		 * @param value the property value, or <code>null</code> if no value
-		 */
-		public void set(ASTNode value) {
-			throw new RuntimeException("get(" + value + ") not implemented"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		
-		public String toString() {
-			return "Property(" + this.propertyName + ", " + this.compulsory + ", " + this.nodeType + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-	}
-
-	/**
-	 * Exercises the given property of the given node.
-	 * 
-	 * @param node the node to test
-	 * @param prop the property descriptor
-	 */
-	void genericPropertyTest(ASTNode node, Property prop) {
-		
-		ASTNode x1 = prop.sample(node.getAST(), false);
-		prop.set(x1);
-		assertTrue(prop.get() == x1);
-		assertTrue(x1.getParent() == node);
-		
-		// check handling of null
-		if (prop.isCompulsory()) {
-			try {
-				prop.set(null);
-			} catch (RuntimeException e) {
-				// pass
-			}
-		} else {
-			long previousCount = node.getAST().modificationCount();
-			prop.set(null);
-			assertTrue(prop.get() == null);
-			assertTrue(node.getAST().modificationCount() > previousCount);
-		}			
-
-		// check that a child from a different AST is detected
-		try {
-			AST newAST = AST.newAST(node.getAST().apiLevel());
-			prop.set(prop.sample(newAST, false));
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check that a child with a parent is detected
-		try {
-			ASTNode b1 = prop.sample(node.getAST(), true);
-			prop.set(b1); // bogus: already has parent
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check that a cycle is detected
-		assertTrue(node.getParent() == null);
-		ASTNode s1 = null;
-		try {
-			s1 = prop.wrap();
-			if (s1 != null) {
-				prop.set(s1);  // bogus: creates a cycle
-				assertTrue(false);
-			}
-		} catch (RuntimeException e) {
-			// pass
-		} finally {
-			if (s1 != null) {
-				prop.unwrap();
-				assertTrue(node.getParent() == null);
-			}
-		}
-		
-		// check that a child of the wrong type is detected
-		ASTNode b1[] = prop.counterExamples(node.getAST());
-		for (int i = 0; i < b1.length; i++) {
-			try {
-				prop.set(b1[i]); // bogus: wrong type
-				assertTrue(false);
-			} catch (RuntimeException e) {
-				// pass
-			}
-		}
-
-	}
-
-	/**
-	 * Exercises the given property of the given node.
-	 * 
-	 * @param node the node to test
-	 * @param children the node to test
-	 * @param prop the property descriptor
-	 */
-	void genericPropertyListTest(ASTNode node, List children, Property prop) {
-		
-		// wipe the slate clean
-		children.clear();
-		assertTrue(children.size() == 0);
-		
-		// add a child
-		ASTNode x1 = prop.sample(node.getAST(), false);
-		long previousCount = node.getAST().modificationCount();
-		children.add(x1);
-		assertTrue(node.getAST().modificationCount() > previousCount);
-		assertTrue(children.size() == 1);
-		assertTrue(children.get(0) == x1);
-		assertTrue(x1.getParent() == node);
-		
-		// add a second child
-		ASTNode x2 = prop.sample(node.getAST(), false);
-		previousCount = node.getAST().modificationCount();
-		children.add(x2);
-		assertTrue(node.getAST().modificationCount() > previousCount);
-		assertTrue(children.size() == 2);
-		assertTrue(children.get(0) == x1);
-		assertTrue(children.get(1) == x2);
-		assertTrue(x1.getParent() == node);
-		assertTrue(x2.getParent() == node);
-
-		// remove the first child
-		previousCount = node.getAST().modificationCount();
-		children.remove(0);
-		assertTrue(node.getAST().modificationCount() > previousCount);
-		assertTrue(children.size() == 1);
-		assertTrue(children.get(0) == x2);
-		assertTrue(x1.getParent() == null);
-		assertTrue(x2.getParent() == node);
-
-		// remove the remaining child
-		previousCount = node.getAST().modificationCount();
-		children.remove(x2);
-		assertTrue(node.getAST().modificationCount() > previousCount);
-		assertTrue(children.size() == 0);
-		assertTrue(x1.getParent() == null);
-		assertTrue(x2.getParent() == null);
-
-		// check that null is never allowed
-		try {
-			children.add(null);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check that a child from a different AST is detected
-		try {
-			AST newAST = AST.newAST(node.getAST().apiLevel());
-			children.add(prop.sample(newAST, false));
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check that a child with a parent is detected
-		try {
-			ASTNode b1 = prop.sample(node.getAST(), true);
-			children.add(b1); // bogus: already has parent
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check that a cycle is detected
-		assertTrue(node.getParent() == null);
-		ASTNode s1 = null;
-		try {
-			s1 = prop.wrap();
-			if (s1 != null) {
-				children.add(s1);  // bogus: creates a cycle
-				assertTrue(false);
-			}
-		} catch (RuntimeException e) {
-			// pass
-		} finally {
-			if (s1 != null) {
-				prop.unwrap();
-				assertTrue(node.getParent() == null);
-			}
-		}
-		
-		// check that a child of the wrong type is detected
-		ASTNode b1[] = prop.counterExamples(node.getAST());
-		for (int i = 0; i < b1.length; i++) {
-			try {
-				children.add(b1[i]); // bogus: wrong type
-				assertTrue(false);
-			} catch (RuntimeException e) {
-				// pass
-			}
-		}
-		
-	}
-
-	/** @deprecated using deprecated code */
-	public void testAST() {
-		
-		assertTrue(AST.JLS2 == 2);
-		assertTrue(AST.JLS3 == 3);
-		
-		AST a0 = new AST(); // deprecated, but still 2.0
-		assertTrue(a0.apiLevel() == AST.JLS2);
-		AST a1 = new AST(new HashMap()); // deprecated, but still 2.0
-		assertTrue(a1.apiLevel() == AST.JLS2);
-		AST a2 = AST.newAST(AST.JLS2);
-		assertTrue(a2.apiLevel() == AST.JLS2);
-		AST a3 = AST.newAST(AST.JLS3);
-		assertTrue(a3.apiLevel() == AST.JLS3);
-		
-		
-		// modification count is always non-negative
-		assertTrue(ast.modificationCount() >= 0);
-		
-		// modification count increases for node creations
-		long previousCount = ast.modificationCount();
-		SimpleName x = ast.newSimpleName("first"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-
-		// modification count does not increase for reading node attributes
-		previousCount = ast.modificationCount();
-		x.getIdentifier();
-		x.getParent();
-		x.getRoot();
-		x.getAST();
-		x.getFlags();
-		x.getStartPosition();
-		x.getLength();
-		x.equals(x);
-		assertTrue(ast.modificationCount() == previousCount);
-
-		// modification count does not increase for reading or writing properties
-		previousCount = ast.modificationCount();
-		x.getProperty("any"); //$NON-NLS-1$
-		x.setProperty("any", "value"); // N.B. //$NON-NLS-1$ //$NON-NLS-2$
-		x.properties();
-		assertTrue(ast.modificationCount() == previousCount);
-
-		// modification count increases for changing node attributes
-		previousCount = ast.modificationCount();
-		x.setIdentifier("second"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		
-		previousCount = ast.modificationCount();
-		x.setFlags(0);
-		assertTrue(ast.modificationCount() > previousCount);
-		
-		previousCount = ast.modificationCount();
-		x.setSourceRange(-1,0);
-		assertTrue(ast.modificationCount() > previousCount);
-	}	
-	
-	public void testWellKnownBindings() {
-
-		// well known bindings
-		String[] wkbs = {
-			"byte", "char", "short", "int", "long", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-			"boolean", "float", "double", "void", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			"java.lang.Class", //$NON-NLS-1$
-			"java.lang.Cloneable", //$NON-NLS-1$
-			"java.lang.Error", //$NON-NLS-1$
-			"java.lang.Exception", //$NON-NLS-1$
-			"java.lang.Object", //$NON-NLS-1$
-			"java.lang.RuntimeException", //$NON-NLS-1$
-			"java.lang.String", //$NON-NLS-1$
-			"java.lang.StringBuffer", //$NON-NLS-1$
-			"java.lang.Throwable", //$NON-NLS-1$
-			"java.io.Serializable", //$NON-NLS-1$
-			"java.lang.Boolean", //$NON-NLS-1$
-			"java.lang.Byte", //$NON-NLS-1$
-			"java.lang.Character", //$NON-NLS-1$
-			"java.lang.Double", //$NON-NLS-1$
-			"java.lang.Float", //$NON-NLS-1$
-			"java.lang.Integer", //$NON-NLS-1$
-			"java.lang.Long", //$NON-NLS-1$
-			"java.lang.Short", //$NON-NLS-1$
-			"java.lang.Void", //$NON-NLS-1$
-		};
-		
-		// no-so-well-known bindings
-		String[] nwkbs = {
-			"verylong", //$NON-NLS-1$
-			"java.lang.Math", //$NON-NLS-1$
-			"com.example.MyCode", //$NON-NLS-1$
-		};
-	
-		// none of the well known bindings resolve in a plain AST		
-		for (int i = 0; i<wkbs.length; i++) {
-			assertTrue(ast.resolveWellKnownType(wkbs[i]) == null);
-		}
-	
-		// none of the no so well known bindings resolve either		
-		for (int i = 0; i<nwkbs.length; i++) {
-			assertTrue(ast.resolveWellKnownType(nwkbs[i]) == null);
-		}
-	}
-	
-	public void testSimpleName() {
-		long previousCount = ast.modificationCount();
-		SimpleName x = ast.newSimpleName("foo"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue("foo".equals(x.getIdentifier())); //$NON-NLS-1$
-		assertTrue("foo".equals(x.getFullyQualifiedName())); //$NON-NLS-1$
-		assertTrue(x.getNodeType() == ASTNode.SIMPLE_NAME);
-		assertTrue(x.isDeclaration() == false);
-		assertTrue(x.structuralPropertiesForType() == SimpleName.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		previousCount = ast.modificationCount();
-		x.setIdentifier("bar"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue("bar".equals(x.getIdentifier())); //$NON-NLS-1$
-		assertTrue("bar".equals(x.getFullyQualifiedName())); //$NON-NLS-1$
-
-		// check that property cannot be set to null
-		try {
-			x.setIdentifier(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-		
-		// check that property cannot be set to keyword or reserved work
-		String[] reserved  = 
-				new String[] {
-						"true", "false", "null", // literals //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						"abstract", "default", "if", "private", "this", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						"boolean", "do", "implements", "protected", "throw", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						"break", "double", "import", "public", "throws", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						"byte", "else", "instanceof", "return", "transient", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						"case", "extends", "int", "short", "try", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						"catch", "final", "interface", "static", "void", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						"char", "finally", "long", "strictfp", "volatile", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						"class", "float", "native", "super", "while", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						"const", "for", "new", "switch", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-						"continue", "goto", "package", "synchronized"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		for (int i=0; i<reserved.length; i++) {
-			try {
-				x.setIdentifier(reserved[i]);
-			} catch (RuntimeException e) {
-				// pass
-			}
-		}
-		
-		// check that property cannot be set to keyword or reserved work
-		String[] bogus  = 
-				new String[] {
-						"a b", "a ", " a", // literals //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						"a-b", "a[]", "a<T>", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 
-						"", " ", "a.b"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		for (int i=0; i<bogus.length; i++) {
-			try {
-				x.setIdentifier(bogus[i]);
-				assertTrue(false);
-			} catch (RuntimeException e) {
-				// pass
-			}
-		}
-		// check that "assert" is not considered a keyword
-		// "assert" only became a keyword in J2SE 1.4 and we do *not* want to
-		// preclude the AST API from being used to analyze pre-1.4 code
-		x.setIdentifier("assert"); //$NON-NLS-1$
-		
-		// check that "enum" is not considered a keyword
-		// "enum" only became a keyword in J2SE 1.5 and we do *not* want to
-		// preclude the AST API from being used to analyze pre-1.5 code
-		x.setIdentifier("enum"); //$NON-NLS-1$
-		
-		// check that isDeclaration works
-		QualifiedName y = ast.newQualifiedName(ast.newSimpleName("a"), x); //$NON-NLS-1$
-		assertTrue(x.isDeclaration() == false);
-		y.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		assertTrue(x.isDeclaration() == false);
-
-		TypeDeclaration td = ast.newTypeDeclaration();
-		td.setName(x);
-		assertTrue(x.isDeclaration() == true);
-		td.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		assertTrue(x.isDeclaration() == false);
-		
-		FunctionDeclaration md = ast.newFunctionDeclaration();
-		md.setName(x);
-		assertTrue(x.isDeclaration() == true);
-		md.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		assertTrue(x.isDeclaration() == false);
-		
-		SingleVariableDeclaration vd = ast.newSingleVariableDeclaration();
-		vd.setName(x);
-		assertTrue(x.isDeclaration() == true);
-		vd.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		assertTrue(x.isDeclaration() == false);
-		
-		VariableDeclarationFragment fd = ast.newVariableDeclarationFragment();
-		fd.setName(x);
-		assertTrue(x.isDeclaration() == true);
-		fd.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		assertTrue(x.isDeclaration() == false);
-		
-
-	}		
-
-	public void testQualifiedName() {
-		long previousCount = ast.modificationCount();
-		final QualifiedName x = ast.newQualifiedName(
-			ast.newSimpleName("q"), //$NON-NLS-1$
-			ast.newSimpleName("i")); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getQualifier().getParent() == x);
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getName().isDeclaration() == false);
-		assertTrue(x.getNodeType() == ASTNode.QUALIFIED_NAME);
-		assertTrue("q.i".equals(x.getFullyQualifiedName())); //$NON-NLS-1$
-		assertTrue(x.structuralPropertiesForType() == QualifiedName.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Qualifier", true, Name.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				QualifiedName result = targetAst.newQualifiedName(
-					targetAst.newSimpleName("a"), //$NON-NLS-1$
-					targetAst.newSimpleName("b")); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newExpressionStatement(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				QualifiedName s1 = ast.newQualifiedName(x, ast.newSimpleName("z")); //$NON-NLS-1$
-				return s1;
-			}
-			public void unwrap() {
-				QualifiedName s1 = (QualifiedName) x.getParent();
-				s1.setQualifier(ast.newSimpleName("z")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getQualifier();
-			}
-			public void set(ASTNode value) {
-				x.setQualifier((Name) value);
-			}
-		});
-		
-		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);
-			}
-		});
-		
-		// test fullyQualifiedName on nested names
-		Name q0 = ast.newName(new String[] {"a", "bb", "ccc", "dddd", "eeeee", "ffffff"});
-		assertTrue("a.bb.ccc.dddd.eeeee.ffffff".equals(q0.getFullyQualifiedName())); //$NON-NLS-1$
-
-	}		
-
-	public void testNameFactories() {
-		long previousCount = ast.modificationCount();
-		Name x = ast.newName("foo"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue("foo".equals(x.getFullyQualifiedName())); //$NON-NLS-1$
-		assertTrue(x.getNodeType() == ASTNode.SIMPLE_NAME);
-
-		previousCount = ast.modificationCount();
-		x = ast.newName("foo.bar"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue("foo.bar".equals(x.getFullyQualifiedName())); //$NON-NLS-1$
-		assertTrue(x.getNodeType() == ASTNode.QUALIFIED_NAME);
-		QualifiedName q = (QualifiedName) x;
-		assertTrue("bar".equals(q.getName().getFullyQualifiedName())); //$NON-NLS-1$
-		assertTrue("foo".equals(q.getQualifier().getFullyQualifiedName())); //$NON-NLS-1$
-		
-		// check that simple and qualified names work
-		String[] legal  = 
-				new String[] {
-						"a", "abcdef", "XYZZY", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						"a.b", "java.lang.Object", "a.b.c.d.e"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 
-		for (int i=0; i<legal.length; i++) {
-			try {
-				x = ast.newName(legal[i]);
-				assertTrue(legal[i].equals(x.getFullyQualifiedName()));
-			} catch (RuntimeException e) {
-				assertTrue(false);
-			}
-		}
-		
-		// check that property cannot be set to keyword or reserved work
-		String[] bogus  = 
-				new String[] {
-						"", ".", ".a", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						"a.", "a..b", "..a"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		for (int i=0; i<bogus.length; i++) {
-			try {
-				x = ast.newName(bogus[i]);
-				assertTrue(false);
-			} catch (RuntimeException e) {
-				// pass
-			}
-		}
-	}		
-	
-	public void testNullLiteral() {
-		long previousCount = ast.modificationCount();
-		NullLiteral x = ast.newNullLiteral();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getNodeType() == ASTNode.NULL_LITERAL);
-		assertTrue(x.structuralPropertiesForType() == NullLiteral.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-	}		
-
-	public void testBooleanLiteral() {
-		long previousCount = ast.modificationCount();
-		BooleanLiteral x = ast.newBooleanLiteral(true);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.booleanValue() == true);
-		assertTrue(x.getNodeType() == ASTNode.BOOLEAN_LITERAL);
-		assertTrue(x.structuralPropertiesForType() == BooleanLiteral.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		previousCount = ast.modificationCount();
-		x.setBooleanValue(false);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.booleanValue() == false);
-		
-		previousCount = ast.modificationCount();
-		x.setBooleanValue(true);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.booleanValue() == true);
-	}		
-	
-	public void testStringLiteral() {
-		long previousCount = ast.modificationCount();
-		// check 0-arg factory first
-		StringLiteral x = ast.newStringLiteral();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue("\"\"".equals(x.getEscapedValue())); //$NON-NLS-1$
-		assertTrue("".equals(x.getLiteralValue())); //$NON-NLS-1$
-		assertTrue(x.getNodeType() == ASTNode.STRING_LITERAL);
-		assertTrue(x.structuralPropertiesForType() == StringLiteral.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		previousCount = ast.modificationCount();
-		x.setEscapedValue("\"bye\""); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue("\"bye\"".equals(x.getEscapedValue())); //$NON-NLS-1$
-		assertTrue("bye".equals(x.getLiteralValue())); //$NON-NLS-1$
-
-		previousCount = ast.modificationCount();
-		x.setLiteralValue("hi"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue("\"hi\"".equals(x.getEscapedValue())); //$NON-NLS-1$
-		assertTrue("hi".equals(x.getLiteralValue())); //$NON-NLS-1$
-
-		previousCount = ast.modificationCount();
-		x.setLiteralValue("\\012\\015"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertEquals("different", "\"\\\\012\\\\015\"", x.getEscapedValue()); //$NON-NLS-1$
-		assertTrue("\\012\\015".equals(x.getLiteralValue())); //$NON-NLS-1$
-
-		previousCount = ast.modificationCount();
-		x.setLiteralValue("\012\015"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue("\n\r".equals(x.getLiteralValue())); //$NON-NLS-1$
-		assertEquals("different", "\"\\n\\r\"", x.getEscapedValue()); //$NON-NLS-1$
-
-		// check that property cannot be set to null
-		try {
-			x.setEscapedValue(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check that property cannot be set to null
-		try {
-			x.setLiteralValue(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-	}		
-
-	public void testStringLiteralUnicode() {
-		AST localAst = AST.newAST(ast.apiLevel());
-		StringLiteral literal = localAst.newStringLiteral();
-		literal.setEscapedValue("\"hello\\u0026\\u0050worl\\u0064\""); //$NON-NLS-1$
-		assertTrue(literal.getLiteralValue().equals("hello&Pworld")); //$NON-NLS-1$
-		
-		localAst = AST.newAST(ast.apiLevel());
-		literal = localAst.newStringLiteral();
-		literal.setEscapedValue("\"hello\\nworld\""); //$NON-NLS-1$
-		assertTrue(literal.getLiteralValue().equals("hello\nworld")); //$NON-NLS-1$
-		
-		localAst = AST.newAST(ast.apiLevel());
-		literal = localAst.newStringLiteral();
-		literal.setLiteralValue("hello\nworld"); //$NON-NLS-1$
-		assertTrue(literal.getLiteralValue().equals("hello\nworld")); //$NON-NLS-1$
-		
-		localAst = AST.newAST(ast.apiLevel());
-		literal = localAst.newStringLiteral();
-		literal.setLiteralValue("\n"); //$NON-NLS-1$
-		assertTrue(literal.getEscapedValue().equals("\"\\n\"")); //$NON-NLS-1$
-		assertTrue(literal.getLiteralValue().equals("\n")); //$NON-NLS-1$
-		
-		localAst = AST.newAST(ast.apiLevel());
-		literal = localAst.newStringLiteral();
-		literal.setEscapedValue("\"hello\\\"world\""); //$NON-NLS-1$
-		assertTrue(literal.getLiteralValue().equals("hello\"world")); //$NON-NLS-1$
-		
-		localAst = AST.newAST(ast.apiLevel());
-		literal = localAst.newStringLiteral();
-		literal.setLiteralValue("hello\\u0026world"); //$NON-NLS-1$
-		assertTrue(literal.getLiteralValue().equals("hello\\u0026world")); //$NON-NLS-1$
-		
-		localAst = AST.newAST(ast.apiLevel());
-		literal = localAst.newStringLiteral();
-		literal.setLiteralValue("hello\\u0026world"); //$NON-NLS-1$
-		assertTrue(literal.getEscapedValue().equals("\"hello\\\\u0026world\"")); //$NON-NLS-1$
-		
-		localAst = AST.newAST(ast.apiLevel());
-		literal = localAst.newStringLiteral();
-		literal.setLiteralValue("\\u0001"); //$NON-NLS-1$
-		assertTrue(literal.getEscapedValue().equals("\"\\\\u0001\"")); //$NON-NLS-1$
-	}		
-	
-	public void testCharacterLiteral() {
-		long previousCount = ast.modificationCount();
-		CharacterLiteral x = ast.newCharacterLiteral();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getEscapedValue().startsWith("\'")); //$NON-NLS-1$
-		assertTrue(x.getEscapedValue().endsWith("\'")); //$NON-NLS-1$
-		assertTrue(x.getNodeType() == ASTNode.CHARACTER_LITERAL);
-		assertTrue(x.structuralPropertiesForType() == CharacterLiteral.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		previousCount = ast.modificationCount();
-		x.setEscapedValue("\'z\'"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue("\'z\'".equals(x.getEscapedValue())); //$NON-NLS-1$
-		assertTrue(x.charValue() == 'z');
-
-		// test other factory method
-		previousCount = ast.modificationCount();
-		CharacterLiteral y = ast.newCharacterLiteral();
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(y.getAST() == ast);
-		assertTrue(y.getParent() == null);
-		String v = y.getEscapedValue();
-		assertTrue(v.length() >= 3 && v.charAt(0) == '\'' & v.charAt(v.length()-1 ) == '\'');
-
-		// check that property cannot be set to null
-		try {
-			x.setEscapedValue(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-		
-		// test escaped characters
-		// b, t, n, f, r, ", ', \, 0, 1, 2, 3, 4, 5, 6, or 7
-		try {
-			x.setEscapedValue("\'\\b\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\t\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\n\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\f\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\\"\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\'\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\\\\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\0\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\1\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\2\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\3\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\4\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\5\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\6\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\7\'"); //$NON-NLS-1$
-			x.setEscapedValue("\'\\u0041\'"); //$NON-NLS-1$
-			assertTrue(x.charValue() == 'A');
-		} catch(IllegalArgumentException e) {
-			assertTrue(false);
-		}
-		
-		x.setCharValue('\u0041');
-		assertTrue(x.getEscapedValue().equals("\'A\'")); //$NON-NLS-1$
-		x.setCharValue('\t');
-		assertTrue(x.getEscapedValue().equals("\'\\t\'")); //$NON-NLS-1$
-		x.setEscapedValue("\'\\\\\'"); //$NON-NLS-1$
-		assertTrue(x.getEscapedValue().equals("\'\\\\\'")); //$NON-NLS-1$
-		assertTrue(x.charValue() == '\\');
-		x.setEscapedValue("\'\\\'\'"); //$NON-NLS-1$
-		assertTrue(x.getEscapedValue().equals("\'\\\'\'")); //$NON-NLS-1$
-		assertTrue(x.charValue() == '\'');		
-		x.setCharValue('\'');
-		assertTrue(x.getEscapedValue().equals("\'\\\'\'")); //$NON-NLS-1$
-		assertTrue(x.charValue() == '\'');		
-		x.setCharValue('\\');
-		assertTrue(x.getEscapedValue().equals("\'\\\\\'")); //$NON-NLS-1$
-		assertTrue(x.charValue() == '\\');		
-	}		
-
-	public void testNumberLiteral() {
-		long previousCount = ast.modificationCount();
-		NumberLiteral x = ast.newNumberLiteral("1234"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue("1234".equals(x.getToken())); //$NON-NLS-1$
-		assertTrue(x.getNodeType() == ASTNode.NUMBER_LITERAL);
-		assertTrue(x.structuralPropertiesForType() == NumberLiteral.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		// test other factory method
-		previousCount = ast.modificationCount();
-		NumberLiteral y = ast.newNumberLiteral();
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(y.getAST() == ast);
-		assertTrue(y.getParent() == null);
-		assertTrue("0".equals(y.getToken())); //$NON-NLS-1$
-
-		final String[] samples =
-			{ "0", "1", "1234567890", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "0L", "1L", "1234567890L", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "0l", "1l", "1234567890l", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "077", "0177", "012345670", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "077L", "0177L", "012345670L", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "077l", "0177l", "012345670l", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "0x00", "0x1", "0x0123456789ABCDEF", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "0x00L", "0x1L", "0x0123456789ABCDEFL", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "0x00l", "0x1l", "0x0123456789ABCDEFl", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			  "1e1f", "2.f", ".3f", "0f", "3.14f", "6.022137e+23f", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-			  "1e1", "2.", ".3", "0.0", "3.14", "1e-9d", "1e137", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-			};
-		for (int i = 0; i < samples.length; i++) {			
-			previousCount = ast.modificationCount();
-			x.setToken(samples[i]);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(samples[i].equals(x.getToken()));
-		}
-
-		// check that property cannot be set to null
-		try {
-			x.setToken(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-	}		
-
-	public void testSimpleType() {
-		long previousCount = ast.modificationCount();
-		final SimpleType x = ast.newSimpleType(ast.newSimpleName("String")); //$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.isSimpleType());
-		assertTrue(!x.isArrayType());
-		assertTrue(!x.isPrimitiveType());
-		assertTrue(!x.isQualifiedType());
-		assertTrue(x.getNodeType() == ASTNode.SIMPLE_TYPE);
-		assertTrue(x.structuralPropertiesForType() == SimpleType.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Name", 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.getName();
-			}
-			public void set(ASTNode value) {
-				x.setName((Name) value);
-			}
-		});
-	}		
-	
-	public void testPrimitiveType() {
-		long previousCount = ast.modificationCount();
-		PrimitiveType x = ast.newPrimitiveType(PrimitiveType.INT);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getPrimitiveTypeCode().equals(PrimitiveType.INT));
-		assertTrue(!x.isSimpleType());
-		assertTrue(!x.isArrayType());
-		assertTrue(x.isPrimitiveType());
-		assertTrue(!x.isQualifiedType());
-		assertTrue(x.getNodeType() == ASTNode.PRIMITIVE_TYPE);
-		assertTrue(x.structuralPropertiesForType() == PrimitiveType.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		// check the names of the primitive type codes
-		assertTrue(PrimitiveType.BYTE.toString().equals("byte")); //$NON-NLS-1$
-		assertTrue(PrimitiveType.INT.toString().equals("int")); //$NON-NLS-1$
-		assertTrue(PrimitiveType.BOOLEAN.toString().equals("boolean")); //$NON-NLS-1$
-		assertTrue(PrimitiveType.CHAR.toString().equals("char")); //$NON-NLS-1$
-		assertTrue(PrimitiveType.SHORT.toString().equals("short")); //$NON-NLS-1$
-		assertTrue(PrimitiveType.LONG.toString().equals("long")); //$NON-NLS-1$
-		assertTrue(PrimitiveType.FLOAT.toString().equals("float")); //$NON-NLS-1$
-		assertTrue(PrimitiveType.DOUBLE.toString().equals("double")); //$NON-NLS-1$
-		assertTrue(PrimitiveType.VOID.toString().equals("void")); //$NON-NLS-1$
-
-		
-		PrimitiveType.Code[] known = {
-			PrimitiveType.BOOLEAN,
-			PrimitiveType.BYTE,
-			PrimitiveType.CHAR,
-			PrimitiveType.INT,
-			PrimitiveType.SHORT,
-			PrimitiveType.LONG,
-			PrimitiveType.FLOAT,
-			PrimitiveType.DOUBLE,
-			PrimitiveType.VOID,
-		};
-		
-		// check all primitive type codes are distinct
-		for (int i = 0; i < known.length; i++) {
-			for (int j = 0; j < known.length; j++) {
-				assertTrue(i == j || !known[i].equals(known[j]));
-			}
-		}
-
-		// check all primitive type codes work
-		for (int i = 0; i < known.length; i++) {
-			previousCount = ast.modificationCount();
-			x.setPrimitiveTypeCode(known[i]);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getPrimitiveTypeCode().equals(known[i]));
-		}
-		// ensure null does not work as a primitive type code
-		try {
-			x.setPrimitiveTypeCode(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check toCode lookup of primitive type code by name
-		for (int i = 0; i < known.length; i++) {
-			String name = known[i].toString();
-			assertTrue(PrimitiveType.toCode(name).equals(known[i]));
-		}
-		assertTrue(PrimitiveType.toCode("not-a-type") == null); //$NON-NLS-1$
-	}		
-	
-	public void testArrayType() {
-		SimpleName x1 = ast.newSimpleName("String"); //$NON-NLS-1$
-		SimpleType x2 = ast.newSimpleType(x1);
-		long previousCount = ast.modificationCount();
-		final ArrayType x = ast.newArrayType(x2);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getComponentType().getParent() == x);
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		assertTrue(!x.isSimpleType());
-		assertTrue(x.isArrayType());
-		assertTrue(!x.isPrimitiveType());
-		assertTrue(!x.isQualifiedType());
-		assertTrue(x.getNodeType() == ASTNode.ARRAY_TYPE);
-		assertTrue(x.structuralPropertiesForType() == ArrayType.propertyDescriptors(ast.apiLevel()));
-
-		assertTrue(x.getDimensions() == 1);
-		assertTrue(x.getElementType() == x2);
-
-		genericPropertyTest(x, new Property("ComponentType", true, Type.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				SimpleType result = targetAst.newSimpleType(
-					targetAst.newSimpleName("a")); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newArrayType(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				ArrayType result = ast.newArrayType(x);
-				return result;
-			}
-			public void unwrap() {
-				ArrayType a = (ArrayType) x.getParent();
-				a.setComponentType(ast.newPrimitiveType(PrimitiveType.INT));
-			}
-			public ASTNode get() {
-				return x.getComponentType();
-			}
-			public void set(ASTNode value) {
-				x.setComponentType((Type) value);
-			}
-		});
-		
-		x.setComponentType(
-			ast.newArrayType(ast.newPrimitiveType(PrimitiveType.INT), 4));
-			
-		assertTrue(x.getDimensions() == 5);
-		assertTrue(x.getElementType().isPrimitiveType());
-	}		
-	
-	/** @deprecated using deprecated code */
-	public void testQualifiedType() {
-		if (ast.apiLevel() == AST.JLS2) {
-			// node type introduced in 3.0 API
-			try {
-				ast.newQualifiedType(
-						ast.newSimpleType(ast.newSimpleName("q")), //$NON-NLS-1$
-						ast.newSimpleName("i")); //$NON-NLS-1$
-				assertTrue(false);
-			} catch (UnsupportedOperationException e) {
-				// pass
-			}
-			return;
-		}
-		long previousCount = ast.modificationCount();
-		final QualifiedType x = ast.newQualifiedType(
-				ast.newSimpleType(ast.newSimpleName("q")), //$NON-NLS-1$
-				ast.newSimpleName("i")); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getQualifier().getParent() == x);
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getName().isDeclaration() == false);
-		assertTrue(x.getNodeType() == ASTNode.QUALIFIED_TYPE);
-		assertTrue(!x.isSimpleType());
-		assertTrue(!x.isArrayType());
-		assertTrue(!x.isPrimitiveType());
-		assertTrue(x.isQualifiedType());
-		assertTrue(x.structuralPropertiesForType() == QualifiedType.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Qualifier", true, Type.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				SimpleType result = 
-				targetAst.newSimpleType(
-						targetAst.newSimpleName("a")); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newArrayType(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				QualifiedType s1 = ast.newQualifiedType(x, ast.newSimpleName("z")); //$NON-NLS-1$
-				return s1;
-			}
-			public void unwrap() {
-				QualifiedType s1 = (QualifiedType) x.getParent();
-				s1.setQualifier(ast.newSimpleType(ast.newSimpleName("z"))); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getQualifier();
-			}
-			public void set(ASTNode value) {
-				x.setQualifier((Type) value);
-			}
-		});
-		
-		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);
-			}
-		});
-	}				
-
-	public void testPackageDeclaration() {
-		long previousCount = ast.modificationCount();
-		final PackageDeclaration x = ast.newPackageDeclaration();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() >= AST.JLS3) {
-			assertTrue(x.getJavadoc() == null);
-			assertTrue(x.annotations().isEmpty());
-		}
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.PACKAGE_DECLARATION);
-		assertTrue(x.structuralPropertiesForType() == PackageDeclaration.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyTest(x, new Property("Javadoc", false, JSdoc.class) { //$NON-NLS-1$
-				public ASTNode sample(AST targetAst, boolean parented) {
-					JSdoc result = targetAst.newJSdoc();
-					if (parented) {
-						targetAst.newInitializer().setJavadoc(result);
-					}
-					return result;
-				}
-				public ASTNode get() {
-					return x.getJavadoc();
-				}
-				public void set(ASTNode value) {
-					x.setJavadoc((JSdoc) value);
-				}
-			});
-			
-
-		}
-		
-		genericPropertyTest(x, new Property("Name", 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.getName();
-			}
-			public void set(ASTNode value) {
-				x.setName((Name) value);
-			}
-		});
-	}		
-	
-	public void testImportDeclaration() {
-		long previousCount = ast.modificationCount();
-		final ImportDeclaration x = ast.newImportDeclaration();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.isOnDemand() == false);
-		if (ast.apiLevel() >= AST.JLS3) {
-			assertTrue(x.isStatic() == false);
-		}
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.IMPORT_DECLARATION);
-		assertTrue(x.structuralPropertiesForType() == ImportDeclaration.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Name", 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.getName();
-			}
-			public void set(ASTNode value) {
-				x.setName((Name) value);
-			}
-		});
-
-		previousCount = ast.modificationCount();
-		x.setOnDemand(false);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.isOnDemand() == false);
-		previousCount = ast.modificationCount();
-		x.setOnDemand(true);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.isOnDemand() == true);
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			x.setStatic(true);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.isStatic() == true);
-		}
-	}
-	
-	public void testCompilationUnit() {
-		long previousCount = ast.modificationCount();
-		final JavaScriptUnit x = ast.newJavaScriptUnit();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getPackage() == null);
-		assertTrue(x.imports().size() == 0);
-		assertTrue(x.types().size() == 0);
-		assertTrue(x.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		assertTrue(x.structuralPropertiesForType() == JavaScriptUnit.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tClientProperties(x);
-		
-		genericPropertyTest(x, new Property("Package", false, PackageDeclaration.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				PackageDeclaration result = targetAst.newPackageDeclaration();
-				if (parented) {
-					JavaScriptUnit cu = targetAst.newJavaScriptUnit();
-					cu.setPackage(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getPackage();
-			}
-			public void set(ASTNode value) {
-				x.setPackage((PackageDeclaration) value);
-			}
-		});
-
-		genericPropertyListTest(x, x.imports(), new Property("Imports", true, ImportDeclaration.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				ImportDeclaration result = targetAst.newImportDeclaration();
-				if (parented) {
-					JavaScriptUnit cu = targetAst.newJavaScriptUnit();
-					cu.imports().add(result);
-				}
-				return result;
-			}
-		});
-		
-		genericPropertyListTest(x, x.types(), new Property("Types", true, AbstractTypeDeclaration.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;
-			}
-		});
-		
-		// check that TypeDeclarations in body are classified correctly
-		TypeDeclaration t1 = ast.newTypeDeclaration();
-		x.types().add(t1);
-		assertTrue(t1.isLocalTypeDeclaration() == false);
-		assertTrue(t1.isMemberTypeDeclaration() == false);
-		assertTrue(t1.isPackageMemberTypeDeclaration() == true);
-
-	}		
-	
-	public void testCompilationUnitLineNumberTable() {
-//		TO RUN THIS TEST YOU MUST TEMPORARILY MAKE PUBLIC
-//		THE METHOD JavaScriptUnit.setLineEndTable
-		
-//		final JavaScriptUnit x = ast.newCompilationUnit();
-//		
-//		// table starts off empty
-//		for (int i= -10; i < 10; i++) {
-//			assertTrue(x.lineNumber(i) == 1);
-//		}
-//		
-//		// supply a simple line table to test
-//		String s = "AA\nBBB\nCC\nDDDD\nEEE";
-//		assertTrue(s.length() == 18);  // cross check
-//		int le[] = new int[5];
-//		le[0] = s.indexOf('\n');
-//		le[1] = s.indexOf('\n', le[0] + 1);
-//		le[2] = s.indexOf('\n', le[1] + 1);
-//		le[3] = s.indexOf('\n', le[2] + 1);
-//		le[4] = s.length() - 1;
-//		long previousCount = ast.modificationCount();
-//		x.setLineEndTable(le);
-//		assertTrue(ast.modificationCount() > previousCount);
-//
-//		assertTrue(x.lineNumber(0) == 1);
-//		assertTrue(x.lineNumber(1) == 1);
-//		assertTrue(x.lineNumber(2) == 1);
-//		assertTrue(x.lineNumber(3) == 2);
-//		assertTrue(x.lineNumber(4) == 2);
-//		assertTrue(x.lineNumber(5) == 2);
-//		assertTrue(x.lineNumber(6) == 2);
-//		assertTrue(x.lineNumber(7) == 3);
-//		assertTrue(x.lineNumber(8) == 3);
-//		assertTrue(x.lineNumber(9) == 3);
-//		assertTrue(x.lineNumber(10) == 4);
-//		assertTrue(x.lineNumber(11) == 4);
-//		assertTrue(x.lineNumber(12) == 4);
-//		assertTrue(x.lineNumber(13) == 4);
-//		assertTrue(x.lineNumber(14) == 4);
-//		assertTrue(x.lineNumber(15) == 5);
-//		assertTrue(x.lineNumber(16) == 5);
-//		assertTrue(x.lineNumber(17) == 5);
-//
-//		assertTrue(x.lineNumber(18) == 1);
-//		assertTrue(x.lineNumber(100) == 1);
-//		assertTrue(x.lineNumber(1000000) == 1);
-//		assertTrue(x.lineNumber(-1) == 1);
-//		assertTrue(x.lineNumber(-100) == 1);
-//		assertTrue(x.lineNumber(-1000000) == 1);
-//				
-//		// slam table back to none
-//		x.setLineEndTable(new int[0]);
-//		for (int i= -10; i < 10; i++) {
-//			assertTrue(x.lineNumber(i) == 1);
-//		}
-	}		
-	
-	/** @deprecated using deprecated code */
-	public void testTypeDeclaration() {
-		long previousCount = ast.modificationCount();
-		final TypeDeclaration x = ast.newTypeDeclaration();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getModifiers() == Modifier.NONE);
-			assertTrue(x.getSuperclass() == null);
-		} else {
-			assertTrue(x.modifiers().size() == 0);
-			assertTrue(x.getSuperclassType() == null);
-		}
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getName().isDeclaration() == true);
-		assertTrue(x.getJavadoc() == null);
-		assertTrue(x.bodyDeclarations().size()== 0);
-		assertTrue(x.getNodeType() == ASTNode.TYPE_DECLARATION);
-		assertTrue(x.structuralPropertiesForType() == TypeDeclaration.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		previousCount = ast.modificationCount();
-		
-		if (ast.apiLevel() == AST.JLS2) {
-			int legal = Modifier.PUBLIC | Modifier.PROTECTED
-				| Modifier.PRIVATE | Modifier.ABSTRACT | Modifier.STATIC
-				| Modifier.FINAL | Modifier.STRICTFP;
-			previousCount = ast.modificationCount();
-			x.setModifiers(legal);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == legal);
-	
-			previousCount = ast.modificationCount();
-			x.setModifiers(Modifier.NONE);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		}
-		
-		tJavadocComment(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);
-			}
-		});
-		
-		if (ast.apiLevel() == AST.JLS2) {
-			genericPropertyTest(x, new Property("Superclass", false, Name.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.getSuperclass();
-				}
-				public void set(ASTNode value) {
-					x.setSuperclass((Name) value);
-				}
-			});
-		}
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyTest(x, new Property("SuperclassType", false, 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.getSuperclassType();
-				}
-				public void set(ASTNode value) {
-					x.setSuperclassType((Type) value);
-				}
-			});
-		}
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyListTest(x, null,
-			  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.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();
-		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.bodyDeclarations().add(ast.newInitializer());
-		x.bodyDeclarations().add(f1);
-		x.bodyDeclarations().add(ast.newInitializer());
-		x.bodyDeclarations().add(f2);
-		x.bodyDeclarations().add(ast.newInitializer());
-		x.bodyDeclarations().add(t1);
-		x.bodyDeclarations().add(ast.newInitializer());
-		x.bodyDeclarations().add(m1);
-		x.bodyDeclarations().add(ast.newInitializer());
-		x.bodyDeclarations().add(m2);
-		x.bodyDeclarations().add(ast.newInitializer());
-		x.bodyDeclarations().add(t2);
-		x.bodyDeclarations().add(ast.newInitializer());
-
-		List fs = Arrays.asList(x.getFields());
-		assertTrue(fs.size() == 2);
-		assertTrue(fs.contains(f1));
-		assertTrue(fs.contains(f2));
-		
-		List ms = Arrays.asList(x.getMethods());
-		assertTrue(ms.size() == 2);
-		assertTrue(ms.contains(m1));
-		assertTrue(ms.contains(m2));
-
-		List ts = Arrays.asList(x.getTypes());
-		assertTrue(ts.size() == 2);
-		assertTrue(ts.contains(t1));
-		assertTrue(ts.contains(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 testSingleVariableDeclaration() {
-		long previousCount = ast.modificationCount();
-		final SingleVariableDeclaration x = ast.newSingleVariableDeclaration();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		} else {
-			assertTrue(x.modifiers().size() == 0);
-			assertTrue(x.isVarargs() == false);
-		}
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getName().isDeclaration() == true);
-		assertTrue(x.getType().getParent() == x);
-		assertTrue(x.getExtraDimensions() == 0);
-		assertTrue(x.getInitializer() == null);
-		assertTrue(x.getNodeType() == ASTNode.SINGLE_VARIABLE_DECLARATION);
-		assertTrue(x.structuralPropertiesForType() == SingleVariableDeclaration.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		if (ast.apiLevel() == AST.JLS2) {
-			int legal = Modifier.PUBLIC | Modifier.PROTECTED
-				| Modifier.PRIVATE | Modifier.STATIC | Modifier.FINAL
-				| Modifier.TRANSIENT | Modifier.VOLATILE;
-			previousCount = ast.modificationCount();
-			x.setModifiers(legal);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == legal);
-	
-			previousCount = ast.modificationCount();
-			x.setModifiers(Modifier.NONE);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		}
-
-		previousCount = ast.modificationCount();
-		x.setExtraDimensions(1);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getExtraDimensions() == 1);
-
-		previousCount = ast.modificationCount();
-		x.setExtraDimensions(0);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getExtraDimensions() == 0);
-
-		if (ast.apiLevel() >= AST.JLS3) {
-			previousCount = ast.modificationCount();
-			x.setVarargs(true);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.isVarargs() == true);
-	
-			previousCount = ast.modificationCount();
-			x.setVarargs(false);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.isVarargs() == false);
-		}
-
-
-		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("Initializer", false, 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() {
-				// return an Expression that embeds x
-				CatchClause s1 = ast.newCatchClause();
-				s1.setException(x);
-				return s1;
-			}
-			public void unwrap() {
-				CatchClause s1 = (CatchClause) x.getParent();
-				s1.setException(ast.newSingleVariableDeclaration());
-			}
-			public ASTNode get() {
-				return x.getInitializer();
-			}
-			public void set(ASTNode value) {
-				x.setInitializer((Expression) value);
-			}
-		});
-	}
-	
-	public void testVariableDeclarationFragment() {
-		long previousCount = ast.modificationCount();
-		final VariableDeclarationFragment x = ast.newVariableDeclarationFragment();
-		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.getExtraDimensions() == 0);
-		assertTrue(x.getInitializer() == null);
-		assertTrue(x.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			VariableDeclarationFragment.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		previousCount = ast.modificationCount();
-		x.setExtraDimensions(1);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getExtraDimensions() == 1);
-
-		previousCount = ast.modificationCount();
-		x.setExtraDimensions(0);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getExtraDimensions() == 0);
-		
-		// check that property cannot be set negative
-		try {
-			x.setExtraDimensions(-1);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		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("Initializer", false, 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() {
-				// return an Expression that embeds x
-				VariableDeclarationExpression s1 =
-					ast.newVariableDeclarationExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				VariableDeclarationExpression s1 = 
-					(VariableDeclarationExpression) x.getParent();
-				s1.fragments().remove(x);
-			}
-			public ASTNode get() {
-				return x.getInitializer();
-			}
-			public void set(ASTNode value) {
-				x.setInitializer((Expression) value);
-			}
-		});
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testMethodDeclaration() {
-		long previousCount = ast.modificationCount();
-		final FunctionDeclaration x = ast.newFunctionDeclaration();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getModifiers() == Modifier.NONE);
-			assertTrue(x.getReturnType().getParent() == x);
-			assertTrue(x.getReturnType().isPrimitiveType());
-			assertTrue(((PrimitiveType) x.getReturnType()).getPrimitiveTypeCode() == PrimitiveType.VOID);
-		} else {
-			assertTrue(x.modifiers().size() == 0);
-			assertTrue(x.getReturnType2().getParent() == x);
-			assertTrue(x.getReturnType2().isPrimitiveType());
-			assertTrue(((PrimitiveType) x.getReturnType2()).getPrimitiveTypeCode() == PrimitiveType.VOID);
-		}
-		assertTrue(x.isConstructor() == false);
-		//assertTrue(x.getName().getParent() == x);
-		//assertTrue(x.getName().isDeclaration() == true);
-		assertTrue(x.getExtraDimensions() == 0);
-		assertTrue(x.getJavadoc() == null);
-		assertTrue(x.parameters().size() == 0);
-		assertTrue(x.thrownExceptions().size() == 0);
-		assertTrue(x.getBody() == null);
-		assertTrue(x.getNodeType() == ASTNode.FUNCTION_DECLARATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			FunctionDeclaration.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		previousCount = ast.modificationCount();
-		x.setConstructor(true);	
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.isConstructor() == true);
-		//assertTrue(x.getName().isDeclaration() == false);
-
-		previousCount = ast.modificationCount();
-		x.setConstructor(false);	
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.isConstructor() == false);
-		
-		if (ast.apiLevel() == AST.JLS2) {
-			previousCount = ast.modificationCount();
-			int legal = Modifier.PUBLIC | Modifier.PROTECTED
-				| Modifier.PRIVATE | Modifier.ABSTRACT | Modifier.STATIC 
-				| Modifier.FINAL | Modifier.SYNCHRONIZED| Modifier.NATIVE
-				| Modifier.STRICTFP;
-			x.setModifiers(legal);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == legal);
-	
-			previousCount = ast.modificationCount();
-			x.setModifiers(Modifier.NONE);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		}
-
-		previousCount = ast.modificationCount();
-		x.setExtraDimensions(1);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getExtraDimensions() == 1);
-
-		previousCount = ast.modificationCount();
-		x.setExtraDimensions(0);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getExtraDimensions() == 0);
-
-		tJavadocComment(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);
-			}
-		});
-		
-		if (ast.apiLevel() == AST.JLS2) {
-			genericPropertyTest(x, new Property("ReturnType", 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.getReturnType();
-				}
-				public void set(ASTNode value) {
-					x.setReturnType((Type) value);
-				}
-			});
-		}
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyTest(x, new Property("ReturnType2", false, 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.getReturnType2();
-				}
-				public void set(ASTNode value) {
-					x.setReturnType2((Type) value);
-				}
-			});
-		}
-		
-		genericPropertyListTest(x, x.parameters(),
-		  new Property("Parameters", true, SingleVariableDeclaration.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				SingleVariableDeclaration result = targetAst.newSingleVariableDeclaration();
-				if (parented) {
-					targetAst.newCatchClause().setException(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a SingleVariableDeclaration that embeds x
-				SingleVariableDeclaration s1 = ast.newSingleVariableDeclaration();
-				ClassInstanceCreation s2 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s2.setAnonymousClassDeclaration(a1);
-				s1.setInitializer(s2);
-				a1.bodyDeclarations().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				AnonymousClassDeclaration a1 = (AnonymousClassDeclaration) x.getParent();
-				a1.bodyDeclarations().remove(x);
-			}
-		});
-		
-		genericPropertyListTest(x, x.thrownExceptions(),
-		  new Property("ThrownExceptions", true, Name.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;
-			}
-		});
-		
-		genericPropertyTest(x, new Property("Body", false, Block.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Block that embeds x
-				Block s1 = ast.newBlock();
-				TypeDeclaration s2 = ast.newTypeDeclaration();
-				s1.statements().add(ast.newTypeDeclarationStatement(s2));
-				s2.bodyDeclarations().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				TypeDeclaration s2 = (TypeDeclaration) x.getParent();
-				s2.bodyDeclarations().remove(x);
-			}
-			public ASTNode get() {
-				return x.getBody();
-			}
-			public void set(ASTNode value) {
-				x.setBody((Block) value);
-			}
-		});
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			// check isVariableArity convenience method
-			x.parameters().clear();
-			assertTrue(!x.isVarargs()); // 0 params
-			x.parameters().add(ast.newSingleVariableDeclaration());
-			assertTrue(!x.isVarargs()); // 1 params
-			SingleVariableDeclaration v = ast.newSingleVariableDeclaration();
-			x.parameters().add(v);
-			assertTrue(!x.isVarargs()); // 2 param fixed arity
-			v.setVarargs(true);
-			assertTrue(x.isVarargs()); // 2 param fixed arity
-			x.parameters().add(ast.newSingleVariableDeclaration());
-			assertTrue(!x.isVarargs()); // only last param counts
-		}
-	}	
-	
-	/** @deprecated using deprecated code */
-	public void testInitializer() {
-		long previousCount = ast.modificationCount();
-		final Initializer x = ast.newInitializer();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getJavadoc() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		} else {
-			assertTrue(x.modifiers().size() == 0);
-		}
-		assertTrue(x.getBody().getParent() == x);
-		assertTrue(x.getBody().statements().size() == 0);
-		assertTrue(x.getNodeType() == ASTNode.INITIALIZER);
-		assertTrue(x.structuralPropertiesForType() == 
-			Initializer.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		tJavadocComment(x);
-				
-		if (ast.apiLevel() == AST.JLS2) {
-			int legal = Modifier.STATIC;
-			previousCount = ast.modificationCount();
-			x.setModifiers(legal);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == legal);
-			
-			previousCount = ast.modificationCount();
-			x.setModifiers(Modifier.NONE);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		}
-		
-		genericPropertyTest(x, new Property("Body", true, Block.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return Block that embeds x
-				Block s1 = ast.newBlock();
-				TypeDeclaration s2 = ast.newTypeDeclaration();
-				s1.statements().add(ast.newTypeDeclarationStatement(s2));
-				s2.bodyDeclarations().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				TypeDeclaration s2 = (TypeDeclaration) x.getParent();
-				s2.bodyDeclarations().remove(x);
-			}
-			public ASTNode get() {
-				return x.getBody();
-			}
-			public void set(ASTNode value) {
-				x.setBody((Block) value);
-			}
-		});
-	}	
-
-	/**
-	 * @deprecated (not really - its just that Javadoc.get/setComment
-	 * are deprecated, and this suppresses the extra warnings)
-	 */
-	public void testJavadoc() {
-		long previousCount = ast.modificationCount();
-		final JSdoc x = ast.newJSdoc();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getComment().startsWith("/**")); //$NON-NLS-1$
-			assertTrue(x.getComment().endsWith("*/")); //$NON-NLS-1$
-		}
-		assertTrue(x.getNodeType() == ASTNode.JSDOC);
-		assertTrue(!x.isBlockComment());
-		assertTrue(!x.isLineComment());
-		assertTrue(x.isDocComment());
-		assertTrue(x.tags().isEmpty());
-		assertTrue(x.getAlternateRoot() == null);
-		assertTrue(x.structuralPropertiesForType() == 
-			JSdoc.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		// check the constants
-		assertTrue(TagElement.TAG_AUTHOR.equals("@author")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_DEPRECATED.equals("@deprecated")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_DOCROOT.equals("@docRoot")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_EXCEPTION.equals("@exception")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_INHERITDOC.equals("@inheritDoc")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_LINK.equals("@link")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_LINKPLAIN.equals("@linkplain")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_PARAM.equals("@param")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_RETURN.equals("@return")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_SEE.equals("@see")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_SERIAL.equals("@serial")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_SERIALDATA.equals("@serialData")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_SERIALFIELD.equals("@serialField")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_SINCE.equals("@since")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_THROWS.equals("@throws")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_VALUE.equals("@value")); //$NON-NLS-1$
-		assertTrue(TagElement.TAG_VERSION.equals("@version")); //$NON-NLS-1$
-
-		if (ast.apiLevel() == AST.JLS2) {
-			final String[] samples =
-				{ 
-				  "/** Hello there */", //$NON-NLS-1$
-				  "/**\n * Line 1\n * Line 2\n */", //$NON-NLS-1$
-				  "/***/", //$NON-NLS-1$
-				};
-			for (int i = 0; i < samples.length; i++) {			
-				previousCount = ast.modificationCount();
-				x.setComment(samples[i]);
-				assertTrue(ast.modificationCount() > previousCount);
-				assertTrue(samples[i].equals(x.getComment()));
-			}
-	
-			final String[] badSamples =
-				{ 
-				  null,
-				  "", //$NON-NLS-1$
-				  "/* */", //$NON-NLS-1$
-				  "/**", //$NON-NLS-1$
-				  "*/", //$NON-NLS-1$
-				};
-	
-			// check that property cannot be set to clearly illegal things
-			for (int i = 0; i < badSamples.length; i++) {			
-				try {
-					x.setComment(badSamples[i]);
-					assertTrue(false);
-				} catch (RuntimeException e) {
-					// pass
-				}
-			}
-		}
-		
-		tAlternateRoot(x);
-
-		genericPropertyListTest(x, x.tags(),
-		  new Property("Tags", true, TagElement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				TagElement result = targetAst.newTagElement();
-				if (parented) {
-					JSdoc parent = targetAst.newJSdoc();
-					parent.tags().add(result);
-				}
-				return result;
-			}
-			public ASTNode[] counterExamples(AST targetAst) {
-				return new ASTNode[] {
-					targetAst.newEmptyStatement(),
-					targetAst.newJavaScriptUnit(),
-					targetAst.newTypeDeclaration(),
-					targetAst.newJSdoc(),
-					targetAst.newTextElement(),
-					targetAst.newFunctionRef()
-				};
-			}
-		});
-	}		
-
-	public void testBlockComment() {
-		long previousCount = ast.modificationCount();
-		final BlockComment x = ast.newBlockComment();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getNodeType() == ASTNode.BLOCK_COMMENT);
-		assertTrue(x.isBlockComment());
-		assertTrue(!x.isLineComment());
-		assertTrue(!x.isDocComment());
-		assertTrue(x.getAlternateRoot() == null);
-		assertTrue(x.structuralPropertiesForType() == 
-			BlockComment.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tAlternateRoot(x);
-	}		
-
-	public void testLineComment() {
-		long previousCount = ast.modificationCount();
-		final LineComment x = ast.newLineComment();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getNodeType() == ASTNode.LINE_COMMENT);
-		assertTrue(!x.isBlockComment());
-		assertTrue(x.isLineComment());
-		assertTrue(!x.isDocComment());
-		assertTrue(x.getAlternateRoot() == null);
-		assertTrue(x.structuralPropertiesForType() == 
-			LineComment.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tAlternateRoot(x);
-	}		
-
-	public void testTagElement() {
-		long previousCount = ast.modificationCount();
-		final TagElement x = ast.newTagElement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getNodeType() == ASTNode.TAG_ELEMENT);
-		assertTrue(x.getTagName() == null);
-		assertTrue(x.fragments().isEmpty());
-		assertTrue(x.structuralPropertiesForType() == 
-			TagElement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		// tagName property
-		previousCount = ast.modificationCount();
-		String s1 = new String("hello"); //$NON-NLS-1$
-		x.setTagName(s1);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getTagName() == s1);
-		previousCount = ast.modificationCount();
-		String s2 = new String("bye"); //$NON-NLS-1$
-		x.setTagName(s2);
-		assertTrue(x.getTagName() == s2);
-		assertTrue(ast.modificationCount() > previousCount);
-		x.setTagName(null);
-		assertTrue(x.getTagName() == null);
-		assertTrue(ast.modificationCount() > previousCount);
-		
-		// check that fragments() can handle TagElement
-		genericPropertyListTest(x, x.fragments(),
-		  new Property("Fragments", true, TagElement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				TagElement result = targetAst.newTagElement();
-				if (parented) {
-					JSdoc parent = targetAst.newJSdoc();
-					parent.tags().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return TagElement that embeds x
-				TagElement tagElement = ast.newTagElement();
-				tagElement.fragments().add(x);
-				return tagElement;
-			}
-			public void unwrap() {
-				TagElement tagElement = (TagElement) x.getParent();
-				tagElement.fragments().remove(x);
-			}
-			public ASTNode[] counterExamples(AST targetAst) {
-				return new ASTNode[] {
-					targetAst.newEmptyStatement(),
-					targetAst.newJavaScriptUnit(),
-					targetAst.newTypeDeclaration(),
-					targetAst.newJSdoc(),
-				};
-			}
-		});
-		// check that fragments() can handle Name
-		genericPropertyListTest(x, x.fragments(),
-		  new Property("Fragments", true, Name.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;
-			}
-		});
-		// check that fragments() can handle TextElement
-		genericPropertyListTest(x, x.fragments(),
-		  new Property("Fragments", true, TextElement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				TextElement result = targetAst.newTextElement();
-				if (parented) {
-					TagElement parent = targetAst.newTagElement();
-					parent.fragments().add(result);
-				}
-				return result;
-			}
-		});
-		// check that fragments() can handle FunctionRef
-		genericPropertyListTest(x, x.fragments(),
-		  new Property("Fragments", true, FunctionRef.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				FunctionRef result = targetAst.newFunctionRef();
-				if (parented) {
-					TagElement parent = targetAst.newTagElement();
-					parent.fragments().add(result);
-				}
-				return result;
-			}
-		});
-		// check that fragments() can handle MemberRef
-		genericPropertyListTest(x, x.fragments(),
-		  new Property("Fragments", true, MemberRef.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				MemberRef result = targetAst.newMemberRef();
-				if (parented) {
-					TagElement parent = targetAst.newTagElement();
-					parent.fragments().add(result);
-				}
-				return result;
-			}
-		});
-	}		
-
-	public void testTextElement() {
-		long previousCount = ast.modificationCount();
-		final TextElement x = ast.newTextElement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getNodeType() == ASTNode.TEXT_ELEMENT);
-		assertTrue(x.getText().length() == 0);
-		assertTrue(x.structuralPropertiesForType() == 
-			TextElement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		// text property
-		previousCount = ast.modificationCount();
-		String s1 = new String("hello");
-		x.setText(s1);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getText() == s1);
-		previousCount = ast.modificationCount();
-		String s2 = new String("");
-		x.setText(s2);
-		assertTrue(x.getText() == s2);
-		assertTrue(ast.modificationCount() > previousCount);
-		// check that property cannot be set to null
-		previousCount = ast.modificationCount();
-		try {
-			x.setText(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-		assertTrue(ast.modificationCount() == previousCount);
-		// check that property cannot include */
-		previousCount = ast.modificationCount();
-		try {
-			x.setText("this would be the */ end of it");  //$NON-NLS-1$
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-		assertTrue(ast.modificationCount() == previousCount);
-	}		
-
-	public void testMemberRef() {
-		long previousCount = ast.modificationCount();
-		final MemberRef x = ast.newMemberRef();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getNodeType() == ASTNode.MEMBER_REF);
-		assertTrue(x.getQualifier() == null);
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.structuralPropertiesForType() == 
-			MemberRef.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Qualifier", false, Name.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				QualifiedName result = targetAst.newQualifiedName(
-					targetAst.newSimpleName("a"), //$NON-NLS-1$
-					targetAst.newSimpleName("b")); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newExpressionStatement(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getQualifier();
-			}
-			public void set(ASTNode value) {
-				x.setQualifier((Name) value);
-			}
-		});
-
-		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);
-			}
-		});
-	}		
-	
-	public void testMethodRef() {
-		long previousCount = ast.modificationCount();
-		final FunctionRef x = ast.newFunctionRef();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getNodeType() == ASTNode.FUNCTION_REF);
-		assertTrue(x.getQualifier() == null);
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.parameters().isEmpty());
-		assertTrue(x.structuralPropertiesForType() == 
-			FunctionRef.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Qualifier", false, Name.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				QualifiedName result = targetAst.newQualifiedName(
-					targetAst.newSimpleName("a"), //$NON-NLS-1$
-					targetAst.newSimpleName("b")); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newExpressionStatement(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getQualifier();
-			}
-			public void set(ASTNode value) {
-				x.setQualifier((Name) value);
-			}
-		});
-
-		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.parameters(),
-		  new Property("Parameters", true, FunctionRefParameter.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				FunctionRefParameter result = targetAst.newFunctionRefParameter();
-				if (parented) {
-					FunctionRef parent = targetAst.newFunctionRef();
-					parent.parameters().add(result);
-				}
-				return result;
-			}
-		});
-	}		
-	
-	public void testMethodRefParameter() {
-		long previousCount = ast.modificationCount();
-		final FunctionRefParameter x = ast.newFunctionRefParameter();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getNodeType() == ASTNode.FUNCTION_REF_PARAMETER);
-		assertTrue(x.getType().getParent() == x);
-		if (ast.apiLevel() >= AST.JLS3) {
-			assertTrue(x.isVarargs() == false);
-		}
-		assertTrue(x.getName() == null);
-		assertTrue(x.structuralPropertiesForType() == 
-			FunctionRefParameter.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			previousCount = ast.modificationCount();
-			x.setVarargs(true);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.isVarargs() == true);
-	
-			previousCount = ast.modificationCount();
-			x.setVarargs(false);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.isVarargs() == false);
-		}
-
-		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("Name", false, 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);
-			}
-		});
-	}		
-	
-	public void testBlock() {
-		long previousCount = ast.modificationCount();
-		final Block x = ast.newBlock();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.statements().size() == 0);
-		assertTrue(x.getNodeType() == ASTNode.BLOCK);
-		assertTrue(x.structuralPropertiesForType() == 
-			Block.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		tLeadingComment(x);
-
-		genericPropertyListTest(x, x.statements(),
-		  new Property("Statements", true, Statement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Statement that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-		});
-	}	
-	
-	public void testMethodInvocation() {
-		long previousCount = ast.modificationCount();
-		final FunctionInvocation x = ast.newFunctionInvocation();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() >= AST.JLS3) {
-			assertTrue(x.typeArguments().isEmpty());
-		}
-		//assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getExpression() == null);
-		assertTrue(x.arguments().size() == 0);
-		assertTrue(x.getNodeType() == ASTNode.FUNCTION_INVOCATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			FunctionInvocation.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		genericPropertyTest(x, new Property("Expression", false, 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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyListTest(x, x.typeArguments(),
-			  new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
-				public ASTNode sample(AST targetAst, boolean parented) {
-					Type result = targetAst.newSimpleType(targetAst.newSimpleName("X")); //$NON-NLS-1$
-					if (parented) {
-						targetAst.newArrayType(result);
-					}
-					return result;
-				}
-			});
-		}
-		
-		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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-		});
-	}	
-	
-	public void testExpressionStatement() {
-		long previousCount = ast.modificationCount();
-		SimpleName x1 = ast.newSimpleName("foo"); //$NON-NLS-1$
-		final ExpressionStatement x = ast.newExpressionStatement(x1);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression() == x1);
-		assertTrue(x1.getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.EXPRESSION_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			ExpressionStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Expression", 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() {
-				// return Expression that embeds x
-				ClassInstanceCreation s1 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-
-	}	
-	
-	/** @deprecated using deprecated code */
-	public void testVariableDeclarationStatement() {
-		VariableDeclarationFragment x1 = ast.newVariableDeclarationFragment();
-		long previousCount = ast.modificationCount();
-		final VariableDeclarationStatement x = 
-			ast.newVariableDeclarationStatement(x1);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		} else {
-			assertTrue(x.modifiers().size() == 0);
-		}
-		assertTrue(x.getType() != null);
-		assertTrue(x.getType().getParent() == x);
-		assertTrue(x.fragments().size() == 1);
-		assertTrue(x.fragments().get(0) == x1);
-		assertTrue(x1.getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.VARIABLE_DECLARATION_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			VariableDeclarationStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		tLeadingComment(x);
-
-		if (ast.apiLevel() == AST.JLS2) {
-			int legal = Modifier.FINAL;
-			previousCount = ast.modificationCount();
-			x.setModifiers(legal);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == legal);
-	
-			previousCount = ast.modificationCount();
-			x.setModifiers(Modifier.NONE);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		}
-		
-
-		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);
-			}
-		});
-
-		genericPropertyListTest(x, x.fragments(),
-		  new Property("VariableSpecifiers", true, VariableDeclarationFragment.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				VariableDeclarationFragment result = targetAst.newVariableDeclarationFragment();
-				if (parented) {
-					targetAst.newVariableDeclarationExpression(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return VariableDeclarationFragment that embeds x
-				VariableDeclarationFragment s1 = ast.newVariableDeclarationFragment();
-				ClassInstanceCreation s0 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s0.setAnonymousClassDeclaration(a1);
-				s1.setInitializer(s0);
-				Initializer s2 = ast.newInitializer();
-				a1.bodyDeclarations().add(s2);
-				s2.getBody().statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-		});
-	}	
-	
-	/** @deprecated using deprecated code */
-	public void testTypeDeclarationStatement() {
-		AbstractTypeDeclaration x1 = ast.newTypeDeclaration();
-		long previousCount = ast.modificationCount();
-		final TypeDeclarationStatement x =
-			ast.newTypeDeclarationStatement(x1);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getTypeDeclaration() == x1);
-		} else {
-			assertTrue(x.getDeclaration() == x1);
-		}
-		assertTrue(x1.getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.TYPE_DECLARATION_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			TypeDeclarationStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		// check that TypeDeclaration inside is classified correctly
-		assertTrue(x1.isLocalTypeDeclaration() == true);
-		assertTrue(x1.isMemberTypeDeclaration() == false);
-		assertTrue(x1.isPackageMemberTypeDeclaration() == false);
-	
-		tLeadingComment(x);
-
-		if (ast.apiLevel() == AST.JLS2) {
-			genericPropertyTest(x, new Property("TypeDeclaration", true, TypeDeclaration.class) { //$NON-NLS-1$
-				public ASTNode sample(AST targetAst, boolean parented) {
-					TypeDeclaration result = targetAst.newTypeDeclaration();
-					if (parented) {
-						targetAst.newTypeDeclarationStatement(result);
-					}
-					return result;
-				}
-				public ASTNode wrap() {
-					// return TypeDeclaration that embeds x
-					TypeDeclaration s1 = ast.newTypeDeclaration();
-					FunctionDeclaration s2 = ast.newFunctionDeclaration();
-					s1.bodyDeclarations().add(s2);
-					Block s3 = ast.newBlock();
-					s2.setBody(s3);
-					s3.statements().add(x);
-					return s1;
-				}
-				public void unwrap() {
-					Block s3 = (Block) x.getParent();
-					s3.statements().remove(x);
-				}
-				public ASTNode get() {
-					return x.getTypeDeclaration();
-				}
-				public void set(ASTNode value) {
-					x.setTypeDeclaration((TypeDeclaration) value);
-				}
-			});
-		}
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyTest(x, new Property("Declaration", true, AbstractTypeDeclaration.class) { //$NON-NLS-1$
-				public ASTNode sample(AST targetAst, boolean parented) {
-					AbstractTypeDeclaration result = targetAst.newTypeDeclaration();
-					if (parented) {
-						targetAst.newTypeDeclarationStatement(result);
-					}
-					return result;
-				}
-				public ASTNode wrap() {
-					// return TypeDeclaration that embeds x
-					TypeDeclaration s1 = ast.newTypeDeclaration();
-					FunctionDeclaration s2 = ast.newFunctionDeclaration();
-					s1.bodyDeclarations().add(s2);
-					Block s3 = ast.newBlock();
-					s2.setBody(s3);
-					s3.statements().add(x);
-					return s1;
-				}
-				public void unwrap() {
-					Block s3 = (Block) x.getParent();
-					s3.statements().remove(x);
-				}
-				public ASTNode get() {
-					return x.getDeclaration();
-				}
-				public void set(ASTNode value) {
-					x.setDeclaration((AbstractTypeDeclaration) value);
-				}
-			});
-		}
-	}
-		
-	/** @deprecated using deprecated code */
-	public void testVariableDeclarationExpression() {
-		VariableDeclarationFragment x1 = ast.newVariableDeclarationFragment();
-		long previousCount = ast.modificationCount();
-		final VariableDeclarationExpression x = 
-			ast.newVariableDeclarationExpression(x1);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		} else {
-			assertTrue(x.modifiers().size() == 0);
-		}
-		assertTrue(x.getType() != null);
-		assertTrue(x.getType().getParent() == x);
-		assertTrue(x.fragments().size() == 1);
-		assertTrue(x.fragments().get(0) == x1);
-		assertTrue(x1.getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.VARIABLE_DECLARATION_EXPRESSION);
-		assertTrue(x.structuralPropertiesForType() == 
-			VariableDeclarationExpression.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		if (ast.apiLevel() == AST.JLS2) {
-			int legal = Modifier.FINAL;
-			previousCount = ast.modificationCount();
-			x.setModifiers(legal);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == legal);
-	
-			previousCount = ast.modificationCount();
-			x.setModifiers(Modifier.NONE);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		}
-		
-
-		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);
-			}
-		});
-
-		genericPropertyListTest(x, x.fragments(),
-		  new Property("VariableSpecifiers", true, VariableDeclarationFragment.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				VariableDeclarationFragment result = targetAst.newVariableDeclarationFragment();
-				if (parented) {
-					targetAst.newVariableDeclarationExpression(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return VariableDeclarationFragment that embeds x
-				VariableDeclarationFragment s1 = ast.newVariableDeclarationFragment();
-				ClassInstanceCreation s0 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s0.setAnonymousClassDeclaration(a1);
-				s1.setInitializer(s0);
-				ForStatement s2 = ast.newForStatement();
-				s2.initializers().add(x);
-				Initializer s3 = ast.newInitializer();
-				a1.bodyDeclarations().add(s3);
-				s3.getBody().statements().add(s2);
-				return s1;
-			}
-			public void unwrap() {
-				ForStatement s2 = (ForStatement) x.getParent();
-				s2.initializers().remove(x);
-			}
-		});
-	}	
-	
-	/** @deprecated using deprecated code */
-	public void testFieldDeclaration() {
-		VariableDeclarationFragment x1 = ast.newVariableDeclarationFragment();
-		long previousCount = ast.modificationCount();
-		final FieldDeclaration x = ast.newFieldDeclaration(x1);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getJavadoc() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		} else {
-			assertTrue(x.modifiers().size() == 0);
-		}
-		assertTrue(x.getType() != null);
-		assertTrue(x.getType().getParent() == x);
-		assertTrue(x.fragments().size() == 1);
-		assertTrue(x.fragments().get(0) == x1);
-		assertTrue(x1.getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.FIELD_DECLARATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			FieldDeclaration.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		if (ast.apiLevel() == AST.JLS2) {
-			int legal = Modifier.PUBLIC | Modifier.PROTECTED
-				| Modifier.PRIVATE | Modifier.STATIC | Modifier.FINAL
-				| Modifier.TRANSIENT | Modifier.VOLATILE;
-			previousCount = ast.modificationCount();
-			x.setModifiers(legal);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == legal);
-	
-			previousCount = ast.modificationCount();
-			x.setModifiers(Modifier.NONE);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getModifiers() == Modifier.NONE);
-		}
-
-		tJavadocComment(x);
-						
-		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);
-			}
-		});
-
-		genericPropertyListTest(x, x.fragments(),
-		  new Property("VariableSpecifiers", true, VariableDeclarationFragment.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				VariableDeclarationFragment result = targetAst.newVariableDeclarationFragment();
-				if (parented) {
-					targetAst.newVariableDeclarationStatement(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return VariableDeclarationFragment that embeds x
-				VariableDeclarationFragment s1 = ast.newVariableDeclarationFragment();
-				ClassInstanceCreation s2 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s2.setAnonymousClassDeclaration(a1);
-				s1.setInitializer(s2);
-				a1.bodyDeclarations().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				AnonymousClassDeclaration a1 = (AnonymousClassDeclaration) x.getParent();
-				a1.bodyDeclarations().remove(x);
-			}
-		});
-	
-	}
-	
-	public void testAssignment() {
-		long previousCount = ast.modificationCount();
-		final Assignment x = ast.newAssignment();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getOperator() == Assignment.Operator.ASSIGN);
-		assertTrue(x.getLeftHandSide().getParent() == x);
-		assertTrue(x.getRightHandSide().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.ASSIGNMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			Assignment.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		previousCount = ast.modificationCount();
-		x.setOperator(Assignment.Operator.PLUS_ASSIGN);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getOperator() == Assignment.Operator.PLUS_ASSIGN);
-		assertTrue(Assignment.Operator.PLUS_ASSIGN 
-			!= Assignment.Operator.ASSIGN);
-
-		// check the names of the primitive type codes
-		assertTrue(Assignment.Operator.ASSIGN.toString().equals("=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.PLUS_ASSIGN.toString().equals("+=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.MINUS_ASSIGN.toString().equals("-=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.TIMES_ASSIGN.toString().equals("*=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.DIVIDE_ASSIGN.toString().equals("/=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.REMAINDER_ASSIGN.toString().equals("%=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.LEFT_SHIFT_ASSIGN.toString().equals("<<=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.RIGHT_SHIFT_SIGNED_ASSIGN.toString().equals(">>=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN.toString().equals(">>>=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.BIT_AND_ASSIGN.toString().equals("&=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.BIT_OR_ASSIGN.toString().equals("|=")); //$NON-NLS-1$
-		assertTrue(Assignment.Operator.BIT_XOR_ASSIGN.toString().equals("^=")); //$NON-NLS-1$
-		
-		Assignment.Operator[] known = {
-			Assignment.Operator.ASSIGN,
-			Assignment.Operator.PLUS_ASSIGN,
-			Assignment.Operator.MINUS_ASSIGN,
-			Assignment.Operator.TIMES_ASSIGN,
-			Assignment.Operator.DIVIDE_ASSIGN,
-			Assignment.Operator.REMAINDER_ASSIGN,
-			Assignment.Operator.LEFT_SHIFT_ASSIGN,
-			Assignment.Operator.RIGHT_SHIFT_SIGNED_ASSIGN,
-			Assignment.Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN,
-			Assignment.Operator.BIT_AND_ASSIGN,
-			Assignment.Operator.BIT_OR_ASSIGN,
-			Assignment.Operator.BIT_XOR_ASSIGN,
-		};
-		
-		// check all operators are distinct
-		for (int i = 0; i < known.length; i++) {
-			for (int j = 0; j < known.length; j++) {
-				assertTrue(i == j || !known[i].equals(known[j]));
-			}
-		}
-
-		// check all operators work
-		for (int i = 0; i < known.length; i++) {
-			previousCount = ast.modificationCount();
-			x.setOperator(known[i]);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getOperator().equals(known[i]));
-		}
-		// ensure null does not work as a primitive type code
-		try {
-			x.setOperator(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check toOperator lookup of operators by name
-		for (int i = 0; i < known.length; i++) {
-			String name = known[i].toString();
-			assertTrue(Assignment.Operator.toOperator(name).equals(known[i]));
-		}
-		assertTrue(Assignment.Operator.toOperator("not-an-op") == null); //$NON-NLS-1$
-
-		genericPropertyTest(x, new Property("LeftHandSide", 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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getLeftHandSide();
-			}
-			public void set(ASTNode value) {
-				x.setLeftHandSide((Expression) value);
-			}
-		});
-
-		genericPropertyTest(x, new Property("RightHandSide", 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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getRightHandSide();
-			}
-			public void set(ASTNode value) {
-				x.setRightHandSide((Expression) value);
-			}
-		});
-	}	
-
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testBreakStatement() {
-		long previousCount = ast.modificationCount();
-		final BreakStatement x = ast.newBreakStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLabel() == null);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getNodeType() == ASTNode.BREAK_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			BreakStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Label", false, 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.getLabel();
-			}
-			public void set(ASTNode value) {
-				x.setLabel((SimpleName) value);
-			}
-		});
-	}	
-	
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testContinueStatement() {
-		long previousCount = ast.modificationCount();
-		final ContinueStatement x = ast.newContinueStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLabel() == null);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getNodeType() == ASTNode.CONTINUE_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			ContinueStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Label", false, 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.getLabel();
-			}
-			public void set(ASTNode value) {
-				x.setLabel((SimpleName) value);
-			}
-		});
-	}	
-	
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testIfStatement() {
-		long previousCount = ast.modificationCount();
-		final IfStatement x = ast.newIfStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getThenStatement().getParent() == x);
-		assertTrue(x.getThenStatement() instanceof Block);
-		assertTrue(((Block) x.getThenStatement()).statements().isEmpty());
-		assertTrue(x.getElseStatement() == null);
-		assertTrue(x.getNodeType() == ASTNode.IF_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			IfStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Expression", 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 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-		
-		genericPropertyTest(x, new Property("ThenStatement", true, Statement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Statement that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getThenStatement();
-			}
-			public void set(ASTNode value) {
-				x.setThenStatement((Statement) value);
-			}
-		});
-		
-		genericPropertyTest(x, new Property("ElseStatement", false, Statement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Statement that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getElseStatement();
-			}
-			public void set(ASTNode value) {
-				x.setElseStatement((Statement) value);
-			}
-		});
-	}	
-	
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testWhileStatement() {
-		long previousCount = ast.modificationCount();
-		final WhileStatement x = ast.newWhileStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getBody().getParent() == x);
-		assertTrue(x.getBody() instanceof Block);
-		assertTrue(((Block) x.getBody()).statements().isEmpty());
-		assertTrue(x.getNodeType() == ASTNode.WHILE_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			WhileStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Expression", 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 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-		
-		genericPropertyTest(x, new Property("Body", true, Statement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Statement that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getBody();
-			}
-			public void set(ASTNode value) {
-				x.setBody((Statement) value);
-			}
-		});
-	}	
-	
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testDoStatement() {
-		long previousCount = ast.modificationCount();
-		final DoStatement x = ast.newDoStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getBody().getParent() == x);
-		assertTrue(x.getBody() instanceof Block);
-		assertTrue(((Block) x.getBody()).statements().isEmpty());
-		assertTrue(x.getNodeType() == ASTNode.DO_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			DoStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Expression", 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 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-		
-		genericPropertyTest(x, new Property("Body", true, Statement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Statement that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getBody();
-			}
-			public void set(ASTNode value) {
-				x.setBody((Statement) value);
-			}
-		});
-	}	
-	
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testTryStatement() {
-		long previousCount = ast.modificationCount();
-		final TryStatement x = ast.newTryStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getBody().getParent() == x);
-		assertTrue((x.getBody()).statements().isEmpty());
-		assertTrue(x.getFinally() == null);
-		assertTrue(x.catchClauses().size() == 0);
-		assertTrue(x.getNodeType() == ASTNode.TRY_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			TryStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-	
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Body", true, Block.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Block that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getBody();
-			}
-			public void set(ASTNode value) {
-				x.setBody((Block) value);
-			}
-		});
-
-		genericPropertyListTest(x, x.catchClauses(),
-		  new Property("CatchClauses", true, CatchClause.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				CatchClause result = targetAst.newCatchClause();
-				if (parented) {
-					TryStatement s1 = targetAst.newTryStatement();
-					s1.catchClauses().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return CatchClause that embeds x
-				CatchClause s1 = ast.newCatchClause();
-				Block s2 = ast.newBlock();
-				s1.setBody(s2);
-				s2.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-		});
-
-		genericPropertyTest(x, new Property("Finally", false, Block.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Block that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getFinally();
-			}
-			public void set(ASTNode value) {
-				x.setFinally((Block) value);
-			}
-		});
-	}	
-
-	public void testCatchClause() {
-		long previousCount = ast.modificationCount();
-		final CatchClause x = ast.newCatchClause();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getBody().getParent() == x);
-		assertTrue(x.getBody().statements().isEmpty());
-		assertTrue(x.getException().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.CATCH_CLAUSE);
-		assertTrue(x.structuralPropertiesForType() == 
-			CatchClause.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Exception", true, SingleVariableDeclaration.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				SingleVariableDeclaration result = targetAst.newSingleVariableDeclaration();
-				if (parented) {
-					targetAst.newCatchClause().setException(result);
-					
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return SingleVariableDeclaration that embeds x
-				SingleVariableDeclaration s1 = ast.newSingleVariableDeclaration();
-				ClassInstanceCreation s2 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s2.setAnonymousClassDeclaration(a1);
-				s1.setInitializer(s2);
-				FunctionDeclaration s3 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s3);
-				Block s4 = ast.newBlock();
-				s3.setBody(s4);
-				TryStatement s5 = ast.newTryStatement();
-				s4.statements().add(s5);
-				s5.catchClauses().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				TryStatement s5 = (TryStatement) x.getParent();
-				s5.catchClauses().remove(x);
-			}
-			public ASTNode get() {
-				return x.getException();
-			}
-			public void set(ASTNode value) {
-				x.setException((SingleVariableDeclaration) value);
-			}
-		});
-
-		genericPropertyTest(x, new Property("Body", true, Block.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Block that embeds x
-				Block s1 = ast.newBlock();
-				TryStatement s2 = ast.newTryStatement();
-				s1.statements().add(s2);
-				s2.catchClauses().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				TryStatement s2 = (TryStatement) x.getParent();
-				s2.catchClauses().remove(x);
-			}
-			public ASTNode get() {
-				return x.getBody();
-			}
-			public void set(ASTNode value) {
-				x.setBody((Block) value);
-			}
-		});
-	}
-
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testEmptyStatement() {
-		long previousCount = ast.modificationCount();
-		final EmptyStatement x = ast.newEmptyStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getNodeType() == ASTNode.EMPTY_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			EmptyStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		tLeadingComment(x);
-	}
-	
-	/**
-	 * Exercise the leadingComment property.
-	 * 
-	 * @param x the statement to test
-	 * @deprecated (Uses get/setLeadingComment() which is deprecated)
-	 */
-	void tLeadingComment(Statement x) {
-		
-		// check that null is allowed
-		long previousCount = ast.modificationCount();
-		x.setLeadingComment(null);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getLeadingComment() == null);
-		
-		// check that regular comment is allowed
-		previousCount = ast.modificationCount();
-		x.setLeadingComment("/* X */"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getLeadingComment() == "/* X */"); //$NON-NLS-1$
-		
-		// check that regular comment with line breaks is allowed
-		previousCount = ast.modificationCount();
-		x.setLeadingComment("/* X\n *Y\n */"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getLeadingComment() == "/* X\n *Y\n */"); //$NON-NLS-1$
-		
-		// check that end-of-line comment is allowed
-		previousCount = ast.modificationCount();
-		x.setLeadingComment("// X\n"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getLeadingComment() == "// X\n"); //$NON-NLS-1$
-
-		// check that end-of-line comment without a line break at the end is allowed
-		previousCount = ast.modificationCount();
-		x.setLeadingComment("// X"); //$NON-NLS-1$
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getLeadingComment() == "// X"); //$NON-NLS-1$
-		
-		// check that end-of-line comment with embedded end of line 
-		// not allowed
-		try {
-			x.setLeadingComment("// X\n extra"); //$NON-NLS-1$
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-		
-	}
-		
-	/**
-	 * Exercise the javadoc property.
-	 * 
-	 * @param x the body declaration to test
-	 */
-	void tJavadocComment(final BodyDeclaration x) {
-		genericPropertyTest(x, new Property("Javadoc", false, JSdoc.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				JSdoc result = targetAst.newJSdoc();
-				if (parented) {
-					targetAst.newInitializer().setJavadoc(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getJavadoc();
-			}
-			public void set(ASTNode value) {
-				x.setJavadoc((JSdoc) value);
-			}
-		});
-	}
-
-	/**
-	 * Returns a list of all the different Modifier nodes.
-	 */
-	Modifier[] allModifiers() {
-		Modifier[] allMods = {
-				ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.PROTECTED_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.STATIC_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.ABSTRACT_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.NATIVE_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.TRANSIENT_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.VOLATILE_KEYWORD),
-				ast.newModifier(Modifier.ModifierKeyword.STRICTFP_KEYWORD)
-		};
-		return allMods;
-	}
-	
-
-	/**
-	 * Exercise the alternateRoot property of a Comment.
-	 * 
-	 * @param x the comment to test
-     * @since 3.0
-	 */
-	void tAlternateRoot(final Comment x) {
-		JavaScriptUnit cu = ast.newJavaScriptUnit();
-		long previousCount = ast.modificationCount();
-		x.setAlternateRoot(cu);
-		assertTrue(ast.modificationCount() > previousCount);
-		assertTrue(x.getAlternateRoot() == cu);
-		previousCount = ast.modificationCount();
-		x.setAlternateRoot(null);
-		assertTrue(x.getAlternateRoot() == null);
-		assertTrue(ast.modificationCount() > previousCount);
-	}
-
-	/**
-	 * Exercise the client properties of a node.
-	 * 
-	 * @param x the node to test
-	 */
-	void tClientProperties(ASTNode x) {
-		
-		long previousCount = ast.modificationCount();
-		
-		// a node initially has no properties
-		assertTrue(x.properties().size() == 0);
-		assertTrue(x.getProperty("1") == null); //$NON-NLS-1$
-
-		// clearing an unset property does not add it to list of known ones
-		x.setProperty("1", null); //$NON-NLS-1$
-		assertTrue(x.getProperty("1") == null); //$NON-NLS-1$
-		assertTrue(x.properties().size() == 0);
-
-		// setting an unset property does add it to the list of known ones
-		x.setProperty("1", "a1"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("1") == "a1"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().size() == 1);
-		Map.Entry[] m = (Map.Entry[]) x.properties().entrySet().toArray(new Map.Entry[1]);
-		assertTrue(m[0].getKey() == "1"); //$NON-NLS-1$
-		assertTrue(m[0].getValue() == "a1"); //$NON-NLS-1$
-
-		// setting an already set property just changes its value
-		x.setProperty("1", "a2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("1") == "a2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().size() == 1);
-		m = (Map.Entry[]) x.properties().entrySet().toArray(new Map.Entry[1]);
-		assertTrue(m[0].getKey() == "1"); //$NON-NLS-1$
-		assertTrue(m[0].getValue() == "a2"); //$NON-NLS-1$
-
-		// clearing a set property removes it from list of known ones
-		x.setProperty("1", null); //$NON-NLS-1$
-		assertTrue(x.getProperty("1") == null); //$NON-NLS-1$
-		assertTrue(x.properties().size() == 0);
-		
-		
-		// ========= test 2 and 3 properties
-		x.setProperty("1", "a1"); //$NON-NLS-1$ //$NON-NLS-2$
-		x.setProperty("2", "b1"); //$NON-NLS-1$ //$NON-NLS-2$
-		x.setProperty("3", "c1"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("1") == "a1"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("2") == "b1"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("3") == "c1"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().size() == 3);
-		assertTrue(x.properties().get("1") == "a1"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().get("2") == "b1"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().get("3") == "c1"); //$NON-NLS-1$ //$NON-NLS-2$
-		x.setProperty("1", "a2"); //$NON-NLS-1$ //$NON-NLS-2$
-		x.setProperty("2", "b2"); //$NON-NLS-1$ //$NON-NLS-2$
-		x.setProperty("3", "c2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("1") == "a2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("2") == "b2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("3") == "c2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().size() == 3);
-		assertTrue(x.properties().get("1") == "a2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().get("2") == "b2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().get("3") == "c2"); //$NON-NLS-1$ //$NON-NLS-2$
-		x.setProperty("2", null); //$NON-NLS-1$
-		assertTrue(x.getProperty("1") == "a2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.getProperty("2") == null); //$NON-NLS-1$
-		assertTrue(x.getProperty("3") == "c2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().size() == 2);
-		assertTrue(x.properties().get("1") == "a2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().get("2") == null); //$NON-NLS-1$
-		assertTrue(x.properties().get("3") == "c2"); //$NON-NLS-1$ //$NON-NLS-2$
-		x.setProperty("1", null); //$NON-NLS-1$
-		assertTrue(x.getProperty("1") == null); //$NON-NLS-1$
-		assertTrue(x.getProperty("2") == null); //$NON-NLS-1$
-		assertTrue(x.getProperty("3") == "c2"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(x.properties().size() == 1);
-		assertTrue(x.properties().get("1") == null); //$NON-NLS-1$
-		assertTrue(x.properties().get("2") == null); //$NON-NLS-1$
-		assertTrue(x.properties().get("3") == "c2"); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		// none of this is considered to have affected the AST
-		assertTrue(ast.modificationCount() == previousCount);
-	}
-	
-	public void testReturnStatement() {
-		long previousCount = ast.modificationCount();
-		final ReturnStatement x = ast.newReturnStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression() == null);
-		assertTrue(x.getNodeType() == ASTNode.RETURN_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			ReturnStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Expression", 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 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-	}
-
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testThrowStatement() {
-		long previousCount = ast.modificationCount();
-		final ThrowStatement x = ast.newThrowStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getNodeType() == ASTNode.THROW_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			ThrowStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tLeadingComment(x);
-
-		genericPropertyTest(x, new Property("Expression", 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 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-	}
-
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testSwitchStatement() {
-		long previousCount = ast.modificationCount();
-		final SwitchStatement x = ast.newSwitchStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.statements().isEmpty());
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getNodeType() == ASTNode.SWITCH_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			SwitchStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tLeadingComment(x);
-		
-		genericPropertyTest(x, new Property("Expression", 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 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-
-		genericPropertyListTest(x, x.statements(),
-		  new Property("Statements", true, Statement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Statement that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-		});
-	}
-
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testSwitchCase() {
-		long previousCount = ast.modificationCount();
-		final SwitchCase x = ast.newSwitchCase();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(!x.isDefault());	
-		assertTrue(x.getNodeType() == ASTNode.SWITCH_CASE);
-		assertTrue(x.structuralPropertiesForType() == 
-			SwitchCase.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Expression", 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 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				SwitchStatement s4 = ast.newSwitchStatement();
-				s3.statements().add(s4);
-				s4.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				SwitchStatement s4 = (SwitchStatement) x.getParent();
-				s4.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-	}
-	
-	
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testLabeledStatement() {
-		long previousCount = ast.modificationCount();
-		final LabeledStatement x = ast.newLabeledStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLabel().getParent() == x);
-		assertTrue(x.getBody().getParent() == x);
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getNodeType() == ASTNode.LABELED_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			LabeledStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tLeadingComment(x);
-		
-		genericPropertyTest(x, new Property("Label", 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.getLabel();
-			}
-			public void set(ASTNode value) {
-				x.setLabel((SimpleName) value);
-			}
-		});
-		
-		genericPropertyTest(x, new Property("Body", true, Statement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Statement that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getBody();
-			}
-			public void set(ASTNode value) {
-				x.setBody((Statement) value);
-			}
-		});
-	}
-	
-	/**
-	 * Walks the given AST and assigns properly-nested (but otherwise totally bogus)
-	 * source ranges to all nodes.
-	 */
-	void assignSourceRanges(ASTNode target) {
-		final StringBuffer buffer = new StringBuffer();
-		final List stack = new ArrayList();
-		// pretend that every construct begins with "(" and ends with ")"
-		class PositionAssigner extends ASTVisitor {
-			PositionAssigner() {
-				// visit Javadoc.tags();
-				super(true);
-			}
-			public void preVisit(ASTNode node) {
-				int start = buffer.length();
-				buffer.append("(");
-				// push start position - popped by postVisit for same node
-				stack.add(new Integer(start));
-			}
-			public void postVisit(ASTNode node) {
-				// pop start position placed there by preVisit
-				int start = ((Integer) stack.remove(stack.size() - 1)).intValue();
-				buffer.append(")");
-				int length = buffer.length() - start;
-				node.setSourceRange(start, length);
-			}
-		}
-		target.accept(new PositionAssigner());
-	}
-	
-	public void testClone() {
-		ASTNode x = SampleASTs.oneOfEach(ast);
-		assignSourceRanges(x);
-		assertTrue(x.subtreeMatch(new CheckPositionsMatcher(), x));
-		
-		// same AST clone
-		ASTNode y = ASTNode.copySubtree(ast, x);
-		assertTrue(x.subtreeMatch(new CheckPositionsMatcher(), y));
-		assertTrue(y.subtreeMatch(new CheckPositionsMatcher(), x));
-		
-		// different AST clone
-		AST newAST = AST.newAST(ast.apiLevel());
-		ASTNode z = ASTNode.copySubtree(newAST, x);
-		assertTrue(x.subtreeMatch(new CheckPositionsMatcher(), z));
-		assertTrue(z.subtreeMatch(new CheckPositionsMatcher(), x));
-	}
-
-	public void testNullResolve() {
-		ASTNode x = SampleASTs.oneOfEach(ast);
-		
-		ASTVisitor v = new ASTVisitor(true) {
-			// NAMES
-
-			public boolean visit(SimpleName node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(QualifiedName node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-
-			// TYPES
-	
-			public boolean visit(SimpleType node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(ArrayType node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(PrimitiveType node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(QualifiedType node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			
-			// EXPRESSIONS
-	
-			public boolean visit(Assignment node) {
-				assertTrue(node.resolveTypeBinding() == null);
-				return true;
-			}
-	
-			public boolean visit(ClassInstanceCreation node) {
-				assertTrue(node.resolveConstructorBinding() == null);
-				return true;
-			}
-	
-			public boolean visit(ConstructorInvocation node) {
-				assertTrue(node.resolveConstructorBinding() == null);
-				return true;
-			}
-	
-			public boolean visit(SuperConstructorInvocation node) {
-				assertTrue(node.resolveConstructorBinding() == null);
-				return true;
-			}
-	
-			// MAJOR DECLARATIONS
-	
-			public boolean visit(PackageDeclaration node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(ImportDeclaration node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(FunctionDeclaration node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(TypeDeclaration node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(TypeDeclarationStatement node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(SingleVariableDeclaration node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-			public boolean visit(VariableDeclarationFragment node) {
-				assertTrue(node.resolveBinding() == null);
-				return true;
-			}
-		};
-		
-		x.accept(v);
-	}
-
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testForStatement() {
-		long previousCount = ast.modificationCount();
-		final ForStatement x = ast.newForStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.initializers().isEmpty());
-		assertTrue(x.getExpression() == null);
-		assertTrue(x.updaters().isEmpty());
-		assertTrue(x.getBody().getParent() == x);
-		assertTrue(x.getBody() instanceof Block);
-		assertTrue(((Block) x.getBody()).statements().isEmpty());
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getNodeType() == ASTNode.FOR_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			ForStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tLeadingComment(x);
-		
-		genericPropertyListTest(x, x.initializers(),
-		  new Property("Initializers", 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() {
-				// return Expression that embeds x
-				ClassInstanceCreation s1 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-		});
-
-		genericPropertyTest(x, new Property("Expression", 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 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-
-		genericPropertyListTest(x, x.updaters(),
-		  new Property("Updaters", 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() {
-				// return Expression that embeds x
-				ClassInstanceCreation s1 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-		});
-
-		genericPropertyTest(x, new Property("Body", true, Statement.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				Block result = targetAst.newBlock();
-				if (parented) {
-					Block b2 = targetAst.newBlock();
-					b2.statements().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return a Statement that embeds x
-				Block s1 = ast.newBlock();
-				s1.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s2 = (Block) x.getParent();
-				s2.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getBody();
-			}
-			public void set(ASTNode value) {
-				x.setBody((Statement) value);
-			}
-		});
-	}
-
-	/**
-	 * @deprecated (Uses getLeadingComment() which is deprecated)
-	 */
-	public void testEnhancedForStatement() {
-		if (ast.apiLevel() == AST.JLS2) {
-			// node type introduced in 3.0 API
-			try {
-				ast.newEnhancedForStatement();
-				assertTrue(false);
-			} catch (UnsupportedOperationException e) {
-				// pass
-			}
-			return;
-		}
-		long previousCount = ast.modificationCount();
-		final EnhancedForStatement x = ast.newEnhancedForStatement();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getParameter() != null);
-		assertTrue(x.getParameter().getParent() == x);
-		assertTrue(x.getExpression() != null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getBody().getParent() == x);
-		assertTrue(x.getBody() instanceof Block);
-		assertTrue(((Block) x.getBody()).statements().isEmpty());
-		assertTrue(x.getLeadingComment() == null);
-		assertTrue(x.getNodeType() == ASTNode.ENHANCED_FOR_STATEMENT);
-		assertTrue(x.structuralPropertiesForType() == 
-			EnhancedForStatement.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		tLeadingComment(x);
-		
-		genericPropertyTest(x, new Property("Parameter", true, SingleVariableDeclaration.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				SingleVariableDeclaration result = targetAst.newSingleVariableDeclaration();
-				if (parented) {
-					CatchClause parent = targetAst.newCatchClause();
-					parent.setException(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getParameter();
-			}
-			public void set(ASTNode value) {
-				x.setParameter((SingleVariableDeclaration) value);
-			}
-		});
-		
-		genericPropertyTest(x, new Property("Expression", true, Expression.class) { //$NON-NLS-1$
-			public ASTNode sample(AST target, boolean parented) {
-				Expression result = target.newSimpleName("foo"); //$NON-NLS-1$
-				if (parented) {
-					target.newExpressionStatement(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return Expression that embeds x
-				ClassInstanceCreation s1 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
- 			}
- 		});
-	}
-
-	public void testConstructorInvocation() {
-		long previousCount = ast.modificationCount();
-		final ConstructorInvocation x = ast.newConstructorInvocation();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() >= AST.JLS3) {
-			assertTrue(x.typeArguments().isEmpty());
-		}
-		assertTrue(x.arguments().isEmpty());
-		assertTrue(x.getNodeType() == ASTNode.CONSTRUCTOR_INVOCATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			ConstructorInvocation.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyListTest(x, x.typeArguments(),
-			  new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
-				public ASTNode sample(AST targetAst, boolean parented) {
-					Type result = targetAst.newSimpleType(targetAst.newSimpleName("X")); //$NON-NLS-1$
-					if (parented) {
-						targetAst.newArrayType(result);
-					}
-					return result;
-				}
-			});
-		}
-		
-		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() {
-				// return Expression that embeds x
-				ClassInstanceCreation s1 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-		});
-	}
-
-	public void testSuperConstructorInvocation() {
-		long previousCount = ast.modificationCount();
-		final SuperConstructorInvocation x = ast.newSuperConstructorInvocation();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression() == null);
-		if (ast.apiLevel() >= AST.JLS3) {
-			assertTrue(x.typeArguments().isEmpty());
-		}
-		assertTrue(x.arguments().isEmpty());
-		assertTrue(x.getNodeType() == ASTNode.SUPER_CONSTRUCTOR_INVOCATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			SuperConstructorInvocation.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Expression", false, 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() {
-				// return Expression that embeds x
-				ClassInstanceCreation s1 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyListTest(x, x.typeArguments(),
-			  new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
-				public ASTNode sample(AST targetAst, boolean parented) {
-					Type result = targetAst.newSimpleType(targetAst.newSimpleName("X")); //$NON-NLS-1$
-					if (parented) {
-						targetAst.newArrayType(result);
-					}
-					return result;
-				}
-			});
-		}
-		
-		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() {
-				// return Expression that embeds x
-				ClassInstanceCreation s1 = ast.newClassInstanceCreation();
-				AnonymousClassDeclaration a1 = ast.newAnonymousClassDeclaration();
-				s1.setAnonymousClassDeclaration(a1);
-				FunctionDeclaration s2 = ast.newFunctionDeclaration();
-				a1.bodyDeclarations().add(s2);
-				Block s3 = ast.newBlock();
-				s2.setBody(s3);
-				s3.statements().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				Block s3 = (Block) x.getParent();
-				s3.statements().remove(x);
-			}
-		});
-	}
-
-	public void testThisExpression() {
-		long previousCount = ast.modificationCount();
-		final ThisExpression x = ast.newThisExpression();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getQualifier() == null);
-		assertTrue(x.getNodeType() == ASTNode.THIS_EXPRESSION);
-		assertTrue(x.structuralPropertiesForType() == 
-			ThisExpression.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Qualifier", false, Name.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				QualifiedName result = targetAst.newQualifiedName(
-					targetAst.newSimpleName("a"), //$NON-NLS-1$
-					targetAst.newSimpleName("b")); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newExpressionStatement(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getQualifier();
-			}
-			public void set(ASTNode value) {
-				x.setQualifier((Name) value);
-			}
-		});
-	}
-
-	public void testFieldAccess() {
-		long previousCount = ast.modificationCount();
-		final FieldAccess x = ast.newFieldAccess();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.FIELD_ACCESS);
-		assertTrue(x.structuralPropertiesForType() == 
-			FieldAccess.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Expression", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-
-		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);
-			}
-		});
-	}
-
-
-	public void testSuperFieldAccess() {
-		long previousCount = ast.modificationCount();
-		final SuperFieldAccess x = ast.newSuperFieldAccess();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getQualifier() == null);
-		assertTrue(x.getNodeType() == ASTNode.SUPER_FIELD_ACCESS);
-		assertTrue(x.structuralPropertiesForType() == 
-			SuperFieldAccess.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Qualifier", false, Name.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				QualifiedName result = targetAst.newQualifiedName(
-					targetAst.newSimpleName("a"), //$NON-NLS-1$
-					targetAst.newSimpleName("b")); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newExpressionStatement(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getQualifier();
-			}
-			public void set(ASTNode value) {
-				x.setQualifier((Name) value);
-			}
-		});
-
-		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);
-			}
-		});
-	}
-
-	public void testSuperMethodInvocation() {
-		long previousCount = ast.modificationCount();
-		final SuperMethodInvocation x = ast.newSuperMethodInvocation();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		if (ast.apiLevel() >= AST.JLS3) {
-			assertTrue(x.typeArguments().isEmpty());
-		}
-		assertTrue(x.getName().getParent() == x);
-		assertTrue(x.getQualifier() == null);
-		assertTrue(x.arguments().isEmpty());
-		assertTrue(x.getNodeType() == ASTNode.SUPER_METHOD_INVOCATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			SuperMethodInvocation.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Qualifier", false, Name.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				QualifiedName result = targetAst.newQualifiedName(
-					targetAst.newSimpleName("a"), //$NON-NLS-1$
-					targetAst.newSimpleName("b")); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newExpressionStatement(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getQualifier();
-			}
-			public void set(ASTNode value) {
-				x.setQualifier((Name) value);
-			}
-		});
-
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyListTest(x, x.typeArguments(),
-			  new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
-				public ASTNode sample(AST targetAst, boolean parented) {
-					Type result = targetAst.newSimpleType(targetAst.newSimpleName("X")); //$NON-NLS-1$
-					if (parented) {
-						targetAst.newArrayType(result);
-					}
-					return result;
-				}
-			});
-		}
-		
-		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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-		});
-	}
-
-	public void testTypeLiteral() {
-		long previousCount = ast.modificationCount();
-		final TypeLiteral x = ast.newTypeLiteral();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getType().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.TYPE_LITERAL);
-		assertTrue(x.structuralPropertiesForType() == 
-			TypeLiteral.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Type", true, Type.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				SimpleType result = targetAst.newSimpleType(
-					targetAst.newSimpleName("a")); //$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);
-			}
-		});
-	}
-
-	public void testPrefixExpression() {
-		long previousCount = ast.modificationCount();
-		final PrefixExpression x = ast.newPrefixExpression();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getOperand().getParent() == x);
-		assertTrue(x.getOperator() != null);
-		assertTrue(x.getNodeType() == ASTNode.PREFIX_EXPRESSION);
-		assertTrue(x.structuralPropertiesForType() == 
-			PrefixExpression.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		// Operator property - mandatory typesafe enumeration
-		// check the names of the operators
-		assertTrue(PrefixExpression.Operator.INCREMENT.toString().equals("++")); //$NON-NLS-1$
-		assertTrue(PrefixExpression.Operator.DECREMENT.toString().equals("--")); //$NON-NLS-1$
-		assertTrue(PrefixExpression.Operator.PLUS.toString().equals("+")); //$NON-NLS-1$
-		assertTrue(PrefixExpression.Operator.MINUS.toString().equals("-")); //$NON-NLS-1$
-		assertTrue(PrefixExpression.Operator.COMPLEMENT.toString().equals("~")); //$NON-NLS-1$
-		assertTrue(PrefixExpression.Operator.NOT.toString().equals("!")); //$NON-NLS-1$
-		
-		PrefixExpression.Operator[] known = {
-			PrefixExpression.Operator.INCREMENT,
-			PrefixExpression.Operator.DECREMENT,
-			PrefixExpression.Operator.PLUS,
-			PrefixExpression.Operator.MINUS,
-			PrefixExpression.Operator.COMPLEMENT,
-			PrefixExpression.Operator.NOT,
-		};
-		
-		// check all operators are distinct
-		for (int i = 0; i < known.length; i++) {
-			for (int j = 0; j < known.length; j++) {
-				assertTrue(i == j || !known[i].equals(known[j]));
-			}
-		}
-
-		// check all operators work
-		for (int i = 0; i < known.length; i++) {
-			previousCount = ast.modificationCount();
-			x.setOperator(known[i]);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getOperator().equals(known[i]));
-		}
-		// ensure null does not work as an operator
-		try {
-			x.setOperator(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check toOperator lookup of operator by name
-		for (int i = 0; i < known.length; i++) {
-			String name = known[i].toString();
-			assertTrue(PrefixExpression.Operator.toOperator(name).equals(known[i]));
-		}
-		assertTrue(PrefixExpression.Operator.toOperator("huh") == null); //$NON-NLS-1$
-
-		genericPropertyTest(x, new Property("Operand", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getOperand();
-			}
-			public void set(ASTNode value) {
-				x.setOperand((Expression) value);
-			}
-		});
-	}
-
-	public void testPostfixExpression() {
-		long previousCount = ast.modificationCount();
-		final PostfixExpression x = ast.newPostfixExpression();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getOperand().getParent() == x);
-		assertTrue(x.getOperator() != null);
-		assertTrue(x.getNodeType() == ASTNode.POSTFIX_EXPRESSION);
-		assertTrue(x.structuralPropertiesForType() == 
-			PostfixExpression.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		// Operator property - mandatory typesafe enumeration
-		// check the names of the operators
-		assertTrue(PostfixExpression.Operator.INCREMENT.toString().equals("++")); //$NON-NLS-1$
-		assertTrue(PostfixExpression.Operator.DECREMENT.toString().equals("--")); //$NON-NLS-1$
-		
-		PostfixExpression.Operator[] known = {
-			PostfixExpression.Operator.INCREMENT,
-			PostfixExpression.Operator.DECREMENT,
-		};
-		
-		// check all operators are distinct
-		for (int i = 0; i < known.length; i++) {
-			for (int j = 0; j < known.length; j++) {
-				assertTrue(i == j || !known[i].equals(known[j]));
-			}
-		}
-
-		// check all operators work
-		for (int i = 0; i < known.length; i++) {
-			previousCount = ast.modificationCount();
-			x.setOperator(known[i]);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getOperator().equals(known[i]));
-		}
-		// ensure null does not work as an operator
-		try {
-			x.setOperator(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check toOperator lookup of operator by name
-		for (int i = 0; i < known.length; i++) {
-			String name = known[i].toString();
-			assertTrue(PostfixExpression.Operator.toOperator(name).equals(known[i]));
-		}
-		assertTrue(PostfixExpression.Operator.toOperator("huh") == null); //$NON-NLS-1$
-
-		genericPropertyTest(x, new Property("Operand", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getOperand();
-			}
-			public void set(ASTNode value) {
-				x.setOperand((Expression) value);
-			}
-		});
-	}
-
-	public void testInfixExpression() {
-		long previousCount = ast.modificationCount();
-		final InfixExpression x = ast.newInfixExpression();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLeftOperand().getParent() == x);
-		assertTrue(x.getOperator() != null);
-		assertTrue(x.getRightOperand().getParent() == x);
-		assertTrue(x.extendedOperands().isEmpty());
-		assertTrue(x.getNodeType() == ASTNode.INFIX_EXPRESSION);
-		assertTrue(x.structuralPropertiesForType() == 
-			InfixExpression.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		// Operator property - mandatory typesafe enumeration
-		// check the names of the operators
-		assertTrue(InfixExpression.Operator.TIMES.toString().equals("*")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.DIVIDE.toString().equals("/")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.REMAINDER.toString().equals("%")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.PLUS.toString().equals("+")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.MINUS.toString().equals("-")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.LEFT_SHIFT.toString().equals("<<")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.RIGHT_SHIFT_SIGNED.toString().equals(">>")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.RIGHT_SHIFT_UNSIGNED.toString().equals(">>>")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.LESS.toString().equals("<")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.GREATER.toString().equals(">")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.LESS_EQUALS.toString().equals("<=")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.GREATER_EQUALS.toString().equals(">=")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.EQUALS.toString().equals("==")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.NOT_EQUALS.toString().equals("!=")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.XOR.toString().equals("^")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.OR.toString().equals("|")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.AND.toString().equals("&")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.CONDITIONAL_OR.toString().equals("||")); //$NON-NLS-1$
-		assertTrue(InfixExpression.Operator.CONDITIONAL_AND.toString().equals("&&")); //$NON-NLS-1$
-		
-		InfixExpression.Operator[] known = {
-				InfixExpression.Operator.TIMES,
-				InfixExpression.Operator.DIVIDE,
-				InfixExpression.Operator.REMAINDER,
-				InfixExpression.Operator.PLUS,
-				InfixExpression.Operator.MINUS,
-				InfixExpression.Operator.LEFT_SHIFT,
-				InfixExpression.Operator.RIGHT_SHIFT_SIGNED,
-				InfixExpression.Operator.RIGHT_SHIFT_UNSIGNED,
-				InfixExpression.Operator.LESS,
-				InfixExpression.Operator.GREATER,
-				InfixExpression.Operator.LESS_EQUALS,
-				InfixExpression.Operator.GREATER_EQUALS,
-				InfixExpression.Operator.EQUALS,
-				InfixExpression.Operator.NOT_EQUALS,
-				InfixExpression.Operator.XOR,
-				InfixExpression.Operator.OR,
-				InfixExpression.Operator.AND,
-				InfixExpression.Operator.CONDITIONAL_OR,
-				InfixExpression.Operator.CONDITIONAL_AND,
-		};
-		
-		// check all operators are distinct
-		for (int i = 0; i < known.length; i++) {
-			for (int j = 0; j < known.length; j++) {
-				assertTrue(i == j || !known[i].equals(known[j]));
-			}
-		}
-
-		// check all operators work
-		for (int i = 0; i < known.length; i++) {
-			previousCount = ast.modificationCount();
-			x.setOperator(known[i]);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getOperator().equals(known[i]));
-		}
-		// ensure null does not work as an operator
-		try {
-			x.setOperator(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check toOperator lookup of operator by name
-		for (int i = 0; i < known.length; i++) {
-			String name = known[i].toString();
-			assertTrue(InfixExpression.Operator.toOperator(name).equals(known[i]));
-		}
-		assertTrue(InfixExpression.Operator.toOperator("huh") == null); //$NON-NLS-1$
-
-		genericPropertyTest(x, new Property("LeftOperand", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getLeftOperand();
-			}
-			public void set(ASTNode value) {
-				x.setLeftOperand((Expression) value);
-			}
-		});
-
-		genericPropertyTest(x, new Property("RightOperand", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getRightOperand();
-			}
-			public void set(ASTNode value) {
-				x.setRightOperand((Expression) value);
-			}
-		});
-
-		genericPropertyListTest(x, x.extendedOperands(),
-		  new Property("ExtendedOperands", 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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-		});
-	}
-
-	public void testInstanceofExpression() {
-		long previousCount = ast.modificationCount();
-		final InstanceofExpression x = ast.newInstanceofExpression();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getLeftOperand().getParent() == x);
-		assertTrue(x.getRightOperand().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.INSTANCEOF_EXPRESSION);
-		assertTrue(x.structuralPropertiesForType() == 
-			InstanceofExpression.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-						
-		genericPropertyTest(x, new Property("LeftOperand", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getLeftOperand();
-			}
-			public void set(ASTNode value) {
-				x.setLeftOperand((Expression) value);
-			}
-		});
-
-		genericPropertyTest(x, new Property("RightOperand", true, Type.class) { //$NON-NLS-1$
-			public ASTNode sample(AST localAst, boolean parented) {
-				Type result = localAst.newSimpleType(localAst.newSimpleName("Object")); //$NON-NLS-1$
-				if (parented) {
-					localAst.newArrayType(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getRightOperand();
-			}
-			public void set(ASTNode value) {
-				x.setRightOperand((Type) value);
-			}
-		});
-	}
-
-	public void testConditionalExpression() {
-		long previousCount = ast.modificationCount();
-		final ConditionalExpression x = ast.newConditionalExpression();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getThenExpression().getParent() == x);
-		assertTrue(x.getElseExpression().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.CONDITIONAL_EXPRESSION);
-		assertTrue(x.structuralPropertiesForType() == 
-			ConditionalExpression.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Expression", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-		
-		genericPropertyTest(x, new Property("ThenExpression", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getThenExpression();
-			}
-			public void set(ASTNode value) {
-				x.setThenExpression((Expression) value);
-			}
-		});
-		
-		genericPropertyTest(x, new Property("ElseExpression", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getElseExpression();
-			}
-			public void set(ASTNode value) {
-				x.setElseExpression((Expression) value);
-			}
-		});
-	}
-
-	public void testArrayAccess() {
-		long previousCount = ast.modificationCount();
-		final ArrayAccess x = ast.newArrayAccess();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getArray().getParent() == x);
-		assertTrue(x.getIndex().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.ARRAY_ACCESS);
-		assertTrue(x.structuralPropertiesForType() == 
-			ArrayAccess.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Array", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getArray();
-			}
-			public void set(ASTNode value) {
-				x.setArray((Expression) value);
-			}
-		});
-
-		genericPropertyTest(x, new Property("Index", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getIndex();
-			}
-			public void set(ASTNode value) {
-				x.setIndex((Expression) value);
-			}
-		});
-	}
-
-	public void testArrayInitializer() {
-		long previousCount = ast.modificationCount();
-		final ArrayInitializer x = ast.newArrayInitializer();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.expressions().isEmpty());
-		assertTrue(x.getNodeType() == ASTNode.ARRAY_INITIALIZER);
-		assertTrue(x.structuralPropertiesForType() == 
-			ArrayInitializer.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyListTest(x, x.expressions(),
-		  new Property("Expressions", 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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-		});
-	}
-
-	/** @deprecated using deprecated code */
-	public void testClassInstanceCreation() {
-		long previousCount = ast.modificationCount();
-		final ClassInstanceCreation x = ast.newClassInstanceCreation();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression() == null);
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(x.getName().getParent() == x);
-		} else {
-			assertTrue(x.typeArguments().isEmpty());
-			assertTrue(x.getType().getParent() == x);
-		}
-		assertTrue(x.arguments().isEmpty());
-		assertTrue(x.getAnonymousClassDeclaration() == null);
-		assertTrue(x.getNodeType() == ASTNode.CLASS_INSTANCE_CREATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			ClassInstanceCreation.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Expression", false, 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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-
-		if (ast.apiLevel() >= AST.JLS3) {
-			genericPropertyListTest(x, x.typeArguments(),
-			  new Property("TypeArguments", true, Type.class) { //$NON-NLS-1$
-				public ASTNode sample(AST targetAst, boolean parented) {
-					Type result = targetAst.newSimpleType(targetAst.newSimpleName("X")); //$NON-NLS-1$
-					if (parented) {
-						targetAst.newArrayType(result);
-					}
-					return result;
-				}
-			});
-		}
-		
-		if (ast.apiLevel() == AST.JLS2) {
-			genericPropertyTest(x, new Property("Name", 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.getName();
-				}
-				public void set(ASTNode value) {
-					x.setName((Name) value);
-				}
-			});
-		}
-		
-		if (ast.apiLevel() >= AST.JLS3) {
-			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);
-				}
-			});
-		}
-		
-		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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-		});
-		
-		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();
-				VariableDeclarationFragment s1 = x.getAST().newVariableDeclarationFragment();
-				FieldDeclaration s2 = x.getAST().newFieldDeclaration(s1);
-				s0.bodyDeclarations().add(s2);
-				s1.setInitializer(x);
-				return s0;
-			}
-			public void unwrap() {
-				VariableDeclarationFragment s1 = (VariableDeclarationFragment) x.getParent();
-				s1.setInitializer(null);
-			}
-			public ASTNode get() {
-				return x.getAnonymousClassDeclaration();
-			}
-			public void set(ASTNode value) {
-				x.setAnonymousClassDeclaration((AnonymousClassDeclaration) value);
-			}
-		});
-
-	}
-
-	public void testAnonymousClassDeclaration() {
-		long previousCount = ast.modificationCount();
-		final AnonymousClassDeclaration x = ast.newAnonymousClassDeclaration();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.bodyDeclarations().isEmpty());
-		assertTrue(x.getNodeType() == ASTNode.ANONYMOUS_CLASS_DECLARATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			AnonymousClassDeclaration.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		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 compilationUnit = targetAst.newJavaScriptUnit();
-					compilationUnit.types().add(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return BodyDeclaration that embeds x
-				VariableDeclarationFragment s0 = x.getAST().newVariableDeclarationFragment();
-				FieldDeclaration s1 = x.getAST().newFieldDeclaration(s0);
-				ClassInstanceCreation s2= x.getAST().newClassInstanceCreation(); 
-				s0.setInitializer(s2);
-				s2.setAnonymousClassDeclaration(x);
-				return s1;
-			}
-			public void unwrap() {
-				ClassInstanceCreation s2 = (ClassInstanceCreation) x.getParent();
-				s2.setAnonymousClassDeclaration(null);
-			}
-		});
-		
-		// check that TypeDeclarations in body are classified correctly
-		TypeDeclaration t1 = ast.newTypeDeclaration();
-		x.bodyDeclarations().add(t1);
-		assertTrue(t1.isLocalTypeDeclaration() == false);
-		assertTrue(t1.isMemberTypeDeclaration() == true);
-		assertTrue(t1.isPackageMemberTypeDeclaration() == false);
-	}
-
-	public void testArrayCreation() {
-		long previousCount = ast.modificationCount();
-		final ArrayCreation x = ast.newArrayCreation();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getType().getParent() == x);
-		assertTrue(x.dimensions().isEmpty());
-		assertTrue(x.getInitializer() == null);
-		assertTrue(x.getNodeType() == ASTNode.ARRAY_CREATION);
-		assertTrue(x.structuralPropertiesForType() == 
-			ArrayCreation.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		genericPropertyTest(x, new Property("Type", true, ArrayType.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				ArrayType result = targetAst.newArrayType(
-					targetAst.newSimpleType(targetAst.newSimpleName("a"))); //$NON-NLS-1$
-				if (parented) {
-					targetAst.newArrayType(result);
-				}
-				return result;
-			}
-			public ASTNode get() {
-				return x.getType();
-			}
-			public void set(ASTNode value) {
-				x.setType((ArrayType) value);
-			}
-		});
-		
-		genericPropertyListTest(x, x.dimensions(),
-		  new Property("Dimensions", 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() {
-				// return Expression that embeds x
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("x")); //$NON-NLS-1$
-			}
-		});
-
-		genericPropertyTest(x, new Property("Initializer", false, ArrayInitializer.class) { //$NON-NLS-1$
-			public ASTNode sample(AST targetAst, boolean parented) {
-				ArrayInitializer result = targetAst.newArrayInitializer();
-				if (parented) {
-					targetAst.newExpressionStatement(result);
-				}
-				return result;
-			}
-			public ASTNode wrap() {
-				// return ArrayInitializer that embeds x
-				ArrayInitializer s1 = ast.newArrayInitializer();
-				s1.expressions().add(x);
-				return s1;
-			}
-			public void unwrap() {
-				ArrayInitializer s1 = (ArrayInitializer) x.getParent();
-				s1.expressions().remove(x);
-			}
-			public ASTNode get() {
-				return x.getInitializer();
-			}
-			public void set(ASTNode value) {
-				x.setInitializer((ArrayInitializer) value);
-			}
-		});
-	}
-
-	public void testParenthesizedExpression() {
-		long previousCount = ast.modificationCount();
-		final ParenthesizedExpression x = ast.newParenthesizedExpression();
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getExpression().getParent() == x);
-		assertTrue(x.getNodeType() == ASTNode.PARENTHESIZED_EXPRESSION);
-		assertTrue(x.structuralPropertiesForType() == 
-			ParenthesizedExpression.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-
-		genericPropertyTest(x, new Property("Expression", 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() {
-				ParenthesizedExpression s1 = ast.newParenthesizedExpression();
-				s1.setExpression(x);
-				return s1;
-			}
-			public void unwrap() {
-				ParenthesizedExpression s1 = (ParenthesizedExpression) x.getParent();
-				s1.setExpression(ast.newSimpleName("fie")); //$NON-NLS-1$
-			}
-			public ASTNode get() {
-				return x.getExpression();
-			}
-			public void set(ASTNode value) {
-				x.setExpression((Expression) value);
-			}
-		});
-	}
-	
-
-	/** @deprecated using deprecated code */
-	public void testModifiers() {
-		
-		// check all modifiers match their JVM spec values
-		assertTrue(Modifier.ABSTRACT == 0x0400);
-		assertTrue(Modifier.FINAL == 0x0010);
-		assertTrue(Modifier.NATIVE == 0x0100);
-		assertTrue(Modifier.NONE == 0x0000);
-		assertTrue(Modifier.PRIVATE == 0x0002);
-		assertTrue(Modifier.PROTECTED == 0x0004);
-		assertTrue(Modifier.PUBLIC == 0x0001);
-		assertTrue(Modifier.STATIC == 0x0008);
-		assertTrue(Modifier.STRICTFP == 0x0800);
-		assertTrue(Modifier.SYNCHRONIZED == 0x0020);
-		assertTrue(Modifier.TRANSIENT == 0x0080);
-		assertTrue(Modifier.VOLATILE == 0x0040);
-		
-		// check that all
-		final int[] mods =
-			{
-				Modifier.ABSTRACT,
-				Modifier.FINAL,
-				Modifier.NATIVE,
-				Modifier.PRIVATE,
-				Modifier.PROTECTED,
-				Modifier.PUBLIC,
-				Modifier.STATIC,
-				Modifier.STRICTFP,
-				Modifier.SYNCHRONIZED,
-				Modifier.TRANSIENT,
-				Modifier.VOLATILE,
-				};
-				
-		for (int i=0; i< mods.length; i++) {
-			int m = mods[i];
-			assertTrue(Modifier.isAbstract(m) == (m == Modifier.ABSTRACT));
-			assertTrue(Modifier.isFinal(m) == (m == Modifier.FINAL));
-			assertTrue(Modifier.isNative(m) == (m == Modifier.NATIVE));
-			assertTrue(Modifier.isPrivate(m) == (m == Modifier.PRIVATE));
-			assertTrue(Modifier.isProtected(m) == (m == Modifier.PROTECTED));
-			assertTrue(Modifier.isPublic(m) == (m == Modifier.PUBLIC));
-			assertTrue(Modifier.isStatic(m) == (m == Modifier.STATIC));
-			assertTrue(Modifier.isStrictfp(m) == (m == Modifier.STRICTFP));
-			assertTrue(Modifier.isSynchronized(m) == (m == Modifier.SYNCHRONIZED));
-			assertTrue(Modifier.isTransient(m) == (m == Modifier.TRANSIENT));
-			assertTrue(Modifier.isVolatile(m) == (m == Modifier.VOLATILE));
-		}
-		
-		if (ast.apiLevel() == AST.JLS2) {
-			// node type introduced in 3.0 API
-			try {
-				ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
-				assertTrue(false);
-			} catch (UnsupportedOperationException e) {
-				// pass
-			}
-			try {
-				ast.newModifiers(Modifier.NONE);
-				assertTrue(false);
-			} catch (UnsupportedOperationException e) {
-				// pass
-			}
-			// skip rest of tests
-			return;
-		}
-		
-		// JLS3 only
-		long previousCount = ast.modificationCount();
-		final Modifier x = ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
-		assertTrue(ast.modificationCount() > previousCount);
-		previousCount = ast.modificationCount();
-		assertTrue(x.getAST() == ast);
-		assertTrue(x.getParent() == null);
-		assertTrue(x.getKeyword() == Modifier.ModifierKeyword.PUBLIC_KEYWORD);
-		assertTrue(x.getNodeType() == ASTNode.MODIFIER);
-		assertTrue(x.structuralPropertiesForType() == 
-			Modifier.propertyDescriptors(ast.apiLevel()));
-		// make sure that reading did not change modification count
-		assertTrue(ast.modificationCount() == previousCount);
-		
-		// ModifierKeyword property - mandatory typesafe enumeration
-		// check the names of the modifiers
-		assertTrue(Modifier.ModifierKeyword.PUBLIC_KEYWORD.toString().equals("public")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.PROTECTED_KEYWORD.toString().equals("protected")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.PRIVATE_KEYWORD.toString().equals("private")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.STATIC_KEYWORD.toString().equals("static")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.ABSTRACT_KEYWORD.toString().equals("abstract")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.FINAL_KEYWORD.toString().equals("final")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD.toString().equals("synchronized")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.NATIVE_KEYWORD.toString().equals("native")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.TRANSIENT_KEYWORD.toString().equals("transient")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.VOLATILE_KEYWORD.toString().equals("volatile")); //$NON-NLS-1$
-		assertTrue(Modifier.ModifierKeyword.STRICTFP_KEYWORD.toString().equals("strictfp")); //$NON-NLS-1$
-
-		final Modifier.ModifierKeyword[] known = {
-			Modifier.ModifierKeyword.PUBLIC_KEYWORD,
-			Modifier.ModifierKeyword.PROTECTED_KEYWORD,
-			Modifier.ModifierKeyword.PRIVATE_KEYWORD,
-			Modifier.ModifierKeyword.STATIC_KEYWORD,
-			Modifier.ModifierKeyword.ABSTRACT_KEYWORD,
-			Modifier.ModifierKeyword.FINAL_KEYWORD,
-			Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD,
-			Modifier.ModifierKeyword.NATIVE_KEYWORD,
-			Modifier.ModifierKeyword.TRANSIENT_KEYWORD,
-			Modifier.ModifierKeyword.VOLATILE_KEYWORD,
-			Modifier.ModifierKeyword.STRICTFP_KEYWORD,
-		};
-		
-		// check all modifiers are distinct
-		for (int i = 0; i < known.length; i++) {
-			for (int j = 0; j < known.length; j++) {
-				assertTrue(i == j || !known[i].equals(known[j]));
-			}
-		}
-
-		// check all modifiers work
-		for (int i = 0; i < known.length; i++) {
-			previousCount = ast.modificationCount();
-			x.setKeyword(known[i]);
-			assertTrue(ast.modificationCount() > previousCount);
-			assertTrue(x.getKeyword().equals(known[i]));
-		}
-		// ensure null does not work as an operator
-		try {
-			x.setKeyword(null);
-			assertTrue(false);
-		} catch (RuntimeException e) {
-			// pass
-		}
-
-		// check toKeyword lookup of modifier by name
-		for (int i = 0; i < known.length; i++) {
-			String name = known[i].toString();
-			assertTrue(Modifier.ModifierKeyword.toKeyword(name).equals(known[i]));
-		}
-		assertTrue(Modifier.ModifierKeyword.toKeyword("huh") == null); //$NON-NLS-1$
-
-		// check AST.newModifiers(flags)
-		for (int i = 0; i < mods.length; i++) {
-			int m = mods[i];
-			List result = ast.newModifiers(m);
-			assertEquals(1, result.size());
-			Modifier modNode = (Modifier) result.get(0);
-			assertEquals(m, modNode.getKeyword().toFlagValue());
-		}
-		
-		// check AST.newModifiers ordering
-		final Modifier.ModifierKeyword[] expectedOrder = {
-				Modifier.ModifierKeyword.PUBLIC_KEYWORD,
-				Modifier.ModifierKeyword.PROTECTED_KEYWORD,
-				Modifier.ModifierKeyword.PRIVATE_KEYWORD,
-				Modifier.ModifierKeyword.ABSTRACT_KEYWORD,
-				Modifier.ModifierKeyword.STATIC_KEYWORD,
-				Modifier.ModifierKeyword.FINAL_KEYWORD,
-				Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD,
-				Modifier.ModifierKeyword.NATIVE_KEYWORD,
-				Modifier.ModifierKeyword.STRICTFP_KEYWORD,
-				Modifier.ModifierKeyword.TRANSIENT_KEYWORD,
-				Modifier.ModifierKeyword.VOLATILE_KEYWORD,
-			};
-		int all = 0;
-		for (int i = 0; i < mods.length; i++) {
-			all |= mods[i];
-		}
-		List result = ast.newModifiers(all);
-		assertEquals(expectedOrder.length, result.size());
-		for (int i = 0; i< expectedOrder.length; i++) {
-			final Modifier modifier = ((Modifier) result.get(i));
-			assertEquals(expectedOrder[i], modifier.getKeyword());
-			if (modifier.isAbstract()) {
-				assertEquals(Modifier.ModifierKeyword.ABSTRACT_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isFinal()) {
-				assertEquals(Modifier.ModifierKeyword.FINAL_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isNative()) {
-				assertEquals(Modifier.ModifierKeyword.NATIVE_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isPrivate()) {
-				assertEquals(Modifier.ModifierKeyword.PRIVATE_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isProtected()) {
-				assertEquals(Modifier.ModifierKeyword.PROTECTED_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isPublic()) {
-				assertEquals(Modifier.ModifierKeyword.PUBLIC_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isStatic()) {
-				assertEquals(Modifier.ModifierKeyword.STATIC_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isStrictfp()) {
-				assertEquals(Modifier.ModifierKeyword.STRICTFP_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isSynchronized()) {
-				assertEquals(Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD, modifier.getKeyword());
-			} else if (modifier.isTransient()) {
-				assertEquals(Modifier.ModifierKeyword.TRANSIENT_KEYWORD, modifier.getKeyword());
-			} else {
-				assertEquals(Modifier.ModifierKeyword.VOLATILE_KEYWORD, modifier.getKeyword());
-			} 
-		}
-	}
-		
-	public void testSubtreeBytes() {
-		ASTNode x = SampleASTs.oneOfEach(ast);
-		final int subtreeBytes = x.subtreeBytes();
-		assertTrue(subtreeBytes > 0);
-	}
-	
-	public void testNodeTypeConstants() {
-		// it would be a breaking API change to change the numeric values of
-		// public static final ints
-		assertTrue(ASTNode.ANONYMOUS_CLASS_DECLARATION == 1);
-		assertTrue(ASTNode.ARRAY_ACCESS == 2);
-		assertTrue(ASTNode.ARRAY_CREATION == 3);
-		assertTrue(ASTNode.ARRAY_INITIALIZER == 4);
-		assertTrue(ASTNode.ARRAY_TYPE == 5);
-		assertTrue(ASTNode.ASSIGNMENT == 7);
-		assertTrue(ASTNode.BLOCK == 8);
-		assertTrue(ASTNode.BOOLEAN_LITERAL == 9);
-		assertTrue(ASTNode.BREAK_STATEMENT == 10);
-		assertTrue(ASTNode.CATCH_CLAUSE == 12);
-		assertTrue(ASTNode.CHARACTER_LITERAL == 13);
-		assertTrue(ASTNode.CLASS_INSTANCE_CREATION == 14);
-		assertTrue(ASTNode.JAVASCRIPT_UNIT == 15);
-		assertTrue(ASTNode.CONDITIONAL_EXPRESSION == 16);
-		assertTrue(ASTNode.CONSTRUCTOR_INVOCATION == 17);
-		assertTrue(ASTNode.CONTINUE_STATEMENT == 18);
-		assertTrue(ASTNode.DO_STATEMENT == 19);
-		assertTrue(ASTNode.EMPTY_STATEMENT == 20);
-		assertTrue(ASTNode.EXPRESSION_STATEMENT == 21);
-		assertTrue(ASTNode.FIELD_ACCESS == 22);
-		assertTrue(ASTNode.FIELD_DECLARATION == 23);
-		assertTrue(ASTNode.FOR_STATEMENT == 24);
-		assertTrue(ASTNode.IF_STATEMENT == 25);
-		assertTrue(ASTNode.IMPORT_DECLARATION == 26);
-		assertTrue(ASTNode.INFIX_EXPRESSION == 27);
-		assertTrue(ASTNode.INITIALIZER == 28);
-		assertTrue(ASTNode.JSDOC == 29);
-		assertTrue(ASTNode.LABELED_STATEMENT == 30);
-		assertTrue(ASTNode.FUNCTION_DECLARATION == 31);
-		assertTrue(ASTNode.FUNCTION_INVOCATION == 32);
-		assertTrue(ASTNode.NULL_LITERAL == 33);
-		assertTrue(ASTNode.NUMBER_LITERAL == 34);
-		assertTrue(ASTNode.PACKAGE_DECLARATION == 35);
-		assertTrue(ASTNode.PARENTHESIZED_EXPRESSION == 36);
-		assertTrue(ASTNode.POSTFIX_EXPRESSION == 37);
-		assertTrue(ASTNode.PREFIX_EXPRESSION == 38);
-		assertTrue(ASTNode.PRIMITIVE_TYPE == 39);
-		assertTrue(ASTNode.QUALIFIED_NAME == 40);
-		assertTrue(ASTNode.RETURN_STATEMENT == 41);
-		assertTrue(ASTNode.SIMPLE_NAME == 42);
-		assertTrue(ASTNode.SIMPLE_TYPE == 43);
-		assertTrue(ASTNode.SINGLE_VARIABLE_DECLARATION == 44);
-		assertTrue(ASTNode.STRING_LITERAL == 45);
-		assertTrue(ASTNode.SUPER_CONSTRUCTOR_INVOCATION == 46);
-		assertTrue(ASTNode.SUPER_FIELD_ACCESS == 47);
-		assertTrue(ASTNode.SUPER_METHOD_INVOCATION == 48);
-		assertTrue(ASTNode.SWITCH_CASE == 49);
-		assertTrue(ASTNode.SWITCH_STATEMENT == 50);
-		assertTrue(ASTNode.THIS_EXPRESSION == 52);
-		assertTrue(ASTNode.THROW_STATEMENT == 53);
-		assertTrue(ASTNode.TRY_STATEMENT == 54);
-		assertTrue(ASTNode.TYPE_DECLARATION == 55);
-		assertTrue(ASTNode.TYPE_DECLARATION_STATEMENT == 56);
-		assertTrue(ASTNode.TYPE_LITERAL == 57);
-		assertTrue(ASTNode.VARIABLE_DECLARATION_EXPRESSION == 58);
-		assertTrue(ASTNode.VARIABLE_DECLARATION_FRAGMENT == 59);
-		assertTrue(ASTNode.VARIABLE_DECLARATION_STATEMENT == 60);
-		assertTrue(ASTNode.WHILE_STATEMENT == 61);
-		assertTrue(ASTNode.INSTANCEOF_EXPRESSION == 62);
-		assertTrue(ASTNode.LINE_COMMENT == 63);
-		assertTrue(ASTNode.BLOCK_COMMENT == 64);
-		assertTrue(ASTNode.TAG_ELEMENT == 65);
-		assertTrue(ASTNode.TEXT_ELEMENT == 66);
-		assertTrue(ASTNode.MEMBER_REF == 67);
-		assertTrue(ASTNode.FUNCTION_REF == 68);
-		assertTrue(ASTNode.FUNCTION_REF_PARAMETER == 69);
-		assertTrue(ASTNode.ENHANCED_FOR_STATEMENT == 70);
-		assertTrue(ASTNode.QUALIFIED_TYPE == 75);
-		assertTrue(ASTNode.MODIFIER == 100);
-		
-		// ensure that all constants are distinct, positive, and small
-		// (this may seem paranoid, but this test did uncover a stupid bug!)
-		int[] all= {
-              ASTNode.ANONYMOUS_CLASS_DECLARATION,
-              ASTNode.ARRAY_ACCESS,
-              ASTNode.ARRAY_CREATION,
-              ASTNode.ARRAY_INITIALIZER,
-              ASTNode.ARRAY_TYPE,
-              ASTNode.ASSIGNMENT,
-              ASTNode.BLOCK,
-        	  ASTNode.BLOCK_COMMENT,
-              ASTNode.BOOLEAN_LITERAL,
-              ASTNode.BREAK_STATEMENT,
-              ASTNode.CATCH_CLAUSE,
-              ASTNode.CHARACTER_LITERAL,
-              ASTNode.CLASS_INSTANCE_CREATION,
-              ASTNode.JAVASCRIPT_UNIT,
-              ASTNode.CONDITIONAL_EXPRESSION,
-              ASTNode.CONSTRUCTOR_INVOCATION,
-              ASTNode.CONTINUE_STATEMENT,
-              ASTNode.DO_STATEMENT,
-              ASTNode.EMPTY_STATEMENT,
-              ASTNode.ENHANCED_FOR_STATEMENT,
-              ASTNode.EXPRESSION_STATEMENT,
-              ASTNode.FIELD_ACCESS,
-              ASTNode.FIELD_DECLARATION,
-              ASTNode.FOR_STATEMENT,
-              ASTNode.IF_STATEMENT,
-              ASTNode.IMPORT_DECLARATION,
-              ASTNode.INFIX_EXPRESSION,
-              ASTNode.INSTANCEOF_EXPRESSION,
-              ASTNode.INITIALIZER,
-              ASTNode.JSDOC,
-              ASTNode.LABELED_STATEMENT,
-        	  ASTNode.LINE_COMMENT,
-        	  ASTNode.MEMBER_REF,
-              ASTNode.FUNCTION_DECLARATION,
-              ASTNode.FUNCTION_INVOCATION,
-        	  ASTNode.FUNCTION_REF,
-        	  ASTNode.FUNCTION_REF_PARAMETER,
-      		  ASTNode.MODIFIER,              
-              ASTNode.NULL_LITERAL,
-              ASTNode.NUMBER_LITERAL,
-              ASTNode.PACKAGE_DECLARATION,
-              ASTNode.PARENTHESIZED_EXPRESSION,
-              ASTNode.POSTFIX_EXPRESSION,
-              ASTNode.PREFIX_EXPRESSION,
-              ASTNode.PRIMITIVE_TYPE,
-              ASTNode.QUALIFIED_NAME,
-              ASTNode.QUALIFIED_TYPE,
-              ASTNode.RETURN_STATEMENT,
-              ASTNode.SIMPLE_NAME,
-              ASTNode.SIMPLE_TYPE,
-              ASTNode.SINGLE_VARIABLE_DECLARATION,
-              ASTNode.STRING_LITERAL,
-              ASTNode.SUPER_CONSTRUCTOR_INVOCATION,
-              ASTNode.SUPER_FIELD_ACCESS,
-              ASTNode.SUPER_METHOD_INVOCATION,
-              ASTNode.SWITCH_CASE,
-              ASTNode.SWITCH_STATEMENT,
-        	  ASTNode.TAG_ELEMENT,
-        	  ASTNode.TEXT_ELEMENT,
-              ASTNode.THIS_EXPRESSION,
-              ASTNode.THROW_STATEMENT,
-              ASTNode.TRY_STATEMENT,
-              ASTNode.TYPE_DECLARATION,
-              ASTNode.TYPE_DECLARATION_STATEMENT,
-              ASTNode.TYPE_LITERAL,
-              ASTNode.VARIABLE_DECLARATION_EXPRESSION,
-              ASTNode.VARIABLE_DECLARATION_FRAGMENT,
-              ASTNode.VARIABLE_DECLARATION_STATEMENT,
-              ASTNode.WHILE_STATEMENT,
-		};
-		int MIN = 1;
-		int MAX = 100;
-		Set s = new HashSet();
-		for (int i=0; i<all.length; i++) {
-			assertTrue(MIN <= all[i] && all[i] <= MAX);
-			s.add(new Integer(all[i]));
-		}
-		assertTrue(s.size() == all.length);
-		// ensure that Integers really do compare properly with equals
-		assertTrue(new Integer(1).equals(new Integer(1)));
-	}
-}
-
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
deleted file mode 100644
index 90e2867..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ASTVisitorTest.java
+++ /dev/null
@@ -1,1951 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.lang.reflect.Method;
-
-import junit.framework.Test;
-
-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.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.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.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.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;
-
-public class ASTVisitorTest extends org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase { 
-
-	/** @deprecated using deprecated code */
-	public static Test suite() {
-		// TODO (frederic) use buildList + setAstLevel(init) instead...
-		junit.framework.TestSuite suite = new junit.framework.TestSuite(ASTVisitorTest.class.getName());
-		
-		Class c = ASTVisitorTest.class;
-		Method[] methods = c.getMethods();
-		for (int i = 0, max = methods.length; i < max; i++) {
-			if (methods[i].getName().startsWith("test")) { //$NON-NLS-1$
-				suite.addTest(new ASTVisitorTest(methods[i].getName(), AST.JLS2));
-				//suite.addTest(new ASTVisitorTest(methods[i].getName(), AST.JLS3));
-			}
-		}
-		return suite;
-	}	
-	
-	AST ast;
-	SimpleName N1;
-	String N1S;
-	SimpleName N2;
-	String N2S;
-	SimpleName N3;
-	String N3S;
-	SimpleName N4;
-	String N4S;
-	Expression E1;
-	String E1S;
-	Expression E2;
-	String E2S;
-	Type T1;
-	String T1S;
-	Type T2;
-	String T2S;
-	String PT1S;
-	Statement S1;
-	String S1S;
-	Statement S2;
-	Block B1;
-	String B1S;
-	String S2S;
-	SingleVariableDeclaration V1;
-	String V1S;
-	SingleVariableDeclaration V2;
-	String V2S;
-	VariableDeclarationFragment W1;
-	String W1S;
-	VariableDeclarationFragment W2;
-	String W2S;
-	FieldDeclaration FD1;
-	String FD1S;
-	FieldDeclaration FD2;
-	String FD2S;
-	PackageDeclaration PD1;
-	String PD1S;
-	ImportDeclaration ID1;
-	String ID1S;
-	ImportDeclaration ID2;
-	String ID2S;
-	TypeDeclaration TD1;
-	String TD1S;
-	TypeDeclaration TD2;
-	String TD2S;
-	JSdoc JD1;
-	String JD1S;
-	TagElement TAG1;
-	String TAG1S;
-	TextElement TEXT1;
-	String TEXT1S;
-	MemberRef MBREF1;
-	String MBREF1S;
-	FunctionRef MTHREF1;
-	String MTHREF1S;
-	FunctionRefParameter MPARM1;
-	String MPARM1S;
-	LineComment LC1;
-	String LC1S;
-	BlockComment BC1;
-	String BC1S;
-	AnonymousClassDeclaration ACD1;
-	String ACD1S;
-	String TP1S;
-	String TP2S;
-	String MVP1S;
-	String MVP2S;
-	Modifier MOD1;
-	String MOD1S;
-	Modifier MOD2;
-	String MOD2S;
-	String ANO1S;
-	String ANO2S;
-	String EC1S;
-	String EC2S;
-	
-	final StringBuffer b = new StringBuffer();
-	
-	int API_LEVEL;
-
-	public ASTVisitorTest(String name, int apiLevel) {
-		super(name);
-		this.API_LEVEL = apiLevel;
-	}
-	
-	/**
-	 * @deprecated (not really - just suppressing the warnings
-	 * that come from testing Javadoc.getComment())
-	 *
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		ast = AST.newAST(this.API_LEVEL);
-		N1 = ast.newSimpleName("N"); //$NON-NLS-1$
-		N1S = "[(nSNNnS)]"; //$NON-NLS-1$
-		N2 = ast.newSimpleName("M"); //$NON-NLS-1$
-		N2S = "[(nSMMnS)]"; //$NON-NLS-1$
-		N3 = ast.newSimpleName("O"); //$NON-NLS-1$
-		N3S = "[(nSOOnS)]"; //$NON-NLS-1$
-		N4 = ast.newSimpleName("P"); //$NON-NLS-1$
-		N4S = "[(nSPPnS)]"; //$NON-NLS-1$
-		E1 = ast.newSimpleName("X"); //$NON-NLS-1$
-		E1S = "[(nSXXnS)]"; //$NON-NLS-1$
-		E2 = ast.newSimpleName("Y"); //$NON-NLS-1$
-		E2S = "[(nSYYnS)]"; //$NON-NLS-1$
-		T1 = ast.newSimpleType(ast.newSimpleName("Z")); //$NON-NLS-1$
-		T1S = "[(tS[(nSZZnS)]tS)]"; //$NON-NLS-1$
-		T2 = ast.newSimpleType(ast.newSimpleName("X")); //$NON-NLS-1$
-		T2S = "[(tS[(nSXXnS)]tS)]"; //$NON-NLS-1$
-		S1 = ast.newContinueStatement();
-		S1S = "[(sCNsCN)]"; //$NON-NLS-1$
-		S2 = ast.newBreakStatement();
-		S2S = "[(sBRsBR)]"; //$NON-NLS-1$
-		B1 = ast.newBlock();
-		B1S = "[(sBsB)]"; //$NON-NLS-1$
-		V1 = ast.newSingleVariableDeclaration();
-		V1.setType(ast.newPrimitiveType(PrimitiveType.INT));
-		V1.setName(ast.newSimpleName("a")); //$NON-NLS-1$
-		V1S = "[(VD[(tPintinttP)][(nSaanS)]VD)]"; //$NON-NLS-1$
-		V2 = ast.newSingleVariableDeclaration();
-		V2.setType(ast.newPrimitiveType(PrimitiveType.BYTE));
-		V2.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		V2S = "[(VD[(tPbytebytetP)][(nSbbnS)]VD)]"; //$NON-NLS-1$
-		W1 = ast.newVariableDeclarationFragment();
-		W1.setName(ast.newSimpleName("a")); //$NON-NLS-1$
-		W1S = "[(VS[(nSaanS)]VS)]"; //$NON-NLS-1$
-		W2 = ast.newVariableDeclarationFragment();
-		W2.setName(ast.newSimpleName("b")); //$NON-NLS-1$
-		W2S = "[(VS[(nSbbnS)]VS)]"; //$NON-NLS-1$
-		{
-			VariableDeclarationFragment temp = ast.newVariableDeclarationFragment();
-			temp.setName(ast.newSimpleName("f")); //$NON-NLS-1$
-			FD1 = ast.newFieldDeclaration(temp);
-			FD1.setType(ast.newPrimitiveType(PrimitiveType.INT));
-			FD1S = "[(FD[(tPintinttP)][(VS[(nSffnS)]VS)]FD)]"; //$NON-NLS-1$
-		}
-		{
-			VariableDeclarationFragment temp = ast.newVariableDeclarationFragment();
-			temp.setName(ast.newSimpleName("g")); //$NON-NLS-1$
-			FD2 = ast.newFieldDeclaration(temp);
-			FD2.setType(ast.newPrimitiveType(PrimitiveType.CHAR));
-			FD2S = "[(FD[(tPcharchartP)][(VS[(nSggnS)]VS)]FD)]"; //$NON-NLS-1$
-		}
-		PD1 = ast.newPackageDeclaration();
-		PD1.setName(ast.newSimpleName("p")); //$NON-NLS-1$
-		PD1S = "[(PD[(nSppnS)]PD)]"; //$NON-NLS-1$
-		ID1 = ast.newImportDeclaration();
-		ID1.setName(ast.newSimpleName("i")); //$NON-NLS-1$
-		ID1S = "[(ID[(nSiinS)]ID)]"; //$NON-NLS-1$
-		ID2 = ast.newImportDeclaration();
-		ID2.setName(ast.newSimpleName("j")); //$NON-NLS-1$
-		ID2S = "[(ID[(nSjjnS)]ID)]"; //$NON-NLS-1$
-		TD1 = ast.newTypeDeclaration();
-		TD1.setName(ast.newSimpleName("c")); //$NON-NLS-1$
-		TD1S = "[(TD[(nSccnS)]TD)]"; //$NON-NLS-1$
-		TD2 = ast.newTypeDeclaration();
-		TD2.setName(ast.newSimpleName("d")); //$NON-NLS-1$
-		TD2S = "[(TD[(nSddnS)]TD)]"; //$NON-NLS-1$
-		
-		ACD1 = ast.newAnonymousClassDeclaration();
-		ACD1S = "[(ACDACD)]"; //$NON-NLS-1$
-		
-		JD1 = ast.newJSdoc();
-		JD1S = "[(JDJD)]"; //$NON-NLS-1$
-		
-		LC1 = ast.newLineComment();
-		LC1S = "[(//*//)]"; //$NON-NLS-1$
-
-		BC1 = ast.newBlockComment();
-		BC1S = "[(/**/)]"; //$NON-NLS-1$
-		
-		TAG1 = ast.newTagElement();
-		TAG1.setTagName("@foo"); //$NON-NLS-1$
-		TAG1S = "[(TG@foo@fooTG)]";  //$NON-NLS-1$
-
-		TEXT1 = ast.newTextElement();
-		TEXT1.setText("foo"); //$NON-NLS-1$
-		TEXT1S = "[(TXfoofooTX)]";  //$NON-NLS-1$
-
-		MBREF1 = ast.newMemberRef();
-		MBREF1.setName(ast.newSimpleName("p")); //$NON-NLS-1$
-		MBREF1S = "[(MBREF[(nSppnS)]MBREF)]";  //$NON-NLS-1$
-
-		MTHREF1 = ast.newFunctionRef();
-		MTHREF1.setName(ast.newSimpleName("p")); //$NON-NLS-1$
-		MTHREF1S = "[(MTHREF[(nSppnS)]MTHREF)]";  //$NON-NLS-1$
-
-		MPARM1 = ast.newFunctionRefParameter();
-		MPARM1.setType(ast.newPrimitiveType(PrimitiveType.CHAR));
-		MPARM1S = "[(MPARM[(tPcharchartP)]MPARM)]";  //$NON-NLS-1$
-
-		if (ast.apiLevel() >= AST.JLS3) {
-			PT1S = "[(tM[(tS[(nSZZnS)]tS)]tM)]"; //$NON-NLS-1$
-
-			TP1S = "[(tTP[(nSxxnS)]tTP)]"; //$NON-NLS-1$
-
-			TP2S = "[(tTP[(nSyynS)]tTP)]"; //$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$
-		
-		}
-
-	}
-	
-	protected void tearDown() throws Exception {
-		ast = null;
-		super.tearDown();
-	}
-	
-	/** @deprecated using deprecated code */
-	public String getName() {
-		String name = super.getName();
-		switch (this.API_LEVEL) {
-			case AST.JLS2:
-				name = "JLS2 - " + name;
-				break;
-			case AST.JLS3:
-				name = "JLS3 - " + name; 
-				break;
-		}
-		return name;
-	}
-	
-	class TestVisitor extends ASTVisitor {
-		
-		boolean visitTheKids = true;
-		
-		boolean visitDocTags;
-		
-		TestVisitor() {
-			this(false);
-		}
-		
-		TestVisitor(boolean visitDocTags) {
-			super(visitDocTags);
-			this.visitDocTags = visitDocTags;
-		}
-		
-		public boolean isVisitingChildren() {
-			return visitTheKids;
-		}
-
-		public void setVisitingChildren(boolean visitChildren) {
-			visitTheKids = visitChildren;
-		}
-
-		// NAMES
-
-		public boolean visit(SimpleName node) {
-			b.append("(nS"); //$NON-NLS-1$
-			b.append(node.getIdentifier());
-			return isVisitingChildren();
-		}
-		public void endVisit(SimpleName node) {
-			b.append(node.getIdentifier());
-			b.append("nS)"); //$NON-NLS-1$
-		}
-		public boolean visit(QualifiedName node) {
-			b.append("(nQ"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(QualifiedName node) {
-			b.append("nQ)"); //$NON-NLS-1$
-		}
-
-		// TYPES
-
-		public boolean visit(SimpleType node) {
-			b.append("(tS"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(SimpleType node) {
-			b.append("tS)"); //$NON-NLS-1$
-		}
-		public boolean visit(ArrayType node) {
-			b.append("(tA"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ArrayType node) {
-			b.append("tA)"); //$NON-NLS-1$
-		}
-		public boolean visit(PrimitiveType node) {
-			b.append("(tP"); //$NON-NLS-1$
-			b.append(node.getPrimitiveTypeCode().toString());
-			return isVisitingChildren();
-		}
-		public void endVisit(PrimitiveType node) {
-			b.append(node.getPrimitiveTypeCode().toString());
-			b.append("tP)"); //$NON-NLS-1$
-		}
-		public boolean visit(QualifiedType node) {
-			b.append("(tQ"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(QualifiedType node) {
-			b.append("tQ)"); //$NON-NLS-1$
-		}
-		
-		// EXPRESSIONS and STATEMENTS
-
-
-		public boolean visit(ArrayAccess node) {
-			b.append("(eAA"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ArrayAccess node) {
-			b.append("eAA)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ArrayCreation node) {
-			b.append("(eAC"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ArrayCreation node) {
-			b.append("eAC)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ArrayInitializer node) {
-			b.append("(eAI"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ArrayInitializer node) {
-			b.append("eAI)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(Assignment node) {
-			b.append("("); //$NON-NLS-1$
-			b.append(node.getOperator().toString());
-			return isVisitingChildren();
-		}
-		public void endVisit(Assignment node) {
-			b.append(node.getOperator().toString());
-			b.append(")"); //$NON-NLS-1$
-		}
-
-		public boolean visit(Block node) {
-			b.append("(sB"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(Block node) {
-			b.append("sB)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(BooleanLiteral node) {
-			b.append("(eBL"); //$NON-NLS-1$
-			b.append(node.booleanValue() ? "true" : "false"); //$NON-NLS-1$ //$NON-NLS-2$
-			return isVisitingChildren();
-		}
-		public void endVisit(BooleanLiteral node) {
-			b.append(node.booleanValue() ? "true" : "false"); //$NON-NLS-1$ //$NON-NLS-2$
-			b.append("eBL)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(BreakStatement node) {
-			b.append("(sBR"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(BreakStatement node) {
-			b.append("sBR)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(CatchClause node) {
-			b.append("(cc"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(CatchClause node) {
-			b.append("cc)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(CharacterLiteral node) {
-			b.append("(eCL"); //$NON-NLS-1$
-			b.append(node.getEscapedValue());
-			return isVisitingChildren();
-		}
-		public void endVisit(CharacterLiteral node) {
-			b.append(node.getEscapedValue());
-			b.append("eCL)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ClassInstanceCreation node) {
-			b.append("(eCI"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ClassInstanceCreation node) {
-			b.append("eCI)"); //$NON-NLS-1$
-		}
-		
-		public boolean visit(AnonymousClassDeclaration node) {
-			b.append("(ACD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(AnonymousClassDeclaration node) {
-			b.append("ACD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(JavaScriptUnit node) {
-			b.append("(CU"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(JavaScriptUnit node) {
-			b.append("CU)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ConditionalExpression node) {
-			b.append("(eCO"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ConditionalExpression node) {
-			b.append("eCO)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ConstructorInvocation node) {
-			b.append("(sCI"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ConstructorInvocation node) {
-			b.append("sCI)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ContinueStatement node) {
-			b.append("(sCN"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ContinueStatement node) {
-			b.append("sCN)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(DoStatement node) {
-			b.append("(sDO"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(DoStatement node) {
-			b.append("sDO)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(EmptyStatement node) {
-			b.append("(sEM"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(EmptyStatement node) {
-			b.append("sEM)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(EnhancedForStatement node) {
-			b.append("(sEFR"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(EnhancedForStatement node) {
-			b.append("sEFR)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ExpressionStatement node) {
-			b.append("(sEX"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ExpressionStatement node) {
-			b.append("sEX)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(FieldAccess node) {
-			b.append("(eFA"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(FieldAccess node) {
-			b.append("eFA)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(FieldDeclaration node) {
-			b.append("(FD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(FieldDeclaration node) {
-			b.append("FD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ForStatement node) {
-			b.append("(sFR"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ForStatement node) {
-			b.append("sFR)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(IfStatement node) {
-			b.append("(sIF"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(IfStatement node) {
-			b.append("sIF)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ImportDeclaration node) {
-			b.append("(ID"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ImportDeclaration node) {
-			b.append("ID)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(InfixExpression node) {
-			b.append("(eIN"); //$NON-NLS-1$
-			b.append(node.getOperator().toString());
-			return isVisitingChildren();
-		}
-		public void endVisit(InfixExpression node) {
-			b.append(node.getOperator().toString());
-			b.append("eIN)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(InstanceofExpression node) {
-			b.append("(eIO"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(InstanceofExpression node) {
-			b.append("eIO)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(Initializer node) {
-			b.append("(IN"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(Initializer node) {
-			b.append("IN)"); //$NON-NLS-1$
-		}
-
-		/**
-		 * @deprecated (not really - just suppressing the warnings
-		 * that come from testing Javadoc.getComment())
-		 *
-		 */
-		public boolean visit(JSdoc node) {
-			b.append("(JD"); //$NON-NLS-1$
-			
-			// verify that children of Javadoc nodes are visited only if requested
-			if (visitDocTags) {
-				assertTrue(super.visit(node) == true);
-			} else {
-				assertTrue(super.visit(node) == false);
-			}
-			return isVisitingChildren() && super.visit(node);
-		}
-
-		/**
-		 * @deprecated (not really - just suppressing the warnings
-		 * that come from testing Javadoc.getComment())
-		 *
-		 */
-		public void endVisit(JSdoc node) {
-			b.append("JD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(BlockComment node) {
-			b.append("(/*"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(BlockComment node) {
-			b.append("*/)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(LineComment node) {
-			b.append("(//"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(LineComment node) {
-			b.append("//)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(TagElement node) {
-			b.append("(TG"); //$NON-NLS-1$
-			b.append(node.getTagName());
-			return isVisitingChildren();
-		}
-		public void endVisit(TagElement node) {
-			b.append(node.getTagName());
-			b.append("TG)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(TextElement node) {
-			b.append("(TX"); //$NON-NLS-1$
-			b.append(node.getText());
-			return isVisitingChildren();
-		}
-		public void endVisit(TextElement node) {
-			b.append(node.getText());
-			b.append("TX)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(MemberRef node) {
-			b.append("(MBREF"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(MemberRef node) {
-			b.append("MBREF)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(FunctionRef node) {
-			b.append("(MTHREF"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(FunctionRef node) {
-			b.append("MTHREF)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(FunctionRefParameter node) {
-			b.append("(MPARM"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(FunctionRefParameter node) {
-			b.append("MPARM)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(LabeledStatement node) {
-			b.append("(sLA"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(LabeledStatement node) {
-			b.append("sLA)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(FunctionDeclaration node) {
-			b.append("(MD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(FunctionDeclaration node) {
-			b.append("MD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(FunctionInvocation node) {
-			b.append("(eMI"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(FunctionInvocation node) {
-			b.append("eMI)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(NullLiteral node) {
-			b.append("(eNL"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(NullLiteral node) {
-			b.append("eNL)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(NumberLiteral node) {
-			b.append("(eNU"); //$NON-NLS-1$
-			b.append(node.getToken());
-			return isVisitingChildren();
-		}
-		public void endVisit(NumberLiteral node) {
-			b.append(node.getToken());
-			b.append("eNU)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(PackageDeclaration node) {
-			b.append("(PD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(PackageDeclaration node) {
-			b.append("PD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ParenthesizedExpression node) {
-			b.append("(ePA"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ParenthesizedExpression node) {
-			b.append("ePA)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(PostfixExpression node) {
-			b.append("(ePO"); //$NON-NLS-1$
-			b.append(node.getOperator().toString());
-			return isVisitingChildren();
-		}
-		public void endVisit(PostfixExpression node) {
-			b.append(node.getOperator().toString());
-			b.append("ePO)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(PrefixExpression node) {
-			b.append("(ePR"); //$NON-NLS-1$
-			b.append(node.getOperator().toString());
-			return isVisitingChildren();
-		}
-		public void endVisit(PrefixExpression node) {
-			b.append(node.getOperator().toString());
-			b.append("ePR)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ReturnStatement node) {
-			b.append("(sRT"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ReturnStatement node) {
-			b.append("sRT)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(SingleVariableDeclaration node) {
-			b.append("(VD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(SingleVariableDeclaration node) {
-			b.append("VD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(StringLiteral node) {
-			b.append("(eSL"); //$NON-NLS-1$
-			b.append(node.getLiteralValue());
-			return isVisitingChildren();
-		}
-		public void endVisit(StringLiteral node) {
-			b.append(node.getLiteralValue());
-			b.append("eSL)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(SuperConstructorInvocation node) {
-			b.append("(sSC"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(SuperConstructorInvocation node) {
-			b.append("sSC)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(SuperFieldAccess node) {
-			b.append("(eSF"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(SuperFieldAccess node) {
-			b.append("eSF)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(SuperMethodInvocation node) {
-			b.append("(eSM"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(SuperMethodInvocation node) {
-			b.append("eSM)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(SwitchCase node) {
-			b.append("(sSC"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(SwitchCase node) {
-			b.append("sSC)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(SwitchStatement node) {
-			b.append("(sSW"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(SwitchStatement node) {
-			b.append("sSW)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ThisExpression node) {
-			b.append("(eTH"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ThisExpression node) {
-			b.append("eTH)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(ThrowStatement node) {
-			b.append("(sTR"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(ThrowStatement node) {
-			b.append("sTR)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(TryStatement node) {
-			b.append("(sTY"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(TryStatement node) {
-			b.append("sTY)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(TypeDeclaration node) {
-			b.append("(TD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(TypeDeclaration node) {
-			b.append("TD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(TypeDeclarationStatement node) {
-			b.append("(sTD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(TypeDeclarationStatement node) {
-			b.append("sTD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(TypeLiteral node) {
-			b.append("(eTL"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(TypeLiteral node) {
-			b.append("eTL)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(VariableDeclarationExpression node) {
-			b.append("(eVD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(VariableDeclarationExpression node) {
-			b.append("eVD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(VariableDeclarationFragment node) {
-			b.append("(VS"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(VariableDeclarationFragment node) {
-			b.append("VS)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(VariableDeclarationStatement node) {
-			b.append("(sVD"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(VariableDeclarationStatement node) {
-			b.append("sVD)"); //$NON-NLS-1$
-		}
-
-		public boolean visit(WhileStatement node) {
-			b.append("(sWH"); //$NON-NLS-1$
-			return isVisitingChildren();
-		}
-		public void endVisit(WhileStatement node) {
-			b.append("sWH)"); //$NON-NLS-1$
-		}
-
-
-		public boolean visit(Modifier node) {
-			b.append("(MOD"); //$NON-NLS-1$
-			b.append(node.getKeyword().toString());
-			return isVisitingChildren();
-		}
-		public void endVisit(Modifier node) {
-			b.append(node.getKeyword().toString());
-			b.append("MOD)"); //$NON-NLS-1$
-		}
-
-		public void preVisit(ASTNode node) {
-			b.append("["); //$NON-NLS-1$
-		}
-
-		public void postVisit(ASTNode node) {
-			b.append("]"); //$NON-NLS-1$
-		}
-
-	}	
-	// NAMES
-	public void testSimpleName() {
-		Name x1 = ast.newName(new String[]{"Z"}); //$NON-NLS-1$
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue("[(nSZZnS)]".equals(result)); //$NON-NLS-1$
-	}
-
-	public void testQualifiedName() {
-		Name x1 = ast.newName(new String[]{"X", "Y"}); //$NON-NLS-1$ //$NON-NLS-2$
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue("[(nQ[(nSXXnS)][(nSYYnS)]nQ)]".equals(result)); //$NON-NLS-1$
-	}
-
-	
-	// TYPES
-	public void testPrimitiveType() {
-		Type x1 = ast.newPrimitiveType(PrimitiveType.CHAR);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue("[(tPcharchartP)]".equals(result)); //$NON-NLS-1$
-	}
-
-	public void testSimpleType() {
-		Type x1 = ast.newSimpleType(ast.newName(new String[]{"Z"})); //$NON-NLS-1$
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue("[(tS[(nSZZnS)]tS)]".equals(result)); //$NON-NLS-1$
-	}
-
-	public void testArrayType() {
-		Type x0 = ast.newPrimitiveType(PrimitiveType.CHAR);
-		Type x1 = ast.newArrayType(x0);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue("[(tA[(tPcharchartP)]tA)]".equals(result)); //$NON-NLS-1$
-	}
-
-	/** @deprecated using deprecated code */
-	public void testQualifiedType() {
-		if (ast.apiLevel() == AST.JLS2) {
-			return;
-		}
-		QualifiedType x1 = ast.newQualifiedType(T1, N1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(tQ"+T1S+N1S+"tQ)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// EXPRESSIONS and STATEMENTS
-
-	public void testArrayAccess() {
-		ArrayAccess x1 = ast.newArrayAccess();
-		x1.setArray(E1);
-		x1.setIndex(E2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eAA"+E1S+E2S+"eAA)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testArrayCreation() {
-		ArrayCreation x1 = ast.newArrayCreation();
-		x1.setType(ast.newArrayType(T1));
-		x1.dimensions().add(E1);
-		x1.dimensions().add(E2);
-		x1.setInitializer(ast.newArrayInitializer());
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eAC"+"[(tA"+T1S+"tA)]"+E1S+E2S+"[(eAIeAI)]eAC)]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-	}
-	public void testArrayInitializer() {
-		ArrayInitializer x1 = ast.newArrayInitializer();
-		x1.expressions().add(E1);
-		x1.expressions().add(E2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eAI"+E1S+E2S+"eAI)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testAssignment() {
-		Assignment x1 = ast.newAssignment();
-		x1.setLeftHandSide(E1);
-		x1.setRightHandSide(E2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(="+E1S+E2S+"=)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testBlock() {
-		Block x1 = ast.newBlock();
-		x1.statements().add(S1);
-		x1.statements().add(S2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sB"+S1S+S2S+"sB)]")); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// check that visiting children can be cut off
-		v1.setVisitingChildren(false);
-		b.setLength(0);
-		x1.accept(v1);
-		result = b.toString();
-		assertTrue(result.equals("[(sBsB)]")); //$NON-NLS-1$
-	}
-
-	public void testBlockComment() {
-		BlockComment x1 = ast.newBlockComment();
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue("[(/**/)]".equals(result)); //$NON-NLS-1$
-	}
-
-	public void testBooleanLiteral() {
-		BooleanLiteral x1 = ast.newBooleanLiteral(true);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eBLtruetrueeBL)]")); //$NON-NLS-1$
-	}
-	public void testBreakStatement() {
-		BreakStatement x1 = ast.newBreakStatement();
-		x1.setLabel(N1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sBR"+N1S+"sBR)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testCatchClause() {
-		CatchClause x1 = ast.newCatchClause();
-		x1.setException(V1);
-		x1.setBody(B1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(cc"+V1S+B1S+"cc)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testCharacterLiteral() {
-		CharacterLiteral x1 = ast.newCharacterLiteral();
-		x1.setCharValue('q');
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eCL'q''q'eCL)]")); //$NON-NLS-1$
-	}
-	/** @deprecated using deprecated code */
-	public void testClassInstanceCreation() {
-		ClassInstanceCreation x1 = ast.newClassInstanceCreation();
-		x1.setExpression(E1);
-		if (ast.apiLevel() == AST.JLS2) {
-			x1.setName(N1);
-		} else {
-			x1.setType(T1);
-		}
-		x1.setAnonymousClassDeclaration(ACD1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(eCI"+E1S+N1S+ACD1S+"eCI)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(eCI"+E1S+PT1S+T1S+ACD1S+"eCI)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	public void testAnonymousClassDeclaration() {
-		AnonymousClassDeclaration x1 = ast.newAnonymousClassDeclaration();
-		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("[(ACD"+FD1S+FD2S+"ACD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testCompilationUnit() {
-		JavaScriptUnit x1 = ast.newJavaScriptUnit();
-		x1.setPackage(PD1);
-		x1.imports().add(ID1);
-		x1.imports().add(ID2);
-		x1.types().add(TD1);
-		x1.types().add(TD2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(CU"+PD1S+ID1S+ID2S+TD1S+TD2S+"CU)]")); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// check that visiting children can be cut off
-		v1.setVisitingChildren(false);
-		b.setLength(0);
-		x1.accept(v1);
-		result = b.toString();
-		assertTrue(result.equals("[(CUCU)]")); //$NON-NLS-1$
-	}
-	public void testConditionalExpression() {
-		ConditionalExpression x1 = ast.newConditionalExpression();
-		x1.setExpression(E1);
-		x1.setThenExpression(E2);
-		x1.setElseExpression(N1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eCO"+E1S+E2S+N1S+"eCO)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	/** @deprecated using deprecated code */
-	public void testConstructorInvocation() {
-		ConstructorInvocation x1 = ast.newConstructorInvocation();
-		x1.arguments().add(E1);
-		x1.arguments().add(E2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(sCI"+E1S+E2S+"sCI)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(sCI"+PT1S+E1S+E2S+"sCI)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	public void testContinueStatement() {
-		ContinueStatement x1 = ast.newContinueStatement();
-		x1.setLabel(N1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sCN"+N1S+"sCN)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testDoStatement() {
-		DoStatement x1 = ast.newDoStatement();
-		x1.setExpression(E1);
-		x1.setBody(S1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sDO"+S1S+E1S+"sDO)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testEmptyStatement() {
-		EmptyStatement x1 = ast.newEmptyStatement();
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sEMsEM)]")); //$NON-NLS-1$
-	}
-	public void testExpressionStatement() {
-		ExpressionStatement x1 = ast.newExpressionStatement(E1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sEX"+E1S+"sEX)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testFieldAccess() {
-		FieldAccess x1 = ast.newFieldAccess();
-		x1.setExpression(E1);
-		x1.setName(N1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eFA"+E1S+N1S+"eFA)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	/** @deprecated using deprecated code */
-	public void testFieldDeclaration() {
-		FieldDeclaration x1 = ast.newFieldDeclaration(W1);
-		x1.setJavadoc(JD1);
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setType(T1);
-		x1.fragments().add(W2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(FD"+JD1S+T1S+W1S+W2S+"FD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(FD"+JD1S+MOD1S+MOD2S+T1S+W1S+W2S+"FD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	public void testForStatement() {
-		ForStatement x1 = ast.newForStatement();
-		x1.initializers().add(E1);
-		x1.initializers().add(E2);
-		x1.setExpression(N1);
-		x1.updaters().add(N2);
-		x1.updaters().add(N3);
-		x1.setBody(S1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sFR"+E1S+E2S+N1S+N2S+N3S+S1S+"sFR)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	/** @deprecated using deprecated code */
-	public void testEnhancedForStatement() {
-		if (ast.apiLevel() == AST.JLS2) {
-			return;
-		}
-		EnhancedForStatement x1 = ast.newEnhancedForStatement();
-		x1.setParameter(V1);
-		x1.setExpression(E1);
-		x1.setBody(S1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sEFR"+V1S+E1S+S1S+"sEFR)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testIfStatement() {
-		IfStatement x1 = ast.newIfStatement();
-		x1.setExpression(E1);
-		x1.setThenStatement(S1);
-		x1.setElseStatement(S2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sIF"+E1S+S1S+S2S+"sIF)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testImportDeclaration() {
-		ImportDeclaration x1 = ast.newImportDeclaration();
-		x1.setName(N1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(ID"+N1S+"ID)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testInfixExpression() {
-		InfixExpression x1 = ast.newInfixExpression();
-		x1.setOperator(InfixExpression.Operator.PLUS);
-		x1.setLeftOperand(E1);
-		x1.setRightOperand(E2);
-		x1.extendedOperands().add(N1);
-		x1.extendedOperands().add(N2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eIN+"+E1S+E2S+N1S+N2S+"+eIN)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testInstanceofExpression() {
-		InstanceofExpression x1 = ast.newInstanceofExpression();
-		x1.setLeftOperand(E1);
-		x1.setRightOperand(T1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eIO"+E1S+T1S+"eIO)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	/** @deprecated using deprecated code */
-	public void testInitializer() {
-		Initializer x1 = ast.newInitializer();
-		x1.setJavadoc(JD1);
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setBody(B1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(IN"+JD1S+B1S+"IN)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(IN"+JD1S+MOD1S+MOD2S+B1S+"IN)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	
-	/**
-	 * @deprecated (not really - just suppressing the warnings
-	 * that come from testing Javadoc.getComment())
-	 *
-	 */
-	public void testJavadoc() {
-		JSdoc x1 = ast.newJSdoc();
-		x1.tags().add(TAG1);
-		
-		// ASTVisitor() does not visit doc tags
-		{
-			TestVisitor v1 = new TestVisitor();
-			b.setLength(0);
-			x1.accept(v1);
-			String result = b.toString();
-			assertTrue(("[(JDJD)]").equals(result)); //$NON-NLS-1$
-		}
-		
-		// ASTVisitor(false) does not visit doc tags
-		{
-			TestVisitor v1 = new TestVisitor(false);
-			b.setLength(0);
-			x1.accept(v1);
-			String result = b.toString();
-			assertTrue(("[(JDJD)]").equals(result)); //$NON-NLS-1$
-		}
-		
-		// ASTVisitor(true) does visit doc tags
-		{
-			TestVisitor v1 = new TestVisitor(true);
-			b.setLength(0);
-			x1.accept(v1);
-			String result = b.toString();
-			assertTrue(("[(JD"+TAG1S+"JD)]").equals(result)); //$NON-NLS-1$
-		}
-	}
-
-	public void testLabeledStatement() {
-		LabeledStatement x1 = ast.newLabeledStatement();
-		x1.setLabel(N1);
-		x1.setBody(S1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sLA"+N1S+S1S+"sLA)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testLineComment() {
-		LineComment x1 = ast.newLineComment();
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue("[(////)]".equals(result)); //$NON-NLS-1$
-	}
-
-	public void testMemberRef() {
-		MemberRef x1 = ast.newMemberRef();
-		x1.setQualifier(N1);
-		x1.setName(N2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(MBREF"+N1S+N2S+"MBREF)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/** @deprecated using deprecated code */
-	public void testMethodDeclaration() {
-		FunctionDeclaration x1 = ast.newFunctionDeclaration();
-		x1.setJavadoc(JD1);
-		if (ast.apiLevel() == AST.JLS2) {
-			x1.setReturnType(T1);
-		} else {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-			x1.setReturnType2(T1);
-		}
-		x1.setName(N1);
-		x1.parameters().add(V1);
-		x1.parameters().add(V2);
-		x1.thrownExceptions().add(N2);
-		x1.thrownExceptions().add(N3);
-		x1.setBody(B1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(MD"+JD1S+T1S+N1S+V1S+V2S+N2S+N3S+B1S+"MD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(MD"+JD1S+MOD1S+MOD2S+TP1S+T1S+N1S+V1S+V2S+N2S+N3S+B1S+"MD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	/** @deprecated using deprecated code */
-	public void testMethodInvocation() {
-		FunctionInvocation x1 = ast.newFunctionInvocation();
-		x1.setExpression(N1);
-		x1.setName(N2);
-		x1.arguments().add(E1);
-		x1.arguments().add(E2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(eMI"+N1S+N2S+E1S+E2S+"eMI)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(eMI"+N1S+PT1S+N2S+E1S+E2S+"eMI)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	public void testMethodRef() {
-		FunctionRef x1 = ast.newFunctionRef();
-		x1.setQualifier(N1);
-		x1.setName(N2);
-		x1.parameters().add(MPARM1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(MTHREF"+N1S+N2S+MPARM1S+"MTHREF)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testMethodRefParameter() {
-		FunctionRefParameter x1 = ast.newFunctionRefParameter();
-		x1.setType(T1);
-		x1.setName(N1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(MPARM"+T1S+N1S+"MPARM)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/** @deprecated using deprecated code */
-	public void testModifier() {
-		if (ast.apiLevel() == AST.JLS2) {
-			return;
-		}
-		Modifier x1 = ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(MODprivateprivateMOD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testNullLiteral() {
-		NullLiteral x1 = ast.newNullLiteral();
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eNLeNL)]")); //$NON-NLS-1$
-	}
-	public void testNumberLiteral() {
-		NumberLiteral x1 = ast.newNumberLiteral("1.0"); //$NON-NLS-1$
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eNU1.01.0eNU)]")); //$NON-NLS-1$
-	}
-	public void testParenthesizedExpression() {
-		ParenthesizedExpression x1 = ast.newParenthesizedExpression();
-		x1.setExpression(E1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(ePA"+E1S+"ePA)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testPostfixExpression() {
-		PostfixExpression x1 = ast.newPostfixExpression();
-		x1.setOperand(E1);
-		x1.setOperator(PostfixExpression.Operator.INCREMENT);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(ePO++"+E1S+"++ePO)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testPrefixExpression() {
-		PrefixExpression x1 = ast.newPrefixExpression();
-		x1.setOperand(E1);
-		x1.setOperator(PrefixExpression.Operator.INCREMENT);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(ePR++"+E1S+"++ePR)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testReturnStatement() {
-		ReturnStatement x1 = ast.newReturnStatement();
-		x1.setExpression(E1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sRT"+E1S+"sRT)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testStringLiteral() {
-		StringLiteral x1 = ast.newStringLiteral();
-		x1.setLiteralValue("H"); //$NON-NLS-1$
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eSLHHeSL)]")); //$NON-NLS-1$
-	}
-	/** @deprecated using deprecated code */
-	public void testSuperConstructorInvocation() {
-		SuperConstructorInvocation x1 = ast.newSuperConstructorInvocation();
-		x1.setExpression(N1);
-		x1.arguments().add(E1);
-		x1.arguments().add(E2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(sSC"+N1S+E1S+E2S+"sSC)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(sSC"+N1S+PT1S+E1S+E2S+"sSC)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	public void testSuperFieldAccess() {
-		SuperFieldAccess x1 = ast.newSuperFieldAccess();
-		x1.setQualifier(N1);
-		x1.setName(N2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eSF"+N1S+N2S+"eSF)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	/** @deprecated using deprecated code */
-	public void testSuperMethodInvocation() {
-		SuperMethodInvocation x1 = ast.newSuperMethodInvocation();
-		x1.setQualifier(N1);
-		x1.setName(N2);
-		x1.arguments().add(E1);
-		x1.arguments().add(E2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(eSM"+N1S+N2S+E1S+E2S+"eSM)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(eSM"+N1S+PT1S+N2S+E1S+E2S+"eSM)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	public void testSwitchCase() {
-		SwitchCase x1 = ast.newSwitchCase();
-		x1.setExpression(E1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sSC"+E1S+"sSC)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testSwitchStatement() {
-		SwitchStatement x1 = ast.newSwitchStatement();
-		x1.setExpression(E1);
-		x1.statements().add(S1);
-		x1.statements().add(S2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sSW"+E1S+S1S+S2S+"sSW)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testTagElement() {
-		TagElement x1 = ast.newTagElement();
-		x1.setTagName("x"); //$NON-NLS-1$
-		x1.fragments().add(TAG1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(("[(TGx"+TAG1S+"xTG)]").equals(result)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testTextElement() {
-		TextElement x1 = ast.newTextElement();
-		x1.setText("x"); //$NON-NLS-1$
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue("[(TXxxTX)]".equals(result)); //$NON-NLS-1$
-	}
-
-	public void testThisExpression() {
-		ThisExpression x1 = ast.newThisExpression();
-		x1.setQualifier(N1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eTH"+N1S+"eTH)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testThrowStatement() {
-		ThrowStatement x1 = ast.newThrowStatement();
-		x1.setExpression(E1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sTR"+E1S+"sTR)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testTryStatement() {
-		TryStatement x1 = ast.newTryStatement();
-		x1.setBody(B1);
-		CatchClause c1 = ast.newCatchClause();
-		c1.setException(V1);
-		c1.setBody(ast.newBlock());
-		x1.catchClauses().add(c1);
-		CatchClause c2 = ast.newCatchClause();
-		c2.setException(V2);
-		c2.setBody(ast.newBlock());
-		x1.catchClauses().add(c2);
-		x1.setFinally(ast.newBlock());
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sTY"+B1S+"[(cc"+V1S+"[(sBsB)]"+"cc)]"+"[(cc"+V2S+"[(sBsB)]"+"cc)]"+"[(sBsB)]"+"sTY)]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
-	}
-	/** @deprecated using deprecated code */
-	public void testTypeDeclaration() {
-		TypeDeclaration x1 = ast.newTypeDeclaration();
-		x1.setJavadoc(JD1);
-		x1.setName(N1);
-		if (ast.apiLevel() == AST.JLS2) {
-			x1.setSuperclass(N2);
-		} else {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.bodyDeclarations().add(FD1);
-		x1.bodyDeclarations().add(FD2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(TD"+JD1S+N1S+N2S+FD1S+FD2S+"TD)]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		} else {
-			assertTrue(result.equals("[(TD"+JD1S+MOD1S+MOD2S+N1S+TP1S+PT1S+T1S+T2S+FD1S+FD2S+"TD)]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-	public void testTypeDeclarationStatement() {
-		TypeDeclarationStatement x1 = ast.newTypeDeclarationStatement(TD1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sTD"+TD1S+"sTD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testTypeLiteral() {
-		TypeLiteral x1 = ast.newTypeLiteral();
-		x1.setType(T1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(eTL"+T1S+"eTL)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	/** @deprecated using deprecated code */
-	public void testSingleVariableDeclaration() {
-		SingleVariableDeclaration x1 = ast.newSingleVariableDeclaration();
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setType(T1);
-		x1.setName(N1);
-		x1.setInitializer(E1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(VD"+T1S+N1S+E1S+"VD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(VD"+MOD1S+MOD2S+T1S+N1S+E1S+"VD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	public void testVariableDeclarationFragment() {
-		VariableDeclarationFragment x1 = ast.newVariableDeclarationFragment();
-		x1.setName(N1);
-		x1.setInitializer(E1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(VS"+N1S+E1S+"VS)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	/** @deprecated using deprecated code */
-	public void testVariableDeclarationExpression() {
-		VariableDeclarationExpression x1 = ast.newVariableDeclarationExpression(W1);
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setType(T1);
-		x1.fragments().add(W2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(eVD"+T1S+W1S+W2S+"eVD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(eVD"+MOD1S+MOD2S+T1S+W1S+W2S+"eVD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	/** @deprecated using deprecated code */
-	public void testVariableDeclarationStatement() {
-		VariableDeclarationStatement x1 = ast.newVariableDeclarationStatement(W1);
-		if (ast.apiLevel() >= AST.JLS3) {
-			x1.modifiers().add(MOD1);
-			x1.modifiers().add(MOD2);
-		}
-		x1.setType(T1);
-		x1.fragments().add(W2);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		if (ast.apiLevel() == AST.JLS2) {
-			assertTrue(result.equals("[(sVD"+T1S+W1S+W2S+"sVD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			assertTrue(result.equals("[(sVD"+MOD1S+MOD2S+T1S+W1S+W2S+"sVD)]")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	public void testWhileStatement() {
-		WhileStatement x1 = ast.newWhileStatement();
-		x1.setExpression(E1);
-		x1.setBody(S1);
-		TestVisitor v1 = new TestVisitor();
-		b.setLength(0);
-		x1.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[(sWH"+E1S+S1S+"sWH)]")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testPrePost() {
-		SimpleName n1 = ast.newSimpleName("a"); //$NON-NLS-1$
-		SimpleName n2 = ast.newSimpleName("b"); //$NON-NLS-1$
-		QualifiedName q = ast.newQualifiedName(n1, n2);
-		TestVisitor v1 = new TestVisitor() {
-			public void preVisit(ASTNode node) {
-				b.append("["); //$NON-NLS-1$
-				switch (node.getNodeType()) {
-					case ASTNode.QUALIFIED_NAME :
-						b.append("q"); //$NON-NLS-1$
-						break;
-					case ASTNode.SIMPLE_NAME :
-						b.append(((SimpleName) node).getIdentifier());
-						break;
-				}
-			}
-
-			public void postVisit(ASTNode node) {
-				switch (node.getNodeType()) {
-					case ASTNode.QUALIFIED_NAME :
-						b.append("q"); //$NON-NLS-1$
-						break;
-					case ASTNode.SIMPLE_NAME :
-						b.append(((SimpleName) node).getIdentifier());
-						break;
-				}
-				b.append("]"); //$NON-NLS-1$
-			}
-		};
-
-		b.setLength(0);
-		q.accept(v1);
-		String result = b.toString();
-		assertTrue(result.equals("[q(nQ" + "[a(nSaanS)a]" + "[b(nSbbnS)b]" + "nQ)q]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-	}	
-	public void testTraverseAndModify() {
-		final TypeDeclaration typeDeclaration = ast.newTypeDeclaration();
-		typeDeclaration.setName(N1);
-		FunctionDeclaration methodDeclaration = ast.newFunctionDeclaration();
-		methodDeclaration.setName(ast.newSimpleName("M1")); //$NON-NLS-1$
-		typeDeclaration.bodyDeclarations().add(0, methodDeclaration);
-		final FunctionDeclaration methodDeclaration2 = ast.newFunctionDeclaration();
-		methodDeclaration2.setName(ast.newSimpleName("M2")); //$NON-NLS-1$
-		typeDeclaration.bodyDeclarations().add(1, methodDeclaration2);
-		FunctionDeclaration methodDeclaration3 = ast.newFunctionDeclaration();
-		methodDeclaration3.setName(ast.newSimpleName("M3")); //$NON-NLS-1$
-		typeDeclaration.bodyDeclarations().add(2, methodDeclaration3);
-		// insert a new before the current node during a traverse
-		TestVisitor v1 = new TestVisitor() {
-			public boolean visit(FunctionDeclaration node) {
-				if (node == methodDeclaration2) {
-					FunctionDeclaration methodDeclaration4 = ast.newFunctionDeclaration();
-					methodDeclaration4.setName(ast.newSimpleName("M4")); //$NON-NLS-1$
-					typeDeclaration.bodyDeclarations().add(0, methodDeclaration4);
-				}
-				return super.visit(node);
-			}			
-		};
-		b.setLength(0);
-		typeDeclaration.accept(v1);
-		assertEquals("wrong output", "[(TD[(nSNNnS)][(MD[(tPvoidvoidtP)][(nSM1M1nS)]MD)][(MD[(tPvoidvoidtP)][(nSM2M2nS)]MD)][(MD[(tPvoidvoidtP)][(nSM3M3nS)]MD)]TD)]", b.toString()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testTraverseAndModify_2() {
-		final TypeDeclaration typeDeclaration = ast.newTypeDeclaration();
-		typeDeclaration.setName(N1);
-		FunctionDeclaration methodDeclaration = ast.newFunctionDeclaration();
-		methodDeclaration.setName(ast.newSimpleName("M1")); //$NON-NLS-1$
-		typeDeclaration.bodyDeclarations().add(0, methodDeclaration);
-		final FunctionDeclaration methodDeclaration2 = ast.newFunctionDeclaration();
-		methodDeclaration2.setName(ast.newSimpleName("M2")); //$NON-NLS-1$
-		typeDeclaration.bodyDeclarations().add(1, methodDeclaration2);
-		FunctionDeclaration methodDeclaration3 = ast.newFunctionDeclaration();
-		methodDeclaration3.setName(ast.newSimpleName("M3")); //$NON-NLS-1$
-		typeDeclaration.bodyDeclarations().add(2, methodDeclaration3);
-		// insert a new after the current node during a traverse
-		TestVisitor v1 = new TestVisitor() {
-			public boolean visit(FunctionDeclaration node) {
-				if (node == methodDeclaration2) {
-					FunctionDeclaration methodDeclaration4 = ast.newFunctionDeclaration();
-					methodDeclaration4.setName(ast.newSimpleName("M4")); //$NON-NLS-1$
-					typeDeclaration.bodyDeclarations().add(3, methodDeclaration4);
-				}
-				return super.visit(node);
-			}			
-		};
-		b.setLength(0);
-		typeDeclaration.accept(v1);
-		assertEquals("wrong output", "[(TD[(nSNNnS)][(MD[(tPvoidvoidtP)][(nSM1M1nS)]MD)][(MD[(tPvoidvoidtP)][(nSM2M2nS)]MD)][(MD[(tPvoidvoidtP)][(nSM3M3nS)]MD)][(MD[(tPvoidvoidtP)][(nSM4M4nS)]MD)]TD)]", b.toString()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testTraverseAndModify_3() {
-		final InfixExpression infixExpression = ast.newInfixExpression();
-		infixExpression.setLeftOperand(ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(ast.newNumberLiteral("10")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		// insert a new after the current node during a traverse
-		TestVisitor v1 = new TestVisitor() {
-			public boolean visit(SimpleName node) {
-				infixExpression.setRightOperand(ast.newNumberLiteral("22")); //$NON-NLS-1$
-				return super.visit(node);
-			}			
-		};
-		b.setLength(0);
-		infixExpression.accept(v1);
-		assertEquals("wrong output", "[(eIN+[(nSiinS)][(eNU2222eNU)]+eIN)]", b.toString()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void testTraverseAndModify_4() {
-		final InfixExpression infixExpression = ast.newInfixExpression();
-		infixExpression.setLeftOperand(ast.newSimpleName("i")); //$NON-NLS-1$
-		infixExpression.setRightOperand(ast.newNumberLiteral("10")); //$NON-NLS-1$
-		infixExpression.setOperator(InfixExpression.Operator.PLUS);
-		// insert a new before the current node during a traverse
-		TestVisitor v1 = new TestVisitor() {
-			public boolean visit(NumberLiteral node) {
-				infixExpression.setLeftOperand(ast.newSimpleName("j")); //$NON-NLS-1$
-				return super.visit(node);
-			}			
-		};
-		b.setLength(0);
-		infixExpression.accept(v1);
-		assertEquals("wrong output", "[(eIN+[(nSiinS)][(eNU1010eNU)]+eIN)]", b.toString()); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/AbstractASTTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/AbstractASTTests.java
deleted file mode 100644
index a4e30de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/AbstractASTTests.java
+++ /dev/null
@@ -1,548 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.jsdt.core.IBuffer;
-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.IProblemRequestor;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-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.ASTRequestor;
-import org.eclipse.wst.jsdt.core.dom.ASTVisitor;
-import org.eclipse.wst.jsdt.core.dom.AnonymousClassDeclaration;
-import org.eclipse.wst.jsdt.core.dom.ArrayType;
-import org.eclipse.wst.jsdt.core.dom.Assignment;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.IBinding;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.IVariableBinding;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionInvocation;
-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.TypeDeclaration;
-import org.eclipse.wst.jsdt.core.dom.TypeDeclarationStatement;
-import org.eclipse.wst.jsdt.core.tests.model.ModifyingResourceTests;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-public class AbstractASTTests extends ModifyingResourceTests {
-
-	public AbstractASTTests(String name) {
-		super(name);
-	}
-
-	/*
-	 * Removes the *start* and *end* markers from the given source and remembers
-	 * the positions.
-	 */
-	public class MarkerInfo {
-		String path;
-		String source;
-		int[] astStarts, astEnds;
-
-		public MarkerInfo(String source) {
-			this(null, source);
-		}
-
-		public MarkerInfo(String path, String source) {
-			this.path = path;
-			this.source = source;
-
-			int markerIndex = 1;
-			while (source.indexOf("/*start" + markerIndex + "*/") != -1) {
-				markerIndex++;
-			}
-			int astNumber = source.indexOf("/*start*/") != -1 ? markerIndex
-					: markerIndex - 1;
-			this.astStarts = new int[astNumber];
-			this.astEnds = new int[astNumber];
-
-			for (int i = 1; i < markerIndex; i++)
-				setStartAndEnd(i);
-			if (astNumber == markerIndex)
-				setStartAndEnd(-1);
-		}
-
-		public int indexOfASTStart(int astStart) {
-			for (int i = 0, length = this.astStarts.length; i < length; i++)
-				if (this.astStarts[i] == astStart)
-					return i;
-			return -1;
-		}
-
-		private void removeMarkerFromSource(String marker, int sourceIndex,
-				int astNumber) {
-			char[] markerChars = marker.toCharArray();
-			this.source = new String(CharOperation.replace(this.source
-					.toCharArray(), markerChars, CharOperation.NO_CHAR));
-			// shift previously recorded positions
-			int markerLength = markerChars.length;
-			for (int i = 0; i < astNumber; i++) {
-				if (this.astStarts[i] > sourceIndex)
-					this.astStarts[i] -= markerLength;
-				if (this.astEnds[i] > sourceIndex)
-					this.astEnds[i] -= markerLength;
-			}
-		}
-
-		private void setStartAndEnd(int markerIndex) {
-			String markerNumber;
-			if (markerIndex == -1) {
-				markerNumber = "";
-				markerIndex = this.astStarts.length; // *start* is always last
-			} else
-				markerNumber = Integer.toString(markerIndex);
-
-			String markerStart = "/*start" + markerNumber + "*/";
-			String markerEnd = "/*end" + markerNumber + "*/";
-			int astStart = source.indexOf(markerStart); // start of AST
-														// inclusive
-			this.astStarts[markerIndex - 1] = astStart;
-			removeMarkerFromSource(markerStart, astStart, markerIndex - 1);
-			int astEnd = this.source.indexOf(markerEnd); // end of AST exclusive
-			this.astEnds[markerIndex - 1] = astEnd;
-			removeMarkerFromSource(markerEnd, astEnd, markerIndex - 1);
-		}
-
-	}
-
-	public class BindingRequestor extends ASTRequestor {
-		HashMap bindings = new HashMap();
-
-		public void acceptBinding(String bindingKey, IBinding binding) {
-			this.bindings.put(bindingKey, binding);
-		}
-
-		public IBinding[] getBindings(String[] bindingKeys) {
-			int length = this.bindings.size();
-			IBinding[] result = new IBinding[length];
-			for (int i = 0; i < length; i++) {
-				result[i] = (IBinding) this.bindings.get(bindingKeys[i]);
-			}
-			return result;
-		}
-	}
-
-	protected void assertASTNodeEquals(String expected, ASTNode node) {
-		String actual = node.toString();
-		if (!expected.equals(actual)) {
-			System.out.println(displayString(actual, 3) + ",");
-		}
-		assertEquals("Unexpected ast node", expected, actual);
-	}
-
-	protected void assertASTNodesEqual(String expected, List nodes) {
-		StringBuffer buffer = new StringBuffer();
-		Iterator iterator = nodes.iterator();
-		while (iterator.hasNext()) {
-			ASTNode node = (ASTNode) iterator.next();
-			buffer.append(node);
-			if (node instanceof JavaScriptUnit) {
-				IProblem[] problems = ((JavaScriptUnit) node).getProblems();
-				if (problems != null) {
-					for (int i = 0, length = problems.length; i < length; i++) {
-						IProblem problem = problems[i];
-						buffer.append('\n');
-						buffer.append(problem);
-					}
-				}
-			}
-			buffer.append('\n');
-		}
-		String actual = buffer.toString();
-		if (!expected.equals(actual)) {
-			System.out.println(displayString(actual, 4) + ",");
-		}
-		assertEquals("Unexpected ast nodes", expected, actual);
-	}
-
-	protected void assertBindingKeyEquals(String expected, String actual) {
-		assertBindingKeysEqual(expected, new String[] { actual });
-	}
-
-	protected void assertBindingKeysEqual(String expected, String[] actualKeys) {
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0, length = actualKeys.length; i < length; i++) {
-			if (i > 0)
-				buffer.append('\n');
-			buffer.append(actualKeys[i]);
-		}
-		String actual = buffer.toString();
-		if (!expected.equals(actual)) {
-			System.out.print(displayString(actual, 4));
-			System.out.println(',');
-		}
-		assertEquals("Unexpected binding keys", expected, actual);
-	}
-
-	protected void assertBindingEquals(String expected, IBinding binding) {
-		assertBindingsEqual(expected, new IBinding[] { binding });
-	}
-
-	protected void assertBindingsEqual(String expected,
-			IBinding[] actualBindings) {
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0, length = actualBindings.length; i < length; i++) {
-			if (i > 0)
-				buffer.append('\n');
-			if (actualBindings[i] == null)
-				buffer.append("<null>");
-			else
-				buffer.append(actualBindings[i].getKey());
-		}
-		String actual = buffer.toString();
-		if (!expected.equals(actual)) {
-			System.out.print(displayString(actual, 3));
-			System.out.println(',');
-		}
-		assertEquals("Unexpected bindings", expected, actual);
-	}
-
-	/*
-	 * Builds an AST from the info source (which is assumed to be the source
-	 * attached to the given class file), and returns the AST node that was
-	 * delimited by the astStart and astEnd of the marker info.
-	 */
-	protected ASTNode buildAST(MarkerInfo markerInfo, IClassFile classFile,
-			boolean reportErrors) throws JavaScriptModelException {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setSource(classFile);
-		parser.setResolveBindings(true);
-		JavaScriptUnit unit = (JavaScriptUnit) parser.createAST(null);
-
-		if (reportErrors) {
-			StringBuffer buffer = new StringBuffer();
-			IProblem[] problems = unit.getProblems();
-			for (int i = 0, length = problems.length; i < length; i++)
-				Util.appendProblem(buffer, problems[i], markerInfo.source
-						.toCharArray(), i + 1);
-			if (buffer.length() > 0)
-				System.err.println(buffer.toString());
-		}
-
-		return findNode(unit, markerInfo);
-	}
-
-	protected ASTNode buildAST(IJavaScriptUnit cu)
-			throws JavaScriptModelException {
-		return buildAST(null/* use existing contents */, cu, true/* report errors */);
-	}
-
-	protected ASTNode buildAST(String newContents, IJavaScriptUnit cu)
-			throws JavaScriptModelException {
-		return buildAST(newContents, cu, true/* report errors */);
-	}
-
-	protected ASTNode buildAST(MarkerInfo markerInfo, IClassFile classFile)
-			throws JavaScriptModelException {
-		return buildAST(markerInfo, classFile, true/* report errors */);
-	}
-
-	/*
-	 * Removes the marker comments "*start*" and "*end*" from the given
-	 * contents, builds an AST from the resulting source, and returns the AST
-	 * node that was delimited by "*start*" and "*end*".
-	 */
-	protected ASTNode buildAST(String newContents, IJavaScriptUnit cu,
-			boolean reportErrors) throws JavaScriptModelException {
-		return buildAST(newContents, cu, reportErrors, false/*
-															 * no statement
-															 * recovery
-															 */);
-	}
-
-	protected ASTNode buildAST(String newContents, IJavaScriptUnit cu,
-			boolean reportErrors, boolean enableStatementRecovery)
-			throws JavaScriptModelException {
-		ASTNode[] nodes = buildASTs(newContents, cu, reportErrors,
-				enableStatementRecovery);
-		if (nodes.length == 0)
-			return null;
-		return nodes[0];
-	}
-
-	protected ASTNode[] buildASTs(String contents, IJavaScriptUnit cu)
-			throws JavaScriptModelException {
-		return buildASTs(contents, cu, true);
-	}
-
-	/*
-	 * Removes the marker comments "*start?*" and "*end?*" from the given new
-	 * contents (where ? is either empty or a number), or use the current
-	 * contents if the given new contents is null. Builds an AST from the
-	 * resulting source. For each of the pairs, returns the AST node that was
-	 * delimited by "*start?*" and "*end?*".
-	 */
-	protected ASTNode[] buildASTs(String newContents, IJavaScriptUnit cu,
-			boolean reportErrors) throws JavaScriptModelException {
-		return buildASTs(newContents, cu, reportErrors, false);
-	}
-
-	protected ASTNode[] buildASTs(String newContents, IJavaScriptUnit cu,
-			boolean reportErrors, boolean enableStatementRecovery)
-			throws JavaScriptModelException {
-		MarkerInfo markerInfo;
-		if (newContents == null) {
-			markerInfo = new MarkerInfo(cu.getSource());
-		} else {
-			markerInfo = new MarkerInfo(newContents);
-		}
-		newContents = markerInfo.source;
-
-		JavaScriptUnit unit;
-		if (cu.isWorkingCopy()) {
-			cu.getBuffer().setContents(newContents);
-			unit = cu.reconcile(AST.JLS3, reportErrors,
-					enableStatementRecovery, null, null);
-		} else {
-			IBuffer buffer = cu.getBuffer();
-			buffer.setContents(newContents);
-			buffer.save(null, false);
-
-			ASTParser parser = ASTParser.newParser(AST.JLS3);
-			parser.setSource(cu);
-			parser.setResolveBindings(true);
-			parser.setStatementsRecovery(enableStatementRecovery);
-			unit = (JavaScriptUnit) parser.createAST(null);
-		}
-
-		if (reportErrors) {
-			StringBuffer buffer = new StringBuffer();
-			IProblem[] problems = unit.getProblems();
-			for (int i = 0, length = problems.length; i < length; i++)
-				Util.appendProblem(buffer, problems[i], newContents
-						.toCharArray(), i + 1);
-			if (buffer.length() > 0)
-				System.err.println(buffer.toString());
-		}
-
-		ASTNode[] nodes = findNodes(unit, markerInfo);
-		if (nodes.length == 0)
-			return new ASTNode[] { unit };
-		return nodes;
-	}
-
-	protected MarkerInfo[] createMarkerInfos(String[] pathAndSources) {
-		MarkerInfo[] markerInfos = new MarkerInfo[pathAndSources.length / 2];
-		int index = 0;
-		for (int i = 0, length = pathAndSources.length; i < length; i++) {
-			String path = pathAndSources[i];
-			String source = pathAndSources[++i];
-			markerInfos[index++] = new MarkerInfo(path, source);
-		}
-		return markerInfos;
-	}
-
-	protected IVariableBinding[] createVariableBindings(
-			String[] pathAndSources, String[] bindingKeys)
-			throws JavaScriptModelException {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {
-		};
-		this.workingCopies = createWorkingCopies(pathAndSources, owner);
-		IBinding[] bindings = resolveBindings(bindingKeys, getJavaProject("P"),
-				owner);
-		int length = bindings.length;
-		IVariableBinding[] result = new IVariableBinding[length];
-		System.arraycopy(bindings, 0, result, 0, length);
-		return result;
-	}
-
-	protected IFunctionBinding[] createMethodBindings(String[] pathAndSources,
-			String[] bindingKeys) throws JavaScriptModelException {
-		return createMethodBindings(pathAndSources, bindingKeys,
-				getJavaProject("P"));
-	}
-
-	protected IFunctionBinding[] createMethodBindings(String[] pathAndSources,
-			String[] bindingKeys, IJavaScriptProject project)
-			throws JavaScriptModelException {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {
-		};
-		this.workingCopies = createWorkingCopies(pathAndSources, owner);
-		IBinding[] bindings = resolveBindings(bindingKeys, project, owner);
-		int length = bindings.length;
-		IFunctionBinding[] result = new IFunctionBinding[length];
-		System.arraycopy(bindings, 0, result, 0, length);
-		return result;
-	}
-
-	protected ITypeBinding[] createTypeBindings(String[] pathAndSources,
-			String[] bindingKeys) throws JavaScriptModelException {
-		return createTypeBindings(pathAndSources, bindingKeys,
-				getJavaProject("P"));
-	}
-
-	protected ITypeBinding[] createTypeBindings(String[] pathAndSources,
-			String[] bindingKeys, IJavaScriptProject project)
-			throws JavaScriptModelException {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {
-		};
-		this.workingCopies = createWorkingCopies(pathAndSources, owner);
-		IBinding[] bindings = resolveBindings(bindingKeys, project, owner);
-		int length = bindings.length;
-		ITypeBinding[] result = new ITypeBinding[length];
-		System.arraycopy(bindings, 0, result, 0, length);
-		return result;
-	}
-
-	protected IJavaScriptUnit[] createWorkingCopies(String[] pathAndSources,
-			WorkingCopyOwner owner) throws JavaScriptModelException {
-		MarkerInfo[] markerInfos = createMarkerInfos(pathAndSources);
-		return createWorkingCopies(markerInfos, owner);
-	}
-
-	protected IJavaScriptUnit[] createWorkingCopies(MarkerInfo[] markerInfos,
-			WorkingCopyOwner owner) throws JavaScriptModelException {
-		return createWorkingCopies(markerInfos, owner, null);
-	}
-
-	protected IJavaScriptUnit[] createWorkingCopies(MarkerInfo[] markerInfos,
-			WorkingCopyOwner owner, IProblemRequestor problemRequestor)
-			throws JavaScriptModelException {
-		int length = markerInfos.length;
-		IJavaScriptUnit[] copies = new IJavaScriptUnit[length];
-		for (int i = 0; i < length; i++) {
-			MarkerInfo markerInfo = markerInfos[i];
-			IJavaScriptUnit workingCopy = getCompilationUnit(markerInfo.path)
-					.getWorkingCopy(owner, null);
-			workingCopy.getBuffer().setContents(markerInfo.source);
-			workingCopy.makeConsistent(null);
-			copies[i] = workingCopy;
-		}
-		return copies;
-	}
-
-	protected ASTNode findNode(JavaScriptUnit unit, final MarkerInfo markerInfo) {
-		ASTNode[] nodes = findNodes(unit, markerInfo);
-		if (nodes.length == 0)
-			return unit;
-		return nodes[0];
-	}
-
-	protected ASTNode[] findNodes(JavaScriptUnit unit,
-			final MarkerInfo markerInfo) {
-		class Visitor extends ASTVisitor {
-			ArrayList found = new ArrayList();
-
-			public void preVisit(ASTNode node) {
-				if (node instanceof JavaScriptUnit)
-					return;
-				int index = markerInfo.indexOfASTStart(node.getStartPosition());
-				if (index != -1
-						&& node.getStartPosition() + node.getLength() == markerInfo.astEnds[index]) {
-					this.found.add(node);
-					markerInfo.astStarts[index] = -1; // so that 2 nodes with
-														// the same start and
-														// end will not be found
-				}
-			}
-		}
-		Visitor visitor = new Visitor();
-		unit.accept(visitor);
-		int size = visitor.found.size();
-		ASTNode[] result = new ASTNode[size];
-		visitor.found.toArray(result);
-		return result;
-	}
-
-	protected void resolveASTs(IJavaScriptUnit[] cus, String[] bindingKeys,
-			ASTRequestor requestor, IJavaScriptProject project,
-			WorkingCopyOwner owner) {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setResolveBindings(true);
-		parser.setProject(project);
-		parser.setWorkingCopyOwner(owner);
-		parser.createASTs(cus, bindingKeys, requestor, null);
-	}
-
-	protected IBinding resolveBinding(ASTNode node) {
-		switch (node.getNodeType()) {
-		case ASTNode.PACKAGE_DECLARATION:
-			return ((PackageDeclaration) node).resolveBinding();
-		case ASTNode.TYPE_DECLARATION:
-			return ((TypeDeclaration) node).resolveBinding();
-		case ASTNode.ANONYMOUS_CLASS_DECLARATION:
-			return ((AnonymousClassDeclaration) node).resolveBinding();
-		case ASTNode.TYPE_DECLARATION_STATEMENT:
-			return ((TypeDeclarationStatement) node).resolveBinding();
-		case ASTNode.FUNCTION_DECLARATION:
-			return ((FunctionDeclaration) node).resolveBinding();
-		case ASTNode.FUNCTION_INVOCATION:
-			return ((FunctionInvocation) node).resolveMethodBinding();
-		case ASTNode.SIMPLE_NAME:
-			return ((SimpleName) node).resolveBinding();
-		case ASTNode.ARRAY_TYPE:
-			return ((ArrayType) node).resolveBinding();
-		case ASTNode.ASSIGNMENT:
-			return ((Assignment) node).getRightHandSide().resolveTypeBinding();
-		case ASTNode.SIMPLE_TYPE:
-			return ((SimpleType) node).resolveBinding();
-		case ASTNode.QUALIFIED_NAME:
-			return ((QualifiedName) node).resolveBinding();
-		default:
-			throw new Error("Not yet implemented for this type of node: "
-					+ node);
-		}
-	}
-
-	protected IBinding[] resolveBindings(String[] bindingKeys,
-			IJavaScriptProject project, WorkingCopyOwner owner) {
-		BindingRequestor requestor = new BindingRequestor();
-		resolveASTs(new IJavaScriptUnit[0], bindingKeys, requestor, project,
-				owner);
-		return requestor.getBindings(bindingKeys);
-	}
-
-	/*
-	 * Resolve the bindings of the nodes marked with *start?* and *end?*.
-	 */
-	protected IBinding[] resolveBindings(String contents, IJavaScriptUnit cu)
-			throws JavaScriptModelException {
-		return resolveBindings(contents, cu, true/* report errors */);
-	}
-
-	/*
-	 * Resolve the bindings of the nodes marked with *start?* and *end?*.
-	 */
-	protected IBinding[] resolveBindings(String contents, IJavaScriptUnit cu,
-			boolean reportErrors) throws JavaScriptModelException {
-		ASTNode[] nodes = buildASTs(contents, cu, reportErrors);
-		if (nodes == null)
-			return null;
-		int length = nodes.length;
-		IBinding[] result = new IBinding[length];
-		for (int i = 0; i < length; i++) {
-			result[i] = resolveBinding(nodes[i]);
-		}
-		return result;
-	}
-
-	// protected void tearDown() throws Exception {
-	// discardWorkingCopies(this.workingCopies);
-	// this.workingCopies = null;
-	// }
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/BatchASTCreationTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/BatchASTCreationTests.java
deleted file mode 100644
index ea147ef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/BatchASTCreationTests.java
+++ /dev/null
@@ -1,1670 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.io.IOException;
-import java.util.ArrayList;
-
-import junit.framework.Test;
-
-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.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IProblemRequestor;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.ASTParser;
-import org.eclipse.wst.jsdt.core.dom.ASTRequestor;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.IBinding;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.IVariableBinding;
-import org.eclipse.wst.jsdt.core.dom.Type;
-import org.eclipse.wst.jsdt.core.dom.TypeDeclaration;
-
-public class BatchASTCreationTests extends AbstractASTTests {
-	
-	public class TestASTRequestor extends ASTRequestor {
-		public ArrayList asts = new ArrayList();
-		public void acceptAST(IJavaScriptUnit source, JavaScriptUnit ast) {
-			this.asts.add(ast);
-		}
-		public void acceptBinding(String bindingKey, IBinding binding) {
-		}
-	}
-	
-	class BindingResolver extends TestASTRequestor {
-		private ArrayList bindingKeys = new ArrayList();
-		int index = -1;
-		private ArrayList foundKeys = new ArrayList();
-		MarkerInfo[] markerInfos;
-		public BindingResolver(MarkerInfo[] markerInfos) {
-			this.markerInfos = markerInfos;
-		}
-		public void acceptAST(IJavaScriptUnit source, JavaScriptUnit cu) {
-			super.acceptAST(source, cu);
-			ASTNode[] nodes = findNodes(cu, this.markerInfos[++this.index]);
-			for (int i = 0, length = nodes.length; i < length; i++) {
-				IBinding binding = resolveBinding(nodes[i]);
-				String bindingKey = binding == null ? "null" : binding.getKey();
-				
-				// case of a capture binding
-				if (bindingKey.indexOf('!') != -1 && binding.getKind() == IBinding.METHOD) {
-					bindingKey = ((IFunctionBinding) binding).getReturnType().getKey();
-				}
-				
-				this.bindingKeys.add(bindingKey);
-			}
-		}
-		public void acceptBinding(String key, IBinding binding) {
-			super.acceptBinding(key, binding);
-			this.foundKeys.add(binding == null ? "null" : binding.getKey());
-		}
-		
-		public String[] getBindingKeys() {
-			int length = this.bindingKeys.size();
-			String[] result = new String[length];
-			this.bindingKeys.toArray(result);
-			return result;
-		}
-
-		public String[] getFoundKeys() {
-			int length = this.foundKeys.size();
-			String[] result = new String[length];
-			this.foundKeys.toArray(result);
-			return result;
-		}
-	}
-	
-	public WorkingCopyOwner owner = new WorkingCopyOwner() {};
-
-	public BatchASTCreationTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(BatchASTCreationTests.class);
-	}
-	
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-//		TESTS_PREFIX =  "testBug86380";
-//		TESTS_NAMES = new String[] { "test056" };
-//		TESTS_NUMBERS = new int[] { 78, 79, 80 };
-		TESTS_RANGE = new int[] { 0, 2 };
-		}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		createJavaProject("P", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-	}
-	
-	public void tearDownSuite() throws Exception {
-		deleteProject("P");
-		super.tearDownSuite();
-	}
-	
-	/*
-	 * Resolves the given cus and binding key as a batch. 
-	 * While resolving, for the ASTNode that is marked, ensures that its binding key is the expected one.
-	 * Ensures that the returned binding corresponds to the expected key.
-	 */
-	private void assertRequestedBindingFound(String[] pathAndSources, final String expectedKey) throws JavaScriptModelException {
-		assertRequestedBindingsFound(pathAndSources, new String[] {expectedKey});
-	}
-		
-	/*
-	 * Resolves the given cus and binding key as a batch. 
-	 * While resolving, for the ASTNode that is marked, ensures that its binding key is the expected one.
-	 * Ensures that the returned binding corresponds to the expected key.
-	 */
-	private void assertRequestedBindingsFound(String[] pathAndSources, final String[] expectedKeys) throws JavaScriptModelException {		
-		BindingResolver resolver = requestBindings(pathAndSources, expectedKeys);
-		
-		assertStringsEqual("Unexpected binding for marked node", expectedKeys, resolver.getBindingKeys());
-		
-		assertStringsEqual("Unexpected binding found by acceptBinding", expectedKeys, resolver.getFoundKeys());
-	}
-
-	/*
-	 * Creates working copies from the given path and sources.
-	 * Resolves a dummy cu as a batch and on the first accept, create a binding with the expected key using ASTRequestor#createBindings.
-	 * Ensures that the returned binding corresponds to the expected key.
-	 */
-	private void assertBindingCreated(String[] pathAndSources, final String expectedKey) throws JavaScriptModelException {
-		assertBindingsCreated(pathAndSources, new String[] {expectedKey});
-	}
-	/*
-	 * Creates working copies from the given path and sources.
-	 * Resolves a dummy cu as a batch and on the first accept, create a binding with the expected key using ASTRequestor#createBindings.
-	 * Ensures that the returned binding corresponds to the expected key.
-	 */
-	private void assertBindingsCreated(String[] pathAndSources, final String[] expectedKeys) throws JavaScriptModelException {
-		IJavaScriptUnit[] copies = null;
-		try {
-			copies = createWorkingCopies(pathAndSources);
-			class Requestor extends TestASTRequestor {
-				ArrayList createdBindingKeys = new ArrayList();
-				public void acceptAST(IJavaScriptUnit source, JavaScriptUnit cu) {
-					super.acceptAST(source, cu);
-					IBinding[] bindings = createBindings(expectedKeys);
-					if (bindings != null && bindings.length > 0 && bindings[0] != null)
-						this.createdBindingKeys.add(bindings[0].getKey());
-				}
-				public String getCreatedKeys() {
-					StringBuffer buffer = new StringBuffer();
-					for (int i = 0, length = this.createdBindingKeys.size(); i < length; i++) {
-						buffer.append(this.createdBindingKeys.get(i));
-						if (i < length - 1)
-							buffer.append('\n');
-					}
-					return buffer.toString();
-				}
-			}
-			Requestor requestor = new Requestor();
-			IJavaScriptUnit[] dummyWorkingCopies = null;
-			try {
-				dummyWorkingCopies = createWorkingCopies(new String[] {
-					"/P/Test.js",
-					"public class Test {\n" +
-					"}"
-				});
-				resolveASTs(dummyWorkingCopies, new String[] {}, requestor, getJavaProject("P"), this.owner);
-			} finally {
-				discardWorkingCopies(dummyWorkingCopies);
-			}
-			
-			String expectedKey = toString(expectedKeys);
-			String actualKey = requestor.getCreatedKeys();
-			if (!expectedKey.equals(actualKey)) {
-				BindingResolver resolver = requestBindings(pathAndSources, null);
-				String[] markedKeys = resolver.getBindingKeys();
-				if (markedKeys.length > 0) {
-					assertStringsEqual("Inconsistent expected key ", expectedKeys, markedKeys);
-				}
-			}
-			assertEquals("Unexpected created binding", expectedKey, actualKey);
-		} finally {
-			discardWorkingCopies(copies);
-		}
-	}
-
-	private void createASTs(IJavaScriptUnit[] cus, TestASTRequestor requestor) {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.createASTs(cus, new String[] {}, requestor, null);
-	}
-	
-	protected IJavaScriptUnit[] createWorkingCopies(String[] pathAndSources) throws JavaScriptModelException {
-		return createWorkingCopies(pathAndSources, this.owner);
-	}
-
-	protected IJavaScriptUnit[] createWorkingCopies(String[] pathAndSources, boolean resolve) throws JavaScriptModelException {
-		IProblemRequestor problemRequestor = resolve
-			? new IProblemRequestor() {
-				public void acceptProblem(IProblem problem) {}
-				public void beginReporting() {}
-				public void endReporting() {}
-				public boolean isActive() {
-					return true;
-				}
-			} 
-			: null;
-		MarkerInfo[] markerInfos = createMarkerInfos(pathAndSources);
-		return createWorkingCopies(markerInfos, this.owner, problemRequestor);
-	}
-	
-	private void resolveASTs(IJavaScriptUnit[] cus, TestASTRequestor requestor) {
-		resolveASTs(cus, new String[0], requestor, getJavaProject("P"), this.owner);
-	}
-	
-	private BindingResolver requestBindings(String[] pathAndSources, final String[] expectedKeys) throws JavaScriptModelException {
-		IJavaScriptUnit[] copies = null;
-		try {
-			MarkerInfo[] markerInfos = createMarkerInfos(pathAndSources);
-			copies = createWorkingCopies(markerInfos, this.owner);
-			BindingResolver resolver = new BindingResolver(markerInfos);
-			resolveASTs(copies, expectedKeys == null ? new String[0] : expectedKeys, resolver, copies.length > 0 ? copies[0].getJavaScriptProject() : getJavaProject("P"), this.owner);
-			return resolver;
-		} finally {
-			discardWorkingCopies(copies);
-		}
-	}
-
-	
-	/*
-	 * Tests the batch creation of 2 ASTs without resolving.
-	 */
-	public void test001() throws CoreException {
-		this.workingCopies = createWorkingCopies(new String[] {
-			"/P/X.js",
-			"function X(){}\n" +
-			"X.prototype = new Y();",
-			"/P/Y.js",
-			"function Y() {}"
-		});
-		TestASTRequestor requestor = new TestASTRequestor();
-		createASTs(this.workingCopies, requestor);
-		assertASTNodesEqual(
-			"function X(){\n}\n" +
-			"X.prototype=new Y();\n" +
-			"\n" + 
-			"function Y(){\n}\n" + 
-			"\n",
-			requestor.asts
-		);
-	}
-	
-	/*
-	 * Tests the batch creation of 2 ASTs with resolving.
-	 */
-	public void test002() throws CoreException {
-		MarkerInfo[] markerInfos = createMarkerInfos(new String[] {
-			"/P/X.js",
-			"function X/*start*/()/*end*/ {\n}\n" +
-			"X.prototype = new Y();",
-			"/P/Y.js",
-			"/*start*/function Y() {\n" +
-			"}/*end*/",
-		});
-		this.workingCopies = createWorkingCopies(markerInfos, this.owner);
-		TestASTRequestor requestor = new TestASTRequestor();
-		resolveASTs(this.workingCopies, requestor);
-		assertASTNodesEqual(
-			"function X(){\n}\n" + 
-			"X.prototype=new Y();\n" +
-			"\n" + 
-			"function Y(){\n}\n" + 
-			"\n",
-			requestor.asts
-		);
-		
-		// compare the bindings coming from the 2 ASTs
-		Type superX = (Type) findNode((JavaScriptUnit) requestor.asts.get(0), markerInfos[0]);
-		TypeDeclaration typeY = (TypeDeclaration) findNode((JavaScriptUnit) requestor.asts.get(1), markerInfos[1]);
-		IBinding superXBinding = superX.resolveBinding();
-		IBinding typeYBinding = typeY.resolveBinding();
-		assertTrue("Super of X and Y should be the same", superXBinding == typeYBinding);
-	}
-
-	/*
-	 * Ensures that ASTs that are required by original source but were not asked for are not handled.
-	 */
-	public void test003() throws CoreException {
-		IJavaScriptUnit[] otherWorkingCopies = null;
-		try {
-			this.workingCopies = createWorkingCopies(new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X extends Y {\n" +
-				"}",
-			});
-			otherWorkingCopies = createWorkingCopies(new String[] {
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}",
-			});
-			TestASTRequestor requestor = new TestASTRequestor();
-			resolveASTs(this.workingCopies, requestor);
-			
-			assertASTNodesEqual(
-				"package p1;\n" + 
-				"public class X extends Y {\n" + 
-				"}\n" + 
-				"\n",
-				requestor.asts
-			);
-		} finally {
-			// Note: this.workingCopies are discarded in tearDown
-			discardWorkingCopies(otherWorkingCopies);
-		}
-	}
-	
-	/*
-	 * Ensures that a package binding can be retrieved using its key.
-	 */
-	public void test004() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"/*start*/package p1;/*end*/\n" +
-				"public class X {\n" +
-				"}",
-			}, 
-			"p1");
-	}
-
-	/*
-	 * Ensures that a type binding can be retrieved using its key.
-	 */
-	public void test005() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"/*start*/public class X extends Y {\n" +
-				"}/*end*/",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}",
-			}, 
-			"Lp1/X;");
-	}
-
-	/*
-	 * Ensures that a type binding can be retrieved using its key.
-	 */
-	public void test006() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X extends Y {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"/*start*/public class Y {\n" +
-				"}/*end*/",
-			}, 
-			"Lp1/Y;");
-	}
-	
-	/*
-	 * Ensures that a member type binding can be retrieved using its key.
-	 */
-	public void test007() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  /*start*/class Member {\n" +
-				"  }/*end*/" +
-				"}",
-			}, 
-			"Lp1/X$Member;");
-	}
-
-	/*
-	 * Ensures that a member type binding can be retrieved using its key.
-	 */
-	public void test008() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  class Member1 {\n" +
-				"    /*start*/class Member2 {\n" +
-				"    }/*end*/" +
-				"  }\n" +
-				"}",
-			}, 
-			"Lp1/X$Member1$Member2;");
-	}
-	/*
-	 * Ensures that an anonymous type binding can be retrieved using its key.
-	 */
-	public void test009() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    new X() /*start*/{\n" +
-				"    }/*end*/;" +
-				"  }\n" +
-				"}",
-			}, 
-			"Lp1/X$52;");
-	}
-	/*
-	 * Ensures that a local type binding can be retrieved using its key.
-	 */
-	public void test010() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    /*start*/class Y {\n" +
-				"    }/*end*/;" +
-				"  }\n" +
-				"}",
-			}, 
-			"Lp1/X$54$Y;");
-	}
-
-	/*
-	 * Ensures that a package binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test011() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-			}, 
-			"p1");
-	}
-
-	/*
-	 * Ensures that a type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test012() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X extends Y {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}",
-			},
-			"Lp1/X;");
-	}
-
-	/*
-	 * Ensures that a type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test013() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X extends Y {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}",
-			},
-			"Lp1/Y;");
-	}
-	
-	/*
-	 * Ensures that a member type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test014() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  class Member {\n" +
-				"  }" +
-				"}",
-			},
-			"Lp1/X$Member;");
-	}
-
-	/*
-	 * Ensures that a member type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test015() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  class Member1 {\n" +
-				"    class Member2 {\n" +
-				"    }" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X$Member1$Member2;");
-	}
-	
-	/*
-	 * Ensures that an anonymous type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test016() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    new X() /*start*/{\n" +
-				"    }/*end*/;" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X$52;");
-	}
-	
-	/*
-	 * Ensures that a local type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test017() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    /*start*/class Y {\n" +
-				"    }/*end*/;" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X$54$Y;");
-	}
-	
-	/*
-	 * Ensures that a method binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test018() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X;.foo()V");
-	}
-	
-	/*
-	 * Ensures that a method binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test019() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo(Object o) {\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X;.foo(Ljava/lang/Object;)V");
-	}
-	
-	/*
-	 * Ensures that a method binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test020() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  X(Object o) {\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X;.(Ljava/lang/Object;)V");
-	}
-
-	/*
-	 * Ensures that a field binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test021() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  int field;\n" +
-				"}",
-			},
-			"Lp1/X;.field)I");
-	}
-
-	/*
-	 * Ensures that a base type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test022() throws CoreException {
-		assertBindingCreated(new String[0],"I");
-	}
-	
-	/*
-	 * Ensures that an array binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test023() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-			},
-			"[Lp1/X;");
-	}
-	
-	/*
-	 * Ensures that an array binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test024() throws CoreException {
-		assertBindingCreated(new String[0],"[[I");
-	}
-	
-	/* 
-	 * Ensures that a method binding in an anonymous type with several kind of parameters can be created using its key in ASTRequestor#createBindings
-	 */
-	public void test025() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  class Y {\n" +
-				"  }\n" +
-				"  void foo() {\n" +
-				"    new X() {\n" +
-				"      /*start*/void bar(int i, X x, String[][] s, Y[] args, boolean b, Object o) {\n" +
-				"      }/*end*/\n" +
-				"    };\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X$68;.bar(ILp1/X;[[Ljava/lang/String;[Lp1/X$Y;ZLjava/lang/Object;)V"
-		);
-	}
-	
-	/*
-	 * Ensures that a generic type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test026() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"}",
-			},
-			"Lp1/X<TT;>;");
-	}
-
-	/*
-	 * Ensures that a generic type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test027() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T extends Y & I, U extends Y> {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}",
-				"/P/p1/I.js",
-				"package p1;\n" +
-				"public interface I {\n" +
-				"}",
-			},
-			"Lp1/X<TT;TU;>;");
-	}
-
-	/*
-	 * Ensures that a parameterized type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test028() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  X<String> field;\n" +
-				"}",
-			},
-			"Lp1/X<Ljava/lang/String;>;");
-	}
-
-	/*
-	 * Ensures that a member parameterized type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test029() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T,U> {\n" +
-				"  class Y<V> {\n" +
-				"    X<Error,Exception>.Y<String> field;\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Ljava/lang/Error;Ljava/lang/Exception;>.Y<Ljava/lang/String;>;");
-	}
-
-	/*
-	 * Ensures that a raw type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test030() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T,U> {\n" +
-				"   X field;\n" +
-				"}",
-			},
-			"Lp1/X<>;");
-	}
-
-	/*
-	 * Ensures that a member raw type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test031() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T,U> {\n" +
-				"  class Y<V> {\n" +
-				"    X<Error,Exception>.Y field;\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Ljava/lang/Error;Ljava/lang/Exception;>.Y<>;");
-	}
-	
-	/* 
-	 * Ensures that a parameterized method binding can be created using its key in ASTRequestor#createBindings
-	 */
-	public void test032() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  <T> void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X;.foo<T:Ljava/lang/Object;>()V");
-	}
-
-	/* 
-	 * Ensures that a local variable binding can be created using its key in ASTRequestor#createBindings
-	 */
-	public void test033() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    int i;\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X;.foo()V#i");
-	}
-
-	/* 
-	 * Ensures that a local variable binding can be created using its key in ASTRequestor#createBindings
-	 */
-	public void test034() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    int i = 1;\n" +
-				"    if (i == 0) {\n" +
-				"      int a;\n" +
-				"    } else {\n" +
-				"      int b;\n" +
-				"    }\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X;.foo()V#1#b");
-	}
-
-	/*
-	 * Ensures that a parameterized method binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test035() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  void foo(T t) {\n" +
-				"  }\n" +
-				"  void bar() {\n" +
-				"    new X<String>().foo(\"\");\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Ljava/lang/String;>;.foo(Ljava/lang/String;)V");
-	}
-
-	/*
-	 * Ensures that a parameterized generic method binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test036() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  <U> void foo(T t, U u) {\n" +
-				"  }\n" +
-				"  void bar() {\n" +
-				"    /*start*/new X<String>().foo(\"\", this)/*end*/;\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Ljava/lang/String;>;.foo<U:Ljava/lang/Object;>(Ljava/lang/String;TU;)V%<Lp1/X;>"
-		);
-	}
-
-	/*
-	 * Ensures that a raw generic method binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test037() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  <U> void foo(T t, U u) {\n" +
-				"  }\n" +
-				"  void bar() {\n" +
-				"    /*start*/new X().foo(\"\", this)/*end*/;\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X;.foo<U:Ljava/lang/Object;>(TT;TU;)V%<>");
-	}
-
-	/*
-	 * Ensures that a parameterized method binding (where the parameter is an unbound wildcard) can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test038() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"  void bar(X<?> x) {\n" +
-				"    x.foo();\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Lp1/X;*>;.foo()V");
-	}
-
-	/*
-	 * Ensures that a parameterized method binding (where the parameter is an extends wildcard) can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test039() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"  void bar(X<? extends Object> x) {\n" +
-				"    x.foo();\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Lp1/X;+Ljava/lang/Object;>;.foo()V");
-	}
-
-	/*
-	 * Ensures that a parameterized method binding (where the parameter is a super wildcard) can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test040() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"  void bar(X<? super Error> x) {\n" +
-				"    x.foo();\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Lp1/X;-Ljava/lang/Error;>;.foo()V");
-	}
-
-	/*
-	 * Ensures that a parameterized method binding (where the parameters contain wildcards) can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test041() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T, U, V, W> {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"  void bar(X<? super Error, ?, String, ? extends Object> x) {\n" +
-				"    x.foo();\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Lp1/X;-Ljava/lang/Error;Lp1/X;*Ljava/lang/String;Lp1/X;+Ljava/lang/Object;>;.foo()V");
-	}
-	
-	/*
-	 * Ensures that requesting 2 bindings and an AST for the same compilation unit reports the 2 bindings.
-	 */
-	public void test042() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy(
-				"/P/X.js",
-				"public class X {\n" +
-				"  int field;\n" +
-				"}"
-			);
-			BindingRequestor requestor = new BindingRequestor();
-			String[] bindingKeys = 
-				new String[] {
-					"LX;",
-					"LX;.field)I"
-				};
-			resolveASTs(
-				new IJavaScriptUnit[] {workingCopy}, 
-				bindingKeys,
-				requestor,
-				getJavaProject("P"),
-				workingCopy.getOwner()
-			);
-			assertBindingsEqual(
-				"LX;\n" + 
-				"LX;.field)I",
-				requestor.getBindings(bindingKeys));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-
-	/*
-	 * Ensures that a source parameterized type binding (where the parameters contain wildcard with a super bound) can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test043() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  X<? super T> field;\n" +
-				"}",
-			},
-			"Lp1/X<Lp1/X;-Lp1/X;:TT;>;");
-	}
-	
-	/*
-	 * Ensures that a binary parameterized type binding (where the parameters contain wildcard with a super bound) can be created using its key in ASTRequestor#createBindings.
-	 * (regression test for 83499 ClassCastException when restoring ITypeBinding from key)
-	 */
-	public void test044() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<E> {\n" +
-				"  Class<? extends E> field;\n" +
-				"}",
-			},
-			"Ljava/lang/Class<Lp1/X;+Lp1/X;:TE;>;");
-	}
-	
-	/*
-	 * Ensures that restoring a second key that references a type in a first key doesn't throw a NPE
-	 * (regression test for bug 83499 NPE when restoring ITypeBinding from key)
-	 */
-	public void test045() throws CoreException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y<E> {\n" +
-				"}"
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y<Lp1/Y;+Lp1/X;>;"
-			}
-		);
-		assertBindingsEqual(
-			"Lp1/X;\n" +
-			"Lp1/Y<Lp1/Y;+Lp1/X;>;",
-			bindings);
-	}
-
-	/*
-	 * Ensures that a binary array parameterized type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test046() throws CoreException {
-		assertBindingCreated(
-			new String[] {},
-			"[Ljava/lang/Class<Ljava/lang/Object;>;");
-	}
-	
-	/*
-	 * Ensures that the null type binding can be created using its key in batch creation.
-	 */
-	public void test047() throws CoreException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {"N"});
-		assertBindingsEqual(
-				"N", 
-				bindings);
-	}
-
-	/*
-	 * Ensures that a binary array type binding can be created using its key in batch creation.
-	 */
-	public void test048() throws CoreException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {"[Ljava/lang/Object;"});
-		assertBindingsEqual(
-				"[Ljava/lang/Object;", 
-				bindings);
-	}
-
-	/*
-	 * Ensures that a type variable binding can be created using its key in batch creation.
-	 */
-	public void test049() throws CoreException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {"Ljava/lang/Class<TT;>;:TT;"});
-		assertBindingsEqual(
-				"Ljava/lang/Class;:TT;", 
-				bindings);
-	}
-	
-	/*
-	 * Ensures that a parameterized type binding with a wildcard that extends an array the can be created using its key in batch creation.
-	 */
-	public void test050() throws CoreException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {"Ljava/lang/Class<Ljava/lang/Class<TT;>;+[Ljava/lang/Object;>;"});
-		assertBindingsEqual(
-				"Ljava/lang/Class<Ljava/lang/Class;+[Ljava/lang/Object;>;", 
-				bindings);
-	}
-	
-	/*
-	 * Ensures that attempting to create a top level type that doesn't exist using its key i in batch creation.
-	 * returns null.
-	 */
-	public void test051() throws CoreException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {"Lp1/DoesNotExist;"});
-		assertBindingsEqual(
-				"<null>", 
-				bindings);
-	}
-	
-	/*
-	 * Ensures that a secondary type binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test052() throws CoreException {
-		try {
-			createFolder("/P/p1");
-			createFile(
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}\n" +
-				"class Y {\n" +
-				"}"
-			);
-			assertBindingCreated(new String[] {}, "Lp1/X~Y;");
-		} finally {
-			deleteFolder("/P/p1");
-		}
-	}
-
-	/*
-	 * Ensures that an anonymous type binding coming from secondary type can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test053() throws CoreException {
-		try {
-			createFolder("/P/p1");
-			createFile(
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}\n" +
-				"class Y {\n" +
-				"  void foo() {\n" +
-				"    new Y() {};\n" +
-				"  }\n" +
-				"}"
-			);
-			assertBindingCreated(new String[] {}, "Lp1/X~Y$64;");
-		} finally {
-			deleteFolder("/P/p1");
-		}
-	}
-
-	/*
-	 * Ensures that an anonymous type binding inside a local type can be retrieved using its key.
-	 */
-	public void test054() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    class Y {\n" +
-				"      void bar() {\n" +
-				"        new X() /*start*/{\n" +
-				"        }/*end*/;" +
-				"      }\n" +
-				"    }\n" +
-				"  }\n" +
-				"}",
-			}, 
-			"Lp1/X$89;"
-		);
-	}
-	
-	/*
-	 * Ensures that a parameterized generic method binding can be created using its key in ASTRequestor#createBindings.
-	 */
-	public void test055() throws CoreException {
-		assertBindingCreated(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  <U> void foo(U u) {\n" +
-				"  }\n" +
-				"  void bar() {\n" +
-				"    /*start*/new X<String>().foo(new X() {})/*end*/;\n" +
-				"  }\n" +
-				"}",
-			},
-			"Lp1/X<Ljava/lang/String;>;.foo<U:Ljava/lang/Object;>(TU;)V%<Lp1/X$101;>"
-		);
-	}
-
-	/*
-	 * Ensures that creating a binary member type binding returns the correct binding
-	 * (regression test for bug 86967 [1.5][dom] NPE in BindingKeyResolver for multi-level parameterized type binding)
-	 */
-	public void test056() throws CoreException, IOException {
-		try {
-			IJavaScriptProject project = createJavaProject("BinaryProject", new String[0], new String[] {"JCL15_LIB"}, "", "1.5");
-			addLibrary(project, "lib.jar", "src.zip", new String[] {
-				"/BinaryProject/p/X.js",
-				"package p;\n" +
-				"public class X<K, V> {\n" +
-				"  public class Y<K1, V1> {\n" +
-				"  }\n" +
-				"}"
-			}, "1.5");
-			ITypeBinding[] bindings = createTypeBindings(new String[0], new String[] {
-				"Lp/X<>.Y<Lp/X;:TK;Lp/X;:TV;>;"
-			}, project);
-			assertBindingsEqual(
-				"Lp/X<>.Y<Lp/X;:TK;Lp/X;:TV;>;",
-				bindings);
-		} finally {
-			deleteProject("BinaryProject");
-		}
-	}
-
-	/*
-	 * Ensures that creating a missing binary member type binding doesn't throw a NPE
-	 * (regression test for bug 86967 [1.5][dom] NPE in BindingKeyResolver for multi-level parameterized type binding)
-	 */
-	public void test057() throws CoreException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {"Lp/Missing$Member;"});
-		assertBindingsEqual(
-			"<null>",
-			bindings);
-	}
-	
-	/*
-	 * Ensures that a type parameter binding can be created using its key in batch creation.
-	 * (regression test for bug 87050 ASTParser#createASTs(..) cannot resolve method type parameter binding from key)
-	 */
-	public void test058() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  </*start*/T/*end*/> void foo(T t) {\n" +
-				"  }" +
-				"}",
-			}, 
-			"Lp1/X;.foo<T:Ljava/lang/Object;>(TT;)V:TT;");
-	}
-	
-	/*
-	 * Ensures that a capture binding can be created using its key in batch creation.
-	 */
-	public void test059() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" + 
-				"    Object foo(X<?> list) {\n" + 
-				"       return /*start*/list.get()/*end*/;\n" + 
-				"    }\n" + 
-				"    T get() {\n" + 
-				"    	return null;\n" + 
-				"    }\n" + 
-				"}",
-			}, 
-			"Lp1/X;&!Lp1/X;*77;"
-		);
-	}
-
-	/*
-	 * Ensures that a capture binding can be created using its key in batch creation.
-	 */
-	public void test060() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/xy/Cap.js",
-				"package xy;\n" + 
-				"import java.util.Vector;\n" + 
-				"public class Cap {\n" + 
-				"	{\n" + 
-				"		Vector<?> v= null;\n" + 
-				"		/*start*/v.get(0)/*end*/;\n" + 
-				"	}\n" + 
-				"}",
-				"/P/java/util/Vector.js",
-				"package java.util;\n" +
-				"public class Vector<T> {\n" +
-				"  public T get(int i) {\n" +
-				"    return null;\n" +
-				"  }\n" +
-				"}"
-			}, 
-			"Lxy/Cap;&!Ljava/util/Vector;*82;"
-		);
-	}
-
-	/*
-	 * Ensures that a generic constructor binding can be created using its key in batch creation.
-	 */
-	public void test061() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" + 
-				"    /*start*/<T> X() {\n" + 
-				"    }/*end*/\n" + 
-				"}",
-			}, 
-			"Lp1/X;.<T:Ljava/lang/Object;>()V"
-		);
-	}
-	
-	/*
-	 * Ensures that an array binding whose leaf type is a type variable binding can be created using its key in batch creation.
-	 * (regression test for bug 94206 CCE in BindingKeyResolver when restoring array type of method type parameter)
-	 */
-	public void test062() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" + 
-				"  <T> /*start*/T[]/*end*/ foo(T[] a) {\n" + 
-				"    return null;\n" +
-				"  }\n" + 
-				"}",
-			}, 
-			"[Lp1/X;.foo<T:Ljava/lang/Object;>([TT;)[TT;:TT;"
-		);
-	}
-	
-	/*
-	 * Ensures that a raw method binding can be created using its key in batch creation.
-	 * (regression test for bug 87749 different IMethodBindings of generic method have equal getKey())
-	 */
-	public void test063() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" + 
-				"	public static <T extends Y<? super T>> void foo(Z<T> z) {\n" + 
-				"    }\n" + 
-				"    /**\n" + 
-				"     * @see #foo(Z)\n" + 
-				"     */\n" + 
-				"    void bar() {\n" + 
-				"        /*start*/foo(new W())/*end*/;\n" + 
-				"    }\n" + 
-				"}\n" + 
-				"class Y<T> {\n" + 
-				"}\n" + 
-				"class Z<T> {\n" + 
-				"}\n" + 
-				"class W<T> extends Z<T> {\n" + 
-				"}",
-			}, 
-			"Lp1/X;.foo<T:Lp1/Y<-TT;>;>(Lp1/Z<TT;>;)V%<>"
-		);
-	}
-	
-	/*
-	 * Ensures that a parameterized type binding with a capture binding in its arguments can be created using its key in batch creation.
-	 * (regression test for bug 94092 ASTParser#createASTs(..) restores wrong bindings from capture keys)
-	 */
-	public void test064() throws CoreException {
-		assertRequestedBindingsFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"/*start1*/public class X {\n" + 
-				"	Object o= null;\n" + 
-				"	Y<?> field;\n" + 
-				"	void foo() {\n" + 
-				"		/*start2*/o = field/*end2*/;\n" + 
-				"	}\n" + 
-				"}/*end1*/\n",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y<T> {\n" + 
-				"}",
-			}, 
-			new String[] {
-				"Lp1/X;",
-				"Lp1/X;&Lp1/Y<!Lp1/Y;*83;>;",
-			}
-		);
-	}
-
-	/*
-	 * Ensures that a parameterized type binding with a type variable of the current's method in its arguments can be created using its key in batch creation.
-	 * (regression test for bug 97902 NPE on Open Declaration on reference to generic type)
-	 */
-	public void test065() throws CoreException {
-		assertRequestedBindingFound(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" + 
-				"  <T> void foo(/*start*/Y<T>/*end*/ y) {\n" + 
-				"  }\n" + 
-				"}\n" + 
-				"class Y<E> {\n" + 
-				"}",
-			}, 
-			"Lp1/X~Y<Lp1/X;:1TT;>;"
-		);
-	}
-
-	/*
-	 * Ensures that the compilation with a owner is used instead of a primary working copy when looking up a type.
-	 * (regression test for bug 97542 ASTParser#createASTs does not correctly resolve bindings in working copies)
-	 */
-	public void test066() throws CoreException {
-		IJavaScriptUnit primaryWorkingCopy = null;
-		IJavaScriptUnit ownedWorkingcopy = null;
-		try {
-			// primary working copy with no method foo()
-			primaryWorkingCopy = getCompilationUnit("/P/p1/X.js");
-			primaryWorkingCopy.becomeWorkingCopy(null/*no progress*/);
-			primaryWorkingCopy.getBuffer().setContents(
-				"package p1;\n" +
-				"public class X {\n" +
-				"}"
-			);
-			primaryWorkingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-			
-			// working copy for the test's owner with a method foo()
-			ownedWorkingcopy = getWorkingCopy(
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {}\n" +
-				"}",
-				this.owner,
-				false/*don't compute problems*/
-			);
-			
-			// create bindings
-			assertRequestedBindingFound(
-				new String[] {
-					"/P/p1/Y.js",
-					"package p1;\n" +
-					"public class Y {\n" + 
-					"  void bar() {\n" +
-					"    /*start*/new X().foo()/*end*/;\n" +
-					"}",
-				}, 
-				"Lp1/X;.foo()V"
-			);
-		} finally {
-			if (primaryWorkingCopy != null)
-				primaryWorkingCopy.discardWorkingCopy();
-			if (ownedWorkingcopy != null)
-				ownedWorkingcopy.discardWorkingCopy();
-		}
-	}
-	
-	/*
-	 * Ensures that the declaring class of a member parameterized type binding with a raw enclosing type is correct
-	 */
-	public void test067() throws CoreException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<K, V> {\n" +
-				"  public class Y<K1, V1> {\n" +
-				"  }\n" +
-				"  /*start*/Y<K, V>/*end*/ field;\n" +
-				"}"
-			}, 
-			new String[] {"Lp1/X$Y<Lp1/X;:TK;Lp1/X;:TV;>;"}
-		);
-		assertBindingEquals(
-			"Lp1/X<>;",
-			bindings.length == 0 ? null : bindings[0].getDeclaringClass()
-		);
-	}
-
-	/*
-	 * Ensures that a raw member type can be created using its key in batch creation.
-	 */
-	public void test068() throws CoreException, IOException {
-		try {
-			IJavaScriptProject project = createJavaProject("P1", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-			addLibrary(project, "lib.jar", "src.zip", new String[] {
-				"/P1/p/X.js",
-				"package p;\n" +
-				"public class X<K, V> {\n" +
-				"  public static class Member<K1, V1> {\n" +
-				"  }\n" +
-				"}",
-				"/P1/p/Y.js",
-				"package p;\n" +
-				"public class Y {\n" +
-				"  void foo(X.Member x) {\n" +
-				"  }\n" +
-				"}",
-			}, "1.5");
-			assertRequestedBindingFound(
-				new String[] {
-					"/P1/p1/Z.js",
-					"package p1;\n" +
-					"public class Z extends p.Y {\n" +
-					"  /*start*/p.X.Member/*end*/ field;\n" +
-					"}"
-				}, 
-				"Lp/X$Member<>;"
-			);
-		} finally {
-			deleteProject("P1");
-		}
-	}
-	
-	/*
-	 * Ensures that requesting a CU needing a constant in a previously processed CU doesn't throw an NPE
-	 * (regression test for bug 111822 DOMParser.createASTs() NPE at FieldReference.getConstantFor(FieldReference.java:408))
-	 */
-	public void test069() throws CoreException {
-		this.workingCopies = createWorkingCopies(new String[] {
-			"/P/pkg/RefAnnoAndClassWithAnno.js",
-			"package pkg;\n" +
-			"public class RefMyAnnoAndClassWithAnno {\n" + 
-			"	final Class anno = MyAnno.class;\n" + 
-			"	final Class withAnno = ClassWithAnnotation.class;\n" + 
-			"}",
-			"/P/pkg/MyAnno.js",
-			"package pkg;\n" +
-			"public @interface MyAnno {\n" + 
-			"	public enum EnumColor{\n" + 
-			"		BLUE, RED, WHITE;\n" + 
-			"	}\n" + 
-			"	EnumColor aEnum();\n" + 
-			"}",
-			"/P/pkg/ClassWithAnnotation.js",
-			"package pkg;\n" +
-			"import pkg.MyAnno.EnumColor;\n" + 
-			"@MyAnno(aEnum = EnumColor.BLUE)\n" + 
-			"public class ClassWithAnnotation {}"
-		});
-		String key = BindingKey.createTypeBindingKey("pkg.RefMyAnnoAndClassWithAnno");
-		BindingResolver resolver = new BindingResolver(new MarkerInfo[0]);
-		resolveASTs(new IJavaScriptUnit[0],  new String[] {key}, resolver, getJavaProject("P"), this.owner);
-		assertStringsEqual(
-			"Unexpected bindings",
-			"Lpkg/RefAnnoAndClassWithAnno~RefMyAnnoAndClassWithAnno;\n",
-			resolver.getFoundKeys());
-	}
-
-	/*
-	 * Ensures that unrequested compilation units are not resolved
-	 * (regression test for bug 114935 ASTParser.createASTs parses more CUs then required)
-	 */
-	public void test070() throws CoreException {
-		MarkerInfo[] markerInfos = createMarkerInfos(new String[] {
-			"/P/p1/X.js",
-			"package p1;\n" +
-			"public class X extends /*start*/Y/*end*/ {\n" +
-			"}",
-			"/P/p1/Y.js",
-			"package p1;\n" +
-			"public class Y {\n" +
-			"  static final int CONST = 2 + 3;\n" +
-			"}",
-		});
-		this.workingCopies = createWorkingCopies(markerInfos, this.owner);
-		TestASTRequestor requestor = new TestASTRequestor();
-		resolveASTs(new IJavaScriptUnit[] {this.workingCopies[0]}, requestor);
-		
-		// get the binding for Y
-		Type y = (Type) findNode((JavaScriptUnit) requestor.asts.get(0), markerInfos[0]);
-		ITypeBinding yBinding = y.resolveBinding();
-		
-		// ensure that the fields for Y are not resolved
-		assertBindingsEqual("", yBinding.getDeclaredFields());
-	}
-
-	/*
-	 * Ensures that unrequested compilation units are not resolved
-	 * (regression test for bug 117018 IVariableBinding#getConstantValue() could be lazy resolved)
-	 */
-	public void test071() throws CoreException {
-		final MarkerInfo[] markerInfos = createMarkerInfos(new String[] {
-			"/P/p1/X.js",
-			"package p1;\n" +
-			"public class X extends /*start*/Y/*end*/ {\n" +
-			"}",
-			"/P/p1/Y.js",
-			"package p1;\n" +
-			"public class Y {\n" +
-			"  static final int CONST = 2 + 3;\n" +
-			"}",
-		});
-		this.workingCopies = createWorkingCopies(markerInfos, this.owner);
-		class Requestor extends TestASTRequestor {
-			Object constantValue = null;
-			public void acceptAST(IJavaScriptUnit source, JavaScriptUnit ast) {
-				super.acceptAST(source, ast);
-				Type y = (Type) findNode(ast, markerInfos[0]);
-				ITypeBinding typeBinding = y.resolveBinding();
-				IVariableBinding fieldBinding = typeBinding.getDeclaredFields()[0];
-				this.constantValue = fieldBinding.getConstantValue();
-			}
-		}
-		Requestor requestor = new Requestor();
-		resolveASTs(new IJavaScriptUnit[] {this.workingCopies[0]}, requestor);
-		
-		assertEquals("Unexpected constant value", new Integer(5), requestor.constantValue);
-	}
-	
-	/*
-	 * Ensures that the declaring method of a local variable binding retrieved using its key 
-	 * is not null
-	 * (regression test for bug 129804 Local variable bindings from ASTParser#createASTs(.., String[], .., ..) have no declaring method)
-	 */
-	public void _test072() throws CoreException {
-		IVariableBinding[] bindings = createVariableBindings(
-			new String[] {
-				"/P/X.js",
-				"public class X {\n" + 
-				"    void m() {\n" + 
-				"        Object o;\n" + 
-				"    }\n" + 
-				"}"
-			},
-			new String[] {
-				"LX;.m()V#o"
-			}
-		);
-		assertBindingEquals(
-			"LX;.m()V",
-			bindings[0].getDeclaringMethod());
-	}
-}
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
deleted file mode 100644
index b4426d0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/BindingsCollectorVisitor.java
+++ /dev/null
@@ -1,429 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.HashMap;
-import java.util.HashSet;
-
-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.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.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
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-class BindingsCollectorVisitor extends ASTVisitor {
-
-	private HashMap hashMap;
-	private HashSet set;
-	
-	BindingsCollectorVisitor() {
-		// visit Javadoc.tags() as well
-		super(true);
-		this.hashMap = new HashMap();
-		this.set = new HashSet();
-	}
-	
-	private void collectBindings(
-		ASTNode node,
-		IBinding binding) {
-		if (binding != null) {
-			hashMap.put(node, binding);
-		} else {
-			set.add(node);
-		}
-	}
- 
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(AnonymousClassDeclaration)
-	 */
-	public void endVisit(AnonymousClassDeclaration node) {
-		ITypeBinding typeBinding = node.resolveBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ArrayAccess)
-	 */
-	public void endVisit(ArrayAccess node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ArrayCreation)
-	 */
-	public void endVisit(ArrayCreation node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ArrayInitializer)
-	 */
-	public void endVisit(ArrayInitializer node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ArrayType)
-	 */
-	public void endVisit(ArrayType node) {
-		ITypeBinding typeBinding = node.resolveBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(Assignment)
-	 */
-	public void endVisit(Assignment node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(BooleanLiteral)
-	 */
-	public void endVisit(BooleanLiteral node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(CharacterLiteral)
-	 */
-	public void endVisit(CharacterLiteral node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ClassInstanceCreation)
-	 */
-	public void endVisit(ClassInstanceCreation node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ConditionalExpression)
-	 */
-	public void endVisit(ConditionalExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ConstructorInvocation)
-	 */
-	public void endVisit(ConstructorInvocation node) {
-		IFunctionBinding methodBinding = node.resolveConstructorBinding();
-		collectBindings(node, methodBinding);
-	}
- 
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(FieldAccess)
-	 */
-	public void endVisit(FieldAccess node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-	
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ImportDeclaration)
-	 */
-	public void endVisit(ImportDeclaration node) {
-		IBinding binding = node.resolveBinding();
-		collectBindings(node, binding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(InfixExpression)
-	 */
-	public void endVisit(InfixExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(InstanceofExpression)
-	 */
-	public void endVisit(InstanceofExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see ASTVisitor#endVisit(MemberRef)
-	 * @since 3.0
-	 */
-	public void endVisit(MemberRef node) {
-		IBinding binding = node.resolveBinding();
-		collectBindings(node, binding);
-	}
-
-	public void endVisit(ListExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(FunctionDeclaration)
-	 */
-	public void endVisit(FunctionDeclaration node) {
-		IFunctionBinding methodBinding = node.resolveBinding();
-		collectBindings(node, methodBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(FunctionInvocation)
-	 */
-	public void endVisit(FunctionInvocation node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see ASTVisitor#endVisit(FunctionRef )
-	 * @since 3.0
-	 */
-	public void endVisit(FunctionRef node) {
-		IBinding binding = node.resolveBinding();
-		collectBindings(node, binding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(NullLiteral)
-	 */
-	public void endVisit(NullLiteral node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(NumberLiteral)
-	 */
-	public void endVisit(NumberLiteral node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(PackageDeclaration)
-	 */
-	public void endVisit(PackageDeclaration node) {
-		IPackageBinding packageBinding = node.resolveBinding();
-		collectBindings(node, packageBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ParenthesizedExpression)
-	 */
-	public void endVisit(ParenthesizedExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(PostfixExpression)
-	 */
-	public void endVisit(PostfixExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(PrefixExpression)
-	 */
-	public void endVisit(PrefixExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(PrimitiveType)
-	 */
-	public void endVisit(PrimitiveType node) {
-		ITypeBinding typeBinding = node.resolveBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(QualifiedName)
-	 */
-	public void endVisit(QualifiedName node) {
-		IBinding binding = node.resolveBinding();
-		collectBindings(node, binding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SimpleName)
-	 */
-	public void endVisit(SimpleName node) {
-		IBinding binding = node.resolveBinding();
-		collectBindings(node, binding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SimpleType)
-	 */
-	public void endVisit(SimpleType node) {
-		ITypeBinding typeBinding = node.resolveBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SingleVariableDeclaration)
-	 */
-	public void endVisit(SingleVariableDeclaration node) {
-		IVariableBinding variableBinding = node.resolveBinding();
-		collectBindings(node, variableBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(StringLiteral)
-	 */
-	public void endVisit(StringLiteral node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SuperConstructorInvocation)
-	 */
-	public void endVisit(SuperConstructorInvocation node) {
-		IFunctionBinding methodBinding = node.resolveConstructorBinding();
-		collectBindings(node, methodBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SuperFieldAccess)
-	 */
-	public void endVisit(SuperFieldAccess node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(SuperMethodInvocation)
-	 */
-	public void endVisit(SuperMethodInvocation node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(ThisExpression)
-	 */
-	public void endVisit(ThisExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(TypeDeclaration)
-	 */
-	public void endVisit(TypeDeclaration node) {
-		ITypeBinding typeBinding = node.resolveBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(TypeLiteral)
-	 */
-	public void endVisit(TypeLiteral node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(VariableDeclarationExpression)
-	 */
-	public void endVisit(VariableDeclarationExpression node) {
-		ITypeBinding typeBinding = node.resolveTypeBinding();
-		collectBindings(node, typeBinding);
-	}
-
-	/**
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#endVisit(VariableDeclarationFragment)
-	 */
-	public void endVisit(VariableDeclarationFragment node) {
-		IVariableBinding variableBinding = node.resolveBinding();
-		collectBindings(node, variableBinding);
-	}
-
-	/**
-	 * Returns the hashMap.
-	 * @return HashMap
-	 */
-	public HashMap getBindingsMap() {
-		return hashMap;
-	}
-
-	/**
-	 * Returns the set.
-	 * @return HashSet
-	 */
-	public HashSet getUnresolvedNodesSet() {
-		return set;
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/CompatibilityRulesTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/CompatibilityRulesTests.java
deleted file mode 100644
index bd91f13..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/CompatibilityRulesTests.java
+++ /dev/null
@@ -1,787 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import 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.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-import org.eclipse.wst.jsdt.core.dom.ITypeBinding;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-
-import junit.framework.Test;
-
-public class CompatibilityRulesTests extends AbstractASTTests {
-	
-	public CompatibilityRulesTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(CompatibilityRulesTests.class);
-	}
-	
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-//		TESTS_PREFIX =  "testBug86380";
-//		TESTS_NAMES = new String[] { "test032" };
-//		TESTS_NUMBERS = new int[] { 83230 };
-//		TESTS_RANGE = new int[] { 83304, -1 };
-		}
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		createJavaProject("P", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-	}
-	
-	public void tearDownSuite() throws Exception {
-		deleteProject("P");
-		super.tearDownSuite();
-	}
-	
-	/*
-	 * Ensures that a subtype is subtype compatible with its super type
-	 */
-	public void test001() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should be subtype compatible with Y", bindings[1].isSubTypeCompatible(bindings[0]));
-	}
-	
-	/*
-	 * Ensures that a type is subtype compatible with itself
-	 */
-	public void test002() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-			});	
-		assertTrue("X should be subtype compatible with itself", bindings[0].isSubTypeCompatible(bindings[0]));
-	}
-	
-	/*
-	 * Ensures that a supertype is not subtype compatible with its subtype
-	 */
-	public void test003() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should not be subtype compatible with Y", !bindings[0].isSubTypeCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a type is not subtype compatible with an unrelated type.
-	 */
-	public void test004() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should not be subtype compatible with Y", !bindings[0].isSubTypeCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that the int base type is not subtype compatible with the long base type
-	 */
-	public void test005() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {
-				"I",
-				"J"
-			});	
-		assertTrue("int should not be subtype compatible with long", !bindings[0].isSubTypeCompatible(bindings[1]));
-	}
-
-	/*
-	 * Ensures that the int base type is not subtype compatible with the java.lang.Object type
-	 */
-	public void test006() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {
-				"I",
-				"Ljava/lang/Object;"
-			});	
-		assertTrue("int should not be subtype compatible with Object", !bindings[0].isSubTypeCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a subtype is assignment compatible with its super type
-	 */
-	public void test007() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should be assignment compatible with Y", bindings[1].isAssignmentCompatible(bindings[0]));
-	}
-	
-	/*
-	 * Ensures that a type is assignment compatible with itself
-	 */
-	public void test008() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-			});	
-		assertTrue("X should be assignment compatible with itself", bindings[0].isAssignmentCompatible(bindings[0]));
-	}
-	
-	/*
-	 * Ensures that a supertype is not assignment compatible with its subtype
-	 */
-	public void test009() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should not be assignment compatible with Y", !bindings[0].isAssignmentCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a type is not assigment compatible with an unrelated type.
-	 */
-	public void test010() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should not be assigment compatible with Y", !bindings[0].isAssignmentCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that the int base type is assignment compatible with the long base type
-	 */
-	public void test011() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {
-				"I",
-				"J"
-			});	
-		assertTrue("int should be assignment compatible with long", bindings[0].isAssignmentCompatible(bindings[1]));
-	}
-
-	/*
-	 * Ensures that the int base type is not assignment compatible with the java.lang.Object type in 1.4 mode.
-	 */
-	public void test012() throws CoreException {
-		try {
-			IJavaScriptProject project = createJavaProject("P14", new String[] {""}, new String[] {"JCL_LIB"}, "", "1.4");
-			ITypeBinding[] bindings = createTypeBindings(
-				new String[] {},
-				new String[] {
-					"I",
-					"Ljava/lang/Object;"
-				},
-				project);	
-			assertTrue("int should not be assignment compatible with Object", !bindings[0].isAssignmentCompatible(bindings[1]));
-		} finally {
-			deleteProject("P14");
-		}
-	}
-	
-	/*
-	 * Ensures that a subtype is cast compatible with its super type
-	 */
-	public void test013() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should be cast compatible with Y", bindings[1].isCastCompatible(bindings[0]));
-	}
-	
-	/*
-	 * Ensures that a type is cast compatible with itself
-	 */
-	public void test014() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-			});	
-		assertTrue("X should be cast compatible with itself", bindings[0].isCastCompatible(bindings[0]));
-	}
-	
-	/*
-	 * Ensures that a supertype is cast compatible with its subtype
-	 */
-	public void test015() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should be cast compatible with Y", bindings[0].isCastCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a type is not cast compatible with an unrelated type.
-	 */
-	public void test016() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;",
-				"Lp1/Y;"
-			});	
-		assertTrue("X should not be cast compatible with Y", !bindings[0].isCastCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that the int base type is cast compatible with the long base type
-	 */
-	public void test017() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {
-				"I",
-				"J"
-			});	
-		assertTrue("int should be cast compatible with long", bindings[0].isCastCompatible(bindings[1]));
-	}
-
-	/*
-	 * Ensures that the int base type is not cast compatible with the java.lang.Object type
-	 */
-	public void test018() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {
-				"I",
-				"Ljava/lang/Object;"
-			});	
-		assertTrue("int should not be cast compatible with Object", !bindings[0].isCastCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a method in a subtype overrides the corresponding method in the super type.
-	 */
-	public void test019() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/Y;.foo()V",
-				"Lp1/X;.foo()V"
-			});	
-		assertTrue("Y#foo() should override X#foo()", bindings[0].overrides(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a method in a super type doesn't override the corresponding method in a subtype.
-	 */
-	public void test020() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;.foo()V",
-				"Lp1/Y;.foo()V"
-			});	
-		assertTrue("X#foo() should not override Y#foo()", !bindings[0].overrides(bindings[1]));
-	}
-
-	/*
-	 * Ensures that a method doesn't override the corresponding method in an unrelated type.
-	 */
-	public void test021() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;.foo()V",
-				"Lp1/Y;.foo()V"
-			});	
-		assertTrue("X#foo() should not override Y#foo()", !bindings[0].overrides(bindings[1]));
-	}
-
-	/*
-	 * Ensures that IFunctionBinding#ovverides(IFunctionBinding) doesn't throw a NullPointerException if
-	 * the method was not built in a batch.
-	 * (regression test for bug 79635 NPE when asking an IFunctionBinding whether it overrides itself)
-	 */
-	public void test022() throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			workingCopy = getWorkingCopy("/P/p1/X.js", true/*compute problems to get bindings*/);
-			ASTNode node = buildAST(
-				"package p1;\n" +
-				"public class X {\n" +
-				"  /*start*/void foo() {\n" +
-				"  }/*end*/\n" +
-				"}",
-				workingCopy);
-			IFunctionBinding methodBinding = ((FunctionDeclaration) node).resolveBinding();
-			assertTrue("X#foo() should not override itself", !methodBinding.overrides(methodBinding));
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-		}
-	}
-
-	/*
-	 * Ensures that a base type is assignment compatible with its wrapper type
-	 * (regression test for bug 80455 [5.0] ITypeBinding.canAssign not aware of type boxing)
-	 */
-	public void test023() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {
-				"/P/java/lang/Integer.js",
-				"package java.lang;\n" +
-				"public class Integer {\n" +
-				"}",
-			},
-			new String[] {
-				"I",
-				"Ljava/lang/Integer;",
-			});	
-		assertTrue("int should be assignment compatible with Integer", bindings[0].isAssignmentCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a base type is assignment compatible with Object
-	 */
-	public void test024() throws JavaScriptModelException {
-		ITypeBinding[] bindings = createTypeBindings(
-			new String[] {},
-			new String[] {
-				"I",
-				"Ljava/lang/Object;",
-			});	
-		assertTrue("int should be assignment compatible with Object", bindings[0].isAssignmentCompatible(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a method is subsignature of itself.
-	 */
-	public void test025() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;.foo()V"
-			});	
-		assertTrue("X#foo() should be a subsignature of X#foo()", bindings[0].isSubsignature(bindings[0]));
-	}
-	
-	/*
-	 * Ensures that a method is subsignature of its super method.
-	 */
-	public void test026() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  String foo(Object o) {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"  String foo(Object o) {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;.foo(Ljava/lang/Object;)Ljava/lang/String;",
-				"Lp1/Y;.foo(Ljava/lang/Object;)Ljava/lang/String;",
-			});	
-		assertTrue("Y#foo(Object) should be a subsignature of X#foo(Object)", bindings[1].isSubsignature(bindings[0]));
-	}
-		
-	/*
-	 * Ensures that a method is subsignature of its super generic method.
-	 */
-	public void test027() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T>  {\n" +
-				"  Z<T> foo(Z<T> o) {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"  Z foo(Z o) {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Z.js",
-				"package p1;\n" +
-				"public class Z<T> {\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;.foo(Lp1/Z<TT;>;)Lp1/Z<TT;>;",
-				"Lp1/Y;.foo(Lp1/Z;)Lp1/Z;",
-			});	
-		assertTrue("Y#foo(Z) should be a subsignature of X#foo(Z<T>)", bindings[1].isSubsignature(bindings[0]));
-	}
-		
-	/*
-	 * Ensures that a method is not the subsignature of an unrelated method.
-	 */
-	public void test028() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"  void bar() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;.foo()V",
-				"Lp1/Y;.bar()V",
-			});	
-		assertTrue("Y#bar() should not be a subsignature of X#foo()", !bindings[1].isSubsignature(bindings[0]));
-	}
-		
-	/*
-	 * Ensures that a method in a subtype doesn't override the a method with same parameters but with different name in the super type.
-	 */
-	public void test029() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"  void bar() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/Y;.bar()V",
-				"Lp1/X;.foo()V"
-			});	
-		assertTrue("Y#bar() should not override X#foo()", !bindings[0].overrides(bindings[1]));
-	}
-
-	/*
-	 * Ensures that a method in a subtype overrides a method in the super parameterized type.
-	 * (regression test for bug 99608 IFunctionBinding#overrides returns false on overridden method)
-	 */
-	public void test030() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X<T> {\n" +
-				"  void foo(T t) {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X<String> {\n" +
-				"  void foo(String s) {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/Y;.foo(Ljava/lang/String;)V",
-				"Lp1/X;.foo(TT;)V"
-			});	
-		assertTrue("Y#foo(String) should override X#foo(T)", bindings[0].overrides(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a method with the same parameter types but with different type parameters is not a subsignature of its super method.
-	 * (regression test for bug 107110 IFunctionBinding.isSubsignature not yet correctly implemented)
-	 */
-	public void test031() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}\n" +
-				"class Y extends X {\n" +
-				"  <T> void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/X;.foo()V",
-				"Lp1/Y;.foo<T:Ljava/lang/Object;>()V"
-			});	
-		assertFalse("Y#foo() should not be a subsignature of X#foo()", bindings[1].isSubsignature(bindings[0]));
-	}
-	
-	/*
-	 * Ensures that a method in a subtype overrides the corresponding method in the super type
-	 * even if the two methods have different return types.
-	 * (regression test for bug 105808 [1.5][dom] FunctionBinding#overrides(..) should not consider return types)
-	 */
-	public void test032() throws CoreException {
-		try {
-			IJavaScriptProject project = createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, "", "1.4");
-			IFunctionBinding[] bindings = createMethodBindings(
-				new String[] {
-					"/P/p1/X.js",
-					"package p1;\n" +
-					"public class X {\n" +
-					"  Object foo() {\n" +
-					"  }\n" +
-					"}",
-					"/P/p1/Y.js",
-					"package p1;\n" +
-					"public class Y extends X {\n" +
-					"  String foo() {\n" +
-					"  }\n" +
-					"}",
-				},
-				new String[] {
-					"Lp1/Y;.foo()Ljava/lang/String;",
-					"Lp1/X;.foo()Ljava/lang/Object;"
-				},
-				project);	
-			assertTrue("Y#foo() should override X#foo()", bindings[0].overrides(bindings[1]));
-		} finally {
-			deleteProject("P2");
-		}
-	}
-	
-	/*
-	 * Ensures that a method in a subtype doesn't override the corresponding private method in the super type.
-	 * (regression test for bug 132191 IFunctionBinding.overrides(IFunctionBinding) returns true even if the given argument is private.)
-	 */
-	public void test033() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  private void foo() {\n" +
-				"  }\n" +
-				"}",
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y extends X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp1/Y;.foo()V",
-				"Lp1/X;.foo()V"
-			});	
-		assertTrue("Y#foo() should not override X#foo()", !bindings[0].overrides(bindings[1]));
-	}
-	
-	/*
-	 * Ensures that a method in a subtype doesn't override the corresponding default method in the super type in a different package.
-	 * (regression test for bug 132191 IFunctionBinding.overrides(IFunctionBinding) returns true even if the given argument is private.)
-	 */
-	public void test034() throws JavaScriptModelException {
-		IFunctionBinding[] bindings = createMethodBindings(
-			new String[] {
-				"/P/p1/X.js",
-				"package p1;\n" +
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-				"/P/p2/Y.js",
-				"package p2;\n" +
-				"public class Y extends p1.X {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}",
-			},
-			new String[] {
-				"Lp2/Y;.foo()V",
-				"Lp1/X;.foo()V"
-			});	
-		assertTrue("Y#foo() should not override X#foo()", !bindings[0].overrides(bindings[1]));
-	}
-	
-}
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
deleted file mode 100644
index 34650fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ConverterTestSetup.java
+++ /dev/null
@@ -1,564 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-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.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.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.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.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.VariableDeclarationExpression;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-public abstract class ConverterTestSetup extends AbstractASTTests {
-
-	/** @deprecated Using deprecated code */
-	public static final int AST_INTERNAL_JLS2 = AST.JLS2;
-	
-	protected AST ast;
-	static List TEST_SUITES = null;
-	static boolean PROJECT_SETUP = false;
-
-	protected ConverterTestSetup(String name) {
-		super(name);
-	}
-
-	protected IPath getConverterJCLPath() {
-		return getConverterJCLPath(""); //$NON-NLS-1$
-	}
-
-	protected IPath getConverterJCLPath(String compliance) {
-		return new Path(new SystemLibraryLocation().getLibraryPath("system.js"));
-	}
-
-	protected IPath getConverterJCLRootSourcePath() {
-		return new Path(""); //$NON-NLS-1$
-	}
-
-	/**
-	 * Reset the jar placeholder and delete project.
-	 */
-	public void tearDownSuite() throws Exception {
-		ast = null;
-		if (TEST_SUITES == null) {
-			this.deleteProject("Converter"); //$NON-NLS-1$
-		} else {
-			TEST_SUITES.remove(getClass());
-			if (TEST_SUITES.size() == 0) {
-				this.deleteProject("Converter"); //$NON-NLS-1$
-			}
-		}
-		super.tearDown();
-	}	
-
-	public void setUpJCLClasspathVariables() throws JavaScriptModelException, IOException {
-		if (JavaScriptCore.getIncludepathVariable("CONVERTER_JCL_LIB") == null) {
-			JavaScriptCore.setIncludepathVariables(
-				new String[] {"CONVERTER_JCL_LIB", "CONVERTER_JCL_SRCROOT"},
-				new IPath[] {getConverterJCLPath(), getConverterJCLRootSourcePath()},
-				null);
-		} 		
-	}
-	
-	/**
-	 * Create project and set the jar placeholder.
-	 */
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-
-		if (!PROJECT_SETUP) {
-			setUpJavaProject("Converter"); //$NON-NLS-1$
-			waitUntilIndexesReady(); // needed to find secondary types
-			PROJECT_SETUP = true;
-		}
-	}
-
-	public ASTNode runConversion(IJavaScriptUnit unit, boolean resolveBindings) {
-		return runConversion(AST_INTERNAL_JLS2, unit, resolveBindings);
-	}
-
-	public ASTNode runConversion(IJavaScriptUnit unit, int position, boolean resolveBindings) {
-		return runConversion(AST_INTERNAL_JLS2, unit, position, resolveBindings);
-	}
-
-	public ASTNode runConversion(IClassFile classFile, int position, boolean resolveBindings) {
-		return runConversion(AST_INTERNAL_JLS2, classFile, position, resolveBindings);
-	}
-	
-	public ASTNode runConversion(char[] source, String unitName, IJavaScriptProject project) {
-		return runConversion(AST_INTERNAL_JLS2, source, unitName, project);
-	}
-
-	public ASTNode runConversion(char[] source, String unitName, IJavaScriptProject project, boolean resolveBindings) {
-		return runConversion(AST_INTERNAL_JLS2, source, unitName, project, resolveBindings);
-	}
-	
-	public ASTNode runConversion(int astLevel, IJavaScriptUnit unit, boolean resolveBindings) {
-		return runConversion(astLevel, unit, resolveBindings, false);
-	}
-	
-	public ASTNode runConversion(int astLevel, IJavaScriptUnit unit, boolean resolveBindings, boolean statementsRecovery) {
-		ASTParser parser = ASTParser.newParser(astLevel);
-		parser.setSource(unit);
-		parser.setResolveBindings(resolveBindings);
-		parser.setStatementsRecovery(statementsRecovery);
-		return parser.createAST(null);
-	}
-
-	class NullBindingVerifier extends ASTVisitor {
-
-		public void endVisit(ArrayAccess node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(ArrayCreation node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(ArrayInitializer node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(Assignment node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(BooleanLiteral node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(CharacterLiteral node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(ClassInstanceCreation node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(ConditionalExpression node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(FieldAccess node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(InfixExpression node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(InstanceofExpression 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(NullLiteral node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(NumberLiteral node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(ParenthesizedExpression node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(PostfixExpression node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(PrefixExpression 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);
-		}
-
-		public void endVisit(SuperFieldAccess node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(SuperMethodInvocation node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(ThisExpression node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(TypeLiteral node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(VariableDeclarationExpression node) {
-			assertNotNull(node+" should have a binding", node.resolveTypeBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(AnonymousClassDeclaration node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(ArrayType 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);
-		}
-
-		public void endVisit(MemberRef node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(FunctionDeclaration node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(FunctionRef node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(PackageDeclaration node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(PrimitiveType node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(QualifiedName node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(QualifiedType node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(SimpleName node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(SimpleType node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(SingleVariableDeclaration node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(TypeDeclaration node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(TypeDeclarationStatement node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-		public void endVisit(VariableDeclarationFragment node) {
-			assertNotNull(node+" should have a binding", node.resolveBinding());
-			super.endVisit(node);
-		}
-
-	}
-	public ASTNode runJLS3Conversion(IJavaScriptUnit unit, boolean resolveBindings, boolean checkJLS2) {
-
-		// Create parser
-		ASTParser parser;
-		if (checkJLS2) {
-			parser = ASTParser.newParser(AST_INTERNAL_JLS2);
-			parser.setSource(unit);
-			parser.setResolveBindings(resolveBindings);
-			parser.createAST(null);
-		}
-		
-		parser = ASTParser.newParser(AST.JLS3);
-		parser.setSource(unit);
-		parser.setResolveBindings(resolveBindings);
-		
-		// Parse compilation unit
-		ASTNode result = parser.createAST(null);
-		
-		// Verify we get a compilation unit node and that binding are correct
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		if (resolveBindings && compilationUnit.getProblems().length == 0) {
-			compilationUnit.accept(new NullBindingVerifier());
-		}
-		return result;
-	}
-	
-	public ASTNode runConversion(int astLevel, IJavaScriptUnit unit, int position, boolean resolveBindings) {
-
-		// Create parser
-		ASTParser parser = ASTParser.newParser(astLevel);
-		parser.setSource(unit);
-		parser.setFocalPosition(position);
-		parser.setResolveBindings(resolveBindings);
-
-		// Parse compilation unit
-		ASTNode result = parser.createAST(null);
-		
-		// Verify we get a compilation unit node and that binding are correct
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		if (resolveBindings && compilationUnit.getProblems().length == 0) {
-			compilationUnit.accept(new NullBindingVerifier());
-		}
-		return result;
-	}
-
-	public ASTNode runConversion(int astLevel, IClassFile classFile, int position, boolean resolveBindings) {
-
-		// Create parser
-		ASTParser parser = ASTParser.newParser(astLevel);
-		parser.setSource(classFile);
-		parser.setFocalPosition(position);
-		parser.setResolveBindings(resolveBindings);
-
-		// Parse compilation unit
-		ASTNode result = parser.createAST(null);
-		
-		// Verify we get a compilation unit node and that binding are correct
-		assertTrue("Not a compilation unit", result.getNodeType() == ASTNode.JAVASCRIPT_UNIT);
-		JavaScriptUnit compilationUnit = (JavaScriptUnit) result;
-		if (resolveBindings && compilationUnit.getProblems().length == 0) {
-			compilationUnit.accept(new NullBindingVerifier());
-		}
-		return result;
-	}
-	
-	public ASTNode runConversion(int astLevel, char[] source, String unitName, IJavaScriptProject project) {
-		return runConversion(astLevel, source, unitName, project, false);
-	}
-	
-	public ASTNode runConversion(int astLevel, char[] source, String unitName, IJavaScriptProject project, boolean resolveBindings) {
-		return runConversion(astLevel, source, unitName, project, null, resolveBindings);
-	}
-
-	public ASTNode runConversion(int astLevel, char[] source, String unitName, IJavaScriptProject project, Map options, boolean resolveBindings) {
-		ASTParser parser = ASTParser.newParser(astLevel);
-		parser.setSource(source);
-		parser.setUnitName(unitName);
-		parser.setProject(project);
-		if (options != null) {
-			parser.setCompilerOptions(options);
-		}
-		parser.setResolveBindings(resolveBindings);
-		return parser.createAST(null);
-	}
-	
-	public ASTNode runConversion(int astLevel, char[] source, String unitName, IJavaScriptProject project, Map options) {
-		return runConversion(astLevel, source, unitName, project, options, false);
-	}
-	
-	public ASTNode runConversion(char[] source, String unitName, IJavaScriptProject project, Map options, boolean resolveBindings) {
-		return runConversion(AST_INTERNAL_JLS2, source, unitName, project, options, resolveBindings);
-	}
-	public ASTNode runConversion(char[] source, String unitName, IJavaScriptProject project, Map options) {
-		return runConversion(AST_INTERNAL_JLS2, source, unitName, project, options);
-	}	
-
-	protected ASTNode getASTNodeToCompare(org.eclipse.wst.jsdt.core.dom.JavaScriptUnit unit) {
-		ExpressionStatement statement = (ExpressionStatement) getASTNode(unit, 0, 0, 0);
-		return (ASTNode) ((FunctionInvocation) statement.getExpression()).arguments().get(0);
-	}
-
-	protected ASTNode getASTNode(org.eclipse.wst.jsdt.core.dom.JavaScriptUnit unit, int typeIndex, int bodyIndex, int statementIndex) {
-		BodyDeclaration bodyDeclaration = (BodyDeclaration) getASTNode(unit, typeIndex, bodyIndex);
-		if (bodyDeclaration instanceof FunctionDeclaration) {
-			FunctionDeclaration methodDeclaration = (FunctionDeclaration) bodyDeclaration;
-			Block block = methodDeclaration.getBody();
-			return (ASTNode) block.statements().get(statementIndex);
-		} else if (bodyDeclaration instanceof TypeDeclaration) {
-			TypeDeclaration typeDeclaration = (TypeDeclaration) bodyDeclaration;
-			return (ASTNode) typeDeclaration.bodyDeclarations().get(statementIndex);
-		} else if (bodyDeclaration instanceof Initializer) {
-			Initializer initializer = (Initializer) bodyDeclaration;
-			Block block = initializer.getBody();
-			return (ASTNode) block.statements().get(statementIndex);
-		}
-		return null;
-	}
-
-	protected ASTNode getASTNode(org.eclipse.wst.jsdt.core.dom.JavaScriptUnit unit, int typeIndex, int bodyIndex) {
-		return (ASTNode) unit.statements().get(bodyIndex);
-	}
-
-	protected ASTNode getASTNode(org.eclipse.wst.jsdt.core.dom.JavaScriptUnit unit, int typeIndex) {
-		return (ASTNode) unit.types().get(typeIndex);
-	}
-		
-	protected void checkSourceRange(ASTNode node, String expectedContents, String source) {
-		assertNotNull("The node is null", node); //$NON-NLS-1$
-		assertTrue("The node(" + node.getClass() + ").getLength() == 0", node.getLength() != 0); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("The node.getStartPosition() == -1", node.getStartPosition() != -1); //$NON-NLS-1$
-		int length = node.getLength();
-		int start = node.getStartPosition();
-		String actualContentsString = source.substring(start, start + length);
-		assertSourceEquals("Unexpected source", Util.convertToIndependantLineDelimiter(expectedContents), Util.convertToIndependantLineDelimiter(actualContentsString));
-	}
-
-	protected void checkSourceRange(ASTNode node, String expectedContents, char[] source) {
-		assertNotNull("The node is null", node); //$NON-NLS-1$
-		assertTrue("The node(" + node.getClass() + ").getLength() == 0", node.getLength() != 0); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("The node.getStartPosition() == -1", node.getStartPosition() != -1); //$NON-NLS-1$
-		int length = node.getLength();
-		int start = node.getStartPosition();
-		char[] actualContents = new char[length];
-		System.arraycopy(source, start, actualContents, 0, length);
-		String actualContentsString = new String(actualContents);
-		assertSourceEquals("Unexpected source", Util.convertToIndependantLineDelimiter(expectedContents), Util.convertToIndependantLineDelimiter(actualContentsString));
-	}
-		
-	protected boolean isMalformed(ASTNode node) {
-		return (node.getFlags() & ASTNode.MALFORMED) != 0;
-	}
-	
-	protected boolean isRecovered(ASTNode node) {
-		return (node.getFlags() & ASTNode.RECOVERED) != 0;
-	}
-
-	protected boolean isOriginal(ASTNode node) {
-		return (node.getFlags() & ASTNode.ORIGINAL) != 0;
-	}
-	
-	protected void assertProblemsSize(JavaScriptUnit compilationUnit, int expectedSize) {
-		assertProblemsSize(compilationUnit, expectedSize, "");
-	}
-	protected void assertProblemsSize(JavaScriptUnit compilationUnit, int expectedSize, String expectedOutput) {
-		final IProblem[] problems = compilationUnit.getProblems();
-		final int length = problems.length;
-		if (length != expectedSize) {
-			checkProblemMessages(expectedOutput, problems, length);
-			assertEquals("Wrong size", expectedSize, length);
-		}
-		checkProblemMessages(expectedOutput, problems, length);
-	}
-
-	private void checkProblemMessages(String expectedOutput, final IProblem[] problems, final int length) {
-		if (length != 0) {
-			if (expectedOutput != null) {
-				StringBuffer buffer = new StringBuffer();
-				for (int i = 0; i < length; i++) {
-					buffer.append(problems[i].getMessage());
-					if (i < length - 1) {
-						buffer.append('\n');
-					}
-				}
-				String actualOutput = String.valueOf(buffer);
-				expectedOutput = Util.convertToIndependantLineDelimiter(expectedOutput);
-				actualOutput = Util.convertToIndependantLineDelimiter(actualOutput);
-				if (!expectedOutput.equals(actualOutput)) {
-					System.out.println(Util.displayString(actualOutput));
-					assertEquals("different output", expectedOutput, actualOutput);
-				}
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/GetKeyVisitor.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/GetKeyVisitor.java
deleted file mode 100644
index 650a0d7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/GetKeyVisitor.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import junit.framework.Assert;
-import org.eclipse.wst.jsdt.core.dom.ASTVisitor;
-import org.eclipse.wst.jsdt.core.dom.ClassInstanceCreation;
-import org.eclipse.wst.jsdt.core.dom.IFunctionBinding;
-
-class GetKeyVisitor extends ASTVisitor {
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.dom.ASTVisitor#visit(org.eclipse.wst.jsdt.core.dom.SimpleName)
-	 */
-	public boolean visit(ClassInstanceCreation node) {
-		IFunctionBinding constructorBinding = node.resolveConstructorBinding();
-		Assert.assertNotNull(constructorBinding);
-		Assert.assertNotNull(constructorBinding.getKey());
-		return super.visit(node);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ProfilingASTConvertionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ProfilingASTConvertionTest.java
deleted file mode 100644
index 00ecd2b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/ProfilingASTConvertionTest.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.io.File;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-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.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.TypeDeclaration;
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests;
-
-public class ProfilingASTConvertionTest extends AbstractJavaModelTests {
-	
-	static class Result implements Comparable {
-		long length;
-		long time;
-		String unitName;
-		Result(String unitName, long time, long length) {
-			this.time = time;
-			this.unitName = unitName;
-			this.length = length / 1024;
-		}
-		/* (non-Javadoc)
-		 * @see java.lang.Comparable#compareTo(java.lang.Object)
-		 */
-		public int compareTo(Object o) {
-			Result result = (Result) o;
-			if (this.time < result.time) {
-				return -1;
-			} else if (this.time == result.time) {
-				return 0;
-			}
-			return 1;
-		}
-	}
-	private static final int INCREMENTS = 100;
-	
-	private static boolean RESOLVE_BINDINGS = false;
-
-	public static Test suite() {
-		return buildModelTestSuite(ProfilingASTConvertionTest.class);
-	}
-
-	IJavaScriptUnit[] compilationUnits;
-
-	public ProfilingASTConvertionTest(String name) {
-		super(name);
-	}
-	
-	public String display(int value, int numberOfFiguresForRange) {
-		int numberOfFigures = value == 0 ? 1 : (int) (Math.log(value)/ Math.log(10));
-		if ((value % 10) == 0) {
-			numberOfFigures = (int) (Math.log(value + 1)/ Math.log(10));
-		}
-		StringBuffer buffer = new StringBuffer();
-		while(numberOfFigures < numberOfFiguresForRange) {
-			buffer.append(" ");
-			numberOfFigures++;
-		}
-		buffer.append(value);
-		return String.valueOf(buffer);
-	}
-
-	/**
-	 * @param array
-	 * @param increment
-	 */
-	private void printDistribution(long[] array, int increment) {
-		int bound = increment;
-		int counter = 0;
-		int totalCounter = 0;
-		int length = array.length;
-		long max = array[length - 1];
-		int numberOfFiguresForRange = (int) (Math.log(max)/ Math.log(10));
-		if ((max % increment) == 0) {
-			numberOfFiguresForRange = (int) (Math.log(max + 1)/ Math.log(10));
-		}
-		int numberOfFiguresForCounter = (int) (Math.log(length)/ Math.log(10));
-		if ((length % increment) == 0) {
-			numberOfFiguresForCounter = (int) (Math.log(length + 1)/ Math.log(10));
-		}
-		for (int i = 0; i < length; i++) {
-			if (array[i] < bound) {
-				counter++;
-			} else {
-				i--;
-				totalCounter += counter;
-				printRange(counter, bound, increment, totalCounter, length, numberOfFiguresForRange, numberOfFiguresForCounter);
-				counter = 0;
-				bound += increment;
-			}
-		}
-		totalCounter += counter;
-		printRange(counter, bound, increment, totalCounter, length, numberOfFiguresForRange, numberOfFiguresForCounter);
-	}
-		
-	/**
-	 * @param counter
-	 * @param bound
-	 */
-	private void printRange(int counter, int bound, int increment, int totalCounter, int length, int numberOfFiguresForRange, int numberOfFiguresForCounters) {
-		if (counter != 0) {
-			StringBuffer buffer = new StringBuffer();
-			int low = bound - increment;
-			if (low != 0) {
-				low++;
-			}
-			DecimalFormat format = new DecimalFormat("###.##");
-			buffer
-				.append(display(low, numberOfFiguresForRange))
-				.append(" - ")
-				.append(display(bound, numberOfFiguresForRange))
-				.append(" : ")
-				.append(display(counter, numberOfFiguresForCounters))
-				.append("\t\t")
-				.append(format.format(100.0 * ((double) totalCounter / length)));
-			System.out.println(String.valueOf(buffer));
-		}
-	}
-	
-	/**
-	 * @param totalTime
-	 * @param length
-	 * @param times
-	 * @param arrayList
-	 * @deprecated using deprecated code 
-	 */
-	private void reportResults(int apiLevel, long totalTime, int length, long[] times, ArrayList arrayList) {
-		System.out.println("===============================================================================");
-		System.out.print("================================ ");
-		switch(apiLevel) {
-			case AST.JLS2 :
-				System.out.print("JLS2");
-				break;
-			case AST.JLS3 :
-				System.out.print("JLS3");
-				break;
-		}
-		System.out.print(" BINDING IS ");
-		System.out.print(RESOLVE_BINDINGS ? "ON  " : "OFF ");
-		System.out.println("==========================");
-		System.out.println("===============================================================================");
-		Arrays.sort(times);
-		System.out.println("===================================== TIMES ===================================");
-		System.out.println("Fastest = " + times[0] + "ms");
-		long maxTime = times[length - 1];
-		System.out.println("Slowest = " + maxTime + "ms");
-		System.out.println("Total = " + totalTime + "ms");
-		System.out.println("================================== DISTRIBUTION ===============================");
-		printDistribution(times, INCREMENTS);
-		System.out.println("================================= SORTED BY TIME ==============================");
-		Collections.sort(arrayList);
-		for (Iterator iterator = arrayList.iterator(); iterator.hasNext(); ) {
-			final Result next = (Result) iterator.next();
-			System.out.println(next.unitName + "(" + next.length + "KB) - " + next.time + "ms");
-		}
-		System.out.println("================================ SORTED BY LENGTH =============================");
-		Collections.sort(arrayList, new Comparator() {
-			/* (non-Javadoc)
-			 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-			 */
-			public int compare(Object o1, Object o2) {
-				Result r1 = (Result) o1;
-				Result r2 = (Result) o2;
-				if (r1.length < r2.length) {
-					return -1;
-				} else if (r1.length == r2.length) {
-					return 0;
-				}
-				return 1;
-			}
-		});
-		for (Iterator iterator = arrayList.iterator(); iterator.hasNext(); ) {
-			final Result next = (Result) iterator.next();
-			System.out.println(next.unitName + "(" + next.length + "KB) - " + next.time + "ms");
-		}
-	}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-
-		// ensure variables are set
-		if (JavaScriptCore.getIncludepathVariable("CONVERTER_JCL_LIB") == null) { //$NON-NLS-1$
-			setupExternalJCL("converterJclMin");
-			JavaScriptCore.setIncludepathVariables(
-				new String[] {"CONVERTER_JCL_LIB", "CONVERTER_JCL_SRC", "CONVERTER_JCL_SRCROOT"}, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				new Path[] {new Path(getExternalPath() + "converterJclMin.jar"), new Path(getExternalPath() + "converterJclMinsrc.zip"), new Path("")},
-				null);
-		}		
-		
-		IJavaScriptProject javaProject = setUpJavaProject("Compiler", "1.4"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertNotNull("No java project", javaProject);
-		IPackageFragment[] packageFragments = javaProject.getPackageFragments();
-		assertNotNull("No package fragments", packageFragments);
-		ArrayList collector = new ArrayList();
-		for (int i = 0, max = packageFragments.length; i < max; i++) {
-			IJavaScriptUnit[] units = packageFragments[i].getJavaScriptUnits();
-			if (units != null) {
-				for (int j = 0, max2 = units.length; j < max2; j++) {
-					collector.add(units[j]);
-				}
-			}
-		}
-		this.compilationUnits = new IJavaScriptUnit[collector.size()];
-		collector.toArray(this.compilationUnits);
-	}
-
-	public void test0000() throws JavaScriptModelException {
-		try {
-			RESOLVE_BINDINGS = true;
-			final int apiLevel = AST.JLS3;
-			ASTParser parser = ASTParser.newParser(apiLevel);
-			parser.setResolveBindings(RESOLVE_BINDINGS);
-			long totalTime = 0;
-			int length = this.compilationUnits.length;
-			long[] times = new long[length];
-			ArrayList arrayList = new ArrayList(length);
-			for (int i = 0; i < length; i++) {
-				parser.setSource(this.compilationUnits[i]);
-				parser.setResolveBindings(RESOLVE_BINDINGS);
-				long time = System.currentTimeMillis();
-				ASTNode node = parser.createAST(null);
-				times[i] = System.currentTimeMillis() - time;
-				totalTime += times[i];
-				assertNotNull("No node", node);
-				assertEquals("Wrong type", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-				JavaScriptUnit unit = (JavaScriptUnit) node;
-				assertEquals("Has problem", 0, unit.getProblems().length);
-				TypeDeclaration typeDeclaration = (TypeDeclaration) unit.types().get(0);
-				StringBuffer buffer = new StringBuffer();
-				buffer.append(unit.getPackage().getName()).append(".").append(typeDeclaration.getName());
-				IResource resource = this.compilationUnits[i].getResource();
-				if (resource instanceof IFile) {
-					IFile file = (IFile) resource;
-					File f = new File(file.getLocation().toOSString());
-					if (f.exists()) {
-						arrayList.add(new Result(String.valueOf(buffer), times[i], f.length()));
-					}
-				}
-			}
-		} finally {
-			RESOLVE_BINDINGS = false;
-		}
-	}
-	
-	public void test0001() throws JavaScriptModelException {
-		try {
-			RESOLVE_BINDINGS = true;
-			final int apiLevel = AST.JLS3;
-			ASTParser parser = ASTParser.newParser(apiLevel);
-			parser.setResolveBindings(RESOLVE_BINDINGS);
-			long totalTime = 0;
-			int length = this.compilationUnits.length;
-			long[] times = new long[length];
-			ArrayList arrayList = new ArrayList(length);
-			for (int i = 0; i < length; i++) {
-				parser.setSource(this.compilationUnits[i]);
-				parser.setResolveBindings(RESOLVE_BINDINGS);
-				long time = System.currentTimeMillis();
-				ASTNode node = parser.createAST(null);
-				times[i] = System.currentTimeMillis() - time;
-				totalTime += times[i];
-				assertNotNull("No node", node);
-				assertEquals("Wrong type", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-				JavaScriptUnit unit = (JavaScriptUnit) node;
-				assertEquals("Has problem", 0, unit.getProblems().length);
-				TypeDeclaration typeDeclaration = (TypeDeclaration) unit.types().get(0);
-				StringBuffer buffer = new StringBuffer();
-				buffer.append(unit.getPackage().getName()).append(".").append(typeDeclaration.getName());
-				IResource resource = this.compilationUnits[i].getResource();
-				if (resource instanceof IFile) {
-					IFile file = (IFile) resource;
-					File f = new File(file.getLocation().toOSString());
-					if (f.exists()) {
-						arrayList.add(new Result(String.valueOf(buffer), times[i], f.length()));
-					}
-				}
-			}
-			reportResults(apiLevel, totalTime, length, times, arrayList);
-		} finally {
-			RESOLVE_BINDINGS = false;
-		}
-	}
-
-	public void test0002() throws JavaScriptModelException {
-		try {
-			RESOLVE_BINDINGS = false;
-			final int apiLevel = AST.JLS3;
-			ASTParser parser = ASTParser.newParser(apiLevel);
-			parser.setResolveBindings(RESOLVE_BINDINGS);
-			long totalTime = 0;
-			int length = this.compilationUnits.length;
-			long[] times = new long[length];
-			ArrayList arrayList = new ArrayList(length);
-			for (int i = 0; i < length; i++) {
-				parser.setSource(this.compilationUnits[i]);
-				parser.setResolveBindings(RESOLVE_BINDINGS);
-				long time = System.currentTimeMillis();
-				ASTNode node = parser.createAST(null);
-				times[i] = System.currentTimeMillis() - time;
-				totalTime += times[i];
-				assertNotNull("No node", node);
-				assertEquals("Wrong type", ASTNode.JAVASCRIPT_UNIT, node.getNodeType());
-				JavaScriptUnit unit = (JavaScriptUnit) node;
-				assertEquals("Has problem", 0, unit.getProblems().length);
-				TypeDeclaration typeDeclaration = (TypeDeclaration) unit.types().get(0);
-				StringBuffer buffer = new StringBuffer();
-				buffer.append(unit.getPackage().getName()).append(".").append(typeDeclaration.getName());
-				IResource resource = this.compilationUnits[i].getResource();
-				if (resource instanceof IFile) {
-					IFile file = (IFile) resource;
-					File f = new File(file.getLocation().toOSString());
-					if (f.exists()) {
-						arrayList.add(new Result(String.valueOf(buffer), times[i], f.length()));
-					}
-				}
-			}
-			reportResults(apiLevel, totalTime, length, times, arrayList);
-		} finally {
-			RESOLVE_BINDINGS = false;
-		}
-	}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/RunAllTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/RunAllTests.java
deleted file mode 100644
index 2d7e91f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/RunAllTests.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.lang.reflect.*;
-
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class RunAllTests extends junit.framework.TestCase {
-public RunAllTests(String name) {
-	super(name);
-}
-public static Class[] getAllTestClasses() {
-	return new Class[] {
-		//org.eclipse.wst.jsdt.core.tests.dom.RunConverterTests.class,
-		org.eclipse.wst.jsdt.core.tests.dom.ASTTest.class,
-		org.eclipse.wst.jsdt.core.tests.dom.ASTVisitorTest.class,
-		//org.eclipse.wst.jsdt.core.tests.dom.ASTMatcherTest.class,
-		//org.eclipse.wst.jsdt.core.tests.dom.ASTStructuralPropertyTest.class,
-		org.eclipse.wst.jsdt.core.tests.dom.ASTParserTest.class,
-		//org.eclipse.wst.jsdt.core.tests.dom.ASTModelBridgeTests.class,
-		// org.eclipse.wst.jsdt.core.tests.dom.BatchASTCreationTests.class,
-		//org.eclipse.wst.jsdt.core.tests.dom.CompatibilityRulesTests.class,
-		org.eclipse.wst.jsdt.core.tests.rewrite.describing.ASTRewritingTest.class,
-		org.eclipse.wst.jsdt.core.tests.rewrite.modifying.ASTRewritingModifyingTest.class,
-		org.eclipse.wst.jsdt.core.tests.dom.ASTPositionsTest.class,
-	};
-}
-public static Test suite() {
-	TestSuite ts = new TestSuite(RunAllTests.class.getName());
-
-	Class[] testClasses = getAllTestClasses();
-	// Reset forgotten subsets of tests
-	TestCase.TESTS_PREFIX = null;
-	TestCase.TESTS_NAMES = null;
-	TestCase.TESTS_NUMBERS = null;
-	TestCase.TESTS_RANGE = null;
-	TestCase.RUN_ONLY_ID = null;
-
-	for (int i = 0; i < testClasses.length; i++) {
-		Class testClass = testClasses[i];
-
-		// call the suite() method and add the resulting suite to the suite
-		try {
-			Method suiteMethod = testClass.getDeclaredMethod("suite", new Class[0]); //$NON-NLS-1$
-			Test suite = (Test)suiteMethod.invoke(null, new Object[0]);
-			ts.addTest(suite);
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			e.getTargetException().printStackTrace();
-		} catch (NoSuchMethodException e) {
-			e.printStackTrace();
-		}
-	}
-	return ts;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/RunConverterTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/RunConverterTests.java
deleted file mode 100644
index af8f0ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/RunConverterTests.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.lang.reflect.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class RunConverterTests extends junit.framework.TestCase {
-public RunConverterTests(String name) {
-	super(name);
-}
-public static Class[] getAllTestClasses() {
-	return new Class[] {
-		ASTConverterTest.class,		
-		ASTConverterTest2.class,
-		ASTConverterJavadocTest.class,
-		ASTConverterAST3Test.class,
-		ASTConverterTestAST3_2.class,
-		ASTConverterBindingsTest.class,
-		ASTConverterRecoveryTest.class
-	};
-}
-public static Test suite() {
-	TestSuite ts = new TestSuite(RunConverterTests.class.getName());
-
-	ConverterTestSetup.TEST_SUITES = new ArrayList(Arrays.asList(getAllTestClasses()));
-	// Reset forgotten subsets of tests
-	TestCase.TESTS_PREFIX = null;
-	TestCase.TESTS_NAMES = null;
-	TestCase.TESTS_NUMBERS = null;
-	TestCase.TESTS_RANGE = null;
-	TestCase.RUN_ONLY_ID = null;
-
-	for (int i = 0, l=ConverterTestSetup.TEST_SUITES.size(); i < l; i++) {
-		Class testClass = (Class) ConverterTestSetup.TEST_SUITES.get(i);
-
-		// call the suite() method and add the resulting suite to the suite
-		try {
-			Method suiteMethod = testClass.getDeclaredMethod("suite", new Class[0]); //$NON-NLS-1$
-			Test suite = (Test)suiteMethod.invoke(null, new Object[0]);
-			ts.addTest(suite);
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			e.getTargetException().printStackTrace();
-		} catch (NoSuchMethodException e) {
-			e.printStackTrace();
-		}
-	}
-	return ts;
-}
-}
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
deleted file mode 100644
index 63e7bea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/dom/SampleASTs.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.dom;
-
-import java.util.ArrayList;
-import java.util.List;
-
-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.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.BooleanLiteral;
-import org.eclipse.wst.jsdt.core.dom.BreakStatement;
-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.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.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.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.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.ThisExpression;
-import org.eclipse.wst.jsdt.core.dom.ThrowStatement;
-import org.eclipse.wst.jsdt.core.dom.TryStatement;
-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.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;
-
-public class SampleASTs {
-	/**
-	 * Returns a subtree of sample of AST nodes. The sample includes
-	 * one of each kind (except for BlockComment and LineComment,
-     * which cannot be connected directly to a JavaScriptUnit),
-     * but otherwise does not make sense.
-	 */
-	public static ASTNode oneOfEach(AST target) {
-		JavaScriptUnit cu = target.newJavaScriptUnit();
-		PackageDeclaration pd = target.newPackageDeclaration();
-		cu.setPackage(pd);
-		
-		ImportDeclaration im = target.newImportDeclaration();
-		cu.imports().add(im);
-		
-		TypeDeclaration td = target.newTypeDeclaration();
-		cu.types().add(td);
-		JSdoc javadoc = target.newJSdoc();
-		td.setJavadoc(javadoc);
-		TagElement tg = target.newTagElement();
-		javadoc.tags().add(tg);
-		tg.fragments().add(target.newTextElement());
-		tg.fragments().add(target.newMemberRef());
-		FunctionRef mr = target.newFunctionRef();
-		tg.fragments().add(mr);
-		mr.parameters().add(target.newFunctionRefParameter());
-				
-		VariableDeclarationFragment variableDeclarationFragment = target.newVariableDeclarationFragment();
-		FieldDeclaration fd = 
-			target.newFieldDeclaration(variableDeclarationFragment);
-		td.bodyDeclarations().add(fd);	
-		
-		Initializer in = target.newInitializer();
-		td.bodyDeclarations().add(in);	
-
-		
-		FunctionDeclaration md = target.newFunctionDeclaration();
-		SingleVariableDeclaration singleVariableDeclaration = target.newSingleVariableDeclaration();
-		md.parameters().add(singleVariableDeclaration);
-		td.bodyDeclarations().add(md);
-		
-		SimpleName sn1 = target.newSimpleName("one"); //$NON-NLS-1$
-		SimpleName sn2 =target.newSimpleName("two"); //$NON-NLS-1$
-		QualifiedName qn = target.newQualifiedName(sn1, sn2);
-		
-		PrimitiveType pt = target.newPrimitiveType(PrimitiveType.INT);
-		ArrayType at = target.newArrayType(pt);
-		fd.setType(at);
-
-		if (target.apiLevel() >= AST.JLS3) {
-			SimpleType st = target.newSimpleType(qn);
-			QualifiedType qt = target.newQualifiedType(st, target.newSimpleName("x")); //$NON-NLS-1$
-		}
-		
-		Block b = target.newBlock();
-		md.setBody(b);
-		
-		// all statements (in alphabetic order of statement type)
-		Block block = target.newBlock();
-		b.statements().add(block);
-		BreakStatement breakStatement = target.newBreakStatement();
-		b.statements().add(breakStatement);
-		ContinueStatement continueStatement = target.newContinueStatement();
-		b.statements().add(continueStatement);
-		ConstructorInvocation constructorInvocation = target.newConstructorInvocation();
-		b.statements().add(constructorInvocation);
-		DoStatement doStatement = target.newDoStatement();
-		b.statements().add(doStatement);
-		EmptyStatement emptyStatement = target.newEmptyStatement();
-		b.statements().add(emptyStatement);
-		NullLiteral nullLiteral = target.newNullLiteral();
-		ExpressionStatement expressionStatement = target.newExpressionStatement(nullLiteral);
-		b.statements().add(expressionStatement);
-		ForStatement forStatement = target.newForStatement();
-		b.statements().add(forStatement);
-		if (target.apiLevel() >= AST.JLS3) {
-			EnhancedForStatement foreachStatement = target.newEnhancedForStatement();
-			b.statements().add(foreachStatement);
-		}
-		IfStatement ifStatement = target.newIfStatement();
-		b.statements().add(ifStatement);
-		LabeledStatement labeledStatement = target.newLabeledStatement();
-		b.statements().add(labeledStatement);
-		ReturnStatement returnStatement = target.newReturnStatement();
-		b.statements().add(returnStatement);
-		SuperConstructorInvocation superConstructorInvocation = target.newSuperConstructorInvocation();
-		b.statements().add(superConstructorInvocation);
-		SwitchStatement ss = target.newSwitchStatement();
-		SwitchCase switchCase = target.newSwitchCase();
-		ss.statements().add(switchCase);
-		b.statements().add(ss);
-		SwitchStatement switchStatement = target.newSwitchStatement();
-		b.statements().add(switchStatement);
-		SwitchCase switchCase2 = target.newSwitchCase();
-		b.statements().add(switchCase2);
-		ThrowStatement throwStatement = target.newThrowStatement();
-		b.statements().add(throwStatement);
-		TryStatement tr = target.newTryStatement();
-		CatchClause catchClause = target.newCatchClause();
-		tr.catchClauses().add(catchClause);
-		b.statements().add(tr);
-		
-		TypeDeclaration typeDeclaration = target.newTypeDeclaration();
-		TypeDeclarationStatement typeDeclarationStatement = target.newTypeDeclarationStatement(typeDeclaration);
-		b.statements().add(typeDeclarationStatement);
-		VariableDeclarationFragment variableDeclarationFragment2 = target.newVariableDeclarationFragment();
-		VariableDeclarationStatement variableDeclarationStatement = target.newVariableDeclarationStatement(variableDeclarationFragment2);
-		b.statements().add(variableDeclarationStatement);
-		WhileStatement whileStatement = target.newWhileStatement();
-		b.statements().add(whileStatement);
-
-		// all expressions (in alphabetic order of expressions type)
-		FunctionInvocation inv = target.newFunctionInvocation();
-		ExpressionStatement expressionStatement2 = target.newExpressionStatement(inv);
-		b.statements().add(expressionStatement2);
-		List z = inv.arguments();
-		ArrayAccess arrayAccess = target.newArrayAccess();
-		z.add(arrayAccess);
-		ArrayCreation arrayCreation = target.newArrayCreation();
-		z.add(arrayCreation);
-		ArrayInitializer arrayInitializer = target.newArrayInitializer();
-		z.add(arrayInitializer);
-		Assignment assignment = target.newAssignment();
-		z.add(assignment);
-		BooleanLiteral booleanLiteral = target.newBooleanLiteral(true);
-		z.add(booleanLiteral);
-		CharacterLiteral characterLiteral = target.newCharacterLiteral();
-		z.add(characterLiteral);
-		ClassInstanceCreation cic = target.newClassInstanceCreation();
-		AnonymousClassDeclaration anonymousClassDeclaration = target.newAnonymousClassDeclaration();
-		cic.setAnonymousClassDeclaration(anonymousClassDeclaration);
-		z.add(cic);
-		ConditionalExpression conditionalExpression = target.newConditionalExpression();
-		z.add(conditionalExpression);
-		FieldAccess fieldAccess = target.newFieldAccess();
-		z.add(fieldAccess);
-		InfixExpression infixExpression = target.newInfixExpression();
-		z.add(infixExpression);
-		InstanceofExpression instanceofExpression = target.newInstanceofExpression();
-		z.add(instanceofExpression);
-		FunctionInvocation methodInvocation = target.newFunctionInvocation();
-		z.add(methodInvocation);
-		Name name = target.newName(new String[]{"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
-		z.add(name);
-		NullLiteral nullLiteral2 = target.newNullLiteral();
-		z.add(nullLiteral2);
-		NumberLiteral numberLiteral = target.newNumberLiteral("1024"); //$NON-NLS-1$
-		z.add(numberLiteral);
-		ParenthesizedExpression parenthesizedExpression = target.newParenthesizedExpression();
-		z.add(parenthesizedExpression);
-		PostfixExpression postfixExpression = target.newPostfixExpression();
-		z.add(postfixExpression);
-		PrefixExpression prefixExpression = target.newPrefixExpression();
-		z.add(prefixExpression);
-		StringLiteral stringLiteral = target.newStringLiteral();
-		z.add(stringLiteral);
-		SuperFieldAccess superFieldAccess = target.newSuperFieldAccess();
-		z.add(superFieldAccess);
-		SuperMethodInvocation superMethodInvocation = target.newSuperMethodInvocation();
-		z.add(superMethodInvocation);
-		ThisExpression thisExpression = target.newThisExpression();
-		z.add(thisExpression);
-		TypeLiteral typeLiteral = target.newTypeLiteral();
-		z.add(typeLiteral);
-		VariableDeclarationFragment variableDeclarationFragment3 = target.newVariableDeclarationFragment();
-		VariableDeclarationExpression variableDeclarationExpression = target.newVariableDeclarationExpression(variableDeclarationFragment3);
-		z.add(variableDeclarationExpression);
-		
-
-		return cu;
-	}
-	
-	/**
-	 * Returns a flat list of sample nodes of each type.
-	 * The sample includes one of each kind, including
-	 * BlockComment and LineComment.
-	 */
-	public static List oneOfEachList(AST target) {
-		List result = new ArrayList(100);
-		for (int nodeType = 0; nodeType < 100; nodeType++) {
-			Class nodeClass = null;
-			try {
-				nodeClass = ASTNode.nodeClassForType(nodeType);
-			} catch (RuntimeException e) {
-				// oops - guess that's not valid
-			}
-			if (nodeClass != null) {
-				result.add(target.createInstance(nodeClass));
-			}
-		}
-		return result;
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/DecodeCodeFormatterPreferences.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/DecodeCodeFormatterPreferences.java
deleted file mode 100644
index 637666e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/DecodeCodeFormatterPreferences.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.formatter;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.LineNumberReader;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import com.ibm.icu.util.StringTokenizer;
-
-public class DecodeCodeFormatterPreferences extends DefaultHandler {
-	
-	private boolean record;
-	private Map entries;
-	private String profileName;
-
-	public static Map decodeCodeFormatterOptions(String fileName) {
-		try {
-			LineNumberReader reader = new LineNumberReader(new FileReader(fileName));
-			Map options = new HashMap();
-			String line;
-			while ((line = reader.readLine()) != null) {
-				if (line.startsWith("#")) {
-					continue;
-				}
-				StringTokenizer stringTokenizer = new StringTokenizer(line, "=");
-				options.put(stringTokenizer.nextElement(), stringTokenizer.nextElement());
-			}
-			reader.close();
-			return options;
-		} catch (IOException e) {
-			// ignore
-		}
-		return null;
-	}
-
-	public static Map decodeCodeFormatterOptions(String fileName, String profileName) {
-		try {
-			SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
-			final DecodeCodeFormatterPreferences preferences = new DecodeCodeFormatterPreferences(profileName);
-			saxParser.parse(new File(fileName), preferences);
-			return preferences.getEntries();
-		} catch (ParserConfigurationException e) {
-			e.printStackTrace();
-		} catch (SAXException e) {
-			e.printStackTrace();
-		} catch (FactoryConfigurationError e) {
-			e.printStackTrace();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	public static Map decodeCodeFormatterOptions(String zipFileName, String zipEntryName, String profileName) {
-		ZipFile zipFile = null;
-		BufferedInputStream inputStream = null;
-		try {
-			zipFile = new ZipFile(zipFileName);
-			ZipEntry zipEntry = zipFile.getEntry(zipEntryName);
-			if (zipEntry == null) {
-				return null;
-			}
-			inputStream = new BufferedInputStream(zipFile.getInputStream(zipEntry));
-			SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
-			final DecodeCodeFormatterPreferences preferences = new DecodeCodeFormatterPreferences(profileName);
-			saxParser.parse(inputStream, preferences);
-			return preferences.getEntries();
-		} catch (ParserConfigurationException e) {
-			e.printStackTrace();
-		} catch (SAXException e) {
-			e.printStackTrace();
-		} catch (FactoryConfigurationError e) {
-			e.printStackTrace();
-		} catch (IOException e) {
-			e.printStackTrace();
-		} finally {
-			try {
-				if (inputStream != null) {
-					inputStream.close();
-				}
-				if (zipFile != null) {
-					zipFile.close();
-				}
-			} catch (IOException e1) {
-				// Do nothing
-			}
-		}
-		return null;
-	}
-	
-	DecodeCodeFormatterPreferences(String profileName) {
-		this.profileName = profileName;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
-	 */
-	public void startElement(String uri, String localName, String qName,
-			Attributes attributes) throws SAXException {
-		
-		int attributesLength = attributes.getLength();
-		if ("profile".equals(qName)) {
-			for (int i = 0; i < attributesLength; i++) {
-				if ("name".equals(attributes.getQName(i)) && profileName.equals(attributes.getValue(i))) {
-					record = true;
-					entries = new HashMap();
-					break;
-				}
-			}
-		} else if ("setting".equals(qName) && record) {
-			if (attributesLength == 2) {
-				entries.put(attributes.getValue(0), attributes.getValue(1));
-			}
-		}
-	}
-	/* (non-Javadoc)
-	 * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public void endElement(String uri, String localName, String qName)
-			throws SAXException {
-		if ("profile".equals(qName) && record) {
-			record = false;
-		}
-	}
-	/**
-	 * @return Returns the entries.
-	 */
-	public Map getEntries() {
-		return entries;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/FormatterRegressionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/FormatterRegressionTests.java
deleted file mode 100644
index 24d9f37..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/FormatterRegressionTests.java
+++ /dev/null
@@ -1,9222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.formatter;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.formatter.CodeFormatter;
-import org.eclipse.wst.jsdt.core.formatter.DefaultCodeFormatterConstants;
-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.ToolFactory;
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.formatter.DefaultCodeFormatter;
-import org.eclipse.wst.jsdt.internal.formatter.DefaultCodeFormatterOptions;
-import org.eclipse.text.edits.TextEdit;
-
-public class FormatterRegressionTests extends AbstractJavaModelTests {
-		
-	public static final int UNKNOWN_KIND = 0;
-	public static final String IN = "_in";
-	public static final String OUT = "_out";
-	public static final boolean DEBUG = false;
-	private static final String LINE_SEPARATOR = System.getProperty("line.separator");
-	private long time;
-	
-	static {
-//		TESTS_NUMBERS = new int[] { 650 };
-//		TESTS_RANGE = new int[] { 650, -1 };
-	}
-	public static Test suite() {
-		return buildModelTestSuite(FormatterRegressionTests.class);
-	}
-
-	public FormatterRegressionTests(String name) {
-		super(name);
-	}
-	
-	/**
-	 * Returns the OS path to the directory that contains this plugin.
-	 */
-	protected String getPluginDirectoryPath() {
-		try {
-			URL platformURL = Platform.getBundle("org.eclipse.wst.jsdt.core.tests.model").getEntry("/");
-			return new File(FileLocator.toFileURL(platformURL).getFile()).getAbsolutePath();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	private String getResource(String packageName, String resourceName) {
-		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-		IResource resource = workspaceRoot.findMember(new Path("/Formatter/" + packageName + "/" + resourceName));
-		assertNotNull("No resource found", resource);
-		return resource.getLocation().toOSString();
-	}
-	
-	private String getZipEntryContents(String fileName, String zipEntryName) {
-		ZipFile zipFile = null;
-		BufferedInputStream inputStream  = null;
-		try {
-			zipFile = new ZipFile(fileName);
-			ZipEntry zipEntry = zipFile.getEntry(zipEntryName);
-			inputStream = new BufferedInputStream(zipFile.getInputStream(zipEntry));
-			return new String(org.eclipse.wst.jsdt.internal.compiler.util.Util.getInputStreamAsCharArray(inputStream, -1, null));
-		} catch (IOException e) {
-		} finally {
-			try {
-				if (inputStream != null) {
-					inputStream.close();
-				}
-				if (zipFile != null) {
-					zipFile.close();
-				}
-			} catch (IOException e1) {
-				// Do nothing
-			}
-		}
-		return null;
-	}
-	
-	public String getSourceWorkspacePath() {
-		return getPluginDirectoryPath() +  java.io.File.separator + "workspace";
-	}
-	
-	private String runFormatter(CodeFormatter codeFormatter, String source, int kind, int indentationLevel, int offset, int length, String lineSeparator) {
-//		long time = System.currentTimeMillis();
-		TextEdit edit = codeFormatter.format(kind, source, offset, length, indentationLevel, lineSeparator);//$NON-NLS-1$
-//		System.out.println((System.currentTimeMillis() - time) + " ms");
-		if (edit == null) return null;
-//		System.out.println(edit.getChildrenSize() + " edits");
-		String result = org.eclipse.wst.jsdt.internal.core.util.Util.editedString(source, edit);
-
-		if (length == source.length()) {
-//			time = System.currentTimeMillis();
-			edit = codeFormatter.format(kind, result, 0, result.length(), indentationLevel, lineSeparator);//$NON-NLS-1$
-//			System.out.println((System.currentTimeMillis() - time) + " ms");
-			if (edit == null) return null;
-//			assertEquals("Should not have edits", 0, edit.getChildren().length);
-			final String result2 = org.eclipse.wst.jsdt.internal.core.util.Util.editedString(result, edit);
-			if (!result.equals(result2)) {
-				assertSourceEquals("Different reformatting", Util.convertToIndependantLineDelimiter(result), Util.convertToIndependantLineDelimiter(result2));
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Create project and set the jar placeholder.
-	 */
-	public void setUpSuite() throws Exception {
-		// ensure autobuilding is turned off
-		IWorkspaceDescription description = getWorkspace().getDescription();
-		if (description.isAutoBuilding()) {
-			description.setAutoBuilding(false);
-			getWorkspace().setDescription(description);
-		}
-		setUpJavaProject("Formatter"); //$NON-NLS-1$
-		if (DEBUG) {
-			this.time = System.currentTimeMillis();
-		}
-	}	
-
-	/**
-	 * Reset the jar placeholder and delete project.
-	 */
-	public void tearDownSuite() throws Exception {
-		this.deleteProject("Formatter"); //$NON-NLS-1$
-		if (DEBUG) {
-			System.out.println("Time spent = " + (System.currentTimeMillis() - this.time));//$NON-NLS-1$
-		}
-		super.tearDown();
-	}	
-
-	private String getIn(String compilationUnitName) {
-		assertNotNull(compilationUnitName);
-		int dotIndex = compilationUnitName.indexOf('.');
-		assertTrue(dotIndex != -1);
-		return compilationUnitName.substring(0, dotIndex) + IN + compilationUnitName.substring(dotIndex);
-	}
-	
-	private String getOut(String compilationUnitName) {
-		assertNotNull(compilationUnitName);
-		int dotIndex = compilationUnitName.indexOf('.');
-		assertTrue(dotIndex != -1);
-		return compilationUnitName.substring(0, dotIndex) + OUT + compilationUnitName.substring(dotIndex);
-	}
-
-	private void assertLineEquals(String actualContents, String originalSource, String expectedContents, boolean checkNull) {
-		if (actualContents == null) {
-			assertTrue("actualContents is null", checkNull);
-			assertEquals(expectedContents, originalSource);
-			return;
-		}
-		assertSourceEquals("Different number of length", Util.convertToIndependantLineDelimiter(expectedContents), actualContents);
-	}
-
-	private void runTest(String packageName, String compilationUnitName) {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, packageName, compilationUnitName, CodeFormatter.K_JAVASCRIPT_UNIT, 0);
-	}
-	
-	private void runTest(CodeFormatter codeFormatter, String packageName, String compilationUnitName) {
-		runTest(codeFormatter, packageName, compilationUnitName, CodeFormatter.K_JAVASCRIPT_UNIT, 0);
-	}
-
-	private void runTest(String packageName, String compilationUnitName, int kind) {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, packageName, compilationUnitName, kind, 0);
-	}
-
-	private void runTest(CodeFormatter codeFormatter, String packageName, String compilationUnitName, int kind) {
-		runTest(codeFormatter, packageName, compilationUnitName, kind, 0, false, 0, -1);
-	}
-
-	private void runTest(CodeFormatter codeFormatter, String packageName, String compilationUnitName, int kind, boolean checkNull) {
-		runTest(codeFormatter, packageName, compilationUnitName, kind, 0, checkNull, 0, -1);
-	}
-
-	private void runTest(CodeFormatter codeFormatter, String packageName, String compilationUnitName, int kind, int indentationLevel) {
-		runTest(codeFormatter, packageName, compilationUnitName, kind, indentationLevel, false, 0, -1);
-	}
-	private void runTest(CodeFormatter codeFormatter, String packageName, String compilationUnitName, int kind, int indentationLevel, boolean checkNull, int offset, int length) {
-		runTest(codeFormatter, packageName, compilationUnitName, kind, indentationLevel, checkNull, offset, length, null);
-	}
-	
-	private void runTest(String input, String output, CodeFormatter codeFormatter, int kind, int indentationLevel, boolean checkNull, int offset, int length, String lineSeparator) {
-		String result;
-		if (length == -1) {
-			result = runFormatter(codeFormatter, input, kind, indentationLevel, offset, input.length(), lineSeparator);
-		} else {
-			result = runFormatter(codeFormatter, input, kind, indentationLevel, offset, length, lineSeparator);
-		}
-		assertLineEquals(result, input, output, checkNull);
-	}
-
-	private void runTest(String source, String expectedResult, CodeFormatter codeFormatter, int kind, int indentationLevel, boolean checkNull, int offset, int length) {
-		String result;
-		if (length == -1) {
-			result = runFormatter(codeFormatter, source, kind, indentationLevel, offset, source.length(), null);
-		} else {
-			result = runFormatter(codeFormatter, source, kind, indentationLevel, offset, length, null);
-		}
-		assertLineEquals(result, source, expectedResult, checkNull);
-	}
-	
-	private void runTest(CodeFormatter codeFormatter, String packageName, String compilationUnitName, int kind, int indentationLevel, boolean checkNull, int offset, int length, String lineSeparator) {
-		try {
-			IJavaScriptUnit sourceUnit = getCompilationUnit("Formatter" , "", packageName, getIn(compilationUnitName)); //$NON-NLS-1$ //$NON-NLS-2$
-			String s = sourceUnit.getSource();
-			assertNotNull(s);
-			IJavaScriptUnit outputUnit = getCompilationUnit("Formatter" , "", packageName, getOut(compilationUnitName)); //$NON-NLS-1$ //$NON-NLS-2$
-			assertNotNull(outputUnit);
-			String result;
-			if (length == -1) {
-				result = runFormatter(codeFormatter, s, kind, indentationLevel, offset, s.length(), lineSeparator);
-			} else {
-				result = runFormatter(codeFormatter, s, kind, indentationLevel, offset, length, lineSeparator);
-			}
-			assertLineEquals(result, s, outputUnit.getSource(), checkNull);
-		} catch (JavaScriptModelException e) {
-			e.printStackTrace();
-			assertTrue(false);
-		}
-	}
-
-	String getSource(ASTNode astNode, char[] source) {
-		String result = new String(CharOperation.subarray(source, astNode.getStartPosition() + 1, astNode.getStartPosition() + astNode.getLength() - 1));
-		if (result.endsWith("\\n")) {
-			return result.substring(0, result.length() - 2) + LINE_SEPARATOR;
-		}
-		return result;
-	}
-
-	public void test000() {
-		runTest("test002", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	   }
-
-	
-	public void test001() {
-		runTest("test001", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	public void test002() {
-		runTest("test002", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-//	public void test003() {
-//		runTest("test003", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-//	public void test004() {
-//		runTest("test004", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//	public void test005() {
-//		runTest("test005", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-//	public void test006() {
-//		runTest("test006", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//
-//	public void test007() {
-//		runTest("test007", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-//	}
-//	
-//	public void test008() {
-//		runTest("test008", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-//	}
-
-	public void test009() {
-		runTest("test009", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test010() {
-		runTest("test010", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test011() {
-		runTest("test011", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test012() {
-		runTest("test012", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test013() {
-		runTest("test013", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test014() {
-		runTest("test014", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test015() {
-		runTest("test015", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test016() {
-		runTest("test016", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test017() {
-		runTest("test017", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test018() {
-		runTest("test018", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test019() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test019", "A_1.js");//$NON-NLS-1$ //$NON-NLS-2$
-
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test019", "A_2.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test020() {
-		runTest("test020", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test021() {
-		runTest("test021", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test022() {
-		runTest("test022", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test023() {
-		runTest("test023", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test024() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test024", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test025() {
-		runTest("test025", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test026() {
-		runTest("test026", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test027() {
-		runTest("test027", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test028() {
-		runTest("test028", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test029() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.compact_else_if = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter,"test029", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test030() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test030", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test031() {
-		runTest("test031", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test032() {
-		runTest("test032", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test033() {
-		runTest("test033", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test034() {
-		runTest("test034", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test035() {
-		runTest("test035", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test036() {
-		runTest("test036", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test037() {
-		runTest("test037", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test038() {
-		runTest("test038", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test039() {
-		runTest("test039", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test040() {
-		runTest("test040", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test041() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test041", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test042() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_space_before_opening_brace_in_block = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test042", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test043() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test043", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test044() {
-		runTest("test044", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test045() {
-		runTest("test045", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test046() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_assignment_operator = false;
-		preferences.insert_space_before_assignment_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test046", "A.js", CodeFormatter.K_EXPRESSION);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test047() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_assignment_operator = true;
-		preferences.insert_space_before_assignment_operator = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test047", "A.js", CodeFormatter.K_STATEMENTS, 2);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test048() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_assignment_operator = true;
-		preferences.insert_space_before_assignment_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test048", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test049() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_assignment_operator = true;
-		preferences.insert_space_before_assignment_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test049", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test050() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_binary_operator = false;
-		preferences.insert_space_before_unary_operator = false;
-		preferences.insert_space_after_unary_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test050", "A.js", CodeFormatter.K_EXPRESSION);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test051() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_assignment_operator = true;
-		preferences.insert_space_before_assignment_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test051", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test052() {
-		runTest("test052", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test053() {
-		runTest("test053", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test054() {
-		runTest("test054", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test055() {
-		runTest("test055", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test056() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_else_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test056", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test057() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		assertEquals(false, DefaultCodeFormatterConstants.getForceWrapping((String)options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER)));
-		assertEquals(DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER)));
-		assertEquals(DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER)));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.align_type_members_on_columns = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test057", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test058() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		assertEquals(false, DefaultCodeFormatterConstants.getForceWrapping((String)options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER)));
-		assertEquals(DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER)));
-		assertEquals(DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER)));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.align_type_members_on_columns = true;
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.blank_lines_between_import_groups = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test058", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test059() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.align_type_members_on_columns = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test059", "Parser.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test060() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.align_type_members_on_columns = false;
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.blank_lines_between_import_groups = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		//long time = System.currentTimeMillis();
-		runTest(codeFormatter, "test060", "Parser.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}		
-
-	public void test061() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.blank_lines_between_import_groups = 0;
-		preferences.align_type_members_on_columns = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test061", "Parser.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test062() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_assignment_operator = true;
-		preferences.insert_space_before_assignment_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test062", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test063() {
-		runTest("test063", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test064() {
-		runTest("test064", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// Line break inside an array initializer (line comment)	
-	public void test065() {
-		runTest("test065", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test066() {
-		runTest("test066", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test067() {
-		runTest("test067", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	// bug 3181
-	public void test068() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ALLOCATION_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test068", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 3327
-	public void test069() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-		preferences.blank_lines_before_method = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test069", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// 5691
-	public void test070() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test070", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test071() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.indent_body_declarations_compare_to_type_header = false;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.align_type_members_on_columns = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test071", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// bug 7224
-	public void test072() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test072", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 7439
-	public void test073() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test073", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 12321
-	public void test074() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.insert_new_line_before_catch_in_try_statement = true;
-		preferences.insert_new_line_before_else_in_if_statement = true;
-		preferences.insert_new_line_before_finally_in_try_statement = true;
-		preferences.insert_new_line_before_while_in_do_statement = true;
-		preferences.keep_simple_if_on_one_line = false;
-		preferences.keep_then_statement_on_same_line = false;
-		preferences.keep_else_statement_on_same_line = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test074", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 14659
-	public void test075() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.page_width = 57;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test075", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 16231
-	public void test076() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test076", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 16233
-	public void test077() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test077", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 17349
-	public void test078() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test078", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 19811
-	public void test079() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test079", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 19811
-	public void test080() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.continuation_indentation = 2;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test080", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 19811
-	public void test081() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test081", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 19999
-	public void test082() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 2;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test082", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// bug 20721
-	public void test083() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test083", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 21943
-	public void test084() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.insert_space_before_opening_paren_in_if = false;
-		preferences.insert_space_before_opening_paren_in_for = false;
-		preferences.insert_space_before_opening_paren_in_while = false;
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test084", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 21943
-	public void test085() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.insert_space_before_opening_paren_in_if = true;
-		preferences.insert_space_before_opening_paren_in_for = true;
-		preferences.insert_space_before_opening_paren_in_while = true;
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test085", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 22313
-	public void test086() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_before_catch_in_try_statement = true;
-		preferences.insert_new_line_before_else_in_if_statement = true;
-		preferences.insert_new_line_before_finally_in_try_statement = true;
-		preferences.insert_new_line_before_while_in_do_statement = true;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.insert_space_before_binary_operator = false;
-		preferences.insert_space_after_binary_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test086", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 23144
-	public void test087() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.keep_simple_if_on_one_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test087", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 23144
-	public void test088() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.keep_simple_if_on_one_line = false;
-		preferences.keep_guardian_clause_on_one_line = false;
-		preferences.keep_then_statement_on_same_line = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test088", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// bug 24200
-	public void test089() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_opening_paren_in_parenthesized_expression = true;
-		preferences.insert_space_before_closing_paren_in_parenthesized_expression = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test089", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 24200
-	public void test090() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_opening_bracket_in_array_reference = true;
-		preferences.insert_space_before_closing_bracket_in_array_reference = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test090", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 25559
-	public void test091() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_assignment_operator = false;
-		preferences.insert_space_before_assignment_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test091", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 25559
-	public void test092() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_binary_operator = false;
-		preferences.insert_space_before_binary_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test092", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 25559
-	public void test093() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_closing_paren_in_cast = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test093", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 25559
-	public void test094() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_assignment_operator = false;
-		preferences.insert_space_before_assignment_operator = false;
-		preferences.insert_space_after_comma_in_method_invocation_arguments = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test094", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// bug 27196
-	public void test095() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED;
-		preferences.indent_statements_compare_to_block = false;
-		preferences.indent_statements_compare_to_body = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test095", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 28098
-	public void test096() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test096", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 34897
-	public void test097() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_opening_paren_in_method_invocation = true;
-		preferences.insert_space_before_closing_paren_in_method_invocation = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test097", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 35173
-	public void test098() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.brace_position_for_anonymous_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test098", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 35433
-	public void test099() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_before_opening_paren_in_method_declaration = true;
-		preferences.insert_space_before_opening_paren_in_for = true;
-		preferences.insert_space_after_semicolon_in_for = false;
-		preferences.put_empty_statement_on_new_line = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test099", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test100() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_before_opening_brace_in_array_initializer = true;
-		preferences.insert_space_after_opening_brace_in_array_initializer = true;
-		preferences.insert_space_before_closing_brace_in_array_initializer = true;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test100", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// bug 36832
-	public void test101() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test101", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 37057
-	public void test102() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		preferences.line_separator = "\n";//$NON-NLS-1$
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test102", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 37106
-	public void test103() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test103", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 37657
-	public void test104() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_opening_paren_in_if = true;
-		preferences.insert_space_before_closing_paren_in_if = true;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED;
-		preferences.insert_new_line_before_catch_in_try_statement = true;
-		preferences.insert_new_line_before_else_in_if_statement = true;
-		preferences.insert_new_line_before_finally_in_try_statement = true;
-		preferences.insert_new_line_before_while_in_do_statement = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test104", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 38151
-	public void test105() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test105", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 39603
-	public void test106() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test106", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// bug 39607
-	public void test107() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.keep_then_statement_on_same_line = false;
-		preferences.keep_simple_if_on_one_line = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test107", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// bug 40777
-	public void test108() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test108", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test109() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.blank_lines_before_package = 2;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test109", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test110() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.blank_lines_before_package = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test110", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test111() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.blank_lines_after_package = 1;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-		preferences.blank_lines_before_new_chunk = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test111", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test112() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.blank_lines_after_package = 1;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-		preferences.blank_lines_before_new_chunk = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test112", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test113() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test113", "A.js");//$NON-NLS-1$ //$NON-NLS-2
-	}
-
-	// bug 14659
-	public void test114() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		assertEquals(false, DefaultCodeFormatterConstants.getForceWrapping((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		assertEquals(DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		assertEquals(DefaultCodeFormatterConstants.INDENT_ON_COLUMN, DefaultCodeFormatterConstants.getIndentStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.page_width = 57;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test114", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 14659
-	public void test115() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.page_width = 57;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test115", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// bug 14659
-	public void test116() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.page_width = 57;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test116", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// JDT/UI tests
-	public void test117() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test117", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// JDT/UI tests
-	public void test118() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test118", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// JDT/UI tests
-	public void test119() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test119", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// JDT/UI tests
-	public void test120() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test120", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// JDT/UI tests
-	public void test121() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test121", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// probing statements
-	public void test122() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test122", "A.js", CodeFormatter.K_UNKNOWN);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// probing compilation unit
-	public void test123() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test123", "A.js", CodeFormatter.K_UNKNOWN);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	// probing class body declarations
-	public void test124() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.page_width = 57;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test124", "A.js", CodeFormatter.K_UNKNOWN);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// probing expression
-	public void test125() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_binary_operator = false;
-		preferences.insert_space_before_unary_operator = false;
-		preferences.insert_space_after_unary_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test125", "A.js", CodeFormatter.K_UNKNOWN);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// probing unrecognized source
-	public void test126() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test126", "A.js", CodeFormatter.K_UNKNOWN, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// probing unrecognized source
-	public void test127() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test127", "A.js", CodeFormatter.K_UNKNOWN);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// probing unrecognized source
-	public void test128() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test128", "A.js", CodeFormatter.K_UNKNOWN, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test129() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test129", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test130() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test130", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test131() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test131", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test132() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test132", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test133() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.blank_lines_between_import_groups = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test133", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test134() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test134", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test135() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test135", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test136() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test136", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test137() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test137", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test138() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test138", "A.js", CodeFormatter.K_STATEMENTS, 2, true, 8, 37);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test139() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test139", "A.js", CodeFormatter.K_STATEMENTS, 0, true, 0, 5);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test140() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test140", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test141() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.indent_switchstatements_compare_to_cases = false;
-		preferences.indent_switchstatements_compare_to_switch = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test141", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test142() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test142", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test143() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test143", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test144() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test144", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test145() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test145", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test146() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test146", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test147() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_before_assignment_operator = false;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test147", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test148() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test148", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test149() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test149", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test150() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test150", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test151() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test151", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test152() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test152", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test153() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.align_type_members_on_columns = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test153", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test154() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test154", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	public void test155() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getJavaConventionsSettings());
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test155", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44036
-	public void test156() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getJavaConventionsSettings());
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test156", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test157() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test157", "A.js", CodeFormatter.K_STATEMENTS, 0, true, 11, 7);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test158() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test158", "A.js", CodeFormatter.K_STATEMENTS, 0, true, 11, 8);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test159() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test159", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44481
-	 */
-	public void test160() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.insert_new_line_before_catch_in_try_statement = false;
-		preferences.insert_new_line_before_else_in_if_statement = false;
-		preferences.insert_new_line_before_finally_in_try_statement = false;
-		preferences.insert_new_line_before_while_in_do_statement = false;
-		preferences.compact_else_if = true;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test160", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44481
-	 */
-	public void test161() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.insert_new_line_before_catch_in_try_statement = false;
-		preferences.insert_new_line_before_else_in_if_statement = false;
-		preferences.insert_new_line_before_finally_in_try_statement = false;
-		preferences.insert_new_line_before_while_in_do_statement = false;
-		preferences.compact_else_if = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test161", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44481
-	 */
-	public void test162() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.insert_new_line_before_catch_in_try_statement = true;
-		preferences.insert_new_line_before_else_in_if_statement = true;
-		preferences.insert_new_line_before_finally_in_try_statement = true;
-		preferences.insert_new_line_before_while_in_do_statement = true;
-		preferences.compact_else_if = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test162", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44481
-	 */
-	public void test163() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.insert_new_line_before_catch_in_try_statement = true;
-		preferences.insert_new_line_before_else_in_if_statement = true;
-		preferences.insert_new_line_before_finally_in_try_statement = true;
-		preferences.insert_new_line_before_while_in_do_statement = true;
-		preferences.compact_else_if = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test163", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44493
-	 */
-	public void test164() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test164", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test165() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test165", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44546
-	 */
-	public void test166() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test166", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44503
-	 */
-	public void test167() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test167", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44503
-	 */
-	public void test169() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test169", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44503
-	 */
-	public void test170() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test170", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44576
-	 */
-	public void test171() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.brace_position_for_anonymous_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.brace_position_for_switch = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.compact_else_if = false;
-		preferences.insert_new_line_before_catch_in_try_statement = true;
-		preferences.insert_new_line_before_else_in_if_statement = true;
-		preferences.insert_new_line_before_finally_in_try_statement = true;
-		preferences.insert_new_line_before_while_in_do_statement = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test171", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44576
-	 */
-	public void test172() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.brace_position_for_anonymous_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.brace_position_for_switch = DefaultCodeFormatterConstants.END_OF_LINE;
-		preferences.compact_else_if = false;
-		preferences.insert_new_line_before_catch_in_try_statement = true;
-		preferences.insert_new_line_before_else_in_if_statement = true;
-		preferences.insert_new_line_before_finally_in_try_statement = true;
-		preferences.insert_new_line_before_while_in_do_statement = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test172", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44570
-	 */
-	public void test173() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test173", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44570
-	 */
-	public void test174() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test174", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44570
-	 */
-	public void test175() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test175", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44570
-	 */
-	public void test176() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = true;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test176", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44570
-	 */
-	public void test177() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test177", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44570
-	 */
-	public void test178() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = true;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test178", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44570
-	 */
-	public void test179() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = true;
-		preferences.insert_new_line_in_empty_type_declaration = true;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test179", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44570
-	 */
-	public void test180() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test180", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44651
-	 */
-	public void test181() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test181", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44651
-	 */
-	public void test182() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test182", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44653
-	 */
-	public void test183() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test183", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44653
-	 */
-	public void test184() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test184", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44653
-	 */
-	public void test185() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test185", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 */
-	public void _test186() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test186", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44839
-	 */
-	public void test187() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.blank_lines_between_import_groups = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test187", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44839
-	 */
-	public void test188() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test188", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44839
-	 */
-	public void test189() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test189", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 */
-	public void test190() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test190", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 */
-	public void test191() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test191", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test192() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.align_type_members_on_columns = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test192", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test193() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test193", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test194() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test194", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test195() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test195", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test196() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test196", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test197() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test197", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test198() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test198", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test199() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test199", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test201() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test201", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * TODO Fix multi local declaration alignment
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44909
-	 */
-	public void test202() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test202", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * TODO Fix multi local declaration alignment
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44909
-	 */
-	public void _test203() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test203", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test204() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test204", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test205() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test205", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test206() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test206", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test207() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test207", "A.js", CodeFormatter.K_STATEMENTS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test208() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test208", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test209() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test209", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test210() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test210", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test211() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test211", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test212() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test212", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test213() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test213", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test214() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test214", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test215() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test215", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test216() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test216", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test217() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test217", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test218() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test218", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test219() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test219", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test220() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test220", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test221() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test221", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test222() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test222", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	public void test223() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test223", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	public void test224() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test224", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test225() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test225", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	public void test226() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test226", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test227() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test227", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	public void test228() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test228", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test229() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test229", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	public void test230() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test230", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test231() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test231", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test232() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test232", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test233() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test233", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test234() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test234", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test235() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test235", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test236() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test236", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test237() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test237", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test238() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test238", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test239() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test239", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test240() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test240", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test241() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test241", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test242() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test242", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test243() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test243", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test244() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test244", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test245() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test245", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test246() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test246", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test247() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test247", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test248() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test248", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test249() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test249", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test250() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test250", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test251() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test251", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test252() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test252", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test253() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test253", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test254() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test254", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test255() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test255", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test256() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test256", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test257() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test257", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test258() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test258", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test259() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test259", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test260() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test260", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test261() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test261", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test262() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test262", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test263() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test263", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test264() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test264", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test265() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test265", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test266() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test266", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test267() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test267", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test268() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test268", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test269() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test269", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test270() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test270", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test271() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test271", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test272() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK_IN_CASE, DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test272", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test273() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK_IN_CASE, DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test273", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test274() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test274", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	public void test275() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test275", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test276() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test276", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test277() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test277", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test278() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test278", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test279() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test279", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test280() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test280", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test281() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test281", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test282() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test282", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test283() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test283", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test284() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test284", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test285() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test285", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test286() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test286", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test287() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test287", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test288() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test288", "A.js", CodeFormatter.K_STATEMENTS, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test289() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test289", "A.js", CodeFormatter.K_STATEMENTS, 1);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test290() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test290", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test291() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test291", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test292() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test292", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test293() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test293", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test294() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test294", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test295() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test295", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test296() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test296", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test297() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "100");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test297", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test298() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "80");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test298", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test299() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "80");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test299", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test300() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test300", "A.js", CodeFormatter.K_EXPRESSION, 2);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test301() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_PAREN_IN_CAST, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test301", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test302() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test302", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test303() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.indent_switchstatements_compare_to_cases = true;
-		preferences.indent_switchstatements_compare_to_switch = true;
-		preferences.indent_breaks_compare_to_cases = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test303", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test304() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.indent_switchstatements_compare_to_cases = true;
-		preferences.indent_switchstatements_compare_to_switch = true;
-		preferences.indent_breaks_compare_to_cases = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test304", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test305() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.indent_switchstatements_compare_to_cases = false;
-		preferences.indent_switchstatements_compare_to_switch = true;
-		preferences.indent_breaks_compare_to_cases = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test305", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test306() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.indent_switchstatements_compare_to_cases = true;
-		preferences.indent_switchstatements_compare_to_switch = true;
-		preferences.indent_breaks_compare_to_cases = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test306", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test307() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.indent_switchstatements_compare_to_cases = true;
-		preferences.indent_switchstatements_compare_to_switch = true;
-		preferences.indent_breaks_compare_to_cases = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test307", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test308() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.indent_switchstatements_compare_to_cases = false;
-		preferences.indent_switchstatements_compare_to_switch = false;
-		preferences.indent_breaks_compare_to_cases = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test308", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test309() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.indent_switchstatements_compare_to_cases = false;
-		preferences.indent_switchstatements_compare_to_switch = false;
-		preferences.indent_breaks_compare_to_cases = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test309", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test310() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test310", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test311() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test311", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test312() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test312", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test313() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test313", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test314() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test314", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test315() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		String source = "public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {\n" + 
-				"/*\n" + 
-				"	\n" + 
-				"*/\n" + 
-				"}";
-		String expectedResult = "public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {\r\n" + 
-				"	/*\r\n" + 
-				"	 \r\n" + 
-				"	 */\r\n" + 
-				"}";
-		runTest(source, expectedResult, codeFormatter, CodeFormatter.K_CLASS_BODY_DECLARATIONS, 0, false, 0, -1);
-	}
-
-	public void test316() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		String source = "public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {\r" + 
-				"/*\r" + 
-				"	\r" + 
-				"*/\r" + 
-				"}";
-		String expectedResult = "public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {\r\n" + 
-				"	/*\r\n" + 
-				"	 \r\n" + 
-				"	 */\r\n" + 
-				"}";
-		runTest(source, expectedResult, codeFormatter, CodeFormatter.K_CLASS_BODY_DECLARATIONS, 0, false, 0, -1);
-	}
-	
-	public void test317() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.line_separator = "\n";
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		String source = "public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {\r\n" + 
-				"/*\r\n" + 
-				"	\r\n" + 
-				"*/\r\n" + 
-				"}";
-		String expectedResult = "public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {\n" + 
-				"	/*\n" + 
-				"	 \n" + 
-				"	 */\n" + 
-				"}";
-		runTest(source, expectedResult, codeFormatter, CodeFormatter.K_CLASS_BODY_DECLARATIONS, 0, false, 0, -1);
-	}
-	
-	public void test318() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.line_separator = "\r";
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		String source = "public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {\r" + 
-				"/*\r" + 
-				"	\r" + 
-				"*/\r" + 
-				"}";
-		String expectedResult = "public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {\r" + 
-				"	/*\r" + 
-				"	 \r" + 
-				"	 */\r" + 
-				"}";
-		runTest(source, expectedResult, codeFormatter, CodeFormatter.K_CLASS_BODY_DECLARATIONS, 0, false, 0, -1);
-	}
-
-	public void test319() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test319", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test320() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test320", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test321() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test321", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test322() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test322", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test323() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_anonymous_type_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		preferences.insert_new_line_in_empty_method_body = false;
-		preferences.insert_new_line_in_empty_block = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test323", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=45141
-	 */
-	public void test324() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test324", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=45220
-	 */
-	public void test325() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test325", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=45465
-	 */
-	public void test326() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test326", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=45508
-	 */
-	public void test327() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test327", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=22073
-	 */
-	public void test328() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test328", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=29473
-	 */
-	public void test329() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test329", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=27249
-	 */
-	public void test330() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.keep_empty_array_initializer_on_one_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test330", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=23709
-	 */
-	public void test331() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test331", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=23709
-	 */
-	public void test332() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test332", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=45968
-	 */
-	public void test333() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 5;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test333", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46058
-	 */
-	public void test334() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.put_empty_statement_on_new_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test334", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46033
-	 */
-	public void test335() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test335", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46023
-	 */
-	public void test336() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test336", "A.js", CodeFormatter.K_STATEMENTS, 8);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46150
-	 */
-	public void test337() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test337", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46686
-	 */
-	public void test338() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test338", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46686
-	 */
-	public void test339() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test339", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46686
-	 */
-	public void test340() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test340", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46689
-	 */
-	public void test341() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_before_unary_operator = false;
-		preferences.insert_space_after_assignment_operator = false;
-		preferences.insert_space_after_binary_operator = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test341", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46690
-	 */
-	public void test342() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_comma_in_multiple_local_declarations = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test342", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46690
-	 */
-	public void test343() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_comma_in_multiple_field_declarations = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test343", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46690
-	 */
-	public void test344() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_comma_in_multiple_field_declarations = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test344", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46690
-	 */
-	public void test345() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_comma_in_multiple_local_declarations = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test345", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44493
-	 */
-	public void test347() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_THROWS_CLAUSE_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		assertEquals(DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_THROWS_CLAUSE_IN_METHOD_DECLARATION)));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.blank_lines_before_method = 1;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-		preferences.insert_new_line_in_empty_method_body = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test347", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44493
-	 */
-	public void test348() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_THROWS_CLAUSE_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.blank_lines_before_method = 1;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-		preferences.insert_new_line_in_empty_method_body = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test348", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44493
-	 */
-	public void test349() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getJavaConventionsSettings());
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-        preferences.blank_lines_before_first_class_body_declaration = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test349", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44653
-	 */
-	public void test350() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test350", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44765
-	 */
-	public void test351() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test351", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44653
-	 */
-	public void test352() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getJavaConventionsSettings());
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test352", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44642
-	 */
-	public void test353() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test353", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47799
-	 */
-	public void test354() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, DefaultCodeFormatterConstants.FALSE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test354", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47799
-	 */
-	public void test355() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, DefaultCodeFormatterConstants.TRUE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test355", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47800
-	 */
-	public void test356() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION, DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test356", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47801
-	 */
-	public void test357() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_PREFIX_OPERATOR, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test357", "A.js", CodeFormatter.K_EXPRESSION);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47801
-	 */
-	public void test358() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_PREFIX_OPERATOR, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test358", "A.js", CodeFormatter.K_EXPRESSION);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47811
-	 */
-	public void test359() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test359", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47811
-	 */
-	public void test360() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "2");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test360", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47811
-	 */
-	public void test361() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test361", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47802
-	 */
-	public void test362() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.page_width = 57;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test362", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47800
-	 */
-	public void test363() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test363", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47986
-	 */
-	public void test364() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_comma_in_for_inits = false;
-		preferences.insert_space_after_comma_in_for_increments = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test364", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47986
-	 */
-	public void test365() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_comma_in_for_inits = false;
-		preferences.insert_space_after_comma_in_for_increments = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test365", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47986
-	 */
-	public void test366() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_comma_in_for_inits = true;
-		preferences.insert_space_before_comma_in_for_inits = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test366", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47986
-	 */
-	public void test367() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_comma_in_for_inits = true;
-		preferences.insert_space_before_comma_in_for_inits = true;
-		preferences.insert_space_after_comma_in_multiple_local_declarations = false;
-		preferences.insert_space_before_comma_in_multiple_local_declarations = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test367", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47918
-	 */
-	public void test368() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, "0");
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test368", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47918
-	 */
-	public void test369() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "0");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIRST_CLASS_BODY_DECLARATION, "1");
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test369", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47918
-	 */
-	public void test370() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIRST_CLASS_BODY_DECLARATION, "1");
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test370", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47918
-	 */
-	public void test371() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, "0");
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test371", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47918
-	 */
-	public void test372() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, "0");
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test372", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47918
-	 */
-	public void test373() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "0");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIRST_CLASS_BODY_DECLARATION, "1");
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test373", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44813
-	 */
-	public void test374() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test374", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44813
-	 */
-	public void test375() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test375", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44813
-	 */
-	public void test376() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test376", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44813
-	 */
-	public void test377() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test377", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44813
-	 */
-	public void test378() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER, DefaultCodeFormatterConstants.END_OF_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test378", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47997
-	 */
-	public void test379() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER, DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test379", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47997
-	 */
-	public void test380() {
-		Hashtable options = new Hashtable();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIRST_CLASS_BODY_DECLARATION, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "100");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test380", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47997
-	 */
-	public void test381() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "0");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIRST_CLASS_BODY_DECLARATION, "0");
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test381", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48131
-	 */
-	public void test382() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(new DefaultCodeFormatterOptions(options));
-		runTest(codeFormatter, "test382", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48141
-	 */
-	public void test383() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test383", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48143
-	 */
-	public void _test384() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test384", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-		
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48143
-	 */
-	public void test385() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_NEXT_SHIFTED, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		assertEquals(DefaultCodeFormatterConstants.WRAP_NEXT_SHIFTED, DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION)));
-		assertTrue(DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE != DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION)));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test385", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48143
-	 */
-	public void test386() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test386", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48143
-	 */
-	public void _test387() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-//		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "40");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.page_width = 40;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test387", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48167
-	 */
-	public void test388() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.page_width = 40;
-		preferences.insert_new_line_after_opening_brace_in_array_initializer = true;
-		preferences.insert_new_line_before_closing_brace_in_array_initializer = true;
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test388", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48167
-	 */
-	public void test389() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.continuation_indentation_for_array_initializer = 1;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.page_width = 40;
-		preferences.insert_new_line_after_opening_brace_in_array_initializer = true;
-		preferences.insert_new_line_before_closing_brace_in_array_initializer = true;
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test389", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48167
-	 */
-	public void test390() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT_FIRST_BREAK, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.continuation_indentation_for_array_initializer = 1;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.page_width = 40;
-		preferences.insert_new_line_after_opening_brace_in_array_initializer = true;
-		preferences.insert_new_line_before_closing_brace_in_array_initializer = true;
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test390", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48167
-	 */
-	public void test391() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_BY_ONE));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.continuation_indentation_for_array_initializer = 3;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.page_width = 40;
-		preferences.insert_new_line_after_opening_brace_in_array_initializer = true;
-		preferences.insert_new_line_before_closing_brace_in_array_initializer = true;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test391", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48167
-	 */
-	public void test392() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_BY_ONE));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.continuation_indentation_for_array_initializer = 3;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED;
-		preferences.page_width = 40;
-		preferences.insert_new_line_after_opening_brace_in_array_initializer = true;
-		preferences.insert_new_line_before_closing_brace_in_array_initializer = true;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test392", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48167
-	 */
-	public void test393() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.continuation_indentation_for_array_initializer = 1;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED;
-		preferences.page_width = 40;
-		preferences.insert_new_line_after_opening_brace_in_array_initializer = true;
-		preferences.insert_new_line_before_closing_brace_in_array_initializer = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test393", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=48404
-	 */
-	public void test394() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test394", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49318
-	 */
-	public void test395() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.insert_space_before_opening_paren_in_method_declaration = true;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test395", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49243
-	 */
-	public void test396() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.insert_space_before_semicolon_in_for = true;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test396", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49187
-	 */
-	public void test397() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_package = 2;
-		preferences.blank_lines_after_package = 0;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test397", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49187
-	 */
-	public void test398() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.blank_lines_before_package = 0;
-		preferences.blank_lines_after_package = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test398", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49187
-	 */
-	public void test399() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_package = 1;
-		preferences.blank_lines_after_package = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test399", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49187
-	 */
-	public void test400() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_PACKAGE, "2");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_PACKAGE, "2");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test400", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49361
-	 */
-	public void test401() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test401", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49361
-	 */
-	public void test402() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test402", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49298
-	 */
-	public void test403() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test403", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49298
-	 */
-	public void test404() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
- 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_DECLARATION, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test404", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49187
-	 */
-	public void test405() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_PACKAGE, "10");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test405", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49298
-	 */
-	public void test406() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_INVOCATION, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_DECLARATION, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test406", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49481
-	 */
-	public void test407() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test407", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49481
-	 */
-	public void test408() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.blank_lines_before_first_class_body_declaration = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test408", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49378
-	 */
-	public void test409() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK_IN_CASE, DefaultCodeFormatterConstants.NEXT_LINE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.indent_switchstatements_compare_to_cases = false;
-		preferences.indent_switchstatements_compare_to_switch = true;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_switch = DefaultCodeFormatterConstants.NEXT_LINE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test409", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49577
-	 */
-	public void test410() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_between_type_declarations = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test410", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49577
-	 */
-	public void test411() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_between_type_declarations = 2;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test411", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49551
-	 */
-	public void test412() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test412", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49551
-	 */
-	public void test413() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_between_type_declarations = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test413", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49551
-	 */
-	public void test414() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test414", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49551
-	 */
-	public void test415() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_between_type_declarations = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test415", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49551
-	 */
-	public void test416() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_between_type_declarations = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test416", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49571
-	 */
-	public void test417() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_before_opening_paren_in_constructor_declaration = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test417", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49571
-	 */
-	public void test418() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_before_opening_paren_in_constructor_declaration = true;
-		preferences.insert_space_before_opening_paren_in_method_declaration = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test418", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49162
-	 */
-	public void _test419() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test419", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49623
-	 */
-	public void _test420() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.align_type_members_on_columns = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test420", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49298
-	 */
-	public void test421() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_INVOCATION, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_DECLARATION, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test421", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49298
-	 */
-	public void test422() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_INVOCATION, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_DECLARATION, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test422", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test423() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.END_OF_LINE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test423", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test424() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test424", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test425() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test425", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test426() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test426", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test427() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test427", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test428() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test428", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test429() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test429", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test430() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test430", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49351
-	 */
-	public void test431() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_SEMICOLON_IN_FOR, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test431", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49370
-	 */
-	public void test432() {
-		String resourcePath = getResource("test432", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "AIS");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test432", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49370
-	 */
-	public void test433() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test433", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49660
-	 */
-	public void test434() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		assertEquals(true, DefaultCodeFormatterConstants.getForceWrapping((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION)));
-		assertEquals(DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION)));
-		assertEquals(DefaultCodeFormatterConstants.INDENT_ON_COLUMN, DefaultCodeFormatterConstants.getIndentStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION)));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_size = 3;
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.insert_space_after_opening_paren_in_method_invocation = true;
-		preferences.insert_space_before_closing_paren_in_method_invocation = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test434", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49772
-	 */
-	public void test435() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test435", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49772
-	 */
-	public void test436() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_constructor_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test436", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49660
-	 */
-	public void test437() {
-		String resourcePath = getResource("test437", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "Felix");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test437", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49660
-	 */
-	public void test438() {
-		String resourcePath = getResource("test438", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "Felix");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test438", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49660
-	 */
-	public void test439() {
-		String resourcePath = getResource("test439", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "Felix");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test439", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49763
-	 */
-	public void test440() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, DefaultCodeFormatterConstants.FALSE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test440", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49763
-	 */
-	public void test441() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, DefaultCodeFormatterConstants.FALSE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test441", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49763
-	 */
-	public void test442() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, DefaultCodeFormatterConstants.FALSE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test442", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49763
-	 */
-	public void test443() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, DefaultCodeFormatterConstants.FALSE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test443", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49763
-	 */
-	public void test444() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, DefaultCodeFormatterConstants.FALSE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test444", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49763
-	 */
-	public void test445() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, DefaultCodeFormatterConstants.FALSE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test445", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49327
-	 */
-	public void test446() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test446", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49187
-	 */
-	public void test447() {
-		String resourcePath = getResource("test447", "test447.zip");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "settings.xml", "Toms");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		String input = getZipEntryContents(resourcePath, getIn("Format.js"));
-		assertNotNull("No input", input);
-		String output = getZipEntryContents(resourcePath, getOut("Format.js"));
-		assertNotNull("No output", output);
-		int start = input.indexOf("private");
-		int end = input.indexOf(";");
-		runTest(input, output, codeFormatter, CodeFormatter.K_JAVASCRIPT_UNIT, 0, false, start, end - start + 1, "\r\n");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49953
-	 */
-	public void test448() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_before_opening_bracket_in_array_allocation_expression = true;
-		preferences.insert_space_after_opening_bracket_in_array_allocation_expression = true;
-		preferences.insert_space_before_closing_bracket_in_array_allocation_expression = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test448", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49953
-	 */
-	public void test449() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		preferences.insert_space_before_opening_bracket_in_array_allocation_expression = false;
-		preferences.insert_space_after_opening_bracket_in_array_allocation_expression = true;
-		preferences.insert_space_before_closing_bracket_in_array_allocation_expression = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test449", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50225
-	 */
-	public void test450() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test450", "A.js", CodeFormatter.K_UNKNOWN, 0, false, 0, 0);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49187
-	 */
-	public void test451() {
-		String resourcePath = getResource("test451", "test451.zip");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "settings.xml", "Toms");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		String input = getZipEntryContents(resourcePath, getIn("Format.js"));
-		assertNotNull("No input", input);
-		String output = getZipEntryContents(resourcePath, getOut("Format.js"));
-		assertNotNull("No output", output);
-		int start = input.indexOf("private");
-		int end = input.indexOf(";");
-		runTest(input, output, codeFormatter, CodeFormatter.K_JAVASCRIPT_UNIT, 0, false, start, end - start + 1, "\r\n");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49187
-	 */
-	public void test452() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_PACKAGE, "2");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_PACKAGE, "2");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test452", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50719
-	 */
-	public void test453() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test453", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50736
-	 */
-	public void test454() {
-		String resourcePath = getResource("test454", "test454.zip");
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		String input = getZipEntryContents(resourcePath, getIn("A.js"));
-		assertNotNull("No input", input);
-		String output = getZipEntryContents(resourcePath, getOut("A.js"));
-		assertNotNull("No output", output);
-		int start = input.indexOf("launch.setAttribute");
-		int end = input.indexOf(";", start + 1);
-		runTest(input, output, codeFormatter, CodeFormatter.K_JAVASCRIPT_UNIT, 0, false, start, end - start + 1, "\r\n");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50736
-	 */
-	public void test455() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test455", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50736
-	 */
-	public void test456() {
-		String resourcePath = getResource("test456", "test456.zip");
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		String input = getZipEntryContents(resourcePath, getIn("A.js"));
-		assertNotNull("No input", input);
-		String output = getZipEntryContents(resourcePath, getOut("A.js"));
-		assertNotNull("No output", output);
-		int start = input.indexOf("launch.setAttribute");
-		int end = input.indexOf(";", start + 1);
-		runTest(input, output, codeFormatter, CodeFormatter.K_JAVASCRIPT_UNIT, 0, false, start, end - start + 1, "\r\n");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50989
-	 */
-	public void test457() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test457", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Check null options
-	 */
-	public void test458() {
-		CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(null);
-		runTest(codeFormatter, "test458", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51158
-	 */
-	public void test459() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(
-						true,
-						DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-						DefaultCodeFormatterConstants.INDENT_BY_ONE
-				));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(
-						false,
-						DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-						DefaultCodeFormatterConstants.INDENT_BY_ONE
-				));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test459", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51158
-	 */
-	public void test460() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(
-						false,
-						DefaultCodeFormatterConstants.WRAP_COMPACT,
-						DefaultCodeFormatterConstants.INDENT_BY_ONE
-				));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test460", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51190
-	 */
-	public void test461() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test461", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51158
-	 */
-	public void test462() {
-		String resourcePath = getResource("test462", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "neils");
-		assertNotNull("No preferences", options);
-		
-		options.put(
-			DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-			DefaultCodeFormatterConstants.createAlignmentValue(
-				true,
-				DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-				DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test462", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50276
-	 */
-	public void test463() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SELECTOR_IN_METHOD_INVOCATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(
-					false,
-					DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-					DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test463", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51128
-	 */
-	public void test464() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_FOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_FOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_FOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_DECLARATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_DECLARATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_STATEMENTS_COMPARE_TO_BLOCK, DefaultCodeFormatterConstants.FALSE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_STATEMENTS_COMPARE_TO_BODY, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test464", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44642
-	 * @deprecated
-	 */
-	public void test465() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-			DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SELECTOR_IN_METHOD_INVOCATION,
-			DefaultCodeFormatterConstants.createAlignmentValue(
-				false,
-				DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-				DefaultCodeFormatterConstants.INDENT_BY_ONE));
-		options.put(
-			DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-			DefaultCodeFormatterConstants.createAlignmentValue(
-				false,
-				DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-				DefaultCodeFormatterConstants.INDENT_BY_ONE));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test465", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44642
-	 * @deprecated
-	 */
-	public void test466() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-			DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SELECTOR_IN_METHOD_INVOCATION,
-			DefaultCodeFormatterConstants.createAlignmentValue(
-				false,
-				DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-				DefaultCodeFormatterConstants.INDENT_BY_ONE));
-		options.put(
-			DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-			DefaultCodeFormatterConstants.createAlignmentValue(
-				true,
-				DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-				DefaultCodeFormatterConstants.INDENT_BY_ONE));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test466", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44642
-	 * @deprecated
-	 */
-	public void test467() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-			DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SELECTOR_IN_METHOD_INVOCATION,
-			DefaultCodeFormatterConstants.createAlignmentValue(
-				false,
-				DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-				DefaultCodeFormatterConstants.INDENT_BY_ONE));
-		options.put(
-			DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-			DefaultCodeFormatterConstants.createAlignmentValue(
-				false,
-				DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-				DefaultCodeFormatterConstants.INDENT_BY_ONE));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test467", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51128
-	 */
-	public void test468() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test468", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51201
-	 */
-	public void test469() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACKET_IN_ARRAY_ALLOCATION_EXPRESSION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACKET_IN_ARRAY_ALLOCATION_EXPRESSION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACKETS_IN_ARRAY_ALLOCATION_EXPRESSION, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test469", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51035
-	 */
-	public void test470() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test470", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51659
-	 */
-	public void test471() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test471", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51659
-	 */
-	public void test472() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test472", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51659
-	 */
-	public void test473() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test473", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51659
-	 */
-	public void test474() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test474", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51659
-	 */
-	public void test475() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test475", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51768 
-	 */
-	public void test476() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_TYPE_HEADER, DefaultCodeFormatterConstants.FALSE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_STATEMENTS_COMPARE_TO_BLOCK, DefaultCodeFormatterConstants.FALSE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_STATEMENTS_COMPARE_TO_BODY, DefaultCodeFormatterConstants.FALSE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_IMPORTS, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_IF, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_IF, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_IF, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_FOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_FOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_FOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ASSIGNMENT_OPERATOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ASSIGNMENT_OPERATOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BINARY_OPERATOR, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BINARY_OPERATOR, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test476", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51603
-	 */
-	public void test477() {
-		String option = 
-			DefaultCodeFormatterConstants.createAlignmentValue(
-				true,
-				DefaultCodeFormatterConstants.WRAP_NO_SPLIT,
-				DefaultCodeFormatterConstants.INDENT_BY_ONE);
-		assertTrue("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_NO_SPLIT, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_BY_ONE, DefaultCodeFormatterConstants.getIndentStyle(option));
-
-		option = DefaultCodeFormatterConstants.setForceWrapping(option, false);
-		assertFalse("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_NO_SPLIT, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_BY_ONE, DefaultCodeFormatterConstants.getIndentStyle(option));
-	
-		option = DefaultCodeFormatterConstants.setIndentStyle(option, DefaultCodeFormatterConstants.INDENT_ON_COLUMN);
-		assertFalse("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_NO_SPLIT, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_ON_COLUMN, DefaultCodeFormatterConstants.getIndentStyle(option));
-
-	
-		option = DefaultCodeFormatterConstants.setIndentStyle(option, DefaultCodeFormatterConstants.INDENT_DEFAULT);
-		assertFalse("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_NO_SPLIT, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle(option));
-
-	
-		option = DefaultCodeFormatterConstants.setForceWrapping(option, true);
-		assertTrue("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_NO_SPLIT, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle(option));
-
-	
-		option = DefaultCodeFormatterConstants.setWrappingStyle(option, DefaultCodeFormatterConstants.WRAP_COMPACT);
-		assertTrue("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle(option));
-
-	
-		option = DefaultCodeFormatterConstants.setWrappingStyle(option, DefaultCodeFormatterConstants.WRAP_COMPACT_FIRST_BREAK);
-		assertTrue("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_COMPACT_FIRST_BREAK, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle(option));
-		
-		option = DefaultCodeFormatterConstants.setWrappingStyle(option, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE);
-		assertTrue("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle(option));
-		
-		option = DefaultCodeFormatterConstants.setWrappingStyle(option, DefaultCodeFormatterConstants.WRAP_NEXT_SHIFTED);
-		assertTrue("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_NEXT_SHIFTED, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle(option));
-		
-		option = DefaultCodeFormatterConstants.setWrappingStyle(option, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE);
-		assertTrue("Wrong force setting", DefaultCodeFormatterConstants.getForceWrapping(option));
-		assertEquals("Wrong wrapping style", DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.getWrappingStyle(option));
-		assertEquals("Wrong indent style", DefaultCodeFormatterConstants.INDENT_DEFAULT, DefaultCodeFormatterConstants.getIndentStyle(option));
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52246
-	 */
-	public void test478() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, options);
-		runTest(codeFormatter, "test478", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52479
-	 */
-	public void test479() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test479", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52479
-	 */
-	public void test480() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test480", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52283
-	 */
-	public void test481() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test481", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52283
-	 */
-	public void test482() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_BRACE_IN_BLOCK, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test482", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52851
-	 */
-	public void test483() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_BRACE_IN_BLOCK, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test483", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50989
-	 */
-	public void test484() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test484", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50989
-	 */
-	public void test485() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "1");//$NON-NLS-1$
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test485", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50989
-	 */
-	public void test486() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);//$NON-NLS-1$
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, DefaultCodeFormatterConstants.NEXT_LINE);//$NON-NLS-1$
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);//$NON-NLS-1$
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);//$NON-NLS-1$
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, DefaultCodeFormatterConstants.NEXT_LINE);//$NON-NLS-1$
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, DefaultCodeFormatterConstants.NEXT_LINE);//$NON-NLS-1$
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test486", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test487() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test487", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test488() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_CASE, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test488", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test489() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test489", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52747
-	 */
-	public void test490() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER, DefaultCodeFormatterConstants.NEXT_LINE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE);
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test490", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59451
-	 */
-	public void _test491() {
-		String resourcePath = getResource("test491", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "DOI");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test491", "BundleChain.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59575
-	 */
-	public void test492() {
-		String resourcePath = getResource("test492", "core_formatting.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "core");
-		assertNotNull("No preferences", options);
-		options.put(JavaScriptCore.COMPILER_PB_NON_NLS_STRING_LITERAL, JavaScriptCore.ERROR);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, options);
-		runTest(codeFormatter, "test492", "Main.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=59716
-	 */
-	public void test493() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_PACKAGE, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_PACKAGE, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_IMPORTS, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_IMPORTS, "1");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test493", "MyClass.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60035
-	 */
-	public void test494() {
-		String resourcePath = getResource("test494", "format.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "AGPS default");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, options);
-		runTest(codeFormatter, "test494", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=58565
-	 */
-	public void test495() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test495", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=58565
-	 */
-	public void test496() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test496", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test497() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test497", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test498() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test498", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test499() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.blank_lines_before_first_class_body_declaration = 1;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test499", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, true);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void test500() {
-		Map options = DefaultCodeFormatterConstants.getEclipse21Settings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test500", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68506
-	 */
-	public void test501() {
-		String resourcePath = getResource("test501", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "GMTI");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test501", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=69806
-	 */
-	public void test502() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test502", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Formatting foreach
-	 */
-	public void test503() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		Map compilerOptions = new HashMap();
-		compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-		compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-		compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-		runTest(codeFormatter, "test503", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Formatting parameterized type
-	 */
-	public void test504() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test504", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * Formatting parameterized type
-	 */
-	public void test505() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test505", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * Formatting parameterized type
-	 */
-	public void test506() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test506", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * Formatting enum declaration
-	 */
-	public void test507() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test507", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * Formatting annotation type declaration
-	 */
-	public void test508() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test508", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68506
-	 */
-	public void test509() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.compact_else_if = true;
-		preferences.insert_new_line_at_end_of_file_if_missing = true;
-		preferences.number_of_empty_lines_to_preserve = 0;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter,"test509", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68506
-	 */
-	public void test510() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.compact_else_if = true;
-		preferences.insert_new_line_at_end_of_file_if_missing = false;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter,"test510", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68506
-	 */
-	public void test511() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.compact_else_if = true;
-		preferences.insert_new_line_at_end_of_file_if_missing = false;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter,"test511", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68506
-	 */
-	public void test512() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipse21Settings());
-		preferences.keep_simple_if_on_one_line = true;
-		preferences.keep_then_statement_on_same_line = true;
-		preferences.keep_guardian_clause_on_one_line = true;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.compact_else_if = true;
-		preferences.insert_new_line_at_end_of_file_if_missing = true;
-		preferences.number_of_empty_lines_to_preserve = 1;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter,"test512", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=73371
-	 */
-	public void test513() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test513", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=75488
-	 */
-	public void test514() {
-		String resourcePath = getResource("test514", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "core");
-		assertNotNull("No preferences", options);
-		options.put(JavaScriptCore.COMPILER_PB_NON_NLS_STRING_LITERAL, JavaScriptCore.ERROR);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, options);
-		runTest(codeFormatter, "test514", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=75720
-	 */
-	public void test515() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test515", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=75720
-	 */
-	public void test516() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ELLIPSIS, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ELLIPSIS, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);	
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test516", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=75720
-	 */
-	public void test517() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ELLIPSIS, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ELLIPSIS, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);	
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test517", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=75720
-	 */
-	public void test518() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ELLIPSIS, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ELLIPSIS, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);	
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test518", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=75720
-	 */
-	public void test519() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ELLIPSIS, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ELLIPSIS, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);	
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test519", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * Formatting enum declaration
-	 */
-	public void test520() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test520", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76642
-	 */
-	public void test521() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test521", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76642
-	 */
-	public void test522() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test522", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76766
-	 */
-	public void test523() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_type_declaration = true;
-		preferences.insert_new_line_in_empty_enum_constant = false;
-		preferences.insert_new_line_in_empty_enum_declaration = false;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test523", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76766
-	 */
-	public void test524() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_type_declaration = true;
-		preferences.insert_new_line_in_empty_enum_constant = false;
-		preferences.insert_new_line_in_empty_enum_declaration = true;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test524", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76766
-	 */
-	public void test525() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_type_declaration = true;
-		preferences.insert_new_line_in_empty_enum_constant = true;
-		preferences.insert_new_line_in_empty_enum_declaration = false;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test525", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76766
-	 */
-	public void test526() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_new_line_in_empty_type_declaration = true;
-		preferences.insert_new_line_in_empty_enum_constant = true;
-		preferences.insert_new_line_in_empty_enum_declaration = true;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test526", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=77249
-	 */
-	public void test527() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test527", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79779
-	 */
-	public void test528() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test528", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79779
-	 */
-	public void test529() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test529", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79795
-	 */
-	public void test530() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test530", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79795
-	 */
-	public void test531() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test531", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79795
-	 */
-	public void test532() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test532", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=79795
-	 */
-	public void test533() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test533", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78698
-	 */
-	public void test534() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test534", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78698
-	 */
-	public void test535() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test535", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78698
-	 */
-	public void test536() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_question_in_wilcard = true;
-		preferences.insert_space_before_question_in_wilcard = true;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test536", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78698
-	 */
-	public void test537() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.insert_space_after_question_in_wilcard = true;
-		preferences.insert_space_before_question_in_wilcard = true;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test537", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83078
-	 */
-	public void test538() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getJavaConventionsSettings());
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter,"test538", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83515
-	 */
-	public void test539() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test539", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83515
-	 */
-	public void test540() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test540", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=83684
-	 */
-	public void test541() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test541", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	public void test542() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getJavaConventionsSettings());
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test542", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void test543() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getJavaConventionsSettings());
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test543", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=86410
-	 */
-	public void test544() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.insert_space_after_closing_angle_bracket_in_type_parameters = true;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test544", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=86878
-	 */
-	public void test545() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test545", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=86908
-	 */
-	public void test546() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
- 		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test546", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Add support for comment formatting
-	 */
-	public void test547() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test547", "A.js", CodeFormatter.K_MULTI_LINE_COMMENT, false);//$NON-NLS-1$ //$NON-NLS-2$
-
-		runTest(codeFormatter, "test547", "A.js", CodeFormatter.K_UNKNOWN, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Add support for comment formatting
-	 */
-	public void test548() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test548", "A.js", CodeFormatter.K_JAVA_DOC, false);//$NON-NLS-1$ //$NON-NLS-2$
-
-		runTest(codeFormatter, "test548", "A.js", CodeFormatter.K_UNKNOWN, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=73104
-	public void test549() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.MIXED;
-		preferences.indentation_size = 4;
-		preferences.tab_size = 8;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test549", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=73104
-	public void test550() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.MIXED;
-		preferences.indentation_size = 4;
-		preferences.tab_size = 8;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test550", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=73104
-	public void test551() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		assertEquals(false, DefaultCodeFormatterConstants.getForceWrapping((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		assertEquals(DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		assertEquals(DefaultCodeFormatterConstants.INDENT_ON_COLUMN, DefaultCodeFormatterConstants.getIndentStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.MIXED;
-		preferences.indentation_size = 4;
-		preferences.tab_size = 8;
-		preferences.page_width = 57;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test551", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=73104
-	public void test552() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		assertEquals(false, DefaultCodeFormatterConstants.getForceWrapping((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		assertEquals(DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.getWrappingStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		assertEquals(DefaultCodeFormatterConstants.INDENT_ON_COLUMN, DefaultCodeFormatterConstants.getIndentStyle((String) options.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION)));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.MIXED;
-		preferences.indentation_size = 4;
-		preferences.tab_size = 8;
-		preferences.page_width = 57;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test552", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Add support for comment formatting
-	 */
-	public void test553() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test553", "A.js", CodeFormatter.K_SINGLE_LINE_COMMENT, false);//$NON-NLS-1$ //$NON-NLS-2$
-
-		runTest(codeFormatter, "test553", "A.js", CodeFormatter.K_UNKNOWN, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Add support for comment formatting
-	 */
-	public void test554() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test554", "A.js", CodeFormatter.K_SINGLE_LINE_COMMENT, false);//$NON-NLS-1$ //$NON-NLS-2$
-
-		runTest(codeFormatter, "test554", "A.js", CodeFormatter.K_UNKNOWN, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=73104
-	public void test555() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_char = DefaultCodeFormatterOptions.MIXED;
-		preferences.indentation_size = 4;
-		preferences.tab_size = 8;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test555", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/*
-	 * Empty array initializer formatting
-	 */
-	public void test556() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test556", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/*
-	 * Empty array initializer formatting
-	 */
-	public void test557() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.tab_size = 4;
-		preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.keep_empty_array_initializer_on_one_line = true;
-		preferences.insert_space_between_empty_braces_in_array_initializer = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test557", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89302
-	public void test558() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.insert_space_after_comma_in_enum_declarations = false;
-		preferences.insert_new_line_after_annotation = false;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test558", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89302
-	public void test559() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.insert_space_after_comma_in_enum_declarations = true;
-		preferences.insert_new_line_after_annotation = false;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test559", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81497
-	public void test560() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.keep_empty_array_initializer_on_one_line = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test560", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81497
-	public void test561() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.keep_empty_array_initializer_on_one_line = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test561", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89318
-	public void test562() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		preferences.insert_space_after_closing_angle_bracket_in_type_arguments = false;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test562", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89318
-	public void test563() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.insert_space_after_closing_angle_bracket_in_type_arguments = true;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test563", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89299
-	public void test564() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-        preferences.tab_size = 4;
-		preferences.brace_position_for_array_initializer = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_method_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_block = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.keep_empty_array_initializer_on_one_line = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test564", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/*// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896
-	public void test565() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.use_tabs_only_for_leading_indentations = true;
-		preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test565", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}*/
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=73658
-	public void test566() {
-		Map options = DefaultCodeFormatterConstants.getJavaConventionsSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-		preferences.brace_position_for_enum_constant = DefaultCodeFormatterConstants.NEXT_LINE;
-		preferences.brace_position_for_enum_declaration = DefaultCodeFormatterConstants.NEXT_LINE;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test566", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896
-	public void test567() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.use_tabs_only_for_leading_indentations = true;
-        preferences.page_width = 35;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test567", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896
-	public void test568() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.indentation_size = 4;
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.MIXED;
-		preferences.use_tabs_only_for_leading_indentations = true;
-        preferences.page_width = 35;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test568", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896
-	public void test569() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-        preferences.indentation_size = 4;
-        preferences.tab_size = 4;
-        preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-		preferences.use_tabs_only_for_leading_indentations = false;
-        preferences.page_width = 40;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test569", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=77809
-	public void test570() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ENUM_CONSTANTS,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test570", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=77809
-	public void test571() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ENUM_CONSTANTS,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test571", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90213
-	public void test572() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.insert_space_after_opening_brace_in_array_initializer = false;
-		preferences.insert_space_before_closing_brace_in_array_initializer = false;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test572", "A.js", CodeFormatter.K_STATEMENTS, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90213
-	public void test573() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test573", "A.js", CodeFormatter.K_STATEMENTS, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=91238
-	public void test574() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
- 		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test574", "A.js", CodeFormatter.K_JAVA_DOC, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=77809
-	public void test575() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test575", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95431
-	public void test576() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test576", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=98037
-	public void test577() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test577", "A.js", CodeFormatter.K_UNKNOWN, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=98037
-	public void test578() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test578", "A.js", CodeFormatter.K_UNKNOWN, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=98139
-	public void test579() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test579", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=98139
-	public void test580() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test580", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=99084
-	public void test581() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test581", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=99084
-	public void test582() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.insert_space_after_closing_angle_bracket_in_type_arguments = false;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test582", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=100062
-	public void test583() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test583", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896
-	public void test584() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, DefaultCodeFormatterConstants.MIXED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "65");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test584", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896
-	public void test585() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, DefaultCodeFormatterConstants.MIXED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "80");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test585", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896
-	public void test586() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "65");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test586", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896
-	public void test587() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "80");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test587", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=101230
-	public void test588() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test588", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=104796
-	public void test589() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test589", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=103706
-	public void test590() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_EMPTY_LINES, DefaultCodeFormatterConstants.TRUE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test590", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=103706
-	public void test591() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_EMPTY_LINES, DefaultCodeFormatterConstants.FALSE);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test591", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=98089
-	public void test592() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_DECLARATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_METHOD_DECLARATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "60");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test592", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=71766
-	public void test593() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ASSIGNMENT,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ALLOCATION_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NO_SPLIT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test593", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=71766
-	public void test594() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ASSIGNMENT,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test594", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=71766
-	public void test595() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ASSIGNMENT,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test595", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=71766
-	public void test596() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ASSIGNMENT,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_COMPACT, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test596", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87193
-	public void test597() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, DefaultCodeFormatterConstants.MIXED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "60");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test597", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87193
-	public void test598() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE, DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "60");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test598", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87193
-	public void test599() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION,
-				DefaultCodeFormatterConstants.createAlignmentValue(false, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "60");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test599", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// test Scribe2.hasNLSTag()
-	public void test600() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test600", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// Binary expression
-	public void _test601() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(true, DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE, DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "60");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test601", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=108916
-	public void test605() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ENUM_CONSTANTS,
-				DefaultCodeFormatterConstants.createAlignmentValue(
-						true,
-						DefaultCodeFormatterConstants.WRAP_NEXT_PER_LINE,
-						DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test605", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=110304
-	public void test606() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_RETURN, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test606", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=111270 
-	public void test607() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test607", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=111270 
-	public void _test608() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test608", "A.js", CodeFormatter.K_JAVA_DOC, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=116858
-	public void test609() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.indent_switchstatements_compare_to_cases = true;
-		preferences.indent_switchstatements_compare_to_switch = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test609", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=122914
-	 */
-	public void test610() {
-		String resourcePath = getResource("test610", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "mhdk");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test610", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=111446
-	 */
-	public void test611() {
-		{
-			// only tabs, indentation size = 4, tab size = 4
-			// indentation size is ignored
-			Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-			DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-			preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-			preferences.tab_size = 4;
-			preferences.indentation_size = 4;
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-			assertEquals("Wrong indentation string", "\t", codeFormatter.createIndentationString(1));
-			assertEquals("Wrong indentation string", "\t\t", codeFormatter.createIndentationString(2));
-			assertEquals("Wrong indentation string", "\t\t\t", codeFormatter.createIndentationString(3));
-		}
-		{
-			// only tabs, indentation size = 4, tab size = 8
-			// indentation size is ignored
-			Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-			DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-			preferences.tab_char = DefaultCodeFormatterOptions.TAB;
-			preferences.tab_size = 8;
-			preferences.indentation_size = 4;
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-			assertEquals("Wrong indentation string", "\t", codeFormatter.createIndentationString(1));
-			assertEquals("Wrong indentation string", "\t\t", codeFormatter.createIndentationString(2));
-			assertEquals("Wrong indentation string", "\t\t\t", codeFormatter.createIndentationString(3));
-		}
-		{
-			// only spaces, indentation size = 4, tab size = 2
-			// indentation size is ignored
-			Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-			DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-			preferences.tab_char = DefaultCodeFormatterOptions.SPACE;
-			preferences.tab_size = 2;
-			preferences.indentation_size = 4;
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-			assertEquals("Wrong indentation string", "  ", codeFormatter.createIndentationString(1));
-			assertEquals("Wrong indentation string", "    ", codeFormatter.createIndentationString(2));
-			assertEquals("Wrong indentation string", "      ", codeFormatter.createIndentationString(3));
-		}
-		{
-			// mixed, indentation size = 4, tab size = 2
-			Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-			DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-			preferences.tab_char = DefaultCodeFormatterOptions.MIXED;
-			preferences.tab_size = 2;
-			preferences.indentation_size = 4;
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-			assertEquals("Wrong indentation string", "\t\t", codeFormatter.createIndentationString(1));
-			assertEquals("Wrong indentation string", "\t\t\t\t", codeFormatter.createIndentationString(2));
-		}		
-		{
-			// mixed, indentation size = 2, tab size = 4
-			// indentation size is ignored
-			Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-			DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-			preferences.tab_char = DefaultCodeFormatterOptions.MIXED;
-			preferences.tab_size = 4;
-			preferences.indentation_size = 2;
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-			assertEquals("Wrong indentation string", "  ", codeFormatter.createIndentationString(1));
-			assertEquals("Wrong indentation string", "\t", codeFormatter.createIndentationString(2));
-			assertEquals("Wrong indentation string", "\t  ", codeFormatter.createIndentationString(3));
-		}		
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126625
-	public void test612() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.indent_body_declarations_compare_to_annotation_declaration_header = false;
-		preferences.indent_body_declarations_compare_to_type_header = true;
-		preferences.insert_new_line_in_empty_annotation_declaration = false;
-		preferences.insert_new_line_in_empty_type_declaration = true;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test612", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126625
-	public void test613() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.indent_body_declarations_compare_to_annotation_declaration_header = true;
-		preferences.indent_body_declarations_compare_to_type_header = false;
-		preferences.insert_new_line_in_empty_annotation_declaration = true;
-		preferences.insert_new_line_in_empty_type_declaration = false;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test613", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128848
-	public void test614() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test614", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128848
-	public void test615() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test615", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128848
-	public void test616() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test616", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=131013
-	public void test617() {
-		String resourcePath = getResource("test617", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "JRK");
-		assertNotNull("No preferences", options);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(
-					true,
-					DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-					DefaultCodeFormatterConstants.INDENT_ON_COLUMN));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test617", "A.js", CodeFormatter.K_STATEMENTS);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=137224
-	public void test618() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test618", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=137224
-	public void test619() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test619", "A.js", CodeFormatter.K_CLASS_BODY_DECLARATIONS, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=139291
-	public void test620() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test620", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=139291
-	public void test621() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test621", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=148370
-	public void test622() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test622", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=148370
-	public void test623() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test623", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=148370
-	public void test624() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test624", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102728
-	public void test625() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(
-				DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
-				DefaultCodeFormatterConstants.createAlignmentValue(
-						true,
-						DefaultCodeFormatterConstants.WRAP_ONE_PER_LINE,
-						DefaultCodeFormatterConstants.INDENT_DEFAULT));
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test625", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=152725
-	public void test626() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_6);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_6);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test626", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158267
-	public void test627() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test627", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158267
-	public void test628() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test628", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158267
-	public void test629() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		preferences.brace_position_for_type_declaration = DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP;
-		Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-		try {
-			Hashtable newJavaCoreOptions = JavaScriptCore.getOptions();
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			newJavaCoreOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-			JavaScriptCore.setOptions(newJavaCoreOptions);
-		
-			Map compilerOptions = new HashMap();
-			compilerOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
-			compilerOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);		
-			DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences, compilerOptions);
-			runTest(codeFormatter, "test629", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT, false);//$NON-NLS-1$ //$NON-NLS-2$
-		} finally {
-			JavaScriptCore.setOptions(javaCoreOptions);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158267
-	public void test630() {
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(DefaultCodeFormatterConstants.getEclipseDefaultSettings());
-		preferences.insert_space_after_opening_paren_in_parenthesized_expression = true;
-		preferences.insert_space_before_closing_paren_in_parenthesized_expression = true;
-		preferences.insert_space_before_parenthesized_expression_in_throw = true;
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test630", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158267
-	public void test631() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_PARENTHESIZED_EXPRESSION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_PARENTHESIZED_EXPRESSION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_THROW, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test631", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=158267
-	public void test632() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_PARENTHESIZED_EXPRESSION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_PARENTHESIZED_EXPRESSION, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_RETURN, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_THROW, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test632", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165210
-	public void test633() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, "3");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test633", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165210
-	public void test634() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, "1");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test634", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165210
-	public void test635() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, "1");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_IMPORTS, "0");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test635", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165210
-	public void test636() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, "3");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test636", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165210
-	public void test637() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, "2");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test637", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165210
-	public void test638() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, "1");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test638", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165210
-	public void test639() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, "2");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test639", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165210
-	public void test640() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, "1");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test640", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=168109
-	public void test641() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, DefaultCodeFormatterConstants.MIXED);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, "36");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENTATION_SIZE, "2");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test641", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=166962
-	public void test642() {
-		String resourcePath = getResource("test642", "formatter.xml");
-		Map options = DecodeCodeFormatterPreferences.decodeCodeFormatterOptions(resourcePath, "Visionnaire");
-		assertNotNull("No preferences", options);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test642", "A.js", CodeFormatter.K_JAVASCRIPT_UNIT);//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171634
-	public void test643() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test643", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171634
-	public void test644() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test644", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171634
-	public void test645() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING, JavaScriptCore.INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test645", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171634
-	public void test646() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test646", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171634
-	public void test647() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING, JavaScriptCore.DO_NOT_INSERT);
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test647", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171634
-	public void test648() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING, JavaScriptCore.DO_NOT_INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "0");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test648", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=171634
-	public void test649() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING, JavaScriptCore.INSERT);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, "0");
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test649", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=172848
-	public void test650() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test650", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=172848
-	public void test651() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test651", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=172848
-	public void test652() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test652", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=172848
-	public void test653() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test653", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=172848
-	public void test654() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test654", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=172848
-	public void test655() {
-		final Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		DefaultCodeFormatterOptions preferences = new DefaultCodeFormatterOptions(options);
-		DefaultCodeFormatter codeFormatter = new DefaultCodeFormatter(preferences);
-		runTest(codeFormatter, "test655", "A.js");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentFormatterUtil.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentFormatterUtil.java
deleted file mode 100644
index 7b6407b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentFormatterUtil.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.formatter.comment;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.text.edits.TextEdit;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.TextUtilities;
-
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.ToolFactory;
-import org.eclipse.wst.jsdt.core.formatter.CodeFormatter;
-import org.eclipse.wst.jsdt.core.formatter.DefaultCodeFormatterConstants;
-
-/**
- * Utilities for the comment formatter.
- * 
- * @since 3.0
- */
-public class CommentFormatterUtil {
-	/**
-	 * Formats the source string as a comment region of the specified kind.
-	 * <p>
-	 * Both offset and length must denote a valid comment partition, that is
-	 * to say a substring that starts and ends with the corresponding
-	 * comment delimiter tokens.
-	 * 
-	 * @param kind the kind of the comment
-	 * @param source the source string to format
-	 * @param offset the offset relative to the source string where to
-	 *                format
-	 * @param length the length of the region in the source string to format
-	 * @param preferences preferences for the comment formatter
-	 * @return the formatted source string
-	 */
-	public static String format(int kind, String source, int offset, int length, Map preferences) {
-		Assert.isNotNull(source);
-		IDocument document= new Document(source);
-		
-		try {
-			int indentOffset= document.getLineOffset(document.getLineOfOffset(offset));
-			int indentationLevel= inferIndentationLevel(document.get(indentOffset, offset - indentOffset), getTabSize(preferences));
-			return format(kind, source, offset, length, indentationLevel, preferences);
-		} catch (BadLocationException x) {
-			throw new RuntimeException(x);
-		}
-	}
-	
-	/**
-	 * Formats the source string as a comment region of the specified kind.
-	 * <p>
-	 * Both offset and length must denote a valid comment partition, that is
-	 * to say a substring that starts and ends with the corresponding
-	 * comment delimiter tokens.
-	 * 
-	 * @param kind the kind of the comment
-	 * @param source the source string to format
-	 * @param offset the offset relative to the source string where to
-	 *                format
-	 * @param length the length of the region in the source string to format
-	 * @param preferences preferences for the comment formatter
-	 * @return the formatted source string
-	 */
-	public static String format(int kind, String source, int offset, int length, int indentationLevel, Map preferences) {
-		Assert.isTrue(kind == CodeFormatter.K_JAVA_DOC || kind == CodeFormatter.K_MULTI_LINE_COMMENT || kind == CodeFormatter.K_SINGLE_LINE_COMMENT);
-
-		Assert.isNotNull(source);
-		Assert.isNotNull(preferences);
-
-		Assert.isTrue(offset >= 0);
-		Assert.isTrue(length <= source.length());
-
-		IDocument document= new Document(source);
-		
-		TextEdit edit;
-		edit= ToolFactory.createCodeFormatter(preferences).format(kind, source, offset, length, indentationLevel, TextUtilities.getDefaultLineDelimiter(document));
-		
-		try {
-			if (edit != null)
-				edit.apply(document);
-		} catch (MalformedTreeException x) {
-			throw new RuntimeException(x);
-		} catch (BadLocationException x) {
-			throw new RuntimeException(x);
-		}
-		return document.get();
-	}
-
-	/**
-	 * Infer the indentation level based on the given reference indentation,
-	 * tab size and text measurement.
-	 * 
-	 * @param reference the reference indentation
-	 * @param tabSize the tab size
-	 * @return the inferred indentation level
-	 * @since 3.1
-	 */
-	private static int inferIndentationLevel(String reference, int tabSize) {
-		StringBuffer expanded= expandTabs(reference, tabSize);
-		
-		int spaceWidth, referenceWidth;
-		spaceWidth= 1;
-		referenceWidth= expanded.length();
-		
-		int level= referenceWidth / (tabSize * spaceWidth);
-		if (referenceWidth % (tabSize * spaceWidth) > 0)
-			level++;
-		return level;
-	}
-	
-	/**
-	 * Expands the given string's tabs according to the given tab size.
-	 * 
-	 * @param string the string
-	 * @param tabSize the tab size
-	 * @return the expanded string
-	 * @since 3.1
-	 */
-	private static StringBuffer expandTabs(String string, int tabSize) {
-		StringBuffer expanded= new StringBuffer();
-		for (int i= 0, n= string.length(), chars= 0; i < n; i++) {
-			char ch= string.charAt(i);
-			if (ch == '\t') {
-				for (; chars < tabSize; chars++)
-					expanded.append(' ');
-				chars= 0;
-			} else {
-				expanded.append(ch);
-				chars++;
-				if (chars >= tabSize)
-					chars= 0;
-			}
-		
-		}
-		return expanded;
-	}
-
-	/**
-	 * Returns the value of {@link DefaultCodeFormatterConstants#FORMATTER_TAB_SIZE}
-	 * from the given preferences.
-	 * 
-	 * @param preferences the preferences
-	 * @return the value of {@link DefaultCodeFormatterConstants#FORMATTER_TAB_SIZE}
-	 *         from the given preferences
-	 * @since 3.1
-	 */
-	private static int getTabSize(Map preferences) {
-		if (preferences.containsKey(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE))
-			try {
-				return Integer.parseInt((String) preferences.get(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE));
-			} catch (NumberFormatException e) {
-				// use default
-			}
-		return 4;
-	}
-
-	/**
-	 * Creates a formatting options with all default options and the given custom user options.
-	 * 
-	 * @param user the custom user options
-	 * @return the formatting options
-	 * @since 3.1
-	 */
-	public static Map createOptions(Map user) {
-		final Map map= JavaScriptCore.getOptions();
-
-		if (user != null) {
-
-			for (final Iterator iterator= user.keySet().iterator(); iterator.hasNext();) {
-
-				Object key= iterator.next();
-				Object value = user.get(key);
-				map.put(key, value);
-			}
-		}
-		return map;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentTestCase.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentTestCase.java
deleted file mode 100644
index 453cc16..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentTestCase.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.formatter.comment;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextUtilities;
-
-import org.eclipse.wst.jsdt.core.formatter.CodeFormatter;
-import org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases;
-
-public abstract class CommentTestCase extends SuiteOfTestCases {
-	public static Test buildTestSuite(Class evaluationTestClass) {
-		return buildTestSuite(evaluationTestClass, null); //$NON-NLS-1$
-	}
-
-	public static Test buildTestSuite(Class evaluationTestClass, String suiteName) {
-		TestSuite suite = new Suite(suiteName==null?evaluationTestClass.getName():suiteName);
-		List tests = buildTestsList(evaluationTestClass);
-		for (int index=0, size=tests.size(); index<size; index++) {
-			suite.addTest((Test)tests.get(index));
-		}
-		return suite;
-	}
-
-	public static final String DELIMITER= TextUtilities.getDefaultLineDelimiter(new Document());
-
-	private Map fUserOptions;
-
-	protected CommentTestCase(String name) {
-		super(name);
-	}
-
-	/*
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		fUserOptions= null;
-	}
-	
-	protected abstract int getCommentKind();
-
-	protected Map getUserOptions() {
-		return fUserOptions;
-	}
-	
-	protected void setUserOption(String name, String value) {
-		if (fUserOptions == null)
-			fUserOptions= new HashMap();
-		
-		fUserOptions.put(name, value);
-	}
-	
-	protected void setUserOption(Map options) {
-		if (fUserOptions == null) {
-			fUserOptions= options;
-		} else {
-			fUserOptions.putAll(options);
-		}
-	}	
-	
-	protected final String testFormat(String text) {
-		return testFormat(text, 0, text.length());
-	}
-
-	protected final String testFormat(String text, Map options) {
-		return testFormat(text, 0, text.length(), getCommentKind(), options);
-	}
-	protected String testFormat(String text, int offset, int length) {
-		return testFormat(text, offset, length, getCommentKind());
-	}
-
-	protected String testFormat(String text, int offset, int length, int kind) {
-		return testFormat(text, offset, length, kind, getUserOptions());
-	}
-
-	protected String testFormat(String text, int offset, int length, int kind, Map options) {
-		assertNotNull(text);
-		assertTrue(offset >= 0);
-		assertTrue(offset < text.length());
-		assertTrue(length >= 0);
-		assertTrue(offset + length <= text.length());
-
-		assertTrue(kind == CodeFormatter.K_JAVA_DOC || kind == CodeFormatter.K_MULTI_LINE_COMMENT || kind == CodeFormatter.K_SINGLE_LINE_COMMENT);
-
-		return CommentFormatterUtil.format(kind, text, offset, length, CommentFormatterUtil.createOptions(options));
-	}
-	protected String testFormat(String text, int offset, int length, int kind, int indentationLevel) {
-		assertNotNull(text);
-		assertTrue(offset >= 0);
-		assertTrue(offset < text.length());
-		assertTrue(length >= 0);
-		assertTrue(offset + length <= text.length());
-
-		assertTrue(kind == CodeFormatter.K_JAVA_DOC || kind == CodeFormatter.K_MULTI_LINE_COMMENT || kind == CodeFormatter.K_SINGLE_LINE_COMMENT);
-
-		return CommentFormatterUtil.format(kind, text, offset, length, indentationLevel, CommentFormatterUtil.createOptions(getUserOptions()));
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentsTestSuite.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentsTestSuite.java
deleted file mode 100644
index 2b3c196..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/CommentsTestSuite.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.formatter.comment;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-
-/**
- * @since 3.0
- */
-public class CommentsTestSuite extends TestSuite {
-
-	public static Test suite() {
-		return new CommentsTestSuite();
-	}
-	
-	public CommentsTestSuite() {
-		addTest(MultiLineTestCase.suite());
-		addTest(SingleLineTestCase.suite());
-		//addTest(JavaDocTestCase.suite());
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/JavaDocTestCase.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/JavaDocTestCase.java
deleted file mode 100644
index e50b9d5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/JavaDocTestCase.java
+++ /dev/null
@@ -1,703 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.formatter.comment;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.formatter.CodeFormatter;
-import org.eclipse.wst.jsdt.core.formatter.DefaultCodeFormatterConstants;
-
-import org.eclipse.wst.jsdt.internal.formatter.comment.JavaDocLine;
-import org.eclipse.wst.jsdt.internal.formatter.comment.MultiCommentLine;
-
-public class JavaDocTestCase extends CommentTestCase {
-	
-	static {
-//		TESTS_NAMES = new String[] { "test75460" } ;
-	}
-
-	protected static final String INFIX= MultiCommentLine.MULTI_COMMENT_CONTENT_PREFIX;
-
-	protected static final String POSTFIX= MultiCommentLine.MULTI_COMMENT_END_PREFIX;
-
-	protected static final String PREFIX= JavaDocLine.JAVADOC_START_PREFIX;
-	
-	public static Test suite() {
-		return buildTestSuite(JavaDocTestCase.class);
-	}
-
-	public JavaDocTestCase(String name) {
-		super(name);
-	}
-
-	protected int getCommentKind() {
-		return CodeFormatter.K_JAVA_DOC;
-	}
-
-	public void testSingleLineComment1() {
-		assertEquals(PREFIX + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX, testFormat(PREFIX + "\t\t" + DELIMITER + "*\t test*/")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-	
-	public void testSingleLineComment2() {
-		assertEquals(PREFIX + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX, testFormat(PREFIX + "test" + DELIMITER + "\t" + POSTFIX)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-	
-	public void testSingleLineComment3() {
-		assertEquals(PREFIX + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX, testFormat(PREFIX + DELIMITER + "* test\t*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testSingleLineComment4() {
-		assertEquals(PREFIX + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX, testFormat(PREFIX + "test" + DELIMITER + POSTFIX)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testSingleLineCommentSpace1() {
-		assertEquals(PREFIX + " test" + POSTFIX, testFormat(PREFIX + "test*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testSingleLineCommentSpace2() {
-		assertEquals(PREFIX + " test" + POSTFIX, testFormat(PREFIX + "test" + POSTFIX)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testSingleLineCommentSpace3() {
-		assertEquals(PREFIX + " test" + POSTFIX, testFormat(PREFIX + "test*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testSingleLineCommentSpace4() {
-		assertEquals(PREFIX + " test test" + POSTFIX, testFormat(PREFIX + " test   test*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testSingleLineCommentTabs1() {
-		assertEquals(PREFIX + " test test" + POSTFIX, testFormat(PREFIX + "\ttest\ttest" + POSTFIX)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testSingleLineCommentTabs2() {
-		assertEquals(PREFIX + " test test" + POSTFIX, testFormat(PREFIX + "\ttest\ttest*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public void testMultiLineCommentBreak1() {
-		String input= PREFIX + " test<br>test" + POSTFIX; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + INFIX + "test<br>" + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(expected, testFormat(input));
-	}
-	
-	public void testMultiLineCommentCodeSnippet1() {
-		String prefix= PREFIX + DELIMITER + INFIX + "<pre>" + DELIMITER + INFIX; //$NON-NLS-1$
-		String postfix= DELIMITER + INFIX + "</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String input= prefix + "while (i != 0) i--;" + postfix; //$NON-NLS-1$
-		String expected= prefix + "while (i != 0)" + DELIMITER + INFIX + "\ti--;" + postfix;    //$NON-NLS-1$//$NON-NLS-2$
-		String result= testFormat(input);
-		assertEquals(expected, result);
-		
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting] Error in formatting parts of java code snippets in comment
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44035
-	 */
-	public void testMultiLineCommentCodeSnippet2() {
-		String prefix= PREFIX + DELIMITER + INFIX + "<pre>" + DELIMITER + INFIX; //$NON-NLS-1$
-		String postfix= DELIMITER + INFIX + "</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String input= prefix + "while (i != 0) { i--; }" + postfix; //$NON-NLS-1$
-		String expected= prefix + "while (i != 0) {" + DELIMITER + INFIX + "\ti--;" + DELIMITER + INFIX + "}" + postfix; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		String result= testFormat(input);
-		assertEquals(expected, result);
-		
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		
-		assertEquals(expected, result);
-	}
-	
-	public void testMultiLineCommentCodeSnippet3() {
-		String input= PREFIX + DELIMITER + "<pre>" + DELIMITER + "while (i != 0)" + DELIMITER + "i--;" + DELIMITER + "</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String expected= PREFIX + DELIMITER + INFIX + "<pre>" + DELIMITER + INFIX + "while (i != 0)" + DELIMITER + INFIX + "\ti--;" + DELIMITER + INFIX + "</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String result= testFormat(input);
-		assertEquals(expected, result);
-		
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		
-		assertEquals(expected, result);
-	}
-	
-	public void testMultiLineCommentCodeSnippetHtmlEntities1() {
-		String prefix= PREFIX + DELIMITER + INFIX + "<pre>" + DELIMITER + INFIX; //$NON-NLS-1$
-		String postfix= DELIMITER + INFIX + "</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String input= prefix + "System.out.println(\"test\");" + postfix; //$NON-NLS-1$
-		String expected= prefix + "System.out.println(&quot;test&quot;);" + postfix; //$NON-NLS-1$
-		String result= testFormat(input);
-		assertEquals(expected, result);
-		
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		
-		assertEquals(expected, result);
-	}
-	
-	public void testMultiLineCommentIndentTabs1() {
-		String prefix= "public class Test {" + DELIMITER + "\t\t"; //$NON-NLS-1$ //$NON-NLS-2$
-		String content= PREFIX + DELIMITER + "\t\t\t" + INFIX + "test test" + DELIMITER + "\t\t\t\t" + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		String postfix= DELIMITER + "}"; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + "\t\t" + INFIX + "test test" + DELIMITER + "\t\t" + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		assertEquals(prefix + expected + postfix, testFormat(prefix + content + postfix, prefix.length(), content.length()));
-	}
-	
-	/**
-	 * [formatting] Comments formatter inserts tabs when it should use spaces
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47491
-	 */
-	public void testMultiLineCommentIndentSpaces1() {
-		String prefix= "public class Test {" + DELIMITER + "\t"; //$NON-NLS-1$ //$NON-NLS-2$
-		String content= PREFIX + DELIMITER + "\t\t" + INFIX + "test test" + DELIMITER + "        " + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		String postfix= DELIMITER + "}"; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + "   " + INFIX + "test test" + DELIMITER + "   " + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "3"); //$NON-NLS-1$
-		assertEquals(prefix + expected + postfix, testFormat(prefix + content + postfix, prefix.length(), content.length()));
-	}
-	
-	public void testMultiLineCommentIndentSpaces2() {
-		String prefix= "public class Test {" + DELIMITER + "    "; //$NON-NLS-1$ //$NON-NLS-2$
-		String content= PREFIX + DELIMITER + "\t\t" + INFIX + "test test" + DELIMITER + "        " + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		String postfix= DELIMITER + "}"; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + "      " + INFIX + "test test" + DELIMITER + "      " + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "3"); //$NON-NLS-1$
-		assertEquals(prefix + expected + postfix, testFormat(prefix + content + postfix, prefix.length(), content.length()));
-	}
-	
-	public void testMultiLineCommentIndentSpaces3() {
-		String prefix= "public class Test {" + DELIMITER + "  \t  "; //$NON-NLS-1$ //$NON-NLS-2$
-		String content= PREFIX + DELIMITER + "\t\t" + INFIX + "test test" + DELIMITER + "        " + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		String postfix= DELIMITER + "}"; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + "      " + INFIX + "test test" + DELIMITER + "      " + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "3"); //$NON-NLS-1$
-		assertEquals(prefix + expected + postfix, testFormat(prefix + content + postfix, prefix.length(), content.length()));
-	}
-	
-	public void testMultiLineCommentIndentSpaces4() {
-		String prefix= "public class Test {" + DELIMITER + "   \t   "; //$NON-NLS-1$ //$NON-NLS-2$
-		String content= PREFIX + DELIMITER + "\t\t" + INFIX + "test test" + DELIMITER + "        " + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		String postfix= DELIMITER + "}"; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + "         " + INFIX + "test test" + DELIMITER + "         " + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "3"); //$NON-NLS-1$
-		assertEquals(prefix + expected + postfix, testFormat(prefix + content + postfix, prefix.length(), content.length()));
-	}
-	
-	/**
-	 * [formatting] Repeated insertion of new line when formatting javadoc comment
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=50212
-	 */
-	public void testMultiLineCommentBlankLineAfterPre1() {
-		String input= PREFIX + DELIMITER + INFIX + "<pre></pre>" + DELIMITER  + INFIX + "test" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$
-		String expected= PREFIX + DELIMITER + INFIX + "<pre></pre>" + DELIMITER + INFIX + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$
-		String result= testFormat(input);
-		assertEquals(expected, result);
-		result= testFormat(result);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting][implementation] comment line length not correctly applied
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46341
-	 * Do not wrap.
-	 */
-	public void testMultiLineCommentLineBreakBeforeImmutableRegions1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "22"); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "a <code>test</code>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting][implementation] comment line length not correctly applied
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46341
-	 * Do wrap.
-	 */
-	public void testMultiLineCommentLineBreakBeforeImmutableRegions2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "21"); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "a <code>test</code>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + INFIX + "a" + DELIMITER + INFIX + "<code>test</code>" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting][implementation] comment line length not correctly applied
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=46341
-	 * Do not wrap. (Consecutive immutable regions on multiple lines.)
-	 */
-	public void testMultiLineCommentLineBreakBeforeImmutableRegions3() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "20"); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "a <code>" + DELIMITER + INFIX + "testestestestestestestestestest" + DELIMITER + INFIX + "</code>" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * Prefs > Java > Code Formatter > Comments: Preview incorrect
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55204
-	 * Do not insert blank line before Javadoc tags
-	 */
-	public void testMultiLineCommentBlankLineBeforeJavadoctags1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, JavaScriptCore.DO_NOT_INSERT); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "Description" + DELIMITER + INFIX + "@param test" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * Prefs > Java > Code Formatter > Comments: Preview incorrect
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55204
-	 * Do insert blank line before Javadoc tags
-	 */
-	public void testMultiLineCommentBlankLineBeforeJavadoctags2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, JavaScriptCore.INSERT); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.TRUE); //$NON-NLS-1$
-		String prefix= PREFIX + DELIMITER + INFIX + "Description"; //$NON-NLS-1$
-		String postfix= DELIMITER + INFIX + "@param test" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String input= prefix + postfix;
-		String expected= prefix + DELIMITER + INFIX + postfix;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * Prefs > Java > Code Formatter > Comments: Preview incorrect
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55204
-	 * Do not remove blank line before Javadoc tags
-	 */
-	public void testMultiLineCommentBlankLineBeforeJavadoctags3() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, JavaScriptCore.INSERT); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.TRUE); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "Description" + DELIMITER + INFIX + DELIMITER + INFIX + "@param test" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * Prefs > Java > Code Formatter > Comments: Preview incorrect
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55204
-	 * Do remove blank line before Javadoc tags
-	 */
-	public void testMultiLineCommentBlankLineBeforeJavadoctags4() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, JavaScriptCore.DO_NOT_INSERT); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT,DefaultCodeFormatterConstants.TRUE); //$NON-NLS-1$
-		String prefix= PREFIX + DELIMITER + INFIX + "Description"; //$NON-NLS-1$
-		String postfix= DELIMITER + INFIX + "@param test" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String input= prefix + DELIMITER + INFIX + postfix;
-		String expected= prefix + postfix;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * Prefs > Java > Code Formatter > Comments: Preview incorrect
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55204
-	 * Do not insert blank line before Javadoc tags
-	 * @deprecated
-	 */
-	public void testMultiLineCommentBlankLineBeforeJavadoctags5() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, JavaScriptCore.DO_NOT_INSERT); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES, DefaultCodeFormatterConstants.FALSE); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "Description" + DELIMITER + INFIX + "@param test" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * Prefs > Java > Code Formatter > Comments: Preview incorrect
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55204
-	 * Do insert blank line before Javadoc tags
-	 * @deprecated
-	 */
-	public void testMultiLineCommentBlankLineBeforeJavadoctags6() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, JavaScriptCore.INSERT); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES, DefaultCodeFormatterConstants.TRUE); //$NON-NLS-1$
-		String prefix= PREFIX + DELIMITER + INFIX + "Description"; //$NON-NLS-1$
-		String postfix= DELIMITER + INFIX + "@param test" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String input= prefix + postfix;
-		String expected= prefix + DELIMITER + INFIX + postfix;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * Prefs > Java > Code Formatter > Comments: Preview incorrect
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55204
-	 * Do not remove blank line before Javadoc tags
-	 * @deprecated
-	 */
-	public void testMultiLineCommentBlankLineBeforeJavadoctags7() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, JavaScriptCore.INSERT); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES, DefaultCodeFormatterConstants.TRUE); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "Description" + DELIMITER + INFIX + DELIMITER + INFIX + "@param test" + DELIMITER + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * Prefs > Java > Code Formatter > Comments: Preview incorrect
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55204
-	 * Do remove blank line before Javadoc tags
-	 * @deprecated
-	 */
-	public void testMultiLineCommentBlankLineBeforeJavadoctags8() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, JavaScriptCore.DO_NOT_INSERT); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES,DefaultCodeFormatterConstants.TRUE); //$NON-NLS-1$
-		String prefix= PREFIX + DELIMITER + INFIX + "Description"; //$NON-NLS-1$
-		String postfix= DELIMITER + INFIX + "@param test" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String input= prefix + DELIMITER + INFIX + postfix;
-		String expected= prefix + postfix;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-
-	/**
-	 * [formatting] javadoc formatter removes blank lines between empty javadoc tags (xdoclet fails)
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68577
-	 */
-	public void testLineBreaksBetweenEmptyJavaDocTags1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "@custom1" + DELIMITER + INFIX + DELIMITER + INFIX + "@custom2" + DELIMITER + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting] javadoc formatter removes blank lines between empty javadoc tags (xdoclet fails)
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68577
-	 */
-	public void testLineBreaksBetweenEmptyJavaDocTags2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE); //$NON-NLS-1$
-		String input= PREFIX + DELIMITER + INFIX + "@custom1" + DELIMITER + INFIX + "@custom2" + DELIMITER + POSTFIX;  //$NON-NLS-1$//$NON-NLS-2$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	public void testNoChange1() {
-		String content= PREFIX + DELIMITER + POSTFIX;
-		assertEquals(content, testFormat(content));
-	}
-
-	public void testNoFormat1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		String content= PREFIX + DELIMITER + INFIX + "test" + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX;
-		assertEquals(content, testFormat(content));
-	}
-
-	/**
-	 * @deprecated
-	 */
-	public void testNoFormat2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT, DefaultCodeFormatterConstants.FALSE);
-		String content= PREFIX + DELIMITER + INFIX + "test" + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX;
-		assertEquals(content, testFormat(content));
-	}
-
-	
-	/**
-	 * [formatting] Javadoc Formatter mishandles spaces in comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49686
-	 */
-	public void testInlineTag1() {
-		String input= PREFIX + DELIMITER + INFIX + "{@link Object} has many methods." + DELIMITER + POSTFIX;  //$NON-NLS-1$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting] Javadoc Formatter mishandles spaces in comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49686
-	 */
-	public void testInlineTag2() {
-		String input= PREFIX + DELIMITER + INFIX + "{@link Object}s are cool." + DELIMITER + POSTFIX;  //$NON-NLS-1$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting] Javadoc Formatter mishandles spaces in comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49686
-	 */
-	public void testMultilineInlineTag1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "20"); //$NON-NLS-1$
-		final String prefix= PREFIX + DELIMITER + INFIX + "{@link Object}";
-		final String postfix= "has many methods." + DELIMITER + POSTFIX;
-		String input= prefix + " " + postfix;  //$NON-NLS-1$
-		String expected= prefix + DELIMITER + INFIX + postfix;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting] Javadoc Formatter mishandles spaces in comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49686
-	 */
-	public void testMultilineInlineTag2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "20"); //$NON-NLS-1$
-		final String prefix= PREFIX + DELIMITER + INFIX + "{@link Objecterr}s";
-		final String postfix= "are cool." + DELIMITER + POSTFIX;
-		String input= prefix + " " + postfix;  //$NON-NLS-1$
-		String expected= prefix + DELIMITER + INFIX + postfix;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting] Javadoc Formatter mishandles spaces in comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49686
-	 */
-	public void testTagWordbreaks1() {
-		String input= PREFIX + DELIMITER + INFIX + "<code>Object</code> rocks." + DELIMITER + POSTFIX;  //$NON-NLS-1$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-
-	/**
-	 * [formatting] Javadoc Formatter mishandles spaces in comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49686
-	 */
-	public void testTagWordbreaks2() {
-		String input= PREFIX + DELIMITER + INFIX + "<code>Object</code>s are cool." + DELIMITER + POSTFIX;  //$NON-NLS-1$
-		String expected= input;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-
-	/**
-	 * [formatting] Javadoc Formatter mishandles spaces in comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49686
-	 */
-	public void testMultilineTagWordbreaks1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "20"); //$NON-NLS-1$
-		String prefix= PREFIX + DELIMITER + INFIX + "<code>Object</code>";
-		String postfix=  "rocks." + DELIMITER + POSTFIX;  //$NON-NLS-1$
-		String input= prefix + " " + postfix;
-		String expected= prefix + DELIMITER + INFIX + postfix; 
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-
-	/**
-	 * [formatting] Javadoc Formatter mishandles spaces in comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49686
-	 */
-	public void testMultilineTagWordbreaks2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "20"); //$NON-NLS-1$
-		final String prefix= PREFIX + DELIMITER + INFIX + "Foo";
-		final String postfix= "<code>Obj</code>s" + DELIMITER + POSTFIX;
-		String input= prefix + " " + postfix;
-		String expected= prefix + DELIMITER + INFIX + postfix;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	public void testMultiLineComment() {
-		String input= PREFIX + DELIMITER + " TOTO " + POSTFIX; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + INFIX + "TOTO" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		final String result = testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	public void testMultiLineComment2() {
-		String input= PREFIX + DELIMITER + "TOTO" + POSTFIX; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + INFIX + "TOTO" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		final String result = testFormat(input);
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting] Javadoc formatting: extra newline with [pre]
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52921
-	 * <p>
-	 * This test only formats once.
-	 * </p>
-	 */
-	public void testNoExtraNewlineWithPre1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_SOURCE, DefaultCodeFormatterConstants.TRUE);
-		String input= PREFIX + DELIMITER + INFIX + "<pre>wrap here</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + INFIX + "<pre>" + DELIMITER + INFIX + "wrap here" + DELIMITER + INFIX + "</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$; //$NON-NLS-2$; //$NON-NLS-3$;
-		String result= testFormat(input);
-		assertEquals(expected, result);
-
-		// now re-format several times
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		
-		expected= PREFIX + DELIMITER + INFIX + "<pre>" + DELIMITER + INFIX + "wrap here" + DELIMITER + INFIX + "</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$; //$NON-NLS-2$; //$NON-NLS-3$;
-		assertEquals(expected, result);
-	}
-	
-	/**
-	 * [formatting] Javadoc formatting: extra newline with [pre]
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=52921
-	 * <p>
-	 * This test only formats once.
-	 * </p>
-	 */
-	public void testNoExtraNewlineWithPre2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_SOURCE, DefaultCodeFormatterConstants.FALSE);
-		String input= PREFIX + DELIMITER + INFIX + "<pre>wrap here</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String expected= PREFIX + DELIMITER + INFIX + "<pre>wrap here</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		String result= testFormat(input);
-		assertEquals(expected, result);
-
-		// now re-format several times
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		result= testFormat(result);
-		
-		expected= PREFIX + DELIMITER + INFIX + "<pre>wrap here</pre>" + DELIMITER + POSTFIX; //$NON-NLS-1$
-		assertEquals(expected, result);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=109605
-	public void test109605() {
-		String input = "/**" + DELIMITER +
-				"			 * <pre>" + DELIMITER +
-				"			 * " + DELIMITER +
-				"			 * </pre>" + DELIMITER +
-				"			 * " + DELIMITER +
-				"			 * " + DELIMITER +
-				"			 * @author Darren Pearce" + DELIMITER +
-				"			 * @version 22-Sep-2005" + DELIMITER +
-				"			 * " + DELIMITER +
-				"			 */";
-		
-		String expected = "/**" + DELIMITER +
-				" * <pre>" + DELIMITER + 
-				" * </pre>" + DELIMITER + 
-				" * " +  DELIMITER +
-				" * " + DELIMITER + 
-				" * @author Darren Pearce" + DELIMITER +
-				" * @version 22-Sep-2005" + DELIMITER +
-				" * " + DELIMITER + 
-				" */";
-		String result=testFormat(input);
-		assertEquals(expected, result);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=60453
-	public void test60453() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "80");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE);
-
-		String input = "/** Creates a new instance of DynamicEventChannel  sdf sdfs dsdf dsfsd fd fsd fsdf sdf dsfsd (on the same line)" + DELIMITER + 
-				"* @pre obj != null" + DELIMITER + 
-				"*/";
-		
-		String expected = "/**" + DELIMITER +
-				" * Creates a new instance of DynamicEventChannel sdf sdfs dsdf dsfsd fd fsd fsdf" + DELIMITER +
-				" * sdf dsfsd (on the same line)" + DELIMITER +
-				" * " + DELIMITER +
-				" * @pre obj != null" + DELIMITER +
-				" */";
-		String result=testFormat(input, options);
-		assertEquals(expected, result);
-	}
-
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=60453
-	 * @deprecated
-	 */
-	public void test60453_2() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "80");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES, DefaultCodeFormatterConstants.FALSE);
-
-		String input = "/** Creates a new instance of DynamicEventChannel  sdf sdfs dsdf dsfsd fd fsd fsdf sdf dsfsd (on the same line)" + DELIMITER + 
-				"* @pre obj != null" + DELIMITER + 
-				"*/";
-		
-		String expected = "/**" + DELIMITER +
-				" * Creates a new instance of DynamicEventChannel sdf sdfs dsdf dsfsd fd fsd fsdf" + DELIMITER +
-				" * sdf dsfsd (on the same line)" + DELIMITER +
-				" * " + DELIMITER +
-				" * @pre obj != null" + DELIMITER +
-				" */";
-		String result=testFormat(input, options);
-		assertEquals(expected, result);
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=75460
-	public void test75460() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "200");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_SOURCE, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE);
-
-		String input = "/**" + DELIMITER +
-				"<pre>"+ DELIMITER +
-				"            Object[] objects = new Object[3];" + DELIMITER +
-				"            objects[0] = new String(\"Hallo Welt !!!\");" + DELIMITER +
-				"            objects[1] = new String(\"Test !!!\");" + DELIMITER +
-				"            objects[2] = new Integer(\"1980\");" + DELIMITER +
-				"            ObjectFile.write(pathname, objects);" + DELIMITER +
-				"            Object[] objs = ObjectFile.read(pathname);" + DELIMITER +
-				"            for(int i = 0; i < objs.length; i++)" + DELIMITER +
-				"            {" + DELIMITER +
-				"              System.out.println(objs[i].toString());" + DELIMITER +
-				"            }" + DELIMITER +
-				"</pre>"+ DELIMITER +
-				"*/";
-		
-		String expected = "/**" + DELIMITER +
-				" * <pre>" + DELIMITER +
-				" * Object[] objects = new Object[3];" + DELIMITER +
-				" * objects[0] = new String(&quot;Hallo Welt !!!&quot;);" + DELIMITER +
-				" * objects[1] = new String(&quot;Test !!!&quot;);" + DELIMITER +
-				" * objects[2] = new Integer(&quot;1980&quot;);" + DELIMITER +
-				" * ObjectFile.write(pathname, objects);" + DELIMITER +
-				" * Object[] objs = ObjectFile.read(pathname);" + DELIMITER +
-				" * for (int i = 0; i &lt; objs.length; i++) {" + DELIMITER +
-				" * 	System.out.println(objs[i].toString());" + DELIMITER +
-				" * }" + DELIMITER +
-				" * </pre>" + DELIMITER +
-				" */";
-		String result=testFormat(input, options);
-		assertEquals(expected, result);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/MultiLineTestCase.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/MultiLineTestCase.java
deleted file mode 100644
index 0fbc781..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/MultiLineTestCase.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.formatter.comment;
-
-import java.util.Map;
-
-import org.eclipse.wst.jsdt.core.formatter.CodeFormatter;
-import org.eclipse.wst.jsdt.core.formatter.DefaultCodeFormatterConstants;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.internal.formatter.comment.MultiCommentLine;
-
-public class MultiLineTestCase extends CommentTestCase {
-	protected static final String INFIX= MultiCommentLine.MULTI_COMMENT_CONTENT_PREFIX;
-
-	protected static final String POSTFIX= MultiCommentLine.MULTI_COMMENT_END_PREFIX;
-
-	protected static final String PREFIX= MultiCommentLine.MULTI_COMMENT_START_PREFIX;
-
-	public static Test suite() {
-		return buildTestSuite(MultiLineTestCase.class);
-	}
-
-	public MultiLineTestCase(String name) {
-		super(name);
-	}
-
-	protected int getCommentKind() {
-		return CodeFormatter.K_MULTI_LINE_COMMENT;
-	}
-
-	public void testSingleLineComment1() {
-		assertEquals("/*" + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX, testFormat("/*\t\t" + DELIMITER + "*\t test*/")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-	}
-
-	public void testSingleLineComment2() {
-		assertEquals("/*" + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX, testFormat(PREFIX + "test" + DELIMITER + "\t" + POSTFIX)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-	}
-
-	public void testSingleLineComment3() {
-		assertEquals("/*" + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX, testFormat(PREFIX + DELIMITER + "* test\t*/")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public void testSingleLineComment4() {
-		assertEquals("/*" + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX, testFormat("/*test" + DELIMITER + POSTFIX)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public void testSingleLineCommentSpace1() {
-		assertEquals(PREFIX + "test" + POSTFIX, testFormat("/*test*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testSingleLineCommentSpace2() {
-		assertEquals(PREFIX + "test" + POSTFIX, testFormat("/*test" + POSTFIX)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testSingleLineCommentSpace3() {
-		assertEquals(PREFIX + "test" + POSTFIX, testFormat(PREFIX + "test*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testSingleLineCommentSpace4() {
-		assertEquals(PREFIX + "test test" + POSTFIX, testFormat("/* test   test*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testSingleLineCommentTabs1() {
-		assertEquals(PREFIX + "test test" + POSTFIX, testFormat("/*\ttest\ttest" + POSTFIX)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testSingleLineCommentTabs2() {
-		assertEquals(PREFIX + "test test" + POSTFIX, testFormat("/*\ttest\ttest*/")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * [formatting] formatter removes last line with block comments
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=51654
-	 */
-	public void testMultiLineCommentAsterisk1() {
-		// test3 (currently) forces the comment formatter to actually do something, it wouldn't do anything otherwise.
-		String input= PREFIX + INFIX + "test1" + DELIMITER + "test2" + INFIX + DELIMITER + "test3" + DELIMITER + "test4" + POSTFIX; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String result= testFormat(input);
-		assertTrue(result.indexOf("test1") != -1); //$NON-NLS-1$
-		assertTrue(result.indexOf("test2") != -1); //$NON-NLS-1$
-		assertTrue(result.indexOf("test3") != -1); //$NON-NLS-1$
-		assertTrue(result.indexOf("test4") != -1); //$NON-NLS-1$
-	}
-	
-	public void testNoChange1() {
-		String content= PREFIX + DELIMITER + POSTFIX;
-		assertEquals(content, testFormat(content));
-	}
-	
-	public void testNoFormat1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_BLOCK_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		String content= PREFIX + DELIMITER + INFIX + "test" + DELIMITER + INFIX + "test" + DELIMITER + POSTFIX;
-		assertEquals(content, testFormat(content));
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=145544
-	 */
-	public void testMultiLineCommentFor145544() {
-		setUserOption(DefaultCodeFormatterConstants.getJavaConventionsSettings());
-		String input= "/**\n" +  //$NON-NLS-1$
-				" * Member comment\n" +//$NON-NLS-1$ 
-				" */";//$NON-NLS-1$
-		String result= testFormat(input, 0, input.length(), CodeFormatter.K_MULTI_LINE_COMMENT , 2);
-		String expectedOutput = "/***********************************************************************\n" + 
-				"	 * Member comment\n" + 
-				"	 */";
-		assertEquals("Different output", expectedOutput, result);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=75460
-	public void test75460() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "200");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_BLOCK_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_SOURCE, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT, DefaultCodeFormatterConstants.FALSE);
-
-		String input = "/*" + DELIMITER +
-				"            var objects = new Array(3);" + DELIMITER +
-				"            objects[0] = new String(\"Hallo Welt !!!\");" + DELIMITER +
-				"            objects[1] = new String(\"Test !!!\");" + DELIMITER +
-				"            objects[2] = new Number(\"1980\");" + DELIMITER +
-				"            var objs = ObjectFile.read(pathname);" + DELIMITER +
-				"            for(int i = 0; i < objs.length; i++)" + DELIMITER +
-				"            {" + DELIMITER +
-				"              alert(objs[i].toString());" + DELIMITER +
-				"            }" + DELIMITER +
-				"*/";
-		
-		String expected = input;
-		String result=testFormat(input, options);
-		assertEquals(expected, result);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49412
-	// check backward compatibility
-	public void test49412() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "200");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_BLOCK_COMMENT, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT, DefaultCodeFormatterConstants.TRUE);
-
-		String input = "/*" + DELIMITER + DELIMITER +
-				" test block comment with a blank line" + DELIMITER +
-				"*/";
-		
-		String expected= "/*" + DELIMITER +
-		" * test block comment with a blank line" + DELIMITER +
-		" */";
-
-		String result=testFormat(input, options);
-		assertEquals(expected, result);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49412
-	// check backward compatibility
-	public void test49412_2() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "200");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_BLOCK_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT, DefaultCodeFormatterConstants.TRUE);
-
-		String input = "/*" + DELIMITER + DELIMITER +
-				" test block comment with a blank line" + DELIMITER +
-				"*/";
-		
-		String expected= input;
-
-		String result=testFormat(input, options);
-		assertEquals(expected, result);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=49412
-	// check backward compatibility
-	public void test49412_3() {
-		Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "200");
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_BLOCK_COMMENT, DefaultCodeFormatterConstants.TRUE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT, DefaultCodeFormatterConstants.FALSE);
-
-		String input = "/*" + DELIMITER + DELIMITER +
-				" test block comment with a blank line" + DELIMITER +
-				"*/";
-		
-		String expected= "/*" + DELIMITER +
-		" * "+ DELIMITER +
-		" * test block comment with a blank line" + DELIMITER +
-		" */";
-
-		String result=testFormat(input, options);
-		assertEquals(expected, result);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/SingleLineTestCase.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/SingleLineTestCase.java
deleted file mode 100644
index 8130848..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/formatter/comment/SingleLineTestCase.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.formatter.comment;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.formatter.CodeFormatter;
-import org.eclipse.wst.jsdt.core.formatter.DefaultCodeFormatterConstants;
-
-import org.eclipse.wst.jsdt.internal.formatter.comment.SingleCommentLine;
-
-public class SingleLineTestCase extends CommentTestCase {
-	protected static final String PREFIX= SingleCommentLine.SINGLE_COMMENT_PREFIX;
-	
-	public static Test suite() {
-		return buildTestSuite(SingleLineTestCase.class);
-	}
-
-	public SingleLineTestCase(String name) {
-		super(name);
-	}
-
-	protected int getCommentKind() {
-		return CodeFormatter.K_SINGLE_LINE_COMMENT;
-	}
-
-	public void testClearBlankLines1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "5"); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test\ttest" + DELIMITER + "//" + DELIMITER + "//\t\ttest")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-	}
-
-	public void testClearBlankLines2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "5"); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test\t\ttest" + DELIMITER + PREFIX + DELIMITER + "//\t\ttest")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-	}
-
-	public void testClearBlankLines3() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "5"); //$NON-NLS-1$
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test\ttest" + DELIMITER + "//" + DELIMITER + PREFIX + "test\ttest")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-	}
-
-	public void testCommentBegin1() {
-		assertEquals(PREFIX + "test" + DELIMITER, testFormat("//test")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testCommentBegin2() {
-		assertEquals(PREFIX + "test" + DELIMITER, testFormat(PREFIX + "test")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testCommentBegin3() {
-		assertEquals(PREFIX + "test" + DELIMITER, testFormat("//\t\ttest " + DELIMITER)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testCommentDelimiter1() {
-		assertEquals(PREFIX + "test" + DELIMITER, testFormat("//\t\ttest " + DELIMITER + DELIMITER)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testCommentDelimiter2() {
-		assertEquals(PREFIX + "test" + DELIMITER, testFormat(PREFIX + "test " + DELIMITER + DELIMITER + DELIMITER)); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testCommentSpace1() {
-		assertEquals(PREFIX + "test test" + DELIMITER, testFormat("//test\t \t test")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testCommentSpace2() {
-		assertEquals(PREFIX + "test test" + DELIMITER, testFormat("//test test")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testCommentSpace3() {
-		assertEquals(PREFIX + "test test" + DELIMITER, testFormat(PREFIX + "test \t    \t test")); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public void testCommentWrapping1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "5"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test\ttest")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public void testCommentWrapping2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "1"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test\ttest")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public void testCommentWrapping3() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "32"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test test" + DELIMITER, testFormat("//test\ttest")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public void testCommentWrapping4() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "32"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test test" + DELIMITER, testFormat("//test\ttest" + DELIMITER)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-	
-	public void testCommentWrapping5() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.TAB);
-		String prefix= "public class Test {" + DELIMITER + "	int test; // test test test test test test test test test test test test";
-		String inputInfix= " ";
-		String expectedInfix= DELIMITER + "\t\t\t\t" + PREFIX;
-		String suffix= "test" + DELIMITER + "}" + DELIMITER;
-		String input= prefix + inputInfix + suffix;
-		int offset= input.indexOf("//");
-		assertEquals(prefix + expectedInfix + suffix, testFormat(input, offset, input.indexOf(DELIMITER, offset) + DELIMITER.length() - offset));
-	}
-
-	public void testHeaderComment1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_HEADER, DefaultCodeFormatterConstants.FALSE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "12"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test test" + DELIMITER + PREFIX + "test test" + DELIMITER + PREFIX + "test test" + DELIMITER, testFormat("//test\t\t\t\ttest" + DELIMITER + PREFIX + "test test test test")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-	}
-
-	public void testHeaderComment2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_HEADER, DefaultCodeFormatterConstants.FALSE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "24"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test test test test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test\t\t\t" + DELIMITER + PREFIX + "test test test test" + DELIMITER)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-	}
-
-	public void testIllegalLineLength1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "1"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test\ttest")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public void testIllegalLineLength2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "-16"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat(PREFIX + "\t\t test\ttest")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public void testMultipleComments1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "5"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test test" + DELIMITER + PREFIX + "test test test test")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
-	}
-
-	public void testMultipleComments2() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "12"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test test" + DELIMITER + PREFIX + "test test" + DELIMITER + PREFIX + "test test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//test test\ttest" + DELIMITER + PREFIX + DELIMITER + PREFIX + "test test test test")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-	}
-
-	public void testMultipleComments3() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "11"); //$NON-NLS-1$
-		assertEquals(PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER + PREFIX + "test" + DELIMITER, testFormat("//   test\t\t\ttest\ttest" + DELIMITER + PREFIX + "test test test test")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
-	}
-	
-	public void testIndentedComment1() {
-		String prefix= "public class Test {" + DELIMITER + "\t";
-		String comment= PREFIX + "test" + DELIMITER;
-		String postfix= "}" + DELIMITER;
-		String string= prefix + comment + postfix;
-		assertEquals(string, testFormat(string, prefix.length(), comment.length()));
-	}
-	
-	public void testIndentedComment2() {
-		String prefix= "public class Test {" + DELIMITER + "\tpublic void test() {" + DELIMITER + "\t\t";
-		String comment= PREFIX + "test" + DELIMITER;
-		String postfix= "\t}" + DELIMITER + "}" + DELIMITER;
-		String string= prefix + comment + postfix;
-		assertEquals(string, testFormat(string, prefix.length(), comment.length()));
-	}
-	
-	public void testIndentedComment3() {
-		String prefix= "public class Test {" + DELIMITER + "\tpublic void test() {" + DELIMITER + "\t\tif (true) {" + DELIMITER + "\t\t\t";
-		String comment= PREFIX + "test" + DELIMITER;
-		String postfix= "\t\t}" + DELIMITER + "\t}" + DELIMITER + "}" + DELIMITER;
-		String string= prefix + comment + postfix;
-		assertEquals(string, testFormat(string, prefix.length(), comment.length()));
-	}
-	
-	public void testNoChange1() {
-		String content= PREFIX;
-		assertEquals(content, testFormat(content));
-	}
-	
-	public void testNoFormat1() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_LINE_COMMENT, DefaultCodeFormatterConstants.FALSE);
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, "1");
-		String content= PREFIX + "test test";
-		assertEquals(content, testFormat(content));
-	}
-	public void _test109581() {
-		setUserOption(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_LINE_COMMENT, DefaultCodeFormatterConstants.TRUE);
-		String content= "//// some comment ////";
-		assertEquals(content + DELIMITER, testFormat(content));
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelCompletionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelCompletionTests.java
deleted file mode 100644
index 15f8beb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelCompletionTests.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-import java.util.Hashtable;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-import junit.framework.*;
-
-public abstract class AbstractJavaModelCompletionTests extends AbstractJavaModelTests implements RelevanceConstants {
-	public static List COMPLETION_SUITES = null;
-	protected static IJavaScriptProject COMPLETION_PROJECT;
-	protected class CompletionResult {
-		public String proposals;
-		public String context;
-		public int cursorLocation;
-		public int tokenStart;
-		public int tokenEnd;
-	}
-	Hashtable oldOptions;
-	IJavaScriptUnit wc = null;
-public AbstractJavaModelCompletionTests(String name) {
-	super(name);
-}
-protected void addLibrary(String projectName, String jarName, String sourceZipName, String docZipName, boolean exported) throws JavaScriptModelException {
-	IJavaScriptProject javaProject = getJavaProject(projectName);
-	IProject project = javaProject.getProject();
-	String projectPath = '/' + project.getName() + '/';
-	
-	IIncludePathAttribute[] extraAttributes;
-	if(docZipName == null) {
-		extraAttributes = new IIncludePathAttribute[0];
-	} else {
-		extraAttributes =
-			new IIncludePathAttribute[]{
-				JavaScriptCore.newIncludepathAttribute(
-						IIncludePathAttribute.JSDOC_LOCATION_ATTRIBUTE_NAME,
-						"jar:platform:/resource"+projectPath+docZipName+"!/")};
-	}
-	
-	addLibraryEntry(
-			javaProject,
-			new Path(projectPath + jarName),
-			sourceZipName == null ? null : new Path(projectPath + sourceZipName),
-			sourceZipName == null ? null : new Path(""),
-			null,
-			null,
-			extraAttributes,
-			exported);
-} 
-protected void removeLibrary(String projectName, String jarName) throws CoreException, IOException {
-	IJavaScriptProject javaProject = getJavaProject(projectName);		
-	IProject project = javaProject.getProject();
-	String projectPath = '/' + project.getName() + '/';
-	removeLibraryEntry(javaProject, new Path(projectPath + jarName));
-}
-public IJavaScriptUnit getWorkingCopy(String path, String source) throws JavaScriptModelException {
-	return super.getWorkingCopy(path, source, this.wcOwner, null);
-}
-protected CompletionResult complete(String path, String source, String completeBehind) throws JavaScriptModelException {
-	return this.complete(path, source, false, completeBehind);
-}
-protected CompletionResult complete(String path, String source, boolean showPositions, String completeBehind) throws JavaScriptModelException {
-	return this.complete(path,source,showPositions, completeBehind, null, null);
-}
-protected CompletionResult complete(String path, String source, boolean showPositions, String completeBehind, String tokenStartBehind, String token) throws JavaScriptModelException {
-	this.wc = getWorkingCopy(path, source);
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, showPositions);
-	String str = this.wc.getSource();
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	int tokenStart = -1;
-	int tokenEnd = -1;
-	if(tokenStartBehind != null && token != null) {
-		tokenStart = str.lastIndexOf(tokenStartBehind) + tokenStartBehind.length();
-		tokenEnd = tokenStart + token.length() - 1;
-	}
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	CompletionResult result =  new CompletionResult();
-	result.proposals = requestor.getResults();
-	result.context = requestor.getContext();
-	result.cursorLocation = cursorLocation;
-	result.tokenStart = tokenStart;
-	result.tokenEnd = tokenEnd;
-	return result;
-}
-protected CompletionResult contextComplete(IJavaScriptUnit cu, int cursorLocation) throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, false, false);
-	cu.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	CompletionResult result =  new CompletionResult();
-	result.proposals = requestor.getResults();
-	result.context = requestor.getContext();
-	result.cursorLocation = cursorLocation;
-	return result;
-}
-protected CompletionResult snippetContextComplete(
-		IType type,
-		String snippet,
-		int insertion,
-		int cursorLocation,
-		boolean isStatic) throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, false, false);
-	type.codeComplete(snippet.toCharArray(), insertion, cursorLocation, null, null, null, isStatic, requestor, this.wcOwner);
-	
-	CompletionResult result =  new CompletionResult();
-	result.proposals = requestor.getResults();
-	result.context = requestor.getContext();
-	result.cursorLocation = cursorLocation;
-	return result;
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	this.oldOptions = JavaScriptCore.getOptions();
-	waitUntilIndexesReady();
-}
-protected void setUp() throws Exception {
-	super.setUp();
-	this.wcOwner = new WorkingCopyOwner(){};
-}
-public void tearDownSuite() throws Exception {
-	JavaScriptCore.setOptions(this.oldOptions);
-	this.oldOptions = null;
-	if (COMPLETION_SUITES == null) {
-		deleteProject("Completion");
-	} else {
-		COMPLETION_SUITES.remove(getClass());
-		if (COMPLETION_SUITES.size() == 0) {
-			deleteProject("Completion");
-			COMPLETION_SUITES = null;
-		}
-	}
-	super.tearDownSuite();
-}
-protected void tearDown() throws Exception {
-	if(this.wc != null) {
-		this.wc.discardWorkingCopy();
-		this.wc = null;
-	}
-	super.tearDown();
-}
-protected void assertResults(String expected, String actual) {
-	try {
-		assertEquals(expected, actual);
-	} catch(ComparisonFailure c) {
-		System.out.println(actual);
-		System.out.println();
-		throw c;
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelTests.java
deleted file mode 100644
index ca77cbc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelTests.java
+++ /dev/null
@@ -1,2261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.compiler.libraries.SystemLibraryLocation;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.search.*;
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.core.ClasspathEntry;
-import org.eclipse.wst.jsdt.internal.core.JavaCorePreferenceInitializer;
-import org.eclipse.wst.jsdt.internal.core.JavaElement;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.NameLookup;
-import org.eclipse.wst.jsdt.internal.core.ResolvedSourceMethod;
-import org.eclipse.wst.jsdt.internal.core.ResolvedSourceType;
-import org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine;
-import org.eclipse.wst.jsdt.internal.core.util.Util;
-
-public abstract class AbstractJavaModelTests extends SuiteOfTestCases {
-	
-	/**
-	 * The java.io.File path to the directory that contains the external jars.
-	 */
-	protected static String EXTERNAL_JAR_DIR_PATH;
-
-	// used java project
-	protected IJavaScriptProject currentProject;
-
-	// working copies usage
-	protected IJavaScriptUnit[] workingCopies;
-	protected WorkingCopyOwner wcOwner;
-	
-	// infos for invalid results
-	protected int tabs = 2;
-	protected boolean displayName = false;
-	protected String endChar = ",";
-	
-	public static class ProblemRequestor implements IProblemRequestor {
-		public StringBuffer problems;
-		public int problemCount;
-		protected char[] unitSource;
-		public ProblemRequestor() {
-			initialize(null);
-		}
-		public void acceptProblem(IProblem problem) {
-			org.eclipse.wst.jsdt.core.tests.util.Util.appendProblem(this.problems, problem, this.unitSource, ++this.problemCount);
-			this.problems.append("----------\n");
-		}
-		public void beginReporting() {
-			this.problems.append("----------\n");
-		}
-		public void endReporting() {
-			if (this.problemCount == 0)
-				this.problems.append("----------\n");
-		}
-		public boolean isActive() {
-			return true;
-		}
-		public void initialize(char[] source) {
-			this.problems = new StringBuffer();
-			this.problemCount = 0;
-			this.unitSource = source;
-		}
-	}
-	
-	/**
-	 * Delta listener
-	 */
-	protected class DeltaListener implements IElementChangedListener {
-		/**
-		 * Deltas received from the java model. See 
-		 * <code>#startDeltas</code> and
-		 * <code>#stopDeltas</code>.
-		 */
-		public IJavaScriptElementDelta[] deltas;
-		
-		public ByteArrayOutputStream stackTraces;
-	
-		public void elementChanged(ElementChangedEvent ev) {
-			IJavaScriptElementDelta[] copy= new IJavaScriptElementDelta[deltas.length + 1];
-			System.arraycopy(deltas, 0, copy, 0, deltas.length);
-			copy[deltas.length]= ev.getDelta();
-			deltas= copy;
-			
-//			new Throwable("Caller of IElementChangedListener#elementChanged").printStackTrace(new PrintStream(this.stackTraces));
-		}
-		public JavaScriptUnit getCompilationUnitAST(IJavaScriptUnit workingCopy) {
-			for (int i=0, length= this.deltas.length; i<length; i++) {
-				JavaScriptUnit result = getCompilationUnitAST(workingCopy, this.deltas[i]);
-				if (result != null)
-					return result;
-			}
-			return null;
-		}
-		private JavaScriptUnit getCompilationUnitAST(IJavaScriptUnit workingCopy, IJavaScriptElementDelta delta) {
-			if ((delta.getFlags() & IJavaScriptElementDelta.F_AST_AFFECTED) != 0 && workingCopy.equals(delta.getElement()))
-				return delta.getJavaScriptUnitAST();
-			return null;
-		}
-		protected void sortDeltas(IJavaScriptElementDelta[] elementDeltas) {
-			org.eclipse.wst.jsdt.internal.core.util.Util.Comparer comparer = new org.eclipse.wst.jsdt.internal.core.util.Util.Comparer() {
-				public int compare(Object a, Object b) {
-					IJavaScriptElementDelta deltaA = (IJavaScriptElementDelta)a;
-					IJavaScriptElementDelta deltaB = (IJavaScriptElementDelta)b;
-					return deltaA.getElement().getElementName().compareTo(deltaB.getElement().getElementName());
-				}
-			};
-			org.eclipse.wst.jsdt.internal.core.util.Util.sort(elementDeltas, comparer);
-			for (int i = 0, max = elementDeltas.length; i < max; i++) {
-				IJavaScriptElementDelta delta = elementDeltas[i];
-				IJavaScriptElementDelta[] children = delta.getAffectedChildren();
-				if (children != null) {
-					sortDeltas(children);
-				}
-			}
-		}
-		public String toString() {
-			StringBuffer buffer = new StringBuffer();
-			for (int i=0, length= this.deltas.length; i<length; i++) {
-				IJavaScriptElementDelta delta = this.deltas[i];
-				IJavaScriptElementDelta[] children = delta.getAffectedChildren();
-				int childrenLength=children.length;
-				IResourceDelta[] resourceDeltas = delta.getResourceDeltas();
-				int resourceDeltasLength = resourceDeltas == null ? 0 : resourceDeltas.length;
-				if (childrenLength == 0 && resourceDeltasLength == 0) {
-					buffer.append(delta);
-				} else {
-					sortDeltas(children);
-					for (int j=0; j<childrenLength; j++) {
-						buffer.append(children[j]);
-						if (j != childrenLength-1) {
-							buffer.append("\n");
-						}
-					}
-					for (int j=0; j<resourceDeltasLength; j++) {
-						if (j == 0 && buffer.length() != 0) {
-							buffer.append("\n");
-						}
-						buffer.append(resourceDeltas[j]);
-						if (j != resourceDeltasLength-1) {
-							buffer.append("\n");
-						}
-					}
-				}
-				if (i != length-1) {
-					buffer.append("\n\n");
-				}
-			}
-			return buffer.toString();
-		}
-	}
-	protected DeltaListener deltaListener = new DeltaListener();
-	 
-	
-	public AbstractJavaModelTests(String name) {
-		super(name);
-	}
-
-	public AbstractJavaModelTests(String name, int tabs) {
-		super(name);
-		this.tabs = tabs;
-	}
-
-	/**
-	 * Build a test suite with all tests computed from public methods starting with "test"
-	 * found in the given test class.
-	 * Test suite name is the name of the given test class.
-	 * 
-	 * Note that this lis maybe reduced using some mechanisms detailed in {@link #buildTestsList(Class)} method.
-	 * 
-	 * This test suite differ from this computed in {@link TestCase} in the fact that this is
-	 * a {@link SuiteOfTestCases.Suite} instead of a simple framework {@link TestSuite}.
-	 * 
-	 * @param evaluationTestClass
-	 * @return a test suite ({@link Test}) 
-	 */
-	public static Test buildModelTestSuite(Class evaluationTestClass) {
-		return buildModelTestSuite(evaluationTestClass, ORDERING);
-	}
-
-	/**
-	 * Build a test suite with all tests computed from public methods starting with "test"
-	 * found in the given test class and sorted in alphabetical order.
-	 * Test suite name is the name of the given test class.
-	 * 
-	 * Note that this lis maybe reduced using some mechanisms detailed in {@link #buildTestsList(Class)} method.
-	 * 
-	 * This test suite differ from this computed in {@link TestCase} in the fact that this is
-	 * a {@link SuiteOfTestCases.Suite} instead of a simple framework {@link TestSuite}.
-	 * 
-	 * @param evaluationTestClass
-	 * @param ordering kind of sort use for the list (see {@link #ORDERING} for possible values)
-	 * @return a test suite ({@link Test}) 
-	 */
-	public static Test buildModelTestSuite(Class evaluationTestClass, long ordering) {
-		TestSuite suite = new Suite(evaluationTestClass.getName());
-		List tests = buildTestsList(evaluationTestClass, 0, ordering);
-		for (int index=0, size=tests.size(); index<size; index++) {
-			suite.addTest((Test)tests.get(index));
-		}
-		return suite;
-	}
-
-	protected void addJavaNature(String projectName) throws CoreException {
-		IProject project = getWorkspaceRoot().getProject(projectName);
-		IProjectDescription description = project.getDescription();
-		description.setNatureIds(new String[] {JavaScriptCore.NATURE_ID});
-		project.setDescription(description, null);
-	}
-	protected void assertSearchResults(String expected, Object collector) {
-		assertSearchResults("Unexpected search results", expected, collector);
-	}
-	protected void assertSearchResults(String message, String expected, Object collector) {
-		String actual = collector.toString();
-		if (!expected.equals(actual)) {
-			if (this.displayName) System.out.println(getName()+" actual result is:");
-			System.out.print(displayString(actual, this.tabs));
-			System.out.println(",");
-		}
-		assertEquals(
-			message,
-			expected,
-			actual
-		);
-	}
-	protected void addLibrary(String jarName, String sourceZipName, String[] pathAndContents, String compliance) throws CoreException, IOException {
-		addLibrary(this.currentProject, jarName, sourceZipName, pathAndContents, null, null, compliance);
-	}
-	protected void addLibrary(IJavaScriptProject javaProject, String jarName, String sourceZipName, String[] pathAndContents, String compliance) throws CoreException, IOException {
-		addLibrary(javaProject, jarName, sourceZipName, pathAndContents, null, null, compliance);
-	}
-	protected void addLibrary(IJavaScriptProject javaProject, String libraryPath, String sourceZipName, String[] pathAndContents, String[] librariesInclusionPatterns, String[] librariesExclusionPatterns, String compliance) throws CoreException, IOException {
-		IProject project = javaProject.getProject();
-		String projectLocation = project.getLocation().toOSString();
-	    boolean projectbased=libraryPath==null;
-	    if (projectbased)
-	    	libraryPath=projectLocation;
-		
-		for (int i = 0; i < pathAndContents.length; i+=2) {
-			
-			String jarPath = libraryPath + File.separator + pathAndContents[i];
-			org.eclipse.wst.jsdt.core.tests.util.Util.createFile(jarPath, pathAndContents[i+1]);
-			if (projectbased)
-				project.refreshLocal(IResource.DEPTH_INFINITE, null);
-			String projectPath = '/' + project.getName() + '/';
-			Path path = (projectbased) ?
-					new Path(projectPath +  pathAndContents[i]) :
-						new Path(jarPath);
-			addLibraryEntry(
-				javaProject,
-				path,
-				null,
-				null,
-				toIPathArray(librariesInclusionPatterns),
-				toIPathArray(librariesExclusionPatterns),
-				true
-			);
-			
-		}
-
-	}
-	protected void addLibraryEntry(String path, boolean exported) throws JavaScriptModelException {
-		addLibraryEntry(this.currentProject, new Path(path), null, null, null, null, exported);
-	} 
-	protected void addLibraryEntry(IJavaScriptProject project, String path, boolean exported) throws JavaScriptModelException {
-		addLibraryEntry(project, new Path(path), null, null, null, null, exported);
-	} 
-	protected void addLibraryEntry(IJavaScriptProject project, String path, String srcAttachmentPath, String srcAttachmentPathRoot, boolean exported) throws JavaScriptModelException{
-		addLibraryEntry(
-			project,
-			new Path(path),
-			srcAttachmentPath == null ? null : new Path(srcAttachmentPath),
-			srcAttachmentPathRoot == null ? null : new Path(srcAttachmentPathRoot),
-			null,
-			null,
-			new IIncludePathAttribute[0],
-			exported
-		);
-	}
-	protected void addLibraryEntry(IJavaScriptProject project, IPath path, IPath srcAttachmentPath, IPath srcAttachmentPathRoot, IPath[] accessibleFiles, IPath[] nonAccessibleFiles, boolean exported) throws JavaScriptModelException{
-		addLibraryEntry(
-			project,
-			path,
-			srcAttachmentPath,
-			srcAttachmentPathRoot,
-			accessibleFiles,
-			nonAccessibleFiles,
-			new IIncludePathAttribute[0],
-			exported
-		);
-	}
-	protected void addLibraryEntry(IJavaScriptProject project, IPath path, IPath srcAttachmentPath, IPath srcAttachmentPathRoot, IPath[] accessibleFiles, IPath[] nonAccessibleFiles, IIncludePathAttribute[] extraAttributes, boolean exported) throws JavaScriptModelException{
-		IIncludePathEntry[] entries = project.getRawIncludepath();
-		int length = entries.length;
-		System.arraycopy(entries, 0, entries = new IIncludePathEntry[length + 1], 0, length);
-		entries[length] = JavaScriptCore.newLibraryEntry(
-			path, 
-			srcAttachmentPath, 
-			srcAttachmentPathRoot, 
-			ClasspathEntry.getAccessRules(accessibleFiles, nonAccessibleFiles), 
-			extraAttributes, 
-			exported);
-		project.setRawIncludepath(entries, null);
-	}
-	protected void assertSortedElementsEqual(String message, String expected, IJavaScriptElement[] elements) {
-		sortElements(elements);
-		assertElementsEqual(message, expected, elements);
-	}
-	
-	
-	protected void assertResourcesEqual(String message, String expected, Object[] resources) {
-		sortResources(resources);
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0, length = resources.length; i < length; i++) {
-			if (resources[i] instanceof IResource) {
-				buffer.append(((IResource) resources[i]).getFullPath().toString());
-			} else if (resources[i] instanceof IStorage) {
-				buffer.append(((IStorage) resources[i]).getFullPath().toString());
-			} else if (resources[i] == null) {
-				buffer.append("<null>");
-			}
-			if (i != length-1)buffer.append("\n");
-		}
-		if (!expected.equals(buffer.toString())) {
-			System.out.print(org.eclipse.wst.jsdt.core.tests.util.Util.displayString(buffer.toString(), 2));
-			System.out.println(this.endChar);
-		}
-		assertEquals(
-			message,
-			expected,
-			buffer.toString()
-		);
-	}
-	protected void assertResourceNamesEqual(String message, String expected, Object[] resources) {
-		sortResources(resources);
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0, length = resources.length; i < length; i++) {
-			if (resources[i] instanceof IResource) {
-				buffer.append(((IResource)resources[i]).getName());
-			} else if (resources[i] instanceof IStorage) {
-				buffer.append(((IStorage) resources[i]).getName());
-			} else if (resources[i] == null) {
-				buffer.append("<null>");
-			}
-			if (i != length-1)buffer.append("\n");
-		}
-		if (!expected.equals(buffer.toString())) {
-			System.out.print(org.eclipse.wst.jsdt.core.tests.util.Util.displayString(buffer.toString(), 2));
-			System.out.println(this.endChar);
-		}
-		assertEquals(
-			message,
-			expected,
-			buffer.toString()
-		);
-	}
-	protected void assertElementEquals(String message, String expected, IJavaScriptElement element) {
-		String actual = element == null ? "<null>" : ((JavaElement) element).toStringWithAncestors(false/*don't show key*/);
-		if (!expected.equals(actual)) {
-			if (this.displayName) System.out.println(getName()+" actual result is:");
-			System.out.println(displayString(actual, this.tabs) + this.endChar);
-		}
-		assertEquals(message, expected, actual);
-	}
-	protected void assertElementsEqual(String message, String expected, IJavaScriptElement[] elements) {
-		assertElementsEqual(message, expected, elements, false/*don't show key*/);
-	}
-	protected void assertElementsEqual(String message, String expected, IJavaScriptElement[] elements, boolean showResolvedInfo) {
-		StringBuffer buffer = new StringBuffer();
-		if (elements != null) {
-			for (int i = 0, length = elements.length; i < length; i++){
-				JavaElement element = (JavaElement)elements[i];
-				if (element == null) {
-					buffer.append("<null>");
-				} else {
-					buffer.append(element.toStringWithAncestors(showResolvedInfo));
-				}
-				if (i != length-1) buffer.append("\n");
-			}
-		} else {
-			buffer.append("<null>");
-		}
-		String actual = buffer.toString();
-		if (!expected.equals(actual)) {
-			if (this.displayName) System.out.println(getName()+" actual result is:");
-			System.out.println(displayString(actual, this.tabs) + this.endChar);
-		}
-		assertEquals(message, expected, actual);
-	}
-	protected void assertExceptionEquals(String message, String expected, JavaScriptModelException exception) {
-		String actual = exception == null ? "<null>" : exception.getStatus().getMessage();
-		if (!expected.equals(actual)) {
-			if (this.displayName) System.out.println(getName()+" actual result is:");
-			System.out.println(displayString(actual, this.tabs) + this.endChar);
-		}
-		assertEquals(message, expected, actual);
-	}
-	protected void assertHierarchyEquals(String expected, ITypeHierarchy hierarchy) {
-		String actual = hierarchy.toString();
-		if (!expected.equals(actual)) {
-			if (this.displayName) System.out.println(getName()+" actual result is:");
-			System.out.println(displayString(actual, this.tabs) + this.endChar);
-		}
-		assertEquals("Unexpected type hierarchy", expected, actual);
-	}
-	protected void assertMarkers(String message, String expectedMarkers, IJavaScriptProject project) throws CoreException {
-		waitForAutoBuild();
-		IMarker[] markers = project.getProject().findMarkers(IJavaScriptModelMarker.BUILDPATH_PROBLEM_MARKER, false, IResource.DEPTH_ZERO);
-		sortMarkers(markers);
-		assertMarkers(message, expectedMarkers, markers);
-	}
-	protected void sortMarkers(IMarker[] markers) {
-		org.eclipse.wst.jsdt.internal.core.util.Util.Comparer comparer = new org.eclipse.wst.jsdt.internal.core.util.Util.Comparer() {
-			public int compare(Object a, Object b) {
-				IMarker markerA = (IMarker)a;
-				IMarker markerB = (IMarker)b;
-				return markerA.getAttribute(IMarker.MESSAGE, "").compareTo(markerB.getAttribute(IMarker.MESSAGE, "")); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		};
-		org.eclipse.wst.jsdt.internal.core.util.Util.sort(markers, comparer);
-	}
-	protected void assertMarkers(String message, String expectedMarkers, IMarker[] markers) throws CoreException {
-		StringBuffer buffer = new StringBuffer();
-		if (markers != null) {
-			for (int i = 0, length = markers.length; i < length; i++) {
-				IMarker marker = markers[i];
-				buffer.append(marker.getAttribute(IMarker.MESSAGE));
-				if (i != length-1) {
-					buffer.append("\n");
-				}
-			}
-		}
-		String actual = buffer.toString();
-		if (!expectedMarkers.equals(actual)) {
-		 	System.out.println(org.eclipse.wst.jsdt.core.tests.util.Util.displayString(actual, 2));
-		}
-		assertEquals(message, expectedMarkers, actual);
-	}
-	
-	protected void assertProblems(String message, String expected, ProblemRequestor problemRequestor) {
-		String actual = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(problemRequestor.problems.toString());
-		String independantExpectedString = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(expected);
-		if (!independantExpectedString.equals(actual)){
-		 	System.out.println(org.eclipse.wst.jsdt.core.tests.util.Util.displayString(actual, this.tabs));
-		}
-		assertEquals(
-			message,
-			independantExpectedString,
-			actual);
-	}
-	/*
-	 * Asserts that the given actual source (usually coming from a file content) is equal to the expected one.
-	 * Note that 'expected' is assumed to have the '\n' line separator. 
-	 * The line separators in 'actual' are converted to '\n' before the comparison.
-	 */
-	protected void assertSourceEquals(String message, String expected, String actual) {
-		if (actual == null) {
-			assertEquals(message, expected, null);
-			return;
-		}
-		actual = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(actual);
-		if (!actual.equals(expected)) {
-			System.out.print(org.eclipse.wst.jsdt.core.tests.util.Util.displayString(actual.toString(), 2));
-			System.out.println(this.endChar);
-		}
-		assertEquals(message, expected, actual);
-	}
-	/*
-	 * Ensures that the toString() of the given AST node is as expected.
-	 */
-	public void assertASTNodeEquals(String message, String expected, ASTNode actual) {
-		String actualString = actual == null ? "null" : actual.toString();
-		assertSourceEquals(message, expected, actualString);
-	}
-	/**
-	 * Ensures the elements are present after creation.
-	 */
-	public void assertCreation(IJavaScriptElement[] newElements) {
-		for (int i = 0; i < newElements.length; i++) {
-			IJavaScriptElement newElement = newElements[i];
-			assertTrue("Element should be present after creation", newElement.exists());
-		}
-	}
-	protected void assertClasspathEquals(IIncludePathEntry[] classpath, String expected) {
-		String actual;
-		if (classpath == null) {
-			actual = "<null>";
-		} else {
-			StringBuffer buffer = new StringBuffer();
-			int length = classpath.length;
-			for (int i=0; i<length; i++) {
-				buffer.append(classpath[i]);
-				if (i < length-1)
-					buffer.append('\n');
-			}
-			actual = buffer.toString();
-		}
-		if (!actual.equals(expected)) {
-		 	System.out.print(org.eclipse.wst.jsdt.core.tests.util.Util.displayString(actual, 2));
-		}
-		assertEquals(expected, actual);
-	}
-	/**
-	 * Ensures the element is present after creation.
-	 */
-	public void assertCreation(IJavaScriptElement newElement) {
-		assertCreation(new IJavaScriptElement[] {newElement});
-	}
-	/**
-	 * Creates an operation to delete the given elements, asserts
-	 * the operation is successful, and ensures the elements are no
-	 * longer present in the model.
-	 */
-	public void assertDeletion(IJavaScriptElement[] elementsToDelete) throws JavaScriptModelException {
-		IJavaScriptElement elementToDelete = null;
-		for (int i = 0; i < elementsToDelete.length; i++) {
-			elementToDelete = elementsToDelete[i];
-			assertTrue("Element must be present to be deleted", elementToDelete.exists());
-		}
-	
-		getJavaModel().delete(elementsToDelete, false, null);
-		
-		for (int i = 0; i < elementsToDelete.length; i++) {
-			elementToDelete = elementsToDelete[i];
-			assertTrue("Element should not be present after deletion: " + elementToDelete, !elementToDelete.exists());
-		}
-	}
-	protected void assertDeltas(String message, String expected) {
-		String actual = this.deltaListener.toString();
-		if (!expected.equals(actual)) {
-			System.out.println(displayString(actual, 2));
-			System.err.println(this.deltaListener.stackTraces.toString());
-		}
-		assertEquals(
-			message,
-			expected,
-			actual);
-	}
-	protected void assertDeltas(String message, String expected, IJavaScriptElementDelta delta) {
-		String actual = delta == null ? "<null>" : delta.toString();
-		if (!expected.equals(actual)) {
-			System.out.println(displayString(actual, 2));
-			System.err.println(this.deltaListener.stackTraces.toString());
-		}
-		assertEquals(
-			message,
-			expected,
-			actual);
-	}
-	protected void assertTypesEqual(String message, String expected, IType[] types) {
-		assertTypesEqual(message, expected, types, true);
-	}
-	protected void assertTypesEqual(String message, String expected, IType[] types, boolean sort) {
-		if (sort) this.sortTypes(types);
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0; i < types.length; i++){
-			if (types[i] == null)
-				buffer.append("<null>");
-			else
-				buffer.append(types[i].getFullyQualifiedName());
-			buffer.append("\n");
-		}
-		String actual = buffer.toString();
-		if (!expected.equals(actual)) {
-			System.out.println(displayString(actual, 2) +  this.endChar);
-		}
-		assertEquals(message, expected, actual);
-	}
-	protected void assertSortedStringsEqual(String message, String expected, String[] strings) {
-		Util.sort(strings);
-		assertStringsEqual(message, expected, strings);
-	}
-	protected void assertStringsEqual(String message, String expected, String[] strings) {
-		String actual = toString(strings, true/*add extra new lines*/);
-		if (!expected.equals(actual)) {
-			System.out.println(displayString(actual, this.tabs) + this.endChar);
-		}
-		assertEquals(message, expected, actual);
-	}
-	protected void assertStringsEqual(String message, String[] expectedStrings, String[] actualStrings) {
-		String expected = toString(expectedStrings, false/*don't add extra new lines*/);
-		String actual = toString(actualStrings, false/*don't add extra new lines*/);
-		if (!expected.equals(actual)) {
-			System.out.println(displayString(actual, this.tabs) + this.endChar);
-		}
-		assertEquals(message, expected, actual);
-	}
-	/**
-	 * Attaches a source zip to the given jar package fragment root.
-	 */
-	protected void attachSource(IPackageFragmentRoot root, String sourcePath, String sourceRoot) throws JavaScriptModelException {
-		IJavaScriptProject javaProject = root.getJavaScriptProject();
-		IIncludePathEntry[] entries = (IIncludePathEntry[])javaProject.getRawIncludepath().clone();
-		for (int i = 0; i < entries.length; i++){
-			IIncludePathEntry entry = entries[i];
-			if (entry.getPath().toOSString().toLowerCase().equals(root.getPath().toOSString().toLowerCase())) {
-				entries[i] = JavaScriptCore.newLibraryEntry(
-					root.getPath(),
-					sourcePath == null ? null : new Path(sourcePath),
-					sourceRoot == null ? null : new Path(sourceRoot),
-					false);
-				break;
-			}
-		}
-		javaProject.setRawIncludepath(entries, null);
-	}
-	/**
-	 * Creates an operation to delete the given element, asserts
-	 * the operation is successfull, and ensures the element is no
-	 * longer present in the model.
-	 */
-	public void assertDeletion(IJavaScriptElement elementToDelete) throws JavaScriptModelException {
-		assertDeletion(new IJavaScriptElement[] {elementToDelete});
-	}
-	/**
-	 * Empties the current deltas.
-	 */
-	public void clearDeltas() {
-		this.deltaListener.deltas = new IJavaScriptElementDelta[0];
-		this.deltaListener.stackTraces = new ByteArrayOutputStream();
-	}
-	protected IJavaScriptElement[] codeSelect(ISourceReference sourceReference, String selectAt, String selection) throws JavaScriptModelException {
-		String str = sourceReference.getSource();
-		int start = str.indexOf(selectAt);
-		int length = selection.length();
-		return ((ICodeAssist)sourceReference).codeSelect(start, length);
-	}
-	protected IJavaScriptElement[] codeSelectAt(ISourceReference sourceReference, String selectAt) throws JavaScriptModelException {
-		String str = sourceReference.getSource();
-		int start = str.indexOf(selectAt) + selectAt.length();
-		int length = 0;
-		return ((ICodeAssist)sourceReference).codeSelect(start, length);
-	}
-	/**
-	 * Copy file from src (path to the original file) to dest (path to the destination file).
-	 */
-	public void copy(File src, File dest) throws IOException {
-		// read source bytes
-		byte[] srcBytes = this.read(src);
-		
-		if (convertToIndependantLineDelimiter(src)) {
-			String contents = new String(srcBytes);
-			contents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(contents);
-			srcBytes = contents.getBytes();
-		}
-	
-		// write bytes to dest
-		FileOutputStream out = new FileOutputStream(dest);
-		out.write(srcBytes);
-		out.close();
-	}
-	
-	public boolean convertToIndependantLineDelimiter(File file) {
-		return file.getName().endsWith(".js");
-	}
-	
-	/**
-	 * Copy the given source directory (and all its contents) to the given target directory.
-	 */
-	protected void copyDirectory(File source, File target) throws IOException {
-		if (!target.exists()) {
-			target.mkdirs();
-		}
-		File[] files = source.listFiles();
-		if (files == null) return;
-		for (int i = 0; i < files.length; i++) {
-			File sourceChild = files[i];
-			String name =  sourceChild.getName();
-			if (name.equals("CVS") || name.equals(".svn")) continue;
-			File targetChild = new File(target, name);
-			if (sourceChild.isDirectory()) {
-				copyDirectory(sourceChild, targetChild);
-			} else {
-				copy(sourceChild, targetChild);
-			}
-		}
-	}
-	protected IFolder createFolder(IPath path) throws CoreException {
-		final IFolder folder = getWorkspaceRoot().getFolder(path);
-		getWorkspace().run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				IContainer parent = folder.getParent();
-				if (parent instanceof IFolder && !parent.exists()) {
-					createFolder(parent.getFullPath());
-				} 
-				folder.create(true, true, null);
-			}
-		},
-		null);
-	
-		return folder;
-	}
-	/*
-	 * Creates a Java project where prj=src=bin and with JCL_LIB on its classpath.
-	 */
-	protected IJavaScriptProject createJavaProject(String projectName) throws CoreException {
-		return this.createJavaProject(projectName, new String[] {""}, new String[] {"JCL_LIB"});
-	}
-	/*
-	 * Creates a Java project with the given source folders an output location. 
-	 * Add those on the project's classpath.
-	 */
-	protected IJavaScriptProject createJavaProject(String projectName, String[] sourceFolders) throws CoreException {
-		return 
-			this.createJavaProject(
-				projectName, 
-				sourceFolders, 
-				null/*no lib*/, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no project*/, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no exported project*/, 
-				null/*no inclusion pattern*/, 
-				null/*no exclusion pattern*/,
-				"1.4"
-			);
-	}
-	/*
-	 * Creates a Java project with the given source folders an output location. 
-	 * Add those on the project's classpath.
-	 */
-	protected IJavaScriptProject createJavaProject(String projectName, String[] sourceFolders, String output, String[] sourceOutputs) throws CoreException {
-		return 
-			this.createJavaProject(
-				projectName, 
-				sourceFolders, 
-				null/*no lib*/, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no project*/, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no exported project*/, 
-				null/*no inclusion pattern*/, 
-				null/*no exclusion pattern*/,
-				"1.4"
-			);
-	}
-	protected IJavaScriptProject createJavaProject(String projectName, String[] sourceFolders, String[] libraries) throws CoreException {
-		return 
-			this.createJavaProject(
-				projectName, 
-				sourceFolders, 
-				libraries, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no project*/, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no exported project*/, 
-				null/*no inclusion pattern*/, 
-				null/*no exclusion pattern*/,
-				"1.4"
-			);
-	}
-	protected IJavaScriptProject createJavaProject(String projectName, String[] sourceFolders, String[] libraries, String output, String compliance) throws CoreException {
-		return 
-			this.createJavaProject(
-				projectName, 
-				sourceFolders, 
-				libraries, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no project*/, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no exported project*/, 
-				null/*no inclusion pattern*/, 
-				null/*no exclusion pattern*/,
-				compliance
-			);
-	}
-	protected IJavaScriptProject createJavaProject(String projectName, String[] sourceFolders, String[] libraries, String[] projects) throws CoreException {
-		return
-			this.createJavaProject(
-				projectName,
-				sourceFolders,
-				libraries,
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				projects,
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no exported project*/, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				"1.4"
-			);
-	}
-	protected SearchPattern createPattern(IJavaScriptElement element, int limitTo) {
-		return SearchPattern.createPattern(element, limitTo);
-	}
-	protected SearchPattern createPattern(String stringPattern, int searchFor, int limitTo, boolean isCaseSensitive) {
-		int matchMode = stringPattern.indexOf('*') != -1 || stringPattern.indexOf('?') != -1
-			? SearchPattern.R_PATTERN_MATCH
-			: SearchPattern.R_EXACT_MATCH;
-		int matchRule = isCaseSensitive ? matchMode | SearchPattern.R_CASE_SENSITIVE : matchMode;
-		return SearchPattern.createPattern(stringPattern, searchFor, limitTo, matchRule);
-	}
-	protected IJavaScriptProject createJavaProject(String projectName, String[] sourceFolders, String[] libraries, String[] projects, boolean[] exportedProject, String projectOutput) throws CoreException {
-		return
-			this.createJavaProject(
-				projectName,
-				sourceFolders,
-				libraries,
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				projects,
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				exportedProject, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				"1.4"
-			);
-	}
-	protected IJavaScriptProject createJavaProject(String projectName, String[] sourceFolders, String[] libraries, String[] projects, String projectOutput, String compliance) throws CoreException {
-		return 
-			createJavaProject(
-				projectName, 
-				sourceFolders, 
-				libraries, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				projects, 
-				null/*no inclusion pattern*/,
-				null/*no exclusion pattern*/,
-				null/*no exported project*/, 
-				null/*no inclusion pattern*/, 
-				null/*no exclusion pattern*/,
-				compliance
-			);
-		}
-	protected IJavaScriptProject createJavaProject(final String projectName, final String[] sourceFolders, final String[] libraries, final String[] projects, final boolean[] exportedProjects, final String projectOutput, final String[] sourceOutputs, final String[][] inclusionPatterns, final String[][] exclusionPatterns, final String compliance) throws CoreException {
-		return
-		this.createJavaProject(
-			projectName,
-			sourceFolders,
-			libraries,
-			null/*no inclusion pattern*/,
-			null/*no exclusion pattern*/,
-			projects,
-			null/*no inclusion pattern*/,
-			null/*no exclusion pattern*/,
-			exportedProjects, 
-			inclusionPatterns,
-			exclusionPatterns,
-			compliance
-		);
-	}
-	protected IJavaScriptProject createJavaProject(
-			final String projectName,
-			final String[] sourceFolders,
-			final String[] libraries,
-			final String[][] librariesInclusionPatterns,
-			final String[][] librariesExclusionPatterns,
-			final String[] projects,
-			final String[][] projectsInclusionPatterns,
-			final String[][] projectsExclusionPatterns,
-			final boolean[] exportedProjects,
-			final String[][] inclusionPatterns,
-			final String[][] exclusionPatterns,
-			final String compliance) throws CoreException {
-		return createJavaProject(
-			projectName,
-			sourceFolders,
-			libraries,
-			librariesInclusionPatterns,
-			librariesExclusionPatterns,
-			projects,
-			projectsInclusionPatterns,
-			projectsExclusionPatterns,
-			true, // combine access restrictions by default
-			exportedProjects,
-			inclusionPatterns,
-			exclusionPatterns,
-			compliance);
-	}
-	protected IJavaScriptProject createJavaProject(
-			final String projectName,
-			final String[] sourceFolders,
-			final String[] libraries,
-			final String[][] librariesInclusionPatterns,
-			final String[][] librariesExclusionPatterns,
-			final String[] projects,
-			final String[][] projectsInclusionPatterns,
-			final String[][] projectsExclusionPatterns,
-			final boolean combineAccessRestrictions,
-			final boolean[] exportedProjects,
-			final String[][] inclusionPatterns,
-			final String[][] exclusionPatterns,
-			final String compliance) throws CoreException {
-		final IJavaScriptProject[] result = new IJavaScriptProject[1];
-		IWorkspaceRunnable create = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				// create project
-				createProject(projectName);
-				
-				// set java nature
-				addJavaNature(projectName);
-				
-				// create classpath entries 
-				
-				IProject project = getWorkspaceRoot().getProject(projectName);
-				IPath projectPath = project.getFullPath();
-				int sourceLength = sourceFolders == null ? 0 : sourceFolders.length;
-				int libLength = libraries == null ? 0 : libraries.length;
-				int projectLength = projects == null ? 0 : projects.length;
-				/* 
-				 * 
-				 * Default JRE entry
-				 */
-				
-				
-				
-				IIncludePathEntry[] entries = new IIncludePathEntry[sourceLength+libLength+projectLength+1];
-				for (int i= 0; i < sourceLength; i++) {
-					IPath sourcePath = new Path(sourceFolders[i]);
-					int segmentCount = sourcePath.segmentCount();
-					if (segmentCount > 0) {
-						// create folder and its parents
-						IContainer container = project;
-						for (int j = 0; j < segmentCount; j++) {
-							IFolder folder = container.getFolder(new Path(sourcePath.segment(j)));
-							if (!folder.exists()) {
-								folder.create(true, true, null);
-							}
-							container = folder;
-						}
-					}
-
-					// inclusion patterns
-					IPath[] inclusionPaths;
-					if (inclusionPatterns == null) {
-						inclusionPaths = new IPath[0];
-					} else {
-						String[] patterns = inclusionPatterns[i];
-						int length = patterns.length;
-						inclusionPaths = new IPath[length];
-						for (int j = 0; j < length; j++) {
-							String inclusionPattern = patterns[j];
-							inclusionPaths[j] = new Path(inclusionPattern);
-						}
-					}
-					// exclusion patterns
-					IPath[] exclusionPaths;
-					if (exclusionPatterns == null) {
-						exclusionPaths = new IPath[0];
-					} else {
-						String[] patterns = exclusionPatterns[i];
-						int length = patterns.length;
-						exclusionPaths = new IPath[length];
-						for (int j = 0; j < length; j++) {
-							String exclusionPattern = patterns[j];
-							exclusionPaths[j] = new Path(exclusionPattern);
-						}
-					}
-					// create source entry
-					entries[i] = 
-						JavaScriptCore.newSourceEntry(
-							projectPath.append(sourcePath), 
-							inclusionPaths,
-							exclusionPaths, 
-							null
-						);
-				}
-				
-		
-				
-				for (int i= 0; i < libLength; i++) {
-					String lib = libraries[i];
-					if (lib.startsWith("JCL")) {
-						try {
-							// ensure JCL variables are set
-							setUpJCLClasspathVariables(compliance);
-						} catch (IOException e) {
-							e.printStackTrace();
-						}
-					}
-					
-					// accessible files
-					IPath[] accessibleFiles;
-					if (librariesInclusionPatterns == null) {
-						accessibleFiles = new IPath[0];
-					} else {
-						String[] patterns = librariesInclusionPatterns[i];
-						int length = patterns.length;
-						accessibleFiles = new IPath[length];
-						for (int j = 0; j < length; j++) {
-							String inclusionPattern = patterns[j];
-							accessibleFiles[j] = new Path(inclusionPattern);
-						}
-					}
-					// non accessible files
-					IPath[] nonAccessibleFiles;
-					if (librariesExclusionPatterns == null) {
-						nonAccessibleFiles = new IPath[0];
-					} else {
-						String[] patterns = librariesExclusionPatterns[i];
-						int length = patterns.length;
-						nonAccessibleFiles = new IPath[length];
-						for (int j = 0; j < length; j++) {
-							String exclusionPattern = patterns[j];
-							nonAccessibleFiles[j] = new Path(exclusionPattern);
-						}
-					}
-					if (lib.indexOf(File.separatorChar) == -1 && lib.charAt(0) != '/' && lib.equals(lib.toUpperCase())) { // all upper case is a var 
-						char[][] vars = CharOperation.splitOn(',', lib.toCharArray());
-						entries[sourceLength+i] = JavaScriptCore.newVariableEntry(
-							new Path(new String(vars[0])), 
-							vars.length > 1 ? new Path(new String(vars[1])) : null, 
-							vars.length > 2 ? new Path(new String(vars[2])) : null);
-					} else if (lib.startsWith("org.eclipse.wst.jsdt.core.tests.model.")) { // container
-						entries[sourceLength+i] = JavaScriptCore.newContainerEntry(
-								new Path(lib),
-								ClasspathEntry.getAccessRules(accessibleFiles, nonAccessibleFiles),
-								new IIncludePathAttribute[0],
-								false);
-					} else {
-						IPath libPath = new Path(lib);
-						if (!libPath.isAbsolute() && libPath.segmentCount() > 0 && libPath.getFileExtension() == null) {
-							project.getFolder(libPath).create(true, true, null);
-							libPath = projectPath.append(libPath);
-						}
-						entries[sourceLength+i] = JavaScriptCore.newLibraryEntry(
-								libPath,
-								null,
-								null,
-								ClasspathEntry.getAccessRules(accessibleFiles, nonAccessibleFiles),
-								new IIncludePathAttribute[0], 
-								false);
-					}
-				}
-				for  (int i= 0; i < projectLength; i++) {
-					boolean isExported = exportedProjects != null && exportedProjects.length > i && exportedProjects[i];
-					
-					// accessible files
-					IPath[] accessibleFiles;
-					if (projectsInclusionPatterns == null) {
-						accessibleFiles = new IPath[0];
-					} else {
-						String[] patterns = projectsInclusionPatterns[i];
-						int length = patterns.length;
-						accessibleFiles = new IPath[length];
-						for (int j = 0; j < length; j++) {
-							String inclusionPattern = patterns[j];
-							accessibleFiles[j] = new Path(inclusionPattern);
-						}
-					}
-					// non accessible files
-					IPath[] nonAccessibleFiles;
-					if (projectsExclusionPatterns == null) {
-						nonAccessibleFiles = new IPath[0];
-					} else {
-						String[] patterns = projectsExclusionPatterns[i];
-						int length = patterns.length;
-						nonAccessibleFiles = new IPath[length];
-						for (int j = 0; j < length; j++) {
-							String exclusionPattern = patterns[j];
-							nonAccessibleFiles[j] = new Path(exclusionPattern);
-						}
-					}
-					
-					entries[sourceLength+libLength+i] =
-						JavaScriptCore.newProjectEntry(
-								new Path(projects[i]),
-								ClasspathEntry.getAccessRules(accessibleFiles, nonAccessibleFiles),
-								combineAccessRestrictions,
-								new IIncludePathAttribute[0], 
-								isExported);
-				}
-				
-				// set classpath and output location
-				IJavaScriptProject javaProject = JavaScriptCore.create(project);
-				
-				
-				
-				
-				/* ensure system.js entry */
-				IIncludePathEntry jreEntry = JavaScriptCore.newContainerEntry(new Path("org.eclipse.wst.jsdt.launching.JRE_CONTAINER"));
-				entries[entries.length-1] = jreEntry;
-				
-				
-				javaProject.setRawIncludepath(entries, null);
-				
-				// set compliance level options
-				if ("1.5".equals(compliance)) {
-					Map options = new HashMap();
-					options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-					options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);	
-					options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);	
-					javaProject.setOptions(options);
-				}
-				
-				result[0] = javaProject;
-			}
-		};
-	
-		getWorkspace().run(create, null);
-		
-		
-		return result[0];
-	}
-	/*
-	 * Create simple project.
-	 */
-	protected IProject createProject(final String projectName) throws CoreException {
-		final IProject project = getProject(projectName);
-		IWorkspaceRunnable create = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				project.create(null);
-				project.open(null);
-			}
-		};
-		getWorkspace().run(create, null);	
-		return project;
-	}
-	public void deleteFile(File file) {
-		int retryCount = 0;
-		while (++retryCount <= 60) { // wait 1 minute at most
-			if (org.eclipse.wst.jsdt.core.tests.util.Util.delete(file)) {
-				break;
-			}
-		}
-	}
-	protected void deleteFolder(IPath folderPath) throws CoreException {
-		deleteResource(getFolder(folderPath));
-	}
-	protected void deleteProject(String projectName) throws CoreException {
-		IProject project = this.getProject(projectName);
-		if (project.exists() && !project.isOpen()) { // force opening so that project can be deleted without logging (see bug 23629)
-			project.open(null);
-		}
-		deleteResource(project);
-	}
-	protected void deleteProject(IJavaScriptProject project) throws CoreException {
-		if (project.exists() && !project.isOpen()) { // force opening so that project can be deleted without logging (see bug 23629)
-			project.open(null);
-		}
-		deleteResource(project.getProject());
-	}
-	
-	/**
-	 * Batch deletion of projects
-	 */
-	protected void deleteProjects(final String[] projectNames) throws CoreException {
-		ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				if (projectNames != null){
-					for (int i = 0, max = projectNames.length; i < max; i++){
-						if (projectNames[i] != null)
-							deleteProject(projectNames[i]);
-					}
-				}
-			}
-		},
-		null);
-	}
-	/**
-	 * Delete this resource.
-	 */
-	public void deleteResource(IResource resource) throws CoreException {
-		int retryCount = 0; // wait 1 minute at most
-		while (++retryCount <= 60) {
-			if (!org.eclipse.wst.jsdt.core.tests.util.Util.delete(resource)) {
-				System.gc();
-			}
-		}
-	}
-	/**
-	 * Returns true if this delta is flagged as having changed children.
-	 */
-	protected boolean deltaChildrenChanged(IJavaScriptElementDelta delta) {
-		return delta.getKind() == IJavaScriptElementDelta.CHANGED &&
-			(delta.getFlags() & IJavaScriptElementDelta.F_CHILDREN) != 0;
-	}
-	/**
-	 * Returns true if this delta is flagged as having had a content change
-	 */
-	protected boolean deltaContentChanged(IJavaScriptElementDelta delta) {
-		return delta.getKind() == IJavaScriptElementDelta.CHANGED &&
-			(delta.getFlags() & IJavaScriptElementDelta.F_CONTENT) != 0;
-	}
-	/**
-	 * Returns true if this delta is flagged as having moved from a location
-	 */
-	protected boolean deltaMovedFrom(IJavaScriptElementDelta delta) {
-		return delta.getKind() == IJavaScriptElementDelta.ADDED &&
-			(delta.getFlags() & IJavaScriptElementDelta.F_MOVED_FROM) != 0;
-	}
-	/**
-	 * Returns true if this delta is flagged as having moved to a location
-	 */
-	protected boolean deltaMovedTo(IJavaScriptElementDelta delta) {
-		return delta.getKind() == IJavaScriptElementDelta.REMOVED &&
-			(delta.getFlags() & IJavaScriptElementDelta.F_MOVED_TO) != 0;
-	}
-	/**
-	 * Ensure that the positioned element is in the correct position within the parent.
-	 */
-	public void ensureCorrectPositioning(IParent container, IJavaScriptElement sibling, IJavaScriptElement positioned) throws JavaScriptModelException {
-		IJavaScriptElement[] children = container.getChildren();
-		if (sibling != null) {
-			// find the sibling
-			boolean found = false;
-			for (int i = 0; i < children.length; i++) {
-				if (children[i].equals(sibling)) {
-					assertTrue("element should be before sibling", i > 0 && children[i - 1].equals(positioned));
-					found = true;
-					break;
-				}
-			}
-			assertTrue("Did not find sibling", found);
-		}
-	}
-	/**
-	 * Returns the specified compilation unit in the given project, root, and
-	 * package fragment or <code>null</code> if it does not exist.
-	 */
-	public IClassFile getClassFile(String projectName, String rootPath, String packageName, String className) throws JavaScriptModelException {
-		IPackageFragment pkg= getPackageFragment(projectName, rootPath, packageName);
-		if (pkg == null) {
-			return null;
-		}
-		return pkg.getClassFile(className);
-	}
-	protected IJavaScriptUnit getCompilationUnit(String path) {
-		return (IJavaScriptUnit)JavaScriptCore.create(getFile(path));
-	}
-	/**
-	 * Returns the specified compilation unit in the given project, root, and
-	 * package fragment or <code>null</code> if it does not exist.
-	 */
-	public IJavaScriptUnit getCompilationUnit(String projectName, String rootPath, String packageName, String cuName) throws JavaScriptModelException {
-		IPackageFragment pkg= getPackageFragment(projectName, rootPath, packageName);
-		if (pkg == null) {
-			return null;
-		}
-		return pkg.getJavaScriptUnit(cuName);
-	}
-	/**
-	 * Returns the specified compilation unit in the given project, root, and
-	 * package fragment or <code>null</code> if it does not exist.
-	 */
-	public IJavaScriptUnit[] getCompilationUnits(String projectName, String rootPath, String packageName) throws JavaScriptModelException {
-		IPackageFragment pkg= getPackageFragment(projectName, rootPath, packageName);
-		if (pkg == null) {
-			return null;
-		}
-		return pkg.getJavaScriptUnits();
-	}
-	protected IJavaScriptUnit getCompilationUnitFor(IJavaScriptElement element) {
-	
-		if (element instanceof IJavaScriptUnit) {
-			return (IJavaScriptUnit)element;
-		}
-	
-		if (element instanceof IMember) {
-			return ((IMember)element).getJavaScriptUnit();
-		}
-	
-		if (element instanceof IImportDeclaration) {
-				return (IJavaScriptUnit)element.getParent();
-			}
-	
-		return null;
-	
-	}
-	/**
-	 * Returns the last delta for the given element from the cached delta.
-	 */
-	protected IJavaScriptElementDelta getDeltaFor(IJavaScriptElement element) {
-		return getDeltaFor(element, false);
-	}
-	/**
-	 * Returns the delta for the given element from the cached delta.
-	 * If the boolean is true returns the first delta found.
-	 */
-	protected IJavaScriptElementDelta getDeltaFor(IJavaScriptElement element, boolean returnFirst) {
-		IJavaScriptElementDelta[] deltas = this.deltaListener.deltas;
-		if (deltas == null) return null;
-		IJavaScriptElementDelta result = null;
-		for (int i = 0; i < deltas.length; i++) {
-			IJavaScriptElementDelta delta = searchForDelta(element, this.deltaListener.deltas[i]);
-			if (delta != null) {
-				if (returnFirst) {
-					return delta;
-				}
-				result = delta;
-			}
-		}
-		return result;
-	}
-	
-	/**
-	 * Returns the IPath to the external java class library (e.g. jclMin.jar)
-	 */
-	protected IPath getExternalJCLPath(String compliance) {
- 		return new Path(getExternalJCLPathString(compliance));
-	}
-
-	/**
-	 * Returns the java.io path to the external java class library (e.g. jclMin.jar)
-	 */
-	protected String getExternalJCLPathString(String compliance) {
-		return getSystemJsPathString();
-//		return SystemLibraries.getLibraryPath("system.js");
-//		return getExternalPath() + "jclMin" + compliance + ".jar";
-	}
-	
-	protected IPath getSystemJsPath() {
-		return new Path(getSystemJsPathString());
-	}
-	
-	protected String getSystemJsPathString()
-	{
-		IPath targetRoot =  (new Path(System.getProperty("user.dir"))).removeLastSegments(1);
-		IPath pluginDir = targetRoot.append(new Path("org.eclipse.wst.jsdt.core"));
-		IPath libDir = pluginDir.append(new Path(new String(SystemLibraryLocation.LIBRARY_PLUGIN_DIRECTORY)));
-		IPath fullDir = libDir.append(new Path(new String(SystemLibraryLocation.SYSTEM_LIBARAY_NAME)));
-		return	fullDir.toOSString();
-	}
-	
-	/**
-	 * Returns the IPath to the root source of the external java class library (e.g. "src")
-	 */
-	protected IPath getExternalJCLRootSourcePath() {
-		return new Path("src");
-	}
-	/**
-	 * Returns the IPath to the source of the external java class library (e.g. jclMinsrc.zip)
-	 */
-	protected IPath getExternalJCLSourcePath() {
-		return new Path(getExternalJCLSourcePathString(""));
-	}
-	/**
-	 * Returns the IPath to the source of the external java class library (e.g. jclMinsrc.zip)
-	 */
-	protected IPath getExternalJCLSourcePath(String compliance) {
-		return new Path(getExternalJCLSourcePathString(compliance));
-	}
-	/**
-	 * Returns the java.io path to the source of the external java class library (e.g. jclMinsrc.zip)
-	 */
-	protected String getExternalJCLSourcePathString() {
-		return getExternalJCLSourcePathString("");
-	}
-	/**
-	 * Returns the java.io path to the source of the external java class library (e.g. jclMinsrc.zip)
-	 */
-	protected String getExternalJCLSourcePathString(String compliance) {
-		return getExternalPath() + "jclMin" + compliance + "src.zip";
-	}
-	/*
-	 * Returns the OS path to the external directory that contains external jar files.
-	 * This path ends with a File.separatorChar.
-	 */
-	protected String getExternalPath() {
-		if (EXTERNAL_JAR_DIR_PATH == null)
-			try {
-				String path = getWorkspaceRoot().getLocation().toFile().getParentFile().getCanonicalPath();
-				if (path.charAt(path.length()-1) != File.separatorChar)
-					path += File.separatorChar;
-				EXTERNAL_JAR_DIR_PATH = path;
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		return EXTERNAL_JAR_DIR_PATH;
-	}
-	protected IFile getFile(String path) {
-		return getWorkspaceRoot().getFile(new Path(path));
-	}
-	protected IFolder getFolder(IPath path) {
-		return getWorkspaceRoot().getFolder(path);
-	}
-	/**
-	 * Returns the Java Model this test suite is running on.
-	 */
-	public IJavaScriptModel getJavaModel() {
-		return JavaScriptCore.create(getWorkspaceRoot());
-	}
-	/**
-	 * Returns the Java Project with the given name in this test
-	 * suite's model. This is a convenience method.
-	 */
-	public IJavaScriptProject getJavaProject(String name) {
-		IProject project = getProject(name);
-		return JavaScriptCore.create(project);
-	}
-	protected ILocalVariable getLocalVariable(ISourceReference cu, String selectAt, String selection) throws JavaScriptModelException {
-		IJavaScriptElement[] elements = codeSelect(cu, selectAt, selection);
-		if (elements.length == 0) return null;
-		if (elements[0] instanceof ILocalVariable) {
-			return (ILocalVariable)elements[0];
-		}
-		return null;
-	}
-	protected ILocalVariable getLocalVariable(String cuPath, String selectAt, String selection) throws JavaScriptModelException {
-		ISourceReference cu = getCompilationUnit(cuPath);
-		return getLocalVariable(cu, selectAt, selection);
-	}
-	protected String getNameSource(String cuSource, IJavaScriptElement element) throws JavaScriptModelException {
-		ISourceRange nameRange = ((IMember) element).getNameRange();
-		int start = nameRange.getOffset();
-		int end = start+nameRange.getLength();
-		String actualSource = start >= 0 && end >= start ? cuSource.substring(start, end) : "";
-		return actualSource;
-	}
-	/**
-	 * Returns the specified package fragment in the given project and root, or
-	 * <code>null</code> if it does not exist.
-	 * The rootPath must be specified as a project relative path. The empty
-	 * path refers to the default package fragment.
-	 */
-	public IPackageFragment getPackageFragment(String projectName, String rootPath, String packageName) throws JavaScriptModelException {
-		IPackageFragmentRoot root= getPackageFragmentRoot(projectName, rootPath);
-		if (root == null) {
-			return null;
-		}
-		return root.getPackageFragment(packageName);
-	}
-	/**
-	 * Returns the specified package fragment root in the given project, or
-	 * <code>null</code> if it does not exist.
-	 * If relative, the rootPath must be specified as a project relative path. 
-	 * The empty path refers to the package fragment root that is the project
-	 * folder iteslf.
-	 * If absolute, the rootPath refers to either an external jar, or a resource 
-	 * internal to the workspace
-	 */
-	public IPackageFragmentRoot getPackageFragmentRoot(
-		String projectName, 
-		String rootPath)
-		throws JavaScriptModelException {
-			
-		IJavaScriptProject project = getJavaProject(projectName);
-		if (project == null) {
-			return null;
-		}
-		IPath path = new Path(rootPath);
-		if (path.isAbsolute()) {
-			IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-			IResource resource = workspaceRoot.findMember(path);
-			IPackageFragmentRoot root;
-			if (resource == null) {
-				// external jar
-				root = project.getPackageFragmentRoot(rootPath);
-			} else {
-				// resource in the workspace
-				root = project.getPackageFragmentRoot(resource);
-			}
-			return root;
-		} else {
-			IPackageFragmentRoot[] roots = project.getPackageFragmentRoots();
-			if (roots == null || roots.length == 0) {
-				return null;
-			}
-			for (int i = 0; i < roots.length; i++) {
-				IPackageFragmentRoot root = roots[i];
-				if (!root.isExternal()
-					&& root.getUnderlyingResource().getProjectRelativePath().equals(path)) {
-					return root;
-				}
-			}
-		}
-		return null;
-	}
-	protected IProject getProject(String project) {
-		return getWorkspaceRoot().getProject(project);
-	}
-	/**
-	 * Returns the OS path to the directory that contains this plugin.
-	 */
-	protected String getPluginDirectoryPath() {
-		try {
-			URL platformURL = Platform.getBundle("org.eclipse.wst.jsdt.core.tests.model").getEntry("/");
-			return new File(FileLocator.toFileURL(platformURL).getFile()).getAbsolutePath();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-	public String getSourceWorkspacePath() {
-		return getPluginDirectoryPath() +  java.io.File.separator + "workspace";
-	}
-	public IJavaScriptUnit getWorkingCopy(String path, boolean computeProblems) throws JavaScriptModelException {
-		return getWorkingCopy(path, "", computeProblems);
-	}	
-	public IJavaScriptUnit getWorkingCopy(String path, String source) throws JavaScriptModelException {
-		return getWorkingCopy(path, source, false);
-	}	
-	public IJavaScriptUnit getWorkingCopy(String path, String source, boolean computeProblems) throws JavaScriptModelException {
-		if (this.wcOwner == null) this.wcOwner = new WorkingCopyOwner() {};
-		return getWorkingCopy(path, source, this.wcOwner, computeProblems);
-	}
-	public IJavaScriptUnit getWorkingCopy(String path, String source, WorkingCopyOwner owner, boolean computeProblems) throws JavaScriptModelException {
-		IProblemRequestor problemRequestor = computeProblems
-			? new IProblemRequestor() {
-				public void acceptProblem(IProblem problem) {}
-				public void beginReporting() {}
-				public void endReporting() {}
-				public boolean isActive() {
-					return true;
-				}
-			} 
-			: null;
-		return getWorkingCopy(path, source, owner, problemRequestor);
-	}
-	public IJavaScriptUnit getWorkingCopy(String path, String source, WorkingCopyOwner owner, IProblemRequestor problemRequestor) throws JavaScriptModelException {
-		IJavaScriptUnit workingCopy = getCompilationUnit(path);
-		if (owner != null)
-			workingCopy = workingCopy.getWorkingCopy(owner, null/*no progress monitor*/);
-		else
-			workingCopy.becomeWorkingCopy(null/*no progress monitor*/);
-		workingCopy.getBuffer().setContents(source);
-		if (problemRequestor instanceof ProblemRequestor)
-			((ProblemRequestor) problemRequestor).initialize(source.toCharArray());
-		workingCopy.makeConsistent(null/*no progress monitor*/);
-		return workingCopy;
-	}
-	/**
-	 * Returns the IWorkspace this test suite is running on.
-	 */
-	public IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-	public IWorkspaceRoot getWorkspaceRoot() {
-		return getWorkspace().getRoot();
-	}
-	protected void discardWorkingCopies(IJavaScriptUnit[] units) throws JavaScriptModelException {
-		if (units == null) return;
-		for (int i = 0, length = units.length; i < length; i++)
-			if (units[i] != null)
-				units[i].discardWorkingCopy();
-	}
-	
-	protected String displayString(String toPrint, int indent) {
-    	char[] toDisplay = 
-    		CharOperation.replace(
-    			toPrint.toCharArray(), 
-    			getSystemJsPathString().toCharArray(), 
-    			"getSystemJsPathString()".toCharArray());
-		toDisplay = 
-    		CharOperation.replace(
-    			toDisplay, 
-    			getExternalJCLPathString("1.5").toCharArray(), 
-    			"getExternalJCLPathString(\"1.5\")".toCharArray());
-		toDisplay = 
-    		CharOperation.replace(
-    			toDisplay, 
-    			org.eclipse.wst.jsdt.core.tests.util.Util.displayString(getExternalJCLSourcePathString(), 0).toCharArray(), 
-    			"getExternalJCLSourcePathString()".toCharArray());
-		toDisplay = 
-    		CharOperation.replace(
-    			toDisplay, 
-    			org.eclipse.wst.jsdt.core.tests.util.Util.displayString(getExternalJCLSourcePathString("1.5"), 0).toCharArray(), 
-    			"getExternalJCLSourcePathString(\"1.5\")".toCharArray());
-    	toDisplay = org.eclipse.wst.jsdt.core.tests.util.Util.displayString(new String(toDisplay), indent).toCharArray();
-    	toDisplay = 
-    		CharOperation.replace(
-    			toDisplay, 
-    			"getExternalJCLPathString()".toCharArray(), 
-    			("\"+ getExternalJCLPathString() + \"").toCharArray());
-    	toDisplay = 
-    		CharOperation.replace(
-    			toDisplay, 
-    			"getExternalJCLPathString(\\\"1.5\\\")".toCharArray(), 
-    			("\"+ getExternalJCLPathString(\"1.5\") + \"").toCharArray());
-    	toDisplay = 
-    		CharOperation.replace(
-    			toDisplay, 
-    			"getExternalJCLSourcePathString()".toCharArray(), 
-    			("\"+ getExternalJCLSourcePathString() + \"").toCharArray());
-    	toDisplay = 
-    		CharOperation.replace(
-    			toDisplay, 
-    			"getExternalJCLSourcePathString(\\\"1.5\\\")".toCharArray(), 
-    			("\"+ getExternalJCLSourcePathString(\"1.5\") + \"").toCharArray());
-    	return new String(toDisplay);
-    }
-	
-	protected IJavaScriptUnit newExternalWorkingCopy(String name, final String contents) throws JavaScriptModelException {
-		return newExternalWorkingCopy(name, null/*no classpath*/, null/*no problem requestor*/, contents);
-	}
-	protected IJavaScriptUnit newExternalWorkingCopy(String name, IIncludePathEntry[] classpath, IProblemRequestor problemRequestor, final String contents) throws JavaScriptModelException {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {
-			public IBuffer createBuffer(IJavaScriptUnit wc) {
-				IBuffer buffer = super.createBuffer(wc);
-				buffer.setContents(contents);
-				return buffer;
-			}
-		};
-		return owner.newWorkingCopy(name, classpath, null/*no progress monitor*/);
-	}
-
-	public byte[] read(java.io.File file) throws java.io.IOException {
-		int fileLength;
-		byte[] fileBytes = new byte[fileLength = (int) file.length()];
-		java.io.FileInputStream stream = new java.io.FileInputStream(file);
-		int bytesRead = 0;
-		int lastReadSize = 0;
-		while ((lastReadSize != -1) && (bytesRead != fileLength)) {
-			lastReadSize = stream.read(fileBytes, bytesRead, fileLength - bytesRead);
-			bytesRead += lastReadSize;
-		}
-		stream.close();
-		return fileBytes;
-	}
-	protected void removeJavaNature(String projectName) throws CoreException {
-		IProject project = this.getProject(projectName);
-		IProjectDescription description = project.getDescription();
-		description.setNatureIds(new String[] {});
-		project.setDescription(description, null);
-	}
-	protected void removeLibrary(IJavaScriptProject javaProject, String jarName, String sourceZipName) throws CoreException, IOException {
-		IProject project = javaProject.getProject();
-		String projectPath = '/' + project.getName() + '/';
-		removeLibraryEntry(javaProject, new Path(projectPath + jarName));
-		org.eclipse.wst.jsdt.core.tests.util.Util.delete(project.getFile(jarName));
-		if (sourceZipName != null && sourceZipName.length() != 0) {
-			org.eclipse.wst.jsdt.core.tests.util.Util.delete(project.getFile(sourceZipName));
-		}
-	}
-	protected void removeLibraryEntry(Path path) throws JavaScriptModelException {
-		removeLibraryEntry(this.currentProject, path);
-	}
-	protected void removeLibraryEntry(IJavaScriptProject project, Path path) throws JavaScriptModelException {
-		IIncludePathEntry[] entries = project.getRawIncludepath();
-		int length = entries.length;
-		IIncludePathEntry[] newEntries = null;
-		for (int i = 0; i < length; i++) {
-			IIncludePathEntry entry = entries[i];
-			if (entry.getPath().equals(path)) {
-				newEntries = new IIncludePathEntry[length-1];
-				if (i > 0)
-					System.arraycopy(entries, 0, newEntries, 0, i);
-				if (i < length-1)
-				System.arraycopy(entries, i+1, newEntries, i, length-1-i);
-				break;
-			}	
-		}
-		if (newEntries != null)
-			project.setRawIncludepath(newEntries, null);
-	}
-
-	/**
-	 * Returns a delta for the given element in the delta tree
-	 */
-	protected IJavaScriptElementDelta searchForDelta(IJavaScriptElement element, IJavaScriptElementDelta delta) {
-	
-		if (delta == null) {
-			return null;
-		}
-		if (delta.getElement().equals(element)) {
-			return delta;
-		}
-		for (int i= 0; i < delta.getAffectedChildren().length; i++) {
-			IJavaScriptElementDelta child= searchForDelta(element, delta.getAffectedChildren()[i]);
-			if (child != null) {
-				return child;
-			}
-		}
-		return null;
-	}
-	protected void search(IJavaScriptElement element, int limitTo, IJavaScriptSearchScope scope, SearchRequestor requestor) throws CoreException {
-		search(element, limitTo, SearchPattern.R_EXACT_MATCH|SearchPattern.R_CASE_SENSITIVE, scope, requestor);
-	}
-	protected void search(IJavaScriptElement element, int limitTo, int matchRule, IJavaScriptSearchScope scope, SearchRequestor requestor) throws CoreException {
-		SearchPattern pattern = SearchPattern.createPattern(element, limitTo, matchRule);
-		assertNotNull("Pattern should not be null", pattern);
-		new SearchEngine().search(
-			pattern,
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope,
-			requestor,
-			null
-		);
-	}
-	protected void search(String patternString, int searchFor, int limitTo, IJavaScriptSearchScope scope, SearchRequestor requestor) throws CoreException {
-		search(patternString, searchFor, limitTo, SearchPattern.R_EXACT_MATCH|SearchPattern.R_CASE_SENSITIVE, scope, requestor);
-	}
-	protected void search(String patternString, int searchFor, int limitTo, int matchRule, IJavaScriptSearchScope scope, SearchRequestor requestor) throws CoreException {
-		if (patternString.indexOf('*') != -1 || patternString.indexOf('?') != -1)
-			matchRule |= SearchPattern.R_PATTERN_MATCH;
-		SearchPattern pattern = SearchPattern.createPattern(
-			patternString, 
-			searchFor,
-			limitTo, 
-			matchRule);
-		assertNotNull("Pattern should not be null", pattern);
-		new SearchEngine().search(
-			pattern,
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope,
-			requestor,
-			null);
-	}
-
-	/*
-	 * Selection of java elements.
-	 */
-
-	/*
-	 * Search several occurences of a selection in a compilation unit source and returns its start and length.
-	 * If occurence is negative, then perform a backward search from the end of file.
-	 * If selection starts or ends with a comment (to help identification in source), it is removed from returned selection info.
-	 */
-	int[] selectionInfo(IJavaScriptUnit cu, String selection, int occurences) throws JavaScriptModelException {
-		String source = cu.getSource();
-		int index = occurences < 0 ? source.lastIndexOf(selection) : source.indexOf(selection);
-		int max = Math.abs(occurences)-1;
-		for (int n=0; index >= 0 && n<max; n++) {
-			index = occurences < 0 ? source.lastIndexOf(selection, index) : source.indexOf(selection, index+selection.length());
-		}
-		StringBuffer msg = new StringBuffer("Selection '");
-		msg.append(selection);
-		if (index >= 0) {
-			if (selection.startsWith("/**")) { // comment is before
-				int start = source.indexOf("*/", index);
-				if (start >=0) {
-					return new int[] { start+2, selection.length()-(start+2-index) };
-				} else {
-					msg.append("' starts with an unterminated comment");
-				}
-			} else if (selection.endsWith("*/")) { // comment is after
-				int end = source.lastIndexOf("/**", index+selection.length());
-				if (end >=0) {
-					return new int[] { index, index-end };
-				} else {
-					msg.append("' ends with an unstartted comment");
-				}
-			} else { // no comment => use whole selection
-				return new int[] { index, selection.length() };
-			}
-		} else {
-			msg.append("' was not found in ");
-		}
-		msg.append(cu.getElementName());
-		msg.append(":\n");
-		msg.append(source);
-		assertTrue(msg.toString(), false);
-		return null;
-	}
-
-	/**
-	 * Select a field in a compilation unit identified with the first occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @return IField
-	 * @throws JavaScriptModelException
-	 */
-	protected IField selectField(IJavaScriptUnit unit, String selection) throws JavaScriptModelException {
-		return selectField(unit, selection, 1);
-	}
-
-	/**
-	 * Select a field in a compilation unit identified with the nth occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @param occurences
-	 * @return IField
-	 * @throws JavaScriptModelException
-	 */
-	protected IField selectField(IJavaScriptUnit unit, String selection, int occurences) throws JavaScriptModelException {
-		return (IField) selectJavaElement(unit, selection, occurences, IJavaScriptElement.FIELD);
-	}
-
-	/**
-	 * Select a local variable in a compilation unit identified with the first occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @return IType
-	 * @throws JavaScriptModelException
-	 */
-	protected ILocalVariable selectLocalVariable(IJavaScriptUnit unit, String selection) throws JavaScriptModelException {
-		return selectLocalVariable(unit, selection, 1);
-	}
-
-	/**
-	 * Select a local variable in a compilation unit identified with the nth occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @param occurences
-	 * @return IType
-	 * @throws JavaScriptModelException
-	 */
-	protected ILocalVariable selectLocalVariable(IJavaScriptUnit unit, String selection, int occurences) throws JavaScriptModelException {
-		return (ILocalVariable) selectJavaElement(unit, selection, occurences, IJavaScriptElement.LOCAL_VARIABLE);
-	}
-
-	/**
-	 * Select a method in a compilation unit identified with the first occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @return IFunction
-	 * @throws JavaScriptModelException
-	 */
-	protected IFunction selectMethod(IJavaScriptUnit unit, String selection) throws JavaScriptModelException {
-		return selectMethod(unit, selection, 1);
-	}
-
-	/**
-	 * Select a method in a compilation unit identified with the nth occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @param occurences
-	 * @return IFunction
-	 * @throws JavaScriptModelException
-	 */
-	protected IFunction selectMethod(IJavaScriptUnit unit, String selection, int occurences) throws JavaScriptModelException {
-		return (IFunction) selectJavaElement(unit, selection, occurences, IJavaScriptElement.METHOD);
-	}
-
-	/**
-	 * Select a parameterized source method in a compilation unit identified with the first occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @return ParameterizedSourceMethod
-	 * @throws JavaScriptModelException
-	 */
-	protected ResolvedSourceMethod selectParameterizedMethod(IJavaScriptUnit unit, String selection) throws JavaScriptModelException {
-		return selectParameterizedMethod(unit, selection, 1);
-	}
-	
-	/**
-	 * Select a parameterized source method in a compilation unit identified with the nth occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @param occurences
-	 * @return ParameterizedSourceMethod
-	 * @throws JavaScriptModelException
-	 */
-	protected ResolvedSourceMethod selectParameterizedMethod(IJavaScriptUnit unit, String selection, int occurences) throws JavaScriptModelException {
-		IFunction type = selectMethod(unit, selection, occurences);
-		assertTrue("Not a parameterized source type: "+type.getElementName(), type instanceof ResolvedSourceMethod);
-		return (ResolvedSourceMethod) type;
-	}
-
-	/**
-	 * Select a parameterized source type in a compilation unit identified with the first occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @return ParameterizedSourceType
-	 * @throws JavaScriptModelException
-	 */
-	protected ResolvedSourceType selectParameterizedType(IJavaScriptUnit unit, String selection) throws JavaScriptModelException {
-		return selectParameterizedType(unit, selection, 1);
-	}
-	
-	/**
-	 * Select a parameterized source type in a compilation unit identified with the nth occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @param occurences
-	 * @return ParameterizedSourceType
-	 * @throws JavaScriptModelException
-	 */
-	protected ResolvedSourceType selectParameterizedType(IJavaScriptUnit unit, String selection, int occurences) throws JavaScriptModelException {
-		IType type = selectType(unit, selection, occurences);
-		assertTrue("Not a parameterized source type: "+type.getElementName(), type instanceof ResolvedSourceType);
-		return (ResolvedSourceType) type;
-	}
-
-	/**
-	 * Select a type in a compilation unit identified with the first occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @return IType
-	 * @throws JavaScriptModelException
-	 */
-	protected IType selectType(IJavaScriptUnit unit, String selection) throws JavaScriptModelException {
-		return selectType(unit, selection, 1);
-	}
-
-	/**
-	 * Select a type in a compilation unit identified with the nth occurence in the source of a given selection.
-	 * @param unit
-	 * @param selection
-	 * @param occurences
-	 * @return IType
-	 * @throws JavaScriptModelException
-	 */
-	protected IType selectType(IJavaScriptUnit unit, String selection, int occurences) throws JavaScriptModelException {
-		return (IType) selectJavaElement(unit, selection, occurences, IJavaScriptElement.TYPE);
-	}
-
-	/**
-	 * Select a java element in a compilation unit identified with the nth occurence in the source of a given selection.
-	 * Do not allow subclasses to call this method as we want to verify IJavaScriptElement kind.
-	 */
-	IJavaScriptElement selectJavaElement(IJavaScriptUnit unit, String selection, int occurences, int elementType) throws JavaScriptModelException {
-		int[] selectionPositions = selectionInfo(unit, selection, occurences);
-		IJavaScriptElement[] elements = null;
-		if (wcOwner == null) {
-			elements = unit.codeSelect(selectionPositions[0], selectionPositions[1]);
-		} else {
-			elements = unit.codeSelect(selectionPositions[0], selectionPositions[1], wcOwner);
-		}
-		assertEquals("Invalid selection number", 1, elements.length);
-		assertEquals("Invalid java element type: "+elements[0].getElementName(), elements[0].getElementType(), elementType);
-		return elements[0];
-	}
-
-	/* ************
-	 * Suite set-ups *
-	 *************/
-	/**
-	 * Sets the class path of the Java project.
-	 */
-	public void setClasspath(IJavaScriptProject javaProject, IIncludePathEntry[] classpath) {
-		try {
-			javaProject.setRawIncludepath(classpath, null);
-		} catch (JavaScriptModelException e) {
-			assertTrue("failed to set classpath", false);
-		}
-	}
-	/**
-	 * Check locally for the required JCL files, <jclName>.jar and <jclName>src.zip.
-	 * If not available, copy from the project resources.
-	 */
-	public void setupExternalJCL(String jclName) throws IOException {
-		String externalPath = getExternalPath();
-		String separator = java.io.File.separator;
-		String resourceJCLDir = getPluginDirectoryPath() + separator + "JCL";
-		java.io.File jclDir = new java.io.File(externalPath);
-		java.io.File jclMin =
-			new java.io.File(externalPath + jclName + ".jar");
-		java.io.File jclMinsrc = new java.io.File(externalPath + jclName + "src.zip");
-		if (!jclDir.exists()) {
-			if (!jclDir.mkdir()) {
-				//mkdir failed
-				throw new IOException("Could not create the directory " + jclDir);
-			}
-			//copy the two files to the JCL directory
-			java.io.File resourceJCLMin =
-				new java.io.File(resourceJCLDir + separator + jclName + ".jar");
-			copy(resourceJCLMin, jclMin);
-			java.io.File resourceJCLMinsrc =
-				new java.io.File(resourceJCLDir + separator + jclName + "src.zip");
-			copy(resourceJCLMinsrc, jclMinsrc);
-		} else {
-			//check that the two files, jclMin.jar and jclMinsrc.zip are present
-			//copy either file that is missing or less recent than the one in workspace
-			java.io.File resourceJCLMin =
-				new java.io.File(resourceJCLDir + separator + jclName + ".jar");
-			if ((jclMin.lastModified() < resourceJCLMin.lastModified())
-                    || (jclMin.length() != resourceJCLMin.length())) {
-				copy(resourceJCLMin, jclMin);
-			}
-			java.io.File resourceJCLMinsrc =
-				new java.io.File(resourceJCLDir + separator + jclName + "src.zip");
-			if ((jclMinsrc.lastModified() < resourceJCLMinsrc.lastModified())
-                    || (jclMinsrc.length() != resourceJCLMinsrc.length())) {
-				copy(resourceJCLMinsrc, jclMinsrc);
-			}
-		}
-	}
-	protected IJavaScriptProject setUpJavaProject(final String projectName) throws CoreException, IOException {
-		this.currentProject = setUpJavaProject(projectName, "1.4");
-		return this.currentProject;
-	}
-	protected IJavaScriptProject setUpJavaProject(final String projectName, String compliance) throws CoreException, IOException {
-		// copy files in project from source workspace to target workspace
-		String sourceWorkspacePath = getSourceWorkspacePath();
-		String targetWorkspacePath = getWorkspaceRoot().getLocation().toFile().getCanonicalPath();
-		copyDirectory(new File(sourceWorkspacePath, projectName), new File(targetWorkspacePath, projectName));
-
-		// ensure variables are set
-		setUpJCLClasspathVariables(compliance);
-
-		// create project
-		final IProject project = getWorkspaceRoot().getProject(projectName);
-		IWorkspaceRunnable populate = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				project.create(null);
-				project.open(null);
-			}
-		};
-		getWorkspace().run(populate, null);
-		IJavaScriptProject javaProject = JavaScriptCore.create(project);
-		setUpProjectCompliance(javaProject, compliance);
-		javaProject.setOption(JavaScriptCore.COMPILER_PB_UNUSED_LOCAL, JavaScriptCore.IGNORE);
-		javaProject.setOption(JavaScriptCore.COMPILER_PB_UNUSED_PRIVATE_MEMBER, JavaScriptCore.IGNORE);
-		javaProject.setOption(JavaScriptCore.COMPILER_PB_FIELD_HIDING, JavaScriptCore.IGNORE);
-		javaProject.setOption(JavaScriptCore.COMPILER_PB_LOCAL_VARIABLE_HIDING, JavaScriptCore.IGNORE);
-		javaProject.setOption(JavaScriptCore.COMPILER_PB_TYPE_PARAMETER_HIDING, JavaScriptCore.IGNORE);
-		return javaProject;
-	}
-
-	protected void setUpProjectCompliance(IJavaScriptProject javaProject, String compliance) throws JavaScriptModelException, IOException {
-		// Look for version to set and return if that's already done
-		String version = CompilerOptions.VERSION_1_4;
-		String jclLibString = null;
-		String newJclLibString = null;
-		String newJclSrcString = null;
-		switch (compliance.charAt(2)) {
-			case '5':
-				version = CompilerOptions.VERSION_1_5;
-				if (version.equals(javaProject.getOption(CompilerOptions.OPTION_Compliance, false))) {
-					return;
-				}
-				jclLibString = "JCL_LIB";
-				newJclLibString = "JCL15_LIB";
-				newJclSrcString = "JCL15_SRC";
-				break;
-			case '3':
-				version = CompilerOptions.VERSION_1_3;
-			default:
-				if (version.equals(javaProject.getOption(CompilerOptions.OPTION_Compliance, false))) {
-					return;
-				}
-				jclLibString = "JCL15_LIB";
-				newJclLibString = "JCL_LIB";
-				newJclSrcString = "JCL_SRC";
-				break;
-		}
-		
-		// ensure variables are set
-		setUpJCLClasspathVariables(compliance);
-		
-		// set options
-		Map options = new HashMap();
-		options.put(CompilerOptions.OPTION_Compliance, version);
-		options.put(CompilerOptions.OPTION_Source, version);	
-		options.put(CompilerOptions.OPTION_TargetPlatform, version);	
-		javaProject.setOptions(options);
-		
-		// replace JCL_LIB with JCL15_LIB, and JCL_SRC with JCL15_SRC
-		IIncludePathEntry[] classpath = javaProject.getRawIncludepath();
-		IPath jclLib = new Path(jclLibString);
-		for (int i = 0, length = classpath.length; i < length; i++) {
-			IIncludePathEntry entry = classpath[i];
-			if (entry.getPath().equals(jclLib)) {
-				classpath[i] = JavaScriptCore.newVariableEntry(
-						new Path(newJclLibString), 
-						new Path(newJclSrcString), 
-						entry.getSourceAttachmentRootPath(), 
-						entry.getAccessRules(), 
-						new IIncludePathAttribute[0], 
-						entry.isExported());
-				break;
-			}
-		}
-		javaProject.setRawIncludepath(classpath, null);
-	}
-	public void setUpJCLClasspathVariables(String compliance) throws JavaScriptModelException, IOException {
-		if ("1.5".equals(compliance)) {
-			if (JavaScriptCore.getIncludepathVariable("JCL15_LIB") == null) {
-//				setupExternalJCL("jclMin1.5");
-				JavaScriptCore.setIncludepathVariables(
-					new String[] {"JCL15_LIB", "JCL15_SRC", "JCL_SRCROOT"},
-					new IPath[] {getExternalJCLPath(compliance), getExternalJCLSourcePath(compliance), getExternalJCLRootSourcePath()},
-					null);
-			} 
-		} else {
-			if (JavaScriptCore.getIncludepathVariable("JCL_LIB") == null) {
-//				setupExternalJCL("jclMin");
-				JavaScriptCore.setIncludepathVariables(
-					new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-					new IPath[] {getExternalJCLPath(""), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-					null);
-			} 
-		}	
-	}
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		
-		// ensure autobuilding is turned off
-		IWorkspaceDescription description = getWorkspace().getDescription();
-		if (description.isAutoBuilding()) {
-			description.setAutoBuilding(false);
-			getWorkspace().setDescription(description);
-		}
-	}
-	protected void setUp () throws Exception {
-		super.setUp();
-		if (NameLookup.VERBOSE || BasicSearchEngine.VERBOSE || JavaModelManager.VERBOSE) {
-			System.out.println("--------------------------------------------------------------------------------");
-			System.out.println("Running test "+getName()+"...");
-		}
-	}
-	protected void sortElements(IJavaScriptElement[] elements) {
-		Util.Comparer comparer = new Util.Comparer() {
-			public int compare(Object a, Object b) {
-				JavaElement elementA = (JavaElement)a;
-				JavaElement elementB = (JavaElement)b;
-				char[] tempJCLPath = "<externalJCLPath>".toCharArray();
-	    		String idA = new String(CharOperation.replace(
-	    			elementA.toStringWithAncestors().toCharArray(), 
-	    			getSystemJsPathString().toCharArray(), 
-	    			tempJCLPath));
-	    		String idB = new String(CharOperation.replace(
-	    			elementB.toStringWithAncestors().toCharArray(), 
-	    			getSystemJsPathString().toCharArray(), 
-	    			tempJCLPath));
-				return idA.compareTo(idB);
-			}
-		};
-		Util.sort(elements, comparer);
-	}
-	protected void sortResources(Object[] resources) {
-		Util.Comparer comparer = new Util.Comparer() {
-			public int compare(Object a, Object b) {
-				IResource resourceA = (IResource)a;
-				IResource resourceB = (IResource)b;
-				return resourceA.getFullPath().toString().compareTo(resourceB.getFullPath().toString());			}
-		};
-		Util.sort(resources, comparer);
-	}
-	protected void sortTypes(IType[] types) {
-		Util.Comparer comparer = new Util.Comparer() {
-			public int compare(Object a, Object b) {
-				IType typeA = (IType)a;
-				IType typeB = (IType)b;
-				return typeA.getFullyQualifiedName().compareTo(typeB.getFullyQualifiedName());
-			}
-		};
-		Util.sort(types, comparer);
-	}
-	/*
-	 * Simulate a save/exit of the workspace
-	 */
-	protected void simulateExit() throws CoreException {
-		waitForAutoBuild();
-		getWorkspace().save(true/*full save*/, null/*no progress*/);
-		JavaModelManager.getJavaModelManager().shutdown();
-	}
-	/*
-	 * Simulate a save/exit/restart of the workspace
-	 */
-	protected void simulateExitRestart() throws CoreException {
-		simulateExit();
-		simulateRestart();
-	}
-	/*
-	 * Simulate a restart of the workspace
-	 */
-	protected void simulateRestart() throws CoreException {
-		JavaModelManager.doNotUse(); // reset the MANAGER singleton
-		JavaModelManager.getJavaModelManager().startup();
-		new JavaCorePreferenceInitializer().initializeDefaultPreferences();
-	}
-	/**
-	 * Starts listening to element deltas, and queues them in fgDeltas.
-	 */
-	public void startDeltas() {
-		clearDeltas();
-		JavaScriptCore.addElementChangedListener(this.deltaListener);
-	}
-	/**
-	 * Stops listening to element deltas, and clears the current deltas.
-	 */
-	public void stopDeltas() {
-		JavaScriptCore.removeElementChangedListener(this.deltaListener);
-		clearDeltas();
-	}
-	protected IPath[] toIPathArray(String[] paths) {
-		if (paths == null) return null;
-		int length = paths.length;
-		IPath[] result = new IPath[length];
-		for (int i = 0; i < length; i++) {
-			result[i] = new Path(paths[i]);
-		}
-		return result;
-	}
-	protected String toString(String[] strings) {
-		return toString(strings, false/*don't add extra new line*/);
-	}
-	protected String toString(String[] strings, boolean addExtraNewLine) {
-		if (strings == null) return "null";
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0, length = strings.length; i < length; i++){
-			buffer.append(strings[i]);
-			if (addExtraNewLine || i < length - 1)
-				buffer.append("\n");
-		}
-		return buffer.toString();
-	}
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		if (this.workingCopies != null) {
-			discardWorkingCopies(this.workingCopies);
-			this.workingCopies = null;
-		}
-		this.wcOwner = null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#tearDownSuite()
-	 */
-	public void tearDownSuite() throws Exception {
-		super.tearDownSuite();
-	}
-
-	/**
-	 * Wait for autobuild notification to occur
-	 */
-	public static void waitForAutoBuild() {
-		boolean wasInterrupted = false;
-		do {
-			try {
-				Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
-				wasInterrupted = false;
-			} catch (OperationCanceledException e) {
-				e.printStackTrace();
-			} catch (InterruptedException e) {
-				wasInterrupted = true;
-			}
-		} while (wasInterrupted);
-	}
-
-	public static void waitUntilIndexesReady() {
-		// dummy query for waiting until the indexes are ready
-		SearchEngine engine = new SearchEngine();
-		IJavaScriptSearchScope scope = SearchEngine.createWorkspaceScope();
-		try {
-			engine.searchAllTypeNames(
-				null,
-				SearchPattern.R_EXACT_MATCH,
-				"!@$#!@".toCharArray(),
-				SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE,
-				IJavaScriptSearchConstants.CLASS,
-				scope, 
-				new TypeNameRequestor() {
-					public void acceptType(
-						int modifiers,
-						char[] packageName,
-						char[] simpleTypeName,
-						char[][] enclosingTypeNames,
-						String path) {}
-				},
-				IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-				null);
-		} catch (CoreException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaSearchTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaSearchTests.java
deleted file mode 100644
index 0e7f507..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaSearchTests.java
+++ /dev/null
@@ -1,607 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.search.*;
-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilationUnit;
-import org.eclipse.wst.jsdt.internal.core.PackageFragment;
-//import org.eclipse.wst.jsdt.internal.core.ResolvedSourceMethod;
-//import org.eclipse.wst.jsdt.internal.core.ResolvedSourceType;
-import org.eclipse.wst.jsdt.internal.core.SourceRefElement;
-import org.eclipse.wst.jsdt.internal.core.search.matching.PatternLocator;
-
-/**
- * Abstract class for Java Search tests.
- */
-public class AbstractJavaSearchTests extends AbstractJavaModelTests implements IJavaScriptSearchConstants {
-
-	public static List JAVA_SEARCH_SUITES = null;
-	protected static IJavaScriptProject JAVA_PROJECT;
-	protected static boolean COPY_DIRS = true;
-	protected static int EXACT_RULE = SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE;
-	protected static int EQUIVALENT_RULE = EXACT_RULE | SearchPattern.R_EQUIVALENT_MATCH;
-	protected static int ERASURE_RULE = EXACT_RULE | SearchPattern.R_ERASURE_MATCH;
-	protected static int RAW_RULE = EXACT_RULE | SearchPattern.R_ERASURE_MATCH | SearchPattern.R_EQUIVALENT_MATCH;
-
-//	IJavaScriptUnit[] workingCopies;
-//	boolean discard;
-
-	/**
-	 * Collects results as a string.
-	 */
-	public static class JavaSearchResultCollector extends SearchRequestor {
-		protected SearchMatch match;
-		public StringBuffer results = new StringBuffer(), line;
-		public boolean showAccuracy;
-		public boolean showContext;
-		public boolean showRule;
-		public boolean showInsideDoc;
-		public boolean showPotential = true;
-		public boolean showProject;
-		public boolean showSynthetic;
-		public int showFlavors = 0;
-		public int count = 0;
-		public void acceptSearchMatch(SearchMatch searchMatch) throws CoreException {
-			count++;
-			this.match = searchMatch;
-			writeLine();
-			if (line != null) {
-				writeLineToResult();
-			}
-		}
-		protected void writeLineToResult() {
-			if (match.getAccuracy() == SearchMatch.A_ACCURATE || showPotential) {
-				if (results.length() > 0) results.append("\n");
-				results.append(line);
-			}
-		}
-		protected void writeLine() throws CoreException {
-			try {
-				IResource resource = match.getResource();
-				IJavaScriptElement element = getElement(match);
-				line = new StringBuffer(getPathString(resource, element));
-				if (this.showProject) {
-					IProject project = element.getJavaScriptProject().getProject();
-					line.append(" [in ");
-					line.append(project.getName());
-					line.append("]");
-				}
-				IJavaScriptUnit unit = null;
-				if (element instanceof IFunction) {
-					line.append(" ");
-					IFunction method = (IFunction)element;
-					append(method);
-					unit = method.getJavaScriptUnit();
-				} else if (element instanceof IType) {
-					line.append(" ");
-					IType type = (IType)element;
-					append(type);
-					unit = type.getJavaScriptUnit();
-				} else if (element instanceof IField) {
-					line.append(" ");
-					IField field = (IField)element;
-					append(field);
-					unit = field.getJavaScriptUnit();
-				} else if (element instanceof IInitializer) {
-					line.append(" ");
-					IInitializer initializer = (IInitializer)element;
-					append(initializer);
-					unit = initializer.getJavaScriptUnit();
-				} else if (element instanceof IPackageFragment) {
-					line.append(" ");
-					append((IPackageFragment)element);
-				} else if (element instanceof ILocalVariable) {
-					line.append(" ");
-					ILocalVariable localVar = (ILocalVariable)element;
-					IJavaScriptElement parent = localVar.getParent();
-					if (parent instanceof IInitializer) {
-						IInitializer initializer = (IInitializer)parent;
-						append(initializer);
-						line.append(".");
-					} else if (parent instanceof IFunction){ // IFunction
-						IFunction method = (IFunction)parent;
-						append(method);
-						line.append(".");
-					}
-					line.append(localVar.getElementName());
-					unit = (IJavaScriptUnit)localVar.getAncestor(IJavaScriptElement.JAVASCRIPT_UNIT);
-				} else if (element instanceof IImportDeclaration) {
-					IImportDeclaration importDeclaration = (IImportDeclaration)element;
-					unit = (IJavaScriptUnit)importDeclaration.getAncestor(IJavaScriptElement.JAVASCRIPT_UNIT);
-				}
-				if (resource instanceof IFile) {
-					char[] contents = getSource(resource, element, unit);
-					int start = match.getOffset();
-					int end = start + match.getLength();
-					if (start == -1 || (contents != null && contents.length > 0)) { // retrieving attached source not implemented here
-						line.append(" [");
-						if (start > -1) {
-							if (this.showContext) {
-								int lineStart1 = CharOperation.lastIndexOf('\n', contents, 0, start);
-								int lineStart2 = CharOperation.lastIndexOf('\r', contents, 0, start);
-								int lineStart = Math.max(lineStart1, lineStart2) + 1;
-								line.append(CharOperation.subarray(contents, lineStart, start));
-								line.append("<");
-							}
-							line.append(CharOperation.subarray(contents, start, end));
-							if (this.showContext) {
-								line.append(">");
-								int lineEnd1 = CharOperation.indexOf('\n', contents, end);
-								int lineEnd2 = CharOperation.indexOf('\r', contents, end);
-								int lineEnd = lineEnd1 > 0 && lineEnd2 > 0 ? Math.min(lineEnd1, lineEnd2) : Math.max(lineEnd1, lineEnd2);
-								if (lineEnd == -1) lineEnd = contents.length;
-								line.append(CharOperation.subarray(contents, end, lineEnd));
-							}
-						} else {
-							line.append("No source");
-						}
-						line.append("]");
-					}
-				}
-				if (this.showAccuracy) {
-					line.append(" ");
-					if (match.getAccuracy() == SearchMatch.A_ACCURATE) {
-						if (this.showRule) {
-							if (match.isExact()) {
-								line.append("EXACT_");
-							} else if (match.isEquivalent()) {
-								line.append("EQUIVALENT_");
-							} else if (match.isErasure()) {
-								line.append("ERASURE_");
-							} else {
-								line.append("INVALID_RULE_");
-							}
-							if (match.isRaw()) {
-								line.append("RAW_");
-							}
-						} else {
-							line.append("EXACT_");
-						}
-						line.append("MATCH");
-					} else {
-						line.append("POTENTIAL_MATCH");
-					}
-				}
-				if (this.showInsideDoc) {
-					line.append(" ");
-					if (match.isInsideDocComment()) {
-						line.append("INSIDE_JAVADOC");
-					} else {
-						line.append("OUTSIDE_JAVADOC");
-					}
-				}
-				if (this.showSynthetic) {
-					if (match instanceof MethodReferenceMatch) {
-						MethodReferenceMatch methRef = (MethodReferenceMatch) match;
-					}
-				}
-				if (this.showFlavors > 0) {
-					if (match instanceof MethodReferenceMatch) {
-						MethodReferenceMatch methRef = (MethodReferenceMatch) match;
-						if (methRef.isSuperInvocation() && showSuperInvocation()) {
-							line.append(" SUPER INVOCATION");
-						}
-					}
-				}
-			} catch (JavaScriptModelException e) {
-				results.append("\n");
-				results.append(e.toString());
-			}
-		}
-		private boolean showSuperInvocation() {
-			return (this.showFlavors & PatternLocator.SUPER_INVOCATION_FLAVOR) != 0;
-		}
-		protected void append(IField field) throws JavaScriptModelException {
-			append(field.getDeclaringType());
-			line.append(".");
-			line.append(field.getElementName());
-		}
-		private void append(IInitializer initializer) throws JavaScriptModelException {
-			append(initializer.getDeclaringType());
-			line.append(".");
-			if (Flags.isStatic(initializer.getFlags())) {
-				line.append("static ");
-			}
-			line.append("{}");
-		}
-		private void append(IFunction method) throws JavaScriptModelException {
-			if (!method.isConstructor() && method.getReturnType()!=null) {
-				line.append(Signature.toString(method.getReturnType()));
-				line.append(" ");
-			}
-			if (method.getDeclaringType()!=null)
-			{
-				append(method.getDeclaringType());
-				line.append(".");
-			}
-			if (!method.isConstructor()) {
-				line.append(method.getElementName());
-			}
-			line.append("(");
-			String[] parameters = method.getParameterTypes();
-			boolean varargs = Flags.isVarargs(method.getFlags());
-			for (int i = 0, length=parameters.length; i<length; i++) {
-				if (i < length - 1) {
-					line.append(Signature.toString(parameters[i]));
-					line.append(", "); //$NON-NLS-1$
-				} else if (varargs) {
-					// remove array from signature
-					String parameter = parameters[i].substring(1);
-					line.append(Signature.toString(parameter));
-					line.append(" ..."); //$NON-NLS-1$
-				} else {
-					line.append(Signature.toString(parameters[i]));
-				}
-			}
-			line.append(")");
-		}
-		private void append(IPackageFragment pkg) {
-			line.append(pkg.getElementName());
-		}
-		private void append(IType type) throws JavaScriptModelException {
-			IJavaScriptElement parent = type.getParent();
-			boolean isLocal = false;
-			switch (parent.getElementType()) {
-				case IJavaScriptElement.JAVASCRIPT_UNIT:
-					IPackageFragment pkg = type.getPackageFragment();
-					append(pkg);
-					if (!pkg.getElementName().equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
-						line.append(".");
-					}
-					break;
-				case IJavaScriptElement.CLASS_FILE:
-					IType declaringType = type.getDeclaringType();
-					if (declaringType != null) {
-						append(type.getDeclaringType());
-						line.append("$");
-					} else {
-						pkg = type.getPackageFragment();
-						append(pkg);
-						if (!pkg.getElementName().equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
-							line.append(".");
-						}
-					}
-					break;
-				case IJavaScriptElement.TYPE:
-					append((IType)parent);
-					line.append("$");
-					break;
-				case IJavaScriptElement.FIELD:
-					append((IField)parent);
-					isLocal = true;
-					break;
-				case IJavaScriptElement.INITIALIZER:
-					append((IInitializer)parent);
-					isLocal = true;
-					break;
-				case IJavaScriptElement.METHOD:
-					append((IFunction)parent);
-					isLocal = true;
-					break;
-			}
-			if (isLocal) {
-				line.append(":");
-			}
-			String typeName = type.getElementName();
-			if (typeName.length() == 0) {
-				line.append("<anonymous>");
-			} else {
-				line.append(typeName);
-			}
-			if (isLocal) {
-				line.append("#");
-				line.append(((SourceRefElement)type).occurrenceCount);
-			}
-		}
-		protected IJavaScriptElement getElement(SearchMatch searchMatch) {
-			return (IJavaScriptElement) searchMatch.getElement();
-		}
-		protected String getPathString(IResource resource, IJavaScriptElement element) {
-			String pathString;
-			if (resource != null) {
-				IPath path = resource.getProjectRelativePath();
-				if (path.segmentCount() == 0) {
-					IJavaScriptElement root = element;
-					while (root != null && !(root instanceof IPackageFragmentRoot)) {
-						root = root.getParent();
-					}
-					if (root != null) {
-						IPackageFragmentRoot pkgFragmentRoot = (IPackageFragmentRoot)root;
-						if (pkgFragmentRoot.isExternal()) {
-							pathString = pkgFragmentRoot.getPath().toOSString();
-						} else {
-							pathString = pkgFragmentRoot.getPath().toString();
-						}
-					} else {
-						pathString = "";
-					}
-				} else {
-					pathString = path.toString();
-				}
-			} else {
-				pathString = element.getPath().toString();
-			}
-			return pathString;
-		}
-		protected char[] getSource(IResource resource, IJavaScriptElement element, IJavaScriptUnit unit) throws CoreException {
-			char[] contents = CharOperation.NO_CHAR;
-			if ("js".equals(resource.getFileExtension())) {
-				IJavaScriptUnit cu = (IJavaScriptUnit)element.getAncestor(IJavaScriptElement.JAVASCRIPT_UNIT);
-				if (cu != null && cu.isWorkingCopy()) {
-					// working copy
-					contents = unit.getBuffer().getCharacters();
-				} else {
-					IFile file = ((IFile) resource);
-					try {
-						contents = new org.eclipse.wst.jsdt.internal.compiler.batch.CompilationUnit(
-							null, 
-							file.getLocation().toFile().getPath(),
-							file.getCharset()).getContents();
-					} catch(AbortCompilationUnit e) {
-						// TODO (philippe) occured with a FileNotFoundException
-						// ignore
-					}
-				}
-			}
-			return contents;
-		}
-		public String toString() {
-			return results.toString();
-		}
-	}
-	
-	static class TypeNameMatchCollector extends TypeNameMatchRequestor {
-		List matches = new ArrayList();
-		public void acceptTypeNameMatch(TypeNameMatch match) {
-			IType type = match.getType();
-			if (type != null) {
-				this.matches.add(type);
-			}
-		}
-		public int size() {
-			return this.matches.size();
-		}
-		private String toString(int kind) {
-			int size = size();
-			if (size == 0) return "";
-			String[] strings = new String[size];
-			for (int i=0; i<size; i++) {
-				IType type = (IType) this.matches.get(i);
-				switch (kind) {
-					case 1: // fully qualified name
-						strings[i] = type.getFullyQualifiedName();
-						break;
-					case 0:
-					default:
-						strings[i] = type.toString();
-				}
-			}
-			Arrays.sort(strings);
-			StringBuffer buffer = new StringBuffer();
-			for (int i=0; i<size; i++) {
-				if (i>0) buffer.append('\n');
-				buffer.append(strings[i]);
-			}
-			return buffer.toString();
-		}
-		public String toString() {
-			return toString(0);
-		}
-		public String toFullyQualifiedNamesString() {
-			return toString(1);
-		}
-	}
-
-protected JavaSearchResultCollector resultCollector;
-
-	public AbstractJavaSearchTests(String name) {
-		this(name, 2);
-	}
-	public AbstractJavaSearchTests(String name, int tabs) {
-		super(name, tabs);
-		this.displayName = true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#assertSearchResults(java.lang.String, java.lang.Object)
-	 */
-	protected void assertSearchResults(String expected) {
-		assertSearchResults(expected, resultCollector);
-	}
-	protected void assertSearchResults(String expected, JavaSearchResultCollector collector) {
-		assertSearchResults("Unexpected search results", expected, collector);
-	}
-	protected void assertSearchResults(String message, String expected, JavaSearchResultCollector collector) {
-		String actual = collector.toString();
-		if (!expected.equals(actual)) {
-			if (this.displayName) {
-				System.out.print(getName());
-				System.out.print(" got ");
-				if (collector.count==0)
-					System.out.println("no result!");
-				else {
-					System.out.print(collector.count);
-					System.out.print(" result");
-					if (collector.count==1)
-						System.out.println(":");
-					else
-						System.out.println("s:");
-				}
-			}
-			if (!displayName || collector.count>0) {
-				System.out.print(displayString(actual, this.tabs));
-				System.out.println(this.endChar);
-			}
-			if (this.workingCopies != null) {
-				int length = this.workingCopies.length;
-				String[] sources = new String[length*2];
-				for (int i=0; i<length; i++) {
-					sources[i*2] = this.workingCopies[i].getPath().toString();
-					try {
-						sources[i*2+1] = this.workingCopies[i].getSource();
-					} catch (JavaScriptModelException e) {
-						// ignore
-					}
-				}
-				System.out.println("--------------------------------------------------------------------------------");
-				for (int i=0; i<length; i+=2) {
-					System.out.println(sources[i]);
-					System.out.println(sources[i+1]);
-				}
-			}
-		}
-		assertEquals(
-			message,
-			expected,
-			actual
-		);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#copyDirectory(java.io.File, java.io.File)
-	 */
-	protected void copyDirectory(File sourceDir, File targetDir) throws IOException {
-		if (COPY_DIRS) {
-			super.copyDirectory(sourceDir, targetDir);
-		} else {
-			targetDir.mkdirs();
-			File sourceFile = new File(sourceDir, ".project");
-			File targetFile = new File(targetDir, ".project");
-			targetFile.createNewFile();
-			copy(sourceFile, targetFile);
-			sourceFile = new File(sourceDir, ".classpath");
-			targetFile = new File(targetDir, ".classpath");
-			targetFile.createNewFile();
-			copy(sourceFile, targetFile);
-		}
-	}
-	IJavaScriptSearchScope getJavaSearchScope() {
-		return SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("JSSearch")});
-	}
-	IJavaScriptSearchScope getJavaSearchScope15() {
-		return SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("JavaSearch15")});
-	}
-	IJavaScriptSearchScope getJavaSearchScope15(String packageName, boolean addSubpackages) throws JavaScriptModelException {
-		if (packageName == null) return getJavaSearchScope15();
-		return getJavaSearchPackageScope("JavaSearch15", packageName, addSubpackages);
-	}
-	IJavaScriptSearchScope getJavaSearchPackageScope(String projectName, String packageName, boolean addSubpackages) throws JavaScriptModelException {
-		IPackageFragment fragment = getPackageFragment(projectName, "src", packageName);
-		if (fragment == null) return null;
-		IJavaScriptElement[] searchPackages = null;
-		if (addSubpackages) {
-			// Create list of package with first found one
-			List packages = new ArrayList();
-			packages.add(fragment);
-			// Add all possible subpackages
-			IJavaScriptElement[] children= ((IPackageFragmentRoot)fragment.getParent()).getChildren();
-			String[] names = ((PackageFragment)fragment).names;
-			int namesLength = names.length;
-			nextPackage: for (int i= 0, length = children.length; i < length; i++) {
-				PackageFragment currentPackage = (PackageFragment) children[i];
-				String[] otherNames = currentPackage.names;
-				if (otherNames.length <= namesLength) continue nextPackage;
-				for (int j = 0; j < namesLength; j++) {
-					if (!names[j].equals(otherNames[j]))
-						continue nextPackage;
-				}
-				packages.add(currentPackage);
-			}
-			searchPackages = new IJavaScriptElement[packages.size()];
-			packages.toArray(searchPackages);
-		} else {
-			searchPackages = new IJavaScriptElement[1];
-			searchPackages[0] = fragment;
-		}
-		return SearchEngine.createJavaSearchScope(searchPackages);
-	}
-	IJavaScriptSearchScope getJavaSearchCUScope(String projectName, String packageName, String cuName) throws JavaScriptModelException {
-		IJavaScriptUnit cu = getCompilationUnit(projectName, "src", packageName, cuName);
-		return SearchEngine.createJavaSearchScope(new IJavaScriptUnit[] { cu });
-	}
-	protected void search(IJavaScriptElement element, int limitTo, IJavaScriptSearchScope scope) throws CoreException {
-		search(element, limitTo, EXACT_RULE, scope, resultCollector);
-	}
-	IJavaScriptSearchScope getJavaSearchWorkingCopiesScope(IJavaScriptUnit workingCopy) throws JavaScriptModelException {
-		return SearchEngine.createJavaSearchScope(new IJavaScriptUnit[] { workingCopy });
-	}
-	IJavaScriptSearchScope getJavaSearchWorkingCopiesScope() throws JavaScriptModelException {
-		return SearchEngine.createJavaSearchScope(this.workingCopies);
-	}
-	protected void search(IJavaScriptElement element, int limitTo, int matchRule, IJavaScriptSearchScope scope) throws CoreException {
-		search(element, limitTo, matchRule, scope, resultCollector);
-	}
-	protected void search(IJavaScriptElement element, int limitTo, int matchRule, IJavaScriptSearchScope scope, SearchRequestor requestor) throws CoreException {
-		SearchPattern pattern = SearchPattern.createPattern(element, limitTo, matchRule);
-		assertNotNull("Pattern should not be null", pattern);
-		new SearchEngine(workingCopies).search(
-			pattern,
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope,
-			requestor,
-			null
-		);
-	}
-	protected void search(SearchPattern searchPattern, IJavaScriptSearchScope scope, SearchRequestor requestor) throws CoreException {
-		new SearchEngine().search(
-			searchPattern, 
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope,
-			requestor,
-			null);
-	}
-	protected void search(String patternString, int searchFor, int limitTo, IJavaScriptSearchScope scope) throws CoreException {
-		search(patternString, searchFor, limitTo, EXACT_RULE, scope, resultCollector);
-	}
-	protected void search(String patternString, int searchFor, int limitTo, int matchRule, IJavaScriptSearchScope scope) throws CoreException {
-		search(patternString, searchFor, limitTo, matchRule, scope, resultCollector);
-	}
-	protected void search(String patternString, int searchFor, int limitTo, int matchRule, IJavaScriptSearchScope scope, SearchRequestor requestor) throws CoreException {
-		if (patternString.indexOf('*') != -1 || patternString.indexOf('?') != -1) {
-			matchRule |= SearchPattern.R_PATTERN_MATCH;
-		}
-		SearchPattern pattern = SearchPattern.createPattern(
-			patternString, 
-			searchFor,
-			limitTo, 
-			matchRule);
-		assertNotNull("Pattern should not be null", pattern);
-		new SearchEngine(workingCopies).search(
-			pattern,
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope,
-			requestor,
-			null);
-	}
-	protected void searchDeclarationsOfAccessedFields(IJavaScriptElement enclosingElement, SearchRequestor requestor) throws JavaScriptModelException {
-		new SearchEngine().searchDeclarationsOfAccessedFields(enclosingElement, requestor, null);
-	}
-	protected void searchDeclarationsOfReferencedTypes(IJavaScriptElement enclosingElement, SearchRequestor requestor) throws JavaScriptModelException {
-		new SearchEngine().searchDeclarationsOfReferencedTypes(enclosingElement, requestor, null);
-	}
-	protected void searchDeclarationsOfSentMessages(IJavaScriptElement enclosingElement, SearchRequestor requestor) throws JavaScriptModelException {
-		new SearchEngine().searchDeclarationsOfSentMessages(enclosingElement, requestor, null);
-	}
-	protected void setUp () throws Exception {
-		super.setUp();
-		this.resultCollector = new JavaSearchResultCollector();
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavadocCompletionModelTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavadocCompletionModelTest.java
deleted file mode 100644
index 2a9cabe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavadocCompletionModelTest.java
+++ /dev/null
@@ -1,500 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.parser.JavadocTagConstants;
-
-public abstract class AbstractJavadocCompletionModelTest extends AbstractJavaModelCompletionTests implements JavadocTagConstants {
-
-	// Basic relevance values
-	/** R_DEFAULT+R_INTERESTING+R_NON_RESTRICTED<br>= 8 */
-	protected final static int JAVADOC_RELEVANCE = R_DEFAULT + R_INTERESTING+ R_NON_RESTRICTED;
-	/** R_DEFAULT+R_INTERESTING<br>+R_UNQUALIFIED+R_NON_RESTRICTED<br>= 11 */
-	protected final static int R_DIUNR= R_DEFAULT+R_INTERESTING+R_UNQUALIFIED+R_NON_RESTRICTED;
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_NON_RESTRICTED<br>= 18 */
-	protected static final int R_DICNR = R_DEFAULT+R_INTERESTING+R_CASE+R_NON_RESTRICTED;
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_QUALIFIED+R_NON_RESTRICTED<br>= 20 */
-	protected static final int R_DICQNR = R_DEFAULT+R_INTERESTING+R_CASE+R_QUALIFIED+R_NON_RESTRICTED;
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_UNQUALIFIED+R_NON_RESTRICTED<br>= 21 */
-	protected static final int R_DICUNR = R_DEFAULT+R_INTERESTING+R_CASE+R_UNQUALIFIED+R_NON_RESTRICTED;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_NON_RESTRICTED<br>= 22 */
-	protected static final int R_DICENNR = R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME+R_NON_RESTRICTED;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_QUALIFIED+R_NON_RESTRICTED<br>= 24 */
-	protected static final int R_DICENQNR = R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME+R_QUALIFIED+R_NON_RESTRICTED;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_UNQUALIFIED+R_NON_RESTRICTED<br>= 25 */
-	protected static final int R_DICENUNR = R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME+R_UNQUALIFIED+R_NON_RESTRICTED;
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_NON_RESTRICTED+R_NON_STATIC<br>= 29 */
-	protected static final int R_DICNRNS = R_DEFAULT+R_INTERESTING+R_CASE+R_NON_RESTRICTED+R_NON_STATIC;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_NON_RESTRICTED+R_NON_STATIC<br>= 33 */
-	protected static final int R_DICENNRNS = R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME+R_NON_RESTRICTED+R_NON_STATIC;
-
-	// Exception relevance values
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_NON_RESTRICTED+R_EXCEPTION<br>= 38 */
-	protected static final int R_DICNRE = R_DICNR+R_EXCEPTION;
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_UNQUALIFIED+R_NON_RESTRICTED+R_EXCEPTION<br>= 41 */
-	protected static final int R_DICUNRE = R_DICUNR+R_EXCEPTION;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_NON_RESTRICTED+R_EXCEPTION<br>= 42 */
-	protected static final int R_DICENNRE = R_DICENNR+R_EXCEPTION;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_UNQUALIFIED+R_NON_RESTRICTED+R_EXCEPTION<br>= 45 */
-	protected static final int R_DICENUNRE = R_DICENUNR+R_EXCEPTION;
-
-	// Exact Expected relevance values
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_NON_RESTRICTED+R_EXACT_EXPECTED_TYPE<br>= 48 */
-	protected static final int R_DICNREET = R_DICNR+R_EXACT_EXPECTED_TYPE;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_UNQUALIFIED<br>+R_NON_RESTRICTED+R_EXACT_EXPECTED_TYPE<br>= 51 */
-	protected static final int R_DICUNREET = R_DICUNR+R_EXACT_EXPECTED_TYPE;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_UNQUALIFIED<br>+R_NON_RESTRICTED+R_EXACT_EXPECTED_TYPE+R_EXCEPTION<br>= 71 */
-	protected static final int R_DICUNREETE = R_DICUNR+R_EXACT_EXPECTED_TYPE+R_EXCEPTION;
-
-	// Exact Expected Exception relevance values
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_NON_RESTRICTED<br>+R_EXCEPTION+R_EXACT_EXPECTED_TYPE<br>= 68 */
-	protected static final int R_DICNREEET = R_DICNRE+R_EXACT_EXPECTED_TYPE;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_UNQUALIFIED<br>+R_NON_RESTRICTED+R_EXCEPTION<br>
-	 * +R_EXACT_EXPECTED_TYPE<br>= 71 */
-	protected static final int R_DICUNREEET = R_DICUNRE+R_EXACT_EXPECTED_TYPE;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_NON_RESTRICTED+R_EXCEPTION<br>
-	 * +R_EXACT_EXPECTED_TYPE<br>= 72 */
-	protected static final int R_DICENNREEET = R_DICENNRE+R_EXACT_EXPECTED_TYPE;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_UNQUALIFIED+R_NON_RESTRICTED+R_EXCEPTION<br>
-	 * +R_EXACT_EXPECTED_TYPE<br>= 75 */
-	protected static final int R_DICENUNREEET = R_DICENUNRE+R_EXACT_EXPECTED_TYPE;
-
-	// Inline tag relevance values
-	/** R_DEFAULT+R_INTERESTING+R_NON_RESTRICTED<br>+R_INLINE_TAG<br>= 39 */
-	protected static final int JAVADOC_RELEVANCE_IT = JAVADOC_RELEVANCE+R_INLINE_TAG;
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_NON_RESTRICTED+R_INLINE_TAG<br>= 49 */
-	protected static final int R_DICNRIT = R_DICNR+R_INLINE_TAG;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_UNQUALIFIED<br>+R_NON_RESTRICTED+R_INLINE_TAG<br>= 52 */
-	protected static final int R_DICUNRIT = R_DICUNR+R_INLINE_TAG;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_NON_RESTRICTED+R_INLINE_TAG<br>= 53 */
-	protected static final int R_DICENNRIT = R_DICENNR+R_INLINE_TAG;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME<br>+R_UNQUALIFIED+R_NON_RESTRICTED+R_INLINE_TAG<br>= 56 */
-	protected static final int R_DICENUNRIT = R_DICENUNR+R_INLINE_TAG;
-	/** R_DEFAULT+R_INTERESTING+R_CASE<br>+R_NON_RESTRICTED+R_NON_STATIC+R_INLINE_TAG<br>= 60 */
-	protected static final int R_DICNRNSIT = R_DICNRNS+R_INLINE_TAG;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_NON_RESTRICTED<br>+R_EXACT_EXPECTED_TYPE+R_INLINE_TAG<br>= 79 */
-	protected static final int R_DICNREETIT = R_DICNREET+R_INLINE_TAG;
-	/** R_DEFAULT+R_INTERESTING+R_CASE+R_UNQUALIFIED<br>+R_NON_RESTRICTED+R_EXACT_EXPECTED_TYPE<br>
-	 * +R_INLINE_TAG<br>= 82 */
-	protected static final int R_DICUNREETIT = R_DICUNREET+R_INLINE_TAG;
-	
-	// Store all relevance values in array
-	private static final int[] RELEVANCES = {
-		JAVADOC_RELEVANCE,
-		R_DIUNR,
-		R_DICNR,
-		R_DICQNR,
-		R_DICUNR,
-		R_DICENNR,
-		R_DICENQNR,
-		R_DICENUNR,
-		R_DICNRNS,
-		R_DICENNRNS,
-		R_DICNRE,
-		R_DICUNRE,
-		R_DICENNRE,
-		R_DICENUNRE,
-		R_DICNREET,
-		R_DICUNREET,
-		R_DICNREEET,
-		R_DICUNREEET,
-		R_DICENNREEET,
-		R_DICENUNREEET,
-		JAVADOC_RELEVANCE_IT,
-		R_DICNRIT,
-		R_DICUNRIT,
-		R_DICENNRIT,
-		R_DICENUNRIT,
-		R_DICNRNSIT,
-		R_DICNREETIT,
-		R_DICUNREETIT,
-	};
-	private static final String[] RELEVANCES_NAMES = {
-		"JAVADOC_RELEVANCE",
-		"R_DIUNR",
-		"R_DICNR",
-		"R_DICQNR",
-		"R_DICUNR",
-		"R_DICENNR",
-		"R_DICENQNR",
-		"R_DICENUNR",
-		"R_DICNRNS",
-		"R_DICENNRNS",
-		"R_DICNRE",
-		"R_DICUNRE",
-		"R_DICENNRE",
-		"R_DICENUNRE",
-		"R_DICNREET",
-		"R_DICUNREET",
-		"R_DICNREEET",
-		"R_DICUNREEET",
-		"R_DICENNREEET",
-		"R_DICENUNREEET",
-		"JAVADOC_RELEVANCE_IT",
-		"R_DICNRIT",
-		"R_DICUNRIT",
-		"R_DICENNRIT",
-		"R_DICENUNRIT",
-		"R_DICNRNSIT",
-		"R_DICNREETIT",
-		"R_DICUNREETIT",
-	};
-
-	// Write file contents
-	protected static final String WRITE_DIR = System.getProperty("writeDir");
-	protected static final File WRITE_DIR_FILE;
-	protected static final Set PACKAGE_FILES = new HashSet();
-	static {
-		File writeDir = null;
-		if (WRITE_DIR != null) {
-			// Create write directory if necessay
-			writeDir = new File(WRITE_DIR);
-			if (writeDir.exists()) {
-				// perhaps delete all files...
-			} else if (!writeDir.mkdirs()) {
-				System.err.println(WRITE_DIR+" does NOT exist and cannot be created!!!");
-				writeDir = null;
-			}
-			
-		}
-		WRITE_DIR_FILE = writeDir;
-	}
-
-	CompletionTestsRequestor2 requestor;
-	protected int cursorLocation;
-	protected int completionStart;
-	protected String replacedText;
-	protected String positions;
-
-	public AbstractJavadocCompletionModelTest(String name) {
-		super(name);
-		this.tabs = 2;
-		this.displayName = true;
-		this.endChar = "";
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(AbstractJavadocCompletionModelTest.class);
-	}
-	protected void assertResults(String expected) throws JavaScriptModelException {
-		int length = this.workingCopies.length;
-		String[] sources = new String[length*2];
-		for (int i=0; i<length; i++) {
-			sources[i*2] = this.workingCopies[i].getPath().toString();
-			sources[i*2+1] = this.workingCopies[i].getSource();
-		}
-		assertResults(sources, expected, this.requestor.getResultsWithoutSorting());
-	}
-	protected void assertSortedResults(String expected) throws JavaScriptModelException {
-		int length = this.workingCopies.length;
-		String[] sources = new String[length*2];
-		for (int i=0; i<length; i++) {
-			sources[i*2] = this.workingCopies[i].getPath().toString();
-			sources[i*2+1] = this.workingCopies[i].getSource();
-		}
-		assertResults(sources, expected, this.requestor.getReversedResults());
-	}
-	private void assertResults(String[] sources, String expected, String actual) {
-		int count = this.requestor.proposalsPtr+1;
-		if (!expected.equals(actual)) {
-			System.out.println("********************************************************************************");
-			if (this.displayName) {
-				System.out.print(getName());
-				System.out.print(" got ");
-				if (count==0)
-					System.out.println("no result!");
-				else {
-					System.out.print(count);
-					System.out.print(" result");
-					if (count==1)
-						System.out.println(":");
-					else
-						System.out.println("s:");
-				}
-			}
-			if (!this.displayName || count>0) {
-				System.out.println(displayString(actual, this.tabs));
-				System.out.println(this.endChar);
-			}
-			System.out.println("--------------------------------------------------------------------------------");
-			for (int i=0, length = sources.length; i<length; i+=2) {
-				System.out.println(sources[i]);
-				System.out.println(sources[i+1]);
-			}
-		}
-		assertEquals(
-			"Completion proposals are not correct!",
-			expected,
-			actual
-		);
-	}
-	protected void assertNoProblem(String path) {
-		String problem = this.requestor.getProblem();
-		if (problem.length() > 0) {
-			System.out.println("********************************************************************************");
-			if (this.displayName) {
-				System.out.print(getName());
-				System.out.println(" contains an error although it should NOT:");
-			}
-			System.out.println(displayString(problem, this.tabs));
-			System.out.println("--------------------------------------------------------------------------------");
-			System.out.println(this.workingCopies[0].getPath().toString()+'\n');
-			try {
-				System.out.println(this.workingCopies[0].getSource());
-			} catch (JavaScriptModelException e) {
-				// forget it
-			}
-			assertEquals(
-				path+" should have NO problem!",
-				"",
-				problem
-			);
-		}
-	}
-
-	protected void completeInJavadoc(String path, String source, boolean showPositions, String completeBehind) throws JavaScriptModelException {
-		completeInJavadoc(path, source, showPositions, completeBehind, 1 /* first index */);
-	}
-
-	protected void completeInJavadoc(String path, String source, boolean showPositions, String completeBehind, boolean last) throws JavaScriptModelException {
-		completeInJavadoc(path, source, showPositions, completeBehind, last ? -1 : 1);
-	}
-
-	protected void completeInJavadoc(String path, String source, boolean showPositions, String completeBehind, int occurencePosition) throws JavaScriptModelException {
-		completeInJavadoc(new String[] { path, source }, showPositions, completeBehind, occurencePosition, null);
-	}
-
-	protected void completeInJavadoc(String path, String source, boolean showPositions, String completeBehind, int occurencePosition, int[] ignoreList) throws JavaScriptModelException {
-		completeInJavadoc(new String[] { path, source }, showPositions, completeBehind, occurencePosition, ignoreList);
-	}
-	protected void completeInJavadoc(String[] sources, boolean showPositions, String completeBehind) throws JavaScriptModelException {
-		completeInJavadoc(sources, showPositions, completeBehind, 1, null);
-	}
-	
-	protected void completeInJavadoc(String[] sources, boolean showPositions, String completeBehind, int occurencePosition) throws JavaScriptModelException {
-		completeInJavadoc(sources, showPositions, completeBehind, occurencePosition, null);
-	}
-
-	protected void completeInJavadoc(String[] sources, boolean showPositions, String completeBehind, int occurencePosition, int[] ignoreList) throws JavaScriptModelException {
-		assertNotNull("We should have sources!!!", sources);
-		assertTrue("Invalid number of sources!!!",  sources.length%2==0);
-
-		// Build working copy(ies)
-		int length = sources.length / 2;
-		this.workingCopies = new IJavaScriptUnit[length];
-		for (int i=0; i<length; i++) {
-			this.workingCopies[i] = getWorkingCopy(sources[i*2], sources[i*2+1]);
-			if (WRITE_DIR != null) 	writeFiles(sources);
-		}
-		
-		// Wait for indexes
-		waitUntilIndexesReady();
-		
-		// Complete
-		this.requestor = new CompletionTestsRequestor2(true, false, showPositions);
-		if (ignoreList != null) {
-			for (int i = 0; i < ignoreList.length; i++) {
-				this.requestor.setIgnored(ignoreList[i], true);
-			}
-		}
-		String source = this.workingCopies[0].getSource();
-		this.replacedText = completeBehind;
-		this.completionStart = -1;
-		int cursorPos = this.replacedText.length();
-		if (occurencePosition < -10) { // case where we want to specify directly the cursor location relatively to completion start
-			this.completionStart = source.indexOf(this.replacedText);
-			cursorPos = -occurencePosition - 10;
-		} else if (occurencePosition < 0) {
-			this.completionStart = source.lastIndexOf(this.replacedText);
-			int max = -occurencePosition;
-			for (int i=1; i<max; i++) {
-				this.completionStart = source.lastIndexOf(this.replacedText, this.completionStart);
-			}
-		} else {
-			this.completionStart = source.indexOf(this.replacedText);
-			int shift = this.replacedText.length();
-			for (int i=1; i<occurencePosition && this.completionStart>0; i++) {
-				this.completionStart = source.indexOf(this.replacedText, this.completionStart+shift);
-			}
-		}
-		assertTrue("We should have found "+occurencePosition+" occurence(s) of '"+this.replacedText+"' in:\n"+source, this.completionStart>0);
-		this.cursorLocation =  this.completionStart + cursorPos;
-		this.workingCopies[0].codeComplete(this.cursorLocation, requestor, this.wcOwner);
-		assertNoProblem(sources[0]);
-
-		// Store replacement info
-		if (occurencePosition == 0) { // special case for completion on empty token...
-			this.completionStart = this.cursorLocation;
-		}
-		int endPosition = this.cursorLocation;
-		char ch = source.charAt(endPosition);
-		if (Character.isJavaIdentifierPart(ch) || ch == '>' || ch == '}' || ch == '(' || ch == ')') {
-			do {
-				ch = source.charAt(++endPosition);
-			} while (Character.isJavaIdentifierPart(ch) || ch == '>' || ch == '}' || ch == '(' || ch == ')');
-		}
-		this.positions = "["+this.completionStart+", "+endPosition+"], ";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#displayString(java.lang.String, int)
-	 */
-	protected String displayString(String toPrint, int indent) {
-		String toDisplay = super.displayString(toPrint, indent);
-		int openBracket = toDisplay.indexOf(", [");
-		if (openBracket > 0) {
-			StringBuffer buffer = new StringBuffer();
-			int closeBracket = 0;
-			while (openBracket > 0) {
-				buffer.append(toDisplay.substring(closeBracket, openBracket+2));
-				closeBracket = toDisplay.indexOf("], ", openBracket+3);
-				if (closeBracket < 0) break; // invalid
-				closeBracket += 3;
-				buffer.append("\"+this.positions+");
-				int i=0;
-				while (toDisplay.charAt(closeBracket+i) != '}') i++;
-				try {
-					int relevance = Integer.parseInt(toDisplay.substring(closeBracket, closeBracket+i));
-					int length = RELEVANCES.length;
-					boolean found = false;
-					for (int r=0; !found && r<length; r++) {
-						if (RELEVANCES[r] == relevance) {
-							buffer.append(RELEVANCES_NAMES[r]);
-							buffer.append("+\"");
-							found = true;
-						}
-					}
-					if (!found) {
-						buffer.append('"');
-						buffer.append(relevance);
-					}
-					closeBracket += i;
-				}
-				catch (NumberFormatException nfe) {
-					System.err.println(nfe.getMessage()+" should not occur!");
-				}
-				openBracket = toDisplay.indexOf(", [", closeBracket);
-			}
-			if (closeBracket > 0) {
-				buffer.append(toDisplay.substring(closeBracket, toDisplay.length()));
-				toDisplay = buffer.toString();
-			}
-		}
-		return toDisplay.replaceAll(", 8}", ", \"+JAVADOC_RELEVANCE+\"}");
-	}
-
-	protected void setUpProjectOptions(String compliance) throws JavaScriptModelException {
-		try {
-			setUpProjectCompliance(COMPLETION_PROJECT, compliance);
-		} catch (IOException e) {
-			assertTrue("Unexpected IOException: "+e.getMessage(), false);
-		}
-	}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		if (COMPLETION_PROJECT == null)  {
-			COMPLETION_PROJECT = setUpJavaProject("Completion");
-			createFolder(new Path("/Completion/src/javadoc/tags"));
-		} else {
-			setUpProjectCompliance(COMPLETION_PROJECT, "1.4");
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		this.requestor = null;
-		super.tearDown();
-	}
-
-	public void tearDownSuite() throws Exception {
-		deleteFolder(new Path("/Completion/src/javadoc/tags"));
-		super.tearDownSuite();
-		if (COMPLETION_SUITES == null) {
-			COMPLETION_PROJECT = null;
-		}
-	}
-
-	/*
-	 * Write files for self-hosting debug.
-	 */
-	protected void writeFiles(String[] sources) {
-
-		// Get write directory path
-		if (WRITE_DIR_FILE == null) return;
-		
-		// Get test name
-		String testName = getName();
-		int idx = testName.indexOf(" - ");
-		if (idx > 0) {
-			testName = testName.substring(idx+3);
-		}
-//		testName = "Test"+testName.substring(4);
-		
-		// Write sources to dir
-		int length = sources.length / 2;
-		String[][] names = new String[length][3];
-		for (int i=0; i<length; i++) {
-			
-			// Get pathes
-			IPath filePath = new Path(sources[2*i]).removeFirstSegments(2); // remove project and source folder
-			IPath dirPath = filePath.removeLastSegments(1);
-			String fileDir = dirPath.toString();
-			String typeName = filePath.removeFileExtension().lastSegment();
-			
-			// Create package dir or delete files if already exist
-			File packageDir = new File(WRITE_DIR_FILE, fileDir);
-			if (!PACKAGE_FILES.contains(packageDir)) {
-				if (packageDir.exists()) {
-					PACKAGE_FILES.add(packageDir);
-					Util.delete(packageDir);
-				} else if (packageDir.mkdirs()) {
-					PACKAGE_FILES.add(packageDir);
-				} else {
-					System.err.println(packageDir+" does not exist and CANNOT be created!!!");
-					continue;
-				}
-			}
-			
-			// Store names info
-			names[i][0] = typeName;
-			String fileName = (typeName.length() <= 3) ? typeName : typeName.substring(0, typeName.length()-3);
-			fileName = fileName + testName.substring(4);
-			names[i][1] = fileName;
-			names[i][2] = packageDir.getAbsolutePath()+"\\"+fileName+".js";
-		}
-			
-		// Write modified contents
-		for (int i=0; i<length; i++) {
-			String contents = sources[2*i+1];
-			for (int j=0; j<length; j++) {
-				contents = contents.replaceAll(names[j][0], names[j][1]);
-			}
-			String fullPathName = names[i][2];
-			System.out.println("Write file "+fullPathName);
-			Util.writeToFile(contents, fullPathName);
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AccessRestrictionsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AccessRestrictionsTests.java
deleted file mode 100644
index 00423a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AccessRestrictionsTests.java
+++ /dev/null
@@ -1,1023 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-
-public class AccessRestrictionsTests extends ModifyingResourceTests {
-	static class ProblemRequestor extends AbstractJavaModelTests.ProblemRequestor {
-		ProblemRequestor (String source) {
-			if (source != null) 
-				unitSource = source.toCharArray();
-		}
-		ProblemRequestor() {
-		}
-		public void acceptProblem(IProblem problem) {
-			super.acceptProblem(problem);
-		}
-	}
-	
-	protected ProblemRequestor problemRequestor;
-
-	public AccessRestrictionsTests(String name) {
-		super(name);
-	}
-	
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-		// Names of tests to run, like "testXXX"
-  		//TESTS_NAMES = new String[] { "test004" };
-		// Numbers of tests to run: "test<number>" will be run for each number of this array
-		//TESTS_NUMBERS = new int[] { 1 };
-		// Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
-		//TESTS_RANGE = new int[] { 16, -1 };
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(AccessRestrictionsTests.class);
-	}
-
-	protected void assertProblems(String message, String expected) {
-		assertProblems(message, expected, this.problemRequestor);
-	}
-
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76266
- * Ensures that a problem is created for a reference to a method of a type that is not
- * accessible in a prereq project, even though it is accessed through an intermediate 
- * accessible class.
- */
-public void test001() throws CoreException {
-	IJavaScriptUnit x1 = null, x2 = null, y =  null, z = null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		this.problemRequestor = new ProblemRequestor();
-		x1 = getWorkingCopy(
-			"/P1/src/p/X1.js",
-			"package p;\n" +
-			"public class X1 {\n" +
-			"	void foo() {\n" +
-			"	}\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		x2 = getWorkingCopy(			
-			"/P1/src/p/X2.js",
-			"package p;\n" +
-			"public class X2 extends X1 {\n" +
-			"	void bar() {\n" +
-			"	}\n" +
-			"}",			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X1");
-		p2.setRawIncludepath(classpath, null);
-		// check the most basic case
-		String src =
-			"package p;\n" +
-			"public class Z extends X1 {\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		z = getWorkingCopy(			
-			"/P2/src/p/Z.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Z.java (at line 2)\n" + 
-			"	public class Z extends X1 {\n" + 
-			"	                       ^^\n" + 
-			"Access restriction: The type X1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-		// check the specifics of this test case
-		src = 
-			"package p;\n" +
-			"public class Y extends X2 {\n" +
-			"	void foobar() {\n" +
-			"		foo(); // accesses X1.foo, should trigger an error\n" +
-			"		bar(); // accesses X2.bar, OK\n" +
-			"	}\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/p/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	foo(); // accesses X1.foo, should trigger an error\n" + 
-			"	^^^^^\n" + 
-			"Access restriction: The method foo() from the type X1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (x1 != null)
-			x1.discardWorkingCopy();
-		if (x2 != null)
-			x2.discardWorkingCopy();
-		if (y != null)
-			y.discardWorkingCopy();
-		if (z != null)
-			z.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76266
- * Ensures that a problem is created for a reference to a field of a type that is not
- * accessible in a prereq project, even though it is accessed through an intermediate 
- * accessible class.
- */
-public void test002() throws CoreException {
-	IJavaScriptUnit x1 = null, x2 = null, y =  null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		this.problemRequestor = new ProblemRequestor();
-		x1 = getWorkingCopy(
-			"/P1/src/p/X1.js",
-			"package p;\n" +
-			"public class X1 {\n" +
-			"	int m1;\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		x2 = getWorkingCopy(			
-			"/P1/src/p/X2.js",
-			"package p;\n" +
-			"public class X2 extends X1 {\n" +
-			"	char m2;\n" +
-			"}",
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X1");
-		p2.setRawIncludepath(classpath, null);
-		String src = 
-			"package p;\n" +
-			"public class Y extends X2 {\n" +
-			"	void foobar() {\n" +
-			"		int l1 = m1; // accesses X1.m1, should trigger an error\n" +
-			"		char l2 = m2; // accesses X2.m2, OK\n" +
-			"	}\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/p/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	int l1 = m1; // accesses X1.m1, should trigger an error\n" + 
-			"	         ^^\n" + 
-			"Access restriction: The field m1 from the type X1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (x1 != null)
-			x1.discardWorkingCopy();
-		if (x2 != null)
-			x2.discardWorkingCopy();
-		if (y != null)
-			y.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76266
- * Ensures that a problem is created for a reference to a member type of a type that is not
- * accessible in a prereq project, even though it is accessed through an intermediate 
- * accessible class.
- */
-public void test003() throws CoreException {
-	IJavaScriptUnit x1 = null, x2 = null, y =  null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		this.problemRequestor = new ProblemRequestor();
-		x1 = getWorkingCopy(
-			"/P1/src/p/X1.js",
-			"package p;\n" +
-			"public class X1 {\n" +
-			"	class C1 {\n" +
-			"	   protected C1 (int dummy) {}\n" +
-			"	   protected void foo() {}\n" +
-			"	}\n" +
-			"	interface I1 {}\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		x2 = getWorkingCopy(			
-			"/P1/src/p/X2.js",
-			"package p;\n" +
-			"public class X2 extends X1 {\n" +
-			"	class C2 {}\n" +
-			"	interface I2 {}\n" +
-			"}",
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X1");
-		p2.setRawIncludepath(classpath, null);
-		String src =
-			"package p;\n" +
-			"public class Y extends X2 {\n" +
-			"	class C3a extends C1 {      // error\n" +
-			"	   C3a() {\n" +
-			"	      super(0);\n" +
-			"	      foo();                // error\n" +
-			"	   }\n" +
-			"	}\n" +
-			"	class C3c extends C2 implements I2 {}\n" +
-			"	void foobar() {\n" +
-			"		C1 m1 =                 // error\n" +
-			"		        new C1(0);      // error\n" +
-			"		C2 m2 = new C2();\n" +
-			"	}\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/p/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Y.java (at line 3)\n" + 
-			"	class C3a extends C1 {      // error\n" + 
-			"	                  ^^\n" + 
-			"Access restriction: The type X1.C1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"2. ERROR in /P2/src/p/Y.java (at line 5)\n" + 
-			"	super(0);\n" + 
-			"	^^^^^^^^^\n" + 
-			"Access restriction: The constructor X1.C1(int) is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"3. ERROR in /P2/src/p/Y.java (at line 6)\n" + 
-			"	foo();                // error\n" + 
-			"	^^^^^\n" + 
-			"Access restriction: The method foo() from the type X1.C1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"4. ERROR in /P2/src/p/Y.java (at line 11)\n" + 
-			"	C1 m1 =                 // error\n" + 
-			"	^^\n" + 
-			"Access restriction: The type X1.C1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"5. ERROR in /P2/src/p/Y.java (at line 12)\n" + 
-			"	new C1(0);      // error\n" + 
-			"	^^^^^^^^^\n" + 
-			"Access restriction: The constructor X1.C1(int) is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"6. ERROR in /P2/src/p/Y.java (at line 12)\n" + 
-			"	new C1(0);      // error\n" + 
-			"	    ^^\n" + 
-			"Access restriction: The type X1.C1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (x1 != null)
-			x1.discardWorkingCopy();
-		if (x2 != null)
-			x2.discardWorkingCopy();
-		if (y != null)
-			y.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * Discouraged access message - type via discouraged rule.
- */
-public void test004() throws CoreException {
-	IJavaScriptUnit x1 = null, z = null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		this.problemRequestor = new ProblemRequestor();
-		x1 = getWorkingCopy(
-			"/P1/src/p/X1.js",
-			"package p;\n" +
-			"public class X1 {\n" +
-			"	class C1 {}\n" +
-			"	interface I1 {}\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "~p/X1");
-		p2.setRawIncludepath(classpath, null);
-		String src =
-			"package p;\n" +
-			"public class Z extends X1 {\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		z = getWorkingCopy(			
-			"/P2/src/p/Z.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. WARNING in /P2/src/p/Z.java (at line 2)\n" + 
-			"	public class Z extends X1 {\n" + 
-			"	                       ^^\n" + 
-			"Discouraged access: The type X1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (x1 != null)
-			x1.discardWorkingCopy();
-		if (z != null)
-			z.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=76266
- * Ensures that a problem is created for a reference to a method of a type that is not
- * accessible in a prereq project, even though it is accessed through an intermediate 
- * class that implements an interface that defines the same method, both the second
- * class and the interface being accessible.
- * The point here is that the existence of the accessible interface may imply that the
- * foo method be accessible through X2. By design, the lookup returns X1#foo though, 
- * like it does for a press upon F3 in the interface, and hence the access restriction
- * gets triggered. Rule of thumb: if pressing F3 on a method or field directs the
- * interface to a definition within a restricted type, then the use of the said method
- * or field is restricted.
- */
-public void test005() throws CoreException {
-	IJavaScriptUnit x1 = null, i1 = null, x2 = null, y =  null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		this.problemRequestor = new ProblemRequestor();
-		x1 = getWorkingCopy(
-			"/P1/src/p/X1.js",
-			"package p;\n" +
-			"public class X1 {\n" +
-			"	public void foo() {\n" +
-			"	}\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		i1 = getWorkingCopy(			
-			"/P1/src/q/I1.js",
-			"package q;\n" +
-			"interface I1 {\n" +
-			"	void foo();\n" +
-			"}",			
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		x2 = getWorkingCopy(			
-			"/P1/src/q/X2.js",
-			"package q;\n" +
-			"public class X2 extends p.X1 {\n" +
-			"	public void bar() {\n" +
-			"	  foo();\n" +
-			"	}\n" +
-			"}",
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject(
-			"P2", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, 
-				classpath = new IIncludePathEntry[length + 1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X1");
-		p2.setRawIncludepath(classpath, null);
-		String src = 
-			"package r;\n" +
-			"public class Y {\n" +
-			"	void foobar() {\n" +
-			"		(new q.X2()).foo(); // accesses p.X1#foo, should trigger an error\n" +
-			"		(new q.X2()).bar(); // accesses q.X2#bar, OK\n" +
-			"	}\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/r/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/r/Y.java (at line 4)\n" + 
-			"	(new q.X2()).foo(); // accesses p.X1#foo, should trigger an error\n" + 
-			"	^^^^^^^^^^^^^^^^^^\n" + 
-			"Access restriction: The method foo() from the type X1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (x1 != null)
-			x1.discardWorkingCopy();
-		if (i1 != null)
-			i1.discardWorkingCopy();
-		if (x2 != null)
-			x2.discardWorkingCopy();
-		if (y != null)
-			y.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * Missing access restriction violation error on generic type.
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=122995
- */
-public void test006() throws CoreException {
-	IJavaScriptUnit x = null, y =  null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		IJavaScriptProject p1 = createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");
-		p1.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		this.problemRequestor = new ProblemRequestor();
-		x = getWorkingCopy(
-			"/P1/src/p/X.js",
-			"package p;\n" +
-			"public class X<T> {\n" +
-			"	T m;\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject(
-				"P2", 
-				new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");
-		p2.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X");
-		p2.setRawIncludepath(classpath, null);
-		String src =
-			"package p;\n" +
-			"public class Y {\n" +
-			"	X x1;\n" +
-			"	X<String> x2 = new X<String>();\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/p/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Y.java (at line 3)\n" + 
-			"	X x1;\n" + 
-			"	^\n" + 
-			"Access restriction: The type X<T> is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"2. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	X<String> x2 = new X<String>();\n" + 
-			"	^\n" + 
-			"Access restriction: The type X<String> is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"3. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	X<String> x2 = new X<String>();\n" + 
-			"	               ^^^^^^^^^^^^^^^\n" + 
-			"Access restriction: The constructor X<String>() is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"4. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	X<String> x2 = new X<String>();\n" + 
-			"	                   ^\n" + 
-			"Access restriction: The type X<String> is not accessible due to restriction on required project P1\n" + 
-			"----------\n");
-	} finally {
-		if (x != null) {
-			x.discardWorkingCopy();
-		}
-		if (y != null) {
-			y.discardWorkingCopy();
-		}
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * Missing access restriction violation error on generic type.
- * More complex type parameter - stretch the erasure.
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=122995
- */
-public void test007() throws CoreException {
-	IJavaScriptUnit x = null, y =  null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		IJavaScriptProject p1 = createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");
-		p1.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		this.problemRequestor = new ProblemRequestor();
-		x = getWorkingCopy(
-			"/P1/src/p/X.js",
-			"package p;\n" +
-			"public class X<T extends String> {\n" +
-			"  T m;\n" +
-			"  public X (T t) {\n" +
-			"    this.m = t;\n" +
-			"  }\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject(
-				"P2", 
-				new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");
-		p2.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X");
-		p2.setRawIncludepath(classpath, null);
-		String src =
-			"package p;\n" +
-			"public class Y {\n" +
-			"	X x1;\n" +
-			"	X<String> x2 = new X<String>(\"\");\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/p/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Y.java (at line 3)\n" + 
-			"	X x1;\n" + 
-			"	^\n" + 
-			"Access restriction: The type X<T> is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"2. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	X<String> x2 = new X<String>(\"\");\n" + 
-			"	^\n" + 
-			"Access restriction: The type X<String> is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"3. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	X<String> x2 = new X<String>(\"\");\n" + 
-			"	               ^^^^^^^^^^^^^^^^^\n" + 
-			"Access restriction: The constructor X<String>(String) is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"4. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	X<String> x2 = new X<String>(\"\");\n" + 
-			"	                   ^\n" + 
-			"Access restriction: The type X<String> is not accessible due to restriction on required project P1\n" + 
-			"----------\n");
-	} finally {
-		if (x != null) {
-			x.discardWorkingCopy();
-		}
-		if (y != null) {
-			y.discardWorkingCopy();
-		}
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * Missing access restriction violation error on generic type.
- * Method case.
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=122995
- */
-public void test008() throws CoreException {
-	IJavaScriptUnit x1 = null, x2 = null, y =  null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		IJavaScriptProject p1 = createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");		
-		p1.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		this.problemRequestor = new ProblemRequestor();
-		x1 = getWorkingCopy(
-			"/P1/src/p/X1.js",
-			"package p;\n" +
-			"public class X1<T> {\n" +
-			"	void foo() {\n" +
-			"	}\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		x2 = getWorkingCopy(			
-			"/P1/src/p/X2.js",
-			"package p;\n" +
-			"public class X2 extends X1 {\n" +
-			"	void bar() {\n" +
-			"	}\n" +
-			"}",			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");		
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X1");
-		p2.setRawIncludepath(classpath, null);
-		String src = 
-			"package p;\n" +
-			"public class Y extends X2 {\n" +
-			"	void foobar() {\n" +
-			"		foo(); // accesses X1.foo, should trigger an error\n" +
-			"		bar(); // accesses X2.bar, OK\n" +
-			"	}\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/p/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	foo(); // accesses X1.foo, should trigger an error\n" + 
-			"	^^^^^\n" + 
-			"Access restriction: The method foo() from the type X1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (x1 != null)
-			x1.discardWorkingCopy();
-		if (x2 != null)
-			x2.discardWorkingCopy();
-		if (y != null)
-			y.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * Missing access restriction violation error on generic type.
- * Field case.
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=122995
- */
-public void test009() throws CoreException {
-	IJavaScriptUnit x1 = null, x2 = null, y =  null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		IJavaScriptProject p1 = createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");		
-		p1.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		this.problemRequestor = new ProblemRequestor();
-		x1 = getWorkingCopy(
-			"/P1/src/p/X1.js",
-			"package p;\n" +
-			"public class X1<T> {\n" +
-			"	int m1;\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		x2 = getWorkingCopy(			
-			"/P1/src/p/X2.js",
-			"package p;\n" +
-			"public class X2 extends X1 {\n" +
-			"	char m2;\n" +
-			"}",
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");		
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X1");
-		p2.setRawIncludepath(classpath, null);
-		String src = 
-			"package p;\n" +
-			"public class Y extends X2 {\n" +
-			"	void foobar() {\n" +
-			"		int l1 = m1; // accesses X1.m1, should trigger an error\n" +
-			"		char l2 = m2; // accesses X2.m2, OK\n" +
-			"	}\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/p/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Y.java (at line 4)\n" + 
-			"	int l1 = m1; // accesses X1.m1, should trigger an error\n" + 
-			"	         ^^\n" + 
-			"Access restriction: The field m1 from the type X1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (x1 != null)
-			x1.discardWorkingCopy();
-		if (x2 != null)
-			x2.discardWorkingCopy();
-		if (y != null)
-			y.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * Missing access restriction violation error on generic type.
- * Inner type case.
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=122995
- */
-public void test010() throws CoreException {
-	IJavaScriptUnit x1 = null, x2 = null, y =  null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner(){};
-		IJavaScriptProject p1 = createJavaProject(
-			"P1", 
-			new String[] {"src"}, 
-			new String[] {"JCL_LIB"});
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p1.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");		
-		p1.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		this.problemRequestor = new ProblemRequestor();
-		x1 = getWorkingCopy(
-			"/P1/src/p/X1.js",
-			"package p;\n" +
-			"public class X1<T> {\n" +
-			"	class C1 {\n" +
-			"	   protected C1 (int dummy) {}\n" +
-			"	   protected void foo() {}\n" +
-			"	}\n" +
-			"	interface I1 {}\n" +
-			"}",
-			owner,
-			this.problemRequestor);	
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		x2 = getWorkingCopy(			
-			"/P1/src/p/X2.js",
-			"package p;\n" +
-			"public class X2 extends X1 {\n" +
-			"	class C2 {}\n" +
-			"	interface I2 {}\n" +
-			"}",
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {"src"}, 
-				new String[] {"JCL_LIB"});
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.compliance", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.source", "1.5");
-		p2.setOption("org.eclipse.wst.jsdt.core.compiler.targetPlatform", "1.5");		
-		p2.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-		IIncludePathEntry[] classpath = p2.getRawIncludepath();
-		int length = classpath.length;
-		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-		classpath[length] = createSourceEntry("P2", "/P1", "-p/X1");
-		p2.setRawIncludepath(classpath, null);
-		String src =
-			"package p;\n" +
-			"public class Y extends X2 {\n" +
-			"	class C3a extends C1 {      // error\n" +
-			"	   C3a() {\n" +
-			"	      super(0);\n" +
-			"	      foo();                // error\n" +
-			"	   }\n" +
-			"	}\n" +
-			"	class C3c extends C2 implements I2 {}\n" +
-			"	void foobar() {\n" +
-			"		C1 m1 =                 // error\n" +
-			"		        new C1(0);      // error\n" +
-			"		C2 m2 = new C2();\n" +
-			"	}\n" +
-			"}";
-		this.problemRequestor = new ProblemRequestor(src);
-		y = getWorkingCopy(			
-			"/P2/src/p/Y.js", 
-			src,
-			owner,
-			this.problemRequestor);
-		assertProblems(
-			"Unexpected problems value", 
-			"----------\n" + 
-			"1. ERROR in /P2/src/p/Y.java (at line 3)\n" + 
-			"	class C3a extends C1 {      // error\n" + 
-			"	                  ^^\n" + 
-			"Access restriction: The type X1.C1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"2. ERROR in /P2/src/p/Y.java (at line 5)\n" + 
-			"	super(0);\n" + 
-			"	^^^^^^^^^\n" + 
-			"Access restriction: The constructor X1.C1(int) is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"3. ERROR in /P2/src/p/Y.java (at line 6)\n" + 
-			"	foo();                // error\n" + 
-			"	^^^^^\n" + 
-			"Access restriction: The method foo() from the type X1.C1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"4. ERROR in /P2/src/p/Y.java (at line 11)\n" + 
-			"	C1 m1 =                 // error\n" + 
-			"	^^\n" + 
-			"Access restriction: The type X1.C1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"5. ERROR in /P2/src/p/Y.java (at line 12)\n" + 
-			"	new C1(0);      // error\n" + 
-			"	^^^^^^^^^\n" + 
-			"Access restriction: The constructor X1.C1(int) is not accessible due to restriction on required project P1\n" + 
-			"----------\n" + 
-			"6. ERROR in /P2/src/p/Y.java (at line 12)\n" + 
-			"	new C1(0);      // error\n" + 
-			"	    ^^\n" + 
-			"Access restriction: The type X1.C1 is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (x1 != null)
-			x1.discardWorkingCopy();
-		if (x2 != null)
-			x2.discardWorkingCopy();
-		if (y != null)
-			y.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AttachSourceTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AttachSourceTests.java
deleted file mode 100644
index dec120e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AttachSourceTests.java
+++ /dev/null
@@ -1,1141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-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.IFunction;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IMember;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.ISourceRange;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.ASTParser;
-
-/**
- * TO DO:
- * - source attachment on external jar.
- * - don't use assertTrue where assertEquals should be used
- * - don't hardcode positions
-*/
-public class AttachSourceTests extends ModifyingResourceTests {
-	static {
-//		TESTS_NAMES = new String[] { "testClassFileGetElementAt04" };
-//		TESTS_NUMBERS = new int[] { 5 };
-//		TESTS_RANGE = new int[] { 169, 180 };
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(AttachSourceTests.class);
-	}
-
-	/** @deprecated using deprecated code */
-	private static final int AST_INTERNAL_JLS2 = AST.JLS2;
-	
-	private IPackageFragmentRoot pkgFragmentRoot;
-	private IType genericType;
-	private IPackageFragment innerClasses;
-	
-public AttachSourceTests(String name) {
-	super(name);
-}
-public ASTNode runConversion(IClassFile classFile, boolean resolveBindings) {
-	ASTParser parser = ASTParser.newParser(AST_INTERNAL_JLS2);
-	parser.setSource(classFile);
-	parser.setResolveBindings(resolveBindings);
-	parser.setWorkingCopyOwner(null);
-	return parser.createAST(null);
-}
-protected void setUp() throws Exception {
-	super.setUp();
-	this.attachSource(this.pkgFragmentRoot, "/AttachSourceTests/attachsrc.zip", "");
-}
-/**
- * Create project and set the jar placeholder.
- */
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	setUpJavaProject("AttachSourceTests");
-	addLibraryEntry("/AttachSourceTests/b153133.jar", false);
-	this.pkgFragmentRoot = this.currentProject.getPackageFragmentRoot(this.getFile("/AttachSourceTests/attach.jar"));
-	setUpGenericJar();
-	setUpInnerClassesJar();
-}
-private void setUpGenericJar() throws IOException, CoreException {
-	String[] pathAndContents = new String[] {
-		"generic/X.js", 
-		"package generic;\n" +
-		"public class X<T> {\n" + 
-		"  void foo(X<T> x) {\n" +
-		"  }\n" +
-		"  <K, V> V foo(K key, V value) {\n" +
-		"    return value;\n" +
-		"  }\n" +
-		"  void foo(int i, X<Object[]> x) {\n" +
-		"  }\n" +
-		"  void foo(boolean b, X<? extends X> x) {\n" +
-		"  }\n" +
-		"  void foo(float f, X<?> x) {\n" +
-		"  }\n" +
-		"  void foo(Y<? extends Integer, ? extends Object> y) {\n" +
-		"  }\n" +
-		"  void foo(Z.Inner<Object> inner) {\n" +
-		"  }\n" +
-		"  void foo(AType<Object> t) {\n" +
-		"  }\n" +
-		"}\n" +
-		"class Y<K, V> {\n" +
-		"}\n" +
-		"class Z {\n" +
-		"  class Inner<E> {\n" +
-		"  }\n" +
-		"}\n" +
-		"class AType<E> {\n" + // type name containing character 'T'
-		"}"
-	};
-	addLibrary("generic.jar", "genericsrc.zip", pathAndContents, JavaScriptCore.VERSION_1_5);
-	IFile jar = getFile("/AttachSourceTests/generic.jar");
-	this.genericType = this.currentProject.getPackageFragmentRoot(jar).getPackageFragment("generic").getClassFile("X.class").getType();
-}
-private void setUpInnerClassesJar() throws IOException, CoreException {
-	String[] pathAndContents = new String[] {
-		"inner/X.js", 
-		"package inner;\n" +
-		"public class X {\n" + 
-		"  void foo() {\n" +
-		"    new X() {};\n" +
-		"    class Y {}\n" +
-		"    new Y() {\n" +
-		"      class Z {}\n" +
-		"    };\n" +
-		"    class W {\n" +
-		"      void bar() {\n" +
-		"        new W() {};\n" +
-		"      }\n" +
-		"    }\n" +
-		"    new Object() {\n" +
-		"      class U {\n" +
-		"        U(String s) {\n" +
-		"        }\n" +
-		"      }\n" +
-		"    };\n" +
-		"  }\n" +
-		"  class V {\n" +
-		"    V(String s) {\n" +
-		"    }\n" +
-		"  }\n" +
-		"}"
-	};
-	addLibrary("innerClasses.jar", "innerClassessrc.zip", pathAndContents, JavaScriptCore.VERSION_1_4);
-	IFile jar = getFile("/AttachSourceTests/innerClasses.jar");
-	this.innerClasses = this.currentProject.getPackageFragmentRoot(jar).getPackageFragment("inner");
-}
-protected void tearDown() throws Exception {
-	IPackageFragmentRoot[] roots = this.currentProject.getAllPackageFragmentRoots();
-	for (int i = 0; i < roots.length; i++) {
-		IPackageFragmentRoot root = roots[i];
-		if (this.genericType != null && root.equals(this.genericType.getPackageFragment().getParent())) continue;
-		if (this.innerClasses != null && root.equals(this.innerClasses.getParent())) continue;
-		if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
-			this.attachSource(root, null, null); // detach source
-		}
-	}
-	super.tearDown();
-}
-
-/**
- * Reset the jar placeholder and delete project.
- */
-public void tearDownSuite() throws Exception {
-	deleteProject(this.currentProject);
-	super.tearDownSuite();
-}
-
-/**
- * Test AST.parseCompilationUnit(IClassFile, boolean).
- */
-public void testASTParsing() throws JavaScriptModelException {
-	this.attachSource(this.pkgFragmentRoot, "/AttachSourceTests/attachsrc.zip", "");	
-	IClassFile classFile = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	ASTNode node = runConversion(classFile, true);
-	assertNotNull("No node", node);
-	this.attachSource(this.pkgFragmentRoot, null, null);
-	IClassFile cf = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	assertTrue("source code should no longer exist for A", cf.getSource() == null);
-	try {
-		node = runConversion(classFile, true);
-		assertTrue("Should not be here", false);
-	} catch(IllegalStateException e) {
-		assertTrue(true);
-	}
-}
-/**
- * Test AST.parseCompilationUnit(IClassFile, boolean).
- * Test for http://bugs.eclipse.org/bugs/show_bug.cgi?id=30471
- */
-public void testASTParsing2() throws JavaScriptModelException {
-	this.attachSource(this.pkgFragmentRoot, "/AttachSourceTests/attachsrc.zip", "");	
-	IClassFile classFile = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	ASTNode node = runConversion(classFile, false);
-	assertNotNull("No node", node);
-	this.attachSource(this.pkgFragmentRoot, null, null);
-	IClassFile cf = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	assertTrue("source code should no longer exist for A", cf.getSource() == null);
-	try {
-		node = runConversion(classFile, false);
-		assertTrue("Should not be here", false);
-	} catch(IllegalStateException e) {
-		assertTrue(true);
-	}
-}
-/**
- * Changing the source attachment file should update the java model.
- * (regression test for bug 23292 Must restart Eclipse after debug of source in .zip is updated)
- */
-public void testChangeSourceAttachmentFile() throws CoreException {
-	IClassFile cf = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	IFunction method = cf.getType().getFunction("foo", new String[] {});
-	
-	// check initial source
-	assertSourceEquals(
-		"unexpected initial source for foo()",
-		"public void foo() {\n" +
-		"	}",
-		method.getSource());
-
-	// replace source attachment file
-	this.swapFiles("AttachSourceTests/attachsrc.zip", "AttachSourceTests/attachsrc.new.zip");
-	assertSourceEquals(
-		"unexpected source for foo() after replacement",
-		"public void foo() {\n" +
-		"		System.out.println(\"foo\");\n" +
-		"	}",
-		method.getSource());
-		
-	// delete source attachment file
-	this.deleteFile("AttachSourceTests/attachsrc.zip");
-	assertSourceEquals(
-		"unexpected source for foo() after deletion",
-		null,
-		method.getSource());
-		
-	// add source attachment file back
-	this.moveFile("AttachSourceTests/attachsrc.new.zip", "AttachSourceTests/attachsrc.zip");
-	assertSourceEquals(
-		"unexpected source for foo() after addition",
-		"public void foo() {\n" +
-		"	}",
-		method.getSource());
-}
-/**
- * Ensure that a class file with an attached source can retrieve its children given a source index.
- */
-public void testClassFileGetElementAt01() throws JavaScriptModelException {
-	IClassFile classFile = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	String source = classFile.getSource();
-	IJavaScriptElement element = classFile.getElementAt(source.indexOf("class A"));
-	assertElementEquals(
-		"Unexpected element",
-		"A [in A.class [in x.y [in attach.jar [in AttachSourceTests]]]]",
-		element);
-}
-/**
- * Ensure that a class file with an attached source can retrieve its children given a source index.
- */
-public void testClassFileGetElementAt02() throws JavaScriptModelException {
-	IClassFile classFile = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	String source = classFile.getSource();
-	IJavaScriptElement element = classFile.getElementAt(source.indexOf("public A"));
-	assertElementEquals(
-		"Unexpected element",
-		"A() [in A [in A.class [in x.y [in attach.jar [in AttachSourceTests]]]]]",
-		element);
-}
-/**
- * Ensure that a class file with an attached source can retrieve its children given a source index.
- */
-public void testClassFileGetElementAt03() throws JavaScriptModelException {
-	IClassFile classFile = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	String source = classFile.getSource();
-	IJavaScriptElement element = classFile.getElementAt(source.indexOf("void foo"));
-	assertElementEquals(
-		"Unexpected element",
-		"foo() [in A [in A.class [in x.y [in attach.jar [in AttachSourceTests]]]]]",
-		element);
-}
-/*
- * Ensure that a constructor of a binary member type can be retrieved with its source position.
- * (regression test for bug 119249 codeResolve, search, etc. don't work on constructor of binary inner class)
- */
-public void testClassFileGetElementAt04() throws JavaScriptModelException {
-	IClassFile classFile = this.innerClasses.getClassFile("X$V.class");
-	String source = classFile.getSource();
-	IJavaScriptElement element = classFile.getElementAt(source.indexOf("V(String s)"));
-	assertElementEquals(
-		"Unexpected element",
-		"V(inner.X, java.lang.String) [in V [in X$V.class [in inner [in innerClasses.jar [in AttachSourceTests]]]]]",
-		element);
-}/*
- * Ensures that the source of a .class file is implicetely attached when prj=src=bin
- * (regression test for bug 41444 [navigation] error dialog on opening class file)
- */
-public void testClassFileInOutput() throws CoreException {
-	IClassFile classFile = getClassFile("AttachSourceTests/src/A.class");
-	String source = classFile.getSource();
-	assertSourceEquals(
-		"Unexpected source",
-		"public class A {\n" + 
-		"}",
-		source);
-}
-/**
- * Retrieves the source code for "A.class", which is
- * the entire CU for "A.js".
- */
-public void testClassRetrieval() throws JavaScriptModelException {
-	IClassFile objectCF = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	assertTrue("source code does not exist for the entire attached compilation unit", objectCF.getSource() != null);
-}
-/**
- * Removes the source attachment from the jar.
- */
-public void testDetachSource() throws JavaScriptModelException {
-	this.attachSource(this.pkgFragmentRoot, null, null);
-	IClassFile cf = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	assertTrue("source code should no longer exist for A", cf.getSource() == null);
-	assertTrue("name range should no longer exist for A", cf.getType().getNameRange().getOffset() == -1);
-	assertTrue("source range should no longer exist for A", cf.getType().getSourceRange().getOffset() == -1);
-	assertTrue("Source attachment path should be null", null == this.pkgFragmentRoot.getSourceAttachmentPath());
-	assertTrue("Source attachment root path should be null", null ==this.pkgFragmentRoot.getSourceAttachmentRootPath());
-}
-/*
- * Ensures that the source of a generic method can be retrieved.
- */
-public void testGeneric1() throws JavaScriptModelException {
-	IFunction method = this.genericType.getFunction("foo", new String[] {"QX<QT;>;"});
-	assertSourceEquals(
-		"Unexpected source",
-		"void foo(X<T> x) {\n" + 
-		"  }",
-		method.getSource());
-}
-/*
- * Ensures that the source of a generic method can be retrieved.
- */
-public void testGeneric2() throws JavaScriptModelException {
-	IFunction method = this.genericType.getFunction("foo", new String[] {"QK;", "QV;"});
-	assertSourceEquals(
-		"Unexpected source",
-		"<K, V> V foo(K key, V value) {\n" + 
-		"    return value;\n" + 
-		"  }",
-		method.getSource());
-}
-/*
- * Ensures that the source of a generic method can be retrieved.
- * (regression test for bug 129317 Outline view inconsistent with code
- */
-public void testGeneric3() throws JavaScriptModelException {
-	IFunction method = this.genericType.getFunction("foo", new String[] {"I", "Lgeneric.X<[Ljava.lang.Object;>;"});
-	assertSourceEquals(
-		"Unexpected source",
-		"void foo(int i, X<Object[]> x) {\n" + 
-		"  }",
-		method.getSource());
-}
-public void testGeneric4() throws JavaScriptModelException {
-	IFunction method = this.genericType.getFunction("foo", new String[] {"Z", "Lgeneric.X<+Lgeneric.X;>;"});
-	assertSourceEquals(
-		"Unexpected source",
-		"void foo(boolean b, X<? extends X> x) {\n" + 
-		"  }",
-		method.getSource());
-}
-public void testGeneric5() throws JavaScriptModelException {
-	IFunction method = this.genericType.getFunction("foo", new String[] {"F", "Lgeneric.X<*>;"});
-	assertSourceEquals(
-		"Unexpected source",
-		"void foo(float f, X<?> x) {\n" + 
-		"  }",
-		method.getSource());
-}
-public void testGeneric6() throws JavaScriptModelException {
-	IFunction method = this.genericType.getFunction("foo", new String[] {"Lgeneric.Y<+Ljava.lang.Integer;+Ljava.lang.Object;>;"});
-	assertSourceEquals(
-		"Unexpected source",
-		"void foo(Y<? extends Integer, ? extends Object> y) {\n" + 
-		"  }",
-		method.getSource());
-}
-public void testGeneric7() throws JavaScriptModelException {
-	IFunction method = this.genericType.getFunction("foo", new String[] {"Lgeneric.Z.Inner<Ljava.lang.Object;>;"});
-	assertSourceEquals(
-		"Unexpected source",
-		"void foo(Z.Inner<Object> inner) {\n" + 
-		"  }",
-		method.getSource());
-}
-public void testGeneric8() throws JavaScriptModelException {
-	IFunction method = this.genericType.getFunction("foo", new String[] {"Lgeneric.AType<Ljava.lang.Object;>;"});
-	assertSourceEquals(
-		"Unexpected source",
-		"void foo(AType<Object> t) {\n" + 
-		"  }",
-		method.getSource());
-}
-/**
- * Ensures that name ranges exists for BinaryMembers that have
- * mapped source.
- */
-public void testGetNameRange01() throws JavaScriptModelException {
-	IClassFile classFile = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	IFunction method = classFile.getType().getFunction("foo", null);
-	assertSourceEquals("Unexpected name source", "foo", getNameSource(classFile.getSource(), method));
-}
-/**
- * Ensures that name ranges exists for BinaryMembers that have
- * mapped source.
- */
-public void testGetNameRange02() throws JavaScriptModelException {
-	IClassFile classFile = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	assertSourceEquals("Unexpected name source", "A", getNameSource(classFile.getSource(), classFile.getType()));
-}
-/*
- * Ensure that the name range for a constructor of a binary member type is correct.
- * (regression test for bug 119249 codeResolve, search, etc. don't work on constructor of binary inner class)
- */
-public void testGetNameRange03() throws JavaScriptModelException {
-	IClassFile classFile = this.innerClasses.getClassFile("X$V.class");
-	IFunction constructor = classFile.getType().getFunction("V", new String[] {"Linner.X;", "Ljava.lang.String;"});
-	assertSourceEquals("Unexpected name source", "V", getNameSource(classFile.getSource(), constructor));
-}
-/**
- * Retrieves the source attachment paths for jar root.
- */
-public void testGetSourceAttachmentPath() throws JavaScriptModelException {
-	IPath saPath= this.pkgFragmentRoot.getSourceAttachmentPath();
-	assertEquals("Source attachment path not correct for root " + this.pkgFragmentRoot, "/AttachSourceTests/attachsrc.zip", saPath.toString());
-	assertEquals("Source attachment root path should be empty", new Path(""), this.pkgFragmentRoot.getSourceAttachmentRootPath());
-}
-/**
- * Ensures that a source range exists for the class file that has
- * mapped source.
- */
-public void testGetSourceRange() throws JavaScriptModelException {
-	IClassFile cf = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	ISourceRange sourceRange = cf.getSourceRange();
-	assertTrue("Class file should have associated source range", sourceRange != null);
-	assertEquals("Unexpected offset", 0, sourceRange.getOffset());
-	assertEquals("Unexpected length", 100, sourceRange.getLength());
-}
-/**
- * Ensures that a source range exists for the (inner) class file that has
- * mapped source.
- */
-public void testGetSourceRangeInnerClass() throws JavaScriptModelException {
-	IClassFile cf = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A$Inner.class");
-	ISourceRange sourceRange = cf.getSourceRange();
-	assertTrue("Inner class file should have associated source range", sourceRange != null);
-	assertEquals("Unexpected offset", 0, sourceRange.getOffset());
-	assertEquals("Unexpected length", 100, sourceRange.getLength());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- */
-public void testInnerClass1() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    new X() {};\n" + 
-		"    class Y {}\n" + 
-		"    new Y() {\n" + 
-		"      class Z {}\n" + 
-		"    };\n" + 
-		"    class W {\n" + 
-		"      void bar() {\n" + 
-		"        new W() {};\n" + 
-		"      }\n" + 
-		"    }\n" + 
-		"    new Object() {\n" + 
-		"      class U {\n" + 
-		"        U(String s) {\n" + 
-		"        }\n" + 
-		"      }\n" + 
-		"    };\n" + 
-		"  }\n" + 
-		"  class V {\n" + 
-		"    V(String s) {\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}",
-		type.getSource());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- */
-public void testInnerClass2() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X$1.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"X() {}",
-		type.getSource());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- */
-public void testInnerClass3() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X$2.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"Y() {\n" + 
-		"      class Z {}\n" + 
-		"    }",
-		type.getSource());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- */
-public void testInnerClass4() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X$3.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"W() {}",
-		type.getSource());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- */
-public void testInnerClass5() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X$1$Y.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"class Y {}",
-		type.getSource());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- */
-public void testInnerClass6() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X$1$W.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"class W {\n" + 
-		"      void bar() {\n" + 
-		"        new W() {};\n" + 
-		"      }\n" + 
-		"    }",
-		type.getSource());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- */
-public void testInnerClass7() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X$2$Z.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"class Z {}",
-		type.getSource());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- */
-public void testInnerClass8() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X$V.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"class V {\n" + 
-		"    V(String s) {\n" + 
-		"    }\n" + 
-		"  }",
-		type.getSource());
-}
-/*
- * Ensures that the source of an inner class can be retrieved.
- * (regression test for bug 124611 IAE in Signature.createCharArrayTypeSignature)
- */
-public void testInnerClass9() throws JavaScriptModelException {
-	IType type = this.innerClasses.getClassFile("X$4$U.class").getType();
-	assertSourceEquals(
-		"Unexpected source",
-		"class U {\n" + 
-		"        U(String s) {\n" + 
-		"        }\n" + 
-		"      }",
-		type.getSource());
-}
-
-/**
- * Ensures that a source folder can be attached to a lib folder.
- */
-public void testLibFolder() throws JavaScriptModelException {
-	IPackageFragmentRoot root = this.getPackageFragmentRoot("/AttachSourceTests/lib");
-	this.attachSource(root, "/AttachSourceTests/srcLib", "");
-	
-	IClassFile cf = root.getPackageFragment("p").getClassFile("X.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package p;\n" +
-		"public class X {\n" +
-		"	public void foo() {\n" +
-		"	}\n" +
-		"}",
-		cf.getSource());
-}
-/**
- * Retrieves the source code for methods of class A.
- */
-public void testMethodRetrieval() throws JavaScriptModelException {
-	IClassFile cf = this.pkgFragmentRoot.getPackageFragment("x.y").getClassFile("A.class");
-	IFunction[] methods = cf.getType().getFunctions();
-	for (int i = 0; i < methods.length; i++) {
-		IFunction method = methods[i];
-		assertTrue("source code does not exist for the method " + method, method.getSource() != null);
-		assertTrue("method name range not correct", method.getNameRange().getOffset() != -1 && method.getNameRange().getLength() != 0);
-	}
-}
-/**
- * Closes the jar, to ensure when it is re-opened the source
- * attachment still exists.
- */
-public void testPersistence() throws JavaScriptModelException {
-	this.pkgFragmentRoot.close();
-	testClassRetrieval();
-	testMethodRetrieval();
-}
-
-/*
- * Ensures that having a project as a class folder and attaching its sources finds the source
- * of a class in a non-default package.
- * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=65186)
- */
-public void testProjectAsClassFolder1() throws CoreException {
-	try {
-		createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IProject p1 = getProject("P1");
-		p1.build(IncrementalProjectBuilder.FULL_BUILD, null);
-		IJavaScriptProject javaProject = createJavaProject("P2", new String[]{""}, new String[]{"/P1"});
-		IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(p1);
-		attachSource(root, "/P1", null);
-		IClassFile cf = root.getPackageFragment("p").getClassFile("X.class");
-		assertSourceEquals(
-			"Unexpected source for class file P1/p/X.class",
-			"package p;\n" +
-			"public class X {\n" +
-			"}",
-			cf.getSource());		
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-/*
- * Ensures that having a project as a class folder and attaching its sources finds the source
- * of a class in the default package.
- * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=65186)
- */
-public void testProjectAsClassFolder2() throws CoreException {
-	try {
-		createJavaProject("P1");
-		createFile(
-			"/P1/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IProject p1 = getProject("P1");
-		p1.build(IncrementalProjectBuilder.FULL_BUILD, null);
-		IJavaScriptProject javaProject = createJavaProject("P2", new String[]{""}, new String[]{"/P1"});
-		IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(p1);
-		attachSource(root, "/P1", null);
-		IClassFile cf = root.getPackageFragment("").getClassFile("X.class");
-		assertSourceEquals(
-			"Unexpected source for class file P1/X.class",
-			"public class X {\n" +
-			"}",
-			cf.getSource());		
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-/*
- * Ensures that having a project as source attachement finds the source
- * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=65186)
- */
-public void testProjectAsSourceAttachment() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = createJavaProject("Test", new String[]{""}, new String[]{"/AttachSourceTests/test.jar"});
-		createFolder("/Test/test1");
-		createFile("/Test/test1/Test.js",
-			"package test1;\n" + 
-			"\n" + 
-			"public class Test {}");
-		IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(getFile("/AttachSourceTests/test.jar"));
-		attachSource(root, "/Test", null);
-		IClassFile cf = root.getPackageFragment("test1").getClassFile("Test.class");
-		assertSourceEquals(
-			"Unexpected source for class file test1/Test.class",
-			"package test1;\n" + 
-			"\n" + 
-			"public class Test {}",
-			cf.getSource());		
-	} finally {
-		deleteProject("Test");
-	}
-}
-
-///**
-// * Attaches a source zip to a jar.  The source zip has
-// * a nested root structure and exists as a resource.  Tests that
-// * the attachment is persisted as a server property for the jar.
-// */
-//public void testRootPath() throws JavaScriptModelException {
-//	IJavaScriptProject project = getJavaProject("AttachSourceTests");
-//	IFile jar = (IFile) project.getProject().findMember("attach2.jar");
-//	IFile srcZip=(IFile) project.getProject().findMember("attach2src.zip");
-//	JarPackageFragmentRoot root = (JarPackageFragmentRoot) project.getPackageFragmentRoot(jar);
-//	root.attachSource(srcZip.getFullPath(), new Path("src/nested"), null);
-//
-//	IClassFile cf = root.getPackageFragment("x.y").getClassFile("B.class");
-//	assertTrue("source code does not exist for the entire attached compilation unit", cf.getSource() != null);
-//	root.close();
-//	cf = root.getPackageFragment("x.y").getClassFile("B.class");
-//	assertTrue("source code does not exist for the entire attached compilation unit", cf.getSource() != null);
-//
-//	IPath rootSAPath= root.getSourceAttachmentRootPath();
-//	assertEquals("Unexpected source attachment root path for " + root.getPath(), "src/nested", rootSAPath.toString());
-//
-//	IPath saPath= root.getSourceAttachmentPath();
-//	assertEquals("Unexpected source attachment path for " + root.getPath(), "/AttachSourceTests/attach2src.zip", saPath.toString());
-//	
-//	root.close();
-//}
-///**
-// * Attaches a source zip to a jar specifying an invalid root path.  
-// * Ensures that the root path is just used as a hint, and that the source is still retrieved.
-// */
-//public void testRootPath2() throws JavaScriptModelException {
-//	IJavaScriptProject project = getJavaProject("AttachSourceTests");
-//	IFile jar = (IFile) project.getProject().findMember("attach2.jar");
-//	IFile srcZip=(IFile) project.getProject().findMember("attach2src.zip");
-//	JarPackageFragmentRoot root = (JarPackageFragmentRoot) project.getPackageFragmentRoot(jar);
-//	root.attachSource(srcZip.getFullPath(), new Path(""), null);
-//
-//	IClassFile cf = root.getPackageFragment("x.y").getClassFile("B.class");
-//	assertTrue("source code does not exist for the entire attached compilation unit", cf.getSource() != null);
-//	root.close();
-//}
-///**
-// * Attaches a sa source folder can be attached to a lib folder specifying an invalid root path.  
-// * Ensures that the root path is just used as a hint, and that the source is still retrieved.
-// */
-//public void testRootPath3() throws JavaScriptModelException {
-//	IPackageFragmentRoot root = this.getPackageFragmentRoot("/AttachSourceTests/lib");
-//	this.attachSource(root, "/AttachSourceTests/srcLib", "invalid");
-//	
-//	IClassFile cf = root.getPackageFragment("p").getClassFile("X.class");
-//	assertSourceEquals(
-//		"Unexpected source for class file",
-//		"package p;\n" +
-//		"public class X {\n" +
-//		"	public void foo() {\n" +
-//		"	}\n" +
-//		"}",
-//		cf.getSource());
-//	root.close();
-//}
-/**
- * Attach a jar with a source attachement that doesn't contain the source folders
- */
-public void testRootPath4() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/test.jar"));
-	this.attachSource(root, "/AttachSourceTests/src.zip", "invalid");
-	
-	IClassFile cf = root.getPackageFragment("test1").getClassFile("Test.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package test1;\n" +
-		"\n" +
-		"public class Test {}",
-		cf.getSource());
-	root.close();
-}
-/**
- * Attach a jar with a source attachement that doesn't contain the source folders
- */
-public void testRootPath5() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/update.jar"));
-	this.attachSource(root, "/AttachSourceTests/src.zip", "invalid");
-	
-	IClassFile cf = root.getPackageFragment("p1.p2").getClassFile("A.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package p1.p2;\n" +
-		"\n" +
-		"public class A {}",
-		cf.getSource());
-		
-	cf = root.getPackageFragment("").getClassFile("B.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"public class B {}",
-		cf.getSource());		
-	
-	this.attachSource(root, null, null); // detach source
-	root.close();
-}
-/**
- * Attach a jar with a source attachement that doesn't contain the source folders
- */
-public void testRootPath6() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/update.jar"));
-	this.attachSource(root, "/AttachSourceTests/src.zip", null);
-	
-	IClassFile cf = root.getPackageFragment("p1.p2").getClassFile("A.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package p1.p2;\n" +
-		"\n" +
-		"public class A {}",
-		cf.getSource());
-		
-	cf = root.getPackageFragment("").getClassFile("B.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"public class B {}",
-		cf.getSource());		
-
-	this.attachSource(root, null, null); // detach source
-	root.close();
-}
-/**
- * Attach a jar with a source attachement that doesn't contain the source folders
- */
-public void testRootPath7() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/full.jar"));
-	this.attachSource(root, "/AttachSourceTests/src.zip", null);
-	
-	IClassFile cf = root.getPackageFragment("p1.p2").getClassFile("A.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package p1.p2;\n" +
-		"\n" +
-		"public class A {}",
-		cf.getSource());
-		
-	cf = root.getPackageFragment("").getClassFile("B.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"public class B {}",
-		cf.getSource());
-		
-	cf = root.getPackageFragment("test1").getClassFile("Test.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package test1;\n" +
-		"\n" +
-		"public class Test {}",
-		cf.getSource());				
-	
-	this.attachSource(root, null, null); // detach source
-	root.close();
-}
-/**
- * Attach a jar with a source attachement that contains the source folders
- */
-public void testRootPath8() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/full.jar"));
-	this.attachSource(root, "/AttachSourceTests/fullsrc.zip", null);
-	
-	IClassFile cf = root.getPackageFragment("p1.p2").getClassFile("A.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package p1.p2;\n" +
-		"\n" +
-		"public class A {}",
-		cf.getSource());
-		
-	cf = root.getPackageFragment("").getClassFile("B.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"public class B {}",
-		cf.getSource());
-		
-	cf = root.getPackageFragment("test1").getClassFile("Test.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package test1;\n" +
-		"\n" +
-		"public class Test {}",
-		cf.getSource());				
-	
-	this.attachSource(root, null, null); // detach source
-	root.close();
-}
-/**
- * Attach a jar with a source attachement that contains the source folders
- */
-public void testRootPath9() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/full.jar"));
-	this.attachSource(root, "/AttachSourceTests/fullsrc.zip", "invalid");
-	
-	IClassFile cf = root.getPackageFragment("p1.p2").getClassFile("A.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package p1.p2;\n" +
-		"\n" +
-		"public class A {}",
-		cf.getSource());
-		
-	cf = root.getPackageFragment("").getClassFile("B.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"public class B {}",
-		cf.getSource());
-		
-	cf = root.getPackageFragment("test1").getClassFile("Test.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package test1;\n" +
-		"\n" +
-		"public class Test {}",
-		cf.getSource());				
-	
-	this.attachSource(root, null, null); // detach source
-	root.close();
-}
-/**
- * Attach a jar with a source attachement that is itself
- */
-public void testRootPath10() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/test2.jar"));
-	this.attachSource(root, "/AttachSourceTests/test2.jar", null);
-	
-	IClassFile cf = root.getPackageFragment("p").getClassFile("X.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package p;\n" +
-		"\n" +
-		"public class X {\n" +
-		"\n" +
-		"	public static void main(String[] args) {\n" +
-		"	}\n" +
-		"}",
-		cf.getSource());
-	this.attachSource(root, null, null); // detach source
-	root.close();
-}
-///**
-// * http://bugs.eclipse.org/bugs/show_bug.cgi?id=35965
-// */
-//public void testRootPath11() throws JavaScriptModelException {
-//	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-//	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/test4.jar"));
-//	this.attachSource(root, "/AttachSourceTests/test4_src.zip", null);
-//	
-//	IClassFile cf = root.getPackageFragment("P1").getClassFile("D.class");
-//	assertSourceEquals(
-//		"Unexpected source for class file P1.D",
-//		"package P1;\n" +
-//		"\n" +
-//		"public class D {}",
-//		cf.getSource());
-//
-//	cf = root.getPackageFragment("P1.p2").getClassFile("A.class");
-//	assertSourceEquals(
-//		"Unexpected source for class file P1.p2.A",
-//		"package P1.p2;\n" +
-//		"\n" +
-//		"public class A {}",
-//		cf.getSource());	
-//
-//	assertTrue("Not a binary root", root.getKind() == IPackageFragmentRoot.K_BINARY);
-//	assertEquals("wrong jdk level", ClassFileConstants.JDK1_2, Util.getJdkLevel(root.getResource()));
-//	this.attachSource(root, null, null); // detach source
-//	root.close();
-//}
-/**
- * Attach a jar with a source attachement that is itself. The jar contains 2 root paths for the same class file.
- * (regression test for bug 74014 prefix path for source attachements - automatic detection does not seem to work)
- */
-public void testRootPath12() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/test5.jar"));
-	attachSource(root, "/AttachSourceTests/test5.jar", null);
-	
-	IClassFile cf = root.getPackageFragment("p1.p2").getClassFile("X.class");
-	assertSourceEquals(
-		"Unexpected source for class file",
-		"package p1.p2;\n" +
-		"public class X {\n" +
-		"}\n",
-		cf.getSource());
-	attachSource(root, null, null); // detach source
-	root.close();
-}
-/**
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=110172"
- */
-public void testBug110172() throws JavaScriptModelException {
-	IJavaScriptProject project = this.getJavaProject("/AttachSourceTests");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(this.getFile("/AttachSourceTests/test6.jar"));
-	assertTrue("Root doesn't exist", root.exists());
-	attachSource(root, "/AttachSourceTests/test6src.zip", null);
-	
-	try {
-		// check the javadoc source range in a class file
-		IClassFile cf = root.getPackageFragment("p1.p2").getClassFile("X.class");
-		assertNotNull(cf);
-		final String source = cf.getSource();
-		assertNotNull("No source", source);
-		IJavaScriptElement[] children = cf.getChildren();
-		assertEquals("Wrong number of children", 1, children.length);
-		IJavaScriptElement element = children[0];
-		assertTrue("Not a type", element instanceof IType);
-		IType type = (IType) element;
-		IJavaScriptElement[] members = type.getChildren();
-		final int length = members.length;
-		assertEquals("Wrong number", 9, length);
-		for (int i = 0; i < length; i++) {
-			element = members[i];
-			assertTrue(element instanceof IMember);
-			final ISourceRange javadocRange = ((IMember) element).getJSdocRange();
-			final String elementName = element.getElementName();
-			if ("f".equals(elementName)) {
-				assertNotNull("No javadoc source range", javadocRange);
-				final int start = javadocRange.getOffset();
-				final int end = javadocRange.getLength() + start - 1;
-				String javadocSource = source.substring(start, end);
-				assertTrue("Wrong javadoc", javadocSource.indexOf("field f") != -1);
-			} else if ("foo".equals(elementName)) {
-				assertNotNull("No javadoc source range", javadocRange);
-				final int start = javadocRange.getOffset();
-				final int end = javadocRange.getLength() + start - 1;
-				String javadocSource = source.substring(start, end);
-				assertTrue("Wrong javadoc", javadocSource.indexOf("method foo") != -1);
-			} else if ("A".equals(elementName)) {
-				assertNotNull("No javadoc source range", javadocRange);
-				final int start = javadocRange.getOffset();
-				final int end = javadocRange.getLength() + start - 1;
-				String javadocSource = source.substring(start, end);
-				assertTrue("Wrong javadoc", javadocSource.indexOf("member type A") != -1);
-			} else if ("X".equals(elementName)) {
-				// need treatment for the two constructors
-				assertTrue("Not an IFunction", element instanceof IFunction);
-				IFunction method = (IFunction) element;
-				switch(method.getNumberOfParameters()) {
-					case 0 :
-						assertNull("Has a javadoc source range", javadocRange);
-						break;
-					case 1:
-						assertNotNull("No javadoc source range", javadocRange);
-						final int start = javadocRange.getOffset();
-						final int end = javadocRange.getLength() + start - 1;
-						String javadocSource = source.substring(start, end);
-						assertTrue("Wrong javadoc", javadocSource.indexOf("constructor") != -1);
-				}
-			} else if ("f3".equals(elementName)) {
-				assertNotNull("No javadoc source range", javadocRange);
-				final int start = javadocRange.getOffset();
-				final int end = javadocRange.getLength() + start - 1;
-				String javadocSource = source.substring(start, end);
-				assertTrue("Wrong javadoc", javadocSource.indexOf("Real") != -1);
-			} else if ("f2".equals(elementName)) {
-				assertNull("Has a javadoc source range", javadocRange);
-			} else if ("foo2".equals(elementName)) {
-				assertNull("Has a javadoc source range", javadocRange);
-			} else if ("B".equals(elementName)) {
-				assertNull("Has a javadoc source range", javadocRange);
-			}
-		}
-	} finally {
-		attachSource(root, null, null); // detach source
-		root.close();
-	}
-}
-/**
- * @test bug 153133: [model] toggle breakpoint in constructor creates a class load breakpoint
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=153133"
- */
-public void testBug153133() throws JavaScriptModelException {
-	IPackageFragmentRoot root = this.currentProject.getPackageFragmentRoot(this.getFile("/AttachSourceTests/b153133.jar"));
-	assertTrue("Root doesn't exist", root.exists());
-	
-	try {
-		// Get class file type from jar
-		IClassFile cf = root.getPackageFragment("test").getClassFile("Test.class");
-		assertNotNull(cf);
-		final String source = cf.getSource();
-		assertNotNull("No source", source);
-		IJavaScriptElement[] children = cf.getChildren();
-		assertEquals("Wrong number of children", 1, children.length);
-		IJavaScriptElement element = children[0];
-		assertTrue("Not a type", element instanceof IType);
-		IType type = (IType) element;
-		IJavaScriptElement[] members = type.getChildren();
-		final int length = members.length;
-		assertEquals("Wrong number", 7, length);
-		
-		// Need to get type members constructors
-		for (int i = 0; i < length; i++) {
-			assertTrue(members[i] instanceof IMember);
-			if (((IMember)members[i]).getElementType() == IJavaScriptElement.TYPE) {
-				IType typeMember = (IType) members[i];
-				String typeName = typeMember.getElementName();
-				IFunction[] methods = typeMember.getFunctions();
-				assertEquals("Expected only one constructor defined in type "+typeName, 1, methods.length);
-				// Verify that source range is valid
-				assertTrue("Expected a constructor instead of a method in type "+typeName, methods[0].isConstructor());
-				IFunction constructor = methods[0];
-				ISourceRange sourceRange = constructor.getSourceRange();
-				assertTrue("Constructor "+constructor.getElementName()+" has invalid offset: "+sourceRange, sourceRange.getOffset() >= 0);
-				assertTrue("Constructor "+constructor.getElementName()+" has invalid length: "+sourceRange, sourceRange.getLength() > 0);
-			}
-		}
-	} finally {
-		removeLibraryEntry(new Path("/JavaSearchBugs/lib/b148215.jar"));
-		root.close();
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AttachedJavadocTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AttachedJavadocTests.java
deleted file mode 100644
index 549f6ca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AttachedJavadocTests.java
+++ /dev/null
@@ -1,509 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IIncludePathAttribute;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IField;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-
-public class AttachedJavadocTests extends ModifyingResourceTests {
-	static {
-//		TESTS_NAMES = new String[] { "test010" };
-//		TESTS_NUMBERS = new int[] { 20 };
-//		TESTS_RANGE = new int[] { 169, 180 };
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(AttachedJavadocTests.class);
-	}
-
-	private IJavaScriptProject project;
-	private IPackageFragmentRoot root;
-
-	public AttachedJavadocTests(String name) {
-		super(name);
-	}
-
-	/**
-	 * Create project and set the jar placeholder.
-	 */
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-
-		this.project = setUpJavaProject("AttachedJavadocProject", "1.5"); //$NON-NLS-1$
-		Map options = this.project.getOptions(true);
-		options.put(JavaScriptCore.TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC, "2000"); //$NON-NLS-1$
-		this.project.setOptions(options);
-		IIncludePathEntry[] entries = this.project.getRawIncludepath();
-		IResource resource = this.project.getProject().findMember("/doc/"); //$NON-NLS-1$
-		assertNotNull("doc folder cannot be null", resource); //$NON-NLS-1$
-		URI locationURI = resource.getLocationURI();
-		assertNotNull("doc folder cannot be null", locationURI); //$NON-NLS-1$
-		URL docUrl = null;
-		try {
-			docUrl = locationURI.toURL();
-		} catch (MalformedURLException e) {
-			assertTrue("Should not happen", false); //$NON-NLS-1$
-		} catch(IllegalArgumentException e) {
-			assertTrue("Should not happen", false); //$NON-NLS-1$
-		}
-		IIncludePathAttribute attribute = JavaScriptCore.newIncludepathAttribute(IIncludePathAttribute.JSDOC_LOCATION_ATTRIBUTE_NAME, docUrl.toExternalForm());
-		for (int i = 0, max = entries.length; i < max; i++) {
-			final IIncludePathEntry entry = entries[i];
-			if (entry.getEntryKind() == IIncludePathEntry.CPE_LIBRARY
-					&& entry.getContentKind() == IPackageFragmentRoot.K_BINARY
-					&& "/AttachedJavadocProject/lib/test6.jar".equals(entry.getPath().toString())) { //$NON-NLS-1$
-				entries[i] = JavaScriptCore.newLibraryEntry(entry.getPath(), entry.getSourceAttachmentPath(), entry.getSourceAttachmentRootPath(), entry.getAccessRules(), new IIncludePathAttribute[] { attribute}, entry.isExported());
-			}
-		}
-		project.setRawIncludepath(entries, null);
-
-		IPackageFragmentRoot[] roots = this.project.getAllPackageFragmentRoots();
-		int count = 0;
-		for (int i = 0, max = roots.length; i < max; i++) {
-			final IPackageFragmentRoot packageFragmentRoot = roots[i];
-			switch(packageFragmentRoot.getKind()) {
-				case IPackageFragmentRoot.K_BINARY :
-					if (!packageFragmentRoot.isExternal()) {
-						count++;
-						if (root == null) {
-							root = packageFragmentRoot;
-						}
-					}
-			}
-		}
-		assertEquals("Wrong value", 1, count); //$NON-NLS-1$
-		assertNotNull("Should not be null", root); //$NON-NLS-1$
-	}
-
-	/**
-	 * Reset the jar placeholder and delete project.
-	 */
-	public void tearDownSuite() throws Exception {
-		this.deleteProject("AttachedJavadocProject"); //$NON-NLS-1$
-		this.root = null;
-		this.project = null;
-		super.tearDownSuite();
-	}
-
-	// test javadoc for a package fragment
-	public void test001() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		String javadoc = packageFragment.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-	}
-
-	// for a class file
-	public void test002() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		String javadoc = classFile.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-	}
-
-	// for a field
-	public void test003() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IField field = type.getField("f"); //$NON-NLS-1$
-		assertNotNull(field);
-		String javadoc = field.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-	}
-
-	// for a method
-	public void test004() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IFunction method = type.getFunction("foo", new String[] {"I", "J", "Ljava.lang.String;"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		assertTrue(method.exists());
-		String javadoc = method.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		String[] paramNames = method.getParameterNames();
-		assertNotNull(paramNames);
-		assertEquals("Wrong size", 3, paramNames.length); //$NON-NLS-1$
-		assertEquals("Wrong name for first param", "i", paramNames[0]); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong name for second param", "l", paramNames[1]); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("Wrong name for third param", "s", paramNames[2]); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	// for a constructor
-	public void test005() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IFunction method = type.getFunction("X", new String[] {"I"}); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(method.exists());
-		String javadoc = method.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		String[] paramNames = method.getParameterNames();
-		assertNotNull(paramNames);
-		assertEquals("Wrong size", 1, paramNames.length); //$NON-NLS-1$
-		assertEquals("Wrong name for first param", "i", paramNames[0]);		 //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// for a member type
-	public void test006() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X$A.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		String javadoc = classFile.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-	}
-	
-	// for a constructor
-	public void test007() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X$A.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IFunction method = type.getFunction("A", new String[] {"Lp1.p2.X;", "F"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		assertTrue(method.exists());
-		String javadoc = method.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		String[] paramNames = method.getParameterNames();
-		assertNotNull(paramNames);
-		assertEquals("Wrong size", 1, paramNames.length); //$NON-NLS-1$
-		assertEquals("Wrong name for first param", "f", paramNames[0]); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	// for a method foo2
-	public void test008() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IFunction method = type.getFunction("foo2", new String[0]); //$NON-NLS-1$
-		assertTrue(method.exists());
-		String javadoc = method.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		String[] paramNames = method.getParameterNames();
-		assertNotNull(paramNames);
-		assertEquals("Wrong size", 0, paramNames.length); //$NON-NLS-1$
-	}
-	
-	// for a field f2
-	public void test009() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IField field = type.getField("f2"); //$NON-NLS-1$
-		assertNotNull(field);
-		String javadoc = field.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-	}
-	
-	// test archive doc
-	public void test010() throws JavaScriptModelException {
-		IIncludePathEntry[] savedEntries = null;
-		try {
-			IIncludePathEntry[] entries = this.project.getRawIncludepath();
-			savedEntries = (IIncludePathEntry[]) entries.clone();
-			IResource resource = this.project.getProject().findMember("/doc.zip"); //$NON-NLS-1$
-			assertNotNull("doc folder cannot be null", resource); //$NON-NLS-1$
-			URI locationURI = resource.getLocationURI();
-			assertNotNull("doc folder cannot be null", locationURI); //$NON-NLS-1$
-			URL docUrl = null;
-			try {
-				docUrl = locationURI.toURL();
-			} catch (MalformedURLException e) {
-				assertTrue("Should not happen", false); //$NON-NLS-1$
-			} catch(IllegalArgumentException e) {
-				assertTrue("Should not happen", false); //$NON-NLS-1$
-			}
-			final String path = "jar:" + docUrl.toExternalForm() + "!/doc"; //$NON-NLS-1$ //$NON-NLS-2$
-			//final String path = "jar:" + "platform:/resource/AttachedJavadocProject/doc.zip" + "!/doc";
-			IIncludePathAttribute attribute = JavaScriptCore.newIncludepathAttribute(IIncludePathAttribute.JSDOC_LOCATION_ATTRIBUTE_NAME, path);
-			for (int i = 0, max = entries.length; i < max; i++) {
-				final IIncludePathEntry entry = entries[i];
-				if (entry.getEntryKind() == IIncludePathEntry.CPE_LIBRARY
-						&& entry.getContentKind() == IPackageFragmentRoot.K_BINARY
-						&& "/AttachedJavadocProject/lib/test6.jar".equals(entry.getPath().toString())) { //$NON-NLS-1$
-					entries[i] = JavaScriptCore.newLibraryEntry(entry.getPath(), entry.getSourceAttachmentPath(), entry.getSourceAttachmentRootPath(), entry.getAccessRules(), new IIncludePathAttribute[] { attribute }, entry.isExported());
-				}
-			}
-			this.project.setRawIncludepath(entries, null);
-			IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-			assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-			IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-			assertNotNull(classFile);
-			IType type = classFile.getType();
-			IField field = type.getField("f"); //$NON-NLS-1$
-			assertNotNull(field);
-			String javadoc = field.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-			assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		} finally {
-			// restore classpath
-			if (savedEntries != null) {
-				this.project.setRawIncludepath(savedEntries, null);
-			}
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=120597
-	public void test011() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("Z.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IField field = type.getField("out"); //$NON-NLS-1$
-		assertNotNull(field);
-		String javadoc = field.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=120637
-	public void test012() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("Z.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		String javadoc = classFile.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		assertTrue("Should not contain reference to out", javadoc.indexOf("out") == -1);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=120559
-	public void test013() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("W.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		String javadoc = classFile.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNull("Should not have a javadoc", javadoc); //$NON-NLS-1$
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=120637
-	public void test014() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("E.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		String javadoc = classFile.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		assertTrue("Should not contain reference to Constant C", javadoc.indexOf("Constant C") == -1);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=120637
-	public void test015() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("Annot.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		String javadoc = classFile.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		assertTrue("Should not contain reference to name", javadoc.indexOf("name") == -1);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=120847
-	public void test016() throws JavaScriptModelException {
-		IIncludePathEntry[] savedEntries = null;
-		try {
-			IIncludePathEntry[] entries = this.project.getRawIncludepath();
-			savedEntries = (IIncludePathEntry[]) entries.clone();
-			IIncludePathAttribute attribute = JavaScriptCore.newIncludepathAttribute(IIncludePathAttribute.JSDOC_LOCATION_ATTRIBUTE_NAME, "invalid_path");
-			for (int i = 0, max = entries.length; i < max; i++) {
-				final IIncludePathEntry entry = entries[i];
-				if (entry.getEntryKind() == IIncludePathEntry.CPE_LIBRARY
-						&& entry.getContentKind() == IPackageFragmentRoot.K_BINARY
-						&& "/AttachedJavadocProject/lib/test6.jar".equals(entry.getPath().toString())) { //$NON-NLS-1$
-					entries[i] = JavaScriptCore.newLibraryEntry(entry.getPath(), entry.getSourceAttachmentPath(), entry.getSourceAttachmentRootPath(), entry.getAccessRules(), new IIncludePathAttribute[] { attribute }, entry.isExported());
-				}
-			}
-			this.project.setRawIncludepath(entries, null);
-			IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-			assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-			IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-			assertNotNull(classFile);
-			IType type = classFile.getType();
-			IField field = type.getField("f"); //$NON-NLS-1$
-			assertNotNull(field);
-			field.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-			assertFalse("Should be unreachable", true);
-		} catch(JavaScriptModelException e) {
-			assertTrue("Must occur", true);
-			assertEquals("Wrong error message", "Cannot retrieve the attached javadoc for invalid_path", e.getMessage());
-		} finally {
-			// restore classpath
-			if (savedEntries != null) {
-				this.project.setRawIncludepath(savedEntries, null);
-			}
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=120875
-	public void test017() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("Annot2.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		String javadoc = classFile.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		assertTrue("Should not contain reference to name2", javadoc.indexOf("name2") == -1);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=138167
-	public void test018() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2/p3"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("C.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IFunction[] methods = type.getFunctions();
-		NullProgressMonitor monitor = new NullProgressMonitor();
-		for (int i = 0, max = methods.length; i < max; i++) {
-			IFunction method = methods[i];
-			String javadoc = method.getAttachedJavadoc(monitor);
-			assertNotNull("Should have a javadoc", javadoc);
-			final String selector = method.getElementName();
-			assertTrue("Wrong doc", javadoc.indexOf(selector) != -1);
-		}
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=138167
-	public void test019() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2/p3"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("C.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IFunction method = type.getFunction("bar5", new String[] {"Ljava.util.Map<TK;TV;>;", "I", "Ljava.util.Map<TK;TV;>;"}); //$NON-NLS-1$
-		assertTrue(method.exists());
-		String javadoc = method.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		assertNotNull("Should have a javadoc", javadoc); //$NON-NLS-1$
-		String[] names = method.getParameterNames();
-		assertNotNull("No names", names);
-		assertEquals("Wrong size", 3, names.length);
-		assertEquals("Wrong parameter name", "m", names[0]);
-		assertEquals("Wrong parameter name", "j", names[1]);
-		assertEquals("Wrong parameter name", "m2", names[2]);
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=139160
-	public void test020() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("Z.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IFunction method = type.getFunction("foo", new String[] {"I", "I"}); //$NON-NLS-1$
-		assertTrue(method.exists());
-		String javadoc = null;
-		try {
-			javadoc = method.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		} catch(JavaScriptModelException e) {
-			assertTrue("Should not happen", false);
-		}
-		assertNull("Should not have a javadoc", javadoc); //$NON-NLS-1$
-		String[] paramNames = method.getParameterNames();
-		assertNotNull(paramNames);
-		assertEquals("Wrong size", 2, paramNames.length); //$NON-NLS-1$
-		assertEquals("Wrong name", "arg0", paramNames[0]); //$NON-NLS-1$
-		assertEquals("Wrong name", "arg1", paramNames[1]); //$NON-NLS-1$
-	}
-	
-	/*
-	 * Ensures that calling getAttachedJavadoc(...) on a binary method
-	 * has no side-effect on the underlying Java model cache.
-	 * (regression test for bug 140879 Spontaneous error "java.util.Set cannot be resolved...")
-	 */
-	public void test021() throws CoreException, IOException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			IPackageFragment p = this.root.getPackageFragment("p2");
-			IType type = p.getClassFile("X.class").getType();
-			IFunction method = type.getFunction("foo", new String[0]);
-			
-			// the following call should have no side-effect
-			method.getAttachedJavadoc(null);
-			
-			// ensure no side-effect
-			ProblemRequestor problemRequestor = new ProblemRequestor();
-			workingCopy = getWorkingCopy(
-				"/AttachedJavadocProject/src/Test.js", 
-				"import p2.Y;\n" +
-				"public class Test extends Y { }",
-				new WorkingCopyOwner() {},
-				problemRequestor
-			);
-			assertProblems(
-				"Unexpected problems", 
-				"----------\n" + 
-				"----------\n",
-				problemRequestor);
-		} finally {
-			if (workingCopy != null)
-				workingCopy.discardWorkingCopy();
-			deleteProject("P");
-		}
-	}
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=149154
-	public void test022() throws JavaScriptModelException {
-		IPackageFragment packageFragment = this.root.getPackageFragment("p1/p2"); //$NON-NLS-1$
-		assertNotNull("Should not be null", packageFragment); //$NON-NLS-1$
-		IClassFile classFile = packageFragment.getClassFile("X.class"); //$NON-NLS-1$
-		assertNotNull(classFile);
-		IType type = classFile.getType();
-		IFunction method = type.getFunction("access$1", new String[] {"Lp1.p2.X;", "I"}); //$NON-NLS-1$
-		assertTrue(method.exists());
-		String javadoc = null;
-		try {
-			javadoc = method.getAttachedJavadoc(new NullProgressMonitor()); //$NON-NLS-1$
-		} catch(JavaScriptModelException e) {
-			assertTrue("Should not happen", false);
-		}
-		assertNull("Should not have a javadoc", javadoc); //$NON-NLS-1$
-		String[] paramNames = method.getParameterNames();
-		assertNotNull(paramNames);
-		assertEquals("Wrong size", 2, paramNames.length); //$NON-NLS-1$
-		assertEquals("Wrong name", "arg0", paramNames[0]); //$NON-NLS-1$
-		assertEquals("Wrong name", "arg1", paramNames[1]); //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/BindingKeyTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/BindingKeyTests.java
deleted file mode 100644
index 4fed271..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/BindingKeyTests.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.wst.jsdt.core.BindingKey;
-
-import junit.framework.Test;
-
-public class BindingKeyTests extends AbstractJavaModelTests {
-	
-	static {
-	}
-
-	public BindingKeyTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(BindingKeyTests.class);
-	}
-	
-	protected void assertBindingKeyEquals(String expected, String key) {
-		if (!(expected.equals(key)))
-			System.out.println(displayString(key, 3) + ",");
-		assertEquals(expected, key);
-	}
-	
-	protected void assertBindingKeySignatureEquals(String expected, String key) {
-		BindingKey bindingKey = new BindingKey(key);
-		String signature = bindingKey.toSignature();
-		if (!(expected.equals(signature)))
-			System.out.println(displayString(signature, 3) + ",");
-		assertEquals(expected, signature);
-	}
-	
-	/*
-	 * Package.
-	 */
-	public void test001() {
-		assertBindingKeySignatureEquals(
-			"p",
-			"p"
-		);
-	}
-
-	/*
-	 * Top level type in non default package.
-	 */
-	public void test002() {
-		assertBindingKeySignatureEquals(
-			"Lp.X;",
-			"Lp/X;"
-		);
-	}
-
-	/*
-	 * Top level type in default package.
-	 */
-	public void test003() {
-		assertBindingKeySignatureEquals(
-			"LClazz;",
-			"LClazz;"
-		);
-	}
-
-	/*
-	 * Member type
-	 */
-	public void test004() {
-		assertBindingKeySignatureEquals(
-			"Lp.X$Member;",
-			"Lp/X$Member;"
-		);
-	}
-
-	/*
-	 * Member type (2 levels deep)
-	 */
-	public void test005() {
-		assertBindingKeySignatureEquals(
-			"Lp1.X$Member1$Member2;",
-			"Lp1/X$Member1$Member2;"
-		);
-	}
-
-	/*
-	 * Anonymous type
-	 */
-	public void test006() {
-		assertBindingKeySignatureEquals(
-			"Lp1.X$1;",
-			"Lp1/X$1;"
-		);
-	}
-
-	/*
-	 * Local type
-	 */
-	public void test007() {
-		assertBindingKeySignatureEquals(
-			"Lp1.X$1$Y;",
-			"Lp1/X$1$Y;"
-		);
-	}
-
-	/*
-	 * Array type
-	 */
-	public void test008() {
-		assertBindingKeySignatureEquals(
-			"[Lp1.X;",
-			"[Lp1/X;"
-		);
-	}
-
-	/*
-	 * Secondary type
-	 */
-	public void test012() {
-		assertBindingKeySignatureEquals(
-			"Lp1.Secondary;",
-			"Lp1/X~Secondary;"
-		);
-	}
-
-	/*
-	 * Anonymous in a secondary type
-	 */
-	public void test013() {
-		assertBindingKeySignatureEquals(
-			"Lp1.Secondary$1;",
-			"Lp1/X~Secondary$1;"
-		);
-	}
-
-	/*
-	 * Method
-	 * (regression test for bug 85811 BindingKey.toSignature should return method signature for methods)
-	 */
-	public void test014() {
-		assertBindingKeySignatureEquals(
-			"(Ljava.lang.String;I)Z",
-			"Lp1/X;.foo(Ljava/lang/String;I)Z"
-		);
-	}
-	
-	/*
-	 * Create a type binding key from a fully qualified name
-	 */
-	public void test015() {
-		String key = BindingKey.createTypeBindingKey("java.lang.Object");
-		assertBindingKeyEquals(
-			"Ljava/lang/Object;",
-			key);
-	}
-
-	/*
-	 * Create a type binding key from a primitive type name
-	 */
-	public void test016() {
-		String key = BindingKey.createTypeBindingKey("int");
-		assertBindingKeyEquals(
-			"I",
-			key);
-	}
-
-	/*
-	 * Create a type binding key from an array type name
-	 */
-	public void test017() {
-		String key = BindingKey.createTypeBindingKey("boolean[]");
-		assertBindingKeyEquals(
-			"[Z",
-			key);
-	}
-
-	/*
-	 * Create an array type binding key
-	 */
-	public void test020() {
-		String key = BindingKey.createArrayTypeBindingKey("Ljava/lang/Object;", 1);
-		assertBindingKeyEquals(
-			"[Ljava/lang/Object;",
-			key);
-	}
-
-	/*
-	 * Create an array type binding key
-	 */
-	public void test021() {
-		String key = BindingKey.createArrayTypeBindingKey("I", 2);
-		assertBindingKeyEquals(
-			"[[I",
-			key);
-	}
-	
-	/*
-	 * Method starting with an upper case corresponding to a primitive type
-	 * (regression test for bug 94398 Error attempting to find References)
-	 */
-	public void test034() {
-		assertBindingKeySignatureEquals(
-			"(Ljava.lang.String;I)Z",
-			"Lp1/X;.Set(Ljava/lang/String;I)Z"
-		);
-	}
-	
-	/*
-	 * Field
-	 * (regression test for bug  87362 BindingKey#internalToSignature() should return the field's type signature)
-	 */
-	public void test037() {
-		assertBindingKeySignatureEquals(
-			"Ljava.lang.String;",
-			"Lp/X;.foo)Ljava/lang/String;"
-		);
-	}
-
-	/*
-	 * Base type
-	 * (regression test for bug 97187 [rendering] Shows Single Char for primitve Types)
-	 */
-	public void test039() {
-		assertBindingKeySignatureEquals(
-			"Z",
-			"Z"
-		);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/BufferTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/BufferTests.java
deleted file mode 100644
index 7d1cd0a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/BufferTests.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-public class BufferTests extends ModifyingResourceTests implements
-		IBufferChangedListener {
-	protected ArrayList events = null;
-
-	public BufferTests(String name) {
-		super(name);
-	}
-
-	/**
-	 * Cache the event
-	 */
-	public void bufferChanged(BufferChangedEvent bufferChangedEvent) {
-		this.events.add(bufferChangedEvent);
-	}
-
-	protected IBuffer createBuffer(String path, String content)
-			throws CoreException {
-		waitUntilIndexesReady(); // ensure that the indexer is not reading the
-									// file
-		this.createFile(path, content);
-		IJavaScriptUnit cu = this.getCompilationUnit(path);
-		IBuffer buffer = cu.getBuffer();
-		buffer.addBufferChangedListener(this);
-		this.events = new ArrayList();
-		return buffer;
-	}
-
-	protected void deleteBuffer(IBuffer buffer) throws CoreException {
-		buffer.removeBufferChangedListener(this);
-		IResource resource = buffer.getUnderlyingResource();
-		if (resource != null) {
-			deleteResource(resource);
-		}
-	}
-
-	/**
-	 * @see AbstractJavaModelTests#setUpSuite()
-	 */
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		try {
-			this.createJavaProject("P", new String[] { "" });
-			this.createFolder("P/x/y");
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * @see AbstractJavaModelTests#tearDownSuite()
-	 */
-	public void tearDownSuite() throws Exception {
-		super.tearDownSuite();
-		this.deleteProject("P");
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(BufferTests.class);
-	}
-
-	/**
-	 * Tests appending to a buffer.
-	 */
-	public void testAppend() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			int oldLength = buffer.getLength();
-			buffer.append("\nvar a = new A();");
-			assertBufferEvent(oldLength, 0, "\nvar a = new A();");
-			assertSourceEquals("unexpected buffer contents", "function A() {\n};"
-					+ "\nvar a = new A();", buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests appending to a read-only buffer.
-	 */
-	//TODO
-	/*public void testAppendReadOnly() throws CoreException {
-		IBuffer buffer = null;
-		try {
-			createJavaProject("P1", new String[] {}, "");
-			// IClassFile classFile = getClassFile("P1",
-			// getExternalJCLPathString(), "", "system.js");
-			IJavaScriptUnit unit = getCompilationUnit("P1",
-					getExternalJCLPathString(), "", "system.js");
-			buffer = unit.getBuffer();
-			buffer.addBufferChangedListener(this);
-			this.events = new ArrayList();
-			buffer.append("\nclass B {}");
-			assertTrue("unexpected event", this.events.isEmpty());
-			assertSourceEquals("unexpected buffer contents",
-					"package java.lang;\n" + "\n" + "public class String {\n"
-							+ "}\n", buffer.getContents());
-			assertTrue("should not have unsaved changes", !buffer
-					.hasUnsavedChanges());
-		} finally {
-			if (buffer != null) {
-				buffer.removeBufferChangedListener(this);
-			}
-			deleteProject("P1");
-		}
-	}*/
-
-	public void testClose() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			buffer.close();
-			assertBufferEvent(0, 0, null);
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests getting the underlying resource of a buffer.
-	 */
-	public void testGetUnderlyingResource() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		IJavaScriptUnit copy = null;
-		try {
-			IFile file = this.getFile("P/x/y/A.js");
-			assertEquals("Unexpected underlying resource", file, buffer
-					.getUnderlyingResource());
-
-			copy = this.getCompilationUnit("P/x/y/A.js").getWorkingCopy(null);
-			assertEquals("Unexpected underlying resource 2", file, copy
-					.getBuffer().getUnderlyingResource());
-		} finally {
-			this.deleteBuffer(buffer);
-			if (copy != null) {
-				copy.discardWorkingCopy();
-			}
-		}
-	}
-
-	/**
-	 * Tests deleting text at the beginning of a buffer.
-	 */
-	public void testDeleteBeginning() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};\n" +
-			"var a = new A();");
-		try {
-			buffer.replace(0, 18, "");
-			assertBufferEvent(0, 18, null);
-			assertSourceEquals("unexpected buffer contents",
-					"var a = new A();", buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests deleting text in the middle of a buffer.
-	 */
-	public void testDeleteMiddle() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};\n" +
-			"var a = new A();\nvar a1 = new A();");
-		try {
-			// delete var a = new A();\n
-			buffer.replace(18, 17, "");
-			assertBufferEvent(18, 17, null);
-			assertSourceEquals("unexpected buffer contents", "function A() {\n};\n" +
-					"var a1 = new A();", buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests deleting text at the end of a buffer.
-	 */
-	public void testDeleteEnd() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};\n" +
-				"var a = new A();");
-		try {
-			// delete "public class A {\n}"
-			buffer.replace(17, 17, "");
-			assertBufferEvent(17, 17, null);
-			assertSourceEquals("unexpected buffer contents", "function A() {\n};",
-					buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests the buffer char retrieval via source position
-	 */
-	public void testGetChar() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			assertEquals("Unexpected char at position 9", 'A', buffer
-					.getChar(9));
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests the buffer char retrieval via source position doesn't throw an
-	 * exception if the buffer is closed.
-	 */
-	public void testGetChar2() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		buffer.close();
-		try {
-			assertEquals("Unexpected char at position 9", Character.MIN_VALUE,
-					buffer.getChar(9));
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests the buffer getLength()
-	 */
-	public void testGetLength() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			assertEquals("Unexpected length", 17, buffer.getLength());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests the buffer text retrieval via source position
-	 */
-	public void testGetText() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			assertSourceEquals("Unexpected text (1)", "f", buffer.getText(0, 1));
-			assertSourceEquals("Unexpected text (2)", "A()", buffer.getText(
-					9, 3));
-			assertSourceEquals("Unexpected text (3)", "", buffer.getText(12, 0));
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests inserting text at the beginning of a buffer.
-	 */
-	public void testInsertBeginning() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			buffer.replace(0, 0, "/* copyright mycompany */\n");
-			assertBufferEvent(0, 0, "/* copyright mycompany */\n");
-			assertSourceEquals("unexpected buffer contents",
-					"/* copyright mycompany */\n" + "function A() {\n};", 
-					buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests replacing text at the beginning of a buffer.
-	 */
-	public void testReplaceBeginning() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			// replace function A() with function B()
-			buffer.replace(0, 12, "function B()");
-			assertBufferEvent(0, 12, "function B()");
-			assertSourceEquals("unexpected buffer contents", "function B() {\n};",
-					buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests replacing text in the middle of a buffer.
-	 */
-	public void testReplaceMiddle() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			// replace "A()" after the \n of package statement
-			buffer.replace(9, 3, "B( )");
-			assertBufferEvent(9, 3, "B( )");
-			assertSourceEquals("unexpected buffer contents", "function B( ) {\n};",
-					buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests replacing text at the end of a buffer.
-	 */
-	public void testReplaceEnd() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			// replace ";" at the end of cu with ";\n"
-			int end = buffer.getLength();
-			buffer.replace(end - 1, 1, ";\n");
-			assertBufferEvent(end - 1, 1, ";\n");
-			assertSourceEquals("unexpected buffer contents", "function A() {\n};\n", 
-					buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests inserting text in the middle of a buffer.
-	 */
-	public void testInsertMiddle() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A() {\n};");
-		try {
-			// insert comment in the middle of the {\n}
-			buffer.replace(15, 0, "// comment\n");
-			assertBufferEvent(15, 0, "// comment\n");
-			assertSourceEquals("unexpected buffer contents", 
-					"function A() {\n// comment\n};",
-					buffer.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Tests inserting text at the end of a buffer.
-	 */
-	public void testInsertEnd() throws CoreException {
-		IBuffer buffer = this.createBuffer("P/x/y/A.js", "function A(){\n};");
-		try {
-			// insert function B(){\n} at the end of the buffer
-			int end = buffer.getLength();
-			buffer.replace(end, 0, "\nfunction B(){\n};");
-			assertBufferEvent(end, 0, "\nfunction B(){\n};");
-			assertSourceEquals("unexpected buffer contents", 
-					"function A(){\n};\nfunction B(){\n};", buffer
-					.getContents());
-			assertTrue("should have unsaved changes", buffer
-					.hasUnsavedChanges());
-		} finally {
-			this.deleteBuffer(buffer);
-		}
-	}
-
-	/**
-	 * Verify the buffer changed event. The given text must contain '\n' line
-	 * separators.
-	 */
-	protected void assertBufferEvent(int offset, int length, String text) {
-		assertTrue("events should not be null", this.events != null);
-		assertTrue("events should not be empty", !this.events.isEmpty());
-		BufferChangedEvent event = (BufferChangedEvent) this.events.get(0);
-		assertEquals("unexpected offset", offset, event.getOffset());
-		assertEquals("unexpected length", length, event.getLength());
-		if (text == null) {
-			assertTrue("text should be null", event.getText() == null);
-		} else {
-			assertSourceEquals("unexpected text", text, event.getText());
-		}
-	}
-
-	protected void assertBufferEvents(String expected) {
-		StringBuffer buffer = new StringBuffer();
-		if (this.events == null)
-			buffer.append("<null>");
-		else {
-			for (int i = 0, length = this.events.size(); i < length; i++) {
-				BufferChangedEvent event = (BufferChangedEvent) this.events
-						.get(i);
-				buffer.append('(');
-				buffer.append(event.getOffset());
-				buffer.append(", ");
-				buffer.append(event.getLength());
-				buffer.append(") ");
-				buffer.append(event.getText());
-				if (i < length - 1)
-					buffer.append("\n");
-			}
-		}
-		assertSourceEquals("Unexpected buffer events", expected, buffer
-				.toString());
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CancelCounter.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CancelCounter.java
deleted file mode 100644
index 033b9b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CancelCounter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/*
- * Counts the number of time isCancelled() is called.
- */
-public class CancelCounter implements IProgressMonitor {
-	public int count = 0;
-	public void beginTask(String name, int totalWork) {}
-	public void done() {}
-	public void internalWorked(double work) {}
-	public boolean isCanceled() {
-		count++;
-		return false;
-	}
-	public void setCanceled(boolean value) {}
-	public void setTaskName(String name) {}
-	public void subTask(String name) {}
-	public void worked(int work) {}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/Canceler.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/Canceler.java
deleted file mode 100644
index 01bd795..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/Canceler.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/*
- * Cancels the operation on the count time isCanceled() is called.
- */
-public class Canceler implements IProgressMonitor {
-	int count;
-	public Canceler(int count) {
-		this.count = count;
-	}
-	public void beginTask(String name, int totalWork) {}
-	public void done() {}
-	public void internalWorked(double work) {}
-	public boolean isCanceled() {
-		return --count < 0;
-	}
-	public void setCanceled(boolean value) {}
-	public void setTaskName(String name) {}
-	public void subTask(String name) {}
-	public void worked(int work) {}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClassFileTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClassFileTests.java
deleted file mode 100644
index 24815a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClassFileTests.java
+++ /dev/null
@@ -1,824 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.jsdt.core.Flags;
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IFunction;
-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.IPackageFragment;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchConstants;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope;
-import org.eclipse.wst.jsdt.core.search.SearchEngine;
-
-public class ClassFileTests extends ModifyingResourceTests {
-	
-	IPackageFragmentRoot jarRoot;
-	IJavaScriptUnit workingCopy;
-	IClassFile classFile;
-	
-public ClassFileTests(String name) {
-	super(name);
-}
-
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//	TESTS_PREFIX = "testGetCategories";
-//	TESTS_NAMES = new String[] { "testWorkingCopy11"};
-//	TESTS_NUMBERS = new int[] { 13 };
-//	TESTS_RANGE = new int[] { 16, -1 };
-}
-public static Test suite() {
-	return buildModelTestSuite(ClassFileTests.class);
-}
-
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	IJavaScriptProject javaProject = createJavaProject("P");
-	String[] pathAndContents = new String[] {
-		"nongeneric/A.js", 
-		"package nongeneric;\n" +
-		"public class A {\n" + 
-		"}",			
-		"generic/X.js", 
-		"package generic;\n" +
-		"public class X<T> {\n" + 
-		"  <U extends Exception> X<T> foo(X<T> x) throws RuntimeException, U {\n" +
-		"    return null;\n" +
-		"  }\n" +
-		"  <K, V> V foo(K key, V value) throws Exception {\n" +
-		"    return value;\n" +
-		"  }\n" +
-		"}",
-		"generic/Y.js", 
-		"package generic;\n" +
-		"public class Y<K, L> {\n" + 
-		"}",
-		"generic/Z.js", 
-		"package generic;\n" +
-		"public class Z<T extends Object & I<? super T>> {\n" + 
-		"}",
-		"generic/I.js", 
-		"package generic;\n" +
-		"public interface I<T> {\n" + 
-		"}",
-		"generic/W.js", 
-		"package generic;\n" +
-		"public class W<T extends X<T> , U extends T> {\n" + 
-		"}",
-		"generic/V.js", 
-		"package generic;\n" +
-		"public class V extends X<Thread> implements I<String> {\n" + 
-		"}",
-		"varargs/X.js", 
-		"package varargs;\n" +
-		"public class X {\n" + 
-		"  void foo(String s, Object ... others) {\n" +
-		"  }\n" +
-		"}",
-		"workingcopy/X.js", 
-		"package workingcopy;\n" +
-		"public class X {\n" + 
-		"  void foo() {\n" +
-		"    System.out.println();\n" +
-		"  }\n" +
-		"}",
-		"workingcopy/Y.js", 
-		"package workingcopy;\n" +
-		"public class Y<W> {\n" + 
-		"  <T> T foo(T t, String... args) {\n" +
-		"    return t;\n" +
-		"  }\n" +
-		"}",
-	};
-	addLibrary(javaProject, "lib.jar", "libsrc.zip", pathAndContents, JavaScriptCore.VERSION_1_5);
-	this.jarRoot = javaProject.getPackageFragmentRoot(getFile("/P/lib.jar"));
-}
-
-public void tearDownSuite() throws Exception {
-	super.tearDownSuite();
-	deleteProject("P");
-}
-
-protected void tearDown() throws Exception {
-	if (this.workingCopy != null)
-		this.workingCopy.discardWorkingCopy();
-	if (this.classFile != null) {
-		removeLibrary(getJavaProject("P"), "lib2.jar", "src2.zip");
-		this.classFile = null;
-	}
-	super.tearDown();
-}
-
-private IClassFile createClassFile(String contents) throws CoreException, IOException {
-	IJavaScriptProject project = getJavaProject("P");
-	addLibrary(project, "lib2.jar", "src2.zip", new String[] {"p/X.js", contents}, "1.5");
-	this.classFile =  project.getPackageFragmentRoot(getFile("/P/lib2.jar")).getPackageFragment("p").getClassFile("X.class");
-	return this.classFile;
-}
-
-/*
- * Ensures that no exception is thrown for a .class file name with a dot
- * (regression test for bug 114140 assertion failed when opening a class file not not the classpath)
- */
-public void testDotName() throws JavaScriptModelException {
-	IType type = getClassFile("/P/X.Y.class").getType();
-	assertEquals("X.Y", type.getElementName());
-}
-
-/*
- * Ensure that the categories for a class are correct.
- */
-public void testGetCategories01() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"/**\n" +
-		" * @category test\n" +
-		" */\n" +
-		"public class X {\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-public void testGetCategories02() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"/**\n" +
-		" * @category test1 test2 test3 test4 test5 test6 test7 test8 test9 test10\n" +
-		" */\n" +
-		"public class X {\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test1\ntest2\ntest3\ntest4\ntest5\ntest6\ntest7\ntest8\ntest9\ntest10\n",
-		categories);
-}
-
-/*
- * Ensure that the categories for a field are correct.
- */
-public void testGetCategories03() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  int field;\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getField("field").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-public void testGetCategories04() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		"   * @category test1 test2\n" +
-		"   */\n" +
-		"  int field;\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getField("field").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test1\ntest2\n",
-		categories);
-}
-
-/*
- * Ensure that the categories for a method are correct.
- */
-public void testGetCategories05() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		" * @category test\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-public void testGetCategories06() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		" * @category test1 test2 test3 test4 test5\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test1\ntest2\ntest3\ntest4\ntest5\n",
-		categories);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=125676
-public void testGetCategories07() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		"   * @category " +
-		"	 *		test\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"",
-		categories);
-}
-public void testGetCategories08() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		"   * @category" +
-		"	 *		test\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"",
-		categories);
-}
-public void testGetCategories09() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		"   * @category test1" +
-		"	 *		test2\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test1\n",
-		categories);
-}
-
-/*
- * Ensure that the categories for a member that has no categories when another member defines some are correct.
- */
-public void testGetCategories10() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  int field1;\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  int field2;\n" +
-		"}"
-	);
-	String[] categories = this.classFile.getType().getField("field1").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"",
-		categories);
-}
-
-/*
- * Ensures that the children of a type for a given category are correct.
- */
-public void testGetChildrenForCategory01() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  int field;\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  void foo1() {}\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  void foo2() {}\n" +
-		"  /**\n" +
-		"   * @category other\n" +
-		"   */\n" +
-		"  void foo3() {}\n" +
-		"}"
-	);
-	IJavaScriptElement[] children = this.classFile.getType().getChildrenForCategory("test");
-	assertElementsEqual(
-		"Unexpected children",
-		"field [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo1() [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo2() [in X [in X.class [in p [in lib2.jar [in P]]]]]",
-		children);
-}
-public void testGetChildrenForCategory02() throws CoreException, IOException {
-	createClassFile(
-		"package p;\n" +
-		"public class X {\n" +
-		"  /**\n" +
-		"   * @category fields test all\n" +
-		"   */\n" +
-		"  int field;\n" +
-		"  /**\n" +
-		"   * @category methods test all\n" +
-		"   */\n" +
-		"  void foo1() {}\n" +
-		"  /**\n" +
-		"   * @category methods test all\n" +
-		"   */\n" +
-		"  void foo2() {}\n" +
-		"  /**\n" +
-		"   * @category methods other all\n" +
-		"   */\n" +
-		"  void foo3() {}\n" +
-		"}"
-	);
-	IJavaScriptElement[] tests  = this.classFile.getType().getChildrenForCategory("test");
-	assertElementsEqual(
-		"Unexpected children",
-		"field [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo1() [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo2() [in X [in X.class [in p [in lib2.jar [in P]]]]]",
-		tests);
-	IJavaScriptElement[] methods = this.classFile.getType().getChildrenForCategory("methods");
-	assertElementsEqual(
-		"Unexpected children",
-		"foo1() [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo2() [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo3() [in X [in X.class [in p [in lib2.jar [in P]]]]]",
-		methods);
-	IJavaScriptElement[] others = this.classFile.getType().getChildrenForCategory("other");
-	assertElementsEqual(
-		"Unexpected children",
-		"foo3() [in X [in X.class [in p [in lib2.jar [in P]]]]]",
-		others);
-	IJavaScriptElement[] all = this.classFile.getType().getChildrenForCategory("all");
-	assertElementsEqual(
-		"Unexpected children",
-		"field [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo1() [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo2() [in X [in X.class [in p [in lib2.jar [in P]]]]]\n" + 
-		"foo3() [in X [in X.class [in p [in lib2.jar [in P]]]]]",
-		all);
-}
-
-/*
- * Ensures that IType#getSuperclassTypeSignature() is correct for a binary type.
- * (regression test for bug 78520 [model] IType#getSuperInterfaceTypeSignatures() doesn't include type arguments)
- */
-public void testGetSuperclassTypeSignature() throws JavaScriptModelException {
-	IType type = this.jarRoot.getPackageFragment("generic").getClassFile("V.class").getType();
-	assertEquals(
-		"Unexpected signature", 
-		"Lgeneric.X<Ljava.lang.Thread;>;",
-		type.getSuperclassTypeSignature());
-}
-
-/*
- * Ensures that the parameter names of a binary method with source attached are correct.
- */
-public void testParameterNames01() throws CoreException {
-	IFunction method = this.jarRoot.getPackageFragment("generic").getClassFile("X.class").getType().getFunction("foo", new String[] {"TK;", "TV;"});
-	String[] parameterNames = method.getParameterNames();
-	assertStringsEqual(
-		"Unexpected parameter names", 
-		"key\n" + 
-		"value\n",
-		parameterNames);
-}
-
-/*
- * Ensures that the parameter names of a binary method without source attached are correct.
- */
-public void testParameterNames02() throws CoreException {
-	IPath sourceAttachmentPath = this.jarRoot.getSourceAttachmentPath();
-	try {
-		attachSource(this.jarRoot, null, null);
-		IFunction method = this.jarRoot.getPackageFragment("generic").getClassFile("X.class").getType().getFunction("foo", new String[] {"TK;", "TV;"});
-		String[] parameterNames = method.getParameterNames();
-		assertStringsEqual(
-			"Unexpected parameter names", 
-			"arg0\n" + 
-			"arg1\n",
-			parameterNames);
-	} finally {
-		attachSource(this.jarRoot, sourceAttachmentPath.toString(), null);
-	}
-}
-
-/*
- * Ensures that the raw parameter names of a binary method with source attached are correct.
- */
-public void testRawParameterNames01() throws CoreException {
-	IFunction method = this.jarRoot.getPackageFragment("generic").getClassFile("X.class").getType().getFunction("foo", new String[] {"TK;", "TV;"});
-	String[] parameterNames = method.getRawParameterNames();
-	assertStringsEqual(
-		"Unexpected parameter names", 
-		"arg0\n" + 
-		"arg1\n",
-		parameterNames);
-}
-
-/*
- * Ensures that the raw parameter names of a binary method without source attached are correct.
- */
-public void testRawParameterNames02() throws CoreException {
-	IPath sourceAttachmentPath = this.jarRoot.getSourceAttachmentPath();
-	try {
-		attachSource(this.jarRoot, null, null);
-		IFunction method = this.jarRoot.getPackageFragment("generic").getClassFile("X.class").getType().getFunction("foo", new String[] {"TK;", "TV;"});
-		String[] parameterNames = method.getParameterNames();
-		assertStringsEqual(
-			"Unexpected parameter names", 
-			"arg0\n" + 
-			"arg1\n",
-			parameterNames);
-	} finally {
-		attachSource(this.jarRoot, sourceAttachmentPath.toString(), null);
-	}
-}
-
-/*
- * Ensure that the return type of a binary method is correct.
- */
-public void testReturnType1() throws JavaScriptModelException {
-	IType type = this.jarRoot.getPackageFragment("generic").getClassFile("X.class").getType();
-	IFunction method = type.getFunction("foo", new String[] {"TK;", "TV;"});
-	assertEquals(
-		"Unexpected return type",
-		"TV;",
-		method.getReturnType());
-}
-
-/*
- * Ensure that the return type of a binary method is correct.
- */
-public void testReturnType2() throws JavaScriptModelException {
-	IType type = this.jarRoot.getPackageFragment("generic").getClassFile("X.class").getType();
-	IFunction method = type.getFunction("foo", new String[] {"Lgeneric.X<TT;>;"});
-	assertEquals(
-		"Unexpected return type",
-		"Lgeneric.X<TT;>;",
-		method.getReturnType());
-}
-
-/*
- * Ensures that asking for the source range of a IClassFile in a non-Java project throws a JavaScriptModelException
- * (regression test for bug 132494 JavaScriptModelException opening up class file in non java project)
- */
-public void testSourceRangeNonJavaProject() throws CoreException {
-	try {
-		createProject("Simple");
-		createFile("/Simple/X.class", "");
-		IClassFile classX = getClassFile("/Simple/X.class");
-		JavaScriptModelException exception = null;
-		try {
-			classX.getSourceRange();
-		} catch (JavaScriptModelException e) {
-			exception = e;
-		}
-		assertExceptionEquals("Unexpected exception", "Simple does not exist", exception);
-	} finally {
-		deleteProject("Simple");
-	}
-}
-
-/*
- * Ensures that asking for the source range of a IClassFile not on the classpath of a Java project doesn't throw a JavaScriptModelException
- * (regression test for bug 138507 exception in .class file editor for classes imported via plug-in import)
- */
-public void testSourceRangeNotOnClasspath() throws CoreException {
-	try {
-		createJavaProject("P2", new String[] {"src"});
-		createFile("/P2/bin/X.class", "");
-		IClassFile classX = getClassFile("/P2/bin/X.class");
-		assertNull("Unxepected source range", classX.getSourceRange());
-	} finally {
-		deleteProject("P2");
-	}
-}
-
-/*
- * Ensure that a method with varargs has the AccVarargs flag set.
- */
-public void testVarargs() throws JavaScriptModelException {
-	IType type = this.jarRoot.getPackageFragment("varargs").getClassFile("X.class").getType();
-	IFunction method = type.getFunction("foo", new String[]{"Ljava.lang.String;", "[Ljava.lang.Object;"});
-	assertTrue("Should have the AccVarargs flag set", Flags.isVarargs(method.getFlags()));
-}
-
-/*
- * Ensures that a class file can be turned into a working copy and that its children are correct.
- */
-public void testWorkingCopy01() throws CoreException {
-	IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-	this.workingCopy = clazz.getWorkingCopy(null, null);
-	assertElementDescendants(
-		"Unexpected children", 
-		"[Working copy] X.class\n" + 
-		"  package workingcopy\n" + 
-		"  class X\n" + 
-		"    void foo()",
-		this.workingCopy);
-}
-
-/*
- * Ensures that a class file without source attached can be turned into a working copy and that its children are correct.
- */
-public void testWorkingCopy02() throws CoreException {
-	IPath sourceAttachmentPath = this.jarRoot.getSourceAttachmentPath();
-	try {
-		attachSource(this.jarRoot, null, null);
-		IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-		assertNull("Should not have source attached", clazz.getSource());
-		this.workingCopy = clazz.getWorkingCopy(null, null);
-		assertElementDescendants(
-			"Unexpected children", 
-			"[Working copy] X.class\n" + 
-			"  package workingcopy\n" + 
-			"  class X\n" + 
-			"    X()\n" + 
-			"    void foo()",
-			this.workingCopy);
-	} finally {
-		attachSource(this.jarRoot, sourceAttachmentPath.toString(), null);
-	}
-}
-
-/*
- * Ensures that a class file can be turned into a working copy, modified and that its children are correct.
- */
-public void testWorkingCopy03() throws CoreException {
-	IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-	this.workingCopy = clazz.getWorkingCopy(null, null);
-	this.workingCopy.getBuffer().setContents(
-		"package workingcopy;\n" +
-		"public class X {\n" + 
-		"  void bar() {\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false/*don't force problems*/, null/*primary owner*/, null/*no progress*/);
-	assertElementDescendants(
-		"Unexpected children", 
-		"[Working copy] X.class\n" + 
-		"  package workingcopy\n" + 
-		"  class X\n" + 
-		"    void bar()",
-		this.workingCopy);
-}
-
-/*
- * Ensures that a class file working copy cannot be commited
- */
-public void testWorkingCopy04() throws CoreException {
-	IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-	this.workingCopy = clazz.getWorkingCopy(null, null);
-	this.workingCopy.getBuffer().setContents(
-		"package workingcopy;\n" +
-		"public class X {\n" + 
-		"  void bar() {\n" +
-		"  }\n" +
-		"}"
-	);
-	JavaScriptModelException exception = null;
-	try {
-		this.workingCopy.commitWorkingCopy(false/*don't force*/, null);
-	} catch (JavaScriptModelException e) {
-		exception = e;
-	}
-	assertEquals(
-		"Unxepected JavaScriptModelException", 
-		"JavaScript Model Exception: JavaScript Model Status [Operation not supported for specified element type(s):[Working copy] X.class [in workingcopy [in lib.jar [in P]]]]", 
-		exception.toString());
-}
-
-/*
- * Ensures that a type can be created in class file working copy.
- */
-public void testWorkingCopy05() throws CoreException {
-	IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-	this.workingCopy = clazz.getWorkingCopy(null, null);
-	this.workingCopy.createType(
-		"class Y {\n" + 
-		"}",
-		null,
-		false/*don't force*/,
-		null);
-	assertElementDescendants(
-		"Unexpected children", 
-		"[Working copy] X.class\n" + 
-		"  package workingcopy\n" + 
-		"  class X\n" + 
-		"    void foo()\n" + 
-		"  class Y",
-		this.workingCopy);
-}
-
-/*
- * Ensures that the primary compilation unit of class file working copy is correct.
- */
-public void testWorkingCopy06() throws CoreException {
-	IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	this.workingCopy = clazz.getWorkingCopy(owner, null);
-	IJavaScriptUnit primary = this.workingCopy.getPrimary();
-	assertEquals("Unexpected owner of primary working copy", null, primary.getOwner());
-}
-
-/*
- * Ensures that a class file working copy can be restored from the original source.
- */
-public void testWorkingCopy07() throws CoreException {
-	IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	this.workingCopy = clazz.getWorkingCopy(owner, null);
-	this.workingCopy.getBuffer().setContents(
-		"package workingcopy;\n" +
-		"public class X {\n" + 
-		"  void bar() {\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false/*don't force problems*/, null/*primary owner*/, null/*no progress*/);
-	this.workingCopy.restore();
-	assertElementDescendants(
-		"Unexpected children", 
-		"[Working copy] X.class\n" + 
-		"  package workingcopy\n" + 
-		"  class X\n" + 
-		"    void foo()",
-		this.workingCopy);
-}
-
-/*
- * Ensures that a class file working copy can be reconciled against.
- */
-public void testWorkingCopy08() throws CoreException {
-	IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	this.workingCopy = clazz.getWorkingCopy(owner, null);
-	this.workingCopy.getBuffer().setContents(
-		"package workingcopy;\n" +
-		"public class X {\n" + 
-		"  public void bar() {\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.makeConsistent(null);
-	
-	IJavaScriptUnit cu = getCompilationUnit("/P/Y.js");
-	IJavaScriptUnit copy = null;
-	try {
-		ProblemRequestor problemRequestor = new ProblemRequestor();
-		copy = cu.getWorkingCopy(owner, null/*no prpgress*/);
-		copy.getBuffer().setContents(
-			"public class Y {\n" +
-			"  void foo(workingcopy.X x) {\n" +
-			"    x.bar();\n" +
-			"  }\n" +
-			"}"
-		);
-		problemRequestor.problems = new StringBuffer();
-		copy.reconcile(IJavaScriptUnit.NO_AST, false/*don't force problems*/, owner, null/*no progress*/);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n",
-			problemRequestor);
-	} finally {
-		if (copy != null)
-			copy.discardWorkingCopy();
-	}
-}
-
-/*
- * Ensures that types in a class file are hidden when reconciling against if the class file working copy is empty.
- */
-public void testWorkingCopy09() throws CoreException {
-	IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("X.class");
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	this.workingCopy = clazz.getWorkingCopy(owner, null);
-	this.workingCopy.getBuffer().setContents(	"");
-	this.workingCopy.makeConsistent(null);
-	
-	IJavaScriptUnit cu = getCompilationUnit("/P/Y.js");
-	IJavaScriptUnit copy = null;
-	try {
-		ProblemRequestor problemRequestor = new ProblemRequestor();
-		copy = cu.getWorkingCopy(owner, null/*no prpgress*/);
-		copy.getBuffer().setContents(
-			"public class Y {\n" +
-			"  workingcopy.X x;\n" +
-			"}"
-		);
-		problemRequestor.problems = new StringBuffer();
-		copy.reconcile(IJavaScriptUnit.NO_AST, false/*don't force problems*/, owner, null/*no progress*/);
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"1. ERROR in /P/Y.java\n" + 
-			"workingcopy.X cannot be resolved to a type\n" + 
-			"----------\n",
-			problemRequestor);
-	} finally {
-		if (copy != null)
-			copy.discardWorkingCopy();
-	}
-}
-
-/*
- * Ensures that a 1.5 class file without source attached can be turned into a working copy and that its source is correct.
- */
-public void testWorkingCopy10() throws CoreException {
-	IPath sourceAttachmentPath = this.jarRoot.getSourceAttachmentPath();
-	try {
-		attachSource(this.jarRoot, null, null);
-		IClassFile clazz = this.jarRoot.getPackageFragment("workingcopy").getClassFile("Y.class");
-		assertNull("Should not have source attached", clazz.getSource());
-		this.workingCopy = clazz.getWorkingCopy(null, null);
-		assertSourceEquals(
-			"Unexpected source", 
-			"package workingcopy;\n" + 
-			"public class Y<W> {\n" + 
-			"  \n" + 
-			"  public Y() {\n" + 
-			"  }\n" + 
-			"  \n" + 
-			"  <T> T foo(T t, java.lang.String... args) {\n" + 
-			"    return null;\n" + 
-			"  }\n" + 
-			"}",
-			this.workingCopy.getSource());
-	} finally {
-		attachSource(this.jarRoot, sourceAttachmentPath.toString(), null);
-	}
-}
-
-/*
- * Ensures that types in a class file are not found by a search if the class file working copy is empty.
- */
-public void testWorkingCopy11() throws CoreException {
-	IPackageFragment pkg = this.jarRoot.getPackageFragment("workingcopy");
-	IClassFile clazz = pkg.getClassFile("X.class");
-	this.workingCopy = clazz.getWorkingCopy(null, null);
-	this.workingCopy.getBuffer().setContents(	"");
-	this.workingCopy.makeConsistent(null);
-	
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {pkg});
-	AbstractJavaSearchTests.JavaSearchResultCollector requestor = new AbstractJavaSearchTests.JavaSearchResultCollector();
-	search("*", IJavaScriptSearchConstants.TYPE, IJavaScriptSearchConstants.DECLARATIONS, scope, requestor);
-	assertSearchResults(
-		"lib.jar workingcopy.Y",
-		requestor);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClassNameTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClassNameTests.java
deleted file mode 100644
index 8c93245..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClassNameTests.java
+++ /dev/null
@@ -1,1169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.internal.core.SourceType;
-
-/**
- * Test retrieving types by their name.
- */
-public class ClassNameTests extends ModifyingResourceTests {
-
-	static IJavaScriptProject TEST_PROJECT;
-	final static int SF_LENGTH = 5;
-	static int TESTS_COUNT;
-
-public ClassNameTests(String name) {
-	super(name);
-}
-
-static {
-//	org.eclipse.wst.jsdt.internal.core.NameLookup.VERBOSE = true;
-//	TESTS_NAMES = new String[] { "testFindSecondaryType_Bug72179" };
-//	TESTS_PREFIX = "testReconcile";
-}
-public static Test suite() {
-	Test suite = buildModelTestSuite(ClassNameTests.class);
-	TESTS_COUNT = suite.countTestCases();
-	return suite;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	if (TEST_PROJECT == null) {
-		String[] sourceFolders = new String[SF_LENGTH];
-		for (int i=0; i<SF_LENGTH; i++) {
-			sourceFolders[i] = "src" + i;
-		}
-		TEST_PROJECT = createJavaProject("TestProject", sourceFolders, new String[] {"JCL_LIB"});
-		createFolder("/TestProject/src0/org/eclipse/jdt/core/test0");
-		createFile(
-			"/TestProject/src0/org/eclipse/jdt/core/test0/Foo.js", 
-			"package org.eclipse.wst.jsdt.core.test0;\n" +
-			"public class Foo {\n" +
-			"	class InFoo {}\n" +
-			"}\n" +
-			"class Secondary {\n" +
-			"	class InSecondary {}\n" +
-			"}\n"
-		);
-		createFile(
-			"/TestProject/src1/Foo.js", 
-			"public class Foo {\n" +
-			"	class InFoo {}\n" +
-			"}\n" +
-			"class Secondary {\n" +
-			"	class InSecondary {}\n" +
-			"}\n"
-		);
-		int length = SF_LENGTH - 1;
-		createFolder("/TestProject/src"+length+"/org/eclipse/jdt/core/test"+length);
-		createFile(
-			"/TestProject/src"+length+"/org/eclipse/jdt/core/test"+length+"/Foo.js", 
-			"package org.eclipse.wst.jsdt.core.test"+length+";\n" +
-			"public class Foo {\n" +
-			"}\n" +
-			"class Secondary {\n" +
-			"}\n"
-		);
-		createFile(
-			"/TestProject/src"+length+"/org/eclipse/jdt/core/test"+length+"/Test.js", 
-			"package org.eclipse.wst.jsdt.core.test"+length+";\n" +
-			"public class Test {\n" +
-			"	public static void main(String[] args) {\n" +
-			"		Secondary s = new Secondary();\n" +
-			"	}\n" +
-			"}\n"
-		);
-	}
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#tearDown()
- */
-protected void tearDown() throws Exception {
-	TESTS_COUNT--;
-	if (TEST_PROJECT != null && TESTS_COUNT == 0) {
-		deleteResource(TEST_PROJECT.getProject());
-	}
-	super.tearDown();
-}
-
-protected void assertTypeFound(String typeName, String expectedResult) throws JavaScriptModelException {
-	assertNotNull("TEST_PROJECT should not be null!!!", TEST_PROJECT);
-	IType type = TEST_PROJECT.findType(typeName, new NullProgressMonitor());
-	assertTrue("type "+typeName+" should exist!", type != null && type.exists());
-	assertEquals("Expected type "+typeName+" NOT found!",
-		expectedResult,
-		((SourceType)type).toStringWithAncestors()
-	);
-}
-protected void assertTypeFound(String packageName, String typeName, String expectedResult) throws JavaScriptModelException {
-	assertNotNull("TEST_PROJECT should not be null!!!", TEST_PROJECT);
-	IType type = TEST_PROJECT.findType(packageName, typeName, new NullProgressMonitor());
-	assertTrue("type "+typeName+" should exist!", type != null && type.exists());
-	assertEquals("Expected type "+typeName+" NOT found!",
-		expectedResult,
-		((SourceType)type).toStringWithAncestors()
-	);
-}
-
-protected void assertTypeNotFound(String typeName) throws JavaScriptModelException {
-	assertNotNull("TEST_PROJECT should not be null!!!", TEST_PROJECT);
-	IType type = TEST_PROJECT.findType(typeName, new NullProgressMonitor());
-	assertNotNull("type "+typeName+" should NOT be null!", type);
-	assertFalse("type "+typeName+" should NOT exist!", type.exists());
-}
-protected void assertTypeNotFound(String packageName, String typeName) throws JavaScriptModelException {
-	assertNotNull("TEST_PROJECT should not be null!!!", TEST_PROJECT);
-	IType type = TEST_PROJECT.findType(packageName, typeName, new NullProgressMonitor());
-	assertNotNull("type "+typeName+" should NOT be null!", type);
-	assertFalse("type "+typeName+" should NOT exist!", type.exists());
-}
-
-protected void assertTypeUnknown(String typeName) throws JavaScriptModelException {
-	assertNotNull("TEST_PROJECT should not be null!!!", TEST_PROJECT);
-	IType type = TEST_PROJECT.findType(typeName, new NullProgressMonitor());
-	assertNull("type "+typeName+" should NOT be found!", type);
-}
-protected void assertTypeUnknown(String packageName, String typeName) throws JavaScriptModelException {
-	assertNotNull("TEST_PROJECT should not be null!!!", TEST_PROJECT);
-	IType type = TEST_PROJECT.findType(packageName, typeName, new NullProgressMonitor());
-	assertNull("type "+typeName+" should NOT be found!", type);
-}
-
-/**
- * Tests that a type in a jar with a name ending with $ can be retrieved.
- */
-public void testClassNameWithDollar() throws JavaScriptModelException, CoreException {
-	try {
-		byte[] tab = new byte[372];
-		tab[0]=80;
-		tab[1]=75;
-		tab[2]=3;
-		tab[3]=4;
-		tab[4]=20;
-		tab[5]=0;
-		tab[6]=8;
-		tab[7]=0;
-		tab[8]=8;
-		tab[9]=0;
-		tab[10]=-63;
-		tab[11]=88;
-		tab[12]=-102;
-		tab[13]=44;
-		tab[14]=0;
-		tab[15]=0;
-		tab[16]=0;
-		tab[17]=0;
-		tab[18]=0;
-		tab[19]=0;
-		tab[20]=0;
-		tab[21]=0;
-		tab[22]=0;
-		tab[23]=0;
-		tab[24]=0;
-		tab[25]=0;
-		tab[26]=11;
-		tab[27]=0;
-		tab[28]=0;
-		tab[29]=0;
-		tab[30]=112;
-		tab[31]=49;
-		tab[32]=47;
-		tab[33]=65;
-		tab[34]=36;
-		tab[35]=46;
-		tab[36]=99;
-		tab[37]=108;
-		tab[38]=97;
-		tab[39]=115;
-		tab[40]=115;
-		tab[41]=93;
-		tab[42]=78;
-		tab[43]=-63;
-		tab[44]=74;
-		tab[45]=-61;
-		tab[46]=64;
-		tab[47]=16;
-		tab[48]=125;
-		tab[49]=-45;
-		tab[50]=77;
-		tab[51]=-78;
-		tab[52]=53;
-		tab[53]=86;
-		tab[54]=91;
-		tab[55]=99;
-		tab[56]=127;
-		tab[57]=64;
-		tab[58]=-24;
-		tab[59]=-95;
-		tab[60]=21;
-		tab[61]=106;
-		tab[62]=-16;
-		tab[63]=-84;
-		tab[64]=8;
-		tab[65]=-91;
-		tab[66]=-48;
-		tab[67]=83;
-		tab[68]=48;
-		tab[69]=-121;
-		tab[70]=74;
-		tab[71]=-17;
-		tab[72]=-101;
-		tab[73]=-72;
-		tab[74]=-42;
-		tab[75]=45;
-		tab[76]=49;
-		tab[77]=43;
-		tab[78]=49;
-		tab[79]=-11;
-		tab[80]=-69;
-		tab[81]=-12;
-		tab[82]=84;
-		tab[83]=-16;
-		tab[84]=-32;
-		tab[85]=7;
-		tab[86]=-8;
-		tab[87]=81;
-		tab[88]=-30;
-		tab[89]=108;
-		tab[90]=12;
-		tab[91]=42;
-		tab[92]=-50;
-		tab[93]=-31;
-		tab[94]=61;
-		tab[95]=102;
-		tab[96]=-26;
-		tab[97]=-67;
-		tab[98]=121;
-		tab[99]=-13;
-		tab[100]=-15;
-		tab[101]=-7;
-		tab[102]=-10;
-		tab[103]=14;
-		tab[104]=-127;
-		tab[105]=41;
-		tab[106]=-122;
-		tab[107]=4;
-		tab[108]=-1;
-		tab[109]=-15;
-		tab[110]=60;
-		tab[111]=-98;
-		tab[112]=-115;
-		tab[113]=36;
-		tab[114]=-120;
-		tab[115]=48;
-		tab[116]=-40;
-		tab[117]=-88;
-		tab[118]=103;
-		tab[119]=21;
-		tab[120]=23;
-		tab[121]=-86;
-		tab[122]=92;
-		tab[123]=-57;
-		tab[124]=105;
-		tab[125]=-74;
-		tab[126]=-47;
-		tab[127]=121;
-		tab[128]=45;
-		tab[129]=33;
-		tab[130]=8;
-		tab[131]=-63;
-		tab[132]=-91;
-		tab[133]=41;
-		tab[134]=77;
-		tab[135]=125;
-		tab[136]=69;
-		tab[137]=16;
-		tab[138]=-29;
-		tab[139]=-55;
-		tab[140]=-118;
-		tab[141]=-32;
-		tab[142]=-51;
-		tab[143]=-19;
-		tab[144]=-83;
-		tab[145]=-18;
-		tab[146]=-63;
-		tab[147]=71;
-		tab[148]=16;
-		tab[149]=-62;
-		tab[150]=67;
-		tab[151]=-105;
-		tab[152]=-48;
-		tab[153]=79;
-		tab[154]=76;
-		tab[155]=-87;
-		tab[156]=-81;
-		tab[157]=-73;
-		tab[158]=15;
-		tab[159]=-103;
-		tab[160]=-82;
-		tab[161]=110;
-		tab[162]=84;
-		tab[163]=86;
-		tab[164]=104;
-		tab[165]=66;
-		tab[166]=-108;
-		tab[167]=-40;
-		tab[168]=92;
-		tab[169]=21;
-		tab[170]=43;
-		tab[171]=85;
-		tab[172]=25;
-		tab[173]=-41;
-		tab[174]=-73;
-		tab[175]=67;
-		tab[176]=-81;
-		tab[177]=-66;
-		tab[178]=55;
-		tab[179]=79;
-		tab[180]=4;
-		tab[181]=-103;
-		tab[182]=52;
-		tab[183]=121;
-		tab[184]=23;
-		tab[185]=124;
-		tab[186]=-18;
-		tab[187]=-50;
-		tab[188]=90;
-		tab[189]=-62;
-		tab[190]=112;
-		tab[191]=60;
-		tab[192]=73;
-		tab[193]=126;
-		tab[194]=99;
-		tab[195]=-105;
-		tab[196]=117;
-		tab[197]=101;
-		tab[198]=-54;
-		tab[199]=-75;
-		tab[200]=91;
-		tab[201]=46;
-		tab[202]=-46;
-		tab[203]=-76;
-		tab[204]=-117;
-		tab[205]=1;
-		tab[206]=33;
-		tab[207]=92;
-		tab[208]=-38;
-		tab[209]=109;
-		tab[210]=-107;
-		tab[211]=-21;
-		tab[212]=-123;
-		tab[213]=113;
-		tab[214]=55;
-		tab[215]=-28;
-		tab[216]=108;
-		tab[217]=116;
-		tab[218]=-26;
-		tab[219]=-60;
-		tab[220]=56;
-		tab[221]=65;
-		tab[222]=-121;
-		tab[223]=-61;
-		tab[224]=93;
-		tab[225]=117;
-		tab[226]=64;
-		tab[227]=-18;
-		tab[228]=23;
-		tab[229]=70;
-		tab[230]=-55;
-		tab[231]=93;
-		tab[232]=-52;
-		tab[233]=76;
-		tab[234]=-52;
-		tab[235]=-2;
-		tab[236]=-23;
-		tab[237]=14;
-		tab[238]=123;
-		tab[239]=-81;
-		tab[240]=-51;
-		tab[241]=58;
-		tab[242]=100;
-		tab[243]=12;
-		tab[244]=-102;
-		tab[245]=-95;
-		tab[246]=-64;
-		tab[247]=62;
-		tab[248]=99;
-		tab[249]=-17;
-		tab[250]=91;
-		tab[251]=-64;
-		tab[252]=124;
-		tab[253]=-64;
-		tab[254]=76;
-		tab[255]=56;
-		tab[256]=68;
-		tab[257]=-65;
-		tab[258]=53;
-		tab[259]=79;
-		tab[260]=91;
-		tab[261]=-77;
-		tab[262]=-120;
-		tab[263]=-114;
-		tab[264]=94;
-		tab[265]=-2;
-		tab[266]=89;
-		tab[267]=-125;
-		tab[268]=63;
-		tab[269]=86;
-		tab[270]=-15;
-		tab[271]=99;
-		tab[272]=-115;
-		tab[273]=26;
-		tab[274]=-43;
-		tab[275]=-15;
-		tab[276]=23;
-		tab[277]=80;
-		tab[278]=75;
-		tab[279]=7;
-		tab[280]=8;
-		tab[281]=122;
-		tab[282]=-92;
-		tab[283]=103;
-		tab[284]=15;
-		tab[285]=-20;
-		tab[286]=0;
-		tab[287]=0;
-		tab[288]=0;
-		tab[289]=78;
-		tab[290]=1;
-		tab[291]=0;
-		tab[292]=0;
-		tab[293]=80;
-		tab[294]=75;
-		tab[295]=1;
-		tab[296]=2;
-		tab[297]=20;
-		tab[298]=0;
-		tab[299]=20;
-		tab[300]=0;
-		tab[301]=8;
-		tab[302]=0;
-		tab[303]=8;
-		tab[304]=0;
-		tab[305]=-63;
-		tab[306]=88;
-		tab[307]=-102;
-		tab[308]=44;
-		tab[309]=122;
-		tab[310]=-92;
-		tab[311]=103;
-		tab[312]=15;
-		tab[313]=-20;
-		tab[314]=0;
-		tab[315]=0;
-		tab[316]=0;
-		tab[317]=78;
-		tab[318]=1;
-		tab[319]=0;
-		tab[320]=0;
-		tab[321]=11;
-		tab[322]=0;
-		tab[323]=0;
-		tab[324]=0;
-		tab[325]=0;
-		tab[326]=0;
-		tab[327]=0;
-		tab[328]=0;
-		tab[329]=0;
-		tab[330]=0;
-		tab[331]=0;
-		tab[332]=0;
-		tab[333]=0;
-		tab[334]=0;
-		tab[335]=0;
-		tab[336]=0;
-		tab[337]=0;
-		tab[338]=0;
-		tab[339]=112;
-		tab[340]=49;
-		tab[341]=47;
-		tab[342]=65;
-		tab[343]=36;
-		tab[344]=46;
-		tab[345]=99;
-		tab[346]=108;
-		tab[347]=97;
-		tab[348]=115;
-		tab[349]=115;
-		tab[350]=80;
-		tab[351]=75;
-		tab[352]=5;
-		tab[353]=6;
-		tab[354]=0;
-		tab[355]=0;
-		tab[356]=0;
-		tab[357]=0;
-		tab[358]=1;
-		tab[359]=0;
-		tab[360]=1;
-		tab[361]=0;
-		tab[362]=57;
-		tab[363]=0;
-		tab[364]=0;
-		tab[365]=0;
-		tab[366]=37;
-		tab[367]=1;
-		tab[368]=0;
-		tab[369]=0;
-		tab[370]=0;
-		tab[371]=0;
-		IJavaScriptProject javaProject = createJavaProject("P", new String[] {"src"});
-		IFile jarFile = createFile("P/lib.jar", tab);
-		javaProject.setRawIncludepath(new IIncludePathEntry[] {JavaScriptCore.newLibraryEntry(jarFile.getFullPath(), null, null, false)}, new NullProgressMonitor());
-		javaProject.findType("p1.A$");
-	} catch (CoreException e) {
-		e.printStackTrace();
-		assertTrue(false);
-	} finally {
-		deleteProject("P");
-	}
-}
-/**
- * Tests that a member type can be retrived using a dot qualified name.
- */
-public void testFindTypeWithDot() throws JavaScriptModelException, CoreException {
-	try {
-		IJavaScriptProject javaProject = createJavaProject("P", new String[] {""});
-		this.createFolder("/P/p");
-		this.createFile(
-			"/P/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"  public class Y {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType type = javaProject.findType("p.X.Y");
-		assertEquals(
-			"Unexpected type found",
-			"class Y [in X [in X.java [in p [in <project root> [in P]]]]]",
-			type == null ? "null" : type.toString()
-		);
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/**
- * Tests that a type in a jar with a name ending with $ can be retrieved.
- */
-public void testSearchTypeNameInJars() throws JavaScriptModelException, CoreException {
-	try {
-		byte[] tab = new byte[478];
-		tab[0]=80;
-		tab[1]=75;
-		tab[2]=3;
-		tab[3]=4;
-		tab[4]=20;
-		tab[5]=0;
-		tab[6]=8;
-		tab[7]=0;
-		tab[8]=8;
-		tab[9]=0;
-		tab[10]=19;
-		tab[11]=87;
-		tab[12]=-95;
-		tab[13]=44;
-		tab[14]=0;
-		tab[15]=0;
-		tab[16]=0;
-		tab[17]=0;
-		tab[18]=0;
-		tab[19]=0;
-		tab[20]=0;
-		tab[21]=0;
-		tab[22]=0;
-		tab[23]=0;
-		tab[24]=0;
-		tab[25]=0;
-		tab[26]=9;
-		tab[27]=0;
-		tab[28]=0;
-		tab[29]=0;
-		tab[30]=112;
-		tab[31]=49;
-		tab[32]=47;
-		tab[33]=112;
-		tab[34]=50;
-		tab[35]=47;
-		tab[36]=112;
-		tab[37]=51;
-		tab[38]=47;
-		tab[39]=3;
-		tab[40]=0;
-		tab[41]=80;
-		tab[42]=75;
-		tab[43]=7;
-		tab[44]=8;
-		tab[45]=0;
-		tab[46]=0;
-		tab[47]=0;
-		tab[48]=0;
-		tab[49]=2;
-		tab[50]=0;
-		tab[51]=0;
-		tab[52]=0;
-		tab[53]=0;
-		tab[54]=0;
-		tab[55]=0;
-		tab[56]=0;
-		tab[57]=80;
-		tab[58]=75;
-		tab[59]=3;
-		tab[60]=4;
-		tab[61]=20;
-		tab[62]=0;
-		tab[63]=8;
-		tab[64]=0;
-		tab[65]=8;
-		tab[66]=0;
-		tab[67]=19;
-		tab[68]=87;
-		tab[69]=-95;
-		tab[70]=44;
-		tab[71]=0;
-		tab[72]=0;
-		tab[73]=0;
-		tab[74]=0;
-		tab[75]=0;
-		tab[76]=0;
-		tab[77]=0;
-		tab[78]=0;
-		tab[79]=0;
-		tab[80]=0;
-		tab[81]=0;
-		tab[82]=0;
-		tab[83]=16;
-		tab[84]=0;
-		tab[85]=0;
-		tab[86]=0;
-		tab[87]=112;
-		tab[88]=49;
-		tab[89]=47;
-		tab[90]=112;
-		tab[91]=50;
-		tab[92]=47;
-		tab[93]=112;
-		tab[94]=51;
-		tab[95]=47;
-		tab[96]=88;
-		tab[97]=46;
-		tab[98]=99;
-		tab[99]=108;
-		tab[100]=97;
-		tab[101]=115;
-		tab[102]=115;
-		tab[103]=93;
-		tab[104]=79;
-		tab[105]=-53;
-		tab[106]=78;
-		tab[107]=-61;
-		tab[108]=64;
-		tab[109]=12;
-		tab[110]=28;
-		tab[111]=55;
-		tab[112]=-81;
-		tab[113]=-110;
-		tab[114]=6;
-		tab[115]=8;
-		tab[116]=-3;
-		tab[117]=3;
-		tab[118]=110;
-		tab[119]=60;
-		tab[120]=-44;
-		tab[121]=-82;
-		tab[122]=10;
-		tab[123]=71;
-		tab[124]=16;
-		tab[125]=23;
-		tab[126]=36;
-		tab[127]=78;
-		tab[128]=81;
-		tab[129]=57;
-		tab[130]=20;
-		tab[131]=69;
-		tab[132]=-67;
-		tab[133]=110;
-		tab[134]=-62;
-		tab[135]=-74;
-		tab[136]=108;
-		tab[137]=-107;
-		tab[138]=102;
-		tab[139]=-93;
-		tab[140]=52;
-		tab[141]=-27;
-		tab[142]=-65;
-		tab[143]=56;
-		tab[144]=33;
-		tab[145]=113;
-		tab[146]=-32;
-		tab[147]=3;
-		tab[148]=-8;
-		tab[149]=40;
-		tab[150]=-124;
-		tab[151]=55;
-		tab[152]=-115;
-		tab[153]=0;
-		tab[154]=117;
-		tab[155]=37;
-		tab[156]=-49;
-		tab[157]=-56;
-		tab[158]=-10;
-		tab[159]=-116;
-		tab[160]=-19;
-		tab[161]=-3;
-		tab[162]=-6;
-		tab[163]=-2;
-		tab[164]=-8;
-		tab[165]=-124;
-		tab[166]=-125;
-		tab[167]=17;
-		tab[168]=78;
-		tab[169]=8;
-		tab[170]=97;
-		tab[171]=53;
-		tab[172]=17;
-		tab[173]=-43;
-		tab[174]=-107;
-		tab[175]=-88;
-		tab[176]=-82;
-		tab[177]=-59;
-		tab[178]=60;
-		tab[179]=0;
-		tab[180]=17;
-		tab[181]=-30;
-		tab[182]=-107;
-		tab[183]=124;
-		tab[184]=-107;
-		tab[185]=-94;
-		tab[186]=-112;
-		tab[187]=-27;
-		tab[188]=82;
-		tab[189]=60;
-		tab[190]=102;
-		tab[191]=43;
-		tab[192]=-107;
-		tab[193]=55;
-		tab[194]=1;
-		tab[195]=28;
-		tab[196]=-126;
-		tab[197]=127;
-		tab[198]=-85;
-		tab[199]=75;
-		tab[200]=-35;
-		tab[201]=-36;
-		tab[202]=17;
-		tab[203]=-100;
-		tab[204]=-77;
-		tab[205]=-13;
-		tab[206]=-108;
-		tab[207]=-32;
-		tab[208]=-34;
-		tab[209]=-101;
-		tab[210]=103;
-		tab[211]=21;
-		tab[212]=-63;
-		tab[213]=-125;
-		tab[214]=31;
-		tab[215]=-62;
-		tab[216]=69;
-		tab[217]=-97;
-		tab[218]=112;
-		tab[219]=-100;
-		tab[220]=-24;
-		tab[221]=82;
-		tab[222]=77;
-		tab[223]=-73;
-		tab[224]=-21;
-		tab[225]=76;
-		tab[226]=-43;
-		tab[227]=79;
-		tab[228]=50;
-		tab[229]=43;
-		tab[230]=20;
-		tab[231]=97;
-		tab[232]=-104;
-		tab[233]=-104;
-		tab[234]=92;
-		tab[235]=22;
-		tab[236]=-87;
-		tab[237]=-84;
-		tab[238]=-75;
-		tab[239]=-51;
-		tab[240]=-69;
-		tab[241]=-94;
-		tab[242]=-37;
-		tab[243]=-68;
-		tab[244]=-24;
-		tab[245]=13;
-		tab[246]=33;
-		tab[247]=74;
-		tab[248]=-2;
-		tab[249]=-106;
-		tab[250]=-34;
-		tab[251]=-16;
-		tab[252]=-52;
-		tab[253]=-123;
-		tab[254]=49;
-		tab[255]=124;
-		tab[256]=-56;
-		tab[257]=-52;
-		tab[258]=108;
-		tab[259]=-21;
-		tab[260]=92;
-		tab[261]=61;
-		tab[262]=104;
-		tab[263]=43;
-		tab[264]=-12;
-		tab[265]=-25;
-		tab[266]=99;
-		tab[267]=123;
-		tab[268]=7;
-		tab[269]=78;
-		tab[270]=-47;
-		tab[271]=-29;
-		tab[272]=5;
-		tab[273]=-10;
-		tab[274]=-11;
-		tab[275]=64;
-		tab[276]=118;
-		tab[277]=31;
-		tab[278]=99;
-		tab[279]=-64;
-		tab[280]=-103;
-		tab[281]=96;
-		tab[282]=38;
-		tab[283]=102;
-		tab[284]=-17;
-		tab[285]=-30;
-		tab[286]=29;
-		tab[287]=7;
-		tab[288]=111;
-		tab[289]=109;
-		tab[290]=59;
-		tab[291]=100;
-		tab[292]=-12;
-		tab[293]=-37;
-		tab[294]=-94;
-		tab[295]=-125;
-		tab[296]=1;
-		tab[297]=99;
-		tab[298]=-76;
-		tab[299]=19;
-		tab[300]=48;
-		tab[301]=31;
-		tab[302]=-74;
-		tab[303]=3;
-		tab[304]=-114;
-		tab[305]=126;
-		tab[306]=-51;
-		tab[307]=-105;
-		tab[308]=28;
-		tab[309]=-74;
-		tab[310]=71;
-		tab[311]=-5;
-		tab[312]=70;
-		tab[313]=-9;
-		tab[314]=-97;
-		tab[315]=-111;
-		tab[316]=58;
-		tab[317]=35;
-		tab[318]=-1;
-		tab[319]=-83;
-		tab[320]=85;
-		tab[321]=-59;
-		tab[322]=63;
-		tab[323]=80;
-		tab[324]=75;
-		tab[325]=7;
-		tab[326]=8;
-		tab[327]=-99;
-		tab[328]=105;
-		tab[329]=77;
-		tab[330]=-38;
-		tab[331]=-36;
-		tab[332]=0;
-		tab[333]=0;
-		tab[334]=0;
-		tab[335]=53;
-		tab[336]=1;
-		tab[337]=0;
-		tab[338]=0;
-		tab[339]=80;
-		tab[340]=75;
-		tab[341]=1;
-		tab[342]=2;
-		tab[343]=20;
-		tab[344]=0;
-		tab[345]=20;
-		tab[346]=0;
-		tab[347]=8;
-		tab[348]=0;
-		tab[349]=8;
-		tab[350]=0;
-		tab[351]=19;
-		tab[352]=87;
-		tab[353]=-95;
-		tab[354]=44;
-		tab[355]=0;
-		tab[356]=0;
-		tab[357]=0;
-		tab[358]=0;
-		tab[359]=2;
-		tab[360]=0;
-		tab[361]=0;
-		tab[362]=0;
-		tab[363]=0;
-		tab[364]=0;
-		tab[365]=0;
-		tab[366]=0;
-		tab[367]=9;
-		tab[368]=0;
-		tab[369]=0;
-		tab[370]=0;
-		tab[371]=0;
-		tab[372]=0;
-		tab[373]=0;
-		tab[374]=0;
-		tab[375]=0;
-		tab[376]=0;
-		tab[377]=0;
-		tab[378]=0;
-		tab[379]=0;
-		tab[380]=0;
-		tab[381]=0;
-		tab[382]=0;
-		tab[383]=0;
-		tab[384]=0;
-		tab[385]=112;
-		tab[386]=49;
-		tab[387]=47;
-		tab[388]=112;
-		tab[389]=50;
-		tab[390]=47;
-		tab[391]=112;
-		tab[392]=51;
-		tab[393]=47;
-		tab[394]=80;
-		tab[395]=75;
-		tab[396]=1;
-		tab[397]=2;
-		tab[398]=20;
-		tab[399]=0;
-		tab[400]=20;
-		tab[401]=0;
-		tab[402]=8;
-		tab[403]=0;
-		tab[404]=8;
-		tab[405]=0;
-		tab[406]=19;
-		tab[407]=87;
-		tab[408]=-95;
-		tab[409]=44;
-		tab[410]=-99;
-		tab[411]=105;
-		tab[412]=77;
-		tab[413]=-38;
-		tab[414]=-36;
-		tab[415]=0;
-		tab[416]=0;
-		tab[417]=0;
-		tab[418]=53;
-		tab[419]=1;
-		tab[420]=0;
-		tab[421]=0;
-		tab[422]=16;
-		tab[423]=0;
-		tab[424]=0;
-		tab[425]=0;
-		tab[426]=0;
-		tab[427]=0;
-		tab[428]=0;
-		tab[429]=0;
-		tab[430]=0;
-		tab[431]=0;
-		tab[432]=0;
-		tab[433]=0;
-		tab[434]=0;
-		tab[435]=0;
-		tab[436]=57;
-		tab[437]=0;
-		tab[438]=0;
-		tab[439]=0;
-		tab[440]=112;
-		tab[441]=49;
-		tab[442]=47;
-		tab[443]=112;
-		tab[444]=50;
-		tab[445]=47;
-		tab[446]=112;
-		tab[447]=51;
-		tab[448]=47;
-		tab[449]=88;
-		tab[450]=46;
-		tab[451]=99;
-		tab[452]=108;
-		tab[453]=97;
-		tab[454]=115;
-		tab[455]=115;
-		tab[456]=80;
-		tab[457]=75;
-		tab[458]=5;
-		tab[459]=6;
-		tab[460]=0;
-		tab[461]=0;
-		tab[462]=0;
-		tab[463]=0;
-		tab[464]=2;
-		tab[465]=0;
-		tab[466]=2;
-		tab[467]=0;
-		tab[468]=117;
-		tab[469]=0;
-		tab[470]=0;
-		tab[471]=0;
-		tab[472]=83;
-		tab[473]=1;
-		tab[474]=0;
-		tab[475]=0;
-		tab[476]=0;
-		tab[477]=0;
-		IJavaScriptProject javaProject = createJavaProject("P1", new String[] {"src"});
-		IFile jarFile = createFile("P1/lib.jar", tab);
-		javaProject.setRawIncludepath(new IIncludePathEntry[] {JavaScriptCore.newLibraryEntry(jarFile.getFullPath(), null, null, false)}, new NullProgressMonitor());
-		assertNotNull(javaProject.findType("p1.p2.p3.X"));
-	} catch(JavaScriptModelException e) {
-		e.printStackTrace();
-		assertTrue(false);
-	} catch (CoreException e) {
-		e.printStackTrace();
-		assertTrue(false);
-	} finally {
-		deleteProject("P1");
-	}
-}
-
-/**
- * Bug 36032: JavaProject.findType() fails to find second type in source file
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=36032"
- */
-public void testFindSecondaryType_Exist01() throws JavaScriptModelException, CoreException {
-	int length = SF_LENGTH - 1;
-	assertTypeFound(
-		"org.eclipse.wst.jsdt.core.test"+length+".Foo",
-		"Foo [in Foo.java [in org.eclipse.wst.jsdt.core.test"+length+" [in src"+length+" [in TestProject]]]]"
-	);
-}
-public void testFindSecondaryType_Exist02() throws JavaScriptModelException, CoreException {
-	int length = SF_LENGTH - 1;
-	assertTypeFound(
-		"org.eclipse.wst.jsdt.core.test"+length+".Secondary",
-		"Secondary [in Foo.java [in org.eclipse.wst.jsdt.core.test"+length+" [in src"+length+" [in TestProject]]]]"
-	);
-}
-public void testFindSecondaryType_Exist03() throws JavaScriptModelException, CoreException {
-	assertTypeFound(
-		"org.eclipse.wst.jsdt.core.test0.Foo.InFoo",
-		"InFoo [in Foo [in Foo.java [in org.eclipse.wst.jsdt.core.test0 [in src0 [in TestProject]]]]]"
-	);
-}
-public void testFindSecondaryType_Exist04() throws JavaScriptModelException, CoreException {
-	assertTypeFound(
-		"org.eclipse.wst.jsdt.core.test0.Secondary.InSecondary",
-		"InSecondary [in Secondary [in Foo.java [in org.eclipse.wst.jsdt.core.test0 [in src0 [in TestProject]]]]]"
-	);
-}
-public void testFindSecondaryType_Exist05() throws JavaScriptModelException, CoreException {
-	assertTypeFound(
-		"Foo",
-		"Foo [in Foo.java [in <default> [in src1 [in TestProject]]]]"
-	);
-}
-public void testFindSecondaryType_Exist06() throws JavaScriptModelException, CoreException {
-	assertTypeFound(
-		"Secondary",
-		"Secondary [in Foo.java [in <default> [in src1 [in TestProject]]]]"
-	);
-}
-// duplicate bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=72179
-public void testFindSecondaryType_Bug72179() throws JavaScriptModelException, CoreException {
-	try {
-		IJavaScriptProject javaProject = createJavaProject("P", new String[] {""});
-		createFolder("/P/p1");
-		createFile(
-			"/P/p1/jc.js", 
-			"package p1;\n" +
-			"class jc008{}\n" +
-			"class jc009{}\n" +
-			"class jc010 extends jc009 {\n" +
-			"	jc008 a;\n" +
-			"}\n"
-		);
-		IType type = javaProject.findType("p1", "jc008", new NullProgressMonitor());
-		assertTrue("type 'jc008' should exist!", type != null && type.exists());
-		assertEquals("Expected type 'jc008' NOT found!",
-			"class jc008 [in jc.java [in p1 [in <project root> [in P]]]]",
-			type.toString()
-		);
-		type = javaProject.findType("p1", "jc009", new NullProgressMonitor());
-		assertTrue("type 'jc009' should exist!", type != null && type.exists());
-		assertEquals("Expected type 'jc009' NOT found!",
-			"class jc009 [in jc.java [in p1 [in <project root> [in P]]]]",
-			type.toString()
-		);
-		type = javaProject.findType("p1", "jc010", new NullProgressMonitor());
-		assertTrue("type 'jc010' should exist!", type != null && type.exists());
-		assertEquals("Expected type 'jc010' NOT found!",
-			"class jc010 [in jc.java [in p1 [in <project root> [in P]]]]\n" +
-			"  jc008 a",
-			type.toString()
-		);
-	} finally {
-		deleteProject("P");
-	}
-}
-public void testFindSecondaryType_NotFound01() throws JavaScriptModelException, CoreException {
-	assertTypeUnknown("test.Foo");
-}
-public void testFindSecondaryType_NotFound02() throws JavaScriptModelException, CoreException {
-	assertTypeUnknown("InFoo");
-}
-public void testFindSecondaryType_NotFound03() throws JavaScriptModelException, CoreException {
-	assertTypeUnknown("InSecondary");
-}
-public void testFindSecondaryType_NotFound04() throws JavaScriptModelException, CoreException {
-	assertTypeUnknown("Foo.inFoo");
-}
-public void testFindSecondaryType_NotFound05() throws JavaScriptModelException, CoreException {
-	assertTypeUnknown("Secondary.inBar");
-}
-public void testFindSecondaryType_Unknown01() throws JavaScriptModelException, CoreException {
-	assertTypeUnknown("Unknown");
-}
-public void testFindSecondaryType_Unknown02() throws JavaScriptModelException, CoreException {
-	assertTypeUnknown("Foo.Unknown");
-}
-public void testFindSecondaryType_Unknown03() throws JavaScriptModelException, CoreException {
-	assertTypeUnknown("org.eclipse.wst.jsdt.core.test.Unknown");
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClasspathInitializerTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClasspathInitializerTests.java
deleted file mode 100644
index f9fe958..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClasspathInitializerTests.java
+++ /dev/null
@@ -1,1306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.JavaModelStatus;
-import org.eclipse.wst.jsdt.internal.core.UserLibraryJsGlobalScopeContainer;
-import org.eclipse.wst.jsdt.internal.core.UserLibraryManager;
-
-import junit.framework.Test;
-
-public class ClasspathInitializerTests extends ModifyingResourceTests {
-	
-public static class DefaultVariableInitializer implements VariablesInitializer.ITestInitializer {
-	Map variableValues;
-	
-	/*
-	 * values is [<var name>, <var value>]*
-	 */
-	public DefaultVariableInitializer(String[] values) {
-		variableValues = new HashMap();
-		for (int i = 0; i < values.length; i+=2) {
-			variableValues.put(values[i], new Path(values[i+1]));
-		}
-	}
-	
-	public void initialize(String variable) throws JavaScriptModelException {
-		if (variableValues == null) return;
-		JavaScriptCore.setIncludepathVariable(
-			variable, 
-			(IPath)variableValues.get(variable), 
-			null);
-	}
-}
-
-public static class DefaultContainerInitializer implements ContainerInitializer.ITestInitializer {
-	
-	public static class DefaultContainer implements IJsGlobalScopeContainer {
-		char[][] libPaths;
-		public DefaultContainer(char[][] libPaths) {
-			this.libPaths = libPaths;
-		}
-		/**
-		 * @deprecated Use {@link #getIncludepathEntries()} instead
-		 */
-		public IIncludePathEntry[] getClasspathEntries() {
-			return getIncludepathEntries();
-		}
-		public IIncludePathEntry[] getIncludepathEntries() {
-			int length = this.libPaths.length;
-			IIncludePathEntry[] entries = new IIncludePathEntry[length];
-			for (int j = 0; j < length; j++) {
-			    IPath path = new Path(new String(this.libPaths[j]));
-			    if (path.segmentCount() == 1) {
-			        entries[j] = JavaScriptCore.newProjectEntry(path);
-			    } else {
-					entries[j] = JavaScriptCore.newLibraryEntry(path, null, null);
-			    }
-			}
-			return entries;
-		}
-		public String getDescription() {
-			return "Test container";
-		}
-		public int getKind() {
-			return IJsGlobalScopeContainer.K_APPLICATION;
-		}
-		public IPath getPath() {
-			return new Path("org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER");
-		}
-		/* (non-Javadoc)
-		 * @see org.eclipse.wst.jsdt.core.IJsGlobalScopeContainer#resolvedLibraryImport(java.lang.String)
-		 */
-		public String[] resolvedLibraryImport(String a) {
-			return new String[] {a};
-		}
-	}
-	
-	Map containerValues;
-	CoreException exception;
-	
-	/*
-	 * values is [<project name>, <lib path>[,<lib path>]* ]*
-	 */
-	public DefaultContainerInitializer(String[] values) {
-		containerValues = new HashMap();
-		for (int i = 0; i < values.length; i+=2) {
-			final String projectName = values[i];
-			final char[][] libPaths = CharOperation.splitOn(',', values[i+1].toCharArray());
-			containerValues.put(
-				projectName, 
-				newContainer(libPaths)
-			);
-		}
-	}
-	protected DefaultContainer newContainer(final char[][] libPaths) {
-		return new DefaultContainer(libPaths);
-	}
-	public boolean allowFailureContainer() {
-		return true;
-	}
-	public void initialize(IPath containerPath, IJavaScriptProject project) throws CoreException {
-		if (containerValues == null) return;
-		try {
-			JavaScriptCore.setJsGlobalScopeContainer(
-				containerPath, 
-				new IJavaScriptProject[] {project},
-				new IJsGlobalScopeContainer[] {(IJsGlobalScopeContainer)containerValues.get(project.getElementName())}, 
-				null);
-		} catch (CoreException e) {
-			this.exception = e;
-			throw e;
-		}
-	}
-}
-// Simple container initializer, which keeps setting container to null
-// (30920 - stackoverflow when setting container to null)
-public class NullContainerInitializer implements ContainerInitializer.ITestInitializer {
-	public boolean hasRun = false;
-	public boolean allowFailureContainer() {
-		return false; // allow the initializer to run again
-	}
-	public void initialize(IPath containerPath, IJavaScriptProject project) throws CoreException {
-		hasRun = true;
-		JavaScriptCore.setJsGlobalScopeContainer(
-			containerPath, 
-			new IJavaScriptProject[] {project}, 
-			new IJsGlobalScopeContainer[] { null }, 
-			null);
-	}
-}
-
-public ClasspathInitializerTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildModelTestSuite(ClasspathInitializerTests.class);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-	// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//		TESTS_NAMES = new String[] { "testContainerInitializer12" };
-	// Numbers of tests to run: "test<number>" will be run for each number of this array
-//		TESTS_NUMBERS = new int[] { 2, 12 };
-	// Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
-//		TESTS_RANGE = new int[] { 16, -1 };
-}
-protected void tearDown() throws Exception {
-	// Cleanup caches
-	JavaModelManager manager = JavaModelManager.getJavaModelManager();
-	manager.containers = new HashMap(5);
-	manager.variables = new HashMap(5);
-
-	super.tearDown();
-}
-public void testContainerInitializer01() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", "/P1/lib.jar"}));
-		IJavaScriptProject p2 = createJavaProject(
-				"P2", 
-				new String[] {}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		IPackageFragmentRoot root = p2.getPackageFragmentRoot(getFile("/P1/lib.jar"));
-		assertTrue("/P1/lib.jar should exist", root.exists());
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-public void testContainerInitializer02() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", "/P1/lib.jar"}));
-		IJavaScriptProject p2 = createJavaProject(
-				"P2", 
-				new String[] {}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-				
-		// simulate state on startup
-		simulateExitRestart();
-		
-		startDeltas();
-		p2.getResolvedIncludepath(true);
-		
-		assertDeltas(
-			"Unexpected delta on startup", 
-			""
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-public void testContainerInitializer03() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", "/P1/lib.jar"}));
-		createJavaProject(
-				"P2", 
-				new String[] {}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-				
-		// change value of TEST_CONTAINER
-		createFile("/P1/lib2.jar", "");
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", "/P1/lib2.jar"}));
-
-		// simulate state on startup
-		simulateExitRestart();
-		
-		startDeltas();
-		getJavaProject("P2").getResolvedIncludepath(true);
-		
-		assertDeltas(
-			"Unexpected delta on startup", 
-			"P2[*]: {CHILDREN}\n" + 
-			"	/P1/lib.jar[*]: {REMOVED FROM CLASSPATH}\n" + 
-			"	/P1/lib2.jar[*]: {ADDED TO CLASSPATH}"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/* Ensure that initializer is not callled when resource tree is locked.
- * (regression test for bug 29585 Core Exception as resource tree is locked initializing classpath container)
- */
-public void testContainerInitializer04() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		DefaultContainerInitializer initializer = new DefaultContainerInitializer(new String[] {"P2", "/P1/lib.jar"});
-		ContainerInitializer.setInitializer(initializer);
-		createJavaProject(
-				"P2", 
-				new String[] {""}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-				
-		// simulate state on startup
-		simulateExitRestart();
-		
-		startDeltas();
-		createFile("/P2/X.js", "public class X {}");
-		
-		assertEquals("Should not get exception", null, initializer.exception);
-		
-		assertDeltas(
-			"Unexpected delta on startup", 
-			"P2[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[+]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/* 
- * 30920 - Stack overflow when container resolved to null
- */
-public void testContainerInitializer05() throws CoreException {
-	try {
-		NullContainerInitializer nullInitializer = new NullContainerInitializer();
-		ContainerInitializer.setInitializer(nullInitializer);
-		createJavaProject(
-				"P1", 
-				new String[] {""}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-				
-		// simulate state on startup
-		simulateExitRestart();
-		
-		startDeltas();
-
-		// will trigger classpath resolution (with null container value)
-		createFile("/P1/X.js", "public class X {}");
-		assertDeltas(
-			"Unexpected delta on startup", 
-			"P1[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[+]: {}"
-		);
-		assertTrue("initializer did not run", nullInitializer.hasRun);
-		
-		// next cp resolution request will rerun the initializer
-		waitForAutoBuild();
-		nullInitializer.hasRun = false; // reset		
-		getJavaProject("P1").getResolvedIncludepath(true);
-		assertTrue("initializer did not run", nullInitializer.hasRun); // initializer should have run again (since keep setting to null)
-
-		// assigning new (non-null) value to container
-		waitForAutoBuild();
-		createFile("/P1/lib.jar", "");
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P1", "/P1/lib.jar"}));
-		clearDeltas();
-		getJavaProject("P1").getResolvedIncludepath(true);
-		assertDeltas(
-			"Unexpected delta after setting container", 
-			"P1[*]: {CHILDREN}\n" + 
-			"	lib.jar[*]: {ADDED TO CLASSPATH}"
-		);
-
-	} catch (StackOverflowError e) {
-		e.printStackTrace();
-		assertTrue("stack overflow assigning container", false);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-/*
- * Ensures that running the initializer during a reconcile operation just after workspace startup
- * doesn't throw a NPE
- * (regression test for bug 48818 NPE in delta processor)
-  */
-public void testContainerInitializer06() throws CoreException {
-    IJavaScriptUnit workingCopy = null;
-	try {
-		createProject("P1");
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", ""}));
-		createJavaProject(
-				"P2", 
-				new String[] {"src"}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		createFile(
-			"/P2/src/X,java",
-			"public class X {\n" +
-			"}"
-		);
-				
-		// change value of TEST_CONTAINER
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", "/P1"}));
-
-		// simulate state on startup
-		simulateExitRestart();
-		
-		startDeltas();
-		workingCopy = getCompilationUnit("/P2/src/X.js");
-		workingCopy.becomeWorkingCopy(null);
-		
-		assertDeltas(
-			"Unexpected delta on startup", 
-			"P2[*]: {CHILDREN}\n" + 
-			"	src[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			[Working copy] X.java[+]: {PRIMARY WORKING COPY}"
-		);
-	} finally {
-		stopDeltas();
-		if (workingCopy != null) workingCopy.discardWorkingCopy();
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/*
- * Ensure that an OperationCanceledException goes through
- * (regression test for bug 59363 Should surface cancellation exceptions)
- */
-public void testContainerInitializer07() throws CoreException {
-	try {
-		boolean gotException = false;
-		try {
-			ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P1", "/P1/lib.jar"}) {
-				public void initialize(IPath containerPath, IJavaScriptProject project) throws CoreException {
-					throw new OperationCanceledException("test");
-				}});
-			IJavaScriptProject p1 = createJavaProject(
-					"P1", 
-					new String[] {}, 
-					new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-			p1.getResolvedIncludepath(true);
-		} catch (OperationCanceledException e) {
-			gotException = true;
-		}
-		assertTrue("Should get an OperationCanceledException", gotException);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-/*
- * Ensure that the stack doesn't blow up if initializer is missbehaving
- * (regression test for bug 61052 Flatten cp container initialization)
- */
-public void testContainerInitializer08() throws CoreException {
-	final int projectLength = 10;
-	final String[] projects = new String[projectLength];
-	for (int i = 0; i < projectLength; i++) {
-		projects[i] = "P" + i;
-	}
-	try {
-		String[] projectRefs = new String[(projectLength-1) * 2];
-		for (int i = 0; i < projectLength-1; i++) {
-			projectRefs[i*2] = "P" + i;
-			projectRefs[(i*2)+1] = "/P" + i + "/test.jar";
-		}
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(projectRefs) {
-			void foo(int n) {
-				if (n > 0) {
-					foo(n-1);
-					return;
-				}
-				IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-				for (int i = 0; i < projectLength-1; i++) {
-					try {
-						JavaScriptCore.create(root.getProject(projects[i])).getResolvedIncludepath(true);
-					} catch (JavaScriptModelException e) {
-						// project doesn't exist: ignore
-					}
-				}
-			}
-			public void initialize(IPath containerPath, IJavaScriptProject project) throws CoreException {
-				foo(500);
-				super.initialize(containerPath, project);
-			}
-		});
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				for (int i = 0; i < projectLength; i++) {
-					createProject(projects[i]);
-					editFile(
-						"/" + projects[i] + "/.project",
-						"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-						"<projectDescription>\n" + 
-						"	<name>" + projects[i] + "</name>\n" + 
-						"	<comment></comment>\n" + 
-						"	<projects>\n" + 
-						(i == 0 ? "" : "<project>" + projects[i-1] + "</project>\n") +
-						"	</projects>\n" + 
-						"	<buildSpec>\n" + 
-						"		<buildCommand>\n" + 
-						"			<name>org.eclipse.wst.jsdt.core.javabuilder</name>\n" + 
-						"			<arguments>\n" + 
-						"			</arguments>\n" + 
-						"		</buildCommand>\n" + 
-						"	</buildSpec>\n" + 
-						"	<natures>\n" + 
-						"		<nature>org.eclipse.wst.jsdt.core.javanature</nature>\n" + 
-						"	</natures>\n" + 
-						"</projectDescription>"
-					);
-					createFile(
-						"/" + projects[i] + "/.classpath",
-						"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-						"<classpath>\n" +
-						(i == 0 ? "" : "<classpathentry kind=\"src\" path=\"/" + projects[i-1] + "\"/>\n") +					 
-						"	<classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER\"/>\n" +
-						"	<classpathentry kind=\"output\" path=\"\"/>\n" +
-						"</classpath>"
-					);
-				}
-			}
-		}, null);
-		getJavaProject("P0").getResolvedIncludepath(true);
-	} finally {
-		stopDeltas();
-		deleteProjects(projects);
-	}
-}
-/*
- * Ensure that a StackOverFlowError is not thrown if the initializer asks for the resolved classpath
- * that is being resolved.
- * (regression test for bug 61040 Should add protect for reentrance to #getResolvedClasspath)
- */
-public void testContainerInitializer09() throws CoreException {
-	try {
-		ClasspathInitializerTests.DefaultContainerInitializer initializer = new ClasspathInitializerTests.DefaultContainerInitializer(new String[] {"P1", "/P1/lib.jar"}) {
-			protected DefaultContainer newContainer(char[][] libPaths) {
-				return new DefaultContainer(libPaths) {
-					/**
-					 * @deprecated Use {@link #getIncludepathEntries()} instead
-					 */
-					public IIncludePathEntry[] getClasspathEntries() {
-						return getIncludepathEntries();
-					}
-
-					public IIncludePathEntry[] getIncludepathEntries() {
-						try {
-							getJavaProject("P1").getResolvedIncludepath(true);
-						} catch (JavaScriptModelException e) {
-							// project doesn't exist: ignore
-						}
-						return super.getIncludepathEntries();
-					}
-				};
-			}
-		};
-		ContainerInitializer.setInitializer(initializer);
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				createProject("P1");
-				editFile(
-					"/P1/.project",
-					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-					"<projectDescription>\n" + 
-					"	<name>P1</name>\n" + 
-					"	<comment></comment>\n" + 
-					"	<projects>\n" + 
-					"	</projects>\n" + 
-					"	<buildSpec>\n" + 
-					"		<buildCommand>\n" + 
-					"			<name>org.eclipse.wst.jsdt.core.javabuilder</name>\n" + 
-					"			<arguments>\n" + 
-					"			</arguments>\n" + 
-					"		</buildCommand>\n" + 
-					"	</buildSpec>\n" + 
-					"	<natures>\n" + 
-					"		<nature>org.eclipse.wst.jsdt.core.javanature</nature>\n" + 
-					"	</natures>\n" + 
-					"</projectDescription>"
-				);
-				createFile(
-					"/P1/.classpath",
-					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-					"<classpath>\n" +
-					"	<classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER\"/>\n" +
-					"	<classpathentry kind=\"output\" path=\"\"/>\n" +
-					"</classpath>"
-				);
-			}
-		}, null);
-		getJavaProject("P1").getResolvedIncludepath(true);
-	} finally {
-		stopDeltas();
-		ContainerInitializer.setInitializer(null);
-		deleteProject("P1");
-	}
-}
-/*
- * Ensure that creating a Java project initializes a container and refreshes the external jar at the same time
- * without throwing a ConcurrentModificationException
- * (regression test for bug 63534 ConcurrentModificationException after "catching up")
- */
-public void testContainerInitializer10() throws CoreException {
-	class LogListener implements ILogListener {
-    	IStatus log;
-        public void logging(IStatus status, String plugin) {
-            this.log = status;
-        }
-	}
-	LogListener listener = new LogListener();
-	try {
-		Platform.addLogListener(listener);
-		final IJavaScriptProject p1 = createJavaProject("P1");
-		final IJavaScriptProject p2 = createJavaProject("P2");
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P3", "/P1"}) {
-	        public void initialize(IPath containerPath, IJavaScriptProject project) throws CoreException {
-	            super.initialize(containerPath, project);
-	            getJavaModel().refreshExternalArchives(new IJavaScriptElement[] {p1}, null);
-	        }
-		});
-		getWorkspace().run(new IWorkspaceRunnable() {
-            public void run(IProgressMonitor monitor) throws CoreException {
-                p2.setRawIncludepath(new IIncludePathEntry[] {JavaScriptCore.newSourceEntry(new Path("/P2/src"))}, null);
-				createProject("P3");
-                editFile(
-                	"/P3/.project",
-                	"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-                	"<projectDescription>\n" + 
-                	"	<name>P3</name>\n" + 
-                	"	<comment></comment>\n" + 
-                	"	<projects>\n" + 
-                	"	</projects>\n" + 
-                	"	<buildSpec>\n" + 
-                	"		<buildCommand>\n" + 
-                	"			<name>org.eclipse.wst.jsdt.core.javabuilder</name>\n" + 
-                	"			<arguments>\n" + 
-                	"			</arguments>\n" + 
-                	"		</buildCommand>\n" + 
-                	"	</buildSpec>\n" + 
-                	"	<natures>\n" + 
-                	"		<nature>org.eclipse.wst.jsdt.core.javanature</nature>\n" + 
-                	"	</natures>\n" + 
-                	"</projectDescription>\n"
-                );
-                createFile(
-                	"/P3/.classpath",
-                	"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-                	"<classpath>\n" + 
-                	"	<classpathentry kind=\"src\" path=\"\"/>\n" + 
-                	"	<classpathentry kind=\"var\" path=\"JCL_LIB\"/>\n" + 
-                	"	<classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER\"/>\n" + 
-                	"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-                	"</classpath>"
-                );
-             }
-        }, null);
-		
-		assertEquals("Should not get any exception in log", null, listener.log);
-	} finally {
-	    Platform.removeLogListener(listener);
-		deleteProject("P1");
-		deleteProject("P2");
-		deleteProject("P3");
-	}
-}
-/*
- * Ensure that a classpath initializer is not run on shutdown
- * (regression test for bug 93941 Classpath initialization on shutdown)
- */
-public void testContainerInitializer11() throws CoreException {
-	boolean hasExited = false;
-	try {
-		ContainerInitializer.setInitializer(null);
-		createJavaProject(
-			"P", 
-			new String[] {}, 
-			new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		simulateExitRestart();
-		ClasspathInitializerTests.DefaultContainerInitializer initializer = new ClasspathInitializerTests.DefaultContainerInitializer(new String[] {}) {
-			public void initialize(IPath containerPath,IJavaScriptProject project) throws CoreException {
-				assertTrue("Should not initialize container on shutdown", false);
-			}
-		};
-		ContainerInitializer.setInitializer(initializer);
-		simulateExit();
-		hasExited = true;
-	} finally {
-		ContainerInitializer.setInitializer(null);
-		if (hasExited)
-			simulateRestart();
-		deleteProject("P");
-	}
-}
-
-/*
- * Ensure that the initializer is removed from the cache when the project is deleted
- * (regression test for bug 116072 cached classpath containers not removed when project deleted)
- */
-public void testContainerInitializer12() throws CoreException {
-	try {
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P1", "/P1/lib.jar"}));
-		IJavaScriptProject project =  createJavaProject(
-			"P1", 
-			new String[] {}, 
-			new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		createFile("/P1/lib.jar", "");
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(getFile("/P1/lib.jar"));
-		assertTrue("/P1/lib.jar should exist", root.exists());
-		deleteProject("P1");
-		
-		class Initializer extends DefaultContainerInitializer {
-			boolean initialized;
-			public Initializer(String[] args) {
-				super(args);
-			}
-			public void initialize(IPath containerPath, IJavaScriptProject p) throws CoreException {
-				super.initialize(containerPath, p);
-				this.initialized = true;
-			}
-		}
-		Initializer initializer = new Initializer(new String[] {"P1", "/P1/lib.jar"});
-		ContainerInitializer.setInitializer(initializer);
-		createJavaProject(
-			"P1", 
-			new String[] {}, 
-			new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		createFile("/P1/lib.jar", "");
-		assertTrue("/P1/lib.jar should exist", root.exists());
-		assertTrue("Should have been initialized", initializer.initialized);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-
-/* 
- * Ensures that no resource deta is reported if a container that was not initialized is initialized with null
- * (regression test for bug 149043 Unresolvable classpath container leads to lots of scheduled jobs)
- */
-public void testContainerInitializer13() throws CoreException {
-	IResourceChangeListener listener = new IResourceChangeListener() {
-		StringBuffer buffer = new StringBuffer();
-		public void resourceChanged(IResourceChangeEvent event) {
-			this.buffer.append(event.getDelta().findMember(new Path("/P1")));
-		}
-		public String toString() {
-			return this.buffer.toString();
-		}
-	};
-	try {
-		NullContainerInitializer nullInitializer = new NullContainerInitializer();
-		ContainerInitializer.setInitializer(nullInitializer);
-		IJavaScriptProject project = createJavaProject(
-				"P1", 
-				new String[] {}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-				
-		// simulate state on startup
-		simulateExitRestart();
-		
-		getWorkspace().addResourceChangeListener(listener, IResourceChangeEvent.POST_CHANGE);
-		
-		// force resolution of container
-		project.findPackageFragmentRoots(project.getRawIncludepath()[0]);
-
-		assertEquals(
-			"Unexpected resource delta on startup", 
-			"",
-			listener.toString()
-		);
-	} finally {
-		getWorkspace().removeResourceChangeListener(listener);
-		deleteProject("P1");
-	}
-}
-
-/*
- * Ensures that a misbehaving container (that initializes another project than the one asked for) doesn't cause
- * the container to be initialized again
- * (regression test for bug 160005 Add protection about misbehaving container initializer)
- */
-public void testContainerInitializer14() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		class Container extends DefaultContainerInitializer {
-			int initializeCount = 0;
-			Container(String[] values) {
-				super(values);
-			}
-			public void initialize(IPath containerPath, IJavaScriptProject project) 	throws CoreException {
-				this.initializeCount++;
-				super.initialize(containerPath, getJavaProject("P1"));
-			}
-		}
-		Container container = new Container(new String[] {"P2", "/P1/lib.jar"});
-		ContainerInitializer.setInitializer(container);
-		IJavaScriptProject p2 = createJavaProject(
-				"P2", 
-				new String[] {}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		p2.getResolvedIncludepath(true);
-		assertEquals("Unexpected number of initalizations", 1, container.initializeCount);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-/*
- * Ensures that if a container is misbehaving (it doesn't initialize a project when asked for),
- * then the resulting container's classpath is not null
- * (regression test for bug 161846 Expanding a java project with invalid classpath container entries in Project Explorer causes CPU to stay at 100%)
- */
-public void testContainerInitializer15() throws CoreException {
-	try {
-		class Container extends DefaultContainerInitializer {
-			Container(String[] values) {
-				super(values);
-			}
-			public void initialize(IPath containerPath, IJavaScriptProject project) 	throws CoreException {
-			}
-		}
-		Container container = new Container(new String[] {"P1", "/P1/lib.jar"});
-		ContainerInitializer.setInitializer(container);
-		IJavaScriptProject p1 = createJavaProject(
-				"P1", 
-				new String[] {}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		IJsGlobalScopeContainer JsGlobalScopeContainer = JavaScriptCore.getJsGlobalScopeContainer(new Path("org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"), p1);
-		assertClasspathEquals(JsGlobalScopeContainer.getIncludepathEntries(), "");
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-/*
- * Ensure that an initializer cannot return a project entry that points to the project of the container (cycle).
- */
-public void testContainerInitializer16() throws CoreException {
-	try {
-		ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P1", "/P1"}));
-		JavaScriptModelException exception = null;
-		try {
-			IJavaScriptProject p1 = createJavaProject(
-				"P1", 
-				new String[] {}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-			p1.getResolvedIncludepath(true);
-		} catch (JavaScriptModelException e) {
-			exception = e;
-		}
-		assertExceptionEquals(
-			"Unexpected expection", 
-			"Project cannot reference itself: P1", 
-			exception);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-public void testVariableInitializer01() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {"TEST_LIB", "/P1/lib.jar"}));
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {}, new String[] {"TEST_LIB"});
-		IPackageFragmentRoot root = p2.getPackageFragmentRoot(getFile("/P1/lib.jar"));
-		assertTrue("/P1/lib.jar should exist", root.exists());
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-		VariablesInitializer.reset();
-	}
-}
-public void testVariableInitializer02() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		createFile("/P1/src.zip", "");
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {
-			"TEST_LIB", "/P1/lib.jar",
-			"TEST_SRC", "/P1/src.zip",
-			"TEST_ROOT", "src",
-		}));
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {}, new String[] {"TEST_LIB,TEST_SRC,TEST_ROOT"});
-		IPackageFragmentRoot root = p2.getPackageFragmentRoot(getFile("/P1/lib.jar"));
-		assertEquals("Unexpected source attachment path", "/P1/src.zip", root.getSourceAttachmentPath().toString());
-		assertEquals("Unexpected source attachment root path", "src", root.getSourceAttachmentRootPath().toString());
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-		VariablesInitializer.reset();
-	}
-}
-public void testVariableInitializer03() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		createFile("/P1/src.zip", "");
-		String[] variableValues = new String[] {
-			"TEST_LIB", "/P1/lib.jar",
-			"TEST_SRC", "/P1/src.zip",
-			"TEST_ROOT", "src",
-		};
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(variableValues));
-		createJavaProject("P2", new String[] {}, new String[] {"TEST_LIB,TEST_SRC,TEST_ROOT"});
-
-		// simulate state on startup
-		simulateExitRestart();
-		
-		startDeltas();
-		//JavaModelManager.CP_RESOLVE_VERBOSE=true;		
-		getJavaProject("P2").getResolvedIncludepath(true);
-		
-		assertDeltas(
-			"Unexpected delta on startup", 
-			""
-		);
-	} finally {
-		//JavaModelManager.CP_RESOLVE_VERBOSE=false;		
-		stopDeltas();
-		deleteProject("P1");
-		deleteProject("P2");
-		VariablesInitializer.reset();
-	}
-}
-public void testVariableInitializer04() throws CoreException {
-	try {
-		final StringBuffer buffer = new StringBuffer();
-		VariablesInitializer.setInitializer(new VariablesInitializer.ITestInitializer() {
-			public void initialize(String variable) throws JavaScriptModelException {
-				buffer.append("Initializing " + variable + "\n");
-				IPath path = new Path(variable.toLowerCase());
-				buffer.append("Setting variable " + variable + " to " + path + "\n");
-				JavaScriptCore.setIncludepathVariable(variable, path, null);
-			}
-		});
-		createJavaProject("P", new String[] {}, new String[] {"TEST_LIB,TEST_SRC,TEST_ROOT"});
-		assertEquals(
-			"Initializing TEST_LIB\n" +
-			"Setting variable TEST_LIB to test_lib\n",
-			buffer.toString());
-	} finally {
-		deleteProject("P");
-		VariablesInitializer.reset();
-	}
-}
-public void testVariableInitializer05() throws CoreException {
-	try {
-		final StringBuffer buffer = new StringBuffer();
-		VariablesInitializer.setInitializer(new VariablesInitializer.ITestInitializer() {
-			public void initialize(String variable) throws JavaScriptModelException {
-				buffer.append("Initializing " + variable + "\n");
-				IPath path = new Path(variable.toLowerCase());
-				JavaScriptCore.getIncludepathVariable("TEST_SRC");
-				buffer.append("Setting variable " + variable + " to " + path + "\n");
-				JavaScriptCore.setIncludepathVariable(variable, path, null);
-			}
-		});
-		createJavaProject("P", new String[] {}, new String[] {"TEST_LIB,TEST_SRC,TEST_ROOT"});
-		assertEquals(
-			"Initializing TEST_LIB\n" +
-			"Initializing TEST_SRC\n" +
-			"Setting variable TEST_SRC to test_src\n" +
-			"Setting variable TEST_LIB to test_lib\n",
-			buffer.toString());
-	} finally {
-		deleteProject("P");
-		VariablesInitializer.reset();
-	}
-}
-/*
- * Ensures that if the initializer doesn't initialize a variable, it can be
- * initialized later on.
- */
-public void testVariableInitializer06() throws CoreException {
-	try {
-		final StringBuffer buffer = new StringBuffer();
-		VariablesInitializer.setInitializer(new VariablesInitializer.ITestInitializer() {
-			public void initialize(String variable) {
-				// do nothing
-				buffer.append("Ignoring request to initialize");
-			}
-		});
-		IPath path = JavaScriptCore.getIncludepathVariable("TEST_SRC");
-		assertEquals(
-			"Unexpected value of TEST_SRC after initializer was called",
-			null,
-			path);
-		IPath varValue = new Path("src.zip");
-		JavaScriptCore.setIncludepathVariable("TEST_SRC", varValue, null);
-		path = JavaScriptCore.getIncludepathVariable("TEST_SRC");
-		assertEquals(
-			"Unexpected value of TEST_SRC after setting it",
-			varValue,
-			path);
-	} finally {
-		VariablesInitializer.reset();
-	}
-}
-public void testVariableInitializer07() throws CoreException {
-	try {
-		createProject("P1");
-		createFile("/P1/lib.jar", "");
-		createFile("/P1/src.zip", "");
-		String[] variableValues = new String[] {
-			"TEST_LIB", "/P1/lib.jar",
-			"TEST_SRC", "/P1/src.zip",
-			"TEST_ROOT", "src",
-		};
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(variableValues));
-		createJavaProject("P2", new String[] {}, new String[] {"TEST_LIB,TEST_SRC,TEST_ROOT"});
-
-		// change value of TEST_LIB
-		createFile("/P1/lib2.jar", "");
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {
-			"TEST_LIB", "/P1/lib2.jar",
-			"TEST_SRC", "/P1/src.zip",
-			"TEST_ROOT", "src",
-		}));
-
-		// simulate state on startup
-		simulateExitRestart();
-		
-		startDeltas();
-		//JavaModelManager.CP_RESOLVE_VERBOSE=true;		
-		getJavaProject("P2").getResolvedIncludepath(true);
-		
-		assertDeltas(
-			"Unexpected delta on startup", 
-			"P2[*]: {CHILDREN}\n" + 
-			"	/P1/lib.jar[*]: {REMOVED FROM CLASSPATH}\n" + 
-			"	/P1/lib2.jar[*]: {ADDED TO CLASSPATH}"
-		);
-	} finally {
-		//JavaModelManager.CP_RESOLVE_VERBOSE=false;		
-		stopDeltas();
-		deleteProject("P1");
-		deleteProject("P2");
-		VariablesInitializer.reset();
-	}
-}
-/*
- * Ensure that an OperationCanceledException goes through
- * (regression test for bug 59363 Should surface cancellation exceptions)
- */
-
-public void testVariableInitializer08() throws CoreException {
-	try {
-		boolean gotException = false;
-		try {
-			VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {"TEST_LIB", "/P1/lib.jar"}) {
-				public void initialize(String variable) throws JavaScriptModelException {
-					throw new OperationCanceledException("test");
-				}
-			});
-			IJavaScriptProject p1 = createJavaProject("P1", new String[] {}, new String[] {"TEST_LIB"});
-			p1.getResolvedIncludepath(true);
-		} catch (OperationCanceledException e) {
-			gotException = true;
-		}
-		assertTrue("Should get an OperationCanceledException", gotException);
-	} finally {
-		deleteProject("P1");
-		VariablesInitializer.reset();
-	}
-}
-
-/*
- * Ensure that removing a classpath variable while initializing it doesn't throw a StackOverFlowError
- * (regression test for bug 112609 StackOverflow when initializing Java Core)
- */
-public void testVariableInitializer09() throws CoreException {
-	try {
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {"TEST_LIB", "/P1/lib.jar"}) {
-			public void initialize(String variable) throws JavaScriptModelException {
-				JavaScriptCore.removeIncludepathVariable("TEST_LIB", null);
-			}
-		});
-		IJavaScriptProject p1 = createJavaProject("P1", new String[] {}, new String[] {"TEST_LIB"});
-		IIncludePathEntry[] resolvedClasspath = p1.getResolvedIncludepath(true);
-		assertClasspathEquals(
-			resolvedClasspath, 
-			""
-		);
-	} finally {
-		deleteProject("P1");
-		VariablesInitializer.reset();
-	}
-}
-/*
- * Ensures that not initializing a classpath variable and asking for its value returns null
- * (regression test for bug 113110 TestFailures in DebugSuite)
- */
-public void testVariableInitializer10() throws CoreException {
-	try {
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {"TEST_LIB", "/P1/lib.jar"}) {
-			public void initialize(String variable) throws JavaScriptModelException {
-				// don't initialize
-			}
-		});
-		// force resolution
-		JavaScriptCore.getIncludepathVariable("TEST_LIB");
-		// second call should still be null
-		assertEquals("TEST_LIB should be null", null, JavaScriptCore.getIncludepathVariable("TEST_LIB"));
-	} finally {
-		deleteProject("P1");
-		VariablesInitializer.reset();
-	}
-}
-/**
- * Bug 125965: [prefs] "Export/Import preferences" should let user to choose wich preference to export/import
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=125965"
- */
-public void testVariableInitializer11() throws CoreException {
-	try {
-		// Create initializer
-		String varName = "TEST_LIB";
-		String initialValue = "/P1/lib.jar";
-		String newValue = "/tmp/file.jar";
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {varName, initialValue}));
-		assertEquals("JavaScriptCore classpath value should have been initialized", JavaScriptCore.getIncludepathVariable(varName).toString(), initialValue);
-		
-		// Modify preference
-		JavaModelManager manager = JavaModelManager.getJavaModelManager();
-		IEclipsePreferences preferences = manager.getInstancePreferences();
-		preferences.put(JavaModelManager.CP_VARIABLE_PREFERENCES_PREFIX+varName, newValue);
-	
-		// verify that JavaScriptCore preferences have been reset
-		assertEquals("JavaScriptCore classpath value should be unchanged", JavaScriptCore.getIncludepathVariable(varName).toString(), initialValue);
-		assertEquals("JavaScriptCore preferences value should be unchanged", preferences.get(varName, "X"), initialValue);
-	} finally {
-		VariablesInitializer.reset();
-	}
-}
-
-/**
- * @bug 138599: [model][classpath] Need a way to mark a classpath variable as deprecated
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=138599"
- */
-public void testVariableInitializerDeprecated() throws CoreException {
-	try {
-		// Create initializer
-		String varName = "TEST_DEPRECATED";
-		String filePath = "/P1/lib.jar";
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {varName, filePath}));
-		assertEquals("JavaScriptCore classpath value should have been initialized", JavaScriptCore.getIncludepathVariable(varName).toString(), filePath);
-		
-		// Verify that Classpath Variable is deprecated
-		assertEquals("JavaScriptCore classpath variable should be deprecated", "Test deprecated flag", JavaScriptCore.getIncludepathVariableDeprecationMessage(varName));
-
-		// Create project
-		IJavaScriptProject project = createJavaProject("P1");
-		createFile("/P1/lib.jar", "");
-		IIncludePathEntry variable = JavaScriptCore.newVariableEntry(new Path("TEST_DEPRECATED"), null, null);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspathEntry(project, variable, false);
-		assertStatus("Classpath variable 'TEST_DEPRECATED' in project P1 is deprecated: 'Test deprecated flag'", status);
-		assertFalse("Status should not be OK", status.isOK());
-		assertEquals("Status should have WARNING severity", IStatus.WARNING, status.getSeverity());
-		assertEquals("Status should have deprecated code", IJavaScriptModelStatusConstants.DEPRECATED_VARIABLE, status.getCode());
-	} finally {
-		VariablesInitializer.reset();
-		deleteProject("P1");
-	}
-}
-public void testVariableInitializerUnboundAndDeprecated() throws CoreException {
-	try {
-		// Create initializer
-		String varName = "TEST_DEPRECATED";
-		String filePath = "/P1/lib.jar";
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] {varName, filePath}));
-		assertEquals("JavaScriptCore classpath value should have been initialized", JavaScriptCore.getIncludepathVariable(varName).toString(), filePath);
-		
-		// Verify that Classpath Variable is deprecated
-		assertEquals("JavaScriptCore classpath variable should be deprecated", "Test deprecated flag", JavaScriptCore.getIncludepathVariableDeprecationMessage(varName));
-
-		// Create project
-		IJavaScriptProject project = createJavaProject("P1");
-		IIncludePathEntry variable = JavaScriptCore.newVariableEntry(new Path("TEST_DEPRECATED"), null, null);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspathEntry(project, variable, false);
-		assertStatus("Project P1 is missing required library: 'lib.jar'", status);
-		assertFalse("Status should not be OK", status.isOK());
-		assertEquals("Status should have WARNING severity", IStatus.ERROR, status.getSeverity());
-		assertEquals("Status should have deprecated code", IJavaScriptModelStatusConstants.INVALID_INCLUDEPATH, status.getCode());
-	} finally {
-		VariablesInitializer.reset();
-		deleteProject("P1");
-	}
-}
-
-/**
- * @bug 156226: [model][classpath] Allow classpath variable to be marked as non modifiable
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=156226"
- */
-public void testVariableInitializerReadOnly() throws CoreException {
-	try {
-		// Create initializer
-		String varName = "TEST_READ_ONLY";
-		String path = "/P1/lib.jar";
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] { varName, path }));
-		assertEquals("JavaScriptCore classpath value should have been initialized", JavaScriptCore.getIncludepathVariable(varName).toString(), path);
-
-		// verify that Classpath Variable is read-only
-		assertTrue("JavaScriptCore classpath variable should be read-only", JavaScriptCore.isIncludepathVariableReadOnly(varName));
-
-		// Create project
-		IJavaScriptProject project = createJavaProject("P1");
-		createFile("/P1/lib.jar", "");
-		IIncludePathEntry variable = JavaScriptCore.newVariableEntry(new Path("TEST_READ_ONLY"), null, null);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspathEntry(project, variable, false);
-		assertStatus("OK", status);
-		assertTrue("Status should be OK", status.isOK());
-		assertEquals("Status should be VERIFIED_OK", JavaModelStatus.VERIFIED_OK, status);
-	} finally {
-		VariablesInitializer.reset();
-		deleteProject("P1");
-	}
-}
-public void testVariableInitializerDeprecatedAndReadOnly() throws CoreException {
-	try {
-		// Create initializer
-		String varName = "TEST_DEPRECATED_READ_ONLY";
-		String path = "/P1/lib.jar";
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] { varName, path }));
-		assertEquals("JavaScriptCore classpath value should have been initialized", JavaScriptCore.getIncludepathVariable(varName).toString(), path);
-
-		// verify that Classpath Variable is read-only
-		assertEquals("JavaScriptCore classpath variable should be deprecated", "A deprecated and read-only initializer", JavaScriptCore.getIncludepathVariableDeprecationMessage(varName));
-		assertTrue("JavaScriptCore classpath variable should be read-only", JavaScriptCore.isIncludepathVariableReadOnly(varName));
-
-		// Create project
-		IJavaScriptProject project = createJavaProject("P1");
-		createFile("/P1/lib.jar", "");
-		IIncludePathEntry variable = JavaScriptCore.newVariableEntry(new Path("TEST_DEPRECATED_READ_ONLY"), null, null);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspathEntry(project, variable, false);
-		assertStatus("Classpath variable 'TEST_DEPRECATED_READ_ONLY' in project P1 is deprecated: 'A deprecated and read-only initializer'", status);
-		assertFalse("Status should not be OK", status.isOK());
-		assertEquals("Status should have WARNING severity", IStatus.WARNING, status.getSeverity());
-		assertEquals("Status should have deprecated code", IJavaScriptModelStatusConstants.DEPRECATED_VARIABLE, status.getCode());
-	} finally {
-		VariablesInitializer.reset();
-		deleteProject("P1");
-	}
-}
-
-/**
- * @bug 172207: [model] Marker for deprecated classpath variable should always have WARNING severity
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=172207"
- */
-public void testVariableInitializerBug172207() throws CoreException {
-	try {
-		// Create initializer
-		String varName = "TEST_DEPRECATED_READ_ONLY";
-		String path = "/P1/lib.jar";
-		VariablesInitializer.setInitializer(new DefaultVariableInitializer(new String[] { varName, path }));
-		assertEquals("JavaScriptCore classpath value should have been initialized", JavaScriptCore.getIncludepathVariable(varName).toString(), path);
-
-		// verify that Classpath Variable is read-only
-		assertEquals("JavaScriptCore classpath variable should be deprecated", "A deprecated and read-only initializer", JavaScriptCore.getIncludepathVariableDeprecationMessage(varName));
-		assertTrue("JavaScriptCore classpath variable should be read-only", JavaScriptCore.isIncludepathVariableReadOnly(varName));
-
-		// Create project
-		IJavaScriptProject project = createJavaProject("P1");
-		createFile("/P1/lib.jar", "");
-		IIncludePathEntry variable = JavaScriptCore.newVariableEntry(new Path("TEST_DEPRECATED_READ_ONLY"), null, null);
-		IIncludePathEntry[] entries = project.getRawIncludepath();
-		int length = entries.length;
-		System.arraycopy(entries, 0, entries = new IIncludePathEntry[length+1], 0, length);
-		entries[length] = variable;
-		project.setRawIncludepath(entries, null);
-
-		// verify markers
-		waitForAutoBuild();
-		IMarker[] markers = project.getProject().findMarkers(IJavaScriptModelMarker.BUILDPATH_PROBLEM_MARKER, false, IResource.DEPTH_ZERO);
-		sortMarkers(markers);
-		assertMarkers("Unexpected marker(s)",
-			"Classpath variable 'TEST_DEPRECATED_READ_ONLY' in project P1 is deprecated: 'A deprecated and read-only initializer'",
-			markers);
-		assertEquals("Marker on deprecated variable should be a WARNING", IMarker.SEVERITY_WARNING, markers[0].getAttribute(IMarker.SEVERITY, -1));
-	} finally {
-		VariablesInitializer.reset();
-		deleteProject("P1");
-	}
-}
-
-/**
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=61872"
- */
-public void testUserLibraryInitializer1() throws CoreException {
-	try {
-		// Create new user library "SWT"
-		JsGlobalScopeContainerInitializer initializer= JavaScriptCore.getJsGlobalScopeContainerInitializer(JavaScriptCore.USER_LIBRARY_CONTAINER_ID);
-		String libraryName = "SWT";
-		IPath containerPath = new Path(JavaScriptCore.USER_LIBRARY_CONTAINER_ID);
-		UserLibraryJsGlobalScopeContainer containerSuggestion = new UserLibraryJsGlobalScopeContainer(libraryName);
-		initializer.requestJsGlobalScopeContainerUpdate(containerPath.append(libraryName), null, containerSuggestion);
-
-		// Create java project
-		createJavaProject("p61872");
-		IFile jarFile = createFile("/p61872/swt.jar", "");
-		IFile srcFile = createFile("/p61872/swtsrc.zip", "");
-
-		// Modify user library
-		Preferences preferences = JavaScriptCore.getPlugin().getPluginPreferences();
-		String propertyName = UserLibraryManager.CP_USERLIBRARY_PREFERENCES_PREFIX+"SWT";
-		StringBuffer propertyValue = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<userlibrary systemlibrary=\"false\" version=\"1\">\r\n<archive");
-		String jarFullPath = getWorkspaceRoot().getLocation().append(jarFile.getFullPath()).toString();
-		propertyValue.append(" path=\""+jarFullPath);
-		propertyValue.append("\"/>\r\n</userlibrary>\r\n");
-		preferences.setValue(propertyName, propertyValue.toString());
-		JavaScriptCore.getPlugin().savePluginPreferences();
-
-		// Modify project classpath
-		editFile(
-			"/p61872/.classpath",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<classpath>\n" +
-			"	<classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.USER_LIBRARY/SWT\"/>\n" +
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" +
-			"</classpath>"
-		);
-
-		// Verify 
-		IIncludePathEntry[] entries = getJavaProject("p61872").getResolvedIncludepath(true);
-		assertEquals("Invalid entries number in resolved classpath for project p61872!", 1, entries.length);
-		assertEquals("Invalid path for project 61872 classpath entry!", jarFullPath.toLowerCase(), entries[0].getPath().toString().toLowerCase());
-		assertNull("Project 61872 classpath entry should not have any source attached!", entries[0].getSourceAttachmentPath());
-
-		// Modify user library
-		propertyValue = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<userlibrary systemlibrary=\"false\" version=\"1\">\r\n<archive");
-		String srcFullPath = getWorkspaceRoot().getLocation().append(srcFile.getFullPath()).toString();
-		propertyValue.append(" sourceattachment=\""+srcFullPath);
-		propertyValue.append("\" path=\""+jarFullPath);
-		propertyValue.append("\"/>\r\n</userlibrary>\r\n");
-		preferences.setValue(propertyName, propertyValue.toString());
-		JavaScriptCore.getPlugin().savePluginPreferences();
-
-		// Verify 
-		entries = getJavaProject("p61872").getResolvedIncludepath(true);
-		assertEquals("Invalid entries number in resolved classpath for project p61872!", 1, entries.length);
-		assertEquals("Invalid path for project 61872 classpath entry!", jarFullPath.toLowerCase(), entries[0].getPath().toString().toLowerCase());
-		assertEquals("Invalid source attachement path for project 61872 classpath entry!", srcFullPath.toLowerCase(), entries[0].getSourceAttachmentPath().toString().toLowerCase());
-	} finally {
-		deleteProject("p61872");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClasspathTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClasspathTests.java
deleted file mode 100644
index 7c936a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ClasspathTests.java
+++ /dev/null
@@ -1,3032 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Hashtable;
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.IAccessRule;
-import org.eclipse.wst.jsdt.core.IIncludePathAttribute;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.IJavaScriptElementDelta;
-import org.eclipse.wst.jsdt.core.IJavaScriptModelMarker;
-import org.eclipse.wst.jsdt.core.IJavaScriptModelStatus;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJsGlobalScopeContainer;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.JavaScriptConventions;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.core.ClasspathEntry;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.JavaProject;
-
-public class ClasspathTests extends ModifyingResourceTests {
-
-	public class TestContainer implements IJsGlobalScopeContainer {
-		IPath path;
-		IIncludePathEntry[] entries;
-		TestContainer(IPath path, IIncludePathEntry[] entries){
-			this.path = path;
-			this.entries = entries;
-		}
-		public IPath getPath() { return this.path; }
-		/**
-		 * @deprecated Use {@link #getIncludepathEntries()} instead
-		 */
-		public IIncludePathEntry[] getClasspathEntries() {
-			return getIncludepathEntries();
-		}
-		public IIncludePathEntry[] getIncludepathEntries() { return this.entries;	}
-		public String getDescription() { return this.path.toString(); 	}
-		public int getKind() { return 0; }
-		/* (non-Javadoc)
-		 * @see org.eclipse.wst.jsdt.core.IJsGlobalScopeContainer#resolvedLibraryImport(java.lang.String)
-		 */
-		public String[] resolvedLibraryImport(String a) {
-			return new String[] {a};
-		}
-	}
-
-public ClasspathTests(String name) {
-	super(name);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-	// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//	TESTS_PREFIX = "testClasspathDuplicateExtraAttribute";
-//	TESTS_NAMES = new String[] {"testClasspathValidation42"};
-//	TESTS_NUMBERS = new int[] { 23, 28, 38 };
-//	TESTS_RANGE = new int[] { 21, 38 };
-}
-public static Test suite() {
-	return buildModelTestSuite(ClasspathTests.class);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	setupExternalJCL("jclMin");
-}
-protected void assertCycleMarkers(IJavaScriptProject project, IJavaScriptProject[] p, int[] expectedCycleParticipants) throws CoreException {
-	waitForAutoBuild();
-	StringBuffer expected = new StringBuffer("{");
-	int expectedCount = 0;
-	StringBuffer computed = new StringBuffer("{");			
-	int computedCount = 0;
-	for (int j = 0; j < p.length; j++){
-		int markerCount = this.numberOfCycleMarkers(p[j]);
-		if (markerCount > 0){
-			if (computedCount++ > 0) computed.append(", ");
-			computed.append(p[j].getElementName());
-			//computed.append(" (" + markerCount + ")");
-		}
-		markerCount = expectedCycleParticipants[j];
-		if (markerCount > 0){
-			if (expectedCount++ > 0) expected.append(", ");
-			expected.append(p[j].getElementName());
-			//expected.append(" (" + markerCount + ")");
-		}
-	}
-	expected.append("}");
-	computed.append("}");
-	assertEquals("Invalid cycle detection after setting classpath for: "+project.getElementName(), expected.toString(), computed.toString());
-}
-private void assertEncodeDecodeEntry(String projectName, String expectedEncoded, IIncludePathEntry entry) {
-	IJavaScriptProject project = getJavaProject(projectName);
-	String encoded = project.encodeIncludepathEntry(entry);
-	assertSourceEquals(
-		"Unexpected encoded entry",
-		expectedEncoded,
-		encoded);
-	IIncludePathEntry decoded = project.decodeIncludepathEntry(encoded);
-	assertEquals(
-		"Unexpected decoded entry",
-		entry,
-		decoded);
-}
-protected File createFile(File parent, String name, String content) throws IOException {
-	File file = new File(parent, name);
-	FileOutputStream out = new FileOutputStream(file);
-	out.write(content.getBytes());
-	out.close();
-	/*
-	 * Need to change the time stamp to realize that the file has been modified
-	 */
-	file.setLastModified(System.currentTimeMillis() + 2000);
-	return file;
-}
-protected File createFolder(File parent, String name) {
-	File file = new File(parent, name);
-	file.mkdirs();
-	return file;
-}
-protected int numberOfCycleMarkers(IJavaScriptProject javaProject) throws CoreException {
-	IMarker[] markers = javaProject.getProject().findMarkers(IJavaScriptModelMarker.BUILDPATH_PROBLEM_MARKER, false, IResource.DEPTH_ZERO);
-	int result = 0;
-	for (int i = 0, length = markers.length; i < length; i++) {
-		IMarker marker = markers[i];
-		String cycleAttr = (String)marker.getAttribute(IJavaScriptModelMarker.CYCLE_DETECTED);
-		if (cycleAttr != null && cycleAttr.equals("true")){ //$NON-NLS-1$
-			result++;
-		}
-	}
-	return result;
-}
-
-/**
- * Add an entry to the classpath for a non-existent root. Then create
- * the root and ensure that it comes alive.
- */
-public void testAddRoot1() throws CoreException {
-	IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"});
-	IIncludePathEntry[] originalCP= project.getRawIncludepath();
-
-	try {
-		IIncludePathEntry newEntry= JavaScriptCore.newSourceEntry(project.getProject().getFullPath().append("extra"));
-
-		IIncludePathEntry[] newCP= new IIncludePathEntry[originalCP.length + 1];
-		System.arraycopy(originalCP, 0 , newCP, 0, originalCP.length);
-		newCP[originalCP.length]= newEntry;
-
-		project.setRawIncludepath(newCP, null);
-
-		// now create the actual resource for the root and populate it
-		project.getProject().getFolder("extra").create(false, true, null);
-
-		IPackageFragmentRoot newRoot= getPackageFragmentRoot("P", "extra");
-		assertTrue("New root should now be visible", newRoot != null);
-	} finally {
-		// cleanup  
-		this.deleteProject("P");
-	}
-}
-
-/*
- * Adds an entry to the classpath for a non-existent root. Then creates
- * the root and ensures that the marker is removed.
- * (regression test for bug 161581 Adding a missing folder doesn't remove classpath marker)
- */
-public void testAddRoot2() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {});
-		project.setRawIncludepath(createClasspath("P", new String[] {"/P/src", ""}), null);
-		waitForAutoBuild();
-
-		// now create the actual resource for the root
-		project.getProject().getFolder("src").create(false, true, null);
-		assertMarkers("Unexpected markers", "", project);
-	} finally {
-		// cleanup  
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Ensures that the reordering external resources in the classpath
- * generates the correct deltas.
- */
-public void testClasspathChangeExternalResources() throws CoreException {
-	try {
-		IJavaScriptProject proj = this.createJavaProject("P", new String[] {"src"});
-
-		IIncludePathEntry[] newEntries = new IIncludePathEntry[2];
-		newEntries[0] = JavaScriptCore.newLibraryEntry(getSystemJsPath(), null, null, false);
-		newEntries[1] = JavaScriptCore.newLibraryEntry(getExternalJCLSourcePath(), null, null, false);
-		setClasspath(proj, newEntries);
-		startDeltas();
-		IIncludePathEntry[] swappedEntries = new IIncludePathEntry[2];
-		swappedEntries[0] = newEntries[1];
-		swappedEntries[1] = newEntries[0];
-		setClasspath(proj, swappedEntries);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	"+  getSystemJsPathString() +"[*]: {REORDERED}\n" + 
-			"	"+  getExternalJCLSourcePathString() +"[*]: {REORDERED}\n" + 
-			"	ResourceDelta(/P/.settings)[*]"
-		);
-	} finally {
-		stopDeltas();
-		this.deleteProject("P");
-	}
-}
-
-/*
- * Test classpath corruption (23977)
- */
-public void testClasspathCorruption() throws CoreException {
-	try {
-		JavaProject p1 = (JavaProject)this.createJavaProject("P1", new String[]{""}, new String[]{}, new String[]{});
-		this.createJavaProject("P2", new String[]{""}, new String[]{}, new String[]{});
-		this.createFile("P2/foo.txt", "not a project");
-		String newCPContent = 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n"
-			+"<classpath>	\n"
-			+"	<classpathentry kind=\"src\" path=\"\"/>	\n"
-			+"	<classpathentry kind=\"src\" path=\"/P2/foo.txt\"/>	\n" // corruption here: target isn't a project
-			+"</classpath>	\n";
-
-		IFile fileRsc = p1.getProject().getFile(JavaProject.SHARED_PROPERTIES_DIRECTORY + "/" + JavaProject.CLASSPATH_FILENAME);
-		fileRsc.setContents(new ByteArrayInputStream(newCPContent.getBytes()), true, false, null);
-
-		p1.close();
-		JavaModelManager.PerProjectInfo perProjectInfo = JavaModelManager.getJavaModelManager().getPerProjectInfo(p1.getProject(), true/*create if missing*/);
-		perProjectInfo.setClasspath(null, null, null, null, null, null, null);
-
-		// shouldn't fail 
-		p1.getExpandedClasspath();
-
-		// if could reach that far, then all is fine
-		
-	} catch(ClassCastException e){
-		assertTrue("internal ClassCastException on corrupted classpath file", false);
-	} finally {
-		// cleanup  
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-
-/*
- * Test classpath read for non-javascript project or javascript project not opened yet (40658)
- */
-public void testClasspathFileRead() throws CoreException {
-	try {
-		final IProject proj = this.createProject("P1");
-		String newCPContent = 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n"
-			+"<classpath>	\n"
-			+"	<classpathentry kind=\"src\" path=\"src\"/>	\n"
-			+"</classpath>	\n";
-
-		this.createFolder("/P1/.settings/");
-		this.createFile("/P1/.settings/"+JavaProject.CLASSPATH_FILENAME, newCPContent);
-		final IJavaScriptProject jproj = JavaScriptCore.create(proj);
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			workspace.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor)	{
-
-					IIncludePathEntry[] entries = jproj.readRawIncludepath(); // force to read classpath
-					IIncludePathEntry entry = entries[0];
-					assertEquals("first classpath entry should have been read", "/P1/src", entry.getPath().toString());
-				}
-			}, null);	
-	} finally {
-		// cleanup  
-		this.deleteProject("P1");
-	}
-}
-
-/*
- * Test classpath forced reload (20931) and new way to read classpath file (40658)
- */
-public void testClasspathForceReload() throws CoreException {
-	try {
-		final JavaProject p1 = (JavaProject)this.createJavaProject("P1", new String[]{""}, new String[]{}, new String[]{});
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			workspace.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor)	throws CoreException {
-
-					p1.getRawIncludepath(); // force to read classpath
-					createFolder("P1/src");
-					String newCPContent = 
-						"<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n"
-						+"<classpath>	\n"
-						+"	<classpathentry kind=\"src\" path=\"src\"/>	\n"
-						+"</classpath>	\n";
-
-					IFile fileRsc = p1.getProject().getFile(JavaProject.SHARED_PROPERTIES_DIRECTORY + "/" + JavaProject.CLASSPATH_FILENAME);
-					fileRsc.setContents(new ByteArrayInputStream(newCPContent.getBytes()), true, false, null);
-					
-					p1.close();
-					IIncludePathEntry[] entries = p1.readRawIncludepath(); // force to read classpath
-					assertEquals("source location should not have been refreshed", "/P1", entries[0].getPath().toString());
-				}
-			}, null);	
-	} finally {
-		// cleanup  
-		this.deleteProject("P1");
-	}
-}
-
-/**
- * Ensures that the setting the classpath with a library entry
- * changes the kind of the root from K_SOURCE to K_BINARY.
- */
-public void testClasspathCreateLibraryEntry() throws CoreException {
-	try {
-		IJavaScriptProject proj = this.createJavaProject("P", new String[] {"src"});
-		this.createFile("P/src/X.js", "function X() {}");
-	
-		IFolder rootFolder = proj.getProject().getFolder(new Path("src"));
-		IPackageFragmentRoot root = proj.getPackageFragmentRoot(rootFolder);
-		
-		assertEquals(
-			"Unexpected root kind 1", 
-			IPackageFragmentRoot.K_SOURCE,
-			root.getKind());
-		IPackageFragment pkg = root.getPackageFragment("");
-		assertEquals(
-			"Unexpected numbers of compilation units",
-			1,
-			pkg.getJavaScriptUnits().length);
-			
-		this.setClasspath(
-			proj, 
-			new IIncludePathEntry[] {
-				JavaScriptCore.newLibraryEntry(rootFolder.getFullPath(), null, null, false)
-			});
-		assertEquals(
-			"Unexpected root kind 2", 
-			IPackageFragmentRoot.K_BINARY,
-			root.getKind());
-		assertEquals(
-			"Unexpected numbers of compilation units",
-			0,
-			pkg.getJavaScriptUnits().length);
-
-		//ensure that the new kind has been persisted in the classpath file
-		proj.close();
-		assertEquals(
-			"Unexpected root kind 3", 
-			IPackageFragmentRoot.K_BINARY,
-			root.getKind());
-
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Tests the cross project classpath setting
- */
-public void testClasspathCrossProject() throws CoreException {
-	IJavaScriptProject project = this.createJavaProject("P1", new String[] {""});
-	this.createJavaProject("P2", new String[] {});
-	try {
-		startDeltas();
-		IPackageFragmentRoot oldRoot= getPackageFragmentRoot("P1", "");
- 		IIncludePathEntry projectEntry= JavaScriptCore.newProjectEntry(new Path("/P2"), false);
-		IIncludePathEntry[] newClasspath= new IIncludePathEntry[]{projectEntry};
-		project.setRawIncludepath(newClasspath, null);
-		project.getAllPackageFragmentRoots();
-		IJavaScriptElementDelta removedDelta= getDeltaFor(oldRoot, true);
-		assertDeltas(
-			"Unexpected delta", 
-			"<project root>[*]: {REMOVED FROM CLASSPATH}", 
-			removedDelta);
-	} finally {
-		stopDeltas();
-		this.deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/**
- * Delete a root and ensure the classpath is not updated (i.e. entry isn't removed).
- */
-public void testClasspathDeleteNestedRoot() throws CoreException {
-	IJavaScriptProject project = this.createJavaProject("P", new String[] {"nested/src"}, new String[] {});
-	IPackageFragmentRoot root= getPackageFragmentRoot("P", "nested/src");
-	IIncludePathEntry[] originalCP= project.getRawIncludepath();
-
-	// delete the root
-	deleteResource(root.getUnderlyingResource());
-
-	IIncludePathEntry[] newCP= project.getRawIncludepath();
-
-	try {
-		// should still be an entry for the "src" folder
-		assertTrue("classpath should not have been updated", 
-			newCP.length == 2 &&
-			newCP[0].equals(originalCP[0]) &&
-			newCP[1].equals(originalCP[1]));
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Test classpath diamond (23979)
- */
-public void testClasspathDiamond() throws CoreException {
-	try {
-		this.createJavaProject("P1", new String[]{""});
-		this.createJavaProject("P2", new String[]{""}, new String[]{}, new String[]{"/P1"});
-		this.createJavaProject("P3", new String[]{""}, new String[]{}, new String[]{"/P1", "/P2"});
-		IJavaScriptProject p4 = this.createJavaProject("P4", new String[]{""}, new String[]{}, new String[]{"/P2", "/P3"});
-	
-		assertTrue("Should not detect cycle", !p4.hasIncludepathCycle(null));
-		
-	} finally {
-		// cleanup  
-		this.deleteProjects(new String[] {"P1", "P2", "P3", "P4"});
-	}
-}
- 
-/**
- * Delete a nested root's parent folder and ensure the classpath is
- * not updated (i.e. entry isn't removed).
- */
-public void testClasspathDeleteNestedRootParent() throws CoreException {
-	IJavaScriptProject project = this.createJavaProject("P", new String[] {"nested/src"}, new String[] {});
-	IPackageFragmentRoot root= getPackageFragmentRoot("P", "nested/src");
-	IIncludePathEntry[] originalCP= project.getRawIncludepath();
-
-	// delete the root's parent folder
-	IFolder folder= (IFolder)root.getUnderlyingResource().getParent();
-	deleteResource(folder);
-
-	IIncludePathEntry[] newCP= project.getRawIncludepath();
-
-	try {
-		
-		// should still be an entry for the "src" folder
-		assertTrue("classpath should not have been updated", 
-			newCP.length == 2 &&
-			newCP[0].equals(originalCP[0]) &&
-			newCP[1].equals(originalCP[1]));
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Test that a classpath entry for an external jar is externalized
- * properly.
- */
-public void testClasspathExternalize() throws CoreException {
-	try {
-		IJavaScriptProject project= this.createJavaProject("P", new String[] {}, new String[] {getSystemJsPathString()});
-		IIncludePathEntry[] classpath= project.getRawIncludepath();
-		IIncludePathEntry jar= null;
-		for (int i= 0; i < classpath.length; i++) {
-			if (classpath[i].getEntryKind() == IIncludePathEntry.CPE_LIBRARY) {
-				jar= classpath[i];
-				break;
-			}
-		}
-		project.close();
-		project.open(null);
-	
-		classpath= project.getRawIncludepath();
-		for (int i= 0; i < classpath.length; i++) {
-			if (classpath[i].getEntryKind() == IIncludePathEntry.CPE_LIBRARY) {
-				assertTrue("Paths must be the same", classpath[i].getPath().equals(jar.getPath()));
-				break;
-			}
-		}   
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Move a root and ensure the classpath is not updated (i.e. entry not renamed).
- */
-public void testClasspathMoveNestedRoot() throws CoreException {
-	IJavaScriptProject project = this.createJavaProject("P", new String[] {"nested/src"}, new String[] {});
-	IPackageFragmentRoot root= getPackageFragmentRoot("P", "nested/src");
-	IIncludePathEntry[] originalCP= project.getRawIncludepath();
-
-	// delete the root
-	IFolder folder= (IFolder)root.getUnderlyingResource();
-	IPath originalPath= folder.getFullPath();
-	IPath newPath= originalPath.removeLastSegments(1);
-	newPath= newPath.append(new Path("newsrc"));
-
-	startDeltas(); 
-	
-	folder.move(newPath, true, null);
-
-	IIncludePathEntry[] newCP= project.getRawIncludepath();
-
-	IPackageFragmentRoot newRoot= project.getPackageFragmentRoot(project.getProject().getFolder("nested").getFolder("newsrc")); 
-
-	try {
-		// entry for the "src" folder wasn't replaced
-		assertTrue("classpath not automatically updated", newCP.length == 2 &&
-			newCP[1].equals(originalCP[1]) &&
-			newCP[0].equals(originalCP[0]));
-
-		IJavaScriptElementDelta rootDelta = getDeltaFor(root, true);
-		IJavaScriptElementDelta projectDelta = getDeltaFor(newRoot.getParent(), true);
-		assertTrue("should get delta for moved root", rootDelta != null &&
-				rootDelta.getKind() == IJavaScriptElementDelta.REMOVED &&
-				rootDelta.getFlags() == 0);
-		assertTrue("should get delta indicating content changed for project", this.deltaContentChanged(projectDelta));
-	
-	} finally {
-		stopDeltas();
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Move a parent of a nested root and ensure the classpath is not updated (i.e. entry not renamed).
- */
-public void testClasspathMoveNestedRootParent() throws CoreException {
-	try {
-		IJavaScriptProject project =this.createJavaProject("P", new String[] {"nested/src"}, new String[] {});
-		IPackageFragmentRoot root= getPackageFragmentRoot("P", "nested/src");
-		IIncludePathEntry[] originalCP= project.getRawIncludepath();
-	
-		// delete the root
-		IFolder folder= (IFolder)root.getUnderlyingResource().getParent();
-		IPath originalPath= folder.getFullPath();
-		IPath newPath= originalPath.removeLastSegments(1);
-		newPath= newPath.append(new Path("newsrc"));
-		folder.move(newPath, true, null);
-	
-		IIncludePathEntry[] newCP= project.getRawIncludepath();
-
-		// entry for the "src" folder wasn't replaced
-		// entry for the "src" folder should not be replaced
-		assertTrue("classpath should not automatically be updated", newCP.length == 2 &&
-			newCP[1].equals(originalCP[1]) &&
-			newCP[0].equals(originalCP[0]));
-
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Tests that nothing occurs when setting to the same classpath
- */
-public void testClasspathNoChanges() throws CoreException {
-	try {
-		IJavaScriptProject p = this.createJavaProject("P", new String[] {""});
-		IIncludePathEntry[] oldClasspath= p.getRawIncludepath();
-		startDeltas();
-		p.setRawIncludepath(oldClasspath, null);
-		assertDeltas("Unexpected delta", "");
-	} finally {
-		stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that the setting the classpath with a reordered classpath generates
- * the correct deltas.
- */
-public void testClasspathReordering() throws CoreException {
-	IJavaScriptProject proj = this.createJavaProject("P", new String[] {"src"}, new String[] {getSystemJsPathString()});
-	IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	IPackageFragmentRoot root = getPackageFragmentRoot("P", "src");
-	try {
-		IIncludePathEntry[] newEntries = new IIncludePathEntry[originalCP.length];
-		int index = originalCP.length - 1;
-		for (int i = 0; i < originalCP.length; i++) {
-			newEntries[index] = originalCP[i];
-			index--;
-		}
-		startDeltas();
-		setClasspath(proj, newEntries);
-		assertTrue("should be one delta - two roots reordered", this.deltaListener.deltas.length == 1);
-		IJavaScriptElementDelta d = null;
-		assertTrue("root should be reordered in the classpath", (d = getDeltaFor(root, true)) != null
-			&& (d.getFlags() & IJavaScriptElementDelta.F_REORDER) > 0);
-	} finally {
-		stopDeltas();
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Should detect duplicate entries on the classpath
- */ 
-public void testClasspathValidation01() throws CoreException {
-	try {
-		IJavaScriptProject proj = this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = newCP[0];
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should have detected duplicate entries on the classpath", 
-			"Include path contains duplicate entry: \'src\' for project P",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Should detect nested source folders on the classpath
- */ 
-public void testClasspathValidation02() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P"));
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should have detected nested source folders on the classpath", 
-			"Cannot nest \'P/src\' inside \'P\'. To enable the nesting exclude \'src/\' from \'P\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Should detect library folder nested inside source folder on the classpath
- */ 
-public void testClasspathValidation03() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newLibraryEntry(new Path("/P/src/lib"), null, null);
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should have detected library folder nested inside source folder on the classpath", 
-			"Cannot nest \'P/src/lib\' inside \'P/src\'. To enable the nesting exclude \'lib/\' from \'P/src\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-public void testClasspathValidation04() throws CoreException {
-	
-	IJavaScriptProject[] p = null;
-	try {
-
-		p = new IJavaScriptProject[]{
-			this.createJavaProject("P0", new String[] {"src0"}),
-			this.createJavaProject("P1", new String[] {"src1"}),
-		};
-
-		JavaScriptCore.setIncludepathVariable("var", new Path("/P1"), null);
-		
-		IIncludePathEntry[] newClasspath = new IIncludePathEntry[]{
-			JavaScriptCore.newSourceEntry(new Path("/P0/src0")),
-			JavaScriptCore.newVariableEntry(new Path("var/src1"), null, null),
-		};
-				
-		// validate classpath
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(p[0], newClasspath);
-		assertStatus(
-			"should not detect external source folder through a variable on the classpath", 
-			"OK",
-			status);
-
-	} finally {
-		this.deleteProjects(new String[] {"P0", "P1"});
-	}
-}
-
-public void testClasspathValidation05() throws CoreException {
-	
-	IJavaScriptProject[] p = null;
-	try {
-
-		p = new IJavaScriptProject[]{
-			this.createJavaProject("P0", new String[] {"src0", "src1"}),
-			this.createJavaProject("P1", new String[] {"src1"}),
-		};
-
-		JavaScriptCore.setJsGlobalScopeContainer(
-		new Path("container/default"), 
-			new IJavaScriptProject[]{ p[0] },
-			new IJsGlobalScopeContainer[] {
-				new TestContainer(new Path("container/default"),
-					new IIncludePathEntry[]{
-						JavaScriptCore.newSourceEntry(new Path("/P0/src0")),
-						JavaScriptCore.newVariableEntry(new Path("var/src1"), null, null) }) 
-			}, 
-			null);
-		
-		IIncludePathEntry[] newClasspath = new IIncludePathEntry[]{
-			JavaScriptCore.newSourceEntry(new Path("/P0/src1")),
-			JavaScriptCore.newContainerEntry(new Path("container/default")),
-		};
-				
-		// validate classpath
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(p[0], newClasspath);
-		assertStatus(
-			"should not have detected external source folder through a container on the classpath", 
-			"OK",
-			status);
-
-		// validate classpath entry
-		status = JavaScriptConventions.validateClasspathEntry(p[0], newClasspath[1], true);
-		assertStatus(
-			"should have detected external source folder through a container on the classpath", 
-			"Invalid classpath container: \'container/default\' in project P0",
-			status);
-
-	} finally {
-		this.deleteProjects(new String[] {"P0", "P1"});
-	}
-}
-
-public void testClasspathValidation06() throws CoreException {
-	
-	IJavaScriptProject[] p = null;
-	try {
-
-		p = new IJavaScriptProject[]{
-			this.createJavaProject("P0", new String[] {"src"}),
-		};
-
-		// validate classpath entry
-		IIncludePathEntry[] newClasspath = new IIncludePathEntry[]{
-			JavaScriptCore.newSourceEntry(new Path("/P0")),
-			JavaScriptCore.newSourceEntry(new Path("/P0/src")),
-		};
-				
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(p[0], newClasspath);
-		assertStatus(
-			"should have detected nested source folder", 
-			"Cannot nest \'P0/src\' inside \'P0\'. To enable the nesting exclude \'src/\' from \'P0\'",
-			status);
-	} finally {
-		this.deleteProject("P0");
-	}
-}
-/**
- * Should allow nested source folders on the classpath as long as the outer
- * folder excludes the inner one.
- */ 
-public void testClasspathValidation07() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[] {new Path("src/")});
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should have allowed nested source folders with exclusion on the classpath", 
-			"OK",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Should allow a nested binary folder in a source folder on the classpath as
- * long as the outer folder excludes the inner one.
- */ 
-public void testClasspathValidation08() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {}, new String[] {"lib"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[] {new Path("lib/")});
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should have allowed nested lib folders with exclusion on the classpath", 
-			"OK",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Should not allow nested source folders on the classpath if exclusion filter has no trailing slash.
- */ 
-public void testClasspathValidation15() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[] {new Path("**/src")});
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"End exclusion filter \'src\' with / to fully exclude \'P/src\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Should detect source folder nested inside library folder on the classpath
- */ 
-public void testClasspathValidation19() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {}, new String[] {"lib"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P/lib/src"));
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should have detected library folder nested inside source folder on the classpath", 
-			"Cannot nest \'P/lib/src\' inside library \'P/lib\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Should not allow exclusion patterns if project preference disallow them
- */
-public void testClasspathValidation21() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P/src"), new IPath[]{new Path("**/src")}, null);
-		
-		Map options = new Hashtable(5);
-		options.put(JavaScriptCore.CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS, JavaScriptCore.DISABLED);
-		proj.setOptions(options);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"Inclusion or exclusion patterns are disabled in project P, cannot selectively include or exclude from entry: \'src\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * @bug 159325: Any idea why ClasspathEntry checks for string object reference instead of equals
- * @test Ensure that validation is correctly done even for other strings than JavaScriptCore constants...
- * 	Note that it's needed to change JavaScriptCore options as "ignore" is the default value and set option
- * 	to this value on java project will just remove it instead of putting another string object...
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=159325"
- */
-public void testClasspathValidation27_Bug159325_project() throws CoreException {
-	Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-	try {
-		IJavaScriptProject proj1 =  this.createJavaProject("P1", new String[] {});
-		proj1.setOption(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_4);
-
-		Hashtable options = JavaScriptCore.getOptions();
-		options.put(JavaScriptCore.CORE_INCOMPATIBLE_JDK_LEVEL, JavaScriptCore.WARNING);
-		JavaScriptCore.setOptions(options);
-		IJavaScriptProject proj2 =  this.createJavaProject("P2", new String[] {});
-		proj2.setOption(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_1);
-		proj2.setOption(JavaScriptCore.CORE_INCOMPATIBLE_JDK_LEVEL, new String("ignore".toCharArray()));
-
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspathEntry(proj2, JavaScriptCore.newProjectEntry(new Path("/P1")), false);
-		assertStatus("OK", status);
-	} finally {
-		JavaScriptCore.setOptions(javaCoreOptions);
-		this.deleteProjects(new String[]{"P1", "P2"});
-	}
-}
-public void testClasspathValidation27_Bug159325_lib() throws CoreException {
-	Hashtable javaCoreOptions = JavaScriptCore.getOptions();
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P1", new String[] {});
-		proj.setOption(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_1);
-
-		Hashtable options = JavaScriptCore.getOptions();
-		options.put(JavaScriptCore.CORE_INCOMPATIBLE_JDK_LEVEL, JavaScriptCore.WARNING);
-		JavaScriptCore.setOptions(options);
-		proj.setOption(JavaScriptCore.CORE_INCOMPATIBLE_JDK_LEVEL, new String("ignore".toCharArray()));
-
-		IIncludePathEntry library = JavaScriptCore.newLibraryEntry(new Path(getExternalJCLPathString(JavaScriptCore.VERSION_1_5)), null, null, ClasspathEntry.NO_ACCESS_RULES, null, false);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspathEntry(proj, library, false);
-		assertStatus("OK", status);
-	} finally {
-		JavaScriptCore.setOptions(javaCoreOptions);
-		this.deleteProjects(new String[]{"P1", "P2"});
-	}
-}
-/**
- * Should not allow nested source folders on the classpath if the outer
- * folder includes the inner one.
- */ 
-public void testClasspathValidation34() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[] {new Path("src/")}, new IPath[0], null);
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should not have allowed nested source folders with inclusion on the classpath", 
-			"Cannot nest \'P/src\' inside \'P\'. To enable the nesting exclude \'src/\' from \'P\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Should not allow a nested binary folder in a source folder on the classpath
- * if the outer folder includes the inner one.
- */ 
-public void testClasspathValidation35() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {}, new String[] {"lib"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[] {new Path("lib/")}, new Path[0], null);
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should not have allowed nested lib folders with inclusion on the classpath", 
-			"Cannot nest \'P/lib\' inside \'P\'. To enable the nesting exclude \'lib/\' from \'P\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Should allow nested source folders on the classpath if inclusion filter has no trailing slash.
- */ 
-public void testClasspathValidation36() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[] {new Path("**/src")}, new Path[0], null);
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"OK",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Should not allow inclusion patterns if project preference disallow them
- */
-public void testClasspathValidation37() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {});
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P/src"), new IPath[]{new Path("**/src")}, new Path[0], null);
-		
-		Map options = new Hashtable(5);
-		options.put(JavaScriptCore.CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS, JavaScriptCore.DISABLED);
-		proj.setOptions(options);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"Inclusion or exclusion patterns are disabled in project P, cannot selectively include or exclude from entry: \'src\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Should detect nested source folders on the classpath and indicate the preference if disabled
- * (regression test for bug 122615 validate classpath propose to exlude a source folder even though exlusion patterns are disabled)
- */ 
-public void testClasspathValidation42() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {"src"});
-		proj.setOption(JavaScriptCore.CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS, JavaScriptCore.DISABLED);
-		IIncludePathEntry[] originalCP = proj.getRawIncludepath();
-	
-		IIncludePathEntry[] newCP = new IIncludePathEntry[originalCP.length+1];
-		System.arraycopy(originalCP, 0, newCP, 0, originalCP.length);
-		newCP[originalCP.length] = JavaScriptCore.newSourceEntry(new Path("/P"));
-		
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspath(proj, newCP);
-		
-		assertStatus(
-			"should have detected nested source folders on the classpath", 
-			"Cannot nest \'P/src\' inside \'P\'. To allow the nesting enable use of exclusion patterns in the preferences of project \'P\' and exclude \'src/\' from \'P\'",
-			status);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Setting the classpath with two entries specifying the same path
- * should fail.
- */
-public void testClasspathWithDuplicateEntries() throws CoreException {
-	try {
-		IJavaScriptProject project =  this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] cp= project.getRawIncludepath();
-		IIncludePathEntry[] newCp= new IIncludePathEntry[cp.length *2];
-		System.arraycopy(cp, 0, newCp, 0, cp.length);
-		System.arraycopy(cp, 0, newCp, cp.length, cp.length);
-		try {
-			project.setRawIncludepath(newCp, null);
-		} catch (JavaScriptModelException jme) {
-			return;
-		}
-		assertTrue("Setting the classpath with two entries specifying the same path should fail", false);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Bug 94404: [model] Disallow classpath attributes with same key
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=94404"
- */
-public void testClasspathDuplicateExtraAttribute() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P1", new String[] {});
-		IIncludePathAttribute[] extraAttributes = new IIncludePathAttribute[2];
-		extraAttributes[0] = JavaScriptCore.newIncludepathAttribute("javadoc_location", "http://www.sample-url.org/doc/");
-		extraAttributes[1] = JavaScriptCore.newIncludepathAttribute("javadoc_location", "d:/tmp");
-
-		// Verify container entry validation
-		IIncludePathEntry container = JavaScriptCore.newContainerEntry(new Path("JRE_CONTAINER"), ClasspathEntry.NO_ACCESS_RULES, extraAttributes, false);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspathEntry(proj, container, false);
-		assertStatus(
-			"Duplicate extra attribute: \'javadoc_location\' in classpath entry \'JRE_CONTAINER\' for project 'P1'",
-			status);
-
-		// Verify library entry validation
-		IIncludePathEntry library = JavaScriptCore.newLibraryEntry(new Path(getSystemJsPathString()), null, null, ClasspathEntry.NO_ACCESS_RULES, extraAttributes, false);
-		status = JavaScriptConventions.validateClasspathEntry(proj, library, false);
-		assertStatus(
-			"Duplicate extra attribute: \'javadoc_location\' in classpath entry \'"+getExternalJCLPath("")+"\' for project 'P1'",
-			status);
-
-		// Verify project entry validation
-		createJavaProject("P2");
-		IIncludePathEntry projectEntry = JavaScriptCore.newProjectEntry(new Path("/P2"), ClasspathEntry.NO_ACCESS_RULES, false, extraAttributes, false);
-		status = JavaScriptConventions.validateClasspathEntry(proj, projectEntry, false);
-		assertStatus(
-			"Duplicate extra attribute: \'javadoc_location\' in classpath entry \'/P2\' for project 'P1'",
-			status);
-
-		// Verify source entry validation
-		createFolder("/P1/src");
-		IIncludePathEntry sourceEntry = JavaScriptCore.newSourceEntry(new Path("/P1/src"), new IPath[0], new IPath[0], null, extraAttributes);
-		status = JavaScriptConventions.validateClasspathEntry(proj, sourceEntry, false);
-		assertStatus(
-			"Duplicate extra attribute: \'javadoc_location\' in classpath entry \'src\' for project 'P1'",
-			status);
-
-		// Verify variable entry validation
-		IIncludePathEntry variable = JavaScriptCore.newVariableEntry(new Path("JCL_LIB"), new Path("JCL_SRC"), null, ClasspathEntry.NO_ACCESS_RULES, extraAttributes, false);
-		status = JavaScriptConventions.validateClasspathEntry(proj, variable, false);
-		assertStatus(
-			"Duplicate extra attribute: \'javadoc_location\' in classpath entry \'"+getExternalJCLPath("")+"\' for project 'P1'",
-			status);
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-
-/**
- * Adding an entry to the classpath for a library that does not exist
- * should not break the model. The classpath should contain the
- * entry, but the root should not appear in the children.
- */
-public void testClasspathWithNonExistentLibraryEntry() throws CoreException {
-	try {
-		IJavaScriptProject project=  this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalPath= project.getRawIncludepath();
-		IPackageFragmentRoot[] originalRoots= project.getPackageFragmentRoots();
-	
-		IIncludePathEntry[] newPath= new IIncludePathEntry[originalPath.length + 1];
-		System.arraycopy(originalPath, 0, newPath, 0, originalPath.length);
-	
-		IIncludePathEntry newEntry= JavaScriptCore.newLibraryEntry(new Path("c:/nothing/nozip.jar").makeAbsolute(), null, null, false);
-		newPath[originalPath.length]= newEntry;
-	
-		project.setRawIncludepath(newPath, null);
-
-		IIncludePathEntry[] getPath= project.getRawIncludepath();
-		assertTrue("should be the same length", getPath.length == newPath.length);
-		for (int i= 0; i < getPath.length; i++) {
-			assertTrue("entries should be the same", getPath[i].equals(newPath[i]));
-		}
-
-		IPackageFragmentRoot[] newRoots= project.getPackageFragmentRoots();
-		assertTrue("Should be the same number of roots", originalRoots.length == newRoots.length);
-		for (int i= 0; i < newRoots.length; i++) {
-			assertTrue("roots should be the same", originalRoots[i].equals(newRoots[i]));
-		}
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Adding an entry to the classpath for a project that does not exist
- * should not break the model. The classpath should contain the
- * entry, but the root should not appear in the children.
- */
-public void testClasspathWithNonExistentProjectEntry() throws CoreException {
-	try {
-		IJavaScriptProject project= this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalPath= project.getRawIncludepath();
-		IPackageFragmentRoot[] originalRoots= project.getPackageFragmentRoots();
-	
-		IIncludePathEntry[] newPath= new IIncludePathEntry[originalPath.length + 1];
-		System.arraycopy(originalPath, 0, newPath, 0, originalPath.length);
-	
-		IIncludePathEntry newEntry= JavaScriptCore.newProjectEntry(new Path("/NoProject"), false);
-		newPath[originalPath.length]= newEntry;
-	
-		project.setRawIncludepath(newPath, null);
-	
-		IIncludePathEntry[] getPath= project.getRawIncludepath();
-		assertTrue("should be the same length", getPath.length == newPath.length);
-		for (int i= 0; i < getPath.length; i++) {
-			assertTrue("entries should be the same", getPath[i].equals(newPath[i]));
-		}
-	
-		IPackageFragmentRoot[] newRoots= project.getPackageFragmentRoots();
-		assertTrue("Should be the same number of roots", originalRoots.length == newRoots.length);
-		for (int i= 0; i < newRoots.length; i++) {
-			assertTrue("roots should be the same", originalRoots[i].equals(newRoots[i]));
-		}
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Adding an entry to the classpath for a folder that does not exist
- * should not break the model. The classpath should contain the
- * entry, but the root should not appear in the children.
- */
-public void testClasspathWithNonExistentSourceEntry() throws CoreException {
-	try {
-		IJavaScriptProject project= this.createJavaProject("P", new String[] {"src"});
-		IIncludePathEntry[] originalPath= project.getRawIncludepath();
-		IPackageFragmentRoot[] originalRoots= project.getPackageFragmentRoots();
-
-		IIncludePathEntry[] newPath= new IIncludePathEntry[originalPath.length + 1];
-		System.arraycopy(originalPath, 0, newPath, 0, originalPath.length);
-
-		IIncludePathEntry newEntry= JavaScriptCore.newSourceEntry(new Path("/P/moreSource"));
-		newPath[originalPath.length]= newEntry;
-
-		project.setRawIncludepath(newPath, null);
-
-		IIncludePathEntry[] getPath= project.getRawIncludepath();
-		assertTrue("should be the same length", getPath.length == newPath.length);
-		for (int i= 0; i < getPath.length; i++) {
-			assertTrue("entries should be the same", getPath[i].equals(newPath[i]));
-		}
-
-		IPackageFragmentRoot[] newRoots= project.getPackageFragmentRoots();
-		assertTrue("Should be the same number of roots", originalRoots.length == newRoots.length);
-		for (int i= 0; i < newRoots.length; i++) {
-			assertTrue("roots should be the same", originalRoots[i].equals(newRoots[i]));
-		}
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Ensure that cycle are properly reported.
- */
-public void testCycleReport() throws CoreException {
-
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {""});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {""});
-		IJavaScriptProject p3 = this.createJavaProject("P3", new String[] {""}, new String[] {}, new String[] {"/P2"});
-	
-		// Ensure no cycle reported
-		IJavaScriptProject[] projects = { p1, p2, p3 };
-		int cycleMarkerCount = 0;
-		for (int i = 0; i < projects.length; i++){
-			cycleMarkerCount += this.numberOfCycleMarkers(projects[i]);
-		}
-		assertTrue("Should have no cycle markers", cycleMarkerCount == 0);
-	
-		// Add cycle
-		IIncludePathEntry[] originalP1CP= p1.getRawIncludepath();
-		IIncludePathEntry[] originalP2CP= p2.getRawIncludepath();
-
-		// Add P1 as a prerequesite of P2
-		int length = originalP2CP.length;
-		IIncludePathEntry[] newCP= new IIncludePathEntry[length + 1];
-		System.arraycopy(originalP2CP, 0 , newCP, 0, length);
-		newCP[length]= JavaScriptCore.newProjectEntry(p1.getProject().getFullPath(), false);
-		p2.setRawIncludepath(newCP, null);
-
-		// Add P3 as a prerequesite of P1
-		length = originalP1CP.length;
-		newCP= new IIncludePathEntry[length + 1];
-		System.arraycopy(originalP1CP, 0 , newCP, 0, length);
-		newCP[length]= JavaScriptCore.newProjectEntry(p3.getProject().getFullPath(), false);
-		p1.setRawIncludepath(newCP, null);
-
-		waitForAutoBuild(); // wait for cycle markers to be created
-		cycleMarkerCount = 0;
-		for (int i = 0; i < projects.length; i++){
-			cycleMarkerCount += numberOfCycleMarkers(projects[i]);
-		}
-		assertEquals("Unexpected number of projects involved in a classpath cycle", 3, cycleMarkerCount);
-		
-	} finally {
-		// cleanup  
-		deleteProjects(new String[] {"P1", "P2", "P3"});
-	}
-}
-/**
- * Ensures that the default classpath locations are correct.
- * The default classpath should be the root of the project.
- */
-public void testDefaultClasspathLocation() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		IIncludePathEntry[] classpath = project.getRawIncludepath();
-		assertTrue("Incorrect default classpath; to many entries", classpath.length == 2);
-		assertTrue("Incorrect default classpath: " + classpath[0], classpath[0].getPath().equals(project.getUnderlyingResource().getFullPath()));
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/**
- * Setting the classpath to empty should result in no entries,
- * and a delta with removed roots.
- */
-public void testEmptyClasspath() throws CoreException {
-	IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-	try {
-		startDeltas();
-		setClasspath(project, new IIncludePathEntry[] {});
-		IIncludePathEntry[] cp= project.getRawIncludepath();
-		assertTrue("classpath should have no entries", cp.length == 0);
-
-		// ensure the deltas are correct
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	<project root>[*]: {REMOVED FROM CLASSPATH}\n" + 
-			"  D:\\WTPDevelopment\\junit-workspace\\.metadata\\.plugins\\org.eclipse.wst.jsdt.core\\libraries\\system.js[*]: {REORDERED}\n" +
-			"	ResourceDelta(/P/.settings)[*]"
-		);
-	} finally {
-		stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensures that a source folder that contains character that must be encoded can be written.
- * (regression test for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=70193)
- */
-public void testEncoding() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src\u3400"});
-		IFile file = getFile("/P/.settings/.jsdtscope");
-		String encodedContents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(file, "UTF-8"));
-		encodedContents = Util.convertToIndependantLineDelimiter(encodedContents);
-		assertEquals(
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<classpath>\n" +
-			"	<classpathentry kind=\"src\" path=\"src\u3400\"/>\n" +
-			" <classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.launching.JRE_CONTAINER\"/>\n" +
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" +
-			"</classpath>\n",
-			encodedContents);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a source classpath entry can be encoded and decoded.
- */
-public void testEncodeDecodeEntry01() {
-	assertEncodeDecodeEntry(
-		"P", 
-		"<classpathentry kind=\"src\" path=\"src\"/>\n", 
-		JavaScriptCore.newSourceEntry(new Path("/P/src"))
-	);
-}
-/*
- * Ensures that a source classpath entry with all possible attributes can be encoded and decoded.
- */
-public void testEncodeDecodeEntry02() {
-	assertEncodeDecodeEntry(
-		"P", 
-		"<classpathentry excluding=\"**/X.js\" including=\"**/Y.js\" kind=\"src\" output=\"bin\" path=\"src\">\n" + 
-		"	<attributes>\n" + 
-		"		<attribute name=\"attrName\" value=\"some value\"/>\n" + 
-		"	</attributes>\n" + 
-		"</classpathentry>\n",
-		JavaScriptCore.newSourceEntry(
-			new Path("/P/src"), 
-			new IPath[] {new Path("**/Y.js")},
-			new IPath[] {new Path("**/X.js")},
-			new Path("/P/bin"),
-			new IIncludePathAttribute[] {JavaScriptCore.newIncludepathAttribute("attrName", "some value")})
-	);
-}
-/*
- * Ensures that a project classpath entry can be encoded and decoded.
- */
-public void testEncodeDecodeEntry03() {
-	assertEncodeDecodeEntry(
-		"P1", 
-		"<classpathentry kind=\"src\" path=\"/P2\"/>\n",
-		JavaScriptCore.newProjectEntry(new Path("/P2"))
-	);
-}
-/*
- * Ensures that a library classpath entry can be encoded and decoded.
- */
-public void testEncodeDecodeEntry04() {
-	assertEncodeDecodeEntry(
-		"P", 
-		"<classpathentry exported=\"true\" kind=\"lib\" path=\"lib.jar\" rootpath=\"root\" sourcepath=\"src.zip\">\n" + 
-		"	<attributes>\n" + 
-		"		<attribute name=\"attr1\" value=\"val1\"/>\n" + 
-		"	</attributes>\n" + 
-		"	<accessrules>\n" + 
-		"		<accessrule kind=\"accessible\" pattern=\"**/A*.js\"/>\n" + 
-		"	</accessrules>\n" + 
-		"</classpathentry>\n",
-		JavaScriptCore.newLibraryEntry(
-			new Path("/P/lib.jar"),
-			new Path("/P/src.zip"),
-			new Path("root"),
-			new IAccessRule[] {JavaScriptCore.newAccessRule(new Path("**/A*.js"), IAccessRule.K_ACCESSIBLE)},
-			new IIncludePathAttribute[] {JavaScriptCore.newIncludepathAttribute("attr1", "val1")},
-			true)
-	);
-}
-/*
- * Ensures that a library classpath entry can be encoded and decoded.
- */
-public void testEncodeDecodeEntry05() {
-	assertEncodeDecodeEntry(
-		"P", 
-		"<classpathentry exported=\"true\" kind=\"lib\" path=\"lib.jar\" rootpath=\"root\" sourcepath=\"src.zip\">\n" + 
-		"	<attributes>\n" + 
-		"		<attribute name=\"attr1\" value=\"val1\"/>\n" + 
-		"	</attributes>\n" + 
-		"	<accessrules>\n" + 
-		"		<accessrule ignoreifbetter=\"true\" kind=\"accessible\" pattern=\"**/A*.js\"/>\n" + 
-		"	</accessrules>\n" + 
-		"</classpathentry>\n",
-		JavaScriptCore.newLibraryEntry(
-			new Path("/P/lib.jar"),
-			new Path("/P/src.zip"),
-			new Path("root"),
-			new IAccessRule[] {JavaScriptCore.newAccessRule(new Path("**/A*.js"), IAccessRule.K_ACCESSIBLE | IAccessRule.IGNORE_IF_BETTER)},
-			new IIncludePathAttribute[] {JavaScriptCore.newIncludepathAttribute("attr1", "val1")},
-			true)
-	);
-}
-/**
- * Ensures that adding an empty classpath container
- * generates the correct deltas.
- */
-public void testEmptyContainer() throws CoreException {
-	try {
-		IJavaScriptProject proj = createJavaProject("P", new String[] {});
-
-		startDeltas();
-
-		// create container
-		JavaScriptCore.setJsGlobalScopeContainer(
-			new Path("container/default"), 
-			new IJavaScriptProject[]{ proj },
-			new IJsGlobalScopeContainer[] {
-				new TestContainer(
-					new Path("container/default"),
-					new IIncludePathEntry[] {}) 
-			}, 
-			null);
-
-		// set P's classpath with this container
-		IIncludePathEntry container = JavaScriptCore.newContainerEntry(new Path("container/default"), true);
-		proj.setRawIncludepath(new IIncludePathEntry[] {container}, null);
-
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CONTENT | CLASSPATH CHANGED}\n" + 
-			"   D:\\WTPDevelopment\\junit-workspace\\.metadata\\.plugins\\org.eclipse.wst.jsdt.core\\libraries\\system.js[*]: {REORDERED}\n" +
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-	} finally {
-		stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a .classpath with an empty inclusion pattern is correctly handled
- * (regression test for bug 105581 Creating a Java project from existing source fails because of "Unhandled event loop exception":)
- */
-public void testEmptyInclusionPattern() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {""});
-		project.open(null);
-		editFile(
-			"/P/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"  <classpathentry including=\"X.java|\" kind=\"src\" path=\"\"/>\n" + 
-			"  <classpathentry kind=\"output\" path=\"bin\"/>\n" + 
-			"</classpath>"
-		);
-		project.getProject().close(null);
-		project.getProject().open(null);
-		project.getPackageFragmentRoot(project.getProject()).open(null);
-		IIncludePathEntry[] classpath = project.getRawIncludepath();
-		assertClasspathEquals(
-			classpath, 
-			"/P[CPE_SOURCE][K_SOURCE][isExported:false][including:X.java]"
-		);
-	} finally {
-		deleteProject("P");
-	}
-}
-/**
- * Exporting a container should make it visible to its dependent project.
- * (regression test for bug 21749 Exported libraries and source folders)
- */
-public void testExportContainer() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {""});
-
-		// create container
-		JavaScriptCore.setJsGlobalScopeContainer(
-			new Path("container/default"), 
-			new IJavaScriptProject[]{ p1 },
-			new IJsGlobalScopeContainer[] {
-				new TestContainer(
-					new Path("container/default"),
-					new IIncludePathEntry[] {
-						JavaScriptCore.newLibraryEntry(getExternalJCLPath(""), null, null)
-					}) 
-			}, 
-			null);
-
-		// set P1's classpath with this container
-		IIncludePathEntry container = JavaScriptCore.newContainerEntry(new Path("container/default"), true);
-		p1.setRawIncludepath(new IIncludePathEntry[] {container}, null);
-		
-		// create dependent project P2
-		IJavaScriptProject  p2 = this.createJavaProject("P2", new String[] {}, new String[] {}, new String[] {"/P1"});
-		IIncludePathEntry[] classpath = ((JavaProject)p2).getExpandedClasspath();
-		
-		// ensure container is exported to P2
-		assertEquals("Unexpected number of classpath entries", 2, classpath.length);
-		assertEquals("Unexpected first entry", "/P1", classpath[0].getPath().toString());
-		assertEquals("Unexpected second entry", getSystemJsPathString(), classpath[1].getPath().toOSString());
-	} finally {
-		this.deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/*
- * Ensures that setting 0 extra classpath attributes generates the correct .classpath file.
- */
-public void testExtraAttributes1() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IIncludePathEntry entry = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[0], new IPath[0], null, new IIncludePathAttribute[] {});
-		project.setRawIncludepath(new IIncludePathEntry[] {entry}, null);
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n",
-			contents);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that setting 1 extra classpath attributes generates the correct .classpath file.
- */
-public void testExtraAttributes2() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IIncludePathAttribute attribute = JavaScriptCore.newIncludepathAttribute("foo", "some value");
-		IIncludePathEntry entry = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[0], new IPath[0], null, new IIncludePathAttribute[] {attribute});
-		project.setRawIncludepath(new IIncludePathEntry[] {entry}, null);
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"\">\n" + 
-			"		<attributes>\n" + 
-			"			<attribute name=\"foo\" value=\"some value\"/>\n" + 
-			"		</attributes>\n" + 
-			"	</classpathentry>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n",
-			contents);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that setting 2 extra classpath attributes generates the correct .classpath file.
- */
-public void testExtraAttributes3() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IIncludePathAttribute attribute1 = JavaScriptCore.newIncludepathAttribute("foo", "some value");
-		IIncludePathAttribute attribute2 = JavaScriptCore.newIncludepathAttribute("bar", "other value");
-		IIncludePathEntry entry = JavaScriptCore.newSourceEntry(new Path("/P"), new IPath[0], new IPath[0], null, new IIncludePathAttribute[] {attribute1, attribute2});
-		project.setRawIncludepath(new IIncludePathEntry[] {entry}, null);
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"\">\n" + 
-			"		<attributes>\n" + 
-			"			<attribute name=\"foo\" value=\"some value\"/>\n" + 
-			"			<attribute name=\"bar\" value=\"other value\"/>\n" + 
-			"		</attributes>\n" + 
-			"	</classpathentry>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n",
-			contents);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that extra classpath attributes in a .classpath file are correctly read.
- */
-public void testExtraAttributes4() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		editFile(
-			"/P/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"\">\n" + 
-			"		<attributes>\n" + 
-			"			<attribute value=\"some value\" name=\"foo\"/>\n" + 
-			"		</attributes>\n" + 
-			"	</classpathentry>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n"
-		);
-		assertClasspathEquals(
-			project.getRawIncludepath(),
-			"/P[CPE_SOURCE][K_SOURCE][isExported:false][attributes:foo=some value]"
-		);
-	} finally {
-		deleteProject("P");
-	}
-}
-/**
- * Test IJavaScriptProject.hasClasspathCycle(IIncludePathEntry[]).
- */
-public void testHasClasspathCycle() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {""});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {""});
-		this.createJavaProject("P3", new String[] {""}, new String[] {}, new String[] {"/P1"});
-	
-		IIncludePathEntry[] originalP1CP= p1.getRawIncludepath();
-		IIncludePathEntry[] originalP2CP= p2.getRawIncludepath();
-	
-		// Ensure no cycle reported
-		assertTrue("P1 should not have a cycle", !p1.hasIncludepathCycle(originalP1CP));
-
-		// Ensure that adding NervousTest as a prerequesite of P2 doesn't report a cycle
-		int length = originalP2CP.length;
-		IIncludePathEntry[] newCP= new IIncludePathEntry[length + 1];
-		System.arraycopy(originalP2CP, 0 , newCP, 0, length);
-		newCP[length]= JavaScriptCore.newProjectEntry(p1.getProject().getFullPath(), false);
-		assertTrue("P2 should not have a cycle", !p2.hasIncludepathCycle(newCP));
-		p2.setRawIncludepath(newCP, null);
-
-		// Ensure that adding P3 as a prerequesite of P1 reports a cycle
-		length = originalP1CP.length;
-		newCP= new IIncludePathEntry[length + 1];
-		System.arraycopy(originalP1CP, 0 , newCP, 0, length);
-		newCP[length]= JavaScriptCore.newProjectEntry(p2.getProject().getFullPath(), false);
-		assertTrue("P3 should have a cycle", p2.hasIncludepathCycle(newCP));
-
-		// Ensure a cycle is not reported through markers
-		IWorkspace workspace = getJavaModel().getWorkspace();
-		IMarker[] markers = workspace.getRoot().findMarkers(IJavaScriptModelMarker.TRANSIENT_PROBLEM, true, 1);
-		boolean hasCycleMarker = false;
-		for (int i = 0; i < markers.length; i++){
-			if (markers[i].getAttribute(IJavaScriptModelMarker.CYCLE_DETECTED) != null) {
-				hasCycleMarker = true;
-				break;
-			}
-		}
-	assertTrue("Should have no cycle markers", !hasCycleMarker);
-		
-	} finally {
-		// cleanup  
-		this.deleteProjects(new String[] {"P1", "P2", "P3"});
-	}
-}
-/**
- * Ensures that a marker is created if editing the .classpath results in an invalid classpath.
- */
-public void testInvalidClasspath1() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"});
-		this.editFile(
-			"/P/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<classpath>\n" +
-			"    <classpathentry kind=\"src\" path=\"src\"/\n" + // missing closing >
-			"    <classpathentry kind=\"output\" path=\"bin\"/>\n" +
-			"</classpath>"
-		);
-		assertMarkers(
-			"Unexpected markers",
-			"XML format error in \'.classpath\' file of project P: Bad format",
-			project);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that a marker is created if editing the .classpath results in an invalid classpath.
- */
-public void testInvalidClasspath2() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = this.createJavaProject("P", new String[] {"src"});
-		this.editFile(
-			"/P/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<classpath>\n" +
-			"    <classpathentry kind=\"src1\" path=\"src\"/>\n" + // invalid kind: src1
-			"    <classpathentry kind=\"output\" path=\"bin\"/>\n" +
-			"</classpath>"
-		);
-		assertMarkers(
-			"Unexpected markers",
-			"Illegal entry in \'.classpath\' of project P file: Unknown kind: \'src1\'",
-			javaProject);
-			
-		// Verify that error marker is not removed after build
-		// (regression test for bug 42366: Classpath validation error message removed while rebuilding a project.)
-		IProject project = javaProject.getProject();
-		project.build(IncrementalProjectBuilder.FULL_BUILD, null);
-		waitForAutoBuild();
-		assertMarkers(
-			"Unexpected markers",
-			"Illegal entry in \'.classpath\' of project P file: Unknown kind: \'src1\'",
-			javaProject);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/*
- * Ensures that a non existing source folder cannot be put on the classpath.
- * (regression test for bug 66512 Invalid classpath entry not rejected)
- */
-public void testInvalidSourceFolder() throws CoreException {
-	try {
-		createJavaProject("P1");
-		IJavaScriptProject proj = createJavaProject("P2", new String[] {}, new String[] {}, new String[] {"/P1/src1/src2"});
-		assertMarkers(
-			"Unexpected markers",
-			"Project P2 is missing required source folder: \'/P1/src1/src2\'",
-			proj);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Ensures that only one marker is created if building a project that is
- * missing its .classpath file multiple times.
- * (regression test for bug 39877 Rebuild All generates extra "Unable to read classpath" entry.)
- */
-public void testMissingClasspath() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = createJavaProject("P");
-		IProject project = javaProject.getProject();
-		project.close(null);
-		deleteFile(new File(project.getLocation().toOSString(), ".settings/.jsdtscope"));
-		waitForAutoBuild();
-		project.open(null);
-		waitForAutoBuild();
-		project.build(IncrementalProjectBuilder.FULL_BUILD, null);
-		waitForAutoBuild();
-		project.build(IncrementalProjectBuilder.FULL_BUILD, null);
-		waitForAutoBuild();
-		assertMarkers(
-			"Unexpected markers",
-			"Unable to read \'.jsdtscope\' file of project P",
-			javaProject);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Test that a marker is added when a project as a missing project in its classpath.
- */
-public void testMissingPrereq1() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = this.createJavaProject("A", new String[] {});
-		IIncludePathEntry[] classpath = 
-			new IIncludePathEntry[] {
-				JavaScriptCore.newProjectEntry(new Path("/B"))
-			};
-		javaProject.setRawIncludepath(classpath, null);
-		this.assertMarkers(
-			"Unexpected markers",
-			"Project A is missing required Java project: \'B\'",
-			javaProject);
-	} finally {
-		this.deleteProject("A");
-	}
-}
-/**
- * Test that a marker is added when a project as a missing project in its classpath.
- */
-public void testMissingPrereq2() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = 
-			this.createJavaProject(
-				"A", 
-				new String[] {}, // source folders
-				new String[] {}, // lib folders
-				new String[] {"/B"});
-		this.assertMarkers(
-			"Unexpected markers",
-			"Project A is missing required Java project: \'B\'",
-			javaProject);
-	} finally {
-		this.deleteProject("A");
-	}
-}
-/**
- * Test that a marker indicating a missing project is removed when the project is added.
- */
-public void testMissingPrereq3() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = 
-			this.createJavaProject(
-				"A", 
-				new String[] {}, // source folders
-				new String[] {}, // lib folders
-				new String[] {"/B"});
-		this.createJavaProject("B", new String[] {});
-		this.assertMarkers("Unexpected markers", "", javaProject);
-	} finally {
-		this.deleteProjects(new String[] {"A", "B"});
-	}
-}
-/**
- * Test that a marker indicating a cycle is removed when a project in the cycle is deleted
- * and replaced with a missing prereq marker.
- * (regression test for bug 15168 circular errors not reported)
- */
-public void testMissingPrereq4() throws CoreException {
-	try {
-		IJavaScriptProject projectA =
-			this.createJavaProject(
-				"A", 
-				new String[] {}, // source folders
-				new String[] {}, // lib folders
-				new String[] {"/B"});
-		IJavaScriptProject projectB =
-			this.createJavaProject(
-				"B", 
-				new String[] {}, // source folders
-				new String[] {}, // lib folders
-				new String[] {"/A"});
-		this.assertMarkers(
-			"Unexpected markers for project A",
-			"A cycle was detected in the include path of project: A",
-			projectA);
-		this.assertMarkers(
-			"Unexpected markers for project B",
-			"A cycle was detected in the include path of project: B",
-			projectB);
-		
-		// delete project B	
-		this.deleteProject("B");
-		this.assertMarkers(
-			"Unexpected markers for project A after deleting of project B",
-			"Project A is missing required Java project: \'B\'",
-			projectA);
-			
-		// add project B back
-		projectB =
-			this.createJavaProject(
-				"B", 
-				new String[] {}, // source folders
-				new String[] {}, // lib folders
-				new String[] {"/A"});
-		this.assertMarkers(
-			"Unexpected markers for project A after adding project B back",
-			"A cycle was detected in the build path of project: A",
-			projectA);
-		this.assertMarkers(
-			"Unexpected markers for project B after adding project B back",
-			"A cycle was detected in the build path of project: B",
-			projectB);
-
-	} finally {
-		this.deleteProjects(new String[] {"A", "B"});
-	}
-}
-/**
- * Setting the classpath to null should be the same as using the
- * default classpath.
- */
-public void testNullClasspath() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		setClasspath(project, null);
-		IIncludePathEntry[] cp= project.getRawIncludepath();
-		assertTrue("classpath should have one root entry", cp.length == 1 && cp[0].getPath().equals(project.getUnderlyingResource().getFullPath()));
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/*
- * Ensures that setting the 'combineAccessRules' flag to false on a project entry generates the correct .classpath file.
- */
-public void testCombineAccessRules1() throws CoreException {
-	try {
-		createJavaProject("P1");
-		IJavaScriptProject project = createJavaProject("P2");
-		IIncludePathEntry entry = JavaScriptCore.newProjectEntry(new Path("/P1"), (IAccessRule[]) null, false/*don't combine*/, new IIncludePathAttribute[] {}, false);
-		project.setRawIncludepath(new IIncludePathEntry[] {entry}, null);
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P2/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry combineaccessrules=\"false\" kind=\"src\" path=\"/P1\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n",
-			contents);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-/*
- * Ensures that setting the 'combineAccessRules' flag to true on a project entry generates the correct .classpath file.
- */
-public void testCombineAccessRules2() throws CoreException {
-	try {
-		createJavaProject("P1");
-		IJavaScriptProject project = createJavaProject("P2");
-		IIncludePathEntry entry = JavaScriptCore.newProjectEntry(new Path("/P1"), (IAccessRule[]) null, true/*combine*/, new IIncludePathAttribute[] {}, false);
-		project.setRawIncludepath(new IIncludePathEntry[] {entry}, null);
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P2/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"/P1\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n",
-			contents);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-/*
- * Ensures that 'combineAccessRules' flag in a .classpath file is correctly read.
- */
-public void testCombineAccessRules3() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P2");
-		editFile(
-			"/P2/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" combineaccessrules=\"false\" path=\"/P1\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n"
-		);
-		assertClasspathEquals(
-			project.getRawIncludepath(),
-			"/P1[CPE_PROJECT][K_SOURCE][isExported:false][combine access rules:false]"
-		);
-	} finally {
-		deleteProject("P2");
-	}
-}
-
-/*
- * Ensures that the absence of 'combineAccessRules' flag in a .classpath file is correctly handled.
- */
-public void testCombineAccessRules4() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P2");
-		editFile(
-			"/P2/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"/P1\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n"
-		);
-		assertClasspathEquals(
-			project.getRawIncludepath(),
-			"/P1[CPE_PROJECT][K_SOURCE][isExported:false][combine access rules:true]"
-		);
-	} finally {
-		deleteProject("P2");
-	}
-}
-
-/*
- * Ensures that the absence of 'combineAccessRules' flag in a .classpath file is correctly handled.
- */
-public void testCombineAccessRules5() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P2");
-		editFile(
-			"/P2/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"bin\"/>\n" + 
-			"</classpath>\n"
-		);
-		assertClasspathEquals(
-			project.getRawIncludepath(),
-			"/P2/src[CPE_SOURCE][K_SOURCE][isExported:false]"
-		);
-	} finally {
-		deleteProject("P2");
-	}
-}
-
-public void testCycleDetection() throws CoreException {
-	
-	int max = 5;
-	IJavaScriptProject[] p = new IJavaScriptProject[max];
-	String[] projectNames = new String[max];
-	try {
-		for (int i = 0; i < max; i++) {
-			projectNames[i] = "P"+i;
-			p[i] = this.createJavaProject(projectNames[i], new String[] {""});
-		}
-
-		IIncludePathEntry[][] extraEntries = new IIncludePathEntry[][]{ 
-			{ JavaScriptCore.newProjectEntry(p[1].getPath()), JavaScriptCore.newProjectEntry(p[3].getPath()) },
-			{ JavaScriptCore.newProjectEntry(p[2].getPath()), JavaScriptCore.newProjectEntry(p[3].getPath()) },
-			{ JavaScriptCore.newProjectEntry(p[1].getPath()) }, 
-			{ JavaScriptCore.newProjectEntry(p[4].getPath())}, 
-			{ JavaScriptCore.newProjectEntry(p[3].getPath()), JavaScriptCore.newProjectEntry(p[0].getPath()) } 
-		}; 
-
-		int[][] expectedCycleParticipants = new int[][] {
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[0]
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[1]
-			{ 0, 1, 1, 0, 0 }, // after setting CP p[2]
-			{ 0, 1, 1, 0, 0 }, // after setting CP p[3]
-			{ 1, 1, 1, 1, 1 }, // after setting CP p[4]
-		};
-		
-		for (int i = 0; i < p.length; i++){
-
-			// append project references			
-			IIncludePathEntry[] oldClasspath = p[i].getRawIncludepath();
-			IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldClasspath.length+extraEntries[i].length];
-			System.arraycopy(oldClasspath, 0 , newClasspath, 0, oldClasspath.length);
-			for (int j = 0; j < extraEntries[i].length; j++){
-				newClasspath[oldClasspath.length+j] = extraEntries[i][j];
-			}			
-			// set classpath
-			p[i].setRawIncludepath(newClasspath, null);
-
-			// check cycle markers
-			this.assertCycleMarkers(p[i], p, expectedCycleParticipants[i]);
-		}
-		//this.startDeltas();
-		
-	} finally {
-		this.deleteProjects(projectNames);
-	}
-}
-
-public void testCycleDetectionThroughContainers() throws CoreException {
-	
-	int max = 5;
-	IJavaScriptProject[] p = new IJavaScriptProject[max];
-	String[] projectNames = new String[max];
-	try {
-		for (int i = 0; i < max; i++) {
-			projectNames[i] = "P"+i;
-			p[i] = this.createJavaProject(projectNames[i], new String[] {""});
-		}
-
-		IJsGlobalScopeContainer[] containers = new IJsGlobalScopeContainer[]{ 
-			new TestContainer(
-				new Path("container0/default"), 
-				new IIncludePathEntry[]{ JavaScriptCore.newProjectEntry(p[3].getPath()) }),
-			new TestContainer(
-				new Path("container1/default"), 
-				new IIncludePathEntry[]{ JavaScriptCore.newProjectEntry(p[1].getPath()) }),
-			new TestContainer(
-				new Path("container2/default"), 
-				new IIncludePathEntry[]{ JavaScriptCore.newProjectEntry(p[4].getPath()) }),
-		};
-
-		IIncludePathEntry[][] extraEntries = new IIncludePathEntry[][]{ 
-			{ JavaScriptCore.newProjectEntry(p[1].getPath()), JavaScriptCore.newContainerEntry(containers[0].getPath()) },
-			{ JavaScriptCore.newProjectEntry(p[2].getPath()), JavaScriptCore.newProjectEntry(p[3].getPath()) },
-			{ JavaScriptCore.newContainerEntry(containers[1].getPath()) }, 
-			{ JavaScriptCore.newContainerEntry(containers[2].getPath())}, 
-			{ JavaScriptCore.newProjectEntry(p[3].getPath()), JavaScriptCore.newProjectEntry(p[0].getPath()) } 
-		}; 
-
-		int[][] expectedCycleParticipants = new int[][] {
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[0]
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[1]
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[2]
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[3]
-			{ 1, 1, 1, 1, 1 }, // after setting CP p[4]
-		};
-		
-		for (int i = 0; i < p.length; i++){
-
-			// append project references			
-			IIncludePathEntry[] oldClasspath = p[i].getRawIncludepath();
-			IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldClasspath.length+extraEntries[i].length];
-			System.arraycopy(oldClasspath, 0 , newClasspath, 0, oldClasspath.length);
-			for (int j = 0; j < extraEntries[i].length; j++){
-				newClasspath[oldClasspath.length+j] = extraEntries[i][j];
-			}			
-			// set classpath
-			p[i].setRawIncludepath(newClasspath, null);
-
-			// update container paths
-			if (i == p.length - 1){
-				JavaScriptCore.setJsGlobalScopeContainer(
-					containers[0].getPath(),
-					new IJavaScriptProject[]{ p[0] },
-					new IJsGlobalScopeContainer[] { containers[0] },
-					null);
-
-				JavaScriptCore.setJsGlobalScopeContainer(
-					containers[1].getPath(),
-					new IJavaScriptProject[]{ p[2] },
-					new IJsGlobalScopeContainer[] { containers[1] },
-					null);
-
-				JavaScriptCore.setJsGlobalScopeContainer(
-					containers[2].getPath(),
-					new IJavaScriptProject[]{ p[3] },
-					new IJsGlobalScopeContainer[] { containers[2] },
-					null);
-			}
-			
-			// check cycle markers
-			this.assertCycleMarkers(p[i], p, expectedCycleParticipants[i]);
-		}
-		//this.startDeltas();
-		
-	} finally {
-		//this.stopDeltas();
-		this.deleteProjects(projectNames);
-	}
-}
-public void testCycleDetectionThroughContainerVariants() throws CoreException {
-	
-	int max = 5;
-	IJavaScriptProject[] p = new IJavaScriptProject[max];
-	String[] projectNames = new String[max];
-	try {
-		for (int i = 0; i < max; i++) {
-			projectNames[i] = "P"+i;
-			p[i] = this.createJavaProject(projectNames[i], new String[] {""});
-		}
-
-		class LocalTestContainer implements IJsGlobalScopeContainer {
-			IPath path;
-			IIncludePathEntry[] entries;
-			LocalTestContainer(IPath path, IIncludePathEntry[] entries){
-				this.path = path;
-				this.entries = entries;
-			}
-			public IPath getPath() { return this.path; }
-			/**
-			 * @deprecated Use {@link #getIncludepathEntries()} instead
-			 */
-			public IIncludePathEntry[] getClasspathEntries() {
-				return getIncludepathEntries();
-			}
-			public IIncludePathEntry[] getIncludepathEntries() { return this.entries;	}
-			public String getDescription() { return null; 	}
-			public int getKind() { return 0; }
-			/* (non-Javadoc)
-			 * @see org.eclipse.wst.jsdt.core.IJsGlobalScopeContainer#resolvedLibraryImport(java.lang.String)
-			 */
-			public String[] resolvedLibraryImport(String a) {
-				return new String[] {a};
-			}
-		}
-
-		IJsGlobalScopeContainer[] containers = new IJsGlobalScopeContainer[]{ 
-			new LocalTestContainer(
-				new Path("container0/default"), 
-				new IIncludePathEntry[]{ JavaScriptCore.newProjectEntry(p[3].getPath()) }),
-			new LocalTestContainer(
-				new Path("container0/default"), 
-				new IIncludePathEntry[]{ JavaScriptCore.newProjectEntry(p[1].getPath()) }),
-			new LocalTestContainer(
-				new Path("container0/default"), 
-				new IIncludePathEntry[]{ JavaScriptCore.newProjectEntry(p[4].getPath()) }),
-		};
-
-		IIncludePathEntry[][] extraEntries = new IIncludePathEntry[][]{ 
-			{ JavaScriptCore.newProjectEntry(p[1].getPath()), JavaScriptCore.newContainerEntry(containers[0].getPath()) },
-			{ JavaScriptCore.newProjectEntry(p[2].getPath()), JavaScriptCore.newProjectEntry(p[3].getPath()) },
-			{ JavaScriptCore.newContainerEntry(containers[1].getPath()) }, 
-			{ JavaScriptCore.newContainerEntry(containers[2].getPath())}, 
-			{ JavaScriptCore.newProjectEntry(p[3].getPath()), JavaScriptCore.newProjectEntry(p[0].getPath()) } 
-		}; 
-
-		int[][] expectedCycleParticipants = new int[][] {
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[0]
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[1]
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[2]
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[3]
-			{ 1, 1, 1, 1, 1 }, // after setting CP p[4]
-		};
-		
-		for (int i = 0; i < p.length; i++){
-
-			// append project references			
-			IIncludePathEntry[] oldClasspath = p[i].getRawIncludepath();
-			IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldClasspath.length+extraEntries[i].length];
-			System.arraycopy(oldClasspath, 0 , newClasspath, 0, oldClasspath.length);
-			for (int j = 0; j < extraEntries[i].length; j++){
-				newClasspath[oldClasspath.length+j] = extraEntries[i][j];
-			}			
-			// set classpath
-			p[i].setRawIncludepath(newClasspath, null);
-
-			// update same container path for multiple projects
-			if (i == p.length - 1){
-				JavaScriptCore.setJsGlobalScopeContainer(
-					containers[0].getPath(),
-					new IJavaScriptProject[]{ p[0], p[2], p[3] },
-					new IJsGlobalScopeContainer[] { containers[0], containers[1], containers[2] },
-					null);
-			}
-			
-			// check cycle markers
-			this.assertCycleMarkers(p[i], p, expectedCycleParticipants[i]);
-		}
-		//this.startDeltas();
-		
-	} finally {
-		//this.stopDeltas();
-		this.deleteProjects(projectNames);
-	}
-}
-public void testCycleDetection2() throws CoreException {
-	
-	int max = 5;
-	IJavaScriptProject[] p = new IJavaScriptProject[max];
-	String[] projectNames = new String[max];
-	try {
-		for (int i = 0; i < max; i++) {
-			projectNames[i] = "P"+i;
-			p[i] = this.createJavaProject(projectNames[i], new String[] {""});
-		}
-
-		IIncludePathEntry[][] extraEntries = new IIncludePathEntry[][]{ 
-			{ JavaScriptCore.newProjectEntry(p[1].getPath()), JavaScriptCore.newProjectEntry(p[3].getPath()) },
-			{ JavaScriptCore.newProjectEntry(p[2].getPath()) },
-			{ JavaScriptCore.newProjectEntry(p[0].getPath()) }, 
-			{ JavaScriptCore.newProjectEntry(p[4].getPath())}, 
-			{ JavaScriptCore.newProjectEntry(p[0].getPath()) } 
-		}; 
-
-		int[][] expectedCycleParticipants = new int[][] {
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[0]
-			{ 0, 0, 0, 0, 0 }, // after setting CP p[1]
-			{ 1, 1, 1, 0, 0 }, // after setting CP p[2]
-			{ 1, 1, 1, 0, 0 }, // after setting CP p[3]
-			{ 1, 1, 1, 1, 1 }, // after setting CP p[4]
-		};
-		
-		for (int i = 0; i < p.length; i++){
-
-			// append project references			
-			IIncludePathEntry[] oldClasspath = p[i].getRawIncludepath();
-			IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldClasspath.length+extraEntries[i].length];
-			System.arraycopy(oldClasspath, 0 , newClasspath, 0, oldClasspath.length);
-			for (int j = 0; j < extraEntries[i].length; j++){
-				newClasspath[oldClasspath.length+j] = extraEntries[i][j];
-			}			
-			// set classpath
-			p[i].setRawIncludepath(newClasspath, null);
-
-			// check cycle markers
-			this.assertCycleMarkers(p[i], p, expectedCycleParticipants[i]);
-		}
-		//this.startDeltas();
-		
-	} finally {
-		//this.stopDeltas();
-		this.deleteProjects(projectNames);
-	}
-}
-
-public void testCycleDetection3() throws CoreException {
-	
-	int max = 6;
-	IJavaScriptProject[] p = new IJavaScriptProject[max];
-	String[] projectNames = new String[max];
-	try {
-		for (int i = 0; i < max; i++) {
-			projectNames[i] = "P"+i;
-			p[i] = this.createJavaProject(projectNames[i], new String[] {""});
-		}
-
-		IIncludePathEntry[][] extraEntries = new IIncludePathEntry[][]{ 
-			{ JavaScriptCore.newProjectEntry(p[2].getPath()), JavaScriptCore.newProjectEntry(p[4].getPath()) },
-			{ JavaScriptCore.newProjectEntry(p[0].getPath()) },
-			{ JavaScriptCore.newProjectEntry(p[3].getPath()) }, 
-			{ JavaScriptCore.newProjectEntry(p[1].getPath())}, 
-			{ JavaScriptCore.newProjectEntry(p[5].getPath()) }, 
-			{ JavaScriptCore.newProjectEntry(p[1].getPath()) } 
-		}; 
-
-		int[][] expectedCycleParticipants = new int[][] {
-			{ 0, 0, 0, 0, 0, 0 }, // after setting CP p[0]
-			{ 0, 0, 0, 0, 0, 0 }, // after setting CP p[1]
-			{ 0, 0, 0, 0, 0, 0 }, // after setting CP p[2]
-			{ 1, 1, 1, 1, 0, 0 }, // after setting CP p[3]
-			{ 1, 1, 1, 1, 0, 0 }, // after setting CP p[4]
-			{ 1, 1, 1, 1, 1 , 1}, // after setting CP p[5]
-		};
-		
-		for (int i = 0; i < p.length; i++){
-
-			// append project references			
-			IIncludePathEntry[] oldClasspath = p[i].getRawIncludepath();
-			IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldClasspath.length+extraEntries[i].length];
-			System.arraycopy(oldClasspath, 0 , newClasspath, 0, oldClasspath.length);
-			for (int j = 0; j < extraEntries[i].length; j++){
-				newClasspath[oldClasspath.length+j] = extraEntries[i][j];
-			}			
-			// set classpath
-			p[i].setRawIncludepath(newClasspath, null);
-
-			// check cycle markers
-			this.assertCycleMarkers(p[i], p, expectedCycleParticipants[i]);
-		}
-		//this.startDeltas();
-		
-	} finally {
-		//this.stopDeltas();
-		this.deleteProjects(projectNames);
-	}
-}
-/*
- * Ensures that a cycle is detected if introduced during a post-change event.
- * (regression test for bug 113051 No classpath marker produced when cycle through PDE container)
- */
-public void testCycleDetection4() throws CoreException {
-	IResourceChangeListener listener = new IResourceChangeListener() {
-		boolean containerNeedUpdate = true;
-		public void resourceChanged(IResourceChangeEvent event) {
-			if (containerNeedUpdate) {
-				TestContainer container = new TestContainer(
-					new Path("org.eclipse.wst.jsdt.core.tests.model.container/default"), 
-					new IIncludePathEntry[] { JavaScriptCore.newProjectEntry(new Path("/P1")) });
-				try {
-					JavaScriptCore.setJsGlobalScopeContainer(container.getPath(), new IJavaScriptProject[] {getJavaProject("P2")}, new IJsGlobalScopeContainer[] {container}, null);
-				} catch (JavaScriptModelException e) {
-					e.printStackTrace();
-				}
-				containerNeedUpdate = false;
-			}
-		}
-	};
-	try {
-		IJavaScriptProject p1 = createJavaProject("P1", new String[] {}, new String[] {}, new String[] {"/P2"});
-		TestContainer container = new TestContainer(
-			new Path("org.eclipse.wst.jsdt.core.tests.model.container/default"), 
-			new IIncludePathEntry[] {});
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {}, new String[] {container.getPath().toString()});
-		JavaScriptCore.setJsGlobalScopeContainer(container.getPath(), new IJavaScriptProject[] {p2}, new IJsGlobalScopeContainer[] {container}, null);
-		waitForAutoBuild();
-		getWorkspace().addResourceChangeListener(listener, IResourceChangeEvent.POST_CHANGE);
-		createFile("/P1/test.txt", "");
-		assertCycleMarkers(p1, new IJavaScriptProject[] {p1, p2}, new int[] {1, 1});
-	} finally {
-		getWorkspace().removeResourceChangeListener(listener);
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-public void testPerfDenseCycleDetection1() throws CoreException {
-	// each project prereqs all other projects
-	denseCycleDetection(5);
-}
-public void testPerfDenseCycleDetection2() throws CoreException {
-	// each project prereqs all other projects
-	denseCycleDetection(10);
-}
-public void testPerfDenseCycleDetection3() throws CoreException {
-	// each project prereqs all other projects
-	denseCycleDetection(20);
-}
-/*
- * Create projects and set classpaths in one batch
- */
-public void testNoCycleDetection1() throws CoreException {
-
-	// each project prereqs all the previous ones
-	noCycleDetection(5, false, false);
-	noCycleDetection(10, false, false);
-	noCycleDetection(20, false, false);
-
-	// each project prereqs all the next ones
-	noCycleDetection(5, true, false);
-	noCycleDetection(10, true, false);
-	noCycleDetection(20, true, false);
-}
-/*
- * Create projects first, then set classpaths
- */
-public void testNoCycleDetection2() throws CoreException {
-
-	// each project prereqs all the previous ones
-	noCycleDetection(5, false, true);
-	noCycleDetection(10, false, true);
-	noCycleDetection(20, false, true);
-
-	// each project prereqs all the next ones
-	noCycleDetection(5, true, true);
-	noCycleDetection(10, true, true);
-	noCycleDetection(20, true, true);
-}
-/*
- * Ensures that the .classpath file is not written to disk when setting the raw classpath with no resource change.
- */
-public void testNoResourceChange01() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src1"});
-		IIncludePathEntry[] newClasspath = createClasspath("P", new String[] {"/P/src2", ""});
-		project.setRawIncludepath(newClasspath, false/*cannot modify resources*/, null/*no progress*/);
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src1\"/>\n" + 
-			"   <classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.launching.JRE_CONTAINER\"/>\n" +
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>\n",
-			contents);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that the in-memory classpath is correct when setting the raw classpath with no resource change.
- */
-public void testNoResourceChange02() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src1"});
-		IIncludePathEntry[] newClasspath = createClasspath("P", new String[] {"/P/src2", ""});
-		project.setRawIncludepath(newClasspath, false/*cannot modify resources*/, null/*no progress*/);
-		assertClasspathEquals(
-			project.getRawIncludepath(),
-			"/P/src2[CPE_SOURCE][K_SOURCE][isExported:false]"
-		);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit on the old classpath doesn't exist after setting a new raw classpath with no resource change.
- */
-public void testNoResourceChange03() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src1"});
-		createFile(
-			"/P/src1/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("/P/src1/X.js");
-		cu.open(null);
-		IIncludePathEntry[] newClasspath = createClasspath("P", new String[] {"/P/src2", ""});
-		project.setRawIncludepath(newClasspath, false/*cannot modify resources*/, null/*no progress*/);
-		assertFalse("Compilation unit should not exist", cu.exists());
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that the delta is correct when setting a new raw classpath with no resource change.
- */
-public void testNoResourceChange04() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src1"});
-		createFolder("/P/src2");
-		IIncludePathEntry[] newClasspath = createClasspath("P", new String[] {"/P/src2", ""});
-		startDeltas();
-		project.setRawIncludepath(newClasspath, false/*cannot modify resources*/, null/*no progress*/);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CLASSPATH CHANGED}\n" + 
-			"	src1[*]: {REMOVED FROM CLASSPATH}\n" + 
-			"	src2[*]: {ADDED TO CLASSPATH}"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that the in-memory output is correct when setting the output with no resource change.
- */
-public void testNoResourceChange05() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src1"});
-		project.setRawIncludepath(project.getRawIncludepath(), false/*cannot modify resources*/, null/*no progress*/);
-		IIncludePathEntry[] entries = project.readRawIncludepath(); // force to read classpath
-		assertEquals(
-			"/P/src2",
-			entries[0].getPath().toString());
-	} finally {
-		deleteProject("P");
-	}
-}
-/**
- * Ensures that a duplicate entry created by editing the .classpath is detected.
- * (regression test for bug 24498 Duplicate entries on classpath cause CP marker to no longer refresh)
- */
-public void testDuplicateEntries() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"});
-		this.editFile(
-			"/P/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<classpath>\n" +
-			"    <classpathentry kind=\"src\" path=\"src\"/>\n" +
-			"    <classpathentry kind=\"src\" path=\"src\"/>\n" +
-			"    <classpathentry kind=\"output\" path=\"bin\"/>\n" +
-			"</classpath>"
-		);
-		assertMarkers(
-			"Unexpected markers",
-			"Build path contains duplicate entry: \'src\' for project P",
-			project);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-private void denseCycleDetection(final int numberOfParticipants) throws CoreException {
-	
-	final IJavaScriptProject[] projects = new IJavaScriptProject[numberOfParticipants];
-	final String[] projectNames  = new String[numberOfParticipants];
-	final int[] allProjectsInCycle = new int[numberOfParticipants];
-
-	try {
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				for (int i = 0; i < numberOfParticipants; i++){
-					projectNames[i] = "P"+i;
-					projects[i] = createJavaProject(projectNames[i], new String[]{""});
-					allProjectsInCycle[i] = 1;
-				}		
-				for (int i = 0; i < numberOfParticipants; i++){
-					IIncludePathEntry[] extraEntries = new IIncludePathEntry[numberOfParticipants-1];
-					int index = 0;
-					for (int j = 0; j < numberOfParticipants; j++){
-						if (i == j) continue;
-						extraEntries[index++] = JavaScriptCore.newProjectEntry(projects[j].getPath());
-					}
-					// append project references			
-					IIncludePathEntry[] oldClasspath = projects[i].getRawIncludepath();
-					IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldClasspath.length+extraEntries.length];
-					System.arraycopy(oldClasspath, 0 , newClasspath, 0, oldClasspath.length);
-					for (int j = 0; j < extraEntries.length; j++){
-						newClasspath[oldClasspath.length+j] = extraEntries[j];
-					}			
-					// set classpath
-					projects[i].setRawIncludepath(newClasspath, null);
-				}
-			}
-		}, 
-		null);
-		
-		for (int i = 0; i < numberOfParticipants; i++){
-			// check cycle markers
-			this.assertCycleMarkers(projects[i], projects, allProjectsInCycle);
-		}
-		
-	} finally {
-		this.deleteProjects(projectNames);
-	}
-}
-/*
- * When using forward references, all projects prereq all of the ones which have a greater index, 
- * e.g. P0, P1, P2:  P0 prereqs {P1, P2}, P1 prereqs {P2}, P2 prereqs {}
- * When no using forward references (i.e. backward refs), all projects prereq projects with smaller index
- * e.g. P0, P1, P2:  P0 prereqs {}, P1 prereqs {P0}, P2 prereqs {P0, P1}
- */
-private void noCycleDetection(final int numberOfParticipants, final boolean useForwardReferences, final boolean createProjectsFirst) throws CoreException {
-	
-	final IJavaScriptProject[] projects = new IJavaScriptProject[numberOfParticipants];
-	final String[] projectNames  = new String[numberOfParticipants];
-	final int[] allProjectsInCycle = new int[numberOfParticipants];
-	
-	final long[] start = new long[1];
-	final long[] time = new long[1];
-	
-	try {
-		if (createProjectsFirst) {
-			JavaScriptCore.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					for (int i = 0; i < numberOfParticipants; i++){
-						projectNames[i] = "P"+i;
-						projects[i] = createJavaProject(projectNames[i], new String[]{""});
-						allProjectsInCycle[i] = 0;
-					}
-				}
-			},
-			null);
-		}
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				if (!createProjectsFirst) {
-					for (int i = 0; i < numberOfParticipants; i++){
-						projectNames[i] = "P"+i;
-						projects[i] = createJavaProject(projectNames[i], new String[]{""});
-						allProjectsInCycle[i] = 0;
-					}		
-				}
-				for (int i = 0; i < numberOfParticipants; i++){
-					IIncludePathEntry[] extraEntries = new IIncludePathEntry[useForwardReferences ? numberOfParticipants - i -1 : i];
-					int index = 0;
-					for (int j = useForwardReferences ? i+1 : 0; 
-						useForwardReferences ? (j < numberOfParticipants) : (j < i); 
-						j++){
-						extraEntries[index++] = JavaScriptCore.newProjectEntry(projects[j].getPath());
-					}
-					// append project references			
-					IIncludePathEntry[] oldClasspath = projects[i].getRawIncludepath();
-					IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldClasspath.length+extraEntries.length];
-					System.arraycopy(oldClasspath, 0 , newClasspath, 0, oldClasspath.length);
-					for (int j = 0; j < extraEntries.length; j++){
-						newClasspath[oldClasspath.length+j] = extraEntries[j];
-					}			
-					// set classpath
-					long innerStart = System.currentTimeMillis(); // time spent in individual CP setting
-					projects[i].setRawIncludepath(newClasspath, null);
-					time[0] += System.currentTimeMillis() - innerStart;
-				}
-				start[0] = System.currentTimeMillis(); // time spent in delta refresh
-			}
-		}, 
-		null);
-		time[0] += System.currentTimeMillis()-start[0];
-		//System.out.println("No cycle check ("+numberOfParticipants+" participants) : "+ time[0]+" ms, "+ (useForwardReferences ? "forward references" : "backward references") + ", " + (createProjectsFirst ? "two steps (projects created first, then classpaths are set)" : "one step (projects created and classpaths set in one batch)"));
-		
-		for (int i = 0; i < numberOfParticipants; i++){
-			// check cycle markers
-			this.assertCycleMarkers(projects[i], projects, allProjectsInCycle);
-		}
-		
-	} finally {
-		this.deleteProjects(projectNames);
-	}
-}
-
-/*
- * test for bug 32690
- * simulate checkout of project with invalid classpath
- */
-public void testNestedSourceFolders() throws CoreException, IOException {
-	try {
-		// create project using Platform/Resources API
-		final IProject project = getProject("P");
-		IWorkspaceRunnable create = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				project.create(null, null);
-				project.open(null);
-			}
-		};
-		getWorkspace().run(create, null);
-		
-		// create folders src and src/src2 using java.io API
-		File pro = project.getLocation().toFile();
-		File src = createFolder(pro, "src");
-		createFolder(src, "src2");
-		
-		// create .project using java.io API
-		createFile(pro, ".project", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<projectDescription>\n" +
-			"	<name>org.eclipse.wst.jsdt.core</name>\n" +
-			"	<comment></comment>\n" +
-			"	<projects>\n" +
-			"	</projects>\n" +
-			"	<buildSpec>\n" +
-			"		<buildCommand>\n" +
-			"			<name>org.eclipse.wst.jsdt.core.javabuilder</name>\n" +
-			"			<arguments>\n" +
-			"			</arguments>\n" +
-			"		</buildCommand>\n" +
-			"	</buildSpec>\n" +
-			"	<natures>\n" +
-			"		<nature>org.eclipse.wst.jsdt.core.javanature</nature>\n" +
-			"	</natures>\n" +
-			"</projectDescription>");
-
-		// create .classpath using java.io API
-		createFile(pro, ".classpath",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<classpath>\n" +
-			"    <classpathentry kind=\"src\" path=\"src\"/>\n" +
-			"    <classpathentry kind=\"src\" path=\"src/src2\"/>\n" +
-			"    <classpathentry kind=\"output\" path=\"bin\"/>\n" +
-			"</classpath>"
-		);
-
-		// refresh
-		project.refreshLocal(IResource.DEPTH_INFINITE, null);
-		
-		assertMarkers(
-			"Unexpected markers",
-			"Cannot nest \'P/src/src2\' inside \'P/src\'. To enable the nesting exclude \'src2/\' from \'P/src\'",
-			JavaScriptCore.create(project));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that no problems are reported for an optional source entry with no corresponding folder.
- */
-public void testOptionalEntry1() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = this.createJavaProject("A", new String[] {});
-		IIncludePathAttribute attribute = JavaScriptCore.newIncludepathAttribute(IIncludePathAttribute.OPTIONAL, "true");
-		IIncludePathEntry[] classpath = 
-			new IIncludePathEntry[] {
-				JavaScriptCore.newSourceEntry(new Path("/A/src"), new IPath[0], new IPath[0], new Path("/A/bin"), new IIncludePathAttribute[] {attribute})
-			};
-		javaProject.setRawIncludepath(classpath, null);
-		assertMarkers(
-			"Unexpected markers",
-			"",
-			javaProject);
-	} finally {
-		this.deleteProject("A");
-	}
-}
-/*
- * Ensures that no problems are reported for an optional libary entry with no corresponding folder.
- */
-public void testOptionalEntry2() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = this.createJavaProject("A", new String[] {});
-		IIncludePathAttribute attribute = JavaScriptCore.newIncludepathAttribute(IIncludePathAttribute.OPTIONAL, "true");
-		IIncludePathEntry[] classpath = 
-			new IIncludePathEntry[] {
-				JavaScriptCore.newLibraryEntry(new Path("/A/lib"), null, null, null, new IIncludePathAttribute[] {attribute}, false)
-			};
-		javaProject.setRawIncludepath(classpath, null);
-		assertMarkers(
-			"Unexpected markers",
-			"",
-			javaProject);
-	} finally {
-		this.deleteProject("A");
-	}
-}
-/*
- * Ensures that no problems are reported for an optional project entry with no corresponding project.
- */
-public void testOptionalEntry3() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = this.createJavaProject("A", new String[] {});
-		IIncludePathAttribute attribute = JavaScriptCore.newIncludepathAttribute(IIncludePathAttribute.OPTIONAL, "true");
-		IIncludePathEntry[] classpath = 
-			new IIncludePathEntry[] {
-				JavaScriptCore.newProjectEntry(new Path("/B"), null/*no access rules*/, false/*don't combine access rule*/, new IIncludePathAttribute[] {attribute}, false/*not exported*/)
-			};
-		javaProject.setRawIncludepath(classpath, null);
-		assertMarkers(
-			"Unexpected markers",
-			"",
-			javaProject);
-	} finally {
-		this.deleteProject("A");
-	}
-}
-
-/**
- * Ensure classpath is refreshed when project is replaced (43670)
- */
-public void testReplaceProject() throws CoreException {
-	try {
-		final IJavaScriptProject javaProject = createJavaProject("P", new String[] {"src"});
-
-		ResourcesPlugin.getWorkspace().run(
-			new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IProjectDescription descr = javaProject.getProject().getDescription();
-					descr.setComment("dummy"); // ensure it is changed
-					javaProject.getProject().setDescription(descr, monitor);
-					editFile(
-						"/P/.settings/.jsdtscope",
-						"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-						"<classpath>\n" +
-						"    <classpathentry kind=\"src\" path=\"src2\"/>\n" +
-						"</classpath>"
-					);
-				}
-			},
-			null);
-		IIncludePathEntry[] classpath = javaProject.getRawIncludepath();
-		assertEquals("classpath should have been refreshed", new Path("/P/src2"), classpath[0].getPath());
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/*
- * Ensures that unknown classpath attributes in a .classpath file are not lost when read and rewritten.
- * (regression test for bug 101425 Classpath persistence should be resilient with unknown attributes)
- */
-public void testUnknownAttributes() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		editFile(
-			"/P/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry unknown=\"test\" kind=\"src\" path=\"src1\"/>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src2\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"bin\"/>\n" + 
-			"</classpath>\n"
-		);
-		IIncludePathEntry[] classpath = project.getRawIncludepath();
-		
-		// swap 2 entries
-		IIncludePathEntry src1 = classpath[0];
-		classpath[0] = classpath[1];
-		classpath[1] = src1;
-		project.setRawIncludepath(classpath, null);
-		
-		// check that .classpath has correct content
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src2\"/>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src1\" unknown=\"test\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"bin\"/>\n" + 
-			"</classpath>\n",
-			contents);		
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/*
- * Ensures that unknown classpath elements in a .classpath file are not lost when read and rewritten.
- * (regression test for bug 101425 Classpath persistence should be resilient with unknown attributes)
- */
-public void testUnknownElements1() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		editFile(
-			"/P/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src1\">\n" + 
-			"		<unknown>\n" +
-			"			<test kind=\"\"/>\n" +
-			"		</unknown>\n" +
-			"	</classpathentry>\n" +
-			"	<classpathentry kind=\"src\" path=\"src2\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"bin\"/>\n" + 
-			"</classpath>\n"
-		);
-		IIncludePathEntry[] classpath = project.getRawIncludepath();
-		
-		// swap 2 entries
-		IIncludePathEntry src1 = classpath[0];
-		classpath[0] = classpath[1];
-		classpath[1] = src1;
-		project.setRawIncludepath(classpath, null);
-		
-		// check that .classpath has correct content
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src2\"/>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src1\">\n" + 
-			"		<unknown>\n" +
-			"			<test kind=\"\"/>\n" +
-			"		</unknown>\n" +
-			"	</classpathentry>\n" +
-			"	<classpathentry kind=\"output\" path=\"bin\"/>\n" + 
-			"</classpath>\n",			
-			contents);		
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/*
- * Ensures that unknown classpath elements in a .classpath file are not lost when read and rewritten.
- * (regression test for bug 101425 Classpath persistence should be resilient with unknown attributes)
- */
-public void testUnknownElements2() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		editFile(
-			"/P/.settings/.jsdtscope",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" unknownattribute=\"abcde\" path=\"src1\">\n" + 
-			"		<unknown1>\n" +
-			"			<test kind=\"1\"/>\n" +
-			"			<test kind=\"2\"/>\n" +
-			"		</unknown1>\n" +
-			"		<unknown2 attribute2=\"\">\n" +
-			"			<test>\n" +
-			"				<other a=\"b\"/>\n" +
-			"			</test>\n" +
-			"		</unknown2>\n" +
-			"	</classpathentry>\n" +
-			"	<classpathentry kind=\"src\" path=\"src2\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"bin\"/>\n" + 
-			"</classpath>\n"
-		);
-		IIncludePathEntry[] classpath = project.getRawIncludepath();
-		
-		// swap 2 entries
-		IIncludePathEntry src1 = classpath[0];
-		classpath[0] = classpath[1];
-		classpath[1] = src1;
-		project.setRawIncludepath(classpath, null);
-		
-		// check that .classpath has correct content
-		String contents = new String (org.eclipse.wst.jsdt.internal.core.util.Util.getResourceContentsAsCharArray(getFile("/P/.settings/.jsdtscope")));
-		assertSourceEquals(
-			"Unexpected content", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src2\"/>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src1\" unknownattribute=\"abcde\">\n" + 
-			"		<unknown1>\n" + 
-			"			<test kind=\"1\"/>\n" + 
-			"			<test kind=\"2\"/>\n" + 
-			"		</unknown1>\n" + 
-			"		<unknown2 attribute2=\"\">\n" + 
-			"			<test>\n" + 
-			"				<other a=\"b\"/>\n" + 
-			"			</test>\n" + 
-			"		</unknown2>\n" + 
-			"	</classpathentry>\n" + 
-			"	<classpathentry kind=\"output\" path=\"bin\"/>\n" + 
-			"</classpath>\n",
-			contents);		
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=55992
- * Check that Assert.AssertionFailedException exception is well catched
- * 	a) when verifying a classpath entry
- * 	b) when verifying whole classpath
- */
-public void testBug55992a() throws CoreException {
-	try {
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {});
-	
-		IPath path = getExternalJCLPath("");
-		IPath sourceAttachmentPath = new Path("jclMin.zip");
-		JavaScriptCore.setIncludepathVariables(
-			new String[] {"TEST_LIB", "TEST_SRC"},
-			new IPath[] {path, sourceAttachmentPath},
-			null);
-
-		ClasspathEntry cp = new ClasspathEntry(
-			IPackageFragmentRoot.K_SOURCE,
-			IIncludePathEntry.CPE_VARIABLE,
-			new Path("TEST_LIB"),
-			ClasspathEntry.INCLUDE_ALL, 
-			ClasspathEntry.EXCLUDE_NONE, 
-			new Path("TEST_SRC"),
-			null,
-			null, // specific output folder
-			false,
-			(IAccessRule[]) null,
-			false,
-			ClasspathEntry.NO_EXTRA_ATTRIBUTES);
-		IJavaScriptModelStatus status = JavaScriptConventions.validateClasspathEntry(proj, cp, false);
-		assertEquals(
-			"assertion failed: Source attachment path \'jclMin.zip\' for IIncludePathEntry must be absolute",
-			status.getMessage());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61214
- */
-public void testRemoveDuplicates() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {""});
-		IIncludePathEntry[] p1ClasspathEntries = new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(getExternalJCLPath(""), null, null, true)};
-		setClasspath(p1, p1ClasspathEntries);
-		IJavaScriptProject  p2 = this.createJavaProject("P2", new String[] {""});
-		IIncludePathEntry[] p2ClasspathEntries = new IIncludePathEntry[]{
-				JavaScriptCore.newProjectEntry(new Path("/P1")),
-				JavaScriptCore.newLibraryEntry(getExternalJCLPath(""), null, null, false)
-		};
-		setClasspath(p2, p2ClasspathEntries);
-	
-		IIncludePathEntry[] classpath = ((JavaProject)p2).getExpandedClasspath();
-		assertEquals("Unexpected number of classpath entries", 2, classpath.length);
-		assertEquals("Unexpected first entry", "/P1", classpath[0].getPath().toString());
-		assertEquals("Unexpected second entry", getSystemJsPathString(), classpath[1].getPath().toOSString());
-	} finally {
-		this.deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeCorrectionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeCorrectionTests.java
deleted file mode 100644
index 23577a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeCorrectionTests.java
+++ /dev/null
@@ -1,731 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.CorrectionEngine;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptModelMarker;
-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.search.IJavaScriptSearchConstants;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope;
-import org.eclipse.wst.jsdt.core.search.SearchEngine;
-import org.eclipse.wst.jsdt.core.search.SearchPattern;
-import org.eclipse.wst.jsdt.core.search.TypeNameRequestor;
-
-public class CodeCorrectionTests extends AbstractJavaModelTests {
-	public static boolean fgDebug = false;
-	public static boolean fgSpecific = false;
-
-	public CodeCorrectionTests(String name) {
-		super(name);
-	}
-
-	private IMarker[] getMarkers(IJavaScriptUnit unit) {
-		try {
-			IResource resource = unit.getCorrespondingResource();
-			return resource.findMarkers(
-					IJavaScriptModelMarker.JAVASCRIPT_MODEL_PROBLEM_MARKER,
-					true, IResource.DEPTH_INFINITE);
-		} catch (CoreException e) {
-		}
-		return new IMarker[0];
-	}
-
-	private IMarker getMarker(IJavaScriptUnit unit, String message)
-			throws CoreException {
-		IMarker[] markers = getMarkers(unit);
-		for (int i = 0; i < markers.length; i++) {
-			IMarker marker = markers[i];
-			if (message.equals(marker.getAttribute(IMarker.MESSAGE))) {
-				return marker;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the project names to load in the solution when an independent test
-	 * suite is being run.
-	 */
-	public static String[] getProjectNames() {
-		return new String[] { "Compiler", "CodeCorrection" };
-	}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-
-		IJavaScriptProject project = setUpJavaProject("CodeCorrection");
-
-		// dummy query for waiting until the indexes are ready
-		SearchEngine engine = new SearchEngine();
-		IJavaScriptSearchScope scope = SearchEngine
-				.createJavaSearchScope(new IJavaScriptElement[] { project });
-		try {
-			engine.searchAllTypeNames(null, SearchPattern.R_EXACT_MATCH,
-					"!@$#!@".toCharArray(), SearchPattern.R_PATTERN_MATCH
-							| SearchPattern.R_CASE_SENSITIVE,
-					IJavaScriptSearchConstants.CLASS, scope,
-					new TypeNameRequestor() {
-						public void acceptType(int modifiers,
-								char[] packageName, char[] simpleTypeName,
-								char[][] enclosingTypeNames, String path) {
-						}
-					}, IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-					null);
-		} catch (CoreException e) {
-		}
-		// do a full build to create markers
-		JavaScriptCore.setOptions(JavaScriptCore.getDefaultOptions());
-		try {
-			getWorkspace().getRoot().getProject("CodeCorrection").build(
-					IncrementalProjectBuilder.FULL_BUILD, null);
-			waitForAutoBuild();
-		} catch (CoreException e) {
-			assertTrue("building failed", false);
-		}
-	}
-
-	public void tearDownSuite() throws Exception {
-		deleteProject("CodeCorrection");
-
-		super.tearDownSuite();
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(CodeCorrectionTests.class);
-		/*
-		 * Suite suite = new Suite(CodeCorrectionTests.class.getName()); if
-		 * (fgSpecific) { suite.addTest(new
-		 * CodeCorrectionTests("testCorrectMethod1"));
-		 * 
-		 * return suite; } suite.addTest(new
-		 * CodeCorrectionTests("testCorrectFieldType1")); suite.addTest(new
-		 * CodeCorrectionTests("testCorrectFieldType2")); suite.addTest(new
-		 * CodeCorrectionTests("testCorrectFieldType3")); suite.addTest(new
-		 * CodeCorrectionTests("testCorrectLocalVariableType1"));
-		 * suite.addTest(new
-		 * CodeCorrectionTests("testCorrectLocalVariableType2"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectImport1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectImport2"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectImport3"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectSuperClass1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectSuperClass2"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectSuperInterface1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectSuperInterface2"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectException1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectException2"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectMethod1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectMethod2"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectField1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectField2"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectLocalVariable1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectArgument1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectReturnType1"));
-		 * suite.addTest(new CodeCorrectionTests("testCorrectReturnType2"));
-		 * suite.addTest(new CodeCorrectionTests("testWarningTokens"));
-		 * 
-		 * return suite;
-		 */
-	}
-
-	public void testCorrectFieldType1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectFieldType1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "dddz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "ddd\n" + "ddd.eee",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectFieldType2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectFieldType2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "AClassz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "AClass\n" + "AClass2",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectFieldType3() throws CoreException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectFieldType3.js");
-		IMarker marker = getMarker(cu, "AClassz cannot be resolved to a type");
-		assertTrue("Marker not found", marker != null);
-		try {
-			engine.computeCorrections(marker, null, 0, requestor);
-		} catch (CoreException e) {
-		}
-
-		String src = cu.getSource();
-		String error = "AClassz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "AClass\n" + "AClass2",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectLocalVariableType1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectLocalVariableType1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "dddz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "ddd\n" + "ddd.eee",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectLocalVariableType2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectLocalVariableType2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "AClassz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "AClass\n" + "AClass2",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectImport1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectImport1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "dddz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "ddd\n" + "ddd.eee",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectImport2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectImport2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "dddz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "ddd\n" + "ddd.eee",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectImport3() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectImport3.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "AClassz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "AClass\n" + "AClass2",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectSuperClass1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectSuperClass1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "dddz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "ddd\n" + "ddd.eee",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectSuperClass2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectSuperClass2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "AClassz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "AClass\n" + "AClass2",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectSuperInterface1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectSuperInterface1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "cccz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "ccc\n" + "cccInterface",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectSuperInterface2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectSuperInterface2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "AListenerz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "AListener", requestor
-				.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", "" + start,
-				requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", "" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectException1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectException1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "bbbz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "bbb\n" + "bbb.ccc",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectException2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectException2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "AnExceptionz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "AnException", requestor
-				.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", "" + start,
-				requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", "" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectMethod1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectMethod1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "bar";
-		int start = src.lastIndexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have one suggestion", "bar0", requestor
-				.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", "" + start,
-				requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", "" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectMethod2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectMethod2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "bar";
-		int start = src.lastIndexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have one suggestion", "bar0", requestor
-				.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", "" + start,
-				requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", "" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectField1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectField1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "bar";
-		int start = src.lastIndexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have one suggestion", "bar0", requestor
-				.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", "" + start,
-				requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", "" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectField2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectField2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "bar";
-		int start = src.lastIndexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have one suggestion", "bar0", requestor
-				.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", "" + start,
-				requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", "" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectLocalVariable1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectLocalVariable1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "bar";
-		int start = src.lastIndexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have one suggestion", "bar0", requestor
-				.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", "" + start,
-				requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", "" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectArgument1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectArgument1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "bar";
-		int start = src.lastIndexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have one suggestion", "bar0", requestor
-				.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", "" + start,
-				requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", "" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectReturnType1() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectReturnType1.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "dddz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "ddd\n" + "ddd.eee",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testCorrectReturnType2() throws JavaScriptModelException {
-		CorrectionEngine engine = new CorrectionEngine(JavaScriptCore
-				.getOptions());
-		CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor();
-		IJavaScriptUnit cu = getCompilationUnit("CodeCorrection", "src", "",
-				"CorrectReturnType2.js");
-		IMarker[] markers = getMarkers(cu);
-		assertTrue("should have one problem", markers.length == 1);
-		engine.computeCorrections(markers[0], null, 0, requestor);
-
-		String src = cu.getSource();
-		String error = "AClassz";
-		int start = src.indexOf(error);
-		int end = start + error.length();
-
-		assertEquals("should have two suggestions", "AClass\n" + "AClass2",
-				requestor.getSuggestions());
-		assertEquals("a start of a suggestion is not correct", start + "\n"
-				+ start, requestor.getStarts());
-		assertEquals("a end of a suggestion is not correct", end + "\n" + end,
-				requestor.getEnds());
-	}
-
-	public void testWarningTokens() {
-		assertNull("assertIdentifier is a valid token for @SuppressWarnings",
-				CorrectionEngine
-						.getWarningToken(IProblem.UseAssertAsAnIdentifier));
-		assertEquals("wrong token", "deprecation", CorrectionEngine
-				.getWarningToken(IProblem.UsingDeprecatedConstructor));
-		assertEquals("wrong token", "deprecation", CorrectionEngine
-				.getWarningToken(IProblem.OverridingDeprecatedMethod));
-		assertEquals("wrong token", "deprecation", CorrectionEngine
-				.getWarningToken(IProblem.UsingDeprecatedType));
-		assertEquals("wrong token", "deprecation", CorrectionEngine
-				.getWarningToken(IProblem.UsingDeprecatedMethod));
-		assertEquals("wrong token", "deprecation", CorrectionEngine
-				.getWarningToken(IProblem.UsingDeprecatedField));
-		assertEquals("wrong token", "finally", CorrectionEngine
-				.getWarningToken(IProblem.FinallyMustCompleteNormally));
-		assertEquals("wrong token", "hiding", CorrectionEngine
-				.getWarningToken(IProblem.FieldHidingLocalVariable));
-		assertEquals("wrong token", "hiding", CorrectionEngine
-				.getWarningToken(IProblem.FieldHidingField));
-		assertEquals("wrong token", "hiding", CorrectionEngine
-				.getWarningToken(IProblem.LocalVariableHidingLocalVariable));
-		assertEquals("wrong token", "hiding", CorrectionEngine
-				.getWarningToken(IProblem.LocalVariableHidingField));
-		assertEquals("wrong token", "hiding", CorrectionEngine
-				.getWarningToken(IProblem.ArgumentHidingLocalVariable));
-		assertEquals("wrong token", "hiding", CorrectionEngine
-				.getWarningToken(IProblem.ArgumentHidingField));
-		assertEquals("wrong token", "hiding", CorrectionEngine
-				.getWarningToken(IProblem.MaskedCatch));
-		assertEquals("wrong token", "nls", CorrectionEngine
-				.getWarningToken(IProblem.NonExternalizedStringLiteral));
-		assertEquals("wrong token", "unused", CorrectionEngine
-				.getWarningToken(IProblem.LocalVariableIsNeverUsed));
-		assertEquals("wrong token", "unused", CorrectionEngine
-				.getWarningToken(IProblem.ArgumentIsNeverUsed));
-		assertEquals("wrong token", "unused", CorrectionEngine
-				.getWarningToken(IProblem.UnusedPrivateConstructor));
-		assertEquals("wrong token", "unused", CorrectionEngine
-				.getWarningToken(IProblem.UnusedPrivateMethod));
-		assertEquals("wrong token", "unused", CorrectionEngine
-				.getWarningToken(IProblem.UnusedPrivateField));
-		assertEquals("wrong token", "unused", CorrectionEngine
-				.getWarningToken(IProblem.UnusedPrivateType));
-		assertEquals("wrong token", "unused", CorrectionEngine
-				.getWarningToken(IProblem.UnusedMethodDeclaredThrownException));
-		assertEquals(
-				"wrong token",
-				"unused",
-				CorrectionEngine
-						.getWarningToken(IProblem.UnusedConstructorDeclaredThrownException));
-		assertEquals("wrong token", "static-access", CorrectionEngine
-				.getWarningToken(IProblem.IndirectAccessToStaticMethod));
-		assertEquals("wrong token", "static-access", CorrectionEngine
-				.getWarningToken(IProblem.IndirectAccessToStaticField));
-		assertEquals("wrong token", "static-access", CorrectionEngine
-				.getWarningToken(IProblem.IndirectAccessToStaticType));
-		assertEquals("wrong token", "static-access", CorrectionEngine
-				.getWarningToken(IProblem.NonStaticAccessToStaticMethod));
-		assertEquals("wrong token", "static-access", CorrectionEngine
-				.getWarningToken(IProblem.NonStaticAccessToStaticField));
-		assertEquals("wrong token", "synthetic-access", CorrectionEngine
-				.getWarningToken(IProblem.NeedToEmulateFieldReadAccess));
-		assertEquals("wrong token", "synthetic-access", CorrectionEngine
-				.getWarningToken(IProblem.NeedToEmulateFieldWriteAccess));
-		assertEquals("wrong token", "synthetic-access", CorrectionEngine
-				.getWarningToken(IProblem.NeedToEmulateMethodAccess));
-		assertEquals("wrong token", "synthetic-access", CorrectionEngine
-				.getWarningToken(IProblem.NeedToEmulateConstructorAccess));
-		assertEquals("wrong token", "unqualified-field-access",
-				CorrectionEngine
-						.getWarningToken(IProblem.UnqualifiedFieldAccess));
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeCorrectionTestsRequestor.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeCorrectionTestsRequestor.java
deleted file mode 100644
index 3174482..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeCorrectionTestsRequestor.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.*;
-
-import org.eclipse.wst.jsdt.core.ICorrectionRequestor;
-
-public class CodeCorrectionTestsRequestor implements ICorrectionRequestor {
-	private class Suggestion {
-		public String text;
-		public int start;
-		public int end;
-		public Suggestion(char[] text, int start, int end){
-			this.text = new String(text);
-			this.start = start;
-			this.end = end;
-		}
-	}
-	
-	class SuggestionComparator implements Comparator {
-		public int compare(Object o1,Object o2) {
-			Suggestion s1 = (Suggestion)o1;
-			Suggestion s2 = (Suggestion)o2;
-			
-			int result = s1.text.compareTo(s2.text);
-			if(result == 0) {
-				result = s1.start - s2.start;
-				if(result == 0) {
-					result = s1.end - s2.end;	
-				}
-			}
-			return result;
-		}
-	}
-	
-	
-	private Vector fSuggestions = new Vector(5);
-	
-	public void acceptClass(char[] packageName,char[] className,char[] correctionName,int modifiers,int correctionStart,int correctionEnd){
-		fSuggestions.addElement(new Suggestion(correctionName, correctionStart, correctionEnd));
-	}
-	
-	public void acceptField(char[] declaringTypePackageName,char[] declaringTypeName,char[] name,char[] typePackageName,char[] typeName,char[] correctionName,int modifiers,int correctionStart,int correctionEnd){
-		fSuggestions.addElement(new Suggestion(correctionName, correctionStart, correctionEnd));
-	}
-	
-	public void acceptInterface(char[] packageName,char[] interfaceName,char[] correctionName,int modifiers,int correctionStart,int correctionEnd){
-		fSuggestions.addElement(new Suggestion(correctionName, correctionStart, correctionEnd));
-	}
-	
-	public void acceptLocalVariable(char[] name,char[] typePackageName,char[] typeName,int modifiers,int correctionStart,int correctionEnd){
-		fSuggestions.addElement(new Suggestion(name, correctionStart, correctionEnd));
-	}
-	
-	public void acceptMethod(char[] declaringTypePackageName,char[] declaringTypeName,char[] selector,char[][] parameterPackageNames,char[][] parameterTypeNames,char[][] parameterNames,char[] returnTypePackageName,char[] returnTypeName,char[] correctionName,int modifiers,int correctionStart,int correctionEnd){
-		fSuggestions.addElement(new Suggestion(correctionName, correctionStart, correctionEnd));
-	}
-	
-	public void acceptPackage(char[] packageName,char[] correctionName,int correctionStart,int correctionEnd){
-		fSuggestions.addElement(new Suggestion(correctionName, correctionStart, correctionEnd));
-	}
-	
-	public String getSuggestions(){
-		Suggestion[] suggestions = getSortedSuggestions();
-		
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < suggestions.length; i++) {
-			if(i != 0)
-				result.append('\n');
-				
-			result.append(suggestions[i].text);
-		}
-		return result.toString();
-	}
-	
-	public String getStarts(){
-		Suggestion[] suggestions = getSortedSuggestions();
-		
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < suggestions.length; i++) {
-			if(i != 0)
-				result.append('\n');
-				
-			result.append(suggestions[i].start);
-		}
-		return result.toString();
-	}
-	
-	public String getEnds(){
-		Suggestion[] suggestions = getSortedSuggestions();
-		
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < suggestions.length; i++) {
-			if(i != 0)
-				result.append('\n');
-				
-			result.append(suggestions[i].end);
-		}
-		return result.toString();
-	}
-	
-	private Suggestion[] getSortedSuggestions(){
-		Object[] unsorted = fSuggestions.toArray();
-		Suggestion[] sorted = new Suggestion[unsorted.length];
-		System.arraycopy(unsorted, 0, sorted, 0, unsorted.length);
-		Arrays.sort(sorted, new SuggestionComparator());
-		return sorted;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeSnippetParsingUtilTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeSnippetParsingUtilTests.java
deleted file mode 100644
index bd185b6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CodeSnippetParsingUtilTests.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.wst.jsdt.core.tests.model;

-

-import java.util.ArrayList;

-import java.util.List;

-

-import junit.framework.Test;

-import junit.framework.TestCase;

-import junit.framework.TestSuite;

-

-import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.IProjectDescription;

-import org.eclipse.core.resources.ResourcesPlugin;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.NullProgressMonitor;

-import org.eclipse.core.runtime.Path;

-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.IPackageFragmentRoot;

-import org.eclipse.wst.jsdt.core.IProblemRequestor;

-import org.eclipse.wst.jsdt.core.JavaScriptCore;

-import org.eclipse.wst.jsdt.core.JavaScriptModelException;

-import org.eclipse.wst.jsdt.core.LibrarySuperType;

-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.core.dom.AST;

-import org.eclipse.wst.jsdt.internal.core.JavaProject;

-import org.eclipse.wst.jsdt.launching.JavaRuntime;

-

-public class CodeSnippetParsingUtilTests extends TestCase {

-	public static Test suite() {

-		return new TestSuite(CodeSnippetParsingUtilTests.class);

-	}

-

-	/**

-	 * 

-	 */

-	public CodeSnippetParsingUtilTests() {

-	}

-

-	/**

-	 * @param name

-	 */

-	public CodeSnippetParsingUtilTests(String name) {

-		super(name);

-	}

-

-	public void testErrorDetection() throws JavaScriptModelException, CoreException {

-		String projectName = ".jsValidation";

-		String fileName = "snippet.js";

-		String contents = "var params = \"someBadString\".substring(1,2,3,4);\nparahnas.shift();";

-

-		// Create the JavaScript project

-		IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(projectName);

-		description.setNatureIds(new String[]{JavaScriptCore.NATURE_ID});

-		IProject iProject = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);

-		iProject.create(description, new NullProgressMonitor());

-		iProject.open(null);

-

-		// Setup the JavaScript project

-		IJavaScriptProject project = JavaScriptCore.create(iProject);

-		project.setRawIncludepath(null, new NullProgressMonitor());

-		LibrarySuperType superType = new LibrarySuperType(new Path(JavaRuntime.DEFAULT_SUPER_TYPE_LIBRARY), project, JavaRuntime.DEFAULT_SUPER_TYPE);

-		((JavaProject) project).setCommonSuperType(superType);

-

-		// Now create the IJavascriptUnit, and fill in its contents

-		IPackageFragmentRoot root = project.getPackageFragmentRoot(iProject);

-		IPackageFragment packageFragment = root.getPackageFragment(IPackageFragment.DEFAULT_PACKAGE_NAME);

-		IJavaScriptUnit javaScriptUnit = packageFragment.getJavaScriptUnit(fileName);

-

-		final List problems = new ArrayList();

-		final IProblemRequestor requestor = new IProblemRequestor() {

-			public void acceptProblem(IProblem problem) {

-//				System.err.println(problem.getMessage());

-				problems.add(problem);

-			}

-

-			public boolean isActive() {

-				return true;

-			}

-

-			public void beginReporting() {

-				problems.clear();

-			}

-

-			public void endReporting() {

-			}

-		};

-		WorkingCopyOwner owner = new WorkingCopyOwner() {

-			public IProblemRequestor getProblemRequestor(IJavaScriptUnit workingCopy) {

-				return requestor;

-			}

-		};

-

-		/*

-		 * Using a "working copy" allows us to not have to create the file on

-		 * disk

-		 */

-		IJavaScriptUnit workingCopy = javaScriptUnit.getWorkingCopy(owner, null);

-		workingCopy.getBuffer().setContents(contents);

-

-		/*

-		 * Reconcile the working copy. Any problems found will be reported to

-		 * the IProblemRequestor from the given WorkingCopyOwner.

-		 */

-		workingCopy.reconcile(AST.JLS3, true, true, owner, new NullProgressMonitor());

-

-		// Clean up

-		workingCopy.discardWorkingCopy();

-

-		assertFalse("no problems found", problems.isEmpty());

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompilationUnitTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompilationUnitTests.java
deleted file mode 100644
index 880e784..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompilationUnitTests.java
+++ /dev/null
@@ -1,1422 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.internal.core.*;
-import org.eclipse.wst.jsdt.internal.core.util.Util;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-public class CompilationUnitTests extends ModifyingResourceTests {
-	IJavaScriptUnit cu;
-	IJavaScriptUnit workingCopy;
-	IJavaScriptProject testProject;
-	
-public CompilationUnitTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	this.testProject = createJavaProject("P", new String[] {"src"}, new String[] {getSystemJsPathString()}, "bin", "1.5");
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/X.js",
-		"\n\n" + 	// package now includes comment (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=93880)
-						// => need some empty line at beginning to be able to have cu without any other element (see testGetElementAt())
-		"/* some comment */" +
-		"  var f1=1;\n" +
-		"  /** @deprecated\n */" +
-		"  var f2;\n" +
-		"  var f3;\n" +
-		"  var f4;\n" +
-		"  var f5, f6, f7;\n" +
-		"  // @Deprecated\n" +
-		"  var f8;\n" +
-		"  function foo( y) {\n" +
-		"  }\n" +
-		"  function bar() {\n" +
-		"  }\n" +
-		"  /** @deprecated\n */" +
-		"  function fred() {\n" +
-		"  }\n" +
-		"  // @Deprecated\n" +
-		"  function fred2() {\n" +
-		"  }\n" +
-		""
-	);
-	this.cu = getCompilationUnit("/P/src/p/X.js");
-}
-
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//	TESTS_PREFIX = "testGetChildren";
-//	TESTS_NAMES = new String[] { "testDefaultFlag1" };
-//	TESTS_NUMBERS = new int[] { 13 };
-//	TESTS_RANGE = new int[] { 16, -1 };
-}
-public static Test suite() {
-	return buildModelTestSuite(CompilationUnitTests.class);
-}
-protected void tearDown() throws Exception {
-	if (this.workingCopy != null)
-		this.workingCopy.discardWorkingCopy();
-	super.tearDown();
-}
-public void tearDownSuite() throws Exception {
-	this.deleteProject("P");
-	super.tearDownSuite();
-}
-/**
- * Create working copy and compute problems.
- * 
- * Note that in this case, a complete parse of javadoc comment is performed
- * (ie. done with checkDocComment = true) instead of a "light" parse when
- * problems are not computed.
- * 
- * See JavaScriptUnit#buildStructure() line with comment: // disable javadoc parsing if not computing problems, not resolving and not creating ast
- * and org.eclipse.wst.jsdt.internal.compiler.parser.JavadocParser#checkDeprecation(int)
- */
-private IJavaScriptUnit createWorkingCopyComputingProblems(String source) throws JavaScriptModelException {
-	this.workingCopy = getWorkingCopy("/P/src/p/Y.js", source, true);
-	return this.workingCopy;
-}
-
-
-public void test00Class() throws CoreException {
-	try {
-		
-		String source =
-			"MyClass.prototype.someMethod = MyClass_someMethod;\n" + 
-			"function MyClass()\n" + 
-			"{\n" + 
-			"this.field1=0;\n" + 
-			"}\n" + 
-			"function MyClass_someMethod()\n" + 
-			"{\n" + 
-			"}";
-		createFile("/P/src/X.js", source);
-		final IJavaScriptUnit compilationUnit = getCompilationUnit("/P/src/X.js");
-		IType type = compilationUnit.getType("MyClass");
-		assertTrue("Type not defined", type.exists());
-		
-		IField[] fields= type.getFields();
-		assertEquals("Wrong number of fields returned",  1, fields.length);
-		assertEquals("Incorrect name for the  field", "field1", fields[0].getElementName());
-		assertTrue("Field should exist " , fields[0].exists());
-
-		IFunction[] methods= type.getFunctions();
-		assertEquals("Wrong number of methods returned",  2, methods.length);
-		assertEquals("Incorrect name for the  method", "someMethod", methods[0].getElementName());
-		assertTrue("Field should exist " ,methods[0].exists());
-
-		
-	} finally {
-		deleteFile("/P/src/X.js");
-	}
-}
-
-
-
-
-
-/**
- * Calls methods that do nothing to ensure code coverage
- */
-public void testCodeCoverage() throws JavaScriptModelException {
-	this.cu.discardWorkingCopy();
-	this.cu.restore();
-}
-/**
- * Ensures <code>commitWorkingCopy(boolean, IProgressMonitor)</code> throws the correct 
- * <code>JavaScriptModelException</code> for a <code>JavaScriptUnit</code>.
- */
-public void testCommitWorkingCopy() {
-	try {
-		this.cu.commitWorkingCopy(false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Incorrect status for committing a JavaScriptUnit", jme.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-		return;
-	}
-	assertTrue("A compilation unit should throw an exception is a commit is attempted", false);
-}
-
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 23207 Flags.isDeprecated(IFunction.getFlags()) doesn't work)
- */
-//public void testDeprecatedFlag01() throws JavaScriptModelException {
-//	IType type = this.cu.getType("X");
-//	assertTrue("Type X should not be deprecated", !Flags.isDeprecated(type.getFlags()));
-//}
-//
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 23207 Flags.isDeprecated(IFunction.getFlags()) doesn't work)
- */
-//public void testDeprecatedFlag02() throws JavaScriptModelException {
-//	IType type = this.cu.getType("I");
-//	assertTrue("Type I should be deprecated", Flags.isDeprecated(type.getFlags()));
-//}
-
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 23207 Flags.isDeprecated(IFunction.getFlags()) doesn't work)
- */
-public void testDeprecatedFlag03() throws JavaScriptModelException {
-	IField field = this.cu.getField("f1");
-	assertTrue("Field f1 should not be deprecated", !Flags.isDeprecated(field.getFlags()));
-}
-
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 23207 Flags.isDeprecated(IFunction.getFlags()) doesn't work)
- */
-public void testDeprecatedFlag04() throws JavaScriptModelException {
-	IField field = this.cu.getField("f2");
-	assertTrue("Field f2 should be deprecated", Flags.isDeprecated(field.getFlags()));
-}
-
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 23207 Flags.isDeprecated(IFunction.getFlags()) doesn't work)
- */
-public void testDeprecatedFlag05() throws JavaScriptModelException {
-	IFunction method = this.cu.getFunction("bar", new String[]{});
-	assertTrue("Method bar should not be deprecated", !Flags.isDeprecated(method.getFlags()));
-}
-
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 23207 Flags.isDeprecated(IFunction.getFlags()) doesn't work)
- */
-public void testDeprecatedFlag06() throws JavaScriptModelException {
-	IFunction method = this.cu.getFunction("fred", new String[]{});
-	assertTrue("Method fred should be deprecated", Flags.isDeprecated(method.getFlags()));
-}
-
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 89807 Outliner should recognize @Deprecated annotation)
- */
-public void testDeprecatedFlag07() throws JavaScriptModelException {
-	IType type = this.cu.getType("I3");
-	assertTrue("Type I3 should be deprecated", Flags.isDeprecated(type.getFlags()));
-}
-
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 89807 Outliner should recognize @Deprecated annotation)
- */
-public void testDeprecatedFlag08() throws JavaScriptModelException {
-	IField field = this.cu.getType("X").getField("f8");
-	assertTrue("Field f8 should be deprecated", Flags.isDeprecated(field.getFlags()));
-}
-
-/*
- * Ensure that the deprecated flag is correctly reported
- * (regression test fo bug 89807 Outliner should recognize @Deprecated annotation)
- */
-public void testDeprecatedFlag09() throws JavaScriptModelException {
-	IFunction method = this.cu.getType("X").getFunction("fred2", new String[0]);
-	assertTrue("Method fred2 should be deprecated", Flags.isDeprecated(method.getFlags()));
-}
-
-/*
- * Ensures that the categories for a class are correct.
- */
-public void testGetCategories01() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"/**\n" +
-		" * @category test\n" +
-		" */\n" +
-		"public class Y {\n" +
-		"}"
-	);
-	String[] categories = this.workingCopy.getType("Y").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for an interface are correct.
- */
-public void testGetCategories02() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"/**\n" +
-		" * @category test\n" +
-		" */\n" +
-		"public interface Y {\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for an enumeration type are correct.
- */
-public void testGetCategories03() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"/**\n" +
-		" * @category test\n" +
-		" */\n" +
-		"public enum Y {\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for an annotation type type are correct.
- */
-public void testGetCategories04() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"/**\n" +
-		" * @category test\n" +
-		" */\n" +
-		"public @interface Y {\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for a method are correct.
- */
-public void testGetCategories05() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for a constructor are correct.
- */
-public void testGetCategories06() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  public Y() {}\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getFunction("Y", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for a field are correct.
- */
-public void testGetCategories07() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  int field;\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getField("field").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for a member type are correct.
- */
-public void testGetCategories08() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  class Member {}\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getType("Member").getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for an element that has no categories is empty.
- */
-public void testGetCategories09() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"  */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"",
-		categories);
-}
-
-/*
- * Ensures that the categories for an element that has multiple category tags is correct.
- */
-public void testGetCategories10() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test1\n" +
-		"   * @category test2\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test1\n" +
-		"test2\n",
-		categories);
-}
-
-/*
- * Ensures that the categories for an element that has multiple categories for one category tag is correct.
- */
-public void testGetCategories11() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test1 test2\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = workingCopy.getType("Y").getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test1\n" +
-		"test2\n",
-		categories);
-}
-public void testGetCategories12() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test1 test2\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.workingCopy.getType("Y").getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test1\n" +
-		"test2\n",
-		categories);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=125676
-public void testGetCategories13() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category " +
-		"	 *		test\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.workingCopy.getType("Y").getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"",
-		categories);
-}
-public void testGetCategories14() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category" +
-		"	 *		test\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.workingCopy.getType("Y").getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"",
-		categories);
-}
-public void testGetCategories15() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test1" +
-		"	 *		test2\n" +
-		"   */\n" +
-		"  void foo() {}\n" +
-		"}"
-	);
-	String[] categories = this.workingCopy.getType("Y").getFunction("foo", new String[0]).getCategories();
-	assertStringsEqual(
-		"Unexpected categories",
-		"test1\n",
-		categories);
-}
-
-/*
- * Ensures that the children of a type for a given category are correct.
- */
-public void testGetChildrenForCategory01() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  int field;\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  void foo1() {}\n" +
-		"  /**\n" +
-		"   * @category test\n" +
-		"   */\n" +
-		"  void foo2() {}\n" +
-		"  /**\n" +
-		"   * @category other\n" +
-		"   */\n" +
-		"  void foo3() {}\n" +
-		"}"
-	);
-	IJavaScriptElement[] children = workingCopy.getType("Y").getChildrenForCategory("test");
-	assertElementsEqual(
-		"Unexpected children",
-		"field [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo1() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo2() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]",
-		children);
-}
-
-/*
- * Ensures that the children of a type for a given category are correct.
- */
-public void testGetChildrenForCategory02() throws CoreException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category test1 test2\n" +
-		"   */\n" +
-		"  class Member {}\n" +
-		"  /**\n" +
-		"   * @category test1\n" +
-		"   */\n" +
-		"  void foo1() {}\n" +
-		"  /**\n" +
-		"   * @category test2\n" +
-		"   */\n" +
-		"  void foo2() {}\n" +
-		"}"
-	);
-	IJavaScriptElement[] children = workingCopy.getType("Y").getChildrenForCategory("test1");
-	assertElementsEqual(
-		"Unexpected children",
-		"Member [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo1() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]",
-		children);
-}
-public void testGetChildrenForCategory03() throws CoreException, IOException {
-	createWorkingCopyComputingProblems(
-		"package p;\n" +
-		"public class Y {\n" +
-		"  /**\n" +
-		"   * @category fields test all\n" +
-		"   */\n" +
-		"  int field;\n" +
-		"  /**\n" +
-		"   * @category methods test all\n" +
-		"   */\n" +
-		"  void foo1() {}\n" +
-		"  /**\n" +
-		"   * @category methods test all\n" +
-		"   */\n" +
-		"  void foo2() {}\n" +
-		"  /**\n" +
-		"   * @category methods other all\n" +
-		"   */\n" +
-		"  void foo3() {}\n" +
-		"}"
-	);
-	IJavaScriptElement[] tests  = this.workingCopy.getType("Y").getChildrenForCategory("test");
-	assertElementsEqual(
-		"Unexpected children",
-		"field [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo1() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo2() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]",
-		tests);
-	IJavaScriptElement[] methods = this.workingCopy.getType("Y").getChildrenForCategory("methods");
-	assertElementsEqual(
-		"Unexpected children",
-		"foo1() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo2() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo3() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]",
-		methods);
-	IJavaScriptElement[] others = this.workingCopy.getType("Y").getChildrenForCategory("other");
-	assertElementsEqual(
-		"Unexpected children",
-		"foo3() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]",
-		others);
-	IJavaScriptElement[] all = this.workingCopy.getType("Y").getChildrenForCategory("all");
-	assertElementsEqual(
-		"Unexpected children",
-		"field [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo1() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo2() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]\n" + 
-		"foo3() [in Y [in [Working copy] Y.js [in p [in src [in P]]]]]",
-		all);
-}
-
-/**
- * Ensures <code>getContents()</code> returns the correct value
- * for a <code>JavaScriptUnit</code> that is not present
- */
-public void testGetContentsForNotPresent() {
-	CompilationUnit compilationUnit = (CompilationUnit)getCompilationUnit("/P/src/p/Absent.js");
-	
-	assertSourceEquals("Unexpected contents for non present cu", "", new String(compilationUnit.getContents()));
-}
-/**
- * Tests Java element retrieval via source position 
- */
-public void testGetElementAt() throws JavaScriptModelException {
-	IField field = this.cu.getField( "f2");
-	ISourceRange sourceRange= field.getSourceRange();
-	//ensure that we are into the body of the type
-	IJavaScriptElement element= 
-		this.cu.getElementAt(sourceRange.getOffset() + field.getElementName().length() + 1);
-	assertTrue("Should have found a type", element instanceof IField);
-	assertEquals(
-		"Should have found f2",
-		"f2",
-		element.getElementName());
-	//ensure that null is returned if there is no element other than the compilation
- 	//unit itself at the given position
- 	element= this.cu.getElementAt(this.cu.getSourceRange().getOffset() + 1);
- 	assertEquals("Should have not found any element", null, element);
-}
-///**
-// * Tests import declararion retrieval via source position.
-// * (regression test for bug 14331 IJavaScriptUnit.getElementAt dos not find import decl)
-// */
-//public void testGetElementAt2() throws JavaScriptModelException {
-//	IImportContainer container = this.cu.getImportContainer();
-//	ISourceRange sourceRange= container.getSourceRange();
-//	//ensure that we are inside the import container
-//	IJavaScriptElement element= this.cu.getElementAt(sourceRange.getOffset() + 1);
-//	assertTrue("Should have found an import", element instanceof IImportDeclaration);
-//	assertEquals(
-//		"Import not found",
-//		"p2.*",
-//		 element.getElementName());
-//}
-/*
- * Ensures that the right field is returnd in a muti-declaration field.
- */
-public void testGetElementAt3() throws JavaScriptModelException {
-	int fieldPos = this.cu.getSource().indexOf("f5");
-	IJavaScriptElement element= this.cu.getElementAt(fieldPos);
-	assertEquals(
-		"Unexpected field found",
-		this.cu.getField("f5"),
-		 element);
-}
-/*
- * Ensures that the right field is returnd in a muti-declaration field.
- */
-public void testGetElementAt4() throws JavaScriptModelException {
-	int fieldPos = this.cu.getSource().indexOf("f6");
-	IJavaScriptElement element= this.cu.getElementAt(fieldPos);
-	assertEquals(
-		"Unexpected field found",
-		this.cu.getField("f6"),
-		 element);
-}
-/*
- * Ensures that the right field is returnd in a muti-declaration field.
- */
-public void testGetElementAt5() throws JavaScriptModelException {
-	int fieldPos = this.cu.getSource().indexOf("f7");
-	IJavaScriptElement element= this.cu.getElementAt(fieldPos);
-	assertEquals(
-		"Unexpected field found",
-		this.cu.getField("f7"),
-		 element);
-}
-/*
- * Ensures that the right field is returned in a muti-declaration field.
- */
-public void testGetElementAt6() throws JavaScriptModelException {
-	int fieldPos = this.cu.getSource().indexOf("var f5");
-	IJavaScriptElement element= this.cu.getElementAt(fieldPos);
-	assertEquals(
-		"Unexpected field found",
-		this.cu.getField("f5"),
-		element);
-}
-///*
-// * Ensures that the right type is returnd if an annotation type as a comment in its header.
-// */
-//public void testGetElementAt7() throws JavaScriptModelException {
-//	int fieldPos = this.cu.getSource().indexOf("Annot");
-//	IJavaScriptElement element= this.cu.getElementAt(fieldPos);
-//	assertEquals(
-//		"Unexpected type found",
-//		this.cu.getType("Annot"),
-//		element);
-//}
-/**
- * Ensures that correct number of fields with the correct names, modifiers, signatures
- * and declaring types exist in a type.
- */
-public void testGetFields() throws JavaScriptModelException {
-//	IType type = this.cu.getType("X");
-	IField[] fields= this.cu.getFields();
-	String[] fieldNames = new String[] {"f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8"};
-	String[] flags = new String[] {"public", "protected", "private", "", "", "", "", ""};
-	String[] signatures = new String[] {"I", "QObject;", "QX;", "Qjava.lang.String;", "I", "I", "I", "I"};
-	assertEquals("Wrong number of fields returned",  fieldNames.length, fields.length);
-	for (int i = 0; i < fields.length; i++) {
-		assertEquals("Incorrect name for the " + i + " field", fieldNames[i], fields[i].getElementName());
-//		String mod= Flags.toString(fields[i].getFlags());
-//		assertEquals("Unexpected modifier for " + fields[i].getElementName(), flags[i], mod);
-//		assertEquals("Unexpected type signature for " + fields[i].getElementName(), signatures[i], fields[i].getTypeSignature());
-//		assertEquals("Unexpected declaring type for " + fields[i].getElementName(), type, fields[i].getDeclaringType());
-		assertTrue("Field should exist " + fields[i], fields[i].exists());
-	}
-}
-///**
-// * Ensure that import declaration handles are returned from the
-// * compilation unit.
-// * Checks non-existant handle, on demand and not.
-// */
-//public void testGetImport() {
-//	IImportDeclaration imprt = this.cu.getImport("java.lang");
-//	assertTrue("Import should not exist " + imprt, !imprt.exists());
-//	
-//	imprt = this.cu.getImport("p2.*");
-//	assertTrue("Import should exist " + imprt, imprt.exists());
-//	
-//	imprt = this.cu.getImport("p3.Z");
-//	assertTrue("Import should exist " + imprt, imprt.exists());
-//}
-///**
-// * Ensures that correct number of imports with the correct names
-// * exist in "GraphicsTest" compilation unit.
-// */
-//public void testGetImports() throws JavaScriptModelException {
-//	IImportDeclaration[] imprts = this.cu.getImports();
-//	IImportContainer container= this.cu.getImportContainer();
-//	String[] importNames = new String[] {"p2.*", "p3.Z"};
-//
-//	assertEquals("Wrong number of imports returned", importNames.length, imprts.length);
-//	for (int i = 0; i < imprts.length; i++) {
-//		assertTrue("Incorrect name for the type in this position: " + imprts[i].getElementName(), imprts[i].getElementName().equals(importNames[i]));
-//		assertTrue("Import does not exist " + imprts[i], imprts[i].exists());
-//		if (i == 0) {
-//			assertTrue("Import is not on demand " + imprts[i], imprts[i].isOnDemand());
-//			assertTrue("Import should be non-static " + imprts[i], imprts[i].getFlags() == Flags.AccDefault);
-//		} else {
-//			assertTrue("Import is on demand " + imprts[i], !imprts[i].isOnDemand());
-//			assertTrue("Import should be non-static " + imprts[i], imprts[i].getFlags() == Flags.AccDefault);
-//		}
-//		assertTrue("Container import does not equal import", container.getImport(imprts[i].getElementName()).equals(imprts[i]));
-//	}
-//
-//	assertTrue("Import container must exist and have children", container.exists() && container.hasChildren());
-//	ISourceRange containerRange= container.getSourceRange();
-//	assertEquals(
-//		"Offset container range not correct", 
-//		imprts[0].getSourceRange().getOffset(),
-//		containerRange.getOffset());
-//	assertEquals(
-//		"Length container range not correct",
-//		imprts[imprts.length-1].getSourceRange().getOffset() + imprts[imprts.length-1].getSourceRange().getLength(),
-//		containerRange.getOffset() + containerRange.getLength());
-//	assertSourceEquals("Source not correct", 
-//		"import p2.*;\n" +
-//		"import p3.Z;",
-//		container.getSource());
-//	
-//}
-/**
- * Ensure that type handles are returned from the
- * compilation unit for an inner type.
- */
-//public void testGetInnerTypes() throws JavaScriptModelException {
-//	IType type1 = cu.getType("X");
-//	assertTrue("X type should have children", type1.hasChildren());
-//	assertTrue("X type superclass name should be null", type1.getSuperclassName() == null);
-//	String[] superinterfaceNames= type1.getSuperInterfaceNames();
-//	assertEquals("X type should have one superinterface", 1, superinterfaceNames.length);
-//	assertEquals("Unexpected super interface name", "Runnable", superinterfaceNames[0]);
-//	assertEquals("Fully qualified name of the type is incorrect", "p.X", type1.getFullyQualifiedName());
-//	IType type2 = type1.getType("Inner");
-//	superinterfaceNames = type2.getSuperInterfaceNames();
-//	assertEquals("X$Inner type should not have a superinterface", 0, superinterfaceNames.length);
-//	assertEquals("Fully qualified name of the inner type is incorrect", "p.X$Inner", type2.getFullyQualifiedName());
-//	assertEquals("Declaring type of the inner type is incorrect", type1, type2.getDeclaringType());
-//	IType type3 = type2.getType("InnerInner");
-//	assertTrue("InnerInner type should not have children", !type3.hasChildren());
-//}
-/*
- * Ensures that the key for a top level type is correct
- */
-public void testGetKey1() {
-//	IType type = this.cu.getType("X");
-//	assertEquals("Lp/X;", type.getKey());
-	IField type = this.cu.getField("f2");
-	assertEquals("Up/X.js;.f2", type.getKey());
-}
-/*
- * Ensures that the key for a member type is correct
- */
-public void testGetKey2() {
-	IType type = this.cu.getType("X").getType("Inner");
-	assertEquals("Lp/X$Inner;", type.getKey());
-}
-/*
- * Ensures that the key for a secondary type is correct
- */
-public void testGetKey3() {
-	IType type = this.cu.getType("I");
-	assertEquals("Lp/X~I;", type.getKey());
-}
-/*
- * Ensures that the key for an anonymous type is correct
- */
-public void testGetKey4() {
-	IType type = this.cu.getType("X").getFunction("foo", new String[0]).getType("", 1);
-	assertEquals("Lp/X$1;", type.getKey());
-}
-/**
- * Ensures that a method has the correct return type, parameters and exceptions.
- */
-public void testGetMethod1() throws JavaScriptModelException {
-//	IType type = this.cu.getType("X");
-	IFunction foo = this.cu.getFunction("foo", new String[]{null});
-//	String[] exceptionTypes= foo.getExceptionTypes();
-//	assertEquals("Wrong number of exception types", 1, exceptionTypes.length);
-//	assertEquals("Unxepected exception type", "QIOException;", exceptionTypes[0]);
-//	assertEquals("Wrong return type", "V", foo.getReturnType());
-	String[] parameterNames = foo.getParameterNames();
-	assertEquals("Wrong number of parameter names", 1, parameterNames.length);
-	assertEquals("Unexpected parameter name", "y", parameterNames[0]);
-}
-///**
-// * Ensures that a method has the correct AccVarargs flag set.
-// */
-//public void testGetMethod2() throws JavaScriptModelException {
-//	IType type = this.cu.getType("X");
-//	IFunction method = type.getMethod("testIsVarArgs", new String[]{"QString;", "[QObject;"});
-//	assertTrue("Should have the AccVarargs flag set", Flags.isVarargs(method.getFlags()));
-//}
-///**
-// * Ensures that a constructor has the correct AccVarargs flag set.
-// * (regression test for bug 77422 [1.5] ArrayIndexOutOfBoundsException with vararg constructor of generic superclass)
-// */
-//public void testGetMethod3() throws JavaScriptModelException {
-//	IType type = this.cu.getType("X");
-//	IFunction method = type.getMethod("X", new String[]{"[QString;"});
-//	assertTrue("Should have the AccVarargs flag set", Flags.isVarargs(method.getFlags()));
-//}
-/**
- * Ensures that correct number of methods with the correct names and modifiers
- * exist in a type.
- */
-public void testGetMethods() throws JavaScriptModelException {
-//	IType type = this.cu.getType("X");
-	IFunction[] methods= this.cu.getFunctions();
-	String[] methodNames = new String[] {"foo", "bar", "fred", "fred2"};
-	String[] flags = new String[] {"public", "protected static", "private", "private"};
-	assertEquals("Wrong number of methods returned", methodNames.length, methods.length);
-	for (int i = 0; i < methods.length; i++) {
-		assertEquals("Incorrect name for the " + i + " method", methodNames[i], methods[i].getElementName());
-		int modifiers = methods[i].getFlags() & ~Flags.AccVarargs;
-//		String mod= Flags.toString(modifiers);
-//		assertEquals("Unexpected modifier for " + methods[i].getElementName(), flags[i], mod);
-		assertTrue("Method does not exist " + methods[i], methods[i].exists());
-	}
-}
-///**
-// * Ensures that correct modifiers are reported for a method in an interface.
-// */
-//public void testCheckInterfaceMethodModifiers() throws JavaScriptModelException {
-//	IType type = this.cu.getType("I");
-//	IFunction method = type.getMethod("run", new String[0]);
-//	String expectedModifiers = "";
-//	String modifiers = Flags.toString(method.getFlags() & ~Flags.AccVarargs);
-//	assertEquals("Expected modifier for " + method.getElementName(), expectedModifiers, modifiers);
-//}
-///*
-// * Ensures that IType#getSuperInterfaceTypeSignatures() is correct for a source type.
-// */
-//public void testGetSuperInterfaceTypeSignatures() throws JavaScriptModelException {
-//	IType type = this.cu.getType("Y");
-//	assertStringsEqual(
-//		"Unexpected signatures", 
-//		"QI2<QE;>;\n",
-//		type.getSuperInterfaceTypeSignatures());
-//}
-/**
- * Ensure that the same element is returned for the primary element of a
- * compilation unit.
- */
-public void testGetPrimary() {
-	IJavaScriptElement primary = this.cu.getPrimaryElement();
-	assertEquals("Primary element for a compilation unit should be the same", this.cu, primary);
-	primary = this.cu.getPrimary();
-	assertEquals("Primary for a compilation unit should be the same", this.cu, primary);
-	
-}
-///////*
-////// * Ensures that the occurrence count for an initializer is correct
-////// */
-//////public void testGetOccurrenceCount01() {
-//////	IInitializer initializer = this.cu.getType("X").getInitializer(2);
-//////	assertEquals("Unexpected occurrence count", 2, initializer.getOccurrenceCount());
-//////}
-/////*
-//// * Ensures that the occurrence count for an anonymous type is correct
-//// */
-////public void testGetOccurrenceCount02() {
-////	IType type = this.cu.getType("X").getMethod("foo", new String[]{"QY;"}).getType("", 3);
-////	assertEquals("Unexpected occurrence count", 3, type.getOccurrenceCount());
-////}
-///**
-// * Ensures that correct number of package declarations with the correct names
-// * exist a compilation unit.
-// */
-//public void testGetPackages() throws JavaScriptModelException {
-//	IPackageDeclaration[] packages = this.cu.getPackageDeclarations();
-//	String packageName = "p";
-//	assertEquals("Wrong number of packages returned", 1, packages.length);
-//	assertEquals("Wrong package declaration returned: ", packageName, packages[0].getElementName());
-//}
-/**
- * Ensure that type handles are returned from the
- * compilation unit.
- * Checks non-existant handle and existing handles.
- */
-public void testGetType() {
-	IField type = this.cu.getField("someType");
-	assertTrue("Type should not exist " + type, !type.exists());
-	
-	type = this.cu.getField("f2");
-	assertTrue("Type should exist " + type, type.exists());
-	
-//	type = this.cu.getType("I"); // secondary type
-//	assertTrue("Type should exist " + type, type.exists());
-}
-///**
-// * Ensures that correct number of types with the correct names and modifiers
-// * exist in a compilation unit.
-// */
-//public void testGetTypes() throws JavaScriptModelException {
-//	IType[] types = this.cu.getTypes();
-//	String[] typeNames = new String[] {"X", "I", "I2", "I3", "Y", "Colors", "Annot"};
-//	String[] flags = new String[] {"public", "", "", "", "", "", ""};
-//	boolean[] isClass = new boolean[] {true, false, false, false, true, false, false};
-//	boolean[] isInterface = new boolean[] {false, true, true, true, false, false, true};
-//	boolean[] isAnnotation = new boolean[] {false, false, false, false, false, false, true};
-//	boolean[] isEnum = new boolean[] {false, false, false, false, false, true, false};
-//	String[] superclassName = new String[] {null, null, null, null, null, null, null};
-//	String[] superclassType = new String[] {null, null, null, null, null, null, null};
-//	String[][] superInterfaceNames = new String[][] {
-//			new String[] {"Runnable"}, new String[0], new String[0], new String[0], new String[] {"I2<E>"}, new String[0], new String[0]
-//	};
-//	String[][] superInterfaceTypes = new String[][] {
-//			new String[] {"QRunnable;"}, new String[0], new String[0], new String[0], new String[] {"QI2<QE;>;"}, new String[0], new String[0]
-//	};
-//	String[][] formalTypeParameters = new String[][] {
-//		new String[0], new String[0], new String[] {"E"}, new String[0], new String[] {"E"}, new String[0], new String[0]
-//	};
-//	
-//	assertEquals("Wrong number of types returned", typeNames.length, types.length);
-//	for (int i = 0; i < types.length; i++) {
-//		assertEquals("Incorrect name for the " + i + " type", typeNames[i], types[i].getElementName());
-//		String mod= Flags.toString(types[i].getFlags());
-//		assertEquals("Unexpected modifier for " + types[i].getElementName(), flags[i], mod);
-//		assertTrue("Type does not exist " + types[i], types[i].exists());
-//		assertEquals("Incorrect isClass for the " + i + " type", isClass[i], types[i].isClass());
-//		assertEquals("Incorrect isInterface for the " + i + " type", isInterface[i], types[i].isInterface());
-//		assertEquals("Incorrect isAnnotation for the " + i + " type", isAnnotation[i], types[i].isAnnotation());
-//		assertEquals("Incorrect isEnum for the " + i + " type", isEnum[i], types[i].isEnum());
-//		assertEquals("Incorrect superclassName for the " + i + " type", superclassName[i], types[i].getSuperclassName());
-//		assertEquals("Incorrect superclassType for the " + i + " type", superclassType[i], types[i].getSuperclassTypeSignature());
-//		assertEquals("Incorrect superInterfaceNames for the " + i + " type", superInterfaceNames[i].length, types[i].getSuperInterfaceNames().length);
-//		assertEquals("Incorrect superInterfaceTypes for the " + i + " type", superInterfaceTypes[i].length, types[i].getSuperInterfaceTypeSignatures().length);
-//		assertEquals("Incorrect formalTypeParameters for the " + i + " type", formalTypeParameters[i].length, types[i].getTypeParameters().length);
-//	}
-//}
-/**
- * Ensures that a compilation unit has children.
- */
-public void testHasChildren() throws JavaScriptModelException {
-	this.cu.close();
-	assertTrue("A closed compilation unit should have children", this.cu.hasChildren());
-	this.cu.getChildren();
-	assertTrue("The compilation unit should have children", this.cu.hasChildren());
-}
-/**
- * Ensures that a compilation unit's resource has not changed.
- */
-public void testHasResourceChanged() {
-	assertTrue(
-		"A compilation unit's resource should not have changed", 
-		!this.cu.hasResourceChanged());
-}
-///*
-// * Ensures that hasChildren doesn't return true for an import container that doesn't exist
-// * (regression test for bug 76761 [model] ImportContainer.hasChildren() should not return true
-// */
-//public void testImportContainerHasChildren() throws JavaScriptModelException {
-//	IImportContainer importContainer = getCompilationUnit("/Test/DoesNotExist.js").getImportContainer();
-//	boolean gotException = false;
-//	try {
-//		importContainer.hasChildren();
-//	} catch (JavaScriptModelException e) {
-//		gotException = e.isDoesNotExist();
-//	}
-//	assertTrue("Should get a not present exception", gotException);
-//}
-///*
-// * Ensures that isEnumConstant returns true for a field representing an enum constant.
-// */
-//public void testIsEnumConstant1() throws JavaScriptModelException {
-//	IField field = this.cu.getType("Colors").getField("BLUE");
-//	assertTrue("Colors#BLUE should be an enum constant", field.isEnumConstant());
-//}
-///*
-// * Ensures that isEnumConstant returns false for a field that is not representing an enum constant.
-// */
-//public void testIsEnumConstant2() throws JavaScriptModelException {
-//	IField field = this.cu.getType("X").getField("f1");
-//	assertTrue("X#f1 should not be an enum constant", !field.isEnumConstant());
-//}
-/*
- * Ensure that the utility method Util.#getNameWithoutJavaLikeExtension(String) works as expected
- * (regression test for bug 107735 StringIndexOutOfBoundsException in Util.getNameWithoutJavaLikeExtension())
- */
-public void testNameWithoutJavaLikeExtension() {
-	String name = Util.getNameWithoutJavaLikeExtension("Test.aj");
-	assertEquals("Unepected name without extension", "Test.aj", name);
-}
-/**
- * Ensures that a compilation unit that does not exist responds
- * false to #exists() and #isOpen()
- */
-public void testNotPresent1() {
-	IJavaScriptUnit compilationUnit = ((IPackageFragment)this.cu.getParent()).getJavaScriptUnit("DoesNotExist.js");
-	assertTrue("CU should not be open", !compilationUnit.isOpen());
-	assertTrue("CU should not exist", !compilationUnit.exists());
-	assertTrue("CU should still not be open", !compilationUnit.isOpen());
-}
-///**
-// * Ensures that a compilation unit that does not exist
-// * (because it is a child of a jar package fragment)
-// * responds false to #exists() and #isOpen()
-// * (regression test for PR #1G2RKD2)
-// */
-//public void testNotPresent2() throws CoreException {
-//	IJavaScriptUnit compilationUnit = getPackageFragment("P", getExternalJCLPathString(), "java.lang").getCompilationUnit("DoesNotExist.js");
-//	assertTrue("CU should not be open", !compilationUnit.isOpen());
-//	assertTrue("CU should not exist", !compilationUnit.exists());
-//	assertTrue("CU should still not be open", !compilationUnit.isOpen());
-//}
-
-/*
- * Ensure that the absence of visibility flags is correctly reported as package default
- * (regression test fo bug 127213 Flags class missing methods)
- */
-public void testPackageDefaultFlag1() throws JavaScriptModelException {
-	IField field = this.cu.getField("f4");
-	assertTrue("X#f4 should be package default", Flags.isPackageDefault(field.getFlags()));
-}
-
-///*
-// * Ensure that the presence of a visibility flags is correctly reported as non package default
-// * (regression test fo bug 127213 Flags class missing methods)
-// */
-//public void testPackageDefaultFlag2() throws JavaScriptModelException {
-//	IType type = this.cu.getType("X");
-//	assertTrue("X should not be package default", !Flags.isPackageDefault(type.getFlags()));
-//}
-
-/*
- * Ensure that the presence of a visibility flags as well as the deprecated flag is correctly reported as non package default
- * (regression test fo bug 127213 Flags class missing methods)
- */
-public void testPackageDefaultFlag3() throws JavaScriptModelException {
-	IField field = this.cu.getType("X").getField("f2");
-	assertTrue("X#f2 should not be package default", !Flags.isPackageDefault(field.getFlags()));
-}
-
-/*
- * Ensure that the absence of a visibility flags and the presence of the deprecated flag is correctly reported as package default
- * (regression test fo bug 127213 Flags class missing methods)
- */
-public void testPackageDefaultFlag4() throws JavaScriptModelException {
-	IType type = this.cu.getType("I");
-	assertTrue("X should be package default", Flags.isPackageDefault(type.getFlags()));
-}
-
-/**
- * Ensures that the "structure is known" flag is set for a valid compilation unit. 
- */
-public void testStructureKnownForCU() throws JavaScriptModelException {
-	assertTrue("Structure is unknown for valid CU", this.cu.isStructureKnown());
-}
-/**
- *  Ensures that the "structure is unknown" flag is set for a non valid compilation unit. 
- */
-public void testStructureUnknownForCU() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/Invalid.js",
-			"@#D(03");
-		IJavaScriptUnit badCU = getCompilationUnit("/P/src/p/Invalid.js");
-		assertTrue("Structure is known for an invalid CU", !badCU.isStructureKnown());
-	} finally {
-		this.deleteFile("/P/src/p/Invalid.js");
-	}
-}
-
-///*
-// * Ensure that the super flags is correctly reported
-// * (regression test fo bug 127213 Flags class missing methods)
-// */
-//public void testSuperFlag1() throws JavaScriptModelException {
-//	assertTrue("Should contain super flag", Flags.isSuper(Flags.AccSuper));
-//}
-//
-///*
-// * Ensure that the super flags is correctly reported
-// * (regression test fo bug 127213 Flags class missing methods)
-// */
-//public void testSuperFlag2() throws JavaScriptModelException {
-//	assertTrue("Should not contain super flag", !Flags.isSuper(Flags.AccDefault));
-//}
-
-///*
-// * Verify fix for bug 73884: [1.5] Unexpected error for class implementing generic interface
-// * (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=73884)
-// */
-//public void testBug73884() throws CoreException {
-//	try {
-//		String cuSource = 
-//			"package p;\n" +
-//			"public interface I<T> {\n" +
-//			"}";
-//		createFile("/P/src/p/I.js", cuSource);
-//		ITypeParameter[] typeParameters = getCompilationUnit("/P/src/p/I.js").getType("I").getTypeParameters();
-//		assertTypeParametersEqual(
-//			"T\n",
-//			typeParameters);
-//	} finally {
-//		deleteFile("/P/src/p/I.js");
-//	}
-//}
-
-///*
-// * Ensure that the type parameters for a type are correct.
-// */
-//public void testTypeParameter1() throws CoreException {
-//	createWorkingCopy(
-//		"package p;\n" +
-//		"public class Y<T> {\n" +
-//		"}"
-//	);
-//	ITypeParameter[] typeParameters = workingCopy.getType("Y").getTypeParameters();
-//	assertTypeParametersEqual(
-//		"T\n",
-//		typeParameters);
-//}
-//
-///*
-// * Ensure that the type parameters for a type are correct.
-// */
-//public void testTypeParameter2() throws CoreException {
-//	createWorkingCopy(
-//		"package p;\n" +
-//		"public class Y<T, U> {\n" +
-//		"}"
-//	);
-//	ITypeParameter[] typeParameters = workingCopy.getType("Y").getTypeParameters();
-//	assertTypeParametersEqual(
-//		"T\n" +
-//		"U\n",
-//		typeParameters);
-//}
-//
-///*
-// * Ensure that the type parameters for a type are correct.
-// */
-//public void testTypeParameter3() throws CoreException {
-//	createWorkingCopy(
-//		"package p;\n" +
-//		"public class Y<T extends List> {\n" +
-//		"}"
-//	);
-//	ITypeParameter[] typeParameters = workingCopy.getType("Y").getTypeParameters();
-//	assertTypeParametersEqual(
-//		"T extends List\n",
-//		typeParameters);
-//}
-//
-///*
-// * Ensure that the type parameters for a type are correct.
-// */
-//public void testTypeParameter4() throws CoreException {
-//	createWorkingCopy(
-//		"package p;\n" +
-//		"public class Y<T extends List & Runnable & Comparable> {\n" +
-//		"}"
-//	);
-//	ITypeParameter[] typeParameters = workingCopy.getType("Y").getTypeParameters();
-//	assertTypeParametersEqual(
-//		"T extends List & Runnable & Comparable\n",
-//		typeParameters);
-//}
-//
-///*
-// * Ensure that the type parameters for a method are correct.
-// * (regression test for bug 75658 [1.5] SourceElementParser do not compute correctly bounds of type parameter)
-// */
-//public void testTypeParameter5() throws CoreException {
-//	createWorkingCopy(
-//		"package p;\n" +
-//		"public class Y {\n" +
-//		"  <T extends List, U extends X & Runnable> void foo() {\n" +
-//		"  }\n" +
-//		"}"
-//	);
-//	ITypeParameter[] typeParameters = workingCopy.getType("Y").getMethod("foo", new String[]{}).getTypeParameters();
-//	assertTypeParametersEqual(
-//		"T extends List\n" + 
-//		"U extends X & Runnable\n",
-//		typeParameters);
-//}
-//
-///*
-// * Verify fix for bug 78275: [recovery] NPE in GoToNextPreviousMemberAction with syntax error
-// * (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=78275)
-// */
-//public void testBug78275() throws CoreException {
-//	try {
-//		String cuSource = 
-//			"	function a() {\n" + 
-//			"	     }\n" + 
-//			"	}\n" + 
-//			"	function m() {}\n" + 
-//			"";
-//		createFile("/P/src/X.js", cuSource);
-//		IType type = getCompilationUnit("/P/src/X.js").getType("X");
-//		IInitializer[] initializers = type.getInitializers();
-//		assertEquals("Invalid number of initializers", 1, initializers.length);
-//		assertTrue("Invalid length for initializer", initializers[0].getSourceRange().getLength() > 0);
-//	} finally {
-//		deleteFile("/P/src/X.js");
-//	}
-//}
-public void test110172() throws CoreException {
-	try {
-		String source =
-			"	 /**\n" +
-			"	  * Javadoc for field f \n" +
-			"	  */\n" +
-			"	var f;\n" +
-			"	\n" +
-			"	/**\n" +
-			"	 * Javadoc for method foo\n" +
-			"	 */\n" +
-			"	function foo( i,  l,  s) {\n" +
-			"	}\n" +
-			"	\n" +
-			"	/**\n" +
-			"	 * Javadoc for member type A\n" +
-			"	 */\n" +
-			"	\n" +
-			"	/**\n" +
-			"	 * Javadoc for f3\n" +
-			"	 */\n" +
-			"	/*\n" +
-			"	 * Not a javadoc comment\n" +
-			"	 */\n" +
-			"	/**\n" +
-			"	 * Real javadoc for f3\n" +
-			"	 */\n" +
-			"	var f3;\n" +
-			"	\n" +
-			"	var f2;\n" +
-			"	\n" +
-			"	function foo2() {\n" +
-			"	}\n" +
-			"	\n" +
-			"\n" +
-			"";
-		createFile("/P/src/X.js", source);
-//		IType type = getCompilationUnit("/P/src/X.js").getType("X");
-		IJavaScriptElement[] members = getCompilationUnit("/P/src/X.js").getChildren();
-		final int length = members.length;
-		assertEquals("Wrong number", 5, length);
-		for (int i = 0; i < length; i++) {
-			final IJavaScriptElement element = members[i];
-			assertTrue(element instanceof IMember);
-			final ISourceRange javadocRange = ((IMember) element).getJSdocRange();
-			final String elementName = element.getElementName();
-			if ("f".equals(elementName)) {
-				assertNotNull("No javadoc source range", javadocRange);
-				final int start = javadocRange.getOffset();
-				final int end = javadocRange.getLength() + start - 1;
-				String javadocSource = source.substring(start, end);
-				assertTrue("Wrong javadoc", javadocSource.indexOf("field f") != -1);
-			} else if ("foo".equals(elementName)) {
-				assertNotNull("No javadoc source range", javadocRange);
-				final int start = javadocRange.getOffset();
-				final int end = javadocRange.getLength() + start - 1;
-				String javadocSource = source.substring(start, end);
-				assertTrue("Wrong javadoc", javadocSource.indexOf("method foo") != -1);
-			} else if ("A".equals(elementName)) {
-				assertNotNull("No javadoc source range", javadocRange);
-				final int start = javadocRange.getOffset();
-				final int end = javadocRange.getLength() + start - 1;
-				String javadocSource = source.substring(start, end);
-				assertTrue("Wrong javadoc", javadocSource.indexOf("member type A") != -1);
-			} else if ("X".equals(elementName)) {
-				// need treatment for the two constructors
-				assertTrue("Not an IFunction", element instanceof IFunction);
-				IFunction method = (IFunction) element;
-				switch(method.getNumberOfParameters()) {
-					case 0 :
-						assertNull("Has a javadoc source range", javadocRange);
-						break;
-					case 1:
-						assertNotNull("No javadoc source range", javadocRange);
-						final int start = javadocRange.getOffset();
-						final int end = javadocRange.getLength() + start - 1;
-						String javadocSource = source.substring(start, end);
-						assertTrue("Wrong javadoc", javadocSource.indexOf("constructor") != -1);
-				}
-			} else if ("f3".equals(elementName)) {
-				assertNotNull("No javadoc source range", javadocRange);
-				final int start = javadocRange.getOffset();
-				final int end = javadocRange.getLength() + start - 1;
-				String javadocSource = source.substring(start, end);
-				assertTrue("Wrong javadoc", javadocSource.indexOf("Real") != -1);
-			} else if ("f2".equals(elementName)) {
-				assertNull("Has a javadoc source range", javadocRange);
-			} else if ("foo2".equals(elementName)) {
-				assertNull("Has a javadoc source range", javadocRange);
-			} else if ("B".equals(elementName)) {
-				assertNull("Has a javadoc source range", javadocRange);
-			} else if (element instanceof IInitializer) {
-				IInitializer initializer = (IInitializer) element;
-				if (Flags.isStatic(initializer.getFlags())) {
-					assertNotNull("No javadoc source range", javadocRange);
-					final int start = javadocRange.getOffset();
-					final int end = javadocRange.getLength() + start - 1;
-					String javadocSource = source.substring(start, end);
-					assertTrue("Wrong javadoc", javadocSource.indexOf("initializer") != -1);
-				} else {
-					assertNull("Has a javadoc source range", javadocRange);
-				}
-			}
-		}
-	} finally {
-		deleteFile("/P/src/X.js");
-	}
-}
-public void test120902() throws CoreException {
-	try {
-		String source =
-			"/**\r\n" + 
-			" * Toy\r\n" + 
-			" */\r\n" + 
-			"function foo() {\r\n" +
-			"}";
-		createFile("/P/src/X.js", source);
-		final IJavaScriptUnit compilationUnit = getCompilationUnit("/P/src/X.js");
-		IFunction type = compilationUnit.getFunction("foo",null);
-		ISourceRange javadocRange = type.getJSdocRange();
-		assertNotNull("No source range", javadocRange);
-		compilationUnit.getBuffer().setContents("");
-		try {
-			javadocRange = type.getJSdocRange();
-			assertNull("Got a source range", javadocRange);
-		} catch (ArrayIndexOutOfBoundsException e) {
-			assertFalse("Should not happen", true);
-		}		
-	} finally {
-		deleteFile("/P/src/X.js");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionContextTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionContextTests.java
deleted file mode 100644
index e76d77b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionContextTests.java
+++ /dev/null
@@ -1,3385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.*;
-
-public class CompletionContextTests extends AbstractJavaModelCompletionTests implements RelevanceConstants {
-
-public CompletionContextTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	if (COMPLETION_PROJECT == null)  {
-		COMPLETION_PROJECT = setUpJavaProject("Completion", "1.4");
-	} else {
-		setUpProjectCompliance(COMPLETION_PROJECT, "1.4");
-	}
-	super.setUpSuite();
-}
-
-public static Test suite() {
-	return buildModelTestSuite(CompletionContextTests.class);
-}
-public void test0001() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0001/X.js",
-		"function X(){\n" + 
-		"  ZZZZ\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0002() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0002/X.js",
-		"function X() {\n" + 
-		"  ZZZZ\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0003() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0003/X.js",
-		"function X() {\n" + 
-		"  ZZZZ\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0004() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0004/X.js",
-		"function X() {\n" + 
-		"  /**/\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("/**/") + "/**/".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("/**/") + "/**/".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-//public void test0005() throws JavaScriptModelException {
-//	this.workingCopies = new IJavaScriptUnit[1];
-//	this.workingCopies[0] = getWorkingCopy(
-//		"/Completion/src3/test0005/X.js",
-//		"package test0005;\n" + 
-//		"public class X {\n" + 
-//		"  ZZZZ foo()\n" + 
-//		"}");
-//	
-//	String str = this.workingCopies[0].getSource();
-//	int tokenStart = str.lastIndexOf("ZZZZ");
-//	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-//	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-//
-//	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-//
-//	assertResults(
-//		"completion offset="+(cursorLocation)+"\n" +
-//		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-//		"completion token=\"ZZZZ\"\n" +
-//		"completion token kind=TOKEN_KIND_NAME\n" +
-//		"expectedTypesSignatures=null\n" +
-//		"expectedTypesKeys=null",
-//		result.context);
-//}
-//public void test0006() throws JavaScriptModelException {
-//	this.workingCopies = new IJavaScriptUnit[1];
-//	this.workingCopies[0] = getWorkingCopy(
-//		"/Completion/src3/test0006/X.js",
-//		"package test0006;\n" + 
-//		"public class X {\n" + 
-//		"  ZZZZ foo()\n" + 
-//		"}");
-//	
-//	String str = this.workingCopies[0].getSource();
-//	int tokenStart = str.lastIndexOf("ZZZZ");
-//	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-//	int cursorLocation = str.lastIndexOf("ZZZZ");
-//
-//	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-//
-//	assertResults(
-//		"completion offset="+(cursorLocation)+"\n" +
-//		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-//		"completion token=\"\"\n" +
-//		"completion token kind=TOKEN_KIND_NAME\n" +
-//		"expectedTypesSignatures=null\n" +
-//		"expectedTypesKeys=null",
-//		result.context);
-//}
-//public void test0007() throws JavaScriptModelException {
-//	this.workingCopies = new IJavaScriptUnit[1];
-//	this.workingCopies[0] = getWorkingCopy(
-//		"/Completion/src3/test0007/X.js",
-//		"package test0007;\n" + 
-//		"public class X {\n" + 
-//		"  ZZZZ foo()\n" + 
-//		"}");
-//	
-//	String str = this.workingCopies[0].getSource();
-//	int tokenStart = str.lastIndexOf("ZZZZ");
-//	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-//	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-//
-//	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-//	
-//	assertResults(
-//		"completion offset="+(cursorLocation)+"\n" +
-//		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-//		"completion token=\"ZZ\"\n" +
-//		"completion token kind=TOKEN_KIND_NAME\n" +
-//		"expectedTypesSignatures=null\n" +
-//		"expectedTypesKeys=null",
-//		result.context);
-//}
-public void test0008() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0008/X.js",
-		"  /**/ function foo()\n" + 
-		"");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("/**/") + "/**/".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("/**/") + "/**/".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-//public void test0009() throws JavaScriptModelException {
-//	this.workingCopies = new IJavaScriptUnit[1];
-//	this.workingCopies[0] = getWorkingCopy(
-//		"/Completion/src3/test0009/X.js",
-//		"package test0009;\n" + 
-//		"public class X {\n" + 
-//		"  void foo() {\n" + 
-//		"    ZZZZ\n" + 
-//		"  }\n" + 
-//		"}");
-//	
-//	String str = this.workingCopies[0].getSource();
-//	int tokenStart = str.lastIndexOf("ZZZZ");
-//	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-//	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-//
-//	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-//
-//	assertResults(
-//		"completion offset="+(cursorLocation)+"\n" +
-//		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-//		"completion token=\"ZZZZ\"\n" +
-//		"completion token kind=TOKEN_KIND_NAME\n" +
-//		"expectedTypesSignatures=null\n" +
-//		"expectedTypesKeys=null",
-//		result.context);
-//}
-public void test0010() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0010/X.js",
-		"package test0010;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0011() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0011/X.js",
-		"package test0011;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0012() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0012/X.js",
-		"package test0012;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    /**/\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("/**/") + "/**/".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("/**/") + "/**/".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0013() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0013/X.js",
-		"package test0013;\n" + 
-		"public class X extends ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0014() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0014/X.js",
-		"package test0014;\n" + 
-		"public class X extends ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0015() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0015/X.js",
-		"package test0015;\n" + 
-		"public class X extends ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0016() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0016/X.js",
-		"package test0016;\n" + 
-		"public class X extends /**/ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("/**/") + "/**/".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("/**/") + "/**/".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0017() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src3/test0017/YYYY.js",
-		"package test0017;\n" + 
-		"public class YYYY {\n" + 
-		"  public class ZZZZ {\n" + 
-		"  }\n" + 
-		"}");
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0017/X.js",
-		"package test0017;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    YYYY.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0018() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src3/test0018/YYYY.js",
-		"package test0018;\n" + 
-		"public class YYYY {\n" + 
-		"  public class ZZZZ {\n" + 
-		"  }\n" + 
-		"}");
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0018/X.js",
-		"package test0018;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    YYYY.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0019() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src3/test0019/YYYY.js",
-		"package test0019;\n" + 
-		"public class YYYY {\n" + 
-		"  public class ZZZZ {\n" + 
-		"  }\n" + 
-		"}");
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0019/X.js",
-		"package test0019;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    YYYY.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0020() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src3/test0020/YYYY.js",
-		"package test0020;\n" + 
-		"public class YYYY {\n" + 
-		"  public class ZZZZ {\n" + 
-		"  }\n" + 
-		"}");
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0020/X.js",
-		"package test0020;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    YYYY.\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("YYYY.") + "YYYY.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("YYYY.") + "YYYY.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0021() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0021/X.js",
-		"package test0021;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    test0021.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0022() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0022/X.js",
-		"package test0022;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    test0022.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0023() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0023/X.js",
-		"package test0023;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    test0023.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0024() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0024/X.js",
-		"package test0024;\n" + 
-		"public class X {\n" + 
-		"  void foo() {\n" + 
-		"    test0024.\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("test0024.") + "test0024.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("test0024.") + "test0024.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0025() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0025/X.js",
-		"package test0025;\n" + 
-		"public class X {\n" + 
-		"  Object var;\n" + 
-		"  void foo() {\n" + 
-		"    var.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0026() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0026/X.js",
-		"package test0026;\n" + 
-		"public class X {\n" + 
-		"  Object var;\n" + 
-		"  void foo() {\n" + 
-		"    var.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0027() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0027/X.js",
-		"package test0027;\n" + 
-		"public class X {\n" + 
-		"  Object var;\n" + 
-		"  void foo() {\n" + 
-		"    var.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0028() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0028/X.js",
-		"package test0028;\n" + 
-		"public class X {\n" + 
-		"  Object var;\n" + 
-		"  void foo() {\n" + 
-		"    var.\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("var.") + "var.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("var.") + "var.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0029() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src3/test0029/YYYY.js",
-		"package test0029;\n" + 
-		"public class YYYY {\n" + 
-		"  public class ZZZZ {\n" + 
-		"  }\n" + 
-		"}");
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0029/X.js",
-		"package test0029;\n" + 
-		"public class X extends YYYY.ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0030() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src3/test0030/YYYY.js",
-		"package test0030;\n" + 
-		"public class YYYY {\n" + 
-		"  public class ZZZZ {\n" + 
-		"  }\n" + 
-		"}");
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0030/X.js",
-		"package test0030;\n" + 
-		"public class X extends YYYY.ZZZZ {\n" + 
-		"}");
-	
-	
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0031() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src3/test0031/YYYY.js",
-		"package test0031;\n" + 
-		"public class YYYY {\n" + 
-		"  public class ZZZZ {\n" + 
-		"  }\n" + 
-		"}");
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0031/X.js",
-		"package test0031;\n" + 
-		"public class X extends YYYY.ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0032() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src3/test0032/YYYY.js",
-		"package test0032;\n" + 
-		"public class YYYY {\n" + 
-		"  public class ZZZZ {\n" + 
-		"  }\n" + 
-		"}");
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0032/X.js",
-		"package test0032;\n" + 
-		"public class X extends YYYY. {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("YYYY.") + "YYYY.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("YYYY.") + "YYYY.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0033() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0033/X.js",
-		"package test0033;\n" + 
-		"public class X extends test0033.ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0034() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0034/X.js",
-		"package test0034;\n" + 
-		"public class X extends test0034.ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0035() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0035/X.js",
-		"package test0035;\n" + 
-		"public class X extends test0035.ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0036() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0036/X.js",
-		"package test0036;\n" + 
-		"public class X extends test0036. {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("test0036.") + "test0036.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("test0036.") + "test0036.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0037() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0037/X.js",
-		"package test0037;\n" + 
-		"public class X {\n" + 
-		"  X ZZZZ;\n" + 
-		"  X foo(){\n" + 
-		"    foo().ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0038() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0038/X.js",
-		"package test0038;\n" + 
-		"public class X {\n" + 
-		"  X ZZZZ;\n" + 
-		"  X foo(){\n" + 
-		"    foo().ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0039() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0039/X.js",
-		"package test0039;\n" + 
-		"public class X {\n" + 
-		"  X ZZZZ;\n" + 
-		"  X foo(){\n" + 
-		"    foo().ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0040() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0040/X.js",
-		"package test0040;\n" + 
-		"public class X {\n" + 
-		"  X ZZZZ;\n" + 
-		"  X foo(){\n" + 
-		"    foo().\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("foo().") + "foo().".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("foo().") + "foo().".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0041() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0041/X.js",
-		"package test0041;\n" + 
-		"public class X {\n" + 
-		"  X ZZZZ;\n" + 
-		"  X foo(){\n" + 
-		"    int.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0042() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0042/X.js",
-		"package test0042;\n" + 
-		"public class X {\n" + 
-		"  X ZZZZ;\n" + 
-		"  X foo(){\n" + 
-		"    int.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0043() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0043/X.js",
-		"package test0043;\n" + 
-		"public class X {\n" + 
-		"  X ZZZZ;\n" + 
-		"  X foo(){\n" + 
-		"    int.ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0044() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0044/X.js",
-		"package test0044;\n" + 
-		"public class X {\n" + 
-		"  X ZZZZ;\n" + 
-		"  X foo(){\n" + 
-		"    int.\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("int.") + "int.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("int.") + "int.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0045() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0045/X.js",
-		"package test0045;\n" + 
-		"public class X {\n" + 
-		"  void ZZZZ(){\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0046() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0046/X.js",
-		"package test0046;\n" + 
-		"public class X {\n" + 
-		"  void ZZZZ(){\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0047() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0047/X.js",
-		"package test0047;\n" + 
-		"public class X {\n" + 
-		"  void ZZZZ(){\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0048() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0048/X.js",
-		"package test0048;\n" + 
-		"public class X {\n" + 
-		"  void (){\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("void ") + "void ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("void ") + "void ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0049() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0049/X.js",
-		"package test0049;\n" + 
-		"public class X {\n" + 
-		"  int ZZZZ;\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0050() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0050/X.js",
-		"package test0050;\n" + 
-		"public class X {\n" + 
-		"  int ZZZZ;\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0051() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0051/X.js",
-		"package test0051;\n" + 
-		"public class X {\n" + 
-		"  int ZZZZ;\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0052() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0052/X.js",
-		"package test0052;\n" + 
-		"public class X {\n" + 
-		"  int ;\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("int ") + "int ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("int ") + "int ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0053() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0053/X.js",
-		"package test0053;\n" + 
-		"public class X {\n" + 
-		"  {int ZZZZ;}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0054() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0054/X.js",
-		"package test0054;\n" + 
-		"public class X {\n" + 
-		"  {int ZZZZ;}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0055() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0055/X.js",
-		"package test0055;\n" + 
-		"public class X {\n" + 
-		"  {int ZZZZ;}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0056() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0056/X.js",
-		"package test0056;\n" + 
-		"public class X {\n" + 
-		"  {int ;}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("int ") + "int ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("int ") + "int ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0057() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0057/X.js",
-		"package test0057;\n" + 
-		"public class X {\n" + 
-		"  void foo(int ZZZZ){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0058() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0058/X.js",
-		"package test0058;\n" + 
-		"public class X {\n" + 
-		"  void foo(int ZZZZ){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0059() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0059/X.js",
-		"package test0059;\n" + 
-		"public class X {\n" + 
-		"  void foo(int ZZZZ){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0060() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0060/X.js",
-		"package test0060;\n" + 
-		"public class X {\n" + 
-		"  void foo(int ){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("int ") + "int ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("int ") + "int ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0061() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0061/X.js",
-		"package test0061;\n" + 
-		"public class X ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0062() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0062/X.js",
-		"package test0062;\n" + 
-		"public class X ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0063() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0063/X.js",
-		"package test0063;\n" + 
-		"public class X ZZZZ {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0064() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0064/X.js",
-		"package test0064;\n" + 
-		"public class X  {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("X ") + "X ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("X ") + "X ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0065() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0065/X.js",
-		"package test0065;\n" + 
-		"ZZZZ\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0066() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0066/X.js",
-		"package test0066;\n" + 
-		"ZZZZ\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0067() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0067/X.js",
-		"package test0067;\n" + 
-		"ZZZZ\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0068() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0068/X.js",
-		"package test0068;\n" + 
-		"/**/\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("/**/") + "/**/".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("/**/") + "/**/".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0069() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0069/X.js",
-		"package test0069;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    do{\n" + 
-		"    } ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0070() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0070/X.js",
-		"package test0070;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    do{\n" + 
-		"    } ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0071() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0071/X.js",
-		"package test0071;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    do{\n" + 
-		"    } ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0072() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0072/X.js",
-		"package test0072;\n" + 
-		"public class X {\n" + 
-		"  {\n" + 
-		"    do{\n" + 
-		"    }/**/ \n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("/**/ ") + "/**/ ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("/**/ ") + "/**/ ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0073() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0073/X.js",
-		"package ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0074() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0074/X.js",
-		"package ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0075() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0075/X.js",
-		"package ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0076() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0076/X.js",
-		"package \n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("package ") + "package ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("package ") + "package ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0077() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0077/test/X.js",
-		"package test0077.ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0078() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0078/test/X.js",
-		"package test0078.ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0079() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0079/test/X.js",
-		"package test0079.ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0080() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0080/test/X.js",
-		"package test0080.\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("test0080.") + "test0080.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("test0080.") + "test0080.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0081() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0081/X.js",
-		"package test0081;\n" + 
-		"import ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0082() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0082/X.js",
-		"package test0082;\n" + 
-		"import ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0083() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0083/X.js",
-		"package test0083;\n" + 
-		"import ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0084() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0084/X.js",
-		"package test0084;\n" + 
-		"import \n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("import ") + "import ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("import ") + "import ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0085() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0085/test/X.js",
-		"package test0085;\n" + 
-		"import test0085.ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0086() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0086/test/X.js",
-		"package test0086;\n" + 
-		"import test0086.ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0087() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0087/test/X.js",
-		"package test0087;\n" + 
-		"import test0087.ZZZZ;\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0088() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0084/test/X.js",
-		"package test0088;\n" + 
-		"import test0085.\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("test0085.") + "test0085.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("test0085.") + "test0085.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0089() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0089/X.js",
-		"package test0089;\n" + 
-		"public class X {\n" + 
-		"  void foo(int a, int b) {\n" + 
-		"    this.foo(ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={I}\n" +
-		"expectedTypesKeys={I}",
-		result.context);
-}
-public void test0090() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0090/X.js",
-		"package test0090;\n" + 
-		"public class X {\n" + 
-		"  void foo(int a, int b) {\n" + 
-		"    this.foo(ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0091() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0091/X.js",
-		"package test0091;\n" + 
-		"public class X {\n" + 
-		"  void foo(int a, int b) {\n" + 
-		"    this.foo(ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={I}\n" +
-		"expectedTypesKeys={I}",
-		result.context);
-}
-public void test0092() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0092/X.js",
-		"package test0092;\n" + 
-		"public class X {\n" + 
-		"  void foo(int a, int b) {\n" + 
-		"    this.foo(\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("this.foo(") + "this.foo(".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("this.foo(") + "this.foo(".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0093() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0093/X.js",
-		"package test0093;\n" + 
-		"public class X {\n" + 
-		"  void foo(int a, int b) {\n" + 
-		"    this.foo(0,ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={I}\n" +
-		"expectedTypesKeys={I}",
-		result.context);
-}
-public void test0094() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0094/X.js",
-		"package test0094;\n" + 
-		"public class X {\n" + 
-		"  void foo(int a, int b) {\n" + 
-		"    this.foo(0,ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0095() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0095/X.js",
-		"package test0095;\n" + 
-		"public class X {\n" + 
-		"  void foo(int a, int b) {\n" + 
-		"    this.foo(0,ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={I}\n" +
-		"expectedTypesKeys={I}",
-		result.context);
-}
-public void test0096() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0096/X.js",
-		"package test0096;\n" + 
-		"public class X {\n" + 
-		"  void foo(int a, int b) {\n" + 
-		"    this.foo(0,\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("this.foo(0,") + "this.foo(0,".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("this.foo(0,") + "this.foo(0,".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0097() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0097/X.js",
-		"package test0097;\n" + 
-		"public class X {\n" + 
-		"  X(int a, int b) {}\n" +
-		"  void foo(int a, int b) {\n" + 
-		"    new X(ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={I}\n" +
-		"expectedTypesKeys={I}",
-		result.context);
-}
-public void test0098() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0098/X.js",
-		"package test0098;\n" + 
-		"public class X {\n" + 
-		"  X(int a, int b) {}\n" +
-		"  void foo(int a, int b) {\n" + 
-		"    new X(ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0099() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0099/X.js",
-		"package test0099;\n" + 
-		"public class X {\n" + 
-		"  X(int a, int b) {}\n" +
-		"  void foo(int a, int b) {\n" + 
-		"    new X(ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={I}\n" +
-		"expectedTypesKeys={I}",
-		result.context);
-}
-public void test0100() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0100/X.js",
-		"package test0100;\n" + 
-		"public class X {\n" + 
-		"  X(int a, int b) {}\n" +
-		"  void foo(int a, int b) {\n" + 
-		"    new X(\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("new X(") + "new X(".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("new X(") + "new X(".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0101() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0101/X.js",
-		"package test0101;\n" + 
-		"public class X {\n" + 
-		"  X(int a, int b) {}\n" +
-		"  void foo(int a, int b) {\n" + 
-		"    new X(0,ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={I}\n" +
-		"expectedTypesKeys={I}",
-		result.context);
-}
-public void test0102() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0102/X.js",
-		"package test0102;\n" + 
-		"public class X {\n" + 
-		"  X(int a, int b) {}\n" +
-		"  void foo(int a, int b) {\n" + 
-		"    new X(0,ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0103() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0103/X.js",
-		"package test0103;\n" + 
-		"public class X {\n" + 
-		"  X(int a, int b) {}\n" +
-		"  void foo(int a, int b) {\n" + 
-		"    new X(0,ZZZZ\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={I}\n" +
-		"expectedTypesKeys={I}",
-		result.context);
-}
-public void test0104() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0104/X.js",
-		"package test0104;\n" + 
-		"public class X {\n" + 
-		"  X(int a, int b) {}\n" +
-		"  void foo(int a, int b) {\n" + 
-		"    new X(0,\n" + 
-		"  }\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("new X(0,") + "new X(0,".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("new X(0,") + "new X(0,".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0105() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0105/X.js",
-		"package test0105;\n" + 
-		"public class X {\n" + 
-		"  Object o = ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.Object;}\n" +
-		"expectedTypesKeys={Ljava/lang/Object;}",
-		result.context);
-}
-public void test0106() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0106/X.js",
-		"package test0106;\n" + 
-		"public class X {\n" + 
-		"  Object o = ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.Object;}\n" +
-		"expectedTypesKeys={Ljava/lang/Object;}",
-		result.context);
-}
-public void test0107() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0107/X.js",
-		"package test0107;\n" + 
-		"public class X {\n" + 
-		"  Object o = ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.Object;}\n" +
-		"expectedTypesKeys={Ljava/lang/Object;}",
-		result.context);
-}
-public void test0108() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0108/X.js",
-		"package test0108;\n" + 
-		"public class X {\n" + 
-		"  Object o = \n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("Object o = ") + "Object o = ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("Object o = ") + "Object o = ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.Object;}\n" +
-		"expectedTypesKeys={Ljava/lang/Object;}",
-		result.context);
-}
-public void test0109() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0109/X.js",
-		"package test0109;\n" + 
-		"public class X {\n" + 
-		"  Object o = new ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.Object;}\n" +
-		"expectedTypesKeys={Ljava/lang/Object;}",
-		result.context);
-}
-public void test0110() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0110/X.js",
-		"package test0110;\n" + 
-		"public class X {\n" + 
-		"  Object o = new ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.Object;}\n" +
-		"expectedTypesKeys={Ljava/lang/Object;}",
-		result.context);
-}
-public void test0111() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0111/X.js",
-		"package test0111;\n" + 
-		"public class X {\n" + 
-		"  Object o = new ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.Object;}\n" +
-		"expectedTypesKeys={Ljava/lang/Object;}",
-		result.context);
-}
-public void test0112() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0112/X.js",
-		"package test0112;\n" + 
-		"public class X {\n" + 
-		"  Object o = new \n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("Object o = new ") + "Object o = new ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("Object o = new ") + "Object o = new ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.Object;}\n" +
-		"expectedTypesKeys={Ljava/lang/Object;}",
-		result.context);
-}
-public void test0113() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0113/X.js",
-		"package test0113;\n" + 
-		"public class X {\n" + 
-		"  Object o = new Object() {\n" +
-		"    ZZZZ\n" +
-		"  };\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0114() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0114/X.js",
-		"package test0114;\n" + 
-		"public class X {\n" + 
-		"  Object o = new Object() {\n" +
-		"    ZZZZ\n" +
-		"  };\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0115() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0115/X.js",
-		"package test0115;\n" + 
-		"public class X {\n" + 
-		"  Object o = new Object() {\n" +
-		"    ZZZZ\n" +
-		"  };\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0116() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0116/X.js",
-		"package test0116;\n" + 
-		"public class X {\n" + 
-		"  Object o = new Object() {\n" +
-		"    /**/\n" +
-		"  };\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("/**/") + "/**/".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("/**/") + "/**/".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0117() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0117/X.js",
-		"package test0117;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\";\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ\"");
-	int tokenEnd = tokenStart + "\"ZZZZ\"".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0118() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0118/X.js",
-		"package test0118;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\";\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ\"");
-	int tokenEnd = tokenStart + "\"ZZZZ\"".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0119() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0119/X.js",
-		"package test0119;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\";\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ\"");
-	int tokenEnd = tokenStart + "\"ZZZZ\"".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0120() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0120/X.js",
-		"package test0120;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\";\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ\"");
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("\"ZZZZ") + "".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0121() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0121/X.js",
-		"package test0121;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\";\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int cursorLocation = str.lastIndexOf("\"ZZZZ\"") + "\"ZZZZ\"".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=[-1, -1]\n" +
-		"completion token=null\n" +
-		"completion token kind=TOKEN_KIND_UNKNOWN\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0122() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0122/X.js",
-		"package test0122;\n" + 
-		"public class X {\n" + 
-		"  String s = \"\";\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"\"");
-	int tokenEnd = tokenStart + "\"\"".length() - 1;
-	int cursorLocation = str.lastIndexOf("\"\"") + "\"".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0123() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0123/X.js",
-		"package test0123;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ");
-	int tokenEnd = tokenStart + "\"ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0124() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0124/X.js",
-		"package test0124;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ");
-	int tokenEnd = tokenStart + "\"ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0125() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0125/X.js",
-		"package test0125;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ");
-	int tokenEnd = tokenStart + "\"ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0126() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0126/X.js",
-		"package test0126;\n" + 
-		"public class X {\n" + 
-		"  String s = \"ZZZZ\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ");
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("\"ZZZZ") + "".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0127() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0127/X.js",
-		"package test0127;\n" + 
-		"public class X {\n" + 
-		"  String s = \"\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"");
-	int tokenEnd = tokenStart + "\"".length() - 1;
-	int cursorLocation = str.lastIndexOf("\"") + "\"".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-public void test0128() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0127/X.js",
-		"package test0127;\n" + 
-		"public class X {\n" + 
-		"  String s0 = \"\n" +
-		"  String s = \"ZZZZ\"\n" +
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("\"ZZZZ\"");
-	int tokenEnd = tokenStart + "\"ZZZZ\"".length() - 1;
-	int cursorLocation = str.lastIndexOf("\"ZZZZ\"") + "\"ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_STRING_LITERAL\n" +
-		"expectedTypesSignatures={Ljava.lang.String;}\n" +
-		"expectedTypesKeys={Ljava/lang/String;}",
-		result.context);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTests.java
deleted file mode 100644
index 585d60a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTests.java
+++ /dev/null
@@ -1,13906 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.internal.codeassist.CompletionEngine;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.eval.IEvaluationContext;
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-import junit.framework.*;
-
-public class CompletionTests extends AbstractJavaModelCompletionTests implements RelevanceConstants {
-
-static {
-//	TESTS_NAMES = new String[] { "testDeprecationCheck17"};
-}
-public static Test suite() {
-	return buildModelTestSuite(CompletionTests.class);
-}
-public CompletionTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	if (COMPLETION_PROJECT == null)  {
-		COMPLETION_PROJECT = setUpJavaProject("Completion");
-	} else {
-		setUpProjectCompliance(COMPLETION_PROJECT, "1.4");
-	}
-	super.setUpSuite();
-}
-public void tearDownSuite() throws Exception {
-	super.tearDownSuite();
-}
-
-public void test00() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-			"MyClass.prototype.someMethod = MyClass_someMethod;"+ 
-			"function MyClass(){}"+
-			"function MyClass_someMethod(){}"+
-			"var myClassObj = new MyClass();\n"+
-			"myClassObj.someMethod();\n"+
-            "");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "someMethod";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-            "someMethod[FUNCTION_REF]{, Ltest.MyClass;, ()V, someMethod, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME +  R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-
-
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=164311
-public void testBug164311() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"    public int zzzzzz;\n" + 
-		"    public void method1() {\n" + 
-		"        label : if (0> (10));\n" + 
-		"        zzz\n" + 
-		"    }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "zzz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"zzzzzz[FIELD_REF]{zzzzzz, Ltest.Test;, I, zzzzzz, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=164311
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=167750
-public void testBug164311_2() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;\n"+
-		"public class X {\n"+
-		"    public void zork() { \n"+
-		"    } \n"+
-		"    public void foo() { \n"+
-		"        this.foo(new Object(){\n"+
-		"            public void bar() {\n"+
-		"                if (zzz>(Integer)vvv.foo(i)) {\n"+
-		"                    return;\n"+
-		"                }\n"+
-		"                if (true) {\n"+
-		"                    return;\n"+
-		"                }\n"+
-		"                zor\n"+
-		"            }        \n"+    
-		"        });\n"+
-		"    }\n"+
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "zor";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"zork[FUNCTION_REF]{zork(), Ltest.X;, ()V, zork, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=96213
-public void testBug96213() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "  function toto( o) {\n"+
-            "    return null;\n"+
-            "  }\n"+
-            "  function titi( removed) {\n"+
-            "  }\n"+
-            "  function foo() {\n"+
-            "    var removed = 0;\n"+
-            "    toto(Test.vv).titi(removed);\n"+
-            "  }\n"+
-            "");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "removed";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-            "removed[LOCAL_VARIABLE_REF]{removed, null, Lsystem.js.Number;, removed, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME +  R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=99811
-public void testBug99811() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-    try {
-    	this.wc = getWorkingCopy(
-	            "/Completion/src/test/A.js",
-	            "public abstract class A implements I {}");
-    	
-	    aType = getWorkingCopy(
-	            "/Completion/src/test/I.js",
-	            "public interface I {\n"+
-	            "  public class M extends A {}\n"+
-	            "}");
-	
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "A";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults("", requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseField1() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test {\n"+
-			"  int oneTwoThree;\n"+
-			"  int oTTField;\n"+
-			"  void foo() {\n"+
-			"    oTT\n"+
-			"  }\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "oTT";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"oneTwoThree[FIELD_REF]{oneTwoThree, Lcamelcase.Test;, I, oneTwoThree, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"oTTField[FIELD_REF]{oTTField, Lcamelcase.Test;, I, oTTField, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseLocalVariable1() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test {\n"+
-			"  void foo() {\n"+
-			"    int oneTwoThree;\n"+
-			"    int oTTLocal;\n"+
-			"    oTT\n"+
-			"  }\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "oTT";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"oneTwoThree[LOCAL_VARIABLE_REF]{oneTwoThree, null, I, oneTwoThree, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"oTTLocal[LOCAL_VARIABLE_REF]{oTTLocal, null, I, oTTLocal, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseMethod1() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-	this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test {\n"+
-			"  void oneTwoThree(){}\n"+
-			"  void oTTMethod(){}\n"+
-			"  void foo() {\n"+
-			"    oTT\n"+
-			"  }\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "oTT";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"oneTwoThree[FUNCTION_REF]{oneTwoThree(), Lcamelcase.Test;, ()V, oneTwoThree, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"oTTMethod[FUNCTION_REF]{oTTMethod(), Lcamelcase.Test;, ()V, oTTMethod, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseMethodDeclaration1() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test extends SuperClass {\n"+
-			"  oTT\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/camelcase/SuperClass.js",
-			"package camelcase;"+
-			"public class SuperClass {\n"+
-			"  public void oneTwoThree(){}\n"+
-			"  public void oTTMethod(){}\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "oTT";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"oTT[POTENTIAL_METHOD_DECLARATION]{oTT, Lcamelcase.Test;, ()V, oTT, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"oneTwoThree[FUNCTION_DECLARATION]{public void oneTwoThree(), Lcamelcase.SuperClass;, ()V, oneTwoThree, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"oTTMethod[FUNCTION_DECLARATION]{public void oTTMethod(), Lcamelcase.SuperClass;, ()V, oTTMethod, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseType1() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[3];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test {\n"+
-			"  FF\n"+
-			"}");
-	
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/camelcase/FoFoFo.js",
-			"package camelcase;"+
-			"public class FoFoFo {\n"+
-			"}");
-		
-		this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/camelcase/FFFTest.js",
-			"package camelcase;"+
-			"public class FFFTest {\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "FF";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"FF[POTENTIAL_METHOD_DECLARATION]{FF, Lcamelcase.Test;, ()V, FF, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"FoFoFo[TYPE_REF]{FoFoFo, camelcase, Lcamelcase.FoFoFo;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"FFFTest[TYPE_REF]{FFFTest, camelcase, Lcamelcase.FFFTest;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseType2() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[3];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test {\n"+
-			"  camelcase.FF\n"+
-			"}");
-	
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/camelcase/FoFoFo.js",
-			"package camelcase;"+
-			"public class FoFoFo {\n"+
-			"}");
-		
-		this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/camelcase/FFFTest.js",
-			"package camelcase;"+
-			"public class FFFTest {\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "FF";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"FoFoFo[TYPE_REF]{FoFoFo, camelcase, Lcamelcase.FoFoFo;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_NON_RESTRICTED) + "}\n" +
-				"FFFTest[TYPE_REF]{FFFTest, camelcase, Lcamelcase.FFFTest;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseType3() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-			
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test {\n"+
-			"  /**/FF\n"+
-			"}\n"+
-			"class FoFoFo {\n"+
-			"}\n"+
-			"class FFFTest {\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "/**/FF";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"FF[POTENTIAL_METHOD_DECLARATION]{FF, Lcamelcase.Test;, ()V, FF, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"FoFoFo[TYPE_REF]{FoFoFo, camelcase, Lcamelcase.FoFoFo;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"FFFTest[TYPE_REF]{FFFTest, camelcase, Lcamelcase.FFFTest;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseType4() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[3];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test {\n"+
-			"  FF\n"+
-			"}");
-	
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/camelcase/Member1.js",
-			"package camelcase;"+
-			"public class Member1 {\n"+
-			"  public class FoFoFo {\n"+
-			"  }\n"+
-			"}");
-		
-		this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/camelcase/Member2.js",
-			"package camelcase;"+
-			"public class Member2 {\n"+
-			"  public class FFFTest {\n"+
-			"  }\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "FF";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"FF[POTENTIAL_METHOD_DECLARATION]{FF, Lcamelcase.Test;, ()V, FF, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"Member1.FoFoFo[TYPE_REF]{camelcase.Member1.FoFoFo, camelcase, Lcamelcase.Member1$FoFoFo;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_NON_RESTRICTED) + "}\n" +
-				"Member2.FFFTest[TYPE_REF]{camelcase.Member2.FFFTest, camelcase, Lcamelcase.Member2$FFFTest;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102572
-public void testCamelCaseType5() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/camelcase/Test.js",
-			"package camelcase;"+
-			"public class Test {\n"+
-			"  public class FoFoFo {\n"+
-			"    public class FFFTest {\n"+
-			"      FF\n"+
-			"    }\n"+
-			"  }\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "FF";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"FF[POTENTIAL_METHOD_DECLARATION]{FF, Lcamelcase.Test$FoFoFo$FFFTest;, ()V, FF, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"Test.FoFoFo[TYPE_REF]{FoFoFo, camelcase, Lcamelcase.Test$FoFoFo;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CAMEL_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"Test.FoFoFo.FFFTest[TYPE_REF]{FFFTest, camelcase, Lcamelcase.Test$FoFoFo$FFFTest;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef01() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZAException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZBException[TYPE_REF]{IZZBException, test, Ltest.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef02() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZAException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing()\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZAException[TYPE_REF]{IZZAException, test, Ltest.IZZAException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZBException[TYPE_REF]{IZZBException, test, Ltest.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef03() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZAException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      #\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZAException[TYPE_REF]{IZZAException, test, Ltest.IZZAException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZBException[TYPE_REF]{IZZBException, test, Ltest.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef04() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws test.p.IZZAException, test.p.IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (test.p.IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/p/IZZAException.js",
-			"package test.p;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/p/IZZBException.js",
-			"package test.p;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/p/IZZException.js",
-			"package test.p;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZBException[TYPE_REF]{test.p.IZZBException, test.p, Ltest.p.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{test.p.IZZException, test.p, Ltest.p.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef05() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public class IZZAException extends Exception {}\n" +
-		"	public class IZZBException extends Exception {}\n" +
-		"	public class IZZException extends Exception {}\n" +
-		"	public void throwing() throws IZZAException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"Test.IZZBException[TYPE_REF]{IZZBException, test, Ltest.Test$IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"Test.IZZException[TYPE_REF]{IZZException, test, Ltest.Test$IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef06() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"   public class Inner {\n" + 
-		"      public class IZZAException extends Exception {}\n" +
-		"      public class IZZBException extends Exception {}\n" +
-		"      public class IZZException extends Exception {}\n" +
-		"      public void throwing() throws IZZAException, IZZException {}\n" +
-		"      public void foo() {\n" +
-		"         try {\n" +
-		"            throwing();\n" +
-		"         }\n" +
-		"         catch (IZZAException e) {\n" +
-		"            bar();\n" +
-		"         }\n" +
-		"         catch (IZZ) {\n" +
-		"         }\n" +
-		"      }" +
-		"   }" +
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"Test.Inner.IZZBException[TYPE_REF]{IZZBException, test, Ltest.Test$Inner$IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"Test.Inner.IZZException[TYPE_REF]{IZZException, test, Ltest.Test$Inner$IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef07() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"   void zork() {\n" + 
-		"      class IZZAException extends Exception {}\n" +
-		"      class IZZBException extends Exception {}\n" +
-		"      class IZZException extends Exception {}\n" +
-		"      class Local {\n" + 
-		"         public void throwing() throws IZZAException, IZZException {}\n" +
-		"         public void foo() {\n" +
-		"            try {\n" +
-		"               throwing();\n" +
-		"            }\n" +
-		"            catch (IZZAException e) {\n" +
-		"               bar();\n" +
-		"            }\n" +
-		"            catch (IZZ) {\n" +
-		"            }\n" +
-		"         }" +
-		"      }" +
-		"   }" +
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZBException[TYPE_REF]{IZZBException, test, LIZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, LIZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef08() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZAException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (/**/) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "/**/";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"Test[TYPE_REF]{Test, test, Ltest.Test;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"Exception[TYPE_REF]{Exception, java.lang, Ljava.lang.Exception;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXPECTED_TYPE + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef09() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[5];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZAException, IZZCException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         try {\n" +
-		"            throwing();\n" +
-		"         }\n" +
-		"         catch (IZZCException e) {\n" +
-		"            bar();\n" +
-		"         }\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZCException.js",
-			"package test;"+
-			"public class IZZCException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[4] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZBException[TYPE_REF]{IZZBException, test, Ltest.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZCException[TYPE_REF]{IZZCException, test, Ltest.IZZCException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef10() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZAException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends IZZBException {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZBException[TYPE_REF]{IZZBException, test, Ltest.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXPECTED_TYPE + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-//IZZBException should not be proposed but to filter this proposal
-//we would need to know subclasses of IZZAException and it's currenlty too costly to compute
-public void testCatchClauseExceptionRef11() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZAException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"         bar();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends IZZAException {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZBException[TYPE_REF]{IZZBException, test, Ltest.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef12() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZAException, IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZBException[TYPE_REF]{IZZBException, test, Ltest.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}\n" +
-			"IZZAException[TYPE_REF]{IZZAException, test, Ltest.IZZAException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}\n" +
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=157584
-public void testCatchClauseExceptionRef13() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZBException.js",
-			"package test;"+
-			"public class IZZBException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends IZZAException {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZBException[TYPE_REF]{IZZBException, test, Ltest.IZZBException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-public void testCatchClauseExceptionRef14() throws JavaScriptModelException {
-	
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         throwing();\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}" +
-		"class IZZAException extends Exception {\n" + 
-		"}" +
-		"class IZZException extends Exception {\n" + 
-		"}\n");
-	
-	IJavaScriptProject project = this.workingCopies[0].getJavaScriptProject();
-	String visibilityCheck = project.getOption(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, true);
-	
-	try {
-		project.setOption(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, JavaScriptCore.ENABLED);
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "(IZZ";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_EXCEPTION + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		project.setOption(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, visibilityCheck);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=173907
-public void testCatchClauseExceptionRef15() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	public void throwing() throws IZZException, IZZAException {}\n" +
-		"	public void foo() {\n" +
-		"      try {\n" +
-		"         try {\n" +
-		"            throwing();\n" +
-		"         } finally {}\n" +
-		"      }\n" +
-		"      catch (IZZAException e) {\n" +
-		"      }\n" +
-		"      catch (IZZ) {\n" +
-		"      }\n" +
-		"   }" +
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/IZZAException.js",
-			"package test;"+
-			"public class IZZAException extends Exception {\n" + 
-			"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/IZZException.js",
-			"package test;"+
-			"public class IZZException extends Exception {\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "IZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"IZZException[TYPE_REF]{IZZException, test, Ltest.IZZException;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65737
- */
-public void testCompletion2InterfacesWithSameMethod() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "Completion2InterfacesWithSameMethod.js");
-
-	String str = cu.getSource();
-	String completeBehind = "var.meth";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-			"element:method    completion:method()    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionAbstractMethod1() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionAbstractMethod1.js",
-            "public class CompletionAbstractMethod1 {\n" +
-            "	abstract class A {\n" +
-            "		abstract void foo();\n" +
-            "	}\n" +
-            "	class B extends A {\n" +
-            "		void foo{} {}\n" +
-            "		void bar() {\n" +
-            "			super.fo\n" +
-            "		}\n" +
-            "	}\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "fo";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "",
-            requestor.getResults());
-}
-public void testCompletionAbstractMethod2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionAbstractMethod2.js",
-            "public class CompletionAbstractMethod2 {\n" +
-            "	abstract class A {\n" +
-            "		abstract void foo();\n" +
-            "	}\n" +
-            "	class B extends A {\n" +
-            "		void foo{} {}\n" +
-            "		void bar() {\n" +
-            "			this.fo\n" +
-            "		}\n" +
-            "	}\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "fo";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-           "foo[FUNCTION_REF]{foo(), LCompletionAbstractMethod2$A;, ()V, foo, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED) + "}",
-           requestor.getResults());
-}
-public void testCompletionAbstractMethod3() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionAbstractMethod3.js",
-            "public class CompletionAbstractMethod3 {\n" +
-            "	abstract class A {\n" +
-            "		abstract void foo();\n" +
-            "	}\n" +
-            "	class B extends A {\n" +
-            "		void bar() {\n" +
-            "			this.fo\n" +
-            "		}\n" +
-            "	}\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "fo";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-           "foo[FUNCTION_REF]{foo(), LCompletionAbstractMethod3$A;, ()V, foo, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED)+"}",
-           requestor.getResults());
-}
-public void testCompletionAbstractMethod4() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionAbstractMethod4.js",
-            "public class CompletionAbstractMethod1 {\n" +
-            "	class A {\n" +
-            "		void foo(){}\n" +
-            "	}\n" +
-            "	abstract class B extends A {\n" +
-            "		abstract void foo();\n" +
-            "	}\n" +
-            "	class C extends B {\n" +
-            "		void foo{} {}\n" +
-            "		void bar() {\n" +
-            "			super.fo\n" +
-            "		}\n" +
-            "	}\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "fo";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-           "",
-           requestor.getResults());
-}
-
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25578
-*/
-public void testCompletionAbstractMethodRelevance1() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionAbstractSuperClass.js",
-	            "public abstract class CompletionAbstractSuperClass {\n"+
-	            "	public void foo1(){}\n"+
-	            "	public abstract void foo2();\n"+
-	            "	public void foo3(){}\n"+
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionAbstractMethodRelevance1.js",
-	            "public class CompletionAbstractMethodRelevance1 extends CompletionAbstractSuperClass {\n"+
-	            "	foo\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "foo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"foo[POTENTIAL_METHOD_DECLARATION]{foo, LCompletionAbstractMethodRelevance1;, ()V, foo, null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n" +
-			"foo1[FUNCTION_DECLARATION]{public void foo1(), LCompletionAbstractSuperClass;, ()V, foo1, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n" +
-			"foo3[FUNCTION_DECLARATION]{public void foo3(), LCompletionAbstractSuperClass;, ()V, foo3, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n" +
-			"foo2[FUNCTION_DECLARATION]{public void foo2(), LCompletionAbstractSuperClass;, ()V, foo2, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_ABSTRACT_METHOD + R_METHOD_OVERIDE+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-	}
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25578
-*/
-public void testCompletionAbstractMethodRelevance2() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface.js",
-	            "public interface CompletionSuperInterface{\n"+
-	            "	public int eqFoo(int a,Object b);\n"+
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionAbstractMethodRelevance2.js",
-	            "public class CompletionAbstractMethodRelevance2 implements CompletionSuperInterface {\n"+
-	            "	eq\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "eq";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"eq[POTENTIAL_METHOD_DECLARATION]{eq, LCompletionAbstractMethodRelevance2;, ()V, eq, null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n" +
-			"equals[FUNCTION_DECLARATION]{public boolean equals(Object obj), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n" +
-			"eqFoo[FUNCTION_DECLARATION]{public int eqFoo(int a, Object b), LCompletionSuperInterface;, (ILjava.lang.Object;)I, eqFoo, (a, b), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_ABSTRACT_METHOD + R_METHOD_OVERIDE+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionAfterCase1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAfterCase1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "zz";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:zzz    completion:zzz    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionAfterCase2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAfterCase2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "zz";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:zzz    completion:zzz    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionAfterSupercall1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/CompletionAfterSupercall1.js",
-		"public class CompletionAfterSupercall1 extends CompletionAfterSupercall1_1 {\n" +
-		"	public void foo(){\n" +
-		"		super.foo\n" +
-		"	}\n" +
-		"}\n" +
-		"abstract class CompletionAfterSupercall1_1 extends CompletionAfterSupercall1_2 implements CompletionAfterSupercall1_3 {\n" +
-		"	\n" +
-		"}\n" +
-		"class CompletionAfterSupercall1_2 implements CompletionAfterSupercall1_3 {\n" +
-		"	public void foo(){}\n" +
-		"}\n" +
-		"interface CompletionAfterSupercall1_3 {\n" +
-		"	public void foo();\n" +
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "super.foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"foo[FUNCTION_REF]{foo(), LCompletionAfterSupercall1_2;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_STATIC+ R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-public void testCompletionAfterSwitch() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAfterSwitch.js");
-
-	String str = cu.getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-			"element:bar    completion:bar()    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_NAME+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionAllMemberTypes() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionAllMemberTypes.js",
-            "package test;\n" +
-            "public class CompletionAllMemberTypes {\n" +
-            "  class Member1 {\n" +
-            "    class Member2 {\n" +
-            "      class Member3 {\n" +
-            "      }\n" +
-            "    }\n" +
-            "    void foo(){\n" +
-            "      Member\n" +
-            "    }\n" +
-            "  \n}" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "Member";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-            "CompletionAllMemberTypes.Member1.Member2.Member3[TYPE_REF]{test.CompletionAllMemberTypes.Member1.Member2.Member3, test, Ltest.CompletionAllMemberTypes$Member1$Member2$Member3;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes.Member1[TYPE_REF]{Member1, test, Ltest.CompletionAllMemberTypes$Member1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes.Member1.Member2[TYPE_REF]{Member2, test, Ltest.CompletionAllMemberTypes$Member1$Member2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-public void testCompletionAllMemberTypes2() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionAllMemberTypes2.js",
-            "package test;\n" +
-            "public class CompletionAllMemberTypes2 {\n" +
-            "  class Member1 {\n" +
-            "    class Member5 {\n" +
-            "      class Member6 {\n" +
-            "      }\n" +
-            "    }\n" +
-            "    class Member2 {\n" +
-            "      class Member3 {\n" +
-            "        class Member4 {\n" +
-            "        }\n" +
-            "      }\n" +
-            "      void foo(){\n" +
-            "        Member\n" +
-            "      }\n" +
-            "    }\n" +
-            "  \n}" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "Member";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-            "CompletionAllMemberTypes2.Member1.Member2.Member3.Member4[TYPE_REF]{test.CompletionAllMemberTypes2.Member1.Member2.Member3.Member4, test, Ltest.CompletionAllMemberTypes2$Member1$Member2$Member3$Member4;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member5.Member6[TYPE_REF]{test.CompletionAllMemberTypes2.Member1.Member5.Member6, test, Ltest.CompletionAllMemberTypes2$Member1$Member5$Member6;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1[TYPE_REF]{Member1, test, Ltest.CompletionAllMemberTypes2$Member1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member2[TYPE_REF]{Member2, test, Ltest.CompletionAllMemberTypes2$Member1$Member2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member2.Member3[TYPE_REF]{Member3, test, Ltest.CompletionAllMemberTypes2$Member1$Member2$Member3;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member5[TYPE_REF]{Member5, test, Ltest.CompletionAllMemberTypes2$Member1$Member5;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-public void testCompletionAllMemberTypes3() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionAllMemberTypes2.js",
-            "package test;\n" +
-            "public interface CompletionAllMemberTypes2 {\n" +
-            "  interface Member1 {\n" +
-            "    interface Member5 {\n" +
-            "      interface Member6 {\n" +
-            "      }\n" +
-            "    }\n" +
-            "    interface Member2 {\n" +
-            "      interface Member3 {\n" +
-            "        interface Member4 {\n" +
-            "        }\n" +
-            "      }\n" +
-            "        Member\n" +
-            "    }\n" +
-            "  \n}" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "Member";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-            "Member[POTENTIAL_METHOD_DECLARATION]{Member, Ltest.CompletionAllMemberTypes2$Member1$Member2;, ()V, Member, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member2.Member3.Member4[TYPE_REF]{test.CompletionAllMemberTypes2.Member1.Member2.Member3.Member4, test, Ltest.CompletionAllMemberTypes2$Member1$Member2$Member3$Member4;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member5.Member6[TYPE_REF]{test.CompletionAllMemberTypes2.Member1.Member5.Member6, test, Ltest.CompletionAllMemberTypes2$Member1$Member5$Member6;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1[TYPE_REF]{Member1, test, Ltest.CompletionAllMemberTypes2$Member1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member2[TYPE_REF]{Member2, test, Ltest.CompletionAllMemberTypes2$Member1$Member2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member2.Member3[TYPE_REF]{Member3, test, Ltest.CompletionAllMemberTypes2$Member1$Member2$Member3;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionAllMemberTypes2.Member1.Member5[TYPE_REF]{Member5, test, Ltest.CompletionAllMemberTypes2$Member1$Member5;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-public void testCompletionAllMemberTypes4() throws JavaScriptModelException {
-	IJavaScriptUnit anInterface = null;
-	try {
-		anInterface = getWorkingCopy(
-	            "/Completion/src/test/AnInterface.js",
-	            "package test;\n" +
-	            "public interface AnInterface {\n" +
-	            "  public interface Member1 {\n" +
-	            "    public interface Member5 {\n" +
-	            "      public interface Member6 {\n" +
-	            "      }\n" +
-	            "    }\n" +
-	            "    public interface Member2 {\n" +
-	            "      public interface Member3 {\n" +
-	            "        interface Member4 {\n" +
-	            "        }\n" +
-	            "      }\n" +
-	            "        Member\n" +
-	            "    }\n" +
-	            "  \n}" +
-	            "}");
-		
-	    this.wc = getWorkingCopy(
-	            "/Completion/src/test/CompletionAllMemberTypes2.js",
-	            "package test;\n" +
-	            "public class CompletionAllMemberTypes2 {\n" +
-	            "  class Member1 {\n" +
-	            "    class Member5 {\n" +
-	            "      class Member6 {\n" +
-	            "      }\n" +
-	            "    }\n" +
-	            "    class Member2 implements AnInterface {\n" +
-	            "      class Member3 {\n" +
-	            "        class Member4 {\n" +
-	            "        }\n" +
-	            "      }\n" +
-	            "      void foo(){\n" +
-	            "        Member\n" +
-	            "      }\n" +
-	            "    }\n" +
-	            "  \n}" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "Member";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-    	assertResults(
-	            "AnInterface.Member1.Member2[TYPE_REF]{test.AnInterface.Member1.Member2, test, Ltest.AnInterface$Member1$Member2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AnInterface.Member1.Member2.Member3[TYPE_REF]{test.AnInterface.Member1.Member2.Member3, test, Ltest.AnInterface$Member1$Member2$Member3;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AnInterface.Member1.Member2.Member3.Member4[TYPE_REF]{test.AnInterface.Member1.Member2.Member3.Member4, test, Ltest.AnInterface$Member1$Member2$Member3$Member4;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AnInterface.Member1.Member5[TYPE_REF]{test.AnInterface.Member1.Member5, test, Ltest.AnInterface$Member1$Member5;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AnInterface.Member1.Member5.Member6[TYPE_REF]{test.AnInterface.Member1.Member5.Member6, test, Ltest.AnInterface$Member1$Member5$Member6;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"CompletionAllMemberTypes2.Member1.Member2.Member3.Member4[TYPE_REF]{test.CompletionAllMemberTypes2.Member1.Member2.Member3.Member4, test, Ltest.CompletionAllMemberTypes2$Member1$Member2$Member3$Member4;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"CompletionAllMemberTypes2.Member1.Member5.Member6[TYPE_REF]{test.CompletionAllMemberTypes2.Member1.Member5.Member6, test, Ltest.CompletionAllMemberTypes2$Member1$Member5$Member6;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AnInterface.Member1[TYPE_REF]{Member1, test, Ltest.AnInterface$Member1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"CompletionAllMemberTypes2.Member1[TYPE_REF]{Member1, test, Ltest.CompletionAllMemberTypes2$Member1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"CompletionAllMemberTypes2.Member1.Member2[TYPE_REF]{Member2, test, Ltest.CompletionAllMemberTypes2$Member1$Member2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"CompletionAllMemberTypes2.Member1.Member2.Member3[TYPE_REF]{Member3, test, Ltest.CompletionAllMemberTypes2$Member1$Member2$Member3;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"CompletionAllMemberTypes2.Member1.Member5[TYPE_REF]{Member5, test, Ltest.CompletionAllMemberTypes2$Member1$Member5;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-	            requestor.getResults());
-	} finally {
-		if(anInterface != null) {
-			anInterface.discardWorkingCopy();
-		}
-	}
-}
-
-public void testCompletionAllMemberTypes5() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	Hashtable oldCurrentOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldCurrentOptions);
-		options.put(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		aType = getWorkingCopy(
-	            "/Completion/src/test/AType.js",
-	            "package test;\n" +
-	            "public class AType {\n" +
-	            "  public class Member1 {\n" +
-	            "    private class Member2 {\n" +
-	            "      public class Member3 {\n" +
-	            "        public class Member4 {\n" +
-	            "        }\n" +
-	            "      }\n" +
-	            "    }\n" +
-	            "  \n}" +
-	            "}");
-		
-	    this.wc = getWorkingCopy(
-	            "/Completion/src/test/CompletionAllMemberTypes5.js",
-	            "package test;\n" +
-	            "public class CompletionAllMemberTypes5 {\n" +
-	            "  void foo(){\n" +
-	            "    Member\n" +
-	            "  }\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "Member";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-    	// AType.Member1.Member2.Member3 and AType.Member1.Member2.Member3.Member4 should not be proposed because they are not visible.
-    	// But visibility need modifiers of enclosing types to be computed. 
-    	assertResults(
-	            "AType.Member1[TYPE_REF]{test.AType.Member1, test, Ltest.AType$Member1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AType.Member1.Member2.Member3[TYPE_REF]{test.AType.Member1.Member2.Member3, test, Ltest.AType$Member1$Member2$Member3;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AType.Member1.Member2.Member3.Member4[TYPE_REF]{test.AType.Member1.Member2.Member3.Member4, test, Ltest.AType$Member1$Member2$Member3$Member4;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-	            requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-		JavaScriptCore.setOptions(oldCurrentOptions);
-	}
-}
-
-public void testCompletionAllMemberTypes6() throws JavaScriptModelException {
-	Hashtable oldCurrentOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldCurrentOptions);
-		options.put(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-	    this.wc = getWorkingCopy(
-	            "/Completion/src/test/CompletionAllMemberTypes6.js",
-	            "package test;\n" +
-	            "class AType {\n" +
-	            "  public class Member1 {\n" +
-	            "    private class Member2 {\n" +
-	            "      public class Member3 {\n" +
-	            "      }\n" +
-	            "    }\n" +
-	            "  }\n" +
-	            "}\n" +
-	            "public class CompletionAllMemberTypes6 {\n" +
-	            "  void foo(){\n" +
-	            "    Member\n" +
-	            "  }\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "Member";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-    	assertResults(
-	            "AType.Member1[TYPE_REF]{test.AType.Member1, test, Ltest.AType$Member1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-	            requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldCurrentOptions);
-	}
-}
-
-public void testCompletionAllMemberTypes7() throws JavaScriptModelException {
-	Hashtable oldCurrentOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldCurrentOptions);
-		options.put(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-	    this.wc = getWorkingCopy(
-	            "/Completion/src/test/AType.js",
-	            "package test;\n" +
-	            "class AType {\n" +
-	            "  public class Member1 {\n" +
-	            "    private class Member2 {\n" +
-	            "      public class Member3 {\n" +
-	            "      }\n" +
-	            "    }\n" +
-	            "  }\n" +
-	            "  void foo(){\n" +
-	            "    Member\n" +
-	            "  }\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "Member";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-    	assertResults(
-	            "AType.Member1.Member2[TYPE_REF]{test.AType.Member1.Member2, test, Ltest.AType$Member1$Member2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AType.Member1.Member2.Member3[TYPE_REF]{test.AType.Member1.Member2.Member3, test, Ltest.AType$Member1$Member2$Member3;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"AType.Member1[TYPE_REF]{Member1, test, Ltest.AType$Member1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-	            requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldCurrentOptions);
-	}
-}
-
-public void testCompletionAllocationExpressionIsParent1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAllocationExpressionIsParent1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionAllocationExpressionIsParent2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionAllocationExpressionIsParent2.js",
-            "public class CompletionAllocationExpressionIsParent2 {\n" +
-            "	public class Inner {\n" +
-            "		public Inner(long i, long j){super();}\n" +
-            "		public Inner(Object i, Object j){super();}\n" +
-            "		\n" +
-            "	}\n" +
-            "	\n" +
-            "	long zzlong;\n" +
-            "	int zzint;\n" +
-            "	double zzdouble;\n" +
-            "	boolean zzboolean;\n" +
-            "	Object zzObject;\n" +
-            "	\n" +
-            "	void foo() {\n" +
-            "		this.new Inner(1, zz\n" +
-            "	}\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "zz";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "zzObject[FIELD_REF]{zzObject, LCompletionAllocationExpressionIsParent2;, Ljava.lang.Object;, zzObject, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzboolean[FIELD_REF]{zzboolean, LCompletionAllocationExpressionIsParent2;, Z, zzboolean, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzdouble[FIELD_REF]{zzdouble, LCompletionAllocationExpressionIsParent2;, D, zzdouble, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzint[FIELD_REF]{zzint, LCompletionAllocationExpressionIsParent2;, I, zzint, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzlong[FIELD_REF]{zzlong, LCompletionAllocationExpressionIsParent2;, J, zzlong, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED)+"}",
-            requestor.getResults());
-}
-
-public void testCompletionAllocationExpressionIsParent3() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionAllocationExpressionIsParent3.js",
-            "public class CompletionAllocationExpressionIsParent3 {\n" +
-            "	public class Inner {\n" +
-            "		public Inner(long i, long j){super();}\n" +
-            "		public Inner(Object i, Object j){super();}\n" +
-            "		\n" +
-            "	}\n" +
-            "	\n" +
-            "	long zzlong;\n" +
-            "	int zzint;\n" +
-            "	double zzdouble;\n" +
-            "	boolean zzboolean;\n" +
-            "	Object zzObject;\n" +
-            "	\n" +
-            "	void foo() {\n" +
-            "		new CompletionAllocationExpressionIsParent3().new Inner(1, zz\n" +
-            "	}\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "zz";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "zzObject[FIELD_REF]{zzObject, LCompletionAllocationExpressionIsParent3;, Ljava.lang.Object;, zzObject, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzboolean[FIELD_REF]{zzboolean, LCompletionAllocationExpressionIsParent3;, Z, zzboolean, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzdouble[FIELD_REF]{zzdouble, LCompletionAllocationExpressionIsParent3;, D, zzdouble, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzint[FIELD_REF]{zzint, LCompletionAllocationExpressionIsParent3;, I, zzint, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzlong[FIELD_REF]{zzlong, LCompletionAllocationExpressionIsParent3;, J, zzlong, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED)+"}",
-            requestor.getResults());
-}
-
-public void testCompletionAllocationExpressionIsParent4() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAllocationExpressionIsParent4.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionAllocationExpressionIsParent5() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAllocationExpressionIsParent5.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionAllocationExpressionIsParent6() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionAllocationExpressionIsParent6.js",
-            "public class CompletionAllocationExpressionIsParent6 {\n" +
-            "	\n" +
-            "	long zzlong;\n" +
-            "	int zzint;\n" +
-            "	double zzdouble;\n" +
-            "	boolean zzboolean;\n" +
-            "	Object zzObject;\n" +
-            "	\n" +
-            "	void foo() {\n" +
-            "		new CompletionAllocation_ERROR_ExpressionIsParent6Plus().new Inner(1, zz\n" +
-            "	}\n" +
-            "}\n" +
-            "class CompletionAllocationExpressionIsParent6Plus {\n" +
-            "	public class Inner {\n" +
-            "		public Inner(long i, long j){\n" +
-            "			\n" +
-            "		}	\n" +
-            "	}	\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "zz";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "zzObject[FIELD_REF]{zzObject, LCompletionAllocationExpressionIsParent6;, Ljava.lang.Object;, zzObject, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzboolean[FIELD_REF]{zzboolean, LCompletionAllocationExpressionIsParent6;, Z, zzboolean, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzdouble[FIELD_REF]{zzdouble, LCompletionAllocationExpressionIsParent6;, D, zzdouble, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzint[FIELD_REF]{zzint, LCompletionAllocationExpressionIsParent6;, I, zzint, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-            "zzlong[FIELD_REF]{zzlong, LCompletionAllocationExpressionIsParent6;, J, zzlong, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED)+"}",
-            requestor.getResults());
-}
-
-public void testCompletionAmbiguousFieldName() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAmbiguousFieldName.js");
-
-	String str = cu.getSource();
-	String completeBehind = "xBa";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions", 
-		"element:xBar    completion:this.xBar    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:xBar    completion:xBar    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionAmbiguousFieldName2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionAmbiguousFieldName2.js",
-            "public class CompletionAmbiguousFieldName2 {\n"+
-            "	int xBar;\n"+
-            "	class classFoo {\n"+
-            "		public void foo(int xBar){\n"+
-            "			xBa\n"+
-            "		}\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "xBa";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "xBar[FIELD_REF]{CompletionAmbiguousFieldName2.this.xBar, LCompletionAmbiguousFieldName2;, I, xBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-            "xBar[LOCAL_VARIABLE_REF]{xBar, null, I, xBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED)+"}",
-            requestor.getResults());
-}
-
-public void testCompletionAmbiguousFieldName3() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAmbiguousFieldName3.js");
-
-	String str = cu.getSource();
-	String completeBehind = "xBa";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions", 
-		"element:xBar    completion:ClassFoo.this.xBar    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:xBar    completion:xBar    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionAmbiguousFieldName4() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAmbiguousFieldName4.js");
-
-	String str = cu.getSource();
-	String completeBehind = "xBa";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one completion", 
-		"element:xBar    completion:xBar    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionAmbiguousType() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAmbiguousType.js");
-
-	String str = cu.getSource();
-	String completeBehind = "ABC";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions", 
-		"element:ABC    completion:p1.ABC    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED)+"\n" +
-		"element:ABC    completion:p2.ABC    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionAmbiguousType2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAmbiguousType2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "ABC";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions", 
-		"element:ABC    completion:ABC    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:ABC    completion:p2.ABC    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionArgumentName() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionArgumentName.js");
-
-	String str = cu.getSource();
-	String completeBehind = "ClassWithComplexName ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions", 
-		"element:classWithComplexName    completion:classWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:complexName2    completion:complexName2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:name    completion:name    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:withComplexName    completion:withComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionArrayAccess1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionArrayAccess1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zzz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzz1    completion:zzz1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-		"element:zzz2    completion:zzz2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE +R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=84690
-public void testCompletionArrayClone() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionArrayClone.js",
-            "package test;\n" +
-            "public class CompletionArrayClone {\n" +
-            "  public void foo() {\n" +
-            "    long[] var;\n" +
-            "    var.clon\n" +
-            "  }\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "clon";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "clone[FUNCTION_REF]{clone(), [J, ()Ljava.lang.Object;, clone, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=84690
-public void testCompletionArrayLength() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionArrayLength.js",
-            "package test;\n" +
-            "public class CompletionArrayLength {\n" +
-            "  public void foo() {\n" +
-            "    long[] var;\n" +
-            "    var.leng\n" +
-            "  }" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "leng";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "length[FIELD_REF]{length, [J, I, length, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-
-public void testCompletionArraysCloneMethod() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionArraysCloneMethod.js");
-
-	String str = cu.getSource();
-	String completeBehind = ".cl";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:clone    completion:clone()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionAssignmentInMethod1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAssignmentInMethod1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionAssignmentInMethod2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAssignmentInMethod2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionAssignmentInMethod3() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAssignmentInMethod3.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionAssignmentInMethod4() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionAssignmentInMethod4.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionBasicAnonymousDeclaration1() throws JavaScriptModelException {
-	CompletionResult result = complete(
-			"/Completion/src3/test0000/CompletionBasicCompletionContext.js",
-			"public class CompletionBasicAnonymousDeclaration1 {\n"+
-			"	void foo() {\n"+
-			"		new Object(\n"+
-			"	}\n"+
-			"}",
-			"new Object(");
-	
-	assertResults(
-			"expectedTypesSignatures=null\n" +
-			"expectedTypesKeys=null",
-			result.context);
-	
-	assertResults(
-			"Object[ANONYMOUS_CLASS_DECLARATION]{, Ljava.lang.Object;, ()V, null, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"Object[FUNCTION_REF<CONSTRUCTOR>]{, Ljava.lang.Object;, ()V, Object, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-			result.proposals);
-}
-
-public void testCompletionBasicCompletionContext() throws JavaScriptModelException {
-	CompletionResult result = complete(
-			"/Completion/src3/test0000/CompletionBasicCompletionContext.js",
-			"package test0000;\n" +
-			"public class CompletionBasicCompletionContext {\n" +
-			"  void bar(String o) {\n" +
-			"    String zzz = null; \n" + 
-			"    o = zzz\n" + 
-			"  }\n" +
-			"}",
-			"zzz");
-	
-	assertResults(
-			"expectedTypesSignatures={Ljava.lang.String;}\n" +
-			"expectedTypesKeys={Ljava/lang/String;}",
-			result.context);
-	
-	assertResults(
-			"zzz[LOCAL_VARIABLE_REF]{zzz, null, Ljava.lang.String;, zzz, null, " + (R_DEFAULT + R_INTERESTING + R_CASE +  + R_EXACT_NAME + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			result.proposals);
-}
-
-public void testCompletionBasicField1() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBasicField1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zzvar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertResults(
-			"zzvarzz[FIELD_REF]{zzvarzz, LCompletionBasicField1;, I, zzvarzz, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionBasicKeyword1() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBasicKeyword1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "whil";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertResults(
-			"while[KEYWORD]{while, null, null, while, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionBasicLocalVariable1() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBasicLocalVariable1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zzvar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertResults(
-			"zzvarzz[LOCAL_VARIABLE_REF]{zzvarzz, null, I, zzvarzz, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionBasicMethod1() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBasicMethod1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zzfo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertResults(
-			"zzfoo[FUNCTION_REF]{zzfoo(), LCompletionBasicMethod1;, ()V, zzfoo, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionBasicMethodDeclaration1() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBasicMethodDeclaration1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "equals";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertResults(
-			"equals[POTENTIAL_METHOD_DECLARATION]{equals, LCompletionBasicMethodDeclaration1;, ()V, equals, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"equals[FUNCTION_DECLARATION]{public boolean equals(Object obj), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_EXACT_NAME + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionBasicPackage1() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBasicPackage1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "java.lan";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertResults(
-			"java.lang[PACKAGE_REF]{java.lang, java.lang, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_QUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-
-public void testCompletionBasicPotentialMethodDeclaration1() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBasicPotentialMethodDeclaration1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zzpot";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertResults(
-			"zzpot[POTENTIAL_METHOD_DECLARATION]{zzpot, LCompletionBasicPotentialMethodDeclaration1;, ()V, zzpot, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-
-public void testCompletionBasicType1() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBasicType1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertResults(
-			"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionBasicVariableDeclaration1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/CompletionBasicVariableDeclaration1.js",
-		"public class CompletionBasicVariableDeclaration1 {\n"+
-		"	public Object obj;\n"+
-		"}\n");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "obj";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	assertResults(
-		"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, " + (R_DEFAULT + R_INTERESTING + R_CASE+ R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED) + "}",
-		requestor.getResults());
-}
-
-public void testCompletionBinaryOperator1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBinaryOperator1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var3    completion:var3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var4    completion:var4    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-
-public void testCompletionBinaryOperator2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBinaryOperator2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:var3    completion:var3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-
-
-public void testCompletionBinaryOperator3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionBinaryOperator3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var3    completion:var3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-
-
-/**
- * Ensures that completion is not case sensitive
- */
-public void testCompletionCaseInsensitive() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu = getCompilationUnit("Completion", "src", "", "CompletionCaseInsensitive.js");
-	
-	String str = cu.getSource();
-	String completeBehind = "Fiel";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	
-	assertEquals("should have one class",
-		"element:field    completion:field    relevance:"+(R_DEFAULT + R_INTERESTING + R_NON_STATIC + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-/**
- * Complete a package in a case insensitive way
- */
-public void testCompletionCaseInsensitivePackage() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionCaseInsensitivePackage.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Ja";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	
-	cu.codeComplete(cursorLocation, requestor);
-	assertEquals(
-		"should have package completions",
-		"element:jarpack1    completion:jarpack1    relevance:"+(R_DEFAULT + R_INTERESTING+ R_NON_RESTRICTED)+"\n" +
-		"element:jarpack2    completion:jarpack2    relevance:"+(R_DEFAULT + R_INTERESTING+ R_NON_RESTRICTED)+"\n" +
-		"element:java    completion:java    relevance:"+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"\n" +
-		"element:java.io    completion:java.io    relevance:"+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"\n" +
-		"element:java.lang    completion:java.lang    relevance:"+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionCastIsParent1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionCastIsParent1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zz00    completion:zz00    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz00M    completion:zz00M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz01    completion:zz01    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz01M    completion:zz01M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz02    completion:zz02    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz02M    completion:zz02M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz10    completion:zz10    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz10M    completion:zz10M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz11    completion:zz11    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz11M    completion:zz11M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz12    completion:zz12    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz12M    completion:zz12M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz20    completion:zz20    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz20M    completion:zz20M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz21    completion:zz21    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz21M    completion:zz21M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz22    completion:zz22    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz22M    completion:zz22M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzOb    completion:zzOb    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzObM    completion:zzObM()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionCastIsParent2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionCastIsParent2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "xx";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:XX00    completion:XX00    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX01    completion:XX01    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX02    completion:XX02    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX10    completion:XX10    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX11    completion:XX11    relevance:"+(R_DEFAULT + R_INTERESTING + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX12    completion:XX12    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX20    completion:XX20    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX21    completion:XX21    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX22    completion:XX22    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionCatchArgumentName() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/CompletionCatchArgumentName.js",
-		"public class CompletionCatchArgumentName {\n"+
-		"	public void foo(){\n"+
-		"		try{\n"+
-		"			\n"+
-		"		} catch (Exception ex)\n"+
-		"	}\n"+
-		"}\n");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "ex";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	assertResults(
-		"exception[VARIABLE_DECLARATION]{exception, null, Ljava.lang.Exception;, exception, null, " + (R_DEFAULT + R_INTERESTING + R_CASE+ R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED) + "}",
-		requestor.getResults());
-}
-
-public void testCompletionCatchArgumentName2() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_ARGUMENT_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_ARGUMENT_PREFIXES,"arg"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"loc"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-	
-	try {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionCatchArgumentName2.js");
-	
-		String str = cu.getSource();
-		String completeBehind = "Exception ";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-	
-		assertEquals(
-			"element:exception    completion:exception    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:locException    completion:locException    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX+ R_NON_RESTRICTED),
-			requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_ARGUMENT_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-
-public void testCompletionClassLiteralAfterAnonymousType1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionClassLiteralAfterAnonymousType1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "double.";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionConditionalExpression1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionConditionalExpression1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var3    completion:var3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var4    completion:var4    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-
-public void testCompletionConditionalExpression2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionConditionalExpression2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var3    completion:var3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var4    completion:var4    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-
-public void testCompletionConditionalExpression3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionConditionalExpression3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var3    completion:var3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var4    completion:var4    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-
-
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=24939
-*/
-public void testCompletionConstructorForAnonymousType() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionConstructorForAnonymousType.js");
-
-	String str = cu.getSource();
-	String completeBehind = "TypeWithConstructor(";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:TypeWithConstructor    completion:    relevance:"+(R_DEFAULT + R_INTERESTING+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionEmptyToken1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionEmptyToken1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	// completion is just at start of 'zz'
-	int cursorLocation = str.lastIndexOf(completeBehind);
-	int start = cursorLocation;
-	int end = start + 4;
-	cu.codeComplete(cursorLocation, requestor);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertEquals(
-			"element:clone    completion:clone()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:equals    completion:equals()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:finalize    completion:finalize()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:foo    completion:foo()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:getClass    completion:getClass()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:hashCode    completion:hashCode()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:notify    completion:notify()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:notifyAll    completion:notifyAll()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:toString    completion:toString()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:wait    completion:wait()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:wait    completion:wait()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:wait    completion:wait()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:zzyy    completion:zzyy    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResultsWithPosition());
-	} else {
-		assertEquals(
-			"element:CompletionEmptyToken1    completion:CompletionEmptyToken1    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:clone    completion:clone()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:equals    completion:equals()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:finalize    completion:finalize()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:foo    completion:foo()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:getClass    completion:getClass()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:hashCode    completion:hashCode()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:notify    completion:notify()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:notifyAll    completion:notifyAll()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:toString    completion:toString()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:wait    completion:wait()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:wait    completion:wait()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:wait    completion:wait()    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:zzyy    completion:zzyy    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResultsWithPosition());
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=100808
-public void testCompletionEmptyToken2() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/testCompletionEmptyToken2/Test.js",
-            "package testCompletionEmptyToken2.");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true);
-    
-    String str = this.wc.getSource();
-    String completeBehind = "testCompletionEmptyToken2.";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    int start = str.lastIndexOf(completeBehind);
-    int end = start + completeBehind.length();
-    
-    assertResults(
-            "expectedTypesSignatures=null\n"+
-            "expectedTypesKeys=null",
-            requestor.getContext());
-    
-	assertResults(
-            "testCompletionEmptyToken2[PACKAGE_REF]{testCompletionEmptyToken2, testCompletionEmptyToken2, null, null, null, ["+start+", "+end+"], " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25221
-*/
-public void testCompletionEmptyTypeName1() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionEmptyTypeName1.js",
-            "public class CompletionEmptyTypeName1 {\n"+
-           "	void foo() {\n"+
-           "		A a = new \n"+
-           "	}\n"+
-           "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "new ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-			"A[TYPE_REF]{A, , LA;, null, null, " +(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} else {
-		assertResults(
-			"CompletionEmptyTypeName1[TYPE_REF]{CompletionEmptyTypeName1, , LCompletionEmptyTypeName1;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED)+"}\n"+
-			"A[TYPE_REF]{A, , LA;, null, null, " +(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	}
-}
-
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25221
-*/
-public void testCompletionEmptyTypeName2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionEmptyTypeName2.js");
-
-	String str = cu.getSource();
-	String completeBehind = " = ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertEquals(
-			"element:a    completion:a    relevance:"+(R_DEFAULT + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:clone    completion:clone()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:equals    completion:equals()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:finalize    completion:finalize()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +		
-			"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:getClass    completion:getClass()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:hashCode    completion:hashCode()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:notify    completion:notify()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:notifyAll    completion:notifyAll()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:toString    completion:toString()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-	} else {
-		assertEquals(
-			"element:A    completion:A    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:CompletionEmptyTypeName2    completion:CompletionEmptyTypeName2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:a    completion:a    relevance:"+(R_DEFAULT + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:clone    completion:clone()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:equals    completion:equals()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:finalize    completion:finalize()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +		
-			"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:getClass    completion:getClass()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:hashCode    completion:hashCode()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:notify    completion:notify()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:notifyAll    completion:notifyAll()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:toString    completion:toString()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-	}
-}
-
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=41643
-*/
-public void testCompletionEmptyTypeName3() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionEmptyTypeName3.js");
-
-	String str = cu.getSource();
-	String completeBehind = " = ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertEquals(
-			"element:clone    completion:clone()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:equals    completion:equals()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:finalize    completion:finalize()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +		
-			"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:getClass    completion:getClass()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:hashCode    completion:hashCode()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:notify    completion:notify()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:notifyAll    completion:notifyAll()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:toString    completion:toString()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:x    completion:x    relevance:"+(R_DEFAULT + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE+ R_NON_RESTRICTED),
-			requestor.getResults());
-	} else {
-		assertEquals(
-			"element:CompletionEmptyTypeName2    completion:CompletionEmptyTypeName2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:CompletionEmptyTypeName3    completion:CompletionEmptyTypeName3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:CompletionEmptyTypeName3.CompletionEmptyTypeName3_1    completion:CompletionEmptyTypeName3_1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:CompletionEmptyTypeName3_2    completion:CompletionEmptyTypeName3_2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:clone    completion:clone()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:equals    completion:equals()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:finalize    completion:finalize()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +		
-			"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:getClass    completion:getClass()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:hashCode    completion:hashCode()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:notify    completion:notify()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:notifyAll    completion:notifyAll()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:toString    completion:toString()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:wait    completion:wait()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:x    completion:x    relevance:"+(R_DEFAULT + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE+ R_NON_RESTRICTED),
-			requestor.getResults());
-	}
-}
-
-/**
- * Complete at end of file.
- */
-public void testCompletionEndOfCompilationUnit() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu = getCompilationUnit("Completion", "src", "", "CompletionEndOfCompilationUnit.js");
-	cu.codeComplete(cu.getSourceRange().getOffset() + cu.getSourceRange().getLength(), requestor);
-	assertEquals(
-		"should have two methods of 'foo'", 
-		"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());	
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=66570
- */
-public void testCompletionExactNameCaseInsensitive() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionExactNameCaseInsensitive.js");
-
-	String str = cu.getSource();
-	String completeBehind = "(compleTionexactnamecaseInsensitive";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-			"element:CompletionExactNameCaseInsensitive    completion:CompletionExactNameCaseInsensitive    relevance:"+(R_DEFAULT + R_INTERESTING + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+ "\n" +
-			"element:CompletionExactNameCaseInsensitivePlus    completion:CompletionExactNameCaseInsensitivePlus    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25820
-*/
-public void testCompletionExpectedTypeIsNotValid() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionExpectedTypeIsNotValid.js");
-
-	String str = cu.getSource();
-	String completeBehind = "new U";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"",
-		requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95505
-public void testCompletionExpectedTypeOnEmptyToken1() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		
-		aType = getWorkingCopy(
-	            "/Completion/src/test/AType.js",
-	            "package test;\n" +
-	            "public class AType{\n"+
-	            "}");
-		
-	    this.wc = getWorkingCopy(
-	            "/Completion/src/test/Test.js",
-	            "package test;\n" +
-	            "public class Test{\n"+
-	            "  void foo() {\n"+
-	            "    AType a = new \n"+
-	            "  }\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "AType a = new ";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-	            "expectedTypesSignatures={Ltest.AType;}\n"+
-	            "expectedTypesKeys={Ltest/AType;}",
-	            requestor.getContext());
-	    if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-			assertResults(
-		            "AType[TYPE_REF]{AType, test, Ltest.AType;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-		            requestor.getResults());
-	    } else {
-	    	assertResults(
-		            "Test[TYPE_REF]{Test, test, Ltest.Test;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-					"AType[TYPE_REF]{AType, test, Ltest.AType;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-		            requestor.getResults());
-	    }
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95505
-public void testCompletionExpectedTypeOnEmptyToken3() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/test/AType.js",
-	            "package test;\n" +
-	            "public class AType{\n"+
-	            "}");
-		
-	    this.wc = getWorkingCopy(
-	            "/Completion/src/test/Test.js",
-	            "package test;\n" +
-	            "public class Test{\n"+
-	            "  void foo() {\n"+
-	            "    AType a = \n"+
-	            "  }\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    requestor.setIgnored(CompletionProposal.METHOD_REF, true);
-	    requestor.setIgnored(CompletionProposal.FIELD_REF, true);
-	    requestor.setIgnored(CompletionProposal.LOCAL_VARIABLE_REF, true);
-	    
-	    String str = this.wc.getSource();
-	    String completeBehind = "AType a = ";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-	            "expectedTypesSignatures={Ltest.AType;}\n"+
-	            "expectedTypesKeys={Ltest/AType;}",
-	            requestor.getContext());
-	    if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-			assertResults(
-		            "",
-		            requestor.getResults());
-	    } else {
-	    	assertResults(
-		            "Test[TYPE_REF]{Test, test, Ltest.Test;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-					"AType[TYPE_REF]{AType, test, Ltest.AType;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-		            requestor.getResults());
-	    }
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95505
-public void testCompletionExpectedTypeOnEmptyToken4() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/test/AInterface.js",
-	            "package test;\n" +
-	            "public interface AInterface{\n"+
-	            "}");
-		
-	    this.wc = getWorkingCopy(
-	            "/Completion/src/test/Test.js",
-	            "package test;\n" +
-	            "public class Test{\n"+
-	            "  void foo() {\n"+
-	            "    AInterface a = new \n"+
-	            "  }\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    
-	    String str = this.wc.getSource();
-	    String completeBehind = "AInterface a = new ";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-	            "expectedTypesSignatures={Ltest.AInterface;}\n"+
-	            "expectedTypesKeys={Ltest/AInterface;}",
-	            requestor.getContext());
-	    
-	    if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-			assertResults(
-		            "AInterface[TYPE_REF]{AInterface, test, Ltest.AInterface;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-		            requestor.getResults());
-	    } else {
-	    	assertResults(
-		            "Test[TYPE_REF]{Test, test, Ltest.Test;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-					"AInterface[TYPE_REF]{AInterface, test, Ltest.AInterface;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-		            requestor.getResults());
-	    }
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-
-
-public void testCompletionFieldInitializer1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFieldInitializer1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionFieldInitializer2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFieldInitializer2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionFieldInitializer3() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFieldInitializer3.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionFieldInitializer4() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFieldInitializer4.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-public void testCompletionFieldName() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFieldName.js");
-
-	String str = cu.getSource();
-	String completeBehind = "ClassWithComplexName ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions",
-		"element:classWithComplexName    completion:classWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:complexName2    completion:complexName2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:name    completion:name    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:withComplexName    completion:withComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-/**
- * Complete the type "A" from "new A".
- */
-public void testCompletionFindClass() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindClass.js",
-            "public class CompletionFindClass {\n" +
-            "	private    A[] a;\n" +
-            "	public CompletionFindClass () {\n" +
-            "		this.a = new A\n" +
-            "	}\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "A";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"ABC[TYPE_REF]{p1.ABC, p1, Lp1.ABC;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n" +
-    		"ABC[TYPE_REF]{p2.ABC, p2, Lp2.ABC;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n" +
-			"A3[TYPE_REF]{A3, , LA3;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-			"A[TYPE_REF]{A, , LA;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-            requestor.getResults());
-}
-
-
-/**
- * The same type must be find only once
- */
-public void testCompletionFindClass2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindClass2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "PX";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one classe", 
-		"element:PX    completion:pack1.PX    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_QUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-
-/**
- * Complete the type "Default" in the default package example.
- */
-public void testCompletionFindClassDefaultPackage() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionDefaultPackage.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Def";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one class", 
-		"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());	
-}
-
-
-/**
- * Complete the constructor "CompletionFindConstructor" from "new CompletionFindConstructor(".
- */
-public void testCompletionFindConstructor() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindConstructor.js",
-            "public class CompletionFindConstructor {\n"+
-            "	public CompletionFindConstructor (int i) {\n"+
-            "	}\n"+
-            "	publuc void foo(){\n"+
-            "		int x = 45;\n"+
-            "		new CompletionFindConstructor(i);\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    
-    String str = this.wc.getSource();
-    String completeBehind = "CompletionFindConstructor(";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "expectedTypesSignatures=null\n"+
-            "expectedTypesKeys=null",
-            requestor.getContext());
-    
-   assertResults(
-			"CompletionFindConstructor[ANONYMOUS_CLASS_DECLARATION]{, LCompletionFindConstructor;, (I)V, null, (i), "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n" +
-			"CompletionFindConstructor[FUNCTION_REF<CONSTRUCTOR>]{, LCompletionFindConstructor;, (I)V, CompletionFindConstructor, (i), "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78801
- */
-public void testCompletionFindConstructor2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindConstructor2.js",
-            "import zconstructors.*;\n"+
-            "public class CompletionFindConstructor2 {\n"+
-            "	Constructor2 c = new Constructor2();\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    
-    String str = this.wc.getSource();
-    String completeBehind = "Constructor2(";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "expectedTypesSignatures=null\n"+
-            "expectedTypesKeys=null",
-            requestor.getContext());
-    
-    assertEquals(
-			"Constructor2[ANONYMOUS_CLASS_DECLARATION]{, Lzconstructors.Constructor2;, ()V, null, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"Constructor2[FUNCTION_REF<CONSTRUCTOR>]{, Lzconstructors.Constructor2;, ()V, Constructor2, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78801
- */
-public void testCompletionFindConstructor3() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindConstructor3.js",
-            "import zconstructors.*;\n"+
-            "public class CompletionFindConstructor3 {\n"+
-            "	Constructor3 c = new Constructor3();\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    
-    String str = this.wc.getSource();
-    String completeBehind = "Constructor3(";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "expectedTypesSignatures=null\n"+
-            "expectedTypesKeys=null",
-            requestor.getContext());
-    
-    assertEquals(
-			"Constructor3[ANONYMOUS_CLASS_DECLARATION]{, Lzconstructors.Constructor3;, ()V, null, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"Constructor3[FUNCTION_REF<CONSTRUCTOR>]{, Lzconstructors.Constructor3;, ()V, Constructor3, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78801
- */
-public void testCompletionFindConstructor4() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindConstructor4.js",
-            "import zconstructors.*;\n"+
-            "public class CompletionFindConstructor4 {\n"+
-            "	Constructor4 c = new Constructor4();\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    
-    String str = this.wc.getSource();
-    String completeBehind = "Constructor4(";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "expectedTypesSignatures=null\n"+
-            "expectedTypesKeys=null",
-            requestor.getContext());
-    
-	assertEquals(
-			"Constructor4[ANONYMOUS_CLASS_DECLARATION]{, Lzconstructors.Constructor4;, (I)V, null, (i), " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"Constructor4[FUNCTION_REF<CONSTRUCTOR>]{, Lzconstructors.Constructor4;, (I)V, Constructor4, (i), " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78801
- */
-public void testCompletionFindConstructor5() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindConstructor5.js",
-            "import zconstructors.*;\n"+
-            "public class CompletionFindConstructor5 {\n"+
-            "	Constructor5 c = new Constructor5();\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    
-    String str = this.wc.getSource();
-    String completeBehind = "Constructor5(";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "expectedTypesSignatures=null\n"+
-            "expectedTypesKeys=null",
-            requestor.getContext());
-    
-	assertEquals(
-			"Constructor5[ANONYMOUS_CLASS_DECLARATION]{, Lzconstructors.Constructor5;, (I)V, null, (arg0), " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"Constructor5[FUNCTION_REF<CONSTRUCTOR>]{, Lzconstructors.Constructor5;, (I)V, Constructor5, (arg0), " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-/**
- * Complete the exception "Exception" in a catch clause.
- */
-public void testCompletionFindExceptions1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindException1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Ex";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	
-	assertEquals(
-		"should have one class", 
-		"element:Exception    completion:Exception    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXCEPTION + R_UNQUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-/**
- * Complete the exception "Exception" in a throws clause.
- */
-public void testCompletionFindExceptions2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindException2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Ex";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one class",
-		"element:Exception    completion:Exception    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXCEPTION + R_UNQUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-/**
- * Complete the field "var" from "va";
- */
-public void testCompletionFindField1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindField1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "va";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	
-	assertEquals(
-		"should have one field: 'var' and one variable: 'var'", 
-		"element:var    completion:this.var    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n"+
-		"element:var    completion:var    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());	
-}
-
-/**
- * Complete the field "var" from "this.va";
- */
-public void testCompletionFindField2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindField2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "va";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	
-	assertEquals(
-		"should have 1 field of starting with 'va'",
-		"element:var    completion:var    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionFindField3() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindField3.js");
-
-	String str = cu.getSource();
-	String completeBehind = "b.ba";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:bar    completion:bar    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-/**
- * Complete the import, "import pac"
- */
-public void testCompletionFindImport1() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindImport1.js",
-            "import pac\n"+
-            "\n"+
-            "public class CompletionFindImport1 {\n"+
-            "\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "pac";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-    
-	assertResults(
-			"pack[PACKAGE_REF]{pack.*;, pack, null, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"pack1[PACKAGE_REF]{pack1.*;, pack1, null, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"pack1.pack3[PACKAGE_REF]{pack1.pack3.*;, pack1.pack3, null, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"pack2[PACKAGE_REF]{pack2.*;, pack2, null, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) +"}",
-			requestor.getResults());
-}
-
-public void testCompletionFindImport2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindImport2.js",
-            "import pack1.P\n"+
-            "\n"+
-            "public class CompletionFindImport2 {\n"+
-            "\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "pack1.P";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-    
-	assertResults(
-			"pack1.pack3[PACKAGE_REF]{pack1.pack3.*;, pack1.pack3, null, null, null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n"+
-			"PX[TYPE_REF]{pack1.PX;, pack1, Lpack1.PX;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-
-/**
- * Complete the local variable "var";
- */
-public void testCompletionFindLocalVariable() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindLocalVariable.js");
-
-	String str = cu.getSource();
-	String completeBehind = "va";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	assertEquals(
-		"should have one local variable of 'var'", 
-		"element:var    completion:var    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());	
-}
-
-public void testCompletionFindMemberType1() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindMemberType1.js",
-            "interface A1 {\n"+
-            "	class Inner1 {\n"+
-            "	}\n"+
-            "}\n"+
-            "interface B1 extends A1 {\n"+
-            "	class Inner1 {\n"+
-            "	}\n"+
-            "}\n"+
-            "public class CompletionFindMemberType1 {\n"+
-            "	public void foo() {\n"+
-            "		B1.Inner\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "Inner";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"B1.Inner1[TYPE_REF]{Inner1, , LB1$Inner1;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) +"}",
-		requestor.getResults());
-}
-
-public void testCompletionFindMemberType2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionPrefixMethodName2.js",
-            "interface A2 {\n"+
-            "	class ZInner2{\n"+
-            "	}\n"+
-            "}\n"+
-            "interface B2 extends A2 {\n"+
-            "	class ZInner2 {\n"+
-            "	}\n"+
-            "}\n"+
-            "public class CompletionFindMemberType2 implements B2{\n"+
-            "	public void foo() {\n"+
-            "		ZInner\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "ZInner";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"B2.ZInner2[TYPE_REF]{ZInner2, , LB2$ZInner2;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE+ R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-
-/**
- * Complete the method call "a.foobar" from "a.fooba";
- */
-public void testCompletionFindMethod1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindMethod1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "fooba";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	assertEquals(
-		"should have two methods of 'foobar'", 
-		"element:foobar    completion:foobar()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED)+"\n" +
-		"element:foobar    completion:foobar()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED),
-		requestor.getResults());		
-}
-/**
- * Too much Completion match on interface
- */
-public void testCompletionFindMethod2() throws JavaScriptModelException {
-	
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindMethod2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "fooba";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions", 
-		"element:foobar    completion:foobar()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED)+"\n" +
-		"element:foobar    completion:foobar()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED),
-		requestor.getResults());	
-}
-/**
- * Complete the method call "foobar" from "fooba";
- */
-public void testCompletionFindMethodInThis() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindMethodInThis.js");
-
-	String str = cu.getSource();
-	String completeBehind = "fooba";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	assertEquals(
-		"should have one method of 'foobar'", 
-		"element:foobar    completion:foobar    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());		
-}
-
-/**
- * Complete the method call "foobar" from "fooba".  The compilation
- * unit simulates typing in process; ie it has incomplete structure/syntax errors.
- */
-public void testCompletionFindMethodWhenInProcess() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindMethodInProcess.js");
-
-	String str = cu.getSource();
-	String completeBehind = "fooba";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	assertEquals(
-		"should have a method of 'foobar'", 
-		"element:foobar    completion:foobar()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-		requestor.getResults());
-	cu.close();
-}
-
-public void testCompletionFindSecondaryType1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindSecondaryType1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "/**/Secondary";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:SecondaryType1    completion:SecondaryType1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-		"element:SecondaryType2    completion:SecondaryType2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionFindSuperInterface() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionFindSuperInterface.js",
-            "public class CompletionFindSuperInterface implements SuperInterface {\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "Super";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-           "SuperInterface[TYPE_REF]{SuperInterface, , LSuperInterface;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_INTERFACE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-
-/**
- * Complete the field "bar" from "this.ba"
- */
-public void testCompletionFindThisDotField() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindThisDotField.js");
-
-	String str = cu.getSource();
-	String completeBehind = "this.ba";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	assertEquals(
-		"should have one result of 'bar'", 
-		"element:bar    completion:bar    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED),
-		requestor.getResults());
-}
-
-public void testCompletionImportedType1() throws JavaScriptModelException {
-    this.workingCopies = new IJavaScriptUnit[2];
-    this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/imported/ZZZZ.js",
-		"package test.imported;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-		
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/test/CompletionImportedType1.js",
-			"package test;"+
-			"public class CompletionImportedType1 {"+
-			"  ZZZ\n"+
-			"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[1].getSource();
-	String completeBehind = "ZZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[1].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"ZZZ[POTENTIAL_METHOD_DECLARATION]{ZZZ, Ltest.CompletionImportedType1;, ()V, ZZZ, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{test.imported.ZZZZ, test.imported, Ltest.imported.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionImportedType2() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/imported1/ZZZZ.js",
-		"package test.imported1;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/imported2/ZZZZ.js",
-		"package test.imported2;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/imported3/ZZZZ.js",
-		"package test.imported3;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-	
-	this.workingCopies[3] = getWorkingCopy(
-		"/Completion/src/test/CompletionImportedType2.js",
-		"package test;"+
-		"import test.imported1.*;"+
-		"import test.imported2.*;"+
-		"import test.imported3.*;"+
-		"public class CompletionImportedType2 {"+
-		"  ZZZ\n"+
-		"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[3].getSource();
-	String completeBehind = "ZZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[3].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"ZZZ[POTENTIAL_METHOD_DECLARATION]{ZZZ, Ltest.CompletionImportedType2;, ()V, ZZZ, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{test.imported1.ZZZZ, test.imported1, Ltest.imported1.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{test.imported2.ZZZZ, test.imported2, Ltest.imported2.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{test.imported3.ZZZZ, test.imported3, Ltest.imported3.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionImportedType3() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[4];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/imported1/ZZZZ.js",
-		"package test.imported1;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/imported2/ZZZZ.js",
-		"package test.imported2;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/imported3/ZZZZ.js",
-		"package test.imported3;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-	
-	this.workingCopies[3] = getWorkingCopy(
-		"/Completion/src/test/CompletionImportedType3.js",
-		"package test;"+
-		"import test.imported2.*;"+
-		"public class CompletionImportedType3 {"+
-		"  ZZZ\n"+
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[3].getSource();
-	String completeBehind = "ZZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[3].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"ZZZ[POTENTIAL_METHOD_DECLARATION]{ZZZ, Ltest.CompletionImportedType3;, ()V, ZZZ, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{test.imported1.ZZZZ, test.imported1, Ltest.imported1.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{test.imported3.ZZZZ, test.imported3, Ltest.imported3.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{ZZZZ, test.imported2, Ltest.imported2.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionImportedType4() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/imported1/ZZZZ.js",
-		"package test.imported1;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/imported2/ZZZZ.js",
-		"package test.imported2;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-		
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/CompletionImportedType4.js",
-		"package test;"+
-		"import test.imported1.*;"+
-		"public class CompletionImportedType4 {"+
-		"  ZZZ\n"+
-		"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[2].getSource();
-	String completeBehind = "ZZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[2].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"ZZZ[POTENTIAL_METHOD_DECLARATION]{ZZZ, Ltest.CompletionImportedType4;, ()V, ZZZ, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{test.imported2.ZZZZ, test.imported2, Ltest.imported2.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{ZZZZ, test.imported1, Ltest.imported1.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionImportedType5() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/imported1/ZZZZ.js",
-		"package test.imported1;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/imported2/ZZZZ.js",
-		"package test.imported2;"+
-		"public class ZZZZ {\n"+
-		"  \n"+
-		"}");
-		
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/CompletionImportedType5.js",
-		"package test;"+
-		"import test.imported2.*;"+
-		"public class CompletionImportedType5 {"+
-		"  ZZZ\n"+
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[2].getSource();
-	String completeBehind = "ZZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[2].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"ZZZ[POTENTIAL_METHOD_DECLARATION]{ZZZ, Ltest.CompletionImportedType5;, ()V, ZZZ, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{test.imported1.ZZZZ, test.imported1, Ltest.imported1.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"ZZZZ[TYPE_REF]{ZZZZ, test.imported2, Ltest.imported2.ZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends1() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends1.js",
-			"package test;\n" +
-			"public class CompletionInsideExtends1 extends  {\n" +
-			"  public class CompletionInsideExtends1Inner {}\n" +
-			"}\n" +
-			"class CompletionInsideExtends1TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-				"",
-				requestor.getResults());
-	} else {
-		assertResults(
-				"CompletionInsideExtends1TopLevel[TYPE_REF]{CompletionInsideExtends1TopLevel, test, Ltest.CompletionInsideExtends1TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	}
-	
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends10() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends10.js",
-			"package test;\n" +
-			"public interface CompletionInsideExtends10 {\n" +
-			"  public interface CompletionInsideExtends10Inner extends CompletionInsideExtends{\n" +
-			"    public interface CompletionInsideExtends10InnerInner {\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n" +
-			"interface CompletionInsideExtends10TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends CompletionInsideExtends";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"CompletionInsideExtends10[TYPE_REF]{CompletionInsideExtends10, test, Ltest.CompletionInsideExtends10;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionInsideExtends10TopLevel[TYPE_REF]{CompletionInsideExtends10TopLevel, test, Ltest.CompletionInsideExtends10TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends11() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends11.js",
-			"package test;\n" +
-			"public class CompletionInsideExtends11 implements {\n" +
-			"  public class CompletionInsideExtends11Inner {\n" +
-			"  }\n" +
-			"}\n" +
-			"class CompletionInsideExtends11TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "implements ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-				"",
-				requestor.getResults());
-	} else {
-		assertResults(
-				"",
-				requestor.getResults());
-	}
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends12() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends12.js",
-			"package test;\n" +
-			"public class CompletionInsideExtends12 implements CompletionInsideExtends {\n" +
-			"  public class CompletionInsideExtends12Inner {\n" +
-			"  }\n" +
-			"}\n" +
-			"class CompletionInsideExtends12TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "implements CompletionInsideExtends";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends2.js",
-			"package test;\n" +
-			"public class CompletionInsideExtends2 extends CompletionInsideExtends {\n" +
-			"  public class CompletionInsideExtends2Inner {}\n" +
-			"}\n" +
-			"class CompletionInsideExtends2TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends CompletionInsideExtends";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"CompletionInsideExtends2TopLevel[TYPE_REF]{CompletionInsideExtends2TopLevel, test, Ltest.CompletionInsideExtends2TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends3() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends3.js",
-			"package test;\n" +
-			"public class CompletionInsideExtends3 {\n" +
-			"  public class CompletionInsideExtends3Inner extends {\n" +
-			"    public class CompletionInsideExtends3InnerInner {\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n" +
-			"class CompletionInsideExtends3TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-				"",
-				requestor.getResults());
-	} else {
-		assertResults(
-				"CompletionInsideExtends3[TYPE_REF]{CompletionInsideExtends3, test, Ltest.CompletionInsideExtends3;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"CompletionInsideExtends3TopLevel[TYPE_REF]{CompletionInsideExtends3TopLevel, test, Ltest.CompletionInsideExtends3TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	}
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends4() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends4.js",
-			"package test;\n" +
-			"public class CompletionInsideExtends4 {\n" +
-			"  public class CompletionInsideExtends4Inner extends CompletionInsideExtends{\n" +
-			"    public class CompletionInsideExtends4InnerInner {\n" +
-			"    }\n" +
-			"  }\n" +
-			"\n}" +
-			"class CompletionInsideExtends4TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends CompletionInsideExtends";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"CompletionInsideExtends4[TYPE_REF]{CompletionInsideExtends4, test, Ltest.CompletionInsideExtends4;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionInsideExtends4TopLevel[TYPE_REF]{CompletionInsideExtends4TopLevel, test, Ltest.CompletionInsideExtends4TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends5() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends5.js",
-			"package test;\n" +
-			"public class CompletionInsideExtends5 {\n" +
-			"  void foo() {\n" +
-			"    public class CompletionInsideExtends5Inner extends {\n" +
-			"      public class CompletionInsideExtends5InnerInner {\n" +
-			"      }\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n" +
-			"class CompletionInsideExtends5TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-				"",
-				requestor.getResults());
-	} else {
-		assertResults(
-				"CompletionInsideExtends5[TYPE_REF]{CompletionInsideExtends5, test, Ltest.CompletionInsideExtends5;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"CompletionInsideExtends5TopLevel[TYPE_REF]{CompletionInsideExtends5TopLevel, test, Ltest.CompletionInsideExtends5TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	}
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends6() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends6.js",
-			"package test;\n" +
-			"public class CompletionInsideExtends6 {\n" +
-			"  void foo() {\n" +
-			"    public class CompletionInsideExtends6Inner extends CompletionInsideExtends {\n" +
-			"      public class CompletionInsideExtends6InnerInner {\n" +
-			"      }\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n" +
-			"class CompletionInsideExtends6TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends CompletionInsideExtends";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"CompletionInsideExtends6[TYPE_REF]{CompletionInsideExtends6, test, Ltest.CompletionInsideExtends6;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"CompletionInsideExtends6TopLevel[TYPE_REF]{CompletionInsideExtends6TopLevel, test, Ltest.CompletionInsideExtends6TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends7() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends7.js",
-			"package test;\n" +
-			"public interface CompletionInsideExtends7 extends  {\n" +
-			"  public interface CompletionInsideExtends7Inner {}\n" +
-			"}\n" +
-			"interface CompletionInsideExtends7TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-				"",
-				requestor.getResults());
-	} else {
-		assertResults(
-				"CompletionInsideExtends7TopLevel[TYPE_REF]{CompletionInsideExtends7TopLevel, test, Ltest.CompletionInsideExtends7TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends8() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends8.js",
-			"package test;\n" +
-			"public interface CompletionInsideExtends8 extends CompletionInsideExtends {\n" +
-			"  public interface CompletionInsideExtends8Inner {}\n" +
-			"}\n" +
-			"interface CompletionInsideExtends8TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends CompletionInsideExtends";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"CompletionInsideExtends8TopLevel[TYPE_REF]{CompletionInsideExtends8TopLevel, test, Ltest.CompletionInsideExtends8TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=78151
-public void testCompletionInsideExtends9() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideExtends9.js",
-			"package test;\n" +
-			"public interface CompletionInsideExtends9 {\n" +
-			"  public interface CompletionInsideExtends9Inner extends {\n" +
-			"    public interface CompletionInsideExtends9InnerInner {\n" +
-			"    }\n" +
-			"  }\n" +
-			"}\n" +
-			"interface CompletionInsideExtends9TopLevel {\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "extends ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-				"",
-				requestor.getResults());
-	} else {
-		assertResults(
-				"CompletionInsideExtends9[TYPE_REF]{CompletionInsideExtends9, test, Ltest.CompletionInsideExtends9;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"CompletionInsideExtends9TopLevel[TYPE_REF]{CompletionInsideExtends9TopLevel, test, Ltest.CompletionInsideExtends9TopLevel;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CLASS + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	}
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=82740
-public void testCompletionInsideGenericClass() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionInsideGenericClass.js",
-			"package test;\n" +
-			"public class CompletionInsideGenericClass <CompletionInsideGenericClassParameter> {\n" +
-			"  CompletionInsideGenericClas\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "CompletionInsideGenericClas";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"CompletionInsideGenericClas[POTENTIAL_METHOD_DECLARATION]{CompletionInsideGenericClas, Ltest.CompletionInsideGenericClass;, ()V, CompletionInsideGenericClas, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-			"CompletionInsideGenericClass[TYPE_REF]{CompletionInsideGenericClass, test, Ltest.CompletionInsideGenericClass;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-
-public void testCompletionInsideStaticMethod() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionInsideStaticMethod.js");
-
-	String str = cu.getSource();
-	String completeBehind = "doT";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-			"element:doTheThing    completion:doTheThing()    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionInstanceofOperator1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionInstanceofOperator1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "x instanceof WWWCompletionInstanceof";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:WWWCompletionInstanceof1    completion:WWWCompletionInstanceof1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:WWWCompletionInstanceof2    completion:WWWCompletionInstanceof2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:WWWCompletionInstanceof3    completion:WWWCompletionInstanceof3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:WWWCompletionInstanceof4    completion:WWWCompletionInstanceof4    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordAssert1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordAssert1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "as";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:assert    completion:assert    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordAssert2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordAssert2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "as";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordAssert3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordAssert3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "as";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordAssert4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordAssert4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "as";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:assert    completion:assert    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordAssert5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordAssert5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "as";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordAssert6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordAssert6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "as";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordBreak1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordBreak1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "bre";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:break    completion:break    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordBreak2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordBreak2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "bre";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordBreak3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordBreak3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "bre";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:break    completion:break    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordBreak4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordBreak4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "bre";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:break    completion:break    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordBreak5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordBreak5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "bre";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordBreak6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordBreak6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "bre";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:break    completion:break    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCase1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:case    completion:case    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCase10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordCase2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:case    completion:case    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCase3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:case    completion:case    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCase4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:case    completion:case    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCase5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordCase6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:case    completion:case    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCase7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:case    completion:case    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCase8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:case    completion:case    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCase9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCase9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cas";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:case    completion:case    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:catch    completion:catch    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:catch    completion:catch    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:catchz    completion:catchz    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:catch    completion:catch    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:catchz    completion:catchz    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:catch    completion:catch    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordCatch9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordCatch9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cat";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordClass1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass11() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass11.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass12() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass12.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass13() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass13.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass14() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass14.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass15() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass15.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass16() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass16.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass17() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass17.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass18() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass18.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass19() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass19.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass20() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass20.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass21() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass21.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass22() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass22.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass23() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass23.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass24() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass24.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordClass9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordClass9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cla";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Class    completion:Class    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:ClassWithComplexName    completion:ClassWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:class    completion:class    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordContinue1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordContinue1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cont";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:continue    completion:continue    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordContinue2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordContinue2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cont";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordContinue3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordContinue3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cont";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:continue    completion:continue    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordContinue4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordContinue4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "cont";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:default    completion:default    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:default    completion:default    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:default    completion:default    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:default    completion:default    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:default    completion:default    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:default    completion:default    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDefault9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDefault9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "def";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Default    completion:Default    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDo1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDo1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "do";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:do    completion:do    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED)+"\n"+
-			"element:double    completion:double    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDo2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDo2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "do";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:double    completion:double    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDo3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDo3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "do";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:double    completion:double    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDo4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDo4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "do";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:do    completion:do    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED)+"\n"+
-			"element:double    completion:double    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDo5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDo5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "do";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:double    completion:double    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordDo6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordDo6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "do";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:double    completion:double    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordElse1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordElse1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "els";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:else    completion:else    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordElse2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordElse2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "els";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordElse3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordElse3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "els";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordElse4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordElse4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "els";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordElse5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordElse5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "els";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:else    completion:else    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordElse6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordElse6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "els";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordElse7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordElse7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "els";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordElse8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordElse8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "els";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFalse1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFalse1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fal";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFalse2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFalse2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fal";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:false    completion:false    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFalse3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFalse3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fal";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFalse4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFalse4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fal";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:false    completion:false    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=95008
-public void testCompletionKeywordFalse5() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  boolean test = ;\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "boolean test = ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"Test[TYPE_REF]{Test, test, Ltest.Test;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, (J)V, wait, (millis), " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"test[FIELD_REF]{test, Ltest.Test;, Z, test, null, " + (R_DEFAULT + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}\n" +
-			"equals[FUNCTION_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}\n" +
-			"false[KEYWORD]{false, null, null, false, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_TRUE_OR_FALSE + R_NON_RESTRICTED) + "}\n" +
-			"true[KEYWORD]{true, null, null, true, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_TRUE_OR_FALSE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal11() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal11.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal12() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal12.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal13() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal13.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal14() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal14.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:finalize    completion:protected void finalize() throws Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal15() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal15.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal16() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal16.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:finalize    completion:protected void finalize() throws Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal17() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal17.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal18() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal18.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:finalize    completion:finalize()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:finalize    completion:protected void finalize() throws Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:finalize    completion:protected void finalize() throws Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinal9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinal9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fin";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:final    completion:final    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:finalize    completion:finalize()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE +R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:finally    completion:finally    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally11() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally11.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally12() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally12.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:finally    completion:finally    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally13() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally13.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:finally    completion:finally    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:finallyz    completion:finallyz    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally14() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally14.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:finallyz    completion:finallyz    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:finally    completion:finally    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:finally    completion:finally    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:finallyz    completion:finallyz    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:finallyz    completion:finallyz    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:finally    completion:finally    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFinally9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFinally9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "finall";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFor1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFor1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:for    completion:for    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFor2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFor2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFor3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFor3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordFor4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFor4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:for    completion:for    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFor5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFor5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordFor6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordFor6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordIf1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordIf1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "if";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:if    completion:if    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordIf2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordIf2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "if";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordIf3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordIf3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "if";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordIf4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordIf4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "if";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:if    completion:if    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordIf5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordIf5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "if";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordIf6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordIf6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "if";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordImport1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordImport1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "imp";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:import    completion:import    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordImport2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "p", "CompletionKeywordImport2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "imp";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:import    completion:import    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordImport3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordImport3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "imp";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:import    completion:import    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordImport4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordImport4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "imp";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordImport5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordImport5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "imp";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:import    completion:import    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordImport6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordImport6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "imp";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordImport7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordImport7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "imp";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:import    completion:import    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordImport8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "p", "CompletionKeywordImport8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "imp";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:import    completion:import    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordInstanceof1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordInstanceof1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ins";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:instanceof    completion:instanceof    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordInstanceof2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordInstanceof2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ins";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordInstanceof3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordInstanceof3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ins";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordInstanceof4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordInstanceof4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ins";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:instanceof    completion:instanceof    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordInstanceof5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordInstanceof5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ins";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordInstanceof6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordInstanceof6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ins";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordNew1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew11() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew11.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew12() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew12.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew13() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew13.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew14() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew14.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew15() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew15.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew16() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew16.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNew9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNew9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "ne";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:new    completion:new    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNull1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNull1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "nul";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordNull2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNull2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "nul";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:null    completion:null    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordNull3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNull3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "nul";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordNull4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordNull4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "nul";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:null    completion:null    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPackage1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPackage1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pac";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:package    completion:package    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPackage2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "p", "CompletionKeywordPackage2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pac";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-
-public void testCompletionKeywordPackage3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPackage3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pac";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPackage4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPackage4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pac";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPackage5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPackage5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pac";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPackage6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPackage6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pac";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPackage7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPackage7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pac";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPackage8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "p", "CompletionKeywordPackage8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pac";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:private    completion:private    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:private    completion:private    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:private    completion:private    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:private    completion:private    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:private    completion:private    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:private    completion:private    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPrivate9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPrivate9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pri";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:protected    completion:protected    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:protected    completion:protected    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:protected    completion:protected    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:protected    completion:protected    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:protected    completion:protected    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:protected    completion:protected    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordProtected9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordProtected9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic11() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic11.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic12() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic12.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic13() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic13.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic14() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic14.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic15() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic15.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic16() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic16.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic17() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic17.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic18() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic18.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic19() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic19.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic20() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:public    completion:public    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordPublic9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordPublic9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "pub";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordReturn1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordReturn1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "re";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:return    completion:return    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordReturn2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordReturn2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "re";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordReturn3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordReturn3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "re";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordReturn4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordReturn4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "re";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:return    completion:return    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordReturn5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordReturn5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "re";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordReturn6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordReturn6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "re";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:static    completion:static    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:static    completion:static    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:static    completion:static    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:static    completion:static    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:static    completion:static    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:static    completion:static    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:static    completion:static    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:static    completion:static    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStatic9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStatic9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sta";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordStrictfp1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStrictfp1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "stric";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:strictfp    completion:strictfp    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStrictfp2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStrictfp2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "stric";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordStrictfp3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStrictfp3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "stric";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:strictfp    completion:strictfp    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStrictfp4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStrictfp4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "stric";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordStrictfp5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStrictfp5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "stric";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:strictfp    completion:strictfp    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStrictfp6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStrictfp6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "stric";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordStrictfp7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStrictfp7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "stric";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:strictfp    completion:strictfp    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordStrictfp8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordStrictfp8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "stric";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:super    completion:super    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:super    completion:super    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper11() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper11.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper12() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src2/CompletionKeywordSuper12.js",
-            "public class CompletionKeywordSuper12 {\n"+
-            "	public CompletionKeywordSuper12() {\n"+
-            "		#\n"+
-            "		sup\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    
-    String str = this.wc.getSource();
-    String completeBehind = "sup";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "expectedTypesSignatures=null\n"+
-            "expectedTypesKeys=null",
-            requestor.getContext());
-    
-    assertResults(
-            "SuperClass[TYPE_REF]{SuperClass, , LSuperClass;, null, null, " + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"SuperInterface[TYPE_REF]{SuperInterface, , LSuperInterface;, null, null, " + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"super[KEYWORD]{super, null, null, super, null, "+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED)+"}\n" +
-			"super[FUNCTION_REF<CONSTRUCTOR>]{super(), Ljava.lang.Object;, ()V, super, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:super    completion:super    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:super    completion:super    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper6() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src2/CompletionKeywordSuper6.js",
-            "public class CompletionKeywordSuper6 {\n"+
-            "	public CompletionKeywordSuper6() {\n"+
-            "		sup\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    
-    String str = this.wc.getSource();
-    String completeBehind = "sup";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "expectedTypesSignatures=null\n"+
-            "expectedTypesKeys=null",
-            requestor.getContext());
-    
-    assertResults(
-            "SuperClass[TYPE_REF]{SuperClass, , LSuperClass;, null, null, " + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"SuperInterface[TYPE_REF]{SuperInterface, , LSuperInterface;, null, null, " + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-			"super[KEYWORD]{super, null, null, super, null, "+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED)+"}\n" +
-			"super[FUNCTION_REF<CONSTRUCTOR>]{super(), Ljava.lang.Object;, ()V, super, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:super    completion:super    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:super    completion:super    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSuper9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSuper9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sup";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:SuperClass    completion:SuperClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:SuperInterface    completion:SuperInterface    relevance:" + (R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSwitch1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSwitch1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sw";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:switch    completion:switch    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSwitch2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSwitch2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sw";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordSwitch3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSwitch3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sw";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordSwitch4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSwitch4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sw";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:switch    completion:switch    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordSwitch5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSwitch5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sw";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordSwitch6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordSwitch6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "sw";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordThis1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:this    completion:this    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThis10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordThis11() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis11.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:this    completion:this    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThis12() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis12.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordThis13() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis13.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:this    completion:this    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThis14() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis14.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=42402
- */
-public void testCompletionKeywordThis15() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src2/CompletionKeywordThis15.js",
-            "public class CompletionKeywordThis15 {\n" +
-            "	public class InnerClass {\n" +
-            "		public InnerClass() {\n" +
-            "			CompletionKeywordThis15 a = CompletionKeywordThis15.this;\n" +
-            "		}\n" +
-            "	}\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "CompletionKeywordThis15.";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"CompletionKeywordThis15.InnerClass[TYPE_REF]{InnerClass, , LCompletionKeywordThis15$InnerClass;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n" +
-			"class[FIELD_REF]{class, null, Ljava.lang.Class;, class, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n"+
-			"this[KEYWORD]{this, null, null, this, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}",
-		requestor.getResults());
-}
-public void testCompletionKeywordThis2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:this    completion:this    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThis3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordThis4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:this    completion:this    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThis5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordThis6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:this    completion:this    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThis7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordThis8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:this    completion:this    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThis9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThis9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thi";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:this    completion:this    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrow1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrow1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Throwable    completion:Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:throw    completion:throw    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrow2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrow2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Throwable    completion:Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrow3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrow3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Throwable    completion:Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrow4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrow4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Throwable    completion:Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-			"element:throw    completion:throw    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrow5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrow5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Throwable    completion:Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrow6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrow6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:Throwable    completion:Throwable    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrows1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrows1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:throws    completion:throws    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrows2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrows2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordThrows3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrows3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:throws    completion:throws    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrows4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrows4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:throws    completion:throws    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrows5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrows5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:throws    completion:throws    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrows6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrows6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordThrows7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrows7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:throws    completion:throws    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordThrows8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordThrows8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "thro";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:throws    completion:throws    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordTrue1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTrue1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "tru";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordTrue2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTrue2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "tru";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:true    completion:true    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordTrue3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTrue3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "tru";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordTrue4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTrue4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "tru";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:true    completion:true    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90615
-public void testCompletionKeywordTrue5() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionKeywordTrue5.js",
-			"package test;\n" +
-			"public class CompletionKeywordTrue5 {\n" +
-			"  public void foo() {\n" +
-			"    boolean var;\n" +
-			"    var = tr\n" +
-			"  }\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "tr";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"true[KEYWORD]{true, null, null, true, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=90615
-public void testCompletionKeywordTrue6() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionKeywordTrue6.js",
-			"package test;\n" +
-			"public class CompletionKeywordTrue6 {\n" +
-			"  public void foo() {\n" +
-			"    boolean var;\n" +
-			"    var = \n" +
-			"  }\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "var = ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-				"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"foo[FUNCTION_REF]{foo(), Ltest.CompletionKeywordTrue6;, ()V, foo, null, " +(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, (J)V, wait, (millis), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"equals[FUNCTION_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"}\n"+
-				"var[LOCAL_VARIABLE_REF]{var, null, Z, var, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"}\n"+
-				"false[KEYWORD]{false, null, null, false, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_TRUE_OR_FALSE + R_NON_RESTRICTED)+"}\n"+
-				"true[KEYWORD]{true, null, null, true, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_TRUE_OR_FALSE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} else {
-		assertResults(
-				"CompletionKeywordTrue6[TYPE_REF]{CompletionKeywordTrue6, test, Ltest.CompletionKeywordTrue6;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"foo[FUNCTION_REF]{foo(), Ltest.CompletionKeywordTrue6;, ()V, foo, null, " +(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, (J)V, wait, (millis), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"equals[FUNCTION_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"}\n"+
-				"var[LOCAL_VARIABLE_REF]{var, null, Z, var, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"}\n"+
-				"false[KEYWORD]{false, null, null, false, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_TRUE_OR_FALSE + R_NON_RESTRICTED)+"}\n"+
-				"true[KEYWORD]{true, null, null, true, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_TRUE_OR_FALSE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	}
-}
-public void testCompletionKeywordTry1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTry1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "tr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:try    completion:try    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordTry2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTry2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "tr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:true    completion:true    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordTry3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTry3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "try";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordTry4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTry4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "tr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:try    completion:try    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordTry5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTry5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "tr";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:true    completion:true    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordTry6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordTry6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "try";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:while    completion:while    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile10() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile10.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:while    completion:while    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile3() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile3.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile4() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile4.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:while    completion:while    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile5() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile5.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:while    completion:while    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile6() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile6.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:while    completion:while    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile7() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile7.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile8() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile8.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"",
-			requestor.getResults());
-}
-public void testCompletionKeywordWhile9() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src2", "", "CompletionKeywordWhile9.js");
-
-		String str = cu.getSource();
-		String completeBehind = "wh";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:while    completion:while    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionLocalName() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionLocalName.js");
-
-	String str = cu.getSource();
-	String completeBehind = "ClassWithComplexName ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions", 
-		"element:classWithComplexName    completion:classWithComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:complexName2    completion:complexName2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:name    completion:name    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:withComplexName    completion:withComplexName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionLocalType1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/CompletionLocalType1.js",
-		"public class CompletionLocalType1 {\n" +
-		"	void foo() {\n" +
-		"		class ZZZZ {\n" +
-		"			ZZZ\n" +
-		"		}\n" +
-		"	}\n" +
-		"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "ZZZ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"ZZZ[POTENTIAL_METHOD_DECLARATION]{ZZZ, LZZZZ;, ()V, ZZZ, null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n"+
-			"ZZZZ[TYPE_REF]{ZZZZ, , LZZZZ;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25815
-*/
-public void testCompletionMemberType() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionMemberType.js",
-            "public class CompletionMemberType {\n"+
-            "	public class Y {\n"+
-            "		public void foo(){\n"+
-            "			Y var = new Y\n"+
-            "		}\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "new Y";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-		"CompletionMemberType.Y[TYPE_REF]{Y, , LCompletionMemberType$Y;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_EXACT_NAME+ R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-public void testCompletionMemberType2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionMemberType2.js",
-            "public class CompletionMemberType2 {\n"+
-            "	public class MemberException extends Exception {\n"+
-            "	}\n"+
-            "	void foo() {\n"+
-            "		throw new \n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "new ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-			"",
-			requestor.getResults());
-	} else {
-		assertResults(
-			"CompletionMemberType2[TYPE_REF]{CompletionMemberType2, test, Ltest.CompletionMemberType2;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-			"CompletionMemberType2.MemberException[TYPE_REF]{MemberException, test, Ltest.CompletionMemberType2$MemberException;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXCEPTION+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	}
-}
-public void testCompletionMemberType3() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionArrayClone.js",
-            "public class CompletionMemberType3 {\n"+
-            "	public class MemberException extends Exception {\n"+
-            "	}\n"+
-            "	void foo() {\n"+
-            "		throw new MemberE\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "new MemberE";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"CompletionMemberType3.MemberException[TYPE_REF]{MemberException, test, Ltest.CompletionMemberType3$MemberException;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXCEPTION+ R_UNQUALIFIED + R_NON_RESTRICTED) +"}",
-		requestor.getResults());
-}
-public void testCompletionMessageSendIsParent1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMessageSendIsParent1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMessageSendIsParent2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMessageSendIsParent2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMessageSendIsParent3() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMessageSendIsParent3.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMessageSendIsParent4() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMessageSendIsParent4.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMessageSendIsParent5() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMessageSendIsParent5.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMessageSendIsParent6() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMessageSendIsParent6.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMethodDeclaration() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMethodDeclaration.js");
-
-	String str = cu.getSource();
-	String completeBehind = "eq";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions", 
-		"element:eqFoo    completion:public int eqFoo(int a, Object b)    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"\n" +
-		"element:equals    completion:public boolean equals(Object obj)    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMethodDeclaration10() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMethodDeclaration10.js");
-
-	String str = cu.getSource();
-	String completeBehind = "clon";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one completion", 
-		"element:CloneNotSupportedException    completion:CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-		"element:clone    completion:protected Object clone() throws CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=80063
-public void testCompletionMethodDeclaration11() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-			"/Completion/src/test/CompletionMethodDeclaration11.js",
-			"package test;\n" +
-			"public class CompletionMethodDeclaration11 {\n" +
-			"  private void foo() {\n" +
-			"  }\n" +
-			"}\n" +
-			"class CompletionMethodDeclaration11_2 extends CompletionMethodDeclaration11 {\n" +
-			"  fo\n" +
-			"}");
-	
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.wc.getSource();
-	String completeBehind = "fo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"fo[POTENTIAL_METHOD_DECLARATION]{fo, Ltest.CompletionMethodDeclaration11_2;, ()V, fo, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-public void testCompletionMethodDeclaration12() throws JavaScriptModelException {
-    this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionMethodDeclaration12.js",
-            "package test;\n" +
-            "public class CompletionMethodDeclaration12 {\n" +
-            "  public void foo() {\n" +
-            "  }\n" +
-            "}\n" +
-            "class CompletionMethodDeclaration12_2 extends CompletionMethodDeclaration12{\n" +
-            "  public final void foo() {\n" +
-            "  }\n" +
-            "}\n" +
-            "class CompletionMethodDeclaration12_3 extends CompletionMethodDeclaration12_2 {\n" +
-            "  fo\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "fo";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-            "fo[POTENTIAL_METHOD_DECLARATION]{fo, Ltest.CompletionMethodDeclaration12_3;, ()V, fo, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-            requestor.getResults());
-}
-public void testCompletionMethodDeclaration2() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass.js",
-	            "public class CompletionSuperClass{\n" +
-	            "	public class Inner {}\n" +
-	            "	public int eqFoo(int a,Object b){\n" +
-	            "		return 1;\n" +
-	            "	}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionMethodDeclaration2.js",
-	            "public class CompletionMethodDeclaration2 extends CompletionSuperClass {\n" +
-	            "	eq\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "eq";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"eq[POTENTIAL_METHOD_DECLARATION]{eq, LCompletionMethodDeclaration2;, ()V, eq, null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n" +
-			"eqFoo[FUNCTION_DECLARATION]{public int eqFoo(int a, Object b), LCompletionSuperClass;, (ILjava.lang.Object;)I, eqFoo, (a, b), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n" +
-			"equals[FUNCTION_DECLARATION]{public boolean equals(Object obj), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-	}
-}
-/**
- * Completion should not propose declarations of method already locally implemented
- */
-public void testCompletionMethodDeclaration3() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass.js",
-	            "public class CompletionSuperClass{\n" +
-	            "	public class Inner {}\n" +
-	            "	public int eqFoo(int a,Object b){\n" +
-	            "		return 1;\n" +
-	            "	}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionMethodDeclaration3.js",
-	            "public class CompletionMethodDeclaration3 extends CompletionSuperClass {\n" +
-	            "	eq\n" +
-	            "	\n" +
-	            "	public int eqFoo(int a,Object b){\n" +
-	            "		return 1;\n" +
-	            "	}\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "eq";
-	    int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"eq[POTENTIAL_METHOD_DECLARATION]{eq, LCompletionMethodDeclaration3;, ()V, eq, null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n" +
-			"equals[FUNCTION_DECLARATION]{public boolean equals(Object obj), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionMethodDeclaration4() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface.js",
-	            "public interface CompletionSuperInterface{\n"+
-	            "	public int eqFoo(int a,Object b);\n"+
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionMethodDeclaration4.js",
-	            "public abstract class CompletionMethodDeclaration4 implements CompletionSuperInterface {\n"+
-	            "	eq\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "eq";
-	    int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"eq[POTENTIAL_METHOD_DECLARATION]{eq, LCompletionMethodDeclaration4;, ()V, eq, null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n" +
-			"equals[FUNCTION_DECLARATION]{public boolean equals(Object obj), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-			"eqFoo[FUNCTION_DECLARATION]{public int eqFoo(int a, Object b), LCompletionSuperInterface;, (ILjava.lang.Object;)I, eqFoo, (a, b), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_ABSTRACT_METHOD + R_METHOD_OVERIDE+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionMethodDeclaration5() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass.js",
-	            "public class CompletionSuperClass{\n" +
-	            "	public class Inner {}\n" +
-	            "	public int eqFoo(int a,Object b){\n" +
-	            "		return 1;\n" +
-	            "	}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionMethodDeclaration5.js",
-	            "public class CompletionMethodDeclaration5 {\n" +
-	            "	public static void main(String[] args) {\n" +
-	            "		new CompletionSuperClass() {\n" +
-	            "	}\n" +
-	            "\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "new CompletionSuperClass() {";
-	    int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-			assertResults(
-				"[POTENTIAL_METHOD_DECLARATION]{, LCompletionSuperClass;, ()V, , null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n" +
-				"clone[FUNCTION_DECLARATION]{protected Object clone() throws CloneNotSupportedException, Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"eqFoo[FUNCTION_DECLARATION]{public int eqFoo(int a, Object b), LCompletionSuperClass;, (ILjava.lang.Object;)I, eqFoo, (a, b), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"equals[FUNCTION_DECLARATION]{public boolean equals(Object obj), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"finalize[FUNCTION_DECLARATION]{protected void finalize() throws Throwable, Ljava.lang.Object;, ()V, finalize, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"hashCode[FUNCTION_DECLARATION]{public int hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"toString[FUNCTION_DECLARATION]{public String toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED)+ "}",
-				requestor.getResults());
-		} else {
-			assertResults(
-				"[POTENTIAL_METHOD_DECLARATION]{, LCompletionSuperClass;, ()V, , null, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED)+"}\n" +
-				"CompletionMethodDeclaration5[TYPE_REF]{CompletionMethodDeclaration5, , LCompletionMethodDeclaration5;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-				"clone[FUNCTION_DECLARATION]{protected Object clone() throws CloneNotSupportedException, Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"eqFoo[FUNCTION_DECLARATION]{public int eqFoo(int a, Object b), LCompletionSuperClass;, (ILjava.lang.Object;)I, eqFoo, (a, b), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"equals[FUNCTION_DECLARATION]{public boolean equals(Object obj), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"finalize[FUNCTION_DECLARATION]{protected void finalize() throws Throwable, Ljava.lang.Object;, ()V, finalize, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"hashCode[FUNCTION_DECLARATION]{public int hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED)+"}\n"+
-				"toString[FUNCTION_DECLARATION]{public String toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED)+ "}",
-				requestor.getResults());
-		}
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionMethodDeclaration6() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMethodDeclaration6.js");
-
-	String str = cu.getSource();
-	String completeBehind = "clon";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one completion", 
-		"element:CloneNotSupportedException    completion:CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMethodDeclaration7() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMethodDeclaration7.js");
-
-	String str = cu.getSource();
-	String completeBehind = "clon";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one completion", 
-		"element:CloneNotSupportedException    completion:CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-		"element:clone    completion:protected Object clone() throws CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMethodDeclaration8() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMethodDeclaration8.js");
-
-	String str = cu.getSource();
-	String completeBehind = "clon";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one completion", 
-		"element:CloneNotSupportedException    completion:CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-		"element:clone    completion:protected Object clone() throws CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMethodDeclaration9() throws JavaScriptModelException {
-
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMethodDeclaration9.js");
-
-	String str = cu.getSource();
-	String completeBehind = "clon";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have one completion", 
-		"element:CloneNotSupportedException    completion:CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-		"element:clone    completion:protected Object clone() throws CloneNotSupportedException    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMethodThrowsClause() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMethodThrowsClause.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Ex";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Exception    completion:Exception    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXCEPTION + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionMethodThrowsClause2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionMethodThrowsClause2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Ex";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Exception    completion:Exception    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXCEPTION+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionNonEmptyToken1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionNonEmptyToken1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	int start = cursorLocation - 2;
-	int end = start + 4;
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzyy    completion:zzyy    position:["+start+","+end+"]    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResultsWithPosition());
-}
-public void testCompletionNonStaticFieldRelevance() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionNonStaticFieldRelevance.js");
-
-	String str = cu.getSource();
-	String completeBehind = "var.Ii";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-			"element:Ii0    completion:Ii0    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "\n" +
-			"element:ii1    completion:ii1    relevance:" + (R_DEFAULT + R_INTERESTING + R_NON_STATIC+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-/**
- * Attempt to do completion with a null requestor
- */
-public void testCompletionNullRequestor() throws JavaScriptModelException {
-	try {
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionFindThisDotField.js");
-		cu.codeComplete(5, (CompletionRequestor)null);
-	} catch (IllegalArgumentException iae) {
-		return;
-	}
-	assertTrue("Should not be able to do completion with a null requestor", false);
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=24565
-*/
-public void testCompletionObjectsMethodWithInterfaceReceiver() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionObjectsMethodWithInterfaceReceiver.js");
-
-	String str = cu.getSource();
-	String completeBehind = "hash";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:hashCode    completion:hashCode()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_EXACT_EXPECTED_TYPE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-/**
- * Ensures that the code assist features works on class files with associated source.
- */
-public void testCompletionOnClassFile() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IClassFile cu = getClassFile("Completion", "zzz.jar", "jarpack1", "X.class");
-	
-	String str = cu.getSource();
-	String completeBehind = "Obj";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	assertEquals(
-		"should have one class", 
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25890
-*/
-public void testCompletionOnStaticMember1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionOnStaticMember1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25890
-*/
-public void testCompletionOnStaticMember2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionOnStaticMember2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "method";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:method1    completion:method1()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-			"element:method2    completion:method2()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-/**
- * Test that an out of bounds index causes an exception.
- */
-public void testCompletionOutOfBounds() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionOutOfBounds.js");
-	try {
-		cu.codeComplete(cu.getSource().length() + 1, requestor);
-	} catch (JavaScriptModelException e) {
-		return;
-	}
-	assertTrue("should have failed", false);
-}
-public void testCompletionPackageAndClass1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "z1.z2.qla0", "Qla3.js");
-
-	String str = cu.getSource();
-	String completeBehind = "z1.z2.ql";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-			"element:Qla1    completion:z1.z2.Qla1    relevance:" + (R_DEFAULT + R_INTERESTING + R_QUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:qla2    completion:z1.z2.qla2    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_QUALIFIED + R_NON_RESTRICTED) + "\n" +
-			"element:z1.z2.qla0    completion:z1.z2.qla0    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_QUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionPackageAndClass2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "z1.z2.qla0", "Wla.js");
-
-	String str = cu.getSource();
-	String completeBehind = "z1.z2.qla0.";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-			"element:Qla3    completion:Qla3    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "\n" +
-			"element:Qla4    completion:Qla4    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "\n" +
-			"element:Wla    completion:Wla    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionPrefixFieldName1() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionPrefixFieldName1.js",
-            "public class CompletionPrefixFieldName1 {\n"+
-            "	int xBar;\n"+
-            "	\n"+
-            "	class classFoo {\n"+
-            "		int xBar;\n"+
-            "		\n"+
-            "		public void foo(){\n"+
-            "			xBa\n"+
-            "		}\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "xBa";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"xBar[FIELD_REF]{CompletionPrefixFieldName1.this.xBar, LCompletionPrefixFieldName1;, I, xBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n" +
-		"xBar[FIELD_REF]{xBar, LCompletionPrefixFieldName1$classFoo;, I, xBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-public void testCompletionPrefixFieldName2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionPrefixFieldName2.js",
-            "public class CompletionPrefixFieldName2 {\n"+
-            "	int xBar;\n"+
-            "	\n"+
-            "	class classFoo {\n"+
-            "		int xBar;\n"+
-            "		\n"+
-            "		public void foo(){\n"+
-            "			new CompletionPrefixFieldName2().xBa\n"+
-            "		}\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "xBa";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"xBar[FIELD_REF]{xBar, LCompletionPrefixFieldName2;, I, xBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-public void testCompletionPrefixMethodName1() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionPrefixMethodName1.js",
-            "public class CompletionPrefixMethodName1 {\n"+
-           "	int xBar(){}\n"+
-           "	\n"+
-           "	class classFoo {\n"+
-           "		int xBar(){}\n"+
-           "		\n"+
-           "		public void foo(){\n"+
-           "			xBa\n"+
-           "		}\n"+
-           "	}\n"+
-           "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "xBa";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"xBar[FUNCTION_REF]{CompletionPrefixMethodName1.this.xBar(), LCompletionPrefixMethodName1;, ()I, xBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n" +
-		"xBar[FUNCTION_REF]{xBar(), LCompletionPrefixMethodName1$classFoo;, ()I, xBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-public void testCompletionPrefixMethodName2() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionPrefixMethodName2.js",
-            "public class CompletionPrefixMethodName2 {\n"+
-            "	int xBar(){}\n"+
-            "	\n"+
-            "	class classFoo {\n"+
-            "		int xBar(){}\n"+
-            "		\n"+
-            "		public void foo(){\n"+
-            "			new CompletionPrefixMethodName2().xBa\n"+
-            "		}\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "xBa";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"xBar[FUNCTION_REF]{xBar(), LCompletionPrefixMethodName2;, ()I, xBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-public void testCompletionPrefixMethodName3() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionPrefixMethodName2.js",
-            "public class CompletionPrefixMethodName3 {\n"+
-            "	int xBar(int a, int b){}\n"+
-            "	\n"+
-            "	class classFoo {\n"+
-            "		int xBar(int a, int b){}\n"+
-            "		\n"+
-            "		public void foo(){\n"+
-            "			xBar(1,\n"+
-            "		}\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "xBar(1,";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"xBar[FUNCTION_REF]{CompletionPrefixMethodName3.this.xBar(1,, LCompletionPrefixMethodName3;, (II)I, xBar, (a, b), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME+ R_NON_RESTRICTED)+"}\n"+
-		"xBar[FUNCTION_REF]{, LCompletionPrefixMethodName3$classFoo;, (II)I, xBar, (a, b), "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-public void testCompletionQualifiedAllocationType1() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionQualifiedAllocationType1.js",
-            "public class CompletionQualifiedAllocationType1 {\n"+
-            "	public class YYY {\n"+
-            "	}\n"+
-            "	void foo(){\n"+
-            "		this.new YYY\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "YYY";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-		"CompletionQualifiedAllocationType1.YYY[TYPE_REF]{YYY, , LCompletionQualifiedAllocationType1$YYY;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME+ R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=26677
-*/
-public void testCompletionQualifiedExpectedType() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/test/CompletionQualifiedExpectedType.js",
-            "import pack1.PX;\n"+
-            "\n"+
-            "public class CompletionQualifiedExpectedType {\n"+
-            "	void foo() {\n"+
-            "		pack2.PX var = new \n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "new ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-    	assertResults(
-	            "PX[TYPE_REF]{pack2.PX, pack2, Lpack2.PX;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE+ R_NON_RESTRICTED)+ "}",
-				requestor.getResults());
-    } else {
-	    assertResults(
-	            "CompletionQualifiedExpectedType[TYPE_REF]{CompletionQualifiedExpectedType, test, Ltest.CompletionQualifiedExpectedType;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-				"PX[TYPE_REF]{pack2.PX, pack2, Lpack2.PX;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE+ R_NON_RESTRICTED)+ "}",
-				requestor.getResults());
-    }
-}
-/**
- * Complete the type "Repeated", "RepeatedOtherType from "Repeated".
- */
-public void testCompletionRepeatedType() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionRepeatedType.js");
-
-	String str = cu.getSource();
-	String completeBehind = "/**/CompletionRepeated";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	assertEquals(
-		"should have two types",
-		"element:CompletionRepeatedOtherType    completion:CompletionRepeatedOtherType    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:CompletionRepeatedType    completion:CompletionRepeatedType    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());	
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25591
-*/
-public void testCompletionReturnInInitializer() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionReturnInInitializer.js");
-
-	String str = cu.getSource();
-	String completeBehind = "eq";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:equals    completion:equals()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionReturnStatementIsParent1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionReturnStatementIsParent1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zz00    completion:zz00    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz00M    completion:zz00M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz01    completion:zz01    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz01M    completion:zz01M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz02    completion:zz02    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz02M    completion:zz02M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz10    completion:zz10    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz10M    completion:zz10M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz11    completion:zz11    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz11M    completion:zz11M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz12    completion:zz12    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz12M    completion:zz12M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz20    completion:zz20    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz20M    completion:zz20M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz21    completion:zz21    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz21M    completion:zz21M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz22    completion:zz22    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zz22M    completion:zz22M()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzOb    completion:zzOb    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzObM    completion:zzObM()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionReturnStatementIsParent2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionReturnStatementIsParent2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "xx";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:XX00    completion:XX00    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX01    completion:XX01    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX02    completion:XX02    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX10    completion:XX10    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX11    completion:XX11    relevance:"+(R_DEFAULT + R_INTERESTING + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX12    completion:XX12    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX20    completion:XX20    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX21    completion:XX21    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:XX22    completion:XX22    relevance:"+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=66908
- */
-public void testCompletionSameClass() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionSameClass.js");
-
-	String str = cu.getSource();
-	String completeBehind = "(CompletionSameClas";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-			"element:CompletionSameClass    completion:CompletionSameClass    relevance:" + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionSameSuperClass() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionSameSuperClass.js",
-            "public class CompletionSameSuperClass extends A {\n" +
-            "	class Inner extends A {\n" +
-            "		void foo(int bar){\n" +
-            "			bar\n" +
-            "		}\n" +
-            "	}	\n" +
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "bar";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-		"bar[FIELD_REF]{CompletionSameSuperClass.this.bar, LA;, I, bar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED)+"}\n"+
-		"bar[FIELD_REF]{this.bar, LA;, I, bar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED)+"}\n"+
-		"bar[FUNCTION_REF]{CompletionSameSuperClass.this.bar(), LA;, ()V, bar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED)+"}\n"+
-		"bar[LOCAL_VARIABLE_REF]{bar, null, I, bar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"bar[FUNCTION_REF]{bar(), LA;, ()V, bar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-public void testCompletionStaticMethod1() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/TypeWithAMethodAndAStaticMethod .js",
-	            "public class TypeWithAMethodAndAStaticMethod {\n"+
-	            "	public static void foo(){}\n"+
-	            "	public void foo0(){}\n"+
-	            "}");
-			
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionStaticMethod1.js",
-	            "public class CompletionStaticMethod1 extends TypeWithAMethodAndAStaticMethod {\n"+
-	            "	void bar(){\n"+
-	            "		new TypeWithAMethodAndAStaticMethod(){\n"+
-	            "			class Inner1 extends TypeWithAMethodAndAStaticMethod {\n"+
-	            "				void bar(){\n"+
-	            "					foo\n"+
-	            "				}\n"+
-	            "			}\n"+
-	            "		};\n"+
-	            "	}\n"+
-	            "	\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "foo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo0[FUNCTION_REF]{CompletionStaticMethod1.this.foo0(), LTypeWithAMethodAndAStaticMethod;, ()V, foo0, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"foo0[FUNCTION_REF]{foo0(), LTypeWithAMethodAndAStaticMethod;, ()V, foo0, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED) + "}\n" +
-				"foo[FUNCTION_REF]{CompletionStaticMethod1.foo(), LTypeWithAMethodAndAStaticMethod;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED) + "}\n" +
-				"foo[FUNCTION_REF]{foo(), LTypeWithAMethodAndAStaticMethod;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_NAME + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionStaticMethodDeclaration1() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/TypeWithAMethodAndAStaticMethod .js",
-	            "public class TypeWithAMethodAndAStaticMethod {\n"+
-	            "	public static void foo(){}\n"+
-	            "	public void foo0(){}\n"+
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionStaticMethodDeclaration1.js",
-	            "public class CompletionStaticMethodDeclaration1 extends TypeWithAMethodAndAStaticMethod {\n"+
-	            "	foo\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "foo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo[POTENTIAL_METHOD_DECLARATION]{foo, LCompletionStaticMethodDeclaration1;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"foo0[FUNCTION_DECLARATION]{public void foo0(), LTypeWithAMethodAndAStaticMethod;, ()V, foo0, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionStaticMethodDeclaration2() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/TypeWithAMethodAndAStaticMethod .js",
-	            "public class TypeWithAMethodAndAStaticMethod {\n"+
-	            "	public static void foo(){}\n"+
-	            "	public void foo0(){}\n"+
-	            "}");
-			
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionStaticMethodDeclaration2.js",
-	            "public class CompletionStaticMethodDeclaration2 {\n" +
-	            "	class Inner1 extends TypeWithAMethodAndAStaticMethod {\n" +
-	            "		foo\n" +
-	            "	}\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "foo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo[POTENTIAL_METHOD_DECLARATION]{foo, LCompletionStaticMethodDeclaration2$Inner1;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"foo0[FUNCTION_DECLARATION]{public void foo0(), LTypeWithAMethodAndAStaticMethod;, ()V, foo0, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionStaticMethodDeclaration3() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/TypeWithAMethodAndAStaticMethod .js",
-	            "public class TypeWithAMethodAndAStaticMethod {\n"+
-	            "	public static void foo(){}\n"+
-	            "	public void foo0(){}\n"+
-	            "}");
-			
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionStaticMethodDeclaration3.js",
-	            "public class CompletionStaticMethodDeclaration3 {\n" +
-	            "	static class Inner1 extends TypeWithAMethodAndAStaticMethod {\n" +
-	            "		foo\n" +
-	            "	}\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "foo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo[POTENTIAL_METHOD_DECLARATION]{foo, LCompletionStaticMethodDeclaration3$Inner1;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"foo0[FUNCTION_DECLARATION]{public void foo0(), LTypeWithAMethodAndAStaticMethod;, ()V, foo0, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionStaticMethodDeclaration4() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/TypeWithAMethodAndAStaticMethod .js",
-	            "public class TypeWithAMethodAndAStaticMethod {\n"+
-	            "	public static void foo(){}\n"+
-	            "	public void foo0(){}\n"+
-	            "}");
-			
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionStaticMethodDeclaration4.js",
-	            "public class CompletionStaticMethodDeclaration4 {\n" +
-	            "	void bar() {\n" +
-	            "		class Local1 extends TypeWithAMethodAndAStaticMethod {\n" +
-	            "			foo\n" +
-	            "		}\n" +
-	            "	}\n" +
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "foo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo[POTENTIAL_METHOD_DECLARATION]{foo, LLocal1;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"foo0[FUNCTION_DECLARATION]{public void foo0(), LTypeWithAMethodAndAStaticMethod;, ()V, foo0, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionStaticMethodDeclaration5() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/TypeWithAMethodAndAStaticMethod .js",
-	            "public class TypeWithAMethodAndAStaticMethod {\n"+
-	            "	public static void foo(){}\n"+
-	            "	public void foo0(){}\n"+
-	            "}");
-			
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionStaticMethodDeclaration5.js",
-	            "public class CompletionStaticMethodDeclaration5 {\n"+
-	            "	void bar() {\n"+
-	            "		static class Local1 extends TypeWithAMethodAndAStaticMethod {\n"+
-	            "			foo\n"+
-	            "		}\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "foo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo[POTENTIAL_METHOD_DECLARATION]{foo, LLocal1;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"foo0[FUNCTION_DECLARATION]{public void foo0(), LTypeWithAMethodAndAStaticMethod;, ()V, foo0, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionStaticMethodDeclaration6() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/TypeWithAMethodAndAStaticMethod .js",
-	            "public class TypeWithAMethodAndAStaticMethod {\n"+
-	            "	public static void foo(){}\n"+
-	            "	public void foo0(){}\n"+
-	            "}");
-			
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionStaticMethodDeclaration6.js",
-	            "public class CompletionStaticMethodDeclaration6 {\n"+
-	            "	void bar() {\n"+
-	            "		new TypeWithAMethodAndAStaticMethod() {\n"+
-	            "			foo\n"+
-	            "		};\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "foo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo[POTENTIAL_METHOD_DECLARATION]{foo, LTypeWithAMethodAndAStaticMethod;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"foo0[FUNCTION_DECLARATION]{public void foo0(), LTypeWithAMethodAndAStaticMethod;, ()V, foo0, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_METHOD_OVERIDE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionSuperType() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass.js",
-	            "public class CompletionSuperClass{\n" +
-	            "	public class Inner {}\n" +
-	            "	public int eqFoo(int a,Object b){\n" +
-	            "		return 1;\n" +
-	            "	}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionSuperType.js",
-	            "public class CompletionSuperType extends CompletionSuperClass.");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "CompletionSuperClass.";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"CompletionSuperClass.Inner[TYPE_REF]{Inner, , LCompletionSuperClass$Inner;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_CLASS+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionSuperType2() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	IJavaScriptUnit superClass2 = null;
-	IJavaScriptUnit superInterface = null;
-	IJavaScriptUnit superInterface2 = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass.js",
-	            "public class CompletionSuperClass{\n" +
-	            "	public class Inner {}\n" +
-	            "	public int eqFoo(int a,Object b){\n" +
-	            "		return 1;\n" +
-	            "	}\n" +
-	            "}");
-		
-		superClass2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass2.js",
-	            "public class CompletionSuperClass2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		superInterface = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface.js",
-	            "public interface CompletionSuperInterface{\n" +
-	            "	public int eqFoo(int a,Object b);\n" +
-	            "}");
-		
-		superInterface2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface2.js",
-	            "public interface CompletionSuperInterface2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionSuperType2.js",
-	            "public class CompletionSuperType2 extends CompletionSuper");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "CompletionSuper";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"CompletionSuperClass[TYPE_REF]{CompletionSuperClass, , LCompletionSuperClass;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_CLASS + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-			"CompletionSuperClass2[TYPE_REF]{CompletionSuperClass2, , LCompletionSuperClass2;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_CLASS + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-		if(superClass2 != null) {
-			superClass2.discardWorkingCopy();
-		}
-		if(superInterface != null) {
-			superInterface.discardWorkingCopy();
-		}
-		if(superInterface2 != null) {
-			superInterface2.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionSuperType3() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	IJavaScriptUnit superClass2 = null;
-	IJavaScriptUnit superInterface = null;
-	IJavaScriptUnit superInterface2 = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass.js",
-	            "public class CompletionSuperClass{\n" +
-	            "	public class Inner {}\n" +
-	            "	public int eqFoo(int a,Object b){\n" +
-	            "		return 1;\n" +
-	            "	}\n" +
-	            "}");
-		
-		superClass2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass2.js",
-	            "public class CompletionSuperClass2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		superInterface = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface.js",
-	            "public interface CompletionSuperInterface{\n" +
-	            "	public int eqFoo(int a,Object b);\n" +
-	            "}");
-		
-		superInterface2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface2.js",
-	            "public interface CompletionSuperInterface2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionSuperType3.js",
-	            "public class CompletionSuperType3 implements CompletionSuper");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "CompletionSuper";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"CompletionSuperInterface[TYPE_REF]{CompletionSuperInterface, , LCompletionSuperInterface;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_INTERFACE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n" +
-			"CompletionSuperInterface2[TYPE_REF]{CompletionSuperInterface2, , LCompletionSuperInterface2;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_INTERFACE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-		if(superClass2 != null) {
-			superClass2.discardWorkingCopy();
-		}
-		if(superInterface != null) {
-			superInterface.discardWorkingCopy();
-		}
-		if(superInterface2 != null) {
-			superInterface2.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionSuperType4() throws JavaScriptModelException {
-	IJavaScriptUnit superClass2 = null;
-	try {
-		superClass2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass2.js",
-	            "public class CompletionSuperClass2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionSuperType4.js",
-	            "public class CompletionSuperType4 extends CompletionSuperClass2.Inner");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "CompletionSuperClass2.Inner";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"CompletionSuperClass2.InnerInterface[TYPE_REF]{InnerInterface, , LCompletionSuperClass2$InnerInterface;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED)+ "}\n"+
-			"CompletionSuperClass2.InnerClass[TYPE_REF]{InnerClass, , LCompletionSuperClass2$InnerClass;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_CLASS + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass2 != null) {
-			superClass2.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionSuperType5() throws JavaScriptModelException {
-	IJavaScriptUnit superInterface2 = null;
-	try {
-		superInterface2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface2.js",
-	            "public interface CompletionSuperInterface2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionSuperType5.js",
-	            "public class CompletionSuperType5 implements CompletionSuperInterface2.Inner");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "CompletionSuperInterface2.Inner";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"CompletionSuperInterface2.InnerClass[TYPE_REF]{InnerClass, , LCompletionSuperInterface2$InnerClass;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n" +
-			"CompletionSuperInterface2.InnerInterface[TYPE_REF]{InnerInterface, , LCompletionSuperInterface2$InnerInterface;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_INTERFACE+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superInterface2 != null) {
-			superInterface2.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionSuperType6() throws JavaScriptModelException {
-	IJavaScriptUnit superClass = null;
-	IJavaScriptUnit superClass2 = null;
-	IJavaScriptUnit superInterface = null;
-	IJavaScriptUnit superInterface2 = null;
-	try {
-		superClass = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass.js",
-	            "public class CompletionSuperClass{\n" +
-	            "	public class Inner {}\n" +
-	            "	public int eqFoo(int a,Object b){\n" +
-	            "		return 1;\n" +
-	            "	}\n" +
-	            "}");
-		
-		superClass2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass2.js",
-	            "public class CompletionSuperClass2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		superInterface = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface.js",
-	            "public interface CompletionSuperInterface{\n" +
-	            "	public int eqFoo(int a,Object b);\n" +
-	            "}");
-		
-		superInterface2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface2.js",
-	            "public interface CompletionSuperInterface2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionSuperType6.js",
-	            "public interface CompletionSuperType6 extends CompletionSuper");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "CompletionSuper";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"CompletionSuperInterface[TYPE_REF]{CompletionSuperInterface, , LCompletionSuperInterface;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_INTERFACE + R_NON_RESTRICTED)+"}\n" +
-				"CompletionSuperInterface2[TYPE_REF]{CompletionSuperInterface2, , LCompletionSuperInterface2;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_INTERFACE+ R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		if(superClass != null) {
-			superClass.discardWorkingCopy();
-		}
-		if(superClass2 != null) {
-			superClass2.discardWorkingCopy();
-		}
-		if(superInterface != null) {
-			superInterface.discardWorkingCopy();
-		}
-		if(superInterface2 != null) {
-			superInterface2.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionSuperType7() throws JavaScriptModelException {
-	IJavaScriptUnit superClass2 = null;
-	try {
-		superClass2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperClass2.js",
-	            "public class CompletionSuperClass2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionSuperType7.js",
-	            "public interface CompletionSuperType7 extends CompletionSuperClass2.Inner");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "CompletionSuperClass2.Inner";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"CompletionSuperClass2.InnerClass[TYPE_REF]{InnerClass, , LCompletionSuperClass2$InnerClass;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n" +
-			"CompletionSuperClass2.InnerInterface[TYPE_REF]{InnerInterface, , LCompletionSuperClass2$InnerInterface;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_INTERFACE+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superClass2 != null) {
-			superClass2.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionSuperType8() throws JavaScriptModelException {
-	IJavaScriptUnit superInterface2 = null;
-	try {
-		superInterface2 = getWorkingCopy(
-	            "/Completion/src/CompletionSuperInterface2.js",
-	            "public interface CompletionSuperInterface2 {\n" +
-	            "	public class InnerClass {}\n" +
-	            "	public interface InnerInterface {}\n" +
-	            "}");
-		
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionSuperType8.js",
-	            "public interface CompletionSuperType8 extends CompletionSuperInterface2.Inner");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "CompletionSuperInterface2.Inner";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-			"CompletionSuperInterface2.InnerClass[TYPE_REF]{InnerClass, , LCompletionSuperInterface2$InnerClass;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n" +
-			"CompletionSuperInterface2.InnerInterface[TYPE_REF]{InnerInterface, , LCompletionSuperInterface2$InnerInterface;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_INTERFACE+ R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-	} finally {
-		if(superInterface2 != null) {
-			superInterface2.discardWorkingCopy();
-		}
-	}
-}
-public void testCompletionThrowStatement() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionThrowStatement.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Ex";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Exception    completion:Exception    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXCEPTION + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionToplevelType1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "p3", "CompletionToplevelType1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "CompletionToplevelType1";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:CompletionToplevelType1    completion:CompletionToplevelType1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionType1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionType1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "CT1";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:CT1    completion:CT1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n"+
-		"element:CT1    completion:q2.CT1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionUnaryOperator1() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionUnaryOperator1.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var3    completion:var3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-public void testCompletionUnaryOperator2() throws JavaScriptModelException {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionUnaryOperator2.js");
-
-		String str = cu.getSource();
-		String completeBehind = "var";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:var1    completion:var1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-			"element:var2    completion:var2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_EXACT_EXPECTED_TYPE + R_NON_RESTRICTED)+"\n" +
-			"element:var3    completion:var3    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-			requestor.getResults());
-}
-/*
- * bug : http://dev.eclipse.org/bugs/show_bug.cgi?id=24440
- */
-public void testCompletionUnresolvedEnclosingType() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionUnresolvedEnclosingType.js");
-
-	String str = cu.getSource();
-	String completeBehind = "new ZZZ(";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertTrue(
-		requestor.getResults().length() == 0);
-}
-public void testCompletionUnresolvedFieldType() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionUnresolvedFieldType.js");
-
-	String str = cu.getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:barPlus    completion:barPlus()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionUnresolvedParameterType() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionUnresolvedParameterType.js");
-
-	String str = cu.getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:barPlus    completion:barPlus()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionUnresolvedReturnType() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionUnresolvedReturnType.js");
-
-	String str = cu.getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:barPlus    completion:barPlus()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableInitializerInInitializer1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableInitializerInInitializer1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableInitializerInInitializer2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableInitializerInInitializer2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableInitializerInInitializer3() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableInitializerInInitializer3.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableInitializerInInitializer4() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableInitializerInInitializer4.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableInitializerInMethod1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableInitializerInMethod1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableInitializerInMethod2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableInitializerInMethod2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "zz";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:zzObject    completion:zzObject    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzboolean    completion:zzboolean    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzdouble    completion:zzdouble    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzint    completion:zzint    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:zzlong    completion:zzlong    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableInitializerInMethod3() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableInitializerInMethod3.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableInitializerInMethod4() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableInitializerInMethod4.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Objec";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:Object    completion:Object    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25811
-*/
-public void testCompletionVariableName1() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableName1.js");
-
-	String str = cu.getSource();
-	String completeBehind = "TEST_FOO_MyClass ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:class1    completion:class1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:myClass    completion:myClass    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVariableName10() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pre"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"suf"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionVariableName10.js",
-	            "class FooBar {\n"+
-	            "}\n"+
-	            "public class CompletionVariableName10 {\n"+
-	            "	void foo(){\n"+
-	            "		FooBar fo\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "fo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-				"foBar[VARIABLE_DECLARATION]{foBar, null, LFooBar;, foBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-				"foBarsuf[VARIABLE_DECLARATION]{foBarsuf, null, LFooBar;, foBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}\n"+
-				"fooBar[VARIABLE_DECLARATION]{fooBar, null, LFooBar;, fooBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}\n"+
-				"fooBarsuf[VARIABLE_DECLARATION]{fooBarsuf, null, LFooBar;, fooBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_LESS_NEW_CHARACTERS + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-public void testCompletionVariableName11() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pre"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"suf"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionVariableName11.js",
-	            "class FooBar {\n"+
-	            "}\n"+
-	            "public class CompletionVariableName11 {\n"+
-	            "	void foo(){\n"+
-	            "		FooBar pr\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "pr";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-				"preBar[VARIABLE_DECLARATION]{preBar, null, LFooBar;, preBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NON_RESTRICTED)+"}\n"+
-				"preFooBar[VARIABLE_DECLARATION]{preFooBar, null, LFooBar;, preFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NON_RESTRICTED)+"}\n"+
-				"preBarsuf[VARIABLE_DECLARATION]{preBarsuf, null, LFooBar;, preBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX+ R_NON_RESTRICTED)+"}\n"+
-				"preFooBarsuf[VARIABLE_DECLARATION]{preFooBarsuf, null, LFooBar;, preFooBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-public void testCompletionVariableName12() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pre"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"suf"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionVariableName12.js",
-	            "class FooBar {\n"+
-	            "}\n"+
-	            "public class CompletionVariableName12 {\n"+
-	            "	void foo(){\n"+
-	            "		FooBar prethe\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "prethe";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-				"preTheBar[VARIABLE_DECLARATION]{preTheBar, null, LFooBar;, preTheBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NON_RESTRICTED)+"}\n"+
-				"preTheFooBar[VARIABLE_DECLARATION]{preTheFooBar, null, LFooBar;, preTheFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NON_RESTRICTED)+"}\n"+
-				"preTheBarsuf[VARIABLE_DECLARATION]{preTheBarsuf, null, LFooBar;, preTheBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}\n"+
-				"preTheFooBarsuf[VARIABLE_DECLARATION]{preTheFooBarsuf, null, LFooBar;, preTheFooBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-public void testCompletionVariableName13() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pre"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"suf"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionVariableName13.js",
-	            "class FooBar {\n"+
-	            "}\n"+
-	            "public class CompletionVariableName13 {\n"+
-	            "	void foo(){\n"+
-	            "		FooBar prefo\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "prefo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-				"preFoBar[VARIABLE_DECLARATION]{preFoBar, null, LFooBar;, preFoBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NON_RESTRICTED)+"}\n"+
-				"preFoBarsuf[VARIABLE_DECLARATION]{preFoBarsuf, null, LFooBar;, preFoBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}\n"+
-				"preFooBar[VARIABLE_DECLARATION]{preFooBar, null, LFooBar;, preFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}\n"+
-				"preFooBarsuf[VARIABLE_DECLARATION]{preFooBarsuf, null, LFooBar;, preFooBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-public void testCompletionVariableName14() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pre"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"suf"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionVariableName14.js",
-	            "class FooBar {\n"+
-	            "}\n"+
-	            "public class CompletionVariableName14 {\n"+
-	            "	void foo(){\n"+
-	            "		FooBar prethefo\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "prethefo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-				"preThefoBar[VARIABLE_DECLARATION]{preThefoBar, null, LFooBar;, preThefoBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NON_RESTRICTED)+"}\n"+
-				"preThefoBarsuf[VARIABLE_DECLARATION]{preThefoBarsuf, null, LFooBar;, preThefoBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}\n"+
-				"preTheFooBar[VARIABLE_DECLARATION]{preTheFooBar, null, LFooBar;, preTheFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}\n"+
-				"preTheFooBarsuf[VARIABLE_DECLARATION]{preTheFooBarsuf, null, LFooBar;, preTheFooBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=128045
-public void testCompletionVariableName15() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pre"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"suf"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionVariableName15.js",
-	            "class FooBar {\n"+
-	            "}\n"+
-	            "public class CompletionVariableName15 {\n"+
-	            "	void foo(){\n"+
-	            "		FooBar pro\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "pro";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-				"proBar[VARIABLE_DECLARATION]{proBar, null, LFooBar;, proBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-				"proFooBar[VARIABLE_DECLARATION]{proFooBar, null, LFooBar;, proFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-				"proBarsuf[VARIABLE_DECLARATION]{proBarsuf, null, LFooBar;, proBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_CASE + R_NON_RESTRICTED)+"}\n"+
-				"proFooBarsuf[VARIABLE_DECLARATION]{proFooBarsuf, null, LFooBar;, proFooBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_CASE + R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName16() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		Object ;\n"+
-            "		foo = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo[VARIABLE_DECLARATION]{foo, null, Ljava.lang.Object;, foo, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName17() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		Object foo1;\n"+
-            "		/*here*/Object ;\n"+
-            "		Object foo3;\n"+
-            "		foo1 = null;\n"+
-            "		foo2 = null;\n"+
-            "		foo3 = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo2[VARIABLE_DECLARATION]{foo2, null, Ljava.lang.Object;, foo2, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName18() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		Object ;\n"+
-            "		foo = Test.class;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo[VARIABLE_DECLARATION]{foo, null, Ljava.lang.Object;, foo, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName19() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		Object ;\n"+
-            "		object = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25811
-*/
-public void testCompletionVariableName2() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableName2.js");
-
-	String str = cu.getSource();
-	String completeBehind = "Test_Bar_MyClass ";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:bar_MyClass    completion:bar_MyClass    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:class1    completion:class1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:myClass    completion:myClass    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n" +
-		"element:test_Bar_MyClass    completion:test_Bar_MyClass    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName20() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		/*here*/Object ;\n"+
-            "		class X {\n"+
-            "		  Object foo1 = foo2;\n"+
-            "		  void bar() {\n"+
-            "		    foo1 = null;\n"+
-            "		    Object foo3 = foo4;\n"+
-            "		    foo3 = null;\n"+
-            "		  }\n"+
-            "		}\n"+
-            "		foo5 = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-    		"foo2[VARIABLE_DECLARATION]{foo2, null, Ljava.lang.Object;, foo2, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}\n"+
-    		"foo4[VARIABLE_DECLARATION]{foo4, null, Ljava.lang.Object;, foo4, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo5[VARIABLE_DECLARATION]{foo5, null, Ljava.lang.Object;, foo5, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName21() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		{\n"+
-            "		  /*here*/Object ;\n"+
-            "		  foo1 = null;\n"+
-            "		}\n"+
-            "		foo2 = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo1[VARIABLE_DECLARATION]{foo1, null, Ljava.lang.Object;, foo1, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName22() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		Object foo1;\n"+
-            "		/*here*/Object ;\n"+
-            "		{\n"+
-            "		  Object foo3;\n"+
-            "		  foo1 = null;\n"+
-            "		  foo2 = null;\n"+
-            "		  foo3 = null;\n"+
-            "		}\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo2[VARIABLE_DECLARATION]{foo2, null, Ljava.lang.Object;, foo2, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName23() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		/*here*/Object ;\n"+
-            "		foo1 = null;\n"+
-            "		#\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo1[VARIABLE_DECLARATION]{foo1, null, Ljava.lang.Object;, foo1, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName24() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		/*here*/Object ;\n"+
-            "		#\n"+
-            "		foo1 = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo1[VARIABLE_DECLARATION]{foo1, null, Ljava.lang.Object;, foo1, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName25() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		/*here*/Object ;\n"+
-            "		#\n"+
-            "		foo1 = null;\n"+
-            "		#\n"+
-            "		foo2 = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo1[VARIABLE_DECLARATION]{foo1, null, Ljava.lang.Object;, foo1, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}\n"+
-    		"foo2[VARIABLE_DECLARATION]{foo2, null, Ljava.lang.Object;, foo2, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName26() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		/*here*/Object ;\n"+
-            "		#\n"+
-            "		foo1 = null;\n"+
-            "		#\n"+
-            "		foo2 = null;\n"+
-            "		#\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo1[VARIABLE_DECLARATION]{foo1, null, Ljava.lang.Object;, foo1, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}\n"+
-    		"foo2[VARIABLE_DECLARATION]{foo2, null, Ljava.lang.Object;, foo2, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName27() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		/*here*/Object ;\n"+
-            "		Object foo0 = null;\n"+
-            "		foo0 = null;\n"+
-            "		#\n"+
-            "		class X {\n"+
-            "		  Object foo1 = foo2;\n"+
-            "		  void bar() {\n"+
-            "		    foo1 = null;\n"+
-            "		    Object foo3 = foo4;\n"+
-            "		    foo3 = null;\n"+
-            "		  }\n"+
-            "		}\n"+
-            "		foo5 = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-    		"foo2[VARIABLE_DECLARATION]{foo2, null, Ljava.lang.Object;, foo2, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}\n"+
-    		"foo4[VARIABLE_DECLARATION]{foo4, null, Ljava.lang.Object;, foo4, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo5[VARIABLE_DECLARATION]{foo5, null, Ljava.lang.Object;, foo5, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName28() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		/*here*/Object ;\n"+
-            "		Object foo1 = null;\n"+
-            "		foo1.foo2 = null;\n"+
-            "		foo3.foo4 = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-    		"foo3[VARIABLE_DECLARATION]{foo3, null, Ljava.lang.Object;, foo3, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName29() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void foo(){\n"+
-            "		/*here*/Object ;\n"+
-            "		class X {\n"+
-            "			void bar1() {\n"+
-            "				var1 = null;\n"+
-            "			}\n"+
-            "			void bar2() {\n"+
-            "				Object var2 = null;\n"+
-            "				var2 = null;\n"+
-            "			}\n"+
-            "			void bar3() {\n"+
-            "				Object var3 = null;\n"+
-            "				{\n"+
-            "					var3 = null;\n"+
-            "					Object var4 = null;\n"+
-            "				}\n"+
-            "				var4 = null;\n"+
-            "			}\n"+
-            "		}\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/*here*/Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-    		"var1[VARIABLE_DECLARATION]{var1, null, Ljava.lang.Object;, var1, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"var4[VARIABLE_DECLARATION]{var4, null, Ljava.lang.Object;, var4, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-public void testCompletionVariableName3() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"p1,p2"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"s1,s2"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableName3.js");
-	
-		String str = cu.getSource();
-		String completeBehind = "OneName ";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-	
-		assertEquals(
-			"element:name    completion:name    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:names1    completion:names1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:names2    completion:names2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:oneName    completion:oneName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"\n"+
-			"element:oneNames1    completion:oneNames1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:oneNames2    completion:oneNames2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p1Name    completion:p1Name    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p1Names1    completion:p1Names1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p1Names2    completion:p1Names2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NAME_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p1OneName    completion:p1OneName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p1OneNames1    completion:p1OneNames1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p1OneNames2    completion:p1OneNames2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_PREFIX + R_NAME_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p2Name    completion:p2Name    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_PREFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p2Names1    completion:p2Names1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p2Names2    completion:p2Names2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_PREFIX + R_NAME_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p2OneName    completion:p2OneName    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_PREFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p2OneNames1    completion:p2OneNames1    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_PREFIX + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"\n"+
-			"element:p2OneNames2    completion:p2OneNames2    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_PREFIX + R_NAME_SUFFIX+ R_NON_RESTRICTED),
-			requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName30() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	public Test(){\n"+
-            "		Object ;\n"+
-            "		foo = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo[VARIABLE_DECLARATION]{foo, null, Ljava.lang.Object;, foo, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName31() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	{\n"+
-            "		Object ;\n"+
-            "		foo = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo[VARIABLE_DECLARATION]{foo, null, Ljava.lang.Object;, foo, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=150228
-public void testCompletionVariableName32() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void bar(Object ) {\n"+
-            "		foo = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "Object ";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"object[VARIABLE_DECLARATION]{object, null, Ljava.lang.Object;, object, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"foo[VARIABLE_DECLARATION]{foo, null, Ljava.lang.Object;, foo, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=162743
-public void testCompletionVariableName33() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void bar() {\n"+
-            "		/**/int v\n"+
-            "		variable = null;\n"+
-            "		variable = null;\n"+
-            "		variable = null;\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/**/int v";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"vI[VARIABLE_DECLARATION]{vI, null, I, vI, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"variable[VARIABLE_DECLARATION]{variable, null, I, variable, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=162968
-public void testCompletionVariableName34() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	int vDefined;\n"+
-            "	void bar() {\n"+
-            "		/**/int v\n"+
-            "		System.out.println(vUnknown);\n"+
-            "		System.out.println(vUnknown);\n"+
-            "	}\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "/**/int v";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"vI[VARIABLE_DECLARATION]{vI, null, I, vI, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"vUnknown[VARIABLE_DECLARATION]{vUnknown, null, I, vUnknown, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_NAME_FIRST_PREFIX + R_NAME_LESS_NEW_CHARACTERS + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=166570
-public void testCompletionVariableName35() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-            "/Completion/src/test/Test.js",
-            "package test;\n"+
-            "public class Test {\n"+
-            "	void bar() {\n"+
-            "		Test2 zzz\n"+
-            "		int zzzzz = 0;\n"+
-            "	}\n"+
-            "}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-            "/Completion/src/test/Test2.js",
-            "package test;\n"+
-            "public class Test2 {\n"+
-            "}");
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.workingCopies[0].getSource();
-    String completeBehind = "Test2 zzz";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"zzzTest2[VARIABLE_DECLARATION]{zzzTest2, null, Ltest.Test2;, zzzTest2, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-public void testCompletionVariableName4() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionVariableName4.js",
-            "class FooBar {\n"+
-            "}\n"+
-            "public class CompletionVariableName4 {\n"+
-            "	void foo(){\n"+
-            "		FooBar the\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "the";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"theBar[VARIABLE_DECLARATION]{theBar, null, LFooBar;, theBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"theFooBar[VARIABLE_DECLARATION]{theFooBar, null, LFooBar;, theFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-public void testCompletionVariableName5() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionVariableName5.js",
-            "class FooBar {\n"+
-            "}\n"+
-            "public class CompletionVariableName5 {\n"+
-            "	void foo(){\n"+
-            "		FooBar thefo\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "thefo";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"thefoBar[VARIABLE_DECLARATION]{thefoBar, null, LFooBar;, thefoBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"theFooBar[VARIABLE_DECLARATION]{theFooBar, null, LFooBar;, theFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-public void testCompletionVariableName6() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionVariableName6.js",
-            "class FooBar {\n"+
-            "}\n"+
-            "public class CompletionVariableName6 {\n"+
-            "	void foo(){\n"+
-            "		FooBar theba\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "theba";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-    		"thebaFooBar[VARIABLE_DECLARATION]{thebaFooBar, null, LFooBar;, thebaFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"theBar[VARIABLE_DECLARATION]{theBar, null, LFooBar;, theBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-public void testCompletionVariableName7() throws JavaScriptModelException {
-	this.wc = getWorkingCopy(
-            "/Completion/src/CompletionVariableName7.js",
-            "class FooBar {\n"+
-            "}\n"+
-            "public class CompletionVariableName7 {\n"+
-            "	void foo(){\n"+
-            "		FooBar fo\n"+
-            "	}\n"+
-            "}");
-    
-    
-    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-    String str = this.wc.getSource();
-    String completeBehind = "fo";
-    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-
-    assertResults(
-			"foBar[VARIABLE_DECLARATION]{foBar, null, LFooBar;, foBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-			"fooBar[VARIABLE_DECLARATION]{fooBar, null, LFooBar;, fooBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-
-public void testCompletionVariableName8() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pre"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"suf"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionVariableName8.js",
-	            "class FooBar {\n"+
-	            "}\n"+
-	            "public class CompletionVariableName8 {\n"+
-	            "	void foo(){\n"+
-	            "		FooBar the\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "the";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-				"theBar[VARIABLE_DECLARATION]{theBar, null, LFooBar;, theBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-				"theFooBar[VARIABLE_DECLARATION]{theFooBar, null, LFooBar;, theFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-				"theBarsuf[VARIABLE_DECLARATION]{theBarsuf, null, LFooBar;, theBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}\n"+
-				"theFooBarsuf[VARIABLE_DECLARATION]{theFooBarsuf, null, LFooBar;, theFooBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_FIRST_SUFFIX + R_CASE + R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-public void testCompletionVariableName9() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object argumentPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pre"); //$NON-NLS-1$
-	Object localPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"suf"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.wc = getWorkingCopy(
-	            "/Completion/src/CompletionVariableName9.js",
-	            "class FooBar {\n"+
-	            "}\n"+
-	            "public class CompletionVariableName9 {\n"+
-	            "	void foo(){\n"+
-	            "		FooBar thefo\n"+
-	            "	}\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "thefo";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    assertResults(
-				"thefoBar[VARIABLE_DECLARATION]{thefoBar, null, LFooBar;, thefoBar, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-				"thefoBarsuf[VARIABLE_DECLARATION]{thefoBarsuf, null, LFooBar;, thefoBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}\n"+
-				"theFooBar[VARIABLE_DECLARATION]{theFooBar, null, LFooBar;, theFooBar, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED)+"}\n"+
-				"theFooBarsuf[VARIABLE_DECLARATION]{theFooBarsuf, null, LFooBar;, theFooBarsuf, null, "+(R_DEFAULT + R_INTERESTING + R_NAME_LESS_NEW_CHARACTERS + R_NAME_FIRST_SUFFIX + R_NON_RESTRICTED)+"}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,argumentPrefixPreviousValue);
-		options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,localPrefixPreviousValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-public void testCompletionVariableNameOfArray1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/CompletionVariableNameOfArray1.js",
-		"public class CompletionVariableNameOfArray1 {\n"+
-		"	Object[] ob\n"+
-		"}\n");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "ob";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	assertResults(
-		"objects[VARIABLE_DECLARATION]{objects, null, [Ljava.lang.Object;, objects, null, " + (R_DEFAULT + R_INTERESTING + R_CASE+ R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED) + "}",
-		requestor.getResults());
-}
-public void testCompletionVariableNameOfArray2() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/CompletionVariableNameOfArray2.js",
-		"public class CompletionVariableNameOfArray2 {\n"+
-		"	Class[] cl\n"+
-		"}\n");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "cl";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	assertResults(
-		"classes[VARIABLE_DECLARATION]{classes, null, [Ljava.lang.Class;, classes, null, " + (R_DEFAULT + R_INTERESTING + R_CASE+ R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED) + "}",
-		requestor.getResults());
-}
-public void testCompletionVariableNameOfArray3() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/CompletionVariableNameOfArray3.js",
-		"public class CompletionVariableNameOfArray3 {\n"+
-		"	Object[][] ob\n"+
-		"}\n");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "ob";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	assertResults(
-		"objects[VARIABLE_DECLARATION]{objects, null, [[Ljava.lang.Object;, objects, null, " + (R_DEFAULT + R_INTERESTING + R_CASE+ R_NAME_LESS_NEW_CHARACTERS + R_NON_RESTRICTED) + "}",
-		requestor.getResults());
-}
-public void testCompletionVariableNameOfArray4() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/CompletionVariableNameOfArray4.js",
-		"public class CompletionVariableNameOfArray4 {\n"+
-		"	Objectz[] ob\n"+
-		"}\n");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "ob";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	assertResults(
-		"",
-		requestor.getResults());
-}
-public void testCompletionVariableNameUnresolvedType() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVariableNameUnresolvedType.js");
-
-	String str = cu.getSource();
-	String completeBehind = "ob";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have no completion",
-		"",
-		requestor.getResults());
-}
-public void testCompletionVisibilityCheckDisabled() throws JavaScriptModelException {
-	String visibilityCheckID = "org.eclipse.wst.jsdt.core.codeComplete.visibilityCheck";
-	Hashtable options = JavaScriptCore.getOptions();
-	Object visibilityCheckPreviousValue = options.get(visibilityCheckID);
-	options.put(visibilityCheckID,"disabled");
-	JavaScriptCore.setOptions(options);
-	
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVisibilityCheck.js");
-
-	String str = cu.getSource();
-	String completeBehind = "x.p";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	
-	options.put(visibilityCheckID,visibilityCheckPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"should have three methods", 
-		"element:privateFoo    completion:privateFoo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED)+"\n" +
-		"element:protectedFoo    completion:protectedFoo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED)+"\n" +
-		"element:publicFoo    completion:publicFoo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionVisibilityCheckEnabled() throws JavaScriptModelException {
-	String visibilityCheckID = "org.eclipse.wst.jsdt.core.codeComplete.visibilityCheck";
-	Hashtable options = JavaScriptCore.getOptions();
-	Object visibilityCheckPreviousValue = options.get(visibilityCheckID);
-	options.put(visibilityCheckID,"enabled");
-	JavaScriptCore.setOptions(options);
-	
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVisibilityCheck.js");
-
-	String str = cu.getSource();
-	String completeBehind = "x.p";
-	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-	
-	options.put(visibilityCheckID,visibilityCheckPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"should have two methods", 
-		"element:protectedFoo    completion:protectedFoo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED)+"\n" +
-		"element:publicFoo    completion:publicFoo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-/*
-* http://dev.eclipse.org/bugs/show_bug.cgi?id=25815
-*/
-public void testCompletionVoidMethod() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionVoidMethod.js");
-
-	String str = cu.getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"element:foo    completion:foo()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:foo1    completion:foo1()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_EXPECTED_TYPE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:foo3    completion:foo3()    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-public void testCompletionWithBinaryFolder() throws JavaScriptModelException {
-	CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-	IJavaScriptUnit cu= getCompilationUnit("Completion", "src", "", "CompletionWithBinaryFolder.js");
-
-	String str = cu.getSource();
-	String completeBehind = "My";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	cu.codeComplete(cursorLocation, requestor);
-
-	assertEquals(
-		"should have two completions",
-		"element:MyClass    completion:MyClass    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"\n" +
-		"element:mypackage    completion:mypackage    relevance:"+(R_DEFAULT + R_INTERESTING+ R_NON_RESTRICTED),
-		requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95167
-public void testCompletionWithProblem1() throws JavaScriptModelException {
-	IJavaScriptUnit aType = null;
-	try {
-		aType = getWorkingCopy(
-	            "/Completion/src/test/AType.js",
-	            "package test;\n" +
-	            "public class AType{\n"+
-	            "  void foo(Unknown var) {\n"+
-	            "  }\n"+
-	            "}");
-		
-	    this.wc = getWorkingCopy(
-	            "/Completion/src/test/Test.js",
-	            "package test;\n" +
-	            "public class Test{\n"+
-	            "  void foo() {\n"+
-	            "    AType a = null;\n"+
-	            "    a.zz\n"+
-	            "  }\n"+
-	            "}");
-	    
-	    
-	    CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	    String str = this.wc.getSource();
-	    String completeBehind = "a.zz";
-	    int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	    this.wc.codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	    // no completion must be found
-		assertResults(
-	            "",
-	            requestor.getResults());
-		
-		// no error must be found
-		assertResults(
-	            "",
-	            requestor.getProblem());
-	} finally {
-		if(aType != null) {
-			aType.discardWorkingCopy();
-		}
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck1() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.workingCopies = new IJavaScriptUnit[3];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  ZZZTy\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"public class ZZZType1 {\n"+
-			"}");
-		
-		this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType2.js",
-			"package deprecation;"+
-			"/** @deprecated */\n"+
-			"public class ZZZType2 {\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZTy";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"ZZZTy[POTENTIAL_METHOD_DECLARATION]{ZZZTy, Ldeprecation.Test;, ()V, ZZZTy, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"ZZZType1[TYPE_REF]{ZZZType1, deprecation, Ldeprecation.ZZZType1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"ZZZType2[TYPE_REF]{ZZZType2, deprecation, Ldeprecation.ZZZType2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck10() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  public void bar1(){}\n"+
-			"  /** @deprecated */\n"+
-			"  public void bar2(){}\n"+
-			"  void foo() {"+
-			"    bar\n"+
-			"  }"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "bar";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"bar1[FUNCTION_REF]{bar1(), Ldeprecation.Test;, ()V, bar1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"bar2[FUNCTION_REF]{bar2(), Ldeprecation.Test;, ()V, bar2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck11() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  public int bar1;\n"+
-			"  /** @deprecated */\n"+
-			"  public int bar2;\n"+
-			"  void foo() {"+
-			"    bar\n"+
-			"  }"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "bar";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"bar1[FIELD_REF]{bar1, Ldeprecation.Test;, I, bar1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"bar2[FIELD_REF]{bar2, Ldeprecation.Test;, I, bar2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck12() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  public int bar1;\n"+
-			"  /** @deprecated */\n"+
-			"  public int bar2;\n"+
-			"  void foo() {"+
-			"    bar\n"+
-			"  }"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "bar";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"bar1[FIELD_REF]{bar1, Ldeprecation.Test;, I, bar1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"bar2[FIELD_REF]{bar2, Ldeprecation.Test;, I, bar2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck13() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  class Inner1 {}\n"+
-			"  /** @deprecated */\n"+
-			"  class Inner2 {}\n"+
-			"  void foo() {"+
-			"    Inn\n"+
-			"  }"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "Inn";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"Test.Inner1[TYPE_REF]{Inner1, deprecation, Ldeprecation.Test$Inner1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"Test.Inner2[TYPE_REF]{Inner2, deprecation, Ldeprecation.Test$Inner2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck14() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  class Inner1 {}\n"+
-			"  /** @deprecated */\n"+
-			"  class Inner2 {}\n"+
-			"  void foo() {"+
-			"    Inn\n"+
-			"  }"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "Inn";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"Test.Inner1[TYPE_REF]{Inner1, deprecation, Ldeprecation.Test$Inner1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"Test.Inner2[TYPE_REF]{Inner2, deprecation, Ldeprecation.Test$Inner2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck15() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  void foo() {"+
-			"    ZZZType1.foo\n"+
-			"  }"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"/** @deprecated */\n"+
-			"public class ZZZType1 {\n"+
-			"  public static int foo1;\n"+
-			"  public static int foo2;\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZType1.foo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck16() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"/** @deprecated */\n"+
-			"public class ZZZType1 {\n"+
-			"}"+
-			"public class Test {\n"+
-			"  void foo() {"+
-			"    ZZZTy\n"+
-			"  }"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZTy";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"ZZZType1[TYPE_REF]{ZZZType1, deprecation, Ldeprecation.ZZZType1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127628
-public void testDeprecationCheck17() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  Bug127628Ty\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "Bug127628Ty";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"Bug127628Ty[POTENTIAL_METHOD_DECLARATION]{Bug127628Ty, Ldeprecation.Test;, ()V, Bug127628Ty, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"Bug127628Type1.Bug127628TypeInner1[TYPE_REF]{deprecation.Bug127628Type1.Bug127628TypeInner1, deprecation, Ldeprecation.Bug127628Type1$Bug127628TypeInner1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"Bug127628Type2.Bug127628TypeInner2[TYPE_REF]{deprecation.Bug127628Type2.Bug127628TypeInner2, deprecation, Ldeprecation.Bug127628Type2$Bug127628TypeInner2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"Bug127628Type1[TYPE_REF]{Bug127628Type1, deprecation, Ldeprecation.Bug127628Type1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck2() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.workingCopies = new IJavaScriptUnit[3];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  ZZZTy\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"public class ZZZType1 {\n"+
-			"}");
-		
-		this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType2.js",
-			"package deprecation;"+
-			"/** @deprecated */\n"+
-			"public class ZZZType2 {\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZTy";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"ZZZTy[POTENTIAL_METHOD_DECLARATION]{ZZZTy, Ldeprecation.Test;, ()V, ZZZTy, null, " + (R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}\n" +
-				"ZZZType1[TYPE_REF]{ZZZType1, deprecation, Ldeprecation.ZZZType1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck3() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-	
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  void foo() {"+
-			"    ZZZType1.fo\n"+
-			"  }"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"public class ZZZType1 {\n"+
-			"  public static void foo1(){}\n"+
-			"  /** @deprecated */\n"+
-			"  public static void foo2(){}\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZType1.fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo1[FUNCTION_REF]{foo1(), Ldeprecation.ZZZType1;, ()V, foo1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n" +
-				"foo2[FUNCTION_REF]{foo2(), Ldeprecation.ZZZType1;, ()V, foo2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck4() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  void foo() {"+
-			"    ZZZType1.fo\n"+
-			"  }"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"public class ZZZType1 {\n"+
-			"  public static void foo1(){}\n"+
-			"  /** @deprecated */\n"+
-			"  public static void foo2(){}\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZType1.fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo1[FUNCTION_REF]{foo1(), Ldeprecation.ZZZType1;, ()V, foo1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck5() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  ZZZType1.Inn\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"public class ZZZType1 {\n"+
-			"  public class Inner1 {}\n"+
-			"  /** @deprecated */\n"+
-			"  public class Inner2 {}\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZType1.Inn";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"ZZZType1.Inner1[TYPE_REF]{Inner1, deprecation, Ldeprecation.ZZZType1$Inner1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-				"ZZZType1.Inner2[TYPE_REF]{Inner2, deprecation, Ldeprecation.ZZZType1$Inner2;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck6() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  ZZZType1.Inn\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"public class ZZZType1 {\n"+
-			"  public class Inner1 {}\n"+
-			"  /** @deprecated */\n"+
-			"  public class Inner2 {}\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZType1.Inn";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"ZZZType1.Inner1[TYPE_REF]{Inner1, deprecation, Ldeprecation.ZZZType1$Inner1;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck7() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  void foo() {"+
-			"    ZZZType1.fo\n"+
-			"  }"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"public class ZZZType1 {\n"+
-			"  public static int foo1;\n"+
-			"  /** @deprecated */\n"+
-			"  public static int foo2;\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZType1.fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo1[FIELD_REF]{foo1, Ldeprecation.ZZZType1;, I, foo1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n" +
-				"foo2[FIELD_REF]{foo2, Ldeprecation.ZZZType1;, I, foo2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck8() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  void foo() {"+
-			"    ZZZType1.fo\n"+
-			"  }"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/deprecation/ZZZType1.js",
-			"package deprecation;"+
-			"public class ZZZType1 {\n"+
-			"  public static int foo1;\n"+
-			"  /** @deprecated */\n"+
-			"  public static int foo2;\n"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "ZZZType1.fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"foo1[FIELD_REF]{foo1, Ldeprecation.ZZZType1;, I, foo1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=127296
-public void testDeprecationCheck9() throws JavaScriptModelException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object optionValue = options.get(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK);
-	options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/deprecation/Test.js",
-			"package deprecation;"+
-			"public class Test {\n"+
-			"  public void bar1(){}\n"+
-			"  /** @deprecated */\n"+
-			"  public void bar2(){}\n"+
-			"  void foo() {"+
-			"    bar\n"+
-			"  }"+
-			"}");
-	
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "bar";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"bar1[FUNCTION_REF]{bar1(), Ldeprecation.Test;, ()V, bar1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}\n" +
-				"bar2[FUNCTION_REF]{bar2(), Ldeprecation.Test;, ()V, bar2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-	} finally {
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, optionValue);
-		JavaScriptCore.setOptions(options);
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"	void foo() {\n" + 
-		"		int x = 0;\n" + 
-		"		TestString x = null;\n" + 
-		"		x.bar;\n" + 
-		"	}\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/TestString.js",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Ltest.TestString;, ()V, bar, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals2() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"        public static void main(String[] args) {\n" + 
-		"                int x = 2;\n" + 
-		"                try {\n" + 
-		"                \n" + 
-		"                } catch(TestException x) {\n" + 
-		"                        x.bar\n" + 
-		"                } catch(Exception e) {\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/TestException.js",
-		"package test;"+
-		"public class TestException extends Exception {\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Ltest.TestException;, ()V, bar, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals3() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"        public static void main(String[] args) {\n" + 
-		"                int x = x = 0;\n" + 
-		"                if (true) {\n" + 
-		"                        TestString x = x.bar\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/TestString.js",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Ltest.TestString;, ()V, bar, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals4() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"        public static void main(String[] args) {\n" + 
-		"                for (int i = 0; i < 10; i++) {\n" + 
-		"                        for (TestString i = null; i.bar < 5;)  {\n" + 
-		"                                // do something\n" + 
-		"                        }\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/TestString.js",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Ltest.TestString;, ()V, bar, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals5() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"        public static void main(String[] args) {\n" + 
-		"                for (int i = 0; i < 10; i++) {\n" + 
-		"                        for (TestString i = null; ;)  {\n" + 
-		"                                i.bar // do something\n" + 
-		"                        }\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/TestString.js",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Ltest.TestString;, ()V, bar, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165662
-public void testDuplicateLocalsType1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
-		"     class Local {\n" + 
-		"        void foo() {}\n" + 
-		"     }\n" + 
-		"     {\n" + 
-		"        class Local {\n" + 
-		"                Local(int i) {\n" + 
-		"                        this.init(i);\n" + 
-		"                }\n" + 
-		"				 void init(int i) {}\n" +
-		"                public void bar() {}\n" + 
-		"        }\n" + 
-		"        Local l = new Local(0);\n" + 
-		"        l.bar\n" + 
-		"     }\n" + 
-		"  }\n" + 
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "bar";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), LLocal;, ()V, bar, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165662
-public void testDuplicateLocalsType2() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"        void foo() {\n" + 
-		"                class Local {\n" + 
-		"                        void foo() {\n" + 
-		"                        }\n" + 
-		"                }\n" + 
-		"                {\n" + 
-		"                        class Local {\n" + 
-		"                               Local(int i) {\n" + 
-		"                                       this.init(i);\n" + 
-		"                                       this.bar();\n" + 
-		"                               }\n" + 
-		"				 				void init(int i) {}\n" +
-		"                        		void bar() {\n" + 
-		"                        		}\n" + 
-		"                        }\n" + 
-		"                        Local l = new Local(0);\n" + 
-		"                }\n" + 
-		"                Local l = new Local();\n" + 
-		"                l.foo\n" + 
-		"        }\n" + 
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"foo[FUNCTION_REF]{foo(), LLocal;, ()V, foo, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=139937
-public void testEvaluationContextCompletion() throws JavaScriptModelException {
-	class EvaluationContextCompletionRequestor extends CompletionRequestor {
-		public boolean acceptContext;
-		public void accept(CompletionProposal proposal) {
-			// Do nothing
-		}
-		public void acceptContext(CompletionContext context) {
-			this.acceptContext = context != null;
-		}
-	}
-	String start = "";
-	IJavaScriptProject javaProject = getJavaProject("Completion");
-	IEvaluationContext context = javaProject.newEvaluationContext();
-    EvaluationContextCompletionRequestor rc = new EvaluationContextCompletionRequestor();
-	context.codeComplete(start, start.length(), rc);
-	
-	assertTrue("acceptContext() method isn't call", rc.acceptContext);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140123
-public void testEvaluationContextCompletion2() throws JavaScriptModelException {
-	class EvaluationContextCompletionRequestor extends CompletionRequestor {
-		public boolean acceptContext;
-		public boolean beginReporting;
-		public boolean endReporting;
-		
-		public void accept(CompletionProposal proposal) {
-			// Do nothing
-		}
-		public void acceptContext(CompletionContext context) {
-			this.acceptContext = context != null;
-		}
-		
-		public void beginReporting() {
-			this.beginReporting = true;
-			super.beginReporting();
-		}
-		
-		public void endReporting() {
-			this.endReporting =  true;
-			super.endReporting();
-		}
-	}
-	String start = "";
-	IJavaScriptProject javaProject = getJavaProject("Completion");
-	IEvaluationContext context = javaProject.newEvaluationContext();
-    EvaluationContextCompletionRequestor rc = new EvaluationContextCompletionRequestor();
-	context.codeComplete(start, start.length(), rc);
-	
-	assertTrue("acceptContext() method isn't call", rc.acceptContext);
-	assertTrue("beginReporting() method isn't call", rc.beginReporting);
-	assertTrue("endReporting() method isn't call", rc.endReporting);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140123
-public void testEvaluationContextCompletion3() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/TestEvaluationContextCompletion3.js",
-		"package test;"+
-		"public class TestEvaluationContextCompletion3 {\n"+
-		"}");
-	
-	String start = "TestEvaluationContextCompletion3";
-	IJavaScriptProject javaProject = getJavaProject("Completion");
-	IEvaluationContext context = javaProject.newEvaluationContext();
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, false, false);
-	context.codeComplete(start, start.length(), requestor, this.wcOwner);
-	
-	int startOffset = 0;
-	int endOffset = start.length();
-	
-	assertResults(
-			"completion offset="+endOffset+"\n"+
-			"completion range=["+startOffset+", "+(endOffset-1)+"]\n"+
-			"completion token=\"TestEvaluationContextCompletion3\"\n"+
-			"completion token kind=TOKEN_KIND_NAME\n"+
-			"expectedTypesSignatures=null\n"+
-			"expectedTypesKeys=null",
-            requestor.getContext());
-    
-	assertResults(
-			"TestEvaluationContextCompletion3[TYPE_REF]{test.TestEvaluationContextCompletion3, test, Ltest.TestEvaluationContextCompletion3;, null, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=140123
-public void testEvaluationContextCompletion4() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/TestEvaluationContextCompletion4.js",
-		"package test;"+
-		"public class TestEvaluationContextCompletion4 {\n"+
-		"}");
-	
-	String start = "TestEvaluationContextCompletion4";
-	IJavaScriptProject javaProject = getJavaProject("Completion");
-	IEvaluationContext context = javaProject.newEvaluationContext();
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, false, false);
-	requestor.setIgnored(CompletionProposal.TYPE_REF, true);
-	context.codeComplete(start, start.length(), requestor, this.wcOwner);
-	
-	int startOffset = 0;
-	int endOffset = start.length();
-	
-	assertResults(
-			"completion offset="+endOffset+"\n"+
-			"completion range=["+startOffset+", "+(endOffset-1)+"]\n"+
-			"completion token=\"TestEvaluationContextCompletion4\"\n"+
-			"completion token kind=TOKEN_KIND_NAME\n"+
-			"expectedTypesSignatures=null\n"+
-			"expectedTypesKeys=null",
-            requestor.getContext());
-    
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=141518
-public void testEvaluationContextCompletion5() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/TestEvaluationContextCompletion5.js",
-		"package test;"+
-		"public class TestEvaluationContextCompletion5 {\n"+
-		"}");
-	
-	String start = "someVariable.to";
-	IJavaScriptProject javaProject = getJavaProject("Completion");
-	IEvaluationContext context = javaProject.newEvaluationContext();
-	
-	context.newVariable( "Object", "someVariable", null );
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, false, false);
-	context.codeComplete(start, start.length(), requestor, this.wcOwner);
-	
-	int startOffset = start.length() - 2;
-	int endOffset = startOffset + 2 ;
-	
-	assertResults(
-			"completion offset="+endOffset+"\n"+
-			"completion range=["+startOffset+", "+(endOffset-1)+"]\n"+
-			"completion token=\"to\"\n"+
-			"completion token kind=TOKEN_KIND_NAME\n"+
-			"expectedTypesSignatures=null\n"+
-			"expectedTypesKeys=null",
-            requestor.getContext());
-    
-	assertResults(
-			"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports001() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo;\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FIELD_REF]{ZZZ.foo, Ltest.p.ZZZ;, I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports002() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports003() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo;\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports004() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports005() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo;\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.foo"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FIELD_REF]{ZZZ.foo, Ltest.p.ZZZ;, I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports006() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.foo"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports007() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"import test.p.ZZZ.*;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports009() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"import test.p.ZZZ.*;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.foo"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports011() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"import test.p.ZZZ.foo;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports013() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"import test.p.ZZZ.foo;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.foo"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports016() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public class foo {\n" +
-			"        public void method() {\n" +
-			"            foo\n" +
-			"        }\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class Test");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n"+
-			"Test.foo[TYPE_REF]{foo, test, Ltest.Test$foo;, null, null, ["+start1+", "+end1+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports017() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void foo() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	assertResults(
-			"foo[FUNCTION_REF]{foo(), Ltest.Test;, ()V, foo, null, ["+start1+", "+end1+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports018() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public int foo;\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class Test");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n"+
-			"foo[FIELD_REF]{foo, Ltest.Test;, I, foo, null, ["+start1+", "+end1+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports019() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        int foo = 0;\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class Test");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n"+
-			"foo[LOCAL_VARIABLE_REF]{foo, null, I, foo, null, ["+start1+", "+end1+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports020() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"    public static int foo(int i){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("public class Test");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n"+
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, (I)I, foo, (i), ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports022() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo();\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){}\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo(";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports023() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"/** */\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo;\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	int start2 = str.lastIndexOf("/** */");
-	int end2 = start2 + "".length();
-	assertResults(
-			"foo[FIELD_REF]{ZZZ.foo, Ltest.p.ZZZ;, I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-			"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports024() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public int foo;\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports025() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public int foo;\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.foo"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports026() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public int foo(){return 0;};\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports027() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public int foo(){return 0;};\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.foo"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports028() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src3/test/Test.js",
-			"package test;\n" +
-			"import test.p.ZZZ;\n" +
-			"public class Test {\n" +
-			"    public void method() {\n" +
-			"        foo\n" +
-			"    }\n" +
-			"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src3/test/p/ZZZ.js",
-			"package test.p;\n" +
-			"public class ZZZ {\n" +
-			"    public static int foo(){return 0;};\n" +
-			"}");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.foo"});
-	
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "foo";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int start1 = str.lastIndexOf("foo") + "".length();
-	int end1 = start1 + "foo".length();
-	assertResults(
-			"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], " + (R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports030() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_SUGGEST_STATIC_IMPORTS, JavaScriptCore.DISABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-				"/Completion/src3/test/Test.js",
-				"package test;\n" +
-				"public class Test {\n" +
-				"    public void method() {\n" +
-				"        foo\n" +
-				"    }\n" +
-				"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-				"/Completion/src3/test/p/ZZZ.js",
-				"package test.p;\n" +
-				"public class ZZZ {\n" +
-				"    public static int foo(){}\n" +
-				"}");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-		
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "foo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-		
-		int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-		int start1 = str.lastIndexOf("foo") + "".length();
-		int end1 = start1 + "foo".length();
-		int start2 = str.lastIndexOf("public class");
-		int end2 = start2 + "".length();
-		assertResults(
-				"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-				"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=152123
-public void testFavoriteImports031() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_SUGGEST_STATIC_IMPORTS, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-				"/Completion/src3/test/Test.js",
-				"package test;\n" +
-				"public class Test {\n" +
-				"    public void method() {\n" +
-				"        foo\n" +
-				"    }\n" +
-				"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-				"/Completion/src3/test/p/ZZZ.js",
-				"package test.p;\n" +
-				"public class ZZZ {\n" +
-				"    public static int foo(){}\n" +
-				"}");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		requestor.setFavoriteReferences(new String[]{"test.p.ZZZ.*"});
-		
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "foo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-		
-		int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED;
-		int start1 = str.lastIndexOf("foo") + "".length();
-		int end1 = start1 + "foo".length();
-		int start2 = str.lastIndexOf("public class");
-		int end2 = start2 + "".length();
-		assertResults(
-				"foo[FUNCTION_REF]{ZZZ.foo(), Ltest.p.ZZZ;, ()I, foo, null, ["+start1+", "+end1+"], "+(relevance1)+"}\n" +
-				"   ZZZ[TYPE_IMPORT]{import test.p.ZZZ;\n, test.p, Ltest.p.ZZZ;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-public void testInconsistentHierarchy1() throws CoreException, IOException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/p/Test.js",
-		"package p;"+
-		"public class Test extends Unknown {\n" + 
-		"  void foo() {\n" + 
-		"    this.has\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "this.has";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	assertResults(
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-		requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
-public void testLabel1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/label/Test.js",
-		"package label;"+
-		"public class Test {\n"+
-		"  void foo() {\n"+
-		"    label1 : for(;;) foo();\n"+
-		"    label2 : for(;;)\n"+
-		"      label3 : for(;;) {\n"+
-		"        label4 : for(;;) {\n"+
-		"          break lab\n"+
-		"        }\n"+
-		"      }\n"+
-		"  }\n"+
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"label2[LABEL_REF]{label2, null, null, label2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"label3[LABEL_REF]{label3, null, null, label3, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"label4[LABEL_REF]{label4, null, null, label4, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
-public void testLabel2() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/label/Test.js",
-		"package label;"+
-		"public class Test {\n"+
-		"  void foo() {\n"+
-		"    #\n"+
-		"    label1 : for(;;) foo();\n"+
-		"    label2 : for(;;)\n"+
-		"      label3 : for(;;) {\n"+
-		"        label4 : for(;;) {\n"+
-		"          break lab\n"+
-		"        }\n"+
-		"      }\n"+
-		"  }\n"+
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"label2[LABEL_REF]{label2, null, null, label2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"label3[LABEL_REF]{label3, null, null, label3, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"label4[LABEL_REF]{label4, null, null, label4, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
-public void testLabel3() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/label/Test.js",
-		"package label;"+
-		"public class Test {\n"+
-		"  void foo() {\n"+
-		"    label1 : for(;;) foo();\n"+
-		"    label2 : for(;;)\n"+
-		"      label3 : for(;;) {\n"+
-		"        label4 : for(;;) {\n"+
-		"          break lab\n"+
-		"  }\n"+
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"label2[LABEL_REF]{label2, null, null, label2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"label3[LABEL_REF]{label3, null, null, label3, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"label4[LABEL_REF]{label4, null, null, label4, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
-public void testLabel4() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/label/Test.js",
-		"package label;"+
-		"public class Test {\n"+
-		"  void foo() {\n"+
-		"    #\n"+
-		"    label1 : for(;;) foo();\n"+
-		"    label2 : for(;;)\n"+
-		"      label3 : for(;;) {\n"+
-		"        label4 : for(;;) {\n"+
-		"          break lab\n"+
-		"  }\n"+
-		"}");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"label2[LABEL_REF]{label2, null, null, label2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"label3[LABEL_REF]{label3, null, null, label3, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"label4[LABEL_REF]{label4, null, null, label4, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
-public void testLabel5() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/label/Test.js",
-		"package label;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
-		"    #\n" + 
- 		"    label1 : for(;;) {\n" + 
- 		"      class X {\n" + 
- 		"        void foo() {\n" + 
- 		"          label2 : for(;;) foo();\n" + 
- 		"        }\n" + 
- 		"      }\n" + 
- 		"      continue lab\n" + 
- 		"    }\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"label1[LABEL_REF]{label1, null, null, label1, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
-public void testLabel6() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/label/Test.js",
-		"package label;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
-		"    #\n" + 
- 		"    label1 : for(;;) {\n" + 
- 		"      class X {\n" + 
- 		"        void foo() {\n" + 
- 		"          label2 : for(;;) {\n" + 
- 		"            continue lab\n" + 
- 		"          }\n" + 
- 		"        }\n" + 
- 		"      }\n" + 
- 		"    }\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "lab";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"label2[LABEL_REF]{label2, null, null, label2, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-public void testParameterNames1() throws CoreException, IOException {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object timeout = options.get(JavaScriptCore.TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC);
-	options.put(JavaScriptCore.TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC,"2000"); //$NON-NLS-1$
-	
-	JavaScriptCore.setOptions(options);
-
-	try {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/p/Test.js",
-			"package p;"+
-			"public class Test {\n" + 
-			"  void foo(doctest.X x) {\n" + 
-			"    x.fo\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		addLibrary(
-				"Completion", 
-				"tmpDoc.jar",
-				null,
-				"tmpDocDoc.zip",
-				false);
-		
-		CompletionTestsRequestor2 requestor;
-		try {
-			requestor = new CompletionTestsRequestor2(true);
-			String str = this.workingCopies[0].getSource();
-			String completeBehind = "x.fo";
-			int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-			this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-			
-			assertResults(
-				"foo[FUNCTION_REF]{foo(), Ldoctest.X;, (Ljava.lang.Object;)V, foo, (param), " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED) + "}",
-				requestor.getResults());
-		} finally {
-			removeLibrary("Completion", "tmpDoc.jar");
-		}
-	} finally {
-		options.put(JavaScriptCore.TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC, timeout);
-		JavaScriptCore.setOptions(options);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=22072
-public void testStaticMembers1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    StaticMembers.\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/StaticMembers.js",
-		"package test;"+
-		"public class StaticMembers extends SuperStaticMembers {\n" + 
-		"  public static int staticField;\n" + 
- 		"  public static int staticMethod() {}\n" + 
-		"  public class Clazz {}\n" + 
-		"  public static class StaticClazz {}\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-			"/Completion/src/test/SuperStaticMembers.js",
-			"package test;"+
-			"public class SuperStaticMembers {\n" + 
-			"  public static int superStaticField;\n" + 
-	 		"  public static int supeStaticMethod() {}\n" + 
-			"  public class SuperClazz {}\n" + 
-			"  public static class SuperStaticClazz {}\n" + 
-			"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "StaticMembers.";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"supeStaticMethod[FUNCTION_REF]{supeStaticMethod(), Ltest.SuperStaticMembers;, ()I, supeStaticMethod, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"superStaticField[FIELD_REF]{superStaticField, Ltest.SuperStaticMembers;, I, superStaticField, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-			"StaticMembers.Clazz[TYPE_REF]{Clazz, test, Ltest.StaticMembers$Clazz;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n" +
-			"StaticMembers.StaticClazz[TYPE_REF]{StaticClazz, test, Ltest.StaticMembers$StaticClazz;, null, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n" +
-			"class[FIELD_REF]{class, null, Ljava.lang.Class;, class, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n" +
-			"staticField[FIELD_REF]{staticField, Ltest.StaticMembers;, I, staticField, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n" +
-			"staticMethod[FUNCTION_REF]{staticMethod(), Ltest.StaticMembers;, ()I, staticMethod, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}\n" +
-			"this[KEYWORD]{this, null, null, this, null, " + (R_DEFAULT + R_INTERESTING + R_CASE + R_NON_INHERITED + R_NON_RESTRICTED) + "}",
-			requestor.getResults());
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTests2.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTests2.java
deleted file mode 100644
index 73f8982..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTests2.java
+++ /dev/null
@@ -1,2416 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import junit.framework.ComparisonFailure;
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.IAccessRule;
-import org.eclipse.wst.jsdt.core.IIncludePathAttribute;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJsGlobalScopeContainer;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-public class CompletionTests2 extends ModifyingResourceTests implements RelevanceConstants {
-	
-	public static final String DEFUALT_JSDTSCOPE = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-												  "<classpath>\n" + 
-												   "       <classpathentry kind=\"src\" path=\"\"/>\n" + 
-												   "       <classpathentry kind=\"con\" path=\"org.eclipse.wst.jsdt.launching.JRE_CONTAINER\"/>\n"+
-												   "       <classpathentry kind=\"output\" path=\"\"/>\n"+
-												   "</classpath>";
-	/* 
-		.project = DEFAULT_PROJECT_LEFT + project name + DEFAULT_PROJECT_RIGHT;
-	*/
-	public static final String DEFAULT_PROJECT_LEFT = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-													  "<projectDescription>\n" + 
-													  "     <name>";
-		
-		
-	public static final String DEFAULT_PROJECT_RIGHT ="</name>\n" + 
-													  "     <comment></comment>\n" +
-													  "     <projects>\n" +
-													  "     </projects>\n"+
-													  "     <buildSpec>\n"+
-													  "     	<buildCommand>\n"+
-													  "            <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>\n"+
-													  "               <arguments>\n"+
-													  "               </arguments>\n"+
-													  "         </buildCommand>\n"+
-													  "     </buildSpec>\n"+
-													  "     <natures>\n"+
-													  "       <nature>org.eclipse.wst.jsdt.core.jsNature</nature>\n"+
-													  "     </natures>\n" +
-													  "</projectDescription>";
-
-	
-		
-		
-		
-	public static class CompletionContainerInitializer implements ContainerInitializer.ITestInitializer {
-		
-		public static class DefaultContainer implements IJsGlobalScopeContainer {
-			char[][] libPaths;
-			boolean[] areExported;
-			String[] forbiddenReferences;
-			public DefaultContainer(char[][] libPaths, boolean[] areExported, String[] forbiddenReferences) {
-				this.libPaths = libPaths;
-				this.areExported = areExported;
-				this.forbiddenReferences = forbiddenReferences;
-			}
-			/**
-			 * @deprecated Use {@link #getIncludepathEntries()} instead
-			 */
-			public IIncludePathEntry[] getClasspathEntries() {
-				return getIncludepathEntries();
-			}
-			public IIncludePathEntry[] getIncludepathEntries() {
-				int length = this.libPaths.length;
-				IIncludePathEntry[] entries = new IIncludePathEntry[length];
-				for (int j = 0; j < length; j++) {
-				    IPath path = new Path(new String(this.libPaths[j]));
-				    boolean isExported = this.areExported[j];
-		
-				    IAccessRule[] accessRules;
-				    if(forbiddenReferences != null && forbiddenReferences[j]!= null && forbiddenReferences[j].length() != 0) {
-					    StringTokenizer tokenizer = new StringTokenizer(forbiddenReferences[j], ";");
-					    int count = tokenizer.countTokens();
-					    accessRules = new IAccessRule[count];
-					    String token = null;
-					    for (int i = 0; i < count; i++) {
-					    	token = tokenizer.nextToken();
-							accessRules[i] = JavaScriptCore.newAccessRule(new Path(token), IAccessRule.K_NON_ACCESSIBLE);
-						}
-					} else {
-						accessRules = new IAccessRule[0];
-					}
-				    if (path.segmentCount() == 1) {
-				        entries[j] = JavaScriptCore.newProjectEntry(path, accessRules, true, new IIncludePathAttribute[0], isExported);
-				    } else {
-						entries[j] = JavaScriptCore.newLibraryEntry(path, null, null, accessRules, new IIncludePathAttribute[0], isExported);
-				    }
-				}
-				return entries;
-			}
-			public String getDescription() {
-				return "Test container";
-			}
-			public int getKind() {
-				return IJsGlobalScopeContainer.K_APPLICATION;
-			}
-			public IPath getPath() {
-				return new Path("org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER");
-			}
-			/* (non-Javadoc)
-			 * @see org.eclipse.wst.jsdt.core.IJsGlobalScopeContainer#resolvedLibraryImport(java.lang.String)
-			 */
-			public String[] resolvedLibraryImport(String a) {
-				return new String[] {a};
-			}
-		}
-		
-		Map containerValues;
-		CoreException exception;
-		
-		public CompletionContainerInitializer(String projectName, String[] libPaths, boolean[] areExported) {
-			this(projectName, libPaths, areExported, null);
-		}
-		public CompletionContainerInitializer(String projectName, String[] libPaths, boolean[] areExported, String[] forbiddenRefrences) {
-			containerValues = new HashMap();
-			
-			int libPathsLength = libPaths.length;
-			char[][] charLibPaths = new char[libPathsLength][];
-			for (int i = 0; i < libPathsLength; i++) {
-				charLibPaths[i] = libPaths[i].toCharArray();
-			}
-			containerValues.put(
-				projectName, 
-				newContainer(charLibPaths, areExported, forbiddenRefrences)
-			);
-		}
-		protected DefaultContainer newContainer(final char[][] libPaths, final boolean[] areExperted, final String[] forbiddenRefrences) {
-			return new DefaultContainer(libPaths, areExperted, forbiddenRefrences);
-		}
-		public boolean allowFailureContainer() {
-			return true;
-		}
-		public void initialize(IPath containerPath, IJavaScriptProject project) throws CoreException {
-			if (containerValues == null) return;
-			try {
-				JavaScriptCore.setJsGlobalScopeContainer(
-					containerPath, 
-					new IJavaScriptProject[] {project},
-					new IJsGlobalScopeContainer[] {(IJsGlobalScopeContainer)containerValues.get(project.getElementName())}, 
-					null);
-			} catch (CoreException e) {
-				this.exception = e;
-				throw e;
-			}
-		}
-	}
-public CompletionTests2(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	setUpJavaProject("Completion");
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("Completion");
-	
-	super.tearDownSuite();
-}
-
-protected static void assertResults(String expected, String actual) {
-	try {
-		assertEquals(expected, actual);
-	} catch(ComparisonFailure c) {
-		System.out.println(actual);
-		System.out.println();
-		throw c;
-	}
-}
-static {
-//	TESTS_NAMES = new String[] { "testBug96950" };
-}
-public static Test suite() {
-	return buildModelTestSuite(CompletionTests2.class);
-}
-
-File createFile(File parent, String name, String content) throws IOException {
-	File file = new File(parent, name);
-	FileOutputStream out = new FileOutputStream(file);
-	out.write(content.getBytes());
-	out.close();
-	return file;
-}
-File createDirectory(File parent, String name) {
-	File dir = new File(parent, name);
-	dir.mkdirs();
-	return dir;
-}
-/**
- * Test for bug 29832
- */
-public void testBug29832() throws Exception {
-	try {
-		// create variable
-//		JavaScriptCore.setClasspathVariables(
-//			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-//			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-//			null);
-
-		// create P1
-	//	IFile f = getFile("/Completion/lib.jar");
-		IFile f = getFile("/Completion/ZZZ.js");
-		
-		
-		IJavaScriptProject p = this.createJavaProject(
-			"P1",
-			new String[]{"/"},
-			new String[]{});
-		IFile libFile = this.createFile("/P1/ZZZ.js", f.getContents());
-		this.addLibraryEntry(p, libFile.getLocation().toString(), true);
-		
-		// create P2
-		this.createJavaProject(
-			"P2",
-			new String[]{"/"},
-			new String[]{},
-			new String[]{"/P1"});
-		this.createFile(
-			"/P2/X.js",
-			"function testZZZClass {\n"+
-			"  var z = new ZZZ();\n"+
-			"  z;\n" +
-			"}");
-		
-		waitUntilIndexesReady();
-		
-		// do completion
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("P2", "", "", "X.js");
-		
-		String str = cu.getSource();
-		String completeBehind = "z";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-
-//		assertEquals(
-//			"element:ZZZ    completion:pz.ZZZ    relevance:"+(R_DEFAULT + R_INTERESTING + R_CASE + R_EXACT_NAME + R_NON_RESTRICTED),
-//			requestor.getResults());
-		assertEquals(
-					"element:ZZZ    completion:ZZZ    relevance:" +(R_DEFAULT+R_RESOLVED+R_INTERESTING+R_NON_RESTRICTED) + "\n"+
-					"element:ZZZ    completion:ZZZ()    relevance:" + (R_DEFAULT+R_INTERESTING+R_UNQUALIFIED+R_NON_RESTRICTED) + "\n"+
-					"element:ZZZ    completion:ZZZ()    relevance:" + (R_DEFAULT+R_INTERESTING+R_UNQUALIFIED+R_NON_RESTRICTED) + "\n"+
-					"element:z    completion:z    relevance:"+ (R_DEFAULT+R_RESOLVED+R_INTERESTING+R_CASE+R_EXACT_NAME+R_UNQUALIFIED+R_NON_RESTRICTED),
-					requestor.getResults());
-		
-		// delete P1
-		p.getProject().delete(true, false, null);
-		
-		// create P1
-		File dest = getWorkspaceRoot().getLocation().toFile();
-		File pro = this.createDirectory(dest, "P1");
-		File proSet = this.createDirectory(pro,".settings");
-		
-		this.createFile(proSet, ".jsdtscope", DEFUALT_JSDTSCOPE);
-					
-					
-//					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-//			"<classpath>\n" +
-//			"    <classpathentry kind=\"src\" path=\"\"/>\n" +
-//			"    <classpathentry kind=\"var\" path=\"JCL_LIB\" sourcepath=\"JCL_SRC\" rootpath=\"JCL_SRCROOT\"/>\n" +
-//			"    <classpathentry kind=\"output\" path=\"bin\"/>\n" +
-//			"</classpath>");
-			
-		this.createFile(pro, ".project", DEFAULT_PROJECT_LEFT + "org.eclipse.wst.jsdt.core" + DEFAULT_PROJECT_RIGHT);
-//			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-//			"<projectDescription>\n" +
-//			"	<name>org.eclipse.wst.jsdt.core</name>\n" +
-//			"	<comment></comment>\n" +
-//			"	<projects>\n" +
-//			"	</projects>\n" +
-//			"	<buildSpec>\n" +
-//			"		<buildCommand>\n" +
-//			"			<name>org.eclipse.wst.jsdt.core.javabuilder</name>\n" +
-//			"			<arguments>\n" +
-//			"			</arguments>\n" +
-//			"		</buildCommand>\n" +
-//			"	</buildSpec>\n" +
-//			"	<natures>\n" +
-//			"		<nature>org.eclipse.wst.jsdt.core.javanature</nature>\n" +
-//			"	</natures>\n" +
-//			"</projectDescription>");
-		
-		//File src = this.createDirectory(pro, "src");
-		
-		//File pz = this.createDirectory(src, "pz");
-
-		this.createFile(pro,"ZZZ.js","function testZZZClass {\n"+
-										"  var z = new ZZZ();\n"+
-										"  z;\n" +
-										"}");
-		
-		final IProject project = getWorkspaceRoot().getProject("P1");
-		IWorkspaceRunnable populate = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				project.create(null);
-				project.open(null);
-			}
-		};
-		getWorkspace().run(populate, null);
-		JavaScriptCore.create(project);
-		
-		waitUntilIndexesReady();
-		
-		// do completion
-		requestor = new CompletionTestsRequestor();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-			"element:z    completion:z    relevance:"+ (R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME+R_UNQUALIFIED+R_NON_RESTRICTED) + "\n" +		
-			"element:z    completion:z    relevance:"+(R_DEFAULT+R_RESOLVED+R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED),
-			requestor.getResults());
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/**
- * Test for bug 33560
- */
-public void testBug33560() throws Exception {
-	try {
-		// create variable
-//		JavaScriptCore.setClasspathVariables(
-//			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-//			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-//			null);
-
-		// create P1
-		//IFile f = getFile("/Completion/lib.jar");
-		IFile f = getFile("/Completion/ZZZ.js");
-		IJavaScriptProject p = this.createJavaProject(
-					"P1",
-					new String[]{"/"},
-					new String[]{});;
-					 IFile libFile = this.createFile("/P1/ZZZ.js", f.getContents());
-						this.addLibraryEntry(p, libFile.getLocation().toString(), true);
-		
-		// create P2
-						this.createJavaProject(
-									"P2",
-									new String[]{"/"},
-									new String[]{},
-									new String[]{"/P1"});
-					
-		// create P3
-						this.createJavaProject(
-									"P3",
-									new String[]{"/"},
-									new String[]{},
-									new String[]{"/P1"});
-						this.createFile(
-									"/P3/X.js",
-									"function testZZZClass {\n"+
-									"  var z = new ZZZ();\n"+
-									"  z;\n" +
-									"}");
-		
-		waitUntilIndexesReady();
-		
-		// do completion
-		CompletionTestsRequestor requestor = new CompletionTestsRequestor();
-		IJavaScriptUnit cu= getCompilationUnit("P3", "", "", "X.js");
-		
-		String str = cu.getSource();
-		String completeBehind = "z";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-		assertEquals(
-		"element:ZZZ    completion:ZZZ    relevance:" +(R_DEFAULT+R_RESOLVED+R_INTERESTING+R_NON_RESTRICTED ) + "\n"+
-		"element:ZZZ    completion:ZZZ()    relevance:" + (R_DEFAULT+R_INTERESTING+R_UNQUALIFIED+R_NON_RESTRICTED) + "\n"+
-		"element:ZZZ    completion:ZZZ()    relevance:" + (R_DEFAULT+R_INTERESTING+R_UNQUALIFIED+R_NON_RESTRICTED) + "\n"+
-		"element:z    completion:z    relevance:"+ (R_DEFAULT+R_RESOLVED+R_INTERESTING+R_CASE+R_EXACT_NAME+R_UNQUALIFIED+R_NON_RESTRICTED),
-		requestor.getResults());
-		
-		
-		// delete P1
-		p.getProject().delete(true, false, null);
-		
-		// create P1
-		File dest = getWorkspaceRoot().getLocation().toFile();
-		File pro = this.createDirectory(dest, "P1");
-		File proSet = this.createDirectory(pro,".settings");
-		
-		this.createFile(proSet, ".jsdtscope", DEFUALT_JSDTSCOPE);
-//		this.createFile(pro, ".classpath", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-//			"<classpath>\n" +
-//			"    <classpathentry kind=\"src\" path=\"src\"/>\n" +
-//			"    <classpathentry kind=\"var\" path=\"JCL_LIB\" sourcepath=\"JCL_SRC\" rootpath=\"JCL_SRCROOT\"/>\n" +
-//			"    <classpathentry kind=\"output\" path=\"bin\"/>\n" +
-//			"</classpath>");
-		this.createFile(pro, ".project", DEFAULT_PROJECT_LEFT + "org.eclipse.wst.jsdt.core" + DEFAULT_PROJECT_RIGHT);
-//		this.createFile(pro, ".project", 
-//			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-//			"<projectDescription>\n" +
-//			"	<name>org.eclipse.wst.jsdt.core</name>\n" +
-//			"	<comment></comment>\n" +
-//			"	<projects>\n" +
-//			"	</projects>\n" +
-//			"	<buildSpec>\n" +
-//			"		<buildCommand>\n" +
-//			"			<name>org.eclipse.wst.jsdt.core.javabuilder</name>\n" +
-//			"			<arguments>\n" +
-//			"			</arguments>\n" +
-//			"		</buildCommand>\n" +
-//			"	</buildSpec>\n" +
-//			"	<natures>\n" +
-//			"		<nature>org.eclipse.wst.jsdt.core.javanature</nature>\n" +
-//			"	</natures>\n" +
-//			"</projectDescription>");
-//		
-		File src = this.createDirectory(pro, "src");
-		
-		File pz = this.createDirectory(src, "pz");
-		
-		this.createFile(pro,"ZZZ.js","function testZZZClass {\n"+
-					"  var z = new ZZZ();\n"+
-					"  z;\n" +
-					"}");
-		
-		final IProject project = getWorkspaceRoot().getProject("P1");
-		IWorkspaceRunnable populate = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				project.create(null);
-				project.open(null);
-			}
-		};
-		getWorkspace().run(populate, null);
-		JavaScriptCore.create(project);
-		
-		waitUntilIndexesReady();
-		
-		// do completion
-		requestor = new CompletionTestsRequestor();
-		cu.codeComplete(cursorLocation, requestor);
-
-		assertEquals(
-					"element:z    completion:z    relevance:"+ (R_DEFAULT+R_INTERESTING+R_CASE+R_EXACT_NAME+R_UNQUALIFIED+R_NON_RESTRICTED) + "\n" +
-					"element:z    completion:z    relevance:"+(R_DEFAULT+R_RESOLVED+R_INTERESTING + R_CASE + R_EXACT_NAME + R_UNQUALIFIED + R_NON_RESTRICTED),
-					requestor.getResults());
-		} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-		this.deleteProject("P3");
-	}
-}
-/*
- * 
- * This tests a project which includes functions and methods marked as "not exported" from another project.  This is N/A for JS.
- */
-
-//public void testBug79288() throws Exception {
-//	try {
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			new String[]{"/P1"},
-//			"bin");
-//		
-//		this.createFolder("/P2/src/b");
-//		this.createFile(
-//				"/P2/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			new String[]{"/P2"},
-//			"bin");
-//		
-//		this.createFile(
-//				"/P3/src/YY.js",
-//				"public class YY {\n"+
-//				"  vois foo(){\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P3", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//	}
-//}
-
-
-
-
-//public void testBug91772() throws Exception {
-//	try {
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//		
-//		// create P2
-//		ContainerInitializer.setInitializer(new CompletionContainerInitializer("P2", new String[] {"/P1"}, new boolean[] {true}));
-//		String[] classLib = new String[]{"JCL_LIB"};
-//		int classLibLength = classLib.length;
-//		String[] lib = new String[classLibLength + 1];
-//		System.arraycopy(classLib, 0, lib, 0, classLibLength);
-//		lib[classLibLength] = "org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER";
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			lib,
-//			"bin");
-//		
-//		this.createFolder("/P2/src/b");
-//		this.createFile(
-//				"/P2/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			new String[]{"/P2"},
-//			"bin");
-//		
-//		this.createFile(
-//				"/P3/src/YY.js",
-//				"public class YY {\n"+
-//				"  vois foo(){\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P3", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX1[TYPE_REF]{a.XX1, a, La.XX1;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//		
-//		
-//		// TODO the following code is not the correct way to remove the container
-//		// Cleanup caches
-//		JavaModelManager manager = JavaModelManager.getJavaModelManager();
-//		manager.containers = new HashMap(5);
-//		manager.variables = new HashMap(5);
-//	}
-//}
-//public void testBug93891() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		ContainerInitializer.setInitializer(new CompletionContainerInitializer("P2", new String[] {"/P1"}, new boolean[] {true}, new String[]{"a/*"}));
-//		String[] classLib = new String[]{"JCL_LIB"};
-//		int classLibLength = classLib.length;
-//		String[] lib = new String[classLibLength + 1];
-//		System.arraycopy(classLib, 0, lib, 0, classLibLength);
-//		lib[classLibLength] = "org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER";
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			lib,
-//			"bin");
-//		
-//		this.createFolder("/P2/src/b");
-//		this.createFile(
-//				"/P2/src/YY.js",
-//				"public class YY {\n"+
-//				"  void foo() {\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		
-//		// TODO the following code is not the correct way to remove the container
-//		// Cleanup caches
-//		JavaModelManager manager = JavaModelManager.getJavaModelManager();
-//		manager.containers = new HashMap(5);
-//		manager.variables = new HashMap(5);
-//		
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction1() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.IGNORE);
-//		options.put(JavaScriptCore.COMPILER_PB_DISCOURAGED_REFERENCE, JavaScriptCore.IGNORE);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			new String[]{"/P1"},
-//			"bin");
-//		this.createFile(
-//			"/P2/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    XX\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX1[TYPE_REF]{a.XX1, a, La.XX1;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-// 			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//
-//public void testAccessRestriction2() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.IGNORE);
-//		options.put(JavaScriptCore.COMPILER_PB_DISCOURAGED_REFERENCE, JavaScriptCore.IGNORE);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"a/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//			"/P2/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    XX\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX1[TYPE_REF]{a.XX1, a, La.XX1;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-// 			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction3() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"a/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//			"/P2/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    XX\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX1[TYPE_REF]{a.XX1, a, La.XX1;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE) + "}\n" +
-// 			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction4() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.IGNORE);
-//		options.put(JavaScriptCore.COMPILER_PB_DISCOURAGED_REFERENCE, JavaScriptCore.IGNORE);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"a/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//			"/P2/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    XX\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX1[TYPE_REF]{a.XX1, a, La.XX1;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-// 			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction5() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"a/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//			"/P2/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    XX\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction6() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P1/src/c");
-//		this.createFile(
-//				"/P1/src/c/XX3.js",
-//				"package c;\n"+
-//				"public class XX3 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"a/*"}},
-//			new boolean[]{true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P2"},
-//			new String[][]{{}},
-//			new String[][]{{"b/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFile(
-//			"/P3/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    XX\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P3", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX3[TYPE_REF]{c.XX3, c, Lc.XX3;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction7() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1", "/P3"},
-//			new String[][]{{}, {}},
-//			new String[][]{{"a/*"}, {}},
-//			new boolean[]{false, false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//				"/P2/src/YY.js",
-//				"public class YY {\n"+
-//				"  void foo() {\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{}},
-//			new boolean[]{true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction8() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P3", "/P1"},
-//			new String[][]{{}, {}},
-//			new String[][]{{}, {"a/*"}},
-//			new boolean[]{false, false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//				"/P2/src/YY.js",
-//				"public class YY {\n"+
-//				"  void foo() {\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{}},
-//			new boolean[]{true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX1[TYPE_REF]{a.XX1, a, La.XX1;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction9() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/p11");
-//		this.createFile(
-//				"/P1/src/p11/XX11.js",
-//				"package p11;\n"+
-//				"public class XX11 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P1/src/p12");
-//		this.createFile(
-//				"/P1/src/p12/XX12.js",
-//				"package p12;\n"+
-//				"public class XX12 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1", "/P3"},
-//			new String[][]{{}, {}},
-//			new String[][]{{"p11/*"}, {"p31/*"}},
-//			new boolean[]{true, true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFolder("/P2/src/p21");
-//		this.createFile(
-//				"/P2/src/p21/XX21.js",
-//				"package p21;\n"+
-//				"public class XX21 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P2/src/p22");
-//		this.createFile(
-//				"/P2/src/p22/XX22.js",
-//				"package p22;\n"+
-//				"public class XX22 {\n"+
-//				"}");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"p12/*"}},
-//			new boolean[]{true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFolder("/P3/src/p31");
-//		this.createFile(
-//				"/P3/src/p31/XX31.js",
-//				"package p31;\n"+
-//				"public class XX31 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P3/src/p32");
-//		this.createFile(
-//				"/P3/src/p32/XX32.js",
-//				"package p32;\n"+
-//				"public class XX32 {\n"+
-//				"}");
-//		
-//		// create PX
-//		this.createJavaProject(
-//				"PX",
-//				new String[]{"src"},
-//				new String[]{"JCL_LIB"},
-//				null,
-//				null,
-//				new String[]{"/P2"},
-//				null,
-//				null,
-//				new boolean[]{false},
-//				"bin",
-//				null,
-//				null,
-//				null,
-//				"1.4");
-//		
-//		this.createFile(
-//				"/PX/src/X.js",
-//				"public class X {\n"+
-//				"  void foo() {\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("PX", "src", "", "X.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX12[TYPE_REF]{p12.XX12, p12, Lp12.XX12;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX21[TYPE_REF]{p21.XX21, p21, Lp21.XX21;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX22[TYPE_REF]{p22.XX22, p22, Lp22.XX22;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX32[TYPE_REF]{p32.XX32, p32, Lp32.XX32;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//		this.deleteProject("PX");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction10() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/p11");
-//		this.createFile(
-//				"/P1/src/p11/XX11.js",
-//				"package p11;\n"+
-//				"public class XX11 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P1/src/p12");
-//		this.createFile(
-//				"/P1/src/p12/XX12.js",
-//				"package p12;\n"+
-//				"public class XX12 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1", "/P3"},
-//			new String[][]{{}, {}},
-//			new String[][]{{"p11/*"}, {"p31/*"}},
-//			new boolean[]{true, true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFolder("/P2/src/p21");
-//		this.createFile(
-//				"/P2/src/p21/XX21.js",
-//				"package p21;\n"+
-//				"public class XX21 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P2/src/p22");
-//		this.createFile(
-//				"/P2/src/p22/XX22.js",
-//				"package p22;\n"+
-//				"public class XX22 {\n"+
-//				"}");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"p12/*"}},
-//			new boolean[]{true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFolder("/P3/src/p31");
-//		this.createFile(
-//				"/P3/src/p31/XX31.js",
-//				"package p31;\n"+
-//				"public class XX31 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P3/src/p32");
-//		this.createFile(
-//				"/P3/src/p32/XX32.js",
-//				"package p32;\n"+
-//				"public class XX32 {\n"+
-//				"}");
-//		
-//		// create PX
-//		this.createJavaProject(
-//				"PX",
-//				new String[]{"src"},
-//				new String[]{"JCL_LIB"},
-//				null,
-//				null,
-//				new String[]{"/P2"},
-//				null,
-//				null,
-//				new boolean[]{false},
-//				"bin",
-//				null,
-//				null,
-//				null,
-//				"1.4");
-//		
-//		this.createFile(
-//				"/PX/src/X.js",
-//				"public class X {\n"+
-//				"  void foo() {\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("PX", "src", "", "X.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX11[TYPE_REF]{p11.XX11, p11, Lp11.XX11;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE) + "}\n" +
-//			"XX31[TYPE_REF]{p31.XX31, p31, Lp31.XX31;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE) + "}\n" +
-//			"XX12[TYPE_REF]{p12.XX12, p12, Lp12.XX12;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX21[TYPE_REF]{p21.XX21, p21, Lp21.XX21;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX22[TYPE_REF]{p22.XX22, p22, Lp22.XX22;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX32[TYPE_REF]{p32.XX32, p32, Lp32.XX32;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//		this.deleteProject("PX");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction11() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/x/y/z/p11");
-//		this.createFile(
-//				"/P1/src/x/y/z/p11/XX11.js",
-//				"package x.y.z.p11;\n"+
-//				"public class XX11 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P1/src/x/y/z/p12");
-//		this.createFile(
-//				"/P1/src/x/y/z/p12/XX12.js",
-//				"package x.y.z.p12;\n"+
-//				"public class XX12 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P3", "/P1"},
-//			new String[][]{{}, {}},
-//			new String[][]{{"x/y/z/p31/*"}, {"x/y/z/p11/*"}},
-//			new boolean[]{true, true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFolder("/P2/src/x/y/z/p21");
-//		this.createFile(
-//				"/P2/src/x/y/z/p21/XX21.js",
-//				"package x.y.z.p21;\n"+
-//				"public class XX21 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P2/src/x/y/z/p22");
-//		this.createFile(
-//				"/P2/src/x/y/z/p22/XX22.js",
-//				"package x.y.z.p22;\n"+
-//				"public class XX22 {\n"+
-//				"}");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"x/y/z/p12/*"}},
-//			new boolean[]{true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFolder("/P3/src/x/y/z/p31");
-//		this.createFile(
-//				"/P3/src/x/y/z/p31/XX31.js",
-//				"package x.y.z.p31;\n"+
-//				"public class XX31 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P3/src/x/y/z/p32");
-//		this.createFile(
-//				"/P3/src/x/y/z/p32/XX32.js",
-//				"package x.y.z.p32;\n"+
-//				"public class XX32 {\n"+
-//				"}");
-//		
-//		// create PX
-//		this.createJavaProject(
-//				"PX",
-//				new String[]{"src"},
-//				new String[]{"JCL_LIB"},
-//				null,
-//				null,
-//				new String[]{"/P2"},
-//				null,
-//				null,
-//				new boolean[]{false},
-//				"bin",
-//				null,
-//				null,
-//				null,
-//				"1.4");
-//		
-//		this.createFile(
-//				"/PX/src/X.js",
-//				"public class X {\n"+
-//				"  void foo() {\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("PX", "src", "", "X.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX11[TYPE_REF]{x.y.z.p11.XX11, x.y.z.p11, Lx.y.z.p11.XX11;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX21[TYPE_REF]{x.y.z.p21.XX21, x.y.z.p21, Lx.y.z.p21.XX21;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX22[TYPE_REF]{x.y.z.p22.XX22, x.y.z.p22, Lx.y.z.p22.XX22;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX32[TYPE_REF]{x.y.z.p32.XX32, x.y.z.p32, Lx.y.z.p32.XX32;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//		this.deleteProject("PX");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction12() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/p11");
-//		this.createFile(
-//				"/P1/src/p11/XX11.js",
-//				"package p11;\n"+
-//				"public class XX11 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P1/src/p12");
-//		this.createFile(
-//				"/P1/src/p12/XX12.js",
-//				"package p12;\n"+
-//				"public class XX12 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P3", "/P1"},
-//			new String[][]{{}, {}},
-//			new String[][]{{"p31/*"}, {"p11/*"}},
-//			new boolean[]{true, true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFolder("/P2/src/p21");
-//		this.createFile(
-//				"/P2/src/p21/XX21.js",
-//				"package p21;\n"+
-//				"public class XX21 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P2/src/p22");
-//		this.createFile(
-//				"/P2/src/p22/XX22.js",
-//				"package p22;\n"+
-//				"public class XX22 {\n"+
-//				"}");
-//		
-//		// create P3
-//		this.createJavaProject(
-//			"P3",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"p12/*"}},
-//			new boolean[]{true},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		
-//		this.createFolder("/P3/src/p31");
-//		this.createFile(
-//				"/P3/src/p31/XX31.js",
-//				"package p31;\n"+
-//				"public class XX31 {\n"+
-//				"}");
-//		
-//		this.createFolder("/P3/src/p32");
-//		this.createFile(
-//				"/P3/src/p32/XX32.js",
-//				"package p32;\n"+
-//				"public class XX32 {\n"+
-//				"}");
-//		
-//		// create PX
-//		this.createJavaProject(
-//				"PX",
-//				new String[]{"src"},
-//				new String[]{"JCL_LIB"},
-//				null,
-//				null,
-//				new String[]{"/P2"},
-//				null,
-//				null,
-//				new boolean[]{false},
-//				"bin",
-//				null,
-//				null,
-//				null,
-//				"1.4");
-//		
-//		this.createFile(
-//				"/PX/src/X.js",
-//				"public class X {\n"+
-//				"  void foo() {\n"+
-//				"    XX\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("PX", "src", "", "X.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX12[TYPE_REF]{p12.XX12, p12, Lp12.XX12;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE) + "}\n" +
-//			"XX31[TYPE_REF]{p31.XX31, p31, Lp31.XX31;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE) + "}\n" +
-//			"XX11[TYPE_REF]{p11.XX11, p11, Lp11.XX11;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX21[TYPE_REF]{p21.XX21, p21, Lp21.XX21;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX22[TYPE_REF]{p22.XX22, p22, Lp22.XX22;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}\n" +
-//			"XX32[TYPE_REF]{p32.XX32, p32, Lp32.XX32;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		this.deleteProject("P3");
-//		this.deleteProject("PX");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction13() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.WARNING);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"a/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//			"/P2/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    XX\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestriction14() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.WARNING);
-//		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"}");
-//
-//		this.createFolder("/P1/src/b");
-//		this.createFile(
-//				"/P1/src/b/XX2.js",
-//				"package b;\n"+
-//				"public class XX2 {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"a/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//			"/P2/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    XX\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "XX";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"XX2[TYPE_REF]{b.XX2, b, Lb.XX2;, null, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testAccessRestrictionX() throws Exception {
-//	Hashtable oldOptions = JavaScriptCore.getOptions();
-//	try {
-//		Hashtable options = new Hashtable(oldOptions);
-//		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-//		options.put(JavaScriptCore.CODEASSIST_RESTRICTIONS_CHECK, JavaScriptCore.DISABLED);
-//		JavaScriptCore.setOptions(options);
-//		
-//		// create variable
-//		JavaScriptCore.setClasspathVariables(
-//			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-//			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-//			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		
-//		this.createFolder("/P1/src/a");
-//		this.createFile(
-//				"/P1/src/a/XX1.js",
-//				"package a;\n"+
-//				"public class XX1 {\n"+
-//				"  public void foo() {\n"+
-//				"  }\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"a/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//			"/P2/src/YY.js",
-//			"public class YY {\n"+
-//			"  void foo() {\n"+
-//			"    a.XX1 x;\n"+
-//			"    x.fo\n"+
-//			"  }\n"+
-//			"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "x.fo";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"foo[FUNCTION_REF]{foo(), La.XX1;, ()V, foo, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//		JavaScriptCore.setOptions(oldOptions);
-//	}
-//}
-//public void testBug96950() throws Exception {
-//	try {
-//		// create variable
-////		JavaScriptCore.setClasspathVariables(
-////			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-////			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-////			null);
-//
-//		// create P1
-//		this.createJavaProject(
-//			"P1",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			 "bin");
-//		this.createFile(
-//				"/P1/src/Taratata.js",
-//				"public class Taratata {\n"+
-//				"}");
-//		
-//		// create P2
-//		this.createJavaProject(
-//			"P2",
-//			new String[]{"src"},
-//			new String[]{"JCL_LIB"},
-//			null,
-//			null,
-//			new String[]{"/P1"},
-//			new String[][]{{}},
-//			new String[][]{{"**/*"}},
-//			new boolean[]{false},
-//			"bin",
-//			null,
-//			null,
-//			null,
-//			"1.4");
-//		this.createFile(
-//				"/P2/src/BreakRules.js",
-//				"public class BreakRules {\n"+
-//				"	Tara\n"+
-//				"}");
-//		
-//		waitUntilIndexesReady();
-//		
-//		// do completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "BreakRules.js");
-//		
-//		String str = cu.getSource();
-//		String completeBehind = "Tara";
-//		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-//		cu.codeComplete(cursorLocation, requestor);
-//		
-//		assertResults(
-//			"Tara[POTENTIAL_METHOD_DECLARATION]{Tara, LBreakRules;, ()V, Tara, "+(R_DEFAULT + R_INTERESTING + R_NON_RESTRICTED) + "}",
-//			requestor.getResults());
-//	} finally {
-//		this.deleteProject("P1");
-//		this.deleteProject("P2");
-//	}
-//}
-/**
- * @bug 162621: [model][delta] Validation errors do not clear after replacing jar file
- * @test Ensures that changing an internal jar and refreshing takes the change into account
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=162621"
- */
-//public void testChangeInternalJar() throws CoreException, IOException {
-//	
-//	
-//	IJavaScriptProject p = this.createJavaProject(
-//				"P1",
-//				new String[]{"/"},
-//				new String[]{},
-//				 "");
-//	
-//	
-//	
-//	
-//	try {
-//		// Create jar file with a class with 2 methods doXXX
-//		String[] pathAndContents = new String[] {
-//			"pack/Util.js",
-//			"package pack;\n" + 
-//			"public class Util {\n" + 
-//			"    public void doit2A(int x, int y) { }\n" + 
-//			"    public void doit2B(int x) { }\n" + 
-//			"}\n"
-//		};
-//		addLibrary(jarName, "b162621_src.zip", pathAndContents, JavaScriptCore.VERSION_1_4);
-//
-//		// Wait a little bit to be sure file system is aware of zip file creation
-//		try {
-//			Thread.sleep(1000);
-//		}
-//		catch (InterruptedException ie) {
-//			// skip
-//		}
-//
-//		// Create compilation unit in which completion occurs
-//		String path = "/Completion/src/test/Test.js";
-//		String source = "package test;\n" + 
-//			"import pack.*;\n" + 
-//			"public class Test {\n" + 
-//			"	public void foo() {\n" + 
-//			"		Util test = new Util();\n" + 
-//			"		test.doit2A(1, 2);\n" + 
-//			"	}\n" + 
-//			"}\n";
-//		createFolder("/Completion/src/test");
-//		createFile(path, source);
-//
-//		// first completion
-//		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-//		IJavaScriptUnit unit = getCompilationUnit(path);
-//		String completeBehind = "test.do";
-//		int cursorLocation = source.lastIndexOf(completeBehind) + completeBehind.length();
-//		unit.codeComplete(cursorLocation, requestor);
-//		assertResults(
-//			"doit2A[FUNCTION_REF]{doit2A, Lpack.Util;, (II)V, doit2A, "+(R_DEFAULT + R_CASE + R_INTERESTING + R_NON_RESTRICTED + R_NON_STATIC) + "}\n" +
-//			"doit2B[FUNCTION_REF]{doit2B, Lpack.Util;, (I)V, doit2B, "+(R_DEFAULT + R_CASE + R_INTERESTING + R_NON_RESTRICTED + R_NON_STATIC) + "}",
-//			requestor.getResults());
-//
-//		// change class file to add a third doXXX method and refresh
-//		String projectLocation = this.currentProject.getProject().getLocation().toOSString();
-//		String jarPath = projectLocation + File.separator + jarName;
-//		org.eclipse.wst.jsdt.core.tests.util.Util.createJar(new String[] {
-//			"pack/Util.js",
-//			"package pack;\n" + 
-//			"public class Util {\n" + 
-//			"    public void doit2A(int x, int y) { }\n" + 
-//			"    public void doit2B(int x) { }\n" + 
-//			"    public void doit2C(int x) { }\n" + 
-//			"}\n"
-//		}, jarPath, "1.4");
-//		this.currentProject.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
-//
-//		try {
-//			Thread.sleep(1000);
-//		}
-//		catch (InterruptedException ie) {
-//			// skip
-//		}
-//
-//		// second completion
-//		requestor = new CompletionTestsRequestor2();
-//		unit.codeComplete(cursorLocation, requestor);
-//		assertResults(
-//			"doit2A[FUNCTION_REF]{doit2A, Lpack.Util;, (II)V, doit2A, "+(R_DEFAULT + R_CASE + R_INTERESTING + R_NON_RESTRICTED + R_NON_STATIC) + "}\n" +
-//			"doit2B[FUNCTION_REF]{doit2B, Lpack.Util;, (I)V, doit2B, "+(R_DEFAULT + R_CASE + R_INTERESTING + R_NON_RESTRICTED + R_NON_STATIC) + "}\n" +
-//			"doit2C[FUNCTION_REF]{doit2C, Lpack.Util;, (I)V, doit2C, "+(R_DEFAULT + R_CASE + R_INTERESTING + R_NON_RESTRICTED + R_NON_STATIC) + "}",
-//			requestor.getResults());
-//	} finally {
-//		removeLibraryEntry(this.currentProject, new Path(jarName));
-//		deleteFile(new File(jarName));
-//	}
-//}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTestsRequestor.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTestsRequestor.java
deleted file mode 100644
index 3a8ba40..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTestsRequestor.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Vector;
-
-import org.eclipse.wst.jsdt.core.CompletionProposal;
-import org.eclipse.wst.jsdt.core.CompletionRequestor;
-import org.eclipse.wst.jsdt.core.Signature;
-
-public class CompletionTestsRequestor extends CompletionRequestor {
-	private Vector fElements = new Vector();
-	private Vector fCompletions = new Vector();
-	private Vector fRelevances = new Vector();
-	private Vector fCompletionStart = new Vector();
-	private Vector fCompletionEnd = new Vector();
-	
-	public boolean fDebug = false;
-
-	private void acceptCommon(CompletionProposal proposal) {
-		fCompletions.addElement(new String(proposal.getCompletion()));
-		fRelevances.addElement(String.valueOf(proposal.getRelevance()));
-		fCompletionStart.addElement(String.valueOf(proposal.getReplaceStart()));
-		fCompletionEnd.addElement(String.valueOf(proposal.getReplaceEnd()));
-	}
-	public void accept(CompletionProposal proposal) {
-		char[] typeName = null;
-		switch(proposal.getKind()) {
-			case CompletionProposal.ANONYMOUS_CLASS_DECLARATION :
-				typeName = Signature.getSignatureSimpleName(proposal.getDeclarationSignature());
-				fElements.addElement(new String(typeName));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("anonymous type " + new String(typeName));
-				break;
-				
-			case CompletionProposal.TYPE_REF :
-				typeName = Signature.getSignatureSimpleName(proposal.getSignature());
-				fElements.addElement(new String(typeName));
-				this.acceptCommon(proposal);
-				if (fDebug) {
-					if(Signature.getTypeSignatureKind(proposal.getSignature()) == Signature.TYPE_VARIABLE_SIGNATURE) {
-						System.out.println("type parameter " + new String(typeName));
-					} else {
-						System.out.println("Class " + new String(typeName));
-					}
-				}
-				break;
-				
-			case CompletionProposal.FIELD_REF :
-				fElements.addElement(new String(proposal.getName()));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("Field " + new String(proposal.getName()));
-				break;
-				
-			case CompletionProposal.KEYWORD:
-				fElements.addElement(new String(proposal.getName()));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("Keyword " + new String(proposal.getName()));
-				break;
-				
-			case CompletionProposal.LABEL_REF:
-				fElements.addElement(new String(proposal.getName()));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("Label " + new String(proposal.getName()));
-				break;
-				
-			case CompletionProposal.LOCAL_VARIABLE_REF:
-				fElements.addElement(new String(proposal.getName()));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("Local variable " + new String(proposal.getName()));
-				break;
-				
-			case CompletionProposal.METHOD_REF:
-				fElements.addElement(new String(proposal.getName()));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("method " + new String(proposal.getName()));
-				break;
-				
-			case CompletionProposal.METHOD_DECLARATION:
-				fElements.addElement(new String(proposal.getName()));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("method declaration " + new String(proposal.getName()));
-				break;
-				
-			case CompletionProposal.PACKAGE_REF:
-				fElements.addElement(new String(proposal.getDeclarationSignature()));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("package " + new String(proposal.getDeclarationSignature()));
-				break;
-				
-			case CompletionProposal.VARIABLE_DECLARATION:
-				fElements.addElement(new String(proposal.getName()));
-				this.acceptCommon(proposal);
-				if (fDebug)
-					System.out.println("variable name " + new String(proposal.getName()));
-				break;
-		}
-
-	}
-
-	public String getResults() {
-		return getResults(true, false);
-	}
-
-	public String getResultsWithPosition(){
-		return getResults(true, true);
-	}
-
-	public String getResults(boolean relevance, boolean position) {
-		StringBuffer result = new StringBuffer();
-		int size = fElements.size();
-		
-		if (size == 1) {
-			result.append(getResult(0, relevance, position));
-		} else if (size > 1) {
-			String[] sortedBucket = new String[size];
-			for (int i = 0; i < size; i++) {
-				sortedBucket[i] = getResult(i, relevance, position);
-			}
-			quickSort(sortedBucket, 0, size - 1);
-			for (int j = 0; j < sortedBucket.length; j++) {
-				if (result.length() > 0) result.append("\n");
-				result.append(sortedBucket[j]);
-			}
-		}
-
-		return result.toString();
-	}
-
-	private String getResult(int i, boolean relevance, boolean position) {
-		if(i < 0 || i >= fElements.size())
-			return "";
-		
-		StringBuffer buffer =  new StringBuffer();
-		buffer.append("element:");
-		buffer.append(fElements.elementAt(i));
-		buffer.append("    completion:");
-		buffer.append(fCompletions.elementAt(i));
-		if(position) {
-			buffer.append("    position:[");
-			buffer.append(fCompletionStart.elementAt(i));
-			buffer.append(",");
-			buffer.append(fCompletionEnd.elementAt(i));
-			buffer.append("]");
-		}
-		if(relevance) {
-			buffer.append("    relevance:");
-			buffer.append(fRelevances.elementAt(i));
-		}
-		return buffer.toString();
-	}
-
-	protected String[] quickSort(String[] collection, int left, int right) {
-		int original_left = left;
-		int original_right = right;
-		String mid = collection[ (left + right) / 2];
-		do {
-			while (mid.compareTo(collection[left]) > 0)
-				// s[left] >= mid
-				left++;
-			while (mid.compareTo(collection[right]) < 0)
-				// s[right] <= mid
-				right--;
-			if (left <= right) {
-				String tmp = collection[left];
-				collection[left] = collection[right];
-				collection[right] = tmp;
-				left++;
-				right--;
-			}
-		} while (left <= right);
-		if (original_left < right)
-			collection = quickSort(collection, original_left, right);
-		if (left < original_right)
-			collection = quickSort(collection, left, original_right);
-		return collection;
-	}
-	public String toString() {
-		return getResults();
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTestsRequestor2.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTestsRequestor2.java
deleted file mode 100644
index 158c21d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionTestsRequestor2.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.wst.jsdt.core.CompletionContext;
-import org.eclipse.wst.jsdt.core.CompletionProposal;
-import org.eclipse.wst.jsdt.core.CompletionRequestor;
-import org.eclipse.wst.jsdt.core.Signature;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-
-public class CompletionTestsRequestor2 extends CompletionRequestor {
-	private final char[] NULL_LITERAL = "null".toCharArray();//$NON-NLS-1$
-	
-	private CompletionContext context;
-	public int proposalsPtr = -1;
-	private final static int PROPOSALS_INCREMENT = 10;
-	private CompletionProposal[] proposals = new CompletionProposal[PROPOSALS_INCREMENT];
-	private IProblem problem;
-	
-	private boolean showParameterNames;
-	private boolean showUniqueKeys;
-	private boolean showPositions;
-	private boolean shortContext;
-	private boolean showMissingTypes;
-	
-	public boolean fDebug = false;
-
-	public CompletionTestsRequestor2() {
-		this(false, false);
-	}
-	public CompletionTestsRequestor2(boolean showParamNames) {
-		this(showParamNames, false, false);
-	}
-	public CompletionTestsRequestor2(boolean showParamNames, boolean showUniqueKeys) {
-		this(showParamNames, showUniqueKeys, false);
-	}
-	public CompletionTestsRequestor2(boolean showParamNames, boolean showUniqueKeys, boolean showPositions) {
-		this(showParamNames, showUniqueKeys, showPositions, true, false);
-	}
-	
-	public CompletionTestsRequestor2(boolean showParamNames, boolean showUniqueKeys, boolean showPositions, boolean shortContext) {
-		this(showParamNames, showUniqueKeys, showPositions, shortContext, false);
-	}
-	public CompletionTestsRequestor2(boolean showParamNames, boolean showUniqueKeys, boolean showPositions, boolean shortContext, boolean showMissingTypes) {
-		this.showParameterNames = showParamNames;
-		this.showUniqueKeys = showUniqueKeys;
-		this.showPositions = showPositions;
-		this.shortContext = shortContext;
-		this.showMissingTypes = showMissingTypes;
-	}
-	public void acceptContext(CompletionContext cc) {
-		this.context = cc;
-	}
-	public void accept(CompletionProposal proposal) {
-		int length = this.proposals.length;
-		if (++this.proposalsPtr== length) {
-			System.arraycopy(this.proposals, 0, this.proposals = new CompletionProposal[length+PROPOSALS_INCREMENT], 0, length);
-		}
-		this.proposals[this.proposalsPtr] = proposal;
-	}
-	
-	public void allowAllRequiredProposals() {
-		for (int i = CompletionProposal.ANONYMOUS_CLASS_DECLARATION; i <= CompletionProposal.TYPE_IMPORT; i++) {
-			for (int j = CompletionProposal.ANONYMOUS_CLASS_DECLARATION; j <= CompletionProposal.TYPE_IMPORT; j++) {
-				this.setAllowsRequiredProposals(i, j, true);
-			}
-		}
-	}
-
-	public void completionFailure(IProblem p) {
-		this.problem = p;
-	}
-	
-	public String getContext() {
-		if(this.context == null) return "";
-		
-		StringBuffer buffer = new StringBuffer();
-		
-		if(!this.shortContext) {
-			buffer.append("completion offset=");
-			buffer.append(context.getOffset());
-			buffer.append('\n');
-			
-			buffer.append("completion range=[");
-			buffer.append(context.getTokenStart());
-			buffer.append(", ");
-			buffer.append(context.getTokenEnd());
-			buffer.append("]\n");
-			
-			char[] token = context.getToken();
-			buffer.append("completion token=");
-			if(token == null) {
-				buffer.append("null");
-			} else {
-				buffer.append('\"');
-				buffer.append(token);
-				buffer.append('\"');
-			}
-			buffer.append('\n');
-			
-			buffer.append("completion token kind=");
-			int tokenKind = context.getTokenKind();
-			if(tokenKind == CompletionContext.TOKEN_KIND_STRING_LITERAL) {
-				buffer.append("TOKEN_KIND_STRING_LITERAL");
-			} else if(tokenKind == CompletionContext.TOKEN_KIND_NAME) {
-				buffer.append("TOKEN_KIND_NAME");
-			} else {
-				buffer.append("TOKEN_KIND_UNKNOWN");
-			}
-			buffer.append('\n');
-		}
-		char[][] expectedTypesSignatures = this.context.getExpectedTypesSignatures();
-		buffer.append("expectedTypesSignatures=");
-		if(expectedTypesSignatures == null) {
-			buffer.append(NULL_LITERAL);
-		} else {
-			buffer.append('{');
-			for (int i = 0; i < expectedTypesSignatures.length; i++) {
-				if(i > 0) buffer.append(',');
-				buffer.append(expectedTypesSignatures[i]);
-				
-			}
-			buffer.append('}');
-		}
-		buffer.append('\n');
-		
-		char[][] expectedTypesKeys = this.context.getExpectedTypesKeys();
-		buffer.append("expectedTypesKeys=");
-		if(expectedTypesSignatures == null) {
-			buffer.append(NULL_LITERAL);
-		} else {
-			buffer.append('{');
-			for (int i = 0; i < expectedTypesKeys.length; i++) {
-				if(i > 0) buffer.append(',');
-				buffer.append(expectedTypesKeys[i]);
-				
-			}
-			buffer.append('}');
-		}
-		//buffer.append('\n');
-		
-		
-		return buffer.toString();
-	}
-	public String getProblem() {
-		return this.problem == null ? "" : this.problem.getMessage();
-	}
-
-	/*
-	 * Get sorted results in ascending order
-	 */
-	public String getResults() {
-		if(this.proposalsPtr < 0) return "";
-		quickSort(this.proposals, 0, this.proposalsPtr);
-		return getResultsWithoutSorting();
-	}
-
-	/*
-	 * Get sorted results in ascending order
-	 */
-	public String getReversedResults() {
-		if(this.proposalsPtr < 0) return "";
-		Arrays.sort(this.proposals, new Comparator() {
-			public int compare(Object o1, Object o2) {
-				if (o1 instanceof CompletionProposal && o2 instanceof CompletionProposal) {
-					CompletionProposal p1 = (CompletionProposal) o1;
-					CompletionProposal p2 = (CompletionProposal) o2;
-					int relDif = p2.getRelevance() - p1.getRelevance();
-					if(relDif != 0)  return relDif;
-					String name1 = getElementName(p1);
-					String name2 = getElementName(p2);
-					return name1.compareTo(name2);
-				}
-				return -1;
-			}
-		});
-		return getResultsWithoutSorting();
-	}
-	
-	/*
-	 * Get unsorted results (ie. same order as they were accepted by requestor)
-	 */
-	public String getResultsWithoutSorting() {
-		if(this.proposalsPtr < 0) return "";
-		StringBuffer buffer = printProposal(this.proposals[0]);
-		for(int i = 1; i <=this.proposalsPtr; i++) {
-			if(i > 0) buffer.append('\n');
-			buffer.append(printProposal(this.proposals[i]));
-		}
-		return buffer.toString();
-	}
-	public String[] getStringsResult() {
-		if(this.proposalsPtr < 0) {
-			return new String[0];
-		}
-		String[] strings = new String[this.proposalsPtr+1];
-		for (int i=0; i<=this.proposalsPtr; i++) {
-			strings[i] =  printProposal(this.proposals[i]).toString();
-		}
-		return strings;
-	}
-
-	protected StringBuffer printProposal(CompletionProposal proposal) {
-		StringBuffer buffer = new StringBuffer();
-		return printProposal(proposal, 0, buffer);
-	}
-	
-	protected StringBuffer printProposal(CompletionProposal proposal, int tab, StringBuffer buffer) {
-		for (int i = 0; i < tab; i++) {
-			buffer.append("   "); //$NON-NLS-1$
-		}
-		buffer.append(getElementName(proposal));
-		buffer.append('[');
-		switch(proposal.getKind()) {
-			case CompletionProposal.ANONYMOUS_CLASS_DECLARATION :
-				buffer.append("ANONYMOUS_CLASS_DECLARATION"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.FIELD_REF :
-				buffer.append("FIELD_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.KEYWORD :
-				buffer.append("KEYWORD"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.LABEL_REF :
-				buffer.append("LABEL_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.LOCAL_VARIABLE_REF :
-				buffer.append("LOCAL_VARIABLE_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.METHOD_DECLARATION :
-				buffer.append("FUNCTION_DECLARATION"); //$NON-NLS-1$
-				if(proposal.isConstructor()) {
-					buffer.append("<CONSTRUCTOR>"); //$NON-NLS-1$
-				}
-				break;
-			case CompletionProposal.METHOD_REF :
-				buffer.append("FUNCTION_REF"); //$NON-NLS-1$
-				if(proposal.isConstructor()) {
-					buffer.append("<CONSTRUCTOR>"); //$NON-NLS-1$
-				}
-				break;
-			case CompletionProposal.PACKAGE_REF :
-				buffer.append("PACKAGE_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.TYPE_REF :
-				buffer.append("TYPE_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.VARIABLE_DECLARATION :
-				buffer.append("VARIABLE_DECLARATION"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.POTENTIAL_METHOD_DECLARATION :
-				buffer.append("POTENTIAL_METHOD_DECLARATION"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.METHOD_NAME_REFERENCE :
-				buffer.append("METHOD_IMPORT"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.JSDOC_BLOCK_TAG :
-				buffer.append("JSDOC_BLOCK_TAG"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.JSDOC_INLINE_TAG :
-				buffer.append("JSDOC_INLINE_TAG"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.JSDOC_FIELD_REF:
-				buffer.append("JSDOC_FIELD_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.JSDOC_METHOD_REF :
-				buffer.append("JSDOC_METHOD_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.JSDOC_TYPE_REF :
-				buffer.append("JSDOC_TYPE_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.JSDOC_PARAM_REF :
-				buffer.append("JSDOC_PARAM_REF"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.FIELD_IMPORT :
-				buffer.append("FIELD_IMPORT"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.METHOD_IMPORT :
-				buffer.append("METHOD_IMPORT"); //$NON-NLS-1$
-				break;
-			case CompletionProposal.TYPE_IMPORT :
-				buffer.append("TYPE_IMPORT"); //$NON-NLS-1$
-				break;
-			default :
-				buffer.append("PROPOSAL"); //$NON-NLS-1$
-				break;
-				
-		}
-		buffer.append("]{");
-		buffer.append(proposal.getCompletion() == null ? NULL_LITERAL : proposal.getCompletion());
-		buffer.append(", ");
-		buffer.append(proposal.getDeclarationSignature() == null ? NULL_LITERAL : proposal.getDeclarationSignature());  
-		buffer.append(", ");
-		buffer.append(proposal.getSignature() == null ? NULL_LITERAL : proposal.getSignature());
-		if(this.showUniqueKeys) {
-			buffer.append(", ");
-			buffer.append(proposal.getDeclarationKey() == null ? NULL_LITERAL : proposal.getDeclarationKey());
-			buffer.append(", ");
-			buffer.append(proposal.getKey() == null ? NULL_LITERAL : proposal.getKey());
-		}
-		buffer.append(", ");
-		buffer.append(proposal.getName() == null ? NULL_LITERAL : proposal.getName());
-		if(this.showParameterNames) {
-			char[][] parameterNames = proposal.findParameterNames(null);
-			buffer.append(", ");
-			if(parameterNames == null || parameterNames.length <= 0) {
-				buffer.append(NULL_LITERAL);
-			} else {
-				buffer.append("(");
-				for (int i = 0; i < parameterNames.length; i++) {
-					if(i > 0) buffer.append(", ");
-					buffer.append(parameterNames[i]);
-				}
-				buffer.append(")");
-			}
-		}
-		if(this.showPositions) {
-			buffer.append(", [");
-			buffer.append(proposal.getReplaceStart());
-			buffer.append(", ");
-			buffer.append(proposal.getReplaceEnd());
-			buffer.append("]");
-		}
-		buffer.append(", ");
-		buffer.append(proposal.getRelevance());
-		buffer.append('}');
-		if(this.showMissingTypes) {
-			CompletionProposal[] requiredProposals = proposal.getRequiredProposals();
-			if (requiredProposals != null) {
-				int length = requiredProposals.length;
-				System.arraycopy(requiredProposals, 0, requiredProposals = new CompletionProposal[length], 0, length);
-				quickSort(requiredProposals, 0, length - 1);
-				for (int i = 0; i < length; i++) {
-					buffer.append('\n');
-					printProposal(requiredProposals[i], tab + 1, buffer);
-				}
-			}
-		}
-		return buffer;
-	}
-
-	protected CompletionProposal[] quickSort(CompletionProposal[] collection, int left, int right) {
-		int original_left = left;
-		int original_right = right;
-		CompletionProposal mid = collection[ (left + right) / 2];
-		do {
-			while (compare(mid, collection[left]) > 0)
-				// s[left] >= mid
-				left++;
-			while (compare(mid, collection[right]) < 0)
-				// s[right] <= mid
-				right--;
-			if (left <= right) {
-				CompletionProposal tmp = collection[left];
-				collection[left] = collection[right];
-				collection[right] = tmp;
-				left++;
-				right--;
-			}
-		} while (left <= right);
-		if (original_left < right)
-			collection = quickSort(collection, original_left, right);
-		if (left < original_right)
-			collection = quickSort(collection, left, original_right);
-		return collection;
-	}
-	
-	protected int compare(CompletionProposal proposal1, CompletionProposal proposal2) {
-		int relDif = proposal1.getRelevance() - proposal2.getRelevance();
-		if(relDif != 0) return relDif;
-		String name1 = getElementName(proposal1);
-		String name2 = getElementName(proposal2);
-		int nameDif = name1.compareTo(name2);
-		if(nameDif != 0) return nameDif;
-		int kindDif = proposal1.getKind() - proposal2.getKind();
-		if(kindDif != 0) return kindDif;
-		String completion1 = new String(proposal1.getCompletion());
-		String completion2 = new String(proposal2.getCompletion());
-		int completionDif = completion1.compareTo(completion2);
-		if(completionDif != 0) return completionDif;
-		char[] temp = proposal1.getSignature();
-		String signature1 = temp == null ? null: new String(temp);
-		temp = proposal2.getSignature();
-		String signature2 = temp == null ? null: new String(temp);
-		int signatureDif = 0;
-		if(signature1 != null && signature2 != null) {
-			signatureDif = signature1.compareTo(signature2);
-		}
-		if(signatureDif != 0) return signatureDif;
-		temp = proposal1.getDeclarationSignature();
-		String declarationSignature1 = temp == null ? null: new String(temp);
-		temp = proposal2.getDeclarationSignature();
-		String declarationSignature2 = temp == null ? null: new String(temp);
-		int declarationSignatureDif = 0;
-		if(declarationSignature1 != null && declarationSignature2 != null) {
-			declarationSignatureDif = declarationSignature1.compareTo(declarationSignature2);
-		}
-		if(declarationSignatureDif != 0) return declarationSignatureDif;
-		return 0;
-	}
-	
-	protected String getElementName(CompletionProposal proposal) {
-		switch(proposal.getKind()) {
-			case CompletionProposal.ANONYMOUS_CLASS_DECLARATION :
-				return new String(Signature.getSignatureSimpleName(proposal.getDeclarationSignature()));
-			case CompletionProposal.TYPE_REF :
-			case CompletionProposal.TYPE_IMPORT :
-			case CompletionProposal.JSDOC_TYPE_REF :
-				return new String(Signature.getSignatureSimpleName(proposal.getSignature()));
-			case CompletionProposal.FIELD_REF :
-			case CompletionProposal.KEYWORD:
-			case CompletionProposal.LABEL_REF:
-			case CompletionProposal.LOCAL_VARIABLE_REF:
-			case CompletionProposal.METHOD_REF:
-			case CompletionProposal.METHOD_DECLARATION:
-			case CompletionProposal.VARIABLE_DECLARATION:
-			case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
-			case CompletionProposal.METHOD_NAME_REFERENCE:
-			case CompletionProposal.JSDOC_BLOCK_TAG :
-			case CompletionProposal.JSDOC_INLINE_TAG :
-			case CompletionProposal.JSDOC_FIELD_REF:
-			case CompletionProposal.JSDOC_METHOD_REF :
-			case CompletionProposal.JSDOC_PARAM_REF :
-			case CompletionProposal.FIELD_IMPORT :
-			case CompletionProposal.METHOD_IMPORT :
-				return new String(proposal.getName());
-			case CompletionProposal.PACKAGE_REF:
-				return new String(proposal.getDeclarationSignature());	
-		}
-		return "";
-	}
-	public String toString() {
-		return getResults();
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests.java
deleted file mode 100644
index 28c5df6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests.java
+++ /dev/null
@@ -1,1415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Hashtable;
-
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-import junit.framework.*;
-
-public class CompletionWithMissingTypesTests extends AbstractJavaModelCompletionTests implements RelevanceConstants {
-
-public CompletionWithMissingTypesTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	if (COMPLETION_PROJECT == null)  {
-		COMPLETION_PROJECT = setUpJavaProject("Completion");
-	} else {
-		setUpProjectCompliance(COMPLETION_PROJECT, "1.4");
-	}
-	super.setUpSuite();
-}
-public void tearDownSuite() throws Exception {
-	super.tearDownSuite();
-}
-static {
-//	TESTS_NAMES = new String[] { "testZZZ"};
-}
-public static Test suite() {
-	return buildModelTestSuite(CompletionWithMissingTypesTests.class);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0001() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0002() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public int bar;\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FIELD_REF]{bar, Lmissing.MissingType;, I, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0003() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType extends SuperType {\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/SuperType.js",
-		"package missing;"+
-		"public class SuperType {\n" + 
-		"  public int bar;\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FIELD_REF]{bar, Lmissing.SuperType;, I, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0004() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType[] m = null;\n" + 
- 		"    m.\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {};\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int relevance2 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.") + "m.".length();
-	int end1 = start1;
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"length[FIELD_REF]{length, [Lmissing.MissingType;, I, length, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"clone[FUNCTION_REF]{clone(), [Lmissing.MissingType;, ()Ljava.lang.Object;, clone, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"equals[FUNCTION_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, (J)V, wait, (millis), ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}\n" +
-			"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0005() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m;\n" + 
-		"  void foo() {\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0006() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m;\n" + 
-		"  public class Test1 {\n" + 
-		"    void foo() {\n" + 
- 		"      m.b\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0007() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m;\n" + 
-		"  public class Test1 extends test.SuperType {\n" + 
-		"    void foo() {\n" + 
- 		"      m.e\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/SuperType.js",
-		"package test;"+
-		"public class SuperType {\n" + 
-		"  public Object m;\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.e";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("m.e") + "m.".length();
-	int end1 = start1 + "e".length();
-	assertResults(
-			"equals[FUNCTION_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), ["+start1+", "+end1+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0008() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m;\n" + 
-		"  public class Test1 extends test.SuperType {\n" + 
-		"    void foo() {\n" + 
- 		"      m.b\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/SuperType.js",
-		"package test;"+
-		"public class SuperType {\n" + 
-		"  public Object m;\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0009() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/missing2/MissingType.js",
-		"package missing2;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"bar[FUNCTION_REF]{bar(), Lmissing2.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing2.MissingType, missing2, Lmissing2.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0010() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingMemberType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public class MissingMemberType {\n" + 
-		"    public void bar() {}\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingMemberType");
-	int end2 = start2 + "MissingMemberType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType$MissingMemberType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType.MissingMemberType[TYPE_REF]{missing.MissingType.MissingMemberType, missing, Lmissing.MissingType$MissingMemberType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0011() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m() {return null;}\n" + 
-		"  void foo() {\n" + 
- 		"    m().b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m().b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m().b") + "m().".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0012() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m(int i) {return null;}\n" + 
-		"  void foo() {\n" + 
- 		"    m(0).b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = ".b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m(0).b") + "m(0).".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0013() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m() {return null;}\n" + 
-		"  public class Inner extends missing.SuperType{\n" + 
-		"    void foo() {\n" + 
- 		"      m().e\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/SuperType.js",
-		"package missing;"+
-		"public class SuperType {\n" + 
-		"  public Object m() {return null;}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m().e";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED;
-	int start1 = str.lastIndexOf("m().e") + "m().".length();
-	int end1 = start1 + "e".length();
-	assertResults(
-			"equals[FUNCTION_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), ["+start1+", "+end1+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0014() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m() {return null;}\n" + 
-		"  public class Inner extends missing.SuperType{\n" + 
-		"    void foo() {\n" + 
- 		"      m().b\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/SuperType.js",
-		"package missing;"+
-		"public class SuperType {\n" + 
-		"  public Object m() {return null;}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m().b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0015() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m() {return null;}\n" + 
-		"  public class Inner extends missing.SuperType{\n" + 
-		"    void foo() {\n" + 
- 		"      m().b\n" + 
-		"    }\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/SuperType.js",
-		"package missing;"+
-		"public class SuperType {\n" + 
-		"  public Object m(int i) {return null;}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m().b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m().b") + "m().".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0016() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType.MissingMemberType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public class MissingMemberType {\n" + 
-		"    public void bar() {}\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType$MissingMemberType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0017() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    missing2.MissingType.MissingMemberType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing1/missing2/MissingType.js",
-		"package missing1.missing2;"+
-		"public class MissingType {\n" + 
-		"  public class MissingMemberType {\n" + 
-		"    public void bar() {}\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0018() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    missing2.missing3.MissingType.MissingMemberType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing1/missing2/missing3/MissingType.js",
-		"package missing1.missing2.missing3;"+
-		"public class MissingType {\n" + 
-		"  public class MissingMemberType {\n" + 
-		"    public void bar() {}\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0019() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType.MissingMemberType[] m = null;\n" + 
- 		"    m.e\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public class MissingMemberType {\n" + 
-		"    public void bar() {}\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.e";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.e") + "m.".length();
-	int end1 = start1 + "e".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"equals[FUNCTION_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0020() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/test/Test.js",
-			"package test;\n"+
-			"public class Test {\n"+
-			"	void foo() {\n"+
-			"		MissingMemberType m = null;\n"+
-			"		m.b\n"+
-			"	}\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/missing/MissingType.js",
-			"package missing;"+
-			"public class MissingType {\n" + 
-			"  /** @deprecated */\n" + 
-			"  public class MissingMemberType {\n" + 
-			"    public void bar() {}\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "m.b";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-		int start1 = str.lastIndexOf("m.b") + "m.".length();
-		int end1 = start1 + "b".length();
-		int start2 = str.lastIndexOf("MissingMemberType");
-		int end2 = start2 + "MissingMemberType".length();
-		assertResults(
-				"bar[FUNCTION_REF]{bar(), Lmissing.MissingType$MissingMemberType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-				"   MissingType.MissingMemberType[TYPE_REF]{missing.MissingType.MissingMemberType, missing, Lmissing.MissingType$MissingMemberType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0021() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/test/Test.js",
-			"package test;\n"+
-			"public class Test {\n"+
-			"	void foo() {\n"+
-			"		MissingMemberType m = null;\n"+
-			"		m.b\n"+
-			"	}\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/missing/MissingType.js",
-			"package missing;"+
-			"public class MissingType {\n" + 
-			"  /** @deprecated */\n" + 
-			"  public class MissingMemberType {\n" + 
-			"    public void bar() {}\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "m.b";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-		
-		assertResults(
-				"",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0022() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.DISABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/test/Test.js",
-			"package test;\n"+
-			"public class Test {\n"+
-			"	void foo() {\n"+
-			"		MissingMemberMemberType m = null;\n"+
-			"		m.b\n"+
-			"	}\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/missing/MissingType.js",
-			"package missing;"+
-			"public class MissingType {\n" + 
-			"  	/** @deprecated */\n" + 
-			"  public class MissingMemberType {\n" + 
-			"  	 public class MissingMemberMemberType {\n" + 
-			"      public void bar() {}\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "m.b";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-		int start1 = str.lastIndexOf("m.b") + "m.".length();
-		int end1 = start1 + "b".length();
-		int start2 = str.lastIndexOf("MissingMemberMemberType");
-		int end2 = start2 + "MissingMemberMemberType".length();
-		assertResults(
-				"bar[FUNCTION_REF]{bar(), Lmissing.MissingType$MissingMemberType$MissingMemberMemberType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-				"   MissingType.MissingMemberType.MissingMemberMemberType[TYPE_REF]{missing.MissingType.MissingMemberType.MissingMemberMemberType, missing, Lmissing.MissingType$MissingMemberType$MissingMemberMemberType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0023() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_DEPRECATION_CHECK, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/test/Test.js",
-			"package test;\n"+
-			"public class Test {\n"+
-			"	void foo() {\n"+
-			"		MissingMemberMemberType m = null;\n"+
-			"		m.b\n"+
-			"	}\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/missing/MissingType.js",
-			"package missing;"+
-			"public class MissingType {\n" + 
-			"  /** @deprecated */\n" + 
-			"  public class MissingMemberType {\n" + 
-			"  	 public class MissingMemberMemberType {\n" + 
-			"      public void bar() {}\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "m.b";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-		
-		assertResults(
-				"",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void _test0024() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, JavaScriptCore.DISABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/test/Test.js",
-			"package test;\n"+
-			"public class Test {\n"+
-			"	void foo() {\n"+
-			"		MissingMemberType m = null;\n"+
-			"		m.b\n"+
-			"	}\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/missing/MissingType.js",
-			"package missing;"+
-			"public class MissingType {\n" + 
-			"  private class MissingMemberType {\n" + 
-			"    public void bar() {}\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "m.b";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-		int start1 = str.lastIndexOf("m.b") + "m.".length();
-		int end1 = start1 + "b".length();
-		int start2 = str.lastIndexOf("MissingMemberType");
-		int end2 = start2 + "MissingMemberType".length();
-		assertResults(
-				"bar[FUNCTION_REF]{bar(), Lmissing.MissingType$MissingMemberType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-				"   MissingType.MissingMemberType[TYPE_REF]{missing.MissingType.MissingMemberType, missing, Lmissing.MissingType$MissingMemberType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0025() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/test/Test.js",
-			"package test;\n"+
-			"public class Test {\n"+
-			"	void foo() {\n"+
-			"		MissingMemberType m = null;\n"+
-			"		m.b\n"+
-			"	}\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/missing/MissingType.js",
-			"package missing;"+
-			"public class MissingType {\n" + 
-			"  private class MissingMemberType {\n" + 
-			"    public void bar() {}\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "m.b";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void _test0026() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, JavaScriptCore.DISABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/test/Test.js",
-			"package test;\n"+
-			"public class Test {\n"+
-			"	void foo() {\n"+
-			"		MissingMemberMemberType m = null;\n"+
-			"		m.b\n"+
-			"	}\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/missing/MissingType.js",
-			"package missing;"+
-			"public class MissingType {\n" + 
-			"  private class MissingMemberType {\n" + 
-			"  	 public class MissingMemberMemberType {\n" + 
-			"      public void bar() {}\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "m.b";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-		int start1 = str.lastIndexOf("m.b") + "m.".length();
-		int end1 = start1 + "b".length();
-		int start2 = str.lastIndexOf("MissingMemberMemberType");
-		int end2 = start2 + "MissingMemberMemberType".length();
-		assertResults(
-				"bar[FUNCTION_REF]{bar(), Lmissing.MissingType$MissingMemberType$MissingMemberMemberType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-				"   MissingType.MissingMemberType.MissingMemberMemberType[TYPE_REF]{missing.MissingType.MissingMemberType.MissingMemberMemberType, missing, Lmissing.MissingType$MissingMemberType$MissingMemberMemberType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0027() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	
-	try {
-		Hashtable options = new Hashtable(this.oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_VISIBILITY_CHECK, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.workingCopies[0] = getWorkingCopy(
-			"/Completion/src/test/Test.js",
-			"package test;\n"+
-			"public class Test {\n"+
-			"	void foo() {\n"+
-			"		MissingMemberMemberType m = null;\n"+
-			"		m.b\n"+
-			"	}\n"+
-			"}");
-		
-		this.workingCopies[1] = getWorkingCopy(
-			"/Completion/src/missing/MissingType.js",
-			"package missing;"+
-			"public class MissingType {\n" + 
-			"  private class MissingMemberType {\n" + 
-			"  	 public class MissingMemberMemberType {\n" + 
-			"      public void bar() {}\n" + 
-			"    }\n" + 
-			"  }\n" + 
-			"}\n");
-		
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		String str = this.workingCopies[0].getSource();
-		String completeBehind = "m.b";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-	
-		assertResults(
-				"",
-				requestor.getResults());
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0028() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"import known.KnownType;\n"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType m = null;\n" + 
- 		"    m.field.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public known.KnownType field\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/known/KnownType.js",
-		"package known;"+
-		"public class KnownType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.field.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0029() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"import known.KnownType;\n"+
-		"public class Test {\n" + 
-		"  MissingType m = null;\n" + 
-		"  void foo() {\n" + 
- 		"    m.field.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public known.KnownType field\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/known/KnownType.js",
-		"package known;"+
-		"public class KnownType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.field.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0030() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"import known.KnownType;\n"+
-		"public class Test {\n" + 
-		"  MissingType m(){return null;}\n" + 
-		"  void foo() {\n" + 
- 		"    m().field.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public known.KnownType field\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/known/KnownType.js",
-		"package known;"+
-		"public class KnownType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m().field.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test031() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"import known.KnownType;\n"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
-		"    MissingType m = null;\n" + 
- 		"    m.method().b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public known.KnownType method() {return null;}\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/known/KnownType.js",
-		"package known;"+
-		"public class KnownType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.method().b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0032() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"import known.KnownType;\n"+
-		"public class Test {\n" + 
-		"  MissingType m(){return null;}\n" + 
-		"  void foo() {\n" + 
- 		"    m().method().b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public known.KnownType method() {return null;}\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/test/known/KnownType.js",
-		"package known;"+
-		"public class KnownType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m().method().b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0033() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  /** @see MissingType#b */\n" + 
-		"  void foo() {\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar()\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "MissingType#b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests2.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests2.java
deleted file mode 100644
index 2e5980b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests2.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Hashtable;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-import junit.framework.*;
-
-public class CompletionWithMissingTypesTests2 extends ModifyingResourceTests implements RelevanceConstants {
-
-public CompletionWithMissingTypesTests2(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	setUpJavaProject("Completion");
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("Completion");
-	
-	super.tearDownSuite();
-}
-
-protected static void assertResults(String expected, String actual) {
-	try {
-		assertEquals(expected, actual);
-	} catch(ComparisonFailure c) {
-		System.out.println(actual);
-		System.out.println();
-		throw c;
-	}
-}
-static {
-//	TESTS_NAMES = new String[] { "testBug96950" };
-}
-public static Test suite() {
-	return buildModelTestSuite(CompletionWithMissingTypesTests2.class);
-}
-
-File createFile(File parent, String name, String content) throws IOException {
-	File file = new File(parent, name);
-	FileOutputStream out = new FileOutputStream(file);
-	out.write(content.getBytes());
-	out.close();
-	return file;
-}
-File createDirectory(File parent, String name) {
-	File dir = new File(parent, name);
-	dir.mkdirs();
-	return dir;
-}
-
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0001() throws Exception {
-	Hashtable oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-		options.put(JavaScriptCore.COMPILER_PB_DISCOURAGED_REFERENCE, JavaScriptCore.WARNING);
-		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-		JavaScriptCore.setOptions(options);
-		
-		// create variable
-//		JavaScriptCore.setClasspathVariables(
-//			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-//			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-//			null);
-
-		// create P1
-		this.createJavaProject(
-			"P1",
-			new String[]{"src"},
-			new String[]{"JCL_LIB"});
-		
-		this.createFolder("/P1/src/a");
-		this.createFile(
-				"/P1/src/a/XX.js",
-				"package a;\n"+
-				"public class XX {\n"+
-				"  void foo() {}\n"+
-				"}");
-
-		this.createFolder("/P1/src/b");
-		this.createFile(
-				"/P1/src/b/XX.js",
-				"package b;\n"+
-				"public class XX {\n"+
-				"  void foo() {}\n"+
-				"}");
-		
-		// create P2
-		this.createJavaProject(
-			"P2",
-			new String[]{"src"},
-			new String[]{"JCL_LIB"},
-			null,
-			null,
-			new String[]{"/P1"},
-			new String[][]{{}},
-			new String[][]{{"a/*"}},
-			new boolean[]{false},
-			null,
-			null,
-			"1.4");
-		this.createFile(
-			"/P2/src/YY.js",
-			"public class YY {\n"+
-			"  void foo() {\n"+
-			"    XX x = null;\n"+
-			"    x.fo\n"+
-			"  }\n"+
-			"}");
-		
-		waitUntilIndexesReady();
-		
-		// do completion
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-		
-		String str = cu.getSource();
-		String completeBehind = "x.fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-		
-		int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-		int start1 = str.lastIndexOf("x.fo") + "x.".length();
-		int end1 = start1 + "fo".length();
-		int start2 = str.lastIndexOf("XX");
-		int end2 = start2 + "XX".length();
-		assertResults(
-				"foo[FUNCTION_REF]{foo(), La.XX;, ()V, foo, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-				"   XX[TYPE_REF]{a.XX, a, La.XX;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-				"foo[FUNCTION_REF]{foo(), Lb.XX;, ()V, foo, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-				"   XX[TYPE_REF]{b.XX, b, Lb.XX;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-				requestor.getResults());
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0002() throws Exception {
-	Hashtable oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-		options.put(JavaScriptCore.COMPILER_PB_DISCOURAGED_REFERENCE, JavaScriptCore.WARNING);
-		options.put(JavaScriptCore.CODEASSIST_FORBIDDEN_REFERENCE_CHECK, JavaScriptCore.ENABLED);
-		options.put(JavaScriptCore.CODEASSIST_DISCOURAGED_REFERENCE_CHECK, JavaScriptCore.DISABLED);
-		JavaScriptCore.setOptions(options);
-		
-		// create variable
-//		JavaScriptCore.setClasspathVariables(
-//			new String[] {"JCL_LIB", "JCL_SRC", "JCL_SRCROOT"},
-//			new IPath[] {getExternalJCLPath(), getExternalJCLSourcePath(), getExternalJCLRootSourcePath()},
-//			null);
-
-		// create P1
-		this.createJavaProject(
-			"P1",
-			new String[]{"src"},
-			new String[]{"JCL_LIB"});
-		
-		this.createFolder("/P1/src/a");
-		this.createFile(
-				"/P1/src/a/XX.js",
-				"package a;\n"+
-				"public class XX {\n"+
-				"  void foo() {}\n"+
-				"}");
-
-		this.createFolder("/P1/src/b");
-		this.createFile(
-				"/P1/src/b/XX.js",
-				"package b;\n"+
-				"public class XX {\n"+
-				"  void foo() {}\n"+
-				"}");
-		
-		// create P2
-		this.createJavaProject(
-			"P2",
-			new String[]{"src"},
-			new String[]{"JCL_LIB"},
-			null,
-			null,
-			new String[]{"/P1"},
-			new String[][]{{}},
-			new String[][]{{"a/*"}},
-			new boolean[]{false},
-			null,
-			null,
-			"1.4");
-		this.createFile(
-			"/P2/src/YY.js",
-			"public class YY {\n"+
-			"  void foo() {\n"+
-			"    XX x = null;\n"+
-			"    x.fo\n"+
-			"  }\n"+
-			"}");
-		
-		waitUntilIndexesReady();
-		
-		// do completion
-		CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-		requestor.allowAllRequiredProposals();
-		IJavaScriptUnit cu= getCompilationUnit("P2", "src", "", "YY.js");
-		
-		String str = cu.getSource();
-		String completeBehind = "x.fo";
-		int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-		cu.codeComplete(cursorLocation, requestor);
-		
-		int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-		int start1 = str.lastIndexOf("x.fo") + "x.".length();
-		int end1 = start1 + "fo".length();
-		int start2 = str.lastIndexOf("XX");
-		int end2 = start2 + "XX".length();
-		assertResults(
-				"foo[FUNCTION_REF]{foo(), Lb.XX;, ()V, foo, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-				"   XX[TYPE_REF]{b.XX, b, Lb.XX;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-				requestor.getResults());
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests_1_5.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests_1_5.java
deleted file mode 100644
index aefc2b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CompletionWithMissingTypesTests_1_5.java
+++ /dev/null
@@ -1,569 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-import junit.framework.*;
-
-public class CompletionWithMissingTypesTests_1_5 extends AbstractJavaModelCompletionTests implements RelevanceConstants {
-	static {
-//		TESTS_NAMES = new String[]{"test0040"};
-	}
-public CompletionWithMissingTypesTests_1_5(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	if (COMPLETION_PROJECT == null)  {
-		COMPLETION_PROJECT = setUpJavaProject("Completion", "1.5");
-	} else {
-		setUpProjectCompliance(COMPLETION_PROJECT, "1.5");
-	}
-	super.setUpSuite();
-}
-
-public void tearDownSuite() throws Exception {
-	super.tearDownSuite();
-}
-public static Test suite() {
-	return buildModelTestSuite(CompletionWithMissingTypesTests_1_5.class);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0001() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType<Object> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType<T> {\n" + 
-		"  public void bar() {};\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Ljava.lang.Object;>;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType<T>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;>;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0002() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType<MissingType2> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType<T> {\n" + 
-		"  public void bar() {};\n" + 
-		"  public void bar(T t) {};\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/missing/MissingType2.js",
-		"package missing;"+
-		"public class MissingType2 {\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType2");
-	int end2 = start2 + "MissingType2".length();
-	int start3 = str.lastIndexOf("MissingType<");
-	int end3 = start3 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing.MissingType2;>;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType2[TYPE_REF]{missing.MissingType2, missing, Lmissing.MissingType2;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"   MissingType<T>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;>;, null, null, ["+start3+", "+end3+"], " + (relevance1) + "}\n" +
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing.MissingType2;>;, (Lmissing.MissingType2;)V, bar, (t), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType2[TYPE_REF]{missing.MissingType2, missing, Lmissing.MissingType2;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"   MissingType<T>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;>;, null, null, ["+start3+", "+end3+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0003() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"import missing.MissingType;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType<MissingType2> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType<T> {\n" + 
-		"  public void bar() {};\n" + 
-		"  public void bar(T t) {};\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/missing/MissingType2.js",
-		"package missing;"+
-		"public class MissingType2 {\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType2");
-	int end2 = start2 + "MissingType2".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing.MissingType2;>;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType2[TYPE_REF]{missing.MissingType2, missing, Lmissing.MissingType2;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing.MissingType2;>;, (Lmissing.MissingType2;)V, bar, (t), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType2[TYPE_REF]{missing.MissingType2, missing, Lmissing.MissingType2;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0004() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"import missing.MissingType2;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType<MissingType2> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType<T> {\n" + 
-		"  public void bar() {};\n" + 
-		"  public void bar(T t) {};\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/missing/MissingType2.js",
-		"package missing;"+
-		"public class MissingType2 {\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType<");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing.MissingType2;>;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType<T>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;>;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing.MissingType2;>;, (Lmissing.MissingType2;)V, bar, (t), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType<T>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;>;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0005() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[6];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType<MissingType1, MissingType2> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType<T, U> {\n" + 
-		"  public void bar(T t, U u) {};\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/missing/MissingType1.js",
-		"package missing;"+
-		"public class MissingType1 {\n" + 
-		"}\n");
-	
-	this.workingCopies[3] = getWorkingCopy(
-		"/Completion/src/missing/MissingType2.js",
-		"package missing;"+
-		"public class MissingType2 {\n" + 
-		"}\n");
-	
-	this.workingCopies[4] = getWorkingCopy(
-		"/Completion/src/missing2/MissingType1.js",
-		"package missing2;"+
-		"public class MissingType1 {\n" + 
-		"}\n");
-	
-	this.workingCopies[5] = getWorkingCopy(
-		"/Completion/src/missing2/MissingType2.js",
-		"package missing2;"+
-		"public class MissingType2 {\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType1");
-	int end2 = start2 + "MissingType1".length();
-	int start3 = str.lastIndexOf("MissingType2");
-	int end3 = start3 + "MissingType2".length();
-	int start4 = str.lastIndexOf("MissingType<");
-	int end4 = start4 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing.MissingType1;Lmissing.MissingType2;>;, (Lmissing.MissingType1;Lmissing.MissingType2;)V, bar, (t, u), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType1[TYPE_REF]{missing.MissingType1, missing, Lmissing.MissingType1;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"   MissingType2[TYPE_REF]{missing.MissingType2, missing, Lmissing.MissingType2;, null, null, ["+start3+", "+end3+"], " + (relevance1) + "}\n" +
-			"   MissingType<T,U>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;TU;>;, null, null, ["+start4+", "+end4+"], " + (relevance1) + "}\n" +
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing.MissingType1;Lmissing2.MissingType2;>;, (Lmissing.MissingType1;Lmissing2.MissingType2;)V, bar, (t, u), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType1[TYPE_REF]{missing.MissingType1, missing, Lmissing.MissingType1;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"   MissingType2[TYPE_REF]{missing2.MissingType2, missing2, Lmissing2.MissingType2;, null, null, ["+start3+", "+end3+"], " + (relevance1) + "}\n" +
-			"   MissingType<T,U>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;TU;>;, null, null, ["+start4+", "+end4+"], " + (relevance1) + "}\n" +
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing2.MissingType1;Lmissing.MissingType2;>;, (Lmissing2.MissingType1;Lmissing.MissingType2;)V, bar, (t, u), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType1[TYPE_REF]{missing2.MissingType1, missing2, Lmissing2.MissingType1;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"   MissingType2[TYPE_REF]{missing.MissingType2, missing, Lmissing.MissingType2;, null, null, ["+start3+", "+end3+"], " + (relevance1) + "}\n" +
-			"   MissingType<T,U>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;TU;>;, null, null, ["+start4+", "+end4+"], " + (relevance1) + "}\n" +
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Lmissing2.MissingType1;Lmissing2.MissingType2;>;, (Lmissing2.MissingType1;Lmissing2.MissingType2;)V, bar, (t, u), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType1[TYPE_REF]{missing2.MissingType1, missing2, Lmissing2.MissingType1;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"   MissingType2[TYPE_REF]{missing2.MissingType2, missing2, Lmissing2.MissingType2;, null, null, ["+start3+", "+end3+"], " + (relevance1) + "}\n" +
-			"   MissingType<T,U>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;TU;>;, null, null, ["+start4+", "+end4+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0006() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  MissingType m(int ... i) {return null;}\n" + 
-		"  void foo() {\n" + 
- 		"    m(0, 0).b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {}\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = ".b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m(0, 0).b") + "m(0, 0).".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0007() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    AType<? extends MissingType> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/test/AType.js",
-		"package tezt;"+
-		"public class AType<T> {\n" + 
-		"  public void bar(T t) {};\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"}\n");
-	
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Ltest.AType<!+Lmissing.MissingType;>;, (!+Lmissing.MissingType;)V, bar, (t), ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0008() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType.MissingMemberType<Object> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType {\n" + 
-		"  public class MissingMemberType<T> {\n" + 
-		"    public void bar() {};\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType$MissingMemberType<Ljava.lang.Object;>;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0009() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    missing2.MissingType<Object> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing1/missing2/MissingType.js",
-		"package missing1.missing2;"+
-		"public class MissingType<T> {\n" + 
-		"  public void bar() {};\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0010() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType<Object>.MissingMemberType<Object> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType<T> {\n" + 
-		"  public class MissingMemberType<T> {\n" + 
-		"    public void bar() {};\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing.MissingType<Ljava.lang.Object;>.MissingMemberType<Ljava.lang.Object;>;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType<T>[TYPE_REF]{missing.MissingType, missing, Lmissing.MissingType<TT;>;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=44984
-public void test0011() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingMemberType<Object> m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing/MissingType.js",
-		"package missing;"+
-		"public class MissingType<T> {\n" + 
-		"  public class MissingMemberType<T> {\n" + 
-		"    public void bar() {};\n" + 
-		"  }\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	assertResults(
-			"",
-			requestor.getResults());
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=161204
-public void test0012() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src/test/Test.js",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
- 		"    MissingType m = null;\n" + 
- 		"    m.b\n" + 
-		"  }\n" + 
-		"}\n");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Completion/src/missing1/MissingType.js",
-		"package missing1;"+
-		"public class MissingType<T> {\n" + 
-		"  public void bar() {};\n" + 
-		"}\n");
-	
-	this.workingCopies[2] = getWorkingCopy(
-		"/Completion/src/missing2/MissingType.js",
-		"package missing2;"+
-		"public class MissingType {\n" + 
-		"  public void bar() {};\n" + 
-		"}\n");
-
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true, false, true, false, true);
-	requestor.allowAllRequiredProposals();
-	String str = this.workingCopies[0].getSource();
-	String completeBehind = "m.b";
-	int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
-	this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
-
-	int relevance1 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED;
-	int relevance2 = R_DEFAULT + R_INTERESTING + R_CASE + R_NON_STATIC + R_NON_RESTRICTED + R_NO_PROBLEMS;
-	int start1 = str.lastIndexOf("m.b") + "m.".length();
-	int end1 = start1 + "b".length();
-	int start2 = str.lastIndexOf("MissingType");
-	int end2 = start2 + "MissingType".length();
-	assertResults(
-			"bar[FUNCTION_REF]{bar(), Lmissing1.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance1) + "}\n" +
-			"   MissingType<T>[TYPE_REF]{missing1.MissingType, missing1, Lmissing1.MissingType<TT;>;, null, null, ["+start2+", "+end2+"], " + (relevance1) + "}\n" +
-			"bar[FUNCTION_REF]{bar(), Lmissing2.MissingType;, ()V, bar, null, ["+start1+", "+end1+"], " + (relevance2) + "}\n" +
-			"   MissingType[TYPE_REF]{missing2.MissingType, missing2, Lmissing2.MissingType;, null, null, ["+start2+", "+end2+"], " + (relevance2) + "}",
-			requestor.getResults());
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ContainerInitializer.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ContainerInitializer.java
deleted file mode 100644
index 038c4a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ContainerInitializer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer;
-import org.eclipse.wst.jsdt.core.IJsGlobalScopeContainer;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.compiler.libraries.LibraryLocation;
-
-public class ContainerInitializer extends JsGlobalScopeContainerInitializer {
-	public static ITestInitializer initializer;
-	
-	public static interface ITestInitializer {
-		public void initialize(IPath containerPath, IJavaScriptProject project) throws CoreException;
-		public boolean allowFailureContainer();
-	}
-	
-	public static void setInitializer(ITestInitializer initializer) {
-		ContainerInitializer.initializer = initializer;
-	}
-	
-	public IJsGlobalScopeContainer getFailureContainer(IPath containerPath, IJavaScriptProject project) {
-		if (initializer == null || !initializer.allowFailureContainer()) return null;
-		return super.getFailureContainer(containerPath, project);
-	}
-	
-	public void initialize(IPath containerPath, IJavaScriptProject project) throws CoreException {
-		if (initializer == null) return;
-		initializer.initialize(containerPath, project);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.IJsGlobalScopeContainerInitialzer#getLibraryLocation()
-	 */
-	public LibraryLocation getLibraryLocation() {
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveElementsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveElementsTests.java
deleted file mode 100644
index 042c329..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveElementsTests.java
+++ /dev/null
@@ -1,2743 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.wst.jsdt.core.*;
-
-public class CopyMoveElementsTests extends CopyMoveTests {
-public CopyMoveElementsTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	IJavaScriptProject project = this.createJavaProject("BinaryProject", new String[] {"src"}, new String[] {"JCL_LIB"});
-	this.createFile(
-		"/BinaryProject/src/X.js",
-		"public class X {\n" +
-		"  int bar;\n" +
-		"  public void foo() {\n" +
-		"  }\n" +
-		"}"
-	);
-	project.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null);
-	waitForAutoBuild();
-}
-/**
- * Setup for the next test.
- */
-public void setUp() throws Exception {
-	super.setUp();
-	
-	this.createJavaProject("P", new String[] {"src"}, new String[] {"/BinaryProject/bin"});
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-	// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//		TESTS_PREFIX = "testCombineAccessRestrictions";
-//		TESTS_NAMES = new String[] {"testCopyFieldWithPositioning"};
-//		TESTS_NUMBERS = new int[] { 5, 6 };
-//		TESTS_RANGE = new int[] { 21, 38 };
-}
-public static Test suite() {
-	return buildModelTestSuite(CopyMoveElementsTests.class);
-}
-/**
- * Cleanup after the previous test.
- */
-public void tearDown() throws Exception {
-	this.deleteProject("P");
-	
-	super.tearDown();
-}
-public void tearDownSuite() throws Exception {
-	this.deleteProject("BinaryProject");
-	super.tearDownSuite();
-}
-/**
- * Ensures that a binary field cannot be renamed.
- */
-//public void testCopyBinaryField() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("P", "/BinaryProject/bin", "", "X.class");
-//	IField binaryField = cf.getType().getField("bar");
-//	copyNegative(binaryField, cf, null, "bar2", false, IJavaScriptModelStatusConstants.READ_ONLY);
-//}
-///**
-// * Ensures that a binary method cannot be renamed.
-// */
-//public void testCopyBinaryMethod() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("P", "/BinaryProject/bin", "", "X.class");
-//	IFunction binaryMethod = cf.getType().getMethod("foo", new String[] {});
-//	copyNegative(binaryMethod, cf, null, "foo2", false, IJavaScriptModelStatusConstants.READ_ONLY);
-//}
-///**
-// * Ensures that a binary type cannot be copied.
-// */
-//public void testCopyBinaryType() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("P", "/BinaryProject/bin", "", "X.class");
-//	IType binaryType = cf.getType();
-//	copyNegative(binaryType, cf, null, "Y", false, IJavaScriptModelStatusConstants.READ_ONLY);
-//}
-/**
- * Ensures that a constructor can be copied to a different type.  The constructor
- * should be automatically renamed to that of the destination type.
- */
-//public void testCopyConstructor() throws CoreException {
-//	this.createFile(
-//		"/P/src/X.js",
-//		"public class X {\n" +
-//		"  X(String s) {\n" +
-//		"  }\n" +
-//		"}"
-//	);
-//	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-//	IFunction methodSource = typeSource.getMethod("X", new String[] {"QString;"});
-//
-//	this.createFile(
-//		"/P/src/Y.js",
-//		"public class Y {\n" +
-//		"}"
-//	);
-//	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-//
-//	copyPositive(methodSource, typeDest, null, null, false);
-//}
-///**
-// * Ensures that a constructor can be copied to a different type across projects. 
-// * The constructor should be automatically renamed to that of the destination type.
-// */
-//public void testCopyConstructorInDifferentProject() throws CoreException {
-//	try {
-//		this.createFile(
-//			"/P/src/X.js",
-//			"public class X {\n" +
-//			"  X(String s) {\n" +
-//			"  }\n" +
-//			"}"
-//		);
-//		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-//		IFunction methodSource = typeSource.getMethod("X", new String[] {"QString;"});
-//	
-//		this.createJavaProject("P2", new String[] {"src"}, "bin");
-//		this.createFile(
-//			"/P2/src/Y.js",
-//			"public class Y {\n" +
-//			"}"
-//		);
-//		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-//	
-//		copyPositive(methodSource, typeDest, null, null, false);
-//
-//	} finally {
-//		this.deleteProject("P2");
-//	}
-//}
-/**
- * Ensures that a field can be copied to a different type.
- */
-public void testCopyField() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(fieldSource, typeDest, null, null, false);
-}
-/**
- * Ensures that a field can be copied to a different type replacing an existing field.
- */
-public void testCopyFieldForce() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  boolean foo;\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(fieldSource, typeDest, null, null, true);
-}
-/**
- * Ensures that a field can be copied to a different type across projects 
- * replacing an existing field.
- */
-public void testCopyFieldForceInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int bar;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("bar");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(fieldSource, typeDest, null, null, true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be copied to a different type in a different project.
- */
-public void testCopyFieldInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int bar;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("bar");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(fieldSource, typeDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be copied to a different type,
- * and renamed.
- */
-public void testCopyFieldRename() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(fieldSource, typeDest, null, "bar", false);
-}
-/**
- * Ensures that a field can be copied to a different type,
- * and renamed, overwriting an existing field.
- */
-public void testCopyFieldRenameForce() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  boolean bar;\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(fieldSource, typeDest, null, "bar", true);
-}
-/**
- * Ensures that a field can be copied to a different type across two different 
- * projects, and renamed, overwriting an existing field.
- */
-public void testCopyFieldRenameForceInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(fieldSource, typeDest, null, "bar", true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be copied to a different type across two different
- * projects, and renamed.
- */
-public void testCopyFieldRenameInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(fieldSource, typeDest, null, "bar", false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be duplicated in the same type.
- */
-public void testCopyFieldSameParent() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	copyPositive(fieldSource, typeSource, null, "bar", false);
-}
-/**
- * Ensures that a multi status exception is generated when copying fields.
- */
-public void testCopyFieldsMultiStatus() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"  Object bar;\n" +
-		"  char[] fred;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	IField[] fieldsSource = typeSource.getFields();
-	IJavaScriptElement[] dests = new IJavaScriptElement[fieldsSource.length];
-	for (int i = 0; i < dests.length; i++) {
-		dests[i] = typeDest;
-	}
-	dests[1] = fieldsSource[0]; //invalid destination
-	dests[2]=  fieldsSource[0];
-
-	try {
-		startDeltas();
-		boolean e= false;
-		try {
-			typeDest.getJavaScriptModel().copy(fieldsSource, dests, null, null, false, null);
-		} catch (JavaScriptModelException jme) {
-			assertTrue("Should be multistatus", jme.getStatus().isMultiStatus());
-			assertTrue("Should be an invalid destination", ((IJavaScriptModelStatus)jme.getStatus().getChildren()[0]).getCode()== IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-			e = true;
-		}
-		assertTrue("Should have been an exception", e);
-		
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	src[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			Y.js[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				Y[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					foo[+]: {}"
-		);
-
-		IJavaScriptElement copy= generateHandle(fieldsSource[0], null, typeDest);
-		assertTrue("Copy should exist", copy.exists());
-	} finally {
-		stopDeltas();
-	}
-}
-/**
- * Ensures that a multi status exception is generated when copying fields.
- */
-public void testCopyFieldsMultiStatusInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"  Object bar;\n" +
-			"  char[] fred;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		IField[] fieldsSource = typeSource.getFields();
-		IJavaScriptElement[] dests = new IJavaScriptElement[fieldsSource.length];
-		for (int i = 0; i < dests.length; i++) {
-			dests[i] = typeDest;
-		}
-		dests[1] = fieldsSource[0]; //invalid destination
-		dests[2]=  fieldsSource[0];
-
-		startDeltas();
-		boolean e= false;
-		try {
-			typeDest.getJavaScriptModel().copy(fieldsSource, dests, null, null, false, null);
-		} catch (JavaScriptModelException jme) {
-			assertTrue("Should be multistatus", jme.getStatus().isMultiStatus());
-			assertTrue("Should be an invalid destination", ((IJavaScriptModelStatus)jme.getStatus().getChildren()[0]).getCode()== IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-			e = true;
-		}
-		assertTrue("Should have been an exception", e);
-		
-		assertDeltas(
-			"Unexpected delta",
-			"P2[*]: {CHILDREN}\n" + 
-			"	src[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			Y.js[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				Y[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					foo[+]: {}"
-		);
-
-		IJavaScriptElement copy= generateHandle(fieldsSource[0], null, typeDest);
-		assertTrue("Copy should exist", copy.exists());
-	} finally {
-		stopDeltas();
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field cannot be copied to a different type replacing an existing field if
- * no force.
- */
-public void testCopyFieldWithCollision() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  boolean foo;\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyNegative(fieldSource, typeDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-/**
- * Ensures that a field cannot be copied to a different type across different projects
- * replacing an existing field if no force.
- */
-public void testCopyFieldWithCollisionInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int bar;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("bar");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyNegative(fieldSource, typeDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field cannot be copied to an invalid destination.
- */
-public void testCopyFieldWithInvalidDestination() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	IClassFile cf = getClassFile("P", "/BinaryProject/bin", "", "X.class");
-
-	copyNegative(fieldSource, cf.getType(), null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-}
-/**
- * Ensures that a field cannot be copied to an invalid destination.
- */
-public void testCopyFieldWithInvalidDestinationInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"}, new String[] {"/BinaryProject/bin"});
-		IClassFile cf = getClassFile("P2", "/BinaryProject/bin", "", "X.class");
-	
-		copyNegative(fieldSource, cf.getType(), null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field cannot be copied to a different type with an invalid sibling
- * used for positioning.
- */
-public void testCopyFieldWithInvalidPositioning() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyNegative(
-		fieldSource, 
-		typeDest, 
-		typeDest.getField("invalid"), 
-		null, 
-		false, 
-		IJavaScriptModelStatusConstants.INVALID_SIBLING);
-}
-/**
- * Ensures that a field cannot be copied to a different type with an invalid sibling
- * used for positioning.
- */
-public void testCopyFieldWithInvalidPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyNegative(
-			fieldSource, 
-			typeDest, 
-			typeDest.getField("invalid"), 
-			null, 
-			false, 
-			IJavaScriptModelStatusConstants.INVALID_SIBLING);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be copied to a different type with positioning.
- */
-public void testCopyFieldWithPositioning() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  boolean bar;\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(fieldSource, typeDest, typeDest.getField("bar"), null, false);
-}
-/**
- * Ensures that a field can be copied to a different type across different projects 
- * with positioning.
- */
-public void testCopyFieldWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(fieldSource, typeDest, typeDest.getField("bar"), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-
-/*
- * Ensures that an import can be copied to a different cu.
- */
-public void testCopyImport() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"import java.util.*;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IImportDeclaration importSource = getCompilationUnit("/P/src/X.js").getImport("java.util.*");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuDest = getCompilationUnit("/P/src/Y.js");
-
-	copyPositive(importSource, cuDest, null, null, false);
-}
-/*
- * Ensures that a static import can be copied to a different cu.
- */
-public void testCopyImportStatic() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"import static java.lang.Math;\n" +
-		"public class X {\n" +
-		"  int foo;\n" +
-		"  {\n" +
-		"    foo = 10;\n" +
-		"  }\n" +
-		"}"
-	);
-	IImportDeclaration importSource = getCompilationUnit("/P/src/X.js").getImport("java.lang.Math");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuDest = getCompilationUnit("/P/src/Y.js");
-
-	copyPositive(importSource, cuDest, null, null, false);
-	assertEquals("Copied import should be static", Flags.AccStatic, cuDest.getImport("java.lang.Math").getFlags());
-}
-
-/**
- * Ensures that a initializer can be copied to a different type.
- */
-public void testCopyInitializer() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"  {\n" +
-		"    foo = 10;\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IInitializer initializerSource= typeSource.getInitializer(1);
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(initializerSource, typeDest, null, null, false);
-}
-/**
- * Ensures that a initializer can be copied to a different type across two different
- * projects.
- */
-public void testCopyInitializerInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"  {\n" +
-			"    foo = 10;\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IInitializer initializerSource= typeSource.getInitializer(1);
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(initializerSource, typeDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a initializer cannot be copied and renamed.
- */
-public void testCopyInitializerRename() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"  {\n" +
-		"    foo = 10;\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IInitializer initializerSource= typeSource.getInitializer(1);
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyNegative(initializerSource, typeDest, null, "newName", false, IJavaScriptModelStatusConstants.INVALID_NAME);
-}
-/**
- * Ensures that a initializer cannot be copied and renamed.
- */
-public void testCopyInitializerRenameInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"  {\n" +
-			"    foo = 10;\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IInitializer initializerSource= typeSource.getInitializer(1);
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyNegative(initializerSource, typeDest, null, "newName", false, IJavaScriptModelStatusConstants.INVALID_NAME);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a initializer can be copied to a different type across two different
- * projects with positioning.
- */
-public void testCopyInitializerWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"  {\n" +
-			"    foo = 10;\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IInitializer initializerSource= typeSource.getInitializer(1);
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  int bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(initializerSource, typeDest, typeDest.getField("bar"), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that an inner type can be copied with positioning.
- */
-public void testCopyInnerTypeWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  class Inner {\n" +
-			"  }" +			
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X").getType("Inner");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void foo() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit cuDest = getCompilationUnit("/P2/src/Y.js");
-		IType typeDest = cuDest.getType("Y");
-	
-		copyPositive(typeSource,  typeDest, typeDest.getFunction("foo", new String[] {}), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a local type can be copied.
- */
-public void testCopyLocalType() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo() {\n" +
-		"    class Z {\n" +
-		"    }\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X").getFunction("foo", new String[0]).getType("Z", 1);
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuDest = getCompilationUnit("/P/src/Y.js");
-
-	copyPositive(typeSource,  cuDest, null, null, false);
-}
-/**
- * Ensures that a main type can be copied.
- */
-public void testCopyMainType() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuDest = getCompilationUnit("/P/src/Y.js");
-
-	copyPositive(typeSource,  cuDest, null, null, false);
-}
-/**
- * Ensures that a main type can be copied across two different projects.
- */
-public void testCopyMainTypeInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuDest = getCompilationUnit("/P2/src/Y.js");
-	
-		copyPositive(typeSource,  cuDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be copied to a different type.
- */
-public void testCopyMethod() throws CoreException{
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(methodSource, typeDest, null, null, false);
-}
-/**
- * Ensures that a method can be copied to a different type, forcing
- * an overwrite when there is a name collision
- */
-public void testCopyMethodForce() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  int foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(methodSource, typeDest, null, null, true);
-}
-/**
- * Ensures that a method can be copied to a different type across different projects, 
- * forcing an overwrite when there is a name collision
- */
-public void testCopyMethodForceInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  int foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(methodSource, typeDest, null, null, true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be copied to a different type across different projects.
- */
-public void testCopyMethodInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-
-		copyPositive(methodSource, typeDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be copied to a different type, renamed
- * simaltaneously.
- */
-public void testCopyMethodRename() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(methodSource, typeDest, null, "bar", false);
-}
-/**
- * Ensures that a method can be copied to a different type, renamed
- * simaltaneously, overwriting an existing method.
- */
-public void testCopyMethodRenameForce() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  void bar(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(methodSource, typeDest, null, "bar", true);
-}
-/**
- * Ensures that a method can be copied to a different type across different projects, 
- * renamed simaltaneously, overwriting an existing method.
- */
-public void testCopyMethodRenameForceInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void bar(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-
-		copyPositive(methodSource, typeDest, null, "bar", true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be copied to a different type across different projects, 
- * renamed simaltaneously.
- */
-public void testCopyMethodRenameInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(methodSource, typeDest, null, "bar", false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be copied to the same type, renamed
- * simaltaneously.
- */
-public void testCopyMethodSameParent() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	copyPositive(methodSource, typeSource, null, "bar", false);
-}
-/**
- * Ensures that a method cannot be copied to a different type, when not forcing
- * an overwrite when there is a name collision
- */
-public void testCopyMethodWithCollision() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyNegative(methodSource, typeDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-/**
- * Ensures that a method cannot be copied to a different type across different projects, 
- * when not forcing an overwrite when there is a name collision
- */
-public void testCopyMethodWithCollisionInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyNegative(methodSource, typeDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method cannot be copied to an invalid destination.
- */
-public void testCopyMethodWithInvalidDestination() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	copyNegative(methodSource, methodSource, null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-}
-/**
- * Ensures that a method cannot be copied to an invalid destination.
- */
-public void testCopyMethodWithInvalidDestinationInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource = typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void bar() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-		IFunction methodDest = typeDest.getFunction("bar", new String[] {});
-		
-		copyNegative(methodSource, methodDest, null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be copied to a different type  with positioning.
- */
-public void testCopyMethodWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource = typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(methodSource, typeDest, typeDest.getFunction("bar", new String[] {}), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that attempting to rename with an incorrect number of renamings fails
- */
-public void testCopyMoveWithInvalidRenamings() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource = typeSource.getFunction("foo", new String[]{});
-	copyNegative(
-		new IJavaScriptElement[] {methodSource}, 
-		new IJavaScriptElement[] {typeSource}, 
-		null, 
-		new String[] {"bar", "fred"}, 
-		false, 
-		IJavaScriptModelStatusConstants.INDEX_OUT_OF_BOUNDS);
-}
-/**
- * Ensures that a method with syntax errors can be copied to a different type.
- */
-public void testCopySyntaxErrorMethod() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s\n" + // syntax error
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	copyPositive(methodSource, typeDest, null, null, false);
-}
-/**
- * Ensures that a method with syntax errors can be copied to a different type across different
- * projects.
- */
-public void testCopySyntaxErrorMethodInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s\n" + // syntax error
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		copyPositive(methodSource, typeDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a type can be copied.
- */
-public void testCopyType() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"}\n" +
-		"class Z {\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("Z");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuDest = getCompilationUnit("/P/src/Y.js");
-
-	copyPositive(typeSource,  cuDest, null, null, false);
-}
-/**
- * Ensures that a type can be copied.
- */
-public void testCopyTypeInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"}\n" +
-			"class Z {\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("Z");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuDest = getCompilationUnit("/P2/src/Y.js");
-	
-		copyPositive(typeSource,  cuDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a type can be copied with positioning.
- */
-public void testCopyTypeWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"}\n" +
-			"class Z {\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("Z");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuDest = getCompilationUnit("/P2/src/Y.js");
-	
-		copyPositive(typeSource,  cuDest, cuDest.getType("Y"), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a constructor can be moved to a different type.  The constructor
- * should be automatically renamed to that of the destination type.
- */
-public void testMoveConstructor() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  X(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("X", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(methodSource, typeDest, null, null, false);
-	
-	// test that the constructor has been renamed
-	assertTrue(
-		"Constructor was not renamed", 
-		typeDest.getFunction("Y", new String[] {"QString;"}).exists());
-}
-/**
- * Ensures that a constructor can be moved to a different type across different projects. 
- * The constructor should be automatically renamed to that of the destination type.
- */
-public void testMoveConstructorInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  X(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("X", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(methodSource, typeDest, null, null, false);
-
-		// test that the constructor has been renamed
-		assertTrue(
-			"Constructor was not renamed", 
-			typeDest.getFunction("Y", new String[] {"QString;"}).exists());
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be moved to a different type.
- */
-public void testMoveField() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(fieldSource, typeDest, null, null, false);
-}
-/**
- * Ensures that a field can be moved to a different type replacing an existing field.
- */
-public void testMoveFieldForce() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  boolean foo;\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(fieldSource, typeDest, null, null, true);
-}
-/**
- * Ensures that a field can be moved to a different type across differnt projects 
- * replacing an existing field.
- */
-public void testMoveFieldForceInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int bar;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("bar");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(fieldSource, typeDest, null, null, true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be moved to a different type across differnt projects.
- */
-public void testMoveFieldInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int bar;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("bar");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(fieldSource, typeDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be moved to a different type,
- * and renamed.
- */
-public void testMoveFieldRename() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(fieldSource, typeDest, null, "fred", false);
-}
-/**
- * Ensures that a field can be moved to a different type,
- * and renamed, overwriting an existing field.
- */
-public void testMoveFieldRenameForce() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  boolean bar;\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(fieldSource, typeDest, null, "bar", true);
-}
-/**
- * Ensures that a field can be moved to a different type across differnt projects,
- * and renamed, overwriting an existing field.
- */
-public void testMoveFieldRenameForceInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(fieldSource, typeDest, null, "bar", true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be moved to a different type across different projects,
- * and renamed.
- */
-public void testMoveFieldRenameInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(fieldSource, typeDest, null, "bar", false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be copied to a different type across different projects 
- * with positioning.
- */
-public void testMoveFieldRenameForceWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"  char fred;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(fieldSource, typeDest, typeDest.getField("bar"), "fred", true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be moved in the same type.
- */
-public void testMoveFieldSameParent() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	movePositive(fieldSource, typeSource, null, "bar", false);
-}
-/**
- * Ensures that a field cannot be moved to a different type replacing an existing field if
- * not forced.
- */
-public void testMoveFieldWithCollision() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  boolean foo;\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	moveNegative(fieldSource, typeDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-/**
- * Ensures that a field cannot be moved to a different type across differnt projects
- * replacing an existing field if not forced.
- */
-public void testMoveFieldWithCollisionInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int bar;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("bar");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		moveNegative(fieldSource, typeDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field cannot be moved to an invalid destination
- */
-public void testMoveFieldWithInvalidDestination() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IField fieldSource= typeSource.getField("foo");
-
-	IClassFile cf = getClassFile("P", "/BinaryProject/bin", "", "X.class");
-
-	moveNegative(fieldSource, cf.getType(), null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-}
-/**
- * Ensures that a field cannot be moved to an invalid destination.
- */
-public void testMoveFieldWithInvalidDestinationInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"}, new String[] {"/BinaryProject/bin"});
-		IClassFile cf = getClassFile("P2", "/BinaryProject/bin", "", "X.class");
-	
-		moveNegative(fieldSource, cf.getType(), null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a field can be copied to a different type across different projects 
- * with positioning.
- */
-public void testMoveFieldWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IField fieldSource= typeSource.getField("foo");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(fieldSource, typeDest, typeDest.getField("bar"), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a initializer can be moved to a different type.
- */
-public void testMoveInitializer() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"  {\n" +
-		"    foo = 10;\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IInitializer initializerSource= typeSource.getInitializer(1);
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(initializerSource, typeDest, null, null, false);
-}
-/**
- * Ensures that a initializer can be copied to a different type that is in a different
- * projects=.
- */
-public void testMoveInitializerInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"  {\n" +
-			"    foo = 10;\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IInitializer initializerSource= typeSource.getInitializer(1);
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(initializerSource, typeDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a initializer cannot be moved and renamed.
- */
-public void testMoveInitializerRename() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  int foo;\n" +
-		"  {\n" +
-		"    foo = 10;\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IInitializer initializerSource= typeSource.getInitializer(1);
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	moveNegative(initializerSource, typeDest, null, "newName", false, IJavaScriptModelStatusConstants.INVALID_NAME);
-}
-/**
- * Ensures that a initializer cannot be moved and renamed.
- */
-public void testMoveInitializerRenameInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"  {\n" +
-			"    foo = 10;\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IInitializer initializerSource= typeSource.getInitializer(1);
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		moveNegative(initializerSource, typeDest, null, "newName", false, IJavaScriptModelStatusConstants.INVALID_NAME);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a initializer can be moved to a different type in a different project 
- * with positioning.
- */
-public void testMoveInitializerWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo;\n" +
-			"  {\n" +
-			"    foo = 10;\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IInitializer initializerSource= typeSource.getInitializer(1);
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  int bar;\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(initializerSource, typeDest, typeDest.getField("bar"), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that an inner type can be moved and renamed to a type that is in different project
- * with positioning.
- */
-public void testMoveInnerTypeRenameWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  class Inner {\n" +
-			"  }" +			
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X").getType("Inner");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void foo() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit cuDest = getCompilationUnit("/P2/src/Y.js");
-		IType typeDest = cuDest.getType("Y");
-
-		movePositive(typeSource,  typeDest, typeDest.getFunction("foo", new String[] {}), "T", false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that an inner type can be moved to a type that is in different project
- * with positioning.
- */
-public void testMoveInnerTypeWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  class Inner {\n" +
-			"  }" +			
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X").getType("Inner");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void foo() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit cuDest = getCompilationUnit("/P2/src/Y.js");
-		IType typeDest = cuDest.getType("Y");
-	
-		movePositive(typeSource,  typeDest, typeDest.getFunction("foo", new String[] {}), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that main types can be moved and renamed (within the same parent).
- */
-public void testMoveMainTypes() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"}"
-	);
-	IPackageFragment pkg = getPackage("/P/src");
-	IJavaScriptUnit cu = pkg.getJavaScriptUnit("X.js");
-	IType typeSource = cu.getType("X");
-
-	movePositive(
-		new IJavaScriptElement[] {typeSource}, 
-		new IJavaScriptElement[]{cu}, 
-		null, 
-		new String[] {"Y"}, 
-		false);
-
-	// test that both the compilation unit and the main type have been renamed.
-	IJavaScriptUnit renamedCU = pkg.getJavaScriptUnit("Y.js");
-	assertTrue("Renamed element should be present", renamedCU.getType("Y").exists());
-}
-/**
- * Ensures that a method can be moved to a different type.
- */
-public void testMoveMethod() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(methodSource, typeDest, null, null, false);
-}
-/**
- * Ensures that a method can be moved to a different type, forcing
- * an overwrite when there is a name collision
- */
-public void testMoveMethodForce() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  int foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(methodSource, typeDest, null, null, true);
-}
-/**
- * Ensures that a method can be moved to a different type across different projects,
- * forcing an overwrite when there is a name collision
- */
-public void testMoveMethodForceInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  int foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(methodSource, typeDest, null, null, true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be moved to a different type in a different project.
- */
-public void testMoveMethodInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-
-		movePositive(methodSource, typeDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be moved to a different type, renamed
- * simaltaneously.
- */
-public void testMoveMethodRename() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(methodSource, typeDest, null, "bar", false);
-}
-/**
- * Ensures that a method can be moved to a different type, renamed
- * simaltaneously, overwriting an existing method.
- */
-public void testMoveMethodRenameForce() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  void bar(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(methodSource, typeDest, null, "bar", true);
-}
-/**
- * Ensures that a method can be moved to a different type across different projects,
- * renamed simaltaneously, overwriting an existing method.
- */
-public void testMoveMethodRenameForceInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void bar(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-
-		movePositive(methodSource, typeDest, null, "bar", true);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be moved to a different type across different projects,
- * renamed simaltaneously.
- */
-public void testMoveMethodRenameInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(methodSource, typeDest, null, "bar", false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be moved and renamed to a different type across two different projects
- * with positioning.
- */
-public void testMoveMethodRenameWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource = typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(methodSource, typeDest, typeDest.getFunction("bar", new String[] {}), "fred", false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be moved to the same type.
- */
-public void testMoveMethodSameParent() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	movePositive(methodSource, typeSource, null, "bar", false);
-}
-/**
- * Ensures that a method moves can be cancelled.
- */
-public void testMoveMethodsWithCancel() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"  void bar() {\n" +
-		"  }\n" +
-		"}"
-	);
-	final IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	boolean isCanceled = false;
-	try {
-		TestProgressMonitor monitor = TestProgressMonitor.getInstance();
-		monitor.setCancelledCounter(1);
-		movePositive(typeSource.getFunctions(), new IJavaScriptElement[] {typeDest}, null, null, false, monitor);
-	} catch (OperationCanceledException e) {
-		isCanceled = true;
-	}
-	assertTrue("Operation should have thrown an operation canceled exception", isCanceled);
-}
-/**
- * Ensures that a method moves across differnt projects can be cancelled.
- */
-public void testMoveMethodsWithCancelInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"  void bar() {\n" +
-			"  }\n" +
-			"}"
-		);
-		final IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		boolean isCanceled = false;
-		try {
-			TestProgressMonitor monitor = TestProgressMonitor.getInstance();
-			monitor.setCancelledCounter(1);
-			movePositive(typeSource.getFunctions(), new IJavaScriptElement[] {typeDest}, null, null, false, monitor);
-		} catch (OperationCanceledException e) {
-			isCanceled = true;
-		}
-		assertTrue("Operation should have thrown an operation canceled exception", isCanceled);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method cannot be moved to a different type, when not forcing
- * an overwrite when there is a name collision
- */
-public void testMoveMethodWithCollision() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	moveNegative(methodSource, typeDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-/**
- * Ensures that a method cannot be moved to a different type, when not forcing
- * an overwrite when there is a name collision
- */
-public void testMoveMethodWithCollisionInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		moveNegative(methodSource, typeDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method cannot be moved to an invalid destination.
- */
-public void testMoveMethodWithInvalidDestination() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	moveNegative(methodSource, methodSource, null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-}
-/**
- * Ensures that a method cannot be moved to an invalid destination.
- */
-public void testMoveMethodWithInvalidDestinationInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource = typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  void bar() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-		IFunction methodDest = typeDest.getFunction("bar", new String[] {});
-		
-		moveNegative(methodSource, methodDest, null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method can be moved to a different type that is in a different project
- * with positioning.
- */
-public void testMoveMethodWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int foo(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource = typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"  boolean bar() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(methodSource, typeDest, typeDest.getFunction("bar", new String[] {}), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a method with syntax errors can be moved to a different type.
- */
-public void testMoveSyntaxErrorMethod() throws CoreException {
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  void foo(String s\n" + // syntax error
-		"  }\n" +
-		"}"
-	);
-	IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-	IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IType typeDest = getCompilationUnit("/P/src/Y.js").getType("Y");
-
-	movePositive(methodSource, typeDest, null, null, false);
-}
-/**
- * Ensures that a method with syntax errors can be moved to a different type
- * that is in a different project.
- */
-public void testMoveSyntaxErrorMethodInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  void foo(String s\n" + // syntax error
-			"  }\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("X");
-		IFunction methodSource= typeSource.getFunction("foo", new String[] {"QString;"});
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IType typeDest = getCompilationUnit("/P2/src/Y.js").getType("Y");
-	
-		movePositive(methodSource, typeDest, null, null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a type can be moved and renamed across projects to a specified position.
- */
-public void testMoveTypeRenameWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"}\n" +
-			"class Z {\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("Z");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuDest = getCompilationUnit("/P2/src/Y.js");
-	
-		movePositive(typeSource,  cuDest, cuDest.getType("Y"), "T", false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-/**
- * Ensures that a type that is in a different project can be moved to a specified position.
- */
-public void testMoveTypeWithPositioningInDifferentProject() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"}\n" +
-			"class Z {\n" +
-			"}"
-		);
-		IType typeSource = getCompilationUnit("/P/src/X.js").getType("Z");
-	
-		this.createJavaProject("P2", new String[] {"src"});
-		this.createFile(
-			"/P2/src/Y.js",
-			"public class Y {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuDest = getCompilationUnit("/P2/src/Y.js");
-	
-		movePositive(typeSource,  cuDest, cuDest.getType("Y"), null, false);
-	} finally {
-		this.deleteProject("P2");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveResourcesTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveResourcesTests.java
deleted file mode 100644
index 3bd5801..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveResourcesTests.java
+++ /dev/null
@@ -1,933 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.internal.core.util.Util;
-
-public class CopyMoveResourcesTests extends CopyMoveTests {
-/**
- */
-public CopyMoveResourcesTests(String name) {
-	super(name);
-}
-/**
- * Copies the element to the container with optional rename
- * and forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public IJavaScriptElement copyPositive(IJavaScriptElement element, IJavaScriptElement container, IJavaScriptElement sibling, String rename, boolean force) throws JavaScriptModelException {
-	try {
-		startDeltas();
-		
-		// if forcing, ensure that a name collision exists
-		if (force) {
-			IJavaScriptElement collision = generateHandle(element, rename, container);
-			assertTrue("Collision does not exist", collision.exists());
-		}
-	
-		// copy
-	 	((ISourceManipulation) element).copy(container, sibling, rename, force, null);
-	
-		// ensure the original element still exists
-		assertTrue("The original element must still exist", element.exists());
-	
-		// generate the new element	handle
-		IJavaScriptElement copy = generateHandle(element, rename, container);
-		assertTrue("Copy should exist", copy.exists());
-		//ensure correct position
-		if (element.getElementType() > IJavaScriptElement.JAVASCRIPT_UNIT) {
-			ensureCorrectPositioning((IParent) container, sibling, copy);
-		}
-		IJavaScriptElementDelta destDelta = getDeltaFor(container, true);
-		assertTrue("Destination container not changed", destDelta != null && destDelta.getKind() == IJavaScriptElementDelta.CHANGED);
-		IJavaScriptElementDelta[] deltas = destDelta.getAddedChildren();
-		// FIXME: not strong enough
-		boolean found = false;
-		for (int i = 0; i < deltas.length; i++) {
-			if (deltas[i].getElement().equals(copy))
-				found = true;
-		}
-		assertTrue("Added children not correct for element copy", found);
-		return copy;
-	} finally {
-		stopDeltas();
-	}
-}
-
-/**
- * Moves the elements to the containers with optional renaming
- * and forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void movePositive(IJavaScriptElement[] elements, IJavaScriptElement[] destinations, IJavaScriptElement[] siblings, String[] names, boolean force, IProgressMonitor monitor) throws JavaScriptModelException {
-	try {
-		startDeltas();
-		
-		// if forcing, ensure that a name collision exists
-		int i;
-		if (force) {
-			for (i = 0; i < elements.length; i++) {
-				IJavaScriptElement e = elements[i];
-				IJavaScriptElement collision = null;
-				if (names == null) {
-					collision = generateHandle(e, null, destinations[i]);
-				} else {
-					collision = generateHandle(e, names[i], destinations[i]);
-				}
-				assertTrue("Collision does not exist", collision.exists());
-			}
-		}
-	
-		// move
-		getJavaModel().move(elements, destinations, siblings, names, force, monitor);
-	
-		for (i = 0; i < elements.length; i++) {
-			IJavaScriptElement element = elements[i];
-			IJavaScriptElement moved = null;
-			if (names == null) {
-				moved = generateHandle(element, null, destinations[i]);
-			} else {
-				moved = generateHandle(element, names[i], destinations[i]);
-			}
-			// ensure the original element no longer exists, unless moving within the same container, or moving a primary working copy
-			if (!destinations[i].equals(element.getParent())) {
-				if (element.getElementType() != IJavaScriptElement.JAVASCRIPT_UNIT || !((IJavaScriptUnit) element).isWorkingCopy())
-					assertTrue("The original element must not exist", !element.exists());
-			}
-			assertTrue("Moved element should exist", moved.exists());
-
-			IJavaScriptElementDelta destDelta = null;
-			if (isMainType(element, destinations[i]) && names != null && names[i] != null) { //moved/renamed main type to same cu
-				destDelta = getDeltaFor(moved.getParent());
-				assertTrue("Renamed compilation unit as result of main type not added", destDelta != null && destDelta.getKind() == IJavaScriptElementDelta.ADDED);
-				IJavaScriptElementDelta[] deltas = destDelta.getAddedChildren();
-				assertTrue("Added children not correct for element copy", deltas[0].getElement().equals(moved));
-				assertTrue("flag should be F_MOVED_FROM", (deltas[0].getFlags() & IJavaScriptElementDelta.F_MOVED_FROM) > 0);
-				assertTrue("moved from handle should be original", deltas[0].getMovedFromElement().equals(element));
-			} else {
-				destDelta = getDeltaFor(destinations[i], true);
-				assertTrue("Destination container not changed", destDelta != null && destDelta.getKind() == IJavaScriptElementDelta.CHANGED);
-				IJavaScriptElementDelta[] deltas = destDelta.getAddedChildren();
-				for (int j = 0; j < deltas.length - 1; j++) {
-					// side effect packages added
-					IJavaScriptElement pkg = deltas[j].getElement();
-					assertTrue("Side effect child should be a package fragment", pkg.getElementType() == IJavaScriptElement.PACKAGE_FRAGMENT);
-					assertTrue("Side effect child should be an enclosing package", element.getElementName().startsWith(pkg.getElementName()));
-				}
-				IJavaScriptElementDelta pkgDelta = deltas[deltas.length - 1];
-				assertTrue("Added children not correct for element copy", pkgDelta.getElement().equals(moved));
-				assertTrue("flag should be F_MOVED_FROM", (pkgDelta.getFlags() & IJavaScriptElementDelta.F_MOVED_FROM) > 0);
-				assertTrue("moved from handle shoud be original", pkgDelta.getMovedFromElement().equals(element));
-				IJavaScriptElementDelta sourceDelta = getDeltaFor(element, true);
-				assertTrue("moved to handle should be original", sourceDelta.getMovedToElement().equals(moved));
-			}
-		}
-	} finally {
-		stopDeltas();
-	}
-}
-/**
- * Setup for the next test.
- */
-public void setUp() throws Exception {
-	super.setUp();
-	
-	this.createJavaProject("P", new String[] {"src", "src2"});
-}
-static {
-//	TESTS_NAMES = new String[] { "testCopyWorkingCopyDestination"};
-}
-public static Test suite() {
-	return buildModelTestSuite(CopyMoveResourcesTests.class);
-}
-/**
- * Cleanup after the previous test.
- */
-public void tearDown() throws Exception {
-	this.deleteProject("P");
-	
-	super.tearDown();
-}
-/**
- * This operation should fail as copying a CU and a CU member at the
- * same time is not supported.
- */
-public void testCopyCUAndType() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	copyNegative(
-		new IJavaScriptElement[]{cuSource, cuSource.getType("X")}, 
-		new IJavaScriptElement[]{cuSource.getParent(), cuSource}, 
-		null, 
-		new String[]{"Y.js", "Y"}, 
-		false, 
-		IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-}
-/**
- * Ensures that a CU can be copied to a different package, replacing an existing CU.
- */
-public void testCopyCUForce() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	this.createFolder("/P/src/p2");
-	this.createFile(
-		"/P/src/p2/X.js",
-		"package p2;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	copyPositive(cuSource, pkgDest, null, null, true);
-}
-/**
- * Ensures that a CU can be copied to a different package,
- * and be renamed.
- */
-public void testCopyCURename() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	this.createFolder("/P/src/p2");
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	copyPositive(cuSource, pkgDest, null, "Y.js", false);
-}
-/**
- * Ensures that a read-only CU can be copied to a different package.
- */
-public void testCopyCUReadOnly() throws CoreException {
-	if (!Util.isReadOnlySupported()) {
-		// Do not test if file system does not support read-only attribute
-		return;
-	}
-	IFile file = null;
-	IFile file2 = null;
-	try {
-		this.createFolder("/P/src/p1");
-		file = this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		Util.setReadOnly(file, true);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-	
-		this.createFolder("/P/src/p2");
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-	
-		copyPositive(cuSource, pkgDest, null, null, false);
-		
-		file2 = getFile("/P/src/p2/X.js");
-		assertTrue("Destination cu should be read-only", file2.isReadOnly());
-	} finally {
-		if (file != null) {
-			Util.setReadOnly(file, false);
-		}
-		if (file2 != null) {
-			Util.setReadOnly(file2, false);
-		}
-		deleteFolder("/P/src/p1");
-		deleteFolder("/P/src/p2");
-	}
-}
-/**
- * Ensures that a CU can be copied to a different package,
- * and be renamed, overwriting an existing CU
- */
-public void testCopyCURenameForce() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	this.createFolder("/P/src/p2");
-	this.createFile(
-		"/P/src/p2/Y.js",
-		"package p2;\n" +
-		"public class Y {\n" +
-		"}"
-	);
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	copyPositive(cuSource, pkgDest, null, "Y.js", true);
-}
-/**
- * Ensures that a CU cannot be copied to a different package,over an existing CU when no force.
- */
-public void testCopyCUWithCollision() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	this.createFolder("/P/src/p2");
-	this.createFile(
-		"/P/src/p2/X.js",
-		"package p2;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	copyNegative(cuSource, pkgDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-/**
- * Ensures that a CU cannot be copied to an invalid destination
- */
-public void testCopyCUWithInvalidDestination() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	copyNegative(cuSource, cuSource, null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-}
-/**
- * Ensures that a CU can be copied to a null container
- */
-public void testCopyCUWithNullContainer() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	try {
-		cuSource.copy(null, null, null, false, null);
-	} catch (IllegalArgumentException iae) {
-		return;
-	}
-	assertTrue("Should not be able to move a cu to a null container", false);
-}
-/**
- * Ensures that a CU can be copied to along with its server properties.
- * (Regression test for PR #1G56QT9)
- */
-public void testCopyCUWithServerProperties() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	QualifiedName qualifiedName = new QualifiedName("x.y.z", "a property");
-	cuSource.getUnderlyingResource().setPersistentProperty(
-		qualifiedName,
-		"some value");
-
-	this.createFolder("/P/src/p2");
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	copyPositive(cuSource, pkgDest, null, null, false);
-	IJavaScriptUnit cu= pkgDest.getJavaScriptUnit("X.js");
-	String propertyValue = cu.getUnderlyingResource().getPersistentProperty(qualifiedName);
-	assertEquals(
-		"Server property should be copied with cu",
-		"some value",
-		propertyValue
-	);
-}
-/**
- * Ensures that a package fragment can be copied to a different package fragment root.
- */
-public void testCopyPackageFragment() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IPackageFragment pkgSource = getPackage("/P/src/p1");
-
-	IPackageFragmentRoot rootDest= getPackageFragmentRoot("P", "src2");
-
-	copyPositive(pkgSource, rootDest, null, null, false);
-}
-/**
- * Ensures that a package fragment can be copied to a different package fragment root.
- */
-public void testCopyReadOnlyPackageFragment() throws CoreException {
-	if (!Util.isReadOnlySupported()) {
-		// Do not test if file system does not support read-only attribute
-		return;
-	}
-	IPackageFragment pkgSource = null;
-	IPackageFragment pkg2 = null;
-	try {
-		this.createFolder("/P/src/p1/p2/p3");
-		this.createFile(
-			"/P/src/p1/p2/p3/X.js",
-			"package p1.p2.p3;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		Util.setReadOnly(getFile("/P/src/p1/p2/p3/X.js"), true);
-		pkgSource = getPackage("/P/src/p1");
-		Util.setReadOnly(pkgSource.getResource(), true);
-		pkg2 = getPackage("/P/src/p1/p2/p3");
-		Util.setReadOnly(pkg2.getResource(), true);
-	
-		IPackageFragmentRoot rootDest= getPackageFragmentRoot("P", "src2");
-	
-		copyPositive(pkg2, rootDest, null, null, false);
-		
-		assertTrue("Not readOnly", Util.isReadOnly(getPackage("/P/src2/p1").getResource()));
-		assertTrue("Is readOnly", !Util.isReadOnly(getPackage("/P/src2/p1/p2").getResource()));
-		assertTrue("Not readOnly", Util.isReadOnly(getPackage("/P/src2/p1/p2/p3").getResource()));
-		assertTrue("Is readOnly", Util.isReadOnly(getFile("/P/src2/p1/p2/p3/X.js")));
-	} finally {
-		IFile xSrcFile = getFile("/P/src/p1/p2/p3/X.js");
-		if (xSrcFile != null) {
-			Util.setReadOnly(xSrcFile, false);
-		}
-		if (pkg2 != null) {
-			Util.setReadOnly(pkg2.getResource(), false);
-		}
-		if (pkgSource != null) {
-			Util.setReadOnly(pkgSource.getResource(), false);
-		}
-		IPackageFragment p1Fragment = getPackage("/P/src2/p1");
-		if (p1Fragment != null) {
-			Util.setReadOnly(p1Fragment.getResource(), false);
-		}
-		IPackageFragment p3Fragment = getPackage("/P/src2/p1/p2/p3");
-		if (p3Fragment != null) {
-			Util.setReadOnly(p3Fragment.getResource(), false);
-		}
-		IFile xFile = getFile("/P/src2/p1/p2/p3/X.js");
-		if (xFile != null) {
-			Util.setReadOnly(xFile, false);
-		}
-		deleteFolder("/P/src/p1");
-	}
-}
-/**
- * Ensures that a WorkingCopy can be copied to a different package.
- */
-public void testCopyWorkingCopy() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createFolder("/P/src/p1");
-		this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-		copy = cuSource.getWorkingCopy(null);
-	
-		this.createFolder("/P/src/p2");
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-	
-		copyPositive(copy, pkgDest, null, null, false);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-/*
- * Ensures that a CU can be copied over an existing primary working copy in a different package.
- * (regression test for bug 117282 Package declaration inserted on wrong CU while copying class if names collide and editor opened)
- */
-public void testCopyWorkingCopyDestination() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		createFolder("/P/src/p1");
-		createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"  void foo() {}\n" +
-			"}"
-		);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-	
-		createFolder("/P/src/p2");
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-		createFile(
-			"/P/src/p2/X.js",
-			"\n" +
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		copy = getCompilationUnit("/P/src/p2/X.js");
-		copy.becomeWorkingCopy(null);
-	
-		copyPositive(cuSource, pkgDest, null, null, true/*force*/);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-/**
- * Ensures that a WorkingCopy can be copied to a different package, replacing an existing WorkingCopy.
- */
-public void testCopyWorkingCopyForce() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createFolder("/P/src/p1");
-		this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-		copy = cuSource.getWorkingCopy(null);
-	
-		this.createFolder("/P/src/p2");
-		this.createFile(
-			"/P/src/p2/X.js",
-			"package p2;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-	
-		copyPositive(copy, pkgDest, null, null, true);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-/**
- * Ensures that a WorkingCopy can be copied to a different package,
- * and be renamed.
- */
-public void testCopyWorkingCopyRename() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createFolder("/P/src/p1");
-		this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-		copy = cuSource.getWorkingCopy(null);
-	
-		this.createFolder("/P/src/p2");
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-	
-		copyPositive(copy, pkgDest, null, "Y.js", false);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-/**
- * Ensures that a WorkingCopy can be copied to a different package,
- * and be renamed, overwriting an existing WorkingCopy
- */
-public void testCopyWorkingCopyRenameForce() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createFolder("/P/src/p1");
-		this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-		copy = cuSource.getWorkingCopy(null);
-	
-		this.createFolder("/P/src/p2");
-		this.createFile(
-			"/P/src/p2/Y.js",
-			"package p2;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-	
-		copyPositive(copy, pkgDest, null, "Y.js", true);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-/**
- * Ensures that a WorkingCopy cannot be copied to a different package,over an existing WorkingCopy when no force.
- */
-public void testCopyWorkingCopyWithCollision() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createFolder("/P/src/p1");
-		this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-		copy = cuSource.getWorkingCopy(null);
-	
-		this.createFolder("/P/src/p2");
-		this.createFile(
-			"/P/src/p2/X.js",
-			"package p2;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-	
-		copyNegative(copy, pkgDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-/**
- * Ensures that a WorkingCopy cannot be copied to an invalid destination
- */
-public void testCopyWorkingCopyWithInvalidDestination() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createFolder("/P/src/p1");
-		this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-		copy = cuSource.getWorkingCopy(null);
-	
-		copyNegative(copy, cuSource, null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-/**
- * This operation should fail as moving a CU and a CU member at the
- * same time is not supported.
- */
-public void testMoveCUAndType() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	moveNegative(
-		new IJavaScriptElement[]{cuSource, cuSource.getType("X")}, 
-		new IJavaScriptElement[]{cuSource.getParent(), cuSource}, 
-		null, 
-		new String[]{"Y.js", "Y"}, 
-		false, 
-		IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-}
-/**
- * Ensures that a CU can be moved to a different package, replacing an
- * existing CU.
- */
-public void testMoveCUForce() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	this.createFolder("/P/src/p2");
-	this.createFile(
-		"/P/src/p2/X.js",
-		"package p2;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	movePositive(cuSource, pkgDest, null, null, true);
-}
-/**
- * Ensures that a CU can be moved to a different package,
- * be renamed
- */
-public void testMoveCURename() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	this.createFolder("/P/src/p2");
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	movePositive(cuSource, pkgDest, null, "Y.js", false);
-}
-/**
- * Ensures that a CU can be moved to a different package,
- * be renamed, overwriting an existing resource.
- */
-public void testMoveCURenameForce() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	this.createFolder("/P/src/p2");
-	this.createFile(
-		"/P/src/p2/Y.js",
-		"package p2;\n" +
-		"public class Y {\n" +
-		"}"
-	);
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	movePositive(cuSource, pkgDest, null, "Y.js", true);
-}
-/**
- * Ensures that a CU cannot be moved to a different package, replacing an
- * existing CU when not forced.
- */
-public void testMoveCUWithCollision() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	this.createFolder("/P/src/p2");
-	this.createFile(
-		"/P/src/p2/X.js",
-		"package p2;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IPackageFragment pkgDest = getPackage("/P/src/p2");
-
-	moveNegative(cuSource, pkgDest, null, null, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-/**
- * Ensures that a CU cannot be moved to an invalid destination.
- */
-public void testMoveCUWithInvalidDestination() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	moveNegative(cuSource, cuSource, null, null, false, IJavaScriptModelStatusConstants.INVALID_DESTINATION);
-}
-/**
- * Ensures that a CU cannot be moved to a null container
- */
-public void testMoveCUWithNullContainer() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-
-	try {
-		cuSource.move(null, null, null, false, null);
-	} catch (IllegalArgumentException iae) {
-		return;
-	}
-	assertTrue("Should not be able to move a cu to a null container", false);
-}
-/**
- * Ensures that a package fragment can be moved to a different package fragment root.
- */
-public void testMovePackageFragment() throws CoreException {
-	this.createFolder("/P/src/p1");
-	this.createFile(
-		"/P/src/p1/X.js",
-		"package p1;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IPackageFragment pkgSource = getPackage("/P/src/p1");
-
-	IPackageFragmentRoot rootDest= getPackageFragmentRoot("P", "src2");
-
-	movePositive(pkgSource, rootDest, null, null, false);
-}
-/**
- * Ensures that a package fragment can be copied to a different package fragment root.
- */
-public void testMoveReadOnlyPackageFragment() throws CoreException {
-	if (!Util.isReadOnlySupported()) {
-		// Do not test if file system does not support read-only attribute
-		return;
-	}
-	IPackageFragment pkgSource = null;
-	IPackageFragment pkg2 = null;
-	try {
-		this.createFolder("/P/src/p1/p2/p3");
-		this.createFile(
-			"/P/src/p1/p2/p3/X.js",
-			"package p1.p2.p3;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		Util.setReadOnly(getFile("/P/src/p1/p2/p3/X.js"), true);
-		pkgSource = getPackage("/P/src/p1");
-		Util.setReadOnly(pkgSource.getResource(), true);
-		pkg2 = getPackage("/P/src/p1/p2/p3");
-		Util.setReadOnly(pkg2.getResource(), true);
-	
-		IPackageFragmentRoot rootDest= getPackageFragmentRoot("P", "src2");
-	
-		movePositive(pkg2, rootDest, null, null, false);
-		
-		assertTrue("Not readOnly", Util.isReadOnly(getPackage("/P/src2/p1").getResource()));
-		assertTrue("Is readOnly", !Util.isReadOnly(getPackage("/P/src2/p1/p2").getResource()));
-		assertTrue("Not readOnly", Util.isReadOnly(getPackage("/P/src2/p1/p2/p3").getResource()));
-		assertTrue("Is readOnly", Util.isReadOnly(getFile("/P/src2/p1/p2/p3/X.js")));
-	} finally {
-		IFile xSrcFile = getFile("/P/src/p1/p2/p3/X.js");
-		if (xSrcFile != null) {
-			Util.setReadOnly(xSrcFile, false);
-		}
-		if (pkg2 != null) {
-			Util.setReadOnly(pkg2.getResource(), false);
-		}
-		if (pkgSource != null) {
-			Util.setReadOnly(pkgSource.getResource(), false);
-		}
-		IPackageFragment p1Fragment = getPackage("/P/src2/p1");
-		if (p1Fragment != null) {
-			Util.setReadOnly(p1Fragment.getResource(), false);
-		}
-		IPackageFragment p3Fragment = getPackage("/P/src2/p1/p2/p3");
-		if (p3Fragment != null) {
-			Util.setReadOnly(p3Fragment.getResource(), false);
-		}
-		IFile xFile = getFile("/P/src2/p1/p2/p3/X.js");
-		if (xFile != null) {
-			Util.setReadOnly(xFile, false);
-		}
-		deleteFolder("/P/src/p1");
-	}
-}
-/**
- * Ensures that a WorkingCopy cannot be moved to a different package.
- */
-public void testMoveWorkingCopy() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createFolder("/P/src/p1");
-		this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cuSource = getCompilationUnit("/P/src/p1/X.js");
-		copy = cuSource.getWorkingCopy(null);
-	
-		this.createFolder("/P/src/p2");
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-	
-		moveNegative(copy, pkgDest, null, null, false, IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-
-/*
- * Ensures that a primary working copy can be moved to a different package
- * and that its buffer doesn't contain unsaved changed after the move.
- * (regression test for bug 83599 CU dirty after move refactoring)
- */
-public void testMoveWorkingCopy2() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createFolder("/P/src/p1");
-		this.createFile(
-			"/P/src/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		copy = getCompilationUnit("/P/src/p1/X.js");
-		copy.becomeWorkingCopy(null);
-	
-		this.createFolder("/P/src/p2");
-		IPackageFragment pkgDest = getPackage("/P/src/p2");
-	
-		movePositive(copy, pkgDest, null, null, false);
-		assertTrue("Should not have unsaved changes", !copy.getBuffer().hasUnsavedChanges());
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveTests.java
deleted file mode 100644
index 7fcce84..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CopyMoveTests.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.jsdt.core.*;
-
-abstract public class CopyMoveTests extends ModifyingResourceTests {
-public CopyMoveTests(String name) {
-	super(name);
-}
-/**
- * Attempts to copy the element with optional 
- * forcing. The operation should fail with the failure code.
- */
-public void copyNegative(IJavaScriptElement element, IJavaScriptElement destination, IJavaScriptElement sibling, String rename, boolean force, int failureCode) {
-	try {
-		((ISourceManipulation)element).copy(destination, sibling, rename, force, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Code not correct for JavaScriptModelException: " + jme, jme.getStatus().getCode() == failureCode);
-		return;
-	}
-	assertTrue("The copy should have failed for: " + element, false);
-	return;
-}
-/**
- * Attempts to copy the elements with optional 
- * forcing. The operation should fail with the failure code.
- */
-public void copyNegative(IJavaScriptElement[] elements, IJavaScriptElement[] destinations, IJavaScriptElement[] siblings, String[] renames, boolean force, int failureCode) {
-	try {
-		getJavaModel().copy(elements, destinations, siblings, renames, force, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Code not correct for JavaScriptModelException: " + jme, jme.getStatus().getCode() == failureCode);
-		return;
-	}
-	assertTrue("The move should have failed for for multiple elements: ", false);
-	return;
-}
-/**
- * Copies the element to the container with optional rename
- * and forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public IJavaScriptElement copyPositive(IJavaScriptElement element, IJavaScriptElement container, IJavaScriptElement sibling, String rename, boolean force) throws JavaScriptModelException {
-	// if forcing, ensure that a name collision exists
-	if (force) {
-		IJavaScriptElement collision = generateHandle(element, rename, container);
-		assertTrue("Collision does not exist", collision.exists());
-	}
-
-	IJavaScriptElement copy;
-	try {
-		startDeltas();
-		
-		// copy
-	 	((ISourceManipulation) element).copy(container, sibling, rename, force, null);
-	
-		// ensure the original element still exists
-		assertTrue("The original element must still exist", element.exists());
-	
-		// generate the new element	handle
-		copy = generateHandle(element, rename, container);
-		assertTrue("Copy should exist", copy.exists());
-	
-		//ensure correct position
-		if (element.getElementType() > IJavaScriptElement.JAVASCRIPT_UNIT) {
-			ensureCorrectPositioning((IParent) container, sibling, copy);
-		}
-		if (copy.getElementType() == IJavaScriptElement.IMPORT_DECLARATION)
-			container = ((IJavaScriptUnit) container).getImportContainer();
-		IJavaScriptElementDelta destDelta = getDeltaFor(container, true);
-		assertTrue("Destination container not changed", destDelta != null && destDelta.getKind() == IJavaScriptElementDelta.CHANGED);
-		IJavaScriptElementDelta[] deltas = destDelta.getAddedChildren();
-		assertTrue("Added children not correct for element copy", deltas[0].getElement().equals(copy));
-	} finally {
-		stopDeltas();
-	}
-	return copy;
-}
-/**
- * Generates a new handle to the original element in
- * its new container.
- */
-public IJavaScriptElement generateHandle(IJavaScriptElement original, String rename, IJavaScriptElement container) {
-	String name = original.getElementName();
-	if (rename != null) {
-		name = rename;
-	}
-	switch (container.getElementType()) {
-		case IJavaScriptElement.PACKAGE_FRAGMENT_ROOT :
-			switch (original.getElementType()) {
-				case IJavaScriptElement.PACKAGE_FRAGMENT :
-					return ((IPackageFragmentRoot) container).getPackageFragment(name);
-				default :
-					assertTrue("illegal child type", false);
-					break;
-			}
-			break;
-		case IJavaScriptElement.PACKAGE_FRAGMENT :
-			switch (original.getElementType()) {
-				case IJavaScriptElement.JAVASCRIPT_UNIT :
-					return ((IPackageFragment) container).getJavaScriptUnit(name);
-				default :
-					assertTrue("illegal child type", false);
-					break;
-			}
-			break;
-		case IJavaScriptElement.JAVASCRIPT_UNIT :
-			switch (original.getElementType()) {
-				case IJavaScriptElement.IMPORT_DECLARATION :
-					return ((IJavaScriptUnit) container).getImport(name);
-				case IJavaScriptElement.TYPE :
-					if (isMainType(original, container)) {
-						//the cu has been renamed as well
-						container = ((IPackageFragment) container.getParent()).getJavaScriptUnit(name + ".js");
-					}
-					return ((IJavaScriptUnit) container).getType(name);
-				default :
-					assertTrue("illegal child type", false);
-					break;
-			}
-			break;
-		case IJavaScriptElement.TYPE :
-			switch (original.getElementType()) {
-				case IJavaScriptElement.METHOD :
-					if (name.equals(original.getParent().getElementName())) {
-						//method is a constructor
-						return ((IType) container).getFunction(container.getElementName(), ((IFunction) original).getParameterTypes());
-					}
-					return ((IType) container).getFunction(name, ((IFunction) original).getParameterTypes());
-				case IJavaScriptElement.FIELD :
-					return ((IType) container).getField(name);
-				case IJavaScriptElement.TYPE :
-					return ((IType) container).getType(name);
-				case IJavaScriptElement.INITIALIZER :
-					//hack to return the first initializer
-					return ((IType) container).getInitializer(1);
-				default :
-					assertTrue("illegal child type", false);
-					break;
-			}
-			break;
-		default :
-			assertTrue("unsupported container type", false);
-			break;
-	}
-	assertTrue("should not get here", false);
-	return null;
-}
-/**
- * Returns true if this element is the main type of its compilation unit.
- */
-protected boolean isMainType(IJavaScriptElement element, IJavaScriptElement parent) {
-	if (parent instanceof IJavaScriptUnit) {
-		if (element instanceof IType) {
-			IJavaScriptUnit cu= (IJavaScriptUnit)parent;
-			String typeName = cu.getElementName();
-			typeName = typeName.substring(0, typeName.length() - 5);
-			return element.getElementName().equals(typeName) && element.getParent().equals(cu);
-		}
-	}
-	return false;
-}
-/**
- * Attempts to move the element with optional 
- * forcing. The operation should fail with the failure code.
- */
-public void moveNegative(IJavaScriptElement element, IJavaScriptElement destination, IJavaScriptElement sibling, String rename, boolean force, int failureCode) {
-	try {
-		((ISourceManipulation)element).move(destination, sibling, rename, force, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Code not correct for JavaScriptModelException: " + jme, jme.getStatus().getCode() == failureCode);
-		return;
-	}
-	assertTrue("The move should have failed for: " + element, false);
-	return;
-}
-/**
- * Attempts to move the element with optional 
- * forcing. The operation should fail with the failure code.
- */
-public void moveNegative(IJavaScriptElement[] elements, IJavaScriptElement[] destinations, IJavaScriptElement[] siblings, String[] renames, boolean force, int failureCode) {
-	try {
-		getJavaModel().move(elements, destinations, siblings, renames, force, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Code not correct for JavaScriptModelException: " + jme, jme.getStatus().getCode() == failureCode);
-		return;
-	}
-	assertTrue("The move should have failed for for multiple elements: ", false);
-	return;
-}
-/**
- * Moves the element to the container with optional rename
- * and forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void movePositive(IJavaScriptElement element, IJavaScriptElement container, IJavaScriptElement sibling, String rename, boolean force) throws JavaScriptModelException {
-	IJavaScriptElement[] siblings = new IJavaScriptElement[] {sibling};
-	String[] renamings = new String[] {rename};
-	if (sibling == null) {
-		siblings = null;
-	}
-	if (rename == null) {
-		renamings = null;
-	}
-	movePositive(new IJavaScriptElement[] {element}, new IJavaScriptElement[] {container}, siblings, renamings, force);
-}
-/**
- * Moves the elements to the containers with optional renaming
- * and forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void movePositive(IJavaScriptElement[] elements, IJavaScriptElement[] destinations, IJavaScriptElement[] siblings, String[] names, boolean force) throws JavaScriptModelException {
-	movePositive(elements, destinations, siblings, names, force, null);
-}
-/**
- * Moves the elements to the containers with optional renaming
- * and forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void movePositive(IJavaScriptElement[] elements, IJavaScriptElement[] destinations, IJavaScriptElement[] siblings, String[] names, boolean force, IProgressMonitor monitor) throws JavaScriptModelException {
-	// if forcing, ensure that a name collision exists
-	int i;
-	if (force) {
-		for (i = 0; i < elements.length; i++) {
-			IJavaScriptElement e = elements[i];
-			IJavaScriptElement collision = null;
-			if (names == null) {
-				collision = generateHandle(e, null, destinations[i]);
-			} else {
-				collision = generateHandle(e, names[i], destinations[i]);
-			}
-			assertTrue("Collision does not exist", collision.exists());
-		}
-	}
-
-	try {
-		startDeltas();
-		
-		// move
-		getJavaModel().move(elements, destinations, siblings, names, force, monitor);
-		for (i = 0; i < elements.length; i++) {
-			IJavaScriptElement element = elements[i];
-			IJavaScriptElement moved = null;
-			if (names == null) {
-				moved = generateHandle(element, null, destinations[i]);
-			} else {
-				moved = generateHandle(element, names[i], destinations[i]);
-			}
-			// ensure the original element no longer exists, unless moving within the same container
-			if (!destinations[i].equals(element.getParent())) {
-				if (element.getElementType() == IJavaScriptElement.PACKAGE_FRAGMENT) {
-					//moving a package fragment does not necessary mean that it no longer exists
-					//it could have members that are not part of the Java Model
-					try {
-						IResource[] members = ((IContainer) element.getUnderlyingResource()).members();
-						if (members.length == 0) {
-							assertTrue("The original element must not exist", !element.exists());
-						}
-					} catch (CoreException ce) {
-						throw new JavaScriptModelException(ce);
-					}
-				} else {
-					assertTrue("The original element must not exist", !element.exists());
-				}
-			}
-			assertTrue("Moved element should exist", moved.exists());
-	
-			//ensure correct position
-			if (element.getElementType() > IJavaScriptElement.JAVASCRIPT_UNIT) {
-				if (siblings != null && siblings.length > 0) {
-					ensureCorrectPositioning((IParent) moved.getParent(), siblings[i], moved);
-				}
-			}
-			IJavaScriptElementDelta destDelta = null;
-			if (isMainType(element, destinations[i]) && names != null && names[i] != null) { //moved/renamed main type to same cu
-				destDelta = getDeltaFor(moved.getParent());
-				assertTrue("Renamed compilation unit as result of main type not added", destDelta != null && destDelta.getKind() == IJavaScriptElementDelta.ADDED);
-				assertTrue("flag should be F_MOVED_FROM", (destDelta.getFlags() & IJavaScriptElementDelta.F_MOVED_FROM) > 0);
-				assertTrue("moved from handle should be original", destDelta.getMovedFromElement().equals(element.getParent()));
-			} else {
-				destDelta = getDeltaFor(destinations[i], true);
-				assertTrue("Destination container not changed", destDelta != null && destDelta.getKind() == IJavaScriptElementDelta.CHANGED);
-				IJavaScriptElementDelta[] deltas = destDelta.getAddedChildren();
-				assertTrue("Added children not correct for element copy", deltas[i].getElement().equals(moved));
-				assertTrue("should be K_ADDED", deltas[i].getKind() == IJavaScriptElementDelta.ADDED);
-				IJavaScriptElementDelta sourceDelta= getDeltaFor(element, false);
-				assertTrue("should be K_REMOVED", sourceDelta.getKind() == IJavaScriptElementDelta.REMOVED);
-			}
-		}
-	} finally {
-		stopDeltas();
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreateCompilationUnitTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreateCompilationUnitTests.java
deleted file mode 100644
index 59da748..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreateCompilationUnitTests.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-public class CreateCompilationUnitTests extends ModifyingResourceTests {
-public CreateCompilationUnitTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildModelTestSuite(CreateCompilationUnitTests.class);
-}
-public void setUp() throws Exception {
-	super.setUp();
-	createJavaProject("P");
-	createFolder("/P/p");
-	startDeltas();
-}
-public void tearDown() throws Exception {
-	stopDeltas();
-	deleteProject("P");
-	super.tearDown();
-}
-/**
- * Ensures that a compilation unit can be created with specified source
- * in a package.
- * Verifies that the proper change deltas are generated as a side effect
- * of running the operation.
- * Ensure that the import container has been created correctly.
- */
-public void testCUAndImportContainer() throws JavaScriptModelException {
-	IPackageFragment pkg = getPackage("/P/p");
-	IJavaScriptUnit cu= pkg.createCompilationUnit("HelloImports.js", 
-		("package p;\n" +
-		"\n" +
-		"import java.util.Enumeration;\n" +
-		"import java.util.Vector;\n" +
-		"\n" +
-		"public class HelloImports {\n" +
-		"\n" +
-		"	public static main(String[] args) {\n" +
-		"		System.out.println(\"HelloWorld\");\n" +
-		"	}\n" +
-		"}\n"),  false,null);
-	assertCreation(cu);
-	assertDeltas(
-		"Unexpected delta",
-		"P[*]: {CHILDREN}\n" + 
-		"	<project root>[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN}\n" + 
-		"			HelloImports.java[+]: {}"
-	);
-	IImportDeclaration[] imprts= cu.getImports();
-	assertTrue("Import does not exist", imprts.length == 2 && imprts[0].exists());
-	cu.close();
-	imprts= cu.getImports();
-	assertTrue("Import does not exist", imprts.length == 2 && imprts[0].exists());
-}
-/**
- * Ensures that a default compilation unit is created for a type if
- * it does not yet exist.
- */
-public void testDefaultCU() throws CoreException {
-	IPackageFragment pkg = getPackage("/P/p");
-	IJavaScriptUnit cu= pkg.getJavaScriptUnit("Default.js");
-	IType type= cu.createType("public class Default {}", null, false, null);
-	assertCreation(cu);
-	assertCreation(type);
-	assertDeltas(
-		"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		p[*]: {CHILDREN}\n" + 
-			"			Default.java[+]: {}\n" + 
-			"\n" + 
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		p[*]: {CHILDREN}\n" + 
-			"			Default.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				Default[+]: {}"
-	);
-	// CU should have a package statement and type
-	assertElementDescendants(
-		"Unexpected children",
-		"Default.java\n" + 
-		"  package p\n" + 
-		"  class Default",
-		cu);
-
-	// should fail if we try again
-	try {
-		pkg.createCompilationUnit("Default.js", "", false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Exception status not correct for creating a cu that already exists", jme.getStatus().getCode() == IJavaScriptModelStatusConstants.NAME_COLLISION);
-	}
-	// should fail if we try again
-	try {
-		pkg.createCompilationUnit("Default.js", "public class Default {}", true, null);
-		return;
-	} catch (JavaScriptModelException jme) {
-	}
-	assertTrue("Creation should not fail if the compilation unit already exists", false);
-}
-/**
- * Ensures that a default compilation unit is created for a type if
- * it does not yet exist.
- */
-public void testEmptyCU() {
-	IPackageFragment pkg = getPackage("/P/p");
-	// should fail if we try again
-	try {
-		pkg.createCompilationUnit("Empty.js", "", true, null);
-	} catch (JavaScriptModelException jme) {
-	}
-	IJavaScriptUnit cu= pkg.getJavaScriptUnit("Empty.js");
-	assertCreation(cu);
-}
-/*
- * Ensures that a compilation unit can be created even if a file already exists on the file system.
- * (regression test for bug 41611 CreateCompilationUnitOperation.executeOperation() should probably force creation more agressively)
- */
-public void testForce() throws JavaScriptModelException, IOException {
-	IPackageFragment pkg = getPackage("/P/p");
-	File folder = pkg.getResource().getLocation().toFile();
-	new File(folder, "X.js").createNewFile();
-	IJavaScriptUnit cu = pkg.createCompilationUnit(
-		"X.js", 
-		"package p;\n" +
-		"public class X {\n" +
-		"}",
-		true, // force,
-		null);
-	assertCreation(cu);
-	assertDeltas(
-		"Unexpected delta",
-		"P[*]: {CHILDREN}\n" + 
-		"	<project root>[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN}\n" + 
-		"			X.java[+]: {}"
-	);
-}
-/**
- * Ensures that a compilation unit cannot be created with an invalid name
- * in a package.
- */
-public void testInvalidName() {
-	IPackageFragment pkg = getPackage("/P/p");
-	try {
-		pkg.createCompilationUnit("HelloWorld.j", null,  false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Incorrect JavaScriptModelException thrown for creating a cu with invalid name", jme.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_NAME);
-		try {
-			pkg.createCompilationUnit(null, null,  false,null);
-		} catch (JavaScriptModelException jme2) {
-			assertTrue("Incorrect JavaScriptModelException thrown for creating a cu with invalid name", jme2.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_NAME);
-			return;
-		}
-	}
-	assertTrue("No JavaScriptModelException thrown for creating a cu with an invalid name", false);
-}
-/**
- * Ensures that a compilation unit cannot be created with <code>null</code> source
- * in a package.
- */
-public void testNullContents() {
-	IPackageFragment pkg = getPackage("/P/p");
-	try {
-		pkg.createCompilationUnit("HelloWorld.js", null, false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Incorrect JavaScriptModelException thrown for creating a cu with null contents: " + jme, jme.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_CONTENTS);
-		return;
-	}
-	assertTrue("No JavaScriptModelException thrown for creating a cu with null contents", false);
-}
-/**
- * Ensures that a compilation unit can be created with specified source
- * in a package.
- * Verifies that the proper change deltas are generated as a side effect
- * of running the operation.
- */
-public void testSimpleCreation() throws JavaScriptModelException {
-	IPackageFragment pkg = getPackage("/P/p");
-	IJavaScriptUnit cu= pkg.createCompilationUnit("HelloWorld.js", 
-		("package p;\n" +
-		"\n" +
-		"public class HelloWorld {\n" +
-		"\n" +
-		"	public static main(String[] args) {\n" +
-		"		System.out.println(\"HelloWorld\");\n" +
-		"	}\n" +
-		"}\n"), false, null);
-	assertCreation(cu);
-	assertDeltas(
-		"Unexpected delta",
-		"P[*]: {CHILDREN}\n" + 
-		"	<project root>[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN}\n" + 
-		"			HelloWorld.java[+]: {}"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreateMembersTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreateMembersTests.java
deleted file mode 100644
index 160ddc1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreateMembersTests.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IField;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-
-public class CreateMembersTests extends AbstractJavaModelTests {
-
-	public CreateMembersTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(CreateMembersTests.class, 1/*sort ascending order*/);
-	}
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		setUpJavaProject("CreateMembers", "1.5");
-	}
-	public void tearDownSuite() throws Exception {
-		deleteProject("CreateMembers");
-
-		super.tearDownSuite();
-	}
-
-	public void test001() throws JavaScriptModelException {
-		IJavaScriptUnit compilationUnit = getCompilationUnit("CreateMembers", "src", "", "A.js");
-		assertNotNull("No compilation unit", compilationUnit);
-//		IType[] types = compilationUnit.getTypes();
-//		assertNotNull("No types", types);
-//		assertEquals("Wrong size", 1, types.length);
-//		IType type = types[0];
-		compilationUnit.createMethod("\tfunction foo() {\n\t\tSystem.out.println(\"Hello World\");\n\t}\n", null, true, new NullProgressMonitor());
-		String expectedSource = 
-			"var aVar;\n" + 
-			"\n" + 
-			"function foo() {\n" + 
-			"\tSystem.out.println(\"Hello World\");\n" + 
-			"}" +
-			"";
-		assertSourceEquals("Unexpected source", expectedSource, compilationUnit.getSource());
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=86906
-	public void test002() throws JavaScriptModelException {
-		IJavaScriptUnit compilationUnit = getCompilationUnit("CreateMembers", "src", "", "A2.js");
-		assertNotNull("No compilation unit", compilationUnit);
-//		IType[] types = compilationUnit.getTypes();
-//		assertNotNull("No types", types);
-//		assertEquals("Wrong size", 1, types.length);
-//		IType type = types[0];
-		IField sibling = compilationUnit.getField("aVar");
-		compilationUnit.createField("var i;", sibling, true, null);
-		String expectedSource = 
-			"var i;\n" + 
-			"\n" + 
-			"var aVar;" + 
-			"";
-		assertSourceEquals("Unexpected source", expectedSource, compilationUnit.getSource());
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=86906
-	public void test003() throws JavaScriptModelException {
-		IJavaScriptUnit compilationUnit = getCompilationUnit("CreateMembers", "src", "", "Annot.js");
-		assertNotNull("No compilation unit", compilationUnit);
-		IType[] types = compilationUnit.getTypes();
-		assertNotNull("No types", types);
-		assertEquals("Wrong size", 1, types.length);
-		IType type = types[0];
-		IFunction sibling = type.getFunction("foo", new String[]{});
-		type.createMethod("String bar();", sibling, true, null);
-		String expectedSource = 
-			"public @interface Annot {\n" + 
-			"	String bar();\n" + 
-			"\n" + 
-			"	String foo();\n" + 
-			"}";
-		assertSourceEquals("Unexpected source", expectedSource, type.getSource());
-	}
-	
-	/*
-	 * Ensures that the handle for a created method that has varargs type arguments is correct.
-	 * (regression test for bug 93487 IType#findMethods fails on vararg methods)
-	 */
-	public void test004() throws JavaScriptModelException {
-		IType type = getCompilationUnit("/CreateMembers/src/A.js").getType("A");
-		IFunction method = type.createMethod(
-			"void bar(String... args) {}",
-			null, // no siblings
-			false, // don't force
-			null // no progress monitor
-		);
-		assertTrue("Method should exist", method.exists());
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95580
-	public void test005() throws JavaScriptModelException {
-		IJavaScriptUnit compilationUnit = getCompilationUnit("CreateMembers", "src", "", "E2.js");
-		assertNotNull("No compilation unit", compilationUnit);
-		IType[] types = compilationUnit.getTypes();
-		assertNotNull("No types", types);
-		assertEquals("Wrong size", 1, types.length);
-		IType type = types[0];
-		type.createField("int i;", null, true, null);
-		String expectedSource = 
-			"public enum E2 {\n" + 
-			"	A, B, C;\n\n" +
-			"	int i;\n" + 
-			"}";
-		assertSourceEquals("Unexpected source", expectedSource, type.getSource());
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95580
-	public void test006() throws JavaScriptModelException {
-		IJavaScriptUnit compilationUnit = getCompilationUnit("CreateMembers", "src", "", "E3.js");
-		assertNotNull("No compilation unit", compilationUnit);
-		IType[] types = compilationUnit.getTypes();
-		assertNotNull("No types", types);
-		assertEquals("Wrong size", 1, types.length);
-		IType type = types[0];
-		type.createType("class DD {}", null, true, null);
-		String expectedSource = 
-			"public enum E3 {\n" + 
-			"	A, B, C;\n\n" +
-			"	class DD {}\n" + 
-			"}";
-		assertSourceEquals("Unexpected source", expectedSource, type.getSource());
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreatePackageTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreatePackageTests.java
deleted file mode 100644
index 98427ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/CreatePackageTests.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-public class CreatePackageTests extends ModifyingResourceTests {
-public CreatePackageTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildModelTestSuite(CreatePackageTests.class);
-}
-public void setUp() throws Exception {
-	super.setUp();
-	createJavaProject("P");
-	createFolder("/P/p");
-	startDeltas();
-}
-public void tearDown() throws Exception {
-	stopDeltas();
-	deleteProject("P");
-	super.tearDown();
-}
-/**
- * Ensures that a package fragment can be created in a package
- * fragment root.
- * Verifies that the proper change deltas are generated as a side effect
- * of running the operation.
- */
-public void testCreatePackageFragment1() throws JavaScriptModelException {
-	IPackageFragmentRoot root= getPackageFragmentRoot("P", "");
-	IPackageFragment frag= root.createPackageFragment("one.two.three", false, null);
-	assertCreation(frag);
-	assertTrue("Fragment return not correct", frag.getElementName().equals("one.two.three"));
-	assertDeltas(
-		"Unexpected delta",
-		"P[*]: {CHILDREN}\n" + 
-		"	<project root>[*]: {CHILDREN}\n" + 
-		"		one[+]: {}\n" + 
-		"		one.two[+]: {}\n" + 
-		"		one.two.three[+]: {}"
-	);
-}
-/**
- * Ensures that a package fragment that shares a prefix path with 
- * an existing package fragment can be created in a package
- * fragment root.
- * Verifies that the proper change deltas are generated as a side effect
- * of running the operation.
- */
-public void testCreatePackageFragment2() throws JavaScriptModelException {
-	IPackageFragmentRoot root = getPackageFragmentRoot("P", "");
-	IPackageFragment frag= root.createPackageFragment("one.two.three.four", false, null);
-	assertCreation(frag);
-	assertDeltas(
-		"Unexpected delta",
-		"P[*]: {CHILDREN}\n" + 
-		"	<project root>[*]: {CHILDREN}\n" + 
-		"		one[+]: {}\n" + 
-		"		one.two[+]: {}\n" + 
-		"		one.two.three[+]: {}\n" + 
-		"		one.two.three.four[+]: {}"
-	);
-}
-/**
- * Ensures that a package fragment can be created for the default package
- */
-public void testCreatePackageFragment3() throws JavaScriptModelException {
-	IPackageFragmentRoot root= getPackageFragmentRoot("P", "");
-	IPackageFragment frag= root.createPackageFragment("", false, null);
-	assertCreation(frag);
-	assertTrue("Fragment return not correct", frag.getElementName().equals(""));
-}
-/**
- * Ensures that a package fragment can be created even if its name is unconventional.
- * (regression test for 9479 exception on package creation (discouraged name))
- */
-public void testCreatePackageFragment4() throws JavaScriptModelException {
-	IPackageFragmentRoot root= getPackageFragmentRoot("P", "");
-	IPackageFragment frag= root.createPackageFragment("A", false, null);
-	assertCreation(frag);
-	assertTrue("Fragment return not correct", frag.getElementName().equals("A"));
-}
-/**
- * Ensures that a package fragment that already exists is not duplicated in the package
- * fragment root.
- */
-public void testDuplicatePackageFragment() throws JavaScriptModelException {
-	IPackageFragmentRoot root= getPackageFragmentRoot("P", "");
-	IPackageFragment frag= root.createPackageFragment("p",  false, null);
-	assertCreation(frag);
-	assertDeltas(
-		"Unexpected delta",
-		""
-	);
-}
-/**
- * Ensures that a package fragment cannot be created with an invalid parameters.
- */
-public void testInvalidPackageFragment() throws CoreException {
-	createFile("/P/p/other", "");
-	IPackageFragmentRoot root = getPackageFragmentRoot("P", "");
-	try {
-		root.createPackageFragment(null,  false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Incorrect JavaScriptModelException thrown for creating an package fragment with invalid name", jme.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_NAME);
-		try {
-			root.createPackageFragment("java.jfg.",  false, null);
-		} catch (JavaScriptModelException jme2) {
-			assertTrue("Incorrect JavaScriptModelException thrown for creating a package fragment with invalid name", jme2.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_NAME);
-			try {
-				root.createPackageFragment("p.other", false, null);
-			} catch (JavaScriptModelException jme3) {
-				assertTrue("Incorrect JavaScriptModelException thrown for creating a package fragment that collides with a file", jme3.getStatus().getCode() == IJavaScriptModelStatusConstants.NAME_COLLISION);
-				return;
-			}
-		}
-	}
-	assertTrue("No JavaScriptModelException thrown for creating a package fragment with an invalid parameters", false);
-}
-}
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
deleted file mode 100644
index 385264b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/DefaultJavaElementComparator.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Comparator;
-import java.util.List;
-
-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.ArrayType;
-import org.eclipse.wst.jsdt.core.dom.BodyDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FieldDeclaration;
-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;
-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.Type;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment;
-import org.eclipse.wst.jsdt.core.util.JavaScriptUnitSorter;
-
-import com.ibm.icu.text.Collator;
-
-/**
- * The class <code>DefaultJavaElementComparator</code> is a standard
- * implementation of a comparator.
- * <p>
- * <ul>
- * <li>static fields, arranged alphabetically by name and access modifier
- * (public, protected, private, default)</li>
- * <li>static initializers in order of appearance</li>
- * <li>instance fields, arranged alphabetically by name and access modifier
- * (public, protected, private, default)</li>
- * <li>instance initializers in order of appearance</li>
- * <li>type declarations, arranged alphabetically by name and access modifier
- * (public, protected, private, default)</li>
- * <li>constructors, arranged by parameter order and access modifier
- * (public, protected, private, default)</li>
- * <li>methods, arranged by alphabetically by name and parameter order and 
- * access modifier (public, protected, private, default)</li>
- * </p>
- */
-class DefaultJavaElementComparator implements Comparator {
-
-	private static final int STATIC_TYPE_CATEGORY = 0;
-	private static final int STATIC_FIELD_CATEGORY = 1;
-	private static final int STATIC_INITIALIZER_CATEGORY = 2;
-	private static final int STATIC_METHOD_CATEGORY = 3;
-	private static final int TYPE_CATEGORY = 4;
-	private static final int FIELD_CATEGORY = 5;
-	private static final int INITIALIZER_CATEGORY = 6;
-	private static final int CONSTRUCTOR_CATEGORY = 7;
-	private static final int METHOD_CATEGORY = 8;
-	
-	private Collator collator;
-	
-	private int[] categories;
-	
-	/**
-	 * Creates an instance that sorts the various categories of body
-	 * declarations in the following order:
-	 * <ol>
-	 * <li>static types</li>
-	 * <li>static fields </li>
-	 * <li>static initializers</li>
-	 * <li>non-static fields</li>
-	 * <li>instance initializers</li>
-	 * <li>types</li>
-	 * <li>static methods</li>
-	 * <li>constructors</li>
-	 * <li>non-static methods</li>
-	 * </ol>
-	 */
-	public DefaultJavaElementComparator() {
-		// initialize default categories
-		this.categories = new int[] {
-			1, // static type
-			2, // static field
-			3, // static initializer
-			7, // static method
-			6, // type
-			4, // field
-			5, // initializer
-			8, // constructor
-			9  // method
-		};
-		this.collator = Collator.getInstance();
-	}
-
-	/**
-	 * Creates an instance that arranges the various categories of body
-	 * declarations.
-	 * This constructor is used to specify customized values for the different categories.
-	 * They are a convinient way to distinguish AST nodes. 
-	 * The lower a value is, the higher the node will appear in the sorted
-	 * compilation unit.
-	 * <p>
-	 * There are nine categories with theirs default values:
-	 * <ol>
-	 * <li>static types (1)</li>
-	 * <li>static fields (2)</li>
-	 * <li>static initializers (3)</li>
-	 * <li>fields (4) </li>
-	 * <li>initializers (5)</li>
-	 * <li>types (6)</li>
-	 * <li>static methods (7)</li>
-	 * <li>constructors (8)</li>
-	 * <li>methods (9)</li>
-	 * </ol>
-	 * </p>
-	 * 
-	 * @param staticTypeCategory the given value for the static type category
-	 * @param staticFieldCategory the given value for the static field category
-	 * @param staticInitializerCategory the given value for the static initializer category
-	 * @param staticMethodCategory the given value for static the method category
-	 * @param typeCategory the given value for the type category
-	 * @param fieldCategory the given value for field category
-	 * @param initializerCategory the given value for initializer category
-	 * @param constructorCategory the given value for constructor category
-	 * @param methodCategory the given value for method category
-	 */
-	public DefaultJavaElementComparator(
-		int staticTypeCategory,
-		int staticFieldCategory,
-		int staticInitializerCategory,
-		int staticMethodCategory,
-		int typeCategory,
-		int fieldCategory,
-		int initializerCategory,
-		int constructorCategory,
-		int methodCategory) {
-			this.categories = new int[] {
-				staticTypeCategory,
-				staticFieldCategory,
-				staticInitializerCategory,
-				staticMethodCategory,
-				typeCategory,
-				fieldCategory,
-				initializerCategory,
-				constructorCategory,
-				methodCategory
-			};
-		this.collator = Collator.getInstance();
-	}
-
-	/**
-	 * This method is used to retrieve the category for a body declaration node according to the 
-	 * preferences passed at the creation of the comparator.
-	 * 
-	 * @param node the given node
-	 * @return the category corresponding to the given node
-	 * 
-	 * @since 2.1
-	 */
-	private int getCategory(BodyDeclaration node) {
-		switch(node.getNodeType()) {
-			case ASTNode.FUNCTION_DECLARATION :
-				FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-				if (methodDeclaration.isConstructor()) {
-					return this.categories[CONSTRUCTOR_CATEGORY];
-				}
-				if (Flags.isStatic(methodDeclaration.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.TYPE_DECLARATION :
-				AbstractTypeDeclaration abstractTypeDeclaration = (AbstractTypeDeclaration) node;
-				if (Flags.isStatic(abstractTypeDeclaration.getModifiers())) {
-					return this.categories[STATIC_TYPE_CATEGORY];
-				}
-				return this.categories[TYPE_CATEGORY];
-			case ASTNode.INITIALIZER :
-				Initializer initializer = (Initializer) node;
-				if (Flags.isStatic(initializer.getModifiers())) {
-					return this.categories[STATIC_INITIALIZER_CATEGORY];
-				}
-				return this.categories[INITIALIZER_CATEGORY];
-		}
-		return 0;
-	}
-
-	/**
-	 * The <code>DefaultJavaElementComparator</code> implementation of this
-	 * <code>java.util.Comparator</code> method can only be used to compare
-	 * instances of <code>org.eclipse.wst.jsdt.core.dom.BodyDeclaration</code>.
-	 * <p>
-	 * The categories of each body declaration are compared. If they are
-	 * in different categories, they are ordered based on their category.
-	 * Body declarations within the same category are ordered by signature
-	 * string. Body declarations with the same signature string are ordered
-	 * by their original relative positions.
-	 * </p>
-	 */
-	public int compare(Object o1, Object o2) {
-		if (!(o1 instanceof BodyDeclaration) && !(o2 instanceof BodyDeclaration)) {
-			throw new ClassCastException();
-		}
-		BodyDeclaration node1 = (BodyDeclaration) o1;
-		BodyDeclaration node2 = (BodyDeclaration) o2;
-		int category1 = getCategory(node1);
-		int category2 = getCategory(node2);
-		
-		if (category1 != category2) {
-			return category1 - category2;
-		}
-		if (o1 == o2) {
-			return 0;
-		}
-		String node1Signature = buildSignature(node1);
-		String node2Signature = buildSignature(node2);
-		if (node1Signature.length() != 0 && node2Signature.length() != 0) {
-			int compare = this.collator.compare(node1Signature, node2Signature);
-			if (compare != 0) {
-				return compare;
-			}
-		}
-		int sourceStart1 = ((Integer) node1.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-		int sourceStart2 = ((Integer) node2.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-		return sourceStart1 - sourceStart2;
-	}
-
-	private String buildSignature(BodyDeclaration node) {
-		switch(node.getNodeType()) {
-			case ASTNode.FUNCTION_DECLARATION :
-				FunctionDeclaration methodDeclaration = (FunctionDeclaration) node;
-				StringBuffer buffer = new StringBuffer();
-				buffer.append(methodDeclaration.getName().getIdentifier());
-				final List parameters = methodDeclaration.parameters();
-				int length1 = parameters.size();
-				for (int i = 0; i < length1; i++) {
-					SingleVariableDeclaration parameter = (SingleVariableDeclaration) parameters.get(i);
-					buffer.append(parameter.getName().getIdentifier());
-					Type type = parameter.getType();
-					buffer.append(buildSignature(type));
-				}
-				return String.valueOf(buffer);
-			case ASTNode.FIELD_DECLARATION :
-				FieldDeclaration fieldDeclaration = (FieldDeclaration) node;
-				return ((VariableDeclarationFragment) fieldDeclaration.fragments().get(0)).getName().getIdentifier();
-			case ASTNode.INITIALIZER :
-				return ((Integer) node.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).toString();
-			case ASTNode.TYPE_DECLARATION :
-				AbstractTypeDeclaration abstractTypeDeclaration = (AbstractTypeDeclaration) node;
-				return abstractTypeDeclaration.getName().getIdentifier();
-		}
-		return null;
-	}
-
-	private String buildSignature(Type type) {
-		switch(type.getNodeType()) {
-			case ASTNode.PRIMITIVE_TYPE :
-				PrimitiveType.Code code = ((PrimitiveType) type).getPrimitiveTypeCode();
-				return code.toString();
-			case ASTNode.ARRAY_TYPE :
-				ArrayType arrayType = (ArrayType) type;
-				StringBuffer buffer = new StringBuffer();
-				buffer.append(buildSignature(arrayType.getElementType()));
-				int dimensions = arrayType.getDimensions();
-				for (int j = 0; j < dimensions; j++) {
-					buffer.append("[]"); //$NON-NLS-1$
-				}
-				return buffer.toString();
-			case ASTNode.SIMPLE_TYPE :
-				SimpleType simpleType = (SimpleType) type;
-				return buildSignature(simpleType.getName());
-		}
-		return null; // should never happen
-	}
-	
-	private String buildSignature(Name name) {
-		if (name.isSimpleName()) {
-			return ((SimpleName) name).getIdentifier();
-		}
-		QualifiedName qualifiedName = (QualifiedName) name;
-		return buildSignature(qualifiedName.getQualifier()) + "." + buildSignature(qualifiedName.getName()); //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/DeleteTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/DeleteTests.java
deleted file mode 100644
index 78a571a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/DeleteTests.java
+++ /dev/null
@@ -1,1009 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IField;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IImportDeclaration;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptModelStatusConstants;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-/*
- * Tests for ISourceManipulation.delete(...)
- */
-public class DeleteTests extends ModifyingResourceTests {
-
-public DeleteTests(String name) {
-	super(name);
-}
-protected void setUp() throws Exception {
-	super.setUp();
-	// ensure that indexing is not going to interfer with deletion
-	waitUntilIndexesReady();
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	createJavaProject("P");
-}
-public static Test suite() {
-	return buildModelTestSuite(DeleteTests.class);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//		TESTS_NAMES = new String[] { "testDeleteField5" };
-//		TESTS_NUMBERS = new int[] { 2, 12 };
-//		TESTS_RANGE = new int[] { 16, -1 };
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("P");
-	super.tearDownSuite();
-}
-/**
- * Ensures that all import declarations can be deleted, and the container
- * is reported as removed.
- */
-public void testDeleteAllImports() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"import java.util.*;\n" +
-			"import q.Y;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IImportDeclaration[] children= cu.getImports();
-
-		startDeltas();
-		assertDeletion(children);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				<import container>[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that a binary method cannot be deleted.
- */
-public void testDeleteBinaryMethod() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {}, new String[] {"lib"});
-		
-		/* Evaluate the following in a scrapbook:
-			org.eclipse.wst.jsdt.core.tests.model.ModifyingResourceTests.generateClassFile(
-				"X",
-				"public class X {\n" +
-				"  public void foo() {\n" +
-				"  }\n" +
-				"}")
-		*/
-		byte[] bytes = new byte[] {
-			-54, -2, -70, -66, 0, 3, 0, 45, 0, 14, 1, 0, 1, 88, 7, 0, 1, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 7, 0, 3, 1, 0, 6, 60, 105, 110, 105, 116, 62, 1, 0, 3, 40, 41, 86, 1, 0, 4, 67, 111, 100, 101, 12, 0, 5, 0, 6, 10, 0, 4, 0, 8, 1, 0, 15, 76, 105, 110, 101, 78, 117, 
-			109, 98, 101, 114, 84, 97, 98, 108, 101, 1, 0, 3, 102, 111, 111, 1, 0, 10, 83, 111, 117, 114, 99, 101, 70, 105, 108, 101, 1, 0, 6, 88, 46, 106, 97, 118, 97, 0, 33, 0, 2, 0, 4, 0, 0, 0, 0, 0, 2, 0, 1, 0, 5, 0, 6, 0, 1, 0, 7, 0, 0, 0, 29, 0, 1, 0, 1, 0, 0, 0, 5, 42, -73, 0, 9, -79, 0, 0, 0, 1, 
-			0, 10, 0, 0, 0, 6, 0, 1, 0, 0, 0, 1, 0, 1, 0, 11, 0, 6, 0, 1, 0, 7, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, -79, 0, 0, 0, 1, 0, 10, 0, 0, 0, 6, 0, 1, 0, 0, 0, 3, 0, 1, 0, 12, 0, 0, 0, 2, 0, 13, 
-		};
-		this.createFile("P1/lib/X.class", bytes);
-		
-		IClassFile cf = getClassFile("P1/lib/X.class");
-		IFunction method = cf.getType().getFunction("foo", new String[] {});
-		
-		try {
-			method.delete(false, null);
-		} catch (JavaScriptModelException e) {
-			assertTrue("Should be read-only", e.getStatus().getCode() == IJavaScriptModelStatusConstants.READ_ONLY);
-			return;
-		}
-		assertTrue("Should not be able to delete a binary method", false);
-	} finally {
-		deleteProject("P1");
-	}
-}
-/**
- * Ensures that a binary type cannot be deleted.
- */
-public void testDeleteBinaryType() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {}, new String[] {"lib"});
-		
-		/* Evaluate the following in a scrapbook:
-			org.eclipse.wst.jsdt.core.tests.model.ModifyingResourceTests.generateClassFile(
-				"X",
-				"public class X {\n" +
-				"}")
-		*/
-		byte[] bytes = new byte[] {
-			-54, -2, -70, -66, 0, 3, 0, 45, 0, 13, 1, 0, 1, 88, 7, 0, 1, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 7, 0, 3, 1, 0, 6, 60, 105, 110, 105, 116, 62, 1, 0, 3, 40, 41, 86, 1, 0, 4, 67, 111, 100, 101, 12, 0, 5, 0, 6, 10, 0, 4, 0, 8, 1, 0, 15, 76, 105, 110, 101, 78, 117, 
-			109, 98, 101, 114, 84, 97, 98, 108, 101, 1, 0, 10, 83, 111, 117, 114, 99, 101, 70, 105, 108, 101, 1, 0, 6, 88, 46, 106, 97, 118, 97, 0, 33, 0, 2, 0, 4, 0, 0, 0, 0, 0, 1, 0, 1, 0, 5, 0, 6, 0, 1, 0, 7, 0, 0, 0, 29, 0, 1, 0, 1, 0, 0, 0, 5, 42, -73, 0, 9, -79, 0, 0, 0, 1, 0, 10, 0, 0, 0, 6, 
-			0, 1, 0, 0, 0, 1, 0, 1, 0, 11, 0, 0, 0, 2, 0, 12, 
-		};
-		this.createFile("P1/lib/X.class", bytes);
-		
-		IClassFile cf = getClassFile("P1/lib/X.class");
-		IType binaryType = cf.getType();
-		
-		try {
-			cf.getJavaScriptModel().delete(new IJavaScriptElement[] {binaryType}, false, null);
-		} catch (JavaScriptModelException e) {
-			assertTrue("Should be read-only", e.getStatus().getCode() == IJavaScriptModelStatusConstants.READ_ONLY);
-			return;
-		}
-		assertTrue("Should not be able to delete a class file", false);
-	} finally {
-		deleteProject("P1");
-	}
-}
-/**
- * Should be able to delete a CU.
- */
-public void testDeleteCompilationUnit1() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-
-		startDeltas();
-		cu.delete(false, null);
-		assertTrue("Should be able to delete a CU", !cu.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-
-/**
- * Ensure that if a CU is deleted from underneath us in the default
- * package of a nested root, it disappears from existence.
- */
-public void testDeleteCompilationUnit2() throws CoreException {
-	try {
-		IFile file = createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-
-		startDeltas();
-		Util.delete(file);
-		assertTrue("Should be able to delete a CU", !cu.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * After deleting a CU in an IWorkspaceRunnable, it should not exist.
- * (regression test for bug 9232 IJavaScriptUnit.delete() fails)
- */
-public void testDeleteCompilationUnit3() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		final IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		
-		// force the cu to be opened
-		cu.open(null);
-	
-		startDeltas();
-		ResourcesPlugin.getWorkspace().run(
-			new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					cu.delete(true, null);
-					assertTrue("Should be able to delete a CU", !cu.exists());
-				}
-			},
-			null
-		);
-		assertTrue("Should be able to delete a CU", !cu.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Should be able to delete a CU in a non-default package.
- */
-public void testDeleteCompilationUnit4() throws CoreException {
-	try {
-		createFolder("P/p");
-		IFile file = createFile(
-			"P/p/X.js",
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/p/X.js");
-
-		startDeltas();
-		cu.delete(false, null);
-		assertTrue("CU should not exist", !cu.exists());
-		assertTrue("Corresponding file should not exist", !file.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		p[*]: {CHILDREN}\n" + 
-			"			X.java[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFolder("P/p");
-	}
-}
-/**
- * Ensures that a constructor can be deleted.
- * Verify that the correct change deltas are generated.
- */
-public void testDeleteConstructor() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  public X(String s) {\n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IFunction constructor = cu.getType("X").getFunction("X", new String[] {"QString;"});
-
-		startDeltas();
-		assertDeletion(constructor);
-		assertTrue("Should be able to delete a constructor", !constructor.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					X(String)[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensure that deleting an empty package fragment that has a sub-package is not possible.
- */
-public void testDeleteEmptyPackageFragment() throws CoreException {
-	try {
-		createFolder("P/p1/p2");
-		IPackageFragment pkg = getPackage("P/p1");
-		IFolder folder = getFolder("P/p1");
-
-		startDeltas();
-		pkg.delete(false, null);
-		assertTrue("Folder should exist", folder.exists());
-		assertTrue("Fragment should exist", pkg.exists());
-		assertDeltas(
-			"Unexpected delta",
-			""
-		);
-	} finally {
-		stopDeltas();
-		deleteFolder("P/p1");
-	}
-}
-/**
- * Ensures that a field can be deleted.
- */
-public void testDeleteField1() throws CoreException { // was testDeleteField
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  int field;\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IField field = cu.getType("X").getField("field");
-
-		startDeltas();
-		assertDeletion(field);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					field[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that deletion can be canceled.
- */
-public void testDeleteField2() throws CoreException { // was testDeleteFieldWithCancel
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  int field;\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IField field = cu.getType("X").getField("field");
-
-		boolean isCanceled = false;
-		try {
-			TestProgressMonitor monitor = TestProgressMonitor.getInstance();
-			monitor.setCancelledCounter(1);
-			getJavaModel().delete(new IJavaScriptElement[] {field}, false, monitor);
-		} catch (OperationCanceledException e) {
-			isCanceled = true;
-		}
-		assertTrue("Operation should have thrown an operation canceled exception", isCanceled);
-	} finally {
-		deleteFile("P/X.js");
-	}
-}
-/*
- * Ensures that a field can be deleted inside a scheduling rule that include the resource only.
- * (regression test for bug 73078 ISourceManipulation.delete() tries to run in WorkspaceRoot scheduling rule)
- */
-public void testDeleteField3() throws CoreException {
-	try {
-		IFile file = createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  int field;\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		final IField field = cu.getType("X").getField("field");
-
-		startDeltas();
-		getWorkspace().run(
-			new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					assertDeletion(field);
-				}
-			}, 
-			file,
-			IWorkspace.AVOID_UPDATE,
-			null);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					field[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/*
- * Ensures that a field with initializer can be deleted.
- * (regression test for bug 112935 IField.delete is not deleting the value of the variable.)
- */
-public void testDeleteField4() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  private String t = \"sample test\";\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IField field = cu.getType("X").getField("t");
-		field.delete(false, null);
-		assertSourceEquals(
-			"Unexpected source", 
-			"public class X {\n" + 
-			"}",
-			cu.getSource());
-	} finally {
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Delete enum
- */
-public void testDeleteField5() throws CoreException {
-	try {
-		this.createJavaProject("P1", new String[] {""}, new String[] {"JCL15_LIB"}, null, "", "1.5");
-		createFile(
-			"P1/X.js",
-			"public enum X {\n" +
-			"  A, B, C\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P1/X.js");
-		IField field = cu.getType("X").getField("A");
-		field.delete(false, null);
-		assertSourceEquals(
-			"Unexpected source", 
-			"public enum X {\n" + 
-			"  B, C\n" + 
-			"}",
-			cu.getSource());
-	} finally {
-		deleteProject("P1");
-	}
-}
-/**
- * Ensures that an import declaration can be deleted.
- */
-public void testDeleteImportDeclaration() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"import java.util.*;\n" +
-			"import q.Y;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IImportDeclaration imp= cu.getImport("q.Y");
-
-		startDeltas();
-		assertDeletion(imp);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				<import container>[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					import q.Y[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that a method can be deleted.
- */
-public void testDeleteMethod() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  public void foo() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IFunction method = cu.getType("X").getFunction("foo", new String[] {});
-
-		startDeltas();
-		assertDeletion(method);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					foo()[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that multiple member Java elements contained within different
- * compilation units can be deleted.
- * Verifies that the correct changed deltas are generated.
- */
-public void testDeleteMultipleMembersFromVariousCUs() throws CoreException {
-	try {
-		createFolder("P/a/b/c");
-		createFile(
-			"P/a/b/c/X.js",
-			"package a.b.c;\n" +
-			"import java.util.Vector;\n" +
-			"import java.util.Enumeration;\n" +
-			"public class X {\n" +
-			"  public static void main(String[] args) {\n" +
-			"    System.out.println(\"Hello World\");\n" +
-			"  }\n" +
-			"  static class Bar {\n" +
-			"    private final java.lang.String test = \"testminor\";\n" +
-			"    public Bar() {\n" +
-			"      super();\n" +
-			"    }\n" +
-			"    private void test() {\n" +
-			"    }\n" +
-			"  }\n" +
-			"}"
-		);
-		createFile(
-			"P/a/b/Y.js",
-			"package a.b;\n" +
-			"public class Y {\n" +
-			"  int foo;\n" +
-			"  public static void main(String[] args) {\n" +
-			"    System.out.println(\"Hello World\");\n" +
-			"  }\n" +
-			"}"
-		);
-		
-		// elements to be deleted:
-		// from a/b/c/X.java:
-		//   java.util.Vector
-		//	  main
-		//   Bar (inner type)
-		//	    Bar (constructor)
-		//	    test
-		//   Bar (inner type, same as above)
-	
-		// from a/b/Y.java
-		//   foo
-		//   main
-		
-		IJavaScriptUnit cuX = getCompilationUnit("P/a/b/c/X.js");
-		IType typeX = cuX.getType("X");
-		IType typeBar = typeX.getType("Bar");
-	
-		IJavaScriptElement[] toBeDeleted = new IJavaScriptElement[8];
-		toBeDeleted[0] = cuX.getImport("java.util.Vector");
-		toBeDeleted[1] = typeX.getFunction("main", new String[] {"[QString;"});
-		toBeDeleted[2] = typeBar;
-		toBeDeleted[3] = typeBar.getFunction("Bar", new String[] {});
-		toBeDeleted[4] = typeBar.getFunction("test", new String[] {});
-		toBeDeleted[5] = typeBar;
-		
-		IJavaScriptUnit cuY = getCompilationUnit("P/a/b/Y.js");
-		IType typeY = cuY.getType("Y");
-		
-		toBeDeleted[6] = typeY.getField("foo");
-		toBeDeleted[7] = typeY.getFunction("main", new String[] {"[QString;"});
-	
-		startDeltas();
-		assertDeletion(toBeDeleted);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		a.b[*]: {CHILDREN}\n" + 
-			"			Y.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				Y[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					foo[-]: {}\n" + 
-			"					main(String[])[-]: {}\n" + 
-			"		a.b.c[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				<import container>[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					import java.util.Vector[-]: {}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					Bar[-]: {}\n" + 
-			"					main(String[])[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFolder("P/a");
-	}
-}
-public void testDeletePackageFragment1() throws CoreException {
-	try {
-		createFolder("P/a/b/c");
-		createFile(
-			"P/a/b/c/X.js",
-			"package a.b.c;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragment pkg = getPackage("P/a/b/c");
-		IFolder folder = getFolder("P/a/b/c");
-
-		startDeltas();
-		pkg.delete(false, null);
-		assertTrue("Folder should not exist", !folder.exists());
-		assertTrue("Fragment should not exist", !pkg.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		a.b.c[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFolder("P/p1");
-	}
-}
-/*
- * Ensures that deleting a default package doesn't remove the source folder.
- * (regression test for bug 38450 Delete: Removing default package removes source folder)
- */
-public void testDeletePackageFragment2() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {"src"});
-		IFile file = createFile(
-			"P1/src/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragment pkg = getPackage("P1/src");
-		IFolder folder = getFolder("P1/src");
-		IJavaScriptUnit cu = getCompilationUnit("P1/src/X.js");
-
-		startDeltas();
-		pkg.delete(false, null);
-		assertTrue("Folder should still exist", folder.exists());
-		assertTrue("Fragment should still exist", pkg.exists());
-		assertTrue("File should no longer exist", !file.exists());
-		assertTrue("Compilation unit should no longer exist", !cu.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN}\n" + 
-			"	src[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-/*
- * Ensures that deleting a default package where prj=src removes its compilation units is successful.
- * (regression test for bug 39926 deleting default package (not in source folder) does nothing)
- */
-public void testDeletePackageFragment3() throws CoreException {
-	try {
-		createJavaProject("P1");
-		IFile file = createFile(
-			"P1/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragment pkg = getPackage("P1");
-		IProject project = getProject("P1");
-		IJavaScriptUnit cu = getCompilationUnit("P1/X.js");
-
-		startDeltas();
-		pkg.delete(false, null);
-		assertTrue("Project should still exist", project.exists());
-		assertTrue("Fragment should still exist", pkg.exists());
-		assertTrue("File should no longer exist", !file.exists());
-		assertTrue("Compilation unit should no longer exist", !cu.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-/*
- * Ensures that deleting a package that only contains a .class file is successful.
- * (regression test for bug 40606 Unable to discard empty package if containing .class files)
- */
-public void testDeletePackageFragment4() throws CoreException {
-	try {
-		createJavaProject("P1");
-		IFolder folder = createFolder("P1/p");
-		IFile file = createFile("P1/p/X.class", "");
-		IPackageFragment pkg = getPackage("P1/p");
-
-		startDeltas();
-		pkg.delete(false, null);
-		assertTrue("Folder should no longer exist", !folder.exists());
-		assertTrue("Fragment should no longer exist", !pkg.exists());
-		assertTrue("File should no longer exist", !file.exists());
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		p[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-
-/**
- * Ensures that a field can be deleted if it contains syntax errors
- */
-public void testDeleteSyntaxErrorField() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  int field\n" + // missing semi-colon
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IField field = cu.getType("X").getField("field");
-
-		startDeltas();
-		assertDeletion(field);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					field[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that a method can be deleted if it contains syntax errors
- */
-public void testDeleteSyntaxErrorInMethod1() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  public void foo() {\n" +
-			"    String s = ;\n" +
-			"    System.out.println(s);\n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IFunction method = cu.getType("X").getFunction("foo", new String[] {});
-
-		startDeltas();
-		assertDeletion(method);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					foo()[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that a method can be deleted if it contains syntax errors
- */
-public void testDeleteSyntaxErrorInMethod2() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  public void foo() \n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IFunction method = cu.getType("X").getFunction("foo", new String[] {});
-
-		startDeltas();
-		assertDeletion(method);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					foo()[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that a method can be deleted if it contains syntax errors
- */
-public void testDeleteSyntaxErrorInMethod3() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  public void foo( \n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IFunction method = cu.getType("X").getFunction("foo", new String[] {});
-
-		startDeltas();
-		assertDeletion(method);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-			"					foo()[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that a type can be deleted if it contains syntax errors
- */
-public void testDeleteSyntaxErrorType() throws CoreException {
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"  method() {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IType type = cu.getType("X");
-
-		startDeltas();
-		assertDeletion(type);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Ensures that a type can be deleted from a compilation unit.
- */
-public void testDeleteType1() throws CoreException{
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IType type = cu.getType("X");
-
-		startDeltas();
-		assertDeletion(type);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteFile("P/X.js");
-	}
-}
-/**
- * Delete a type in a default package that is nested
- * in a root folder that is not the project folder.
- */
-public void testDeleteType2() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {"src"});
-		createFile(
-			"P1/src/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P1/src/X.js");
-		IType type = cu.getType("X");
-
-		startDeltas();
-		assertDeletion(type);
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN}\n" + 
-			"	src[*]: {CHILDREN}\n" + 
-			"		<default>[*]: {CHILDREN}\n" + 
-			"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-			"				X[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P1");
-	}
-}
-/**
- * Ensure that the correct exception is thrown for invalid input to the <code>DeleteOperation</code>
- */
-public void testDeleteWithInvalidInput() throws CoreException {
-	IType type = null;
-	try {
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		type = cu.getType("X");
-
-		getJavaModel().delete(null, false, null);
-	} catch (JavaScriptModelException e) {
-		assertTrue("Should be an no elements to process: null supplied", e.getStatus().getCode() == IJavaScriptModelStatusConstants.NO_ELEMENTS_TO_PROCESS);
-		try {
-			getJavaModel().delete(new IJavaScriptElement[] {type}, false, null);
-		} catch (JavaScriptModelException e2) {
-			assertTrue("Should be an no elements to process: null in the array supplied", e2.getStatus().getCode() == IJavaScriptModelStatusConstants.NO_ELEMENTS_TO_PROCESS);
-		}
-		return;
-	} finally {
-		deleteFile("P/X.js");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/EncodingTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/EncodingTests.java
deleted file mode 100644
index 4c31ac7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/EncodingTests.java
+++ /dev/null
@@ -1,918 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IOpenable;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.ISourceReference;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchConstants;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope;
-import org.eclipse.wst.jsdt.core.search.SearchEngine;
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaSearchTests.JavaSearchResultCollector;
-import org.eclipse.wst.jsdt.internal.core.util.Util;
-
-public class EncodingTests extends ModifyingResourceTests {
-	IProject encodingProject;
-	IJavaScriptProject encodingJavaProject;
-	IFile utf8File;
-	ISourceReference utf8Source;
-	static String vmEncoding = System.getProperty("file.encoding");
-	static String wkspEncoding = vmEncoding;
-
-	public EncodingTests(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		return buildModelTestSuite(EncodingTests.class);
-	}
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-//		TESTS_NAMES = new String[] { "testBug110576" };
-//		TESTS_NUMBERS = new int[] { 2, 12 };
-//		TESTS_RANGE = new int[] { 16, -1 };
-	}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		wkspEncoding = getWorkspaceRoot().getDefaultCharset();
-		System.out.println("Encoding tests using Workspace charset: "+wkspEncoding+" and VM charset: "+vmEncoding);
-		this.encodingJavaProject = setUpJavaProject("Encoding");
-		this.encodingProject = (IProject) this.encodingJavaProject.getResource();
-		this.utf8File = (IFile) this.encodingProject.findMember("src/testUTF8/Test.js");
-	}
-
-	public void tearDownSuite() throws Exception {
-		super.tearDownSuite();
-		getWorkspaceRoot().setDefaultCharset(null, null);
-		deleteProject("Encoding");
-	}
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * Reset UTF-8 file and project charset to default.
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		this.encodingProject.setDefaultCharset(null, null);
-		if (this.utf8File.exists()) this.utf8File.setCharset(null, null);
-		if (this.utf8Source != null) ((IOpenable) this.utf8Source).close();
-		this.encodingJavaProject.close();
-		super.tearDown();
-	}
-
-	void compareContents(IJavaScriptUnit cu, String encoding) throws JavaScriptModelException {
-		compareContents(cu, encoding, false);
-	}
-
-	void compareContents(IJavaScriptUnit cu, String encoding, boolean bom) throws JavaScriptModelException {
-		// Compare source strings
-		String source = cu.getSource();
-		String systemSourceRenamed = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(source);
-		IFile file = (IFile) cu.getUnderlyingResource();
-		String renamedContents = new String (Util.getResourceContentsAsCharArray(file));
-		renamedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(renamedContents);
-		assertEquals("Encoded UTF-8 source should have been decoded the same way!", renamedContents, systemSourceRenamed);
-		// Compare bytes array
-		byte[] renamedSourceBytes = null;
-		try {
-			renamedSourceBytes = source.getBytes(encoding);
-		}
-		catch (UnsupportedEncodingException uue) {
-		}
-		assertNotNull("Unsupported encoding: "+encoding, renamedSourceBytes);
-		byte[] renamedEncodedBytes = Util.getResourceContentsAsByteArray(file);
-		int start = bom ? IContentDescription.BOM_UTF_8.length : 0;
-		assertEquals("Wrong size of encoded string", renamedEncodedBytes.length-start, renamedSourceBytes.length);
-		for (int i = 0, max = renamedSourceBytes.length; i < max; i++) {
-			assertTrue("Wrong size of encoded character at " + i, renamedSourceBytes[i] == renamedEncodedBytes[i+start]);
-		}
-	}
-
-	public boolean convertToIndependantLineDelimiter(File file) {
-		return false; // don't convert to independant line delimiter as this make tests fail on linux
-	}
-	/**
-	 * Check that the compilation unit is saved with the proper encoding.
-	 */
-	public void testCreateCompilationUnitAndImportContainer() throws JavaScriptModelException, CoreException {
-		String savedEncoding = null;
-		try {
-			Preferences preferences = ResourcesPlugin.getPlugin().getPluginPreferences();
-			
-			savedEncoding = preferences.getString(ResourcesPlugin.PREF_ENCODING);
-			String encoding = "UTF-8";
-			preferences.setValue(ResourcesPlugin.PREF_ENCODING, encoding);
-			
-			ResourcesPlugin.getPlugin().savePluginPreferences();
-
-			IJavaScriptProject newProject = createJavaProject("P", new String[] { "" });
-			IPackageFragment pkg = getPackageFragment("P", "", "");
-			String source = "public class A {\r\n" +
-				"	public static main(String[] args) {\r\n" +
-				"		System.out.println(\"\u00e9\");\r\n" +
-				"	}\r\n" +
-				"}";
-			IJavaScriptUnit cu= pkg.createCompilationUnit("A.js", source, false, new NullProgressMonitor());
-			assertCreation(cu);
-			cu.rename("B.js", true, new NullProgressMonitor());
-			cu = pkg.getJavaScriptUnit("B.js");
-			cu.rename("A.js", true, new NullProgressMonitor());
-			cu = pkg.getJavaScriptUnit("A.js");
-			byte[] tab = null;
-			try {
-				tab = cu.getSource().getBytes(encoding);
-			} catch (UnsupportedEncodingException e) {
-				throw new RuntimeException(e);
-			}
-			byte[] encodedContents = Util.getResourceContentsAsByteArray(newProject.getProject().getWorkspace().getRoot().getFile(cu.getPath()));
-			assertEquals("wrong size of encoded string", tab.length, encodedContents.length);
-			for (int i = 0, max = tab.length; i < max; i++) {
-				assertTrue("wrong size of encoded character at" + i, tab[i] == encodedContents[i]);
-			}
-		} finally {
-			deleteProject("P");
-			Preferences preferences = ResourcesPlugin.getPlugin().getPluginPreferences();
-			preferences.setValue(ResourcesPlugin.PREF_ENCODING, savedEncoding);
-			ResourcesPlugin.getPlugin().savePluginPreferences();
-		}
-	}	
-
-	/*
-	##################
-	#	Test with compilation units
-	##################
-	/*
-	 * Get compilation unit source on a file written in UTF-8 charset using specific UTF-8 encoding for file.
-	 * Verify first that source is the same than file contents read using UTF-8 encoding...
-	 * Also verify that bytes array converted back to UTF-8 is the same than the file bytes array.
-	 */
-	public void test001() throws JavaScriptModelException, CoreException, UnsupportedEncodingException {
-
-		// Set file encoding
-		String encoding = "UTF-8";
-		this.utf8File.setCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getCompilationUnit(this.utf8File.getFullPath().toString());
-		String source = this.utf8Source.getSource();
-		String systemSource = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertEquals("Encoded UTF-8 source should have been decoded the same way!", encodedContents, systemSource);
-
-		// Now compare bytes array
-		byte[] sourceBytes = source.getBytes(encoding);
-		byte[] encodedBytes = Util.getResourceContentsAsByteArray(this.utf8File);
-		assertEquals("Wrong size of encoded string", encodedBytes.length, sourceBytes.length);
-		for (int i = 0, max = sourceBytes.length; i < max; i++) {
-			assertTrue("Wrong size of encoded character at " + i, sourceBytes[i] == encodedBytes[i]);
-		}
-	}	
-
-	/*
-	 * Get compilation unit source on a file written in UTF-8 charset using UTF-8 encoding for project.
-	 * Verify first that source is the same than file contents read using UTF-8 encoding...
-	 * Also verify that bytes array converted back to UTF-8 is the same than the file bytes array.
-	 */
-	public void test002() throws JavaScriptModelException, CoreException, UnsupportedEncodingException {
-
-		// Set project encoding
-		String encoding = "UTF-8";
-		this.encodingProject.setDefaultCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getCompilationUnit(this.utf8File.getFullPath().toString());
-		String source = this.utf8Source.getSource();
-		String systemSource = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertEquals("Encoded UTF-8 source should have been decoded the same way!", encodedContents, systemSource);
-
-		// Now compare bytes array
-		byte[] sourceBytes = source.getBytes(encoding);
-		byte[] encodedBytes = Util.getResourceContentsAsByteArray(this.utf8File);
-		assertEquals("Wrong size of encoded string", encodedBytes.length, sourceBytes.length);
-		for (int i = 0, max = sourceBytes.length; i < max; i++) {
-			assertTrue("Wrong size of encoded character at " + i, sourceBytes[i] == encodedBytes[i]);
-		}
-	}	
-
-	/*
-	 * Get compilation unit source on a file written in UTF-8 charset using workspace default encoding.
-	 * Verify that source is the same than file contents read using workspace default encoding...
-	 * Also verify that bytes array converted back to wokrspace default encoding is the same than the file bytes array.
-	 * Do not compare array contents in case of VM default encoding equals to "ASCII" as meaningful bit 7 is lost
-	 * during first conversion...
-	 */
-	public void test003() throws JavaScriptModelException, CoreException, UnsupportedEncodingException {
-
-		// Get source and compare with file contents
-		this.utf8Source = getCompilationUnit(this.utf8File.getFullPath().toString());
-		String source = this.utf8Source.getSource();
-		String systemSource = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertEquals("Encoded UTF-8 source should have been decoded the same way!", encodedContents, systemSource);
-			
-		// Now compare bytes array
-		byte[] sourceBytes = source.getBytes(wkspEncoding);
-		byte[] encodedBytes = Util.getResourceContentsAsByteArray(this.utf8File);
-		assertEquals("Wrong size of encoded string", encodedBytes.length, sourceBytes.length);
-		// Do not compare arrays contents as system encoding may have lost meaningful bit 7 during convertion...)
-//		if (!"ASCII".equals(vmEncoding)) {
-//			for (int i = 0, max = sourceBytes.length; i < max; i++) {
-//				assertTrue("Wrong size of encoded character at " + i, sourceBytes[i] == encodedBytes[i]);
-//			}
-//		}
-	}
-
-	/*
-	 * Get compilation unit source on a file written in UTF-8 charset using an encoding
-	 * for file different than VM default one.
-	 * Verify that source is different than file contents read using VM default encoding...
-	 */
-	public void test004() throws JavaScriptModelException, CoreException {
-
-		// Set file encoding
-		String encoding = "UTF-8".equals(vmEncoding) ? "Cp1252" : "UTF-8";
-		this.utf8File.setCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getCompilationUnit(this.utf8File.getFullPath().toString());
-		String source = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(this.utf8Source.getSource());
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, vmEncoding));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertFalse("Sources should not be the same as they were decoded with different encoding!", encodedContents.equals(source));
-	}
-
-	/*
-	 * Get compilation unit source on a file written in UTF-8 charset using an encoding
-	 * for project different than VM default one.
-	 * Verify that source is different than file contents read using VM default encoding...
-	 */
-	public void test005() throws JavaScriptModelException, CoreException {
-
-		// Set project encoding
-		String encoding = "UTF-8".equals(vmEncoding) ? "Cp1252" : "UTF-8";
-		this.encodingProject.setDefaultCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getCompilationUnit(this.utf8File.getFullPath().toString());
-		String source = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(this.utf8Source.getSource());
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, vmEncoding));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertFalse("Sources should not be the same as they were decoded with different encoding!", encodedContents.equals(source));
-	}	
-
-	/*
-	 * Get compilation unit source on a file written in UTF-8 charset using workspace default encoding.
-	 * Verify that source is different than file contents read using VM default encoding or another one
-	 * if VM and Workspace default encodings are identical...
-	 */
-	public void test006() throws JavaScriptModelException, CoreException {
-
-		// Set encoding different than workspace default one
-		String encoding = wkspEncoding.equals(vmEncoding) ? ("UTF-8".equals(wkspEncoding) ? "Cp1252" : "UTF-8") : vmEncoding;
-
-		// Get source and compare with file contents
-		this.utf8Source = getCompilationUnit(this.utf8File.getFullPath().toString());
-		String source = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(this.utf8Source.getSource());
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, encoding));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertFalse("Sources should not be the same as they were decoded with different encoding!", encodedContents.equals(source));
-	}
-
-	/*
-	##############
-	#	Tests with class file
-	##############
-	/* Same config than test001  */
-	public void test011() throws JavaScriptModelException, CoreException, UnsupportedEncodingException {
-
-		// Set file encoding
-		String encoding = "UTF-8";
-		this.utf8File.setCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getClassFile("Encoding" , "bins", "testUTF8", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String source = this.utf8Source.getSource();
-		String systemSource = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertEquals("Encoded UTF-8 source should have been decoded the same way!", encodedContents, systemSource);
-
-		// Now compare bytes array
-		byte[] sourceBytes = source.getBytes(encoding);
-		byte[] encodedBytes = Util.getResourceContentsAsByteArray(this.utf8File);
-		assertEquals("Wrong size of encoded string", encodedBytes.length, sourceBytes.length);
-		for (int i = 0, max = sourceBytes.length; i < max; i++) {
-			assertTrue("Wrong size of encoded character at " + i, sourceBytes[i] == encodedBytes[i]);
-		}
-	}	
-
-	/* Same config than test002  */
-	public void test012() throws JavaScriptModelException, CoreException, UnsupportedEncodingException {
-
-		// Set project encoding
-		String encoding = "UTF-8";
-		this.encodingProject.setDefaultCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getClassFile("Encoding" , "bins", "testUTF8", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String source = this.utf8Source.getSource();
-		String systemSource = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertEquals("Encoded UTF-8 source should have been decoded the same way!", encodedContents, systemSource);
-
-		// Now compare bytes array
-		byte[] sourceBytes = source.getBytes(encoding);
-		byte[] encodedBytes = Util.getResourceContentsAsByteArray(this.utf8File);
-		assertEquals("Wrong size of encoded string", encodedBytes.length, sourceBytes.length);
-		for (int i = 0, max = sourceBytes.length; i < max; i++) {
-			assertTrue("Wrong size of encoded character at " + i, sourceBytes[i] == encodedBytes[i]);
-		}
-	}	
-
-	/* Same config than test003  */
-	public void test013() throws JavaScriptModelException, CoreException, UnsupportedEncodingException {
-
-		// Get source and compare with file contents
-		this.utf8Source = getClassFile("Encoding" , "bins", "testUTF8", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String source = this.utf8Source.getSource();
-		String systemSource = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertEquals("Encoded UTF-8 source should have been decoded the same way!", encodedContents, systemSource);
-			
-		// Now compare bytes array
-		byte[] sourceBytes = source.getBytes(wkspEncoding);
-		byte[] encodedBytes = Util.getResourceContentsAsByteArray(this.utf8File);
-		assertEquals("Wrong size of encoded string", encodedBytes.length, sourceBytes.length);
-		// Do not compare arrays contents as system encoding may have lost meaningful bit 7 during convertion...)
-//		if (!"ASCII".equals(vmEncoding)) {
-//			for (int i = 0, max = sourceBytes.length; i < max; i++) {
-//				assertTrue("Wrong size of encoded character at " + i, sourceBytes[i] == encodedBytes[i]);
-//			}
-//		}
-	}
-
-	/* Same config than test004  */
-	public void test014() throws JavaScriptModelException, CoreException {
-
-		// Set file encoding
-		String encoding = "UTF-8".equals(vmEncoding) ? "Cp1252" : "UTF-8";
-		this.utf8File.setCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getClassFile("Encoding" , "bins", "testUTF8", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String source = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(this.utf8Source.getSource());
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, vmEncoding));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertFalse("Sources should not be the same as they were decoded with different encoding!", encodedContents.equals(source));
-	}
-
-	/* Same config than test005  */
-	public void test015() throws JavaScriptModelException, CoreException {
-
-		// Set project encoding
-		String encoding = "UTF-8".equals(vmEncoding) ? "Cp1252" : "UTF-8";
-		this.encodingProject.setDefaultCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getClassFile("Encoding" , "bins", "testUTF8", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String source = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(this.utf8Source.getSource());
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, vmEncoding));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertFalse("Sources should not be the same as they were decoded with different encoding!", encodedContents.equals(source));
-	}	
-
-	/* Same config than test006  */
-	public void test016() throws JavaScriptModelException, CoreException {
-
-		// Set encoding different than workspace default one
-		String encoding = wkspEncoding.equals(vmEncoding) ? ("UTF-8".equals(wkspEncoding) ? "Cp1252" : "UTF-8") : vmEncoding;
-
-		// Get source and compare with file contents
-		this.utf8Source = getClassFile("Encoding" , "bins", "testUTF8", "Test.class"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		String source = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(this.utf8Source.getSource());
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, encoding));
-		encodedContents = org.eclipse.wst.jsdt.core.tests.util.Util.convertToIndependantLineDelimiter(encodedContents);
-		assertFalse("Sources should not be the same as they were decoded with different encoding!", encodedContents.equals(source));
-	}
-
-	/*
-	###############################
-	#	Tests with jar file and source attached in zip file
-	###############################
-	/**
-	 * Get class file from jar file with an associated source written in UTF-8 charset using no specific encoding for file.
-	 * Verification is done by comparing source with file contents read directly with VM encoding...
-	 */
-	public void test021() throws JavaScriptModelException, CoreException {
-
-		// Get class file and compare source
-		IPackageFragmentRoot root = getPackageFragmentRoot("Encoding", "testUTF8.jar");
-		this.utf8Source = root.getPackageFragment("testUTF8").getClassFile("Test.class");
-		assertNotNull(this.utf8Source);
-		String source = this.utf8Source.getSource();
-		assertNotNull(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, vmEncoding));
-		assertSourceEquals("Encoded UTF-8 source should have been decoded the same way!", source, encodedContents);
-
-		// Cannot compare bytes array without encoding as we're dependent of linux/windows os for new lines delimiter
-	}
-
-	/*
-	 * Get class file from jar file with an associated source written in UTF-8 charset using specific UTF-8 encoding for project.
-	 * Verification is done by comparing source with file contents read directly with UTF-8 encoding...
-	 */
-	public void test022() throws JavaScriptModelException, CoreException {
-
-		// Set project encoding
-		String encoding = "UTF-8".equals(vmEncoding) ? "Cp1252" : "UTF-8";
-		this.encodingProject.setDefaultCharset(encoding, null);
-
-		// Get class file and compare source (should not be the same as modify charset on zip file has no effect...)
-		IPackageFragmentRoot root = getPackageFragmentRoot("Encoding", "testUTF8.jar");
-		this.utf8Source = root.getPackageFragment("testUTF8").getClassFile("Test.class");
-		assertNotNull(this.utf8Source);
-		String source = this.utf8Source.getSource();
-		assertNotNull(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, encoding));
-		assertFalse("Sources should not be the same as they were decoded with different encoding!", encodedContents.equals(source));
-	}
-
-	/*
-	 * Get class file from jar file with an associated source written in UTF-8 charset using specific UTF-8 encoding for file.
-	 * Verification is done by comparing source with file contents read directly with UTF-8 encoding...
-	 */
-	public void test023() throws JavaScriptModelException, CoreException {
-
-		// Set file encoding
-		String encoding = "UTF-8".equals(vmEncoding) ? "Cp1252" : "UTF-8";
-		IFile zipFile = (IFile) this.encodingProject.findMember("testUTF8.zip"); //$NON-NLS-1$
-		assertNotNull("Cannot find class file!", zipFile);
-		zipFile.setCharset(encoding, null);
-
-		// Get class file and compare source (should not be the same as modify charset on zip file has no effect...)
-		IPackageFragmentRoot root = getPackageFragmentRoot("Encoding", "testUTF8.jar");
-		this.utf8Source = root.getPackageFragment("testUTF8").getClassFile("Test.class");
-		assertNotNull(this.utf8Source);
-		String source = this.utf8Source.getSource();
-		assertNotNull(source);
-		String encodedContents = new String (Util.getResourceContentsAsCharArray(this.utf8File, encoding));
-		assertFalse("Sources should not be the same as they were decoded with different encoding!", encodedContents.equals(source));
-		
-		// Reset zip file encoding
-		zipFile.setCharset(null, null);
-	}
-
-	/**
-	 * Test for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=55930.
-	 * Verify Buffer.save(IProgressMonitor, boolean) method.
-	 */
-	public void test030() throws JavaScriptModelException, CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String encoding = "UTF-8";
-			this.createJavaProject("P", new String[] {""});
-			String initialContent = "/**\n"+
-				" */\n"+
-				"public class Test {}";
-			IFile file = this.createFile("P/Test.js", initialContent);
-			file.setCharset(encoding, null);
-			IJavaScriptUnit cu = this.getCompilationUnit("P/Test.js"); 
-			
-			// Modif direct the buffer
-			String firstModif = "/**\n"+
-				" * Caract?res exotiques:\n"+
-				" * ?|#|?|?|?|?|?|?|?|?|??\n"+
-				" */\n"+
-				"public class Test {}";
-			cu.getBuffer().setContents(firstModif);
-			cu.getBuffer().save(null, true);
-			String source = cu.getBuffer().getContents();
-			
-			// Compare strings and bytes arrays
-			String encodedContents = new String (Util.getResourceContentsAsCharArray(file, encoding));
-			assertEquals("Encoded UTF-8 source should have been decoded the same way!", encodedContents, source);
-			byte[] sourceBytes = source.getBytes(encoding);
-			byte[] encodedBytes = Util.getResourceContentsAsByteArray(file);
-			assertEquals("Wrong size of encoded string", encodedBytes.length, sourceBytes.length);
-			for (int i = 0, max = sourceBytes.length; i < max; i++) {
-				assertTrue("Wrong size of encoded character at " + i, sourceBytes[i] == encodedBytes[i]);
-			}
-		} catch (UnsupportedEncodingException e) {
-		} finally {
-			this.stopDeltas();
-			if (workingCopy != null) {
-				workingCopy.discardWorkingCopy();
-			}
-			this.deleteProject("P");
-		}
-
-	}
-
-	/**
-	 * Test for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=55930.
-	 * Verify CommitWorkingCopyOperation.executeOperation() method.
-	 */
-	public void test031() throws JavaScriptModelException, CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			String encoding = "UTF-8";
-			this.createJavaProject("P", new String[] {""});
-			String initialContent = "/**\n"+
-				" */\n"+
-				"public class Test {}";
-			IFile file = this.createFile("P/Test.js", initialContent);
-			file.setCharset(encoding, null);
-			IJavaScriptUnit cu = this.getCompilationUnit("P/Test.js"); 
-			
-			// Modif using working copy
-			workingCopy = cu.getWorkingCopy(null);
-			String secondModif = "/**\n"+
-				" * Caract?res exotiques:\n"+
-				" * ?|#|?|?|?|?|?|?|?|?|??\n"+
-				" * Autres caract?res exotiques:\n"+
-				" * ?|?|?|?|?|?\n"+
-				" */\n"+
-				"public class Test {}";
-			workingCopy.getBuffer().setContents(secondModif);
-			workingCopy.commitWorkingCopy(true, null);
-			String source = workingCopy.getBuffer().getContents();
-			
-			// Compare strings and bytes arrays
-			String encodedContents = new String (Util.getResourceContentsAsCharArray(file));
-			assertEquals("Encoded UTF-8 source should have been decoded the same way!", encodedContents, source);
-			byte[] sourceBytes = source.getBytes(encoding);
-			byte[] encodedBytes = Util.getResourceContentsAsByteArray(file);
-			assertEquals("Wrong size of encoded string", encodedBytes.length, sourceBytes.length);
-			for (int i = 0, max = sourceBytes.length; i < max; i++) {
-				assertTrue("Wrong size of encoded character at " + i, sourceBytes[i] == encodedBytes[i]);
-			}
-		} catch (UnsupportedEncodingException e) {
-		} finally {
-			this.stopDeltas();
-			if (workingCopy != null) {
-				workingCopy.discardWorkingCopy();
-			}
-			this.deleteProject("P");
-		}
-	}
-
-	/*
-	 * Get compilation unit source on a file written in UTF-8 BOM charset using default charset.
-	 * Verify first that source is the same than UTF-8 file contents read using UTF-8 encoding...
-	 */
-	public void test032() throws JavaScriptModelException, CoreException {
-
-		// Set file encoding
-		String encoding = "UTF-8";
-		this.utf8File.setCharset(encoding, null);
-		
-		// Get source and compare with file contents
-		this.utf8Source = getCompilationUnit(this.utf8File.getFullPath().toString());
-		String source = this.utf8Source.getSource();
-
-		// Get source and compare with file contents
-		IFile bomFile = (IFile) this.encodingProject.findMember("src/testUTF8BOM/Test.js");
-		ISourceReference bomSourceRef = getCompilationUnit(bomFile.getFullPath().toString());
-		String bomSource = bomSourceRef.getSource();
-		assertEquals("BOM UTF-8 source should be idtentical than UTF-8!", source, bomSource);
-	}	
-	
-	/*
-	 * Ensures that a file is reindexed when the encoding changes.
-	 * (regression test for bug 68585 index is out of date after encoding change)
-	 */
-	public void test033() throws CoreException {
-		try {
-			createFolder("/Encoding/src/test68585");
-			final String encoding = "UTF-8".equals(wkspEncoding) ? "Cp1252" : "UTF-8";
-			getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					// use a different encoding to make the file unreadable
-					IFile file = null;
-					try {
-						file = createFile(
-							"/Encoding/src/test68585/X.js", 
-							"package  test68585;\n" +
-							"public class X {\n" +
-							"}\n" +
-							"class Y\u00F4 {}",
-							encoding);
-					} catch (UnsupportedEncodingException e) {
-						e.printStackTrace();
-						return;
-					}
-					file.setCharset(wkspEncoding, null);
-				}
-			}, 
-			null);
-			
-			IJavaScriptSearchScope scope = SearchEngine.createWorkspaceScope();
-			JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-			search(
-				"Y\u00F4", 
-				IJavaScriptSearchConstants.TYPE,
-				IJavaScriptSearchConstants.DECLARATIONS,
-				scope, 
-				resultCollector);
-			assertSearchResults("Should not get any result", "", resultCollector);
-			
-			// change encoding so that file is readable
-			getFile("/Encoding/src/test68585/X.js").setCharset(encoding, null);
-			search(
-				"Y\u00F4", 
-				IJavaScriptSearchConstants.TYPE,
-				IJavaScriptSearchConstants.DECLARATIONS,
-				scope, 
-				resultCollector);
-			assertSearchResults(
-				"Should have been reindexed", 
-				"src/test68585/X.java test68585.Y\u00F4 [Y\u00F4]",
-				resultCollector);
-		} finally {
-			deleteFolder("/Encoding/src/test68585");
-		}
-	}
-
-	/*
-	 * Ensures that an encoding that a file using an encoding producing more charaters than the file size can
-	 * be correctly read.
-	 * (regression test for bug 149028 Limiting number of characters to read with the file size is invalid.)
-	 */
-	public void test034() throws CoreException, IOException {
-		try {
-			// Create file
-			IFile file = createFile("/Encoding/Test34.txt", "acegikm");
-			
-			// Read file using a transformation where a character is read and the next alphabetical character is
-			// automaticaly added
-			final InputStream fileStream = file.getContents();
-			try {
-				InputStream in = new InputStream() {
-					int current = -1;
-					public int read() throws IOException {
-						int result;
-						if (current != -1) {
-							result = current;
-							current = -1;
-						} else {
-							result = fileStream.read();
-							if (result == -1)
-								return -1;
-							current = result + 1;
-						}
-						return result;
-					}
-				};
-				char[] result = org.eclipse.wst.jsdt.internal.compiler.util.Util.getInputStreamAsCharArray(in, (int) file.getLocation().toFile().length(), "UTF-8");
-				assertSourceEquals(
-					"Unexpected source",
-					"abcdefghijklmn",
-					new String(result)					
-				);
-			} finally {
-				fileStream.close();
-			}
-		} finally {
-			deleteFile("Encoding/Test34.txt");
-		}
-	}	
-	
-	/**
-	 * Bug 66898: refactor-rename: encoding is not preserved
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=66898"
-	 */
-	public void testBug66898() throws JavaScriptModelException, CoreException {
-
-		// Set file encoding
-		String encoding = "UTF-8".equals(vmEncoding) ? "Cp1252" : "UTF-8";
-		IFile file = (IFile) this.encodingProject.findMember("src/testBug66898/Test.js");
-		file.setCharset(encoding, null);
-		String fileName = file.getName();
-		IJavaScriptUnit cu = getCompilationUnit(file.getFullPath().toString());
-		createFolder("/Encoding/src/tmp");
-		IPackageFragment packFrag = getPackageFragment("Encoding", "src", "tmp");
-		
-		try {
-			// Move file
-			cu.move(packFrag, null, null, false, null);
-			IJavaScriptUnit destSource = packFrag.getJavaScriptUnit(fileName);
-			IFile destFile = (IFile) destSource.getUnderlyingResource();
-			assertEquals("Moved file should keep encoding", encoding, destFile.getCharset());
-	
-			// Get source and compare with file contents
-			compareContents(destSource, encoding);
-			
-			// Rename file
-			destSource.rename("TestUTF8.js", false, null);
-			IJavaScriptUnit renamedSource = packFrag.getJavaScriptUnit("TestUTF8.js");
-			IFile renamedFile = (IFile) renamedSource.getUnderlyingResource();
-			assertEquals("Moved file should keep encoding", encoding, renamedFile.getCharset());
-			
-			// Compare contents again
-			compareContents(renamedSource, encoding);
-		}
-		finally {
-			// Delete temporary folder
-			//renamedFile.move(this.utf8File.getFullPath(), false, null);
-			//assertEquals("Moved file should keep encoding", encoding, this.utf8File.getCharset());
-			deleteFolder("/Encoding/src/tmp");
-		}
-	}	
-	public void testBug66898b() throws JavaScriptModelException, CoreException {
-
-		// Set file encoding
-		final String encoding = "UTF-8".equals(vmEncoding) ? "Cp1252" : "UTF-8";
-		final IFile file = (IFile) this.encodingProject.findMember("src/testBug66898b/Test.js");
-		file.setCharset(encoding, null);
-		final String fileName = file.getName();
-		final IPackageFragment srcFolder = getPackageFragment("Encoding", "src", "testBug66898b");
-		createFolder("/Encoding/src/tmp");
-		final IPackageFragment tmpFolder = getPackageFragment("Encoding", "src", "tmp");
-	
-		try {
-			// Copy file
-			IWorkspaceRunnable copy = new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IJavaScriptUnit cu = getCompilationUnit(file.getFullPath().toString());
-					cu.copy(tmpFolder, null, null, true, null);
-					cu.close(); // purge buffer contents from cache
-					IJavaScriptUnit dest = tmpFolder.getJavaScriptUnit(fileName);
-					IFile destFile = (IFile) dest.getUnderlyingResource();
-					assertEquals("Copied file should keep encoding", encoding, destFile.getCharset());
-			
-					// Get source and compare with file contents
-					compareContents(dest, encoding);
-				}
-			};
-			JavaScriptCore.run(copy, null);
-	
-			// Rename file
-			IWorkspaceRunnable rename = new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IJavaScriptUnit cu = tmpFolder.getJavaScriptUnit(fileName);
-					cu.rename("Renamed.js", true, null);
-					cu.close(); // purge buffer contents from cache
-					IJavaScriptUnit ren = tmpFolder.getJavaScriptUnit("Renamed.js");
-					IFile renFile = (IFile) ren.getUnderlyingResource();
-					assertEquals("Renamed file should keep encoding", encoding, renFile.getCharset());
-			
-					// Get source and compare with file contents
-					compareContents(ren, encoding);
-				}
-			};
-			JavaScriptCore.run(rename, null);
-	
-			// Move file
-			IWorkspaceRunnable move = new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IJavaScriptUnit cu = tmpFolder.getJavaScriptUnit("Renamed.js");
-					cu.move(srcFolder, null, null, true, null);
-					cu.close(); // purge buffer contents from cache
-					IJavaScriptUnit moved = srcFolder.getJavaScriptUnit("Renamed.js");
-					IFile movedFile = (IFile) moved.getUnderlyingResource();
-					assertEquals("Renamed file should keep encoding", encoding, movedFile.getCharset());
-			
-					// Get source and compare with file contents
-					compareContents(moved, encoding);
-				}
-			};
-			JavaScriptCore.run(move, null);
-		}
-		finally {
-			// Delete temporary file and folder
-			IJavaScriptUnit cu = srcFolder.getJavaScriptUnit("Renamed.js");
-			if (cu.exists()) cu.delete(true, null);
-			deleteFolder("/Encoding/src/tmp");
-		}
-	}	
-
-	/**
-	 * Bug 70598: [Encoding] ArrayIndexOutOfBoundsException while testing BOM on *.txt files
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=70598"
-	 */
-	public void testBug70598() throws JavaScriptModelException, CoreException, IOException {
-
-		// Create empty file
-		IFile emptyFile = createFile("/Encoding/src/testUTF8BOM/Empty.js", new byte[0]);
-
-		// Test read empty content using io file
-		File file = new File(this.encodingProject.getLocation().toString(), emptyFile.getProjectRelativePath().toString());
-		char[] fileContents = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileCharContent(file, "UTF-8");
-		assertEquals("We should not get any character!", "", new String(fileContents));
-
-		// Test read empty content using io file
-		char[] ifileContents =Util.getResourceContentsAsCharArray(emptyFile, "UTF-8");
-		assertEquals("We should not get any character!", "", new String(ifileContents));
-		
-		// Delete empty file
-		deleteFile(file);
-	}	
-
-	/**
-	 * Bug 110576: [encoding] Rename CU looses encoding for file which charset is determined by contents
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=110576"
-	 */
-	public void testBug110576() throws JavaScriptModelException, CoreException {
-
-		String os = System.getProperty("osgi.os");
-		if (!"win32".equals(os)) {
-			System.out.println("Bug 110576 is not tested under "+os+" os...");
-			return;
-		}
-
-		// Verify file UTF-8 BOM encoding
-		IFile file = (IFile) this.encodingProject.findMember("src/testBug110576/Test.js");
-		verifyUtf8BOM(file);
-
-		String fileName = file.getName();
-		IJavaScriptUnit testCU = getCompilationUnit(file.getFullPath().toString());
-		createFolder("/Encoding/src/tmp");
-		IPackageFragment tmpPackage = getPackageFragment("Encoding", "src", "tmp");
-		
-		try {
-			// Copy file
-			testCU.copy(tmpPackage, null, null, false, null);
-			IJavaScriptUnit copiedCU = tmpPackage.getJavaScriptUnit(fileName);
-			IFile copiedFile = (IFile) copiedCU.getUnderlyingResource();
-			verifyUtf8BOM(copiedFile);
-	
-			// Get source and compare with file contents
-			compareContents(copiedCU, "UTF-8", true/*BOM*/);
-
-			// Rename file
-			copiedCU.rename("TestUTF8.js", false, null);
-			IJavaScriptUnit renamedCU = tmpPackage.getJavaScriptUnit("TestUTF8.js");
-			IFile renamedFile = (IFile) renamedCU.getUnderlyingResource();
-			verifyUtf8BOM(renamedFile);
-			fileName = renamedFile.getName();
-			
-			// Compare contents again
-			compareContents(renamedCU, "UTF-8", true/*BOM*/);
-
-			// Move file
-			createFolder("/Encoding/src/tmp/sub");
-			IPackageFragment subPackage = getPackageFragment("Encoding", "src", "tmp.sub");
-			renamedCU.move(subPackage, null, null, false, null);
-			IJavaScriptUnit movedCU = subPackage.getJavaScriptUnit(fileName);
-			IFile movedFile = (IFile) movedCU.getUnderlyingResource();
-			verifyUtf8BOM(movedFile);
-	
-			// Get source and compare with file contents
-			compareContents(movedCU, "UTF-8", true/*BOM*/);
-		}
-		finally {
-			// Delete temporary folder
-			//renamedFile.move(this.utf8File.getFullPath(), false, null);
-			//assertEquals("Moved file should keep encoding", encoding, this.utf8File.getCharset());
-			deleteFolder("/Encoding/src/tmp");
-		}
-	}
-
-	private void verifyUtf8BOM(IFile file) throws CoreException {
-		assertNull("File should not have any explicit charset", file.getCharset(false));
-		IContentDescription contentDescription = file.getContentDescription();
-		assertNotNull("File should have a content description", contentDescription);
-		assertEquals("Content description charset should be UTF-8", "UTF-8", contentDescription.getCharset());
-		assertNotNull("File should be UTF-8 BOM!", contentDescription.getProperty(IContentDescription.BYTE_ORDER_MARK));
-	}	
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExclusionPatternsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExclusionPatternsTests.java
deleted file mode 100644
index ab65567..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExclusionPatternsTests.java
+++ /dev/null
@@ -1,895 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchConstants;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope;
-import org.eclipse.wst.jsdt.core.search.SearchEngine;
-
-import junit.framework.Test;
-
-public class ExclusionPatternsTests extends ModifyingResourceTests {
-	IJavaScriptProject project;
-public ExclusionPatternsTests(String name) {
-	super(name);
-}
-protected void setClasspath(String[] sourceFoldersAndExclusionPatterns) throws JavaScriptModelException {
-	this.project.setRawIncludepath(createClasspath(sourceFoldersAndExclusionPatterns, false/*no inclusion*/, true/*exclusion*/), null);
-}
-protected void setUp() throws Exception {
-	super.setUp();
-	this.project = createJavaProject("P", new String[] {"src"});
-	startDeltas();
-}
-
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//		TESTS_NAMES = new String[] { "testCreateExcludedPackage2" };
-//		TESTS_NUMBERS = new int[] { 2, 12 };
-//		TESTS_RANGE = new int[] { 16, -1 };
-}
-public static Test suite() {
-	return buildModelTestSuite(ExclusionPatternsTests.class);
-}
-
-protected void tearDown() throws Exception {
-	stopDeltas();
-	deleteProject("P");
-	super.tearDown();
-}
-/*
- * Ensure that adding an exclusion on a compilation unit
- * makes it disappear from the children of its package and it is added to the non-java resources.
- */
-public void testAddExclusionOnCompilationUnit() throws CoreException {
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	clearDeltas();
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-		"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-		"	ResourceDelta(/P/.classpath)[*]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"A.js",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that adding an exclusion on a folder directly under a project (and prj=src)
- * makes it appear as a non-java resources.
- * (regression test for bug 29374 Excluded folder on project not returned by Java Model)
- */
-public void testAddExclusionOnFolderUnderProject() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = createJavaProject("P1", new String[] {""});
-		createFolder("/P1/doc");
-
-		clearDeltas();
-		javaProject.setRawIncludepath(createClasspath(new String[] {"/P1", "doc/"}, false/*no inclusion*/, true/*exclusion*/), null);
-	
-		assertDeltas(
-			"Unexpected deltas",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	<project root>[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]"
-		);
-	
-		IPackageFragmentRoot root = getPackageFragmentRoot("/P1");
-		assertSortedElementsEqual(
-			"Unexpected children",
-			"<default> [in <project root> [in P1]]",
-			root.getChildren());
-		
-		assertResourceNamesEqual(
-			"Unexpected non-java resources of project",
-			".classpath\n" +
-			".project\n" +
-			"doc",
-			javaProject.getNonJavaScriptResources());
-	} finally {
-		deleteProject("P1");
-	}
-}
-/*
- * Ensure that adding an exclusion on a package
- * makes it disappear from the children of its package fragment root 
- * and it is added to the non-java resources.
- */
-public void testAddExclusionOnPackage() throws CoreException {
-	createFolder("/P/src/p");
-	
-	clearDeltas();
-	setClasspath(new String[] {"/P/src", "p/"});
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-		"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-		"	ResourceDelta(/P/.classpath)[*]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"p",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that adding an exclusion on a primary working copy
- * makes it disappear from the children of its package and it is added to the non-java resources.
- */
-public void testAddExclusionOnPrimaryWorkingCopy() throws CoreException {
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-		
-	IJavaScriptUnit workingCopy = null;
-	try {
-		workingCopy = getCompilationUnit("/P/src/p/A.js");
-		workingCopy.becomeWorkingCopy(null);
-		
-		clearDeltas();
-		setClasspath(new String[] {"/P/src", "**/A.js"});
-		
-		assertDeltas(
-			"Unexpected deltas",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		
-		IPackageFragment pkg = getPackage("/P/src/p");
-		assertSortedElementsEqual(
-			"Unexpected children",
-			"",
-			pkg.getChildren());
-			
-		assertResourceNamesEqual(
-			"Unexpected non-java resources",
-			"A.js",
-			pkg.getNonJavaScriptResources());
-	} finally {
-		if (workingCopy != null) {
-			workingCopy.discardWorkingCopy();
-		}
-	}
-}
-/*
- * Ensure that adding a file to a folder that is excluded reports the correct delta.
- * (regression test for bug 29621 Wrong Delta When Adding to Filtered Folder)
- */
-public void testAddToExcludedFolder() throws CoreException {
-	createFolder("/P/src/icons");
-	
-	// exclude folder and its contents
-	setClasspath(new String[] {"/P/src", "icons/"});
-	
-	clearDeltas();
-	createFile("/P/src/icons/my.txt", "");
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CONTENT}\n" + 
-		"		ResourceDelta(/P/src/icons)[*]"
-	);
-	
-	clearDeltas();
-	deleteFile("/P/src/icons/my.txt");
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CONTENT}\n" + 
-		"		ResourceDelta(/P/src/icons)[*]"
-	);
-}
-/*
- * Ensure that creating an excluded compilation unit 
- * doesn't make it appear as a child of its package but it is a non-java resource.
- */
-public void testCreateExcludedCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	IPackageFragment pkg = getPackage("/P/src/p");
-
-	clearDeltas();
-	pkg.createCompilationUnit(
-		"A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}",
-		false,
-		null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CONTENT}\n" + 
-		"			ResourceDelta(/P/src/p/A.java)[+]"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"A.js",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that crearing an excluded package 
- * doesn't make it appear as a child of its package fragment root but it is a non-java resource.
- */
-public void testCreateExcludedPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	
-	clearDeltas();
-	root.createPackageFragment("p", false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CONTENT}\n" + 
-		"		ResourceDelta(/P/src/p)[+]"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"p",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that crearing an excluded package doesn't make it appear as a child of its package fragment root but it is a non-java resource.
- * (regression test for bug 65637 [model] Excluded package still in Java model)
- */
-public void testCreateExcludedPackage2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "org/*|org/eclipse/*"});
-	
-	clearDeltas();
-	createFolder("/P/src/org/eclipse/mypack");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CONTENT}\n" + 
-		"		ResourceDelta(/P/src/org)[+]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]\n" + 
-		"org.eclipse.mypack [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"org",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that creating a folder that represents an excluded and included package
- * have the correct delta, Java elements and non-Java resources.
- * (regression test for 67789 Java element delta from refresh contains excluded package)
- */
-public void testCreateExcludedAndIncludedPackages() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p1/p2/"});
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	
-	clearDeltas();
-	createFolder("/P/src/p1/p2");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p1[+]: {}"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]\n" + 
-		"p1 [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"p2",
-		root.getPackageFragment("p1").getNonJavaScriptResources());
-}
-/*
- * Ensure that creating a file that corresponds to an excluded compilation unit 
- * doesn't make it appear as a child of its package but it is a non-java resource.
- */
-public void testCreateResourceExcludedCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	
-	clearDeltas();
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CONTENT}\n" + 
-		"			ResourceDelta(/P/src/p/A.java)[+]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"A.js",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that creating a folder that corresponds to an excluded package 
- * doesn't make it appear as a child of its package fragment root but it is a non-java resource.
- */
-public void testCreateResourceExcludedPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	
-	clearDeltas();
-	createFolder("/P/src/p");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CONTENT}\n" + 
-		"		ResourceDelta(/P/src/p)[+]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"p",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensures that a cu that is not excluded is on the classpath of the project.
- */
-public void testIsOnClasspath1() throws CoreException {
-	setClasspath(new String[] {"/P/src", ""});
-	createFolder("/P/src/p");
-	IFile file = createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	assertTrue("Resource should be on classpath", project.isOnIncludepath(file));
-	
-	IJavaScriptUnit cu = getCompilationUnit("/P/src/p/A.js");
-	assertTrue("CU should be on classpath", project.isOnIncludepath(cu));
-}
-/*
- * Ensures that a cu that is excluded is not on the classpath of the project.
- */
-public void testIsOnClasspath2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	IFile file = createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	assertTrue("Resource should not be on classpath", !project.isOnIncludepath(file));
-	
-	IJavaScriptUnit cu = getCompilationUnit("/P/src/p/A.js");
-	assertTrue("CU should not be on classpath", !project.isOnIncludepath(cu));
-}
-/*
- * Ensures that a non-java resource that is not excluded is on the classpath of the project.
- */
-public void testIsOnClasspath3() throws CoreException {
-	setClasspath(new String[] {"/P/src", ""});
-	createFolder("/P/src/p");
-	IFile file = createFile("/P/src/p/readme.txt", "");
-	assertTrue("Resource should be on classpath", project.isOnIncludepath(file));
-}
-/*
- * Ensures that a non-java resource that is excluded is not on the classpath of the project.
- */
-public void testIsOnClasspath4() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/**"});
-	createFolder("/P/src/p");
-	IFile file = createFile("/P/src/p/readme.txt", "");
-	assertTrue("Resource should not be on classpath", !project.isOnIncludepath(file));
-}
-/*
- * Ensures that an excluded nested source folder doesn't appear as a non-java resource of the outer folder.
- * (regression test for bug 28115 Ubiquitous resource in the JavaModel)
- * 
- */
-public void testNestedSourceFolder1() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "src2/**", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	IPackageFragmentRoot root1 = getPackageFragmentRoot("/P/src1");
-	assertResourceNamesEqual(
-		"Unexpected non-java resources for /P/src1",
-		"",
-		root1.getNonJavaScriptResources());
-}
-/*
- * Ensures that adding a .java file in a nested source folder reports 
- * a delta on the nested source folder and not on the outer one.
- */
-public void testNestedSourceFolder2() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "src2/**", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	
-	clearDeltas();
-	createFile(
-		"/P/src1/src2/A.js",
-		"public class A {\n" +
-		"}"
-	);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1/src2[*]: {CHILDREN}\n" + 
-		"		<default>[*]: {CHILDREN}\n" + 
-		"			A.java[+]: {}"
-	);
-}
-/*
- * Ensures that adding a .txt file in a nested source folder reports 
- * a resource delta on the nested source folder and not on the outer one.
- */
-public void testNestedSourceFolder3() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "src2/**", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	
-	clearDeltas();
-	createFile("/P/src1/src2/readme.txt", "");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1/src2[*]: {CONTENT}\n" + 
-		"		ResourceDelta(/P/src1/src2/readme.txt)[+]"
-	);
-}
-/*
- * Ensures that adding a folder in a nested source folder reports 
- * a delta on the nested source folder and not on the outer one.
- */
-public void testNestedSourceFolder4() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "src2/**", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	
-	clearDeltas();
-	createFolder("/P/src1/src2/p");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1/src2[*]: {CHILDREN}\n" + 
-		"		p[+]: {}"
-	);
-}
-/*
- * Ensures that adding a folder in a outer source folder reports 
- * a delta on the outer source folder and not on the nested one.
- */
-public void testNestedSourceFolder5() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "src2/**", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	
-	clearDeltas();
-	createFolder("/P/src1/p");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1[*]: {CHILDREN}\n" + 
-		"		p[+]: {}"
-	);
-}
-/*
- * Ensures that moving a package from an outer source folder to a nested
- * source folder reports a move delta.
- */
-public void testNestedSourceFolder6() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "src2/**", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	createFolder("/P/src1/p");
-	
-	clearDeltas();
-	moveFolder("/P/src1/p", "/P/src1/src2/p");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1[*]: {CHILDREN}\n" + 
-		"		p[-]: {MOVED_TO(p [in src1/src2 [in P]])}\n" + 
-		"	src1/src2[*]: {CHILDREN}\n" + 
-		"		p[+]: {MOVED_FROM(p [in src1 [in P]])}"
-	);
-}
-/*
- * Ensure that renaming an excluded compilation unit so that it is not excluded any longer
- * makes it appears as a child of its package and it is removed from the non-java resources.
- */
-public void testRenameExcludedCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	IFile file = createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-
-	clearDeltas();
-	file.move(new Path("/P/src/p/B.js"), false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN | CONTENT}\n" + 
-		"			B.java[+]: {}\n" + 
-		"			ResourceDelta(/P/src/p/A.java)[-]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"B.java [in p [in src [in P]]]",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that renaming an excluded package so that it is not excluded any longer
- * makes it appears as a child of its package fragment root 
- * and it is removed from the non-java resources.
- */
-public void testRenameExcludedPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	IPackageFragment pkg = root.createPackageFragment("p", false, null);
-	
-	clearDeltas();
-	pkg.getResource().move(new Path("/P/src/q"), false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		q[+]: {}\n" + 
-		"		ResourceDelta(/P/src/p)[-]"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]\n" + 
-		"q [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that renaming a file that corresponds to an excluded compilation unit so that it is not excluded any longer
- * makes it appears as a child of its package and it is removed from the non-java resources.
- */
-public void testRenameResourceExcludedCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	IFile file = createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	clearDeltas();
-	file.move(new Path("/P/src/p/B.js"),  false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN | CONTENT}\n" + 
-		"			B.java[+]: {}\n" + 
-		"			ResourceDelta(/P/src/p/A.java)[-]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"B.java [in p [in src [in P]]]",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure search doesn't find matches in an excluded compilation unit.
- */
-public void testSearchWithExcludedCompilationUnit1() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-	search(
-		"A", 
-		IJavaScriptSearchConstants.TYPE,
-		IJavaScriptSearchConstants.DECLARATIONS,
-		SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("P")}), 
-		resultCollector);
-	assertEquals(
-		"Unexpected matches found",
-		"",
-		resultCollector.toString());
-}
-/*
- * Ensure search find matches in a compilation unit that was excluded but that is not any longer.
- */
-public void testSearchWithExcludedCompilationUnit2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "A.js"});
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	setClasspath(new String[] {"/P/src", ""});
-	JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-	search(
-		"A", 
-		IJavaScriptSearchConstants.TYPE,
-		IJavaScriptSearchConstants.DECLARATIONS,
-		SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("P")}), 
-		resultCollector);
-	assertEquals(
-		"Unexpected matches found",
-		"src/p/A.java p.A [A]",
-		resultCollector.toString());
-}
-/*
- * Ensure that removing a folder that represents an excluded and included package
- * have the correct delta, Java elements and non-Java resources.
- * (regression test for 67789 Java element delta from refresh contains excluded package)
- */
-public void testRemoveExcludedAndIncludedPackages() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p1/p2/"});
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	createFolder("/P/src/p1/p2");
-	
-	clearDeltas();
-	deleteFolder("/P/src/p1");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p1[-]: {}"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		root.getNonJavaScriptResources());
-}
-
-/*
- * Ensure that renaming a folder that corresponds to an excluded package 
- * so that it is not excluded any longer
- * makes it appears as a child of its package fragment root 
- * and it is removed from the non-java resources.
- */
-public void testRenameResourceExcludedPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	IFolder folder = createFolder("/P/src/p");
-	
-	clearDeltas();
-	folder.move(new Path("/P/src/q"), false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		q[+]: {}\n" + 
-		"		ResourceDelta(/P/src/p)[-]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]\n" + 
-		"q [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that a potential match in the output folder is not indexed.
- * (regression test for bug 32041 Multiple output folders fooling Java Model)
- */
-public void testSearchPotentialMatchInOutput() throws CoreException {
-	try {
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				IJavaScriptProject javaProject = createJavaProject("P2", new String[] {});
-				javaProject.setRawIncludepath(createClasspath(new String[] {"/P2", "src/", "/P2/src", ""}, false/*no inclusion*/, true/*exclusion*/), null);
-				createFile(
-					"/P2/bin/X.js",
-					"public class X {\n" +
-					"}"
-				);
-			}
-		}, null);
-		
-		JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {getJavaProject("P")});
-		search(
-			"X", 
-			IJavaScriptSearchConstants.TYPE,
-			IJavaScriptSearchConstants.DECLARATIONS,
-			scope, 
-			resultCollector);
-		assertEquals("", resultCollector.toString());
-	} finally {
-		deleteProject("P2");
-	}
-}
-/*
- * Ensure that removing the exclusion on a compilation unit
- * makes it appears as a child of its package and it is removed from the non-java resources.
- */
-public void testRemoveExclusionOnCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "A.js"});
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	clearDeltas();
-	setClasspath(new String[] {"/P/src", ""});
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-		"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-		"	ResourceDelta(/P/.classpath)[*]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"A.java [in p [in src [in P]]]",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that removing the exclusion on a package
- * makes it appears as a child of its package fragment root 
- * and it is removed from the non-java resources.
- */
-public void testRemoveExclusionOnPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p"});
-	createFolder("/P/src/p");
-	
-	clearDeltas();
-	setClasspath(new String[] {"/P/src", ""});
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-		"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-		"	ResourceDelta(/P/.classpath)[*]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]\n" + 
-		"p [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		root.getNonJavaScriptResources());
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExistenceTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExistenceTests.java
deleted file mode 100644
index 1d68e98..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExistenceTests.java
+++ /dev/null
@@ -1,507 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-public class ExistenceTests extends ModifyingResourceTests {
-public ExistenceTests(String name) {
-	super(name);
-}
-
-public static Test suite() {
-	return buildModelTestSuite(ExistenceTests.class);
-}
-protected void assertCorrespondingResourceFails(IJavaScriptElement element) {
-	boolean gotException = false;
-	try {
-		element.getCorrespondingResource();
-	} catch (JavaScriptModelException e) {
-		if (e.isDoesNotExist()) {
-			gotException = true;
-		}
-	}
-	assertTrue("Should not be able to get corresponding resource", gotException);
-}
-protected void assertOpenFails(String expectedMessage, IOpenable openable) {
-	String message = "";
-	try {
-		openable.open(null);
-	} catch (JavaScriptModelException e) {
-		message = e.getMessage();
-	}
-	if (!expectedMessage.equals(message)) {
-		System.out.print(Util.displayString(message, 3));
-		System.out.println(",");
-	}
-	assertEquals(expectedMessage, message);
-}
-protected void assertUnderlyingResourceFails(IJavaScriptElement element) {
-	boolean gotException = false;
-	try {
-		element.getUnderlyingResource();
-	} catch (JavaScriptModelException e) {
-		if (e.isDoesNotExist()) {
-			gotException = true;
-		}
-	}
-	assertTrue("Should not be able to get underlying resource", gotException);
-}
-public void testBinaryMethodAfterNonExistingMember() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {}, new String[] {});
-		IClassFile classFile = project.getPackageFragmentRoot(getSystemJsPathString()).getPackageFragment("").getClassFile("system.js");
-		classFile.open(null);
-		IType type = classFile.getType();
-		type.getFunction("foo", new String[0]).exists();
-		assertTrue("Object.toString() should exist", type.getFunction("toString", new String[0]).exists());
-	} finally {
-		deleteProject("P");
-	}
-}
-public void testClassFileInBinary() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		this.createFile("P/bin/X.class", "");
-		IJavaScriptElement classFile = this.getClassFile("P/bin/X.class");
-		assertTrue(!classFile.exists());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-public void testClassFileInLibrary() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {}, new String[] {"lib"});
-		this.createFile("P/lib/X.class", "");
-		IJavaScriptElement classFile = this.getClassFile("P/lib/X.class");
-		assertTrue(classFile.exists());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-public void testClassFileInLibraryInOtherProject() throws CoreException {
-	try {
-		this.createJavaProject("P2", new String[] {});
-		this.createFolder("P2/lib");
-		String path = "P2/lib/X.class";
-		IFile file = this.createFile(path, "");
-		IJavaScriptProject p1 = createJavaProject("P1", new String[] {}, new String[] {"/P2/lib"});
-		IJavaScriptElement nonExistingFile = getClassFile(path);
-		assertFalse("File '"+path+"' should not exist in P2!", nonExistingFile.exists());
-		IJavaScriptElement element = JavaScriptCore.create(getFolder("/P2/lib"));
-		assertTrue("folder '/P2/lib' should be found in P1!", element.exists());
-		IClassFile existingFile = (IClassFile)JavaScriptCore.create(file, p1);
-		assertTrue("File '"+path+"' should exist in P1!", existingFile.exists());
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-public void testJarFile() throws Exception {
-	try {
-		IJavaScriptProject p2 = createJavaProject("P2");
-		String[] pathsAndContents = new String[] {
-			"test/X.js", 
-			"package test;\n" +
-			"public class X {\n" + 
-			"}",
-		};
-		addLibrary(p2, "lib.jar", "libsrc.zip", pathsAndContents, JavaScriptCore.VERSION_1_5);
-		IJavaScriptProject p1 = createJavaProject("P1", new String[] {}, new String[] {"/P2/lib.jar"});
-		IPackageFragmentRoot root2 = getPackageFragmentRoot("/P2/lib.jar");
-		assertTrue(root2.exists());
-		assertEquals(p1.getPackageFragmentRoots()[0], root2);
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that an IClassFile handle created on a .class file in a source folder
- * doesn't not exist.
- * (regression test for bug 36499 exists() returns true for a source file inside a classfolder)
- */
-public void testClassFileInSource1() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		this.createFile("P/src/X.class", "");
-		IJavaScriptElement classFile = this.getClassFile("P/src/X.class");
-		assertTrue("Class file should not exist", !classFile.exists()); 
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that an IClassFile handle created on a .class file in a source folder
- * cannot be opened.
- * (regression test for bug 36499 exists() returns true for a source file inside a classfolder)
- */
- public void testClassFileInSource2() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		this.createFile("P/src/X.class", "");
-		IClassFile classFile = this.getClassFile("P/src/X.class");
-		assertOpenFails(
-			"Operation not supported for specified element type(s):src [in P]", 
-			classFile);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that an IJavaScriptUnit handle created on a .java file in a library folder
- * doesn't not exist.
- * (regression test for bug 36499 exists() returns true for a source file inside a classfolder)
- */
-public void testCompilationUnitInLibrary1() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {}, new String[] {"lib"});
-		this.createFile(
-			"P/lib/X.js", 
-			"public class X {}"
-		);
-		IJavaScriptUnit cu = this.getCompilationUnit("P/lib/X.js");
-		assertTrue("Ccompilation unit should not exist", !cu.exists()); 
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that an IJavaScriptUnit handle created on a .java file in a library folder
- *cannot be opened.
- * (regression test for bug 36499 exists() returns true for a source file inside a classfolder)
- */
-public void testCompilationUnitInLibrary2() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {}, new String[] {"lib"});
-		this.createFile(
-			"P/lib/X.js", 
-			"public class X {}"
-		);
-		IJavaScriptUnit cu = this.getCompilationUnit("P/lib/X.js");
-		assertOpenFails(
-			"Operation not supported for specified element type(s):lib [in P]",
-			cu);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a method with invalid parameters returns false to exists().
- * (regression test for bug 80338 getReturnType() throws a NullArgumentException)
- */
-public void testMethodWithInvalidParameter() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFile(
-			"P/X.js", 
-			"public class X {}"
-		);
-		IFunction method = getCompilationUnit("P/X.js").getType("X").getFunction("foo", new String[] {"~12345@"});
-		assertTrue("Methodr should not exist", !method.exists()); 
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that a non-existing class file cannot be opened.
- */
-public void testNonExistingClassFile1() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"}, new String[] {"lib"});
-		IClassFile classFile = getClassFile("/P/lib/X.class");
-		assertOpenFails(
-			"X.class [in <default> [in lib [in P]]] does not exist", 
-			classFile);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a non-existing class file cannot be opened.
- * (regression test for 52379 JavaElement.getElementInfo no longer works)
- */
-public void testNonExistingClassFile2() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"}, new String[] {});
-		IClassFile classFile = getClassFile("/P/lib/X.class");
-		assertOpenFails(
-			"lib [in P] is not on its project\'s build path",
-			classFile);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/*
- * Ensure that a non-existing compilation unit cannot be opened.
- */
-public void testNonExistingCompilationUnit() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		IJavaScriptUnit cu = getCompilationUnit("/P/src/X.js");
-		assertOpenFails(
-			"X.java [in <default> [in src [in P]]] does not exist", 
-			cu);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a non-existing package fragment cannot be opened.
- */
-public void testNonExistingPackageFragment1() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		IPackageFragment pkg = this.getPackage("/P/src/x");
-		assertOpenFails(
-			"x [in src [in P]] does not exist", 
-			pkg);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a non-existing package fragment cannot be opened.
- */
-public void testNonExistingPackageFragment2() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {});
-		IFolder folder = createFolder("/P/src/x");
-		IPackageFragment pkg = project.getPackageFragmentRoot(folder).getPackageFragment("x");
-		assertOpenFails(
-			"src/x [in P] is not on its project\'s build path",
-			pkg);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that an excluded package fragment doesn't exist.
- * (regression test for bug 138577 Package content disapear in package explorer)
- */
-public void testNonExistingPackageFragment3() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFolder("/P/pack");
-		IPackageFragment pkg = getPackage("/P/pack");
-		editFile(
-			"/P/.classpath",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry excluding=\"pack/\" kind=\"src\" path=\"\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>"
-		);
-		assertFalse(	"pack should not exist", pkg.exists());
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that a non-Java project doesn't exist.
- * (regression test for bug 28545 JavaProject.exists() returns true if project doesn't have Java nature)
- */
-public void testNonJavaProject() throws CoreException {
-	try {
-		createProject("P");
-		IProject project = getProject("P");
-		IJavaScriptProject javaProject = JavaScriptCore.create(project);
-		
-		assertTrue("Simple project should not exist", !javaProject.exists());
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package fragment root that is not on the classpath cannot be opened.
- */
-public void testPkgFragmentRootNotInClasspath() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IFolder folder = createFolder("/P/otherRoot");
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(folder);
-		assertTrue("Root should not exist", !root.exists());
-		assertOpenFails(
-			"otherRoot [in P] is not on its project\'s build path",
-			root);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the corresponding resource of a non-existing class file.
- */
-public void testCorrespondingResourceNonExistingClassFile() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"}, new String[] {"lib"});
-		IJavaScriptElement classFile = getClassFile("/P/lib/X.class");
-		assertCorrespondingResourceFails(classFile);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the corresponding resource of a non-existing compilation unit.
- */
-public void testCorrespondingResourceNonExistingCompilationUnit() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"});
-		IJavaScriptUnit compilationUnit = getCompilationUnit("/P/src/X.js");
-		assertCorrespondingResourceFails(compilationUnit);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the corresponding resource of a non-existing jar package fragment root.
- */
-public void testCorrespondingResourceNonExistingJarPkgFragmentRoot() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IPackageFragmentRoot root = project.getPackageFragmentRoot("/nonExisting.jar");
-		assertCorrespondingResourceFails(root);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the corresponding resource of a non-existing package fragment.
- */
-public void testCorrespondingResourceNonExistingPkgFragment() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"});
-		IPackageFragment pkg = getPackage("/P/src/nonExisting");
-		assertCorrespondingResourceFails(pkg);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the corresponding resource of a non-existing package fragment root.
- */
-public void testCorrespondingResourceNonExistingPkgFragmentRoot() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IFolder folder = createFolder("/P/nonExistingRoot");
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(folder);
-		assertCorrespondingResourceFails(root);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the corresponding resource of a non-existing java project.
- */
-public void testCorrespondingResourceNonExistingProject() {
-	IProject nonExistingProject = ResourcesPlugin.getWorkspace().getRoot().getProject("NonExisting");
-	IJavaScriptProject javaProject = JavaScriptCore.create(nonExistingProject);
-	assertCorrespondingResourceFails(javaProject);
-}
-/*
- * Ensures that one cannot get the corresponding resource of a non-existing type.
- */
-public void testCorrespondingResourceNonExistingType() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"});
-		createFile(
-			"/P/src/X.js",
-			"public class X{\n" +
-			"}"
-		);
-		IType type = getCompilationUnit("/P/src/X.js").getType("NonExisting");
-		assertCorrespondingResourceFails(type);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the underlying resource of a non-existing class file.
- */
-public void testUnderlyingResourceNonExistingClassFile() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"}, new String[] {"lib"});
-		IJavaScriptElement classFile = getClassFile("/P/lib/X.js");
-		assertUnderlyingResourceFails(classFile);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the underlying resource of a non-existing compilation unit.
- */
-public void testUnderlyingResourceNonExistingCompilationUnit() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"});
-		IJavaScriptUnit compilationUnit = getCompilationUnit("/P/src/X.js");
-		assertUnderlyingResourceFails(compilationUnit);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the underlying resource of a non-existing package fragment.
- */
-public void testUnderlyingResourceNonExistingPkgFragment() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"});
-		IPackageFragment pkg = getPackage("/P/src/nonExisting");
-		assertUnderlyingResourceFails(pkg);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the underlying resource of a non-existing package fragment root.
- */
-public void testUnderlyingResourceNonExistingPkgFragmentRoot() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IFolder folder = createFolder("/P/nonExistingRoot");
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(folder);
-		assertUnderlyingResourceFails(root);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that one cannot get the underlying resource of a non-existing java project.
- */
-public void testUnderlyingResourceNonExistingProject() {
-	IProject nonExistingProject = ResourcesPlugin.getWorkspace().getRoot().getProject("NonExisting");
-	IJavaScriptProject javaProject = JavaScriptCore.create(nonExistingProject);
-	assertUnderlyingResourceFails(javaProject);
-}
-/*
- * Ensures that one cannot get the underlying resource of a non-existing type.
- */
-public void testUnderlyingResourceNonExistingType() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"});
-		createFile(
-			"/P/src/X.js",
-			"function X(){\n" +
-			"}"
-		);
-		IType type = getCompilationUnit("/P/src/X.js").getType("NonExisting");
-		assertUnderlyingResourceFails(type);
-	} finally {
-		deleteProject("P");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExternalJarDeltaTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExternalJarDeltaTests.java
deleted file mode 100644
index 2c6a7fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ExternalJarDeltaTests.java
+++ /dev/null
@@ -1,541 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-/**
- * These test ensure that modifications in external jar are correctly reported as
- * IJavaEllementDeltas after a JavaModel#refreshExternalArchives().
- */
-public class ExternalJarDeltaTests extends ModifyingResourceTests {
-	
-public ExternalJarDeltaTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildModelTestSuite(ExternalJarDeltaTests.class);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//		TESTS_PREFIX =  "testBug79990";
-//		TESTS_NAMES = new String[] { "testExternalJarInternalExternalJar"};
-//		TESTS_NUMBERS = new int[] { 79860, 80918, 91078 };
-//		TESTS_RANGE = new int[] { 83304, -1 };
-}
-private void touch(File f) {
-	f.setLastModified(f.lastModified() + 10000);
-}
-/**
- * Test if a modification is detected without doing a refresh.
- * Currently no modification are detected.
- */
-public void testExternalJar0() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		
-		startDeltas();
-		touch(f);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			""
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-
-/**
- * Refresh the JavaModel after a modification of an external jar.
- */
-public void testExternalJarChanged1() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		touch(f);
-		getJavaModel().refreshExternalArchives(null,null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[*]: {CONTENT | ARCHIVE CONTENT CHANGED}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh a JavaProject after a modification of an external jar.
- */
-public void testExternalJarChanged2() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		touch(f);
-		getJavaModel().refreshExternalArchives(new IJavaScriptElement[]{project},null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[*]: {CONTENT | ARCHIVE CONTENT CHANGED}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh an external jar after a modification of this jar.
- */
-public void testExternalJarChanged3() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-
-		touch(f);
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(pPath);
-		getJavaModel().refreshExternalArchives(new IJavaScriptElement[]{root},null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[*]: {CONTENT | ARCHIVE CONTENT CHANGED}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh the JavaModel after a modification of an external jar after shutdown.
- * (regression test for bug 39856 External jar's timestamps should be persisted accross sessions)
- */
-public void testExternalJarChanged4() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		
-		// exit, change the jar, and restart
-		simulateExit();
-		touch(f);
-		simulateRestart();
-
-		startDeltas();
-		getJavaModel().refreshExternalArchives(null,null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[*]: {CONTENT | ARCHIVE CONTENT CHANGED}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Ensure that the external jars are refreshed by a call to JavaScriptCore#initializeAfterLoad()
- * (regression test for bug 93668 Search indexes not rebuild)
- */
-public void testExternalJarChanged5() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		
-		// exit, change the jar, and restart
-		simulateExit();
-		touch(f);
-		simulateRestart();
-
-		startDeltas();
-		JavaScriptCore.initializeAfterLoad(null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[*]: {CONTENT | ARCHIVE CONTENT CHANGED}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Ensure that the external jars are refreshed by full build
- * (regression test for bug 93668 Search indexes not rebuild)
- */
-public void testExternalJarChanged6() throws CoreException, IOException {
-	File f = null;
-	try {
-		String pPath = getExternalPath() + "p.jar";
-		f = new File(pPath);
-		f.createNewFile();
-		createJavaProject("P", new String[] {""}, new String[] {"JCL_LIB", pPath});
-		createFile("/P/X.js", "public class X{}");
-		getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null);
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		
-		// exit, change the jar, and restart
-		simulateExit();
-		touch(f);
-		simulateRestart();
-
-		startDeltas();
-		getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[*]: {CONTENT | ARCHIVE CONTENT CHANGED}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh the JavaModel after an addition of an external jar.
- */
-public void testExternalJarAdded1() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "pAdded1.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[+]: {}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh a JavaProject after an addition of an external jar.
- */
-public void testExternalJarAdded2() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "pAdded2.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(new IJavaScriptElement[]{project},null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[+]: {}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh an external jar after an addition of this jar.
- */
-public void testExternalJarAdded3() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "pAdded3.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		f = new File(pPath);
-		f.createNewFile();
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(pPath);
-		getJavaModel().refreshExternalArchives(new IJavaScriptElement[]{root},null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[+]: {}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh the JavaModel after a removal of an external jar.
- */
-public void testExternalJarRemoved1() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		deleteFile(f);
-		getJavaModel().refreshExternalArchives(null,null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[-]: {}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh a JavaProject after a removal of an external jar.
- */
-public void testExternalJarRemoved2() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		deleteFile(f);
-		getJavaModel().refreshExternalArchives(new IJavaScriptElement[]{project},null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[-]: {}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * Refresh an external jar after a removal of this jar.
- */
-public void testExternalJarRemoved3() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String pPath = getExternalPath() + "p.jar";
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(pPath), null, null)});
-		
-		f = new File(pPath);
-		f.createNewFile();
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		deleteFile(f);
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(pPath);
-		getJavaModel().refreshExternalArchives(new IJavaScriptElement[]{root},null);
-		
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN}\n"+
-			"	"+f.getCanonicalPath()+"[-]: {}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-/**
- * - add an internal jar to claspath
- * - remove internal jar and the same jar as external jar
- * - refresh the JavaModel
- */
-public void testExternalJarInternalExternalJar() throws CoreException, IOException {
-	File f = null;
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		
-		String internalFooPath = "/P/foo.jar";
-		IFile fooIFile = this.createFile(internalFooPath, new byte[0]);
-		
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(new Path(internalFooPath), null, null)});
-		getJavaModel().refreshExternalArchives(null,null);
-		waitUntilIndexesReady();
-		startDeltas();
-		
-		// canonicalize the external path as this is not done on case sensitive platforms when creating a new lib entry
-		IPath externalFooPath = new Path(fooIFile.getLocation().toFile().getCanonicalPath());
-		setClasspath(project, new IIncludePathEntry[]{JavaScriptCore.newLibraryEntry(externalFooPath, null, null)});
-		
-		f = new File(externalFooPath.toOSString());
-		f.createNewFile();
-		touch(f);
-		
-		getJavaModel().refreshExternalArchives(null,null);
-		
-		String externalFooPathString = f.getCanonicalPath();
-		assertDeltas(
-			"Unexpected delta", 
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n"+
-			"	"+externalFooPathString+"[+]: {}\n"+
-			"	foo.jar[*]: {REMOVED FROM CLASSPATH}\n"+
-			"	ResourceDelta(/P/.classpath)[*]\n"+
-			"\n"+
-			"P[*]: {CHILDREN}\n"+
-			"	"+externalFooPathString+"[*]: {CONTENT | ARCHIVE CONTENT CHANGED}"
-		);
-	} finally {
-		if(f != null) {
-			deleteFile(f);
-		}
-		this.deleteProject("P");
-		this.stopDeltas();
-	}
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/FactoryTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/FactoryTests.java
deleted file mode 100644
index e044ab0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/FactoryTests.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.wst.jsdt.core.*;
-import junit.framework.Test;
-public class FactoryTests extends ModifyingResourceTests {
-public FactoryTests(String name) {
-	super(name);
-}
-
-public static Test suite() {
-	return buildModelTestSuite(FactoryTests.class);
-}
-/**
- * Ensures that a Java model element can be created from a IFile that
- * is a class file.
- */
-public void testCreateBinaryToolObject() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {}, new String[] {"lib"});
-		IFile file = this.createFile("/P/lib/X.class", "");
-		
-		IJavaScriptElement object = JavaScriptCore.create(file);
-		assertTrue("tooling object not created", object != null);
-		assertTrue("class file does not exist", object.exists());
-		assertTrue("wrong object created", object instanceof IClassFile);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that a Java model element can be created from a IFile that
- * is a Java file.  Ensures that any two model elements created will share
- * the same project.
- */
-public void testCreateCompilationUnits() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		this.createFolder("/P/src/x/y/z");
-		IFile fileA = this.createFile(
-			"/P/src/x/y/z/A.js", 
-			"package x.y.z;\n" +
-			"public class A {\n" +
-			"}"
-		);
-		IFile fileB = this.createFile(
-			"/P/src/x/y/B.js", 
-			"package x.y;\n" +
-			"public class B {\n" +
-			"}"
-		);
-
-		IJavaScriptElement objectA = JavaScriptCore.create(fileA);
-		assertTrue("tooling object A not created", objectA != null);
-		assertTrue("wrong object A created", objectA instanceof IJavaScriptUnit);
-		assertTrue("compilation unit A does not exist", objectA.exists());
-
-		IJavaScriptElement objectB = JavaScriptCore.create(fileB);
-		assertTrue("tooling object B not created", objectB != null);
-		assertTrue("wrong object B created", objectB instanceof IJavaScriptUnit);
-		assertTrue("compilation unit B does not exist", objectB.exists());
-
-		assertEquals("should share project", ((IJavaScriptUnit)objectA).getJavaScriptProject(), ((IJavaScriptUnit)objectB).getJavaScriptProject());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that a Java model element can be created from a IFile that
- * is a Java file. Even if not on the classpath (in this case it should not exist).
- */
-public void testCreateCompilationUnitsNotOnClasspath() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		this.createFolder("/P/other/nested");
-		IFile fileA = this.createFile("/P/other/A.js", "public class A {}");
-		IFile fileB = this.createFile("/P/other/nested/B.js", "public class B {}");
-		IFile fileC = this.createFile("/P/C.js", "public class C {}");
-		
-		IJavaScriptElement objectA = JavaScriptCore.create(fileA);
-		assertTrue("tooling object A not created", objectA != null);
-		assertTrue("wrong object A created", objectA instanceof IJavaScriptUnit);
-		assertTrue("compilation unit A should not exist", !objectA.exists());
-
-		IJavaScriptElement objectB = JavaScriptCore.create(fileB);
-		assertTrue("tooling object B not created", objectB != null);
-		assertTrue("wrong object B created", objectB instanceof IJavaScriptUnit);
-		assertTrue("compilation unit B should not exist", !objectB.exists());
-
-		assertEquals("should share project", ((IJavaScriptUnit)objectA).getJavaScriptProject(), ((IJavaScriptUnit)objectB).getJavaScriptProject());
-
-		IJavaScriptElement objectC = JavaScriptCore.create(fileC);
-		assertTrue("tooling object C not created", objectC != null);
-		assertTrue("wrong object C created", objectC instanceof IJavaScriptUnit);
-		assertTrue("compilation unit C should not exist", !objectC.exists());
-
-		IPackageFragment pkg= (IPackageFragment)objectA.getParent() ;
-		IPackageFragmentRoot root= (IPackageFragmentRoot)pkg.getParent();
-		assertEquals("pkg should be default", "", pkg.getElementName());
-		assertEquals("unexpected parent's folder", this.getFolder("/P/other"), pkg.getResource());
-		assertEquals("unexpected root", this.getFolder("/P/other"), root.getResource());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that a Java model element can be created from a IFolder.  
- * Test that no elements are created if there is no classpath.
- * Ensure that the correct Java model element is created based on the
- * classpath.  
- */
-public void testCreateFolderToolObjects() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = this.createJavaProject("P", new String[] {});
-		this.createFolder("/P/src/x/y/z");
-		
-		IFolder src =this.getFolder("/P/src");
-		IFolder res = src.getFolder("x");
-		IJavaScriptElement object = JavaScriptCore.create(res);
-		assertTrue("tooling object 1 should not be created", object == null);
-	
-		//set a classpath
-		IIncludePathEntry[] classpath= new IIncludePathEntry[] {JavaScriptCore.newSourceEntry(src.getFullPath())};
-		javaProject.setRawIncludepath(classpath, null);
-	
-		//test with a class path
-		object = JavaScriptCore.create(src);
-		assertTrue("tooling object 2 should be created", object != null);
-		assertTrue("tooling object 2 should be a IPackageFragmentRoot", object instanceof IPackageFragmentRoot);
-		assertEquals("IPackageFragmentRoot 2 name is incorrect", "src", object.getElementName());
-		assertTrue("root 'src' does not exist", object.exists());
-		
-		object = JavaScriptCore.create(res);
-		assertTrue("tooling object 3 should be created", object != null);
-		assertTrue("tooling object 3 should be a IPackageFragment", object instanceof IPackageFragment);
-		assertEquals("IPackageFragment 3 name is incorrect", "x", object.getElementName());
-		assertTrue("package 'com' does not exist", object.exists());
-	
-		IFolder subFolder= res.getFolder("y");
-		object= JavaScriptCore.create(subFolder);
-		assertTrue("tooling object 'x.y' should be created", object != null);
-		assertTrue("tooling object 'x.y' should be a IPackageFragment", object instanceof IPackageFragment);
-		assertEquals("IPackageFragment 'x.y' name is incorrect", "x.y", object.getElementName());
-		assertTrue("package 'x.y' does not exist", object.exists());
-	
-		//not on or below the class path
-		IFolder bin = this.getFolder("/P/bin");
-		object = JavaScriptCore.create(bin);
-		assertTrue("tooling object 4 should not be created", object == null);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that the factory correctly handles empty java files 
- */
-public void testCreateFromEmptyJavaFile() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		IFile file = this.createFile("/P/src/X.js", "");
-
-		IJavaScriptElement cu = JavaScriptCore.create(file);
-		assertTrue("does not handle empty Java files", cu != null);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that the factory correctly handles files without extensions
- */
-public void testCreateFromFileWithoutExtension() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		IFile file = this.createFile("/P/src/FileWithoutExtension", "public class X {}");
-
-		IJavaScriptElement cu = JavaScriptCore.create(file);
-		assertTrue("invalid file not detected", cu == null);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that factory correctly handles invalid mementos.
- */
-public void testCreateFromInvalidMemento()  {
-	assertTrue("invalid parameter not detected", JavaScriptCore.create((String) null) == null);
-	assertTrue("should return the java model", JavaScriptCore.create("") != null);
-}
-/**
- * Ensures that a Java model element can be created from a IFile
- * that is a zip or jar.  
- */
-public void testCreateJarToolObject() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {}, new String[] {"/P/lib.jar"});
-		IFile file = this.createFile("/P/lib.jar", "");
-
-		IJavaScriptElement jar = JavaScriptCore.create(file);
-		assertTrue("tooling object not created", jar != null);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Ensures that a Java model element can be created from a class folder library that is in the project's output.
- * (regression test for bug 25538 Conflict of classfolder and outputfolder not reported)
-*/ 
-public void testCreateLibInOutput() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {}, new String[] {"/P/lib"});
-		IFolder folder = this.createFolder("/P/lib");
-
-		IJavaScriptElement lib = JavaScriptCore.create(folder);
-		assertTrue("tooling object not created", lib != null);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/GetSourceTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/GetSourceTests.java
deleted file mode 100644
index aa9c0d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/GetSourceTests.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-public class GetSourceTests extends ModifyingResourceTests {
-
-	IJavaScriptUnit cu;
-
-	public GetSourceTests(String name) {
-		super(name);
-	}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		createJavaProject("P");
-		createFolder("/P/p");
-		createFile("/P/p/X.js", "package p;\n" + "import java.lang.*;\n"
-				+ "public class X {\n" + "  public Object field;\n"
-				+ "  private int s\\u0069ze;\n" + "  void foo(String s) {\n"
-				+ "    final int var1 = 2;\n" + "    Object var2;\n"
-				+ "    for (int i = 0;  i < 10; i++) {}\n" + "  }\n"
-				+ "  private int bar() {\n" + "    return 1;\n" + "  }\n"
-				+ "  /**\n" + "   * Returns the size.\n" + "   * @return\n"
-				+ "   *     the size\n" + "   */\n"
-				+ "  int getSiz\\u0065 () {\n" + "    return this.size;\n"
-				+ "  }\n" + "}");
-		this.cu = getCompilationUnit("/P/p/X.js");
-		String cuSource = "package p;\n" + "public class Constants {\n"
-				+ "  static final long field1 = 938245798324893L;\n"
-				+ "  static final long field2 = 938245798324893l;\n"
-				+ "  static final long field3 = 938245798324893;\n"
-				+ "  static final char field4 = ' ';\n"
-				+ "  static final double field5 = 938245798324893D;\n"
-				+ "  static final float field6 = 123456f;\n"
-				+ "  static final int field7 = 1<<0;\n" + "}";
-		createFile("/P/p/Constants.js", cuSource);
-	}
-
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-		// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-		// TESTS_NAMES = new String[] { "TypeParameterBug73884" };
-		// Numbers of tests to run: "test<number>" will be run for each number
-		// of this array
-		// TESTS_NUMBERS = new int[] { 13 };
-		// Range numbers of tests to run: all tests between "test<first>" and
-		// "test<last>" will be run for { first, last }
-		// TESTS_RANGE = new int[] { 16, -1 };
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(GetSourceTests.class);
-	}
-
-	public void tearDownSuite() throws Exception {
-		deleteProject("P");
-		super.tearDownSuite();
-	}
-
-	/**
-	 * Ensure the source for a field contains the modifiers, field type, name,
-	 * and terminator.
-	 */
-	public void testField() throws JavaScriptModelException {
-		IType type = this.cu.getType("X");
-		IField field = type.getField("field");
-
-		String actualSource = field.getSource();
-		String expectedSource = "public Object field;";
-		assertSourceEquals("Unexpected source'", expectedSource, actualSource);
-	}
-
-	/**
-	 * Ensure the source for an import contains the 'import' keyword, name, and
-	 * terminator.
-	 */
-	public void testImport() throws JavaScriptModelException {
-		IImportDeclaration i = this.cu.getImport("java.lang.*");
-
-		String actualSource = i.getSource();
-		String expectedSource = "import java.lang.*;";
-		assertSourceEquals("Unexpected source'", expectedSource, actualSource);
-	}
-
-	/*
-	 * Ensures the source for a local variable contains the modifiers, type and
-	 * name.
-	 */
-	public void testLocalVariable1() throws JavaScriptModelException {
-		ILocalVariable var = getLocalVariable("/P/p/X.js", "var1 = 2;", "var1");
-
-		String actualSource = ((ISourceReference) var).getSource();
-		String expectedSource = "final int var1 = 2;";
-		assertSourceEquals("Unexpected source'", expectedSource, actualSource);
-	}
-
-	/*
-	 * Ensures the source for a local variable contains the modifiers, type and
-	 * name.
-	 */
-	public void testLocalVariable2() throws JavaScriptModelException {
-		ILocalVariable var = getLocalVariable("/P/p/X.js", "var2;", "var2");
-
-		String actualSource = ((ISourceReference) var).getSource();
-		String expectedSource = "Object var2;";
-		assertSourceEquals("Unexpected source'", expectedSource, actualSource);
-	}
-
-	/*
-	 * Ensures the source for a local variable contains the modifiers, type and
-	 * name.
-	 */
-	public void testLocalVariable3() throws JavaScriptModelException {
-		ILocalVariable var = getLocalVariable("/P/p/X.js", "i = 0;", "i");
-
-		String actualSource = ((ISourceReference) var).getSource();
-		String expectedSource = "int i = 0"; // semi-colon is not part of the
-												// local declaration in a for
-												// statement
-		assertSourceEquals("Unexpected source'", expectedSource, actualSource);
-	}
-
-	/*
-	 * Ensures the source for a local variable contains the modifiers, type and
-	 * name.
-	 */
-	public void testLocalVariable4() throws JavaScriptModelException {
-		ILocalVariable var = getLocalVariable("/P/p/X.js", "s) {", "s");
-
-		String actualSource = ((ISourceReference) var).getSource();
-		String expectedSource = "String s";
-		assertSourceEquals("Unexpected source'", expectedSource, actualSource);
-	}
-
-	/**
-	 * Ensure the source for a method contains the modifiers, return type,
-	 * selector, and terminator.
-	 */
-	public void testMethod() throws JavaScriptModelException {
-		IType type = this.cu.getType("X");
-		IFunction method = type.getFunction("bar", new String[0]);
-
-		String actualSource = method.getSource();
-		String expectedSource = "private int bar() {\n" + "    return 1;\n"
-				+ "  }";
-		assertSourceEquals("Unexpected source'", expectedSource, actualSource);
-	}
-
-	/*
-	 * Ensures the name range for a method with syntax errors in its header is
-	 * correct. (regression test for bug 43139 Delete member in Outliner not
-	 * working)
-	 */
-	public void testNameRangeMethodWithSyntaxError() throws CoreException {
-		try {
-			String cuSource = "package p;\n" + "public class Y {\n"
-					+ "  void foo() {\n" + "  }\n" + "  void static bar() {}\n"
-					+ "}";
-			createFile("/P/p/Y.js", cuSource);
-			IFunction method = getCompilationUnit("/P/p/Y.js").getType("Y")
-					.getFunction("bar", new String[0]);
-
-			String actualSource = getNameSource(cuSource, method);
-			String expectedSource = "bar";
-			assertSourceEquals("Unexpected source'", expectedSource,
-					actualSource);
-		} finally {
-			deleteFile("/P/p/Y.js");
-		}
-	}
-
-	/*
-	 * Ensures the name range for an anonymous class is correct. (regression
-	 * test for bug 44450 Strange name range for anonymous classes)
-	 */
-	public void testNameRangeAnonymous() throws CoreException {
-		try {
-			String cuSource = "package p;\n" + "public class Y {\n"
-					+ "  void foo() {\n" + "    Y y = new Y() {};\n"
-					+ "    class C {\n" + "    }\n" + "  }\n" + "}";
-			createFile("/P/p/Y.js", cuSource);
-			IType anonymous = getCompilationUnit("/P/p/Y.js").getType("Y")
-					.getFunction("foo", new String[0]).getType("", 1);
-
-			String actualSource = getNameSource(cuSource, anonymous);
-			String expectedSource = "Y";
-			assertSourceEquals("Unexpected source'", expectedSource,
-					actualSource);
-		} finally {
-			deleteFile("/P/p/Y.js");
-		}
-	}
-
-	/**
-	 * Ensure the source for a field contains the modifiers, field type, name,
-	 * and terminator, and unicode characters.
-	 */
-	public void testUnicodeField() throws JavaScriptModelException {
-		IType type = this.cu.getType("X");
-		IField field = type.getField("size");
-
-		String actualSource = field.getSource();
-		String expectedSource = "private int s\\u0069ze;";
-		assertSourceEquals("Unexpected source'", expectedSource, actualSource);
-	}
-
-	/**
-	 * Ensure the source for a field contains the modifiers, field type, name,
-	 * and terminator, and unicode characters.
-	 */
-	public void testUnicodeMethod() throws JavaScriptModelException {
-		IType type = this.cu.getType("X");
-		IFunction method = type.getFunction("getSize", null);
-
-		String actualSource = method.getSource();
-		String expectedSource = "/**\n" + "   * Returns the size.\n"
-				+ "   * @return\n" + "   *     the size\n" + "   */\n"
-				+ "  int getSiz\\u0065 () {\n" + "    return this.size;\n"
-				+ "  }";
-		assertSourceEquals("Unexpected source", expectedSource, actualSource);
-	}
-
-	/**
-	 * Test the field constant
-	 */
-	private IField getConstantField(String fieldName) {
-		IType type = getCompilationUnit("/P/p/Constants.js").getType(
-				"Constants");
-		IField field = type.getField(fieldName);
-		return field;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/HierarchyOnWorkingCopiesTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/HierarchyOnWorkingCopiesTests.java
deleted file mode 100644
index b0de5ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/HierarchyOnWorkingCopiesTests.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.ITypeHierarchy;
-import junit.framework.Test;
-
-public class HierarchyOnWorkingCopiesTests extends WorkingCopyTests {
-
-public HierarchyOnWorkingCopiesTests(String name) {
-	super(name);
-}
-
-public static Test suite() {
-	return buildModelTestSuite(HierarchyOnWorkingCopiesTests.class);
-	/* NOTE: cannot use 'new Suite(HierarchyOnWorkingCopiesTests.class)' as this would include tests from super class
-	TestSuite suite = new Suite(HierarchyOnWorkingCopiesTests.class.getName());
-
-	suite.addTest(new HierarchyOnWorkingCopiesTests("testSimpleSuperTypeHierarchy"));
-	suite.addTest(new HierarchyOnWorkingCopiesTests("testSimpleSubTypeHierarchy"));
-
-	return suite;
-	*/
-}
-/**
- */
-public void testSimpleSubTypeHierarchy() throws CoreException {
-	String newContents =
-		"package x.y;\n" +
-		"public class A extends B {\n" +
-		"}";
-	this.copy.getBuffer().setContents(newContents);
-	this.copy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	
-	IFile file = null;
-	try {
-		file = this.createFile(
-			"P/src/x/y/B.js", 
-			"package x.y;\n" +
-			"public class B {\n" +
-			"}");
-	
-		IType type = this.getCompilationUnit("P/src/x/y/B.js").getType("B");
-		ITypeHierarchy h = type.newTypeHierarchy(new IJavaScriptUnit[] {this.copy}, null);
-
-		assertHierarchyEquals(
-			"Focus: B [in B.js [in x.y [in src [in P]]]]\n" + 
-			"Super types:\n" + 
-			"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + " [in P]]]]\n" + 
-			"Sub types:\n" + 
-			"  A [in [Working copy] A.js [in x.y [in src [in P]]]]\n",
-			h);
-	} finally {
-		if (file != null) {
-			this.deleteResource(file);
-		}
-	}
-}
-/**
- */
-public void testSimpleSuperTypeHierarchy() throws CoreException {
-	String newContents =
-		"package x.y;\n" +
-		"public class A {\n" +
-		"}\n"  +
-		"class B {\n" +
-		"}";
-	this.copy.getBuffer().setContents(newContents);
-	this.copy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	
-	IFile file = null;
-	try {
-		file = this.createFile(
-			"P/src/x/y/C.js", 
-			"package x.y;\n" +
-			"public class C extends B {\n" +
-			"}");
-	
-		IType type = this.getCompilationUnit("P/src/x/y/C.js").getType("C");
-		ITypeHierarchy h = type.newSupertypeHierarchy(new IJavaScriptUnit[] {this.copy}, null);
-
-		assertHierarchyEquals(
-			"Focus: C [in C.js [in x.y [in src [in P]]]]\n" + 
-			"Super types:\n" + 
-			"  B [in [Working copy] A.js [in x.y [in src [in P]]]]\n" + 
-			"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + " [in P]]]]\n" + 
-			"Sub types:\n",
-			h);
-	} finally {
-		if (file != null) {
-			this.deleteResource(file);
-		}
-	}
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/InclusionPatternsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/InclusionPatternsTests.java
deleted file mode 100644
index 4531c77..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/InclusionPatternsTests.java
+++ /dev/null
@@ -1,1049 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchConstants;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope;
-import org.eclipse.wst.jsdt.core.search.SearchEngine;
-
-import junit.framework.Test;
-
-public class InclusionPatternsTests extends ModifyingResourceTests {
-	IJavaScriptProject project;
-public InclusionPatternsTests(String name) {
-	super(name);
-}
-
-static {
-//	TESTS_NAMES = new String[] { "testIncludeCUOnly02" };
-}
-public static Test suite() {
-	return buildModelTestSuite(InclusionPatternsTests.class);
-}
-protected void setClasspath(String[] sourceFoldersAndInclusionPatterns) throws JavaScriptModelException {
-	this.project.setRawIncludepath(createClasspath(sourceFoldersAndInclusionPatterns, true/*inclusion*/, false/*no exclusion*/), null);
-}
-protected void setUp() throws Exception {
-	super.setUp();
-	this.project = createJavaProject( "P", new String[] {"src"}, new String[] {}, new String[] {}, new boolean[] {}, "bin", new String[] {"bin"}, new String[][] {new String[] {}}, new String[][] {new String[] {"**"}}, "1.4");
-	startDeltas();
-}
-
-protected void tearDown() throws Exception {
-	stopDeltas();
-	deleteProject("P");
-	super.tearDown();
-}
-/*
- * Ensure that adding an inclusion on a compilation unit
- * makes it appear in the children of its package and it is removed from the non-java resources.
- */
-public void testAddInclusionOnCompilationUnit() throws CoreException {
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	clearDeltas();
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-		"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-		"	ResourceDelta(/P/.classpath)[*]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"A.java [in p [in src [in P]]]",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that adding an inclusion on a folder directly under a project (and prj=src)
- * makes it disappear from the non-java resources.
- */
-public void testAddInclusionOnFolderUnderProject() throws CoreException {
-	try {
-		IJavaScriptProject javaProject = createJavaProject("P1", new String[] {""});
-		createFolder("/P1/doc");
-
-		clearDeltas();
-		javaProject.setRawIncludepath(createClasspath(new String[] {"/P1", "doc/"}, true/*inclusion*/, false/*no exclusion*/), null);
-	
-		assertDeltas(
-			"Unexpected deltas",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	<project root>[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]"
-		);
-	
-		IPackageFragmentRoot root = getPackageFragmentRoot("/P1");
-		assertSortedElementsEqual(
-			"Unexpected children",
-			"doc [in <project root> [in P1]]",
-			root.getChildren());
-		
-		assertResourceNamesEqual(
-			"Unexpected non-java resources of project",
-			".classpath\n" +
-			".project",
-			javaProject.getNonJavaScriptResources());
-	} finally {
-		deleteProject("P1");
-	}
-}
-/*
- * Ensure that adding an inclusion on a package
- * makes it appear in the list of children of its package fragment root 
- * and it is removed from the non-java resources.
- */
-public void testAddInclusionOnPackage() throws CoreException {
-	createFolder("/P/src/p");
-	
-	clearDeltas();
-	setClasspath(new String[] {"/P/src", "p/"});
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-		"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-		"	ResourceDelta(/P/.classpath)[*]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"p [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that adding a file to a folder that is included reports the correct delta.
- */
-public void testAddToIncludedFolder() throws CoreException {
-	createFolder("/P/src/p");
-	
-	// include folder and its contents
-	setClasspath(new String[] {"/P/src", "p/"});
-	
-	clearDeltas();
-	createFile("/P/src/p/my.txt", "");
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CONTENT}\n" + 
-		"			ResourceDelta(/P/src/p/my.txt)[+]"
-	);
-	
-	clearDeltas();
-	deleteFile("/P/src/p/my.txt");
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CONTENT}\n" + 
-		"			ResourceDelta(/P/src/p/my.txt)[-]"
-	);
-}
-/*
- * Ensure that creating an included compilation unit 
- * doesn't make it appear as a non-java resource but it is a child of its package.
- */
-public void testCreateIncludedCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	IPackageFragment pkg = getPackage("/P/src/p");
-
-	clearDeltas();
-	pkg.createCompilationUnit(
-		"A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}",
-		false,
-		null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN}\n" + 
-		"			A.java[+]: {}"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"A.java [in p [in src [in P]]]",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that creating an included package 
- * makes it appear as a child of its package fragment root and not as a non-java resource.
- */
-public void testCreateIncludedPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	
-	clearDeltas();
-	root.createPackageFragment("p", false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[+]: {}"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"p [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that creating a file that corresponds to an included compilation unit 
- * makes it appear as a child of its package and not as a non-java resource.
- */
-public void testCreateResourceIncludedCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	
-	clearDeltas();
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN}\n" + 
-		"			A.java[+]: {}"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"A.java [in p [in src [in P]]]",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that creating a file that corresponds to an included compilation unit
- * in a folder that is not included makes it appear as a child of its package and not as a non-java resource.
- * (regression test for bug 65234 Inclusion filter not working)
- */
-public void testCreateResourceIncludedCompilationUnit2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p1/p2/p3/A.js"});
-	createFolder("/P/src/p1/p2/p3");
-	
-	clearDeltas();
-	createFile(
-		"/P/src/p1/p2/p3/A.js",
-		"package p1.p2.p3;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		p1.p2.p3[*]: {CHILDREN}\n" + 
-		"			A.java[+]: {}\n" + 
-		"		ResourceDelta(/P/src/p1)[*]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p1/p2/p3");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"A.java [in p1.p2.p3 [in src [in P]]]",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that creating a folder that corresponds to an included package 
- * makes it appear as a child of its package fragment root and not as a non-java resource.
- */
-public void testCreateResourceIncludedPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	
-	clearDeltas();
-	createFolder("/P/src/p");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[+]: {}" 
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"p [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that creating a folder that is included in a folder that is not included
- * makes it appear as a child of its package fragment root and not as a non-java resource.
- * (regression test for bug 65234 Inclusion filter not working)
- */
-public void testCreateResourceIncludedPackage2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p1/p2/p3/"});
-	createFolder("/P/src/p1/p2");
-	
-	clearDeltas();
-	createFolder("/P/src/p1/p2/p3");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		p1.p2.p3[+]: {}\n" + 
-		"		ResourceDelta(/P/src/p1)[*]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"p1.p2.p3 [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"p1",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensures that the default package is included if the project is a source folder and one of the
- * compilation unit of the default package is included.
- * (regression test for bug 148278 Default-package classes missing in Package Explorer)
- */
-public void testDefaultPackageProjectIsSource() throws CoreException {
-	setClasspath(new String[] {"/P", "**/*.js"});
-	deleteFolder("/P/src");
-	createFile("/P/A.js", "public class A {}");
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P");
-	assertElementDescendants(
-		"Unexpected descendants of root",
-		"<project root>\n" + 
-		"  <default> (...)\n" + 
-		"    A.java\n" + 
-		"      class A",
-		root);
-}
-/*
- * Ensure that a type can be resolved if it is included but not its super packages.
- * (regression test for bug 119161 classes in "deep" packages not fully recognized when using tight inclusion filters)
- */
-public void testIncludeCUOnly01() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p1/p2/*.java|q/*.js"});
-	addLibraryEntry(getJavaProject("P"), getSystemJsPathString(), false);
-	createFolder("/P/src/p1/p2");
-	createFile(
-		"/P/src/p1/p2/X.js",
-		"package p1.p2;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit workingCopy = null;
-	try {
-		ProblemRequestor problemRequestor = new ProblemRequestor();
-		workingCopy = getWorkingCopy(
-			"/P/src/Y.js", 
-			"import p1.p2.X;\n" +
-			"public class Y extends X {\n" +
-			"}",
-			null/*primary owner*/,
-			problemRequestor);
-		assertProblems(
-			"Unepected problems",
-			"----------\n" + 
-			"----------\n",
-			problemRequestor);
-	} finally {
-		if (workingCopy != null)
-			workingCopy.discardWorkingCopy();
-	}	
-}
-/*
- * Ensure that a type can be resolved if it is included but not its super packages.
- * (regression test for bug 119161 classes in "deep" packages not fully recognized when using tight inclusion filters)
- */
-public void testIncludeCUOnly02() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p1/p2/p3/*.java|q/*.js"});
-	addLibraryEntry(getJavaProject("P"), getSystemJsPathString(), false);
-	createFolder("/P/src/p1/p2/p3");
-	createFile(
-		"/P/src/p1/p2/p3/X.js",
-		"package p1.p2.p3;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	IJavaScriptUnit workingCopy = null;
-	try {
-		ProblemRequestor problemRequestor = new ProblemRequestor();
-		workingCopy = getWorkingCopy(
-			"/P/src/Y.js", 
-			"import p1.p2.p3.X;\n" +
-			"public class Y extends X {\n" +
-			"}",
-			null/*primary owner*/,
-			problemRequestor);
-		assertProblems(
-			"Unepected problems",
-			"----------\n" + 
-			"----------\n",
-			problemRequestor);
-	} finally {
-		if (workingCopy != null)
-			workingCopy.discardWorkingCopy();
-	}	
-}
-/*
- * Ensures that a cu that is not included is not on the classpath of the project.
- */
-public void testIsOnClasspath1() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/B.js"});
-	createFolder("/P/src/p");
-	IFile file = createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	assertTrue("Resource should not be on classpath", !project.isOnIncludepath(file));
-	
-	IJavaScriptUnit cu = getCompilationUnit("/P/src/p/A.js");
-	assertTrue("CU should not be on classpath", !project.isOnIncludepath(cu));
-}
-/*
- * Ensures that a cu that is included is on the classpath of the project.
- */
-public void testIsOnClasspath2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	IFile file = createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	assertTrue("Resource should be on classpath", project.isOnIncludepath(file));
-	
-	IJavaScriptUnit cu = getCompilationUnit("/P/src/p/A.js");
-	assertTrue("CU should be on classpath", project.isOnIncludepath(cu));
-}
-/*
- * Ensures that a non-java resource that is not included is not on the classpath of the project.
- */
-public void testIsOnClasspath3() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/X.js"});
-	createFolder("/P/src/p");
-	IFile file = createFile("/P/src/p/readme.txt", "");
-	assertTrue("Resource should not be on classpath", !project.isOnIncludepath(file));
-}
-/*
- * Ensures that a non-java resource that is included is on the classpath of the project.
- */
-public void testIsOnClasspath4() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/**"});
-	createFolder("/P/src/p");
-	IFile file = createFile("/P/src/p/readme.txt", "");
-	assertTrue("Resource should be on classpath", project.isOnIncludepath(file));
-}
-/*
- * Ensures that moving a folder that contains an included package reports the correct delta.
- * (regression test for bug 67324 Package Explorer doesn't update included package after moving contents of source folder)
- */
-public void testMoveFolderContainingPackage1() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p1/p2/"});
-	createFolder("/P/src/p1/p2");
-	
-	clearDeltas();
-	getFolder("/P/src/p1").move(new Path("/P/p1"), false, null);
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		p1.p2[-]: {}\n" + 
-		"		ResourceDelta(/P/src/p1)[-]\n" + 
-		"	ResourceDelta(/P/p1)[+]"
-	);
-}
-/*
- * Ensures that moving a folder that contains an included package reports the correct delta.
- * (regression test for bug 67324 Package Explorer doesn't update included package after moving contents of source folder)
- */
-public void testMoveFolderContainingPackage2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p1/p2/"});
-	createFolder("/P/p1/p2");
-	
-	clearDeltas();
-	getFolder("/P//p1").move(new Path("/P/src/p1"), false, null);
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		p1.p2[+]: {}\n" + 
-		"		ResourceDelta(/P/src/p1)[+]\n" + 
-		"	ResourceDelta(/P/p1)[-]"
-	);
-}
-/*
- * Ensures that a non-included nested source folder doesn't appear as a non-java resource of the outer folder.
- * 
- */
-public void testNestedSourceFolder1() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "**/A.js", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	IPackageFragmentRoot root1 = getPackageFragmentRoot("/P/src1");
-	assertResourceNamesEqual(
-		"Unexpected non-java resources for /P/src1",
-		"",
-		root1.getNonJavaScriptResources());
-}
-/*
- * Ensures that adding a .java file in a nested source folder reports 
- * a delta on the nested source folder and not on the outer one.
- */
-public void testNestedSourceFolder2() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "**/X.js", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	
-	clearDeltas();
-	createFile(
-		"/P/src1/src2/A.js",
-		"public class A {\n" +
-		"}"
-	);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1/src2[*]: {CHILDREN}\n" + 
-		"		<default>[*]: {CHILDREN}\n" + 
-		"			A.java[+]: {}"
-	);
-}
-/*
- * Ensures that adding a .txt file in a nested source folder reports 
- * a resource delta on the nested source folder and not on the outer one.
- */
-public void testNestedSourceFolder3() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "**/X.js", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	
-	clearDeltas();
-	createFile("/P/src1/src2/readme.txt", "");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1/src2[*]: {CONTENT}\n" + 
-		"		ResourceDelta(/P/src1/src2/readme.txt)[+]"
-	);
-}
-/*
- * Ensures that adding a folder in a nested source folder reports 
- * a delta on the nested source folder and not on the outer one.
- */
-public void testNestedSourceFolder4() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "**/X.js", "/P/src1/src2", "**/X.js"});
-	createFolder("/P/src1/src2");
-	
-	clearDeltas();
-	createFolder("/P/src1/src2/p");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1/src2[*]: {CHILDREN}\n" + 
-		"		p[+]: {}"
-	);
-}
-/*
- * Ensures that adding a folder in a outer source folder reports 
- * a delta on the outer source folder and not on the nested one.
- */
-public void testNestedSourceFolder5() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "**/X.js", "/P/src1/src2", ""});
-	createFolder("/P/src1/src2");
-	
-	clearDeltas();
-	createFolder("/P/src1/p");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1[*]: {CHILDREN}\n" + 
-		"		p[+]: {}"
-	);
-}
-/*
- * Ensures that moving a package from an outer source folder to a nested
- * source folder reports a move delta.
- */
-public void testNestedSourceFolder6() throws CoreException {
-	setClasspath(new String[] {"/P/src1", "**/X.js", "/P/src1/src2", "**/X.js"});
-	createFolder("/P/src1/src2");
-	createFolder("/P/src1/p");
-	
-	clearDeltas();
-	moveFolder("/P/src1/p", "/P/src1/src2/p");
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src1[*]: {CHILDREN}\n" + 
-		"		p[-]: {MOVED_TO(p [in src1/src2 [in P]])}\n" + 
-		"	src1/src2[*]: {CHILDREN}\n" + 
-		"		p[+]: {MOVED_FROM(p [in src1 [in P]])}"
-	);
-}
-/*
- * Ensure that removing the inclusion on a compilation unit
- * makes it disappears from the children of its package and it is added to the non-java resources.
- */
-public void testRemoveInclusionOnCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	clearDeltas();
-	setClasspath(new String[] {"/P/src", "**/B.js"});
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-		"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-		"	ResourceDelta(/P/.classpath)[*]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"A.js",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that removing the inclusion on a package
- * makes it disappears from the children of its package fragment root 
- * and it is added to the non-java resources.
- */
-public void testRemoveInclusionOnPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p"});
-	createFolder("/P/src/p");
-	
-	clearDeltas();
-	setClasspath(new String[] {"/P/src", "q"});
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-		"	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-		"	ResourceDelta(/P/.classpath)[*]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"<default> [in src [in P]]",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"p",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that renaming an included compilation unit so that it is not included any longer
- * makes it disappears from the children of its package and it is added to the non-java resources.
- */
-public void testRenameIncludedCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	IFile file = createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-
-	clearDeltas();
-	file.move(new Path("/P/src/p/B.js"), false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN | CONTENT}\n" + 
-		"			A.java[-]: {}\n" + 
-		"			ResourceDelta(/P/src/p/B.java)[+]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"B.js",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that renaming an included package so that it is not included any longer
- * makes it disappears from the children of its package fragment root 
- * and it is added to the non-java resources.
- */
-public void testRenameIncludedPackage1() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	IPackageFragment pkg = root.createPackageFragment("p", false, null);
-	
-	clearDeltas();
-	pkg.rename("q", false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		p[-]: {}\n" + 
-		"		ResourceDelta(/P/src/q)[+]"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"q",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that renaming an included package that has compilation units
- * so that it is not included any longer doesn't throw a JavaScriptModelException.
- * (regression test for bug 67297 Renaming included package folder throws JME)
- */
-public void testRenameIncludedPackage2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	IPackageFragment pkg = root.createPackageFragment("p", false, null);
-	createFile(
-		"/P/src/p/X.js",
-		"package p;\n" +
-		"public class X {\n" +
-		"}"
-	);
-	
-	clearDeltas();
-	pkg.rename("q", false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		p[-]: {}\n" + 
-		"		ResourceDelta(/P/src/q)[+]"
-	);
-	
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"q",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that renaming a file that corresponds to an included compilation unit so that it is not included any longer
- * makes it disappears from the children of its package and it is added to the non-java resources.
- */
-public void testRenameResourceIncludedCompilationUnit() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	IFile file = createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	clearDeltas();
-	file.move(new Path("/P/src/p/B.js"),  false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		p[*]: {CHILDREN | CONTENT}\n" + 
-		"			A.java[-]: {}\n" + 
-		"			ResourceDelta(/P/src/p/B.java)[+]"
-	);
-	
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		pkg.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"B.js",
-		pkg.getNonJavaScriptResources());
-}
-/*
- * Ensure that renaming a folder that corresponds to an included package 
- * so that it is not included any longer
- * makes it disappears afrom the children of its package fragment root 
- * and it is added to the non-java resources.
- */
-public void testRenameResourceIncludedPackage() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	IFolder folder = createFolder("/P/src/p");
-	
-	clearDeltas();
-	folder.move(new Path("/P/src/q"), false, null);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN | CONTENT}\n" + 
-		"		p[-]: {}\n" + 
-		"		ResourceDelta(/P/src/q)[+]"
-	);
-	
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children",
-		"",
-		root.getChildren());
-		
-	assertResourceNamesEqual(
-		"Unexpected non-java resources",
-		"q",
-		root.getNonJavaScriptResources());
-}
-/*
- * Ensure that a potential match in the output folder is not indexed.
- * (regression test for bug 32041 Multiple output folders fooling Java Model)
- */
-public void testSearchPotentialMatchInOutput() throws CoreException {
-	try {
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				IJavaScriptProject javaProject = createJavaProject("P2", new String[] {});
-				javaProject.setRawIncludepath(createClasspath(new String[] {"/P2", "**/X.js", "/P2/src", ""}, true/*inclusion*/, false/*no exclusion*/), null);
-				createFile(
-					"/P2/bin/X.js",
-					"public class X {\n" +
-					"}"
-				);
-			}
-		}, null);
-		
-		JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {getJavaProject("P")});
-		search(
-			"X", 
-			IJavaScriptSearchConstants.TYPE,
-			IJavaScriptSearchConstants.DECLARATIONS,
-			scope, 
-			resultCollector);
-		assertEquals("", resultCollector.toString());
-	} finally {
-		deleteProject("P2");
-	}
-}
-/*
- * Ensure search finds matches in an included compilation unit.
- */
-public void testSearchWithIncludedCompilationUnit1() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-	search(
-		"A", 
-		IJavaScriptSearchConstants.TYPE,
-		IJavaScriptSearchConstants.DECLARATIONS,
-		SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("P")}), 
-		resultCollector);
-	assertEquals(
-		"Unexpected matches found",
-		"src/p/A.java p.A [A]",
-		resultCollector.toString());
-}
-/*
- * Ensure search doesn't find matches in a compilation unit that was included but that is not any longer.
- */
-public void testSearchWithIncludedCompilationUnit2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "**/A.js"});
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	
-	setClasspath(new String[] {"/P/src", "**/B.js"});
-	JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-	search(
-		"A", 
-		IJavaScriptSearchConstants.TYPE,
-		IJavaScriptSearchConstants.DECLARATIONS,
-		SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("P")}), 
-		resultCollector);
-	assertEquals(
-		"Unexpected matches found",
-		"",
-		resultCollector.toString());
-}
-/*
- * Ensure search finds matches in an included package.
- * (case of setting the classpath)
- */
-public void testSearchWithIncludedPackage1() throws CoreException {
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	setClasspath(new String[] {"/P/src", "p/"});
-	
-	JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-	search(
-		"A", 
-		IJavaScriptSearchConstants.TYPE,
-		IJavaScriptSearchConstants.DECLARATIONS,
-		SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("P")}), 
-		resultCollector);
-	assertEquals(
-		"Unexpected matches found",
-		"src/p/A.java p.A [A]",
-		resultCollector.toString());
-}
-/*
- * Ensure search finds matches in an included package.
- * (case of opening the project)
- */
-public void testSearchWithIncludedPackage2() throws CoreException {
-	setClasspath(new String[] {"/P/src", "p/"});
-	createFolder("/P/src/p");
-	createFile(
-		"/P/src/p/A.js",
-		"package p;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	IProject p = this.project.getProject();
-	p.close(null);
-	p.open(null);
-	
-	JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-	search(
-		"A", 
-		IJavaScriptSearchConstants.TYPE,
-		IJavaScriptSearchConstants.DECLARATIONS,
-		SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("P")}), 
-		resultCollector);
-	assertEquals(
-		"Unexpected matches found",
-		"src/p/A.java p.A [A]",
-		resultCollector.toString());
-}
-/*
- * Ensure that an included pattern of the form "com/" includes all the subtree
- * (regression test for bug 62608 Include pattern ending with slash should include all subtree)
- */
-public void testTrailingSlash() throws CoreException {
-	setClasspath(new String[] {"/P/src", "a/"});
-	createFolder("/P/src/a/b/c");
-	IPackageFragmentRoot root = getPackageFragmentRoot("/P/src");
-	assertSortedElementsEqual(
-		"Unexpected children of root",
-		"a [in src [in P]]\n" + 
-		"a.b [in src [in P]]\n" + 
-		"a.b.c [in src [in P]]",
-		root.getChildren());
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JSDTModelTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JSDTModelTests.java
deleted file mode 100644
index 1adedf0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JSDTModelTests.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.core.tests.model;

-

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.wst.jsdt.core.JavaScriptCore;

-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;

-

-	/**

-	 * Run all java model tests.

-	 */

-	public class JSDTModelTests extends TestSuite {

-	static {

-		JavaScriptCore.getPlugin().getPluginPreferences().setValue("semanticValidation", true);

-	}

-	

-	public JSDTModelTests() {

-		this("JavaScript Model Tests");

-	}

-		

-	public JSDTModelTests(String name) {

-		super(name);

-		Class[] classes = getAllTestClasses();

-		for (int i = 0; i < classes.length; i++) {

-			addTestSuite(classes[i]);

-		}

-	}

-

-private static Class[] getAllTestClasses() {

-	Class[] classes = new Class[] {

-	

-		// Enter each test here, grouping the tests that are related

-			

-		// Binding key tests

-		BindingKeyTests.class,

-

-//		// creation of method

-//		CreateMembersTests.class,

-//		

-//		// Java Naming convention tests

-//		JavaConventionTests.class,

-//	

-//		// Project & Root API unit tests

-//		JavaProjectTests.class,

-//	

-//		// Compilation unit tests

-//		CompilationUnitTests.class,

-//	

-//		// Source attachment tests

-//		AttachSourceTests.class,

-//		

-//		// Attached javadoc tests

-//		AttachedJavadocTests.class,

-//	

-//		// Java search tests

-//		RunJavaSearchTests.class,

-//			

-//		// Working copy tests

-		WorkingCopyTests.class,

-//		WorkingCopyNotInClasspathTests.class,

-//		HierarchyOnWorkingCopiesTests.class,

-//		

-//		// test IJavaScriptModel

-//		JavaModelTests.class,

-//	

-//		// tests to check the encoding

-//		EncodingTests.class,

-//		

-//		// test class name with special names like names containing '$'

-//		ClassNameTests.class,

-//		

-		// IBuffer tests

-		BufferTests.class,

-//	

-//		// Name lookup tests

-//		NameLookupTests2.class,

-//	

-//		// Classpath and output location tests

-//		ClasspathTests.class,

-//	

-//		// Delta tests

-//		JavaElementDeltaTests.class,

-//		ExternalJarDeltaTests.class,

-//	

-//		// Java element existence tests

-//		ExistenceTests.class,

-//		

-//		// Support for "open on" feature tests

-//		ResolveTests.class,

-//		ResolveTests_1_5.class,

-//		SelectionJavadocModelTests.class,

-//

-//		// Support for completion tests

-		RunCompletionModelTests.class,

-//		

-//		// Prefix and suffix tests

-//		NamingConventionTests.class,

-//		

-//		// Code correction tests

-//		CodeCorrectionTests.class,

-//		

-//		// Options tests

-//		OptionTests.class,

-//		

-//		// Type hierarchy tests

-//		TypeHierarchyTests.class,

-//		TypeHierarchyNotificationTests.class,

-//		TypeHierarchySerializationTests.class,

-//		

-//		// Resolve type tests

-//		TypeResolveTests.class,

-//	

-//		// Reconciler tests

-//		ReconcilerTests.class,

-//		ReconcilerStatementsRecoveryTests.class,

-//		

-//		// Copy and move operation tests

-//		CopyMoveElementsTests.class,

-//		CopyMoveResourcesTests.class,

-//	

-//		// Rename tests

-//		RenameTests.class,

-//		

-//		// Exclusion patterns tests

-//		ExclusionPatternsTests.class,

-//		

-//		// Inclusion patterns tests

-//		InclusionPatternsTests.class,

-//		

-//		// Access restrictions tests

-//		AccessRestrictionsTests.class,

-//		

-//		// Signature tests

-//		SignatureTests.class,

-//		

-//		// Variable initializers and container initializers tests

-//		ClasspathInitializerTests.class,

-//	

-//		// Java Model Factory tests

-//		FactoryTests.class,

-//				

-//		// Java Element persistence tests

-//		MementoTests.class,

-//		

-//		// Java Element sorting tests

-//		SortCompilationUnitElementsTests.class,

-//	

-//		// Package fragment root manipulation tests

-//		RootManipulationsTests.class,

-//		

-//		// Owverflowing cache tests

-//		OverflowingCacheTests.class,

-//		

-//		// Working copy owner tests

-//		WorkingCopyOwnerTests.class,

-//	

-//		// Delete Java element tests

-//		DeleteTests.class,

-//		

-//		// Local element tests

-//		LocalElementTests.class,

-//		

-//		// Get source tests

-//		GetSourceTests.class,

-//			

-//		// Create packages tests

-//		CreatePackageTests.class,

-//	

-//		// Create compilation units tests

-//		CreateCompilationUnitTests.class,

-//		

-//		// Create search participant tests

-//		SearchParticipantTests.class,

-//		

-//		// Class file tests

-//		ClassFileTests.class,

-//		

-		// Java-like extensions tests

-		JavaScriptLikeExtensionsTests.class,

-		

-		// Code snipper parsing util tests

-		CodeSnippetParsingUtilTests.class

-	};

-	

-	int classesLength = classes.length;

-	Class[] result = new Class[classesLength];

-	System.arraycopy(classes, 0, result, 0, classesLength);

-	

-	return result;

-}

-

-public static Test suite() {

-	TestSuite suite = new TestSuite("JSDT Model Tests");

-

-	// Hack to load all classes before computing their suite of test cases

-	// this allow to reset test cases subsets while running all Java Model tests...

-	Class[] classes = getAllTestClasses();

-

-	// Reset forgotten subsets of tests

-	TestCase.TESTS_PREFIX = null;

-	TestCase.TESTS_NAMES = null;

-	TestCase.TESTS_NUMBERS = null;

-	TestCase.TESTS_RANGE = null;

-	TestCase.RUN_ONLY_ID = null;

-	

-	for (int i = 0, length = classes.length; i < length; i++) {

-		Class clazz = classes[i];

-		Method suiteMethod;

-		try {

-			suiteMethod = clazz.getDeclaredMethod("suite", new Class[0]);

-		} catch (NoSuchMethodException e) {

-			e.printStackTrace();

-			continue;

-		}

-		Object test;

-		try {

-			test = suiteMethod.invoke(null, new Object[0]);

-		} catch (IllegalAccessException e) {

-			e.printStackTrace();

-			continue;

-		} catch (InvocationTargetException e) {

-			e.printStackTrace();

-			continue;

-		}

-		suite.addTest((Test) test);

-	}

-

-	return suite;

-}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaConventionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaConventionTests.java
deleted file mode 100644
index 960d4e1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaConventionTests.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.jsdt.core.JavaScriptConventions;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-public class JavaConventionTests extends AbstractJavaModelTests {
-	public JavaConventionTests(String name) {
-		super(name);
-	}
-
-	static {
-//		TESTS_PREFIX = "testInvalidCompilerOptions";
-//		TESTS_NAMES = new String[] { "testValidCompilerOptions", "testInvalidCompilerOptions" };
-	}
-	public static Test suite() {
-		return buildModelTestSuite(JavaConventionTests.class);
-	}
-
-	/*
-	 * Verify status type and messages.
-	 */
-	protected void verifyStatus(IStatus status, String[] expectedMessages) {
-		int length = expectedMessages.length;
-		IStatus[] allStatus = status.getChildren();
-		switch (length) {
-			case 0:
-				assertTrue("Status should be OK!", status.isOK());
-				return;
-			case 1:
-				assertFalse("Unexpected type of status!", status.isMultiStatus());
-				assertEquals("Unexpected number of errors!", length, 1);
-				allStatus = new IStatus[] { status };
-				break;
-			default:
-				assertTrue("Unexpected type of status!", status.isMultiStatus());
-				assertEquals("Unexpected number of errors!", length, allStatus.length);
-				break;
-		}
-		List failuresMessages = new ArrayList();
-		for (int i=0; i<length; i++) {
-			assertFalse("Status should be KO!", allStatus[i].isOK());
-			if (!allStatus[i].getMessage().equals(expectedMessages[i])) {
-				failuresMessages.add(allStatus[i].getMessage());
-			}
-		}
-		int count = failuresMessages.size();
-		if (count > 0) {
-			System.out.println("Test "+getName()+" fails. Add this declaration to fix it:");
-			System.out.println("		String[] expectedMessages = {");
-			for (int i=0; i<count; i++) {
-				System.out.print("			\""+failuresMessages.get(i)+"\"");
-				if (i==(count-1))
-					System.out.println("");
-				else
-					System.out.println(",");
-			}
-			System.out.println("		};");
-		}
-		assertTrue("There "+(count>1?"are ":"is ")+count+" unexpected status!", count==0);
-	}
-
-	// Kind of validations
-	static final int COMPILATION_UNIT_NAME = 1;
-	static final int CLASS_FILE_NAME = 2;
-	static final int FIELD_NAME = 3;
-	static final int IDENTIFIER = 4;
-	static final int IMPORT_DECLARATION = 5;
-	static final int JAVA_TYPE_NAME = 6;
-	static final int METHOD_NAME = 7;
-	static final int PACKAGE_NAME = 8;
-	static final int TYPE_VARIABLE_NAME = 9;
-	
-	// All possible compiler versions
-	static final String[] VERSIONS = new String[] {
-		CompilerOptions.VERSION_1_1,
-		CompilerOptions.VERSION_1_2,
-		CompilerOptions.VERSION_1_3,
-		CompilerOptions.VERSION_1_4,
-		CompilerOptions.VERSION_1_5,
-		CompilerOptions.VERSION_1_6,
-	};
-
-	/*
-	 * Return the status for a string regarding a given kind of validation.
-	 * Use JavaScriptConventions default source and compliance levels.
-	 */
-	int validate(String string, int kind) {
-		return validate(string, kind, CompilerOptions.VERSION_1_3, CompilerOptions.VERSION_1_3);
-	}
-
-	/*
-	 * Return the status for a string regarding a given kind of validation.
-	 */
-	int validate(String string, int kind, String sourceLevel, String complianceLevel) {
-		switch (kind) {
-			case COMPILATION_UNIT_NAME:
-				return JavaScriptConventions.validateCompilationUnitName(string, sourceLevel, complianceLevel).getSeverity();
-			case CLASS_FILE_NAME:
-				return JavaScriptConventions.validateClassFileName(string, sourceLevel, complianceLevel).getSeverity();
-			case FIELD_NAME:
-				return JavaScriptConventions.validateFieldName(string, sourceLevel, complianceLevel).getSeverity();
-			case IDENTIFIER:
-				return JavaScriptConventions.validateIdentifier(string, sourceLevel, complianceLevel).getSeverity();
-			case IMPORT_DECLARATION:
-				return JavaScriptConventions.validateImportDeclaration(string, sourceLevel, complianceLevel).getSeverity();
-			case JAVA_TYPE_NAME:
-				return JavaScriptConventions.validateJavaScriptTypeName(string, sourceLevel, complianceLevel).getSeverity();
-			case METHOD_NAME:
-				return JavaScriptConventions.validateFunctionName(string, sourceLevel, complianceLevel).getSeverity();
-			case PACKAGE_NAME:
-				return JavaScriptConventions.validatePackageName(string, sourceLevel, complianceLevel).getSeverity();
-			case TYPE_VARIABLE_NAME:
-				return JavaScriptConventions.validateTypeVariableName(string, sourceLevel, complianceLevel).getSeverity();
-		}
-		return -1;
-	}
-
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testInvalidIdentifier() {
-		String[] invalidIds = new String[] {" s\\u0069ze", " s\\u0069ze ", "", "1java", "Foo Bar", "#@$!", "Foo-Bar", "if", "InvalidEscapeSequence\\g", "true", "false", "null", null, " untrimmmed "};
-		for (int i = 0; i < invalidIds.length; i++) {
-			assertEquals("identifier not recognized as invalid: " + invalidIds[i], IStatus.ERROR, validate(invalidIds[i], IDENTIFIER));
-		}
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testInvalidImportDeclaration1() {
-		assertEquals("import not reconized as invalid; java.math.", IStatus.ERROR, validate("java.math.", IMPORT_DECLARATION));
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testInvalidImportDeclaration2() {
-		assertEquals("import not reconized as invalid; java.math*", IStatus.ERROR, validate("java.math*", IMPORT_DECLARATION));
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testInvalidImportDeclaration3() {
-		assertEquals("import not reconized as invalid; empty string", IStatus.ERROR, validate("", IMPORT_DECLARATION));
-	}
-//	/**
-//	 * Test for package fragment root overlap
-//	 * @deprecated isOverlappingRoots is deprecated
-//	 */
-//	public void testPackageFragmentRootOverlap() throws Exception {
-//		try {
-//			IJavaScriptProject project = this.createJavaProject("P1", new String[] {"src"}, new String[] {"/P1/jclMin.jar"}, "bin");
-//			
-//			// ensure the external JCL is copied
-//			setupExternalJCL("jclMin");
-//			
-//			this.copy(new java.io.File(getExternalJCLPathString()), new java.io.File(getWorkspaceRoot().getLocation().toOSString() + java.io.File.separator + "P1" + java.io.File.separator + "jclMin.jar"));
-//			project.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
-//			
-//			IPackageFragmentRoot p1Zip= getPackageFragmentRoot("P1", "jclMin.jar");
-//			IPackageFragmentRoot p1Src= getPackageFragmentRoot("P1", "src");
-//		
-//			assertTrue("zip should not overlap source root",
-//					!JavaScriptConventions.isOverlappingRoots(p1Zip.getUnderlyingResource().getFullPath(), p1Src.getUnderlyingResource().getFullPath()));
-//		
-//			this.createJavaProject("P2", new String[] {"src"}, "bin");
-//		
-//			IPackageFragmentRoot p2Src= getPackageFragmentRoot("P2", "src");
-//			assertTrue("source roots in different projects should not overlap ",
-//					!JavaScriptConventions.isOverlappingRoots(p1Src.getUnderlyingResource().getFullPath(), p2Src.getUnderlyingResource().getFullPath()));
-//		
-//			assertTrue("The same root should overlap", JavaScriptConventions.isOverlappingRoots(p2Src.getUnderlyingResource().getFullPath(), p2Src.getUnderlyingResource().getFullPath()));
-//		
-//			assertTrue("isOverLappingRoot does not handle null arguments", !JavaScriptConventions.isOverlappingRoots(p2Src.getUnderlyingResource().getFullPath(), null));
-//			assertTrue("isOverLappingRoot does not handle null arguments", !JavaScriptConventions.isOverlappingRoots(null, null));
-//		} finally {
-//			this.deleteProject("P1");
-//			this.deleteProject("P2");
-//		}
-//	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidCompilationUnitName() {
-		String[] invalidNames = new String[] {"java/lang/Object.js", "Object.class", ".js", "Object.javaaa", "A.B.js"};
-		for (int i = 0; i < invalidNames.length; i++) {
-			assertEquals("compilation unit name not recognized as invalid: " + invalidNames[i], IStatus.ERROR, validate(invalidNames[i], COMPILATION_UNIT_NAME));
-		}
-		String[] validNames = new String[] {"Object.js", "OBJECT.js", "object.js", "package-info.js"};
-		for (int i = 0; i < validNames.length; i++) {
-			assertEquals("compilation unit name not recognized as valid: " + validNames[i], IStatus.OK, validate(validNames[i], COMPILATION_UNIT_NAME));
-		}
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidFieldName() {
-		assertEquals("unicode field name not handled", IStatus.OK, validate("s\\u0069ze", FIELD_NAME));
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidIdentifier() {
-		String[] validIds = new String[] {"s\\u0069ze", "Object", "An_Extremly_Long_Class_Name_With_Words_Separated_By_Undescores"};
-		for (int i = 0; i < validIds.length; i++) {
-			assertEquals("identifier not recognized as valid: " + validIds[i], IStatus.OK, validate(validIds[i], IDENTIFIER));
-		}
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidImportDeclaration() {
-		assertEquals("import not reconized as valid", IStatus.OK, validate("java.math.*", IMPORT_DECLARATION));
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidMethodName() {
-		assertEquals("unicode method name not handled", IStatus.OK, validate("getSiz\\u0065", METHOD_NAME));
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidPackageName() {
-		
-		String pkgName= "org.eclipse.wst.jsdt.core.t\\u0065sts.MyPackage";
-		assertEquals("unicode package name not handled", IStatus.OK, validate(pkgName, PACKAGE_NAME));
-	
-		assertEquals("package name not recognized as invalid1", IStatus.ERROR, validate("", PACKAGE_NAME));
-		assertEquals("package name not recognized as valid1", IStatus.OK, validate("java . lang", PACKAGE_NAME));
-		assertEquals("package name not recognized as invalid2", IStatus.ERROR, validate("   java . lang", PACKAGE_NAME));
-		assertEquals("package name not recognized as invalid3", IStatus.ERROR, validate("java . lang  ", PACKAGE_NAME));
-		assertEquals("package name not recognized as invalid4", IStatus.ERROR, validate(null, PACKAGE_NAME));
-		assertEquals("package name not recognized as unconventional1", IStatus.WARNING, validate("Java.lang", PACKAGE_NAME));
-		assertEquals("package name not recognized as valid2", IStatus.OK, validate("java.Lang", PACKAGE_NAME));
-		assertEquals("package name not recognized as invalid5", IStatus.ERROR, validate("Test.sample&plugin", PACKAGE_NAME));
-		assertEquals("package name not recognized as unconventional2", IStatus.WARNING, validate("Test.sample", PACKAGE_NAME));
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidTypeName() {
-		// regression tests for 1G5HVPB: ITPJCORE:WINNT - validateJavaTypeName accepts type names ending with \
-		assertEquals("type name should not contain slashes (1)", IStatus.ERROR, validate("Object\\", JAVA_TYPE_NAME));
-		assertEquals("type name should not contain slashes (2)", IStatus.ERROR, validate("Object/", JAVA_TYPE_NAME));
-		assertEquals("type name should not contain slashes (3)", IStatus.ERROR, validate("\\Object", JAVA_TYPE_NAME));
-		assertEquals("type name should not contain slashes (4)", IStatus.ERROR, validate("java\\lang\\Object", JAVA_TYPE_NAME));
-	
-		// regression test for 1G52ZIF: ITPJUI:WINNT - Wizards should strongly discourage the use of non-standard names
-		assertEquals("discouraged type names not handled", IStatus.WARNING, validate("alowercasetypename", JAVA_TYPE_NAME));
-	
-		// other tests
-		assertEquals("unicode type name not handled", IStatus.OK, validate("P\\u0065a", JAVA_TYPE_NAME));
-		assertEquals("qualified type names not handled", IStatus.OK, validate("java  .  lang\t.Object", JAVA_TYPE_NAME));
-		assertEquals("simple qualified type names not handled", IStatus.OK, validate("java.lang.Object", JAVA_TYPE_NAME));
-		assertEquals("simple type names not handled", IStatus.OK, validate("Object", JAVA_TYPE_NAME));
-		assertEquals("discouraged type names not handled", IStatus.WARNING, validate("Object$SubType", JAVA_TYPE_NAME));
-		assertEquals("invalid type name not recognized", IStatus.ERROR, validate("==?==", JAVA_TYPE_NAME));
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidTypeVariableName() {
-		assertEquals("E sould be a valid variable name", IStatus.OK, validate("E", TYPE_VARIABLE_NAME));
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidUnicodeImportDeclaration() {
-		
-		String pkgName= "com.\\u0069bm.jdt.core.tests.MyPackag\\u0065";
-		assertEquals("import not reconized as valid", IStatus.OK, validate(pkgName, IMPORT_DECLARATION));
-	
-	}
-	/**
-	 * @see JavaScriptConventions
-	 */
-	public void testValidUnicodePackageName() {
-		
-		String pkgName= "com.\\u0069bm.jdt.core.tests.MyPackag\\u0065";
-		assertEquals("unicode package name not handled", IStatus.OK, validate(pkgName, PACKAGE_NAME));
-		assertEquals("Parameter modified", "com.\\u0069bm.jdt.core.tests.MyPackag\\u0065", pkgName);
-	
-	}
-
-	/**
-	 * Test fix for bug 79392: [prefs] JavaScriptConventions should offer compiler options validation API
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79392">79392</a>
-	 * TODO (frederic) activate all following tests when bug 79392 will be finalized
-	 */
-	/*
-	public void testInvalidCompilerOptions01() throws CoreException, BackingStoreException {
-		// Set options
-		Map options = JavaScriptCore.getOptions();
-		options.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_5);
-		options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_5);
-		options.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_4);
-
-		// Validate options
-		String[] expectedMessages = {
-			"Target level '1.4' is incompatible with source level '1.5'. A target level '1.5' or better is required"
-		};
-		verifyStatus(JavaScriptConventions.validateCompilerOptions(options), expectedMessages);
-	}
-	public void testInvalidCompilerOptions02() throws CoreException, BackingStoreException {
-		Map options = JavaScriptCore.getOptions();
-		options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_5);
-
-		// Validate options
-		String[] expectedMessages = {
-			"Target level '1.2' is incompatible with source level '1.5'. A target level '1.5' or better is required",
-			"Compliance level '1.4' is incompatible with source level '1.5'. A compliance level '1.5' or better is required"
-		};
-		verifyStatus(JavaScriptConventions.validateCompilerOptions(options), expectedMessages);
-	}
-	public void testInvalidCompilerOptions04() throws CoreException, BackingStoreException {
-		// Set options
-		Map options = JavaScriptCore.getOptions();
-		options.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_3);
-		options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-		options.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_5);
-
-		// Validate options
-		String[] expectedMessages = {
-			"Compliance level '1.3' is incompatible with target level '1.4'. A compliance level '1.4' or better is required",
-			"Compliance level '1.3' is incompatible with source level '1.4'. A compliance level '1.4' or better is required"
-		};
-		verifyStatus(JavaScriptConventions.validateCompilerOptions(options), expectedMessages);
-	}
-	public void testValidCompilerOptions01() throws CoreException, BackingStoreException {
-		// Set options
-		Map options = JavaScriptCore.getOptions();
-		options.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_5);
-		options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-		options.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_4);
-
-		// Validate options
-		String[] expectedMessages = {};
-		verifyStatus(JavaScriptConventions.validateCompilerOptions(options), expectedMessages);
-	}
-	public void testValidCompilerOptions02() throws CoreException, BackingStoreException {
-		// Set options
-		Map options = JavaScriptCore.getOptions();
-		options.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_4);
-		options.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_3);
-		options.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_4);
-
-		// Validate options
-		String[] expectedMessages = {};
-		verifyStatus(JavaScriptConventions.validateCompilerOptions(options), expectedMessages);
-	}
-	*/
-
-	/**
-	 * @bug 161621: enum is a Keyword for Java5 and cannot be used as a Enum name
-	 * @test Ensure that 'assert' identifier is rejected when source level greater than 1.3
-	 * 	and that 'enum' identifier is rejected when source level greater than 1.4
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=161621"
-	 */
-	public void testAssertIdentifier() {
-		int length = VERSIONS.length;
-		for (int i=0; i<length; i++) { // source level
-			for (int j=0; j<length; j++) { // compliance level
-				if (i < 3) { // source level < VERSION_1_4
-					assertEquals("'assert' should be accepted with source level "+VERSIONS[i], IStatus.OK, validate("assert", IDENTIFIER,VERSIONS[i], VERSIONS[j]));
-					assertEquals("By convention, Java type names usually start with an uppercase letter", IStatus.WARNING, validate("assert", JAVA_TYPE_NAME,VERSIONS[i], VERSIONS[j]));
-				} else {
-					assertEquals("'assert' should be rejected with source level "+VERSIONS[i], IStatus.ERROR, validate("assert", IDENTIFIER,VERSIONS[i], VERSIONS[j]));
-				}
-			}
-		}
-	}
-	public void testEnumIdentifier() {
-		int length = VERSIONS.length;
-		for (int i=0; i<length; i++) { // source level
-			for (int j=0; j<length; j++) { // compliance level
-				if (i < 4) { // source level < VERSION_1_5
-					assertEquals("'enum' should be accepted with source level "+VERSIONS[i], IStatus.OK, validate("enum", IDENTIFIER,VERSIONS[i], VERSIONS[j]));
-					assertEquals("By convention, Java type names usually start with an uppercase letter", IStatus.WARNING, validate("enum", JAVA_TYPE_NAME,VERSIONS[i], VERSIONS[j]));
-				} else {
-					assertEquals("'enum' should be rejected with source level "+VERSIONS[i], IStatus.ERROR, validate("enum", IDENTIFIER,VERSIONS[i], VERSIONS[j]));
-				}
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaElementDeltaTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaElementDeltaTests.java
deleted file mode 100644
index a0a5082..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaElementDeltaTests.java
+++ /dev/null
@@ -1,2056 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.ElementChangedEvent;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IElementChangedListener;
-import org.eclipse.wst.jsdt.core.IJavaScriptElementDelta;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.internal.core.*;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-/**
- * These test ensure that modifications in Java projects are correctly reported
- * as IJavaElementDeltas.
- */
-public class JavaElementDeltaTests extends ModifyingResourceTests {
-
-	public class DeltaListener implements IElementChangedListener {
-		ArrayList deltas;
-		int eventType;
-
-		public DeltaListener() {
-			DeltaListener.this.deltas = new ArrayList();
-			DeltaListener.this.eventType = -1;
-		}
-
-		public DeltaListener(int eventType) {
-			DeltaListener.this.deltas = new ArrayList();
-			DeltaListener.this.eventType = eventType;
-		}
-
-		public void elementChanged(ElementChangedEvent event) {
-			if (DeltaListener.this.eventType == -1
-					|| event.getType() == DeltaListener.this.eventType) {
-				DeltaListener.this.deltas.add(event.getDelta());
-			}
-		}
-
-		public void flush() {
-			DeltaListener.this.deltas = new ArrayList();
-		}
-
-		public String toString() {
-			StringBuffer buffer = new StringBuffer();
-			for (int i = 0, length = DeltaListener.this.deltas.size(); i < length; i++) {
-				IJavaScriptElementDelta delta = (IJavaScriptElementDelta) this.deltas
-						.get(i);
-				IJavaScriptElementDelta[] children = delta
-						.getAffectedChildren();
-				if (children.length > 0) {
-					for (int j = 0, childrenLength = children.length; j < childrenLength; j++) {
-						buffer.append(children[j]);
-						if (j != childrenLength - 1) {
-							buffer.append("\n");
-						}
-					}
-				} else {
-					buffer.append(delta);
-				}
-				if (i != length - 1) {
-					buffer.append("\n\n");
-				}
-			}
-			return buffer.toString();
-		}
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(JavaElementDeltaTests.class);
-	}
-
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-		// TESTS_PREFIX = "testBug100772_ProjectScope";
-		// TESTS_NAMES = new String[] { "testAddInvalidSubfolder" };
-		// TESTS_NUMBERS = new int[] { 100772 };
-		// TESTS_RANGE = new int[] { 83304, -1 };
-	}
-
-	public JavaElementDeltaTests(String name) {
-		super(name);
-	}
-
-	/**
-	 * Ensures that adding a comment to a working copy and commiting it triggers
-	 * an empty fine grained delta with the kind set for POST_CHANGE listeners.
-	 * (regression test for bug 32937 Kind not set for empty fine-grained delta)
-	 */
-	public void testAddCommentAndCommit() throws CoreException {
-		DeltaListener listener = new DeltaListener(
-				ElementChangedEvent.POST_CHANGE);
-		IJavaScriptUnit copy = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFile("P/X.js", "function X() {\n" + "}");
-			IJavaScriptUnit unit = getCompilationUnit("P", "", "", "X.js");
-			copy = unit.getWorkingCopy(null);
-
-			// add comment to working copy
-			copy.getBuffer().setContents(
-					"function X(){\n" + "  // some comment\n" + "}");
-
-			// commit working copy
-			JavaScriptCore.addElementChangedListener(listener,
-					ElementChangedEvent.POST_CHANGE);
-			copy.commitWorkingCopy(true, null);
-			assertEquals(
-					"Unexpected delta after committing working copy",
-					"P[*]: {CHILDREN}\n"
-							+ "	<project root>[*]: {CHILDREN}\n"
-							+ "		<default>[*]: {CHILDREN}\n"
-							+ "			X.js[*]: {CONTENT | FINE GRAINED | PRIMARY RESOURCE}",
-					listener.toString());
-		} finally {
-			JavaScriptCore.removeElementChangedListener(listener);
-			if (copy != null)
-				copy.discardWorkingCopy();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Add cu in default package test (proj=src=bin).
-	 */
-	public void testAddCuInDefaultPkg1() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			startDeltas();
-			createFile("P/X.js", "function X() {\n" + "}");
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n"
-					+ "		<default>[*]: {CHILDREN}\n" + "			X.js[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Add cu in default package test (proj!=src!=bin).
-	 */
-	public void testAddCuInDefaultPkg2() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-			startDeltas();
-			createFile("P/src/X.js", "function X() {\n" + "}");
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	src[*]: {CHILDREN}\n" + "		<default>[*]: {CHILDREN}\n"
-					+ "			X.js[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Add cu after opening its project (regression test for 56870 copied file
-	 * not shown in package explorer / java browser [ccp])
-	 */
-	public void testAddCuAfterProjectOpen() throws CoreException {
-		try {
-			IJavaScriptProject p1 = createJavaProject("P1",
-					new String[] { "src" });
-			IJavaScriptProject p2 = createJavaProject("P2",
-					new String[] { "src" });
-			createFile("P2/src/X.js", "function X() {\n" + "}");
-			IProject project = p2.getProject();
-			project.close(null);
-
-			// invalidate roots
-			p1.setRawIncludepath(new IIncludePathEntry[] {}, null);
-
-			// open project
-			project.open(null);
-
-			startDeltas();
-			createFile("P2/src/Y.js", "function Y() {\n" + "}");
-			assertDeltas("Unexpected delta", "P2[*]: {CHILDREN}\n"
-					+ "	src[*]: {CHILDREN}\n" + "		<default>[*]: {CHILDREN}\n"
-					+ "			Y.js[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P1");
-			deleteProject("P2");
-		}
-	}
-
-	/*
-	 * Add the .classpath file to a Java project that was missing it.
-	 * (regression test for bug 26128 packages don't appear in package explorer
-	 * view)
-	 */
-	public void testAddDotClasspathFile() throws CoreException {
-		try {
-			createProject("P");
-			createFolder("/P/src");
-
-			// add Java nature
-			editFile(
-					"/P/.project",
-					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-							+ "<projectDescription>\n"
-							+ "	<name>Test</name>\n"
-							+ "	<comment></comment>\n"
-							+ "	<projects>\n"
-							+ "	</projects>\n"
-							+ "	<buildSpec>\n"
-							+ "		<buildCommand>\n"
-							+ "			<name>org.eclipse.wst.jsdt.core.jsbuilder</name>\n"
-							+ "			<arguments>\n"
-							+ "			</arguments>\n"
-							+ "		</buildCommand>\n"
-							+ "	</buildSpec>\n"
-							+ "	<natures>\n"
-							+ "		<nature>org.eclipse.wst.jsdt.core.jsnature</nature>\n"
-							+ "	</natures>\n" + "</projectDescription>");
-
-			startDeltas();
-			createFile(
-					"P/.classpath",
-					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-							+ "<classpath>\n"
-							+ "    <classpathentry kind=\"src\" path=\"src\"/>\n"
-							+ "    <classpathentry kind=\"output\" path=\"bin\"/>\n"
-							+ "</classpath>");
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {REMOVED FROM CLASSPATH}\n"
-					+ "	src[*]: {ADDED TO CLASSPATH}\n"
-					+ "	ResourceDelta(/P/.classpath)[+]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensure that a resource delta is fired when a file is added to a non-java
-	 * project. (regression test for bug 18698 Seeing non-java projects in
-	 * package view)
-	 */
-	public void testAddFileToNonJavaProject() throws CoreException {
-		try {
-			createProject("P");
-			startDeltas();
-			createFile("/P/toto.txt", "");
-			assertDeltas("Unexpected delta", "ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensure that adding a folder in a non-Java folder (i.e. a folder with an
-	 * invalid package name) reports the correct delta (regression test for bug
-	 * 130982 META-INF directories shown as empty META-INF.* packages in J2EE
-	 * Navigator)
-	 */
-	public void testAddFolderInNonJavaFolder() throws CoreException {
-		try {
-			createJavaProject("P");
-			createFolder("/P/META-INF");
-			startDeltas();
-			createFolder("/P/META-INF/folder");
-			assertDeltas("Unexpected delta", "P[*]: {CONTENT}\n"
-					+ "	ResourceDelta(/P/META-INF)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensure that a resource delta is fired when a .name folder is added to a
-	 * java project where prj=src. (regression test for bug 31383 Strange
-	 * rendering of of link resources when link points to Eclipse workspace)
-	 */
-	public void testAddInvalidSubfolder() throws CoreException {
-		try {
-			createJavaProject("P");
-			startDeltas();
-			createFolder("/P/p/.folder");
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n" + "		p[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Add the java nature to an existing project.
-	 */
-	public void testAddJavaNature() throws CoreException {
-		try {
-			createProject("P");
-			startDeltas();
-			addJavaNature("P");
-			assertDeltas("Unexpected delta", "P[+]: {}\n" + "ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Add the java nature to an existing project and set the classpath in an
-	 * IWorkspaceRunnable. Ensures that adding a non-java resource reports the
-	 * correct delta. (regression test for bug 44066 Package Explorer doesn't
-	 * show new file)
-	 */
-	public void testAddJavaNatureAndClasspath() throws CoreException {
-		try {
-			createProject("P");
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					addJavaNature("P");
-					createFolder("/P/src");
-					getJavaProject("P").setRawIncludepath(
-							new IIncludePathEntry[] { JavaScriptCore
-									.newSourceEntry(new Path("/P/src")) },
-							null);
-				}
-			}, null);
-			startDeltas();
-			createFile("/P/src/file.txt", "");
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	src[*]: {CONTENT}\n"
-					+ "		ResourceDelta(/P/src/file.txt)[+]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Add a java project.
-	 */
-	public void testAddJavaProject() throws CoreException {
-		try {
-			startDeltas();
-			createJavaProject("P", new String[] { "" });
-			assertDeltas("Unexpected delta", "P[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Add a non-java project.
-	 */
-	public void testAddNonJavaProject() throws CoreException {
-		try {
-			startDeltas();
-			createProject("P");
-			assertDeltas("Should get a non-Java resource delta",
-					"ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	public void testAddPackageSourceIsBin() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-			startDeltas();
-			createFolder("P/src/x");
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	src[*]: {CHILDREN}\n" + "		x[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Add 2 java projects in an IWorkspaceRunnable.
-	 */
-	public void testAddTwoJavaProjects() throws CoreException {
-		try {
-			startDeltas();
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					createJavaProject("P1", new String[] { "" });
-					createJavaProject("P2", new String[] { "src" });
-				}
-			}, null);
-			assertEquals("Unexpected delta", "P1[+]: {}\n" + "P2[+]: {}",
-					getSortedByProjectDeltas());
-		} finally {
-			stopDeltas();
-			deleteProject("P1");
-			deleteProject("P2");
-		}
-	}
-
-	/*
-	 * Add 2 java projects in an IWorkspaceRunnable.
-	 */
-	public void testAddTwoJavaProjectsWithExtraSetClasspath()
-			throws CoreException {
-		try {
-			startDeltas();
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IJavaScriptProject p1 = createJavaProject("P1",
-							new String[] { "" });
-					// should be a no-op and no extra delta volley should be
-					// fired
-					p1.setRawIncludepath(p1.getRawIncludepath(), null);
-					createJavaProject("P2", new String[] { "src" });
-				}
-			}, null);
-			assertEquals("Unexpected delta", "P1[+]: {}\n" + "P2[+]: {}",
-					getSortedByProjectDeltas());
-		} finally {
-			stopDeltas();
-			deleteProject("P1");
-			deleteProject("P2");
-		}
-	}
-
-	/*
-	 * Batch operation test.
-	 */
-	public void testBatchOperation() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-			createFolder("P/src/x");
-			createFile("P/src/x/A.js", "function A() {\n" + "}");
-			startDeltas();
-			JavaScriptCore.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IJavaScriptUnit unit = getCompilationUnit("P/src/x/A.js");
-					// unit.createType("class B {}", null, false, monitor);
-					unit.createField("var i;", null, false, monitor);
-				}
-			}, null);
-			assertDeltas(
-					"Unexpected delta",
-					"P[*]: {CHILDREN}\n"
-							+ "	src[*]: {CHILDREN}\n"
-							+ "		x[*]: {CHILDREN}\n"
-							+ "			A.js[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n"
-							+ "				i[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensures that if a project's output folder is used as a lib folder in
-	 * another project, building the first project results in the correct delta
-	 * in the other project.
-	 */
-	public void testBuildProjectUsedAsLib() throws CoreException {
-		try {
-			IJavaScriptProject p1 = createJavaProject("P1",
-					new String[] { "src1" }, new String[] { "JCL_LIB" });
-			createJavaProject("P2", new String[] { "src2" },
-					new String[] { "/P1/bin1" });
-			createFile("/P1/src1/X.js", "function X() {\n" + "}");
-
-			// force opening of project to avoid external jar delta
-			p1.open(null);
-
-			startDeltas();
-
-			// full build
-			p1.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null);
-			waitForAutoBuild();
-			assertDeltas("Unexpected delta (1)", "P2[*]: {CHILDREN}\n"
-					+ "	/P1/bin1[*]: {CHILDREN}\n"
-					+ "		<default>[*]: {CHILDREN}\n" + "			X.class[+]: {}");
-
-			editFile("/P1/src1/X.js", "function X() {\n" +
-			// "  void foo() {}\n" +
-					"}\n" + "function Y() {\n" + "}");
-			clearDeltas();
-
-			// incremental buid
-			p1.getProject().build(IncrementalProjectBuilder.INCREMENTAL_BUILD,
-					null);
-			waitForAutoBuild();
-			assertDeltas("Unexpected delta (2)", "P2[*]: {CHILDREN}\n"
-					+ "	/P1/bin1[*]: {CHILDREN}\n"
-					+ "		<default>[*]: {CHILDREN}\n"
-					+ "			X.class[*]: {CONTENT}\n" + "			Y.class[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P1");
-			deleteProject("P2");
-		}
-	}
-
-	/**
-	 * Ensures that changing the custom output folder of a source entry triggers
-	 * a F_REMOVED_FROM_CLASSPATH and F_ADDED_TO_CLASSPATH delta.
-	 */
-	public void testChangeCustomOutput() throws CoreException {
-		try {
-			IJavaScriptProject proj = createJavaProject("P",
-					new String[] { "src" }, "bin", new String[] { "bin1" });
-			startDeltas();
-			setClasspath(proj, new IIncludePathEntry[] { JavaScriptCore
-					.newSourceEntry(new Path("/P/src"), new IPath[0], new Path(
-							"/P/bin2")) });
-			assertDeltas(
-					"Unexpected delta",
-					"P[*]: {CHILDREN | CLASSPATH CHANGED}\n"
-							+ "	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n"
-							+ "	ResourceDelta(/P/.classpath)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	//
-	// /*
-	// * Ensures that the setting the classpath where the only change is the
-	// export flag
-	// * triggers a F_CLASSPATH CHANGED delta.
-	// * (regression test for bug 75517 No classpath delta for project becoming
-	// exported)
-	// */
-	// public void testChangeExportFlag() throws CoreException {
-	// try {
-	// createJavaProject("P1");
-	// IJavaScriptProject proj = createJavaProject("P2", new String[] {}, new
-	// String[] {}, new String[] {"/P1"}, new boolean[] {false}, "bin");
-	// startDeltas();
-	// setClasspath(
-	// proj,
-	// new IIncludePathEntry[] {
-	// JavaScriptCore.newProjectEntry(new Path("/P1"), true)
-	// });
-	// assertDeltas(
-	// "Unexpected delta",
-	// "P2[*]: {CONTENT | CLASSPATH CHANGED}\n" +
-	// "	ResourceDelta(/P2/.classpath)[*]"
-	// );
-	// } finally {
-	// stopDeltas();
-	// deleteProject("P1");
-	// deleteProject("P2");
-	// }
-	// }
-
-	/**
-	 * Ensures that the setting the classpath with a library entry triggers a
-	 * F_REMOVED_FROM_CLASSPATH and F_ADDED_TO_CLASSPATH delta.
-	 */
-	public void testChangeRootKind() throws CoreException {
-		try {
-			IJavaScriptProject proj = createJavaProject("P",
-					new String[] { "src" });
-			startDeltas();
-			setClasspath(proj, new IIncludePathEntry[] { JavaScriptCore
-					.newLibraryEntry(new Path("/P/src"), null, null, false) });
-			assertDeltas(
-					"Unexpected delta",
-					"P[*]: {CHILDREN | CLASSPATH CHANGED}\n"
-							+ "	src[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n"
-							+ "	ResourceDelta(/P/.classpath)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Close a java project.
-	 */
-	public void testCloseJavaProject() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			IProject project = getProject("P");
-			startDeltas();
-			project.close(null);
-			assertDeltas("Unexpected delta", "P[*]: {CLOSED}\n"
-					+ "ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Close a non-java project.
-	 */
-	public void testCloseNonJavaProject() throws CoreException {
-		try {
-			createProject("P");
-			IProject project = getProject("P");
-			startDeltas();
-			project.close(null);
-			assertDeltas("Unexpected delta", "ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	// /*
-	// * Closing a non-java project that contains a jar referenced in another
-	// project should produce
-	// * a delta on this other project.
-	// * (regression test for bug 19058 Closing non-java project doesn't remove
-	// root from java project)
-	// */
-	// public void testCloseNonJavaProjectUpdateDependent() throws CoreException
-	// {
-	// try {
-	// createProject("SP");
-	// createFile("/SP/x.jar", "");
-	// createJavaProject("JP", new String[] {""}, new String[] {"/SP/x.jar"},
-	// "");
-	// IProject project = getProject("SP");
-	// startDeltas();
-	// project.close(null);
-	// assertDeltas(
-	// "Unexpected delta",
-	// "JP[*]: {CHILDREN}\n" +
-	// "	/SP/x.jar[-]: {}\n" +
-	// "ResourceDelta(/SP)"
-	// );
-	// } finally {
-	// stopDeltas();
-	// deleteProject("SP");
-	// deleteProject("JP");
-	// }
-	// }
-	/**
-	 * Test that deltas are generated when a compilation unit is added and
-	 * removed from a package via core API.
-	 */
-	public void testCompilationUnitRemoveAndAdd() throws CoreException {
-		try {
-			createJavaProject("P");
-			// createFolder("/P/p");
-			IFile file = createFile("/P/X.js", "function X() {\n" + "}");
-
-			// delete cu
-			startDeltas();
-			deleteResource(file);
-			assertDeltas("Unexpected delta after deleting /P/X.js",
-					"P[*]: {CHILDREN}\n" + "	<project root>[*]: {CHILDREN}\n"
-							+ "		<default>[*]: {CHILDREN}\n" + "			X.js[-]: {}");
-
-			// add cu
-			clearDeltas();
-			createFile("/P/X.js", "function X() {\n" + "}");
-			assertDeltas("Unexpected delta after adding /P/p/X.js",
-					"P[*]: {CHILDREN}\n" + "	<project root>[*]: {CHILDREN}\n"
-							+ "		p[*]: {CHILDREN}\n" + "			X.js[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	public void testCreateSharedWorkingCopy() throws CoreException {
-		IJavaScriptUnit copy = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFile("P/X.js", "function X() {\n" + "}");
-			IJavaScriptUnit unit = getCompilationUnit("P", "", "", "X.js");
-			startDeltas();
-			copy = unit.getWorkingCopy(new WorkingCopyOwner() {
-			}, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n"
-					+ "		<default>[*]: {CHILDREN}\n"
-					+ "			[Working copy] X.js[+]: {}");
-		} finally {
-			stopDeltas();
-			if (copy != null)
-				copy.discardWorkingCopy();
-			deleteProject("P");
-		}
-	}
-
-	public void testCreateWorkingCopy() throws CoreException {
-		IJavaScriptUnit copy = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFile("P/X.js", "function X() {\n" + "}");
-			IJavaScriptUnit unit = getCompilationUnit("P", "", "", "X.js");
-			startDeltas();
-			copy = unit.getWorkingCopy(null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n"
-					+ "		<default>[*]: {CHILDREN}\n"
-					+ "			[Working copy] X.js[+]: {}");
-		} finally {
-			stopDeltas();
-			if (copy != null)
-				copy.discardWorkingCopy();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensure that the delta is correct if a package is copied on top of an
-	 * existing package. (regression test for bug 61270 Wrong delta when copying
-	 * a package that overrides another package)
-	 */
-	public void testCopyAndOverwritePackage() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src1", "src2" });
-			// createFolder("/P/src1/p");
-			createFile("P/src1/X.js", "function X() {\n" + "}");
-			createFolder("/P/src2");
-			startDeltas();
-			getPackage("/P/src1").copy(getPackageFragmentRoot("/P/src2"),
-					null/* no sibling */, null/* no rename */, true/* replace */,
-					null/* no progress */);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	src2[*]: {CHILDREN}\n" + "		p[*]: {CHILDREN}\n"
-					+ "			X.js[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Test that deltas are generated when a compilation unit not on the
-	 * classpath is added and removed from a package via core API.
-	 */
-	public void testCUNotOnClasspath() throws CoreException {
-		try {
-			createJavaProject("P", new String[] {});
-			// createFolder("/P/src/p");
-			IFile file = createFile("/P/src/p/X.js", "function X() {\n" + "}");
-
-			startDeltas();
-			deleteResource(file);
-			assertDeltas("Unexpected delta after deletion of /P/src/X.js",
-					"P[*]: {CONTENT}\n" + "	ResourceDelta(/P/src)[*]");
-
-			clearDeltas();
-			createFile("/P/src/X.js", "function X() {\n" + "}");
-			assertDeltas("Unexpected delta after addition of /P/src/X.js",
-					"P[*]: {CONTENT}\n" + "	ResourceDelta(/P/src)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	// /*
-	// * Ensure that deleting a jar that is in a folder and that is on the
-	// classpath reports
-	// * a removed pkg fragment root delta.
-	// * (regression test for bug 27068 Elements in the Package Explorer are
-	// displayed but don't more exist [package explorer])
-	// *
-	// */
-	// public void testDeleteInnerJar() throws CoreException {
-	// try {
-	// createJavaProject("P", new String[] {"src"}, new String[]
-	// {"/P/lib/x.jar"}, "bin");
-	// createFolder("/P/lib");
-	// IFile file = createFile("/P/lib/x.jar", "");
-	// startDeltas();
-	// deleteResource(file);
-	// assertDeltas(
-	// "Unexpected deltas",
-	// "P[*]: {CHILDREN | CONTENT}\n" +
-	// "	lib/x.jar[-]: {}\n" +
-	// "	ResourceDelta(/P/lib)[*]"
-	// );
-	// } finally {
-	// stopDeltas();
-	// deleteProject("P");
-	// }
-	// }
-	/*
-	 * Ensure that deleting a non-Java folder that contains a source root folder
-	 * reports a removed root delta as well as a resource delta for the removed
-	 * folder. (regression test for bug 24045 Error deleting parent folder of
-	 * source folder)
-	 */
-	public void testDeleteNonJavaFolder() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "foo/bar" });
-			IFolder folder = getFolder("/P/foo");
-			startDeltas();
-			deleteResource(folder);
-			assertDeltas("Unexpected deltas", "P[*]: {CHILDREN | CONTENT}\n"
-					+ "	foo/bar[-]: {}\n" + "	ResourceDelta(/P/foo)[-]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensures that changing a project's classpath and deleting it in an
-	 * IWorkspaceRunnable doesn't throw an NPE (regression test for bug 148015
-	 * NPE in log from ClasspathChange)
-	 */
-	public void testDeleteProjectAfterChangingClasspath() throws CoreException {
-		try {
-			final IJavaScriptProject project = createJavaProject("P");
-			IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					project.setRawIncludepath(createClasspath("P",
-							new String[] { "/P/src", "" }),
-							monitor);
-					deleteProject("P");
-				}
-			};
-			startDeltas();
-			getWorkspace().run(runnable, null/* no progress */);
-			assertDeltas("Unexpected delta", "P[-]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}/*
-	 * Ensure that deleting a project and setting the classpath on another
-	 * project in an IWorkspaceRunnable doesn't throw a NullPointerException
-	 * (regression test for bug 25197 NPE importing external plugins)
-	 */
-
-	public void testDeleteProjectSetCPAnotherProject() throws CoreException {
-		final IJavaScriptProject project = createJavaProject("P1",
-				new String[] { "src" });
-		createJavaProject("P2", new String[] {});
-
-		try {
-			startDeltas();
-			JavaScriptCore.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					deleteProject("P2");
-					project.setRawIncludepath(
-							new IIncludePathEntry[] { JavaScriptCore
-									.newSourceEntry(project.getPath()) }, null);
-				}
-			}, null);
-			assertDeltas("Unexpected deltas",
-					"P1[*]: {CHILDREN | CLASSPATH CHANGED}\n"
-							+ "	<project root>[*]: {ADDED TO CLASSPATH}\n"
-							+ "	src[*]: {REMOVED FROM CLASSPATH}\n"
-							+ "	ResourceDelta(/P1/.classpath)[*]\n"
-							+ "P2[-]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P1");
-			deleteProject("P2");
-		}
-	}
-
-	public void testDiscardWorkingCopy1() throws CoreException { // renamed from
-																	// testDestroyWorkingCopy
-		IJavaScriptUnit copy = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFile("P/X.js", "public class X {\n" + "}");
-			IJavaScriptUnit unit = getCompilationUnit("P", "", "", "X.js");
-			copy = unit.getWorkingCopy(null);
-			startDeltas();
-			copy.discardWorkingCopy();
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n"
-					+ "		<default>[*]: {CHILDREN}\n"
-					+ "			[Working copy] X.js[-]: {}");
-		} finally {
-			stopDeltas();
-			if (copy != null)
-				copy.discardWorkingCopy();
-			deleteProject("P");
-		}
-	}
-
-	public void testDiscardWorkingCopy2() throws CoreException { // renamed from
-																	// testDestroySharedWorkingCopy
-		IJavaScriptUnit copy = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFile("P/X.js", "public class X {\n" + "}");
-			IJavaScriptUnit unit = getCompilationUnit("P", "", "", "X.js");
-			copy = unit.getWorkingCopy(new WorkingCopyOwner() {
-			}, null);
-			startDeltas();
-			copy.discardWorkingCopy();
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n"
-					+ "		<default>[*]: {CHILDREN}\n"
-					+ "			[Working copy] X.js[-]: {}");
-		} finally {
-			stopDeltas();
-			if (copy != null)
-				copy.discardWorkingCopy();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensures that a delta listener that asks for POST_CHANGE events gets those
-	 * events and no others.
-	 */
-	public void testListenerPostChange() throws CoreException {
-		DeltaListener listener = new DeltaListener(
-				ElementChangedEvent.POST_CHANGE);
-		IJavaScriptUnit wc = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			JavaScriptCore.addElementChangedListener(listener,
-					ElementChangedEvent.POST_CHANGE);
-
-			// cu creation
-			IPackageFragment pkg = getPackage("P");
-			IJavaScriptUnit cu = pkg.createCompilationUnit("X.js",
-					"public class X {\n" + "}", false, null);
-			assertEquals(
-					"Unexpected delta after creating CU",
-					"P[*]: {CHILDREN}\n" + "	<project root>[*]: {CHILDREN}\n"
-							+ "		<default>[*]: {CHILDREN}\n" + "			X.js[+]: {}",
-					listener.toString());
-			listener.flush();
-
-			// type creation
-			cu.createType("class A {\n" + "}", cu.getType("X"), false, null);
-			assertEquals(
-					"Unexpected delta after creating type",
-					"P[*]: {CHILDREN}\n"
-							+ "	<project root>[*]: {CHILDREN}\n"
-							+ "		<default>[*]: {CHILDREN}\n"
-							+ "			X.js[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n"
-							+ "				A[+]: {}", listener.toString());
-			listener.flush();
-
-			// non-java resource creation
-			createFile("P/readme.txt", "");
-			assertEquals("Unexpected delta after creating non-java resource",
-					"P[*]: {CONTENT}\n" + "	ResourceDelta(/P/readme.txt)[+]",
-					listener.toString());
-			listener.flush();
-
-			// shared working copy creation
-			wc = cu.getWorkingCopy(new WorkingCopyOwner() {
-			}, null);
-			assertEquals("Unexpected delta after creating shared working copy",
-					"P[*]: {CHILDREN}\n" + "	<project root>[*]: {CHILDREN}\n"
-							+ "		<default>[*]: {CHILDREN}\n"
-							+ "			[Working copy] X.js[+]: {}", listener
-							.toString());
-			listener.flush();
-
-			// reconcile
-			wc.getBuffer().setContents(
-					"public class X {\n" + "  public void foo() {\n" + "  }\n"
-							+ "}");
-			wc.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-			assertEquals("Unexpected delta after reconciling working copy", "",
-					listener.toString());
-			listener.flush();
-
-			// commit
-			wc.commitWorkingCopy(false, null);
-			assertEquals(
-					"Unexpected delta after committing working copy",
-					"P[*]: {CHILDREN}\n"
-							+ "	<project root>[*]: {CHILDREN}\n"
-							+ "		<default>[*]: {CHILDREN}\n"
-							+ "			X.js[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n"
-							+ "				X[*]: {CHILDREN | FINE GRAINED}\n"
-							+ "					foo()[+]: {}\n" + "				A[-]: {}", listener
-							.toString());
-			listener.flush();
-
-			// shared working copy destruction
-			wc.discardWorkingCopy();
-			assertEquals(
-					"Unexpected delta after destroying shared working copy",
-					"P[*]: {CHILDREN}\n" + "	<project root>[*]: {CHILDREN}\n"
-							+ "		<default>[*]: {CHILDREN}\n"
-							+ "			[Working copy] X.js[-]: {}", listener
-							.toString());
-			listener.flush();
-			wc = null;
-
-		} finally {
-			if (wc != null)
-				wc.discardWorkingCopy();
-			JavaScriptCore.removeElementChangedListener(listener);
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensures that a delta listener that asks for POST_RECONCILE events gets
-	 * those events and no others.
-	 */
-	public void testListenerReconcile() throws CoreException {
-		DeltaListener listener = new DeltaListener(
-				ElementChangedEvent.POST_RECONCILE);
-		IJavaScriptUnit wc = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			JavaScriptCore.addElementChangedListener(listener,
-					ElementChangedEvent.POST_RECONCILE);
-
-			// cu creation
-			IPackageFragment pkg = getPackage("P");
-			IJavaScriptUnit cu = pkg.createCompilationUnit("X.js",
-					"public class X {\n" + "}", false, null);
-			assertEquals("Unexpected delta after creating CU", "", listener
-					.toString());
-			listener.flush();
-
-			// type creation
-			cu.createType("class A {\n" + "}", cu.getType("X"), false, null);
-			assertEquals("Unexpected delta after creating type", "", listener
-					.toString());
-			listener.flush();
-
-			// non-java resource creation
-			createFile("P/readme.txt", "");
-			assertEquals("Unexpected delta after creating non-java resource",
-					"", listener.toString());
-			listener.flush();
-
-			// shared working copy creation
-			wc = cu.getWorkingCopy(new WorkingCopyOwner() {
-			}, null);
-			assertEquals("Unexpected delta after creating shared working copy",
-					"", listener.toString());
-			listener.flush();
-
-			// reconcile
-			wc.getBuffer().setContents(
-					"public class X {\n" + "  public void foo() {\n" + "  }\n"
-							+ "}");
-			wc.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-			assertEquals("Unexpected delta after reconciling working copy",
-					"X[*]: {CHILDREN | FINE GRAINED}\n" + "	foo()[+]: {}\n"
-							+ "A[-]: {}", listener.toString());
-			listener.flush();
-
-			// commit
-			wc.commitWorkingCopy(false, null);
-			assertEquals("Unexpected delta after committing working copy", "",
-					listener.toString());
-			listener.flush();
-
-			// shared working copy destruction
-			wc.discardWorkingCopy();
-			assertEquals(
-					"Unexpected delta after destroying shared working copy",
-					"", listener.toString());
-			listener.flush();
-			wc = null;
-
-		} finally {
-			if (wc != null)
-				wc.discardWorkingCopy();
-			JavaScriptCore.removeElementChangedListener(listener);
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Ensures that merging a java delta with another one that contains a
-	 * resource delta results in a java delta with the resource delta.
-	 * (regression test for 11210 ResourceDeltas are lost when merging deltas)
-	 */
-	public void testMergeResourceDeltas() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			startDeltas();
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					// an operation that creates a java delta without firing it
-					IPackageFragment pkg = getPackageFragment("P", "", "");
-					pkg.createCompilationUnit("X.js", "public class X {\n"
-							+ "}", true, null);
-
-					// an operation that generates a non java resource delta
-					createFile("P/Y.txt", "");
-				}
-			}, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n"
-					+ "		<default>[*]: {CHILDREN}\n" + "			X.js[+]: {}\n"
-					+ "	ResourceDelta(/P/Y.txt)[+]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-
-	}
-
-	public void testModifyMethodBodyAndSave() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFolder("P/x/y");
-			createFile("P/x/y/A.js", "package x.y;\n" + "public class A {\n"
-					+ "  public void foo() {\n" + "  }\n" + "}");
-			IJavaScriptUnit cu = getCompilationUnit("P/x/y/A.js");
-			workingCopy = cu.getWorkingCopy(null);
-			workingCopy.getBuffer().setContents(
-					"package x.y;\n" + "public class A {\n"
-							+ "  public void foo() {\n"
-							+ "    // method body change \n" + "  }\n" + "}");
-
-			startDeltas();
-			workingCopy.commitWorkingCopy(true, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n"
-					+ "		x.y[*]: {CHILDREN}\n"
-					+ "			A.js[*]: {CONTENT | FINE GRAINED | PRIMARY RESOURCE}");
-		} finally {
-			stopDeltas();
-			if (workingCopy != null) {
-				workingCopy.discardWorkingCopy();
-			}
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensures that modifying the project output location (i.e. simulate a
-	 * build) doesn't report any delta.
-	 */
-	public void testModifyOutputLocation1() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-
-			startDeltas();
-			createFile("/P/bin/X.class", "");
-			assertDeltas("Unexpected delta", "");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensures that modifying a custom output location (i.e. simulate a build)
-	 * doesn't report any delta. (regression test for bug 27494 Source folder
-	 * output folder shown in Package explorer)
-	 */
-	public void testModifyOutputLocation2() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" }, "bin1",
-					new String[] { "bin2" });
-
-			startDeltas();
-			createFile("/P/bin2/X.class", "");
-			assertDeltas("Unexpected delta", "");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensures that modifying a custom output location (i.e. simulate a build)
-	 * doesn't report any delta. (regression test for bug 27494 Source folder
-	 * output folder shown in Package explorer)
-	 */
-	public void testModifyOutputLocation3() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src1", "src2" }, "bin",
-					new String[] { "src1", null });
-
-			startDeltas();
-			createFile("/P/bin/X.class", "");
-			assertDeltas("Unexpected delta", "");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Ensures that modifying a custom output location (i.e. simulate a build)
-	 * doesn't report any delta. (regression test for bug 32629 DeltaProcessor
-	 * walking some binary output)
-	 */
-	public void testModifyOutputLocation4() throws CoreException {
-		try {
-			createJavaProject("P");
-			editFile(
-					"/P/.classpath",
-					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-							+ "<classpath>\n"
-							+ "    <classpathentry excluding=\"src/\" kind=\"src\" output=\"bin1\" path=\"\"/>\n"
-							+ "    <classpathentry kind=\"src\" output=\"bin2\" path=\"src\"/>\n"
-							+ "    <classpathentry kind=\"output\" path=\"bin\"/>\n"
-							+ "</classpath>");
-			createFolder("/P/bin2");
-
-			startDeltas();
-			createFile("/P/bin2/X.class", "");
-			assertDeltas("Unexpected delta", "");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * bug 18953
-	 */
-	public void testModifyProjectDescriptionAndRemoveFolder()
-			throws CoreException {
-		try {
-			IJavaScriptProject project = createJavaProject("P");
-			final IProject projectFolder = project.getProject();
-			final IFolder folder = createFolder("/P/folder");
-
-			startDeltas();
-			getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IProjectDescription desc = projectFolder.getDescription();
-					desc.setComment("A comment");
-					projectFolder.setDescription(desc, null);
-					deleteResource(folder);
-				}
-			}, null);
-
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN | CONTENT}\n"
-					+ "	<project root>[*]: {CHILDREN}\n" + "		folder[-]: {}\n"
-					+ "	ResourceDelta(/P/.project)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Move a cu from a package to its enclosing package. (regression test for
-	 * bug 7033 Stale packages view after moving compilation units)
-	 */
-	public void testMoveCuInEnclosingPkg() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFolder("P/x/y");
-			createFile("P/x/y/A.js", "package x.y;\n" + "public class A {\n"
-					+ "}");
-			IJavaScriptUnit cu = getCompilationUnit("P/x/y/A.js");
-			IPackageFragment pkg = getPackage("P/x");
-
-			startDeltas();
-			cu.move(pkg, null, null, true, null);
-			assertDeltas(
-					"Unexpected delta",
-					"P[*]: {CHILDREN}\n"
-							+ "	<project root>[*]: {CHILDREN}\n"
-							+ "		x[*]: {CHILDREN}\n"
-							+ "			A.js[+]: {MOVED_FROM(A.js [in x.y [in <project root> [in P]]])}"
-							+ "		x.y[*]: {CHILDREN}\n"
-							+ "			A.js[-]: {MOVED_TO(A.js [in x [in <project root> [in P]]])}\n");
-			assertElementDescendants("Unexpected children for package x", "x\n"
-					+ "  A.js\n" + "    package x\n" + "    class A", pkg);
-			assertElementDescendants("Unexpected children for package x.y",
-					"x.y", getPackage("P/x/y"));
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Move a non-java resources that is under a dot-named folder. (regression
-	 * test for bug 6687 Wrong JavaModel refresh after drag and drop outside
-	 * folder with dot in name)
-	 */
-	public void testMoveResInDotNamedFolder() throws CoreException {
-		try {
-			createJavaProject("P", new String[] {});
-			IProject project = getProject("P");
-			createFolder("P/x.y");
-			IFile file = createFile("P/x.y/test.txt", "");
-
-			startDeltas();
-			file.move(project.getFullPath().append("test.txt"), true, null);
-			assertDeltas("Unexpected delta", "P[*]: {CONTENT}\n"
-					+ "	ResourceDelta(/P/test.txt)[+]\n"
-					+ "	ResourceDelta(/P/x.y)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Move 2 non-java resources that were outside classpath to a package
-	 * fragment root. (regression test for bug 28583 Missing one unit in package
-	 * view)
-	 */
-	public void testMoveTwoResInRoot() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-			final IFile f1 = createFile("P/X.js", "public class X {}");
-			final IFile f2 = createFile("P/Y.js", "public class Y {}");
-
-			startDeltas();
-			JavaScriptCore.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					f1.move(new Path("/P/src/X.js"), true, null);
-					f2.move(new Path("/P/src/Y.js"), true, null);
-				}
-			}, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN | CONTENT}\n"
-					+ "	src[*]: {CHILDREN}\n" + "		<default>[*]: {CHILDREN}\n"
-					+ "			X.js[+]: {}\n" + "			Y.js[+]: {}\n"
-					+ "	ResourceDelta(/P/X.js)[-]\n"
-					+ "	ResourceDelta(/P/Y.js)[-]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Test that deltas are generated when a nested package fragment root is
-	 * removed and added via core API.
-	 */
-	public void testNestedRootParentMove() throws CoreException {
-		try {
-			createJavaProject("P",
-					new String[] { "nested2/src", "nested/src" });
-			deleteFolder("/P/nested2/src");
-
-			startDeltas();
-			IFolder folder = getFolder("/P/nested/src");
-			folder.move(new Path("/P/nested2/src"), false, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN | CONTENT}\n"
-					+ "	nested2/src[+]: {MOVED_FROM(nested/src [in P])}\n"
-					+ "	nested/src[-]: {MOVED_TO(nested2/src [in P])}\n"
-					+ "	ResourceDelta(/P/nested)[*]\n"
-					+ "	ResourceDelta(/P/nested2)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Test that deltas are generated when a non-java file is removed and added
-	 */
-	public void testNonJavaResourceRemoveAndAdd() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-			IFile file = createFile("/P/src/read.txt", "");
-
-			startDeltas();
-			deleteResource(file);
-			assertDeltas("Unexpected delta after deleting /P/src/read.txt",
-					"P[*]: {CHILDREN}\n" + "	src[*]: {CONTENT}\n"
-							+ "		ResourceDelta(/P/src/read.txt)[-]");
-
-			clearDeltas();
-			createFile("/P/src/read.txt", "");
-			assertDeltas("Unexpected delta after creating /P/src/read.txt",
-					"P[*]: {CHILDREN}\n" + "	src[*]: {CONTENT}\n"
-							+ "		ResourceDelta(/P/src/read.txt)[+]");
-
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Open a java project.
-	 */
-	public void testOpenJavaProject() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			IProject project = getProject("P");
-			project.close(null);
-			startDeltas();
-			project.open(null);
-			assertDeltas("Unexpected delta", "P[*]: {OPENED}\n"
-					+ "ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Open a non-java project.
-	 */
-	public void testOpenNonJavaProject() throws CoreException {
-		try {
-			createProject("P");
-			IProject project = getProject("P");
-			project.close(null);
-			startDeltas();
-			project.open(null);
-			assertDeltas("Unexpected delta", "ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Ensures that .classpath overwrite is taken into account. (regression test
-	 * for bug 21420 Changing .classpath doesn't update JDT)
-	 */
-	public void testOverwriteClasspath() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFolder("P/src");
-			createFolder("P/bin");
-			final IFile newCP = createFile(
-					"P/.classpath2",
-					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-							+ "<classpath>\n"
-							+ "    <classpathentry kind=\"src\" path=\"src\"/>\n"
-							+ "    <classpathentry kind=\"output\" path=\"bin\"/>\n"
-							+ "</classpath>");
-			startDeltas();
-			IWorkspaceRunnable run = new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IFile oldCP = newCP.getParent().getFile(
-							new Path(".classpath"));
-					deleteResource(oldCP);
-					newCP.move(new Path("/P/.classpath"), true, null);
-				}
-			};
-			getWorkspace().run(run, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {REMOVED FROM CLASSPATH}\n"
-					+ "	src[*]: {ADDED TO CLASSPATH}\n"
-					+ "	ResourceDelta(/P/.classpath)[*]\n"
-					+ "	ResourceDelta(/P/.classpath2)[-]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Test that deltas are generated when package fragments are added and
-	 * removed from a root via core API.
-	 */
-	public void testPackageFragmentAddAndRemove() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-
-			startDeltas();
-			IFolder folder = createFolder("/P/src/p");
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	src[*]: {CHILDREN}\n" + "		p[+]: {}");
-
-			clearDeltas();
-			deleteResource(folder);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	src[*]: {CHILDREN}\n" + "		p[-]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Test that deltas are generated when a package fragment is moved via core
-	 * API.
-	 */
-	public void testPackageFragmentMove() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-			IFolder folder = createFolder("/P/src/p");
-
-			startDeltas();
-			folder.move(new Path("/P/src/p2"), false, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	src[*]: {CHILDREN}\n"
-					+ "		p[-]: {MOVED_TO(p2 [in src [in P]])}\n"
-					+ "		p2[+]: {MOVED_FROM(p [in src [in P]])}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Test that deltas are generated when a package fragment root is removed
-	 * and added via core API.
-	 */
-	public void testPackageFragmentRootRemoveAndAdd() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "src" });
-
-			startDeltas();
-			deleteFolder("/P/src");
-			assertDeltas("Unexpected delta after deleting /P/src",
-					"P[*]: {CHILDREN}\n" + "	src[-]: {}");
-
-			clearDeltas();
-			createFolder("/P/src");
-			assertDeltas("Unexpected delta after creating /P/src",
-					"P[*]: {CHILDREN}\n" + "	src[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Remove then add a binary project (in a workspace runnable). (regression
-	 * test for 24775 Wrong delta when replacing binary project with source
-	 * project)
-	 */
-	public void testRemoveAddBinaryProject() throws CoreException {
-		try {
-			IJavaScriptProject project = createJavaProject("P",
-					new String[] { "" });
-			createFile("P/lib.jar", "");
-			project.setRawIncludepath(new IIncludePathEntry[] { JavaScriptCore
-					.newLibraryEntry(new Path("/P/lib.jar"), null, null) },
-					null);
-
-			startDeltas();
-			getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					deleteProject("P");
-					createJavaProject("P", new String[] { "" });
-				}
-			}, null);
-			assertDeltas("Unexpected delta",
-					"P[*]: {CHILDREN | CLASSPATH CHANGED}\n"
-							+ "	<project root>[*]: {ADDED TO CLASSPATH}\n"
-							+ "	lib.jar[-]: {}\n"
-							+ "	ResourceDelta(/P/.classpath)[*]\n"
-							+ "	ResourceDelta(/P/.project)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Remove then add a java project (in a workspace runnable).
-	 */
-	public void testRemoveAddJavaProject() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			startDeltas();
-			getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					deleteProject("P");
-					createJavaProject("P", new String[] { "" });
-				}
-			}, null);
-			assertDeltas("Unexpected delta",
-					"P[*]: {CONTENT | CLASSPATH CHANGED}\n"
-							+ "	ResourceDelta(/P/.classpath)[*]\n"
-							+ "	ResourceDelta(/P/.project)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Change the .classpath file so as to remove a classpath entry and remove
-	 * the corresponding resource. (regression test for bug 24517 type view does
-	 * not notice when jar disappears)
-	 */
-	public void testRemoveCPEntryAndRoot1() throws CoreException {
-		try {
-			IJavaScriptProject project = createJavaProject("P",
-					new String[] { "src" });
-
-			// ensure that the project is open (there are clients of the delta
-			// only if the project is open)
-			project.open(null);
-
-			startDeltas();
-			JavaScriptCore.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					editFile(
-							"/P/.classpath",
-							"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-									+ "<classpath>\n"
-									+ "    <classpathentry kind=\"output\" path=\"bin\"/>\n"
-									+ "</classpath>");
-					deleteFolder("/P/src");
-				}
-			}, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	src[-]: {}\n" + "	ResourceDelta(/P/.classpath)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Remove a classpath entry and remove the corresponding resource.
-	 * (regression test for bug 24517 type view does not notice when jar
-	 * disappears)
-	 */
-	public void testRemoveCPEntryAndRoot2() throws CoreException {
-		try {
-			final IJavaScriptProject project = createJavaProject("P",
-					new String[] { "src" });
-
-			// ensure that the project is open (there are clients of the delta
-			// only if the project is open)
-			project.open(null);
-
-			startDeltas();
-			JavaScriptCore.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					project.setRawIncludepath(new IIncludePathEntry[] {}, null);
-					deleteFolder("/P/src");
-				}
-			}, null);
-			assertDeltas("Unexpected delta",
-					"P[*]: {CHILDREN | CLASSPATH CHANGED}\n" + "	src[-]: {}\n"
-							+ "	ResourceDelta(/P/.classpath)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Remove the resource of a classpath entry and remove the classpath entry.
-	 * (regression test for bug 24517 type view does not notice when jar
-	 * disappears)
-	 */
-	public void testRemoveCPEntryAndRoot3() throws CoreException {
-		try {
-			final IJavaScriptProject project = createJavaProject("P",
-					new String[] { "src" });
-
-			// ensure that the project is open (there are clients of the delta
-			// only if the project is open)
-			project.open(null);
-
-			startDeltas();
-			JavaScriptCore.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					deleteFolder("/P/src");
-					project.setRawIncludepath(new IIncludePathEntry[] {}, null);
-				}
-			}, null);
-			assertDeltas("Unexpected delta",
-					"P[*]: {CHILDREN | CLASSPATH CHANGED}\n" + "	src[-]: {}\n"
-							+ "	ResourceDelta(/P/.classpath)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Remove the java nature of an existing java project.
-	 */
-	public void testRemoveJavaNature() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			startDeltas();
-			removeJavaNature("P");
-			assertDeltas("Unexpected delta", "P[-]: {}\n" + "ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	public void testRemoveJavaProject() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			startDeltas();
-			deleteProject("P");
-			assertDeltas("Unexpected delta", "P[-]: {}");
-		} finally {
-			stopDeltas();
-		}
-	}
-
-	/*
-	 * Remove a non-java project.
-	 */
-	public void testRemoveNonJavaProject() throws CoreException {
-		try {
-			createProject("P");
-			startDeltas();
-			deleteProject("P");
-			assertDeltas("Should get a non-Java resource delta",
-					"ResourceDelta(/P)");
-		} finally {
-			stopDeltas();
-		}
-	}
-
-	/*
-	 * Removing a non-java project that contains a jar referenced in another
-	 * project should produce a delta on this other project. (regression test
-	 * for bug 19058 Closing non-java project doesn't remove root from java
-	 * project)
-	 */
-	public void testRemoveNonJavaProjectUpdateDependent1() throws CoreException {
-		try {
-			createProject("SP");
-			createFile("/SP/x.jar", "");
-			createJavaProject("JP", new String[] { "" },
-					new String[] { "/SP/x.jar" });
-			startDeltas();
-			deleteProject("SP");
-			assertDeltas("Unexpected delta", "JP[*]: {CHILDREN}\n"
-					+ "	/SP/x.jar[-]: {}\n" + "ResourceDelta(/SP)");
-		} finally {
-			stopDeltas();
-			deleteProject("SP");
-			deleteProject("JP");
-		}
-	}
-
-	/*
-	 * Removing a non-java project and another project reference a non exiting
-	 * folder in the deleted project should not produce a delta on this other
-	 * project (and no null pointer exception) (regression test for bug 19131
-	 * NPE when removing a project containing missing classfile folder)
-	 */
-	public void testRemoveNonJavaProjectUpdateDependent2() throws CoreException {
-		try {
-			createProject("SP");
-			createJavaProject("JP", new String[] { "" },
-					new String[] { "/SP/missing" });
-			startDeltas();
-			deleteProject("SP");
-			assertDeltas("Unexpected delta", "ResourceDelta(/SP)");
-		} finally {
-			stopDeltas();
-			deleteProject("SP");
-			deleteProject("JP");
-		}
-	}
-
-	/*
-	 * Removing a non-java project that contains a jar referenced in another
-	 * project should produce a delta on this other project. Case of the removal
-	 * being done right after start-up. (regression test for bug 31377
-	 * NullPointerException on binary import)
-	 */
-	public void testRemoveNonJavaProjectUpdateDependent3() throws CoreException {
-		try {
-			createProject("SP");
-			createFile("/SP/x.jar", "");
-			createJavaProject("JP", new String[] { "" },
-					new String[] { "/SP/x.jar" });
-
-			// simulate start-up state of DeltaProcessor
-			DeltaProcessingState deltaState = JavaModelManager
-					.getJavaModelManager().deltaState;
-			deltaState.oldRoots = null;
-			deltaState.roots = null;
-			deltaState.rootsAreStale = true;
-
-			startDeltas();
-			JavaScriptCore.run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					deleteProject("SP");
-				}
-			}, null);
-			assertDeltas("Unexpected delta", "JP[*]: {CHILDREN}\n"
-					+ "	/SP/x.jar[-]: {}\n" + "ResourceDelta(/SP)");
-		} finally {
-			stopDeltas();
-			deleteProject("SP");
-			deleteProject("JP");
-		}
-	}
-
-	/*
-	 * Rename a java project. (regression test for bug 7030
-	 * IllegalArgumentException renaming project)
-	 */
-	public void testRenameJavaProject() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			startDeltas();
-			renameProject("P", "P1");
-			assertDeltas("Unexpected delta", "P[-]: {MOVED_TO(P1)}\n"
-					+ "P1[+]: {MOVED_FROM(P)}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-			deleteProject("P1");
-		}
-	}
-
-	public void testRenameMethodAndSave() throws CoreException {
-		IJavaScriptUnit workingCopy = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFolder("P/x/y");
-			createFile("P/x/y/A.js", "package x.y;\n" + "public class A {\n"
-					+ "  public void foo1() {\n" + "  }\n" + "}");
-			IJavaScriptUnit cu = getCompilationUnit("P/x/y/A.js");
-			workingCopy = cu.getWorkingCopy(null);
-			workingCopy.getBuffer().setContents(
-					"package x.y;\n" + "public class A {\n"
-							+ "  public void foo2() {\n" + "  }\n" + "}");
-
-			startDeltas();
-			workingCopy.commitWorkingCopy(true, null);
-			assertDeltas(
-					"Unexpected delta",
-					"P[*]: {CHILDREN}\n"
-							+ "	<project root>[*]: {CHILDREN}\n"
-							+ "		x.y[*]: {CHILDREN}\n"
-							+ "			A.js[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n"
-							+ "				A[*]: {CHILDREN | FINE GRAINED}\n"
-							+ "					foo1()[-]: {}\n" + "					foo2()[+]: {}");
-		} finally {
-			stopDeltas();
-			if (workingCopy != null) {
-				workingCopy.discardWorkingCopy();
-			}
-			deleteProject("P");
-		}
-	}
-
-	/*
-	 * Rename a non-java project. (regression test for bug 30224 No JavaElement
-	 * delta when renaming non-Java project)
-	 */
-	public void testRenameNonJavaProject() throws CoreException {
-		try {
-			createProject("P");
-			startDeltas();
-			renameProject("P", "P1");
-			assertDeltas("Unexpected delta", "ResourceDelta(/P)\n"
-					+ "ResourceDelta(/P1)");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-			deleteProject("P1");
-		}
-	}
-
-	/*
-	 * Rename an outer pkg fragment. (regression test for bug 24685 Inner
-	 * package fragments gets deleted - model out of synch)
-	 */
-	public void testRenameOuterPkgFragment() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFolder("P/x/y");
-			createFile("P/x/y/X.js", "package x.y;\n" + "public class X {\n"
-					+ "}");
-			startDeltas();
-			IPackageFragment pkg = getPackageFragment("P", "", "x");
-			pkg.rename("z", false, null);
-			assertDeltas("Unexpected delta", "P[*]: {CHILDREN}\n"
-					+ "	<project root>[*]: {CHILDREN}\n" + "		z[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Ensures that saving a working copy doesn't change the underlying
-	 * resource. (only commit should do so)
-	 */
-	public void testSaveWorkingCopy() throws CoreException {
-		IJavaScriptUnit copy = null;
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFile("P/X.js", "public class X {\n" + "}");
-			IJavaScriptUnit unit = getCompilationUnit("P", "", "", "X.js");
-			copy = unit.getWorkingCopy(null);
-			copy.getType("X").createMethod("void foo() {}", null, true, null);
-			startDeltas();
-			copy.save(null, true);
-			assertDeltas("Unexpected delta after saving working copy", "");
-			copy.commitWorkingCopy(true, null);
-			assertDeltas(
-					"Unexpected delta after committing working copy",
-					"P[*]: {CHILDREN}\n"
-							+ "	<project root>[*]: {CHILDREN}\n"
-							+ "		<default>[*]: {CHILDREN}\n"
-							+ "			X.js[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n"
-							+ "				X[*]: {CHILDREN | FINE GRAINED}\n"
-							+ "					foo()[+]: {}");
-		} finally {
-			stopDeltas();
-			if (copy != null)
-				copy.discardWorkingCopy();
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Ensure that a classpath change is detected even on a project which got
-	 * closed
-	 */
-	public void testSetClasspathOnFreshProject() throws CoreException {
-		try {
-			createProject("LibProj");
-			createFile("LibProj/mylib.jar", "");
-			JavaProject p1 = (JavaProject) createJavaProject("P1",
-					new String[] { "" });
-			createFolder("P1/src2");
-
-			p1.getProject().close(null);
-			p1.getProject().open(null);
-
-			startDeltas();
-
-			IIncludePathEntry[] classpath = new IIncludePathEntry[] {
-					JavaScriptCore.newSourceEntry(new Path("/P1/src2")),
-					JavaScriptCore.newLibraryEntry(new Path(
-							"/LibProj/mylib.jar"), null, null) };
-			p1.setRawIncludepath(classpath, null);
-			assertDeltas(
-					"Should notice src2 and myLib additions to the classpath",
-					"P1[*]: {CHILDREN | CLASSPATH CHANGED}\n"
-							+ "	<project root>[*]: {REMOVED FROM CLASSPATH}\n"
-							+ "	/LibProj/mylib.jar[*]: {ADDED TO CLASSPATH}\n"
-							+ "	src2[*]: {ADDED TO CLASSPATH}\n"
-							+ "	ResourceDelta(/P1/.classpath)[*]");
-		} finally {
-			stopDeltas();
-			deleteProject("P1");
-			deleteProject("LibProj");
-		}
-	}
-
-	/**
-	 * Ensures that setting a classpath variable when there is exactly one
-	 * project triggers a java element delta.
-	 */
-	public void testSetClasspathVariable1() throws CoreException {
-		try {
-			createProject("LibProj");
-			createFile("LibProj/mylib.jar", "");
-			createFile("LibProj/otherlib.jar", "");
-			JavaScriptCore.setIncludepathVariables(new String[] { "LIB" },
-					new IPath[] { new Path("/LibProj/mylib.jar") }, null);
-			createJavaProject("P", new String[] { "" }, new String[] { "LIB" });
-			startDeltas();
-			JavaScriptCore.setIncludepathVariables(new String[] { "LIB" },
-					new IPath[] { new Path("/LibProj/otherlib.jar") }, null);
-			assertDeltas(
-					"Unexpected delta after setting classpath variable",
-					"P[*]: {CHILDREN}\n"
-							+ "	/LibProj/mylib.jar[*]: {REMOVED FROM CLASSPATH}\n"
-							+ "	/LibProj/otherlib.jar[*]: {ADDED TO CLASSPATH}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-			deleteProject("LibProj");
-		}
-	}
-
-	/**
-	 * Ensures that setting a classpath variable when there are more than one
-	 * project triggers a java element delta.
-	 */
-	public void testSetClasspathVariable2() throws CoreException {
-		try {
-			createProject("LibProj");
-			createFile("LibProj/mylib.jar", "");
-			createFile("LibProj/otherlib.jar", "");
-			JavaScriptCore.setIncludepathVariables(new String[] { "LIB" },
-					new IPath[] { new Path("/LibProj/mylib.jar") }, null);
-			createJavaProject("P1", new String[] { "" },
-					new String[] { "LIB" });
-			createJavaProject("P2", new String[] { "" },
-					new String[] { "LIB" });
-			startDeltas();
-			JavaScriptCore.setIncludepathVariables(new String[] { "LIB" },
-					new IPath[] { new Path("/LibProj/otherlib.jar") }, null);
-			assertEquals(
-					"Unexpected delta after setting classpath variable",
-					"P1[*]: {CHILDREN}\n"
-							+ "	/LibProj/mylib.jar[*]: {REMOVED FROM CLASSPATH}\n"
-							+ "	/LibProj/otherlib.jar[*]: {ADDED TO CLASSPATH}\n"
-							+ "P2[*]: {CHILDREN}\n"
-							+ "	/LibProj/mylib.jar[*]: {REMOVED FROM CLASSPATH}\n"
-							+ "	/LibProj/otherlib.jar[*]: {ADDED TO CLASSPATH}",
-					getSortedByProjectDeltas());
-		} finally {
-			stopDeltas();
-			deleteProject("P1");
-			deleteProject("P2");
-			deleteProject("LibProj");
-		}
-	}
-
-	/**
-	 * Ensures that committing a working copy fires a fine grained delta.
-	 */
-	public void testWorkingCopyCommit() throws CoreException {
-		try {
-			createJavaProject("P", new String[] { "" });
-			createFolder("P/x/y");
-			createFile("P/x/y/A.js", "package x.y;\n" + "public class A {\n"
-					+ "}");
-			IJavaScriptUnit cu = getCompilationUnit("P/x/y/A.js");
-			IJavaScriptUnit copy = cu.getWorkingCopy(null);
-			copy.getBuffer().setContents(
-					"package x.y;\n" + "public class A {\n"
-							+ "  public void foo() {\n" + "  }\n" + "}");
-			copy.save(null, false);
-			startDeltas();
-			copy.commitWorkingCopy(true, null);
-			assertDeltas(
-					"Unexpected delta after commit",
-					"P[*]: {CHILDREN}\n"
-							+ "	<project root>[*]: {CHILDREN}\n"
-							+ "		x.y[*]: {CHILDREN}\n"
-							+ "			A.js[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n"
-							+ "				A[*]: {CHILDREN | FINE GRAINED}\n"
-							+ "					foo()[+]: {}");
-		} finally {
-			stopDeltas();
-			deleteProject("P");
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaModelTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaModelTests.java
deleted file mode 100644
index bb4cf93..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaModelTests.java
+++ /dev/null
@@ -1,564 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-/**
- * Tests IJavaScriptModel API.
- */
-public class JavaModelTests extends ModifyingResourceTests {
-
-public static Test suite() {
-	return buildModelTestSuite(JavaModelTests.class);
-}
-
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//	TESTS_PREFIX =  "testBug100772_ProjectScope";
-//	TESTS_NAMES = new String[] { "testFindLineSeparator04" };
-//	TESTS_NUMBERS = new int[] { 100772 };
-//	TESTS_RANGE = new int[] { 83304, -1 };
-}
-
-public JavaModelTests(String name) {
-	super(name);
-}
-protected int indexOf(String projectName, IJavaScriptProject[] projects) {
-	for (int i = 0, length = projects.length; i < length; i++) {
-		if (projects[i].getElementName().equals(projectName)) {
-			return i;
-		}
-	}
-	return -1;
-}
-/*
- * Ensure that a java project is not added to the list of known java project
- * when a file is added to a non-java project.
- * (regression test for bug 18698 Seeing non-java projects in package view)
- */
-public void testAddFileToNonJavaProject() throws CoreException {
-	IJavaScriptModel model = this.getJavaModel();
-	IJavaScriptProject[] projects = model.getJavaScriptProjects();
-	assertTrue(
-		"Project P should not be present already",
-		this.indexOf("P", projects) == -1
-	);
-	try {
-		this.createProject("P");
-		this.createFile("/P/toto.txt", "");
-		projects = model.getJavaScriptProjects();
-		assertTrue(
-			"Project P should not be present",
-			this.indexOf("P", projects) == -1
-		);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensiure that no markers are created for a non-Java project
- * (regression test for bug 131937 JDT core adding problem markers to non-java projects)
- */
-public void testCreateNonJavaProject() throws CoreException {
-	try {
-		IProject project = createProject("NonJava");
-		waitForAutoBuild();
-		IMarker[] markers = project.findMarkers(null/*all type of markers*/, true, IResource.DEPTH_INFINITE);
-		assertMarkers("Unexpected markers", "", markers);
-	} finally {
-		deleteProject("NonJava");
-	}
-}
-/*
- * Ensure that a resource belonging to the Java model is known to be contained in the Java model.
- * Case of non-accessible resources
- */
-public void testContains1() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-
-		// .java file
-		IFile file = this.getFile("/P/X.js");
-		assertTrue("/P/X.java should be in model", getJavaModel().contains(file));
-
-		// .class file
-//		file = this.getFile("/P/X.class");
-//		assertTrue("/P/X.class should not be in model", !getJavaModel().contains(file));
-
-		// non-Java resource
-		file = this.getFile("/P/read.txt");
-		assertTrue("/P/read.txt should be in model", getJavaModel().contains(file));
-
-		// package
-		IFolder folder = this.getFolder("/P/p");
-		assertTrue("/P/p should be in model", getJavaModel().contains(folder));
-		
-		// resource in closed project
-		file = this.createFile("/P/X.js", "");
-		project.getProject().close(null);
-		assertTrue("/P/X.java should be in model (even if project is closed)", getJavaModel().contains(file));
-		
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a resource belonging to the Java model is known to be contained in the Java model.
- * Case of projects
- */
-public void testContains2() throws CoreException {
-	try {
-		// Java project
-		IProject project = this.createJavaProject("P1", new String[] {""}).getProject();
-		assertTrue("/P1 should be in model", getJavaModel().contains(project));
-
-		// non-Java project
-		project = this.createProject("P2");
-		assertTrue("/P2 should be in model", getJavaModel().contains(project));
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that a resource belonging to the Java model is known to be contained in the Java model.
- * Case of prj=src=bin
- */
-public void testContains3() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {""});
-
-		// .java file
-		IFile file = this.createFile("/P/X.js", "");
-		assertTrue("/P/X.java should be in model", getJavaModel().contains(file));
-
-		// .class file
-		file = this.createFile("/P/X.class", "");
-		assertTrue("/P/X.class should not be in model", !getJavaModel().contains(file));
-
-		// non-Java resource
-		file = this.createFile("/P/read.txt", "");
-		assertTrue("/P/read.txt should be in model", getJavaModel().contains(file));
-
-		// package
-		IFolder folder = this.createFolder("/P/p");
-		assertTrue("/P/p should be in model", getJavaModel().contains(folder));
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a resource belonging to the Java model is known to be contained in the Java model.
- * Case of empty classpath.
- */
-public void testContains4() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {});
-
-		// .java file
-		IFile file = this.createFile("/P/X.js", "");
-		assertTrue("/P/X.java should be in model", getJavaModel().contains(file));
-		
-		// .class file
-		file = this.createFile("/P/X.class", "");
-		assertTrue("/P/X.class should be in model", getJavaModel().contains(file));
-
-		// non-Java resource file
-		file = this.createFile("/P/read.txt", "");
-		assertTrue("/P/read.txt should be in model", getJavaModel().contains(file));
-
-		// non-Java resource folder
-		IFolder folder = this.createFolder("/P/p");
-		assertTrue("/P/p should be in model", getJavaModel().contains(folder));
-		
-		// bin folder
-		folder = this.getFolder("/P/bin");
-		assertTrue("/P/bin should not be in model", !getJavaModel().contains(folder));
-		
-		// classfile in bin folder
-		file = this.createFile("/P/bin/X.class", "");
-		assertTrue("/P/bin/X.class should not be in model", !getJavaModel().contains(file));
-		
-		// resource file in bin folder
-		this.createFolder("/P/bin/image");
-		file = this.createFile("/P/bin/image/ok.gif", "");
-		assertTrue("/P/bin/image/ok.gif should not be in model", !getJavaModel().contains(file));
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a resource belonging to the Java model is known to be contained in the Java model.
- * Case of src != bin
- */
-public void testContains5() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-
-		// .java file
-		IFile file = this.createFile("/P/src/X.js", "");
-		assertTrue("/P/src/X.java should be in model", getJavaModel().contains(file));
-
-		// resource file in src
-		this.createFolder("/P/src/image");
-		file = this.createFile("/P/src/image/ok.gif", "");
-		assertTrue("/P/src/image/ok.gif should not be in model", getJavaModel().contains(file));
-		
-		// .class file in bin
-		file = this.createFile("/P/bin/X.class", "");
-		assertTrue("/P/bin/X.class should not be in model", !getJavaModel().contains(file));
-
-		// resource file in bin
-		this.createFolder("/P/bin/image");
-		file = this.createFile("/P/bin/image/ok.gif", "");
-		assertTrue("/P/bin/image/ok.gif should not be in model", !getJavaModel().contains(file));
-
-		// .class file in src
-		file = this.createFile("/P/src/X.class", "");
-		assertTrue("/P/src/X.class should not be in model", !getJavaModel().contains(file));
-
-		// non-Java resource
-		file = this.createFile("/P/src/read.txt", "");
-		assertTrue("/P/src/read.txt should be in model", getJavaModel().contains(file));
-
-		// package
-		IFolder folder = this.createFolder("/P/src/p");
-		assertTrue("/P/src/p should be in model", getJavaModel().contains(folder));
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a resource belonging to the Java model is known to be contained in the Java model.
- * Case of prj==src and separate bin
- */
-public void testContains6() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {""});
-
-		// .java file
-		IFile file = this.createFile("/P/X.js", "");
-		assertTrue("/P/X.java should be in model", getJavaModel().contains(file));
-
-		// resource file in src
-		this.createFolder("/P/image");
-		file = this.createFile("/P/image/ok.gif", "");
-		assertTrue("/P/image/ok.gif should not be in model", getJavaModel().contains(file));
-		
-		// .class file in bin
-		file = this.createFile("/P/bin/X.class", "");
-		assertTrue("/P/bin/X.class should not be in model", !getJavaModel().contains(file));
-
-		// resource file in bin
-		this.createFolder("/P/bin/image");
-		file = this.createFile("/P/bin/image/ok.gif", "");
-		assertTrue("/P/bin/image/ok.gif should not be in model", !getJavaModel().contains(file));
-
-		// .class file in src
-		file = this.createFile("/P/X.class", "");
-		assertTrue("/P/X.class should not be in model", !getJavaModel().contains(file));
-
-		// non-Java resource
-		file = this.createFile("/P/read.txt", "");
-		assertTrue("/P/read.txt should be in model", getJavaModel().contains(file));
-
-		// package
-		IFolder folder = this.createFolder("/P/p");
-		assertTrue("/P/p should be in model", getJavaModel().contains(folder));
-	} finally {
-		this.deleteProject("P");
-	}
-}
-
-/*
- * Ensure that using JavaScriptCore.create(IResource) for a package that is defined in a different project
- * returns a non-null value
- * (regression test for bug 97487 [call hierarchy] Call Hierarchy Fails in mounted classes with attached src files)
- */
-public void testCreatePkgHandleInDifferentProject() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {});
-		IFolder folder = createFolder("/P1/lib/x/y");
-		createJavaProject("P2", new String[] {}, new String[] {"/P1/lib"});
-		IJavaScriptElement element = JavaScriptCore.create(folder);
-		assertElementEquals(
-			"Unexpected element",
-			"x.y [in /P1/lib [in P2]]",
-			element
-		);
-	} finally {
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/*
- * Ensures that the right line separator is found for a compilation unit.
- */
-public void testFindLineSeparator01() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFile(
-			"/P/X.js", 
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-		assertEquals("\n", cu.findRecommendedLineSeparator());
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/*
- * Ensures that the right line separator is found for a compilation unit.
- */
-public void testFindLineSeparator02() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFile(
-			"/P/X.js", 
-			"public class X {\r\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-		assertEquals("\r\n", cu.findRecommendedLineSeparator());
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/*
- * Ensures that the right line separator is found for an empty compilation unit.
- */
-public void testFindLineSeparator03() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFile(
-			"/P/X.js", 
-			""
-		);
-		IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-		assertEquals(System.getProperty("line.separator"), cu.findRecommendedLineSeparator());
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/*
- * Ensures that the right line separator is found for a package fragment
- */
-public void testFindLineSeparator04() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFolder("/P/p");
-		IPackageFragment pkg = getPackage("/P/p");
-		assertEquals(System.getProperty("line.separator"), pkg.findRecommendedLineSeparator());
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/**
- * Test that a model has no project.
- */
-public void testGetJavaProject() {
-	IJavaScriptModel model= getJavaModel();
-	assertTrue("project should be null", model.getJavaScriptProject() == null);
-}
-/*
- * Ensure that a java project that is added appears in the list of known java project,
- * and that it is removed from this list when deleted.
- */
-public void testGetJavaProjects1() throws CoreException {
-	IJavaScriptModel model = this.getJavaModel();
-	IJavaScriptProject[] projects = model.getJavaScriptProjects();
-	assertTrue(
-		"Project P should not be present already",
-		this.indexOf("P", projects) == -1
-	);
-	try {
-		this.createJavaProject("P", new String[] {});
-		projects = model.getJavaScriptProjects();
-		assertTrue(
-			"Project P should be present",
-			this.indexOf("P", projects) != -1
-		);
-		this.deleteProject("P");
-		projects = model.getJavaScriptProjects();
-		assertTrue(
-			"Project P should not be present any longer",
-			this.indexOf("P", projects) == -1
-		);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a non-java project that is added does not appears in the list of known java project.
- */
-public void testGetJavaProjects2() throws CoreException {
-	IJavaScriptModel model = this.getJavaModel();
-	IJavaScriptProject[] projects = model.getJavaScriptProjects();
-	assertTrue(
-		"Project P should not be present already",
-		this.indexOf("P", projects) == -1
-	);
-	try {
-		this.createProject("P");
-		projects = model.getJavaScriptProjects();
-		assertTrue(
-			"Project P should not be present",
-			this.indexOf("P", projects) == -1
-		);
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Test retrieving non-Java projects.
- */
-public void testGetNonJavaResources() throws CoreException {
-	try {
-		IJavaScriptModel model = this.getJavaModel();
-
-		this.createJavaProject("JP", new String[]{});
-		assertResourceNamesEqual(
-			"Unexpected non-Java resources",
-			"",
-			model.getNonJavaScriptResources());
-
-		this.createProject("SP1");
-		assertResourceNamesEqual(
-			"Unexpected non-Java resources after creation of SP1",
-			"SP1",
-			model.getNonJavaScriptResources());
-		
-		this.createProject("SP2");
-		assertResourceNamesEqual(
-			"Unexpected non-Java resources after creation of SP2",
-			"SP1\n" +
-			"SP2",
-			model.getNonJavaScriptResources());
-
-		this.deleteProject("SP1");
-		assertResourceNamesEqual(
-			"Unexpected non-Java resources after deletion of SP1",
-			"SP2",
-			model.getNonJavaScriptResources());
-	} finally {
-		this.deleteProject("SP1");
-		this.deleteProject("SP2");
-		this.deleteProject("JP");
-	}
-}
-/*
- * Ensures that the right scheduling rule is returned for a Java project
- */
-public void testGetSchedulingRule1() {
-	IJavaScriptProject project = getJavaProject("P");
-	assertEquals(
-		"Unexpected scheduling rule",
-		project.getResource(),
-		project.getSchedulingRule());
-}
-/*
- * Ensures that the right scheduling rule is returned for a source package fragment root
- */
-public void testGetSchedulingRule2() {
-	IResource folder = getFolder("/P/src");
-	IPackageFragmentRoot root = getJavaProject("P").getPackageFragmentRoot(folder);
-	assertEquals(
-		"Unexpected scheduling rule",
-		root.getResource(),
-		root.getSchedulingRule());
-}
-/*
- * Ensures that the right scheduling rule is returned for an external jar package fragment root
- */
-public void testGetSchedulingRule3() {
-	IPackageFragmentRoot root1 = getJavaProject("P1").getPackageFragmentRoot("c:\\some.jar");
-	ISchedulingRule rule1 = root1.getSchedulingRule();
-	IPackageFragmentRoot root2 = getJavaProject("P2").getPackageFragmentRoot("c:\\some.jar");
-	ISchedulingRule rule2 = root2.getSchedulingRule();
-	assertTrue("Rule 1 should contain rule 2", rule1.contains(rule2));
-	assertTrue("Rule 1 should conflict with rule 2", rule1.isConflicting(rule2));
-	assertTrue("Rule 2 should contain rule 1", rule2.contains(rule1));
-	assertTrue("Rule 2 should conflict with rule 1", rule2.isConflicting(rule1));
-}
-/*
- * Ensures that the right scheduling rule is returned for a source package fragment
- */
-public void testGetSchedulingRule4() {
-	IResource folder = getFolder("/P/src");
-	IPackageFragment pkg = getJavaProject("P").getPackageFragmentRoot(folder).getPackageFragment("p");
-	assertEquals(
-		"Unexpected scheduling rule",
-		pkg.getResource(),
-		pkg.getSchedulingRule());
-}
-/*
- * Ensures that JavaScriptCore#initializeAfterLoad() can be called on startup
- */
-public void testInitializeAfterLoad() throws CoreException {
-	simulateExitRestart();
-	JavaScriptCore.initializeAfterLoad(null);
-}
-
-
-/*
- * Ensures that a registered POST_BUILD pre-processing resource changed listener is correctly called.
- */
-public void testPreProcessingResourceChangedListener03() throws CoreException {
-	final int[] eventType = new int[] {0};
-	IResourceChangeListener listener = new IResourceChangeListener(){
-		public void resourceChanged(IResourceChangeEvent event) {
-			eventType[0] |= event.getType();
-		}
-	};
-	try {
-		JavaScriptCore.addPreProcessingResourceChangedListener(listener, IResourceChangeEvent.POST_BUILD);
-		createProject("Test");
-		waitForAutoBuild();
-		assertEquals("Unexpected event type", IResourceChangeEvent.POST_BUILD, eventType[0]);
-	} finally {
-		JavaScriptCore.removePreProcessingResourceChangedListener(listener);
-		deleteProject("Test");
-	}
-}
-
-/*
- * Ensures that a registered POST_CHANGE | PRE_BUILD pre-processing resource changed listener is correctly called.
- */
-public void testPreProcessingResourceChangedListener04() throws CoreException {
-	final int[] eventType = new int[] {0};
-	IResourceChangeListener listener = new IResourceChangeListener(){
-		public void resourceChanged(IResourceChangeEvent event) {
-			eventType[0] |= event.getType();
-		}
-	};
-	try {
-		JavaScriptCore.addPreProcessingResourceChangedListener(listener, IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.POST_BUILD);
-		createProject("Test");
-		waitForAutoBuild();
-		assertEquals("Unexpected event type", IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.POST_BUILD, eventType[0]);
-	} finally {
-		JavaScriptCore.removePreProcessingResourceChangedListener(listener);
-		deleteProject("Test");
-	}
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaProjectTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaProjectTests.java
deleted file mode 100644
index 2641f13..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaProjectTests.java
+++ /dev/null
@@ -1,1133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.wst.jsdt.core.IAccessRule;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IIncludePathAttribute;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptModelStatusConstants;
-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.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.UserLibrary;
-import org.eclipse.wst.jsdt.internal.core.UserLibraryManager;
-
-public class JavaProjectTests extends ModifyingResourceTests {
-public JavaProjectTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	TestSuite suite = (TestSuite) buildModelTestSuite(JavaProjectTests.class);
-
-	// The following test must be at the end as it deletes a package and this would have side effects
-	// on other tests
-	if (suite.testCount() > 1) // if not running only 1 test
-		suite.addTest(new JavaProjectTests("lastlyTestDeletePackageWithAutobuild"));
-	
-	return suite;
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	setUpJavaProject("JavaProjectTests");
-	setUpJavaProject("JavaProjectSrcTests");
-	setUpJavaProject("JavaProjectLibTests");
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("JavaProjectTests");
-	deleteProject("JavaProjectSrcTests");
-	deleteProject("JavaProjectLibTests");
-	super.tearDownSuite();
-}
-
-
-/**
- * Test adding a non-java resource in a package fragment root that correspond to
- * the project.
- * (Regression test for PR #1G58NB8)
- */
-public void testAddNonJavaResourcePackageFragmentRoot() throws JavaScriptModelException, CoreException {
-	// get resources of source package fragment root at project level
-	IPackageFragmentRoot root = getPackageFragmentRoot("JavaProjectTests", "");
-	Object[] resources = root.getNonJavaScriptResources();
-	assertResourceNamesEqual(
-		"unexpected non Java resources",
-		".project\n" + 
-		".settings\n" + 
-		"lib142530.jar\n" + 
-		"lib148949.jar",
-		resources);
-	IFile resource = (IFile)resources[0];
-	IPath newPath = root.getUnderlyingResource().getFullPath().append("TestNonJavaResource.abc");
-	try {
-		// copy and rename resource
-		resource.copy(
-			newPath, 
-			true, 
-			null);
-		
-		// ensure the new resource is present
-		resources = root.getNonJavaScriptResources();
-		assertResourcesEqual(
-			"incorrect non java resources", 
-			"/JavaProjectTests/.project\n" +
-			"/JavaProjectTests/.settings\n" +
-			"/JavaProjectTests/TestNonJavaResource.abc\n" +
-			"/JavaProjectTests/lib142530.jar\n" +
-			"/JavaProjectTests/lib148949.jar",
-			resources);
-	} finally {
-		// clean up
-		deleteResource(resource.getWorkspace().getRoot().getFile(newPath));
-	}
-}
-/*
- * Ensures that adding a project prerequisite in the classpath updates the referenced projects
- */
-public void testAddProjectPrerequisite() throws CoreException {
-	try {
-		createJavaProject("P1");
-		createJavaProject("P2");
-		waitForAutoBuild();
-		editFile(
-			"/P2/.settings/.jsdtscope", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<classpath>\n" +
-			"    <classpathentry kind=\"src\" path=\"/P1\"/>\n" +
-			"</classpath>"
-		);
-		getProject("P2").build(IncrementalProjectBuilder.FULL_BUILD, null);
-		IProject[] referencedProjects = getProject("P2").getReferencedProjects();
-		assertResourcesEqual(
-			"Unexpected project references", 
-			"/P1", 
-			referencedProjects);
-	} finally {
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/**
- * Test that a compilation unit
- * has a corresponding resource.
- */
-public void testCompilationUnitCorrespondingResource() throws JavaScriptModelException {
-	IJavaScriptUnit element= getCompilationUnit("JavaProjectTests", "", "q", "A.js");
-	IResource corr= element.getCorrespondingResource();
-	IResource res= getWorkspace().getRoot().getProject("JavaProjectTests").getFolder("q").getFile("A.js");
-	assertTrue("incorrect corresponding resource", corr.equals(res));
-	assertEquals("Project is incorrect for the compilation unit", "JavaProjectTests", corr.getProject().getName());
-}
-/**
- * Tests the fix for "1FWNMKD: ITPJCORE:ALL - Package Fragment Removal not reported correctly"
- */
-public void lastlyTestDeletePackageWithAutobuild() throws CoreException {
-	// close all project except JavaProjectTests so as to avoid side effects while autobuilding
-	IProject[] projects = getWorkspaceRoot().getProjects();
-	for (int i = 0; i < projects.length; i++) {
-		IProject project = projects[i];
-		if (project.getName().equals("JavaProjectTests")) continue;
-		project.close(null);
-	}
-
-	// turn autobuilding on
-	IWorkspace workspace = getWorkspace();
-	boolean autoBuild = workspace.isAutoBuilding();
-	IWorkspaceDescription description = workspace.getDescription();
-	description.setAutoBuilding(true);
-	workspace.setDescription(description);
-
-	startDeltas();
-	IPackageFragment frag = getPackageFragment("JavaProjectTests", "", "x.y");
-	IFolder folder = (IFolder) frag.getUnderlyingResource();
-	try {
-		deleteResource(folder);
-		assertDeltas(
-			"Unexpected delta",
-			"JavaProjectTests[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		x.y[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-		
-		// turn autobuild off
-		description.setAutoBuilding(autoBuild);
-		workspace.setDescription(description);
-
-		// reopen projects
-		projects = getWorkspaceRoot().getProjects();
-		for (int i = 0; i < projects.length; i++) {
-			IProject project = projects[i];
-			if (project.getName().equals("JavaProjectTests")) continue;
-			project.open(null);
-		}
-	}
-}
-/**
- * Test that an (external) jar
- * has no corresponding resource.
- */
-public void testExternalArchiveCorrespondingResource() throws JavaScriptModelException {
-	IJavaScriptProject project= getJavaProject("JavaProjectTests");
-	IPackageFragmentRoot element= project.getPackageFragmentRoot(getSystemJsPathString());
-	IResource corr= element.getCorrespondingResource();
-	assertTrue("incorrect corresponding resource", corr == null);
-}
-/*
- * Ensures that a file with an extra Java-like extension is listed in the children of a package.
- */
-public void testExtraJavaLikeExtension1() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFolder("/P/pack");
-		createFile("/P/pack/X.js", "function X() {}");
-		createFile("/P/pack/Y.bar", "function Y() {}");
-		IPackageFragment pkg = getPackage("/P/pack");
-		assertSortedElementsEqual(
-			"Unexpected children of package pack", 
-			"X.js [in pack [in <project root> [in P]]]",
-			pkg.getChildren());
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a file with an extra Java-like extension is not listed in the non-Java resources of a package.
- */
-public void testExtraJavaLikeExtension2() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFolder("/P/pack");
-		createFile("/P/pack/X.txt", "");
-		createFile("/P/pack/Y.bar", "function Y() {}");
-		IPackageFragment pkg = getPackage("/P/pack");
-		assertResourceNamesEqual(
-			"Unexpected non-Java resources of package pack", 
-			"X.txt\n" +
-			"Y.bar",
-			pkg.getNonJavaScriptResources());
-	} finally {
-		deleteProject("P");
-	}
-}
-/**
- * Test that a compilation unit can be found
- */
-public void testFindElementCompilationUnit() throws JavaScriptModelException {
-	IJavaScriptProject project= getJavaProject("JavaProjectTests");
-	IJavaScriptElement element= project.findElement(new Path("x/y/Main.js"));
-	assertTrue("CU not found" , element != null && element.getElementType() == IJavaScriptElement.JAVASCRIPT_UNIT
-		&& element.getElementName().equals("Main.js"));
-}
-/**
- * Test that a compilation unit can be found in a default package
- */
-public void testFindElementCompilationUnitDefaultPackage() throws JavaScriptModelException {
-	IJavaScriptProject project= getJavaProject("JavaProjectTests");
-	IJavaScriptElement element= project.findElement(new Path("B.js"));
-	assertTrue("CU not found" , element != null && element.getElementType() == IJavaScriptElement.JAVASCRIPT_UNIT
-		&& element.getElementName().equals("B.js"));
-}
-/**
- * Test that an invlaid path throws an exception
- */
-public void testFindElementInvalidPath() throws JavaScriptModelException {
-	IJavaScriptProject project= getJavaProject("JavaProjectTests");
-	boolean failed= false;
-	try {
-		project.findElement(null);
-	} catch (JavaScriptModelException e) {
-		failed= true;
-		assertTrue("wrong status code" , e.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_PATH);
-	}
-	assertTrue("Shold have failed", failed);
-	
-	failed = false;
-	try {
-		project.findElement(new Path("/something/absolute"));
-	} catch (JavaScriptModelException e) {
-		failed= true;
-		assertTrue("wrong status code" , e.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_PATH);
-	}
-	assertTrue("Shold have failed", failed);
-
-	IJavaScriptElement element= project.findElement(new Path("does/not/exist/HelloWorld.js"));
-	assertTrue("should get no element", element == null);
-}
-/**
- * Test that a package can be found
- */
-public void testFindElementPackage() throws JavaScriptModelException {
-	IJavaScriptProject project= getJavaProject("JavaProjectTests");
-	IJavaScriptElement element= project.findElement(new Path("x/y"));
-	assertTrue("package not found" , element != null && element.getElementType() == IJavaScriptElement.PACKAGE_FRAGMENT
-		&& element.getElementName().equals("x.y"));
-}
-/**
- * Test that a class can be found even if the project prereq a simple project
- * (regression test for bug 28434 Open Type broken when workspace has build path problems)
- */
-public void testFindElementPrereqSimpleProject() throws CoreException {
-	try {
-		this.createProject("R");
-		IJavaScriptProject project = this.createJavaProject("J", new String[] {"src"}, new String[] {}, new String[] {"/R"});
-		this.createFile(
-			"J/src/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		assertTrue("X.java not found", project.findElement(new Path("X.js")) != null);
-	} finally {
-		this.deleteProject("R");
-		this.deleteProject("J");
-	}
-}
-/**
- * Test that a package fragment root can be found from a classpath entry.
- */
-public void testFindPackageFragmentRootFromClasspathEntry() {
-	IJavaScriptProject project = getJavaProject("JavaProjectTests");
-	
-	// existing classpath entry
-	IIncludePathEntry entry = JavaScriptCore.newLibraryEntry(new Path("/JavaProjectTests/lib.jar"), null, null);
-	IPackageFragmentRoot[] roots = project.findPackageFragmentRoots(entry);
-	assertEquals("Unexpected number of roots for existing entry", 1, roots.length);
-	assertEquals("Unexpected root", "/JavaProjectTests/lib.jar", roots[0].getPath().toString());
-	
-	// non-existing classpath entry
-	entry = JavaScriptCore.newSourceEntry(new Path("/JavaProjectTests/nonExisting"));
-	roots = project.findPackageFragmentRoots(entry);
-	assertEquals("Unexpected number of roots for non existing entry", 0, roots.length);
-
-}
-/**
- * Test that a folder with a dot name does not relate to a package fragment
- */
-public void testFolderWithDotName() throws JavaScriptModelException, CoreException {
-	IPackageFragmentRoot root= getPackageFragmentRoot("JavaProjectTests", "");
-	IContainer folder= (IContainer)root.getCorrespondingResource();
-	try {
-		startDeltas();
-		folder.getFolder(new Path("org.eclipse")).create(false, true, null);
-		assertTrue("should be one Java Delta", this.deltaListener.deltas.length == 1);
-		
-		stopDeltas();
-		IJavaScriptElement[] children = root.getChildren();
-		IPackageFragment bogus = root.getPackageFragment("org.eclipse");
-		for (int i = 0; i < children.length; i++) {
-			assertTrue("org.eclipse should not be present as child", !children[i].equals(bogus));
-		}
-		assertTrue("org.eclipse should not exist", !bogus.exists());
-	} finally {
-		deleteResource(folder.getFolder(new Path("org.eclipse")));
-	}	
-}
-/*
- * Ensures that getting the classpath on a closed project throws a JavaScriptModelException
- * (regression test for bug 25358 Creating a new Java class - Browse for parent)
- */ 
-public void testGetClasspathOnClosedProject() throws CoreException {
-	IProject project = getProject("JavaProjectTests");
-	try {
-		project.close(null);
-		boolean gotException = false;
-		IJavaScriptProject javaProject = JavaScriptCore.create(project);
-		try {
-			javaProject.getRawIncludepath();
-		} catch (JavaScriptModelException e) {
-			if (e.isDoesNotExist()) {
-				gotException = true;
-			}
-		}
-		assertTrue("Should get a not present exception for getRawClasspath()", gotException);
-		gotException = false;
-		try {
-			javaProject.getResolvedIncludepath(true);
-		} catch (JavaScriptModelException e) {
-			if (e.isDoesNotExist()) {
-				gotException = true;
-			}
-		}
-		assertTrue("Should get a not present exception for getResolvedClasspath(true)", gotException);
-	} finally {
-		project.open(null);
-	}
-}
-/*
- * Ensures that the non-java resources for a project do not contain the project output location. 
- */
-public void testGetNonJavaResources1() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"});
-		assertResourcesEqual(
-			"Unexpected non-java resources for project",
-			"/P/.project\n" +
-			"/P/.settings",
-			project.getNonJavaScriptResources());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensures that the non-java resources for a project do not contain a custom output location. 
- * (regression test for 27494  Source folder output folder shown in Package explorer)
- */
-public void testGetNonJavaResources2() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"}, "bin1", new String[] {"bin2"});
-		assertResourcesEqual(
-			"Unexpected non-java resources for project",
-			"/P/.project\n" +
-			"/P/.settings",
-			project.getNonJavaScriptResources());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensures that the non-java resources for a project do not contain a folder that should be a package fragment.
- */
-public void testGetNonJavaResources3() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {""});
-		this.createFolder("/P/p1");
-		assertResourcesEqual(
-			"Unexpected non-java resources for project",
-			"/P/.project\n" +
-			"/P/.settings",
-			project.getNonJavaScriptResources());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensures that the non-java resources for a project contain a folder that have an invalid name for a package fragment.
- * (regression test for bug 31757 Folder with invalid pkg name should be non-Java resource)
- */
-public void testGetNonJavaResources4() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P");
-		this.createFolder("/P/x.y");
-		assertResourcesEqual(
-			"Unexpected non-java resources for project",
-			"/P/.project\n" + 
-			"/P/.settings\n" + 
-			"/P/x.y",
-			project.getNonJavaScriptResources());
-	} finally {
-		this.deleteProject("P");
-	}
-} 
-/*
- * Ensures that getRequiredProjectNames() returns the project names in the classpath order
- * (regression test for bug 25605 [API] someJavaProject.getRequiredProjectNames(); API should specify that the array is returned in ClassPath order)
- */
-public void testGetRequiredProjectNames() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject(
-			"P", 
-			new String[] {}, 
-			new String[] {}, 
-			new String[] {"/JavaProjectTests", "/P1", "/P0", "/P2", "/JavaProjectSrcTests"});
-		String[] requiredProjectNames = project.getRequiredProjectNames();
-		StringBuffer buffer = new StringBuffer();
-		for (int i = 0, length = requiredProjectNames.length; i < length; i++) {
-			buffer.append(requiredProjectNames[i]);
-			if (i != length-1) {
-				buffer.append(", ");
-			}
-		}
-		assertEquals(
-			"Unexpected required project names",
-			"JavaProjectTests, P1, P0, P2, JavaProjectSrcTests",
-			buffer.toString());
-	} finally {
-		this.deleteProject("P");
-	}
-}
-/**
- * Test that an (internal) jar
- * has a corresponding resource.
- */
-public void testInternalArchiveCorrespondingResource() throws JavaScriptModelException {
-	IPackageFragmentRoot element= getPackageFragmentRoot("JavaProjectTests", "lib.jar");
-	IResource corr= element.getCorrespondingResource();
-	IResource res= getWorkspace().getRoot().getProject("JavaProjectTests").getFile("lib.jar");
-	assertTrue("incorrect corresponding resource", corr.equals(res));
-}
-/**
- * Test IJavaPackageFragment.isDefaultPackage().
- */
-public void testIsDefaultPackage() throws JavaScriptModelException {
-	IPackageFragment def = getPackageFragment("JavaProjectTests", "", "");
-	assertTrue("should be default package", def.isDefaultPackage());
-	IPackageFragment y =
-		getPackageFragment("JavaProjectTests", "", "x.y");
-	assertTrue("x.y should not be default pakackage", !y.isDefaultPackage());
-
-	IPackageFragment def2 = getPackageFragment("JavaProjectTests", "lib.jar", "");
-	assertTrue("lib.jar should have default package", def2.isDefaultPackage());
-	IPackageFragment p =
-		getPackageFragment("JavaProjectTests", "lib.jar", "p");
-	assertTrue("p should not be default package", !p.isDefaultPackage());
-}
-/**
- * Test that a package fragment (non-external, non-jar, non-default)
- * has a corresponding resource.
- */
-public void testPackageFragmentCorrespondingResource() throws JavaScriptModelException {
-	IPackageFragment element= getPackageFragment("JavaProjectTests", "", "x.y");
-	IResource corr= element.getCorrespondingResource();
-	IResource res= getWorkspace().getRoot().getProject("JavaProjectTests").getFolder("x").getFolder("y");
-	assertTrue("incorrect corresponding resource", corr.equals(res));
-}
-/**
- * Test that a package fragment (non-external, non-jar, non-default)
- * has a corresponding resource.
- */
-public void testPackageFragmentHasSubpackages() throws JavaScriptModelException {
-	IPackageFragment def=		getPackageFragment("JavaProjectTests", "", "");
-	IPackageFragment x=		getPackageFragment("JavaProjectTests", "", "x");
-	IPackageFragment y=		getPackageFragment("JavaProjectTests", "", "x.y");
-	assertTrue("default should have subpackages",							def.hasSubpackages());
-	assertTrue("x should have subpackages",								x.hasSubpackages());
-	assertTrue("x.y should NOT have subpackages",		!y.hasSubpackages());
-
-	IPackageFragment java = getPackageFragment("JavaProjectTests", getSystemJsPathString(), "java");
-	IPackageFragment lang= getPackageFragment("JavaProjectTests", getSystemJsPathString(), "java.lang");
-
-	assertTrue("java should have subpackages",					java.hasSubpackages());
-	assertTrue("java.lang  should NOT have subpackages",			!lang.hasSubpackages());
-}
-/*
- * Ensures that the structure is known for a package fragment on the classpath.
- */
-public void testPackageFragmentIsStructureKnown1() throws CoreException {
-	IPackageFragment pkg = getPackageFragment("JavaProjectTests", "", "x");
-	assertTrue("Structure of package 'x' should be known", pkg.isStructureKnown());
-}
-/*
- * Ensures that asking if the structure is known for a package fragment outside the classpath throws a JavaScriptModelException.
- * (regression test for bug 138577 Package content disapear in package explorer)
- */
-public void testPackageFragmentIsStructureKnown2() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFolder("/P/pack");
-		IPackageFragment pkg = getPackage("/P/pack");
-		editFile(
-			"/P/.classpath",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry excluding=\"pack/\" kind=\"src\" path=\"\"/>\n" + 
-			"	<classpathentry kind=\"output\" path=\"\"/>\n" + 
-			"</classpath>"
-		);
-		JavaScriptModelException exception = null;
-		try {
-			pkg.isStructureKnown();
-		} catch (JavaScriptModelException e) {
-			exception = e;
-		}
-		assertExceptionEquals(
-			"Unexpected exception", 
-			"pack [in <project root> [in P]] does not exist",
-			exception);
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/*
- * Ensure that the non-Java resources of a source package are correct.
- */
-public void testPackageFragmentNonJavaResources1() throws JavaScriptModelException {
-	// regular source package with resources
-	IPackageFragment pkg = getPackageFragment("JavaProjectTests", "", "x");
-	Object[] resources = pkg.getNonJavaScriptResources();
-	assertResourcesEqual(
-		"Unexpected resources", 
-		"/JavaProjectTests/x/readme.txt\n" + 
-		"/JavaProjectTests/x/readme2.txt",
-		resources);
-}
-
-/*
- * Ensure that the non-Java resources of a source package without resources are correct.
- */
-public void testPackageFragmentNonJavaResources2() throws JavaScriptModelException {	
-	IPackageFragment pkg = getPackageFragment("JavaProjectTests", "", "x.y");
-	Object[] resources = pkg.getNonJavaScriptResources();
-	assertResourcesEqual(
-		"Unexpected resources", 
-		"",
-		resources);
-}
-
-/*
- * Ensure that the non-Java resources of the default package are correct.
- */
-public void testPackageFragmentNonJavaResources3() throws JavaScriptModelException {	
-	IPackageFragment pkg = getPackageFragment("JavaProjectTests", "", "");
-	Object[] resources = pkg.getNonJavaScriptResources();
-	assertResourcesEqual(
-		"Unexpected resources", 
-		"",
-		resources);
-}
-
-/*
- * Ensure that the non-Java resources of a zip package without resources are correct.
- */
-public void testPackageFragmentNonJavaResources4() throws JavaScriptModelException {	
-	IPackageFragment pkg = getPackageFragment("JavaProjectTests", "lib.jar", "p");
-	Object[] resources = pkg.getNonJavaScriptResources();
-	assertResourcesEqual(
-		"Unexpected resources", 
-		"",
-		resources);
-}
-
-// TODO: zip default package with potentialy resources
-
-/*
- * Ensure that the non-Java resources of a zip default package without resources are correct.
- */
-public void testPackageFragmentNonJavaResources5() throws JavaScriptModelException {	
-	IPackageFragment pkg = getPackageFragment("JavaProjectTests", "lib.jar", "");
-	Object[] resources = pkg.getNonJavaScriptResources();
-	assertResourcesEqual(
-		"Unexpected resources", 
-		"",
-		resources);	
-}
-
-/*
- * Ensure that the non-Java resources of a zip package with resources are correct.
- * (regression test for bug 142530 [hierarchical packages] '.' in folder names confuses package explorer)
- */
-public void testPackageFragmentNonJavaResources6() throws JavaScriptModelException {	
-	// regular zip package without resources
-	IPackageFragment pkg = getPackageFragment("JavaProjectTests", "lib142530.jar", "p");
-	Object[] resources = pkg.getNonJavaScriptResources();
-	assertResourcesEqual(
-		"Unexpected resources", 
-		"x.y/Test.txt",
-		resources);
-}
-
-/*
- * Ensure that the non-Java resources of a zip package with resources are correct.
- * (regression test for bug 148949 JarEntryFile now returning 'null')
- */
-public void testPackageFragmentNonJavaResources7() throws JavaScriptModelException {	
-	// regular zip package without resources
-	IPackageFragment pkg = getPackageFragment("JavaProjectTests", "lib148949.jar", "p");
-	Object[] resources = pkg.getNonJavaScriptResources();
-	assertResourceNamesEqual(
-		"Unexpected resources", 
-		"test.txt",
-		resources);
-}
-
-/*
- * Ensures that the package-info.class file doesn't appear as a child of a package if proj=src
- * (regression test for bug 99654 [5.0] JavaModel returns both IClassFile and IJavaScriptUnit for package-info.java)
- */
-public void testPackageFragmentPackageInfoClass() throws CoreException {
-	try {
-		createJavaProject("P");
-		createFolder("/P/p1");
-		IPackageFragment pkg = getPackage("/P/p1");
-		pkg.open(null);
-		createFile("/P/p1/package-info.class", "");
-		assertResourceNamesEqual(
-			"Unexpected resources of /P/p1",
-			"",
-			pkg.getNonJavaScriptResources());
-	} finally {
-		deleteProject("P");
-	}
-}
-/**
- * Tests that after a package "foo" has been renamed into "bar", it is possible to recreate
- * a "foo" package.
- * @see "1FWX0HY: ITPCORE:WIN98 - Problem after renaming a Java package"
- */
-public void testPackageFragmentRenameAndCreate() throws JavaScriptModelException, CoreException {
-	IPackageFragment y = getPackageFragment("JavaProjectTests", "", "x.y");
-	IFolder yFolder = (IFolder) y.getUnderlyingResource();
-	IPath yPath = yFolder.getFullPath();
-	IPath fooPath = yPath.removeLastSegments(1).append("foo");
-	
-	yFolder.move(fooPath, true, null);
-	try {
-		yFolder.create(true, true, null);
-	} catch (Throwable e) {
-		e.printStackTrace();
-		assertTrue("should be able to recreate the y folder", false);
-	}
-	// restore the original state
-	deleteResource(yFolder);
-	IPackageFragment foo = getPackageFragment("JavaProjectTests", "", "x.foo");
-	IFolder fooFolder = (IFolder) foo.getUnderlyingResource();
-	fooFolder.move(yPath, true, null);
-}
-/**
- * Test that a package fragment root (non-external, non-jar, non-default root)
- * has a corresponding resource.
- */
-public void testPackageFragmentRootCorrespondingResource() throws JavaScriptModelException {
-	IPackageFragmentRoot element= getPackageFragmentRoot("JavaProjectTests", "");
-	IResource corr= element.getCorrespondingResource();
-	IResource res= getWorkspace().getRoot().getProject("JavaProjectTests");
-	assertTrue("incorrect corresponding resource", corr.equals(res));
-	assertEquals("Project incorrect for folder resource", "JavaProjectTests", corr.getProject().getName());
-}
-/**
- * Test getting the non-java resources from a package fragment root.
- */
-public void testPackageFragmentRootNonJavaResources() throws JavaScriptModelException {
-	// source package fragment root with resources
-	IPackageFragmentRoot root = getPackageFragmentRoot("JavaProjectTests", "");
-	Object[] resources = root.getNonJavaScriptResources();
-	assertResourceNamesEqual(
-		"unexpected non java resoures (test case 1)", 
-		".project\n" + 
-		".settings\n" + 
-		"lib142530.jar\n" +
-		"lib148949.jar",
-		resources);
-
-	// source package fragment root without resources
- 	root = getPackageFragmentRoot("JavaProjectSrcTests", "src");
-	resources = root.getNonJavaScriptResources();
-	assertResourceNamesEqual(
-		"unexpected non java resoures (test case 2)", 
-		"",
-		resources);
-
-	// zip package fragment root with resources
-	// TO DO
-	
-	// zip package fragment root without resources
-	root = getPackageFragmentRoot("JavaProjectTests", "lib.jar");
-	resources = root.getNonJavaScriptResources();
-	assertResourceNamesEqual(
-		"unexpected non java resoures (test case 4)", 
-		"MANIFEST.MF",
-		resources);
-}
-/**
- * Test raw entry inference performance for package fragment root
- */
-public void testPackageFragmentRootRawEntry() throws CoreException, IOException {
-	File libDir = null;
-	try {
-		String libPath = getExternalPath() + "lib";
-		JavaScriptCore.setIncludepathVariable("MyVar", new Path(libPath), null);
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {});
-		libDir = new File(libPath);
-		libDir.mkdirs();
-		final int length = 200;
-		IIncludePathEntry[] classpath = new IIncludePathEntry[length];
-		for (int i = 0; i < length; i++){
-			File libJar = new File(libDir, "lib"+i+".jar");
-			libJar.createNewFile();
-			classpath[i] = JavaScriptCore.newVariableEntry(new Path("/MyVar/lib"+i+".jar"), null, null);
-		}
-		proj.setRawIncludepath(classpath, null);
-		
-		IPackageFragmentRoot[] roots = proj.getPackageFragmentRoots();
-		assertEquals("wrong number of entries:", length, roots.length);
-		//long start = System.currentTimeMillis();
-		for (int i = 0; i < roots.length; i++){
-			IIncludePathEntry rawEntry = roots[i].getRawIncludepathEntry();
-			assertEquals("unexpected root raw entry:", classpath[i], rawEntry);
-		}
-		//System.out.println((System.currentTimeMillis() - start)+ "ms for "+roots.length+" roots");
-	} finally {
-		if (libDir != null) {
-			org.eclipse.wst.jsdt.core.tests.util.Util.delete(libDir);
-		}
-		this.deleteProject("P");
-		JavaScriptCore.removeIncludepathVariable("MyVar", null);
-	}
-}
-/**
- * Test raw entry inference performance for package fragment root in case
- * original classpath had duplicate entries pointing to it: first raw entry should be found
- */
-public void testPackageFragmentRootRawEntryWhenDuplicate() throws CoreException, IOException {
-	File libDir = null;
-	try {
-		String externalPath = getExternalPath();
-		String libPath = externalPath + "lib";
-		JavaScriptCore.setIncludepathVariable("MyVar", new Path(externalPath), null);
-		IJavaScriptProject proj =  this.createJavaProject("P", new String[] {});
-		libDir = new File(libPath);
-		libDir.mkdirs();
-		IIncludePathEntry[] classpath = new IIncludePathEntry[2];
-		File libJar = new File(libDir, "lib.jar");
-		libJar.createNewFile();
-		classpath[0] = JavaScriptCore.newLibraryEntry(new Path(libPath).append("lib.jar"), null, null);
-		classpath[1] = JavaScriptCore.newVariableEntry(new Path("/MyVar").append("lib.jar"), null, null);
-		proj.setRawIncludepath(classpath, null);
-		JavaScriptCore.setIncludepathVariable("MyVar", new Path(libPath), null); // change CP var value to cause collision
-		
-		IPackageFragmentRoot[] roots = proj.getPackageFragmentRoots();
-		assertEquals("wrong number of entries:", 1, roots.length);
-		IIncludePathEntry rawEntry = roots[0].getRawIncludepathEntry();
-		assertEquals("unexpected root raw entry:", classpath[0], rawEntry); // ensure first entry is associated to the root
-	} finally {
-		if (libDir != null) {
-			org.eclipse.wst.jsdt.core.tests.util.Util.delete(libDir);
-		}
-		this.deleteProject("P");
-		JavaScriptCore.removeIncludepathVariable("MyVar", null);
-	}
-}
-/*
- * Ensures that opening a project update the project references
- * (regression test for bug 73253 [model] Project references not set on project open)
- */
-public void testProjectOpen() throws CoreException {
-	try {
-		createJavaProject("P1");
-		createJavaProject("P2", new String[0], new String[0], new String[] {"/P1"});
-		IProject p2 = getProject("P2");
-		p2.close(null);
-		p2.open(null);
-		IProject[] references = p2.getDescription().getDynamicReferences();
-		assertResourcesEqual(
-			"Unexpected referenced projects",
-			"/P1",
-			references);
-	} finally {
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/**
- * Tests that closing and opening a project triggers the correct deltas.
- */
-public void testProjectClose() throws JavaScriptModelException, CoreException {
-	IJavaScriptProject jproject= getJavaProject("JavaProjectTests");
-	IPackageFragmentRoot[] originalRoots = jproject.getPackageFragmentRoots();
-	IProject project= jproject.getProject();
-
-	try {
-		startDeltas();
-		project.close(null);
-		assertDeltas(
-			"Unexpected delta 1",
-			"JavaProjectTests[*]: {CLOSED}\n" + 
-			"ResourceDelta(/JavaProjectTests)"
-		);
-	} finally {
-		try {
-			clearDeltas();
-			
-			project.open(null);
-			assertDeltas(
-				"Unexpected delta 2",
-				"JavaProjectTests[*]: {OPENED}\n" + 
-				"ResourceDelta(/JavaProjectTests)"
-			);
-
-			IPackageFragmentRoot[] openRoots = jproject.getPackageFragmentRoots();
-			assertTrue("should have same number of roots", openRoots.length == originalRoots.length);
-			for (int i = 0; i < openRoots.length; i++) {
-				assertTrue("root not the same", openRoots[i].equals(originalRoots[i]));
-			}
-		} finally {
-			stopDeltas();
-		}
-	}
-}
-/**
- * Test that a project has a corresponding resource.
- */
-public void testProjectCorrespondingResource() throws JavaScriptModelException {
-	IJavaScriptProject project= getJavaProject("JavaProjectTests");
-	IResource corr= project.getCorrespondingResource();
-	IResource res= getWorkspace().getRoot().getProject("JavaProjectTests");
-	assertTrue("incorrect corresponding resource", corr.equals(res));
-}
-/**
- * Test that the correct children exist in a project
- */
-public void testProjectGetChildren() throws JavaScriptModelException {
-	IJavaScriptProject project = getJavaProject("JavaProjectTests");
-	IJavaScriptElement[] roots= project.getChildren();
-	assertElementsEqual(
-		"Unexpected package fragment roots",
-		"<project root> [in JavaProjectTests]\n" + 
-		getSystemJsPathString() + "\n" + 
-		"lib.jar [in JavaProjectTests]\n" + 
-		"lib142530.jar [in JavaProjectTests]\n" + 
-		"lib148949.jar [in JavaProjectTests]",
-		roots);
-}
-/**
- * Test that the correct package fragments exist in the project.
- */
-public void testProjectGetPackageFragments() throws JavaScriptModelException {
-	IJavaScriptProject project= getJavaProject("JavaProjectTests");
-	IPackageFragment[] fragments= project.getPackageFragments();
-	assertSortedElementsEqual(
-		"unexpected package fragments",
-		"<default> [in "+ getSystemJsPathString() + "]\n" + 
-		"q [in <project root> [in JavaProjectTests]]\n" + 
-		"x [in <project root> [in JavaProjectTests]]\n" + 
-		"x/y [in <project root> [in JavaProjectTests]]",
-		fragments);
-}
-/*
- * Ensures that importing a project correctly update the project references
- * (regression test for bug 121569 [Import/Export] Importing projects in workspace, the default build order is alphabetical instead of by dependency)
- */
-public void testProjectImport() throws CoreException {
-	try {
-		createJavaProject("P1");
-		IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				createJavaProject("P2");
-				editFile(
-					"/P2/.settings/.jsdtscope", 
-					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-					"<classpath>\n" +
-					"    <classpathentry kind=\"src\" path=\"/P1\"/>\n" +
-					"    <classpathentry kind=\"output\" path=\"\"/>\n" +
-					"</classpath>"
-				);
-			}
-		};
-		getWorkspace().run(runnable, null);
-		waitForAutoBuild();
-		IProject[] referencedProjects = getProject("P2").getReferencedProjects();
-		assertResourcesEqual(
-			"Unexpected project references", 
-			"/P1", 
-			referencedProjects);
-	} finally {
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/**
- * Test that the correct package fragments exist in the project.
- */
-public void testRootGetPackageFragments() throws JavaScriptModelException {
-	IPackageFragmentRoot root= getPackageFragmentRoot("JavaProjectTests", "");
-	IJavaScriptElement[] fragments= root.getChildren();
-	assertElementsEqual(
-		"unexpected package fragments in source folder",
-		"<default> [in <project root> [in JavaProjectTests]]\n" + 
-		"q [in <project root> [in JavaProjectTests]]\n" + 
-		"x [in <project root> [in JavaProjectTests]]\n" + 
-		"x/y [in <project root> [in JavaProjectTests]]",
-		fragments);
-
-	root= getPackageFragmentRoot("JavaProjectTests", "lib.jar");
-	fragments= root.getChildren();	
-	assertSortedElementsEqual(
-		"unexpected package fragments in library",
-		"<default> [in lib.jar [in JavaProjectTests]]\n" + 
-		"p [in lib.jar [in JavaProjectTests]]",
-		fragments);
-}
-/**
- * Test that the correct package fragments exist in the project.
- * (regression test for bug 65693 Package Explorer shows .class files instead of .java)
- */
-public void testRootGetPackageFragments3() throws CoreException {
-	try {
-		IJavaScriptProject p1 = createJavaProject("P1");
-		createFile(
-			"/P1/X.js",
-			"function X() {\n" +
-			"}"
-		);
-		getProject("P1").build(IncrementalProjectBuilder.FULL_BUILD, null);
-		IJavaScriptProject p2 = createJavaProject("P2");
-		editFile(
-			"/P2/.settings/.jsdtscope", 
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-			"<classpath>\n" +
-			"    <classpathentry kind=\"src\" path=\"\"/>\n" +
-			"    <classpathentry kind=\"lib\" path=\"/P1\"/>\n" +
-			"</classpath>"
-		);
-		IPackageFragment pkg = p1.getPackageFragmentRoot(p1.getProject()).getPackageFragment("");
-		assertElementsEqual(
-			"Unexpected packages for P1",
-			"X.js [in <default> [in <project root> [in P1]]]",
-			pkg.getChildren());
-		pkg = p2.getPackageFragmentRoot(p1.getProject()).getPackageFragment("");
-		assertElementsEqual(
-			"Unexpected packages for P2",
-			"X.js [in <default> [in /P1 [in P2]]]",
-			pkg.getChildren());	
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Ensure a source folder can have a name ending with ".jar"
- */
-public void testSourceFolderWithJarName() throws CoreException {
-	try {
-		this.createJavaProject("P", new String[] {"src.jar"});
-		IFile file = createFile("/P/src.jar/X.js", "class X {}");
-		IJavaScriptUnit unit = (IJavaScriptUnit)JavaScriptCore.create(file);
-		unit.getAllTypes(); // force to open
-	} catch (CoreException e) {
-		assertTrue("unable to open unit in 'src.jar' source folder", false);
-	} finally {
-		this.deleteProject("P");
-	}
-}/**
- * Test that a method
- * has no corresponding resource.
- */
-public void testSourceMethodCorrespondingResource() throws JavaScriptModelException {
-	IJavaScriptUnit element= getCompilationUnit("JavaProjectTests", "", "q", "A.js");
-	IFunction[] methods = element.getFunctions();
-	assertTrue("missing methods", methods.length > 0);
-	IResource corr= methods[0].getCorrespondingResource();
-	assertTrue("incorrect corresponding resource", corr == null);
-}
-
-/**
- * Test User Library preference. External jar file referenced in library entry does not exist.
- * It does not need to as we only test the preference value...
- * 
- * @test bug 88719: UserLibrary.serialize /createFromString need support for access restriction / attributes
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=88719"
- */
-public void testUserLibrary() throws JavaScriptModelException {
-
-	IIncludePathEntry[] userEntries = new IIncludePathEntry[2];
-
-	// Set first classpath entry
-	IPath path = new Path("/tmp/test.jar");
-	IAccessRule[] pathRules = new IAccessRule[3];
-	pathRules[0] = JavaScriptCore.newAccessRule(new Path("**/forbidden/**"), IAccessRule.K_NON_ACCESSIBLE);
-	pathRules[1] = JavaScriptCore.newAccessRule(new Path("**/discouraged/**"), IAccessRule.K_DISCOURAGED);
-	pathRules[2] = JavaScriptCore.newAccessRule(new Path("**/accessible/**"), IAccessRule.K_ACCESSIBLE);
-	IIncludePathAttribute[] extraAttributes = new IIncludePathAttribute[2];
-	extraAttributes[0] = JavaScriptCore.newIncludepathAttribute("javadoc_location", "http://www.sample-url.org/doc/");
-	extraAttributes[1] = JavaScriptCore.newIncludepathAttribute("org.eclipse.wst.jsdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY", "/tmp");
-	userEntries[0] = JavaScriptCore.newLibraryEntry(path, null, null, pathRules, extraAttributes, false);
-
-	// Set second classpath entry
-	path = new Path("/tmp/test.jar");
-	pathRules = new IAccessRule[3];
-	pathRules[0] = JavaScriptCore.newAccessRule(new Path("/org/eclipse/forbidden/**"), IAccessRule.K_NON_ACCESSIBLE);
-	pathRules[1] = JavaScriptCore.newAccessRule(new Path("/org/eclipse/discouraged/**"), IAccessRule.K_DISCOURAGED);
-	pathRules[2] = JavaScriptCore.newAccessRule(new Path("/org/eclipse/accessible/**"), IAccessRule.K_ACCESSIBLE);
-	extraAttributes = new IIncludePathAttribute[2];
-	extraAttributes[0] = JavaScriptCore.newIncludepathAttribute("javadoc_location", "http://www.sample-url.org/doc/");
-	extraAttributes[1] = JavaScriptCore.newIncludepathAttribute("org.eclipse.wst.jsdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY", "/tmp");
-	userEntries[1] = JavaScriptCore.newLibraryEntry(path, null, null, pathRules, extraAttributes, false);
-	
-	// Create user library
-	UserLibrary library = new UserLibrary(userEntries, false);
-	UserLibraryManager.setUserLibrary("TEST", library, null);
-	
-	// Verify it has been written in preferences
-	IEclipsePreferences instancePreferences = JavaModelManager.getJavaModelManager().getInstancePreferences();
-	String containerKey = UserLibraryManager.CP_USERLIBRARY_PREFERENCES_PREFIX+"TEST";
-	String libraryPreference = instancePreferences.get(containerKey, null);
-	assertNotNull("Should get a preference for TEST user library", libraryPreference);
-
-	assertSourceEquals(
-		"Invalid library contents", 
-		"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-		"<userlibrary systemlibrary=\"false\" version=\"1\">\n" + 
-		"	<archive path=\"/tmp/test.jar\">\n" + 
-		"		<attributes>\n" + 
-		"			<attribute name=\"javadoc_location\" value=\"http://www.sample-url.org/doc/\"/>\n" + 
-		"			<attribute name=\"org.eclipse.wst.jsdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY\" value=\"/tmp\"/>\n" + 
-		"		</attributes>\n" + 
-		"		<accessrules>\n" + 
-		"			<accessrule kind=\"nonaccessible\" pattern=\"**/forbidden/**\"/>\n" + 
-		"			<accessrule kind=\"discouraged\" pattern=\"**/discouraged/**\"/>\n" + 
-		"			<accessrule kind=\"accessible\" pattern=\"**/accessible/**\"/>\n" + 
-		"		</accessrules>\n" + 
-		"	</archive>\n" + 
-		"	<archive path=\"/tmp/test.jar\">\n" + 
-		"		<attributes>\n" + 
-		"			<attribute name=\"javadoc_location\" value=\"http://www.sample-url.org/doc/\"/>\n" + 
-		"			<attribute name=\"org.eclipse.wst.jsdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY\" value=\"/tmp\"/>\n" + 
-		"		</attributes>\n" + 
-		"		<accessrules>\n" + 
-		"			<accessrule kind=\"nonaccessible\" pattern=\"/org/eclipse/forbidden/**\"/>\n" + 
-		"			<accessrule kind=\"discouraged\" pattern=\"/org/eclipse/discouraged/**\"/>\n" + 
-		"			<accessrule kind=\"accessible\" pattern=\"/org/eclipse/accessible/**\"/>\n" + 
-		"		</accessrules>\n" + 
-		"	</archive>\n" + 
-		"</userlibrary>\n", 
-		libraryPreference);
-}
-
-/**
- * @bug 148859: [model][delta] Package Explorer only shows default package after import
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=148859"
- */
-public void testBug148859() throws CoreException {
-	try {
-		ResourcesPlugin.getWorkspace().run(
-			new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IJavaScriptProject project = createJavaProject("P");
-					project.findType("X");
-					createFolder("/P/pack");
-				}
-			},
-			null);
-		IPackageFragmentRoot root = getPackageFragmentRoot("P", "");
-		assertElementsEqual(
-			"Unexpected children size in 'P' default source folder",
-			"<default> [in <project root> [in P]]\n" + 
-			"pack [in <project root> [in P]]",
-			root.getChildren());
-	} finally {
-		deleteProject("P");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaScriptLikeExtensionsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaScriptLikeExtensionsTests.java
deleted file mode 100644
index 9b724f2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaScriptLikeExtensionsTests.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.internal.core.util.Util;
-
-import junit.framework.Test;
-
-public class JavaScriptLikeExtensionsTests extends ModifyingResourceTests {
-	
-	public JavaScriptLikeExtensionsTests(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		return buildModelTestSuite(JavaScriptLikeExtensionsTests.class);
-	}
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		Util.resetJavaLikeExtensions();
-	}
-
-	/*
-	 * Ensures that the known JavaScript-like extensions are correct.
-	 */
-	public void testGetJavaScriptLikeExtensions01() {
-		assertSortedStringsEqual(
-			"Unexpected file extensions",
-			"js\n" +
-			"json\n",
-			JavaScriptCore.getJavaScriptLikeExtensions()
-		);
-	}
-
-	/*
-	 * Ensures that the known JavaScript-like extensions are correct after a JavaScript-like file extension is added.
-	 */
-	public void testGetJavaScriptLikeExtensions02() throws CoreException {
-		IContentType javaContentType = Platform.getContentTypeManager().getContentType(JavaScriptCore.JAVA_SOURCE_CONTENT_TYPE);
-		try {
-			if (javaContentType != null)
-				javaContentType.addFileSpec("abc", IContentType.FILE_EXTENSION_SPEC);
-			assertSortedStringsEqual(
-				"Unexpected file extensions",
-				"abc\n" + 
-				"js\n" +
-				"json\n",
-				JavaScriptCore.getJavaScriptLikeExtensions()
-			);
-		} finally {
-			if (javaContentType != null)
-				javaContentType.removeFileSpec("abc", IContentType.FILE_EXTENSION_SPEC);
-		}
-	}
-
-	/*
-	 * Ensure that file.js is a Java-like file name
-	 */
-	public void testIJavaScriptLikeFileName01() {
-		assertTrue("file.js should be a JavaScript-like file name", JavaScriptCore.isJavaScriptLikeFileName("file.js"));
-	}
-
-	/*
-	 * Ensure that file.other is not a Java-like file name
-	 */
-	public void testIJavaScriptLikeFileName02() {
-		assertFalse("file.other should not be a JavaScript-like file name", JavaScriptCore.isJavaScriptLikeFileName("file.other"));
-	}
-
-	/*
-	 * Ensure that file is not a JavaScript-like file name
-	 */
-	public void testIJavaScriptLikeFileName04() {
-		assertFalse("file should not be a JavaScript-like file name", JavaScriptCore.isJavaScriptLikeFileName("file"));
-	}
-
-	/*
-	 * Ensure that removing the JavaScript-like extension for file.js returns js
-	 */
-	public void testRemoveJavaScriptLikeExtension02() {
-		assertEquals("Unexpected file without JavaScript-like extension", "file", JavaScriptCore.removeJavaScriptLikeExtension("file.js"));
-	}
-
-	/*
-	 * Ensure that removing the JavaScript-like extension for file.other returns foo.other
-	 */
-	public void testRemoveJavaScriptLikeExtension03() {
-		assertEquals("Unexpected file without JavaScript-like extension", "file.other", JavaScriptCore.removeJavaScriptLikeExtension("file.other"));
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchBugsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchBugsTests.java
deleted file mode 100644
index ccb33f3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchBugsTests.java
+++ /dev/null
@@ -1,7795 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.search.*;
-
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-import org.eclipse.wst.jsdt.internal.core.ClassFile;
-import org.eclipse.wst.jsdt.internal.core.SourceMethod;
-import org.eclipse.wst.jsdt.internal.core.search.AbstractSearchScope;
-import org.eclipse.wst.jsdt.internal.core.search.indexing.IIndexConstants;
-import org.eclipse.wst.jsdt.internal.core.search.matching.MatchLocator;
-import org.eclipse.wst.jsdt.internal.core.search.matching.PatternLocator;
-import org.eclipse.wst.jsdt.internal.core.search.matching.TypeDeclarationPattern;
-
-/**
- * Non-regression tests for bugs fixed in Java Search engine.
- */
-public class JavaSearchBugsTests extends AbstractJavaSearchTests implements IJavaScriptSearchConstants {
-	private final static int UI_DECLARATIONS = DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE;
-	
-public JavaSearchBugsTests(String name) {
-	super(name);
-	this.endChar = "";
-}
-public static Test suite() {
-	return buildModelTestSuite(JavaSearchBugsTests.class);
-}
-static {
-//	org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.VERBOSE = true;
-//	org.eclipse.wst.jsdt.internal.codeassist.SelectionEngine.DEBUG = true;
-}
-
-class TestCollector extends JavaSearchResultCollector {
-	public List matches = new ArrayList();
-	public void acceptSearchMatch(SearchMatch searchMatch) throws CoreException {
-		super.acceptSearchMatch(searchMatch);
-		matches.add(searchMatch);
-	}
-}
-class TypeReferencesCollector extends JavaSearchResultCollector {
-	protected IJavaScriptElement getElement(SearchMatch searchMatch) {
-		IJavaScriptElement element = super.getElement(searchMatch);
-		IJavaScriptElement localElement = null;
-		TypeReferenceMatch typeRefMatch = (TypeReferenceMatch) match;
-		localElement = typeRefMatch.getLocalElement();
-		if (localElement != null) {
-			return localElement;
-		}
-		return element;
-	}
-	protected void writeLine() throws CoreException {
-		super.writeLine();
-		TypeReferenceMatch typeRefMatch = (TypeReferenceMatch) this.match;
-		IJavaScriptElement[] others = typeRefMatch.getOtherElements();
-		int length = others==null ? 0 : others.length;
-		if (length > 0) {
-			line.append("+[");
-			for (int i=0; i<length; i++) {
-				IJavaScriptElement other = others[i];
-				if (i>0) line.append(',');
-				line.append(other.getElementName());
-			}
-			line.append(']');
-		}
-	}
-}
-
-IJavaScriptSearchScope getJavaSearchScopeBugs() {
-	return SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("JavaSearchBugs")});
-}
-IJavaScriptSearchScope getJavaSearchScopeBugs(String packageName, boolean addSubpackages) throws JavaScriptModelException {
-	if (packageName == null) return getJavaSearchScopeBugs();
-	return getJavaSearchPackageScope("JavaSearchBugs", packageName, addSubpackages);
-}
-public IJavaScriptUnit getWorkingCopy(String path, String source) throws JavaScriptModelException {
-	if (this.wcOwner == null) {
-		this.wcOwner = new WorkingCopyOwner() {};
-	}
-	return getWorkingCopy(path, source, this.wcOwner, null/*don't compute problems*/);
-}
-protected void search(IJavaScriptElement element, int limitTo) throws CoreException {
-	search(element, limitTo, EXACT_RULE, getJavaSearchScopeBugs(), resultCollector);
-}
-protected void search(IJavaScriptElement element, int limitTo, int matchRule) throws CoreException {
-	search(element, limitTo, matchRule, getJavaSearchScopeBugs(), resultCollector);
-}
-protected void search(String patternString, int searchFor, int limitTo) throws CoreException {
-	search(patternString, searchFor, limitTo, EXACT_RULE, getJavaSearchScopeBugs(), resultCollector);
-}
-protected void search(String patternString, int searchFor, int limitTo, int matchRule) throws CoreException {
-	search(patternString, searchFor, limitTo, matchRule, getJavaSearchScopeBugs(), resultCollector);
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#setUpSuite()
- */
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	JAVA_PROJECT = setUpJavaProject("JavaSearchBugs", "1.5");
-//	addLibraryEntry(JAVASCRIPT_PROJECT, "/JavaSearchBugs/lib/b95152.jar", false);
-//	addLibraryEntry(JAVASCRIPT_PROJECT, "/JavaSearchBugs/lib/b123679.jar", false);
-//	addLibraryEntry(JAVASCRIPT_PROJECT, "/JavaSearchBugs/lib/b140156.jar", false);
-//	addLibraryEntry(JAVASCRIPT_PROJECT, "/JavaSearchBugs/lib/b164791.jar", false);
-//	addLibraryEntry(JAVASCRIPT_PROJECT, "/JavaSearchBugs/lib/b166348.jar", false);
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("JavaSearchBugs");
-	super.tearDownSuite();
-}
-protected void setUp () throws Exception {
-	super.setUp();
-	this.resultCollector = new TestCollector();
-	resultCollector.showInsideDoc = false;
-	resultCollector.showAccuracy = true;
-}
-
-/**
- * Bug 41018: Method reference not found
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=41018"
- */
-public void testBug41018() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b41018/A.js",
-		"package b41018;\n" +
-		"public class A {\n" + 
-		"	protected void anotherMethod() {\n" + 
-		"		methodA(null);\n" + 
-		"	}\n" + 
-		"	private Object methodA(ClassB.InnerInterface arg3) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"class ClassB implements InterfaceB {\n" + 
-		"}\n" + 
-		"interface InterfaceB {\n" + 
-		"	interface InnerInterface {\n" + 
-		"	}\n" + 
-		"}\n"
-		);
-	IType type = workingCopies[0].getType("A");
-	IFunction method = type.getFunction("methodA", new String[] { "QClassB.InnerInterface;" });
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b41018/A.java void b41018.A.anotherMethod() [methodA(null)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 70827: [Search] wrong reference match to private method of supertype
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=70827"
- */
-public void testBug70827() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b70827/A.js",
-		"package b70827;\n" + 
-		"class A {\n" + 
-		"	private void privateMethod() {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"class Second extends A {\n" + 
-		"	void call() {\n" + 
-		"		int i= privateMethod();\n" + 
-		"	}\n" + 
-		"	int privateMethod() {\n" + 
-		"		return 1;\n" + 
-		"	}\n" + 
-		"}\n"
-		);
-	IType type = workingCopies[0].getType("A");
-	IFunction method = type.getFunction("privateMethod", new String[] {});
-	search(method, REFERENCES);
-	assertSearchResults(
-		""
-	);
-}
-
-/**
- * Bug 71279: [Search] NPE in TypeReferenceLocator when moving CU with unresolved type reference
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=71279"
- */
-public void testBug71279() throws CoreException {
-	JavaSearchResultCollector result = new JavaSearchResultCollector() {
-	    public void beginReporting() {
-	        results.append("Starting search...");
-        }
-	    public void endReporting() {
-	        results.append("\nDone searching.");
-        }
-	};
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b71279/AA.js",
-		"package b71279;\n" + 
-		"public class AA {\n" + 
-		"	Unknown ref;\n" + 
-		"}\n"
-		);
-	new SearchEngine(workingCopies).searchDeclarationsOfReferencedTypes(workingCopies[0], result, null);
-	assertSearchResults(
-		"Starting search...\n" + 
-		"Done searching.",
-		result);
-}
-
-/**
- * Bug 72866: [search] references to endVisit(FunctionInvocation) reports refs to endVisit(SuperMethodInvocation)
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=72866"
- */
-public void testBug72866() throws CoreException {
-	workingCopies = new IJavaScriptUnit[4];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b72866/A.js",
-		"package b72866;\n" + 
-		"public abstract class A {\n" + 
-		"	public abstract void foo(V v);\n" + 
-		"}\n",
-		owner,
-		true
-		);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b72866/SX.js",
-		"package b72866;\n" + 
-		"public class SX extends A {\n" + 
-		"	public void foo(V v) {\n" + 
-		"	    v.bar(this);\n" + 
-		"	}\n" + 
-		"}\n"	,
-		owner,
-		true);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b72866/V.js",
-		"package b72866;\n" + 
-		"public class V {\n" + 
-		"	void bar(A a) {}\n" + 
-		"	void bar(X x) {}\n" + 
-		"	void bar(SX s) {}\n" + 
-		"}\n"	,
-		owner,
-		true);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b72866/X.js",
-		"package b72866;\n" + 
-		"public class X extends A {\n" + 
-		"	public void foo(V v) {\n" + 
-		"	    v.bar(this);\n" + 
-		"	}\n" + 
-		"}\n"	,
-		owner,
-		true	);
-	IType type = workingCopies[2].getType("V");
-	IFunction method = type.getFunction("bar", new String[] {"QX;"});
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b72866/X.java void b72866.X.foo(V) [bar(this)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 73112: [Search] SearchEngine doesn't find all fields multiple field declarations
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=73112"
- */
-public void testBug73112a() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b73112/A.js",
-		"package b73112;\n" + 
-		"public class A {\n" + 
-		"    int fieldA73112a = 1, fieldA73112b = new Integer(2).intValue(), fieldA73112c = fieldA73112a + fieldA73112b;\n" + 
-		"    int fieldA73112d;\n" + 
-		"    \n" + 
-		"    public void method(){}\n" + 
-		"}\n");
-	// search field references to first multiple field
-	search("fieldA73112*", FIELD, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b73112/A.java b73112.A.fieldA73112a [fieldA73112a] EXACT_MATCH\n" + 
-		"src/b73112/A.java b73112.A.fieldA73112b [fieldA73112b] EXACT_MATCH\n" + 
-		"src/b73112/A.java b73112.A.fieldA73112c [fieldA73112c] EXACT_MATCH\n" + 
-		"src/b73112/A.java b73112.A.fieldA73112c [fieldA73112a] EXACT_MATCH\n" + 
-		"src/b73112/A.java b73112.A.fieldA73112c [fieldA73112b] EXACT_MATCH\n" + 
-		"src/b73112/A.java b73112.A.fieldA73112d [fieldA73112d] EXACT_MATCH"
-	);
-}
-public void testBug73112b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = super.getWorkingCopy("/JavaSearchBugs/src/b73112/B.js",
-		"package b73112;\n" + 
-		"public class B {\n" + 
-		"    int fieldB73112a, fieldB73112b = 10;\n" + 
-		"    int fieldB73112c = fieldB73112a + fieldB73112b, fieldB73112d = fieldB73112c + fieldB73112a, fieldB73112e;\n" + 
-		"    \n" + 
-		"    public void method(){}\n" + 
-		"}\n");
-	// search field references to first multiple field
-	search("fieldB73112*", FIELD, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b73112/B.java b73112.B.fieldB73112a [fieldB73112a] EXACT_MATCH\n" + 
-		"src/b73112/B.java b73112.B.fieldB73112b [fieldB73112b] EXACT_MATCH\n" + 
-		"src/b73112/B.java b73112.B.fieldB73112c [fieldB73112c] EXACT_MATCH\n" + 
-		"src/b73112/B.java b73112.B.fieldB73112c [fieldB73112a] EXACT_MATCH\n" + 
-		"src/b73112/B.java b73112.B.fieldB73112c [fieldB73112b] EXACT_MATCH\n" + 
-		"src/b73112/B.java b73112.B.fieldB73112d [fieldB73112d] EXACT_MATCH\n" + 
-		"src/b73112/B.java b73112.B.fieldB73112d [fieldB73112c] EXACT_MATCH\n" + 
-		"src/b73112/B.java b73112.B.fieldB73112d [fieldB73112a] EXACT_MATCH\n" + 
-		"src/b73112/B.java b73112.B.fieldB73112e [fieldB73112e] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 73336: [1.5][search] Search Engine does not find type references of actual generic type parameters
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=73336"
- */
-public void testBug73336() throws CoreException {
-	workingCopies = new IJavaScriptUnit[6];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b73336/A.js",
-		"package b73336;\n" + 
-		"public class A {}\n",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b73336/AA.js",
-		"package b73336;\n" + 
-		"public class AA extends A {}\n",
-		owner,
-		true);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b73336/B.js",
-		"package b73336;\n" + 
-		"public class B extends X<A, A> {\n" + 
-		"	<T> void foo(T t) {}\n" + 
-		"}\n",
-		owner,
-		true);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b73336/C.js",
-		"package b73336;\n" + 
-		"public class C implements I<A> {\n" + 
-		"	public void foo() {\n" + 
-		"		B b = new B();\n" + 
-		"		b.<A>foo(new A());\n" + 
-		"	}\n" + 
-		"}\n",
-		owner,
-		true	);
-	workingCopies[4] = getWorkingCopy("/JavaSearchBugs/src/b73336/I.js",
-		"package b73336;\n" + 
-		"public interface I<T>  {\n" + 
-		"	public void foo();\n" + 
-		"}\n",
-		owner,
-		true	);
-	workingCopies[5] = getWorkingCopy("/JavaSearchBugs/src/b73336/X.js",
-		"package b73336;\n" + 
-		"public class X<T, U> {\n" + 
-		"	<V> void foo(V v) {}\n" + 
-		"	class Member<T> {\n" + 
-		"		void foo() {}\n" + 
-		"	}\n" + 
-		"}\n",
-		owner,
-		true	);
-	// search for first and second method should both return 2 inaccurate matches
-	IType type = workingCopies[0].getType("A");
-	search(type, REFERENCES); //, getJavaSearchScopeBugs("b73336", false));
-	assertSearchResults(
-		"src/b73336/AA.java b73336.AA [A] EXACT_MATCH\n" + 
-		"src/b73336/B.java b73336.B [A] EXACT_MATCH\n" + 
-		"src/b73336/B.java b73336.B [A] EXACT_MATCH\n" + 
-		"src/b73336/C.java b73336.C [A] EXACT_MATCH\n" + 
-		"src/b73336/C.java void b73336.C.foo() [A] EXACT_MATCH\n" + 
-		"src/b73336/C.java void b73336.C.foo() [A] EXACT_MATCH"
-	);
-}
-public void testBug73336b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[4];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b73336b/A.js",
-		"package b73336b;\n" + 
-		"public class A {}\n",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b73336b/B.js",
-		"package b73336b;\n" + 
-		"public class B extends X<A, A> {\n" + 
-		"}\n",
-		owner,
-		true);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b73336b/C.js",
-		"package b73336b;\n" + 
-		"public class C extends X<A, A>.Member<A> {\n" + 
-		"	public C() {\n" + 
-		"		new X<A, A>().super();\n" + 
-		"	}\n" + 
-		"}\n",
-		owner,
-		true);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b73336b/X.js",
-		"package b73336b;\n" + 
-		"public class X<T, U> {\n" + 
-		"	<V> void foo(V v) {}\n" + 
-		"	class Member<T> {\n" + 
-		"		void foo() {}\n" + 
-		"	}\n" + 
-		"}\n",
-		owner,
-		true	);
-	// search for first and second method should both return 2 inaccurate matches
-	IType type = workingCopies[0].getType("A");
-//	search(type, REFERENCES, getJavaSearchScopeBugs("b73336b", false));
-	search(type, REFERENCES); //, getJavaSearchScopeBugs("b73336", false));
-	assertSearchResults(
-		"src/b73336b/B.java b73336b.B [A] EXACT_MATCH\n" + 
-		"src/b73336b/B.java b73336b.B [A] EXACT_MATCH\n" + 
-		"src/b73336b/C.java b73336b.C [A] EXACT_MATCH\n" + 
-		"src/b73336b/C.java b73336b.C [A] EXACT_MATCH\n" + 
-		"src/b73336b/C.java b73336b.C [A] EXACT_MATCH\n" + 
-		"src/b73336b/C.java b73336b.C() [A] EXACT_MATCH\n" + 
-		"src/b73336b/C.java b73336b.C() [A] EXACT_MATCH"
-	);
-}
-// Verify that no NPE was raised on following case (which produces compiler error)
-public void testBug73336c() throws CoreException {
-	workingCopies = new IJavaScriptUnit[4];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b73336c/A.js",
-		"package b73336c;\n" + 
-		"public class A {}\n",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b73336c/B.js",
-		"package b73336c;\n" + 
-		"public class B extends X<A, A> {\n" + 
-		"}\n",
-		owner,
-		true);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b73336c/C.js",
-		"package b73336c;\n" + 
-		"public class C implements X<A, A>.Interface<A>  {\n" + 
-		"	void bar() {}\n" + 
-		"}\n",
-		owner,
-		true);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b73336c/X.js",
-		"package b73336c;\n" + 
-		"public class X<T, U> {\n" + 
-		"	interface Interface<V> {\n" + 
-		"		void bar();\n" + 
-		"	}\n" + 
-		"}\n",
-		owner,
-		true	);
-	// search for first and second method should both return 2 inaccurate matches
-	IType type = workingCopies[0].getType("A");
-//	search(type, REFERENCES, getJavaSearchScopeBugs("b73336c", false));
-	search(type, REFERENCES); //, getJavaSearchScopeBugs("b73336", false));
-	assertSearchResults(
-		"src/b73336c/B.java b73336c.B [A] EXACT_MATCH\n" + 
-		"src/b73336c/B.java b73336c.B [A] EXACT_MATCH\n" + 
-		"src/b73336c/C.java b73336c.C [A] EXACT_MATCH\n" + 
-		"src/b73336c/C.java b73336c.C [A] EXACT_MATCH\n" + 
-		"src/b73336c/C.java b73336c.C [A] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 73696: searching only works for IJavaScriptSearchConstants.TYPE, but not CLASS or INTERFACE
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=73696"
- */
-public void testBug73696() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b73696/C.js",
-		"package b73696;\n" + 
-		"public class C implements  I {\n" + 
-		"}",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b73696/I.js",
-		"package b73696;\n" + 
-		"public interface I {}\n",
-		owner,
-		true);
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(workingCopies);
-	
-	// Interface declaration
-	TypeDeclarationPattern pattern = new TypeDeclarationPattern(
-		null,
-		null,
-		null,
-		IIndexConstants.INTERFACE_SUFFIX,
-		SearchPattern.R_PATTERN_MATCH
-	);
-	new SearchEngine(new IJavaScriptUnit[] {workingCopies[1]}).search(
-		pattern,
-		new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-		scope,
-		resultCollector,
-		null);
-	// Class declaration
-	pattern = new TypeDeclarationPattern(
-		null,
-		null,
-		null,
-		IIndexConstants.CLASS_SUFFIX,
-		SearchPattern.R_PATTERN_MATCH
-	);
-	new SearchEngine(new IJavaScriptUnit[] {workingCopies[0]}).search(
-		pattern,
-		new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-		scope,
-		resultCollector,
-		null);
-	assertSearchResults(
-		"src/b73696/I.java b73696.I [I] EXACT_MATCH\n" + 
-		"src/b73696/C.java b73696.C [C] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 74776: [Search] Wrong search results for almost identical method
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=74776"
- */
-public void testBug74776() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b74776/A.js",
-		"package b74776;\n" + 
-		"public class A {\n" + 
-		"	/**\n" + 
-		"	 * @deprecated Use {@link #foo(IRegion)} instead\n" + 
-		"	 * @param r\n" + 
-		"	 */\n" + 
-		"	void foo(Region r) {\n" + 
-		"		foo((IRegion)r);\n" + 
-		"	}\n" + 
-		"	void foo(IRegion r) {\n" + 
-		"	}\n" + 
-		"}\n",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b74776/IRegion.js",
-		"package b74776;\n" + 
-		"public interface IRegion {\n" + 
-		"}\n",
-		owner,
-		true);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b74776/Region.js",
-		"package b74776;\n" + 
-		"public class Region implements IRegion {\n" + 
-		"\n" + 
-		"}\n",
-		owner,
-		true);
-	// search method references
-	IType type = workingCopies[0].getType("A");
-	IFunction method = type.getFunction("foo", new String[] { "QRegion;" });
-	search(method, REFERENCES);
-	assertSearchResults("");
-}
-
-/**
- * Bug 75816: [search] correct results are missing in java search
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=75816"
- */
-public void testBug75816() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/test75816.jar", "", "Test.class").getType();
-	IType innerType = type.getType("Inner");
-	IFunction[] methods = innerType.getFunctions();
-	assertEquals("Wrong number of method.", 1, methods.length);
-	search(methods[0], REFERENCES);
-	assertSearchResults(
-		"lib/test75816.jar Test.Inner Test.newInner(java.lang.Object) EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 77093: [search] No references found to method with member type argument
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=77093"
- */
-private void setUpBug77093() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b77093/X.js",
-		"package b77093;\n" + 
-		"public class X {\n" + 
-		"	class Z {\n" + 
-		"	}\n" + 
-		"	Z[][] z_arrays;\n" + 
-		"	X() {\n" + 
-		"		this(new Z[10][]);\n" + 
-		"	}\n" + 
-		"	X(Z[][] arrays) {\n" + 
-		"		z_arrays = arrays;\n" + 
-		"	}\n" + 
-		"	private void foo(Z[] args) {\n" + 
-		"	}\n" + 
-		"	void bar() {\n" + 
-		"		for (int i=0; i<z_arrays.length; i++)\n" + 
-		"			foo(z_arrays[i]);\n" + 
-		"	}\n" + 
-		"}"
-	);
-}
-public void testBug77093constructor() throws CoreException {
-	setUpBug77093();
-	IType type = workingCopies[0].getType("X");
-	IFunction method = type.getFunction("X", new String[] {"[[QZ;"});
-	// Search for constructor declarations and references
-	search(method, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b77093/X.java b77093.X() [this(new Z[10][]);] EXACT_MATCH\n"+
-		"src/b77093/X.java b77093.X(Z[][]) [X] EXACT_MATCH"
-	);
-}
-public void testBug77093field() throws CoreException {
-	setUpBug77093();
-	IType type = workingCopies[0].getType("X");
-	IField field = type.getField("z_arrays");
-	// Search for field declarations and references
-	search(field, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b77093/X.java b77093.X.z_arrays [z_arrays] EXACT_MATCH\n" +
-		"src/b77093/X.java b77093.X(Z[][]) [z_arrays] EXACT_MATCH\n" + 
-		"src/b77093/X.java void b77093.X.bar() [z_arrays] EXACT_MATCH\n" + 
-		"src/b77093/X.java void b77093.X.bar() [z_arrays] EXACT_MATCH"
-	);
-}
-public void testBug77093method() throws CoreException {
-	setUpBug77093();
-	IType type = workingCopies[0].getType("X");
-	IFunction method = type.getFunction("foo", new String[] {"[QZ;"});
-	search(method, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b77093/X.java void b77093.X.foo(Z[]) [foo] EXACT_MATCH\n" +
-		"src/b77093/X.java void b77093.X.bar() [foo(z_arrays[i])] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 77388: [compiler] Reference to constructor includes space after closing parenthesis
- */
-public void testBug77388() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b77388/Test.js",
-		"package b77388;\n" + 
-		"class Test {\n" + 
-		"	Test(int a, int b) {	}\n" + 
-		"	void take(Test mc) { }\n" + 
-		"	void run() {\n" + 
-		"		take( new Test(1, 2) ); // space in \") )\" is in match\n" + 
-		"	}\n" + 
-		"}");
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("Test", new String[] {"I", "I"});
-	// Search for constructor references
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b77388/Test.java void b77388.Test.run() [new Test(1, 2)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 78082: [1.5][search] FieldReferenceMatch in static import should not include qualifier
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=78082"
- */
-public void testBug78082() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b78082/M.js",
-		"package b78082;\n" + 
-		"public class M {\n" + 
-		"	static int VAL=78082;\n" + 
-		"}\n",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b78082/XY.js",
-		"package b78082;\n" + 
-		"import static b78082.M.VAL;\n" + 
-		"public class XY {\n" + 
-		"	double val = VAL;\n" + 
-		"	double val2= b78082.M.VAL;\n" + 
-		"}\n",
-		owner,
-		true);
-	// search field references
-	IType type = workingCopies[0].getType("M");
-	IField field = type.getField("VAL");
-	search(field, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b78082/M.java b78082.M.VAL [VAL] EXACT_MATCH\n" + 
-		"src/b78082/XY.java [VAL] EXACT_MATCH\n" + 
-		"src/b78082/XY.java b78082.XY.val [VAL] EXACT_MATCH\n" + 
-		"src/b78082/XY.java b78082.XY.val2 [VAL] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 79267: [search] Refactoring of static generic member fails partially
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=79267"
- */
-public void testBug79267() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79267/Test.js",
-		"package b79267;\n" + 
-		"public class Test {\n" + 
-		"	private static final X<String, String> BEFORE	= new X<String, String>(4);\n" + 
-		"\n" + 
-		"	static {\n" + 
-		"		BEFORE.put(\"key1\",\"value1\");\n" + 
-		"		BEFORE.put(\"key2\",\"value2\");\n" + 
-		"	}\n" + 
-		"	\n" + 
-		"	private static final X<Y, Object>	objectToPrimitiveMap	= new X<Y, Object>(8);\n" + 
-		"\n" + 
-		"	static {\n" + 
-		"		objectToPrimitiveMap.put(new Y<Object>(new Object()), new Object());\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"\n" + 
-		"class X<T, U> {\n" + 
-		"	X(int x) {}\n" + 
-		"	void put(T t, U u) {}\n" + 
-		"}\n" + 
-		"\n" + 
-		"class Y<T> {\n" + 
-		"	Y(T t) {}\n" + 
-		"}\n");
-	// search field references
-	IType type = workingCopies[0].getType("Test");
-	IField field = type.getField("BEFORE");
-	search(field, REFERENCES);
-	field = type.getField("objectToPrimitiveMap");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/b79267/Test.java b79267.Test.static {} [BEFORE] EXACT_MATCH\n" + 
-		"src/b79267/Test.java b79267.Test.static {} [BEFORE] EXACT_MATCH\n" + 
-		"src/b79267/Test.java b79267.Test.static {} [objectToPrimitiveMap] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 79378: [search] IOOBE when inlining a method
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=79378"
- */
-public void testBug79378() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79378/A.js",
-		"package b79378;\n" + 
-		"public class Test {\n" + 
-		"	void foo79378(String s, RuntimeException[] exceptions) {}\n" + 
-		"	void foo79378(RuntimeException[] exceptions) {}\n" + 
-		"	void call() {\n" + 
-		"		String s= null; \n" + 
-		"		Exception[] exceptions= null;\n" + 
-		"		foo79378(s, exceptions);\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IFunction[] methods = workingCopies[0].getType("Test").getFunctions();
-	assertEquals("Invalid number of methods", 3, methods.length);
-	search(methods[0], REFERENCES);
-	assertSearchResults(
-		"src/b79378/A.java void b79378.Test.call() [foo79378(s, exceptions)] POTENTIAL_MATCH"
-	);
-}
-public void testBug79378b() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79378/A.js",
-		"package b79378;\n" + 
-		"public class Test {\n" + 
-		"	void foo79378(String s, RuntimeException[] exceptions) {}\n" + 
-		"	void foo79378(RuntimeException[] exceptions) {}\n" + 
-		"	void call() {\n" + 
-		"		String s= null; \n" + 
-		"		Exception[] exceptions= null;\n" + 
-		"		foo79378(s, exceptions);\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IFunction[] methods = workingCopies[0].getType("Test").getFunctions();
-	assertEquals("Invalid number of methods", 3, methods.length);
-	search(methods[1], REFERENCES);
-	assertSearchResults("");
-}
-
-/**
- * Bug 79803: [1.5][search] Search for references to type A reports match for type variable A
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=79803"
- */
-public void testBug79803() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79803/A.js",
-		"package b79803;\n" + 
-		"class A<A> {\n" + 
-		"    A a;\n" + 
-		"    b79803.A pa= new b79803.A();\n" + 
-		"}\n"	
-	);
-	IType type = workingCopies[0].getType("A");
-	search(type, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b79803/A.java b79803.A.pa [b79803.A] EXACT_MATCH\n" + 
-		"src/b79803/A.java b79803.A.pa [b79803.A] EXACT_MATCH"
-	);
-}
-public void testBug79803string() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79803/A.js",
-		"package b79803;\n" + 
-		"class A<A> {\n" + 
-		"    A a;\n" + 
-		"    b79803.A pa= new b79803.A();\n" + 
-		"}\n"	
-	);
-	search("A", TYPE, REFERENCES);
-	assertSearchResults(
-		"src/b79803/A.java b79803.A.a [A] EXACT_MATCH\n" + 
-		"src/b79803/A.java b79803.A.pa [A] EXACT_MATCH\n" + 
-		"src/b79803/A.java b79803.A.pa [A] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 79860: [1.5][search] Search doesn't find type reference in type parameter bound
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=79860"
- */
-public void testBug79860() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79860/X.js",
-		"package b79860;\n" + 
-		"public class X<T extends A> { }\n" + 
-		"class A { }",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b79860/Y.js",
-		"package b79860;\n" + 
-		"public class Y<T extends B&I1&I2&I3> { }\n" + 
-		"class B { }\n" + 
-		"interface I1 {}\n" + 
-		"interface I2 {}\n" + 
-		"interface I3 {}\n",
-		owner,
-		true);
-	IType type = workingCopies[0].getType("A");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b79860/X.java b79860.X [A] EXACT_MATCH"
-	);
-}
-public void testBug79860string() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79860/X.js",
-		"package b79860;\n" + 
-		"public class X<T extends A> { }\n" + 
-		"class A { }",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b79860/Y.js",
-		"package b79860;\n" + 
-		"public class Y<T extends B&I1&I2&I3> { }\n" + 
-		"class B { }\n" + 
-		"interface I1 {}\n" + 
-		"interface I2 {}\n" + 
-		"interface I3 {}\n",
-		owner,
-		true);
-	search("I?", TYPE, REFERENCES);
-	assertSearchResults(
-		"src/b79860/Y.java b79860.Y [I1] EXACT_MATCH\n" + 
-		"src/b79860/Y.java b79860.Y [I2] EXACT_MATCH\n" + 
-		"src/b79860/Y.java b79860.Y [I3] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 79990: [1.5][search] Search doesn't find type reference in type parameter bound
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=79990"
- */
-private void setUpBug79990() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79990/Test.js",
-		"package b79990;\n" + 
-		"class Test<T> {\n" + 
-		"    public void first(Exception num) {}\n" + 
-		"    public void second(T t) {}\n" + 
-		"}\n" + 
-		"class Sub extends Test<Exception> {\n" + 
-		"    public void first(Exception num) {}\n" + 
-		"    public void second(Exception t) {}\n" + 
-		"}\n"
-	);}
-public void testBug79990() throws CoreException {
-	setUpBug79990();
-	IFunction method = workingCopies[0].getType("Test").getFunctions()[0];
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"src/b79990/Test.java void b79990.Test.first(Exception) [first] EXACT_MATCH\n" + 
-		"src/b79990/Test.java void b79990.Sub.first(Exception) [first] EXACT_MATCH"
-	);
-}
-public void testBug79990b() throws CoreException {
-	setUpBug79990();
-	IFunction method = workingCopies[0].getType("Test").getFunctions()[1];
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"src/b79990/Test.java void b79990.Test.second(T) [second] EXACT_MATCH\n" + 
-		"src/b79990/Test.java void b79990.Sub.second(Exception) [second] EXACT_MATCH"
-	);
-}
-public void testBug79990c() throws CoreException {
-	setUpBug79990();
-	IFunction method = workingCopies[0].getType("Test").getFunctions()[1];
-	search(method, DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b79990/Test.java void b79990.Test.second(T) [second] EXACT_MATCH\n" + 
-		"src/b79990/Test.java void b79990.Sub.second(Exception) [second] EXACT_MATCH"
-	);
-}
-public void testBug79990d() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b79990/Test.js",
-		"package b79990;\n" + 
-		"public class Test<T> {\n" + 
-		"	void methodT(T t) {}\n" + 
-		"}\n" + 
-		"class Sub<X> extends Test<X> {\n" + 
-		"	void methodT(X x) {} // overrides Super#methodT(T)\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("Test").getFunctions()[0];
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"src/b79990/Test.java void b79990.Test.methodT(T) [methodT] EXACT_MATCH\n" + 
-		"src/b79990/Test.java void b79990.Sub.methodT(X) [methodT] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 80084: [1.5][search]Rename field fails on field based on parameterized type with member type parameter
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=80084"
- */
-public void testBug80084() throws CoreException, JavaScriptModelException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b80084/Test.js",
-		"package b80084;\n" + 
-		"class List<T> {}\n" + 
-		"public class Test {\n" + 
-		"  void foo(List<Exception> le) {}\n" + 
-		"  void bar() {\n" + 
-		"    List<Exception> le = new List<Exception>();\n" + 
-		"    foo(le);\n" + 
-		"  }\n" + 
-		"}\n"
-		);
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QList<QException;>;" } );
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b80084/Test.java void b80084.Test.bar() [foo(le)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 80194: [1.5][search]Rename field fails on field based on parameterized type with member type parameter
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=80194"
- */
-private void setUpBug80194() throws CoreException, JavaScriptModelException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b80194/Test.js",
-		"package b80194;\n" + 
-		"interface Map<K, V> {}\n" + 
-		"class HashMap<K, V> implements Map {}\n" + 
-		"public class Test {\n" + 
-		"	void callDoSomething() {\n" + 
-		"		final Map<String, Object> map = new HashMap<String, Object>();\n" + 
-		"		doSomething(map);\n" + 
-		"		doSomething(map, true);\n" + 
-		"		doSomething(true);\n" + 
-		"	}\n" + 
-		"	void doSomething(final Map<String, Object> map) {}\n" + 
-		"	void doSomething(final Map<String, Object> map, final boolean flag) {}\n" + 
-		"	void doSomething(final boolean flag) {}\n" + 
-		"}\n"
-	);
-}
-public void testBug80194() throws CoreException, JavaScriptModelException {
-	setUpBug80194();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("doSomething", new String[] { "QMap<QString;QObject;>;" } );
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b80194/Test.java void b80194.Test.callDoSomething() [doSomething(map)] EXACT_MATCH"
-	);
-}
-public void testBug80194b() throws CoreException, JavaScriptModelException {
-	setUpBug80194();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("doSomething", new String[] { "QMap<QString;QObject;>;", "Z" } );
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b80194/Test.java void b80194.Test.callDoSomething() [doSomething(map, true)] EXACT_MATCH"
-	);
-}
-public void testBug80194string1() throws CoreException, JavaScriptModelException {
-	setUpBug80194();
-	search("doSomething(boolean)", METHOD, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b80194/Test.java void b80194.Test.callDoSomething() [doSomething(map)] EXACT_MATCH\n" + 
-		"src/b80194/Test.java void b80194.Test.callDoSomething() [doSomething(true)] EXACT_MATCH\n" + 
-		"src/b80194/Test.java void b80194.Test.doSomething(boolean) [doSomething] EXACT_MATCH"
-	);
-}
-public void testBug80194string2() throws CoreException, JavaScriptModelException {
-	setUpBug80194();
-	search("doSomething(Map<String,Object>)", METHOD, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b80194/Test.java void b80194.Test.callDoSomething() [doSomething(map)] EXACT_MATCH\n" + 
-		"src/b80194/Test.java void b80194.Test.callDoSomething() [doSomething(true)] EXACT_MATCH\n" + 
-		"src/b80194/Test.java void b80194.Test.doSomething(Map<String,Object>) [doSomething] EXACT_MATCH"
-	);
-}
-public void testBug80194string3() throws CoreException, JavaScriptModelException {
-	setUpBug80194();
-	search("doSomething(Map<String,Object>,boolean)", METHOD, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b80194/Test.java void b80194.Test.callDoSomething() [doSomething(map, true)] EXACT_MATCH\n" + 
-		"src/b80194/Test.java void b80194.Test.doSomething(Map<String,Object>, boolean) [doSomething] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 80223: [search] Declaration search doesn't consider visibility to determine overriding methods
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=80223"
- */
-public void testBug80223() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b80223/a/A.js",
-		"package b80223.a;\n" + 
-		"public class A {\n" + 
-		"    void m() {}\n" + 
-		"}",
-		owner,
-		true);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b80223/b/B.js",
-		"package b80223.b;\n" + 
-		"public class B extends b80223.a.A {\n" + 
-		"    void m() {}\n" + 
-		"}",
-		owner,
-		true);
-	// search for method declaration should find only A match
-	IType type = workingCopies[0].getType("A");
-	IFunction method = type.getFunction("m", new String[0]);
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"src/b80223/a/A.java void b80223.a.A.m() [m] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 80264: [search] Search for method declarations in workspace, disregarding declaring type
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=80264"
- * 
- * Following tests also verify
- * Bug 87778: [search] doesn't find all declarations of method with covariant return type
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=87778"
- */
-// Methods
-private void setUpBug80264_Methods() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b80264/Methods.js",
-		"package b80264;\n" + 
-		"class Methods {\n" + 
-		"    Methods stable() { return null; }\n" + 
-		"    Methods covariant() { return null; }\n" + 
-		"}\n" + 
-		"class MethodsSub extends Methods {\n" + 
-		"    Methods stable() { return null; }\n" + 
-		"    MethodsSub covariant() { return null; }\n" + 
-		"}\n" + 
-		"class MethodsOther {\n" + 
-		"    Methods stable() { return null; }\n" + 
-		"    Methods covariant() { return null; }\n" + 
-		"}\n"
-	);
-}
-public void testBug80264_Methods() throws CoreException {
-	setUpBug80264_Methods();
-	IType type = workingCopies[0].getType("Methods");
-	IFunction[] methods = type.getFunctions();
-	search(methods[0], DECLARATIONS);
-	search(methods[1], DECLARATIONS);
-	assertSearchResults(
-		"src/b80264/Methods.java Methods b80264.Methods.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.MethodsSub.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.Methods.covariant() [covariant] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java MethodsSub b80264.MethodsSub.covariant() [covariant] EXACT_MATCH"
-	);
-}
-public void testBug80264_MethodsIgnoreDeclaringType() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Methods();
-	IType type = workingCopies[0].getType("Methods");
-	IFunction[] methods = type.getFunctions();
-	search(methods[0], DECLARATIONS|IGNORE_DECLARING_TYPE);
-	search(methods[1], DECLARATIONS|IGNORE_DECLARING_TYPE);
-	assertSearchResults(
-		"src/b80264/Methods.java Methods b80264.Methods.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.MethodsSub.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.MethodsOther.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.Methods.covariant() [covariant] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.MethodsOther.covariant() [covariant] EXACT_MATCH"
-	);
-}
-public void testBug80264_MethodsIgnoreReturnType() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Methods();
-	IType type = workingCopies[0].getType("Methods");
-	IFunction[] methods = type.getFunctions();
-	search(methods[0], DECLARATIONS|IGNORE_RETURN_TYPE);
-	search(methods[1], DECLARATIONS|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b80264/Methods.java Methods b80264.Methods.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.MethodsSub.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.Methods.covariant() [covariant] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java MethodsSub b80264.MethodsSub.covariant() [covariant] EXACT_MATCH"
-	);
-}
-public void testBug80264_MethodsIgnoreBothTypes() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Methods();
-	IType type = workingCopies[0].getType("Methods");
-	IFunction[] methods = type.getFunctions();
-	search(methods[0], DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	search(methods[1], DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b80264/Methods.java Methods b80264.Methods.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.MethodsSub.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.MethodsOther.stable() [stable] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.Methods.covariant() [covariant] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java MethodsSub b80264.MethodsSub.covariant() [covariant] EXACT_MATCH\n" + 
-		"src/b80264/Methods.java Methods b80264.MethodsOther.covariant() [covariant] EXACT_MATCH"
-	);
-}
-// Classes
-private void setUpBug80264_Classes() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b80264/Classes.js",
-		"package b80264;\n" + 
-		"class Classes {\n" + 
-		"    class Inner {}\n" + 
-		"}\n" + 
-		"class ClassesSub extends Classes {\n" + 
-		"    class Inner {}\n" + 
-		"}\n" + 
-		"class ClassesOther {\n" + 
-		"    class Inner {}\n" + 
-		"}\n"
-	);
-}
-public void testBug80264_Classes() throws CoreException {
-	setUpBug80264_Classes();
-	IType type = workingCopies[0].getType("Classes").getType("Inner");
-	search(type, DECLARATIONS);
-	assertSearchResults(
-		"src/b80264/Classes.java b80264.Classes$Inner [Inner] EXACT_MATCH"
-	);
-}
-public void testBug80264_ClassesIgnoreDeclaringType() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Classes();
-	IType type = workingCopies[0].getType("Classes").getType("Inner");
-	search(type, DECLARATIONS|IGNORE_DECLARING_TYPE);
-	assertSearchResults(
-		"src/b80264/Classes.java b80264.Classes$Inner [Inner] EXACT_MATCH\n" + 
-		"src/b80264/Classes.java b80264.ClassesSub$Inner [Inner] EXACT_MATCH\n" + 
-		"src/b80264/Classes.java b80264.ClassesOther$Inner [Inner] EXACT_MATCH"
-	);
-}
-public void testBug80264_ClassesIgnoreReturnType() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Classes();
-	IType type = workingCopies[0].getType("Classes").getType("Inner");
-	search(type, DECLARATIONS|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b80264/Classes.java b80264.Classes$Inner [Inner] EXACT_MATCH"
-	);
-}
-public void testBug80264_ClassesIgnoreTypes() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Classes();
-	IType type = workingCopies[0].getType("Classes").getType("Inner");
-	search(type, DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b80264/Classes.java b80264.Classes$Inner [Inner] EXACT_MATCH\n" + 
-		"src/b80264/Classes.java b80264.ClassesSub$Inner [Inner] EXACT_MATCH\n" + 
-		"src/b80264/Classes.java b80264.ClassesOther$Inner [Inner] EXACT_MATCH"
-	);
-}
-// Fields
-private void setUpBug80264_Fields() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b80264/Fields.js",
-		"package b80264;\n" + 
-		"class Fields {\n" + 
-		"    Fields field1;\n" + 
-		"    Fields field2;\n" + 
-		"}\n" + 
-		"class FieldsSub extends Fields {\n" + 
-		"    Fields field1;\n" + 
-		"    FieldsSub field2;\n" + 
-		"}\n" + 
-		"class FieldsOther {\n" + 
-		"    Fields field1;\n" + 
-		"    Fields field2;\n" + 
-		"}\n"
-	);
-}
-public void testBug80264_Fields() throws CoreException {
-	setUpBug80264_Fields();
-	IType type = workingCopies[0].getType("Fields");
-	IField[] fields = type.getFields();
-	search(fields[0], DECLARATIONS);
-	search(fields[1], DECLARATIONS);
-	assertSearchResults(
-		"src/b80264/Fields.java b80264.Fields.field1 [field1] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.Fields.field2 [field2] EXACT_MATCH"
-	);
-}
-public void testBug80264_FieldsIgnoreDeclaringType() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Fields();
-	IType type = workingCopies[0].getType("Fields");
-	IField[] fields = type.getFields();
-	search(fields[0], DECLARATIONS|IGNORE_DECLARING_TYPE);
-	search(fields[1], DECLARATIONS|IGNORE_DECLARING_TYPE);
-	assertSearchResults(
-		"src/b80264/Fields.java b80264.Fields.field1 [field1] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.FieldsSub.field1 [field1] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.FieldsOther.field1 [field1] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.Fields.field2 [field2] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.FieldsOther.field2 [field2] EXACT_MATCH"
-	);
-}
-public void testBug80264_FieldsIgnoreReturnType() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Fields();
-	IType type = workingCopies[0].getType("Fields");
-	IField[] fields = type.getFields();
-	search(fields[0], DECLARATIONS|IGNORE_RETURN_TYPE);
-	search(fields[1], DECLARATIONS|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b80264/Fields.java b80264.Fields.field1 [field1] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.Fields.field2 [field2] EXACT_MATCH"
-	);
-}
-public void testBug80264_FieldsIgnoreBothTypes() throws CoreException, JavaScriptModelException {
-	setUpBug80264_Fields();
-	IType type = workingCopies[0].getType("Fields");
-	IField[] fields = type.getFields();
-	search(fields[0], DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	search(fields[1], DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b80264/Fields.java b80264.Fields.field1 [field1] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.FieldsSub.field1 [field1] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.FieldsOther.field1 [field1] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.Fields.field2 [field2] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.FieldsSub.field2 [field2] EXACT_MATCH\n" + 
-		"src/b80264/Fields.java b80264.FieldsOther.field2 [field2] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 80890: [search] Strange search engine behaviour
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=80890"
- */
-public void testBug80890() throws CoreException, JavaScriptModelException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b80890/A.js",
-		"package b80890;\n" + 
-		"public class A {\n" + 
-		"	protected void foo(Exception e) {}\n" + 
-		"	protected void foo(String s) {}\n" + 
-		"}\n" + 
-		"class B1 extends A {\n" + 
-		"	public void bar1() {\n" + 
-		"		foo(null);\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"class B2 extends A {\n" + 
-		"	public void bar2() {\n" + 
-		"		foo(null);\n" + 
-		"	}\n" + 
-		"}\n"
-		);
-	// search for first and second method should both return 2 inaccurate matches
-	IType type = workingCopies[0].getType("A");
-	IFunction method = type.getFunctions()[0];
-	search(method, REFERENCES);
-	method = type.getFunctions()[1];
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b80890/A.java void b80890.B1.bar1() [foo(null)] POTENTIAL_MATCH\n" + 
-		"src/b80890/A.java void b80890.B2.bar2() [foo(null)] POTENTIAL_MATCH\n" + 
-		"src/b80890/A.java void b80890.B1.bar1() [foo(null)] POTENTIAL_MATCH\n" + 
-		"src/b80890/A.java void b80890.B2.bar2() [foo(null)] POTENTIAL_MATCH"
-	);
-}
-
-/**
- * Bug 80918: [1.5][search] ClassCastException when searching for references to binary type
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=80918"
- */
-public void testBug80918() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", getExternalJCLPathString("1.5"), "java.lang", "Exception.class").getType();
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptProject[] {getJavaProject("JavaSearchBugs")}, IJavaScriptSearchScope.SOURCES);
-	search(type, REFERENCES, SearchPattern.R_CASE_SENSITIVE|SearchPattern.R_ERASURE_MATCH, scope);
-	assertSearchResults(
-		"" // do not expect to find anything, just verify that no CCE happens
-	);
-}
-
-/**
- * Bug 81084: [1.5][search]Rename field fails on field based on parameterized type with member type parameter
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=81084"
- */
-public void testBug81084a() throws CoreException, JavaScriptModelException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b81084a/Test.js",
-		"package b81084a;\n" + 
-		"class List<E> {}\n" + 
-		"public class Test {\n" + 
-		"	class Element{}\n" + 
-		"	static class Inner {\n" + 
-		"		private final List<Element> fList1;\n" + 
-		"		private final List<Test.Element> fList2;\n" + 
-		"		public Inner(List<Element> list) {\n" + 
-		"			fList1 = list;\n" + 
-		"			fList2 = list;\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("Test").getType("Inner");
-	IField field1 = type.getField("fList1");
-	search(field1, REFERENCES);
-	IField field2 = type.getField("fList2");
-	search(field2, REFERENCES);
-	assertSearchResults(
-		"src/b81084a/Test.java b81084a.Test$Inner(List<Element>) [fList1] EXACT_MATCH\n" + 
-		"src/b81084a/Test.java b81084a.Test$Inner(List<Element>) [fList2] EXACT_MATCH"
-	);
-}
-public void testBug81084string() throws CoreException, JavaScriptModelException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b81084a/Test.js",
-		"package b81084a;\n" + 
-		"class List<E> {}\n" + 
-		"public class Test {\n" + 
-		"	class Element{}\n" + 
-		"	static class Inner {\n" + 
-		"		private final List<Element> fList1;\n" + 
-		"		private final List<Test.Element> fList2;\n" + 
-		"		public Inner(List<Element> list) {\n" + 
-		"			fList1 = list;\n" + 
-		"			fList2 = list;\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	search("fList1", FIELD, REFERENCES);
-	search("fList2", FIELD, REFERENCES);
-	assertSearchResults(
-		"src/b81084a/Test.java b81084a.Test$Inner(List<Element>) [fList1] EXACT_MATCH\n" + 
-		"src/b81084a/Test.java b81084a.Test$Inner(List<Element>) [fList2] EXACT_MATCH"
-	);
-}
-public void testBug81084b() throws CoreException, JavaScriptModelException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b81084b/Test.js",
-		"package b81084b;\n" + 
-		"class List<E> {}\n" + 
-		"public class Test {\n" + 
-		"	class Element{}\n" + 
-		"	static class Inner {\n" + 
-		"		private final List<? extends Element> fListb1;\n" + 
-		"		private final List<? extends Test.Element> fListb2;\n" + 
-		"		public Inner(List<Element> list) {\n" + 
-		"			fListb1 = list;\n" + 
-		"			fListb2 = list;\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-		);
-	// search element patterns
-	IType type = workingCopies[0].getType("Test").getType("Inner");
-	IField field1 = type.getField("fListb1");
-	search(field1, REFERENCES);
-	IField field2 = type.getField("fListb2");
-	search(field2, REFERENCES);
-	assertSearchResults(
-		"src/b81084b/Test.java b81084b.Test$Inner(List<Element>) [fListb1] EXACT_MATCH\n" + 
-		"src/b81084b/Test.java b81084b.Test$Inner(List<Element>) [fListb2] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 81556: [search] correct results are missing in java search
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=81556"
- */
-public void testBug81556() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b81556.a", "X81556.js");
-	IType type = unit.getType("X81556");
-	IFunction method = type.getFunction("foo", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b81556/a/A81556.java void b81556.a.A81556.bar(XX81556) [foo()] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 82088: [search][javadoc] Method parameter types references not found in @see/@link tags
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=82088"
- */
-public void testBug82088method() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b82088/m/Test.js",
-		"package b82088.m;\n" +
-		"/**\n" + 
-		" * @see #setA(A)\n" + 
-		" */\n" + 
-		"public class Test {\n" + 
-		"	A a;\n" + 
-		"	public void setA(A a) {\n" + 
-		"		this.a = a;\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"class A {}\n"
-		);
-	IType type = workingCopies[0].getType("A");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b82088/m/Test.java b82088.m.Test [A] EXACT_MATCH\n" + 
-		"src/b82088/m/Test.java b82088.m.Test.a [A] EXACT_MATCH\n" + 
-		"src/b82088/m/Test.java void b82088.m.Test.setA(A) [A] EXACT_MATCH"
-	);
-}
-public void testBug82088constructor() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b82088/c/Test.js",
-		"package b82088.c;\n" +
-		"/**\n" + 
-		" * @see #Test(A)\n" + 
-		" */\n" + 
-		"public class Test {\n" + 
-		"	A a;\n" + 
-		"	Test(A a) {\n" + 
-		"		this.a = a;\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"class A {}\n"
-		);
-	IType type = workingCopies[0].getType("A");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b82088/c/Test.java b82088.c.Test [A] EXACT_MATCH\n" + 
-		"src/b82088/c/Test.java b82088.c.Test.a [A] EXACT_MATCH\n" + 
-		"src/b82088/c/Test.java b82088.c.Test(A) [A] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 82208: [1.5][search][annot] Search for annotations misses references in default and values constructs
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=82208"
- */
-private void setUpBug82208() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b82208/Test.js",
-		"package b82208;\n" + 
-		"interface B82208_I {}\n" + 
-		"enum B82208_E {}\n" + 
-		"@interface B82208_A {}\n" + 
-		"public class B82208 {}\n"
-	);
-}
-public void testBug82208_TYPE() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug82208();
-	search("B82208*", TYPE, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b82208/Test.java b82208.B82208_I [B82208_I] EXACT_MATCH\n" + 
-		"src/b82208/Test.java b82208.B82208_E [B82208_E] EXACT_MATCH\n" + 
-		"src/b82208/Test.java b82208.B82208_A [B82208_A] EXACT_MATCH\n" + 
-		"src/b82208/Test.java b82208.B82208 [B82208] EXACT_MATCH"
-	);
-}
-public void testBug82208_CLASS() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug82208();
-	search("B82208*", CLASS, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b82208/Test.java b82208.B82208 [B82208] EXACT_MATCH"
-	);
-}
-public void testBug82208_INTERFACE() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug82208();
-	search("B82208*", INTERFACE, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b82208/Test.java b82208.B82208_I [B82208_I] EXACT_MATCH"
-	);
-}
-public void testBug82208_ENUM() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug82208();
-	search("B82208*", ENUM, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b82208/Test.java b82208.B82208_E [B82208_E] EXACT_MATCH"
-	);
-}
-public void testBug82208_ANNOTATION_TYPE() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug82208();
-	search("B82208*", ANNOTATION_TYPE, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b82208/Test.java b82208.B82208_A [B82208_A] EXACT_MATCH"
-	);
-}
-public void testBug82208_CLASS_AND_INTERFACE() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug82208();
-	search("B82208*", CLASS_AND_INTERFACE, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b82208/Test.java b82208.B82208_I [B82208_I] EXACT_MATCH\n" + 
-		"src/b82208/Test.java b82208.B82208 [B82208] EXACT_MATCH"
-	);
-}
-public void testBug82208_CLASS_AND_ENUMERATION() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug82208();
-	search("B82208*", CLASS_AND_ENUM, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b82208/Test.java b82208.B82208_E [B82208_E] EXACT_MATCH\n" + 
-		"src/b82208/Test.java b82208.B82208 [B82208] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 82673: [1.5][search][annot] Search for annotations misses references in default and values constructs
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83012"
- */
-public void testBug82673() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b82673/Test.js",
-		"package b82673;\n" + 
-		"public class Test {\n" + 
-		"    void test1() {\n" + 
-		"        class Dummy {};\n" + 
-		"        Dummy d = new Dummy();\n" + 
-		"		new X();\n" + 
-		"    }\n" + 
-		"    \n" + 
-		"    void test2() {\n" + 
-		"        class Dummy {};\n" + 
-		"        Dummy d = new Dummy();\n" + 
-		"		new Y();\n" + 
-		"    }\n" + 
-		"}\n" + 
-		"class X {}\n" + 
-		"class Y {}\n"
-	);
-	IType type = selectType(workingCopies[0], "Test").getFunction("test1", new String[0]).getType("Dummy", 1);
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b82673/Test.java void b82673.Test.test1() [Dummy] EXACT_MATCH\n" + 
-		"src/b82673/Test.java void b82673.Test.test1() [Dummy] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 83012: [1.5][search][annot] Search for annotations misses references in default and values constructs
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83012"
- */
-public void testBug83012() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83012/Test.js",
-		"package b83012;\n" + 
-		"@interface A {\n" + 
-		"    String value() default \"\";\n" + 
-		"}\n" + 
-		"@interface Main {\n" + 
-		"	A first() default @A(\"Void\");\n" + 
-		"	A second();\n" + 
-		"}\n" + 
-		"\n" + 
-		"@Main(first=@A(\"\"), second=@A(\"2\"))\n" + 
-		"public class Test {\n" + 
-		"}\n"
-	);
-	IType type = selectType(workingCopies[0], "A");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b83012/Test.java A b83012.Main.first() [A] EXACT_MATCH\n" + 
-		"src/b83012/Test.java A b83012.Main.first() [A] EXACT_MATCH\n" + 
-		"src/b83012/Test.java A b83012.Main.second() [A] EXACT_MATCH\n" + 
-		"src/b83012/Test.java b83012.Test [A] EXACT_MATCH\n" + 
-		"src/b83012/Test.java b83012.Test [A] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 83230: [1.5][search][annot] search for annotation elements does not seem to be implemented yet
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83230"
- */
-private void setUpBug83230_Explicit() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83230/Test.js",
-		"package b83230;\n" + 
-		"@interface Author {\n" + 
-		"	String[] authorName() default \"FREDERIC\";\n" + 
-		"	int[] age();\n" + 
-		"	int ageMin = 20;\n" + 
-		"	@interface Surname {}\n" + 
-		"	class Address {\n" + 
-		"		String city;\n" + 
-		"		public void foo(Object obj) {}\n" + 
-		"	}\n" + 
-		"}\n" +
-		"\n" +
-		"@Author(authorName=\"FREDERIC\", age=41)\n" + 
-		"public class Test {\n" + 
-		"	@Author(authorName={\"FREDERIC\", \"JEROME\"}, age={41, 35} )\n" + 
-		"	Test() {}\n" + 
-		"	@Author(authorName=\"PHILIPPE\", age=37)\n" + 
-		"	void foo() {\n" + 
-		"		@Author(authorName=\"FREDERIC\", age=41)\n" + 
-		"		final Object obj = new Object() {};\n" + 
-		"		@Author(authorName=\"FREDERIC\", age=41)\n" + 
-		"		class Local {\n" + 
-		"			@Author(authorName=\"FREDERIC\", age=41)\n" + 
-		"			String foo() {\n" + 
-		"				Author.Address address = new Author.Address();\n" + 
-		"				address.foo(obj);\n" + 
-		"				return address.city;\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	@Author(authorName=\"DAVID\", age=28)\n" + 
-		"	int min = Author.ageMin;\n" + 
-		"}\n"
-	);
-}
-public void testBug83230_Explicit() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83230_Explicit();
-	IFunction method = selectMethod(workingCopies[0], "authorName");
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b83230/Test.java b83230.Test [authorName] EXACT_MATCH\n" + 
-		"src/b83230/Test.java b83230.Test.min [authorName] EXACT_MATCH\n" + 
-		"src/b83230/Test.java b83230.Test() [authorName] EXACT_MATCH\n" + 
-		"src/b83230/Test.java void b83230.Test.foo():Local#1 [authorName] EXACT_MATCH\n" + 
-		"src/b83230/Test.java String void b83230.Test.foo():Local#1.foo() [authorName] EXACT_MATCH\n" + 
-		"src/b83230/Test.java void b83230.Test.foo() [authorName] EXACT_MATCH\n" + 
-		"src/b83230/Test.java void b83230.Test.foo() [authorName] EXACT_MATCH"
-	);
-}
-public void testBug83230_Explicit01() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83230_Explicit();
-	IFunction method = selectMethod(workingCopies[0], "authorName");
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"src/b83230/Test.java String[] b83230.Author.authorName() [authorName] EXACT_MATCH"
-	);
-}
-public void testBug83230_Explicit02() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83230_Explicit();
-	IType type = selectType(workingCopies[0], "Address");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b83230/Test.java String void b83230.Test.foo():Local#1.foo() [Author.Address] EXACT_MATCH\n" + 
-		"src/b83230/Test.java String void b83230.Test.foo():Local#1.foo() [Author.Address] EXACT_MATCH"
-	);
-}
-public void testBug83230_Explicit03() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83230_Explicit();
-	IFunction method = selectMethod(workingCopies[0], "foo");
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b83230/Test.java String void b83230.Test.foo():Local#1.foo() [foo(obj)] EXACT_MATCH"
-	);
-}
-public void testBug83230_Explicit04() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83230_Explicit();
-	IField field = selectField(workingCopies[0], "city");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/b83230/Test.java String void b83230.Test.foo():Local#1.foo() [city] EXACT_MATCH"
-	);
-}
-public void testBug83230_Explicit05() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83230_Explicit();
-	IField field = selectField(workingCopies[0], "ageMin");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/b83230/Test.java b83230.Test.min [ageMin] EXACT_MATCH"
-	);
-}
-public void testBug83230_Implicit01() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83230/Test.js",
-		"package b83230;\n" + 
-		"@interface Annot {\n" + 
-		"	int value();\n" +
-		"}\n" +
-		"@Annot(41)\n" + 
-		"public class Test {\n" + 
-		"	@Annot(10)\n" + 
-		"	public void foo() {}\n" + 
-		"	@Annot(21)\n" + 
-		"	int bar;\n" + 
-		"}\n"
-	);
-	IType type = selectType(workingCopies[0], "Annot");
-	IFunction method = type.getFunction("value", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b83230/Test.java b83230.Test [41] EXACT_MATCH\n" + 
-		"src/b83230/Test.java b83230.Test.bar [21] EXACT_MATCH\n" + 
-		"src/b83230/Test.java void b83230.Test.foo() [10] EXACT_MATCH"
-	);
-}
-public void testBug83230_Implicit02() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83230/Test.js",
-		"package b83230;\n" + 
-		"@interface A {\n" + 
-		"    String value() default \"\";\n" + 
-		"}\n" + 
-		"@interface Main {\n" + 
-		"	A first() default @A(\"Void\");\n" + 
-		"	A second();\n" + 
-		"}\n" + 
-		"\n" + 
-		"@Main(first=@A(\"\"), second=@A(\"2\"))\n" + 
-		"public class Test {\n" + 
-		"}\n"
-	);
-	IType type = selectType(workingCopies[0], "A");
-	IFunction method = type.getFunction("value", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b83230/Test.java A b83230.Main.first() [\"Void\"] EXACT_MATCH\n" + 
-		"src/b83230/Test.java b83230.Test [\"\"] EXACT_MATCH\n" + 
-		"src/b83230/Test.java b83230.Test [\"2\"] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 83304: [search] correct results are missing in java search
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83304"
- */
-public void testBug83304() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83304/Test.js",
-		"package b83304;\n" + 
-		"public class Test {\n" + 
-		"	void foo() {\n" + 
-		"		Class<? extends Throwable> l1= null;\n" + 
-		"		Class<Exception> l2= null;\n" + 
-		"		\n" + 
-		"		Class<String> string_Class;\n" + 
-		"	}\n" + 
-		"}\n"
-		);
-	IType type = selectType(workingCopies[0], "Class", 3);
-	search(type, REFERENCES, ERASURE_RULE, getJavaSearchWorkingCopiesScope());
-	assertSearchResults(
-		"src/b83304/Test.java void b83304.Test.foo() [Class] ERASURE_MATCH\n" + 
-		"src/b83304/Test.java void b83304.Test.foo() [Class] ERASURE_MATCH\n" + 
-		"src/b83304/Test.java void b83304.Test.foo() [Class] EXACT_MATCH"
-	);
-}
-private void setUpBug83304_TypeParameterizedElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83304/Types.js",
-		"package b83304;\n" + 
-		"import g1.t.s.def.Generic;\n" + 
-		"public class Types {\n" + 
-		"	public Generic gen;\n" + 
-		"	public Generic<Object> gen_obj;\n" + 
-		"	public Generic<Exception> gen_exc;\n" + 
-		"	public Generic<?> gen_wld;\n" + 
-		"	public Generic<? extends Throwable> gen_thr;\n" + 
-		"	public Generic<? super RuntimeException> gen_run;\n" + 
-		"}\n"
-	);
-}
-public void testBug83304_TypeParameterizedElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_TypeParameterizedElementPattern();
-	IType type = selectType(workingCopies[0], "Generic", 4);
-	search(type, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Types.java [g1.t.s.def.Generic] EQUIVALENT_RAW_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen [Generic] EQUIVALENT_RAW_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_obj [Generic] ERASURE_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_exc [Generic] EXACT_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_wld [Generic] EQUIVALENT_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_thr [Generic] EQUIVALENT_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_run [Generic] EQUIVALENT_MATCH\n" + 
-		"lib/JavaSearch15.jar g1.t.s.def.Generic<T> g1.t.s.def.Generic.foo() ERASURE_MATCH"
-	);
-}
-public void testBug83304_TypeGenericElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_TypeParameterizedElementPattern();
-	IType type = getClassFile("JavaSearchBugs", "lib/JavaSearch15.jar", "g1.t.s.def", "Generic.class").getType();
-	search(type, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Types.java [g1.t.s.def.Generic] EQUIVALENT_RAW_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen [Generic] ERASURE_RAW_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_obj [Generic] ERASURE_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_exc [Generic] ERASURE_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_wld [Generic] ERASURE_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_thr [Generic] ERASURE_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_run [Generic] ERASURE_MATCH\n" + 
-		"lib/JavaSearch15.jar g1.t.s.def.Generic<T> g1.t.s.def.Generic.foo() EXACT_MATCH"
-	);
-}
-public void testBug83304_TypeStringPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_TypeParameterizedElementPattern();
-	search("Generic<? super Exception>", TYPE, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Types.java [Generic] EQUIVALENT_RAW_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen [Generic] EQUIVALENT_RAW_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_obj [Generic] EQUIVALENT_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_exc [Generic] EQUIVALENT_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_wld [Generic] EQUIVALENT_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_thr [Generic] ERASURE_MATCH\n" + 
-		"src/b83304/Types.java b83304.Types.gen_run [Generic] ERASURE_MATCH\n" + 
-		"lib/JavaSearch15.jar g1.t.s.def.Generic<T> g1.t.s.def.Generic.foo() ERASURE_MATCH"
-	);
-}
-private void setUpBug83304_MethodParameterizedElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83304/Methods.js",
-		"package b83304;\n" + 
-		"import g5.m.def.Single;\n" + 
-		"public class Methods {\n" + 
-		"	void test() {\n" + 
-		"		Single<Exception> gs = new Single<Exception>();\n" + 
-		"		Exception exc = new Exception();\n" + 
-		"		gs.<Throwable>generic(exc);\n" + 
-		"		gs.<Exception>generic(exc);\n" + 
-		"		gs.<String>generic(\"\");\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-}
-public void testBug83304_MethodParameterizedElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_MethodParameterizedElementPattern();
-	IFunction method = selectMethod(workingCopies[0], "generic", 2);
-	search(method, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(exc)] ERASURE_MATCH\n" + 
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(exc)] EXACT_MATCH\n" + 
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(\"\")] ERASURE_MATCH"
-	);
-}
-public void testBug83304_MethodGenericElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_MethodParameterizedElementPattern();
-	IType type = getClassFile("JavaSearchBugs", "lib/JavaSearch15.jar", "g5.m.def", "Single.class").getType();
-	IFunction method = type.getFunction("generic", new String[] { "TU;" });
-	search(method, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(exc)] ERASURE_MATCH\n" + 
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(exc)] ERASURE_MATCH\n" + 
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(\"\")] ERASURE_MATCH"
-	);
-}
-public void testBug83304_MethodStringPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_MethodParameterizedElementPattern();
-	search("<Exception>generic", METHOD, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(exc)] ERASURE_MATCH\n" + 
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(exc)] EXACT_MATCH\n" + 
-		"src/b83304/Methods.java void b83304.Methods.test() [generic(\"\")] ERASURE_MATCH"
-	);
-}
-private void setUpBug83304_ConstructorGenericElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83304/Constructors.js",
-		"package b83304;\n" + 
-		"import g5.c.def.Single;\n" + 
-		"public class Constructors {\n" + 
-		"	void test() {\n" + 
-		"		Exception exc= new Exception();\n" + 
-		"		new <Throwable>Single<String>(\"\", exc);\n" + 
-		"		new <Exception>Single<String>(\"\", exc);\n" + 
-		"		new <String>Single<String>(\"\", \"\");\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-}
-public void testBug83304_ConstructorGenericElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_ConstructorGenericElementPattern();
-	IFunction method = selectMethod(workingCopies[0], "Single", 3);
-	search(method, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <Throwable>Single<String>(\"\", exc)] ERASURE_MATCH\n" + 
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <Exception>Single<String>(\"\", exc)] EXACT_MATCH\n" + 
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <String>Single<String>(\"\", \"\")] ERASURE_MATCH"
-	);
-}
-public void testBug83304_ConstructorParameterizedElementPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_ConstructorGenericElementPattern();
-	IType type = getClassFile("JavaSearchBugs", "lib/JavaSearch15.jar", "g5.c.def", "Single.class").getType();
-	IFunction method = type.getFunction("Single", new String[] { "TT;", "TU;" });
-	search(method, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <Throwable>Single<String>(\"\", exc)] ERASURE_MATCH\n" + 
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <Exception>Single<String>(\"\", exc)] ERASURE_MATCH\n" + 
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <String>Single<String>(\"\", \"\")] ERASURE_MATCH"
-	);
-}
-public void testBug83304_ConstructorStringPattern() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug83304_ConstructorGenericElementPattern();
-	search("<Exception>Single", CONSTRUCTOR, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <Throwable>Single<String>(\"\", exc)] ERASURE_MATCH\n" + 
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <Exception>Single<String>(\"\", exc)] EXACT_MATCH\n" + 
-		"src/b83304/Constructors.java void b83304.Constructors.test() [new <String>Single<String>(\"\", \"\")] ERASURE_MATCH\n" + 
-		"lib/JavaSearch15.jar g5.m.def.Single<T> g5.m.def.Single.returnParamType() ERASURE_MATCH\n" + 
-		"lib/JavaSearch15.jar g5.m.def.Single<T> g5.m.def.Single.complete(U, g5.m.def.Single<T>) ERASURE_MATCH"
-	);
-}
-
-/**
- * Bug 83804: [1.5][javadoc] Missing Javadoc node for package declaration
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83804"
- */
-private void setUpBug83804_Type() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83804/package-info.js",
-		"/**\n" + 
-		" * Valid javadoc.\n" + 
-		" * @see Test\n" + 
-		" * @see Unknown\n" + 
-		" * @see Test#foo()\n" + 
-		" * @see Test#unknown()\n" + 
-		" * @see Test#field\n" + 
-		" * @see Test#unknown\n" + 
-		" * @param unexpected\n" + 
-		" * @throws unexpected\n" + 
-		" * @return unexpected \n" + 
-		" */\n" + 
-		"package b83804;\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b83804/Test.js",
-		"/**\n" + 
-		" * Invalid javadoc\n" + 
-		" */\n" + 
-		"package b83804;\n" + 
-		"public class Test {\n" + 
-		"	public int field;\n" + 
-		"	public void foo() {}\n" + 
-		"}\n"
-	);
-}
-public void testBug83804_Type() throws CoreException {
-	resultCollector.showInsideDoc = true;
-	setUpBug83804_Type();
-	IType type = workingCopies[1].getType("Test");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC\n" + 
-		"src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC\n" + 
-		"src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC\n" + 
-		"src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC\n" + 
-		"src/b83804/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC"
-	);
-}
-public void testBug83804_Method() throws CoreException {
-	resultCollector.showInsideDoc = true;
-	setUpBug83804_Type();
-	IFunction[] methods = workingCopies[1].getType("Test").getFunctions();
-	assertEquals("Invalid number of methods", 1, methods.length);
-	search(methods[0], REFERENCES);
-	assertSearchResults(
-		"src/b83804/package-info.java [foo()] EXACT_MATCH INSIDE_JAVADOC"
-	);
-}
-public void testBug83804_Field() throws CoreException {
-	resultCollector.showInsideDoc = true;
-	setUpBug83804_Type();
-	IField[] fields = workingCopies[1].getType("Test").getFields();
-	assertEquals("Invalid number of fields", 1, fields.length);
-	search(fields[0], REFERENCES);
-	assertSearchResults(
-		"src/b83804/package-info.java [field] EXACT_MATCH INSIDE_JAVADOC"
-	);
-}
-
-/**
- * Bug 83388: [1.5][search] Search for varargs method not finding match
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83388"
- */
-public void testBug83388() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83388/R.js",
-		"package b83388;\n" + 
-		"import b83388.*;\n" + 
-		"public class R {}\n"
-	);
-	IImportDeclaration importDeclaration = workingCopies[0].getImport("pack");
-	assertNotNull("Cannot find \"pack\" import declaration for "+workingCopies[0].getElementName(), importDeclaration);
-	SearchPattern pattern = SearchPattern.createPattern(
-		"pack", 
-		PACKAGE,
-		DECLARATIONS, 
-		EXACT_RULE);
-	assertNotNull("Pattern should not be null", pattern);
-	MatchLocator.setFocus(pattern, importDeclaration);
-	new SearchEngine(workingCopies).search(
-		pattern,
-		new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-		getJavaSearchScopeBugs(),
-		resultCollector,
-		null
-	);
-	assertSearchResults(
-		"src/b83388/R.java b83388 [No source] EXACT_MATCH"
-	);
-}
-public void testBug83388b() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83388/R.js",
-		"package b83388;\n" + 
-		"import b83388.*;\n" + 
-		"public class R {}\n"
-	);
-	SearchPattern pattern = SearchPattern.createPattern(
-		"pack", 
-		PACKAGE,
-		DECLARATIONS, 
-		EXACT_RULE);
-	assertNotNull("Pattern should not be null", pattern);
-	new SearchEngine(workingCopies).search(
-		pattern,
-		new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-		getJavaSearchScopeBugs(),
-		resultCollector,
-		null
-	);
-	assertSearchResults(
-		"src/b83388/R.java b83388 [No source] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 83693: [search][javadoc] References to methods/constructors: range does not include parameter lists
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83693"
- */
-public void testBug83693() throws CoreException {
-	resultCollector.showRule = true;
-	resultCollector.showInsideDoc = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83693/A.js",
-		"package b83693;\n" + 
-		"import static b83693.A.m;\n" + 
-		"/**\n" + 
-		" * @see A#m(int)\n" + 
-		" */\n" + 
-		"class A {\n" + 
-		"    static void m(int i) {\n" + 
-		"        b83693.A.m(i);\n" + 
-		"    }\n" + 
-		"}"
-	);
-	IFunction[] methods = workingCopies[0].getType("A").getFunctions();
-	assertEquals("Invalid number of methods", 1, methods.length);
-	search(methods[0], REFERENCES);
-	assertSearchResults(
-		"src/b83693/A.java [b83693.A.m] EXACT_MATCH OUTSIDE_JAVADOC\n" + 
-		"src/b83693/A.java b83693.A [m(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-		"src/b83693/A.java void b83693.A.m(int) [m(i)] EXACT_MATCH OUTSIDE_JAVADOC"
-	);
-}
-
-/**
- * Bug 83716: [search] refs to 2-arg constructor on Action found unexpected matches
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83716"
- * 
- * Note that this test does verify that bug is really fixed, but only that it has no impact
- * on existing behavior. It was not really possible to put a test in this suite to verify that
- * bug is effectively fixed as it appears only to potential match found in plugin dependencies...
- */
-public void testBug83716() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b83716/X.js",
-		"package b83716;\n" + 
-		"public class X {\n" + 
-		"	X() {}\n" + 
-		"	X(int x) {}\n" + 
-		"}\n" + 
-		"class Y extends X {\n" + 
-		"	Y(int y) {\n" + 
-		"	}\n" + 
-		"}"
-	);
-	search("X", CONSTRUCTOR, REFERENCES);
-	assertSearchResults(
-		"src/b83716/X.java b83716.Y(int) [Y] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 84100: [1.5][search] Search for varargs method not finding match
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=84100"
- */
-private void setUpBug84100() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b84100/X.js",
-		"package b84100;\n" + 
-		"public class X {\n" + 
-		"	void foo() {}\n" + 
-		"	void foo(String s) {}\n" + 
-		"	void foo(String... xs) {}\n" + 
-		"	void foo(int x, String... xs) {}\n" + 
-		"	void foo(String s, int x, String... xs) {}\n" + 
-		"}\n"
-		);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b84100/Z.js",
-		"package b84100;\n" + 
-		"public class Z {\n" + 
-		"	X x;\n" + 
-		"	void foo() {\n" + 
-		"		x.foo();\n" + 
-		"		x.foo(\"\");\n" + 
-		"		x.foo(\"\", \"\");\n" + 
-		"	 	x.foo(\"\", \"\", null);\n" + 
-		"		x.foo(3, \"\", \"\");\n" + 
-		"		x.foo(\"\", 3, \"\", \"\");\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-}
-public void testBug84100() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84100();
-	IFunction method = selectMethod(workingCopies[0], "foo", 1);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84100/Z.java void b84100.Z.foo() [foo()] EXACT_MATCH"
-	);
-}
-public void testBug84100b() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84100();
-	IFunction method = selectMethod(workingCopies[0], "foo", 2);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84100/Z.java void b84100.Z.foo() [foo(\"\")] EXACT_MATCH"
-	);
-}
-public void testBug84100c() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84100();
-	IFunction method = selectMethod(workingCopies[0], "foo", 3);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84100/Z.java void b84100.Z.foo() [foo(\"\", \"\")] EXACT_MATCH\n" + 
-		"src/b84100/Z.java void b84100.Z.foo() [foo(\"\", \"\", null)] EXACT_MATCH"
-	);
-}
-public void testBug84100d() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84100();
-	IFunction method = selectMethod(workingCopies[0], "foo", 4);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84100/Z.java void b84100.Z.foo() [foo(3, \"\", \"\")] EXACT_MATCH"
-	);
-}
-public void testBug84100e() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84100();
-	IFunction method = selectMethod(workingCopies[0], "foo", 5);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84100/Z.java void b84100.Z.foo() [foo(\"\", 3, \"\", \"\")] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 84121: [1.5][search][varargs] reference to type reported as inaccurate in vararg
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=84121"
- */
-public void testBug84121() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b84121/Test.js",
-		"package b84121;\n" + 
-		"public class Test {\n" + 
-		"	void foo(Test... t) {}\n" + 
-		"	void foo(int x, Test... t) {}\n" + 
-		"	void foo(Test[] t1, Test... t2) {}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("Test");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b84121/Test.java void b84121.Test.foo(Test ...) [Test] EXACT_MATCH\n" + 
-		"src/b84121/Test.java void b84121.Test.foo(int, Test ...) [Test] EXACT_MATCH\n" + 
-		"src/b84121/Test.java void b84121.Test.foo(Test[], Test ...) [Test] EXACT_MATCH\n" + 
-		"src/b84121/Test.java void b84121.Test.foo(Test[], Test ...) [Test] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 84724: [1.5][search] Search for varargs method not finding match
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=84724"
- */
-private void setUpBug84724() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b84724/X.js",
-		"package b84724;\n" + 
-		"public class X {\n" + 
-		"	X(String s) {}\n" + 
-		"	X(String... v) {}\n" + 
-		"	X(int x, String... v) {}\n" + 
-		"	X(String s, int x, String... v) {}\n" + 
-		"}\n"
-		);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b84724/Z.js",
-		"package b84724;\n" + 
-		"public class Z {\n" + 
-		"	void foo() {\n" + 
-		"		new X();\n" + 
-		"		new X(\"\");\n" + 
-		"		new X(\"\", \"\");\n" + 
-		"		new X(\"\", \"\", null);\n" + 
-		"		new X(3, \"\", \"\");\n" + 
-		"		new X(\"\", 3, \"\", \"\");\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-}
-public void testBug84724() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84724();
-	IFunction method = selectMethod(workingCopies[0], "X", 2);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84724/Z.java void b84724.Z.foo() [new X(\"\")] EXACT_MATCH"
-	);
-}
-public void testBug84724b() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84724();
-	IFunction method = selectMethod(workingCopies[0], "X", 3);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84724/Z.java void b84724.Z.foo() [new X()] EXACT_MATCH\n" + 
-		"src/b84724/Z.java void b84724.Z.foo() [new X(\"\", \"\")] EXACT_MATCH\n" + 
-		"src/b84724/Z.java void b84724.Z.foo() [new X(\"\", \"\", null)] EXACT_MATCH"
-	);
-}
-public void testBug84724c() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84724();
-	IFunction method = selectMethod(workingCopies[0], "X", 4);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84724/Z.java void b84724.Z.foo() [new X(3, \"\", \"\")] EXACT_MATCH"
-	);
-}
-public void testBug84724d() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84724();
-	IFunction method = selectMethod(workingCopies[0], "X", 5);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b84724/Z.java void b84724.Z.foo() [new X(\"\", 3, \"\", \"\")] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 84727: [1.5][search] String pattern search does not work with multiply nested types
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=84727"
- */
-private void setUpBug84727() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b84727/A.js",
-		"package b84727;\n" + 
-		"public interface A {\n" + 
-		"	Set<Set<Exception>> getXYZ(List<Set<Exception>> arg);\n" + 
-		"	void getXYZ(String s);\n" + 
-		"}\n"
-		);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b84727/X.js",
-		"package b84727;\n" + 
-		"public class X {\n" + 
-		"	A a;\n" + 
-		"	void foo() {\n" + 
-		"		a.getXYZ(new ArrayList());\n" + 
-		"		a.getXYZ(\"\");\n" + 
-		"	}\n" + 
-		"}\n"
-		);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b84727/List.js",
-		"package b84727;\n" + 
-		"public interface List<E> {}\n" + 
-		"interface Set<E> {}\n" + 
-		"class ArrayList<E> implements List<E> {}"
-	);
-}
-public void testBug84727() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84727();
-	IFunction[] methods = workingCopies[0].getType("A").getFunctions();
-	assertEquals("Invalid number of methods", 2, methods.length);
-	search(methods[0], REFERENCES);
-	assertSearchResults(
-		"src/b84727/X.java void b84727.X.foo() [getXYZ(new ArrayList())] EXACT_MATCH"
-	);
-}
-public void testBug84727b() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug84727();
-	IFunction[] methods = workingCopies[0].getType("A").getFunctions();
-	assertEquals("Invalid number of methods", 2, methods.length);
-	search(methods[1], REFERENCES);
-	assertSearchResults(
-		"src/b84727/X.java void b84727.X.foo() [getXYZ(\"\")] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 86596: [search] Search for type finds segments in import
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=86596"
- */
-public void testBug86596() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b86596/aa/link/A.js",
-		"package b86596.aa.link;\n" + 
-		"public interface A {}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b86596/bb/Link.js",
-		"package b86596.bb;\n" + 
-		"public class Link{}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b86596/cc/X.js",
-		"package b86596.cc;\n" + 
-		"import b86596.aa.link.A;\n" + 
-		"import b86596.bb.Link;\n" + 
-		"public class X {\n" + 
-		"	A a;\n" + 
-		"	Link l;\n" + 
-		"}\n"
-	);
-	search("Link", TYPE, REFERENCES, SearchPattern.R_EXACT_MATCH);
-	assertSearchResults(
-		"src/b86596/cc/X.java [Link] EXACT_RAW_MATCH\n" + 
-		"src/b86596/cc/X.java b86596.cc.X.l [Link] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 86642: [search] no match found of package-visible supertypes in subtypes
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=86642"
- */
-public void testBug86642() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b86642/A.js",
-		"package b86642;\n" + 
-		"class A {\n" + 
-		"	public void m() {}\n" + 
-		"	protected void f(A a){}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b86642/B.js",
-		"package b86642;\n" + 
-		"public class B extends A{\n" + 
-		"	protected void f(A a){\n" + 
-		"		a.m();\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("A");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b86642/A.java void b86642.A.f(A) [A] EXACT_MATCH\n" + 
-		"src/b86642/B.java b86642.B [A] EXACT_MATCH\n" + 
-		"src/b86642/B.java void b86642.B.f(A) [A] EXACT_MATCH"
-	);
-}
-/**
- * Bug 86293: [search] Search for method declaration with pattern "run()" reports match in binary field instead of anonymous class
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=86293"
- */
-public void testBug86293() throws CoreException {
-    IType type = getClassFile("JavaSearchBugs", "lib/b86293.jar", "", "I86293.class").getType();
-	IFunction method = type.getFunction("m86293", new String[0]);
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"lib/b86293.jar void <anonymous>.m86293() EXACT_MATCH\n" + 
-		"lib/b86293.jar void I86293.m86293() EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 86380: [1.5][search][annot] Add support to find references inside annotations on a package declaration
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=86380"
- */
-private void setUpBug86380() throws CoreException {
-	resultCollector.showInsideDoc = true;
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b86380/package-info.js",
-		"/**\n" + 
-		" * @see Annot#field\n" + 
-		" */\n" + 
-		"@Annot(value=11)\n" + 
-		"package b86380;\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b86380/Test.js",
-		"package b86380;\n" + 
-		"@Annot(12) public class Test {\n" + 
-		"	public int field = Annot.field;\n" + 
-		"	public void foo() {}\n" + 
-		"}\n"
-	);
-}
-public void testBug86380_Type() throws CoreException {
-	resultCollector.showInsideDoc = true;
-	setUpBug86380();
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b86380", "Annot.js");
-	IType type = unit.getType("Annot");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b86380/Test.java b86380.Test [Annot] EXACT_MATCH OUTSIDE_JAVADOC\n" + 
-		"src/b86380/Test.java b86380.Test.field [Annot] EXACT_MATCH OUTSIDE_JAVADOC\n" + 
-		"src/b86380/package-info.java [Annot] EXACT_MATCH INSIDE_JAVADOC\n" + 
-		"src/b86380/package-info.java [Annot] EXACT_MATCH OUTSIDE_JAVADOC"
-	);
-}
-public void testBug86380_Method() throws CoreException {
-	resultCollector.showInsideDoc = true;
-	setUpBug86380();
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b86380", "Annot.js");
-	IFunction[] methods = unit.getType("Annot").getFunctions();
-	assertEquals("Invalid number of methods", 1, methods.length);
-	search(methods[0], REFERENCES);
-	assertSearchResults(
-		"src/b86380/Test.java b86380.Test [12] EXACT_MATCH OUTSIDE_JAVADOC\n" + 
-		"src/b86380/package-info.java [value] EXACT_MATCH OUTSIDE_JAVADOC"
-	);
-}
-public void testBug86380_Field() throws CoreException {
-	resultCollector.showInsideDoc = true;
-	setUpBug86380();
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b86380", "Annot.js");
-	IField[] fields = unit.getType("Annot").getFields();
-	assertEquals("Invalid number of fields", 1, fields.length);
-	search(fields[0], REFERENCES);
-	assertSearchResults(
-		"src/b86380/Test.java b86380.Test.field [field] EXACT_MATCH OUTSIDE_JAVADOC\n" + 
-		"src/b86380/package-info.java [field] EXACT_MATCH INSIDE_JAVADOC"
-	);
-}
-
-/**
- * Bug 88174: [1.5][search][annot] Search for annotations misses references in default and values constructs
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=88174"
- */
-public void testBug88174() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b88174/Test.js",
-		"package b88174;\n" + 
-		"public enum Test {\n" + 
-		"  a {\n" + 
-		"    int getTheValue() { // not found\n" + 
-		"      return 0;\n" + 
-		"    }\n" + 
-		"  };\n" + 
-		"  abstract int getTheValue();\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b88174/X.js",
-		"package b88174;\n" + 
-		"public class X {\n" + 
-		"  X x = new X() {\n" + 
-		"    int getTheValue() {\n" + 
-		"      return 0;\n" + 
-		"    }\n" + 
-		"  };\n" + 
-		"  int getTheValue() { return 0; }\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("Test").getFunction("getTheValue", new String[0]);
-	search(method, DECLARATIONS | IGNORE_DECLARING_TYPE);
-	assertSearchResults(
-		"src/b88174/Test.java int b88174.Test.a:<anonymous>#1.getTheValue() [getTheValue] EXACT_MATCH\n" + 
-		"src/b88174/Test.java int b88174.Test.getTheValue() [getTheValue] EXACT_MATCH\n" + 
-		"src/b88174/X.java int b88174.X.x:<anonymous>#1.getTheValue() [getTheValue] EXACT_MATCH\n" + 
-		"src/b88174/X.java int b88174.X.getTheValue() [getTheValue] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 88300: [search] Reference search result is changed by placement of private method
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=88300"
- */
-public void testBug88300() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b88300/SubClass.js",
-		"package b88300;\n" + 
-		"public class SubClass extends SuperClass {\n" + 
-		"	private void aMethod(String x) {\n" + 
-		"	}\n" + 
-		"	public void aMethod(Object x) {\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b88300/SuperClass.js",
-		"package b88300;\n" + 
-		"public class SuperClass {\n" + 
-		"    public void aMethod(Object x) {\n" + 
-		"    }\n" + 
-		"}\n"
-		);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b88300/User.js",
-		"package b88300;\n" + 
-		"public class User {\n" + 
-		"    public void methodUsingSubClassMethod() {\n" + 
-		"        SuperClass user = new SubClass();\n" + 
-		"        user.aMethod(new Object());\n" + 
-		"    }\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("SubClass");
-	search(type.getFunctions()[1], REFERENCES);
-	assertSearchResults(
-		"src/b88300/User.java void b88300.User.methodUsingSubClassMethod() [aMethod(new Object())] EXACT_MATCH"
-	);
-}
-public void testBug88300b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b88300/SubClass.js",
-		"package b88300;\n" + 
-		"public class SubClass extends SuperClass {\n" + 
-		"	public void aMethod(Object x) {\n" + 
-		"	}\n" + 
-		"	private void aMethod(String x) {\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b88300/SuperClass.js",
-		"package b88300;\n" + 
-		"public class SuperClass {\n" + 
-		"    public void aMethod(Object x) {\n" + 
-		"    }\n" + 
-		"}\n"
-		);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b88300/User.js",
-		"package b88300;\n" + 
-		"public class User {\n" + 
-		"    public void methodUsingSubClassMethod() {\n" + 
-		"        SuperClass user = new SubClass();\n" + 
-		"        user.aMethod(new Object());\n" + 
-		"    }\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("SubClass");
-	search(type.getFunctions()[0], REFERENCES);
-	assertSearchResults(
-		"src/b88300/User.java void b88300.User.methodUsingSubClassMethod() [aMethod(new Object())] EXACT_MATCH"
-	);
-}
-public void testBug88300c() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b88300/not/fixed/ConditionalFlowInfo.js",
-		"package b88300.not.fixed;\n" + 
-		"public class ConditionalFlowInfo extends FlowInfo {\n" + 
-		"	public FlowInfo info;\n" + 
-		"	ConditionalFlowInfo(FlowInfo info){\n" + 
-		"		this.info = info;\n" + 
-		"	}\n" + 
-		"	public void markAsDefinitelyNull(FieldBinding field) {\n" + 
-		"		info.markAsDefinitelyNull(field);\n" + 
-		"	}\n" + 
-		"	public void markAsDefinitelyNull(LocalVariableBinding local) {\n" + 
-		"		info.markAsDefinitelyNull(local);\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b88300/not/fixed/FlowInfo.js",
-		"package b88300.not.fixed;\n" + 
-		"\n" + 
-		"class FieldBinding {\n" + 
-		"	int id;\n" + 
-		"}\n" + 
-		"class LocalVariableBinding extends FieldBinding {}\n" + 
-		"\n" + 
-		"public abstract class FlowInfo {\n" + 
-		"	abstract public void markAsDefinitelyNull(LocalVariableBinding local);\n" + 
-		"	abstract public void markAsDefinitelyNull(FieldBinding field);\n" + 
-		"}\n"
-		);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b88300/not/fixed/UnconditionalFlowInfo.js",
-		"package b88300.not.fixed;\n" + 
-		"public class UnconditionalFlowInfo extends FlowInfo {\n" + 
-		"	final private void markAsDefinitelyNull(int position) {}\n" + 
-		"	public void markAsDefinitelyNull(FieldBinding field) {\n" + 
-		"		markAsDefinitelyNull(field.id);\n" + 
-		"	}\n" + 
-		"	public void markAsDefinitelyNull(LocalVariableBinding local) {\n" + 
-		"		markAsDefinitelyNull(local.id + 1);\n" + 
-		"	}\n" + 
-		"}\n"
-		);
-	IType type = workingCopies[2].getType("UnconditionalFlowInfo");
-	search(type.getFunctions()[2], REFERENCES);
-	assertSearchResults(
-		"src/b88300/not/fixed/ConditionalFlowInfo.java void b88300.not.fixed.ConditionalFlowInfo.markAsDefinitelyNull(LocalVariableBinding) [markAsDefinitelyNull(local)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 89686: [1.5][search] JavaScriptModelException on ResolvedSourceMethod during refactoring
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=89686"
- */
-public void testBug89686() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b89686/A.js",
-		"package b89686;\n" + 
-		"public enum Color {\n" + 
-		"    RED, GREEN(), BLUE(17), PINK((1+(1+1))) {/*anon*/};\n" + 
-		"    Color() {}\n" + 
-		"    Color(int i) {}\n" + 
-		"}"
-	);
-	IType type = workingCopies[0].getType("Color");
-	IFunction method = type.getFunction("Color", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b89686/A.java b89686.Color.RED [RED] EXACT_MATCH\n" + 
-		"src/b89686/A.java b89686.Color.GREEN [GREEN()] EXACT_MATCH"
-	);
-}
-public void testBug89686b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b89686/A.js",
-		"package b89686;\n" + 
-		"public enum Color {\n" + 
-		"    RED, GREEN(), BLUE(17), PINK((1+(1+1))) {/*anon*/};\n" + 
-		"    Color() {}\n" + 
-		"    Color(int i) {}\n" + 
-		"}"
-	);
-	IType type = workingCopies[0].getType("Color");
-	IFunction method = type.getFunction("Color", new String[] { "I"} );
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/b89686/A.java b89686.Color.BLUE [BLUE(17)] EXACT_MATCH\n" + 
-		"src/b89686/A.java b89686.Color.PINK [PINK((1+(1+1)))] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 89848: [search] does not find method references in anonymous class of imported jarred plugin
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=89848"
- */
-public void testBug89848() throws CoreException {
-	IType classFile = getClassFile("JavaSearchBugs", "lib", "b89848", "X.class").getType();
-	IFunction method = classFile.getFunction("foo", new String[0]);
-	search(method, ALL_OCCURRENCES);
-	assertSearchResults(
-		"lib/b89848/Test.class void b89848.Test.foo() EXACT_MATCH\n" + 
-		"lib/b89848/X.class void b89848.X.foo() EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 90779: [search] Constructor Declaration search with ignoring declaring and return type also ignores type name
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=90779"
- */
-public void testBug90779() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b90779/A.js",
-		"package b90779;\n" +
-		"public class A {\n" + 
-		"	public A() {}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b90779/B.js",
-		"package b90779;\n" +
-		"public class B {\n" + 
-		"	public B() {}\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b90779/C.js",
-		"package b90779;\n" +
-		"public class C {\n" + 
-		"	public C() {}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("A");
-	IFunction[] methods = type.getFunctions();
-	assertEquals("Wrong number of methods", 1, methods.length);
-	search(methods[0], DECLARATIONS | IGNORE_DECLARING_TYPE | IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b90779/A.java b90779.A() [A] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 90915: [1.5][search] NPE in PatternLocator
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=90915"
- */
-public void testBug90915() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b90915/X.js",
-		"package b90915;\n" +
-		"import g5.m.def.Single;\n" + 
-		"public class X<T> {\n" + 
-		"	void foo() {\n" + 
-		"		Single<String> single = new Single<String>() {\n" + 
-		"			public <U> String generic(U u) { return \"\"; }\n" + 
-		"			public void paramTypesArgs(Single<String> gs) {}\n" + 
-		"		};\n" + 
-		"		single.paramTypesArgs(null);\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("X");
-	IFunction[] methods = type.getFunctions();
-	assertEquals("Wrong number of methods", 1, methods.length);
-	IType anonymous = methods[0].getType("", 1);
-	assertNotNull("Cannot find anonymous in method foo()", anonymous);
-	methods = anonymous.getFunctions();
-	assertEquals("Wrong number of methods", 2, methods.length);
-	search(methods[1], REFERENCES);
-	assertSearchResults(
-		"src/b90915/X.java void b90915.X.foo() [paramTypesArgs(null)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 91542: [1.5][search] JavaScriptModelException on ResolvedSourceMethod during refactoring
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=91542"
- */
-public void testBug91542() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b91542/A.js",
-		"package b91542;\n" + 
-		"\n" + 
-		"class A<T> {\n" + 
-		"	void a(A<T> a){}\n" + 
-		"}\n" + 
-		"\n" + 
-		"class B<T> extends A<T> {\n" + 
-		"	protected void foo() { \n" + 
-		"		a(this);\n" + 
-		"	}\n" + 
-		"}"
-	);
-	IType type = workingCopies[0].getType("B");
-	IFunction method = type.getFunction("foo", new String[0]);
-	searchDeclarationsOfSentMessages(method, this.resultCollector);
-	assertSearchResults(
-		"src/b91542/A.java void b91542.A.a(A<T>) [a(A<T> a)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 91078: [search] Java search for package reference wrongly identifies inner class as package
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=91078"
- */
-public void testBug91078() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b91078/test/Example.js",
-		"package b91078.test;\n" + 
-		"import b91078.util.HashMap;\n" + 
-		"import b91078.util.Map;\n" + 
-		"public class Example {\n" + 
-		"    public Map.Entry logAll(Object obj) {\n" + 
-		"    	if (obj instanceof b91078.util.HashMap) {\n" + 
-		"    		HashMap map = (HashMap) obj;\n" + 
-		"            return map.entry;\n" + 
-		"    	}\n" + 
-		"    	if (obj instanceof b91078.util.HashMap.Entry) {\n" + 
-		"            Map.Entry entry = (Map.Entry) obj;\n" + 
-		"            return entry;\n" + 
-		"    	}\n" + 
-		"    	return null;\n" + 
-		"    }\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b91078/util/HashMap.js",
-		"package b91078.util;\n" + 
-		"public class HashMap implements Map {\n" + 
-		"	public Entry entry;\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b91078/util/Map.js",
-		"package b91078.util;\n" + 
-		"public interface Map {\n" + 
-		"	class Entry{}\n" + 
-		"}\n"
-	);
-	search("*", PACKAGE, REFERENCES, getJavaSearchWorkingCopiesScope(workingCopies[0]));
-	assertSearchResults(
-		"src/b91078/test/Example.java [b91078.util] EXACT_MATCH\n" + 
-		"src/b91078/test/Example.java [b91078.util] EXACT_MATCH\n" + 
-		"src/b91078/test/Example.java Map.Entry b91078.test.Example.logAll(Object) [b91078.util] EXACT_MATCH\n" + 
-		"src/b91078/test/Example.java Map.Entry b91078.test.Example.logAll(Object) [b91078.util] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 92264: [search] all types names should support patterns for package/enclosing type name
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=92264"
- */
-public void testBug92264a() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		"*.lang".toCharArray(),
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		IIndexConstants.ONE_STAR,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"java.lang.CharSequence\n" + 
-		"java.lang.Class\n" + 
-		"java.lang.CloneNotSupportedException\n" + 
-		"java.lang.Comparable\n" + 
-		"java.lang.Enum\n" + 
-		"java.lang.Error\n" + 
-		"java.lang.Exception\n" + 
-		"java.lang.IllegalMonitorStateException\n" + 
-		"java.lang.InterruptedException\n" + 
-		"java.lang.Object\n" + 
-		"java.lang.RuntimeException\n" + 
-		"java.lang.String\n" + 
-		"java.lang.Throwable",
-		requestor);
-}
-public void testBug92264b() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		"*.lang*".toCharArray(),
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		"*tion".toCharArray(),
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"java.lang.CloneNotSupportedException\n" + 
-		"java.lang.Exception\n" + 
-		"java.lang.IllegalMonitorStateException\n" + 
-		"java.lang.InterruptedException\n" + 
-		"java.lang.RuntimeException\n" + 
-		"java.lang.annotation.Annotation",
-		requestor);
-}
-public void testBug92264c() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		"*.test*".toCharArray(),
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		IIndexConstants.ONE_STAR,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"Test$Inner\n" + 
-		"b123679.test.Test\n" + 
-		"b123679.test.Test$StaticClass\n" + 
-		"b123679.test.Test$StaticClass$Member\n" + 
-		"b124645.test.A_124645\n" + 
-		"b124645.test.X_124645\n" + 
-		"b127628.Test127628$Member127628\n" + 
-		"b95794.Test$Color\n" + 
-		"pack.age.Test$Member\n" + 
-		"test.Test$StaticClass\n" + 
-		"test.Test$StaticClass$Member",
-		requestor);
-}
-public void testBug92264d() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		"b12*".toCharArray(),
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		new char[] { 'X' },
-		SearchPattern.R_PREFIX_MATCH, // case insensitive
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b124645.test.X_124645\n" + 
-		"b124645.xy.X_124645",
-		requestor);
-}
-
-/**
- * Bug 92944: [1.5][search] SearchEngine#searchAllTypeNames doesn't honor enum or annotation element kind
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=92944"
- */
-private void setUpBug92944() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b92944/Test.js",
-		"package b92944;\n" + 
-		"interface B92944_I {}\n" + 
-		"enum B92944_E {}\n" + 
-		"@interface B92944_A {}\n" + 
-		"public class B92944 {}\n"
-	);
-}
-public void testBug92944_TYPE() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug92944();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		TYPE,
-		getJavaSearchScopeBugs("b92944", true),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b92944.B92944\n" + 
-		"b92944.B92944_A\n" + 
-		"b92944.B92944_E\n" + 
-		"b92944.B92944_I",
-		requestor);
-}
-public void testBug92944_CLASS() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug92944();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		IIndexConstants.ONE_STAR,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		CLASS,
-		getJavaSearchWorkingCopiesScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	// Remove interface, enum and annotation
-	assertSearchResults(
-		"Unexpected all type names",
-		"b92944.B92944",
-		requestor);
-}
-public void testBug92944_CLASS_AND_INTERFACE() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug92944();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		CLASS_AND_INTERFACE,
-		getJavaSearchWorkingCopiesScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	// Remove enum and annotation
-	assertSearchResults(
-		"Unexpected all type names",
-		"b92944.B92944\n" + 
-		"b92944.B92944_I",  // Annotation is an interface in java.lang
-		requestor);
-}
-public void testBug92944_CLASS_AND_ENUM() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug92944();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		CLASS_AND_ENUM,
-		getJavaSearchWorkingCopiesScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	// Remove interface and annotation
-	assertSearchResults(
-		"Unexpected all type names",
-		"b92944.B92944\n" + 
-		"b92944.B92944_E",
-		requestor);
-}
-public void testBug92944_INTERFACE() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug92944();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		INTERFACE,
-		getJavaSearchWorkingCopiesScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b92944.B92944_I",
-		requestor);
-}
-public void testBug92944_ENUM() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug92944();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		ENUM,
-		getJavaSearchWorkingCopiesScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b92944.B92944_E",
-		requestor);
-}
-public void testBug92944_ANNOTATION_TYPE() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug92944();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		ANNOTATION_TYPE,
-		getJavaSearchWorkingCopiesScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b92944.B92944_A",
-		requestor);
-}
-
-/**
- * Bug 93392: [1.5][search][annot] search for annotation elements does not seem to be implemented yet
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=93392"
- * 
- * Note that this test valid also:
- * Bug 94062: [1.5][search][annot] search for annotation elements incorrect match range
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=94062"
- */
-public void testBug93392() throws CoreException {
-	TestCollector collector = new TestCollector();
-	collector.showAccuracy = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b93392/Test.js",
-		"package b93392;\n" + 
-		"@interface Annot {\n" + 
-		"	int value();\n" +
-		"}\n" +
-		"@Annot(41)\n" + 
-		"public class Test {\n" + 
-		"	@Annot(21)\n" + 
-		"	int bar;\n" + 
-		"	@Annot(10)\n" + 
-		"	public void foo() {}\n" + 
-		"}\n"
-	);
-	IType type = selectType(workingCopies[0], "Annot");
-	IFunction method = type.getFunction("value", new String[0]);
-	search(method, REFERENCES, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b93392/Test.java b93392.Test [41] EXACT_MATCH\n" + 
-		"src/b93392/Test.java b93392.Test.bar [21] EXACT_MATCH\n" + 
-		"src/b93392/Test.java void b93392.Test.foo() [10] EXACT_MATCH",
-		collector
-	);
-	// Verify matches positions
-	String source = workingCopies[0].getSource();
-	String str = "@Annot(";
-	// First match
-	assertEquals("Invalid number of matches", 3, collector.matches.size());
-	int index= source.indexOf(str)+str.length();
-	assertEquals("Invalid offset for first match", index, ((SearchMatch)collector.matches.get(0)).getOffset());
-	assertEquals("Invalid length for first match", 2, ((SearchMatch)collector.matches.get(0)).getLength());
-	// Second match
-	index= source.indexOf(str, index)+str.length();
-	assertEquals("Invalid offset for second match", index, ((SearchMatch)collector.matches.get(1)).getOffset());
-	assertEquals("Invalid length for second match", 2, ((SearchMatch)collector.matches.get(1)).getLength());
-	// Last match
-	index= source.indexOf(str, index)+str.length();
-	assertEquals("Invalid offset for last match", index, ((SearchMatch)collector.matches.get(2)).getOffset());
-	assertEquals("Invalid length for last match", 2, ((SearchMatch)collector.matches.get(2)).getLength());
-}
-
-/**
- * Bug 94160: [1.5][search] Generic method in superclass does not exist
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=94160"
- */
-public void testBug94160() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b94160/Test.js",
-		"package b94160;\n" + 
-		"public class Test {\n" + 
-		"	<T> List<T> generateList(Class<T> clazz) {\n" + 
-		"		return new ArrayList<T>();\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"class CTest extends Test {\n" + 
-		"	private List<String> myList = generateList(String.class);\n" + 
-		"	CTest() {\n" + 
-		"		myList = new ArrayList<String>();\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"interface List<E> {}\n" + 
-		"class ArrayList<E> implements List<E> {}"
-	);
-	IType type = workingCopies[0].getType("CTest");
-	IField field = type.getField("myList");
-	new SearchEngine(this.workingCopies).searchDeclarationsOfSentMessages(field, resultCollector, null);
-	assertSearchResults(
-		"src/b94160/Test.java List<T> b94160.Test.generateList(Class<T>) [generateList(Class<T> clazz)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 94389: [search] InvocationTargetException on Rename
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=94389"
- */
-public void testBug94389() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b94389/Test.js",
-		"package b94389;\n" + 
-		"public class Test {\n" + 
-		"	public void foo() {}\n" + 
-		"	public void foo() {}\n" + 
-		"	public void foo() {}\n" + 
-		"	public void foo() {}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("Test");
-	IFunction[] methods = type.getFunctions();
-	int methodsLength = methods.length;
-
-	// Perform search on each duplicate method
-	IJavaScriptSearchScope scope = getJavaSearchScopeBugs();
-	for (int m=0; m<methodsLength; m++) {
-		
-		// Search method declaration
-		TestCollector collector = new TestCollector();
-		search(methods[m], DECLARATIONS, scope, collector);
-		assertSearchResults(
-			"src/b94389/Test.java void b94389.Test.foo() [foo]\n" + 
-			"src/b94389/Test.java void b94389.Test.foo() [foo]\n" + 
-			"src/b94389/Test.java void b94389.Test.foo() [foo]\n" + 
-			"src/b94389/Test.java void b94389.Test.foo() [foo]",
-			collector
-		);
-	
-		// Verify that all matches have correct occurence count
-		int size = collector.matches.size();
-		for (int i=0; i<size; i++) {
-			assertEquals("Invalid foo method occurence count (m="+(m+1)+")", i+1, ((SourceMethod) methods[i]).occurrenceCount);
-		}
-	}
-}
-
-/**
- * Bug 94718: [1.5][search][annot] Find references in workspace breaks on an annotation
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=94718"
- */
-public void testBug94718() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b94718/SetUp.js",
-		"package b94718;\n" + 
-		"public @interface SetUp {\n" + 
-		"	String value() {}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b94718/Test.js",
-		"package b94718;\n" + 
-		"@SetUp(\"howdy\")\n" + 
-		"public class Test {\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[1].getType("SetUp");
-	search(type, REFERENCES, SearchEngine.createWorkspaceScope());
-	assertSearchResults(
-		"src/b94718/Test.java b94718.Test [SetUp] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 95152: [search] Field references not found when type is a qualified member type [regression]
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=95152"
- */
-public void testBug95152_jar01() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b95152.jar", "b95152").getClassFile("T1$T12.class").getType();
-	// search constructor first level member
-	search(type.getFunctions()[0], REFERENCES);
-	type = getPackageFragment("JavaSearchBugs", "lib/b95152.jar", "b95152").getClassFile("T1$T12$T13.class").getType();
-	// search constructor second level member
-	search(type.getFunctions()[0], REFERENCES);
-	assertSearchResults(
-		"lib/b95152.jar b95152.T1() EXACT_MATCH\n" + 
-		"lib/b95152.jar b95152.T1() EXACT_MATCH"
-	);
-}
-public void testBug95152_jar02() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b95152.jar", "b95152").getClassFile("T2$T22.class").getType();
-	// search constructor first level member
-	search(type.getFunctions()[0], REFERENCES);
-	type = getPackageFragment("JavaSearchBugs", "lib/b95152.jar", "b95152").getClassFile("T2$T22$T23.class").getType();
-	// search constructor second level member
-	search(type.getFunctions()[0], REFERENCES);
-	assertSearchResults(
-		"lib/b95152.jar b95152.T2(int) EXACT_MATCH\n" + 
-		"lib/b95152.jar b95152.T2(int) EXACT_MATCH"
-	);
-}
-public void testBug95152_jar03() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b95152.jar", "b95152").getClassFile("T3$T32.class").getType();
-	// search constructor first level member
-	search(type.getFunctions()[0], REFERENCES);
-	type = getPackageFragment("JavaSearchBugs", "lib/b95152.jar", "b95152").getClassFile("T3$T32$T33.class").getType();
-	// search constructor second level member
-	search(type.getFunctions()[0], REFERENCES);
-	assertSearchResults(
-		"lib/b95152.jar b95152.T3(b95152.T3) EXACT_MATCH\n" + 
-		"lib/b95152.jar b95152.T3(b95152.T3) EXACT_MATCH"
-	);
-}
-public void testBug95152_jar04() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b95152.jar", "b95152").getClassFile("T4$T42.class").getType();
-	// search constructor first level member
-	search(type.getFunctions()[0], REFERENCES);
-	type = getPackageFragment("JavaSearchBugs", "lib/b95152.jar", "b95152").getClassFile("T4$T42$T43.class").getType();
-	// search constructor second level member
-	search(type.getFunctions()[0], REFERENCES);
-	assertSearchResults(
-		"lib/b95152.jar b95152.T4(b95152.T4, java.lang.String) EXACT_MATCH\n" + 
-		"lib/b95152.jar b95152.T4(b95152.T4, java.lang.String) EXACT_MATCH"
-	);
-}
-public void testBug95152_wc01() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b95152/T.js",
-		"package b95152;\n" + 
-		"public class T {\n" + 
-		"	T2 c2;\n" + 
-		"	T2.T3 c3;\n" + 
-		"	T() {\n" + 
-		"		c2 = new T2();\n" + 
-		"		c3 = c2.new T3();\n" + 
-		"	}\n" + 
-		"	class T2 {\n" + 
-		"		T2() {}\n" + 
-		"		class T3 {\n" + 
-		"			T3() {}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	// search constructor first level member
-	IType type = workingCopies[0].getType("T").getType("T2");
-	search(type.getFunctions()[0], REFERENCES);
-	// search constructor second level member
-	type = type.getType("T3");
-	search(type.getFunctions()[0], REFERENCES);
-	// verify searches results
-	assertSearchResults(
-		"src/b95152/T.java b95152.T() [new T2()] EXACT_MATCH\n" +
-		"src/b95152/T.java b95152.T() [c2.new T3()] EXACT_MATCH"
-	);
-}
-public void testBug95152_wc02() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b95152/T.js",
-		"package b95152;\n" + 
-		"public class T {\n" + 
-		"	T2 c2;\n" + 
-		"	T2.T3 c3;\n" + 
-		"	T(int c) {\n" + 
-		"		c2 = new T2(c);\n" + 
-		"		c3 = c2.new T3(c);\n" + 
-		"	}\n" + 
-		"	class T2 {\n" + 
-		"		T2(int x) {}\n" + 
-		"		class T3 {\n" + 
-		"			T3(int x) {}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	// search constructor first level member
-	IType type = workingCopies[0].getType("T").getType("T2");
-	search(type.getFunctions()[0], REFERENCES);
-	// search constructor second level member
-	type = type.getType("T3");
-	search(type.getFunctions()[0], REFERENCES);
-	// verify searches results
-	assertSearchResults(
-		"src/b95152/T.java b95152.T(int) [new T2(c)] EXACT_MATCH\n" +
-		"src/b95152/T.java b95152.T(int) [c2.new T3(c)] EXACT_MATCH"
-	);
-}
-public void testBug95152_wc03() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b95152/T.js",
-		"package b95152;\n" + 
-		"public class T {\n" + 
-		"	T2 c2;\n" + 
-		"	T2.T3 c3;\n" + 
-		"	T(T c) {\n" + 
-		"		c2 = new T2(c);\n" + 
-		"		c3 = c2.new T3(c2);\n" + 
-		"	}\n" + 
-		"	class T2 {\n" + 
-		"		T2(T c) {}\n" + 
-		"		class T3 {\n" + 
-		"			T3(T2 c) {}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	// search constructor first level member
-	IType type = workingCopies[0].getType("T").getType("T2");
-	search(type.getFunctions()[0], REFERENCES);
-	// search constructor second level member
-	type = type.getType("T3");
-	search(type.getFunctions()[0], REFERENCES);
-	// verify searches results
-	assertSearchResults(
-		"src/b95152/T.java b95152.T(T) [new T2(c)] EXACT_MATCH\n" +
-		"src/b95152/T.java b95152.T(T) [c2.new T3(c2)] EXACT_MATCH"
-	);
-}
-public void testBug95152_wc04() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b95152/T.js",
-		"package b95152;\n" + 
-		"public class T {\n" + 
-		"	T2 c2;\n" + 
-		"	T2.T3 c3;\n" + 
-		"	T(T c, String str) {\n" + 
-		"		c2 = new T2(c, str);\n" + 
-		"		c3 = c2.new T3(c2, str);\n" + 
-		"	}\n" + 
-		"	class T2 {\n" + 
-		"		T2(T c, String str) {}\n" + 
-		"		class T3 {\n" + 
-		"			T3(T2 c, String str) {}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	// search constructor first level member
-	IType type = workingCopies[0].getType("T").getType("T2");
-	search(type.getFunctions()[0], REFERENCES);
-	// search constructor second level member
-	type = type.getType("T3");
-	search(type.getFunctions()[0], REFERENCES);
-	// verify searches results
-	assertSearchResults(
-		"src/b95152/T.java b95152.T(T, String) [new T2(c, str)] EXACT_MATCH\n" + 
-		"src/b95152/T.java b95152.T(T, String) [c2.new T3(c2, str)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 95794: [1.5][search][annot] Find references in workspace breaks on an annotation
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=95794"
- */
-public void testBug95794() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b95794", "Test.js");
-	IType type = unit.getType("Test");
-	
-	// Verify matches
-	TestCollector occurencesCollector = new TestCollector();
-	occurencesCollector.showAccuracy = true;
-	search(type, ALL_OCCURRENCES, getJavaSearchScopeBugs(), occurencesCollector);
-	assertSearchResults(
-		"src/b95794/Test.java [b95794.Test] EXACT_MATCH\n" + 
-		"src/b95794/Test.java [b95794.Test] EXACT_MATCH\n" + 
-		"src/b95794/Test.java b95794.Test [Test] EXACT_MATCH\n" + 
-		"src/b95794/Test.java b95794.Test.there [Test] EXACT_MATCH",
-		occurencesCollector
-	);
-	
-	// Verify with references matches
-	TestCollector referencesCollector = new TestCollector();
-	search(type, REFERENCES, getJavaSearchScopeBugs(), referencesCollector);
-	assertEquals("Problem with occurences or references number of matches: ", occurencesCollector.matches.size()-1, referencesCollector.matches.size());
-}
-public void testBug95794b() throws CoreException {
-	resultCollector.showRule = true;
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b95794", "Test.js");
-	IType type = unit.getType("Test").getType("Color");
-	
-	// Verify matches
-	TestCollector occurencesCollector = new TestCollector();
-	occurencesCollector.showAccuracy = true;
-	search(type, ALL_OCCURRENCES, getJavaSearchScopeBugs(), occurencesCollector);
-	assertSearchResults(
-		"src/b95794/Test.java [b95794.Test.Color] EXACT_MATCH\n" + 
-		"src/b95794/Test.java [b95794.Test.Color] EXACT_MATCH\n" + 
-		"src/b95794/Test.java void b95794.Test.main(String[]) [Color] EXACT_MATCH\n" + 
-		"src/b95794/Test.java b95794.Test$Color [Color] EXACT_MATCH",
-		occurencesCollector
-	);
-	
-	// Verify with references matches
-	TestCollector referencesCollector = new TestCollector();
-	search(type, REFERENCES, getJavaSearchScopeBugs(), referencesCollector);
-	assertEquals("Problem with occurences or references number of matches: ", occurencesCollector.matches.size()-1, referencesCollector.matches.size());
-}
-public void testBug95794c() throws CoreException {
-	resultCollector.showRule = true;
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b95794", "Test.js");
-	IField field = unit.getType("Test").getType("Color").getField("WHITE");
-	
-	// Verify matches
-	TestCollector occurencesCollector = new TestCollector();
-	occurencesCollector.showAccuracy = true;
-	search(field, ALL_OCCURRENCES, getJavaSearchScopeBugs(), occurencesCollector);
-	assertSearchResults(
-		"src/b95794/Test.java [WHITE] EXACT_MATCH\n" + 
-		"src/b95794/Test.java void b95794.Test.main(String[]) [WHITE] EXACT_MATCH\n" + 
-		"src/b95794/Test.java b95794.Test$Color.WHITE [WHITE] EXACT_MATCH",
-		occurencesCollector
-	);
-	
-	// Verify with references matches
-	TestCollector referencesCollector = new TestCollector();
-	search(field, REFERENCES, getJavaSearchScopeBugs(), referencesCollector);
-	assertEquals("Problem with occurences or references number of matches: ", occurencesCollector.matches.size()-1, referencesCollector.matches.size());
-}
-
-/**
- * Bug 96761: [1.5][search] Search for declarations of generic method finds non-overriding method
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=96761"
- */
-public void testBug96761() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b96761/Generic.js",
-		"package b96761;\n" + 
-		"public class Generic<G> {\n" + 
-		"	void take(G g) {\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"class Impl extends Generic<RuntimeException> {\n" + 
-		"	void take(InterruptedException g) {\n" + 
-		"	}\n" + 
-		"	void take(RuntimeException g) {\n" + 
-		"	}\n" + 
-		"}"
-	);
-	IType type = workingCopies[0].getType("Generic");
-	IFunction method= type.getFunctions()[0];
-	search(method, REFERENCES);
-	assertSearchResults(""); // Expect no result
-}
-
-/**
- * Bug 96763: [1.5][search] Search for method declarations does not find overridden method with different signature
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=96763"
- */
-public void testBug96763() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b96763/Test.js",
-		"package b96763;\n" + 
-		"class Test<T> {\n" + 
-		"    public void first(Exception num) {}\n" + 
-		"    public void second(T t) {}\n" + 
-		"}\n" + 
-		"class Sub extends Test<Exception> {\n" + 
-		"    public void first(Exception num) {}\n" + 
-		"    public void second(Exception t) {}\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("Sub").getFunctions()[0];
-	search(method, DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b96763/Test.java void b96763.Test.first(Exception) [first] EXACT_MATCH\n" + 
-		"src/b96763/Test.java void b96763.Sub.first(Exception) [first] EXACT_MATCH"
-	);
-}
-public void testBug96763b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b96763/Test.js",
-		"package b96763;\n" + 
-		"class Test<T> {\n" + 
-		"    public void first(Exception num) {}\n" + 
-		"    public void second(T t) {}\n" + 
-		"}\n" + 
-		"class Sub extends Test<Exception> {\n" + 
-		"    public void first(Exception num) {}\n" + 
-		"    public void second(Exception t) {}\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("Sub").getFunctions()[1];
-	search(method, DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b96763/Test.java void b96763.Test.second(T) [second] EXACT_MATCH\n" + 
-		"src/b96763/Test.java void b96763.Sub.second(Exception) [second] EXACT_MATCH"
-	);
-}
-public void testBug96763c() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b96763/Test.js",
-		"package b96763;\n" + 
-		"public class Test<T> {\n" + 
-		"	void methodT(T t) {}\n" + 
-		"}\n" + 
-		"class Sub<X> extends Test<X> {\n" + 
-		"	void methodT(X x) {} // overrides Super#methodT(T)\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("Sub").getFunctions()[0];
-	search(method, DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE);
-	assertSearchResults(
-		"src/b96763/Test.java void b96763.Test.methodT(T) [methodT] EXACT_MATCH\n" + 
-		"src/b96763/Test.java void b96763.Sub.methodT(X) [methodT] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 97087: [1.5][search] Can't find reference of generic class's constructor.
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=97087"
- */
-public void testBug97087() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	this.resultCollector.showRule = true;
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b97087/Bug.js",
-		"package b97087;\n" + 
-		"public class Bug<Type> {\n" + 
-		"    Bug(){}\n" + 
-		"}\n" + 
-		"class Foo extends Bug<String>{\n" + 
-		"    Foo(){}\n" + 
-		"}\n" +
-		"class Bar extends Bug<Exception>{\n" + 
-		"    Bar(){super();}\n" + 
-		"}"
-	);
-	IType type = workingCopies[0].getType("Bug");
-	IFunction method= type.getFunctions()[0];
-	search(method, REFERENCES, SearchPattern.R_ERASURE_MATCH);
-	assertSearchResults(
-		"src/b97087/Bug.java b97087.Foo() [Foo] EXACT_MATCH\n" + 
-		"src/b97087/Bug.java b97087.Bar() [super();] ERASURE_MATCH"
-	);
-}
-
-/**
- * Bug 97120: 
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=97120"
- */
-public void testBug97120() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", getExternalJCLPathString("1.5"), "java.lang", "Throwable.class").getType();
-	IJavaScriptSearchScope scope = SearchEngine.createHierarchyScope(type);
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"E*".toCharArray(),
-		SearchPattern.R_PATTERN_MATCH,
-		TYPE,
-		scope,
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"java.lang.Error\n" + 
-		"java.lang.Exception",
-		requestor
-	);
-}
-
-/**
- * Bug 97322: [search] Search for method references sometimes reports potential match with differing argument count
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=97322"
- */
-public void testBug97322() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b97322/Test.js",
-		"package b97322;\n" + 
-		"class Test {\n" + 
-		"	static void myMethod(int a, String b) {}\n" + 
-		"	void call() {\n" + 
-		"		myMethod(12);\n" + 
-		"	}\n" + 
-		"}"
-	);
-	IType type = workingCopies[0].getType("Test");
-	IFunction method= type.getFunctions()[0];
-	search(method, REFERENCES);
-	assertSearchResults(""); // Expect no result
-}
-
-/**
- * Bug 97606: [1.5][search] Raw type reference is reported as exact match for qualified names
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=97606"
- */
-public void testBug97606() throws CoreException {
-	workingCopies = new IJavaScriptUnit[4];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b97606/pack/def/L.js",
-		"package b97606.pack.def;\n" + 
-		"public interface L<E> {}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b97606/pack/def/LL.js",
-		"package b97606.pack.def;\n" + 
-		"public class LL<E> implements L<E> {\n" + 
-		"	public Object clone() {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b97606/pack/ref/K.js",
-		"package b97606.pack.ref;\n" + 
-		"public interface K {}\n"
-	);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b97606/pack/ref/X.js",
-		"package b97606.pack.ref;\n" + 
-		"public class X implements K {\n" + 
-		"	private b97606.pack.def.LL sg;\n" + 
-		"	protected synchronized b97606.pack.def.L<K> getSG() {\n" + 
-		"		return (sg != null) \n" + 
-		"			? (b97606.pack.def.L) sg.clone()\n" + 
-		"			: null;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IPath pathDef = new Path("/JavaSearchBugs/src/b97606/pack/def");
-	IPath pathRef = new Path("/JavaSearchBugs/src/b97606/pack/ref");
-	try {
-		createFolder(pathDef);
-		createFolder(pathRef);
-		workingCopies[0].commitWorkingCopy(true, null);
-		workingCopies[1].commitWorkingCopy(true, null);
-		workingCopies[2].commitWorkingCopy(true, null);
-		workingCopies[3].commitWorkingCopy(true, null);
-		this.resultCollector.showRule = true;
-		IType type = workingCopies[0].getType("L");
-		search(type, REFERENCES, SearchPattern.R_ERASURE_MATCH);
-		assertSearchResults(
-			"src/b97606/pack/def/LL.java b97606.pack.def.LL [L] ERASURE_MATCH\n" + 
-			"src/b97606/pack/ref/X.java b97606.pack.def.L<K> b97606.pack.ref.X.getSG() [b97606.pack.def.L] ERASURE_MATCH\n" + 
-			"src/b97606/pack/ref/X.java b97606.pack.def.L<K> b97606.pack.ref.X.getSG() [b97606.pack.def.L] ERASURE_RAW_MATCH"
-		);
-	}
-	finally {
-		deleteFolder(pathDef);
-		deleteFolder(pathRef);
-	}
-}
-public void testBug97606b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[4];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b97606/pack/def/L.js",
-		"package b97606.pack.def;\n" + 
-		"public interface L<E> {}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b97606/pack/def/LL.js",
-		"package b97606.pack.def;\n" + 
-		"public class LL<E> implements L<E> {\n" + 
-		"	public Object clone() {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b97606/pack/ref/K.js",
-		"package b97606.pack.ref;\n" + 
-		"public interface K {}\n"
-	);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b97606/pack/ref/X.js",
-		"package b97606.pack.ref;\n" + 
-		"import b97606.pack.def.*;\n" + 
-		"public class X implements K {\n" + 
-		"	private LL sg;\n" + 
-		"	protected synchronized L<K> getSG() {\n" + 
-		"		return (sg != null) \n" + 
-		"			? (L) sg.clone()\n" + 
-		"			: null;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IPath pathDef = new Path("/JavaSearchBugs/src/b97606/pack/def");
-	IPath pathRef = new Path("/JavaSearchBugs/src/b97606/pack/ref");
-	try {
-		createFolder(pathDef);
-		createFolder(pathRef);
-		workingCopies[0].commitWorkingCopy(true, null);
-		workingCopies[1].commitWorkingCopy(true, null);
-		workingCopies[2].commitWorkingCopy(true, null);
-		workingCopies[3].commitWorkingCopy(true, null);
-		this.resultCollector.showRule = true;
-		IType type = workingCopies[0].getType("L");
-		search(type, REFERENCES, SearchPattern.R_ERASURE_MATCH);
-		assertSearchResults(
-			"src/b97606/pack/def/LL.java b97606.pack.def.LL [L] ERASURE_MATCH\n" + 
-			"src/b97606/pack/ref/X.java L<K> b97606.pack.ref.X.getSG() [L] ERASURE_MATCH\n" + 
-			"src/b97606/pack/ref/X.java L<K> b97606.pack.ref.X.getSG() [L] ERASURE_RAW_MATCH"
-		);
-	}
-	finally {
-		deleteFolder(pathDef);
-		deleteFolder(pathRef);
-	}
-}
-
-/**
- * Bug 97614: [1.5][search] Refactoring: renaming of field of a (complex) parametrized type does not replace all occurrences
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=97614"
- */
-public void testBug97614() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b97614/W.js",
-		"package b97614;\n" + 
-		"public class W {\n" + 
-		"	private final Map<String, Y<?, ? extends b97614.X.XX<?, ?>, ? >> m1 = null;     // (a)\n" + 
-		"	public void getStore(final Object o) {\n" + 
-		"		m1.get(o);     // (b)\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"interface Map<K, V> {\n" + 
-		"	V get(Object k);\n" + 
-		"}"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b97614/X.js",
-		"package b97614;\n" + 
-		"import java.io.Serializable;\n" + 
-		"public interface X<T extends X<T, U, V>, \n" + 
-		"				   U extends X.XX<T, V>, \n" + 
-		"				   V extends X.XY> {\n" + 
-		"	public interface XX<TT extends X<TT, ?, UU>, \n" + 
-		"	                   UU extends X.XY> \n" + 
-		"			extends	Serializable {\n" + 
-		"	}\n" + 
-		"	public interface XY extends Serializable {\n" + 
-		"	}\n" + 
-		"}"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b97614/Y.js",
-		"package b97614;\n" + 
-		"public class Y<T extends X<T, U, V>, U extends X.XX<T, V>, V extends X.XY> {\n" + 
-		"}\n"
-	);
-	IField field = workingCopies[0].getType("W").getField("m1");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/b97614/W.java void b97614.W.getStore(Object) [m1] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 98378: [search] does not find method references in anonymous class of imported jarred plugin
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=98378"
- */
-public void testBug98378() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b98378/X.js",
-		"package b98378;\n" + 
-		"public class  X implements java.lang.CharSequence {\n" + 
-		"	public int length() {\n" + 
-		"		return 1;\n" + 
-		"	}\n" + 
-		"}"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b98378/Y.js",
-		"package b98378;\n" + 
-		"public class Y {\n" + 
-		"	public int length() {\n" + 
-		"		return -1;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	String jclPath = getExternalJCLPathString("1.5");
-	IType type = getClassFile("JavaSearchBugs", jclPath, "java.lang", "CharSequence.class").getType();
-	IFunction method = type.getFunction("length", new String[] {});
-	search(method, DECLARATIONS, SearchEngine.createHierarchyScope(type, this.wcOwner));
-	assertSearchResults(
-		jclPath + " int java.lang.CharSequence.length() EXACT_MATCH\n" + 
-		jclPath + " int java.lang.String.length() EXACT_MATCH"
-	);
-}
-public void testBug98378b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b98378/X.js",
-		"package b98378;\n" + 
-		"public class  X implements java.lang.CharSequence {\n" + 
-		"	public int length() {\n" + 
-		"		return 1;\n" + 
-		"	}\n" + 
-		"}"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b98378/Y.js",
-		"package b98378;\n" + 
-		"public class Y {\n" + 
-		"	public int length() {\n" + 
-		"		return -1;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	String jclPath = getExternalJCLPathString("1.5");
-	IType type = getClassFile("JavaSearchBugs", jclPath, "java.lang", "CharSequence.class").getType();
-	IFunction method = type.getFunction("length", new String[] {});
-	search(method, DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE, SearchEngine.createHierarchyScope(type, this.wcOwner));
-	assertSearchResults(
-		"src/b98378/X.java int b98378.X.length() [length] EXACT_MATCH\n" + 
-		jclPath + " int java.lang.CharSequence.length() EXACT_MATCH\n" + 
-		jclPath + " int java.lang.String.length() EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 99600: [search] Java model exception on "Move to new file" on inner type with inner type
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=99600"
- */
-public void testBug99600() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b99600/Test.js",
-		"package b99600;\n" + 
-		"public class Test {\n" + 
-		"	public class C1 {}\n" + 
-		"	public class C2 {\n" + 
-		"		class C3 {\n" + 
-		"			int foo(C1 c) { return 0; }\n" + 
-		"		}\n" + 
-		"		public void foo(C1 c, int i) {\n" + 
-		"			new C3().foo(c);\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("Test").getType("C2");
-	new SearchEngine(this.workingCopies).searchDeclarationsOfSentMessages(type, resultCollector, null);
-	assertSearchResults(
-		"src/b99600/Test.java int b99600.Test$C2$C3.foo(C1) [foo(C1 c)] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 99903: [1.5][search] range wrong for package-info
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=99903"
- */
-public void testBug99903_annotation() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b99903/package-info.js",
-		"/**\n" + 
-		" * @see Test\n" + 
-		" */\n" + 
-		"@Annot\n" + 
-		"package b99903;\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b99903/Test.js",
-		"package b99903;\n" + 
-		"public class Test {\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b99903/Annot.js",
-		"package b99903;\n" + 
-		"public @interface Annot {\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[2].getType("Annot");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b99903/package-info.java [Annot] EXACT_MATCH"
-	);
-}
-public void testBug99903_javadoc() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b99903/package-info.js",
-		"/**\n" + 
-		" * @see Test\n" + 
-		" */\n" + 
-		"@Annot\n" + 
-		"package b99903;\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b99903/Test.js",
-		"package b99903;\n" + 
-		"public class Test {\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b99903/Annot.js",
-		"package b99903;\n" + 
-		"public @interface Annot {\n" + 
-		"}\n"
-	);
-	resultCollector.showInsideDoc = true;
-	IType type = workingCopies[1].getType("Test");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b99903/package-info.java [Test] EXACT_MATCH INSIDE_JAVADOC"
-	);
-}
-
-/**
- * Bug 100695: [1.5][search] Renaming a field of generic array type has no effect
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=100695"
- */
-public void testBug100695() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100695/Test.js",
-		"package b100695;\n" + 
-		"public class Test {\n" + 
-		"	Class<Class>[] foo;\n" + 
-		"	Class<Class>[] bar = foo;\n" + 
-		"	Test() {\n" + 
-		"		foo = null;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IField field = workingCopies[0].getType("Test").getField("foo");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/b100695/Test.java b100695.Test.bar [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java b100695.Test() [foo] EXACT_MATCH"
-	);
-}
-public void testBug100695a() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100695/Test.js",
-		"package b100695;\n" + 
-		"public class Test {\n" + 
-		"	Class<Class>[] foo;\n" + 
-		"	Class<Class>[] bar = foo;\n" + 
-		"	Test() {\n" + 
-		"		foo = null;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IField field = workingCopies[0].getType("Test").getField("foo");
-	search(field, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b100695/Test.java b100695.Test.foo [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java b100695.Test.bar [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java b100695.Test() [foo] EXACT_MATCH"
-	);
-}
-public void testBug100695b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100695/Test.js",
-		"package b100695;\n" + 
-		"public class Test {\n" + 
-		"	Class<Class> foo;\n" + 
-		"	Class<Class> bar = foo;\n" + 
-		"	Test() {\n" + 
-		"		foo = null;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IField field = workingCopies[0].getType("Test").getField("foo");
-	search(field, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b100695/Test.java b100695.Test.foo [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java b100695.Test.bar [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java b100695.Test() [foo] EXACT_MATCH"
-	);
-}
-public void testBug100695c() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100695/Test.js",
-		"package b100695;\n" + 
-		"public class Test {\n" + 
-		"	Class[] foo;\n" + 
-		"	Class[] bar = foo;\n" + 
-		"	Test() {\n" + 
-		"		foo = null;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IField field = workingCopies[0].getType("Test").getField("foo");
-	search(field, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b100695/Test.java b100695.Test.foo [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java b100695.Test.bar [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java b100695.Test() [foo] EXACT_MATCH"
-	);
-}
-public void testBug100695d() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100695/Test.js",
-		"package b100695;\n" + 
-		"public class Test {\n" + 
-		"	  public Class<Class>[] foo(Class<Class>[] a) {\n" + 
-		"		  return a;\n" + 
-		"	  }\n" + 
-		"	  void bar() {\n" + 
-		"		  foo(new Class[0]);\n" + 
-		"	  }\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("Test").getFunctions()[0];
-	search(method, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b100695/Test.java Class<Class>[] b100695.Test.foo(Class<Class>[]) [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java void b100695.Test.bar() [foo(new Class[0])] EXACT_MATCH"
-	);
-}
-public void testBug100695e() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100695/Test.js",
-		"package b100695;\n" + 
-		"public class Test {\n" + 
-		"	  public Class<Class> foo(Class<Class> a) {\n" + 
-		"		  return a;\n" + 
-		"	  }\n" + 
-		"	  void bar() {\n" + 
-		"		  foo(null);\n" + 
-		"	  }\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("Test").getFunctions()[0];
-	search(method, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b100695/Test.java Class<Class> b100695.Test.foo(Class<Class>) [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java void b100695.Test.bar() [foo(null)] EXACT_MATCH"
-	);
-}
-public void testBug100695f() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100695/Test.js",
-		"package b100695;\n" + 
-		"public class Test {\n" + 
-		"	  public Class[] foo(Class[] a) {\n" + 
-		"		  return a;\n" + 
-		"	  }\n" + 
-		"	  void bar() {\n" + 
-		"		  foo(new Class[0]);\n" + 
-		"	  }\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("Test").getFunctions()[0];
-	search(method, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/b100695/Test.java Class[] b100695.Test.foo(Class[]) [foo] EXACT_MATCH\n" + 
-		"src/b100695/Test.java void b100695.Test.bar() [foo(new Class[0])] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 100772: [1.5][search] Search for declarations in hierarchy reports to many matches
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=100772"
- */
-private void setUpBug100772_HierarchyScope_ClassAndSubclass() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100772/Test.js",
-		"package b100772;\n" + 
-		"class Test<T> {\n" + 
-		"    public void foo(T t) {}\n" + 
-		"    public void foo(Class c) {}\n" + 
-		"}\n" + 
-		"class Sub extends Test<String> {\n" + 
-		"    public void foo(String str) {}\n" + 
-		"    public void foo(Exception e) {}\n" + 
-		"}\n"
-	);
-}
-public void testBug100772_HierarchyScope_ClassAndSubclass01() throws CoreException {
-	setUpBug100772_HierarchyScope_ClassAndSubclass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Sub.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_ClassAndSubclass02() throws CoreException {
-	setUpBug100772_HierarchyScope_ClassAndSubclass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Sub.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_ClassAndSubclass03() throws CoreException {
-	setUpBug100772_HierarchyScope_ClassAndSubclass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QClass;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(Class) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_ClassAndSubclass04() throws CoreException {
-	setUpBug100772_HierarchyScope_ClassAndSubclass();
-	IType type = workingCopies[0].getType("Sub");
-	IFunction method = type.getFunction("foo", new String[] { "QString;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Sub.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_ClassAndSubclass05() throws CoreException {
-	setUpBug100772_HierarchyScope_ClassAndSubclass();
-	IType type = workingCopies[0].getType("Sub");
-	IFunction method = type.getFunction("foo", new String[] { "QException;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Sub.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-private void setUpBug100772_HierarchyScope_InterfacesAndClass() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100772/Test.js",
-		"package b100772;\n" + 
-		"interface Test<T> {\n" + 
-		"    public void foo(T t);\n" + 
-		"    public void foo(Class c);\n" + 
-		"}\n" + 
-		"interface Sub extends Test<String> {\n" + 
-		"    public void foo(String str);\n" + 
-		"    public void foo(Exception e);\n" + 
-		"}\n" +
-		"class X implements Test<String> {\n" + 
-		"    public void foo(String str) {}\n" + 
-		"    public void foo(Class c) {}\n" + 
-		"    public void foo(Exception e) {}\n" + 
-		"}\n"
-	);
-}
-public void testBug100772_HierarchyScope_InterfacesAndClass01() throws CoreException {
-	setUpBug100772_HierarchyScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.X.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_InterfacesAndClass02() throws CoreException {
-	setUpBug100772_HierarchyScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.X.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_InterfacesAndClass03() throws CoreException {
-	setUpBug100772_HierarchyScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QClass;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(Class) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.X.foo(Class) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_InterfacesAndClass04() throws CoreException {
-	setUpBug100772_HierarchyScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("Sub");
-	IFunction method = type.getFunction("foo", new String[] { "QString;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Sub.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_InterfacesAndClass05() throws CoreException {
-	setUpBug100772_HierarchyScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("Sub");
-	IFunction method = type.getFunction("foo", new String[] { "QException;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Sub.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_InterfacesAndClass06() throws CoreException {
-	setUpBug100772_HierarchyScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("X");
-	IFunction method = type.getFunction("foo", new String[] { "QString;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.X.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_InterfacesAndClass07() throws CoreException {
-	setUpBug100772_HierarchyScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("X");
-	IFunction method = type.getFunction("foo", new String[] { "QClass;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(Class) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.X.foo(Class) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_InterfacesAndClass08() throws CoreException {
-	setUpBug100772_HierarchyScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("X");
-	IFunction method = type.getFunction("foo", new String[] { "QException;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.X.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-private void setUpBug100772_HierarchyScope_Complex() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100772/Test.js",
-		"package b100772;\n" + 
-		"public class X<T> implements IX<T> {\n" + 
-		"	public void foo(T t) {}\n" + 
-		"}\n" + 
-		"class XX extends X<String> {\n" + 
-		"	public void foo(String s) {}\n" + 
-		"	public void foo(Exception e) {}\n" + 
-		"}\n" + 
-		"interface IX<U> {\n" + 
-		"	public void foo(U u);\n" + 
-		"}\n" + 
-		"class Y implements IX<String> {\n" + 
-		"	public void foo(String s) {}\n" + 
-		"	public void foo(Exception e) {}\n" + 
-		"}\n" + 
-		"interface IXX<V extends Exception> {\n" + 
-		"	public void foo(V v);\n" + 
-		"}\n" + 
-		"class Z extends Y implements IXX<Exception> {\n" + 
-		"	public void foo(String s) {}\n" + 
-		"	public void foo(Exception e) {}\n" + 
-		"}\n"
-	);
-}
-public void testBug100772_HierarchyScope_Complex01() throws CoreException {
-	setUpBug100772_HierarchyScope_Complex();
-	IType type = workingCopies[0].getType("IX");
-	IFunction method = type.getFunction("foo", new String[] { "QU;" });
-	search(method, DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.X.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.XX.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.IX.foo(U) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Y.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Z.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_Complex02() throws CoreException {
-	setUpBug100772_HierarchyScope_Complex();
-	IType type = workingCopies[0].getType("Z");
-	IFunction method = type.getFunction("foo", new String[] { "QString;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.IX.foo(U) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Y.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Z.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_Complex03() throws CoreException {
-	setUpBug100772_HierarchyScope_Complex();
-	IType type = workingCopies[0].getType("Z");
-	IFunction method = type.getFunction("foo", new String[] { "QException;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Y.foo(Exception) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.IXX.foo(V) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Z.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_HierarchyScope_Complex04() throws CoreException {
-	setUpBug100772_HierarchyScope_Complex();
-	IType type = workingCopies[0].getType("X");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, UI_DECLARATIONS, SearchEngine.createHierarchyScope(type));
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.X.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.XX.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.IX.foo(U) [foo] EXACT_MATCH"
-	);
-}
-private void setUpBug100772_ProjectScope_ClassAndSubclass() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100772/Test.js",
-		"package b100772;\n" + 
-		"class Test<T> {\n" + 
-		"    public void foo(T t) {}\n" + 
-		"    public void foo(Class c) {}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b100772/Sub.js",
-		"package b100772;\n" + 
-		"class Sub extends Test<String> {\n" + 
-		"    public void foo(String str) {}\n" + 
-		"    public void foo(Exception e) {}\n" + 
-		"}\n"
-	);
-}
-public void testBug100772_ProjectScope_ClassAndSubclass01() throws CoreException {
-	setUpBug100772_ProjectScope_ClassAndSubclass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_ClassAndSubclass02() throws CoreException {
-	setUpBug100772_ProjectScope_ClassAndSubclass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_ClassAndSubclass03() throws CoreException {
-	setUpBug100772_ProjectScope_ClassAndSubclass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QClass;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(Class) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_ClassAndSubclass04() throws CoreException {
-	setUpBug100772_ProjectScope_ClassAndSubclass();
-	IType type = workingCopies[1].getType("Sub");
-	IFunction method = type.getFunction("foo", new String[] { "QString;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_ClassAndSubclass05() throws CoreException {
-	setUpBug100772_ProjectScope_ClassAndSubclass();
-	IType type = workingCopies[1].getType("Sub");
-	IFunction method = type.getFunction("foo", new String[] { "QException;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-private void setUpBug100772_ProjectScope_InterfacesAndClass() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100772/Test.js",
-		"package b100772;\n" + 
-		"interface Test<T> {\n" + 
-		"    public void foo(T t);\n" + 
-		"    public void foo(Class c);\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b100772/Sub.js",
-		"package b100772;\n" + 
-		"interface Sub extends Test<String> {\n" + 
-		"    public void foo(String str);\n" + 
-		"    public void foo(Exception e);\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b100772/X.js",
-		"package b100772;\n" + 
-		"class X implements Test<String> {\n" + 
-		"    public void foo(String str) {}\n" + 
-		"    public void foo(Class c) {}\n" + 
-		"    public void foo(Exception e) {}\n" + 
-		"}\n"
-	);
-}
-public void testBug100772_ProjectScope_InterfacesAndClass01() throws CoreException {
-	setUpBug100772_ProjectScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_InterfacesAndClass02() throws CoreException {
-	setUpBug100772_ProjectScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_InterfacesAndClass03() throws CoreException {
-	setUpBug100772_ProjectScope_InterfacesAndClass();
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunction("foo", new String[] { "QClass;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(Class) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(Class) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_InterfacesAndClass04() throws CoreException {
-	setUpBug100772_ProjectScope_InterfacesAndClass();
-	IType type = workingCopies[1].getType("Sub");
-	IFunction method = type.getFunction("foo", new String[] { "QString;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_InterfacesAndClass05() throws CoreException {
-	setUpBug100772_ProjectScope_InterfacesAndClass();
-	IType type = workingCopies[1].getType("Sub");
-	IFunction method = type.getFunction("foo", new String[] { "QException;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(Exception) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_InterfacesAndClass06() throws CoreException {
-	setUpBug100772_ProjectScope_InterfacesAndClass();
-	IType type = workingCopies[2].getType("X");
-	IFunction method = type.getFunction("foo", new String[] { "QString;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Test.java void b100772.Test.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_InterfacesAndClass07() throws CoreException {
-	setUpBug100772_ProjectScope_InterfacesAndClass();
-	IType type = workingCopies[2].getType("X");
-	IFunction method = type.getFunction("foo", new String[] { "QClass;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Test.java void b100772.Test.foo(Class) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(Class) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_InterfacesAndClass08() throws CoreException {
-	setUpBug100772_ProjectScope_InterfacesAndClass();
-	IType type = workingCopies[2].getType("X");
-	IFunction method = type.getFunction("foo", new String[] { "QException;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/Sub.java void b100772.Sub.foo(Exception) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-private void setUpBug100772_ProjectScope_Complex() throws CoreException {
-	workingCopies = new IJavaScriptUnit[6];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b100772/X.js",
-		"package b100772;\n" + 
-		"public class X<T> implements IX<T> {\n" + 
-		"	public void foo(T t) {}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b100772/XX.js",
-		"package b100772;\n" + 
-		"class XX extends X<String> {\n" + 
-		"	public void foo(String s) {}\n" + 
-		"	public void foo(Exception e) {}\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b100772/IX.js",
-		"package b100772;\n" + 
-		"interface IX<U> {\n" + 
-		"	public void foo(U u);\n" + 
-		"}\n"
-	);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b100772/Y.js",
-		"package b100772;\n" + 
-		"class Y implements IX<String> {\n" + 
-		"	public void foo(String s) {}\n" + 
-		"	public void foo(Exception e) {}\n" + 
-		"}\n"
-	);
-	workingCopies[4] = getWorkingCopy("/JavaSearchBugs/src/b100772/IXX.js",
-		"package b100772;\n" + 
-		"interface IXX<V extends Exception> {\n" + 
-		"	public void foo(V v);\n" + 
-		"}\n"
-	);
-	workingCopies[5] = getWorkingCopy("/JavaSearchBugs/src/b100772/Z.js",
-		"package b100772;\n" + 
-		"class Z extends Y implements IXX<Exception> {\n" + 
-		"	public void foo(String s) {}\n" + 
-		"	public void foo(Exception e) {}\n" + 
-		"}\n"
-	);
-}
-public void testBug100772_ProjectScope_Complex01() throws CoreException {
-	setUpBug100772_ProjectScope_Complex();
-	IType type = workingCopies[2].getType("IX");
-	IFunction method = type.getFunction("foo", new String[] { "QU;" });
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/IX.java void b100772.IX.foo(U) [foo] EXACT_MATCH\n" + 
-		"src/b100772/X.java void b100772.X.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/XX.java void b100772.XX.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Y.java void b100772.Y.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Z.java void b100772.Z.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_Complex02() throws CoreException {
-	setUpBug100772_ProjectScope_Complex();
-	IType type = workingCopies[5].getType("Z");
-	IFunction method = type.getFunction("foo", new String[] { "QString;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/IX.java void b100772.IX.foo(U) [foo] EXACT_MATCH\n" + 
-		"src/b100772/XX.java void b100772.XX.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Y.java void b100772.Y.foo(String) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Z.java void b100772.Z.foo(String) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_Complex03() throws CoreException {
-	setUpBug100772_ProjectScope_Complex();
-	IType type = workingCopies[5].getType("Z");
-	IFunction method = type.getFunction("foo", new String[] { "QException;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/IXX.java void b100772.IXX.foo(V) [foo] EXACT_MATCH\n" + 
-		"src/b100772/XX.java void b100772.XX.foo(Exception) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Y.java void b100772.Y.foo(Exception) [foo] EXACT_MATCH\n" + 
-		"src/b100772/Z.java void b100772.Z.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-public void testBug100772_ProjectScope_Complex04() throws CoreException {
-	setUpBug100772_ProjectScope_Complex();
-	IType type = workingCopies[0].getType("X");
-	IFunction method = type.getFunction("foo", new String[] { "QT;" });
-	search(method, UI_DECLARATIONS);
-	assertSearchResults(
-		"src/b100772/X.java void b100772.X.foo(T) [foo] EXACT_MATCH\n" + 
-		"src/b100772/IX.java void b100772.IX.foo(U) [foo] EXACT_MATCH\n" + 
-		"src/b100772/XX.java void b100772.XX.foo(String) [foo] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 108088: [search] Inaccurate search match for method invocations with literal arguments
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=108088"
- */
-public void testBug108088() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b108088", "Test108088.js");
-	IType type = unit.getType("A108088");
-	IFunction method = type.getFunction("subroutine", new String[] { "F" });
-	SearchPattern pattern = SearchPattern.createPattern(method, REFERENCES, EXACT_RULE);
-	assertNotNull("Pattern should not be null", pattern);
-	search(pattern, getJavaSearchScopeBugs(), resultCollector);
-	assertSearchResults(
-		"src/b108088/B108088.java void b108088.B108088.doit(A108088, String) [subroutine(1.2f)] EXACT_MATCH"
-	);
-}
-
-/**
- * To get these tests search matches in a workspace, do NOT forget to modify files
- * to set them as working copies.
- *
- * @test Bug 110060: [plan][search] Add support for Camel Case search pattern
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=110060"
- */
-// Types search
-private void setUpBug110060_TypePattern() throws CoreException {
-	workingCopies = new IJavaScriptUnit[5];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110060/AA.js",
-		"package b110060;\n" + 
-		"public class AA {\n" +
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b110060/AAxx.js",
-		"package b110060;\n" + 
-		"public class AAxx {\n" +
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b110060/AxxAyy.js",
-		"package b110060;\n" + 
-		"public class AxxAyy {\n" +
-		"}\n"
-	);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b110060/AxA.js",
-		"package b110060;\n" + 
-		"public class AxA {\n" +
-		"}\n"
-	);
-	workingCopies[4] = getWorkingCopy("/JavaSearchBugs/src/b110060/Test.js",
-		"package b110060;\n" + 
-		"public class Test {\n" +
-		"	AA aa;\n" + 
-		"	AAxx aaxx;\n" + 
-		"	AxA axa;\n" + 
-		"	AxxAyy axxayy;\n" + 
-		"}\n"
-	);
-}
-public void testBug110060_TypePattern01() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("AA", TYPE, REFERENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java b110060.Test.aa [AA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [AxA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [AxxAyy] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern02() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("AA", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AA.java b110060.AA [AA] EXACT_MATCH\n" + 
-		"src/b110060/AAxx.java b110060.AAxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/AxA.java b110060.AxA [AxA] EXACT_MATCH\n" + 
-		"src/b110060/AxxAyy.java b110060.AxxAyy [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aa [AA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [AxA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [AxxAyy] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern03() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("AAx", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AAxx.java b110060.AAxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [AAxx] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern04() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("Axx", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AxxAyy.java b110060.AxxAyy [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [AxxAyy] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern05() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("Ax", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AxA.java b110060.AxA [AxA] EXACT_MATCH\n" + 
-		"src/b110060/AxxAyy.java b110060.AxxAyy [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [AxA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [AxxAyy] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern06() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("A*A*", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AA.java b110060.AA [AA] EXACT_MATCH\n" + 
-		"src/b110060/AAxx.java b110060.AAxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/AxA.java b110060.AxA [AxA] EXACT_MATCH\n" + 
-		"src/b110060/AxxAyy.java b110060.AxxAyy [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aa [AA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [AxA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [AxxAyy] EXACT_MATCH\n" + 
-		""+ getExternalJCLPathString("1.5") + " java.lang.annotation.Annotation EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern07() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("aa", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults("");
-}
-
-public void testBug110060_TypePattern08() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("aa", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH);
-	assertSearchResults(
-		"src/b110060/AA.java b110060.AA [AA] EXACT_MATCH\n" + 
-		"src/b110060/AAxx.java b110060.AAxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aa [AA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [AAxx] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern09() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("AA", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE);
-	assertSearchResults(
-		"src/b110060/AA.java b110060.AA [AA] EXACT_MATCH\n" + 
-		"src/b110060/AAxx.java b110060.AAxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/AxA.java b110060.AxA [AxA] EXACT_MATCH\n" + 
-		"src/b110060/AxxAyy.java b110060.AxxAyy [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aa [AA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [AxA] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [AxxAyy] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern10() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("AxAx", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults("");
-}
-
-public void testBug110060_TypePattern11() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("AxxA", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AxxAyy.java b110060.AxxAyy [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [AxxAyy] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_TypePattern12() throws CoreException {
-	setUpBug110060_TypePattern();
-	search("AxXA", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AxxAyy.java b110060.AxxAyy [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [AxxAyy] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_AllTypeNames01() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"AA".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx\n" + 
-		"b110060.AxA\n" + 
-		"b110060.AxxAyy",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames02() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"AA".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx\n" + 
-		"b110060.AxA\n" + 
-		"b110060.AxxAyy",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames03() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"AA".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx\n" + 
-		"b110060.AxA\n" + 
-		"b110060.AxxAyy",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames04() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"AA".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx\n" + 
-		"b110060.AxA\n" + 
-		"b110060.AxxAyy",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames05() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"AA".toCharArray(),
-		SearchPattern.R_PREFIX_MATCH,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames06() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"AA".toCharArray(),
-		SearchPattern.R_CASE_SENSITIVE,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames07() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"AA".toCharArray(),
-		SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames08() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames09() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames10() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames11() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames12() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_PREFIX_MATCH,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b110060.AA\n" + 
-		"b110060.AAxx",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames13() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_CASE_SENSITIVE,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"",
-		requestor);
-}
-
-public void testBug110060_AllTypeNames14() throws CoreException {
-	setUpBug110060_TypePattern();
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"",
-		requestor);
-}
-
-// Constructor search
-private void setUpBug110060_ConstructorPattern() throws CoreException {
-	workingCopies = new IJavaScriptUnit[5];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110060/AA.js",
-		"package b110060;\n" + 
-		"public class AA {\n" +
-		"	AA() {}\n" +
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b110060/AAxx.js",
-		"package b110060;\n" + 
-		"public class AAxx {\n" +
-		"	AAxx() {}\n" +
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b110060/AxxAyy.js",
-		"package b110060;\n" + 
-		"public class AxxAyy {\n" +
-		"	AxxAyy() {}\n" +
-		"}\n"
-	);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b110060/AxA.js",
-		"package b110060;\n" + 
-		"public class AxA {\n" +
-		"	AxA() {}\n" +
-		"}\n"
-	);
-	workingCopies[4] = getWorkingCopy("/JavaSearchBugs/src/b110060/Test.js",
-		"package b110060;\n" + 
-		"public class Test {\n" +
-		"	AA aa = new AA();\n" + 
-		"	AAxx aaxx = new AAxx();\n" + 
-		"	AxA axa = new AxA();\n" + 
-		"	AxxAyy axxayy = new AxxAyy();\n" + 
-		"}\n"
-	);
-}
-public void testBug110060_ConstructorPattern01() throws CoreException {
-	setUpBug110060_ConstructorPattern();
-	search("AA", CONSTRUCTOR, REFERENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java b110060.Test.aa [new AA()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [new AAxx()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [new AxA()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [new AxxAyy()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_ConstructorPattern02() throws CoreException {
-	setUpBug110060_ConstructorPattern();
-	search("AA", CONSTRUCTOR, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AA.java b110060.AA() [AA] EXACT_MATCH\n" + 
-		"src/b110060/AAxx.java b110060.AAxx() [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/AxA.java b110060.AxA() [AxA] EXACT_MATCH\n" + 
-		"src/b110060/AxxAyy.java b110060.AxxAyy() [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aa [new AA()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [new AAxx()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [new AxA()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [new AxxAyy()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_ConstructorPattern03() throws CoreException {
-	setUpBug110060_ConstructorPattern();
-	search("AAx", CONSTRUCTOR, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AAxx.java b110060.AAxx() [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [new AAxx()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_ConstructorPattern04() throws CoreException {
-	setUpBug110060_ConstructorPattern();
-	search("Axx", CONSTRUCTOR, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AxxAyy.java b110060.AxxAyy() [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [new AxxAyy()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_ConstructorPattern05() throws CoreException {
-	setUpBug110060_ConstructorPattern();
-	search("Ax", CONSTRUCTOR, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AxA.java b110060.AxA() [AxA] EXACT_MATCH\n" + 
-		"src/b110060/AxxAyy.java b110060.AxxAyy() [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [new AxA()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [new AxxAyy()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_ConstructorPattern06() throws CoreException {
-	setUpBug110060_ConstructorPattern();
-	search("A*A*", CONSTRUCTOR, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/AA.java b110060.AA() [AA] EXACT_MATCH\n" + 
-		"src/b110060/AAxx.java b110060.AAxx() [AAxx] EXACT_MATCH\n" + 
-		"src/b110060/AxA.java b110060.AxA() [AxA] EXACT_MATCH\n" + 
-		"src/b110060/AxxAyy.java b110060.AxxAyy() [AxxAyy] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aa [new AA()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aaxx [new AAxx()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axa [new AxA()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.axxayy [new AxxAyy()] EXACT_MATCH"
-	);
-}
-
-// Methods search
-private void setUpBug110060_MethodPattern() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110060/Test.js",
-		"package b110060;\n" + 
-		"public class Test {\n" +
-		"	void aMethodWithNothingSpecial() {}\n" + 
-		"	void aMethodWith1Digit() {}\n" + 
-		"	void aMethodWith1DigitAnd_AnUnderscore() {}\n" + 
-		"	void aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores() {}\n" + 
-		"	void otherMethodWhichStartsWithAnotherLetter() {}\n" + 
-		"	void testReferences() {\n" + 
-		"		aMethodWith1Digit();\n" + 
-		"		aMethodWith1DigitAnd_AnUnderscore();\n" + 
-		"		aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores();\n" + 
-		"		aMethodWithNothingSpecial();\n" + 
-		"		otherMethodWhichStartsWithAnotherLetter();\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-}
-public void testBug110060_MethodPattern01() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("MWD", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults("");
-}
-
-public void testBug110060_MethodPattern02() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("AMWD", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults("");
-}
-
-public void testBug110060_MethodPattern03() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("aMWD", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Digit() [aMethodWith1Digit] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1DigitAnd_AnUnderscore() [aMethodWith1DigitAnd_AnUnderscore] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Digit()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1DigitAnd_AnUnderscore()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_MethodPattern04() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("aMW", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java void b110060.Test.aMethodWithNothingSpecial() [aMethodWithNothingSpecial] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Digit() [aMethodWith1Digit] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1DigitAnd_AnUnderscore() [aMethodWith1DigitAnd_AnUnderscore] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Digit()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1DigitAnd_AnUnderscore()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWithNothingSpecial()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_MethodPattern05() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("aMethod", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java void b110060.Test.aMethodWithNothingSpecial() [aMethodWithNothingSpecial] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Digit() [aMethodWith1Digit] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1DigitAnd_AnUnderscore() [aMethodWith1DigitAnd_AnUnderscore] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Digit()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1DigitAnd_AnUnderscore()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWithNothingSpecial()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_MethodPattern06() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("aMethodWith1", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Digit() [aMethodWith1Digit] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1DigitAnd_AnUnderscore() [aMethodWith1DigitAnd_AnUnderscore] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Digit()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1DigitAnd_AnUnderscore()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_MethodPattern07() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("*Method*With*A*", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java void b110060.Test.aMethodWithNothingSpecial() [aMethodWithNothingSpecial] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1DigitAnd_AnUnderscore() [aMethodWith1DigitAnd_AnUnderscore] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.otherMethodWhichStartsWithAnotherLetter() [otherMethodWhichStartsWithAnotherLetter] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1DigitAnd_AnUnderscore()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWithNothingSpecial()] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [otherMethodWhichStartsWithAnotherLetter()] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_MethodPattern08() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("aMW1D", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults("");
-}
-
-public void testBug110060_MethodPattern09() throws CoreException {
-	setUpBug110060_MethodPattern();
-	search("aMWOOODASU", METHOD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java void b110060.Test.aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aMethodWith1Or2_Or_3_Or__4__DigitsAnd_Several_Underscores()] EXACT_MATCH"
-	);
-}
-
-// Fields search
-private void setUpBug110060_FieldPattern() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110060/Test.js",
-		"package b110060;\n" + 
-		"public class Test {\n" +
-		"	Object aFieldWithNothingSpecial;\n" + 
-		"	Object aFieldWithS$Dollar;\n" + 
-		"	Object aFieldWith$Several$DollarslAnd1DigitAnd_1Underscore;\n" + 
-		"	Object aStrangeFieldWith$$$$$$$$$$$$$$$SeveraContiguousDollars;\n" + 
-		"	Object otherFieldWhichStartsWithAnotherLetter;\n" + 
-		"	void testReferences() {\n" + 
-		"		Object o0 = aFieldWithNothingSpecial;\n" + 
-		"		Object o1 = aFieldWithS$Dollar;\n" + 
-		"		Object o2 = aFieldWith$Several$DollarslAnd1DigitAnd_1Underscore;\n" + 
-		"		Object o3 = aStrangeFieldWith$$$$$$$$$$$$$$$SeveraContiguousDollars;\n" + 
-		"	}\n" + 
-		"	Object oF = otherFieldWhichStartsWithAnotherLetter;\n" + 
-		"}\n"
-	);
-}
-public void testBug110060_FieldPattern01() throws CoreException {
-	setUpBug110060_FieldPattern();
-	search("aFWSD", FIELD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java b110060.Test.aFieldWithS$Dollar [aFieldWithS$Dollar] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.aFieldWith$Several$DollarslAnd1DigitAnd_1Underscore [aFieldWith$Several$DollarslAnd1DigitAnd_1Underscore] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aFieldWithS$Dollar] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aFieldWith$Several$DollarslAnd1DigitAnd_1Underscore] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_FieldPattern02() throws CoreException {
-	setUpBug110060_FieldPattern();
-	search("afwsd", FIELD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults("");
-}
-
-public void testBug110060_FieldPattern03() throws CoreException {
-	setUpBug110060_FieldPattern();
-	search("aFWS$", FIELD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java b110060.Test.aFieldWithS$Dollar [aFieldWithS$Dollar] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aFieldWithS$Dollar] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_FieldPattern04() throws CoreException {
-	setUpBug110060_FieldPattern();
-	search("aSFWSCD", FIELD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java b110060.Test.aStrangeFieldWith$$$$$$$$$$$$$$$SeveraContiguousDollars [aStrangeFieldWith$$$$$$$$$$$$$$$SeveraContiguousDollars] EXACT_MATCH\n" + 
-		"src/b110060/Test.java void b110060.Test.testReferences() [aStrangeFieldWith$$$$$$$$$$$$$$$SeveraContiguousDollars] EXACT_MATCH"
-	);
-}
-
-public void testBug110060_FieldPattern05() throws CoreException {
-	setUpBug110060_FieldPattern();
-	search("oF", FIELD, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b110060/Test.java b110060.Test.otherFieldWhichStartsWithAnotherLetter [otherFieldWhichStartsWithAnotherLetter] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.oF [oF] EXACT_MATCH\n" + 
-		"src/b110060/Test.java b110060.Test.oF [otherFieldWhichStartsWithAnotherLetter] EXACT_MATCH"
-	);
-}
-
-/**
- * @test Bug 110291: [search] BasicSearchEngine return constructor declarations that doesn't exist in source
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=110291"
- */
-public void testBug110291() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110291/Test110291XX.js",
-		"package b110291;\n" + 
-		"public class Test110291XX {\n" + 
-		"	class Test110291YY {}" +
-		"}\n"
-	);
-	search("Test110291", CONSTRUCTOR, DECLARATIONS, SearchPattern.R_PREFIX_MATCH);
-	assertSearchResults(
-		"src/b110291/Test110291XX.java b110291.Test110291XX$Test110291YY [Test110291YY] EXACT_MATCH"
-	);
-}
-
-/**
- * @test Bug 110336: [plan][search] Should optionaly return the local variable for type reference
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=110336"
- */
-public void testBug110336a() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110336/Test.js",
-		"package b110336;\n" + 
-		"public class Test {\n" + 
-		"	<TP extends Test> void method(Class<Test> clazz) {\n" + 
-		"		Test localVar1 = new Test();\n" + 
-		"		Class<Test> localVar2 = new Class<Test>();\n" + 
-		"		localVar1.method(localVar2);\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[0].getType("Test");
-	TypeReferencesCollector collector = new TypeReferencesCollector();
-	search(type, REFERENCES, EXACT_RULE, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b110336/Test.java void b110336.Test.method(Class<Test>).TP [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.method(Class<Test>).clazz [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.method(Class<Test>).localVar1 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.method(Class<Test>).localVar1 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.method(Class<Test>).localVar2 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.method(Class<Test>).localVar2 [Test]",
-		collector
-	);
-}
-public void testBug110336b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110336/Test.js",
-		"package b110336;\n" + 
-		"public class Test {\n" + 
-		"	void method1(Test methodParam) {\n" + 
-		"		Test localVar1 = new Test(){\n" + 
-		"			Class c = Test.class;\n" + 
-		"			<TP extends Test> void foo(){\n" + 
-		"				Test o = (Test) null;\n" + 
-		"			}\n" + 
-		"		};\n" + 
-		"	}	\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[0].getType("Test");
-	TypeReferencesCollector collector = new TypeReferencesCollector();
-	search(type, REFERENCES, EXACT_RULE, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b110336/Test.java void b110336.Test.method1(Test):<anonymous>#1 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.method1(Test):<anonymous>#1.c [Test]\n" + 
-		"src/b110336/Test.java void void b110336.Test.method1(Test):<anonymous>#1.foo().TP [Test]\n" + 
-		"src/b110336/Test.java void void b110336.Test.method1(Test):<anonymous>#1.foo().o [Test]\n" + 
-		"src/b110336/Test.java void void b110336.Test.method1(Test):<anonymous>#1.foo().o [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.method1(Test).methodParam [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.method1(Test).localVar1 [Test]",
-		collector
-	);
-}
-public void testBug110336c() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110336/Test.js",
-		"package b110336;\n" + 
-		"public class Test<TP extends X> {\n" + 
-		"	X x;\n" + 
-		"\n" + 
-		"}\n" + 
-		"class X {}\n"
-	);
-	IType type = this.workingCopies[0].getType("X");
-	TypeReferencesCollector collector = new TypeReferencesCollector();
-	search(type, REFERENCES, EXACT_RULE, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b110336/Test.java b110336.Test.TP [X]\n" + 
-		"src/b110336/Test.java b110336.Test.x [X]",
-		collector
-	);
-}
-public void testBug110336d() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110336/Test.js",
-		"package b110336;\n" + 
-		"public class Test {\n" + 
-		"	Test a1Test = null, b1Test = new Test(), c1Test;\n" + 
-		"	Test a2Test = new Test(), b2Test, c2Test = null;\n" + 
-		"	Test a3Test, b3Test = null, c3Test = new Test();\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[0].getType("Test");
-	TypeReferencesCollector collector = new TypeReferencesCollector();
-	search(type, REFERENCES, EXACT_RULE, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b110336/Test.java b110336.Test.a1Test [Test]+[b1Test,c1Test]\n" + 
-		"src/b110336/Test.java b110336.Test.b1Test [Test]\n" + 
-		"src/b110336/Test.java b110336.Test.a2Test [Test]+[b2Test,c2Test]\n" + 
-		"src/b110336/Test.java b110336.Test.a2Test [Test]\n" + 
-		"src/b110336/Test.java b110336.Test.a3Test [Test]+[b3Test,c3Test]\n" + 
-		"src/b110336/Test.java b110336.Test.c3Test [Test]",
-		collector
-	);
-}
-public void testBug110336e() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110336/Test.js",
-		"package b110336;\n" + 
-		"public class Test {\n" + 
-		"	void foo() {\n" + 
-		"		Test lv1 = null, lv2 = new Test(), lv3;\n" + 
-		"		Test lv4 = new Test(), lv5, lv6 = null;\n" + 
-		"		Test lv7, lv8 = null, lv9 = new Test();\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[0].getType("Test");
-	TypeReferencesCollector collector = new TypeReferencesCollector();
-	search(type, REFERENCES, EXACT_RULE, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b110336/Test.java void b110336.Test.foo().lv1 [Test]+[lv2,lv3]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo().lv2 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo().lv4 [Test]+[lv5,lv6]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo().lv4 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo().lv7 [Test]+[lv8,lv9]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo().lv9 [Test]",
-		collector
-	);
-}
-public void testBug110336f() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110336/Test.js",
-		"package b110336;\n" + 
-		"public class Test extends Exception {\n" + 
-		"        void foo(Test test1) { // <- no local element\n" + 
-		"                Test test2; // <- local element\n" + 
-		"                try {\n" + 
-		"                        throw new Test();\n" + 
-		"                }\n" + 
-		"                catch (Test test4) { // <- no local element\n" + 
-		"                }\n" + 
-		"                for(Test test3;;) {} // <- local element\n" + 
-		"        }\n" + 
-		"\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[0].getType("Test");
-	TypeReferencesCollector collector = new TypeReferencesCollector();
-	search(type, REFERENCES, EXACT_RULE, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b110336/Test.java void b110336.Test.foo(Test).test1 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo(Test).test2 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo(Test) [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo(Test).test4 [Test]\n" + 
-		"src/b110336/Test.java void b110336.Test.foo(Test).test3 [Test]",
-		collector
-	);
-}
-public void testBug110336g() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110336/Test.js",
-		"package b110336;\n" + 
-		"public class Test {\n" + 
-		"	{\n" + 
-		"		Test lv1 = null, lv2 = new Test(), lv3;\n" + 
-		"		Test lv4 = new Test(), lv5, lv6 = null;\n" + 
-		"		Test lv7, lv8 = null, lv9 = new Test();\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[0].getType("Test");
-	TypeReferencesCollector collector = new TypeReferencesCollector();
-	search(type, REFERENCES, EXACT_RULE, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b110336/Test.java b110336.Test.{}.lv1 [Test]+[lv2,lv3]\n" + 
-		"src/b110336/Test.java b110336.Test.{}.lv2 [Test]\n" + 
-		"src/b110336/Test.java b110336.Test.{}.lv4 [Test]+[lv5,lv6]\n" + 
-		"src/b110336/Test.java b110336.Test.{}.lv4 [Test]\n" + 
-		"src/b110336/Test.java b110336.Test.{}.lv7 [Test]+[lv8,lv9]\n" + 
-		"src/b110336/Test.java b110336.Test.{}.lv9 [Test]",
-		collector
-	);
-}
-public void testBug110336h() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b110336/Test.js",
-		"package b110336;\n" + 
-		"public class Test {\n" + 
-		"	static {\n" + 
-		"		Test lv1 = null, lv2 = new Test(), lv3;\n" + 
-		"		Test lv4 = new Test(), lv5, lv6 = null;\n" + 
-		"		Test lv7, lv8 = null, lv9 = new Test();\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[0].getType("Test");
-	TypeReferencesCollector collector = new TypeReferencesCollector();
-	search(type, REFERENCES, EXACT_RULE, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"src/b110336/Test.java b110336.Test.static {}.lv1 [Test]+[lv2,lv3]\n" + 
-		"src/b110336/Test.java b110336.Test.static {}.lv2 [Test]\n" + 
-		"src/b110336/Test.java b110336.Test.static {}.lv4 [Test]+[lv5,lv6]\n" + 
-		"src/b110336/Test.java b110336.Test.static {}.lv4 [Test]\n" + 
-		"src/b110336/Test.java b110336.Test.static {}.lv7 [Test]+[lv8,lv9]\n" + 
-		"src/b110336/Test.java b110336.Test.static {}.lv9 [Test]",
-		collector
-	);
-}
-
-/**
- * @test Bug 110422: [search] BasicSearchEngine doesn't find all type declarations
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=110422"
- */
-public void testBug110422a() throws CoreException {
-	search("TestP", TYPE, DECLARATIONS, SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE);
-	assertSearchResults(
-		"lib/b110422.jar b110422.TestPrefix [No source] EXACT_MATCH"
-	);
-}
-public void testBug110422b() throws CoreException {
-	search("TESTP", TYPE, DECLARATIONS, SearchPattern.R_PREFIX_MATCH);
-	assertSearchResults(
-		"lib/b110422.jar b110422.TestPrefix [No source] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 113671: [search] AIOOBE in SearchEngine#searchAllTypeNames
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=113671"
- */
-public void testBug113671() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-	   "java.lang".toCharArray(),
-		SearchPattern.R_EXACT_MATCH,
-		CharOperation.NO_CHAR,
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		WAIT_UNTIL_READY_TO_SEARCH,
-		null
-   );
-	assertSearchResults(
-		"Unexpected all type names",
-		"java.lang.CharSequence\n" + 
-		"java.lang.Class\n" + 
-		"java.lang.CloneNotSupportedException\n" + 
-		"java.lang.Comparable\n" + 
-		"java.lang.Enum\n" + 
-		"java.lang.Error\n" + 
-		"java.lang.Exception\n" + 
-		"java.lang.IllegalMonitorStateException\n" + 
-		"java.lang.InterruptedException\n" + 
-		"java.lang.Object\n" + 
-		"java.lang.RuntimeException\n" + 
-		"java.lang.String\n" + 
-		"java.lang.Throwable",
-		requestor);
-}
-
-/**
- * @test Bug 114539: [search] Internal error when refactoring code with errors
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=114539"
- */
-public void testBug114539() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b114539/Foo.js",
-		"package b114539;\n" + 
-		"public class Foo {\n" + 
-		"	int bar=Bar.FOO;\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b114539/Bar.js",
-		"package b114539;\n" + 
-		"public class Bar {\n" + 
-		"	private static final int FOO=0;\n" + 
-		"}\n"
-	);
-	IField field = this.workingCopies[1].getType("Bar").getField("FOO");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/b114539/Foo.java b114539.Foo.bar [FOO] POTENTIAL_MATCH"
-	);
-}
-
-/**
- * Bug 116459: [search] correct results are missing in java search
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=116459"
- */
-public void testBug116459() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/p1/X.js",
-		"package p1;\n" + 
-		"class X<T> {\n" + 
-		"	X<T> gen;\n" + 
-		"	X<String> param;\n" + 
-		"	X raw;\n" + 
-		"}"
-	);
-	IType type = workingCopies[0].getType("X");
-	this.resultCollector.showRule = true;
-	search(type, REFERENCES, ERASURE_RULE);
-	assertSearchResults(
-		"src/p1/X.java p1.X.gen [X] EXACT_MATCH\n" + 
-		"src/p1/X.java p1.X.param [X] ERASURE_MATCH\n" + 
-		"src/p1/X.java p1.X.raw [X] ERASURE_RAW_MATCH"
-	);
-}
-
-/**
- * @test Bug 119545: [search] Binary java method model elements returned by SearchEngine have unresolved parameter types
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=119545"
- */
-public void testBug119545() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b119545/Test.js",
-		"package b119545;\n" + 
-		"class Test {\n" + 
-		"	void foo(Object o1, Object o2){\n" + 
-		"		if (o1.equals(o2)) {}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("Test");
-	IFunction method = type.getFunctions()[0];
-	searchDeclarationsOfSentMessages(method, this.resultCollector);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " boolean java.lang.Object.equals(java.lang.Object) EXACT_MATCH"
-	);
-}
-
-/**
- * @test Bug 120816: [search] NullPointerException at ...jdt.internal.compiler.lookup.SourceTypeBinding.getMethods
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=120816"
- */
-public void testBug120816a() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b120816/Test.js",
-		"package b120816;\n" + 
-		"public class Test<E> {\n" + 
-		"	String foo(E e) { return \"\"; }\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b120816/Sub.js",
-		"package b120816;\n" + 
-		"public class Sub extends Test<Exception> {\n" +
-		"	String foo(RuntimeException e) { return \"\"; }\n" + 
-		"	String foo(Exception e) {\n" + 
-		"		return super.foo(e);\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	search("* String (Exception)", METHOD, DECLARATIONS);
-	assertSearchResults(
-		"src/b120816/Sub.java String b120816.Sub.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-public void testBug120816b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b120816/Test.js",
-		"package b120816;\n" + 
-		"public class Test<E> {\n" + 
-		"	String foo(E e) { return \"\"; }\n" + 
-		"}\n" +
-		"class Sub extends Test<Exception> {\n" +
-		"	String foo(RuntimeException e) { return \"\"; }\n" + 
-		"	String foo(Exception e) {\n" + 
-		"		return super.foo(e);\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	search("* String (Exception)", METHOD, DECLARATIONS);
-	assertSearchResults(
-		"src/b120816/Test.java String b120816.Sub.foo(Exception) [foo] EXACT_MATCH"
-	);
-}
-
-/**
- * @test Bug 122442: [search] API inconsistency with IJavaScriptSearchConstants.IMPLEMENTORS and SearchPattern
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=122442"
- */
-private void setUpBug122442a() throws CoreException {
-	workingCopies = new IJavaScriptUnit[3];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b122442/I.js",
-		"package b122442;\n" + 
-		"public interface I {}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b122442/II.js",
-		"package b122442;\n" + 
-		"public interface II extends I {}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b122442/X.js",
-		"package b122442;\n" + 
-		"public class X implements I {}\n"
-	);
-}
-public void testBug122442a() throws CoreException {
-	setUpBug122442a();
-	search("I", TYPE, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b122442/II.java b122442.II [I] EXACT_MATCH\n" + 
-		"src/b122442/X.java b122442.X [I] EXACT_MATCH"
-	);
-}
-public void testBug122442b() throws CoreException {
-	setUpBug122442a();
-	search("I", INTERFACE, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b122442/II.java b122442.II [I] EXACT_MATCH"
-	);
-}
-public void testBug122442c() throws CoreException {
-	setUpBug122442a();
-	search("I", CLASS, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b122442/X.java b122442.X [I] EXACT_MATCH"
-	);
-}
-private void setUpBug122442d() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b122442/User.js",
-		"class Klass {}\n" + 
-		"interface Interface {}\n" + 
-		"class User {\n" + 
-		"    void m() {\n" + 
-		"        new Klass() {};\n" + 
-		"        new Interface() {};\n" + 
-		"    }\n" + 
-		"}\n" + 
-		"class Sub extends Klass {}"
-	);
-}
-public void testBug122442d() throws CoreException {
-	setUpBug122442d();
-	search("Interface", TYPE, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b122442/User.java void b122442.User.m():<anonymous>#2 [Interface] EXACT_MATCH"
-	);
-}
-public void testBug122442e() throws CoreException {
-	setUpBug122442d();
-	search("Interface", INTERFACE, IMPLEMENTORS);
-	assertSearchResults(
-		"" // expected no result
-	);
-}
-public void testBug122442f() throws CoreException {
-	setUpBug122442d();
-	search("Interface", CLASS, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b122442/User.java void b122442.User.m():<anonymous>#2 [Interface] EXACT_MATCH"
-	);
-}
-public void testBug122442g() throws CoreException {
-	setUpBug122442d();
-	search("Klass", TYPE, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b122442/User.java void b122442.User.m():<anonymous>#1 [Klass] EXACT_MATCH\n" + 
-		"src/b122442/User.java b122442.Sub [Klass] EXACT_MATCH"
-	);
-}
-public void testBug122442h() throws CoreException {
-	setUpBug122442d();
-	search("Klass", INTERFACE, IMPLEMENTORS);
-	assertSearchResults(
-		"" // expected no result
-	);
-}
-public void testBug122442i() throws CoreException {
-	setUpBug122442d();
-	search("Klass", CLASS, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b122442/User.java void b122442.User.m():<anonymous>#1 [Klass] EXACT_MATCH\n" + 
-		"src/b122442/User.java b122442.Sub [Klass] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 123679: [search] Field references not found when type is a qualified member type [regression]
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=123679"
- */
-public void testBug123679() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b123679.jar", "pack").getClassFile("I123679.class").getType();
-	search(type, REFERENCES);
-	assertSearchResults(
-		"lib/b123679.jar test.<anonymous> EXACT_MATCH\n" + 
-		"lib/b123679.jar test.Test$StaticClass$Member.parent EXACT_MATCH\n" + 
-		"lib/b123679.jar test.<anonymous> EXACT_MATCH\n" + 
-		"lib/b123679.jar test.Test$StaticClass$Member(test.Test.StaticClass, java.lang.Object) EXACT_MATCH\n" + 
-		"lib/b123679.jar test.Test$StaticClass$Member(test.Test.StaticClass, java.lang.Object) EXACT_MATCH\n" + 
-		"lib/b123679.jar pack.I123679 test.Test$StaticClass$Member.getParent() EXACT_MATCH"
-	);
-}
-public void testBug123679_cu() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b123679.pack", "I123679.js");
-	IType type = unit.getType("I123679");
-	search(type, REFERENCES);
-	assertSearchResults(
-		"src/b123679/test/Test.java [b123679.pack.I123679] EXACT_MATCH\n" + 
-		"src/b123679/test/Test.java b123679.test.Test$StaticClass$Member.parent [I123679] EXACT_MATCH\n" + 
-		"src/b123679/test/Test.java b123679.test.Test$StaticClass$Member(Object):<anonymous>#1 [I123679] EXACT_MATCH\n" + 
-		"src/b123679/test/Test.java b123679.test.Test$StaticClass$Member(Object) [I123679] EXACT_MATCH\n" + 
-		"src/b123679/test/Test.java b123679.test.Test$StaticClass$Member(Object) [I123679] EXACT_MATCH\n" + 
-		"src/b123679/test/Test.java I123679 b123679.test.Test$StaticClass$Member.getParent() [I123679] EXACT_MATCH"
-	);
-}
-public void testBug123679_wc() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/pack/I122679.js",
-		"package pack;\n" + 
-		"public interface I123679 {\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/test/Test.js",
-		"package test;\n" + 
-		"import pack.I123679;\n" + 
-		"public class Test {\n" + 
-		"	static class StaticClass {\n" + 
-		"		class Member {\n" + 
-		"			private I123679 parent;\n" + 
-		"			Member(Object obj) {\n" + 
-		"				if (obj instanceof I123679) {\n" + 
-		"					parent = (I123679) obj;\n" + 
-		"				} else {\n" + 
-		"					parent = new I123679() {};\n" + 
-		"				}\n" + 
-		"			}\n" + 
-		"			I123679 getParent() {\n" + 
-		"				return parent;\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IType type = workingCopies[0].getType("I123679");
-	search(type, REFERENCES);
-	assertSearchResults(
-		// import reference is not found because package fragment and CU do not exist on disk
-		// So, PackageReferenceLocator.isDeclaringPackageFragment(...) returns false and S.E. misses this match
-		"src/test/Test.java test.Test$StaticClass$Member.parent [I123679] EXACT_MATCH\n" + 
-		"src/test/Test.java test.Test$StaticClass$Member(Object):<anonymous>#1 [I123679] EXACT_MATCH\n" + 
-		"src/test/Test.java test.Test$StaticClass$Member(Object) [I123679] EXACT_MATCH\n" + 
-		"src/test/Test.java test.Test$StaticClass$Member(Object) [I123679] EXACT_MATCH\n" + 
-		"src/test/Test.java I123679 test.Test$StaticClass$Member.getParent() [I123679] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 124469: [search] AIOOBE in PatternLocator when searching for dependency extent from manifest
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=124469"
- */
-public void testBug124469a() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	search(type, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar pack.E pack.A1.value() EXACT_MATCH\n" + 
-		"lib/b124469.jar pack.E[] pack.A1.list() EXACT_MATCH\n" + 
-		"lib/b124469.jar pack.E pack.A2.value() EXACT_MATCH\n" + 
-		"lib/b124469.jar pack.E[] pack.A2.list() EXACT_MATCH\n" + 
-		"lib/b124469.jar pack.E pack.A3.value() EXACT_MATCH\n" + 
-		"lib/b124469.jar pack.E[] pack.A3.list() EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH"
-	);
-}
-public void testBug124469b() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "A1.class").getType();
-	search(type, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar pack.A1 pack.A2.annot() EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH"
-	);
-}
-public void testBug124469c() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "A2.class").getType();
-	search(type, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar pack.A2 pack.A3.annot() EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH"
-	);
-}
-public void testBug124469d() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "A3.class").getType();
-	search(type, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH"
-	);
-}
-public void testBug124469e() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CC");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH"
-	);
-}
-public void testBug124469f() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CF");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH"
-	);
-}
-public void testBug124469g() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CM");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH"
-	);
-}
-public void testBug124469h() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CP");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"" // expected no result as parameters annotations are not stored in class file
-	);
-}
-public void testBug124469i() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CV");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"" // expected no result as parameters annotations are not stored in class file
-	);
-}
-public void testBug124469j() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CAC");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH\n" + 
-		"lib/b124469.jar test.C EXACT_MATCH"
-	);
-}
-public void testBug124469k() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CAF");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH\n" + 
-		"lib/b124469.jar test.F.field EXACT_MATCH"
-	);
-}
-public void testBug124469l() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CAM");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH\n" + 
-		"lib/b124469.jar void test.M.foo() EXACT_MATCH"
-	);
-}
-public void testBug124469m() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CAP");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"" // expected no result as parameters annotations are not stored in class file
-	);
-}
-public void testBug124469n() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b124469.jar", "pack", "E.class").getType();
-	IField field = type.getField("CAV");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"" // expected no result as parameters annotations are not stored in class file
-	);
-}
-
-/**
- * Bug 124489: [search] correct results are missing in java search
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=124489"
- */
-public void testBug124489() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/Foo.js",
-		"public class Foo<T> {}"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/Bar.js",
-		"public class Bar {\n" + 
-		"    Foo<String> f = new Foo<String>();\n" + 
-		"    Foo f2 = new Foo();\n" + 
-		"}"
-	);
-	IType type = workingCopies[0].getType("Foo");
-	this.resultCollector.showRule = true;
-	new SearchEngine(workingCopies).search(
-		SearchPattern.createPattern(type, REFERENCES),
-		new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-		getJavaSearchScopeBugs(),
-		this.resultCollector,
-		null
-	);
-	assertSearchResults(
-		"src/Bar.java Bar.f [Foo] ERASURE_MATCH\n" + 
-		"src/Bar.java Bar.f [Foo] ERASURE_MATCH\n" + 
-		"src/Bar.java Bar.f2 [Foo] ERASURE_RAW_MATCH\n" + 
-		"src/Bar.java Bar.f2 [Foo] ERASURE_RAW_MATCH"
-	);
-}
-
-/**
- * @test Bug 124645: [search] for implementors does not find subclasses of binary classes
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=124645"
- */
-public void testBug124645a() throws CoreException {
-	IClassFile classFile = getClassFile("JavaSearchBugs", "lib/b124645.jar", "xy", "BE_124645.class");
-	IType type = classFile.getType();
-	search(type, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b124645/xy/X_124645.java b124645.xy.X_124645$Y [BE_124645] EXACT_MATCH\n" + 
-		"src/b124645/xy/Y_124645.java b124645.xy.Y_124645 [BE_124645] EXACT_MATCH\n" + 
-		"lib/b124645.jar xy.BX_124645$Y EXACT_MATCH\n" + 
-		"lib/b124645.jar xy.BY_124645 EXACT_MATCH"
-	);
-}
-public void testBug124645b() throws CoreException {
-	IClassFile classFile = getClassFile("JavaSearchBugs", "lib/b124645.jar", "test", "BE_124645.class");
-	IType type = classFile.getType();
-	search(type, IMPLEMENTORS);
-	assertSearchResults(
-		"src/b124645/test/A_124645.java b124645.test.A_124645 [BE_124645] EXACT_MATCH\n" + 
-		"src/b124645/test/A_124645.java void b124645.test.A_124645.m():<anonymous>#1 [BE_124645] EXACT_MATCH\n" + 
-		"src/b124645/test/X_124645.java b124645.test.X_124645 [BE_124645] EXACT_MATCH\n" + 
-		"src/b124645/test/X_124645.java void b124645.test.X_124645.m():Y_124645#1 [BE_124645] EXACT_MATCH\n" + 
-		"lib/b124645.jar test.BA_124645 EXACT_MATCH\n" + 
-		"lib/b124645.jar test.<anonymous> EXACT_MATCH\n" + 
-		"lib/b124645.jar test.BX_124645 EXACT_MATCH\n" + 
-		"lib/b124645.jar test.Y EXACT_MATCH"
-	);
-}
-public void testBug124645c() throws CoreException {
-	IClassFile classFile = getClassFile("JavaSearchBugs", "lib/b124645.jar", "", "BC_124645.class");
-	IType type = classFile.getType();
-	search(type, IMPLEMENTORS);
-	assertSearchResults(
-		"lib/b124645.jar <anonymous> EXACT_MATCH"
-	);
-}
-public void testBug124645d() throws CoreException {
-	IClassFile classFile = getClassFile("JavaSearchBugs", "lib/b124645.jar", "", "BI_124645.class");
-	IType type = classFile.getType();
-	search(type, IMPLEMENTORS);
-	assertSearchResults(
-		"lib/b124645.jar <anonymous> EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 125178: [search] AIOOBE in PatternLocator when searching for dependency extent from manifest
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=125178"
- */
-public void testBug125178() throws CoreException {
-	// Need a working copy as anonymous are not indexed...
-	ProblemRequestor problemRequestor = new ProblemRequestor();
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b125178/X.js",
-		"package b125178;\n" + 
-		"import pack.age.Test;\n" + 
-		"public class X {\n" + 
-		"	public static void main(String[] args) {\n" + 
-		"		new Test().foo(100);\n" + 
-		"	}\n" + 
-		"}\n",
-		new WorkingCopyOwner() {},
-		problemRequestor
-	);
-	assertEquals("CU Should not have any problem!",
-		"----------\n" +
-		"----------\n",
-		problemRequestor.problems.toString()
-	);
-	
-	// Get anonymous from
-	IPackageFragment jar = getPackageFragment("JavaSearchBugs", "lib/b125178.jar", "pack.age");
-	IJavaScriptElement[] children = jar.getChildren();
-	assertNotNull("We should have children for in default package of lib/b125178.jar", children);
-	for (int i=0,l=children.length; i<l; i++) {
-		assertTrue("Jar should only have class files!", children[i] instanceof ClassFile);
-		IType type = ((ClassFile)children[i]).getType();
-		if (type.isAnonymous()) {
-			search(type, REFERENCES);
-		}
-	}
-	assertSearchResults(
-		"" // no result expected
-	);
-}
-
-/**
- * Bug 126330: Type reference not found in jar file if sources was not already opened
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=126330"
- */
-public void testBug126330() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b126330.jar", "").getClassFile("A126330.class").getType();
-	search(type, REFERENCES);
-	assertSearchResults(
-		"lib/b126330.jar B126330.a EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 127628: [index] CodeAssist doesn't filter deprecated types
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=127628"
- */
-public void testBug127628() throws CoreException {
-	class DeprecatedTypesRequestor extends SearchTests.SearchTypeNameRequestor {
-		public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path) {
-			if ((modifiers & ClassFileConstants.AccDeprecated) != 0) {
-				char[] typeName = 
-					CharOperation.concat(
-						CharOperation.concatWith(enclosingTypeNames, '$'), 
-						simpleTypeName,
-						'$');
-				results.addElement(new String(CharOperation.concat(packageName, typeName, '.')));
-			}
-		}
-	}
-	TypeNameRequestor requestor =  new DeprecatedTypesRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b127628.Test127628",
-		requestor);
-}
-
-/**
- * Bug 128877: [search] reports inexistent IFunction for binary constructor of inner class
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=128877"
- */
-public void testBug128877a() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b128877.jar", "pack").getClassFile("Test.class").getType();
-	IFunction method = type.getFunction("Test", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"lib/b128877.jar pack.X$Sub(pack.X) EXACT_MATCH"
-	);
-}
-public void testBug128877b() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b128877.jar", "pack").getClassFile("Test.class").getType();
-	IFunction method = type.getFunction("Test", new String[] { "Ljava.lang.String;" });
-	search(method, REFERENCES);
-	assertSearchResults(
-		"lib/b128877.jar pack.X$Sub(pack.X, java.lang.String) EXACT_MATCH"
-	);
-}
-public void testBug128877c() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b128877.jar", "pack").getClassFile("Test.class").getType();
-	IFunction method = type.getFunction("foo128877", new String[] { "I" });
-	search(method, REFERENCES);
-	assertSearchResults(
-		"lib/b128877.jar pack.X$Sub(pack.X) EXACT_MATCH"
-	);
-}
-
-/**
- * To get these tests search matches in a workspace, do NOT forget to modify files
- * to set them as working copies.
- *
- * @test Bug 130390: CamelCase algorithm cleanup and improvement
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=130390"
- */
-private void setUpBug130390() throws CoreException {
-	workingCopies = new IJavaScriptUnit[4];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b130390/TZ.js",
-		"package b130390;\n" + 
-		"public class TZ {\n" +
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b130390/TimeZone.js",
-		"package b130390;\n" + 
-		"public class TimeZone{\n" +
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b130390/Npe.js",
-		"package b130390;\n" + 
-		"public class Npe {\n" +
-		"}\n"
-	);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b130390/NullPointerException.js",
-		"package b130390;\n" + 
-		"public class NullPointerException {\n" +
-		"}\n"
-	);
-}
-public void testBug130390() throws CoreException {
-	setUpBug130390();
-	search("NuPoEx", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b130390/NullPointerException.java b130390.NullPointerException [NullPointerException] EXACT_MATCH"
-	);
-}
-public void testBug130390b() throws CoreException {
-	setUpBug130390();
-	search("NPE", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b130390/Npe.java b130390.Npe [Npe] EXACT_MATCH\n" + 
-		"src/b130390/NullPointerException.java b130390.NullPointerException [NullPointerException] EXACT_MATCH"
-	);
-}
-public void testBug130390c() throws CoreException {
-	setUpBug130390();
-	search("NPE", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE);
-	assertSearchResults(
-		"src/b130390/NullPointerException.java b130390.NullPointerException [NullPointerException] EXACT_MATCH"
-	);
-}
-public void testBug130390d() throws CoreException {
-	setUpBug130390();
-	search("Npe", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b130390/Npe.java b130390.Npe [Npe] EXACT_MATCH"
-	);
-}
-public void testBug130390e() throws CoreException {
-	setUpBug130390();
-	search("Npe", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE);
-	assertSearchResults(
-		"src/b130390/Npe.java b130390.Npe [Npe] EXACT_MATCH"
-	);
-}
-public void testBug130390f() throws CoreException {
-	setUpBug130390();
-	search("NullPE", TYPE, ALL_OCCURRENCES, SearchPattern.R_CAMELCASE_MATCH);
-	assertSearchResults(
-		"src/b130390/NullPointerException.java b130390.NullPointerException [NullPointerException] EXACT_MATCH"
-	);
-}
-public void testBug130390g() throws CoreException {
-	setUpBug130390();
-	search("TZ", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE);
-	assertSearchResults(
-		"src/b130390/TZ.java b130390.TZ [TZ] EXACT_MATCH\n" + 
-		"src/b130390/TimeZone.java b130390.TimeZone [TimeZone] EXACT_MATCH"
-	);
-}
-public void testBug130390h() throws CoreException {
-	setUpBug130390();
-	search("TiZo", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE);
-	assertSearchResults(
-		"src/b130390/TimeZone.java b130390.TimeZone [TimeZone] EXACT_MATCH"
-	);
-}
-/**
- * To get these tests search matches in a workspace, do NOT forget to modify files
- * to set them as working copies.
- *
- * @test Bug 137087: Open Type - missing matches when using mixed case pattern
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=137087"
- */
-public void testBug137087() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "runtimeEx";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.RuntimeException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.RuntimeException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.RuntimeException EXACT_MATCH"
-	);
-}
-public void testBug137087b() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "Runtimeex";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.RuntimeException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.RuntimeException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.RuntimeException EXACT_MATCH"
-	);
-}
-public void testBug137087c() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "runtimeexception";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		"" // no match expected as this is not a valid camel case
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.RuntimeException EXACT_MATCH"
-	);
-}
-public void testBug137087d() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "Runtimexception";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		"" // no match expected as pattern is missing a 'e'
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		"" // no match expected as pattern is missing a 'e'
-	);
-}
-public void testBug137087e() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "IllegalMSException";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.IllegalMonitorStateException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.IllegalMonitorStateException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.IllegalMonitorStateException EXACT_MATCH"
-	);
-}
-public void testBug137087f() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "illegalMsExceptionSException";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		"" // expected no result as uppercase characters in pattern do not match any camelcase ones in existing types
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		"" // expected no result as uppercase characters in pattern do not match any camelcase ones in existing types
-	);
-}
-public void testBug137087g() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "clonenotsupportedex";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		"" // no match expected as this is not a valid camel case
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-}
-public void testBug137087h() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "CloneNotSupportedEx";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-}
-public void testBug137087i() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "cloneNotsupportedEx";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-}
-public void testBug137087j() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "ClonenotSupportedexc";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-}
-public void testBug137087k() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "cloneNotSupportedExcep";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-}
-public void testBug137087l() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "Clonenotsupportedexception";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-}
-public void testBug137087m() throws CoreException {
-	// Search CamelCase
-	int matchRule = SearchPattern.R_CAMELCASE_MATCH;
-	String pattern = "CloneNotSupportedException";
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-	// Search like UI does (ie. replace it with prefix if it's not a valid CamelCase)
-	int validatedRule = SearchPattern.validateMatchRule(pattern, matchRule);
-	if (validatedRule != matchRule) {
-		matchRule = SearchPattern.R_PREFIX_MATCH;
-	}
-	search(pattern, TYPE, DECLARATIONS, matchRule);
-	assertSearchResults(
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH\n" +
-		""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
-	);
-}
-/**
- * Bug 137984: [search] Field references not found when type is a qualified member type [regression]
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=137984"
- */
-public void testBug137984_jar() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b137984.jar", "").getClassFile("CJ.class").getType();
-	IField field = type.getField("c3");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"lib/b137984.jar CJ(int) EXACT_MATCH"
-	);
-}
-public void testBug137984_cu() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b137984", "C.js");
-	IField field = unit.getType("C").getField("c3");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/b137984/C.java b137984.C(int) [c3] EXACT_MATCH"
-	);
-}
-public void testBug137984_wc() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/CW.js",
-		"public class CW {\n" + 
-		"	CW2 c2;\n" + 
-		"	CW2.CW3 c3;\n" + 
-		"	CW(int c) {\n" + 
-		"		c2 = new CW2(c);\n" + 
-		"		c3 = c2.new CW3(c);\n" + 
-		"	}\n" + 
-		"	class CW2 {\n" + 
-		"		CW2(int x) {}\n" + 
-		"		class CW3 {\n" + 
-		"			CW3(int x) {}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IField field = workingCopies[0].getType("CW").getField("c3");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/CW.java CW(int) [c3] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 140156: [1.5][search] Invalid method handle with parameterized parameters when no source is attached
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=140156"
- */
-public void testBug140156() throws CoreException {
-	IType type = getPackageFragment("JavaSearchBugs", "lib/b140156.jar", "").getClassFile("X.class").getType();
-	IFunction method = type.getFunctions()[1];
-	assertEquals("Search wrong method!!!", "foo", method.getElementName());
-	search(method, DECLARATIONS);
-	assertSearchResults(
-		"lib/b140156.jar void X.foo(List<T>) [No source] EXACT_MATCH"
-	);
-}
-
-/**
- * Bug 144044: [search] NPE when trying to find references to field variable
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=144044"
- */
-public void testBug144044() throws CoreException {
-	workingCopies = new IJavaScriptUnit[2];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/test1/p/Test.js",
-		"package test1.p;\n" + 
-		"import test1.q.X;\n" + 
-		"public class Test {\n" + 
-		"	String foo(X val) {\n" + 
-		"		return val.str;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/test1/q/X.js",
-		"package test1.q;\n" + 
-		"public class X {\n" + 
-		"	String str;\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[1].getType("X");
-	IField field = type.getField("str");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/test1/p/Test.java String test1.p.Test.foo(X) [str] POTENTIAL_MATCH"
-	);
-}
-public void testBug144044b() throws CoreException {
-	workingCopies = new IJavaScriptUnit[4];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/test2/p/Test.js",
-		"package test2.p;\n" + 
-		"import test2.q.X;\n" + 
-		"public class Test {\n" + 
-		"	X foo() {\n" + 
-		"		return X.y_field.z_field.x_field.y_field.z_field.x_field;\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/test2/q/X.js",
-		"package test2.q;\n" + 
-		"public class X {\n" + 
-		"	public static Y y_field;\n" + 
-		"}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/test2/q/Y.js",
-		"package test2.q;\n" + 
-		"public class Y {\n" + 
-		"	public static Z z_field;\n" + 
-		"}\n"
-	);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/test2/q/Z.js",
-		"package test2.q;\n" + 
-		"public class Z {\n" + 
-		"	static X x_field;\n" + 
-		"}\n"
-	);
-	IType type = this.workingCopies[3].getType("Z");
-	IField field = type.getField("x_field");
-	search(field, REFERENCES);
-	assertSearchResults(
-		"src/test2/p/Test.java X test2.p.Test.foo() [x_field] POTENTIAL_MATCH\n" + 
-		"src/test2/p/Test.java X test2.p.Test.foo() [x_field] POTENTIAL_MATCH"
-	);
-}
-
-/**
- * Bug 148215: [search] correct results are missing in java search
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=148215"
- */
-public void testBug148215_Types() throws CoreException {
-	addLibraryEntry(JAVA_PROJECT, "/JavaSearchBugs/lib/b148215.jar", false);
-	try {
-		IType type = getClassFile("JavaSearchBugs", "lib/b148215.jar", "test.pack", "Test.class").getType();
-		IFunction method = type.getFunctions()[1];
-		searchDeclarationsOfReferencedTypes(method, this.resultCollector);
-		assertSearchResults(
-			""+ getExternalJCLPathString("1.5") + " java.lang.Object EXACT_MATCH\n" + 
-			""+ getExternalJCLPathString("1.5") + " java.lang.String EXACT_MATCH\n" + 
-			"lib/b148215.jar test.def.Reference EXACT_MATCH"
-		);
-	}
-	finally {
-		removeLibraryEntry(JAVA_PROJECT, new Path("/JavaSearchBugs/lib/b148215.jar"));
-	}
-}
-public void testBug148215_Messages() throws CoreException {
-	addLibraryEntry(JAVA_PROJECT, "/JavaSearchBugs/lib/b148215.jar", false);
-	try {
-		IType type = getClassFile("JavaSearchBugs", "lib/b148215.jar", "test.pack", "Test.class").getType();
-		IFunction method = type.getFunctions()[1];
-		searchDeclarationsOfSentMessages(method, this.resultCollector);
-		assertSearchResults(
-			"lib/b148215.jar void test.pack.Test.bar(java.lang.String) EXACT_MATCH\n" + 
-			"lib/b148215.jar void test.pack.Test.bar(test.def.Reference) EXACT_MATCH"
-		);
-	}
-	finally {
-		removeLibraryEntry(JAVA_PROJECT, new Path("/JavaSearchBugs/lib/b148215.jar"));
-	}
-}
-public void testBug148215_Fields() throws CoreException {
-	addLibraryEntry(JAVA_PROJECT, "/JavaSearchBugs/lib/b148215.jar", false);
-	try {
-		IType type = getClassFile("JavaSearchBugs", "lib/b148215.jar", "test.pack", "Test.class").getType();
-		IFunction method = type.getFunctions()[1];
-		searchDeclarationsOfAccessedFields(method, this.resultCollector);
-		assertSearchResults(
-			"lib/b148215.jar test.pack.Test.sField EXACT_MATCH\n" + 
-			"lib/b148215.jar test.pack.Test.rField EXACT_MATCH"
-		);
-	}
-	finally {
-		removeLibraryEntry(JAVA_PROJECT, new Path("/JavaSearchBugs/lib/b148215.jar"));
-	}
-}
-
-/**
- * @bug 148380: [search] get IType from TypeNameRequestor result
- * @test new SearchEngine.searchAllTypeName API method using {@link TypeNameMatchRequestor}
- * 	instead of {@link TypeNameRequestor}
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=148380"
- */
-public void testBug148380_SearchAllTypes_wc() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[4];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b148380/I.js",
-		"package b148380;\n" + 
-		"public interface I {}\n"
-	);
-	workingCopies[1] = getWorkingCopy("/JavaSearchBugs/src/b148380/X.js",
-		"package b148380;\n" + 
-		"public class X {}\n"
-	);
-	workingCopies[2] = getWorkingCopy("/JavaSearchBugs/src/b148380/Sub.js",
-		"package b148380;\n" + 
-		"public class Sub extends X {}\n"
-	);
-	workingCopies[3] = getWorkingCopy("/JavaSearchBugs/src/b148380/Y.js",
-		"package b148380;\n" + 
-		"public class Y {}\n"
-	);
-	IJavaScriptSearchScope scope = getJavaSearchScopeBugs();
-	TypeNameMatchCollector requestor1 = new TypeNameMatchCollector();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		"b148380".toCharArray(),
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		scope,
-		requestor1,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	String expected = "class Sub [in [Working copy] Sub.java [in b148380 [in src [in JavaSearchBugs]]]]\n" + 
-		"class X [in [Working copy] X.java [in b148380 [in src [in JavaSearchBugs]]]]\n" + 
-		"class Y [in [Working copy] Y.java [in b148380 [in src [in JavaSearchBugs]]]]\n" + 
-		"interface I [in [Working copy] I.java [in b148380 [in src [in JavaSearchBugs]]]]";
-	assertSearchResults(expected, requestor1);
-	//  Expected same result with the wc owner
-	TypeNameMatchCollector requestor2 = new TypeNameMatchCollector();
-	new SearchEngine(this.wcOwner).searchAllTypeNames(
-		"b148380".toCharArray(),
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		scope,
-		requestor2,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	assertSearchResults(expected, requestor2);
-}
-public void testBug148380_SearchAllTypes_cu() throws CoreException, JavaScriptModelException {
-	IJavaScriptSearchScope scope = getJavaSearchScopeBugs();
-	TypeNameMatchCollector requestor = new TypeNameMatchCollector();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"Bug".toCharArray(),
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		scope,
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	assertSearchResults(
-		"Bug148380 (not open) [in Bug148380.class [in <default> [in lib [in JavaSearchBugs]]]]",
-		requestor
-	);
-}
-public void testBug148380_SearchAllTypes_cu_wksp() throws CoreException, JavaScriptModelException {
-	IJavaScriptSearchScope scope = SearchEngine.createWorkspaceScope();
-	TypeNameMatchCollector requestor = new TypeNameMatchCollector();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"Bug".toCharArray(),
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		scope,
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	assertSearchResults(
-		"Bug148380 (not open) [in Bug148380.class [in <default> [in lib [in JavaSearchBugs]]]]",
-		requestor
-	);
-}
-
-/**
- * Bug 156340: [search] searchAllTypeNames return nothing for empty prefix
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=156340"
- */
-public void testBug156340() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	IPackageFragment fragment = getPackageFragment("JavaSearchBugs", getSystemJsPathString(), "java.lang");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] { fragment });
-	new SearchEngine().searchAllTypeNames(
-	   null,
-		SearchPattern.R_EXACT_MATCH,
-		CharOperation.NO_CHAR,
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		scope,
-		requestor,
-		WAIT_UNTIL_READY_TO_SEARCH,
-		null
-   );
-	assertSearchResults(
-		"Unexpected all type names",
-		"java.lang.Class\n" + 
-		"java.lang.CloneNotSupportedException\n" + 
-		"java.lang.Error\n" + 
-		"java.lang.Exception\n" + 
-		"java.lang.IllegalMonitorStateException\n" + 
-		"java.lang.InterruptedException\n" + 
-		"java.lang.Object\n" + 
-		"java.lang.RuntimeException\n" + 
-		"java.lang.String\n" + 
-		"java.lang.Throwable",
-		requestor);
-}
-
-/**
- * Bug 156177: [1.5][search] interfaces and annotations could be found with only one requets of searchAllTypeName
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=156177"
- */
-public void testBug156177() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/b156177/Test.js",
-		"package b156177;\n" + 
-		"interface B156177_I {}\n" + 
-		"enum B156177_E {}\n" + 
-		"@interface B156177_A {}\n" + 
-		"public class B156177 {}\n"
-	);
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine(this.workingCopies).searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		INTERFACE_AND_ANNOTATION,
-		getJavaSearchWorkingCopiesScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"b156177.B156177_A\n" + 
-		"b156177.B156177_I",
-		requestor);
-}
-
-/**
- * Bug 156491: [1.5][search] interfaces and annotations could be found with only one requets of searchAllTypeName
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=156491"
- */
-public void testBug156491() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/pack/Test.js",
-		"package pack;\n" + 
-		"public class Test {\n" + 
-		"	void noMatch(Y y) {\n" + 
-		"		y.toString();\n" + 
-		"		toString();\n" + 
-		"	}\n" + 
-		"	void validMatches(X x) {\n" + 
-		"		x.toString();\n" + 
-		"	}\n" + 
-		"	void superInvocationMatches(Object o) {\n" + 
-		"		o.toString();\n" + 
-		"	}\n" + 
-		"	void interfaceMatches(I i) {\n" + 
-		"		i.toString();\n" + 
-		"	}\n" + 
-		"	void subtypeMatches(Sub s) {\n" + 
-		"		s.toString();\n" + 
-		"	}\n" + 
-		"}\n" +
-		"interface I {}\n" +
-		"class X {\n" + 
-		"	public String toString() {\n" + 
-		"		return \"X\";\n" + 
-		"	}\n" + 
-		"}\n" +
-		"class Sub extends X {}\n" +
-		"class Y {\n" + 
-		"	public String toString() {\n" + 
-		"		return \"Y\";\n" + 
-		"	}\n" + 
-		"}\n"
-	);
-	IFunction method = workingCopies[0].getType("X").getFunction("toString", new String[0]);
-	this.resultCollector.showFlavors = PatternLocator.SUPER_INVOCATION_FLAVOR;
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/pack/Test.java void pack.Test.validMatches(X) [toString()] EXACT_MATCH\n" + 
-		"src/pack/Test.java void pack.Test.superInvocationMatches(Object) [toString()] EXACT_MATCH SUPER INVOCATION\n" + 
-		"src/pack/Test.java void pack.Test.subtypeMatches(Sub) [toString()] EXACT_MATCH"
-	);
-}
-private void setUpBug156491() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/other/Test.js",
-		"package other;\n" + 
-		"public class Test {\n" + 
-		"	void testInterface(I i) {\n" + 
-		"		i.test();\n" + 
-		"	}\n" + 
-		"	void testSuperInvocation(L1 l) {\n" + 
-		"		l.test();\n" + 
-		"	}\n" + 
-		"	void testInvocation(L2 l) {\n" + 
-		"		l.test();\n" + 
-		"	}\n" + 
-		"}\n" + 
-		"class L1 implements I {\n" + 
-		"	public void test() {}\n" + 
-		"}\n" + 
-		"interface I {\n" + 
-		"	void test();\n" + 
-		"}\n" + 
-		"class L2 extends L1 {\n" + 
-		"	public void test() {}\n" + 
-		"}"
-	);
-}
-public void testBug156491a() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug156491();
-	IFunction method = workingCopies[0].getType("L2").getFunction("test", new String[0]);
-	this.resultCollector.showFlavors = PatternLocator.SUPER_INVOCATION_FLAVOR;
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/other/Test.java void other.Test.testInterface(I) [test()] EXACT_MATCH SUPER INVOCATION\n" + 
-		"src/other/Test.java void other.Test.testSuperInvocation(L1) [test()] EXACT_MATCH SUPER INVOCATION\n" + 
-		"src/other/Test.java void other.Test.testInvocation(L2) [test()] EXACT_MATCH"
-	);
-}
-public void testBug156491b() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug156491();
-	IFunction method = workingCopies[0].getType("L1").getFunction("test", new String[0]);
-	this.resultCollector.showFlavors = PatternLocator.SUPER_INVOCATION_FLAVOR;
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/other/Test.java void other.Test.testInterface(I) [test()] EXACT_MATCH SUPER INVOCATION\n" + 
-		"src/other/Test.java void other.Test.testSuperInvocation(L1) [test()] EXACT_MATCH"
-		// since bug 160301 fix, subclass overridden method calls are not reported
-		//"src/other/Test.java void other.Test.testInvocation(L2) [test()] EXACT_MATCH"
-	);
-}
-/**
- * @bug 160301: [search] too many matches found for method references
- * @test Ensure that correct number of method references are found
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=160301"
- */
-public void testBug160301() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/Test.js",
-		"public class Test {\n" + 
-		"	class A {\n" + 
-		"		void foo() {}\n" + 
-		"		void bar() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class B extends A {\n" + 
-		"		void foo() {}\n" + 
-		"		void bar() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class C extends B {\n" + 
-		"		void method() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}"
-	);
-	IFunction method = workingCopies[0].getType("Test").getType("A").getFunction("foo", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/Test.java void Test$A.bar() [foo()] EXACT_MATCH"
-	);
-}
-public void testBug160301b() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/test/Test.js",
-		"package test;\n" + 
-		"public class Test {\n" + 
-		"	class A {\n" + 
-		"		void foo() {}\n" + 
-		"	}\n" + 
-		"	class B extends A {}\n" + 
-		"	class C extends B {\n" + 
-		"		void foo() {}\n" + 
-		"	}\n" + 
-		"	class D extends C {}\n" + 
-		"	void a() {\n" + 
-		"		new A().foo();\n" + 
-		"	}\n" + 
-		"	void b() {\n" + 
-		"		new B().foo();\n" + 
-		"	}\n" + 
-		"	void c() {\n" + 
-		"		new C().foo();\n" + 
-		"	}\n" + 
-		"	void d() {\n" + 
-		"		new D().foo();\n" + 
-		"	}\n" + 
-		"	\n" + 
-		"}"
-	);
-	IFunction method = workingCopies[0].getType("Test").getType("A").getFunction("foo", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/test/Test.java void test.Test.a() [foo()] EXACT_MATCH\n" + 
-		"src/test/Test.java void test.Test.b() [foo()] EXACT_MATCH"
-	);
-}
-public void testBug160301_Interface() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/Test.js",
-		"public class Test {\n" + 
-		"	interface I {\n" + 
-		"		void foo();\n" + 
-		"	}\n" + 
-		"	class A1 implements I {\n" + 
-		"		public void foo() {}\n" + 
-		"		void a1() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class B1 extends A1 {\n" + 
-		"		void b1() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class C1 extends B1 {\n" + 
-		"		public void foo() {}\n" + 
-		"		void c1() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	abstract class A2 implements I {\n" + 
-		"		void a2() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class B2 extends A2 {\n" + 
-		"		public void foo() {}\n" + 
-		"		void b2() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class A3 implements I {\n" + 
-		"		public void foo() {}\n" + 
-		"		void a3() {\n" + 
-		"			foo();\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}"
-	);
-	IFunction method = workingCopies[0].getType("Test").getType("I").getFunction("foo", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/Test.java void Test$A1.a1() [foo()] EXACT_MATCH\n" + 
-		"src/Test.java void Test$B1.b1() [foo()] EXACT_MATCH\n" + 
-		"src/Test.java void Test$A2.a2() [foo()] EXACT_MATCH\n" + 
-		"src/Test.java void Test$B2.b2() [foo()] EXACT_MATCH\n" + 
-		"src/Test.java void Test$A3.a3() [foo()] EXACT_MATCH"
-	);
-}
-public void testBug160301_Abstract() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/Test.js",
-		"public class Test {\n" + 
-		"	abstract class Abstract {\n" + 
-		"		abstract void foo();\n" + 
-		"	}\n" + 
-		"	class A1 extends Abstract {\n" + 
-		"		public void foo() {}\n" + 
-		"		void a1() {\n" + 
-		"			foo(); // valid match as A1.foo() is the first override in sub-class\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class B1 extends A1 {\n" + 
-		"		void b1() {\n" + 
-		"			foo(); // valid match as B1 does not override A.foo()\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class C1 extends B1 {\n" + 
-		"		public void foo() {}\n" + 
-		"		void c1() {\n" + 
-		"			foo(); // invalid match as C1 does override A.foo()\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	abstract class A2 extends Abstract {\n" + 
-		"		void a2() {\n" + 
-		"			foo(); // valid match as A2 does not override Abstract.foo()\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class B2 extends A2 {\n" + 
-		"		public void foo() {}\n" + 
-		"		void b2() {\n" + 
-		"			foo(); // valid match as B2.foo() is the first override in sub-class\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}"
-	);
-	IFunction method = workingCopies[0].getType("Test").getType("Abstract").getFunction("foo", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/Test.java void Test$A1.a1() [foo()] EXACT_MATCH\n" + 
-		"src/Test.java void Test$B1.b1() [foo()] EXACT_MATCH\n" + 
-		"src/Test.java void Test$A2.a2() [foo()] EXACT_MATCH\n" + 
-		"src/Test.java void Test$B2.b2() [foo()] EXACT_MATCH"
-	);
-}
-public void testBug160301_Abstract2() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/Test.js",
-		"public class Test {\n" + 
-		"	abstract class Abstract {\n" + 
-		"		public abstract void foo();\n" + 
-		"	}\n" + 
-		"	abstract class A extends Abstract {\n" + 
-		"		public abstract void foo();\n" + 
-		"		void a() {\n" + 
-		"			foo(); // valid match as A is abstract => does not override Abstract.foo()\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class B extends A {\n" + 
-		"		public void foo() {}\n" + 
-		"		void b() {\n" + 
-		"			foo(); // valid match as B.foo() is the first override in sub-class\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class C extends B {\n" + 
-		"		public void foo() {}\n" + 
-		"		void c() {\n" + 
-		"			foo(); // invalid match as C.foo() overrides Abstract.foo() \n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}"
-	);
-	IFunction method = workingCopies[0].getType("Test").getType("Abstract").getFunction("foo", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/Test.java void Test$A.a() [foo()] EXACT_MATCH\n" + 
-		"src/Test.java void Test$B.b() [foo()] EXACT_MATCH"
-	);
-}
-public void testBug160301_Abstract3() throws CoreException {
-	resultCollector.showRule = true;
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/Test.js",
-		"public class Test {\n" + 
-		"	abstract class Abstract {\n" + 
-		"		public abstract void foo();\n" + 
-		"	}\n" + 
-		"	class A extends Abstract {\n" + 
-		"		public void foo() {}\n" + 
-		"		void a() {\n" + 
-		"			foo(); // valid match as A.foo() is the first override in sub-class\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	abstract class B extends A {\n" + 
-		"		public abstract void foo();\n" + 
-		"		void b() {\n" + 
-		"			foo(); // invalid match as B.foo() is hidden by the override A.foo()\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"	class C extends B {\n" + 
-		"		public void foo() {}\n" + 
-		"		void c() {\n" + 
-		"			foo(); // invalid match as C.foo() overrides A.foo()\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}"
-	);
-	IFunction method = workingCopies[0].getType("Test").getType("Abstract").getFunction("foo", new String[0]);
-	search(method, REFERENCES);
-	assertSearchResults(
-		"src/Test.java void Test$A.a() [foo()] EXACT_MATCH"
-	);
-}
-
-/**
- * @bug 160323: [search] TypeNameMatch: support hashCode/equals
- * @test Ensure that match equals and hashCode methods return same values than those of stored {@link IType}.
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=160323"
- */
-public void testBug160323() throws CoreException {
-	// Search all type names with TypeNameMatchRequestor
-	TypeNameMatchCollector collector = new TypeNameMatchCollector() {
-		public String toString(){
-			return toFullyQualifiedNamesString();
-		}
-	};
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		getJavaSearchScopeBugs(),
-		collector,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Search all type names with TypeNameRequestor
-	TypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Should have same types with these 2 searches
-	assertTrue("We should get some types!", collector.size() > 0);
-	assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-}
-
-/**
- * @bug 160324: [search] SearchEngine.searchAllTypeNames(char[][], char[][], TypeNameMatchRequestor
- * @test Ensure that types found using {@link SearchEngine#searchAllTypeNames(char[][], char[][], IJavaScriptSearchScope, TypeNameMatchRequestor, int, org.eclipse.core.runtime.IProgressMonitor) new API method}
- * 	are the same than with already existing API method using {@link TypeNameRequestor}...
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=160324"
- */
-public void testBug160324a() throws CoreException {
-	boolean debug = false;
-	// Search all type names with new API
-	TypeNameMatchCollector collector = new TypeNameMatchCollector() {
-		public String toString(){
-			return toFullyQualifiedNamesString();
-		}
-	};
-	new SearchEngine().searchAllTypeNames(
-		null,
-		null,
-		getJavaSearchScopeBugs(),
-		collector,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Search all type names with old API
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		null,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	if (debug) System.out.println("TypeNameRequestor results: \n"+requestor);
-	// Should have same types with these 2 searches
-	assertTrue("We should get some types!", collector.size() > 0);
-	assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-}
-public void testBug160324b() throws CoreException {
-	// Search all type names with new API
-	TypeNameMatchCollector collector = new TypeNameMatchCollector() {
-		public String toString(){
-			return toFullyQualifiedNamesString();
-		}
-	};
-	new SearchEngine().searchAllTypeNames(
-		null,
-		new char[][] { "Test".toCharArray() },
-		getJavaSearchScopeBugs(),
-		collector,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Search all type names with old API
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		new char[][] { "Test".toCharArray() },
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Should have same types with these 2 searches
-	assertTrue("We should get some types!", collector.size() > 0);
-	assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-}
-
-/**
- * @bug 160494: [search] searchAllTypeNames(char[][], char[][],...) fails to find types in default package
- * @test Ensure that types of default packge are found when empty package is specified in package lists
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=160494"
- */
-public void testBug160324c() throws CoreException {
-	boolean debug = false;
-	char[][] packagesList = new char[][] {
-			CharOperation.NO_CHAR,
-			"b110422".toCharArray(),
-			"b123679.test".toCharArray(),
-			"b89848".toCharArray(),
-			"b95794".toCharArray(),
-			"pack".toCharArray(),
-			"pack.age".toCharArray()
-	};
-	char[][] typesList = new char[][] {
-		"Test".toCharArray(),
-		"TestPrefix".toCharArray()
-	};
-	// Search all type names with new API
-	TypeNameMatchCollector collector = new TypeNameMatchCollector() {
-		public String toString(){
-			return toFullyQualifiedNamesString();
-		}
-	};
-	new SearchEngine().searchAllTypeNames(
-		packagesList,
-		typesList,
-		getJavaSearchScopeBugs(),
-		collector,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	if (debug) System.out.println("TypeNameMatchRequestor results: \n"+collector);
-	// Search all type names with old API
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		packagesList,
-		typesList,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	if (debug) System.out.println("TypeNameRequestor results: \n"+requestor);
-	// Should have same types with these 2 searches
-	assertEquals("Wrong number of found types!", packagesList.length, collector.size());
-	assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-}
-
-/**
- * @bug 160854: [search] No type is found using seachAllTypeNames(char[][],char[][],...) methods when no type names is specified
- * @test Ensure that types are found when typeNames parameter is null...
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=160854"
- */
-public void testBug160854() throws CoreException {
-	char[][] packagesList = new char[][] {
-			"java.lang".toCharArray()
-	};
-	// Search all type names with new API
-	TypeNameMatchCollector collector = new TypeNameMatchCollector() {
-		public String toString(){
-			return toFullyQualifiedNamesString();
-		}
-	};
-	new SearchEngine().searchAllTypeNames(
-		packagesList,
-		null,
-		getJavaSearchScopeBugs(),
-		collector,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Search all type names with old API
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		packagesList,
-		null,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Should have same types with these 2 searches
-	assertSearchResults("Wrong types found!",
-		"java.lang.CharSequence\n" + 
-		"java.lang.Class\n" + 
-		"java.lang.CloneNotSupportedException\n" + 
-		"java.lang.Comparable\n" + 
-		"java.lang.Enum\n" + 
-		"java.lang.Error\n" + 
-		"java.lang.Exception\n" + 
-		"java.lang.IllegalMonitorStateException\n" + 
-		"java.lang.InterruptedException\n" + 
-		"java.lang.Object\n" + 
-		"java.lang.RuntimeException\n" + 
-		"java.lang.String\n" + 
-		"java.lang.Throwable",
-		requestor
-	);
-	assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-}
-
-/**
- * @bug 161028: [search] NPE on organize imports in TypeNameMatch.equals
- * @test Ensure that no NPE may happen calling <code>equals(Object)</code>,
- * 	<code>hashCode()</code> or <code>toString()</code> methods.
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=161028"
- */
-public void testBug161028() throws CoreException {
-	TypeNameMatch match1 = SearchEngine.createTypeNameMatch(null, 0);
-	assertEquals("Should be equals!", match1, match1);
-	assertEquals("Wrong toString value!", "org.eclipse.wst.jsdt.internal.core.search.JavaSearchTypeNameMatch@0", match1.toString());
-	TypeNameMatch match2 = SearchEngine.createTypeNameMatch(null, 0);
-	assertFalse("Should NOT be identical!", match1 == match2);
-	assertTrue("Should be equals!", match1.equals(match2));
-	assertTrue("Should be equals!", match2.equals(match1));
-	assertEquals("Wrong toString value!", match1, match2);
-	assertEquals("Should have same hashCode!", match1.hashCode(), match2.hashCode());
-}
-
-/**
- * @bug 161190: [search] All type search doesn't find all types
- * @test Ensure that access rules does not change searchAllTypeNames results.
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=161190"
- */
-public void testBug161190() throws CoreException {
-	char[][] packagesList = new char[][] {
-			"xy".toCharArray()
-	};
-	// Search all type names with new API
-	TypeNameMatchCollector collector = new TypeNameMatchCollector() {
-		public String toString(){
-			return toFullyQualifiedNamesString();
-		}
-	};
-	new SearchEngine().searchAllTypeNames(
-		packagesList,
-		null,
-		getJavaSearchScopeBugs(),
-		collector,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Search all type names with old API
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		packagesList,
-		null,
-		getJavaSearchScopeBugs(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	assertSearchResults("Wrong types found!",
-		"xy.BE_124645\n" + 
-		"xy.BX_124645\n" + 
-		"xy.BY_124645",
-		requestor
-	);
-	// Should have same types with these 2 searches
-	assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-}
-
-/**
- * @bug 163984: [search] no results from SearchEngine.searchAllTypeNames with types in scope
- * @test Ensure that types are found even when scope is made of elements
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=163984"
- */
-public void testBug163984() throws CoreException {
-	// Search all type names with TypeNameMatchRequestor
-	TypeNameMatchCollector collector = new TypeNameMatchCollector() {
-		public String toString(){
-			return toFullyQualifiedNamesString();
-		}
-	};
-	IJavaScriptUnit[] elements = getCompilationUnits("JavaSearchBugs", "src", "b163984");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(elements);
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		new char[] { '*' },
-		SearchPattern.R_PATTERN_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		scope,
-		collector,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Search all type names with TypeNameRequestor
-	TypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		new char[] { '*' },
-		SearchPattern.R_PATTERN_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		scope,
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Should have same types with these 2 searches
-	assertEquals("We should get 3 types!", 3, collector.size());
-	assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-}
-
-/**
- * @bug 164121: [search] Misses declarations of method parameters
- * @test Ensure that param declaration are correctly found by search engine
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=164121"
- */
-private void setUpBug164121() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/A.js",
-		"class A {\n" + 
-		"     int x(int param) {\n" + 
-		"         param = 2 + 2;\n" + 
-		"         int x = param + 2;\n" + 
-		"         return param - x;\n" + 
-		"     }\n" + 
-		"}\n"
-	);
-}
-public void testBug164121a() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug164121();
-	ILocalVariable param = getLocalVariable(this.workingCopies[0], "param", "param");
-	search(param, DECLARATIONS);
-	assertSearchResults(
-		"src/A.java int A.x(int).param [param] EXACT_MATCH"
-	);
-}
-public void testBug164121b() throws CoreException {
-	resultCollector.showRule = true;
-	setUpBug164121();
-	ILocalVariable param = getLocalVariable(this.workingCopies[0], "param", "param");
-	search(param, ALL_OCCURRENCES);
-	assertSearchResults(
-		"src/A.java int A.x(int).param [param] EXACT_MATCH\n" + 
-		"src/A.java int A.x(int) [param] EXACT_MATCH\n" + 
-		"src/A.java int A.x(int) [param] EXACT_MATCH\n" + 
-		"src/A.java int A.x(int) [param] EXACT_MATCH"
-	);
-}
-
-/**
- * @bug 164791: [search] Type reference reports anonymous type in invalid class file
- * @test Ensure that match on anonymous type in local type is well reported
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=164791"
- */
-public void testBug164791() throws CoreException {
-	IType type = getClassFile("JavaSearchBugs", "lib/b164791.jar", "pack", "ELPM.class").getType();
-	JavaSearchResultCollector collector = new JavaSearchResultCollector() {
-		public void acceptSearchMatch(SearchMatch searchMatch) throws CoreException {
-			super.acceptSearchMatch(searchMatch);
-			IJavaScriptElement element = (IJavaScriptElement) searchMatch.getElement();
-			assertTrue("Search match element "+element.getElementName()+" should exist!!!", element.exists());
-		}
-	};
-	collector.showAccuracy = true;
-	search(type, REFERENCES, getJavaSearchScopeBugs(), collector);
-	assertSearchResults(
-		"lib/b164791.jar test.<anonymous> EXACT_MATCH\n" + 
-		"lib/b164791.jar test.<anonymous> EXACT_MATCH",
-		collector
-	);
-}
-
-/**
- * @bug 166348: [search] Stack trace console resolves wrong source
- * @test Ensure that only type with same qualification is found in class files
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=166348"
- */
-public void testBug166348() throws CoreException {
-	search("Test166348", TYPE, DECLARATIONS);
-	assertSearchResults(
-		"lib/b166348.jar pack.Test166348 [No source] EXACT_MATCH\n" + 
-		"lib/b166348.jar test.Test166348 [No source] EXACT_MATCH"
-	);
-}
-public void testBug166348_Qualified() throws CoreException {
-	search("test.Test166348", TYPE, DECLARATIONS);
-	assertSearchResults(
-		"lib/b166348.jar test.Test166348 [No source] EXACT_MATCH"
-	);
-}
-
-/**
- * @bug 167190: [search] TypeNameMatchRequestorWrapper causing ClassCastException
- * @test Ensure that types are found even when scope is not a {@link org.eclipse.wst.jsdt.internal.core.search.JavaSearchScope}
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=167190"
- */
-public void testBug167190() throws CoreException, JavaScriptModelException {
-	IJavaScriptSearchScope scope = new AbstractSearchScope() {
-		IJavaScriptSearchScope jsScope = getJavaSearchScopeBugs();
-		public void processDelta(IJavaScriptElementDelta delta) {
-			// we should have no delta on this test case
-		}
-		public boolean encloses(String resourcePath) {
-			return this.jsScope.encloses(resourcePath);
-		}
-		public boolean encloses(IJavaScriptElement element) {
-			return this.jsScope.encloses(element);
-		}
-		public IPath[] enclosingProjectsAndJars() {
-			return this.jsScope.enclosingProjectsAndJars();
-		}
-	};
-	TypeNameMatchCollector requestor = new TypeNameMatchCollector();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"C".toCharArray(), // need a prefix which returns most of different types (class file, CU, member,...)
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		scope,
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	assertSearchResults(
-		"C (not open) [in C.class [in test [in lib/b124469.jar [in JavaSearchBugs]]]]\n" + 
-		"C (not open) [in C.java [in b137984 [in src [in JavaSearchBugs]]]]\n" + 
-		"C (not open) [in C.java [in b137984 [in src [in JavaSearchBugs]]]]\n" + 
-		"C (not open) [in C.java [in b163984 [in src [in JavaSearchBugs]]]]\n" + 
-		"C2 (not open) [in C [in C.java [in b137984 [in src [in JavaSearchBugs]]]]]\n" + 
-		"C86293 (not open) [in C86293.class [in <default> [in lib/b86293.jar [in JavaSearchBugs]]]]\n" + 
-		"CJ (not open) [in CJ.class [in <default> [in lib/b137984.jar [in JavaSearchBugs]]]]\n" + 
-		"CJ2 (not open) [in CJ$CJ2.class [in <default> [in lib/b137984.jar [in JavaSearchBugs]]]]\n" + 
-		"CJ3 (not open) [in CJ$CJ2$CJ3.class [in <default> [in lib/b137984.jar [in JavaSearchBugs]]]]\n" + 
-		"C_124645 (not open) [in T_124645.java [in b124645 [in src [in JavaSearchBugs]]]]\n" + 
-		"CharSequence (not open) [in CharSequence.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Class (not open) [in Class.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"CloneNotSupportedException (not open) [in CloneNotSupportedException.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Collection (not open) [in Collection.class [in b87627 [in lib/b87627.jar [in JavaSearchBugs]]]]\n" + 
-		"Comparable (not open) [in Comparable.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Test (not open) [in Test.java [in b95794 [in src [in JavaSearchBugs]]]]",
-		requestor
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchJavadocTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchJavadocTests.java
deleted file mode 100644
index 53e244c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchJavadocTests.java
+++ /dev/null
@@ -1,926 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope;
-import org.eclipse.wst.jsdt.core.search.SearchEngine;
-
-/**
- * Tests the Java search engine in Javadoc comment.
- *
- * @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45518">bug 45518</a>
- * @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46761">bug 46761</a>
- */
-public class JavaSearchJavadocTests extends JavaSearchTests {
-
-	Map originalOptions;
-
-	/**
-	 * @param name
-	 */
-	public JavaSearchJavadocTests(String name) {
-		super(name);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#setUpSuite()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.originalOptions = JAVA_PROJECT.getOptions(true);
-		JAVA_PROJECT.setOption(JavaScriptCore.COMPILER_DOC_COMMENT_SUPPORT, JavaScriptCore.ENABLED);
-		this.resultCollector.showAccuracy = true;
-		this.resultCollector.showInsideDoc = true;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#tearDownSuite()
-	 */
-	public void tearDown() throws Exception {
-		JAVA_PROJECT.setOptions(originalOptions);
-		super.tearDown();
-	}
-	private void setJavadocOptions() {
-		JAVA_PROJECT.setOption(JavaScriptCore.COMPILER_PB_INVALID_JAVADOC, JavaScriptCore.WARNING);
-		JAVA_PROJECT.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS, JavaScriptCore.ERROR);
-	}
-	private void disableJavadocOptions() {
-		JAVA_PROJECT.setOption(JavaScriptCore.COMPILER_DOC_COMMENT_SUPPORT, JavaScriptCore.DISABLED);
-	}
-	public static Test suite() {
-//		return buildTestSuite(JavaSearchJavadocTests.class, "testJavadocMethod", null);
-		return buildModelTestSuite(JavaSearchJavadocTests.class);
-	}
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-//		TESTS_NAMES = new String[] { "testGenericFieldReferenceAC04" };
-//		TESTS_NUMBERS = new int[] { 83285 };
-//		TESTS_RANGE = new int[] { -1, -1 };
-	}
-
-	/*
-	 * Test search of type declaration in javadoc comments
-	 * ===================================================
-	 */
-	public void testJavadocTypeDeclaration() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		search(
-				type, 
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java j1.JavadocSearched [JavadocSearched] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocTypeStringDeclaration() throws CoreException {
-		search( 
-				"JavadocSearched",
-				TYPE,
-				DECLARATIONS, 
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java j1.JavadocSearched [JavadocSearched] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocTypeDeclarationWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		setJavadocOptions();
-		search(
-				type, 
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java j1.JavadocSearched [JavadocSearched] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-
-	/*
-	 * Test search of field declaration in javadoc comments
-	 * ====================================================
-	 */
-	public void testJavadocFieldDeclaration() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IField field = type.getField("javadocSearchedVar");
-		search(
-				field, 
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java j1.JavadocSearched.javadocSearchedVar [javadocSearchedVar] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocFieldStringDeclaration() throws CoreException {
-		search(
-				"javadocSearchedVar", 
-				FIELD,
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java j1.JavadocSearched.javadocSearchedVar [javadocSearchedVar] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocFieldDeclarationWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IField field = type.getField("javadocSearchedVar");
-		setJavadocOptions();
-		search(
-				field, 
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java j1.JavadocSearched.javadocSearchedVar [javadocSearchedVar] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-
-	/*
-	 * Test search of method declarations in javadoc comments
-	 * ======================================================
-	 */
-	public void testJavadocMethodDeclaration() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IFunction method = type.getFunction("javadocSearchedMethod", null);
-		search(
-				method, 
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod() [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodArgDeclaration() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
-		search(
-				method, 
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod(String) [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodStringDeclaration() throws CoreException {
-		search(
-				"javadocSearchedMethod", 
-				METHOD,
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod() [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC\n" + 
-				"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod(String) [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodDeclarationWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		setJavadocOptions();
-		IFunction method = type.getFunction("javadocSearchedMethod", null);
-		search(
-				method, 
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod() [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodArgDeclarationWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		setJavadocOptions();
-		IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
-		search(
-				method, 
-				DECLARATIONS,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod(String) [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
-				this.resultCollector);
-	}
-
-	/*
-	 * Test search of type references in javadoc comments
-	 * ==================================================
-	 */
-	public void testJavadocTypeReference() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		search(
-				type, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [j1.JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [j1.JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testJavadocTypeStringReference() throws CoreException {
-		search(
-				"JavadocSearched", 
-				TYPE,
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testJavadocTypeReferenceWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		setJavadocOptions();
-		search(
-				type, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [j1.JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [j1.JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testJavadocTypeStringReferenceWithJavadoc() throws CoreException {
-		setJavadocOptions();
-		search(
-				"JavadocSearched", 
-				TYPE,
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testJavadocTypeStringReferenceWithJavadocDisabled() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		disableJavadocOptions();
-		search(
-				type, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults("", this.resultCollector);
-	}
-
-	/*
-	 * Test search of field references in javadoc comments
-	 * ===================================================
-	 */
-	public void testJavadocFieldReference() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IField field = type.getField("javadocSearchedVar");
-		search(
-				field, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedVar] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocFieldStringReference() throws CoreException {
-		search(
-				"javadocSearchedVar", 
-				FIELD,
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedVar] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocFieldReferenceWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IField field = type.getField("javadocSearchedVar");
-		setJavadocOptions();
-		search(
-				field, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedVar] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocFieldStringReferenceWithJavadoc() throws CoreException {
-		setJavadocOptions();
-		search(
-				"javadocSearchedVar", 
-				FIELD,
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedVar] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocFieldStringReferenceWithJavadocDisabled() throws CoreException {
-		disableJavadocOptions();
-		search(
-				"javadocSearchedVar", 
-				FIELD,
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults("", this.resultCollector);
-	}
-
-	/*
-	 * Test search of method references in javadoc comments
-	 * ====================================================
-	 */
-	public void testJavadocMethodReference() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IFunction method = type.getFunction("javadocSearchedMethod", null);
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod()] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodArgReference() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod(String)] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodStringReference() throws CoreException {
-		search(
-				"javadocSearchedMethod", 
-				METHOD,
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod(String)] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodReferenceWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		setJavadocOptions();
-		IFunction method = type.getFunction("javadocSearchedMethod", null);
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod()] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodArgReferenceWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		setJavadocOptions();
-		IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod(String)] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodStringReferenceWithJavadoc() throws CoreException {
-		setJavadocOptions();
-		search(
-				"javadocSearchedMethod", 
-				METHOD,
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod(String)] EXACT_MATCH INSIDE_JAVADOC",
-				this.resultCollector);
-	}
-	public void testJavadocMethodArgReferenceWithJavadocDisabled() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
-		disableJavadocOptions();
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults("", this.resultCollector);
-	}
-
-	/*
-	 * Test search of constructor references in javadoc comments
-	 * ====================================================
-	 */
-	public void testJavadocConstructorReference() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IFunction method = type.getFunction("JavadocSearched", null);
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched()] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-	public void testJavadocConstructorArgReference() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IFunction method = type.getFunction("JavadocSearched", new String[] { "QString;" });
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched(String)] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-	public void testJavadocConstructorStringReference() throws CoreException {
-		search(
-				"JavadocSearched", 
-				CONSTRUCTOR,
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched()] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched(String)] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-	public void testJavadocConstructorReferenceWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		setJavadocOptions();
-		IFunction method = type.getFunction("JavadocSearched", null);
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched()] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-	public void testJavadocConstructorArgReferenceWithJavadoc() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		setJavadocOptions();
-		IFunction method = type.getFunction("JavadocSearched", new String[] { "QString;" });
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched(String)] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-	public void testJavadocConstructorStringReferenceWithJavadoc() throws CoreException {
-		setJavadocOptions();
-		search(
-			"JavadocSearched", 
-			CONSTRUCTOR,
-			REFERENCES,
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched()] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched(String)] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-	public void testJavadocConstructorReferenceWithJavadocDisabled() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
-		IFunction method = type.getFunction("JavadocSearched", null);
-		disableJavadocOptions();
-		search(
-				method, 
-				REFERENCES,
-				getJavaSearchScope(), 
-				this.resultCollector);
-		assertSearchResults("");
-	}
-	private void setUpJavadocTypeParameterReferences() throws CoreException {
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/JavaSearch15/src/b81190/Test.js",
-			"package b81190;\n" + 
-			"/**\n" + 
-			" * @param <T1> First class type parameter\n" + 
-			" * @param <T2> Second class type parameter\n" + 
-			" * @param <T3> Last class type parameter\n" + 
-			" */\n" + 
-			"public class Test<T1, T2, T3> {\n" + 
-			"	/**\n" + 
-			"	 * @param <U> Method type parameter\n" + 
-			"	 * @param x Method parameter\n" + 
-			"	 */\n" + 
-			"	<U> void generic(U x, T1 t) {\n" + 
-			"		Object o = x;\n" + 
-			"		o.toString();\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-	}
-	// Local variables references in Javadoc have been fixed while implementing 81190
-	public void testJavadocParameterReferences01() throws CoreException {
-		setUpJavadocTypeParameterReferences();
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(workingCopies);
-		ILocalVariable local = selectLocalVariable(workingCopies[0], "x", 2);
-		search(local, REFERENCES, scope);
-		assertSearchResults(
-			"src/b81190/Test.java void b81190.Test.generic(U, T1) [x] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/b81190/Test.java void b81190.Test.generic(U, T1) [x] EXACT_MATCH OUTSIDE_JAVADOC"
-		);
-	}
-
-	/**
-	 * Test fix for bug 47909.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47909">47909</a>
-	 * @throws CoreException
-	 */
-	public void testBug47909() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j3", "Y.js").getType("Y");
-		setJavadocOptions();
-		IFunction method = type.getFunction("Y", new String[] { "I" });
-		search(
-			method, 
-			REFERENCES,
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"test47909.jar void j3.X.bar() EXACT_MATCH OUTSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	
-	/**
-	 * Test fix for bug 47968.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47968">47968</a>
-	 * @throws CoreException
-	 */
-	public void testBug47968type() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j2", "Bug47968.js").getType("Bug47968");
-		setJavadocOptions();
-		search(
-			type, 
-			REFERENCES,
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			// These matches were not found before...
-			"src/j2/Bug47968s.java j2.Bug47968s [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			// ...end
-			"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testBug47968field() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j2", "Bug47968.js").getType("Bug47968");
-		setJavadocOptions();
-		IField field = type.getField("x");
-		search(
-			field, 
-			REFERENCES,
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"src/j2/Bug47968s.java j2.Bug47968s [x] EXACT_MATCH INSIDE_JAVADOC\n" + // This match was not found before...
-			"src/j2/Bug47968s.java j2.Bug47968s.y [x] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s() [x] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java void j2.Bug47968s.bar() [x] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testBug47968method() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j2", "Bug47968.js").getType("Bug47968");
-		setJavadocOptions();
-		IFunction method = type.getFunction("foo", new String[] { "I" });
-		search(
-			method, 
-			REFERENCES,
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"src/j2/Bug47968s.java j2.Bug47968s [foo(int)] EXACT_MATCH INSIDE_JAVADOC\n" + // This match was not found before...
-			"src/j2/Bug47968s.java j2.Bug47968s.y [foo(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s() [foo(int)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java void j2.Bug47968s.bar() [foo(int)] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testBug47968constructor() throws CoreException {
-		IType type = getCompilationUnit("JavaSearch", "src", "j2", "Bug47968.js").getType("Bug47968");
-		setJavadocOptions();
-		IFunction method = type.getFunction("Bug47968", new String[] { "QString;" });
-		search(
-			method, 
-			REFERENCES,
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"src/j2/Bug47968s.java j2.Bug47968s [Bug47968(String)] EXACT_MATCH INSIDE_JAVADOC\n" + // This match was not found before...
-			"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968(String)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968(String)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968(String)] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-
-	/**
-	 * Test fix for bug 47209.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47209">47209</a>
-	 * @throws CoreException
-	 */
-	public void testBug47209type() throws CoreException {
-		setJavadocOptions();
-		IType type = getCompilationUnit("JavaSearch", "src", "j4", "TT47209.js").getType("TT47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "TF47209.js").getType("TF47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "TC47209.js").getType("TC47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "TT47209.js").getType("TM47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		assertSearchResults(
-			"src/j4/TT47209.java j4.TT47209 [TT47209] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j4/TF47209.java j4.TF47209.f47209 [TF47209] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j4/TC47209.java j4.TC47209(String) [TC47209] EXACT_MATCH INSIDE_JAVADOC\n" +
-				"src/j4/TM47209.java void j4.TM47209.m47209(int) [TM47209] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testBug47209field() throws CoreException {
-		setJavadocOptions();
-		IType type = getCompilationUnit("JavaSearch", "src", "j4", "FT47209.js").getType("FT47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "FF47209.js").getType("FF47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "FC47209.js").getType("FC47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "FT47209.js").getType("FM47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		assertSearchResults(
-			"src/j4/FT47209.java j4.FT47209 [FT47209] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j4/FF47209.java j4.FF47209.f47209 [FF47209] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j4/FC47209.java j4.FC47209(String) [FC47209] EXACT_MATCH INSIDE_JAVADOC\n" +
-				"src/j4/FM47209.java void j4.FM47209.m47209(int) [FM47209] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testBug47209method() throws CoreException {
-		setJavadocOptions();
-		IType type = getCompilationUnit("JavaSearch", "src", "j4", "MT47209.js").getType("MT47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "MF47209.js").getType("MF47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "MC47209.js").getType("MC47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "MT47209.js").getType("MM47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		assertSearchResults(
-			"src/j4/MT47209.java j4.MT47209 [MT47209] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j4/MF47209.java j4.MF47209.f47209 [MF47209] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j4/MC47209.java j4.MC47209(String) [MC47209] EXACT_MATCH INSIDE_JAVADOC\n" +
-				"src/j4/MM47209.java void j4.MM47209.m47209(int) [MM47209] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-	public void testBug47209constructor() throws CoreException {
-		setJavadocOptions();
-		IType type = getCompilationUnit("JavaSearch", "src", "j4", "CT47209.js").getType("CT47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "CF47209.js").getType("CF47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "CC47209.js").getType("CC47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		type = getCompilationUnit("JavaSearch", "src", "j4", "CT47209.js").getType("CM47209");
-		search(type,  REFERENCES, getJavaSearchScope());
-		assertSearchResults(
-			"src/j4/CT47209.java j4.CT47209 [CT47209] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j4/CF47209.java j4.CF47209.f47209 [CF47209] EXACT_MATCH INSIDE_JAVADOC\n" + 
-				"src/j4/CC47209.java j4.CC47209(String) [CC47209] EXACT_MATCH INSIDE_JAVADOC\n" +
-				"src/j4/CM47209.java void j4.CM47209.m47209(int) [CM47209] EXACT_MATCH INSIDE_JAVADOC",
-			this.resultCollector);
-	}
-
-	/**
-	 * Test fix for bug 49994.
-	 * @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49994">49994</a>
-	 * @throws CoreException
-	 */
-	public void testBug49994() throws CoreException {
-		setJavadocOptions();
-		IType type = getCompilationUnit("JavaSearch", "src", "j5", "Bug49994.js").getType("Bug49994");
-		search(type,  REFERENCES, getJavaSearchScope());
-		assertSearchResults("", this.resultCollector);
-	}
-	public void testBug49994field() throws CoreException {
-		setJavadocOptions();
-		IType type = getCompilationUnit("JavaSearch", "src", "j5", "Bug49994.js").getType("Bug49994");
-		IField field = type.getField("field");
-		search(field, REFERENCES, getJavaSearchScope(), this.resultCollector);
-		assertSearchResults("src/j5/Bug49994.java void j5.Bug49994.foo() [field] EXACT_MATCH INSIDE_JAVADOC", this.resultCollector);
-	}
-	public void testBug49994method() throws CoreException {
-		setJavadocOptions();
-		IType type = getCompilationUnit("JavaSearch", "src", "j5", "Bug49994.js").getType("Bug49994");
-		IFunction method = type.getFunction("bar", new String[0]);
-		search(method, REFERENCES, getJavaSearchScope(), this.resultCollector);
-		assertSearchResults("src/j5/Bug49994.java void j5.Bug49994.foo() [bar()] EXACT_MATCH INSIDE_JAVADOC", this.resultCollector);
-	}
-	public void testBug49994constructor() throws CoreException {
-		setJavadocOptions();
-		IType type = getCompilationUnit("JavaSearch", "src", "j5", "Bug49994.js").getType("Bug49994");
-		IFunction method = type.getFunction("Bug49994", new String[] { "QString;" });
-		search(method, REFERENCES, getJavaSearchScope(), this.resultCollector);
-		assertSearchResults("src/j5/Bug49994.java void j5.Bug49994.foo() [Bug49994(String)] EXACT_MATCH INSIDE_JAVADOC", this.resultCollector);
-	}
-
-	/**
-	 * Bug 83285: [javadoc] Javadoc reference to constructor of secondary type has no binding / not found by search
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83285"
-	 */
-	public void testBug83285() throws CoreException {
-		resultCollector.showRule = true;
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/JavaSearch/src/b83285/A.js",
-			"package b83285;\n" + 
-			"class A { }\n" + 
-			"class C {\n" + 
-			"    /**\n" + 
-			"     * Link {@link #C(String)} was also wrongly warned...\n" + 
-			"     */\n" + 
-			"    private String fGerman;\n" + 
-			"    public C(String german) {\n" + 
-			"        fGerman = german;\n" + 
-			"    }\n" + 
-			"}"
-			);
-		IFunction[] methods = workingCopies[0].getType("C").getFunctions();
-		assertEquals("Invalid number of methods", 1, methods.length);
-		search(methods[0], REFERENCES, getJavaSearchScope());
-		assertSearchResults(
-			"src/b83285/A.java b83285.C.fGerman [C(String)] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-	public void testBug83285a() throws CoreException {
-		resultCollector.showRule = true;
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/JavaSearch/src/b83285/A.js",
-			"package b83285;\n" + 
-			"class A {\n" + 
-			"	A(char c) {}\n" + 
-			"}\n" + 
-			"class B {\n" + 
-			"	B(Exception ex) {}\n" + 
-			"	void foo() {} \n" + 
-			"	class C { \n" + 
-			"	    /**\n" + 
-			"	     * Link {@link #B(Exception)} OK\n" + 
-			"	     * Link {@link #C(String)} OK\n" + 
-			"	     * Link {@link #foo()} OK\n" + 
-			"	     * Link {@link #bar()} OK\n" + 
-			"	     */\n" + 
-			"	    public C(String str) {}\n" + 
-			"		void bar() {}\n" + 
-			"	}\n" + 
-			"}"
-		);
-		IFunction[] methods = workingCopies[0].getType("B").getFunctions();
-		assertEquals("Invalid number of methods", 2, methods.length);
-		for (int i=0,l=methods.length; i<l; i++) {
-			search(methods[i], REFERENCES, getJavaSearchScope());
-		}
-		assertSearchResults(
-			"src/b83285/A.java b83285.B$C(String) [B(Exception)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/b83285/A.java b83285.B$C(String) [foo()] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-	public void testBug83285b() throws CoreException {
-		resultCollector.showRule = true;
-		workingCopies = new IJavaScriptUnit[1];
-		workingCopies[0] = getWorkingCopy("/JavaSearch/src/b83285/A.js",
-			"package b83285;\n" + 
-			"class A {\n" + 
-			"	A(char c) {}\n" + 
-			"}\n" + 
-			"class B {\n" + 
-			"	B(Exception ex) {}\n" + 
-			"	void foo() {} \n" + 
-			"	class C { \n" + 
-			"	    /**\n" + 
-			"	     * Link {@link #B(Exception)} OK\n" + 
-			"	     * Link {@link #C(String)} OK\n" + 
-			"	     * Link {@link #foo()} OK\n" + 
-			"	     * Link {@link #bar()} OK\n" + 
-			"	     */\n" + 
-			"	    public C(String str) {}\n" + 
-			"		void bar() {}\n" + 
-			"	}\n" + 
-			"}"
-		);
-		IFunction[] methods = workingCopies[0].getType("B").getType("C").getFunctions();
-		assertEquals("Invalid number of methods", 2, methods.length);
-		for (int i=0,l=methods.length; i<l; i++) {
-			search(methods[i], REFERENCES, getJavaSearchScope());
-		}
-		assertSearchResults(
-			"src/b83285/A.java b83285.B$C(String) [C(String)] EXACT_MATCH INSIDE_JAVADOC\n" + 
-			"src/b83285/A.java b83285.B$C(String) [bar()] EXACT_MATCH INSIDE_JAVADOC"
-		);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchMultipleProjectsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchMultipleProjectsTests.java
deleted file mode 100644
index da1cddd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchMultipleProjectsTests.java
+++ /dev/null
@@ -1,919 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.search.*;
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaSearchTests.JavaSearchResultCollector;
-
-/**
- * Tests the Java search engine accross multiple projects.
- */
-public class JavaSearchMultipleProjectsTests extends ModifyingResourceTests implements IJavaScriptSearchConstants {
-	private final static int UI_DECLARATIONS = DECLARATIONS|IGNORE_DECLARING_TYPE|IGNORE_RETURN_TYPE;
-public JavaSearchMultipleProjectsTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildModelTestSuite(JavaSearchMultipleProjectsTests.class);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//	TESTS_NAMES = new String[] { "testJavaSearchScopeBug101426" };
-//	TESTS_NUMBERS = new int[] { 101426 };
-//	TESTS_RANGE = new int[] { 16, -1 };
-//	TESTS_PREFIX = "testScopeEncloses";
-}
-
-/**
- * Field occurences in 2 working copies within 2 projects (one prereq this other one).
- * (regression test for bug 41534 incorrect shadowing reported by rename [refactoring])
- */
-public void testFieldOccurencesInWorkingCopies() throws CoreException {
-	IJavaScriptUnit wc1 = null, wc2 = null;
-	try {
-		// setup project P1
-		IJavaScriptProject p1 = createJavaProject("P1");
-		createFolder("/P1/p1");
-		createFile(
-			"/P1/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"    public static int FOO;\n" +
-			"}"
-		);
-		
-		// setup project P2
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		createFolder("/P2/p2");
-		createFile(
-			"/P2/p2/Y.js",
-			"package p2;\n" +
-			"import p1.X;\n" +
-			"public class Y {\n" +
-			"    int bar() {\n" +
-			"      return X.FOO;\n" +
-			"}"
-		);
-		
-		// create working copies and rename X.FOO to X.BAR in these working copies
-		wc1 = getCompilationUnit("P1/p1/X.js").getWorkingCopy(null);
-		wc1.getBuffer().setContents(
-			"package p1;\n" +
-			"public class X {\n" +
-			"    public static int BAR;\n" +
-			"}"
-		);
-		wc1.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		wc2 = getCompilationUnit("P2/p2/Y.js").getWorkingCopy(null);
-		wc2.getBuffer().setContents(
-			"package p2;\n" +
-			"import p1.X;\n" +
-			"public class Y {\n" +
-			"    int bar() {\n" +
-			"      return X.BAR;\n" +
-			"}"
-		);
-		
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p1, p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		IField field = wc1.getType("X").getField("BAR");
-		SearchPattern pattern = SearchPattern.createPattern(field, ALL_OCCURRENCES);
-		new SearchEngine(new IJavaScriptUnit[] {wc1, wc2}).search(
-			pattern, 
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope, 
-			resultCollector,
-			null);
-		assertEquals(
-			"Unexpected occurences of field p1.X.BAR",
-			"p1/X.java [in P1] p1.X.BAR [BAR]\n" +
-			"p2/Y.java [in P2] int p2.Y.bar() [BAR]", 
-			resultCollector.toString());
-	} finally {
-		if (wc1 != null) {
-			wc1.discardWorkingCopy();
-		}
-		if (wc2 != null) {
-			wc2.discardWorkingCopy();
-		}
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Search for references in a hierarchy should find matches in super type.
- * (regression test for bug 31748 [search] search for reference is broken 2.1 M5)
- */
-public void testHierarchyScope1() throws CoreException {
-	try {
-		createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p;\n" +
-			"public class X {\n" +
-			"	protected void foo() {\n" +
-			"	}\n" +
-			"	void bar() {\n" +
-			"		foo();\n" +
-			"	}\n" +
-			"}" 
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		createFile(
-			"/P2/Y.js",
-			"import p.X;\n" +
-			"public class Y extends X {\n" +
-			"	protected void foo() {\n" +
-			"	}\n" +
-			"}" 
-		);
-		IJavaScriptUnit cu = getCompilationUnit("/P2/Y.js");
-		IType type = cu.getType("Y");
-		IFunction method = type.getFunction("foo", new String[] {});
-		IJavaScriptSearchScope scope = SearchEngine.createHierarchyScope(type);
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search(
-			method, 
-			REFERENCES, 
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"p/X.java [in P1] void p.X.bar() [foo()]", 
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Search for references in a hierarchy should find matches in super type.
- * (regression test for bug 31748 [search] search for reference is broken 2.1 M5)
- */
-public void testHierarchyScope2() throws CoreException {
-	try {
-		createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p;\n" +
-			"public class X {\n" +
-			"	protected void foo() {\n" +
-			"	}\n" +
-			"	void bar() {\n" +
-			"		foo();\n" +
-			"	}\n" +
-			"}" 
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		createFile(
-			"/P2/Y.js",
-			"import p.X;\n" +
-			"public class Y extends X {\n" +
-			"	protected void foo() {\n" +
-			"	}\n" +
-			"}" 
-		);
-		createFile(
-			"/P2/Z.js",
-			"public class Z extends Y {\n" +
-			"	protected void foo() {\n" +
-			"	}\n" +
-			"}" 
-		);
-
-		IJavaScriptUnit cu = getCompilationUnit("/P2/Z.js");
-		IType type = cu.getType("Z");
-		IFunction method = type.getFunction("foo", new String[] {});
-		IJavaScriptSearchScope scope = SearchEngine.createHierarchyScope(type);
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search(
-			method, 
-			REFERENCES, 
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"p/X.java [in P1] void p.X.bar() [foo()]", 
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Search for references in a hierarchy should find matches in super type.
- * (regression test for bug 35755 Search in hierarchy misses dependent projects )
- */
-public void testHierarchyScope3() throws CoreException {
-	try {
-		createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p;\n" +
-			"public class X {\n" +
-			"	protected void foo() {\n" +
-			"	}\n" +
-			"}" 
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		createFolder("/P2/q");
-		createFile(
-			"/P2/q/Y.js",
-			"package q;\n" +
-			"import p.X;\n" +
-			"public class Y extends X {\n" +
-			"	void bar() {\n" +
-			"		foo();\n" +
-			"	}\n" +
-			"}" 
-		);
-
-		IJavaScriptUnit cu = getCompilationUnit("/P1/p/X.js");
-		IType type = cu.getType("X");
-		IFunction method = type.getFunction("foo", new String[] {});
-		IJavaScriptSearchScope scope = SearchEngine.createHierarchyScope(type);
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search(
-			method, 
-			REFERENCES, 
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"q/Y.java [in P2] void q.Y.bar() [foo()]", 
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Search for references in a hierarchy should not find inaccurate match if reference is indirect.
- * (regression test for bug 35755 Search in hierarchy misses dependent projects )
- */
-public void testHierarchyScope4() throws CoreException {
-	try {
-		createJavaProject("P0");
-		createFolder("/P0/p0");
-		createFile(
-			"/P0/p0/X.js",
-			"package p0;\n" +
-			"public class X {\n" +
-			"  public static X TheX;\n" +
-			"	public void foo() {\n" +
-			"	}\n" +
-			"}" 
-		);
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P0"});
-		createFolder("/P1/p1");
-		createFile(
-			"/P1/p1/T.js",
-			"package p1;\n" +
-			"import p0.X;\n" +
-			"public class T {\n" +
-			"	public X zork() {\n" +
-			"		return X.TheX;\n" +
-			"	}\n" +
-			"}" 
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P0", "/P1"});
-		createFolder("/P2/p2");
-		createFile(
-			"/P2/p2/Y.js",
-			"package p2;\n" +
-			"import p0.X;\n" +
-			"import p1.T;\n" +
-			"public class Y extends X {\n" +
-			"	public void bar() {\n" +
-			"		new T().zork().foo();\n" +
-			"	}\n" +
-			"}" 
-		);
-		createJavaProject("P3", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P0", "/P2"});
-		createFolder("/P3/p3");
-		createFile(
-			"/P3/p3/Z.js",
-			"package p3;\n" +
-			"import p0.X;\n" +
-			"import p2.Y;\n" +
-			"public class Z extends Y {\n" +
-			"	static {\n" +
-			"		X.TheX = new Z(); // zork() will actually answer an instance of Z\n" +
-			"	}\n" +
-			"	public void foo() {\n" +
-			"	} // refs should find one in Y.bar()\n" +
-			"}" 
-		);
-
-		IJavaScriptUnit cu = getCompilationUnit("/P3/p3/Z.js");
-		IType type = cu.getType("Z");
-		IFunction method = type.getFunction("foo", new String[] {});
-		IJavaScriptSearchScope scope = SearchEngine.createHierarchyScope(type);
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showAccuracy = true;
-		resultCollector.showProject = true;
-		search(
-			method, 
-			REFERENCES, 
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"p2/Y.java [in P2] void p2.Y.bar() [foo()] EXACT_MATCH", 
-			resultCollector);
-	} finally {
-		deleteProjects(new String[] {"P0", "P1", "P2", "P3"});
-	}
-}
-/**
- * Method occurences with 2 unrelated projects that contain the same source.
- * (regression test for bug 33800 search: reporting too many method occurrences)
- */
-public void testMethodOccurences() throws CoreException {
-	try {
-		// setup project P1
-		IJavaScriptProject p1 = createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/I.js",
-			"package p;\n" +
-			"public interface I {\n" +
-			"    void method(Object o);\n" +
-			"}"
-		);
-		createFile(
-			"/P1/p/C.js",
-			"package p;\n" +
-			"public class C implements I {\n" +
-			"    void method(Object o) {\n" +
-			"    }\n" +
-			"}"
-		);
-		
-		// copy to project P2
-		p1.getProject().copy(new Path("/P2"), false, null);
-		IJavaScriptProject p2 = getJavaProject("P2");
-		
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p1, p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		IFunction method = getCompilationUnit("/P1/p/I.js").getType("I").getFunction("method", new String[] {"QObject;"});
-		search(
-			method, 
-			ALL_OCCURRENCES,
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected occurences of method p.I.method(Object)",
-			"p/C.java [in P1] void p.C.method(Object) [method]\n" +
-			"p/I.java [in P1] void p.I.method(Object) [method]", 
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Package declaration with 2 unrelated projects that contain the same source.
- * (regression test for bug 46276 Search for package declarations incorrectly finds matches in clone project)
- */
-public void testPackageDeclaration() throws CoreException {
-	try {
-		// setup project P1
-		IJavaScriptProject p1 = createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		
-		// copy to project P2
-		p1.getProject().copy(new Path("/P2"), false, null);
-		IJavaScriptProject p2 = getJavaProject("P2");
-		
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p1, p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		IPackageFragment pkg = getPackage("/P1/p");
-		search(
-			pkg, 
-			DECLARATIONS,
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected package declarations",
-			"p [in P1] p",
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Package reference with fragments in 2 different source projects.
- * (regression test for bug 47415 [Search] package references confused with multiple fragments)
- */
-public void testPackageReference1() throws CoreException {
-	try {
-		// setup project P1
-		IJavaScriptProject p1 = createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		
-		// setup project P2
-		IJavaScriptProject p2 = createJavaProject(
-			"P2", 
-			new String[] {""}, 
-			new String[] {"JCL_LIB"}, 
-			new String[] {"/P1"});
-		createFolder("/P2/p");
-		createFile(
-			"/P2/p/Y.js",
-			"package p;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		
-		// create package references
-		createFolder("/P2/q");
-		createFile(
-			"/P2/q/Z.js",
-			"package q;\n" +
-			"import p.X;\n" +
-			"import p.Y;\n" +
-			"public class Z {\n" +
-			"  X onlyHereForTheImport = null;\n" +
-			"  Y alsoOnlyHereForTheImport = null;\n" +
-			"  void foo(){\n" +
-			"    p.X x = (p.X)null;\n" +
-			"    p.Y y = (p.Y)null;\n" +
-			"  }\n" +
-			"}"
-		);
-		
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p1, p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		IPackageFragment pkg = getPackage("/P1/p");
-		search(
-			pkg, 
-			REFERENCES,
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected package references",
-			"q/Z.java [p]\n" + 
-			"q/Z.java void q.Z.foo() [p]\n" + 
-			"q/Z.java void q.Z.foo() [p]",
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Package reference with fragments in 2 different binary projects.
- * (regression test for bug 47415 [Search] package references confused with multiple fragments)
- */
-public void testPackageReference2() throws CoreException, IOException {
-	try {
-		// setup project JavaSearchMultipleProjects1
-		IJavaScriptProject p1 = setUpJavaProject("JavaSearchMultipleProjects1");
-		
-		// setup project JavaSearchMultipleProjects2
-		IJavaScriptProject p2 = setUpJavaProject("JavaSearchMultipleProjects2");
-				
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p1, p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		IPackageFragment pkg = getPackage("/JavaSearchMultipleProjects1/lib/p");
-		search(
-			pkg, 
-			REFERENCES,
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected package references",
-			"src/q/Z.java [p]\n" + 
-			"src/q/Z.java void q.Z.foo() [p]\n" + 
-			"src/q/Z.java void q.Z.foo() [p]",
-			resultCollector);
-	} finally {
-		deleteProject("JavaSearchMultipleProjects1");
-		deleteProject("JavaSearchMultipleProjects2");
-	}
-}
-/**
- * Method reference with 2 working copies in 2 different project.
- * (regression test for bug 57749 Search in working copies doesn't find all matches)
- */
-public void testReferenceInWorkingCopies() throws CoreException {
-	IJavaScriptUnit workingCopy1 = null;
-	IJavaScriptUnit workingCopy2 = null;
-	try {
-		// setup project P1
-		IJavaScriptProject p1 = createJavaProject("P1");
-		createFolder("/P1/p1");
-		createFile(
-			"/P1/p1/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"  void foo() {\n" +
-			"  }\n" +
-			"}"
-		);
-		createFile(
-			"/P1/p1/Test.js",
-			"package p1;\n" +
-			"public class Test {\n" +
-			"}"
-		);
-		
-		// setup project P2
-		IJavaScriptProject p2 = createJavaProject(
-			"P2", 
-			new String[] {""}, 
-			new String[] {"JCL_LIB"}, 
-			new String[] {"/P1"});
-		createFolder("/P2/p2");
-		createFile(
-			"/P2/p2/Y.js",
-			"package p2;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		// need a second potential match to see the problem
-		createFile(
-			"/P2/p2/Z.js",
-			"public class Z {\n" +
-			"  void bar(p1.Test test) {\n" +
-			"  }\n" +
-			"  void foo() {\n" +
-			"    bar(null);\n" + // potential match
-			"  }\n" +
-			"}"
-		);
-		
-		// create working copies
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		workingCopy1 = getCompilationUnit("/P1/p1/X.js").getWorkingCopy(owner, null/*no progress monitor*/);
-		workingCopy1.getBuffer().setContents(
-			"package p1;\n" +
-			"public class X {\n" +
-			"  void bar(Test test) {\n" +
-			"  }\n" +
-			"}"
-		);
-		workingCopy1.makeConsistent(null);
-		workingCopy2 = getCompilationUnit("/P2/p2/Y.js").getWorkingCopy(owner, null/*no progress monitor*/);
-		workingCopy2.getBuffer().setContents(
-			"package p2;\n" +
-			"import p1.X;\n" +
-			"public class Y {\n" +
-			"  void fred() {\n" +
-			"    new X().bar(null);\n" +
-			"  }\n" +
-			"}"
-		);
-		workingCopy2.makeConsistent(null);
-		
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p1, p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		IFunction method = workingCopy1.getType("X").getFunction("bar", new String[] {"QTest;"});
-		new SearchEngine(owner).search(
-			SearchPattern.createPattern(method, REFERENCES), 
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope,
-			resultCollector,
-			null
-		);
-		assertSearchResults(
-			"Unexpected package references",
-			"p2/Y.java void p2.Y.fred() [bar(null)]",
-			resultCollector);
-	} finally {
-		if (workingCopy1 != null) workingCopy1.discardWorkingCopy();
-		if (workingCopy2 != null) workingCopy1.discardWorkingCopy();
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Type declaration in external jar file that is shared by 2 projects.
- * (regression test for bug 27485 SearchEngine returns wrong java element when searching in an archive that is included by two distinct java projects.)
- */
-public void testTypeDeclarationInJar() throws CoreException {
-	try {
-		IJavaScriptProject p1 = createJavaProject("P1", new String[] {}, new String[] {"JCL_LIB"});
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {}, new String[] {"JCL_LIB"});
-		
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p1});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search(
-			"Object", 
-			TYPE,
-			DECLARATIONS, 
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected result in scope of P1",
-			getSystemJsPathString() + " [in P1] java.lang.Object", 
-			resultCollector);
-			
-		scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p2});
-		resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search(
-			"Object", 
-			TYPE,
-			DECLARATIONS, 
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected result in scope of P2",
-			getSystemJsPathString() + " [in P2] java.lang.Object", 
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-/**
- * Bug 151189: [search] Declaration search does not find all matches
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=151189"
- */
-public void testBug151189_Workspace() throws CoreException {
-	try {
-		// setup project P1
-		/*IJavaScriptProject p1 = */createJavaProject("P1");
-		createFolder("/P1/pack");
-		createFile(
-			"/P1/pack/Declaration.js",
-			"package pack;\n" + 
-			"public class Declaration implements Interface {\n" + 
-			"	public void doOperation(int val) {}\n" + 
-			"}\n"
-		);
-		createFile(
-			"/P1/pack/Interface.js",
-			"package pack;\n" + 
-			"public interface Interface {\n" + 
-			"	void doOperation(int val);\n" + 
-			"}\n"
-		);
-
-		// setup project P2
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" });
-		createFolder("/P2/test");
-		createFile(
-			"/P2/test/Declaration_bis.js",
-			"package test;\n" + 
-			"import pack.Interface;\n" + 
-			"public class Declaration_bis implements Interface {\n" + 
-			"	public void doOperation(int val) {}\n" + 
-			"}\n"
-		);
-
-		// Get method
-		IFunction method = getCompilationUnit("/P2/test/Declaration_bis.js").getType("Declaration_bis").getFunction("doOperation", new String[] {"I"});
-
-		// search method declaration in workspace scope
-		IJavaScriptSearchScope scope = SearchEngine.createWorkspaceScope(); //JavaSearchScope(new IJavaScriptElement[] {p1, p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search(
-			method, 
-			DECLARATIONS,
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected declarations of method test.Declaration_bis.doOperation(int)",
-			"test/Declaration_bis.java [in P2] void test.Declaration_bis.doOperation(int) [doOperation]",
-			resultCollector);
-
-		// search method declaration in workspace scope with JDT-UI flags
-		resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search(
-			method, 
-			UI_DECLARATIONS,
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected declarations of method test.Declaration_bis.doOperation(int)",
-			"pack/Declaration.java [in P1] void pack.Declaration.doOperation(int) [doOperation]\n" + 
-			"pack/Interface.java [in P1] void pack.Interface.doOperation(int) [doOperation]\n" + 
-			"test/Declaration_bis.java [in P2] void test.Declaration_bis.doOperation(int) [doOperation]",
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-public void testBug151189_Project() throws CoreException {
-	try {
-		// setup project P1
-		createJavaProject("P1");
-		createFolder("/P1/pack");
-		createFile(
-			"/P1/pack/Declaration.js",
-			"package pack;\n" + 
-			"public class Declaration implements Interface {\n" + 
-			"	public void doOperation(int val) {}\n" + 
-			"}\n"
-		);
-		createFile(
-			"/P1/pack/Interface.js",
-			"package pack;\n" + 
-			"public interface Interface {\n" + 
-			"	void doOperation(int val);\n" + 
-			"}\n"
-		);
-
-		// setup project P2
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" });
-		createFolder("/P2/test");
-		createFile(
-			"/P2/test/Declaration_bis.js",
-			"package test;\n" + 
-			"import pack.Interface;\n" + 
-			"public class Declaration_bis implements Interface {\n" + 
-			"	public void doOperation(int val) {}\n" + 
-			"}\n"
-		);
-
-		// Get method
-		IFunction method = getCompilationUnit("/P2/test/Declaration_bis.js").getType("Declaration_bis").getFunction("doOperation", new String[] {"I"});
-
-		// search method declaration in project scope
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search(
-			method, 
-			UI_DECLARATIONS,
-			scope, 
-			resultCollector);
-		assertSearchResults(
-			"Unexpected declarations of method test.Declaration_bis.doOperation(int)",
-			"pack/Declaration.java [in P1] void pack.Declaration.doOperation(int) [doOperation]\n" + 
-			"pack/Interface.java [in P1] void pack.Interface.doOperation(int) [doOperation]\n" + 
-			"test/Declaration_bis.java [in P2] void test.Declaration_bis.doOperation(int) [doOperation]",
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-/**
- * @bug 163072: [search] method reference reports wrong potential matches
- * @test Ensure that there's no potential match while searching in two projects having 1.4 and 1.5 compliances
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=163072"
- */
-public void testBug163072() throws CoreException {
-	try {
-		// setup project P1
-		/*IJavaScriptProject p1 = */createJavaProject("P1"); // standard project using 1.4 compliance
-		createFolder("/P1/test");
-		createFile(
-			"/P1/test/Test.js",
-			"package test;\n" + 
-			"public class Test {\n" + 
-			"	public Object getType() {\n" + 
-			"		return null;\n" + 
-			"	}\n" + 
-			"	public void foo() {\n" + 
-			"		if (getType() == null) {\n" + 
-			"			System.out.println(\"null\");\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-
-		// setup project P2
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL15_LIB"}, new String[] { "/P1" }, "", "1.5");
-		createFolder("/P2/pack");
-		createFile(
-			"/P2/pack/FactoryContainer.js",
-			"package pack;\n" + 
-			"public class FactoryContainer {\n" + 
-			"	public enum FactoryType { PLUGIN }\n" + 
-			"	public FactoryType getType() {\n" + 
-			"		return FactoryType.PLUGIN;\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		createFile(
-			"/P2/pack/Reference.js",
-			"package pack;\n" + 
-			"public class Reference {\n" + 
-			"	private final FactoryContainer _fc;\n" + 
-			"	public Reference() {\n" + 
-			"		_fc = new FactoryContainer();\n" + 
-			"	}\n" + 
-			"	boolean foo() {\n" + 
-			"		return _fc.getType() == FactoryContainer.FactoryType.PLUGIN;\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-
-		// Get method
-		IFunction method = getCompilationUnit("/P1/test/Test.js").getType("Test").getFunction("getType", new String[0]);
-		assertTrue("Method 'Test.getType()' should exist!", method.exists());
-
-		// search method declaration in workspace scope
-		IJavaScriptSearchScope scope = SearchEngine.createWorkspaceScope(); //JavaSearchScope(new IJavaScriptElement[] {p1, p2});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		resultCollector.showAccuracy = true;
-		search(method, REFERENCES, scope, resultCollector);
-		assertSearchResults(
-			"Unexpected references of method Test.getType()",
-			"test/Test.java [in P1] void test.Test.foo() [getType()] EXACT_MATCH",
-			resultCollector);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-/**
- * @bug 167743: [search] Open Type Dialog cannot find types from projects migrated from 3.2.1 workspace
- * @test Ensure that types are found even in default package fragment root
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=167743"
- */
-public void testBug167743() throws CoreException {
-	try {
-		IJavaScriptProject p = createJavaProject("P");
-		createFolder("/P/test");
-		createFile(
-			"/P/test/TestClass.js",
-			"package test;\n" + 
-			"public class Test {\n" + 
-			"}\n"
-		);
-
-		// Search all type names with TypeNameMatchRequestor
-		AbstractJavaSearchTests.TypeNameMatchCollector collector = new AbstractJavaSearchTests.TypeNameMatchCollector() {
-			public String toString(){
-				return toFullyQualifiedNamesString();
-			}
-		};
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] { p });
-		new SearchEngine().searchAllTypeNames(
-			null,
-			SearchPattern.R_EXACT_MATCH,
-			new char[] { '*' },
-			SearchPattern.R_PATTERN_MATCH,
-			IJavaScriptSearchConstants.TYPE,
-			scope,
-			collector,
-			IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-			null);
-		// Search all type names with TypeNameRequestor
-		SearchTests.SearchTypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-		new SearchEngine().searchAllTypeNames(
-			null,
-			SearchPattern.R_EXACT_MATCH,
-			new char[] { '*' },
-			SearchPattern.R_PATTERN_MATCH,
-			IJavaScriptSearchConstants.TYPE,
-			scope,
-			requestor,
-			IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-			null);
-		// Should have same types with these 2 searches
-		assertEquals("Invalid number of types found!", requestor.size(), collector.size());
-		assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-	} finally {
-		deleteProject("P");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchScopeTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchScopeTests.java
deleted file mode 100644
index a4ccbc6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchScopeTests.java
+++ /dev/null
@@ -1,966 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.HashMap;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.search.*;
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaSearchTests.JavaSearchResultCollector;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-
-/**
- * Tests the Java search engine accross multiple projects.
- */
-public class JavaSearchScopeTests extends ModifyingResourceTests implements IJavaScriptSearchConstants {
-public JavaSearchScopeTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildModelTestSuite(JavaSearchScopeTests.class);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//	TESTS_NAMES = new String[] { "testMethodOccurences" };
-//  TESTS_NUMBERS = new int[] { 101426 };
-//	TESTS_RANGE = new int[] { 16, -1 };
-}
-
-protected void tearDown() throws Exception {
-	// Cleanup caches
-	JavaModelManager manager = JavaModelManager.getJavaModelManager();
-	manager.containers = new HashMap(5);
-	manager.variables = new HashMap(5);
-
-	super.tearDown();
-}
-protected void assertScopeEquals(String expected, IJavaScriptSearchScope scope) {
-	String actual = scope.toString();
-	if (!expected.equals(actual)) {
-		System.out.println(displayString(actual, 3) + ",");
-	}
-	assertEquals("Unexpected scope", expected, actual);
-}
-/*
- * Ensures that a Java search scope with SOURCES only is correct.
- */
-public void testSources() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}, IJavaScriptSearchScope.SOURCES);
-		assertScopeEquals(
-			"JavaSearchScope on [\n" + 
-			"	/P\n" + 
-			"]",
-			scope);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java search scope with APPLICATION_LIBRARIES only is correct
- * (external jar case)
- */
-public void testApplicationLibrairiesExternalJar() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}, IJavaScriptSearchScope.APPLICATION_LIBRARIES);
-		assertScopeEquals(
-			"JavaSearchScope on [\n" + 
-			"	"+  getExternalJCLPath("").toOSString() +"\n" + 
-			"]",
-			scope);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java search scope with APPLICATION_LIBRARIES only is correct
- * (internal jar and class folder cases)
- */
-public void testApplicationLibrairiesJarAndClassFolder() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"}, new String[] {"/P/internal.jar", "/P/classfolder"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}, IJavaScriptSearchScope.APPLICATION_LIBRARIES);
-		assertScopeEquals(
-			"JavaSearchScope on [\n" + 
-			"	/P/internal.jar\n" + 
-			"	/P/classfolder\n" + 
-			"]",
-			scope);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java search scope with APPLICATION_LIBRARIES only is correct
- * (classpath variable case)
- */
-public void testApplicationLibrairiesClasspathVariable() throws CoreException {
-	try {
-		VariablesInitializer.setInitializer(new ClasspathInitializerTests.DefaultVariableInitializer(new String[] {"TEST_LIB", "/P/lib.jar"}));
-		IJavaScriptProject project = createJavaProject("P", new String[] {}, new String[] {"TEST_LIB"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}, IJavaScriptSearchScope.APPLICATION_LIBRARIES);
-		assertScopeEquals(
-			"JavaSearchScope on [\n" + 
-			"	/P/lib.jar\n" + 
-			"]",
-			scope);
-	} finally {
-		deleteProject("P");
-		VariablesInitializer.reset();
-	}
-}
-/*
- * Ensures that a Java search scope with APPLICATION_LIBRARIES only is correct
- * (classpath container case)
- */
-public void testApplicationLibrairiesJsGlobalScopeContainer() throws CoreException {
-	try {
-		ContainerInitializer.setInitializer(new ClasspathInitializerTests.DefaultContainerInitializer(new String[] {"P", "/P/lib.jar"}));
-		IJavaScriptProject project = createJavaProject("P", new String[] {}, new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}, IJavaScriptSearchScope.APPLICATION_LIBRARIES);
-		assertScopeEquals(
-			"JavaSearchScope on [\n" + 
-			"	/P/lib.jar\n" + 
-			"]",
-			scope);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java search scope with SYSTEM_LIBRARIES only is correct
- * (classpath container case)
- */
-public void testSystemLibraries() throws CoreException {
-	try {
-		ClasspathInitializerTests.DefaultContainerInitializer intializer = new ClasspathInitializerTests.DefaultContainerInitializer(new String[] {"P", "/P/lib.jar"}) {
-			protected DefaultContainer newContainer(char[][] libPaths) {
-				return new DefaultContainer(libPaths) {
-					public int getKind() {
-						return IJsGlobalScopeContainer.K_SYSTEM;
-					}
-				};
-			}
-		};
-		ContainerInitializer.setInitializer(intializer);
-		IJavaScriptProject project = createJavaProject("P", new String[] {}, new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}, IJavaScriptSearchScope.SYSTEM_LIBRARIES);
-		assertScopeEquals(
-			"JavaSearchScope on [\n" + 
-			"	/P/lib.jar\n" + 
-			"]",
-			scope);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java search scope with SOURCES | REFERENCED_PROJECTS is correct
- * (direct reference case)
- */
-public void testSourcesOrDirectReferencedProjects() throws CoreException {
-	try {
-		createJavaProject("P1");
-		IJavaScriptProject project = createJavaProject("P2", new String[] {"src"}, new String[] {}, new String[] {"/P1"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}, IJavaScriptSearchScope.SOURCES | IJavaScriptSearchScope.REFERENCED_PROJECTS);
-		assertScopeEquals(
-			"JavaSearchScope on [\n" + 
-			"	/P1\n" + 
-			"	/P2/src\n" + 
-			"]",
-			scope);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/*
- * Ensures that a Java search scope with SOURCES | REFERENCED_PROJECTS is correct
- * (reference through a container case)
- */
-public void testSourcesOrContainerReferencedProjects() throws CoreException {
-	try {
-		createJavaProject("P1");
-		ContainerInitializer.setInitializer(new ClasspathInitializerTests.DefaultContainerInitializer(new String[] {"P2", "/P1"}));
-		IJavaScriptProject project = createJavaProject("P2", new String[] {"src"}, new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}, IJavaScriptSearchScope.SOURCES | IJavaScriptSearchScope.REFERENCED_PROJECTS);
-		assertScopeEquals(
-			"JavaSearchScope on [\n" + 
-			"	/P1\n" + 
-			"	/P2/src\n" + 
-			"]",
-			scope);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/*
- * Ensures that a Java project is enclosed in a scope on the project (proj=src)
- * (resourcePath case)
- */
-public void testScopeEncloses01() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P\"", scope.encloses("/P"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is enclosed in a scope on the project (proj=src)
- * (Java element case)
- */
-public void testScopeEncloses02() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose P", scope.encloses(project));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a root is enclosed in a scope on the project (proj=src)
- * (resource path with traling slash case)
- */
-public void testScopeEncloses03() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/\"", scope.encloses("/P/"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a root is enclosed in a scope on the project (proj=src)
- * (Java element case)
- */
-public void testScopeEncloses04() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(project.getProject());
-		assertTrue("scope on P should enclose root P", scope.encloses(root));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj=src)
- * (resource path case)
- */
-public void testScopeEncloses05() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/x/y\"", scope.encloses("/P/x/y"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj=src)
- * (resource path with trailing slash case)
- */
-public void testScopeEncloses06() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/x/y/\"", scope.encloses("/P/x/y/"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj=src)
- * (Java element case)
- */
-public void testScopeEncloses07() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragment pkg = getPackage("/P/x/y");
-		assertTrue("scope on P should enclose package x.y", scope.encloses(pkg));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a default package is enclosed in a scope on the project (proj=src)
- * (Java element case)
- */
-public void testScopeEncloses08() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragment pkg = getPackage("/P");
-		assertTrue("scope on P should enclose default package", scope.encloses(pkg));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit is enclosed in a scope on the project (proj=src)
- * (resource path case)
- */
-public void testScopeEncloses09() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/x/y/A.java\"", scope.encloses("/P/x/y/A.js"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit is enclosed in a scope on the project (proj=src)
- * (Java element case)
- */
-public void testScopeEncloses10() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/x/y/A.js");
-		assertTrue("scope on P should enclose compilation unit A.js", scope.encloses(cu));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit in the default package is enclosed in a scope on the project (proj=src)
- * (resource path case)
- */
-public void testScopeEncloses11() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/A.java\"", scope.encloses("/P/A.js"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit in the default package is enclosed in a scope on the project (proj=src)
- * (Java element case)
- */
-public void testScopeEncloses12() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/A.js");
-		assertTrue("scope on P should enclose compilation unit A.js", scope.encloses(cu));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a source type is enclosed in a scope on the project (proj=src)
- * (Java element case)
- */
-public void testScopeEncloses13() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/x/y/A.js");
-		IType type = cu.getType("A");
-		assertTrue("scope on P should enclose type A", scope.encloses(type));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is not enclosed in a scope on the project (proj != src)
- * (resourcePath case)
- */
-public void testScopeEncloses14() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertFalse("scope on P should not enclose \"/P\"", scope.encloses("/P"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is not enclosed in a scope on the project (proj != src)
- * (resourcePath case)
- */
-public void testScopeEncloses14b() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertFalse("scope on P should not enclose \"/\"", scope.encloses("/"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is not enclosed in a scope on the project (proj != src)
- * (resourcePath case)
- */
-public void testScopeEncloses14c() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertFalse("scope on P should not enclose \"\"", scope.encloses(""));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is not enclosed in a scope on the project (proj != src)
- * (Java element case)
- */
-public void testScopeEncloses15() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertFalse("scope on P should enclose P", scope.encloses(project));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a root is enclosed in a scope on the project (proj != src)
- * (resource path case)
- */
-public void testScopeEncloses16() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src\"", scope.encloses("/P/src"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a root is enclosed in a scope on the project (proj != src)
- * (resource path with traling slash case)
- */
-public void testScopeEncloses17() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/\"", scope.encloses("/P/src/"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a root is enclosed in a scope on the project (proj != src)
- * (Java element case)
- */
-public void testScopeEncloses18() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(project.getProject().getFolder("src"));
-		assertTrue("scope on P should enclose root P/src", scope.encloses(root));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj != src)
- * (resource path case)
- */
-public void testScopeEncloses19() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/x/y\"", scope.encloses("/P/src/x/y"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj != src)
- * (resource path with trailing slash case)
- */
-public void testScopeEncloses20() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/x/y/\"", scope.encloses("/P/src/x/y/"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj != src)
- * (Java element case)
- */
-public void testScopeEncloses21() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragment pkg = getPackage("/P/src/x/y");
-		assertTrue("scope on P should enclose package x.y", scope.encloses(pkg));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a default package is enclosed in a scope on the project (proj != src)
- * (Java element case)
- */
-public void testScopeEncloses22() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragment pkg = getPackage("/P/src");
-		assertTrue("scope on P should enclose default package", scope.encloses(pkg));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit is enclosed in a scope on the project (proj != src)
- * (resource path case)
- */
-public void testScopeEncloses23() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/x/y/A.java\"", scope.encloses("/P/src/x/y/A.js"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit is enclosed in a scope on the project (proj != src)
- * (Java element case)
- */
-public void testScopeEncloses24() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/src/x/y/A.js");
-		assertTrue("scope on P should enclose compilation unit A.js", scope.encloses(cu));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit in the default package is enclosed in a scope on the project (proj != src)
- * (resource path case)
- */
-public void testScopeEncloses25() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/A.java\"", scope.encloses("/P/src/A.js"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit in the default package is enclosed in a scope on the project (proj != src)
- * (Java element case)
- */
-public void testScopeEncloses26() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/src/A.js");
-		assertTrue("scope on P should enclose compilation unit A.js", scope.encloses(cu));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a source type is enclosed in a scope on the project (proj != src)
- * (Java element case)
- */
-public void testScopeEncloses27() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/src/x/y/A.js");
-		IType type = cu.getType("A");
-		assertTrue("scope on P should enclose type A", scope.encloses(type));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is not enclosed in a scope on the project (proj != src/)
- * (resourcePath case)
- */
-public void testScopeEncloses28() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertFalse("scope on P should not enclose \"/P\"", scope.encloses("/P"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is not enclosed in a scope on the project (proj != src/)
- * (resourcePath case)
- */
-public void testScopeEncloses28b() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertFalse("scope on P should not enclose \"/P\"", scope.encloses("/"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is not enclosed in a scope on the project (proj != src/)
- * (resourcePath case)
- */
-public void testScopeEncloses28c() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertFalse("scope on P should not enclose \"/P\"", scope.encloses(""));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a Java project is not enclosed in a scope on the project (proj != src/)
- * (Java element case)
- */
-public void testScopeEncloses29() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertFalse("scope on P should enclose P", scope.encloses(project));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a root is enclosed in a scope on the project (proj != src/)
- * (resource path case)
- */
-public void testScopeEncloses30() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src\"", scope.encloses("/P/src"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a root is enclosed in a scope on the project (proj != src/)
- * (resource path with traling slash case)
- */
-public void testScopeEncloses31() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/\"", scope.encloses("/P/src/"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a root is enclosed in a scope on the project (proj != src/)
- * (Java element case)
- */
-public void testScopeEncloses32() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(project.getProject().getFolder("src"));
-		assertTrue("scope on P should enclose root P/src", scope.encloses(root));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj != src/)
- * (resource path case)
- */
-public void testScopeEncloses33() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/x/y\"", scope.encloses("/P/src/x/y"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj != src/)
- * (resource path with trailing slash case)
- */
-public void testScopeEncloses34() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/x/y/\"", scope.encloses("/P/src/x/y/"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a package is enclosed in a scope on the project (proj != src/)
- * (Java element case)
- */
-public void testScopeEncloses35() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragment pkg = getPackage("/P/src/x/y");
-		assertTrue("scope on P should enclose package x.y", scope.encloses(pkg));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a default package is enclosed in a scope on the project (proj != src/)
- * (Java element case)
- */
-public void testScopeEncloses36() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IPackageFragment pkg = getPackage("/P/src");
-		assertTrue("scope on P should enclose default package", scope.encloses(pkg));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit is enclosed in a scope on the project (proj != src/)
- * (resource path case)
- */
-public void testScopeEncloses37() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/x/y/A.java\"", scope.encloses("/P/src/x/y/A.js"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit is enclosed in a scope on the project (proj != src/)
- * (Java element case)
- */
-public void testScopeEncloses38() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/src/x/y/A.js");
-		assertTrue("scope on P should enclose compilation unit A.js", scope.encloses(cu));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit in the default package is enclosed in a scope on the project (proj != src/)
- * (resource path case)
- */
-public void testScopeEncloses39() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		assertTrue("scope on P should enclose \"/P/src/A.java\"", scope.encloses("/P/src/A.js"));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a compilation unit in the default package is enclosed in a scope on the project (proj != src/)
- * (Java element case)
- */
-public void testScopeEncloses40() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/src/A.js");
-		assertTrue("scope on P should enclose compilation unit A.js", scope.encloses(cu));
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a source type is enclosed in a scope on the project (proj != src/)
- * (Java element case)
- */
-public void testScopeEncloses41() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"src/"});
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		IJavaScriptUnit cu = getCompilationUnit("/P/src/x/y/A.js");
-		IType type = cu.getType("A");
-		assertTrue("scope on P should enclose type A", scope.encloses(type));
-	} finally {
-		deleteProject("P");
-	}
-}
-
-/**
- * Bug 101022: [search] JUnit Test Runner on folder runs tests outside directory
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=101022"
- */
-public void testBug101022() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P1", new String[] {"src", "test", "test2"});
-		createFile(
-			"/P1/src/Test.js",
-			"public class Test {\n" +
-			"	protected void foo() {}\n" +
-			"}" 
-		);
-		createFile(
-			"/P1/test/Test.js",
-			"public class Test {\n" +
-			"	protected void foo() {}\n" +
-			"}" 
-		);
-		createFile(
-			"/P1/test2/Test.js",
-			"public class Test {\n" +
-			"	protected void foo() {}\n" +
-			"}" 
-		);
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(getFolder("/P1/test"));
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {root});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search("foo", METHOD, DECLARATIONS, scope, resultCollector);
-		assertSearchResults(
-			"test/Test.java [in P1] void Test.foo() [foo]",
-			resultCollector);
-	}
-	finally {
-		deleteProject("P1");
-	}
-}
-
-/**
- * Bug 101426: Search doesn't work with imported plugin
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=101426"
- */
-public void testBug101426() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P1", new String[] {"src/", "test/", "test2/"}, new String[] {"JCL_LIB"});
-		createFile(
-			"/P1/src/Test.js",
-			"public interface ITest {\n" +
-			"}" 
-		);
-		createFile(
-			"/P1/test/Test.js",
-			"public class Test {\n" +
-			"	ITest test;\n" +
-			"}" 
-		);
-		createFile(
-			"/P1/test2/Test.js",
-			"public class Test2 {\n" +
-			"	ITest test;\n" +
-			"}" 
-		);
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search("ITest", TYPE, REFERENCES, scope, resultCollector);
-		assertSearchResults(
-			"test/Test.java [in P1] Test.test [ITest]\n" + 
-			"test2/Test.java [in P1] Test2.test [ITest]",
-			resultCollector);
-	}
-	finally {
-		deleteProject("P1");
-	}
-}
-
-/**
- * Bug 101777: [search] selecting class with a main type ignores the default package
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=101777"
- */
-public void testBug101777() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P1");
-		createFile(
-			"/P1/Test.js",
-			"public class Test {\n" +
-			"	public static void main(String[] args) {}\n" +
-			"}"
-		);
-		IPackageFragment[] fragments = project.getPackageFragments();
-		IPackageFragment defaultFragment = null;
-		for (int i = 0; i < fragments.length; i++) {
-			IPackageFragment fragment = fragments[i];
-			if (fragment.getElementName().length() == 0) {
-				defaultFragment = fragment;
-				break;
-			}
-		}
-		assertNotNull("We should have a default fragment for project P1!", defaultFragment);
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {defaultFragment});
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search("main(String[]) void", METHOD, DECLARATIONS, scope, resultCollector);
-		assertSearchResults(
-			"Test.java [in P1] void Test.main(String[]) [main]",
-			resultCollector);
-	}
-	finally {
-		deleteProject("P1");
-	}
-}
-
-/**
- * Bug 119203: Search doesn't work with imported plugin
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=119203"
- * WARNING: Fix for this bug has been disabled due to bad regression
- * 
- * Bug 127048: [search] References to Java element 'CorrectionEngine' not found
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=127048"
- */
-public void testBug119203() throws CoreException {
-	try {
-		IJavaScriptProject project = createJavaProject("P1", new String[] {"src"});
-		createFile(
-			"/P1/src/Test.js",
-			"public class Test {\n" +
-			"}" 
-		);
-		createFile(
-			"/P1/src/X.js",
-			"public class X {\n" +
-			"	Test test;\n" +
-			"}" 
-		);
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] { project });
-		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		resultCollector.showProject = true;
-		search("Test", TYPE, REFERENCES, scope, resultCollector);
-		assertSearchResults(
-			"src/X.java [in P1] X.test [Test]",
-			resultCollector);
-	}
-	finally {
-		deleteProject("P1");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchTests.java
deleted file mode 100644
index 8529ee1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavaSearchTests.java
+++ /dev/null
@@ -1,3616 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Hashtable;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.search.*;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.core.JavaModelStatus;
-
-/**
- * Tests the Java search engine where results are JavaElements and source positions.
- */
-public class JavaSearchTests extends AbstractJavaSearchTests implements IJavaScriptSearchConstants {
-
-	public JavaSearchTests(String name) {
-		super(name);
-	}
-	public static Test suite() {
-		return buildModelTestSuite(JavaSearchTests.class);
-	}
-//	 Use this static initializer to specify subset for tests
-//	 All specified tests which do not belong to the class are skipped...
-	static {
-//		org.eclipse.jsdt.internal.core.search.BasicSearchEngine.VERBOSE = true;
-//		TESTS_PREFIX =  "testPackageDeclaration";
-//		TESTS_NAMES = new String[] { "testMethodReference17" };
-//		TESTS_NUMBERS = new int[] { 113671 };
-//		TESTS_RANGE = new int[] { 16, -1 };
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jsdt.core.tests.model.AbstractJavaModelTests#copyDirectory(java.io.File, java.io.File)
-	 */
-	protected void copyDirectory(File sourceDir, File targetDir) throws IOException {
-		if (!targetDir.exists()) {
-			super.copyDirectory(sourceDir, targetDir);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jsdt.core.tests.model.SuiteOfTestCases#setUpSuite()
-	 */
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-
-		if (JAVA_PROJECT == null) {
-			JAVA_PROJECT = setUpJavaProject("JSSearch");
-//			setUpJavaProject("JavaSearch15", "1.5");
-		}
-	}
-	public void tearDownSuite() throws Exception {
-		if (JAVA_SEARCH_SUITES == null) {
-			deleteProject("JSSearch");
-//			deleteProject("JavaSearch15");
-		} else {
-			JAVA_SEARCH_SUITES.remove(getClass());
-			if (JAVA_SEARCH_SUITES.size() == 0) {
-				deleteProject("JSSearch");
-				//deleteProject("JavaSearch15");
-			}
-		}
-
-		super.tearDownSuite();
-	}
-
-	public void test00() throws CoreException { // was testSimpleConstructorReference1
-		IJavaScriptUnit compilationUnit = getCompilationUnit("JSSearch", "src", "p", "A.js");
-		IFunction constructor = compilationUnit.getFunction("A", new String[] {"QX;"});
-		search(
-			constructor, 
-			DECLARATIONS, 
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults("src/p/A.js any A(any) [A]", resultCollector);
-	}
-
-
-
-	public void test01() throws CoreException { // was testSimpleConstructorDeclaration
-		IJavaScriptUnit compilationUnit = getCompilationUnit("JSSearch", "src", "p", "A.js");
-		IFunction constructor = compilationUnit.getFunction("A", new String[] {"QX;"});
-		search(
-			constructor, 
-			DECLARATIONS, 
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults("src/p/A.js any A(any) [A]", resultCollector);
-	}
-
-
-	public void test02() throws CoreException { // was testSimpleConstructorReference1
-		IJavaScriptUnit compilationUnit =  getCompilationUnit("JSSearch", "src", "p", "A.js");
-	IFunction constructor = compilationUnit.getFunction("A", new String[] {"QX;"});
-	search(
-		constructor, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.js any main(any) [A(0)]",
-		this.resultCollector);
-	}
-
-	public void test03() throws CoreException { // was testSimpleConstructorReference1
-		IJavaScriptUnit compilationUnit =  getCompilationUnit("JSSearch", "src", "p", "A.js");
-	IField field = compilationUnit.getField("x");
-	search(
-			field, 
-			DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.js x [x]",
-		this.resultCollector);
-	}
-
-	public void test04() throws CoreException { // was testSimpleConstructorReference1
-		IJavaScriptUnit compilationUnit =  getCompilationUnit("JSSearch", "src", "p", "A.js");
-	IField field = compilationUnit.getField("x");
-	search(
-			field, 
-			REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.js any A(any) [x]",
-		this.resultCollector);
-	}
-
-	public void test05() throws CoreException { // was testSimpleConstructorReference1
-		IType type = getCompilationUnit("JSSearch", "src", "p", "cls1.js").getType("MyClass");
-		IFunction method = type.getFunction("someMethod", new String[] {});
-
-		search(
-			method, 
-			DECLARATIONS, 
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"src/p/cls1.js any MyClass_someMethod() [MyClass_someMethod]",
-			this.resultCollector);
-	}
-
-	public void test06() throws CoreException {
-		IFunction method = 
-			getCompilationUnit("JSSearch", "src", "a6", "A.js").
-				getFunction("m", new String[] {});
-		searchDeclarationsOfAccessedFields(
-			method, 
-			resultCollector
-		);
-		assertSearchResults(
-			"src/a6/A.js a6.P.f [P.prototype.f=1]", 
-			this.resultCollector);
-	}
-//	/**
-//	 * Simple constructor declaration test.
-//	 */
-//	public void testConstructorDeclaration01() throws CoreException { // was testSimpleConstructorDeclaration
-//		IType type = getCompilationUnit("JSSearch", "src", "p", "A.js").getType("A");
-//		IFunction constructor = type.getMethod("A", new String[] {"QX;"});
-//		search(
-//			constructor, 
-//			DECLARATIONS, 
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults("src/p/A.js p.A(X) [A]", resultCollector);
-//	}
-//	/**
-//	 * Constructor declaration in jar file test.
-//	 */
-//	public void testConstructorDeclaration02() throws CoreException { // was testConstructorDeclarationInJar
-//		IType type = getClassFile("JSSearch", "MyJar.jar", "p1", "A.class").getType();
-//		IFunction method = type.getMethod("A", new String[] {"Ljava.lang.String;"});
-//		search(
-//			method, 
-//			DECLARATIONS, 
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"MyJar.jar p1.A(java.lang.String) [No source]", 
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Simple constructor reference test.
-//	 */
-//	public void testConstructorReference01() throws CoreException { // was testSimpleConstructorReference1
-//		IType type = getCompilationUnit("JSSearch", "src", "p", "A.js").getType("A");
-//		IFunction constructor = type.getMethod("A", new String[] {"QX;"});
-//		search(
-//			constructor, 
-//			REFERENCES, 
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/Test.js void Test.main(String[]) [new p.A(y)]",
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Simple constructor reference test.
-//	 */
-//	public void testConstructorReference02() throws CoreException { // was testSimpleConstructorReference2
-//		search(
-//			"p.A(X)", 
-//			CONSTRUCTOR,
-//			REFERENCES,
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/Test.js void Test.main(String[]) [new p.A(y)]",
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Constructor reference using an explicit constructor call.
-//	 */
-//	public void testConstructorReference03() throws CoreException { // was testConstructorReferenceExplicitConstructorCall1
-//		IType type = getCompilationUnit("JSSearch", "src", "p", "Y.js").getType("Y");
-//		IFunction method = type.getMethod("Y", new String[] {"I"});
-//		search(
-//			method, 
-//			REFERENCES, 
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/p/Z.js p.Z(int) [super(i)]", 
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Constructor reference using an explicit constructor call.
-//	 */
-//	public void testConstructorReference04() throws CoreException { // was testConstructorReferenceExplicitConstructorCall2
-//		IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-//		IFunction method = type.getMethod("X", new String[] {"I"});
-//		search(
-//			method, 
-//			REFERENCES, 
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/p/Y.js p.Y(int) [super(i)]\n" +
-//			"src/p/Y.js p.Y(boolean) [super(1)]", 
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Constructor reference using an implicit constructor call.
-//	 * (regression test for bug 23112 search: need a way to search for references to the implicit non-arg constructor)
-//	 */
-//	public void testConstructorReference05() throws CoreException { // was testConstructorReferenceImplicitConstructorCall1
-//		IType type = getCompilationUnit("JSSearch", "src", "c7", "X.js").getType("X");
-//		IFunction method = type.getMethod("X", new String[] {});
-//		search(
-//			method, 
-//			REFERENCES, 
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/c7/Y.js c7.Y() [Y]", 
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Constructor reference using an implicit constructor call.
-//	 * (regression test for bug 23112 search: need a way to search for references to the implicit non-arg constructor)
-//	 */
-//	public void testConstructorReference06() throws CoreException { // was testConstructorReferenceImplicitConstructorCall2
-//		search(
-//			"c8.X()", 
-//			CONSTRUCTOR, 
-//			REFERENCES,
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/c8/Y.js c8.Y [Y]", 
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Constructor reference in a field initializer.
-//	 * (regression test for PR 1GKZ8VZ: ITPJCORE:WINNT - Search - did not find references to member constructor)
-//	 */
-//	public void testConstructorReference07() throws CoreException { // was testConstructorReferenceInFieldInitializer
-//		IType type = getCompilationUnit("JSSearch", "src", "", "A.js").getType("A").getType("Inner");
-//		IFunction method = type.getMethod("Inner", new String[] {"I"});
-//		search(
-//			method, 
-//			REFERENCES, 
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/A.js A.field [new Inner(1)]\n" +
-//			"src/A.js A.field [new Inner(2)]", 
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Constructor reference in case of default constructor of member type
-//	 * (regression test for bug 43276)
-//	 */
-//	public void testConstructorReference08() throws CoreException { // was testConstructorReferenceDefaultConstructorOfMemberClass
-//		search(
-//			"c10.X.Inner()", 
-//			CONSTRUCTOR, 
-//			REFERENCES,
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/c10/X.js c10.B() [new X().super()]", 
-//			this.resultCollector);
-//	}
-//	/*
-//	 * Generic constructor reference
-//	 */
-//	public void testConstructorReference09() throws CoreException {
-//		IType type = getCompilationUnit("JavaSearch15/src/p2/X.js").getType("X");
-//		IFunction method = type.getMethod("X", new String[] {"QE;"});
-//		search(
-//			method, 
-//			REFERENCES, 
-//			ERASURE_RULE,
-//			getJavaSearchScope15(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/p2/Y.js Object p2.Y.foo() [new X<Object>(this)]",
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Constructor reference using an implicit constructor call.
-//	 * (regression test for bug 23112 search: need a way to search for references to the implicit non-arg constructor)
-//	 */
-//	public void testConstructorReference10() throws CoreException { // was testConstructorReferenceImplicitConstructorCall2
-//		resultCollector.showSynthetic = true;
-//		search(
-//			"c11.A()", 
-//			CONSTRUCTOR, 
-//			REFERENCES,
-//			getJavaSearchScope(), 
-//			this.resultCollector);
-//		assertSearchResults(
-//			"src/c11/A.js c11.A1 [A1] SYNTHETIC\n" + 
-//			"src/c11/A.js c11.A2() [A2] SYNTHETIC\n" + 
-//			"src/c11/A.js c11.A3() [super()]",
-//			this.resultCollector);
-//	}
-	/**
-	 * CoreException thrown during accept.
-	 * (regression test for PR #1G3UI7A)
-	 */
-	public void testCoreException() throws CoreException {
-		IJavaScriptUnit compilationUnit = getCompilationUnit("JSSearch", "src", "p", "A.js");
-		IFunction method = compilationUnit.getFunction("A", new String[] {"QX;"});
-		SearchRequestor result = new SearchRequestor() {
-			public void acceptSearchMatch(SearchMatch match) throws CoreException {
-				throw new CoreException(new JavaModelStatus(-1, "test"));
-			}
-		};
-		try {
-			search(
-					method, 
-				DECLARATIONS, 
-				getJavaSearchScope(), 
-				result);
-		} catch (CoreException e) {
-			assertEquals("Unexpected CoreException has been thrown", "test", e.getStatus().getMessage());
-			return;
-		}
-		assertTrue("CoreException should have been thrown", false);
-	}
-	/**
-	 * Declaration of accessed fields test.
-	 * (regression test for bug 6538 searchDeclarationsOf* incorrect)
-	 */
-	public void testDeclarationOfAccessedFields1() throws CoreException {
-		IFunction method = 
-			getCompilationUnit("JSSearch", "src", "a5", "B.js").
-				getType("C").getFunction("i", new String[] {});
-		searchDeclarationsOfAccessedFields(
-			method, 
-			resultCollector
-		);
-		assertSearchResults(
-			"", 
-			this.resultCollector);
-	}
-//	 COVERED BY TEST06
-//	/**
-//	 * Declaration of accessed fields test.
-//	 * (regression test for bug 6538 searchDeclarationsOf* incorrect)
-//	 */
-//	public void testDeclarationOfAccessedFields2() throws CoreException {
-//		IFunction method = 
-//			getCompilationUnit("JSSearch", "src", "a6", "A.js").
-//				getType("P").getMethod("mm", new String[] {});
-//		searchDeclarationsOfAccessedFields(
-//			method, 
-//			resultCollector
-//		);
-//		assertSearchResults(
-//			"src/a6/A.js a6.B.f [f]", 
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Declaration of accessed fields test.
-//	 * (regression test for bug 10386 NPE in MatchLocator.lookupType)
-//	 */
-//	public void testDeclarationOfAccessedFields3() throws CoreException {
-//		IFunction method = 
-//			getCompilationUnit("JSSearch", "src", "b6", "A.js").
-//				getType("A").getMethod("foo", new String[] {});
-//		searchDeclarationsOfAccessedFields(
-//			method, 
-//			resultCollector
-//		);
-//		assertSearchResults(
-//			"src/b6/A.js b6.A.field [field]", 
-//			this.resultCollector);
-//	}
-//	/**
-//	 * Declaration of referenced types test.
-//	 */
-//	public void testDeclarationOfReferencedTypes01() throws CoreException {
-//		IFunction method = 
-//			getCompilationUnit("JSSearch", "src", "a3", "References.js").
-//				getType("References").getMethod("foo", new String[] {});
-//		searchDeclarationsOfReferencedTypes(
-//			method, 
-//			resultCollector
-//		);
-//		assertSearchResults(
-//			"src/a3/X.js a3.X [X]\n" +
-//			"src/a3/Z.js a3.Z [Z]\n" +
-//			"src/a3/b/A.js a3.b.A [A]\n" +
-//			"src/a3/b/A.js a3.b.A$B$C [C]\n" +
-//			"src/a3/b/A.js a3.b.A$B [B]\n" +
-//			getExternalJCLPathString() + " java.lang.Object\n" +
-//			"src/a3/Y.js a3.Y [Y]\n" +
-//			"src/a3/b/B.js a3.b.B [B]", 
-//			this.resultCollector);
-//	}
-/**
- * Declaration of referenced types test.
- * (Regression test for bug 6779 searchDeclarationsOfReferencedTyped - missing exception types)
- */
-public void testDeclarationOfReferencedTypes02() throws CoreException {
-	IFunction method = 
-		getCompilationUnit("JSSearch", "src", "a7", "X.js").
-			getType("X").getFunction("foo", new String[] {});
-	searchDeclarationsOfReferencedTypes(
-		method, 
-		resultCollector
-	);
-	assertSearchResults(
-		"src/a7/X.java a7.MyException [MyException]", 
-		this.resultCollector);
-}
-/**
- * Declaration of referenced types test.
- * (Regression test for bug 12649 Missing import after move  )
- */
-public void testDeclarationOfReferencedTypes03() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JSSearch", "src", "c1", "A.js");
-	searchDeclarationsOfReferencedTypes(
-		unit, 
-		resultCollector
-	);
-	assertSearchResults(
-		"src/c1/I.java c1.I [I]", 
-		this.resultCollector);
-}
-/**
- * Declaration of referenced types test.
- * (Regression test for bug 12649 Missing import after move  )
- */
-public void testDeclarationOfReferencedTypes04() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JSSearch", "src", "c1", "B.js");
-	searchDeclarationsOfReferencedTypes(
-		unit, 
-		resultCollector
-	);
-	assertSearchResults(
-		"src/c1/I.java c1.I [I]", 
-		this.resultCollector);
-}
-/**
- * Declaration of referenced types test.
- * (Regression test for bug 18418 search: searchDeclarationsOfReferencedTypes reports import declarations)
- */
-public void testDeclarationOfReferencedTypes05() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JSSearch", "src", "c2", "A.js");
-	searchDeclarationsOfReferencedTypes(
-		unit, 
-		resultCollector
-	);
-	assertSearchResults(
-		"src/c3/C.java c3.C [C]", 
-		this.resultCollector);
-}
-/**
- * Declaration of referenced types test.
- * (Regression test for bug 24934 Move top level doesn't optimize the imports[refactoring])
- */
-public void testDeclarationOfReferencedTypes06() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JSSearch", "src", "d1", "X.js");
-	IType innerType = unit.getType("X").getType("Inner");
-	searchDeclarationsOfReferencedTypes(
-		innerType, 
-		resultCollector
-	);
-	assertSearchResults(
-		"src/d2/Y.java d2.Y [Y]", 
-		this.resultCollector);
-}
-/**
- * Declaration of referenced types test.
- * (Regression test for bug 37438 searchenging NPE in searchDeclarationsOfReferencedTypes 
-)
- */
-public void testDeclarationOfReferencedTypes07() throws CoreException {
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "r7");
-	searchDeclarationsOfReferencedTypes(
-		pkg, 
-		resultCollector
-	);
-	assertSearchResults(
-		"", 
-		this.resultCollector);
-}
-
-/**
- * Declaration of referenced types test.
- * (Regression test for bug 47787 IJavaScriptSearchResultCollector.aboutToStart() and done() not called)
- */
-public void testDeclarationOfReferencedTypes08() throws CoreException {
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "r7");
-	JavaSearchResultCollector result = new JavaSearchResultCollector() {
-	    public void beginReporting() {
-	        results.append("Starting search...");
-        }
-	    public void endReporting() {
-	        results.append("\nDone searching.");
-        }
-	};
-	searchDeclarationsOfReferencedTypes(
-		pkg, 
-		result
-	);
-	assertSearchResults(
-		"Starting search...\n"+
-		"Done searching.", 
-		result);
-}
-
-/**
- * Declaration of referenced types test.
- * (Regression test for bug 68862 [1.5] ClassCastException when moving a a java file 
-)
- */
-public void testDeclarationOfReferencedTypes09() throws CoreException {
-	IJavaScriptUnit cu = getCompilationUnit("JavaSearch15/src/p3/X.js");
-	JavaSearchResultCollector result = new JavaSearchResultCollector() {
-	    public void beginReporting() {
-	        results.append("Starting search...");
-        }
-	    public void endReporting() {
-	        results.append("\nDone searching.");
-        }
-	};
-	searchDeclarationsOfReferencedTypes(
-		cu, 
-		result
-	);
-	assertSearchResults(
-		"Starting search...\n" + 
-		getExternalJCLPathString("1.5") + " java.lang.Object\n" + 
-		"Done searching.",
-		result);
-}
-/**
- * Simple declarations of sent messages test.
- */
-public void testDeclarationsOfSentMessages01() throws CoreException { // was testSimpleDeclarationsOfSentMessages
-	IJavaScriptUnit cu = getCompilationUnit("JSSearch", "src", "", "Test.js");
-	searchDeclarationsOfSentMessages(
-		cu, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/X.java void p.X.foo(int, String, X) [foo(int i, String s, X x)]\n" + 
-		"src/p/Y.java void p.Y.bar() [bar()]\n" + 
-		"src/p/Z.java void p.Z.foo(int, String, X) [foo(int i, String s, X x)]\n" + 
-		"src/p/A.java void p.A.foo(int, String, X) [foo()]",
-		this.resultCollector);
-}
-
-/**
- * Declaration of sent messages test.
- * (regression test for bug 6538 searchDeclarationsOf* incorrect)
- */
-public void testDeclarationsOfSentMessages02() throws CoreException { // was testDeclarationOfSentMessages
-	IFunction method = 
-		getCompilationUnit("JSSearch", "src", "a5", "B.js").
-			getType("C").getFunction("i", new String[] {});
-	searchDeclarationsOfSentMessages(
-		method, 
-		resultCollector
-	);
-	assertSearchResults(
-		"", 
-		this.resultCollector);
-}
-/**
- * Simple field declaration test.
- */
-public void testFieldDeclaration01() throws CoreException { // was testSimpleFieldDeclaration
-	IType type = getCompilationUnit("JSSearch", "src", "p", "A.js").getType("A");
-	IField field = type.getField("x");
-	search(
-		field, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.java p.A.x [x]", 
-		this.resultCollector);
-}
-/**
- * Field declaration in jar file test.
- */
-public void testFieldDeclaration02() throws CoreException { // was testFieldDeclarationInJar
-	IType type = getClassFile("JSSearch", "MyJar.jar", "p1", "A.class").getType();
-	IField field = type.getField("field");
-	search(
-		field, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"MyJar.jar p1.A.field [No source]", 
-		this.resultCollector);
-}
-
-
-/**
- * Field declaration with array type test.
- * (regression test for PR 1GKEG73: ITPJCORE:WIN2000 - search (136): missing field declaration)
- */
-public void testFieldDeclaration03() throws CoreException { // was testFieldDeclarationArrayType
-	IType type = getCompilationUnit("JSSearch", "src", "", "B.js").getType("B");
-	IField field = type.getField("open");
-	search(
-		field, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/B.java B.open [open]", 
-		this.resultCollector);
-}
-/**
- * Field declaration with wild card test.
- * (regression test for bug 21763 Problem in Java search [search]  )
- */
-public void testFieldDeclaration04() throws CoreException { // was testFieldDeclarationWithWildCard
-	search(
-		"class*path", 
-		FIELD,
-		DECLARATIONS,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/c5/Test.java c5.Test.class_path [class_path]", 
-		this.resultCollector);
-}
-/**
- * Field reference test.
- * (regression test for bug #3433 search: missing field occurrecnces (1GKZ8J6))
- */
-public void testFieldReference01() throws CoreException { // was testFieldReference
-	IType type = getCompilationUnit("JSSearch", "src", "p8", "A.js").getType("A");
-	IField field = type.getField("g");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p8/A.java void p8.A.m() [g]\n" + 
-		"src/p8/A.java void p8.B.m() [g]",
-		this.resultCollector);
-}
-/**
- * Field reference test.
- * (regression test for PR 1GK8TXE: ITPJCORE:WIN2000 - search: missing field reference)
- */
-public void testFieldReference02() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "p9", "X.js").getType("X");
-	IField field = type.getField("f");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p9/X.java void p9.X.m() [f]",
-		this.resultCollector);
-}
-/**
- * Field reference test.
- * (regression test for bug 5821 Refactor > Rename renames local variable instead of member in case of name clash  )
- */
-public void testFieldReference03() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "q8", "EclipseTest.js").getType("EclipseTest");
-	IField field = type.getField("test");
-	resultCollector.showPotential = false;
-	search(field, REFERENCES, getJavaSearchScope());
-	assertSearchResults(
-		"src/q8/EclipseTest.java void q8.EclipseTest.main(String[]) [test]"
-	);
-}
-/**
- * Field reference test.
- * (regression test for bug 5923 Search for "length" field refs finds [].length)
- */
-public void testFieldReference04() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "a2", "X.js").getType("X");
-	IField field = type.getField("length");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/a2/X.java void a2.X.foo() [length]",
-		this.resultCollector);
-}
-/**
- * Field reference test.
- * (regression test for bug 7987 Field reference search should do lookup in 1.4 mode)
- */
-public void testFieldReference05() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "b1", "A.js").getType("A");
-	IField field = type.getField("x");
-
-	// Set 1.4 compliance level (no constant yet)
-	Hashtable options = JavaScriptCore.getOptions();
-	String currentOption = (String)options.get("org.eclipse.wst.jsdt.core.compiler.compliance");
-	options.put("org.eclipse.wst.jsdt.core.compiler.compliance", "1.4");
-	JavaScriptCore.setOptions(options);
-	
-	try {
-		search(
-			field, 
-			REFERENCES, 
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"src/b1/B.java void b1.B.foo() [x]",
-			this.resultCollector);
-	} finally {
-		// Restore compliance level
-		options.put("org.eclipse.wst.jsdt.core.compiler.compliance", currentOption);
-		JavaScriptCore.setOptions(options);
-	}
-}
-/**
- * Field reference test.
- * (regression test for bug 20693 Finding references to variables does not find all occurances)
- */
-public void testFieldReference06() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "c4", "X.js").getType("X");
-	IField field = type.getField("x");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/c4/X.java int c4.X.foo() [x]",
-		this.resultCollector);
-}
-/**
- * Field reference test.
- * (regression test for bug 61017 Refactoring - test case that results in uncompilable source)
- */
-public void testFieldReference07() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "s5", "A.js").getType("A");
-	IField field = type.getField("b");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/s5/A.java void s5.A.method() [b]",
-		this.resultCollector);
-}
-/**
- * Simple field reference test.
- */
-public void testFieldReference08() throws CoreException { // was testSimpleFieldReference
-	IType type = getCompilationUnit("JSSearch", "src", "p", "A.js").getType("A");
-	IField field = type.getField("x");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/Test.java void Test.main(String[]) [x]\n" + 
-		"src/p/A.java p.A(X) [x]",
-		this.resultCollector);
-}
-/**
- * Simple field read access reference test.
- */
-public void testFieldReference09() throws CoreException { // was testSimpleReadFieldReference
-	IType type = getCompilationUnit("JSSearch", "src", "p", "A.js").getType("A");
-	IField field = type.getField("x");
-	search(
-		field, 
-		READ_ACCESSES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/Test.java void Test.main(String[]) [x]",
-		this.resultCollector);
-}
-/**
- * Simple write field access reference test.
- */
-public void testFieldReference10() throws CoreException { // was testSimpleWriteFieldReference
-	IType type = getCompilationUnit("JSSearch", "src", "p", "A.js").getType("A");
-	IField field = type.getField("x");
-	search(
-		field, 
-		WRITE_ACCESSES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.java p.A(X) [x]", 
-		this.resultCollector);
-}
-/**
- * Multiple field references in one ast test.
- * (regression test for PR 1GD79XM: ITPJCORE:WINNT - Search - search for field references - not all found)
- */
-public void testFieldReference11() throws CoreException { // was testMultipleFieldReference
-	IType type = getCompilationUnit("JSSearch", "src", "p5", "A.js").getType("A");
-	IField field = type.getField("x");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p5/A.java void p5.A.k() [x]\n" + 
-		"src/p5/A.java void p5.A.k() [x]\n" + 
-		"src/p5/A.java void p5.A.k() [x]",
-		this.resultCollector);
-}
-/**
- * Static field reference test.
- * (regression test for PR #1G2P5EP)
- */
-public void testFieldReference12() throws CoreException { // was testStaticFieldReference
-	IType type = getCompilationUnit("JSSearch", "src", "p", "A.js").getType("A");
-	IField field = type.getField("DEBUG");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.java void p.A.foo() [DEBUG]",
-		this.resultCollector);
-}
-/**
- * Field reference in inner class test.
- * (regression test for PR 1GL11J6: ITPJCORE:WIN2000 - search: missing field references (nested types))
- */
-public void testFieldReference13() throws CoreException { // was testFieldReferenceInInnerClass
-	IType type = getCompilationUnit("JSSearch", "src", "", "O.js").getType("O");
-	IField field = type.getField("y");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/O.java void O$I.y() [y]",
-		this.resultCollector);
-}
-/**
- * Field reference in anonymous class test.
- * (regression test for PR 1GL12XE: ITPJCORE:WIN2000 - search: missing field references in inner class)
- */
-public void testFieldReference14() throws CoreException { // was testFieldReferenceInAnonymousClass
-	IType type = getCompilationUnit("JSSearch", "src", "", "D.js").getType("D");
-	IField field = type.getField("h");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/D.java void void D.g():<anonymous>#1.run() [h]",
-		this.resultCollector);
-}
-/**
- * Field reference through subclass test.
- * (regression test for PR 1GKB9YH: ITPJCORE:WIN2000 - search for field refs - incorrect results)
- */
-public void testFieldReference15() throws CoreException { // was testFieldReferenceThroughSubclass
-	IType type = getCompilationUnit("JSSearch", "src", "p6", "A.js").getType("A");
-	IField field = type.getField("f");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p6/A.java void p6.A.m() [f]\n" + 
-		"src/p6/A.java void p6.B.m() [f]\n" + 
-		"src/p6/A.java void p6.B.m() [f]",
-		this.resultCollector);
-		
-	type = getCompilationUnit("JSSearch", "src", "p6", "A.js").getType("AA");
-	field = type.getField("f");
-	resultCollector = new JavaSearchResultCollector();
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p6/A.java void p6.B.m() [f]",
-		this.resultCollector);
-		
-}
-/**
- * Read and write access reference in compound expression test.
- * (regression test for bug 6158 Search - Prefix and postfix expression not found as write reference)
- */
-public void testFieldReference16() throws CoreException { // was testReadWriteFieldReferenceInCompoundExpression
-	IType type = getCompilationUnit("JSSearch", "src", "a4", "X.js").getType("X");
-	IField field = type.getField("field");
-
-	// Read reference
-	search(
-		field, 
-		READ_ACCESSES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/a4/X.java void a4.X.foo() [field]",
-		this.resultCollector);
-		
-	// Write reference
-	resultCollector = new JavaSearchResultCollector();
-	search(
-		field, 
-		WRITE_ACCESSES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/a4/X.java void a4.X.foo() [field]",
-		this.resultCollector);
-}
-/**
- * Write access reference in a qualified name reference test.
- * (regression test for bug 7344 Search - write acces give wrong result)
- */
-public void testFieldReference17() throws CoreException { // was testReadWriteAccessInQualifiedNameReference
-	IType type = getCompilationUnit("JSSearch", "src", "a8", "A.js").getType("A");
-	IField field = type.getField("a");
-	search(
-		field, 
-		WRITE_ACCESSES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"", 
-		this.resultCollector);
-}
-/**
- * Field reference in brackets test.
- * (regression test for bug 23329 search: incorrect range for type references in brackets)
- */
-public void testFieldReference18() throws CoreException { // was testFieldReferenceInBrackets
-	IType type = getCompilationUnit("JSSearch", "src", "s3", "A.js").getType("A");
-	IField field = type.getField("field");
-	search(
-		field, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/s3/A.java int s3.A.bar() [field]",
-		this.resultCollector);
-}
-
-/**
- * Accurate field reference test.
- */
-public void testFieldReference19() throws CoreException { // was testAccurateFieldReference1
-	search(
-		"d6.X.CONSTANT", 
-		FIELD, 
-		REFERENCES,
-		SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {
-			getPackageFragment("JSSearch", "src", "d6")
-		}), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/d6/Y.java d6.Y.T [CONSTANT]",
-		this.resultCollector);
-}
-/**
- * Field reference inside/outside doc comment.
- */
-public void testFieldReference20() throws CoreException { // was testFieldReferenceInOutDocComment
-	IType type = getCompilationUnit("JSSearch", "src", "s4", "X.js").getType("X");
-	IField field = type.getField("x");
-	resultCollector.showInsideDoc = true;
-	search(field, REFERENCES, getJavaSearchScope(), resultCollector);
-	assertSearchResults(
-		"src/s4/X.java int s4.X.foo() [x] OUTSIDE_JAVADOC\n" + 
-		"src/s4/X.java void s4.X.bar() [x] INSIDE_JAVADOC",
-		this.resultCollector);
-}
-/**
- * Interface implementors test.
- */
-public void testInterfaceImplementors1() throws CoreException { // was testInterfaceImplementors
-	// implementors of an interface
-	IType type = getCompilationUnit("JSSearch", "src", "p", "I.js").getType("I");
-	search(
-		type, 
-		IMPLEMENTORS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/InterfaceImplementors.java InterfaceImplementors [p.I]\n" +
-		"src/p/X.java p.X [I]", 
-		this.resultCollector);
-
-	/**
-	 * Implementors of a class should now give a match
-	 * Bug 1G5HBQA: "ITPJUI:WINNT - Search - search for implementors of a class finds subclasses" is cancelled
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=124645"
-	 */
-	type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-	resultCollector = new JavaSearchResultCollector();
-	search(
-		type, 
-		IMPLEMENTORS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/Y.java p.Y [X]",
-		this.resultCollector);	
-}
-/**
- * Interface implementors test.
- * (regression test for bug 22102 Not all implementors found for IPartListener)
- */
-public void testInterfaceImplementors2() throws CoreException {
-	// implementors of an interface
-	IType type = getCompilationUnit("JSSearch", "src", "r2", "I.js").getType("I");
-	search(
-		type, 
-		IMPLEMENTORS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/r2/X.java r2.X.field:<anonymous>#1 [I]",
-		this.resultCollector);
-}
-/*
- * Local variable declaration test.
- * (SingleNameReference)
- */
-public void testLocalVariableDeclaration1() throws CoreException {
-	ILocalVariable localVar = getLocalVariable("/JavaSearch/src/f1/X.js", "var1 = 1;", "var1");
-	search(
-		localVar, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f1/X.java void f1.X.foo1().var1 [var1]",
-		this.resultCollector);
-}
-/*
- * Local variable declaration test.
- * (QualifiedNameReference)
- */
-public void testLocalVariableDeclaration2() throws CoreException {
-	ILocalVariable localVar = getLocalVariable("/JavaSearch/src/f1/X.js", "var2 = new X();", "var2");
-	search(
-		localVar, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f1/X.java void f1.X.foo2().var2 [var2]",
-		this.resultCollector);
-}
-/*
- * Local variable occurrences test.
- * (SingleNameReference)
- */
-public void testLocalVariableOccurrences1() throws CoreException {
-	ILocalVariable localVar = getLocalVariable("/JavaSearch/src/f1/X.js", "var1 = 1;", "var1");
-	search(
-		localVar, 
-		ALL_OCCURRENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f1/X.java void f1.X.foo1().var1 [var1]\n" + 
-		"src/f1/X.java void f1.X.foo1() [var1]",
-		this.resultCollector);
-}
-/*
- * Local variable occurences test.
- * (QualifiedNameReference)
- */
-public void testLocalVariableOccurrences2() throws CoreException {
-	ILocalVariable localVar = getLocalVariable("/JavaSearch/src/f1/X.js", "var2 = new X();", "var2");
-	search(
-		localVar, 
-		ALL_OCCURRENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f1/X.java void f1.X.foo2().var2 [var2]\n" + 
-		"src/f1/X.java void f1.X.foo2() [var2]",
-		this.resultCollector);
-}
-/*
- * Local variable reference test.
- * (SingleNameReference)
- */
-public void testLocalVariableReference1() throws CoreException {
-	ILocalVariable localVar = getLocalVariable("/JavaSearch/src/f1/X.js", "var1 = 1;", "var1");
-	search(
-		localVar, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f1/X.java void f1.X.foo1() [var1]",
-		this.resultCollector);
-}
-/*
- * Local variable reference test.
- * (QualifiedNameReference)
- */
-public void testLocalVariableReference2() throws CoreException {
-	ILocalVariable localVar = getLocalVariable("/JavaSearch/src/f1/X.js", "var2 = new X();", "var2");
-	search(
-		localVar, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f1/X.java void f1.X.foo2() [var2]",
-		this.resultCollector);
-}
-/*
- * Local variable reference test.
- * (regression test for bug 48725 Cannot search for local vars in jars.)
- */
-public void testLocalVariableReference3() throws CoreException {
-    IClassFile classFile = getClassFile("JSSearch", "test48725.jar", "p48725", "X.class");
-	ILocalVariable localVar = (ILocalVariable) codeSelect(classFile, "local = 1;", "local")[0];
-	search(
-		localVar, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"test48725.jar int p48725.<anonymous>.bar()",
-		this.resultCollector);
-}
-/**
- * Simple method declaration test.
- */
-public void testMethodDeclaration01() throws CoreException { // was testSimpleMethodDeclaration
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-	IFunction method = type.getFunction("foo", new String[] {"I", "QString;", "QX;"});
-
-	search(
-		method, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/X.java void p.X.foo(int, String, X) [foo]\n" + 
-		"src/p/Z.java void p.Z.foo(int, String, X) [foo]",
-		this.resultCollector);
-}
-/**
- * Method declaration test.
- * (regression test for bug 38568 Search for method declarations fooled by array types)
- */
-public void testMethodDeclaration02() throws CoreException { // was testMethodDeclaration
-	IType type = getCompilationUnit("JSSearch", "src", "e2", "X.js").getType("X");
-
-	search(
-		"foo(String, String)", 
-		METHOD,
-		DECLARATIONS,
-		SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type}), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/e2/X.java void e2.X.foo(String, String) [foo]",
-		this.resultCollector);
-}
-
-
-/**
- * Inner method declaration test.
- */
-public void testMethodDeclaration03() throws CoreException { // was testInnerMethodDeclaration
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X").getType("Inner");
-	IFunction method = type.getFunction("foo", new String[] {});
-
-	search(
-		method, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/X.java String p.X$Inner.foo() [foo]",
-		this.resultCollector);
-}
-/**
- * Method declaration in hierarchy test.
- */
-public void testMethodDeclaration04() throws CoreException { // was testMethodDeclarationInHierarchyScope1
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-
-	search(
-		"foo", 
-		METHOD,
-		DECLARATIONS,
-		SearchEngine.createHierarchyScope(type), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/X.java void p.X.foo(int, String, X) [foo]\n" + 
-		"src/p/Z.java void p.Z.foo(int, String, X) [foo]",
-		this.resultCollector);
-}
-/**
- * Method declaration in hierarchy that contains elements in external jar.
- * (regression test for PR #1G2E4F1)
- */
-public void testMethodDeclaration05() throws CoreException { // was testMethodDeclarationInHierarchyScope2
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-	IFunction method = type.getFunction("foo", new String[] {"I", "QString;", "QX;"});
-
-	search(
-		method, 
-		DECLARATIONS,
-		SearchEngine.createHierarchyScope(type), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/X.java void p.X.foo(int, String, X) [foo]\n" + 
-		"src/p/Z.java void p.Z.foo(int, String, X) [foo]",
-		this.resultCollector);
-}
-/**
- * Method declaration in hierarchy on a secondary type.
- */
-public void testMethodDeclaration06() throws CoreException { // was testMethodDeclarationInHierarchyScope3
-	IType type = getCompilationUnit("JSSearch", "src", "d3", "A.js").getType("B");
-	IFunction method = type.getFunction("foo", new String[] {});
-
-	search(
-		method, 
-		DECLARATIONS,
-		SearchEngine.createHierarchyScope(type), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/d3/A.java void d3.B.foo() [foo]",
-		this.resultCollector);
-}
-/**
- * Method declaration in package test.
- * (regression tets for PR #1G2KA97)
- */
-public void testMethodDeclaration07() throws CoreException { // was testMethodDeclarationInPackageScope
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type.getPackageFragment()});
-
-	search(
-		"main(String[])", 
-		METHOD,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.java void p.A.main(String[]) [main]",
-		this.resultCollector);
-}
-/**
- * Method declaration in jar file test.
- */
-public void testMethodDeclaration08() throws CoreException { // was testMethodDeclarationInJar
-	IType type = getClassFile("JSSearch", "MyJar.jar", "p1", "A.class").getType();
-	IFunction method = type.getFunction("foo", new String[] {"Ljava.lang.String;"});
-
-	search(
-		method, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"MyJar.jar boolean p1.A.foo(java.lang.String) [No source]",
-		this.resultCollector);
-}
-/**
- * Method declaration in field initialzer.
- * (regression test for bug 24346 Method declaration not found in field initializer  )
- */
-public void testMethodDeclaration09() throws CoreException { // was testMethodDeclarationInInitializer
-
-	search(
-		"foo24346", 
-		METHOD,
-		DECLARATIONS,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/c6/X.java void c6.X.x:<anonymous>#1.foo24346() [foo24346]",
-		this.resultCollector);
-}
-/*
- * Method declaration with a missing return type.
- * (regression test for bug 43080 NPE when searching in CU with incomplete method declaration)
- */
-public void testMethodDeclaration10() throws CoreException { // was testMethodDeclarationNoReturnType
-	IType type = getCompilationUnit("JSSearch", "src", "e8", "A.js").getType("A");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type.getPackageFragment()});
-
-	search(
-		"m() int", 
-		METHOD,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/e8/A.java void e8.A.m() [m]",
-		this.resultCollector);
-}
-/**
- * Method declaration with source folder as java search scope.
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=92210"
- */
-public void testMethodDeclaration11() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JSSearch", "otherSrc()", "", "X92210.js");
-	assertNotNull("Should have found an unit", unit);
-	IJavaScriptElement root = unit.getAncestor(IJavaScriptElement.PACKAGE_FRAGMENT_ROOT);
-	assertNotNull("Should have found package fragment root", root);
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {root});
-
-	search(
-		"foo", 
-		METHOD,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"otherSrc()/X92210.java void X92210.foo() [foo]",
-		this.resultCollector);
-}
-/**
- * Method reference test.
- * (regression test for bug 5068 search: missing method reference)
- */
-public void testMethodReference01() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "q5", "AQ.js").getType("I");
-	IFunction method = type.getFunction("k", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/q5/AQ.java void q5.T.m() [k()]",
-		this.resultCollector);
-}
-/**
- * Method reference test.
- * (regression test for bug 5069 search: method reference in super missing)
- */
-public void testMethodReference02() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "q6", "CD.js").getType("AQ");
-	IFunction method = type.getFunction("k", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/q6/CD.java void q6.AQE.k() [k()]",
-		this.resultCollector);
-}
-/**
- * Method reference test.
- * (regression test for bug 5070 search: missing interface method reference  )
- */
-public void testMethodReference03() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "q7", "AQ.js").getType("I");
-	IFunction method = type.getFunction("k", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/q7/AQ.java void q7.D.h() [k()]",
-		this.resultCollector);
-}
-/**
- * Method reference test.
- * (regression test for bug 8928 Unable to find references or declarations of methods that use static inner classes in the signature)
- */
-public void testMethodReference04() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "b2", "Y.js").getType("Y");
-	IFunction method = type.getFunction("foo", new String[] {"QX.Inner;"});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b2/Z.java void b2.Z.bar() [foo(inner)]",
-		this.resultCollector);
-}
-/**
- * Method reference test.
- * (regression test for bug 49120 search doesn't find references to anonymous inner methods)
- */
-public void testMethodReference05() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch/src/e9/A.js").getType("A").getFunction("foo", new String[] {}).getType("", 1);
-	IFunction method = type.getFunction("bar", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/e9/A.java void e9.A.foo() [bar()]",
-		this.resultCollector);
-}
-/*
- * Method reference in second anonymous and second local type of a method test.
- */
-public void testMethodReference06() throws CoreException {
-	IFunction method= getCompilationUnit("JavaSearch/src/f3/X.js").getType("X").getFunction("bar", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f3/X.java void void f3.X.foo():<anonymous>#2.foobar() [bar()]\n" + 
-		"src/f3/X.java void void f3.X.foo():Y#2.foobar() [bar()]",
-		this.resultCollector);
-}
-/**
- * Simple method reference test.
- */
-public void testMethodReference07() throws CoreException { // was testSimpleMethodReference
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-	IFunction method = type.getFunction("foo", new String[] {"I", "QString;", "QX;"});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/Test.java void Test.main(String[]) [foo(1, \"a\", y)]\n" + 
-		// since bug 160301 fix, subclass overridden method calls are not reported
-		//"src/Test.java void Test.main(String[]) [foo(1, \"a\", z)]\n" + 
-		"src/p/Z.java void p.Z.foo(int, String, X) [foo(i, s, new Y(true))]",
-		this.resultCollector);
-}
-/**
- * Static method reference test.
- */
-public void testMethodReference08() throws CoreException { // was testStaticMethodReference1
-	IType type = getCompilationUnit("JSSearch", "src", "p", "Y.js").getType("Y");
-	IFunction method = type.getFunction("bar", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/Test.java void Test.main(String[]) [bar()]",
-		this.resultCollector);
-}
-/**
- * Static method reference test.
- */
-public void testMethodReference09() throws CoreException { // was testStaticMethodReference2
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-	IFunction method = type.getFunction("bar", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"", 
-		this.resultCollector);
-}
-/**
- * Inner method reference test.
- */
-public void testMethodReference10() throws CoreException { // was testInnerMethodReference
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X").getType("Inner");
-	IFunction method = type.getFunction("foo", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.java void p.A.foo(int, String, X) [foo()]",
-		this.resultCollector);
-}
-/**
- * Method reference through super test.
- */
-public void testMethodReference11() throws CoreException { // was testMethodReferenceThroughSuper
-	IType type = getCompilationUnit("JSSearch", "src", "sd", "AQ.js").getType("AQ");
-	IFunction method = type.getFunction("k", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/sd/AQ.java void sd.AQE.k() [k()]",
-		this.resultCollector);
-}
-/**
- * Method reference in inner class test.
- */
-public void testMethodReference12() throws CoreException { // was testMethodReferenceInInnerClass
-	IType type = getCompilationUnit("JSSearch", "src", "", "CA.js").getType("CA");
-	IFunction method = type.getFunction("m", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/CA.java void CA$CB.f() [m()]\n" + 
-		"src/CA.java void CA$CB$CC.f() [m()]",
-		this.resultCollector);
-}
-/**
- * Method reference in anonymous class test.
- * (regression test for PR 1GGNOTF: ITPJCORE:WINNT - Search doesn't find method referenced in anonymous inner class)
- */
-public void testMethodReference13() throws CoreException { // was testMethodReferenceInAnonymousClass
-	IType type = getCompilationUnit("JSSearch", "src", "", "PR_1GGNOTF.js").getType("PR_1GGNOTF");
-	IFunction method = type.getFunction("method", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/PR_1GGNOTF.java void void PR_1GGNOTF.method2():<anonymous>#1.run() [method()]",
-		this.resultCollector);
-}
-/**
- * Method reference through array test.
- * (regression test for 1GHDA2V: ITPJCORE:WINNT - ClassCastException when doing a search)
- */
-public void testMethodReference14() throws CoreException { // was testMethodReferenceThroughArray
-	IType type = getClassFile("JSSearch", getSystemJsPathString(), "java.lang", "Object.class").getType();
-	IFunction method = type.getFunction("clone", new String[] {});
-
-	search(
-		method, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/E.java Object E.foo() [clone()]",
-		this.resultCollector);
-}
-/**
- * Method reference inside/outside doc comment.
- */
-public void testMethodReference15() throws CoreException { // was testMethodReferenceInOutDocComment
-	IType type = getCompilationUnit("JSSearch", "src", "s4", "X.js").getType("X");
-	IFunction method = type.getFunction("foo", new String[] {});
-	resultCollector.showInsideDoc = true;
-	search(method, REFERENCES, getJavaSearchScope(), resultCollector);
-	assertSearchResults(
-		"src/s4/X.java void s4.X.bar() [foo()] INSIDE_JAVADOC\n" + 
-		"src/s4/X.java void s4.X.fred() [foo()] OUTSIDE_JAVADOC",
-		this.resultCollector);
-}
-/*
- * Generic method reference.
- */
-public void testMethodReference16() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15/src/p2/X.js").getType("X");
-	IFunction method = type.getFunction("foo", new String[] {"QE;"});
-	search(method, REFERENCES, ERASURE_RULE, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/p2/Y.java void p2.Y.bar() [foo(this)]",
-		this.resultCollector);
-}
-/**
- * Bug 111416: [search] wrong potential matches on a static method open
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=111416"
- */
-public void testMethodReference17() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch/src/b111416/X.js").getType("X");
-	IFunction method = type.getFunction("open", new String[] {"QString;"});
-	resultCollector.showAccuracy = true;
-	search(method, REFERENCES, ERASURE_RULE, getJavaSearchScope(), resultCollector);
-	assertSearchResults(
-		"src/b111416/X.java void b111416.X.foo() [open(\"\")] EXACT_MATCH",
-		this.resultCollector);
-}
-/**
- * OrPattern test.
- * (regression test for bug 5862 search : too many matches on search with OrPattern)
- */
-public void testOrPattern() throws CoreException {
-	IFunction leftMethod = getCompilationUnit("JSSearch", "src", "q9", "I.js")
-		.getType("I").getFunction("m", new String[] {});
-	SearchPattern leftPattern = createPattern(leftMethod, ALL_OCCURRENCES);
-	IFunction rightMethod = getCompilationUnit("JSSearch", "src", "q9", "I.js")
-		.getType("A1").getFunction("m", new String[] {});
-	SearchPattern rightPattern = createPattern(rightMethod, ALL_OCCURRENCES);
-	SearchPattern orPattern = SearchPattern.createOrPattern(leftPattern, rightPattern);
-	resultCollector.showAccuracy = true;
-	search(
-		orPattern, 
-		getJavaSearchScope(),
-		this.resultCollector);
-	assertSearchResults(
-		"src/e8/A.java void e8.A.m() [m] POTENTIAL_MATCH\n" + 
-		"src/q9/I.java void q9.I.m() [m] EXACT_MATCH\n" + 
-		"src/q9/I.java void q9.A1.m() [m] EXACT_MATCH",
-		this.resultCollector);
-}
-/**
- * Simple package declaration test.
- */
-public void testPackageDeclaration1() throws CoreException { // was testSimplePackageDeclaration
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "p");
-	search(
-		pkg, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p p", 
-		this.resultCollector);
-}
-
-/**
- * Various package declarations test.
- */
-public void testPackageDeclaration2() throws CoreException { // was testVariousPackageDeclarations
-
-	search(
-		"p3*", 
-		PACKAGE,
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p3 p3\n" + 
-		"src/p3/p2 p3.p2\n" + 
-		"src/p3/p2/p p3.p2.p",
-		this.resultCollector);
-}
-/**
- * Package declaration test.
- * (regression test for bug 62698 NPE while searching for declaration of binary package)
- */
-public void testPackageDeclaration3() throws CoreException { // was testPackageDeclaration
-	IPackageFragment pkg = getPackageFragment("JSSearch", getSystemJsPathString(), "java.lang");
-
-	search(
-		pkg, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		getExternalJCLPath("") + " java.lang",
-		this.resultCollector);
-}
-/**
- * Package declaration with corrupt jar on the classpath test.
- * (regression test for bug 75561 Rename package results in I/O exception)
- */
-public void testPackageDeclaration4() throws CoreException {
-	IJavaScriptProject project = getJavaProject("JSSearch");
-	IIncludePathEntry[] originalCP = project.getRawIncludepath();
-	try {
-		// add corrupt.jar to classpath
-		int cpLength = originalCP.length;
-		IIncludePathEntry[] newCP = new IIncludePathEntry[cpLength+1];
-		System.arraycopy(originalCP, 0, newCP, 0, cpLength);
-		newCP[cpLength] = JavaScriptCore.newLibraryEntry(new Path("/JavaSearch/corrupt.jar"), null, null);
-		project.setRawIncludepath(newCP, null);
-		
-
-		search(
-			"r9",
-			PACKAGE,
-			DECLARATIONS, 
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"src/r9 r9", 
-			this.resultCollector);
-	} finally {
-		project.setRawIncludepath(originalCP, null);
-	}
-}
-/**
- * Bug 117020: [search] Search for '*' does not report empty packages
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=117020"
- */
-public void testPackageDeclarationBug117020() throws CoreException {
-	IFolder srcFolder = getFolder(new Path("/JavaSearch/src"));
-	IPackageFragmentRoot srcRoot = JAVA_PROJECT.getPackageFragmentRoot(srcFolder);
-	IPackageFragment test = null;
-	try {
-		test = srcRoot.createPackageFragment("b117020", true, null);
-		JavaSearchResultCollector result = new JavaSearchResultCollector();
-		result.showAccuracy = true;
-		search(test, DECLARATIONS, getJavaSearchScope(),  result);
-		assertSearchResults(
-			"src/b117020 b117020 EXACT_MATCH",
-			result);
-	}
-	catch (JavaScriptModelException jme) {
-		// give up
-	}
-	finally {
-		if (test != null && test.exists()) {
-			test.delete(true, null);
-		}
-	}
-}
-/**
- * Package reference test.
- * (regression test for PR 1GK90H4: ITPJCORE:WIN2000 - search: missing package reference)
- */
-public void testPackageReference1() throws CoreException {
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "q2");
-
-	search(
-		pkg, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/q1/B.java void q1.B.m(AA) [q2]",
-		this.resultCollector);
-}
-/**
- * Package reference test.
- * (regression test for bug 17906 Rename package fails when inner classes are imported)
- */
-public void testPackageReference2() throws CoreException {
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "b8");
-
-	search(
-		pkg, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b9/Foo.java [b8]", 
-		this.resultCollector);
-}
-/**
- * Package reference in jar test.
- * (regression test for bug 47989 Exception when searching for IPackageFragment "java.util.zip")
- */
-public void testPackageReference3() throws CoreException {
-	IPackageFragment pkg = getPackageFragment("JSSearch", "test47989.jar", "p1");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {pkg.getParent()});
-
-	search(
-		pkg, 
-		REFERENCES, 
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"test47989.jar java.lang.Object p2.Y.foo()",
-		this.resultCollector);
-}
-/**
- * Simple package reference test.
- */
-public void testPackageReference4() throws CoreException { // was testSimplePackageReference
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "p");
-
-	search(
-		pkg, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/InterfaceImplementors.java InterfaceImplementors [p]\n" + 
-		"src/Test.java void Test.main(String[]) [p]\n" + 
-		"src/Test.java void Test.main(String[]) [p]\n" + 
-		"src/Test.java void Test.main(String[]) [p]\n" + 
-		"src/Test.java void Test.main(String[]) [p]\n" + 
-		"src/Test.java void Test.main(String[]) [p]\n" + 
-		"src/Test.java void Test.main(String[]) [p]\n" + 
-		"src/Test.java void Test.main(String[]) [p]\n" + 
-		"src/TypeReferenceInImport/X.java [p]",
-		this.resultCollector);
-}
-/**
- * Various package reference test.
- */
-public void testPackageReference5() throws CoreException { // was testVariousPackageReference
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "p3.p2.p");
-
-	search(
-		pkg, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/PackageReference/A.java [p3.p2.p]\n" + 
-		"src/PackageReference/B.java [p3.p2.p]\n" + 
-		"src/PackageReference/C.java PackageReference.C [p3.p2.p]\n" + 
-		"src/PackageReference/D.java PackageReference.D.x [p3.p2.p]\n" + 
-		"src/PackageReference/E.java PackageReference.E.x [p3.p2.p]\n" + 
-		"src/PackageReference/F.java p3.p2.p.X PackageReference.F.foo() [p3.p2.p]\n" + 
-		"src/PackageReference/G.java void PackageReference.G.foo(p3.p2.p.X) [p3.p2.p]\n" + 
-		"src/PackageReference/H.java void PackageReference.H.foo() [p3.p2.p]\n" + 
-		"src/PackageReference/I.java void PackageReference.I.foo() [p3.p2.p]\n" + 
-		"src/PackageReference/J.java void PackageReference.J.foo() [p3.p2.p]",
-		this.resultCollector);
-}
-/**
- * Regression test for 1GBK7B2: ITPJCORE:WINNT - package references: could be more precise
- */
-public void testPackageReference6() throws CoreException { // was testAccuratePackageReference
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "p3.p2");
-
-	search(
-		pkg, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/PackageReference/K.java [p3.p2]", 
-		this.resultCollector);
-}
-/**
- * Test pattern match package references
- */
-public void testPackageReference7() throws CoreException { // was testPatternMatchPackageReference
-
-	search(
-		"*p2.*", 
-		PACKAGE,
-		REFERENCES,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/PackageReference/A.java [p3.p2.p]\n" + 
-		"src/PackageReference/B.java [p3.p2.p]\n" + 
-		"src/PackageReference/C.java PackageReference.C [p3.p2.p]\n" + 
-		"src/PackageReference/D.java PackageReference.D.x [p3.p2.p]\n" + 
-		"src/PackageReference/E.java PackageReference.E.x [p3.p2.p]\n" + 
-		"src/PackageReference/F.java p3.p2.p.X PackageReference.F.foo() [p3.p2.p]\n" + 
-		"src/PackageReference/G.java void PackageReference.G.foo(p3.p2.p.X) [p3.p2.p]\n" + 
-		"src/PackageReference/H.java void PackageReference.H.foo() [p3.p2.p]\n" + 
-		"src/PackageReference/I.java void PackageReference.I.foo() [p3.p2.p]\n" + 
-		"src/PackageReference/J.java void PackageReference.J.foo() [p3.p2.p]",
-		this.resultCollector);
-}
-/**
- * Test pattern match package references
- * Just verify that there's no ArrayOutOfBoundException to validate fix for
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=64421
- */
-public void testPackageReference8() throws CoreException { // was testPatternMatchPackageReference2
-
-	search(
-		"*", 
-		PACKAGE,
-		REFERENCES,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	resultCollector.toString();
-}
-/**
- * Test that we find potential matches in binaries even if we can't resolve the entire
- * class file.
- * (Regression test for 1G4IN3E: ITPJCORE:WINNT - AbortCompilation using J9 to search for class declaration) 
- */
-public void testPotentialMatchInBinary1() throws CoreException {
-	IJavaScriptProject project = this.getJavaProject("JSSearch");
-	IIncludePathEntry[] classpath = project.getRawIncludepath();
-	try {
-		// add AbortCompilation.jar to classpath
-		int length = classpath.length;
-		IIncludePathEntry[] newClasspath = new IIncludePathEntry[length+1];
-		System.arraycopy(classpath, 0, newClasspath, 0, length);
-		newClasspath[length] = JavaScriptCore.newLibraryEntry(new Path("/JavaSearch/AbortCompilation.jar"), null, null);
-		project.setRawIncludepath(newClasspath, null);
-		
-		// potential match for a field declaration
-
-		resultCollector.showAccuracy = true;
-		search(
-			"MissingFieldType.*",
-			FIELD,
-			DECLARATIONS, 
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"AbortCompilation.jar AbortCompilation.MissingFieldType.field [No source] POTENTIAL_MATCH\n" + 
-			"AbortCompilation.jar AbortCompilation.MissingFieldType.missing [No source] POTENTIAL_MATCH\n" + 
-			"AbortCompilation.jar AbortCompilation.MissingFieldType.otherField [No source] POTENTIAL_MATCH",
-			this.resultCollector);
-	} finally {
-		// reset classpath
-		project.setRawIncludepath(classpath, null);
-	}
-}	
-/**
- * Test that we find potential matches in binaries even if we can't resolve the entire
- * class file.
- * (Regression test for 1G4IN3E: ITPJCORE:WINNT - AbortCompilation using J9 to search for class declaration) 
- */
-public void testPotentialMatchInBinary2() throws CoreException {
-	IJavaScriptProject project = this.getJavaProject("JSSearch");
-	IIncludePathEntry[] classpath = project.getRawIncludepath();
-	try {
-		// add AbortCompilation.jar to classpath
-		int length = classpath.length;
-		IIncludePathEntry[] newClasspath = new IIncludePathEntry[length+1];
-		System.arraycopy(classpath, 0, newClasspath, 0, length);
-		newClasspath[length] = JavaScriptCore.newLibraryEntry(new Path("/JavaSearch/AbortCompilation.jar"), null, null);
-		project.setRawIncludepath(newClasspath, null);
-		
-		// potential match for a method declaration
-
-		resultCollector.showAccuracy = true;
-		search(
-			"MissingArgumentType.foo*",
-			METHOD,
-			DECLARATIONS, 
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"AbortCompilation.jar void AbortCompilation.MissingArgumentType.foo() [No source] POTENTIAL_MATCH\n" + 
-			"AbortCompilation.jar void AbortCompilation.MissingArgumentType.foo(java.util.EventListener) [No source] POTENTIAL_MATCH\n" + 
-			"AbortCompilation.jar void AbortCompilation.MissingArgumentType.foo2() [No source] POTENTIAL_MATCH",
-			this.resultCollector);
-	} finally {
-		// reset classpath
-		project.setRawIncludepath(classpath, null);
-	}
-}	
-/**
- * Test that we find potential matches in binaries even if we can't resolve the entire
- * class file.
- * (Regression test for 1G4IN3E: ITPJCORE:WINNT - AbortCompilation using J9 to search for class declaration) 
- */
-public void testPotentialMatchInBinary3() throws CoreException {
-	IJavaScriptProject project = this.getJavaProject("JSSearch");
-	IIncludePathEntry[] classpath = project.getRawIncludepath();
-	try {
-		// add AbortCompilation.jar to classpath
-		int length = classpath.length;
-		IIncludePathEntry[] newClasspath = new IIncludePathEntry[length+1];
-		System.arraycopy(classpath, 0, newClasspath, 0, length);
-		newClasspath[length] = JavaScriptCore.newLibraryEntry(new Path("/JavaSearch/AbortCompilation.jar"), null, null);
-		project.setRawIncludepath(newClasspath, null);
-		
-		// potential match for a type declaration
-
-		resultCollector.showAccuracy = true;
-		search(
-			"Missing*",
-			TYPE,
-			DECLARATIONS, 
-			getJavaSearchScope(), 
-			this.resultCollector);
-		assertSearchResults(
-			"AbortCompilation.jar AbortCompilation.EnclosingType$MissingEnclosingType [No source] EXACT_MATCH\n" + 
-			"AbortCompilation.jar AbortCompilation.MissingArgumentType [No source] EXACT_MATCH\n" + 
-			"AbortCompilation.jar AbortCompilation.MissingFieldType [No source] EXACT_MATCH",
-			this.resultCollector);
-	} finally {
-		// reset classpath
-		project.setRawIncludepath(classpath, null);
-	}
-}
-/**
- * Hierarchy scope test.
- * (regression test for bug 3445 search: type hierarchy scope incorrect (1GLC8VS))
- */
-public void testSearchScope01() throws CoreException { // was testHierarchyScope
-	IJavaScriptUnit cu = this. getCompilationUnit("JSSearch", "src", "a9", "A.js");
-	IType type = cu.getType("C");
-	IJavaScriptSearchScope scope = SearchEngine.createHierarchyScope(type);
-	assertTrue("a9.C should be included in hierarchy scope", scope.encloses(type));
-	assertTrue("a9.A should be included in hierarchy scope", scope.encloses(cu.getType("A")));
-	assertTrue("a9.B should be included in hierarchy scope", scope.encloses(cu.getType("B")));
-	assertTrue("a9/A.java should be included in hierarchy scope", scope.encloses(cu.getUnderlyingResource().getFullPath().toString()));
-}
-/**
- * Sub-cu java search scope test.
- * (regression test for bug 9041 search: cannot create a sub-cu scope)
- */
-public void testSearchScope02() throws CoreException { // was testSubCUSearchScope1
-	IType type = getCompilationUnit("JSSearch", "src", "b3", "X.js").getType("X");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type});
-
-	search(
-		type, 
-		REFERENCES,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b3/X.java b3.X.field [X]\n" + 
-		"src/b3/X.java Object b3.X.foo() [X]\n" + 
-		"src/b3/X.java b3.X$Y.field2 [X]\n" + 
-		"src/b3/X.java Object b3.X$Y.foo2() [X]",
-		this.resultCollector);
-}
-/**
- * Sub-cu java search scope test.
- * (regression test for bug 9041 search: cannot create a sub-cu scope)
- */
-public void testSearchScope03() throws CoreException { // was testSubCUSearchScope2
-	IType type = getCompilationUnit("JSSearch", "src", "b3", "X.js").getType("X");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type.getField("field")});
-
-	search(
-		type, 
-		REFERENCES,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b3/X.java b3.X.field [X]", 
-		this.resultCollector);
-}
-/**
- * Sub-cu java search scope test.
- * (regression test for bug 9041 search: cannot create a sub-cu scope)
- */
-public void testSearchScope04() throws CoreException { // was testSubCUSearchScope3
-	IType type = getCompilationUnit("JSSearch", "src", "b3", "X.js").getType("X");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type.getType("Y")});
-
-	search(
-		type, 
-		REFERENCES,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b3/X.java b3.X$Y.field2 [X]\n" + 
-		"src/b3/X.java Object b3.X$Y.foo2() [X]",
-		this.resultCollector);
-}
-/**
- * Java search scope on java element in external jar test.
- */
-public void testSearchScope05() throws CoreException, IOException { // was testExternalJarScope
-	IWorkspace workspace = ResourcesPlugin.getWorkspace();
-	File workspaceLocation = new File(workspace.getRoot().getLocation().toOSString());
-	File minimalJar = new File(workspaceLocation, "JavaSearch/MyJar.jar");
-	File externalJar = new File(workspaceLocation.getParentFile().getCanonicalFile(), "MyJar.jar"); // canonicalize the external path as this is not done on case sensitive platforms when creating a new lib entry
-	IJavaScriptProject project = this.getJavaProject("JSSearch");
-	IIncludePathEntry[] classpath = project.getRawIncludepath();
-	try {
-		copy(minimalJar, externalJar);
-		int length = classpath.length;
-		IIncludePathEntry[] newClasspath = new IIncludePathEntry[length];
-		System.arraycopy(classpath, 0, newClasspath, 0, length-1);
-		String externalPath = externalJar.getAbsolutePath();
-		newClasspath[length-1] = JavaScriptCore.newLibraryEntry(new Path(externalPath), new Path(externalPath), null, false);
-		project.setRawIncludepath(newClasspath, null);
-		
-		IPackageFragment pkg = this.getPackageFragment("JSSearch", externalPath, "p0");
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {pkg});
-
-		search(
-			"X", 
-			TYPE,
-			DECLARATIONS,
-			scope,
-			this.resultCollector);
-		assertSearchResults(
-			externalJar + " p0.X",
-			this.resultCollector);
-			
-		IClassFile classFile = pkg.getClassFile("X.class");
-		scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {classFile});
-		resultCollector = new JavaSearchResultCollector();
-		search(
-			classFile.getType(), 
-			DECLARATIONS,
-			scope,
-			this.resultCollector);
-		assertSearchResults(
-			externalJar.getCanonicalPath()+ " p0.X",
-			this.resultCollector);
-		
-	} finally {
-		Util.delete(externalJar);
-		project.setRawIncludepath(classpath, null);
-	}
-	
-}
-/**
- * Simple type declaration test.
- */
-public void testTypeDeclaration01() throws CoreException { // was testSimpleTypeDeclaration
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-
-	search(
-		type, 
-		DECLARATIONS,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults("src/p/X.java p.X [X]", resultCollector);
-}
-/**
- * Type declaration test.
- * (generic type)
- */
-public void testTypeDeclaration02() throws CoreException {
-	IPackageFragment pkg = this.getPackageFragment("JavaSearch15", "src", "p1");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {pkg});
-
-	search(
-		"Y", 
-		TYPE,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p1/Y.java p1.Y [Y]",
-		this.resultCollector);
-}
-/**
- * Type declaration test.
- * (regression test for bug 29524 Search for declaration via patterns adds '"*")
- */
-public void testTypeDeclaration03() throws CoreException { // was testTypeDeclaration
-	IPackageFragment pkg = this.getPackageFragment("JSSearch", "src", "d8");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {pkg});
-
-	search(
-		"A", 
-		TYPE,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults("src/d8/A.java d8.A [A]", resultCollector);
-}
-/**
- * Type declaration in jar file test.
- */
-public void testTypeDeclaration04() throws CoreException { // was testTypeDeclarationInJar
-	IType type = getClassFile("JSSearch", "MyJar.jar", "p1", "A.class").getType();
-
-	search(
-		type, 
-		DECLARATIONS, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"MyJar.jar p1.A [No source]", 
-		this.resultCollector);
-}
-/**
- * Type declaration in jar file and in anonymous class test.
- * (regression test for 20631 Declaration of local binary type not found)
- */
-public void testTypeDeclaration05() throws CoreException { // was testTypeDeclarationInJar2
-	IPackageFragmentRoot root = getPackageFragmentRoot("JSSearch", "test20631.jar");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {root});
-
-	search(
-		"Y", 
-		TYPE,
-		DECLARATIONS, 
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"test20631.jar Y",
-		this.resultCollector);
-}
-/**
- * Type declaration using a package scope test.
- * (check that subpackages are not included)
- */
-public void testTypeDeclaration06() throws CoreException { // was testTypeDeclarationInPackageScope
-	IType type = getCompilationUnit("JSSearch", "src", "p3", "X.js").getType("X");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type.getPackageFragment()});
-
-	search(
-		"X", 
-		TYPE,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p3/X.java p3.X [X]", 
-		this.resultCollector);
-}
-/**
- * Type declaration using a binary package scope test.
- * (check that subpackages are not included)
- */
-public void testTypeDeclaration07() throws CoreException { // was testTypeDeclarationInPackageScope2
-	IType type = getClassFile("JSSearch", "MyJar.jar", "p0", "X.class").getType();
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type.getPackageFragment()});
-
-	search(
-		"X", 
-		TYPE,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"MyJar.jar p0.X [No source]", 
-		this.resultCollector);
-}
-/**
- * Memeber type declaration test.
- * (regression test for bug 9992 Member class declaration not found)
- */
-public void testTypeDeclaration08() throws CoreException { // was testMemberTypeDeclaration
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[]{
-		this.getPackageFragment("JSSearch", "src", "b4")
-	});
-
-	search(
-		"*.A.B", 
-		TYPE,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b4/A.java b4.A$B [B]", 
-		this.resultCollector);
-}
-/**
- * Test pattern match type declaration
- * (regression test for bug 17210 No match found when query contains '?')
- */
-public void testTypeDeclaration09() throws CoreException {
-
-	search(
-		"X?Z", 
-		TYPE,
-		DECLARATIONS,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults("src/r5/XYZ.java r5.XYZ [XYZ]", resultCollector);
-}
-/**
- * Long declaration (>255) test.
- * (regression test for bug 25859 Error doing Java Search)
- */
-public void testTypeDeclaration10() throws CoreException { // was testLongDeclaration
-
-	search(
-		"AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyz", 
-		TYPE, 
-		DECLARATIONS,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/c9/X.java c9.AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyz [AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyz]", 
-		this.resultCollector);
-}
-/*
- * Local type declaration test.
- */
-public void testTypeDeclaration11() throws CoreException { // was testLocalTypeDeclaration1
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "f2");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {pkg});
-
-	search(
-		"Y", 
-		TYPE,
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f2/X.java Object f2.X.foo1():Y#1 [Y]",
-		this.resultCollector);
-}
-/*
- * Local type declaration test.
- */
-public void testTypeDeclaration12() throws CoreException { // was testLocalTypeDeclaration2
-	IType type = getCompilationUnit("JavaSearch/src/f2/X.js").getType("X").getFunction("foo1", new String[0]).getType("Y", 1);
-	
-	IJavaScriptSearchScope scope = SearchEngine.createWorkspaceScope();
-
-	search(
-		type, 
-		DECLARATIONS,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f2/X.java Object f2.X.foo1():Y#1 [Y]",
-		this.resultCollector);
-}
-/**
- * Type ocurrence test.
- * (regression test for PR 1GKAQJS: ITPJCORE:WIN2000 - search: incorrect results for nested types)
- */
-public void testTypeOccurence1() throws CoreException { // was testTypeOccurence
-	IType type = getCompilationUnit("JSSearch", "src", "r", "A.js").getType("A").getType("X");
-
-	search(
-		type, 
-		ALL_OCCURRENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/r/A.java A r.A.m() [X]\n" + 
-		"src/r/A.java r.A$X [X]\n" + 
-		"src/r/A.java r.A$X(X) [X]\n" + 
-		"src/r/A.java r.A$X(X) [X]\n" + 
-		"src/r/A.java r.B.ax [A.X]\n" + 
-		"src/r/A.java r.B.ax [X]",
-		this.resultCollector);
-}
-/**
- * Type ocuurence in unresolvable import test.
- * (regression test for bug 37166 NPE in SearchEngine when matching type against ProblemReferenceBinding )
- */
-public void testTypeOccurence2() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "r8", "B.js").getType("B");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type.getPackageFragment()});
-
-	search(
-		type, 
-		ALL_OCCURRENCES, 
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/r8/A.java [B]",
-		this.resultCollector);
-}
-/**
- * Type occurences test.
- * Ensures that correct positions are reported for an inner type reference using a ALL_OCCURENCES pattern
- */
-public void testTypeOccurence3() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "e4", "A.js").getType("A").getType("Inner");
-
-	search(
-		type, 
-		ALL_OCCURRENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/e4/A.java e4.A$Inner [Inner]\n" +
-		"src/e5/A1.java [e4.A.Inner]\n" +
-		"src/e5/A1.java e5.A1.a [e4.A.Inner]\n" +
-		"src/e5/A1.java e5.A1.a1 [e4.A.Inner]\n" +
-		"src/e5/A1.java e5.A1.a2 [Inner]\n" +
-		"src/e5/A1.java e5.A1.a3 [Inner]",
-		this.resultCollector);
-}
-/**
- * Type name with $ ocurrence test.
- * (regression test for bug 3310 Smoke 124: Compile errors introduced with rename refactoring (1GFBK2G))
- */
-public void testTypeOccurence4() throws CoreException { // was testTypeOccurenceWithDollar
-	IType type = getCompilationUnit("JSSearch", "src", "q3", "A$B.js").getType("A$B");
-
-	search(
-		type, 
-		ALL_OCCURRENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/q3/A$B.java q3.A$B [A$B]\n" + 
-		"src/q4/C.java Object q4.C.foo() [q3.A$B]",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- * (Regression test for PR 1GK7K17: ITPJCORE:WIN2000 - search: missing type reference)
- */
-public void testTypeReference01() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "", "X.js").getType("X");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/X.java AA() [X]",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- * (Regression test for bug 29516 SearchEngine regressions in 20030114)
- */
-public void testTypeReference02() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "src", "d7", "A.js").getType("A");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/d7/A.java d7.A.A [A]\n" + 
-		"src/d7/A.java A d7.A.A(A) [A]\n" + 
-		"src/d7/A.java A d7.A.A(A) [A]",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- * (Regression test for bug 31985 NPE searching non-qualified and case insensitive type ref)
- */
-public void testTypeReference03() throws CoreException {
-	SearchPattern pattern = createPattern("x31985", TYPE, REFERENCES, false);
-
-	resultCollector.showAccuracy = true;
-	search(
-		pattern, 
-		getJavaSearchScope(),
-		this.resultCollector);
-	assertSearchResults(
-		"src/e3/X31985.java e3.X31985.CONSTANT [X31985] EXACT_MATCH\n" + 
-		"src/e3/Y31985.java Object e3.Y31985.foo() [X31985] EXACT_MATCH",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- * (Regression test for bug 31997 Refactoring d.n. work for projects with brackets in name.)
- */
-public void testTypeReference04() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "otherSrc()", "", "X31997.js").getType("X31997");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"otherSrc()/Y31997.java Y31997 [X31997]",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- * (Regression test for bug 48261 Search does not show results)
- */
-public void testTypeReference05() throws CoreException {
-	IType type = getCompilationUnit("JSSearch", "test48261.jar", "p", "X.js").getType("X");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type.getPackageFragment().getParent()});
-
-	search(
-		type, 
-		REFERENCES, 
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"test48261.jar p.X$Y(java.lang.String)",
-		this.resultCollector);
-}
-/**
- * Type reference test
- * (in a generic type)
- */
-public void testTypeReference06() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15/src/p1/X.js").getType("X");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope15("p1", true), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p1/Y.java Object p1.Y.foo() [X]",
-		this.resultCollector);
-}
-/**
- * Simple type reference test.
- */
-public void testTypeReference07() throws CoreException { // was testTypeDeclaration01
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.java p.A.x [X]\n" + 
-		"src/p/A.java p.A(X) [X]\n" + 
-		"src/p/A.java void p.A.foo(int, String, X) [X]\n" + 
-		"src/p/X.java p.X() [X]\n" + 
-		"src/p/X.java void p.X.foo(int, String, X) [X]\n" + 
-		"src/p/Y.java p.Y [X]\n" + 
-		"src/p/Z.java void p.Z.foo(int, String, X) [X]",
-		this.resultCollector);
-}
-/**
- * Type reference in initializer test.
- * (regression test for PR #1G4GO4O)
- */
-public void testTypeReference08() throws CoreException { // was testTypeReferenceInInitializer
-	IType type = getCompilationUnit("JSSearch", "src", "", "Test.js").getType("Test");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/Test.java Test.static {} [Test]\n" +
-		"src/Test.java Test.static {} [Test]\n" +
-		"src/Test.java Test.{} [Test]",
-		this.resultCollector);
-}
-/**
- * Type reference as a single name reference test.
- */
-public void testTypeReference09() throws CoreException { // was testTypeReferenceAsSingleNameReference
-	IType type = getCompilationUnit("JSSearch", "src", "", "TypeReferenceAsSingleNameReference.js").getType("TypeReferenceAsSingleNameReference");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/TypeReferenceAsSingleNameReference.java void TypeReferenceAsSingleNameReference.hasReference() [TypeReferenceAsSingleNameReference]\n" + 
-		"src/TypeReferenceAsSingleNameReference.java void TypeReferenceAsSingleNameReference.hasReference() [TypeReferenceAsSingleNameReference]",
-		this.resultCollector);
-}
-/**
- * Member type reference test.
- */
-public void testTypeReference10() throws CoreException { // was testMemberTypeReference
-	// references to second level member type
-
-	resultCollector.showAccuracy = true;
-	search(
-		"BMember", 
-		TYPE,
-		REFERENCES,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"References to type BMember",
-		"src/MemberTypeReference/Azz.java void MemberTypeReference.Azz.poo() [BMember] EXACT_MATCH\n" + 
-		"src/MemberTypeReference/Azz.java MemberTypeReference.Azz$AzzMember [BMember] EXACT_MATCH\n" + 
-		"src/MemberTypeReference/Azz.java MemberTypeReference.X.val [BMember] EXACT_MATCH\n" + 
-		"src/MemberTypeReference/B.java void MemberTypeReference.B.foo() [BMember] EXACT_MATCH",
-		this.resultCollector);
-
-	// references to first level member type
-	resultCollector = new JavaSearchResultCollector();
-	resultCollector.showAccuracy = true;
-	search(
-		"AzzMember", 
-		TYPE,
-		REFERENCES,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"References to type AzzMember",
-		"src/MemberTypeReference/Azz.java MemberTypeReference.X.val [AzzMember] EXACT_MATCH\n" + 
-		"src/MemberTypeReference/B.java void MemberTypeReference.B.foo() [AzzMember] EXACT_MATCH",
-		this.resultCollector);
-
-	// no reference to a field with same name as member type
-	resultCollector = new JavaSearchResultCollector();
-	resultCollector.showAccuracy = true;
-	search(
-		"BMember", 
-		FIELD,
-		REFERENCES,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"References to field BMember",
-		"",
-		this.resultCollector);
-}
-/**
- * Member type reference test.
- * (regression test for PR 1GL0MN9: ITPJCORE:WIN2000 - search: not consistent results for nested types)
- */
-public void testTypeReference11() throws CoreException { // was testMemberTypeReference2
-	IType type = getCompilationUnit("JSSearch", "src", "a", "A.js").getType("A").getType("X");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/a/A.java a.B.ax [A.X]\n" +
-		"src/a/A.java a.B.sx [S.X]", 
-		this.resultCollector);
-}
-/**
- * Member type named "Object" reference test.
- * (regression test for 1G4GHPS: ITPJUI:WINNT - Strange error message in search)
- */
-public void testTypeReference12() throws CoreException { // was testObjectMemberTypeReference
-	IType type = getCompilationUnit("JSSearch", "src", "ObjectMemberTypeReference", "A.js")
-		.getType("A")
-		.getType("Object");
-
-	resultCollector.showAccuracy = true;
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/ObjectMemberTypeReference/A.java void ObjectMemberTypeReference.A.foo() [Object] EXACT_MATCH",
-		this.resultCollector);
-}
-/**
- * Type reference inside a qualified name reference test.
- * (Regression test for PR #1G4TSC0)
- */
-public void testTypeReference13() throws CoreException { // was testTypeReferenceInQualifiedNameReference
-	IType type = getCompilationUnit("JSSearch", "src", "p", "A.js").getType("A");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/Test.java void Test.main(String[]) [p.A]\n" + 
-		"src/Test.java void Test.main(String[]) [p.A]\n" + 
-		"src/p/A.java void p.A.foo() [A]",
-		this.resultCollector);
-}
-/**
- * Type reference inside a qualified name reference test.
- * (Regression test for PR #1GLBP65)
- */
-public void testTypeReference14() throws CoreException { // was testTypeReferenceInQualifiedNameReference2
-	IType type = getCompilationUnit("JSSearch", "src", "p4", "A.js").getType("A");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p4/A.java p4.A.A [A]\n" + 
-		"src/p4/A.java p4.X [p4.A]\n" + 
-		"src/p4/A.java void p4.X.x() [p4.A]",
-		this.resultCollector);
-}
-/**
- * Type reference inside a qualified name reference test.
- * (Regression test for PR 1GL9UMH: ITPJCORE:WIN2000 - search: missing type occurrences)
- */
-public void testTypeReference15() throws CoreException { // was testTypeReferenceInQualifiedNameReference3
-	IType type = getCompilationUnit("JSSearch", "src", "", "W.js").getType("W");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/W.java int W.m() [W]",
-		this.resultCollector);
-}
-/**
- * Type reference inside a qualified name reference test.
- * (Regression test for bug 16751 Renaming a class doesn't update all references  )
- */
-public void testTypeReference16() throws CoreException { // was testTypeReferenceInQualifiedNameReference4
-	IType type = getCompilationUnit("JSSearch", "src", "b7", "X.js").getType("SubClass");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b7/X.java void b7.Test.main(String[]) [SubClass]",
-		this.resultCollector);
-}
-/**
- * Type reference in a folder that is not in the classpath.
- * (regression test for PR #1G5N8KS)
- */
-public void testTypeReference17() throws CoreException { // was testTypeReferenceNotInClasspath
-	IType type = getCompilationUnit("JSSearch", "src", "p", "X.js").getType("X");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/p/A.java p.A.x [X]\n" + 
-		"src/p/A.java p.A(X) [X]\n" + 
-		"src/p/A.java void p.A.foo(int, String, X) [X]\n" + 
-		"src/p/X.java p.X() [X]\n" + 
-		"src/p/X.java void p.X.foo(int, String, X) [X]\n" + 
-		"src/p/Y.java p.Y [X]\n" + 
-		"src/p/Z.java void p.Z.foo(int, String, X) [X]",
-		this.resultCollector);
-}
-/**
- * Type reference inside an argument, a return type or a field type.
- * (Regression test for PR #1GA7QA1)
- */
-public void testTypeReference18() throws CoreException { // was testVariousTypeReferences
-	IType type = getCompilationUnit("JSSearch", "src", "NoReference", "A.js").getType("A");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"", // no reference should be found
-		this.resultCollector);
-}
-/**
- * Type reference in import test.
- * (regression test for PR #1GA7PAS)
- */
-public void testTypeReference19() throws CoreException { // was testTypeReferenceInImport
-	IType type = getCompilationUnit("JSSearch", "src", "p2", "Z.js").getType("Z");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/TypeReferenceInImport/X.java [p2.Z]",
-		this.resultCollector);
-}
-/**
- * Type reference in import test.
- * (regression test for bug 23077 search: does not find type references in some imports)
- */
-public void testTypeReference20() throws CoreException { // was testTypeReferenceInImport2
-	IType type = getCompilationUnit("JSSearch", "src", "r6", "A.js").getType("A");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/r6/B.java [r6.A]\n" +
-		"src/r6/B.java [r6.A]\n" +
-		"src/r6/B.java [r6.A]\n" +
-		"src/r6/B.java [r6.A]\n" +
-		"src/r6/B.java [r6.A]\n" +
-		"src/r6/B.java [r6.A]",
-		this.resultCollector);
-}
-/**
- * Type reference in array test.
- * (regression test for PR #1GAL424)
- */
-public void testTypeReference21() throws CoreException { // was testTypeReferenceInArray
-	IType type = getCompilationUnit("JSSearch", "src", "TypeReferenceInArray", "A.js").getType("A");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/TypeReferenceInArray/A.java TypeReferenceInArray.A.a [A]\n" +
-		"src/TypeReferenceInArray/A.java TypeReferenceInArray.A.b [TypeReferenceInArray.A]",
-		this.resultCollector);
-}
-/**
- * Type reference in array test.
- * (regression test for bug 3230 Search - Too many type references for query ending with * (1GAZVGI)  )
- */
-public void testTypeReference22() throws CoreException { // was testTypeReferenceInArray2
-	IType type = getCompilationUnit("JSSearch", "src", "s1", "X.js").getType("X");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/s1/Y.java s1.Y.f [X]",
-		this.resultCollector);
-}
-/**
- * Negative type reference test.
- * (regression test for 1G52F7P: ITPJCORE:WINNT - Search - finds bogus references to class)
- */
-public void testTypeReference23() throws CoreException { // testNegativeTypeReference
-	IType type = getCompilationUnit("JSSearch", "src", "p7", "A.js").getType("A");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"",
-		this.resultCollector);
-}
-/**
- * Type reference in a throw clause test.
- * (Regression test for bug 6779 searchDeclarationsOfReferencedTyped - missing exception types)
- */
-public void testTypeReference24() throws CoreException { // was testTypeReferenceInThrows
-	IType type = getCompilationUnit("JSSearch", "src", "a7", "X.js").getType("MyException");
-
-	resultCollector.showAccuracy = true;
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/a7/X.java void a7.X.foo() [MyException] EXACT_MATCH",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- * (Regression test for bug 9642 Search - missing inaccurate type matches)
- */
-public void testTypeReference25() throws CoreException { // was testInnacurateTypeReference1
-
-	search(
-		"Zork", 
-		TYPE, 
-		REFERENCES,
-		SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {
-			getPackageFragment("JSSearch", "src", "b5")
-		}), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b5/A.java [Zork]\n" +
-		"src/b5/A.java b5.A.{} [Zork]\n" +
-		"src/b5/A.java b5.A.{} [Zork]\n" +
-		"src/b5/A.java b5.A.{} [Zork]",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- * (Regression test for bug 9642 Search - missing inaccurate type matches)
- */
-public void testTypeReference26() throws CoreException { // was testInnacurateTypeReference2
-
-	search(
-		"p.Zork", 
-		TYPE, 
-		REFERENCES,
-		SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {
-			getPackageFragment("JSSearch", "src", "b5")
-		}), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/b5/A.java b5.A.{} [Zork]\n" +
-		"src/b5/A.java b5.A.{} [Zork]\n" +
-		"src/b5/A.java b5.A.{} [Zork]",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- * (Regression test for bug 21485  NPE when doing a reference search to a package)
- */
-public void testTypeReference27() throws CoreException { // was testInnacurateTypeReference3
-	IType type = getCompilationUnit("JSSearch", "src", "r3", "A21485.js").getType("A21485");
-
-	resultCollector.showAccuracy = true;
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/r4/B21485.java [r3.A21485] EXACT_MATCH\n" +
-		"src/r4/B21485.java r4.B21485 [A21485] POTENTIAL_MATCH",
-		this.resultCollector);
-}
-/**
- * Type reference in cast test.
- * (regression test for bug 23329 search: incorrect range for type references in brackets)
- */
-public void testTypeReference28() throws CoreException { // was testTypeReferenceInCast
-	IType type = getCompilationUnit("JSSearch", "src", "s3", "A.js").getType("B");
-
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/s3/A.java Object s3.A.foo() [B]",
-		this.resultCollector);
-}
-/**
- * Test pattern match type reference in binary
- * (regression test for bug 24741 Search does not find patterned type reference in binary project  )
- */
-public void testTypeReference29() throws CoreException { // was testPatternMatchTypeReference
-
-	search(
-		"p24741.*", 
-		TYPE,
-		REFERENCES,
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"test24741.jar q24741.B", 
-		this.resultCollector);
-}
-/**
- * Type reference test (not case sensitive)
- */
-public void testTypeReference30() throws CoreException { // was testTypeReferenceNotCaseSensitive
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "d4");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {pkg});
-	SearchPattern pattern = createPattern("Y", TYPE, REFERENCES, false);
-
-	search(
-		pattern, 
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/d4/X.java Object d4.X.foo() [Y]",
-		this.resultCollector);
-}
-/**
- * Type reference test.
- */
-public void testTypeReference31() throws CoreException { // was testAccurateTypeReference
-
-	search(
-		"d5.X", 
-		TYPE, 
-		REFERENCES,
-		SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {
-			getPackageFragment("JSSearch", "src", "d5")
-		}), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/d5/Y.java d5.Y.T [d5.X]\n" +
-		"src/d5/Y.java d5.Y.c [d5.X]\n" +
-		"src/d5/Y.java d5.Y.o [d5.X]",
-		this.resultCollector);
-}
-/**
- * Type reference in hierarchy test.
- * (regression test for bug 28236 Search for refs to class in hierarchy matches class outside hierarchy )
- */
-public void testTypeReference32() throws CoreException { // was testTypeReferenceInHierarchy
-	IType type = getCompilationUnit("JSSearch", "src", "d9.p1", "A.js").getType("A");
-
-	IJavaScriptSearchScope scope = SearchEngine.createHierarchyScope(type);
-	search(
-		type, 
-		REFERENCES, 
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"",
-		this.resultCollector);
-}
-/**
- * Type reference with recovery test.
- * (Regression test for bug 29366 Search reporting invalid inaccurate match )
- */
-public void testTypeReference33() throws CoreException { // was testTypeReferenceWithRecovery
-	IType type = getCompilationUnit("JSSearch", "src", "e1", "A29366.js").getType("A29366");
-
-	resultCollector.showAccuracy = true;
-	search(
-		type, 
-		REFERENCES, 
-		getJavaSearchScope(), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/e1/A29366.java void e1.A29366.foo() [A29366] EXACT_MATCH",
-		this.resultCollector);
-}
-/**
- * Type reference with problem test.
- * (Regression test for bug 36479 Rename operation during refactoring fails)
- */
-public void testTypeReference34() throws CoreException { // was testTypeReferenceWithProblem
-	IType type = getCompilationUnit("JSSearch", "src", "e6", "A.js").getType("A");
-
-	resultCollector.showAccuracy = true;
-	search(
-		"B36479", 
-		TYPE,
-		REFERENCES, 
-		SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {type}), 
-		this.resultCollector);
-	assertSearchResults(
-		"src/e6/A.java Object e6.A.foo() [B36479] POTENTIAL_MATCH",
-		this.resultCollector);
-}
-/**
- * Type reference with corrupt jar on the classpath test.
- * (Regression test for bug 39831 Search finds only "inexact" matches)
- */
-public void testTypeReference35() throws CoreException { // was testTypeReferenceWithCorruptJar
-	IJavaScriptProject project = getJavaProject("JSSearch");
-	IIncludePathEntry[] originalCP = project.getRawIncludepath();
-	try {
-		// add corrupt.jar to classpath
-		int cpLength = originalCP.length;
-		IIncludePathEntry[] newCP = new IIncludePathEntry[cpLength+1];
-		System.arraycopy(originalCP, 0, newCP, 0, cpLength);
-		newCP[cpLength] = JavaScriptCore.newLibraryEntry(new Path("/JavaSearch/corrupt.jar"), null, null);
-		project.setRawIncludepath(newCP, null);
-		
-		IType type = getCompilationUnit("JSSearch", "src", "e7", "A.js").getType("A");
-
-		resultCollector.showAccuracy = true;
-		search(
-			type, 
-			REFERENCES,
-			SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project}), 
-			this.resultCollector);
-		assertSearchResults(
-			"src/e7/A.java e7.A.a [A] EXACT_MATCH",
-			this.resultCollector);
-	} finally {
-		project.setRawIncludepath(originalCP, null);
-	}
-}
-/*
- * Local type reference test.
- */
-public void testTypeReference36() throws CoreException { // was testLocalTypeReference1
-	IPackageFragment pkg = getPackageFragment("JSSearch", "src", "f2");
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {pkg});
-
-	resultCollector.showContext = true;
-	search(
-		"Y", 
-		TYPE,
-		REFERENCES,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f2/X.java Object f2.X.foo1() [		return new <Y>();]",
-		this.resultCollector);
-}
-/*
- * Local type reference test.
- */
-public void testTypeReference37() throws CoreException { // was testLocalTypeReference2
-	IType type = getCompilationUnit("JavaSearch/src/f2/X.js").getType("X");
-	IFunction method = type.getFunction("foo1", new String[0]);
-	IType localType = method.getType("Y", 1);
-	
-	IJavaScriptSearchScope scope = SearchEngine.createWorkspaceScope();
-
-	resultCollector.showContext = true;
-	search(
-		localType, 
-		REFERENCES,
-		scope, 
-		this.resultCollector);
-	assertSearchResults(
-		"src/f2/X.java Object f2.X.foo1() [		return new <Y>();]",
-		this.resultCollector);
-}
-/**
- * Type reference inside/outside doc comment.
- */
-public void testTypeReference38() throws CoreException { // was testTypeReferenceInOutDocComment
-	IType type = getCompilationUnit("JSSearch", "src", "s4", "X.js").getType("X");
-	resultCollector.showInsideDoc = true;
-	search(type, REFERENCES, getJavaSearchScope(), this.resultCollector);
-	assertSearchResults(
-		"src/s4/X.java void s4.X.bar() [X] INSIDE_JAVADOC\n" + 
-		"src/s4/X.java void s4.X.bar() [X] INSIDE_JAVADOC\n" + 
-		"src/s4/X.java void s4.X.bar() [X] INSIDE_JAVADOC\n" + 
-		"src/s4/X.java void s4.X.fred() [X] OUTSIDE_JAVADOC",
-		this.resultCollector);
-}
-
-/**
- * Search for enumerations
- */
-public void testEnum01() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "e1", "Team.js").getType("Team");
-	search(type, REFERENCES, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/a1/Author.java [e1.Team]\n" + 
-		"src/a1/Author.java [e1.Team]\n" + 
-		"src/a1/Author.java Team[] a1.Author.name() [Team]\n" + 
-		"src/a1/Test.java [e1.Team]\n" + 
-		"src/e1/Test.java void e1.Test.main(String[]) [Team]\n" + 
-		"src/e1/Test.java void e1.Test.main(String[]) [Team]\n" + 
-		"src/e1/Test.java Location e1.Test.location(Team) [Team]",
-		this.resultCollector);
-}
-public void testEnum02() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "e1", "Team.js").getType("Team");
-	IFunction method = type.getFunction("Team", new String[0]);
-	search(method, REFERENCES, getJavaSearchScope15("e1", false), this.resultCollector);
-	assertSearchResults(
-		"src/e1/Team.java e1.Team.FREDERIC [FREDERIC]",
-		this.resultCollector);
-}
-public void testEnum03() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "e1", "Team.js").getType("Team");
-	IFunction method = type.getFunction("Team", new String[] { "I" });
-	search(method, REFERENCES, getJavaSearchScope15("e1", false), this.resultCollector);
-	assertSearchResults(
-		"src/e1/Team.java e1.Team.PHILIPPE [PHILIPPE(37)]\n" + 
-		"src/e1/Team.java e1.Team.DAVID [DAVID(27)]\n" + 
-		"src/e1/Team.java e1.Team.JEROME [JEROME(33)]\n" + 
-		"src/e1/Team.java e1.Team.OLIVIER [OLIVIER(35)]\n" + 
-		"src/e1/Team.java e1.Team.KENT [KENT(40)]",
-		this.resultCollector);
-}
-public void testEnum04() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "e1", "Team.js").getType("Team");
-	IFunction method = type.getFunction("age", new String[0]);
-	search(method, REFERENCES, getJavaSearchScope15("e1", false), this.resultCollector);
-	assertSearchResults(
-		"src/e1/Test.java void e1.Test.main(String[]) [age()]",
-		this.resultCollector);
-}
-public void testEnum05() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "e1", "Team.js").getType("Team");
-	IFunction method = type.getFunction("isManager", new String[0]);
-	search(method, ALL_OCCURRENCES, getJavaSearchScope15("e1", false), this.resultCollector);
-	assertSearchResults(
-		"src/e1/Team.java boolean e1.Team.PHILIPPE:<anonymous>#1.isManager() [isManager]\n" + 
-		"src/e1/Team.java boolean e1.Team.isManager() [isManager]\n" + 
-		"src/e1/Test.java void e1.Test.main(String[]) [isManager()]",
-		this.resultCollector);
-}
-public void testEnum06() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "e1", "Team.js").getType("Team");
-	IFunction method = type.getFunction("setRole", new String[] { "Z" });
-	search(method, REFERENCES, getJavaSearchScope15("e1", false), this.resultCollector);
-	assertSearchResults(
-		"src/e1/Test.java void e1.Test.main(String[]) [setRole(t.isManager())]",
-		this.resultCollector);
-}
-/**
- * Search method with varargs
- */
-public void testVarargs01() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "v1", "X.js").getType("X");
-	IFunction method = type.getFunction("vargs", new String[] { "I", "I" });
-	search(method, ALL_OCCURRENCES, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/v1/X.java void v1.X.vargs(int, int) [vargs]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(1, 2)]",
-		this.resultCollector);
-}
-public void testVarargs02() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "v1", "X.js").getType("X");
-	IFunction method = type.getFunction("vargs", new String[] { "I", "[I" });
-	search(method, ALL_OCCURRENCES, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/v1/X.java void v1.X.vargs(int, int ...) [vargs]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(1, 2, 3)]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(1, 2, 3, 4, 5, 6)]",
-		this.resultCollector);
-}
-public void testVarargs03() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "v1", "X.js").getType("X");
-	IFunction method = type.getFunction("vargs", new String[] { "[QString;" });
-	search(method, ALL_OCCURRENCES, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/v1/X.java void v1.X.vargs(String ...) [vargs]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(\"x\", \"a\",\"'b\", \"c\")]",
-		this.resultCollector);
-}
-public void testVarargs04() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "v1", "X.js").getType("X");
-	IFunction method = type.getFunction("vargs", new String[] { "QString;", "[Z" });
-	search(method, ALL_OCCURRENCES, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/v1/X.java void v1.X.vargs(String, boolean ...) [vargs]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(\"x\", false, true)]",
-		this.resultCollector);
-}
-public void testVarargs05() throws CoreException {
-	search("vargs", METHOD, DECLARATIONS, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/v1/X.java void v1.X.vargs(int, int) [vargs]\n" + 
-		"src/v1/X.java void v1.X.vargs(int, int ...) [vargs]\n" + 
-		"src/v1/X.java void v1.X.vargs(String ...) [vargs]\n" + 
-		"src/v1/X.java void v1.X.vargs(String, boolean ...) [vargs]",
-		this.resultCollector);
-}
-public void testVarargs06() throws CoreException {
-	search("vargs", METHOD, REFERENCES, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/v1/X.java void v1.X.bar() [vargs(1, 2)]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(1, 2, 3)]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(1, 2, 3, 4, 5, 6)]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(\"x\", \"a\",\"\'b\", \"c\")]\n" + 
-		"src/v1/X.java void v1.X.bar() [vargs(\"x\", false, true)]",
-		this.resultCollector);
-}
-/**
- * Search for annotations
- */
-public void testAnnotationType01() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "a1", "Author.js").getType("Author");
-	search(type, REFERENCES, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/a1/Test.java a1.Test [Author]\n" + 
-		"src/a1/Test.java a1.Test.t [Author]\n" + 
-		"src/a1/Test.java void a1.Test.foo() [Author]",
-		this.resultCollector);
-}
-public void testAnnotationType02() throws CoreException {
-	IJavaScriptUnit unit = getCompilationUnit("JavaSearch15", "src", "a1", "Test.js");
-	IType type = selectType(unit, "Author");
-	search(type, DECLARATIONS, getJavaSearchScope15(), this.resultCollector);
-	assertSearchResults(
-		"src/a1/Author.java a1.Author [Author]",
-		this.resultCollector);
-}
-
-/**
- * Search for auto-boxing
- */
-public void testAutoBoxing01() throws CoreException {
-	workingCopies = new IJavaScriptUnit[1];
-	workingCopies[0] = getWorkingCopy("/JavaSearch15/src/p/X.js",
-		"package p;\n" + 
-		"public class X {\n" + 
-		"	void foo(int x) {}\n" + 
-		"	void bar() {\n" + 
-		"		foo(new Integer(0));\n" + 
-		"	}\n" + 
-		"}\n"
-		);
-	IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(workingCopies);
-	IFunction method = workingCopies[0].getType("X").getFunction("foo", new String[] { "I" });
-	search(method, REFERENCES, scope);
-	assertSearchResults(
-		"src/p/X.java void p.X.bar() [foo(new Integer(0))]"
-	);
-}
-
-/**
- * Test static import
- */
-// for fields
-public void testStaticImportField01() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "s1.pack.age", "S.js").getType("S");
-	search(type, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s1/A.java [s1.pack.age.S]\n" + 
-		"src/s1/A.java [s1.pack.age.S]\n" + 
-		"src/s1/A.java [s1.pack.age.S]\n" + 
-		"src/s1/B.java [s1.pack.age.S]\n" + 
-		"src/s1/B.java [s1.pack.age.S]\n" + 
-		"src/s1/C.java [s1.pack.age.S]\n" + 
-		"src/s1/C.java [s1.pack.age.S]\n" + 
-		"src/s1/D.java [s1.pack.age.S]"
-	);
-}
-public void testStaticImportField02() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "s1.pack.age", "S.js").getType("S");
-	IField field = type.getField("out");
-	search(field, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s1/A.java [out]\n" + 
-		"src/s1/B.java void s1.B.foo() [out]\n" + 
-		"src/s1/C.java [out]\n" + 
-		"src/s1/C.java void s1.C.foo() [out]"
-	);
-}
-public void testStaticImportField03() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "s1.pack.age", "S.js").getType("S");
-	IType member = type.getType("M");
-	search(member, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s1/A.java [s1.pack.age.S.M]\n" + 
-		"src/s1/B.java [s1.pack.age.S.M]\n" + 
-		"src/s1/C.java [s1.pack.age.S.M]\n" + 
-		"src/s1/D.java [s1.pack.age.S.M]\n" + 
-		"src/s1/D.java void s1.D.foo() [M]\n" + 
-		"src/s1/D.java void s1.D.foo() [M]"
-	);
-}
-public void testStaticImportField04() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "s1.pack.age", "S.js").getType("S");
-	IType member = type.getType("M");
-	IField field = member.getField("in");
-	search(field, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s1/A.java [in]\n" + 
-		"src/s1/B.java void s1.B.foo() [in]\n" + 
-		"src/s1/C.java [in]\n" + 
-		"src/s1/C.java void s1.C.foo() [in]\n" + 
-		"src/s1/D.java void s1.D.foo() [in]"
-	);
-}
-// for methods
-public void testStaticImportMethod01() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "s2.pack.age", "S.js").getType("S");
-	search(type, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s2/A.java [s2.pack.age.S]\n" + 
-		"src/s2/A.java [s2.pack.age.S]\n" + 
-		"src/s2/A.java [s2.pack.age.S]\n" + 
-		"src/s2/B.java [s2.pack.age.S]\n" + 
-		"src/s2/B.java [s2.pack.age.S]\n" + 
-		"src/s2/C.java [s2.pack.age.S]\n" + 
-		"src/s2/C.java [s2.pack.age.S]\n" + 
-		"src/s2/D.java [s2.pack.age.S]"
-	);
-}
-public void testStaticImportMethod02() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "s2.pack.age", "S.js").getType("S");
-	IFunction method = type.getFunction("out", new String[0]);
-	search(method, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s2/A.java [s2.pack.age.S.out]\n" + 
-		"src/s2/B.java void s2.B.foo() [out()]\n" + 
-		"src/s2/C.java [s2.pack.age.S.out]\n" + 
-		"src/s2/C.java void s2.C.foo() [out()]"
-	);
-}
-public void testStaticImportMethod03() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "s2.pack.age", "S.js").getType("S");
-	IType member = type.getType("M");
-	search(member, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s2/A.java [s2.pack.age.S.M]\n" + 
-		"src/s2/B.java [s2.pack.age.S.M]\n" + 
-		"src/s2/C.java [s2.pack.age.S.M]\n" + 
-		"src/s2/D.java [s2.pack.age.S.M]\n" + 
-		"src/s2/D.java void s2.D.foo() [M]\n" + 
-		"src/s2/D.java void s2.D.foo() [M]"
-	);
-}
-public void testStaticImportMethod04() throws CoreException {
-	IType type = getCompilationUnit("JavaSearch15", "src", "s2.pack.age", "S.js").getType("S");
-	IType member = type.getType("M");
-	IFunction method = member.getFunction("in", new String[0]);
-	search(method, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s2/A.java [s2.pack.age.S.M.in]\n" + 
-		"src/s2/B.java void s2.B.foo() [in()]\n" + 
-		"src/s2/C.java [s2.pack.age.S.M.in]\n" + 
-		"src/s2/C.java void s2.C.foo() [in()]\n" + 
-		"src/s2/D.java void s2.D.foo() [in()]"
-	);
-}
-// for packages
-public void testStaticImportPackage01() throws CoreException {
-	IPackageFragment pkg = getPackageFragment("JavaSearch15", "src", "s1.pack.age");
-	search(pkg, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s1/A.java [s1.pack.age]\n" + 
-		"src/s1/A.java [s1.pack.age]\n" + 
-		"src/s1/A.java [s1.pack.age]\n" + 
-		"src/s1/B.java [s1.pack.age]\n" + 
-		"src/s1/B.java [s1.pack.age]\n" + 
-		"src/s1/C.java [s1.pack.age]\n" + 
-		"src/s1/C.java [s1.pack.age]\n" + 
-		"src/s1/D.java [s1.pack.age]"
-	);
-}
-public void testStaticImportPackage02() throws CoreException {
-	IPackageFragment pkg = getPackageFragment("JavaSearch15", "src", "s2.pack.age");
-	search(pkg, REFERENCES, getJavaSearchScope15(), resultCollector);
-	assertSearchResults(
-		"src/s2/A.java [s2.pack.age]\n" + 
-		"src/s2/A.java [s2.pack.age]\n" + 
-		"src/s2/A.java [s2.pack.age]\n" + 
-		"src/s2/B.java [s2.pack.age]\n" + 
-		"src/s2/B.java [s2.pack.age]\n" + 
-		"src/s2/C.java [s2.pack.age]\n" + 
-		"src/s2/C.java [s2.pack.age]\n" + 
-		"src/s2/D.java [s2.pack.age]"
-	);
-}
-
-/**
- * @test Bug 110060: [plan][search] Add support for Camel Case search pattern
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=110060"
- *
- * These tests are not really duplicates of {@link JavaSearchBugsTests} ones
- * as they also test camel case in indexes...
- */
-public void testCamelCaseTypePattern01() throws CoreException {
-	search("RE", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH, getJavaSearchScope());
-	assertSearchResults(
-		"src/a3/References.java a3.References [References]\n" + 
-		""+ getSystemJsPathString() + " java.lang.RuntimeException"
-	);
-}
-
-public void testCamelCaseTypePattern02() throws CoreException {
-	search("RException", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH, getJavaSearchScope());
-	assertSearchResults(
-		""+ getSystemJsPathString() + " java.lang.RuntimeException"
-	);
-}
-
-public void testCamelCaseTypePattern03() throws CoreException {
-	search("RuntimeException", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH, getJavaSearchScope());
-	assertSearchResults(
-		""+ getSystemJsPathString() + " java.lang.RuntimeException"
-	);
-}
-
-public void testCamelCaseTypePattern04() throws CoreException {
-	search("RUNTIMEEXCEPTION", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH, getJavaSearchScope());
-	assertSearchResults(
-		""+ getSystemJsPathString() + " java.lang.RuntimeException"
-	);
-}
-
-public void testCamelCaseTypePattern05() throws CoreException {
-	search("R*E*", TYPE, DECLARATIONS, SearchPattern.R_CAMELCASE_MATCH, getJavaSearchScope());
-	assertSearchResults(
-		"src/a3/References.java a3.References [References]\n" + 
-		""+ getSystemJsPathString() + " java.lang.RuntimeException"
-	);
-}
-
-public void testCamelCaseTypePattern06() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"CNS".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH,
-		TYPE,
-		getJavaSearchScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"java.lang.CloneNotSupportedException",
-		requestor);
-}
-
-public void testCamelCaseTypePattern07() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"AA".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH,
-		TYPE,
-		getJavaSearchScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"AA\n" + 
-		"c9.AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyz\n" + 
-		"d8.AA\n" + 
-		"p6.AA\n" + 
-		"q1.AA",
-		requestor);
-}
-
-public void testCamelCaseTypePattern08() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH,
-		TYPE,
-		getJavaSearchScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"AA\n" + 
-		"d8.AA\n" + 
-		"p6.AA\n" + 
-		"q1.AA",
-		requestor);
-}
-
-public void testCamelCaseTypePattern09() throws CoreException {
-	TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		"aa".toCharArray(),
-		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH,
-		TYPE,
-		getJavaSearchScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null
-	);
-	assertSearchResults(
-		"Unexpected all type names",
-		"AA\n" + 
-		"d8.AA\n" + 
-		"p6.AA\n" + 
-		"q1.AA",
-		requestor);
-}
-
-/**
- * @bug 160323: [search] TypeNameMatch: support hashCode/equals
- * @test Ensure that match equals and hashCode methods return same values than those of stored {@link IType}.
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=160323"
- */
-public void testBug160323() throws CoreException {
-	// Search all type names with TypeNameMatchRequestor
-	TypeNameMatchCollector collector = new TypeNameMatchCollector() {
-		public String toString(){
-			return toFullyQualifiedNamesString();
-		}
-	};
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		getJavaSearchScope(),
-		collector,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Search all type names with TypeNameRequestor
-	SearchTests.SearchTypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-	new SearchEngine().searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PREFIX_MATCH,
-		IJavaScriptSearchConstants.TYPE,
-		getJavaSearchScope(),
-		requestor,
-		IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-		null);
-	// Should have same types with these 2 searches
-	assertEquals("We should get some types!", requestor.size(), collector.size());
-	assertEquals("Found types sounds not to be correct", requestor.toString(), collector.toString());
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocBugsCompletionModelTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocBugsCompletionModelTest.java
deleted file mode 100644
index 9d780d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocBugsCompletionModelTest.java
+++ /dev/null
@@ -1,1061 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.codeassist.CompletionEngine;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-/**
- * Test class for completion in Javadoc comment of a field declaration.
- */
-public class JavadocBugsCompletionModelTest extends AbstractJavadocCompletionModelTest {
-
-public JavadocBugsCompletionModelTest(String name) {
-	super(name);
-	this.tabs = 2;
-}
-
-static {
-//	TESTS_NAMES = new String[] { "testBug22043a" };
-//	TESTS_NUMBERS = new int[] { 118092 };
-}
-public static Test suite() {
-	return buildModelTestSuite(JavadocBugsCompletionModelTest.class);
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavadocCompletionModelTest#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	setUpProjectOptions(CompilerOptions.VERSION_1_4);
-}
-
-/**
- * Bug 3270: [javadoc][assist] Javadoc content assist should show classes after @throws tag (1GDWWV9)
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=3270"
- */
-public void testBug3270() throws JavaScriptModelException {
-	String source =
-		"package javadoc.bugs;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	/**\n" + 
-		"	 * @throws \n" + 
-		"	 */\n" + 
-		"	void foo() throws InterruptedException {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "@throws ", 0); // empty token
-	if (CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertSortedResults(
-			"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICUNREETE+"}"
-		);
-	} else {
-		assertSortedResults(
-			"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICUNREETE+"}\n" + 
-			"BasicTestBugs[TYPE_REF]{BasicTestBugs, javadoc.bugs, Ljavadoc.bugs.BasicTestBugs;, null, null, "+this.positions+R_DICUNR+"}"
-		);
-	}
-}
-public void testBug3270a() throws JavaScriptModelException {
-	String source =
-		"package javadoc.bugs;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	/**\n" + 
-		"	 * @throws I\n" + 
-		"	 */\n" + 
-		"	void foo() throws InterruptedException {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "I");
-	assertSortedResults(
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICUNREEET+"}\n" + 
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICUNRE+"}"
-	);
-}
-public void testBug3270b() throws JavaScriptModelException {
-	String source =
-		"package javadoc.bugs;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	/**\n" + 
-		"	 * @throws Cl\n" + 
-		"	 */\n" + 
-		"	void foo() throws InterruptedException {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "Cl");
-	assertSortedResults(
-		"CloneNotSupportedException[TYPE_REF]{CloneNotSupportedException, java.lang, Ljava.lang.CloneNotSupportedException;, null, null, "+this.positions+R_DICUNRE+"}\n" + 
-		"Class[TYPE_REF]{Class, java.lang, Ljava.lang.Class;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-/**
- * Bug 22043: [javadoc][assist] Code Completion in Javadoc @see/@link doesn't work on partially entered argument types
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=22043"
- */
-public void testBug22043() throws JavaScriptModelException {
-	String source =
-		"package javadoc.bugs;\n" + 
-		"/**\n" + 
-		" * Complete after (S:\n" + 
-		" * 	@see #thisIsAMethod(S\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public void thisIsAMethod(String param) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "S", 2); // 2nd occurence
-	assertSortedResults(
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICUNR+"}\n" +
-		"Serializable[TYPE_REF]{java.io.Serializable, java.io, Ljava.io.Serializable;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"short[KEYWORD]{short, null, null, short, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void testBug22043a() throws JavaScriptModelException {
-	String source =
-		"package javadoc.bugs;\n" + 
-		"/**\n" + 
-		" * Complete after 'thisIsAMethod':\n" + 
-		" * 	@see #thisIsAMethod(S\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public void thisIsAMethod(String param) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "thisIsAMethod", 2); // 2nd occurence
-	assertResults(
-		"thisIsAMethod[FUNCTION_REF]{thisIsAMethod(String), Ljavadoc.bugs.BasicTestBugs;, (Ljava.lang.String;)V, thisIsAMethod, (param), "+this.positions+R_DICENNRNS+"}"
-	);
-}
-
-public void testBug22043b() throws JavaScriptModelException {
-	String source =
-		"package javadoc.bugs;\n" + 
-		"/**\n" + 
-		" * Complete after 'thisIsAMethod(':\n" + 
-		" * 	@see #thisIsAMethod(S\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public void thisIsAMethod(String param) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "thisIsAMethod(", 2); // 2nd occurence
-	assertResults(
-		"thisIsAMethod[FUNCTION_REF]{thisIsAMethod(String), Ljavadoc.bugs.BasicTestBugs;, (Ljava.lang.String;)V, thisIsAMethod, (param), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void testBug22043c() throws JavaScriptModelException {
-	String source =
-		"package javadoc.bugs;\n" + 
-		"/**\n" + 
-		" * Complete after thisIsAMethod(:\n" + 
-		" * 	@see #thisIsAMethod(Object\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public void thisIsAMethod(String param) {}\n" + 
-		"	public void thisIsAMethod(Object str) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "thisIsAMethod(", 2); // 2nd occurence
-	assertResults(
-		"thisIsAMethod[FUNCTION_REF]{thisIsAMethod(Object), Ljavadoc.bugs.BasicTestBugs;, (Ljava.lang.Object;)V, thisIsAMethod, (str), "+this.positions+R_DICENUNR+"}\n" + 
-		"thisIsAMethod[FUNCTION_REF]{thisIsAMethod(String), Ljavadoc.bugs.BasicTestBugs;, (Ljava.lang.String;)V, thisIsAMethod, (param), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-/**
- * Bug 67732: [javadoc][assist] Content assist doesn't work in Javadoc "line breaks"
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=67732"
- */
-public void testBug67732() throws JavaScriptModelException {
-	String source =
-		"package javadoc.bugs;\n" + 
-		"/**\n" + 
-		" * This line approaches the print margin {@link \n" + 
-		" * Object#to\n" + 
-		" */\n" + 
-		"public class T67732 {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "to");
-	assertSortedResults(
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-/**
- * Bug 68757: [javadoc][assist] inconsistent type qualification
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=68757"
- */
-public void testBug68757() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"import javadoc.tests.OtherType;\n" + 
-			"public class BasicTestBugs {\n" + 
-			"	/**\n" + 
-			"	 * @see Other\n" + 
-			"	 */\n" + 
-			"	public void foo(OtherType type) {}\n" + 
-			"}\n",
-		"/Completion/src/javadoc/tests/OtherType.js", 
-			"package javadoc.tests;\n" + 
-			"public class OtherType {\n" + 
-			"}\n"
-	};
-	completeInJavadoc(sources, true, "Other", 2);	// 2nd occurrence
-	assertSortedResults(
-		"OtherType[TYPE_REF]{OtherType, javadoc.tests, Ljavadoc.tests.OtherType;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-public void testBug68757a() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"public class BasicTestBugs {\n" + 
-			"	/**\n" + 
-			"	 * @see Other\n" + 
-			"	 */\n" + 
-			"	public void foo(javadoc.tests.OtherType type) {}\n" + 
-			"}\n",
-		"/Completion/src/javadoc/tests/OtherType.js", 
-			"package javadoc.tests;\n" + 
-			"public class OtherType {\n" + 
-			"}\n"
-	};
-	completeInJavadoc(sources, true, "Other");
-	assertSortedResults(
-		"OtherType[TYPE_REF]{javadoc.tests.OtherType, javadoc.tests, Ljavadoc.tests.OtherType;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-public void testBug68757b() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"public class BasicTestBugs {\n" + 
-			"	/**\n" + 
-			"	 * @see Other\n" + 
-			"	 */\n" + 
-			"	public void foo() {}\n" + 
-			"}\n",
-		"/Completion/src/javadoc/tests/OtherType.js", 
-			"package javadoc.tests;\n" + 
-			"public class OtherType {\n" + 
-			"}\n"
-	};
-	completeInJavadoc(sources, true, "Other");
-	assertSortedResults(
-		"OtherType[TYPE_REF]{javadoc.tests.OtherType, javadoc.tests, Ljavadoc.tests.OtherType;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-/**
- * Bug 75551: [javadoc][assist] javadoc completion for links to method with inner classes as argument is not correct
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=75551"
- * TODO (frederic) fix while fixing bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=96237
- */
-public void _testBug75551() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"public class BasicTestBugs extends SuperClass {\n" + 
-			"  /**\n" + 
-			"   * {@link #kick(Inner\n" + 
-			"   */\n" + 
-			"  public BasicTestBugs() {\n" + 
-			"  }\n" + 
-			"  public void kick(InnerClass innerClass) {}\n" + 
-			"}",
-			"/Completion/src/javadoc/bugs/SuperClass.js", 
-			"package javadoc.bugs;\n" + 
-			"public class SuperClass {\n" + 
-			"  protected static class InnerClass {\n" + 
-			"  }\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "Inner");
-	assertSortedResults(
-		"SuperClass.InnerClass[TYPE_REF]{SuperClass.InnerClass, javadoc.bugs, Ljavadoc.bugs.SuperClass$InnerClass;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-/**
- * Bug 86112: [javadoc][assist] Wrong reference to binary static initializer in javadoc
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=86112"
- */
-public void testBug86112() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"public class BasicTestBugs {\n" + 
-			"  /**\n" + 
-			"   * @see Terminator#\n" + 
-			"   */\n" + 
-			"  public BasicTestBugs() {\n" + 
-			"  }\n" + 
-			"}",
-			"/Completion/src/javadoc/bugs/Terminator.js", 
-			"package javadoc.bugs;\n" + 
-			"public class Terminator {\n" + 
-			"  static {\n" + 
-			"  }\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "#", 0); // empty token
-	assertSortedResults(
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"Terminator[FUNCTION_REF<CONSTRUCTOR>]{Terminator(), Ljavadoc.bugs.Terminator;, ()V, Terminator, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * Bug 87868: [javadoc][assist] Wrong reference to binary static initializer in javadoc
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=87868"
- */
-public void testBug87868() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.bugs;\n" + 
-		"public class BasicTestBugs<S> {\n" + 
-		"	/** \n" + 
-		"	 * Calls {@link #meth\n" + 
-		"	 */\n" + 
-		"	public void method(S s) {}\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "meth");
-	assertSortedResults(
-		"method[FUNCTION_REF]{method(Object), Ljavadoc.bugs.BasicTestBugs<TS;>;, (TS;)V, method, (s), "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-/**
- * Bug 113374: [javadoc][assist] do not propose anything if the prefix is preceded by a special character
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=113374"
- */
-public void testBug113374a() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.bugs;\n" + 
-		"/** \n" + 
-		" * <co\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "co");
-	assertSortedResults("");
-}
-public void testBug113374b() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.bugs;\n" + 
-		"/** \n" + 
-		" * &un\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/bugs/BasicTestBugs.js", source, true, "un");
-	assertSortedResults("");
-}
-
-/**
- * Bug 113376: [javadoc][assist] wrong overwrite range on completion followed by a tag
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=113376"
- */
-public void testBug113376a() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestFields.js",
-			"package javadoc.bugs;\n" + 
-			"/**\n" + 
-			" * @see javadoc.util.Collection\n" + 
-			" * @see javadoc.util.List#add(Object)\n" + 
-			" */public class BasicTestBugs<A> {\n" + 
-			"}",
-		"/Completion/src/javadoc/util/Collection.js",
-			"package javadoc.util;\n" + 
-			"public interface Collection<E> {}\n" + 
-			"public interface List<E> {}\n" + 
-			"	public void add(E e);\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "javadoc.util.Collection");
-	assertSortedResults(
-		"Collection[TYPE_REF]{javadoc.util.Collection, javadoc.util, Ljavadoc.util.Collection;, null, null, "+this.positions+R_DICENQNR+"}"
-	);
-}
-public void testBug113376b() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestFields.js",
-			"package javadoc.bugs;\n" + 
-			"/**\n" + 
-			" * {@link String.}\n" + 
-			" * \n" + 
-			" * @see javadoc.util.Collection\n" + 
-			" * @see javadoc.util.List#add(Object)\n" + 
-			" */public class BasicTestBugs<A> {\n" + 
-			"}",
-		"/Completion/src/javadoc/util/Collection.js",
-			"package javadoc.util;\n" + 
-			"public interface Collection<E> {}\n" + 
-			"public interface List<E> {}\n" + 
-			"	public void add(E e);\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "String.", 0); // empty token
-	assertSortedResults("");
-}
-
-/**
- * Bug 114341: [javadoc][assist] range of the qualified type completion in javadoc text isn't corect
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=114341"
- */
-public void testBug114341a() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"  /**\n" + 
-		"   * Secondary.Mem\n" + 
-		"   */\n" + 
-		"  void foo() {}\n" + 
-		"}\n" + 
-		"class Secondary {\n" + 
-		"  class Member {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "Secondary.Mem");
-	assertSortedResults(
-		"Secondary.Member[JSDOC_TYPE_REF]{{@link Member}, javadoc.text, Ljavadoc.text.Secondary$Member;, null, null, "+this.positions+R_DICNRIT+"}\n" + 
-		"Secondary.Member[TYPE_REF]{Member, javadoc.text, Ljavadoc.text.Secondary$Member;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void testBug114341b() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"  /**\n" + 
-		"   * @see Secondary.Mem\n" + 
-		"   */\n" + 
-		"  void foo() {}\n" + 
-		"}\n" + 
-		"class Secondary {\n" + 
-		"  class Member {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "Mem");
-	assertSortedResults(
-		"Secondary.Member[TYPE_REF]{Member, javadoc.text, Ljavadoc.text.Secondary$Member;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void testBug114341c() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"  /**\n" + 
-		"   * {@link Secondary.Mem }\n" + 
-		"   */\n" + 
-		"  void foo() {}\n" + 
-		"}\n" + 
-		"class Secondary {\n" + 
-		"  class Member {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "Mem");
-	assertSortedResults(
-		"Secondary.Member[TYPE_REF]{Member, javadoc.text, Ljavadoc.text.Secondary$Member;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-public void testBug114341d() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"  /**\n" + 
-		"   * javadoc.text.Secondary.Mem\n" + 
-		"   */\n" + 
-		"  void foo() {}\n" + 
-		"}\n" + 
-		"class Secondary {\n" + 
-		"  class Member {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "javadoc.text.Secondary.Mem");
-	assertSortedResults(
-		"Secondary.Member[JSDOC_TYPE_REF]{{@link Member}, javadoc.text, Ljavadoc.text.Secondary$Member;, null, null, "+this.positions+R_DICNRIT+"}\n" + 
-		"Secondary.Member[TYPE_REF]{Member, javadoc.text, Ljavadoc.text.Secondary$Member;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void testBug114341e() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"  /**\n" + 
-		"   * @see javadoc.text.Secondary.Mem\n" + 
-		"   */\n" + 
-		"  void foo() {}\n" + 
-		"}\n" + 
-		"class Secondary {\n" + 
-		"  class Member {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "Mem");
-	assertSortedResults(
-		"Secondary.Member[TYPE_REF]{Member, javadoc.text, Ljavadoc.text.Secondary$Member;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void testBug114341f() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"  /**\n" + 
-		"   * {@link javadoc.text.Secondary.Mem }\n" + 
-		"   */\n" + 
-		"  void foo() {}\n" + 
-		"}\n" + 
-		"class Secondary {\n" + 
-		"  class Member {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "Mem");
-	assertSortedResults(
-		"Secondary.Member[TYPE_REF]{Member, javadoc.text, Ljavadoc.text.Secondary$Member;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-/**
- * Bug 115662: [javadoc][assist] link completion in types
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=115662"
- */
-public void testBug115662a() throws JavaScriptModelException {
-	String source =
-		"package bugs.b115662;\n" + 
-		"/**\n" + 
-		" * {@link #to\n" + 
-		" */\n" + 
-		"public class Tests {\n" + 
-		"	int toto;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b115662/Test.js", source, true, "to");
-	assertSortedResults(
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toto[FIELD_REF]{toto, Lbugs.b115662.Tests;, I, toto, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void testBug115662b() throws JavaScriptModelException {
-	String source =
-		"package bugs.b115662;\n" + 
-		"/**\n" + 
-		" * {@link #toString()\n" + 
-		" */\n" + 
-		"public class Tests {\n" + 
-		"	int toto;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b115662/Test.js", source, true, "to");
-	assertSortedResults(
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toto[FIELD_REF]{toto, Lbugs.b115662.Tests;, I, toto, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void testBug115662c() throws JavaScriptModelException {
-	String source =
-		"package bugs.b115662;\n" + 
-		"/**\n" + 
-		" * {@link #toString()\n" + 
-		" */\n" + 
-		"public class Test {\n" + 
-		"	int toto;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b115662/Test.js", source, true, "toString");
-	assertSortedResults(
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICENNRNS+"}"
-	);
-}
-
-/**
- * Bug 117183: [javadoc][assist] No completion in text when cursor location is followed by a '.'
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=117183"
- */
-public void testBug117183a() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"/**\n" + 
-			" * Completion inside reference Reference#A_STATIC_FIELD.\n" + 
-			" * Try to complete wherever inside A_STATIC_FIELD gives no proposal!\n" + 
-			" */\n" + 
-			"public class BasicTestBugs {\n" + 
-			"}\n",
-		"/Completion/src/javadoc/bugs/Reference.js", 
-			"package javadoc.bugs;\n" + 
-			"public class Reference {\n" + 
-			"	public static int A_STATIC_FIELD = 0;\n" + 
-			"}\n"
-	};
-	completeInJavadoc(sources, true, "Reference#A_");
-	assertSortedResults(
-		"A_STATIC_FIELD[JSDOC_FIELD_REF]{{@link Reference#A_STATIC_FIELD}, Ljavadoc.bugs.Reference;, I, A_STATIC_FIELD, null, "+this.positions+R_DICNRIT+"}\n" + 
-		"A_STATIC_FIELD[JSDOC_VALUE_REF]{{@value Reference#A_STATIC_FIELD}, Ljavadoc.bugs.Reference;, I, A_STATIC_FIELD, null, "+this.positions+R_DICNRIT+"}"
-	);
-}
-public void testBug117183b() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"/**\n" + 
-			" * Completion inside reference Reference#A_STATIC_FIELD.\n" + 
-			" * Try to complete wherever inside A_STATIC_FIELD gives no proposal!\n" + 
-			" */\n" + 
-			"public class BasicTestBugs {\n" + 
-			"}\n",
-		"/Completion/src/javadoc/bugs/Reference.js", 
-			"package javadoc.bugs;\n" + 
-			"public class Reference {\n" + 
-			"	public static int A_STATIC_FIELD = 0;\n" + 
-			"}\n"
-	};
-	completeInJavadoc(sources, true, "Reference#A_STATIC_FIELD");
-	assertSortedResults(
-		"A_STATIC_FIELD[JSDOC_FIELD_REF]{{@link Reference#A_STATIC_FIELD}, Ljavadoc.bugs.Reference;, I, A_STATIC_FIELD, null, "+this.positions+R_DICENNRIT+"}\n" + 
-		"A_STATIC_FIELD[JSDOC_VALUE_REF]{{@value Reference#A_STATIC_FIELD}, Ljavadoc.bugs.Reference;, I, A_STATIC_FIELD, null, "+this.positions+R_DICENNRIT+"}"
-	);
-}
-public void testBug117183c() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"/**\n" + 
-			" * Completion after Obj|\n" + 
-			" */\n" + 
-			"class BasicTestBugs {\n" + 
-			"}\n"
-	};
-	completeInJavadoc(sources, true, "Obj");
-	assertSortedResults(
-		"Object[JSDOC_TYPE_REF]{{@link Object}, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNRIT+"}\n" + 
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-public void testBug117183d() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/bugs/BasicTestBugs.js", 
-			"package javadoc.bugs;\n" + 
-			"/**\n" + 
-			" * Completion after Str.\n" + 
-			" */\n" + 
-			"class BasicTestBugs {\n" + 
-			"}\n"
-	};
-	completeInJavadoc(sources, true, "Str");
-	assertSortedResults(
-		"String[JSDOC_TYPE_REF]{{@link String}, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICUNRIT+"}\n" + 
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-/**
- * Bug 118105: [javadoc][assist] Hang with 100% CPU during code assist on comment
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=118105"
- */
-public void testBug118105() throws JavaScriptModelException {
-	String source =
-		"package bugs.b118105;\n" + 
-		"/**\n" + 
-		" * Some words here {@link Str.\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b118105/BasicTestBugs.js", source, true, "Str");
-	assertSortedResults(
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-/**
- * Bug 118092: [javadoc][assist] Eclipse hangs on code assist when writing \u00B8<c
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=118092"
- */
-public void testBug118092() throws JavaScriptModelException {
-	String source =
-		"package bugs.b118092;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"   /**\n" + 
-		"    * \u00B8<c\n" + 
-		"    */\n" + 
-		"   public void method() {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b118092/BasicTestBugs.js", source, true, "<c");
-	// expect no result, just not hang...
-	assertSortedResults("");
-}
-
-/**
- * Bug 118311: [javadoc][assist] type \@ in javadoc comment and code assist == hang
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=118311"
- */
-public void testBug118311() throws JavaScriptModelException {
-	String source =
-		"package bugs.b118311;\n" + 
-		"/**\n" + 
-		" * Text \\@\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b118311/BasicTestBugs.js", source, true, "@");
-	assertSortedResults(
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * Bug 118397: [javadoc][assist] type \@ in javadoc comment and code assist == hang
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=118397"
- */
-public void testBug118397a() throws JavaScriptModelException {
-	String source =
-		"package bugs.b118397;\n" + 
-		"/**\n" + 
-		" * @see bugs.b118.BasicTestBugs\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b118397/BasicTestBugs.js", source, true, "bugs.b118", 2); // 2nd occurence
-	assertSortedResults(
-		"bugs.b118397[PACKAGE_REF]{bugs.b118397, bugs.b118397, null, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-public void testBug118397b() throws JavaScriptModelException {
-	String source =
-		"package bugs.b118397;\n" + 
-		"/**\n" + 
-		" * @see Basic.Inner\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	class Inner {\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b118397/BasicTestBugs.js", source, true, "Basic");
-	assertSortedResults(
-		"BasicTestBugs[TYPE_REF]{BasicTestBugs, bugs.b118397, Lbugs.b118397.BasicTestBugs;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"BasicTestReferences[TYPE_REF]{org.eclipse.wst.jsdt.core.tests.BasicTestReferences, org.eclipse.wst.jsdt.core.tests, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-public void testBug118397c() throws JavaScriptModelException {
-	String source =
-		"package bugs.b118397;\n" + 
-		"/**\n" + 
-		" * @see BasicTestBugs.In.Level2\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	class Inner {\n" + 
-		"		class Level2 {\n" + 
-		"			class Level3 {\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b118397/BasicTestBugs.js", source, true, "In");
-	assertSortedResults(
-		"BasicTestBugs.Inner[TYPE_REF]{Inner, bugs.b118397, Lbugs.b118397.BasicTestBugs$Inner;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-public void testBug118397d() throws JavaScriptModelException {
-	String source =
-		"package bugs.b118397;\n" + 
-		"/**\n" + 
-		" * @see BasicTestBugs.Inner.Lev.Level3\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	class Inner {\n" + 
-		"		class Level2 {\n" + 
-		"			class Level3 {\n" + 
-		"			}\n" + 
-		"		}\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b118397/BasicTestBugs.js", source, true, "Lev");
-	assertSortedResults(
-		"BasicTestBugs.Inner.Level2[TYPE_REF]{Level2, bugs.b118397, Lbugs.b118397.BasicTestBugs$Inner$Level2;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-/**
- * @bug 139621: [javadoc][assist] No Javadoc completions if there's no member below
- * @test Ensure that completion happens in an orphan javadoc (ie. a javadoc comment not attached to a declaration
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=139621"
- */
-public void testBug139621a() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	/**\n" + 
-		"	 * Test with only an orphan comment in type declaration\n" + 
-		"	 * @see Obj\n" + 
-		"	 */\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "Obj");
-	assertSortedResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-public void testBug139621b() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"/**\n" + 
-		" * Test with an existing javadoc type declaration\n" + 
-		" * @see Test\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	/**\n" + 
-		"	 * Test with only an orphan comment in type declaration\n" + 
-		"	 * @see Obj\n" + 
-		"	 */\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "Obj");
-	assertSortedResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-public void testBug139621c() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	/**\n" + 
-		"	 * Test with only an orphan comment in type declaration\n" +
-		"	 * (completion for tags)\n" + 
-		"	 * @\n" + 
-		"	 */\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "@");
-	assertSortedResults(
-		"author[JSDOC_BLOCK_TAG]{@author, null, null, author, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"exception[JSDOC_BLOCK_TAG]{@exception, null, null, exception, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"param[JSDOC_BLOCK_TAG]{@param, null, null, param, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"return[JSDOC_BLOCK_TAG]{@return, null, null, return, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialData[JSDOC_BLOCK_TAG]{@serialData, null, null, serialData, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialField[JSDOC_BLOCK_TAG]{@serialField, null, null, serialField, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"throws[JSDOC_BLOCK_TAG]{@throws, null, null, throws, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"version[JSDOC_BLOCK_TAG]{@version, null, null, version, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-public void testBug139621d() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	/**\n" + 
-		"	 * Test with only an orphan comment in type declaration\n" +
-		"	 * (variation of completion for tags but considered in text as it's in fact tag start character is after a reference )\n" + 
-		"	 * @see Object" + // missing \n
-		"	 * @\n" + 
-		"	 */\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "@", 2);
-	assertSortedResults(
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-public void testBug139621e() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"/**\n" + 
-		" * Test with orphan comment after a method declaration\n" + 
-		" * @see Test\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public void foo() {}\n" +
-		"	/**\n" + 
-		"	 * This method returns an object\n" + 
-		"	 * @see Obj\n" + 
-		"	 */\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "Obj");
-	assertSortedResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-public void testBug139621f() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"/**\n" + 
-		" * Test with orphan comment after a field declaration\n" + 
-		" * @see Test\n" + 
-		" */\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public int x;\n" +
-		"	/**\n" + 
-		"	 * This method returns an object\n" + 
-		"	 * @see Obj\n" + 
-		"	 */\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "Obj");
-	assertSortedResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-public void testBug139621g() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"/**\n" + 
-		" * Compilation unit without any type\n" + 
-		" * @see Obj\n" + 
-		" */\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "Obj");
-	assertSortedResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-public void testBug139621h() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"/**\n" + 
-		" * Compilation unit without any type\n" + 
-		" * (completion for tags)\n" + 
-		" * @\n" + 
-		" */\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "@");
-	assertSortedResults(
-		"author[JSDOC_BLOCK_TAG]{@author, null, null, author, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"version[JSDOC_BLOCK_TAG]{@version, null, null, version, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-public void testBug139621i() throws JavaScriptModelException {
-	String source =
-		"package bugs.b139621;\n" + 
-		"/**\n" + 
-		" * Compilation unit without any type\n" + 
-		" * (variation of completion for tags but considered in text as it's in fact tag start character is after a reference )\n" + 
-		" * @see Object The root class" +  // missing \n
-		" * @\n" + 
-		" */\n";
-	completeInJavadoc("/Completion/src/bugs/b139621/BasicTestBugs.js", source, true, "@", 2);
-	assertSortedResults(
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * Bug 144866: [assist][javadoc] Wrong completion inside @value tag
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=144866"
- */
-public void testBug144866() throws JavaScriptModelException {
-	String source =
-		"package bugs.b144866;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public static int EXAMPLE = 0;\n" + 
-		"	/**\n" + 
-		"	 * This method returns an object\n" + 
-		"	 * @see Object\n" + 
-		"	 * 	This method will use {@value #EX } constant value...\n" + 
-		"	 */\n" + 
-		"	public void foo() {\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b144866/BasicTestBugs.js", source, true, "EX", 2); // 2nd occurence
-	assertSortedResults(
-		"EXAMPLE[FIELD_REF]{EXAMPLE, Lbugs.b144866.BasicTestBugs;, I, EXAMPLE, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-/**
- * @bug 171016: [javadoc][assist] No completion for tag when uppercase is used
- * @test Ensure that tag is proposed when prefix match a tag case insensitive 
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=171016"
- */
-public void testBug171016() throws JavaScriptModelException {
-	String source =
-		"package bugs.b171016;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public void foo() {}" +
-		"}\n" +
-		"class X extends BasicTestBugs {\n" +
-		"	/**\n" + 
-		"	 * {@In\n" + 
-		"	 */\n" + 
-		"	public void foo() {}" +
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b171016/BasicTestBugs.js", source, true, "{@In", 1);
-	assertSortedResults(
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-public void testBug171016b() throws JavaScriptModelException {
-	String source =
-		"package bugs.b171016;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	public void foo() {}" +
-		"}\n" +
-		"class X extends BasicTestBugs {\n" +
-		"	/**\n" + 
-		"	 * @In\n" + 
-		"	 */\n" + 
-		"	public void foo() {}" +
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b171016/BasicTestBugs.js", source, true, "@In", 1);
-	assertSortedResults(
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @bug 171031: [javadoc][assist] 'inheritDoc' tag is proposed while completing even if the method does not override any
- * @test Ensure that no 'inheritDoc' tag is proposed when method does not override any 
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=171031"
- */
-// TODO (eric) enable when bug will be fixed
-public void _testBug171031() throws JavaScriptModelException {
-	String source =
-		"package bugs.b171031;\n" + 
-		"public class BasicTestBugs {\n" + 
-		"	/**\n" + 
-		"	 * @In+\n" + 
-		"	 */\n" + 
-		"	public void foo() {}" +
-		"}\n";
-	completeInJavadoc("/Completion/src/bugs/b171031/BasicTestBugs.js", source, true, "@In", 1);
-	assertSortedResults(""); // should not have any proposal as 
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocCompletionContextTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocCompletionContextTests.java
deleted file mode 100644
index dcbe70b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocCompletionContextTests.java
+++ /dev/null
@@ -1,1587 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.wst.jsdt.core.*;
-
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-import junit.framework.*;
-
-public class JavadocCompletionContextTests extends AbstractJavaModelCompletionTests implements RelevanceConstants {
-
-public JavadocCompletionContextTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	if (COMPLETION_PROJECT == null)  {
-		COMPLETION_PROJECT = setUpJavaProject("Completion", "1.4");
-	} else {
-		setUpProjectCompliance(COMPLETION_PROJECT, "1.4");
-	}
-	super.setUpSuite();
-}
-
-public void tearDownSuite() throws Exception {
-	super.tearDownSuite();
-}
-public static Test suite() {
-	return buildModelTestSuite(JavadocCompletionContextTests.class);
-}
-public void test0001() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0001/X.js",
-		"package test0001;\n" + 
-		"/**\n" + 
-		" * @see ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0002() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0002/X.js",
-		"package test0002;\n" + 
-		"/**\n" + 
-		" * @see ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0003() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0003/X.js",
-		"package test0003;\n" + 
-		"/**\n" + 
-		" * @see ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0004() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0004/X.js",
-		"package test0004;\n" + 
-		"/**\n" + 
-		" * @see \n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@see ") + "@see ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("@see ") + "@see ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0005() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0005/X.js",
-		"package test0005;\n" + 
-		"/**\n" + 
-		" * @see X.ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0006() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0006/X.js",
-		"package test0006;\n" + 
-		"/**\n" + 
-		" * @see X.ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0007() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0007/X.js",
-		"package test0007;\n" + 
-		"/**\n" + 
-		" * @see X.ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0008() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0008/X.js",
-		"package test0008;\n" + 
-		"/**\n" + 
-		" * @see X.\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("X.") + "X.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("X.") + "X.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0009() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0009/X.js",
-		"package test0009;\n" + 
-		"/**\n" + 
-		" * @see test0009.ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0010() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0010/X.js",
-		"package test0010;\n" + 
-		"/**\n" + 
-		" * @see test0010.ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0011() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0011/X.js",
-		"package test0011;\n" + 
-		"/**\n" + 
-		" * @see test0011.ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0012() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0012/X.js",
-		"package test0012;\n" + 
-		"/**\n" + 
-		" * @see test0012.\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("test0012.") + "test0012.".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("test0012.") + "test0012.".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0013() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0013/X.js",
-		"package test0013;\n" + 
-		"/**\n" + 
-		" * @see #ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0014() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0014/X.js",
-		"package test0014;\n" + 
-		"/**\n" + 
-		" * @see #ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0015() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0015/X.js",
-		"package test0015;\n" + 
-		"/**\n" + 
-		" * @see #ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0016() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0012/X.js",
-		"package test0016;\n" + 
-		"/**\n" + 
-		" * @see #\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("#") + "#".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("#") + "#".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0017() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0017/X.js",
-		"package test0017;\n" + 
-		"/**\n" + 
-		" * @see X#ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0018() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0018/X.js",
-		"package test0018;\n" + 
-		"/**\n" + 
-		" * @see X#ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0019() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0019/X.js",
-		"package test0019;\n" + 
-		"/**\n" + 
-		" * @see X#ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0020() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0020/X.js",
-		"package test0020;\n" + 
-		"/**\n" + 
-		" * @see X#\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("#") + "#".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("#") + "#".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0021() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0021/X.js",
-		"package test0021;\n" + 
-		"/**\n" + 
-		" * @see X#foo(ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0022() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0022/X.js",
-		"package test0022;\n" + 
-		"/**\n" + 
-		" * @see X#foo(ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0023() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0023/X.js",
-		"package test0023;\n" + 
-		"/**\n" + 
-		" * @see X#foo(ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0024() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0024/X.js",
-		"package test0024;\n" + 
-		"/**\n" + 
-		" * @see X#foo(\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("#foo(") + "#foo(".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("#foo(") + "#foo(".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0025() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0025/X.js",
-		"package test0025;\n" + 
-		"/**\n" + 
-		" * @see X#foo(Object ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0026() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0026/X.js",
-		"package test0026;\n" + 
-		"/**\n" + 
-		" * @see X#foo(Object ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0027() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0027/X.js",
-		"package test0027;\n" + 
-		"/**\n" + 
-		" * @see X#foo(Object ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0028() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0028/X.js",
-		"package test0028;\n" + 
-		"/**\n" + 
-		" * @see X#foo(Object \n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("#foo(Object ") + "#foo(Object ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("#foo(Object ") + "#foo(Object ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0029() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0029/X.js",
-		"package test0029;\n" + 
-		"/**\n" + 
-		" * @see X#foo(Object a,ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0030() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0030/X.js",
-		"package test0030;\n" + 
-		"/**\n" + 
-		" * @see X#foo(Object a,ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0031() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0031/X.js",
-		"package test0031;\n" + 
-		"/**\n" + 
-		" * @see X#foo(Object a,ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0032() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0032/X.js",
-		"package test0032;\n" + 
-		"/**\n" + 
-		" * @see X#foo(Object a,\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("#foo(Object a,") + "#foo(Object a,".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("#foo(Object a,") + "#foo(Object a,".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0033() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0033/X.js",
-		"package test0033;\n" + 
-		"/**\n" + 
-		" * @see X#X(ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0034() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0034/X.js",
-		"package test0034;\n" + 
-		"/**\n" + 
-		" * @see X#X(ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0035() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0035/X.js",
-		"package test0035;\n" + 
-		"/**\n" + 
-		" * @see X#X(ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0036() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0036/X.js",
-		"package test0036;\n" + 
-		"/**\n" + 
-		" * @see X#X(\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("#X(") + "#X(".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("#X(") + "#X(".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0037() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0037/X.js",
-		"package test0037;\n" + 
-		"/**\n" + 
-		" * @see X#X(Object ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0038() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0038/X.js",
-		"package test0038;\n" + 
-		"/**\n" + 
-		" * @see X#X(Object ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0039() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0039/X.js",
-		"package test0039;\n" + 
-		"/**\n" + 
-		" * @see X#X(Object ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0040() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0040/X.js",
-		"package test0040;\n" + 
-		"/**\n" + 
-		" * @see X#X(Object \n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("#X(Object ") + "#X(Object ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("#X(Object ") + "#X(Object ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0041() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0041/X.js",
-		"package test0041;\n" + 
-		"/**\n" + 
-		" * @see X#X(Object a,ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0042() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0042/X.js",
-		"package test0042;\n" + 
-		"/**\n" + 
-		" * @see X#X(Object a,ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0043() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0043/X.js",
-		"package test0043;\n" + 
-		"/**\n" + 
-		" * @see X#X(Object a,ZZZZ\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0044() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0044/X.js",
-		"package test0044;\n" + 
-		"/**\n" + 
-		" * @see X#X(Object a,\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"  public X(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("#X(Object a,") + "#X(Object a,".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("#X(Object a,") + "#X(Object a,".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0045() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0045/X.js",
-		"package test0045;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * @param ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0046() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0046/X.js",
-		"package test0046;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * @param ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0047() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0047/X.js",
-		"package test0047;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * @param ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0048() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0048/X.js",
-		"package test0048;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * @param \n" + 
-		"   */\n" + 
-		"  public void foo(Object a, Object b){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@param ") + "@param ".length();
-	int tokenEnd = tokenStart + "".length() - 1;
-	int cursorLocation = str.lastIndexOf("@param ") + "@param ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0049() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0049/X.js",
-		"package test0049;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * @ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@ZZZZ");
-	int tokenEnd = tokenStart + "@ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"@ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0050() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0050/X.js",
-		"package test0050;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * @ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@ZZZZ");
-	int tokenEnd = tokenStart + "@ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"@\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0051() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0051/X.js",
-		"package test0051;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * @ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@ZZZZ");
-	int tokenEnd = tokenStart + "@ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"@ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0052() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0052/X.js",
-		"package test0052;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * @\n" + 
-		"   */\n" + 
-		"  public void foo(){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@");
-	int tokenEnd = tokenStart + "@".length() - 1;
-	int cursorLocation = str.lastIndexOf("@") + "@".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"@\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0053() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0053/X.js",
-		"package test0053;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * blabla @ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@ZZZZ");
-	int tokenEnd = tokenStart + "@ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"@ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0054() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0054/X.js",
-		"package test0054;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * blabla @ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@ZZZZ");
-	int tokenEnd = tokenStart + "@ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ");
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"@\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0055() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0055/X.js",
-		"package test0055;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * blabla @ZZZZ\n" + 
-		"   */\n" + 
-		"  public void foo(){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@ZZZZ");
-	int tokenEnd = tokenStart + "@ZZZZ".length() - 1;
-	int cursorLocation = str.lastIndexOf("ZZZZ") + "ZZ".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"@ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0056() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0056/X.js",
-		"package test0056;\n" + 
-		"public class X {\n" + 
-		"  /**\n" + 
-		"   * blabla @\n" + 
-		"   */\n" + 
-		"  public void foo(){}\n" + 
-		"}");
-	
-	String str = this.workingCopies[0].getSource();
-	int tokenStart = str.lastIndexOf("@");
-	int tokenEnd = tokenStart + "@".length() - 1;
-	int cursorLocation = str.lastIndexOf("@") + "@".length();
-
-	CompletionResult result = contextComplete(this.workingCopies[0], cursorLocation);
-	
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"@\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocFieldCompletionModelTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocFieldCompletionModelTest.java
deleted file mode 100644
index cf00d7b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocFieldCompletionModelTest.java
+++ /dev/null
@@ -1,519 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Hashtable;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-/**
- * Test class for completion in Javadoc comment of a field declaration.
- */
-public class JavadocFieldCompletionModelTest extends AbstractJavadocCompletionModelTest {
-
-public JavadocFieldCompletionModelTest(String name) {
-	super(name);
-}
-
-static {
-//	TESTS_RANGE = new int[] { 22, -1 };
-//	TESTS_NUMBERS = new int[] { 16 };
-}
-public static Test suite() {
-	return buildModelTestSuite(JavadocFieldCompletionModelTest.class);
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelCompletionTests#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	setUpProjectOptions(CompilerOptions.VERSION_1_4); // default compliance
-}
-
-/**
- * @category Tests for tag names completion
- */
-public void test001() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields;\n" +
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on empty tag name:\n" +
-		"	 * 	@\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/Test.js", source, true, "@");
-	assertResults(
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialField[JSDOC_BLOCK_TAG]{@serialField, null, null, serialField, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test002() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields;\n" +
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on impossible tag name:\n" +
-		"	 * 	@thr\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/Test.js", source, true, "@thr");
-	assertResults("");
-}
-
-public void test003() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields;\n" +
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on one letter:\n" +
-		"	 * 	@v\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/Test.js", source, true, "@v");
-	assertResults(
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test004() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields;\n" +
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion with several letters:\n" +
-		"	 * 	@ser\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/Test.js", source, true, "@ser");
-	assertResults(
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialField[JSDOC_BLOCK_TAG]{@serialField, null, null, serialField, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test005() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields;\n" +
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on full tag name:\n" +
-		"	 * 	@docRoot\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/Test.js", source, true, "@docRoot");
-	assertResults(
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test006() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_3);
-	String source =
-		"package javadoc.fields;\n" +
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on empty tag name:\n" +
-		"	 * 	@\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/Test.js", source, true, "@");
-	assertResults(
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialField[JSDOC_BLOCK_TAG]{@serialField, null, null, serialField, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test007() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.fields;\n" +
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on empty tag name:\n" +
-		"	 * 	@\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/Test.js", source, true, "@");
-	assertResults(
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialField[JSDOC_BLOCK_TAG]{@serialField, null, null, serialField, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"code[JSDOC_INLINE_TAG]{{@code}, null, null, code, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"literal[JSDOC_INLINE_TAG]{{@literal}, null, null, literal, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @category Tests for types completion
- */
-public void test010() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see Obj\n" + 
-		"	 */\n" + 
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "Obj");
-	assertResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test011() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTest\n" + 
-		"	 */\n" + 
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "BasicTest", 2);
-	assertResults(
-		"BasicTestFields[TYPE_REF]{BasicTestFields, javadoc.fields.tags, Ljavadoc.fields.tags.BasicTestFields;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"BasicTestReferences[TYPE_REF]{org.eclipse.wst.jsdt.core.tests.BasicTestReferences, org.eclipse.wst.jsdt.core.tests, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test012() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see javadoc.fields.tags.BasicTest\n" + 
-		"	 * 		Note: JDT-UI failed on this one\n" + 
-		"	 */\n" + 
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "javadoc.fields.tags.BasicTest");
-	assertResults(
-		"BasicTestFields[TYPE_REF]{BasicTestFields, javadoc.fields.tags, Ljavadoc.fields.tags.BasicTestFields;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test013() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see java.la\n" + 
-		"	 * 		Note: JDT-UI fails on this one\n" + 
-		"	 */\n" + 
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "java.la");
-	assertResults(
-		"java.lang[PACKAGE_REF]{java.lang, java.lang, null, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test014() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see pack.Bin\n" + 
-		"	 */\n" + 
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "pack.Bin");
-	assertSortedResults(
-		"Bin1[TYPE_REF]{pack.Bin1, pack, Lpack.Bin1;, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"Bin2[TYPE_REF]{pack.Bin2, pack, Lpack.Bin2;, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"Bin3[TYPE_REF]{pack.Bin3, pack, Lpack.Bin3;, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test015() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see I\n" + 
-		"	 * 		Note: completion list shoud not include base types.\n" + 
-		"	 */\n" + 
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "I");
-	assertSortedResults(
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-/**
- * @category Tests for fields completion
- */
-public void test020() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #fo\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.fields.tags.BasicTestFields;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test021() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestFields#fo\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.fields.tags.BasicTestFields;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test022() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see javadoc.fields.tags.BasicTestFields#fo\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.fields.tags.BasicTestFields;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test023() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/fields/tags/BasicTestFields.js",
-			"package javadoc.fields.tags;\n" + 
-			"public class BasicTestFields {\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see OtherFields#oth\n" + 
-			"	 */\n" + 
-			"	int foo;\n" +
-			"}",
-		"/Completion/src/javadoc/fields/tags/OtherFields.js",
-			"package javadoc.fields.tags;\n" + 
-			"public class OtherFields {\n" + 
-			"	int other;\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "oth");
-	assertResults(
-		"other[FIELD_REF]{other, Ljavadoc.fields.tags.OtherFields;, I, other, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test024() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"	Object obj;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "#", 0); // completion on empty token
-	assertResults(
-		"obj[FIELD_REF]{obj, Ljavadoc.fields.tags.BasicTestFields;, Ljava.lang.Object;, obj, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FIELD_REF]{foo, Ljavadoc.fields.tags.BasicTestFields;, I, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestFields[FUNCTION_REF<CONSTRUCTOR>]{BasicTestFields(), Ljavadoc.fields.tags.BasicTestFields;, ()V, BasicTestFields, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test025() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestFields#\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"	Object obj;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "#", 0); // completion on empty token
-	assertResults(
-		"obj[FIELD_REF]{obj, Ljavadoc.fields.tags.BasicTestFields;, Ljava.lang.Object;, obj, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FIELD_REF]{foo, Ljavadoc.fields.tags.BasicTestFields;, I, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestFields[FUNCTION_REF<CONSTRUCTOR>]{BasicTestFields(), Ljavadoc.fields.tags.BasicTestFields;, ()V, BasicTestFields, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test026() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see javadoc.fields.tags.BasicTestFields#\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"	Object obj;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "#", 0); // completion on empty token
-	assertResults(
-		"obj[FIELD_REF]{obj, Ljavadoc.fields.tags.BasicTestFields;, Ljava.lang.Object;, obj, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FIELD_REF]{foo, Ljavadoc.fields.tags.BasicTestFields;, I, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestFields[FUNCTION_REF<CONSTRUCTOR>]{BasicTestFields(), Ljavadoc.fields.tags.BasicTestFields;, ()V, BasicTestFields, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test027() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestReferences#FIE\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"	Object obj;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "FIE");
-	assertResults("");
-}
-
-public void test028() throws JavaScriptModelException {
-	String source =
-		"package javadoc.fields.tags;\n" + 
-		"public class BasicTestFields {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see org.eclipse.wst.jsdt.core.tests.BasicTestReferences#FIE\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"	Object obj;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "FIE");
-	assertResults(
-		"FIELD[FIELD_REF]{FIELD, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, I, FIELD, null, "+this.positions+R_DICNR+"}"
-	);
-}
-/**
- * @tests Tests for camel case completion
- */
-public void test030() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		String source =
-			"package javadoc.fields.tags;\n" + 
-			"public class BasicTestFields {\n" + 
-			"	Object oneTwoThree;\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see #oTT\n" + 
-			"	 */\n" + 
-			"	int foo;\n" + 
-			
-			"}";
-		completeInJavadoc("/Completion/src/javadoc/fields/tags/BasicTestFields.js", source, true, "oTT");
-		assertResults(
-			"oneTwoThree[FIELD_REF]{oneTwoThree, Ljavadoc.fields.tags.BasicTestFields;, Ljava.lang.Object;, oneTwoThree, null, "+this.positions+"24}"
-		);
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocMethodCompletionModelTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocMethodCompletionModelTest.java
deleted file mode 100644
index 8c75e91..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocMethodCompletionModelTest.java
+++ /dev/null
@@ -1,2584 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Hashtable;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.codeassist.CompletionEngine;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-/**
- * Test class for completion in Javadoc comment of a method declaration.
- */
-public class JavadocMethodCompletionModelTest extends AbstractJavadocCompletionModelTest {
-
-public JavadocMethodCompletionModelTest(String name) {
-	super(name);
-}
-
-static {
-//	TESTS_NUMBERS = new int[] { 58 };
-//	TESTS_RANGE = new int[] { 58, 69 };
-}
-public static Test suite() {
-	return buildModelTestSuite(JavadocMethodCompletionModelTest.class);
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavadocCompletionModelTest#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	setUpProjectOptions(CompilerOptions.VERSION_1_4);
-}
-
-/**
- * @tests Tests for tag names completion
- */
-public void test001() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods;\n" + 
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on empty tag name:\n" +
-		"	 * 	@\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/Test.js", source, true, "@");
-	assertResults(
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"exception[JSDOC_BLOCK_TAG]{@exception, null, null, exception, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"param[JSDOC_BLOCK_TAG]{@param, null, null, param, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"return[JSDOC_BLOCK_TAG]{@return, null, null, return, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialData[JSDOC_BLOCK_TAG]{@serialData, null, null, serialData, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"throws[JSDOC_BLOCK_TAG]{@throws, null, null, throws, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test002() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods;\n" + 
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on impossible tag name:\n" +
-		"	 * 	@aut\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/Test.js", source, true, "@aut");
-	assertResults("");
-}
-
-public void test003() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods;\n" + 
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on one letter:\n" +
-		"	 * 	@r\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/Test.js", source, true, "@r");
-	assertResults(
-		"return[JSDOC_BLOCK_TAG]{@return, null, null, return, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test004() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods;\n" + 
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion with several letters:\n" +
-		"	 * 	@ser\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/Test.js", source, true, "@ser");
-	assertResults(
-		"serialData[JSDOC_BLOCK_TAG]{@serialData, null, null, serialData, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test005() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods;\n" + 
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on full tag name:\n" +
-		"	 * 	@inheritDoc\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/Test.js", source, true, "@inheritDoc");
-	assertResults(
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test006() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_3);
-	String source =
-		"package javadoc.methods;\n" + 
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on empty tag name:\n" +
-		"	 * 	@\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/Test.js", source, true, "@");
-	assertResults(
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"exception[JSDOC_BLOCK_TAG]{@exception, null, null, exception, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"param[JSDOC_BLOCK_TAG]{@param, null, null, param, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"return[JSDOC_BLOCK_TAG]{@return, null, null, return, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialData[JSDOC_BLOCK_TAG]{@serialData, null, null, serialData, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"throws[JSDOC_BLOCK_TAG]{@throws, null, null, throws, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test007() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods;\n" + 
-		"public class Test {\n" +
-		"	/**\n" +
-		"	 * Completion on empty tag name:\n" +
-		"	 * 	@\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/Test.js", source, true, "@");
-	assertResults(
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"exception[JSDOC_BLOCK_TAG]{@exception, null, null, exception, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"param[JSDOC_BLOCK_TAG]{@param, null, null, param, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"return[JSDOC_BLOCK_TAG]{@return, null, null, return, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serialData[JSDOC_BLOCK_TAG]{@serialData, null, null, serialData, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"throws[JSDOC_BLOCK_TAG]{@throws, null, null, throws, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"code[JSDOC_INLINE_TAG]{{@code}, null, null, code, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"literal[JSDOC_INLINE_TAG]{{@literal}, null, null, literal, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @tests Tests for types completion
- */
-public void test010() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethodsE\n" + 
-		"	 */\n" + 
-		"	public void foo() {}\n" + 
-		"}\n" + 
-		"class BasicTestMethodsException1 extends Exception{}\n" + 
-		"class BasicTestMethodsException2 extends Exception{}\n" + 
-		"class BasicTestMethodsExample {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethodsE");
-	assertSortedResults(
-		"BasicTestMethodsExample[TYPE_REF]{BasicTestMethodsExample, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsExample;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"BasicTestMethodsException1[TYPE_REF]{BasicTestMethodsException1, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException1;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"BasicTestMethodsException2[TYPE_REF]{BasicTestMethodsException2, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException2;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test011() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see \n" + 
-		"	 */\n" + 
-		"	public void foo() {}\n" + 
-		"}\n" + 
-		"class BasicTestMethodsException1 extends Exception{}\n" + 
-		"class BasicTestMethodsException2 extends Exception{}\n" + 
-		"class BasicTestMethodsExample {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@see ", 0); // completion on empty token
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults("");
-	} else {
-		assertResults(
-			"BasicTestMethods[TYPE_REF]{BasicTestMethods, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethods;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-			"BasicTestMethodsException1[TYPE_REF]{BasicTestMethodsException1, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException1;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-			"BasicTestMethodsException2[TYPE_REF]{BasicTestMethodsException2, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException2;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-			"BasicTestMethodsExample[TYPE_REF]{BasicTestMethodsExample, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsExample;, null, null, "+this.positions+R_DICUNR+"}");
-	}
-}
-
-public void test012() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@throws BasicTestMethodsE\n" + 
-		"	 */\n" + 
-		"	public void foo() {}\n" + 
-		"}\n" + 
-		"class BasicTestMethodsException1 extends Exception{}\n" + 
-		"class BasicTestMethodsException2 extends Exception{}\n" + 
-		"class BasicTestMethodsExample {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethodsE");
-	assertSortedResults(
-		"BasicTestMethodsException1[TYPE_REF]{BasicTestMethodsException1, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException1;, null, null, "+this.positions+R_DICUNRE+"}\n" + 
-		"BasicTestMethodsException2[TYPE_REF]{BasicTestMethodsException2, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException2;, null, null, "+this.positions+R_DICUNRE+"}\n" + 
-		"BasicTestMethodsExample[TYPE_REF]{BasicTestMethodsExample, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsExample;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test013() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@throws BasicTestMethodsE\n" + 
-		"	 */\n" + 
-		"	public void foo() throws BasicTestMethodsException2 {}\n" + 
-		"}\n" + 
-		"class BasicTestMethodsException1 extends Exception{}\n" + 
-		"class BasicTestMethodsException2 extends Exception{}\n" + 
-		"class BasicTestMethodsExample {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethodsE");
-	assertSortedResults(
-		"BasicTestMethodsException2[TYPE_REF]{BasicTestMethodsException2, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException2;, null, null, "+this.positions+R_DICUNREEET+"}\n" + 
-		"BasicTestMethodsException1[TYPE_REF]{BasicTestMethodsException1, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException1;, null, null, "+this.positions+R_DICUNRE+"}\n" + 
-		"BasicTestMethodsExample[TYPE_REF]{BasicTestMethodsExample, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsExample;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test014() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@throws \n" + 
-		"	 */\n" + 
-		"	public void foo() throws BasicTestMethodsException {}\n" + 
-		"}\n" + 
-		"class BasicTestMethodsException extends Exception{}\n" + 
-		"class BasicTestMethodsExample {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@throws ", 0); // completion on empty token
-	if(CompletionEngine.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN) {
-		assertResults(
-			"BasicTestMethodsException[TYPE_REF]{BasicTestMethodsException, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException;, null, null, "+this.positions+R_DICUNREET+"}"
-		);
-	} else {
-		assertResults(
-			"BasicTestMethods[TYPE_REF]{BasicTestMethods, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethods;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-			"BasicTestMethodsException[TYPE_REF]{BasicTestMethodsException, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsException;, null, null, "+this.positions+R_DICUNREEET+"}\n" + 
-			"BasicTestMethodsExample[TYPE_REF]{BasicTestMethodsExample, javadoc.methods.tags, Ljavadoc.methods.tags.BasicTestMethodsExample;, null, null, "+this.positions+R_DICUNR+"}");
-	}
-}
-
-public void test015() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@throws I\n" + 
-		"	 * 		Note: there should be NO base types in proposals." + 
-		"	 */\n" + 
-		"	public void foo() {\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "I");
-	assertResults(
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICUNRE+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICUNRE+"}"
-	);
-}
-
-public void test016() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@throws java.lang.I\n" + 
-		"	 */\n" + 
-		"	public void foo() throws InterruptedException {\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "java.lang.I");
-	assertResults(
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNRE+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNREEET+"}"
-	);
-}
-
-/**
- * @tests Tests for fields completion
- */
-public void test020() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #fo\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"	void foo() {}\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.methods.tags.BasicTestMethods;, I, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test021() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#fo\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"	void foo() {}\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.methods.tags.BasicTestMethods;, I, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test022() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see javadoc.methods.tags.BasicTestMethods#fo\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"	void foo() {}\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.methods.tags.BasicTestMethods;, I, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test023() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/methods/tags/BasicTestMethods.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class BasicTestMethods {\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see OtherFields#fo\n" + 
-			"	 */\n" + 
-			"	int foo;\n" +
-			"}",
-		"/Completion/src/javadoc/methods/tags/OtherFields.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class OtherFields {\n" + 
-			"	int foo;\n" + 
-			"	void foo() {}\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.methods.tags.OtherFields;, I, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.OtherFields;, ()V, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-/**
- * @tests Tests for methods completion
- */
-public void test030() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see fo\n" + 
-		"	 */\n" + 
-		"	void foo() {}\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "fo");
-	assertResults("");
-}
-
-public void test031() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #fo\n" + 
-		"	 */\n" + 
-		"	<T> void foo() {}\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "fo");
-	assertResults(
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.BasicTestMethods;, <T:Ljava.lang.Object;>()V, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test032() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #ba\n" + 
-		"	 * \n" + 
-		"	 * Note that argument names are put in proposals although there are not while completing\n" + 
-		"	 * in javadoc text {@link javadoc.text.BasicTestMethods }. This is due to the fact that while\n" + 
-		"	 * completing in javadoc tags, it\'s JDT-UI which compute arguments, not JDT-CORE.\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "ba");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test033() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #ba\n" + 
-		"	 * \n" + 
-		"	 * Note that argument names are put in proposals although there are not while completing\n" + 
-		"	 * in javadoc text {@link javadoc.text.BasicTestMethods }. This is due to the fact that while\n" + 
-		"	 * completing in javadoc tags, it\'s JDT-UI which compute arguments, not JDT-CORE.\n" + 
-		"	 */\n" + 
-		"	<T, U> void bar(String str, Class<T> clt, Class<U> clu) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "ba");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, Class, Class), Ljavadoc.methods.tags.BasicTestMethods;, <T:Ljava.lang.Object;U:Ljava.lang.Object;>(Ljava.lang.String;Ljava.lang.Class<TT;>;Ljava.lang.Class<TU;>;)V, bar, (str, clt, clu), "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test034() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#ba\n" + 
-		"	 * \n" + 
-		"	 * Note that argument names are put in proposals although there are not while completing\n" + 
-		"	 * in javadoc text {@link javadoc.text.BasicTestMethods }. This is due to the fact that while\n" + 
-		"	 * completing in javadoc tags, it\'s JDT-UI which compute arguments, not JDT-CORE.\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "ba");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test035() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see javadoc.methods.tags.BasicTestMethods#ba\n" + 
-		"	 * \n" + 
-		"	 * Note that argument names are put in proposals although there are not while completing\n" + 
-		"	 * in javadoc text {@link javadoc.text.BasicTestMethods }. This is due to the fact that while\n" + 
-		"	 * completing in javadoc tags, it\'s JDT-UI which compute arguments, not JDT-CORE.\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "ba");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test036() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/methods/tags/BasicTestMethods.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class BasicTestMethods {\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see OtherTypes#fo\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/methods/tags/OtherTypes.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void foo() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "fo");
-	assertResults(
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.OtherTypes;, ()V, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test037() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #\n" + 
-		"	 */\n" + 
-		"	void foo() {}\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "#", 0); // completion on empty token
-	assertResults(
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test038() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #\n" + 
-		"	 */\n" + 
-		"	<T> void foo() {}\n" + 
-		"	<TParam1, TParam2> void bar(TParam1 tp1, TParam2 tp2) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "#", 0); // completion on empty token
-	assertResults(
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.BasicTestMethods;, <T:Ljava.lang.Object;>()V, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"bar[FUNCTION_REF]{bar(Object, Object), Ljavadoc.methods.tags.BasicTestMethods;, <TParam1:Ljava.lang.Object;TParam2:Ljava.lang.Object;>(TTParam1;TTParam2;)V, bar, (tp1, tp2), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test039() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#\n" + 
-		"	 */\n" + 
-		"	void foo() {}\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "#", 0); // completion on empty token
-	assertResults(
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test040() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see javadoc.methods.tags.BasicTestMethods#\n" + 
-		"	 */\n" + 
-		"	void foo() {}\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "#", 0); // completion on empty token
-	assertResults(
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test041() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test042() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(Str\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "Str");
-	assertResults(
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test043() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(java.lang.\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "java.lang.");
-	assertSortedResults(
-		"Class[TYPE_REF]{Class, java.lang, Ljava.lang.Class;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"CloneNotSupportedException[TYPE_REF]{CloneNotSupportedException, java.lang, Ljava.lang.CloneNotSupportedException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Error[TYPE_REF]{Error, java.lang, Ljava.lang.Error;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Exception[TYPE_REF]{Exception, java.lang, Ljava.lang.Exception;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"RuntimeException[TYPE_REF]{RuntimeException, java.lang, Ljava.lang.RuntimeException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Throwable[TYPE_REF]{Throwable, java.lang, Ljava.lang.Throwable;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test044() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(java.lang.St\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "java.lang.St");
-	assertResults(
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test045() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String s\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String s");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test046() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String str, \n" + 
-		"	 */\n" + 
-		"	// Note: Completion takes place just after trailoing comma (there's a space after)\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String str,");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test047() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String str, \n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String str, ");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test048() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String,\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String,");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test049() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String str, bool\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bool");
-	assertResults(
-		"boolean[KEYWORD]{boolean, null, null, boolean, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-/*
- * Specific case where we can complete but we don't want to as the prefix is not syntaxically correct
- */
-public void test050() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String str, boolean,\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String str, boolean,");
-	assertResults("");
-}
-
-public void test051() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String str, boolean flag,\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String str, boolean flag,");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test052() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String,boolean,\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String,boolean,");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test053() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String,boolean,Object\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "Object");
-	assertResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-/*
- * Specific case where we can complete but we don't want to as the prefix is not syntaxically correct
- */
-public void test054() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String, boolean, Object o\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String, boolean, Object o");
-	assertResults("");
-}
-
-public void test055() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #bar(String str, boolean flag, Object o\n" + 
-		"	 */\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "bar(String str, boolean flag, Object o");
-	assertResults(
-		"bar[FUNCTION_REF]{bar(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, bar, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test056() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/methods/tags/BasicTestMethods.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class BasicTestMethods {\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see OtherTypes#foo(\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/methods/tags/OtherTypes.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void foo(String str) {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "foo(");
-	assertResults(
-		"foo[FUNCTION_REF]{foo(String), Ljavadoc.methods.tags.OtherTypes;, (Ljava.lang.String;)V, foo, (str), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test057() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/methods/tags/BasicTestMethods.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class BasicTestMethods {\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see javadoc.methods.tags.OtherTypes#foo(\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/methods/tags/OtherTypes.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void foo(String str) {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "foo(");
-	assertResults(
-		"foo[FUNCTION_REF]{foo(String), Ljavadoc.methods.tags.OtherTypes;, (Ljava.lang.String;)V, foo, (str), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test058() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#method()\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void bar(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "meth", 2); // 2nd occurrence
-	assertResults(
-		"method[FUNCTION_REF]{method(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, method, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test059() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#method()\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void method(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "meth", 2); // 2nd occurrence
-	assertResults(
-		"method[FUNCTION_REF]{method(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, method, (str, flag, obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"method[FUNCTION_REF]{method(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, method, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test060() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#method(String)\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void method(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "meth", 2); // 2nd occurrence
-	assertResults(
-		"method[FUNCTION_REF]{method(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, method, (str, flag, obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"method[FUNCTION_REF]{method(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, method, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test061() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#method(String,boolean,Object)\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void method(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "meth", 2); // 2nd occurrence
-	assertResults(
-		"method[FUNCTION_REF]{method(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, method, (str, flag, obj), [116, 145], "+R_DICNRNS+"}\n" + 
-		"method[FUNCTION_REF]{method(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, method, null, [116, 145], "+R_DICNRNS+"}"
-	);
-}
-
-// TODO (frederic) See with David what to do on this case...
-public void _test062() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#method(String str,boolean,Object)\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void method(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "meth", 2); // 2nd occurrence
-	assertResults(
-		"method[FUNCTION_REF]{method(String, boolean, Object), Ljavadoc.methods.tags.BasicTestMethods;, (Ljava.lang.String;ZLjava.lang.Object;)V, method, (str, flag, obj), "+this.positions+R_DICUNR+"}\n" + 
-		"method[FUNCTION_REF]{method(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, method, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-/**
- * @tests Tests for method parameters completion
- */
-public void test070() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param \n" + 
-		"	 */\n" + 
-		"	public String foo(String str) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertResults(
-		"str[JSDOC_PARAM_REF]{str, null, null, str, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test071() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param x\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "x");
-	assertResults(
-		"xstr[JSDOC_PARAM_REF]{xstr, null, null, xstr, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test072() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr");
-	assertResults(
-		"xstr[JSDOC_PARAM_REF]{xstr, null, null, xstr, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test073() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "x");
-	assertResults(
-		"xstr[JSDOC_PARAM_REF]{xstr, null, null, xstr, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test074() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xx\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xx");
-	assertResults("");
-}
-
-public void test075() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 ** 	@param \n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "** 	@param ", 0); // empty token
-	assertResults(	"");
-}
-
-public void test076() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr");
-	assertResults("");
-}
-
-public void test077() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr", 2);
-	assertResults("");
-}
-
-public void test078() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr, String xstr2) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr");
-	assertResults(
-		"xstr2[JSDOC_PARAM_REF]{xstr2, null, null, xstr2, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test079() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr, String xstr2) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr", 2); // 2nd occurence
-	assertResults(
-		"xstr2[JSDOC_PARAM_REF]{xstr2, null, null, xstr2, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test080() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr2\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr, String xstr2) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr");
-	assertResults(
-		"xstr[JSDOC_PARAM_REF]{xstr, null, null, xstr, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test081() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr2\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr, String xstr2) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr", 2); // 2nd occurence
-	assertResults(
-		"xstr2[JSDOC_PARAM_REF]{xstr2, null, null, xstr2, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test082() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr2\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr, String xstr2) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr");
-	assertResults("");
-}
-
-public void test083() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr2\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr, String xstr2) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr", 2); // 2nd occurence
-	assertResults("");
-}
-
-public void test084() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param xstr2\n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr, String xstr2) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "xstr", 3); // 3rd position
-	assertResults(
-		"xstr2[JSDOC_PARAM_REF]{xstr2, null, null, xstr2, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test085() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param \n" + 
-		"	 */\n" + 
-		"	public String foo(String xstr, boolean flag, Object obj) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertResults(
-		"xstr[JSDOC_PARAM_REF]{xstr, null, null, xstr, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING+2)+"}\n" + 
-		"flag[JSDOC_PARAM_REF]{flag, null, null, flag, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING+1)+"}\n" + 
-		"obj[JSDOC_PARAM_REF]{obj, null, null, obj, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test086() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 ** 	@param \n" + 
-		"	 */\n" + 
-		"	public String methodMultipleParam2(String xstr, boolean flag, Object obj) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "** 	@param ", 0); // empty token
-	assertResults(
-		"flag[JSDOC_PARAM_REF]{flag, null, null, flag, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING+1)+"}\n" + 
-		"obj[JSDOC_PARAM_REF]{obj, null, null, obj, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test087() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param \n" + 
-		"	 * 	@param flag\n" + 
-		"	 */\n" + 
-		"	public String methodMultipleParam3(String xstr, boolean flag, Object obj) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertResults(
-		"xstr[JSDOC_PARAM_REF]{xstr, null, null, xstr, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING+1)+"}\n" + 
-		"obj[JSDOC_PARAM_REF]{obj, null, null, obj, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test088() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param obj\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 ** 	@param \n" + 
-		"	 */\n" + 
-		"	public String methodMultipleParam4(String xstr, boolean flag, Object obj) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "** 	@param ", 0); // empty token
-	assertResults(
-		"flag[JSDOC_PARAM_REF]{flag, null, null, flag, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test089() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param \n" + 
-		"	 * 	@param obj\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param flag\n" + 
-		"	 */\n" + 
-		"	public String methodMultipleParam5(String xstr, boolean flag, Object obj) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertResults("");
-}
-
-public void test090() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param obj\n" + 
-		"	 * 	@param xstr\n" + 
-		"	 * 	@param flag\n" + 
-		"	 */\n" + 
-		"	public String methodMultipleParam5(String xstr, boolean flag, Object obj) {\n" + 
-		"		return null;\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "ob");
-	assertResults(
-		"obj[JSDOC_PARAM_REF]{obj, null, null, obj, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-/**
- * @tests Tests for type parameters completion
- */
-public void test100() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param \n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING+1)+"}\n" +
-		"xtc[JSDOC_PARAM_REF]{xtc, null, null, xtc, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}\n" +
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test101() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 ** 	@param \n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "** 	@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING+1)+"}\n" +
-		"xtc[JSDOC_PARAM_REF]{xtc, null, null, xtc, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test102() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xtc\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 ** 	@param \n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true,"** 	@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test103() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xtc\n" + 
-		"	 ** 	@param \n" + 
-		"	 * 	@param xtc\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true,"** 	@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}\n" +
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test104() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 ** 	@param \n" + 
-		"	 * 	@param xtc\n" + 
-		"	 * 	@param xtm\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true,"** 	@param ", 0); // empty token
-	assertSortedResults(
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test105() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param xtc\n" + 
-		"	 * 	@param xtm\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 ** 	@param \n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true,"** 	@param ", 0); // empty token
-	assertSortedResults("");
-}
-
-public void test106() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "<", 2); // 2nd occurence
-	assertSortedResults(
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test107() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <T\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "<T", 2); // 2nd occurence
-	assertSortedResults(
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test108() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <TC\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "<TC", 2); // 2nd occurence
-	assertSortedResults("");
-}
-
-public void test109() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "<TM");
-	assertSortedResults(
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test110() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "<TM>");
-	assertSortedResults(
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test111() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "<TM");
-	assertSortedResults("");
-}
-
-public void test112() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 * 	@param <TM>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "<TM>", 2); // 2nd occurence
-	assertSortedResults("");
-}
-
-public void test113() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param ab\n" + 
-		"	 */\n" + 
-		"	void foo(Object ab1, Object ab2) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0);
-	assertSortedResults(
-		"ab1[JSDOC_PARAM_REF]{ab1, null, null, ab1, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING+1)+"}\n" + 
-		"ab2[JSDOC_PARAM_REF]{ab2, null, null, ab2, null, "+this.positions+(JAVADOC_RELEVANCE+R_INTERESTING)+"}"
-	);
-}
-
-public void test114() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <ZZZ>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, "+this.positions+"14}\n" + 
-		"xtc[JSDOC_PARAM_REF]{xtc, null, null, xtc, null, "+this.positions+"13}\n" + 
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test115() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <ZZZ>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "<", 2); // 2nd occurrence
-	assertSortedResults(
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test116() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <ZZZ>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "Z");
-	assertSortedResults("");
-}
-
-public void test117() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param <ZZZ>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "ZZZ");
-	assertSortedResults("");
-}
-
-public void test118() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param ZZZ>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, [105, 108], 14}\n" + 
-		"xtc[JSDOC_PARAM_REF]{xtc, null, null, xtc, null, [105, 108], 13}\n" + 
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, [105, 108], "+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test119() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param ZZZ>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "Z");
-	assertSortedResults("");
-}
-
-public void test120() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param ZZZ>\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "ZZZ");
-	assertSortedResults("");
-}
-
-public void test121() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param ZZZ.\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, "+this.positions+"14}\n" + 
-		"xtc[JSDOC_PARAM_REF]{xtc, null, null, xtc, null, "+this.positions+"13}\n" + 
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test122() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param ZZZ#\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, "+this.positions+"14}\n" + 
-		"xtc[JSDOC_PARAM_REF]{xtc, null, null, xtc, null, "+this.positions+"13}\n" + 
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test123() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods<TC> {\n" +
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@param ZZZ?\n" + 
-		"	 */\n" + 
-		"	<TM> void foo(Class<TM> xtm, Class<TC> xtc) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "@param ", 0); // empty token
-	assertSortedResults(
-		"xtm[JSDOC_PARAM_REF]{xtm, null, null, xtm, null, "+this.positions+"14}\n" + 
-		"xtc[JSDOC_PARAM_REF]{xtc, null, null, xtc, null, "+this.positions+"13}\n" + 
-		"TM[JSDOC_PARAM_REF]{<TM>, null, null, TM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @tests Tests for constructors completion
- */
-public void test130() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTest\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTest", 2); // 2nd occurence
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test131() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTest\n" + 
-		"	 * @since 3.2\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTest", 2); // 2nd occurence
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test132() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTest\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"	<T> BasicTestMethods(int xxx, float real, Class<T> clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTest", 2); // 2nd occurence
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, <T:Ljava.lang.Object;>(IFLjava.lang.Class<TT;>;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test133() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#BasicTest\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTest", 3); // 3rd occurence
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test134() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see javadoc.methods.tags.BasicTestMethods#BasicTest\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTest", 3); // 3rd occurence
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test135() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/methods/tags/BasicTestMethods.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class BasicTestMethods {\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see OtherTypes#O\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/methods/tags/OtherTypes.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	OtherTypes() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "O", 2); // 2nd occurence
-	assertResults(
-		"OtherTypes[FUNCTION_REF<CONSTRUCTOR>]{OtherTypes(), Ljavadoc.methods.tags.OtherTypes;, ()V, OtherTypes, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test136() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/methods/tags/BasicTestMethods.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class BasicTestMethods {\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see OtherTypes#O implicit default constructor\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/methods/tags/OtherTypes.js",
-			"package javadoc.methods.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "O", 2); // 2nd occurence
-	assertResults(
-		"OtherTypes[FUNCTION_REF<CONSTRUCTOR>]{OtherTypes(), Ljavadoc.methods.tags.OtherTypes;, ()V, OtherTypes, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test137() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "#", 0); // empty token
-	assertResults(
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test138() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #\n" + 
-		"	 * @since 3.2\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "#", 0); // empty token
-	assertResults(
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test139() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #\n" + 
-		"	 */\n" + 
-		"	<T> BasicTestMethods() {}\n" + 
-		"	<T, U> BasicTestMethods(int xxx, Class<T> cl1, Class<U> cl2) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "#", 0); // empty token
-	assertResults(
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, Class, Class), Ljavadoc.methods.tags.BasicTestMethods;, <T:Ljava.lang.Object;U:Ljava.lang.Object;>(ILjava.lang.Class<TT;>;Ljava.lang.Class<TU;>;)V, BasicTestMethods, (xxx, cl1, cl2), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, <T:Ljava.lang.Object;>()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test140() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see #\n" + 
-		" */\n" + 
-		"public class BasicTestMethods {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "#", 0); // empty token
-	assertResults(
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test141() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test142() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(\n" + 
-		"	 * @since 3.2\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test143() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods( trailing text\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test144() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(   ...\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test145() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(        \n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test146() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(     ????\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test147() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(  ,,\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test148() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see BasicTestMethods#BasicTestMethods(\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test149() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see javadoc.methods.tags.BasicTestMethods#BasicTestMethods(\n" + 
-		"	 */\n" + 
-		"	void foo() {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMethods(");
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(), Ljavadoc.methods.tags.BasicTestMethods;, ()V, BasicTestMethods, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-// TODO (frederic) Reduce proposal as there's only a single valid proposal: int
-public void test150() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(in\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "in");
-	assertResults(
-		"int[KEYWORD]{int, null, null, int, null, "+this.positions+R_DICNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DIUNR+"}"
-	);
-}
-
-// TODO (frederic) Reduce proposal as there's only a single valid proposal: int
-public void test151() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(int\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "int");
-	assertResults(
-		"int[KEYWORD]{int, null, null, int, null, "+this.positions+R_DICENNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DIUNR+"}"
-	);
-}
-
-public void test152() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(int aaa, fl\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "fl");
-	assertResults(
-		"float[KEYWORD]{float, null, null, float, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test153() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(int aaa, float\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "float");
-	assertResults(
-		"float[KEYWORD]{float, null, null, float, null, "+this.positions+R_DICENNR+"}"
-	);
-}
-
-public void test154() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(int, float, Cla\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "Cla");
-	assertResults(
-		"Class[TYPE_REF]{Class, java.lang, Ljava.lang.Class;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-// TODO (frederic) Reduce proposal as there's only a single valid proposal: Class
-public void test155() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(int, float, java.lang.\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "java.lang.");
-	assertSortedResults(
-		"Class[TYPE_REF]{Class, java.lang, Ljava.lang.Class;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"CloneNotSupportedException[TYPE_REF]{CloneNotSupportedException, java.lang, Ljava.lang.CloneNotSupportedException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Error[TYPE_REF]{Error, java.lang, Ljava.lang.Error;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Exception[TYPE_REF]{Exception, java.lang, Ljava.lang.Exception;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"RuntimeException[TYPE_REF]{RuntimeException, java.lang, Ljava.lang.RuntimeException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Throwable[TYPE_REF]{Throwable, java.lang, Ljava.lang.Throwable;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test156() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(int, float, java.lang.Cla\n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "java.lang.Cla");
-	assertResults(
-		"Class[TYPE_REF]{Class, java.lang, Ljava.lang.Class;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test157() throws JavaScriptModelException {
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	void foo() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMethods(int, float, Class\n" + 
-		"	 * \n" + 
-		"	 */\n" + 
-		"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "Class");
-	assertResults(
-		"Class[TYPE_REF]{Class, java.lang, Ljava.lang.Class;, null, null, "+this.positions+R_DICENUNR+"}"
-	);
-}
-/**
- * @tests Tests for camel case completion
- */
-public void test160() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		String source =
-			"package javadoc.methods.tags;\n" + 
-			"public class BasicTestMethods {\n" + 
-			"	void foo() {}\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see #BTM\n" + 
-			"	 * \n" + 
-			"	 */\n" + 
-			"	BasicTestMethods(int xxx, float real, Class clazz) {}\n" + 
-			"}\n";
-		completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BTM");
-		assertResults(
-			"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(int, float, Class), Ljavadoc.methods.tags.BasicTestMethods;, (IFLjava.lang.Class;)V, BasicTestMethods, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-		);
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-public void test161() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		String source =
-			"package javadoc.methods.tags;\n" + 
-			"public class BasicTestMethods {\n" + 
-			"	void oneTwoThree(int i) {}\n" + 
-			"	/**\n" + 
-			"	 * Completion after:\n" + 
-			"	 * 	@see #oTT\n" + 
-			"	 * \n" + 
-			"	 */\n" + 
-			"	BasicTestMethods() {}\n" + 
-			"}\n";
-		completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "oTT");
-		assertResults(
-			"oneTwoThree[FUNCTION_REF]{oneTwoThree(int), Ljavadoc.methods.tags.BasicTestMethods;, (I)V, oneTwoThree, (i), "+this.positions+"24}"
-		);
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=155824
-public void test162() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	public void oneTwoThree(Object... o) {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #oneTwoT\n" + 
-		"	 * \n" + 
-		"	 */\n" + 
-		"	BasicTestMethods() {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "oneTwoT", 2);
-	assertResults(
-		"oneTwoThree[FUNCTION_REF]{oneTwoThree(Object...), Ljavadoc.methods.tags.BasicTestMethods;, ([Ljava.lang.Object;)V, oneTwoThree, (o), "+this.positions+R_DICNRNS+"}"
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=155824
-public void test163() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	
-	String source =
-		"package javadoc.methods.tags;\n" + 
-		"public class BasicTestMethods {\n" + 
-		"	public BasicTestMethods(Object... o) {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	@see #BasicTestMeth\n" + 
-		"	 * \n" + 
-		"	 */\n" + 
-		"	void foo() {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/methods/tags/BasicTestMethods.js", source, true, "BasicTestMeth", 3);
-	assertResults(
-		"BasicTestMethods[FUNCTION_REF<CONSTRUCTOR>]{BasicTestMethods(Object...), Ljavadoc.methods.tags.BasicTestMethods;, ([Ljava.lang.Object;)V, BasicTestMethods, (o), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocPackageCompletionModelTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocPackageCompletionModelTest.java
deleted file mode 100644
index fcb1c0c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocPackageCompletionModelTest.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-/**
- * Test class for completion in Javadoc comment of a package declaration.
- */
-public class JavadocPackageCompletionModelTest extends AbstractJavadocCompletionModelTest {
-
-public JavadocPackageCompletionModelTest(String name) {
-	super(name);
-}
-
-static {
-//	TESTS_RANGE = new int[] { 11, 12 };
-//	TESTS_NUMBERS = new int[] { 16 };
-}
-public static Test suite() {
-	return buildModelTestSuite(JavadocPackageCompletionModelTest.class);
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavadocCompletionModelTest#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-}
-
-/*
- * Write files for self-hosting debug.
- */
-protected void writeFiles(String[] sources) {
-
-	// Get write directory path
-	if (WRITE_DIR_FILE == null) return;
-	
-	// Get test name
-	String testName = getName();
-	int idx = testName.indexOf(" - ");
-	if (idx > 0) {
-		testName = testName.substring(idx+3);
-	}
-//	testName = "Test"+testName.substring(4);
-	
-	// Write sources to dir
-	int length = sources.length / 2;
-	for (int i=0; i<length; i++) {
-		
-		// Get pathes
-		IPath filePath = new Path(sources[2*i]).removeFirstSegments(2); // remove project and source folder
-		IPath dirPath = filePath.removeLastSegments(1);
-		String fileDir = dirPath.toString();
-		String typeName = filePath.removeFileExtension().lastSegment();
-		if (i==0 && !typeName.equals("package-info")) {
-			System.err.println("Invalid type name: '"+typeName+"' for test "+testName);
-			continue;
-		}
-		
-		// Create package dirs or delete dirs if already exist
-		File packageDir = new File(WRITE_DIR_FILE, fileDir);
-		if (!PACKAGE_FILES.contains(packageDir)) {
-			if (packageDir.exists()) {
-				PACKAGE_FILES.add(packageDir);
-				Util.flushDirectoryContent(packageDir);
-			} else if (packageDir.mkdirs()) {
-				PACKAGE_FILES.add(packageDir);
-			} else {
-				System.err.println(packageDir+" does not exist and CANNOT be created!!!");
-				continue;
-			}
-		}
-		
-		// Create test dir
-		File testDir = new File(packageDir, testName);
-		if (!testDir.exists() && !testDir.mkdir()) {
-			System.err.println(testDir+" does not exist and CANNOT be created!!!");
-			continue;
-		}
-		
-		// Store names info
-		String fullPathName = testDir.getAbsolutePath()+"\\"+typeName+".js";
-		System.out.println("Write file "+fullPathName);
-		String contents = null;
-		if (i==0) { // package-info
-			contents = sources[2*i+1].substring(0, sources[2*i+1].lastIndexOf(';'));
-			contents += "."+testName+";\n";
-		} else {
-			int index = sources[2*i+1].indexOf(';');
-			contents = sources[2*i+1].substring(0, index);
-			contents += "."+testName;
-			contents += sources[2*i+1].substring(index);
-		}
-		Util.writeToFile(contents, fullPathName);
-	}
-}
-
-/**
- * @category Tests for tag names completion
- */
-public void test001() throws JavaScriptModelException {
-	String source =
-		"/**\n" +
-		" * Completion on empty tag name:\n" +
-		" * 	@\n" +
-		" */\n" +
-		"package javadoc;\n";
-	completeInJavadoc("/Completion/src/javadoc/package-info.js", source, true, "@");
-	assertResults(
-		"author[JSDOC_BLOCK_TAG]{@author, null, null, author, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"version[JSDOC_BLOCK_TAG]{@version, null, null, version, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test002() throws JavaScriptModelException {
-	String source =
-		"/**\n" +
-		" * Completion on impossible tag name:\n" +
-		" * 	@deprec\n" +
-		" */\n" +
-		"package javadoc;\n";
-	completeInJavadoc("/Completion/src/javadoc/package-info.js", source, true, "@deprec");
-	assertResults("");
-}
-
-public void test003() throws JavaScriptModelException {
-	String source = 
-		"/**\n" +
-		" * Completion on one letter:\n" +
-		" * 	@a\n" +
-		" */\n" +
-		"package javadoc;\n";
-	completeInJavadoc("/Completion/src/javadoc/package-info.js", source, true, "@a");
-	assertResults(
-		"author[JSDOC_BLOCK_TAG]{@author, null, null, author, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test004() throws JavaScriptModelException {
-	String source =
-		"/**\n" +
-		" * Completion with several letters:\n" +
-		" * 	@ser\n" +
-		" */\n" +
-		"package javadoc;\n";
-	completeInJavadoc("/Completion/src/javadoc/package-info.js", source, true, "@ser");
-	assertResults(
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test005() throws JavaScriptModelException {
-	String source =
-		"/**\n" +
-		" * Completion on full tag name:\n" +
-		" * 	@since\n" +
-		" */\n" +
-		"package javadoc;\n";
-	completeInJavadoc("/Completion/src/javadoc/package-info.js", source, true, "@since");
-	assertResults(
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test006() throws JavaScriptModelException {
-	String source =
-		"/**\n" +
-		" * Completion on @ inside text\n" +
-		" */\n" +
-		"package javadoc;\n";
-	completeInJavadoc("/Completion/src/javadoc/package-info.js", source, true, "@");
-	assertResults(
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test007() throws JavaScriptModelException {
-	String source =
-		"/**\n" +
-		" * Completion on @d inside text\n" +
-		" */\n" +
-		"package javadoc;\n";
-	completeInJavadoc("/Completion/src/javadoc/package-info.js", source, true, "@d");
-	assertResults(
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @category Tests for types completion
- */
-public void test010() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see Obj\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "Obj");
-	assertResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test011() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestRef\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "BasicTestRef");
-	assertResults(
-		"BasicTestReferences[TYPE_REF]{org.eclipse.wst.jsdt.core.tests.BasicTestReferences, org.eclipse.wst.jsdt.core.tests, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test012() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see org.eclipse.wst.jsdt.core.tests.BasicTestRef\n" + 
-		" * 		Note: JDT-UI failed on this one\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "org.eclipse.wst.jsdt.core.tests.BasicTestRef");
-	assertResults(
-		"BasicTestReferences[TYPE_REF]{org.eclipse.wst.jsdt.core.tests.BasicTestReferences, org.eclipse.wst.jsdt.core.tests, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test013() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see java.la\n" + 
-		" * 		Note: JDT-UI fails on this one\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "java.la");
-	assertResults(
-		"java.lang.annotation[PACKAGE_REF]{java.lang.annotation, java.lang.annotation, null, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"java.lang[PACKAGE_REF]{java.lang, java.lang, null, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test014() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see pack.Bin\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "pack.Bin");
-	assertSortedResults(
-		"Bin1[TYPE_REF]{pack.Bin1, pack, Lpack.Bin1;, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"Bin2[TYPE_REF]{pack.Bin2, pack, Lpack.Bin2;, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"Bin3[TYPE_REF]{pack.Bin3, pack, Lpack.Bin3;, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test015() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see I\n" + 
-		" * 		Note: completion list shoud not include base types.\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "I");
-	assertSortedResults(
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-/**
- * @category Tests for fields completion
- */
-public void test020() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestReferences#FIE\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "FIE");
-	assertResults("");
-}
-
-public void test021() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see org.eclipse.wst.jsdt.core.tests.BasicTestReferences#FIE\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "FIE");
-	assertResults(
-		"FIELD[FIELD_REF]{FIELD, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, I, FIELD, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test022() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/tags/package-info.js",
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#bar\n" + 
-			" */\n" + 
-			"package javadoc.tags;\n",
-		"/Completion/src/javadoc/tags/OtherTypes.js",
-			"package javadoc.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	int bar;\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "bar");
-	assertResults(
-		"bar[FIELD_REF]{bar, Ljavadoc.tags.OtherTypes;, I, bar, null, "+this.positions+R_DICENNRNS+"}"
-	);
-}
-
-public void test023() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestReferences#\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "#", 0); // empty token
-	assertResults("");
-}
-
-public void test024() throws JavaScriptModelException {
-	String source =
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see org.eclipse.wst.jsdt.core.tests.BasicTestReferences#\n" + 
-		" */\n" + 
-		"package javadoc.tags;\n";
-	completeInJavadoc("/Completion/src/javadoc/tags/package-info.js", source, true, "#", 0); // empty token
-	assertResults(
-		"FIELD[FIELD_REF]{FIELD, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, I, FIELD, null, "+this.positions+R_DICNR+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestReferences[FUNCTION_REF<CONSTRUCTOR>]{BasicTestReferences(), Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, ()V, BasicTestReferences, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test025() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/tags/package-info.js",
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#\n" + 
-			" */\n" + 
-			"package javadoc.tags;\n",
-		"/Completion/src/javadoc/tags/OtherTypes.js",
-			"package javadoc.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	int foo;\n" + 
-			"	Object obj;\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "#", 0); // empty token
-	assertResults(
-		"obj[FIELD_REF]{obj, Ljavadoc.tags.OtherTypes;, Ljava.lang.Object;, obj, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FIELD_REF]{foo, Ljavadoc.tags.OtherTypes;, I, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"OtherTypes[FUNCTION_REF<CONSTRUCTOR>]{OtherTypes(), Ljavadoc.tags.OtherTypes;, ()V, OtherTypes, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @category Tests for methods completion
- */
-public void test030() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/tags/package-info.js",
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#meth\n" + 
-			" */\n" + 
-			"package javadoc.tags;",
-		"/Completion/src/javadoc/tags/OtherTypes.js",
-			"package javadoc.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void method() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "meth");
-	assertResults(
-		"method[FUNCTION_REF]{method(), Ljavadoc.tags.OtherTypes;, ()V, method, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-public void test031() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/tags/package-info.js",
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#\n" + 
-			" */\n" + 
-			"package javadoc.tags;",
-		"/Completion/src/javadoc/tags/OtherTypes.js",
-			"package javadoc.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void method() {};\n" +
-			"	void foo() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "#", 0); // empty token
-	assertResults(
-		"method[FUNCTION_REF]{method(), Ljavadoc.tags.OtherTypes;, ()V, method, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"foo[FUNCTION_REF]{foo(), Ljavadoc.tags.OtherTypes;, ()V, foo, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"OtherTypes[FUNCTION_REF<CONSTRUCTOR>]{OtherTypes(), Ljavadoc.tags.OtherTypes;, ()V, OtherTypes, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @category Tests for constructors completion
- */
-public void test040() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/tags/package-info.js",
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#O\n" + 
-			" */\n" + 
-			"package javadoc.tags;\n",
-		"/Completion/src/javadoc/tags/OtherTypes.js",
-			"package javadoc.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void method() {};\n" +
-			"	void foo() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "O", 2); // 2nd occurence
-	assertResults(
-		"OtherTypes[FUNCTION_REF<CONSTRUCTOR>]{OtherTypes(), Ljavadoc.tags.OtherTypes;, ()V, OtherTypes, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-public void test041() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/tags/package-info.js",
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#O\n" + 
-			" */\n" + 
-			"package javadoc.tags;\n",
-		"/Completion/src/javadoc/tags/OtherTypes.js",
-			"package javadoc.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	OtherTypes(int x) {};\n" +
-			"	OtherTypes(Object obj, String str) {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "O", 2); // 2nd occurence
-	assertResults(
-		"OtherTypes[FUNCTION_REF<CONSTRUCTOR>]{OtherTypes(Object, String), Ljavadoc.tags.OtherTypes;, (Ljava.lang.Object;Ljava.lang.String;)V, OtherTypes, (obj, str), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"OtherTypes[FUNCTION_REF<CONSTRUCTOR>]{OtherTypes(int), Ljavadoc.tags.OtherTypes;, (I)V, OtherTypes, (x), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocTextCompletionModelTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocTextCompletionModelTest.java
deleted file mode 100644
index 229f3a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocTextCompletionModelTest.java
+++ /dev/null
@@ -1,1240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-/**
- * Test class for completion in text of a Javadoc comment.
- */
-public class JavadocTextCompletionModelTest extends AbstractJavadocCompletionModelTest {
-
-public JavadocTextCompletionModelTest(String name) {
-	super(name);
-}
-
-static {
-//	TESTS_NUMBERS = new int[] { 34 };
-//	TESTS_RANGE = new int[] { 51, -1 };
-}
-public static Test suite() {
-	return buildModelTestSuite(JavadocTextCompletionModelTest.class);
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavadocCompletionModelTest#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	setUpProjectOptions(CompilerOptions.VERSION_1_4);
-}
-
-/**
- * @tests  Tests for tag names completion
- */
-public void test001() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"/**\n" +
-		" * Completion on @ inside text\n" +
-		" */\n" +
-		"public class BasicTestTextIns {}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "@");
-	assertResults(
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test002() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"/**\n" +
-		" * Completion on @s inside text\n" +
-		" */\n" +
-		"public class BasicTestTextIns {}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "@s");
-	assertResults("");
-}
-
-public void test003() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_4);
-	String source =
-		"package javadoc.text;\n" +
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion on @ inside text\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "@");
-	assertResults(
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test004() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_4);
-	String source =
-		"package javadoc.text;\n" +
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion on @d inside text\n" +
-		"	 */\n" +
-		"	int field;\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "@d");
-	assertResults(
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test005() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion on empty tag name: @\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "@");
-	assertResults(
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test006() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion on impossible tag name: @ret\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "@ret");
-	assertResults("");
-}
-
-public void test007() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion on one letter: @l\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "@l");
-	assertResults(
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test008() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion on started inline tag: {@li\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "{@li");
-	assertResults(
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test009() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion with several letters:\n" +
-		"	 *		@param str @inh\n" +
-		"	 */\n" +
-		"	public void foo(String str) {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "@inh");
-	assertResults(
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test010() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion with several letters:\n" +
-		"	 *		@param str {@inh\n" +
-		"	 */\n" +
-		"	public void foo(String str) {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "{@inh");
-	assertResults(
-		"inheritDoc[JSDOC_INLINE_TAG]{{@inheritDoc}, null, null, inheritDoc, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test011() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" +
-		"	/**\n" +
-		"	 * Completion on full tag name: {@docRoot}\n" +
-		"	 */\n" +
-		"	public void foo() {}\n" +
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "{@docRoot");
-	assertResults(
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @tests  Tests for types completion
- */
-public void test020() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"/**\n" + 
-		" * Completion after: BasicTestTextIns\n" + 
-		" */\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_TYPE_REF]{{@link BasicTestTextIns}, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNRIT+"}\n" + 
-		"BasicTestTextIns[TYPE_REF]{BasicTestTextIns, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test021() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"/**\n" + 
-		" * Completion after: {@link BasicTestTextIns\n" + 
-		" */\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"}\n" + 
-		"class BasicTestTextInsException extends Exception{\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns");
-	assertSortedResults(
-		"BasicTestTextIns[TYPE_REF]{BasicTestTextIns, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNR+"}\n" + 
-		"BasicTestTextInsException[TYPE_REF]{BasicTestTextInsException, javadoc.text, Ljavadoc.text.BasicTestTextInsException;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test022() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"/**\n" + 
-		" * Completion after: @link BasicTestTextIns\n" + 
-		" */\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	public void foo() throws BasicTestTextInsException {}\n" + 
-		"}\n" + 
-		"class BasicTestTextInsException extends Exception{\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_TYPE_REF]{{@link BasicTestTextIns}, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+(R_DICENUNR+R_INLINE_TAG)+"}\n" +
-		"BasicTestTextInsException[JSDOC_TYPE_REF]{{@link BasicTestTextInsException}, javadoc.text, Ljavadoc.text.BasicTestTextInsException;, null, null, "+this.positions+R_DICUNRIT+"}\n" + 
-		"BasicTestTextIns[TYPE_REF]{BasicTestTextIns, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNR+"}\n" +
-		"BasicTestTextInsException[TYPE_REF]{BasicTestTextInsException, javadoc.text, Ljavadoc.text.BasicTestTextInsException;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test023() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: @link BasicTestTextIns\n" + 
-		"	 */\n" + 
-		"	public void foo() throws BasicTestTextInsException {}\n" + 
-		"}\n" + 
-		"class BasicTestTextInsException extends Exception{\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns", 2); // 2nd occurrence
-	assertSortedResults(
-		"BasicTestTextInsException[JSDOC_TYPE_REF]{{@link BasicTestTextInsException}, javadoc.text, Ljavadoc.text.BasicTestTextInsException;, null, null, "+this.positions+R_DICUNREETIT+"}\n" + 
-		"BasicTestTextIns[JSDOC_TYPE_REF]{{@link BasicTestTextIns}, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNRIT+"}\n" +
-		"BasicTestTextInsException[TYPE_REF]{BasicTestTextInsException, javadoc.text, Ljavadoc.text.BasicTestTextInsException;, null, null, "+this.positions+R_DICUNREET+"}\n" + 
-		"BasicTestTextIns[TYPE_REF]{BasicTestTextIns, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test024() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"/**\n" + 
-		" * Completion after: @see BasicTestTextIns\n" + 
-		" */\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	public void foo() {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_TYPE_REF]{{@link BasicTestTextIns}, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNRIT+"}\n" + 
-		"BasicTestTextIns[TYPE_REF]{BasicTestTextIns, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test025() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: @see BasicTestTextIns\n" + 
-		"	 */\n" + 
-		"	public void foo() {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns", 2); // 2nd occurrence
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_TYPE_REF]{{@link BasicTestTextIns}, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNRIT+"}\n" + 
-		"BasicTestTextIns[TYPE_REF]{BasicTestTextIns, javadoc.text, Ljavadoc.text.BasicTestTextIns;, null, null, "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test026() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"/**\n" + 
-		" * Completion after: java.la\n" + 
-		" */\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	public void foo() throws InterruptedException {\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "java.la");
-	assertSortedResults(
-		"java.lang[PACKAGE_REF]{java.lang, java.lang, null, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test027() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"/**\n" + 
-		" * Completion after: java.lang.I\n" + 
-		" */\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	public void foo() throws InterruptedException {\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "java.lang.I");
-	assertSortedResults(
-		"IllegalMonitorStateException[JSDOC_TYPE_REF]{{@link IllegalMonitorStateException}, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNRIT+"}\n" + 
-		"InterruptedException[JSDOC_TYPE_REF]{{@link InterruptedException}, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNRIT+"}\n" + 
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNR+"}\n" +
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test028() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: java.lang.I\n" + 
-		"	 */\n" + 
-		"	public void foo() throws InterruptedException {\n" + 
-		"	}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "java.lang.I");
-	assertSortedResults(
-		"InterruptedException[JSDOC_TYPE_REF]{{@link InterruptedException}, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNREETIT+"}\n" + 
-		"IllegalMonitorStateException[JSDOC_TYPE_REF]{{@link IllegalMonitorStateException}, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNRIT+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNREET+"}\n" + 
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-/**
- * @tests  Tests for fields completion
- */
-public void test030() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #fo\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#fo");
-	assertSortedResults(
-		"foo[JSDOC_FIELD_REF]{{@link #foo}, Ljavadoc.text.BasicTestTextIns;, I, foo, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-
-public void test031() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: BasicTestTextIns#fo\n" + 
-		"	 */\n" + 
-		"	static int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns#fo");
-	assertSortedResults(
-		"foo[JSDOC_FIELD_REF]{{@link BasicTestTextIns#foo}, Ljavadoc.text.BasicTestTextIns;, I, foo, null, "+this.positions+R_DICNRIT+"}\n" + 
-		"foo[JSDOC_VALUE_REF]{{@value BasicTestTextIns#foo}, Ljavadoc.text.BasicTestTextIns;, I, foo, null, "+this.positions+R_DICNRIT+"}"
-	);
-}
-
-public void test032() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: javadoc.text.BasicTestTextIns#fo\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "javadoc.text.BasicTestTextIns#fo");
-	assertSortedResults(
-		"foo[JSDOC_FIELD_REF]{{@link javadoc.text.BasicTestTextIns#foo}, Ljavadoc.text.BasicTestTextIns;, I, foo, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-
-public void test033() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/text/BasicTestTextIns.js",
-			"package javadoc.text;\n" + 
-			"public class BasicTestTextIns {\n" + 
-			"	/**\n" + 
-			"	 * Completion after: OtherFields#fo\n" + 
-			"	 */\n" + 
-			"	int foo;\n" +
-			"}",
-		"/Completion/src/javadoc/text/OtherFields.js",
-			"package javadoc.text;\n" + 
-			"public class OtherFields {\n" + 
-			"	static int foo;\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "OtherFields#fo");
-	assertSortedResults(
-		"foo[JSDOC_FIELD_REF]{{@link OtherFields#foo}, Ljavadoc.text.OtherFields;, I, foo, null, "+this.positions+R_DICNRIT+"}\n" + 
-		"foo[JSDOC_VALUE_REF]{{@value OtherFields#foo}, Ljavadoc.text.OtherFields;, I, foo, null, "+this.positions+R_DICNRIT+"}"
-	);
-}
-
-public void test034() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@value #fo\n" + 
-		"	 *		Note: this test must be run with 1.4 compliance\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "fo");
-	assertSortedResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.text.BasicTestTextIns;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test035() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@value #fo\n" + 
-		"	 *		Note: this test must be run with 1.5 compliance\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "fo");
-	assertSortedResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.text.BasicTestTextIns;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test036() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link BasicTestTextIns#fo\n" + 
-		"	 */\n" + 
-		"	static int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "fo");
-	assertSortedResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.text.BasicTestTextIns;, I, foo, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test037() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link javadoc.text.BasicTestTextIns#fo }\n" + 
-		"	 */\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "fo");
-	assertSortedResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.text.BasicTestTextIns;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test038() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String[] sources = {
-		"/Completion/src/javadoc/text/BasicTestTextIns.js",
-			"package javadoc.text;\n" + 
-			"public class BasicTestTextIns {\n" + 
-			"	/**\n" + 
-			"	 * Completion after: {@value OtherFields#fo\n" + 
-		"	 *		Note: this test must be run with 1.5 compliance\n" + 
-			"	 */\n" + 
-			"	int foo;\n" +
-			"}",
-		"/Completion/src/javadoc/text/OtherFields.js",
-			"package javadoc.text;\n" + 
-			"public class OtherFields {\n" + 
-			"	static int foo;\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "fo");
-	assertSortedResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.text.OtherFields;, I, foo, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-/**
- * @tests  Tests for methods completion
- */
-public void test040() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: meth\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "meth");
-	assertSortedResults("");
-}
-
-public void test041() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #meth\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#meth");
-	assertSortedResults(
-		"method[JSDOC_METHOD_REF]{{@link #method()}, Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-
-public void test042() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #meth with text after\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#meth");
-	assertSortedResults(
-		"method[JSDOC_METHOD_REF]{{@link #method()}, Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-
-public void test043() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #method\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#meth");
-	assertSortedResults(
-		"method[JSDOC_METHOD_REF]{{@link #method()}, Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-
-public void test044() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: BasicTestTextIns#param\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns#param");
-	assertSortedResults(
-		"paramMethod[JSDOC_METHOD_REF]{{@link BasicTestTextIns#paramMethod(String, boolean, Object)}, Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-
-public void test045() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: javadoc.text.BasicTestTextIns#meth\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "javadoc.text.BasicTestTextIns#meth");
-	assertSortedResults(
-		"method[JSDOC_METHOD_REF]{{@link javadoc.text.BasicTestTextIns#method()}, Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-
-public void test046() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link #param\n" + 
-		"	 */\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "param");
-	assertSortedResults(
-		"paramMethod[FUNCTION_REF]{paramMethod(String, boolean, Object), Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test047() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link BasicTestTextIns#meth\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "meth");
-	assertSortedResults(
-		"method[FUNCTION_REF]{method(), Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test048() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link javadoc.text.BasicTestTextIns#param }\n" + 
-		"	 */\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "param");
-	assertSortedResults(
-		"paramMethod[FUNCTION_REF]{paramMethod(String, boolean, Object), Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test049() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/text/BasicTestTextIns.js",
-			"package javadoc.text;\n" + 
-			"public class BasicTestTextIns {\n" + 
-			"	/**\n" + 
-			"	 * Completion after: OtherTypes#meth\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/text/OtherTypes.js",
-			"package javadoc.text;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void method() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "OtherTypes#meth");
-	assertSortedResults(
-		"method[JSDOC_METHOD_REF]{{@link OtherTypes#method()}, Ljavadoc.text.OtherTypes;, ()V, method, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-
-public void test050() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/text/BasicTestTextIns.js",
-			"package javadoc.text;\n" + 
-			"public class BasicTestTextIns {\n" + 
-			"	/**\n" + 
-			"	 * Completion after: {@link OtherTypes#method }\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/text/OtherTypes.js",
-			"package javadoc.text;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void method() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "meth");
-	assertSortedResults(
-		"method[FUNCTION_REF]{method(), Ljavadoc.text.OtherTypes;, ()V, method, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test051() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#");
-	assertSortedResults(
-		"clone[JSDOC_METHOD_REF]{{@link #clone()}, Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"equals[JSDOC_METHOD_REF]{{@link #equals(Object)}, Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"finalize[JSDOC_METHOD_REF]{{@link #finalize()}, Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"getClass[JSDOC_METHOD_REF]{{@link #getClass()}, Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"hashCode[JSDOC_METHOD_REF]{{@link #hashCode()}, Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"method[JSDOC_METHOD_REF]{{@link #method()}, Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"notify[JSDOC_METHOD_REF]{{@link #notify()}, Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"notifyAll[JSDOC_METHOD_REF]{{@link #notifyAll()}, Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"paramMethod[JSDOC_METHOD_REF]{{@link #paramMethod(String, boolean, Object)}, Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICNRNSIT+"}\n" + 
-		"toString[JSDOC_METHOD_REF]{{@link #toString()}, Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait(long, int)}, Ljava.lang.Object;, (JI)V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait(long)}, Ljava.lang.Object;, (J)V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait()}, Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns()}, Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+(JAVADOC_RELEVANCE+R_INLINE_TAG)+"}"
-	);
-}
-
-public void test052() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #method\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#");
-	assertSortedResults(
-		"clone[JSDOC_METHOD_REF]{{@link #clone()}, Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"equals[JSDOC_METHOD_REF]{{@link #equals(Object)}, Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"finalize[JSDOC_METHOD_REF]{{@link #finalize()}, Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"getClass[JSDOC_METHOD_REF]{{@link #getClass()}, Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"hashCode[JSDOC_METHOD_REF]{{@link #hashCode()}, Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"method[JSDOC_METHOD_REF]{{@link #method()}, Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"notify[JSDOC_METHOD_REF]{{@link #notify()}, Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"notifyAll[JSDOC_METHOD_REF]{{@link #notifyAll()}, Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"paramMethod[JSDOC_METHOD_REF]{{@link #paramMethod(String, boolean, Object)}, Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICNRNSIT+"}\n" + 
-		"toString[JSDOC_METHOD_REF]{{@link #toString()}, Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait(long, int)}, Ljava.lang.Object;, (JI)V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait(long)}, Ljava.lang.Object;, (J)V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait()}, Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns()}, Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+(JAVADOC_RELEVANCE+R_INLINE_TAG)+"}"
-	);
-}
-
-public void test053() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link BasicTestTextIns#\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#", 0); //empty token
-	assertSortedResults(
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"method[FUNCTION_REF]{method(), Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"paramMethod[FUNCTION_REF]{paramMethod(String, boolean, Object), Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(), Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test054() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link javadoc.text.BasicTestTextIns# }\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#", 0); //empty token
-	assertSortedResults(
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"method[FUNCTION_REF]{method(), Ljavadoc.text.BasicTestTextIns;, ()V, method, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"paramMethod[FUNCTION_REF]{paramMethod(String, boolean, Object), Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(), Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test055() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #paramMethod(\n" + 
-		"	 */\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#paramMethod(");
-	assertSortedResults(
-		"paramMethod[JSDOC_METHOD_REF]{{@link #paramMethod(String, boolean, Object)}, Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICENUNRIT+"}"
-	);
-}
-
-public void test056() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link #paramMethod(Str\n" + 
-		"	 */\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "Str");
-	assertSortedResults(
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test057() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link #paramMethod(String s\n" + 
-		"	 */\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "paramMethod(String s");
-	assertSortedResults(
-		"paramMethod[FUNCTION_REF]{paramMethod(String, boolean, Object), Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-public void test058() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #paramMethod(String str, \n" + 
-		"	 */\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#paramMethod(String str,");
-	assertSortedResults(
-		"paramMethod[JSDOC_METHOD_REF]{{@link #paramMethod(String, boolean, Object)}, Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICENUNRIT+"}"
-	);
-}
-
-public void test059() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link #paramMethod(String,\n" + 
-		"	 */\n" + 
-		"	void paramMethod(String str, boolean flag, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "paramMethod(String,");
-	assertSortedResults(
-		"paramMethod[FUNCTION_REF]{paramMethod(String, boolean, Object), Ljavadoc.text.BasicTestTextIns;, (Ljava.lang.String;ZLjava.lang.Object;)V, paramMethod, (str, flag, obj), "+this.positions+R_DICENUNR+"}"
-	);
-}
-
-/**
- * @tests  Tests for constructors completion
- */
-public void test070() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #BasicTest\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns() {}\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#BasicTest");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns(int, float, Class)}, Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE_IT+"}\n" + 
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns()}, Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test071() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link BasicTestTextIns#BasicTest\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns() {}\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTest", 3); // 3rd occurence
-	assertSortedResults(
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(int, float, Class), Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(), Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test072() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@linkplain javadoc.text.BasicTestTextIns#BasicTest }\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns() {}\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTest", 3); // 3rd occurence
-	assertSortedResults(
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(int, float, Class), Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(), Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test073() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/text/BasicTestTextIns.js",
-			"package javadoc.text;\n" + 
-			"public class BasicTestTextIns {\n" + 
-			"	/**\n" + 
-			"	 * Completion after: OtherTypes#Other\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/text/OtherTypes.js",
-			"package javadoc.text;\n" + 
-			"public class OtherTypes {\n" + 
-			"	OtherTypes() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "OtherTypes#O");
-	assertSortedResults(
-		"OtherTypes[JSDOC_METHOD_REF]{{@link OtherTypes#OtherTypes()}, Ljavadoc.text.OtherTypes;, ()V, OtherTypes, null, "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test074() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/text/BasicTestTextIns.js",
-			"package javadoc.text;\n" + 
-			"public class BasicTestTextIns {\n" + 
-			"	/**\n" + 
-			"	 * Completion after: {@link OtherTypes#O implicit default constructor\n" + 
-			"	 */\n" + 
-			"	void foo() {};\n" +
-			"}",
-		"/Completion/src/javadoc/text/OtherTypes.js",
-			"package javadoc.text;\n" + 
-			"public class OtherTypes {\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "O", 2); // 2nd occurence
-	assertSortedResults(
-		"OtherTypes[FUNCTION_REF<CONSTRUCTOR>]{OtherTypes(), Ljavadoc.text.OtherTypes;, ()V, OtherTypes, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test075() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns() {}\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#");
-	assertSortedResults(
-		"clone[JSDOC_METHOD_REF]{{@link #clone()}, Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"equals[JSDOC_METHOD_REF]{{@link #equals(Object)}, Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"finalize[JSDOC_METHOD_REF]{{@link #finalize()}, Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"getClass[JSDOC_METHOD_REF]{{@link #getClass()}, Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"hashCode[JSDOC_METHOD_REF]{{@link #hashCode()}, Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"notify[JSDOC_METHOD_REF]{{@link #notify()}, Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"notifyAll[JSDOC_METHOD_REF]{{@link #notifyAll()}, Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"toString[JSDOC_METHOD_REF]{{@link #toString()}, Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait(long, int)}, Ljava.lang.Object;, (JI)V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait(long)}, Ljava.lang.Object;, (J)V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait()}, Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns(int, float, Class)}, Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE_IT+"}\n" + 
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns()}, Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test076() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: #blabla\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns() {}\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#");
-	assertSortedResults(
-		"clone[JSDOC_METHOD_REF]{{@link #clone()}, Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"equals[JSDOC_METHOD_REF]{{@link #equals(Object)}, Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"finalize[JSDOC_METHOD_REF]{{@link #finalize()}, Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"getClass[JSDOC_METHOD_REF]{{@link #getClass()}, Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"hashCode[JSDOC_METHOD_REF]{{@link #hashCode()}, Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"notify[JSDOC_METHOD_REF]{{@link #notify()}, Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"notifyAll[JSDOC_METHOD_REF]{{@link #notifyAll()}, Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"toString[JSDOC_METHOD_REF]{{@link #toString()}, Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait(long, int)}, Ljava.lang.Object;, (JI)V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait(long)}, Ljava.lang.Object;, (J)V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"wait[JSDOC_METHOD_REF]{{@link #wait()}, Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNSIT+"}\n" + 
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns(int, float, Class)}, Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE_IT+"}\n" + 
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns()}, Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test077() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link # }\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns() {}\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#", 0); // empty token
-	assertSortedResults(
-		"clone[FUNCTION_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"equals[FUNCTION_REF]{equals(Object), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), "+this.positions+R_DICNRNS+"}\n" + 
-		"finalize[FUNCTION_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"getClass[FUNCTION_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class;, getClass, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"hashCode[FUNCTION_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notify[FUNCTION_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"notifyAll[FUNCTION_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"toString[FUNCTION_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long, int), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(long), Ljava.lang.Object;, (J)V, wait, (millis), "+this.positions+R_DICNRNS+"}\n" + 
-		"wait[FUNCTION_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, "+this.positions+R_DICNRNS+"}\n" + 
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(int, float, Class), Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(), Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test078() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: {@link #BasicTestTextIns(\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns(");
-	assertSortedResults(
-		"BasicTestTextIns[FUNCTION_REF<CONSTRUCTOR>]{BasicTestTextIns(int, float, Class), Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test079() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: BasicTestTextIns#BasicTestTextIns(int,\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns() {}\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns#BasicTestTextIns(int,");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link BasicTestTextIns#BasicTestTextIns(int, float, Class)}, Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test080() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after: BasicTestTextIns#BasicTestTextIns(int,\n" + 
-		"	 * 	Note: completion takes place just after opening brace\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns() {}\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "BasicTestTextIns#BasicTestTextIns(");
-	assertSortedResults(
-			"BasicTestTextIns[JSDOC_METHOD_REF]{{@link BasicTestTextIns#BasicTestTextIns(int, float, Class)}, Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE_IT+"}\n" + 
-			"BasicTestTextIns[JSDOC_METHOD_REF]{{@link BasicTestTextIns#BasicTestTextIns()}, Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test081() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	javadoc.text.BasicTestTextIns#BasicTestTextIns(\n" + 
-		"	 */\n" + 
-		"	void method() {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "javadoc.text.BasicTestTextIns#BasicTestTextIns(");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link javadoc.text.BasicTestTextIns#BasicTestTextIns()}, Ljavadoc.text.BasicTestTextIns;, ()V, BasicTestTextIns, null, "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test082() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	#BasicTestTextIns(int, float, java.lang.\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#BasicTestTextIns(int, float, java.lang.");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns(int, float, Class)}, Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test083() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	#BasicTestTextIns(int, float, java.lang.Cla\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#BasicTestTextIns(int, float, java.lang.Cla");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns(int, float, Class)}, Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test084() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	#BasicTestTextIns(int, float, Class)\n" + 
-		"	 * 	Note: completion takes place before closing parenthesis\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#BasicTestTextIns(int, float, Class");
-	assertSortedResults(
-		"BasicTestTextIns[JSDOC_METHOD_REF]{{@link #BasicTestTextIns(int, float, Class)}, Ljavadoc.text.BasicTestTextIns;, (IFLjava.lang.Class;)V, BasicTestTextIns, (xxx, real, clazz), "+this.positions+JAVADOC_RELEVANCE_IT+"}"
-	);
-}
-
-public void test085() throws JavaScriptModelException {
-	String source =
-		"package javadoc.text;\n" + 
-		"public class BasicTestTextIns {\n" + 
-		"	void method() {}\n" + 
-		"	/**\n" + 
-		"	 * Completion after:\n" + 
-		"	 * 	#BasicTestTextIns(int, float, Class)\n" + 
-		"	 * 	Note: completion takes place after closing parenthesis\n" + 
-		"	 */\n" + 
-		"	BasicTestTextIns(int xxx, float real, Class clazz) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/text/BasicTestTextIns.js", source, true, "#BasicTestTextIns(int, float, Class)");
-	assertSortedResults("");
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocTypeCompletionModelTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocTypeCompletionModelTest.java
deleted file mode 100644
index a0b68f0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/JavadocTypeCompletionModelTest.java
+++ /dev/null
@@ -1,1343 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Hashtable;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.CompletionProposal;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-/**
- * Test class for completion in Javadoc comment of a type declaration.
- */
-public class JavadocTypeCompletionModelTest extends AbstractJavadocCompletionModelTest {
-
-public JavadocTypeCompletionModelTest(String name) {
-	super(name);
-}
-
-static {
-//	TESTS_RANGE = new int[] { 22, -1 };
-//	TESTS_NUMBERS = new int[] { 20 };
-}
-public static Test suite() {
-	return buildModelTestSuite(JavadocTypeCompletionModelTest.class);
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavadocCompletionModelTest#setUp()
- */
-protected void setUp() throws Exception {
-	super.setUp();
-	setUpProjectOptions(CompilerOptions.VERSION_1_4);
-}
-
-/**
- * @category Tests for tag names completion
- */
-public void test001() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" +
-		" * Completion on empty tag name:\n" +
-		" * 	@\n" +
-		" */\n" +
-		"public class Test {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/Test.js", source, true, "@");
-	assertResults(
-		"author[JSDOC_BLOCK_TAG]{@author, null, null, author, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"version[JSDOC_BLOCK_TAG]{@version, null, null, version, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test002() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" +
-		" * Completion on impossible tag name:\n" +
-		" * 	@par\n" +
-		" */\n" +
-		"public class Test {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/Test.js", source, true, "@par");
-	assertResults("");
-}
-
-public void test003() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" +
-		" * Completion on one letter:\n" +
-		" * 	@v\n" +
-		" */\n" +
-		"public class Test {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/Test.js", source, true, "@v");
-	assertResults(
-		"version[JSDOC_BLOCK_TAG]{@version, null, null, version, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test004() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" +
-		" * Completion with several letters:\n" +
-		" * 	@deprec\n" +
-		" */\n" +
-		"public class Test {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/Test.js", source, true, "@deprec");
-	assertResults(
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test005() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" +
-		" * Completion on full tag name:\n" +
-		" * 	@link\n" +
-		" */\n" +
-		"public class Test {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/Test.js", source, true, "@link");
-	assertResults(
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test006() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" +
-		" * Completion on full tag name:\n" +
-		" * 	@link\n" +
-		" */\n" +
-		"public class Test {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/Test.js", source, true, "@li");
-	assertResults(
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test007() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_3);
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" +
-		" * Completion on empty tag name:\n" +
-		" * 	@\n" +
-		" */\n" +
-		"// Note: this test should be done using compliance 1.3\n" +
-		"public class Test {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/Test.js", source, true, "@");
-	assertResults(
-		"author[JSDOC_BLOCK_TAG]{@author, null, null, author, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"version[JSDOC_BLOCK_TAG]{@version, null, null, version, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test008() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" +
-		" * Completion on empty tag name:\n" +
-		" * 	@\n" +
-		" */\n" +
-		"// Note: this test should be done using compliance 1.5\n" +
-		"public class Test<T> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/Test.js", source, true, "@");
-	assertResults(
-		"author[JSDOC_BLOCK_TAG]{@author, null, null, author, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"deprecated[JSDOC_BLOCK_TAG]{@deprecated, null, null, deprecated, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"param[JSDOC_BLOCK_TAG]{@param, null, null, param, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"see[JSDOC_BLOCK_TAG]{@see, null, null, see, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"version[JSDOC_BLOCK_TAG]{@version, null, null, version, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"category[JSDOC_BLOCK_TAG]{@category, null, null, category, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"since[JSDOC_BLOCK_TAG]{@since, null, null, since, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"serial[JSDOC_BLOCK_TAG]{@serial, null, null, serial, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"link[JSDOC_INLINE_TAG]{{@link}, null, null, link, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"docRoot[JSDOC_INLINE_TAG]{{@docRoot}, null, null, docRoot, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"linkplain[JSDOC_INLINE_TAG]{{@linkplain}, null, null, linkplain, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"value[JSDOC_INLINE_TAG]{{@value}, null, null, value, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"code[JSDOC_INLINE_TAG]{{@code}, null, null, code, null, "+this.positions+JAVADOC_RELEVANCE+"}\n" + 
-		"literal[JSDOC_INLINE_TAG]{{@literal}, null, null, literal, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-/**
- * @category Tests for types completion
- */
-public void test010() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see Obj\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "Obj");
-	assertResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test011() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTest\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BasicTest");
-	assertResults(
-		"BasicTestTypes[TYPE_REF]{BasicTestTypes, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"BasicTestReferences[TYPE_REF]{org.eclipse.wst.jsdt.core.tests.BasicTestReferences, org.eclipse.wst.jsdt.core.tests, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test012() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestTypes\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BasicTest");
-	assertResults(
-		"BasicTestTypes[TYPE_REF]{BasicTestTypes, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"BasicTestReferences[TYPE_REF]{org.eclipse.wst.jsdt.core.tests.BasicTestReferences, org.eclipse.wst.jsdt.core.tests, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test013() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTest\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BasicTest");
-	assertResults(
-		"BasicTestTypes<TPARAM>[TYPE_REF]{BasicTestTypes, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes<TTPARAM;>;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"BasicTestReferences[TYPE_REF]{org.eclipse.wst.jsdt.core.tests.BasicTestReferences, org.eclipse.wst.jsdt.core.tests, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test014() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see javadoc.types.tags.BasicTest\n" + 
-		" * 		Note: JDT-UI failed on this one\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "javadoc.types.tags.BasicTest");
-	assertResults(
-		"BasicTestTypes[TYPE_REF]{BasicTestTypes, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test015() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see javadoc.types.tags.BasicTest\n" + 
-		" * 		Note: JDT-UI failed on this one\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "javadoc.types.tags.BasicTest");
-	assertResults(
-		"BasicTestTypes<TPARAM>[TYPE_REF]{BasicTestTypes, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes<TTPARAM;>;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test016() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see java.la\n" + 
-		" * 		Note: JDT-UI fails on this one\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "java.la");
-	assertResults(
-		"java.lang[PACKAGE_REF]{java.lang, java.lang, null, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test017() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see java.lang\n" + 
-		" * 		Note: JDT-UI fails on this one\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "java.la");
-	assertResults(
-		"java.lang[PACKAGE_REF]{java.lang, java.lang, null, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test018() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see pack.Bin\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "pack.Bin");
-	assertSortedResults(
-		"Bin1[TYPE_REF]{pack.Bin1, pack, Lpack.Bin1;, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"Bin2[TYPE_REF]{pack.Bin2, pack, Lpack.Bin2;, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"Bin3[TYPE_REF]{pack.Bin3, pack, Lpack.Bin3;, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test019() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see pack.Bin2\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "pack.Bin");
-	assertSortedResults(
-		"Bin1[TYPE_REF]{pack.Bin1, pack, Lpack.Bin1;, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"Bin2[TYPE_REF]{pack.Bin2, pack, Lpack.Bin2;, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"Bin3[TYPE_REF]{pack.Bin3, pack, Lpack.Bin3;, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test020() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see pack.Bin2\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "pack.Bin2");
-	assertSortedResults(
-		"Bin2[TYPE_REF]{pack.Bin2, pack, Lpack.Bin2;, null, null, "+this.positions+R_DICENQNR+"}"
-	);
-}
-
-public void test021() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see I\n" + 
-		" * 		Note: completion list shoud not include base types.\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "I");
-	assertSortedResults(
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test022() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see java.lang.\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "java.lang.");
-	assertSortedResults(
-		"java.lang.annotation[PACKAGE_REF]{java.lang.annotation, java.lang.annotation, null, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"CharSequence[TYPE_REF]{CharSequence, java.lang, Ljava.lang.CharSequence;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Class[TYPE_REF]{Class, java.lang, Ljava.lang.Class;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"CloneNotSupportedException[TYPE_REF]{CloneNotSupportedException, java.lang, Ljava.lang.CloneNotSupportedException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Comparable[TYPE_REF]{Comparable, java.lang, Ljava.lang.Comparable;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Enum[TYPE_REF]{Enum, java.lang, Ljava.lang.Enum;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Error[TYPE_REF]{Error, java.lang, Ljava.lang.Error;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Exception[TYPE_REF]{Exception, java.lang, Ljava.lang.Exception;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"RuntimeException[TYPE_REF]{RuntimeException, java.lang, Ljava.lang.RuntimeException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Throwable[TYPE_REF]{Throwable, java.lang, Ljava.lang.Throwable;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test023() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see java.\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "java.");
-	assertResults(
-		"java.lang[PACKAGE_REF]{java.lang, java.lang, null, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"java.io[PACKAGE_REF]{java.io, java.io, null, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test024() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see java.lang\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "java.");
-	assertResults(
-		"java.lang.annotation[PACKAGE_REF]{java.lang.annotation, java.lang.annotation, null, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"java.lang[PACKAGE_REF]{java.lang, java.lang, null, null, null, "+this.positions+R_DICQNR+"}\n" + 
-		"java.io[PACKAGE_REF]{java.io, java.io, null, null, null, "+this.positions+R_DICQNR+"}"
-	);
-}
-
-public void test025() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see java.lang.Obj\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "java.lang.");
-	assertSortedResults(
-		"Class[TYPE_REF]{Class, java.lang, Ljava.lang.Class;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"CloneNotSupportedException[TYPE_REF]{CloneNotSupportedException, java.lang, Ljava.lang.CloneNotSupportedException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Error[TYPE_REF]{Error, java.lang, Ljava.lang.Error;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Exception[TYPE_REF]{Exception, java.lang, Ljava.lang.Exception;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"IllegalMonitorStateException[TYPE_REF]{IllegalMonitorStateException, java.lang, Ljava.lang.IllegalMonitorStateException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"InterruptedException[TYPE_REF]{InterruptedException, java.lang, Ljava.lang.InterruptedException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"RuntimeException[TYPE_REF]{RuntimeException, java.lang, Ljava.lang.RuntimeException;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"String[TYPE_REF]{String, java.lang, Ljava.lang.String;, null, null, "+this.positions+R_DICNR+"}\n" + 
-		"Throwable[TYPE_REF]{Throwable, java.lang, Ljava.lang.Throwable;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test026() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see java.lang.Objec\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "java.lang.Ob");
-	assertResults(
-		"Object[TYPE_REF]{Object, java.lang, Ljava.lang.Object;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-/**
- * @category Tests for member types completion
- */
-public void test030() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestTypesM\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"	class BasicTestTypesMember {}\n" + 
-		"}\n" + 
-		"class BasicTestTypesTestSecondary {}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BasicTestTypesM");
-	assertResults(
-		"BasicTestTypes.BasicTestTypesMember[TYPE_REF]{BasicTestTypesMember, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes$BasicTestTypesMember;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test031() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestTypesMember\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"	class BasicTestTypesMember {}\n" + 
-		"}\n" + 
-		"class BasicTestTypesSecondary {}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BasicTestTypesM");
-	assertResults(
-		"BasicTestTypes.BasicTestTypesMember[TYPE_REF]{BasicTestTypesMember, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes$BasicTestTypesMember;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test032() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestTypes.BasicTestTypesM\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"	class BasicTestTypesMember {}\n" + 
-		"}\n" + 
-		"class BasicTestTypesSecondary {}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BasicTestTypesM");
-	assertResults(
-		"BasicTestTypes.BasicTestTypesMember[TYPE_REF]{BasicTestTypesMember, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes$BasicTestTypesMember;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test033() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see javadoc.types.tags.BasicTestTypes.BasicTestTypesM\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"	class BasicTestTypesMember {}\n" + 
-		"}\n" + 
-		"class BasicTestTypesSecondary {}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BasicTestTypesM");
-	assertResults(
-		"BasicTestTypes.BasicTestTypesMember[TYPE_REF]{BasicTestTypesMember, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes$BasicTestTypesMember;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test034() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestTypesS\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n" + 
-		"class BasicTestTypesSecondary {}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BasicTestTypesS");
-	assertResults(
-		"BasicTestTypesSecondary[TYPE_REF]{BasicTestTypesSecondary, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypesSecondary;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-
-public void test035() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see javadoc.types.tags.BasicTestTypesS\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n" + 
-		"class BasicTestTypesSecondary {}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "javadoc.types.tags.BasicTestTypesS");
-	assertResults(
-		"BasicTestTypesSecondary[TYPE_REF]{BasicTestTypesSecondary, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypesSecondary;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test036() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see javadoc.types.tags.BasicTestTypesSecondary\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n" + 
-		"class BasicTestTypesSecondary {}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "javadoc.types.tags.BasicTestTypesS");
-	assertResults(
-		"BasicTestTypesSecondary[TYPE_REF]{BasicTestTypesSecondary, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypesSecondary;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test037() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see javadoc.types.tags.BasicTestTypes.BasicTestTypes\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}\n" + 
-		"class BasicTestTypesSecondary {}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "javadoc.types.tags.BasicTestTypes.BasicTestTypes");
-	assertResults("");
-}
-
-
-/**
- * @category Tests for fields completion
- */
-public void test040() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestReferences#FIE\n" + 
-		" * 		Note: JDT/UI create one proposal on this one\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "FIE");
-	assertResults("");
-}
-
-public void test041() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see org.eclipse.wst.jsdt.core.tests.BasicTestReferences#FIE\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "FIE");
-	assertResults(
-		"FIELD[FIELD_REF]{FIELD, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, I, FIELD, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test042() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see org.eclipse.wst.jsdt.core.tests.BasicTestReferences#FIELD\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "FIE");
-	assertResults(
-		"FIELD[FIELD_REF]{FIELD, Lorg.eclipse.wst.jsdt.core.tests.BasicTestReferences;, I, FIELD, null, "+this.positions+R_DICNR+"}"
-	);
-}
-
-public void test043() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see #fo\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.types.tags.BasicTestTypes;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test044() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see #foo\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"	int foo;\n" + 
-		"}";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.types.tags.BasicTestTypes;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test045() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/types/tags/BasicTestTypes.js",
-			"package javadoc.types.tags;\n" + 
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#fo\n" + 
-			" */\n" + 
-			"public class BasicTestTypes {\n" + 
-			"}",
-		"/Completion/src/javadoc/types/tags/OtherTypes.js",
-			"package javadoc.types.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	int foo;\n" + 
-			"}"
-	};
-	completeInJavadoc(sources, true, "fo");
-	assertResults(
-		"foo[FIELD_REF]{foo, Ljavadoc.types.tags.OtherTypes;, I, foo, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-
-/**
- * @category Tests for methods completion
- */
-public void test050() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestMethod.meth\n" + 
-		" * 		Note that test result may change if bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=26814 was fixed\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, int x, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "meth");
-	assertResults("");
-}
-
-public void test051() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@see BasicTestMethod#unknown\n" + 
-		" * 		- completion list shoud be empty\n" + 
-		" */\n" + 
-		"public class BasicTestTypes {\n" + 
-		"	void method() {}\n" + 
-		"	void paramMethod(String str, int x, Object obj) {}\n" + 
-		"}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "unknown");
-	assertResults("");
-}
-
-public void test052() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/types/tags/BasicTestTypes.js",
-			"package javadoc.types.tags;\n" + 
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#meth\n" + 
-			" */\n" + 
-			"public class BasicTestTypes {\n" + 
-			"}",
-		"/Completion/src/javadoc/types/tags/OtherTypes.js",
-			"package javadoc.types.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void method() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "meth");
-	assertResults(
-		"method[FUNCTION_REF]{method(), Ljavadoc.types.tags.OtherTypes;, ()V, method, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-public void test053() throws JavaScriptModelException {
-	String[] sources = {
-		"/Completion/src/javadoc/types/tags/BasicTestTypes.js",
-			"package javadoc.types.tags;\n" + 
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see OtherTypes#method\n" + 
-			" */\n" + 
-			"public class BasicTestTypes {\n" + 
-			"}",
-		"/Completion/src/javadoc/types/tags/OtherTypes.js",
-			"package javadoc.types.tags;\n" + 
-			"public class OtherTypes {\n" + 
-			"	void method() {};\n" +
-			"}"
-	};
-	completeInJavadoc(sources, true, "meth");
-	assertResults(
-		"method[FUNCTION_REF]{method(), Ljavadoc.types.tags.OtherTypes;, ()V, method, null, "+this.positions+R_DICNRNS+"}"
-	);
-}
-
-/**
- * @category Tests for type parameters completion
- */
-public void test060() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param \n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "@param ", 0); // empty token
-	assertResults(
-		"TPARAM[JSDOC_PARAM_REF]{<TPARAM>, null, null, TPARAM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test061() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <\n" + 
-		" * 	Note:\n" + 
-		" * 		JDT/UI fails on this one (no proposal)\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<");
-	assertResults(
-		"TPARAM[JSDOC_PARAM_REF]{<TPARAM>, null, null, TPARAM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test062() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <TPA\n" + 
-		" * 	Note:\n" + 
-		" * 		JDT/UI fails on this one (no proposal)\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<TPA");
-	assertResults(
-		"TPARAM[JSDOC_PARAM_REF]{<TPARAM>, null, null, TPARAM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test063() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <TPARAM\n" + 
-		" * 	Note:\n" + 
-		" * 		JDT/UI fails on this one (no proposal)\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<TPA");
-	assertResults(
-		"TPARAM[JSDOC_PARAM_REF]{<TPARAM>, null, null, TPARAM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test064() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <TPARAM\n" + 
-		" * 	Note:\n" + 
-		" * 		JDT/UI fails on this one (no proposal)\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<TPARAM");
-	assertResults(
-		"TPARAM[JSDOC_PARAM_REF]{<TPARAM>, null, null, TPARAM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test065() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <TPARAM>\n" + 
-		" * 	Note:\n" + 
-		" * 		JDT/UI fails on this one (no proposal)\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<TPARAM");
-	assertResults(
-		"TPARAM[JSDOC_PARAM_REF]{<TPARAM>, null, null, TPARAM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test066() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <TPARAM>\n" + 
-		" * 	Note:\n" + 
-		" * 		JDT/UI fails on this one (no proposal)\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<TPARAM> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<TPARAM>");
-	assertResults(
-		"TPARAM[JSDOC_PARAM_REF]{<TPARAM>, null, null, TPARAM, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test067() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <T1>\n" + 
-		" * 	@param <T1>\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<T1, T2, T3> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<T1>");
-	assertResults("");
-}
-
-public void test068() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <T1>\n" + 
-		" * 	@param <T1>\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<T1, T2, T3> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<T1>", 2); //2nd position
-	assertResults("");
-}
-
-public void test069() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <T1>\n" + 
-		" ** 	@param \n" + 
-		" * 	@param <T3>\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<T1, T2, T3> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "** 	@param ", 0); // empty token
-	assertResults(
-		"T2[JSDOC_PARAM_REF]{<T2>, null, null, T2, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test070() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <T1>\n" + 
-		" * 	@param <T2>\n" + 
-		" * 	@param <T3>\n" + 
-		" */\n" + 
-		"public class BasicTestTypes<T1, T2, T3> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "<T", 3); // 3rd position
-	assertResults(
-		"T3[JSDOC_PARAM_REF]{<T3>, null, null, T3, null, "+this.positions+JAVADOC_RELEVANCE+"}"
-	);
-}
-
-public void test071() throws JavaScriptModelException {
-	setUpProjectOptions(CompilerOptions.VERSION_1_5);
-	String source =
-		"package javadoc.types.tags;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	@param <T1>\n" + 
-		" * 	@param <T2>\n" + 
-		" * 	@param <T3>\n" + 
-		" ** 	@param \n" + 
-		" */\n" + 
-		"public class BasicTestTypes<T1, T2, T3> {}\n";
-	completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "** 	@param ", 0); // empty token
-	assertResults("");
-}
-
-/**
- * @tests Tests for camel case completion
- */
-public void test080() throws JavaScriptModelException {
-	this.oldOptions = JavaScriptCore.getOptions();
-	try {
-		Hashtable options = new Hashtable(oldOptions);
-		options.put(JavaScriptCore.CODEASSIST_CAMEL_CASE_MATCH, JavaScriptCore.ENABLED);
-		JavaScriptCore.setOptions(options);
-		
-		String source =
-			"package javadoc.types.tags;\n" + 
-			"/**\n" + 
-			" * Completion after:\n" + 
-			" * 	@see BTT\n" + 
-			" */\n" + 
-			"public class BasicTestTypes {}\n";
-		completeInJavadoc("/Completion/src/javadoc/types/tags/BasicTestTypes.js", source, true, "BTT");
-		assertResults("BasicTestTypes[TYPE_REF]{BasicTestTypes, javadoc.types.tags, Ljavadoc.types.tags.BasicTestTypes;, null, null, "+this.positions+"16}");
-	} finally {
-		JavaScriptCore.setOptions(oldOptions);
-	}
-}
-/**
- * @category Tests for filtered completion
- */
-public void test100() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasi bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasi",
-			1,
-			new int[]{});
-	assertResults(
-			"ZBasicTestTypes[TYPE_REF]{ZBasicTestTypes, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICUNR+"}\n" + 
-			"ZBasicTestTypes[JSDOC_TYPE_REF]{{@link ZBasicTestTypes}, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICUNRIT+"}"
-	);
-}
-public void test101() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasi bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasi",
-			1,
-			new int[]{CompletionProposal.JSDOC_TYPE_REF});
-	assertResults(
-			"ZBasicTestTypes[TYPE_REF]{ZBasicTestTypes, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICUNR+"}"
-	);
-}
-public void test102() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasi bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasi",
-			1,
-			new int[]{CompletionProposal.TYPE_REF});
-	assertResults(
-			"ZBasicTestTypes[JSDOC_TYPE_REF]{{@link ZBasicTestTypes}, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICUNRIT+"}"
-	);
-}
-public void test103() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasicTestTypes#fo bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public void foo() {}\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasicTestTypes#fo",
-			1,
-			new int[]{});
-	assertResults(
-			"foo[JSDOC_METHOD_REF]{{@link ZBasicTestTypes#foo()}, Ljavadoc.types.ZBasicTestTypes;, ()V, foo, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-public void test104() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasicTestTypes#fo bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public void foo() {}\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasicTestTypes#fo",
-			1,
-			new int[]{CompletionProposal.JSDOC_METHOD_REF});
-	assertResults(
-			""
-	);
-}
-public void test105() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasicTestTypes#fo bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public void foo() {}\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasicTestTypes#fo",
-			1,
-			new int[]{CompletionProposal.METHOD_REF});
-	assertResults(
-			"foo[JSDOC_METHOD_REF]{{@link ZBasicTestTypes#foo()}, Ljavadoc.types.ZBasicTestTypes;, ()V, foo, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-public void test106() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasicTestTypes#fo bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public int foo;\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasicTestTypes#fo",
-			1,
-			new int[]{});
-	assertResults(
-			"foo[JSDOC_FIELD_REF]{{@link ZBasicTestTypes#foo}, Ljavadoc.types.ZBasicTestTypes;, I, foo, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-public void test107() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasicTestTypes#fo bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public int foo;\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasicTestTypes#fo",
-			1,
-			new int[]{CompletionProposal.JSDOC_FIELD_REF});
-	assertResults(
-			""
-	);
-}
-public void test108() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla ZBasicTestTypes#fo bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public int foo;\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"ZBasicTestTypes#fo",
-			1,
-			new int[]{CompletionProposal.FIELD_REF});
-	assertResults(
-			"foo[JSDOC_FIELD_REF]{{@link ZBasicTestTypes#foo}, Ljavadoc.types.ZBasicTestTypes;, I, foo, null, "+this.positions+R_DICNRNSIT+"}"
-	);
-}
-public void test109() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla javadoc.types.ZBasi bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"javadoc.types.ZBasi",
-			1,
-			new int[]{});
-	assertResults(
-			"ZBasicTestTypes[TYPE_REF]{ZBasicTestTypes, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICNR+"}\n" + 
-			"ZBasicTestTypes[JSDOC_TYPE_REF]{{@link ZBasicTestTypes}, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICNRIT+"}"
-	);
-}
-public void test110() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla javadoc.types.ZBasi bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"javadoc.types.ZBasi",
-			1,
-			new int[]{CompletionProposal.JSDOC_TYPE_REF});
-	assertResults(
-			"ZBasicTestTypes[TYPE_REF]{ZBasicTestTypes, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-public void test111() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla javadoc.types.ZBasi bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"javadoc.types.ZBasi",
-			1,
-			new int[]{CompletionProposal.TYPE_REF});
-	assertResults(
-			"ZBasicTestTypes[JSDOC_TYPE_REF]{{@link ZBasicTestTypes}, javadoc.types, Ljavadoc.types.ZBasicTestTypes;, null, null, "+this.positions+R_DICNRIT+"}"
-	);
-}
-public void test112() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla javadoc.types.ZBasicTestTypes.Inn bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public class Inner {}\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"javadoc.types.ZBasicTestTypes.Inn",
-			1,
-			new int[]{});
-	assertResults(
-			"ZBasicTestTypes.Inner[TYPE_REF]{Inner, javadoc.types, Ljavadoc.types.ZBasicTestTypes$Inner;, null, null, "+this.positions+R_DICNR+"}\n" + 
-			"ZBasicTestTypes.Inner[JSDOC_TYPE_REF]{{@link Inner}, javadoc.types, Ljavadoc.types.ZBasicTestTypes$Inner;, null, null, "+this.positions+R_DICNRIT+"}"
-	);
-}
-public void test113() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla javadoc.types.ZBasicTestTypes.Inn bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public class Inner {}\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"javadoc.types.ZBasicTestTypes.Inn",
-			1,
-			new int[]{CompletionProposal.JSDOC_TYPE_REF});
-	assertResults(
-			"ZBasicTestTypes.Inner[TYPE_REF]{Inner, javadoc.types, Ljavadoc.types.ZBasicTestTypes$Inner;, null, null, "+this.positions+R_DICNR+"}"
-	);
-}
-public void test114() throws JavaScriptModelException {
-	String source =
-		"package javadoc.types;\n" + 
-		"/**\n" + 
-		" * Completion after:\n" + 
-		" * 	bla javadoc.types.ZBasicTestTypes.Inn bla\n" + 
-		" */\n" + 
-		"public class ZBasicTestTypes {\n" + 
-		"  public class Inner {}\n" + 
-		"}\n";
-	completeInJavadoc(
-			"/Completion/src/javadoc/types/ZBasicTestTypes.js",
-			source,
-			true,
-			"javadoc.types.ZBasicTestTypes.Inn",
-			1,
-			new int[]{CompletionProposal.TYPE_REF});
-	assertResults(
-			"ZBasicTestTypes.Inner[JSDOC_TYPE_REF]{{@link Inner}, javadoc.types, Ljavadoc.types.ZBasicTestTypes$Inner;, null, null, "+this.positions+R_DICNRIT+"}"
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/LocalElementTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/LocalElementTests.java
deleted file mode 100644
index 0a23e4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/LocalElementTests.java
+++ /dev/null
@@ -1,580 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IType;
-
-import junit.framework.Test;
-
-public class LocalElementTests extends ModifyingResourceTests {
-	
-	public LocalElementTests(String name) {
-		super(name);
-	}
-	
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-		// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//		TESTS_NAMES = new String[] { "testLocalType8" };
-		// Numbers of tests to run: "test<number>" will be run for each number of this array
-//		TESTS_NUMBERS = new int[] { 13 };
-		// Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
-//		TESTS_RANGE = new int[] { 16, -1 };
-	}
-	public static Test suite() {
-		return buildModelTestSuite(LocalElementTests.class);
-	}
-
-	public void setUpSuite() throws Exception {
-		createJavaProject("P");
-	}
-
-	public void tearDownSuite() throws Exception {
-		deleteProject("P");
-	}
-
-	/*
-	 * Anonymous type test.
-	 */
-	public void testAnonymousType1() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    run(new X() {\n" +
-				"    });\n" +
-				"  }\n" +
-				"  void run(X x) {\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    void foo()\n" + 
-				"      class <anonymous #1>\n" + 
-				"    void run(X)",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-
-	/*
-	 * Anonymous type test.
-	 */
-	public void testAnonymousType2() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  public class Y {\n" +
-				"  }\n" +
-				"  void foo() {\n" +
-				"    run(new X() {\n" +
-				"    });\n" +
-				"    run(new Y() {\n" +
-				"    });\n" +
-				"  }\n" +
-				"  void run(X x) {\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    class Y\n" +
-				"    void foo()\n" + 
-				"      class <anonymous #1>\n" + 
-				"      class <anonymous #2>\n" + 
-				"    void run(X)",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-
-	/*
-	 * Anonymous type test.
-	 */
-	public void testAnonymousType3() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    run(new X() {\n" +
-				"      void bar() {\n" +
-				"        run(new X() {\n" +
-				"        });\n" +
-				"      }\n" +
-				"    });\n" +
-				"  }\n" +
-				"  void run(X x) {\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    void foo()\n" + 
-				"      class <anonymous #1>\n" + 
-				"        void bar()\n" +
-				"          class <anonymous #1>\n" + 
-				"    void run(X)",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-
-	/*
-	 * Anonymous type test.
-	 */
-	public void testAnonymousType4() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  {\n" +
-				"      field = new Vector() {\n" +
-				"      };\n" +
-				"  }\n" +
-				"  Object field = new Object() {\n" +
-				"  };\n" +
-				"  void foo() {\n" +
-				"    run(new X() {\n" +
-				"    });\n" +
-				"  }\n" +
-				"  void run(X x) {\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    <initializer #1>\n" + 
-				"      class <anonymous #1>\n" + 
-				"    Object field\n" + 
-				"      class <anonymous #1>\n" + 
-				"    void foo()\n" + 
-				"      class <anonymous #1>\n" + 
-				"    void run(X)",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-	
-	/*
-	 * Anonymous type test.
-	 * (regression test for bug 69028 Anonymous type in argument of super() is not in type hierarchy)
-	 */
-	public void testAnonymousType5() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  X(Object o) {\n" +
-				"  }\n" +
-				"}\n" +
-				"class Y extends X {\n" +
-				"  Y() {\n" +
-				"    super(new Object() {});\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    X(Object)\n" + 
-				"  class Y\n" + 
-				"    Y()\n" + 
-				"      class <anonymous #1>",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-	
-	/*
-	 * Ensures that an anonymous in an enum constant is said to be local.
-	 * (regression test for bug 85298 [1.5][enum] IType of anonymous enum declaration says isLocal() == false)
-	 */
-	public void testAnonymousType6() throws CoreException {
-		try {
-			createJavaProject("P15", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-			createFile(
-				"/P15/En.js",
-				"public enum En {\n" +
-				"  CONST() {};\n" +
-				"}"
-			);
-			IType type = getCompilationUnit("/P15/En.js").getType("En").getField("CONST").getType("", 1);
-			assertTrue("Should be a local type", type.isLocal());
-		} finally {
-			deleteProject("P15");
-		}
-	}
-
-	/*
-	 * Anonymous type test.
-	 * (regression test for bug 147485 Anonymous type missing from java model)
-	 */
-	public void testAnonymousType7() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" + 
-				"	class Y {\n" + 
-				"	}\n" + 
-				"	{\n" + 
-				"		new Y() {\n" + 
-				"			class Z {\n" + 
-				"			}\n" + 
-				"			{\n" + 
-				"				new Y() {\n" + 
-				"				};\n" + 
-				"			}\n" + 
-				"		};\n" + 
-				"	}\n" + 
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    class Y\n" + 
-				"    <initializer #1>\n" + 
-				"      class <anonymous #1>\n" + 
-				"        class Z\n" + 
-				"        <initializer #1>\n" + 
-				"          class <anonymous #1>",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-	
-	/*
-	 * IType.getSuperclassName() test
-	 */
-	public void testGetSuperclassName() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    run(new X() {\n" +
-				"    });\n" +
-				"  }\n" +
-				"  void run(X x) {\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			IType type = cu.getType("X").getFunction("foo", new String[0]).getType("", 1);
-			assertEquals(
-				"Unexpected superclass name",
-				"X",
-				type.getSuperclassName());
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-
-	/*
-	 * IMember.getType(...) test
-	 */
-	public void testGetType() {
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		IType topLevelType = cu.getType("X");
-		IJavaScriptElement[] types = new IJavaScriptElement[5];
-		types[0] = topLevelType.getInitializer(1).getType("", 1);
-		types[1] = topLevelType.getInitializer(1).getType("Y", 1);
-		types[2] = topLevelType.getField("f").getType("", 1);
-		types[3] = topLevelType.getFunction("foo", new String[] {"I", "QString;"}).getType("", 1);
-		types[4] = topLevelType.getFunction("foo", new String[] {"I", "QString;"}).getType("Z", 1);
-		assertElementsEqual(
-			"Unexpected types",
-			"<anonymous #1> [in <initializer #1> [in X [in X.java [in <default> [in <project root> [in P]]]]]]\n" + 
-			"Y [in <initializer #1> [in X [in X.java [in <default> [in <project root> [in P]]]]]]\n" + 
-			"<anonymous #1> [in f [in X [in X.java [in <default> [in <project root> [in P]]]]]]\n" + 
-			"<anonymous #1> [in foo(int, String) [in X [in X.java [in <default> [in <project root> [in P]]]]]]\n" + 
-			"Z [in foo(int, String) [in X [in X.java [in <default> [in <project root> [in P]]]]]]",
-			types);
-	}
-	
-	/*
-	 * Local type test.
-	 */
-	public void testLocalType1() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    class Y {\n" +
-				"    }\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    void foo()\n" + 
-				"      class Y",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-
-	/*
-	 * Local type test.
-	 */
-	public void testLocalType2() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    class Y {\n" +
-				"    }\n" +
-				"    class Z {\n" +
-				"    }\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    void foo()\n" + 
-				"      class Y\n" + 
-				"      class Z", 
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-
-	/*
-	 * Local type test.
-	 */
-	public void testLocalType3() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    class Y {\n" +
-				"      void bar() {\n" +
-				"        class Z {\n" +
-				"        }\n" +
-				"      }\n" +
-				"    }\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    void foo()\n" + 
-				"      class Y\n" + 
-				"        void bar()\n" +
-				"          class Z",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-
-	/*
-	 * Local type test.
-	 */
-	public void testLocalType4() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  {\n" +
-				"      class Y {\n" +
-				"      }\n" +
-				"  }\n" +
-				"  void foo() {\n" +
-				"    class Z {\n" +
-				"    }\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    <initializer #1>\n" + 
-				"      class Y\n" + 
-				"    void foo()\n" + 
-				"      class Z",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-	
-	/*
-	 * Local type test.
-	 */
-	public void testLocalType5() throws CoreException {
-		try {
-			createFile(
-				"/P/X.js",
-				"public class X {\n" +
-				"  void foo() {\n" +
-				"    class Z {\n" +
-				"    }\n" +
-				"    Z\n" +
-				"  }\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-			assertElementDescendants(
-				"Unexpected compilation unit contents",
-				"X.java\n" + 
-				"  class X\n" + 
-				"    void foo()\n" + 
-				"      class Z",
-				cu);
-		} finally {
-			deleteFile("/P/X.js");
-		}
-	}
-    
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357
-    public void _testLocalType6() throws CoreException {
-        try {
-            createFile(
-                "/P/X.js",
-                "public class X {\n" +
-                "  void foo() {\n" +
-                "    class Y {\n" +
-                "      {\n" +
-                "        class Z {\n" +
-                "        }\n" +
-                "      }\n" +
-                "    }\n" +
-                "  }\n" +
-                "}"
-            );
-            IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-            assertElementDescendants(
-                "Unexpected compilation unit contents",
-                "X.java\n" + 
-                "  class X\n" + 
-                "    void foo()\n" + 
-                "      class Y\n" + 
-                "        <initializer #1>\n" + 
-                "          class Z",
-                cu);
-        } finally {
-            deleteFile("/P/X.js");
-        }
-    }    
-
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357
-    public void _testLocalType7() throws CoreException {
-        try {
-            createFile(
-                "/P/X.js",
-                "public class X {\n" +
-                "  void foo() {\n" +
-                "    class Y {\n" +
-                "      {\n" +
-                "        class Z {\n" +
-                "        }\n" +
-                "      }\n" +
-                "      String s = null;\n" +
-                "    }\n" +
-                "  }\n" +
-                "}"
-            );
-            IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-            assertElementDescendants(
-                "Unexpected compilation unit contents",
-                "X.java\n" + 
-                "  class X\n" + 
-                "    void foo()\n" + 
-                "      class Y\n" + 
-                "        <initializer #1>\n" + 
-                "          class Z\n" +
-                "        String s", 
-                cu);
-        } finally {
-            deleteFile("/P/X.js");
-        }
-    }         
-    
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=167357
-    public void _testLocalType8() throws CoreException {
-        try {
-            createFile(
-                "/P/X.js",
-                "public class X {\n" +
-                "  void foo() {\n" +
-                "    class Y {\n" +
-                "      String s = null;\n" +
-                "      {\n" +
-                "        class Z {\n" +
-                "        }\n" +
-                "      }\n" +
-                "    }\n" +
-                "  }\n" +
-                "}"
-            );
-            IJavaScriptUnit cu = getCompilationUnit("/P/X.js");
-            assertElementDescendants(
-                "Unexpected compilation unit contents",
-                "X.java\n" + 
-                "  class X\n" + 
-                "    void foo()\n" + 
-                "      class Y\n" + 
-                "        String s\n"+ 
-                "        <initializer #1>\n" + 
-                "          class Z",
-                cu);
-        } finally {
-            deleteFile("/P/X.js");
-        }
-    }      
-    
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/MementoTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/MementoTests.java
deleted file mode 100644
index c3fb891..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/MementoTests.java
+++ /dev/null
@@ -1,678 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.core.JavaElement;
-import org.eclipse.wst.jsdt.internal.core.LocalVariable;
-
-import junit.framework.Test;
-
-public class MementoTests extends ModifyingResourceTests {
-public MementoTests(String name) {
-	super(name);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//	TESTS_PREFIX =  "testArray";
-//	TESTS_NAMES = new String[] { "testPackageFragmentRootMemento8" };
-//	TESTS_NUMBERS = new int[] { 8 };
-//	TESTS_RANGE = new int[] { 6, -1 };
-}
-
-public static Test suite() {
-	return buildModelTestSuite(MementoTests.class);
-}
-protected void assertMemento(String expected, IJavaScriptElement element) {
-	String actual = element.getHandleIdentifier();
-	if (!expected.equals(actual)){
-		String escapedExternalJCL = getEscapedExternalJCLPath();
-		int start = actual.indexOf(escapedExternalJCL);
-		if (start != -1) {
-			String firstPart = actual.substring(0, start);
-		 	System.out.print(Util.displayString(firstPart, 2));
-		 	System.out.print(" + getEscapedExternalJCLPath() + ");
-		 	String secondPart = actual.substring(start+escapedExternalJCL.length());
-		 	System.out.print(Util.displayString(secondPart, 0));
-		} else {
-			System.out.print(Util.displayString(actual, 2));
-		}
-	 	System.out.println(",");
-	}
-	assertEquals(
-		"Unexpected memento for " + element,
-		expected,
-		actual);
-	IJavaScriptElement restored = JavaScriptCore.create(actual);
-	assertEquals(
-		"Unexpected restored element",
-		element,
-		restored);
-}
-protected String getEscapedExternalJCLPath() {
-	String path = getExternalJCLPath("").toString();
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < path.length(); i++) {
-		char character = path.charAt(i);
-		if (character == '/') buffer.append('\\');
-		buffer.append(character);
-	}
-	return buffer.toString();
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	this.createJavaProject(
-			"P", 
-			new String[] {"src"}, 
-			new String[] {
-					getSystemJsPathString(), 
-				"/P/lib",
-				"/P/lib/myLib.jar",
-				"/OtherProj/lib", 
-				"/OtherProj/lib/myLib.jar",
-			});
-}
-public void tearDownSuite() throws Exception {
-	this.deleteProject("P");
-	super.tearDownSuite();
-}
-/**
- * Tests that an anonymous type can be persisted and restored using its memento.
- */
-public void testAnonymousTypeMemento1() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	
-	IType anonymous = type.getInitializer(1).getType("", 1);
-	assertMemento(
-		"=P/src<p{X.java[X|1[",
-		anonymous);
-
-	anonymous = type.getInitializer(1).getType("", 2);
-	assertMemento(
-		"=P/src<p{X.java[X|1[!2",
-		anonymous);
-}
-/**
- * Tests that an anonymous type can be persisted and restored using its memento.
- */
-public void testAnonymousTypeMemento2() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	
-	IType anonymous = type.getField("f").getType("", 1);
-	assertMemento(
-		"=P/src<p{X.java[X^f[",
-		anonymous);
-		
-	anonymous = type.getField("f").getType("", 3);
-	assertMemento(
-		"=P/src<p{X.java[X^f[!3",
-		anonymous);
-}
-/**
- * Tests that an anonymous type can be persisted and restored using its memento.
- */
-public void testAnonymousTypeMemento3() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	
-	IType anonymous = type.getFunction("foo", new String[]{}).getType("", 1);
-	assertMemento(
-		"=P/src<p{X.java[X~foo[",
-		anonymous);
-		
-	anonymous = type.getFunction("foo", new String[]{}).getType("", 4);
-	assertMemento(
-		"=P/src<p{X.java[X~foo[!4",
-		anonymous);
-}
-/**
- * Tests that a binary field can be persisted and restored using its memento.
- */
-public void testBinaryFieldMemento() throws JavaScriptModelException {
-	IField field = getClassFile("/P/lib/p/X.class").getType().getField("field");
-	assertMemento(
-		"=P/lib<p(X.class[X^field",
-		field);
-}
-/**
- * Tests that an inner type, inner field and inner method can be persisted and restored
- * using mementos.
- */
-public void testBinaryInnerTypeMemento() throws JavaScriptModelException {
-	IType type = getClassFile("/P/lib/p/X$Inner.class").getType();
-
-	assertMemento(
-		"=P/lib<p(X$Inner.class[Inner",
-		type);
-
-	IField innerField = type.getField("field");
-	assertMemento(
-		"=P/lib<p(X$Inner.class[Inner^field",
-		innerField);
-	
-	IFunction innerMethod = type.getFunction("foo", new String[] {"I", "Ljava.lang.String;"});
-	assertMemento(
-		"=P/lib<p(X$Inner.class[Inner~foo~I~Ljava.lang.String;",
-		innerMethod);
-}
-/**
- * Tests that a binary method can be persisted and restored using its memento.
- */
-public void testBinaryMethodMemento1() throws JavaScriptModelException {
-	IType type = getClassFile("/P/lib/p/X.class").getType();
-	IFunction method = type.getFunction("foo", new String[] {"I", "Ljava.lang.String;"});
-	assertMemento(
-		"=P/lib<p(X.class[X~foo~I~Ljava.lang.String;",
-		method);
-}
-/**
- * Tests that a binary method can be persisted and restored using its memento.
- */
-public void testBinaryMethodMemento2() throws JavaScriptModelException {
-	IType type = getClassFile("/P/lib/p/X.class").getType();
-	IFunction method = type.getFunction("bar", new String[] {});
-	assertMemento(
-		"=P/lib<p(X.class[X~bar",
-		method);
-}	
-/**
- * Tests that a binary method can be persisted and restored using its memento.
- */
-public void testBinaryMethodMemento3() throws JavaScriptModelException {
-	IType type = getClassFile("/P/lib/p/X.class").getType();
-	IFunction method = type.getFunction("fred", new String[] {"[Z"});
-	assertMemento(
-		"=P/lib<p(X.class[X~fred~\\[Z",
-		method);
-}
-/**
- * Tests that a binary method with a parameter with wildcard can be persisted and restored using its memento.
- * (regression test for bug 75466 [1.5] IAE in JavaElement.exists() for Collection<E>#containsAll(Collection<?>))
- */
-public void testBinaryMethodMemento4() throws JavaScriptModelException {
-	IType type = getClassFile("/P/lib/p/X.class").getType();
-	IFunction method = type.getFunction("foo", new String[] {"Ljava.util.Collection<*>;"});
-	assertMemento(
-		"=P/lib<p(X.class[X~foo~Ljava.util.Collection\\<*>;",
-		method);
-}
-
-/**
- * Tests that a binary type can be persisted and restored using its memento.
- */
-public void testBinaryTypeMemento() throws JavaScriptModelException {
-	IType type = getClassFile("/P/lib/p/X.class").getType();
-	assertMemento(
-		"=P/lib<p(X.class[X",
-		type);
-}
-/**
- * Tests that a class file can be persisted and restored using its memento.
- */
-public void testClassFileMemento() {
-	IClassFile cf =  getClassFile("/P/lib/p/X.class");
-	assertMemento(
-		"=P/lib<p(X.class",
-		cf);
-
-	cf = getClassFile("/P/lib/Y.class");
-	assertMemento(
-		"=P/lib<(Y.class",
-		cf);
-	
-}
-/**
- * Tests that a compilation unit can be persisted and restored using its memento.
- */
-public void testCompilationUnitMemento() {
-	IJavaScriptUnit cu = getCompilationUnit("/P/src/p/X.js");
-	assertMemento(
-		"=P/src<p{X.js",
-		cu);
-		
-	cu = getCompilationUnit("/P/src/Y.js");
-	assertMemento(
-		"=P/src<{Y.js",
-		cu);
-}
-/**
- * Tests that a binary field in an external jar can be persisted and restored using its memento.
- */
-public void testExternalJarBinaryFieldMemento() throws JavaScriptModelException {	
-	IType type = getClassFile("P", getSystemJsPathString(), "p", "X.class").getType();
-	IField field = type.getField("field");
-	assertMemento(
-		"=P/"+ getEscapedExternalJCLPath() + "<p(X.class[X^field",
-		field);
-}
-/**
- * Tests that a inner binary type and field in an external jar can be persisted and restored using its memento.
- */
-public void testExternalJarBinaryInnerTypeMemento() throws JavaScriptModelException {
-	IType type = getClassFile("P", getSystemJsPathString(), "p", "X$Inner.class").getType();
-	assertMemento(
-		"=P/" + getEscapedExternalJCLPath() + "<p(X$Inner.class[Inner",
-		type);
-}
-/**
- * Tests that a binary method in an external jar can be persisted and restored using its memento.
- */
-public void testExternalJarBinaryMethodMemento() throws JavaScriptModelException {	
-	IType type = getClassFile("P", getSystemJsPathString(), "p", "X.class").getType();
-	IFunction method = type.getFunction("foo", new String[] {"[Ljava.lang.String;"});
-	assertMemento(
-		"=P/" + getEscapedExternalJCLPath() + "<p(X.class[X~foo~\\[Ljava.lang.String;",
-		method);
-}
-/**
- * Tests that a binary type in an external jar can be persisted and restored using its memento.
- */
-public void testExternalJarBinaryTypeMemento() throws JavaScriptModelException {	
-	IType type = getClassFile("P", getSystemJsPathString(), "p", "X.class").getType();
-	assertMemento(
-		"=P/" + getEscapedExternalJCLPath() + "<p(X.class[X",
-		type);	
-}
-/**
- * Tests that a class file in an external jar at the root of the file system can be persisted and restored using its memento.
- */
-public void testExternalJarClassFileMemento() throws JavaScriptModelException {
-	char separator = File.separatorChar;
-	String device = separator == '/' ? "" : "C:";
-	IClassFile classFile = getClassFile("P", device + separator + "lib.jar", "p", "X.class");
-	assertMemento(
-		"=P/" + device + "\\/lib.jar<p(X.class",
-		classFile);	
-}
-/**
- * Tests that an import declaration can be persisted and restored using its memento.
- */
-public void testImportContainerMemento() {
-	IImportContainer importContainer = getCompilationUnit("/P/src/p/X.js").getImportContainer();
-	assertMemento(
-		"=P/src<p{X.java#",
-		importContainer);
-}
-/**
- * Tests that an import declaration can be persisted and restored using its memento.
- */
-public void testImportDeclarationMemento() {
-	IImportDeclaration importDecl = getCompilationUnit("/P/src/p/X.js").getImport("java.io.Serializable");
-	assertMemento(
-		"=P/src<p{X.java#java.io.Serializable",
-		importDecl);
-	
-	importDecl = getCompilationUnit("/P/src/p/X.js").getImport("java.util.*");
-	assertMemento(
-		"=P/src<p{X.java#java.util.*",
-		importDecl);
-}
-/*
- * Ensures that a Java element is returned for an invalid memento.
- * (regression test for bug 81762 [model] AIOOB in breakpoints view)
- */
-public void testInvalidMemento() {
-	IJavaScriptElement element = JavaScriptCore.create("=P/src<p{");
-	assertElementEquals("Unexpected element", "p [in src [in P]]", element);
-}
-/**
- * Tests that an initializer can be persisted and restored using its memento.
- */
-public void testInitializerMemento() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	
-	IInitializer initializer = type.getInitializer(1);
-	assertMemento(
-		"=P/src<p{X.java[X|1",
-		initializer);
-	
-	initializer = type.getInitializer(2);
-	assertMemento(
-		"=P/src<p{X.java[X|2",
-		initializer);
-}
-/**
- * Tests that a binary field in an internal jar can be persisted and restored using its memento.
- */
-public void testInternalJarBinaryFieldMemento() throws JavaScriptModelException {	
-	IType type = getPackageFragmentRoot("/P/lib/myLib.jar").getPackageFragment("p").getClassFile("X.class").getType();
-	IField field = type.getField("field");
-	assertMemento(
-		"=P/lib\\/myLib.jar<p(X.class[X^field",
-		field);
-}
-/**
- * Tests that a inner binary type and field in an internal jar can be persisted and restored using its memento.
- */
-public void testInternalJarBinaryInnerTypeMemento() throws JavaScriptModelException {	
-	IType type = getPackageFragmentRoot("/P/lib/myLib.jar").getPackageFragment("p").getClassFile("X$Inner.class").getType();
-	assertMemento(
-		"=P/lib\\/myLib.jar<p(X$Inner.class[Inner",
-		type);
-}
-/**
- * Tests that a binary method in an internal jar can be persisted and restored using its memento.
- */
-public void testInternalJarBinaryMethodMemento() throws JavaScriptModelException {	
-	IType type = getPackageFragmentRoot("/P/lib/myLib.jar").getPackageFragment("p").getClassFile("X.class").getType();
-	IFunction method = type.getFunction("foo", new String[] {"[Ljava.lang.String;"});
-	assertMemento(
-		"=P/lib\\/myLib.jar<p(X.class[X~foo~\\[Ljava.lang.String;",
-		method);
-}
-/**
- * Tests that a binary type in an internal jar can be persisted and restored using its memento.
- */
-public void testInternalJarBinaryTypeMemento() throws JavaScriptModelException {	
-	IType type = getPackageFragmentRoot("/P/lib/myLib.jar").getPackageFragment("p").getClassFile("X.class").getType();
-	assertMemento(
-		"=P/lib\\/myLib.jar<p(X.class[X",
-		type);	
-}
-/**
- * Tests that a local type can be persisted and restored using its memento.
- */
-public void testLocalTypeMemento1() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	
-	IType anonymous = type.getInitializer(1).getType("Y", 1);
-	assertMemento(
-		"=P/src<p{X.java[X|1[Y",
-		anonymous);
-
-	anonymous = type.getInitializer(1).getType("Y", 2);
-	assertMemento(
-		"=P/src<p{X.java[X|1[Y!2",
-		anonymous);
-}
-/**
- * Tests that a local type can be persisted and restored using its memento.
- */
-public void testLocalTypeMemento2() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	
-	IType anonymous = type.getFunction("foo", new String[]{}).getType("Y", 1);
-	assertMemento(
-		"=P/src<p{X.java[X~foo[Y",
-		anonymous);
-		
-	anonymous = type.getFunction("foo", new String[]{}).getType("Y", 3);
-	assertMemento(
-		"=P/src<p{X.java[X~foo[Y!3",
-		anonymous);
-}
-/**
- * Tests that a local variable can be persisted and restored using its memento.
- */
-public void testLocalVariableMemento1() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	IFunction method = type.getFunction("foo", new String[]{});
-
-	ILocalVariable localVar = new LocalVariable((JavaElement)method, "var", 1, 2, 3, 4, "Z");
-	assertMemento(
-		"=P/src<p{X.java[X~foo@var!1!2!3!4!Z",
-		localVar);
-}
-/**
- * Tests that a local variable can be persisted and restored using its memento.
- */
-public void testLocalVariableMemento3() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	IInitializer initializer = type.getInitializer(1);
-
-	ILocalVariable localVar = new LocalVariable((JavaElement)initializer, "var", 1, 2, 3, 4, "Z");
-	assertMemento(
-		"=P/src<p{X.java[X|1@var!1!2!3!4!Z",
-		localVar);
-}
-/**
- * Tests that a local variable can be persisted and restored using its memento.
- */
-public void testLocalVariableMemento2() throws JavaScriptModelException {
-	IType type = getClassFile("/P/src/p/X.class").getType();
-	IFunction method = type.getFunction("foo", new String[]{"I"});
-
-	ILocalVariable localVar = new LocalVariable((JavaElement)method, "var", 1, 2, 3, 4, "Z");
-	assertMemento(
-		"=P/src<p(X.class[X~foo~I@var!1!2!3!4!Z",
-		localVar);
-}
-/**
- * Tests that a package fragment can be persisted and restored using its memento.
- */
-public void testPackageFragmentMemento() {
-	IPackageFragment pkg = getPackage("/P/src/p");
-	assertMemento(
-		"=P/src<p",
-		pkg);
-		
-	pkg = getPackage("/P/src/p1/p2");
-	assertMemento(
-		"=P/src<p1.p2",
-		pkg);
-
-	pkg = getPackage("/P/src");
-	assertMemento(
-		"=P/src<",
-		pkg);
-}
-/**
- * Tests that a package fragment in the default root can be persisted and restored using its memento.
- */
-public void testPackageFragmentMemento2() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {""});
-		IPackageFragment pkg = getPackage("/P1/p");
-		assertMemento(
-			"=P1/<p",
-			pkg);		
-	} finally {
-		deleteProject("P1");
-	}
-}
-/**
- * Tests that a source folder package fragment root can be persisted and restored using its memento.
- */
-public void testPackageFragmentRootMemento1() {
-	IJavaScriptProject project = getJavaProject("P");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(project.getProject().getFolder("src"));
-	assertMemento(
-		"=P/src",
-		root);
-}
-/**
- * Tests that a source folder package fragment root corresponding to the project
- * can be persisted and restored using its memento.
- */
-public void testPackageFragmentRootMemento2() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P1", new String[] {""});
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(project.getProject());
-		assertMemento(
-			"=P1/",
-			root);
-	} finally {
-		this.deleteProject("P1");
-	}		
-}	
-/**
- * Tests that a library folder package fragment root in the same project
- * can be persisted and restored using its memento.
- */
-public void testPackageFragmentRootMemento3() {
-	IJavaScriptProject project = getJavaProject("P");
-	IFolder libFolder = project.getProject().getFolder("lib");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(libFolder);
-	assertMemento(
-		"=P/lib",
-		root);
-}
-/**
- * Tests that a library folder package fragment root in another project
- * can be persisted and restored using its memento.
- */
-public void testPackageFragmentRootMemento4() {
-	IJavaScriptProject project = getJavaProject("P");
-	IFolder otherLibFolder = getFolder("/OtherProj/lib");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(otherLibFolder);
-	assertMemento(
-		"=P/\\/OtherProj\\/lib",
-		root);
-}
-/**
- * Tests that a jar package fragment root in the same project
- * can be persisted and restored using its memento.
- */
-public void testPackageFragmentRootMemento5() {
-	IJavaScriptProject project = getJavaProject("P");
-	IFile jar = getFile("/P/lib/myLib.jar");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(jar);
-	assertMemento(
-		"=P/lib\\/myLib.jar",
-		root);
-}
-/**
- * Tests that a jar package fragment root in another project
- * can be persisted and restored using its memento.
- */
-public void testPackageFragmentRootMemento6() {
-	IJavaScriptProject project = getJavaProject("P");
-	IFile jar = getFile("/OtherProj/lib/myLib.jar");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(jar);
-	assertMemento(
-		"=P/\\/OtherProj\\/lib\\/myLib.jar",
-		root);
-}
-/**
- * Tests that an external jar package fragment root
- * can be persisted and restored using its memento.
- */
-public void testPackageFragmentRootMemento7() throws CoreException {
-	IPackageFragmentRoot root = getPackageFragmentRoot("P", getSystemJsPathString());
-	assertMemento(
-		"=P/" + getEscapedExternalJCLPath() + "",
-		root);
-}
-/*
- * Tests that a library folder package fragment root being another project
- * can be persisted and restored using its memento.
- * (regression test for bug 108539 Error popup at breakpoint in tomcat project)
- */
-public void testPackageFragmentRootMemento8() {
-	IJavaScriptProject project = getJavaProject("P");
-	IProject otherLibFolder = getProject("/OtherProj");
-	IPackageFragmentRoot root = project.getPackageFragmentRoot(otherLibFolder);
-	assertMemento(
-		"=P/\\/OtherProj",
-		root);
-}
-/**
- * Tests that a project can be persisted and restored using its memento.
- */
-public void testProjectMemento() {
-	IJavaScriptProject project = getJavaProject("P");
-	assertMemento(
-		"=P",
-		project);
-}
-/**
- * Tests that a project with special chararcters in its name can be persisted and restored using its memento.
- * (regression test for bug 47815 Refactoring doesn't work with some project names [refactoring])
- */
-public void testProjectMemento2() {
-	IJavaScriptProject project = getJavaProject("P (abc) ~");
-	assertMemento(
-		"=P \\(abc) \\~",
-		project);
-}
-/**
- * Tests that a project with a ']' in its name can be persisted and restored using its memento.
- * (regression test for bug 108615 Unable to inherit abstract methods from jarred interface)
- */
-public void testProjectMemento3() {
-	IJavaScriptProject project = getJavaProject("P[]");
-	assertMemento(
-		"=P\\[\\]",
-		project);
-}
-/**
- * Tests that a bogus memento cannot be restored.
- */
-public void testRestoreBogusMemento() {
-	IJavaScriptElement restored = JavaScriptCore.create("bogus");
-	assertEquals("should not be able to restore a bogus memento", null, restored);
-}
-/**
- * Tests that a source field can be persisted and restored using its memento.
- */
-public void testSourceFieldMemento() {
-	IField field = getCompilationUnit("/P/src/p/X.js").getType("X").getField("field");
-	assertMemento(
-		"=P/src<p{X.java[X^field",
-		field);
-}
-/**
- * Tests that a source inner type, inner field and inner method can be persisted and restored
- * using mementos.
- */
-public void testSourceInnerTypeMemento() {
-	IType innerType = getCompilationUnit("/P/src/p/X.js").getType("X").getType("Inner");
-	assertMemento(
-		"=P/src<p{X.java[X[Inner",
-		innerType);
-}
-/**
- * Tests that a source method can be persisted and restored using its memento.
- */
-public void testSourceMethodMemento1() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	IFunction method = type.getFunction("foo", new String[] {"I", "Ljava.lang.String;"});
-	assertMemento(
-		"=P/src<p{X.java[X~foo~I~Ljava.lang.String;",
-		method);
-}
-/**
- * Tests that a source method can be persisted and restored using its memento.
- */
-public void testSourceMethodMemento2() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	IFunction method = type.getFunction("bar", new String[] {});
-	assertMemento(
-		"=P/src<p{X.java[X~bar",
-		method);
-}
-/**
- * Tests that a source method can be persisted and restored using its memento.
- */
-public void testSourceMethodMemento3() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	IFunction method = type.getFunction("fred", new String[] {"[Z"});
-	assertMemento(
-		"=P/src<p{X.java[X~fred~\\[Z",
-		method);
-}
-/**
- * Tests that a source type can be persisted and restored using its memento.
- */
-public void testSourceTypeMemento() {
-	IType type = getCompilationUnit("/P/src/p/X.js").getType("X");
-	assertMemento(
-		"=P/src<p{X.java[X",
-		type);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ModifyingResourceTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ModifyingResourceTests.java
deleted file mode 100644
index 9083ed9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ModifyingResourceTests.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.*;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.compiler.batch.Main;
-import org.eclipse.wst.jsdt.internal.core.JavaElement;
-
-public class ModifyingResourceTests extends AbstractJavaModelTests {
-	
-public ModifyingResourceTests(String name) {
-	super(name);
-}
-protected void assertElementDescendants(String message,  String expected, IJavaScriptElement element) throws CoreException {
-	String actual = expandAll(element);
-	if (!expected.equals(actual)){
-	 	System.out.println(Util.displayString(actual, 4));
-	}
-	assertEquals(
-		message,
-		expected,
-		actual);
-}
-protected void assertStatus(String expected, IStatus status) {
-	String actual = status.getMessage();
-	if (!expected.equals(actual)) {
-	 	System.out.print(Util.displayString(actual, 2));
-	 	System.out.println(",");
-	}
-	assertEquals(expected, actual);
-}
-protected void assertStatus(String message, String expected, IStatus status) {
-	String actual = status.getMessage();
-	if (!expected.equals(actual)) {
-	 	System.out.print(Util.displayString(actual, 2));
-	 	System.out.println(",");
-	}
-	assertEquals(message, expected, actual);
-}
-/**
- * E.g. <code>
- * org.eclipse.wst.jsdt.tests.core.ModifyingResourceTests.generateClassFile(
- *   "A",
- *   "public class A {\n" +
- *   "}")
- */
-public static void generateClassFile(String className, String javaSource) throws IOException {
-	String cu = "d:/temp/" + className + ".js";
-	Util.createFile(cu, javaSource);
-	Main.compile(cu + " -d d:/temp -classpath " + System.getProperty("java.home") + "/lib/rt.jar");
-	FileInputStream input = new FileInputStream("d:/temp/" + className + ".class");
-	try {
-		System.out.println("{");
-		byte[] buffer = new byte[80];
-		int read = 0;
-		while (read != -1) {
-			read = input.read(buffer);
-			if (read != -1) System.out.print("\t");
-			for (int i = 0; i < read; i++) {
-				System.out.print(buffer[i]);
-				System.out.print(", ");	
-			}
-			if (read != -1) System.out.println();
-		}
-		System.out.print("}");
-	} finally {
-		input.close();
-	}
-}
-
-protected IFile createFile(String path, InputStream content) throws CoreException {
-	IFile file = getFile(path);
-	file.create(content, true, null);
-	try {
-		content.close();
-	} catch (IOException e) {
-		e.printStackTrace();
-	}
-	return file;
-}
-
-protected IFile createFile(String path, byte[] content) throws CoreException {
-	return createFile(path, new ByteArrayInputStream(content));
-}
-
-protected IFile createFile(String path, String content) throws CoreException {
-	return createFile(path, content.getBytes());
-}
-protected IFile createFile(String path, String content, String charsetName) throws CoreException, UnsupportedEncodingException {
-	return createFile(path, content.getBytes(charsetName));
-}
-protected IFolder createFolder(String path) throws CoreException {
-	return createFolder(new Path(path));
-}
-protected void deleteFile(String filePath) throws CoreException {
-	deleteResource(this.getFile(filePath));
-}
-protected void deleteFolder(String folderPath) throws CoreException {
-	deleteFolder(new Path(folderPath));
-}
-protected IFile editFile(String path, String content) throws CoreException {
-	IFile file = this.getFile(path);
-	InputStream input = new ByteArrayInputStream(content.getBytes());
-	file.setContents(input, IResource.FORCE, null);
-	return file;
-}
-/* 
- * Expands (i.e. open) the given element and returns a toString() representation
- * of the tree.
- */
-protected String expandAll(IJavaScriptElement element) throws CoreException {
-	StringBuffer buffer = new StringBuffer();
-	this.expandAll(element, 0, buffer);
-	return buffer.toString();
-}
-private void expandAll(IJavaScriptElement element, int tab, StringBuffer buffer) throws CoreException {
-	IJavaScriptElement[] children = null;
-	// force opening of element by getting its children
-	if (element instanceof IParent) {
-		IParent parent = (IParent)element;
-		children = parent.getChildren();
-	}
-	((JavaElement)element).toStringInfo(tab, buffer);
-	if (children != null) {
-		for (int i = 0, length = children.length; i < length; i++) {
-			buffer.append("\n");
-			this.expandAll(children[i], tab+1, buffer);
-		}
-	}
-}
-protected void renameProject(String project, String newName) throws CoreException {
-	this.getProject(project).move(new Path(newName), true, null);
-}
-protected IClassFile getClassFile(String path) {
-	return (IClassFile)JavaScriptCore.create(getFile(path));
-}
-protected IFolder getFolder(String path) {
-	return getFolder(new Path(path));
-}
-protected IPackageFragment getPackage(String path) {
-	if (path.indexOf('/', 1) != -1) { // if path as more than one segment
-		IJavaScriptElement element = JavaScriptCore.create(this.getFolder(path));
-		if (element instanceof IPackageFragmentRoot) {
-			return ((IPackageFragmentRoot)element).getPackageFragment("");
-		}
-		return (IPackageFragment)element;
-	}
-	IProject project = this.getProject(path);
-	return JavaScriptCore.create(project).getPackageFragmentRoot(project).getPackageFragment("");
-}
-protected IPackageFragmentRoot getPackageFragmentRoot(String path) {
-	if (path.indexOf('/', 1) != -1) { // if path as more than one segment
-		if (path.endsWith(".jar")) {
-			return  (IPackageFragmentRoot)JavaScriptCore.create(this.getFile(path));
-		}
-		return (IPackageFragmentRoot)JavaScriptCore.create(this.getFolder(path));
-	}
-	IProject project = this.getProject(path);
-	return JavaScriptCore.create(project).getPackageFragmentRoot(project);
-}
-protected String getSortedByProjectDeltas() {
-	StringBuffer buffer = new StringBuffer();
-	for (int i=0, length = this.deltaListener.deltas.length; i<length; i++) {
-		IJavaScriptElementDelta[] projects = this.deltaListener.deltas[i].getAffectedChildren();
-		int projectsLength = projects.length;
-		
-		// sort by project
-		IJavaScriptElementDelta[] sorted = new IJavaScriptElementDelta[projectsLength];
-		System.arraycopy(projects, 0, sorted, 0, projectsLength);
-		org.eclipse.wst.jsdt.internal.core.util.Util.sort(
-			sorted, 
-			new  org.eclipse.wst.jsdt.internal.core.util.Util.Comparer() {
-				public int compare(Object a, Object b) {
-					return a.toString().compareTo(b.toString());
-				}
-			});
-		
-		for (int j=0; j<projectsLength; j++) {
-			buffer.append(sorted[j]);
-			if (j != projectsLength-1) {
-				buffer.append("\n");
-			}
-		}
-		if (i != length-1) {
-			buffer.append("\n\n");
-		}
-	}
-	return buffer.toString();
-}
-protected void moveFile(String sourcePath, String destPath) throws CoreException {
-	this.getFile(sourcePath).move(this.getFile(destPath).getFullPath(), false, null);
-}
-protected void moveFolder(String sourcePath, String destPath) throws CoreException {
-	this.getFolder(sourcePath).move(this.getFolder(destPath).getFullPath(), false, null);
-}
-protected void swapFiles(String firstPath, String secondPath) throws CoreException {
-	final IFile first = this.getFile(firstPath);
-	final IFile second = this.getFile(secondPath);
-	IWorkspaceRunnable runnable = new IWorkspaceRunnable(	) {
-		public void run(IProgressMonitor monitor) throws CoreException {
-			IPath tempPath = first.getParent().getFullPath().append("swappingFile.temp");
-			first.move(tempPath, false, monitor);
-			second.move(first.getFullPath(), false, monitor);
-			getWorkspaceRoot().getFile(tempPath).move(second.getFullPath(), false, monitor);
-		}
-	};
-	getWorkspace().run(runnable, null);
-}
-protected IClassFile createClassFile(String libPath, String classFileRelativePath, String contents) throws CoreException {
-	IClassFile classFile = getClassFile(libPath + "/" + classFileRelativePath);
-//	classFile.getResource().delete(false, null);
-	Util.delete(classFile.getResource());
-	IJavaScriptProject javaProject = classFile.getJavaScriptProject();
-	IProject project = javaProject.getProject();
-	String sourcePath = project.getLocation().toOSString() + File.separatorChar + classFile.getType().getElementName() + ".js";
-	String libOSPath = new Path(libPath).segmentCount() > 1 ? getFolder(libPath).getLocation().toOSString() : getProject(libPath).getLocation().toOSString();
-	Util.compile(new String[] {sourcePath, contents}, javaProject.getOptions(true), libOSPath);
-	project.refreshLocal(IResource.DEPTH_INFINITE, null);
-	return classFile;
-}
-/*
- * Returns a new classpath from the given source folders and their respective exclusion/inclusion patterns.
- * The folder path is an absolute workspace-relative path.
- * The given array as the following form:
- * [<folder>, "<pattern>[|<pattern]*"]*
- * E.g. new String[] {
- *   "/P/src1", "p/A.js",
- *   "/P", "*.txt|com.tests/**"
- * }
- */
-protected IIncludePathEntry[] createClasspath(String[] foldersAndPatterns, boolean hasInclusionPatterns, boolean hasExclusionPatterns) {
-	int length = foldersAndPatterns.length;
-	int increment = 1;
-	if (hasInclusionPatterns) increment++;
-	if (hasExclusionPatterns) increment++;
-	IIncludePathEntry[] classpath = new IIncludePathEntry[length/increment];
-	for (int i = 0; i < length; i+=increment) {
-		String src = foldersAndPatterns[i];
-		IPath[] accessibleFiles = new IPath[0];
-		if (hasInclusionPatterns) {
-			String patterns = foldersAndPatterns[i+1];
-			StringTokenizer tokenizer = new StringTokenizer(patterns, "|");
-			int patternsCount =  tokenizer.countTokens();
-			accessibleFiles = new IPath[patternsCount];
-			for (int j = 0; j < patternsCount; j++) {
-				accessibleFiles[j] = new Path(tokenizer.nextToken());
-			}
-		}
-		IPath[] nonAccessibleFiles = new IPath[0];
-		if (hasExclusionPatterns) {
-			String patterns = foldersAndPatterns[i+increment-1];
-			StringTokenizer tokenizer = new StringTokenizer(patterns, "|");
-			int patternsCount =  tokenizer.countTokens();
-			nonAccessibleFiles = new IPath[patternsCount];
-			for (int j = 0; j < patternsCount; j++) {
-				nonAccessibleFiles[j] = new Path(tokenizer.nextToken());
-			}
-		}
-		IPath folderPath = new Path(src);
-		classpath[i/increment] = JavaScriptCore.newSourceEntry(folderPath, accessibleFiles, nonAccessibleFiles, null); 
-	}
-	return classpath;
-}
-/*
- * Returns a new classpath from the given folders and their respective accessible/non accessible files patterns.
- * The folder path is an absolute workspace-relative path. If the given project name is non-null, 
- * the folder path is considered a project path if it has 1 segment that is different from the project name.
- * The given array as the following form:
- * [<folder>, "<+|-><pattern>[|<+|-><pattern]*"]*
- * E.g. new String[] {
- *   "/P/src1", "+p/A.js",
- *   "/P", "-*.txt|+com.tests/**"
- * }
- */
-protected IIncludePathEntry[] createClasspath(String projectName, String[] foldersAndPatterns) {
-	int length = foldersAndPatterns.length;
-	IIncludePathEntry[] classpath = new IIncludePathEntry[length/2];
-	for (int i = 0; i < length; i+=2) {
-		String src = foldersAndPatterns[i];
-		String patterns = foldersAndPatterns[i+1];
-		classpath[i/2] = createSourceEntry(projectName, src, patterns);
-	}
-	return classpath;
-}
-public IIncludePathEntry createSourceEntry(String referingProjectName, String src, String patterns) {
-	StringTokenizer tokenizer = new StringTokenizer(patterns, "|");
-	int ruleCount =  tokenizer.countTokens();
-	IAccessRule[] accessRules = new IAccessRule[ruleCount];
-	int nonAccessibleRules = 0;
-	for (int j = 0; j < ruleCount; j++) {
-		String rule = tokenizer.nextToken();
-		int kind;
-		boolean ignoreIfBetter = false;
-		switch (rule.charAt(0)) {
-			case '+':
-				kind = IAccessRule.K_ACCESSIBLE;
-				break;
-			case '~':
-				kind = IAccessRule.K_DISCOURAGED;
-				break;
-			case '?':
-				kind = IAccessRule.K_NON_ACCESSIBLE;
-				ignoreIfBetter = true;
-				break;
-			case '-':
-			default:		// TODO (maxime) consider forbidding unspecified rule start; this one tolerates
-							// 		shortcuts that only specify a path matching pattern
-				kind = IAccessRule.K_NON_ACCESSIBLE;
-				break;
-		}
-		nonAccessibleRules++;
-		accessRules[j] = JavaScriptCore.newAccessRule(new Path(rule.substring(1)), ignoreIfBetter ? kind | IAccessRule.IGNORE_IF_BETTER : kind);
-	}
-
-	IPath folderPath = new Path(src);
-	if (referingProjectName != null && folderPath.segmentCount() == 1 && !referingProjectName.equals(folderPath.lastSegment())) {
-		return JavaScriptCore.newProjectEntry(folderPath, accessRules, true/*combine access restrictions*/, new IIncludePathAttribute[0], false); 
-	} else {
-		IPath[] accessibleFiles = new IPath[ruleCount-nonAccessibleRules];
-		int accessibleIndex = 0;
-		IPath[] nonAccessibleFiles = new IPath[nonAccessibleRules];
-		int nonAccessibleIndex = 0;
-		for (int j = 0; j < ruleCount; j++) {
-			IAccessRule accessRule = accessRules[j];
-			if (accessRule.getKind() == IAccessRule.K_ACCESSIBLE) 
-				accessibleFiles[accessibleIndex++] = accessRule.getPattern();
-			else
-				nonAccessibleFiles[nonAccessibleIndex++] = accessRule.getPattern();
-		}
-		return JavaScriptCore.newSourceEntry(folderPath, accessibleFiles, nonAccessibleFiles, null); 
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/NameLookupTests2.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/NameLookupTests2.java
deleted file mode 100644
index 31c0e4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/NameLookupTests2.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.internal.compiler.lookup.Binding;
-import org.eclipse.wst.jsdt.internal.core.JavaProject;
-import org.eclipse.wst.jsdt.internal.core.NameLookup;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-/**
- * These test ensure that modifications in Java projects are correctly reported as
- * IJavaEllementDeltas.
- */
-public class NameLookupTests2 extends ModifyingResourceTests {
-	
-public NameLookupTests2(String name) {
-	super(name);
-}
-
-public static Test suite() {
-	return buildModelTestSuite(NameLookupTests2.class);
-}
-
-private NameLookup getNameLookup(JavaProject project) throws JavaScriptModelException {
-	return project.newNameLookup((WorkingCopyOwner)null);
-}
-public void testAddPackageFragmentRootAndPackageFrament() throws CoreException {
-	try {
-		IJavaScriptProject p1 = createJavaProject("P1", new String[] {"src1"});
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {});
-		IIncludePathEntry[] classpath = 
-			new IIncludePathEntry[] {
-				JavaScriptCore.newProjectEntry(new Path("/P1"))
-			};
-		p2.setRawIncludepath(classpath, null);
-		
-		IPackageFragment[] res = getNameLookup((JavaProject)p2).findPackageFragments("p1", false);
-		assertTrue("Should get no package fragment", res == null);
-		
-		IIncludePathEntry[] classpath2 = 
-			new IIncludePathEntry[] {
-				JavaScriptCore.newSourceEntry(new Path("/P1/src1")),
-				JavaScriptCore.newSourceEntry(new Path("/P1/src2"))
-			};
-		p1.setRawIncludepath(classpath2, null);
-		createFolder("/P1/src2/p1");
-		
-		res = getNameLookup((JavaProject)p2).findPackageFragments("p1", false);
-		assertTrue(
-			"Should get 'p1' package fragment",
-			res != null &&
-			res.length == 1 &&
-			res[0].getElementName().equals("p1"));
-
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-public void testAddPackageFragment() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {"src1"});
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {});
-		IIncludePathEntry[] classpath = 
-			new IIncludePathEntry[] {
-				JavaScriptCore.newProjectEntry(new Path("/P1"))
-			};
-		p2.setRawIncludepath(classpath, null);
-		
-		IPackageFragment[] res = getNameLookup((JavaProject)p2).findPackageFragments("p1", false);
-		assertTrue("Should get no package fragment", res == null);
-		
-		createFolder("/P1/src1/p1");
-		
-		res = getNameLookup((JavaProject)p2).findPackageFragments("p1", false);
-		assertTrue(
-			"Should get 'p1' package fragment",
-			res != null &&
-			res.length == 1 &&
-			res[0].getElementName().equals("p1"));
-
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/*
- * Resolve, add pkg, resolve again: new pkg should be accessible
- * (regression test for bug 37962 Unexpected transient problem during reconcile
- */
-public void testAddPackageFragment2() throws CoreException {
-	try {
-		JavaProject project = (JavaProject)createJavaProject("P", new String[] {"src"});
-		createFolder("/P/src/p1");
-		
-		IPackageFragment[] pkgs = getNameLookup(project).findPackageFragments("p1", false);
-		assertElementsEqual(
-			"Didn't find p1",
-			"p1 [in src [in P]]",
-			pkgs);
-		
-		createFolder("/P/src/p2");
-	
-		pkgs = getNameLookup(project).findPackageFragments("p2", false);
-		assertElementsEqual(
-			"Didn't find p2",
-			"p2 [in src [in P]]",
-			pkgs);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a NameLookup can be created with working copies that contain duplicate types
- * (regression test for bug 63245 findPackageFragment won't return default package)
- */
-public void testDuplicateTypesInWorkingCopies() throws CoreException {
-//	IJavaScriptUnit[] workingCopies = new IJavaScriptUnit[3];
-	this.workingCopies = new IJavaScriptUnit[3];
-	try {
-		JavaProject project = (JavaProject)createJavaProject("P");
-		workingCopies[0] = getWorkingCopy(
-			"/P/X.js", 
-			"function foo() {\n" +
-			"}"
-		);
-		workingCopies[1] = getWorkingCopy(
-			"/P/Y.js", 
-			"function foo() {\n" +
-			"}"
-		);
-		workingCopies[2] = getWorkingCopy(
-			"/P/Z.js", 
-			"function foo() {\n" +
-			"}"
-		);
-		NameLookup nameLookup = project.newNameLookup(workingCopies);
-		//		NameLookup.Answer answer=nameLookup.findBinding("foo","",Binding.METHOD, false, NameLookup.ACCEPT_ALL,false);
-		NameLookup.Answer answer=nameLookup.findBinding("foo","",Binding.METHOD, false, NameLookup.ACCEPT_ALL,false, false, null); 
-		assertEquals(
-			"Unepexted ",
-			"foo",
-			((IJavaScriptElement)answer.element).getElementName());
-	} finally {
-//		discardWorkingCopies(workingCopies);
-		deleteProject("P");
-	}
-}
-/*
- * Find a default package fragment in a non-default root by its path.
- * (regression test for bug 63245 findPackageFragment won't return default package)
- */
-public void testFindDefaultPackageFragmentInNonDefaultRoot() throws CoreException {
-	try {
-		JavaProject project = (JavaProject)createJavaProject("P", new String[] {"src"});
-		
-		IPackageFragment pkg = getNameLookup(project).findPackageFragment(new Path("/P/src"));
-		assertElementsEqual(
-			"Didn't find default package",
-			"<default> [in src [in P]]",
-			new IJavaScriptElement[] {pkg});
-		
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that finding a package fragment with a working copy opened returns one element only
- * (regression test for bug 89624 Open on selection proposes twice the same entry)
- */
-public void testFindPackageFragmentWithWorkingCopy() throws CoreException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	try {
-		JavaProject project = (JavaProject)createJavaProject("P");
-		createFolder("/P/p1");
-		workingCopies[0] = getWorkingCopy(
-			"/P/p1/X.js", 
-			"function X() {\n" +
-			"}"
-		);
-		NameLookup nameLookup = project.newNameLookup(workingCopies);
-		IJavaScriptElement[] pkgs = nameLookup.findPackageFragments("p1", false/*not a partial match*/);
-		assertElementsEqual(
-			"Unexpected packages",
-			"p1 [in <project root> [in P]]",
-			pkgs);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that a member type with a name ending with a dollar and a number is found
- * (regression test for bug 103466 Stack Overflow: Requesting Java AST from selection)
- */
-public void testFindBinaryTypeWithDollarName() throws CoreException, IOException {
-	try {
-		IJavaScriptProject project = createJavaProject("P");
-		addLibrary(project, "lib.jar", "libsrc.zip", 
-			new String[] {
-				"p/X.js",
-				"package p;\n" +
-				"public class X {\n" +
-				"  public class $1 {\n" +
-				"    public class $2 {\n" +
-				"    }\n" +
-				"  }\n" +
-				"}"
-			}, 
-			"1.4");
-		IType type = getNameLookup((JavaProject) project).findType("p.X$$1", false, NameLookup.ACCEPT_ALL);
-		assertTypesEqual(
-			"Unexpected type", 
-			"p.X$$1\n",
-			new IType[] {type});
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that a type with the same simple name as its member type is found
- * (regression test for bug 102286 Error when trying F4-Type Hierarchy)
- */
-public void testFindBinaryTypeWithSameNameAsMember() throws CoreException, IOException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {}, new String[] {"/P/lib"}, new String[] {});
-		createFolder("/P/lib/p");
-		createFile("/P/lib/p/X.js", "");
-		createFile("/P/lib/p/X$X.js", "");
-		IType type = getNameLookup((JavaProject) project).findType("p.X", false, NameLookup.ACCEPT_ALL);
-		assertTypesEqual(
-			"Unexpected type", 
-			"p.X\n",
-			new IType[] {type});
-	} finally {
-		deleteProject("P");
-	}
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/NamingConventionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/NamingConventionTests.java
deleted file mode 100644
index 33a9219..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/NamingConventionTests.java
+++ /dev/null
@@ -1,729 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.Flags;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.NamingConventions;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-
-public class NamingConventionTests extends AbstractJavaModelTests {
-
-IJavaScriptProject project;
-
-public NamingConventionTests(String name) {
-	super(name);
-}
-
-public static Test suite() {
-	return buildModelTestSuite(NamingConventionTests.class);
-}
-/**
- * Setup for the next test.
- */
-public void setUp() throws Exception {
-	super.setUp();
-	
-	project = createJavaProject("P", new String[]{"src"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-}
-/**
- * Cleanup after the previous test.
- */
-public void tearDown() throws Exception {
-	this.deleteProject("P"); //$NON-NLS-1$
-	
-	super.tearDown();
-}
-private String toString(char[][] suggestions) {
-	if(suggestions == null) {
-		return ""; //$NON-NLS-1$
-	}
-	
-	StringBuffer buffer = new StringBuffer();
-	for (int i = 0; i < suggestions.length; i++) {
-		if(i != 0) {
-			buffer.append('\n');
-		}
-		buffer.append(suggestions[i]);
-	}
-	return buffer.toString();
-}
-public void testSuggestFieldName001() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneName".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"name\n" + //$NON-NLS-1$
-		"oneName", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName002() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneClass".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"class1\n" + //$NON-NLS-1$
-		"oneClass", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName003() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"f"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneName".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		CharOperation.NO_CHAR_CHAR);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"fName\n" + //$NON-NLS-1$
-		"fOneName\n" + //$NON-NLS-1$
-		"name\n" + //$NON-NLS-1$
-		"oneName", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName004() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"_"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneName".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		CharOperation.NO_CHAR_CHAR);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"_name\n" + //$NON-NLS-1$
-		"_oneName\n" + //$NON-NLS-1$
-		"name\n" + //$NON-NLS-1$
-		"oneName", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName005() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"f"); //$NON-NLS-1$
-	Object staticFieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_STATIC_FIELD_PREFIXES,"fg"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneName".toCharArray(), //$NON-NLS-1$
-		0,
-		Flags.AccStatic,
-		CharOperation.NO_CHAR_CHAR);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_STATIC_FIELD_PREFIXES,staticFieldPrefixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"fgName\n" + //$NON-NLS-1$
-		"fgOneName\n" + //$NON-NLS-1$
-		"name\n" + //$NON-NLS-1$
-		"oneName", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName006() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneName".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		CharOperation.NO_CHAR_CHAR);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"preNamesuf\n" + //$NON-NLS-1$
-		"preOneNamesuf\n" + //$NON-NLS-1$
-		"preName\n" + //$NON-NLS-1$
-		"preOneName\n" + //$NON-NLS-1$
-		"namesuf\n" + //$NON-NLS-1$
-		"oneNamesuf\n" + //$NON-NLS-1$
-		"name\n" + //$NON-NLS-1$
-		"oneName", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName007() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"int".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		CharOperation.NO_CHAR_CHAR);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"preIsuf\n" + //$NON-NLS-1$
-		"preI\n" + //$NON-NLS-1$
-		"isuf\n" + //$NON-NLS-1$
-		"i", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName008() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneName".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		new char[][]{"name".toCharArray()}); //$NON-NLS-1$
-	
-	assertEquals(
-		"name2\n" + //$NON-NLS-1$
-		"oneName", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName009() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneName".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		new char[][]{"preNamesuf".toCharArray()}); //$NON-NLS-1$
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"preName2suf\n" + //$NON-NLS-1$
-		"preOneNamesuf\n" + //$NON-NLS-1$
-		"preName\n" + //$NON-NLS-1$
-		"preOneName\n" + //$NON-NLS-1$
-		"namesuf\n" + //$NON-NLS-1$
-		"oneNamesuf\n" + //$NON-NLS-1$
-		"name\n" + //$NON-NLS-1$
-		"oneName", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName010() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"OneName".toCharArray(), //$NON-NLS-1$
-		1,
-		0,
-		new char[][]{"preNamesuf".toCharArray()}); //$NON-NLS-1$
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"preNamessuf\n" + //$NON-NLS-1$
-		"preOneNamessuf\n" + //$NON-NLS-1$
-		"preNames\n" + //$NON-NLS-1$
-		"preOneNames\n" + //$NON-NLS-1$
-		"namessuf\n" + //$NON-NLS-1$
-		"oneNamessuf\n" + //$NON-NLS-1$
-		"names\n" + //$NON-NLS-1$
-		"oneNames", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName011() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c".toCharArray(), //$NON-NLS-1$
-		"Factory".toCharArray(), //$NON-NLS-1$
-		1,
-		0,
-		CharOperation.NO_CHAR_CHAR); //$NON-NLS-1$
-	
-	assertEquals(
-		"factories", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName012() {
-	String[] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"a.b.c", //$NON-NLS-1$
-		"FooBar", //$NON-NLS-1$
-		0,
-		0,
-		new String[]{"bar"}); //$NON-NLS-1$
-	
-	assertEquals(
-		"bar2\n" + //$NON-NLS-1$
-		"fooBar", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName013() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"java.lang".toCharArray(), //$NON-NLS-1$
-		"Class".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"class1",//$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName014() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"java.lang".toCharArray(), //$NON-NLS-1$
-		"Class".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		new char[][]{"class1".toCharArray()}); //$NON-NLS-1$
-	
-	assertEquals(
-		"class2",//$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName015() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"".toCharArray(), //$NON-NLS-1$
-		"#".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"name",//$NON-NLS-1$
-		toString(suggestions));
-}
-public void testSuggestFieldName016() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"".toCharArray(), //$NON-NLS-1$
-		"#".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		new char[][]{"name".toCharArray()}); //$NON-NLS-1$
-	
-	assertEquals(
-		"name2",//$NON-NLS-1$
-		toString(suggestions));
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=35356
- */
-public void testSuggestFieldName017() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"".toCharArray(), //$NON-NLS-1$
-		"names".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		new char[][]{});
-	
-	assertEquals(
-		"names",//$NON-NLS-1$
-		toString(suggestions));
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=35356
- */
-public void testSuggestFieldName018() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"".toCharArray(), //$NON-NLS-1$
-		"names".toCharArray(), //$NON-NLS-1$
-		1,
-		0,
-		new char[][]{});
-	
-	assertEquals(
-		"names",//$NON-NLS-1$
-		toString(suggestions));
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=35356
- */
-public void testSuggestFieldName019() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"".toCharArray(), //$NON-NLS-1$
-		"MyClass".toCharArray(), //$NON-NLS-1$
-		0,
-		0,
-		new char[][]{});
-	
-	assertEquals(
-		"class1\n" + //$NON-NLS-1$
-		"myClass", //$NON-NLS-1$
-		toString(suggestions));
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=35356
- */
-public void testSuggestFieldName020() {
-	char[][] suggestions = NamingConventions.suggestFieldNames(
-		project,
-		"".toCharArray(), //$NON-NLS-1$
-		"MyClass".toCharArray(), //$NON-NLS-1$
-		1,
-		0,
-		new char[][]{});
-	
-	assertEquals(
-		"classes\n" + //$NON-NLS-1$
-		"myClasses", //$NON-NLS-1$
-		toString(suggestions));
-}
-public void testRemovePrefixAndSuffixForFieldName001() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[] name = NamingConventions.removePrefixAndSuffixForFieldName(
-		project,
-		"preOneNamesuf".toCharArray(), //$NON-NLS-1$
-		0);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"oneName", //$NON-NLS-1$
-		new String(name));
-}
-public void testRemovePrefixAndSuffixForFieldName002() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pr, pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"uf, suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[] name = NamingConventions.removePrefixAndSuffixForFieldName(
-		project,
-		"preOneNamesuf".toCharArray(), //$NON-NLS-1$
-		Flags.AccStatic);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"preOneNamesuf", //$NON-NLS-1$
-		new String(name));
-}
-public void testRemovePrefixAndSuffixForFieldName003() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pr, pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"uf, suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[] name = NamingConventions.removePrefixAndSuffixForFieldName(
-		project,
-		"preOneNamesuf".toCharArray(), //$NON-NLS-1$
-		0);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"oneName", //$NON-NLS-1$
-		new String(name));
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=114086
-public void testRemovePrefixAndSuffixForFieldName004() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pre,"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[] name = NamingConventions.removePrefixAndSuffixForFieldName(
-		project,
-		"preOneName".toCharArray(), //$NON-NLS-1$
-		0);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"oneName", //$NON-NLS-1$
-		new String(name));
-}
-public void testRemovePrefixAndSuffixForLocalName001() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,"pr, pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,"uf, suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[] name = NamingConventions.removePrefixAndSuffixForLocalVariableName(
-		project,
-		"preOneNamesuf".toCharArray() //$NON-NLS-1$
-		);
-	
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_LOCAL_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"oneName", //$NON-NLS-1$
-		new String(name));
-}
-public void testSuggestGetterName001() {
-	char[] suggestion = NamingConventions.suggestGetterName(
-		project,
-		"fieldName".toCharArray(), //$NON-NLS-1$
-		0,
-		false,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"getFieldName", //$NON-NLS-1$
-		new String(suggestion));
-}
-public void testSuggestGetterName002() {
-	char[] suggestion = NamingConventions.suggestGetterName(
-		project,
-		"FieldName".toCharArray(), //$NON-NLS-1$
-		0,
-		false,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"getFieldName", //$NON-NLS-1$
-		new String(suggestion));
-}
-public void testSuggestGetterName003() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pr, pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"uf, suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[] suggestion = NamingConventions.suggestGetterName(
-		project,
-		"preFieldName".toCharArray(), //$NON-NLS-1$
-		0,
-		false,
-		CharOperation.NO_CHAR_CHAR);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"getFieldName", //$NON-NLS-1$
-		new String(suggestion));
-}
-public void testSuggestGetterName004() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pr, pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"uf, suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[] suggestion = NamingConventions.suggestGetterName(
-		project,
-		"preFieldNamesuf".toCharArray(), //$NON-NLS-1$
-		0,
-		false,
-		CharOperation.NO_CHAR_CHAR);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"getFieldName", //$NON-NLS-1$
-		new String(suggestion));
-}
-public void testSuggestGetterName005() {
-	Hashtable options = JavaScriptCore.getOptions();
-	Object fieldPrefixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_PREFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,"pr, pre"); //$NON-NLS-1$
-	Object fieldSuffixPreviousValue = options.get(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,"uf, suf"); //$NON-NLS-1$
-	JavaScriptCore.setOptions(options);
-	
-	char[] suggestion = NamingConventions.suggestGetterName(
-		project,
-		"preFieldNamesuf".toCharArray(), //$NON-NLS-1$
-		0,
-		true,
-		CharOperation.NO_CHAR_CHAR);
-	
-	options.put(JavaScriptCore.CODEASSIST_FIELD_PREFIXES,fieldPrefixPreviousValue);
-	options.put(JavaScriptCore.CODEASSIST_FIELD_SUFFIXES,fieldSuffixPreviousValue);
-	JavaScriptCore.setOptions(options);
-	assertEquals(
-		"isFieldName", //$NON-NLS-1$
-		new String(suggestion));
-}
-public void testSuggestGetterName006() {
-	char[] suggestion = NamingConventions.suggestGetterName(
-		project,
-		"isSomething".toCharArray(), //$NON-NLS-1$
-		0,
-		true,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"isSomething", //$NON-NLS-1$
-		new String(suggestion));
-}
-public void testSuggestGetterName007() {
-	char[] suggestion = NamingConventions.suggestGetterName(
-		project,
-		"isSomething".toCharArray(), //$NON-NLS-1$
-		0,
-		false,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"getIsSomething", //$NON-NLS-1$
-		new String(suggestion));
-}
-public void testSuggestSetterName001() {
-	char[] suggestion = NamingConventions.suggestSetterName(
-		project,
-		"isSomething".toCharArray(), //$NON-NLS-1$
-		0,
-		true,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"setSomething", //$NON-NLS-1$
-		new String(suggestion));
-}
-public void testSuggestSetterName002() {
-	char[] suggestion = NamingConventions.suggestSetterName(
-		project,
-		"isSomething".toCharArray(), //$NON-NLS-1$
-		0,
-		false,
-		CharOperation.NO_CHAR_CHAR);
-	
-	assertEquals(
-		"setIsSomething", //$NON-NLS-1$
-		new String(suggestion));
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=133562
- */
-public void testSuggestLocalName001() {
-	Map options = this.project.getOptions(true);
-	try {
-		Map newOptions = new HashMap(options);
-		newOptions.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_5);
-		newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_5);
-		newOptions.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_5);
-		this.project.setOptions(newOptions);
-
-		String[] suggestions = NamingConventions.suggestLocalVariableNames(
-			project,
-			"",//$NON-NLS-1$
-			"Enum",//$NON-NLS-1$
-			0,
-			new String[]{"o"});
-		
-		assertEquals(
-			"enum1", //$NON-NLS-1$
-			toString(suggestions));
-	} finally {
-		this.project.setOptions(options);
-	}
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=133562
- */
-public void testSuggestLocalName002() {
-	Map options = this.project.getOptions(true);
-	try {
-		Map newOptions = new HashMap(options);
-		newOptions.put(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_5);
-		newOptions.put(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_5);
-		newOptions.put(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_5);
-		this.project.setOptions(newOptions);
-
-		String[] suggestions = NamingConventions.suggestLocalVariableNames(
-			project,
-			"",//$NON-NLS-1$
-			"Enums",//$NON-NLS-1$
-			0,
-			new String[]{"o"});
-		
-		assertEquals(
-			"enums", //$NON-NLS-1$
-			toString(suggestions));
-	} finally {
-		this.project.setOptions(options);
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/OptionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/OptionTests.java
deleted file mode 100644
index 5c440e0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/OptionTests.java
+++ /dev/null
@@ -1,632 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-import junit.framework.Test;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.JavaProject;
-import org.osgi.service.prefs.BackingStoreException;
-
-public class OptionTests extends ModifyingResourceTests {
-	
-	int eventCount = 0;
-	
-	class TestPropertyListener implements IEclipsePreferences.IPreferenceChangeListener {
-		public void preferenceChange(PreferenceChangeEvent event) {
-			eventCount++;
-		}
-	}
-	
-	public OptionTests(String name) {
-		super(name);
-	}
-	static {
-//		TESTS_NUMBERS = new int[] { 125360 };
-//		TESTS_RANGE = new int[] { 4, -1 };
-	}
-	public static Test suite() {
-		return buildModelTestSuite(OptionTests.class);	
-	}
-	
-	protected void tearDown() throws Exception {
-		// Put back default options
-		JavaScriptCore.setOptions(JavaScriptCore.getDefaultOptions());
-
-		super.tearDown();
-	}
-
-	/**
-	 * Test persistence of project custom options
-	 */
-	public void test01() throws CoreException {
-		try {
-			IJavaScriptProject projectA = 
-				this.createJavaProject(
-					"A", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-			IJavaScriptProject projectB = 
-				this.createJavaProject(
-					"B", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-					
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.DISABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "8.0");
-			options.put(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, JavaScriptCore.ERROR);
-			JavaScriptCore.setOptions(options);
-	
-			options.clear();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.ENABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "10.0");
-			projectA.setOptions(options);
-	
-			// check project A custom options		
-			assertEquals("projA:unexpected custom value for deprecation option", JavaScriptCore.ENABLED, projectA.getOption(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, true));
-			assertEquals("projA:unexpected custom value for compliance option", "10.0", projectA.getOption(JavaScriptCore.COMPILER_COMPLIANCE, true));
-			assertEquals("projA:unexpected inherited value1 for hidden-catch option", JavaScriptCore.ERROR, projectA.getOption(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, true));
-			
-			// check project B custom options	(should be none, indicating it sees global ones only)
-			assertEquals("projB:unexpected custom value for deprecation option", JavaScriptCore.DISABLED, projectB.getOption(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, true));
-			assertEquals("projB:unexpected custom value for compliance option", "8.0", projectB.getOption(JavaScriptCore.COMPILER_COMPLIANCE, true));
-			assertEquals("projB:unexpected inherited value for hidden-catch option", JavaScriptCore.ERROR, projectB.getOption(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, true));
-	
-			// flush custom options - project A should revert to global ones
-			projectA.setOptions(null); 
-			assertEquals("projA:unexpected reverted value for deprecation option", JavaScriptCore.DISABLED, projectA.getOption(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, true));
-			assertEquals("projA:unexpected reverted value for compliance option", "8.0", projectA.getOption(JavaScriptCore.COMPILER_COMPLIANCE, true));
-			assertEquals("projA:unexpected inherited value2 for hidden-catch option", JavaScriptCore.ERROR, projectA.getOption(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, true));
-	
-		} finally {
-			this.deleteProject("A");
-			this.deleteProject("B");
-		}
-	}
-	
-	/**
-	 * Test custom encoding
-	 */
-	public void test02() throws CoreException {
-		try {
-			IJavaScriptProject projectA = 
-				this.createJavaProject(
-					"A", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-			IJavaScriptProject projectB = 
-				this.createJavaProject(
-					"B", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-					
-			String globalEncoding = JavaScriptCore.getOption(JavaScriptCore.CORE_ENCODING);
-	
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.CORE_ENCODING, "custom");
-			projectA.setOptions(options);
-	
-			// check project A custom options		
-			assertEquals("projA:unexpected custom encoding", "custom", projectA.getOption(JavaScriptCore.CORE_ENCODING, true));
-			
-			// check project B custom options	(should be none, indicating it sees global ones only)
-			assertEquals("projB:unexpected custom encoding", globalEncoding, projectB.getOption(JavaScriptCore.CORE_ENCODING, true));
-	
-			// flush custom options - project A should revert to global ones
-			projectA.setOptions(null); 
-			assertEquals("projA:unexpected reverted encoding", globalEncoding, projectA.getOption(JavaScriptCore.CORE_ENCODING, true));
-	
-		} finally {
-			this.deleteProject("A");
-			this.deleteProject("B");
-		}
-	}
-	
-	/**
-	 * Test custom project option (if not considering JavaScriptCore options)
-	 */
-	public void test03() throws CoreException {
-		try {
-			IJavaScriptProject projectA = 
-				this.createJavaProject(
-					"A", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-			IJavaScriptProject projectB = 
-				this.createJavaProject(
-					"B", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-					
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.DISABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "8.0");
-			options.put(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, JavaScriptCore.ERROR);
-			JavaScriptCore.setOptions(options);
-	
-			options.clear();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.ENABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "10.0");
-			projectA.setOptions(options);
-	
-			// check project A custom options		
-			assertEquals("projA:unexpected custom value for deprecation option", JavaScriptCore.ENABLED, projectA.getOption(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, false));
-			assertEquals("projA:unexpected custom value for compliance option", "10.0", projectA.getOption(JavaScriptCore.COMPILER_COMPLIANCE, false));
-			assertEquals("projA:unexpected inherited value1 for hidden-catch option", null, projectA.getOption(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, false));
-			
-			// check project B custom options	(should be none, indicating it sees global ones only)
-			assertEquals("projB:unexpected custom value for deprecation option", null, projectB.getOption(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, false));
-			assertEquals("projB:unexpected custom value for compliance option", null, projectB.getOption(JavaScriptCore.COMPILER_COMPLIANCE, false));
-			assertEquals("projB:unexpected inherited value for hidden-catch option", null, projectB.getOption(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, false));
-	
-			// flush custom options - project A should revert to global ones
-			projectA.setOptions(null); 
-			assertEquals("projA:unexpected reverted value for deprecation option", null, projectA.getOption(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, false));
-			assertEquals("projA:unexpected reverted value for compliance option", null, projectA.getOption(JavaScriptCore.COMPILER_COMPLIANCE, false));
-			assertEquals("projA:unexpected inherited value2 for hidden-catch option", null, projectA.getOption(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, false));
-	
-		} finally {
-			this.deleteProject("A");
-			this.deleteProject("B");
-		}
-	}
-	/**
-	 * Test persistence of project custom options - using getOptions()
-	 */
-	public void test04() throws CoreException {
-		try {
-			IJavaScriptProject projectA = 
-				this.createJavaProject(
-					"A", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-			IJavaScriptProject projectB = 
-				this.createJavaProject(
-					"B", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-					
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.DISABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "8.0");
-			options.put(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, JavaScriptCore.ERROR);
-			JavaScriptCore.setOptions(options);
-	
-			options.clear();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.ENABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "10.0");
-			projectA.setOptions(options);
-	
-			// check project A custom options		
-			assertEquals("projA:unexpected custom value for deprecation option", JavaScriptCore.ENABLED, projectA.getOptions(true).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projA:unexpected custom value for compliance option", "10.0", projectA.getOptions(true).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertEquals("projA:unexpected inherited value1 for hidden-catch option", JavaScriptCore.ERROR, projectA.getOptions(true).get(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK));
-			
-			// check project B custom options	(should be none, indicating it sees global ones only)
-			assertEquals("projB:unexpected custom value for deprecation option", JavaScriptCore.DISABLED, projectB.getOptions(true).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projB:unexpected custom value for compliance option", "8.0", projectB.getOptions(true).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertEquals("projB:unexpected inherited value for hidden-catch option", JavaScriptCore.ERROR, projectB.getOptions(true).get(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK));
-	
-			// flush custom options - project A should revert to global ones
-			projectA.setOptions(null); 
-			assertEquals("projA:unexpected reverted value for deprecation option", JavaScriptCore.DISABLED, projectA.getOptions(true).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projA:unexpected reverted value for compliance option", "8.0", projectA.getOptions(true).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertEquals("projA:unexpected inherited value2 for hidden-catch option", JavaScriptCore.ERROR, projectA.getOptions(true).get(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK));
-	
-		} finally {
-			this.deleteProject("A");
-			this.deleteProject("B");
-		}
-	}
-	
-	/**
-	 * Test custom encoding - using getOptions()
-	 */
-	public void test05() throws CoreException {
-		try {
-			IJavaScriptProject projectA = 
-				this.createJavaProject(
-					"A", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-			IJavaScriptProject projectB = 
-				this.createJavaProject(
-					"B", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-					
-			String globalEncoding = JavaScriptCore.getOption(JavaScriptCore.CORE_ENCODING);
-	
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.CORE_ENCODING, "custom");
-			projectA.setOptions(options);
-	
-			// check project A custom options		
-			assertEquals("projA:unexpected custom encoding", "custom", projectA.getOptions(true).get(JavaScriptCore.CORE_ENCODING));
-			
-			// check project B custom options	(should be none, indicating it sees global ones only)
-			assertEquals("projB:unexpected custom encoding", globalEncoding, projectB.getOptions(true).get(JavaScriptCore.CORE_ENCODING));
-	
-			// flush custom options - project A should revert to global ones
-			projectA.setOptions(null); 
-			assertEquals("projA:unexpected reverted encoding", globalEncoding, projectA.getOptions(true).get(JavaScriptCore.CORE_ENCODING));
-	
-		} finally {
-			this.deleteProject("A");
-			this.deleteProject("B");
-		}
-	}
-	
-	/**
-	 * Test custom project option (if not considering JavaScriptCore options) - using getOptions()
-	 */
-	public void test06() throws CoreException {
-		try {
-			IJavaScriptProject projectA = 
-				this.createJavaProject(
-					"A", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-			IJavaScriptProject projectB = 
-				this.createJavaProject(
-					"B", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-					
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.DISABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "8.0");
-			options.put(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK, JavaScriptCore.ERROR);
-			JavaScriptCore.setOptions(options);
-	
-			options.clear();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.ENABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "10.0");
-			projectA.setOptions(options);
-	
-			// check project A custom options		
-			assertEquals("projA:unexpected custom value for deprecation option", JavaScriptCore.ENABLED, projectA.getOptions(false).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projA:unexpected custom value for compliance option", "10.0", projectA.getOptions(false).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertEquals("projA:unexpected inherited value1 for hidden-catch option", null, projectA.getOptions(false).get(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK));
-			
-			// check project B custom options	(should be none, indicating it sees global ones only)
-			assertEquals("projB:unexpected custom value for deprecation option", null, projectB.getOptions(false).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projB:unexpected custom value for compliance option", null, projectB.getOptions(false).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertEquals("projB:unexpected inherited value for hidden-catch option", null, projectB.getOptions(false).get(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK));
-	
-			// flush custom options - project A should revert to global ones
-			projectA.setOptions(null); 
-			assertEquals("projA:unexpected reverted value for deprecation option", null, projectA.getOptions(false).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projA:unexpected reverted value for compliance option", null, projectA.getOptions(false).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertEquals("projA:unexpected inherited value2 for hidden-catch option", null, projectA.getOptions(false).get(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK));
-	
-		} finally {
-			this.deleteProject("A");
-			this.deleteProject("B");
-		}
-	}
-	/**
-	 * Custom options must replace existing ones completely without loosing property listeners
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=26255
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=49691
-	 */
-	public void test07() throws CoreException {
-		try {
-			this.eventCount = 0;
-			JavaProject projectA = (JavaProject)
-				this.createJavaProject(
-					"A", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-	//		Preferences preferences = projectA.getPreferences();
-	//		preferences.addPropertyChangeListener(new TestPropertyListener());
-			IEclipsePreferences eclipsePreferences = projectA.getEclipsePreferences();
-			TestPropertyListener listener = new TestPropertyListener();
-			eclipsePreferences.addPreferenceChangeListener(listener);
-		
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.ENABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "10.0");
-			projectA.setOptions(options);
-	
-			// check project A custom options		
-			assertEquals("projA:unexpected custom value for deprecation option", JavaScriptCore.ENABLED, projectA.getOptions(false).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projA:unexpected custom value for compliance option", "10.0", projectA.getOptions(false).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertEquals("projA:unexpected inherited value1 for hidden-catch option", null, projectA.getOptions(false).get(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK));
-	//		assertTrue("projA:preferences should not be reset", preferences == projectA.getPreferences());
-			assertTrue("projA:preferences should not be reset", eclipsePreferences == projectA.getEclipsePreferences());
-			assertTrue("projA:preferences property listener has been lost", eventCount == 2);
-		
-			// change custom options to have one less
-			options.clear();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.ENABLED);
-			projectA.setOptions(options);
-			assertEquals("projA:unexpected custom value for deprecation option", JavaScriptCore.ENABLED, projectA.getOptions(false).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projA:unexpected custom value for compliance option", null, projectA.getOptions(false).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertEquals("projA:unexpected inherited value1 for hidden-catch option", null, projectA.getOptions(false).get(JavaScriptCore.COMPILER_PB_HIDDEN_CATCH_BLOCK));
-	//		assertTrue("projA:preferences should not be reset", preferences == projectA.getPreferences());
-			assertTrue("projA:preferences should not be reset", eclipsePreferences == projectA.getEclipsePreferences());
-			assertTrue("projA:preferences property listener has been lost", eventCount == 3);
-		} finally {
-			this.deleteProject("A");
-		}
-	}
-	/**
-	 * Empty custom option must not be ignored
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=26251
-	 */
-	public void test08() throws CoreException {
-		try {
-			IJavaScriptProject projectA = 
-				this.createJavaProject(
-					"A", 
-					new String[] {}, // source folders
-					new String[] {}, // lib folders
-					new String[] {});
-	
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.COMPILER_TASK_TAGS, "TODO:");
-			JavaScriptCore.setOptions(options);
-			
-	
-			// check project A custom options		
-			assertEquals("1#projA:unexpected custom value for task tags option", null, projectA.getOption(JavaScriptCore.COMPILER_TASK_TAGS, false));
-			assertEquals("1#projA:unexpected custom value for inherited task tags option", "TODO:", projectA.getOption(JavaScriptCore.COMPILER_TASK_TAGS, true));
-			assertEquals("1#workspace:unexpected custom value for task tags option", "TODO:", JavaScriptCore.getOption(JavaScriptCore.COMPILER_TASK_TAGS));
-			
-			// change custom options to have one less
-			options.clear();
-			options.put(JavaScriptCore.COMPILER_TASK_TAGS, "");
-			projectA.setOptions(options);
-			assertEquals("2#projA:unexpected custom value for task tags option", "", projectA.getOption(JavaScriptCore.COMPILER_TASK_TAGS, false));
-			assertEquals("2#projA:unexpected custom value for inherited task tags option", "", projectA.getOption(JavaScriptCore.COMPILER_TASK_TAGS, true));
-			assertEquals("2#workspace:unexpected custom value for task tags option", "TODO:", JavaScriptCore.getOption(JavaScriptCore.COMPILER_TASK_TAGS));
-	
-			// change custom options to have one less
-			options.clear();
-			options.put(JavaScriptCore.COMPILER_TASK_TAGS, "@TODO");
-			JavaScriptCore.setOptions(options);
-			assertEquals("3#projA:unexpected custom value for task tags option", "", projectA.getOption(JavaScriptCore.COMPILER_TASK_TAGS, false));
-			assertEquals("3#projA:unexpected custom value for inherited task tags option", "", projectA.getOption(JavaScriptCore.COMPILER_TASK_TAGS, true));
-			assertEquals("3#workspace:unexpected custom value for task tags option", "@TODO", JavaScriptCore.getOption(JavaScriptCore.COMPILER_TASK_TAGS));
-	
-		} finally {
-			this.deleteProject("A");
-		}
-	}
-	/**
-	 * Custom options must replace existing ones completely without loosing property listeners
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=59258
-	 * http://bugs.eclipse.org/bugs/show_bug.cgi?id=60896
-	 */
-	public void test09() throws CoreException {
-		try {
-			this.eventCount = 0;
-			JavaProject projectA = (JavaProject) this.createJavaProject("A", new String[] {});
-	//		Preferences preferences = projectA.getPreferences();
-	//		preferences.addPropertyChangeListener(new TestPropertyListener());
-			IEclipsePreferences eclipsePreferences = projectA.getEclipsePreferences();
-			eclipsePreferences.addPreferenceChangeListener(new TestPropertyListener());
-		
-			Hashtable options = new Hashtable();
-			options.put(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE, JavaScriptCore.ENABLED);
-			options.put(JavaScriptCore.COMPILER_COMPLIANCE, "10.0");
-			projectA.setOptions(options);
-	
-			// check project A custom options		
-			assertEquals("projA:unexpected custom value for deprecation option", JavaScriptCore.ENABLED, projectA.getOptions(true).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projA:unexpected custom value for compliance option", "10.0", projectA.getOptions(true).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertTrue("projA:preferences should not be reset", eclipsePreferences == projectA.getEclipsePreferences());
-			assertEquals("projA:preferences property listener has been lost", 2, eventCount);
-		
-			// delete/create project A and verify that options are well reset
-			this.deleteProject("A");
-			projectA = (JavaProject) this.createJavaProject("A", new String[] {});
-			assertEquals("projA:unexpected custom value for deprecation option", JavaScriptCore.getOption(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE), projectA.getOptions(true).get(JavaScriptCore.COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE));
-			assertEquals("projA:unexpected custom value for compliance option", JavaScriptCore.getOption(JavaScriptCore.COMPILER_COMPLIANCE), projectA.getOptions(true).get(JavaScriptCore.COMPILER_COMPLIANCE));
-			assertTrue("projA:preferences should not be reset", eclipsePreferences != projectA.getEclipsePreferences());
-		} finally {
-			this.deleteProject("A");
-		}
-	}
-	
-	/*
-	 * Ensures that a classpath variable is still in the preferences after shutdown/restart
-	 * (regression test for bug 98720 [preferences] classpath variables are not exported if the session is closed and restored)
-	 */
-	public void test10() throws CoreException {
-		JavaScriptCore.setIncludepathVariable("TEST", new Path("testing"), null);
-		simulateExitRestart();
-		JavaModelManager manager = JavaModelManager.getJavaModelManager();
-		IEclipsePreferences preferences = manager.getInstancePreferences();
-		assertEquals(
-			"Should find variable TEST in preferences", 
-			"testing",
-			preferences.get(JavaModelManager.CP_VARIABLE_PREFERENCES_PREFIX+"TEST", "null"));
-	}
-
-	/*
-	 * Ensures that a classpath variable is removed from the preferences if set to null
-	 * (regression test for bug 98720 [preferences] classpath variables are not exported if the session is closed and restored)
-	 */
-	public void test11() throws CoreException {
-		JavaScriptCore.setIncludepathVariable("TEST", new Path("testing"), null);
-		JavaScriptCore.removeIncludepathVariable("TEST", null);
-		JavaModelManager manager = JavaModelManager.getJavaModelManager();
-		IEclipsePreferences preferences = manager.getInstancePreferences();
-		assertEquals(
-			"Should not find variable TEST in preferences", 
-			"null",
-			preferences.get(JavaModelManager.CP_VARIABLE_PREFERENCES_PREFIX+"TEST", "null"));
-	}
-
-	/*
-	 * Ensures that classpath problems are removed when a missing classpath variable is added through the preferences
-	 * (regression test for bug 109691 Importing preferences does not update classpath variables)
-	 */
-	public void test12() throws CoreException {
-		IEclipsePreferences preferences = JavaModelManager.getJavaModelManager().getInstancePreferences();
-		try {
-			IJavaScriptProject project = createJavaProject("P", new String[0], new String[] {"TEST"});
-			waitForAutoBuild();
-			preferences.put(JavaModelManager.CP_VARIABLE_PREFERENCES_PREFIX+"TEST", getSystemJsPathString());
-			assertMarkers("Unexpected markers", "", project);
-		} finally {
-			deleteProject("P");
-			preferences.remove(JavaModelManager.CP_VARIABLE_PREFERENCES_PREFIX+"TEST");
-		}
-	}
-
-	/**
-	 * Bug 68993: [Preferences] IAE when opening project preferences
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=68993"
-	 */
-	public void testBug68993() throws CoreException, BackingStoreException {
-		try {
-			JavaProject projectA = (JavaProject) this.createJavaProject(
-				"A", 
-				new String[] {}, // source folders
-				new String[] {}, // lib folders
-				new String[] {});
-
-			// Store project eclipse prefs
-			IEclipsePreferences eclipsePreferences = projectA.getEclipsePreferences();
-
-			// set all project options as custom ones: this is what happens when user select
-			// "Use project settings" in project 'Java Compiler' preferences page...
-			Hashtable options = new Hashtable(projectA.getOptions(true));
-			projectA.setOptions(options);
-
-			// reset all project custom options: this is what happens when user select
-			// "Use workspace settings" in project 'Java Compiler' preferences page...
-			options = new Hashtable();
-			options.put("internal.default.compliance", JavaScriptCore.DEFAULT);
-			projectA.setOptions(options);
-
-			// verify that project preferences have been reset
-			assertFalse("projA: Preferences should have been reset", eclipsePreferences == projectA.getEclipsePreferences());
-			assertEquals("projA: We should not have any custom options!", 0, projectA.getEclipsePreferences().keys().length);
-		} finally {
-			this.deleteProject("A");
-		}
-	}
-
-	/**
-	 * Bug 72214: [Preferences] IAE when opening project preferences
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=72214"
-	 */
-	public void testBug72214() throws CoreException, BackingStoreException {
-		// Remove JavaScriptCore instance prefs
-		JavaModelManager manager = JavaModelManager.getJavaModelManager();
-		IEclipsePreferences preferences = manager.getInstancePreferences();
-		int size = JavaScriptCore.getOptions().size();
-		preferences.removeNode();
-	
-		// verify that JavaScriptCore preferences have been reset
-		assertFalse("JavaScriptCore preferences should have been reset", preferences == manager.getInstancePreferences());
-		assertEquals("JavaScriptCore preferences should have been resotred!", size, JavaScriptCore.getOptions().size());
-	}
-
-	/**
-	 * Bug 100393: Defaults for compiler errors/warnings settings
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=100393"
-	 */
-	public void testBug100393() throws CoreException, BackingStoreException {
-		// Get default compiler options
-		Map options = new CompilerOptions().getMap();
-
-		// verify that CompilerOptions default preferences for modified options
-		assertEquals("Invalid default for "+CompilerOptions.OPTION_ReportUnusedLocal, CompilerOptions.WARNING, options.get(CompilerOptions.OPTION_ReportUnusedLocal));
-		assertEquals("Invalid default for "+CompilerOptions.OPTION_ReportUnusedPrivateMember, CompilerOptions.WARNING, options.get(CompilerOptions.OPTION_ReportUnusedPrivateMember));
-		assertEquals("Invalid default for "+CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE, options.get(CompilerOptions.OPTION_ReportFieldHiding));
-		assertEquals("Invalid default for "+CompilerOptions.OPTION_ReportLocalVariableHiding, CompilerOptions.IGNORE, options.get(CompilerOptions.OPTION_ReportLocalVariableHiding));
-	}
-	public void testBug100393b() throws CoreException, BackingStoreException {
-		// Get JavaScriptCore default preferences
-		JavaModelManager manager = JavaModelManager.getJavaModelManager();
-		IEclipsePreferences preferences = manager.getDefaultPreferences();
-
-		// verify that JavaScriptCore default preferences for modified options
-		assertEquals("Invalid default for "+JavaScriptCore.COMPILER_PB_UNUSED_LOCAL, "warning", preferences.get(JavaScriptCore.COMPILER_PB_UNUSED_LOCAL, "null"));
-		assertEquals("Invalid default for "+JavaScriptCore.COMPILER_PB_UNUSED_PRIVATE_MEMBER, "warning", preferences.get(JavaScriptCore.COMPILER_PB_UNUSED_PRIVATE_MEMBER, "null"));
-		assertEquals("Invalid default for "+JavaScriptCore.COMPILER_PB_FIELD_HIDING, "ignore", preferences.get(JavaScriptCore.COMPILER_PB_FIELD_HIDING, "null"));
-		assertEquals("Invalid default for "+JavaScriptCore.COMPILER_PB_LOCAL_VARIABLE_HIDING, "ignore", preferences.get(JavaScriptCore.COMPILER_PB_LOCAL_VARIABLE_HIDING, "null"));
-	}
-
-	/**
-	 * @bug 125360: IJavaScriptProject#setOption() doesn't work if same option as default
-	 * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=125360"
-	 */
-	public void testBug125360() throws CoreException, BackingStoreException {
-		try {
-			JavaProject project = (JavaProject) createJavaProject(
-				"P", 
-				new String[] {}, // source folders
-				new String[] {}, // lib folders
-				new String[] {});
-			project.setOption(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-			project.setOption(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_3);
-			String option = project.getOption(JavaScriptCore.COMPILER_SOURCE, true);
-			assertEquals(JavaScriptCore.VERSION_1_3, option);
-		} finally {
-			deleteProject("P");
-		}
-	}
-	
-	/**
-	 * @bug 131707: Cannot add classpath variables when starting with -pluginCustomization option
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=131707"
-	 */
-	public void testBug131707() throws CoreException {
-		IEclipsePreferences defaultPreferences = new DefaultScope().getNode(JavaScriptCore.PLUGIN_ID);
-		try {
-			defaultPreferences.put("org.eclipse.wst.jsdt.core.classpathVariable.MY_DEFAULT_LIB", "c:\\temp\\lib.jar");
-			simulateExitRestart();
-			String[] variableNames = JavaScriptCore.getIncludepathVariableNames();
-			for (int i = 0, length = variableNames.length; i < length; i++) {
-				if ("MY_DEFAULT_LIB".equals(variableNames[i])) {
-					assertEquals(
-						"Unexpected value for MY_DEFAULT_LIB", 
-						new Path("c:\\temp\\lib.jar"), 
-						JavaScriptCore.getIncludepathVariable("MY_DEFAULT_LIB"));
-					return;
-				}
-			}
-			assertFalse("Variable MY_DEFAULT_LIB not found", true);
-		} finally {
-			defaultPreferences.remove("org.eclipse.wst.jsdt.core.classpathVariable.MY_DEFAULT_LIB");
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/OverflowingCacheTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/OverflowingCacheTests.java
deleted file mode 100644
index f28779a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/OverflowingCacheTests.java
+++ /dev/null
@@ -1,692 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.IBuffer;
-import org.eclipse.wst.jsdt.core.IBufferChangedListener;
-import org.eclipse.wst.jsdt.core.IOpenable;
-import org.eclipse.wst.jsdt.internal.core.*;
-import org.eclipse.wst.jsdt.internal.core.BufferCache;
-import org.eclipse.wst.jsdt.internal.core.Openable;
-import org.eclipse.wst.jsdt.internal.core.OverflowingLRUCache;
-import org.eclipse.wst.jsdt.internal.core.util.MementoTokenizer;
-
-import junit.framework.Test;
-
-/**
- * Tests internal Java element cache and buffer cache.
- */
-public class OverflowingCacheTests extends ModifyingResourceTests {
-	
-	/**
-	 * Simple implementation of IBuffer to test the BufferCache.
-	 * A OverflowingTestBuffer is created with/without saved changes (determined
-	 * by client), and is opened on creation.
-	 */
-	public class OverflowingTestBuffer implements IBuffer {
-		/**
-		 * True if this buffer is open, otherwise false.
-		 */
-		public boolean isOpen;
-	
-		/**
-		 * True if this buffer has unsaved changes, otherwise false.
-		 */
-		public boolean hasUnsavedChanges;
-	
-		/**
-		 * The cache this buffer is stored in
-		 */
-		public OverflowingLRUCache cache;
-	
-		/**
-		 * This buffers owner (this buffer's key in this buffer's cache)
-		 */
-		public IOpenable owner;
-		
-		public OverflowingTestBuffer(boolean hasUnsavedChanges, OverflowingLRUCache cache) {
-			super();
-			this.hasUnsavedChanges= hasUnsavedChanges;
-			this.cache= cache;
-		}
-
-		public void addBufferChangedListener(IBufferChangedListener listener) {
-			// Not required for testing, does nothing.
-		}
-
-		public void append(char[] text) {
-			// Sets this buffer to have unsaved changes, but the actual contents are ignored.
-			this.hasUnsavedChanges= true;
-		}
-
-		public void append(String text) {
-			// Sets this buffer to have unsaved changes, but the actual contents are ignored.
-			this.hasUnsavedChanges= true;
-		}
-
-		public void close() {
-			// Closes the buffer and removes it from its cache
-			this.isOpen= false;
-			this.cache.remove(this.owner);
-		}
-
-		public char getChar(int position) {
-			// Returns a dummy char - test buffers have no contents
-			return '.';
-		}
-
-		public char[] getCharacters() {
-			// Returns null - test buffers have no contents
-			return null;
-		}
-
-		public String getContents() {
-			// Returns null - test buffers have no contents
-			return null;
-		}
-
-		public int getLength() {
-			// Returns 0 - test buffers have no contents
-			return 0;
-		}
-
-		public IOpenable getOwner() {
-			return this.owner;
-		}
-
-		public String getText(int beginIndex, int endIndex) {
-			// Returns null - test buffers have no contents
-			return null;
-		}
-
-		public IResource getUnderlyingResource() {
-			// Returns null - test buffers have no underlying resource
-			return null;
-		}
-
-		public boolean hasUnsavedChanges() {
-			return this.hasUnsavedChanges;
-		}
-
-		public boolean isClosed() {
-			return !this.isOpen;
-		}
-
-		public boolean isReadOnly() {
-			return false;
-		}
-
-		public void removeBufferChangedListener(IBufferChangedListener listener) {
-			// Not required for testing, does nothing.
-		}
-
-		public void replace(int position, int length, char[] text) {
-			// Sets this buffer to have unsaved changes, but the actual contents are ignored.
-			this.hasUnsavedChanges = true;
-		}
-
-		public void replace(int position, int length, String text) {
-			// Sets this buffer to have unsaved changes, but the actual contents are ignored.
-			this.hasUnsavedChanges = true;
-		}
-
-		public void save(IProgressMonitor progress) throws IllegalArgumentException {
-			save(progress, false);
-		}
-
-		public void save(IProgressMonitor progress, boolean force) throws IllegalArgumentException {
-			this.hasUnsavedChanges= false;
-		}
-
-		public void setContents(char[] contents) {
-			// Sets this buffer to have unsaved changes, but the actual contents are ignored.
-			this.hasUnsavedChanges= true;
-		}
-
-		public void setContents(String contents) {
-			// Sets this buffer to have unsaved changes, but the actual contents are ignored.
-			this.hasUnsavedChanges= true;
-		}
-	}
-
-	/**
-	 * Simple implementation of IOpenable to test the ElementCache.
-	 * A OverflowingTestBuffer is created with/without saved changes (determined
-	 * by client), and is opened on creation.
-	 */
-	
-	public class OverflowingTestOpenable extends Openable {
-		/**
-		 * True if this element is open, otherwise false.
-		 */
-		public boolean isOpen;
-	
-		public OverflowingTestBuffer buffer;
-	
-		/**
-		 * The cache this element is stored in
-		 */
-		public OverflowingLRUCache cache;
-
-		/**
-		 * Constructs a new openable, with unsaved changes as specified,
-		 * that lives in the given cache, and opens it.
-		 */
-		public OverflowingTestOpenable(OverflowingTestBuffer buffer, OverflowingLRUCache cache) {
-			super(null);
-			this.buffer = buffer;
-			buffer.owner = this;
-			this.cache= cache;
-			open(null);
-		}
-		
-		protected boolean buildStructure(OpenableElementInfo info, IProgressMonitor pm, Map newElements, IResource underlyingResource) {
-			return false;
-		}
-		
-		public void close() {
-			// Closes this element and removes if from the cache.
-			this.isOpen = false;
-			this.cache.remove(this);
-		}
-
-		public boolean equals(Object o) {
-			if (!(o instanceof OverflowingTestOpenable)) return false;
-			return super.equals(o);
-		}
-
-		public IBuffer getBuffer() {
-			// This functionality not required for testing element cache - returns <code>null</code>.
-			return null;
-		}
-
-		public int getElementType() {
-			return 0;
-		}
-
-		public IJavaScriptElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner owner) {
-			return null;
-		}
-		
-		protected char getHandleMementoDelimiter() {
-			return 0;
-		}
-
-		public IPath getPath() {
-			return null;
-		}
-
-		public IResource getResource() {
-			return null;
-		}
-
-		public boolean hasUnsavedChanges() {
-			return this.buffer.hasUnsavedChanges();
-		}
-
-		public boolean isConsistent() {
-			return true;
-		}
-
-		public boolean isOpen() {
-			return this.isOpen;
-		}
-
-		public void makeConsistent(IProgressMonitor pm) {
-			// This functionality not required for testing element cache - does nothing.
-		}
-
-		public void open(IProgressMonitor pm) {
-			this.isOpen = true;
-		}
-
-		public void save(IProgressMonitor pm) {
-			save(pm, false);
-		}
-
-		public void save(IProgressMonitor pm, boolean force) {
-			this.buffer.hasUnsavedChanges = false;
-		}
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(OverflowingCacheTests.class);
-	}
-
-	public OverflowingCacheTests(String name) {
-		super(name);
-	}
-
-	/**
-	 * Returns true if i is not divisible by 10.
-	 */
-	private boolean hasUnsavedChanges(int i) {
-		return i % 10 != 0;
-	}
-	
-	/*
-	 * Ensures that the Java model cache adapts its size for a project with a number of roots greater than the default max.
-	 */
-	public void testBigNumberOfRoots() throws CoreException {
-		try {
-			IJavaScriptProject project = createJavaProject("P");
-			int rootSize = JavaModelCache.DEFAULT_ROOT_SIZE * 2;
-			for (int i = 0; i < rootSize; i++) {
-				if (i < 10)
-					createFolder("/P/src00" + i);
-				else if (i < 100)
-					createFolder("/P/src0" + i);
-				else
-					createFolder("/P/src" + i);
-			}
-			IIncludePathEntry[] classpath = new IIncludePathEntry[rootSize+1];
-			for (int i = 0; i < rootSize; i++) {
-				if (i < 10)
-					classpath[i] = JavaScriptCore.newSourceEntry(new Path("/P/src00" + i));
-				else if (i < 100)
-					classpath[i] = JavaScriptCore.newSourceEntry(new Path("/P/src0" + i));
-				else
-					classpath[i] = JavaScriptCore.newSourceEntry(new Path("/P/src" + i));
-			}
-			classpath[rootSize] = JavaScriptCore.newVariableEntry(new Path("JCL_LIB"), null, null);
-			project.setRawIncludepath(classpath, null);
-			
-			// Open all roots
-			IJavaScriptElement[] roots = project.getChildren();
-			for (int i = 0; i < rootSize; i++) {
-				((IOpenable) roots[i]).open(null);
-			}
-			
-			// Ensure that all roots remained opened
-			for (int i = 0; i < rootSize; i++) {
-				assertTrue("Root should be opened " + roots[i], ((IOpenable) roots[i]).isOpen());
-			}
-		} finally {
-			deleteProject("P");
-		}
-	}
-
-
-	/**
-	 * Creates an empty BufferCache and ensures that it answers correctly
-	 * for #getSpaceLimit, #getCurrentSpace, and #getOverlflow.
-	 */
-	public void testBufferCacheCreation() {
-		int spaceLimit = 10, actualSpaceLimit;
-		int overflow = 0, actualOverflow;
-		int current = 0, actualCurrent;
-		OverflowingLRUCache cache = new BufferCache(spaceLimit);
-		
-		actualSpaceLimit = cache.getSpaceLimit();
-		assertEquals("space limit incorrect ", spaceLimit, actualSpaceLimit);
-		
-		actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect ", current, actualCurrent);
-		
-		actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect ", overflow, actualOverflow);
-	}
-	
-	/**
-	 * Creates an empty BufferCache of size 20, inserts 20 buffers
-	 * and ensures that it is full, with zero overflow.
-	 */
-	public void testBufferCacheFill() {
-		int spaceLimit = 20, actualSpaceLimit;
-		int overflow = 0, actualOverflow;
-		int current = 0, actualCurrent;
-	
-		OverflowingLRUCache cache = new BufferCache(spaceLimit);
-		OverflowingTestBuffer[] buffers= new OverflowingTestBuffer[spaceLimit];
-		OverflowingTestOpenable[] openables= new OverflowingTestOpenable[spaceLimit];
-		for(int i = 0; i < spaceLimit; i++) {
-			buffers[i] = new OverflowingTestBuffer(false, cache);
-			openables[i]= new OverflowingTestOpenable(buffers[i], null);
-			cache.put(openables[i], buffers[i]);
-			current++;
-		}
-
-		actualSpaceLimit = cache.getSpaceLimit();
-		assertEquals("space limit incorrect ", spaceLimit, actualSpaceLimit);
-		
-		actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect ", current, actualCurrent);
-		
-		actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect ", overflow, actualOverflow);
-	
-		for(int i = spaceLimit - 1; i >= 0; i--) {
-			Object value = cache.get(openables[i]);
-			assertEquals("wrong value ("+i+")", buffers[i], value);
-		}	
-	}
-	
-	/**
-	 * Creates an empty BufferCache of size 500, inserts 1000 buffers
-	 * and ensures that the cache has 334 buffers left in it. When the
-	 * 501st buffer is placed in the cache, the cache will remove 333
-	 * buffers from the cache leaving 167 buffers in the cache. When the
-	 * 833rd buffer is added, it will reach its space limit again, and
-	 * shrink to 167 entries. The remaining 167 buffers will be added
-	 * the cache, leaving it with 334 entries.
-	 */
-	public void testBufferCacheUseNoOverflow() {
-		int spaceLimit = 500, actualSpaceLimit;
-		int overflow = 0, actualOverflow;
-		int actualCurrent, predictedCurrent = 334;
-		int entryCount = 1000;
-	
-		OverflowingLRUCache cache = new BufferCache(spaceLimit);
-		OverflowingTestOpenable[] openables = new OverflowingTestOpenable[entryCount];
-		OverflowingTestBuffer[] buffers= new OverflowingTestBuffer[entryCount];
-		for(int i = 0; i < entryCount; i++) {
-			buffers[i]= new OverflowingTestBuffer(false, cache);
-			openables[i] = new OverflowingTestOpenable(buffers[i], null);
-			cache.put(openables[i], buffers[i]);
-		}
-
-		actualSpaceLimit = cache.getSpaceLimit();
-		assertEquals("space limit incorrect ", spaceLimit, actualSpaceLimit);
-		
-		actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect ", predictedCurrent, actualCurrent);
-		
-		actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect ", overflow, actualOverflow);
-	
-	
-		for(int i = entryCount - 1; i >= entryCount - predictedCurrent; i--) {
-			Object value = cache.get(openables[i]);
-			assertEquals("wrong value ("+i+")", buffers[i], value);
-		}
-	
-		// ensure first 500 entries swaped out
-		for(int i = 0; i < spaceLimit; i++) {
-			Object value = cache.get(openables[i]);
-			assertEquals("entry should not be present", null, value);
-		}	
-	}
-
-	/**
-	 * Creates an empty BufferCache of size 500, inserts 1000 buffers.
-	 * Nine of every ten entries cannot be removed - there are 1000 entries,
-	 * leaving 900 entries which can't be closed. The table size should equal
-	 * 900 when done with an overflow of 400.
-	 *
-	 * @see #hasUnsavedChanges(int)
-	 */
-	public void testBufferCacheUseOverflow() {
-		int spaceLimit = 500;
-		int entryCount = 1000;
-		
-		OverflowingLRUCache cache = new BufferCache(spaceLimit);
-		OverflowingTestOpenable[] openables = new OverflowingTestOpenable[entryCount];
-		OverflowingTestBuffer[] buffers= new OverflowingTestBuffer[entryCount];
-		for (int i = 0; i < entryCount; i++) {
-			boolean hasUnsavedChanges = hasUnsavedChanges(i);
-			buffers[i]= new OverflowingTestBuffer(hasUnsavedChanges, cache);
-			openables[i] = new OverflowingTestOpenable(buffers[i], null);
-			cache.put(openables[i], buffers[i]);
-		}
-	
-		Hashtable table = cache.getEntryTable();
-		assertEquals("Hashtable wrong size", 900, table.size());	 	
-		
-		int actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect", 900, actualCurrent);
-		
-		int actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect", 400, actualOverflow);
-		
-		for (int i = entryCount - 1; i >= 0; i--) {
-			if (hasUnsavedChanges(i)) {
-				Object value = cache.get(openables[i]);
-				assertEquals("wrong value (" + i + ")", buffers[i], value);
-			}
-		}
-	
-		// the cache should shrink back to the spaceLimit as we save entries with unsaved changes
-		for (int i= 0; i < entryCount; i++) {
-			buffers[i].save(null, false);
-		}
-		// now add another entry to remove saved openables.
-		OverflowingTestBuffer buffer1= new OverflowingTestBuffer(false, cache);
-		IOpenable openable1= new OverflowingTestOpenable(buffer1, null);
-		cache.put(openable1, buffer1);
-		
-		// now the size should be back to 168, with 0 overflow
-		actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect (after flush)", 168, actualCurrent);
-		actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect (after flush)", 0, actualOverflow);	
-	}
-
-	/**
-	 * Tests the actual Java Model buffer cache to ensure that it fills and empties
-	 * as expected. This test first closes all open buffers to ensure the cache
-	 * is empty.
-	 *
-	 * <p>60 compilation units are opened to fill the cache.
-	 */
-	public void testBufferRecycling() throws CoreException {
-		Enumeration openBuffers= BufferManager.getDefaultBufferManager().getOpenBuffers();
-		while (openBuffers.hasMoreElements()) {
-			IBuffer buf= (IBuffer)openBuffers.nextElement();
-			buf.close();
-		}
-		openBuffers= BufferManager.getDefaultBufferManager().getOpenBuffers();
-		assertTrue("buffer cache not empty", !openBuffers.hasMoreElements());
-		
-		try {
-			createJavaProject("P");
-			for (int i = 0; i < 61; i++) {
-				createFile(
-					"P/X" + i + ".js",
-					"public class X" + i + " {\n" +
-					"}"
-				);
-			}
-			IPackageFragment pkg= getPackage("P");
-			IJavaScriptUnit[] cus = pkg.getJavaScriptUnits();
-		
-			// fill the cache - open 60 buffers
-			int max = 60;
-			for (int i= 0; i < max; i++) {
-				cus[i].getBuffer();
-			}
-		
-			// should be 60 buffers now
-			openBuffers= BufferManager.getDefaultBufferManager().getOpenBuffers();
-			int count= 0;
-			while (openBuffers.hasMoreElements()) {
-				openBuffers.nextElement();
-				count++;
-			}
-			assertEquals("incorrect numbers of open buffers (1)", max, count);
-		
-			// open one more buffer should cause the cache to free up 2/3rds of its space
-			// which means 40 buffers will be closed, and 1 will be added (this one),
-			// totalling 21 = 60 - 40 + 1.
-			cus[max].getBuffer();
-			openBuffers= BufferManager.getDefaultBufferManager().getOpenBuffers();
-			count= 0;
-			while (openBuffers.hasMoreElements()) {
-				openBuffers.nextElement();
-				count++;
-			}
-			assertEquals("incorrect numbers of open buffers (2)", 21, count);	
-		
-			//re-opening a previous open buffer should work fine
-			cus[0].getBuffer();
-			openBuffers= BufferManager.getDefaultBufferManager().getOpenBuffers();
-			count= 0;
-			while (openBuffers.hasMoreElements()) {
-				openBuffers.nextElement();
-				count++;
-			}
-			assertEquals("incorrect numbers of open buffers (3)", 22, count);	
-		} finally {
-			deleteProject("P");
-		}
-	}
-
-	/**
-	 * Creates an empty ElementCache and ensures that it answers correctly
-	 * for #getSpaceLimit, #getCurrentSpace, and #getOverlflow.
-	 */
-	public void testElementCacheCreation() {
-		int spaceLimit = 10, actualSpaceLimit;
-		int overflow = 0, actualOverflow;
-		int current = 0, actualCurrent;
-		OverflowingLRUCache cache = new ElementCache(spaceLimit);
-		
-		actualSpaceLimit = cache.getSpaceLimit();
-		assertEquals("space limit incorrect ", spaceLimit, actualSpaceLimit);
-		
-		actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect ", current, actualCurrent);
-		
-		actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect ", overflow, actualOverflow);
-	}
-
-	/**
-	 * Creates an empty ElementCache of size 500, inserts 500 elements
-	 * and ensures that it is full, with zero overflow.
-	 */
-	public void testElementCacheFill() {
-		int spaceLimit = 500, actualSpaceLimit;
-		int overflow = 0, actualOverflow;
-		int current = 0, actualCurrent;
-	
-		OverflowingLRUCache cache = new ElementCache(spaceLimit);
-		OverflowingTestOpenable[] openables = new OverflowingTestOpenable[spaceLimit];
-		for(int i = 0; i < spaceLimit; i++) {
-			openables[i] = new OverflowingTestOpenable(new OverflowingTestBuffer(false, null), cache);
-			cache.put(openables[i], Integer.toString(i));
-			current++;
-		}
-
-		actualSpaceLimit = cache.getSpaceLimit();
-		assertEquals("space limit incorrect ", spaceLimit, actualSpaceLimit);
-		
-		actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect ", current, actualCurrent);
-		
-		actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect ", overflow, actualOverflow);
-	
-		for(int i = spaceLimit - 1; i >= 0; i--) {
-			Object value = cache.get(openables[i]);
-			assertEquals("wrong value (" + i + ")", Integer.toString(i), value);
-		}	
-	}
-
-	/**
-	 * Creates an empty ElementCache of size 500, inserts 1000 elements
-	 * and ensures that the cache has 334 elements left in it. When the
-	 * 501st element is placed in the cache, the cache will remove 333
-	 * elements from the cache leaving 167 elements in the cache. When the
-	 * 833rd element is added, it will reach its space limit again, and
-	 * shrink to 167 entries. The remaining 167 elements will be added
-	 * the cache, leaving it with 334 entries.
-	 */
-	public void testElementCacheUseNoOverflow() {
-		int spaceLimit = 500, actualSpaceLimit;
-		int overflow = 0, actualOverflow;
-		int actualCurrent, predictedCurrent = 334;
-		int entryCount = 1000;
-	
-		OverflowingLRUCache cache = new ElementCache(spaceLimit);
-		OverflowingTestOpenable[] openables = new OverflowingTestOpenable[entryCount];
-		for(int i = 0; i < entryCount; i++) {
-			openables[i] = new OverflowingTestOpenable(new OverflowingTestBuffer(false, null), cache);
-			cache.put(openables[i], Integer.toString(i));
-		}
-
-		actualSpaceLimit = cache.getSpaceLimit();
-		assertEquals("space limit incorrect ", spaceLimit, actualSpaceLimit);
-		
-		actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect ", predictedCurrent, actualCurrent);
-		
-		actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect ", overflow, actualOverflow);
-	
-		for(int i = entryCount - 1; i >= entryCount - predictedCurrent; i--) {
-			Object value = cache.get(openables[i]);
-			assertEquals("wrong value (" + i + ")", Integer.toString(i), value);
-		}
-	
-		// ensure first 500 entries swaped out
-		for(int i = 0; i < spaceLimit; i++) {
-			Object value = cache.get(openables[i]);
-			assertEquals("entry should not be present", null, value);
-		}	
-	}
-
-	/**
-	 * Creates an empty ElementCache of size 500, inserts 1000 elements.
-	 * Nine of every ten entries cannot be removed - there are 1000 entries,
-	 * leaving 900 entries which can't be closed. Thetable size should equal
-	 * 900 when done with an overflow of 400.
-	 *
-	 * @see #hasUnsavedChanges(int)
-	 */
-	public void testElementCacheUseOverflow() {
-		int spaceLimit = 500;
-		int entryCount = 1000;
-		
-		OverflowingLRUCache cache = new ElementCache(spaceLimit);
-		OverflowingTestOpenable[] openables = new OverflowingTestOpenable[entryCount];
-		for (int i = 0; i < entryCount; i++) {
-			openables[i] = new OverflowingTestOpenable(new OverflowingTestBuffer(hasUnsavedChanges(i), null), cache);
-			cache.put(openables[i], Integer.toString(i));
-		}
-	
-		Hashtable table = cache.getEntryTable();
-		assertEquals("Hashtable wrong size", 900, table.size());	 	
-		int actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect", 900, actualCurrent);
-		int actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect", 400, actualOverflow);
-		
-		for (int i = entryCount - 1; i >= 0; i--) {
-			if (hasUnsavedChanges(i)) {
-				Object value = cache.get(openables[i]);
-				assertEquals("wrong value (" + i + ")", Integer.toString(i), value);
-			}
-		}
-	
-		// the cache should shrink back to the spaceLimit as we save entries with unsaved changes
-		for (int i= 0; i < entryCount; i++) {
-			openables[i].save(null, false);
-		}
-		// now add another entry to remove saved openables.
-		cache.put(Integer.toString(1001), new OverflowingTestOpenable(new OverflowingTestBuffer(false, null), cache));
-		// now the size should be back to 500, with 0 overflow
-		actualCurrent = cache.getCurrentSpace();
-		assertEquals("current space incorrect (after flush)", 168, actualCurrent);
-		actualOverflow = cache.getOverflow();
-		assertEquals("overflow space incorrect (after flush)", 0, actualOverflow);	
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ReconcilerStatementsRecoveryTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ReconcilerStatementsRecoveryTests.java
deleted file mode 100644
index d9301cd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ReconcilerStatementsRecoveryTests.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.search.indexing.IndexManager;
-import org.eclipse.wst.jsdt.core.*;
-
-public class ReconcilerStatementsRecoveryTests extends ModifyingResourceTests {
-	
-	protected IJavaScriptUnit workingCopy;
-	protected ProblemRequestor problemRequestor;
-	
-	/* A problem requestor that auto-cancels on first problem */
-	class CancelingProblemRequestor extends ProblemRequestor {
-		IProgressMonitor progressMonitor = new IProgressMonitor() {
-			boolean isCanceled = false;
-			public void beginTask(String name, int totalWork) {}
-			public void done() {}
-			public void internalWorked(double work) {}
-			public boolean isCanceled() {
-				return this.isCanceled;
-			}
-			public void setCanceled(boolean value) {
-				this.isCanceled = value;
-			}
-			public void setTaskName(String name) {}
-			public void subTask(String name) {}
-			public void worked(int work) {}
-		};
-	
-		boolean isCanceling = false;
-		public void acceptProblem(IProblem problem) {
-			if (isCanceling) this.progressMonitor.setCanceled(true); // auto-cancel on first problem
-			super.acceptProblem(problem);
-		}		
-	}
-
-/**
- */
-public ReconcilerStatementsRecoveryTests(String name) {
-	super(name);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//	JavaModelManager.VERBOSE = true;
-//	org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine.VERBOSE = true;
-//	TESTS_PREFIX = "testIgnoreIfBetterNonAccessibleRule";
-//	TESTS_NAMES = new String[] { "testExternal" };
-//	TESTS_NUMBERS = new int[] { 118823 };
-//	TESTS_RANGE = new int[] { 16, -1 };
-}
-public static Test suite() {
-	return buildModelTestSuite(ReconcilerStatementsRecoveryTests.class);
-}
-protected void assertProblems(String message, String expected) {
-	assertProblems(message, expected, this.problemRequestor);
-}
-// Expect no error as soon as indexing is finished
-protected void assertNoProblem(char[] source, IJavaScriptUnit unit) throws InterruptedException, JavaScriptModelException {
-	IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
-	if (this.problemRequestor.problemCount > 0) {
-		// If errors then wait for indexes to finish
-		while (indexManager.awaitingJobsCount() > 0) {
-			Thread.sleep(100);
-		}
-		// Reconcile again to see if error goes away
-		this.problemRequestor.initialize(source);
-		unit.getBuffer().setContents(source); // need to set contents again to be sure that following reconcile will be really done
-		unit.reconcile(AST.JLS3,
-			true, // force problem detection to see errors if any
-			null,	// do not use working copy owner to not use working copies in name lookup
-			null);
-		if (this.problemRequestor.problemCount > 0) {
-			assertEquals("Working copy should NOT have any problem!", "", this.problemRequestor.problems.toString());
-		}
-	}
-}
-protected void addClasspathEntries(IIncludePathEntry[] entries, boolean enableForbiddenReferences) throws JavaScriptModelException {
-	IJavaScriptProject project = getJavaProject("Reconciler");
-	IIncludePathEntry[] oldClasspath = project.getRawIncludepath();
-	int oldLength = oldClasspath.length;
-	int length = entries.length;
-	IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldLength+length];
-	System.arraycopy(oldClasspath, 0, newClasspath, 0, oldLength);
-	System.arraycopy(entries, 0, newClasspath, oldLength, length);
-	project.setRawIncludepath(newClasspath, null);
-	
-	if (enableForbiddenReferences) {
-		project.setOption(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-	}
-}
-protected void removeClasspathEntries(IIncludePathEntry[] entries) throws JavaScriptModelException {
-	IJavaScriptProject project = getJavaProject("Reconciler");
-	IIncludePathEntry[] oldClasspath = project.getRawIncludepath();
-	int oldLength = oldClasspath.length;
-	int length = entries.length;
-	IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldLength-length];
-	System.arraycopy(oldClasspath, 0, newClasspath, 0, oldLength-length);
-	project.setRawIncludepath(newClasspath, null);
-}
-/**
- * Setup for the next test.
- */
-public void setUp() throws Exception {
-	super.setUp();
-	this.problemRequestor =  new ProblemRequestor();
-	this.workingCopy = getCompilationUnit("Reconciler/src/p1/X.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-	this.problemRequestor.initialize(this.workingCopy.getSource().toCharArray());
-	startDeltas();
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-
-	// Create project with 1.4 compliance
-	IJavaScriptProject project14 = createJavaProject("Reconciler", new String[] {"src"}, new String[] {"JCL_LIB"});
-	createFolder("/Reconciler/src/p1");
-	createFolder("/Reconciler/src/p2");
-	createFile(
-		"/Reconciler/src/p1/X.js", 
-		"  function foo() {\n" +
-		"}"
-	);
-	project14.setOption(JavaScriptCore.COMPILER_PB_UNUSED_LOCAL, JavaScriptCore.IGNORE);
-	project14.setOption(JavaScriptCore.COMPILER_PB_INVALID_JAVADOC, JavaScriptCore.WARNING);
-
-	// Create project with 1.5 compliance
-	IJavaScriptProject project15 = createJavaProject("Reconciler15", new String[] {"src"}, new String[] {"JCL15_LIB"}, "bin", "1.5");
-	addLibrary(
-		project15, 
-		"lib15.jar", 
-		"lib15src.zip", 
-		new String[] {
-			"java/util/List.js",
-			"package java.util;\n" +
-			"public class List<T> {\n" +
-			"}",
-			"java/util/Stack.js",
-			"package java.util;\n" +
-			"public class Stack<T> {\n" +
-			"}",
-			"java/util/Map.js",
-			"package java.util;\n" +
-			"public interface Map<K,V> {\n" +
-			"}",
-			"java/lang/annotation/Annotation.js",
-			"package java.lang.annotation;\n" +
-			"public interface Annotation {\n" +
-			"}",
-			"java/lang/Deprecated.js",
-			"package java.lang;\n" +
-			"public @interface Deprecated {\n" +
-			"}",
-			"java/lang/SuppressWarnings.js",
-			"package java.lang;\n" +
-			"public @interface SuppressWarnings {\n" +
-			"   String[] value();\n" +
-			"}"
-		}, 
-		JavaScriptCore.VERSION_1_5
-	);
-	project15.setOption(JavaScriptCore.COMPILER_PB_UNUSED_LOCAL, JavaScriptCore.IGNORE);
-}
-//private void setUp15WorkingCopy() throws JavaScriptModelException {
-//	setUp15WorkingCopy("Reconciler15/src/p1/X.js", new WorkingCopyOwner() {});
-//}
-//private void setUp15WorkingCopy(String path, WorkingCopyOwner owner) throws JavaScriptModelException {
-//	String contents = this.workingCopy.getSource();
-//	setUpWorkingCopy(path, contents, owner);
-//}
-//private void setUpWorkingCopy(String path, String contents) throws JavaScriptModelException {
-//	setUpWorkingCopy(path, contents, new WorkingCopyOwner() {});
-//}
-//private void setUpWorkingCopy(String path, String contents, WorkingCopyOwner owner) throws JavaScriptModelException {
-//	this.workingCopy.discardWorkingCopy();
-//	this.workingCopy = getCompilationUnit(path).getWorkingCopy(owner, this.problemRequestor, null);
-//	setWorkingCopyContents(contents);
-//	this.workingCopy.makeConsistent(null);
-//}
-void setWorkingCopyContents(String contents) throws JavaScriptModelException {
-	this.workingCopy.getBuffer().setContents(contents);
-	this.problemRequestor.initialize(contents.toCharArray());
-}
-/**
- * Cleanup after the previous test.
- */
-public void tearDown() throws Exception {
-	TestvalidationParticipant.PARTICIPANT = null;
-	if (this.workingCopy != null) {
-		this.workingCopy.discardWorkingCopy();
-	}
-	stopDeltas();
-	super.tearDown();
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("Reconciler");
-	deleteProject("Reconciler15");
-	super.tearDownSuite();
-}
-/*
- * No ast and no statements recovery
- */
-public void testStatementsRecovery01() throws CoreException {
-	// Introduce syntax error
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"     UnknownType name\n" +
-		"  }\n" +
-		"}");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, false, null, null);
-	assertDeltas(
-		"Unexpected delta after syntax error", 
-		"[Working copy] X.js[*]: {CONTENT | FINE GRAINED}"
-	);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.js (at line 5)\n" + 
-		"	UnknownType name\n" + 
-		"	            ^^^^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n"
-	);
-	
-	clearDeltas();
-}
-/*
- * Ast and no statements recovery
- */
-public void testStatementsRecovery02() throws CoreException {
-	// Introduce syntax error
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"     UnknownType name\n" +
-		"  }\n" +
-		"}");
-	this.workingCopy.reconcile(AST.JLS3, false, false, null, null);
-	assertDeltas(
-		"Unexpected delta after syntax error", 
-		"[Working copy] X.js[*]: {CONTENT | FINE GRAINED | AST AFFECTED}"
-	);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.js (at line 5)\n" + 
-		"	UnknownType name\n" + 
-		"	            ^^^^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n"
-	);
-	
-	clearDeltas();
-}
-/*
- * No ast, statements recovery
- */
-public void testStatementsRecovery03() throws CoreException {
-	// Introduce syntax error
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"     UnknownType name\n" +
-		"  }\n" +
-		"}");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, true, null, null);
-	assertDeltas(
-		"Unexpected delta after syntax error", 
-		"[Working copy] X.js[*]: {CONTENT | FINE GRAINED}"
-	);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.js (at line 5)\n" + 
-		"	UnknownType name\n" + 
-		"	^^^^^^^^^^^\n" + 
-		"UnknownType cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in /Reconciler/src/p1/X.js (at line 5)\n" + 
-		"	UnknownType name\n" + 
-		"	            ^^^^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n"
-	);
-	
-	clearDeltas();
-}
-/*
- * Ast, statements recovery
- */
-public void testStatementsRecovery04() throws CoreException {
-	// Introduce syntax error
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"     UnknownType name\n" +
-		"  }\n" +
-		"}");
-	this.workingCopy.reconcile(AST.JLS3, false, true, null, null);
-	assertDeltas(
-		"Unexpected delta after syntax error", 
-		"[Working copy] X.js[*]: {CONTENT | FINE GRAINED | AST AFFECTED}"
-	);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.js (at line 5)\n" + 
-		"	UnknownType name\n" + 
-		"	^^^^^^^^^^^\n" + 
-		"UnknownType cannot be resolved to a type\n" + 
-		"----------\n" + 
-		"2. ERROR in /Reconciler/src/p1/X.js (at line 5)\n" + 
-		"	UnknownType name\n" + 
-		"	            ^^^^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n"
-	);
-	
-	clearDeltas();
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ReconcilerTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ReconcilerTests.java
deleted file mode 100644
index 5d2b782..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ReconcilerTests.java
+++ /dev/null
@@ -1,3413 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.wst.jsdt.core.IBuffer;
-import org.eclipse.wst.jsdt.core.IIncludePathEntry;
-import org.eclipse.wst.jsdt.core.IJavaScriptElementDelta;
-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.WorkingCopyOwner;
-import org.eclipse.wst.jsdt.core.compiler.CategorizedProblem;
-import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.compiler.ReconcileContext;
-import org.eclipse.wst.jsdt.core.compiler.ValidationParticipant;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.core.CompilationUnit;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.search.indexing.IndexManager;
-
-public class ReconcilerTests extends ModifyingResourceTests {
-	
-	protected IJavaScriptUnit workingCopy;
-	protected ProblemRequestor problemRequestor;
-	
-	/* A problem requestor that auto-cancels on first problem */
-	class CancelingProblemRequestor extends ProblemRequestor {
-		IProgressMonitor progressMonitor = new IProgressMonitor() {
-			boolean isCanceled = false;
-			public void beginTask(String name, int totalWork) {}
-			public void done() {}
-			public void internalWorked(double work) {}
-			public boolean isCanceled() {
-				return this.isCanceled;
-			}
-			public void setCanceled(boolean value) {
-				this.isCanceled = value;
-			}
-			public void setTaskName(String name) {}
-			public void subTask(String name) {}
-			public void worked(int work) {}
-		};
-	
-		boolean isCanceling = false;
-		public void acceptProblem(IProblem problem) {
-			if (isCanceling) this.progressMonitor.setCanceled(true); // auto-cancel on first problem
-			super.acceptProblem(problem);
-		}		
-	}
-	
-	class ReconcileParticipant extends ValidationParticipant {
-		IJavaScriptElementDelta delta;
-		org.eclipse.wst.jsdt.core.dom.JavaScriptUnit ast;
-		ReconcileParticipant() {
-			TestvalidationParticipant.PARTICIPANT = this;
-		}
-		public boolean isActive(IJavaScriptProject project) {
-			return true;
-		}
-		public void reconcile(ReconcileContext context) {
-			this.delta = context.getDelta();
-			try {
-				this.ast = context.getAST3();
-			} catch (JavaScriptModelException e) {
-				assertNull("Unexpected exception", e);
-			}
-		}
-	}
-/**
- */
-public ReconcilerTests(String name) {
-	super(name);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-//	JavaModelManager.VERBOSE = true;
-//	org.eclipse.jsdt.internal.core.search.BasicSearchEngine.VERBOSE = true;
-//	TESTS_PREFIX = "testIgnoreIfBetterNonAccessibleRule";
-//	TESTS_NAMES = new String[] { "testRawUsage" };
-//	TESTS_NUMBERS = new int[] { 118823 };
-//	TESTS_RANGE = new int[] { 16, -1 };
-}
-public static Test suite() {
-	return buildModelTestSuite(ReconcilerTests.class);
-}
-protected void assertProblems(String message, String expected) {
-	assertProblems(message, expected, this.problemRequestor);
-}
-// Expect no error as soon as indexing is finished
-protected void assertNoProblem(char[] source, IJavaScriptUnit unit) throws InterruptedException, JavaScriptModelException {
-	IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
-	if (this.problemRequestor.problemCount > 0) {
-		// If errors then wait for indexes to finish
-		while (indexManager.awaitingJobsCount() > 0) {
-			Thread.sleep(100);
-		}
-		// Reconcile again to see if error goes away
-		this.problemRequestor.initialize(source);
-		unit.getBuffer().setContents(source); // need to set contents again to be sure that following reconcile will be really done
-		unit.reconcile(AST.JLS3,
-			true, // force problem detection to see errors if any
-			null,	// do not use working copy owner to not use working copies in name lookup
-			null);
-		if (this.problemRequestor.problemCount > 0) {
-			assertEquals("Working copy should NOT have any problem!", "", this.problemRequestor.problems.toString());
-		}
-	}
-}
-protected void addClasspathEntries(IIncludePathEntry[] entries, boolean enableForbiddenReferences) throws JavaScriptModelException {
-	IJavaScriptProject project = getJavaProject("Reconciler");
-	IIncludePathEntry[] oldClasspath = project.getRawIncludepath();
-	int oldLength = oldClasspath.length;
-	int length = entries.length;
-	IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldLength+length];
-	System.arraycopy(oldClasspath, 0, newClasspath, 0, oldLength);
-	System.arraycopy(entries, 0, newClasspath, oldLength, length);
-	project.setRawIncludepath(newClasspath, null);
-	
-	if (enableForbiddenReferences) {
-		project.setOption(JavaScriptCore.COMPILER_PB_FORBIDDEN_REFERENCE, JavaScriptCore.ERROR);
-	}
-}
-protected void removeClasspathEntries(IIncludePathEntry[] entries) throws JavaScriptModelException {
-	IJavaScriptProject project = getJavaProject("Reconciler");
-	IIncludePathEntry[] oldClasspath = project.getRawIncludepath();
-	int oldLength = oldClasspath.length;
-	int length = entries.length;
-	IIncludePathEntry[] newClasspath = new IIncludePathEntry[oldLength-length];
-	System.arraycopy(oldClasspath, 0, newClasspath, 0, oldLength-length);
-	project.setRawIncludepath(newClasspath, null);
-}
-/**
- * Setup for the next test.
- */
-public void setUp() throws Exception {
-	super.setUp();
-	this.problemRequestor =  new ProblemRequestor();
-	this.workingCopy = getCompilationUnit("Reconciler/src/p1/X.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-	this.problemRequestor.initialize(this.workingCopy.getSource().toCharArray());
-	startDeltas();
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-
-	// Create project with 1.4 compliance
-	IJavaScriptProject project14 = createJavaProject("Reconciler", new String[] {"src"}, new String[] {"JCL_LIB"});
-	createFolder("/Reconciler/src/p1");
-	createFolder("/Reconciler/src/p2");
-	createFile(
-		"/Reconciler/src/p1/X.js", 
-		"  function foo() {\n" +
-		"  }\n" +
-		""
-	);
-	project14.setOption(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_4);
-	project14.setOption(JavaScriptCore.COMPILER_PB_UNUSED_LOCAL, JavaScriptCore.IGNORE);
-	project14.setOption(JavaScriptCore.COMPILER_PB_INVALID_JAVADOC, JavaScriptCore.WARNING);
-
-	// Create project with 1.5 compliance
-	IJavaScriptProject project15 = createJavaProject("Reconciler15", new String[] {"src"}, new String[] {"JCL15_LIB"}, "bin", "1.5");
-//	addLibrary(
-//		project15, 
-//		"lib15.jar", 
-//		"lib15src.zip", 
-//		new String[] {
-//			"java/util/List.js",
-//			"package java.util;\n" +
-//			"public class List<T> {\n" +
-//			"}",
-//			"java/util/Stack.js",
-//			"package java.util;\n" +
-//			"public class Stack<T> {\n" +
-//			"}",
-//			"java/util/Map.js",
-//			"package java.util;\n" +
-//			"public interface Map<K,V> {\n" +
-//			"}",
-//			"java/lang/annotation/Annotation.js",
-//			"package java.lang.annotation;\n" +
-//			"public interface Annotation {\n" +
-//			"}",
-//			"java/lang/Deprecated.js",
-//			"package java.lang;\n" +
-//			"public @interface Deprecated {\n" +
-//			"}",
-//			"java/lang/SuppressWarnings.js",
-//			"package java.lang;\n" +
-//			"public @interface SuppressWarnings {\n" +
-//			"   String[] value();\n" +
-//			"}"
-//		}, 
-//		JavaScriptCore.VERSION_1_5
-//	);
-//	project15.setOption(JavaScriptCore.COMPILER_PB_UNUSED_LOCAL, JavaScriptCore.IGNORE);
-//	project15.setOption(JavaScriptCore.COMPILER_PB_RAW_TYPE_REFERENCE, JavaScriptCore.IGNORE);
-}
-private void setUp15WorkingCopy() throws JavaScriptModelException {
-	setUp15WorkingCopy("Reconciler15/src/p1/X.js", new WorkingCopyOwner() {});
-}
-private void setUp15WorkingCopy(String path, WorkingCopyOwner owner) throws JavaScriptModelException {
-	String contents = this.workingCopy.getSource();
-	setUpWorkingCopy(path, contents, owner);
-}
-private void setUpWorkingCopy(String path, String contents) throws JavaScriptModelException {
-	setUpWorkingCopy(path, contents, new WorkingCopyOwner() {});
-}
-private void setUpWorkingCopy(String path, String contents, WorkingCopyOwner owner) throws JavaScriptModelException {
-	this.workingCopy.discardWorkingCopy();
-	this.workingCopy = getCompilationUnit(path).getWorkingCopy(owner, null);
-	setWorkingCopyContents(contents);
-	this.workingCopy.makeConsistent(null);
-}
-void setWorkingCopyContents(String contents) throws JavaScriptModelException {
-	this.workingCopy.getBuffer().setContents(contents);
-	this.problemRequestor.initialize(contents.toCharArray());
-}
-/**
- * Cleanup after the previous test.
- */
-public void tearDown() throws Exception {
-	TestvalidationParticipant.PARTICIPANT = null;
-	if (this.workingCopy != null) {
-		this.workingCopy.discardWorkingCopy();
-	}
-	stopDeltas();
-	super.tearDown();
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("Reconciler");
-	deleteProject("Reconciler15");
-	super.tearDownSuite();
-}
-/*
- * Ensures that no problem is created for a reference to a type that is included in a prereq project.
- */
-
-
-public void test00() throws Exception {
-
-}
- 
-
-public void test00a() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"function foo(){\n" +
-		" alert();\n"+ 
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"----------\n"
-	);
-	}
-
-public void testAccessRestriction() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {"src"}, new String[] {"JCL_LIB"}, null, null, new String[0], null, null, new boolean[0], new String[][] {{"**/X.js"}}, null, "1.4");
-		createFile("/P1/src/X.js", "function foo() {}");
-		
-		createJavaProject("P2", new String[] {"src"}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		setUpWorkingCopy("/P2/src/Y.js", "foo();");
-		assertProblems(
-			"Unexpected problems", 
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-///*
-// * Ensures that no problem is created for a reference to a binary type that is included in a prereq project.
-// * (regression test for bug 82542 Internal error during AST creation)
-// */
-//public void testAccessRestriction2() throws CoreException, IOException {
-//	try {
-//		IJavaScriptProject project = createJavaProject("P1");
-//		addLibrary(
-//			project,
-//			"lib.jar",
-//			"libsrc.zip",
-//			new String[] {
-//				"p/X.js",
-//				"package p;\n" +
-//				"public class X {\n" +
-//				"}",
-//			},
-//			new String[] {
-//				"**/*"
-//			},
-//			null,
-//			"1.4"
-//		);
-//		createJavaProject("P2", new String[] {"src"}, new String[] {"JCL_LIB"}, new String[] {"/P1"}, "bin");
-//		setUpWorkingCopy("/P2/src/Y.js", "public class Y extends p.X {}");
-//		assertProblems(
-//			"Unexpected problems", 
-//			"----------\n" + 
-//			"----------\n"
-//		);
-//	} finally {
-//		deleteProject("P1");
-//		deleteProject("P2");
-//	}
-//}
-///*
-// * Ensures that no problem is created for a reference to a type that is included and not exported in a prereq project
-// * but with combineAccessRestriction flag set to false.
-// */
-//public void testAccessRestriction3() throws CoreException {
-//	try {
-//		createJavaProject("P1");
-//		createFolder("/P1/p");
-//		createFile("/P1/p/X.js", "package p; public class X {}");
-//		
-//		createJavaProject("P2", new String[] {}, new String[] {}, null, null, new String[] {"/P1"}, null, null, new boolean[] {true}, "", null, null, null, "1.4");
-//		
-//		createJavaProject("P3", new String[] {"src"}, new String[] {"JCL_LIB"}, null, null, new String[] {"/P2"}, null, new String[][] {new String[] {"**/X"}}, false/*don't combine access restrictions*/, new boolean[] {true}, "bin", null, null, null, "1.4");
-//		setUpWorkingCopy("/P3/src/Y.js", "public class Y extends p.X {}");
-//		assertProblems(
-//			"Unexpected problems", 
-//			"----------\n" + 
-//			"----------\n"
-//		);
-//	} finally {
-//		deleteProjects(new String[] {"P1", "P2", "P3" });
-//	}
-//}
-///*
-// * Ensures that a problem is created for a reference to a type that is included and not exported in a prereq project
-// * but with combineAccessRestriction flag set to true.
-// */
-//public void testAccessRestriction4() throws CoreException {
-//	try {
-//		createJavaProject("P1");
-//		createFolder("/P1/p");
-//		createFile("/P1/p/X.js", "package p; public class X {}");
-//		
-//		createJavaProject("P2", new String[] {}, new String[] {}, null, null, new String[] {"/P1"}, null, null, new boolean[] {true}, "", null, null, null, "1.4");
-//		
-//		createJavaProject("P3", new String[] {"src"}, new String[] {"JCL_LIB"}, null, null, new String[] {"/P2"}, null, new String[][] {new String[] {"**/X"}}, true/*combine access restrictions*/, new boolean[] {true}, "bin", null, null, null, "1.4");
-//		setUpWorkingCopy("/P3/src/Y.js", "public class Y extends p.X {}");
-//		assertProblems(
-//			"Unexpected problems", 
-//			"----------\n" + 
-//			"1. ERROR in /P3/src/Y.js (at line 1)\n" + 
-//			"	public class Y extends p.X {}\n" + 
-//			"	                       ^^^\n" + 
-//			"Access restriction: The type X is not accessible due to restriction on required project P1\n" + 
-//			"----------\n"
-//		);
-//	} finally {
-//		deleteProjects(new String[] {"P1", "P2", "P3" });
-//	}
-//}
-///*
-// * Ensures that a problem is created for a reference to a type that is no longer accessible in a prereq project.
-// * (regression test for bug 91498 Reconcile still sees old access rules)
-// */
-//public void testAccessRestriction5() throws CoreException {
-//	try {
-//		createJavaProject("P1");
-//		createFolder("/P1/p");
-//		createFile("/P1/p/X.js", "package p; public class X {}");	
-//		IJavaScriptProject p2 = createJavaProject("P2", new String[] {"src"}, new String[] {"JCL_LIB"}, "bin");
-//		IIncludePathEntry[] classpath = p2.getRawClasspath();
-//		int length = classpath.length;
-//		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-//		classpath[length] = createSourceEntry("P2", "/P1", "+**/p/|-**/*");
-//		p2.setRawClasspath(classpath, null);
-//		setUpWorkingCopy("/P2/src/Y.js", "public class Y extends p.X {}");
-//		assertProblems(
-//			"Unexpected problems", 
-//			"----------\n" + 
-//			"----------\n"
-//		);
-//		
-//		// remove accessible rule
-//		System.arraycopy(classpath, 0, classpath = new IIncludePathEntry[length+1], 0, length);
-//		classpath[length] = createSourceEntry("P2", "/P1", "-**/*");
-//		p2.setRawClasspath(classpath, null);
-//		this.problemRequestor.initialize(this.workingCopy.getSource().toCharArray());
-//		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, true/*force problem detection*/, null, null);
-//		assertProblems(
-//			"Unexpected problems", 
-//			"----------\n" + 
-//			"1. ERROR in /P2/src/Y.js (at line 1)\n" + 
-//			"	public class Y extends p.X {}\n" + 
-//			"	                       ^^^\n" + 
-//			"Access restriction: The type X is not accessible due to restriction on required project P1\n" + 
-//			"----------\n"
-//		);
-//
-//	} finally {
-//		deleteProjects(new String[] {"P1", "P2"});
-//	}
-//}
-/**
- * Ensures that the reconciler handles duplicate members correctly.
- */
-public void testAddDuplicateMember() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  function foo() {\n" +
-		"  }\n" +
-		"  function foo() {\n" +
-		"  }\n" +
-		" ");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"foo()#2[+]: {}"
-	);
-}
-/**
- * Ensures that the reconciler reconciles the new contents with the current
- * contents, updating the structure of this reconciler's compilation
- * unit, and fires the Java element delta for the structural changes
- * of the addition of a field and a method.
- */
-public void testAddFieldAndConstructor() throws JavaScriptModelException {
-	setWorkingCopyContents(
-			"  var i;\n" +
-			"  function X(p) {\n" +
-			"  }\n" +
-			"  function foo() {\n" +
-			"  }\n" +
-			" ");
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertDeltas(
-			"Unexpected delta", 
-			"X(p0)[+]: {}\n"+
-			"i[+]: {}"  
-		);
-}
-///**
-// * Ensures that the reconciler reconciles the new contents with the current
-// * contents, updating the structure of this reconciler's compilation
-// * unit, and fires the Java element delta for the structural changes
-// * of the addition of a field and a constructor.
-// */
-//public void testAddImports() throws JavaScriptModelException {
-//	setWorkingCopyContents(
-//		"package p1;\n" +
-//		"import p2.*;\n" +
-//		"import java.lang.reflect.*;\n" +
-//		"import java.util.Vector;\n" +
-//		"public class X {\n" +
-//		"  public void foo() {\n" +
-//		"  }\n" +
-//		"}");
-//	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-//	assertDeltas(
-//		"Unexpected delta", 
-//		"<import container>[*]: {CHILDREN | FINE GRAINED}\n" +
-//		"	import java.lang.reflect.*[+]: {}\n" +
-//		"	import java.util.Vector[+]: {}"
-//	);
-//}
-/**
- * Ensures that the reconciler reconciles the new contents with the current
- * contents, updating the structure of this reconciler's compilation
- * unit, and fires the Java element delta for the structural changes
- * of the addition of a method.
- */
-public void testAddMethod1() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  function foo() {\n" +
-		"  }\n" +
-		"  function bar() {\n" +
-		"  }\n" +
-		" ");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"bar()[+]: {}"
-	);
-}
-/**
- * Ensures that the reconciler reconciles the new contents with the current
- * contents,updating the structure of this reconciler's compilation
- * unit, and fires the Java element delta for the structural changes
- * of the addition of a portion of a new method.
- */
-public void testAddPartialMethod1() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  function some()\n" +
-		"  function foo() {\n" +
-		"  }\n" +
-		" ");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"some()[+]: {}"
-	);
-}
-/**
- * Ensures that the reconciler reconciles the new contents with the current
- * contents,updating the structure of this reconciler's compilation
- * unit, and fires the Java element delta for the structural changes
- * of the addition of a portion of a new method.  Ensures that when a
- * second part is added to the new method no structural changes are recognized.
- */
-public void testAddPartialMethod1and2() throws JavaScriptModelException {
-	// Add partial method before foo
-	setWorkingCopyContents(
-		"  function some()\n" +
-		"  function foo() {\n" +
-		"  }\n" +
-		 "");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	
-	// Add { on partial method
-	clearDeltas();
-	setWorkingCopyContents(
-		"  function some() {\n" +
-		"  function foo() {\n" +
-		"  }\n" +
-		"");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"[Working copy] X.js[*]: {CONTENT | FINE GRAINED}"
-	);
-}
-/*
- * Ensures that the AST broadcasted during a reconcile operation is correct.
- * (case of a working copy being reconciled with changes, creating AST and no problem detection)
- */
-public void testBroadcastAST1() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"var i;\n" +
-		"");
-	this.workingCopy.reconcile(AST.JLS3, false/*don't force problem detection*/, null/*primary owner*/, null/*no progress*/);
-	assertASTNodeEquals(
-		"Unexpected ast", 
-		"var i;\n" + 
-		"",
-		this.deltaListener.getCompilationUnitAST(this.workingCopy));
-}
-/*
- * Ensures that the AST broadcasted during a reconcile operation is correct.
- * (case of a working copy being reconciled with NO changes, creating AST and forcing problem detection)
- */
-public void testBroadcastAST2() throws JavaScriptModelException {
-	this.workingCopy.reconcile(AST.JLS3, true/*force problem detection*/, null/*primary owner*/, null/*no progress*/);
-	assertASTNodeEquals(
-		"Unexpected ast", 
-		"function foo(){\n" + 
-		"}\n" + 
-		"",
-		this.deltaListener.getCompilationUnitAST(this.workingCopy));
-}
-/*
- * Ensures that the AST broadcasted during a reconcile operation is correct.
- * (case of a working copy being reconciled with NO changes, creating AST and no problem detection)
- */
-public void testBroadcastAST3() throws JavaScriptModelException {
-	this.workingCopy.reconcile(AST.JLS3, false/*don't force problem detection*/, null/*primary owner*/, null/*no progress*/);
-	assertASTNodeEquals(
-		"Unexpected ast", 
-		"function foo(){\n" + 
-		"}" + 
-		"\n",
-		this.deltaListener.getCompilationUnitAST(this.workingCopy));
-}
-/*
- * Ensures that the AST broadcasted during a reconcile operation is correct.
- * (case of a working copy being reconciled twice in a batch operation)
- */
-public void testBroadcastAST4() throws CoreException {
-	JavaScriptCore.run(
-		new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				ReconcilerTests.this.workingCopy.reconcile(AST.JLS3, true/*force problem detection*/, null/*primary owner*/, monitor);
-				setWorkingCopyContents(
-					"var i;");
-				ReconcilerTests.this.workingCopy.reconcile(AST.JLS3, false/*don't force problem detection*/, null/*primary owner*/, monitor);				
-			}
-		},
-		null/*no progress*/);
-	assertASTNodeEquals(
-		"Unexpected ast", 
-		"var i;\n",
-		this.deltaListener.getCompilationUnitAST(this.workingCopy));
-}
-/*
- * Ensures that reconciling a subclass doesn't close the buffer while resolving its superclass.
- * (regression test for bug 62854 refactoring does not trigger reconcile)
- */
-public void testBufferOpenAfterReconcile() throws CoreException {
- 	try {
-		createFile(
-			"/Reconciler/src/p1/Super.js",
-			"package p1;\n" +
-			"public class Super {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"  function foo() {\n" +
-			"  }\n" +
-			"");
-		IBuffer buffer = this.workingCopy.getBuffer();
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-		assertTrue("Buffer should still be open", !buffer.isClosed());
-	} finally {
-		deleteFile("/Reconciler/src/p1/Super.js");
-	}
-}
-/**
- * Ensure an OperationCanceledException is correcly thrown when progress monitor is canceled
- * @deprecated using deprecated code
- */
-public void testCancel() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  function foo( s) {\n" +
-		"  }\n" +
-		""
-	);
-	this.workingCopy.makeConsistent(null);
-	
-	// count the number of time isCanceled() is called when converting this source unit
-	CancelCounter counter = new CancelCounter();
-	this.workingCopy.reconcile(AST.JLS2, true, null, counter);
-	
-	// throw an OperatonCanceledException at each point isCanceled() is called
-	for (int i = 0; i < counter.count; i++) {
-		boolean gotException = false;
-		try {
-			this.workingCopy.reconcile(AST.JLS2, true, null, new Canceler(i));
-		} catch (OperationCanceledException e) {
-			gotException = true;
-		}
-		assertTrue("Should get an OperationCanceledException (" + i + ")", gotException);
-	}
-	
-	// last should not throw an OperationCanceledException
-	this.workingCopy.reconcile(AST.JLS2, true, null, new Canceler(counter.count));
-}
-/**
- * Ensures that the delta is correct when adding a category
- */
-public void testCategories1() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  /**\n" +
-		"   * @category cat1\n" +
-		"   */\n" +
-		"  function foo() {\n" +
-		"  }\n" +
-		""
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"foo()[*]: {CATEGORIES}"
-	);
-}
-/**
- * Ensures that the delta is correct when removing a category
- */
-public void testCategories2() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  /**\n" +
-		"   * @category cat1\n" +
-		"   */\n" +
-		"  function foo() {\n" +
-		"  }\n" +
-		""
-	);
-	this.workingCopy.makeConsistent(null);
-	
-	setWorkingCopyContents(
-		"  function foo() {\n" +
-		"  }\n" +
-		""
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"	foo()[*]: {CATEGORIES}"
-	);
-}
-/**
- * Ensures that the delta is correct when changing a category
- */
-public void testCategories3() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  /**\n" +
-		"   * @category cat1\n" +
-		"   */\n" +
-		"  function foo() {\n" +
-		"  }\n" +
-		" "
-	);
-	this.workingCopy.makeConsistent(null);
-	
-	setWorkingCopyContents(
-		"  /**\n" +
-		"   * @category cat2\n" +
-		"   */\n" +
-		"  function foo() {\n" +
-		"  }\n" +
-		""
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"	foo()[*]: {CATEGORIES}"
-	);
-}
-/*
- * Ensures that the delta is correct when adding a category to a second field
- * (regression test for bug 125675 @category not reflected in outliner in live fashion)
- */
-public void testCategories4() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  /**\n" +
-		"   * @category cat1\n" +
-		"   */\n" +
-		"  int f1;\n" +
-		"  int f2;\n" +
-		""
-	);
-	this.workingCopy.makeConsistent(null);
-	
-	setWorkingCopyContents(
-		"  /**\n" +
-		"   * @category cat1\n" +
-		"   */\n" +
-		"  int f1;\n" +
-		"  /**\n" +
-		"   * @category cat2\n" +
-		"   */\n" +
-		"  int f2;\n" +
-		""
-	);	
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"	f2[*]: {CATEGORIES}"
-	);
-}
-///*
-// * Ensures that changing and external jar and refreshing takes the change into account
-// * (regression test for bug 134110 [regression] Does not pick-up interface changes from classes in the build path)
-// */
-//public void testChangeExternalJar() throws CoreException, IOException {
-//	IJavaScriptProject project = getJavaProject("Reconciler");
-//	String jarPath = getExternalPath() + "lib.jar";
-//	try {
-//		org.eclipse.jsdt.core.tests.util.Util.createJar(new String[] {
-//			"p/Y.js",
-//			"package p;\n" +
-//			"public class Y {\n" +
-//			"  function foo() {\n" +
-//			"  }\n" +
-//			"}"
-//		}, jarPath, "1.4");
-//		addLibraryEntry(project, jarPath, false);
-//		
-//		// force Y.class file to be cached during resolution
-//		setWorkingCopyContents(
-//			"package p1;\n" +
-//			"public class X extends p.Y {\n" +
-//			"  function bar() {\n" +
-//			"    foo();\n" +
-//			"  }\n" +
-//			"}");
-//		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-//		
-//		// change jar and refresh
-//		org.eclipse.jsdt.core.tests.util.Util.createJar(new String[] {
-//			"p/Y.js",
-//			"package p;\n" +
-//			"public class Y {\n" +
-//			"  function foo(String s) {\n" +
-//			"  }\n" +
-//			"}"
-//		}, jarPath, "1.4");
-//		getJavaModel().refreshExternalArchives(null,null);
-//		
-//		setWorkingCopyContents(
-//			"package p1;\n" +
-//			"public class X extends p.Y {\n" +
-//			"  function bar() {\n" +
-//			"    foo(\"a\");\n" +
-//			"  }\n" +
-//			"}");
-//		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-//		assertProblems(
-//			"Unexpected problems", 
-//			"----------\n" + 
-//			"----------\n"
-//		);
-//	} finally {
-//		removeLibraryEntry(project, new Path(jarPath));
-//		deleteFile(new File(jarPath));
-//	}
-//}
-///**
-// * Ensures that the reconciler reconciles the new contents with the current
-// * contents,updating the structure of this reconciler's compilation
-// * unit, and fires the Java element deltas for the structural changes
-// * of a method's type parameter change.
-// */
-//public void testChangeMethodTypeParameters() throws JavaScriptModelException {
-//	setUp15WorkingCopy();
-//	clearDeltas();
-//	setWorkingCopyContents(
-//		"  public <T> void foo() {\n" +
-//		"  }\n" +
-//		"");
-//	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-//	assertDeltas(
-//		"Unexpected delta", 
-//		"X[*]: {CHILDREN | FINE GRAINED}\n" +
-//		"	foo()[*]: {CONTENT}"
-//	);
-//}
-///**
-// * Ensures that the reconciler reconciles the new contents with the current
-// * contents,updating the structure of this reconciler's compilation
-// * unit, and fires the Java element deltas for the structural changes
-// * of a type's type parameter change.
-// */
-//public void testChangeTypeTypeParameters() throws JavaScriptModelException {
-//	setUp15WorkingCopy();
-//	clearDeltas();
-//	setWorkingCopyContents(
-//		"package p1;\n" +
-//		"import p2.*;\n" +
-//		"public class X <T> {\n" +
-//		"  function foo() {\n" +
-//		"  }\n" +
-//		"}");
-//	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-//	assertDeltas(
-//		"Unexpected delta", 
-//		"X[*]: {CONTENT}"
-//	);
-//}
-///**
-// * Ensures that the reconciler reconciles the new contents with the current
-// * contents,updating the structure of this reconciler's compilation
-// * unit, and fires the Java element deltas for the structural changes
-// * of a method visibility change.
-// */
-//public void testChangeMethodVisibility() throws JavaScriptModelException {
-//	setWorkingCopyContents(
-//		"package p1;\n" +
-//		"import p2.*;\n" +
-//		"public class X {\n" +
-//		"  private void foo() {\n" +
-//		"  }\n" +
-//		"}");
-//	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-//	assertDeltas(
-//		"Unexpected delta", 
-//		"X[*]: {CHILDREN | FINE GRAINED}\n" +
-//		"	foo()[*]: {MODIFIERS CHANGED}"
-//	);
-//}
-/**
- * Ensures that the correct delta is reported when closing the working copy and modifying its buffer.
- */
-public void testCloseWorkingCopy() throws JavaScriptModelException {
-	IBuffer buffer = this.workingCopy.getBuffer();
-	this.workingCopy.close();
-	buffer.setContents(
-		"  function foo() {\n" +
-		"  }\n" +
-		"  function bar() {\n" +
-		"  }\n" +
-		"");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"bar()[+]: {}"
-	);
-}
-
-///**
-// * Ensures that a reference to a constant with type mismatch doesn't show an error.
-// * (regression test for bug 17104 Compiler does not complain but "Quick Fix" ??? complains)
-// */
-//public void testConstantReference() throws CoreException {
-//	try {
-//		createFile(
-//			"/Reconciler/src/p1/OS.js",
-//			"package p1;\n" +
-//			"public class OS {\n" +
-//			"	public static final int CONST = 23 * 1024;\n" +
-//			"}");
-//		setWorkingCopyContents(
-//			"package p1;\n" +
-//			"public class X {\n" +
-//			"	public short c;\n" +
-//			"	public static void main(String[] arguments) {\n" +
-//			"		short c = 1;\n" +
-//			"		switch (c) {\n" +
-//			"			case OS.CONST: return;\n" +
-//			"		}\n" +
-//			"	}\n" +
-//			"}");
-//		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-//		assertProblems(
-//			"Unexpected problems",
-//			"----------\n" + 
-//			"----------\n"
-//		);
-//	} finally {
-//		deleteFile("/Reconciler/src/p1/OS.js");
-//	}
-//}
-/*
-// * Ensures that the source type converter doesn't throw an OutOfMemoryError if converting a generic type with a primitive type array as argument
-// * (regression test for bug 135296 opening a special java file results in an "out of memory" message)
-// */
-//public void testConvertPrimitiveTypeArrayTypeArgument() throws CoreException {
-//	IJavaScriptUnit otherCopy = null;
-//	try {
-//		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-//		otherCopy = getWorkingCopy(
-//			"Reconciler15/src/Y.js", 
-//			"public class Y {\n" +
-//			"  void foo(Z<int[]> z) {}\n" +
-//			"}\n" +
-//			"class Z<E> {\n" +
-//			"}",
-//			owner,
-//			false/*don't compute problems*/);
-//		setUp15WorkingCopy("/Reconciler15/src/X.js", owner);
-//		setWorkingCopyContents(
-//			"public class X {\n" +
-//			"  void bar(Y y) {\n" +
-//			"    y.foo(new Z<int[]>());\n" +
-//			"  }\n" +
-//			"}"
-//		);
-//		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-//		assertProblems(
-//			"Unexpected problems",
-//			"----------\n" + 
-//			"----------\n"
-//		);
-//	} finally {
-//		if (otherCopy != null)
-//			otherCopy.discardWorkingCopy();
-//	}
-//}
-/**
- * Ensures that the reconciler reconciles the new contents with the current
- * contents, updating the structure of this reconciler's compilation
- * unit, and fires the Java element deltas for the structural changes
- * of a method being deleted.
- */
-public void testDeleteMethod1() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"  ");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"foo()[-]: {}"
-	);
-}
-/**
- * Ensures that the reconciler reconciles the new contents with the current
- * contents, updating the structure of this reconciler's compilation
- * unit, and fires the Java element deltas for the structural changes
- * of two methods being deleted.
- */
-public void testDeleteTwoMethods() throws JavaScriptModelException {
-	// create 2 methods
-	setWorkingCopyContents(
-		"  function foo() {\n" +
-		"  }\n" +
-		"  function bar() {\n" +
-		"  }\n" +
-		"");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	
-	// delete the 2 methods
-	clearDeltas();
-	setWorkingCopyContents(
-		"  ");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"bar()[-]: {}\n" +
-		"foo()[-]: {}"
-	);
-}
-/*
- * Ensures that excluded part of prereq project are not visible
- */
-public void testExcludePartOfAnotherProject1() throws CoreException {
-	IIncludePathEntry[] newEntries = createClasspath("Reconciler", new String[] {"/P", "-**/internal/"});
-	try {
-		addClasspathEntries(newEntries, true);
-		createJavaProject("P");
-		createFolder("/P/p/internal");
-		createFile(
-			"/P/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X extends p.internal.Y {\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. ERROR in /Reconciler/src/p1/X.java (at line 2)\n" + 
-			"	public class X extends p.internal.Y {\n" + 
-			"	                       ^^^^^^^^^^^^\n" + 
-			"Access restriction: The type Y is not accessible due to restriction on required project P\n" + 
-			"----------\n"
-		);
-	} finally {
-		removeClasspathEntries(newEntries);
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that packages that are not in excluded part of prereq project are visible
- */
-public void testExcludePartOfAnotherProject2() throws CoreException {
-	IIncludePathEntry[] newEntries = createClasspath("Reconciler", new String[] {"/P", "-**/internal/"});
-	try {
-		addClasspathEntries(newEntries, true);
-		createJavaProject("P");
-		createFolder("/P/p/api");
-		createFile(
-			"/P/p/api/Y.js",
-			"package p.api;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X extends p.api.Y {\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		removeClasspathEntries(newEntries);
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that included part of prereq project are visible
- */
-public void testIncludePartOfAnotherProject1() throws CoreException {
-	IIncludePathEntry[] newEntries = createClasspath("Reconciler", new String[] {"/P", "+**/api/"});
-	try {
-		addClasspathEntries(newEntries, true);
-		createJavaProject("P");
-		createFolder("/P/p/api");
-		createFile(
-			"/P/p/api/Y.js",
-			"package p.api;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X extends p.api.Y {\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		removeClasspathEntries(newEntries);
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that packages that are not in included part of prereq project are not visible
- */
-public void testIncludePartOfAnotherProject2() throws CoreException {
-	IIncludePathEntry[] newEntries = createClasspath("Reconciler", new String[] {"/P", "+**/api/|-**"});
-	try {
-		addClasspathEntries(newEntries, true);
-		createJavaProject("P");
-		createFolder("/P/p/internal");
-		createFile(
-			"/P/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X extends p.internal.Y {\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. ERROR in /Reconciler/src/p1/X.java (at line 2)\n" + 
-			"	public class X extends p.internal.Y {\n" + 
-			"	                       ^^^^^^^^^^^^\n" + 
-			"Access restriction: The type Y is not accessible due to restriction on required project P\n" + 
-			"----------\n"
-		);
-	} finally {
-		removeClasspathEntries(newEntries);
-		deleteProject("P");
-	}
-}
-/**
- * Start with no imports, add an import, and then append to the import name.
- */
-public void testGrowImports() throws JavaScriptModelException {
-	// no imports
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"public class X {\n" +
-		"}");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	
-	// add an import
-	clearDeltas();
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p\n" +
-		"public class X {\n" +
-		"}");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"<import container>[+]: {}"
-	);
-		
-	// append to import name
-	clearDeltas();
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2\n" +
-		"public class X {\n" +
-		"}");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"<import container>[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"	import p[-]: {}\n" + 
-		"	import p2[+]: {}"
-	);
-}
-/*
- * Ensures that a type matching a ignore-if-better non-accessible rule is further found when accessible
- * on another classpath entry.
- * (regression test for bug 98127 Access restrictions started showing up after switching to bundle)
- */
-public void testIgnoreIfBetterNonAccessibleRule1() throws CoreException {
-	IIncludePathEntry[] newEntries = createClasspath("Reconciler", new String[] {"/P1", "?**/internal/", "/P2", "+**/internal/Y"});
-	try {
-		addClasspathEntries(newEntries, true);
-		createJavaProject("P1");
-		createFolder("/P1/p/internal");
-		createFile(
-			"/P1/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		createJavaProject("P2");
-		createFolder("/P2/p/internal");
-		createFile(
-			"/P2/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X extends p.internal.Y {\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		removeClasspathEntries(newEntries);
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/*
- * Ensures that a type matching a ignore-if-better non-accessible rule is further found when accessible
- * on another classpath entry.
- * (regression test for bug 98127 Access restrictions started showing up after switching to bundle)
- */
-public void testIgnoreIfBetterNonAccessibleRule2() throws CoreException {
-	IIncludePathEntry[] newEntries = createClasspath("Reconciler", new String[] {"/P1", "?**/internal/", "/P2", "~**/internal/Y"});
-	try {
-		addClasspathEntries(newEntries, true);
-		createJavaProject("P1");
-		createFolder("/P1/p/internal");
-		createFile(
-			"/P1/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		createJavaProject("P2");
-		createFolder("/P2/p/internal");
-		createFile(
-			"/P2/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X extends p.internal.Y {\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. WARNING in /Reconciler/src/p1/X.java (at line 2)\n" + 
-			"	public class X extends p.internal.Y {\n" + 
-			"	                       ^^^^^^^^^^^^\n" + 
-			"Discouraged access: The type Y is not accessible due to restriction on required project P2\n" + 
-			"----------\n"
-		);
-	} finally {
-		removeClasspathEntries(newEntries);
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/*
- * Ensures that a type matching a ignore-if-better non-accessible rule is further found non-accessible
- * on another classpath entry.
- * (regression test for bug 98127 Access restrictions started showing up after switching to bundle)
- */
-public void testIgnoreIfBetterNonAccessibleRule3() throws CoreException {
-	IIncludePathEntry[] newEntries = createClasspath("Reconciler", new String[] {"/P1", "?**/internal/", "/P2", "-**/internal/Y"});
-	try {
-		addClasspathEntries(newEntries, true);
-		createJavaProject("P1");
-		createFolder("/P1/p/internal");
-		createFile(
-			"/P1/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		createJavaProject("P2");
-		createFolder("/P2/p/internal");
-		createFile(
-			"/P2/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X extends p.internal.Y {\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. ERROR in /Reconciler/src/p1/X.java (at line 2)\n" + 
-			"	public class X extends p.internal.Y {\n" + 
-			"	                       ^^^^^^^^^^^^\n" + 
-			"Access restriction: The type Y is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		removeClasspathEntries(newEntries);
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/*
- * Ensures that a type matching a ignore-if-better non-accessible rule is found non-accessible
- * if no other classpath entry matches it.
- * (regression test for bug 98127 Access restrictions started showing up after switching to bundle)
- */
-public void testIgnoreIfBetterNonAccessibleRule4() throws CoreException {
-	IIncludePathEntry[] newEntries = createClasspath("Reconciler", new String[] {"/P1", "?**/internal/"});
-	try {
-		addClasspathEntries(newEntries, true);
-		createJavaProject("P1");
-		createFolder("/P1/p/internal");
-		createFile(
-			"/P1/p/internal/Y.js",
-			"package p.internal;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X extends p.internal.Y {\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. ERROR in /Reconciler/src/p1/X.java (at line 2)\n" + 
-			"	public class X extends p.internal.Y {\n" + 
-			"	                       ^^^^^^^^^^^^\n" + 
-			"Access restriction: The type Y is not accessible due to restriction on required project P1\n" + 
-			"----------\n"
-		);
-	} finally {
-		removeClasspathEntries(newEntries);
-		deleteProjects(new String[] {"P1"});
-	}
-}
-/**
- * Introduces a syntax error in the modifiers of a method.
- */
-public void testMethodWithError01() throws CoreException {
-	// Introduce syntax error
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public.void foo() {\n" +
-		"  }\n" +
-		"}");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta after syntax error", 
-		"X[*]: {CHILDREN | FINE GRAINED}\n" +
-		"	foo()[*]: {MODIFIERS CHANGED}"
-	);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.java (at line 4)\n" + 
-		"	public.void foo() {\n" + 
-		"	      ^\n" + 
-		"Syntax error on token \".\", delete this token\n" + 
-		"----------\n"
-	);
-
-	// Fix the syntax error
-	clearDeltas();
-	String contents =
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"  }\n" +
-		"}";
-	setWorkingCopyContents(contents);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta after fixing syntax error", 
-		"X[*]: {CHILDREN | FINE GRAINED}\n" +
-		"	foo()[*]: {MODIFIERS CHANGED}"
-	);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. WARNING in /Reconciler/src/p1/X.java (at line 2)\n" + 
-		"	import p2.*;\n" + 
-		"	       ^^\n" + 
-		"The import p2 is never used\n" + 
-		"----------\n"
-	);
-}
-/**
- * Test reconcile force flag
- */
-public void testMethodWithError02() throws CoreException {
-	String contents =
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public.void foo() {\n" +
-		"  }\n" +
-		"}";		
-	setWorkingCopyContents(contents);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-
-	// use force flag to refresh problems			
-	this.problemRequestor.initialize(contents.toCharArray());
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.java (at line 4)\n" + 
-		"	public.void foo() {\n" + 
-		"	      ^\n" + 
-		"Syntax error on token \".\", delete this token\n" + 
-		"----------\n"
-	);
-}
-
-/**
- * Test reconcile force flag off
- */
-public void testMethodWithError03() throws CoreException {
-	String contents =
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public.void foo() {\n" +
-		"  }\n" +
-		"}";
-	setWorkingCopyContents(contents);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-
-	// reconcile with force flag turned off
-	this.problemRequestor.initialize(contents.toCharArray());
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertProblems(
-		"Unexpected problems",
-		""
-	);
-}
-/**
- * Test reconcile force flag + cancel
- */
-public void testMethodWithError04() throws CoreException {
-
-	CancelingProblemRequestor myPbRequestor = new CancelingProblemRequestor();
-	
-	this.workingCopy.discardWorkingCopy();
-	IJavaScriptUnit x = getCompilationUnit("Reconciler", "src", "p1", "X.js");
-	this.problemRequestor = myPbRequestor;
-	this.workingCopy = x.getWorkingCopy(new WorkingCopyOwner() {}, null);
-
-	String contents =
-		"package p1;\n" +
-		"public class X {\n" +
-		"	Zork f;	\n"+
-		"	void foo(Zork z){\n"+
-		"	}\n"+
-		"}	\n";
-	setWorkingCopyContents(contents);
-
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-
-	// use force flag to refresh problems			
-	myPbRequestor.isCanceling = true;
-	myPbRequestor.initialize(contents.toCharArray());
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, true, null, myPbRequestor.progressMonitor);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.java (at line 3)\n" + 
-		"	Zork f;	\n" + 
-		"	^^^^\n" + 
-		"Zork cannot be resolved to a type\n" + 
-		"----------\n"
-	);
-}
-
-/**
- * Test reconcile force flag off
- */
-public void testMethodWithError05() throws CoreException {
-	try {
-		createFolder("/Reconciler/src/tests");
-		String contents =
-			"package tests;	\n"+
-			"abstract class AbstractSearchableSource extends AbstractSource implements SearchableSource {	\n"+
-			"	abstract int indexOfImpl(long value);	\n"+
-			"	public final int indexOf(long value) {	\n"+
-			"		return indexOfImpl(value);	\n"+
-			"	}	\n"+
-			"}	\n";
-		createFile(
-			"/Reconciler/src/tests/AbstractSearchableSource.js", 
-			contents);
-	
-		createFile(
-			"/Reconciler/src/tests/Source.js", 
-			"package tests;	\n"+
-			"interface Source {	\n"+
-			"	long getValue(int index);	\n"+
-			"	int size();	\n"+
-			"}	\n");
-	
-		createFile(
-			"/Reconciler/src/tests/AbstractSource.js", 
-			"package tests;	\n"+
-			"abstract class AbstractSource implements Source {	\n"+
-			"	AbstractSource() {	\n"+
-			"	}	\n"+
-			"	void invalidate() {	\n"+
-			"	}	\n"+
-			"	abstract long getValueImpl(int index);	\n"+
-			"	abstract int sizeImpl();	\n"+
-			"	public final long getValue(int index) {	\n"+
-			"		return 0;	\n"+
-			"	}	\n"+
-			"	public final int size() {	\n"+
-			"		return 0;	\n"+
-			"	}	\n"+
-			"}	\n");
-	
-		createFile(
-			"/Reconciler/src/tests/SearchableSource.js", 
-			"package tests;	\n"+
-			"interface SearchableSource extends Source {	\n"+
-			"	int indexOf(long value);	\n"+
-			"}	\n");
-	
-		IJavaScriptUnit compilationUnit = getCompilationUnit("Reconciler", "src", "tests", "AbstractSearchableSource.js");
-		ProblemRequestor pbReq =  new ProblemRequestor();
-		IJavaScriptUnit wc = compilationUnit.getWorkingCopy(new WorkingCopyOwner() {}, null);
-		pbReq.initialize(contents.toCharArray());
-		startDeltas();
-		wc.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-		String actual = pbReq.problems.toString();
-		String expected = 
-			"----------\n" + 
-			"----------\n";
-		if (!expected.equals(actual)){
-		 	System.out.println(Util.displayString(actual, 2));
-		}
-		assertEquals(
-			"unexpected errors",
-			expected,
-			actual);
-	} finally {
-		deleteFile("/Reconciler/src/tests/AbstractSearchableSource.js");
-		deleteFile("/Reconciler/src/tests/SearchableSource.js");
-		deleteFile("/Reconciler/src/tests/Source.js");
-		deleteFile("/Reconciler/src/tests/AbstractSource.js");
-		deleteFolder("/Reconciler/src/tests");
-	}
-}
-/*
- * Test that the creation of a working copy detects errors
- * (regression test for bug 33757 Problem not detected when opening a working copy)
- */
-public void testMethodWithError06() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	try {
-		String contents =
-			"package p1;\n" +
-			"public class Y {\n" +
-			"  public.void foo() {\n" +
-			"  }\n" +
-			"}";
-		createFile(
-			"/Reconciler/src/p1/Y.js", 
-			contents
-		);
-		this.problemRequestor =  new ProblemRequestor();
-		this.problemRequestor.initialize(contents.toCharArray());
-		this.workingCopy = getCompilationUnit("Reconciler/src/p1/Y.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. ERROR in /Reconciler/src/p1/Y.java (at line 3)\n" + 
-			"	public.void foo() {\n" + 
-			"	      ^\n" + 
-			"Syntax error on token \".\", delete this token\n" + 
-			"----------\n"
-		);
-	} finally {
-		deleteFile("/Reconciler/src/p1/Y.js");
-	}
-}
-/*
- * Test that the opening of a working copy detects errors
- * (regression test for bug 33757 Problem not detected when opening a working copy)
- */
-public void testMethodWithError07() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	try {
-		String contents =
-			"package p1;\n" +
-			"public class Y {\n" +
-			"  public.void foo() {\n" +
-			"  }\n" +
-			"}";
-		createFile(
-			"/Reconciler/src/p1/Y.js", 
-			contents
-		);
-		this.problemRequestor =  new ProblemRequestor();
-		this.problemRequestor.initialize(contents.toCharArray());
-		this.workingCopy = getCompilationUnit("Reconciler/src/p1/Y.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-
-		// Close working copy
-		JavaModelManager.getJavaModelManager().removeInfoAndChildren((CompilationUnit)workingCopy); // use a back door as working copies cannot be closed
-		
-		// Reopen should detect syntax error
-		this.problemRequestor.initialize(contents.toCharArray());
-		this.workingCopy.open(null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. ERROR in /Reconciler/src/p1/Y.java (at line 3)\n" + 
-			"	public.void foo() {\n" + 
-			"	      ^\n" + 
-			"Syntax error on token \".\", delete this token\n" + 
-			"----------\n"
-		);
-	} finally {
-		deleteFile("/Reconciler/src/p1/Y.js");
-	}
-}
-/*
- * Test that the units with similar names aren't presenting each other errors
- * (regression test for bug 39475)
- */
-public void testMethodWithError08() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	try {
-		createFile(
-			"/Reconciler/src/p1/X01.js", 
-			"package p1;\n" +
-			"public abstract class X01 {\n" +
-			"	public abstract void bar();	\n"+
-			"  public abstract void foo(Zork z); \n"+
-			"}"
-		);
-		String contents = 
-			"package p2;\n" +
-			"public class X01 extends p1.X01 {\n" +
-			"	public void bar(){}	\n"+
-			"}";
-		createFile(
-			"/Reconciler/src/p2/X01.js", 
-			contents
-		);
-		this.problemRequestor =  new ProblemRequestor();
-		this.problemRequestor.initialize(contents.toCharArray());
-		this.workingCopy = getCompilationUnit("Reconciler/src/p2/X01.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-
-		// Close working copy
-		JavaModelManager.getJavaModelManager().removeInfoAndChildren((CompilationUnit)workingCopy); // use a back door as working copies cannot be closed
-		
-		// Reopen should detect syntax error
-		this.problemRequestor.initialize(contents.toCharArray());
-		this.workingCopy.open(null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n" // shouldn't report problem against p2.X01
-		);
-	} finally {
-		deleteFile("/Reconciler/src/p1/X01.js");
-		deleteFile("/Reconciler/src/p2/X01.js");
-	}
-}
-/*
- * Scenario of reconciling using a working copy owner
- */
-public void testMethodWithError09() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		workingCopy1 = getCompilationUnit("/Reconciler/src/p1/X1.js").getWorkingCopy(owner, null);
-		workingCopy1.getBuffer().setContents(
-			"package p1;\n" +
-			"public abstract class X1 {\n" +
-			"	public abstract void bar();	\n"+
-			"}"
-		);
-		workingCopy1.makeConsistent(null);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getCompilationUnit("Reconciler/src/p/X.js").getWorkingCopy(owner, null);
-		setWorkingCopyContents(
-			"package p;\n" +
-			"public class X extends p1.X1 {\n" +
-			"	public void bar(){}	\n"+
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n" // shouldn't report problem against p.X
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-	}
-}
-/*
- * Scenario of reconciling using a working copy owner  (68557)
- */
-public void testMethodWithError10() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		createFolder("/Reconciler15/src/test/cheetah");
-		workingCopy1 = getCompilationUnit("/Reconciler15/src/test/cheetah/NestedGenerics.js").getWorkingCopy(owner, null);
-		workingCopy1.getBuffer().setContents(
-			"package test.cheetah;\n"+
-			"import java.util.List;\n"+
-			"import java.util.Stack;\n"+
-			"public class NestedGenerics {\n"+
-			"    Stack< List<Object>> stack = new Stack< List<Object> >();\n"+
-			"}\n"
-		);
-		workingCopy1.makeConsistent(null);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getCompilationUnit("Reconciler15/src/test/cheetah/NestedGenericsTest.js").getWorkingCopy(owner, null);
-		setWorkingCopyContents(
-			"package test.cheetah;\n"+
-			"import java.util.Stack;\n"+
-			"public class NestedGenericsTest {\n"+
-			"    void test() {  \n"+
-			"        Stack s = new NestedGenerics().stack;  \n"+
-			"    }\n"+
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-		deleteFolder("/Reconciler15/src/test");
-	}
-}
-/*
- * Scenario of reconciling using a working copy owner (68557)
- */
-public void testMethodWithError11() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		createFolder("/Reconciler15/src/test/cheetah");
-		workingCopy1 = getCompilationUnit("/Reconciler15/src/test/cheetah/NestedGenerics.js").getWorkingCopy(owner, null);
-		workingCopy1.getBuffer().setContents(
-			"package test.cheetah;\n"+
-			"import java.util.*;\n"+
-			"public class NestedGenerics {\n"+
-			"    Map<List<Object>,String> map = null;\n"+
-			"    Stack<List<Object>> stack2 = null;\n"+
-			"    Map<List<Object>,List<Object>> map3 = null;\n"+
-			"}\n"
-		);
-		workingCopy1.makeConsistent(null);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getCompilationUnit("Reconciler15/src/test/cheetah/NestedGenericsTest.js").getWorkingCopy(owner, null);
-		setWorkingCopyContents(
-			"package test.cheetah;\n"+
-			"import java.util.*;\n"+
-			"public class NestedGenericsTest {\n"+
-			"    void test() {  \n"+
-			"        Map m = new NestedGenerics().map;  \n"+
-			"		 Stack s2 = new NestedGenerics().stack2;    \n"+
-			"        Map m3 = new NestedGenerics().map3;    \n"+
-			"    }\n"+
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-		deleteFolder("/Reconciler15/src/test");
-	}
-}
-/*
- * Scenario of reconciling using a working copy owner (68557 variation with wildcards)
- */
-public void testMethodWithError12() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		createFolder("/Reconciler15/src/test/cheetah");
-		workingCopy1 = getCompilationUnit("/Reconciler15/src/test/cheetah/NestedGenerics.js").getWorkingCopy(owner, null);
-		workingCopy1.getBuffer().setContents(
-			"package test.cheetah;\n"+
-			"import java.util.*;\n"+
-			"public class NestedGenerics {\n"+
-			"    Map<List<?>,? super String> map = null;\n"+
-			"    Stack<List<? extends Object>> stack2 = null;\n"+
-			"    Map<List<Object[]>,List<Object>[]> map3 = null;\n"+
-			"}\n"
-		);
-		workingCopy1.makeConsistent(null);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getCompilationUnit("Reconciler15/src/test/cheetah/NestedGenericsTest.js").getWorkingCopy(owner, null);
-		setWorkingCopyContents(
-			"package test.cheetah;\n"+
-			"import java.util.*;\n"+
-			"public class NestedGenericsTest {\n"+
-			"    void test() {  \n"+
-			"        Map m = new NestedGenerics().map;  \n"+
-			"		 Stack s2 = new NestedGenerics().stack2;    \n"+
-			"        Map m3 = new NestedGenerics().map3;    \n"+
-			"    }\n"+
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-		deleteFolder("/Reconciler15/src/test");
-	}
-}
-/*
- * Scenario of reconciling using a working copy owner (68730)
- */
-public void testMethodWithError13() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		workingCopy1 = getCompilationUnit("/Reconciler15/src/test/X.js").getWorkingCopy(owner, null);
-		createFolder("/Reconciler15/src/test");
-		workingCopy1.getBuffer().setContents(
-			"package test;\n"+
-			"public class X <T extends String, U> {\n"+
-			"	<Y1> void bar(Y1[] y) {}\n"+
-			"	void bar2(Y<E3[]>[] ye[]) {}\n"+
-			"    void foo(java.util.Map<Object[],String>.MapEntry<p.K<T>[],? super q.r.V8> m){}\n"+
-			"    Class<? extends Object> getClass0() {}\n"+
-			"    <E extends String> void pair (X<? extends E, U> e, T t){}\n"+
-			"}\n"
-		);
-		workingCopy1.makeConsistent(null);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getCompilationUnit("Reconciler15/src/test/Y.js").getWorkingCopy(owner, null);
-		setWorkingCopyContents(
-			"package test;\n"+
-			"public class Y {\n"+
-			"	void foo(){\n"+
-			"		X someX = new X();\n"+
-			"		someX.bar(null);\n"+
-			"	}\n"+
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-		"----------\n" + 
-		"1. WARNING in /Reconciler15/src/test/Y.java (at line 5)\n" + 
-		"	someX.bar(null);\n" + 
-		"	^^^^^^^^^^^^^^^\n" + 
-		"Type safety: The method bar(Object[]) belongs to the raw type X. References to generic type X<T,U> should be parameterized\n" + 
-		"----------\n"
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-		deleteFolder("/Reconciler15/src/test");
-	}
-}
-/*
- * Scenario of reconciling using a working copy owner (66424)
- */
-public void testMethodWithError14() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		workingCopy1 = getCompilationUnit("/Reconciler15/src/test/X.js").getWorkingCopy(owner, null);
-		createFolder("/Reconciler15/src/test");
-		workingCopy1.getBuffer().setContents(
-			"package test;\n"+
-			"public class X <T> {\n"+
-			"	<U> void bar(U u) {}\n"+
-			"}\n"
-		);
-		workingCopy1.makeConsistent(null);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getCompilationUnit("Reconciler15/src/test/Y.js").getWorkingCopy(owner, null);
-		setWorkingCopyContents(
-			"package test;\n"+
-			"public class Y {\n"+
-			"	void foo(){\n"+
-			"		X someX = new X();\n"+
-			"		someX.bar();\n"+
-			"	}\n"+
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. ERROR in /Reconciler15/src/test/Y.java (at line 5)\n" + 
-			"	someX.bar();\n" + 
-			"	      ^^^\n" + 
-			"The method bar(Object) in the type X is not applicable for the arguments ()\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-		deleteFolder("/Reconciler15/src/test");
-	}
-}
-/**
- * Ensures that the reconciler handles member move correctly.
- */
-public void testMoveMember() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"  }\n" +
-		"  public void bar() {\n" +
-		"  }\n" +
-		"}");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	clearDeltas();
-	
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"  }\n" +
-		"  public void foo() {\n" +
-		"  }\n" +
-		"}");
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta", 
-		"X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"	bar()[*]: {REORDERED}\n" + 
-		"	foo()[*]: {REORDERED}"
-	);
-}
-/**
- * Ensures that the reconciler does nothing when the source
- * to reconcile with is the same as the current contents.
- */
-public void testNoChanges1() throws JavaScriptModelException {
-	setWorkingCopyContents(this.workingCopy.getSource());
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta",
-		"[Working copy] X.java[*]: {CONTENT | FINE GRAINED}"
-	);
-}
-/**
- * Ensures that the reconciler does nothing when the source
- * to reconcile with has the same structure as the current contents.
- */
-public void testNoChanges2() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"    System.out.println()\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta",
-		"[Working copy] X.java[*]: {CONTENT | FINE GRAINED}"
-	);
-}
-/*
- * Ensures that using a non-generic method with no parameter and with a raw receiver type doesn't create a type safety warning
- * (regression test for bug 105756 [1.5][model] Incorrect warning on using raw types)
- */
-public void testRawUsage() throws CoreException {
-	IJavaScriptUnit otherCopy = null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		otherCopy = getWorkingCopy(
-			"Reconciler15/src/Generic105756.js", 
-			"public class Generic105756<T> {\n" +
-			"  void foo() {}\n" +
-			"}",
-			owner,
-			false/*don't compute problems*/);
-		setUp15WorkingCopy("/Reconciler15/src/X.js", owner);
-		setWorkingCopyContents(
-			"public class X {\n" +
-			"  void bar(Generic105756 g) {\n" +
-			"    g.foo();\n" +
-			"  }\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (otherCopy != null)
-			otherCopy.discardWorkingCopy();
-	}
-}
-/*
- * Ensures that a reconcile participant is notified when a working copy is reconciled.
- */
-public void testReconcileParticipant01() throws CoreException {
-	ReconcileParticipant participant = new ReconcileParticipant();
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"    System.out.println()\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected participant delta",
-		"[Working copy] X.java[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"	X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"		bar()[+]: {}\n" + 
-		"		foo()[-]: {}",
-		participant.delta
-	);
-}
-/*
- * Ensures that a reconcile participant is not notified if not participating.
- */
-public void testReconcileParticipant02() throws CoreException {
-	ReconcileParticipant participant = new ReconcileParticipant(){
-		public boolean isActive(IJavaScriptProject project) {
-			return false;
-		}
-	};
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"    System.out.println()\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected participant delta",
-		"<null>",
-		participant.delta
-	);
-}
-/*
- * Ensures that a reconcile participant is notified with the correct AST.
- */
-public void testReconcileParticipant03() throws CoreException {
-	ReconcileParticipant participant = new ReconcileParticipant();
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"    System.out.println()\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertASTNodeEquals(
-		"Unexpected participant delta",
-		"package p1;\n" + 
-		"import p2.*;\n" + 
-		"public class X {\n" + 
-		"  public void bar(){\n" + 
-		"  }\n" + 
-		"}\n",
-		participant.ast
-	);
-}
-/*
- * Ensures that the same AST as the one a reconcile participant requested is reported.
- */
-public void testReconcileParticipant04() throws CoreException {
-	ReconcileParticipant participant = new ReconcileParticipant();
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"    System.out.println()\n" +
-		"  }\n" +
-		"}"
-	);
-	org.eclipse.wst.jsdt.core.dom.JavaScriptUnit ast = this.workingCopy.reconcile(AST.JLS3, false, null, null);
-	assertSame(
-		"Unexpected participant delta",
-		participant.ast,
-		ast
-	);
-}
-/*
- * Ensures that a participant can fix an error during reconcile.
- */
-public void testReconcileParticipant05() throws CoreException {
-	new ReconcileParticipant() {
-		public void reconcile(ReconcileContext context) {
-			try {
-				setWorkingCopyContents(
-					"package p1;\n" +
-					"public class X {\n" +
-					"  public void bar() {\n" +
-					"  }\n" +
-					"}"
-				);
-				context.resetAST();
-			} catch (JavaScriptModelException e) {
-				e.printStackTrace();
-			}
-		}
-	};
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"    toString()\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"----------\n"
-	);
-}
-/*
- * Ensures that a participant can introduce an error during reconcile.
- */
-public void testReconcileParticipant06() throws CoreException {
-	new ReconcileParticipant() {
-		public void reconcile(ReconcileContext context) {
-			try {
-				setWorkingCopyContents(
-					"package p1;\n" +
-					"public class X {\n" +
-					"  public void bar() {\n" +
-					"    toString()\n" +
-					"  }\n" +
-					"}"
-				);
-				context.resetAST();
-			} catch (JavaScriptModelException e) {
-				e.printStackTrace();
-			}
-		}
-	};
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.java (at line 4)\n" + 
-		"	toString()\n" + 
-		"	         ^\n" + 
-		"Syntax error, insert \";\" to complete BlockStatements\n" + 
-		"----------\n"
-	);
-}
-/*
- * Ensures that a reconcile participant is NOT notified when a working copy is reconciled
- * in a project with insufficient source level.
- * (regression test for bug 125291 Enable conditional loading of APT)
- */
-public void testReconcileParticipant07() throws CoreException {
-	IJavaScriptProject project = this.workingCopy.getJavaScriptProject();
-	String originalSourceLevel = project.getOption(JavaScriptCore.COMPILER_SOURCE, true);
-	try {
-		project.setOption(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_1);
-		ReconcileParticipant participant = new ReconcileParticipant();
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"import p2.*;\n" +
-			"public class X {\n" +
-			"  public void bar() {\n" +
-			"    System.out.println()\n" +
-			"  }\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertDeltas(
-			"Unexpected participant delta",
-			"<null>",
-			participant.delta
-		);
-	} finally {
-		project.setOption(JavaScriptCore.COMPILER_SOURCE, originalSourceLevel);
-	}
-}
-/*
- * Ensures that a problem reporting session is not started during reconcile if a participant reports an error
- * and if the working copy is already consistent and the forceProblemDetection flag is false.
- * (regression test for bug 154170 Printing warnings breaks in-editor quick fixes)
- */
-public void testReconcileParticipant08() throws CoreException {
-	// set working copy contents and ensure it is consistent
-	String contents = 
-		"package p1;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"  }\n" +
-		"}";
-	setWorkingCopyContents(contents);
-	this.workingCopy.makeConsistent(null);
-	this.problemRequestor.initialize(contents.toCharArray());
-	
-	// reconcile with a participant adding a list of problems
-	new ReconcileParticipant() {
-		public void reconcile(ReconcileContext context) {
-			context.putProblems("test.marker", new CategorizedProblem[] {});
-		}
-	};
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertProblems(
-		"Unexpected problems",
-		""
-	);
-}
-/**
- * Ensures that the reconciler reconciles the new contents with the current
- * contents, updating the structure of this reconciler's compilation
- * unit, and fires the Java element deltas for the structural changes
- * of a renaming a method; the original method deleted and the new method added structurally.
- */
-public void testRenameMethod1() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void bar() {\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta",
-		"X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"	bar()[+]: {}\n" + 
-		"	foo()[-]: {}"
-	);
-}
-/**
- * Ensures that the reconciler reconciles the new contents with the current
- * contents,updating the structure of this reconciler's compilation
- * unit, and fires the Java element delta for the structural changes
- * of the addition of a portion of a new method.
- */
-public void testRenameWithSyntaxError() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"import p2.*;\n" +
-		"public class X {\n" +
-		"  public void bar( {\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Unexpected delta",
-		"X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"	bar()[+]: {}\n" + 
-		"	foo()[-]: {}"
-	);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.java (at line 4)\n" + 
-		"	public void bar( {\n" + 
-		"	               ^\n" + 
-		"Syntax error, insert \")\" to complete FunctionDeclaration\n" + 
-		"----------\n"
-	);
-}
-/*
- * Ensure that warning are suppressed by an @SuppressWarnings annotation.
- */
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=95056
-public void testSuppressWarnings1() throws JavaScriptModelException {
-	IJavaScriptUnit otherCopy = null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		otherCopy = getWorkingCopy(
-			"/Reconciler15/src/X.js",
-	        "@Deprecated\n" + 
-	        "public class X {\n" + 
-	        "   void foo(){}\n" +
-	        "}\n",
-			owner,
-			false/*don't compute problems*/);
-		setUp15WorkingCopy("/Reconciler15/src/Y.js", owner);
-		setWorkingCopyContents(
-	        "public class Y extends X {\n" + 
-	        "  @SuppressWarnings(\"all\")\n" +
-	        "   void foo(){ super.foo(); }\n" +
-	        "   Zork z;\n" +
-	        "}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. WARNING in /Reconciler15/src/Y.java (at line 1)\n" + 
-			"	public class Y extends X {\n" + 
-			"	                       ^\n" + 
-			"The type X is deprecated\n" + 
-			"----------\n" + 
-			"2. ERROR in /Reconciler15/src/Y.java (at line 4)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n");
-	} finally {
-		if (otherCopy != null)
-			otherCopy.discardWorkingCopy();
-	}
-}
-/*
- * Ensure that warning are suppressed by an @SuppressWarning annotation.
- */
-public void testSuppressWarnings2() throws JavaScriptModelException {
-	IJavaScriptUnit otherCopy = null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		otherCopy = getWorkingCopy(
-			"/Reconciler15/src/java/util/List.js",
-			"package java.util;\n" +
-	        "public interface List<E> {\n" + 
-	        "}\n",
-			owner,
-			false/*don't compute problems*/);
-		setUp15WorkingCopy("/Reconciler15/src/X.js", owner);
-		setWorkingCopyContents(
-            "import java.util.List;\n" + 
-            "\n" + 
-            "public class X {\n" + 
-            "    void foo(List list) {\n" + 
-            "        List<String> ls1 = list;\n" + 
-            "    }\n" + 
-            "    @SuppressWarnings(\"unchecked\")\n" + 
-            "    void bar(List list) {\n" + 
-            "        List<String> ls2 = list;\n" + 
-            "    }\n" + 
-            "   Zork z;\n" +
-            "}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. WARNING in /Reconciler15/src/X.java (at line 5)\n" + 
-			"	List<String> ls1 = list;\n" + 
-			"	                   ^^^^\n" + 
-			"Type safety: The expression of type List needs unchecked conversion to conform to List<String>\n" + 
-			"----------\n" + 
-			"2. ERROR in /Reconciler15/src/X.java (at line 11)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (otherCopy != null)
-			otherCopy.discardWorkingCopy();
-	}
-}
-/*
- * Ensure that warning are suppressed by an @SuppressWarning annotation.
- */
-public void testSuppressWarnings3() throws JavaScriptModelException {
-	IJavaScriptUnit otherCopy = null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		otherCopy = getWorkingCopy(
-			"/Reconciler15/src/java/util/HashMap.js",
-			"package java.util;\n" +
-	        "public class HashMap implements Map {\n" + 
-	        "}\n",
-			owner,
-			false/*don't compute problems*/);
-		setUp15WorkingCopy("/Reconciler15/src/X.js", owner);
-		setWorkingCopyContents(
-			"import java.util.*;\n" + 
-			"@SuppressWarnings(\"unchecked\")\n" + 
-			"public class X {\n" + 
-			"	void foo() {\n" + 
-			"		Map<String, String>[] map = new HashMap[10];\n" + 
-			"	}\n" + 
-            "   Zork z;\n" +				
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. ERROR in /Reconciler15/src/X.java (at line 7)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (otherCopy != null)
-			otherCopy.discardWorkingCopy();
-	}
-}
-/*
- * Ensure that warning are suppressed by an @SuppressWarnings annotation.
- */
-public void testSuppressWarnings4() throws JavaScriptModelException {
-	IJavaScriptUnit otherCopy = null;
-	try {
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		otherCopy = getWorkingCopy(
-			"/Reconciler15/src/X.js",
-	        "/** @deprecated */\n" + 
-	        "public class X {\n" + 
-	        "   void foo(){}\n" +
-	        "}\n",
-			owner,
-			false/*don't compute problems*/);
-		setUp15WorkingCopy("/Reconciler15/src/Y.js", owner);
-		setWorkingCopyContents(
-	        "public class Y extends X {\n" + 
-	        "  @SuppressWarnings(\"all\")\n" +
-	        "   void foo(){ super.foo(); }\n" +
-	        "   Zork z;\n" +
-	        "}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"1. WARNING in /Reconciler15/src/Y.java (at line 1)\n" + 
-			"	public class Y extends X {\n" + 
-			"	                       ^\n" + 
-			"The type X is deprecated\n" + 
-			"----------\n" + 
-			"2. ERROR in /Reconciler15/src/Y.java (at line 4)\n" + 
-			"	Zork z;\n" + 
-			"	^^^^\n" + 
-			"Zork cannot be resolved to a type\n" + 
-			"----------\n");
-	} finally {
-		if (otherCopy != null)
-			otherCopy.discardWorkingCopy();
-	}
-}
-/**
- * Ensure that an unhandled exception is detected.
- */
-public void testUnhandledException() throws JavaScriptModelException {
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"    throw new Exception();\n" +
-		"  }\n" +
-		"}"
-	);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"1. ERROR in /Reconciler/src/p1/X.java (at line 4)\n" + 
-		"	throw new Exception();\n" + 
-		"	^^^^^^^^^^^^^^^^^^^^^^\n" + 
-		"Unhandled exception type Exception\n" + 
-		"----------\n"
-	);
-}
-/**
- * Check that forcing a make consistent action is leading the next reconcile to not notice changes.
- */
-public void testMakeConsistentFoolingReconciler() throws JavaScriptModelException {
-	setWorkingCopyContents("");
-	this.workingCopy.makeConsistent(null);
-	this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertDeltas(
-		"Should have got NO delta", 
-		""
-	);
-}
-/**
- * Test bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=60689
- * AST on reconcile: AST without Javadoc comments created
- * @deprecated using deprecated code
- */
-public void testBug60689() throws JavaScriptModelException {
-	setWorkingCopyContents("public class X {\n" +
-		"	/**\n" +
-		"	 * Returns the length of the string representing the number of \n" +
-		"	 * indents in the given string <code>line</code>. Returns \n" +
-		"	 * <code>-1<code> if the line isn't prefixed with an indent of\n" +
-		"	 * the given number of indents. \n" +
-		"	 */\n" +
-		"	public static int computeIndentLength(String line, int numberOfIndents, int tabWidth) {\n" +
-		"		return 0;\n" +
-		"}"
-	);
-	org.eclipse.wst.jsdt.core.dom.JavaScriptUnit testCU = this.workingCopy.reconcile(AST.JLS2, true, null, null);
-	assertNotNull("We should have a comment!", testCU.getCommentList());
-	assertEquals("We should have 1 comment!", 1, testCU.getCommentList().size());
-	testCU = this.workingCopy.reconcile(AST.JLS2, true, null, null);
-	assertNotNull("We should have a comment!", testCU.getCommentList());
-	assertEquals("We should have one comment!", 1, testCU.getCommentList().size());
-}
-/*
- * Ensures that a working copy in a 1.4 project that references a 1.5 project can be reconciled without error.
- * (regression test for bug 98434 A non-1.5 project with 1.5 projects in the classpath does not show methods with generics)
- */
-public void testTwoProjectsWithDifferentCompliances() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	try {
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p;\n" +
-			"public class X {\n" +
-			"  void foo(Class<String> c) {\n" +
-			"  }\n" +
-			"}"
-		);
-		
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"}, "", "1.4");
-		createFolder("/P2/p");
-		WorkingCopyOwner owner = new WorkingCopyOwner() {};
-		this.workingCopy = getWorkingCopy("/P2/p/Y.js", "", owner, this.problemRequestor);
-		setWorkingCopyContents(
-			"package p;\n" +
-			"public class Y {\n" +
-			"  void bar(Class c) {\n" +
-			"    new X().foo(c);\n" +
-			"  }\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, true/*force pb detection*/, owner, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/*
- * Ensures that a method that has a type parameter with bound can be overriden in another working copy.
- * (regression test for bug 76780 [model] return type not recognized correctly on some generic methods)
- */
-public void testTypeParameterWithBound() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		workingCopy1 = getWorkingCopy(
-			"/Reconciler15/src/test/I.js",
-			"package test;\n"+
-			"public interface I {\n"+
-			"	<T extends I> void foo(T t);\n"+
-			"}\n",
-			owner,
-			null /*no problem requestor*/
-		);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getWorkingCopy("Reconciler15/src/test/X.js", "", owner, this.problemRequestor);
-		setWorkingCopyContents(
-			"package test;\n"+
-			"public class X implements I {\n"+
-			"	public <T extends I> void foo(T t) {\n"+
-			"	}\n"+
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-	}
-}
-/*
- * Ensures that a method that has a type parameter starting with $ can be reconciled against.
- * (regression test for bug 91709 [1.5][model] Quick Fix Error but no Problem Reported)
- */
-public void testTypeParameterStartingWithDollar() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		workingCopy1 = getWorkingCopy(
-			"/Reconciler15/src/test/Y.js",
-			"package test;\n"+
-			"public class Y<$T> {\n"+
-			"	void foo($T t);\n"+
-			"}\n",
-			owner,
-			null /*no problem requestor*/
-		);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getWorkingCopy("Reconciler15/src/test/X.js", "", owner, this.problemRequestor);
-		setWorkingCopyContents(
-			"package test;\n"+
-			"public class X {\n"+
-			"	public void bar() {\n"+
-			"    new Y<String>().foo(\"\");\n" +
-			"	}\n"+
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-	}
-}
-/*
- * Ensures that a working copy with a type with a dollar name can be reconciled without errors.
- * (regression test for bug 117121 Can't create class called A$B in eclipse)
- */
-public void testTypeWithDollarName() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	try {
-		String contents =
-			"package p1;\n" +
-			"public class Y$Z {\n" +
-			"}";
-		createFile(
-			"/Reconciler/src/p1/Y$Z.js", 
-			contents
-		);
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getCompilationUnit("Reconciler/src/p1/Y$Z.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		
-		this.problemRequestor.initialize(contents.toCharArray());
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		deleteFile("/Reconciler/src/p1/Y$Z.js");
-	}
-}
-/*
- * Ensures that a working copy with a type with a dollar name can be reconciled against without errors.
- * (regression test for bug 125301 Handling of classes with $ in class name.)
- */
-public void testTypeWithDollarName2() throws CoreException {
-	IJavaScriptUnit workingCopy2 = null; 
-	try {
-		WorkingCopyOwner owner = this.workingCopy.getOwner();
-		workingCopy2 = getWorkingCopy(
-			"/Reconciler/src/p1/Y$Z.js",
-			"package p1;\n" +
-			"public class Y$Z {\n" +
-			"}",
-			owner,
-			false/*don't compute problems*/
-		);
-		setWorkingCopyContents(
-			"package p1;\n" +
-			"public class X {\n" +
-			"  Y$Z field;\n" +
-			"}"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (workingCopy2 != null)
-			workingCopy2.discardWorkingCopy();
-	}
-}
-/*
- * Ensures that a varargs method can be referenced from another working copy.
- */
-public void testVarargs() throws CoreException {
-	this.workingCopy.discardWorkingCopy(); // don't use the one created in setUp()
-	this.workingCopy = null;
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit workingCopy1 = null;
-	try {
-		workingCopy1 = getWorkingCopy(
-			"/Reconciler15/src/test/X.js",
-			"package test;\n"+
-			"public class X {\n"+
-			"	void bar(String ... args) {}\n"+
-			"}\n",
-			owner,
-			null /*no problem requestor*/
-		);
-		
-		this.problemRequestor =  new ProblemRequestor();
-		this.workingCopy = getWorkingCopy("Reconciler15/src/test/Y.js", "", owner, this.problemRequestor);
-		setWorkingCopyContents(
-			"package test;\n"+
-			"public class Y {\n"+
-			"	void foo(){\n"+
-			"		X someX = new X();\n"+
-			"		someX.bar(\"a\", \"b\");\n"+
-			"	}\n"+
-			"}\n"
-		);
-		this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, owner, null);
-
-		assertProblems(
-			"Unexpected problems",
-			"----------\n" + 
-			"----------\n"
-		);
-	} finally {
-		if (workingCopy1 != null) {
-			workingCopy1.discardWorkingCopy();
-		}
-	}
-}
-
-/**
- * Bug 114338:[javadoc] Reconciler reports wrong javadoc warning (missing return type)
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=114338"
- *
- */
-public void testBug114338() throws CoreException {
-	// Set initial CU content
-	setWorkingCopyContents(
-		"package p1;\n" +
-		"public class X {\n" + 
-		"	/**\n" + 
-		"	 * @return a\n" + 
-		"	 */\n" + 
-		"	boolean get() {\n" + 
-		"		return false;\n" + 
-		"	}\n" + 
-		"}");
-	this.workingCopy.reconcile(AST.JLS3, true, this.wcOwner, null);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"----------\n"
-	);
-
-	// Modify content
-	String contents =
-		"package p1;\n" +
-		"public class X {\n" + 
-		"	/**\n" + 
-		"	 * @return boolean\n" + 
-		"	 */\n" + 
-		"	boolean get() {\n" + 
-		"		return false;\n" + 
-		"	}\n" + 
-		"}";
-	setWorkingCopyContents(contents);
-	this.workingCopy.reconcile(AST.JLS3, true, this.wcOwner, null);
-	assertProblems(
-		"Unexpected problems",
-		"----------\n" + 
-		"----------\n"
-	);
-}
-
-/**
- * Bug 36032:[plan] JavaProject.findType() fails to find second type in source file
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=36032"
- */
-public void testBug36032a() throws CoreException, InterruptedException {
-	try {
-		// Resources creation
-		createJavaProject("P", new String[] {""}, new String[] {"JCL_LIB"});
-		String source = 
-			"public class Test {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new SFoo().foo();\n" + 
-			"	}\n" + 
-			"}\n";
-		this.createFile(
-			"/P/Foo.js", 
-			"class SFoo { void foo() {} }\n"
-		);
-		this.createFile(
-			"/P/Test.js", 
-			source
-		);
-		
-		// Get compilation unit and reconcile it
-		char[] sourceChars = source.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopy = getCompilationUnit("/P/Test.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		this.workingCopy.getBuffer().setContents(source);
-		this.workingCopy.reconcile(AST.JLS3, true, null, null);
-		assertNoProblem(sourceChars, this.workingCopy);
-
-		// Add new secondary type
-		this.createFile(
-			"/P/Bar.js", 
-			"class SBar{ void bar() {} }\n"
-		);
-		source = 
-			"public class Test {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new SFoo().foo();\n" + 
-			"		new SBar().bar();\n" + 
-			"	}\n" + 
-			"}\n";
-		
-		// Reconcile with modified source
-		sourceChars = source.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopy.getBuffer().setContents(source);
-		this.workingCopy.reconcile(AST.JLS3, true, null, null);
-		assertNoProblem(sourceChars, this.workingCopy);
-	} finally {
-		deleteProject("P");
-	}
-}
-public void testBug36032b() throws CoreException, InterruptedException {
-	try {
-		// Resources creation
-		createJavaProject("P", new String[] {""}, new String[] {"JCL_LIB"});
-		String source = 
-			"public class Test {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new SFoo().foo();\n" + 
-			"		new SBar().bar();\n" + 
-			"	}\n" + 
-			"}\n";
-		createFile(
-			"/P/Foo.js", 
-			"class SFoo { void foo() {} }\n"
-		);
-		createFile(
-			"/P/Test.js", 
-			source
-		);
-		createFile(
-			"/P/Bar.js", 
-			"class SBar{ void bar() {} }\n"
-		);
-		
-		// Get compilation unit and reconcile it
-		char[] sourceChars = source.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopy = getCompilationUnit("/P/Test.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		this.workingCopy.getBuffer().setContents(source);
-		this.workingCopy.reconcile(AST.JLS3, true, null, null);
-		assertNoProblem(sourceChars, this.workingCopy);
-
-		// Delete secondary type => should get a problem
-		waitUntilIndexesReady();
-		deleteFile("/P/Bar.js");
-		this.problemRequestor.initialize(source.toCharArray());
-		this.workingCopy.reconcile(AST.JLS3, true, null, null);
-		assertEquals("Working copy should not find secondary type 'Bar'!", 1, this.problemRequestor.problemCount);
-		assertProblems("Working copy should have problem!",
-			"----------\n" +
-			"1. ERROR in /P/Test.java (at line 4)\n" +
-			"	new SBar().bar();\n" +
-			"	    ^^^^\n" +
-			"SBar cannot be resolved to a type\n" +
-			"----------\n"
-		);
-
-		// Fix the problem
-		source = 
-			"public class Test {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new SFoo().foo();\n" + 
-			"	}\n" + 
-			"}\n";
-		sourceChars = source.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopy.getBuffer().setContents(source);
-		this.workingCopy.reconcile(AST.JLS3, true, null, null);
-		assertNoProblem(sourceChars, this.workingCopy);
-	} finally {
-		deleteProject("P");
-	}
-}
-// Secondary types used through multiple projects
-public void testBug36032c() throws CoreException, InterruptedException {
-	try {
-		// Create first project
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL_LIB"});
-		createFolder("/P1/test");
-		createFile(
-			"/P1/test/Foo.js", 
-			"package test;\n" +
-			"class Secondary{ void foo() {} }\n"
-		);
-		createFile(
-			"/P1/test/Test1.js", 
-			"package test;\n" +
-			"public class Test1 {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new Secondary().foo();\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-
-		// Create second project
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" });
-		String source = 
-			"package test;\n" +
-			"public class Test2 {\n" + 
-			"	public static void main(String[] args) {\n" + 
-			"		new Secondary().foo();\n" + 
-			"	}\n" + 
-			"}\n";
-		createFolder("/P2/test");
-		createFile(
-			"/P2/test/Test2.js", 
-			source
-		);
-		
-		// Get compilation unit and reconcile it => expect no error
-		char[] sourceChars = source.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopy = getCompilationUnit("/P2/test/Test2.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		this.workingCopy.getBuffer().setContents(source);
-		this.workingCopy.reconcile(AST.JLS3, true, null, null);
-		assertNoProblem(sourceChars, this.workingCopy);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-/**
- * Bug 118823: [model] Secondary types cache not reset while removing _all_ secondary types from CU
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=118823"
- */
-public void testBug118823() throws CoreException, InterruptedException, IOException {
-	try {
-		// Resources creation
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL_LIB"});
-		String source = "class Test {}\n";
-		createFile(
-			"/P1/Test.js", 
-			source
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" });
-		String source2 = 
-			"class A {\n" +
-			"	Secondary s;\n" +
-			"}\n";
-		createFile(
-			"/P2/A.js",
-			source2
-		);
-		waitUntilIndexesReady();
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.wcOwner = new WorkingCopyOwner() {};
-
-		// Get first working copy and verify that there's no error
-		char[] sourceChars = source.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[0] = getCompilationUnit("/P1/Test.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertNoProblem(sourceChars, this.workingCopies[0]);
-
-		// Get second working copy and verify that there's one error (missing secondary type)
-		this.problemRequestor.initialize(source2.toCharArray());
-		this.workingCopies[1] = getCompilationUnit("/P2/A.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertEquals("Working copy should not find secondary type 'Secondary'!", 1, this.problemRequestor.problemCount);
-		assertProblems("Working copy should have problem!",
-			"----------\n" +
-			"1. ERROR in /P2/A.java (at line 2)\n" +
-			"	Secondary s;\n" +
-			"	^^^^^^^^^\n" +
-			"Secondary cannot be resolved to a type\n" +
-			"----------\n"
-		);
-
-		// Delete file and recreate it with secondary
-		final String source1 = 
-			"public class Test {}\n" + 
-			"class Secondary{}\n";
-		getWorkspace().run(
-			new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					deleteFile("/P1/Test.js");
-					createFile(
-						"/P1/Test.js", 
-						source1
-					);
-				}
-			},
-			null
-		);
-
-		// Get first working copy and verify that there's still no error
-		sourceChars = source1.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[0].getBuffer().setContents(source1);
-		this.workingCopies[0].reconcile(AST.JLS3,
-			true, // force problem detection to see errors if any
-			null,	// do not use working copy owner to not use working copies in name lookup
-			null);
-		assertNoProblem(sourceChars, this.workingCopies[0]);
-
-		// Get second working copy and verify that there's any longer error
-		sourceChars = source2.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[1].getBuffer().setContents(source2);
-		this.workingCopies[1].reconcile(AST.JLS3,
-			true, // force problem detection to see errors if any
-			null,	// do not use working copy owner to not use working copies in name lookup
-			null);
-		assertNoProblem(sourceChars, this.workingCopies[1]);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-public void testBug118823b() throws CoreException, InterruptedException {
-	try {
-		// Resources creation
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL_LIB"});
-		String source1 = "class Test {}\n";
-		createFile(
-			"/P1/Test.js", 
-			source1
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" });
-		String source2 = 
-			"class A {\n" +
-			"	Secondary s;\n" +
-			"}\n";
-		createFile(
-			"/P2/A.js",
-			source2
-		);
-		waitUntilIndexesReady();
-		this.workingCopies = new IJavaScriptUnit[2];
-
-		// Get first working copy and verify that there's no error
-		char[] sourceChars = source1.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[0] = getCompilationUnit("/P1/Test.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertNoProblem(sourceChars, this.workingCopies[0]);
-
-		// Get second working copy and verify that there's one error (missing secondary type)
-		this.problemRequestor.initialize(source2.toCharArray());
-		this.workingCopies[1] = getCompilationUnit("/P2/A.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertEquals("Working copy should not find secondary type 'Secondary'!", 1, this.problemRequestor.problemCount);
-		assertProblems("Working copy should have problem!",
-			"----------\n" +
-			"1. ERROR in /P2/A.java (at line 2)\n" +
-			"	Secondary s;\n" +
-			"	^^^^^^^^^\n" +
-			"Secondary cannot be resolved to a type\n" +
-			"----------\n"
-		);
-
-		// Modify first working copy and verify that there's still no error
-		source1 = 
-			"public class Test {}\n" + 
-			"class Secondary{}\n";
-		sourceChars = source1.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[0].getBuffer().setContents(source1);
-		this.workingCopies[0].reconcile(AST.JLS3,
-			true, // force problem detection to see errors if any
-			null,	// do not use working copy owner to not use working copies in name lookup
-			null);
-		this.workingCopies[0].commitWorkingCopy(true, null);
-		assertNoProblem(sourceChars, this.workingCopies[0]);
-
-		// Get second working copy and verify that there's any longer error
-		sourceChars = source2.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[1].getBuffer().setContents(source2);
-		this.workingCopies[1].reconcile(AST.JLS3,
-			true, // force problem detection to see errors if any
-			null,	// do not use working copy owner to not use working copies in name lookup
-			null);
-		assertNoProblem(sourceChars, this.workingCopies[1]);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-public void testBug118823c() throws CoreException, InterruptedException {
-	try {
-		// Resources creation
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL_LIB"});
-		String source1 = "class Test {}\n";
-		createFile(
-			"/P1/Test.js", 
-			source1
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" });
-		String source2 = 
-			"class A {\n" +
-			"	Secondary s;\n" +
-			"}\n";
-		createFile(
-			"/P2/A.js",
-			source2
-		);
-		waitUntilIndexesReady();
-		this.workingCopies = new IJavaScriptUnit[2];
-		this.wcOwner = new WorkingCopyOwner() {};
-
-		// Get first working copy and verify that there's no error
-		char[] sourceChars = source1.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[0] = getCompilationUnit("/P1/Test.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertNoProblem(sourceChars, this.workingCopies[0]);
-
-		// Get second working copy and verify that there's one error (missing secondary type)
-		this.problemRequestor.initialize(source2.toCharArray());
-		this.workingCopies[1] = getCompilationUnit("/P2/A.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertEquals("Working copy should not find secondary type 'Secondary'!", 1, this.problemRequestor.problemCount);
-		assertProblems("Working copy should have problem!",
-			"----------\n" +
-			"1. ERROR in /P2/A.java (at line 2)\n" +
-			"	Secondary s;\n" +
-			"	^^^^^^^^^\n" +
-			"Secondary cannot be resolved to a type\n" +
-			"----------\n"
-		);
-
-		// Delete file and recreate it with secondary
-		deleteFile("/P1/Test.js");
-		source1 = 
-			"public class Test {}\n" + 
-			"class Secondary{}\n";
-		createFile(
-			"/P1/Test.js", 
-			source1
-		);
-
-		// Get first working copy and verify that there's still no error
-		sourceChars = source1.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[0].getBuffer().setContents(source1);
-		this.workingCopies[0].reconcile(AST.JLS3,
-			true, // force problem detection to see errors if any
-			null,	// do not use working copy owner to not use working copies in name lookup
-			null);
-		this.workingCopies[0].commitWorkingCopy(true, null);
-		assertNoProblem(sourceChars, this.workingCopies[0]);
-
-		// Get second working copy and verify that there's any longer error
-		sourceChars = source2.toCharArray();
-		this.problemRequestor.initialize(sourceChars);
-		this.workingCopies[1].getBuffer().setContents(source2);
-		this.workingCopies[1].reconcile(AST.JLS3,
-			true, // force problem detection to see errors if any
-			null,	// do not use working copy owner to not use working copies in name lookup
-			null);
-		assertNoProblem(sourceChars, this.workingCopies[1]);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=107931
-// won't be fixed; this test watches the current behavior in case we change
-// our mind
-public void test1001() throws CoreException, InterruptedException, IOException {
-	try {
-		// Resources creation
-		String sources[] = new String[3];
-		char[] sourcesAsCharArrays[] = new char[3][];
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL_LIB"});
-		sources[0] = "class X {}\n";
-		createFile(
-			"/P1/X.js", 
-			sources[0]
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" });
-		sources[1] = 
-			"interface I {\n" +
-			"  void foo();\n" +
-			"  void bar(X p);\n" +
-			"}\n";
-		createFile(
-			"/P2/I.js",
-			sources[1]
-		);
-		createJavaProject("P3", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P2" });
-		sources[2] = 
-			"class Y implements I {\n" +
-			"  // public void foo() { }\n" +
-			"  // public void bar(X p) { }\n" +
-			"}\n";
-		createFile(
-			"/P3/Y.js",
-			sources[2]
-		);
-		for (int i = 0 ; i < sources.length ; i++) {
-			sourcesAsCharArrays[i] = sources[i].toCharArray();
-		}
-		waitUntilIndexesReady();
-		this.workingCopies = new IJavaScriptUnit[3];
-		this.wcOwner = new WorkingCopyOwner() {};
-
-		// Get first working copy and verify that there's no error
-		this.problemRequestor.initialize(sourcesAsCharArrays[0]);
-		this.workingCopies[0] = getCompilationUnit("/P1/X.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertNoProblem(sourcesAsCharArrays[0], this.workingCopies[0]);
-
-		// Get second working copy and verify that there's no error
-		this.problemRequestor.initialize(sourcesAsCharArrays[1]);
-		this.workingCopies[1] = getCompilationUnit("/P2/I.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertNoProblem(sourcesAsCharArrays[1], this.workingCopies[1]);
-
-		// Get third working copy and verify that all expected errors are here
-		this.problemRequestor.initialize(sourcesAsCharArrays[2]);
-		this.workingCopies[2] = getCompilationUnit("/P3/Y.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertProblems("Working copy should have problems:",
-			"----------\n" + 
-			"1. ERROR in /P3/Y.java (at line 1)\n" + 
-			"	class Y implements I {\n" + 
-			"	      ^\n" +
-// we miss the first diagnostic - see justification in bugzilla
-//			"The type Y must implement the inherited abstract method I.bar(X)\n" + 
-//			"----------\n" + 
-//			"2. ERROR in /P3/Y.java (at line 1)\n" + 
-//			"	class Y implements I {\n" + 
-//			"	      ^\n" + 
-			"The type Y must implement the inherited abstract method I.foo()\n" + 
-			"----------\n"
-		);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-		deleteProject("P3");
-	}
-}
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=107931
-// variant: having all needed projects on the classpath solves the issue
-public void test1002() throws CoreException, InterruptedException, IOException {
-	try {
-		// Resources creation
-		String sources[] = new String[3];
-		char[] sourcesAsCharArrays[] = new char[3][];
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL_LIB"});
-		sources[0] = "class X {}\n";
-		createFile(
-			"/P1/X.js", 
-			sources[0]
-		);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" });
-		sources[1] = 
-			"interface I {\n" +
-			"  void foo();\n" +
-			"  void bar(X p);\n" +
-			"}\n";
-		createFile(
-			"/P2/I.js",
-			sources[1]
-		);
-		createJavaProject("P3", new String[] {""}, new String[] {"JCL_LIB"}, new String[] { "/P1" /* compare with test1001 */, "/P2" });
-		sources[2] = 
-			"class Y implements I {\n" +
-			"  // public void foo() { }\n" +
-			"  // public void bar(X p) { }\n" +
-			"}\n";
-		createFile(
-			"/P3/Y.js",
-			sources[2]
-		);
-		for (int i = 0 ; i < sources.length ; i++) {
-			sourcesAsCharArrays[i] = sources[i].toCharArray();
-		}
-		waitUntilIndexesReady();
-		this.workingCopies = new IJavaScriptUnit[3];
-		this.wcOwner = new WorkingCopyOwner() {};
-
-		// Get first working copy and verify that there's no error
-		this.problemRequestor.initialize(sourcesAsCharArrays[0]);
-		this.workingCopies[0] = getCompilationUnit("/P1/X.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertNoProblem(sourcesAsCharArrays[0], this.workingCopies[0]);
-
-		// Get second working copy and verify that there's no error
-		this.problemRequestor.initialize(sourcesAsCharArrays[1]);
-		this.workingCopies[1] = getCompilationUnit("/P2/I.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertNoProblem(sourcesAsCharArrays[1], this.workingCopies[1]);
-
-		// Get third working copy and verify that all expected errors are here
-		this.problemRequestor.initialize(sourcesAsCharArrays[2]);
-		this.workingCopies[2] = getCompilationUnit("/P3/Y.js").getWorkingCopy(new WorkingCopyOwner() {}, null);
-		assertProblems("Working copy should have problems:",
-			"----------\n" + 
-			"1. ERROR in /P3/Y.java (at line 1)\n" + 
-			"	class Y implements I {\n" + 
-			"	      ^\n" + 
-			"The type Y must implement the inherited abstract method I.bar(X)\n" + 
-			"----------\n" + 
-			"2. ERROR in /P3/Y.java (at line 1)\n" + 
-			"	class Y implements I {\n" + 
-			"	      ^\n" + 
-			"The type Y must implement the inherited abstract method I.foo()\n" + 
-			"----------\n"
-		);
-	} finally {
-		deleteProject("P1");
-		deleteProject("P2");
-		deleteProject("P3");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RenameTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RenameTests.java
deleted file mode 100644
index 0f12206..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RenameTests.java
+++ /dev/null
@@ -1,875 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.jsdt.core.*;
-
-public class RenameTests extends CopyMoveTests {
-	IJavaScriptUnit cu;
-/**
- */
-public RenameTests(String name) {
-	super(name);
-}
-/**
- * Attempts to rename the elements with optional 
- * forcing. The operation should fail with the failure code.
- */
-public void renameNegative(IJavaScriptElement[] elements ,String[] renamings, boolean force, int failureCode) {
-	try {
-		//rename
-	 	getJavaModel().rename(elements, new IJavaScriptElement[]{elements[0].getParent()}, renamings, force, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Code not correct for JavaScriptModelException: "  + jme, jme.getStatus().getCode() == failureCode); 
-		return;
-	}
-	assertTrue("The rename should have failed for multiple renaming", false);
-	return;
-}
-/**
- * Attempts to rename the element with optional 
- * forcing. The operation should fail with the failure code.
- */
-public void renameNegative(IJavaScriptElement element, String rename, boolean force, int failureCode) {
-	try {
-		//rename
-		getJavaModel().rename(new IJavaScriptElement[] {element}, new IJavaScriptElement[] {element.getParent()}, new String[] {rename}, force, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Code not correct for JavaScriptModelException: " + jme, jme.getStatus().getCode() == failureCode);
-		return;
-	}
-	assertTrue("The rename should have failed for: " + element, false);
-	return;
-}
-/**
- * Renames the element to the container with optional 
- * forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void renamePositive(IJavaScriptElement[] elements, String[] names, boolean force) throws JavaScriptModelException {
-	renamePositive(elements, new IJavaScriptElement[]{elements[0].getParent()}, names, force);
-}
-/**
- * Renames the element to the container with optional 
- * forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void renamePositive(IJavaScriptElement[] elements, IJavaScriptElement[] destinations, String[] names, boolean force) throws JavaScriptModelException {
-	renamePositive(elements, destinations, names, force, false);
-}
-/**
- * Renames the element to the container with optional 
- * forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void renamePositive(IJavaScriptElement[] elements, IJavaScriptElement[] destinations, String[] names, boolean force, boolean originalShouldExist) throws JavaScriptModelException {
-	renamePositive(elements, destinations, names, force, originalShouldExist, null);
-}
-/**
- * Renames the element to the container with optional 
- * forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void renamePositive(IJavaScriptElement[] elements, IJavaScriptElement[] destinations, String[] names, boolean force, boolean originalShouldExist, IProgressMonitor monitor) throws JavaScriptModelException {
-	// if forcing, ensure that a name collision exists
-	int i;
-	if (force) {
-		for (i = 0; i < elements.length; i++) {
-			IJavaScriptElement e = elements[i];
-			IJavaScriptElement collision = generateHandle(e, names[i], e.getParent());
-			assertTrue("Collision does not exist", collision.exists());
-		}
-	}
-
-	// rename
-	getJavaModel().rename(elements, destinations, names, force, monitor);
-	for (i = 0; i < elements.length; i++) {
-		// generate the new element	handle
-		IJavaScriptElement e = elements[i];
-		IJavaScriptElement renamed = generateHandle(e, names[i], e.getParent());
-		assertTrue("Renamed element should exist", renamed.exists());
-		if (!originalShouldExist) {
-			assertTrue("Original element should not exist", !e.exists());
-		}
-		IJavaScriptElementDelta destDelta = getDeltaFor(renamed.getParent());
-		if (isMainType(e, e.getParent())) {
-			assertTrue("Renamed compilation unit as result of main type not added", destDelta != null && destDelta.getKind() == IJavaScriptElementDelta.ADDED);
-			assertTrue("Added children not correct for element copy", destDelta.getElement().equals(renamed.getParent()));
-			assertTrue("flag should be F_MOVED_FROM", (destDelta.getFlags() & IJavaScriptElementDelta.F_MOVED_FROM) > 0);
-			assertTrue("moved from handle should be original", destDelta.getMovedFromElement().equals(e.getParent()));
-		} else {
-			assertTrue("Destination container not changed", destDelta != null && deltaChildrenChanged(destDelta));
-			IJavaScriptElementDelta[] deltas = destDelta.getAddedChildren();
-			assertTrue("Added children not correct for element rename", deltas.length > i && deltas[i].getElement().equals(renamed));
-			assertTrue("kind should be K_ADDED", deltas[i].getKind() == IJavaScriptElementDelta.ADDED);
-			deltas = destDelta.getRemovedChildren();
-			assertTrue("Removed children not correct for element rename", deltas.length > i && deltas[i].getElement().equals(e));
-			assertTrue("kind should be K_REMOVED", deltas[i].getKind() == IJavaScriptElementDelta.REMOVED);
-		}
-	}
-}
-/**
- * Renames the element to the container with optional 
- * forcing. The operation should succeed, so any exceptions
- * encountered are thrown.
- */
-public void renamePositive(IJavaScriptElement element, String rename, boolean force) throws JavaScriptModelException {
-	renamePositive(new IJavaScriptElement[] {element}, new String[] {rename}, force);
-}
-/**
- * Setup for the next test.
- */
-public void setUp() throws Exception {
-	super.setUp();
-
-	this.createJavaProject("P", new String[] {"src"});
-	this.createFile(
-		"/P/src/X.js",
-		"public class X {\n" +
-		"  boolean other;\n" +
-		"  int bar;\n" +
-		"  {\n" +
-		"    bar = 1;\n" +
-		"  }\n" +
-		"  X(int i) {\n" +
-		"  }\n" +
-		"  void otherMethod(String s) {\n" +
-		"  }\n" +
-		"  void foo(String s) {\n" +
-		"  }\n" +
-		"}"
-	);
-	this.cu = getCompilationUnit("/P/src/X.js");
-	
-	startDeltas();
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	IJavaScriptProject project = this.createJavaProject("BinaryProject", new String[] {"src"}, new String[] {"JCL_LIB"});
-	this.createFile(
-		"/BinaryProject/src/X.js",
-		"public class X {\n" +
-		"  int bar;\n" +
-		"  public void foo() {\n" +
-		"  }\n" +
-		"}"
-	);
-	project.getProject().build(IncrementalProjectBuilder.FULL_BUILD, null);
-	waitForAutoBuild();
-	project.setRawIncludepath(
-		new IIncludePathEntry[] {
-			JavaScriptCore.newLibraryEntry(new Path("/BinaryProject/lib"), null, null)
-		},
-		null
-	);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-	// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//		TESTS_PREFIX = "testCombineAccessRestrictions";
-//		TESTS_NAMES = new String[] {"testRenameFieldFragment"};
-//		TESTS_NUMBERS = new int[] { 5, 6 };
-//		TESTS_RANGE = new int[] { 21, 38 };
-}
-public static Test suite() {
-	return buildModelTestSuite(RenameTests.class);
-}
-/**
- * Cleanup after the previous test.
- */
-public void tearDown() throws Exception {
-	stopDeltas();
-	this.deleteProject("P");
-
-	super.tearDown();
-}
-public void tearDownSuite() throws Exception {
-	this.deleteProject("BinaryProject");
-	super.tearDownSuite();
-}
-/**
- * Ensures that a binary field cannot be renamed.
- */
-public void testRenameBinaryField() throws JavaScriptModelException {
-	IClassFile cf = getClassFile("BinaryProject", "lib", "", "X.class");
-	IField binaryField = cf.getType().getField("bar");
-	renameNegative(binaryField, "fred", false, IJavaScriptModelStatusConstants.READ_ONLY);
-}
-/**
- * Ensures that a binary method cannot be renamed.
- */
-public void testRenameBinaryMethod() throws JavaScriptModelException {
-	IClassFile cf = getClassFile("BinaryProject", "lib", "", "X.class");
-	IFunction binaryMethod = cf.getType().getFunctions()[0];
-	renameNegative(binaryMethod, "fred", false, IJavaScriptModelStatusConstants.READ_ONLY);
-}
-/**
- * Ensures that a binary type cannot be renamed.
- */
-public void testRenameBinaryType() throws JavaScriptModelException {
-	IClassFile cf = getClassFile("BinaryProject", "lib", "", "X.class");
-	IType binaryType = cf.getType();
-	renameNegative(binaryType, "Y", false, IJavaScriptModelStatusConstants.READ_ONLY);
-}
-
-/**
- * This operation should fail as renaming a CU and a CU member at the
- * same time is not supported.
- */
-public void testRenameCompilationUnitAndType() {
-	renameNegative(
-		new IJavaScriptElement[] {this.cu, this.cu.getType("X")}, 
-		new String[]{"Y.js", "Y"}, 
-		false, 
-		IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-}
-/**
- * Ensures that compilation units cannot be renamed to an existing cu name
- * unless the force flag is set.
- */
-public void testRenameCompilationUnitResultingInCollision() throws CoreException{
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	
-	renameNegative(this.cu, "Y.js", false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-	renamePositive(this.cu, "Y.js", true);
-}
-/**
- * Ensures that compilation units can be renamed.
- * Verifies that the proper change deltas are generated as a side effect
- * of running the operation.
- */
-public void testRenameCompilationUnitsCheckingDeltas() throws CoreException{
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-	IJavaScriptUnit cu2 = this.getCompilationUnit("/P/src/Y.js");
-	
-	clearDeltas();
-	renamePositive(
-		new IJavaScriptUnit[] {this.cu, cu2}, 
-		new String[] {"NewX.js", "NewY.js"}, 
-		false);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		<default>[*]: {CHILDREN}\n" + 
-		"			NewX.java[+]: {MOVED_FROM(X.java [in <default> [in src [in P]]])}\n" + 
-		"			NewY.java[+]: {MOVED_FROM(Y.java [in <default> [in src [in P]]])}\n" + 
-		"			X.java[-]: {MOVED_TO(NewX.java [in <default> [in src [in P]]])}\n" + 
-		"			Y.java[-]: {MOVED_TO(NewY.java [in <default> [in src [in P]]])}"
-	);
-}
-/**
- * Ensures that a compilation unit cannot be renamed to an invalid name.  
- * The new name for a cu must end in .java and be a valid Java identifier.
- */
-public void testRenameCompilationUnitWithInvalidName() {
-	renameNegative(this.cu, "NewX", false, IJavaScriptModelStatusConstants.INVALID_NAME);
-	renameNegative(this.cu, "New X.js", false, IJavaScriptModelStatusConstants.INVALID_NAME);
-}
-/**
- * This operation should fail as renaming a CU with a null name should throw
- * an <code>IllegalArgumentException</code>
- */
-public void testRenameCompilationUnitWithNull() throws JavaScriptModelException {
-	try {
-		this.cu.rename(null, false, null);
-	} catch (IllegalArgumentException iae) {
-		return;
-	}
-	assertTrue("Should not be able to rename a cu with a null name", false);
-}
-/**
- * Ensures that a construtor cannot be renamed using the
- * <code>RenameElementsOperation</code>.  
- */
-public void testRenameConstructor() {
-	IFunction constructor = this.cu.getType("X").getFunction("X",  new String[] {"I"});
-	renameNegative(constructor, "newName", false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-
-/**
- * 
- */
-public void testRenameCU() throws CoreException {
-	this.cu.rename("NewX.js", false, null);
-	assertTrue("Original CU should not exist", !cu.exists());
-
-	IJavaScriptUnit newCU = getCompilationUnit("/P/src/NewX.js");
-	assertTrue("New CU should exist", newCU.exists());
-	
-	assertTypesEqual(
-		"Unexpected types",
-		"NewX\n",
-		newCU.getAllTypes());
-
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		<default>[*]: {CHILDREN}\n" + 
-		"			NewX.java[+]: {MOVED_FROM(X.java [in <default> [in src [in P]]])}\n" + 
-		"			X.java[-]: {MOVED_TO(NewX.java [in <default> [in src [in P]]])}"
-	);
-}
-public void testRenameCUForce() throws CoreException {
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"}"
-	);
-
-	clearDeltas();
-	this.cu.rename("Y.js", true, null);
-
-	IFile file = (IFile)this.cu.getResource();
-	IJavaScriptUnit destCU = getCompilationUnit("/P/src/Y.js");
-	IFile destFile = (IFile)destCU.getResource();
-
-	assertTrue("Original CU should not exist", !cu.exists());
-	assertTrue("Original file should not exist", !file.exists());
-	assertTrue("Destination CU should exist", destCU.exists());
-	assertTrue("Destination file should exist", destFile.exists());
-	
-	assertTypesEqual(
-		"Unexpected types",
-		"Y\n",
-		destCU.getAllTypes());
-
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		<default>[*]: {CHILDREN}\n" + 
-		"			X.java[-]: {MOVED_TO(Y.java [in <default> [in src [in P]]])}\n" + 
-		"			Y.java[+]: {MOVED_FROM(X.java [in <default> [in src [in P]]])}"
-	);
-}
-/*
- * Ensures that renaming an empty package fragment doesn't make it disappear
- * (regression test for bug 24505 Refactoring an empty package makes it disappears)
- */
-public void testRenameEmptyPF() throws CoreException {
-	this.createFolder("/P/src/x/y/z");
-
-	clearDeltas();
-	getPackage("/P/src/x/y/z").rename("x.y", false, null);
-	
-	IPackageFragment newFrag = getPackage("/P/src/x/y");
-	assertTrue("New package should exist", newFrag.exists());
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		x.y[+]: {MOVED_FROM(x.y.z [in src [in P]])}\n" + 
-		"		x.y.z[-]: {MOVED_TO(x.y [in src [in P]])}"
-	);
-}
-/*
- * Ensures that renaming an enum also renames the constructors of this enum.
- * (regression test for bug 83593 Rename of enum type does not update constructor / throws ClassCastException)
- */
-public void testRenameEnum() throws CoreException {
-	try {
-		createJavaProject("P15", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-		createFile(
-			"/P15/En.js",
-			"public enum En {\n" +
-			"  ;\n" +
-			"  En() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit enumCU = getCompilationUnit("/P15/En.js");
-		enumCU.rename("OtherEnum.js", false, null);
-		IJavaScriptUnit renamedCu = getCompilationUnit("/P15/OtherEnum.js");
-		assertSourceEquals(
-			"Unexpected source after rename",
-			"public enum OtherEnum {\n" +
-			"  ;\n" +
-			"  OtherEnum() {\n" +
-			"  }\n" +
-			"}",
-			renamedCu.getSource()
-		);
-	} finally {
-		deleteProject("P15");
-	}
-}
-/*
- * Ensures that renaming an enum that contain an enum constant with a body doesn't throw a ClassCastExeption.
- * (regression test for bug 83593 Rename of enum type does not update constructor / throws ClassCastException)
- */
-public void testRenameEnum2() throws CoreException {
-	try {
-		createJavaProject("P15", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-		createFile(
-			"/P15/En.js",
-			"public enum En {\n" +
-			"  CONST() {\n" +
-			"  }\n" +
-			"}"
-		);
-		IJavaScriptUnit enumCU = getCompilationUnit("/P15/En.js");
-		enumCU.rename("OtherEnum.js", false, null);
-		IJavaScriptUnit renamedCu = getCompilationUnit("/P15/OtherEnum.js");
-		assertSourceEquals(
-			"Unexpected source after rename",
-			"public enum OtherEnum {\n" +
-			"  CONST() {\n" +
-			"  }\n" +
-			"}",
-			renamedCu.getSource()
-		);
-	} finally {
-		deleteProject("P15");
-	}
-}
-/**
- * Ensures that fields can be renamed.  
- * Verifies that the proper change deltas are generated as a side effect
- * of running the operation. As well ensures that the fields are
- * positioned in the same location as before the rename.
- */
-public void testRenameFieldsCheckingDeltasAndPositions() throws JavaScriptModelException {
-	IType type = this.cu.getType("X");
-	IField field = type.getField("bar");
-	renamePositive(field, "fred", false);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		<default>[*]: {CHILDREN}\n" + 
-		"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-		"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"					bar[-]: {}\n" + 
-		"					fred[+]: {}"
-	);
-	ensureCorrectPositioning(type, type.getField("fred"), type.getField("other"));
-}
-/*
- * Ensures that renaming a field fragment renames the right fragment
- * (regression test for bug 121076 Wrong field gets renamed)
- */
-public void testRenameFieldFragment() throws Exception {
-     this.createFile(
-            "/P/src/Y.js",
-            "public class Y {\n" +
-            "  int int1, int2, int3;\n" +
-            "}"
-    );
-    IJavaScriptUnit c = getCompilationUnit("/P/src/Y.js");
-    IType type = c.getType("Y");
-    IField field = type.getField("int2");
-    renamePositive(field, "int2_renamed", false);
-}
-/**
- * Ensures that fields can be renamed even if one of the renamings fails.  
- */
-public void testRenameFieldsMultiStatus() throws CoreException {
-	String addition = "multiStatus";
-	IType type = this.cu.getType("X");
-	IField[] iFields = type.getFields();
-	String[] newNames = new String[iFields.length];
-	int i;
-	for (i = 0; i < iFields.length; i++) {
-		IField f = iFields[i];
-		newNames[i] = addition + f.getElementName();
-	}
-	newNames[1] = ";"; //invalid name
-
-	boolean e = false;
-	try {
-		type.getJavaScriptModel().rename(iFields, new IJavaScriptElement[] {type}, newNames, false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Should not be multistatus (only one failure)", !jme.getStatus().isMultiStatus());
-		assertTrue("Should be an invalid destination", jme.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_NAME);
-		e = true;
-	}
-	assertTrue("Should have been an exception", e);
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		<default>[*]: {CHILDREN}\n" + 
-		"			X.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-		"				X[*]: {CHILDREN | FINE GRAINED}\n" + 
-		"					multiStatusother[+]: {}\n" + 
-		"					other[-]: {}"
-	);
-	
-	IJavaScriptElement copy = generateHandle(iFields[0], newNames[0], type);
-	assertTrue("Copy should exist", copy.exists());
-}
-/**
- * Ensures that fields cannot be renamed to the same name.
- */
-public void testRenameFieldsResultingInCollision() throws JavaScriptModelException {
-	String addition = "new";
-	IType type= this.cu.getType("X");
-	IField[] iFields = type.getFields();
-	String[] newNames = new String[iFields.length];
-	int i;
-	for (i = 0; i < iFields.length; i++) {
-		IField f = iFields[i];
-		newNames[i] = addition + f.getElementName();
-	}
-	//set two fields to have the same new name
-	newNames[i-1]= newNames[i-2];
-
-	renameNegative(iFields, newNames, false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-/**
- * Ensures that renaming can be canceled.
- */
-public void testRenameFieldsWithCancel() throws CoreException {
-	boolean isCanceled = false;
-	String addition = "new1";
-	IType type = RenameTests.this.cu.getType("X");
-	IField[] iFields = type.getFields();
-	String[] newNames = new String[iFields.length];
-	int i;
-	for (i = 0; i < iFields.length; i++) {
-		IField f = iFields[i];
-		newNames[i] = addition + f.getElementName();
-	}
-	try {
-		TestProgressMonitor monitor = TestProgressMonitor.getInstance();
-		monitor.setCancelledCounter(1);
-		renamePositive(iFields, new IJavaScriptElement[] {type}, newNames, false, false, monitor);
-	} catch (OperationCanceledException e) {
-		isCanceled = true;
-	}
-	assertTrue("Operation should have thrown an operation canceled exception", isCanceled);
-}
-/**
- * Ensures that an initializer cannot be renamed.
- */
-public void testRenameInitializer() {
-	IType typeSource= this.cu.getType("X");
-	IInitializer initializerSource= typeSource.getInitializer(1);
-
-	renameNegative(initializerSource, "someName", false, IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-}
-/**
- * Ensures that main types can be renamed. As a side effect
- * of renaming the main types, the types' enclosing compilation unit
- * are renamed as well.
- */
-public void testRenameMainTypes() throws CoreException {
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  public Y() {\n" +
-		"  }\n" +
-		"}"
-	);
-	IJavaScriptUnit cu2 = getCompilationUnit("/P/src/Y.js");
-	IPackageFragment pkg = (IPackageFragment) this.cu.getParent();
-
-	IJavaScriptElement[] types = new IJavaScriptElement[] {
-		this.cu.getType("X"),
-		cu2.getType("Y")
-	};
-	String[] newNames = new String[] {"NewX", "NewY"};
-	renamePositive(
-		new IJavaScriptElement[] {
-			this.cu.getType("X"),
-			cu2.getType("Y")
-		}, 
-		new IJavaScriptElement[] {
-			types[0].getParent(), 
-			types[1].getParent()}, 
-		newNames, 
-		false);
-
-	//test that both the compilation unit, main type and constructors have been renamed.
-	IJavaScriptUnit renamedCU1= pkg.getJavaScriptUnit("NewX.js");
-	IJavaScriptUnit renamedCU2= pkg.getJavaScriptUnit("NewY.js");
-	IType newType1 = renamedCU1.getType("NewX");
-	IType newType2 = renamedCU2.getType("NewY");
-	assertTrue("NewX should be present", newType1.exists());
-	assertTrue("NewY should be present", newType2.exists());
-	
-	IFunction constructor1 = newType1.getFunction("NewX", new String[] {"I"});
-	IFunction constructor2 = newType2.getFunction("NewY", new String[] {});
-	assertTrue("NewX(int) should be present", constructor1.exists());
-	assertTrue("NewY() should be present", constructor2.exists());
-}
-/**
- * Ensures that main types can be renamed as well as a child of a main type. As a side effect
- * of renaming the main types, the types enclosing compilation unit
- * are renamed as well.
- * @see "1FTKMBD: ITPJCORE:ALL - JM- Cannot rename parent and child with the same operation"
- */
-public void testRenameMainTypesAndAChild() throws CoreException {
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  public Y() {\n" +
-		"  }\n" +
-		"}"
-	);
-	IJavaScriptUnit cu2 = getCompilationUnit("/P/src/Y.js");
-
-	String[] newNames = new String[] {
-		"newBar",
-		"NewX",
-		"NewY"
-	};
-	IJavaScriptElement[] elements = new IJavaScriptElement[] {
-		this.cu.getType("X").getField("bar"),
-		this.cu.getType("X"),
-		cu2.getType("Y")
-	};
-	IJavaScriptElement[] destinations = new IJavaScriptElement[elements.length];
-	for (int i = 0; i < elements.length; i++) {
-		destinations[i] = elements[i].getParent();
-	}
-	
-	getJavaModel().rename(elements, destinations, newNames, false, null);
-
-	//test that both the compilation unit and the main type have been renamed.
-	IPackageFragment pkg = (IPackageFragment) this.cu.getParent();
-	IJavaScriptUnit renamedCU1= pkg.getJavaScriptUnit("NewX.js");
-	IType newX = renamedCU1.getType("NewX");
-	assertTrue("NewX should be present", newX.exists());
-	
-	IJavaScriptUnit renamedCU2= pkg.getJavaScriptUnit("NewY.js");
-	IType newY = renamedCU2.getType("NewY");
-	assertTrue("NewY should be present", newY.exists());
-	
-	IField newBar = newX.getField("newBar");
-	assertTrue("Renamed field should exist", newBar.exists());
-}
-/**
- * Ensures that a method can be renamed.
- */
-public void testRenameMethod() throws JavaScriptModelException {
-	IType type = this.cu.getType("X");
-	IFunction method = type.getFunction("foo", new String[] {"QString;"});
-	renamePositive(method, "newFoo", false);
-	
-	//ensure that the method did not move as a result of the rename
-	ensureCorrectPositioning(
-		type, 
-		type.getFunction("newFoo", new String[] {"QString;"}), 
-		type.getFunction("otherMethod", new String[] {"QString;"}));
-}
-/**
- * Ensures that a method cannot be renamed to an existing method name.
- */
-public void testRenameMethodResultingInCollision() {
-	IType type = this.cu.getType("X");
-	IFunction method = type.getFunction("foo", new String[] {"QString;"});
-	renameNegative(method, "otherMethod", false, IJavaScriptModelStatusConstants.NAME_COLLISION);
-}
-/**
- * Ensures that a method cannot be renamed to an invalid method name
- */
-public void testRenameMethodsWithInvalidName() {
-	IFunction method = this.cu.getType("X").getFunction("foo", new String[] {"QString;"});
-	renameNegative(method, "%%someInvalidName", false, IJavaScriptModelStatusConstants.INVALID_NAME);
-}
-public void testRenamePF() throws CoreException {
-	this.createFolder("/P/src/x/y/z");
-	this.createFile(
-		"/P/src/x/y/z/A.js",
-		"package x.y.z;\n" +
-		"public class A {\n" +
-		"}"
-	);
-
-	IPackageFragment frag = getPackage("/P/src/x/y/z");
-	clearDeltas();
-	frag.rename("x.y.newZ", false, null);
-	
-	IPackageFragment newFrag = getPackage("/P/src/x/y/newZ");
-	assertTrue("Old package should not exist", !frag.exists());
-	assertTrue("New package should exist", newFrag.exists());
-
-	IJavaScriptUnit compilationUnit = newFrag.getJavaScriptUnit("A.js");
-	assertTrue("A.java should exits in new package", compilationUnit.exists());
-	
-	IType[] types = compilationUnit.getTypes();
-	assertTrue(types != null && types.length == 1);
-	IType mainType = types[0];
-	assertEquals(
-		"Unexpected A.java's main type'", 
-		"x.y.newZ.A",
-		mainType.getFullyQualifiedName());
-
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		x.y.newZ[+]: {MOVED_FROM(x.y.z [in src [in P]])}\n" + 
-		"		x.y.z[-]: {MOVED_TO(x.y.newZ [in src [in P]])}"
-	);
-}
-/*
- * Ensures that renaming to a name containing spaces works
- * (regression test for bug 21957 'refactor rename' allows subpackage name to start with a space)
- */
-public void testRenamePF2() throws CoreException {
-	this.createFolder("/P/src/x/y/z");
-	this.createFile(
-		"/P/src/x/y/z/A.js",
-		"package x.y.z;\n" +
-		"public class A {\n" +
-		"}"
-	);
-
-	IPackageFragment frag = getPackage("/P/src/x/y/z");
-	clearDeltas();
-	frag.rename("x.y. z2", false, null);
-	
-	IPackageFragment newFrag = getPackage("/P/src/x/y/z2");
-	assertTrue("Old package should not exist", !frag.exists());
-	assertTrue("New package should exist", newFrag.exists());
-
-	IJavaScriptUnit compilationUnit = newFrag.getJavaScriptUnit("A.js");
-	assertTrue("A.java should exits in new package", compilationUnit.exists());
-	
-	IType[] types = compilationUnit.getTypes();
-	assertTrue(types != null && types.length == 1);
-	IType mainType = types[0];
-	assertEquals(
-		"Unexpected A.java's main type'", 
-		"x.y.z2.A",
-		mainType.getFullyQualifiedName());
-
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		x.y.z[-]: {MOVED_TO(x.y.z2 [in src [in P]])}\n" + 
-		"		x.y.z2[+]: {MOVED_FROM(x.y.z [in src [in P]])}"
-	);
-}
-/*
- * Ensure that renaming a package to a sub package and using IJavaScriptProject#findType(...) in a IWorskpaceRunnable
- * finds the right type
- * (regression test for bug 83646 NPE renaming package)
- */
-public void testRenamePF3() throws CoreException {
-	createFolder("/P/src/x");
-	createFile(
-		"/P/src/x/A.js",
-		"package x;\n" +
-		"public class A {\n" +
-		"}"
-	);
-	IWorkspaceRunnable runnable = new IWorkspaceRunnable(){
-		public void run(IProgressMonitor monitor) throws CoreException {
-			getPackage("/P/src/x").rename("x.y", false, null);
-			IType type = getJavaProject("P").findType("x.y.A");
-			assertTypesEqual(
-				"Unepected type",
-				"x.y.A\n",
-				new IType[] {type});
-		}
-	};
-	getWorkspace().run(runnable, null);
-}
-public void testRenamePFWithSubPackages() throws CoreException {
-	this.createFolder("/P/src/x/y/z");
-	this.createFile(
-		"/P/src/x/y/z/A.js",
-		"package x.y.z;\n" +
-		"public class A {\n" +
-		"}"
-	);
-
-	clearDeltas();
-	getPackage("/P/src/x").rename("newX", false, null);
-	
-	IPackageFragment oldFrag = getPackage("/P/src/x/y/z");
-	assertTrue("Old inner package should still exist", oldFrag.exists());
-
-	IPackageFragment newFrag = getPackage("/P/src/newX");
-	assertTrue("New package should exist", newFrag.exists());
-
-	IJavaScriptUnit compilationUnit = oldFrag.getJavaScriptUnit("A.js");
-	assertTrue("A.java should exits in old inner package", compilationUnit.exists());
-	
-	assertDeltas(
-		"Unexpected deltas",
-		"P[*]: {CHILDREN}\n" + 
-		"	src[*]: {CHILDREN}\n" + 
-		"		newX[+]: {}"
-	);
-}
-/**
- * Ensures that a method can be renamed if it contains syntax errors.
- */
-public void testRenameSyntaxErrorMethod() throws CoreException {
-	this.createFile(
-		"/P/src/Y.js",
-		"public class Y {\n" +
-		"  void foo( {\n" + // syntax error
-		"  }\n" +
-		"}"
-	);
-	IFunction method = getCompilationUnit("/P/src/Y.js").getType("Y").getFunction("foo", null);
-	renamePositive(method, "newFoo", false);
-}
-/**
- * Ensures that attempting to rename with an incorrect number of renamings fails
- */
-public void testRenameWithInvalidRenamings() {
-	IFunction method = getCompilationUnit("/P/src/X.js").getType("X").getFunction("foo", null);
-
-	renameNegative(
-		new IJavaScriptElement[] {method}, 
-		new String[]{"", ""}, 
-		false, 
-		IJavaScriptModelStatusConstants.INDEX_OUT_OF_BOUNDS);
-
-	renameNegative(
-		new IJavaScriptElement[] {method}, 
-		null, 
-		false, 
-		IJavaScriptModelStatusConstants.NULL_NAME);
-}
-/**
- * Ensures that a working copy cannot be renamed.
- */
-public void testRenameWorkingCopy() throws JavaScriptModelException {
-	IJavaScriptUnit copy = null;
-	try {
-		copy = this.cu.getWorkingCopy(null);
-		renameNegative(copy, "NewX", false, IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-	}
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ResolveTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ResolveTests.java
deleted file mode 100644
index 655f1c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ResolveTests.java
+++ /dev/null
@@ -1,2113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.ILocalVariable;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-
-public class ResolveTests extends AbstractJavaModelTests {
-	IJavaScriptUnit wc = null;
-	WorkingCopyOwner owner = null; 
-
-static {
-//	TESTS_NAMES = new String[] { "testSecondaryTypes" };
-}
-public static Test suite() {
-	return buildModelTestSuite(ResolveTests.class);
-}
-
-public ResolveTests(String name) {
-	super(name);
-}
-public IJavaScriptUnit getWorkingCopy(String path, String source) throws JavaScriptModelException {
-	return super.getWorkingCopy(path, source, this.owner, null);
-}
-private IJavaScriptElement[] select(String path, String source, String selection) throws JavaScriptModelException {
-	this.wc = getWorkingCopy(path, source);
-	String str = wc.getSource();
-	int start = str.lastIndexOf(selection);
-	int length = selection.length();
-	return wc.codeSelect(start, length, this.owner);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	setUpJavaProject("Resolve");
-}
-protected void setUp() throws Exception {
-	super.setUp();
-	
-	this.owner = new WorkingCopyOwner(){};
-}
-
-public void tearDownSuite() throws Exception {
-	deleteProject("Resolve");
-	
-	super.tearDownSuite();
-}
-protected void tearDown() throws Exception {
-	if(this.wc != null) {
-		this.wc.discardWorkingCopy();
-	}
-	super.tearDown();
-}
-/**
- * Resolve default abstract method
- * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=23594
- */
-//public void testAbstractMethod() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveAbstractMethod.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "foo", "foo");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"foo() [in SuperInterface [in SuperInterface.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=165900
-public void testAmbiguousMethod1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Resolve/src/test/Test.java",
-		"package test;\n"+
-		"public class Test {\n" + 
-		"  void foo(Test1 t) {}\n" + 
-		"  void foo(Test2 t) {}\n" + 
-		"  void bar(Object o) {\n" + 
-		"    foo(o);\n" + 
-		"  }\n" + 
-		"}\n" + 
-		"class Test1 {\n" + 
-		"}\n" + 
-		"class Test2 {\n" + 
-		"}");
-
-	String str = this.workingCopies[0].getSource();
-	int start = str.lastIndexOf("foo(o)");
-	int length = "foo".length();
-	IJavaScriptElement[] elements =  this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"foo(Test1) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]",
-			elements
-		);
-}
-
-/**
- * Resolve an argument name
- */
-public void testArgumentName1() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveArgumentName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var1", "var1");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var1 [in foo(p0, p1) [in ResolveArgumentName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve an argument name with base type
- */
-public void testArgumentName2() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveArgumentName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var2", "var2");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var2 [in foo(p0, p1) [in ResolveArgumentName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve the field "length" of an array
- */
-public void testArrayLength() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveArrayLength.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "length", "length");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"",
-//		elements
-//	);
-	assertTrue("implement?",false);
-}
-
-/**
- * Resolve an argument name inside catch statement
- */
-public void testCatchArgumentName1() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveCatchArgumentName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var1", "var1");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var1 [in foo() [in ResolveCatchArgumentName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve an argument name inside catch statement with base type
- */
-public void testCatchArgumentName2() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveCatchArgumentName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var2", "var2");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var2 [in foo() [in ResolveCatchArgumentName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-///**
-// * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=24626
-// */
-//public void testCatchArgumentType1() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveCatchArgumentType1.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Y1", "Y1");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Y1 [in X1 [in X1.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-//}
-///**
-// * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=24626
-// */
-//public void testCatchArgumentType2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveCatchArgumentType2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Y1", "Y1");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Y1 [in X1 [in X1.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-//}
-/**
- * Resolve the class 'X' (field type).
- */
-public void testClass1() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass1.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"X [in X.js [in p1 [in src [in Resolve]]]]",
-//		elements
-//	);
-	assertTrue("implement?",false);
-}
-/**
- * Resolve the class 'X' (local variable type).
- */
-public void testClass2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"X [in X.js [in p1 [in src [in Resolve]]]]",
-//		elements
-//	);
-	assertTrue("implement?",false);
-}
-/**
- * Resolve the class 'X'(array initializer type).
- */
-public void testClass3() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass3.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "X[]{", "X");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"X [in X.js [in p1 [in src [in Resolve]]]]",
-//		elements
-//	);
-	assertTrue("implement?",false);
-}
-/**
- * Resolve the class 'X' (return type).
- */
-public void testClass4() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass4.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"X [in X.js [in p1 [in src [in Resolve]]]]",
-//		elements
-//	);
-	assertTrue("implement?",false);
-}
-/**
- * Resolve the class 'X' (method argument).
- */
-public void testClass5() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass5.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"X [in X.js [in p1 [in src [in Resolve]]]]",
-//		elements
-//	);
-	assertTrue("implement?",false);
-}
-///**
-// * Resolve the class 'SuperClass' (super class).
-// */
-//public void testClass6() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass6.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"X [in X.js [in p1 [in src [in Resolve]]]]",
-//		elements
-//	);
-//}
-/**
- * Resolve a constructor
- */
-public void testConstructor() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveConstructor.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "ResolveConstructor(\"", "ResolveConstructor");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ResolveConstructor(String) [in ResolveConstructor [in ResolveConstructor.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-	assertTrue("implement?",false);
-}
-///**
-// * Resolve a constructor call
-// */
-//public void testConstructor2() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("Resolve", "class-folder", "", "ResolveConstructorCall.class");
-//	IJavaScriptElement[] elements = codeSelect(cf, "ResolveConstructorCall();", "ResolveConstructorCall");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ResolveConstructorCall() [in ResolveConstructorCall [in ResolveConstructorCall.class [in <default> [in class-folder [in Resolve]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve constructor call
-// */
-//public void testConstructorCallOfMemberType() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("Resolve", "class-folder", "", "ResolveConstructorCallOfMemberType.class");
-//	IJavaScriptElement[] elements = codeSelect(cf, "Inner()", "Inner");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Inner [in ResolveConstructorCallOfMemberType$Inner.class [in <default> [in class-folder [in Resolve]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve constructor call
-// */
-////TODO(david) enable this test when https://bugs.eclipse.org/bugs/show_bug.cgi?id=108784 will be fixed.
-//public void _testConstructorCallOfMemberType2() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("Resolve", "class-folder", "", "ResolveConstructorCallOfMemberType2.class");
-//	IJavaScriptElement[] elements = codeSelect(cf, "Inner();", "Inner");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Inner(ResolveConstructorCallOfMemberType2) [in Inner [in ResolveConstructorCallOfMemberType2$Inner.class [in <default> [in class-folder [in Resolve]]]]]",
-//		elements
-//	);
-//}
-/**
- * Resolve constructor declaration
- */
-public void testConstructorDeclaration() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveConstructorDeclaration.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "ResolveConstructorDeclaration(i", "ResolveConstructorDeclaration");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ResolveConstructorDeclaration(int) [in ResolveConstructorDeclaration [in ResolveConstructorDeclaration.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-	assertTrue("implement?",false);
-}
-///**
-// * Resolve empty selection
-// */
-//public void testEmptySelection() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveTypeEmptySelection.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "ject", "");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve empty selection
-// */
-//public void testEmptySelection2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveTypeEmptySelection2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Obj", "");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
-//		elements
-//	);
-//}
-/**
- * Resolve empty selection
- */
-public void testEmptySelectionOnMethod() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveEmptySelectionOnMethod.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "oo();", "");
-	assertElementsEqual(
-		"Unexpected elements",
-		"foo() [in ResolveEmptySelectionOnMethod.js [in <default> [in src [in Resolve]]]]",
-		elements
-	);
-}
-///**
-// * Resolse explicit super constructor call
-// */
-//public void testExplicitSuperConstructorCall() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveExplicitSuperConstructorCall.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "super(", "super");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"SuperClass(int) [in SuperClass [in SuperClass.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolse explicit this constructor call
-// */
-//public void testExplicitThisConstructorCall() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveExplicitThisConstructorCall.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "this(", "this");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ResolveExplicitThisConstructorCall() [in ResolveExplicitThisConstructorCall [in ResolveExplicitThisConstructorCall.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-//}
-/**
- * Resolve the field "foo"
- */
-public void testField() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveField.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "foo =", "foo");
-	assertElementsEqual(
-		"Unexpected elements",
-		"foo [in ResolveField.js [in <default> [in src [in Resolve]]]]",
-		elements
-	);
-}
-/**
- * Resolve the field "foo"
- */
-public void testField0() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveField0.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "foo =", "foo");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"foo [in ResolveField [in ResolveField.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-	assertTrue("implement",false);
-}
-/**
- * Resolve field declaration
- */
-public void testFieldDeclaration() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveFieldDeclaration.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "foo", "foo");
-	assertElementsEqual(
-		"Unexpected elements",
-		"foo [in ResolveFieldDeclaration.js [in <default> [in src [in Resolve]]]]",
-		elements
-	);
-}
-///**
-// * Resolve in import
-// */
-//public void testImport() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveImport.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "ImportedClass", "ImportedClass");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ImportedClass [in ImportedClass.js [in a.b [in src [in Resolve]]]]",
-//		elements
-//	);
-//}
-///**
-// * Tests code resolve on a class file without attached source.
-// */
-//public void testInClassFileWithoutSource() throws JavaScriptModelException {
-//	IClassFile cu = getClassFile("Resolve", "p4.jar", "p4", "X.class");
-//	String selection = "Object";
-//	int start = 34;
-//	int length = selection.length();
-//	IJavaScriptElement[] elements = cu.codeSelect(start, length);
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"",
-//		elements
-//	);
-//}
-///**
-// * Tests code resolve on a class file with attached source.
-// */
-//public void testInClassFileWithSource() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("Resolve", "p3.jar", "p3", "X.class");
-//	IJavaScriptElement[] elements = codeSelect(cf, "Object", "Object");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
-//		elements
-//	);
-//}
-///**
-// * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=25687
-// */
-//public void testInnerClassAsParamater() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveInnerClassAsParamater.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "foo(i)", "foo");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"foo(Inner) [in ResolveInnerClassAsParamater [in ResolveInnerClassAsParamater.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve the interface "Y"
-// */
-//public void testInterface() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveInterface.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Y", "Y");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Y [in Y.js [in p1 [in src [in Resolve]]]]",
-//		elements
-//	);
-//}
-/**
- * Attempt to resolve outside of the range of the compilation unit.
- */
-public void testInvalidResolve() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "p1", "X.js");
-	try {
-		cu.codeSelect(-1, 10); 
-	} catch (JavaScriptModelException e) {
-		return;
-	}
-	assertTrue("Exception should have been thrown for out of bounds resolution", false);
-}
-///**
-// * Resolve the local class 'Y' (field type).
-// */
-//public void testLocalClass1() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass1.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Y[]", "Y");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Y [in foo() [in ResolveLocalClass1 [in ResolveLocalClass1.js [in <default> [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve the local class 'Y' (local variable type).
-// */
-//public void testLocalClass2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Y y", "Y");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Y [in foo() [in ResolveLocalClass2 [in ResolveLocalClass2.js [in <default> [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve the local class 'Y'(array initializer type).
-// */
-//public void testLocalClass3() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass3.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Y[]{", "Y");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Y [in foo() [in ResolveLocalClass3 [in ResolveLocalClass3.js [in <default> [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-/////**
-//// * Resolve the local class 'Y' (return type).
-//// */
-////public void testLocalClass4() throws JavaScriptModelException {
-////	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass4.js");
-////	IJavaScriptElement[] elements = codeSelect(cu, "Y bar()", "Y");
-////	assertElementsEqual(
-////		"Unexpected elements",
-////		"Y [in foo() [in ResolveLocalClass4 [in ResolveLocalClass4.js [in <default> [in src [in Resolve]]]]]]",
-////		elements
-////	);
-////}
-/////**
-//// * Resolve the local class 'Y' (method argument).
-//// */
-////public void testLocalClass5() throws JavaScriptModelException {
-////	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass5.js");
-////	IJavaScriptElement[] elements = codeSelect(cu, "Y y", "Y");
-////	assertElementsEqual(
-////		"Unexpected elements",
-////		"Y [in foo() [in ResolveLocalClass5 [in ResolveLocalClass5.js [in <default> [in src [in Resolve]]]]]]",
-////		elements
-////	);
-////}
-///**
-// * Resolve the local class 'SuperClass' (super class).
-// */
-//public void testLocalClass6() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass6.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Y { // superclass", "Y");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Y [in foo() [in ResolveLocalClass6 [in ResolveLocalClass6.js [in <default> [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68710
-// */
-//public void testLocalClass7() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass7.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "X var", "X");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"X [in <anonymous #2> [in foo2() [in ResolveLocalClass7 [in ResolveLocalClass7.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=126227
-// */
-//public void testLocalClass8() throws JavaScriptModelException {
-//	// select the default constructor of a local class
-//	IJavaScriptElement[] elements = select(
-//			"/Resolve/src/test/Test.js",
-//			"package test;\n" +
-//			"public class Test\n" +
-//			"  void foo() {\n" +
-//			"    class LocalClass {}\n" +
-//			"    Object o = new LocalClass();\n" +
-//			"  }\n" +
-//			"}\n",
-//			"LocalClass");
-//	
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"LocalClass [in foo() [in Test [in [Working copy] Test.js [in test [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * Resolve the local class in a class file and ensure it is a binary type.
-// * (regression test for bug 131459 Java model returns stale resolved source type for binary type
-// */
-//public void testLocalClass9() throws CoreException, IOException {
-//	try {
-//		IJavaScriptProject project = createJavaProject("P");
-//		addLibrary(
-//			project, 
-//			"lib.jar", 
-//			"libsrc.zip", 
-//			new String[] {
-//				"X.js",
-//				"public class X {\n" +
-//				"  void foo() {\n" +
-//				"    class Y {\n" +
-//				"    }\n" +
-//				"  }\n" +
-//				"}"
-//			}, 
-//			"1.4");
-//		IClassFile classFile = getClassFile("P", "/P/lib.jar", "", "X.class");
-//		IJavaScriptElement[] elements = codeSelect(classFile, "Y", "Y");
-//		assertTrue("Should be a binary type", ((IType) elements[0]).isBinary());
-//	} finally {
-//		deleteProject("P");
-//	}
-//}
-/////**
-//// * Resolve a local constructor
-//// */
-////public void testLocalConstructor() throws JavaScriptModelException {
-////	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalConstructor.js");
-////	IJavaScriptElement[] elements = codeSelect(cu, "Y(\"", "Y");
-////	assertElementsEqual(
-////		"Unexpected elements",
-////		"Y(String) [in Y [in foo() [in ResolveLocalConstructor [in ResolveLocalConstructor.js [in <default> [in src [in Resolve]]]]]]]",
-////		elements
-////	);
-////}
-/////**
-//// * Resolve local constructor declaration
-//// */
-////public void testLocalConstructorDeclaration() throws JavaScriptModelException {
-////	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalConstructorDeclaration.js");
-////	IJavaScriptElement[] elements = codeSelect(cu, "Y(i", "Y");
-////	assertElementsEqual(
-////		"Unexpected elements",
-////		"Y(int) [in Y [in foo() [in ResolveLocalConstructorDeclaration [in ResolveLocalConstructorDeclaration.js [in <default> [in src [in Resolve]]]]]]]",
-////		elements
-////	);
-////}
-///**
-// * Resolve the local field "fred"
-// */
-//public void testLocalField() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalField.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "fred =", "fred");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"fred [in Y [in foo() [in ResolveLocalField [in ResolveLocalField.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68710
-// */
-//public void testLocalField2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalField2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "var =", "var");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"var [in <anonymous #2> [in foo2() [in ResolveLocalField2 [in ResolveLocalField2.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve local field declaration
-// */
-//public void testLocalFieldDeclaration() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalFieldDeclaration.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "fred", "fred");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"fred [in Y [in foo() [in ResolveLocalFieldDeclaration [in ResolveLocalFieldDeclaration.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve local member type declaration
-// */
-//public void testLocalMemberTypeDeclaration() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMemberTypeDeclaration1.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "Member {", "Member");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Member [in Y [in foo() [in ResolveLocalMemberTypeDeclaration1 [in ResolveLocalMemberTypeDeclaration1.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve member type declaration
-// */
-//public void testLocalMemberTypeDeclaration2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMemberTypeDeclaration2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "MemberOfMember", "MemberOfMember");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"MemberOfMember [in Member [in Y [in foo() [in ResolveLocalMemberTypeDeclaration2 [in ResolveLocalMemberTypeDeclaration2.js [in <default> [in src [in Resolve]]]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve the method "foo"
-// */
-//public void testLocalMethod() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMethod.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "foo(\"", "foo");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"foo(String) [in Y [in bar() [in ResolveLocalMethod [in ResolveLocalMethod.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68710
-// */
-//public void testLocalMethod2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMethod2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "bar();", "bar");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"bar() [in <anonymous #2> [in foo2() [in ResolveLocalMethod2 [in ResolveLocalMethod2.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve method declaration
-// */
-//public void testLocalMethodDeclaration() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMethodDeclaration.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "foo(i", "foo");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"foo(int) [in Y [in bar() [in ResolveLocalMethodDeclaration [in ResolveLocalMethodDeclaration.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-/**
- * Resolve a local declaration name
- */
-public void testLocalName1() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var1 = new Object();", "var1");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var1 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve a local declaration name with base type
- */
-public void testLocalName2() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var2 = 1;", "var2");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var2 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve a local variable reference
- */
-public void testLocalName3() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var1.toString();", "var1");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var1 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve a local variable reference
- */
-public void testLocalName4() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var2++;", "var2");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var2 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve a local variable reference
- */
-public void testLocalName5() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var3.hashCode();", "var3");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var3 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve a local variable reference
- */
-public void testLocalName6() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var3.toString();", "var3");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var3 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/**
- * Resolve a local variable reference
- */
-public void testLocalName7() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "var4;", "var4");
-	assertElementsEqual(
-		"Unexpected elements",
-		"var4 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
-		elements
-	);
-}
-/*
- * Resolve a local reference and ensure it returns true when asked isStructureKnown().
- * (regression test for bug 48422 Calling isStructureKnown() on ILocalVaraible throws JavaModelExceptions)
- */
-public void testLocalVarIsStructureKnown() throws JavaScriptModelException {
-	ILocalVariable localVar = getLocalVariable("/Resolve/src/ResolveLocalName.js", "var1 = new Object();", "var1");
-	assertTrue(localVar.isStructureKnown());
-}
-/*
- * Resolve a local reference and ensure its type signature is correct.
- */
-public void testLocalVarTypeSignature1() throws JavaScriptModelException {
-	ILocalVariable localVar = getLocalVariable("/Resolve/src/ResolveLocalName.js", "var1 = new Object();", "var1");
-	assertEquals(
-		"Unexpected type signature",
-		"QObject;",
-		localVar.getTypeSignature());
-}
-/*
- * Resolve a local reference and ensure its type signature is correct.
- */
-public void testLocalVarTypeSignature2() throws JavaScriptModelException {
-	ILocalVariable localVar = getLocalVariable("/Resolve/src/ResolveLocalName.js", "var2 = 1;", "var2");
-	assertEquals(
-		"Unexpected type signature",
-		"I",
-		localVar.getTypeSignature());
-}
-///**
-// * Resolve member type declaration
-// */
-//public void testMemberTypeDeclaration() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMemberTypeDeclaration1.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "MemberInterface", "MemberInterface");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"MemberInterface [in ResolveMemberTypeDeclaration1 [in ResolveMemberTypeDeclaration1.js [in <default> [in src [in Resolve]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve member type declaration located in default package
-// */
-//public void testMemberTypeDeclaration2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMemberTypeDeclaration2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "MemberOfMember", "MemberOfMember");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"MemberOfMember [in Member [in ResolveMemberTypeDeclaration2 [in ResolveMemberTypeDeclaration2.js [in <default> [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-/**
- * Try to resolve message send on base type.
- */
-public void testMessageSendOnBaseType() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMessageSendOnBaseType.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "hello", "hello");
-	assertElementsEqual(
-		"Unexpected elements",
-		"",
-		elements
-	);
-}
-/**
- * Resolve the method "foo"
- */
-public void testMethod() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethod.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "foo(\"", "foo");
-	assertElementsEqual(
-		"Unexpected elements",
-		"foo(p0) [in ResolveMethod.js [in <default> [in src [in Resolve]]]]",
-		elements
-	);
-}
-/**
- * Resolve method declaration
- */
-public void testMethodDeclaration() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclaration.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "foo(i", "foo");
-	assertElementsEqual(
-		"Unexpected elements",
-		"foo(p0) [in ResolveMethodDeclaration.js [in <default> [in src [in Resolve]]]]",
-		elements
-	);
-}
-///**
-// * Resolve method declaration in anonymous
-// * (regression test for bug 45655 exception while editing java file)
-// */
-//public void testMethodDeclarationInAnonymous() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclarationInAnonymous.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "bar()", "bar");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"bar() [in <anonymous #1> [in foo() [in ResolveMethodDeclarationInAnonymous [in ResolveMethodDeclarationInAnonymous.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve method declaration in anonymous
-// * (regression test for bug 45786 No selection on method declaration in field initializer)
-// */
-//public void testMethodDeclarationInAnonymous2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclarationInAnonymous2.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "foo()", "foo");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"foo() [in <anonymous #1> [in field [in ResolveMethodDeclarationInAnonymous2 [in ResolveMethodDeclarationInAnonymous2.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve method declaration in anonymous
-// * (regression test for bug 47795 NPE selecting method in anonymous 2 level deep)
-// */
-//public void testMethodDeclarationInAnonymous3() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclarationInAnonymous3.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "selectMe(", "selectMe");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"selectMe() [in <anonymous #1> [in bar() [in <anonymous #1> [in foo() [in ResolveMethodDeclarationInAnonymous3 [in ResolveMethodDeclarationInAnonymous3.js [in <default> [in src [in Resolve]]]]]]]]]",
-//		elements
-//	);
-//}
-///**
-// * Resolve method declaration in anonymous
-// * (regression test for bug 47214 Cannot open declaration on a selected method of an anonymous class)
-// */
-//public void testMethodDeclarationInAnonymous4() throws JavaScriptModelException {
-//	IClassFile classFile = getClassFile("Resolve", "test47214.jar", "p", "X.class");
-//	IJavaScriptElement[] elements = codeSelect(classFile, "bar(", "bar");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"bar() [in <anonymous> [in X$1.class [in p [in test47214.jar [in Resolve]]]]]",
-//		elements
-//	);
-//}
-/**
- * Resolve the method
- */
-public void testMethodWithIncorrectParameter() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodWithIncorrectParameter.js");
-	IJavaScriptElement[] elements = codeSelect(cu, "foo(\"String", "foo");
-	assertElementsEqual(
-		"Unexpected elements",
-			"foo(p0) [in ResolveMethodWithIncorrectParameter.js [in <default> [in src [in Resolve]]]]",
-		elements
-	);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=126160
-public void testMethodWithIncorrectParameter2() throws JavaScriptModelException {
-//	IJavaScriptElement[] elements = select(
-//			"/Resolve/src/test/Test.js",
-//			"package test;\n" +
-//			"public class Test\n" +
-//			"  void called(String arg) {\n" +
-//			"  }\n" +
-//			"  void foo() {\n" +
-//			"    new Object() {\n" +
-//			"      void bar() {\n" +
-//			"        called(zzz);\n" +
-//			"      }\n" +
-//			"    };\n" +
-//			"  }\n" +
-//			"}\n",
-//			"called");
-//	
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"called(String) [in Test [in [Working copy] Test.js [in test [in src [in Resolve]]]]]",
-//		elements
-//	);
-
-	assertTrue("implement",false);
-}
-///**
-// * Resolve method in inner type.
-// */
-//public void testMethodWithInnerTypeInClassFile() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("Resolve", "zzz.jar", "", "MyClass$Inner.class");
-//	IJavaScriptElement[] elements = codeSelect(cf, "test", "test");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"test() [in MyClass [in MyClass.class [in <default> [in zzz.jar [in Resolve]]]]]",
-//		elements
-//	);
-//}
-///**
-// * bug 33785
-// */
-//public void testMethodWithInnerTypeInClassFile2() throws JavaScriptModelException {
-//	IClassFile cf = getClassFile("Resolve", "zzz.jar", "", "MyClass2$Inner.class");
-//	IJavaScriptElement[] elements = codeSelect(cf, "method", "method");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"method(MyClass2.Inner[]) [in MyClass2 [in MyClass2.class [in <default> [in zzz.jar [in Resolve]]]]]",
-//		elements
-//	);
-//		
-//	IFunction method = (IFunction) elements[0];
-//	ISourceRange sourceRange = method.getSourceRange();
-//	String methodString = "void method(MyClass2.Inner[] arg){}";
-//	int o = cf.getSource().indexOf(methodString);
-//	int l = methodString.length();
-//	assertEquals("Unexpected offset", o, sourceRange.getOffset());
-//	assertEquals("Unexpected length", l, sourceRange.getLength());
-//}
-/**
- * Tries to resolve the type "lang. \u0053tring" which doesn't exist.
- */
-public void testNegativeResolveUnicode() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveUnicode.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "lang.\\u0053tring", "lang.\\u0053tring");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"String [in String.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
-//		elements
-//	);
-	assertTrue("implement",false);
-}
-///**
-// * Resolve the package "java.lang"
-// */
-//public void testPackage() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolvePackage.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "lang", "lang");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"java.lang [in " + getExternalJCLPathString() + " [in Resolve]]",
-//		elements
-//	);
-//}
-/**
- * Try to resolve the qualified type "lang.Object"
- */
-public void testPartiallyQualifiedType() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolvePartiallyQualifiedType.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "lang.Object", "lang.Object");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
-//		elements
-//	);
-	assertTrue("implement",false);
-}
-///**
-// * Resolve the qualified type "java.lang.Object"
-// */
-//public void testQualifiedType() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedType.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "java.lang.Object", "java.lang.Object");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
-//		elements
-//	);
-//}
-///**
-// * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=25888
-// */
-//public void testStaticClassConstructor() throws JavaScriptModelException {
-//	IClassFile cu = getClassFile("Resolve", "test25888.jar", "", "ResolveStaticClassConstructor.class");
-//	IJavaScriptElement[] elements = codeSelect(cu, "StaticInnerClass();", "StaticInnerClass");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"StaticInnerClass() [in StaticInnerClass [in ResolveStaticClassConstructor$StaticInnerClass.class [in <default> [in test25888.jar [in Resolve]]]]]",
-//		elements
-//	);
-//}
-/**
- * Resolve type declaration
- */
-public void testTypeDeclaration() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveTypeDeclaration.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "OtherType", "OtherType");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"OtherType [in ResolveTypeDeclaration.js [in <default> [in src [in Resolve]]]]",
-//		elements
-//	);
-//	
-	assertTrue("implement",false);
-}
-/**
- * Resolve type in comment.
- */
-public void testTypeInComment() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveTypeInComment.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "X */", "X");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"X [in X.js [in p2 [in src [in Resolve]]]]",
-//		elements
-//	);
-	assertTrue("implement",false);
-}
-/**
- * Resolve the type "java.lang. \u0053ring"
- */
-public void testUnicode() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveUnicode.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "java.lang.\\u0053tring", "java.lang.\\u0053tring");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"String [in String.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
-//		elements
-//	);
-//	
-	assertTrue("implement",false);
-}
-///**
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47177
-// */
-//public void testLocalNameForClassFile() throws JavaScriptModelException {
-//	IClassFile cu = getClassFile("Resolve", "test47177.jar", "", "ResolveLocalName.class");
-//
-//	//Resolve a local declaration name
-//	IJavaScriptElement[] elements = codeSelect(cu, "var1 = new Object();", "var1");
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var1 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
-//			elements
-//	);
-//
-//	// Resolve a local declaration name with base type
-//	elements = codeSelect(cu, "var2 = 1;", "var2");
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var2 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
-//			elements
-//	);
-//
-//	// Resolve a local variable reference
-//	elements = codeSelect(cu, "var1.toString();", "var1");
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var1 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
-//			elements
-//	);
-//
-//	// Resolve a local variable reference
-//	elements = codeSelect(cu, "var2++;", "var2");
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var2 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
-//			elements
-//	);
-//
-//	// Resolve a local variable reference
-//	elements = codeSelect(cu, "var3.hashCode();", "var3");
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var3 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
-//			elements
-//	);
-//
-//	// Resolve a local variable reference
-//	elements = codeSelect(cu, "var3.toString();", "var3");
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var3 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
-//			elements
-//	);
-//	
-//	// Resolve a local variable reference
-//	elements = codeSelect(cu, "var4;", "var4");
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var4 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-///**
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=42365
-// */
-//public void testMethodDeclarationInInterface() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclarationInInterface.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "foo", "foo");
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo() [in QI [in QI.class [in <default> [in jj.jar [in Resolve]]]]]",
-//			elements
-//	);
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=142303
-//public void testMethodInAnonymous1() throws JavaScriptModelException {
-//	this.workingCopies = new IJavaScriptUnit[2];
-//	this.workingCopies[0] = getWorkingCopy(
-//			"/Resolve/src/Test2.java",
-//			"public class Test2 {\n" +
-//			"\n" +
-//			"    private void foo(boolean v) {\n" +
-//			"    }\n" +
-//			"\n" +
-//			"    void function(boolean v) {\n" +
-//			"        new Object() {\n" +
-//			"            public void run() {\n" +
-//			"                if (false) {\n" +
-//			"                } else {\n" +
-//			"                    foo(false); // <-- right-click, open declaration fails\n" +
-//			"                }\n" +
-//			"            }\n" +
-//			"        };\n" +
-//			"        new Object() {  public void run() {   } };\n" +
-//			"        if (v) {}\n" +
-//			"    }\n" +
-//			"}");
-//	
-//	String str = this.workingCopies[0].getSource();
-//	String selectAt = "foo(false)";
-//	String selection = "foo";
-//	int start = str.indexOf(selectAt);
-//	int length = selection.length();
-//	IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(boolean) [in Test2 [in [Working copy] Test2.java [in <default> [in src [in Resolve]]]]]",
-//			elements);
-//}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Resolve/src/test/Test.java",
-		"package test;"+
-		"public class Test {\n" + 
-		"	void foo() {\n" + 
-		"		int x = 0;\n" + 
-		"		TestString x = null;\n" + 
-		"		x.bar;\n" + 
-		"	}\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Resolve/src/test/TestString.java",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}");
-
-	String str = this.workingCopies[0].getSource();
-	int start = str.lastIndexOf("x");
-	int length = "x".length();
-	IJavaScriptElement[] elements =  this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"x [in foo() [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
-			elements
-		);
-	
-	assertEquals(
-			"Unexpected type",
-			"QTestString;",
-			((ILocalVariable)elements[0]).getTypeSignature());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals2() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Resolve/src/test/Test.java",
-		"package test;"+
-		"public class Test {\n" + 
-		"        public static void main(String[] args) {\n" + 
-		"                int x = 2;\n" + 
-		"                try {\n" + 
-		"                \n" + 
-		"                } catch(TestException x) {\n" + 
-		"                        x.bar();\n" + 
-		"                } catch(Exception e) {\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Resolve/src/test/TestException.java",
-		"package test;"+
-		"public class TestException extends Exception {\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}");
-
-	String str = this.workingCopies[0].getSource();
-	int start = str.lastIndexOf("x.");
-	int length = "x".length();
-	IJavaScriptElement[] elements =  this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"x [in main(String[]) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
-			elements
-		);
-	
-	assertEquals(
-			"Unexpected type",
-			"QTestException;",
-			((ILocalVariable)elements[0]).getTypeSignature());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals3() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Resolve/src/test/Test.java",
-		"package test;"+
-		"public class Test {\n" + 
-		"        public static void main(String[] args) {\n" + 
-		"                int x = x = 0;\n" + 
-		"                if (true) {\n" + 
-		"                        TestString x = x = null;\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Resolve/src/test/TestString.java",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public void bar() {\n" + 
-		"	}\n" + 
-		"}");
-
-	String str = this.workingCopies[0].getSource();
-	int start = str.lastIndexOf("x");
-	int length = "x".length();
-	IJavaScriptElement[] elements =  this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"x [in main(String[]) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
-			elements
-		);
-	
-	assertEquals(
-			"Unexpected type",
-			"QTestString;",
-			((ILocalVariable)elements[0]).getTypeSignature());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals4() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Resolve/src/test/Test.java",
-		"package test;"+
-		"public class Test {\n" + 
-		"        public static void main(String[] args) {\n" + 
-		"                for (int x = 0; x < 10; x++) {\n" + 
-		"                        for (TestString x = null; x.bar() < 5;)  {\n" + 
-		"                                // do something\n" + 
-		"                        }\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Resolve/src/test/TestString.java",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public int bar() {\n" + 
-		"		return 0;\n" + 
-		"	}\n" + 
-		"}");
-
-	String str = this.workingCopies[0].getSource();
-	int start = str.lastIndexOf("x");
-	int length = "x".length();
-	IJavaScriptElement[] elements =  this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"x [in main(String[]) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
-			elements
-		);
-	
-	assertEquals(
-			"Unexpected type",
-			"QTestString;",
-			((ILocalVariable)elements[0]).getTypeSignature());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
-public void testDuplicateLocals5() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Resolve/src/test/Test.java",
-		"package test;"+
-		"public class Test {\n" + 
-		"        public static void main(String[] args) {\n" + 
-		"                for (int x = 0; x < 10; x++) {\n" + 
-		"                        for (TestString x = null; x.bar() < 5;)  {\n" + 
-		"                                x.bar(); // do something\n" + 
-		"                        }\n" + 
-		"                }\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Resolve/src/test/TestString.java",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public int bar() {\n" + 
-		"		return 0;\n" + 
-		"	}\n" + 
-		"}");
-
-	String str = this.workingCopies[0].getSource();
-	int start = str.lastIndexOf("x");
-	int length = "x".length();
-	IJavaScriptElement[] elements =  this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"x [in main(String[]) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
-			elements
-		);
-	
-	assertEquals(
-			"Unexpected type",
-			"QTestString;",
-			((ILocalVariable)elements[0]).getTypeSignature());
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165662
-public void testDuplicateLocalsType1() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Resolve/src/test/Test.java",
-		"package test;"+
-		"public class Test {\n" + 
-		"  void foo() {\n" + 
-		"     class Local {\n" + 
-		"        public void foo() {}\n" + 
-		"     }\n" + 
-		"     {\n" + 
-		"        class Local {\n" + 
-		"                Local(int i) {\n" + 
-		"                        this.init(i);\n" + 
-		"                }\n" + 
-		"				 void init(int i) {}\n" +
-		"                public void bar() {}\n" +
-		"        }\n" + 
-		"        Local l = new Local(0);\n" + 
-		"        l.bar();\n" + 
-		"     }\n" + 
-		"  }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Resolve/src/test/TestString.java",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public int bar() {\n" + 
-		"		return 0;\n" + 
-		"	}\n" + 
-		"}");
-
-	String str = this.workingCopies[0].getSource();
-	int start = str.lastIndexOf("bar");
-	int length = "bar".length();
-	IJavaScriptElement[] elements =  this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"bar() [in Local#2 [in foo() [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]]",
-			elements
-		);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165662
-public void testDuplicateLocalsType2() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[2];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Resolve/src/test/Test.java",
-		"package test;"+
-		"public class Test {\n" + 
-		"        void foo() {\n" + 
-		"                class Local {\n" + 
-		"                        void foo() {\n" + 
-		"                        }\n" + 
-		"                }\n" + 
-		"                {\n" + 
-		"                        class Local {\n" + 
-		"                               Local(int i) {\n" + 
-		"                                       this.init(i);\n" + 
-		"                                       this.bar();\n" + 
-		"                               }\n" + 
-		"				 				void init(int i) {}\n" +
-		"                        		void bar() {\n" + 
-		"                        		}\n" + 
-		"                        }\n" + 
-		"                        Local l = new Local(0);\n" + 
-		"                }\n" + 
-		"                Local l = new Local();\n" + 
-		"                l.foo();\n" + 
-		"        }\n" + 
-		"}");
-	
-	this.workingCopies[1] = getWorkingCopy(
-		"/Resolve/src/test/TestString.java",
-		"package test;"+
-		"public class TestString {\n" + 
-		"	public int bar() {\n" + 
-		"		return 0;\n" + 
-		"	}\n" + 
-		"}");
-
-	String str = this.workingCopies[0].getSource();
-	int start = str.lastIndexOf("foo");
-	int length = "foo".length();
-	IJavaScriptElement[] elements =  this.workingCopies[0].codeSelect(start, length, this.wcOwner);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"foo() [in Local [in foo() [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]]",
-			elements
-		);
-}
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=57414
- */
-public void testEndOfFile() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveEndOfFile.js");
-	IJavaScriptElement[] elements = codeSelectAt(cu, "zzz");
-	assertElementsEqual(
-			"Unexpected elements",
-			"",
-			elements
-	);
-}
-
-
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65259
- */
-public void testDuplicateMethodDeclaration() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration.js");
-	
-	String str = cu.getSource();
-	int start = str.indexOf("foo");
-	int length = "foo".length();
-	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"foo() [in ResolveDuplicateMethodDeclaration.js [in <default> [in src [in Resolve]]]]",
-			elements
-	);
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=65259
- */
-public void testDuplicateMethodDeclaration2() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration.js");
-	
-	String str = cu.getSource();
-	int start = str.lastIndexOf("foo");
-	int length = "foo".length();
-	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"foo()#2 [in ResolveDuplicateMethodDeclaration.js [in <default> [in src [in Resolve]]]]",
-			elements
-	);
-}
-public void testDuplicateMethodDeclaration3() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration3.js");
-	
-	String str = cu.getSource();
-	int start = str.indexOf("foo");
-	int length = "foo".length();
-	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"foo(p0) [in ResolveDuplicateMethodDeclaration3.js [in <default> [in src [in Resolve]]]]",
-			elements
-	);
-}
-public void testDuplicateMethodDeclaration4() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration3.js");
-	
-	String str = cu.getSource();
-	int start = str.lastIndexOf("foo");
-	int length = "foo".length();
-	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-	
-	assertElementsEqual(
-			"Unexpected elements",
-			"foo(p0)#2 [in ResolveDuplicateMethodDeclaration3.js [in <default> [in src [in Resolve]]]]",
-			elements
-	);
-}
-//public void testDuplicateMethodDeclaration5() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration5.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("foo");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(Zork) [in ResolveDuplicateMethodDeclaration5 [in ResolveDuplicateMethodDeclaration5.js [in <default> [in src [in Resolve]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateMethodDeclaration6() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration5.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("foo");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(Zork)#2 [in ResolveDuplicateMethodDeclaration5 [in ResolveDuplicateMethodDeclaration5.js [in <default> [in src [in Resolve]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateMethodDeclaration7() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration7.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("foo");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(Zork) [in Inner [in ResolveDuplicateMethodDeclaration7 [in ResolveDuplicateMethodDeclaration7.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateMethodDeclaration8() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration7.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("foo");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(Zork)#2 [in Inner [in ResolveDuplicateMethodDeclaration7 [in ResolveDuplicateMethodDeclaration7.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateMethodDeclaration9() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration9.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("foo(/*1*/");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(Zork) [in Inner [in ResolveDuplicateMethodDeclaration9 [in ResolveDuplicateMethodDeclaration9.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateMethodDeclaration10() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration9.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("foo(/*1*/");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(Zork)#2 [in Inner [in ResolveDuplicateMethodDeclaration9 [in ResolveDuplicateMethodDeclaration9.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateMethodDeclaration11() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration11.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("foo(/*2*/");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(Zork) [in Inner#2 [in ResolveDuplicateMethodDeclaration11 [in ResolveDuplicateMethodDeclaration11.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateMethodDeclaration12() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration11.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("foo(/*2*/");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo(Zork)#2 [in Inner#2 [in ResolveDuplicateMethodDeclaration11 [in ResolveDuplicateMethodDeclaration11.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-public void testDuplicateFieldDeclaration() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateFieldDeclaration.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("var;/*1*/");
-//	int length = "var".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var [in Inner [in ResolveDuplicateFieldDeclaration [in ResolveDuplicateFieldDeclaration.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-	assertTrue("implement",false);
-}
-public void testDuplicateFieldDeclaration2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateFieldDeclaration.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("var;/*1*/");
-//	int length = "var".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var#2 [in Inner [in ResolveDuplicateFieldDeclaration [in ResolveDuplicateFieldDeclaration.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-	assertTrue("implement",false);
-}
-//public void testDuplicateFieldDeclaration3() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateFieldDeclaration3.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("var;/*2*/");
-//	int length = "var".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var [in Inner#2 [in ResolveDuplicateFieldDeclaration3 [in ResolveDuplicateFieldDeclaration3.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateFieldDeclaration4() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateFieldDeclaration3.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("var;/*2*/");
-//	int length = "var".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var#2 [in Inner#2 [in ResolveDuplicateFieldDeclaration3 [in ResolveDuplicateFieldDeclaration3.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateTypeDeclaration() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("Inner");
-//	int length = "Inner".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"Inner [in ResolveDuplicateTypeDeclaration [in ResolveDuplicateTypeDeclaration.js [in <default> [in src [in Resolve]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateTypeDeclaration2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("Inner");
-//	int length = "Inner".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"Inner#2 [in ResolveDuplicateTypeDeclaration [in ResolveDuplicateTypeDeclaration.js [in <default> [in src [in Resolve]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateTypeDeclaration3() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration3.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("Inner2/*1*/");
-//	int length = "Inner2".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"Inner2 [in Inner [in ResolveDuplicateTypeDeclaration3 [in ResolveDuplicateTypeDeclaration3.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateTypeDeclaration4() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration3.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("Inner2/*1*/");
-//	int length = "Inner2".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"Inner2#2 [in Inner [in ResolveDuplicateTypeDeclaration3 [in ResolveDuplicateTypeDeclaration3.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateTypeDeclaration5() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration5.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.indexOf("Inner2/*2*/");
-//	int length = "Inner2".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"Inner2 [in Inner#2 [in ResolveDuplicateTypeDeclaration5 [in ResolveDuplicateTypeDeclaration5.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDuplicateTypeDeclaration6() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration5.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("Inner2/*2*/");
-//	int length = "Inner2".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"Inner2#2 [in Inner#2 [in ResolveDuplicateTypeDeclaration5 [in ResolveDuplicateTypeDeclaration5.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testArrayParameterInsideParent1() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveArrayParameterInsideParent1.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("var");
-//	int length = "var".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"var [in test(int[]) [in ResolveArrayParameterInsideParent1 [in ResolveArrayParameterInsideParent1.js [in <default> [in src [in Resolve]]]]]]",
-//			elements
-//	);
-//}
-//public void testDeepLocalVariable() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDeepLocalVariable.js");
-//	
-//	String str = cu.getSource();
-//	int start = str.lastIndexOf("foo");
-//	int length = "foo".length();
-//	IJavaScriptElement[] elements =  cu.codeSelect(start, length);
-//	
-//	assertElementsEqual(
-//			"Unexpected elements",
-//			"foo [in D9() [in D9 [in D8 [in D7 [in D6 [in D5 [in D4 [in D3 [in D2 [in D1 [in ResolveDeepLocalVariable [in ResolveDeepLocalVariable.js [in <default> [in src [in Resolve]]]]]]]]]]]]]]]",
-//			elements
-//	);
-//}
-/*
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68710
- */
-public void testLocalVariable() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalVariable.js");
-//	IJavaScriptElement[] elements = codeSelect(cu, "var =", "var");
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"var [in toto() [in <anonymous #2> [in foo2() [in ResolveLocalVariable [in ResolveLocalVariable.js [in <default> [in src [in Resolve]]]]]]]]",
-//		elements
-//	);
-	assertTrue("implement",false);
-
-}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
-// */
-//public void testQualifiedName1() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName1.js");
-//	
-//	IJavaScriptElement[] elements = codeSelect(cu, "pp.qq.XX.YY.ZZ", "pp.qq.XX.YY.ZZ");
-//	
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ZZ [in YY [in XX [in XX.js [in pp.qq [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
-// */
-//public void testQualifiedName2() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName2.js");
-//	
-//	IJavaScriptElement[] elements = codeSelect(cu, "qq.XX.YY.ZZ", "qq.XX.YY.ZZ");
-//	
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ZZ [in YY [in XX [in XX.js [in pp.qq [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
-// */
-//public void testQualifiedName3() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName3.js");
-//	
-//	IJavaScriptElement[] elements = codeSelect(cu, "XX.YY.ZZ", "XX.YY.ZZ");
-//	
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ZZ [in YY [in XX [in XX.js [in pp.qq [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
-// */
-//public void testQualifiedName4() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName4.js");
-//	
-//	IJavaScriptElement[] elements = codeSelect(cu, "YY.ZZ", "YY.ZZ");
-//	
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ZZ [in YY [in XX [in XX.js [in pp.qq [in src [in Resolve]]]]]]",
-//		elements
-//	);
-//}
-///*
-// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
-// */
-//public void testQualifiedName5() throws JavaScriptModelException {
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName5.js");
-//	
-//	IJavaScriptElement[] elements = codeSelect(cu, "YY.ZZ", "YY.ZZ");
-//	
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"ZZ [in YY [in XX [in ResolveQualifiedName5 [in ResolveQualifiedName5.js [in <default> [in src [in Resolve]]]]]]]",
-//		elements
-//	);
-//}
-////https://bugs.eclipse.org/bugs/show_bug.cgi?id=84001
-//public void testTypeInsideConstructor() throws JavaScriptModelException {
-//	IJavaScriptUnit imported = null;
-//	try {
-//		imported = getWorkingCopy(
-//				"/Resolve/src/test/AType.js",
-//				"public class AType {\n" +
-//				"	public class Sub {\n" +
-//				"	}\n" +
-//				"}\n");
-//
-//		IJavaScriptElement[] elements = select(
-//				"/Resolve/src/test/Test.js",
-//				"public class Test<\n" +
-//				"	void foo() {\n" +
-//				"	  new Test.Sub();\n" +
-//				"	}\n" +
-//				"}\n",
-//				"Test");
-//		
-//		assertElementsEqual(
-//			"Unexpected elements",
-//			"Test [in [Working copy] Test.js [in test [in src [in Resolve]]]]",
-//			elements
-//		);
-//	} finally {
-//		if(imported != null) {
-//			imported.discardWorkingCopy();
-//		}
-//	}
-//}
-////https://bugs.eclipse.org/bugs/show_bug.cgi?id=79309
-//public void testMemberTypeInImport() throws JavaScriptModelException {
-//	IJavaScriptUnit imported = null;
-//	try {
-//		imported = getWorkingCopy(
-//				"/Resolve/src/test/AType.js",
-//				"public class AType {\n" +
-//				"	public class Sub {\n" +
-//				"	}\n" +
-//				"}\n");
-//
-//		IJavaScriptElement[] elements = select(
-//				"/Resolve/src/test/Test.js",
-//				"import test.AType.Sub;\n" +
-//				"public class Test\n" +
-//				"}\n",
-//				"Sub");
-//		
-//		assertElementsEqual(
-//			"Unexpected elements",
-//			"Sub [in AType [in [Working copy] AType.js [in test [in src [in Resolve]]]]]",
-//			elements
-//		);
-//	} finally {
-//		if(imported != null) {
-//			imported.discardWorkingCopy();
-//		}
-//	}
-//}
-////https://bugs.eclipse.org/bugs/show_bug.cgi?id=99901
-//public void testSingleNameInImport() throws JavaScriptModelException {
-//	IJavaScriptUnit aType = null;
-//	try {
-//		aType = getWorkingCopy(
-//				"/Resolve/src/zzz/AType.js",
-//				"package zzz;\n" +
-//				"public class AType {\n" +
-//				"}\n");
-//
-//		IJavaScriptElement[] elements = select(
-//				"/Resolve/src/test/Test.js",
-//				"package test;\n" +
-//				"import zzz.*;\n" +
-//				"public class Test\n" +
-//				"}\n",
-//				"zzz");
-//		
-//		assertElementsEqual(
-//			"Unexpected elements",
-//			"zzz [in src [in Resolve]]",
-//			elements
-//		);
-//	} finally {
-//		if(aType != null) {
-//			aType.discardWorkingCopy();
-//		}
-//	}
-//}
-///**
-// * Bug 120350: [model] Secondary type not found by code resolve
-// * @throws JavaScriptModelException
-// */
-//public void testSecondaryTypes() throws JavaScriptModelException {
-//	waitUntilIndexesReady();
-//	IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "b120350", "X.js");
-//	String str = cu.getSource();
-//	int start = str.indexOf("Secondary");
-//	int length = "Secondary".length();
-//	IJavaScriptElement[] elements = cu.codeSelect(start, length);
-//	assertElementsEqual(
-//		"Unexpected elements",
-//		"Secondary [in Test.js [in b120350 [in src [in Resolve]]]]",
-//		elements
-//	);
-//}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RootManipulationsTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RootManipulationsTests.java
deleted file mode 100644
index dfb44f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RootManipulationsTests.java
+++ /dev/null
@@ -1,1226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.core.JavaElement;
-
-import junit.framework.Test;
-
-public class RootManipulationsTests extends ModifyingResourceTests {
-public RootManipulationsTests(String name) {
-	super(name);
-}
-protected void assertJavaProject(String expected, IJavaScriptProject project) throws CoreException {
-	StringBuffer buffer = new StringBuffer();
-	populate(buffer, project, 0);
-	
-	String actual = buffer.toString();
-	if (!expected.equals(actual)) {
-	 	System.out.println(Util.displayString(actual, 3));
-	}
-	assertEquals(expected, actual);
-}
-protected void copy(IPackageFragmentRoot root, IPath destination) throws JavaScriptModelException {
-	copy(root, destination, null);
-}
-protected void copy(IPackageFragmentRoot root, IPath destination, IIncludePathEntry sibling) throws JavaScriptModelException {
-	root.copy(
-		destination,
-		IResource.NONE,
-		IPackageFragmentRoot.DESTINATION_PROJECT_INCLUDEPATH,
-		sibling,
-		null);
-}
-protected void delete(IPackageFragmentRoot root) throws JavaScriptModelException {
-	root.delete(
-		IResource.NONE,
-		IPackageFragmentRoot.ORIGINATING_PROJECT_INCLUDEPATH
-			| IPackageFragmentRoot.OTHER_REFERRING_PROJECTS_INCLUDEPATH,
-		null);
-}
-protected void move(IPackageFragmentRoot root, IPath destination) throws JavaScriptModelException {
-	move(root, destination, null);
-}
-protected void move(IPackageFragmentRoot root, IPath destination, IIncludePathEntry sibling) throws JavaScriptModelException {
-	root.move(
-		destination, 
-		IResource.NONE, 
-		IPackageFragmentRoot.DESTINATION_PROJECT_INCLUDEPATH
-			| IPackageFragmentRoot.ORIGINATING_PROJECT_INCLUDEPATH
-			| IPackageFragmentRoot.OTHER_REFERRING_PROJECTS_INCLUDEPATH,
-		sibling, 
-		null);
-}
-protected void populate(StringBuffer buffer, IJavaScriptElement element, int indent) throws CoreException {
-	if (!(element instanceof IParent) || !(element instanceof IOpenable)) return;
-
-	if (buffer.length() != 0) {	
-		buffer.append("\n");
-	}
-	for (int i = 0; i < indent; i++) buffer.append("\t");
-	buffer.append(((JavaElement)element).toDebugString());
-	
-	IParent parent = (IParent)element;
-	IJavaScriptElement[] children = null;
-	try {
-		children = parent.getChildren();
-	} catch (JavaScriptModelException e) {
-	}
-	if (children != null) {
-		for (int i = 0, length = children.length; i < length; i++) {
-			populate(buffer, children[i], indent+1);
-		}
-	}
-	
-	Object[] nonJavaResources = null;
-	try {
-		if (element instanceof IJavaScriptProject) {
-			nonJavaResources = ((IJavaScriptProject)element).getNonJavaScriptResources();
-		} else if (element instanceof IPackageFragmentRoot) {
-			nonJavaResources = ((IPackageFragmentRoot)element).getNonJavaScriptResources();
-		} else if (element instanceof IPackageFragment) {
-			nonJavaResources = ((IPackageFragment)element).getNonJavaScriptResources();
-		}
-	} catch (JavaScriptModelException e) {
-	}
-	if (nonJavaResources != null) {
-		for (int i = 0, length = nonJavaResources.length; i < length; i++) {
-			populate(buffer, nonJavaResources[i], indent+1);
-		}
-	}
-}
-protected void populate(StringBuffer buffer, Object nonJavaResource, int indent) {
-	if (buffer.length() != 0) {	
-		buffer.append("\n");
-	}
-	for (int i = 0; i < indent; i++) buffer.append("\t");
-	buffer.append(nonJavaResource);
-	/*
-	if (nonJavaResource instanceof IContainer) {
-		IResource[] members = ((IContainer)nonJavaResource).members();
-		for (int i = 0, length = members.length; i < length; i++) {
-			populate(buffer, members[i], indent+1);
-		}
-	}*/
-}
-public static Test suite() {
-	return buildModelTestSuite(RootManipulationsTests.class);
-}
-/*
- * Ensure that a simple copy of a source root to another project triggers the right delta
- * and that the model is up-to-date.
- */
-public void testCopySourceFolder1() throws CoreException {
-	try {
-		this.createJavaProject("P1", new String[] {"src"});
-		this.createJavaProject("P2", new String[] {});
-		this.createFolder("/P1/src/p");
-		this.createFile(
-			"/P1/src/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-		this.startDeltas();
-		this.copy(root, new Path("/P2/src"));
-		assertDeltas(
-			"Unexpected delta",
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[+]: {}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		IJavaScriptUnit cu = this.getCompilationUnit("/P2/src/p/X.js");
-		assertTrue("Destination cu should exist", cu.exists());
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that coping and renaming a source root to another project triggers the right delta
- * and that the model is up-to-date.
- */
-public void testCopySourceFolder2() throws CoreException {
-	try {
-		this.createJavaProject("P1", new String[] {"src"});
-		this.createJavaProject("P2", new String[] {});
-		this.createFolder("/P1/src/p");
-		this.createFile(
-			"/P1/src/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-		this.startDeltas();
-		this.copy(root, new Path("/P2/src2"));
-		assertDeltas(
-			"Unexpected delta",
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src2[+]: {}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		IJavaScriptUnit cu = this.getCompilationUnit("/P2/src2/p/X.js");
-		assertTrue("Destination cu should exist", cu.exists());
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that coping a source root to another project triggers the right delta
- * and doesn't copy a nested source folder.
- */
-public void testCopySourceFolder3() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {});
-		p1.setRawIncludepath(createClasspath(new String[] {"/P1/src1", "src2/**", "/P1/src1/src2", ""}, false/*no inclusion*/, true/*exclusion*/), null);
-		this.createJavaProject("P2", new String[] {});
-		this.createFolder("/P1/src1/p");
-		this.createFile(
-			"/P1/src1/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		this.createFolder("/P1/src1/src2/q");
-		this.createFile(
-			"/P1/src1/src2/q/Y.js", 
-			"package q;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src1");
-		this.startDeltas();
-		this.copy(root, new Path("/P2/src1"));
-		assertDeltas(
-			"Unexpected delta",
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src1[+]: {}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		IJavaScriptUnit cu = this.getCompilationUnit("/P2/src1/p/X.js");
-		assertTrue("Destination cu should exist", cu.exists());
-		cu = this.getCompilationUnit("/P2/src1/src2/q/Y.js");
-		assertTrue("Nested cu should not exist", !cu.exists());
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that copying a source root to another project using a sibling classpath entry triggers the right delta
- * and that the model is up-to-date.
- */
-public void testCopySourceFolder4() throws CoreException {
-	try {
-		this.createJavaProject("P1", new String[] {"src"});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {"src1", "src2"});
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-
-		// insert first
-		IIncludePathEntry sibling = JavaScriptCore.newSourceEntry(new Path("/P2/src1"));
-		this.startDeltas();
-		this.copy(root, new Path("/P2/src"), sibling);
-		assertDeltas(
-			"Unexpected delta (1)",
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[+]: {}\n" + 
-			"	src1[*]: {REORDERED}\n" + 
-			"	src2[*]: {REORDERED}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertElementsEqual(
-			"Unexpected roots of P2 after insertion first",
-			"src [in P2]\n" + 
-			"src1 [in P2]\n" + 
-			"src2 [in P2]",
-			p2.getPackageFragmentRoots());
-
-		// insert in the middle
-		sibling = JavaScriptCore.newSourceEntry(new Path("/P2/src2"));
-		this.startDeltas();
-		this.copy(root, new Path("/P2/src3"), sibling);
-		assertDeltas(
-			"Unexpected delta (2)",
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src2[*]: {REORDERED}\n" + 
-			"	src3[+]: {}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertElementsEqual(
-			"Unexpected roots of P2 after insertion in the middle",
-			"src [in P2]\n" + 
-			"src1 [in P2]\n" + 
-			"src3 [in P2]\n" + 
-			"src2 [in P2]",
-			p2.getPackageFragmentRoots());
-			
-		// insert last
-		this.startDeltas();
-		this.copy(root, new Path("/P2/src4"), null);
-		assertDeltas(
-			"Unexpected delta (3)",
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src4[+]: {}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertElementsEqual(
-			"Unexpected roots of P2 after insertion last",
-			"src [in P2]\n" + 
-			"src1 [in P2]\n" + 
-			"src3 [in P2]\n" + 
-			"src2 [in P2]\n" + 
-			"src4 [in P2]",
-			p2.getPackageFragmentRoots());
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that coping a source root to another project with an existing source root in
- * REPLACE mode triggers the right delta and that the model is up-to-date.
- * (regression test bug 30511 IPackageFragmentRoot:move ignores FORCE flag)
- */
-public void testCopySourceFolder5() throws CoreException {
-	try {
-		this.createJavaProject("P1", new String[] {"src"});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {"src"});
-		this.createFolder("/P1/src/p");
-		this.createFile(
-			"/P1/src/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-		this.startDeltas();
-		root.copy(new Path("/P2/src"), IResource.NONE, IPackageFragmentRoot.REPLACE, null, null);
-		assertDeltas(
-			"Unexpected delta",
-			"P2[*]: {CHILDREN}\n" + 
-			"	src[*]: {CHILDREN}\n" + 
-			"		p[+]: {}"
-		);
-		assertJavaProject(
-			"P2\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"		p\n" + 
-			"			X.java\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that coping and renaming a source root to same project in
- * REPLACE mode triggers the right delta and that the model is up-to-date.
- * (regression test bug 30857 IPackageFragmentRoot: copy removes source folders from classpath)
- */
-public void testCopySourceFolder6() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"});
-		this.createFolder("/P/src/p");
-		this.createFile(
-			"/P/src/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P/src");
-		this.startDeltas();
-		root.copy(
-			new Path("/P/src1"), 
-			IResource.KEEP_HISTORY, 
-			IPackageFragmentRoot.REPLACE | IPackageFragmentRoot.DESTINATION_PROJECT_INCLUDEPATH, 
-			null, 
-			null);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src1[+]: {}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"		p\n" + 
-			"			X.java\n" + 
-			"	src1\n" + 
-			"		<default>\n" + 
-			"		p\n" + 
-			"			X.java\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that coping a source root to another project with an existing source root in
- * non REPLACE mode throws the right JavaScriptModelException.
- * (regression test bug 30511 IPackageFragmentRoot:move ignores FORCE flag)
- */
-public void testFailCopySourceFolder1() throws CoreException {
-	try {
-		this.createJavaProject("P1", new String[] {"src"});
-		this.createJavaProject("P2", new String[] {"src"});
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-		try {
-			root.copy(new Path("/P2/src"), IResource.NONE, IPackageFragmentRoot.DESTINATION_PROJECT_INCLUDEPATH, null, null);
-		} catch (JavaScriptModelException e) {
-			assertEquals("/P2/src already exists in target", e.getMessage());
-			return;
-		}
-		assertTrue("Should throw a JavaScriptModelException", false);
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that coping a source root to another project with an existing source root in
- * non REPLACE mode throws the right JavaScriptModelException.
- * (regression test bug 30511 IPackageFragmentRoot:move ignores FORCE flag)
- */
-public void testFailCopySourceFolder2() throws CoreException {
-	try {
-		this.createJavaProject("P1", new String[] {"src"});
-		this.createJavaProject("P2", new String[] {"src"});
-		this.deleteFolder("/P2/src");
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-		try {
-			root.copy(new Path("/P2/src"), IResource.NONE, IPackageFragmentRoot.DESTINATION_PROJECT_INCLUDEPATH, null, null);
-		} catch (JavaScriptModelException e) {
-			assertEquals("/P2/src already exists in target", e.getMessage());
-			return;
-		}
-		assertTrue("Should throw a JavaScriptModelException", false);
-	} finally {
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that deleting a jar package fragment root triggers the right delta
- * and that the model is up-to-date.
- */
-public void testDeleteJarFile1() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"}, new String[] {"/P/myLib.jar"});
-		this.createFile("/P/myLib.jar", "");
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P/myLib.jar");
-		this.startDeltas();
-		this.delete(root);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	myLib.jar[-]: {}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that deleting am external jar package fragment root triggers the right delta
- * and that the model is up-to-date.
- * (regression test for bug 30506 IPackageFragmentRoot:delete does not handle external jars)
- */
-public void testDeleteJarFile3() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"}, new String[] {getSystemJsPathString()});
-
-		IPackageFragmentRoot root = project.getPackageFragmentRoot(getSystemJsPathString());
-		this.startDeltas();
-		this.delete(root);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	" + getSystemJsPathString() + "[*]: {REMOVED FROM CLASSPATH}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that deleting a jar file that is referenced by 2 projects triggers the right delta
- * and that the model is up-to-date.
- */
-public void testDeleteJarFile2() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {"src"}, new String[] {"/P1/myLib.jar"});
-		this.createFile("/P1/myLib.jar", "");
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {"src"}, new String[] {"/P1/myLib.jar"});
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/myLib.jar");
-		this.startDeltas();
-		this.delete(root);
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	myLib.jar[-]: {}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]\n" + 
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	/P1/myLib.jar[-]: {}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P1\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	L/P1/.classpath\n" + 
-			"	L/P1/.project",
-			p1);
-		assertJavaProject(
-			"P2\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that a simple delete of a source root triggers the right delta
- * and that the model is up-to-date.
- */
-public void testDeleteSourceFolder1() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"});
-		this.createFolder("/P/src/p");
-		this.createFile(
-			"/P/src/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P/src");
-		this.startDeltas();
-		this.delete(root);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[-]: {}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that deleting a source root triggers the right delta
- * and doesn't delete a nested source folder.
- */
-public void testDeleteSourceFolder2() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {});
-		project.setRawIncludepath(createClasspath(new String[] {"/P/src1", "src2/**", "/P/src1/src2", ""}, false/*no inclusion*/, true/*exclusion*/), null);
-		IFolder folder = this.createFolder("/P/src1/p");
-		IFile file = this.createFile(
-			"/P/src1/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		this.createFolder("/P/src1/src2/q");
-		this.createFile(
-			"/P/src1/src2/q/Y.js", 
-			"package q;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P/src1");
-		this.startDeltas();
-		this.delete(root);
-		
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src1[*]: {REMOVED FROM CLASSPATH}\n" + 
-			"	src1/src2[*]: {REORDERED}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]\n" + 
-			"	ResourceDelta(/P/src1)[*]"
-		);
-		
-		assertJavaProject(
-			"P\n" + 
-			"	src1/src2\n" + 
-			"		<default>\n" + 
-			"		q\n" + 
-			"			Y.java\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project\n" + 
-			"	F/P/src1",
-			project);
-			
-		assertTrue("Original package folder should not exist", !folder.exists());
-		assertTrue("Original cu file should not exist", !file.exists());
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a simple move of a source root to another project triggers the right delta
- * and that the model is up-to-date.
- */
-public void testMoveSourceFolder1() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {"src"});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {});
-		this.createFolder("/P1/src/p");
-		this.createFile(
-			"/P1/src/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-		this.startDeltas();
-		this.move(root, new Path("/P2/src"));
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[-]: {MOVED_TO(src [in P2])}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]\n" + 
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[+]: {MOVED_FROM(src [in P1])}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P1\n" + 
-			"	L/P1/.classpath\n" + 
-			"	L/P1/.project",
-			p1);
-		assertJavaProject(
-			"P2\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"		p\n" + 
-			"			X.java\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that moving and renaming a source root to another project triggers the right delta
- * and that the model is up-to-date.
- */
-public void testMoveSourceFolder2() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {"src"});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {});
-		this.createFolder("/P1/src/p");
-		this.createFile(
-			"/P1/src/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-		this.startDeltas();
-		this.move(root, new Path("/P2/src2"));
-		
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[-]: {MOVED_TO(src2 [in P2])}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]\n" + 
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src2[+]: {MOVED_FROM(src [in P1])}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		
-		assertJavaProject(
-			"P1\n" + 
-			"	L/P1/.classpath\n" + 
-			"	L/P1/.project",
-			p1);
-		assertJavaProject(
-			"P2\n" + 
-			"	src2\n" + 
-			"		<default>\n" + 
-			"		p\n" + 
-			"			X.java\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that moving a source root to another project triggers the right delta
- * and doesn't move a nested source folder.
- */
-public void testMoveSourceFolder3() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {});
-		p1.setRawIncludepath(createClasspath(new String[] {"/P1/src1", "src2/**", "/P1/src1/src2", ""}, false/*no inclusion*/, true/*exclusion*/), null);
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {});
-		this.createFolder("/P1/src1/p");
-		this.createFile(
-			"/P1/src1/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		this.createFolder("/P1/src1/src2/q");
-		this.createFile(
-			"/P1/src1/src2/q/Y.js", 
-			"package q;\n" +
-			"public class Y {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src1");
-		this.startDeltas();
-		this.move(root, new Path("/P2/src1"));
-		
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src1[*]: {REMOVED FROM CLASSPATH}\n" + 
-			"	src1/src2[*]: {REORDERED}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]\n" + 
-			"	ResourceDelta(/P1/src1)[*]\n" + 
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src1[+]: {}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		
-		assertJavaProject(
-			"P1\n" + 
-			"	src1/src2\n" + 
-			"		<default>\n" + 
-			"		q\n" + 
-			"			Y.java\n" + 
-			"	L/P1/.classpath\n" + 
-			"	L/P1/.project\n" + 
-			"	F/P1/src1",
-			p1);
-		assertJavaProject(
-			"P2\n" + 
-			"	src1\n" + 
-			"		<default>\n" + 
-			"		p\n" + 
-			"			X.java\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that moving a source root to another project before the first root triggers the right delta
- * and that the model is up-to-date.
- */
-public void testMoveSourceFolder4() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {"src"});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {"src1", "src2"});
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-
-		// insert first
-		IIncludePathEntry sibling = JavaScriptCore.newSourceEntry(new Path("/P2/src1"));
-		this.startDeltas();
-		this.move(root, new Path("/P2/src"), sibling);
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[-]: {MOVED_TO(src [in P2])}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]\n" + 
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[+]: {MOVED_FROM(src [in P1])}\n" + 
-			"	src1[*]: {REORDERED}\n" + 
-			"	src2[*]: {REORDERED}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P1\n" + 
-			"	L/P1/.classpath\n" + 
-			"	L/P1/.project",
-			p1);
-		assertJavaProject(
-			"P2\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	src1\n" + 
-			"		<default>\n" + 
-			"	src2\n" + 
-			"		<default>\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that moving a source root to another project in the middle of existing roots triggers the right delta
- * and that the model is up-to-date.
- */
-public void testMoveSourceFolder5() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {"src"});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {"src1", "src2"});
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-
-		// insert in the middle
-		IIncludePathEntry sibling = JavaScriptCore.newSourceEntry(new Path("/P2/src2"));
-		this.startDeltas();
-		this.move(root, new Path("/P2/src"), sibling);
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[-]: {MOVED_TO(src [in P2])}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]\n" + 
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[+]: {MOVED_FROM(src [in P1])}\n" + 
-			"	src2[*]: {REORDERED}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P1\n" + 
-			"	L/P1/.classpath\n" + 
-			"	L/P1/.project",
-			p1);
-		assertJavaProject(
-			"P2\n" + 
-			"	src1\n" + 
-			"		<default>\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	src2\n" + 
-			"		<default>\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that moving a source root to another project at the end of the classpath triggers the right delta
- * and that the model is up-to-date.
- */
-public void testMoveSourceFolder6() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {"src"});
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {"src1", "src2"});
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/src");
-			
-		// insert last
-		this.startDeltas();
-		this.move(root, new Path("/P2/src"), null);
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[-]: {MOVED_TO(src [in P2])}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]\n" + 
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src[+]: {MOVED_FROM(src [in P1])}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P1\n" + 
-			"	L/P1/.classpath\n" + 
-			"	L/P1/.project",
-			p1);
-		assertJavaProject(
-			"P2\n" + 
-			"	src1\n" + 
-			"		<default>\n" + 
-			"	src2\n" + 
-			"		<default>\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that a simple rename of a source root triggers the right delta
- * and that the model is up-to-date.
- */
-public void testRenameSourceFolder1() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src1"});
-		this.createFolder("/P/src1/p");
-		this.createFile(
-			"/P/src1/p/X.js", 
-			"package p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P/src1");
-		this.startDeltas();
-		this.move(root, new Path("/P/src2"));
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src1[-]: {MOVED_TO(src2 [in P])}\n" + 
-			"	src2[+]: {MOVED_FROM(src1 [in P])}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src2\n" + 
-			"		<default>\n" + 
-			"		p\n" + 
-			"			X.java\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that renaming a nested source root doesn't throw a JavaScriptModelException
- * (regression test for bug 129991 [refactoring] Rename sourcefolder fails with JME)
- */
-public void testRenameSourceFolder3() throws CoreException {
-	try {
-		createJavaProject("P");
-		editFile(
-			"/P/.classpath",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry excluding=\"src1/\" kind=\"src\" path=\"\"/>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src1\"/>\n" + 
-			"</classpath>"
-		);
-		createFolder("/P/src1");
-		IPackageFragmentRoot root = getPackageFragmentRoot("/P/src1");
-		startDeltas();
-		move(root, new Path("/P/src2"));
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	<project root>[*]: {ADDED TO CLASSPATH | REMOVED FROM CLASSPATH}\n" + 
-			"	src1[-]: {MOVED_TO(src2 [in P])}\n" + 
-			"	src2[+]: {MOVED_FROM(src1 [in P])}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that renaming a nested source root doesn't throw a JavaScriptModelException
- * (regression test for bug 129991 [refactoring] Rename sourcefolder fails with JME)
- */
-public void testRenameSourceFolder4() throws CoreException {
-	try {
-		createJavaProject("P");
-		editFile(
-			"/P/.classpath",
-			"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 
-			"<classpath>\n" + 
-			"	<classpathentry excluding=\"src1/**\" kind=\"src\" path=\"\"/>\n" + 
-			"	<classpathentry kind=\"src\" path=\"src1\"/>\n" + 
-			"</classpath>"
-		);
-		createFolder("/P/src1");
-		IPackageFragmentRoot root = getPackageFragmentRoot("/P/src1");
-		startDeltas();
-		move(root, new Path("/P/src2"));
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN}\n" + 
-			"	<project root>[*]: {CHILDREN}\n" + 
-			"		src2[+]: {MOVED_FROM(<default> [in src1 [in P]])}\n" + 
-			"	src1[-]: {MOVED_TO(src2 [in <project root> [in P]])}"
-		);
-	} finally {
-		stopDeltas();
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that renaming a source root keeps the same roots order,
- * and that it triggers the right delta and that the model is up-to-date.
- */
-public void testRenameSourceFolder2() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src1", "src2", "src3"});
-		
-		// rename src1
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P/src1");
-		this.startDeltas();
-		this.move(root, new Path("/P/src4"));
-		assertDeltas(
-			"Unexpected delta after renaming src1",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src1[-]: {MOVED_TO(src4 [in P])}\n" + 
-			"	src4[+]: {MOVED_FROM(src1 [in P])}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src4\n" + 
-			"		<default>\n" + 
-			"	src2\n" + 
-			"		<default>\n" + 
-			"	src3\n" + 
-			"		<default>\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);
-			
-		// rename src2
-		root = this.getPackageFragmentRoot("/P/src2");
-		this.clearDeltas();
-		this.move(root, new Path("/P/src5"));
-		assertDeltas(
-			"Unexpected delta after renaming src2",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src2[-]: {MOVED_TO(src5 [in P])}\n" + 
-			"	src5[+]: {MOVED_FROM(src2 [in P])}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src4\n" + 
-			"		<default>\n" + 
-			"	src5\n" + 
-			"		<default>\n" + 
-			"	src3\n" + 
-			"		<default>\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);		
-
-		// rename src3
-		root = this.getPackageFragmentRoot("/P/src3");
-		this.clearDeltas();
-		this.move(root, new Path("/P/src6"));
-		assertDeltas(
-			"Unexpected delta after renaming src3",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	src3[-]: {MOVED_TO(src6 [in P])}\n" + 
-			"	src6[+]: {MOVED_FROM(src3 [in P])}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src4\n" + 
-			"		<default>\n" + 
-			"	src5\n" + 
-			"		<default>\n" + 
-			"	src6\n" + 
-			"		<default>\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);		
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that a simple rename of a jar file triggers the right delta
- * and that the model is up-to-date.
- */
-public void testRenameJarFile1() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"}, new String[] {"/P/myLib.jar"});
-		this.createFile("/P/myLib.jar", "");
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P/myLib.jar");
-		this.startDeltas();
-		this.move(root, new Path("/P/myLib2.jar"));
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	myLib.jar[-]: {MOVED_TO(myLib2.jar [in P])}\n" + 
-			"	myLib2.jar[+]: {MOVED_FROM(myLib.jar [in P])}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	myLib2.jar\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-/*
- * Ensure that renaming of a jar file that is referenced by 2 projects triggers the right delta
- * and that the model is up-to-date.
- */
-public void testRenameJarFile2() throws CoreException {
-	try {
-		IJavaScriptProject p1 = this.createJavaProject("P1", new String[] {"src"}, new String[] {"/P1/myLib.jar"});
-		this.createFile("/P1/myLib.jar", "");
-		IJavaScriptProject p2 = this.createJavaProject("P2", new String[] {"src"}, new String[] {"/P1/myLib.jar"});
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P1/myLib.jar");
-		this.startDeltas();
-		this.move(root, new Path("/P1/myLib2.jar"));
-		assertDeltas(
-			"Unexpected delta",
-			"P1[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	myLib.jar[-]: {MOVED_TO(myLib2.jar [in P1])}\n" + 
-			"	myLib2.jar[+]: {MOVED_FROM(myLib.jar [in P1])}\n" + 
-			"	ResourceDelta(/P1/.classpath)[*]\n" + 
-			"P2[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	/P1/myLib.jar[-]: {MOVED_TO(myLib2.jar [in P1])}\n" + 
-			"	/P1/myLib2.jar[+]: {MOVED_FROM(myLib.jar [in P1])}\n" + 
-			"	ResourceDelta(/P2/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P1\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	myLib2.jar\n" + 
-			"	L/P1/.classpath\n" + 
-			"	L/P1/.project",
-			p1);
-		assertJavaProject(
-			"P2\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	/P1/myLib2.jar\n" + 
-			"	L/P2/.classpath\n" + 
-			"	L/P2/.project",
-			p2);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P1");
-		this.deleteProject("P2");
-	}
-}
-/*
- * Ensure that renaming of a jar file to an existing file in REPLACE mode
- * triggers the right delta and that the model is up-to-date.
- */
-public void testRenameJarFile3() throws CoreException {
-	try {
-		IJavaScriptProject project = this.createJavaProject("P", new String[] {"src"}, new String[] {"/P/myLib1.jar", "/P/myLib2.jar"});
-		this.createFile("/P/myLib1.jar", "");
-		this.createFile("/P/myLib2.jar", "");
-
-		IPackageFragmentRoot root = this.getPackageFragmentRoot("/P/myLib1.jar");
-		this.startDeltas();
-		root.move(
-			new Path("/P/myLib2.jar"),
-			IResource.NONE,
-			IPackageFragmentRoot.ORIGINATING_PROJECT_INCLUDEPATH 
-				| IPackageFragmentRoot.DESTINATION_PROJECT_INCLUDEPATH 
-				| IPackageFragmentRoot.REPLACE,
-			null,
-			null);
-		assertDeltas(
-			"Unexpected delta",
-			"P[*]: {CHILDREN | CONTENT | CLASSPATH CHANGED}\n" + 
-			"	myLib1.jar[-]: {MOVED_TO(myLib2.jar [in P])}\n" + 
-			"	myLib2.jar[*]: {CONTENT | REORDERED | ARCHIVE CONTENT CHANGED}\n" + 
-			"	ResourceDelta(/P/.classpath)[*]"
-		);
-		assertJavaProject(
-			"P\n" + 
-			"	src\n" + 
-			"		<default>\n" + 
-			"	myLib2.jar\n" + 
-			"	L/P/.classpath\n" + 
-			"	L/P/.project",
-			project);
-	} finally {
-		this.stopDeltas();
-		this.deleteProject("P");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RunCompletionModelTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RunCompletionModelTests.java
deleted file mode 100644
index 218179f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RunCompletionModelTests.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.lang.reflect.*;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class RunCompletionModelTests extends junit.framework.TestCase {
-
-	protected static final boolean ONLY_JAVADOC = "true".equals(System.getProperty("onlyJavadoc", "false"));
-
-	public final static List COMPLETION_SUITES = new ArrayList();
-	static {
-		if (!ONLY_JAVADOC) {
-			if(false) COMPLETION_SUITES.add(CompletionTests.class);
-			COMPLETION_SUITES.add(CompletionTests2.class);
-			if(false) COMPLETION_SUITES.add(CompletionContextTests.class);
-			if(false) COMPLETION_SUITES.add(CompletionWithMissingTypesTests.class);
-			if(false) COMPLETION_SUITES.add(CompletionWithMissingTypesTests2.class);
-			if(false) COMPLETION_SUITES.add(SnippetCompletionContextTests.class);
-		}
-		if(false) COMPLETION_SUITES.add(JavadocTypeCompletionModelTest.class);
-		if(false) COMPLETION_SUITES.add(JavadocFieldCompletionModelTest.class);
-		if(false) COMPLETION_SUITES.add(JavadocMethodCompletionModelTest.class);
-		if(false) COMPLETION_SUITES.add(JavadocPackageCompletionModelTest.class);
-		if(false) COMPLETION_SUITES.add(JavadocTextCompletionModelTest.class);
-		if(false) COMPLETION_SUITES.add(JavadocBugsCompletionModelTest.class);
-		if(false) COMPLETION_SUITES.add(JavadocCompletionContextTests.class);
-	}
-
-	public static Class[] getTestClasses() {
-//		int size = COMPLETION_SUITES.size();
-//		if (!ONLY_JAVADOC) {
-//			Class[] testClasses = new Class[size+1];
-//			COMPLETION_SUITES.toArray(testClasses);
-//			testClasses[size] = CompletionTests2.class;
-//			testClasses[size+1] = CompletionWithMissingTypesTests2.class;
-//			if(false) testClasses[size+2] = SnippetCompletionTests.class;
-//			if(false) testClasses[size+3] = SnippetCompletionTests_1_5.class;
-//			return testClasses;
-//		}
-//		Class[] testClasses = new Class[size];
-		return  (Class[])COMPLETION_SUITES.toArray(new Class[COMPLETION_SUITES.size()]);
-		//return testClasses;
-	}
-
-	public RunCompletionModelTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite ts = new TestSuite(RunCompletionModelTests.class.getName());
-
-		// Store test classes with same "Completion"project
-		AbstractJavaModelCompletionTests.COMPLETION_SUITES = new ArrayList(COMPLETION_SUITES);
-
-		// Get all classes
-		Class[] allClasses = getTestClasses();
-
-		// Reset forgotten subsets of tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS = null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-
-		// Add all tests suite of tests
-		for (int i = 0, length = allClasses.length; i < length; i++) {
-			Class testClass = allClasses[i];
-
-			// call the suite() method and add the resulting suite to the suite
-			try {
-				Method suiteMethod = testClass.getDeclaredMethod("suite", new Class[0]); //$NON-NLS-1$
-				Test suite = (Test) suiteMethod.invoke(null, new Object[0]);
-				ts.addTest(suite);
-			} catch (IllegalAccessException e) {
-				e.printStackTrace();
-			} catch (InvocationTargetException e) {
-				e.getTargetException().printStackTrace();
-			} catch (NoSuchMethodException e) {
-				e.printStackTrace();
-			}
-		}
-		return ts;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RunJavaSearchTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RunJavaSearchTests.java
deleted file mode 100644
index 12c4f31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/RunJavaSearchTests.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.lang.reflect.*;
-import java.util.*;
-import java.util.ArrayList;
-
-import org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class RunJavaSearchTests extends junit.framework.TestCase {
-
-	public final static List TEST_CLASSES = new ArrayList();
-	static {
-		TEST_CLASSES.add(JavaSearchTests.class);
-		TEST_CLASSES.add(WorkingCopySearchTests.class);
-		TEST_CLASSES.add(JavaSearchJavadocTests.class);
-	}
-
-	public static Class[] getTestClasses() {
-		return (Class[]) TEST_CLASSES.toArray();
-	}
-
-	public RunJavaSearchTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite ts = new TestSuite(RunJavaSearchTests.class.getName());
-
-		// Store test classes with same "JavaSearch"project
-		AbstractJavaSearchTests.JAVA_SEARCH_SUITES = new ArrayList(TEST_CLASSES);
-
-		// Get all classes
-		List allClasses = new ArrayList(TEST_CLASSES);
-		allClasses.add(JavaSearchBugsTests.class);
-		allClasses.add(JavaSearchMultipleProjectsTests.class);
-		allClasses.add(SearchTests.class);
-		allClasses.add(JavaSearchScopeTests.class);
-
-		// Reset forgotten subsets of tests
-		TestCase.TESTS_PREFIX = null;
-		TestCase.TESTS_NAMES = null;
-		TestCase.TESTS_NUMBERS = null;
-		TestCase.TESTS_RANGE = null;
-		TestCase.RUN_ONLY_ID = null;
-
-		// Add all tests suite of tests
-		for (int i = 0, size = allClasses.size(); i < size; i++) {
-			Class testClass = (Class) allClasses.get(i);
-
-			// call the suite() method and add the resulting suite to the suite
-			try {
-				Method suiteMethod = testClass.getDeclaredMethod("suite", new Class[0]); //$NON-NLS-1$
-				Test suite = (Test) suiteMethod.invoke(null, new Object[0]);
-				ts.addTest(suite);
-			} catch (IllegalAccessException e) {
-				e.printStackTrace();
-			} catch (InvocationTargetException e) {
-				e.getTargetException().printStackTrace();
-			} catch (NoSuchMethodException e) {
-				e.printStackTrace();
-			}
-		}
-		return ts;
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SearchParticipantTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SearchParticipantTests.java
deleted file mode 100644
index 460a9b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SearchParticipantTests.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-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.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.search.*;
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaSearchTests.JavaSearchResultCollector;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.core.search.JavaSearchDocument;
-import org.eclipse.wst.jsdt.internal.core.search.indexing.SourceIndexer;
-import org.eclipse.wst.jsdt.internal.core.search.processing.JobManager;
-
-/**
- * Tests the search participant supprt.
- */
-public class SearchParticipantTests extends ModifyingResourceTests implements IJavaScriptSearchConstants {
-
-	IJavaScriptProject project;
-	boolean deleteProject = true;
-
-	public class TestSearchParticipant extends SearchParticipant {
-		
-		class WrapperDocument  extends SearchDocument {
-			
-			private SearchDocument document;
-			
-			WrapperDocument(SearchDocument document, SearchParticipant participant) {
-				super(document.getPath().replaceAll(".test", ".js"), participant);
-				this.document = document;
-			}
-
-			public byte[] getByteContents() {
-				return this.document.getByteContents();
-			}
-
-			public char[] getCharContents() {
-				return this.document.getCharContents();
-			}
-
-			public String getEncoding() {
-				return this.document.getEncoding();
-			}
-		}
-				
-		private SearchParticipant defaultSearchParticipant = SearchEngine.getDefaultSearchParticipant();
-		
-		public SearchDocument getDocument(String documentPath) {
-			return new TestSearchDocument(documentPath, this);
-		}
-
-		public void indexDocument(SearchDocument document, IPath indexLocation) {
-			((TestSearchDocument) document).indexingRequested = true;
-			document.removeAllIndexEntries();
-			String documentPath = document.getPath();
-			if (documentPath.endsWith(".test")) {
-				new SourceIndexer(document).indexDocument();
-			}
-		}
-
-		public void locateMatches(SearchDocument[] documents, SearchPattern pattern, IJavaScriptSearchScope scope, SearchRequestor requestor, IProgressMonitor monitor) throws CoreException {
-			int length = documents.length;
-			SearchDocument[] wrapperDocuments = new SearchDocument[length];
-			for (int i = 0; i < length; i++) {
-				wrapperDocuments[i] = new WrapperDocument(documents[i], this);
-			}
-			this.defaultSearchParticipant.locateMatches(wrapperDocuments, pattern, scope, requestor, monitor);
-		}
-
-		public IPath[] selectIndexes(SearchPattern query, IJavaScriptSearchScope scope) {
-			return new IPath[] {getIndexLocation()};
-		}
-	}
-	
-	public class TestSearchDocument extends JavaSearchDocument {
-
-		public boolean indexingRequested;
-		private String fileSystemPath;
-
-		protected TestSearchDocument(String documentPath, SearchParticipant participant) {
-			super(documentPath, participant);
-			this.fileSystemPath = getWorkspaceRoot().getFile(new Path(documentPath)).getLocation().toOSString();
-		}
-
-		public byte[] getByteContents() {
-			String fileContent = Util.fileContent(this.fileSystemPath);
-			if (fileContent == null) return null;
-			return fileContent.getBytes();
-		}
-
-		public char[] getCharContents() {
-			String fileContent = Util.fileContent(this.fileSystemPath);
-			if (fileContent == null) return null;
-			return fileContent.toCharArray();
-		}
-
-		public String getEncoding() {
-			return null;
-		}
-	}
-	
-	public class TestResultCollector extends JavaSearchResultCollector {
-		protected char[] getSource(IResource resource, IJavaScriptElement element, IJavaScriptUnit unit) throws JavaScriptModelException {
-			IPath path = resource.getLocation().removeFileExtension().addFileExtension("test");
-			String fileContent = Util.fileContent(path.toFile().getPath());
-			if (fileContent == null) return null;
-			return fileContent.toCharArray();
-		}
-		protected String getPathString(IResource resource, IJavaScriptElement element) {
-			return super.getPathString(resource, element).replaceAll(".js", ".test");
-		}
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(SearchParticipantTests.class);
-	}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		deleteFile(getIndexLocation().toFile());
-	}
-
-	public void tearDownSuite() throws Exception {
-		super.tearDownSuite();
-		if (this.project != null) {
-			deleteProject("P");
-		}
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		if (this.project == null) {
-			this.project = createJavaProject("P");
-		}
-		this.deleteProject = true;
-		if (JobManager.VERBOSE) {
-			System.out.println("--------------------------------------------------------------------------------");
-			System.out.println("Run test "+getName()+"...");
-		}
-	}
-
-	protected void tearDown() throws Exception {
-		// Do not delete specific index file between tests as corresponding still lives in IndexManager cache
-		// TODO (frederic) Uncomment when bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=116650 will be fixed
-		//deleteFile(getIndexLocation().toFile());
-		if (this.deleteProject) {
-			deleteProject("P");
-			this.project = null;
-		}
-		super.tearDown();
-	}
-
-	public SearchParticipantTests(String name) {
-		super(name);
-	}
-
-	IPath getIndexLocation() {
-		return new Path(getExternalPath() + "test.index");
-	}
-
-	/*
-	 * Ensures that scheduleDocumentIndexing(...) triggers a call to indexDocument(...)
-	 * (case of document existing on disk)
-	 */
-	public void testScheduleDocumentIndexing1() throws CoreException {
-		createFile("/P/X.test", "");
-		TestSearchParticipant participant = new TestSearchParticipant();
-		TestSearchDocument document = new TestSearchDocument("/P/X.test", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-		assertTrue("Should have requested to index document", document.indexingRequested);
-	}
-
-	/*
-	 * Ensures that scheduleDocumentIndexing(...) triggers a call to indexDocument(...)
-	 * (case of document that doesn't exist on disk)
-	 */
-	public void testScheduleDocumentIndexing2() throws CoreException {
-		TestSearchParticipant participant = new TestSearchParticipant();
-		TestSearchDocument document = new TestSearchDocument("/P/X.test", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-		assertTrue("Should have requested to index document", document.indexingRequested);
-	}
-
-	/*
-	 * Ensures that adding index entries through indexDocument() updates the index file.
-	 */
-	public synchronized void testIndexDocument01() throws CoreException, InterruptedException {
-		createFile(
-			"/P/X.test",
-			"function X() {\n" +
-			"}"
-		);
-		TestSearchParticipant participant = new TestSearchParticipant();
-		TestSearchDocument document = new TestSearchDocument("/P/X.test", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-		wait(1100); // wait more than 1000ms so as to allow for the index to be saved on disk
-		document = new TestSearchDocument("/P/no", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-		assertTrue("Index file should have been written",  getIndexLocation().toFile().length() > 0);
-
-		// remove index file
-		participant.removeIndex(getIndexLocation());
-		assertFalse("Index file should have been removed",  getIndexLocation().toFile().exists());
-	}
-
-	/*
-	 * Ensures that adding index entries through indexDocument() updates the index file
-	 * and that exit session keeps it.
-	 */
-	public synchronized void testIndexDocument02() throws CoreException, InterruptedException {
-		TestSearchParticipant participant = new TestSearchParticipant(){
-			public void indexDocument(SearchDocument document, IPath indexLocation) {
-				if (!document.getPath().equals("/P/no")) {
-					for (int i = 0; i < 1000; i++) {
-						document.addIndexEntry(("category" + i).toCharArray(), ("key" + i).toCharArray());
-					}
-				}
-			}
-		};
-		TestSearchDocument document = new TestSearchDocument("/P/X.test", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-		wait(1100); // wait more than 1000ms so as to allow for the index to be saved on disk
-		document = new TestSearchDocument("/P/no", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-		wait(1100); // wait more than 1000ms so as to allow for the index to be saved on disk
-		assertTrue("Index file should have been written",  getIndexLocation().toFile().length() > 0);
-
-		// shutdown
-		simulateExit();
-		assertTrue("Index file should stay after shutdown",  getIndexLocation().toFile().length() > 0);
-		this.deleteProject = false;
-
-		// remove index file
-		participant.removeIndex(getIndexLocation());
-		assertFalse("Index file should have been removed",  getIndexLocation().toFile().exists());
-
-		// restart
-		simulateRestart();
-	}
-
-	/*
-	 * Ensures that adding index entries through indexDocument() updates the index file.
-	 */
-	public synchronized void testIndexDocument03() throws CoreException, InterruptedException {
-		createFile(
-			"/P/X.test",
-			"function X() {\n" +
-			"}"
-		);
-		TestSearchParticipant participant = new TestSearchParticipant();
-		TestSearchDocument document = new TestSearchDocument("/P/X.test", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-		wait(1100); // wait more than 1000ms so as to allow for the index to be saved on disk
-		document = new TestSearchDocument("/P/no", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-		assertTrue("Index file should have been written",  getIndexLocation().toFile().length() > 0);
-
-		// remove index file
-		participant.removeIndex(getIndexLocation());
-		assertFalse("Index file should have been removed",  getIndexLocation().toFile().exists());
-	}
-	
-	/*
-	 * Ensures that a simple search that forwards queries to the default participant works as expected
-	 */
-	public void testSearch() throws CoreException {
-		createFile(
-			"/P/X.test",
-			"function X() {\n" +
-			"}"
-		);
-
-		// index file
-		TestSearchParticipant participant = new TestSearchParticipant();
-		TestSearchDocument document = new TestSearchDocument("/P/X.test", participant);
-		participant.scheduleDocumentIndexing(document, getIndexLocation());
-		waitUntilIndexesReady();
-
-		// search for declaration of X
-		SearchPattern pattern = SearchPattern.createPattern("X", IJavaScriptSearchConstants.FUNCTION, IJavaScriptSearchConstants.FUNCTION, SearchPattern.R_EXACT_MATCH);
-		IJavaScriptSearchScope scope = SearchEngine.createWorkspaceScope();
-		SearchRequestor requestor =  new TestResultCollector();
-		new SearchEngine().search(pattern, new SearchParticipant[] {participant}, scope, requestor, null);
-		assertSearchResults(
-			"X.test X [X]",
-			requestor);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SearchTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SearchTests.java
deleted file mode 100644
index bf4b585..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SearchTests.java
+++ /dev/null
@@ -1,998 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.compiler.CharOperation;
-import org.eclipse.wst.jsdt.core.search.*;
-import org.eclipse.wst.jsdt.core.tests.model.Semaphore.TimeOutException;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-import org.eclipse.wst.jsdt.internal.core.JavaElement;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.LocalVariable;
-import org.eclipse.wst.jsdt.internal.core.search.BasicSearchEngine;
-import org.eclipse.wst.jsdt.internal.core.search.indexing.IndexManager;
-import org.eclipse.wst.jsdt.internal.core.search.processing.IJob;
-
-import junit.framework.Test;
-
-/*
- * Test indexing support.
- */
-public class SearchTests extends ModifyingResourceTests implements IJavaScriptSearchConstants {
-	/*
-	 * Empty jar contents.
-	 * Generated using the following code:
-	 
-	 	String filePath = "d:\\temp\\empty.jar";
-		new JarOutputStream(new FileOutputStream(filePath), new Manifest()).close();
-		byte[] contents = org.eclipse.wst.jsdt.internal.compiler.util.Util.getFileByteContent(new File(filePath));
-		System.out.print("{");
-		for (int i = 0, length = contents.length; i < length; i++) {
-			System.out.print(contents[i]);
-			System.out.print(", ");
-		}
-		System.out.print("}");
-	 */
-	static final byte[] EMPTY_JAR = {80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 106, -100, 116, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 4, 0, 77, 69, 84, 65, 45, 73, 78, 70, 47, 77, 65, 78, 73, 70, 69, 83, 84, 46, 77, 70, -2, -54, 0, 0, -29, -27, 2, 0, 80, 75, 7, 8, -84, -123, -94, 20, 4, 0, 0, 0, 2, 0, 0, 0, 80, 75, 1, 2, 20, 0, 20, 0, 8, 0, 8, 0, 106, -100, 116, 46, -84, -123, -94, 20, 4, 0, 0, 0, 2, 0, 0, 0, 20, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 84, 65, 45, 73, 78, 70, 47, 77, 65, 78, 73, 70, 69, 83, 84, 46, 77, 70, -2, -54, 0, 0, 80, 75, 5, 6, 0, 0, 0, 0, 1, 0, 1, 0, 70, 0, 0, 0, 74, 0, 0, 0, 0, 0, };
-	class WaitUntilReadyMonitor implements IProgressMonitor {
-		public Semaphore sem = new Semaphore();
-		public void beginTask(String name, int totalWork) {
-		}
-		public void internalWorked(double work) {
-		}
-		public void done() {
-		}
-		public boolean isCanceled() {
-			return false;
-		}
-		public void setCanceled(boolean value) {
-		}
-		public void setTaskName(String name) {
-		}
-		public void subTask(String name) {
-			// concurrent job is signaling it is working
-			this.sem.release();
-		}
-		public void worked(int work) {
-		}
-	}
-	public static class SearchTypeNameRequestor extends TypeNameRequestor {
-		Vector results = new Vector();
-		public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path) {
-			char[] typeName = 
-				CharOperation.concat(
-					CharOperation.concatWith(enclosingTypeNames, '$'), 
-					simpleTypeName,
-					'$');
-			results.addElement(new String(CharOperation.concat(packageName, typeName, '.')));
-		}
-		public String toString(){
-			int length = results.size();
-			String[] strings = new String[length];
-			results.toArray(strings);
-			org.eclipse.wst.jsdt.internal.core.util.Util.sort(strings);
-			StringBuffer buffer = new StringBuffer(100);
-			for (int i = 0; i < length; i++){
-				buffer.append(strings[i]);
-				if (i != length-1) {
-					buffer.append('\n');
-				}
-			}
-			return buffer.toString();
-		}
-		public int size() {
-			return this.results.size();
-		}
-	}
-	class WaitingJob implements IJob {
-		static final int MAX_WAIT = 30000; // wait 30s max
-		Semaphore startingSem = new Semaphore();
-		Semaphore runningSem = new Semaphore();
-		public boolean belongsTo(String jobFamily) {
-			return false;
-		}
-		public void cancel() {
-		}
-		public void ensureReadyToRun() {
-		}
-		public boolean execute(IProgressMonitor progress) {
-			this.startingSem.release();
-			try {
-				this.runningSem.acquire(MAX_WAIT);
-			} catch (TimeOutException e) {
-				e.printStackTrace();
-			}
-			return true;
-		}
-	}
-static {
-//	TESTS_NAMES = new String[] { "testSearchPatternCreation25" };
-}
-public static Test suite() {
-	return buildModelTestSuite(SearchTests.class);
-}
-
-
-public SearchTests(String name) {
-	super(name);
-}
-protected void assertAllTypes(int waitingPolicy, IProgressMonitor progressMonitor, String expected) throws JavaScriptModelException {
-	assertAllTypes("Unexpected all types", null/* no specific project*/, waitingPolicy, progressMonitor, expected);
-}
-protected void assertAllTypes(String expected) throws JavaScriptModelException {
-	assertAllTypes(WAIT_UNTIL_READY_TO_SEARCH, null/* no progress monitor*/, expected);
-}
-protected void assertAllTypes(String message, IJavaScriptProject project, String expected) throws JavaScriptModelException {
-	assertAllTypes(message, project, WAIT_UNTIL_READY_TO_SEARCH, null/* no progress monitor*/, expected);
-}
-protected void assertAllTypes(String message, IJavaScriptProject project, int waitingPolicy, IProgressMonitor progressMonitor, String expected) throws JavaScriptModelException {
-	IJavaScriptSearchScope scope =
-		project == null ?
-			SearchEngine.createWorkspaceScope() :
-			SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {project});
-	SearchEngine searchEngine = new SearchEngine();
-	SearchTypeNameRequestor requestor = new SearchTypeNameRequestor();
-	searchEngine.searchAllTypeNames(
-		null,
-		SearchPattern.R_EXACT_MATCH,
-		null,
-		SearchPattern.R_PATTERN_MATCH, // case insensitive
-		TYPE,
-		scope, 
-		requestor,
-		waitingPolicy,
-		progressMonitor);
-	String actual = requestor.toString();
-	if (!expected.equals(actual)){
-	 	System.out.println(Util.displayString(actual, 3));
-	}
-	assertEquals(
-		message,
-		expected,
-		actual);
-}
-protected void assertPattern(String expected, SearchPattern actualPattern) {
-	String actual = actualPattern == null ? null : actualPattern.toString();
-	if (!expected.equals(actual)) {
-		System.out.print(actual == null ? "null" : Util.displayString(actual, 2));
-		System.out.println(",");
-	}
-	assertEquals(
-		"Unexpected search pattern",
-		expected,
-		actual);
-}
-protected void assertValidMatchRule(String pattern, int rule) {
-	assertValidMatchRule(pattern, rule, rule);
-}
-protected void assertValidMatchRule(String pattern, int rule, int expected) {
-	int validated = SearchPattern.validateMatchRule(pattern, rule);
-	String validatedRule = BasicSearchEngine.getMatchRuleString(validated);
-	String expectedRule = BasicSearchEngine.getMatchRuleString(expected);
-	if (!validatedRule.equals(expectedRule)) {
-		System.out.println("Test "+getName());
-		System.out.print("	assertValidMatchRule(\"");
-		System.out.print(pattern);
-		System.out.print("\", ");
-		System.out.print(validatedRule);
-		System.out.println(");");
-		assertEquals(pattern+"' does not match expected match rule!", expectedRule, validatedRule);
-	}
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	createJavaProject("P");
-	createFolder("/P/x");
-	createFile(
-		"/P/x/Foo.js",
-		"function foo1(){\n" +
-		"}"
-	);
-	createFile(
-		"/P/x/I.js",
-		"var v;\n" +
-		""
-	);
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("P");
-	super.tearDownSuite();
-}
-/*
- * Ensure that changing the classpath in the middle of reindexing
- * a project causes another request to reindex.
- */
-public void testChangeClasspath() throws CoreException, TimeOutException {
-	IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
-	WaitingJob job = new WaitingJob();
-	try {
-		// setup: suspend indexing and create a project (prj=src) with one cu
-		indexManager.disable();
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				createJavaProject("P1");
-				createFile(
-						"/P1/X.js",
-						"function bar() {\n" +
-						"}"
-					);
-			}
-		}, null);
-		
-		// add waiting job and wait for it to be executed
-		indexManager.request(job);
-		indexManager.enable();
-		job.startingSem.acquire(30000); // wait for job to start (wait 30s max)
-		
-		// remove source folder from classpath
-		IJavaScriptProject project = getJavaProject("P1");
-		project.setRawIncludepath(
-			new IIncludePathEntry[0], 
-			null);
-			
-		// resume waiting job
-		job.runningSem.release();
-		
-		assertAllTypes(
-			"Unexpected all types after removing source folder",
-			project,
-			""
-		);
-	} finally {
-		job.runningSem.release();
-		deleteProject("P1");
-		indexManager.enable();
-	}
-}
-/*
- * Ensure that removing a project source folder and adding another source folder removes the existing cus from the index
- * (regression test for bug 73356 Index not updated after adding a source folder
- */
-public void testChangeClasspath2() throws CoreException {
-	try {
-		final IJavaScriptProject project = createJavaProject("P1", new String[] {""});
-		createFile(
-				"/P1/X.js",
-				"function bar() {\n" +
-				"}"
-			);
-		assertAllTypes(
-			"Unexpected types before changing the classpath",
-			null, // workspace search
-			"X\n" + 
-			"java.io.Serializable\n" + 
-			"java.lang.Class\n" + 
-			"java.lang.CloneNotSupportedException\n" + 
-			"java.lang.Error\n" + 
-			"java.lang.Exception\n" + 
-			"java.lang.IllegalMonitorStateException\n" + 
-			"java.lang.InterruptedException\n" + 
-			"java.lang.Object\n" + 
-			"java.lang.RuntimeException\n" + 
-			"java.lang.String\n" + 
-			"java.lang.Throwable\n" + 
-			"x.y.Foo\n" + 
-			"x.y.I"
-		);
-		getWorkspace().run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				createFolder("/P1/src");
-				project.setRawIncludepath(createClasspath(new String[] {"/P1/src"}, false, false), null);
-			}
-		}, null);
-		assertAllTypes(
-			"Unexpected types after changing the classpath",
-			null, // workspace search
-			"java.io.Serializable\n" + 
-			"java.lang.Class\n" + 
-			"java.lang.CloneNotSupportedException\n" + 
-			"java.lang.Error\n" + 
-			"java.lang.Exception\n" + 
-			"java.lang.IllegalMonitorStateException\n" + 
-			"java.lang.InterruptedException\n" + 
-			"java.lang.Object\n" + 
-			"java.lang.RuntimeException\n" + 
-			"java.lang.String\n" + 
-			"java.lang.Throwable\n" + 
-			"x.y.Foo\n" + 
-			"x.y.I"
-		);
-	} finally {
-		deleteProject("P1");
-	}
-}
-/*
- * Ensure that performing a concurrent job while indexing a jar doesn't use the old index.
- * (regression test for bug 35306 Index update request can be incorrectly handled)
- */
-public void testConcurrentJob() throws CoreException, InterruptedException, IOException, TimeOutException {
-	IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
-	WaitingJob job = new WaitingJob();
-	try {
-		// setup: suspend indexing and create a project with one empty jar on its classpath
-		indexManager.disable();
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				createJavaProject("P1", new String[] {}, new String[] {"/P1/jclMin.jar"});
-				createFile("/P1/jclMin.jar", EMPTY_JAR);
-			}
-		}, null);
-		
-		// add waiting job and wait for it to be executed
-		indexManager.request(job);
-		indexManager.enable();
-		job.startingSem.acquire(30000); // wait for job to start (wait 30s max)
-				
-		final IJavaScriptProject project = getJavaProject("P1");
-			
-		// start concurrent job
-		final boolean[] success = new boolean[1];
-		final WaitUntilReadyMonitor monitor = new WaitUntilReadyMonitor();
-		Thread thread = new Thread() {
-			public void run() {
-				try {
-					assertAllTypes(
-						"Unexpected all types",
-						project,
-						WAIT_UNTIL_READY_TO_SEARCH,
-						monitor,
-						"java.io.Serializable\n" + 
-						"java.lang.Class\n" + 
-						"java.lang.CloneNotSupportedException\n" + 
-						"java.lang.Error\n" + 
-						"java.lang.Exception\n" + 
-						"java.lang.IllegalMonitorStateException\n" + 
-						"java.lang.InterruptedException\n" + 
-						"java.lang.Object\n" + 
-						"java.lang.RuntimeException\n" + 
-						"java.lang.String\n" + 
-						"java.lang.Throwable"
-					);
-				} catch (JavaScriptModelException e) {
-					e.printStackTrace();
-					return;
-				}
-				success[0] = true;
-			}
-		};
-		thread.setDaemon(true);
-		thread.start();
-			
-		// wait for concurrent job to start
-		monitor.sem.acquire(30000); // wait 30s max
-
-		// change jar contents
-		getFile("/P1/jclMin.jar").setContents(new FileInputStream(getSystemJsPathString()), IResource.NONE, null);
-			
-		// resume waiting job
-		job.runningSem.release();
-		
-		// wait for concurrent job to finish
-		thread.join(10000); // 10s max
-		
-		assertTrue("Failed to get all types", success[0]);
-				
-	} finally {
-		job.runningSem.release();
-		deleteProject("P1");
-		indexManager.enable();
-	}
-}
-/*
- * Ensures that passing a null progress monitor with a CANCEL_IF_NOT_READY_TO_SEARCH
- * waiting policy doesn't throw a NullPointerException but an OperationCanceledException.
- * (regression test for bug 33571 SearchEngine.searchAllTypeNames: NPE when passing null as progress monitor)
- */
- public void testNullProgressMonitor() throws CoreException, TimeOutException {
-	IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
-	WaitingJob job = new WaitingJob();
- 	try {
- 		// add waiting job and wait for it to be executed
-		indexManager.disable();
-		indexManager.request(job);
-		indexManager.enable();
-		job.startingSem.acquire(30000); // wait for job to start (wait 30s max)
-		
-		// query all type names with a null progress monitor
-		boolean operationCanceled = false;
-		try {
-			assertAllTypes(
-				CANCEL_IF_NOT_READY_TO_SEARCH,
-				null, // null progress monitor
-				"Should not get any type"
-			);
-		} catch (OperationCanceledException e) {
-			operationCanceled = true;
-		}
-		assertTrue("Should throw an OperationCanceledException", operationCanceled);
- 	} finally {
- 		job.runningSem.release();
- 	}
- }
- /*
-  * Ensures that types are found if the project is a lib folder
-  * (regression test for bug 83822 Classes at root of project not found in Open Type dialog)
-  */
- public void _testProjectLib() throws CoreException { // TODO disabled due to transcient failures (see bug 84164)
- 	try {
- 		IJavaScriptProject javaProject = createJavaProject("P1", new String[0], new String[] {"/P1"});
- 		createClassFile("/P1", "X.class", "public class X {}");
- 		IProject project = javaProject.getProject();
- 		project.close(null);
- 		waitUntilIndexesReady();
- 		project.open(null);
- 		assertAllTypes(
- 			"Unexpected types in P1",
- 			javaProject,
- 			"X"
- 		);
- 	} finally {
- 		deleteProject("P1");
- 	}
- }
-/*
- * Ensure that removing the outer folder from the classpath doesn't remove cus in inner folder
- * from index
- * (regression test for bug 32607 Removing outer folder removes nested folder's cus from index)
- */
-public void testRemoveOuterFolder() throws CoreException {
-	try {
-		// setup: one cu in a nested source folder
-		JavaScriptCore.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				IJavaScriptProject project = createJavaProject("P1");
-				project.setRawIncludepath(
-					createClasspath(new String[] {"/P1/src1", "src2/", "/P1/src1/src2", ""}, false/*no inclusion*/, true/*exclusion*/), 
-					null);
-				createFolder("/P1/src1/src2");
-				createFile(
-					"/P1/src1/src2/X.js",
-					"public class X {\n" +
-					"}"
-				);
-			}
-		}, null);
-		IJavaScriptProject project = getJavaProject("P1");
-		assertAllTypes(
-			"Unexpected all types after setup",
-			project,
-			"X"
-		);
-		
-		// remove outer folder from classpath
-		project.setRawIncludepath(
-			createClasspath(new String[] {"/P1/src1/src2", ""}, false/*no inclusion*/, true/*exclusion*/), 
-			null);
-		assertAllTypes(
-			"Unexpected all types after removing outer folder",
-			project,
-			"X"
-		);
-		
-	} finally {
-		deleteProject("P1");
-	}
-}
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation01() {
-
-	SearchPattern searchPattern = createPattern(
-			"main(*)", 
-			IJavaScriptSearchConstants.METHOD,
-			IJavaScriptSearchConstants.REFERENCES,
-			true); // case sensitive
-	
-	assertPattern(
-		"MethodReferencePattern: main(*), pattern match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation02() {
-
-	SearchPattern searchPattern = createPattern(
-			"main(*) void", 
-			IJavaScriptSearchConstants.METHOD,
-			IJavaScriptSearchConstants.REFERENCES,
-			true); // case sensitive
-	
-	assertPattern(
-		"MethodReferencePattern: main(*) --> void, pattern match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation03() {
-
-	SearchPattern searchPattern = createPattern(
-			"main(String*) void", 
-			IJavaScriptSearchConstants.METHOD,
-			IJavaScriptSearchConstants.REFERENCES,
-			true); // case sensitive
-	
-	assertPattern(
-		"MethodReferencePattern: main(String*) --> void, pattern match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation04() {
-
-	SearchPattern searchPattern = createPattern(
-			"main(*[])", 
-			IJavaScriptSearchConstants.METHOD,
-			IJavaScriptSearchConstants.REFERENCES,
-			true); // case sensitive
-	
-	assertPattern(
-		"MethodReferencePattern: main(*[]), pattern match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation05() {
-
-	SearchPattern searchPattern = createPattern(
-			"java.lang.*.main ", 
-			IJavaScriptSearchConstants.METHOD,
-			IJavaScriptSearchConstants.REFERENCES,
-			true); // case sensitive
-	
-	assertPattern(
-		"MethodReferencePattern: java.lang.*.main(...), pattern match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation06() {
-
-	SearchPattern searchPattern = createPattern(
-			"java.lang.* ", 
-			IJavaScriptSearchConstants.CONSTRUCTOR,
-			IJavaScriptSearchConstants.REFERENCES,
-			true); // case sensitive
-	
-	assertPattern(
-		"ConstructorReferencePattern: java.lang.*(...), pattern match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation07() {
-
-	SearchPattern searchPattern = createPattern(
-			"X(*,*)", 
-			IJavaScriptSearchConstants.CONSTRUCTOR,
-			IJavaScriptSearchConstants.REFERENCES,
-			true); // case sensitive
-	
-	assertPattern(
-		"ConstructorReferencePattern: X(*, *), pattern match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation08() {
-
-	SearchPattern searchPattern = createPattern(
-			"main(String*,*) void", 
-			IJavaScriptSearchConstants.METHOD,
-			IJavaScriptSearchConstants.REFERENCES,
-			true); // case sensitive
-	
-	assertPattern(
-		"MethodReferencePattern: main(String*, *) --> void, pattern match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation10() {
-
-	SearchPattern searchPattern = createPattern(
-			"x.y.z.Bar.field Foo", 
-			IJavaScriptSearchConstants.FIELD,
-			IJavaScriptSearchConstants.DECLARATIONS,
-			true); // case sensitive
-	
-	assertPattern(
-		"FieldDeclarationPattern: x.y.z.Bar.field --> Foo, exact match, case sensitive",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation12() {
-	IField field = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo").getField("field");
-	SearchPattern searchPattern = createPattern(
-			field, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"FieldReferencePattern: x.y.z.Foo.field --> int, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation13() {
-	IField field = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo").getField("field");
-	SearchPattern searchPattern = createPattern(
-			field, 
-			IJavaScriptSearchConstants.DECLARATIONS);
-	
-	assertPattern(
-		"FieldDeclarationPattern: x.y.z.Foo.field --> int, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation14() {
-	IField field = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo").getField("field");
-	SearchPattern searchPattern = createPattern(
-			field, 
-			IJavaScriptSearchConstants.ALL_OCCURRENCES);
-	
-	assertPattern(
-		"FieldCombinedPattern: x.y.z.Foo.field --> int, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation15() {
-	IImportDeclaration importDecl = getCompilationUnit("/P/x/y/z/Foo.js").getImport("x.y.*");
-	SearchPattern searchPattern = createPattern(
-			importDecl, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"PackageReferencePattern: <x.y>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation16() {
-	IFunction method = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo").getFunction("bar", new String[] {});
-	SearchPattern searchPattern = createPattern(
-			method, 
-			IJavaScriptSearchConstants.DECLARATIONS);
-	
-	assertPattern(
-		"MethodDeclarationPattern: x.y.z.Foo.bar() --> void, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation17() {
-	IFunction method = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo").getFunction("bar", new String[] {});
-	SearchPattern searchPattern = createPattern(
-			method, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"MethodReferencePattern: x.y.z.Foo.bar() --> void, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation18() {
-	IFunction method = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo").getFunction("bar", new String[] {});
-	SearchPattern searchPattern = createPattern(
-			method, 
-			IJavaScriptSearchConstants.ALL_OCCURRENCES);
-	
-	assertPattern(
-		"MethodCombinedPattern: x.y.z.Foo.bar() --> void, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation19() {
-	IType type = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo");
-	SearchPattern searchPattern = createPattern(
-			type, 
-			IJavaScriptSearchConstants.DECLARATIONS);
-	
-	assertPattern(
-		"TypeDeclarationPattern: pkg<x.y.z>, enclosing<>, type<Foo>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation20() {
-	IType type = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo");
-	SearchPattern searchPattern = createPattern(
-			type, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"TypeReferencePattern: qualification<x.y.z>, type<Foo>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation21() {
-	IType type = getCompilationUnit("/P/x/y/z/I.js").getType("I");
-	SearchPattern searchPattern = createPattern(
-			type, 
-			IJavaScriptSearchConstants.IMPLEMENTORS);
-	
-	assertPattern(
-		"SuperInterfaceReferencePattern: <I>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation22() {
-	IType type = getCompilationUnit("/P/x/y/z/Foo.js").getType("Foo");
-	SearchPattern searchPattern = createPattern(
-			type, 
-			IJavaScriptSearchConstants.ALL_OCCURRENCES);
-	
-	assertPattern(
-		"TypeDeclarationPattern: pkg<x.y.z>, enclosing<>, type<Foo>, exact match, case sensitive, erasure only\n" + 
-		"| TypeReferencePattern: qualification<x.y.z>, type<Foo>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation24() {
-	IPackageFragment pkg = getPackage("/P/x/y/z");
-	SearchPattern searchPattern = createPattern(
-			pkg, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"PackageReferencePattern: <x.y.z>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation25() {
-	IImportDeclaration importDecl = getCompilationUnit("/P/x/y/z/Foo.js").getImport("java.util.Vector");
-	SearchPattern searchPattern = createPattern(
-			importDecl, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"TypeReferencePattern: qualification<java.util>, type<Vector>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation26() {
-	IPackageFragment pkg = getPackage("/P/x/y/z");
-	SearchPattern searchPattern = createPattern(
-			pkg, 
-			IJavaScriptSearchConstants.DECLARATIONS);
-	
-	assertPattern(
-		"PackageDeclarationPattern: <x.y.z>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation28() {
-	IImportDeclaration importDecl = getCompilationUnit("/P/x/y/z/Foo.js").getImport("x.y.*");
-	SearchPattern searchPattern = createPattern(
-			importDecl, 
-			IJavaScriptSearchConstants.DECLARATIONS);
-	
-	assertPattern(
-		"PackageDeclarationPattern: <x.y>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test pattern creation
- */
-public void testSearchPatternCreation29() {
-	IPackageFragment pkg = getPackage("/P/x/y/z");
-	SearchPattern searchPattern = createPattern(
-			pkg, 
-			IJavaScriptSearchConstants.ALL_OCCURRENCES);
-	
-	assertPattern(
-		"PackageDeclarationPattern: <x.y.z>, exact match, case sensitive, erasure only\n" +
-		"| PackageReferencePattern: <x.y.z>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test LocalVarDeclarationPattern creation
- */
-public void testSearchPatternCreation30() {
-	ILocalVariable localVar = new LocalVariable((JavaElement)getCompilationUnit("/P/X.js").getType("X").getFunction("foo", new String[0]),  "var", 1, 2, 3, 4, "Z");
-	SearchPattern searchPattern = createPattern(
-			localVar, 
-			IJavaScriptSearchConstants.DECLARATIONS);
-	
-	assertPattern(
-		"LocalVarDeclarationPattern: var [in foo() [in X [in X.java [in <default> [in <project root> [in P]]]]]], exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test LocalVarReferencePattern creation
- */
-public void testSearchPatternCreation31() {
-	ILocalVariable localVar = new LocalVariable((JavaElement)getCompilationUnit("/P/X.js").getType("X").getFunction("foo", new String[0]),  "var", 1, 2, 3, 4, "Z");
-	SearchPattern searchPattern = createPattern(
-			localVar, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"LocalVarReferencePattern: var [in foo() [in X [in X.java [in <default> [in <project root> [in P]]]]]], exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test LocalVarCombinedPattern creation
- */
-public void testSearchPatternCreation32() {
-	ILocalVariable localVar = new LocalVariable((JavaElement)getCompilationUnit("/P/X.js").getType("X").getFunction("foo", new String[0]),  "var", 1, 2, 3, 4, "Z");
-	SearchPattern searchPattern = createPattern(
-			localVar, 
-			IJavaScriptSearchConstants.ALL_OCCURRENCES);
-	
-	assertPattern(
-		"LocalVarCombinedPattern: var [in foo() [in X [in X.java [in <default> [in <project root> [in P]]]]]], exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test TypeDeclarationPattern creation
- */
-public void testSearchPatternCreation33() {
-	IType localType = getCompilationUnit("/P/X.js").getType("X").getFunction("foo", new String[0]).getType("Y", 2);
-	SearchPattern searchPattern = createPattern(
-			localType, 
-			IJavaScriptSearchConstants.DECLARATIONS);
-	
-	assertPattern(
-		"TypeDeclarationPattern: pkg<>, enclosing<X.*>, type<Y>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test TypeReferencePattern creation
- */
-public void testSearchPatternCreation34() {
-	IType localType = getCompilationUnit("/P/X.js").getType("X").getFunction("foo", new String[0]).getType("Y", 3);
-	SearchPattern searchPattern = createPattern(
-			localType, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"TypeReferencePattern: qualification<X.*>, type<Y>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test TypeDeclarationPattern creation
- */
-public void testSearchPatternCreation35() {
-	IType localType = getCompilationUnit("/P/X.js").getType("X").getInitializer(1).getType("Y", 2);
-	SearchPattern searchPattern = createPattern(
-			localType, 
-			IJavaScriptSearchConstants.DECLARATIONS);
-	
-	assertPattern(
-		"TypeDeclarationPattern: pkg<>, enclosing<X.*>, type<Y>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-
-/**
- * Test TypeReferencePattern creation
- */
-public void testSearchPatternCreation36() {
-	IType localType = getCompilationUnit("/P/X.js").getType("X").getInitializer(2).getType("Y", 3);
-	SearchPattern searchPattern = createPattern(
-			localType, 
-			IJavaScriptSearchConstants.REFERENCES);
-	
-	assertPattern(
-		"TypeReferencePattern: qualification<X.*>, type<Y>, exact match, case sensitive, erasure only",
-		searchPattern);
-}
-/**
- * Test CamelCase validation
- */
-public void testSearchPatternValidMatchRule01() {
-	assertValidMatchRule("foo", SearchPattern.R_EXACT_MATCH, SearchPattern.R_EXACT_MATCH);
-	assertValidMatchRule("foo", SearchPattern.R_PREFIX_MATCH, SearchPattern.R_PREFIX_MATCH);
-	assertValidMatchRule("foo", SearchPattern.R_PATTERN_MATCH, SearchPattern.R_EXACT_MATCH);
-	assertValidMatchRule("foo", SearchPattern.R_PATTERN_MATCH|SearchPattern.R_PREFIX_MATCH, SearchPattern.R_PREFIX_MATCH);
-	assertValidMatchRule("foo", SearchPattern.R_CAMELCASE_MATCH, SearchPattern.R_PREFIX_MATCH|SearchPattern.R_CASE_SENSITIVE);
-}
-public void testSearchPatternValidMatchRule02() {
-	assertValidMatchRule("CP*P", SearchPattern.R_EXACT_MATCH, SearchPattern.R_PATTERN_MATCH);
-	assertValidMatchRule("CP*P", SearchPattern.R_PREFIX_MATCH, SearchPattern.R_PATTERN_MATCH);
-	assertValidMatchRule("CP*P", SearchPattern.R_PATTERN_MATCH, SearchPattern.R_PATTERN_MATCH);
-	assertValidMatchRule("CP*P", SearchPattern.R_PATTERN_MATCH|SearchPattern.R_PREFIX_MATCH, SearchPattern.R_PATTERN_MATCH);
-	assertValidMatchRule("CP*P", SearchPattern.R_CAMELCASE_MATCH, SearchPattern.R_PATTERN_MATCH);
-}
-public void testSearchPatternValidMatchRule03() {
-	assertValidMatchRule("NPE", SearchPattern.R_CAMELCASE_MATCH);
-	assertValidMatchRule("NPE",
-		SearchPattern.R_CAMELCASE_MATCH|SearchPattern.R_PREFIX_MATCH|SearchPattern.R_CASE_SENSITIVE,
-		SearchPattern.R_CAMELCASE_MATCH);
-	assertValidMatchRule("nPE", SearchPattern.R_CAMELCASE_MATCH);
-	assertValidMatchRule("NuPoEx", SearchPattern.R_CAMELCASE_MATCH);
-	assertValidMatchRule("oF", SearchPattern.R_CAMELCASE_MATCH);
-}
-public void testSearchPatternValidMatchRule04() {
-	assertValidMatchRule("Nu/Po/Ex",
-		SearchPattern.R_CAMELCASE_MATCH,
-		SearchPattern.R_PREFIX_MATCH|SearchPattern.R_CASE_SENSITIVE);
-	assertValidMatchRule("Nu.Po.Ex",
-		SearchPattern.R_CAMELCASE_MATCH|SearchPattern.R_PREFIX_MATCH,
-		SearchPattern.R_PREFIX_MATCH);
-}
-public void testSearchPatternValidMatchRule05() {
-	assertValidMatchRule("hashMap", SearchPattern.R_CAMELCASE_MATCH);
-	assertValidMatchRule("Hashmap", SearchPattern.R_CAMELCASE_MATCH);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SelectionJavadocModelTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SelectionJavadocModelTests.java
deleted file mode 100644
index 3cf5151..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SelectionJavadocModelTests.java
+++ /dev/null
@@ -1,1019 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-
-public class SelectionJavadocModelTests extends AbstractJavaModelTests {
-	
-	IJavaScriptElement element;
-
-	public SelectionJavadocModelTests(String name) {
-		super(name, 3);
-//		this.endChar = "";
-		this.displayName = true;
-	}
-
-	static {
-//		TESTS_PREFIX = "testBug";
-//		TESTS_NUMBERS = new int[] { 86380 };
-//		TESTS_RANGE = new int[] { 13, 16 };
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(SelectionJavadocModelTests.class);
-	}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();	
-		setUpJavaProject("Tests", "1.5");
-	}
-	public void tearDownSuite() throws Exception {
-		deleteProject("Tests");
-		super.tearDownSuite();
-	}
-
-	void setUnit(String name, String source) throws JavaScriptModelException {
-		this.workingCopies = new IJavaScriptUnit[1];
-		this.workingCopies[0] = getWorkingCopy("/Tests/"+name, source);
-	}
-
-	void assertElementEquals(String message, String expected) {
-		assertElementEquals(message, expected, this.element);
-	}
-
-	void assertSelectionIsEmpty(IJavaScriptUnit unit, String selection) throws JavaScriptModelException {
-		assertSelectionIsEmpty(unit, selection, 1);
-	}
-
-	void assertSelectionIsEmpty(IJavaScriptUnit unit, String selection, int occurences) throws JavaScriptModelException {
-		int[] selectionPositions = selectionInfo(unit, selection, occurences);
-		IJavaScriptElement[] elements = unit.codeSelect(selectionPositions[0], selectionPositions[1]);
-		assertTrue("Selection should be empty", elements == null || elements.length == 0);
-	}
-
-	public void test00() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"" + 
-			"" + 
-			"function bar() {\n" + 
-			"		foo();\n" + 
-			"}\n" + 
-			"function foo() {}\n" + 
-			"}\n"
-		);
-		this.element = selectMethod(this.workingCopies[0], "foo");
-		assertElementEquals("Invalid selected method",
-			"foo() [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]"
-		);
-	}
-
-
-	public void test01() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"" + 
-			"" + 
-			"function foo() {}\n" + 
-			"}\n" + 
-			"function bar() {\n" + 
-			"		foo();\n" + 
-			"}\n"
-		);
-		this.element = selectMethod(this.workingCopies[0], "foo");
-		assertElementEquals("Invalid selected method",
-			"foo() [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]"
-		);
-	}
-
-	public void test01a() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"" + 
-			"" + 
-			"function bar() {\n" + 
-			"		foo();\n" + 
-			"}\n" + 
-			"function foo() {}\n" + 
-			"}\n"
-		);
-		this.element = selectMethod(this.workingCopies[0], "foo");
-		assertElementEquals("Invalid selected method",
-			"foo() [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]"
-		);
-	}
-
-	public void test02() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	/** {@link #foo() foo} */\n" + 
-			"	void bar() {\n" + 
-			"		foo();\n" + 
-			"	}\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		this.element = selectMethod(this.workingCopies[0], "foo");
-		assertElementEquals("Invalid selected method",
-			"foo() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]"
-		);
-	}
-
-	public void test03() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	/** @see Test */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		this.element = selectType(this.workingCopies[0], "Test", 2);
-		assertElementEquals("Invalid selected type",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]"
-		);
-	}
-
-	public void test04() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	/** Javadoc {@link Test} */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		this.element = selectType(this.workingCopies[0], "Test", 2);
-		assertElementEquals("Invalid selected type",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]"
-		);
-	}
-
-	public void test05() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	int field;\n" + 
-			"	/** @see #field */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		this.element = selectField(this.workingCopies[0], "field", 2);
-		assertElementEquals("Invalid selected field",
-			"field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]"
-		);
-	}
-
-	public void test06() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	int field;\n" + 
-			"	/**{@link #field}*/\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		this.element = selectField(this.workingCopies[0], "field", 2);
-		assertElementEquals("Invalid selected field",
-			"field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]"
-		);
-	}
-
-	public void test07() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Test#field\n" + 
-			"	 * @see #foo(int, String)\n" + 
-			"	 * @see Test#foo(int, String)\n" + 
-			"	 */\n" + 
-			"	void bar() {\n" + 
-			"		foo(0, \"\");\n" + 
-			"	}\n" + 
-			"	int field;\n" + 
-			"	void foo(int x, String s) {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[7];
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		elements[1] = selectField(this.workingCopies[0], "field");
-		elements[2] = selectMethod(this.workingCopies[0], "foo");
-		elements[3] = selectType(this.workingCopies[0], "String");
-		elements[4] = selectType(this.workingCopies[0], "Test", 3);
-		elements[5] = selectMethod(this.workingCopies[0], "foo", 2);
-		elements[6] = selectType(this.workingCopies[0], "String", 2);
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo(int, String) [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"String [in String.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]\n" + 
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"foo(int, String) [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"String [in String.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]",
-			elements
-		);
-	}
-
-	public void test08() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * First {@link #foo(int, String)}\n" + 
-			"	 * Second {@link Test#foo(int, String) method foo}\n" + 
-			"	 * Third {@link Test#field field}\n" + 
-			"	 */\n" + 
-			"	void bar() {\n" + 
-			"		foo(0, \"\");\n" + 
-			"	}\n" + 
-			"	int field;\n" + 
-			"	void foo(int x, String s) {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[7];
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		elements[1] = selectField(this.workingCopies[0], "field");
-		elements[2] = selectMethod(this.workingCopies[0], "foo");
-		elements[3] = selectType(this.workingCopies[0], "String");
-		elements[4] = selectType(this.workingCopies[0], "Test", 3);
-		elements[5] = selectMethod(this.workingCopies[0], "foo", 2);
-		elements[6] = selectType(this.workingCopies[0], "String", 2);
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo(int, String) [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"String [in String.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]\n" + 
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"foo(int, String) [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"String [in String.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]",
-			elements
-		);
-	}
-
-	public void test09() throws JavaScriptModelException {
-		setUnit("test/junit/Test.js",
-			"package test.junit;\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see test.junit.Test\n" + 
-			"	 * @see test.junit.Test#field\n" + 
-			"	 * @see test.junit.Test#foo(Object[] array)\n" + 
-			"	 */\n" + 
-			"	void bar() {\n" + 
-			"		foo(null);\n" + 
-			"	}\n" + 
-			"	int field;\n" + 
-			"	void foo(Object[] array) {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[6];
-		assertSelectionIsEmpty(this.workingCopies[0], "test", 2);
-		assertSelectionIsEmpty(this.workingCopies[0], "junit", 2);
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		assertSelectionIsEmpty(this.workingCopies[0], "test", 3);
-		assertSelectionIsEmpty(this.workingCopies[0], "junit", 3);
-		elements[1] = selectType(this.workingCopies[0], "Test", 3);
-		elements[2] = selectField(this.workingCopies[0], "field");
-		assertSelectionIsEmpty(this.workingCopies[0], "test", 4);
-		assertSelectionIsEmpty(this.workingCopies[0], "junit", 4);
-		elements[3] = selectType(this.workingCopies[0], "Test", 4);
-		elements[4] = selectMethod(this.workingCopies[0], "foo");
-		elements[5] = selectType(this.workingCopies[0], "Object");
-		assertSelectionIsEmpty(this.workingCopies[0], "array");
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]\n" + 
-			"Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]\n" + 
-			"field [in Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]]\n" + 
-			"Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]\n" + 
-			"foo(Object[]) [in Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]]\n" + 
-			"Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]",
-			elements
-		);
-	}
-
-	public void test10() throws JavaScriptModelException {
-		setUnit("test/junit/Test.js",
-			"package test.junit;\n" + 
-			"public class Test {\n" + 
-			"	/** Javadoc {@linkplain test.junit.Test}\n" + 
-			"	 * {@linkplain test.junit.Test#field field}\n" + 
-			"	 * last line {@linkplain test.junit.Test#foo(Object[] array) foo(Object[])}\n" + 
-			"	 */\n" + 
-			"	void bar() {\n" + 
-			"		foo(null);\n" + 
-			"	}\n" + 
-			"	int field;\n" + 
-			"	void foo(Object[] array) {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[6];
-		assertSelectionIsEmpty(this.workingCopies[0], "test", 2);
-		assertSelectionIsEmpty(this.workingCopies[0], "junit", 2);
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		assertSelectionIsEmpty(this.workingCopies[0], "test", 3);
-		assertSelectionIsEmpty(this.workingCopies[0], "junit", 3);
-		elements[1] = selectType(this.workingCopies[0], "Test", 3);
-		elements[2] = selectField(this.workingCopies[0], "field");
-		assertSelectionIsEmpty(this.workingCopies[0], "test", 4);
-		assertSelectionIsEmpty(this.workingCopies[0], "junit", 4);
-		elements[3] = selectType(this.workingCopies[0], "Test", 4);
-		elements[4] = selectMethod(this.workingCopies[0], "foo");
-		elements[5] = selectType(this.workingCopies[0], "Object");
-		assertSelectionIsEmpty(this.workingCopies[0], "array");
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]\n" + 
-			"Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]\n" + 
-			"field [in Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]]\n" + 
-			"Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]\n" + 
-			"foo(Object[]) [in Test [in [Working copy] Test.js [in test.junit [in <project root> [in Tests]]]]]\n" + 
-			"Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]",
-			elements
-		);
-	}
-
-	public void test11() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @throws RuntimeException runtime exception\n" + 
-			"	 * @throws InterruptedException interrupted exception\n" + 
-			"	 */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[2];
-		elements[0] = selectType(this.workingCopies[0], "RuntimeException");
-		elements[1] = selectType(this.workingCopies[0], "InterruptedException");
-		assertElementsEqual("Invalid selection(s)",
-			"RuntimeException [in RuntimeException.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]\n" + 
-			"InterruptedException [in InterruptedException.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]",
-			elements
-		);
-	}
-
-	public void test12() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @exception RuntimeException runtime exception\n" + 
-			"	 * @exception InterruptedException interrupted exception\n" + 
-			"	 */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[2];
-		elements[0] = selectType(this.workingCopies[0], "RuntimeException");
-		elements[1] = selectType(this.workingCopies[0], "InterruptedException");
-		assertElementsEqual("Invalid selection(s)",
-			"RuntimeException [in RuntimeException.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]\n" + 
-			"InterruptedException [in InterruptedException.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]",
-			elements
-		);
-	}
-
-	public void test13() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @param xxx integer param\n" +
-			"	 * @param str string param\n" +
-			"	 */\n" + 
-			"	void foo(int xxx, String str) {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[2];
-		elements[0] = selectLocalVariable(this.workingCopies[0], "xxx");
-		elements[1] = selectLocalVariable(this.workingCopies[0], "str");
-		assertElementsEqual("Invalid selection(s)",
-			"xxx [in foo(int, String) [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"str [in foo(int, String) [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]",
-			elements
-		);
-	}
-
-	public void test14() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"/**\n" + 
-			" * Javadoc of {@link Test}\n" + 
-			" * @see Field#foo\n" + 
-			" */\n" + 
-			"public class Test {}\n" + 
-			"/**\n" + 
-			" * Javadoc on {@link Field} to test selection in javadoc field references\n" + 
-			" * @see #foo\n" + 
-			" */\n" + 
-			"class Field {\n" + 
-			"	/**\n" + 
-			"	 * Javadoc on {@link #foo} to test selection in javadoc field references\n" + 
-			"	 * @see #foo\n" + 
-			"	 * @see Field#foo\n" + 
-			"	 */\n" + 
-			"	int foo;\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[9];
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		elements[1] = selectType(this.workingCopies[0], "Field");
-		elements[2] = selectField(this.workingCopies[0], "foo");
-		elements[3] = selectType(this.workingCopies[0], "Field", 2);
-		elements[4] = selectField(this.workingCopies[0], "foo", 2);
-		elements[5] = selectField(this.workingCopies[0], "foo", 3);
-		elements[6] = selectField(this.workingCopies[0], "foo", 4);
-		elements[7] = selectType(this.workingCopies[0], "Field", 4);
-		elements[8] = selectField(this.workingCopies[0], "foo", 5);
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Field [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"foo [in Field [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"Field [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"foo [in Field [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo [in Field [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo [in Field [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"Field [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"foo [in Field [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]",
-			elements
-		);
-	}
-
-	public void test15() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"/**\n" + 
-			" * Javadoc of {@link Test}\n" + 
-			" * @see Method#foo\n" + 
-			" */\n" + 
-			"public class Test {}\n" + 
-			"/**\n" + 
-			" * Javadoc on {@link Method} to test selection in javadoc method references\n" + 
-			" * @see #foo\n" + 
-			" */\n" + 
-			"class Method {\n" + 
-			"	/**\n" + 
-			"	 * Javadoc on {@link #foo} to test selection in javadoc method references\n" + 
-			"	 * @see #foo\n" + 
-			"	 * @see Method#foo\n" + 
-			"	 */\n" + 
-			"	void bar() {}\n" + 
-			"	/**\n" + 
-			"	 * Method with parameter and throws clause to test selection in javadoc\n" + 
-			"	 * @param xxx TODO\n" + 
-			"	 * @param str TODO\n" + 
-			"	 * @throws RuntimeException blabla\n" + 
-			"	 * @throws InterruptedException bloblo\n" + 
-			"	 */\n" + 
-			"	void foo(int xxx, String str) throws RuntimeException, InterruptedException {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[13];
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		elements[1] = selectType(this.workingCopies[0], "Method");
-		elements[2] = selectMethod(this.workingCopies[0], "foo");
-		elements[3] = selectType(this.workingCopies[0], "Method", 2);
-		elements[4] = selectMethod(this.workingCopies[0], "foo", 2);
-		elements[5] = selectMethod(this.workingCopies[0], "foo", 3);
-		elements[6] = selectMethod(this.workingCopies[0], "foo", 4);
-		elements[7] = selectType(this.workingCopies[0], "Method", 4);
-		elements[8] = selectMethod(this.workingCopies[0], "foo", 5);
-		elements[9] = selectLocalVariable(this.workingCopies[0], "xxx");
-		elements[10] = selectLocalVariable(this.workingCopies[0], "str");
-		elements[11] = selectType(this.workingCopies[0], "RuntimeException");
-		elements[12] = selectType(this.workingCopies[0], "InterruptedException");
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"foo(int, String) [in Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"foo(int, String) [in Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo(int, String) [in Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo(int, String) [in Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"foo(int, String) [in Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"xxx [in foo(int, String) [in Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"str [in foo(int, String) [in Method [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"RuntimeException [in RuntimeException.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]\n" + 
-			"InterruptedException [in InterruptedException.class [in java.lang [in "+ getExternalJCLPathString("1.5") + " [in Tests]]]]",
-			elements
-		);
-	}
-
-	public void test16() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"/**\n" + 
-			" * Javadoc of {@link Test}\n" + 
-			" * @see Other\n" + 
-			" */\n" + 
-			"public class Test {}\n" + 
-			"/**\n" + 
-			" * Javadoc of {@link Other}\n" + 
-			" * @see Test\n" + 
-			" */\n" + 
-			"class Other {}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[4];
-		elements[0] = selectType(this.workingCopies[0], "Test");
-		elements[1] = selectType(this.workingCopies[0], "Other");
-		elements[2] = selectType(this.workingCopies[0], "Test", 3);
-		elements[3] = selectType(this.workingCopies[0], "Other", 2);
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Other [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Other [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]",
-			elements
-		);
-	}
-
-	public void test17() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"/**\n" + 
-			" * @see Test.Field#foo\n" + 
-			" */\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Field#foo\n" + 
-			"	 */\n" + 
-			"	class Field {\n" + 
-			"		/**\n" + 
-			"		 * @see #foo\n" + 
-			"		 * @see Field#foo\n" + 
-			"		 * @see Test.Field#foo\n" + 
-			"		 */\n" + 
-			"		int foo;\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[11];
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		elements[1] = selectType(this.workingCopies[0], "Field");
-		elements[2] = selectField(this.workingCopies[0], "foo");
-		elements[3] = selectType(this.workingCopies[0], "Field", 2);
-		elements[4] = selectField(this.workingCopies[0], "foo", 2);
-		elements[5] = selectField(this.workingCopies[0], "foo", 3);
-		elements[6] = selectType(this.workingCopies[0], "Field", 4);
-		elements[7] = selectField(this.workingCopies[0], "foo", 4);
-		elements[8] = selectType(this.workingCopies[0], "Test", 3);
-		elements[9] = selectType(this.workingCopies[0], "Field", 5);
-		elements[10] = selectField(this.workingCopies[0], "foo", 5);
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo [in Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo [in Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"foo [in Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo [in Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo [in Field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]",
-			elements
-		);
-	}
-
-	public void test18() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"/**\n" + 
-			" * @see Test.Method#foo()\n" + 
-			" */\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Method#foo()\n" + 
-			"	 */\n" + 
-			"	class Method {\n" + 
-			"		/**\n" + 
-			"		 * @see #foo()\n" + 
-			"		 * @see Method#foo()\n" + 
-			"		 * @see Test.Method#foo()\n" + 
-			"		 */\n" + 
-			"		void foo() {}\n" + 
-			"	}\n" + 
-			"}"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[11];
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		elements[1] = selectType(this.workingCopies[0], "Method");
-		elements[2] = selectMethod(this.workingCopies[0], "foo");
-		elements[3] = selectType(this.workingCopies[0], "Method", 2);
-		elements[4] = selectMethod(this.workingCopies[0], "foo", 2);
-		elements[5] = selectMethod(this.workingCopies[0], "foo", 3);
-		elements[6] = selectType(this.workingCopies[0], "Method", 4);
-		elements[7] = selectMethod(this.workingCopies[0], "foo", 4);
-		elements[8] = selectType(this.workingCopies[0], "Test", 3);
-		elements[9] = selectType(this.workingCopies[0], "Method", 5);
-		elements[10] = selectMethod(this.workingCopies[0], "foo", 5);
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo() [in Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo() [in Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"foo() [in Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo() [in Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"foo() [in Method [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]",
-			elements
-		);
-	}
-
-	public void test19() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"/**\n" + 
-			" * @see Test.Other\n" + 
-			" */\n" + 
-			"public class Test {\n" + 
-			"	/**\n" + 
-			"	 * @see Test\n" + 
-			"	 * @see Other\n" + 
-			"	 * @see Test.Other\n" + 
-			"	 */\n" + 
-			"	class Other {}\n" + 
-			"}"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[6];
-		elements[0] = selectType(this.workingCopies[0], "Test");
-		elements[1] = selectType(this.workingCopies[0], "Other");
-		elements[2] = selectType(this.workingCopies[0], "Test", 3);
-		elements[3] = selectType(this.workingCopies[0], "Other", 2);
-		elements[4] = selectType(this.workingCopies[0], "Test", 4);
-		elements[5] = selectType(this.workingCopies[0], "Other", 3);
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Other [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Other [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Other [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]",
-			elements
-		);
-	}
-
-	public void test20() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		/**\n" + 
-			"		 * @see Field#foo\n" + 
-			"		 */\n" + 
-			"		class Field {\n" + 
-			"			/**\n" + 
-			"			 * @see #foo\n" + 
-			"			 * @see Field#foo\n" + 
-			"			 */\n" + 
-			"			int foo;\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[5];
-		elements[0] = selectType(this.workingCopies[0], "Field");
-		elements[1] = selectField(this.workingCopies[0], "foo");
-		elements[2] = selectField(this.workingCopies[0], "foo", 2);
-		elements[3] = selectType(this.workingCopies[0], "Field", 3);
-		elements[4] = selectField(this.workingCopies[0], "foo", 3);
-		// Running test with Unix/Windows do not matter even if result includes positions as we use working copies
-		assertElementsEqual("Invalid selection(s)",
-			"Field [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"foo [in Field [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]\n" + 
-			"foo [in Field [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]\n" + 
-			"Field [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"foo [in Field [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]",
-			elements
-		);
-	}
-
-	public void test21() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		/**\n" + 
-			"		 * @see Method#foo()\n" + 
-			"		 */\n" + 
-			"		class Method {\n" + 
-			"			/**\n" + 
-			"			 * @see #foo()\n" + 
-			"			 * @see Method#foo()\n" + 
-			"			 */\n" + 
-			"			void foo() {}\n" + 
-			"		}\n" + 
-			"	}\n" + 
-			"}"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[5];
-		elements[0] = selectType(this.workingCopies[0], "Method");
-		elements[1] = selectMethod(this.workingCopies[0], "foo");
-		elements[2] = selectMethod(this.workingCopies[0], "foo", 2);
-		elements[3] = selectType(this.workingCopies[0], "Method", 3);
-		elements[4] = selectMethod(this.workingCopies[0], "foo", 3);
-		// Running test with Unix/Windows do not matter even if result includes positions as we use working copies
-		assertElementsEqual("Invalid selection(s)",
-			"Method [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"foo() [in Method [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]\n" + 
-			"foo() [in Method [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]\n" + 
-			"Method [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]\n" + 
-			"foo() [in Method [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]",
-			elements
-		);
-	}
-
-	public void test22() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		/**\n" + 
-			"		 * @see Test\n" + 
-			"		 * @see Other\n" + 
-			"		 */\n" + 
-			"		class Other {}\n" + 
-			"	}\n" + 
-			"}"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[2];
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		elements[1] = selectType(this.workingCopies[0], "Other");
-		// Running test with Unix/Windows do not matter even if result includes positions as we use working copies
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Other [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]",
-			elements
-		);
-	}
-
-	public void test23() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		new Object() {\n" + 
-			"			/**\n" + 
-			"			 * @see Field#foo\n" + 
-			"			 */\n" + 
-			"			class Field {\n" + 
-			"				/**\n" + 
-			"				 * @see #foo\n" + 
-			"				 * @see Field#foo\n" + 
-			"				 */\n" + 
-			"				int foo;\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[5];
-		elements[0] = selectType(this.workingCopies[0], "Field");
-		elements[1] = selectField(this.workingCopies[0], "foo");
-		elements[2] = selectField(this.workingCopies[0], "foo", 2);
-		elements[3] = selectType(this.workingCopies[0], "Field", 3);
-		elements[4] = selectField(this.workingCopies[0], "foo", 3);
-		// Running test with Unix/Windows do not matter even if result includes positions as we use working copies
-		assertElementsEqual("Invalid selection(s)",
-			"Field [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]\n" + 
-			"foo [in Field [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]]\n" + 
-			"foo [in Field [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]]\n" + 
-			"Field [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]\n" + 
-			"foo [in Field [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]]",
-			elements
-		);
-	}
-
-	public void test24() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		new Object() {\n" + 
-			"			/**\n" + 
-			"			 * @see Method#foo()\n" + 
-			"			 */\n" + 
-			"			class Method {\n" + 
-			"				/**\n" + 
-			"				 * @see #foo()\n" + 
-			"				 * @see Method#foo()\n" + 
-			"				 */\n" + 
-			"				void foo() {}\n" + 
-			"			}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[5];
-		elements[0] = selectType(this.workingCopies[0], "Method");
-		elements[1] = selectMethod(this.workingCopies[0], "foo");
-		elements[2] = selectMethod(this.workingCopies[0], "foo", 2);
-		elements[3] = selectType(this.workingCopies[0], "Method", 3);
-		elements[4] = selectMethod(this.workingCopies[0], "foo", 3);
-		// Running test with Unix/Windows do not matter even if result includes positions as we use working copies
-		assertElementsEqual("Invalid selection(s)",
-			"Method [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]\n" + 
-			"foo() [in Method [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]]\n" + 
-			"foo() [in Method [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]]\n" + 
-			"Method [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]\n" + 
-			"foo() [in Method [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]]",
-			elements
-		);
-	}
-
-	public void test25() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	void bar() {\n" + 
-			"		new Object() {\n" + 
-			"			/**\n" + 
-			"			 * @see Test\n" + 
-			"			 * @see Other\n" + 
-			"			 */\n" + 
-			"			class Other {}\n" + 
-			"		};\n" + 
-			"	}\n" + 
-			"}"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[2];
-		elements[0] = selectType(this.workingCopies[0], "Test", 2);
-		elements[1] = selectType(this.workingCopies[0], "Other");
-		// Running test with Unix/Windows do not matter even if result includes positions as we use working copies
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"Other [in <anonymous #1> [in bar() [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]]]",
-			elements
-		);
-	}
-
-	public void test26() throws JavaScriptModelException {
-		setUnit("Test.js",
-			"public class Test {\n" + 
-			"	static int field;\n" + 
-			"	/** \n" +
-			"	 * First {@value #field}" +
-			"	 * Second {@value Test#field}" +
-			"	 */\n" + 
-			"	void foo() {}\n" + 
-			"}\n"
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[3];
-		elements[0] = selectField(this.workingCopies[0], "field");
-		elements[1] = selectType(this.workingCopies[0], "Test");
-		elements[2] = selectField(this.workingCopies[0], "field");
-		assertElementsEqual("Invalid selection(s)",
-			"field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]\n" + 
-			"Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]\n" + 
-			"field [in Test [in [Working copy] Test.js [in <default> [in <project root> [in Tests]]]]]",
-			elements
-		);
-	}
-
-	/**
-	 * Bug 86380: [1.5][search][annot] Add support to find references inside annotations on a package declaration
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=86380"
-	 */
-	public void testBug86380() throws CoreException {
-		this.wcOwner = new WorkingCopyOwner() {};
-		workingCopies = new IJavaScriptUnit[2];
-		workingCopies[0] = getWorkingCopy("/Tests/b86380/package-info.js",
-			"/**\n" + 
-			" * Valid javadoc.\n" + 
-			" * @see Test\n" + 
-			" * @see Unknown\n" + 
-			" * @see Test#foo()\n" + 
-			" * @see Test#unknown()\n" + 
-			" * @see Test#field\n" + 
-			" * @see Test#unknown\n" + 
-			" * @param unexpected\n" + 
-			" * @throws unexpected\n" + 
-			" * @return unexpected \n" + 
-			" */\n" + 
-			"package b86380;\n",
-			wcOwner,
-			null/*don't compute problems*/
-		);
-		workingCopies[1] = getWorkingCopy("/Tests/b86380/Test.js",
-			"/**\n" + 
-			" * Invalid javadoc\n" + 
-			" */\n" + 
-			"package b86380;\n" + 
-			"public class Test {\n" + 
-			"	public int field;\n" + 
-			"	public void foo() {}\n" + 
-			"}\n",
-			wcOwner,
-			null/*don't compute problems*/
-		);
-		IJavaScriptElement[] elements = new IJavaScriptElement[3];
-		elements[0] = selectType(this.workingCopies[0], "Test");
-		elements[1] = selectMethod(this.workingCopies[0], "foo");
-		elements[2] = selectField(this.workingCopies[0], "field");
-		assertElementsEqual("Invalid selection(s)",
-			"Test [in [Working copy] Test.js [in b86380 [in <project root> [in Tests]]]]\n" + 
-			"foo() [in Test [in [Working copy] Test.js [in b86380 [in <project root> [in Tests]]]]]\n" + 
-			"field [in Test [in [Working copy] Test.js [in b86380 [in <project root> [in Tests]]]]]",
-			elements
-		);
-	}
-
-	/**
-	 * Bug 90266: [select] Code select returns null when there's a string including a slash on same line
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=90266"
-	 */
-	public void testBug90266_String() throws JavaScriptModelException {
-		setUnit("b90266/Test.js",
-			"package b90266;\n" + 
-			"public class Test {\n" + 
-			"	public int field;\n" + 
-			"	public void foo(String str, int i) {}\n" +
-			"	public void bar() {\n" + 
-			"		foo(\"String including / (slash)\", this.field)\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		int[] selectionPositions = selectionInfo(workingCopies[0], "field", 2);
-		IJavaScriptElement[] elements = workingCopies[0].codeSelect(selectionPositions[0], 0);
-		assertElementsEqual("Invalid selection(s)",
-			"field [in Test [in [Working copy] Test.js [in b90266 [in <project root> [in Tests]]]]]",
-			elements
-		);
-	}
-	public void testBug90266_Char() throws JavaScriptModelException {
-		setUnit("b90266/Test.js",
-			"package b90266;\n" + 
-			"public class Test {\n" + 
-			"	public int field;\n" + 
-			"	public void foo(Char c, int i) {}\n" +
-			"	public void bar() {\n" + 
-			"		foo('/', this.field)\n" + 
-			"	}\n" + 
-			"}\n"
-		);
-		int[] selectionPositions = selectionInfo(workingCopies[0], "field", 2);
-		IJavaScriptElement[] elements = workingCopies[0].codeSelect(selectionPositions[0], 0);
-		assertElementsEqual("Invalid selection(s)",
-			"field [in Test [in [Working copy] Test.js [in b90266 [in <project root> [in Tests]]]]]",
-			elements
-		);
-	}
-	/**
-	);
- * @bug 165701: [model] No hint for ambiguous javadoc
- * @test Ensure that no exception is thrown while selecting method in javadoc comment
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=165701"
- */
-public void testBug165701() throws JavaScriptModelException {
-	setUnit("b165701/Test.js",
-		"package b165701;\n" + 
-		"/**\n" + 
-		" * @see #fooo(int)\n" + 
-		" */\n" + 
-		"public class Test {\n" + 
-		"	public void foo() {}\n" + 
-		"}\n"
-	);
-	int[] selectionPositions = selectionInfo(workingCopies[0], "fooo", 1);
-	IJavaScriptElement[] elements = workingCopies[0].codeSelect(selectionPositions[0], 0);
-	assertElementsEqual("Invalid selection(s)",
-		"Test [in [Working copy] Test.js [in b165701 [in <project root> [in Tests]]]]",
-		elements
-	);
-}
-
-/**
- * @bug 165794: [model] No hint for ambiguous javadoc
- * @test Ensure that no exception is thrown while selecting method in javadoc comment
- * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=165794"
- */
-public void testBug165794() throws JavaScriptModelException {
-	setUnit("b165794/Test.js",
-		"package b165794;\n" + 
-		"/**\n" + 
-		" * No reasonable hint for resolving the {@link #getMax(A)}.\n" + 
-		" */\n" + 
-		"public class X {\n" + 
-		"    /**\n" + 
-		"     * Extends Number method.\n" + 
-		"     * @see #getMax(A ipZ)\n" + 
-		"     */\n" + 
-		"    public <T extends Y> T getMax(final A<T> ipY) {\n" + 
-		"        return ipY.t();\n" + 
-		"    }\n" + 
-		"    \n" + 
-		"    /**\n" + 
-		"     * Extends Exception method.\n" + 
-		"     * @see #getMax(A ipY)\n" + 
-		"     */\n" + 
-		"    public <T extends Z> T getMax(final A<T> ipZ) {\n" + 
-		"        return ipZ.t();\n" + 
-		"    }\n" + 
-		"}\n" + 
-		"class A<T> {\n" + 
-		"	T t() { return null; }\n" + 
-		"}\n" + 
-		"class Y {}\n" + 
-		"class Z {}"
-	);
-	int[] selectionPositions = selectionInfo(workingCopies[0], "getMax", 1);
-	IJavaScriptElement[] elements = workingCopies[0].codeSelect(selectionPositions[0], 0);
-	assertElementsEqual("Invalid selection(s)",
-		"getMax(A<T>) [in X [in [Working copy] Test.js [in b165794 [in <project root> [in Tests]]]]]",
-		elements
-	);
-}}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/Semaphore.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/Semaphore.java
deleted file mode 100644
index 919ce7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/Semaphore.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-/**
- * A semaphore implementation with timeout.
- */
-public class Semaphore {
-	
-	private String name = null;
-	private int permissions = 0;
-	
-	public class TimeOutException extends Exception {
-		private static final long serialVersionUID = 1L;
-	}
-	public Semaphore() {
-		this(null, 0);
-	}
-	public Semaphore(int initialPermisions) {
-		this(null, initialPermisions);
-	}
-	public Semaphore(String name, int initialPermissions) {
-		this.name = name;
-		this.permissions = initialPermissions;
-	}
-	public void acquire() {
-		try {
-			acquire(Long.MAX_VALUE);
-		} catch (TimeOutException e) {
-			e.printStackTrace();
-		}
-	}
-	public synchronized void acquire(long timeout) throws TimeOutException {
-		long start = System.currentTimeMillis();
-		while (this.permissions <= 0 && timeout > 0) {
-			try {
-				if (this.name != null) System.out.println(Thread.currentThread() + " - waiting to acquire: " + this.name); //$NON-NLS-1$
-				if (timeout == Long.MAX_VALUE) {
-					wait();
-				} else {
-					wait(timeout);
-				}
-			} catch(InterruptedException e){
-			}
-			timeout -= System.currentTimeMillis() - start;
-		}
-		if (timeout <= 0) {
-			throw new TimeOutException();
-		}
-		this.permissions--;
-		if (this.name != null) System.out.println(Thread.currentThread() + " - acquired: " + this.name); //$NON-NLS-1$
-	}
-	public synchronized void release() {
-		if (this.name != null) System.out.println(Thread.currentThread() + " - releasing: " + this.name); //$NON-NLS-1$
-		if (++this.permissions > 0) notifyAll();
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SignatureTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SignatureTests.java
deleted file mode 100644
index 338ca96..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SignatureTests.java
+++ /dev/null
@@ -1,1037 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-public class SignatureTests extends AbstractJavaModelTests {
-public SignatureTests(String name) {
-	super(name);
-}
-/**
- * Ensures that creating an invalid type signature throws an IllegalArgumentException or return the expected signature.
- */
-protected void assertInvalidTypeSignature(String typeName, boolean isResolved, String expected) {
-	String actual;
-	try {
-		actual = Signature.createTypeSignature(typeName, isResolved);
-	} catch (IllegalArgumentException e) {
-		return;
-	}
-	assertEquals(expected, actual);
-}
-public static Test suite() {
-	return buildModelTestSuite(SignatureTests.class);
-}
-// Use this static initializer to specify subset for tests
-// All specified tests which do not belong to the class are skipped...
-static {
-	// Prefix for tests names to run
-//	TESTS_PREFIX =  "testGetTypeErasure";
-	// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//	TESTS_NAMES = new String[] { "testGetSimpleName" };
-	// Numbers of tests to run: "test<number>" will be run for each number of this array
-//	TESTS_NUMBERS = new int[] { 8 };
-	// Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
-//	testsRange = new int[] { -1, -1 };
-}
-/**
- * @see Signature
- */
-public void testCreateArraySignature() {
-	assertEquals(
-		"Signature#createArraySignature not correct", 
-		"[[[[QString",
-		Signature.createArraySignature("QString", 4));
-		
-	// tests with 1.5-specific elements
-	assertEquals(
-		"Signature#createArraySignature not correct", 
-		"[[[[Qlist<Qstring;>;",
-		Signature.createArraySignature("Qlist<Qstring;>;", 4));
-		
-}
-/**
- * @see Signature
- */
-public void testCreateMethodSignature() {
-	assertEquals(
-		"Signature#createMethodSignature is not correct 1", 
-		"(QString;QObject;I)I", 
-		Signature.createMethodSignature(new String[] {"QString;", "QObject;", "I"}, "I"));
-	assertEquals(
-		"Signature#createMethodSignature is not correct 2", 
-		"()Ljava.lang.String;", 
-		Signature.createMethodSignature(new String[] {}, "Ljava.lang.String;"));
-}
-/**
- * @see Signature
- */
-public void testCreateTypeSignature() {
-	assertEquals("Signature#createTypeSignature is not correct1", "I",
-			Signature.createTypeSignature("int".toCharArray(), false));
-	assertEquals("Signature#createTypeSignature is not correct2", "Ljava.lang.String;",
-			Signature.createTypeSignature("java.lang.String".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct3", "QString;", 
-			Signature.createTypeSignature("String".toCharArray(), false));
-	assertEquals("Signature#createTypeSignature is not correct4", "Qjava.lang.String;", 
-			Signature.createTypeSignature("java.lang.String".toCharArray(), false));
-	assertEquals("Signature#createTypeSignature is not correct5", "[I",
-			Signature.createTypeSignature("int []".toCharArray(), false));
-	assertEquals("Signature#createTypeSignature is not correct6", "[QString;",
-			Signature.createTypeSignature("String []".toCharArray(), false));
-	assertEquals("Signature#createTypeSignature is not correct7", "[Ljava.util.Vector;",
-			Signature.createTypeSignature("java.util.Vector []".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct8", "[[Ljava.util.Vector;",
-			Signature.createTypeSignature("java .\n util  .  Vector[  ][]".toCharArray(), true));
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=41019
-	assertEquals("Signature#createTypeSignature is not correct9", "Linteration.test.MyData;",
-			Signature.createTypeSignature("interation.test.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct10", "Llongtest.MyData;",
-			Signature.createTypeSignature("longtest.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct11", "Lbooleantest.MyData;",
-			Signature.createTypeSignature("booleantest.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct12", "Lbytetest.MyData;",
-			Signature.createTypeSignature("bytetest.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct13", "Lchartest.MyData;",
-			Signature.createTypeSignature("chartest.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct14", "Lshorttest.MyData;",
-			Signature.createTypeSignature("shorttest.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct15", "Ldoubletest.MyData;",
-			Signature.createTypeSignature("doubletest.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct16", "Lfloattest.MyData;",
-			Signature.createTypeSignature("floattest.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct17", "Lvoidtest.MyData;",
-			Signature.createTypeSignature("voidtest.MyData".toCharArray(), true));
-	assertEquals("Signature#createTypeSignature is not correct18", "QList<QList<QString;>;>;",
-			Signature.createTypeSignature("List<List<String>>".toCharArray(), false));
-	assertEquals("Signature#createTypeSignature is not correct19", "QList<QList<I>;>;",
-			Signature.createTypeSignature("List<List<int>>".toCharArray(), false));
-	assertEquals("Signature#createTypeSignature is not correct20", "[QList<QList<[I>;>;",
-			Signature.createTypeSignature("List<List<int[]>>[]".toCharArray(), false));
-	assertEquals("Signature#createTypeSignature is not correct21", "Qjava.y.Map<[QObject;QString;>.MapEntry<[Qp.K<QT;>;[Qq.r.V2;>;",
-			Signature.createTypeSignature("java.y.Map<Object[],String>.MapEntry<p.K<T>[],q.r.V2[]>".toCharArray(), false));	
-}
-/**
- * Ensures that creating an invalid type signature throws an IllegalArgumentException.
- */
-public void testCreateInvalidTypeSignature() {
-	assertInvalidTypeSignature(null, false, null);
-	assertInvalidTypeSignature("", false, "");
-	assertInvalidTypeSignature("int.Y", false, "I");
-	assertInvalidTypeSignature("Y [].X", false, "[QY;");
-	assertInvalidTypeSignature("X[[]", true, "[[LX;");
-}
-/**
- * @see Signature
- */
-public void testGetArrayCount() {
-	assertEquals("Signature#getArrayCount is not correct", 4,
-			Signature.getArrayCount("[[[[QString;"));
-	try {
-		Signature.getArrayCount("");
-		assertTrue("Signature#getArrayCount is not correct, exception", false);
-	} catch (IllegalArgumentException iae) {
-		// do nothing
-	}
-
-	// tests with 1.5-specific elements
-	assertEquals(
-		"Signature#getArrayCount not correct", 4,
-		Signature.getArrayCount("[[[[Qlist<Qstring;>;"));
-}
-
-/**
- * @see Signature
- */
-public void testGetElementType() {
-	assertEquals("Signature#getElementType is not correct1", "QString;",
-			Signature.getElementType("[[[[QString;"));
-	assertEquals("Signature#getElementType is not correct2", "QString;",
-			Signature.getElementType("QString;"));
-	assertEquals("Signature#getElementType is not correct2", "I",
-			Signature.getElementType("[[I"));
-	try {
-		Signature.getElementType("");
-		assertTrue("Signature#getArrayCount is not correct, exception", false);
-	} catch (IllegalArgumentException iae) {
-		// do nothing
-	}
-	
-	// tests with 1.5-specific elements
-	assertEquals(
-		"Signature#getElementType not correct", "Qlist<Qstring;>;",
-		Signature.getElementType("[[[[Qlist<Qstring;>;"));
-}
-/**
- * @see Signature
- */
-public void testGetParameterCount01() {
-	String methodSig = "(QString;QObject;I)I";
-	assertEquals("Signature#getParameterCount is not correct", 3,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount02() {
-	try {
-		Signature.getParameterCount("");
-		assertTrue("Signature#getParameterCount is not correct: exception", false);
-	} catch (IllegalArgumentException iae) {
-		// do nothing
-	}
-}
-
-// tests with 1.5-specific elements
-public void testGetParameterCount03() {
-	String methodSig = "<X:Qlist<Qstring;>;>(IQlist;Tww;)Qlist<Qxxx;>;^Qexception;^Qerror;";
-	assertEquals("Signature#getParameterCount is not correct", 3,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount04() {
-	String methodSig = "<X:Qlist<Qstring;>;>(IQlist<Qstring;>;Tww;)Qlist<Qxxx;>;^Qexception;^Qerror;";
-	assertEquals("Signature#getParameterCount is not correct", 3,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount05() {
-	String methodSig= "foo(+Ljava.lang.Comparable;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount06() {
-	String methodSig= "foo(+Ljava.lang.Comparable;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount07() {
-	String methodSig= "foo(*)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount08() {
-	String methodSig= "foo(LA<+Ljava.lang.Comparable;>;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount09() {
-	String methodSig= "foo(LA<-Ljava.lang.Comparable;>;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount10() {
-	String methodSig= "foo(LA<*>;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount11() {
-	String methodSig= "foo(LA<+Ljava.lang.Comparable;+Ljava.lang.Comparable;>;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount12() {
-	String methodSig= "foo(+Ljava.lang.Comparable;+Ljava.lang.Comparable;)";
-	assertEquals("Signature#getParameterCount is not correct", 2,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount13() {
-	String methodSig= "foo(+Ljava.lang.Comparable;-Ljava.lang.Comparable;)";
-	assertEquals("Signature#getParameterCount is not correct", 2,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount14() {
-	String methodSig= "foo(Ljava.util.List<-[Ljava.lang.Number;>;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-			Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount15() {
-	String methodSig= "foo(LA<++Ljava.lang.Comparable;>;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-		Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount16() {
-	String methodSig= "foo(LA<--Ljava.lang.Comparable;>;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-		Signature.getParameterCount(methodSig));
-}
-public void testGetParameterCount17() {
-	String methodSig= "foo(LA<+-Ljava.lang.Comparable;>;)";
-	assertEquals("Signature#getParameterCount is not correct", 1,
-		Signature.getParameterCount(methodSig));
-}
-/*
- * Ensures that a signature with a '? extends ?' wildcard can be decoded.
- * (regression test for bug 92370 [1.5] IAE in Signature.getParameterCount(..) for method proposal on capture type receiver)
- */
-public void testGetParameterCount18() {
-	String methodSig= "(ILjava.util.Collection<+*>;)Z";
-	assertEquals("Signature#getParameterCount is not correct", 2,
-		Signature.getParameterCount(methodSig));
-}
-/**
- * @see Signature
- */
-public void testGetParameterTypes() {
-	String methodSig = "(QString;QObject;I)I";
-	String[] types= Signature.getParameterTypes(methodSig);
-	assertEquals("Signature#getParameterTypes is not correct1", 3, types.length);
-	assertEquals("Signature#getParameterTypes is not correct2", "QObject;", types[1]);
-	try {
-		Signature.getParameterTypes("");
-		assertTrue("Signature#getParameterTypes is not correct: exception", false);
-	} catch (IllegalArgumentException iae) {
-		// do nothing
-	}
-
-	// primitive types
-	methodSig = "(BCDFIJSVZ)V";
-	assertEquals("Signature#getParameterTypes 4", 9,
-			Signature.getParameterTypes(methodSig).length);
-	assertEquals("Signature#getParameterTypes 4", "B",
-			Signature.getParameterTypes(methodSig)[0]);
-	assertEquals("Signature#getParameterTypes 4", "C",
-			Signature.getParameterTypes(methodSig)[1]);
-	assertEquals("Signature#getParameterTypes 4", "D",
-			Signature.getParameterTypes(methodSig)[2]);
-	assertEquals("Signature#getParameterTypes 4", "F",
-			Signature.getParameterTypes(methodSig)[3]);
-	assertEquals("Signature#getParameterTypes 4", "I",
-			Signature.getParameterTypes(methodSig)[4]);
-	assertEquals("Signature#getParameterTypes 4", "J",
-			Signature.getParameterTypes(methodSig)[5]);
-	assertEquals("Signature#getParameterTypes 4", "S",
-			Signature.getParameterTypes(methodSig)[6]);
-	assertEquals("Signature#getParameterTypes 4", "V",
-			Signature.getParameterTypes(methodSig)[7]);
-	assertEquals("Signature#getParameterTypes 4", "Z",
-			Signature.getParameterTypes(methodSig)[8]);
-
-	// array types
-	methodSig = "([I[[J[[[B[Qstring;[Tv;[Lstring;)V";
-	assertEquals("Signature#getParameterTypes 5", 6,
-			Signature.getParameterTypes(methodSig).length);
-	assertEquals("Signature#getParameterTypes 5", "[I",
-			Signature.getParameterTypes(methodSig)[0]);
-	assertEquals("Signature#getParameterTypes 5", "[[J",
-			Signature.getParameterTypes(methodSig)[1]);
-	assertEquals("Signature#getParameterTypes 5", "[[[B",
-			Signature.getParameterTypes(methodSig)[2]);
-	assertEquals("Signature#getParameterTypes 5", "[Qstring;",
-			Signature.getParameterTypes(methodSig)[3]);
-	assertEquals("Signature#getParameterTypes 5", "[Tv;",
-			Signature.getParameterTypes(methodSig)[4]);
-	assertEquals("Signature#getParameterTypes 5", "[Lstring;",
-			Signature.getParameterTypes(methodSig)[5]);
-	
-	// resolved types
-	methodSig = "(La;)V";
-	assertEquals("Signature#getParameterTypes 6", 1,
-			Signature.getParameterTypes(methodSig).length);
-	assertEquals("Signature#getParameterTypes 6", "La;",
-			Signature.getParameterTypes(methodSig)[0]);
-	methodSig = "(La<TE;>;)V";
-	assertEquals("Signature#getParameterTypes 6", 1,
-			Signature.getParameterTypes(methodSig).length);
-	assertEquals("Signature#getParameterTypes 6", "La<TE;>;",
-			Signature.getParameterTypes(methodSig)[0]);
-	methodSig = "(La/b/c<TE;>.d<TF;>;)V";
-	assertEquals("Signature#getParameterTypes 6", 1,
-			Signature.getParameterTypes(methodSig).length);
-	assertEquals("Signature#getParameterTypes 6", "La/b/c<TE;>.d<TF;>;",
-			Signature.getParameterTypes(methodSig)[0]);
-}
-/**
- * @see Signature
- */
-public void testGetQualifier1() {
-	assertEquals(
-		"java.lang",
-		Signature.getQualifier("java.lang.Object"));
-}
-public void testGetQualifier2() {
-	assertEquals(
-		"",
-		Signature.getQualifier(""));
-}
-public void testGetQualifier3() {
-	assertEquals(
-		"java.util",
-		Signature.getQualifier("java.util.List<java.lang.Object>"));
-}
-/**
- * @see Signature
- */
-public void testGetReturnType() {
-	String methodSig = "(QString;QObject;I)I";
-	assertEquals("Signature#getReturnType is not correct1", "I",
-			Signature.getReturnType(methodSig));
-	try {
-		Signature.getReturnType("");
-		assertTrue("Signature#getReturnType is not correct: exception", false);
-	} catch (IllegalArgumentException iae) {
-		// do nothing
-	}
-	
-	// tests with 1.5-specific elements
-	methodSig = "<X:Qlist<Qstring;>;>(Qstring;Qobject;I)IQexception;Qerror;";
-	assertEquals("Signature#getReturnType is not correct2", "I",
-			Signature.getReturnType(methodSig));
-	methodSig = "<X:Qlist<Qstring;>;>(Qlist<Qstring;>;)Qlist<Qxxx;>;Qexception;Qerror;";
-	assertEquals("Signature#getReturnType is not correct3", "Qlist<Qxxx;>;",
-			Signature.getReturnType(methodSig));
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=112030
- * @see Signature
- */
-public void testGetReturnType2() {
-	String methodSig = "(LObject;)+[I";
-	assertEquals("Signature#getReturnType is not correct", "+[I",
-			Signature.getReturnType(methodSig));
-}
-/**
- * @see Signature
- * @since 3.0
- */
-public void testGetTypeVariable() {
-	// tests with 1.5-specific elements
-	String formalTypeParameterSignature = "Hello:";
-	assertEquals("Signature#getTypeVariable is not correct1", "Hello",
-			Signature.getTypeVariable(formalTypeParameterSignature));
-	formalTypeParameterSignature = "Hello::Qi1;:Qi2;";
-	assertEquals("Signature#getTypeVariable is not correct2", "Hello",
-			Signature.getTypeVariable(formalTypeParameterSignature));
-	formalTypeParameterSignature = "Hello:Qlist<Qstring;>;:Qi1;:Qi2;";
-	assertEquals("Signature#getTypeVariable is not correct3", "Hello",
-			Signature.getTypeVariable(formalTypeParameterSignature));
-	try {
-		Signature.getTypeVariable("");
-		assertTrue("Signature#getTypeVariable is not correct: exception", false);
-	} catch (IllegalArgumentException iae) {
-		// do nothing
-	}
-}
-
-/**
- * @see Signature
- */
-public void testGetSimpleName01() {
-	assertEquals("Signature#getSimpleName is not correct 1", "Object",
-			Signature.getSimpleName("java.lang.Object"));
-}
-public void testGetSimpleName02() {
-	assertEquals("Signature#getSimpleName is not correct 2", "",
-			Signature.getSimpleName(""));
-}
-public void testGetSimpleName03() {
-	assertEquals("Signature#getSimpleName is not correct 3", 
-			"MapEntry<K<T>[],V2[]>",
-			Signature.getSimpleName("java.y.Map<Object[],String>.MapEntry<p.K<T>[],q.r.V2[]>"));
-}
-public void testGetSimpleName04() {
-	assertEquals("Signature#getSimpleName is not correct 4", 
-			"MapEntry<K<T>[],? extends V2>",
-			Signature.getSimpleName("java.y.Map<Object[],String>.MapEntry<p.K<T>[],? extends q.r.V2>"));	
-}
-public void testGetSimpleName05() {
-	assertEquals("Unexpected simple name", "List<?>", Signature.getSimpleName("List<?>"));
-}
-public void testGetSimpleName06() {
-	assertEquals("Unexpected simple name", "List<? extends E>", Signature.getSimpleName("List<?extends E>"));
-}
-public void testGetSimpleName07() {
-	assertEquals("Unexpected simple name", "List<? super E>", Signature.getSimpleName("List<?super E>"));
-}
-public void testGetSimpleName08() {
-	assertEquals("Unexpected simple name", "List<+Comparable<-TT;>;>;", Signature.getSimpleName("	java.util.List<+Ljava.lang.Comparable<-TT;>;>;"));
-}
-/**
- * @see Signature
- */
-public void testGetSimpleNames01() {
-	assertStringsEqual(
-		"Unexpected simple names",
-		"java\n" + 
-		"lang\n" + 
-		"Object\n",
-		Signature.getSimpleNames("java.lang.Object"));
-}
-public void testGetSimpleNames02() {
-	assertStringsEqual(
-		"Unexpected simple names",
-		"",
-		Signature.getSimpleNames(""));
-}
-public void testGetSimpleNames03() {
-	assertStringsEqual(
-		"Unexpected simple names",
-		"Object\n",
-		Signature.getSimpleNames("Object"));
-}
-public void testGetSimpleNames04() {
-	assertStringsEqual(
-		"Unexpected simple names",
-		"java\n" + 
-		"util\n" + 
-		"List<java.lang.String>\n",
-		Signature.getSimpleNames("java.util.List<java.lang.String>"));
-}
-/**
- * @see Signature
- */
-public void testToQualifiedName() {
-	assertEquals("Signature#toQualifiedName is not correct1", "java.lang.Object",
-			Signature.toQualifiedName(new String[] {"java", "lang", "Object"}));
-	assertEquals("Signature#toQualifiedName is not correct2", "Object",
-			Signature.toQualifiedName(new String[] {"Object"}));
-	assertEquals("Signature#toQualifiedName is not correct3", "",
-			Signature.toQualifiedName(new String[0]));
-}
-/**
- * @see Signature#toString(String)
- */
-public void testToStringType01() {
-	assertEquals(
-		"java/lang/String",
-		Signature.toString("Ljava/lang/String;"));
-}
-public void testToStringType02() {
-	assertEquals(
-		"java.lang.String",
-		Signature.toString("Ljava.lang.String;"));
-}
-public void testToStringType03() {
-	assertEquals(
-		"java.lang.String[]",
-		Signature.toString("[Ljava.lang.String;"));
-}
-public void testToStringType04() {
-	assertEquals(
-		"String",
-		Signature.toString("QString;"));
-}
-public void testToStringType05() {
-	assertEquals(
-		"String[][]",
-		Signature.toString("[[QString;"));
-}
-public void testToStringType06() {
-	assertEquals(
-		"boolean",
-		Signature.toString("Z"));
-}
-public void testToStringType07() {
-	assertEquals(
-		"byte",
-		Signature.toString("B"));
-}
-public void testToStringType08() {
-	assertEquals(
-		"char",
-		Signature.toString("C"));
-}
-public void testToStringType09() {
-	assertEquals(
-		"double",
-		Signature.toString("D"));
-}
-public void testToStringType10() {
-	assertEquals(
-		"float",
-		Signature.toString("F"));
-}
-public void testToStringType11() {
-	assertEquals(
-		"int",
-		Signature.toString("I"));
-}
-public void testToStringType12() {
-	assertEquals(
-		"long",
-		Signature.toString("J"));
-}
-public void testToStringType13() {
-	assertEquals(
-		"short",
-		Signature.toString("S"));
-}
-public void testToStringType14() {
-	assertEquals(
-		"void",
-		Signature.toString("V"));
-}
-public void testToStringType15() {
-	assertEquals(
-		"int[][][]",
-		Signature.toString("[[[I"));
-}
-
-// signatures with 1.5 elements
-
-public void testToStringType16() {
-	assertEquals(
-		"VAR",
-		Signature.toString("TVAR;"));
-}
-public void testToStringType17() {
-	assertEquals(
-		"A<B>",
-		Signature.toString("QA<QB;>;"));
-}
-public void testToStringType18() {
-	assertEquals(
-		"A<?>",
-		Signature.toString("QA<*>;"));
-}
-public void testToStringType19() {
-	assertEquals(
-		"A<? extends B>",
-		Signature.toString("QA<+QB;>;"));
-}
-public void testToStringType20() {
-	assertEquals(
-		"A<? super B>",
-		Signature.toString("QA<-QB;>;"));
-}
-public void testToStringType21() {
-	assertEquals(
-		"A<?,?,?,?,?>",
-		Signature.toString("LA<*****>;"));
-}
-public void testToStringType22() {
-	assertEquals(
-		"a<V>.b<W>.c<X>",
-		Signature.toString("La<TV;>.b<QW;>.c<LX;>;"));
-}
-public void testToStringType23() {
-	assertEquals(
-		"java.y.Map<Object[],String>.MapEntry<p.K<T>[],q.r.V2[]>",
-		Signature.toString("Qjava.y.Map<[QObject;QString;>.MapEntry<[Qp.K<QT;>;[Qq.r.V2;>;"));
-}
-public void testToStringType24() {
-	assertEquals(
-		"Stack<List<Object>>",
-		Signature.toString("QStack<QList<QObject;>;>;"));
-}
-public void testToStringType25() {
-	assertEquals(
-		"?",
-		Signature.toString("*"));
-}
-public void testToStringType26() {
-	assertEquals(
-		"? extends Object",
-		Signature.toString("+QObject;"));
-}
-public void testToStringType27() {
-	assertEquals(
-		"? super InputStream",
-		Signature.toString("-QInputStream;"));
-}
-/**
- * @see Signature#toString(String, String, String[], boolean, boolean)
- */
-public void testToStringMethod01() {
-	assertEquals(
-		"void main(String[] args)",
-		Signature.toString("([Ljava.lang.String;)V", "main", new String[] {"args"}, false, true));
-}
-public void testToStringMethod02() {
-	assertEquals(
-		"main(String[] args)",
-		Signature.toString("([Ljava.lang.String;)V", "main", new String[] {"args"}, false, false));
-}
-public void testToStringMethod03() {
-	assertEquals(
-		"main(java.lang.String[] args)",
-		Signature.toString("([Ljava.lang.String;)V", "main", new String[] {"args"}, true, false));
-}
-public void testToStringMethod04() {
-	assertEquals(
-		"(java.lang.String[])",
-		Signature.toString("([Ljava.lang.String;)V", null, null, true, false));
-}
-public void testToStringMethod05() {
-	assertEquals(
-		"String main(String[] args)",
-		Signature.toString("([Ljava.lang.String;)Ljava.lang.String;", "main", new String[] {"args"}, false, true));
-}
-public void testToStringMethod06() {
-	assertEquals(
-		"java.lang.String main(java.lang.String[] args)",
-		Signature.toString("([Ljava.lang.String;)Ljava.lang.String;", "main", new String[] {"args"}, true, true));
-}
-public void testToStringMethod07() {
-	assertEquals(
-		"java.lang.String main(java.lang.String[] args)",
-		Signature.toString("main([Ljava.lang.String;)Ljava.lang.String;", "main", new String[] {"args"}, true, true));
-}
-public void testToStringMethod08() {
-	assertEquals(
-		"java.lang.String[] foo()",
-		Signature.toString("()[Ljava.lang.String;", "foo", null, true, true));
-}
-public void testToStringMethod09() {
-	assertEquals(
-		"I foo(C, L)",
-		Signature.toString("(LC;LL;)LI;", "foo", null, true, true));
-}
-public void testToStringMethod10() {
-	assertEquals(
-		"char[][] foo()",
-		Signature.toString("()[[C", "foo", null, true, true));
-}
-public void testToStringMethod11() {
-	assertEquals(
-		"void foo(java.lang.Object, String[][], boolean, byte, char, double, float, int, long, short)",
-		Signature.toString("(Ljava.lang.Object;[[QString;ZBCDFIJS)V", "foo", null, true, true));
-}
-public void testToStringMethod12() {
-	try {
-		Signature.toString("([Ljava.lang.String;V", null, null, true, false);
-	} catch (IllegalArgumentException iae) {
-		return;
-	}
-	assertTrue("Should get an exception", false);
-}
-
-/**
- * Test the toString() signature of an inner type.
- */
-public void testToStringInnerType() {
-	assertEquals(
-		"Signature#toString is not correct", 
-		"x.y.A.Inner",
-		Signature.toString("Lx.y.A$Inner;"));
-}
-
-/**
- * @see Signature#getTypeSignatureKind(String)
- */
-public void testGetTypeSignatureKind01() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 1", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("Ljava.lang.String;"));
-}
-public void testGetTypeSignatureKind02() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 2", 
-		Signature.ARRAY_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("[Ljava.lang.String;"));
-}
-public void testGetTypeSignatureKind03() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 3", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QString;"));
-}
-public void testGetTypeSignatureKind04() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 4", 
-		Signature.ARRAY_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("[[QString;"));
-}
-public void testGetTypeSignatureKind05() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 5", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("Z"));
-}
-public void testGetTypeSignatureKind06() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 6", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("B"));
-}
-public void testGetTypeSignatureKind07() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 7", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("C"));
-}
-public void testGetTypeSignatureKind08() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 8", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("D"));
-}
-public void testGetTypeSignatureKind09() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 9", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("F"));
-}
-public void testGetTypeSignatureKind10() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 10", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("I"));
-}
-public void testGetTypeSignatureKind11() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 11", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("J"));
-}
-public void testGetTypeSignatureKind12() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 12", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("S"));
-}
-public void testGetTypeSignatureKind13() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 13", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("V"));
-}
-public void testGetTypeSignatureKind14() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 14", 
-		Signature.ARRAY_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("[[[I"));
-}
-	
-// signatures with 1.5 elements
-
-public void testGetTypeSignatureKind15() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 15", 
-		Signature.TYPE_VARIABLE_SIGNATURE,
-		Signature.getTypeSignatureKind("TVAR;"));
-}
-public void testGetTypeSignatureKind16() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 16", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QA<QB;>;"));
-}
-public void testGetTypeSignatureKind17() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 17", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QA<*>;"));
-}
-public void testGetTypeSignatureKind18() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 18", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QA<+QB;>;"));
-}
-public void testGetTypeSignatureKind19() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 19", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QA<-QB;>;"));
-}
-public void testGetTypeSignatureKind20() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 20", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("LA<*****>;"));
-}
-public void testGetTypeSignatureKind21() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 21", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("La<TV;>.b<QW;>.c<LX;>;"));
-}
-
-/*
- * Generic type signature
- * (regression test for bug 97273 Illegal argument exception in Signature#getTypeSignatureKind)
- */
-public void testGetTypeSignatureKind25() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(String) is not correct 25", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("<T:>Ljava.lang.Class;"));
-}
-
-/**
- * @see Signature#getTypeSignatureKind(char[])
- */
-public void testGetTypeSignatureKindCharArray01() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 1", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("Ljava.lang.String;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray02() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 2", 
-		Signature.ARRAY_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("[Ljava.lang.String;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray03() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 3", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QString;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray04() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 4", 
-		Signature.ARRAY_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("[[QString;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray05() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 5", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("Z".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray06() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 6", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("B".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray07() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 7", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("C".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray08() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 8", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("D".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray09() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 9", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("F".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray10() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 10", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("I".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray11() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 11", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("J".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray12() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 12", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("S".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray13() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 13", 
-		Signature.BASE_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("V".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray14() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 14", 
-		Signature.ARRAY_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("[[[I".toCharArray()));
-}	
-
-// signatures with 1.5 elements
-
-public void testGetTypeSignatureKindCharArray15() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 15", 
-		Signature.TYPE_VARIABLE_SIGNATURE,
-		Signature.getTypeSignatureKind("TVAR;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray16() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 16", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QA<QB;>;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray17() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 17", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QA<*>;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray18() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 18", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QA<+QB;>;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray19() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 19", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("QA<-QB;>;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray20() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 20", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("LA<*****>;".toCharArray()));
-}
-public void testGetTypeSignatureKindCharArray21() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 21", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("La<TV;>.b<QW;>.c<LX;>;".toCharArray()));
-}
-/*
- * Generic type signature
- * (regression test for bug 97273 Illegal argument exception in Signature#getTypeSignatureKind)
- */
-public void testGetTypeSignatureKindCharArray25() {
-	assertEquals(
-		"Signature#getTypeSignatureKind(char[]) is not correct 25", 
-		Signature.CLASS_TYPE_SIGNATURE,
-		Signature.getTypeSignatureKind("<T:>Ljava.lang.Class;".toCharArray()));
-}
-
-public void testGetTypeFragment01() {
-	assertEquals(
-		"C.D.E",
-		Signature.getSignatureSimpleName("La.b.C$D$E;"));
-}
-public void testGetTypeFragment02() {
-	assertEquals(
-		"C.D.E",
-		Signature.getSignatureSimpleName("LC$D$E;"));
-}
-public void testGetTypeFragment03() {
-	assertEquals(
-		"C<X>.D.E",
-		Signature.getSignatureSimpleName("La.b.C<LX;>.D$E;"));
-}
-public void testGetPackageFragment01() {
-	assertEquals(
-		"a.b",
-		Signature.getSignatureQualifier("La.b.C$D$E;"));
-}
-public void testGetPackageFragment02() {
-	assertEquals(
-		"",
-		Signature.getSignatureQualifier("LC$D$E;"));
-}
-public void testGetPackageFragment03() {
-	assertEquals(
-		"a.b",
-		Signature.getSignatureQualifier("La.b.C<LX;>.D$E;"));
-}
-public void testGetPackageFragment04() {
-	assertEquals(
-		"",
-		Signature.getSignatureQualifier("LC<LX;>.D$E;"));
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionContextTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionContextTests.java
deleted file mode 100644
index 5e8d39a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionContextTests.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.wst.jsdt.core.*;
-
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-import junit.framework.*;
-
-public class SnippetCompletionContextTests extends AbstractJavaModelCompletionTests implements RelevanceConstants {
-
-public SnippetCompletionContextTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	if (COMPLETION_PROJECT == null)  {
-		COMPLETION_PROJECT = setUpJavaProject("Completion", "1.4");
-	} else {
-		setUpProjectCompliance(COMPLETION_PROJECT, "1.4");
-	}
-	super.setUpSuite();
-}
-
-public static Test suite() {
-	return buildModelTestSuite(SnippetCompletionContextTests.class);
-}
-static {
-	TESTS_NAMES = new String[]{"test0002"};
-}
-public void test0001() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0001/X.js",
-		"package test0001;\n" + 
-		"public class X {\n" + 
-		"  /**/\n" + 
-		"}");
-	
-	String snippet =
-		"ZZZZ";
-	
-	IType type = this.workingCopies[0].getType("X");
-	String str = this.workingCopies[0].getSource();
-	int insertion = str.lastIndexOf("/**/");
-	
-	int tokenStart = snippet.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = snippet.lastIndexOf("ZZZZ") + "ZZZZ".length();
-	
-	
-	CompletionResult result = snippetContextComplete(
-			type,
-			snippet,
-			insertion,
-			cursorLocation,
-			false);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0002() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0002/X.js",
-		"package test0002;\n" + 
-		"public class X {\n" + 
-		"  /**/\n" + 
-		"}");
-	
-	String snippet =
-		"ZZZZ";
-	
-	IType type = this.workingCopies[0].getType("X");
-	String str = this.workingCopies[0].getSource();
-	int insertion = str.lastIndexOf("/**/");
-	
-	int tokenStart = snippet.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = snippet.lastIndexOf("ZZZZ");
-	
-	
-	CompletionResult result = snippetContextComplete(
-			type,
-			snippet,
-			insertion,
-			cursorLocation,
-			false);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0003() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0003/X.js",
-		"package test0003;\n" + 
-		"public class X {\n" + 
-		"  /**/\n" + 
-		"}");
-	
-	String snippet =
-		"ZZZZ";
-	
-	IType type = this.workingCopies[0].getType("X");
-	String str = this.workingCopies[0].getSource();
-	int insertion = str.lastIndexOf("/**/");
-	
-	int tokenStart = snippet.lastIndexOf("ZZZZ");
-	int tokenEnd = tokenStart + "ZZZZ".length() - 1;
-	int cursorLocation = snippet.lastIndexOf("ZZZZ") + "ZZ".length();
-	
-	
-	CompletionResult result = snippetContextComplete(
-			type,
-			snippet,
-			insertion,
-			cursorLocation,
-			false);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"ZZ\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-public void test0004() throws JavaScriptModelException {
-	this.workingCopies = new IJavaScriptUnit[1];
-	this.workingCopies[0] = getWorkingCopy(
-		"/Completion/src3/test0004/X.js",
-		"package test0004;\n" + 
-		"public class X {\n" + 
-		"  /**/\n" + 
-		"}");
-	
-	String snippet =
-		"/**/";
-	
-	IType type = this.workingCopies[0].getType("X");
-	String str = this.workingCopies[0].getSource();
-	int insertion = str.lastIndexOf("/**/");
-	
-	int tokenStart = snippet.lastIndexOf("/**/");
-	int tokenEnd = tokenStart + "".length();
-	int cursorLocation = snippet.lastIndexOf("/**/") + "".length();
-	
-	
-	CompletionResult result = snippetContextComplete(
-			type,
-			snippet,
-			insertion,
-			cursorLocation,
-			false);
-
-	assertResults(
-		"completion offset="+(cursorLocation)+"\n" +
-		"completion range=["+(tokenStart)+", "+(tokenEnd)+"]\n" +
-		"completion token=\"\"\n" +
-		"completion token kind=TOKEN_KIND_NAME\n" +
-		"expectedTypesSignatures=null\n" +
-		"expectedTypesKeys=null",
-		result.context);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionTests.java
deleted file mode 100644
index 21a7bf5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionTests.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;
-
-import junit.framework.*;
-
-public class SnippetCompletionTests extends AbstractJavaModelTests implements RelevanceConstants {
-	
-public SnippetCompletionTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	setUpJavaProject("SnippetCompletion");
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("SnippetCompletion");
-	
-	super.tearDownSuite();
-}
-
-public static Test suite() {
-	return buildModelTestSuite(SnippetCompletionTests.class);
-	/*
-	TestSuite suite = new Suite(SnippetCompletionTests.class.getName());
-	
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistForClassFile"));
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistForCompilationUnit"));
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistForClassFileWithSource"));
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistForCompilationUnitWithoutSource"));
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistForClassFileInInnerClass"));
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistForClassFileInInterface"));
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistForClassFileInInterface2"));
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistForClassFileWithDollar"));
-	suite.addTest(new SnippetCompletionTests("testCodeSnippetAssistInsideNumber"));
-	
-	return suite;
-	*/
-}
-protected void assertResults(String expected, String actual) {
-	try {
-		assertEquals(expected, actual);
-	} catch(ComparisonFailure c) {
-		System.out.println(actual);
-		System.out.println();
-		throw c;
-	}
-}
-public void testCodeSnippetAssistForClassFile() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IClassFile cf = getClassFile("SnippetCompletion", "class-folder", "aa.bb.cc", "AClass.class");
-	IType type = cf.getType();
-	
-	String snippet = 
-		"int varX;\n" +
-		"int varY;\n" +
-		"var";
-		
-	char[][] typeNames = {"SuperClass".toCharArray(), "int".toCharArray()};
-	char[][] names = {"varsc".toCharArray(), "var".toCharArray()};
-	int[] modifiers = {ClassFileConstants.AccDefault, ClassFileConstants.AccFinal};
-	
-	type.codeComplete(snippet.toCharArray(), -1, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	int tokenStart = snippet.lastIndexOf("var");
-	int tokenEnd = tokenStart + "var".length();
-	assertResults(
-		"void[KEYWORD]{void, null, null, void, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-		"var[LOCAL_VARIABLE_REF]{var, null, I, var, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varX[LOCAL_VARIABLE_REF]{varX, null, I, varX, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varY[LOCAL_VARIABLE_REF]{varY, null, I, varY, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varsc[LOCAL_VARIABLE_REF]{varsc, null, Laa.bb.cc.SuperClass;, varsc, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-
-
-public void testCodeSnippetAssistForCompilationUnit() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IJavaScriptUnit cu = getCompilationUnit("SnippetCompletion", "src", "aa.bb.cc", "BClass.js");
-	IType type = cu.getTypes()[0];
-	String snippet = 
-		"int varX;\n" +
-		"int varY;\n" +
-		"var";
-		
-	char[][] typeNames = {"SuperClass".toCharArray(), "int".toCharArray()};
-	char[][] names = {"varsc".toCharArray(), "var".toCharArray()};
-	int[] modifiers = {ClassFileConstants.AccDefault, ClassFileConstants.AccFinal};
-
-	String insertAftrer = "Victory{}";
-	String s = cu.getSource();
-	int insertion = -1;
-	if(s != null)
-		insertion = s.lastIndexOf(insertAftrer) + insertAftrer.length();
-
-	type.codeComplete(snippet.toCharArray(), insertion, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	int tokenStart = snippet.lastIndexOf("var");
-	int tokenEnd = tokenStart + "var".length();
-	assertResults(
-		"Victory[TYPE_REF]{Victory, aa.bb.cc, LVictory;, null, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"void[KEYWORD]{void, null, null, void, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-		"var[LOCAL_VARIABLE_REF]{var, null, I, var, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varX[LOCAL_VARIABLE_REF]{varX, null, I, varX, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varY[LOCAL_VARIABLE_REF]{varY, null, I, varY, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varsc[LOCAL_VARIABLE_REF]{varsc, null, Laa.bb.cc.SuperClass;, varsc, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-
-public void testCodeSnippetAssistForClassFileWithSource() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IClassFile cf = getClassFile("SnippetCompletion", "class-folder", "aa.bb.cc", "CClass.class");
-	IType type = cf.getType();
-	
-	String snippet = 
-		"int varX;\n" +
-		"int varY;\n" +
-		"var";
-		
-	char[][] typeNames = {"SuperClass".toCharArray(), "int".toCharArray()};
-	char[][] names = {"varsc".toCharArray(), "var".toCharArray()};
-	int[] modifiers = {ClassFileConstants.AccDefault, ClassFileConstants.AccFinal};
-
-	String insertAftrer = "Victory{}";
-	String s = cf.getSource();
-	int insertion = -1;
-	if(s != null)
-		insertion = s.lastIndexOf(insertAftrer) + insertAftrer.length();
-	
-	type.codeComplete(snippet.toCharArray(), insertion, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	int tokenStart = snippet.lastIndexOf("var");
-	int tokenEnd = tokenStart + "var".length();
-	assertResults(
-		"Victory[TYPE_REF]{Victory, aa.bb.cc, LVictory;, null, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"void[KEYWORD]{void, null, null, void, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-		"var[LOCAL_VARIABLE_REF]{var, null, I, var, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varX[LOCAL_VARIABLE_REF]{varX, null, I, varX, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varY[LOCAL_VARIABLE_REF]{varY, null, I, varY, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varsc[LOCAL_VARIABLE_REF]{varsc, null, Laa.bb.cc.SuperClass;, varsc, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-
-
-public void testCodeSnippetAssistForCompilationUnitWithoutSource() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IJavaScriptUnit cu = getCompilationUnit("SnippetCompletion", "src", "aa.bb.cc", "BClass.js");
-	IType type = cu.getTypes()[0];
-	
-	String snippet = 
-		"int varX;\n" +
-		"int varY;\n" +
-		"var";
-		
-	char[][] typeNames = {"SuperClass".toCharArray(), "int".toCharArray()};
-	char[][] names = {"varsc".toCharArray(), "var".toCharArray()};
-	int[] modifiers = {ClassFileConstants.AccDefault, ClassFileConstants.AccFinal};
-
-	int insertion = -1;
-
-	type.codeComplete(snippet.toCharArray(), insertion, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	int tokenStart = snippet.lastIndexOf("var");
-	int tokenEnd = tokenStart + "var".length();
-	assertResults(
-		"void[KEYWORD]{void, null, null, void, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-		"var[LOCAL_VARIABLE_REF]{var, null, I, var, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varX[LOCAL_VARIABLE_REF]{varX, null, I, varX, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varY[LOCAL_VARIABLE_REF]{varY, null, I, varY, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varsc[LOCAL_VARIABLE_REF]{varsc, null, Laa.bb.cc.SuperClass;, varsc, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-
-
-public void testCodeSnippetAssistForClassFileInInnerClass() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IClassFile cf = getClassFile("SnippetCompletion", "class-folder", "aa.bb.cc", "AClass$Inner.class");
-	IType type = cf.getType();
-	
-	String snippet = 
-		"int varX;\n" +
-		"int varY;\n" +
-		"var";
-		
-	char[][] typeNames = {"SuperClass".toCharArray(), "int".toCharArray()};
-	char[][] names = {"varsc".toCharArray(), "var".toCharArray()};
-	int[] modifiers = {ClassFileConstants.AccDefault, ClassFileConstants.AccFinal};
-
-	String insertAftrer = "Victory{}";
-	String s = cf.getSource();
-	int insertion = -1;
-	if(s != null)
-		insertion = s.lastIndexOf(insertAftrer) + insertAftrer.length();
-	
-	type.codeComplete(snippet.toCharArray(), insertion, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	int tokenStart = snippet.lastIndexOf("var");
-	int tokenEnd = tokenStart + "var".length();
-	assertResults(
-		"void[KEYWORD]{void, null, null, void, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-		"var[LOCAL_VARIABLE_REF]{var, null, I, var, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varX[LOCAL_VARIABLE_REF]{varX, null, I, varX, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varY[LOCAL_VARIABLE_REF]{varY, null, I, varY, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varsc[LOCAL_VARIABLE_REF]{varsc, null, Laa.bb.cc.SuperClass;, varsc, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=50686
- */
-public void testCodeSnippetAssistForClassFileInInterface() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IClassFile cf = getClassFile("SnippetCompletion", "class-folder", "xx.yy", "MyInterface.class");
-	IType type = cf.getType();
-	
-	String snippet = 
-		"int varX;\n" +
-		"int varY;\n" +
-		"var";
-		
-	char[][] typeNames = {"SuperClass".toCharArray(), "int".toCharArray()};
-	char[][] names = {"varsc".toCharArray(), "var".toCharArray()};
-	int[] modifiers = {ClassFileConstants.AccDefault, ClassFileConstants.AccFinal};
-	
-	type.codeComplete(snippet.toCharArray(), -1, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	int tokenStart = snippet.lastIndexOf("var");
-	int tokenEnd = tokenStart + "var".length();
-	assertResults(
-		"void[KEYWORD]{void, null, null, void, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-		"var[LOCAL_VARIABLE_REF]{var, null, I, var, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varX[LOCAL_VARIABLE_REF]{varX, null, I, varX, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varY[LOCAL_VARIABLE_REF]{varY, null, I, varY, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varsc[LOCAL_VARIABLE_REF]{varsc, null, LSuperClass;, varsc, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-/*
- * bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=62201
- */
-public void testCodeSnippetAssistForClassFileInInterface2() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IClassFile cf = getClassFile("SnippetCompletion", "class-folder", "xx.yy", "MyInterface2.class");
-	IType type = cf.getType();
-	
-	String snippet = 
-		"int varX;\n" +
-		"int varY;\n" +
-		"var";
-		
-	char[][] typeNames = {"SuperClass".toCharArray(), "int".toCharArray()};
-	char[][] names = {"varsc".toCharArray(), "var".toCharArray()};
-	int[] modifiers = {ClassFileConstants.AccDefault, ClassFileConstants.AccFinal};
-	
-	type.codeComplete(snippet.toCharArray(), -1, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	int tokenStart = snippet.lastIndexOf("var");
-	int tokenEnd = tokenStart + "var".length();
-	assertResults(
-		"void[KEYWORD]{void, null, null, void, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-		"var[LOCAL_VARIABLE_REF]{var, null, I, var, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varFoo[FUNCTION_REF]{varFoo(), Lxx.yy.MyInterface2;, ()V, varFoo, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varX[LOCAL_VARIABLE_REF]{varX, null, I, varX, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varY[LOCAL_VARIABLE_REF]{varY, null, I, varY, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varsc[LOCAL_VARIABLE_REF]{varsc, null, LSuperClass;, varsc, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-public void testCodeSnippetAssistForClassFileWithDollar() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IClassFile cf = getClassFile("SnippetCompletion", "class-folder", "test00XX", "Test.class");
-	IType type = cf.getType();
-	
-	String snippet = 
-		"int varX;\n" +
-		"int varY;\n" +
-		"var";
-		
-	char[][] typeNames = {};
-	char[][] names = {};
-	int[] modifiers = {};
-
-	type.codeComplete(snippet.toCharArray(), -1, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	int tokenStart = snippet.lastIndexOf("var");
-	int tokenEnd = tokenStart + "var".length();
-	assertResults(
-		"void[KEYWORD]{void, null, null, void, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_NON_RESTRICTED)+"}\n"+
-		"varX[LOCAL_VARIABLE_REF]{varX, null, I, varX, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"varY[LOCAL_VARIABLE_REF]{varY, null, I, varY, ["+tokenStart+", "+tokenEnd+"], "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-
-public void testCodeSnippetAssistInsideNumber() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(false,false,true);
-	IClassFile cf = getClassFile("SnippetCompletion", "class-folder", "aa.bb.cc", "AClass.class");
-	IType type = cf.getType();
-	
-	String snippet = 
-		"new double[] {1.2, 3.\n";
-		
-	char[][] typeNames = {"SuperClass".toCharArray(), "int".toCharArray()};
-	char[][] names = {"varsc".toCharArray(), "var".toCharArray()};
-	int[] modifiers = {ClassFileConstants.AccDefault, ClassFileConstants.AccFinal};
-	
-	type.codeComplete(snippet.toCharArray(), -1, snippet.length()-2, typeNames, names, modifiers, false, requestor);
-	
-	assertResults(
-		"",
-		requestor.getResults());
-}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionTests_1_5.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionTests_1_5.java
deleted file mode 100644
index d66748a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SnippetCompletionTests_1_5.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.internal.codeassist.RelevanceConstants;
-
-import junit.framework.*;
-
-public class SnippetCompletionTests_1_5 extends AbstractJavaModelTests implements RelevanceConstants {
-	
-public SnippetCompletionTests_1_5(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	setUpJavaProject("SnippetCompletion", "1.5");
-}
-public void tearDownSuite() throws Exception {
-	deleteProject("SnippetCompletion");
-	
-	super.tearDownSuite();
-}
-
-public static Test suite() {
-	return buildModelTestSuite(SnippetCompletionTests_1_5.class);
-}
-protected void assertResults(String expected, String actual) {
-	try {
-		assertEquals(expected, actual);
-	} catch(ComparisonFailure c) {
-		System.out.println(actual);
-		System.out.println();
-		throw c;
-	}
-}
-public void testCodeSnippetAssistForBug132665() throws JavaScriptModelException {
-	CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
-	IClassFile cf = getClassFile("SnippetCompletion", "class-folder", "bug132665", "Bug132665.class");
-	IType type = cf.getType();
-	
-	String snippet = 
-		"foo";
-
-	char[][] typeNames = {};
-	char[][] names = {};
-	int[] modifiers = {};
-	
-	type.codeComplete(snippet.toCharArray(), -1, snippet.length(), typeNames, names, modifiers, false, requestor);
-	
-	assertResults(
-		"foo1[FUNCTION_REF]{foo1(), Lbug132665.Bug132665;, ()V, foo1, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}\n"+
-		"foo3[FUNCTION_REF]{foo3(), Lbug132665.Bug132665;, ()V, foo3, "+(R_DEFAULT + R_INTERESTING + R_CASE + R_UNQUALIFIED + R_NON_RESTRICTED)+"}",
-		requestor.getResults());
-}
-}
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
deleted file mode 100644
index ab20aa3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SortCompilationUnitElementsTests.java
+++ /dev/null
@@ -1,2080 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.text.edits.TextEdit;
-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.ASTParser;
-import org.eclipse.wst.jsdt.core.dom.BodyDeclaration;
-import org.eclipse.wst.jsdt.core.util.JavaScriptUnitSorter;
-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;
-
-/**
- * 
- * @since 2.1
- */
-public class SortCompilationUnitElementsTests extends ModifyingResourceTests {
-
-private static final boolean DEBUG = true;
-
-public SortCompilationUnitElementsTests(String name) {
-	super(name);
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	
-	this.createJavaProject("P", new String[] {"src"}, new String[] {getSystemJsPathString()}, "bin", "1.5"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	this.createFolder("/P/src/p"); //$NON-NLS-1$
-}
-/** @deprecated */
-private void sortUnit(IJavaScriptUnit unit, String expectedResult) throws CoreException {
-	this.sortUnit(AST.JLS2, unit, expectedResult, true);
-}
-
-private void sortUnit(int apiLevel, IJavaScriptUnit unit, String expectedResult) throws CoreException {
-	this.sortUnit(apiLevel, unit, expectedResult, true);
-}
-/** @deprecated */
-private void sortUnit(IJavaScriptUnit unit, String expectedResult, boolean testPositions) throws CoreException {
-	this.sortUnit(AST.JLS2, unit, expectedResult, testPositions);
-}
-private void sortUnit(int apiLevel, IJavaScriptUnit unit, String expectedResult, boolean testPositions) throws CoreException {
-	this.sortUnit(apiLevel, unit, expectedResult, testPositions, new DefaultJavaElementComparator(1,2,3,4,5,6,7,8,9));
-}
-/** @deprecated */
-//private void oldAPISortUnit(IJavaScriptUnit unit, String expectedResult, boolean testPositions, Comparator comparator) throws CoreException {
-//	String initialSource = unit.getSource();
-//	int[] positions = null;
-//	int[] initialPositions = null;
-//	ArrayList arrayList = new ArrayList();
-//	if (testPositions) {
-//		for (int i = 0; i < initialSource.length(); i++) {
-//			if (!Character.isWhitespace(initialSource.charAt(i))) {
-//				arrayList.add(new Integer(i));
-//			}
-//		}
-//		final int length = arrayList.size();
-//		positions = new int[length];
-//		for (int i = 0; i < length; i++) {
-//			positions[i] = ((Integer) arrayList.get(i)).intValue();
-//		}
-//		initialPositions = new int[length];
-//		System.arraycopy(positions, 0, initialPositions, 0, length);
-//	}
-//	IJavaScriptUnit copy = unit.getWorkingCopy(null);
-//	JavaScriptUnitSorter.sort(copy , positions, comparator, 0, new NullProgressMonitor());
-//	String sortedSource = copy.getBuffer().getContents();
-//	assertEquals("Different output", expectedResult, sortedSource); //$NON-NLS-1$
-//	final int expectedResultLength = expectedResult.length();
-//	if (testPositions) {
-//		for (int i = 0, max = positions.length; i < max; i++) {
-//			char mappedChar = ' ';
-//			char initial = initialSource.charAt(initialPositions[i]);
-//			try {
-//				mappedChar = expectedResult.charAt(positions[i]);
-//				if (mappedChar != initial) {
-//					System.out.println("wrong mapped positions: " + initialPositions[i] + " <-> " + positions[i] + ": expected " + initial + " but was " + mappedChar); //$NON-NLS-1$ //$NON-NLS-2$
-//					assertEquals("wrong mapped positions: " + initialPositions[i] + " <-> " + positions[i], initial, mappedChar); //$NON-NLS-1$ //$NON-NLS-2$
-//				}
-//			} catch(StringIndexOutOfBoundsException e) {
-//				System.out.println("Out of bounds : (length = " + expectedResultLength + ") " + positions[i]);
-//			}
-//		}
-//	}
-//}
-private void sortUnit(int apiLevel, IJavaScriptUnit unit, String expectedResult, boolean testPositions, Comparator comparator) throws CoreException {
-
-	String initialSource = unit.getSource();
-	int[] positions = null;
-	int[] initialPositions = null;
-	ArrayList arrayList = new ArrayList();
-	if (testPositions) {
-		for (int i = 0; i < initialSource.length(); i++) {
-			if (!Character.isWhitespace(initialSource.charAt(i))) {
-				arrayList.add(new Integer(i));
-			}
-		}
-		final int length = arrayList.size();
-		positions = new int[length];
-		for (int i = 0; i < length; i++) {
-			positions[i] = ((Integer) arrayList.get(i)).intValue();
-		}
-		initialPositions = new int[length];
-		System.arraycopy(positions, 0, initialPositions, 0, length);
-	}
-	IJavaScriptUnit copy = unit.getWorkingCopy(null);
-	JavaScriptUnitSorter.sort(apiLevel, copy , positions, comparator, 0, new NullProgressMonitor());
-	String sortedSource = copy.getBuffer().getContents();
-	assertEquals("Different output", expectedResult, sortedSource); //$NON-NLS-1$
-	final int expectedResultLength = expectedResult.length();
-	if (testPositions) {
-		for (int i = 0, max = positions.length; i < max; i++) {
-			char mappedChar = ' ';
-			char initial = initialSource.charAt(initialPositions[i]);
-			try {
-				mappedChar = expectedResult.charAt(positions[i]);
-				if (mappedChar != initial) {
-					System.out.println("wrong mapped positions: " + initialPositions[i] + " <-> " + positions[i] + ": expected " + initial + " but was " + mappedChar); //$NON-NLS-1$ //$NON-NLS-2$
-					assertEquals("wrong mapped positions: " + initialPositions[i] + " <-> " + positions[i], initial, mappedChar); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			} catch(StringIndexOutOfBoundsException e) {
-				System.out.println("Out of bounds : (length = " + expectedResultLength + ") " + positions[i]);
-			}
-		}
-	}
-}
-void debug(IJavaScriptUnit unit, String id) throws JavaScriptModelException {
-	String source = unit.getBuffer().getContents();
-	if (DEBUG) {
-		System.out.println("========================== " + id + " =============================="); //$NON-NLS-1$ //$NON-NLS-2$
-		System.out.println(source);
-		System.out.println("========================== " + id + " =============================="); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
-
-public static Test suite() {
-	return buildModelTestSuite(SortCompilationUnitElementsTests.class);
-}
-public void tearDownSuite() throws Exception {
-	this.deleteProject("P"); //$NON-NLS-1$
-	super.tearDownSuite();
-}
-/**
- * Calls methods that do nothing to ensure code coverage
- */
-public void test001() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"/**\n" + //$NON-NLS-1$
-			" *\n" + //$NON-NLS-1$
-			" */\n" + //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	static class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	static int i, j = 3, /*     */ k = 4;\n" + //$NON-NLS-1$
-			"	void bar(int i) {\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar() {\n" + //$NON-NLS-1$
-			"		\n\n" + //$NON-NLS-1$
-			"		class E {\n" + //$NON-NLS-1$
-			"			void bar7() {\n" + //$NON-NLS-1$
-			"				System.out.println();\n" + //$NON-NLS-1$
-			"			}\n" + //$NON-NLS-1$
-			"			void bar9() {}\n" + //$NON-NLS-1$
-			"			void bar2() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		Object o = new E();\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	Object b1 = null, a1 = new Object() {\n" + //$NON-NLS-1$
-			"		void bar2() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar4() {\n" + //$NON-NLS-1$
-			"			System.out.println();\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar3() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}, c1 = null;\n" + //$NON-NLS-1$
-			"}\n" //$NON-NLS-1$
-		);
-		String expectedResult = "/**\n" + //$NON-NLS-1$
-			" *\n" + //$NON-NLS-1$
-			" */\n" + //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	static class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	static int i, j = 3, /*     */ k = 4;\n" + //$NON-NLS-1$
-			"	Object b1 = null, a1 = new Object() {\n" + //$NON-NLS-1$
-			"		void bar() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar2() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar3() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar4() {\n" + //$NON-NLS-1$
-			"			System.out.println();\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}, c1 = null;\n" + //$NON-NLS-1$
-			"	void bar() {\n" + //$NON-NLS-1$
-			"		\n" + //$NON-NLS-1$
-			"\n" + //$NON-NLS-1$
-			"		class E {\n" + //$NON-NLS-1$
-			"			void bar2() {}\n" + //$NON-NLS-1$
-			"			void bar7() {\n" + //$NON-NLS-1$
-			"				System.out.println();\n" + //$NON-NLS-1$
-			"			}\n" + //$NON-NLS-1$
-			"			void bar9() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		Object o = new E();\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar(int i) {\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}\n";//$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-public void test002() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	\n" + //$NON-NLS-1$
-			"	class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	int i, j, k;\n" + //$NON-NLS-1$
-			"	Object bar() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		Object o = new Object() {    };\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		return new C();\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		Object o = new Object() {        };\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		return o;\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	Object a1 = new Object() { }, o1 = null;\n" + //$NON-NLS-1$
-			"}" //$NON-NLS-1$
-		);
-		String expectedSource = "package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	\n" + //$NON-NLS-1$
-			"	class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	Object a1 = new Object() { }, o1 = null;\n" + //$NON-NLS-1$
-			"	int i, j, k;\n" + //$NON-NLS-1$
-			"	Object bar() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		Object o = new Object() {    };\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		return new C();\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		Object o = new Object() {        };\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		return o;\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedSource); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-/**
- * Calls methods that do nothing to ensure code coverage
- */
-public void test003() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"/**\n" + //$NON-NLS-1$
-			" *\n" + //$NON-NLS-1$
-			" */\n" + //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X extends java.lang.Object implements java.util.Cloneable {\n" + //$NON-NLS-1$
-			"	class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	int i, j = 3, /*     */ k = 4;\n" + //$NON-NLS-1$
-			"	void bar(final int i[]) {\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar() {\n" + //$NON-NLS-1$
-			"		\n\n" + //$NON-NLS-1$
-			"		class E {\n" + //$NON-NLS-1$
-			"			void bar7() {\n" + //$NON-NLS-1$
-			"				System.out.println();\n" + //$NON-NLS-1$
-			"			}\n" + //$NON-NLS-1$
-			"			void bar9() {}\n" + //$NON-NLS-1$
-			"			void bar2() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		Object o = new E();\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	Object b1[] = null, a1 = new Object() {\n" + //$NON-NLS-1$
-			"		void bar2(int[] j) {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar4() {\n" + //$NON-NLS-1$
-			"			System.out.println();\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar3() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}, c1 = null;\n" + //$NON-NLS-1$
-			"}\n"//$NON-NLS-1$
-		);
-		String expectedResult = "/**\n" + //$NON-NLS-1$
-			" *\n" + //$NON-NLS-1$
-			" */\n" + //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X extends java.lang.Object implements java.util.Cloneable {\n" + //$NON-NLS-1$
-			"	class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	Object b1[] = null, a1 = new Object() {\n" + //$NON-NLS-1$
-			"		void bar() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar2(int[] j) {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar3() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar4() {\n" + //$NON-NLS-1$
-			"			System.out.println();\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}, c1 = null;\n" + //$NON-NLS-1$
-			"	int i, j = 3, /*     */ k = 4;\n" + //$NON-NLS-1$
-			"	void bar() {\n" + //$NON-NLS-1$
-			"		\n" + //$NON-NLS-1$
-			"\n" + //$NON-NLS-1$
-			"		class E {\n" + //$NON-NLS-1$
-			"			void bar2() {}\n" + //$NON-NLS-1$
-			"			void bar7() {\n" + //$NON-NLS-1$
-			"				System.out.println();\n" + //$NON-NLS-1$
-			"			}\n" + //$NON-NLS-1$
-			"			void bar9() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		Object o = new E();\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar(final int i[]) {\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}\n"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-/**
- * Calls methods that do nothing to ensure code coverage
- */
-public void test004() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"/**\n" + //$NON-NLS-1$
-			" *\n" + //$NON-NLS-1$
-			" */\n" + //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X extends java.lang.Object implements java.util.Cloneable {\n" + //$NON-NLS-1$
-			"	\n" + //$NON-NLS-1$
-			"	class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar(final int i[]) {\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar() {\n" + //$NON-NLS-1$
-			"		\n\n" + //$NON-NLS-1$
-			"		class E {\n" + //$NON-NLS-1$
-			"			Object bar7() {\n" + //$NON-NLS-1$
-			"				return new Object() {\n" + //$NON-NLS-1$
-			"					void bar9() {}\n" + //$NON-NLS-1$
-			"					void bar2() {}\n" + //$NON-NLS-1$
-			"				};\n" + //$NON-NLS-1$
-			"			}\n" + //$NON-NLS-1$
-			"			void bar9() {}\n" + //$NON-NLS-1$
-			"			void bar2() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		Object o = new E();\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n\n" + //$NON-NLS-1$
-			"}\n" //$NON-NLS-1$
-		);
-		String expectedResult = "/**\n" + //$NON-NLS-1$
-			" *\n" + //$NON-NLS-1$
-			" */\n" + //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X extends java.lang.Object implements java.util.Cloneable {\n" + //$NON-NLS-1$
-			"	\n" + //$NON-NLS-1$
-			"	class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar() {\n" + //$NON-NLS-1$
-			"		\n" + //$NON-NLS-1$
-			"\n" + //$NON-NLS-1$
-			"		class E {\n" + //$NON-NLS-1$
-			"			void bar2() {}\n" + //$NON-NLS-1$
-			"			Object bar7() {\n" + //$NON-NLS-1$
-			"				return new Object() {\n" + //$NON-NLS-1$
-			"					void bar2() {}\n" + //$NON-NLS-1$
-			"					void bar9() {}\n" + //$NON-NLS-1$
-			"				};\n" + //$NON-NLS-1$
-			"			}\n" + //$NON-NLS-1$
-			"			void bar9() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		Object o = new E();\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar(final int i[]) {\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"\n" + //$NON-NLS-1$
-			"}\n"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-public void test005() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		Object o = new Object() {        };\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		return o;\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}" //$NON-NLS-1$
-		);
-		String expectedResult = "package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		Object o = new Object() {        };\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		return o;\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-public void test006() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		return new Object() {\n" + //$NON-NLS-1$
-			"			public void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() throws IOException, Exception, NullPointerException {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"       };\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}" //$NON-NLS-1$
-		);
-		String expectedResult = "package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		return new Object() {\n" + //$NON-NLS-1$
-			"			void bar4() throws IOException, Exception, NullPointerException {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			public void bar6() {}\n" + //$NON-NLS-1$
-			"       };\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-public void test007() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		return new Object() {\n" + //$NON-NLS-1$
-			"			public static void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar4() throws IOException, Exception, NullPointerException {}\n" + //$NON-NLS-1$
-			"       };\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}" //$NON-NLS-1$
-		);
-		String expectedResult = "package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		return new Object() {\n" + //$NON-NLS-1$
-			"			public static void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() throws IOException, Exception, NullPointerException {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"       };\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-
-public void test008() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		return new Object() {\n" + //$NON-NLS-1$
-			"			public static void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar4() throws IOException, Exception, NullPointerException {}\n" + //$NON-NLS-1$
-			"       };\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}" //$NON-NLS-1$
-		);
-		String expectedResult = "package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		return new Object() {\n" + //$NON-NLS-1$
-			"			public static void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() throws IOException, Exception, NullPointerException {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"       };\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-/**
- * Calls methods that do nothing to ensure code coverage
- */
-public void test009() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"/**\n" + //$NON-NLS-1$
-			" *\n" + //$NON-NLS-1$
-			" */\n" + //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	\n" + //$NON-NLS-1$
-			"	static class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	static int i, j = 3, /*     */ k = 4;\n" + //$NON-NLS-1$
-			"	void bar(int i) {\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	void bar() {\n" + //$NON-NLS-1$
-			"		\n\n" + //$NON-NLS-1$
-			"		class E {\n" + //$NON-NLS-1$
-			"			void bar7() {\n" + //$NON-NLS-1$
-			"				System.out.println();\n" + //$NON-NLS-1$
-			"			}\n" + //$NON-NLS-1$
-			"			void bar9() {}\n" + //$NON-NLS-1$
-			"			void bar2() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		Object o = new E();\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n\n" + //$NON-NLS-1$
-			"	Object b1 = null, a1 = new Object() {\n" + //$NON-NLS-1$
-			"		void bar2() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar4() {\n" + //$NON-NLS-1$
-			"			System.out.println();\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar3() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}, c1 = null;\n" + //$NON-NLS-1$
-			"}\n"  //$NON-NLS-1$
-		);
-		String expectedResult = "/**\n" + //$NON-NLS-1$
-			" *\n" + //$NON-NLS-1$
-			" */\n" + //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	\n" + //$NON-NLS-1$
-			"	static class D {\n" + //$NON-NLS-1$
-			"		String toString() {\n" + //$NON-NLS-1$
-			"			return \"HELLO\";\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	static int i, j = 3, /*     */ k = 4;\n" + //$NON-NLS-1$
-			"	Object b1 = null, a1 = new Object() {\n" + //$NON-NLS-1$
-			"		void bar() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar2() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar3() {\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		void bar4() {\n" + //$NON-NLS-1$
-			"			System.out.println();\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}, c1 = null;\n" + //$NON-NLS-1$
-			"	void bar() {\n" + //$NON-NLS-1$
-			"		\n" + //$NON-NLS-1$
-			"\n" + //$NON-NLS-1$
-			"		class E {\n" + //$NON-NLS-1$
-			"			void bar2() {}\n" + //$NON-NLS-1$
-			"			void bar7() {\n" + //$NON-NLS-1$
-			"				System.out.println();\n" + //$NON-NLS-1$
-			"			}\n" + //$NON-NLS-1$
-			"			void bar9() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		Object o = new E();\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"\n" + //$NON-NLS-1$
-			"	void bar(int i) {\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}\n"; //$NON-NLS-1$
-		IJavaScriptUnit unit = this.getCompilationUnit("/P/src/p/X.js"); //$NON-NLS-1$
-		sortUnit(unit, expectedResult, false);
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-public void test010() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/SuperReference.js", //$NON-NLS-1$
-			"public class SuperReference extends ThisReference {\r\n" + //$NON-NLS-1$
-			"public SuperReference(int sourceStart, int sourceEnd) {\r\n" + //$NON-NLS-1$
-			"	super(sourceStart, sourceEnd);\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public static ExplicitConstructorCall implicitSuperConstructorCall() {\r\n" + //$NON-NLS-1$
-			"	return new ExplicitConstructorCall(ExplicitConstructorCall.ImplicitSuper);\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public boolean isImplicitThis() {\r\n" + //$NON-NLS-1$
-			"	\r\n" + //$NON-NLS-1$
-			"	return false;\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public boolean isSuper() {\r\n" + //$NON-NLS-1$
-			"	\r\n" + //$NON-NLS-1$
-			"	return true;\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public boolean isThis() {\r\n" + //$NON-NLS-1$
-			"	\r\n" + //$NON-NLS-1$
-			"	return false ;\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public TypeBinding resolveType(BlockScope scope) {\r\n" + //$NON-NLS-1$
-			"	constant = NotAConstant;\r\n" + //$NON-NLS-1$
-			"	if (!checkAccess(scope.methodScope()))\r\n" + //$NON-NLS-1$
-			"		return null;\r\n" + //$NON-NLS-1$
-			"	SourceTypeBinding enclosingTb = scope.enclosingSourceType();\r\n" + //$NON-NLS-1$
-			"	if (scope.isJavaLangObject(enclosingTb)) {\r\n" + //$NON-NLS-1$
-			"		scope.problemReporter().cannotUseSuperInJavaLangObject(this);\r\n" + //$NON-NLS-1$
-			"		return null;\r\n" + //$NON-NLS-1$
-			"	}\r\n" + //$NON-NLS-1$
-			"	return this.resolvedType = enclosingTb.superclass;\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public String toStringExpression(){\r\n" + //$NON-NLS-1$
-			"\r\n" + //$NON-NLS-1$
-			"	return \"super\"; //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public void traverse(IAbstractSyntaxTreeVisitor visitor, BlockScope blockScope) {\r\n" + //$NON-NLS-1$
-			"	visitor.visit(this, blockScope);\r\n" + //$NON-NLS-1$
-			"	visitor.endVisit(this, blockScope);\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"}" //$NON-NLS-1$
-		);
-		String expectedResult = "public class SuperReference extends ThisReference {\r\n" + //$NON-NLS-1$
-			"public static ExplicitConstructorCall implicitSuperConstructorCall() {\r\n" + //$NON-NLS-1$
-			"	return new ExplicitConstructorCall(ExplicitConstructorCall.ImplicitSuper);\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public SuperReference(int sourceStart, int sourceEnd) {\r\n" + //$NON-NLS-1$
-			"	super(sourceStart, sourceEnd);\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public boolean isImplicitThis() {\r\n" + //$NON-NLS-1$
-			"	\r\n" + //$NON-NLS-1$
-			"	return false;\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public boolean isSuper() {\r\n" + //$NON-NLS-1$
-			"	\r\n" + //$NON-NLS-1$
-			"	return true;\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public boolean isThis() {\r\n" + //$NON-NLS-1$
-			"	\r\n" + //$NON-NLS-1$
-			"	return false ;\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public TypeBinding resolveType(BlockScope scope) {\r\n" + //$NON-NLS-1$
-			"	constant = NotAConstant;\r\n" + //$NON-NLS-1$
-			"	if (!checkAccess(scope.methodScope()))\r\n" + //$NON-NLS-1$
-			"		return null;\r\n" + //$NON-NLS-1$
-			"	SourceTypeBinding enclosingTb = scope.enclosingSourceType();\r\n" + //$NON-NLS-1$
-			"	if (scope.isJavaLangObject(enclosingTb)) {\r\n" + //$NON-NLS-1$
-			"		scope.problemReporter().cannotUseSuperInJavaLangObject(this);\r\n" + //$NON-NLS-1$
-			"		return null;\r\n" + //$NON-NLS-1$
-			"	}\r\n" + //$NON-NLS-1$
-			"	return this.resolvedType = enclosingTb.superclass;\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public String toStringExpression(){\r\n" + //$NON-NLS-1$
-			"\r\n" + //$NON-NLS-1$
-			"	return \"super\"; //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"public void traverse(IAbstractSyntaxTreeVisitor visitor, BlockScope blockScope) {\r\n" + //$NON-NLS-1$
-			"	visitor.visit(this, blockScope);\r\n" + //$NON-NLS-1$
-			"	visitor.endVisit(this, blockScope);\r\n" + //$NON-NLS-1$
-			"}\r\n" + //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/SuperReference.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/SuperReference.js"); //$NON-NLS-1$
-	}
-}
-public void test011() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/BaseTypes.js", //$NON-NLS-1$
-			"/*******************************************************************************\r\n" + //$NON-NLS-1$
-			" * Copyright (c) 2000, 2001, 2002 International Business Machines Corp. and others.\r\n" + //$NON-NLS-1$
-			" * All rights reserved. This program and the accompanying materials \r\n" + //$NON-NLS-1$
-			" * are made available under the terms of the Common Public License v0.5 \r\n" + //$NON-NLS-1$
-			" * which accompanies this distribution, and is available at\r\n" + //$NON-NLS-1$
-			" * http://www.eclipse.org/legal/cpl-v05.html\r\n" + //$NON-NLS-1$
-			" * \r\n" + //$NON-NLS-1$
-			" * Contributors:\r\n" + //$NON-NLS-1$
-			" *     IBM Corporation - initial API and implementation\r\n" + //$NON-NLS-1$
-			" ******************************************************************************/\r\n" + //$NON-NLS-1$
-			"package p;\r\n" + //$NON-NLS-1$
-			"\r\n" + //$NON-NLS-1$
-			"public interface BaseTypes {\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding IntBinding = new BaseTypeBinding(TypeIds.T_int, \"int\".toCharArray(), new char[] {'I'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding ByteBinding = new BaseTypeBinding(TypeIds.T_byte, \"byte\".toCharArray(), new char[] {'B'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding ShortBinding = new BaseTypeBinding(TypeIds.T_short, \"short\".toCharArray(), new char[] {'S'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding CharBinding = new BaseTypeBinding(TypeIds.T_char, \"char\".toCharArray(), new char[] {'C'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding LongBinding = new BaseTypeBinding(TypeIds.T_long, \"long\".toCharArray(), new char[] {'J'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding FloatBinding = new BaseTypeBinding(TypeIds.T_float, \"float\".toCharArray(), new char[] {'F'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding DoubleBinding = new BaseTypeBinding(TypeIds.T_double, \"double\".toCharArray(), new char[] {'D'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding BooleanBinding = new BaseTypeBinding(TypeIds.T_boolean, \"boolean\".toCharArray(), new char[] {'Z'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding NullBinding = new BaseTypeBinding(TypeIds.T_null, \"null\".toCharArray(), new char[] {'N'}); //N stands for null even if it is never internally used //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding VoidBinding = new BaseTypeBinding(TypeIds.T_void, \"void\".toCharArray(), new char[] {'V'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"}\r\n" //$NON-NLS-1$
-		);
-		String expectedResult = "/*******************************************************************************\r\n" + //$NON-NLS-1$
-			" * Copyright (c) 2000, 2001, 2002 International Business Machines Corp. and others.\r\n" + //$NON-NLS-1$
-			" * All rights reserved. This program and the accompanying materials \r\n" + //$NON-NLS-1$
-			" * are made available under the terms of the Common Public License v0.5 \r\n" + //$NON-NLS-1$
-			" * which accompanies this distribution, and is available at\r\n" + //$NON-NLS-1$
-			" * http://www.eclipse.org/legal/cpl-v05.html\r\n" + //$NON-NLS-1$
-			" * \r\n" + //$NON-NLS-1$
-			" * Contributors:\r\n" + //$NON-NLS-1$
-			" *     IBM Corporation - initial API and implementation\r\n" + //$NON-NLS-1$
-			" ******************************************************************************/\r\n" + //$NON-NLS-1$
-			"package p;\r\n" + //$NON-NLS-1$
-			"\r\n" + //$NON-NLS-1$
-			"public interface BaseTypes {\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding BooleanBinding = new BaseTypeBinding(TypeIds.T_boolean, \"boolean\".toCharArray(), new char[] {'Z'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding ByteBinding = new BaseTypeBinding(TypeIds.T_byte, \"byte\".toCharArray(), new char[] {'B'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding CharBinding = new BaseTypeBinding(TypeIds.T_char, \"char\".toCharArray(), new char[] {'C'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding DoubleBinding = new BaseTypeBinding(TypeIds.T_double, \"double\".toCharArray(), new char[] {'D'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding FloatBinding = new BaseTypeBinding(TypeIds.T_float, \"float\".toCharArray(), new char[] {'F'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding IntBinding = new BaseTypeBinding(TypeIds.T_int, \"int\".toCharArray(), new char[] {'I'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding LongBinding = new BaseTypeBinding(TypeIds.T_long, \"long\".toCharArray(), new char[] {'J'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding NullBinding = new BaseTypeBinding(TypeIds.T_null, \"null\".toCharArray(), new char[] {'N'}); //N stands for null even if it is never internally used //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding ShortBinding = new BaseTypeBinding(TypeIds.T_short, \"short\".toCharArray(), new char[] {'S'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"	final BaseTypeBinding VoidBinding = new BaseTypeBinding(TypeIds.T_void, \"void\".toCharArray(), new char[] {'V'}); //$NON-NLS-1$\r\n" + //$NON-NLS-1$
-			"}\r\n"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/BaseTypes.js"), expectedResult); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/BaseTypes.js"); //$NON-NLS-1$
-	}
-}
-public void test012() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		return null;\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	bar() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		Object o = new Object() {    };\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		return new C();\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}" //$NON-NLS-1$
-		);
-		String expectedSource = "package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	\n" + //$NON-NLS-1$
-			"	Object bar3() {\n" + //$NON-NLS-1$
-			"		return null;\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"	bar() {\n" + //$NON-NLS-1$
-			"		System.out.println();\n" + //$NON-NLS-1$
-			"		Object o = new Object() {    };\n" + //$NON-NLS-1$
-			"		System.out.println(o);\n" + //$NON-NLS-1$
-			"		class C {\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"		}\n" + //$NON-NLS-1$
-			"		return new C();\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedSource); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=40954
-public void test013() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/p/X.js", //$NON-NLS-1$
-			"package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	X bar() {\n" + //$NON-NLS-1$
-			"		// comment\n" + //$NON-NLS-1$
-			"		return new X() {\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"		};\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}" //$NON-NLS-1$
-		);
-		String expectedSource = "package p;\n" + //$NON-NLS-1$
-			"public class X {\n" + //$NON-NLS-1$
-			"	X bar() {\n" + //$NON-NLS-1$
-			"		// comment\n" + //$NON-NLS-1$
-			"		return new X() {\n" + //$NON-NLS-1$
-			"			void bar4() {}\n" + //$NON-NLS-1$
-			"			void bar5() {}\n" + //$NON-NLS-1$
-			"			void bar6() {}\n" + //$NON-NLS-1$
-			"		};\n" + //$NON-NLS-1$
-			"	}\n" + //$NON-NLS-1$
-			"}"; //$NON-NLS-1$
-		sortUnit(this.getCompilationUnit("/P/src/p/X.js"), expectedSource); //$NON-NLS-1$
-	} finally {
-		this.deleteFile("/P/src/p/X.js"); //$NON-NLS-1$
-	}
-}
-/**
- * Preserve comments
- */
-public void test014() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int j;\n" + 
-			"  \n" +
-			"  // start of static field declaration\n" + 
-			"  static int i; // end of static field declaration\n" + 
-			"}"
-		);
-		String expectedResult = 
-			"public class X {\n" +
-			"  // start of static field declaration\n" + 
-			"  static int i; // end of static field declaration\n" + 
-			"  \n" +
-			"  int j;\n" + 
-			"}";
-		sortUnit(this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-/**
- * Preserve comments
- */
-public void test015() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"  int j;\n" + 
-			"  \n" +
-			"  /** some Java doc */\n" +
-			"  \n" +
-			"  // start of static field declaration\n" + 
-			"  static int i; // end of static field declaration\n" + 
-			"}"
-		);
-		String expectedResult = 
-			"public class X {\n" +
-			"  /** some Java doc */\n" +
-			"  \n" +
-			"  // start of static field declaration\n" +
-			"  static int i; // end of static field declaration\n" +
-			"  \n" +
-			"  int j;\n" +
-			"}";
-		sortUnit(this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=66216
- */
-public void test016() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" + 
-			"   \n" + 
-			"   public void c() {\n" + 
-			"      \n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void b() {\n" + 
-			"      \n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void a() {\n" + 
-			"      class E {\n" + 
-			"         // this is the line that breaks the Sort Members.\n" + 
-			"         // comment this fix the problem.\n" + 
-			"         int x, y;\n" + 
-			"      }\n" + 
-			"      \n" + 
-			"      \n" + 
-			"      new Object() {\n" + 
-			"         // it breaks in an anonymous class also.\n" + 
-			"         // comment this fix the problem.\n" + 
-			"         int x, y;\n" + 
-			"      }; \n" + 
-			"      \n" + 
-			"      \n" + 
-			"      class D {\n" + 
-			"         // this appears to break also.\n" + 
-			"      }\n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   private class F {\n" + 
-			"      // but this works fine\n" + 
-			"      int x, y;\n" + 
-			"   }\n" + 
-			"}"
-		);
-		String expectedResult = 
-			"public class X {\n" + 
-			"   \n" + 
-			"   private class F {\n" + 
-			"      // but this works fine\n" + 
-			"      int x, y;\n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void a() {\n" + 
-			"      class E {\n" + 
-			"         // this is the line that breaks the Sort Members.\n" + 
-			"         // comment this fix the problem.\n" + 
-			"         int x, y;\n" + 
-			"      }\n" + 
-			"      \n" + 
-			"      \n" + 
-			"      new Object() {\n" + 
-			"         // it breaks in an anonymous class also.\n" + 
-			"         // comment this fix the problem.\n" + 
-			"         int x, y;\n" + 
-			"      }; \n" + 
-			"      \n" + 
-			"      \n" + 
-			"      class D {\n" + 
-			"         // this appears to break also.\n" + 
-			"      }\n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void b() {\n" + 
-			"      \n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void c() {\n" + 
-			"      \n" + 
-			"   }\n" + 
-			"}";
-		sortUnit(this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-/**
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=66216
- */
-public void test017() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" + 
-			"   \n" + 
-			"   public void c() {\n" + 
-			"      \n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void b() {\n" + 
-			"      \n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void a() {\n" + 
-			"      class E {\n" + 
-			"         // this is the line that breaks the Sort Members.\n" + 
-			"         // comment this fix the problem.\n" + 
-			"         int x, y; // my comment\n" + 
-			"      }\n" + 
-			"      \n" + 
-			"      \n" + 
-			"      new Object() {\n" + 
-			"         // it breaks in an anonymous class also.\n" + 
-			"         // comment this fix the problem.\n" + 
-			"         int x, y; // my comment\n" + 
-			"      }; \n" + 
-			"      \n" + 
-			"      \n" + 
-			"      class D {\n" + 
-			"         // this appears to break also.\n" + 
-			"      }\n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   private class F {\n" + 
-			"      // but this works fine\n" + 
-			"      int x, y;\n" + 
-			"   }\n" + 
-			"}"
-		);
-		String expectedResult = 
-			"public class X {\n" + 
-			"   \n" + 
-			"   private class F {\n" + 
-			"      // but this works fine\n" + 
-			"      int x, y;\n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void a() {\n" + 
-			"      class E {\n" + 
-			"         // this is the line that breaks the Sort Members.\n" + 
-			"         // comment this fix the problem.\n" + 
-			"         int x, y; // my comment\n" + 
-			"      }\n" + 
-			"      \n" + 
-			"      \n" + 
-			"      new Object() {\n" + 
-			"         // it breaks in an anonymous class also.\n" + 
-			"         // comment this fix the problem.\n" + 
-			"         int x, y; // my comment\n" + 
-			"      }; \n" + 
-			"      \n" + 
-			"      \n" + 
-			"      class D {\n" + 
-			"         // this appears to break also.\n" + 
-			"      }\n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void b() {\n" + 
-			"      \n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void c() {\n" + 
-			"      \n" + 
-			"   }\n" + 
-			"}";
-		sortUnit(this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-public void test018() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" + 
-			"   public void c() {\n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void b() {\n" + 
-			"   }\n" + 
-			"}"
-		);
-		String expectedResult = 
-			"public class X {\n" + 
-			"   public void b() {\n" + 
-			"   }\n" + 
-			"   \n" + 
-			"   public void c() {\n" + 
-			"   }\n" + 
-			"}";
-		sortUnit(this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80036
-public void test019() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public enum X {\n" + 
-			"	Z, A, C, B;\n" + 
-			"}"
-		);
-		String expectedResult = 
-			"public enum X {\n" + 
-			"	A, B, C, Z;\n" + 
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80036
-public void test020() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public enum X {\n" +
-			"	A , B, C;\n" +
-			"	\n" +
-			"	void foo() {\n" +
-			"		\n" +
-			"	}\n" +
-			"	\n" +
-			"	public Object field;\n" +
-			"}"
-		);
-		String expectedResult = 
-			"public enum X {\n" +
-			"	A , B, C;\n" +
-			"	\n" +
-			"	public Object field;\n" +
-			"	\n" +
-			"	void foo() {\n" +
-			"		\n" +
-			"	}\n" +
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80036
-public void test021() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"\n" +
-			"	public enum Suit {\n" +
-			"		SPADES, CLUBS, HEARTS, DIAMONDS\n" +
-			"	}\n" +
-			"\n" +
-			"	public enum Card {\n" +
-			"		KING, QUEEN, JACK, ACE\n" +
-			"	}\n" +
-			"	\n" +
-			"	private String string;\n" +
-			"	private int integer;\n" +
-			"	\n" +
-			"	public void method1() { }\n" +
-			"	\n" +
-			"	public void method2() { }\n" +
-			"}"
-		);
-		String expectedResult = 
-			"public class X {\n" +
-			"\n" +
-			"	public enum Card {\n" +
-			"		ACE, JACK, KING, QUEEN\n" +
-			"	}\n" +
-			"\n" +
-			"	public enum Suit {\n" +
-			"		CLUBS, DIAMONDS, HEARTS, SPADES\n" +
-			"	}\n" +
-			"	\n" +
-			"	private int integer;\n" +
-			"	private String string;\n" +
-			"	\n" +
-			"	public void method1() { }\n" +
-			"	\n" +
-			"	public void method2() { }\n" +
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=80036
-public void test022() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/BuildUtilities.js",
-			"/*******************************************************************************" +
-			" * Copyright (c) 2000, 2006 IBM Corporation and others." +
-			" * All rights reserved. This program and the accompanying materials" +
-			" * are made available under the terms of the Eclipse Public License v1.0" +
-			" * which accompanies this distribution, and is available at" +
-			" * http://www.eclipse.org/legal/epl-v10.html" +
-			" *" +
-			" * Contributors:" +
-			" *     IBM Corporation - initial API and implementation" +
-			" *******************************************************************************/" +
-			"import java.util.HashSet;\n" +
-			"import org.eclipse.core.resources.ICommand;\n" +
-			"import org.eclipse.core.resources.IProject;\n" +
-			"import org.eclipse.core.resources.IProjectDescription;\n" +
-			"import org.eclipse.core.resources.IResource;\n" +
-			"import org.eclipse.core.resources.IncrementalProjectBuilder;\n" +
-			"import org.eclipse.core.resources.ResourcesPlugin;\n" +
-			"import org.eclipse.core.runtime.CoreException;\n" +
-			"import org.eclipse.core.runtime.IAdaptable;\n" +
-			"import org.eclipse.jface.viewers.ISelection;\n" +
-			"import org.eclipse.jface.viewers.IStructuredSelection;\n" +
-			"import org.eclipse.ui.IEditorInput;\n" +
-			"import org.eclipse.ui.IEditorPart;\n" +
-			"import org.eclipse.ui.IFileEditorInput;\n" +
-			"import org.eclipse.ui.IWorkbenchPart;\n" +
-			"import org.eclipse.ui.IWorkbenchWindow;\n" +
-			"\n" +
-			"/**\n" +
-			" * This class contains convenience methods used by the various build commands\n" +
-			" * to determine enablement.  These utilities cannot be factored into a common\n" +
-			" * class because some build actions are API and some are not.\n" +
-			" * \n" +
-			" * @since 3.1\n" +
-			" */\n" +
-			"public class BuildUtilities {\n" +
-			"	/**\n" +
-			"	 * Extracts the selected projects from a selection.\n" +
-			"	 * \n" +
-			"	 * @param selection The selection to analyze\n" +
-			"	 * @return The selected projects\n" +
-			"	 */\n" +
-			"	public static IProject[] extractProjects(Object[] selection) {\n" +
-			"		HashSet projects = new HashSet();\n" +
-			"		for (int i = 0; i < selection.length; i++) {\n" +
-			"			if (selection[i] instanceof IResource) {\n" +
-			"				projects.add(((IResource) selection[i]).getProject());\n" +
-			"			} else if (selection[i] instanceof IAdaptable) {\n" +
-			"				IAdaptable adaptable = (IAdaptable) selection[i];\n" +
-			"				IResource resource = (IResource) adaptable.getAdapter(IResource.class);\n" +
-			"				if (resource != null)\n" +
-			"					projects.add(resource.getProject());\n" +
-			"			}\n" +
-			"		}\n" +
-			"		return (IProject[]) projects.toArray(new IProject[projects.size()]);\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Finds and returns the selected projects in the given window\n" +
-			"	 * \n" +
-			"	 * @param window The window to find the selection in\n" +
-			"	 * @return The selected projects, or an empty array if no selection could be found.\n" +
-			"	 */\n" +
-			"	public static IProject[] findSelectedProjects(IWorkbenchWindow window) {\n" +
-			"		if (window == null)\n" +
-			"			return new IProject[0];\n" +
-			"		ISelection selection = window.getSelectionService().getSelection();\n" +
-			"		IProject[] selected = null;\n" +
-			"		if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {\n" +
-			"			selected = extractProjects(((IStructuredSelection) selection).toArray());\n" +
-			"		} else {\n" +
-			"			//see if we can extract a selected project from the active editor\n" +
-			"			IWorkbenchPart part = window.getPartService().getActivePart();\n" +
-			"			if (part instanceof IEditorPart) {\n" +
-			"				IEditorInput input = ((IEditorPart) part).getEditorInput();\n" +
-			"				if (input instanceof IFileEditorInput)\n" +
-			"					selected = new IProject[] {((IFileEditorInput) input).getFile().getProject()};\n" +
-			"			}\n" +
-			"		}\n" +
-			"		if (selected == null)\n" +
-			"			selected = new IProject[0];\n" +
-			"		return selected;\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Returns whether the workspace has a builder installed that responds\n" +
-			"	 * to the given trigger.\n" +
-			"	 */\n" +
-			"	static boolean hasBuilder(int trigger) {\n" +
-			"		IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();\n" +
-			"		boolean builderFound = false;\n" +
-			"		for (int i = 0; i < projects.length; i++) {\n" +
-			"			if (!projects[i].isAccessible())\n" +
-			"				continue;\n" +
-			"			try {\n" +
-			"				IProjectDescription description = projects[i].getDescription();\n" +
-			"				ICommand[] buildSpec = description.getBuildSpec();\n" +
-			"				for (int j = 0; j < buildSpec.length; j++) {\n" +
-			"					builderFound = true;\n" +
-			"					if (!buildSpec[j].isBuilding(trigger))\n" +
-			"						return true;\n" +
-			"				}\n" +
-			"			} catch (CoreException e) {\n" +
-			"				//ignore projects that are not available\n" +
-			"			}\n" +
-			"		}\n" +
-			"		//enable building if there are any accessible projects with builders\n" +
-			"		return builderFound;\n" +
-			"\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Returns whether the selection of projects is being managed by autobuild.\n" +
-			"	 * \n" +
-			"	 * @param projects The projects to examine\n" +
-			"	 * @return <code>true</code> if the projects are being managed by\n" +
-			"	 * autobuild, and <code>false</code> otherwise.\n" +
-			"	 */\n" +
-			"	public static boolean isAutoBuilding(IProject[] projects) {\n" +
-			"		if (!ResourcesPlugin.getWorkspace().isAutoBuilding())\n" +
-			"			return false;\n" +
-			"		\n" +
-			"	/**\n" +
-			"	 * Returns whether one of the projects has a builder whose trigger setting\n" +
-			"	 * for the given trigger matches the given value.\n" +
-			"	 * \n" +
-			"	 * @param projects The projects to check\n" +
-			"	 * @param trigger The trigger to look for\n" +
-			"	 * @param value The trigger value to look for\n" +
-			"	 * @return <code>true</code> if one of the projects has a builder whose\n" +
-			"	 * trigger activation matches the provided value, and <code>false</code> otherwise.\n" +
-			"	 */\n" +
-			"	private static boolean matchingTrigger(IProject[] projects, int trigger, boolean value) {\n" +
-			"		for (int i = 0; i < projects.length; i++) {\n" +
-			"			if (!projects[i].isAccessible())\n" +
-			"				continue;\n" +
-			"			try {\n" +
-			"				IProjectDescription description = projects[i].getDescription();\n" +
-			"				ICommand[] buildSpec = description.getBuildSpec();\n" +
-			"				for (int j = 0; j < buildSpec.length; j++) {\n" +
-			"					if (buildSpec[j].isBuilding(trigger) == value)\n" +
-			"						return true;\n" +
-			"				}\n" +
-			"			} catch (CoreException e) {\n" +
-			"				//ignore projects that are not available\n" +
-			"			}\n" +
-			"		}\n" +
-			"		return false;\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Returns whether a build command with the given trigger should\n" +
-			"	 * be enabled for the given selection.\n" +
-			"	 * @param projects The projects to use to determine enablement\n" +
-			"	 * @param trigger The build trigger (<code>IncrementalProjectBuilder.*_BUILD</code> constants).\n" +
-			"	 * @return <code>true</code> if the action should be enabled, and\n" +
-			"	 * <code>false</code> otherwise.\n" +
-			"	 */\n" +
-			"	public static boolean isEnabled(IProject[] projects, int trigger) {\n" +
-			"		return true;\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Doesn\'t need to be instantiated\n" +
-			"	 */\n" +
-			"	private BuildUtilities() {\n" +
-			"	}\n" +
-			"}"
-		);
-		String expectedResult = 
-			"/*******************************************************************************" +
-			" * Copyright (c) 2000, 2006 IBM Corporation and others." +
-			" * All rights reserved. This program and the accompanying materials" +
-			" * are made available under the terms of the Eclipse Public License v1.0" +
-			" * which accompanies this distribution, and is available at" +
-			" * http://www.eclipse.org/legal/epl-v10.html" +
-			" *" +
-			" * Contributors:" +
-			" *     IBM Corporation - initial API and implementation" +
-			" *******************************************************************************/" +
-			"import java.util.HashSet;\n" +
-			"import org.eclipse.core.resources.ICommand;\n" +
-			"import org.eclipse.core.resources.IProject;\n" +
-			"import org.eclipse.core.resources.IProjectDescription;\n" +
-			"import org.eclipse.core.resources.IResource;\n" +
-			"import org.eclipse.core.resources.IncrementalProjectBuilder;\n" +
-			"import org.eclipse.core.resources.ResourcesPlugin;\n" +
-			"import org.eclipse.core.runtime.CoreException;\n" +
-			"import org.eclipse.core.runtime.IAdaptable;\n" +
-			"import org.eclipse.jface.viewers.ISelection;\n" +
-			"import org.eclipse.jface.viewers.IStructuredSelection;\n" +
-			"import org.eclipse.ui.IEditorInput;\n" +
-			"import org.eclipse.ui.IEditorPart;\n" +
-			"import org.eclipse.ui.IFileEditorInput;\n" +
-			"import org.eclipse.ui.IWorkbenchPart;\n" +
-			"import org.eclipse.ui.IWorkbenchWindow;\n" +
-			"\n" +
-			"/**\n" +
-			" * This class contains convenience methods used by the various build commands\n" +
-			" * to determine enablement.  These utilities cannot be factored into a common\n" +
-			" * class because some build actions are API and some are not.\n" +
-			" * \n" +
-			" * @since 3.1\n" +
-			" */\n" +
-			"public class BuildUtilities {\n" +
-			"	/**\n" +
-			"	 * Extracts the selected projects from a selection.\n" +
-			"	 * \n" +
-			"	 * @param selection The selection to analyze\n" +
-			"	 * @return The selected projects\n" +
-			"	 */\n" +
-			"	public static IProject[] extractProjects(Object[] selection) {\n" +
-			"		HashSet projects = new HashSet();\n" +
-			"		for (int i = 0; i < selection.length; i++) {\n" +
-			"			if (selection[i] instanceof IResource) {\n" +
-			"				projects.add(((IResource) selection[i]).getProject());\n" +
-			"			} else if (selection[i] instanceof IAdaptable) {\n" +
-			"				IAdaptable adaptable = (IAdaptable) selection[i];\n" +
-			"				IResource resource = (IResource) adaptable.getAdapter(IResource.class);\n" +
-			"				if (resource != null)\n" +
-			"					projects.add(resource.getProject());\n" +
-			"			}\n" +
-			"		}\n" +
-			"		return (IProject[]) projects.toArray(new IProject[projects.size()]);\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Finds and returns the selected projects in the given window\n" +
-			"	 * \n" +
-			"	 * @param window The window to find the selection in\n" +
-			"	 * @return The selected projects, or an empty array if no selection could be found.\n" +
-			"	 */\n" +
-			"	public static IProject[] findSelectedProjects(IWorkbenchWindow window) {\n" +
-			"		if (window == null)\n" +
-			"			return new IProject[0];\n" +
-			"		ISelection selection = window.getSelectionService().getSelection();\n" +
-			"		IProject[] selected = null;\n" +
-			"		if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {\n" +
-			"			selected = extractProjects(((IStructuredSelection) selection).toArray());\n" +
-			"		} else {\n" +
-			"			//see if we can extract a selected project from the active editor\n" +
-			"			IWorkbenchPart part = window.getPartService().getActivePart();\n" +
-			"			if (part instanceof IEditorPart) {\n" +
-			"				IEditorInput input = ((IEditorPart) part).getEditorInput();\n" +
-			"				if (input instanceof IFileEditorInput)\n" +
-			"					selected = new IProject[] {((IFileEditorInput) input).getFile().getProject()};\n" +
-			"			}\n" +
-			"		}\n" +
-			"		if (selected == null)\n" +
-			"			selected = new IProject[0];\n" +
-			"		return selected;\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Returns whether the workspace has a builder installed that responds\n" +
-			"	 * to the given trigger.\n" +
-			"	 */\n" +
-			"	static boolean hasBuilder(int trigger) {\n" +
-			"		IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();\n" +
-			"		boolean builderFound = false;\n" +
-			"		for (int i = 0; i < projects.length; i++) {\n" +
-			"			if (!projects[i].isAccessible())\n" +
-			"				continue;\n" +
-			"			try {\n" +
-			"				IProjectDescription description = projects[i].getDescription();\n" +
-			"				ICommand[] buildSpec = description.getBuildSpec();\n" +
-			"				for (int j = 0; j < buildSpec.length; j++) {\n" +
-			"					builderFound = true;\n" +
-			"					if (!buildSpec[j].isBuilding(trigger))\n" +
-			"						return true;\n" +
-			"				}\n" +
-			"			} catch (CoreException e) {\n" +
-			"				//ignore projects that are not available\n" +
-			"			}\n" +
-			"		}\n" +
-			"		//enable building if there are any accessible projects with builders\n" +
-			"		return builderFound;\n" +
-			"\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Returns whether the selection of projects is being managed by autobuild.\n" +
-			"	 * \n" +
-			"	 * @param projects The projects to examine\n" +
-			"	 * @return <code>true</code> if the projects are being managed by\n" +
-			"	 * autobuild, and <code>false</code> otherwise.\n" +
-			"	 */\n" +
-			"	public static boolean isAutoBuilding(IProject[] projects) {\n" +
-			"		if (!ResourcesPlugin.getWorkspace().isAutoBuilding())\n" +
-			"			return false;\n" +
-			"		\n" +
-			"	/**\n" +
-			"	 * Returns whether a build command with the given trigger should\n" +
-			"	 * be enabled for the given selection.\n" +
-			"	 * @param projects The projects to use to determine enablement\n" +
-			"	 * @param trigger The build trigger (<code>IncrementalProjectBuilder.*_BUILD</code> constants).\n" +
-			"	 * @return <code>true</code> if the action should be enabled, and\n" +
-			"	 * <code>false</code> otherwise.\n" +
-			"	 */\n" +
-			"	public static boolean isEnabled(IProject[] projects, int trigger) {\n" +
-			"		return true;\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Returns whether one of the projects has a builder whose trigger setting\n" +
-			"	 * for the given trigger matches the given value.\n" +
-			"	 * \n" +
-			"	 * @param projects The projects to check\n" +
-			"	 * @param trigger The trigger to look for\n" +
-			"	 * @param value The trigger value to look for\n" +
-			"	 * @return <code>true</code> if one of the projects has a builder whose\n" +
-			"	 * trigger activation matches the provided value, and <code>false</code> otherwise.\n" +
-			"	 */\n" +
-			"	private static boolean matchingTrigger(IProject[] projects, int trigger, boolean value) {\n" +
-			"		for (int i = 0; i < projects.length; i++) {\n" +
-			"			if (!projects[i].isAccessible())\n" +
-			"				continue;\n" +
-			"			try {\n" +
-			"				IProjectDescription description = projects[i].getDescription();\n" +
-			"				ICommand[] buildSpec = description.getBuildSpec();\n" +
-			"				for (int j = 0; j < buildSpec.length; j++) {\n" +
-			"					if (buildSpec[j].isBuilding(trigger) == value)\n" +
-			"						return true;\n" +
-			"				}\n" +
-			"			} catch (CoreException e) {\n" +
-			"				//ignore projects that are not available\n" +
-			"			}\n" +
-			"		}\n" +
-			"		return false;\n" +
-			"	}\n" +
-			"\n" +
-			"	/**\n" +
-			"	 * Doesn\'t need to be instantiated\n" +
-			"	 */\n" +
-			"	private BuildUtilities() {\n" +
-			"	}\n" +
-			"}";
-		sortUnit(this.getCompilationUnit("/P/src/BuildUtilities.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/BuildUtilities.js");
-	}
-}
-// Sorting annotation type declaration
-public void test023() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public @interface X {\n" + 
-			"	String name();\n" + 
-			"	int id() default 0;\n" + 
-			"	String value;\n" + 
-			"	static int GlobalID;\n" + 
-			"}\n" +
-			"class A {}"
-		);
-		String expectedResult = 
-			"class A {}\n" +
-			"public @interface X {\n" +
-			"	static int GlobalID;\n" +
-			"	String value;\n" +
-			"	int id() default 0;\n" +
-			"	String name();\n" +
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81329
-public void test024() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"	void foo() {\n" +
-			"		class Local {\n" +
-			"			static enum E {\n" +
-			"				C, B;\n" +
-			"			}\n" +
-			"		}\n" +
-			"	}\n" +
-			"	void bar() {\n" +
-			"	}\n" +
-			"}"
-		);
-		String expectedResult = 
-			"public class X {\n" +
-			"	void bar() {\n" +
-			"	}\n" +
-			"	void foo() {\n" +
-			"		class Local {\n" +
-			"			static enum E {\n" +
-			"				B, C;\n" +
-			"			}\n" +
-			"		}\n" +
-			"	}\n" +
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81329
-public void test025() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"interface Jpf {\n" +
-			"	@interface Action {\n" +
-			"		ValidatableProperty[] validatableProperties();\n" +
-			"	}\n" +
-			"	@interface ValidatableProperty {\n" +
-			"		String propertyName();\n" +
-			"		ValidationLocaleRules[] localeRules();\n" +
-			"	}\n" +
-			"	@interface ValidateMinLength {\n" +
-			"		String chars();\n" +
-			"	}\n" +
-			"	@interface ValidationLocaleRules {\n" +
-			"		ValidateMinLength validateMinLength();\n" +
-			"	}\n" +
-			"public class X {\n" +
-			"	@Jpf.Action(validatableProperties = { @Jpf.ValidatableProperty(propertyName = \"fooField\", localeRules = { @Jpf.ValidationLocaleRules(validateMinLength = @Jpf.ValidateMinLength(chars = \"12\")) }) })\n" +
-			"	public String actionForValidationRuleTest() {\n" +
-			"		return null;\n" +
-			"	}\n" +
-			"}"
-		);
-		String expectedResult = 
-			"interface Jpf {\n" +
-			"	@interface Action {\n" +
-			"		ValidatableProperty[] validatableProperties();\n" +
-			"	}\n" +
-			"	@interface ValidatableProperty {\n" +
-			"		ValidationLocaleRules[] localeRules();\n" +
-			"		String propertyName();\n" +
-			"	}\n" +
-			"	@interface ValidateMinLength {\n" +
-			"		String chars();\n" +
-			"	}\n" +
-			"	@interface ValidationLocaleRules {\n" +
-			"		ValidateMinLength validateMinLength();\n" +
-			"	}\n" +
-			"public class X {\n" +
-			"	@Jpf.Action(validatableProperties = { @Jpf.ValidatableProperty(propertyName = \"fooField\", localeRules = { @Jpf.ValidationLocaleRules(validateMinLength = @Jpf.ValidateMinLength(chars = \"12\")) }) })\n" +
-			"	public String actionForValidationRuleTest() {\n" +
-			"		return null;\n" +
-			"	}\n" +
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=95388
-public void test026() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public class X {\n" +
-			"	void z() {\n" +
-			"	}\n" +
-			"	void b() {\n" +
-			"		System.out.println(\"b1\");\n" +
-			"	}\n" +
-			"	void b() {\n" +
-			"		System.out.println(\"b2\");\n" +
-			"	}\n" +
-			"	void a() {\n" +
-			"	}\n" +
-			"}"
-		);
-		String expectedResult = 
-			"public class X {\n" +
-			"	void a() {\n" +
-			"	}\n" +
-			"	void b() {\n" +
-			"		System.out.println(\"b1\");\n" +
-			"	}\n" +
-			"	void b() {\n" +
-			"		System.out.println(\"b2\");\n" +
-			"	}\n" +
-			"	void z() {\n" +
-			"	}\n" +
-			"}";
-		sortUnit(this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=96583
-public void test027() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public final class X\n" +
-			"{\n" +
-			"	static\n" +
-			"	{\n" +
-			"\n" +
-			"	}\n" +
-			"\n" +
-			"	public static void main(String[] args)\n" +
-			"	{\n" +
-			"	}\n" +
-			"\n" +
-			"	static\n" +
-			"	{\n" +
-			"\n" +
-			"	}\n" +
-			"}"
-		);
-		String expectedResult = 
-			"public final class X\n" +
-			"{\n" +
-			"	static\n" +
-			"	{\n" +
-			"\n" +
-			"	}\n" +
-			"\n" +
-			"	static\n" +
-			"	{\n" +
-			"\n" +
-			"	}\n" +
-			"\n" +
-			"	public static void main(String[] args)\n" +
-			"	{\n" +
-			"	}\n" +
-			"}";
-		sortUnit(this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-////https://bugs.eclipse.org/bugs/show_bug.cgi?id=101453
-///** @deprecated */
-//public void test028() throws CoreException {
-//	try {
-//		this.createFile(
-//			"/P/src/X.js",
-//			"public final class X\n" +
-//			"{\n" +
-//			"/** JavaDoc comment2 */\n" +
-//			"int j;\n" +
-//			"/** JavaDoc comment1 */\n" +
-//			"int i;\n" +
-//			"}"
-//		);
-//		String expectedResult = 
-//			"public final class X\n" +
-//			"{\n" +
-//			"/** JavaDoc comment1 */\n" +
-//			"int i;\n" +
-//			"/** JavaDoc comment2 */\n" +
-//			"int j;\n" +
-//			"}";
-//		oldAPISortUnit(this.getCompilationUnit("/P/src/X.js"), expectedResult, false, new Comparator() {
-//			public int compare(Object o1, Object o2) {
-//				BodyDeclaration bodyDeclaration1 = (BodyDeclaration) o1;
-//				BodyDeclaration bodyDeclaration2 = (BodyDeclaration) o2;
-//				JSdoc javadoc1 = bodyDeclaration1.getJavadoc();
-//				JSdoc javadoc2 = bodyDeclaration2.getJavadoc();
-//				if (javadoc1 != null && javadoc2 != null) {
-//					return javadoc1.getComment().compareTo(javadoc2.getComment());
-//				}
-//				final int sourceStart1 = ((Integer) bodyDeclaration1.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-//				final int sourceStart2 = ((Integer) bodyDeclaration2.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-//				return sourceStart1 - sourceStart2;
-//			}
-//		});
-//	} finally {
-//		this.deleteFile("/P/src/X.js");
-//	}
-//}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=101885
-public void test029() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public enum X {\n" + 
-			"	Z, A, C, B;\n" + 
-			"}"
-		);
-		String expectedResult = 
-			"public enum X {\n" + 
-			"	Z, A, C, B;\n" + 
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/X.js"), expectedResult, false, new Comparator() {
-			public int compare(Object o1, Object o2) {
-				BodyDeclaration bodyDeclaration1 = (BodyDeclaration) o1;
-				BodyDeclaration bodyDeclaration2 = (BodyDeclaration) o2;
-				final int sourceStart1 = ((Integer) bodyDeclaration1.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-				final int sourceStart2 = ((Integer) bodyDeclaration2.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-				return sourceStart1 - sourceStart2;
-			}
-		});
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=113722
-public void test030() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/I.js",
-			"public interface I<T> {\n" +
-			"	public I<T> foo(A<T> A);\n" +
-			"	public <S> I<S> foo2(C<T,S> c);\n" +
-			"	public <S> I<S> foo3(C<T,I<S>> c);\n" +
-			"	public <K> J<T> bar(C<T,K> c);\n" +
-			"	public <K> J<T> bar2(C<T,K> c);\n" +
-			"	public <K> I<K<K,T> bar3(C<T,K> c);\n" +
-			"	public <K,E> I<K<K,E> bar3(C<T,K> c, C<T,E> c2);\n" +
-			"}"
-		);
-		String expectedResult = 
-			"public interface I<T> {\n" +
-			"	public I<T> foo(A<T> A);\n" +
-			"	public <S> I<S> foo2(C<T,S> c);\n" +
-			"	public <S> I<S> foo3(C<T,I<S>> c);\n" +
-			"	public <K> J<T> bar(C<T,K> c);\n" +
-			"	public <K> J<T> bar2(C<T,K> c);\n" +
-			"	public <K> I<K<K,T> bar3(C<T,K> c);\n" +
-			"	public <K,E> I<K<K,E> bar3(C<T,K> c, C<T,E> c2);\n" +
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/I.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/I.js");
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=113722
-public void test031() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/I.js",
-			"public interface I<T> {\n" +
-			"	public I<T> foo(A<T> A);\n" +
-			"	public <S> I<S> foo2(C<T,S> c);\n" +
-			"	public <S> I<S> foo3(C<T,I<S>> c);\n" +
-			"	public <K> J<T> bar(C<T,K> c);\n" +
-			"	public <K> J<T> bar2(C<T,K> c);\n" +
-			"	public <K> I<K<K,T>> bar3(C<T,K> c);\n" +
-			"	public <K,E> I<K<K,E>> bar3(C<T,K> c, C<T,E> c2);\n" +
-			"}"
-		);
-		String expectedResult = 
-			"public interface I<T> {\n" +
-			"	public <K> J<T> bar2(C<T,K> c);\n" +
-			"	public <K> I<K<K,T>> bar3(C<T,K> c);\n" +
-			"	public <K,E> I<K<K,E>> bar3(C<T,K> c, C<T,E> c2);\n" +
-			"	public <K> J<T> bar(C<T,K> c);\n" +
-			"	public <S> I<S> foo2(C<T,S> c);\n" +
-			"	public <S> I<S> foo3(C<T,I<S>> c);\n" +
-			"	public I<T> foo(A<T> A);\n" +
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/I.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/I.js");
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=113722
-public void test032() throws CoreException {
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"import java.util.*;\n" +
-			"public interface X<T> {\n" +
-			"	<K> List<Map<K,T> foo(Map<T,K> m);\n" +
-			"	<K,E> List<Map<K,E> bar(Map<T,K> m, Map<T,E> e);\n" +
-			"}"
-		);
-		String expectedResult = 
-			"import java.util.*;\n" +
-			"public interface X<T> {\n" +
-			"	<K> List<Map<K,T> foo(Map<T,K> m);\n" +
-			"	<K,E> List<Map<K,E> bar(Map<T,K> m, Map<T,E> e);\n" +
-			"}";
-		sortUnit(AST.JLS3, this.getCompilationUnit("/P/src/X.js"), expectedResult);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171066
-public void test033() throws CoreException {
-	IJavaScriptUnit unit = null;
-	
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public enum X {\n" + 
-			"	Z, A, C, B;\n" + 
-			"}"
-		);
-		String expectedResult = 
-			"public enum X {\n" + 
-			"	A, B, C, Z;\n" + 
-			"}";
-		unit = this.getCompilationUnit("/P/src/X.js");
-		unit.becomeWorkingCopy(null);
-		String source = unit.getSource();
-		Document document = new Document(source);
-		CompilerOptions options = new CompilerOptions(unit.getJavaScriptProject().getOptions(true));
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setCompilerOptions(options.getMap());
-		parser.setSource(unit);
-		parser.setKind(ASTParser.K_COMPILATION_UNIT);
-		parser.setResolveBindings(true);
-		org.eclipse.wst.jsdt.core.dom.JavaScriptUnit ast = (org.eclipse.wst.jsdt.core.dom.JavaScriptUnit) parser.createAST(null);
-
-		Comparator comparator = new Comparator() {
-			public int compare(Object o1, Object o2) {
-				BodyDeclaration bodyDeclaration1 = (BodyDeclaration) o1;
-				BodyDeclaration bodyDeclaration2 = (BodyDeclaration) o2;
-				final int sourceStart1 = ((Integer) bodyDeclaration1.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-				final int sourceStart2 = ((Integer) bodyDeclaration2.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-				return sourceStart1 - sourceStart2;
-			}
-		};
-		TextEdit edit = JavaScriptUnitSorter.sort(ast , comparator, 0, null, new NullProgressMonitor());
-		try {
-			edit.apply(document);
-		} catch (MalformedTreeException e) {
-			assertTrue("Should not happen", false);
-		} catch (BadLocationException e) {
-			assertTrue("Should not happen", false);
-		}
-		assertEquals("Different output", expectedResult, document.get());
-	} finally {
-		this.deleteFile("/P/src/X.js");
-		if (unit != null) {
-			unit.discardWorkingCopy();
-		}
-	}
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=171066
-public void test034() throws CoreException {
-	IJavaScriptUnit unit = null;
-	try {
-		this.createFile(
-			"/P/src/X.js",
-			"public enum X {\n" + 
-			"	Z, A, C, B;\n" + 
-			"}"
-		);
-		unit = this.getCompilationUnit("/P/src/X.js");
-		unit.becomeWorkingCopy(null);
-		CompilerOptions options = new CompilerOptions(unit.getJavaScriptProject().getOptions(true));
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setCompilerOptions(options.getMap());
-		parser.setSource(unit);
-		parser.setKind(ASTParser.K_COMPILATION_UNIT);
-		parser.setResolveBindings(false);
-		org.eclipse.wst.jsdt.core.dom.JavaScriptUnit ast = (org.eclipse.wst.jsdt.core.dom.JavaScriptUnit) parser.createAST(null);
-
-		Comparator comparator = new Comparator() {
-			public int compare(Object o1, Object o2) {
-				BodyDeclaration bodyDeclaration1 = (BodyDeclaration) o1;
-				BodyDeclaration bodyDeclaration2 = (BodyDeclaration) o2;
-				final int sourceStart1 = ((Integer) bodyDeclaration1.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-				final int sourceStart2 = ((Integer) bodyDeclaration2.getProperty(JavaScriptUnitSorter.RELATIVE_ORDER)).intValue();
-				return sourceStart1 - sourceStart2;
-			}
-		};
-		TextEdit edit = JavaScriptUnitSorter.sort(ast , comparator, 0, null, new NullProgressMonitor());
-		assertNull("Should be null", edit);
-	} finally {
-		this.deleteFile("/P/src/X.js");
-		if (unit != null) {
-			unit.discardWorkingCopy();
-		}
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SuiteOfTestCases.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SuiteOfTestCases.java
deleted file mode 100644
index 75b800e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/SuiteOfTestCases.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
-import junit.framework.Protectable;
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-/**
- * A test case class that can be set up (using the setUpSuite() method) and tore down (using the teardDownSuite() method)
- * once for all test cases of this class.
- */
-public class SuiteOfTestCases extends org.eclipse.wst.jsdt.core.tests.junit.extension.TestCase {
-		
-	/*
-	 * A test suite that initialize the test case's fields once, then that copies the values
-	 * of these fields intto each subsequent test case.
-	 */
-	public static class Suite extends TestSuite {
-		public SuiteOfTestCases currentTestCase;
-		
-		/*
-		 * Creates a new suite on the given class. This class must be a subclass of SetupableTestSuite.
-		 */
-		public Suite(Class theClass) {
-			super(theClass);
-		}
-		public Suite(String name) {
-			super(name);
-		}
-		private void initialize(SuiteOfTestCases test) {
-			Class currentClass = test.getClass();
-			while (currentClass != null && !currentClass.equals(SuiteOfTestCases.class)) {
-				Field[] fields = currentClass.getDeclaredFields();
-				for (int i = 0, length = fields.length; i < length; i++) {
-					Field field = fields[i];
-					
-					// skip static and final fields
-					int modifiers = field.getModifiers();
-					if (Modifier.isStatic(modifiers) || Modifier.isFinal(modifiers)) continue;
-					
-					// make the field accessible
-					field.setAccessible(true);
-					
-					try {
-						Object value = field.get(this.currentTestCase);
-						field.set(test, value);
-					} catch (IllegalAccessException e) {
-					}
-				}
-				currentClass = currentClass.getSuperclass();
-			}
-		}
-		public void run(final TestResult result) {
-			Protectable p= new Protectable() {
-				public void protect() throws Exception {
-					try {
-						// run suite (first test run will setup the suite)
-						superRun(result);
-					} finally {	
-						// tear down the suite
-						if (Suite.this.currentTestCase != null) { // protect against empty test suite
-							Suite.this.currentTestCase.tearDownSuite();
-						}
-					}
-				}
-			};
-			result.runProtected(this, p);
-		}
-		public void superRun(TestResult result) {
-			super.run(result);
-		}
-		public void runTest(Test test, TestResult result) {
-			SuiteOfTestCases current = (SuiteOfTestCases)test;
-			if (this.currentTestCase == null) {
-				// setup suite
-				try {
-					current.setUpSuite();
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			} else {
-				// copy the values of the previous current test case's fields into the current one
-				this.initialize(current);
-			}
-			try {
-				super.runTest(test, result);
-			} finally {		
-				// make current
-				this.currentTestCase = current;
-			}
-		}
-	}
-			
-	public SuiteOfTestCases(String name) {
-		super(name);
-	}
-			
-	/**
-	 * Setup the test suite once before all test cases run.
-	 */
-	public void setUpSuite() throws Exception {
-	}
-	
-	/**
-	 * Tear down the test suite once after all test cases have run.
-	 */
-	public void tearDownSuite() throws Exception {
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestBuffer.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestBuffer.java
deleted file mode 100644
index 3906211..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestBuffer.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.jsdt.core.*;
-
-/*
- * A simple implementation of IBuffer.
- */
-public class TestBuffer implements IBuffer {
-		IOpenable owner;
-		ArrayList changeListeners;
-		char[] contents = null;
-		boolean hasUnsavedChanges = false;
-		public TestBuffer(IOpenable owner) {
-			this.owner = owner;
-		}
-		/*
-		 * @see IBuffer#addBufferChangedListener(IBufferChangedListener)
-		 */
-		public void addBufferChangedListener(IBufferChangedListener listener) {
-			if (this.changeListeners == null) {
-				this.changeListeners = new ArrayList(5);
-			}
-			if (!this.changeListeners.contains(listener)) {
-				this.changeListeners.add(listener);
-			}
-		}
-
-		/*
-		 * @see IBuffer#append(char[])
-		 */
-		public void append(char[] text) {
-			this.hasUnsavedChanges = true;
-		}
-
-		/*
-		 * @see IBuffer#append(String)
-		 */
-		public void append(String text) {
-			this.hasUnsavedChanges = true;
-		}
-
-		/*
-		 * @see IBuffer#close()
-		 */
-		public void close() {
-			this.contents = null; // mark as closed
-			if (this.changeListeners != null) {
-				BufferChangedEvent event = null;
-				event = new BufferChangedEvent(this, 0, 0, null);
-				for (int i = 0, size = this.changeListeners.size(); i < size; ++i) {
-					IBufferChangedListener listener = (IBufferChangedListener) this.changeListeners.get(i);
-					listener.bufferChanged(event);
-				}
-				this.changeListeners = null;
-			}
-		}
-
-		/*
-		 * @see IBuffer#getChar(int)
-		 */
-		public char getChar(int position) {
-			return 0;
-		}
-
-		/*
-		 * @see IBuffer#getCharacters()
-		 */
-		public char[] getCharacters() {
-			return contents;
-		}
-
-		/*
-		 * @see IBuffer#getContents()
-		 */
-		public String getContents() {
-			return new String(contents);
-		}
-
-		/*
-		 * @see IBuffer#getLength()
-		 */
-		public int getLength() {
-			return contents.length;
-		}
-
-		/*
-		 * @see IBuffer#getOwner()
-		 */
-		public IOpenable getOwner() {
-			return this.owner;
-		}
-
-		/*
-		 * @see IBuffer#getText(int, int)
-		 */
-		public String getText(int offset, int length) {
-			return null;
-		}
-
-		/*
-		 * @see IBuffer#getUnderlyingResource()
-		 */
-		public IResource getUnderlyingResource() {
-			return null;
-		}
-
-		/*
-		 * @see IBuffer#hasUnsavedChanges()
-		 */
-		public boolean hasUnsavedChanges() {
-			return this.hasUnsavedChanges;
-		}
-
-		/*
-		 * @see IBuffer#isClosed()
-		 */
-		public boolean isClosed() {
-			return this.contents == null;
-		}
-
-		/*
-		 * @see IBuffer#isReadOnly()
-		 */
-		public boolean isReadOnly() {
-			return false;
-		}
-
-		/*
-		 * @see IBuffer#removeBufferChangedListener(IBufferChangedListener)
-		 */
-		public void removeBufferChangedListener(IBufferChangedListener listener) {
-			if (this.changeListeners != null) {
-				this.changeListeners.remove(listener);
-				if (this.changeListeners.size() == 0) {
-					this.changeListeners = null;
-				}
-			}
-		}
-
-		/*
-		 * @see IBuffer#replace(int, int, char[])
-		 */
-		public void replace(int position, int length, char[] text) {
-			this.hasUnsavedChanges = true;
-		}
-
-		/*
-		 * @see IBuffer#replace(int, int, String)
-		 */
-		public void replace(int position, int length, String text) {
-			this.hasUnsavedChanges = true;
-		}
-
-		/*
-		 * @see IBuffer#save(IProgressMonitor, boolean)
-		 */
-		public void save(IProgressMonitor progress, boolean force) {
-			this.hasUnsavedChanges = false;
-		}
-
-		/*
-		 * @see IBuffer#setContents(char[])
-		 */
-		public void setContents(char[] characters) {
-			this.contents = characters;
-			this.hasUnsavedChanges = true;
-		}
-
-		/*
-		 * @see IBuffer#setContents(String)
-		 */
-		public void setContents(String characters) {
-			this.contents = characters.toCharArray();
-			this.hasUnsavedChanges = true;
-		}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestPessimisticProvider.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestPessimisticProvider.java
deleted file mode 100644
index 58c194b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestPessimisticProvider.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.jsdt.internal.core.util.Util;
-import org.eclipse.team.core.RepositoryProvider;
-
-/**
- * Repository provider that can be configured to be pessimistic.
- */
-public class TestPessimisticProvider extends RepositoryProvider implements IFileModificationValidator {
-	private static TestPessimisticProvider soleInstance;
-	
-	public static final String NATURE_ID = "org.eclipse.wst.jsdt.core.tests.model.pessimisticnature";
-	
-	public static boolean markWritableOnEdit;
-	public static boolean markWritableOnSave;
-
-	public TestPessimisticProvider() {
-		soleInstance = this;
-	}
-	
-	public void configureProject() {
-	}
-
-	public String getID() {
-		return NATURE_ID;
-	}
-
-	public void deconfigure() {
-	}
-	
-	/*
-	 * @see IRepositoryProvider#getFileModificationValidator()
-	 */
-	public IFileModificationValidator getFileModificationValidator() {
-		return soleInstance;
-	}
-	
-	public IStatus validateEdit(final IFile[] files, Object context) {
-		if (markWritableOnEdit) {
-			try {
-				ResourcesPlugin.getWorkspace().run(
-					new IWorkspaceRunnable() {
-						public void run(IProgressMonitor monitor)	{
-							for (int i = 0, length = files.length; i < length; i++) {
-								try {
-									setReadOnly(files[i], false);
-								} catch (CoreException e) {
-									e.printStackTrace();
-								}
-							}
-						}
-					},
-					null);
-			} catch (CoreException e) {
-				e.printStackTrace();
-				return e.getStatus();
-			}
-		} 
-		return Status.OK_STATUS;
-	}
-
-	public IStatus validateSave(IFile file) {
-		if (markWritableOnSave) {
-			try {
-				setReadOnly(file, false);
-			} catch (CoreException e) {
-				e.printStackTrace();
-				return e.getStatus();
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	public void setReadOnly(IResource resource, boolean readOnly) throws CoreException {
-		if (Util.isReadOnlySupported()) {
-			ResourceAttributes resourceAttributes = resource.getResourceAttributes();
-			if (resourceAttributes != null) {
-				resourceAttributes.setReadOnly(readOnly);
-				resource.setResourceAttributes(resourceAttributes);
-			}		
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestProgressMonitor.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestProgressMonitor.java
deleted file mode 100644
index 862cab7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestProgressMonitor.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-public class TestProgressMonitor implements IProgressMonitor {
-
-	private static TestProgressMonitor singleton = new TestProgressMonitor();
-	public int isCanceledCounter;
-
-/**
- * @see IProgressMonitor#beginTask
- */
-public void beginTask(String name, int totalWork) {
-}
-/**
- * @see IProgressMonitor#done
- */
-public void done() {
-}
-public static TestProgressMonitor getInstance() {
-	return singleton;
-}
-public void internalWorked(double work) {
-}
-/**
- * @see IProgressMonitor#isCanceled
- */
-public boolean isCanceled() {
-	return --this.isCanceledCounter < 0;
-}
-public void reset() {
-}
-/**
- * @see IProgressMonitor#setCanceled
- */
-public void setCanceled(boolean b) {
-}
-/*
- * Sets the number of time isCanceled() can be called before it returns true.
- */ 
-public void setCancelledCounter(int counter) {
-	this.isCanceledCounter = counter;
-}
-/**
- * @see IProgressMonitor#setTaskName
- */
-public void setTaskName(String name) {
-}
-/**
- * @see IProgressMonitor#subTask
- */
-public void subTask(String name) {
-}
-/**
- * @see IProgressMonitor#worked
- */
-public void worked(int work) {
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestvalidationParticipant.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestvalidationParticipant.java
deleted file mode 100644
index c9b2eae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TestvalidationParticipant.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.compiler.ValidationParticipant;
-import org.eclipse.wst.jsdt.core.compiler.ReconcileContext;
-
-public class TestvalidationParticipant extends ValidationParticipant {
-	
-	public static ValidationParticipant PARTICIPANT;
-
-	public boolean isActive(IJavaScriptProject project) {
-		return PARTICIPANT != null && PARTICIPANT.isActive(project);
-	}
-	
-	public void reconcile(ReconcileContext context) {
-		PARTICIPANT.reconcile(context);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ThreadSafetyTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ThreadSafetyTests.java
deleted file mode 100644
index c911ec1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/ThreadSafetyTests.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.HashMap;
-
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.internal.core.JavaModelManager;
-import org.eclipse.wst.jsdt.internal.core.JavaProject;
-
-import junit.framework.*;
-
-/**
- * DO NOT RELEASE AS PART OF REGRESSION TEST - if failing, can cause testing hang
- */
-public class ThreadSafetyTests extends ModifyingResourceTests {
-
-public ThreadSafetyTests(String name) {
-	super(name);
-}
-
-public static Test suite() {
-	return buildModelTestSuite(ThreadSafetyTests.class);	
-}
-/**
- * 33231 - deadlocked if activating initializer while some concurrent action is populating the JavaModel
- */
-public void testDeadlock01() throws CoreException {
-
-	System.out.println("Test deadlock scenario");
-	try {
-		final IJavaScriptProject project = this.createJavaProject(
-				"P", 
-				new String[] {}, 
-				new String[] {"org.eclipse.wst.jsdt.core.tests.model.TEST_CONTAINER"});
-		
-		// simulate state on startup (flush containers, and discard their previous values)
-		waitUntilIndexesReady();
-		project.getJavaScriptModel().close();
-		JavaModelManager manager = JavaModelManager.getJavaModelManager();
-		manager.previousSessionContainers = new HashMap(5);
-		manager.containers = new HashMap(5);
-		manager.removePerProjectInfo((JavaProject)project);
-
-		// use a thread to hold the lock, so as to recreate potential deadlock situation
-		final Semaphore step1 = new Semaphore("<1:permission to populate JavaModel inducing containers inits>", 0); // first acquisition will wait
-		final Semaphore step2 = new Semaphore("<2:permission to perform resource modification >", 0); // first acquisition to wait
-		final Semaphore hasCompleted = new Semaphore(0); 
-		
-		ContainerInitializer.setInitializer(new ClasspathInitializerTests.DefaultContainerInitializer(new String[] {"P", ""}){
-			public void initialize(IPath containerPath, IJavaScriptProject javaProject) throws CoreException {
-				step2.release();
-				System.out.println(Thread.currentThread() + " initializer has started: attempting to acquire workspace lock");
-				super.initialize(containerPath, javaProject);
-				System.out.println(Thread.currentThread() + " initializer has finished");
-			}
-		});
-
-		// trigger some delta notification in different thread
-		Thread performJavaOperationInsideWorkspaceLock = new Thread(new Runnable(){
-				public void run() {
-					try {
-						ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-							public void run(IProgressMonitor monitor)	throws CoreException {
-								System.out.println(Thread.currentThread() + " got workspace lock");
-								step1.release();
-								step2.acquire(); // ensure the java model lock is taken
-								ThreadSafetyTests.this.createFile("/P/X.js", "public class X {}");
-								System.out.println(Thread.currentThread() + " created file X.js");
-							}
-						}, null);
-					} catch (CoreException e) {
-					}
-					hasCompleted.release();
-					System.out.println(Thread.currentThread() +" ResourceModification DONE");
-				}
-			},"ModifyResource");
-		performJavaOperationInsideWorkspaceLock.setDaemon(true);
-		performJavaOperationInsideWorkspaceLock.start();
-
-		Thread attemptPopulateTheJavaModel = new Thread(new Runnable(){
-				public void run() {
-					try {
-							step1.acquire(); // ensure workspace lock is taken already
-							System.out.println(Thread.currentThread() + " about to populate Java model");
-							// needs the JavaModel lock to populate the project
-							project.getChildren(); // trigger classpath initializer activation (requires workspace lock)
-							System.out.println(Thread.currentThread() + " done populating the model");
-					} catch (JavaScriptModelException e) {
-					}
-					hasCompleted.release();
-					System.out.println(Thread.currentThread() +" Populate JavaModel DONE");
-				}
-			},"PopulateModel");
-		attemptPopulateTheJavaModel.setDaemon(true);
-		attemptPopulateTheJavaModel.start();
-
-		hasCompleted.acquire(); // ensure both actions did complete
-		hasCompleted.acquire();
-		System.out.println("SUCCESS - no deadlock encountered");
-	} finally {
-		// cleanup  
-		this.deleteProject("P");
-	}
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchyNotificationTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchyNotificationTests.java
deleted file mode 100644
index 4f6e9f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchyNotificationTests.java
+++ /dev/null
@@ -1,1218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-
-public class TypeHierarchyNotificationTests extends ModifyingResourceTests implements ITypeHierarchyChangedListener {
-	/**
-	 * Whether we received notification of change
-	 */
-	protected boolean changeReceived = false;
-
-	/**
-	 * The hierarchy we received change for
-	 */
-	protected ITypeHierarchy hierarchy = null;
-
-	/**
-	 * The number of notifications
-	 */
-	protected int notifications = 0;
-
-public TypeHierarchyNotificationTests(String name) {
-	super(name);
-}
-/**
- * Make sure that one change has been received for the given hierarchy.
- */
-private void assertOneChange(ITypeHierarchy h) {
-	assertTrue("Should receive change", this.changeReceived);
-	assertTrue("Change should be for this hierarchy", this.hierarchy == h);
-	assertEquals("Unexpected number of notifications", 1, this.notifications);
-}
-private void addSuper(IJavaScriptUnit unit, String typeName, String newSuper) throws JavaScriptModelException {
-	IJavaScriptUnit copy = unit.getWorkingCopy(null);
-	IType type = copy.getTypes()[0];
-	String source = type.getSource();
-	int superIndex = -1;
-	String newSource = 
-		source.substring(0, (superIndex = source.indexOf(typeName) + typeName.length())) +
-		" extends " +
-		newSuper +
-		source.substring(superIndex);
-	type.delete(true, null);
-	copy.createType(newSource, null, true, null);
-	copy.commitWorkingCopy(true, null);
-}
-protected void changeSuper(IJavaScriptUnit unit, String existingSuper, String newSuper) throws JavaScriptModelException {
-	IJavaScriptUnit copy = unit.getWorkingCopy(null);
-	IType type = copy.getTypes()[0];
-	String source = type.getSource();
-	int superIndex = -1;
-	String newSource = 
-		source.substring(0, (superIndex = source.indexOf(" " + existingSuper))) +
-		" " +
-		newSuper +
-		source.substring(superIndex + existingSuper.length() + 1 /*space*/);
-	type.delete(true, null);
-	copy.createType(newSource, null, true, null);
-	copy.commitWorkingCopy(true, null);
-}
-protected void changeVisibility(IJavaScriptUnit unit, String existingModifier, String newModifier) throws JavaScriptModelException {
-	IJavaScriptUnit copy = unit.getWorkingCopy(null);
-	IType type = copy.getTypes()[0];
-	String source = type.getSource();
-	int modifierIndex = -1;
-	String newSource = 
-		source.substring(0, (modifierIndex = source.indexOf(existingModifier))) +
-		" " +
-		newModifier +
-		source.substring(modifierIndex + existingModifier.length());
-	type.delete(true, null);
-	copy.createType(newSource, null, true, null);
-	copy.commitWorkingCopy(true, null);
-}
-/**
- * Reset the flags that watch notification.
- */
-private void reset() {
-	this.changeReceived = false;
-	this.hierarchy = null;
-	this.notifications = 0;
-}
-protected void setUp() throws Exception {
-	super.setUp();
-	this.reset();
-	this.setUpJavaProject("TypeHierarchyNotification");
-}
-static {
-//	TESTS_NAMES= new String[] { "testAddExtendsSourceType3" };
-}
-public static Test suite() {
-	return buildModelTestSuite(TypeHierarchyNotificationTests.class);
-}
-protected void tearDown() throws Exception {
-	this.deleteProject("TypeHierarchyNotification");
-	super.tearDown();
-}
-
-/**
- * When adding an anonymous type in a hierarchy on a region, we should be notified of change.
- * (regression test for bug 51867 An anonymous type is missing in type hierarchy when editor is modified)
- */
-public void testAddAnonymousInRegion() throws CoreException {
-	ITypeHierarchy h = null;
-	IJavaScriptUnit copy = null;
-	try {
-		copy = getCompilationUnit("TypeHierarchyNotification", "src", "p3", "A.js");
-		copy.becomeWorkingCopy(null);
-		
-		IRegion region = JavaScriptCore.newRegion();
-		region.add(copy.getParent());
-		h = copy.getJavaScriptProject().newTypeHierarchy(region, null);
-		h.addTypeHierarchyChangedListener(this);
-
-		// add a field initialized with a 'new B() {...}' anonymous type
-		String newSource = 
-			"package p3;\n" +
-			"public class A{\n" +
-			"  B field = new B() {};\n" +
-			"}";
-		copy.getBuffer().setContents(newSource);
-		copy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		copy.commitWorkingCopy(true, null);
-
-		this.assertOneChange(h);
-	} finally {
-		if (h != null) {
-			h.removeTypeHierarchyChangedListener(this);
-		}
-		if (copy != null) {
-			copy.discardWorkingCopy();
-		}
-	}
-}
-/**
- * When a CU is added the type hierarchy should change
- * only if one of the types of the CU is part of the  
- * type hierarchy.
- */
-public void testAddCompilationUnit1() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	// a cu with no types part of the hierarchy
-	IPackageFragment pkg = getPackageFragment("TypeHierarchyNotification", "src", "p");
-	IJavaScriptUnit newCU1 = pkg.createCompilationUnit(
-		"Z1.js", 
-		"package p;\n" +
-		"\n" +
-		"public class Z1 {\n" +
-		"\n" +
-		"	public static main(String[] args) {\n" +
-		"		System.out.println(\"HelloWorld\");\n" +
-		"	}\n" +
-		"}\n", 
-		false, 
-		null);
-	try {
-		assertCreation(newCU1);
-		assertTrue("Should not receive change", !this.changeReceived);
-	} finally {
-		// cleanup	
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}	
-/**
- * When a CU is added the type hierarchy should change
- * only if one of the types of the CU is part of the  
- * type hierarchy.
- */
-public void testAddCompilationUnit2() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	// a cu with a top level type which is part of the hierarchy
-	IPackageFragment pkg = getPackageFragment("TypeHierarchyNotification", "src", "p");
-	IJavaScriptUnit newCU2 = pkg.createCompilationUnit(
-		"Z2.js", 
-		"package p;\n" +
-		"\n" +
-		"public class Z2 extends e.E {\n" +
-		"}\n",  
-		false, 
-		null);
-	try {
-		assertCreation(newCU2);
-		this.assertOneChange(h);
-		h.refresh(null);
-		IType eE = getCompilationUnit("TypeHierarchyNotification", "src", "e", "E.js").getType("E");
-		IType[] subtypes = h.getSubtypes(eE);
-		assertTrue("Should be one subtype of e.E", subtypes.length == 1);
-		assertEquals("Subtype of e.E should be p.Z2", newCU2.getType("Z2"), subtypes[0]);
-	} finally {
-		// cleanup	
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a CU is added the type hierarchy should change
- * only if one of the types of the CU is part of the  
- * type hierarchy.
- */
-public void testAddCompilationUnit3() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	// a cu with an inner type which is part of the hierarchy
-	IPackageFragment pkg = getPackageFragment("TypeHierarchyNotification", "src", "p");
-	IJavaScriptUnit newCU3 = pkg.createCompilationUnit(
-		"Z3.js", 
-		"package p;\n" +
-		"\n" +
-		"public class Z3 {\n" +
-		"  public class InnerZ extends d.D {\n" +
-		"  }\n" +
-		"}\n",  
-		false, 
-		null);
-	try {
-		assertCreation(newCU3);
-		this.assertOneChange(h);
-		h.refresh(null);
-		IType dD = getCompilationUnit("TypeHierarchyNotification", "src", "d", "D.js").getType("D");
-		IType[] subtypes = h.getSubtypes(dD);
-		assertTrue("Should be one subtype of d.D", subtypes.length == 1);
-		assertEquals("Subtype of d.D should be p.Z3.InnerZ", newCU3.getType("Z3").getType("InnerZ"), subtypes[0]);
-	} finally {
-		// cleanup	
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a CU is added, if the type hierarchy doesn't have a focus, it should change
- * only if one of the types of the CU is part of the region.
- */
-public void testAddCompilationUnitInRegion() throws CoreException, IOException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IRegion region = JavaScriptCore.newRegion();
-	region.add(javaProject);
-	ITypeHierarchy h = javaProject.newTypeHierarchy(region, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		setUpJavaProject("TypeHierarchyDependent");
-		// a cu with no types part of the region
-		IPackageFragment pkg = getPackageFragment("TypeHierarchyDependent", "", "");
-		IJavaScriptUnit newCU1 = pkg.createCompilationUnit(
-			"Z1.js", 
-			"\n" +
-			"public class Z1 {\n" +
-			"\n" +
-			"	public static main(String[] args) {\n" +
-			"		System.out.println(\"HelloWorld\");\n" +
-			"	}\n" +
-			"}\n", 
-			false, 
-			null);
-		try {
-			assertCreation(newCU1);
-			assertTrue("Should not receive change", !this.changeReceived);
-		} finally {
-			// cleanup	
-			deleteResource(newCU1.getUnderlyingResource());
-			this.reset();
-		}
-	
-		// a cu with a type which is part of the region and is a subtype of an existing type of the region
-		pkg = getPackageFragment("TypeHierarchyNotification", "src", "p");
-		IJavaScriptUnit newCU2 = pkg.createCompilationUnit(
-			"Z2.js", 
-			"package p;\n" +
-			"\n" +
-			"public class Z2 extends e.E {\n" +
-			"}\n",  
-			false, 
-			null);
-		try {
-			assertCreation(newCU2);
-			this.assertOneChange(h);
-			h.refresh(null);
-			IType eE = getCompilationUnit("TypeHierarchyNotification", "src", "e", "E.js").getType("E");
-			IType[] subtypes = h.getSubtypes(eE);
-			assertTrue("Should be one subtype of e.E", subtypes.length == 1);
-			assertEquals("Subtype of e.E should be p.Z2", newCU2.getType("Z2"), subtypes[0]);
-		} finally {
-			// cleanup	
-			deleteResource(newCU2.getUnderlyingResource());
-			h.refresh(null);
-			this.reset();
-		}
-	
-		// a cu with a type which is part of the region and is not a sub type of an existing type of the region
-		IJavaScriptUnit newCU3 = pkg.createCompilationUnit(
-			"Z3.js", 
-			"package p;\n" +
-			"\n" +
-			"public class Z3 extends Throwable {\n" +
-			"}\n",  
-			false, 
-			null);
-		try {
-			assertCreation(newCU3);
-			this.assertOneChange(h);
-			h.refresh(null);
-			IType throwableClass = getClassFile("TypeHierarchyNotification", getSystemJsPathString(), "java.lang", "Throwable.class").getType();
-			assertEquals("Superclass of Z3 should be java.lang.Throwable", throwableClass, h.getSuperclass(newCU3.getType("Z3")));
-		} finally {
-			// cleanup	
-			deleteResource(newCU3.getUnderlyingResource());
-			h.refresh(null);
-			this.reset();
-		}
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-		this.deleteProject("TypeHierarchyDependent");
-	}
-}
-/**
- * When a CU is added if the CU does not intersects package fragments in the type hierarchy, 
- * the typehierarchy has not changed.
- */
-public void testAddExternalCompilationUnit() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-	
-	IPackageFragment pkg = getPackageFragment("TypeHierarchyNotification", "src", "p.other");
-	IJavaScriptUnit newCU= pkg.createCompilationUnit(
-		"Z.js", 
-		"package p.other;\n" +
-		"\n" +
-		"public class Z {\n" +
-		"\n" +
-		"	public static main(String[] args) {\n" +
-		"		System.out.println(\"HelloWorld\");\n" +
-		"	}\n" +
-		"}\n", 
-		false, 
-		null);
-	try {
-		assertCreation(newCU);
-		assertTrue("Should not receive changes", !this.changeReceived);
-	} finally {
-		// cleanup	
-		deleteResource(newCU.getUnderlyingResource());
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a package is added in an external project, the type hierarchy should not change
- */
-public void testAddExternalPackage() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-
-	try {
-		this.createJavaProject("Other", new String[] {"src"});
-	
-		h.addTypeHierarchyChangedListener(this);
-	
-		IPackageFragmentRoot root= getPackageFragmentRoot("Other", "src");
-		IPackageFragment frag= root.createPackageFragment("a.day.in.spain", false, null);
-		try {
-			assertCreation(frag);
-			assertTrue("Should not receive changes", !this.changeReceived);
-		} finally {
-			// cleanup	
-			frag.delete(true, null);
-			this.reset();
-	 	}
-	} finally {
-		this.deleteProject("Other");	
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a project is added that is not on the class path of the type hierarchy project,
- * the type hierarchy should not change.
- */
-public void testAddExternalProject() throws CoreException {
-	IJavaScriptProject project= getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	project.getJavaScriptModel().getWorkspace().getRoot().getProject("NewProject").create(null);
-	try {
-		assertTrue("Should not receive change", !this.changeReceived);
-	} finally {
-		// cleanup
-		this.deleteProject("NewProject");
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * Test adding the same listener twice.
- */
-public void testAddListenerTwice() throws CoreException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IJavaScriptUnit superCU = getCompilationUnit("TypeHierarchyNotification", "src", "b", "B.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-
-	// add listener twice
-	h.addTypeHierarchyChangedListener(this);
-	h.addTypeHierarchyChangedListener(this);
-	
-	IFile file = (IFile) superCU.getUnderlyingResource();
-	try {
-		deleteResource(file);
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a package is added, the type hierarchy should change
- */
-public void testAddPackage() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	IPackageFragmentRoot root= getPackageFragmentRoot("TypeHierarchyNotification", "src");
-	IPackageFragment frag= root.createPackageFragment("one.two.three", false, null);
-	try {
-		assertCreation(frag);
-		this.assertOneChange(h);
-	} finally {
-		// cleanup	
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a package fragment root is added, the type hierarchy should change
- */
-public void testAddPackageFragmentRoot() throws CoreException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	// prepare a classpath entry for the new root
-	IIncludePathEntry[] originalCP= project.getRawIncludepath();
-	IIncludePathEntry newEntry= JavaScriptCore.newSourceEntry(project.getProject().getFullPath().append("extra"));
-	IIncludePathEntry[] newCP= new IIncludePathEntry[originalCP.length + 1];
-	System.arraycopy(originalCP, 0 , newCP, 0, originalCP.length);
-	newCP[originalCP.length]= newEntry;
-
-	try {
-		// set new classpath
-		project.setRawIncludepath(newCP, null);
-
-		// now create the actual resource for the root and populate it
-		this.reset();
-		project.getProject().getFolder("extra").create(false, true, null);
-		IPackageFragmentRoot newRoot= getPackageFragmentRoot("TypeHierarchyNotification", "extra");
-		assertTrue("New root should now be visible", newRoot != null);
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a project is added that is on the class path of the type hierarchy project,
- * the type hierarchy should change.
- */
-public void testAddProject() throws CoreException {
-	IJavaScriptProject project= getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	// prepare a new classpath entry for the new project
-	IIncludePathEntry[] originalCP= project.getRawIncludepath();
-	IIncludePathEntry newEntry= JavaScriptCore.newProjectEntry(new Path("/NewProject"), false);
-	IIncludePathEntry[] newCP= new IIncludePathEntry[originalCP.length + 1];
-	System.arraycopy(originalCP, 0 , newCP, 0, originalCP.length);
-	newCP[originalCP.length]= newEntry;
-
-	try {
-		// set the new classpath
-		project.setRawIncludepath(newCP, null);
-
-		// now create the actual resource for the root and populate it
-		this.reset();
-		final IProject newProject = project.getJavaScriptModel().getWorkspace().getRoot().getProject("NewProject");
-		IWorkspaceRunnable create = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				newProject.create(null, null);
-				newProject.open(null);
-			}
-		};
-		getWorkspace().run(create, null);
-		IProjectDescription description = newProject.getDescription();
-		description.setNatureIds(new String[] {JavaScriptCore.NATURE_ID});
-		newProject.setDescription(description, null);
-		this.assertOneChange(h);
-	} finally {
-		this.deleteProject("NewProject");
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a class file is added or removed if the class file intersects package fragments in the type hierarchy,
- * the type hierarchy has possibly changed (possibly introduce a supertype)
- */
-public void testAddRemoveClassFile() throws CoreException {
-	// Create type hierarchy on 'java.lang.LinkageError' in 'Minimal.zip'
-	IJavaScriptProject project = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit unit = getCompilationUnit("TypeHierarchyNotification", "src", "p", "MyError.js");
-	IType type = unit.getType("MyError");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	// Create 'patch' folder and add it to classpath
-	IFolder pathFolder = project.getProject().getFolder("patch");
-	pathFolder.create(true, true, null);
-	IIncludePathEntry newEntry = JavaScriptCore.newLibraryEntry(pathFolder.getFullPath(), null, null, false);
-	IIncludePathEntry[] classpath = project.getRawIncludepath();
-	IIncludePathEntry[] newClassPath = new IIncludePathEntry[classpath.length+1];
-	newClassPath[0] = newEntry;
-	System.arraycopy(classpath, 0, newClassPath, 1, classpath.length);
-
-	try {
-		// Set new classpath
-		setClasspath(project, newClassPath);
-
-		// Create package 'java.lang' in 'patch'
-		IPackageFragment pf = project.getPackageFragmentRoots()[0].createPackageFragment("java.lang", false, null);
-		h.refresh(null);
-
-		// Test addition of 'Error.class' in 'java.lang' (it should replace the 'Error.class' of the JCL in the hierarchy)
-		this.reset();
-		IFile file = getProject("TypeHierarchyNotification").getFile("Error.class");
-		((IFolder) pf.getUnderlyingResource()).getFile("Error.class").create(file.getContents(false), false, null);
-		this.assertOneChange(h);
-		h.refresh(null);
-		assertEquals("Superclass of MyError should be Error in patch", pf.getClassFile("Error.class").getType(), h.getSuperclass(type));
-
-		// Test removal of 'Error.class'
-		this.reset();
-		deleteResource(pf.getClassFile("Error.class").getUnderlyingResource());
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/*
- * Ensures that changing the modifiers of the focus type in a working copy reports a hierarchy change on save.
- * (regression test for bug 
- */
-public void testChangeFocusModifier() throws CoreException {
-	ITypeHierarchy h = null;
-	IJavaScriptUnit workingCopy = null;
-	try {
-		createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		workingCopy = getCompilationUnit("/P1/p/X.js");
-		workingCopy.becomeWorkingCopy(null/*no progress*/);
-		h = workingCopy.getType("X").newTypeHierarchy(null);
-		h.addTypeHierarchyChangedListener(this);
-		
-		workingCopy.getBuffer().setContents(
-			"package p1;\n" +
-			"class X {\n" +
-			"}"
-		);
-		workingCopy.reconcile(IJavaScriptUnit.NO_AST, false/*no pb detection*/, null/*no workingcopy owner*/, null/*no prgress*/);
-		workingCopy.commitWorkingCopy(false/*don't force*/, null/*no progress*/);
-		
-		assertOneChange(h);
-	} finally {
-		if (h != null)
-			h.removeTypeHierarchyChangedListener(this);
-		if (workingCopy != null)
-			workingCopy.discardWorkingCopy();
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-
-/**
- * Ensures that a TypeHierarchyNotification is made invalid when the project is closed.
- */
-public void testCloseProject() throws Exception {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		assertTrue(h.exists());
-		javaProject.getProject().close(null);
-		assertTrue("Should have been invalidated", !h.exists());
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When editing the extends clause of a source type in a hierarchy, we should be notified of change.
- */
-public void testEditExtendsSourceType() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		// change the superclass to a.A
-		changeSuper(cu, "B", "a.A");
-		assertOneChange(h);
-		h.refresh(null);
-		
-		// change the superclass back to B
-		reset();
-		changeSuper(cu, "a.A", "B");
-		assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-public void testAddDependentProject() throws CoreException {
-	ITypeHierarchy h = null;
-	try {
-		createJavaProject("P1");
-		createFolder("/P1/p");
-		createFile(
-			"/P1/p/X.js",
-			"package p1;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		h = getCompilationUnit("/P1/p/X.js").getType("X").newTypeHierarchy(null);
-		h.addTypeHierarchyChangedListener(this);
-		createJavaProject("P2", new String[] {""}, new String[0], new String[] {"/P1"});
-		assertOneChange(h);
-	} finally {
-		if (h != null)
-			h.removeTypeHierarchyChangedListener(this);
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/**
- * When adding an extends clause of a source type in a hierarchy, we should be notified of change.
- * (regression test for bug 4917 Latest build fails updating TypeHierarchyNotification)
- */
-public void testAddExtendsSourceType1() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p2", "A.js");
-	IType type= cu.getType("A");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		// add p2.B as the superclass of p2.A
-		addSuper(cu, "A", "p2.B");
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-	
-}
-/**
- * When adding an extends clause of a source type in a hierarchy on a region, we should be notified of change.
- * (regression test for bug 45113 No hierarchy refresh when on region)
- */
-public void testAddExtendsSourceType2() throws CoreException {
-	ITypeHierarchy h = null;
-	IJavaScriptUnit copy = null;
-	try {
-		copy = getCompilationUnit("TypeHierarchyNotification", "src", "p2", "A.js");
-		copy.becomeWorkingCopy(null);
-		
-		IRegion region = JavaScriptCore.newRegion();
-		region.add(copy.getParent());
-		h = copy.getJavaScriptProject().newTypeHierarchy(region, null);
-		h.addTypeHierarchyChangedListener(this);
-
-		// add p2.B as the superclass of p2.A
-		String typeName = "A";
-		String newSuper = "p2.B";
-		String source = copy.getBuffer().getContents();
-		int superIndex = -1;
-		String newSource = 
-			source.substring(0, (superIndex = source.indexOf(typeName) + typeName.length())) +
-			" extends " +
-			newSuper +
-			source.substring(superIndex);
-		copy.getBuffer().setContents(newSource);
-		copy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		copy.commitWorkingCopy(true, null);
-
-		this.assertOneChange(h);
-	} finally {
-		if (h != null) {
-			h.removeTypeHierarchyChangedListener(this);
-		}
-		if (copy != null) {
-			copy.discardWorkingCopy();
-		}
-	}
-}
-/**
- * While in a primary working copy, when adding an extends clause with a qualified name in a hierarchy, 
- * we should be notified of change after a reconcile.
- * (regression test for bug 111396 TypeHierarchy doesn't notify listeners on addition of fully qualified subtypes)
- */
-public void testAddExtendsSourceType3() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit copy = getCompilationUnit("TypeHierarchyNotification", "src", "p2", "B.js");
-	ITypeHierarchy h = null;
-	try {
-		copy.becomeWorkingCopy(null);
-		h = getCompilationUnit("TypeHierarchyNotification", "src", "p2", "A.js").getType("A").newTypeHierarchy(javaProject, null);
-		h.addTypeHierarchyChangedListener(this);
-
-		// add p2.A as the superclass of p2.B
-		String typeName = "B";
-		String newSuper = "p2.A";
-		String source = copy.getBuffer().getContents();
-		int superIndex = -1;
-		String newSource = 
-			source.substring(0, (superIndex = source.indexOf(typeName) + typeName.length())) +
-			" extends " +
-			newSuper +
-			source.substring(superIndex);
-		copy.getBuffer().setContents(newSource);
-		copy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-		copy.commitWorkingCopy(true, null);
-		this.assertOneChange(h);
-	} finally {
-		if (h != null)
-			h.removeTypeHierarchyChangedListener(this);
-		copy.discardWorkingCopy();
-	}
-	
-}
-/**
- * When editing a source type NOT in a hierarchy, we should receive NO CHANGES.
- */
-public void testEditExternalSourceType() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	IJavaScriptUnit cu2= getCompilationUnit("TypeHierarchyNotification", "src", "p", "External.js");
-	IField field= cu2.getType("External").getField("field");
-	try {
-		field.delete(false, null);
-		assertTrue("Should receive NO change", !this.changeReceived);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When editing the field of a source type in a hierarchy, 
- * we should NOT be notified of a change.
- */
-public void testEditFieldSourceType() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		// remove a field an make sure we don't get any notification
-		IField field= type.getField("field");
-		String source= field.getSource();
-		field.delete(false, null);
-		assertTrue("Should not receive change", !this.changeReceived);
-		
-		// add the field back in and make sure we don't get any notification
-		type.createField(source, null, false, null);
-		assertTrue("Should receive change", !this.changeReceived);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
- 	}
-}
-/**
- * When editing the imports of a source type in a hierarchy, 
- * we should be notified of a change.
- */
-public void testEditImportSourceType() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		// remove an import declaration
-		IImportDeclaration importDecl = cu.getImport("b.*");
-		importDecl.delete(false, null);
-		this.assertOneChange(h);
-		h.refresh(null);
-		
-		// remove all remaining import declarations
-		this.reset();
-		importDecl = cu.getImport("i.*");
-		importDecl.delete(false, null);
-		this.assertOneChange(h);
-		h.refresh(null);
-		
-		// add an import back in 
-		this.reset();
-		cu.createImport("b.B", null, null);
-		this.assertOneChange(h);
-		h.refresh(null);
-		
-		// add a second import back in 
-		this.reset();
-		cu.createImport("i.*", null, null);
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
- 	}
-}
-/**
- * When editing > 1 source type in a hierarchy using a MultiOperation, 
- * we should be notified of ONE change.
- */
-public void testEditSourceTypes() throws CoreException {
-	// TBD: Find a way to do 2 changes in 2 different CUs at once
-	
-	IJavaScriptProject project= getJavaProject("TypeHierarchyNotification");
-	final IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	final IJavaScriptUnit superCU = getCompilationUnit("TypeHierarchyNotification", "src", "b", "B.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		// change the visibility of the super class and the 'extends' of the type we're looking at
-		// in a batch operation
-		JavaScriptCore.run(
-			new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) {
-					try {
-						changeVisibility(superCU, "public", "private");
-						changeSuper(cu, "X", "a.A");
-					} catch (JavaScriptModelException e) {
-						assertTrue("No exception", false);
-					}
-				}
-			},
-			null
-		);
-
-		assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When editing a super source type in a hierarchy, we should be notified of change only if
- * the change affects the visibility of the type.
- */
-public void testEditSuperType() throws CoreException {
-	IJavaScriptProject project= getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IJavaScriptUnit superCU = getCompilationUnit("TypeHierarchyNotification", "src", "b", "B.js");
-	IType type = cu.getType("X");
-	IType superType= superCU.getType("B");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		// delete a field, there should be no change
-		IField superField= superType.getField("value");
-		superField.delete(false, null);
-		assertTrue("Should receive no change", !this.changeReceived);
-
-		// change the visibility of the super class, there should be one change
-		changeVisibility(superCU, "public", "private");
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When an involved compilation unit is deleted, the type hierarchy should change
- */
-public void testRemoveCompilationUnit() throws CoreException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IJavaScriptUnit superCU = getCompilationUnit("TypeHierarchyNotification", "src", "b", "B.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-	
-	IFile file = (IFile) superCU.getUnderlyingResource();
-	try {
-		deleteResource(file);
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When an uninvolved compilation unit is deleted, the type hierarchy should not change
- */
-public void testRemoveExternalCompilationUnit() throws CoreException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IJavaScriptUnit otherCU = getCompilationUnit("TypeHierarchyNotification", "src", "p", "External.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-	
-	IFile file = (IFile) otherCU.getUnderlyingResource();
-	try {
-		deleteResource(file);
-		assertTrue("Should not receive changes", !this.changeReceived);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a uninvolved package is deleted, the type hierarchy should NOT change
- */
-public void testRemoveExternalPackage() throws CoreException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-	
-	IPackageFragment pkg = getPackageFragment("TypeHierarchyNotification", "src", "p.other");
-	IFolder folder = (IFolder) pkg.getUnderlyingResource();
-	try {
-		deleteResource(folder);
-		assertTrue("Should receive NO change", !this.changeReceived);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a package fragment root is removed from the classpath, but does not impact the
- * package fragments, the type hierarchy should not change.
- */
-public void testRemoveExternalPackageFragmentRoot() throws CoreException {
-	IJavaScriptProject project= getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	// add a classpath entry for the new root
-	IIncludePathEntry[] originalCP= project.getRawIncludepath();
-	IIncludePathEntry newEntry= JavaScriptCore.newSourceEntry(project.getProject().getFullPath().append("extra"));
-	IIncludePathEntry[] newCP= new IIncludePathEntry[originalCP.length + 1];
-	System.arraycopy(originalCP, 0 , newCP, 0, originalCP.length);
-	newCP[originalCP.length]= newEntry;
-	
-	try {
-		// set classpath
-		project.setRawIncludepath(newCP, null);
-
-		// now create the actual resource for the root and populate it
-		this.reset();
-		project.getProject().getFolder("extra").create(false, true, null);
-		IPackageFragmentRoot newRoot= getPackageFragmentRoot("TypeHierarchyNotification", "extra");
-		assertTrue("New root should now be visible", newRoot != null);
-		this.assertOneChange(h);
-		h.refresh(null);
-
-		// remove a classpath entry that does not impact the type hierarchy
-		this.reset();
-		project.setRawIncludepath(originalCP, null);
-		assertTrue("Should not receive change", !this.changeReceived);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a project is deleted that contains package fragments that impact the 
- * type hierarchy, the type hierarchy should change
- */
-public void testRemoveExternalProject() throws CoreException {
-	try {
-		this.createJavaProject("External", new String[] {""}, new String[] {"JCL_LIB"}, new String[]{"/TypeHierarchyNotification"});
-		this.createFolder("/External/p");
-		this.createFile("/External/p/Y.js", "package p; public class Y extends X {}");
-		IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-		IType type = cu.getType("X");
-		ITypeHierarchy h = type.newTypeHierarchy(null);
-		h.addTypeHierarchyChangedListener(this);
-		
-		try {
-			this.deleteProject("External");
-			assertTrue("Should receive change", this.changeReceived);
-		} finally {
-			h.removeTypeHierarchyChangedListener(this);
-		}
-	} finally {
-		this.deleteProject("External");
-	}
-}
-/**
- * Test removing a listener while the type hierarchy is notifying listeners.
- */
-public void testRemoveListener() throws CoreException {
-	IJavaScriptProject project= getJavaProject("TypeHierarchyNotification");
-	final IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	final IJavaScriptUnit superCU = getCompilationUnit("TypeHierarchyNotification", "src", "b", "B.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	ITypeHierarchyChangedListener listener= new ITypeHierarchyChangedListener() {
-		public void typeHierarchyChanged(ITypeHierarchy th) {
-			changeReceived= true;
-			hierarchy= th;
-			notifications++;
-			th.removeTypeHierarchyChangedListener(this);
-		}
-	};
-	h.addTypeHierarchyChangedListener(listener);
-
-	try {
-		// change the visibility of the super class and the 'extends' of the type we're looking at
-		// in a batch operation
-		getWorkspace().run(
-			new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) {
-					try {
-						changeVisibility(superCU, "public", "private");
-						changeSuper(cu, "B", "a.A");
-					} catch (JavaScriptModelException e) {
-						assertTrue("No exception", false);
-					}
-				}
-			},
-			null
-		);
-
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a package is deleted, the type hierarchy should change
- */
-public void testRemovePackage() throws CoreException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-	
-	IPackageFragment pkg = type.getPackageFragment();
-	try {
-		deleteResource(pkg.getUnderlyingResource());
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a package fragment root is removed from the classpath, the type hierarchy should change
- */
-public void testRemovePackageFragmentRoots() throws CoreException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-	
-	try {
-		project.setRawIncludepath(null, null);
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When a project is deleted that contains package fragments that impact the 
- * type hierarchy, the type hierarchy should change (and be made invalid)
- */
-public void testRemoveProject() throws CoreException, IOException {
-	ITypeHierarchy h = null;
-	try {
-		setUpJavaProject("TypeHierarchyDependent");
-		IJavaScriptProject project= getJavaProject("TypeHierarchyDependent");
-		IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyDependent", "", "", "Dependent.js");
-		IType type = cu.getType("Dependent");
-		h = type.newTypeHierarchy(project, null);
-		h.addTypeHierarchyChangedListener(this);
-	
-		// Sanity check
-		assertEquals("Superclass of Dependent is a.A", "a.A", h.getSuperclass(type).getFullyQualifiedName());
-	
-		// Delete a related project
-		IResource folder = getJavaProject("TypeHierarchyNotification").getUnderlyingResource();
-		deleteResource(folder);
-		this.assertOneChange(h);
-		assertTrue("Should still exist", h.exists());
-		h.refresh(null);
-		IType superType = h.getSuperclass(type);
-		assertTrue("Superclass of Dependent should be null", superType == null);
-	
-		// Delete the project type lives in.
-		folder = getJavaProject("TypeHierarchyDependent").getUnderlyingResource();
-		deleteResource(folder);
-		assertTrue("Should have been invalidated", ! h.exists());	
-	} finally {
-		this.deleteProject("TypeHierarchyDependent");
-		if (h != null) h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When type used to create a TypeHierarchyNotification is deleted,
- * the hierarchy should be made invalid.
- */
-public void testRemoveType() throws CoreException {
-	IJavaScriptProject project= getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		type.delete(true, null);
-		assertTrue("Should have been invalidated", !h.exists());
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When an involved compilation unit is renamed, the type hierarchy may change.
- */
-public void testRenameCompilationUnit() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	try {
-		cu.rename("X2.js", false, null);
-		this.assertOneChange(h);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * When an uninvolved compilation unit is renamed, the type hierarchy does not change.
- */
-public void testRenameExternalCompilationUnit() throws CoreException {
-	IJavaScriptProject javaProject = getJavaProject("TypeHierarchyNotification");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchyNotification", "src", "p", "X.js");
-	IType type= cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(javaProject, null);
-	h.addTypeHierarchyChangedListener(this);
-
-	IJavaScriptUnit cu2= getCompilationUnit("TypeHierarchyNotification", "src", "p", "External.js");
-	try {
-		cu2.rename("External2.js", false, null);
-		assertTrue("Should not receive changes", !this.changeReceived);
-	} finally {
-		h.removeTypeHierarchyChangedListener(this);
-	}
-}
-/**
- * Make a note of the change
- */
-public void typeHierarchyChanged(ITypeHierarchy typeHierarchy) {
-	this.changeReceived= true;
-	this.hierarchy= typeHierarchy;
-	this.notifications++;
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchySerializationTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchySerializationTests.java
deleted file mode 100644
index ba60eed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchySerializationTests.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.internal.core.hierarchy.RegionBasedTypeHierarchy;
-import org.eclipse.wst.jsdt.internal.core.hierarchy.TypeHierarchy;
-
-import junit.framework.Test;
-
-public class TypeHierarchySerializationTests extends AbstractJavaModelTests {
-	private static final String PROJECTNAME = "TypeHierarchySerialization";
-	
-	IJavaScriptProject project;
-
-public TypeHierarchySerializationTests(String name) {
-	super(name);
-}
-public static Test suite() {
-	return buildModelTestSuite(TypeHierarchySerializationTests.class);
-}
-private static void compare(String focus, ITypeHierarchy stored, ITypeHierarchy loaded){
-	if(stored instanceof RegionBasedTypeHierarchy) {
-		assertTrue("["+focus+"] hierarchies are not the same", loaded instanceof RegionBasedTypeHierarchy);
-		compareRegionBasedTypeHierarchy(focus, (RegionBasedTypeHierarchy)stored,(RegionBasedTypeHierarchy)loaded);
-	} else if(stored instanceof TypeHierarchy) {
-		assertTrue("["+focus+"] hierarchies are not the same", loaded instanceof TypeHierarchy);
-		compareTypeHierarchy(focus, (TypeHierarchy)stored,(TypeHierarchy)loaded);
-	}
-}
-private static void compareRegionBasedTypeHierarchy(String focus, RegionBasedTypeHierarchy stored, RegionBasedTypeHierarchy loaded){
-	compareTypeHierarchy(focus, stored, loaded);
-}
-private static void compareTypeHierarchy(String focus, TypeHierarchy stored, TypeHierarchy loaded){
-	//System.out.println(stored.toString());
-	
-	IType type1 = stored.getType();
-	IType type2 = loaded.getType();
-	assertEquals("["+focus+"] focus are not the same", type1, type2);
-	
-	IType[] allTypes1 = stored.getAllTypes();
-	IType[] allTypes2 = loaded.getAllTypes();
-	compare("["+focus+"] all types are not the same", allTypes1, allTypes2);
-	
-	IType[] allClasses1 = stored.getAllClasses();
-	IType[] allClasses2 = loaded.getAllClasses();
-	compare("["+focus+"] all classes are not the same", allClasses1, allClasses2);
-	
-	IType[] rootClasses1 = stored.getRootClasses();
-	IType[] rootClasses2 = loaded.getRootClasses();
-	compare("["+focus+"] all roots are not the same", rootClasses1, rootClasses2);
-	
-	Object[] missingTypes1 = stored.missingTypes.toArray();
-	Object[] missingTypes2 = loaded.missingTypes.toArray();
-	compare("["+focus+"] all missing types are not the same", missingTypes1, missingTypes2);
-	
-	for (int i = 0; i < allTypes1.length; i++) {
-		IType aType = allTypes1[i];
-		
-		int cachedFlags1 = stored.getCachedFlags(aType);
-		int cachedFlags2 = loaded.getCachedFlags(aType);
-		assertEquals("["+focus+"] flags are not the same for "+aType.getFullyQualifiedName(), cachedFlags1, cachedFlags2);
-		
-		IType superclass1 = stored.getSuperclass(aType);
-		IType superclass2 = loaded.getSuperclass(aType);
-		assertEquals("["+focus+"] superclass are not the same for "+aType.getFullyQualifiedName(), superclass1, superclass2);
-		
-		IType[] superTypes1 = stored.getSupertypes(aType);
-		IType[] superTypes2 = loaded.getSupertypes(aType);
-		compare("["+focus+"] all super types are not the same for "+aType.getFullyQualifiedName(), superTypes1, superTypes2);
-		
-		IType[] subclasses1 = stored.getSubclasses(aType);
-		IType[] subclasses2 = loaded.getSubclasses(aType);
-		compare("["+focus+"] all subclasses are not the same for "+aType.getFullyQualifiedName(), subclasses1, subclasses2);
-		
-		IType[] subtypes1 = stored.getSubtypes(aType);
-		IType[] subtypes2 = loaded.getSubtypes(aType);
-		compare("["+focus+"] all subtypes are not the same for "+aType.getFullyQualifiedName(), subtypes1, subtypes2);
-		
-		IType[] implementingClasses1 = stored.getImplementingClasses(aType);
-		IType[] implementingClasses2 = loaded.getImplementingClasses(aType);
-		compare("["+focus+"] all implemeting classes are not the same for "+aType.getFullyQualifiedName(), implementingClasses1, implementingClasses2);
-		
-	}
-}
-private static void compare(String msg, Object[] types1, Object[] types2) {
-	if(types1 == null) {
-		assertTrue(msg, types2 == null);
-	} else {
-		assertTrue(msg, types2 != null);
-		assertTrue(msg, types1.length == types2.length);
-		for (int i = 0; i < types1.length; i++) {
-			boolean found = false;
-			for (int j = 0; j < types2.length; j++) {
-				if(types1[i] == null && types1[j] == null) {
-					found = true;
-				} else if(types1[i] != null && types1[i].equals(types2[j])) {
-					found = true;
-				}
-			}
-			assertTrue(msg, found);
-		}
-	}
-}
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-
-	project = setUpJavaProject(PROJECTNAME);
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#tearDownSuite()
- */
-public void tearDownSuite() throws Exception {
-	deleteProject(PROJECTNAME);
-	
-	super.tearDownSuite();
-}
-private static void testFocusHierarchy(IType type, IJavaScriptProject project) throws JavaScriptModelException{
-	ITypeHierarchy h1 = type.newTypeHierarchy(project, null);
-
-	ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-	h1.store(outputStream, null);
-
-	byte[] bytes = outputStream.toByteArray();
-	ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
-	ITypeHierarchy h2 = type.loadTypeHierachy(inputStream, null);
-	
-	compare(type.getFullyQualifiedName(), h1, h2);
-	
-	h2.refresh(null);
-	compare(type.getFullyQualifiedName(), h1, h2);
-}
-public void test001() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "X.js");
-	IType type = cu.getType("X");
-	testFocusHierarchy(type, project);
-}
-public void test002() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "Y.js");
-	IType type = cu.getType("Y");
-	testFocusHierarchy(type, project);
-}
-public void test003() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "Z.js");
-	IType type = cu.getType("Z");
-	testFocusHierarchy(type, project);
-}
-public void test004() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "I1.js");
-	IType type = cu.getType("I1");
-	testFocusHierarchy(type, project);
-}
-public void test005() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "I2.js");
-	IType type = cu.getType("I2");
-	testFocusHierarchy(type, project);
-}
-public void test006() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "I3.js");
-	IType type = cu.getType("I3");
-	testFocusHierarchy(type, project);
-}
-public void test007() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "I4.js");
-	IType type = cu.getType("I4");
-	testFocusHierarchy(type, project);
-}
-public void test008() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "I5.js");
-	IType type = cu.getType("I5");
-	testFocusHierarchy(type, project);
-}
-public void test009() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit(PROJECTNAME, "src", "p1", "I6.js");
-	IType type = cu.getType("I6");
-	testFocusHierarchy(type, project);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchyTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchyTests.java
deleted file mode 100644
index 176e80e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeHierarchyTests.java
+++ /dev/null
@@ -1,1725 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.tests.util.Util;
-
-import junit.framework.Test;
-
-public class TypeHierarchyTests extends ModifyingResourceTests {
-	/**
-	 * A placeholder for a type hierarchy used in some test cases.
-	 */
-	ITypeHierarchy typeHierarchy;
-
-static {
-//	TESTS_NAMES= new String[] { "testGeneric7" };
-}
-public static Test suite() {
-	return buildModelTestSuite(TypeHierarchyTests.class);
-}
-public TypeHierarchyTests(String name) {
-	super(name);
-	this.displayName = true;
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#setUpSuite()
- */
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-
-	setUpJavaProject("TypeHierarchy");
-	addLibrary("myLib.jar", "myLibsrc.zip", new String[] {
-		"my/pkg/X.js",
-		"package my.pkg;\n" + 
-		"public class X {\n" + 
-		"}",
-		"my/pkg/Y.js",
-		"package my.pkg;\n" + 
-		"public class Y {\n" + 
-		"  void foo() {\n" +
-		"    new X() {};" +
-		"  }\n" +
-		"}",
-	}, JavaScriptCore.VERSION_1_4);
-	
-	IPackageFragmentRoot root = this.currentProject.getPackageFragmentRoot(this.currentProject.getProject().getFile("lib.jar"));
-	IRegion region = JavaScriptCore.newRegion();
-	region.add(root);
-	this.typeHierarchy = this.currentProject.newTypeHierarchy(region, null);
-	
-	IJavaScriptProject project15 = createJavaProject("TypeHierarchy15", new String[] {"src"}, new String[] {"JCL15_LIB"}, "bin", "1.5");
-	addLibrary(project15, "lib15.jar", "lib15src.zip", new String[] {
-		"util/AbstractList.js",
-		"package util;\n" + 
-		"public class AbstractList<E> {\n" + 
-		"}",
-		"util/ArrayList.js",
-		"package util;\n" + 
-		"public class ArrayList<E> extends AbstractList<E> implements List<E> {\n" + 
-		"}",
-		"util/List.js",
-		"package util;\n" + 
-		"public interface List<E> {\n" + 
-		"}",
-		"util/Map.js",
-		"package util;\n" + 
-		"public class Map<K,V> extends AbstractList<V> {\n" + 
-		"}",
-	}, JavaScriptCore.VERSION_1_5);
-	createFile(
-		"/TypeHierarchy15/src/X.js", 
-		"import util.*;\n" +
-		"public class X<E> extends ArrayList<E> implements List<E> {\n" +
-		"}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/Y.js", 
-		"import util.*;\n" +
-		"public class Y extends ArrayList implements List {\n" +
-		"}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/I.js", 
-		"public interface I<E> {\n" +
-		"}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/A.js", 
-		"public class A<E> implements I<E> {\n" +
-		"}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/X99606.js", 
-		"public class X99606 extends Y99606<X99606.Color> {\n" + 
-		"	static class Color {}\n" + 
-		"}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/Y99606.js", 
-		"public class Y99606<T> {\n" + 
-		"}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/A108740.js", 
-		"class A108740<T> {}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/B108740.js", 
-		"class B108740<T> extends A108740<C108740> {}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/C108740.js", 
-		"class C108740 extends B108740<C108740> {}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/D108740.js", 
-		"class D108740 extends B108740<D108740> {}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/CycleParent.js", 
-		"class CycleParent extends CycleBase<CycleChild> {}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/CycleBase.js", 
-		"class CycleBase<T extends CycleBase> {}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/CycleChild.js", 
-		"class CycleChild extends CycleParent implements Comparable<CycleChild> {\n" +
-		"	public int compareTo(CycleChild o) { return 0; }\n" +
-		"}"
-	);
-	createFile(
-		"/TypeHierarchy15/src/Try.js", 
-		"public enum Try {\n" + 
-		"    THIS,\n" + 
-		"    THAT(),\n" + 
-		"    ANONYMOUS() {}\n" + 
-		"}"
-	);
-	
-}
-
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#tearDownSuite()
- */
-public void tearDownSuite() throws Exception {
-	this.typeHierarchy = null;
-	deleteProject("TypeHierarchy");
-	deleteProject("TypeHierarchy15");
-	
-	super.tearDownSuite();
-}
-/*
- * Ensures that a hierarchy on an anonymous type in an initializer is correct.
- */
-public void testAnonymousType01() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getInitializer(1).getType("", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: <anonymous #1> [in <initializer #1> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on an anonymous type in a second initializer is correct.
- */
-public void testAnonymousType02() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getInitializer(2).getType("", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: <anonymous #1> [in <initializer #2> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on an anonymous type in a field declaration is correct.
- */
-public void testAnonymousType03() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getField("field1").getType("", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: <anonymous #1> [in field1 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on an anonymous type in a field declaration is correct.
- */
-public void testAnonymousType04() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getField("field2").getType("", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: <anonymous #1> [in field2 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-	type = typeA.getField("field2").getType("", 2);
-	hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: <anonymous #2> [in field2 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on an anonymous type in a method declaration is correct.
- */
-public void testAnonymousType05() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getFunction("foo", new String[] {}).getType("", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: <anonymous #1> [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on an anonymous type that uses a non-default constructor is correct.
- * (regression test for bug 44506 Type hierarchy is missing anonymous type)
- */
-public void testAnonymousType06() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p8", "X.js").getType("X");
-	IType type = typeA.getFunction("foo", new String[] {}).getType("", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: <anonymous #1> [in foo() [in X [in X.java [in p8 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p8 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensure that the key of an anonymous binary type in a hierarchy is correct.
- * (regression test for bug 93826 ArrayIndexOutOfBoundsException when opening type hierarchy)
- */
-public void testAnonymousType07() throws CoreException {
-	IType type = getClassFile("TypeHierarchy","myLib.jar", "my.pkg", "X.class").getType();
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	IType[] subtypes = hierarchy.getSubtypes(type);
-	assertEquals("Unexpected key", "Lmy/pkg/Y$1;", subtypes.length < 1 ? null : subtypes[0].getKey());
-}
-/*
- * Ensure that hierarchy on an enum also include the anonymous of its enum contants
- * (regression test for bug 120667 [hierarchy] Type hierarchy for enum type does not include anonymous subtypes)
- */
-public void testAnonymousType08() throws CoreException {
-	IType type = getCompilationUnit("TypeHierarchy15/src/Try.js").getType("Try");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Try [in Try.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"  Enum [in Enum.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"    Comparable [in Comparable.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"    Serializable [in Serializable.class [in java.io [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n" + 
-		"  <anonymous #1> [in ANONYMOUS [in Try [in Try.java [in <default> [in src [in TypeHierarchy15]]]]]]\n",
-		hierarchy);
-}
-/*
- * Ensure that hierarchy on the anonymous type of an enum constant is correct
- * (regression test for bug 120667 [hierarchy] Type hierarchy for enum type does not include anonymous subtypes)
- */
-public void testAnonymousType09() throws CoreException {
-	IType type = getCompilationUnit("TypeHierarchy15/src/Try.js").getType("Try").getField("ANONYMOUS").getType("", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: <anonymous #1> [in ANONYMOUS [in Try [in Try.java [in <default> [in src [in TypeHierarchy15]]]]]]\n" + 
-		"Super types:\n" + 
-		"  Try [in Try.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"    Enum [in Enum.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"      Comparable [in Comparable.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"      Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"      Serializable [in Serializable.class [in java.io [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensure that hierarchy on the anonymous type of a member type that is opened is correct
- * (regression test for bug 122444 [hierarchy] Type hierarchy of inner member type misses anonymous subtypes)
- */
-public void testAnonymousType10() throws CoreException {
-	IJavaScriptUnit cu =  getCompilationUnit("TypeHierarchy/src/q7/X.js");
-	cu.open(null);
-	IType type = cu.getType("X").getType("Member");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Member [in X [in X.java [in q7 [in src [in TypeHierarchy]]]]]\n" + 
-		"Super types:\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n" + 
-		"  <anonymous #1> [in foo(X) [in Y [in X.java [in q7 [in src [in TypeHierarchy]]]]]]\n",
-		hierarchy);
-}
-/**
- * Ensures that the superclass can be retrieved for a binary inner type.
- */
-public void testBinaryInnerTypeGetSuperclass() throws JavaScriptModelException {
-	IClassFile cf = getClassFile("TypeHierarchy", "lib.jar", "binary", "Y$Inner.class");
-	IType type = cf.getType();
-	ITypeHierarchy h = type.newSupertypeHierarchy(null);
-	IType superclass = h.getSuperclass(type);
-	assertTrue("Superclass not found for Y$Inner", superclass != null);
-	assertEquals("Unexpected super class", "Z", superclass.getElementName());
-}
-/*
- * Ensures that the hierarchy lookup mechanism get the right binary if it is missplaced.
- * (regression test for bug 139279 Fup of bug 134110, got CCE changing an external jar contents and refreshing the project)
- */
-public void testBinaryInWrongPackage() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"}, new String[] {"JCL_LIB", "lib"});
-		createFolder("/P/src/p");
-		createFile(
-			"/P/src/p/X.js",
-			"pakage p;\n" +
-			"public class X {\n" +
-			"}"
-		);
-		getProject("P").build(IncrementalProjectBuilder.FULL_BUILD, null);
-		waitForAutoBuild();
-		getFile("/P/bin/p/X.class").copy(new Path("/P/lib/X.class"), false, null);
-		ITypeHierarchy hierarchy = getClassFile("P", "/P/lib", "", "X.class").getType().newSupertypeHierarchy(null);
-		assertHierarchyEquals(
-			"Focus: X [in X.class [in <default> [in lib [in P]]]]\n" + 
-			"Super types:\n" + 
-			"Sub types:\n" + 
-			"Root classes:\n",
-			hierarchy);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a hierarchy with a binary subclass that is also referenced can be computed
- * (regression test for bug 48459 NPE in Type hierarchy)
- */
-public  void testBinarySubclass() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy/src/p48459/p1/X48459.js").getType("X48459");
-	ITypeHierarchy h = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: X48459 [in X48459.java [in p48459.p1 [in src [in TypeHierarchy]]]]\n" + 
-		"Super types:\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n" + 
-		"  <anonymous #1> [in foo [in Z48459 [in Z48459.java [in p48459.p1 [in src [in TypeHierarchy]]]]]]\n" + 
-		"  Y48459 [in Y48459.class [in p48459.p2 [in lib48459 [in TypeHierarchy]]]]\n",
-		h);
-}
-/**
- * Ensures that the superclass can be retrieved for a binary type's superclass.
- */
-public void testBinaryTypeGetSuperclass() throws JavaScriptModelException {
-	IClassFile cf = getClassFile("TypeHierarchy", "lib.jar", "binary", "Y.class");
-	IType type = cf.getType();
-	ITypeHierarchy h= type.newSupertypeHierarchy(null);
-	IType superclass= h.getSuperclass(type);
-	assertTrue("Superclass not found forY", superclass != null);
-	assertEquals("Unexpected superclass of Y", "X", superclass.getElementName());
-}
-/**
- * Ensures that the superclass can be retrieved for a binary type's superclass.
- * This is a relatively deep type hierarchy.
- */
-public void testBinaryTypeGetSuperclass2() throws JavaScriptModelException {
-	IClassFile cf = getClassFile("TypeHierarchy", "lib.jar", "binary", "Deep.class");
-	IType type = cf.getType();
-	ITypeHierarchy h= type.newSupertypeHierarchy(null);
-	IType superclass= h.getSuperclass(type);
-	assertTrue("Superclass not found for Deep", superclass != null);
-	assertEquals("Unexpected superclass of Deep", "Z", superclass.getElementName());
-}
-/*
- * Ensures that a hierarchy can be constructed on a binary type in a jar that is hidden by another jar with the same type.
- * (regression test for bug 
- */
-public void testBinaryTypeHiddenByOtherJar() throws CoreException, IOException {
-	String externalJar1 = null;
-	String externalJar2 = null;
-	try {
-		externalJar1 = Util.getOutputDirectory() + File.separator + "test1.jar";
-		Util.createJar(
-			new String[] {
-				"p/X.js",
-				"package p;\n" +
-				"public class X {\n" + 
-				"}" ,
-				"p/Y.js",
-				"package p;\n" +
-				"public class Y extends X {\n" + 
-				"}" 
-			},
-			new HashMap(),
-			externalJar1
-		);
-		externalJar2 = Util.getOutputDirectory() + File.separator + "test2.jar";
-		Util.createJar(
-			new String[] {
-				"p/X.js",
-				"package p;\n" +
-				"public class X {\n" + 
-				"}" ,
-				"p/Y.js",
-				"package p;\n" +
-				"public class Y extends X {\n" + 
-				"}" 
-			},
-			new HashMap(),
-			externalJar2
-		);
-		IJavaScriptProject project = createJavaProject("P", new String[] {}, new String[] {"JCL_LIB", externalJar1, externalJar2});
-		IType focus = project.getPackageFragmentRoot(externalJar2).getPackageFragment("p").getClassFile("Y.class").getType();
-		assertHierarchyEquals(
-			"Focus: Y [in Y.class [in p [in " + externalJar2 + "]]]\n" + 
-			"Super types:\n" + 
-			"  X [in X.class [in p [in " + externalJar1 + "]]]\n" + 
-			"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"Sub types:\n",
-			focus.newTypeHierarchy(null)
-		);
-	} finally {
-		if (externalJar1 != null)
-			Util.delete(externalJar1);
-		if (externalJar2 != null)
-			Util.delete(externalJar2);
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that a hierarchy can be constructed on a binary type in a jar that has '.class' in its name.
- * (regression test for bug 157035 "Open Type Hierarchy" fails if subtype is anonymous or local class and location for this subtype contains ".class")
- */
-public void testBinaryTypeInDotClassJar() throws CoreException, IOException {
-	String externalJar = null;
-	try {
-		externalJar = Util.getOutputDirectory() + File.separator + "test.classic.jar";
-		Util.createJar(
-			new String[] {
-				"p/X.js",
-				"package p;\n" +
-				"public class X {\n" + 
-				"}" ,
-				"p/Y.js",
-				"package p;\n" +
-				"public class Y {\n" +
-				"  void foo() {\n" +
-				"    new X() {\n" +
-				"    };\n" +
-				" }\n" +
-				"}" 
-			},
-			new HashMap(),
-			externalJar
-		);
-		IJavaScriptProject project = createJavaProject("P", new String[] {}, new String[] {"JCL_LIB", externalJar});
-		IType focus = project.getPackageFragmentRoot(externalJar).getPackageFragment("p").getClassFile("X.class").getType();
-		assertHierarchyEquals(
-			"Focus: X [in X.class [in p [in " + externalJar + "]]]\n" + 
-			"Super types:\n" + 
-			"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"Sub types:\n" + 
-			"  <anonymous> [in Y$1.class [in p [in " + externalJar + "]]]\n",
-			focus.newTypeHierarchy(null)
-		);
-	} finally {
-		if (externalJar != null)
-			Util.delete(externalJar);
-		deleteProject("P");
-	}
-}
-/**
- * Ensures that the creation of a type hierarchy can be cancelled.
- */
-public void testCancel() throws JavaScriptModelException {
-	boolean isCanceled = false;
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p1", "X.js").getType("X");
-	IRegion region = JavaScriptCore.newRegion();
-	region.add(getPackageFragmentRoot("TypeHierarchy", "src"));
-	try {
-		TestProgressMonitor monitor = TestProgressMonitor.getInstance();
-		monitor.setCancelledCounter(1);
-		type.getJavaScriptProject().newTypeHierarchy(type, region, monitor);
-	} catch (OperationCanceledException e) {
-		isCanceled = true;
-	}
-	assertTrue("Operation should have thrown an operation canceled exception", isCanceled);
-}
-/**
- * Ensures that contains(...) returns true for a type that is part of the
- * hierarchy and false otherwise.
- */
-public void testContains() throws JavaScriptModelException {
-	// regular class
-	IClassFile cf = getClassFile("TypeHierarchy", "lib.jar", "binary", "X.class");
-	IType type = cf.getType();
-	assertTrue("X must be included", this.typeHierarchy.contains(type));
-
-	// root class
-	cf = getClassFile("TypeHierarchy", getSystemJsPathString(), "java.lang", "Object.class");
-	type = cf.getType();
-	assertTrue("Object must be included", this.typeHierarchy.contains(type));
-
-	// interface
-	cf = getClassFile("TypeHierarchy", "lib.jar", "binary", "I.class");
-	assertTrue("I must be included", this.typeHierarchy.contains(type));
-}
-public void testCycle() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy/src/cycle/X.js").getType("X");
-	ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: X [in X.java [in cycle [in src [in TypeHierarchy]]]]\n" + 
-		"Super types:\n" + 
-		"  Y [in Y.java [in cycle [in src [in TypeHierarchy]]]]\n" + 
-		"Sub types:\n",
-		hierarchy
-	);
-}
-public void testCycle2() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy15/src/CycleParent.js").getType("CycleParent");
-	ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: CycleParent [in CycleParent.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"  CycleBase [in CycleBase.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy
-	);
-}
-/*
- * Ensures that creating a type hierarchy accross multiple project is efficient enough.
- */
-public void testEfficiencyMultipleProjects() throws CoreException {
-	try {
-		createJavaProject("P1", new String[] {""}, new String[] {"JCL_LIB"});
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		createJavaProject("P3", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		createFile("/P1/X.js", "public class X {}");
-		createFile("/P3/Y.js", "public class Y extends X {}");
-		createFile("/P3/Z.js", "public class Z extends X {}");
-		createFile("/P2/W.js", "public class W extends X {}");
-		IType type = getCompilationUnit("/P1/X.js").getType("X");
-		class ProgressCounter extends TestProgressMonitor {
-			int count = 0;
-			public boolean isCanceled() {
-				this.count++;
-				return false;
-			}
-		}
-		ProgressCounter counter = new ProgressCounter();
-		type.newTypeHierarchy(counter);
-		assertEquals("Unexpected work count", 18, counter.count);
-	} finally {
-		deleteProjects(new String[] {"P1", "P2", "P3"});
-	}
-}
-/*
- * Ensures that a hierarchy can be created with a potential subtype in an empty primary working copy
- * (regression test for bug 65677 Creating hierarchy failed. See log for details. 0)
- */
-public void testEmptyWorkingCopyPotentialSubtype() throws JavaScriptModelException {
-    IJavaScriptUnit workingCopy = null;
-    try {
-        workingCopy = getCompilationUnit("/TypeHierarchy/src/q4/Y.js");
-        workingCopy.becomeWorkingCopy(null);
-        workingCopy.getBuffer().setContents("");
-        workingCopy.makeConsistent(null);
-        
-        IType type = getCompilationUnit("/TypeHierarchy/src/q4/X.js").getType("X");
-		ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-		assertHierarchyEquals(
-			"Focus: X [in X.java [in q4 [in src [in TypeHierarchy]]]]\n" + 
-			"Super types:\n" + 
-			"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"Sub types:\n",
-			hierarchy);
-    } finally {
-        if (workingCopy != null)
-            workingCopy.discardWorkingCopy();
-    }
-}
-/*
- * Ensures that a hierarchy on a type with local and anonymous types is correct.
- */
-public void testFocusWithLocalAndAnonymousTypes() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p7", "X.js").getType("X");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"Super types:\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n" + 
-		"  <anonymous #1> [in <initializer #2> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"    Y2 [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"  <anonymous #1> [in field1 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"  <anonymous #1> [in field2 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"  <anonymous #1> [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"  <anonymous #1> [in <initializer #1> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"  <anonymous #2> [in field2 [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"  Y1 [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"    Y2 [in <initializer #1> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"  Y1 [in <initializer #1> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on a generic type can be opened
- */
-public void testGeneric01() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy15/src/X.js").getType("X");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: X [in X.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"  ArrayList [in ArrayList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"  List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"    AbstractList [in AbstractList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"    List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"      Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy
-	);
-}
-/*
- * Ensures that a hierarchy on a generic type can be opened
- */
-public void testGeneric02() throws JavaScriptModelException {
-	IType type = getPackageFragmentRoot("/TypeHierarchy15/lib15.jar").getPackageFragment("util").getClassFile("ArrayList.class").getType();
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: ArrayList [in ArrayList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"  AbstractList [in AbstractList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"  List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n" + 
-		"  X [in X.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"  Y [in Y.java [in <default> [in src [in TypeHierarchy15]]]]\n",
-		hierarchy
-	);
-}
-/*
- * Ensures that a hierarchy on a generic type can be opened
- */
-public void testGeneric03() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy15/src/Y.js").getType("Y");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Y [in Y.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"  ArrayList [in ArrayList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"  List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"    AbstractList [in AbstractList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"    List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"      Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy
-	);
-}
-/*
- * Ensures that a super type hierarchy on a generic type can be opened
- * (regression test for bug 72348 [1.5][Type Hierarchy] Super type hierarchy of class extending generic type is empty)
- */
-public void testGeneric04() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy15/src/X.js").getType("X");
-	ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: X [in X.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"  ArrayList [in ArrayList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"  List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"    AbstractList [in AbstractList.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"    List [in List.class [in util [in lib15.jar [in TypeHierarchy15]]]]\n" + 
-		"      Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy
-	);
-}
-/*
- * Ensures that a hierarchy on a generic interface can be opened
- * (regression test for bug 82004 [model][5.0] 3.1M4 type hierarchy for generic interface)
- */
-public void testGeneric05() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy15/src/I.js").getType("I");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: I [in I.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"Sub types:\n" + 
-		"  A [in A.java [in <default> [in src [in TypeHierarchy15]]]]\n",
-		hierarchy
-	);
-}
-/*
- * Ensure that the key of a binary type in a hierarchy is correct when this type is not part of the Java model cache.
- * (regression test for bug 93854 IAE in Util.scanTypeSignature when scanning a signature retrieved from a binding key)
- */
-public void testGeneric06() throws CoreException {
-	getJavaProject("TypeHierarcht15").close();
-	IType type = getClassFile("TypeHierarchy15","lib15.jar", "util", "AbstractList.class").getType();
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	IType[] subtypes = hierarchy.getSubtypes(type);
-	assertEquals("Unexpected key", "Lutil/Map<TK;TV;>;", subtypes.length < 2 ? null : subtypes[1].getKey());
-}
-/*
- * Ensures that a hierarchy on a generic type that is extended using a member as a type parameter can be opened
- * (regression test for bug 99606 Subtype not found if parameterized on inner class)
- */
-public void testGeneric07() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy15/src/Y99606.js").getType("Y99606");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Y99606 [in Y99606.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n" + 
-		"  X99606 [in X99606.java [in <default> [in src [in TypeHierarchy15]]]]\n",
-		hierarchy
-	);
-}
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=108740
-public void testGeneric08() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy15/src/D108740.js").getType("D108740");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: D108740 [in D108740.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"Super types:\n" + 
-		"  B108740 [in B108740.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"    A108740 [in A108740.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-		"      Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy
-	);
-}
-/*
- * Ensures that a hierarchy is where a type inherits conflicting paratemerized types is still correctly reported
- * (regression test for bug 136095 Type Hierarchy incomplete with illegally parameterized superinterfaces)
- */
-public void testGeneric09() throws CoreException {
-	try {
-		createFile(
-			"/TypeHierarchy15/src/I1_136095.js", 
-			"public interface I1_136095<E> {\n" + 
-			"}"
-		);
-		createFile(
-			"/TypeHierarchy15/src/I2_136095.js", 
-			"public interface I2_136095 extends I1_136095<String>{\n" + 
-			"}"
-		);
-		createFile(
-			"/TypeHierarchy15/src/X_136095.js", 
-			"public abstract class X_136095 implements I1_136095<Integer>, I2_136095 {\n" + 
-			"}"
-		);
-		IType type = getCompilationUnit("/TypeHierarchy15/src/X_136095.js").getType("X_136095");
-		ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-		assertHierarchyEquals(
-			"Focus: X_136095 [in X_136095.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-			"Super types:\n" + 
-			"  I1_136095 [in I1_136095.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-			"  I2_136095 [in I2_136095.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-			"    I1_136095 [in I1_136095.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-			"  Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-			"Sub types:\n",
-			hierarchy
-		);
-	} finally {
-		deleteFile("/TypeHierarchy15/src/I1_136095.js");
-		deleteFile("/TypeHierarchy15/src/I2_136095.js");
-		deleteFile("/TypeHierarchy15/src/X_136095.js");
-	}
-}
-/*
- * Ensures that a super type hierarchy is where the focus type implements a generic type with a qualified type parameter is correct
- * (regression test for bug 140340 [5.0][templates] foreach template does not work when an Iterable over a static inner class exists)
- */
-public void testGeneric10() throws CoreException {
-	try {
-		createFile(
-			"/TypeHierarchy15/src/Y_140340.js", 
-			"public class Y_140340 {\n" + 
-			"  public static class Z {\n" +
-			"  }\n" +
-			"}"
-		);
-		createFile(
-			"/TypeHierarchy15/src/X_140340.js", 
-			"public class X_140340 implements I1_140340<Y_140340.Z> {\n" + 
-			"}\n" +
-			"interface I1_140340<T> {\n" +
-			"}"
-		);
-		IType type = getCompilationUnit("/TypeHierarchy15/src/X_140340.js").getType("X_140340");
-		ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-		assertHierarchyEquals(
-			"Focus: X_140340 [in X_140340.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-			"Super types:\n" + 
-			"  I1_140340 [in X_140340.java [in <default> [in src [in TypeHierarchy15]]]]\n" + 
-			"  Object [in Object.class [in java.lang [in "+ getExternalJCLPathString("1.5") + "]]]\n" + 
-			"Sub types:\n",
-			hierarchy
-		);
-	} finally {
-		deleteFile("/TypeHierarchy15/src/Y_140340.js");
-		deleteFile("/TypeHierarchy15/src/X_140340.js");
-	}
-}
-/**
- * Ensures the correctness of all classes in a type hierarchy based on a region.
- */
-public void testGetAllClassesInRegion() {
-	IType[] types = this.typeHierarchy.getAllClasses();
-	assertTypesEqual(
-		"Unexpected all classes in hierarchy", 
-		"binary.Deep\n" +
-		"binary.X\n" +
-		"binary.Y\n" +
-		"binary.Y$Inner\n" +
-		"binary.Z\n" +
-		"java.lang.Object\n" +
-		"rich.A\n" +
-		"rich.B\n" +
-		"rich.C\n", 
-		types);
-}
-/**
- * Ensures that the correct subtypes of a type exist in the type 
- * hierarchy.
- */
-public void testGetAllSubtypes() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p1", "X.js").getType("X");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	IType[] types = hierarchy.getAllSubtypes(type);
-	this.assertTypesEqual(
-		"Unexpected sub types of X",
-		"p1.Deep\n" +
-		"p1.Y\n" +
-		"p1.Z\n",
-		types
-	);
-}
-/**
- * Ensures that the correct subtypes of a binary type
- * exit in the type hierarchy created on a region.
- */
-public void testGetAllSubtypesFromBinary() throws JavaScriptModelException {
-	IType type = getClassFile("TypeHierarchy", "lib.jar", "binary", "X.class").getType();
-	IRegion region = JavaScriptCore.newRegion();
-	region.add(type.getPackageFragment());
-	ITypeHierarchy hierarchy = type.getJavaScriptProject().newTypeHierarchy(type, region, null);
-	IType[] types = hierarchy.getAllSubtypes(type);
-	assertTypesEqual(
-		"Unexpected all subtypes of binary.X", 
-		"binary.Deep\n" +
-		"binary.Y\n" +
-		"binary.Y$Inner\n" +
-		"binary.Z\n", 
-		types);
-}
-
-/**
- * Ensures that the correct superclasses of a type exist in the type 
- * hierarchy.
- */
-public void testGetAllSuperclasses() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p1", "Z.js").getType("Z");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	IType[] types = hierarchy.getAllSuperclasses(type);
-	assertTypesEqual(
-		"Unexpected all super classes of Z", 
-		"java.lang.Object\n" + 
-		"p1.X\n" + 
-		"p1.Y\n",
-		types);
-}
-
-/**
- * Ensures that the correct superclasses of a binary type exist in the type  hierarchy.
- * (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=53095)
- */
-public void testGetAllSuperclassesFromBinary() throws JavaScriptModelException {
-	String fileName = "TypeHierarchy/lib53095/p53095/X53095.class";	//$NON-NLS-1$
-	IJavaScriptElement javaElement = JavaScriptCore.create(getFile(fileName));
-	assertNotNull("Problem to get class file \""+fileName+"\"", javaElement);
-	assertTrue("Invalid type for class file \""+fileName+"\"", javaElement instanceof IClassFile);
-	IType type = ((IClassFile) javaElement).getType();
-	ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null); // it works when we use newTypeHierarchy(null)
-	IType[] types = hierarchy.getAllSupertypes(type);
-	assertTypesEqual(
-		"Unexpected all super classes of X53095", 
-		"java.lang.RuntimeException\n" +
-		"java.lang.Exception\n" +
-		"java.lang.Throwable\n" +
-		"java.lang.Object\n",
-		types,
-		false);
-}
-
-/**
- * Ensures that the correct superclasses of a binary type exist in the type  hierarchy.
- * (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=54043)
- */
-public void testGetAllSuperclassesFromBinary2() throws JavaScriptModelException {
-	IClassFile cf = getClassFile("TypeHierarchy", "test54043.jar", "p54043", "X54043.class");
-	IType type = cf.getType();
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	IType[] types = hierarchy.getAllSupertypes(type);
-	assertTypesEqual(
-		"Unexpected all super classes of X54043", 
-		"java.lang.RuntimeException\n" +
-		"java.lang.Exception\n" +
-		"java.lang.Throwable\n" +
-		"java.lang.Object\n",
-		types,
-		false);
-}
-/**
- * Ensures that the correct supertypes of a type exist in the type 
- * hierarchy.
- */
-public void testGetAllSupertypes() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p1", "Z.js").getType("Z");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	IType[] types = hierarchy.getAllSupertypes(type);
-	assertTypesEqual(
-		"Unexpected all super types of Z", 
-		"java.lang.Object\n" + 
-		"p1.I1\n" + 
-		"p1.I2\n" + 
-		"p1.X\n" + 
-		"p1.Y\n",
-		types);
-}
-/**
- * Ensures that the correct supertypes of a type exist in the type 
- * hierarchy.
- * (regression test for bug 23644 hierarchy: getAllSuperTypes does not include all superinterfaces?)
- */
-public void testGetAllSupertypes2() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p3", "B.js").getType("B");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	IType[] types = hierarchy.getAllSupertypes(type);
-	assertTypesEqual(
-		"Unexpected all super types of B", 
-		"java.lang.Object\n" +
-		"p3.A\n" +
-		"p3.I\n" +
-		"p3.I1\n",
-		types);
-}
-/**
- * Ensures that the correct types exist in the type 
- * hierarchy.
- */
-public void testGetAllTypes() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p1", "Y.js").getType("Y");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	this.assertTypesEqual(
-		"Unexpected types in hierarchy of Y",
-		"java.lang.Object\n" + 
-		"p1.Deep\n" + 
-		"p1.I1\n" + 
-		"p1.I2\n" + 
-		"p1.X\n" + 
-		"p1.Y\n" + 
-		"p1.Z\n",
-		hierarchy.getAllTypes()
-	);
-}
-/**
- * Ensures that the flags for an interface hierarchy are correctly cached
- * (regression test for bug 60365 hierarchy view shows some interfaces as classes [type hierarchy])
- */
-public void testGetCachedFlags() throws JavaScriptModelException {
-	IType type1 = getClassFile("TypeHierarchy", "test60365.jar", "q4", "I1.class").getType();
-	ITypeHierarchy hierarchy = type1.newTypeHierarchy(null);
-	IType type2 = getClassFile("TypeHierarchy", "test60365.jar", "q4", "I2.class").getType();
-	int flags = hierarchy.getCachedFlags(type2);
-}
-/**
- * Ensures that the correct root classes exist in the type 
- * hierarchy.
- */
-public void testGetRootClasses() {
-	IType[] types = this.typeHierarchy.getRootClasses();
-	assertTypesEqual(
-		"Unexpected root classes",
-		"java.lang.Object\n",
-		types);
-}
-/**
- * Ensures that the correct number of subclasses exist in the type 
- * hierarchy created on a region.
- */
-public void testGetSubclasses() throws JavaScriptModelException {
-	IType type = getClassFile("TypeHierarchy", "lib.jar", "binary", "X.class").getType();
-	IType[] types = this.typeHierarchy.getSubclasses(type);
-	this.assertTypesEqual(
-		"Unexpected subclasses of binary.X",
-		"binary.Y\n",
-		types
-	);
-	
-	type = getClassFile("TypeHierarchy", "lib.jar", "binary", "I.class").getType();
-	types = this.typeHierarchy.getSubclasses(type);
-	this.assertTypesEqual(
-		"Unexpected subclasses of binary.I",
-		"", // interfaces cannot have a subclass
-		types
-	);
-}
-/**
- * Ensures that the correct number of subtypes exist in the type 
- * hierarchy created on a region.
- */
-public void testGetSubtypes() throws JavaScriptModelException {
-	IType type = getClassFile("TypeHierarchy", "lib.jar", "binary", "X.class").getType();
-	IType[] types = this.typeHierarchy.getSubtypes(type);
-	this.assertTypesEqual(
-		"Unexpected subtypes of binary.X",
-		"binary.Y\n",
-		types
-	);
-	
-	type = getClassFile("TypeHierarchy", "lib.jar", "binary", "I.class").getType();
-	types = this.typeHierarchy.getSubtypes(type);
-	this.assertTypesEqual(
-		"Unexpected subtypes of binary.I",
-		"binary.X\n" + 
-		"binary.Y$Inner\n",
-		types
-	);
-}
-
-/**
- * Ensures that the superclass is correct in the type 
- * hierarchy a type created on a region containing a package.
- */
-public void testGetSuperclassInRegion() throws JavaScriptModelException {
-	IRegion r = JavaScriptCore.newRegion();
-	IPackageFragment p = getPackageFragment("TypeHierarchy", "src", "p1");
-	r.add(p);
-	ITypeHierarchy hierarchy = p.getJavaScriptProject().newTypeHierarchy(r, null);
-
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p1", "Y.js").getType("Y");
-	IType superclass= hierarchy.getSuperclass(type);
-	assertEquals("Unexpected super class of Y", "X", superclass.getElementName());
-}
-/**
- * Ensures that the correct supertypes exist in the type 
- * hierarchy created on a region.
- */
-public void testGetSupertypesInRegion() throws JavaScriptModelException {
-	IType type = getClassFile("TypeHierarchy", "lib.jar", "binary", "Y.class").getType();
-	IType[] superTypes = this.typeHierarchy.getSupertypes(type);
-	assertTypesEqual(
-		"Unexpected super types of Y",
-		"binary.X\n",
-		superTypes);
-}
-/**
- * Ensures that the correct supertypes exist in the type 
- * hierarchy created on a region containing a project.
- */
-public void testGetSupertypesWithProjectRegion() throws JavaScriptModelException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchy");
-	IRegion region= JavaScriptCore.newRegion();
-	region.add(project);
-	IType type = getClassFile("TypeHierarchy", "lib.jar", "binary", "Y.class").getType();
-	ITypeHierarchy hierarchy = project.newTypeHierarchy(type, region, null);
-	IType[] superTypes = hierarchy.getSupertypes(type);
-	assertTypesEqual(
-		"Unexpected super types of Y",
-		"binary.X\n",
-		superTypes);
-}
-/**
- * Ensures that getType() returns the type the hierarchy was created for.
- */
-public void testGetType() throws JavaScriptModelException {
-	// hierarchy created on a type
-	IClassFile cf = getClassFile("TypeHierarchy", "lib.jar", "binary", "Y.class");
-	IType type = cf.getType();
-	ITypeHierarchy hierarchy = null;
-	try {
-		hierarchy = type.newSupertypeHierarchy(null);
-	} catch (IllegalArgumentException iae) {
-		assertTrue("IllegalArgumentException", false);
-	}
-	assertEquals("Unexpected focus type", type, hierarchy.getType());
-
-	// hierarchy created on a region
-	assertTrue("Unexpected focus type for hierarchy on region", this.typeHierarchy.getType() == null);
-}
-/*
- * Ensures that a hierarchy on an type that implements a binary inner interface is correct.
- * (regression test for bug 58440 type hierarchy incomplete when implementing fully qualified interface)
- */
-public void testImplementBinaryInnerInterface() throws JavaScriptModelException {
-	IClassFile cf = getClassFile("TypeHierarchy", "test58440.jar", "p58440", "Y.class");
-	IType type = cf.getType();
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Y [in Y.class [in p58440 [in test58440.jar [in TypeHierarchy]]]]\n" + 
-		"Super types:\n" + 
-		"  Inner [in X$Inner.class [in p58440 [in test58440.jar [in TypeHierarchy]]]]\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/**
- * Ensures that a hierarchy on an inner type is correctly rooted.
- */
-public void testInnerType1() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p5", "X.js").getType("X").getType("Inner");
-	ITypeHierarchy hierarchy = null;
-	try {
-		hierarchy = type.newTypeHierarchy(null);
-	} catch (IllegalArgumentException iae) {
-		assertTrue("IllegalArgumentException", false);
-	}
-	assertHierarchyEquals(
-		"Focus: Inner [in X [in X.java [in p5 [in src [in TypeHierarchy]]]]]\n" + 
-		"Super types:\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-
-
-/**
- * Ensures that a hierarchy on an inner type has the correct subtype.
- * (regression test for bug 43274 Type hierarchy broken)
- */
-public void testInnerType2() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p6", "A.js").getType("A").getType("Inner");
-	ITypeHierarchy hierarchy = null;
-	try {
-		hierarchy = type.newTypeHierarchy(null);
-	} catch (IllegalArgumentException iae) {
-		assertTrue("IllegalArgumentException", false);
-	}
-	assertHierarchyEquals(
-		"Focus: Inner [in A [in A.java [in p6 [in src [in TypeHierarchy]]]]]\n" + 
-		"Super types:\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n" + 
-		"  B [in A.java [in p6 [in src [in TypeHierarchy]]]]\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on a local type in an initializer is correct.
- */
-public void testLocalType1() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getInitializer(1).getType("Y1", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Y1 [in <initializer #1> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n" + 
-		"  Y2 [in <initializer #1> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on a local type in a second initializer is correct.
- */
-public void testLocalType2() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getInitializer(2).getType("Y3", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Y3 [in <initializer #2> [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensures that a hierarchy on a local type in a method declaration is correct.
- */
-public void testLocalType3() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getFunction("foo", new String[] {}).getType("Y2", 1);
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Y2 [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  Y1 [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"    X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"      Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensures that a super type hierarchy on a local type in a method declaration is correct.
- * (regression test for bug 44073 Override methods action does not work for local types [code manipulation])
- */
-public void testLocalType4() throws JavaScriptModelException {
-	IType typeA = getCompilationUnit("TypeHierarchy", "src", "p7", "A.js").getType("A");
-	IType type = typeA.getFunction("foo", new String[] {}).getType("Y1", 1);
-	ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Y1 [in foo() [in A [in A.java [in p7 [in src [in TypeHierarchy]]]]]]\n" + 
-		"Super types:\n" + 
-		"  X [in X.java [in p7 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/*
- * Ensures that a type hierarchy on a member type with subtypes in another project is correct
- * (regression test for bug 101019 RC3: Type Hierarchy does not find implementers/extenders of inner class/interface in other project)
- */
-public void testMemberTypeSubtypeDifferentProject() throws CoreException {
-	try {
-		createJavaProject("P1");
-		createFile(
-			"/P1/X.js",
-			"public class X {\n" +
-			"  public class Member {\n" +
-			"  }\n" +
-			"}"
-			);
-		createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		createFile(
-			"/P2/Y.js",
-			"public class Y extends X.Member {\n" +
-			"}"
-		);
-		IType focus = getCompilationUnit("/P1/X.js").getType("X").getType("Member");
-		ITypeHierarchy hierarchy = focus.newTypeHierarchy(null/*no progress*/);
-		assertHierarchyEquals(
-			"Focus: Member [in X [in X.java [in <default> [in <project root> [in P1]]]]]\n" + 
-			"Super types:\n" + 
-			"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"Sub types:\n" + 
-			"  Y [in Y.java [in <default> [in <project root> [in P2]]]]\n",
-			hierarchy);
-	} finally {
-		deleteProjects(new String[] {"P1", "P2"});
-	}
-}
-/**
- * Ensures that a hierarchy on a type that implements a missing interface is correctly rooted.
- * (regression test for bug 24691 Missing interface makes hierarchy incomplete)
- */
-public void testMissingInterface() throws JavaScriptModelException {
-	IType type = getCompilationUnit("TypeHierarchy", "src", "p4", "X.js").getType("X");
-	ITypeHierarchy hierarchy = null;
-	try {
-		hierarchy = type.newTypeHierarchy(null);
-	} catch (IllegalArgumentException iae) {
-		assertTrue("IllegalArgumentException", false);
-	}
-	assertHierarchyEquals(
-		"Focus: X [in X.java [in p4 [in src [in TypeHierarchy]]]]\n" + 
-		"Super types:\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy);
-}
-/**
- * Ensures that a potential subtype that is not in the classpth is handle correctly.
- * (Regression test for PR #1G4GL9R)
- */
-public void testPotentialSubtypeNotInClasspath() throws JavaScriptModelException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchy");
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchy", "src", "p1", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newTypeHierarchy(project, null);
-	IType[] types = h.getSubtypes(type);
-	this.assertTypesEqual(
-		"Unexpected sub types of X",
-		"p1.Y\n",
-		types
-	);
-}
-/*
- * Ensures that a type hierarchy on a region contains all subtypes
- * (regression test for bug 47743 Open type hiearchy problems [type hierarchy])
- */
-public void testRegion1() throws JavaScriptModelException {
-	IPackageFragment pkg = getPackageFragment("TypeHierarchy", "src", "q1");
-	IRegion region = JavaScriptCore.newRegion();
-	region.add(pkg);
-	ITypeHierarchy h = pkg.getJavaScriptProject().newTypeHierarchy(region, null);
-	assertTypesEqual(
-		"Unexpected types in hierarchy",
-		"java.lang.Object\n" + 
-		"q1.X\n" +
-		"q1.Z\n" +
-		"q2.Y\n",
-		h.getAllTypes()
-	);
-}
-/*
- * Ensures that a type hierarchy on a region contains all subtypes
- * (regression test for bug 47743 Open type hiearchy problems [type hierarchy])
- */
-public void testRegion2() throws JavaScriptModelException {
-	IPackageFragment pkg = getPackageFragment("TypeHierarchy", "src", "q2");
-	IRegion region = JavaScriptCore.newRegion();
-	region.add(pkg);
-	ITypeHierarchy h = pkg.getJavaScriptProject().newTypeHierarchy(region, null);
-	assertTypesEqual(
-		"Unexpected types in hierarchy",
-		"java.lang.Object\n" + 
-		"q1.X\n" +
-		"q2.Y\n",
-		h.getAllTypes()
-	);
-}
-/*
- * Ensures that a type hierarchy on a region contains anonymous/local types in this region
- * (regression test for bug 48395 Hierarchy on region misses local classes)
- */
-public void testRegion3() throws JavaScriptModelException {
-	IPackageFragment pkg = getPackageFragment("TypeHierarchy", "src", "p9");
-	IRegion region = JavaScriptCore.newRegion();
-	region.add(pkg);
-	ITypeHierarchy h = pkg.getJavaScriptProject().newTypeHierarchy(region, null);
-	assertTypesEqual(
-		"Unexpected types in hierarchy",
-		"java.lang.Object\n" + 
-		"p9.X\n" + 
-		"p9.X$1\n" + 
-		"p9.X$Y\n",
-		h.getAllTypes()
-	);
-}
-public void testRegion4() throws CoreException {
-	try {
-		IJavaScriptProject p1 = createJavaProject("P1");
-		IJavaScriptProject p2 = createJavaProject("P2", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		IJavaScriptProject p3 = createJavaProject("P3", new String[] {""}, new String[] {"JCL_LIB"}, new String[] {"/P1"});
-		createFile(
-			"/P1/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		createFile(
-			"/P2/Y.js",
-			"public class Y extends X X {\n" +
-			"}"
-		);
-		createFile(
-			"/P3/Z.js",
-			"public class Z extends X X {\n" +
-			"}"
-		);
-		IRegion region = JavaScriptCore.newRegion();
-		region.add(p1);
-		region.add(p2);
-		region.add(p3);
-		ITypeHierarchy hierarchy = JavaScriptCore.newTypeHierarchy(region, null, null);
-		assertHierarchyEquals(
-			"Focus: <NONE>\n" + 
-			"Sub types of root classes:\n" + 
-			"  Class [in Class.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"    Y [in Y.java [in <default> [in <project root> [in P2]]]]\n" + 
-			"    Z [in Z.java [in <default> [in <project root> [in P3]]]]\n" + 
-			"  String [in String.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"    Error [in Error.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"      CloneNotSupportedException [in CloneNotSupportedException.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"        IllegalMonitorStateException [in IllegalMonitorStateException.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"      InterruptedException [in InterruptedException.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"      RuntimeException [in RuntimeException.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"    Exception [in Exception.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"  Throwable [in Throwable.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"  X [in X.java [in <default> [in <project root> [in P1]]]]\n",
-			hierarchy);
-	} finally {
-		deleteProjects(new String[] {"P1", "P2", "P3"});
-	}
-}
-/**
- * @bug 150289: [hierarchy] NPE in hierarchy builder when region is empy
- * @test Ensure that no NPE is thrown when IRegion has no associated project
- * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=150289"
- */
-public void testRegion_Bug150289() throws JavaScriptModelException {
-	ITypeHierarchy h = this.currentProject.newTypeHierarchy(JavaScriptCore.newRegion(), null);
-	assertEquals("Unexpected number of types in hierarchy", 0, h.getAllTypes().length);
-}
-//https://bugs.eclipse.org/bugs/show_bug.cgi?id=144976
-public void testResilienceToMissingBinaries() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"}, new String[] {"JCL_LIB", "/TypeHierarchy/test144976.jar"});
-		createFolder("/P/src/tools/");
-		createFile(
-			"/P/src/tools/DisplayTestResult2.js",
-			"pakage tools;\n" +
-			"import servlet.*;\n" +
-			"public class DisplayTestResult2 extends TmrServlet2 {\n" +
-			"}"
-		);
-		createFolder("/P/src/servlet/");
-		createFile(
-				"/P/src/servlet/TmrServlet2.js",
-				"pakage servlet;\n" +
-				"public class TmrServlet2 extends TmrServlet {\n" +
-				"}"
-			);
-		createFile(
-				"/P/src/servlet/TmrServlet.js",
-				"pakage servlet;\n" +
-				"import gk.*;\n" +
-				"public class TmrServlet extends GKServlet {\n" +
-				"}"
-			);
-		IType type = getCompilationUnit("P", "src", "tools", "DisplayTestResult2.js").getType("DisplayTestResult2");		
-		ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-		assertNotNull(hierarchy.getSupertypes(type));
-		assertHierarchyEquals(
-				"Focus: DisplayTestResult2 [in DisplayTestResult2.java [in tools [in src [in P]]]]\n" + 
-				"Super types:\n" + 
-				"  TmrServlet2 [in TmrServlet2.java [in servlet [in src [in P]]]]\n" + 
-				"    TmrServlet [in TmrServlet.java [in servlet [in src [in P]]]]\n" + 
-				"      GKServlet [in GKServlet.class [in gk [in /TypeHierarchy/test144976.jar [in P]]]]\n" + 
-				"Sub types:\n",
-			hierarchy);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensures that the focus type is put as a non-resolved type
- * (regression test for bug 92357 ITypeHierarchy#getType() should return an unresolved handle)
- */
-public void testResolvedTypeAsFocus() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {""}, new String[] {"JCL15_LIB"}, "", "1.5");
-		String source =
-			"public class X {\n" +
-			"  Y<String> field;\n" +
-			"}\n" +
-			"class Y<E> {\n" +
-			"}";
-		createFile("/P/X.js", source);
-		int start = source.indexOf("Y");
-		int end = source.indexOf("<String>");
-		IJavaScriptElement[] elements = getCompilationUnit("/P/X.js").codeSelect(start, end-start);
-		IType focus = (IType) elements[0];
-		ITypeHierarchy hierarchy = focus.newTypeHierarchy(null);
-		assertElementsEqual(
-			"Unexpected focus type in hierarchy", 
-			"Y [in X.java [in <default> [in <project root> [in P]]]]",
-			new IJavaScriptElement[] {hierarchy.getType()},
-			true/*show resolved info*/);
-	} finally {
-		deleteProject("P");
-	}
-}
-/*
- * Ensure that the order of roots is taken into account when a type is present in multiple roots.
- * (regression test for bug 139555 [hierarchy] Opening a class from Type hierarchy will give the wrong one if source and compiled are in defined in project)
- */
-public void testRootOrder() throws CoreException, IOException {
-	try {
-		IJavaScriptProject project = createJavaProject("P", new String[] {"abc"}, new String[] {"JCL_LIB"});
-		createFolder("/P/abc/p");
-		createFile(
-			"/P/abc/p/X.js", 
-			"package p;\n"+ 
-			"public class X {}"
-		);
-		createFile(
-			"/P/abc/p/Y.js", 
-			"package p;\n"+ 
-			"public class Y extends X {}"
-		);
-		addLibrary(project, "lib.jar", "libsrc.zip", new String[] {
-			"p/X.js", 
-			"package p;\n"+ 
-			"public class X {}",
-			"p/Y.js", 
-			"package p;\n"+ 
-			"public class Y extends X {}"
-		}, "1.4");
-		IType type = getCompilationUnit("/P/abc/p/X.js").getType("X");
-		ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-		assertHierarchyEquals(
-			"Focus: X [in X.java [in p [in abc [in P]]]]\n" + 
-			"Super types:\n" + 
-			"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-			"Sub types:\n" + 
-			"  Y [in Y.java [in p [in abc [in P]]]]\n",
-			hierarchy);
-	} finally {
-		deleteProject("P");
-	}
-}
-/**
- * Ensures that the superclass can be retrieved for a source type's unqualified superclass.
- */
-public void testSourceTypeGetSuperclass() throws JavaScriptModelException {
-	//unqualified superclass in a source type
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchy", "src", "p1", "Y.js");
-	IType type = cu.getType("Y");
-	ITypeHierarchy h = type.newSupertypeHierarchy(null);
-	IType superclass = h.getSuperclass(type);
-	assertTrue("Superclass not found for Y", superclass != null);
-	assertEquals("Unexpected super class for Y", "X", superclass.getElementName());
-}
-/**
- * Ensures that the superclass can be retrieved for a source type's superclass when no superclass is specified
- * in the source type.
- */
-public void testSourceTypeGetSuperclass2() throws JavaScriptModelException {
-	//no superclass specified for a source type
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchy", "src", "p1", "X.js");
-	IType type = cu.getType("X");
-	ITypeHierarchy h = type.newSupertypeHierarchy(null);
-	IType superclass = h.getSuperclass(type);
-	assertTrue("Superclass not found for X", superclass != null);
-	assertEquals("Unexpected super class for X", "Object", superclass.getElementName());
-}
-/**
- * Ensures that the superclass can be retrieved for a source type's superclass.
- * This type hierarchy is relatively deep.
- */
-public void testSourceTypeGetSuperclass3() throws JavaScriptModelException {
-	//no superclass specified for a source type
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchy", "src", "p1", "Deep.js");
-	IType type = cu.getType("Deep");
-	ITypeHierarchy h = type.newSupertypeHierarchy(null);
-	IType superclass = h.getSuperclass(type);
-	assertTrue("Superclass not found for Deep", superclass != null);
-	assertEquals("Unexpected super class for Deep", "Z", superclass.getElementName());
-}
-/**
- * Ensures that the superclass can be retrieved when it is defined
- * in the same compilation unit.
- */
-public void testSourceTypeGetSuperclass4() throws JavaScriptModelException {
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchy", "src", "p1", "A.js");
-	IType type = cu.getType("A");
-	ITypeHierarchy h = type.newSupertypeHierarchy(null);
-	IType superclass = h.getSuperclass(type);
-	assertTrue("Superclass not found for A", superclass != null);
-	assertEquals("Unexpected super class for A", "B", superclass.getElementName());
-}
-
-/**
- * Ensures that no subclasses exist in a super type hierarchy for the focus type.
- */
-public void testSupertypeHierarchyGetSubclasses() throws JavaScriptModelException {
-	IType type = getClassFile("TypeHierarchy", getSystemJsPathString(), "java.lang", "Object.class").getType();
-	ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-	IType[] types = hierarchy.getSubclasses(type);
-	assertTypesEqual(
-		"Unexpected subclasses of Object", 
-		"", 
-		types);
-	
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchy", "src", "p1", "Y.js");
-	type = cu.getType("Y");
-	hierarchy = type.newSupertypeHierarchy(null);
-	types = hierarchy.getSubclasses(type);
-	assertTypesEqual(
-		"Unexpected subclasses of Y", 
-		"", 
-		types);
-}
-/**
- * Ensures that no subtypes exist in a super type hierarchy for the focus type.
- */
-public void testSupertypeHierarchyGetSubtypes() throws JavaScriptModelException {
-	IType type = getClassFile("TypeHierarchy", getSystemJsPathString(), "java.lang", "Object.class").getType();
-	ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-	IType[] types = hierarchy.getSubtypes(type);
-	assertTypesEqual(
-		"Unexpected subtypes of Object", 
-		"", 
-		types);
-	
-	IJavaScriptUnit cu = getCompilationUnit("TypeHierarchy", "src", "p1", "Y.js");
-	type = cu.getType("Y");
-	hierarchy = type.newSupertypeHierarchy(null);
-	types = hierarchy.getSubtypes(type);
-	assertTypesEqual(
-		"Unexpected subtypes of Y", 
-		"", 
-		types);
-}
-/**
- * Ensures that a super type hierarchy can be created on a working copy.
- * (regression test for bug 3446 type hierarchy: incorrect behavior wrt working copies (1GLDHOA))
- */
-public void testSupertypeHierarchyOnWorkingCopy() throws JavaScriptModelException {
-	IJavaScriptUnit cu = this.getCompilationUnit("TypeHierarchy", "src", "wc", "X.js");
-	IJavaScriptUnit workingCopy = null;
-	try {
-		workingCopy = cu.getWorkingCopy(null);
-		workingCopy.createType(
-			"class B{\n" +
-			"	void m(){\n" +
-			"	}\n" +
-			"	void f(){\n" +
-			"		m();\n" +
-			"	}\n" +
-			"}\n",
-			null,
-			true,
-			null);
-		workingCopy.createType(
-			"class A extends B{\n" +
-			"	void m(){\n" +
-			"	}\n" +
-			"}",
-			null,
-			true,
-			null);
-		IType typeA = workingCopy.getType("A");
-		ITypeHierarchy hierarchy = typeA.newSupertypeHierarchy(null);
-		IType typeB = workingCopy.getType("B");
-		assertTrue("hierarchy should contain B", hierarchy.contains(typeB));
-	} finally {
-		if (workingCopy != null) {
-			workingCopy.discardWorkingCopy();
-		}
-	}
-}
-/*
- * Ensures that creating a hierarchy on a project with classpath problem doesn't throw a NPE
- * (regression test for bug 49809  NPE from MethodVerifier)
- */
-public void testSuperTypeHierarchyWithMissingBinary() throws JavaScriptModelException {
-	IJavaScriptProject project = getJavaProject("TypeHierarchy");
-	IIncludePathEntry[] originalClasspath = project.getRawIncludepath();
-	try {
-		int length = originalClasspath.length;
-		IIncludePathEntry[] newClasspath = new IIncludePathEntry[length+1];
-		System.arraycopy(originalClasspath, 0, newClasspath, 0, length);
-		newClasspath[length] = JavaScriptCore.newLibraryEntry(new Path("/TypeHierarchy/test49809.jar"), null, null);
-		project.setRawIncludepath(newClasspath, null);
-		IJavaScriptUnit cu = getCompilationUnit("/TypeHierarchy/src/q3/Z.js");
-		IType type = cu.getType("Z");
-		ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
-		assertHierarchyEquals(
-				"Focus: Z [in Z.java [in q3 [in src [in TypeHierarchy]]]]\n" + 
-				"Super types:\n" + 
-				"  Y49809 [in Y49809.class [in p49809 [in test49809.jar [in TypeHierarchy]]]]\n" + 
-				"Sub types:\n",
-			hierarchy
-		);
-	} finally {
-		project.setRawIncludepath(originalClasspath, null);
-	}
-}
-/*
- * Ensures that a hierarchy where the super type is not visible can still be constructed.
- */
-public void testVisibility1() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy/src/q6/Y.js").getType("Y");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Y [in Y.java [in q6 [in src [in TypeHierarchy]]]]\n" + 
-		"Super types:\n" + 
-		"  NonVisibleClass [in X.java [in q5 [in src [in TypeHierarchy]]]]\n" + 
-		"    Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy
-	);
-}
-/*
- * Ensures that a hierarchy where the super interface is not visible can still be constructed.
- */
-public void testVisibility2() throws JavaScriptModelException {
-	IType type = getCompilationUnit("/TypeHierarchy/src/q6/Z.js").getType("Z");
-	ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-	assertHierarchyEquals(
-		"Focus: Z [in Z.java [in q6 [in src [in TypeHierarchy]]]]\n" + 
-		"Super types:\n" + 
-		"  NonVisibleInterface [in X.java [in q5 [in src [in TypeHierarchy]]]]\n" + 
-		"  Object [in Object.class [in java.lang [in "+ getSystemJsPathString() + "]]]\n" + 
-		"Sub types:\n",
-		hierarchy
-	);
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeResolveTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeResolveTests.java
deleted file mode 100644
index 065eee6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/TypeResolveTests.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-
-import junit.framework.Test;
-
-public class TypeResolveTests extends ModifyingResourceTests {
-	IJavaScriptUnit cu;
-public TypeResolveTests(String name) {
-	super(name);
-}
-private IType getType(IType[] types, String sourceTypeName) throws JavaScriptModelException {
-	for (int i = 0; i < types.length; i++) {
-		IType sourceType = types[i];
-		if (sourceType.getTypeQualifiedName().equals(sourceTypeName)) {
-			return sourceType;
-		} else if ((sourceType = getType(sourceType.getTypes(), sourceTypeName)) != null) {
-			return sourceType;
-		}
-	}
-	return null;
-}
-private IType getType(String sourceTypeName) throws JavaScriptModelException {
-	return getType(this.cu.getTypes(), sourceTypeName);
-}
-private String[][] resolveType(String typeName, String sourceTypeName) throws JavaScriptModelException {
-	IType sourceType = this.getType(sourceTypeName);
-	assertTrue("Type " + sourceTypeName + " was not found", sourceType != null);
-	return sourceType.resolveType(typeName);
-}
-private String resultToString(String[][] result) {
-	StringBuffer toString = new StringBuffer();
-	if(result != null) {
-		for (int i = 0; i < result.length; i++) {
-			String[] qualifiedName = result[i];
-			String packageName = qualifiedName[0];
-			if (packageName.length() > 0) {
-				toString.append(packageName);
-				toString.append(".");
-			}
-			toString.append(qualifiedName[1]);
-			if (i < result.length-1) {
-				toString.append("\n");
-			}
-		}
-	}
-	return toString.toString();
-}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests#setUpSuite()
- */
-public void setUpSuite() throws Exception {
-	super.setUpSuite();
-	this.setUpJavaProject("TypeResolve");
-	this.cu = this.getCompilationUnit("TypeResolve", "src", "p", "TypeResolve.js");
-}
-	static {
-//		TESTS_NUMBERS = new int[] { 182, 183 };
-//		TESTS_NAMES = new String[] {"test0177"};
-	}
-	public static Test suite() {
-		return buildModelTestSuite(TypeResolveTests.class);
-	}
-/* (non-Javadoc)
- * @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#tearDownSuite()
- */
-public void tearDownSuite() throws Exception {
-	this.deleteProject("TypeResolve");
-	super.tearDownSuite();
-}
-/**
- * Resolve the type "B" within one of the secondary types.
- * (regression test for bug 23829 IType::resolveType incorrectly returns null)
- */
-public void testResolveInSecondaryType() throws JavaScriptModelException {
-	IType type = this.getCompilationUnit("/TypeResolve/src/p3/B.js").getType("Test");
-	String[][] types = type.resolveType("B");
-	assertEquals(
-		"Unexpected result", 
-		"p3.B",
-		this.resultToString(types));	
-}
-/**
- * Resolve the type "B" within one of its inner classes.
- */
-public void testResolveMemberTypeInInner() throws JavaScriptModelException {
-	String[][] types = this.resolveType("B", "TypeResolve$A$B$D");
-	assertEquals(
-		"Unexpected result", 
-		"p.TypeResolve.A.B",
-		this.resultToString(types));	
-}
-/*
- * Resolve a parameterized type
- * (regression test for bug 94903 Error setting method breakpoint in 1.5 project)
- */
-public void testResolveParameterizedType() throws CoreException {
-	try {
-		createJavaProject("P", new String[] {"src"}, new String[] {"JCL15_LIB"}, "bin", "1.5");
-		createFile(
-			"/P/src/X.js",
-			"public class X<T> {\n" +
-			"  X<String> field;\n" +
-			"}"
-		);
-		IType type = getCompilationUnit("/P/src/X.js").getType("X");
-		String[][] types = type.resolveType("X<String>");
-		assertEquals(
-			"Unexpected result", 
-			"X",
-			this.resultToString(types));	
-	} finally {
-		deleteProject("P");
-	}
-}
-/**
- * Resolve the type "C" within one of its sibling classes.
- */
-public void testResolveSiblingTypeInInner() throws JavaScriptModelException {
-	String[][] types = this.resolveType("C", "TypeResolve$A$B");
-	assertEquals(
-		"Unexpected result", 
-		"p.TypeResolve.A.C",
-		this.resultToString(types));	
-}
-/**
- * Resolve the type "X" with a type import for it
- * within an inner class
- */
-public void testResolveTypeInInner() throws JavaScriptModelException {
-	String[][] types = this.resolveType("X", "TypeResolve$A");
-	assertEquals(
-		"Unexpected result", 
-		"p1.X",
-		this.resultToString(types));	
-}
-/**
- * Resolve the type "Object" within a local class.
- * (regression test for bug 48350 IType#resolveType(String) fails on local types)
- */
-public void testResolveTypeInInner2() throws JavaScriptModelException {
-	IType type = this.getCompilationUnit("/TypeResolve/src/p5/A.js").getType("A").getFunction("foo", new String[] {}).getType("Local", 1);
-	
-	String[][] types = type.resolveType("Object");
-	assertEquals(
-		"Unexpected result", 
-		"java.lang.Object",
-		this.resultToString(types));		
-}
-/**
- * Resolve the type "String".
- */
-public void testResolveTypeInJavaLang() throws JavaScriptModelException {
-	String[][] types = this.resolveType("String", "TypeResolve");
-	assertEquals(
-		"Unexpected result", 
-		"java.lang.String",
-		this.resultToString(types));	
-}
-/**
- * Resolve the type "Vector" with no imports.
- */
-public void testResolveTypeWithNoImports() throws JavaScriptModelException {
-	String[][] types = this.resolveType("Vector", "TypeResolve");
-	assertEquals(
-		"Unexpected result", 
-		"",
-		this.resultToString(types));	
-}
-/**
- * Resolve the type "Y" with an on-demand import.
- */
-public void testResolveTypeWithOnDemandImport() throws JavaScriptModelException {
-	String[][] types = this.resolveType("Y", "TypeResolve");
-	assertEquals(
-		"Unexpected result", 
-		"p2.Y",
-		this.resultToString(types));	
-}
-/**
- * Resolve the type "X" with a type import for it.
- */
-public void testResolveTypeWithTypeImport() throws JavaScriptModelException {
-	String[][] types = this.resolveType("X", "TypeResolve");
-	assertEquals(
-		"Unexpected result", 
-		"p1.X",
-		this.resultToString(types));	
-}
-/**
- * Resolve the type "String".
- */
-public void testResolveString() throws JavaScriptModelException {
-	String[][] types = this.resolveType("String", "TypeResolve");
-	assertEquals(
-		"Unexpected result", 
-		"java.lang.String",
-		this.resultToString(types));	
-}
-/**
- * Resolve the type "A.Inner".
- */
-public void testResolveInnerType1() throws JavaScriptModelException {
-	IType type = this.getCompilationUnit("/TypeResolve/src/p4/B.js").getType("B");
-	String[][] types = type.resolveType("A.Inner");
-	assertEquals(
-		"Unexpected result", 
-		"p4.A.Inner",
-		this.resultToString(types));		
-}
-/**
- * Resolve the type "p4.A.Inner".
- */
-public void testResolveInnerType2() throws JavaScriptModelException {
-	IType type = this.getCompilationUnit("/TypeResolve/src/p4/B.js").getType("B");
-	String[][] types = type.resolveType("p4.A.Inner");
-	assertEquals(
-		"Unexpected result", 
-		"p4.A.Inner",
-		this.resultToString(types));		
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/VariablesInitializer.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/VariablesInitializer.java
deleted file mode 100644
index 58b5f92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/VariablesInitializer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.jsdt.core.JsGlobalScopeVariableInitializer;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-
-public class VariablesInitializer extends JsGlobalScopeVariableInitializer {
-
-	public static ITestInitializer initializer;
-	
-	public static interface ITestInitializer {
-		public void initialize(String variable) throws JavaScriptModelException;
-	}
-	
-	public static void reset() {
-		initializer = null;
-		String[] varNames = JavaScriptCore.getIncludepathVariableNames();
-		try {
-			JavaScriptCore.setIncludepathVariables(varNames, new IPath[varNames.length], null);
-		} catch (JavaScriptModelException e) {
-			e.printStackTrace();
-		}
-	}
-
-	public static void setInitializer(ITestInitializer initializer) {
-		VariablesInitializer.initializer = initializer;
-	}
-	
-	public void initialize(String variable) {
-		if (initializer == null) return;
-		try {
-			initializer.initialize(variable);
-		} catch (JavaScriptModelException e) {
-			e.printStackTrace();
-		}
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyNotInClasspathTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyNotInClasspathTests.java
deleted file mode 100644
index c69671d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyNotInClasspathTests.java
+++ /dev/null
@@ -1,468 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.IBuffer;
-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.internal.core.util.Util;
-
-public class WorkingCopyNotInClasspathTests extends ModifyingResourceTests {
-
-	private IJavaScriptUnit workingCopy;
-
-public WorkingCopyNotInClasspathTests(String name) {
-	super(name);
-}
-
-public static Test suite() {
-	return buildModelTestSuite(WorkingCopyNotInClasspathTests.class);
-}
-
-public void setUp() throws Exception {
-	super.setUp();
-	try {
-		this.createJavaProject("P", new String[] {"src"});
-		this.createFolder("P/txt");
-		IFile file = this.createFile("P/txt/X.js",
-			"public class X {\n" +
-			"}");
-		IJavaScriptUnit cu = (IJavaScriptUnit)JavaScriptCore.create(file);	
-		this.workingCopy = cu.getWorkingCopy(null);
-	} catch (CoreException e) {
-		e.printStackTrace();
-	}
-}
-
-public void tearDown() throws Exception {
-	try {
-		if (this.workingCopy != null) {
-			this.workingCopy.discardWorkingCopy();
-			this.workingCopy = null;
-		}
-		this.deleteProject("P");
-	} catch (CoreException e) {
-		e.printStackTrace();
-	}
-	super.tearDown();
-}
-
-public void testCommitWorkingCopy1() throws CoreException {
-	IJavaScriptUnit primary = this.workingCopy.getPrimary();
-	assertTrue("Primary element should not be null", primary != null);
-
-	IBuffer workingCopyBuffer = this.workingCopy.getBuffer();
-	assertTrue("Working copy buffer should not be null", workingCopyBuffer != null);
-
-	String newContents = 
-		"public class X {\n" +
-		"  public void foo() {\n" +
-		"  }\n" +
-		"}";
-	workingCopyBuffer.setContents(newContents);
-	this.workingCopy.commitWorkingCopy(false, null);
-	
-	IFile originalFile = (IFile)primary.getResource();
-	assertSourceEquals(
-		"Unexpected contents", 
-		newContents, 
-		new String(Util.getResourceContentsAsCharArray(originalFile)));
-}
-/*
- * Ensures that commiting a non-primary working copy that is inside a folder that is excluded doesn't throw a JavaScriptModelException
- * (regression test for bug 52355 Not present exception trying to create a class in excluded package)
- */
-public void testCommitWorkingCopy2() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		createJavaProject( "P2", new String[] {"src"}, null, null, null, "bin", null, null, new String[][] {new String[] {"p1/"}}, "1.4");
-		createFolder("/P2/src/p1/p2");
-		createFile("/P2/src/p1/p2/X.js", "");
-		copy = getCompilationUnit("P2", "src", "p1.p2", "X.js").getWorkingCopy(null);
-		copy.getBuffer().setContents("public class X {}");
-		copy.makeConsistent(null);
-		copy.commitWorkingCopy(false, null);
-	} finally {
-		if (copy != null) {
-			copy.discardWorkingCopy();
-		}
-		deleteProject("P2");
-	}
-}
-/*
- * Ensure that a working copy outside the classpath does not exist 
- * (but can still be opened).
- */
-public void testExistence()  {
-	assertTrue("Working copy should exist", this.workingCopy.exists());
-}
-public void testGetSource() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createJavaProject("P1", new String[] {});
-		this.createFolder("/P1/src/junit/test");
-		String source = 
-			"package junit.test;\n" +
-			"public class X {\n" +
-			"}";
-		IFile file = this.createFile("/P1/src/junit/test/X.js", source);
-		IJavaScriptUnit cu = JavaScriptCore.createCompilationUnitFrom(file);
-		copy = cu.getWorkingCopy(null);
-		assertEquals(
-			"Unexpected source",
-			source,
-			copy.getSource());
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-		this.deleteProject("P1");
-	}
-}
-public void testParentExistence() {
-	assertTrue("Working copy's parent should not exist", !this.workingCopy.getParent().exists());
-}
-/*
- * Ensures that a working copy created on a non-existing project can be reconciled.
- * (regression test for bug 40322 Error creating new Java projects)
- */
-public void testReconcileNonExistingProject() throws CoreException {
-	IJavaScriptUnit wc = null;
-	try {
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IFile file = root.getProject("NonExisting").getFile("A.js");
-		wc = JavaScriptCore.createCompilationUnitFrom(file).getWorkingCopy(null);
-		wc.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	} finally {
-		if (wc != null) {
-			wc.discardWorkingCopy();
-		}
-	}
-}
-/*
- * Ensures that a working copy created in a simple project can be reconciled.
- * (regression test for bug 55421 Cannot save a .java file in a non-java project anymore)
- */
-public void testReconcileSimpleProject() throws CoreException {
-	IJavaScriptUnit wc = null;
-	try {
-	    IProject project = createProject("SimpleProject");
-		IFile file = project.getFile("A.js");
-		wc = JavaScriptCore.createCompilationUnitFrom(file);
-		ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-		wc.becomeWorkingCopy(null);
-		wc.getBuffer().setContents("public class A {}");
-		wc.reconcile(IJavaScriptUnit.NO_AST, true/*force problem detection*/, null, null);
-	} finally {
-		if (wc != null) {
-			wc.discardWorkingCopy();
-		}
-		deleteProject("SimpleProject");
-	}
-}
-/*
- * Ensures that a working copy created in a simple project can be reconciled when it is already
- * consistent but force problem detection is on.
- * (regression test for bug 104486 newNotPresentException when reconciling CU in a non-java project)
- */
-public void testReconcileSimpleProject2() throws CoreException {
-	IJavaScriptUnit wc = null;
-	try {
-	    IProject project = createProject("SimpleProject");
-		IFile file = project.getFile("A.js");
-		wc = JavaScriptCore.createCompilationUnitFrom(file);
-		ReconcilerTests.ProblemRequestor pbRequestor = new ReconcilerTests.ProblemRequestor();
-		wc.becomeWorkingCopy(null);
-		wc.reconcile(IJavaScriptUnit.NO_AST, true/*force problem detection*/, null, null);
-	} finally {
-		if (wc != null) {
-			wc.discardWorkingCopy();
-		}
-		deleteProject("SimpleProject");
-	}
-}
-/*
- * Ensure that a working copy created on a .java file in a simple project can be opened.
- * (regression test for bug 33748 Cannot open working copy on .java file in simple project)
- */
-public void testSimpleProject() throws CoreException {
-	IParent copy = null;
-	try {
-		createProject("SimpleProject");
-		IFile file = createFile(
-			"/SimpleProject/X.js",
-			"public class X {\n" +
-			"}"
-		);
-		IJavaScriptUnit cu = JavaScriptCore.createCompilationUnitFrom(file);
-		copy = cu.getWorkingCopy(null);
-		try {
-			copy.getChildren();
-		} catch (JavaScriptModelException e) {
-			assertTrue("Should not get JavaScriptModelException", false);
-		}
-	} finally {
-		if (copy != null) {
-			((IJavaScriptUnit)copy).discardWorkingCopy();
-		}
-		deleteProject("SimpleProject");
-	}
-}
-
-/*
- * Ensure that a primary cu (which is outside the classpath) does not exist.
- */
-public void testPrimaryExistence() {
-	IJavaScriptUnit primary = this.workingCopy.getPrimary();
-	assertTrue(
-		"Primary compilation unit should not exist", 
-		!primary.exists());
-}
-public void testPrimaryParentExistence() {
-	assertTrue(
-		"Primary compilation unit's parent should not exist", 
-		!this.workingCopy.getPrimary().getParent().exists());
-}
-public void testIsOpen() {
-	assertTrue("Working copy should be open", this.workingCopy.isOpen());
-}
-/*
- * Ensure that a primary cu (which is outside the classpath) is not opened.
- */
-public void testPrimaryIsOpen() {
-	IJavaScriptUnit original = this.workingCopy.getPrimary();
-	assertTrue(
-		"Primary compilation should not be opened", 
-		!original.isOpen());
-}
-// 31799 - asking project options on non-Java project populates the perProjectInfo cache incorrectly
-public void testIsOnClasspath() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createProject("SimpleProject");
-		this.createFolder("/SimpleProject/src/junit/test");
-		String source = 
-			"package junit.test;\n" +
-			"public class X {\n" +
-			"}";
-		IFile file = this.createFile("/SimpleProject/src/junit/test/X.js", source);
-		IJavaScriptUnit cu = JavaScriptCore.createCompilationUnitFrom(file);
-		copy = cu.getWorkingCopy(null);
-		
-		// working creation will cause it to open, and thus request project options
-		boolean isOnClasspath = copy.getJavaScriptProject().isOnIncludepath(copy);
-		assertTrue("working copy shouldn't answer to isOnClasspath", !isOnClasspath);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-		this.deleteProject("SimpleProject");
-	}
-}
-
-// 42281
-public void testReconcileAndCommit1() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createJavaProject("JavaProject", new String[] {"src"});
-		this.createFolder("/JavaProject/src/native.1");
-		String source = 
-			"class X {}";
-		IFile file = this.createFile("/JavaProject/src/native.1/X.js", source);
-		IJavaScriptUnit cu = JavaScriptCore.createCompilationUnitFrom(file);
-		copy = cu.getWorkingCopy(null);
-		
-		IBuffer workingCopyBuffer = copy.getBuffer();
-		assertTrue("Working copy buffer should not be null", workingCopyBuffer != null);
-		String newContents = 
-			"public class X {\n" +
-			"  public void foo() {\n" +
-			"  }\n" +
-			"}";
-			
-		workingCopyBuffer.setContents(newContents);
-		copy.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-		copy.commitWorkingCopy(true, null);
-		
-		IFile originalFile = (IFile)cu.getResource();
-		assertSourceEquals(
-			"Unexpected contents", 
-			newContents, 
-			new String(Util.getResourceContentsAsCharArray(originalFile)));
-	} catch(JavaScriptModelException e) {
-		e.printStackTrace();		
-		assertTrue("No exception should have occurred: "+ e.getMessage(), false);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-		this.deleteProject("JavaProject");
-	}
-}
-
-// 41583
-public void testReconcileAndCommit2() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createProject("SimpleProject");
-		this.createFolder("/SimpleProject/src/native.1");
-		String source = 
-			"class X {}";
-		IFile file = this.createFile("/SimpleProject/src/native.1/X.js", source);
-		IJavaScriptUnit cu = JavaScriptCore.createCompilationUnitFrom(file);
-		copy = cu.getWorkingCopy(null);
-		
-		IBuffer workingCopyBuffer = copy.getBuffer();
-		assertTrue("Working copy buffer should not be null", workingCopyBuffer != null);
-		String newContents = 
-			"public class X {\n" +
-			"  public void foo() {\n" +
-			"  }\n" +
-			"}";
-			
-		workingCopyBuffer.setContents(newContents);
-		copy.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-		copy.commitWorkingCopy(true, null);
-		IFile originalFile = (IFile)cu.getResource();
-		assertSourceEquals(
-			"Unexpected contents", 
-			newContents, 
-			new String(Util.getResourceContentsAsCharArray(originalFile)));
-
-		assertTrue("buffer should not have been saved successfully", workingCopyBuffer.hasUnsavedChanges());
-	} catch(JavaScriptModelException e) {
-		e.printStackTrace();		
-		assertTrue("No exception should have occurred: "+ e.getMessage(), false);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-		this.deleteProject("SimpleProject");
-	}
-}
-// 43879 - variation on 41583 (using primary working copy)
-public void testReconcileAndCommit3() throws CoreException {
-	IJavaScriptUnit primary = null;
-	try {
-		this.createProject("SimpleProject");
-		this.createFolder("/SimpleProject/src/native.1");
-		String source = 
-			"class X {}";
-		IFile file = this.createFile("/SimpleProject/src/native.1/X.js", source);
-		primary = JavaScriptCore.createCompilationUnitFrom(file);
-		primary.becomeWorkingCopy(null);
-		
-		IBuffer workingCopyBuffer = primary.getBuffer();
-		assertTrue("Working copy buffer should not be null", workingCopyBuffer != null);
-		String newContents = 
-			"public class X {\n" +
-			"  public void foo() {\n" +
-			"  }\n" +
-			"}";
-			
-		workingCopyBuffer.setContents(newContents);
-		primary.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-		primary.commitWorkingCopy(true, null);
-		IFile originalFile = (IFile)primary.getResource();
-		assertSourceEquals(
-			"Unexpected contents", 
-			newContents, 
-			new String(Util.getResourceContentsAsCharArray(originalFile)));
-
-		assertTrue("buffer should have been saved successfully", !workingCopyBuffer.hasUnsavedChanges());
-	} catch(JavaScriptModelException e) {
-		e.printStackTrace();		
-		assertTrue("No exception should have occurred: "+ e.getMessage(), false);
-	} finally {
-		if (primary != null) primary.discardWorkingCopy();
-		this.deleteProject("SimpleProject");
-	}
-}
-// 44580 - invalid unit name
-public void testReconcileAndCommit4() throws CoreException {
-	IJavaScriptUnit primary = null;
-	try {
-		this.createProject("SimpleProject");
-		this.createFolder("/SimpleProject/src/native.1");
-		String source = 
-			"class X {}";
-		IFile file = this.createFile("/SimpleProject/src/native.1/some invalid name.js", source);
-		primary = JavaScriptCore.createCompilationUnitFrom(file);
-		primary.becomeWorkingCopy(null);
-		
-		IBuffer workingCopyBuffer = primary.getBuffer();
-		assertTrue("Working copy buffer should not be null", workingCopyBuffer != null);
-		String newContents = 
-			"public class X {\n" +
-			"  public void foo() {\n" +
-			"  }\n" +
-			"}";
-			
-		workingCopyBuffer.setContents(newContents);
-		primary.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-		primary.commitWorkingCopy(true, null);
-		IFile originalFile = (IFile)primary.getResource();
-		assertSourceEquals(
-			"Unexpected contents", 
-			newContents, 
-			new String(Util.getResourceContentsAsCharArray(originalFile)));
-
-		assertTrue("buffer should have been saved successfully", !workingCopyBuffer.hasUnsavedChanges());
-	} catch(JavaScriptModelException e) {
-		e.printStackTrace();		
-		assertTrue("No exception should have occurred: "+ e.getMessage(), false);
-	} finally {
-		if (primary != null) primary.discardWorkingCopy();
-		this.deleteProject("SimpleProject");
-	}
-}
-
-// 44580 - invalid unit name
-public void testReconcileAndCommit5() throws CoreException {
-	IJavaScriptUnit copy = null;
-	try {
-		this.createJavaProject("JavaProject", new String[] {"src"});
-		this.createFolder("/JavaProject/src/p");
-		String source = 
-			"package p; \n" +
-			"public class X {}";
-		IFile file = this.createFile("/JavaProject/src/invalid unit name.js", source);
-		IJavaScriptUnit cu = JavaScriptCore.createCompilationUnitFrom(file);
-		copy = cu.getWorkingCopy(null);
-		
-		IBuffer workingCopyBuffer = copy.getBuffer();
-		assertTrue("Working copy buffer should not be null", workingCopyBuffer != null);
-		String newContents = 
-			"public class X {\n" +
-			"  public void foo() {\n" +
-			"  }\n" +
-			"}";
-			
-		workingCopyBuffer.setContents(newContents);
-		copy.reconcile(IJavaScriptUnit.NO_AST, true, null, null);
-		copy.commitWorkingCopy(true, null);
-		
-		IFile originalFile = (IFile)cu.getResource();
-		assertSourceEquals(
-			"Unexpected contents", 
-			newContents, 
-			new String(Util.getResourceContentsAsCharArray(originalFile)));
-	} catch(JavaScriptModelException e) {
-		e.printStackTrace();		
-		assertTrue("No exception should have occurred: "+ e.getMessage(), false);
-	} finally {
-		if (copy != null) copy.discardWorkingCopy();
-		this.deleteProject("JavaProject");
-	}
-}
-}
-
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyOwnerTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyOwnerTests.java
deleted file mode 100644
index 8c1b5d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyOwnerTests.java
+++ /dev/null
@@ -1,1331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.jsdt.core.*;
-import org.eclipse.wst.jsdt.core.dom.*;
-import org.eclipse.wst.jsdt.core.search.*;
-import org.eclipse.wst.jsdt.internal.core.ExternalJavaProject;
-import org.eclipse.wst.jsdt.internal.core.util.Util;
-
-import junit.framework.Test;
-
-/**
- * Tests APIs that take a WorkingCopyOwner.
- */
-public class WorkingCopyOwnerTests extends ModifyingResourceTests {
-	
-	IJavaScriptUnit workingCopy = null;
-
-	public class TestWorkingCopyOwner extends WorkingCopyOwner {
-		
-		public String toString() {
-			return "Test working copy owner";
-		}
-	}
-	
-	public static Test suite() {
-		return buildModelTestSuite(WorkingCopyOwnerTests.class);
-	}
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-		// Names of tests to run: can be "testBugXXXX" or "BugXXXX")
-//		TESTS_NAMES = new String[] { "testNewWorkingCopy03" };
-		// Numbers of tests to run: "test<number>" will be run for each number of this array
-//		TESTS_NUMBERS = new int[] { 2, 12 };
-		// Range numbers of tests to run: all tests between "test<first>" and "test<last>" will be run for { first, last }
-//		TESTS_RANGE = new int[] { 16, -1 };
-	}
-
-	public WorkingCopyOwnerTests(String name) {
-		super(name);
-	}
-
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		
-		createJavaProject("P");
-		createFile(
-			"P/X.js",
-			"public class X {\n" +
-			"}"
-		);
-	}
-	
-	public void tearDownSuite() throws Exception {
-		deleteProject("P");
-		
-		super.tearDownSuite();
-	}
-
-	protected void tearDown() throws Exception {
-		if (this.workingCopy != null) {
-			this.workingCopy.discardWorkingCopy();
-			this.workingCopy = null;
-		}
-		super.tearDown();
-	}
-	
-	protected void assertTypeBindingsEqual(String message, String expected, ITypeBinding[] types) {
-		StringBuffer buffer = new StringBuffer();
-		if (types == null) {
-			buffer.append("<null>");
-		} else {
-			for (int i = 0, length = types.length; i < length; i++){
-				buffer.append(types[i].getQualifiedName());
-				if (i != length-1) {
-					buffer.append("\n");
-				}
-			}
-		}
-		if (!expected.equals(buffer.toString())) {
-			System.out.println(org.eclipse.wst.jsdt.core.tests.util.Util.displayString(buffer.toString(), 2));
-		}
-		assertEquals(
-			message,
-			expected,
-			buffer.toString()
-		);
-	}
-	
-	/*
-	 * Tests that a primary compilation unit can become a working copy.
-	 */
-	public void testBecomeWorkingCopy1() throws CoreException {
-		this.workingCopy = getCompilationUnit("P/X.js");
-		assertTrue("should not be in working copy mode", !this.workingCopy.isWorkingCopy());
-		
-		this.workingCopy.becomeWorkingCopy(null);
-		assertTrue("should be in working copy mode", this.workingCopy.isWorkingCopy());
-	}
-	
-	/*
-	 * Tests that a working copy remains a working copy when becomeWorkingCopy() is called.
-	 */
-	public void testBecomeWorkingCopy2() throws CoreException {
-		this.workingCopy = getCompilationUnit("P/X.js").getWorkingCopy(new TestWorkingCopyOwner(), null);
-		assertTrue("should be in working copy mode", this.workingCopy.isWorkingCopy());
-		
-		this.workingCopy.becomeWorkingCopy(null);
-		assertTrue("should still be in working copy mode", this.workingCopy.isWorkingCopy());
-	}
-	
-	/*
-	 * Tests that a primary compilation unit is added from to its parent after it becomes a working copy and 
-	 * there is no underlying resource.
-	 */
-	public void testBecomeWorkingCopy3() throws CoreException {
-		this.workingCopy = getCompilationUnit("P/Y.js");
-
-		this.workingCopy.becomeWorkingCopy(null);
-		assertSortedElementsEqual(
-			"Unexpected children of default package",
-			"X.java [in <default> [in <project root> [in P]]]\n" +
-			"[Working copy] Y.java [in <default> [in <project root> [in P]]]",
-			getPackage("/P").getChildren());
-	}
-	
-	/*
-	 * Ensure an OperationCanceledException is correcly thrown when progress monitor is canceled
-	 */
-	public void testBecomeWorkingCopy4() throws CoreException {
-		this.workingCopy = getCompilationUnit("P/X.js");
-
-		// count the number of time isCanceled() is called when converting this source unit
-		CancelCounter counter = new CancelCounter();
-		this.workingCopy.becomeWorkingCopy(counter);
-		this.workingCopy.discardWorkingCopy();
-
-		// throw an OperatonCanceledException at each point isCanceled() is called
-		for (int i = 0; i < counter.count; i++) {
-			boolean gotException = false;
-			try {
-				this.workingCopy.becomeWorkingCopy(new Canceler(i));
-			} catch (OperationCanceledException e) {
-				gotException = true;
-			}
-			assertTrue("Should get an OperationCanceledException (" + i + ")", gotException);
-			this.workingCopy.discardWorkingCopy();
-		}
-		
-		// last should not throw an OperationCanceledException
-		this.workingCopy.becomeWorkingCopy(new Canceler(counter.count));
-	}
-	
-	/*
-	 * Tests that a primary working copy can be commited.
-	 */
-	public void testCommitPrimaryWorkingCopy() throws CoreException {
-		try {
-			IFile file = createFile(
-				"P/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			this.workingCopy.becomeWorkingCopy(null);
-			String newContents = 
-				"public class Y {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}";
-			this.workingCopy.getBuffer().setContents(newContents);
-			this.workingCopy.commitWorkingCopy(false, null);
-			assertSourceEquals(
-				"Unexpected source",
-				newContents,
-				new String(Util.getResourceContentsAsCharArray(file)));
-		} finally {
-			deleteFile("P/Y.js");
-		}
-	}
-	
-	/*
-	 * Ensures that no delta is issued when a primary working copy that is consistent is commited.
-	 * (regression test for bug 40782 Primary working copies: unnecessary deltas on save)
-	 */
-	public void testDeltaCommitPrimaryWorkingCopy1() throws CoreException {
-		try {
-			createFile(
-				"P/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			this.workingCopy.becomeWorkingCopy(null);
-			this.workingCopy.getBuffer().setContents(
-				"public class Y {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}"
-			);
-			this.workingCopy.makeConsistent(null);
-			
-			startDeltas();
-			this.workingCopy.commitWorkingCopy(false, null);
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			[Working copy] Y.java[*]: {PRIMARY RESOURCE}"
-			);
-		} finally {
-			stopDeltas();
-			deleteFile("P/Y.js");
-		}
-	}
-
-	/*
-	 * Ensures that the correct delta is issued when a primary working copy that is not consistent is commited.
-	 */
-	public void testDeltaCommitPrimaryWorkingCopy2() throws CoreException {
-		try {
-			createFile(
-				"P/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			this.workingCopy.becomeWorkingCopy(null);
-			this.workingCopy.getBuffer().setContents(
-				"public class Y {\n" +
-				"  void foo() {\n" +
-				"  }\n" +
-				"}"
-			);
-			
-			startDeltas();
-			this.workingCopy.commitWorkingCopy(false, null);
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			[Working copy] Y.java[*]: {CHILDREN | FINE GRAINED | PRIMARY RESOURCE}\n" + 
-				"				Y[*]: {CHILDREN | FINE GRAINED}\n" + 
-				"					foo()[+]: {}"
-			);
-		} finally {
-			stopDeltas();
-			deleteFile("P/Y.js");
-		}
-	}
-
-	/*
-	 * Ensures that the correct delta is issued when a non-primary working copy is created.
-	 */
-	public void testDeltaCreateNonPrimaryWorkingCopy() throws CoreException {
-		try {
-			createFile(
-				"P/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("P/Y.js");
-			startDeltas();
-			this.workingCopy = cu.getWorkingCopy(null);
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			[Working copy] Y.java[+]: {}"
-			);
-		} finally {
-			stopDeltas();
-			deleteFile("P/Y.js");
-		}
-		
-	}
-
-	/*
-	 * Ensures that the correct delta is issued when a primary compilation unit becomes a working copy.
-	 */
-	public void testDeltaBecomeWorkingCopy1() throws CoreException {
-		try {
-			createFile(
-				"P/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			startDeltas();
-			this.workingCopy.becomeWorkingCopy(null);
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			[Working copy] Y.java[*]: {PRIMARY WORKING COPY}"
-			);
-		} finally {
-			stopDeltas();
-			deleteFile("P/Y.js");
-		}
-		
-	}
-
-	/*
-	 * Ensures that an ADDED delta is issued when a primary compilation unit becomes a working copy
-	 * and this compilation unit doesn't exist on disk.
-	 * (regression test for bug 44085 becomeWorkingCopy() should add the working copy in the model)
-	 */
-	public void testDeltaBecomeWorkingCopy2() throws CoreException {
-		try {
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			startDeltas();
-			this.workingCopy.becomeWorkingCopy(null);
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			[Working copy] Y.java[+]: {PRIMARY WORKING COPY}"
-			);
-		} finally {
-			stopDeltas();
-		}
-		
-	}
-
-	/*
-	 * Ensures that the correct delta is issued when a non-primary working copy is discarded.
-	 */
-	public void testDeltaDiscardNonPrimaryWorkingCopy() throws CoreException {
-		try {
-			createFile(
-				"P/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			IJavaScriptUnit cu = getCompilationUnit("P/Y.js");
-			this.workingCopy = cu.getWorkingCopy(null);
-
-			startDeltas();
-			this.workingCopy.discardWorkingCopy();
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			[Working copy] Y.java[-]: {}"
-			);
-		} finally {
-			stopDeltas();
-			deleteFile("P/Y.js");
-		}
-		
-	}
-
-	/*
-	 * Ensures that the correct delta is issued when a primary working copy becomes a compilation unit.
-	 */
-	public void testDeltaDiscardPrimaryWorkingCopy1() throws CoreException {
-		try {
-			createFile(
-				"P/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			this.workingCopy.becomeWorkingCopy(null);
-
-			startDeltas();
-			this.workingCopy.discardWorkingCopy();
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			Y.java[*]: {PRIMARY WORKING COPY}"
-			);
-		} finally {
-			stopDeltas();
-			deleteFile("P/Y.js");
-		}
-		
-	}
-
-	/*
-	 * Ensures that the correct delta is issued when a primary working copy that contained a change
-	 * becomes a compilation unit.
-	 * (regression test for bug 40779 Primary working copies: no deltas on destroy)
-
-	 */
-	public void testDeltaDiscardPrimaryWorkingCopy2() throws CoreException {
-		try {
-			createFile(
-				"P/Y.js",
-				"public class Y {\n" +
-				"}"
-			);
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			this.workingCopy.becomeWorkingCopy(null);
-			this.workingCopy.getType("Y").createField("int x;", null, false, null);
-
-			startDeltas();
-			this.workingCopy.discardWorkingCopy();
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			Y.java[*]: {CHILDREN | FINE GRAINED | PRIMARY WORKING COPY}\n" + 
-				"				Y[*]: {CHILDREN | FINE GRAINED}\n" + 
-				"					x[-]: {}"
-			);
-		} finally {
-			stopDeltas();
-			deleteFile("P/Y.js");
-		}
-	}
-
-	/*
-	 * Ensures that a REMOVED delta is issued when a primary working copy becomes a compilation unit
-	 * and this compilation unit doesn't exist on disk.
-	 * (regression test for bug 44084 No refresh when deleting edited unit)
-	 */
-	public void testDeltaDiscardPrimaryWorkingCopy3() throws CoreException {
-		try {
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			this.workingCopy.becomeWorkingCopy(null);
-
-			startDeltas();
-			this.workingCopy.discardWorkingCopy();
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			Y.java[-]: {PRIMARY WORKING COPY}"
-			);
-		} finally {
-			stopDeltas();
-		}
-	}
-
-	/*
-	 * Ensures that a CONTENT delta is issued when a primary working copy becomes a compilation unit
-	 * with unsaved changes.
-	 * (regression test for bug 146012 No F_CONTENT flag on delta when reverting to old annotations)
-	 */
-	public void testDeltaDiscardPrimaryWorkingCopy4() throws CoreException {
-		try {
-			this.workingCopy = getCompilationUnit("P/X.js");
-			this.workingCopy.becomeWorkingCopy(null);
-
-			this.workingCopy.getBuffer().setContents("/*annotation*/public class X {}");
-			startDeltas();
-			this.workingCopy.discardWorkingCopy();
-			assertDeltas(
-				"Unexpected delta",
-				"P[*]: {CHILDREN}\n" + 
-				"	<project root>[*]: {CHILDREN}\n" + 
-				"		<default>[*]: {CHILDREN}\n" + 
-				"			X.java[*]: {CONTENT | FINE GRAINED | PRIMARY WORKING COPY}"
-			);
-		} finally {
-			stopDeltas();
-		}
-	}
-
-	/*
-	 * Tests that a primary working copy is back in compilation unit mode when discardWorkingCopy() is called.
-	 */
-	public void testDiscardWorkingCopy1() throws CoreException {
-		IJavaScriptUnit cu = null;
-		try {
-			cu = getCompilationUnit("P/X.js");
-			cu.becomeWorkingCopy(null);
-			assertTrue("should be in working copy mode", cu.isWorkingCopy());
-			
-			cu.discardWorkingCopy();
-			assertTrue("should no longer be in working copy mode", !cu.isWorkingCopy());
-		} finally {
-			if (cu != null) {
-				cu.discardWorkingCopy();
-			}
-		}
-	}
-
-	/*
-	 * Tests that the same number of calls to discardWorkingCopy() is needed for primary working copy to be back 
-	 * in compilation uint mode.
-	 */
-	public void testDiscardWorkingCopy2() throws CoreException {
-		IJavaScriptUnit cu = null;
-		try {
-			cu = getCompilationUnit("P/X.js");
-			cu.becomeWorkingCopy(null);
-			cu.becomeWorkingCopy(null);
-			cu.becomeWorkingCopy(null);
-			assertTrue("should be in working copy mode", cu.isWorkingCopy());
-			
-			cu.discardWorkingCopy();
-			assertTrue("should still be in working copy mode", cu.isWorkingCopy());
-
-			cu.discardWorkingCopy();
-			cu.discardWorkingCopy();
-			assertTrue("should no longer be in working copy mode", !cu.isWorkingCopy());
-		} finally {
-			if (cu != null) {
-				int max = 3;
-				while (cu.isWorkingCopy() && max-- > 0) {
-					cu.discardWorkingCopy();
-				}
-			}
-		}
-	}
-
-	/*
-	 * Tests that the same number of calls to discardWorkingCopy() is needed for non-primary working copy 
-	 * to be discarded.
-	 */
-	public void testDiscardWorkingCopy3() throws CoreException {
-		try {
-			IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-			TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-			this.workingCopy = cu.getWorkingCopy(owner, null);
-			this.workingCopy = cu.getWorkingCopy(owner, null);
-			this.workingCopy = cu.getWorkingCopy(owner, null);
-			assertTrue("should be in working copy mode", this.workingCopy.isWorkingCopy());
-			assertTrue("should be opened", this.workingCopy.isOpen());
-			assertTrue("should exist", this.workingCopy.exists());
-			
-			this.workingCopy.discardWorkingCopy();
-			assertTrue("should still be in working copy mode (1)", this.workingCopy.isWorkingCopy());
-			assertTrue("should still be opened", this.workingCopy.isOpen());
-			assertTrue("should still exist", this.workingCopy.exists());
-
-			this.workingCopy.discardWorkingCopy();
-			this.workingCopy.discardWorkingCopy();
-			assertTrue("should still be in working copy mode (2)", this.workingCopy.isWorkingCopy());
-			assertTrue("should no longer be opened", !this.workingCopy.isOpen());
-			assertTrue("should no longer exist", !this.workingCopy.exists());
-						
-		} finally {
-			if (this.workingCopy != null) {
-				int max = 3;
-				while (this.workingCopy.isWorkingCopy() && max-- > 0) {
-					this.workingCopy.discardWorkingCopy();
-				}
-			}
-		}
-	}
-
-	/*
-	 * Tests that a non-primary working copy that is discarded cannot be reopened.
-	 */
-	public void testDiscardWorkingCopy4() throws CoreException {
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-		this.workingCopy = cu.getWorkingCopy(owner, null);
-
-		boolean gotException = false;
-		try {
-			this.workingCopy.getAllTypes();
-		} catch (JavaScriptModelException e) {
-			gotException = true;
-		}
-		assertTrue("should not get a JavaScriptModelException before discarding working copy", !gotException);
-
-		this.workingCopy.discardWorkingCopy();
-		
-		gotException = false;
-		try {
-			this.workingCopy.getAllTypes();
-		} catch (JavaScriptModelException e) {
-			gotException = true;
-		}
-		assertTrue("should get a JavaScriptModelException after discarding working copy", gotException);
-	}
-	
-	/*
-	 * Tests that a primary working copy  is removed from its parent after it is discarded and 
-	 * there is no underlying resource.
-	 */
-	public void testDiscardWorkingCopy5() throws CoreException {
-		IJavaScriptUnit cu = null;
-		try {
-			cu = getCompilationUnit("P/Y.js");
-			cu.becomeWorkingCopy(null);
-			
-			cu.discardWorkingCopy();
-			assertElementsEqual(
-				"Unexpected children of default package",
-				"X.java [in <default> [in <project root> [in P]]]",
-				getPackage("/P").getChildren());
-		} finally {
-			if (cu != null) {
-				cu.discardWorkingCopy();
-			}
-		}
-	}
-
-	/*
-	 * Ensures that getCorrespondingResource() returns a non-null value for a primary working copy.
-	 * (regression test for bug 44065 NPE during hot code replace)
-	 */
-	public void testGetCorrespondingResource() throws CoreException {
-		IJavaScriptUnit cu = null;
-		try {
-			cu = getCompilationUnit("P/X.js");
-			cu.becomeWorkingCopy(null);
-			assertResourceNamesEqual(
-				"Unexpected resource",
-				"X.js",
-				new Object[] {cu.getCorrespondingResource()});
-		} finally {
-			if (cu != null) {
-				cu.discardWorkingCopy();
-			}
-		}
-	}
-
-	/*
-	 * Ensures that getOwner() returns the correct owner for a non-primary working copy.
-	 */
-	public void testGetOwner1() throws CoreException {
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-		this.workingCopy = cu.getWorkingCopy(owner, null);
-
-		assertEquals("Unexpected owner", owner, this.workingCopy.getOwner());
-	}
-
-	/*
-	 * Ensures that getOwner() returns null for a primary compilation unit.
-	 */
-	public void testGetOwner2()  {
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		assertEquals("Unexpected owner", null, cu.getOwner());
-	}
-
-	/*
-	 * Ensures that getPrimary() on a non-primary working copy returns the primary compilation unit.
-	 */
-	public void testGetPrimary1() throws CoreException {
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-		this.workingCopy = cu.getWorkingCopy(owner, null);
-
-		assertEquals("Unexpected compilation unit", cu, this.workingCopy.getPrimary());
-	}
-	
-	/*
-	 * Ensures that getPrimary() on a primary working copy returns the same handle.
-	 */
-	public void testGetPrimary2() throws CoreException {
-		this.workingCopy = getCompilationUnit("P/X.js");
-		this.workingCopy.becomeWorkingCopy(null);
-
-		assertEquals("Unexpected compilation unit", this.workingCopy, this.workingCopy.getPrimary());
-	}
-
-	/*
-	 * Ensures that getPrimaryElement() on an element of a non-primary working copy returns 
-	 * an element ofthe primary compilation unit.
-	 */
-	public void testGetPrimaryElement1() throws CoreException {
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-		this.workingCopy = cu.getWorkingCopy(owner, null);
-		IJavaScriptElement element = this.workingCopy.getType("X");
-
-		assertEquals("Unexpected element", cu.getType("X"), element.getPrimaryElement());
-	}
-	
-	/*
-	 * Ensures that getPrimaryElement() on an element of primary working copy returns the same handle.
-	 */
-	public void testGetPrimaryElement2() throws CoreException {
-		this.workingCopy = getCompilationUnit("P/X.js");
-		this.workingCopy.becomeWorkingCopy(null);
-		IJavaScriptElement element = this.workingCopy.getType("X");
-
-		assertEquals("Unexpected element", element, element.getPrimaryElement());
-	}
-
-	/*
-	 * Ensures that getPrimaryElement() on an package fragment returns the same handle.
-	 */
-	public void testGetPrimaryElement3()  {
-		IPackageFragment pkg = getPackage("P");
-		assertEquals("Unexpected element", pkg, pkg.getPrimaryElement());
-	}
-	
-	/*
-	 * Ensures that getPrimaryElement() on an initializer of a .class file returns the same handle.
-	 */
-	public void testGetPrimaryElement4() throws JavaScriptModelException {
-		IInitializer initializer = getClassFile("P/X.class").getType().getInitializer(1);
-		assertEquals("Unexpected element", initializer, initializer.getPrimaryElement());
-	}
-	
-	/*
-	 * Ensures that the correct working copies are returned by JavaScriptCore.getWorkingCopies(WorkingCopyOwner)
-	 */
-	public void testGetWorkingCopies() throws CoreException {
-		IJavaScriptUnit workingCopy11 = null;
-		IJavaScriptUnit workingCopy12 = null;
-		IJavaScriptUnit workingCopy21 = null;
-		try {
-			// initialiy no working copies for this owner
-			TestWorkingCopyOwner owner1 = new TestWorkingCopyOwner();
-			assertSortedElementsEqual(
-				"Unexpected working copies (1)",
-				"",
-				JavaScriptCore.getWorkingCopies(owner1)
-			);
-			
-			// create working copy on existing cu
-			IJavaScriptUnit cu1 = getCompilationUnit("P/X.js");
-			workingCopy11 = cu1.getWorkingCopy(owner1, null);
-			assertSortedElementsEqual(
-				"Unexpected working copies (2)",
-				"[Working copy] X.java [in <default> [in <project root> [in P]]]",
-				JavaScriptCore.getWorkingCopies(owner1)
-			);
-			
-			// create working copy on non-existing cu
-			IJavaScriptUnit cu2 = getCompilationUnit("P/Y.js");
-			workingCopy12 = cu2.getWorkingCopy(owner1, null);
-			assertSortedElementsEqual(
-				"Unexpected working copies (3)",
-				"[Working copy] X.java [in <default> [in <project root> [in P]]]\n" +
-				"[Working copy] Y.java [in <default> [in <project root> [in P]]]",
-				JavaScriptCore.getWorkingCopies(owner1)
-			);
-
-			// create working copy for another owner
-			TestWorkingCopyOwner owner2 = new TestWorkingCopyOwner();
-			workingCopy21 = cu1.getWorkingCopy(owner2, null);
-			
-			// owner2 should have the new working copy
-			assertSortedElementsEqual(
-				"Unexpected working copies (4)",
-				"[Working copy] X.java [in <default> [in <project root> [in P]]]",
-				JavaScriptCore.getWorkingCopies(owner2)
-			);
-			
-			// owner1 should still have the same working copies
-			assertSortedElementsEqual(
-				"Unexpected working copies (5)",
-				"[Working copy] X.java [in <default> [in <project root> [in P]]]\n" +
-				"[Working copy] Y.java [in <default> [in <project root> [in P]]]",
-				JavaScriptCore.getWorkingCopies(owner1)
-			);
-			
-			// discard first working copy
-			workingCopy11.discardWorkingCopy();
-			assertSortedElementsEqual(
-				"Unexpected working copies (6)",
-				"[Working copy] Y.java [in <default> [in <project root> [in P]]]",
-				JavaScriptCore.getWorkingCopies(owner1)
-			);
-		} finally {
-			if (workingCopy11 != null) {
-				workingCopy11.discardWorkingCopy();
-			}
-			if (workingCopy12 != null) {
-				workingCopy12.discardWorkingCopy();
-			}
-			if (workingCopy21 != null) {
-				workingCopy21.discardWorkingCopy();
-			}
-		}
-	}
-
-	/*
-	 * Ensures that getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)
-	 * returns the same working copy if called twice with the same working copy owner.
-	 */
-	public void testGetWorkingCopy1() throws CoreException {
-		try {
-			IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-			TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-			this.workingCopy = cu.getWorkingCopy(owner, null);
-
-			assertEquals("Unexpected working copy", this.workingCopy, cu.getWorkingCopy(owner, null));
-		} finally {
-			if (this.workingCopy != null) {
-				int max = 2;
-				while (this.workingCopy.isWorkingCopy() && max-- > 0) {
-					this.workingCopy.discardWorkingCopy();
-				}
-			}
-		}
-	}
-	
-	/*
-	 * Ensures that getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)
-	 * returns a different working copy if called twice with a different working copy owner.
-	 */
-	public void testGetWorkingCopy2() throws CoreException {
-		IJavaScriptUnit workingCopy1 = null;
-		IJavaScriptUnit workingCopy2 = null;
-		try {
-			IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-			TestWorkingCopyOwner owner1 = new TestWorkingCopyOwner();
-			workingCopy1 = cu.getWorkingCopy(owner1, null);
-			TestWorkingCopyOwner owner2 = new TestWorkingCopyOwner();
-			workingCopy2 = cu.getWorkingCopy(owner2, null);
-
-			assertTrue("working copies should be different", !workingCopy1.equals(workingCopy2));
-		} finally {
-			if (workingCopy1 != null) {
-				workingCopy1.discardWorkingCopy();
-			}
-			if (workingCopy2 != null) {
-				workingCopy2.discardWorkingCopy();
-			}
-		}
-	}
-	
-	/*
-	 * Ensure that the hierarchy using a working copy owner doesn't have primary working copy owner type
-	 * that are hidden by a type of the working copy owner
-	 * (regression test for bug 133372 [hierarchy] Type hierarchy returns type twice if executed on working copy layer)
-	 */
-	public void testHierarchy() throws CoreException {
-		try {
-			createFile(
-				"/P/Y.js",
-				"public class Y extends X {\n" +
-				"}"
-			);
-			WorkingCopyOwner owner = new TestWorkingCopyOwner();
-			this.workingCopy = getCompilationUnit("/P/Y.js").getWorkingCopy(owner, null/*no progress*/);
-			IType focus = getCompilationUnit("/P/X.js").getType("X");
-			ITypeHierarchy hierarchy = focus.newTypeHierarchy(owner, null/*no progress*/);
-			IType[] subtypes = hierarchy.getSubtypes(focus);
-			assertTypesEqual(
-				"Unexpected types", 
-				"Y\n",
-				subtypes);
-		} finally {
-			deleteFile("/P/Y.js");
-		}
-	}
-	
-	/*
-	 * Ensures that moving a primary working copy from one package to another removes that 
-	 * working copy from the original package.
-	 * (regression test for bug 43847 IPackageFragment not updated after CUs have moved)
-	 */
-	public void testMoveWorkingCopy() throws CoreException {
-		try {
-			createFolder("/P/p1");
-			createFile(
-				"/P/p1/Y.js",
-				"package p1;\n" +
-				"public class Y {\n" +
-				"}"
-			);
-			createFolder("/P/p2");
-			this.workingCopy = getCompilationUnit("P/p1/Y.js");
-			this.workingCopy.becomeWorkingCopy(null);
-			
-			// ensure the package is open
-			getPackage("/P/p1").open(null);
-			
-			this.workingCopy.move(getPackage("/P/p2"), null, null, false, null);
-			assertElementDescendants(
-				"Unexpected content of /P/p1",
-				"p1",
-				getPackage("/P/p1"));
-		} finally {
-			deleteFolder("P/p1");
-			deleteFolder("P/p2");
-		}
-	}
-
-	/*
-	 * Ensures that creating a new working copy with no resource works.
-	 */
-	public void testNewWorkingCopy01() throws JavaScriptModelException {
-		this.workingCopy =  newExternalWorkingCopy(
-			"X.js",
-			"public class X {\n" +
-			"}"
-		);
-		assertTrue("Working copy should exist", this.workingCopy.exists());
-	}
-
-	/*
-	 * Ensures that the children of a new working copy with no resource are correct.
-	 */
-	public void testNewWorkingCopy02() throws CoreException {
-		this.workingCopy =  newExternalWorkingCopy(
-			"X.js",
-			"public class X {\n" +
-			"}"
-		);
-		assertElementDescendants(
-			"Unexpected children",
-			"[Working copy] X.java\n" + 
-			"  class X",
-			this.workingCopy);
-	}
-
-	/*
-	 * Ensures that the path of a new working copy with no resource is correct.
-	 */
-	public void testNewWorkingCopy03() throws CoreException {
-		this.workingCopy =  newExternalWorkingCopy(
-			"X.js",
-			"public class X {\n" +
-			"}"
-		);
-		assertEquals("Unexpected path", "/" + ExternalJavaProject.EXTERNAL_PROJECT_NAME + "/X.js", this.workingCopy.getPath().toString());
-	}
-
-	/*
-	 * Ensures that the resource of a new working copy does not exist.
-	 */
-	public void testNewWorkingCopy04() throws CoreException {
-		this.workingCopy =  newExternalWorkingCopy(
-			"X.js",
-			"public class X {\n" +
-			"}"
-		);
-		assertFalse("Unexpected resource", this.workingCopy.getResource().exists());
-	}
-
-	/*
-	 * Ensures that a new working copy with no resource can be reconciled and that the delta is correct.
-	 */
-	public void testNewWorkingCopy05() throws CoreException {
-		this.workingCopy =  newExternalWorkingCopy(
-			"X.js",
-			"public class X {\n" +
-			"}"
-		);
-		this.workingCopy.getBuffer().setContents(
-			"public class X {\n" +
-			"  int field;\n" +
-			"}"
-		);
-		try {
-			startDeltas();
-			this.workingCopy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-			assertDeltas(
-				"Unexpected delta",
-				"X[*]: {CHILDREN | FINE GRAINED}\n" + 
-				"	field[+]: {}"
-			);
-		} finally {
-			stopDeltas();
-		}
-	}
-
-	/*
-	 * Ensures that a new working copy with no resource can be reconciled and that the resulting AST is correct.
-	 */
-	public void testNewWorkingCopy06() throws CoreException {
-		this.workingCopy =  newExternalWorkingCopy(
-			"X.js",
-			"public class X {\n" +
-			"}"
-		);
-		this.workingCopy.getBuffer().setContents(
-			"public class X {\n" +
-			"  int field;\n" +
-			"}"
-		);
-		JavaScriptUnit ast = this.workingCopy.reconcile(AST.JLS3, false, null, null);
-		assertASTNodeEquals(
-			"Unexpected AST",
-			"public class X {\n" + 
-			"  int field;\n" + 
-			"}\n",
-			ast);
-	}
-
-	/*
-	 * Ensures that no bindings are created when reconciling a new working copy with no resource.
-	 */
-	public void testNewWorkingCopy07() throws CoreException {
-		this.workingCopy =  newExternalWorkingCopy(
-			"X.js",
-			"public class X {\n" +
-			"}"
-		);
-		this.workingCopy.getBuffer().setContents(
-			"public class X {\n" +
-			"  int field;\n" +
-			"}"
-		);
-		JavaScriptUnit ast = this.workingCopy.reconcile(AST.JLS3, true/*force resolution*/, null, null);
-		TypeDeclaration type = (TypeDeclaration) ast.types().get(0);
-		assertNull("Unexpected binding", type.resolveBinding());
-	}
-	
-	/*
-	 * Ensures that a Java project named " " doesn't exist if a working copy with no resource is created.
-	 * (regression test for bug 138999 Regression: Fix for 128258 introduces regression in JavaProject.exists())
-	 */
-	public void testNewWorkingCopy09() throws CoreException {
-		this.workingCopy = newExternalWorkingCopy(
-			"X.js",
-			"public class X {\n" +
-			"}"
-		);
-		assertFalse("Java project named \" \" should not exist", getJavaProject(ExternalJavaProject.EXTERNAL_PROJECT_NAME).exists());
-	}
-
-	/**
-	 * Ensures that creating a DOM AST and computing the bindings takes the owner's working copies into account.
-	 * (regression test for bug 39533 Working copy with no corresponding file not considered by NameLookup)
-	 * @deprecated using deprecated code
-	 */
-	public void testParseCompilationUnit1() throws CoreException {
-		IJavaScriptUnit workingCopy1 = null;
-		IJavaScriptUnit workingCopy2 = null;
-		try {
-			TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-			workingCopy1 = getCompilationUnit("P/X.js").getWorkingCopy(owner, null);
-			workingCopy1.getBuffer().setContents(
-				"public class X implements I {\n" +
-				"}"
-			);
-			workingCopy1.makeConsistent(null);
-			
-			workingCopy2 = getCompilationUnit("P/I.js").getWorkingCopy(owner, null);
-			workingCopy2.getBuffer().setContents(
-				"public interface I {\n" +
-				"}"
-			);
-			workingCopy2.makeConsistent(null);
-			
-			ASTParser parser = ASTParser.newParser(AST.JLS2);
-			parser.setSource(workingCopy1);
-			parser.setResolveBindings(true);
-			parser.setWorkingCopyOwner(owner);
-			JavaScriptUnit cu = (JavaScriptUnit) parser.createAST(null);
-			List types = cu.types();
-			assertEquals("Unexpected number of types in AST", 1, types.size());
-			TypeDeclaration type = (TypeDeclaration)types.get(0);
-		} finally {
-			if (workingCopy1 != null) {
-				workingCopy1.discardWorkingCopy();
-			}
-			if (workingCopy2 != null) {
-				workingCopy2.discardWorkingCopy();
-			}
-		}
-	}
-	
-	/**
-	 * Ensures that creating a DOM AST and computing the bindings takes the owner's working copies into account.
-	 * @deprecated using deprecated code
-	 */
-	public void testParseCompilationUnit2() throws CoreException {
-		TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-		this.workingCopy = getCompilationUnit("P/Y.js").getWorkingCopy(owner, null);
-		this.workingCopy.getBuffer().setContents(
-			"public class Y {\n" +
-			"}"
-		);
-		this.workingCopy.makeConsistent(null);
-
-		char[] source = (
-			"public class Z extends Y {\n" +
-			"}").toCharArray();
-		ASTParser parser = ASTParser.newParser(AST.JLS2);
-		parser.setSource(source);
-		parser.setUnitName("Z.js");
-		parser.setProject(getJavaProject("P"));
-		parser.setWorkingCopyOwner(owner);
-		parser.setResolveBindings(true);
-		JavaScriptUnit cu = (JavaScriptUnit) parser.createAST(null);
-
-		List types = cu.types();
-		assertEquals("Unexpected number of types in AST", 1, types.size());
-		TypeDeclaration type = (TypeDeclaration)types.get(0);
-		ITypeBinding typeBinding = type.resolveBinding();
-		assertNotNull("No binding", typeBinding);
-		assertEquals(
-			"Unexpected super type", 
-			"Y",
-			typeBinding.getSuperclass().getQualifiedName());
-	}
-	
-	/**
-	 * Ensures that creating a DOM AST and computing the bindings takes the owner's working copies into account.
-	 * @deprecated using deprecated code
-	 */
-	public void testParseCompilationUnit3() throws CoreException {
-		try {
-			createJavaProject("P1", new String[] {"src"}, new String[] {"JCL_LIB", "lib"});
-			
-			// create X.class in lib folder
-			/* Evaluate the following in a scrapbook:
-				org.eclipse.wst.jsdt.core.tests.model.ModifyingResourceTests.generateClassFile(
-					"X",
-					"public class X {\n" +
-					"}")
-			*/
-			byte[] bytes = new byte[] {
-				-54, -2, -70, -66, 0, 3, 0, 45, 0, 13, 1, 0, 1, 88, 7, 0, 1, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 7, 0, 3, 1, 0, 6, 60, 105, 110, 105, 116, 62, 1, 0, 3, 40, 41, 86, 1, 0, 4, 67, 111, 100, 101, 12, 0, 5, 0, 6, 10, 0, 4, 0, 8, 1, 0, 15, 76, 105, 110, 101, 78, 117, 
-				109, 98, 101, 114, 84, 97, 98, 108, 101, 1, 0, 10, 83, 111, 117, 114, 99, 101, 70, 105, 108, 101, 1, 0, 6, 88, 46, 106, 97, 118, 97, 0, 33, 0, 2, 0, 4, 0, 0, 0, 0, 0, 1, 0, 1, 0, 5, 0, 6, 0, 1, 0, 7, 0, 0, 0, 29, 0, 1, 0, 1, 0, 0, 0, 5, 42, -73, 0, 9, -79, 0, 0, 0, 1, 0, 10, 0, 0, 0, 6, 
-				0, 1, 0, 0, 0, 1, 0, 1, 0, 11, 0, 0, 0, 2, 0, 12, 
-			};
-			this.createFile("P1/lib/X.class", bytes);
-						
-			// create libsrc and attach source
-			createFolder("P1/libsrc");
-			createFile(
-				"P1/libsrc/X.js",
-				"public class X extends Y {\n" +
-				"}"
-			);
-			IPackageFragmentRoot lib = getPackageFragmentRoot("P1/lib");
-			lib.attachSource(new Path("/P1/libsrc"), null, null);
-			
-			// create Y.java in src folder
-			createFile("P1/src/Y.js", "");
-			
-			// create working copy on Y.java
-			TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-			this.workingCopy = getCompilationUnit("P1/src/Y.js").getWorkingCopy(owner, null);
-			this.workingCopy.getBuffer().setContents(
-				"public class Y {\n" +
-				"}"
-			);
-			this.workingCopy.makeConsistent(null);
-
-			// parse and resolve class file
-			IClassFile classFile = getClassFile("P1/lib/X.class");
-			ASTParser parser = ASTParser.newParser(AST.JLS2);
-			parser.setSource(classFile);
-			parser.setResolveBindings(true);
-			parser.setWorkingCopyOwner(owner);
-			JavaScriptUnit cu = (JavaScriptUnit) parser.createAST(null);
-			List types = cu.types();
-			assertEquals("Unexpected number of types in AST", 1, types.size());
-			TypeDeclaration type = (TypeDeclaration)types.get(0);
-			ITypeBinding typeBinding = type.resolveBinding();
-			ITypeBinding superType = typeBinding.getSuperclass();
-			assertEquals(
-				"Unexpected super type", 
-				"Y",
-				superType == null ? "<null>" : superType.getQualifiedName());
-		} finally {
-			deleteProject("P1");
-		}
-	}
-	
-	/*
-	 * Ensures that searching takes the owner's working copies into account.
-	 */
-	public void testSearch1() throws CoreException {
-		IJavaScriptUnit cu = getCompilationUnit("P/Y.js");
-		TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-		this.workingCopy = cu.getWorkingCopy(owner, null);
-		this.workingCopy.getBuffer().setContents(
-			"public class Y {\n" +
-			"  X field;\n" +
-			"}"
-		);
-		this.workingCopy.makeConsistent(null);
-
-		SearchPattern pattern = SearchPattern.createPattern(
-			"X", 
-			IJavaScriptSearchConstants.TYPE,
-			IJavaScriptSearchConstants.REFERENCES, 
-			SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
-		JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-		new SearchEngine(owner).search(
-			pattern, 
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			SearchEngine.createWorkspaceScope(), 
-			resultCollector,
-			null);
-		assertEquals(
-			"Y.java Y.field [X]",
-			resultCollector.toString());
-	}
-
-	/*
-	 * Ensures that searching takes the owner's working copies into account.
-	 */
-	public void testSearch2() throws CoreException {
-		IJavaScriptUnit cu = getCompilationUnit("P/X.js");
-		TestWorkingCopyOwner owner = new TestWorkingCopyOwner();
-		this.workingCopy = cu.getWorkingCopy(owner, null);
-		
-		// remove type X
-		this.workingCopy.getBuffer().setContents("");
-		this.workingCopy.makeConsistent(null);
-
-		SearchPattern pattern = SearchPattern.createPattern(
-			"X", 
-			IJavaScriptSearchConstants.TYPE,
-			IJavaScriptSearchConstants.DECLARATIONS, 
-			SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
-		JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-		new SearchEngine(owner).search(
-			pattern, 
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			SearchEngine.createWorkspaceScope(), 
-			resultCollector,
-			null);
-		assertEquals(
-			"", // should not find any in the owner's context
-			resultCollector.toString());
-	}
-
-	/*
-	 * Ensures that searching takes the primary owner's working copies into account only if the working copy
-	 * is not saved.
-	 */
-	public void testSearch3() throws CoreException {
-		try {
-			createFile("/P/Y.js", "");
-			this.workingCopy = getCompilationUnit("P/Y.js");
-			this.workingCopy.becomeWorkingCopy(null);
-			
-			// create type Y in working copy
-			this.workingCopy.getBuffer().setContents("public class Y {}");
-			this.workingCopy.makeConsistent(null);
-
-			JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-			search(
-				"Y", 
-				IJavaScriptSearchConstants.TYPE, 
-				IJavaScriptSearchConstants.DECLARATIONS,
-				SearchEngine.createWorkspaceScope(), 
-				resultCollector);
-			assertEquals(
-				"Y.java Y [Y]",
-				resultCollector.toString());
-			
-			//	commit new type
-			this.workingCopy.commitWorkingCopy(false, null);
-			resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-			search(
-				"Y", 
-				IJavaScriptSearchConstants.TYPE, 
-				IJavaScriptSearchConstants.DECLARATIONS,
-				SearchEngine.createWorkspaceScope(), 
-				resultCollector);
-			assertEquals(
-				"Y.java Y [Y]",
-				resultCollector.toString());
-		} finally {
-			deleteFile("/P/Y.js");
-		}
-	}
-
-	/*
-	 * Ensures that searching takes the primary owner's working copies and the given working copies into account.
-	 * (regression test for bug 43300 SearchEngine(IWorkingCopy[] workingCopies) not backward compatible)
-	 */
-	public void testSearch4() throws CoreException {
-		IJavaScriptUnit primaryWorkingCopy = null;
-		try {
-			createFolder("P/p");
-			createFile("/P/p/Y.js", "");
-			primaryWorkingCopy = getCompilationUnit("P/p/Y.js");
-			primaryWorkingCopy.becomeWorkingCopy(null);
-			
-			// create type Y in working copy
-			primaryWorkingCopy.getBuffer().setContents(
-				"package p;\n" +
-				"public class Y {\n" +
-				"}");
-			primaryWorkingCopy.makeConsistent(null);
-			
-			// create new working copy on X.java and add type X
-			this.workingCopy = getCompilationUnit("P/p/X.js").getWorkingCopy(null);
-			this.workingCopy.getBuffer().setContents(
-				"package p;\n" +
-				"public class X {\n" +
-				"}"
-			);
-			this.workingCopy.makeConsistent(null);
-
-			JavaSearchTests.JavaSearchResultCollector resultCollector = new JavaSearchTests.JavaSearchResultCollector();
-			IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {primaryWorkingCopy.getParent()});
-			SearchPattern pattern = SearchPattern.createPattern(
-				"*", 
-				IJavaScriptSearchConstants.TYPE,
-				IJavaScriptSearchConstants.DECLARATIONS, 
-				SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE);
-			new SearchEngine(new IJavaScriptUnit[] {this.workingCopy}).search(
-				pattern, 
-				new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-				scope, 
-				resultCollector,
-				null);
-			assertEquals(
-				"p/X.java p.X [X]\n" +
-				"p/Y.java p.Y [Y]",
-				resultCollector.toString());
-			
-		} finally {
-			if (primaryWorkingCopy != null) {
-				primaryWorkingCopy.discardWorkingCopy();
-			}
-			deleteFile("/P/p/Y.js");
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopySearchTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopySearchTests.java
deleted file mode 100644
index 20841a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopySearchTests.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-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.IFunction;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.search.*;
-public class WorkingCopySearchTests extends JavaSearchTests {
-	IJavaScriptUnit workingCopy;
-	
-	public WorkingCopySearchTests(String name) {
-		super(name);
-	}
-	public static Test suite() {
-		return buildModelTestSuite(WorkingCopySearchTests.class);
-	}
-	// Use this static initializer to specify subset for tests
-	// All specified tests which do not belong to the class are skipped...
-	static {
-//		TESTS_PREFIX =  "testAllTypeNames";
-//		TESTS_NAMES = new String[] { "testAllTypeNamesBug98684" };
-//		TESTS_NUMBERS = new int[] { 8 };
-//		TESTS_RANGE = new int[] { -1, -1 };
-	}
-	
-	/**
-	 * Get a new working copy.
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		try {
-			this.workingCopy = this.getCompilationUnit("JavaSearch", "src", "wc", "X.js").getWorkingCopy(null);
-		} catch (JavaScriptModelException e) {
-			e.printStackTrace();
-		}
-	}
-	
-	/**
-	 * Destroy the working copy.
-	 */
-	protected void tearDown() throws Exception {
-		this.workingCopy.discardWorkingCopy();
-		this.workingCopy = null;
-		super.tearDown();
-	}
-	
-	/**
-	 * Hierarchy scope on a working copy test.
-	 */
-	public void testHierarchyScopeOnWorkingCopy() throws CoreException {
-		IJavaScriptUnit unit = this. getCompilationUnit("JavaSearch", "src", "a9", "A.js");
-		IJavaScriptUnit copy = unit.getWorkingCopy(null);
-		try {
-			IType type = copy.getType("A");
-			IJavaScriptSearchScope scope = SearchEngine.createHierarchyScope(type);
-			assertTrue("a9.A should be included in hierarchy scope", scope.encloses(type));
-			assertTrue("a9.C should be included in hierarchy scope", scope.encloses(copy.getType("C")));
-			assertTrue("a9.B should be included in hierarchy scope", scope.encloses(copy.getType("B")));
-			IPath path = unit.getUnderlyingResource().getFullPath();
-			assertTrue("a9/A.java should be included in hierarchy scope", scope.encloses(path.toString()));
-		} finally {
-			copy.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * Type declaration in a working copy test.
-	 * A new type is added in the working copy only.
-	 */
-	public void testAddNewType() throws CoreException {
-		this.workingCopy.createType(
-			"class NewType {\n" +
-			"}",
-			null,
-			false,
-			null);
-		
-		IJavaScriptSearchScope scope = 
-			SearchEngine.createJavaSearchScope(
-				new IJavaScriptElement[] {this.workingCopy.getParent()});
-	//	JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		SearchPattern pattern = SearchPattern.createPattern(
-			"NewType",
-			TYPE,
-			DECLARATIONS, 
-			SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
-		new SearchEngine(new IJavaScriptUnit[] {this.workingCopy}).search(
-			pattern, 
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope, 
-			resultCollector,
-			null);
-		assertSearchResults(
-			"src/wc/X.java wc.NewType [NewType]", 
-			resultCollector);
-	}
-	
-	/*
-	 * Search all type names in working copies test.
-	 * (Regression test for bug 40793 Primary working copies: Type search does not find type in modified CU)
-	 */
-	public void testAllTypeNames1() throws CoreException {
-		this.workingCopy.getBuffer().setContents(
-			"package wc;\n" +
-			"public class Y {\n" +
-			"  interface I {\n" +
-			"  }\n" +
-			"}" 
-		);
-		this.workingCopy.makeConsistent(null);
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {this.workingCopy.getParent()});
-		SearchTests.SearchTypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-		new SearchEngine(new IJavaScriptUnit[] {this.workingCopy}).searchAllTypeNames(
-			null,
-			SearchPattern.R_EXACT_MATCH,
-			null,
-			SearchPattern.R_PATTERN_MATCH, // case insensitive
-			TYPE,
-			scope, 
-			requestor,
-			IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-			null		
-		);
-		assertSearchResults(
-			"Unexpected all type names",
-			"wc.Y\n" +
-			"wc.Y$I",
-			requestor);
-	}
-	
-	/*
-	 * Search all type names in working copies test (without reconciling working copies).
-	 * (Regression test for bug 40793 Primary working copies: Type search does not find type in modified CU)
-	 */
-	public void testAllTypeNames2() throws CoreException {
-		this.workingCopy.getBuffer().setContents(
-			"package wc;\n" +
-			"public class Y {\n" +
-			"  interface I {\n" +
-			"  }\n" +
-			"}" 
-		);
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {this.workingCopy.getParent()});
-		SearchTests.SearchTypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-		new SearchEngine(new IJavaScriptUnit[] {this.workingCopy}).searchAllTypeNames(
-			null,
-			SearchPattern.R_EXACT_MATCH,
-			null,
-			SearchPattern.R_PATTERN_MATCH, // case insensitive
-			TYPE,
-			scope, 
-			requestor,
-			IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-			null		
-		);
-		assertSearchResults(
-			"Unexpected all type names",
-			"wc.Y\n" +
-			"wc.Y$I",
-			requestor);
-	}
-	
-	/*
-	 * Search all type names with a prefix in a primary working copy.
-	 * (regression test for bug 44884 Wrong list displayed while code completion)
-	 */
-	public void testAllTypeNames3() throws CoreException {
-		IJavaScriptUnit wc = getCompilationUnit("/JavaSearch/wc3/X44884.js");
-		try {
-			wc.becomeWorkingCopy(null);
-			wc.getBuffer().setContents(
-				"package wc3;\n" +
-				"public class X44884 {\n" +
-				"}\n" +
-				"interface I {\n" +
-				"}"
-			);
-			wc.makeConsistent(null);
-			
-			IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {wc.getParent()});
-			SearchTests.SearchTypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-			new SearchEngine().searchAllTypeNames(
-				"wc3".toCharArray(),
-				SearchPattern.R_EXACT_MATCH,
-				"X".toCharArray(),
-				SearchPattern.R_PREFIX_MATCH, // case insensitive
-				TYPE,
-				scope, 
-				requestor,
-				IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-				null		
-			);
-			assertSearchResults(
-				"Unexpected all type names",
-				"wc3.X44884",
-				requestor);
-		} finally {
-			wc.discardWorkingCopy();
-		}
-	}
-
-	/*
-	 * Search all type names with a prefix in a primary working copy (without reconciling it).
-	 * (regression test for bug 44884 Wrong list displayed while code completion)
-	 */
-	public void testAllTypeNames4() throws CoreException {
-		IJavaScriptUnit wc = getCompilationUnit("/JavaSearch/wc3/X44884.js");
-		try {
-			wc.becomeWorkingCopy(null);
-			wc.getBuffer().setContents(
-				"package wc3;\n" +
-				"public class X44884 {\n" +
-				"}\n" +
-				"interface I {\n" +
-				"}"
-			);
-			
-			IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {wc.getParent()});
-			SearchTests.SearchTypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-			new SearchEngine().searchAllTypeNames(
-				"wc3".toCharArray(),
-				SearchPattern.R_EXACT_MATCH,
-				"X".toCharArray(),
-				SearchPattern.R_PREFIX_MATCH, // case insensitive
-				TYPE,
-				scope, 
-				requestor,
-				IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-				null		
-			);
-			assertSearchResults(
-				"Unexpected all type names",
-				"wc3.X44884",
-				requestor);
-		} finally {
-			wc.discardWorkingCopy();
-		}
-	}
-
-	/**
-	 * Bug 99915: [search] Open Type: not yet saved types not found if case-sensitve name is entered
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=99915"
-	 */
-	public void testAllTypeNamesBug99915() throws CoreException {
-		this.workingCopy.getBuffer().setContents(
-			"package wc;\n" +
-			"public class X {\n" +
-			"}\n"  +
-			" class AAABBB {}\n" +
-			" class BBBCCC {}\n"
-		);
-		this.workingCopy.makeConsistent(null);
-		IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {this.workingCopy.getParent()});
-		SearchTests.SearchTypeNameRequestor requestor = new SearchTests.SearchTypeNameRequestor();
-		new SearchEngine(new IJavaScriptUnit[] {this.workingCopy}).searchAllTypeNames(
-			null,
-			SearchPattern.R_EXACT_MATCH,
-			"A*".toCharArray(),
-			SearchPattern.R_PATTERN_MATCH, // case insensitive
-			TYPE,
-			scope, 
-			requestor,
-			IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-			null		
-		);
-		assertSearchResults(
-			"Unexpected all type names",
-			"wc.AAABBB",
-			requestor);
-	}
-
-	/**
-	 * Bug 98684: [search] Code assist shown inner types of unreleated project
-	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=98684"
-	 */
-	public void testAllTypeNamesBug98684() throws CoreException {
-		try {
-			IJavaScriptProject[] projects = new IJavaScriptProject[2];
-			projects[0] = createJavaProject("P1");
-			projects[1] = createJavaProject("P2");
-			workingCopies = new IJavaScriptUnit[2];
-			workingCopies[0] = getWorkingCopy("/P1/p1/A1.js",
-				"package p1;\n" + 
-				"public class A1 {\n" + 
-				"	public static class A1Inner1 {}" + 
-				"	public static class A1Inner2 {}" + 
-				"}"
-			);
-			workingCopies[1] = getWorkingCopy("/P2/p2/A2.js",
-				"package p2;\n" + 
-				"public class A2 {\n" + 
-				"	public static class A2Inner1 {}" + 
-				"	public static class A2Inner2 {}" + 
-				"}"
-			);
-			TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
-			IJavaScriptSearchScope scope = 	SearchEngine.createJavaSearchScope(new IJavaScriptElement[] { projects[1] });
-			new SearchEngine(this.workingCopies).searchAllTypeNames(
-				null,
-				SearchPattern.R_EXACT_MATCH,
-				"A".toCharArray(),
-				SearchPattern.R_PREFIX_MATCH,
-				TYPE,
-				scope,
-				requestor,
-				IJavaScriptSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
-				null
-			);
-			assertSearchResults(
-				"Unexpected all type names",
-				"p2.A2\n" + 
-				"p2.A2$A2Inner1\n" + 
-				"p2.A2$A2Inner2",
-				requestor);
-		}
-		finally {
-			deleteProject("P1");
-			deleteProject("P2");
-		}
-	}
-
-	/**
-	 * Declaration of referenced types test.
-	 * (Regression test for bug 5355 search: NPE in searchDeclarationsOfReferencedTypes  )
-	 */
-	public void testDeclarationOfReferencedTypes() throws CoreException {
-		IFunction method = this.workingCopy.getType("X").createMethod(
-			"public void foo() {\n" +
-			"  X x = new X();\n" +
-			"}",
-			null,
-			true,
-			null);
-	//	JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		searchDeclarationsOfReferencedTypes(
-			method, 
-			resultCollector
-		);
-		assertSearchResults(
-			"src/wc/X.java wc.X [X]", 
-			resultCollector);
-	}
-	
-	/**
-	 * Type declaration in a working copy test.
-	 * A type is moved from one working copy to another.
-	 */
-	public void testMoveType() throws CoreException {
-		
-		// move type X from working copy in one package to a working copy in another package
-		IJavaScriptUnit workingCopy1 = getCompilationUnit("JavaSearch", "src", "wc1", "X.js").getWorkingCopy(null);
-		IJavaScriptUnit workingCopy2 = getCompilationUnit("JavaSearch", "src", "wc2", "Y.js").getWorkingCopy(null);
-		
-		try {
-			workingCopy1.getType("X").move(workingCopy2, null, null, true, null);
-			
-			SearchEngine searchEngine = new SearchEngine(new IJavaScriptUnit[] {workingCopy1, workingCopy2});
-			
-			// type X should not be visible in old package
-			IJavaScriptSearchScope scope1 = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {workingCopy1.getParent()});
-	//		JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-			
-			SearchPattern pattern = SearchPattern.createPattern(
-				"X",
-				TYPE,
-				DECLARATIONS, 
-				SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
-			searchEngine.search(
-				pattern, 
-				new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-				scope1, 
-				resultCollector,
-				null);
-			assertEquals(
-				"", 
-				resultCollector.toString());
-			
-			// type X should be visible in new package
-			IJavaScriptSearchScope scope2 = SearchEngine.createJavaSearchScope(new IJavaScriptElement[] {workingCopy2.getParent()});
-			resultCollector = new JavaSearchResultCollector();
-			searchEngine.search(
-				pattern, 
-				new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-				scope2, 
-				resultCollector,
-				null);
-			assertSearchResults(
-				"src/wc2/Y.java wc2.X [X]", 
-				resultCollector);
-		} finally {
-			workingCopy1.discardWorkingCopy();
-			workingCopy2.discardWorkingCopy();
-		}
-	}
-	
-	/**
-	 * Type declaration in a working copy test.
-	 * A type is removed from the working copy only.
-	 */
-	public void testRemoveType() throws CoreException {
-		this.workingCopy.getType("X").delete(true, null);
-		
-		IJavaScriptSearchScope scope = 
-			SearchEngine.createJavaSearchScope(
-				new IJavaScriptElement[] {this.workingCopy.getParent()});
-		
-		// type X should not be visible when working copy hides it
-	//	JavaSearchResultCollector resultCollector = new JavaSearchResultCollector();
-		SearchPattern pattern = SearchPattern.createPattern(
-			"X",
-			TYPE,
-			DECLARATIONS, 
-			SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
-		new SearchEngine(new IJavaScriptUnit[] {this.workingCopy}).search(
-			pattern, 
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope, 
-			resultCollector,
-			null);
-		assertSearchResults(
-			"", 
-			resultCollector);
-			
-		// ensure the type is still present in the compilation unit
-		resultCollector = new JavaSearchResultCollector();
-		new SearchEngine().search(
-			pattern, 
-			new SearchParticipant[] {SearchEngine.getDefaultSearchParticipant()},
-			scope, 
-			resultCollector,
-			null);
-		assertSearchResults(
-			"src/wc/X.java wc.X [X]", 
-			resultCollector);
-	
-	}
-	
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyTests.java
deleted file mode 100644
index 63e9e4f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/WorkingCopyTests.java
+++ /dev/null
@@ -1,701 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.model;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.wst.jsdt.core.IBuffer;
-import org.eclipse.wst.jsdt.core.IField;
-import org.eclipse.wst.jsdt.core.IFunction;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptModelStatusConstants;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IOpenable;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
-import org.eclipse.wst.jsdt.internal.core.util.Util;
-
-
-
-public class WorkingCopyTests extends ModifyingResourceTests {
-	IJavaScriptUnit cu = null;
-	IJavaScriptUnit copy = null;
-	
-	public class TestWorkingCopyOwner extends WorkingCopyOwner {
-		public IBuffer createBuffer(IJavaScriptUnit workingCopy) {
-			return new TestBuffer(workingCopy);
-		}
-	}
-	public WorkingCopyTests(String name) {
-	super(name);
-}
-
-public static Test suite() {
-	return buildModelTestSuite(WorkingCopyTests.class);
-}
-protected void setUp() throws Exception {
-	super.setUp();
-	
-	try {
-		this.createJavaProject(
-			"P", 
-			new String[] {"src"}, 
-			new String[] {this.getSystemJsPathString(), "lib"});
-//		this.createFolder("P/src");
-		this.createFile("P/src/A.js", 
-			"  var FIELD;\n" +
-			"  var field1;\n" +
-			"  var field2;\n" +
-			"  function foo() {\n" +
-			"  }\n" +
-			"");
-		this.cu = this.getCompilationUnit("P/src/A.js");
-		this.copy = cu.getWorkingCopy(null);
-	} catch (CoreException e) {
-		e.printStackTrace();
-		throw new RuntimeException(e.getMessage());
-	}
-}
-protected void tearDown() throws Exception {
-	if (this.copy != null) this.copy.discardWorkingCopy();
-	this.deleteProject("P");
-	super.tearDown();
-}
-/*
- * Ensures that cancelling a make consistent operation doesn't leave the working copy closed
- * (regression test for bug 61719 Incorrect fine grain delta after method copy-rename)
- */
-public void testCancelMakeConsistent() throws JavaScriptModelException {
-	String newContents =
-		" function bar() {\n" +
-		"  }\n" +
-		"";
-	this.copy.getBuffer().setContents(newContents);
-	NullProgressMonitor monitor = new NullProgressMonitor();
-	monitor.setCanceled(true);
-	try {
-		this.copy.makeConsistent(monitor);
-	} catch (OperationCanceledException e) {
-		// got exception
-	}
-	assertTrue("Working copy should be opened", this.copy.isOpen());
-}
-
-/**
- */
-public void testChangeContent() throws CoreException {
-	String newContents =
-		"  function bar() {\n" +
-		"}";
-	this.copy.getBuffer().setContents(newContents);
-	this.copy.reconcile(IJavaScriptUnit.NO_AST, false, null, null);
-	assertSourceEquals(
-		"Unexpected working copy contents",
-		newContents,
-		this.copy.getBuffer().getContents());
-	
-	this.copy.commitWorkingCopy(true, null);
-	assertSourceEquals(
-		"Unexpected original cu contents",
-		newContents,
-		this.cu.getBuffer().getContents());
-}
-
-/*
- * Ensures that one cannot commit the contents of a working copy on a read only cu. 
- */
-public void testChangeContentOfReadOnlyCU1() throws CoreException {
-	if (!Util.isReadOnlySupported()) {
-		// Do not test if file system does not support read-only attribute
-		return;
-	}
-	IResource resource = this.cu.getUnderlyingResource();
-	boolean readOnlyFlag = Util.isReadOnly(resource);
-	boolean didComplain = false;
-	try {
-		Util.setReadOnly(resource, true);
-		this.copy.getBuffer().setContents("invalid");
-		this.copy.commitWorkingCopy(true, null);
-	} catch(JavaScriptModelException e){
-		didComplain = true;
-	} finally {
-		Util.setReadOnly(resource, readOnlyFlag);
-	}
-	assertTrue("Should have complained about modifying a read-only unit:", didComplain);
-	assertTrue("ReadOnly buffer got modified:", !this.cu.getBuffer().getContents().equals("invalid"));
-}
-
-/*
- * Ensures that one can commit the contents of a working copy on a read only cu if a pessimistic repository
- * provider allows it. 
- */
-public void testChangeContentOfReadOnlyCU2() throws CoreException {
-	if (!Util.isReadOnlySupported()) {
-		// Do not test if file system does not support read-only attribute
-		return;
-	}
-	String newContents =
-		"  function bar() {\n" +
-		"}";
-	IResource resource = this.cu.getUnderlyingResource();
-	IProject project = resource.getProject();
-	boolean readOnlyFlag = Util.isReadOnly(resource);
-	try {
-		RepositoryProvider.map(project, TestPessimisticProvider.NATURE_ID);
-		TestPessimisticProvider.markWritableOnSave = true;
-		Util.setReadOnly(resource, true);
-		
-		this.copy.getBuffer().setContents(newContents);
-		this.copy.commitWorkingCopy(true, null);
-		assertSourceEquals(
-			"Unexpected original cu contents",
-			newContents,
-			this.cu.getBuffer().getContents());
-	} finally {
-		TestPessimisticProvider.markWritableOnSave = false;
-		RepositoryProvider.unmap(project);
-		Util.setReadOnly(resource, readOnlyFlag);
-	}
-}
-
-/**
- * Ensures that the source contents of a working copy are
- * not altered by changes to the source of the original compilation
- * unit.
- */
-public void testContents() throws CoreException {
-	String originalSource = this.cu.getSource();
-	IField type = this.cu.getField("field1");
-	assertDeletion(type);
-	assertSourceEquals("source code of copy should still be original", originalSource, this.copy.getSource());
-}
-
-///**
-// * Test creating a working copy on a class file with a customized buffer.
-// */
-//public void testOnClassFile() throws JavaScriptModelException, IOException {
-//	// ensure the external JCL is copied
-//	setupExternalJCL("jclMin");
-//			
-//	this.attachSource(this.getPackageFragmentRoot("P", this.getExternalJCLPathString()), this.getExternalJCLSourcePath().toOSString(), "src");
-//	IClassFile classFile = this.getClassFile("P", this.getExternalJCLPathString(), "java.lang", "Object.class");
-//	WorkingCopyOwner owner = new TestWorkingCopyOwner();
-//	IJavaScriptUnit customizedCopy = classFile.getWorkingCopy(owner, null);
-//	try {
-//		IBuffer buffer = customizedCopy.getBuffer();
-//		assertTrue("Unexpected buffer", buffer instanceof TestBuffer);	
-//		assertTrue("Buffer should be initialized with source", buffer.getCharacters().length > 0);
-//	} finally {
-//		customizedCopy.discardWorkingCopy();
-//	}
-//}
-/**
- * Create the compilation unit place holder for the working copy tests.
- */
-public void testCreation() {
-	assertTrue("Failed to create X.js compilation unit", this.cu != null && this.cu.exists());
-	assertTrue("Failed to create working copy on X.js", this.copy != null && this.copy.exists());
-}
-
-/**
- * Test creating a working copy with a customized buffer.
- */
-public void testCustomizedBuffer() throws JavaScriptModelException {
-	WorkingCopyOwner owner = new TestWorkingCopyOwner();
-	IJavaScriptUnit customizedCopy = this.cu.getWorkingCopy(owner, null);
-	try {
-		assertTrue("Unexpected buffer", customizedCopy.getBuffer() instanceof TestBuffer);
-	} finally {
-		customizedCopy.discardWorkingCopy();
-	}
-}
-/**
- * Test closing then reopening a working copy with a customized buffer.
- */
-public void testCustomizedBuffer2() throws JavaScriptModelException {
-	WorkingCopyOwner owner = new TestWorkingCopyOwner();
-	IJavaScriptUnit customizedCopy = this.cu.getWorkingCopy(owner, null);
-	try {
-		customizedCopy.close();
-		customizedCopy.open(null);
-		assertTrue("Unexpected buffer", customizedCopy.getBuffer() instanceof TestBuffer);		
-	} finally {
-		customizedCopy.discardWorkingCopy();
-	}
-}
-/*
- * Test that deleting 2 fields in a JavaScriptCore.run() operation reports the correct delta.
- * (regression test for bug 32225 incorrect delta after deleting 2 fields)
- */
-public void testDelete2Fields() throws CoreException {
-	try {
-		startDeltas();
-		JavaScriptCore.run(
-			new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IField field1 = copy.getField("field1");
-					IField field2 = copy.getField("field2");
-					field1.delete(false, monitor);
-					field2.delete(false, monitor);
-				}
-			},
-			null);
-		assertDeltas(
-			"Unexpected delta",
-			"field1[-]: {}\n" + 
-			"field2[-]: {}"
-		);
-	} finally {
-		stopDeltas();
-	}
-}
-/**
- * Tests the general functionality of a working copy:<ul>
- * <li>ensures that the copy and original compilation unit are not equal</li>
- * <li>ensures the correct retrieval of the original element</li>
- * <li>closing the package of the compilation unit does not close the copy</li>
- * <li>ensures that working copies are unique
- * <li>ensures committing changes from working copies 
- */
-public void testGeneral() throws JavaScriptModelException, CoreException {
-
-	assertTrue("copy and actual should not be equal", !this.copy.equals(this.cu));
-
-	IField copyfield= this.copy.getField("field1");
-
-	assertEquals("primary should be the samel", this.cu, this.cu.getPrimary());
-
-	assertEquals("getting working copy from a copy should yield original copy", this.copy, this.copy.getWorkingCopy(null));
-
-	boolean ex= false;
-	assertDeletion(copyfield);
-
-	// closing the package should not close the copy
-	((IOpenable)this.cu.getParent()).close();
-	assertTrue("copy should still be open", this.copy.isOpen());
-	
-	// verify original still present
-	assertTrue("actual type should still be present", this.cu.getField("field1").exists());
-
-	// getAnother working copy
-	IJavaScriptUnit copy2= this.cu.getWorkingCopy(null);
-	try {
-		assertTrue("working copies should be unique ", !(this.copy.equals(copy2)));
-	
-		// delete a method from the 2nd working copy.
-		IFunction method= copy2.getFunction("foo", null);
-	
-		assertDeletion(method);
-		IFunction originalMethod= this.cu.getFunction("foo", null);
-		assertTrue("method should still be present in original", originalMethod.exists());
-	
-		// commit the changes from the 2nd copy.
-		copy2.commitWorkingCopy(false, null);
-	
-		assertTrue("copy always has unsaved changes", copy2.hasUnsavedChanges());
-		
-		// original method should now be gone
-		assertTrue("method should no longer be present in original after commit", !originalMethod.exists());
-	
-		// commit the changes from the 1st copy - should fail
-		try {
-			this.copy.commitWorkingCopy(false, null);
-			assertTrue("commit should have failed", ex);
-		} catch (JavaScriptModelException jme) {
-		}
-		
-	
-		// now force the update
-		try {
-			this.copy.commitWorkingCopy(true, null);
-		} catch (JavaScriptModelException jme) {
-			assertTrue("commit should work", false);
-		}
-	
-		// now the type should be gone.
-		assertTrue("original type should no longer be present", !this.cu.getField("field1").exists());
-	
-	
-		this.copy.close();
-		ex= false;
-		try {
-			this.copy.open(null);
-		} catch (JavaScriptModelException e) {
-			ex= true;
-		}
-		assertTrue("should be able to open working copy a 2nd time", !ex);
-	
-		// now discard the working copy
-		this.copy.discardWorkingCopy();
-		ex= false;
-		try {
-			this.copy.open(null);
-		} catch (JavaScriptModelException e) {
-			ex= true;
-		}
-		assertTrue("should not be able to open working copy again", ex);
-	} finally {
-		copy2.discardWorkingCopy();
-	}
-}
-///**
-// * Ensures that the primary element of a binary element is itself.
-// */
-//public void testGetPrimaryBinaryElement() throws CoreException {
-//	/* Evaluate the following in a scrapbook:
-//	 org.eclipse.wst.jsdt.core.tests.model.ModifyingResourceTests.generateClassFile(
-//		"A",
-//		"public class A {\n" +
-//		"}")
-//	*/
-//	byte[] bytes = new byte[] {
-//		-54, -2, -70, -66, 0, 3, 0, 45, 0, 10, 1, 0, 1, 65, 7, 0, 1, 1, 0, 16, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 7, 0, 3, 1, 0, 6, 60, 105, 110, 105, 116, 62, 1, 0, 3, 40, 41, 86, 1, 0, 4, 67, 111, 100, 101, 12, 0, 5, 0, 6, 10, 0, 4, 0, 8, 0, 33, 0, 2, 0, 4, 0, 0, 0, 
-//		0, 0, 1, 0, 1, 0, 5, 0, 6, 0, 1, 0, 7, 0, 0, 0, 17, 0, 1, 0, 1, 0, 0, 0, 5, 42, -73, 0, 9, -79, 0, 0, 0, 0, 0, 0, 
-//	};
-//	this.createFile("P/lib/A.class", bytes);
-//	IClassFile cf = this.getClassFile("P/lib/A.class");
-//	IJavaScriptElement primary = cf.getPrimaryElement();
-//	assertEquals("Primary element should be the same", cf, primary);
-//}
-/**
- * Ensures that the primary cu can be retrieved.
- */
-public void testGetPrimaryCU() {
-	IJavaScriptElement primary= this.copy.getPrimaryElement();
-	assertTrue("Element is not a cu", primary instanceof IJavaScriptUnit && !((IJavaScriptUnit)primary).isWorkingCopy());
-	assertTrue("Element should exist", primary.exists());
-}
-/**
- * Ensures that the primary field can be retrieved.
- */
-public void testGetPrimaryField() {
-	IJavaScriptElement primary = this.copy.getField("FIELD").getPrimaryElement();
-	assertTrue("Element is not a field", primary instanceof IField && !((IJavaScriptUnit)primary.getParent()).isWorkingCopy());
-	assertTrue("Element should exist", primary.exists());
-}
-///**
-// * Ensures that the primary import declaration can be retrieved.
-// */
-//public void testGetPrimaryImportDeclaration()  {
-//	IImportDeclaration imprt = copy.getImport("java.io.File");
-//	IJavaScriptElement primary = imprt.getPrimaryElement();
-//	assertTrue("Element should exist", primary.exists());
-//}
-///**
-// * Ensures that the primary import container can be retrieved.
-// */
-//public void testGetPrimaryImportContainer() {
-//	IImportContainer container = this.copy.getImportContainer();
-//	IJavaScriptElement primary = container.getPrimaryElement();
-//	assertTrue("Element should not be null", primary != null);
-//	assertTrue("Element should exist", primary.exists());
-//}
-/////**
-//// * Ensures that the primary initializer can be retrieved.
-//// */
-////public void testGetPrimaryInitializer() {
-////	IType type= copy.getType("A");
-////	IJavaScriptElement primary= type.getInitializer(1).getPrimaryElement();
-////	assertTrue("Element should exist", primary.exists());
-////}
-///**
-// */
-//public void testGetPrimaryInnerField() {
-//	IType innerType = this.copy.getType("A").getType("Inner");
-//	IJavaScriptElement primary = innerType.getField("innerField").getPrimaryElement();
-//	assertTrue("Element is not a field", primary instanceof IField);
-//	assertTrue("Element should exist", primary.exists());
-//}
-///**
-// */
-//public void testGetPrimaryInnerMethod() throws JavaScriptModelException {
-//	IType innerType = this.copy.getType("A").getType("Inner");
-//	IJavaScriptElement primary = innerType.getMethods()[0].getPrimaryElement();
-//	assertTrue("Element is not a method", primary instanceof IFunction);
-//	assertTrue("Element should exist", primary.exists());
-//}
-///**
-// */
-//public void testGetPrimaryInnerType() {
-//	IType innerInnerType = this.copy.getType("A").getType("Inner").getType("InnerInner");
-//	IJavaScriptElement primary = innerInnerType.getPrimaryElement();
-//	assertTrue("Element is not a method", primary instanceof IType);
-//	assertTrue("Element should exist", primary.exists());
-//
-//	Vector hierarchy = new Vector(5);
-//	IJavaScriptElement parent= primary.getParent();
-//	while (parent.getElementType() > IJavaScriptElement.JAVASCRIPT_UNIT) {
-//		hierarchy.addElement(parent);
-//		parent = parent.getParent();
-//	}
-//	hierarchy.addElement(parent);
-//	assertTrue("Compilation Unit should not be a working copy", !((IJavaScriptUnit)hierarchy.lastElement()).isWorkingCopy());
-//}
-/**
- * Ensures that the primary method can be retrieved.
- */
-public void testGetPrimaryMethod() throws JavaScriptModelException {
-	IJavaScriptElement primary= this.copy.getFunctions()[0].getPrimaryElement();
-	assertTrue("Element is not a method", primary instanceof IFunction);
-	assertTrue("Element should exist", primary.exists());
-}
-/**
- * Ensures that renaming a method of a working copy does
- * not alter the source of the primary compilation
- * unit.
- */
-public void testRenameMethod() throws JavaScriptModelException {
-	IFunction method = this.copy.getFunctions()[0];
-	IJavaScriptElement primary= method.getPrimaryElement();
-	method.rename("bar", false, null);
-	assertEquals("Invalid name of working copy method", "bar", this.copy.getFunctions()[0].getElementName());
-	assertEquals("Invalid name of primary method", "foo", primary.getElementName());
-}
-///**
-// * Ensures that the primary package declaration can be retrieved.
-// */
-//public void testGetPrimaryPackageDeclaration() {
-//	IPackageDeclaration pkg = this.copy.getPackageDeclaration("x.y");
-//	IJavaScriptElement primary = pkg.getPrimaryElement();
-//	assertTrue("Element should exist", primary.exists());
-//}
-///**
-// * Ensures that the primary type can be retrieved.
-// */
-//public void testGetPrimaryType() {
-//	IType type = this.copy.getType("A");
-//	IJavaScriptElement primary= type.getPrimaryElement();
-//	assertTrue("Element should exist", primary.exists());
-//}
-/**
- * Ensures that a type can be moved to another working copy.
- * (regression test for bug 7881 IType.move() clobbers editing buffer of destination element)
- */
-public void testMoveTypeToAnotherWorkingCopy() throws CoreException {
-	this.createFile(
-		"P/src/B.js",
-		"function B() {\n" +
-		"}");
-	IJavaScriptUnit cu2 = this.getCompilationUnit("P/src/B.js");
-	IJavaScriptUnit copy2 = cu2.getWorkingCopy(null);
-	try {
-		IField fld1 = this.copy.getField("field1");
-//		IType classB = copy2.getType("B");
-		fld1.move(copy2, null, null, false, null);
-		assertTrue("A should not exist", !fld1.exists());
-		assertTrue("B.A should exist", copy2.getField("field1").exists());
-		assertTrue("Buffer for A should not be null", this.copy.getBuffer() != null);
-		assertSourceEquals("Invalid content for A", 
-				"  var FIELD;\n" +
-				"  var field2;\n" +
-				"  function foo() {\n" +
-				"  }\n" ,
-			this.copy.getBuffer().getContents());
-		assertTrue("Buffer for B should not be null", copy2.getBuffer() != null);
-		assertSourceEquals("Invalid content for B", 
-				"var field1;\n" +
-				"\n" +
-				"function B() {\n" +
-				"}",
-			copy2.getBuffer().getContents());
-	} finally {
-		copy2.discardWorkingCopy();
-	}
-}
-/**
- * Test creating a shared working copy.
- */
-public void testShared1() throws JavaScriptModelException {
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit shared = this.cu.getWorkingCopy(owner, null);
-	try {
-		assertTrue("Should find shared working copy", this.cu.findWorkingCopy(owner) == shared);
-	} finally {
-		shared.discardWorkingCopy();
-	}
-	assertTrue("Should not find cu with same owner", this.cu.findWorkingCopy(owner) == null);
-}
-/**
- * Test several call to creating shared working copy.
- */
-public void testShared2() throws JavaScriptModelException {
-	WorkingCopyOwner owner = new WorkingCopyOwner() {};
-	IJavaScriptUnit shared = this.cu.getWorkingCopy(owner, null);
-	try {
-		IJavaScriptUnit shared2 = this.cu.getWorkingCopy(owner, null);
-		assertTrue("Second working copy should be identical to first one", shared2 == shared);
-	} finally {
-		shared.discardWorkingCopy();
-		try {
-			assertTrue("Should find shared working copy", this.cu.findWorkingCopy(owner) == shared);
-		} finally {
-			shared.discardWorkingCopy();
-		}
-	}
-	assertTrue("Should not find cu with same owner", this.cu.findWorkingCopy(owner) == null);
-}
-/**
- * Tests that multiple commits are possible with the same working copy.
- */
-public void testMultipleCommit() {
-
-	// Add a method to the working copy
-//	IType gp = this.copy.getType("A");
-	try {
-		this.copy.createMethod("function anotherMethod() {}\n",null, false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("creation failed", false);
-	}
-	
-	// commit the changes from the copy.
-	try {
-		this.copy.commitWorkingCopy(false, null);
-	} catch (JavaScriptModelException t) {
-		assertTrue("commit failed", false);
-	}
-	
-	// new method added
-	assertTrue("method should exist after commit", 
-		this.cu.getFunction("anotherMethod", new String[]{}).exists());
-
-	//add another method
-	try {
-		this.copy.createMethod("function anotherAnotherMethod() {}\n", null, false, null);
-	} catch (JavaScriptModelException x) {
-		assertTrue("Creation failed 2", false);
-	}
-
-	//commit the new method
-	try {
-		this.copy.commitWorkingCopy(false, null);
-	} catch (JavaScriptModelException t) {
-		assertTrue("commit2 failed", false);
-	}
-
-	// new method added
-	assertTrue("second method added should exist after commit", 
-		this.cu.getFunction("anotherAnotherMethod", new String[]{}).exists());
-}
-/**
- * Creates a working copy on a non-existing compilation unit.
- * (regression test for bug 8921  DCR - Need a way to create a working copy ignoring existing files)
- */
-public void testNonExistingCU() throws JavaScriptModelException {
-	IJavaScriptUnit nonExistingCU = this.getCompilationUnit("P/src/NonExisting.js");
-	IJavaScriptUnit workingCopy = null;
-	try {
-		// getBuffer()
-		workingCopy = nonExistingCU.getWorkingCopy(null);
-		assertSourceEquals("Buffer should be empty", "", ((IOpenable)workingCopy).getBuffer().getContents());
-		
-		// exists()
-		assertTrue("Working copy should exists", ((IJavaScriptElement)workingCopy).exists());
-		
-		// getCorrespondingResource()
-		assertEquals("Corresponding resource should be null", null, ((IJavaScriptElement)workingCopy).getCorrespondingResource());
-		
-		// getPrimaryElement()
-		assertEquals("Unexpected orginal element", nonExistingCU, workingCopy.getPrimaryElement());
-		
-		// getPath()
-		assertEquals("Unexpected path", new Path("/P/src/NonExisting.js"), ((IJavaScriptElement)workingCopy).getPath());
-		
-		// getResource()
-		assertEquals("Unexpected resource", nonExistingCU.getResource(), ((IJavaScriptElement)workingCopy).getResource());
-		
-		// isConsistent()
-		assertTrue("Working copy should be consistent", ((IOpenable)workingCopy).isConsistent());
-		
-		// restore()
-		boolean exception = false;
-		try {
-			workingCopy.restore();
-		} catch (JavaScriptModelException e) {
-			exception = true;
-		}
-		assertTrue("Should not be able to restore from primary element", exception);
-		
-		// makeConsistent()
-		((IOpenable)workingCopy).getBuffer().setContents(
-			"function X() {\n" +
-			"}");
-		assertTrue("Working copy should not be consistent", !((IOpenable)workingCopy).isConsistent());
-		((IOpenable)workingCopy).makeConsistent(null);
-		assertTrue("Working copy should be consistent", ((IOpenable)workingCopy).isConsistent());
-		
-		// save()
-		((IOpenable)workingCopy).getBuffer().setContents(
-			"function Y() {\n" +
-			"}");
-		((IOpenable)workingCopy).save(null, false);
-		assertTrue("Working copy should be consistent after save", ((IOpenable)workingCopy).isConsistent());
-		assertTrue("Primary cu should not exist", !nonExistingCU.exists());
-		
-		// commitWorkingCopy()
-		workingCopy.commitWorkingCopy(false, null);
-		assertTrue("Primary cu should exist", nonExistingCU.exists());
-
-		// hasResourceChanged()
-		assertTrue("Working copy's resource should now not mark as changed", !workingCopy.hasResourceChanged());
-		
-	} finally {
-		if (workingCopy != null) {
-			workingCopy.discardWorkingCopy();
-		}
-		if (nonExistingCU.exists()) {
-			nonExistingCU.delete(true, null);
-		}
-	}
-}
-/**
- * Tests the general functionality of a operations working with working copies:<ul>
- * <li>ensures that the copy cannot be renamed</li>
- * <li>ensures that the copy cannot be moved to the same location as the primary cu</li>
- * <li>ensures that the copy can be copied to a different location as the primary cu</li>
- */
-public void testOperations() throws JavaScriptModelException {
-	// rename working copy
-	boolean ex= false;
-	try {
-		this.copy.rename("someName.js", false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Incorrect status code for attempting to rename working copy", jme.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-		ex= true;
-	}
-	assertTrue("renaming a working copy should fail", ex);
-	
-	// move to same location as primary cu
-	ex= false;
-	try {
-		this.copy.move(this.cu.getParent(), null, "someName.js", false, null);
-	} catch (JavaScriptModelException jme) {
-		assertTrue("Incorrect status code for attempting to move working copy", jme.getStatus().getCode() == IJavaScriptModelStatusConstants.INVALID_ELEMENT_TYPES);
-		ex= true;
-	}
-	assertTrue("moving a working copy should fail", ex);
-
-	// copy working copy to default package
-	IPackageFragment pkg= getPackageFragment("P", "src", "");
-	this.copy.copy(pkg, null, "someName.js", false, null);
-	assertCreation(this.copy);	
-}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingExpressionsTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingExpressionsTest.java
deleted file mode 100644
index 3ba5338..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingExpressionsTest.java
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.ArrayAccess;
-import org.eclipse.wst.jsdt.core.dom.Assignment;
-import org.eclipse.wst.jsdt.core.dom.Block;
-import org.eclipse.wst.jsdt.core.dom.BooleanLiteral;
-import org.eclipse.wst.jsdt.core.dom.CatchClause;
-import org.eclipse.wst.jsdt.core.dom.CharacterLiteral;
-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.InfixExpression;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.NumberLiteral;
-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.ReturnStatement;
-import org.eclipse.wst.jsdt.core.dom.SimpleName;
-import org.eclipse.wst.jsdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.wst.jsdt.core.dom.StringLiteral;
-import org.eclipse.wst.jsdt.core.dom.ThisExpression;
-import org.eclipse.wst.jsdt.core.dom.TryStatement;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ASTRewrite;
-
-public class ASTRewritingExpressionsTest extends ASTRewritingTest {
-	private static final Class THIS= ASTRewritingExpressionsTest.class;
-
-	public ASTRewritingExpressionsTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-	
-	public void testArrayAccess() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo(o) {\n");
-		buf.append("	o[3 /* comment*/ - 1]= this.o[3 - 1];\n");
-		buf.append("}\n");
-		buf.append("");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{	// replace left hand side index, replace right hand side index by left side index
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			
-			ArrayAccess left= (ArrayAccess) assignment.getLeftHandSide();
-			ArrayAccess right= (ArrayAccess) assignment.getRightHandSide();
-			
-			NumberLiteral name= ast.newNumberLiteral("1");
-			rewrite.replace(left.getIndex(), name, null);
-			
-			ASTNode placeHolder= rewrite.createCopyTarget(left.getIndex());
-			rewrite.replace(right.getIndex(), placeHolder, null);
-			
-			SimpleName newName= ast.newSimpleName("o");
-			rewrite.replace(right.getArray(), newName, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo(o) {\n");
-		buf.append("	o[1]= o[3 /* comment*/ - 1];\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testAssignment() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    var i, j;\n");
-		buf.append("    i= 0;\n");
-		buf.append("    i-= j= 3;\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 3", statements.size() == 3);
-		{ // change left side & right side
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(1);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			
-			SimpleName name= ast.newSimpleName("j");
-			rewrite.replace(assignment.getLeftHandSide(), name, null);
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("goo"));
-			invocation.setExpression(ast.newSimpleName("other"));
-			
-			rewrite.replace(assignment.getRightHandSide(), invocation, null);
-		}
-		{ // change operator and operator of inner
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(2);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			
-			rewrite.set(assignment, Assignment.OPERATOR_PROPERTY, Assignment.Operator.DIVIDE_ASSIGN, null);
-			
-			Assignment inner= (Assignment) assignment.getRightHandSide();
-						
-			rewrite.set(inner, Assignment.OPERATOR_PROPERTY, Assignment.Operator.RIGHT_SHIFT_UNSIGNED_ASSIGN, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    var i, j;\n");
-		buf.append("    j= other.goo();\n");
-		buf.append("    i/= j>>>= 3;\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	public void testCatchClause() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    try {\n");
-		buf.append("    } catch (e) {\n");
-		buf.append("    }\n");			
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 3", statements.size() == 1);
-		List catchClauses= ((TryStatement) statements.get(0)).catchClauses();
-		assertTrue("Number of catchClauses not 1", catchClauses.size() == 1);
-		{ // change exception type
-			CatchClause clause= (CatchClause) catchClauses.get(0);
-			
-			SingleVariableDeclaration exception= clause.getException();
-			
-			SingleVariableDeclaration newException= ast.newSingleVariableDeclaration();
-						
-			newException.setName(ast.newSimpleName("ex"));
-			
-			rewrite.replace(exception, newException, null);
-		}
-		{ // change body
-			CatchClause clause= (CatchClause) catchClauses.get(0);
-			Block body= clause.getBody();
-			
-			Block newBody= ast.newBlock();
-			ReturnStatement returnStatement= ast.newReturnStatement();
-			newBody.statements().add(returnStatement);
-			
-			rewrite.replace(body, newBody, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    try {\n");
-		buf.append("    } catch (ex) {\n");
-		buf.append("        return;\n");	
-		buf.append("    }\n");			
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-
-//	/** @deprecated using deprecated code */
-//	public void testClassInstanceCreation() throws Exception {
-//		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("    function foo() {\n");
-//		buf.append("        goo().new Inner();\n");
-//		buf.append("        new Runnable(\"Hello\") {\n");
-//		buf.append("            public void run() {\n");
-//		buf.append("            }\n");		
-//		buf.append("        };\n");
-//		buf.append("    }\n");
-//		buf.append("}\n");	
-//		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-//		
-//		JavaScriptUnit astRoot= createAST(cu);
-//		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		
-//		AST ast= astRoot.getAST();
-//		
-//		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-//		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-//		Block block= methodDecl.getBody();
-//		List statements= block.statements();
-//		assertTrue("Number of statements not 2", statements.size() == 2);
-//		{ // remove expression, change type name, add argument, add anonym decl
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-//			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-//
-//			rewrite.remove(creation.getExpression(), null);
-//			
-//			SimpleName newName= ast.newSimpleName("NewInner");
-//			rewrite.replace(creation.getName(), newName, null);
-//			
-//			StringLiteral stringLiteral1= ast.newStringLiteral();
-//			stringLiteral1.setLiteralValue("Hello");
-//			rewrite.getListRewrite(creation, ClassInstanceCreation.ARGUMENTS_PROPERTY).insertLast(stringLiteral1, null);
-//
-//			
-//			StringLiteral stringLiteral2= ast.newStringLiteral();
-//			stringLiteral2.setLiteralValue("World");
-//			rewrite.getListRewrite(creation, ClassInstanceCreation.ARGUMENTS_PROPERTY).insertLast(stringLiteral2, null);
-//			
-//			assertTrue("Has anonym class decl", creation.getAnonymousClassDeclaration() == null);
-//			
-//			AnonymousClassDeclaration anonymDecl= ast.newAnonymousClassDeclaration();
-//			FunctionDeclaration anonymMethDecl= createNewMethod(ast, "newMethod", false);
-//			anonymDecl.bodyDeclarations().add(anonymMethDecl);
-//			
-//			rewrite.set(creation, ClassInstanceCreation.ANONYMOUS_CLASS_DECLARATION_PROPERTY, anonymDecl, null);			
-//
-//		}
-//		{ // add expression, remove argument, remove anonym decl 
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(1);
-//			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-//
-//			assertTrue("Has expression", creation.getExpression() == null);
-//			
-//			SimpleName newExpression= ast.newSimpleName("x");
-//			rewrite.set(creation, ClassInstanceCreation.EXPRESSION_PROPERTY, newExpression, null);			
-//
-//			
-//			List arguments= creation.arguments();
-//			assertTrue("Must have 1 argument", arguments.size() == 1);
-//			
-//			rewrite.remove((ASTNode) arguments.get(0), null);
-//			
-//			rewrite.remove(creation.getAnonymousClassDeclaration(), null);
-//		}
-//		
-//		String preview= evaluateRewrite(cu, rewrite);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test1;\n");
-//		buf.append("public class E {\n");
-//		buf.append("    function foo() {\n");
-//		buf.append("        new NewInner(\"Hello\", \"World\") {\n");
-//		buf.append("            private void newMethod(String str) {\n");
-//		buf.append("            }\n");
-//		buf.append("        };\n");
-//		buf.append("        x.new Runnable();\n");
-//		buf.append("    }\n");
-//		buf.append("}\n");	
-//		assertEqualString(preview, buf.toString());
-//		
-//	}
-	
-//	public void testClassInstanceCreation2() throws Exception {
-//		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-//		StringBuffer buf= new StringBuffer();
-//		buf.append("package test1;\n");
-//		buf.append("public class E<A> {\n");
-//		buf.append("    function foo() {\n");
-//		buf.append("        new Inner();\n");
-//		buf.append("        new <A>Inner();\n");
-//		buf.append("        new<A>Inner();\n");
-//		buf.append("        new <A, A>Inner();\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());
-//		
-//		AST ast= astRoot.getAST();
-//		
-//		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-//		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-//		Block block= methodDecl.getBody();
-//		List statements= block.statements();
-//		assertTrue("Number of statements not 3", statements.size() == 4);
-//		{ // add type argument
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-//			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-//			
-//			Type newTypeArg= ast.newSimpleType(ast.newSimpleName("A"));
-//			ListRewrite listRewrite= rewrite.getListRewrite(creation, ClassInstanceCreation.TYPE_ARGUMENTS_PROPERTY);
-//			listRewrite.insertFirst(newTypeArg, null);
-//			
-//		}
-//		{ // remove type argument
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(1);
-//			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-//
-//			List typeArgs= creation.typeArguments();
-//			rewrite.remove((ASTNode) typeArgs.get(0), null);
-//		}
-//		{ // remove type argument
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(2);
-//			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-//
-//			List typeArgs= creation.typeArguments();
-//			rewrite.remove((ASTNode) typeArgs.get(0), null);
-//		}
-//		{ // add type argument to existing
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(3);
-//			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-//
-//			Type newTypeArg= ast.newSimpleType(ast.newSimpleName("String"));
-//
-//			ListRewrite listRewrite= rewrite.getListRewrite(creation, ClassInstanceCreation.TYPE_ARGUMENTS_PROPERTY);
-//			listRewrite.insertLast(newTypeArg, null);
-//		}
-//		
-//		String preview= evaluateRewrite(cu, rewrite);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test1;\n");
-//		buf.append("public class E<A> {\n");
-//		buf.append("    function foo() {\n");
-//		buf.append("        new <A> Inner();\n");
-//		buf.append("        new Inner();\n");
-//		buf.append("        new Inner();\n");
-//		buf.append("        new <A, A, String>Inner();\n");
-//		buf.append("    }\n");
-//		buf.append("}\n");	
-//		assertEqualString(preview, buf.toString());
-//	}
-
-	
-	
-	/** @deprecated using deprecated code */
-	public void testConditionalExpression() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= (k == 0) ? 1 : 2;\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // change compare expression, then expression & else expression
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			ConditionalExpression condExpression= (ConditionalExpression) assignment.getRightHandSide();
-			
-			BooleanLiteral literal= ast.newBooleanLiteral(true);
-			rewrite.replace(condExpression.getExpression(), literal, null);
-			
-			SimpleName newThenExpre= ast.newSimpleName("x");
-			rewrite.replace(condExpression.getThenExpression(), newThenExpre, null);
-			
-			InfixExpression infixExpression= ast.newInfixExpression();
-			infixExpression.setLeftOperand(ast.newNumberLiteral("1"));
-			infixExpression.setRightOperand(ast.newNumberLiteral("2"));
-			infixExpression.setOperator(InfixExpression.Operator.PLUS);
-			
-			rewrite.replace(condExpression.getElseExpression(), infixExpression, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= true ? x : 1 + 2;\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testFieldAccess() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        foo().i= goo().i;\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // replace field expression, replace field name
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			FieldAccess leftFieldAccess= (FieldAccess) assignment.getLeftHandSide();
-			FieldAccess rightFieldAccess= (FieldAccess) assignment.getRightHandSide();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("xoo"));
-			rewrite.replace(leftFieldAccess.getExpression(), invocation, null);
-			
-			SimpleName newName= ast.newSimpleName("x");
-			rewrite.replace(leftFieldAccess.getName(), newName, null);
-
-			SimpleName rightHand= ast.newSimpleName("b");
-			rewrite.replace(rightFieldAccess.getExpression(), rightHand, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        xoo().x= b.i;\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testInfixExpression() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= 1 + 2;\n");
-		buf.append("        j= 1 + 2 + 3 + 4 + 5;\n");
-		buf.append("        k= 1 + 2 + 3 + 4 + 5;\n");		
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 3", statements.size() == 3);
-		{ // change left side & right side & operand
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			InfixExpression expr= (InfixExpression) assignment.getRightHandSide();
-			
-			SimpleName leftOp= ast.newSimpleName("k");
-			rewrite.replace(expr.getLeftOperand(), leftOp, null);	
-
-			SimpleName rightOp= ast.newSimpleName("j");
-			rewrite.replace(expr.getRightOperand(), rightOp, null);	
-			
-			// change operand
-			rewrite.set(expr, InfixExpression.OPERATOR_PROPERTY, InfixExpression.Operator.MINUS, null);
-		}
-		
-		{ // remove an ext. operand, add one and replace one
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(1);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			InfixExpression expr= (InfixExpression) assignment.getRightHandSide();
-			
-			List extendedOperands= expr.extendedOperands();
-			assertTrue("Number of extendedOperands not 3", extendedOperands.size() == 3);
-			
-			rewrite.remove((ASTNode) extendedOperands.get(0), null);
-			
-			SimpleName newOp1= ast.newSimpleName("k");
-			rewrite.replace((ASTNode) extendedOperands.get(1), newOp1, null);
-			
-			SimpleName newOp2= ast.newSimpleName("n");
-			rewrite.getListRewrite(expr, InfixExpression.EXTENDED_OPERANDS_PROPERTY).insertLast(newOp2, null);
-
-		}
-		
-		{ // change operand
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(2);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			InfixExpression expr= (InfixExpression) assignment.getRightHandSide();			
-			
-			rewrite.set(expr, InfixExpression.OPERATOR_PROPERTY, InfixExpression.Operator.TIMES, null);
-		}			
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= k - j;\n");
-		buf.append("        j= 1 + 2 + k + 5 + n;\n");
-		buf.append("        k= 1 * 2 * 3 * 4 * 5;\n");		
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-
-//	/** @deprecated using deprecated code */
-//	public void testInstanceofExpression() throws Exception {
-//		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("    function foo() {\n");
-//		buf.append("        goo(k instanceof Vector);\n");
-//		buf.append("        goo(k()instanceof Vector);\n");
-//		buf.append("    }\n");
-//		buf.append("}\n");	
-//		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-//		
-//		JavaScriptUnit astRoot= createAST(cu);
-//		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		
-//		AST ast= astRoot.getAST();
-//		
-//		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-//		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-//		Block block= methodDecl.getBody();
-//		List statements= block.statements();
-//		assertTrue("Number of statements not 2", statements.size() == 2);
-//		{ // change left side & right side
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-//			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-//			
-//			List arguments= invocation.arguments();
-//			InstanceofExpression expr= (InstanceofExpression) arguments.get(0);
-//			
-//			SimpleName name= ast.newSimpleName("x");
-//			rewrite.replace(expr.getLeftOperand(), name, null);
-//			
-//			Type newCastType= ast.newSimpleType(ast.newSimpleName("List"));
-//
-//			rewrite.replace(expr.getRightOperand(), newCastType, null);
-//		}
-//		{ // change left side
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(1);
-//			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-//			
-//			List arguments= invocation.arguments();
-//			InstanceofExpression expr= (InstanceofExpression) arguments.get(0);
-//			
-//			SimpleName name= ast.newSimpleName("x");
-//			rewrite.replace(expr.getLeftOperand(), name, null);
-//		}			
-//		String preview= evaluateRewrite(cu, rewrite);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test1;\n");
-//		buf.append("public class E {\n");
-//		buf.append("    function foo() {\n");
-//		buf.append("        goo(x instanceof List);\n");
-//		buf.append("        goo(x instanceof Vector);\n");
-//		buf.append("    }\n");
-//		buf.append("}\n");	
-//		assertEqualString(preview, buf.toString());
-//		
-//	}
-	
-	/** @deprecated using deprecated code */
-	public void testMethodInvocation() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        foo(1, 2).goo();\n");
-		buf.append("        foo(1, 2).goo();\n");
-		buf.append("        foo(1, 2).goo();\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 3", statements.size() == 3);
-		{ // remove expression, add param, change name
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-			
-			rewrite.remove(invocation.getExpression(), null);
-			
-			SimpleName name= ast.newSimpleName("x");
-			rewrite.replace(invocation.getName(), name, null);
-			
-			ASTNode arg= ast.newNumberLiteral("1");
-			rewrite.getListRewrite(invocation, FunctionInvocation.ARGUMENTS_PROPERTY).insertLast(arg, null);
-
-		}
-		{ // insert expression, delete params
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(1);
-			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-			
-			FunctionInvocation leftInvocation= (FunctionInvocation) invocation.getExpression();
-			
-			SimpleName newExpression= ast.newSimpleName("x");
-			rewrite.set(leftInvocation, FunctionInvocation.EXPRESSION_PROPERTY, newExpression, null);
-			
-			List args= leftInvocation.arguments();
-			rewrite.remove((ASTNode) args.get(0), null);
-			rewrite.remove((ASTNode) args.get(1), null);
-		}
-		{ // remove expression, add it as parameter
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(2);
-			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-			
-			ASTNode placeHolder= rewrite.createCopyTarget(invocation.getExpression());
-			
-			rewrite.set(invocation, FunctionInvocation.EXPRESSION_PROPERTY, null, null);
-
-			rewrite.getListRewrite(invocation, FunctionInvocation.ARGUMENTS_PROPERTY).insertLast(placeHolder, null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        x(1);\n");
-		buf.append("        x.foo().goo();\n");		
-		buf.append("        goo(foo(1, 2));\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-
-	/** @deprecated using deprecated code */
-	public void testMethodParamsRenameReorder() throws Exception {
-		if (true)
-			return;
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function m( y,  a) {\n");
-		buf.append("        m(y, a);\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "m");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ 
-			//params 
-			List params= methodDecl.parameters();
-			SingleVariableDeclaration firstParam= (SingleVariableDeclaration) params.get(0);
-			SingleVariableDeclaration secondParam= (SingleVariableDeclaration) params.get(1);
-
-			//args
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-			List arguments= invocation.arguments();
-			SimpleName first= (SimpleName) arguments.get(0);
-			SimpleName second= (SimpleName) arguments.get(1);
-			
-
-			//rename args
-			SimpleName newFirstArg= methodDecl.getAST().newSimpleName("yyy");
-			SimpleName newSecondArg= methodDecl.getAST().newSimpleName("bb");
-			rewrite.replace(first, newFirstArg, null);
-			rewrite.replace(second, newSecondArg, null);
-			
-
-			//rename params
-			SimpleName newFirstName= methodDecl.getAST().newSimpleName("yyy");
-			SimpleName newSecondName= methodDecl.getAST().newSimpleName("bb");
-			rewrite.replace(firstParam.getName(), newFirstName, null);
-			rewrite.replace(secondParam.getName(), newSecondName, null);
-			
-			//reoder params
-			ASTNode paramplaceholder1= rewrite.createCopyTarget(firstParam);
-			ASTNode paramplaceholder2= rewrite.createCopyTarget(secondParam);
-			
-			rewrite.replace(firstParam, paramplaceholder2, null);
-			rewrite.replace(secondParam, paramplaceholder1, null);
-			
-			//reorder args
-			ASTNode placeholder1= rewrite.createCopyTarget(first);
-			ASTNode placeholder2= rewrite.createCopyTarget(second);
-			
-			rewrite.replace(first, placeholder2, null);
-			rewrite.replace(second, placeholder1, null);
-
-			
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function m(bb, yyy) {\n");
-		buf.append("        m(bb, yyy);\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testMethodInvocation1() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        foo(foo(1, 2), 3);\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // remove expression, add param, change name
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-			
-			List arguments= invocation.arguments();
-			FunctionInvocation first= (FunctionInvocation) arguments.get(0);
-			ASTNode second= (ASTNode) arguments.get(1);
-			
-			ASTNode placeholder1= rewrite.createCopyTarget(first);
-			ASTNode placeholder2= rewrite.createCopyTarget(second);
-			
-			rewrite.replace(first, placeholder2, null);
-			rewrite.replace(second, placeholder1, null);
-			
-			List innerArguments= first.arguments();
-			ASTNode innerFirst= (ASTNode) innerArguments.get(0);
-			ASTNode innerSecond= (ASTNode) innerArguments.get(1);
-			
-			ASTNode innerPlaceholder1= rewrite.createCopyTarget(innerFirst);
-			ASTNode innerPlaceholder2= rewrite.createCopyTarget(innerSecond);
-			
-			rewrite.replace(innerFirst, innerPlaceholder2, null);
-			rewrite.replace(innerSecond, innerPlaceholder1, null);			
-			
-			
-			
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        foo(3, foo(2, 1));\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-//	public void testMethodInvocation2() throws Exception {
-//		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-//		StringBuffer buf= new StringBuffer();
-//		buf.append("    function foo() {\n");
-//		buf.append("        this.foo(3);\n");
-//		buf.append("        this.<String>foo(3);\n");
-//		buf.append("    }\n");
-//		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-//		
-//		JavaScriptUnit astRoot= createAST3(cu);
-//		AST ast= astRoot.getAST();
-//		ASTRewrite rewrite= ASTRewrite.create(ast);
-//		
-//		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-//		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-//		Block block= methodDecl.getBody();
-//		List statements= block.statements();
-//		assertTrue("Number of statements not 2", statements.size() == 2);
-//		{ // add type arguments
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-//			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-//			SimpleType newType= ast.newSimpleType(ast.newSimpleName("String"));
-//			ListRewrite listRewriter= rewrite.getListRewrite(invocation, FunctionInvocation.TYPE_ARGUMENTS_PROPERTY);
-//			listRewriter.insertFirst(newType, null);
-//		}
-//		{ // remove type arguments
-//			ExpressionStatement stmt= (ExpressionStatement) statements.get(1);
-//			FunctionInvocation invocation= (FunctionInvocation) stmt.getExpression();
-//			rewrite.remove((ASTNode) invocation.typeArguments().get(0), null);
-//		}
-//		String preview= evaluateRewrite(cu, rewrite);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test1;\n");
-//		buf.append("public class E {\n");
-//		buf.append("    function foo() {\n");
-//		buf.append("        this.<String>foo(3);\n");
-//		buf.append("        this.foo(3);\n");
-//		buf.append("    }\n");
-//		buf.append("}\n");		
-//		assertEqualString(preview, buf.toString());
-//		
-//	}	
-//	
-	/** @deprecated using deprecated code */
-	public void testParenthesizedExpression() throws Exception {
-		//System.out.println(getClass().getName()+"::" + getName() +" disabled (bug 23362)");
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= (1 + 2) * 3;\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // replace expression
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			
-			InfixExpression multiplication= (InfixExpression) assignment.getRightHandSide();
-			
-			ParenthesizedExpression parenthesizedExpression= (ParenthesizedExpression) multiplication.getLeftOperand();
-						
-			SimpleName name= ast.newSimpleName("x");
-			rewrite.replace(parenthesizedExpression.getExpression(), name, null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= (x) * 3;\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testPrefixExpression() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= --x;\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // modify operand and operation
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			
-			PrefixExpression preExpression= (PrefixExpression) assignment.getRightHandSide();
-					
-			NumberLiteral newOperation= ast.newNumberLiteral("10");
-			rewrite.replace(preExpression.getOperand(), newOperation, null);
-			
-			rewrite.set(preExpression, PrefixExpression.OPERATOR_PROPERTY, PrefixExpression.Operator.COMPLEMENT, null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= ~10;\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}	
-	
-	/** @deprecated using deprecated code */
-	public void testPostfixExpression() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= x--;\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // modify operand and operation
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			Assignment assignment= (Assignment) stmt.getExpression();
-			
-			PostfixExpression postExpression= (PostfixExpression) assignment.getRightHandSide();
-					
-			NumberLiteral newOperation= ast.newNumberLiteral("10");
-			rewrite.replace(postExpression.getOperand(), newOperation, null);
-			
-			rewrite.set(postExpression, PostfixExpression.OPERATOR_PROPERTY, PostfixExpression.Operator.INCREMENT, null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        i= 10++;\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}		
-	
-	/** @deprecated using deprecated code */
-	//TODO fix
-	public void XtestThisExpression() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    return this;\n");		
-		buf.append("    return Outer.this;\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 2", statements.size() == 2);
-		{ // add qualifier
-			ReturnStatement returnStatement= (ReturnStatement) statements.get(0);
-			
-			ThisExpression thisExpression= (ThisExpression) returnStatement.getExpression();
-
-			SimpleName newExpression= ast.newSimpleName("X");
-			rewrite.set(thisExpression, ThisExpression.QUALIFIER_PROPERTY, newExpression, null);
-		}
-		{ // remove qualifier
-			ReturnStatement returnStatement= (ReturnStatement) statements.get(1);
-			
-			ThisExpression thisExpression= (ThisExpression) returnStatement.getExpression();
-
-			rewrite.remove(thisExpression.getQualifier(), null);
-		}
-
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return X.this;\n");		
-		buf.append("        return this;\n");
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testSimpleName() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo(hello) {\n");
-		buf.append("        return hello;\n");		
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // replace identifier
-			ReturnStatement returnStatement= (ReturnStatement) statements.get(0);
-			
-			SimpleName simpleName= (SimpleName) returnStatement.getExpression();
-			rewrite.set(simpleName, SimpleName.IDENTIFIER_PROPERTY, "changed", null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo(hello) {\n");
-		buf.append("        return changed;\n");		
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testNumberLiteral() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return 1;\n");		
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // replace number
-			ReturnStatement returnStatement= (ReturnStatement) statements.get(0);
-			
-			NumberLiteral literal= (NumberLiteral) returnStatement.getExpression();
-			rewrite.set(literal, NumberLiteral.TOKEN_PROPERTY, "11", null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return 11;\n");		
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testBooleanLiteral() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return true;\n");		
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // replace number
-			ReturnStatement returnStatement= (ReturnStatement) statements.get(0);
-			
-			BooleanLiteral literal= (BooleanLiteral) returnStatement.getExpression();
-			rewrite.set(literal, BooleanLiteral.BOOLEAN_VALUE_PROPERTY, Boolean.FALSE, null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return false;\n");		
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testStringLiteral() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return \"Hello\";\n");		
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // replace number
-			ReturnStatement returnStatement= (ReturnStatement) statements.get(0);
-			
-			StringLiteral literal= (StringLiteral) returnStatement.getExpression();
-			rewrite.set(literal, StringLiteral.ESCAPED_VALUE_PROPERTY, "\"Eclipse\"", null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return \"Eclipse\";\n");		
-		buf.append("    }\n");
-		assertEqualString(preview, buf.toString());
-		
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testCharacterLiteral() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return 'x';\n");		
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // replace number
-			ReturnStatement returnStatement= (ReturnStatement) statements.get(0);
-			
-			CharacterLiteral literal= (CharacterLiteral) returnStatement.getExpression();
-			rewrite.set(literal, CharacterLiteral.ESCAPED_VALUE_PROPERTY, "'y'", null);
-		}
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo() {\n");
-		buf.append("        return 'y';\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/ASTRewritingGroupNodeTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingGroupNodeTest.java
deleted file mode 100644
index 0ee249f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingGroupNodeTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-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.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionInvocation;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.ReturnStatement;
-import org.eclipse.wst.jsdt.core.dom.Statement;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ASTRewrite;
-
-public class ASTRewritingGroupNodeTest extends ASTRewritingTest {
-	private static final Class THIS= ASTRewritingGroupNodeTest.class;
-
-	public ASTRewritingGroupNodeTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-	
-	public void testCollapsedTargetNodes() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo(o) {\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		
-		ReturnStatement returnStatement= (ReturnStatement) methodDecl.getBody().statements().get(0);
-		
-		FunctionInvocation newMethodInv1= ast.newFunctionInvocation();
-		newMethodInv1.setName(ast.newSimpleName("foo1"));
-		ExpressionStatement st1= ast.newExpressionStatement(newMethodInv1);
-		
-		FunctionInvocation newMethodInv2= ast.newFunctionInvocation();
-		newMethodInv2.setName(ast.newSimpleName("foo2"));
-		ExpressionStatement st2= ast.newExpressionStatement(newMethodInv2);
-		
-		ASTNode placeholder= rewrite.createGroupNode(new Statement[] { st1, st2 });
-		rewrite.replace(returnStatement, placeholder, null);
-			
-		String preview= evaluateRewrite(cu, rewrite); 
-		
-		buf= new StringBuffer();
-		buf.append("    function foo(o) {\n");
-		buf.append("        foo1();\n");
-		buf.append("        foo2();\n");
-		buf.append("    }\n");
-		String expected= buf.toString();		
-
-		assertEqualString(preview, expected);
-	}
-	
-	public void testCollapsedTargetNodes2() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		
-		StringBuffer buf= new StringBuffer();
-		buf.append("    function foo( o) {\n");
-		buf.append("        {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(astRoot, "foo");
-		
-		Statement statement= (Statement) methodDecl.getBody().statements().get(0);
-		
-		FunctionInvocation newMethodInv1= ast.newFunctionInvocation();
-		newMethodInv1.setName(ast.newSimpleName("foo1"));
-		ExpressionStatement st1= ast.newExpressionStatement(newMethodInv1);
-		
-		FunctionInvocation newMethodInv2= ast.newFunctionInvocation();
-		newMethodInv2.setName(ast.newSimpleName("foo2"));
-		ExpressionStatement st2= ast.newExpressionStatement(newMethodInv2);
-		
-		ReturnStatement st3= (ReturnStatement) rewrite.createCopyTarget((ASTNode) ((Block) statement).statements().get(0));
-		
-		ASTNode placeholder= rewrite.createGroupNode(new Statement[] { st1, st2, st3 });
-		rewrite.replace(statement, placeholder, null);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    function foo( o) {\n");
-		buf.append("        foo1();\n");
-		buf.append("        foo2();\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");
-		String expected= buf.toString();		
-
-		assertEqualString(preview, expected);
-	}
-	
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingInsertBoundTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingInsertBoundTest.java
deleted file mode 100644
index 2e3c85c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingInsertBoundTest.java
+++ /dev/null
@@ -1,1525 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTNode;
-import org.eclipse.wst.jsdt.core.dom.FieldDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationFragment;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ASTRewrite;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ListRewrite;
-import org.eclipse.wst.jsdt.core.dom.rewrite.TargetSourceRangeComputer;
-import org.eclipse.wst.jsdt.core.dom.rewrite.TargetSourceRangeComputer.SourceRange;
-
-public class ASTRewritingInsertBoundTest extends ASTRewritingTest {
-
-	private static final Class THIS= ASTRewritingInsertBoundTest.class;
-	
-	public ASTRewritingInsertBoundTest(String name) {
-		super(name);
-	}
-	
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-	
-	/** @deprecated using deprecated code */
-	private FunctionDeclaration newMethodDeclaration(AST ast, String name) {
-		FunctionDeclaration decl= ast.newFunctionDeclaration();
-		decl.setName(ast.newSimpleName(name));
-		decl.setBody(null);
-//		decl.setReturnType(ast.newPrimitiveType(PrimitiveType.VOID));
-		return decl;
-	}
-	
-	private FieldDeclaration newFieldDeclaration(AST ast, String name) {
-		VariableDeclarationFragment frag= ast.newVariableDeclarationFragment();
-		frag.setName(ast.newSimpleName(name));
-		FieldDeclaration decl= ast.newFieldDeclaration(frag);
-//		decl.setType(ast.newPrimitiveType(PrimitiveType.INT));
-		return decl;
-	}	
-	
-	
-	/** @deprecated using deprecated code */
-	public void testInsert1() throws Exception {
-		// insert first and last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertFirst(decl1, null);
-		listRewrite.insertLast(decl2, null);
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n}\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testInsert3() throws Exception {
-		// insert 2 x before 
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-		
-		ASTNode middleDecl= (ASTNode) decls.get(1);
-		ASTNode lastDecl= (ASTNode) decls.get(2);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertBefore(decl1, middleDecl, null);
-		listRewrite.insertBefore(decl2, lastDecl, null);
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testInsert2() throws Exception {
-		// insert 2 x first and 2 x last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-		FunctionDeclaration decl3= newMethodDeclaration(ast, "new3");
-		FunctionDeclaration decl4= newMethodDeclaration(ast, "new4");
-				
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertFirst(decl1, null);
-		listRewrite.insertAfter(decl2, decl1, null);
-		listRewrite.insertLast(decl3, null);
-		listRewrite.insertAfter(decl4, decl3, null);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n}\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n}\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("    function new3() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function new4() {\n    }\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}	
-
-	public void testInsert1Before() throws Exception {
-		// insert first and last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertFirst(decl1, null);
-		listRewrite.insertLast(decl2, null);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var new1;\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("    var new2;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testInsert2Before() throws Exception {
-		// insert 2x first and 2 x last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-		FieldDeclaration decl3= newFieldDeclaration(ast, "new3");
-		FieldDeclaration decl4= newFieldDeclaration(ast, "new4");
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertFirst(decl1, null);
-		listRewrite.insertAfter(decl2, decl1, null);
-		listRewrite.insertLast(decl3, null);
-		listRewrite.insertAfter(decl4, decl3, null);
-		
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var new1;\n");
-		buf.append("\n");
-		buf.append("    var new2;\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("    var new3;\n");
-		buf.append("\n");
-		buf.append("    var new4;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	public void testInsert3Before() throws Exception {
-		// insert 2 x after 
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-
-		ASTNode firstDecl= (ASTNode) decls.get(0);
-		ASTNode middleDecl= (ASTNode) decls.get(1);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertAfter(decl1, firstDecl, null);
-		listRewrite.insertAfter(decl2, middleDecl, null);
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("    var new1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("    var new2;\n");	
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemove1() throws Exception {
-		// remove first and last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemove2() throws Exception {
-		// remove second
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(1), null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemove3() throws Exception {
-		// remove 2nd and 3rd
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(1), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemove4() throws Exception {
-		// remove all
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(1), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testRemoveInsert1() throws Exception {
-		// remove first add before first, remove last add after last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertFirst(decl1, null);
-		listRewrite.insertLast(decl2, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemoveInsert2() throws Exception {
-		// remove first add 2x first, remove last add 2x  last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-		FunctionDeclaration decl3= newMethodDeclaration(ast, "new3");
-		FunctionDeclaration decl4= newMethodDeclaration(ast, "new4");
-		
-		ASTNode firstDecl= (ASTNode) decls.get(0);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertBefore(decl1, firstDecl, null);
-		listRewrite.insertAfter(decl2, firstDecl, null);
-		listRewrite.insertLast(decl3, null);
-		listRewrite.insertAfter(decl4, decl3, null);
-		
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function new3() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function new4() {\n    }\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemoveInsert3() throws Exception {
-		// remove middle, add before, add after
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(1), null);
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-		
-		ASTNode middleDecl= (ASTNode) decls.get(1);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertBefore(decl1, middleDecl, null);
-		listRewrite.insertAfter(decl2, middleDecl, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testRemoveInsert1Before() throws Exception {
-		// remove first add before first, remove last add after last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-				
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertFirst(decl1, null);
-		listRewrite.insertLast(decl2, null);
-		
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var new1;\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var new2;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemoveInsert2Before() throws Exception {
-		// remove first add 2x first, remove last add 2x  last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		buf.append("}\n");		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-		FieldDeclaration decl3= newFieldDeclaration(ast, "new3");
-		FieldDeclaration decl4= newFieldDeclaration(ast, "new4");
-
-		ASTNode firstDecl= (ASTNode) decls.get(0);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertBefore(decl1, firstDecl, null);
-		listRewrite.insertAfter(decl2, firstDecl, null);
-		listRewrite.insertLast(decl3, null);
-		listRewrite.insertAfter(decl4, decl3, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var new1;\n");
-		buf.append("\n");
-		buf.append("    var new2;\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var new3;\n");
-		buf.append("\n");
-		buf.append("    var new4;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemoveInsert3Before() throws Exception {
-		// remove middle, add before, add after
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-
-		ASTNode middleDecl= (ASTNode) decls.get(1);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.remove(middleDecl, null);
-		
-		listRewrite.insertBefore(decl1, middleDecl, null);
-		listRewrite.insertAfter(decl2, middleDecl, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var new1;\n");
-		buf.append("\n");
-		buf.append("    var new2;\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemoveInsert4() throws Exception {
-		// remove first and add after first, remove last and add before last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-
-		ASTNode firstDecl= (ASTNode) decls.get(0);
-		ASTNode lastDecl= (ASTNode) decls.get(2);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		
-		listRewrite.remove(firstDecl, null);
-		listRewrite.remove(lastDecl, null);
-		
-		listRewrite.insertAfter(decl1, firstDecl, null);
-		listRewrite.insertBefore(decl2, lastDecl, null);	   
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testRemoveInsert4Before() throws Exception {
-		// remove first and add after first, remove last and add before last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-
-		ASTNode firstDecl= (ASTNode) decls.get(0);
-		ASTNode lastDecl= (ASTNode) decls.get(2);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.remove(firstDecl, null);
-		listRewrite.remove(lastDecl, null);
-		
-		listRewrite.insertAfter(decl1, firstDecl, null);
-		listRewrite.insertBefore(decl2, lastDecl, null);	   
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    int new1;\n");
-		buf.append("\n");
-		buf.append("    public int x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    int new2;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	public void testRemoveInsert5() throws Exception {
-		// remove first and add after and before first, remove last and add after and before last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-		FunctionDeclaration decl3= newMethodDeclaration(ast, "new3");
-		FunctionDeclaration decl4= newMethodDeclaration(ast, "new4");
-		
-		ASTNode firstDecl= (ASTNode) decls.get(0);
-		ASTNode lastDecl= (ASTNode) decls.get(2);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		
-		rewrite.remove(firstDecl, null);
-		rewrite.remove(lastDecl, null);
-		
-		listRewrite.insertBefore(decl1, firstDecl, null);
-		listRewrite.insertAfter(decl2, firstDecl, null);
-		listRewrite.insertBefore(decl3, lastDecl, null);
-		listRewrite.insertAfter(decl4, lastDecl, null);
-		
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function new3() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function new4() {\n    }\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testRemoveInsert5Before() throws Exception {
-		// remove first and add after first, remove last and add before last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-		FieldDeclaration decl3= newFieldDeclaration(ast, "new3");
-		FieldDeclaration decl4= newFieldDeclaration(ast, "new4");
-
-		ASTNode firstDecl= (ASTNode) decls.get(0);
-		ASTNode lastDecl= (ASTNode) decls.get(2);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		
-		rewrite.remove(firstDecl, null);
-		rewrite.remove(lastDecl, null);
-		
-		listRewrite.insertBefore(decl1, firstDecl, null);
-		listRewrite.insertAfter(decl2, firstDecl, null);
-		listRewrite.insertBefore(decl3, lastDecl, null);
-		listRewrite.insertAfter(decl4, lastDecl, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var new1;\n");
-		buf.append("\n");
-		buf.append("    var new2;\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var new3;\n");
-		buf.append("\n");
-		buf.append("    var new4;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-
-	public void testRemoveInsert6() throws Exception {
-		// remove all, add before first and after last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(1), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertFirst(decl1, null);
-		listRewrite.insertLast(decl2, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemoveInsert6Before() throws Exception {
-		// remove all, add before first and after last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    public int x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    public int x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    public int x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(1), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertFirst(decl1, null);
-		listRewrite.insertLast(decl2, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    int new1;\n");
-		buf.append("\n");
-		buf.append("    int new2;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-
-	public void testRemoveInsert7() throws Exception {
-		// remove all, add after first and before last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function foo1();\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    function foo2();\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    function foo3();\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(1), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-		
-		FunctionDeclaration decl1= newMethodDeclaration(ast, "new1");
-		FunctionDeclaration decl2= newMethodDeclaration(ast, "new2");
-
-		ASTNode middleDecl= (ASTNode) decls.get(1);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertBefore(decl1, middleDecl, null);
-		listRewrite.insertAfter(decl2, middleDecl, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    function new1() {\n    }\n");
-		buf.append("\n");
-		buf.append("    function new2() {\n    }\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemoveInsert7Before() throws Exception {
-		// remove all, add after first and before last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("//c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("//c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		List decls= astRoot.statements();
-
-		rewrite.remove((ASTNode) decls.get(0), null);
-		rewrite.remove((ASTNode) decls.get(1), null);
-		rewrite.remove((ASTNode) decls.get(2), null);
-		
-		FieldDeclaration decl1= newFieldDeclaration(ast, "new1");
-		FieldDeclaration decl2= newFieldDeclaration(ast, "new2");
-
-		ASTNode middleDecl= (ASTNode) decls.get(1);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.STATEMENTS_PROPERTY);
-		listRewrite.insertBefore(decl1, middleDecl, null);
-		listRewrite.insertAfter(decl2, middleDecl, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("//c1\n");
-		buf.append("\n");
-		buf.append("    var new1;\n");
-		buf.append("\n");
-		buf.append("    var new2;\n");
-		buf.append("\n");
-		buf.append("//c4\n");
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-
-	public void testTargetSourceRangeComputer () throws Exception {
-		// remove all, add after first and before last
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("    //c1\n");
-		buf.append("\n");
-		buf.append("    var x1;\n");
-		buf.append("\n");
-		buf.append("    //c2\n");
-		buf.append("\n");
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("    //c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("    //c4\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-//		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-//		FieldDeclaration[] decls= type.getFields();
-		List decls = astRoot.statements();
-		final Map extendedRanges= new HashMap();
-	
-		VariableDeclarationStatement f1=(VariableDeclarationStatement)decls.get(0);
-//		FieldDeclaration f1= decls[0];
-		int off1= buf.indexOf("//c1");
-		int end1= f1.getStartPosition() + f1.getLength();
-		extendedRanges.put(f1, new SourceRange(off1, end1 - off1));
-			
-		rewrite.setTargetSourceRangeComputer(new TargetSourceRangeComputer() {
-			public SourceRange computeSourceRange(ASTNode node) {
-				SourceRange range= (SourceRange) extendedRanges.get(node);
-				if (range != null)
-					return range;
-				return super.computeSourceRange(node);
-			}
-		});
-
-		rewrite.remove(f1, null);
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("    var x2;\n");
-		buf.append("\n");
-		buf.append("    //c3\n");
-		buf.append("\n");
-		buf.append("    var x3;\n");
-		buf.append("\n");
-		buf.append("    //c4\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/ASTRewritingJavadocTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingJavadocTest.java
deleted file mode 100644
index 08613c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingJavadocTest.java
+++ /dev/null
@@ -1,1062 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-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.rewrite.ASTRewrite;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ListRewrite;
-
-public class ASTRewritingJavadocTest extends ASTRewritingTest {
-	
-	private static final Class THIS= ASTRewritingJavadocTest.class;
-
-	public ASTRewritingJavadocTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-	
-	public void testParamName() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @param name Hello World.\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement tagElement= (TagElement) tags.get(0);
-			List fragments= tagElement.fragments();
-			assertTrue("Has fragments", !fragments.isEmpty());
-			
-			SimpleName name= (SimpleName) fragments.get(0);
-			rewrite.replace(name, ast.newSimpleName("newName"), 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("    /**\n");			
-		buf.append("     * @param newName Hello World.\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-
-	public void testSeeTag1() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @see String A String\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement tagElement= (TagElement) tags.get(0);
-			List fragments= tagElement.fragments();
-			assertTrue("Has fragments", !fragments.isEmpty());
-			
-			SimpleName name= (SimpleName) fragments.get(0);
-			rewrite.replace(name, ast.newSimpleName("Vector"), 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("    /**\n");			
-		buf.append("     * @see Vector A String\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testSeeTag2() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @see #toString A String\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement tagElement= (TagElement) tags.get(0);
-			List fragments= tagElement.fragments();
-			assertTrue("Has fragments", !fragments.isEmpty());
-			
-			MemberRef ref= (MemberRef) fragments.get(0);
-			rewrite.replace(ref.getName(), ast.newSimpleName("hashCode"), 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("    /**\n");			
-		buf.append("     * @see #hashCode A String\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testSeeTag3() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @see #toString A String\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement tagElement= (TagElement) tags.get(0);
-			List fragments= tagElement.fragments();
-			assertTrue("Has fragments", !fragments.isEmpty());
-			
-			MemberRef ref= (MemberRef) fragments.get(0);
-			rewrite.set(ref, MemberRef.QUALIFIER_PROPERTY, ast.newSimpleName("E"), 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("    /**\n");			
-		buf.append("     * @see E#toString A String\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testSeeTagParamInsert1() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @see #toString() A String\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement tagElement= (TagElement) tags.get(0);
-			List fragments= tagElement.fragments();
-			assertTrue("Has fragments", !fragments.isEmpty());
-			
-			FunctionRef ref= (FunctionRef) fragments.get(0);
-			FunctionRefParameter param= ast.newFunctionRefParameter();
-			param.setName(ast.newSimpleName("arg"));
-			param.setType(ast.newPrimitiveType(PrimitiveType.INT));
-			rewrite.getListRewrite(ref, FunctionRef.PARAMETERS_PROPERTY).insertLast(param, 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("    /**\n");			
-		buf.append("     * @see #toString(int arg) A String\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testSeeTagParamInsert2() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * {@link #toString(int x) A String}\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement topElement= (TagElement) tags.get(0);
-			List fragments= topElement.fragments();
-			assertTrue("Has fragments", !fragments.isEmpty());
-			
-			TagElement tagElement= (TagElement) fragments.get(0);
-			fragments= tagElement.fragments();
-			assertTrue("Has fragments", !fragments.isEmpty());
-			
-			FunctionRef ref= (FunctionRef) fragments.get(0);
-			FunctionRefParameter param= ast.newFunctionRefParameter();
-			param.setName(ast.newSimpleName("arg"));
-			param.setType(ast.newPrimitiveType(PrimitiveType.INT));
-			rewrite.getListRewrite(ref, FunctionRef.PARAMETERS_PROPERTY).insertLast(param, 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("    /**\n");			
-		buf.append("     * {@link #toString(int x, int arg) A String}\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTagInsert1() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @param name\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement newTag= ast.newTagElement();
-			newTag.setTagName("@throws");
-			newTag.fragments().add(ast.newSimpleName("Exception"));
-			TextElement text= ast.newTextElement();
-			text.setText("Thrown for no reason.");
-			newTag.fragments().add(text);
-
-			rewrite.getListRewrite(javadoc, JSdoc.TAGS_PROPERTY).insertLast(newTag, 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("    /**\n");			
-		buf.append("     * @param name\n");
-		buf.append("     * @throws Exception Thrown for no reason.\n");		
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTagInsert2() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @param name\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement newTag= ast.newTagElement();
-			newTag.setTagName("@see");
-			MemberRef ref= ast.newMemberRef();
-			ref.setQualifier(ast.newSimpleName("Vector"));
-			ref.setName(ast.newSimpleName("size"));
-			newTag.fragments().add(ref);
-			
-			rewrite.getListRewrite(javadoc, JSdoc.TAGS_PROPERTY).insertFirst(newTag, 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("    /**\n");
-		buf.append("     * @see Vector#size\n");
-		buf.append("     * @param name\n");		
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTagInsert3() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 0);
-			
-			TagElement newTag= ast.newTagElement();
-			newTag.setTagName(null);
-			
-			TextElement text= ast.newTextElement();
-			text.setText("Comment");
-			newTag.fragments().add(text);
-			
-			TagElement nested= ast.newTagElement();
-			nested.setTagName("@link");
-			
-			newTag.fragments().add(nested);
-			
-			FunctionRef ref= ast.newFunctionRef();
-			ref.setQualifier(ast.newSimpleName("Vector"));
-			ref.setName(ast.newSimpleName("size"));
-			nested.fragments().add(ref);
-			
-			TextElement textNested= ast.newTextElement();
-			textNested.setText("Link");
-			nested.fragments().add(textNested);
-
-			rewrite.getListRewrite(javadoc, JSdoc.TAGS_PROPERTY).insertFirst(newTag, 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("    /**\n");
-		buf.append("     * Comment {@link Vector#size() Link}\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testTagInsert4() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @param name\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			TagElement newTag= ast.newTagElement();
-			newTag.setTagName("@throws");
-			List fragments= newTag.fragments();
-			fragments.add(ast.newSimpleName("Exception"));
-			TextElement element1 = ast.newTextElement();
-			element1.setText("Description line 1\n * Description line 2");
-			fragments.add(element1);
-
-			rewrite.getListRewrite(javadoc, JSdoc.TAGS_PROPERTY).insertLast(newTag, 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("    /**\n");			
-		buf.append("     * @param name\n");
-		buf.append("     * @throws Exception Description line 1\n");
-		buf.append("     * Description line 2\n");	
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTagRemove1() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @param name\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 1);
-			
-			rewrite.remove((ASTNode) tags.get(0), 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("    /**\n");			
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testTagRemove2() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @param name1 The first name.\n");
-		buf.append("     * @param name2 The second name.\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 2);
-			
-			rewrite.remove((ASTNode) tags.get(0), 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("    /**\n");			
-		buf.append("     * @param name2 The second name.\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTagRemove3() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @param name1 The first name.\n");
-		buf.append("     * @param name2 The second name.\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 2);
-			
-			rewrite.remove((ASTNode) tags.get(1), 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("    /**\n");			
-		buf.append("     * @param name1 The first name.\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testTagRemove4() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("/**\n");			
-		buf.append(" * @author xy\n");
-		buf.append(" */\n");
-		buf.append("package test1;\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("package-info.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST3(cu);
-
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		rewrite.remove(astRoot.getPackage().getJavadoc(), null);
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testTagRemoveInsert() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @param name1 The first name.\n");
-		buf.append("     * @param name2 The second name.\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= methodDecl.getJavadoc();
-			List tags= javadoc.tags();
-			assertTrue("Has one tag", tags.size() == 2);
-			
-			ListRewrite listRewrite= rewrite.getListRewrite(javadoc, JSdoc.TAGS_PROPERTY);
-			listRewrite.remove((ASTNode) tags.get(1), null);
-			
-			AST ast= astRoot.getAST();
-			TagElement element= ast.newTagElement();
-			element.setTagName("@since");
-			
-			TextElement textElement= ast.newTextElement();
-			textElement.setText("1.1");
-			element.fragments().add(textElement);
-			
-			listRewrite.insertLast(element, 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("    /**\n");			
-		buf.append("     * @param name1 The first name.\n");
-		buf.append("     * @since 1.1\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testAddJavadoc() throws Exception {
-		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");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			JSdoc javadoc= ast.newJSdoc();
-			TagElement element= ast.newTagElement();
-			element.setTagName("@since");
-			
-			TextElement textElement= ast.newTextElement();
-			textElement.setText("1.1");
-			element.fragments().add(textElement);
-			javadoc.tags().add(element);
-			
-			rewrite.set(methodDecl, FunctionDeclaration.JAVADOC_PROPERTY, javadoc, 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("    /**\n");			
-		buf.append("     * @since 1.1\n");
-		buf.append("     */\n");
-		buf.append("    public void gee(String name) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testAddJavadoc2() throws Exception {
-		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");
-		buf.append("    public int count;\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			FieldDeclaration fieldDecl= type.getFields()[0];
-			
-			JSdoc javadoc= ast.newJSdoc();
-			TagElement element= ast.newTagElement();
-			element.setTagName("@since");
-			
-			TextElement textElement= ast.newTextElement();
-			textElement.setText("1.1");
-			element.fragments().add(textElement);
-			javadoc.tags().add(element);
-			
-			rewrite.set(fieldDecl, FieldDeclaration.JAVADOC_PROPERTY, javadoc, 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("    /**\n");			
-		buf.append("     * @since 1.1\n");
-		buf.append("     */\n");
-		buf.append("    public int count;\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testRemoveJavadoc() throws Exception {
-		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");
-		buf.append("    /**\n");			
-		buf.append("     * @since 1.1\n");
-		buf.append("     */\n");
-		buf.append("    static {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			Initializer initializer= (Initializer) type.bodyDeclarations().get(0);
-			rewrite.remove(initializer.getJavadoc(), 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("    static {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testRemoveJavadoc2() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("/**\n");			
-		buf.append(" * @since 1.1\n");
-		buf.append(" */\n");
-		buf.append("public class E {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			
-			rewrite.remove(type.getJavadoc(), null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	public void testMoveTags() throws Exception {
-		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");
-		buf.append("    /**\n");		
-		buf.append("     * @author Mr X\n");
-		buf.append("     *         and friends\n");
-		buf.append("     * @since 1.1\n");
-		buf.append("     *         maybe less\n");
-		buf.append("     */\n");
-		buf.append("    static {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			Initializer initializer= (Initializer) type.bodyDeclarations().get(0);
-			JSdoc javadoc = initializer.getJavadoc();
-			List tags= javadoc.tags();
-			ASTNode node1 = (ASTNode) tags.get(0);
-			ASTNode placeholder1 = rewrite.createMoveTarget(node1);
-			ASTNode node2 = (ASTNode) tags.get(1);
-			ASTNode placeholder2 = rewrite.createMoveTarget(node2);
-			
-			rewrite.replace(node1, placeholder2, null);
-			rewrite.replace(node2, placeholder1, 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("    /**\n");	
-		buf.append("     * @since 1.1\n");
-		buf.append("     *         maybe less\n");
-		buf.append("     * @author Mr X\n");
-		buf.append("     *         and friends\n");
-		buf.append("     */\n");
-		buf.append("    static {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testChangeTagElement() throws Exception {
-		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");
-		buf.append("    /**\n");		
-		buf.append("     * Mr X\n");
-		buf.append("     * @author Mr X\n");
-		buf.append("     * @author Mr X\n");
-		buf.append("     */\n");
-		buf.append("    static {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-	
-		{
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			Initializer initializer= (Initializer) type.bodyDeclarations().get(0);
-			JSdoc javadoc = initializer.getJavadoc();
-			List tags= javadoc.tags();
-			TagElement elem1= (TagElement) tags.get(0);
-			rewrite.set(elem1, TagElement.TAG_NAME_PROPERTY, "@param", null);
-			
-			TagElement elem2= (TagElement) tags.get(1);
-			rewrite.set(elem2, TagElement.TAG_NAME_PROPERTY, "@param", null);
-			
-			TagElement elem3= (TagElement) tags.get(2);
-			rewrite.set(elem3, TagElement.TAG_NAME_PROPERTY, null, 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("    /**\n");		
-		buf.append("     * @paramMr X\n");
-		buf.append("     * @param Mr X\n");
-		buf.append("     *  Mr X\n");
-		buf.append("     */\n");
-		buf.append("    static {\n");
-		buf.append("    }\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/ASTRewritingMethodDeclTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java
deleted file mode 100644
index 152b42c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java
+++ /dev/null
@@ -1,2180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-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.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;
-
-public class ASTRewritingMethodDeclTest extends ASTRewritingTest {
-	
-	private static final Class THIS= ASTRewritingMethodDeclTest.class;
-
-	public ASTRewritingMethodDeclTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-
-	/** @deprecated using deprecated code */
-	public void testMethodDeclChanges() 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 E(int p1, int p2, int p3) {}\n");
-		buf.append("    public void gee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void hee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void iee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public void jee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public abstract void kee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("    public abstract void lee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // convert constructor to method: insert return type
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-		}
-		{ // change return type
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			assertTrue("Has no return type: gee", methodDecl.getReturnType() != null);
-			
-			Type returnType= methodDecl.getReturnType();
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			rewrite.replace(returnType, newReturnType, null);
-		}
-		{ // remove return type
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "hee");
-			assertTrue("Has no return type: hee", methodDecl.getReturnType() != null);
-						
-			// from method to constructor
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		{ // rename method name
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "iee");
-			
-			SimpleName name= methodDecl.getName();
-			SimpleName newName= ast.newSimpleName("xii");
-			
-			rewrite.replace(name, newName, null);
-		}				
-		{ // rename first param & last throw statement
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "jee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			SingleVariableDeclaration newParam= createNewParam(ast, "m");
-			rewrite.replace((ASTNode) parameters.get(0), newParam, null);
-						
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 2 thrown exceptions", thrownExceptions.size() == 2);
-			Name newThrownException= ast.newSimpleName("ArrayStoreException");
-			rewrite.replace((ASTNode) thrownExceptions.get(1), newThrownException, null);			
-		}
-		{ // rename first and second param & rename first and last exception
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "kee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");
-			rewrite.replace((ASTNode) parameters.get(0), newParam1, null);
-			rewrite.replace((ASTNode) parameters.get(1), newParam2, null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 3 thrown exceptions", thrownExceptions.size() == 3);
-			Name newThrownException1= ast.newSimpleName("ArrayStoreException");
-			Name newThrownException2= ast.newSimpleName("InterruptedException");
-			rewrite.replace((ASTNode) thrownExceptions.get(0), newThrownException1, null);
-			rewrite.replace((ASTNode) thrownExceptions.get(2), newThrownException2, null);
-		}		
-		{ // rename all params & rename second exception
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "lee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");			
-			SingleVariableDeclaration newParam3= createNewParam(ast, "m3");	
-			rewrite.replace((ASTNode) parameters.get(0), newParam1, null);
-			rewrite.replace((ASTNode) parameters.get(1), newParam2, null);
-			rewrite.replace((ASTNode) parameters.get(2), newParam3, null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 3 thrown exceptions", thrownExceptions.size() == 3);
-			Name newThrownException= ast.newSimpleName("ArrayStoreException");
-			rewrite.replace((ASTNode) thrownExceptions.get(1), newThrownException, null);
-		}				
-		
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public float E(int p1, int p2, int p3) {}\n");
-		buf.append("    public float gee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public hee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void xii(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public void jee(float m, int p2, int p3) throws IllegalArgumentException, ArrayStoreException {}\n");
-		buf.append("    public abstract void kee(float m1, float m2, int p3) throws ArrayStoreException, IllegalAccessException, InterruptedException;\n");
-		buf.append("    public abstract void lee(float m1, float m2, float m3) throws IllegalArgumentException, ArrayStoreException, SecurityException;\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testMethodReturnTypeChanges() 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 E() {}\n");
-		buf.append("    E(int i) {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    /* comment */ E(int i, int j) {}\n");
-		buf.append("    public void gee1() {}\n");
-		buf.append("    void gee2() {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    /* comment */ void gee3() {}\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		List list= type.bodyDeclarations();
-		
-		{ // insert return type, add second modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(0);
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(Modifier.PUBLIC | Modifier.FINAL), null);
-		
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-			
-		}
-		{ // insert return type, add (first) modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(1);
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(Modifier.FINAL), null);
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-		}
-		
-		{ // insert return type, add second modifier with comments
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(2);
-			
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(Modifier.FINAL), null);
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-			
-		}
-		
-		{ // remove return type, add second modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(3);
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(Modifier.PUBLIC | Modifier.FINAL), null);
-		
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-			
-		}
-		{ // remove return type, add (first) modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(4);
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(Modifier.FINAL), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		
-		{ // remove return type, add second modifier with comments
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(5);
-			
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(Modifier.FINAL), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public final float E() {}\n");
-		buf.append("    final float E(int i) {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    final /* comment */ float E(int i, int j) {}\n");
-		buf.append("    public final gee1() {}\n");
-		buf.append("    final gee2() {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    final gee3() {}\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMethodReturnTypeChanges2() 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 synchronized E() {}\n");
-		buf.append("    public E(int i) {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    public /* comment */ E(int i, int j) {}\n");
-		buf.append("    public synchronized void gee1() {}\n");
-		buf.append("    public void gee2() {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    public /* comment */ void gee3() {}\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		List list= type.bodyDeclarations();
-		
-		{ // insert return type, remove second modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(0);
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(Modifier.PUBLIC), null);
-		
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-			
-		}
-		{ // insert return type, remove (only) modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(1);
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(0), null);
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-		}
-		
-		{ // insert return type, remove modifier with comments
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(2);
-			
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(0), null);
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-			
-		}
-		
-		{ // remove return type, remove second modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(3);
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(Modifier.PUBLIC), null);
-		
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-			
-		}
-		{ // remove return type, remove (only) modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(4);
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(0), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		
-		{ // remove return type, remove modifier with comments
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(5);
-			
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(0), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public float E() {}\n");
-		buf.append("    float E(int i) {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    /* comment */ float E(int i, int j) {}\n");
-		buf.append("    public gee1() {}\n");
-		buf.append("    gee2() {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    gee3() {}\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-
-
-	
-	public void testMethodReturnTypeChangesAST3() 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 E() {}\n");
-		buf.append("    E(int i) {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    /* comment */ E(int i, int j) {}\n");
-		buf.append("    public void gee1() {}\n");
-		buf.append("    void gee2() {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    /* comment */ void gee3() {}\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 list= type.bodyDeclarations();
-		
-		{ // insert return type, add second modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(0);
-			
-			ListRewrite modifiers= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			modifiers.insertLast(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-			
-		}
-		{ // insert return type, add (first) modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(1);
-			
-			ListRewrite modifiers= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			modifiers.insertLast(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-		}
-		
-		{ // insert return type, add second modifier with comments
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(2);
-			
-			ListRewrite modifiers= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			modifiers.insertLast(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-			
-		}
-		
-		{ // remove return type, add second modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(3);
-
-			ListRewrite modifiers= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			modifiers.insertLast(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-			
-		}
-		{ // remove return type, add (first) modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(4);
-
-			ListRewrite modifiers= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			modifiers.insertLast(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);			
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		
-		{ // remove return type, add second modifier with comments
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(5);
-			
-			ListRewrite modifiers= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			modifiers.insertLast(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public final float E() {}\n");
-		buf.append("    final float E(int i) {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    final /* comment */ float E(int i, int j) {}\n");
-		buf.append("    public final gee1() {}\n");
-		buf.append("    final gee2() {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    final gee3() {}\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMethodReturnTypeChanges2AST3() 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 synchronized E() {}\n");
-		buf.append("    public E(int i) {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    public /* comment */ E(int i, int j) {}\n");
-		buf.append("    public synchronized void gee1() {}\n");
-		buf.append("    public void gee2() {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    public /* comment */ void gee3() {}\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST3(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		List list= type.bodyDeclarations();
-		
-		{ // insert return type, remove second modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(0);
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(1), null);
-		
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-			
-		}
-		{ // insert return type, remove (only) modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(1);
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);
-			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-		}
-		
-		{ // insert return type, remove modifier with comments
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(2);
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);			
-			Type newReturnType= astRoot.getAST().newPrimitiveType(PrimitiveType.FLOAT);
-			
-			// from constructor to method
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, newReturnType, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.FALSE, null);
-		}
-		
-		{ // remove return type, remove second modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(3);
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(1), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-			
-		}
-		{ // remove return type, remove (only) modifier
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(4);
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		
-		{ // remove return type, remove modifier with comments
-			FunctionDeclaration methodDecl= (FunctionDeclaration) list.get(5);
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);
-			
-			// from method to constructor 
-			rewrite.set(methodDecl, FunctionDeclaration.RETURN_TYPE2_PROPERTY, null, null);
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public float E() {}\n");
-		buf.append("    float E(int i) {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    /* comment */ float E(int i, int j) {}\n");
-		buf.append("    public gee1() {}\n");
-		buf.append("    gee2() {}\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    gee3() {}\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-
-
-	
-	
-	public void testListRemoves() 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 E(int p1, int p2, int p3) {}\n");
-		buf.append("    public void gee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void hee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void iee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public void jee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public abstract void kee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("    public abstract void lee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // delete first param
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			rewrite.remove((ASTNode) parameters.get(0), null);
-		}
-		{ // delete second param & remove exception & remove public
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			// change flags
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(0), null);
-			
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			rewrite.remove((ASTNode) parameters.get(1), null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 1 thrown exceptions", thrownExceptions.size() == 1);
-			rewrite.remove((ASTNode) thrownExceptions.get(0), null);
-		}		
-		{ // delete last param
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "hee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			rewrite.remove((ASTNode) parameters.get(2), null);	
-		}				
-		{ // delete first and second param & remove first exception
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "iee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			rewrite.remove((ASTNode) parameters.get(0), null);
-			rewrite.remove((ASTNode) parameters.get(1), null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 2 thrown exceptions", thrownExceptions.size() == 2);
-			rewrite.remove((ASTNode) thrownExceptions.get(0), null);	
-		}				
-		{ // delete first and last param & remove second
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "jee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			rewrite.remove((ASTNode) parameters.get(0), null);
-			rewrite.remove((ASTNode) parameters.get(2), null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 2 thrown exceptions", thrownExceptions.size() == 2);
-			rewrite.remove((ASTNode) thrownExceptions.get(1), null);			
-		}
-		{ // delete second and last param & remove first exception
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "kee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			rewrite.remove((ASTNode) parameters.get(1), null);
-			rewrite.remove((ASTNode) parameters.get(2), null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 3 thrown exceptions", thrownExceptions.size() == 3);
-			rewrite.remove((ASTNode) thrownExceptions.get(1), null);
-		}		
-		{ // delete all params & remove first and last exception
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "lee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			rewrite.remove((ASTNode) parameters.get(0), null);
-			rewrite.remove((ASTNode) parameters.get(1), null);
-			rewrite.remove((ASTNode) parameters.get(2), null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 3 thrown exceptions", thrownExceptions.size() == 3);
-			rewrite.remove((ASTNode) thrownExceptions.get(0), null);
-			rewrite.remove((ASTNode) thrownExceptions.get(2), null);				
-		}				
-
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public E(int p2, int p3) {}\n");
-		buf.append("    void gee(int p1, int p3) {}\n");
-		buf.append("    public void hee(int p1, int p2) throws IllegalArgumentException {}\n");
-		buf.append("    public void iee(int p3) throws IllegalAccessException {}\n");
-		buf.append("    public void jee(int p2) throws IllegalArgumentException {}\n");
-		buf.append("    public abstract void kee(int p1) throws IllegalArgumentException, SecurityException;\n");
-		buf.append("    public abstract void lee() throws IllegalAccessException;\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testListRemoves2() throws Exception {
-		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("    public void setMyProp(String property1) {}\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type = (TypeDeclaration) astRoot.types().get(0);
-		
-		{ // delete param, insert new
-			FunctionDeclaration methodDecl= (FunctionDeclaration) type.bodyDeclarations().get(0);
-			List parameters= methodDecl.parameters();
-			rewrite.remove((ASTNode) parameters.get(0), null);
-			
-			SingleVariableDeclaration decl= ast.newSingleVariableDeclaration();
-			decl.setType(ast.newPrimitiveType(PrimitiveType.INT));
-			decl.setName(ast.newSimpleName("property11"));
-			
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertLast(decl, null);
-			
-		}
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void setMyProp(int property11) {}\n");
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());
-	}
-
-	
-	public void testListInserts() 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 E(int p1, int p2, int p3) {}\n");
-		buf.append("    public void gee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void hee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void iee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public void jee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public abstract void kee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("    public abstract void lee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // insert before first param & insert an exception
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			SingleVariableDeclaration newParam= createNewParam(ast, "m");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertFirst(newParam, null);
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 0 thrown exceptions", thrownExceptions.size() == 0);
-			
-			Name newThrownException= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertFirst(newThrownException, null);
-
-		}
-		{ // insert before second param & insert before first exception & add synchronized
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			// change flags
-			int newModifiers= Modifier.PUBLIC | Modifier.SYNCHRONIZED;
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			ASTNode secondParam= (ASTNode) parameters.get(1);
-			SingleVariableDeclaration newParam= createNewParam(ast, "m");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertBefore(newParam, secondParam, null);
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 1 thrown exceptions", thrownExceptions.size() == 1);
-			
-			ASTNode firstException= (ASTNode) thrownExceptions.get(0);
-			Name newThrownException= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertBefore(newThrownException, firstException, null);
-		}		
-		{ // insert after last param & insert after first exception & add synchronized, static
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "hee");
-			
-			// change flags
-			int newModifiers= Modifier.PUBLIC | Modifier.SYNCHRONIZED | Modifier.STATIC;
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-			
-			SingleVariableDeclaration newParam= createNewParam(ast, "m");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertLast(newParam, null);
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 1 thrown exceptions", thrownExceptions.size() == 1);
-			
-			ASTNode firstException= (ASTNode) thrownExceptions.get(0);
-			Name newThrownException= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertAfter(newThrownException, firstException, null);
-
-		}				
-		{ // insert 2 params before first & insert between two exception
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "iee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			ASTNode firstParam= (ASTNode) parameters.get(0);
-			
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");
-			
-			ListRewrite listRewrite = rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY);
-			listRewrite.insertBefore(newParam1, firstParam, null);
-			listRewrite.insertBefore(newParam2, firstParam, null);
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 2 thrown exceptions", thrownExceptions.size() == 2);
-			
-			ASTNode firstException= (ASTNode) thrownExceptions.get(0);
-			Name newThrownException= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertAfter(newThrownException, firstException, null);
-		}			
-		{ // insert 2 params after first & replace the second exception and insert new after
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "jee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			ListRewrite listRewrite = rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY);
-
-			ASTNode firstParam= (ASTNode) parameters.get(0);
-			
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");
-			listRewrite.insertAfter(newParam2, firstParam, null);
-			listRewrite.insertAfter(newParam1, firstParam, null);
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 2 thrown exceptions", thrownExceptions.size() == 2);
-			
-			Name newThrownException1= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException1, null);
-
-			Name newThrownException2= ast.newSimpleName("ArrayStoreException");
-			rewrite.replace((ASTNode) thrownExceptions.get(1), newThrownException2, null);
-		}
-		{ // insert 2 params after last & remove the last exception and insert new after
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "kee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY);
-			ASTNode lastParam= (ASTNode) parameters.get(2);
-			
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");
-
-			listRewrite.insertAfter(newParam2, lastParam, null);
-			listRewrite.insertAfter(newParam1, lastParam, null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 3 thrown exceptions", thrownExceptions.size() == 3);
-			
-			ASTNode lastException= (ASTNode) thrownExceptions.get(2);
-			rewrite.remove(lastException, null);
-			
-			Name newThrownException= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertBefore(newThrownException, lastException, null);
-		}	
-		{ // insert at first and last position & remove 2nd, add after 2nd, remove 3rd
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "lee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY);
-			
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");
-			listRewrite.insertFirst(newParam1, null);
-			listRewrite.insertLast(newParam2, null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 3 thrown exceptions", thrownExceptions.size() == 3);
-			
-			ASTNode secondException= (ASTNode) thrownExceptions.get(1);
-			ASTNode lastException= (ASTNode) thrownExceptions.get(2);
-			rewrite.remove(secondException, null);
-			rewrite.remove(lastException, null);
-			
-			Name newThrownException= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertAfter(newThrownException, secondException, null);
-
-		}				
-
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public E(float m, int p1, int p2, int p3) throws InterruptedException {}\n");
-		buf.append("    public synchronized void gee(int p1, float m, int p2, int p3) throws InterruptedException, IllegalArgumentException {}\n");
-		buf.append("    public static synchronized void hee(int p1, int p2, int p3, float m) throws IllegalArgumentException, InterruptedException {}\n");
-		buf.append("    public void iee(float m1, float m2, int p1, int p2, int p3) throws IllegalArgumentException, InterruptedException, IllegalAccessException {}\n");
-		buf.append("    public void jee(int p1, float m1, float m2, int p2, int p3) throws IllegalArgumentException, ArrayStoreException, InterruptedException {}\n");
-		buf.append("    public abstract void kee(int p1, int p2, int p3, float m1, float m2) throws IllegalArgumentException, IllegalAccessException, InterruptedException;\n");
-		buf.append("    public abstract void lee(float m1, int p1, int p2, int p3, float m2) throws IllegalArgumentException, InterruptedException;\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testListInsert() 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 abstract void lee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // insert at first and last position & remove 2nd, add after 2nd, remove 3rd
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "lee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY);
-			
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");
-			listRewrite.insertFirst(newParam1, null);
-			listRewrite.insertLast(newParam2, null);
-			
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 3 thrown exceptions", thrownExceptions.size() == 3);
-			
-			rewrite.remove((ASTNode) thrownExceptions.get(1), null);
-			rewrite.remove((ASTNode) thrownExceptions.get(2), null);
-			
-			Name newThrownException= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException, null);
-		}				
-
-
-	
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public abstract void lee(float m1, int p1, int p2, int p3, float m2) throws IllegalArgumentException, InterruptedException;\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testListCombinations() 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 E(int p1, int p2, int p3) {}\n");
-		buf.append("    public void gee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void hee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void iee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public void jee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public abstract void kee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("    public abstract void lee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // delete all and insert after & insert 2 exceptions
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-		
-			rewrite.remove((ASTNode) parameters.get(0), null);
-			rewrite.remove((ASTNode) parameters.get(1), null);
-			rewrite.remove((ASTNode) parameters.get(2), null);
-
-			SingleVariableDeclaration newParam= createNewParam(ast, "m");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertLast(newParam, null);
-
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 0 thrown exceptions", thrownExceptions.size() == 0);
-			
-			Name newThrownException1= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException1, null);
-
-			Name newThrownException2= ast.newSimpleName("ArrayStoreException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException2, null);
-			
-		}
-		{ // delete first 2, replace last and insert after & replace first exception and insert before
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			rewrite.remove((ASTNode) parameters.get(0), null);
-			rewrite.remove((ASTNode) parameters.get(1), null);
-			
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			rewrite.replace((ASTNode) parameters.get(2), newParam1, null);
-						
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertLast(newParam2, null);
-
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 1 thrown exceptions", thrownExceptions.size() == 1);
-			
-			Name modifiedThrownException= ast.newSimpleName("InterruptedException");
-			rewrite.replace((ASTNode) thrownExceptions.get(0), modifiedThrownException, null);
-						
-			Name newThrownException2= ast.newSimpleName("ArrayStoreException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException2, null);
-
-		}		
-		{ // delete first 2, replace last and insert at first & remove first and insert before
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "hee");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-
-			rewrite.remove((ASTNode) parameters.get(0), null);
-			rewrite.remove((ASTNode) parameters.get(1), null);
-			
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			rewrite.replace((ASTNode) parameters.get(2), newParam1, null);
-						
-			SingleVariableDeclaration newParam2= createNewParam(ast, "m2");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertFirst(newParam2, null);
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 1 thrown exceptions", thrownExceptions.size() == 1);
-			
-			rewrite.remove((ASTNode) thrownExceptions.get(0), null);
-						
-			Name newThrownException2= ast.newSimpleName("ArrayStoreException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException2, null);
-		}				
-
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public E(float m) throws InterruptedException, ArrayStoreException {}\n");
-		buf.append("    public void gee(float m1, float m2) throws InterruptedException, ArrayStoreException {}\n");
-		buf.append("    public void hee(float m2, float m1) throws ArrayStoreException {}\n");
-		buf.append("    public void iee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public void jee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public abstract void kee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("    public abstract void lee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testListCombination() 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 E(int p1, int p2, int p3) {}\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // delete all and insert after & insert 2 exceptions
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-			List parameters= methodDecl.parameters();
-			assertTrue("must be 3 parameters", parameters.size() == 3);
-		
-			rewrite.remove((ASTNode) parameters.get(0), null);
-			rewrite.remove((ASTNode) parameters.get(1), null);
-			rewrite.remove((ASTNode) parameters.get(2), null);
-
-			SingleVariableDeclaration newParam= createNewParam(ast, "m");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertLast(newParam, null);
-
-			List thrownExceptions= methodDecl.thrownExceptions();
-			assertTrue("must be 0 thrown exceptions", thrownExceptions.size() == 0);
-			
-			Name newThrownException1= ast.newSimpleName("InterruptedException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException1, null);
-			
-			Name newThrownException2= ast.newSimpleName("ArrayStoreException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException2, null);
-
-			
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public E(float m) throws InterruptedException, ArrayStoreException {}\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testListCombination2() 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 void foo() {\n");
-		buf.append("    }\n");
-		buf.append("\n");	
-		buf.append("    void bar() {\n");
-		buf.append("    }\n");
-		buf.append("\n");	
-		buf.append("    void foo2() {\n");
-		buf.append("       // user comment\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		FunctionDeclaration[] methods= type.getMethods();
-		Arrays.sort(methods, new Comparator() {
-			public int compare(Object o1, Object o2) {
-				return ((FunctionDeclaration) o1).getName().getIdentifier().compareTo(((FunctionDeclaration) o2).getName().getIdentifier());
-			}
-		});
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY);
-		for (int i= 0; i < methods.length; i++) {
-			ASTNode copy= rewrite.createMoveTarget(methods[i]);
-			listRewrite.insertLast(copy, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    void bar() {\n");
-		buf.append("    }\n");
-		buf.append("\n");	
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");
-		buf.append("\n");	
-		buf.append("    void foo2() {\n");
-		buf.append("       // user comment\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testMethodBody() 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 E(int p1, int p2, int p3) {}\n");
-		buf.append("    public void gee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void hee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void iee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public void jee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public abstract void kee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("    public abstract void lee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // replace block
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-			
-			Block body= methodDecl.getBody();
-			assertTrue("No body: E", body != null);
-			
-			Block newBlock= ast.newBlock();
-
-			rewrite.replace(body, newBlock, null);
-		}
-		{ // delete block & set abstract
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-			
-			// change flags
-			int newModifiers= Modifier.PUBLIC | Modifier.ABSTRACT;
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			Block body= methodDecl.getBody();
-			assertTrue("No body: gee", body != null);
-
-			rewrite.remove(body, null);
-		}
-		{ // insert block & set to private
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "kee");
-			
-			// change flags
-			int newModifiers= Modifier.PRIVATE;
-			rewrite.set(methodDecl, FunctionDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			
-			Block body= methodDecl.getBody();
-			assertTrue("Has body", body == null);
-			
-			Block newBlock= ast.newBlock();
-			rewrite.set(methodDecl, FunctionDeclaration.BODY_PROPERTY, newBlock, null);
-		}		
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public E(int p1, int p2, int p3) {\n");
-		buf.append("    }\n");
-		buf.append("    public abstract void gee(int p1, int p2, int p3) throws IllegalArgumentException;\n");
-		buf.append("    public void hee(int p1, int p2, int p3) throws IllegalArgumentException {}\n");
-		buf.append("    public void iee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    public void jee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException {}\n");
-		buf.append("    private void kee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException {\n");
-		buf.append("    }\n");
-		buf.append("    public abstract void lee(int p1, int p2, int p3) throws IllegalArgumentException, IllegalAccessException, SecurityException;\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMethodDeclarationExtraDimensions() 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("    public Object foo2() throws IllegalArgumentException { return null; }\n");
-		buf.append("    public Object foo3()[][] { return null; }\n");
-		buf.append("    public Object foo4()[][] throws IllegalArgumentException { return null; }\n");
-		buf.append("    public Object foo5()[][] { return null; }\n");
-		buf.append("    public Object foo6(int i)[][] throws IllegalArgumentException { return null; }\n");
-		buf.append("    public Object foo7(int i)[][] { return null; }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // add extra dim, add throws
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo1");
-			
-			rewrite.set(methodDecl, FunctionDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(1), null);
-			
-			Name newThrownException2= ast.newSimpleName("ArrayStoreException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException2, null);
-
-		}
-		{ // add extra dim, remove throws
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo2");
-			
-			rewrite.set(methodDecl, FunctionDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(1), null);
-			
-			rewrite.remove((ASTNode) methodDecl.thrownExceptions().get(0), null);			
-		}		
-		{ // remove extra dim, add throws
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo3");
-
-			rewrite.set(methodDecl, FunctionDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(1), null);
-			
-			Name newThrownException2= ast.newSimpleName("ArrayStoreException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException2, null);
-
-		}
-		{ // add extra dim, remove throws
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo4");
-			
-			rewrite.set(methodDecl, FunctionDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(1), null);
-			
-			rewrite.remove((ASTNode) methodDecl.thrownExceptions().get(0), null);			
-		}
-		{ // add params, add extra dim, add throws
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo5");
-			
-			SingleVariableDeclaration newParam1= createNewParam(ast, "m1");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.PARAMETERS_PROPERTY).insertLast(newParam1, null);
-
-			
-			rewrite.set(methodDecl, FunctionDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(4), null);
-			
-			Name newThrownException2= ast.newSimpleName("ArrayStoreException");
-			rewrite.getListRewrite(methodDecl, FunctionDeclaration.THROWN_EXCEPTIONS_PROPERTY).insertLast(newThrownException2, null);
-	
-		}
-		{ // remove params, add extra dim, remove throws
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo6");
-			
-			rewrite.remove((ASTNode) methodDecl.parameters().get(0), null);		
-			
-			rewrite.set(methodDecl, FunctionDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(4), null);
-			
-			rewrite.remove((ASTNode) methodDecl.thrownExceptions().get(0), null);			
-		}
-		{ // remove block
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo7");
-			rewrite.remove(methodDecl.getBody(), null);			
-		}					
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public Object foo1()[] throws ArrayStoreException { return null; }\n");
-		buf.append("    public Object foo2()[] { return null; }\n");
-		buf.append("    public Object foo3()[] throws ArrayStoreException { return null; }\n");
-		buf.append("    public Object foo4()[] { return null; }\n");
-		buf.append("    public Object foo5(float m1)[][][][] throws ArrayStoreException { return null; }\n");
-		buf.append("    public Object foo6()[][][][] { return null; }\n");
-		buf.append("    public Object foo7(int i)[][];\n");		
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testModifiersAST3() 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("    public Object foo2() { return null; }\n");
-		buf.append("    public Object foo3() { return null; }\n");
-		buf.append("    /** javadoc comment */\n");	
-		buf.append("    public Object foo4() { return null; }\n");
-		buf.append("    Object foo5() { return null; }\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    public Object foo6() { return null; }\n");
-		buf.append("    public Object foo7() { return null; }\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    public static Object foo8() { return null; }\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    Object foo9() { 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 first and last
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo1");
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			listRewrite.insertFirst(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-			listRewrite.insertLast(ast.newModifier(Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD), null);
-		}
-		{ // insert 2x first
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo2");
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			listRewrite.insertFirst(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-			listRewrite.insertFirst(ast.newModifier(Modifier.ModifierKeyword.STATIC_KEYWORD), null);
-		}		
-		{ // remove and insert first
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo3");
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			listRewrite.insertFirst(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-		}
-		{ // remove and insert last
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo4");
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			listRewrite.insertLast(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-		}
-		{ // insert first and insert Javadoc
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo5");
-			JSdoc javadoc= ast.newJSdoc();
-			TextElement textElem= ast.newTextElement();
-			textElem.setText("Hello");
-			TagElement tagElement= ast.newTagElement();
-			tagElement.fragments().add(textElem);
-			javadoc.tags().add(tagElement);
-			rewrite.set(methodDecl, FunctionDeclaration.JAVADOC_PROPERTY, javadoc, null);
-			
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			listRewrite.insertFirst(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-		}
-		{ // remove modifier and remove javadoc
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo6");
-			rewrite.remove(methodDecl.getJavadoc(), null);
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);
-		}
-		{ // remove modifier and insert javadoc
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo7");
-			
-			JSdoc javadoc= ast.newJSdoc();
-			TextElement textElem= ast.newTextElement();
-			textElem.setText("Hello");
-			TagElement tagElement= ast.newTagElement();
-			tagElement.fragments().add(textElem);
-			javadoc.tags().add(tagElement);
-			rewrite.set(methodDecl, FunctionDeclaration.JAVADOC_PROPERTY, javadoc, null);
-			
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);
-		}
-		{ // remove all
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo8");
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(0), null);
-			rewrite.remove((ASTNode) methodDecl.modifiers().get(1), null);
-		}
-		{ // insert (first) with javadoc
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo9");
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl, FunctionDeclaration.MODIFIERS2_PROPERTY);
-			listRewrite.insertFirst(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-		}	
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    final public synchronized Object foo1() { return null; }\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    static final public Object foo2() { return null; }\n");
-		buf.append("    final Object foo3() { return null; }\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    final Object foo4() { return null; }\n");
-		buf.append("    /**\n");
-		buf.append("     * Hello\n");
-		buf.append("     */\n");
-		buf.append("    final Object foo5() { return null; }\n");
-		buf.append("    Object foo6() { return null; }\n");
-		buf.append("    /**\n");
-		buf.append("     * Hello\n");
-		buf.append("     */\n");
-		buf.append("    Object foo7() { return null; }\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    Object foo8() { return null; }\n");
-		buf.append("    /** javadoc comment */\n");
-		buf.append("    final Object foo9() { 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();
-		buf.append("package test1;\n");
-		buf.append("public class A {\n");
-		buf.append("    int i1= 1;\n");
-		buf.append("    int i2= 1, k2= 2, n2= 3;\n");
-		buf.append("    static final int i3= 1, k3= 2, n3= 3;\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("A.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "A");
-		
-		FieldDeclaration[] fieldDeclarations= type.getFields();
-		assertTrue("Number of fieldDeclarations not 3", fieldDeclarations.length == 3);
-		{	// add modifier, change type, add fragment
-			FieldDeclaration decl= fieldDeclarations[0];
-			
-			// add modifier
-			int newModifiers= Modifier.FINAL;
-			rewrite.set(decl, FieldDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			PrimitiveType newType= ast.newPrimitiveType(PrimitiveType.BOOLEAN);
-			rewrite.replace(decl.getType(), newType, null);
-					
-			VariableDeclarationFragment frag=	ast.newVariableDeclarationFragment();
-			frag.setName(ast.newSimpleName("k1"));
-			frag.setInitializer(null);
-
-			rewrite.getListRewrite(decl, FieldDeclaration.FRAGMENTS_PROPERTY).insertLast(frag, null);
-
-		}
-		{	// add modifiers, remove first two fragments, replace last
-			FieldDeclaration decl= fieldDeclarations[1];
-			
-			// add modifier
-			int newModifiers= Modifier.FINAL | Modifier.STATIC | Modifier.TRANSIENT;
-			rewrite.set(decl, FieldDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			List fragments= decl.fragments();
-			assertTrue("Number of fragments not 3", fragments.size() == 3);
-			
-			rewrite.remove((ASTNode) fragments.get(0), null);
-			rewrite.remove((ASTNode) fragments.get(1), null);
-			
-			VariableDeclarationFragment frag=	ast.newVariableDeclarationFragment();
-			frag.setName(ast.newSimpleName("k2"));
-			frag.setInitializer(null);
-			
-			rewrite.replace((ASTNode) fragments.get(2), frag, null);
-		}
-		{	// remove modifiers
-			FieldDeclaration decl= fieldDeclarations[2];
-			
-			// change modifier
-			int newModifiers= 0;
-			rewrite.set(decl, FieldDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class A {\n");
-		buf.append("    final boolean i1= 1, k1;\n");
-		buf.append("    static final transient int k2;\n");
-		buf.append("    int i3= 1, k3= 2, n3= 3;\n");
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testInitializer() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class A {\n");
-		buf.append("    {\n");
-		buf.append("        foo();\n");
-		buf.append("    }\n");
-		buf.append("    static {\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("A.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "A");
-		
-		List declarations= type.bodyDeclarations();
-		assertTrue("Number of fieldDeclarations not 2", declarations.size() == 2);
-		{	// change modifier, replace body
-			Initializer initializer= (Initializer) declarations.get(0);
-			
-			// add modifier
-			int newModifiers= Modifier.STATIC;
-			rewrite.set(initializer, Initializer.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			
-			Block block= ast.newBlock();
-			block.statements().add(ast.newReturnStatement());
-			
-			rewrite.replace(initializer.getBody(), block, null);
-		}
-		{	// change modifier
-			Initializer initializer= (Initializer) declarations.get(1);
-			
-			int newModifiers= 0;
-			rewrite.set(initializer, Initializer.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class A {\n");
-		buf.append("    static {\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");
-		buf.append("    {\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testMethodDeclarationParamShuffel() 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(int i, boolean b) { return null; }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // add extra dim, add throws
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo1");
-			
-			List params= methodDecl.parameters();
-			
-			SingleVariableDeclaration first= (SingleVariableDeclaration) params.get(0);
-			SingleVariableDeclaration second= (SingleVariableDeclaration) params.get(1);
-			rewrite.replace(first.getName(), ast.newSimpleName("x"), null);
-			rewrite.replace(second.getName(), ast.newSimpleName("y"), null);
-				
-			ASTNode copy1= rewrite.createCopyTarget(first);
-			ASTNode copy2= rewrite.createCopyTarget(second);
-			
-			rewrite.replace(first, copy2, null);
-			rewrite.replace(second, copy1, null);
-			
-		}
-	
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public Object foo1(boolean y, int x) { return null; }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-
-	public void testMethodDeclarationParamShuffel1() 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(int i, boolean b) { return null; }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ 
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo1");
-			
-			List params= methodDecl.parameters();
-			
-			SingleVariableDeclaration first= (SingleVariableDeclaration) params.get(0);
-			SingleVariableDeclaration second= (SingleVariableDeclaration) params.get(1);
-				
-			ASTNode copy2= rewrite.createCopyTarget(second);
-
-			rewrite.replace(first, copy2, null);
-			rewrite.remove(second, null);
-		}
-	
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public abstract class E {\n");
-		buf.append("    public Object foo1(boolean b) { return null; }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-		
-	public void testMethodDeclaration_bug24916() throws Exception {
-	
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("    private int DD()[]{\n");
-		buf.append("    };\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "DD");
-		{
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "DD");
-			
-			rewrite.set(methodDecl, FunctionDeclaration.CONSTRUCTOR_PROPERTY, Boolean.TRUE, null);
-			rewrite.set(methodDecl, FunctionDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(0), null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("    private DD(){\n");
-		buf.append("    };\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMethodComments1() throws Exception {
-	
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-
-		buf.append("public class DD {\n");
-		buf.append("    // one line comment\n");
-		buf.append("    private void foo(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    /**\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "DD");
-		{
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			rewrite.remove(methodDecl, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("    /**\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMethodComments2() throws Exception {
-	
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("    // one line comment\n");
-		buf.append("    private void foo(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "DD");
-		{
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo2");
-			ASTNode node= rewrite.createCopyTarget(methodDecl);
-
-			ASTNode firstDecl= (ASTNode) type.bodyDeclarations().get(0);
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertAfter(node, firstDecl, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("    // one line comment\n");
-		buf.append("    private void foo(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");
-		buf.append("\n");				
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMethodComments3() throws Exception {
-	
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-
-		buf.append("public class DD {\n");
-		buf.append("    // one line comment\n");
-		buf.append("\n");		
-		buf.append("    private void foo(){\n");
-		buf.append("    } // another\n");
-		buf.append("\n");
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "DD");
-		{
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			rewrite.remove(methodDecl, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("    // one line comment\n");
-		buf.append("\n");			
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testBUG_38447() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-
-		buf.append("public class DD {\n");
-		buf.append("\n");		
-		buf.append("    private void foo(){\n");
-		buf.append("\n"); // missing closing bracket
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "DD");
-		{
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			rewrite.remove(methodDecl, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("\n");			
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testMethodComments4() throws Exception {
-	
-	
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-
-		buf.append("public class DD {\n");
-		buf.append("    // one line comment\n");
-		buf.append("\n");		
-		buf.append("    private void foo(){\n");
-		buf.append("    } // another\n");
-		buf.append("\n");
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "DD");
-		{
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			ASTNode copy= rewrite.createCopyTarget(methodDecl);
-			
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(copy, null);
-			
-			FunctionDeclaration newMethodDecl= createNewMethod(astRoot.getAST(), "xoo", false);
-			rewrite.replace(methodDecl, newMethodDecl, null);
-			
-			//FunctionDeclaration methodDecl2= findMethodDeclaration(type, "foo1");
-			//rewrite.markAsReplaced(methodDecl2, copy);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-
-		buf.append("public class DD {\n");
-		buf.append("    // one line comment\n");
-		buf.append("\n");		
-		buf.append("    private void xoo(String str) {\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");
-		buf.append("\n");	
-		buf.append("    private void foo(){\n");
-		buf.append("    } // another\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testInsertFieldAfter() throws Exception {
-
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-
-		buf.append("public class DD {\n");
-		buf.append("    private int fCount1;\n");
-		buf.append("\n");	
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("DD.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "DD");
-		{
-			VariableDeclarationFragment frag= ast.newVariableDeclarationFragment();
-			frag.setName(ast.newSimpleName("fColor"));
-			FieldDeclaration newField= ast.newFieldDeclaration(frag);
-			newField.setType(ast.newPrimitiveType(PrimitiveType.CHAR));
-			newField.setModifiers(Modifier.PRIVATE);
-					
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertAt(newField, 1, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-
-		buf.append("public class DD {\n");
-		buf.append("    private int fCount1;\n");
-		buf.append("    private char fColor;\n");
-		buf.append("\n");
-		buf.append("    /*\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	
-	public void testVarArgs() throws Exception {
-
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("    private void foo1(String format, Object... args){\n");
-		buf.append("    }\n");
-		buf.append("    private void foo2(String format, Object[] args) {\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());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "DD");
-		{
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo1");
-			SingleVariableDeclaration param= (SingleVariableDeclaration) methodDecl.parameters().get(1);
-			rewrite.set(param, SingleVariableDeclaration.VARARGS_PROPERTY, Boolean.FALSE, null);
-		}
-		{
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo2");
-			SingleVariableDeclaration param= (SingleVariableDeclaration) methodDecl.parameters().get(1);
-			rewrite.set(param, SingleVariableDeclaration.TYPE_PROPERTY, ast.newPrimitiveType(PrimitiveType.INT), null);
-			rewrite.set(param, SingleVariableDeclaration.VARARGS_PROPERTY, Boolean.TRUE, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class DD {\n");
-		buf.append("    private void foo1(String format, Object args){\n");
-		buf.append("    }\n");
-		buf.append("    private void foo2(String format, int... args) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-
-	public void testMethodDeclChangesBug77538() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("// comment\n");
-		buf.append("public class A {\n");
-		buf.append("	public int foo() {\n");
-		buf.append("		return 0;\n");
-		buf.append("	}\n");	
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("A.js", buf.toString(), false, null);	
-		
-		// Get method declaration and its body
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		TypeDeclaration type= findTypeDeclaration(astRoot, "A");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block body = methodDecl.getBody();
-		
-	   // start record of the modifications
-	   astRoot.recordModifications();
-	   
-	   // Modify method body
-		Block newBody = ast.newBlock();
-		methodDecl.setBody(newBody);
-		VariableDeclarationFragment fragment = ast.newVariableDeclarationFragment();
-		fragment.setName(ast.newSimpleName("lock"));
-		fragment.setInitializer(ast.newQualifiedName(ast.newSimpleName("OS"), ast.newSimpleName("lock")));
-		VariableDeclarationExpression variableDeclarationExpression = ast.newVariableDeclarationExpression(fragment);
-		variableDeclarationExpression.setType(ast.newSimpleType(ast.newSimpleName("Lock")));
-		ExpressionStatement expressionStatement = ast.newExpressionStatement(variableDeclarationExpression);
-		newBody.statements().add(expressionStatement);
-		TryStatement tryStatement = ast.newTryStatement();
-		FunctionInvocation methodInvocation = ast.newFunctionInvocation();
-		methodInvocation.setName(ast.newSimpleName("lock"));
-		methodInvocation.setExpression(ast.newSimpleName("lock"));
-		ExpressionStatement expressionStatement2 = ast.newExpressionStatement(methodInvocation);
-		body.statements().add(0, expressionStatement2);
-		tryStatement.setBody(body);
-		Block finallyBlock = ast.newBlock();
-		tryStatement.setFinally(finallyBlock);
-		methodInvocation = ast.newFunctionInvocation();
-		methodInvocation.setName(ast.newSimpleName("unLock"));
-		methodInvocation.setExpression(ast.newSimpleName("lock"));
-		expressionStatement2 = ast.newExpressionStatement(methodInvocation);
-		finallyBlock.statements().add(expressionStatement2);
-		newBody.statements().add(tryStatement);
-
-		// Verify that body extended length does not become negative!
-		assertFalse("Invalid extended length for "+body, astRoot.getExtendedLength(body)<0);
-	}
-	
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMoveCodeTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMoveCodeTest.java
deleted file mode 100644
index e887be2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingMoveCodeTest.java
+++ /dev/null
@@ -1,1892 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-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.rewrite.ASTRewrite;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ListRewrite;
-
-public class ASTRewritingMoveCodeTest extends ASTRewritingTest {
-	
-	private static final Class THIS= ASTRewritingMoveCodeTest.class;
-
-	public ASTRewritingMoveCodeTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-	
-	public void testMove() throws Exception {
-		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("    int x;\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		List bodyDecls= type.bodyDeclarations();
-		
-		ASTNode first= (ASTNode) bodyDecls.get(0);
-		ASTNode placeholder= rewrite.createMoveTarget(first);
-		
-		rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(placeholder, null);
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");
-		buf.append("    int x;\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}		
-	
-	public void testMoveDeclSameLevelCD() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("    }\n");		
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");
-		buf.append("        i= 0;\n");
-		buf.append("        k= 9;\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // move inner type to the end of the type & move, copy statements from constructor to method
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			assertTrue("Cannot find inner class", members.get(0) instanceof TypeDeclaration);
-			TypeDeclaration innerType= (TypeDeclaration) members.get(0);
-			
-			rewrite.remove(innerType, null);
-			ASTNode movedNode= rewrite.createCopyTarget(innerType);
-
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(movedNode, null);
-			
-			Statement toMove;
-			Statement toCopy;
-			{
-				FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-				assertTrue("Cannot find Constructor E", methodDecl != null);
-				Block body= methodDecl.getBody();
-				assertTrue("No body", body != null);
-				List statements= body.statements();
-				assertTrue("Not expected number of statements", statements.size() == 4);
-				
-				toMove= (Statement) statements.get(1);
-				toCopy= (Statement) statements.get(3);
-				
-				rewrite.remove(toMove, null);
-			}
-			{
-				FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-				assertTrue("Cannot find gee()", methodDecl != null);
-				Block body= methodDecl.getBody();
-				assertTrue("No body", body != null);
-				List statements= body.statements();
-				assertTrue("Has statements", statements.isEmpty());
-				
-				ASTNode insertNodeForMove= rewrite.createCopyTarget(toMove);
-				ASTNode insertNodeForCopy= rewrite.createCopyTarget(toCopy);
-				
-				rewrite.getListRewrite(body, Block.STATEMENTS_PROPERTY).insertLast(insertNodeForCopy, null);
-				rewrite.getListRewrite(body, Block.STATEMENTS_PROPERTY).insertLast(insertNodeForMove, null);
-				
-			}	
-		}			
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");		
-		buf.append("        k= 9;\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");		
-		buf.append("        i= 0;\n");
-		buf.append("    }\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("    }\n");			
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMoveDeclSameLevel() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("    }\n");		
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");
-		buf.append("        i= 0;\n");
-		buf.append("        k= 9;\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);	
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // move inner type to the end of the type & move, copy statements from constructor to method
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			assertTrue("Cannot find inner class", members.get(0) instanceof TypeDeclaration);
-			TypeDeclaration innerType= (TypeDeclaration) members.get(0);
-			
-			ASTNode movedNode= rewrite.createMoveTarget(innerType);
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(movedNode, null);
-
-			
-			Statement toMove;
-			Statement toCopy;
-			{
-				FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-				assertTrue("Cannot find Constructor E", methodDecl != null);
-				Block body= methodDecl.getBody();
-				assertTrue("No body", body != null);
-				List statements= body.statements();
-				assertTrue("Not expected number of statements", statements.size() == 4);
-				
-				toMove= (Statement) statements.get(1);
-				toCopy= (Statement) statements.get(3);
-			}
-			{
-				FunctionDeclaration methodDecl= findMethodDeclaration(type, "gee");
-				assertTrue("Cannot find gee()", methodDecl != null);
-				Block body= methodDecl.getBody();
-				assertTrue("No body", body != null);
-				List statements= body.statements();
-				assertTrue("Has statements", statements.isEmpty());
-				
-				ASTNode insertNodeForMove= rewrite.createMoveTarget(toMove);
-				ASTNode insertNodeForCopy= rewrite.createCopyTarget(toCopy);
-				
-				rewrite.getListRewrite(body, Block.STATEMENTS_PROPERTY).insertLast(insertNodeForCopy, null);
-				rewrite.getListRewrite(body, Block.STATEMENTS_PROPERTY).insertLast(insertNodeForMove, null);
-			}	
-		}			
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");		
-		buf.append("        k= 9;\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");		
-		buf.append("        i= 0;\n");
-		buf.append("    }\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("    }\n");			
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-
-	public void testMoveDeclDifferentLevelCD() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("    }\n");		
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");
-		buf.append("        i= 0;\n");
-		buf.append("        k= 9;\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			assertTrue("Cannot find inner class", members.get(0) instanceof TypeDeclaration);
-			TypeDeclaration innerType= (TypeDeclaration) members.get(0);
-			
-			List innerMembers= innerType.bodyDeclarations();
-			assertTrue("Not expected number of inner members", innerMembers.size() == 1);
-			
-			{ // move outer as inner of inner.
-				TypeDeclaration outerType= findTypeDeclaration(astRoot, "G");
-				assertTrue("G not found", outerType != null);
-				
-				rewrite.remove(outerType, null);
-				
-				ASTNode insertNodeForCopy= rewrite.createCopyTarget(outerType);
-				
-				rewrite.getListRewrite(innerType, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(insertNodeForCopy, null);
-
-				
-			}
-			{ // copy method of inner to main type
-				FunctionDeclaration methodDecl= (FunctionDeclaration) innerMembers.get(0);
-				ASTNode insertNodeForMove= rewrite.createCopyTarget(methodDecl);
-				
-				rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(insertNodeForMove, null);
-
-			}
-			{ // nest body of constructor in a while statement
-				FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-				assertTrue("Cannot find Constructor E", methodDecl != null);
-
-				Block body= methodDecl.getBody();
-
-				WhileStatement whileStatement= ast.newWhileStatement();
-				whileStatement.setExpression(ast.newBooleanLiteral(true));
-				
-				Statement insertNodeForCopy= (Statement) rewrite.createCopyTarget(body);
-				
-				whileStatement.setBody(insertNodeForCopy); // set existing body
-
-				Block newBody= ast.newBlock();
-				List newStatements= newBody.statements();				
-				newStatements.add(whileStatement);
-				
-				rewrite.replace(body, newBody, null);
-			}			
-		}	
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("\n");			
-		buf.append("        interface G {\n");
-		buf.append("        }\n");				
-		buf.append("    }\n");		
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        while (true) {\n");		
-		buf.append("            super();\n");
-		buf.append("            i= 0;\n");
-		buf.append("            k= 9;\n");
-		buf.append("            if (System.out == null) {\n");
-		buf.append("                gee(); // cool\n");
-		buf.append("            }\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void xee() {\n");
-		buf.append("        /* does nothing */\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMoveDeclDifferentLevel() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("    }\n");		
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");
-		buf.append("        i= 0;\n");
-		buf.append("        k= 9;\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			assertTrue("Cannot find inner class", members.get(0) instanceof TypeDeclaration);
-			TypeDeclaration innerType= (TypeDeclaration) members.get(0);
-			
-			List innerMembers= innerType.bodyDeclarations();
-			assertTrue("Not expected number of inner members", innerMembers.size() == 1);
-			
-			{ // move outer as inner of inner.
-				TypeDeclaration outerType= findTypeDeclaration(astRoot, "G");
-				assertTrue("G not found", outerType != null);
-				
-				ASTNode insertNodeForCopy= rewrite.createMoveTarget(outerType);
-				
-				rewrite.getListRewrite(innerType, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(insertNodeForCopy, null);
-			}
-			{ // copy method of inner to main type
-				FunctionDeclaration methodDecl= (FunctionDeclaration) innerMembers.get(0);
-				ASTNode insertNodeForMove= rewrite.createCopyTarget(methodDecl);
-				
-				rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(insertNodeForMove, null);
-			}
-			{ // nest body of constructor in a while statement
-				FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-				assertTrue("Cannot find Constructor E", methodDecl != null);
-
-				Block body= methodDecl.getBody();
-
-				WhileStatement whileStatement= ast.newWhileStatement();
-				whileStatement.setExpression(ast.newBooleanLiteral(true));
-				
-				Statement insertNodeForCopy= (Statement) rewrite.createCopyTarget(body);
-				
-				whileStatement.setBody(insertNodeForCopy); // set existing body
-
-				Block newBody= ast.newBlock();
-				List newStatements= newBody.statements();				
-				newStatements.add(whileStatement);
-				
-				rewrite.replace(body, newBody, null);
-			}			
-		}	
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("\n");			
-		buf.append("        interface G {\n");
-		buf.append("        }\n");				
-		buf.append("    }\n");		
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        while (true) {\n");		
-		buf.append("            super();\n");
-		buf.append("            i= 0;\n");
-		buf.append("            k= 9;\n");
-		buf.append("            if (System.out == null) {\n");
-		buf.append("                gee(); // cool\n");
-		buf.append("            }\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void xee() {\n");
-		buf.append("        /* does nothing */\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testMoveStatementsCD() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("    }\n");		
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");
-		buf.append("        i= 0;\n");
-		buf.append("        k= 9;\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // move first statments inside an ifstatement, move second statment inside a new while statement
-		   // that is in the ifstatement
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-			assertTrue("Cannot find Constructor E", methodDecl != null);
-
-			Block body= methodDecl.getBody();
-			List statements= body.statements();
-			
-			assertTrue("Cannot find if statement", statements.get(3) instanceof IfStatement);
-			
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-			
-			Statement insertNodeForCopy1= (Statement) rewrite.createCopyTarget((ASTNode) statements.get(1));
-			Statement insertNodeForCopy2= (Statement) rewrite.createCopyTarget((ASTNode) statements.get(2));
-			
-			Block whileBody= ast.newBlock();
-			
-			WhileStatement whileStatement= ast.newWhileStatement();
-			whileStatement.setExpression(ast.newBooleanLiteral(true));
-			whileStatement.setBody(whileBody);
-			
-			List whileBodyStatements= whileBody.statements();
-			whileBodyStatements.add(insertNodeForCopy2);
-			
-			
-			assertTrue("if statement body not a block", ifStatement.getThenStatement() instanceof Block);
-			
-			
-			Block block= (Block)ifStatement.getThenStatement();
-			
-			rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY).insertFirst(whileStatement, null);
-			rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY).insertAfter(insertNodeForCopy1, whileStatement, null);
-			
-			rewrite.remove((ASTNode) statements.get(1), null);
-			rewrite.remove((ASTNode) statements.get(2), null);
-		}	
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("            /* does nothing */\n");
-		buf.append("        }\n");
-		buf.append("    }\n");		
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            while (true) {\n");
-		buf.append("                k= 9;\n");
-		buf.append("            }\n");		
-		buf.append("            i= 0;\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	public void testMoveStatements() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");
-		buf.append("        i= 0;\n");
-		buf.append("        k= 9;\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // move first statments inside an ifstatement, move second statment inside a new while statement
-		   // that is in the ifstatement
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "E");
-			assertTrue("Cannot find Constructor E", methodDecl != null);
-
-			Block body= methodDecl.getBody();
-			List statements= body.statements();
-			
-			assertTrue("Cannot find if statement", statements.get(3) instanceof IfStatement);
-			
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-			
-			Statement insertNodeForCopy1= (Statement) rewrite.createMoveTarget((ASTNode) statements.get(1));
-			Statement insertNodeForCopy2= (Statement) rewrite.createMoveTarget((ASTNode) statements.get(2));
-			
-			Block whileBody= ast.newBlock();
-			
-			WhileStatement whileStatement= ast.newWhileStatement();
-			whileStatement.setExpression(ast.newBooleanLiteral(true));
-			whileStatement.setBody(whileBody);
-			
-			List whileBodyStatements= whileBody.statements();
-			whileBodyStatements.add(insertNodeForCopy2);
-			
-			
-			assertTrue("if statement body not a block", ifStatement.getThenStatement() instanceof Block);
-						
-			Block block= (Block) ifStatement.getThenStatement();
-			rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY).insertFirst(whileStatement, null);
-			rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY).insertAfter(insertNodeForCopy1, whileStatement, null);
-		}	
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    private /* inner comment */ int i;\n");
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("        super();\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            while (true) {\n");
-		buf.append("                k= 9;\n");
-		buf.append("            }\n");		
-		buf.append("            i= 0;\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testCopyFromDeleted() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void goo() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // delete method foo, but copy if statement to goo
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			assertTrue("Cannot find foo", methodDecl != null);
-			
-			rewrite.remove(methodDecl, null);
-			
-			Block body= methodDecl.getBody();
-			List statements= body.statements();
-			assertTrue("Cannot find if statement", statements.size() == 1);
-			
-			ASTNode placeHolder= rewrite.createMoveTarget((ASTNode) statements.get(0));
-			
-			
-			FunctionDeclaration methodGoo= findMethodDeclaration(type, "goo");
-			assertTrue("Cannot find goo", methodGoo != null);
-			
-			rewrite.getListRewrite(methodGoo.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeHolder, null);
-		}	
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void goo() {\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee(); // cool\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testChangesInMoveCD() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee( /* cool */);\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void goo() {\n");
-		buf.append("        x= 1;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // replace statement in goo with moved ifStatement from foo. add a node to if statement
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			assertTrue("Cannot find foo", methodDecl != null);
-			
-			List fooStatements= methodDecl.getBody().statements();
-			assertTrue("Cannot find if statement", fooStatements.size() == 1);
-			
-			// prepare ifStatement to move
-			IfStatement ifStatement= (IfStatement) fooStatements.get(0);
-			rewrite.remove(ifStatement, null);
-			
-			ASTNode placeHolder= rewrite.createCopyTarget(ifStatement);
-			
-			// add return statement to ifStatement block
-			ReturnStatement returnStatement= ast.newReturnStatement();
-			Block then= (Block) ifStatement.getThenStatement();
-			rewrite.getListRewrite(then, Block.STATEMENTS_PROPERTY).insertLast(returnStatement, null);
-	
-			// replace statement in goo with moved ifStatement
-			FunctionDeclaration methodGoo= findMethodDeclaration(type, "goo");
-			assertTrue("Cannot find goo", methodGoo != null);
-			
-			List gooStatements= methodGoo.getBody().statements();
-			assertTrue("Cannot find statement in goo", gooStatements.size() == 1);
-			
-			rewrite.replace((ASTNode) gooStatements.get(0), placeHolder, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");
-		buf.append("    public void goo() {\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee( /* cool */);\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testChangesInMove() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee( /* cool */);\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("    public void goo() {\n");
-		buf.append("        x= 1;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // replace statement in goo with moved ifStatement from foo. add a node to if statement
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			assertTrue("Cannot find foo", methodDecl != null);
-			
-			List fooStatements= methodDecl.getBody().statements();
-			assertTrue("Cannot find if statement", fooStatements.size() == 1);
-			
-			// prepare ifStatement to move
-			IfStatement ifStatement= (IfStatement) fooStatements.get(0);
-			
-			ASTNode placeHolder= rewrite.createMoveTarget(ifStatement);
-			
-			// add return statement to ifStatement block
-			ReturnStatement returnStatement= ast.newReturnStatement();
-
-			Block then= (Block) ifStatement.getThenStatement();
-			rewrite.getListRewrite(then, Block.STATEMENTS_PROPERTY).insertLast(returnStatement, null);
-
-	
-			// replace statement in goo with moved ifStatement
-			FunctionDeclaration methodGoo= findMethodDeclaration(type, "goo");
-			assertTrue("Cannot find goo", methodGoo != null);
-			
-			List gooStatements= methodGoo.getBody().statements();
-			assertTrue("Cannot find statement in goo", gooStatements.size() == 1);
-			
-			rewrite.replace((ASTNode) gooStatements.get(0), placeHolder, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");
-		buf.append("    public void goo() {\n");
-		buf.append("        if (System.out == null) {\n");
-		buf.append("            gee( /* cool */);\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testSwapCD() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        goo(xoo(/*hello*/), k * 2);\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // swap the two arguments
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			assertTrue("Cannot find foo", methodDecl != null);
-			
-			List fooStatements= methodDecl.getBody().statements();
-			assertTrue("More statements than expected", fooStatements.size() == 1);
-			
-			ExpressionStatement statement= (ExpressionStatement) fooStatements.get(0);
-			FunctionInvocation invocation= (FunctionInvocation) statement.getExpression();
-			
-			List arguments= invocation.arguments();
-			assertTrue("More arguments than expected", arguments.size() == 2);
-			
-			ASTNode arg0= (ASTNode) arguments.get(0);
-			ASTNode arg1= (ASTNode) arguments.get(1);
-			
-			ASTNode placeHolder0= rewrite.createCopyTarget(arg0);
-			ASTNode placeHolder1= rewrite.createCopyTarget(arg1);
-			
-			rewrite.replace(arg0, placeHolder1, null);
-			rewrite.replace(arg1, placeHolder0, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        goo(k * 2, xoo(/*hello*/));\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testSwap() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        goo(xoo(/*hello*/), k * 2);\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		
-		{ // swap the two arguments
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			assertTrue("Cannot find foo", methodDecl != null);
-			
-			List fooStatements= methodDecl.getBody().statements();
-			assertTrue("More statements than expected", fooStatements.size() == 1);
-			
-			ExpressionStatement statement= (ExpressionStatement) fooStatements.get(0);
-			FunctionInvocation invocation= (FunctionInvocation) statement.getExpression();
-			
-			List arguments= invocation.arguments();
-			assertTrue("More arguments than expected", arguments.size() == 2);
-			
-			ASTNode arg0= (ASTNode) arguments.get(0);
-			ASTNode arg1= (ASTNode) arguments.get(1);
-			
-			ASTNode placeHolder0= rewrite.createMoveTarget(arg0);
-			ASTNode placeHolder1= rewrite.createMoveTarget(arg1);
-			
-			rewrite.replace(arg0, placeHolder1, null); // replace instead of remove
-			rewrite.replace(arg1, placeHolder0, null); // replace instead of remove
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        goo(k * 2, xoo(/*hello*/));\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	
-	public void testMultipleCopiesOfSameNode() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			List ifStatementBody= ((Block) ifStatement.getThenStatement()).statements();
-			
-			ASTNode node= (ASTNode) ifStatementBody.get(1);
-			ASTNode placeholder1= rewrite.createCopyTarget(node);
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder1, null);
-
-			ASTNode placeholder2= rewrite.createCopyTarget(node);
-			rewrite.replace((ASTNode) ifStatementBody.get(0), placeholder2, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("        i++; // comment\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testCopyMultipleNodes() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first= (ASTNode) thenStatements.get(0);
-			ASTNode last= (ASTNode) thenStatements.get(1);
-			
-			ASTNode placeholder= listRewrite.createCopyTarget(first, last);
-			
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("        foo();\n");
-		buf.append("        i++; // comment\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testCopyMultipleNodes0() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first= (ASTNode) thenStatements.get(0);
-			ASTNode second= (ASTNode) thenStatements.get(1);
-			
-			ASTNode placeholder= listRewrite.createCopyTarget(first, second);
-			
-			// replace the first
-			AST ast= astRoot.getAST();
-			PrefixExpression expression= ast.newPrefixExpression();
-			expression.setOperand(ast.newSimpleName("i"));
-			expression.setOperator(PrefixExpression.Operator.DECREMENT);
-			ExpressionStatement newStatement= ast.newExpressionStatement(expression);
-			
-			listRewrite.replace(first, newStatement, null);
-			
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            --i;\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("        --i;\n");
-		buf.append("        i++; // comment\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	
-	public void testCopyMultipleNodes1() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first= (ASTNode) thenStatements.get(0);
-			ASTNode second= (ASTNode) thenStatements.get(1);
-			
-			ASTNode placeholder= listRewrite.createCopyTarget(first, second);
-			
-			// insert between the copied
-			AST ast= astRoot.getAST();
-			PrefixExpression expression= ast.newPrefixExpression();
-			expression.setOperand(ast.newSimpleName("i"));
-			expression.setOperator(PrefixExpression.Operator.DECREMENT);
-			ExpressionStatement newStatement= ast.newExpressionStatement(expression);
-			listRewrite.insertAfter(newStatement, first, null);
-			
-			// remove the last
-			listRewrite.remove((ASTNode) thenStatements.get(2), null);
-			
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            --i;\n");
-		buf.append("            i++; // comment\n");
-		buf.append("        }\n");
-		buf.append("        foo();\n");
-		buf.append("        --i;\n");
-		buf.append("        i++; // comment\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-
-	public void testCopyMultipleNodes2() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo(1);\n");
-		buf.append("            foo(2); // comment\n");
-		buf.append("            foo(3);\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode second= (ASTNode) thenStatements.get(1);
-			ASTNode last= (ASTNode) thenStatements.get(2);
-			
-			ASTNode placeholder1= listRewrite.createCopyTarget(second, last);
-			rewrite.replace(ifStatement, placeholder1, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        foo(2); // comment\n");
-		buf.append("        foo(3);\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testCopyMultipleNodes3() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo(1);\n");
-		buf.append("            foo(2);\n");
-		buf.append("            foo(3);\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first= (ASTNode) thenStatements.get(0);
-			ASTNode second= (ASTNode) thenStatements.get(1);
-			ASTNode last= (ASTNode) thenStatements.get(2);
-			
-			ASTNode placeholder1= listRewrite.createCopyTarget(first, second);
-			ASTNode placeholder2= listRewrite.createCopyTarget(first, last);
-			
-			listRewrite.insertAfter(placeholder1, last, null);
-			
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder2, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo(1);\n");
-		buf.append("            foo(2);\n");
-		buf.append("            foo(3);\n");
-		buf.append("            foo(1);\n");
-		buf.append("            foo(2);\n");
-		buf.append("        }\n");
-		buf.append("        foo(1);\n");
-		buf.append("        foo(2);\n");
-		buf.append("        foo(3);\n");		
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testCopyMultipleNodes4() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo(1);\n");
-		buf.append("            foo(2);\n");
-		buf.append("            foo(3);\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first= (ASTNode) thenStatements.get(0);
-			ASTNode second= (ASTNode) thenStatements.get(1);
-			
-			ASTNode last= (ASTNode) thenStatements.get(2);
-			
-			ASTNode placeholder1= listRewrite.createCopyTarget(first, last);
-			ASTNode placeholder2= listRewrite.createCopyTarget(first, second);		
-			ASTNode placeholder3= rewrite.createMoveTarget(first);
-
-			listRewrite.insertAfter(placeholder1, last, null);
-			
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder2, null);
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertFirst(placeholder3, null);
-
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        foo(1);\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo(2);\n");
-		buf.append("            foo(3);\n");
-		buf.append("            foo(2);\n");
-		buf.append("            foo(3);\n");
-		buf.append("        }\n");
-		buf.append("        foo(2);\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-
-	public void testMultipleCopiesOfSameNodeAndMove() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			List ifStatementBody= ((Block) ifStatement.getThenStatement()).statements();
-			
-			ASTNode node= (ASTNode) ifStatementBody.get(1);
-			ASTNode placeholder1= rewrite.createCopyTarget(node);
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder1, null);
-
-			ASTNode placeholder2= rewrite.createCopyTarget(node);
-			rewrite.replace((ASTNode) ifStatementBody.get(0), placeholder2, null);
-			
-			ASTNode placeholder3= rewrite.createMoveTarget(node);
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertFirst(placeholder3, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        i++; // comment\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("        i++; // comment\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	public void testMoveMultipleNodes() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first= (ASTNode) thenStatements.get(0);
-			ASTNode last= (ASTNode) thenStatements.get(1);
-			
-			ASTNode placeholder= listRewrite.createMoveTarget(first, last);
-			
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("        foo();\n");
-		buf.append("        i++; // comment\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testMoveMultipleNodes2() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("            i--;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first1= (ASTNode) thenStatements.get(0);
-			ASTNode last1= (ASTNode) thenStatements.get(1);
-			
-			ASTNode placeholder1= listRewrite.createMoveTarget(first1, last1);
-			
-			ASTNode first2= (ASTNode) thenStatements.get(2);
-			ASTNode last2= (ASTNode) thenStatements.get(3);
-			
-			ASTNode placeholder2= listRewrite.createMoveTarget(first2, last2);
-			
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertFirst(placeholder1, null);
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertLast(placeholder2, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        foo();\n");
-		buf.append("        i++; // comment\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("        }\n");
-		buf.append("        i++;\n");
-		buf.append("        i--;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-
-	public void testMoveMultipleNodes3() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("            i--;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first= (ASTNode) thenStatements.get(0);
-			ASTNode between= (ASTNode) thenStatements.get(1);
-			ASTNode last= (ASTNode) thenStatements.get(3);
-			
-			ASTNode placeholder1= listRewrite.createMoveTarget(first, last);
-			ASTNode placeholder2= listRewrite.createCopyTarget(first, between);
-			
-			rewrite.replace(ifStatement, placeholder1, null);
-						
-			rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY).insertFirst(placeholder2, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        foo();\n");
-		buf.append("        i++; // comment\n");
-		buf.append("        foo();\n");
-		buf.append("        i++; // comment\n");
-		buf.append("        i++;\n");
-		buf.append("        i--;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-
-	public void testMoveMultipleNodes4() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("            i--;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			Block thenBlock= (Block) ifStatement.getThenStatement();
-
-			ListRewrite listRewrite= rewrite.getListRewrite(thenBlock, Block.STATEMENTS_PROPERTY);
-			List thenStatements= thenBlock.statements();
-			ASTNode first1= (ASTNode) thenStatements.get(0);
-			ASTNode last1= (ASTNode) thenStatements.get(2);
-			
-			listRewrite.createMoveTarget(first1, last1);
-			
-			ASTNode first2= (ASTNode) thenStatements.get(2);
-			ASTNode last2= (ASTNode) thenStatements.get(3);
-			
-			try {
-				listRewrite.createMoveTarget(first2, last2);
-				assertFalse(true);
-			} catch (IllegalArgumentException e) {
-				// overlapping move ranges
-			}
-		}	
-	}
-
-	
-	public void testReplaceMoveMultiple() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        foo();\n");
-		buf.append("        i++; // comment\n");
-		buf.append("        i--;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			ASTNode first= (ASTNode) statements.get(0);
-			ASTNode last= (ASTNode) statements.get(2);
-			
-			ListRewrite listRewrite= rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY);
-			
-			Block newBlock= astRoot.getAST().newBlock();
-			
-			ASTNode placeholder1= listRewrite.createMoveTarget(first, last, newBlock, null);
-			newBlock.statements().add(placeholder1);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i--;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	
-	public void testMoveForStatementToForBlockCD() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        for(int i= 0; i < 8; i++)\n");
-		buf.append("            foo();\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			ForStatement forStatement= (ForStatement) statements.get(0);
-			Statement body= forStatement.getBody();
-			
-			ASTNode placeholder= rewrite.createCopyTarget(body);
-			
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(body, newBody, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        for(int i= 0; i < 8; i++) {\n");
-		buf.append("            foo();\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testMoveForStatementToForBlock() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        for(int i= 0; i < 8; i++)\n");
-		buf.append("            foo();\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		assertTrue("Code has errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		{
-			List statements= methodDecl.getBody().statements();
-			ForStatement forStatement= (ForStatement) statements.get(0);
-			Statement body= forStatement.getBody();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(body);
-			
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(body, newBody, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        for(int i= 0; i < 8; i++) {\n");
-		buf.append("            foo();\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}	
-		
-	public void testNestedCopies() throws Exception {
-		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("    public void foo(Object o) {\n");
-		buf.append("        int i= (String) o.indexOf('1');\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo(Object o) {\n");
-		buf.append("        int i= ((String) o).indexOf('1');\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		String expected= buf.toString();		
-
-		assertEqualString(preview, expected);
-	}
-	
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingStatementsTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingStatementsTest.java
deleted file mode 100644
index 0e68b32..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingStatementsTest.java
+++ /dev/null
@@ -1,3132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-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.rewrite.ASTRewrite;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ListRewrite;
-
-public class ASTRewritingStatementsTest extends ASTRewritingTest {
-
-	private static final Class THIS= ASTRewritingStatementsTest.class;
-
-	public ASTRewritingStatementsTest(String name) {
-		super(name);
-	}
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-
-	public static Test suite() {
-		return buildModelTestSuite(THIS);
-	}
-
-	public void testInsert1() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		/* foo(): append a return statement */
-		StringBuffer buf= new StringBuffer();
-		buf.append("function C() {\n");
-		buf.append("    function foo() {\n");
-		buf.append("        if (this.equals(new Object())) {\n");
-		buf.append("            toString();\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		
-		FunctionDeclaration methodDec2= (FunctionDeclaration)methodDecl.getBody().statements().get(0);
-		Block block= methodDec2.getBody();
-		assertTrue("No block" , block != null);	
-		
-		ReturnStatement returnStatement= block.getAST().newReturnStatement();
-		returnStatement.setExpression(block.getAST().newNullLiteral());
-		rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY).insertLast(returnStatement, null);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function C() {\n");
-		buf.append("    function foo() {\n");
-		buf.append("        if (this.equals(new Object())) {\n");
-		buf.append("            toString();\n");
-		buf.append("        }\n");
-		buf.append("        return null;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		
-		assertEqualString(preview, buf.toString());
-	}
-
-	public void testInsert2() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		
-		/* insert a statement before */
-		StringBuffer buf= new StringBuffer();
-		buf.append("function D() {\n");
-		buf.append("    function goo() {\n");
-		buf.append("        Number i= new Number(3);\n");
-		buf.append("    }\n");
-		buf.append("    function hoo(p1, p2) {\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");		
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("D.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		FunctionDeclaration methodDeclGoo= (FunctionDeclaration)methodDecl.getBody().statements().get(0);
-
-		List bodyStatements= methodDeclGoo.getBody().statements();
-
-		ASTNode copy= rewrite.createCopyTarget((ASTNode) bodyStatements.get(0));
-		
-		FunctionDeclaration methodDeclHoo= (FunctionDeclaration)methodDecl.getBody().statements().get(1);
-		Block block= methodDeclHoo.getBody();
-		assertTrue("No block" , block != null);
-		
-		List statements= block.statements();
-		assertTrue("No statements in block", !statements.isEmpty());
-		assertTrue("No ReturnStatement", statements.get(0) instanceof ReturnStatement);
-		
-		rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY).insertFirst(copy, null);
-
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function D() {\n");
-		buf.append("    function goo() {\n");
-		buf.append("        Number i= new Number(3);\n");
-		buf.append("    }\n");
-		buf.append("    function hoo(p1, p2) {\n");
-		buf.append("        Number i= new Number(3);\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");		
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());			
-	}
-
-	public void testInsert3() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-
-	  // add after comment 
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public Object goo() {\n");
-		buf.append("        i++; //comment\n");
-		buf.append("        i++; //comment\n");					
-		buf.append("        return new Integer(3);\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		AST ast= astRoot.getAST();
-	
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "goo");
-		Block block= methodDecl.getBody();
-		assertTrue("No block" , block != null);
-		
-		FunctionInvocation invocation1= ast.newFunctionInvocation();
-		invocation1.setName(ast.newSimpleName("foo"));
-		ExpressionStatement statement1= ast.newExpressionStatement(invocation1);
-		
-		FunctionInvocation invocation2= ast.newFunctionInvocation();
-		invocation2.setName(ast.newSimpleName("foo"));
-		ExpressionStatement statement2= ast.newExpressionStatement(invocation2);
-		
-		List statements= methodDecl.getBody().statements();
-		ASTNode second= (ASTNode) statements.get(1);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(methodDecl.getBody(), Block.STATEMENTS_PROPERTY);
-		listRewrite.remove(second, null); 
-		listRewrite.insertBefore(statement1, second, null);
-		listRewrite.insertAfter(statement2, second, null);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public Object goo() {\n");
-		buf.append("        i++; //comment\n");
-		buf.append("        foo();\n");
-		buf.append("        foo();\n");				
-		buf.append("        return new Integer(3);\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());			
-
-	}		
-	
-	public void testRemove1() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);			
-		/* foo():  remove if... */
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("    public Object foo() {\n");
-		buf.append("        if (this.equals(new Object())) {\n");
-		buf.append("            toString();\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		assertTrue("No block" , block != null);	
-		
-		List statements= block.statements();
-		assertTrue("No statements in block", !statements.isEmpty());
-		
-		rewrite.remove((ASTNode) statements.get(0), null);
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("    public Object foo() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	public void testRemove2() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);			
-	
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class D {\n");
-		buf.append("    public Object goo() {\n");
-		buf.append("        return new Integer(3);\n");
-		buf.append("    }\n");
-		buf.append("    public void hoo(int p1, Object p2) {\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");		
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("D.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "D");
-	
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "goo");
-		Block block= methodDecl.getBody();
-		assertTrue("No block" , block != null);
-		
-		List statements= block.statements();
-		assertTrue("No statements in block", !statements.isEmpty());
-		assertTrue("No ReturnStatement", statements.get(0) instanceof ReturnStatement);
-		
-		ReturnStatement returnStatement= (ReturnStatement) statements.get(0);
-		Expression expr= returnStatement.getExpression();
-		rewrite.remove(expr, null);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class D {\n");
-		buf.append("    public Object goo() {\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");
-		buf.append("    public void hoo(int p1, Object p2) {\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");		
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());			
-
-	}
-	public void testRemove3() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);			
-	
-	  // delete 
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public Object goo() {\n");
-		buf.append("        i++; //comment\n");
-		buf.append("        i++; //comment\n");					
-		buf.append("        return new Integer(3);\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-	
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "goo");
-		Block block= methodDecl.getBody();
-		assertTrue("No block" , block != null);
-		
-		List statements= methodDecl.getBody().statements();
-		rewrite.remove((ASTNode) statements.get(0), null);
-		rewrite.remove((ASTNode) statements.get(1), null);
-		rewrite.remove((ASTNode) statements.get(2), null);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public Object goo() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());			
-
-	}
-	
-	public void testReplace1() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);		
-		/* foo(): if.. -> return; */
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("    public Object foo() {\n");
-		buf.append("        if (this.equals(new Object())) {\n");
-		buf.append("            toString();\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "C");
-		
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		assertTrue("No block" , block != null);	
-		
-		List statements= block.statements();
-		assertTrue("No statements in block", !statements.isEmpty());
-		
-		ReturnStatement returnStatement= block.getAST().newReturnStatement();
-		rewrite.replace((ASTNode) statements.get(0), returnStatement, null);
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("    public Object foo() {\n");
-		buf.append("        return;\n");			
-		buf.append("    }\n");
-		buf.append("}\n");
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testReplace2() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);		
-		
-		/* goo(): new Integer(3) -> 'null' */
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class D {\n");
-		buf.append("    public Object goo() {\n");
-		buf.append("        return new Integer(3);\n");
-		buf.append("    }\n");
-		buf.append("    public void hoo(int p1, Object p2) {\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");		
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("D.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		TypeDeclaration type= findTypeDeclaration(astRoot, "D");
-	
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "goo");
-		Block block= methodDecl.getBody();
-		assertTrue("No block" , block != null);
-		
-		List statements= block.statements();
-		assertTrue("No statements in block", !statements.isEmpty());
-		assertTrue("No ReturnStatement", statements.get(0) instanceof ReturnStatement);
-		
-		ReturnStatement returnStatement= (ReturnStatement) statements.get(0);
-		Expression expr= returnStatement.getExpression();
-		Expression modified= block.getAST().newNullLiteral();
-
-		rewrite.replace(expr, modified, null);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class D {\n");
-		buf.append("    public Object goo() {\n");
-		buf.append("        return null;\n");
-		buf.append("    }\n");
-		buf.append("    public void hoo(int p1, Object p2) {\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");		
-		buf.append("}\n");	
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	
-	public void testBreakStatement() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    break;\n");
-		buf.append("    break label;\n");
-		buf.append("    break label;\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 3", statements.size() == 3);
-		{ // insert label
-			BreakStatement statement= (BreakStatement) statements.get(0);
-			assertTrue("Has label", statement.getLabel() == null);
-			
-			SimpleName newLabel= ast.newSimpleName("label2");
-			rewrite.set(statement, BreakStatement.LABEL_PROPERTY, newLabel, null);
-		}
-		{ // replace label
-			BreakStatement statement= (BreakStatement) statements.get(1);
-			
-			SimpleName label= statement.getLabel();
-			assertTrue("Has no label", label != null);
-			
-			SimpleName newLabel= ast.newSimpleName("label2");	
-
-			rewrite.replace(label, newLabel, null);
-		}
-		{ // remove label
-			BreakStatement statement= (BreakStatement) statements.get(2);
-			
-			SimpleName label= statement.getLabel();
-			assertTrue("Has no label", label != null);
-			
-			rewrite.remove(label, null);
-		}	
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    break label2;\n");
-		buf.append("    break label2;\n");
-		buf.append("    break;\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testContinueStatement() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    continue;\n");
-		buf.append("    continue label;\n");
-		buf.append("    continue label;\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 3", statements.size() == 3);
-		{ // insert label
-			ContinueStatement statement= (ContinueStatement) statements.get(0);
-			assertTrue("Has label", statement.getLabel() == null);
-			
-			SimpleName newLabel= ast.newSimpleName("label2");	
-
-			rewrite.set(statement, ContinueStatement.LABEL_PROPERTY, newLabel, null);
-		}
-		{ // replace label
-			ContinueStatement statement= (ContinueStatement) statements.get(1);
-			
-			SimpleName label= statement.getLabel();
-			assertTrue("Has no label", label != null);
-			
-			SimpleName newLabel= ast.newSimpleName("label2");	
-
-			rewrite.replace(label, newLabel, null);
-		}
-		{ // remove label
-			ContinueStatement statement= (ContinueStatement) statements.get(2);
-			
-			SimpleName label= statement.getLabel();
-			assertTrue("Has no label", label != null);
-			
-			rewrite.remove(label, null);
-		}	
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    continue label2;\n");
-		buf.append("    continue label2;\n");
-		buf.append("    continue;\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testDoStatement() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    do {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    } while (i == j);\n");		
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-
-		{ // replace body and expression
-			DoStatement doStatement= (DoStatement) statements.get(0);
-			
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(doStatement.getBody(), newBody, null);
-
-			BooleanLiteral literal= ast.newBooleanLiteral(true);
-			rewrite.replace(doStatement.getExpression(), literal, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    do {\n");
-		buf.append("        hoo(11);\n");
-		buf.append("    } while (true);\n");		
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testDoStatement1() throws Exception {
-		if (true) {
-			return;
-		}
-		
-		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("    public void foo() {\n");
-		buf.append("        do {\n");
-		buf.append("            foo();\n");		
-		buf.append("        } while (true);\n");	
-		buf.append("        do\n");
-		buf.append("            foo();\n");
-		buf.append("        while (true);\n");	
-		buf.append("        do {\n");
-		buf.append("            foo();\n");	
-		buf.append("        } while (true);\n");	
-		buf.append("        do\n");
-		buf.append("            foo();\n");
-		buf.append("        while (true);\n");	
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		assertTrue("Parse errors", (block.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace body block with statement
-			DoStatement doStatement= (DoStatement) statements.get(0);
-			
-			
-			TryStatement newTry= ast.newTryStatement();
-			newTry.getBody().statements().add(ast.newReturnStatement());
-			CatchClause newCatchClause= ast.newCatchClause();
-			SingleVariableDeclaration varDecl= ast.newSingleVariableDeclaration();
-			varDecl.setType(ast.newSimpleType(ast.newSimpleName("Exception")));
-			varDecl.setName(ast.newSimpleName("e"));
-			newCatchClause.setException(varDecl);
-			newTry.catchClauses().add(newCatchClause);
-			
-			rewrite.replace(doStatement.getBody(), newTry, null);
-		}
-		{ // replace body statement with block
-			DoStatement doStatement= (DoStatement) statements.get(1);
-			
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(doStatement.getBody(), newBody, null);
-
-		}
-		{ // replace body block with block
-			DoStatement doStatement= (DoStatement) statements.get(2);
-			
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(doStatement.getBody(), newBody, null);
-
-		}		
-		{ // replace body statement with body
-			DoStatement doStatement= (DoStatement) statements.get(3);
-			
-			
-			TryStatement newTry= ast.newTryStatement();
-			newTry.getBody().statements().add(ast.newReturnStatement());
-			CatchClause newCatchClause= ast.newCatchClause();
-			SingleVariableDeclaration varDecl= ast.newSingleVariableDeclaration();
-			varDecl.setType(ast.newSimpleType(ast.newSimpleName("Exception")));
-			varDecl.setName(ast.newSimpleName("e"));
-			newCatchClause.setException(varDecl);
-			newTry.catchClauses().add(newCatchClause);
-			
-			rewrite.replace(doStatement.getBody(), newTry, null);
-		}
-		
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        do\n");
-		buf.append("            try {\n");
-		buf.append("                return;\n");
-		buf.append("            } catch (Exception e) {\n");
-		buf.append("            }\n");
-		buf.append("        while (true);\n");	
-		buf.append("        do {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        } while (true);\n");	
-		buf.append("        do {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        } while (true);\n");	
-		buf.append("        do\n");
-		buf.append("            try {\n");
-		buf.append("                return;\n");
-		buf.append("            } catch (Exception e) {\n");
-		buf.append("            }\n");
-		buf.append("        while (true);\n");	
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}		
-	
-
-	public void testExpressionStatement() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        i= 0;\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		assertTrue("Parse errors", (block.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		{ // replace expression
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			
-			Assignment assignment= (Assignment) stmt.getExpression();
-			Expression placeholder= (Expression) rewrite.createCopyTarget(assignment);
-									
-			Assignment newExpression= ast.newAssignment();
-			newExpression.setLeftHandSide(ast.newSimpleName("x"));
-			newExpression.setRightHandSide(placeholder);
-			newExpression.setOperator(Assignment.Operator.ASSIGN);
-	
-			rewrite.replace(stmt.getExpression(), newExpression, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        x = i= 0;\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-
-	}
-	
-	public void testForStatement() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        for (int i= 0; i < len; i++) {\n");
-		buf.append("        }\n");
-		buf.append("        for (i= 0, j= 0; i < len; i++, j++) {\n");
-		buf.append("        }\n");
-		buf.append("        for (;;) {\n");
-		buf.append("        }\n");	
-		buf.append("        for (;;) {\n");
-		buf.append("        }\n");
-		buf.append("        for (i= 0; i < len; i++) {\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		assertTrue("Parse errors", (block.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		List statements= block.statements();
-		assertTrue("Number of statements not 5", statements.size() == 5);
-
-		{ // replace initializer, change expression, add updater, replace cody
-			ForStatement forStatement= (ForStatement) statements.get(0);
-			
-			List initializers= forStatement.initializers();
-			assertTrue("Number of initializers not 1", initializers.size() == 1);
-			
-			Assignment assignment= ast.newAssignment();
-			assignment.setLeftHandSide(ast.newSimpleName("i"));
-			assignment.setOperator(Assignment.Operator.ASSIGN);
-			assignment.setRightHandSide(ast.newNumberLiteral("3"));
-			
-			rewrite.replace((ASTNode) initializers.get(0), assignment, null);
-			
-			Assignment assignment2= ast.newAssignment();
-			assignment2.setLeftHandSide(ast.newSimpleName("j"));
-			assignment2.setOperator(Assignment.Operator.ASSIGN);
-			assignment2.setRightHandSide(ast.newNumberLiteral("4"));
-			
-			rewrite.getListRewrite(forStatement, ForStatement.INITIALIZERS_PROPERTY).insertLast(assignment2, null);
-			
-			BooleanLiteral literal= ast.newBooleanLiteral(true);
-			rewrite.replace(forStatement.getExpression(), literal, null);
-			
-			// add updater
-			PrefixExpression prefixExpression= ast.newPrefixExpression();
-			prefixExpression.setOperand(ast.newSimpleName("j"));
-			prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);
-			
-			rewrite.getListRewrite(forStatement, ForStatement.UPDATERS_PROPERTY).insertLast(prefixExpression, null);
-			
-			// replace body		
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(forStatement.getBody(), newBody, null);
-		}
-		{ // remove initializers, expression and updaters
-			ForStatement forStatement= (ForStatement) statements.get(1);
-			
-			List initializers= forStatement.initializers();
-			assertTrue("Number of initializers not 2", initializers.size() == 2);
-			
-			rewrite.remove((ASTNode) initializers.get(0), null);
-			rewrite.remove((ASTNode) initializers.get(1), null);
-			
-			rewrite.remove(forStatement.getExpression(), null);
-			
-			List updaters= forStatement.updaters();
-			assertTrue("Number of initializers not 2", updaters.size() == 2);
-			
-			rewrite.remove((ASTNode) updaters.get(0), null);
-			rewrite.remove((ASTNode) updaters.get(1), null);
-		}
-		{ // insert updater
-			ForStatement forStatement= (ForStatement) statements.get(2);
-			
-			PrefixExpression prefixExpression= ast.newPrefixExpression();
-			prefixExpression.setOperand(ast.newSimpleName("j"));
-			prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);
-
-			rewrite.getListRewrite(forStatement, ForStatement.UPDATERS_PROPERTY).insertLast(prefixExpression, null);
-		}
-		
-		{ // insert updater & initializer
-			ForStatement forStatement= (ForStatement) statements.get(3);
-			
-			Assignment assignment= ast.newAssignment();
-			assignment.setLeftHandSide(ast.newSimpleName("j"));
-			assignment.setOperator(Assignment.Operator.ASSIGN);
-			assignment.setRightHandSide(ast.newNumberLiteral("3"));
-			
-			rewrite.getListRewrite(forStatement, ForStatement.INITIALIZERS_PROPERTY).insertLast(assignment, null);
-			
-			PrefixExpression prefixExpression= ast.newPrefixExpression();
-			prefixExpression.setOperand(ast.newSimpleName("j"));
-			prefixExpression.setOperator(PrefixExpression.Operator.INCREMENT);
-			
-			rewrite.getListRewrite(forStatement, ForStatement.UPDATERS_PROPERTY).insertLast(prefixExpression, null);
-		}
-		
-		{ // replace initializer: turn assignement to var decl
-			ForStatement forStatement= (ForStatement) statements.get(4);
-			
-			Assignment assignment= (Assignment) forStatement.initializers().get(0);
-			SimpleName leftHandSide= (SimpleName) assignment.getLeftHandSide();
-			
-			VariableDeclarationFragment varFragment= ast.newVariableDeclarationFragment();
-			VariableDeclarationExpression varDecl= ast.newVariableDeclarationExpression(varFragment);
-			varFragment.setName(ast.newSimpleName(leftHandSide.getIdentifier()));
-			
-			Expression placeholder= (Expression) rewrite.createCopyTarget(assignment.getRightHandSide());
-			varFragment.setInitializer(placeholder);
-			varDecl.setType(ast.newPrimitiveType(PrimitiveType.INT));
-
-			
-			rewrite.replace(assignment, varDecl, null);
-		}	
-		
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        for (i = 3, j = 4; true; i++, ++j) {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");
-		buf.append("        for (;;) {\n");
-		buf.append("        }\n");
-		buf.append("        for (;;++j) {\n");
-		buf.append("        }\n");		
-		buf.append("        for (j = 3;;++j) {\n");
-		buf.append("        }\n");
-		buf.append("        for (int i = 0; i < len; i++) {\n");
-		buf.append("        }\n");			
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testForStatement1() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        for (;;) {\n");
-		buf.append("            foo();\n");		
-		buf.append("        }\n");	
-		buf.append("        for (;;)\n");
-		buf.append("            foo();\n");	
-		buf.append("        for (;;) {\n");
-		buf.append("            foo();\n");	
-		buf.append("        }\n");	
-		buf.append("        for (;;)\n");
-		buf.append("            foo();\n");	
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		assertTrue("Parse errors", (block.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace body block with statement
-			ForStatement forStatement= (ForStatement) statements.get(0);
-			
-			
-			TryStatement newTry= ast.newTryStatement();
-			newTry.getBody().statements().add(ast.newReturnStatement());
-			CatchClause newCatchClause= ast.newCatchClause();
-			SingleVariableDeclaration varDecl= ast.newSingleVariableDeclaration();
-			varDecl.setType(ast.newSimpleType(ast.newSimpleName("Exception")));
-			varDecl.setName(ast.newSimpleName("e"));
-			newCatchClause.setException(varDecl);
-			newTry.catchClauses().add(newCatchClause);
-			
-			rewrite.replace(forStatement.getBody(), newTry, null);
-		}
-		{ // replace body statement with block
-			ForStatement forStatement= (ForStatement) statements.get(1);
-			
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(forStatement.getBody(), newBody, null);
-
-		}
-		{ // replace body block with block
-			ForStatement forStatement= (ForStatement) statements.get(2);
-			
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(forStatement.getBody(), newBody, null);
-
-		}		
-		{ // replace body statement with body
-			ForStatement forStatement= (ForStatement) statements.get(3);
-			
-			
-			TryStatement newTry= ast.newTryStatement();
-			newTry.getBody().statements().add(ast.newReturnStatement());
-			CatchClause newCatchClause= ast.newCatchClause();
-			SingleVariableDeclaration varDecl= ast.newSingleVariableDeclaration();
-			varDecl.setType(ast.newSimpleType(ast.newSimpleName("Exception")));
-			varDecl.setName(ast.newSimpleName("e"));
-			newCatchClause.setException(varDecl);
-			newTry.catchClauses().add(newCatchClause);
-			
-			rewrite.replace(forStatement.getBody(), newTry, null);
-		}
-		
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        for (;;)\n");
-		buf.append("            try {\n");
-		buf.append("                return;\n");
-		buf.append("            } catch (Exception e) {\n");
-		buf.append("            }\n");	
-		buf.append("        for (;;) {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");	
-		buf.append("        for (;;) {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");	
-		buf.append("        for (;;)\n");
-		buf.append("            try {\n");
-		buf.append("                return;\n");
-		buf.append("            } catch (Exception e) {\n");
-		buf.append("            }\n");	
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}		
-	
-	public void testForStatement2() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        for (;;) {\n");
-		buf.append("        }\n");	
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		assertTrue("Parse errors", (block.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-
-		{ // replace for statement
-			ForStatement forStatement= (ForStatement) statements.get(0);
-			
-			ForStatement newForStatement= ast.newForStatement();
-			List initializers= newForStatement.initializers();
-			
-			Assignment init1= ast.newAssignment();
-			init1.setLeftHandSide(ast.newSimpleName("x"));
-			init1.setRightHandSide(ast.newNumberLiteral("1"));
-			initializers.add(init1);
-			
-			Assignment init2= ast.newAssignment();
-			init2.setLeftHandSide(ast.newSimpleName("y"));
-			init2.setRightHandSide(ast.newNumberLiteral("10"));
-			initializers.add(init2);
-			
-			InfixExpression expression= ast.newInfixExpression();
-			expression.setOperator(InfixExpression.Operator.LESS);
-			expression.setRightOperand(ast.newSimpleName("y"));
-			expression.setLeftOperand(ast.newSimpleName("x"));
-			newForStatement.setExpression(expression);
-			
-			List updaters= newForStatement.updaters();
-			PrefixExpression upd1= ast.newPrefixExpression();
-			upd1.setOperator(PrefixExpression.Operator.INCREMENT);
-			upd1.setOperand(ast.newSimpleName("x"));
-			updaters.add(upd1);
-			
-			PrefixExpression upd2= ast.newPrefixExpression();
-			upd2.setOperator(PrefixExpression.Operator.DECREMENT);
-			upd2.setOperand(ast.newSimpleName("y"));
-			updaters.add(upd2);
-			
-			newForStatement.setBody(ast.newBlock());
-			rewrite.replace(forStatement, newForStatement, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        for (x = 1, y = 10; x < y; ++x, --y) {\n");
-		buf.append("        }\n");	
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-	}
-
-	
-	public void testIfStatement() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    if (i == 0) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    } else {\n");
-		buf.append("    }\n");
-		buf.append("    if (i == 0) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 2", statements.size() == 2);
-
-		{ // replace expression body and then body, remove else body
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			
-			BooleanLiteral literal= ast.newBooleanLiteral(true);
-			rewrite.replace(ifStatement.getExpression(), literal, null);			
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			Block newBody= ast.newBlock();
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(ifStatement.getThenStatement(), newBody, null);
-			
-			rewrite.remove(ifStatement.getElseStatement(), null);
-		}
-		{ // add else body
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			Block newBody= ast.newBlock();
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, newBody, null);
-		}		
-		
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    if (true) {\n");
-		buf.append("        hoo(11);\n");
-		buf.append("    }\n");
-		buf.append("    if (i == 0) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    } else {\n");
-		buf.append("        hoo(11);\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatement1() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    if (i == 0) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    }\n");
-		buf.append("    if (i == 0) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    } else {\n");
-		buf.append("        hoo(11);\n");
-		buf.append("    }\n");
-		buf.append("    if (i == 0) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    } else\n");
-		buf.append("        hoo(11);\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 5", statements.size() == 3);
-
-		{ // replace then block by statement
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-	
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-		}
-		{ // replace then block by statement
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-	
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-		}
-		{ // replace then block by statement
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-	
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    if (i == 0)\n");
-		buf.append("        System.beep();\n");
-		buf.append("    if (i == 0)\n");
-		buf.append("        System.beep();\n");
-		buf.append("    else {\n");
-		buf.append("        hoo(11);\n");
-		buf.append("    }\n");
-		buf.append("    if (i == 0)\n");
-		buf.append("        System.beep();\n");
-		buf.append("    else\n");
-		buf.append("        hoo(11);\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatement2() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            hoo(11);\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace then block by statement, add else statement
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-	
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-			
-			Statement returnStatement= ast.newReturnStatement();
-			rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, returnStatement, null);
-			
-		}
-		{ // replace then block by statement, remove else statement
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-	
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-			rewrite.remove(ifStatement.getElseStatement(), null);
-		}
-		{ // replace then block by statement, add else statement
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-	
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-			
-			Block newElseBlock= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newElseBlock.statements().add(returnStatement);
-			
-			rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, newElseBlock, null);
-
-			
-		}
-		{ // replace then block by statement, remove else statement
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-	
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-			rewrite.remove(ifStatement.getElseStatement(), null);
-		}				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            return;\n");		
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatement3() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            hoo(11);\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 3", statements.size() == 3);
-
-		{ // replace then block by statement
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-		}
-		{ // replace then block by statement
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-		}
-		{ // replace then block by statement
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            hoo(11);\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatement4() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            hoo(11);\n");	
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace then statement by block , add else statement
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			Statement returnStatement= ast.newReturnStatement();
-			rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, returnStatement, null);
-			
-		}
-		{ // replace then statement by block, remove else statement
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			rewrite.remove(ifStatement.getElseStatement(), null);
-		}
-		{ // replace then block by statement, add else statement
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			Block newElseBlock= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newElseBlock.statements().add(returnStatement);
-			
-			rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, newElseBlock, null);
-		}
-		{ // replace then block by statement, remove else statement
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			rewrite.remove(ifStatement.getElseStatement(), null);
-		}				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            return;\n");		
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatement5() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else if (true) {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else if (true)\n");
-		buf.append("            hoo(11);\n");	
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace then statement by block , add else statement
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Block newBody2= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newBody2.statements().add(returnStatement);			
-
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, newElseBlock, null);
-		}
-		{ // replace then statement by block, remove else statement
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			rewrite.remove(ifStatement.getElseStatement(), null);
-		}
-		{ // replace then block by statement, add else statement
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Statement returnStatement= ast.newReturnStatement();
-
-			newElseBlock.setThenStatement(returnStatement);
-			rewrite.set(ifStatement, IfStatement.ELSE_STATEMENT_PROPERTY, newElseBlock, null);
-		}
-		{ // replace then block by statement, remove else statement
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-	
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			ASTNode placeholder= rewrite.createMoveTarget(statement);
-			Block newBody= ast.newBlock();
-			newBody.statements().add(placeholder);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			rewrite.remove(ifStatement.getElseStatement(), null);
-		}				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else if (true) {\n");
-		buf.append("            return;\n");		
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else if (true)\n");
-		buf.append("            return;\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatement6() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 2", statements.size() == 2);
-
-		{ // replace then statement by a try statement
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			
-			TryStatement newTry= ast.newTryStatement();
-			newTry.getBody().statements().add(ast.newReturnStatement());
-			CatchClause newCatchClause= ast.newCatchClause();
-			SingleVariableDeclaration varDecl= ast.newSingleVariableDeclaration();
-			varDecl.setType(ast.newSimpleType(ast.newSimpleName("Exception")));
-			varDecl.setName(ast.newSimpleName("e"));
-			newCatchClause.setException(varDecl);
-			newTry.catchClauses().add(newCatchClause);
-			
-			rewrite.replace(ifStatement.getThenStatement(), newTry, null);			
-		}
-		{ // replace then statement by a try statement
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-	
-			TryStatement newTry= ast.newTryStatement();
-			newTry.getBody().statements().add(ast.newReturnStatement());
-			CatchClause newCatchClause= ast.newCatchClause();
-			SingleVariableDeclaration varDecl= ast.newSingleVariableDeclaration();
-			varDecl.setType(ast.newSimpleType(ast.newSimpleName("Exception")));
-			varDecl.setName(ast.newSimpleName("e"));
-			newCatchClause.setException(varDecl);
-			newTry.catchClauses().add(newCatchClause);
-			
-			rewrite.replace(ifStatement.getThenStatement(), newTry, null);	
-		}
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            try {\n");
-		buf.append("                return;\n");
-		buf.append("            } catch (Exception e) {\n");
-		buf.append("            }\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            try {\n");
-		buf.append("                return;\n");
-		buf.append("            } catch (Exception e) {\n");
-		buf.append("            }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatement_bug48988() throws Exception {
-		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("    void doit() {\n");
-		buf.append("        int var;\n");
-		buf.append("        if (true)\n");
-		buf.append("            var = 17;\n");
-		buf.append("        else if (var == 18)\n");
-		buf.append("            if (1 < var && var < 17)\n");
-		buf.append("                var = 1;\n");
-		buf.append("            else\n");
-		buf.append("                var++;\n");
-		buf.append("        else\n");
-		buf.append("            return;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		TypeDeclaration typeDecl= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methDecl= findMethodDeclaration(typeDecl, "doit");
-		IfStatement outerIf= (IfStatement) methDecl.getBody().statements().get(1);
-		ASTNode node= ((IfStatement) outerIf.getElseStatement()).getThenStatement();
-		
-		assertTrue(node instanceof IfStatement);
-		
-		{ // replace else statement by a block containing the old then statement
-			IfStatement ifStatement= (IfStatement) node;
-			ASTNode placeholder = rewrite.createMoveTarget(ifStatement);
-			Block newBlock = ast.newBlock();
-			newBlock.statements().add(placeholder);
-			rewrite.replace(ifStatement, newBlock, null);
-		}
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    void doit() {\n");
-		buf.append("        int var;\n");
-		buf.append("        if (true)\n");
-		buf.append("            var = 17;\n");
-		buf.append("        else if (var == 18) {\n");
-		buf.append("            if (1 < var && var < 17)\n");
-		buf.append("                var = 1;\n");
-		buf.append("            else\n");
-		buf.append("                var++;\n");
-		buf.append("        } else\n");
-		buf.append("            return;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testIfStatementReplaceElse1() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            hoo(11);\n");			
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            hoo(11);\n");	
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace then statement by block , replace else statement
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			
-			Block newElseBlock= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newElseBlock.statements().add(returnStatement);			
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-			
-		}
-		{ // replace then statement by block, replace else statement
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-				
-			Block newElseBlock= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newElseBlock.statements().add(returnStatement);			
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-		}
-		{ // replace then block by statement, replace else statement
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-				
-			Statement returnStatement= ast.newReturnStatement();
-			rewrite.replace(ifStatement.getElseStatement(), returnStatement, null);
-			
-		}
-		{ // replace then block by statement, replace else statement
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-				
-			Statement returnStatement= ast.newReturnStatement();
-			rewrite.replace(ifStatement.getElseStatement(), returnStatement, null);
-		}				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");	
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            return;\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            return;\n");	
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	
-	public void testIfStatementReplaceElse2() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            hoo(11);\n");			
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            hoo(11);\n");	
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace then statement by block , replace else statement
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			Block newBody= ast.newBlock();
-			ASTNode newStatement= rewrite.createMoveTarget(statement);
-			newBody.statements().add(newStatement);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			Block newElseBlock= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newElseBlock.statements().add(returnStatement);			
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-			
-		}
-		{ // replace then statement by block, replace else statement
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-			
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-				
-			Block newElseBlock= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newElseBlock.statements().add(returnStatement);			
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-		}
-		{ // replace then block by statement, replace else statement
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-			
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			Block newBody= ast.newBlock();
-			ASTNode newStatement= rewrite.createMoveTarget(statement);
-			newBody.statements().add(newStatement);
-			
-			rewrite.replace(statement, newBody, null);				
-			
-			Statement returnStatement= ast.newReturnStatement();
-			rewrite.replace(ifStatement.getElseStatement(), returnStatement, null);
-			
-		}
-		{ // replace then block by statement, replace else statement
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-			
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-				
-			Statement returnStatement= ast.newReturnStatement();
-			rewrite.replace(ifStatement.getElseStatement(), returnStatement, null);
-		}				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");	
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            return;\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            return;\n");	
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatementReplaceElse3() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            hoo(11);\n");			
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            hoo(11);\n");	
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace then statement by block , replace else with if statement (no block)
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			Block newBody= ast.newBlock();
-			ASTNode newStatement= rewrite.createMoveTarget(statement);
-			newBody.statements().add(newStatement);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Statement newBody2= (Statement) rewrite.createMoveTarget(ifStatement.getElseStatement());
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-		}
-		{ // replace then statement by block, replace else with if statement (no block)
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-			
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-				
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Statement newBody2= (Statement) rewrite.createMoveTarget(ifStatement.getElseStatement());
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-		}
-		{ // replace then block by statement, replace else with if statement (block)
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-			
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			Block newBody= ast.newBlock();
-			ASTNode newStatement= rewrite.createMoveTarget(statement);
-			newBody.statements().add(newStatement);
-			
-			rewrite.replace(statement, newBody, null);				
-			
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Statement newBody2= (Statement) rewrite.createMoveTarget(ifStatement.getElseStatement());
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-			
-		}
-		{ // replace then block by statement, replace else with if statement (block)
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-			
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-				
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Statement newBody2= (Statement) rewrite.createMoveTarget(ifStatement.getElseStatement());
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-		}				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else if (true)\n");
-		buf.append("            hoo(11);\n");			
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else if (true)\n");
-		buf.append("            hoo(11);\n");	
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else if (true) {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else if (true) {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testIfStatementReplaceElse4() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else\n");
-		buf.append("            hoo(11);\n");			
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else\n");
-		buf.append("            hoo(11);\n");	
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else {\n");
-		buf.append("            hoo(11);\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-				
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace then statement by block , replace else with if statement (block)
-			IfStatement ifStatement= (IfStatement) statements.get(0);
-			
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			Block newBody= ast.newBlock();
-			ASTNode newStatement= rewrite.createMoveTarget(statement);
-			newBody.statements().add(newStatement);
-			
-			rewrite.replace(statement, newBody, null);
-			
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Block newBody2= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newBody2.statements().add(returnStatement);			
-
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-		}
-		{ // replace then statement by block, replace else with if statement (block)
-			IfStatement ifStatement= (IfStatement) statements.get(1);
-			
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-				
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Block newBody2= ast.newBlock();
-			Statement returnStatement= ast.newReturnStatement();
-			newBody2.statements().add(returnStatement);	
-			
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-		}
-		{ // replace then block by statement, replace else with if statement (no block)
-			IfStatement ifStatement= (IfStatement) statements.get(2);
-			
-			ASTNode statement= ifStatement.getThenStatement();
-			
-			Block newBody= ast.newBlock();
-			ASTNode newStatement= rewrite.createMoveTarget(statement);
-			newBody.statements().add(newStatement);
-			
-			rewrite.replace(statement, newBody, null);				
-			
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Statement newBody2= ast.newReturnStatement();
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-			
-		}
-		{ // replace then block by statement, replace else with if statement (no block)
-			IfStatement ifStatement= (IfStatement) statements.get(3);
-			
-			Block body= (Block) ifStatement.getThenStatement();
-			ASTNode statement= (ASTNode) body.statements().get(0);
-			
-			ASTNode newBody= rewrite.createMoveTarget(statement);
-			
-			rewrite.replace(body, newBody, null);
-				
-			IfStatement newElseBlock= ast.newIfStatement();
-			newElseBlock.setExpression(ast.newBooleanLiteral(true));
-			
-			Statement newBody2= ast.newReturnStatement();
-			newElseBlock.setThenStatement(newBody2);
-
-			rewrite.replace(ifStatement.getElseStatement(), newElseBlock, null);
-		}				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else if (true) {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");			
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else if (true) {\n");
-		buf.append("            return;\n");
-		buf.append("        }\n");		
-		buf.append("        if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        } else if (true)\n");
-		buf.append("            return;\n");	
-		buf.append("        if (i == 0)\n");
-		buf.append("            System.beep();\n");
-		buf.append("        else if (true)\n");
-		buf.append("            return;\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	public void testLabeledStatement() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        label: if (i == 0) {\n");
-		buf.append("            System.beep();\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-
-		{ // replace label and statement
-			LabeledStatement labeledStatement= (LabeledStatement) statements.get(0);
-			
-			Name newLabel= ast.newSimpleName("newLabel");
-			
-			rewrite.replace(labeledStatement.getLabel(), newLabel, null);
-						
-			Assignment newExpression= ast.newAssignment();
-			newExpression.setLeftHandSide(ast.newSimpleName("x"));
-			newExpression.setRightHandSide(ast.newNumberLiteral("1"));
-			newExpression.setOperator(Assignment.Operator.ASSIGN);
-			
-			Statement newStatement= ast.newExpressionStatement(newExpression);
-			
-			rewrite.replace(labeledStatement.getBody(), newStatement, null);
-		}		
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        newLabel: x = 1;\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}		
-	
-	public void testReturnStatement() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        return;\n");
-		buf.append("        return 1;\n");
-		buf.append("        return 1;\n");
-		buf.append("        return 1 + 2;\n");
-		buf.append("        return(1 + 2);\n");
-		buf.append("        return/*com*/ 1;\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 6", statements.size() == 6);
-		{ // insert expression
-			ReturnStatement statement= (ReturnStatement) statements.get(0);
-			assertTrue("Has expression", statement.getExpression() == null);
-			
-			SimpleName newExpression= ast.newSimpleName("x");	
-			rewrite.set(statement, ReturnStatement.EXPRESSION_PROPERTY, newExpression, null);
-		}
-		{ // replace expression
-			ReturnStatement statement= (ReturnStatement) statements.get(1);
-			
-			Expression expression= statement.getExpression();
-			assertTrue("Has no label", expression != null);
-			
-			SimpleName newExpression= ast.newSimpleName("x");
-
-			rewrite.replace(expression, newExpression, null);
-		}
-		{ // remove expression
-			ReturnStatement statement= (ReturnStatement) statements.get(2);
-			
-			Expression expression= statement.getExpression();
-			assertTrue("Has no label", expression != null);
-			
-			rewrite.remove(expression, null);
-		}
-		{ // modify in expression (no change)
-			ReturnStatement statement= (ReturnStatement) statements.get(3);
-			
-			InfixExpression expression= (InfixExpression) statement.getExpression();
-			rewrite.replace(expression.getLeftOperand(), ast.newNumberLiteral("9"), null);
-		}
-		{ // replace parentized expression (additional space needed)
-			ReturnStatement statement= (ReturnStatement) statements.get(4);
-			
-			Expression expression= statement.getExpression();
-			rewrite.replace(expression, ast.newNumberLiteral("9"), null);
-		}
-		{ // replace expression with comment (additional space needed)
-			ReturnStatement statement= (ReturnStatement) statements.get(5);
-			
-			Expression expression= statement.getExpression();
-			rewrite.replace(expression, ast.newNumberLiteral("9"), null);
-		}		
-		
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        return x;\n");
-		buf.append("        return x;\n");
-		buf.append("        return;\n");
-		buf.append("        return 9 + 2;\n");
-		buf.append("        return 9;\n");	
-		buf.append("        return 9;\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testSwitchStatement() throws Exception {
-		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("    public void foo(int i) {\n");
-		buf.append("        switch (i) {\n");
-		buf.append("        }\n");
-		buf.append("        switch (i) {\n");
-		buf.append("            case 1:\n");
-		buf.append("                i= 1;\n");
-		buf.append("                break;\n");	
-		buf.append("            case 2:\n");
-		buf.append("                i= 2;\n");
-		buf.append("                break;\n");			
-		buf.append("            default:\n");
-		buf.append("                i= 3;\n");		
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List blockStatements= block.statements();
-		assertTrue("Number of statements not 2", blockStatements.size() == 2);
-		{ // insert statements, replace expression
-			SwitchStatement switchStatement= (SwitchStatement) blockStatements.get(0);
-			
-			ASTNode expression= switchStatement.getExpression();
-			SimpleName newExpression= ast.newSimpleName("x");	
-			rewrite.replace(expression, newExpression, null);
-			
-			List statements= switchStatement.statements();
-			assertTrue("Number of statements not 0", statements.size() == 0);
-			
-			SwitchCase caseStatement1= ast.newSwitchCase();
-			caseStatement1.setExpression(ast.newNumberLiteral("1"));
-			
-			Statement statement1= ast.newReturnStatement();
-			
-			SwitchCase caseStatement2= ast.newSwitchCase(); // default
-			caseStatement2.setExpression(null);
-			
-			ListRewrite listRewrite= rewrite.getListRewrite(switchStatement, SwitchStatement.STATEMENTS_PROPERTY);
-			listRewrite.insertLast(caseStatement1, null);
-			listRewrite.insertLast(statement1, null);
-			listRewrite.insertLast(caseStatement2, null);
-		}
-		
-		{ // insert, remove, replace statements, change case statements
-			SwitchStatement switchStatement= (SwitchStatement) blockStatements.get(1);
-			
-			List statements= switchStatement.statements();
-			assertTrue("Number of statements not 8", statements.size() == 8);
-			
-			// remove statements
-			
-			rewrite.remove((ASTNode) statements.get(0), null);
-			rewrite.remove((ASTNode) statements.get(1), null);
-			rewrite.remove((ASTNode) statements.get(2), null);
-			
-			// change case statement
-			SwitchCase caseStatement= (SwitchCase) statements.get(3);
-			Expression newCaseExpression= ast.newNumberLiteral("10");
-			rewrite.replace(caseStatement.getExpression(), newCaseExpression, null);
-			
-			ListRewrite listRewrite= rewrite.getListRewrite(switchStatement, SwitchStatement.STATEMENTS_PROPERTY);
-			
-			{
-				// insert case statement
-				SwitchCase caseStatement2= ast.newSwitchCase();
-				caseStatement2.setExpression(ast.newNumberLiteral("11"));
-				listRewrite.insertFirst(caseStatement2, null);
-	
-				// insert statement
-				Statement statement1= ast.newReturnStatement();
-				listRewrite.insertAfter(statement1, caseStatement2, null);
-			}
-			
-			{
-				// insert case statement
-				SwitchCase caseStatement2= ast.newSwitchCase();
-				caseStatement2.setExpression(ast.newNumberLiteral("12"));
-				listRewrite.insertLast(caseStatement2, null);
-	
-				// insert statement
-				Statement statement1= ast.newReturnStatement();
-				listRewrite.insertAfter(statement1, caseStatement2, null);
-			}			
-			
-
-		}		
-	
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo(int i) {\n");
-		buf.append("        switch (x) {\n");
-		buf.append("            case 1:\n");
-		buf.append("                return;\n");
-		buf.append("            default:\n");			
-		buf.append("        }\n");
-		buf.append("        switch (i) {\n");
-		buf.append("            case 11:\n");
-		buf.append("                return;\n");
-		buf.append("            case 10:\n");		
-		buf.append("                i= 2;\n");
-		buf.append("                break;\n");			
-		buf.append("            default:\n");
-		buf.append("                i= 3;\n");
-		buf.append("            case 12:\n");
-		buf.append("                return;\n");			
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	/** @deprecated using deprecated code */
-	public void testThrowStatement() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        throw new Exception();\n");
-		buf.append("    }\n");
-		buf.append("    public void goo() {\n");
-		buf.append("        throw new Exception('d');\n");
-		buf.append("    }\n");		
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		{ // replace expression
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-			Block block= methodDecl.getBody();
-			List statements= block.statements();
-			assertTrue("Number of statements not 1", statements.size() == 1);			
-			
-			ThrowStatement statement= (ThrowStatement) statements.get(0);
-			
-			ClassInstanceCreation creation= ast.newClassInstanceCreation();
-			creation.setName(ast.newSimpleName("NullPointerException"));
-			creation.arguments().add(ast.newSimpleName("x"));
-			
-			rewrite.replace(statement.getExpression(), creation, null);
-		}
-		
-		{ // modify expression
-			FunctionDeclaration methodDecl= findMethodDeclaration(type, "goo");
-			Block block= methodDecl.getBody();
-			List statements= block.statements();
-			assertTrue("Number of statements not 1", statements.size() == 1);			
-			
-			ThrowStatement statement= (ThrowStatement) statements.get(0);			
-			
-			ClassInstanceCreation creation= (ClassInstanceCreation) statement.getExpression();
-			
-			ASTNode newArgument= ast.newSimpleName("x");
-			rewrite.replace((ASTNode) creation.arguments().get(0), newArgument, null);
-		}				
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        throw new NullPointerException(x);\n");
-		buf.append("    }\n");
-		buf.append("    public void goo() {\n");
-		buf.append("        throw new Exception(x);\n");
-		buf.append("    }\n");		
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}		
-		
-	public void testTryStatement() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo(i) {\n");
-		buf.append("    try {\n");	
-		buf.append("    } finally {\n");
-		buf.append("    }\n");		
-		buf.append("    try {\n");	
-		buf.append("    } catch (e) {\n");
-		buf.append("    } finally {\n");
-		buf.append("    }\n");
-		buf.append("    try {\n");	
-		buf.append("    } catch (e) {\n");
-		buf.append("    }\n");
-		buf.append("    try {\n");	
-		buf.append("    } catch (e) {\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List blockStatements= block.statements();
-		assertTrue("Number of statements not 4", blockStatements.size() == 4);
-		{ // add catch, replace finally
-			TryStatement tryStatement= (TryStatement) blockStatements.get(0);
-			
-			CatchClause catchClause= ast.newCatchClause();
-			SingleVariableDeclaration decl= ast.newSingleVariableDeclaration();
-			decl.setName(ast.newSimpleName("e"));
-			catchClause.setException(decl);
-						
-			rewrite.getListRewrite(tryStatement, TryStatement.CATCH_CLAUSES_PROPERTY).insertLast(catchClause, null);
-			
-			Block body= ast.newBlock();
-			body.statements().add(ast.newReturnStatement());
-			
-			rewrite.replace(tryStatement.getFinally(), body, null);
-		}
-		{ // replace catch, remove finally
-			TryStatement tryStatement= (TryStatement) blockStatements.get(1);
-			
-			List catchClauses= tryStatement.catchClauses();
-			
-			CatchClause catchClause= ast.newCatchClause();
-			SingleVariableDeclaration decl= ast.newSingleVariableDeclaration();
-			decl.setName(ast.newSimpleName("x"));
-			catchClause.setException(decl);
-			
-			rewrite.replace((ASTNode) catchClauses.get(0), catchClause, null);
-					
-			rewrite.remove(tryStatement.getFinally(), null);
-		}
-		{ // remove catch, add finally
-			TryStatement tryStatement= (TryStatement) blockStatements.get(2);
-			
-			List catchClauses= tryStatement.catchClauses();
-			rewrite.remove((ASTNode) catchClauses.get(0), null);
-			
-			
-			Block body= ast.newBlock();
-			body.statements().add(ast.newReturnStatement());
-
-			rewrite.set(tryStatement, TryStatement.FINALLY_PROPERTY, body, null);
-		}	
-	
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo(i) {\n");
-		buf.append("    try {\n");
-		buf.append("    } catch ( e) {\n");		
-		buf.append("    } finally {\n");
-		buf.append("        return;\n");				
-		buf.append("    }\n");		
-		buf.append("    try {\n");	
-		buf.append("    } catch (x) {\n");
-		buf.append("    }\n");
-		buf.append("    try {\n");	
-		buf.append("    } finally {\n");
-		buf.append("        return;\n");		
-		buf.append("    }\n");
-		buf.append("    try {\n");
-		buf.append("    } catch (e) {\n");
-		buf.append("    }\n");	
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testVariableDeclarationStatement() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    var i1= 1;\n");
-		buf.append("    var i2= 1, k2= 2, n2= 3;\n");
-		buf.append("}\n");		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("A.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		assertTrue("Parse errors", (block.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		List statements= block.statements();
-		assertTrue("Number of statements not 2", statements.size() == 2);
-		{	// add modifier, change type, add fragment
-			VariableDeclarationStatement decl= (VariableDeclarationStatement) statements.get(0);
-					
-			VariableDeclarationFragment frag=	ast.newVariableDeclarationFragment();
-			frag.setName(ast.newSimpleName("k1"));
-			frag.setInitializer(null);
-						
-			rewrite.getListRewrite(decl, VariableDeclarationStatement.FRAGMENTS_PROPERTY).insertLast(frag, null);
-		}
-		{	// add modifiers, remove first two fragments, replace last
-			VariableDeclarationStatement decl= (VariableDeclarationStatement) statements.get(1);
-			
-			List fragments= decl.fragments();
-			assertTrue("Number of fragments not 3", fragments.size() == 3);
-			
-			rewrite.remove((ASTNode) fragments.get(0), null);
-			rewrite.remove((ASTNode) fragments.get(1), null);
-			
-			VariableDeclarationFragment frag=	ast.newVariableDeclarationFragment();
-			frag.setName(ast.newSimpleName("k2"));
-			frag.setInitializer(null);
-			
-			rewrite.replace((ASTNode) fragments.get(2), frag, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");		
-		buf.append("    var i1= 1, k1;\n");
-		buf.append("    var k2;\n");
-		buf.append("}\n");		
-		
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testWhileStatement() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    while (i == j) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-
-		{ // replace expression and body
-			WhileStatement whileStatement= (WhileStatement) statements.get(0);
-
-			BooleanLiteral literal= ast.newBooleanLiteral(true);
-			rewrite.replace(whileStatement.getExpression(), literal, null);
-			
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(whileStatement.getBody(), newBody, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    while (true) {\n");
-		buf.append("        hoo(11);\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testWhileStatement1() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    while (true) {\n");
-		buf.append("        foo();\n");		
-		buf.append("    }\n");	
-		buf.append("    while (true)\n");
-		buf.append("        foo();\n");	
-		buf.append("    while (true) {\n");
-		buf.append("        foo();\n");	
-		buf.append("    }\n");	
-		buf.append("    while (true)\n");
-		buf.append("        foo();\n");	
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		assertTrue("Parse errors", (block.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		List statements= block.statements();
-		assertTrue("Number of statements not 4", statements.size() == 4);
-
-		{ // replace body block with statement
-			WhileStatement whileStatement= (WhileStatement) statements.get(0);
-			
-			
-			TryStatement newTry= ast.newTryStatement();
-			newTry.getBody().statements().add(ast.newReturnStatement());
-			CatchClause newCatchClause= ast.newCatchClause();
-			SingleVariableDeclaration varDecl= ast.newSingleVariableDeclaration();
-			varDecl.setName(ast.newSimpleName("e"));
-			newCatchClause.setException(varDecl);
-			newTry.catchClauses().add(newCatchClause);
-			
-			rewrite.replace(whileStatement.getBody(), newTry, null);
-		}
-		{ // replace body statement with block
-			WhileStatement whileStatement= (WhileStatement) statements.get(1);
-			
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(whileStatement.getBody(), newBody, null);
-
-		}
-		{ // replace body block with block
-			WhileStatement whileStatement= (WhileStatement) statements.get(2);
-			
-			Block newBody= ast.newBlock();
-			
-			FunctionInvocation invocation= ast.newFunctionInvocation();
-			invocation.setName(ast.newSimpleName("hoo"));
-			invocation.arguments().add(ast.newNumberLiteral("11"));
-			
-			newBody.statements().add(ast.newExpressionStatement(invocation));
-			
-			rewrite.replace(whileStatement.getBody(), newBody, null);
-
-		}		
-		{ // replace body statement with body
-			WhileStatement whileStatement= (WhileStatement) statements.get(3);
-			
-			
-			TryStatement newTry= ast.newTryStatement();
-			newTry.getBody().statements().add(ast.newReturnStatement());
-			CatchClause newCatchClause= ast.newCatchClause();
-			SingleVariableDeclaration varDecl= ast.newSingleVariableDeclaration();
-			varDecl.setName(ast.newSimpleName("e"));
-			newCatchClause.setException(varDecl);
-			newTry.catchClauses().add(newCatchClause);
-			
-			rewrite.replace(whileStatement.getBody(), newTry, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    while (true)\n");
-		buf.append("        try {\n");
-		buf.append("            return;\n");
-		buf.append("        } catch (e) {\n");
-		buf.append("        }\n");	
-		buf.append("    while (true) {\n");
-		buf.append("        hoo(11);\n");
-		buf.append("    }\n");	
-		buf.append("    while (true) {\n");
-		buf.append("        hoo(11);\n");
-		buf.append("    }\n");	
-		buf.append("    while (true)\n");
-		buf.append("        try {\n");
-		buf.append("            return;\n");
-		buf.append("        } catch (e) {\n");
-		buf.append("        }\n");	
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}		
-	
-	
-	public void testInsertCode() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    while (i == j) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-	
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-
-		{ // replace while statement with comment, insert new statement
-			WhileStatement whileStatement= (WhileStatement) statements.get(0);
-			String comment= "//hello";
-			ASTNode placeHolder= rewrite.createStringPlaceholder(comment, ASTNode.RETURN_STATEMENT);
-			
-			rewrite.replace(whileStatement, placeHolder, null);
-			
-			StringBuffer buf1= new StringBuffer();
-			buf1.append("if (i == 3) {\n");
-			buf1.append("    System.beep();\n");
-			buf1.append("}");
-			
-			ASTNode placeHolder2= rewrite.createStringPlaceholder(buf1.toString(), ASTNode.IF_STATEMENT);
-			rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY).insertLast(placeHolder2, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    //hello\n");
-		buf.append("    if (i == 3) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testInsertComment() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    while (i == j) {\n");
-		buf.append("        System.beep();\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		// Get while statement block
-		FunctionDeclaration methodDecl= (FunctionDeclaration) astRoot.statements().get(0);
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		WhileStatement whileStatement= (WhileStatement) statements.get(0);
-		Statement whileBlock= whileStatement.getBody();
-	
-		// replace while statement with comment, insert new statement
-		StringBuffer comment = new StringBuffer();
-		comment.append("/*\n");
-		comment.append(" * Here's the block comment I want to insert :-)\n");
-		comment.append(" */");
-		ASTNode placeHolder= rewrite.createStringPlaceholder(comment.toString(), ASTNode.RETURN_STATEMENT);
-		ListRewrite list = rewrite.getListRewrite(whileBlock, Block.STATEMENTS_PROPERTY);
-		list.insertFirst(placeHolder, null);
-	
-		// Get new code
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("function foo() {\n");
-		buf.append("    while (i == j) {\n");
-		buf.append("        /*\n");
-		buf.append("         * Here's the block comment I want to insert :-)\n");
-		buf.append("         */\n");
-		buf.append("        System.beep();\n");
-		buf.append("    }\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/ASTRewritingTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTest.java
deleted file mode 100644
index 7a418de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTest.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.text.Document;
-
-import org.eclipse.text.edits.TextEdit;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.ASTParser;
-import org.eclipse.wst.jsdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.wst.jsdt.core.dom.BodyDeclaration;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.FieldDeclaration;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.Modifier;
-import org.eclipse.wst.jsdt.core.dom.PrimitiveType;
-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.VariableDeclarationFragment;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ASTRewrite;
-import org.eclipse.wst.jsdt.core.formatter.DefaultCodeFormatterConstants;
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests;
-
-/**
-  */
-public class ASTRewritingTest extends AbstractJavaModelTests {
-	/** @deprecated using deprecated code */
-	private static final int AST_INTERNAL_JLS2 = AST.JLS2;
-	
-	protected IJavaScriptProject project1;
-	protected IPackageFragmentRoot sourceFolder;
-	
-	public static Test suite() {
-		TestSuite suite= new TestSuite(ASTRewritingTest.class.getName());
-		suite.addTest(ASTRewritingExpressionsTest.allTests());
-		//suite.addTest(ASTRewritingInsertBoundTest.allTests());
-	//	suite.addTest(ASTRewritingMethodDeclTest.allTests());
-		//suite.addTest(ASTRewritingMoveCodeTest.allTests());
-		//suite.addTest(ASTRewritingStatementsTest.allTests());
-		//suite.addTest(ASTRewritingTrackingTest.allTests());
-		//suite.addTest(ASTRewritingJavadocTest.allTests());
-		//suite.addTest(ASTRewritingTypeDeclTest.allTests());
-		//suite.addTest(ASTRewritingGroupNodeTest.allTests());
-		//suite.addTest(SourceModifierTest.allTests());
-		//suite.addTest(LineCommentOffsetsTest.allTests());
-		return suite;
-	}
-
-	
-	public ASTRewritingTest(String name) {
-		super(name);
-	}
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-	}
-	
-	public void tearDownSuite() throws Exception {
-		super.tearDownSuite();
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		IJavaScriptProject proj= createJavaProject("P", new String[] {"src"});
-		proj.setOption(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		proj.setOption(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		proj.setOption(JavaScriptCore.COMPILER_COMPLIANCE, JavaScriptCore.VERSION_1_5);
-		proj.setOption(JavaScriptCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaScriptCore.ERROR);
-		proj.setOption(JavaScriptCore.COMPILER_SOURCE, JavaScriptCore.VERSION_1_5);
-		proj.setOption(JavaScriptCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaScriptCore.VERSION_1_5);
-
-		this.project1 = proj;
-		this.sourceFolder = this.getPackageFragmentRoot("P", "src");
-		
-		waitUntilIndexesReady();
-	}
-	
-	protected void tearDown() throws Exception {
-		deleteProject("P");
-		super.tearDown();
-	}
-		
-	protected JavaScriptUnit createAST(IJavaScriptUnit cu) {
-		ASTParser parser= ASTParser.newParser(AST_INTERNAL_JLS2);
-		parser.setSource(cu);
-		parser.setResolveBindings(false);
-		return (JavaScriptUnit) parser.createAST(null);
-	}
-	
-	protected JavaScriptUnit createAST3(IJavaScriptUnit cu) {
-		ASTParser parser= ASTParser.newParser(AST.JLS3);
-		parser.setSource(cu);
-		parser.setResolveBindings(false);
-		return (JavaScriptUnit) parser.createAST(null);
-	}
-	
-	protected String evaluateRewrite(IJavaScriptUnit cu, ASTRewrite rewrite) throws Exception {
-		Document document1= new Document(cu.getSource());
-		TextEdit res= rewrite.rewriteAST(document1, cu.getJavaScriptProject().getOptions(true));
-		res.apply(document1);
-		String content1= document1.get();
-		
-		Document document2= new Document(cu.getSource());
-		TextEdit res2= rewrite.rewriteAST();
-		res2.apply(document2);
-		String content2= document2.get();
-		
-		assertEquals(content1, content2);
-		
-		return content1;
-	}
-	
-	
-	public static void assertEqualString(String actual, String expected) {
-		StringAsserts.assertEqualString(actual, expected);
-	}
-	
-	public static TypeDeclaration findTypeDeclaration(JavaScriptUnit astRoot, String simpleTypeName) {
-		return (TypeDeclaration) findAbstractTypeDeclaration(astRoot, simpleTypeName);
-	}
-	
-	public static AbstractTypeDeclaration findAbstractTypeDeclaration(JavaScriptUnit astRoot, String simpleTypeName) {
-		List types= astRoot.types();
-		for (int i= 0; i < types.size(); i++) {
-			AbstractTypeDeclaration elem= (AbstractTypeDeclaration) types.get(i);
-			if (simpleTypeName.equals(elem.getName().getIdentifier())) {
-				return elem;
-			}
-		}
-		return null;
-	}
-	
-	
-	public static FunctionDeclaration findMethodDeclaration(JavaScriptUnit astRoot, String simpleTypeName) {
-		List statements= astRoot.statements();
-		for (int i= 0; i < statements.size(); i++) {
-			Object obj=statements.get(i);
-			if (obj instanceof FunctionDeclaration) {
-							FunctionDeclaration elem= (FunctionDeclaration)obj; 
-							if (simpleTypeName.equals(elem.getName().getIdentifier())) {
-								return elem;
-							}
-			}
-		}
-		return null;
-	}
-
-
-	public static FunctionDeclaration findMethodDeclaration(TypeDeclaration typeDecl, String methodName) {
-		FunctionDeclaration[] methods= typeDecl.getMethods();
-		for (int i= 0; i < methods.length; i++) {
-			if (methodName.equals(methods[i].getName().getIdentifier())) {
-				return methods[i];
-			}
-		}
-		return null;
-	}
-	
-	public static SingleVariableDeclaration createNewParam(AST ast, String name) {
-		SingleVariableDeclaration newParam= ast.newSingleVariableDeclaration();
-		newParam.setType(ast.newPrimitiveType(PrimitiveType.FLOAT));
-		newParam.setName(ast.newSimpleName(name));
-		return newParam;
-	}
-	
-	/** @deprecated using deprecated code */
-	private void setModifiers(BodyDeclaration bodyDeclaration, int modifiers) {
-		bodyDeclaration.setModifiers(modifiers);
-	}
-
-	/** @deprecated using deprecated code */
-	private void setReturnType(FunctionDeclaration methodDeclaration, Type type) {
-		methodDeclaration.setReturnType(type);
-	}
-	
-	protected FieldDeclaration createNewField(AST ast, String name) {
-		VariableDeclarationFragment frag= ast.newVariableDeclarationFragment();
-		frag.setName(ast.newSimpleName(name));
-		FieldDeclaration newFieldDecl= ast.newFieldDeclaration(frag);
-		if (ast.apiLevel() == AST_INTERNAL_JLS2) {
-			setModifiers(newFieldDecl, Modifier.PRIVATE);
-		} else {
-			newFieldDecl.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD));
-		}
-		newFieldDecl.setType(ast.newPrimitiveType(PrimitiveType.DOUBLE));
-		return newFieldDecl;
-	}
-	
-	protected FunctionDeclaration createNewMethod(AST ast, String name, boolean isAbstract) {
-		FunctionDeclaration decl= ast.newFunctionDeclaration();
-		decl.setName(ast.newSimpleName(name));
-		if (ast.apiLevel() == AST_INTERNAL_JLS2) {
-			setModifiers(decl, isAbstract ? (Modifier.ABSTRACT | Modifier.PRIVATE) : Modifier.PRIVATE);
-			setReturnType(decl, ast.newPrimitiveType(PrimitiveType.VOID));
-		} else {
-			decl.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD));
-			if (isAbstract) {
-				decl.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.ABSTRACT_KEYWORD));
-			}
-			decl.setReturnType2(ast.newPrimitiveType(PrimitiveType.VOID));
-		}
-		SingleVariableDeclaration param= ast.newSingleVariableDeclaration();
-		param.setName(ast.newSimpleName("str"));
-		param.setType(ast.newSimpleType(ast.newSimpleName("String")));
-		decl.parameters().add(param);
-		decl.setBody(isAbstract ? null : ast.newBlock());
-		return decl;
-	}
-
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTrackingTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTrackingTest.java
deleted file mode 100644
index d306305..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTrackingTest.java
+++ /dev/null
@@ -1,524 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-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.rewrite.ASTRewrite;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ITrackedNodePosition;
-
-public class ASTRewritingTrackingTest extends ASTRewritingTest {
-
-	private static final Class THIS= ASTRewritingTrackingTest.class;
-	
-	public ASTRewritingTrackingTest(String name) {
-		super(name);
-	}
-	
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-	
-	public void testNamesWithDelete() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public int x1;\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            i--;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		ASTRewrite rewrite= ASTRewrite.create(ast);
-		
-		ArrayList names= new ArrayList();
-		ArrayList positions= new ArrayList();
-		
-		TypeDeclaration typeC= findTypeDeclaration(astRoot, "C");
-		ITrackedNodePosition position= rewrite.track(typeC.getName());
-		names.add("C");
-		positions.add(position);
-		
-		List decls= typeC.bodyDeclarations();
-		
-		FunctionDeclaration method= (FunctionDeclaration) decls.get(1);
-		ITrackedNodePosition position2= rewrite.track(method.getName());
-		names.add("foo");
-		positions.add(position2);
-		
-		FieldDeclaration field= (FieldDeclaration) decls.get(0);
-		rewrite.remove(field, null);
-						
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            i--;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		String expected= buf.toString();
-		assertEqualString(preview, expected);
-		
-		assertCorrectTracking(names, positions, expected);
-
-	}
-	
-	private void assertCorrectTracking(List names, List positions, String expected) {
-		for (int i= 0; i < names.size(); i++) {
-			String name= (String) names.get(i);
-			ITrackedNodePosition pos= (ITrackedNodePosition) positions.get(i);
-			String string= expected.substring(pos.getStartPosition(), pos.getStartPosition() + pos.getLength());
-			assertEqualString(string, name);
-		}
-	}
-
-	public void testNamesWithInsert() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public int x1;\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            i--;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(ast);
-		
-		ArrayList names= new ArrayList();
-		ArrayList positions= new ArrayList();
-		
-		TypeDeclaration typeC= findTypeDeclaration(astRoot, "C");
-		ITrackedNodePosition position= rewrite.track(typeC.getName());
-		names.add("C");
-		positions.add(position);
-		
-		List decls= typeC.bodyDeclarations();
-		
-		FunctionDeclaration method= (FunctionDeclaration) decls.get(1);
-		position= rewrite.track(method.getName());
-		names.add("foo");
-		positions.add(position);
-		
-		FieldDeclaration field= (FieldDeclaration) decls.get(0);
-		List fragments= field.fragments();
-		VariableDeclarationFragment frag1= (VariableDeclarationFragment) fragments.get(0);
-		position= rewrite.track(frag1.getName());
-		names.add("x1");
-		positions.add(position);
-		
-		VariableDeclarationFragment newFrag= ast.newVariableDeclarationFragment();
-		newFrag.setName(ast.newSimpleName("newVariable"));
-		newFrag.setExtraDimensions(2);
-
-		rewrite.getListRewrite(field, FieldDeclaration.FRAGMENTS_PROPERTY).insertFirst(newFrag, null);
-
-						
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public int newVariable[][], x1;\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            i--;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		String expected= buf.toString();
-		assertEqualString(preview, expected);
-
-		assertCorrectTracking(names, positions, expected);
-
-	}
-	
-	public void testNamesWithReplace() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public int x1;\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            ++i;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		
-		ASTRewrite rewrite= ASTRewrite.create(ast);
-		
-		ArrayList names= new ArrayList();
-		ArrayList positions= new ArrayList();
-		
-		// change type name
-		TypeDeclaration typeC= findTypeDeclaration(astRoot, "C");
-		SimpleName newName= ast.newSimpleName("XX");
-		rewrite.replace(typeC.getName(), newName, null);
-		ITrackedNodePosition position= rewrite.track(newName);
-		names.add("XX");
-		positions.add(position);
-		
-		List decls= typeC.bodyDeclarations();
-		
-		FunctionDeclaration method= (FunctionDeclaration) decls.get(1);
-		position= rewrite.track(method.getName());
-		names.add("foo");
-		positions.add(position);
-		
-		WhileStatement whileStatement= (WhileStatement) method.getBody().statements().get(0);
-		PrefixExpression prefixExpression= (PrefixExpression) ((ExpressionStatement) ((Block) whileStatement.getBody()).statements().get(0)).getExpression();
-		position= rewrite.track(prefixExpression.getOperand());
-		names.add("i");
-		positions.add(position);
-				
-		FieldDeclaration field= (FieldDeclaration) decls.get(0);
-		List fragments= field.fragments();
-		VariableDeclarationFragment frag1= (VariableDeclarationFragment) fragments.get(0);
-		position= rewrite.track(frag1.getName());
-		names.add("x1");
-		positions.add(position);
-		
-		// change modifier
-		int newModifiers= Modifier.STATIC | Modifier.TRANSIENT | Modifier.PRIVATE;
-		rewrite.set(field, FieldDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-								
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class XX {\n");
-		buf.append("\n");
-		buf.append("    private static transient int x1;\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            ++i;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		String expected= buf.toString();
-		assertEqualString(preview, expected);
-		
-		assertCorrectTracking(names, positions, expected);
-	}
-	
-	public void testNamesWithMove1() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public int x1;\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            ++i;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		ASTRewrite rewrite= ASTRewrite.create(ast);
-		
-		ArrayList names= new ArrayList();
-		ArrayList positions= new ArrayList();
-		
-		// change type name
-		TypeDeclaration typeC= findTypeDeclaration(astRoot, "C");
-		ITrackedNodePosition position= rewrite.track(typeC.getName());
-		names.add("C");
-		positions.add(position);
-		
-		List decls= typeC.bodyDeclarations();
-		
-		FunctionDeclaration method= (FunctionDeclaration) decls.get(1);
-		position= rewrite.track(method.getName());
-		names.add("foo");
-		positions.add(position);
-		
-		WhileStatement whileStatement= (WhileStatement) method.getBody().statements().get(0);
-		PrefixExpression prefixExpression= (PrefixExpression) ((ExpressionStatement) ((Block) whileStatement.getBody()).statements().get(0)).getExpression();
-		position= rewrite.track(prefixExpression.getOperand());
-		names.add("i");
-		positions.add(position);
-					
-		FieldDeclaration field= (FieldDeclaration) decls.get(0);
-		List fragments= field.fragments();
-		VariableDeclarationFragment frag1= (VariableDeclarationFragment) fragments.get(0);
-		position= rewrite.track(frag1.getName());
-		names.add("x1");
-		positions.add(position);
-
-		// move method before field
-		ASTNode placeHolder= rewrite.createMoveTarget(method);
-		rewrite.getListRewrite(typeC, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertFirst(placeHolder, null);
-								
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            ++i;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    public int x1;\n");
-		buf.append("}\n");	
-		String expected= buf.toString();
-		assertEqualString(preview, expected);
-		
-		assertCorrectTracking(names, positions, expected);
-
-	}
-	
-	public void testNamesWithMove2() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            ++i;\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		ASTRewrite rewrite= ASTRewrite.create(ast);
-		
-		ArrayList names= new ArrayList();
-		ArrayList positions= new ArrayList();
-		
-		// change type name
-		TypeDeclaration typeC= findTypeDeclaration(astRoot, "C");
-		ITrackedNodePosition position= rewrite.track(typeC.getName());
-		names.add("C");
-		positions.add(position);
-		
-		List decls= typeC.bodyDeclarations();
-		
-		FunctionDeclaration method= (FunctionDeclaration) decls.get(0);
-		position= rewrite.track(method.getName());
-		names.add("foo");
-		positions.add(position);
-		
-		WhileStatement whileStatement= (WhileStatement) method.getBody().statements().get(0);
-		PrefixExpression prefixExpression= (PrefixExpression) ((ExpressionStatement) ((Block) whileStatement.getBody()).statements().get(0)).getExpression();
-		position= rewrite.track(prefixExpression.getOperand());
-		names.add("i");
-		positions.add(position);
-
-		// move method before field
-		ASTNode placeHolder= rewrite.createMoveTarget(whileStatement);
-		
-		TryStatement tryStatement= ast.newTryStatement();
-		tryStatement.getBody().statements().add(placeHolder);
-		tryStatement.setFinally(ast.newBlock());
-		rewrite.replace(whileStatement, tryStatement, null);
-								
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("        try {\n");
-		buf.append("            while (i == 0) {\n");
-		buf.append("                ++i;\n");
-		buf.append("            }\n");
-		buf.append("        } finally {\n");
-		buf.append("        }\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		String expected= buf.toString();
-		assertEqualString(preview, expected);
-		
-		assertCorrectTracking(names, positions, expected);
-	}	
-	
-	public void testNamesWithMove3() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public int x1;\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		ASTRewrite rewrite= ASTRewrite.create(ast);
-		
-		ArrayList names= new ArrayList();
-		ArrayList positions= new ArrayList();
-		
-		// change type name
-		TypeDeclaration typeC= findTypeDeclaration(astRoot, "C");
-		ITrackedNodePosition position= rewrite.track(typeC.getName());
-		names.add("C");
-		positions.add(position);
-		
-		List decls= typeC.bodyDeclarations();
-		
-		FunctionDeclaration method= (FunctionDeclaration) decls.get(1);
-		position=  rewrite.track(method.getName());
-		names.add("foo");
-		positions.add(position);
-		
-		// move method before field
-		ASTNode placeHolder= rewrite.createMoveTarget(method);
-		
-		rewrite.getListRewrite(typeC, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertFirst(placeHolder, null);
-								
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("\n");
-		buf.append("    public void foo(String s, int i) {\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    public int x1;\n");
-		buf.append("}\n");	
-		String expected= buf.toString();
-		assertEqualString(preview, expected);
-		
-		assertCorrectTracking(names, positions, expected);
-
-	}
-	public void testNamesWithPlaceholder() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("    public String foo(Object s) {\n");
-		buf.append("        return s;\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("C.js", buf.toString(), false, null);
-	
-		JavaScriptUnit astRoot= createAST(cu);
-		AST ast= astRoot.getAST();
-		ASTRewrite rewrite= ASTRewrite.create(ast);
-		
-		ArrayList names= new ArrayList();
-		ArrayList positions= new ArrayList();
-		
-		// change type name
-		TypeDeclaration typeC= findTypeDeclaration(astRoot, "C");
-		ITrackedNodePosition position= rewrite.track(typeC.getName());
-		names.add("C");
-		positions.add(position);
-		
-		List decls= typeC.bodyDeclarations();
-		
-		FunctionDeclaration method= (FunctionDeclaration) decls.get(0);
-		position= rewrite.track(method.getName());
-		names.add("foo");
-		positions.add(position);
-		
-		ReturnStatement returnStatement= (ReturnStatement) method.getBody().statements().get(0);
-		
-		names.add("String");
-		positions.add(position);
-		
-		names.add("s");
-		positions.add(position);
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class C {\n");
-		buf.append("    public String foo(Object s) {\n");
-		buf.append("        return (String) s;\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		String expected= buf.toString();
-		assertEqualString(preview, expected);
-		
-		assertCorrectTracking(names, positions, expected);
-
-	}	
-
-	
-}
-
-
-
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
deleted file mode 100644
index 732d2d0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java
+++ /dev/null
@@ -1,1084 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-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.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.VariableDeclarationFragment;
-import org.eclipse.wst.jsdt.core.dom.VariableDeclarationStatement;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ASTRewrite;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ListRewrite;
-
-public class ASTRewritingTypeDeclTest extends ASTRewritingTest {
-	
-	private static final Class THIS= ASTRewritingTypeDeclTest.class;
-	
-	public ASTRewritingTypeDeclTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		if (true) {
-			return allTests();
-		}
-		return setUpTest(new ASTRewritingTypeDeclTest("testEnumDeclaration"));
-	}
-		
-	/** @deprecated using deprecated code */
-	public void testTypeDeclChanges() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");		
-		buf.append("    private int i;\n");	
-		buf.append("    private int k;\n");	
-		buf.append("    public E() {\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("class F implements Runnable {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // rename type, rename supertype, rename first interface, replace inner class with field
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			SimpleName name= type.getName();
-			SimpleName newName= ast.newSimpleName("X");
-			
-			rewrite.replace(name, newName, null);
-			
-			Name superClass= type.getSuperclass();
-			assertTrue("Has super type", superClass != null);
-			
-			SimpleName newSuperclass= ast.newSimpleName("Object");
-			rewrite.replace(superClass, newSuperclass, null);
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			FieldDeclaration newFieldDecl= createNewField(ast, "fCount");
-			
-			rewrite.replace((ASTNode) members.get(0), newFieldDecl, null);
-		}
-		{ // replace method in F, change to interface
-			TypeDeclaration type= findTypeDeclaration(astRoot, "F");
-			
-			// change flags
-			int newModifiers= 0;
-			rewrite.set(type, TypeDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", members.size() == 1);
-
-			FunctionDeclaration methodDecl= createNewMethod(ast, "newFoo", true);
-
-			rewrite.replace((ASTNode) members.get(0), methodDecl, null);
-		}
-		
-		{ // change to class, add supertype
-			TypeDeclaration type= findTypeDeclaration(astRoot, "G");
-			
-			// change flags
-			int newModifiers= 0;
-			rewrite.set(type, TypeDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			SimpleName newSuperclass= ast.newSimpleName("Object");
-			rewrite.set(type, TypeDeclaration.SUPERCLASS_PROPERTY, newSuperclass, null);
-		}			
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class X extends Object implements Cloneable, Serializable {\n");
-		buf.append("    private double fCount;\n");
-		buf.append("    private int i;\n");	
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface F extends Runnable {\n");
-		buf.append("    private abstract void newFoo(String str);\n");
-		buf.append("}\n");				
-		buf.append("class G extends Object {\n");
-		buf.append("}\n");			
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTypeDeclChanges2() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");		
-		buf.append("    private int i;\n");	
-		buf.append("    private int k;\n");	
-		buf.append("    public E() {\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("final class F implements Runnable {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		buf.append("interface G {\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();
-		
-		{  // rename type, rename supertype, rename first interface, replace inner class with field
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			SimpleName name= type.getName();
-			SimpleName newName= ast.newSimpleName("X");
-			
-			rewrite.replace(name, newName, null);
-			
-			Type superClass= type.getSuperclassType();
-			assertTrue("Has super type", superClass != null);
-			
-			Type newSuperclass= ast.newSimpleType(ast.newSimpleName("Object"));
-			rewrite.replace(superClass, newSuperclass, null);
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			FieldDeclaration newFieldDecl= createNewField(ast, "fCount");
-			
-			rewrite.replace((ASTNode) members.get(0), newFieldDecl, null);
-		}
-		{ // replace method in F, change to interface
-			TypeDeclaration type= findTypeDeclaration(astRoot, "F");
-			
-			rewrite.remove((ASTNode) type.modifiers().get(0), null);
-			
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", members.size() == 1);
-
-			FunctionDeclaration methodDecl= createNewMethod(ast, "newFoo", true);
-
-			rewrite.replace((ASTNode) members.get(0), methodDecl, null);
-		}
-		
-		{ // add modifier, change to class, add supertype
-			TypeDeclaration type= findTypeDeclaration(astRoot, "G");
-			
-			rewrite.getListRewrite(type, TypeDeclaration.MODIFIERS2_PROPERTY).insertFirst(ast.newModifier(Modifier.ModifierKeyword.FINAL_KEYWORD), null);
-			
-			Type newSuperclass= ast.newSimpleType(ast.newSimpleName("Object"));
-			rewrite.set(type, TypeDeclaration.SUPERCLASS_TYPE_PROPERTY, newSuperclass, null);
-		}			
-					
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class X extends Object implements Cloneable, Serializable {\n");
-		buf.append("    private double fCount;\n");
-		buf.append("    private int i;\n");	
-		buf.append("    private int k;\n");
-		buf.append("    public E() {\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("interface F extends Runnable {\n");
-		buf.append("    private abstract void newFoo(String str);\n");
-		buf.append("}\n");				
-		buf.append("final class G extends Object {\n");
-		buf.append("}\n");			
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	/** @deprecated using deprecated code */
-	public void testTypeDeclRemoves() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");		
-		buf.append("    private int i;\n");	
-		buf.append("    private int k;\n");	
-		buf.append("    public E() {\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("class F implements Runnable {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		{ // change to interface, remove supertype, remove first interface, remove field
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			
-			// change flags
-			int newModifiers= 0;
-			rewrite.set(type, TypeDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-		
-			Name superClass= type.getSuperclass();
-			assertTrue("Has super type", superClass != null);
-			
-			rewrite.remove(superClass, null);
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-					
-			rewrite.remove((ASTNode) members.get(1), null);
-			
-			FunctionDeclaration meth= findMethodDeclaration(type, "hee");
-			rewrite.remove(meth, null);
-		}
-		{ // remove superinterface & method, change to interface & final
-			TypeDeclaration type= findTypeDeclaration(astRoot, "F");
-					
-			// change flags
-			int newModifiers= Modifier.FINAL;
-			rewrite.set(type, TypeDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", members.size() == 1);
-
-			rewrite.remove((ASTNode) members.get(0), null);			
-		}			
-		{ // remove class G
-			TypeDeclaration type= findTypeDeclaration(astRoot, "G");
-			rewrite.remove(type, null);		
-		}				
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("interface E extends Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");		
-		buf.append("    private int k;\n");	
-		buf.append("    public E() {\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("final interface F {\n");
-		buf.append("}\n");				
-		assertEqualString(preview, buf.toString());
-
-	}
-
-	public void testTypeDeclInserts() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");		
-		buf.append("    private int i;\n");	
-		buf.append("    private int k;\n");	
-		buf.append("    public E() {\n");
-		buf.append("    }\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("class F implements Runnable {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");		
-		buf.append("}\n");
-		buf.append("interface G {\n");
-		buf.append("}\n");		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Errors in AST", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		AST ast= astRoot.getAST();
-		{ // add interface & set to final
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-					
-			// change flags
-			int newModifiers= Modifier.PUBLIC | Modifier.FINAL;
-			rewrite.set(type, TypeDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			assertTrue("Cannot find inner class", members.get(0) instanceof TypeDeclaration);
-			TypeDeclaration innerType= (TypeDeclaration) members.get(0);
-
-/*		bug 22161
-			SimpleName newSuperclass= ast.newSimpleName("Exception");
-			innerType.setSuperclass(newSuperclass);
-			rewrite.markAsInserted(newSuperclass);
-*/
-
-			FieldDeclaration newField= createNewField(ast, "fCount");
-			
-			rewrite.getListRewrite(innerType, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertFirst(newField, null);
-			
-			FunctionDeclaration newMethodDecl= createNewMethod(ast, "newMethod", false);
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertAt(newMethodDecl, 4, null);
-		}
-		{ // add exception, add method
-			TypeDeclaration type= findTypeDeclaration(astRoot, "F");
-			
-			SimpleName newSuperclass= ast.newSimpleName("Exception");
-			rewrite.set(type, TypeDeclaration.SUPERCLASS_PROPERTY, newSuperclass, null);
-					
-			FunctionDeclaration newMethodDecl= createNewMethod(ast, "newMethod", false);
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(newMethodDecl, null);
-		}			
-		{ // insert interface
-			TypeDeclaration type= findTypeDeclaration(astRoot, "G");
-			
-			FunctionDeclaration newMethodDecl= createNewMethod(ast, "newMethod", true);
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(newMethodDecl,  null);
-		}			
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public final class E extends Exception implements Cloneable, Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        private double fCount;\n");
-		buf.append("\n");				
-		buf.append("        public void xee() {\n");
-		buf.append("        }\n");
-		buf.append("    }\n");		
-		buf.append("    private int i;\n");	
-		buf.append("    private int k;\n");	
-		buf.append("    public E() {\n");
-		buf.append("    }\n");
-		buf.append("    private void newMethod(String str) {\n");
-		buf.append("    }\n");		
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("class F extends Exception implements Runnable {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void newMethod(String str) {\n");
-		buf.append("    }\n");		
-		buf.append("}\n");				
-		buf.append("interface G extends Runnable {\n");
-		buf.append("\n");		
-		buf.append("    private abstract void newMethod(String str);\n");		
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTypeDeclInsertFields1() throws Exception {
-		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");
-		buf.append("class F {\n");
-		buf.append("}\n");		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		assertTrue("Errors in AST", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		AST ast= astRoot.getAST();
-		{ 	
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			
-			VariableDeclarationFragment frag= ast.newVariableDeclarationFragment();
-			frag.setName(ast.newSimpleName("x"));
-			
-			FieldDeclaration decl= ast.newFieldDeclaration(frag);
-			decl.setType(ast.newPrimitiveType(PrimitiveType.INT));
-
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertFirst(decl, null);
-			
-		}
-		{ 	
-			TypeDeclaration type= findTypeDeclaration(astRoot, "F");
-			
-			VariableDeclarationFragment frag1= ast.newVariableDeclarationFragment();
-			frag1.setName(ast.newSimpleName("x"));
-			
-			FieldDeclaration decl1= ast.newFieldDeclaration(frag1);
-			decl1.setType(ast.newPrimitiveType(PrimitiveType.INT));
-			
-			VariableDeclarationFragment frag2= ast.newVariableDeclarationFragment();
-			frag2.setName(ast.newSimpleName("y"));
-			
-			FieldDeclaration decl2= ast.newFieldDeclaration(frag2);
-			decl2.setType(ast.newPrimitiveType(PrimitiveType.INT));			
-						
-			ListRewrite listRewrite= rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY);
-			listRewrite.insertFirst(decl1, null);
-			listRewrite.insertAfter(decl2, decl1, 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("    int x;\n");
-		buf.append("}\n");
-		buf.append("class F {\n");
-		buf.append("\n");
-		buf.append("    int x;\n");
-		buf.append("    int y;\n");	
-		buf.append("}\n");		
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	public void testBug22161() throws Exception {
-	//	System.out.println(getClass().getName()+"::" + getName() +" disabled (bug 22161)");
-	
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class T extends Exception implements Runnable, Serializable {\n");
-		buf.append("    public static class EInner {\n");
-		buf.append("        public void xee() {\n");
-		buf.append("        }\n");		
-		buf.append("    }\n");		
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("T.js", buf.toString(), false, null);				
-
-		JavaScriptUnit astRoot= createAST(cu);
-		assertTrue("Errors in AST", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		TypeDeclaration type= findTypeDeclaration(astRoot, "T");
-		assertTrue("Outer type not found", type != null);
-		
-		List members= type.bodyDeclarations();
-		assertTrue("Cannot find inner class", members.size() == 1 &&  members.get(0) instanceof TypeDeclaration);
-
-		TypeDeclaration innerType= (TypeDeclaration) members.get(0);
-		
-		SimpleName name= innerType.getName();
-		assertTrue("Name positions not correct", name.getStartPosition() != -1 && name.getLength() > 0);
-		
-	}
-	
-	public void testAnonymousClassDeclaration() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E2 {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        new Runnable() {\n");
-		buf.append("        };\n");
-		buf.append("        new Runnable() {\n");
-		buf.append("            int i= 8;\n");
-		buf.append("        };\n");
-		buf.append("        new Runnable() {\n");
-		buf.append("            int i= 8;\n");
-		buf.append("        };\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E2.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E2");
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 3", statements.size() == 3);
-		{	// insert body decl in AnonymousClassDeclaration
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(0);
-			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-			AnonymousClassDeclaration anonym= creation.getAnonymousClassDeclaration();
-			assertTrue("no anonym class decl", anonym != null);
-			
-			List decls= anonym.bodyDeclarations();
-			assertTrue("Number of bodyDeclarations not 0", decls.size() == 0);
-			
-			FunctionDeclaration newMethod= createNewMethod(ast, "newMethod", false);
-			rewrite.getListRewrite(anonym, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY).insertFirst(newMethod, null);
-		}
-		{	// remove body decl in AnonymousClassDeclaration
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(1);
-			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-			AnonymousClassDeclaration anonym= creation.getAnonymousClassDeclaration();
-			assertTrue("no anonym class decl", anonym != null);
-			
-			List decls= anonym.bodyDeclarations();
-			assertTrue("Number of bodyDeclarations not 1", decls.size() == 1);
-
-			rewrite.remove((ASTNode) decls.get(0), null);
-		}		
-		{	// replace body decl in AnonymousClassDeclaration
-			ExpressionStatement stmt= (ExpressionStatement) statements.get(2);
-			ClassInstanceCreation creation= (ClassInstanceCreation) stmt.getExpression();
-			AnonymousClassDeclaration anonym= creation.getAnonymousClassDeclaration();
-			assertTrue("no anonym class decl", anonym != null);
-			
-			List decls= anonym.bodyDeclarations();
-			assertTrue("Number of bodyDeclarations not 1", decls.size() == 1);
-			
-			FunctionDeclaration newMethod= createNewMethod(ast, "newMethod", false);
-
-			rewrite.replace((ASTNode) decls.get(0), newMethod, null);
-		}	
-					
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E2 {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        new Runnable() {\n");
-		buf.append("\n");
-		buf.append("            private void newMethod(String str) {\n");
-		buf.append("            }\n");	
-		buf.append("        };\n");
-		buf.append("        new Runnable() {\n");
-		buf.append("        };\n");
-		buf.append("        new Runnable() {\n");
-		buf.append("            private void newMethod(String str) {\n");
-		buf.append("            }\n");	
-		buf.append("        };\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-			
-		assertEqualString(preview, buf.toString());
-
-	}
-			
-	public void testImportDeclaration() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("import java.util.Vector;\n");
-		buf.append("import java.util.Vector;\n");
-		buf.append("import java.net.*;\n");
-		buf.append("import java.text.*;\n");					
-		buf.append("public class Z {\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("Z.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		List imports= astRoot.imports();
-		assertTrue("Number of imports not 4", imports.size() == 4);
-		
-		{ // rename import
-			ImportDeclaration imp= (ImportDeclaration) imports.get(0);
-			
-			Name name= ast.newName(new String[] { "org", "eclipse", "X" });
-			rewrite.replace(imp.getName(), name, null);
-		}
-		{ // change to import on demand
-			ImportDeclaration imp= (ImportDeclaration) imports.get(1);
-			
-			Name name= ast.newName(new String[] { "java", "util" });
-			rewrite.replace(imp.getName(), name, null);
-			
-			rewrite.set(imp, ImportDeclaration.ON_DEMAND_PROPERTY, Boolean.TRUE, null);
-		}
-		{ // change to single import
-			ImportDeclaration imp= (ImportDeclaration) imports.get(2);
-			
-			rewrite.set(imp, ImportDeclaration.ON_DEMAND_PROPERTY, Boolean.FALSE, null);
-		}
-		{ // rename import
-			ImportDeclaration imp= (ImportDeclaration) imports.get(3);
-			
-			Name name= ast.newName(new String[] { "org", "eclipse" });
-			rewrite.replace(imp.getName(), name, null);
-		}		
-		
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("import org.eclipse.X;\n");
-		buf.append("import java.util.*;\n");
-		buf.append("import java.net;\n");
-		buf.append("import org.eclipse.*;\n");			
-		buf.append("public class Z {\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testPackageDeclaration() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class Z {\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("Z.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		{ // rename package
-			PackageDeclaration packageDeclaration= astRoot.getPackage();
-			
-			Name name= ast.newName(new String[] { "org", "eclipse" });
-			
-			rewrite.replace(packageDeclaration.getName(), name, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package org.eclipse;\n");
-		buf.append("public class Z {\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testCompilationUnit() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class Z {\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("Z.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		{
-			PackageDeclaration packageDeclaration= astRoot.getPackage();
-			rewrite.remove(packageDeclaration, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("\n");	
-		buf.append("public class Z {\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testCompilationUnit2() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("public class Z {\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("Z.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		{
-			PackageDeclaration packageDeclaration= ast.newPackageDeclaration();
-			Name name= ast.newName(new String[] { "org", "eclipse" });
-			packageDeclaration.setName(name);
-			
-			rewrite.set(astRoot, JavaScriptUnit.PACKAGE_PROPERTY, packageDeclaration, null);
-		}
-				
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package org.eclipse;\n");
-		buf.append("public class Z {\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	public void testSingleVariableDeclaration() throws Exception {
-		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("    public void foo(int i, final int[] k, int[] x[]) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		List arguments= methodDecl.parameters();
-		{ // add modifier, change type, change name, add extra dimension
-			SingleVariableDeclaration decl= (SingleVariableDeclaration) arguments.get(0);
-					
-			int newModifiers= Modifier.FINAL;
-			rewrite.set(decl, SingleVariableDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-
-			rewrite.set(decl, SingleVariableDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(1), null);
-			
-			ArrayType newVarType= ast.newArrayType(ast.newPrimitiveType(PrimitiveType.FLOAT), 2);
-			rewrite.replace(decl.getType(), newVarType, null);
-			
-			Name newName= ast.newSimpleName("count");
-			rewrite.replace(decl.getName(), newName, null);
-		}
-		{ // remove modifier, change type
-			SingleVariableDeclaration decl= (SingleVariableDeclaration) arguments.get(1);
-						
-			int newModifiers= 0;
-			rewrite.set(decl, SingleVariableDeclaration.MODIFIERS_PROPERTY, new Integer(newModifiers), null);
-			
-			Type newVarType= ast.newPrimitiveType(PrimitiveType.FLOAT);
-			rewrite.replace(decl.getType(), newVarType, null);
-		}
-		{ // remove extra dim
-			SingleVariableDeclaration decl= (SingleVariableDeclaration) arguments.get(2);
-			
-			rewrite.set(decl, SingleVariableDeclaration.EXTRA_DIMENSIONS_PROPERTY, new Integer(0), null);
-		}			
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo(final float[][] count[], float k, int[] x) {\n");
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}	
-	
-	public void testVariableDeclarationFragment() throws Exception {
-		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("    public void foo() {\n");
-		buf.append("        int i, j, k= 0, x[][], y[]= {0, 1};\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-
-		FunctionDeclaration methodDecl= findMethodDeclaration(type, "foo");
-		Block block= methodDecl.getBody();
-		List statements= block.statements();
-		assertTrue("Number of statements not 1", statements.size() == 1);
-		
-		VariableDeclarationStatement variableDeclStatement= (VariableDeclarationStatement) statements.get(0);
-		List fragments= variableDeclStatement.fragments();
-		assertTrue("Number of fragments not 5", fragments.size() == 5);
-		
-		{ // rename var, add dimension
-			VariableDeclarationFragment fragment= (VariableDeclarationFragment) fragments.get(0);
-			
-			ASTNode name= ast.newSimpleName("a");
-			rewrite.replace(fragment.getName(), name, null);
-			
-			rewrite.set(fragment, VariableDeclarationFragment.EXTRA_DIMENSIONS_PROPERTY, new Integer(2), null);
-		}
-		
-		{ // add initializer
-			VariableDeclarationFragment fragment= (VariableDeclarationFragment) fragments.get(1);
-			
-			assertTrue("Has initializer", fragment.getInitializer() == null);
-			
-			Expression initializer= ast.newNumberLiteral("1");
-			rewrite.set(fragment, VariableDeclarationFragment.INITIALIZER_PROPERTY, initializer, null);
-		}
-		
-		{ // remove initializer
-			VariableDeclarationFragment fragment= (VariableDeclarationFragment) fragments.get(2);
-			
-			assertTrue("Has no initializer", fragment.getInitializer() != null);
-			rewrite.remove(fragment.getInitializer(), null);
-		}
-		{ // add dimension, add initializer
-			VariableDeclarationFragment fragment= (VariableDeclarationFragment) fragments.get(3);			
-			
-			rewrite.set(fragment, VariableDeclarationFragment.EXTRA_DIMENSIONS_PROPERTY, new Integer(4), null);
-
-			assertTrue("Has initializer", fragment.getInitializer() == null);
-			
-			Expression initializer= ast.newNullLiteral();
-			rewrite.set(fragment, VariableDeclarationFragment.INITIALIZER_PROPERTY, initializer, null);
-		}
-		{ // remove dimension
-			VariableDeclarationFragment fragment= (VariableDeclarationFragment) fragments.get(4);			
-			
-			rewrite.set(fragment, VariableDeclarationFragment.EXTRA_DIMENSIONS_PROPERTY, new Integer(0), null);
-		}					
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        int a[][], j = 1, k, x[][][][] = null, y= {0, 1};\n");		
-		buf.append("    }\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTypeDeclSpacingMethods1() throws Exception {
-		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("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("\n");		
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			FunctionDeclaration newMethodDecl= createNewMethod(ast, "foo", false);
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertLast(newMethodDecl, null);
-			
-		}
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("\n");		
-		buf.append("    public void hee() {\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 testTypeDeclSpacingMethods2() throws Exception {
-		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("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("\n");			
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			FunctionDeclaration newMethodDecl= createNewMethod(ast, "foo", false);
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertFirst(newMethodDecl, null);
-		}
-		
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    private void foo(String str) {\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("\n");			
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("\n");
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");		
-		assertEqualString(preview, buf.toString());
-
-	}
-	
-	public void testTypeDeclSpacingFields() throws Exception {
-		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("    private int x;\n");
-		buf.append("    private int y;\n");
-		buf.append("\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("\n");			
-		buf.append("    public void hee() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);			
-
-		JavaScriptUnit astRoot= createAST(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		AST ast= astRoot.getAST();
-		
-		{  // insert method at first position
-			TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			List members= type.bodyDeclarations();
-			assertTrue("Has declarations", !members.isEmpty());
-			
-			FieldDeclaration newField= createNewField(ast, "fCount");
-			rewrite.getListRewrite(type, TypeDeclaration.BODY_DECLARATIONS_PROPERTY).insertFirst(newField, null);
-		}
-
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    private double fCount;\n");
-		buf.append("    private int x;\n");
-		buf.append("    private int y;\n");
-		buf.append("\n");
-		buf.append("    public void gee() {\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("\n");			
-		buf.append("    public void hee() {\n");
-		buf.append("    }\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/LineCommentOffsetsTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/LineCommentOffsetsTest.java
deleted file mode 100644
index 7eeeea4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/LineCommentOffsetsTest.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import java.util.HashSet;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-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.rewrite.ASTRewrite;
-import org.eclipse.wst.jsdt.core.dom.rewrite.ListRewrite;
-import org.eclipse.wst.jsdt.internal.core.dom.rewrite.LineCommentEndOffsets;
-
-/**
- *
- */
-public class LineCommentOffsetsTest extends ASTRewritingTest {
-	
-	private static final Class THIS= LineCommentOffsetsTest.class;
-
-	public LineCommentOffsetsTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-	
-	public void testEmptyLineComments() throws Exception {
-		
-		StringBuffer buf= new StringBuffer();
-		buf.append("\n");
-		
-		LineCommentEndOffsets offsets= new LineCommentEndOffsets(null);
-		boolean res= offsets.isEndOfLineComment(0);
-		assertFalse(res);
-		res= offsets.remove(0);
-		assertFalse(res);
-	}
-	
-	public void testRemove() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;//comment Y\n");
-		buf.append("public class E//comment Y\n");
-		buf.append("{//comment Y\n");
-		buf.append("}//comment Y");	
-		String contents= buf.toString();
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", contents, false, null);
-		
-		JavaScriptUnit astRoot= createAST3(cu);
-		
-		LineCommentEndOffsets offsets= new LineCommentEndOffsets(astRoot.getCommentList());
-
-		int p1= contents.indexOf('Y') + 1;
-		int p2= contents.indexOf('Y', p1) + 1;
-		int p3= contents.indexOf('Y', p2) + 1;
-		int p4= contents.indexOf('Y', p3) + 1;
-		
-		assertFalse(offsets.isEndOfLineComment(0));
-		assertTrue(offsets.isEndOfLineComment(p1));
-		assertTrue(offsets.isEndOfLineComment(p2));
-		assertTrue(offsets.isEndOfLineComment(p3));
-		assertTrue(offsets.isEndOfLineComment(p4));
-		
-		boolean res= offsets.remove(p2);
-		assertTrue(res);
-		
-		res= offsets.remove(p2);
-		assertFalse(res);
-		
-		assertFalse(offsets.isEndOfLineComment(0));
-		assertTrue(offsets.isEndOfLineComment(p1));
-		assertFalse(offsets.isEndOfLineComment(p2));
-		assertTrue(offsets.isEndOfLineComment(p3));
-		assertTrue(offsets.isEndOfLineComment(p4));
-		
-		res= offsets.remove(p4);
-		assertTrue(res);
-		
-		assertFalse(offsets.isEndOfLineComment(0));
-		assertTrue(offsets.isEndOfLineComment(p1));
-		assertFalse(offsets.isEndOfLineComment(p2));
-		assertTrue(offsets.isEndOfLineComment(p3));
-		assertFalse(offsets.isEndOfLineComment(p4));
-		
-		res= offsets.remove(p1);
-		assertTrue(res);
-		
-		assertFalse(offsets.isEndOfLineComment(0));
-		assertFalse(offsets.isEndOfLineComment(p1));
-		assertFalse(offsets.isEndOfLineComment(p2));
-		assertTrue(offsets.isEndOfLineComment(p3));
-		assertFalse(offsets.isEndOfLineComment(p4));
-	}
-	
-	
-	
-	public void testLineCommentEndOffsets() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		
-		
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("/* comment */\n");
-		buf.append("// comment Y\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment Y\n");
-		buf.append("            i++;\n");
-		buf.append("        }// comment// comment Y\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");
-		buf.append("} // comment Y");
-		String content= buf.toString();
-		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", content, false, null);
-		JavaScriptUnit astRoot= createAST(cu);
-		
-		LineCommentEndOffsets offsets= new LineCommentEndOffsets(astRoot.getCommentList());
-		HashSet expectedOffsets= new HashSet();
-
-		for (int i= 0; i < content.length(); i++) {
-			char ch= content.charAt(i);
-			if (ch == 'Y') {
-				expectedOffsets.add(new Integer(i + 1));
-			}
-		}
-		
-		int count= 0;
-		
-		char[] charContent= content.toCharArray();
-		for (int i= 0; i <= content.length() + 5; i++) {
-			boolean expected= i > 0 && i <= content.length() && charContent[i - 1] == 'Y';
-			boolean actual= offsets.isEndOfLineComment(i, charContent);
-			assertEquals(expected, actual);
-			
-			actual= offsets.isEndOfLineComment(i);
-			assertEquals(expected, actual);
-			
-			if (expected) {
-				count++;
-			}
-			
-		}
-		assertEquals(4, count);
-	}
-	
-	public void testLineCommentEndOffsetsMixedLineDelimiter() throws Exception {
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("/* comment */\r\n");
-		buf.append("// comment Y\n");
-		buf.append("public class E {\r\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment Y\r\n");
-		buf.append("            i++;\n");
-		buf.append("        }// comment// comment Y\r");
-		buf.append("        return;\n");
-		buf.append("    }\r\n");
-		buf.append("} // comment Y");
-		String content= buf.toString();
-		
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", content, false, null);
-		JavaScriptUnit astRoot= createAST(cu);
-		
-		LineCommentEndOffsets offsets= new LineCommentEndOffsets(astRoot.getCommentList());
-		HashSet expectedOffsets= new HashSet();
-
-		for (int i= 0; i < content.length(); i++) {
-			char ch= content.charAt(i);
-			if (ch == 'Y') {
-				expectedOffsets.add(new Integer(i + 1));
-			}
-		}
-		
-		int count= 0;
-		
-		char[] charContent= content.toCharArray();
-		for (int i= 0; i <= content.length() + 5; i++) {
-			boolean expected= i > 0 && i <= content.length() && charContent[i - 1] == 'Y';
-			boolean actual= offsets.isEndOfLineComment(i, charContent);
-			assertEquals(expected, actual);
-			if (expected) {
-				count++;
-			}
-			
-		}
-		assertEquals(4, count);
-	}
-	
-	public void testBug103340() throws Exception {
-		
-		IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E //implements List\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());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E //implements List\n");
-		buf.append("<X>\n");
-		buf.append("{\n");
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testBug95839() throws Exception {
-		
-		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("  void foo() {\n");
-		buf.append("    object.method(\n");
-		buf.append("      param1, // text about param1\n");
-		buf.append("      param2  // text about param2\n");
-		buf.append("    );\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());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		ExpressionStatement statement= (ExpressionStatement) ((FunctionDeclaration) type.bodyDeclarations().get(0)).getBody().statements().get(0);
-		FunctionInvocation inv= (FunctionInvocation) statement.getExpression();
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(inv, FunctionInvocation.ARGUMENTS_PROPERTY);
-		listRewrite.insertLast(ast.newSimpleName("param3"), null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("  void foo() {\n");
-		buf.append("    object.method(\n");
-		buf.append("      param1, // text about param1\n");
-		buf.append("      param2  // text about param2\n");
-		buf.append(", param3\n");
-		buf.append("    );\n");
-		buf.append("  }\n");	
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testBug114418() throws Exception {
-		
-		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("  void foo() {\n");
-		buf.append("    try {\n");
-		buf.append("    } catch (IOException e) {\n");
-		buf.append("    }\n");
-		buf.append("    // comment\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());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		TryStatement statement= (TryStatement) ((FunctionDeclaration) type.bodyDeclarations().get(0)).getBody().statements().get(0);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(statement, TryStatement.CATCH_CLAUSES_PROPERTY);
-		CatchClause clause= ast.newCatchClause();
-		SingleVariableDeclaration newSingleVariableDeclaration= ast.newSingleVariableDeclaration();
-		newSingleVariableDeclaration.setName(ast.newSimpleName("e"));
-		newSingleVariableDeclaration.setType(ast.newSimpleType(ast.newSimpleName("MyException")));
-		clause.setException(newSingleVariableDeclaration);
-		
-		listRewrite.insertLast(clause, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("  void foo() {\n");
-		buf.append("    try {\n");
-		buf.append("    } catch (IOException e) {\n");
-		buf.append("    }\n");
-		buf.append("    // comment\n");
-		buf.append(" catch (MyException e) {\n");
-		buf.append("    }\n");
-		buf.append("  }\n");	
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void testBug128818() throws Exception {
-		
-		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("  void foo() {\n");
-		buf.append("    if (true) {\n");
-		buf.append("    } // comment\n");
-		buf.append("    else\n");
-		buf.append("      return;\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());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		IfStatement statement= (IfStatement) ((FunctionDeclaration) type.bodyDeclarations().get(0)).getBody().statements().get(0);
-		
-		rewrite.set(statement, IfStatement.ELSE_STATEMENT_PROPERTY, ast.newBlock(), null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("  void foo() {\n");
-		buf.append("    if (true) {\n");
-		buf.append("    } // comment\n");
-		buf.append(" else {\n");
-		buf.append("    }\n");
-		buf.append("  }\n");	
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-	}
-	
-	/* not yet working
-	public void testBug128422() throws Exception {
-		
-		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("  void foo() {\n");
-		buf.append("    if (i != 0 //I don't like 0\n");
-		buf.append("                 && i != 10) {\n");
-		buf.append("    }\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());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		TypeDeclaration type= findTypeDeclaration(astRoot, "E");
-		IfStatement statement= (IfStatement) ((FunctionDeclaration) type.bodyDeclarations().get(0)).getBody().statements().get(0);
-		Expression expression= ((InfixExpression) statement.getExpression()).getLeftOperand();
-		
-		ParenthesizedExpression parenthesizedExpression= ast.newParenthesizedExpression();
-		parenthesizedExpression.setExpression( (Expression) rewrite.createCopyTarget(expression));
-		rewrite.replace(expression, parenthesizedExpression, null);
-			
-		String preview= evaluateRewrite(cu, rewrite);
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("  void foo() {\n");
-		buf.append("    if ((i != 0 //I don't like 0\n");
-		buf.append(")\n");
-		buf.append("                 && i != 10) {\n");
-		buf.append("    }\n");
-		buf.append("  }\n");	
-		buf.append("}\n");	
-		assertEqualString(preview, buf.toString());
-	}*/
-	
-	public void testCommentAtEnd() throws Exception {
-		
-		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");
-		buf.append("}//comment");	
-		IJavaScriptUnit cu= pack1.createCompilationUnit("E.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createAST3(cu);
-		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
-		
-		AST ast= astRoot.getAST();
-		
-		assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
-		
-		ListRewrite listRewrite= rewrite.getListRewrite(astRoot, JavaScriptUnit.TYPES_PROPERTY);
-		TypeDeclaration newType= ast.newTypeDeclaration();
-		newType.setName(ast.newSimpleName("B"));
-		listRewrite.insertLast(newType, 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("}//comment\n");
-		buf.append("\n");
-		buf.append("class B {\n");
-		buf.append("}");
-		assertEqualString(preview, buf.toString());
-	}
-	
-
-	
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/SourceModifierTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/SourceModifierTest.java
deleted file mode 100644
index 4fd70b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/SourceModifierTest.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.text.edits.ReplaceEdit;
-
-import org.eclipse.jface.text.Document;
-
-import org.eclipse.wst.jsdt.internal.core.dom.rewrite.SourceModifier;
-
-/**
- *
- */
-public class SourceModifierTest extends ASTRewritingTest {
-	
-	private static final Class THIS= SourceModifierTest.class;
-
-	public SourceModifierTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test setUpTest(Test someTest) {
-		TestSuite suite= new Suite("one test");
-		suite.addTest(someTest);
-		return suite;
-	}
-	
-	public static Test suite() {
-		return allTests();
-	}
-	
-	public void testRemoveIndents() throws Exception {
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-
-		Document buffer= new Document(buf.toString());
-		
-		int offset= buf.toString().indexOf("while");
-		int length= buf.toString().indexOf("return;") + "return;".length() - offset;
-		
-		String content= buffer.get(offset, length);
-		SourceModifier modifier= new SourceModifier(2, "    ", 4, 4);
-		MultiTextEdit edit= new MultiTextEdit(0, content.length());
-		ReplaceEdit[] replaces= modifier.getModifications(content);
-		for (int i= 0; i < replaces.length; i++) {
-			edit.addChild(replaces[i]);
-		}
-		
-		Document innerBuffer= new Document(content);
-		edit.apply(innerBuffer);
-		
-		buffer.replace(offset, length, innerBuffer.get());
-				
-		String preview= buffer.get();
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("        foo();\n");
-		buf.append("        i++; // comment\n");
-		buf.append("        i++;\n");
-		buf.append("    }\n");
-		buf.append("    return;\n");
-		buf.append("    }\n");
-		buf.append("}\n");		
-		String expected= buf.toString();		
-
-		assertEqualString(preview, expected);
-	}
-	
-	public void testAddIndents() throws Exception {
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("            foo();\n");
-		buf.append("            i++; // comment\n");
-		buf.append("            i++;\n");
-		buf.append("        }\n");
-		buf.append("        return;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-
-		Document buffer= new Document(buf.toString());
-		
-		int offset= buf.toString().indexOf("while");
-		int length= buf.toString().indexOf("return;") + "return;".length() - offset;
-		
-		String content= buffer.get(offset, length);
-		SourceModifier modifier= new SourceModifier(2, "            ", 4, 4);
-		MultiTextEdit edit= new MultiTextEdit(0, content.length());
-		ReplaceEdit[] replaces= modifier.getModifications(content);
-		for (int i= 0; i < replaces.length; i++) {
-			edit.addChild(replaces[i]);
-		}
-		
-		Document innerBuffer= new Document(content);
-		edit.apply(innerBuffer);
-		
-		buffer.replace(offset, length, innerBuffer.get());
-		
-		String preview= buffer.get();
-		
-		buf= new StringBuffer();
-		buf.append("package test1;\n");
-		buf.append("public class E {\n");
-		buf.append("    public void foo() {\n");
-		buf.append("        while (i == 0) {\n");
-		buf.append("                foo();\n");
-		buf.append("                i++; // comment\n");
-		buf.append("                i++;\n");
-		buf.append("            }\n");
-		buf.append("            return;\n");
-		buf.append("    }\n");
-		buf.append("}\n");		
-		String expected= buf.toString();		
-
-		assertEqualString(preview, expected);
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/StringAsserts.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/StringAsserts.java
deleted file mode 100644
index d128f62..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/describing/StringAsserts.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.describing;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import junit.framework.Assert;
-
-/**
- *
- */
-public class StringAsserts {
-	/**
-	 * 
-	 */
-	public StringAsserts() {
-		super();
-	}
-	
-	private static int getDiffPos(String str1, String str2) {
-		int len1= Math.min(str1.length(), str2.length());
-		
-		int diffPos= -1;
-		for (int i= 0; i < len1; i++) {
-			if (str1.charAt(i) != str2.charAt(i)) {
-				diffPos= i;
-				break;
-			}
-		}
-		if (diffPos == -1 && str1.length() != str2.length()) {
-			diffPos= len1;
-		}
-		return diffPos;
-	}
-	
-	private static final int printRange= 6;
-	
-	public static void assertEqualString(String actual, String expected) {	
-		if (actual == null || expected == null) {
-			if (actual == expected) {
-				return;
-			}
-			if (actual == null) {
-				Assert.assertTrue("Content not as expected: is 'null' expected: " + expected, false);
-			} else {
-				Assert.assertTrue("Content not as expected: expected 'null' is: " + actual, false);
-			}
-		}
-		
-		int diffPos= getDiffPos(actual, expected);
-		if (diffPos != -1) {
-			int diffAhead= Math.max(0, diffPos - printRange);
-			int diffAfter= Math.min(actual.length(), diffPos + printRange);
-			
-			String diffStr= actual.substring(diffAhead, diffPos) + '^' + actual.substring(diffPos, diffAfter);
-			
-			// use detailed message
-			String message= "Content not as expected: is\n" + actual + "\nDiffers at pos " + diffPos + ": " + diffStr + "\nexpected:\n" + expected;  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			
-			Assert.assertEquals(message, expected, actual);
-		}
-	}
-	
-	public static void assertEqualStringIgnoreDelim(String actual, String expected) throws IOException {
-		if (actual == null || expected == null) {
-			if (actual == expected) {
-				return;
-			}
-			if (actual == null) {
-				Assert.assertTrue("Content not as expected: is 'null' expected: " + expected, false);
-			} else {
-				Assert.assertTrue("Content not as expected: expected 'null' is: " + actual, false);
-			}
-		}
-		
-		BufferedReader read1= new BufferedReader(new StringReader(actual));
-		BufferedReader read2= new BufferedReader(new StringReader(expected));
-		
-		int line= 1;
-		do {
-			String s1= read1.readLine();
-			String s2= read2.readLine();
-			
-			if (s1 == null || !s1.equals(s2)) {
-				if (s1 == null && s2 == null) {
-					return;
-				}
-				String diffStr= (s1 == null) ? s2 : s1;
-				
-				String message= "Content not as expected: Content is: \n" + actual + "\nDiffers at line " + line + ": " + diffStr + "\nExpected contents: \n" + expected;
-				Assert.assertEquals(message, expected, actual);
-			}
-			line++;
-		} while (true);
-	}	
-	
-	public static void assertEqualStringsIgnoreOrder(String[] actuals, String[] expecteds) {
-		ArrayList list1= new ArrayList(Arrays.asList(actuals));
-		ArrayList list2= new ArrayList(Arrays.asList(expecteds));
-		
-		for (int i= list1.size() - 1; i >= 0; i--) {
-			if (list2.remove(list1.get(i))) {
-				list1.remove(i);
-			}
-		}
-		
-		int n1= list1.size();
-		int n2= list2.size();
-		
-		if (n1 + n2 > 0) {
-			if (n1 == 1 && n2 == 1) {
-				assertEqualString((String) list1.get(0), (String) list2.get(0));
-			}
-			
-			StringBuffer buf= new StringBuffer();
-			for (int i= 0; i < n1; i++) {
-				String s1= (String) list1.get(i);
-				if (s1 != null) {
-					buf.append(s1);
-					buf.append("\n");
-				}
-			}
-			String actual= buf.toString();
-			
-			buf= new StringBuffer();
-			for (int i= 0; i < n2; i++) {
-				String s2= (String) list2.get(i);
-				if (s2 != null) {
-					buf.append(s2);
-					buf.append("\n");
-				}
-			}
-			String expected= buf.toString();
-
-			String message= "Content not as expected: Content is: \n" + actual + "\nExpected contents: \n" + expected;
-			Assert.assertEquals(message, expected, actual);
-		}				
-	}
-	
-	
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingCopyTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingCopyTest.java
deleted file mode 100644
index 862c61f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingCopyTest.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.modifying;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-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.tests.util.Util;
-
-public class ASTRewritingModifyingCopyTest extends ASTRewritingModifyingTest {
-	private static final Class THIS = ASTRewritingModifyingCopyTest.class;
-
-	public ASTRewritingModifyingCopyTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test suite() {
-		if (true) {
-			return allTests();
-		}
-		TestSuite suite= new Suite("one test");
-		suite.addTest(new ASTRewritingModifyingCopyTest("test0009"));
-		return suite;
-	}
-	
-	public void test0001() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0001", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0001;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y /**/ {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(1);
-		TypeDeclaration typeDeclaration2 = (TypeDeclaration)ASTNode.copySubtree(a, typeDeclaration);
-		types.add(typeDeclaration2);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0001;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y /**/ {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y /**/ {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	/*
-	 * Known limitation: a copied node cannot be modified.
-	 */
-	public void test0002() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0002", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0002;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y /**/ {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(1);
-		TypeDeclaration typeDeclaration2 = (TypeDeclaration)ASTNode.copySubtree(a, typeDeclaration);
-		typeDeclaration2.setName(a.newSimpleName("A"));
-		types.add(typeDeclaration2);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0002;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y /**/ {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y /**/ {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	/** @deprecated using deprecated code */
-	public void test0003() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0003", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0003;\n");
-		buf.append("\n");
-		buf.append("public class X extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration1 = (TypeDeclaration)types.get(0);
-		TypeDeclaration typeDeclaration2 = (TypeDeclaration)types.get(1);
-		Name name = typeDeclaration1.getSuperclass();
-		Name name2 = (Name)ASTNode.copySubtree(a, name);
-		typeDeclaration2.setSuperclass(name2);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0003;\n");
-		buf.append("\n");
-		buf.append("public class X extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	/** @deprecated using deprecated code */
-	public void test0004() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0004", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0004;\n");
-		buf.append("\n");
-		buf.append("public class X extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration1 = (TypeDeclaration)types.get(0);
-		TypeDeclaration typeDeclaration2 = (TypeDeclaration)types.get(1);
-		Name name = typeDeclaration1.getSuperclass();
-		QualifiedName name2 = (QualifiedName)ASTNode.copySubtree(a, name);
-		Name name3 = name2.getQualifier();
-		name2.setQualifier(a.newSimpleName("A"));
-		typeDeclaration2.setSuperclass(name3);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0004;\n");
-		buf.append("\n");
-		buf.append("public class X extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y extends Z1\n");
-		buf.append("                        .Z2 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(Util.convertToIndependantLineDelimiter(preview), Util.convertToIndependantLineDelimiter(buf.toString()));
-	}
-	
-	/** @deprecated using deprecated code */
-	public void test0005() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0005", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0005;\n");
-		buf.append("\n");
-		buf.append("public class X extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration1 = (TypeDeclaration)types.get(0);
-		TypeDeclaration typeDeclaration2 = (TypeDeclaration)types.get(1);
-		Name name = typeDeclaration1.getSuperclass();
-		QualifiedName name2 = (QualifiedName)ASTNode.copySubtree(a, name);
-		QualifiedName name3 = (QualifiedName)name2.getQualifier();
-		name2.setQualifier(a.newSimpleName("A"));
-		name3.getName().setIdentifier("B");
-		typeDeclaration2.setSuperclass(name3);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0005;\n");
-		buf.append("\n");
-		buf.append("public class X extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y extends Z1\n");
-		buf.append("                        .Z2 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(Util.convertToIndependantLineDelimiter(preview), Util.convertToIndependantLineDelimiter(buf.toString()));
-	}
-	
-	public void test0006() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0006", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0006;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    void foo() {\n");
-		buf.append("        bar1();\n");
-		buf.append("        \n");
-		buf.append("        //comment1\n");
-		buf.append("        bar2();//comment2\n");
-		buf.append("        //comment3\n");
-		buf.append("        bar3();\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-		FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
-		Block body = methodDeclaration.getBody();
-		List statements = body.statements();
-		Statement statement1 = (Statement)statements.get(1);
-		Statement statement2 = (Statement)ASTNode.copySubtree(a, statement1);
-		statements.add(statement2);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0006;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    void foo() {\n");
-		buf.append("        bar1();\n");
-		buf.append("        \n");
-		buf.append("        //comment1\n");
-		buf.append("        bar2();//comment2\n");
-		buf.append("        //comment3\n");
-		buf.append("        bar3();\n");
-		buf.append("        //comment1\n");
-		buf.append("        bar2();//comment2\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(Util.convertToIndependantLineDelimiter(preview), Util.convertToIndependantLineDelimiter(buf.toString()));
-	}
-	
-	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=93208
-	/** @deprecated using deprecated code */
-	public void test0007() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test; public class Test { }");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("Test.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		TypeDeclaration type = (TypeDeclaration) astRoot.types().get(0);
-        AST ast = type.getAST();
-        
-        FunctionDeclaration m = ast.newFunctionDeclaration();
-        type.bodyDeclarations().add(m);
-        
-        Block block = ast.newBlock();
-        m.setName(ast.newSimpleName("foo"));
-        m.setReturnType(ast.newPrimitiveType(PrimitiveType.VOID));
-        m.setBody(block);
-
-        FieldAccess fa = ast.newFieldAccess();
-        fa.setExpression(ast.newThisExpression());
-        fa.setName(ast.newSimpleName("x"));
-        FunctionInvocation mi = ast.newFunctionInvocation();
-        mi.setExpression(fa);
-        mi.setName(ast.newSimpleName("llall"));
-        
-        ExpressionStatement exp = ast.newExpressionStatement(mi);
-        block.statements().add(exp);
-
-        StructuralPropertyDescriptor loc = mi.getLocationInParent();
-        //This will cause the bug
-        ASTNode node = ASTNode.copySubtree(ast, fa);
-        exp.setStructuralProperty(loc, node);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test; public class Test {\n");
-		buf.append("\n");
-		buf.append("    void foo(){this.x;} }");
-		assertEqualString(Util.convertToIndependantLineDelimiter(preview), Util.convertToIndependantLineDelimiter(buf.toString()));
-	}
-	
-//	public void test0007() throws Exception {
-//		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0007", false, null);
-//		StringBuffer buf= new StringBuffer();
-//		buf.append("package test0007;\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("    /**\n");
-//		buf.append("     * NOTHING\n");
-//		buf.append("     */\n");
-//		buf.append("    void foo() {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("    void bar() {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("}\n");
-//		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-//		
-//		JavaScriptUnit astRoot= parseCompilationUnit(cu, false);
-//		
-//		astRoot.recordModifications();
-//		
-//		AST a = astRoot.getAST();
-//		
-//		List types = astRoot.types();
-//		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-//		FunctionDeclaration methodDeclaration1 = typeDeclaration.getMethods()[0];
-//		FunctionDeclaration methodDeclaration2 = typeDeclaration.getMethods()[1];
-//		Javadoc javadoc1 = methodDeclaration1.getJavadoc();
-//		Javadoc javadoc2 = (Javadoc)ASTNode.copySubtree(a, javadoc1);
-//		methodDeclaration2.setJavadoc(javadoc2);
-//		
-//		String preview = evaluateRewrite(cu, astRoot);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test0007;\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("    /**\n");
-//		buf.append("     * NOTHING\n");
-//		buf.append("     */\n");
-//		buf.append("    void foo() {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("    /**\n");
-//		buf.append("     * NOTHING\n");
-//		buf.append("     */\n");
-//		buf.append("    void bar() {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("}\n");
-//		assertEqualString(Util.convertToIndependantLineDelimiter(preview), Util.convertToIndependantLineDelimiter(buf.toString()));
-//	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingInsertTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingInsertTest.java
deleted file mode 100644
index a0e286f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingInsertTest.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.modifying;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.dom.*;
-
-public class ASTRewritingModifyingInsertTest extends ASTRewritingModifyingTest {
-	private static final Class THIS = ASTRewritingModifyingInsertTest.class;
-	
-	public ASTRewritingModifyingInsertTest(String name) {
-		super(name);
-	}
-	
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test suite() {
-		if (true) {
-			return allTests();
-		}
-		TestSuite suite= new Suite("one test");
-		suite.addTest(new ASTRewritingModifyingInsertTest("test0009"));
-		return suite;
-	}
-	
-	/**
-	 * insert a new function at first position
-	 */
-	public void test0001() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0001", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("var test0001;\n");
-		buf.append("\n");
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List statements = astRoot.statements();
-		FunctionDeclaration functionDeclaration = a.newFunctionDeclaration();
-		SimpleName name = a.newSimpleName("AAA");
-		functionDeclaration.setName(name);
-		statements.add(0, functionDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("function AAA() {\n");
-		buf.append("}\n");
-		buf.append("var test0001;\n");
-		buf.append("\n");
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-
-	/**
-	 * insert a new function
-	 */
-	public void test0002() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0002", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("var test0002;\n");
-		buf.append("\n");
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List statements = astRoot.statements();
-		FunctionDeclaration functionDeclaration = a.newFunctionDeclaration();
-		SimpleName name = a.newSimpleName("AAA");
-		functionDeclaration.setName(name);
-		statements.add(1, functionDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("var test0002;\n");
-		buf.append("\n");
-		buf.append("function AAA() {\n");
-		buf.append("}\n");
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	/**
-	 * insert a new function at last position
-	 */
-	public void test0003() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0003", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("var test0003;\n");
-		buf.append("\n");
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List statements = astRoot.statements();
-		FunctionDeclaration functionDeclaration = a.newFunctionDeclaration();
-		SimpleName name = a.newSimpleName("AAA");
-		functionDeclaration.setName(name);
-		statements.add(4, functionDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("var test0003;\n");
-		buf.append("\n");
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function AAA() {\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	/**
-	 * insert a new javadoc for a type
-	 */ 
-	public void test0004() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0004", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("var test0004;\n");
-		buf.append("\n");
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);;
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List statements = astRoot.statements();
-		FunctionDeclaration functionDeclaration = (FunctionDeclaration)statements.get(1);
-		JSdoc jsdoc = a.newJSdoc();
-		List tags = jsdoc.tags();
-		TagElement tag = a.newTagElement();
-		List fragment = tag.fragments();
-		TextElement text = a.newTextElement();
-		text.setText("NOTHING");
-		fragment.add(text);
-		tags.add(tag);
-		functionDeclaration.setJavadoc(jsdoc);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("var test0004;\n");
-		buf.append("\n");
-		buf.append("/**\n");
-		buf.append(" * NOTHING\n");
-		buf.append(" */\n");
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	/**
-	 * insert a new nested function
-	 */
-	public void test0005() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0005", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List statements = astRoot.statements();
-		FunctionDeclaration functionDeclaration = (FunctionDeclaration)statements.get(0);
-		Block functionBody = functionDeclaration.getBody();
-		FunctionDeclaration functionDeclaration2 = a.newFunctionDeclaration();
-		functionDeclaration2.setName(a.newSimpleName("Z"));
-		functionBody.statements().add(functionDeclaration2);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("    function Z() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	/**
-	 * insert a new member type after another member type
-	 */
-	public void test0007() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0007", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("    function Y() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List statements = astRoot.statements();
-		FunctionDeclaration functionDeclaration = (FunctionDeclaration)statements.get(0);
-		Block functionBody = functionDeclaration.getBody();
-		FunctionDeclaration functionDeclaration2 = a.newFunctionDeclaration();
-		functionDeclaration2.setName(a.newSimpleName("Z"));
-		functionBody.statements().add(functionDeclaration2);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("    function Y() {\n");
-		buf.append("    }\n");
-		buf.append("    function Z() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0008() throws Exception {
-		String source = "\n";
-		JavaScriptUnit astRoot= createCU(source.toCharArray());
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		FunctionDeclaration functionDeclaration = a.newFunctionDeclaration();
-		functionDeclaration.setName(a.newSimpleName("X"));
-		
-		astRoot.statements().add(functionDeclaration);
-		
-		String preview = evaluateRewrite(source, astRoot);
-		
-		StringBuffer buf= new StringBuffer();
-		buf.append("\n");
-		buf.append("function X() {\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/modifying/ASTRewritingModifyingMoveTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingMoveTest.java
deleted file mode 100644
index 10a0f94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingMoveTest.java
+++ /dev/null
@@ -1,488 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.modifying;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-
-import org.eclipse.wst.jsdt.core.dom.*;
-
-public class ASTRewritingModifyingMoveTest extends ASTRewritingModifyingTest {
-	private static final Class THIS = ASTRewritingModifyingMoveTest.class;
-
-	public ASTRewritingModifyingMoveTest(String name) {
-		super(name);
-	}
-
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test suite() {
-		if (true) {
-			return allTests();
-		}
-		TestSuite suite= new Suite("one test");
-		suite.addTest(new ASTRewritingModifyingMoveTest("test0009"));
-		return suite;
-	}
-	
-	public void test0001() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0001", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0001;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(1);
-		types.remove(1);
-		types.add(typeDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0001;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0002() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0002", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0002;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration1 = (TypeDeclaration)types.get(1);
-		types.remove(1);
-		TypeDeclaration typeDeclaration2 = a.newTypeDeclaration();
-		typeDeclaration2.setName(a.newSimpleName("A"));
-		typeDeclaration2.bodyDeclarations().add(typeDeclaration1);
-		types.add(typeDeclaration2);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0002;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class A {\n");
-		buf.append("    class Y {\n");
-		buf.append("    \n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0003() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0003", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0003;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration1 = (TypeDeclaration)types.get(1);
-		types.remove(1);
-		TypeDeclaration typeDeclaration2 = a.newTypeDeclaration();
-		typeDeclaration2.setName(a.newSimpleName("A"));
-		typeDeclaration2.bodyDeclarations().add(typeDeclaration1);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0003;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0004() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0004", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0004;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration1 = (TypeDeclaration)types.get(1);
-		types.remove(1);
-		types.add(typeDeclaration1);
-		types.remove(2);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0004;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0005() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0005", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0005;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration1 = (TypeDeclaration)types.get(1);
-		types.remove(1);
-		types.add(1, typeDeclaration1);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0005;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0006() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0006", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0006;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-		types.remove(0);
-		types.set(1, typeDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0006;\n");
-		buf.append("\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0007() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0007", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0007;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("    int i;\n");
-		buf.append("    int foo() {\n");
-		buf.append("        \n");
-		buf.append("        return i;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(1);
-		types.remove(1);
-		types.add(typeDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0007;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Z {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("    int i;\n");
-		buf.append("    int foo() {\n");
-		buf.append("        \n");
-		buf.append("        return i;\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	/** @deprecated using deprecated code */
-	public void test0008() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0008", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0008;\n");
-		buf.append("\n");
-		buf.append("public class X extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration1 = (TypeDeclaration)types.get(0);
-		TypeDeclaration typeDeclaration2 = (TypeDeclaration)types.get(1);
-		Name name = typeDeclaration1.getSuperclass();
-		typeDeclaration1.setSuperclass(null);
-		typeDeclaration2.setSuperclass(name);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0008;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("class Y extends Z1\n");
-		buf.append("                        .Z2\n");
-		buf.append("                            .Z3 {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0009() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0009", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0009;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    void foo() {\n");
-		buf.append("        bar1();\n");
-		buf.append("        \n");
-		buf.append("        //comment1\n");
-		buf.append("        bar2();//comment2\n");
-		buf.append("        //comment3\n");
-		buf.append("        bar3();\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-		FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
-		Block body = methodDeclaration.getBody();
-		List statements = body.statements();
-		Statement statement = (Statement)statements.get(1);
-		statements.remove(1);
-		statements.add(statement);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0009;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    void foo() {\n");
-		buf.append("        bar1();\n");
-		buf.append("        \n");
-		buf.append("        //comment3\n");
-		buf.append("        bar3();\n");
-		buf.append("        //comment1\n");
-		buf.append("        bar2();//comment2\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-//	public void test0010() throws Exception {
-//		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0010", false, null);
-//		StringBuffer buf= new StringBuffer();
-//		buf.append("package test0010;\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("    /**\n");
-//		buf.append("     * NOTHING\n");
-//		buf.append("     */\n");
-//		buf.append("    void foo() {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("    void bar() {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("}\n");
-//		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-//		
-//		JavaScriptUnit astRoot= parseCompilationUnit(cu, false);
-//		
-//		astRoot.recordModifications();
-//		
-//		List types = astRoot.types();
-//		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-//		FunctionDeclaration methodDeclaration1 = typeDeclaration.getMethods()[0];
-//		FunctionDeclaration methodDeclaration2 = typeDeclaration.getMethods()[1];
-//		Javadoc javadoc = methodDeclaration1.getJavadoc();
-//		methodDeclaration1.setJavadoc(null);
-//		methodDeclaration2.setJavadoc(javadoc);
-//		
-//		String preview = evaluateRewrite(cu, astRoot);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test0010;\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("    \n");
-//		buf.append("    void foo() {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("    /**\n");
-//		buf.append("     * NOTHING\n");
-//		buf.append("     */\n");
-//		buf.append("    void bar() {\n");
-//		buf.append("    \n");
-//		buf.append("    }\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/modifying/ASTRewritingModifyingOtherTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingOtherTest.java
deleted file mode 100644
index 79ddd28..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingOtherTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.modifying;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-
-public class ASTRewritingModifyingOtherTest extends ASTRewritingModifyingTest {
-	private static final Class THIS = ASTRewritingModifyingOtherTest.class;
-	
-	public ASTRewritingModifyingOtherTest(String name) {
-		super(name);
-	}
-	
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test suite() {
-		if (true) {
-			return allTests();
-		}
-		TestSuite suite= new Suite("one test");
-		suite.addTest(new ASTRewritingModifyingOtherTest("test0009"));
-		return suite;
-	}
-	
-	public void test0000() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0000", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("var test0000;\n");
-		buf.append("function X {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		try {
-			evaluateRewrite(cu, astRoot);
-			assertTrue("rewrite did not fail even though recording not on", false);
-		} catch (IllegalStateException e) {
-		}
-	}
-	
-	public void test0001() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0001", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("var test0001;\n");
-		buf.append("function X() {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("var test0001;\n");
-		buf.append("function X() {\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-
-	public void test0003() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0003", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List functions = astRoot.statements();
-		FunctionDeclaration functionDeclaration1 = a.newFunctionDeclaration();
-		functionDeclaration1.setName(a.newSimpleName("A"));
-		functions.add(1, functionDeclaration1);
-		functions.remove(1);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\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/modifying/ASTRewritingModifyingRemoveTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingRemoveTest.java
deleted file mode 100644
index ded6920..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingRemoveTest.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.modifying;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.Block;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.TypeDeclaration;
-
-public class ASTRewritingModifyingRemoveTest extends ASTRewritingModifyingTest {
-	private static final Class THIS = ASTRewritingModifyingRemoveTest.class;
-	
-	public ASTRewritingModifyingRemoveTest(String name) {
-		super(name);
-	}
-	
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-		public static Test suite() {
-		if (true) {
-			return allTests();
-		}
-		TestSuite suite= new Suite("one test");
-		suite.addTest(new ASTRewritingModifyingRemoveTest("test0009"));
-		return suite;
-	}
-	
-	public void test0003() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0003", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List functions = astRoot.statements();
-		functions.remove(1);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0004() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0004", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List functions = astRoot.statements();
-		FunctionDeclaration declaration1 = a.newFunctionDeclaration();
-		declaration1.setName(a.newSimpleName("A"));
-		functions.add(1, declaration1);
-		functions.remove(1);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-//	public void test0005() throws Exception {
-//		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0005", false, null);
-//		StringBuffer buf= new StringBuffer();
-//		buf.append("package test0005;\n");
-//		buf.append("\n");
-//		buf.append("/**\n");
-//		buf.append(" * NOTHING\n");
-//		buf.append(" * @since now\n");
-//		buf.append(" */\n");
-//		buf.append("public class X {\n");
-//		buf.append("\n");
-//		buf.append("}\n");
-//		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-//		
-//		JavaScriptUnit astRoot= parseCompilationUnit(cu, false);
-//		
-//		astRoot.recordModifications();
-//		
-//		List types = astRoot.types();
-//		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-//		typeDeclaration.setJavadoc(null);
-//		
-//		String preview = evaluateRewrite(cu, astRoot);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test0005;\n");
-//		buf.append("\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("\n");
-//		buf.append("}\n");
-//		assertEqualString(preview, buf.toString());
-//	}
-	
-	public void test0006() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0006", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0006;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    void foo() {\n");
-		buf.append("        bar1();\n");
-		buf.append("        \n");
-		buf.append("        //comment1\n");
-		buf.append("        bar2();//comment2\n");
-		buf.append("        //comment3\n");
-		buf.append("        bar3();\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-		FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
-		Block body = methodDeclaration.getBody();
-		List statements = body.statements();
-		statements.remove(1);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0006;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    void foo() {\n");
-		buf.append("        bar1();\n");
-		buf.append("        \n");
-		buf.append("        //comment3\n");
-		buf.append("        bar3();\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-//	public void test0007() throws Exception {
-//		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0007", false, null);
-//		StringBuffer buf= new StringBuffer();
-//		buf.append("package test0007;\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("    /*\\u002A\n");
-//		buf.append("     * NOTHING\n");
-//		buf.append("     * @see Object\n");
-//		buf.append("     */\n");
-//		buf.append("    public class Y {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("}\n");
-//		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-//		
-//		JavaScriptUnit astRoot= parseCompilationUnit(cu, false);
-//		
-//		astRoot.recordModifications();
-//		
-//		List types = astRoot.types();
-//		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-//		typeDeclaration = typeDeclaration.getTypes()[0];
-//		Javadoc javadoc = typeDeclaration.getJavadoc();
-//		List tags = javadoc.tags();
-//		tags.remove(0);
-//		
-//		String preview = evaluateRewrite(cu, astRoot);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test0007;\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("    /*\\u002A\n");
-//		buf.append("     * @see Object\n");
-//		buf.append("     */\n");
-//		buf.append("    public class Y {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("}\n");
-//		assertEqualString(preview, buf.toString());
-//	}
-//	
-//	public void test0008() throws Exception {
-//		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0008", false, null);
-//		StringBuffer buf= new StringBuffer();
-//		buf.append("package test0008;\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("    /*\\u002A\n");
-//		buf.append("     * NOTHING\n");
-//		buf.append("     * @see Object\n");
-//		buf.append("     */\n");
-//		buf.append("    public class Y {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("}\n");
-//		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-//		
-//		JavaScriptUnit astRoot= parseCompilationUnit(cu, false);
-//		
-//		astRoot.recordModifications();
-//		
-//		List types = astRoot.types();
-//		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-//		typeDeclaration = typeDeclaration.getTypes()[0];
-//		Javadoc javadoc = typeDeclaration.getJavadoc();
-//		List tags = javadoc.tags();
-//		tags.remove(1);
-//		
-//		String preview = evaluateRewrite(cu, astRoot);
-//		
-//		buf= new StringBuffer();
-//		buf.append("package test0008;\n");
-//		buf.append("\n");
-//		buf.append("public class X {\n");
-//		buf.append("    /*\\u002A\n");
-//		buf.append("     * NOTHING\n");
-//		buf.append("     */\n");
-//		buf.append("    public class Y {\n");
-//		buf.append("    \n");
-//		buf.append("    }\n");
-//		buf.append("}\n");
-//		assertEqualString(preview, buf.toString());
-//	}
-	public void test0009() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0009", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0009;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    // comment1\n");
-		buf.append("\n");
-		buf.append("    // comment2\n");
-		buf.append("    // comment3\n");
-		buf.append("    void foo() {\n");
-		buf.append("    }\n");
-		buf.append("    // comment4\n");
-		buf.append("    void foo2() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-		FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
-		typeDeclaration.bodyDeclarations().remove(methodDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0009;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    // comment1\n");
-		buf.append("\n");
-		buf.append("    // comment4\n");
-		buf.append("    void foo2() {\n");
-		buf.append("    }\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0010() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0010", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0010;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("    // comment1\n");
-		buf.append("\n");
-		buf.append("    // comment2\n");
-		buf.append("    // comment3\n");
-		buf.append("    void foo() {\n");
-		buf.append("    }\n");
-		buf.append("    // comment4\n");
-		buf.append("\n");
-		buf.append("    // comment5\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-		FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
-		typeDeclaration.bodyDeclarations().remove(methodDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0010;\n");
-		buf.append("\n");
-		buf.append("public class X {\n");
-		buf.append("\n");
-		buf.append("    // comment5\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0011() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0011", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("package test0011;\n");
-		buf.append("public class X {\n");
-		buf.append("    // one line comment\n");
-		buf.append("    private void foo(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    /**\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\n");	
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List types = astRoot.types();
-		TypeDeclaration typeDeclaration = (TypeDeclaration)types.get(0);
-		FunctionDeclaration methodDeclaration = typeDeclaration.getMethods()[0];
-		typeDeclaration.bodyDeclarations().remove(methodDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("package test0011;\n");
-		buf.append("public class X {\n");
-		buf.append("    /**\n");
-		buf.append("     *\n");
-		buf.append("     */\n");
-		buf.append("    private void foo1(){\n");
-		buf.append("    }\n");
-		buf.append("\n");
-		buf.append("    private void foo2(){\n");
-		buf.append("    }\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/modifying/ASTRewritingModifyingReplaceTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingReplaceTest.java
deleted file mode 100644
index 53e67f7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingReplaceTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.modifying;
-
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.IPackageFragment;
-import org.eclipse.wst.jsdt.core.dom.AST;
-import org.eclipse.wst.jsdt.core.dom.FunctionDeclaration;
-import org.eclipse.wst.jsdt.core.dom.JavaScriptUnit;
-import org.eclipse.wst.jsdt.core.dom.SimpleName;
-
-public class ASTRewritingModifyingReplaceTest extends ASTRewritingModifyingTest {
-	private static final Class THIS = ASTRewritingModifyingReplaceTest.class;
-	
-	public ASTRewritingModifyingReplaceTest(String name) {
-		super(name);
-	}
-	
-	public static Test allTests() {
-		return new Suite(THIS);
-	}
-	
-	public static Test suite() {
-		if (true) {
-			return allTests();
-		}
-		TestSuite suite= new Suite("one test");
-		suite.addTest(new ASTRewritingModifyingReplaceTest("test0009"));
-		return suite;
-	}
-	
-	public void test0004() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0004", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		List statements = astRoot.statements();
-		SimpleName name = astRoot.getAST().newSimpleName("AAA");
-		FunctionDeclaration f = (FunctionDeclaration)statements.get(0);
-		f.setName(name);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("function AAA() {\n");
-		buf.append("}\n");
-		assertEqualString(preview, buf.toString());
-	}
-	
-	public void test0005() throws Exception {
-		IPackageFragment pack1= fSourceFolder.createPackageFragment("test0005", false, null);
-		StringBuffer buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Y() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		IJavaScriptUnit cu= pack1.createCompilationUnit("X.js", buf.toString(), false, null);
-		
-		JavaScriptUnit astRoot= createCU(cu, false);
-		
-		astRoot.recordModifications();
-		
-		AST a = astRoot.getAST();
-		
-		List statements = astRoot.statements();
-		FunctionDeclaration functionDeclaration = a.newFunctionDeclaration();
-		SimpleName name = a.newSimpleName("AAA");
-		functionDeclaration.setName(name);
-		statements.set(1, functionDeclaration);
-		
-		String preview = evaluateRewrite(cu, astRoot);
-		
-		buf= new StringBuffer();
-		buf.append("function X() {\n");
-		buf.append("\n");
-		buf.append("}\n");
-		buf.append("function AAA() {\n");
-		buf.append("}\n");
-		buf.append("function Z() {\n");
-		buf.append("\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/modifying/ASTRewritingModifyingTest.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java
deleted file mode 100644
index ccd7c46..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.jsdt.core.tests.rewrite.modifying;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-import junit.framework.ComparisonFailure;
-import junit.framework.Test;
-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.IPackageFragmentRoot;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-
-import org.eclipse.wst.jsdt.core.dom.*;
-import org.eclipse.wst.jsdt.core.formatter.DefaultCodeFormatterConstants;
-
-import org.eclipse.wst.jsdt.core.tests.model.AbstractJavaModelTests;
-import org.eclipse.wst.jsdt.core.tests.rewrite.describing.StringAsserts;
-
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.text.edits.TextEdit;
-
-public abstract class ASTRewritingModifyingTest extends AbstractJavaModelTests {
-	
-	/** @deprecated using deprecated code */
-	private static final int AST_INTERNAL_JLS2 = AST.JLS2;
-
-	protected IJavaScriptProject fJProject1;
-	protected IPackageFragmentRoot fSourceFolder;
-	
-	private Hashtable oldOptions;
-
-	public ASTRewritingModifyingTest(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		TestSuite suite =  new TestSuite(ASTRewritingModifyingTest.class.getName());
-		suite.addTest(ASTRewritingModifyingOtherTest.suite());
-		suite.addTest(ASTRewritingModifyingInsertTest.suite());
-		suite.addTest(ASTRewritingModifyingReplaceTest.suite());
-		//suite.addTest(ASTRewritingModifyingRemoveTest.suite());
-		//suite.addTest(ASTRewritingModifyingMoveTest.suite());
-		//suite.addTest(ASTRewritingModifyingCopyTest.suite());
-		return suite;
-	}
-	
-	public void setUpSuite() throws Exception {
-		super.setUpSuite();
-		
-		fJProject1 = createJavaProject("P", new String[] {"src"});
-		fSourceFolder = this.getPackageFragmentRoot("P", "src");
-		
-		Hashtable options = JavaScriptCore.getOptions();
-		this.oldOptions = (Hashtable)options.clone();
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaScriptCore.SPACE);
-		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, "4");
-		JavaScriptCore.setOptions(options);
-		
-		waitUntilIndexesReady();
-	}
-	public void tearDownSuite() throws Exception {
-		deleteProject("P");
-		JavaScriptCore.setOptions(this.oldOptions);
-		super.tearDownSuite();
-	}
-	public JavaScriptUnit createCU(
-		IJavaScriptUnit unit,
-		boolean resolveBindings) {
-
-		try {
-			ASTParser c = ASTParser.newParser(AST_INTERNAL_JLS2);
-			c.setSource(unit);
-			c.setResolveBindings(resolveBindings);
-			ASTNode result = c.createAST(null);
-			return (JavaScriptUnit) result;
-		} catch (IllegalStateException e) {
-			// convert ASTParser's complaints into old form
-			throw new IllegalArgumentException();
-		}
-	}
-	
-	public JavaScriptUnit createCU(char[] source) {
-		if (source == null) {
-			throw new IllegalArgumentException();
-		}
-		ASTParser c = ASTParser.newParser(AST_INTERNAL_JLS2);
-		c.setSource(source);
-		ASTNode result = c.createAST(null);
-		return (JavaScriptUnit) result;
-	}
-	
-	public String evaluateRewrite(IJavaScriptUnit cu, JavaScriptUnit astRoot)  throws CoreException, MalformedTreeException, BadLocationException {
-		return evaluateRewrite(cu.getSource(), astRoot, cu.getJavaScriptProject().getOptions(true));
-	}
-	
-	public String evaluateRewrite(String source, JavaScriptUnit astRoot)  throws MalformedTreeException, BadLocationException {
-		return evaluateRewrite(source, astRoot, getJavaProject("Rewrite").getOptions(true));
-	}
-	public String evaluateRewrite(String source, JavaScriptUnit astRoot, Map options)  throws MalformedTreeException, BadLocationException {
-		IDocument doc = new Document(source);
-		
-		TextEdit changes = astRoot.rewrite(doc, options);
-		changes.apply(doc);
-		return doc.get();
-	}
-	
-	public static void assertEqualString(String actual, String expected) {	
-		try {
-			StringAsserts.assertEqualString(actual, expected);
-		} catch (ComparisonFailure e) {
-			System.out.println(displayActual(actual, 2));
-			throw e;
-		}
-	}
-	
-	public static String displayActual(String inputString, int indent) {
-		int length = inputString.length();
-		StringBuffer buffer = new StringBuffer(length);
-		java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(inputString, "\n\r", true);
-		for (int i = 0; i < indent; i++) buffer.append("\t");
-		buffer.append("buf.append(\"");
-		while (tokenizer.hasMoreTokens()){
-
-			String token = tokenizer.nextToken();
-			if (token.equals("\r")) {
-				buffer.append("\\r");
-				if (tokenizer.hasMoreTokens()) {
-					token = tokenizer.nextToken();
-					if (token.equals("\n")) {
-						buffer.append("\\n");
-						if (tokenizer.hasMoreTokens()) {
-							buffer.append("\");\n");
-							for (int i = 0; i < indent; i++) buffer.append("\t");
-							buffer.append("buf.append(\"");
-						}
-						continue;
-					}
-					buffer.append("\");\n");
-					for (int i = 0; i < indent; i++) buffer.append("\t");
-					buffer.append("buf.append(\"");
-				} else {
-					continue;
-				}
-			} else if (token.equals("\n")) {
-				buffer.append("\\n");
-				if (tokenizer.hasMoreTokens()) {
-					buffer.append("\");\n");
-					for (int i = 0; i < indent; i++) buffer.append("\t");
-					buffer.append("buf.append(\"");
-				}
-				continue;
-			}	
-
-			StringBuffer tokenBuffer = new StringBuffer();
-			for (int i = 0; i < token.length(); i++){ 
-				char c = token.charAt(i);
-				switch (c) {
-					case '\r' :
-						tokenBuffer.append("\\r");
-						break;
-					case '\n' :
-						tokenBuffer.append("\\n");
-						break;
-					case '\b' :
-						tokenBuffer.append("\\b");
-						break;
-					case '\t' :
-						tokenBuffer.append("\t");
-						break;
-					case '\f' :
-						tokenBuffer.append("\\f");
-						break;
-					case '\"' :
-						tokenBuffer.append("\\\"");
-						break;
-					case '\'' :
-						tokenBuffer.append("\\'");
-						break;
-					case '\\' :
-						tokenBuffer.append("\\\\");
-						break;
-					default :
-						tokenBuffer.append(c);
-				}
-			}
-			buffer.append(tokenBuffer.toString());
-		}
-		buffer.append("\");");
-		return buffer.toString();
-	}
-}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/utils/SequenceReaderTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/utils/SequenceReaderTests.java
deleted file mode 100644
index 7363eda..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/utils/SequenceReaderTests.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.wst.jsdt.core.tests.utils;

-

-import java.io.BufferedReader;

-import java.io.IOException;

-import java.io.Reader;

-import java.io.StringReader;

-

-import junit.framework.TestCase;

-

-import org.eclipse.wst.jsdt.core.util.SequenceReader;

-

-public class SequenceReaderTests extends TestCase {

-	public void testSingleReaderSequence() throws IOException {

-		Reader[] readers = new Reader[]{new StringReader("Ready")};

-		Reader sequenceReader = new SequenceReader(readers);

-		StringBuffer buff = new StringBuffer();

-		int c = sequenceReader.read();

-		while (c != -1) {

-			buff.append((char) c);

-			c = sequenceReader.read();

-		}

-		assertEquals("Ready", buff.toString());

-	}

-

-	public void testTripleReaderSequence() throws IOException {

-		Reader[] readers = new Reader[]{new StringReader("Ready"), new StringReader("Set"), new StringReader("Go")};

-		Reader sequenceReader = new SequenceReader(readers);

-		StringBuffer buff = new StringBuffer();

-		int c = sequenceReader.read();

-		while (c != -1) {

-			buff.append((char) c);

-			c = sequenceReader.read();

-		}

-		assertEquals("ReadySetGo", buff.toString());

-	}

-

-	public void testEmptyReader() throws IOException {

-		Reader[] readers = new Reader[]{new StringReader("")};

-		Reader sequenceReader = new SequenceReader(readers);

-		StringBuffer buff = new StringBuffer();

-		int c = sequenceReader.read();

-		while (c != -1) {

-			buff.append((char) c);

-			c = sequenceReader.read();

-		}

-		assertEquals("something was read from an empty reader", 0, buff.length());

-	}

-

-	public void testEmptySequence() throws IOException {

-		Reader[] readers = new Reader[0];

-		Reader sequenceReader = new SequenceReader(readers);

-		StringBuffer buff = new StringBuffer();

-		int c = sequenceReader.read();

-		while (c != -1) {

-			buff.append((char) c);

-			c = sequenceReader.read();

-		}

-		assertEquals("something was read from nothing", 0, buff.length());

-	}

-

-	public void testBufferedTripleReaderSequence() throws IOException {

-		Reader[] readers = new Reader[]{new StringReader("Ready"), new StringReader("Set"), new StringReader("Go")};

-		Reader sequenceReader = new BufferedReader(new SequenceReader(readers));

-		StringBuffer buff = new StringBuffer();

-		int c = sequenceReader.read();

-		while (c != -1) {

-			buff.append((char) c);

-			c = sequenceReader.read();

-		}

-		assertEquals("ReadySetGo", buff.toString());

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/test.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/test.xml
deleted file mode 100644
index e19ac6d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/test.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project
-    name="testsuite"
-    default="run"
-    basedir=".">
-    
-    <!-- The following properties should be passed into this script -->
-    <!-- ${eclipse-home}   -->
-    <!-- ${buildDirectory}  -->
-    <!-- ${buildLabel}        -->
-
-    <!-- should be little need to change what's above  -->
-
-
-    <property
-        name="plugin-name"
-        value="org.eclipse.wst.jsdt.core.tests.model" />
-    <property
-        name="classname"
-        value="org.eclipse.wst.jsdt.core.tests.RunJSDTCoreTests" />
-    <property
-        name="testType"
-        value="core-test" />
-
-    <!-- should be little need to change what's below -->
-
-    <echo message="basedir: ${basedir}" />
-    <echo message="eclipse-home: ${eclipse-home}" />
-    <echo message="buildDirectory: ${buildDirectory}" />
-    <echo message="plugin-name: ${plugin-name}" />
-    <echo message="classname: ${classname}" />
-    <echo message="testType ${testType}" />
-
-
-    <property
-        name="library-file"
-        value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml" />
-    <property
-        name="workspace"
-        value="${eclipse-home}/junitworkspaces/${plugin-name}" />
-        
-    <!-- This target holds all initialization code that needs to be done for -->
-    <!-- all tests that are to be run. Initialization for individual tests -->
-    <!-- should be done within the body of the suite target. -->
-    <target name="init">
-        <tstamp />
-        <delete>
-            <fileset
-                dir="${eclipse-home}"
-                includes="${plugin-name}.*xml" />
-        </delete>
-        <!-- make directory, in case path doesn't exist yet -->
-        <mkdir dir="${workspace}" />
-        <!--  but delete to make sure fresh contents-->
-        <delete
-            dir="${workspace}"
-            quiet="true" />
-
-    </target>
-
-    <!-- This target defines the tests that need to be run. -->
-    <target name="suite">
-
-        <ant
-            target="${testType}"
-            antfile="${library-file}"
-            dir="${eclipse-home}">
-            <property
-                name="data-dir"
-                value="${workspace}" />
-            <property
-                name="plugin-name"
-                value="${plugin-name}" />
-            <property
-                name="classname"
-                value="${classname}" />
-            <property
-                name="plugin-path"
-                value="${eclipse-home}/plugins/${plugin-name}" />
-        </ant>
-
-        <copy
-            failonerror="false"
-            file="${workspace}/.metadata/.log"
-            tofile="${buildDirectory}/${buildLabel}/testResults/consolelogs/${plugin-name}.consolelog.txt" />
-
-    </target>
-
-    <!-- This target holds code to cleanup the testing environment after -->
-    <!-- after all of the tests have been run. You can use this target to -->
-    <!-- delete temporary files that have been created. -->
-    <target name="cleanup">
-        <!-- usually no need to delete workspace until next run, and leaving it allows inspection -->
-        <!-- <delete dir="${workspace}" quiet="true" /> -->
-    </target>
-
-    <!-- This target runs the test suite. Any actions that need to happen -->
-    <!-- after all the tests have been run should go here. -->
-    <target
-        name="run"
-        depends="init,suite,cleanup">
-        <ant
-            target="collect"
-            antfile="${library-file}"
-            dir="${eclipse-home}">
-            <property
-                name="includes"
-                value="${plugin-name}.*xml" />
-            <property
-                name="output-file"
-                value="${plugin-name}.xml" />
-        </ant>
-    </target>
-
-</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/.classpath
deleted file mode 100644
index b4627a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="lib" path="attach.jar"/>
-    <classpathentry kind="lib" path="attach2.jar"/>
-    <classpathentry kind="lib" path="test.jar"/>    
-    <classpathentry kind="lib" path="update.jar"/>    
-    <classpathentry kind="lib" path="full.jar"/>
-    <classpathentry kind="lib" path="test2.jar"/>    
-    <classpathentry kind="lib" path="test4.jar"/>    
-    <classpathentry kind="lib" path="test5.jar"/>    
-    <classpathentry kind="lib" path="test6.jar"/>
-    <classpathentry kind="lib" path="lib"/>
-    <classpathentry kind="src" path="src" output="src"/>
-    <classpathentry kind="var" path="JCL_LIB"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/.project
deleted file mode 100644
index 75574e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach.jar
deleted file mode 100644
index 2a34147..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach2.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach2.jar
deleted file mode 100644
index de4b989..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach2.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach2src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach2src.zip
deleted file mode 100644
index 15cb0ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attach2src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attachsrc.new.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attachsrc.new.zip
deleted file mode 100644
index 8b17f5a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attachsrc.new.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attachsrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attachsrc.zip
deleted file mode 100644
index 02f0d58..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/attachsrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/b153133.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/b153133.jar
deleted file mode 100644
index ca6b4a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/b153133.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/full.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/full.jar
deleted file mode 100644
index cf3beba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/full.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/fullsrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/fullsrc.zip
deleted file mode 100644
index e13584f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/fullsrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/src.zip
deleted file mode 100644
index 8ec045f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/src/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/src/A.js
deleted file mode 100644
index 60e5072..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/src/A.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/srcLib/p/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/srcLib/p/X.js
deleted file mode 100644
index b325efd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/srcLib/p/X.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p;

-public class X {

-	public void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test.jar
deleted file mode 100644
index b4575c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test2.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test2.jar
deleted file mode 100644
index 45d4b00..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test2.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test4.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test4.jar
deleted file mode 100644
index a0c845b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test4.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test4_src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test4_src.zip
deleted file mode 100644
index c5e7250..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test4_src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test5.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test5.jar
deleted file mode 100644
index 62fc165..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test5.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test6.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test6.jar
deleted file mode 100644
index 820ea35..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test6.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test6src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test6src.zip
deleted file mode 100644
index 14f6852..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/test6src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/update.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/update.jar
deleted file mode 100644
index 5e0fec3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachSourceTests/update.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/.classpath
deleted file mode 100644
index b69ee6e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jsdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="lib/test6.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/.project
deleted file mode 100644
index 720b8d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>AttachedJavadocProject</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc.zip
deleted file mode 100644
index b93bb3d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/allclasses-frame.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/allclasses-frame.html
deleted file mode 100644
index c4639e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/allclasses-frame.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-All Classes
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B>All Classes</B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="p1/p2/Annot.html" title="annotation in p1.p2" target="classFrame">Annot</A>
-<BR>
-<A HREF="p1/p2/Annot.D.html" title="class in p1.p2" target="classFrame">Annot.D</A>
-<BR>
-<A HREF="p1/p2/Annot2.html" title="annotation in p1.p2" target="classFrame">Annot2</A>
-<BR>
-<A HREF="p1/p2/p3/C.html" title="interface in p1.p2.p3" target="classFrame"><I>C</I></A>
-<BR>
-<A HREF="p1/p2/p3/D.html" title="class in p1.p2.p3" target="classFrame">D</A>
-<BR>
-<A HREF="p1/p2/E.html" title="enum in p1.p2" target="classFrame">E</A>
-<BR>
-<A HREF="p1/p2/TestClass.html" title="class in p1.p2" target="classFrame">TestClass</A>
-<BR>
-<A HREF="p1/p2/X.html" title="class in p1.p2" target="classFrame">X</A>
-<BR>
-<A HREF="p2/X.html" title="class in p2" target="classFrame">X</A>
-<BR>
-<A HREF="p2/Y.html" title="class in p2" target="classFrame">Y</A>
-<BR>
-<A HREF="p1/p2/Z.html" title="class in p1.p2" target="classFrame">Z</A>
-<BR>
-<A HREF="p2/Z.html" title="class in p2" target="classFrame">Z</A>
-<BR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/allclasses-noframe.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/allclasses-noframe.html
deleted file mode 100644
index 902721a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/allclasses-noframe.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-All Classes
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B>All Classes</B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="p1/p2/Annot.html" title="annotation in p1.p2">Annot</A>
-<BR>
-<A HREF="p1/p2/Annot.D.html" title="class in p1.p2">Annot.D</A>
-<BR>
-<A HREF="p1/p2/Annot2.html" title="annotation in p1.p2">Annot2</A>
-<BR>
-<A HREF="p1/p2/p3/C.html" title="interface in p1.p2.p3"><I>C</I></A>
-<BR>
-<A HREF="p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>
-<BR>
-<A HREF="p1/p2/E.html" title="enum in p1.p2">E</A>
-<BR>
-<A HREF="p1/p2/TestClass.html" title="class in p1.p2">TestClass</A>
-<BR>
-<A HREF="p1/p2/X.html" title="class in p1.p2">X</A>
-<BR>
-<A HREF="p2/X.html" title="class in p2">X</A>
-<BR>
-<A HREF="p2/Y.html" title="class in p2">Y</A>
-<BR>
-<A HREF="p1/p2/Z.html" title="class in p1.p2">Z</A>
-<BR>
-<A HREF="p2/Z.html" title="class in p2">Z</A>
-<BR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/constant-values.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/constant-values.html
deleted file mode 100644
index b1b7e20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/constant-values.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Constant Field Values
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Constant Field Values";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H1>
-Constant Field Values</H1>
-</CENTER>
-<HR SIZE="4" NOSHADE>
-<B>Contents</B><UL>
-</UL>
-
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/deprecated-list.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/deprecated-list.html
deleted file mode 100644
index 6f387b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/deprecated-list.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-Deprecated List
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Deprecated List";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Deprecated API</B></H2>
-</CENTER>
-<HR SIZE="4" NOSHADE>
-<B>Contents</B><UL>
-</UL>
-
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/help-doc.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/help-doc.html
deleted file mode 100644
index 0f27c1a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/help-doc.html
+++ /dev/null
@@ -1,219 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-API Help
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="API Help";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H1>
-How This API Document Is Organized</H1>
-</CENTER>
-This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
-Overview</H3>
-<BLOCKQUOTE>
-
-<P>
-The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
-<H3>
-Package</H3>
-<BLOCKQUOTE>
-
-<P>
-Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
-<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
-</BLOCKQUOTE>
-<H3>
-Class/Interface</H3>
-<BLOCKQUOTE>
-
-<P>
-Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
-<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
-<P>
-<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
-<P>
-<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
-Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
-</BLOCKQUOTE>
-<H3>
-Annotation Type</H3>
-<BLOCKQUOTE>
-
-<P>
-Each annotation type has its own separate page with the following sections:<UL>
-<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
-</BLOCKQUOTE>
-</BLOCKQUOTE>
-<H3>
-Enum</H3>
-<BLOCKQUOTE>
-
-<P>
-Each enum has its own separate page with the following sections:<UL>
-<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
-</BLOCKQUOTE>
-<H3>
-Use</H3>
-<BLOCKQUOTE>
-Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>
-<H3>
-Tree (Class Hierarchy)</H3>
-<BLOCKQUOTE>
-There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
-<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
-</BLOCKQUOTE>
-<H3>
-Deprecated API</H3>
-<BLOCKQUOTE>
-The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
-<H3>
-Index</H3>
-<BLOCKQUOTE>
-The <A HREF="index-files/index-1.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
-<H3>
-Prev/Next</H3>
-These links take you to the next or previous class, interface, package, or related page.<H3>
-Frames/No Frames</H3>
-These links show and hide the HTML frames.  All pages are available with or without frames.
-<P>
-<H3>
-Serialized Form</H3>
-Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
-<P>
-<H3>
-Constant Field Values</H3>
-The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
-<P>
-<FONT SIZE="-1">
-<EM>
-This help file applies to API documentation generated using the standard doclet.</EM>
-</FONT>
-<BR>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-1.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-1.html
deleted file mode 100644
index 05716e1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-1.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-A-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="A-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV LETTER&nbsp;
-&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_A_"><!-- --></A><H2>
-<B>A</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/Annot.html" title="annotation in p1.p2"><B>Annot</B></A> - Annotation Type in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>&nbsp;<DT><A HREF="../p1/p2/Annot.D.html" title="class in p1.p2"><B>Annot.D</B></A> - Class in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>&nbsp;<DT><A HREF="../p1/p2/Annot.D.html#Annot.D()"><B>Annot.D()</B></A> - 
-Constructor for class p1.p2.<A HREF="../p1/p2/Annot.D.html" title="class in p1.p2">Annot.D</A>
-<DD>&nbsp;
-<DT><A HREF="../p1/p2/Annot2.html" title="annotation in p1.p2"><B>Annot2</B></A> - Annotation Type in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>&nbsp;</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV LETTER&nbsp;
-&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-10.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-10.html
deleted file mode 100644
index a45d9af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-10.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-T-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="T-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-9.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-11.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-10.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-10.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_T_"><!-- --></A><H2>
-<B>T</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/TestClass.html" title="class in p1.p2"><B>TestClass</B></A> - Class in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>&nbsp;<DT><A HREF="../p1/p2/TestClass.html#TestClass()"><B>TestClass()</B></A> - 
-Constructor for class p1.p2.<A HREF="../p1/p2/TestClass.html" title="class in p1.p2">TestClass</A>
-<DD>&nbsp;
-<DT><A HREF="../p1/p2/p3/C.html#toArray(T[])"><B>toArray(T[])</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for foo(T[])
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-9.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-11.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-10.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-10.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-11.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-11.html
deleted file mode 100644
index 3859202..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-11.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-V-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="V-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-10.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-12.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-11.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-11.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_V_"><!-- --></A><H2>
-<B>V</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/E.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
-Static method in enum p1.p2.<A HREF="../p1/p2/E.html" title="enum in p1.p2">E</A>
-<DD>Returns the enum constant of this type with the specified name.
-<DT><A HREF="../p1/p2/E.html#values()"><B>values()</B></A> - 
-Static method in enum p1.p2.<A HREF="../p1/p2/E.html" title="enum in p1.p2">E</A>
-<DD>Returns an array containing the constants of this enum type, in
-the order they're declared.
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-10.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-12.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-11.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-11.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-12.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-12.html
deleted file mode 100644
index 556b9b6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-12.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-X-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="X-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-11.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-13.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-12.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-12.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_X_"><!-- --></A><H2>
-<B>X</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/X.html" title="class in p1.p2"><B>X</B></A> - Class in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>Class X javadoc<DT><A HREF="../p1/p2/X.html#X(int)"><B>X(int)</B></A> - 
-Constructor for class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>Javadoc for constructor X(int)
-<DT><A HREF="../p2/X.html" title="class in p2"><B>X</B></A> - Class in <A HREF="../p2/package-summary.html">p2</A><DD>&nbsp;<DT><A HREF="../p2/X.html#X()"><B>X()</B></A> - 
-Constructor for class p2.<A HREF="../p2/X.html" title="class in p2">X</A>
-<DD>&nbsp;
-<DT><A HREF="../p1/p2/X.A.html" title="class in p1.p2"><B>X.A</B></A> - Class in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>Javadoc for member type A<DT><A HREF="../p1/p2/X.A.html#X.A(float)"><B>X.A(float)</B></A> - 
-Constructor for class p1.p2.<A HREF="../p1/p2/X.A.html" title="class in p1.p2">X.A</A>
-<DD>Javadoc for constructor of A
-<DT><A HREF="../p1/p2/X.B.html" title="class in p1.p2"><B>X.B</B></A> - Class in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>&nbsp;<DT><A HREF="../p1/p2/X.B.html#X.B()"><B>X.B()</B></A> - 
-Constructor for class p1.p2.<A HREF="../p1/p2/X.B.html" title="class in p1.p2">X.B</A>
-<DD>&nbsp;
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-11.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-13.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-12.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-12.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-13.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-13.html
deleted file mode 100644
index 7460c19..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-13.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-Y-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Y-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_Y_"><!-- --></A><H2>
-<B>Y</B></H2>
-<DL>
-<DT><A HREF="../p2/Y.html" title="class in p2"><B>Y</B></A> - Class in <A HREF="../p2/package-summary.html">p2</A><DD>&nbsp;<DT><A HREF="../p2/Y.html#Y()"><B>Y()</B></A> - 
-Constructor for class p2.<A HREF="../p2/Y.html" title="class in p2">Y</A>
-<DD>&nbsp;
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-14.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-14.html
deleted file mode 100644
index 3e7439c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-14.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-Z-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Z-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-13.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;NEXT LETTER</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-14.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-14.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_Z_"><!-- --></A><H2>
-<B>Z</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/Z.html" title="class in p1.p2"><B>Z</B></A> - Class in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>Description for class Z<DT><A HREF="../p2/Z.html" title="class in p2"><B>Z</B></A>&lt;<A HREF="../p2/Z.html" title="type parameter in Z">T</A>&gt; - Class in <A HREF="../p2/package-summary.html">p2</A><DD>&nbsp;<DT><A HREF="../p2/Z.html#Z()"><B>Z()</B></A> - 
-Constructor for class p2.<A HREF="../p2/Z.html" title="class in p2">Z</A>
-<DD>&nbsp;
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-13.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;NEXT LETTER</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-14.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-14.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-15.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-15.html
deleted file mode 100644
index deb3895..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-15.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 11:39:03 CEST 2006 -->
-<TITLE>
-Z-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Z-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-14.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;NEXT LETTER</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-15.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-15.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">W</A> <A HREF="index-13.html">X</A> <A HREF="index-14.html">Y</A> <A HREF="index-15.html">Z</A> <HR>
-<A NAME="_Z_"><!-- --></A><H2>
-<B>Z</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/Z.html" title="class in p1.p2"><B>Z</B></A> - Class in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>Description for class Z<DT><A HREF="../p2/Z.html" title="class in p2"><B>Z</B></A>&lt;<A HREF="../p2/Z.html" title="type parameter in Z">T</A>&gt; - Class in <A HREF="../p2/package-summary.html">p2</A><DD>&nbsp;<DT><A HREF="../p2/Z.html#Z()"><B>Z()</B></A> - 
-Constructor for class p2.<A HREF="../p2/Z.html" title="class in p2">Z</A>
-<DD>&nbsp;
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-14.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;NEXT LETTER</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-15.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-15.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">W</A> <A HREF="index-13.html">X</A> <A HREF="index-14.html">Y</A> <A HREF="index-15.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-2.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-2.html
deleted file mode 100644
index eaa1312..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-2.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-B-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="B-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_B_"><!-- --></A><H2>
-<B>B</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/p3/C.html#bar()"><B>bar()</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for bar()
-<DT><A HREF="../p1/p2/X.html#bar(java.util.ArrayList)"><B>bar(ArrayList&lt;String&gt;)</B></A> - 
-Method in class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>&nbsp;
-<DT><A HREF="../p1/p2/p3/C.html#bar1(int, E)"><B>bar1(int, E)</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for bar1
-<DT><A HREF="../p1/p2/p3/C.html#bar3(p1.p2.p3.D)"><B>bar3(D&lt;?&gt;)</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for bar3
-<DT><A HREF="../p1/p2/p3/C.html#bar4(int, p1.p2.p3.D)"><B>bar4(int, D&lt;? extends E&gt;)</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for bar4
-<DT><A HREF="../p1/p2/p3/C.html#bar5(java.util.Map, int, java.util.Map)"><B>bar5(Map&lt;K, V&gt;, int, Map&lt;K, V&gt;)</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for bar5
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-3.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-3.html
deleted file mode 100644
index f4924a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-3.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-C-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="C-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-2.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-3.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_C_"><!-- --></A><H2>
-<B>C</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3"><B>C</B></A>&lt;<A HREF="../p1/p2/p3/C.html" title="type parameter in C">E</A>&gt; - Interface in <A HREF="../p1/p2/p3/package-summary.html">p1.p2.p3</A><DD>&nbsp;</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-2.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-3.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-4.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-4.html
deleted file mode 100644
index 7b16f80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-4.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-D-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="D-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-3.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-5.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-4.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-4.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_D_"><!-- --></A><H2>
-<B>D</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/p3/C.html#d()"><B>d()</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for d()
-<DT><A HREF="../p1/p2/p3/D.html" title="class in p1.p2.p3"><B>D</B></A>&lt;<A HREF="../p1/p2/p3/D.html" title="type parameter in D">E</A>&gt; - Class in <A HREF="../p1/p2/p3/package-summary.html">p1.p2.p3</A><DD>&nbsp;<DT><A HREF="../p1/p2/p3/D.html#D()"><B>D()</B></A> - 
-Constructor for class p1.p2.p3.<A HREF="../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>
-<DD>&nbsp;
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-3.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-5.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-4.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-4.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-5.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-5.html
deleted file mode 100644
index accc1de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-5.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-E-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="E-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-4.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-6.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-5.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-5.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_E_"><!-- --></A><H2>
-<B>E</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/E.html" title="enum in p1.p2"><B>E</B></A> - Enum in <A HREF="../p1/p2/package-summary.html">p1.p2</A><DD>Declaration of enum type E<DT><A HREF="../p1/p2/p3/C.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc of equals
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-4.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-6.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-5.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-5.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-6.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-6.html
deleted file mode 100644
index 4dcac69..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-6.html
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-F-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="F-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-5.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-7.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-6.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-6.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_F_"><!-- --></A><H2>
-<B>F</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/X.html#f"><B>f</B></A> - 
-Variable in class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>Javadoc for field f
-<DT><A HREF="../p1/p2/X.html#f2"><B>f2</B></A> - 
-Variable in class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>&nbsp;
-<DT><A HREF="../p1/p2/X.html#f3"><B>f3</B></A> - 
-Variable in class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>Real javadoc for f3
-<DT><A HREF="../p1/p2/E.html#field"><B>field</B></A> - 
-Variable in enum p1.p2.<A HREF="../p1/p2/E.html" title="enum in p1.p2">E</A>
-<DD>&nbsp;
-<DT><A HREF="../p1/p2/X.html#foo(int, long, java.lang.String)"><B>foo(int, long, String)</B></A> - 
-Method in class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>Javadoc for method foo
-<DT><A HREF="../p1/p2/X.html#foo(java.util.Enumeration)"><B>foo(Enumeration)</B></A> - 
-Method in class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>&nbsp;
-<DT><A HREF="../p1/p2/Z.html#foo()"><B>foo()</B></A> - 
-Static method in class p1.p2.<A HREF="../p1/p2/Z.html" title="class in p1.p2">Z</A>
-<DD>&nbsp;
-<DT><A HREF="../p2/X.html#foo()"><B>foo()</B></A> - 
-Method in class p2.<A HREF="../p2/X.html" title="class in p2">X</A>
-<DD>test case for bug 140879 Spontaneous error "java.util.Set cannot be resolved..."
-<DT><A HREF="../p2/Y.html#foo()"><B>foo()</B></A> - 
-Method in class p2.<A HREF="../p2/Y.html" title="class in p2">Y</A>
-<DD>&nbsp;
-<DT><A HREF="../p1/p2/X.html#foo2(java.lang.Integer)"><B>foo2(Integer)</B></A> - 
-Method in class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>Javadoc for method foo2
-<DT><A HREF="../p1/p2/X.html#foo2()"><B>foo2()</B></A> - 
-Method in class p1.p2.<A HREF="../p1/p2/X.html" title="class in p1.p2">X</A>
-<DD>&nbsp;
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-5.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-7.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-6.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-6.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-7.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-7.html
deleted file mode 100644
index 7c6f564..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-7.html
+++ /dev/null
@@ -1,147 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-M-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="M-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_M_"><!-- --></A><H2>
-<B>M</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/p3/C.html#m(E)"><B>m(E)</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for m(E)
-<DT><A HREF="../p1/p2/p3/C.html#m1(int, E)"><B>m1(int, E)</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for m1
-<DT><A HREF="../p1/p2/p3/C.html#m2(int)"><B>m2(int)</B></A> - 
-Method in interface p1.p2.p3.<A HREF="../p1/p2/p3/C.html" title="interface in p1.p2.p3">C</A>
-<DD>Javadoc for m2
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-8.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-8.html
deleted file mode 100644
index 128b2f7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-8.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-O-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="O-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-7.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-8.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_O_"><!-- --></A><H2>
-<B>O</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/Z.html#out"><B>out</B></A> - 
-Static variable in class p1.p2.<A HREF="../p1/p2/Z.html" title="class in p1.p2">Z</A>
-<DD>Javadoc for field out
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-7.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-8.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-9.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-9.html
deleted file mode 100644
index 8ba0f09..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index-files/index-9.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-P-Index
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="P-Index";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-8.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-10.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-9.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-9.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-<A NAME="_P_"><!-- --></A><H2>
-<B>P</B></H2>
-<DL>
-<DT><A HREF="../p1/p2/p3/package-summary.html"><B>p1.p2.p3</B></A> - package p1.p2.p3<DD>&nbsp;<DT><A HREF="../p2/package-summary.html"><B>p2</B></A> - package p2<DD>&nbsp;</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="index-8.html"><B>PREV LETTER</B></A>&nbsp;
-&nbsp;<A HREF="index-10.html"><B>NEXT LETTER</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?index-filesindex-9.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="index-9.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">M</A> <A HREF="index-8.html">O</A> <A HREF="index-9.html">P</A> <A HREF="index-10.html">T</A> <A HREF="index-11.html">V</A> <A HREF="index-12.html">X</A> <A HREF="index-13.html">Y</A> <A HREF="index-14.html">Z</A> <HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index.html
deleted file mode 100644
index 1bede3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Mon Jun 05 12:35:10 CEST 2006-->
-<TITLE>
-Generated Documentation (Untitled)
-</TITLE>
-<SCRIPT type="text/javascript">
-    targetPage = "" + window.location.search;
-    if (targetPage != "" && targetPage != "undefined")
-       targetPage = targetPage.substring(1);
-    function loadFrames() {
-        if (targetPage != "" && targetPage != "undefined")
-             top.classFrame.location = top.targetPage;
-    }
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-</HEAD>
-<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
-<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
-<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
-<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
-</FRAMESET>
-<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
-<NOFRAMES>
-<H2>
-Frame Alert</H2>
-
-<P>
-This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
-<BR>
-Link to<A HREF="overview-summary.html">Non-frame version.</A>
-</NOFRAMES>
-</FRAMESET>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-frame.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-frame.html
deleted file mode 100644
index 1bf3f3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-frame.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-Overview
-</TITLE>
-
-<META NAME="keywords" CONTENT="Overview">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
-<B></B></FONT></TH>
-</TR>
-</TABLE>
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
-<P>
-<FONT size="+1" CLASS="FrameHeadingFont">
-Packages</FONT>
-<BR>
-<FONT CLASS="FrameItemFont"><A HREF="p1/p2/package-frame.html" target="packageFrame">p1.p2</A></FONT>
-<BR>
-<FONT CLASS="FrameItemFont"><A HREF="p1/p2/p3/package-frame.html" target="packageFrame">p1.p2.p3</A></FONT>
-<BR>
-<FONT CLASS="FrameItemFont"><A HREF="p2/package-frame.html" target="packageFrame">p2</A></FONT>
-<BR>
-</TD>
-</TR>
-</TABLE>
-
-<P>
-&nbsp;
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-summary.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-summary.html
deleted file mode 100644
index 5f221dd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-summary.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:10 CEST 2006 -->
-<TITLE>
-Overview
-</TITLE>
-
-<META NAME="keywords" CONTENT="Overview">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Overview";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Packages</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="20%"><B><A HREF="p1/p2/package-summary.html">p1.p2</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="20%"><B><A HREF="p1/p2/p3/package-summary.html">p1.p2.p3</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="20%"><B><A HREF="p2/package-summary.html">p2</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-</TABLE>
-
-<P>
-&nbsp;<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-tree.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-tree.html
deleted file mode 100644
index 0778a6e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/overview-tree.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Class Hierarchy
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Class Hierarchy";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For All Packages</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="p1/p2/package-tree.html">p1.p2</A>, <A HREF="p1/p2/p3/package-tree.html">p1.p2.p3</A>, <A HREF="p2/package-tree.html">p2</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">p1.p2.<A HREF="p1/p2/Annot.D.html" title="class in p1.p2"><B>Annot.D</B></A><LI TYPE="circle">p1.p2.p3.<A HREF="p1/p2/p3/D.html" title="class in p1.p2.p3"><B>D</B></A>&lt;E&gt;<LI TYPE="circle">p1.p2.<A HREF="p1/p2/TestClass.html" title="class in p1.p2"><B>TestClass</B></A><LI TYPE="circle">p1.p2.<A HREF="p1/p2/X.html" title="class in p1.p2"><B>X</B></A><LI TYPE="circle">p2.<A HREF="p2/X.html" title="class in p2"><B>X</B></A><UL>
-<LI TYPE="circle">p2.<A HREF="p2/Y.html" title="class in p2"><B>Y</B></A></UL>
-<LI TYPE="circle">p1.p2.<A HREF="p1/p2/X.A.html" title="class in p1.p2"><B>X.A</B></A><LI TYPE="circle">p1.p2.<A HREF="p1/p2/X.B.html" title="class in p1.p2"><B>X.B</B></A><LI TYPE="circle">p1.p2.<A HREF="p1/p2/Z.html" title="class in p1.p2"><B>Z</B></A><LI TYPE="circle">p2.<A HREF="p2/Z.html" title="class in p2"><B>Z</B></A>&lt;T&gt;</UL>
-</UL>
-<H2>
-Interface Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">p1.p2.p3.<A HREF="p1/p2/p3/C.html" title="interface in p1.p2.p3"><B>C</B></A>&lt;E&gt;</UL>
-<H2>
-Annotation Type Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">p1.p2.<A HREF="p1/p2/Annot2.html" title="annotation in p1.p2"><B>Annot2</B></A> (implements java.lang.annotation.Annotation)
-<LI TYPE="circle">p1.p2.<A HREF="p1/p2/Annot.html" title="annotation in p1.p2"><B>Annot</B></A> (implements java.lang.annotation.Annotation)
-</UL>
-<H2>
-Enum Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
-<UL>
-<LI TYPE="circle">p1.p2.<A HREF="p1/p2/E.html" title="enum in p1.p2"><B>E</B></A></UL>
-</UL>
-</UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot.D.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot.D.html
deleted file mode 100644
index b21a7b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot.D.html
+++ /dev/null
@@ -1,224 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:07 CEST 2006 -->
-<TITLE>
-Annot.D
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.Annot.D class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Annot.D";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Annot.D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/Annot.html" title="annotation in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/Annot2.html" title="annotation in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/Annot.D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot.D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Class Annot.D</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>p1.p2.Annot.D</B>
-</PRE>
-<DL>
-<DT><B>Enclosing class:</B><DD><A HREF="../../p1/p2/Annot.html" title="annotation in p1.p2">Annot</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public static class <B>Annot.D</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../p1/p2/Annot.D.html#Annot.D()">Annot.D</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="Annot.D()"><!-- --></A><H3>
-Annot.D</H3>
-<PRE>
-public <B>Annot.D</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Annot.D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/Annot.html" title="annotation in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/Annot2.html" title="annotation in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/Annot.D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot.D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot.html
deleted file mode 100644
index d849b7c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot.html
+++ /dev/null
@@ -1,235 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:06 CEST 2006 -->
-<TITLE>
-Annot
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.Annot class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Annot";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Annot.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../p1/p2/Annot.D.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/Annot.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;<A HREF="#annotation_type_required_element_summary">REQUIRED</A>&nbsp;|&nbsp;<A HREF="#annotation_type_optional_element_summary">OPTIONAL</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#annotation_type_element_detail">ELEMENT</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Annotation Type Annot</H2>
-<HR>
-<DL>
-<DT><PRE>public @interface <B>Annot</B></DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
-
-<A NAME="annotation_type_required_element_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Required Element Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/Annot.html#name()">name</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
-
-<A NAME="annotation_type_optional_element_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Optional Element Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/Annot.html#name2()">name2</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
-
-<A NAME="annotation_type_element_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Element Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="name()"><!-- --></A><H3>
-name</H3>
-<PRE>
-public abstract java.lang.String <B>name</B></PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DL>
-<A NAME="name2()"><!-- --></A><H3>
-name2</H3>
-<PRE>
-public abstract java.lang.String <B>name2</B></PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-<DL>
-<DT><B>Default:</B><DD>""</DD>
-</DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Annot.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../p1/p2/Annot.D.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/Annot.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;<A HREF="#annotation_type_required_element_summary">REQUIRED</A>&nbsp;|&nbsp;<A HREF="#annotation_type_optional_element_summary">OPTIONAL</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#annotation_type_element_detail">ELEMENT</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot2.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot2.html
deleted file mode 100644
index 700dcdd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Annot2.html
+++ /dev/null
@@ -1,198 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:07 CEST 2006 -->
-<TITLE>
-Annot2
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.Annot2 class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Annot2";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Annot2.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/Annot.D.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/E.html" title="enum in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/Annot2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;REQUIRED&nbsp;|&nbsp;<A HREF="#annotation_type_optional_element_summary">OPTIONAL</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#annotation_type_element_detail">ELEMENT</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Annotation Type Annot2</H2>
-<HR>
-<DL>
-<DT><PRE>public @interface <B>Annot2</B></DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
-
-<A NAME="annotation_type_optional_element_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Optional Element Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/Annot2.html#name2()">name2</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Description of name2</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<A NAME="name2()"><!-- --></A><H3>
-name2</H3>
-<PRE>
-public abstract java.lang.String <B>name2</B></PRE>
-<DL>
-<DD>Description of name2
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-<DL>
-<DT><B>Default:</B><DD>""</DD>
-</DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Annot2.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/Annot.D.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/E.html" title="enum in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/Annot2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;REQUIRED&nbsp;|&nbsp;<A HREF="#annotation_type_optional_element_summary">OPTIONAL</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#annotation_type_element_detail">ELEMENT</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/E.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/E.html
deleted file mode 100644
index 4acf888..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/E.html
+++ /dev/null
@@ -1,362 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:07 CEST 2006 -->
-<TITLE>
-E
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.E class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="E";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/E.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/Annot2.html" title="annotation in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/TestClass.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/E.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="E.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Enum E</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A>&gt;
-      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>p1.p2.E</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A>&gt;</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public enum <B>E</B><DT>extends java.lang.Enum&lt;<A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A>&gt;</DL>
-</PRE>
-
-<P>
-Declaration of enum type E
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-
-<A NAME="enum_constant_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Enum Constant Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../p1/p2/E.html#C">C</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant C</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../p1/p2/E.html#D">D</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant D</TD>
-</TR>
-</TABLE>
-&nbsp;<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/E.html#field">field</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/E.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A>[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/E.html#values()">values</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
-the order they're declared.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ ENUM CONSTANT DETAIL =========== -->
-
-<A NAME="enum_constant_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Enum Constant Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="D"><!-- --></A><H3>
-D</H3>
-<PRE>
-public static final <A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A> <B>D</B></PRE>
-<DL>
-<DD>Constant D
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="C"><!-- --></A><H3>
-C</H3>
-<PRE>
-public static final <A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A> <B>C</B></PRE>
-<DL>
-<DD>Constant C
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="field"><!-- --></A><H3>
-field</H3>
-<PRE>
-public java.lang.String <B>field</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="values()"><!-- --></A><H3>
-values</H3>
-<PRE>
-public static final <A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A>[] <B>values</B>()</PRE>
-<DL>
-<DD>Returns an array containing the constants of this enum type, in
-the order they're declared.  This method may be used to iterate
-over the constants as follows:
-<pre>
-for(E c : E.values())
-        System.out.println(c);
-</pre>
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
-the order they're declared</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
-valueOf</H3>
-<PRE>
-public static <A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
-<DL>
-<DD>Returns the enum constant of this type with the specified name.
-The string must match <I>exactly</I> an identifier used to declare an
-enum constant in this type.  (Extraneous whitespace characters are 
-not permitted.)
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
-<DT><B>Returns:</B><DD>the enum constant with the specified name
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
-with the specified name</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/E.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/Annot2.html" title="annotation in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/TestClass.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/E.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="E.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/TestClass.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/TestClass.html
deleted file mode 100644
index a77ba97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/TestClass.html
+++ /dev/null
@@ -1,221 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:07 CEST 2006 -->
-<TITLE>
-TestClass
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.TestClass class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="TestClass";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/TestClass.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/E.html" title="enum in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/X.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/TestClass.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="TestClass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Class TestClass</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>p1.p2.TestClass</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public abstract class <B>TestClass</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../p1/p2/TestClass.html#TestClass()">TestClass</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="TestClass()"><!-- --></A><H3>
-TestClass</H3>
-<PRE>
-public <B>TestClass</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/TestClass.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/E.html" title="enum in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/X.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/TestClass.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="TestClass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.A.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.A.html
deleted file mode 100644
index b648267..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.A.html
+++ /dev/null
@@ -1,230 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:07 CEST 2006 -->
-<TITLE>
-X.A
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.X.A class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="X.A";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/X.A.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/X.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/X.B.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/X.A.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.A.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Class X.A</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>p1.p2.X.A</B>
-</PRE>
-<DL>
-<DT><B>Enclosing class:</B><DD><A HREF="../../p1/p2/X.html" title="class in p1.p2">X</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public class <B>X.A</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Javadoc for member type A
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../p1/p2/X.A.html#X.A(float)">X.A</A></B>(float&nbsp;f)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for constructor of A</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="X.A(float)"><!-- --></A><H3>
-X.A</H3>
-<PRE>
-public <B>X.A</B>(float&nbsp;f)</PRE>
-<DL>
-<DD>Javadoc for constructor of A
-<P>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/X.A.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/X.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/X.B.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/X.A.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.A.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.B.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.B.html
deleted file mode 100644
index c2565f2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.B.html
+++ /dev/null
@@ -1,224 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:07 CEST 2006 -->
-<TITLE>
-X.B
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.X.B class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="X.B";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/X.B.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/X.A.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/Z.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/X.B.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.B.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Class X.B</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>p1.p2.X.B</B>
-</PRE>
-<DL>
-<DT><B>Enclosing class:</B><DD><A HREF="../../p1/p2/X.html" title="class in p1.p2">X</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public class <B>X.B</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../p1/p2/X.B.html#X.B()">X.B</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="X.B()"><!-- --></A><H3>
-X.B</H3>
-<PRE>
-public <B>X.B</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/X.B.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/X.A.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/Z.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/X.B.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.B.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.html
deleted file mode 100644
index a61ab87..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/X.html
+++ /dev/null
@@ -1,440 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:07 CEST 2006 -->
-<TITLE>
-X
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.X class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="X";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/X.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/TestClass.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/X.A.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/X.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Class X</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>p1.p2.X</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public class <B>X</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Class X javadoc
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<A NAME="nested_class_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Nested Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.A.html" title="class in p1.p2">X.A</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for member type A</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.B.html" title="class in p1.p2">X.B</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.html#f">f</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for field f</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.html#f2">f2</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.html#f3">f3</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Real javadoc for f3</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../p1/p2/X.html#X(int)">X</A></B>(int&nbsp;i)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for constructor X(int)</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.html#bar(java.util.ArrayList)">bar</A></B>(java.util.ArrayList&lt;java.lang.String&gt;&nbsp;array)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.html#foo(java.util.Enumeration)">foo</A></B>(java.util.Enumeration&nbsp;enumeration)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.html#foo(int, long, java.lang.String)">foo</A></B>(int&nbsp;i,
-    long&nbsp;l,
-    java.lang.String&nbsp;s)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for method foo</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.html#foo2()">foo2</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/X.html#foo2(java.lang.Integer)">foo2</A></B>(java.lang.Integer&nbsp;i)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for method foo2</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="f"><!-- --></A><H3>
-f</H3>
-<PRE>
-public int <B>f</B></PRE>
-<DL>
-<DD>Javadoc for field f
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="f3"><!-- --></A><H3>
-f3</H3>
-<PRE>
-public java.lang.String <B>f3</B></PRE>
-<DL>
-<DD>Real javadoc for f3
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="f2"><!-- --></A><H3>
-f2</H3>
-<PRE>
-public int <B>f2</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="X(int)"><!-- --></A><H3>
-X</H3>
-<PRE>
-public <B>X</B>(int&nbsp;i)</PRE>
-<DL>
-<DD>Javadoc for constructor X(int)
-<P>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="foo(int, long, java.lang.String)"><!-- --></A><H3>
-foo</H3>
-<PRE>
-public void <B>foo</B>(int&nbsp;i,
-                long&nbsp;l,
-                java.lang.String&nbsp;s)</PRE>
-<DL>
-<DD>Javadoc for method foo
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>i</CODE> - the given int<DD><CODE>l</CODE> - the given long<DD><CODE>s</CODE> - the given string</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="foo2(java.lang.Integer)"><!-- --></A><H3>
-foo2</H3>
-<PRE>
-public void <B>foo2</B>(java.lang.Integer&nbsp;i)</PRE>
-<DL>
-<DD>Javadoc for method foo2
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="foo2()"><!-- --></A><H3>
-foo2</H3>
-<PRE>
-public void <B>foo2</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="foo(java.util.Enumeration)"><!-- --></A><H3>
-foo</H3>
-<PRE>
-public void <B>foo</B>(java.util.Enumeration&nbsp;enumeration)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="bar(java.util.ArrayList)"><!-- --></A><H3>
-bar</H3>
-<PRE>
-public void <B>bar</B>(java.util.ArrayList&lt;java.lang.String&gt;&nbsp;array)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/X.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/TestClass.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../p1/p2/X.A.html" title="class in p1.p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/X.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Z.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Z.html
deleted file mode 100644
index bead511..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/Z.html
+++ /dev/null
@@ -1,258 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:07 CEST 2006 -->
-<TITLE>
-Z
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.Z class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Z";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Z.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/X.B.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/Z.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Z.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2</FONT>
-<BR>
-Class Z</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>p1.p2.Z</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public class <B>Z</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Description for class Z
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.io.PrintStream</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/Z.html#out">out</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for field out</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p1/p2/Z.html#foo()">foo</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="out"><!-- --></A><H3>
-out</H3>
-<PRE>
-public static java.io.PrintStream <B>out</B></PRE>
-<DL>
-<DD>Javadoc for field out
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="foo()"><!-- --></A><H3>
-foo</H3>
-<PRE>
-public static void <B>foo</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Z.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../p1/p2/X.B.html" title="class in p1.p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/Z.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Z.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot.D.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot.D.html
deleted file mode 100644
index 0ae9c62..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot.D.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.Annot.D
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.Annot.D";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/Annot.D.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useAnnot.D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot.D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.Annot.D</B></H2>
-</CENTER>
-No usage of p1.p2.Annot.D
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/Annot.D.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useAnnot.D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot.D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot.html
deleted file mode 100644
index ff2dd47..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.Annot
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.Annot";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/Annot.html" title="annotation in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useAnnot.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.Annot</B></H2>
-</CENTER>
-No usage of p1.p2.Annot
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/Annot.html" title="annotation in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useAnnot.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot2.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot2.html
deleted file mode 100644
index c465468..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Annot2.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.Annot2
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.Annot2";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/Annot2.html" title="annotation in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useAnnot2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.Annot2</B></H2>
-</CENTER>
-No usage of p1.p2.Annot2
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/Annot2.html" title="annotation in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useAnnot2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Annot2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/E.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/E.html
deleted file mode 100644
index 455ae9d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/E.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.E
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.E";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/E.html" title="enum in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useE.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="E.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.E</B></H2>
-</CENTER>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../../../p1/p2/E.html" title="enum in p1.p2">E</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#p1.p2"><B>p1.p2</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<A NAME="p1.p2"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Uses of <A HREF="../../../p1/p2/E.html" title="enum in p1.p2">E</A> in <A HREF="../../../p1/p2/package-summary.html">p1.p2</A></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../p1/p2/package-summary.html">p1.p2</A> that return <A HREF="../../../p1/p2/E.html" title="enum in p1.p2">E</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../../p1/p2/E.html" title="enum in p1.p2">E</A></CODE></FONT></TD>
-<TD><CODE><B>E.</B><B><A HREF="../../../p1/p2/E.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../../p1/p2/E.html" title="enum in p1.p2">E</A>[]</CODE></FONT></TD>
-<TD><CODE><B>E.</B><B><A HREF="../../../p1/p2/E.html#values()">values</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
-the order they're declared.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/E.html" title="enum in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useE.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="E.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/TestClass.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/TestClass.html
deleted file mode 100644
index ceb4279..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/TestClass.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.TestClass
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.TestClass";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/TestClass.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useTestClass.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="TestClass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.TestClass</B></H2>
-</CENTER>
-No usage of p1.p2.TestClass
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/TestClass.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useTestClass.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="TestClass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.A.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.A.html
deleted file mode 100644
index 055b071..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.A.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.X.A
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.X.A";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/X.A.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useX.A.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.A.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.X.A</B></H2>
-</CENTER>
-No usage of p1.p2.X.A
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/X.A.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useX.A.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.A.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.B.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.B.html
deleted file mode 100644
index 210202b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.B.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.X.B
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.X.B";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/X.B.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useX.B.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.B.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.X.B</B></H2>
-</CENTER>
-No usage of p1.p2.X.B
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/X.B.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useX.B.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.B.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.html
deleted file mode 100644
index ce18a68..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/X.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.X
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.X";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/X.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useX.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.X</B></H2>
-</CENTER>
-No usage of p1.p2.X
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/X.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useX.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Z.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Z.html
deleted file mode 100644
index 6d03fc4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/class-use/Z.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.Z
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.Z";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/Z.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useZ.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Z.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.Z</B></H2>
-</CENTER>
-No usage of p1.p2.Z
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../p1/p2/Z.html" title="class in p1.p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/\class-useZ.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Z.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/C.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/C.html
deleted file mode 100644
index 32188f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/C.html
+++ /dev/null
@@ -1,442 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-C
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.p3.C interface">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="C";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/C.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/C.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="C.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2.p3</FONT>
-<BR>
-Interface C&lt;E&gt;</H2>
-<HR>
-<DL>
-<DT><PRE>public interface <B>C&lt;E&gt;</B></DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.Object[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#bar()">bar</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for bar()</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#bar1(int, E)">bar1</A></B>(int&nbsp;i,
-     <A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&nbsp;e)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for bar1</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#bar3(p1.p2.p3.D)">bar3</A></B>(<A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;?&gt;&nbsp;c)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for bar3</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#bar4(int, p1.p2.p3.D)">bar4</A></B>(int&nbsp;i,
-     <A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;? extends <A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&gt;&nbsp;c)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for bar4</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;K,V&gt; java.util.Map&lt;K,V&gt;</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#bar5(java.util.Map, int, java.util.Map)">bar5</A></B>(java.util.Map&lt;K,V&gt;&nbsp;m,
-     int&nbsp;j,
-     java.util.Map&lt;K,V&gt;&nbsp;m2)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for bar5</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;<A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#d()">d</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for d()</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;o)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc of equals</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#m(E)">m</A></B>(<A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&nbsp;o)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for m(E)</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#m1(int, E)">m1</A></B>(int&nbsp;i,
-   <A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&nbsp;e)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for m1</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#m2(int)">m2</A></B>(int&nbsp;index)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for m2</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T&gt; T[]</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../p1/p2/p3/C.html#toArray(T[])">toArray</A></B>(T[]&nbsp;a)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for foo(T[])</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="d()"><!-- --></A><H3>
-d</H3>
-<PRE>
-<A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;<A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&gt; <B>d</B>()</PRE>
-<DL>
-<DD>Javadoc for d()
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="bar()"><!-- --></A><H3>
-bar</H3>
-<PRE>
-java.lang.Object[] <B>bar</B>()</PRE>
-<DL>
-<DD>Javadoc for bar()
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="toArray(java.lang.Object)"><!-- --></A><A NAME="toArray(T[])"><!-- --></A><H3>
-toArray</H3>
-<PRE>
-&lt;T&gt; T[] <B>toArray</B>(T[]&nbsp;a)</PRE>
-<DL>
-<DD>Javadoc for foo(T[])
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="m(java.lang.Object)"><!-- --></A><A NAME="m(E)"><!-- --></A><H3>
-m</H3>
-<PRE>
-boolean <B>m</B>(<A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&nbsp;o)</PRE>
-<DL>
-<DD>Javadoc for m(E)
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="bar4(int, p1.p2.p3.D)"><!-- --></A><H3>
-bar4</H3>
-<PRE>
-boolean <B>bar4</B>(int&nbsp;i,
-             <A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;? extends <A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&gt;&nbsp;c)</PRE>
-<DL>
-<DD>Javadoc for bar4
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="bar3(p1.p2.p3.D)"><!-- --></A><H3>
-bar3</H3>
-<PRE>
-boolean <B>bar3</B>(<A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;?&gt;&nbsp;c)</PRE>
-<DL>
-<DD>Javadoc for bar3
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="bar5(java.util.Map, int, java.util.Map)"><!-- --></A><H3>
-bar5</H3>
-<PRE>
-&lt;K,V&gt; java.util.Map&lt;K,V&gt; <B>bar5</B>(java.util.Map&lt;K,V&gt;&nbsp;m,
-                              int&nbsp;j,
-                              java.util.Map&lt;K,V&gt;&nbsp;m2)</PRE>
-<DL>
-<DD>Javadoc for bar5
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
-equals</H3>
-<PRE>
-boolean <B>equals</B>(java.lang.Object&nbsp;o)</PRE>
-<DL>
-<DD>Javadoc of equals
-<P>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="bar1(int,java.lang.Object)"><!-- --></A><A NAME="bar1(int, E)"><!-- --></A><H3>
-bar1</H3>
-<PRE>
-<A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A> <B>bar1</B>(int&nbsp;i,
-       <A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&nbsp;e)</PRE>
-<DL>
-<DD>Javadoc for bar1
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="m1(int,java.lang.Object)"><!-- --></A><A NAME="m1(int, E)"><!-- --></A><H3>
-m1</H3>
-<PRE>
-void <B>m1</B>(int&nbsp;i,
-        <A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&nbsp;e)</PRE>
-<DL>
-<DD>Javadoc for m1
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="m2(int)"><!-- --></A><H3>
-m2</H3>
-<PRE>
-<A HREF="../../../p1/p2/p3/C.html" title="type parameter in C">E</A> <B>m2</B>(int&nbsp;index)</PRE>
-<DL>
-<DD>Javadoc for m2
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/C.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/C.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="C.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/D.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/D.html
deleted file mode 100644
index 4532a44..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/D.html
+++ /dev/null
@@ -1,221 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-D
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.p3.D class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="D";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../p1/p2/p3/C.html" title="interface in p1.p2.p3"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p1.p2.p3</FONT>
-<BR>
-Class D&lt;E&gt;</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>p1.p2.p3.D&lt;E&gt;</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public class <B>D&lt;E&gt;</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../p1/p2/p3/D.html#D()">D</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="D()"><!-- --></A><H3>
-D</H3>
-<PRE>
-public <B>D</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/D.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../p1/p2/p3/C.html" title="interface in p1.p2.p3"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/D.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/class-use/C.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/class-use/C.html
deleted file mode 100644
index 575fbd5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/class-use/C.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Interface p1.p2.p3.C
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Interface p1.p2.p3.C";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../p1/p2/p3/C.html" title="interface in p1.p2.p3"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?p1/p2/p3/\class-useC.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="C.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Interface<br>p1.p2.p3.C</B></H2>
-</CENTER>
-No usage of p1.p2.p3.C
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../p1/p2/p3/C.html" title="interface in p1.p2.p3"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?p1/p2/p3/\class-useC.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="C.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/class-use/D.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/class-use/D.html
deleted file mode 100644
index d44945b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/class-use/D.html
+++ /dev/null
@@ -1,201 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p1.p2.p3.D
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p1.p2.p3.D";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?p1/p2/p3/\class-useD.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p1.p2.p3.D</B></H2>
-</CENTER>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#p1.p2.p3"><B>p1.p2.p3</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<A NAME="p1.p2.p3"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Uses of <A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A> in <A HREF="../../../../p1/p2/p3/package-summary.html">p1.p2.p3</A></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../p1/p2/p3/package-summary.html">p1.p2.p3</A> that return <A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;<A HREF="../../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B>C.</B><B><A HREF="../../../../p1/p2/p3/C.html#d()">d</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for d()</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../p1/p2/p3/package-summary.html">p1.p2.p3</A> with parameters of type <A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B>C.</B><B><A HREF="../../../../p1/p2/p3/C.html#bar3(p1.p2.p3.D)">bar3</A></B>(<A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;?&gt;&nbsp;c)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for bar3</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B>C.</B><B><A HREF="../../../../p1/p2/p3/C.html#bar4(int, p1.p2.p3.D)">bar4</A></B>(int&nbsp;i,
-     <A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D</A>&lt;? extends <A HREF="../../../../p1/p2/p3/C.html" title="type parameter in C">E</A>&gt;&nbsp;c)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Javadoc for bar4</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../p1/p2/p3/D.html" title="class in p1.p2.p3"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html?p1/p2/p3/\class-useD.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="D.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-frame.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-frame.html
deleted file mode 100644
index 96f1be5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-frame.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p1.p2.p3
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.p3 package">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameTitleFont">
-<A HREF="../../../p1/p2/p3/package-summary.html" target="classFrame">p1.p2.p3</A></FONT>
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Interfaces</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="C.html" title="interface in p1.p2.p3" target="classFrame"><I>C</I></A></FONT></TD>
-</TR>
-</TABLE>
-
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Classes</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="D.html" title="class in p1.p2.p3" target="classFrame">D</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-summary.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-summary.html
deleted file mode 100644
index 6d3d855..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-summary.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p1.p2.p3
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2.p3 package">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="p1.p2.p3";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../p1/p2/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;<A HREF="../../../p2/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<H2>
-Package p1.p2.p3
-</H2>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Interface Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../../p1/p2/p3/C.html" title="interface in p1.p2.p3">C&lt;E&gt;</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3">D&lt;E&gt;</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-<DL>
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../p1/p2/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;<A HREF="../../../p2/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-tree.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-tree.html
deleted file mode 100644
index 2c64726..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-tree.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p1.p2.p3 Class Hierarchy
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="p1.p2.p3 Class Hierarchy";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../p1/p2/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;<A HREF="../../../p2/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For Package p1.p2.p3
-</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">p1.p2.p3.<A HREF="../../../p1/p2/p3/D.html" title="class in p1.p2.p3"><B>D</B></A>&lt;E&gt;</UL>
-</UL>
-<H2>
-Interface Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">p1.p2.p3.<A HREF="../../../p1/p2/p3/C.html" title="interface in p1.p2.p3"><B>C</B></A>&lt;E&gt;</UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../p1/p2/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;<A HREF="../../../p2/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-use.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-use.html
deleted file mode 100644
index 8140f18..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/p3/package-use.html
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Package p1.p2.p3
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Package p1.p2.p3";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Package<br>p1.p2.p3</B></H2>
-</CENTER>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../../../p1/p2/p3/package-summary.html">p1.p2.p3</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#p1.p2.p3"><B>p1.p2.p3</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<A NAME="p1.p2.p3"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Classes in <A HREF="../../../p1/p2/p3/package-summary.html">p1.p2.p3</A> used by <A HREF="../../../p1/p2/p3/package-summary.html">p1.p2.p3</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><B><A HREF="../../../p1/p2/p3/class-use/D.html#p1.p2.p3"><B>D</B></A></B>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../index.html?p1/p2/p3/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-frame.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-frame.html
deleted file mode 100644
index 52f9c05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-frame.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p1.p2
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2 package">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameTitleFont">
-<A HREF="../../p1/p2/package-summary.html" target="classFrame">p1.p2</A></FONT>
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Classes</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="Annot.D.html" title="class in p1.p2" target="classFrame">Annot.D</A>
-<BR>
-<A HREF="TestClass.html" title="class in p1.p2" target="classFrame">TestClass</A>
-<BR>
-<A HREF="X.html" title="class in p1.p2" target="classFrame">X</A>
-<BR>
-<A HREF="Z.html" title="class in p1.p2" target="classFrame">Z</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Enums</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="E.html" title="enum in p1.p2" target="classFrame">E</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Annotation Types</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="Annot.html" title="annotation in p1.p2" target="classFrame">Annot</A>
-<BR>
-<A HREF="Annot2.html" title="annotation in p1.p2" target="classFrame">Annot2</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-summary.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-summary.html
deleted file mode 100644
index 0e02524..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-summary.html
+++ /dev/null
@@ -1,198 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p1.p2
-</TITLE>
-
-<META NAME="keywords" CONTENT="p1.p2 package">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="p1.p2";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV PACKAGE&nbsp;
-&nbsp;<A HREF="../../p1/p2/p3/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<H2>
-Package p1.p2
-</H2>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../p1/p2/Annot.D.html" title="class in p1.p2">Annot.D</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../p1/p2/TestClass.html" title="class in p1.p2">TestClass</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../p1/p2/X.html" title="class in p1.p2">X</A></B></TD>
-<TD>Class X javadoc</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../p1/p2/Z.html" title="class in p1.p2">Z</A></B></TD>
-<TD>Description for class Z</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Enum Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../p1/p2/E.html" title="enum in p1.p2">E</A></B></TD>
-<TD>Declaration of enum type E</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Annotation Types Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../p1/p2/Annot.html" title="annotation in p1.p2">Annot</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../p1/p2/Annot2.html" title="annotation in p1.p2">Annot2</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-<DL>
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV PACKAGE&nbsp;
-&nbsp;<A HREF="../../p1/p2/p3/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-tree.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-tree.html
deleted file mode 100644
index 68487f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-tree.html
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p1.p2 Class Hierarchy
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="p1.p2 Class Hierarchy";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;<A HREF="../../p1/p2/p3/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For Package p1.p2
-</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../overview-tree.html">All Packages</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/Annot.D.html" title="class in p1.p2"><B>Annot.D</B></A><LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/TestClass.html" title="class in p1.p2"><B>TestClass</B></A><LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/X.html" title="class in p1.p2"><B>X</B></A><LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/X.A.html" title="class in p1.p2"><B>X.A</B></A><LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/X.B.html" title="class in p1.p2"><B>X.B</B></A><LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/Z.html" title="class in p1.p2"><B>Z</B></A></UL>
-</UL>
-<H2>
-Annotation Type Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/Annot2.html" title="annotation in p1.p2"><B>Annot2</B></A> (implements java.lang.annotation.Annotation)
-<LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/Annot.html" title="annotation in p1.p2"><B>Annot</B></A> (implements java.lang.annotation.Annotation)
-</UL>
-<H2>
-Enum Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
-<UL>
-<LI TYPE="circle">p1.p2.<A HREF="../../p1/p2/E.html" title="enum in p1.p2"><B>E</B></A></UL>
-</UL>
-</UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;<A HREF="../../p1/p2/p3/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-use.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-use.html
deleted file mode 100644
index c285575..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p1/p2/package-use.html
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Package p1.p2
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Package p1.p2";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Package<br>p1.p2</B></H2>
-</CENTER>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../../p1/p2/package-summary.html">p1.p2</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#p1.p2"><B>p1.p2</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<A NAME="p1.p2"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Classes in <A HREF="../../p1/p2/package-summary.html">p1.p2</A> used by <A HREF="../../p1/p2/package-summary.html">p1.p2</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><B><A HREF="../../p1/p2/class-use/E.html#p1.p2"><B>E</B></A></B>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Declaration of enum type E</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p1/p2/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/X.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/X.html
deleted file mode 100644
index 8f15b95..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/X.html
+++ /dev/null
@@ -1,254 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-X
-</TITLE>
-
-<META NAME="keywords" CONTENT="p2.X class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="X";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/X.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../p2/Y.html" title="class in p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/X.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p2</FONT>
-<BR>
-Class X</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>p2.X</B>
-</PRE>
-<DL>
-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../p2/Y.html" title="class in p2">Y</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public class <B>X</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../p2/X.html#X()">X</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../p2/Z.html" title="class in p2">Z</A>&lt;java.lang.String&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../p2/X.html#foo()">foo</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test case for bug 140879 Spontaneous error "java.util.Set cannot be resolved..."</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="X()"><!-- --></A><H3>
-X</H3>
-<PRE>
-public <B>X</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="foo()"><!-- --></A><H3>
-foo</H3>
-<PRE>
-public <A HREF="../p2/Z.html" title="class in p2">Z</A>&lt;java.lang.String&gt; <B>foo</B>()</PRE>
-<DL>
-<DD>test case for bug 140879 Spontaneous error "java.util.Set cannot be resolved..."
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/X.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../p2/Y.html" title="class in p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/X.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/Y.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/Y.html
deleted file mode 100644
index 7483a56..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/Y.html
+++ /dev/null
@@ -1,256 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-Y
-</TITLE>
-
-<META NAME="keywords" CONTENT="p2.Y class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Y";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Y.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../p2/X.html" title="class in p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../p2/Z.html" title="class in p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/Y.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Y.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p2</FONT>
-<BR>
-Class Y</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../p2/X.html" title="class in p2">p2.X</A>
-      <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>p2.Y</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public class <B>Y</B><DT>extends <A HREF="../p2/X.html" title="class in p2">X</A></DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../p2/Y.html#Y()">Y</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../p2/Z.html" title="class in p2">Z</A>&lt;java.lang.String&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../p2/Y.html#foo()">foo</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test case for bug 140879 Spontaneous error "java.util.Set cannot be resolved..."</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="Y()"><!-- --></A><H3>
-Y</H3>
-<PRE>
-public <B>Y</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="foo()"><!-- --></A><H3>
-foo</H3>
-<PRE>
-public <A HREF="../p2/Z.html" title="class in p2">Z</A>&lt;java.lang.String&gt; <B>foo</B>()</PRE>
-<DL>
-<DD><B>Description copied from class: <CODE><A HREF="../p2/X.html#foo()">X</A></CODE></B></DD>
-<DD>test case for bug 140879 Spontaneous error "java.util.Set cannot be resolved..."
-<P>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE><A HREF="../p2/X.html#foo()">foo</A></CODE> in class <CODE><A HREF="../p2/X.html" title="class in p2">X</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Y.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../p2/X.html" title="class in p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../p2/Z.html" title="class in p2"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/Y.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Y.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/Z.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/Z.html
deleted file mode 100644
index be63283..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/Z.html
+++ /dev/null
@@ -1,221 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-Z
-</TITLE>
-
-<META NAME="keywords" CONTENT="p2.Z class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Z";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Z.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../p2/Y.html" title="class in p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/Z.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Z.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-p2</FONT>
-<BR>
-Class Z&lt;T&gt;</H2>
-<PRE>
-java.lang.Object
-  <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>p2.Z&lt;T&gt;</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public class <B>Z&lt;T&gt;</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../p2/Z.html#Z()">Z</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="Z()"><!-- --></A><H3>
-Z</H3>
-<PRE>
-public <B>Z</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Z.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../p2/Y.html" title="class in p2"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/Z.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Z.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/X.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/X.html
deleted file mode 100644
index a6220bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/X.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p2.X
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p2.X";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../p2/X.html" title="class in p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p2/\class-useX.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p2.X</B></H2>
-</CENTER>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../../p2/X.html" title="class in p2">X</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#p2"><B>p2</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<A NAME="p2"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Uses of <A HREF="../../p2/X.html" title="class in p2">X</A> in <A HREF="../../p2/package-summary.html">p2</A></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../p2/X.html" title="class in p2">X</A> in <A HREF="../../p2/package-summary.html">p2</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../p2/Y.html" title="class in p2">Y</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../p2/X.html" title="class in p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p2/\class-useX.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="X.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/Y.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/Y.html
deleted file mode 100644
index 9e4523b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/Y.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p2.Y
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p2.Y";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../p2/Y.html" title="class in p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p2/\class-useY.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Y.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p2.Y</B></H2>
-</CENTER>
-No usage of p2.Y
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../p2/Y.html" title="class in p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p2/\class-useY.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Y.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/Z.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/Z.html
deleted file mode 100644
index b6af94a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/class-use/Z.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Class p2.Z
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Class p2.Z";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../p2/Z.html" title="class in p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p2/\class-useZ.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Z.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Class<br>p2.Z</B></H2>
-</CENTER>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../../p2/Z.html" title="class in p2">Z</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#p2"><B>p2</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<A NAME="p2"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Uses of <A HREF="../../p2/Z.html" title="class in p2">Z</A> in <A HREF="../../p2/package-summary.html">p2</A></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../p2/package-summary.html">p2</A> that return <A HREF="../../p2/Z.html" title="class in p2">Z</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../p2/Z.html" title="class in p2">Z</A>&lt;java.lang.String&gt;</CODE></FONT></TD>
-<TD><CODE><B>Y.</B><B><A HREF="../../p2/Y.html#foo()">foo</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../p2/Z.html" title="class in p2">Z</A>&lt;java.lang.String&gt;</CODE></FONT></TD>
-<TD><CODE><B>X.</B><B><A HREF="../../p2/X.html#foo()">foo</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test case for bug 140879 Spontaneous error "java.util.Set cannot be resolved..."</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../p2/Z.html" title="class in p2"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?p2/\class-useZ.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Z.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-frame.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-frame.html
deleted file mode 100644
index 8384c36..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-frame.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p2
-</TITLE>
-
-<META NAME="keywords" CONTENT="p2 package">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameTitleFont">
-<A HREF="../p2/package-summary.html" target="classFrame">p2</A></FONT>
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Classes</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="X.html" title="class in p2" target="classFrame">X</A>
-<BR>
-<A HREF="Y.html" title="class in p2" target="classFrame">Y</A>
-<BR>
-<A HREF="Z.html" title="class in p2" target="classFrame">Z</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-summary.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-summary.html
deleted file mode 100644
index 55bc304..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-summary.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p2
-</TITLE>
-
-<META NAME="keywords" CONTENT="p2 package">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="p2";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../p1/p2/p3/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;NEXT PACKAGE</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<H2>
-Package p2
-</H2>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../p2/X.html" title="class in p2">X</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../p2/Y.html" title="class in p2">Y</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../p2/Z.html" title="class in p2">Z&lt;T&gt;</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-<DL>
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../p1/p2/p3/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;NEXT PACKAGE</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-tree.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-tree.html
deleted file mode 100644
index f2addcc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-tree.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:08 CEST 2006 -->
-<TITLE>
-p2 Class Hierarchy
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="p2 Class Hierarchy";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../p1/p2/p3/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For Package p2
-</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="../overview-tree.html">All Packages</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">p2.<A HREF="../p2/X.html" title="class in p2"><B>X</B></A><UL>
-<LI TYPE="circle">p2.<A HREF="../p2/Y.html" title="class in p2"><B>Y</B></A></UL>
-<LI TYPE="circle">p2.<A HREF="../p2/Z.html" title="class in p2"><B>Z</B></A>&lt;T&gt;</UL>
-</UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../p1/p2/p3/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-use.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-use.html
deleted file mode 100644
index ef12ac4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/p2/package-use.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_07) on Mon Jun 05 12:35:09 CEST 2006 -->
-<TITLE>
-Uses of Package p2
-</TITLE>
-
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="Uses of Package p2";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Uses of Package<br>p2</B></H2>
-</CENTER>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Packages that use <A HREF="../p2/package-summary.html">p2</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><A HREF="#p2"><B>p2</B></A></TD>
-<TD>&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<A NAME="p2"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-Classes in <A HREF="../p2/package-summary.html">p2</A> used by <A HREF="../p2/package-summary.html">p2</A></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><B><A HREF="../p2/class-use/X.html#p2"><B>X</B></A></B>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><B><A HREF="../p2/class-use/Z.html#p2"><B>Z</B></A></B>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../index.html?p2/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/package-list b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/package-list
deleted file mode 100644
index 8bfe472..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/package-list
+++ /dev/null
@@ -1,3 +0,0 @@
-p1.p2

-p1.p2.p3

-p2

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/resources/inherit.gif b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/resources/inherit.gif
deleted file mode 100644
index c814867..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/resources/inherit.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/stylesheet.css b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/stylesheet.css
deleted file mode 100644
index 14c3737..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/doc/stylesheet.css
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Javadoc style sheet */

-

-/* Define colors, fonts and other style attributes here to override the defaults */

-

-/* Page background color */

-body { background-color: #FFFFFF }

-

-/* Headings */

-h1 { font-size: 145% }

-

-/* Table colors */

-.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */

-.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */

-.TableRowColor         { background: #FFFFFF } /* White */

-

-/* Font used in left-hand frame lists */

-.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }

-.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }

-.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }

-

-/* Navigation bar fonts and colors */

-.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */

-.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */

-.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}

-.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}

-

-.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}

-.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/lib/test6.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/lib/test6.jar
deleted file mode 100644
index da96f39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/lib/test6.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/lib/test6src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/lib/test6src.zip
deleted file mode 100644
index 8437e15..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/lib/test6src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/src/p1/p2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/src/p1/p2/X.js
deleted file mode 100644
index 3fc2df5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/src/p1/p2/X.js
+++ /dev/null
@@ -1,68 +0,0 @@
-package p1.p2;

-

-import java.util.Enumeration;

-

-/**

- * Class X javadoc 

- */

-public class X {

-	/**

-	 * Javadoc for initializer

-	 */

-	static {

-	}

-	

-	 /**

-	  * Javadoc for field f 

-	  */

-	public int f;

-	

-	/**

-	 * Javadoc for method foo

-	 */

-	public void foo(int i, long l, String s) {

-	}

-	

-	/**

-	 * Javadoc for member type A

-	 */

-	public class A {

-	}

-

-	/**

-	 * Javadoc for constructor X(int)

-	 */

-	X(int i) {

-	}

-	

-	/**

-	 * Javadoc for f3

-	 */

-	/*

-	 * Not a javadoc comment

-	 */

-	/**

-	 * Real javadoc for f3

-	 */

-	public String f3;

-	

-	public int f2;

-	

-	public void foo2() {

-	}

-	

-	public class B {

-	}

-

-	X() {

-	}

-	

-	{

-	}

-	

-	public void foo(Enumeration enumeration) {

-		if (enumeration.hasMoreElements()) {

-			System.out.println("Has more elements");

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/src/p1/p2/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/src/p1/p2/Y.js
deleted file mode 100644
index 6f3744d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/AttachedJavadocProject/src/p1/p2/Y.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package p1.p2;

-

-public class Y {

-

-	void foo() {

-		new X().foo(1, 1, "");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/.settings/.jsdtscope
deleted file mode 100644
index dce3aa7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/.settings/.jsdtscope
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="lib" path="lib.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/lib.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/lib.jar
deleted file mode 100644
index 599826b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/lib.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/libSrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/libSrc.zip
deleted file mode 100644
index 295f08f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/libSrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectArgument1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectArgument1.js
deleted file mode 100644
index 85d5af7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectArgument1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CorrectArgument1 {

-	void foo(int bar0){

-		bar = 5;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectException1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectException1.js
deleted file mode 100644
index 9cb431c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectException1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CorrectException1  {

-	void foo() throws aaa.bbbz.AnException {

-		

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectException2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectException2.js
deleted file mode 100644
index fd574c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectException2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CorrectException2  {

-	void foo() throws aaa.bbb.AnExceptionz {

-		

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectField1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectField1.js
deleted file mode 100644
index 9153bf6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectField1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CorrectField1 {

-	public int bar0;

-	void foo(){

-		bar = 5;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectField2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectField2.js
deleted file mode 100644
index c5dfb78..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectField2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CorrectField2 {

-	public int bar0;

-	void foo(){

-		CorrectField2 cf = new CorrectField2();

-		cf.bar = 5;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType1.js
deleted file mode 100644
index 1158f40..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CorrectFieldType1 {

-	aaa.dddz.AClass field;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType2.js
deleted file mode 100644
index 0c271ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CorrectFieldType2 {

-	aaa.ddd.AClassz field;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType3.js
deleted file mode 100644
index 218cfae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectFieldType3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import aaa.ddd.*;

-

-public class CorrectFieldType3 {

-	AClassz field;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport1.js
deleted file mode 100644
index 662ef96..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import aaa.dddz.AClass;

-

-public class CorrectImport1 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport2.js
deleted file mode 100644
index a67c83d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import aaa.dddz.*;

-

-public class CorrectImport2 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport3.js
deleted file mode 100644
index 977c7b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectImport3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import aaa.ddd.AClassz;

-

-public class CorrectImport3 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariable1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariable1.js
deleted file mode 100644
index dd1e67b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariable1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CorrectLocalVariable1 {

-	void foo(){

-		int bar0;

-		bar = 5;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariableType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariableType1.js
deleted file mode 100644
index d1a111c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariableType1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CorrectLocalVariableType1 {

-	void foo(){

-		aaa.dddz.AClass local;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariableType2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariableType2.js
deleted file mode 100644
index a1e653a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectLocalVariableType2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CorrectLocalVariableType2 {

-	void foo(){

-		aaa.ddd.AClassz local;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectMethod1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectMethod1.js
deleted file mode 100644
index 78263a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectMethod1.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CorrectMethod1 {

-	public void bar0(){

-	

-	}

-	

-	void foo(){

-		bar();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectMethod2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectMethod2.js
deleted file mode 100644
index 8049033..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectMethod2.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CorrectMethod2 {

-	public void bar0(){

-	

-	}

-	

-	void foo(){

-		CorrectMethod2 cm = new CorrectMethod2();

-		cm.bar();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectReturnType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectReturnType1.js
deleted file mode 100644
index 012b4a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectReturnType1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CorrectReturnType1 {

-	public aaa.dddz.AClass foo(){

-		return new aaa.ddd.AClass();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectReturnType2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectReturnType2.js
deleted file mode 100644
index 3ddc8fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectReturnType2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CorrectReturnType2 {

-	public aaa.ddd.AClassz foo(){

-		return new aaa.ddd.AClass();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperClass1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperClass1.js
deleted file mode 100644
index c218ca1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperClass1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CorrectSuperClass1 extends aaa.dddz.AClass {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperClass2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperClass2.js
deleted file mode 100644
index 9cfc324..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperClass2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CorrectSuperClass2 extends aaa.ddd.AClassz {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperInterface1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperInterface1.js
deleted file mode 100644
index bcc2ecf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperInterface1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CorrectSuperInterface1 implements aaa.bbb.cccz.AListener {

-	public void foo(){}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperInterface2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperInterface2.js
deleted file mode 100644
index b88ab30..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CodeCorrection/src/CorrectSuperInterface2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CorrectSuperInterface2 implements aaa.bbb.ccc.AListenerz {

-	public void foo(){}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/.settings/.jsdtscope
deleted file mode 100644
index b26c690..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/.settings/.jsdtscope
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="CONVERTER_JCL_LIB" sourcepath="CONVERTER_JCL_SRC" rootpath="CONVERTER_JCL_SRCROOT"/>    
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/core/compiler/package.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/core/compiler/package.html
deleted file mode 100644
index b039ea2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/core/compiler/package.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-This package contains compiler associated infrastructure APIs.
-<h2>
-Package Specification</h2>
-
-<p><br>This package contains some compiler tooling APIs, allowing to perform operations at a lower-level 
-than using the JavaModel.
-</body>
-</html>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser1.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser1.rsc
deleted file mode 100644
index 8271e20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser1.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser10.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser10.rsc
deleted file mode 100644
index fcc0acd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser10.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser11.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser11.rsc
deleted file mode 100644
index 4f26c0a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser11.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser12.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser12.rsc
deleted file mode 100644
index 6038286..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser12.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser13.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser13.rsc
deleted file mode 100644
index 430fb0d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser13.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser14.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser14.rsc
deleted file mode 100644
index d85614f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser14.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser15.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser15.rsc
deleted file mode 100644
index f65f970..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser15.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser16.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser16.rsc
deleted file mode 100644
index 8be2e6f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser16.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser17.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser17.rsc
deleted file mode 100644
index d99247e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser17.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser18.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser18.rsc
deleted file mode 100644
index cfaebfe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser18.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser19.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser19.rsc
deleted file mode 100644
index 3e90944..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser19.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser2.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser2.rsc
deleted file mode 100644
index 35fe970..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser2.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser20.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser20.rsc
deleted file mode 100644
index 8d4a2fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser20.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser21.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser21.rsc
deleted file mode 100644
index 3bddccf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser21.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser3.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser3.rsc
deleted file mode 100644
index a42e8f5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser3.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser4.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser4.rsc
deleted file mode 100644
index 5a84572..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser4.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser5.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser5.rsc
deleted file mode 100644
index 445bfcd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser5.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser6.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser6.rsc
deleted file mode 100644
index 191c809..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser6.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser7.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser7.rsc
deleted file mode 100644
index 1c66e3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser7.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser8.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser8.rsc
deleted file mode 100644
index 12470cd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser8.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser9.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser9.rsc
deleted file mode 100644
index 41dc251..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/parser9.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/readableNames.properties b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/readableNames.properties
deleted file mode 100644
index c40125d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/parser/readableNames.properties
+++ /dev/null
@@ -1,306 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-,opt=,
-AbstractMethodDeclaration=AbstractMethodDeclaration
-AdditionalBound1=AdditionalBound1
-AdditionalBound=AdditionalBound
-AdditionalBoundList1=AdditionalBoundList1
-AdditionalBoundList=AdditionalBoundList
-AdditiveExpression=Expression
-AdditiveExpression_NotName=Expression
-AllocationHeader=AllocationHeader
-AndExpression=Expression
-AndExpression_NotName=Expression
-Annotation=Annotation
-AnnotationTypeBody=AnnotationTypeBody
-AnnotationTypeDeclaration=AnnotationTypeDeclaration
-AnnotationTypeDeclarationHeader=AnnotationTypeDeclarationHeader
-AnnotationTypeMemberDeclaration=AnnotationTypeMemberDeclaration
-AnnotationTypeMemberDeclarationHeader=AnnotationTypeMemberDeclarationHeader
-AnnotationTypeMemberDeclarations=AnnotationTypeMemberDeclarations
-AnnotationTypeMemberDeclarationsopt=AnnotationTypeMemberDeclarationsopt
-AnnotationTypeMemberHeaderExtendedDims=AnnotationTypeMemberHeaderExtendedDims
-ArgumentList=ArgumentList
-ArgumentListopt=ArgumentList
-Arguments=Arguments
-Argumentsopt=Argumentsopt
-ArrayAccess=ArrayAccess
-ArrayCreationHeader=ArrayCreationHeader
-ArrayCreationWithArrayInitializer=ArrayCreationWithArrayInitializer
-ArrayCreationWithoutArrayInitializer=ArrayCreationWithoutArrayInitializer
-ArrayInitializer=ArrayInitializer
-ArrayType=ArrayType
-ArrayTypeWithTypeArgumentsName=ArrayTypeWithTypeArgumentsName
-AssertStatement=AssertStatement
-Assignment=Assignment
-AssignmentExpression=Expression
-AssignmentExpression_NotName=Expression
-AssignmentOperator=AssignmentOperator
-Block=Block
-BlockStatement=BlockStatement
-BlockStatements=BlockStatements
-BlockStatementsopt=BlockStatements
-BooleanLiteral=BooleanLiteral
-BreakStatement=BreakStatement
-CastExpression=CastExpression
-CatchClause=CatchClause
-CatchHeader=CatchHeader
-Catches=Catches
-Catchesopt=Catches
-ClassBody=ClassBody
-ClassBodyDeclaration=ClassBodyDeclaration
-ClassBodyDeclarations=ClassBodyDeclarations
-ClassBodyDeclarationsopt=ClassBodyDeclarations
-ClassBodySimpleNameopt=ClassBody
-ClassBodyopt=ClassBody
-ClassDeclaration=ClassDeclaration
-ClassHeader=ClassHeader
-ClassHeaderExtends=ClassHeaderExtends
-ClassHeaderExtendsopt=ClassHeaderExtends
-ClassHeaderImplements=ClassHeaderImplements
-ClassHeaderImplementsopt=ClassHeaderImplements
-ClassHeaderName1=ClassHeaderName
-ClassHeaderName=ClassHeaderName
-ClassInstanceCreationExpression=ClassInstanceCreationExpression
-ClassInstanceCreationExpressionName=ClassInstanceCreationExpressionName
-ClassMemberDeclaration=ClassMemberDeclaration
-ClassOrInterface=Type
-ClassOrInterfaceType=Type
-ClassType=ClassType
-ClassTypeElt=ClassType
-ClassTypeList=ClassTypeList
-CompilationUnit=CompilationUnit
-ConditionalAndExpression=Expression
-ConditionalAndExpression_NotName=Expression
-ConditionalExpression=Expression
-ConditionalExpression_NotName=Expression
-ConditionalOrExpression=Expression
-ConditionalOrExpression_NotName=Expression
-ConstantDeclaration=ConstantDeclaration
-ConstantExpression=ConstantExpression
-ConstructorDeclaration=ConstructorDeclaration
-ConstructorHeader=ConstructorDeclaration
-ConstructorHeaderName=ConstructorHeaderName
-ContinueStatement=ContinueStatement
-DefaultValue=DefaultValue
-DefaultValueopt=DefaultValueopt
-Diet=Diet
-DimWithOrWithOutExpr=Dimension
-DimWithOrWithOutExprs=Dimensions
-Dims=Dimensions
-DimsLoop=Dimensions
-Dimsopt=Dimensions
-DoStatement=DoStatement
-EmptyStatement=EmptyStatement
-EnhancedForStatement=EnhancedForStatement
-EnhancedForStatementHeader=EnhancedForStatementHeader
-EnhancedForStatementNoShortIf=EnhancedForStatementNoShortIf
-EnterAnonymousClassBody=EnterAnonymousClassBody
-EnterAnonymousClassBodySimpleName=EnterAnonymousClassBodySimpleName
-EnterCompilationUnit=EnterCompilationUnit
-EnterVariable=EnterVariable
-EnumBody=EnumBody
-EnumBodyDeclarationsopt=EnumBodyDeclarationsopt
-EnumConstant=EnumConstant
-EnumConstantHeader=EnumConstantHeader
-EnumConstants=EnumConstants
-EnumDeclaration=EnumDeclaration
-EnumDeclarations=EnumDeclarations
-EnumHeader=EnumHeader
-EqualityExpression=Expression
-EqualityExpression_NotName=Expression
-ExclusiveOrExpression=Expression
-ExclusiveOrExpression_NotName=Expression
-ExitTryBlock=ExitTryBlock
-ExitVariableWithInitialization=ExitVariableWithInitialization
-ExitVariableWithoutInitialization=ExitVariableWithoutInitialization
-ExplicitConstructorInvocation=ExplicitConstructorInvocation
-Expression=Expression
-ExpressionStatement=Statement
-Expression_NotName=Expression
-Expressionopt=Expression
-FieldAccess=FieldAccess
-FieldDeclaration=FieldDeclaration
-Finally=Finally
-FloatingPointType=FloatingPointType
-ForInit=ForInit
-ForInitopt=ForInit
-ForStatement=ForStatement
-ForStatementNoShortIf=ForStatement
-ForUpdate=ForUpdate
-ForUpdateopt=ForUpdate
-ForceNoDiet=ForceNoDiet
-FormalParameter=FormalParameter
-FormalParameterList=FormalParameterList
-FormalParameterListopt=FormalParameterList
-GenericMethodDeclaration=GenericMethodDeclaration
-Goal=Goal
-Header=Header
-IfThenElseStatement=IfStatement
-IfThenElseStatementNoShortIf=IfStatement
-IfThenStatement=IfStatement
-ImportDeclaration=ImportDeclaration
-ImportDeclarations=ImportDeclarations
-InclusiveOrExpression=Expression
-InclusiveOrExpression_NotName=Expression
-Initializer=Initializer
-InsideCastExpression=InsideCastExpression
-InsideCastExpressionLL1=InsideCastExpression
-InsideCastExpressionWithQualifiedGenerics=InsideCastExpression
-InstanceofExpression=Expression
-InstanceofExpression_NotName=Expression
-IntegralType=IntegralType
-InterfaceBody=InterfaceBody
-InterfaceDeclaration=InterfaceDeclaration
-InterfaceHeader=InterfaceHeader
-InterfaceHeaderExtends=InterfaceHeaderExtends
-InterfaceHeaderExtendsopt=InterfaceHeaderExtends
-InterfaceHeaderName1=InterfaceHeaderName
-InterfaceHeaderName=InterfaceHeaderName
-InterfaceMemberDeclaration=InterfaceMemberDeclaration
-InterfaceMemberDeclarations=InterfaceMemberDeclarations
-InterfaceMemberDeclarationsopt=InterfaceMemberDeclarations
-InterfaceType=InterfaceType
-InterfaceTypeList=InterfaceTypeList
-InternalCompilationUnit=CompilationUnit
-InvalidArrayInitializerAssignement=ArrayInitializerAssignement
-InvalidConstructorDeclaration=InvalidConstructorDeclaration
-InvalidInterfaceDeclaration=InvalidInterfaceDeclaration
-InvalidMethodDeclaration=InvalidMethodDeclaration
-LabeledStatement=LabeledStatement
-LabeledStatementNoShortIf=LabeledStatement
-Literal=Literal
-LocalVariableDeclaration=LocalVariableDeclaration
-LocalVariableDeclarationStatement=LocalVariableDeclarationStatement
-MarkerAnnotation=MarkerAnnotation
-MemberValue=MemberValue
-MemberValueArrayInitializer=MemberValueArrayInitializer
-MemberValuePair=MemberValuePair
-MemberValuePairs=MemberValuePairs
-MemberValuePairsopt=MemberValuePairsopt
-MemberValues=MemberValues
-MethodBody=MethodBody
-MethodDeclaration=MethodDeclaration
-MethodHeader=MethodDeclaration
-MethodHeaderExtendedDims=MethodHeaderExtendedDims
-MethodHeaderName=MethodHeaderName
-MethodHeaderRightParen=)
-MethodHeaderThrowsClause=MethodHeaderThrowsClause
-MethodHeaderThrowsClauseopt=MethodHeaderThrowsClause
-MethodInvocation=MethodInvocation
-Modifier=Modifier
-Modifiers=Modifiers
-Modifiersopt=Modifiers
-MultiplicativeExpression=Expression
-MultiplicativeExpression_NotName=Expression
-Name=Name
-NestedMethod=NestedMethod
-NestedType=NestedType
-NormalAnnotation=NormalAnnotation
-NumericType=NumericType
-OneDimLoop=Dimension
-OnlySynchronized=OnlySynchronized
-OnlyTypeArguments=TypeArguments
-OnlyTypeArgumentsForCastExpression=TypeArguments
-OpenBlock=OpenBlock
-PackageDeclaration=PackageDeclaration
-PackageDeclarationName=PackageDeclarationName
-PostDecrementExpression=PostDecrementExpression
-PostIncrementExpression=PostIncrementExpression
-PostfixExpression=Expression
-PostfixExpression_NotName=Expression
-PreDecrementExpression=PreDecrementExpression
-PreIncrementExpression=PreIncrementExpression
-Primary=Expression
-PrimaryNoNewArray=Expression
-PrimitiveType=PrimitiveType
-PushLPAREN=(
-PushLeftBrace=PushLeftBrace
-PushModifiers=PushModifiers
-PushPosition=PushPosition
-PushRPAREN=)
-PushRealModifiers=PushModifiers
-QualifiedName=QualifiedName
-ReduceImports=ReduceImports
-ReferenceType1=ReferenceType1
-ReferenceType2=ReferenceType2
-ReferenceType3=ReferenceType3
-ReferenceType=ReferenceType
-RelationalExpression=Expression
-RelationalExpression_NotName=Expression
-RestoreDiet=RestoreDiet
-ReturnStatement=ReturnStatement
-ShiftExpression=Expression
-ShiftExpression_NotName=Expression
-SimpleName=SimpleName
-SingleMemberAnnotation=SingleMemberAnnotation
-SingleStaticImportDeclaration=SingleStaticImportDeclaration
-SingleStaticImportDeclarationName=SingleStaticImportDeclarationName
-SingleTypeImportDeclaration=SingleTypeImportDeclaration
-SingleTypeImportDeclarationName=SingleTypeImportDeclarationName
-Statement=Statement
-StatementExpression=Expression
-StatementExpressionList=StatementExpressionList
-StatementNoShortIf=Statement
-StatementWithoutTrailingSubstatement=Statement
-StaticImportOnDemandDeclaration=StaticImportOnDemandDeclaration
-StaticImportOnDemandDeclarationName=StaticImportOnDemandDeclarationName
-StaticInitializer=StaticInitializer
-StaticOnly=StaticOnly
-SwitchBlock=SwitchBlock
-SwitchBlockStatement=SwitchBlockStatement
-SwitchBlockStatements=SwitchBlockStatements
-SwitchLabel=SwitchLabel
-SwitchLabels=SwitchLabels
-SwitchStatement=SwitchStatement
-SynchronizedStatement=SynchronizedStatement
-ThrowStatement=ThrowStatement
-TryBlock=Block
-TryStatement=TryStatement
-Type=Type
-TypeArgument1=TypeArgument1
-TypeArgument2=TypeArgument2
-TypeArgument3=TypeArgument3
-TypeArgument=TypeArgument
-TypeArgumentList1=TypeArgumentList1
-TypeArgumentList2=TypeArgumentList2
-TypeArgumentList3=TypeArgumentList3
-TypeArgumentList=TypeArgumentList
-TypeArguments=TypeArguments
-TypeDeclaration=TypeDeclaration
-TypeDeclarations=TypeDeclarations
-TypeImportOnDemandDeclaration=TypeImportOnDemandDeclaration
-TypeImportOnDemandDeclarationName=TypeImportOnDemandDeclarationName
-TypeParameter1=TypeParameter1
-TypeParameter=TypeParameter
-TypeParameterHeader=TypeParameter
-TypeParameterList1=TypeParameterList1
-TypeParameterList=TypeParameterList
-TypeParameters=TypeParameters
-UnaryExpression=Expression
-UnaryExpressionNotPlusMinus=Expression
-UnaryExpressionNotPlusMinus_NotName=Expression
-UnaryExpression_NotName=Expression
-VariableDeclarator=VariableDeclarator
-VariableDeclaratorId=VariableDeclaratorId
-VariableDeclarators=VariableDeclarators
-VariableInitializer=VariableInitializer
-VariableInitializers=VariableInitializers
-WhileStatement=WhileStatement
-WhileStatementNoShortIf=WhileStatement
-Wildcard1=Wildcard1
-Wildcard2=Wildcard2
-Wildcard3=Wildcard3
-Wildcard=Wildcard
-WildcardBounds1=WildcardBounds1
-WildcardBounds2=WildcardBounds2
-WildcardBounds3=WildcardBound3
-WildcardBounds=WildcardBounds
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/problem/messages.properties b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/problem/messages.properties
deleted file mode 100644
index e8de195..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/problem/messages.properties
+++ /dev/null
@@ -1,465 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-0 = {0}
-1 = super cannot be used in java.lang.Object
-2 = {0} cannot be resolved to a type
-3 = The type {0} is not visible
-4 = The type {0} is ambiguous
-5 = The type {0} is deprecated
-6 = The nested type {0} cannot be referenced using its binary name
-7 = The private type {0} is never used locally
-
-15 = Incompatible operand types {0} and {1}
-16 = Incompatible conditional operand types {0} and {1}
-17 = Type mismatch: cannot convert from {0} to {1}
-18 = The static member type {0}.{1} should be accessed directly
-
-20 = No enclosing instance of type {0} is accessible to invoke the super constructor. Must define a constructor and explicitly qualify its super constructor invocation with an instance of {0} (e.g. x.super() where x is an instance of {0}).
-21 = No enclosing instance of type {0} is accessible. Must qualify the allocation with an enclosing instance of type {0} (e.g. x.new A() where x is an instance of {0}).
-22 = No enclosing instance of the type {0} is accessible in scope
-23 = Illegal enclosing instance specification for type {0}
-24 = Cannot define static initializer in inner type {0}
-25 = Cannot refer to a non-final variable {0} inside an inner class defined in a different method
-26 = The member interface {0} can only be defined inside a top-level class or interface
-27 = Cannot use an expression of the type {0} as a valid enclosing instance
-28 = No enclosing instance of type {0} is available due to some intermediate constructor invocation
-29 = An anonymous class cannot subclass the final class {0}
-
-50 = {0} cannot be resolved
-51 = The local variable {0} may not have been initialized
-52 = void is an invalid type for the variable {0}
-53 = An array of void is an invalid type for the variable {0}
-54 = An array of void is an invalid type
-55 = Duplicate local variable {0}
-56 = Duplicate parameter {0}
-57 = The final local variable {0} may already have been assigned
-58 = The final local variable {0} cannot be assigned. It must be blank and not using a compound assignment
-
-60 = The final local variable {0} cannot be assigned, since it is defined in an enclosing type
-61 = The local variable {0} is never read
-62 = The parameter {0} is never read
-63 = The code of method {0}({1}) is exceeding the 65535 bytes limit
-64 = The code for the static initializer is exceeding the 65535 bytes limit
-65 = Too many parameters, parameter {0} is exceeding the limit of 255 words eligible for method parameters
-66 = Too many local variables, local variable {0} is exceeding the limit of 65535 words eligible for method local variables
-67 = Too many synthetic parameters, emulated parameter {0} is exceeding the limit of 255 words eligible for method parameters
-68 = Too many array dimensions. Maximum is 255
-69 = The code of constructor {0}({1}) is exceeding the 65535 bytes limit
-70 = {0} cannot be resolved or is not a field
-71 = The field {0} is not visible
-72 = The field {0} is ambiguous
-73 = The field {0}.{1} is deprecated
-74 = Cannot make a static reference to the non-static field {0}
-75 = Cannot reference a field before it is defined
-76 = The static field {0}.{1} should be accessed in a static way
-77 = The private field {0}.{1} is never read locally
-78 = The static field {0}.{1} should be accessed directly
-79 = Unqualified access to the field {0}.{1} 
-80 = The final field {0}.{1} cannot be assigned. It must be blank in this context, not qualified and not in compound assignment
-81 = The blank final field {0} may not have been initialized
-82 = The final field {0} may already have been assigned
-
-90 = The local variable {0} is hiding another local variable defined in an enclosing type scope
-91 = The local variable {0} is hiding a field from type {1}
-92 = The field {0}.{1} is hiding another local variable defined in an enclosing type scope
-93 = The field {0}.{1} is hiding a field from type {2}
-94 = The parameter {0} is hiding another local variable defined in an enclosing type scope
-95 = The parameter {0} is hiding a field from type {1}
-96 = The serializable class {0} does not declare a static final serialVersionUID field of type long
-
-100 = The method {1}({2}) is undefined for the type {0}
-101 = The method {1}({2}) from the type {0} is not visible
-102 = The method {1}({2}) is ambiguous for the type {0}
-103 = The method {1}({2}) from the type {0} is deprecated
-104 = Cannot directly invoke the abstract method {1}({2}) for the type {0}
-105 = Void methods cannot return a value
-106 = Cannot return a void result
-107 = This method requires a body instead of a semicolon
-108 = This method must return a result of type {0}
-
-110 = This method has a constructor name
-111 = Return type for the method is missing
-112 = Native methods do not specify a body
-113 = Abstract methods do not specify a body
-114 = Cannot invoke {1}({2}) on the primitive type {0}
-115 = The method {1}({2}) in the type {0} is not applicable for the arguments ({3})
-116 = Cannot invoke {1}({2}) on the array type {0}
-117 = The static method {1}({2}) from the type {0} should be accessed in a static way
-118 = The private method {1}({2}) from the type {0} is never used locally
-119 = The static method {1}({2}) from the type {0} should be accessed directly 
-
-130 = The constructor {0}({1}) is undefined
-131 = The constructor {0}({1}) is not visible
-132 = The constructor {0}({1}) is ambiguous
-133 = The constructor {0}({1}) is deprecated
-134 = The private constructor {0}({1}) is never used locally
-135 = Cannot refer to an instance field {0} while explicitly invoking a constructor
-136 = Cannot refer to an instance method while explicitly invoking a constructor
-137 = Recursive constructor invocation {0}({1})
-138 = Cannot refer to ''this'' nor ''super'' while explicitly invoking a constructor
-139 = Constructor call must be the first statement in a constructor
-140 = Implicit super constructor {0}({1}) is undefined for default constructor. Must define an explicit constructor
-141 = Implicit super constructor {0}({1}) is not visible for default constructor. Must define an explicit constructor
-142 = Implicit super constructor {0}({1}) is ambiguous for default constructor. Must define an explicit constructor
-143 = Implicit super constructor {0}({1}) is undefined. Must explicitly invoke another constructor
-144 = Implicit super constructor {0}({1}) is not visible. Must explicitly invoke another constructor
-145 = Implicit super constructor {0}({1}) is ambiguous. Must explicitly invoke another constructor
-146 = Default constructor cannot handle exception type {0} thrown by implicit super constructor. Must define an explicit constructor
-147 = Unhandled exception type {0} thrown by implicit super constructor
-
-150 = The type of the expression must be an array type but it resolved to {0}
-151 = Must explicitly convert the char[] to a String
-152 = String constant is exceeding the limit of 65535 bytes of UTF8 encoding
-153 = case expressions must be constant expressions
-154 = The literal {1} of type {0} is out of range 
-156 = Cannot cast from {0} to {1}
-157 = Cannot instantiate the type {0}, since it is not a concrete class
-158 = Cannot define dimension expressions when an array initializer is provided
-159 = Variable must provide either dimension expressions or an array initializer
-160 = The operator {0} is undefined for the argument type(s) {1}
-161 = Unreachable code
-162 = Cannot return from within an initializer
-163 = Initializer does not complete normally
-164 = Expression must return a value
-165 = Unreachable catch block for {0}. Only more specific exceptions are thrown and handled by previous catch block(s).
-166 = The default case is already defined
-167 = Unreachable catch block for {0}. This exception is never thrown from the try statement body
-168 = Unhandled exception type {0}
-169 = case constant must be a char, byte, short, or int instead of {0}
-170 = Duplicate case
-171 = Duplicate label {0}
-172 = break cannot be used outside of a loop or a switch
-173 = continue cannot be used outside of a loop
-174 = The label {0} is missing
-175 = {0} is not a valid type''s argument for the synchronized statement
-176 = null is not a valid argument for the synchronized statement
-177 = Cannot throw null
-178 = The assignment to variable {0} has no effect
-179 = Possible accidental assignment in place of a comparison. A condition expression should not be reduced to an assignment
-180 = Unnecessary semicolon
-181 = Unnecessary cast to type {1} for expression of type {0}
-182 = Unnecessary cast to type {1} for expression of type {0}. It is already compatible with the argument type {2}
-183 = The expression of type {0} is already an instance of type {1}
-184 = finally block does not complete normally
-185 = The declared exception {3} is not actually thrown by the method {1}({2}) from type {0}
-186 = The declared exception {2} is not actually thrown by the constructor {0}({1})
-187 = Unreachable catch block for {0}. It is already handled by the catch block for {1}
-188 = Empty control-flow statement
-189 = Statement unnecessarily nested within else clause. The corresponding then clause does not complete normally
-
-190 = Read access to enclosing field {0}.{1} is emulated by a synthetic accessor method. Increasing its visibility will improve your performance
-191 = Write access to enclosing field {0}.{1} is emulated by a synthetic accessor method. Increasing its visibility will improve your performance
-192 = Access to enclosing method {1}({2}) from the type {0} is emulated by a synthetic accessor method. Increasing its visibility will improve your performance
-193 = Access to enclosing constructor {0}({1}) is emulated by a synthetic accessor method. Increasing its visibility will improve your performance
-195 = The method {1} is defined in an inherited type and an enclosing scope
-196 = The field {0} is defined in an inherited type and an enclosing scope 
-197 = The type {0} is defined in an inherited type and an enclosing scope
-198 = Cannot allocate the member type {0} using its compound name when qualified by an enclosing instance. The member type name is resolved relatively to the qualifying instance type
-
-200 = Cannot use {0} in a static context 
-201 = Cannot make a static reference to the non-static method {1}({2}) from the type {0}
-202 = Cannot specify an array dimension after an empty dimension
-203 = Invalid cast type expression
-204 = Syntax error on token "{0}", {1} expected
-205 = Syntax error on token "{0}", no accurate correction available
-206 = Invalid argument to operation ++/--
-207 = Interfaces cannot have constructors
-208 = Array constants can only be used in initializers
-209 = Syntax error on keyword "{0}"; {1} expected
-210 = Syntax error on keyword "{0}", no accurate correction available
-
-220 = Unmatched bracket
-221 = The primitive type {0} of {1} does not have a field {2}
-222 = Invalid expression as statement
-223 = The left-hand side of an assignment must be a variable
-224 = Missing semicolon
-225 = Invalid parenthesized expression
-
-230 = Syntax error on token "{0}", {1} expected before this token
-231 = Syntax error on token "{0}", {1} expected after this token
-232 = Syntax error on token "{0}", delete this token
-233 = Syntax error on tokens, delete these tokens
-234 = Syntax error on tokens, they can be merge to form {0}
-235 = Syntax error on token "{0}", invalid {1}
-236 = Syntax error on token(s), misplaced construct(s)
-237 = Syntax error on tokens, {0} expected instead
-238 = Syntax error on tokens, no accurate correction available
-239 = Syntax error, unexpected {0}
-240 = Syntax error, insert "{0}" to complete {1}
-241 = Syntax error, insert "{0}" to complete scope
-242 = Syntax error, insert "{0}" to complete phrase
-
-250 = Unexpected end of file
-251 = Invalid hex literal number
-252 = Invalid octal literal number
-253 = Invalid character constant
-254 = Invalid escape sequence (valid ones are  \\b  \\t  \\n  \\f  \\r  \\"  \\''  \\\\ )
-255 = Invalid input
-256 = Invalid unicode
-257 = Invalid float literal number
-258 = Null source string
-259 = String literal is not properly closed by a double-quote
-260 = Unexpected end of comment
-261 = Non-externalized string literal; it should be followed by //$NON-NLS-<n>$
-262 = Invalid digit (valid ones are 0..9)
-
-300 = The interface {0} cannot define an initializer
-301 = Duplicate modifier for the type {0}
-302 = Illegal modifier for the class {0}; only public, abstract & final are permitted
-303 = Illegal modifier for the interface {0}; only public & abstract are permitted
-304 = Illegal modifier for the member class {0}; only public, protected, private, static, abstract & final are permitted
-305 = Illegal modifier for the member interface {0}; only public, protected, private, static & abstract are permitted
-306 = Illegal modifier for the local class {0}; only one of abstract or final is permitted
-307 = Access to the type {0} is restricted as specified by {1}
-308 = The class {0} can be either abstract or final, not both
-309 = The interface member type {0} can only be public
-310 = The member type {0} can only set one of public / protected / private
-311 = The member type {0} cannot be declared static; static types can only be declared in static or top level types
-312 = The interface {0} cannot be the superclass of {1}; a superclass must be a class
-313 = The type {1} cannot subclass the final class {0}
-314 = Duplicate interface {0} for the type {1}
-315 = The class {0} cannot be a superinterface of {1}; a superinterface must be an interface
-316 = Cycle detected: the type {0} cannot extend/implement itself or one of its own member types
-317 = A cycle exists in the type hierarchy between {0} and {1}
-318 = Nested type {0} hides an enclosing type
-319 = Duplicate nested type {0}
-320 = Cannot throw the type {0}
-321 = The package {0} collides with a type
-322 = The type {1} collides with a package
-323 = The type {1} is already defined
-324 = The type {0} cannot be resolved. It is indirectly referenced from required .class files
-325 = The public type {1} must be defined in its own file
-326 = A package must be specified in {0} or a default package created
-327 = The hierarchy of the type {0} is inconsistent
-328 = The declared package does not match the expected package {0}
-329 = The type java.lang.Object cannot have a superclass or superinterfaces
-
-###[obsolete] 330 = {0} cannot be resolved or is not a valid superclass
-###[obsolete] 331 = Superclass {0} is not visible
-###[obsolete] 332 = Superclass {0} is ambiguous
-###[obsolete] 333 = Superclass {0} cannot be referenced using its binary name
-###[obsolete] 334 = Superclass {0} is defined in an inherited type and an enclosing scope
-###[obsolete] 335 = {0} cannot be resolved or is not a valid superinterface
-###[obsolete] 336 = Superinterface {0} is not visible
-###[obsolete] 337 = Superinterface {0} is ambiguous
-###[obsolete] 338 = Superinterface {0} cannot be referenced using its binary name
-###[obsolete] 339 = Superinterface {0} is defined in an inherited type and an enclosing scope
-
-340 = Duplicate field {0}.{1}
-341 = Duplicate modifier for the field {0}
-342 = Illegal modifier for the field {0}; only public, protected, private, static, final, transient & volatile are permitted
-343 = Illegal modifier for the interface field {0}; only public, static & final are permitted
-344 = The field {0} can only set one of public / protected / private
-345 = The field {0} can be either final or volatile, not both
-346 = The field {0} cannot be declared static; static fields can only be declared in static or top level types
-
-###[obsolete] 350 = {2} cannot be resolved (or is not a valid type) for the field {1}.{0}
-###[obsolete] 351 = The type {2} is not visible for the field {1}.{0}
-###[obsolete] 352 = The type {2} is ambiguous for the field {1}.{0}
-###[obsolete] 353 = The field type {2} cannot be referenced using its binary name
-###[obsolete] 354 = The field type {2} is defined in an inherited type and an enclosing scope
-
-355 = Duplicate method {0}({2}) in type {1}
-356 = Illegal modifier for parameter {0}; only final is permitted
-357 = Duplicate modifier for the method {1} in type {0}
-358 = Illegal modifier for the method {1} in type {0}
-359 = Illegal modifier for the interface method {1} in type {0}; only public & abstract are permitted
-360 = The method {1} in type {0} can only set one of public / protected / private
-361 = The method {1} cannot be declared static; static methods can only be declared in a static or top level type
-362 = The abstract method {1} in type {0} can only set a visibility modifier, one of public or protected
-363 = The abstract method {1} in type {0} can only be defined by an abstract class
-364 = void is an invalid type for the parameter {1} of the method {0}
-365 = An array of void is an invalid type for the parameter {1} of the method {0}
-366 = An array of void is an invalid return type for the method {0}
-367 = The native method {1} cannot also be declared strictfp
-368 = Duplicate modifier for parameter {0}
-
-###[obsolete] 370 = {2} cannot be resolved (or is not a valid type) for the parameter {1} of the method {0}
-###[obsolete] 371 = The type {2} is not visible for the parameter {1} of the method {0}
-###[obsolete] 372 = The type {2} is ambiguous for the parameter {1} of the method {0}
-###[obsolete] 373 = The parameter type {2} cannot be referenced using its binary name
-###[obsolete] 374 = The parameter type {2} is defined in an inherited type and an enclosing scope
-###[obsolete] 375 = {1} cannot be resolved (or is not an exception type) for the method {0}
-###[obsolete] 376 = The exception type {1} is not visible for the method {0}
-###[obsolete] 377 = The exception type {1} is ambiguous for the method {0}
-###[obsolete] 378 = The exception type {1} cannot be referenced using its binary name
-###[obsolete] 379 = The exception type {1} is defined in an inherited type and an enclosing scope
-###[obsolete] 380 = {1} cannot be resolved (or is not a valid return type) for the method {0}
-###[obsolete] 381 = The return type {1} is not visible for the method {0}
-###[obsolete] 382 = The return type {1} is ambiguous for the method {0}
-###[obsolete] 383 = The return type {1} cannot be referenced using its binary name
-###[obsolete] 384 = The return type {1} is defined in an inherited type and an enclosing scope
-
-385 = The import {0} conflicts with a type defined in the same file
-386 = The import {0} collides with another imported type
-387 = Only a type can be imported. {0} resolves to a package
-388 = The import {0} is never used
-390 = The import {0} cannot be resolved
-
-###[obsolete] 391 = The imported type {0} is not visible
-###[obsolete] 392 = The imported type {0} is ambiguous
-###[obsolete] 393 = The imported type {0} cannot be referenced using its binary name
-###[obsolete] 394 = The imported type {0} is defined in an inherited type and an enclosing scope
-
-395 = Duplicate modifier for the variable {0}
-396 = Illegal modifier for the variable {0}; only final is permitted
-
-400 = Class must implement the inherited abstract method {0}
-401 = Cannot override the final method from {0}
-402 = Exception {0} is not compatible with throws clause in {1}
-403 = Exception {0} in throws clause of {1} is not compatible with {2}
-404 = The return type is incompatible with {0}
-405 = The inherited method {0} cannot hide the public abstract method in {1}
-406 = This instance method cannot override the static method from {0}
-407 = This static method cannot hide the instance method from {0}
-408 = The static method {0} conflicts with the abstract method in {1}
-409 = Cannot reduce the visibility of the inherited method from {0}
-410 = The method {0} does not override the inherited method from {1} since it is private to a different package.
-411 = This class must implement the inherited abstract method {1}, but cannot override it since it is not visible from {0}. Either make the type abstract or make the inherited method visible.
-412 = The method {0} overrides a deprecated method from {1}
-413 = The return type is incompatible with {0}, thus this interface cannot be implemented
-414 = Exception {0} is not compatible with throws clause in {1}, thus this interface cannot be implemented
-
-420 = Code snippet support cannot find the class {0}
-421 = Code snippet support cannot find the method {0}.{1}({2}) 
-422 = super cannot be used in the code snippet code
-
-430 = Too many constants, the constant pool for {0} would exceed 65536 entries
-431 = The type generates a string that requires more than 65535 bytes to encode in Utf8 format in the constant pool
-
-432 = Too many fields for type {0}. Maximum is 65535
-433 = Too many methods for type {0}. Maximum is 65535
-
-440 = ''assert'' should not be used as an identifier, since it is a reserved keyword from source level 1.4 on
-441 = ''enum'' should not be used as an identifier, since it is a reserved keyword from source level 1.5 on
-
-450 = {0} {1}
-
-460 = Empty block should be documented
-
-### DOC 
-470 = Unexpected tag
-471 = Missing tag for parameter {0}
-472 = Missing parameter name
-473 = Duplicate tag for parameter
-474 = Parameter {0} is not declared
-475 = Missing tag for return type
-476 = Duplicate tag for return type
-477 = Missing tag for declared exception {0}
-478 = Missing class name
-479 = Invalid class name
-480 = Duplicate tag for thrown exception
-481 = Exception {0} is not declared
-482 = Missing reference
-483 = Invalid reference
-484 = Malformed link reference
-485 = Invalid parameters declaration
-486 = Missing comment for {0} declaration
-487 = Invalid tag
-488 = {0} cannot be resolved or is not a field
-489 = The field {0} is not visible
-490 = The field {0} is ambiguous
-491 = The field {0}.{1} is deprecated
-492 = The constructor {0}({1}) is undefined
-493 = The constructor {0}({1}) is not visible
-494 = The constructor {0}({1}) is ambiguous
-495 = The constructor {0}({1}) is deprecated
-496 = The method {1}({2}) is undefined for the type {0}
-497 = The method {1}({2}) from the type {0} is not visible
-498 = The method {1}({2}) is ambiguous for the type {0}
-499 = The method {1}({2}) from the type {0} is deprecated
-500 = Cannot invoke {1}({2}) on the primitive type {0}
-501 = The method {1}({2}) in the type {0} is not applicable for the arguments ({3})
-502 = Cannot invoke {1}({2}) on the array type {0}
-503 = {0} cannot be resolved to a type
-504 = The type {0} is not visible
-505 = The type {0} is ambiguous
-506 = The type {0} is deprecated
-507 = The nested type {0} cannot be referenced using its binary name
-508 = The method {1} is defined in an inherited type and an enclosing scope
-509 = The field {0} is defined in an inherited type and an enclosing scope 
-510 = The type {0} is defined in an inherited type and an enclosing scope
-511 = {0} is an ambiguous method reference or is not a field
-512 = Missing closing brace for inline tag
-513 = Missing #: "{0}"
-514 = Malformed reference (missing end space separator)
-515 = Missing return type description
-516 = Only static field reference is allowed for @value tag
-517 = Unexpected text
-519 = Javadoc: 
-
-### GENERICS
-520 = Duplicate type parameter {0}
-521 = Cannot refer to the type parameter {0} as a supertype
-522 = Cannot make a static reference to the type parameter {0}
-523 = The type java.lang.Object cannot be declared as a generic
-524 = The type {0} is not generic; it cannot be parameterized with arguments <{1}>
-525 = Incorrect number of arguments for type {0}; it cannot be parameterized with arguments <{1}>
-526 = Bound mismatch: The type {0} is not a valid substitute for the bounded parameter <{2} extends {3}> of the type {1}
-527 = Method {0}({2}) has the same erasure {0}({3}) as another method in type {1}
-528 = Illegal forward reference to type parameter {0}
-529 = The type {0} is not an interface; it cannot be specified as a bounded parameter
-530 = Unsafe type operation: Should not invoke the constructor {0}({1}) of raw type {0}. References to generic type {2} should be parameterized
-531 = Unsafe type operation: Should not invoke the method {0}({1}) of raw type {2}. References to generic type {3} should be parameterized
-532 = Unsafe type operation: Should not convert expression of raw type {0} to type {1}. References to generic type {2} should be parameterized
-533 = Cannot use the type parameter {0} in a catch block
-534 = Cannot use the parameterized type {0} either in catch block or throws clause
-535 = Cannot create a generic array of {0}
-536 = Unsafe type operation: Should not assign expression of type {0} to the field {1} of raw type {2}. References to generic type {3} should be parameterized
-537 = The type parameter {0} should not be bounded by the final type {1}. Final types cannot be further extended
-538 = Inconsistent classfile encountered: The undefined type parameter {0} is referenced from within {1}
-539 = The interface {2} cannot be implemented simultaneously with different arguments: {0} and {1}
-540 = Bound mismatch: The constructor {0}({1}) of type {2} is not applicable for the arguments ({3}). The wildcard parameter {5} has no lower bound, and may actually be more restrictive than argument {4}
-541 = Bound mismatch: The method {0}({1}) of type {2} is not applicable for the arguments ({3}). The wildcard parameter {5} has no lower bound, and may actually be more restrictive than argument {4}
-542 = Bound mismatch: Cannot assign expression of type {0} to wildcard type {1}. The wildcard type has no lower bound, and may actually be more restrictive than expression type
-543 = Bound mismatch: The generic method {0}({1}) of type {2} is not applicable for the arguments ({3}) since the type {4} is not a valid substitute for the bounded parameter <{5} extends {6}>
-544 = Bound mismatch: The generic constructor {0}({1}) of type {2} is not applicable for the arguments ({3}) since the type {4} is not a valid substitute for the bounded parameter <{5} extends {6}>
-545 = Unsafe type operation: The cast from {0} to parameterized type {1} will not check conformance of type arguments at runtime
-546 = Cannot perform instanceof check against parameterized type {0}. Use instead its raw form {1} since generic type information will be erased at runtime
-547 = Cannot perform instanceof check against type parameter {0}. Use instead its erasure {1} since generic type information will be erased at runtime
-548 = The method {0}({1}) of type {2} is not generic; it cannot be parameterized with arguments <{3}>
-549 = Incorrect number of type arguments for generic method <{3}>{0}({1}) of type {2}; it cannot be parameterized with arguments <{4}>
-550 = The parameterized method <{3}>{0}({1}) of type {2} is not applicable for the arguments ({4})
-551 = The constructor {0}({1}) of type {2} is not generic; it cannot be parameterized with arguments <{3}>
-552 = Incorrect number of type arguments for generic constructor <{3}>{0}({1}) of type {2}; it cannot be parameterized with arguments <{4}>
-553 = The parameterized constructor <{3}>{0}({1}) of type {2} is not applicable for the arguments ({4})
-554 = The method {0}({1}) of raw type {2} is no more generic; it cannot be parameterized with arguments <{3}>
-555 = The constructor {0}({1}) of raw type {2} is no more generic; it cannot be parameterized with arguments <{3}>
-556 = The type {1} cannot extend or implement {0}. A supertype may not specify any wildcard
-557 = The generic class {0} may not subclass java.lang.Throwable
-558 = Illegal class literal for the type parameter {0}
-559 = Unsafe type operation: The return type {0} of the method {1}({2}) of type {3} needs unchecked conversion to conform to the return type {4} of inherited method
-560 = Name clash : The method {0}({1}) of type {2} has the same erasure as {0}({3}) of type {4} but does not override it
-561 = The member type {0}<{1}> must be qualified with a parameterized type, since it is not static
-562 = The member type {0} must be parameterized, since it is qualified with a parameterized type
-563 = The member type {0} cannot be qualified with a parameterized type, since it is static. Remove arguments from qualifying type {1}
-
-### FOREACH
-580 = Type mismatch: cannot convert from element type {0} to {1}
-581 = Can only iterate over an array or an instance of java.lang.Iterable
-
-### SOURCE LEVEL
-590 = Syntax error, type parameters are only available if source level is 1.5
-591 = Syntax error, static imports are only available if source level is 1.5
-592 = Syntax error, ''for each'' statements are only available if source level is 1.5
-593 = Syntax error, parameterized types are only available if source level is 1.5
-594 = Syntax error, enum declarations are only available if source level is 1.5
-595 = Syntax error, varargs are only available if source level is 1.5
-596 = Syntax error, annotations are only available if source level is 1.5
-597 = Syntax error, annotation declarations are only available if source level is 1.5
-
-### ANNOTATIONS
-600 = This annotation type member declaration has a constructor name
-601 = Extended dimensions are illegal in an annotation type member declaration
-602 = Package annotations must be in file package-info.java
-
-### CORRUPTED BINARIES
-700 = The class file {0} contains a signature ''{1}'' ill-formed at position {2}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/util/messages.properties b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/util/messages.properties
deleted file mode 100644
index d68d9d1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jdt/internal/compiler/util/messages.properties
+++ /dev/null
@@ -1,66 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-### Eclipse Java Core Compiler messages.
-
-### compilation
-compilation.unresolvedProblem =  Unresolved compilation problem: \n
-compilation.unresolvedProblems = Unresolved compilation problems: \n
-compilation.request    = [parsing    {2} - #{0}/{1}]
-compilation.loadBinary = [reading    {0}.class]
-compilation.process    = [analyzing  {2} - #{0}/{1}]
-compilation.write      = [writing    {1} - #{0}]
-compilation.done       = [completed  {2} - #{0}/{1}]
-compilation.units      = [{0} units compiled]
-compilation.unit       = [{0} unit compiled]
-compilation.internalError = Internal compiler error
-
-### output
-output.isFile =  The outDir is a file : {0}
-output.isFileNotDirectory = The outDir is a file not a directory.
-output.dirName =  The output dir name is : {0}
-output.notValidAll =  The outDir is not a valid directory name. All the directories cannot be created.
-output.fileName =  file name : {0}
-output.notValid = The outDir is not a valid directory name. The directory cannot be created.
-
-### problem
-problem.noSourceInformation = \n!! no source information available !!
-problem.atLine = (at line {0})
-
-### abort
-abort.invalidAttribute = SANITY CHECK: Invalid attribute for local variable {0}
-abort.missingCode = Missing code implementation in the compiler
-abort.againstSourceModel = Cannot compile against source model {0} issued from {1}
-
-### accept
-accept.cannot = Cannot accept the compilation unit: 
-
-### parser
-parser.incorrectPath = The path for the javadcl.java file is incorrect
-parser.moveFiles = MOVE FILES IN THE Runtime DIRECTORY OF Parser.class
-parser.syntaxRecovery = SYNTAX RECOVERY
-parser.regularParse = REGULAR PARSE
-parser.missingFile = missing file {0}
-parser.corruptedFile = corrupted file {0}
-parser.endOfFile = end of file
-parser.endOfConstructor = end of constructor
-parser.endOfMethod = end of method
-parser.endOfInitializer = end of initializer
-
-### ast
-ast.missingCode = Missing code gen implementation
-
-### constant
-constant.cannotCastedInto =  {0} constant cannot be casted into {1}
-constant.cannotConvertedTo = {0} constant cannot be converted to {1}
-
-### miscellaneous
-error.undefinedTypeVariable = Undefined type variable: {0}
-error.missingBound = The class files for {0} and {1} are out of sync
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/CharOperation.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/CharOperation.js
deleted file mode 100644
index 7b6ae22..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/CharOperation.js
+++ /dev/null
@@ -1,2747 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.core.compiler;

-

-/**

- * This class is a collection of helper methods to manipulate char arrays.

- * 

- * @since 2.1

- */

-public final class CharOperation {

-

-	/**

-	 * Constant for an empty char array

-	 */

-	public static final char[] NO_CHAR = new char[0];

-

-	/**

-	 * Constant for an empty char array with two dimensions.

-	 */

-	public static final char[][] NO_CHAR_CHAR = new char[0][];

-	

-	/**

-	 * Constant for an empty String array.

-	 * @since 3.1

-	 */

-	public static final String[] NO_STRINGS = new String[0];

-	

-	/**

-	 * Answers a new array with appending the suffix character at the end of the array.

-	 * <br>

-	 * <br>

-	 * For example:<br>

-	 * <ol>

-	 * <li><pre>

-	 *    array = { 'a', 'b' }

-	 *    suffix = 'c'

-	 *    => result = { 'a', 'b' , 'c' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = null

-	 *    suffix = 'c'

-	 *    => result = { 'c' }

-	 * </pre></li>

-	 * </ol>

-	 * 

-	 * @param array the array that is concanated with the suffix character

-	 * @param suffix the suffix character

-	 * @return the new array

-	 */

-	public static final char[] append(char[] array, char suffix) {

-		if (array == null)

-			return new char[] { suffix };

-		int length = array.length;

-		System.arraycopy(array, 0, array = new char[length + 1], 0, length);

-		array[length] = suffix;

-		return array;

-	}

-	/**

-	 * Append the given subarray to the target array starting at the given index in the target array.

-	 * The start of the subarray is inclusive, the end is exclusive.

-	 * Answers a new target array if it needs to grow, otherwise answers the same target array.

-	 * <br>

-	 * For example:<br>

-	 * <ol>

-	 * <li><pre>

-	 *    target = { 'a', 'b', '0' }

-	 *    index = 2

-	 *    array = { 'c', 'd' }

-	 *    start = 0

-	 *    end = 1

-	 *    => result = { 'a', 'b' , 'c' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    target = { 'a', 'b' }

-	 *    index = 2

-	 *    array = { 'c', 'd' }

-	 *    start = 0

-	 *    end = 1

-	 *    => result = { 'a', 'b' , 'c', '0', '0' , '0' } (new array)

-	 * </pre></li>

-	 * <li><pre>

-	 *    target = { 'a', 'b', 'c' }

-	 *    index = 1

-	 *    array = { 'c', 'd', 'e', 'f' }

-	 *    start = 1

-	 *    end = 4

-	 *    => result = { 'a', 'd' , 'e', 'f', '0', '0', '0', '0' } (new array)

-	 * </pre></li>

-	 * </ol>

-	 * 

-	 * @param target the given target

-	 * @param index the given index

-	 * @param array the given array

-	 * @param start the given start index

-	 * @param end the given end index

-	 * 

-	 * @return the new array

-	 * @throws NullPointerException if the target array is null

-	 */

-	public static final char[] append(char[] target, int index, char[] array, int start, int end) {

-		int targetLength = target.length;

-		int subLength = end-start;

-		int newTargetLength = subLength+index;

-		if (newTargetLength > targetLength) {

-			System.arraycopy(target, 0, target = new char[newTargetLength*2], 0, index);

-		}

-		System.arraycopy(array, start, target, index, subLength);

-		return target;

-	}

-

-	/**

-	 * Answers the concatenation of the two arrays. It answers null if the two arrays are null.

-	 * If the first array is null, then the second array is returned.

-	 * If the second array is null, then the first array is returned.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = null

-	 *    => result = null

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { ' a' } }

-	 *    second = null

-	 *    => result = { { ' a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = null

-	 *    second = { { ' a' } }

-	 *    => result = { { ' a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { ' b' } }

-	 *    second = { { ' a' } }

-	 *    => result = { { ' b' }, { ' a' } }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param first the first array to concatenate

-	 * @param second the second array to concatenate

-	 * @return the concatenation of the two arrays, or null if the two arrays are null.

-	 */

-	public static final char[][] arrayConcat(char[][] first, char[][] second) {

-		if (first == null)

-			return second;

-		if (second == null)

-			return first;

-

-		int length1 = first.length;

-		int length2 = second.length;

-		char[][] result = new char[length1 + length2][];

-		System.arraycopy(first, 0, result, 0, length1);

-		System.arraycopy(second, 0, result, length1, length2);

-		return result;

-	}

-	/**

-	 * Returns the char arrays as an array of Strings

-	 * 

-	 * @param charArrays the char array to convert

-	 * @return the char arrays as an array of Strings or null if the given char arrays is null.

-	 * @since 3.0

-	 */

-	public static String[] charArrayToStringArray(char[][] charArrays) {

-		if (charArrays == null)

-			return null;

-		int length = charArrays.length;

-		if (length == 0)

-			return NO_STRINGS;

-		String[] strings= new String[length];

-		for (int i= 0; i < length; i++)

-			strings[i]= new String(charArrays[i]);

-		return strings;

-	}

-	/**

-	 * Returns the char array as a String

-

-	 * @param charArray the char array to convert

-	 * @return the char array as a String or null if the given char array is null.

-	 * @since 3.0

-	 */

-	public static String charToString(char[] charArray) {

-		if (charArray == null) return null;

-		return new String(charArray);

-	}

-

-	/**

-	 * Answers a new array adding the second array at the end of first array.

-	 * It answers null if the first and second are null.

-	 * If the first array is null, then a new array char[][] is created with second.

-	 * If the second array is null, then the first array is returned.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = { 'a' }

-	 *    => result = { { ' a' } }

-	 * </pre>

-	 * <li><pre>

-	 *    first = { { ' a' } }

-	 *    second = null

-	 *    => result = { { ' a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { ' a' } }

-	 *    second = { ' b' }

-	 *    => result = { { ' a' } , { ' b' } }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param first the first array to concatenate

-	 * @param second the array to add at the end of the first array

-	 * @return a new array adding the second array at the end of first array, or null if the two arrays are null.

-	 */

-	public static final char[][] arrayConcat(char[][] first, char[] second) {

-		if (second == null)

-			return first;

-		if (first == null)

-			return new char[][] { second };

-

-		int length = first.length;

-		char[][] result = new char[length + 1][];

-		System.arraycopy(first, 0, result, 0, length);

-		result[length] = second;

-		return result;

-	}

-

-	/**

-	 * Compares the contents of the two arrays array and prefix. Returns

-	 * <ul>

-	 * <li>zero if the array starts with the prefix contents</li>

-	 * <li>the difference between the first two characters that are not equal </li>

-	 * <li>one if array length is lower than the prefix length and that the prefix starts with the 

-	 * array contents.</li>

-	 * </ul>

-	 * <p>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    array = null

-	 *    prefix = null

-	 *    => result = NullPointerException

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a', 'b', 'c', 'd', 'e' }

-	 *    prefix = { 'a', 'b', 'c'}

-	 *    => result = 0

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a', 'b', 'c', 'd', 'e' }

-	 *    prefix = { 'a', 'B', 'c'}

-	 *    => result = 32

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'd', 'b', 'c', 'd', 'e' }

-	 *    prefix = { 'a', 'b', 'c'}

-	 *    => result = 3

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a', 'b', 'c', 'd', 'e' }

-	 *    prefix = { 'd', 'b', 'c'}

-	 *    => result = -3

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a', 'a', 'c', 'd', 'e' }

-	 *    prefix = { 'a', 'e', 'c'}

-	 *    => result = -4

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * </p>

-	 * 

-	 * @param array the given array

-	 * @param prefix the given prefix

-	 * @return the result of the comparison (>=0 if array>prefix)

-	 * @throws NullPointerException if either array or prefix is null

-	 */

-	public static final int compareWith(char[] array, char[] prefix) {

-		int arrayLength = array.length;

-		int prefixLength = prefix.length;

-		int min = Math.min(arrayLength, prefixLength);

-		int i = 0;

-		while (min-- != 0) {

-			char c1 = array[i];

-			char c2 = prefix[i++];

-			if (c1 != c2)

-				return c1 - c2;

-		}

-		if (prefixLength == i)

-			return 0;

-		return -1;	// array is shorter than prefix (e.g. array:'ab' < prefix:'abc').

-	}

-

-	/**

-	 * Answers the concatenation of the two arrays. It answers null if the two arrays are null.

-	 * If the first array is null, then the second array is returned.

-	 * If the second array is null, then the first array is returned.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = { 'a' }

-	 *    => result = { ' a' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { ' a' }

-	 *    second = null

-	 *    => result = { ' a' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { ' a' }

-	 *    second = { ' b' }

-	 *    => result = { ' a' , ' b' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param first the first array to concatenate

-	 * @param second the second array to concatenate

-	 * @return the concatenation of the two arrays, or null if the two arrays are null.

-	 */

-	public static final char[] concat(char[] first, char[] second) {

-		if (first == null)

-			return second;

-		if (second == null)

-			return first;

-

-		int length1 = first.length;

-		int length2 = second.length;

-		char[] result = new char[length1 + length2];

-		System.arraycopy(first, 0, result, 0, length1);

-		System.arraycopy(second, 0, result, length1, length2);

-		return result;

-	}

-

-	/**

-	 * Answers the concatenation of the three arrays. It answers null if the three arrays are null.

-	 * If first is null, it answers the concatenation of second and third.

-	 * If second is null, it answers the concatenation of first and third.

-	 * If third is null, it answers the concatenation of first and second.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = { 'a' }

-	 *    third = { 'b' }

-	 *    => result = { ' a', 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    second = null

-	 *    third = { 'b' }

-	 *    => result = { ' a', 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    second = { 'b' }

-	 *    third = null

-	 *    => result = { ' a', 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = null

-	 *    second = null

-	 *    third = null

-	 *    => result = null

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    second = { 'b' }

-	 *    third = { 'c' }

-	 *    => result = { 'a', 'b', 'c' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param first the first array to concatenate

-	 * @param second the second array to concatenate

-	 * @param third the third array to concatenate

-	 * 

-	 * @return the concatenation of the three arrays, or null if the three arrays are null.

-	 */

-	public static final char[] concat(

-		char[] first,

-		char[] second,

-		char[] third) {

-		if (first == null)

-			return concat(second, third);

-		if (second == null)

-			return concat(first, third);

-		if (third == null)

-			return concat(first, second);

-

-		int length1 = first.length;

-		int length2 = second.length;

-		int length3 = third.length;

-		char[] result = new char[length1 + length2 + length3];

-		System.arraycopy(first, 0, result, 0, length1);

-		System.arraycopy(second, 0, result, length1, length2);

-		System.arraycopy(third, 0, result, length1 + length2, length3);

-		return result;

-	}

-

-	/**

-	 * Answers the concatenation of the two arrays inserting the separator character between the two arrays.

-	 * It answers null if the two arrays are null.

-	 * If the first array is null, then the second array is returned.

-	 * If the second array is null, then the first array is returned.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = { 'a' }

-	 *    separator = '/'

-	 *    => result = { ' a' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { ' a' }

-	 *    second = null

-	 *    separator = '/'

-	 *    => result = { ' a' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { ' a' }

-	 *    second = { ' b' }

-	 *    separator = '/'

-	 *    => result = { ' a' , '/', 'b' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param first the first array to concatenate

-	 * @param second the second array to concatenate

-	 * @param separator the character to insert

-	 * @return the concatenation of the two arrays inserting the separator character 

-	 * between the two arrays , or null if the two arrays are null.

-	 */

-	public static final char[] concat(

-		char[] first,

-		char[] second,

-		char separator) {

-		if (first == null)

-			return second;

-		if (second == null)

-			return first;

-

-		int length1 = first.length;

-		if (length1 == 0)

-			return second;

-		int length2 = second.length;

-		if (length2 == 0)

-			return first;

-

-		char[] result = new char[length1 + length2 + 1];

-		System.arraycopy(first, 0, result, 0, length1);

-		result[length1] = separator;

-		System.arraycopy(second, 0, result, length1 + 1, length2);

-		return result;

-	}

-

-	/**

-	 * Answers the concatenation of the three arrays inserting the sep1 character between the 

-	 * first two arrays and sep2 between the last two.

-	 * It answers null if the three arrays are null.

-	 * If the first array is null, then it answers the concatenation of second and third inserting

-	 * the sep2 character between them.

-	 * If the second array is null, then it answers the concatenation of first and third inserting

-	 * the sep1 character between them.

-	 * If the third array is null, then it answers the concatenation of first and second inserting

-	 * the sep1 character between them.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    sep1 = '/'

-	 *    second = { 'a' }

-	 *    sep2 = ':'

-	 *    third = { 'b' }

-	 *    => result = { ' a' , ':', 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    sep1 = '/'

-	 *    second = null

-	 *    sep2 = ':'

-	 *    third = { 'b' }

-	 *    => result = { ' a' , '/', 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    sep1 = '/'

-	 *    second = { 'b' }

-	 *    sep2 = ':'

-	 *    third = null

-	 *    => result = { ' a' , '/', 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    sep1 = '/'

-	 *    second = { 'b' }

-	 *    sep2 = ':'

-	 *    third = { 'c' }

-	 *    => result = { ' a' , '/', 'b' , ':', 'c' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param first the first array to concatenate

-	 * @param sep1 the character to insert

-	 * @param second the second array to concatenate

-	 * @param sep2 the character to insert

-	 * @param third the second array to concatenate

-	 * @return the concatenation of the three arrays inserting the sep1 character between the 

-	 * two arrays and sep2 between the last two.

-	 */

-	public static final char[] concat(

-		char[] first,

-		char sep1,

-		char[] second,

-		char sep2,

-		char[] third) {

-		if (first == null)

-			return concat(second, third, sep2);

-		if (second == null)

-			return concat(first, third, sep1);

-		if (third == null)

-			return concat(first, second, sep1);

-

-		int length1 = first.length;

-		int length2 = second.length;

-		int length3 = third.length;

-		char[] result = new char[length1 + length2 + length3 + 2];

-		System.arraycopy(first, 0, result, 0, length1);

-		result[length1] = sep1;

-		System.arraycopy(second, 0, result, length1 + 1, length2);

-		result[length1 + length2 + 1] = sep2;

-		System.arraycopy(third, 0, result, length1 + length2 + 2, length3);

-		return result;

-	}

-

-	/**

-	 * Answers a new array with prepending the prefix character and appending the suffix 

-	 * character at the end of the array. If array is null, it answers a new array containing the 

-	 * prefix and the suffix characters.

-	 * <br>

-	 * <br>

-	 * For example:<br>

-	 * <ol>

-	 * <li><pre>

-	 *    prefix = 'a'

-	 *    array = { 'b' }

-	 *    suffix = 'c'

-	 *    => result = { 'a', 'b' , 'c' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    prefix = 'a'

-	 *    array = null

-	 *    suffix = 'c'

-	 *    => result = { 'a', 'c' }

-	 * </pre></li>

-	 * </ol>

-	 * 

-	 * @param prefix the prefix character

-	 * @param array the array that is concanated with the prefix and suffix characters

-	 * @param suffix the suffix character

-	 * @return the new array

-	 */

-	public static final char[] concat(char prefix, char[] array, char suffix) {

-		if (array == null)

-			return new char[] { prefix, suffix };

-

-		int length = array.length;

-		char[] result = new char[length + 2];

-		result[0] = prefix;

-		System.arraycopy(array, 0, result, 1, length);

-		result[length + 1] = suffix;

-		return result;

-	}

-	

-	/**

-	 * Answers the concatenation of the given array parts using the given separator between each

-	 * part and appending the given name at the end.

-	 * <br>

-	 * <br>

-	 * For example:<br>

-	 * <ol>

-	 * <li><pre>

-	 *    name = { 'c' }

-	 *    array = { { 'a' }, { 'b' } }

-	 *    separator = '.'

-	 *    => result = { 'a', '.', 'b' , '.', 'c' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    name = null

-	 *    array = { { 'a' }, { 'b' } }

-	 *    separator = '.'

-	 *    => result = { 'a', '.', 'b' }

-	 * </pre></li>

-	 * <li><pre>

-	 *    name = { ' c' }

-	 *    array = null

-	 *    separator = '.'

-	 *    => result = { 'c' }

-	 * </pre></li>

-	 * </ol>

-	 * 

-	 * @param name the given name

-	 * @param array the given array

-	 * @param separator the given separator

-	 * @return the concatenation of the given array parts using the given separator between each

-	 * part and appending the given name at the end

-	 */

-	public static final char[] concatWith(

-		char[] name,

-		char[][] array,

-		char separator) {

-		int nameLength = name == null ? 0 : name.length;

-		if (nameLength == 0)

-			return concatWith(array, separator);

-

-		int length = array == null ? 0 : array.length;

-		if (length == 0)

-			return name;

-

-		int size = nameLength;

-		int index = length;

-		while (--index >= 0)

-			if (array[index].length > 0)

-				size += array[index].length + 1;

-		char[] result = new char[size];

-		index = size;

-		for (int i = length - 1; i >= 0; i--) {

-			int subLength = array[i].length;

-			if (subLength > 0) {

-				index -= subLength;

-				System.arraycopy(array[i], 0, result, index, subLength);

-				result[--index] = separator;

-			}

-		}

-		System.arraycopy(name, 0, result, 0, nameLength);

-		return result;

-	}

-

-	/**

-	 * Answers the concatenation of the given array parts using the given separator between each

-	 * part and appending the given name at the end.

-	 * <br>

-	 * <br>

-	 * For example:<br>

-	 * <ol>

-	 * <li><pre>

-	 *    name = { 'c' }

-	 *    array = { { 'a' }, { 'b' } }

-	 *    separator = '.'

-	 *    => result = { 'a', '.', 'b' , '.', 'c' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    name = null

-	 *    array = { { 'a' }, { 'b' } }

-	 *    separator = '.'

-	 *    => result = { 'a', '.', 'b' }

-	 * </pre></li>

-	 * <li><pre>

-	 *    name = { ' c' }

-	 *    array = null

-	 *    separator = '.'

-	 *    => result = { 'c' }

-	 * </pre></li>

-	 * </ol>

-	 * 

-	 * @param array the given array

-	 * @param name the given name

-	 * @param separator the given separator

-	 * @return the concatenation of the given array parts using the given separator between each

-	 * part and appending the given name at the end

-	 */

-	public static final char[] concatWith(

-		char[][] array,

-		char[] name,

-		char separator) {

-		int nameLength = name == null ? 0 : name.length;

-		if (nameLength == 0)

-			return concatWith(array, separator);

-

-		int length = array == null ? 0 : array.length;

-		if (length == 0)

-			return name;

-

-		int size = nameLength;

-		int index = length;

-		while (--index >= 0)

-			if (array[index].length > 0)

-				size += array[index].length + 1;

-		char[] result = new char[size];

-		index = 0;

-		for (int i = 0; i < length; i++) {

-			int subLength = array[i].length;

-			if (subLength > 0) {

-				System.arraycopy(array[i], 0, result, index, subLength);

-				index += subLength;

-				result[index++] = separator;

-			}

-		}

-		System.arraycopy(name, 0, result, index, nameLength);

-		return result;

-	}

-

-	/**

-	 * Answers the concatenation of the given array parts using the given separator between each part.

-	 * <br>

-	 * <br>

-	 * For example:<br>

-	 * <ol>

-	 * <li><pre>

-	 *    array = { { 'a' }, { 'b' } }

-	 *    separator = '.'

-	 *    => result = { 'a', '.', 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = null

-	 *    separator = '.'

-	 *    => result = { }

-	 * </pre></li>

-	 * </ol>

-	 * 

-	 * @param array the given array

-	 * @param separator the given separator

-	 * @return the concatenation of the given array parts using the given separator between each part

-	 */

-	public static final char[] concatWith(char[][] array, char separator) {

-		int length = array == null ? 0 : array.length;

-		if (length == 0)

-			return CharOperation.NO_CHAR;

-

-		int size = length - 1;

-		int index = length;

-		while (--index >= 0) {

-			if (array[index].length == 0)

-				size--;

-			else

-				size += array[index].length;

-		}

-		if (size <= 0)

-			return CharOperation.NO_CHAR;

-		char[] result = new char[size];

-		index = length;

-		while (--index >= 0) {

-			length = array[index].length;

-			if (length > 0) {

-				System.arraycopy(

-					array[index],

-					0,

-					result,

-					(size -= length),

-					length);

-				if (--size >= 0)

-					result[size] = separator;

-			}

-		}

-		return result;

-	}

-	

-	/**

-	 * Answers true if the array contains an occurrence of character, false otherwise.

-	 * 

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    character = 'c'

-	 *    array = { { ' a' }, { ' b' } }

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    character = 'a'

-	 *    array = { { ' a' }, { ' b' } }

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param character the character to search

-	 * @param array the array in which the search is done

-	 * @return true if the array contains an occurrence of character, false otherwise.

-	 * @throws NullPointerException if array is null.

-	 */

-	public static final boolean contains(char character, char[][] array) {

-		for (int i = array.length; --i >= 0;) {

-			char[] subarray = array[i];

-			for (int j = subarray.length; --j >= 0;)

-				if (subarray[j] == character)

-					return true;

-		}

-		return false;

-	}

-

-	/**

-	 * Answers true if the array contains an occurrence of character, false otherwise.

-	 * 

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    character = 'c'

-	 *    array = { ' b'  }

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    character = 'a'

-	 *    array = { ' a' , ' b' }

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param character the character to search

-	 * @param array the array in which the search is done

-	 * @return true if the array contains an occurrence of character, false otherwise.

-	 * @throws NullPointerException if array is null.

-	 */

-	public static final boolean contains(char character, char[] array) {

-		for (int i = array.length; --i >= 0;)

-			if (array[i] == character)

-				return true;

-		return false;

-	}

-	

-	/**

-	 * Answers a deep copy of the toCopy array.

-	 * 

-	 * @param toCopy the array to copy

-	 * @return a deep copy of the toCopy array.

-	 */

-	public static final char[][] deepCopy(char[][] toCopy) {

-		int toCopyLength = toCopy.length;

-		char[][] result = new char[toCopyLength][];

-		for (int i = 0; i < toCopyLength; i++) {

-			char[] toElement = toCopy[i];

-			int toElementLength = toElement.length;

-			char[] resultElement = new char[toElementLength];

-			System.arraycopy(toElement, 0, resultElement, 0, toElementLength);

-			result[i] = resultElement;

-		}

-		return result;

-	}

-

-	/**

-	 * Return true if array ends with the sequence of characters contained in toBeFound, 

-	 * otherwise false.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    array = { 'a', 'b', 'c', 'd' }

-	 *    toBeFound = { 'b', 'c' }

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a', 'b', 'c' }

-	 *    toBeFound = { 'b', 'c' }

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param array the array to check

-	 * @param toBeFound the array to find

-	 * @return true if array ends with the sequence of characters contained in toBeFound, 

-	 * otherwise false.

-	 * @throws NullPointerException if array is null or toBeFound is null

-	 */

-	public static final boolean endsWith(char[] array, char[] toBeFound) {

-		int i = toBeFound.length;

-		int j = array.length - i;

-

-		if (j < 0)

-			return false;

-		while (--i >= 0)

-			if (toBeFound[i] != array[i + j])

-				return false;

-		return true;

-	}

-

-	/**

-	 * Answers true if the two arrays are identical character by character, otherwise false.

-	 * The equality is case sensitive.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = null

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { } }

-	 *    second = null

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { 'a' } }

-	 *    second = { { 'a' } }

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { 'A' } }

-	 *    second = { { 'a' } }

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * @param first the first array

-	 * @param second the second array

-	 * @return true if the two arrays are identical character by character, otherwise false

-	 */

-	public static final boolean equals(char[][] first, char[][] second) {

-		if (first == second)

-			return true;

-		if (first == null || second == null)

-			return false;

-		if (first.length != second.length)

-			return false;

-

-		for (int i = first.length; --i >= 0;)

-			if (!equals(first[i], second[i]))

-				return false;

-		return true;

-	}

-

-	/**

-	 * If isCaseSensite is true, answers true if the two arrays are identical character

-	 * by character, otherwise false.

-	 * If it is false, answers true if the two arrays are identical character by 

-	 * character without checking the case, otherwise false.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = null

-	 *    isCaseSensitive = true

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { } }

-	 *    second = null

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { 'A' } }

-	 *    second = { { 'a' } }

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { { 'A' } }

-	 *    second = { { 'a' } }

-	 *    isCaseSensitive = false

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param first the first array

-	 * @param second the second array

-	 * @param isCaseSensitive check whether or not the equality should be case sensitive

-	 * @return true if the two arrays are identical character by character according to the value

-	 * of isCaseSensitive, otherwise false

-	 */

-	public static final boolean equals(

-		char[][] first,

-		char[][] second,

-		boolean isCaseSensitive) {

-

-		if (isCaseSensitive) {

-			return equals(first, second);

-		}

-		if (first == second)

-			return true;

-		if (first == null || second == null)

-			return false;

-		if (first.length != second.length)

-			return false;

-

-		for (int i = first.length; --i >= 0;)

-			if (!equals(first[i], second[i], false))

-				return false;

-		return true;

-	}

-

-	/**

-	 * Answers true if the two arrays are identical character by character, otherwise false.

-	 * The equality is case sensitive.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = null

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { }

-	 *    second = null

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    second = { 'a' }

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    second = { 'A' }

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * @param first the first array

-	 * @param second the second array

-	 * @return true if the two arrays are identical character by character, otherwise false

-	 */

-	public static final boolean equals(char[] first, char[] second) {

-		if (first == second)

-			return true;

-		if (first == null || second == null)

-			return false;

-		if (first.length != second.length)

-			return false;

-

-		for (int i = first.length; --i >= 0;)

-			if (first[i] != second[i])

-				return false;

-		return true;

-	}

-	

-	/**

-	 * Answers true if the first array is identical character by character to a portion of the second array

-	 * delimited from position secondStart (inclusive) to secondEnd(exclusive), otherwise false.

-	 * The equality is case sensitive.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = null

-	 *    secondStart = 0

-	 *    secondEnd = 0

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { }

-	 *    second = null

-	 *    secondStart = 0

-	 *    secondEnd = 0

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    second = { 'a' }

-	 *    secondStart = 0

-	 *    secondEnd = 1

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'a' }

-	 *    second = { 'A' }

-	 *    secondStart = 0

-	 *    secondEnd = 1

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * @param first the first array

-	 * @param second the second array

-	 * @param secondStart inclusive start position in the second array to compare

-	 * @param secondEnd exclusive end position in the second array to compare

-	 * @return true if the first array is identical character by character to fragment of second array ranging from secondStart to secondEnd-1, otherwise false

-	 * @since 3.0

-	 */

-	public static final boolean equals(char[] first, char[] second, int secondStart, int secondEnd) {

-		if (first == second)

-			return true;

-		if (first == null || second == null)

-			return false;

-		if (first.length != secondEnd - secondStart)

-			return false;

-

-		for (int i = first.length; --i >= 0;)

-			if (first[i] != second[i+secondStart])

-				return false;

-		return true;

-	}

-

-	/**

-	 * If isCaseSensite is true, answers true if the two arrays are identical character

-	 * by character, otherwise false.

-	 * If it is false, answers true if the two arrays are identical character by 

-	 * character without checking the case, otherwise false.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    first = null

-	 *    second = null

-	 *    isCaseSensitive = true

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { }

-	 *    second = null

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'A' }

-	 *    second = { 'a' }

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    first = { 'A' }

-	 *    second = { 'a' }

-	 *    isCaseSensitive = false

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param first the first array

-	 * @param second the second array

-	 * @param isCaseSensitive check whether or not the equality should be case sensitive

-	 * @return true if the two arrays are identical character by character according to the value

-	 * of isCaseSensitive, otherwise false

-	 */

-	public static final boolean equals(

-		char[] first,

-		char[] second,

-		boolean isCaseSensitive) {

-

-		if (isCaseSensitive) {

-			return equals(first, second);

-		}

-		if (first == second)

-			return true;

-		if (first == null || second == null)

-			return false;

-		if (first.length != second.length)

-			return false;

-

-		for (int i = first.length; --i >= 0;)

-			if (Character.toLowerCase(first[i])

-				!= Character.toLowerCase(second[i]))

-				return false;

-		return true;

-	}

-	/**

-	 * If isCaseSensite is true, the equality is case sensitive, otherwise it is case insensitive.

-	 * 

-	 * Answers true if the name contains the fragment at the starting index startIndex, otherwise false.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    fragment = { 'b', 'c' , 'd' }

-	 *    name = { 'a', 'b', 'c' , 'd' }

-	 *    startIndex = 1

-	 *    isCaseSensitive = true

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    fragment = { 'b', 'c' , 'd' }

-	 *    name = { 'a', 'b', 'C' , 'd' }

-	 *    startIndex = 1

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    fragment = { 'b', 'c' , 'd' }

-	 *    name = { 'a', 'b', 'C' , 'd' }

-	 *    startIndex = 0

-	 *    isCaseSensitive = false

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    fragment = { 'b', 'c' , 'd' }

-	 *    name = { 'a', 'b'}

-	 *    startIndex = 0

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param fragment the fragment to check

-	 * @param name the array to check

-	 * @param startIndex the starting index

-	 * @param isCaseSensitive check whether or not the equality should be case sensitive

-	 * @return true if the name contains the fragment at the starting index startIndex according to the 

-	 * value of isCaseSensitive, otherwise false.

-	 * @throws NullPointerException if fragment or name is null.

-	 */

-	public static final boolean fragmentEquals(

-		char[] fragment,

-		char[] name,

-		int startIndex,

-		boolean isCaseSensitive) {

-

-		int max = fragment.length;

-		if (name.length < max + startIndex)

-			return false;

-		if (isCaseSensitive) {

-			for (int i = max;

-				--i >= 0;

-				) // assumes the prefix is not larger than the name

-				if (fragment[i] != name[i + startIndex])

-					return false;

-			return true;

-		}

-		for (int i = max;

-			--i >= 0;

-			) // assumes the prefix is not larger than the name

-			if (Character.toLowerCase(fragment[i])

-				!= Character.toLowerCase(name[i + startIndex]))

-				return false;

-		return true;

-	}

-

-	/**

-	 * Answers a hashcode for the array

-	 * 

-	 * @param array the array for which a hashcode is required

-	 * @return the hashcode

-	 * @throws NullPointerException if array is null

-	 */

-	public static final int hashCode(char[] array) {

-		int hash = 0;

-		int offset = 0;

-		int length = array.length;

-		if (length < 16) {

-			for (int i = length; i > 0; i--)

-				hash = (hash * 37) + array[offset++];

-		} else {

-			// only sample some characters

-			int skip = length / 8;

-			for (int i = length; i > 0; i -= skip, offset += skip)

-				hash = (hash * 39) + array[offset];

-		}

-		return hash & 0x7FFFFFFF;

-	}

-	/**

-	 * Answers true if c is a whitespace according to the JLS (&#92;u000a, &#92;u000c, &#92;u000d, &#92;u0009), otherwise false.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    c = ' '

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    c = '&#92;u3000'

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param c the character to check

-	 * @return true if c is a whitespace according to the JLS, otherwise false.

-	 */

-	public static boolean isWhitespace(char c) {

-		switch (c) {

-			case 10 : /* \ u000a: LINE FEED               */

-			case 12 : /* \ u000c: FORM FEED               */

-			case 13 : /* \ u000d: CARRIAGE RETURN         */

-			case 32 : /* \ u0020: SPACE                   */

-			case 9 : /* \ u0009: HORIZONTAL TABULATION   */

-				return true;

-			default :

-				return false;

-		}

-	}

-	

-	/**

-	 * Answers the first index in the array for which the corresponding character is

-	 * equal to toBeFound. Answers -1 if no occurrence of this character is found.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    result => 2

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'e'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    result => -1

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param toBeFound the character to search

-	 * @param array the array to be searched

-	 * @return the first index in the array for which the corresponding character is

-	 * equal to toBeFound, -1 otherwise

-	 * @throws NullPointerException if array is null

-	 */

-	public static final int indexOf(char toBeFound, char[] array) {

-		for (int i = 0; i < array.length; i++)

-			if (toBeFound == array[i])

-				return i;

-		return -1;

-	}

-

-	/**

-	 * Answers the first index in the array for which the corresponding character is

-	 * equal to toBeFound starting the search at index start.

-	 * Answers -1 if no occurrence of this character is found.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    start = 2

-	 *    result => 2

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    start = 3

-	 *    result => -1

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'e'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    start = 1

-	 *    result => -1

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param toBeFound the character to search

-	 * @param array the array to be searched

-	 * @param start the starting index

-	 * @return the first index in the array for which the corresponding character is

-	 * equal to toBeFound, -1 otherwise

-	 * @throws NullPointerException if array is null

-	 * @throws ArrayIndexOutOfBoundsException if  start is lower than 0

-	 */

-	public static final int indexOf(char toBeFound, char[] array, int start) {

-		for (int i = start; i < array.length; i++)

-			if (toBeFound == array[i])

-				return i;

-		return -1;

-	}

-

-	/**

-	 * Answers the last index in the array for which the corresponding character is

-	 * equal to toBeFound starting from the end of the array.

-	 * Answers -1 if no occurrence of this character is found.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { ' a', 'b', 'c', 'd' , 'c', 'e' }

-	 *    result => 4

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'e'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    result => -1

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 *

-	 * @param toBeFound the character to search

-	 * @param array the array to be searched

-	 * @return the last index in the array for which the corresponding character is

-	 * equal to toBeFound starting from the end of the array, -1 otherwise

-	 * @throws NullPointerException if array is null

-	 */

-	public static final int lastIndexOf(char toBeFound, char[] array) {

-		for (int i = array.length; --i >= 0;)

-			if (toBeFound == array[i])

-				return i;

-		return -1;

-	}

-

-	/**

-	 * Answers the last index in the array for which the corresponding character is

-	 * equal to toBeFound stopping at the index startIndex.

-	 * Answers -1 if no occurrence of this character is found.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    startIndex = 2

-	 *    result => 2

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { ' a', 'b', 'c', 'd', 'e' }

-	 *    startIndex = 3

-	 *    result => -1

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'e'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    startIndex = 0

-	 *    result => -1

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 *

-	 * @param toBeFound the character to search

-	 * @param array the array to be searched

-	 * @param startIndex the stopping index

-	 * @return the last index in the array for which the corresponding character is

-	 * equal to toBeFound stopping at the index startIndex, -1 otherwise

-	 * @throws NullPointerException if array is null

-	 * @throws ArrayIndexOutOfBoundsException if startIndex is lower than 0

-	 */

-	public static final int lastIndexOf(

-		char toBeFound,

-		char[] array,

-		int startIndex) {

-		for (int i = array.length; --i >= startIndex;)

-			if (toBeFound == array[i])

-				return i;

-		return -1;

-	}

-

-	/**

-	 * Answers the last index in the array for which the corresponding character is

-	 * equal to toBeFound starting from endIndex to startIndex.

-	 * Answers -1 if no occurrence of this character is found.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    startIndex = 2

-	 *    endIndex = 2

-	 *    result => 2

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { ' a', 'b', 'c', 'd', 'e' }

-	 *    startIndex = 3

-	 *    endIndex = 4

-	 *    result => -1

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'e'

-	 *    array = { ' a', 'b', 'c', 'd' }

-	 *    startIndex = 0

-	 *    endIndex = 3

-	 *    result => -1

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param toBeFound the character to search

-	 * @param array the array to be searched

-	 * @param startIndex the stopping index

-	 * @param endIndex the starting index

-	 * @return the last index in the array for which the corresponding character is

-	 * equal to toBeFound starting from endIndex to startIndex, -1 otherwise

-	 * @throws NullPointerException if array is null

-	 * @throws ArrayIndexOutOfBoundsException if endIndex is greater or equals to array length or starting is lower than 0

-	 */

-	public static final int lastIndexOf(

-		char toBeFound,

-		char[] array,

-		int startIndex,

-		int endIndex) {

-		for (int i = endIndex; --i >= startIndex;)

-			if (toBeFound == array[i])

-				return i;

-		return -1;

-	}

-	

-	/**

-	 * Answers the last portion of a name given a separator.

-	 * <br>

-	 * <br>

-	 * For example,

-	 * <pre>

-	 * 	lastSegment("java.lang.Object".toCharArray(),'.') --> Object

-	 * </pre>

-	 * 

-	 * @param array the array

-	 * @param separator the given separator

-	 * @return the last portion of a name given a separator

-	 * @throws NullPointerException if array is null

-	 */

-	final static public char[] lastSegment(char[] array, char separator) {

-		int pos = lastIndexOf(separator, array);

-		if (pos < 0)

-			return array;

-		return subarray(array, pos + 1, array.length);

-	}

-

-	/**

-	 * Answers true if the pattern matches the given name, false otherwise. This char[] pattern matching

-	 * accepts wild-cards '*' and '?'.

-	 *

-	 * When not case sensitive, the pattern is assumed to already be lowercased, the

-	 * name will be lowercased character per character as comparing.

-	 * If name is null, the answer is false.

-	 * If pattern is null, the answer is true if name is not null.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    pattern = { '?', 'b', '*' }

-	 *    name = { 'a', 'b', 'c' , 'd' }

-	 *    isCaseSensitive = true

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    pattern = { '?', 'b', '?' }

-	 *    name = { 'a', 'b', 'c' , 'd' }

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    pattern = { 'b', '*' }

-	 *    name = { 'a', 'b', 'c' , 'd' }

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param pattern the given pattern

-	 * @param name the given name

-	 * @param isCaseSensitive flag to know whether or not the matching should be case sensitive

-	 * @return true if the pattern matches the given name, false otherwise

-	 */

-	public static final boolean match(

-		char[] pattern,

-		char[] name,

-		boolean isCaseSensitive) {

-

-		if (name == null)

-			return false; // null name cannot match

-		if (pattern == null)

-			return true; // null pattern is equivalent to '*'

-

-		return match(

-			pattern,

-			0,

-			pattern.length,

-			name,

-			0,

-			name.length,

-			isCaseSensitive);

-	}

-

-	/**

-	 * Answers true if the a sub-pattern matches the subpart of the given name, false otherwise.

-	 * char[] pattern matching, accepting wild-cards '*' and '?'. Can match only subset of name/pattern.

-	 * end positions are non-inclusive.

-	 * The subpattern is defined by the patternStart and pattternEnd positions.

-	 * When not case sensitive, the pattern is assumed to already be lowercased, the

-	 * name will be lowercased character per character as comparing.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    pattern = { '?', 'b', '*' }

-	 *    patternStart = 1

-	 *    patternEnd = 3

-	 *    name = { 'a', 'b', 'c' , 'd' }

-	 *    nameStart = 1

-	 *    nameEnd = 4

-	 *    isCaseSensitive = true

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    pattern = { '?', 'b', '*' }

-	 *    patternStart = 1

-	 *    patternEnd = 2

-	 *    name = { 'a', 'b', 'c' , 'd' }

-	 *    nameStart = 1

-	 *    nameEnd = 2

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param pattern the given pattern

-	 * @param patternStart the given pattern start

-	 * @param patternEnd the given pattern end

-	 * @param name the given name

-	 * @param nameStart the given name start

-	 * @param nameEnd the given name end

-	 * @param isCaseSensitive flag to know if the matching should be case sensitive

-	 * @return true if the a sub-pattern matches the subpart of the given name, false otherwise

-	 */

-	public static final boolean match(

-		char[] pattern,

-		int patternStart,

-		int patternEnd,

-		char[] name,

-		int nameStart,

-		int nameEnd,

-		boolean isCaseSensitive) {

-

-		if (name == null)

-			return false; // null name cannot match

-		if (pattern == null)

-			return true; // null pattern is equivalent to '*'

-		int iPattern = patternStart;

-		int iName = nameStart;

-

-		if (patternEnd < 0)

-			patternEnd = pattern.length;

-		if (nameEnd < 0)

-			nameEnd = name.length;

-

-		/* check first segment */

-		char patternChar = 0;

-		while ((iPattern < patternEnd)

-			&& (patternChar = pattern[iPattern]) != '*') {

-			if (iName == nameEnd)

-				return false;

-			if (patternChar

-				!= (isCaseSensitive

-					? name[iName]

-					: Character.toLowerCase(name[iName]))

-				&& patternChar != '?') {

-				return false;

-			}

-			iName++;

-			iPattern++;

-		}

-		/* check sequence of star+segment */

-		int segmentStart;

-		if (patternChar == '*') {

-			segmentStart = ++iPattern; // skip star

-		} else {

-			segmentStart = 0; // force iName check

-		}

-		int prefixStart = iName;

-		checkSegment : while (iName < nameEnd) {

-			if (iPattern == patternEnd) {

-				iPattern = segmentStart; // mismatch - restart current segment

-				iName = ++prefixStart;

-				continue checkSegment;

-			}

-			/* segment is ending */

-			if ((patternChar = pattern[iPattern]) == '*') {

-				segmentStart = ++iPattern; // skip start

-				if (segmentStart == patternEnd) {

-					return true;

-				}

-				prefixStart = iName;

-				continue checkSegment;

-			}

-			/* check current name character */

-			if ((isCaseSensitive ? name[iName] : Character.toLowerCase(name[iName]))

-						!= patternChar

-					&& patternChar != '?') {

-				iPattern = segmentStart; // mismatch - restart current segment

-				iName = ++prefixStart;

-				continue checkSegment;

-			}

-			iName++;

-			iPattern++;

-		}

-

-		return (segmentStart == patternEnd)

-			|| (iName == nameEnd && iPattern == patternEnd)

-			|| (iPattern == patternEnd - 1 && pattern[iPattern] == '*');

-	}

-

-	/**

-	 * Answers true if the pattern matches the filepath using the pathSepatator, false otherwise.

-	 * 

-	 * Path char[] pattern matching, accepting wild-cards '**', '*' and '?' (using Ant directory tasks

-	 * conventions, also see "http://jakarta.apache.org/ant/manual/dirtasks.html#defaultexcludes").

-	 * Path pattern matching is enhancing regular pattern matching in supporting extra rule where '**' represent

-	 * any folder combination.

-	 * Special rule: 

-	 * - foo\  is equivalent to foo\**   

-	 * When not case sensitive, the pattern is assumed to already be lowercased, the

-	 * name will be lowercased character per character as comparing.

-	 * 

-	 * @param pattern the given pattern

-	 * @param filepath the given path 

-	 * @param isCaseSensitive to find out whether or not the matching should be case sensitive

-	 * @param pathSeparator the given path separator

-	 * @return true if the pattern matches the filepath using the pathSepatator, false otherwise

-	 */

-	public static final boolean pathMatch(

-		char[] pattern,

-		char[] filepath,

-		boolean isCaseSensitive,

-		char pathSeparator) {

-

-		if (filepath == null)

-			return false; // null name cannot match

-		if (pattern == null)

-			return true; // null pattern is equivalent to '*'

-

-		// offsets inside pattern

-		int pSegmentStart = pattern[0] == pathSeparator ? 1 : 0;

-		int pLength = pattern.length;

-		int pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern, pSegmentStart+1);

-		if (pSegmentEnd < 0) pSegmentEnd = pLength;

-

-		// special case: pattern foo\ is equivalent to foo\**

-		boolean freeTrailingDoubleStar = pattern[pLength - 1] == pathSeparator;

-

-		// offsets inside filepath

-		int fSegmentStart, fLength = filepath.length;

-		if (filepath[0] != pathSeparator){

-			fSegmentStart = 0;

-		} else {

-			fSegmentStart = 1;

-		}

-		if (fSegmentStart != pSegmentStart) {

-			return false; // both must start with a separator or none.

-		}

-		int fSegmentEnd = CharOperation.indexOf(pathSeparator, filepath, fSegmentStart+1);

-		if (fSegmentEnd < 0) fSegmentEnd = fLength;

-

-		// first segments

-		while (pSegmentStart < pLength

-			&& !(pSegmentEnd == pLength && freeTrailingDoubleStar

-					|| (pSegmentEnd == pSegmentStart + 2

-							&& pattern[pSegmentStart] == '*'

-							&& pattern[pSegmentStart + 1] == '*'))) {

-

-			if (fSegmentStart >= fLength)

-				return false;

-			if (!CharOperation

-				.match(

-					pattern,

-					pSegmentStart,

-					pSegmentEnd,

-					filepath,

-					fSegmentStart,

-					fSegmentEnd,

-					isCaseSensitive)) {

-				return false;

-			}

-

-			// jump to next segment		

-			pSegmentEnd =

-				CharOperation.indexOf(

-					pathSeparator,

-					pattern,

-					pSegmentStart = pSegmentEnd + 1);

-			// skip separator

-			if (pSegmentEnd < 0)

-				pSegmentEnd = pLength;

-

-			fSegmentEnd =

-				CharOperation.indexOf(

-					pathSeparator,

-					filepath,

-					fSegmentStart = fSegmentEnd + 1);

-			// skip separator

-			if (fSegmentEnd < 0) fSegmentEnd = fLength;

-		}

-

-		/* check sequence of doubleStar+segment */

-		int pSegmentRestart;

-		if ((pSegmentStart >= pLength && freeTrailingDoubleStar)

-				|| (pSegmentEnd == pSegmentStart + 2

-					&& pattern[pSegmentStart] == '*'

-					&& pattern[pSegmentStart + 1] == '*')) {

-			pSegmentEnd =

-				CharOperation.indexOf(

-					pathSeparator,

-					pattern,

-					pSegmentStart = pSegmentEnd + 1);

-			// skip separator

-			if (pSegmentEnd < 0) pSegmentEnd = pLength;

-			pSegmentRestart = pSegmentStart;

-		} else {

-			if (pSegmentStart >= pLength) return fSegmentStart >= fLength; // true if filepath is done too.

-			pSegmentRestart = 0; // force fSegmentStart check

-		}

-		int fSegmentRestart = fSegmentStart;

-		checkSegment : while (fSegmentStart < fLength) {

-				

-			if (pSegmentStart >= pLength) {

-				if (freeTrailingDoubleStar) return true;

-				// mismatch - restart current path segment

-				pSegmentEnd =

-					CharOperation.indexOf(pathSeparator, pattern, pSegmentStart = pSegmentRestart);

-				if (pSegmentEnd < 0) pSegmentEnd = pLength;

-

-				fSegmentRestart = 

-					CharOperation.indexOf(pathSeparator, filepath, fSegmentRestart + 1);

-				// skip separator

-				if (fSegmentRestart < 0) {

-					fSegmentRestart = fLength;

-				} else {

-					fSegmentRestart++;

-				}

-				fSegmentEnd =

-					CharOperation.indexOf(pathSeparator, filepath, fSegmentStart = fSegmentRestart);

-				if (fSegmentEnd < 0) fSegmentEnd = fLength;

-				continue checkSegment;

-			}

-			

-			/* path segment is ending */

-			if (pSegmentEnd == pSegmentStart + 2

-				&& pattern[pSegmentStart] == '*'

-				&& pattern[pSegmentStart + 1] == '*') {

-				pSegmentEnd =

-					CharOperation.indexOf(pathSeparator, pattern, pSegmentStart = pSegmentEnd + 1);

-				// skip separator

-				if (pSegmentEnd < 0) pSegmentEnd = pLength;

-				pSegmentRestart = pSegmentStart;

-				fSegmentRestart = fSegmentStart;

-				if (pSegmentStart >= pLength) return true;

-				continue checkSegment;

-			}

-			/* chech current path segment */

-			if (!CharOperation.match(

-								pattern,

-								pSegmentStart,

-								pSegmentEnd,

-								filepath,

-								fSegmentStart,

-								fSegmentEnd,

-								isCaseSensitive)) {

-				// mismatch - restart current path segment

-				pSegmentEnd =

-					CharOperation.indexOf(pathSeparator, pattern, pSegmentStart = pSegmentRestart);

-				if (pSegmentEnd < 0) pSegmentEnd = pLength;

-

-				fSegmentRestart = 

-					CharOperation.indexOf(pathSeparator, filepath, fSegmentRestart + 1);

-				// skip separator

-				if (fSegmentRestart < 0) {

-					fSegmentRestart = fLength;

-				} else {

-					fSegmentRestart++;

-				}

-				fSegmentEnd =

-					CharOperation.indexOf(pathSeparator, filepath, fSegmentStart = fSegmentRestart);

-				if (fSegmentEnd < 0) fSegmentEnd = fLength;

-				continue checkSegment;

-			}

-			// jump to next segment		

-			pSegmentEnd =

-				CharOperation.indexOf(

-					pathSeparator,

-					pattern,

-					pSegmentStart = pSegmentEnd + 1);

-			// skip separator

-			if (pSegmentEnd < 0)

-				pSegmentEnd = pLength;

-

-			fSegmentEnd =

-				CharOperation.indexOf(

-					pathSeparator,

-					filepath,

-					fSegmentStart = fSegmentEnd + 1);

-			// skip separator

-			if (fSegmentEnd < 0)

-				fSegmentEnd = fLength;

-		}

-

-		return (pSegmentRestart >= pSegmentEnd)

-			|| (fSegmentStart >= fLength && pSegmentStart >= pLength)

-			|| (pSegmentStart == pLength - 2

-				&& pattern[pSegmentStart] == '*'

-				&& pattern[pSegmentStart + 1] == '*')

-			|| (pSegmentStart == pLength && freeTrailingDoubleStar);

-	}

-

-	/**

-	 * Answers the number of occurrences of the given character in the given array, 0 if any.

-	 * 

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    toBeFound = 'b'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    result => 3

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    result => 0

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param toBeFound the given character

-	 * @param array the given array

-	 * @return the number of occurrences of the given character in the given array, 0 if any

-	 * @throws NullPointerException if array is null

-	 */

-	public static final int occurencesOf(char toBeFound, char[] array) {

-		int count = 0;

-		for (int i = 0; i < array.length; i++)

-			if (toBeFound == array[i])

-				count++;

-		return count;

-	}

-

-	/**

-	 * Answers the number of occurrences of the given character in the given array starting

-	 * at the given index, 0 if any.

-	 * 

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    toBeFound = 'b'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    start = 2

-	 *    result => 2

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    toBeFound = 'c'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    start = 0

-	 *    result => 0

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param toBeFound the given character

-	 * @param array the given array

-	 * @param start the given index

-	 * @return the number of occurrences of the given character in the given array, 0 if any

-	 * @throws NullPointerException if array is null

-	 * @throws ArrayIndexOutOfBoundsException if start is lower than 0

-	 */

-	public static final int occurencesOf(

-		char toBeFound,

-		char[] array,

-		int start) {

-		int count = 0;

-		for (int i = start; i < array.length; i++)

-			if (toBeFound == array[i])

-				count++;

-		return count;

-	}

-

-	/**

-	 * Answers true if the given name starts with the given prefix, false otherwise.

-	 * The comparison is case sensitive.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    prefix = { 'a' , 'b' }

-	 *    name = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    prefix = { 'a' , 'c' }

-	 *    name = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param prefix the given prefix

-	 * @param name the given name

-	 * @return true if the given name starts with the given prefix, false otherwise

-	 * @throws NullPointerException if the given name is null or if the given prefix is null

-	 */

-	public static final boolean prefixEquals(char[] prefix, char[] name) {

-

-		int max = prefix.length;

-		if (name.length < max)

-			return false;

-		for (int i = max;

-			--i >= 0;

-			) // assumes the prefix is not larger than the name

-			if (prefix[i] != name[i])

-				return false;

-		return true;

-	}

-

-	/**

-	 * Answers true if the given name starts with the given prefix, false otherwise.

-	 * isCaseSensitive is used to find out whether or not the comparison should be case sensitive.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    prefix = { 'a' , 'B' }

-	 *    name = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    isCaseSensitive = false

-	 *    result => true

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    prefix = { 'a' , 'B' }

-	 *    name = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    isCaseSensitive = true

-	 *    result => false

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param prefix the given prefix

-	 * @param name the given name

-	 * @param isCaseSensitive to find out whether or not the comparison should be case sensitive

-	 * @return true if the given name starts with the given prefix, false otherwise

-	 * @throws NullPointerException if the given name is null or if the given prefix is null

-	 */

-	public static final boolean prefixEquals(

-		char[] prefix,

-		char[] name,

-		boolean isCaseSensitive) {

-

-		int max = prefix.length;

-		if (name.length < max)

-			return false;

-		if (isCaseSensitive) {

-			for (int i = max;

-				--i >= 0;

-				) // assumes the prefix is not larger than the name

-				if (prefix[i] != name[i])

-					return false;

-			return true;

-		}

-

-		for (int i = max;

-			--i >= 0;

-			) // assumes the prefix is not larger than the name

-			if (Character.toLowerCase(prefix[i])

-				!= Character.toLowerCase(name[i]))

-				return false;

-		return true;

-	}

-

-	/**

-	 * Replace all occurrence of the character to be replaced with the remplacement character in the

-	 * given array.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    toBeReplaced = 'b'

-	 *    replacementChar = 'a'

-	 *    result => No returned value, but array is now equals to { 'a' , 'a', 'a', 'a', 'a', 'a' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    toBeReplaced = 'c'

-	 *    replacementChar = 'a'

-	 *    result => No returned value, but array is now equals to { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param array the given array

-	 * @param toBeReplaced the character to be replaced

-	 * @param replacementChar the replacement character

-	 * @throws NullPointerException if the given array is null

-	 */

-	public static final void replace(

-		char[] array,

-		char toBeReplaced,

-		char replacementChar) {

-		if (toBeReplaced != replacementChar) {

-			for (int i = 0, max = array.length; i < max; i++) {

-				if (array[i] == toBeReplaced)

-					array[i] = replacementChar;

-			}

-		}

-	}

-

-	/**

-	 * Answers a new array of characters with substitutions. No side-effect is operated on the original

-	 * array, in case no substitution happened, then the result is the same as the

-	 * original one.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    toBeReplaced = { 'b' }

-	 *    replacementChar = { 'a', 'a' }

-	 *    result => { 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    toBeReplaced = { 'c' }

-	 *    replacementChar = { 'a' }

-	 *    result => { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param array the given array

-	 * @param toBeReplaced characters to be replaced

-	 * @param replacementChars the replacement characters

-	 * @return a new array of characters with substitutions or the given array if none

-	 * @throws NullPointerException if the given array is null

-	 */

-	public static final char[] replace(

-		char[] array,

-		char[] toBeReplaced,

-		char[] replacementChars) {

-

-		int max = array.length;

-		int replacedLength = toBeReplaced.length;

-		int replacementLength = replacementChars.length;

-

-		int[] starts = new int[5];

-		int occurrenceCount = 0;

-

-		if (!equals(toBeReplaced, replacementChars)) {

-

-			next : for (int i = 0; i < max; i++) {

-				int j = 0;

-				while (j < replacedLength) {

-					if (i + j == max)

-						continue next;

-					if (array[i + j] != toBeReplaced[j++])

-						continue next;

-				}

-				if (occurrenceCount == starts.length) {

-					System.arraycopy(

-						starts,

-						0,

-						starts = new int[occurrenceCount * 2],

-						0,

-						occurrenceCount);

-				}

-				starts[occurrenceCount++] = i;

-			}

-		}

-		if (occurrenceCount == 0)

-			return array;

-		char[] result =

-			new char[max

-				+ occurrenceCount * (replacementLength - replacedLength)];

-		int inStart = 0, outStart = 0;

-		for (int i = 0; i < occurrenceCount; i++) {

-			int offset = starts[i] - inStart;

-			System.arraycopy(array, inStart, result, outStart, offset);

-			inStart += offset;

-			outStart += offset;

-			System.arraycopy(

-				replacementChars,

-				0,

-				result,

-				outStart,

-				replacementLength);

-			inStart += replacedLength;

-			outStart += replacementLength;

-		}

-		System.arraycopy(array, inStart, result, outStart, max - inStart);

-		return result;

-	}

-	

-	/**

-	 * Replace all occurrence of the character to be replaced with the remplacement character 

-	 * in a copy of the given array. Returns the given array if no occurrences of the character

-	 * to be replaced are found.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    toBeReplaced = 'b'

-	 *    replacementChar = 'a'

-	 *    result => A new array that is equals to { 'a' , 'a', 'a', 'a', 'a', 'a' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    toBeReplaced = 'c'

-	 *    replacementChar = 'a'

-	 *    result => The original array that remains unchanged.

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param array the given array

-	 * @param toBeReplaced the character to be replaced

-	 * @param replacementChar the replacement character

-	 * @throws NullPointerException if the given array is null

-	 * @since 3.1

-	 */

-	public static final char[] replaceOnCopy(

-		char[] array,

-		char toBeReplaced,

-		char replacementChar) {

-		

-		char[] result = null;

-		for (int i = 0, length = array.length; i < length; i++) {

-			char c = array[i];

-			if (c == toBeReplaced) {

-				if (result == null) {

-					result = new char[length];

-					System.arraycopy(array, 0, result, 0, i);

-				}

-				result[i] = replacementChar;

-			} else if (result != null) {

-				result[i] = c;

-			}

-		}

-		if (result == null) return array;

-		return result;

-	}

-

-	/**

-	 * Return a new array which is the split of the given array using the given divider and triming each subarray to remove

-	 * whitespaces equals to ' '.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    divider = 'b'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    result => { { 'a' }, {  }, { 'a' }, { 'a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    divider = 'c'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    divider = 'b'

-	 *    array = { 'a' , ' ', 'b', 'b', 'a', 'b', 'a' }

-	 *    result => { { 'a' }, {  }, { 'a' }, { 'a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    divider = 'c'

-	 *    array = { ' ', ' ', 'a' , 'b', 'b', 'a', 'b', 'a', ' ' }

-	 *    result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param divider the given divider

-	 * @param array the given array

-	 * @return a new array which is the split of the given array using the given divider and triming each subarray to remove

-	 * whitespaces equals to ' '

-	 */

-	public static final char[][] splitAndTrimOn(char divider, char[] array) {

-		int length = array == null ? 0 : array.length;

-		if (length == 0)

-			return NO_CHAR_CHAR;

-

-		int wordCount = 1;

-		for (int i = 0; i < length; i++)

-			if (array[i] == divider)

-				wordCount++;

-		char[][] split = new char[wordCount][];

-		int last = 0, currentWord = 0;

-		for (int i = 0; i < length; i++) {

-			if (array[i] == divider) {

-				int start = last, end = i - 1;

-				while (start < i && array[start] == ' ')

-					start++;

-				while (end > start && array[end] == ' ')

-					end--;

-				split[currentWord] = new char[end - start + 1];

-				System.arraycopy(

-					array,

-					start,

-					split[currentWord++],

-					0,

-					end - start + 1);

-				last = i + 1;

-			}

-		}

-		int start = last, end = length - 1;

-		while (start < length && array[start] == ' ')

-			start++;

-		while (end > start && array[end] == ' ')

-			end--;

-		split[currentWord] = new char[end - start + 1];

-		System.arraycopy(

-			array,

-			start,

-			split[currentWord++],

-			0,

-			end - start + 1);

-		return split;

-	}

-

-	/**

-	 * Return a new array which is the split of the given array using the given divider.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    divider = 'b'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    result => { { 'a' }, {  }, { 'a' }, { 'a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    divider = 'c'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    divider = 'c'

-	 *    array = { ' ', ' ', 'a' , 'b', 'b', 'a', 'b', 'a', ' ' }

-	 *    result => { { ' ', 'a', 'b', 'b', 'a', 'b', 'a', ' ' } }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param divider the given divider

-	 * @param array the given array

-	 * @return a new array which is the split of the given array using the given divider

-	 */

-	public static final char[][] splitOn(char divider, char[] array) {

-		int length = array == null ? 0 : array.length;

-		if (length == 0)

-			return NO_CHAR_CHAR;

-

-		int wordCount = 1;

-		for (int i = 0; i < length; i++)

-			if (array[i] == divider)

-				wordCount++;

-		char[][] split = new char[wordCount][];

-		int last = 0, currentWord = 0;

-		for (int i = 0; i < length; i++) {

-			if (array[i] == divider) {

-				split[currentWord] = new char[i - last];

-				System.arraycopy(

-					array,

-					last,

-					split[currentWord++],

-					0,

-					i - last);

-				last = i + 1;

-			}

-		}

-		split[currentWord] = new char[length - last];

-		System.arraycopy(array, last, split[currentWord], 0, length - last);

-		return split;

-	}

-

-	/**

-	 * Return a new array which is the split of the given array using the given divider. The given end 

-	 * is exclusive and the given start is inclusive.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    divider = 'b'

-	 *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }

-	 *    start = 2

-	 *    end = 5

-	 *    result => { {  }, { 'a' }, {  } }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param divider the given divider

-	 * @param array the given array

-	 * @param start the given starting index

-	 * @param end the given ending index

-	 * @return a new array which is the split of the given array using the given divider

-	 * @throws ArrayIndexOutOfBoundsException if start is lower than 0 or end is greater than the array length

-	 */

-	public static final char[][] splitOn(

-		char divider,

-		char[] array,

-		int start,

-		int end) {

-		int length = array == null ? 0 : array.length;

-		if (length == 0 || start > end)

-			return NO_CHAR_CHAR;

-

-		int wordCount = 1;

-		for (int i = start; i < end; i++)

-			if (array[i] == divider)

-				wordCount++;

-		char[][] split = new char[wordCount][];

-		int last = start, currentWord = 0;

-		for (int i = start; i < end; i++) {

-			if (array[i] == divider) {

-				split[currentWord] = new char[i - last];

-				System.arraycopy(

-					array,

-					last,

-					split[currentWord++],

-					0,

-					i - last);

-				last = i + 1;

-			}

-		}

-		split[currentWord] = new char[end - last];

-		System.arraycopy(array, last, split[currentWord], 0, end - last);

-		return split;

-	}

-

-	/**

-	 * Answers a new array which is a copy of the given array starting at the given start and 

-	 * ending at the given end. The given start is inclusive and the given end is exclusive.

-	 * Answers null if start is greater than end, if start is lower than 0 or if end is greater 

-	 * than the length of the given array. If end  equals -1, it is converted to the array length.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    array = { { 'a' } , { 'b' } }

-	 *    start = 0

-	 *    end = 1

-	 *    result => { { 'a' } }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { { 'a' } , { 'b' } }

-	 *    start = 0

-	 *    end = -1

-	 *    result => { { 'a' }, { 'b' } }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 *  

-	 * @param array the given array

-	 * @param start the given starting index

-	 * @param end the given ending index

-	 * @return a new array which is a copy of the given array starting at the given start and 

-	 * ending at the given end

-	 * @throws NullPointerException if the given array is null

-	 */

-	public static final char[][] subarray(char[][] array, int start, int end) {

-		if (end == -1)

-			end = array.length;

-		if (start > end)

-			return null;

-		if (start < 0)

-			return null;

-		if (end > array.length)

-			return null;

-

-		char[][] result = new char[end - start][];

-		System.arraycopy(array, start, result, 0, end - start);

-		return result;

-	}

-

-	/**

-	 * Answers a new array which is a copy of the given array starting at the given start and 

-	 * ending at the given end. The given start is inclusive and the given end is exclusive.

-	 * Answers null if start is greater than end, if start is lower than 0 or if end is greater 

-	 * than the length of the given array. If end  equals -1, it is converted to the array length.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    array = { 'a' , 'b' }

-	 *    start = 0

-	 *    end = 1

-	 *    result => { 'a' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'a', 'b' }

-	 *    start = 0

-	 *    end = -1

-	 *    result => { 'a' , 'b' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 *  

-	 * @param array the given array

-	 * @param start the given starting index

-	 * @param end the given ending index

-	 * @return a new array which is a copy of the given array starting at the given start and 

-	 * ending at the given end

-	 * @throws NullPointerException if the given array is null

-	 */

-	public static final char[] subarray(char[] array, int start, int end) {

-		if (end == -1)

-			end = array.length;

-		if (start > end)

-			return null;

-		if (start < 0)

-			return null;

-		if (end > array.length)

-			return null;

-

-		char[] result = new char[end - start];

-		System.arraycopy(array, start, result, 0, end - start);

-		return result;

-	}

-	/**

-	 * Answers the result of a char[] conversion to lowercase. Answers null if the given chars array is null.

-	 * <br>

-	 * NOTE: If no conversion was necessary, then answers back the argument one.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    chars = { 'a' , 'b' }

-	 *    result => { 'a' , 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'A', 'b' }

-	 *    result => { 'a' , 'b' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param chars the chars to convert

-	 * @return the result of a char[] conversion to lowercase

-	 */

-	final static public char[] toLowerCase(char[] chars) {

-		if (chars == null)

-			return null;

-		int length = chars.length;

-		char[] lowerChars = null;

-		for (int i = 0; i < length; i++) {

-			char c = chars[i];

-			char lc = Character.toLowerCase(c);

-			if ((c != lc) || (lowerChars != null)) {

-				if (lowerChars == null) {

-					System.arraycopy(

-						chars,

-						0,

-						lowerChars = new char[length],

-						0,

-						i);

-				}

-				lowerChars[i] = lc;

-			}

-		}

-		return lowerChars == null ? chars : lowerChars;

-	}

-

-	/**

-	 * Answers a new array removing leading and trailing spaces (' '). Answers the given array if there is no

-	 * space characters to remove.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    chars = { ' ', 'a' , 'b', ' ',  ' ' }

-	 *    result => { 'a' , 'b' }

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { 'A', 'b' }

-	 *    result => { 'A' , 'b' }

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param chars the given array

-	 * @return a new array removing leading and trailing spaces (' ')

-	 */

-	final static public char[] trim(char[] chars) {

-

-		if (chars == null)

-			return null;

-

-		int start = 0, length = chars.length, end = length - 1;

-		while (start < length && chars[start] == ' ') {

-			start++;

-		}

-		while (end > start && chars[end] == ' ') {

-			end--;

-		}

-		if (start != 0 || end != length - 1) {

-			return subarray(chars, start, end + 1);

-		}

-		return chars;

-	}

-

-	/**

-	 * Answers a string which is the concatenation of the given array using the '.' as a separator.

-	 * <br>

-	 * <br>

-	 * For example:

-	 * <ol>

-	 * <li><pre>

-	 *    array = { { 'a' } , { 'b' } }

-	 *    result => "a.b"

-	 * </pre>

-	 * </li>

-	 * <li><pre>

-	 *    array = { { ' ',  'a' } , { 'b' } }

-	 *    result => " a.b"

-	 * </pre>

-	 * </li>

-	 * </ol>

-	 * 

-	 * @param array the given array

-	 * @return a string which is the concatenation of the given array using the '.' as a separator

-	 */

-	final static public String toString(char[][] array) {

-		char[] result = concatWith(array, '.');

-		return new String(result);

-	}

-	/**

-	 * Answers an array of strings from the given array of char array.

-	 * 

-	 * @param array the given array

-	 * @return an array of strings

-	 * @since 3.0

-	 */

-	final static public String[] toStrings(char[][] array) {

-		if (array == null) return NO_STRINGS;

-		int length = array.length;

-		if (length == 0) return NO_STRINGS;

-		String[] result = new String[length];

-		for (int i = 0; i < length; i++)

-			result[i] = new String(array[i]);

-		return result;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/IProblem.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/IProblem.js
deleted file mode 100644
index f0b0899..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/IProblem.js
+++ /dev/null
@@ -1,983 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     IBM Corporation - added the following constants

- *								   NonStaticAccessToStaticField

- *								   NonStaticAccessToStaticMethod

- *								   Task

- *								   ExpressionShouldBeAVariable

- *								   AssignmentHasNoEffect

- *     IBM Corporation - added the following constants

- *								   TooManySyntheticArgumentSlots

- *								   TooManyArrayDimensions

- *								   TooManyBytesForStringConstant

- *								   TooManyMethods

- *								   TooManyFields

- *								   NonBlankFinalLocalAssignment

- *								   ObjectCannotHaveSuperTypes

- *								   MissingSemiColon

- *								   InvalidParenthesizedExpression

- *								   EnclosingInstanceInConstructorCall

- *								   BytecodeExceeds64KLimitForConstructor

- *								   IncompatibleReturnTypeForNonInheritedInterfaceMethod

- *								   UnusedPrivateMethod

- *								   UnusedPrivateConstructor

- *								   UnusedPrivateType

- *								   UnusedPrivateField

- *								   IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod

- *								   InvalidExplicitConstructorCall

- *     IBM Corporation - added the following constants

- *								   PossibleAccidentalBooleanAssignment

- *								   SuperfluousSemicolon

- *								   IndirectAccessToStaticField

- *								   IndirectAccessToStaticMethod

- *								   IndirectAccessToStaticType

- *								   BooleanMethodThrowingException

- *								   UnnecessaryCast

- *								   UnnecessaryArgumentCast

- *								   UnnecessaryInstanceof

- *								   FinallyMustCompleteNormally

- *								   UnusedMethodDeclaredThrownException

- *								   UnusedConstructorDeclaredThrownException

- *								   InvalidCatchBlockSequence

- *								   UnqualifiedFieldAccess

- *     IBM Corporation - added the following constants

- *								   Javadoc

- *								   JavadocUnexpectedTag

- *								   JavadocMissingParamTag

- *								   JavadocMissingParamName

- *								   JavadocDuplicateParamName

- *								   JavadocInvalidParamName

- *								   JavadocMissingReturnTag

- *								   JavadocDuplicateReturnTag

- *								   JavadocMissingThrowsTag

- *								   JavadocMissingThrowsClassName

- *								   JavadocInvalidThrowsClass

- *								   JavadocDuplicateThrowsClassName

- *								   JavadocInvalidThrowsClassName

- *								   JavadocMissingSeeReference

- *								   JavadocInvalidSeeReference

- *								   JavadocInvalidSeeHref

- *								   JavadocInvalidSeeArgs

- *								   JavadocMissing

- *								   JavadocInvalidTag

- *								   JavadocMessagePrefix

- *								   EmptyControlFlowStatement

- *     IBM Corporation - added the following constants

- *								   IllegalUsageOfQualifiedTypeReference

- *								   InvalidDigit

- ****************************************************************************/

-package org.eclipse.wst.jsdt.core.compiler;

- 

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ProblemReasons;

-

-/**

- * Description of a Java problem, as detected by the compiler or some of the underlying

- * technology reusing the compiler. 

- * A problem provides access to:

- * <ul>

- * <li> its location (originating source file name, source position, line number), </li>

- * <li> its message description and a predicate to check its severity (warning or error). </li>

- * <li> its ID : an number identifying the very nature of this problem. All possible IDs are listed

- * as constants on this interface. </li>

- * </ul>

- * 

- * Note: the compiler produces IProblems internally, which are turned into markers by the JavaBuilder

- * so as to persist problem descriptions. This explains why there is no API allowing to reach IProblem detected

- * when compiling. However, the Java problem markers carry equivalent information to IProblem, in particular

- * their ID (attribute "id") is set to one of the IDs defined on this interface.

- * 

- * @since 2.0

- */

-public interface IProblem { 

-	

-	/**

-	 * Answer back the original arguments recorded into the problem.

-	 * @return the original arguments recorded into the problem

-	 */

-	String[] getArguments();

-

-	/**

-	 * Returns the problem id

-	 * 

-	 * @return the problem id

-	 */

-	int getID();

-

-	/**

-	 * Answer a localized, human-readable message string which describes the problem.

-	 * 

-	 * @return a localized, human-readable message string which describes the problem

-	 */

-	String getMessage();

-

-	/**

-	 * Answer the file name in which the problem was found.

-	 * 

-	 * @return the file name in which the problem was found

-	 */

-	char[] getOriginatingFileName();

-	

-	/**

-	 * Answer the end position of the problem (inclusive), or -1 if unknown.

-	 * 

-	 * @return the end position of the problem (inclusive), or -1 if unknown

-	 */

-	int getSourceEnd();

-

-	/**

-	 * Answer the line number in source where the problem begins.

-	 * 

-	 * @return the line number in source where the problem begins

-	 */

-	int getSourceLineNumber();

-

-	/**

-	 * Answer the start position of the problem (inclusive), or -1 if unknown.

-	 * 

-	 * @return the start position of the problem (inclusive), or -1 if unknown

-	 */

-	int getSourceStart();

-

-	/**

-	 * Checks the severity to see if the Error bit is set.

-	 * 

-	 * @return true if the Error bit is set for the severity, false otherwise

-	 */

-	boolean isError();

-

-	/**

-	 * Checks the severity to see if the Error bit is not set.

-	 * 

-	 * @return true if the Error bit is not set for the severity, false otherwise

-	 */

-	boolean isWarning();

-

-	/**

-	 * Set the end position of the problem (inclusive), or -1 if unknown.

-	 * Used for shifting problem positions.

-	 * 

-	 * @param sourceEnd the given end position

-	 */

-	void setSourceEnd(int sourceEnd);

-

-	/**

-	 * Set the line number in source where the problem begins.

-	 * 

-	 * @param lineNumber the given line number

-	 */

-	void setSourceLineNumber(int lineNumber);

-

-	/**

-	 * Set the start position of the problem (inclusive), or -1 if unknown.

-	 * Used for shifting problem positions.

-	 * 

-	 * @param sourceStart the given start position

-	 */

-	void setSourceStart(int sourceStart);

-	

-	/**

-	 * Problem Categories

-	 * The high bits of a problem ID contains information about the category of a problem. 

-	 * For example, (problemID & TypeRelated) != 0, indicates that this problem is type related.

-	 * 

-	 * A problem category can help to implement custom problem filters. Indeed, when numerous problems

-	 * are listed, focusing on import related problems first might be relevant.

-	 * 

-	 * When a problem is tagged as Internal, it means that no change other than a local source code change

-	 * can  fix the corresponding problem.

-	 */

-	int TypeRelated = 0x01000000;

-	int FieldRelated = 0x02000000;

-	int MethodRelated = 0x04000000;

-	int ConstructorRelated = 0x08000000;

-	int ImportRelated = 0x10000000;

-	int Internal = 0x20000000;

-	int Syntax = 0x40000000;

-	/**

-	 * @since 3.0

-	 */

-	int Javadoc = 0x80000000;

-	

-	/**

-	 * Mask to use in order to filter out the category portion of the problem ID.

-	 */

-	int IgnoreCategoriesMask = 0xFFFFFF;

-

-	/**

-	 * Below are listed all available problem IDs. Note that this list could be augmented in the future, 

-	 * as new features are added to the Java core implementation.

-	 */

-

-	/**

-	 * ID reserved for referencing an internal error inside the JavaCore implementation which

-	 * may be surfaced as a problem associated with the compilation unit which caused it to occur.

-	 */

-	int Unclassified = 0;

-

-	/**

-	 * General type related problems

-	 */

-	int ObjectHasNoSuperclass = TypeRelated + 1;

-	int UndefinedType = TypeRelated + 2;

-	int NotVisibleType = TypeRelated + 3;

-	int AmbiguousType = TypeRelated + 4;

-	int UsingDeprecatedType = TypeRelated + 5;

-	int InternalTypeNameProvided = TypeRelated + 6;

-	/** @since 2.1 */

-	int UnusedPrivateType = Internal + TypeRelated + 7;

-

-	int IncompatibleTypesInEqualityOperator = TypeRelated + 15;

-	int IncompatibleTypesInConditionalOperator = TypeRelated + 16;

-	int TypeMismatch = TypeRelated + 17;

-	/** @since 3.0 */

-	int IndirectAccessToStaticType = Internal + TypeRelated + 18;

-	

-	/**

-	 * Inner types related problems

-	 */

-	int MissingEnclosingInstanceForConstructorCall = TypeRelated + 20;

-	int MissingEnclosingInstance = TypeRelated + 21;

-	int IncorrectEnclosingInstanceReference = TypeRelated + 22;

-	int IllegalEnclosingInstanceSpecification = TypeRelated + 23; 

-	int CannotDefineStaticInitializerInLocalType = Internal + 24;

-	int OuterLocalMustBeFinal = Internal + 25;

-	int CannotDefineInterfaceInLocalType = Internal + 26;

-	int IllegalPrimitiveOrArrayTypeForEnclosingInstance = TypeRelated + 27;

-	/** @since 2.1 */

-	int EnclosingInstanceInConstructorCall = Internal + 28;

-	int AnonymousClassCannotExtendFinalClass = TypeRelated + 29;

-

-	// variables

-	int UndefinedName = 50;

-	int UninitializedLocalVariable = Internal + 51;

-	int VariableTypeCannotBeVoid = Internal + 52;

-	int VariableTypeCannotBeVoidArray = Internal + 53;

-	int CannotAllocateVoidArray = Internal + 54;

-	// local variables

-	int RedefinedLocal = Internal + 55;

-	int RedefinedArgument = Internal + 56;

-	// final local variables

-	int DuplicateFinalLocalInitialization = Internal + 57;

-	/** @since 2.1 */

-	int NonBlankFinalLocalAssignment = Internal + 58;

-	

-	int FinalOuterLocalAssignment = Internal + 60;

-	int LocalVariableIsNeverUsed = Internal + 61;

-	int ArgumentIsNeverUsed = Internal + 62;

-	int BytecodeExceeds64KLimit = Internal + 63;

-	int BytecodeExceeds64KLimitForClinit = Internal + 64;

-	int TooManyArgumentSlots = Internal + 65;

-	int TooManyLocalVariableSlots = Internal + 66;

-	/** @since 2.1 */

-	int TooManySyntheticArgumentSlots = Internal + 67;

-	/** @since 2.1 */

-	int TooManyArrayDimensions = Internal + 68;

-	/** @since 2.1 */

-	int BytecodeExceeds64KLimitForConstructor = Internal + 69;

-

-	// fields

-	int UndefinedField = FieldRelated + 70;

-	int NotVisibleField = FieldRelated + 71;

-	int AmbiguousField = FieldRelated + 72;

-	int UsingDeprecatedField = FieldRelated + 73;

-	int NonStaticFieldFromStaticInvocation = FieldRelated + 74;

-	int ReferenceToForwardField = FieldRelated + Internal + 75;

-	/** @since 2.1 */

-	int NonStaticAccessToStaticField = Internal + FieldRelated + 76;

-	/** @since 2.1 */

-	int UnusedPrivateField = Internal + FieldRelated + 77;

-	/** @since 3.0 */

-	int IndirectAccessToStaticField = Internal + FieldRelated + 78;

-	/** @since 3.0 */

-	int UnqualifiedFieldAccess = Internal + FieldRelated + 79;

-	

-	// blank final fields

-	int FinalFieldAssignment = FieldRelated + 80;

-	int UninitializedBlankFinalField = FieldRelated + 81;

-	int DuplicateBlankFinalFieldInitialization = FieldRelated + 82;

-

-	// variable hiding

-	/**

-	 * The local variable {0} is hiding another local variable defined in an enclosing type scope 

-	 * @since 3.0

-	 */

-	int LocalVariableHidingLocalVariable = Internal + 90;		

-

-	/**

-	 * The local variable {0} is hiding the field {1}.{2} 

-	 * @since 3.0

-	 */

-	int LocalVariableHidingField = Internal + FieldRelated + 91;		

-	 

-	/**

-	 * The field {0}.{1} is hiding another local variable defined in an enclosing type scope

-	 * @since 3.0 

-	 */

-	int FieldHidingLocalVariable = Internal + FieldRelated + 92;		

-

-	/**

-	 * The field {0}.{1} is hiding the field {2}.{3}

-	 * @since 3.0 

-	 */

-	int FieldHidingField = Internal + FieldRelated + 93;		

-

-	/**

-	 * The argument {0} is hiding another local variable defined in an enclosing type scope

-	 * @since 3.0 

-	 */

-	int ArgumentHidingLocalVariable = Internal + 94;		

-

-	/**

-	 * The argument {0} is hiding the field {2}.{3}

-	 * @since 3.0 

-	 */

-	int ArgumentHidingField = Internal + 95;		

-	/** @since 3.1 */

-	int MissingSerialVersion = Internal + 96;

-	

-	// methods

-	int UndefinedMethod = MethodRelated + 100;

-	int NotVisibleMethod = MethodRelated + 101;

-	int AmbiguousMethod = MethodRelated + 102;

-	int UsingDeprecatedMethod = MethodRelated + 103;

-	int DirectInvocationOfAbstractMethod = MethodRelated + 104;

-	int VoidMethodReturnsValue = MethodRelated + 105;

-	int MethodReturnsVoid = MethodRelated + 106;

-	int MethodRequiresBody = Internal + MethodRelated + 107;

-	int ShouldReturnValue = Internal + MethodRelated + 108;

-	int MethodButWithConstructorName = MethodRelated + 110;

-	int MissingReturnType = TypeRelated + 111;

-	int BodyForNativeMethod = Internal + MethodRelated + 112;

-	int BodyForAbstractMethod = Internal + MethodRelated + 113;

-	int NoMessageSendOnBaseType = MethodRelated + 114;

-	int ParameterMismatch = MethodRelated + 115;

-	int NoMessageSendOnArrayType = MethodRelated + 116;

-	/** @since 2.1 */

-    int NonStaticAccessToStaticMethod = Internal + MethodRelated + 117;

-	/** @since 2.1 */

-	int UnusedPrivateMethod = Internal + MethodRelated + 118;

-	/** @since 3.0 */

-	int IndirectAccessToStaticMethod = Internal + MethodRelated + 119;

-

-	    

-	// constructors

-	int UndefinedConstructor = ConstructorRelated + 130;

-	int NotVisibleConstructor = ConstructorRelated + 131;

-	int AmbiguousConstructor = ConstructorRelated + 132;

-	int UsingDeprecatedConstructor = ConstructorRelated + 133;

-	/** @since 2.1 */

-	int UnusedPrivateConstructor = Internal + MethodRelated + 134;

-	// explicit constructor calls

-	int InstanceFieldDuringConstructorInvocation = ConstructorRelated + 135;

-	int InstanceMethodDuringConstructorInvocation = ConstructorRelated + 136;

-	int RecursiveConstructorInvocation = ConstructorRelated + 137;

-	int ThisSuperDuringConstructorInvocation = ConstructorRelated + 138;

-	/** @since 3.0 */

-	int InvalidExplicitConstructorCall = ConstructorRelated + Syntax + 139;

-	// implicit constructor calls

-	int UndefinedConstructorInDefaultConstructor = ConstructorRelated + 140;

-	int NotVisibleConstructorInDefaultConstructor = ConstructorRelated + 141;

-	int AmbiguousConstructorInDefaultConstructor = ConstructorRelated + 142;

-	int UndefinedConstructorInImplicitConstructorCall = ConstructorRelated + 143;

-	int NotVisibleConstructorInImplicitConstructorCall = ConstructorRelated + 144;

-	int AmbiguousConstructorInImplicitConstructorCall = ConstructorRelated + 145;

-	int UnhandledExceptionInDefaultConstructor = TypeRelated + 146;

-	int UnhandledExceptionInImplicitConstructorCall = TypeRelated + 147;

-				

-	// expressions

-	int ArrayReferenceRequired = Internal + 150;

-	int NoImplicitStringConversionForCharArrayExpression = Internal + 151;

-	// constant expressions

-	int StringConstantIsExceedingUtf8Limit = Internal + 152;

-	int NonConstantExpression = 153;

-	int NumericValueOutOfRange = Internal + 154;

-	// cast expressions

-	int IllegalCast = TypeRelated + 156;

-	// allocations

-	int InvalidClassInstantiation = TypeRelated + 157;

-	int CannotDefineDimensionExpressionsWithInit = Internal + 158;

-	int MustDefineEitherDimensionExpressionsOrInitializer = Internal + 159;

-	// operators

-	int InvalidOperator = Internal + 160;

-	// statements

-	int CodeCannotBeReached = Internal + 161;

-	int CannotReturnInInitializer = Internal + 162;

-	int InitializerMustCompleteNormally = Internal + 163;

-	// assert

-	int InvalidVoidExpression = Internal + 164;

-	// try

-	int MaskedCatch = TypeRelated + 165;

-	int DuplicateDefaultCase = 166;

-	int UnreachableCatch = TypeRelated + MethodRelated + 167;

-	int UnhandledException = TypeRelated + 168;

-	// switch       

-	int IncorrectSwitchType = TypeRelated + 169;

-	int DuplicateCase = FieldRelated + 170;

-	// labelled

-	int DuplicateLabel = Internal + 171;

-	int InvalidBreak = Internal + 172;

-	int InvalidContinue = Internal + 173;

-	int UndefinedLabel = Internal + 174;

-	//synchronized

-	int InvalidTypeToSynchronized = Internal + 175;

-	int InvalidNullToSynchronized = Internal + 176;

-	// throw

-	int CannotThrowNull = Internal + 177;

-	// assignment

-	/** @since 2.1 */

-	int AssignmentHasNoEffect = Internal + 178;

-	/** @since 3.0 */

-	int PossibleAccidentalBooleanAssignment = Internal + 179;

-	/** @since 3.0 */

-	int SuperfluousSemicolon = Internal + 180;

-	/** @since 3.0 */

-	int UnnecessaryCast = Internal + TypeRelated + 181;

-	/** @since 3.0 */

-	int UnnecessaryArgumentCast = Internal + TypeRelated + 182;

-	/** @since 3.0 */

-	int UnnecessaryInstanceof = Internal + TypeRelated + 183;	

-	/** @since 3.0 */

-	int FinallyMustCompleteNormally = Internal + 184;	

-	/** @since 3.0 */

-	int UnusedMethodDeclaredThrownException = Internal + 185;	

-	/** @since 3.0 */

-	int UnusedConstructorDeclaredThrownException = Internal + 186;	

-	/** @since 3.0 */

-	int InvalidCatchBlockSequence = Internal + TypeRelated + 187;

-	/** @since 3.0 */

-	int EmptyControlFlowStatement = Internal + TypeRelated + 188;	

-	/** @since 3.0 */

-	int UnnecessaryElse = Internal + 189;	

-

-	// inner emulation

-	int NeedToEmulateFieldReadAccess = FieldRelated + 190;

-	int NeedToEmulateFieldWriteAccess = FieldRelated + 191;

-	int NeedToEmulateMethodAccess = MethodRelated + 192;

-	int NeedToEmulateConstructorAccess = MethodRelated + 193;

-

-	//inherited name hides enclosing name (sort of ambiguous)

-	int InheritedMethodHidesEnclosingName = MethodRelated + 195;

-	int InheritedFieldHidesEnclosingName = FieldRelated + 196;

-	int InheritedTypeHidesEnclosingName = TypeRelated + 197;

-

-	/** @since 3.1 */

-	int IllegalUsageOfQualifiedTypeReference = Internal + Syntax + 198;

-

-	// miscellaneous

-	int ThisInStaticContext = Internal + 200;

-	int StaticMethodRequested = Internal + MethodRelated + 201;

-	int IllegalDimension = Internal + 202;

-	int InvalidTypeExpression = Internal + 203;

-	int ParsingError = Syntax + Internal + 204;

-	int ParsingErrorNoSuggestion = Syntax + Internal + 205;

-	int InvalidUnaryExpression = Syntax + Internal + 206;

-

-	// syntax errors

-	int InterfaceCannotHaveConstructors = Syntax + Internal + 207;

-	int ArrayConstantsOnlyInArrayInitializers = Syntax + Internal + 208;

-	int ParsingErrorOnKeyword = Syntax + Internal + 209;	

-	int ParsingErrorOnKeywordNoSuggestion = Syntax + Internal + 210;

-

-	int UnmatchedBracket = Syntax + Internal + 220;

-	int NoFieldOnBaseType = FieldRelated + 221;

-	int InvalidExpressionAsStatement = Syntax + Internal + 222;

-	/** @since 2.1 */

-	int ExpressionShouldBeAVariable = Syntax + Internal + 223;

-	/** @since 2.1 */

-	int MissingSemiColon = Syntax + Internal + 224;

-	/** @since 2.1 */

-	int InvalidParenthesizedExpression = Syntax + Internal + 225;

-	

-	/** @since 3.0 */

-	int ParsingErrorInsertTokenBefore = Syntax + Internal + 230;

-	/** @since 3.0 */

-	int ParsingErrorInsertTokenAfter = Syntax + Internal + 231;

-	/** @since 3.0 */

-    int ParsingErrorDeleteToken = Syntax + Internal + 232;

-    /** @since 3.0 */

-    int ParsingErrorDeleteTokens = Syntax + Internal + 233;

-    /** @since 3.0 */

-    int ParsingErrorMergeTokens = Syntax + Internal + 234;

-    /** @since 3.0 */

-    int ParsingErrorInvalidToken = Syntax + Internal + 235;

-    /** @since 3.0 */

-    int ParsingErrorMisplacedConstruct = Syntax + Internal + 236;

-    /** @since 3.0 */

-    int ParsingErrorReplaceTokens = Syntax + Internal + 237;

-    /** @since 3.0 */

-    int ParsingErrorNoSuggestionForTokens = Syntax + Internal + 238;

-    /** @since 3.0 */

-    int ParsingErrorUnexpectedEOF = Syntax + Internal + 239;

-    /** @since 3.0 */

-    int ParsingErrorInsertToComplete = Syntax + Internal + 240;

-    /** @since 3.0 */

-    int ParsingErrorInsertToCompleteScope = Syntax + Internal + 241;

-    /** @since 3.0 */

-    int ParsingErrorInsertToCompletePhrase = Syntax + Internal + 242;

-    

-	// scanner errors

-	int EndOfSource = Syntax + Internal + 250;

-	int InvalidHexa = Syntax + Internal + 251;

-	int InvalidOctal = Syntax + Internal + 252;

-	int InvalidCharacterConstant = Syntax + Internal + 253;

-	int InvalidEscape = Syntax + Internal + 254;

-	int InvalidInput = Syntax + Internal + 255;

-	int InvalidUnicodeEscape = Syntax + Internal + 256;

-	int InvalidFloat = Syntax + Internal + 257;

-	int NullSourceString = Syntax + Internal + 258;

-	int UnterminatedString = Syntax + Internal + 259;

-	int UnterminatedComment = Syntax + Internal + 260;

-	/** @since 3.1 */

-	int InvalidDigit = Syntax + Internal + 262;	

-

-	// type related problems

-	int InterfaceCannotHaveInitializers = TypeRelated + 300;

-	int DuplicateModifierForType = TypeRelated + 301;

-	int IllegalModifierForClass = TypeRelated + 302;

-	int IllegalModifierForInterface = TypeRelated + 303;

-	int IllegalModifierForMemberClass = TypeRelated + 304;

-	int IllegalModifierForMemberInterface = TypeRelated + 305;

-	int IllegalModifierForLocalClass = TypeRelated + 306;

-	int ForbiddenReference = TypeRelated + 307;

-	int IllegalModifierCombinationFinalAbstractForClass = TypeRelated + 308;

-	int IllegalVisibilityModifierForInterfaceMemberType = TypeRelated + 309;

-	int IllegalVisibilityModifierCombinationForMemberType = TypeRelated + 310;

-	int IllegalStaticModifierForMemberType = TypeRelated + 311;

-	int SuperclassMustBeAClass = TypeRelated + 312;

-	int ClassExtendFinalClass = TypeRelated + 313;

-	int DuplicateSuperInterface = TypeRelated + 314;

-	int SuperInterfaceMustBeAnInterface = TypeRelated + 315;

-	int HierarchyCircularitySelfReference = TypeRelated + 316;

-	int HierarchyCircularity = TypeRelated + 317;

-	int HidingEnclosingType = TypeRelated + 318;

-	int DuplicateNestedType = TypeRelated + 319;

-	int CannotThrowType = TypeRelated + 320;

-	int PackageCollidesWithType = TypeRelated + 321;

-	int TypeCollidesWithPackage = TypeRelated + 322;

-	int DuplicateTypes = TypeRelated + 323;

-	int IsClassPathCorrect = TypeRelated + 324;

-	int PublicClassMustMatchFileName = TypeRelated + 325;

-	int MustSpecifyPackage = 326;

-	int HierarchyHasProblems = TypeRelated + 327;

-	int PackageIsNotExpectedPackage = 328;

-	/** @since 2.1 */

-	int ObjectCannotHaveSuperTypes = 329;

-

-	/** @deprecated - problem is no longer generated, UndefinedType is used instead */

-	int SuperclassNotFound =  TypeRelated + 329 + ProblemReasons.NotFound; // TypeRelated + 330

-	/** @deprecated - problem is no longer generated, NotVisibleType is used instead */

-	int SuperclassNotVisible =  TypeRelated + 329 + ProblemReasons.NotVisible; // TypeRelated + 331

-	/** @deprecated - problem is no longer generated, use AmbiguousType is used instead */

-	int SuperclassAmbiguous =  TypeRelated + 329 + ProblemReasons.Ambiguous; // TypeRelated + 332

-	/** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */

-	int SuperclassInternalNameProvided =  TypeRelated + 329 + ProblemReasons.InternalNameProvided; // TypeRelated + 333

-	/** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */

-	int SuperclassInheritedNameHidesEnclosingName =  TypeRelated + 329 + ProblemReasons.InheritedNameHidesEnclosingName; // TypeRelated + 334

-

-	/** @deprecated - problem is no longer generated, UndefinedType is used instead */

-	int InterfaceNotFound =  TypeRelated + 334 + ProblemReasons.NotFound; // TypeRelated + 335

-	/** @deprecated - problem is no longer generated, NotVisibleType is used instead */

-	int InterfaceNotVisible =  TypeRelated + 334 + ProblemReasons.NotVisible; // TypeRelated + 336

-	/** @deprecated - problem is no longer generated, use AmbiguousType is used instead */

-	int InterfaceAmbiguous =  TypeRelated + 334 + ProblemReasons.Ambiguous; // TypeRelated + 337

-	/** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */

-	int InterfaceInternalNameProvided =  TypeRelated + 334 + ProblemReasons.InternalNameProvided; // TypeRelated + 338

-	/** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */

-	int InterfaceInheritedNameHidesEnclosingName =  TypeRelated + 334 + ProblemReasons.InheritedNameHidesEnclosingName; // TypeRelated + 339

-

-	// field related problems

-	int DuplicateField = FieldRelated + 340;

-	int DuplicateModifierForField = FieldRelated + 341;

-	int IllegalModifierForField = FieldRelated + 342;

-	int IllegalModifierForInterfaceField = FieldRelated + 343;

-	int IllegalVisibilityModifierCombinationForField = FieldRelated + 344;

-	int IllegalModifierCombinationFinalVolatileForField = FieldRelated + 345;

-	int UnexpectedStaticModifierForField = FieldRelated + 346;

-

-	/** @deprecated - problem is no longer generated, UndefinedType is used instead */

-	int FieldTypeNotFound =  FieldRelated + 349 + ProblemReasons.NotFound; // FieldRelated + 350

-	/** @deprecated - problem is no longer generated, NotVisibleType is used instead */

-	int FieldTypeNotVisible =  FieldRelated + 349 + ProblemReasons.NotVisible; // FieldRelated + 351

-	/** @deprecated - problem is no longer generated, use AmbiguousType is used instead */

-	int FieldTypeAmbiguous =  FieldRelated + 349 + ProblemReasons.Ambiguous; // FieldRelated + 352

-	/** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */

-	int FieldTypeInternalNameProvided =  FieldRelated + 349 + ProblemReasons.InternalNameProvided; // FieldRelated + 353

-	/** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */

-	int FieldTypeInheritedNameHidesEnclosingName =  FieldRelated + 349 + ProblemReasons.InheritedNameHidesEnclosingName; // FieldRelated + 354

-	

-	// method related problems

-	int DuplicateMethod = MethodRelated + 355;

-	int IllegalModifierForArgument = MethodRelated + 356;

-	int DuplicateModifierForMethod = MethodRelated + 357;

-	int IllegalModifierForMethod = MethodRelated + 358;

-	int IllegalModifierForInterfaceMethod = MethodRelated + 359;

-	int IllegalVisibilityModifierCombinationForMethod = MethodRelated + 360;

-	int UnexpectedStaticModifierForMethod = MethodRelated + 361;

-	int IllegalAbstractModifierCombinationForMethod = MethodRelated + 362;

-	int AbstractMethodInAbstractClass = MethodRelated + 363;

-	int ArgumentTypeCannotBeVoid = MethodRelated + 364;

-	int ArgumentTypeCannotBeVoidArray = MethodRelated + 365;

-	int ReturnTypeCannotBeVoidArray = MethodRelated + 366;

-	int NativeMethodsCannotBeStrictfp = MethodRelated + 367;

-	int DuplicateModifierForArgument = MethodRelated + 368;

-

-	/** @deprecated - problem is no longer generated, UndefinedType is used instead */

-	int ArgumentTypeNotFound =  MethodRelated + 369 + ProblemReasons.NotFound; // MethodRelated + 370

-	/** @deprecated - problem is no longer generated, NotVisibleType is used instead */

-	int ArgumentTypeNotVisible =  MethodRelated + 369 + ProblemReasons.NotVisible; // MethodRelated + 371

-	/** @deprecated - problem is no longer generated, use AmbiguousType is used instead */

-	int ArgumentTypeAmbiguous =  MethodRelated + 369 + ProblemReasons.Ambiguous; // MethodRelated + 372

-	/** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */

-	int ArgumentTypeInternalNameProvided =  MethodRelated + 369 + ProblemReasons.InternalNameProvided; // MethodRelated + 373

-	/** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */

-	int ArgumentTypeInheritedNameHidesEnclosingName =  MethodRelated + 369 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 374

-

-	/** @deprecated - problem is no longer generated, UndefinedType is used instead */

-	int ExceptionTypeNotFound =  MethodRelated + 374 + ProblemReasons.NotFound; // MethodRelated + 375

-	/** @deprecated - problem is no longer generated, NotVisibleType is used instead */

-	int ExceptionTypeNotVisible =  MethodRelated + 374 + ProblemReasons.NotVisible; // MethodRelated + 376

-	/** @deprecated - problem is no longer generated, use AmbiguousType is used instead */

-	int ExceptionTypeAmbiguous =  MethodRelated + 374 + ProblemReasons.Ambiguous; // MethodRelated + 377

-	/** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */

-	int ExceptionTypeInternalNameProvided =  MethodRelated + 374 + ProblemReasons.InternalNameProvided; // MethodRelated + 378

-	/** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */

-	int ExceptionTypeInheritedNameHidesEnclosingName =  MethodRelated + 374 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 379

-

-	/** @deprecated - problem is no longer generated, UndefinedType is used instead */

-	int ReturnTypeNotFound =  MethodRelated + 379 + ProblemReasons.NotFound; // MethodRelated + 380

-	/** @deprecated - problem is no longer generated, NotVisibleType is used instead */

-	int ReturnTypeNotVisible =  MethodRelated + 379 + ProblemReasons.NotVisible; // MethodRelated + 381

-	/** @deprecated - problem is no longer generated, use AmbiguousType is used instead */

-	int ReturnTypeAmbiguous =  MethodRelated + 379 + ProblemReasons.Ambiguous; // MethodRelated + 382

-	/** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */

-	int ReturnTypeInternalNameProvided =  MethodRelated + 379 + ProblemReasons.InternalNameProvided; // MethodRelated + 383

-	/** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */

-	int ReturnTypeInheritedNameHidesEnclosingName =  MethodRelated + 379 + ProblemReasons.InheritedNameHidesEnclosingName; // MethodRelated + 384

-

-	// import related problems

-	int ConflictingImport = ImportRelated + 385;

-	int DuplicateImport = ImportRelated + 386;

-	int CannotImportPackage = ImportRelated + 387;

-	int UnusedImport = ImportRelated + 388;

-

-	int ImportNotFound =  ImportRelated + 389 + ProblemReasons.NotFound; // ImportRelated + 390

-	/** @deprecated - problem is no longer generated, NotVisibleType is used instead */

-	int ImportNotVisible =  ImportRelated + 389 + ProblemReasons.NotVisible; // ImportRelated + 391

-	/** @deprecated - problem is no longer generated, use AmbiguousType is used instead */

-	int ImportAmbiguous =  ImportRelated + 389 + ProblemReasons.Ambiguous; // ImportRelated + 392

-	/** @deprecated - problem is no longer generated, use InternalTypeNameProvided is used instead */

-	int ImportInternalNameProvided =  ImportRelated + 389 + ProblemReasons.InternalNameProvided; // ImportRelated + 393

-	/** @deprecated - problem is no longer generated, use InheritedTypeHidesEnclosingName is used instead */

-	int ImportInheritedNameHidesEnclosingName =  ImportRelated + 389 + ProblemReasons.InheritedNameHidesEnclosingName; // ImportRelated + 394

-

-	// local variable related problems

-	int DuplicateModifierForVariable = MethodRelated + 395;

-	int IllegalModifierForVariable = MethodRelated + 396;

-

-	// method verifier problems

-	int AbstractMethodMustBeImplemented = MethodRelated + 400;

-	int FinalMethodCannotBeOverridden = MethodRelated + 401;

-	int IncompatibleExceptionInThrowsClause = MethodRelated + 402;

-	int IncompatibleExceptionInInheritedMethodThrowsClause = MethodRelated + 403;

-	int IncompatibleReturnType = MethodRelated + 404;

-	int InheritedMethodReducesVisibility = MethodRelated + 405;

-	int CannotOverrideAStaticMethodWithAnInstanceMethod = MethodRelated + 406;

-	int CannotHideAnInstanceMethodWithAStaticMethod = MethodRelated + 407;

-	int StaticInheritedMethodConflicts = MethodRelated + 408;

-	int MethodReducesVisibility = MethodRelated + 409;

-	int OverridingNonVisibleMethod = MethodRelated + 410;

-	int AbstractMethodCannotBeOverridden = MethodRelated + 411;

-	int OverridingDeprecatedMethod = MethodRelated + 412;

-	/** @since 2.1 */

-	int IncompatibleReturnTypeForNonInheritedInterfaceMethod = MethodRelated + 413;

-	/** @since 2.1 */

-	int IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod = MethodRelated + 414;

-	

-	// code snippet support

-	int CodeSnippetMissingClass = Internal + 420;

-	int CodeSnippetMissingMethod = Internal + 421;

-	int NonExternalizedStringLiteral = Internal + 261;

-	int CannotUseSuperInCodeSnippet = Internal + 422;

-	

-	//constant pool

-	int TooManyConstantsInConstantPool = Internal + 430;

-	/** @since 2.1 */

-	int TooManyBytesForStringConstant = Internal + 431;

-

-	// static constraints

-	/** @since 2.1 */

-	int TooManyFields = Internal + 432;

-	/** @since 2.1 */

-	int TooManyMethods = Internal + 433; 

-		

-	// 1.4 features

-	// assertion warning

-	int UseAssertAsAnIdentifier = Internal + 440;

-	

-	// 1.5 features

-	int UseEnumAsAnIdentifier = Internal + 441;

-	

-	// detected task

-	/** @since 2.1 */

-	int Task = Internal + 450;

-	

-	// block

-	/** @since 3.0 */

-	int UndocumentedEmptyBlock = Internal + 460;

-		

-	/*

-	 * Javadoc comments

-	 */

-	/** @since 3.0 */

-	int JavadocUnexpectedTag = Javadoc + Internal + 470;

-	/** @since 3.0 */

-	int JavadocMissingParamTag = Javadoc + Internal + 471;

-	/** @since 3.0 */

-	int JavadocMissingParamName = Javadoc + Internal + 472;

-	/** @since 3.0 */

-	int JavadocDuplicateParamName = Javadoc + Internal + 473;

-	/** @since 3.0 */

-	int JavadocInvalidParamName = Javadoc + Internal + 474;

-	/** @since 3.0 */

-	int JavadocMissingReturnTag = Javadoc + Internal + 475;

-	/** @since 3.0 */

-	int JavadocDuplicateReturnTag = Javadoc + Internal + 476;

-	/** @since 3.0 */

-	int JavadocMissingThrowsTag = Javadoc + Internal + 477;

-	/** @since 3.0 */

-	int JavadocMissingThrowsClassName = Javadoc + Internal + 478;

-	/** @since 3.0 */

-	int JavadocInvalidThrowsClass = Javadoc + Internal + 479;

-	/** @since 3.0 */

-	int JavadocDuplicateThrowsClassName = Javadoc + Internal + 480;

-	/** @since 3.0 */

-	int JavadocInvalidThrowsClassName = Javadoc + Internal + 481;

-	/** @since 3.0 */

-	int JavadocMissingReference = Javadoc + Internal + 482;

-	/** @since 3.0 */

-	int JavadocInvalidReference = Javadoc + Internal + 483;

-	/** @since 3.0 */

-	int JavadocInvalidSeeHref = Javadoc + Internal + 484;

-	/** @since 3.0 */

-	int JavadocInvalidSeeArgs = Javadoc + Internal + 485;

-	/** @since 3.0 */

-	int JavadocMissing = Javadoc + Internal + 486;

-	/** @since 3.0 */

-	int JavadocInvalidTag = Javadoc + Internal + 487;

-	/*

-	 * ID for field errors in Javadoc

-	 */

-	/** @since 3.0 */

-	int JavadocUndefinedField = Javadoc + Internal + 488;

-	/** @since 3.0 */

-	int JavadocNotVisibleField = Javadoc + Internal + 489;

-	/** @since 3.0 */

-	int JavadocAmbiguousField = Javadoc + Internal + 490;

-	/** @since 3.0 */

-	int JavadocUsingDeprecatedField = Javadoc + Internal + 491;

-	/*

-	 * IDs for constructor errors in Javadoc

-	 */

-	/** @since 3.0 */

-	int JavadocUndefinedConstructor = Javadoc + Internal + 492;

-	/** @since 3.0 */

-	int JavadocNotVisibleConstructor = Javadoc + Internal + 493;

-	/** @since 3.0 */

-	int JavadocAmbiguousConstructor = Javadoc + Internal + 494;

-	/** @since 3.0 */

-	int JavadocUsingDeprecatedConstructor = Javadoc + Internal + 495;

-	/*

-	 * IDs for method errors in Javadoc

-	 */

-	/** @since 3.0 */

-	int JavadocUndefinedMethod = Javadoc + Internal + 496;

-	/** @since 3.0 */

-	int JavadocNotVisibleMethod = Javadoc + Internal + 497;

-	/** @since 3.0 */

-	int JavadocAmbiguousMethod = Javadoc + Internal + 498;

-	/** @since 3.0 */

-	int JavadocUsingDeprecatedMethod = Javadoc + Internal + 499;

-	/** @since 3.0 */

-	int JavadocNoMessageSendOnBaseType = Javadoc + Internal + 500;

-	/** @since 3.0 */

-	int JavadocParameterMismatch = Javadoc + Internal + 501;

-	/** @since 3.0 */

-	int JavadocNoMessageSendOnArrayType = Javadoc + Internal + 502;

-	/*

-	 * IDs for type errors in Javadoc

-	 */

-	/** @since 3.0 */

-	int JavadocUndefinedType = Javadoc + Internal + 503;

-	/** @since 3.0 */

-	int JavadocNotVisibleType = Javadoc + Internal + 504;

-	/** @since 3.0 */

-	int JavadocAmbiguousType = Javadoc + Internal + 505;

-	/** @since 3.0 */

-	int JavadocUsingDeprecatedType = Javadoc + Internal + 506;

-	/** @since 3.0 */

-	int JavadocInternalTypeNameProvided = Javadoc + Internal + 507;

-	/** @since 3.0 */

-	int JavadocInheritedMethodHidesEnclosingName = Javadoc + Internal + 508;

-	/** @since 3.0 */

-	int JavadocInheritedFieldHidesEnclosingName = Javadoc + Internal + 509;

-	/** @since 3.0 */

-	int JavadocInheritedNameHidesEnclosingTypeName = Javadoc + Internal + 510;

-	/** @since 3.0 */

-	int JavadocAmbiguousMethodReference = Javadoc + Internal + 511;

-	/** @since 3.0 */

-	int JavadocUnterminatedInlineTag = Javadoc + Internal + 512;

-	/** @since 3.0 */

-	int JavadocMissingHashCharacter = Javadoc + Internal + 513;

-	/** @since 3.0 */

-	int JavadocMalformedSeeReference = Javadoc + Internal + 514;

-	/** @since 3.0 */

-	int JavadocEmptyReturnTag = Javadoc + Internal + 515;

-	/** @since 3.1 */

-	int JavadocInvalidValueReference = Javadoc + Internal + 516;

-	/** @since 3.1 */

-	int JavadocUnexpectedText = Javadoc + Internal + 517;

-	/** @since 3.0 */

-	int JavadocMessagePrefix = Internal + 519;

-

-	/**

-	 * Generics

-	 */

-	/** @since 3.1 */

-	int DuplicateTypeVariable = Internal + 520;

-	/** @since 3.1 */

-	int IllegalTypeVariableSuperReference = Internal + 521;

-	/** @since 3.1 */

-	int TypeVariableReferenceFromStaticContext = Internal + 522;

-	/** @since 3.1 */

-	int ObjectCannotBeGeneric = Internal + 523;

-	/** @since 3.1 */

-	int NonGenericType = TypeRelated + 524;

-	/** @since 3.1 */

-	int IncorrectArityForParameterizedType = TypeRelated + 525;

-	/** @since 3.1 */

-	int TypeArgumentMismatch = TypeRelated + 526;

-	/** @since 3.1 */

-	int DuplicateMethodErasure = TypeRelated + 527;

-	/** @since 3.1 */

-	int ReferenceToForwardTypeVariable = TypeRelated + 528;

-    /** @since 3.1 */

-	int BoundsMustBeAnInterface = TypeRelated + 529;	

-    /** @since 3.1 */

-	int UnsafeRawConstructorInvocation = TypeRelated + 530;

-    /** @since 3.1 */

-	int UnsafeRawMethodInvocation = TypeRelated + 531;

-    /** @since 3.1 */

-	int UnsafeRawConversion = TypeRelated + 532;

-    /** @since 3.1 */

-	int InvalidTypeVariableExceptionType = TypeRelated + 533;

-	/** @since 3.1 */

-	int InvalidParameterizedExceptionType = TypeRelated + 534;

-	/** @since 3.1 */

-	int IllegalGenericArray = TypeRelated + 535;

-	/** @since 3.1 */

-	int UnsafeRawFieldAssignment = TypeRelated + 536;

-	/** @since 3.1 */

-	int FinalBoundForTypeVariable = TypeRelated + 537;

-	/** @since 3.1 */

-	int UndefinedTypeVariable = Internal + 538;

-	/** @since 3.1 */

-	int SuperInterfacesCollide = TypeRelated + 539;

-	/** @since 3.1 */

-	int WildcardConstructorInvocation = TypeRelated + 540;

-	/** @since 3.1 */

-	int WildcardMethodInvocation = TypeRelated + 541;

-	/** @since 3.1 */

-	int WildcardFieldAssignment = TypeRelated + 542;

-	/** @since 3.1 */

-	int GenericMethodTypeArgumentMismatch = TypeRelated + 543;

-	/** @since 3.1 */

-	int GenericConstructorTypeArgumentMismatch = TypeRelated + 544;

-	/** @since 3.1 */

-	int UnsafeGenericCast = TypeRelated + 545;

-	/** @since 3.1 */

-	int IllegalInstanceofParameterizedType = Internal + 546;

-	/** @since 3.1 */

-	int IllegalInstanceofTypeParameter = Internal + 547;

-	/** @since 3.1 */

-	int NonGenericMethod = TypeRelated + 548;

-	/** @since 3.1 */

-	int IncorrectArityForParameterizedMethod = TypeRelated + 549;

-	/** @since 3.1 */

-	int ParameterizedMethodArgumentTypeMismatch = TypeRelated + 550;

-	/** @since 3.1 */

-	int NonGenericConstructor = TypeRelated + 551;

-	/** @since 3.1 */

-	int IncorrectArityForParameterizedConstructor = TypeRelated + 552;

-	/** @since 3.1 */

-	int ParameterizedConstructorArgumentTypeMismatch = TypeRelated + 553;

-	/** @since 3.1 */

-	int TypeArgumentsForRawGenericMethod = TypeRelated + 554;

-	/** @since 3.1 */

-	int TypeArgumentsForRawGenericConstructor = TypeRelated + 555;

-	/** @since 3.1 */

-	int SuperTypeUsingWildcard = TypeRelated + 556;

-	/** @since 3.1 */

-	int GenericTypeCannotExtendThrowable = TypeRelated + 557;

-	/** @since 3.1 */

-	int IllegalClassLiteralForTypeVariable = TypeRelated + 558;

-	/** @since 3.1 */

-	int UnsafeReturnTypeOverride = MethodRelated + 559;

-	/** @since 3.1 */

-	int MethodNameClash = MethodRelated + 560;

-	/** @since 3.1 */

-	int RawMemberTypeCannotBeParameterized = TypeRelated + 561;

-	/** @since 3.1 */

-	int MissingArgumentsForParameterizedMemberType = TypeRelated + 562;	

-	/** @since 3.1 */

-	int StaticMemberOfParameterizedType = TypeRelated + 563;	

-	

-	/**

-	 * Foreach

-	 */

-	/** @since 3.1 */	

-	int IncompatibleTypesInForeach = TypeRelated + 580;	

-	/** @since 3.1 */

-	int InvalidTypeForCollection = Internal + 581;

-	

-	/**

-	 * 1.5 Syntax errors (when source level < 1.5)

-	 */

-	/** @since 3.1 */

-    int InvalidUsageOfTypeParameters = Syntax + Internal + 590;

-    /** @since 3.1 */

-    int InvalidUsageOfStaticImports = Syntax + Internal + 591;

-    /** @since 3.1 */

-    int InvalidUsageOfForeachStatements = Syntax + Internal + 592;

-    /** @since 3.1 */

-    int InvalidUsageOfTypeArguments = Syntax + Internal + 593;

-    /** @since 3.1 */

-    int InvalidUsageOfEnumDeclarations = Syntax + Internal + 594;

-    /** @since 3.1 */

-    int InvalidUsageOfVarargs = Syntax + Internal + 595;

-    /** @since 3.1 */

-    int InvalidUsageOfAnnotations = Syntax + Internal + 596;

-    /** @since 3.1 */

-    int InvalidUsageOfAnnotationDeclarations = Syntax + Internal + 597;

-    

-    /**

-     * Annotation

-     */

-    /** @since 3.0 */

-    int AnnotationButConstructorName = MethodRelated + 600;

-    /** @since 3.0 */

-    int IllegalExtendedDimensions = MethodRelated + 601;

-    /** @since 3.0 */

-	int InvalidFileNameForPackageAnnotations = Syntax + Internal + 602;

-	

-	/**

-	 * Corrupted binaries

-	 */

-	int CorruptedSignature = Internal + 700;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/InvalidInputException.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/InvalidInputException.js
deleted file mode 100644
index 3ae990d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/InvalidInputException.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.wst.jsdt.core.compiler;

-

-/**

- * Exception thrown by a scanner when encountering lexical errors.

- */

-public class InvalidInputException extends Exception {

-

-	private static final long serialVersionUID = 2909732853499731592L; // backward compatible

-	

-	/**

-	 * Creates a new exception with no detail message.

-	 */

-	public InvalidInputException() {

-		super();

-	}

-	/**

-	 * Creates a new exception with the given detail message.

-	 * @param message the detail message

-	 */

-	public InvalidInputException(String message) {

-		super(message);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/package.html b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/package.html
deleted file mode 100644
index b039ea2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/core/compiler/package.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-This package contains compiler associated infrastructure APIs.
-<h2>
-Package Specification</h2>
-
-<p><br>This package contains some compiler tooling APIs, allowing to perform operations at a lower-level 
-than using the JavaModel.
-</body>
-</html>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ASTVisitor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ASTVisitor.js
deleted file mode 100644
index 20a5de7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ASTVisitor.js
+++ /dev/null
@@ -1,924 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*; 

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-/** 

- * A visitor for iterating through the parse tree.

- */

-public abstract class ASTVisitor {

-

-	public void acceptProblem(IProblem problem) {

-		// do nothing by default

-	}

-	public void endVisit(

-		AllocationExpression allocationExpression,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(AND_AND_Expression and_and_Expression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-			AnnotationTypeDeclaration annotationTypeDeclaration,

-			BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-			AnnotationTypeDeclaration annotationTypeDeclaration,

-			ClassScope scope) {

-		// do nothing by default

-	}	

-	public void endVisit(

-			AnnotationTypeDeclaration annotationTypeDeclaration,

-			CompilationUnitScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-			AnnotationTypeMemberDeclaration annotationTypeDeclaration,

-			ClassScope classScope) {

-			// do nothing by default

-	}	

-	public void endVisit(Argument argument, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		ArrayAllocationExpression arrayAllocationExpression,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ArrayInitializer arrayInitializer, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		ArrayQualifiedTypeReference arrayQualifiedTypeReference,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		ArrayQualifiedTypeReference arrayQualifiedTypeReference,

-		ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ArrayReference arrayReference, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ArrayTypeReference arrayTypeReference, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ArrayTypeReference arrayTypeReference, ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(AssertStatement assertStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(Assignment assignment, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(BinaryExpression binaryExpression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(Block block, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(BreakStatement breakStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(CaseStatement caseStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(CastExpression castExpression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(CharLiteral charLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ClassLiteralAccess classLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(Clinit clinit, ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		CompilationUnitDeclaration compilationUnitDeclaration,

-		CompilationUnitScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(CompoundAssignment compoundAssignment, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		ConditionalExpression conditionalExpression,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		ConstructorDeclaration constructorDeclaration,

-		ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ContinueStatement continueStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(DoStatement doStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(DoubleLiteral doubleLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(EmptyStatement emptyStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(EnumConstant enumDeclaration, ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(EnumDeclaration enumDeclaration, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(EnumDeclaration enumDeclaration, ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(EnumDeclaration enumDeclaration, CompilationUnitScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(EqualExpression equalExpression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		ExplicitConstructorCall explicitConstructor,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		ExtendedStringLiteral extendedStringLiteral,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(FalseLiteral falseLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(FieldDeclaration fieldDeclaration, MethodScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(FieldReference fieldReference, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(FloatLiteral floatLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ForeachStatement forStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ForStatement forStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(IfStatement ifStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ImportReference importRef, CompilationUnitScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(Initializer initializer, MethodScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		InstanceOfExpression instanceOfExpression,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(IntLiteral intLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocArgumentExpression expression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocArrayQualifiedTypeReference typeRef, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocArraySingleTypeReference typeRef, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocFieldReference fieldRef, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocMessageSend messageSend, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocQualifiedTypeReference typeRef, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocReturnStatement statement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocSingleNameReference argument, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(JavadocSingleTypeReference typeRef, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(LabeledStatement labeledStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(LocalDeclaration localDeclaration, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(LongLiteral longLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(MarkerAnnotation annotation, BlockScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(MarkerAnnotation annotation, ClassScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(MarkerAnnotation annotation, CompilationUnitScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param pair

-	 * @param scope

-	 */

-	public void endVisit(MemberValuePair pair, BlockScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param pair

-	 * @param scope

-	 */

-	public void endVisit(MemberValuePair pair, ClassScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param pair

-	 * @param scope

-	 */

-	public void endVisit(MemberValuePair pair, CompilationUnitScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(MessageSend messageSend, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(MethodDeclaration methodDeclaration, ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(StringLiteralConcatenation literal, BlockScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(NormalAnnotation annotation, BlockScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(NormalAnnotation annotation, ClassScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(NormalAnnotation annotation, CompilationUnitScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(NullLiteral nullLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(OR_OR_Expression or_or_Expression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference, ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ParameterizedSingleTypeReference parameterizedSingleTypeReference, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ParameterizedSingleTypeReference parameterizedSingleTypeReference, ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(PostfixExpression postfixExpression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(PrefixExpression prefixExpression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		QualifiedAllocationExpression qualifiedAllocationExpression,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		QualifiedNameReference qualifiedNameReference,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		QualifiedSuperReference qualifiedSuperReference,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		QualifiedThisReference qualifiedThisReference,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		QualifiedTypeReference qualifiedTypeReference,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		QualifiedTypeReference qualifiedTypeReference,

-		ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ReturnStatement returnStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(SingleMemberAnnotation annotation, BlockScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(SingleMemberAnnotation annotation, ClassScope scope) {

-		// do nothing by default

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public void endVisit(SingleMemberAnnotation annotation, CompilationUnitScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		SingleNameReference singleNameReference,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		SingleTypeReference singleTypeReference,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		SingleTypeReference singleTypeReference,

-		ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(StringLiteral stringLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(SuperReference superReference, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(SwitchStatement switchStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		SynchronizedStatement synchronizedStatement,

-		BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ThisReference thisReference, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(ThrowStatement throwStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(TrueLiteral trueLiteral, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(TryStatement tryStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		TypeDeclaration localTypeDeclaration,

-		BlockScope scope) {

-		// do nothing by default

-	}	

-	public void endVisit(

-		TypeDeclaration memberTypeDeclaration,

-		ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(

-		TypeDeclaration typeDeclaration,

-		CompilationUnitScope scope) {

-		// do nothing by default

-	}	

-	public void endVisit(TypeParameter typeParameter, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(TypeParameter typeParameter, ClassScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(UnaryExpression unaryExpression, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(WhileStatement whileStatement, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(Wildcard wildcard, BlockScope scope) {

-		// do nothing by default

-	}

-	public void endVisit(Wildcard wildcard, ClassScope scope) {

-		// do nothing by default

-	}

-	public boolean visit(

-		AllocationExpression allocationExpression,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(AND_AND_Expression and_and_Expression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-			AnnotationTypeDeclaration annotationTypeDeclaration,

-			BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-			AnnotationTypeDeclaration annotationTypeDeclaration,

-			ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}	

-	public boolean visit(

-			AnnotationTypeDeclaration annotationTypeDeclaration,

-			CompilationUnitScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-			AnnotationTypeMemberDeclaration annotationTypeDeclaration,

-			ClassScope classScope) {

-		return true; // do nothing by default, keep traversing

-	}	

-	public boolean visit(Argument argument, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		ArrayAllocationExpression arrayAllocationExpression,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ArrayInitializer arrayInitializer, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		ArrayQualifiedTypeReference arrayQualifiedTypeReference,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		ArrayQualifiedTypeReference arrayQualifiedTypeReference,

-		ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ArrayReference arrayReference, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ArrayTypeReference arrayTypeReference, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ArrayTypeReference arrayTypeReference, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(AssertStatement assertStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(Assignment assignment, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(BinaryExpression binaryExpression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(Block block, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(BreakStatement breakStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(CaseStatement caseStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(CastExpression castExpression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(CharLiteral charLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ClassLiteralAccess classLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(Clinit clinit, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		CompilationUnitDeclaration compilationUnitDeclaration,

-		CompilationUnitScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(CompoundAssignment compoundAssignment, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		ConditionalExpression conditionalExpression,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		ConstructorDeclaration constructorDeclaration,

-		ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ContinueStatement continueStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(DoStatement doStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(DoubleLiteral doubleLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(EmptyStatement emptyStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(EnumConstant enumConstant, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(EnumDeclaration enumDeclaration, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(EnumDeclaration enumDeclaration, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(EnumDeclaration enumDeclaration, CompilationUnitScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(EqualExpression equalExpression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		ExplicitConstructorCall explicitConstructor,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		ExtendedStringLiteral extendedStringLiteral,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(FalseLiteral falseLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(FieldDeclaration fieldDeclaration, MethodScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(FieldReference fieldReference, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(FloatLiteral floatLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ForeachStatement forStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ForStatement forStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(IfStatement ifStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ImportReference importRef, CompilationUnitScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(Initializer initializer, MethodScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		InstanceOfExpression instanceOfExpression,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(IntLiteral intLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocArgumentExpression expression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocArrayQualifiedTypeReference typeRef, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocArraySingleTypeReference typeRef, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocFieldReference fieldRef, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocMessageSend messageSend, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocQualifiedTypeReference typeRef, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocReturnStatement statement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocSingleNameReference argument, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(JavadocSingleTypeReference typeRef, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(LabeledStatement labeledStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(LocalDeclaration localDeclaration, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(LongLiteral longLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(MarkerAnnotation annotation, BlockScope scope) {

-		return true;

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(MarkerAnnotation annotation, ClassScope scope) {

-		return true;

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(MarkerAnnotation annotation, CompilationUnitScope scope) {

-		return true;

-	}

-	/**

-	 * @param pair

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(MemberValuePair pair, BlockScope scope) {

-		return true;

-	}

-	/**

-	 * @param pair

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(MemberValuePair pair, ClassScope scope) {

-		return true;

-	}

-	/**

-	 * @param pair

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(MemberValuePair pair, CompilationUnitScope scope) {

-		return true;

-	}

-	public boolean visit(MessageSend messageSend, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(MethodDeclaration methodDeclaration, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-			StringLiteralConcatenation literal,

-			BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(NormalAnnotation annotation, BlockScope scope) {

-		return true;

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(NormalAnnotation annotation, ClassScope scope) {

-		return true;

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(NormalAnnotation annotation, CompilationUnitScope scope) {

-		return true;

-	}

-	public boolean visit(NullLiteral nullLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(OR_OR_Expression or_or_Expression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ParameterizedQualifiedTypeReference parameterizedQualifiedTypeReference, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ParameterizedSingleTypeReference parameterizedSingleTypeReference, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ParameterizedSingleTypeReference parameterizedSingleTypeReference, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(PostfixExpression postfixExpression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(PrefixExpression prefixExpression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		QualifiedAllocationExpression qualifiedAllocationExpression,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		QualifiedNameReference qualifiedNameReference,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		QualifiedSuperReference qualifiedSuperReference,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		QualifiedThisReference qualifiedThisReference,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		QualifiedTypeReference qualifiedTypeReference,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		QualifiedTypeReference qualifiedTypeReference,

-		ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ReturnStatement returnStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(SingleMemberAnnotation annotation, BlockScope scope) {

-		return true;

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(SingleMemberAnnotation annotation, ClassScope scope) {

-		return true;

-	}

-	/**

-	 * @param annotation

-	 * @param scope

-	 * @since 3.1

-	 */

-	public boolean visit(SingleMemberAnnotation annotation, CompilationUnitScope scope) {

-		return true;

-	}

-	public boolean visit(

-		SingleNameReference singleNameReference,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		SingleTypeReference singleTypeReference,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		SingleTypeReference singleTypeReference,

-		ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(StringLiteral stringLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(SuperReference superReference, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(SwitchStatement switchStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		SynchronizedStatement synchronizedStatement,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ThisReference thisReference, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(ThrowStatement throwStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(TrueLiteral trueLiteral, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(TryStatement tryStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		TypeDeclaration localTypeDeclaration,

-		BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(

-		TypeDeclaration memberTypeDeclaration,

-		ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}	

-	public boolean visit(

-		TypeDeclaration typeDeclaration,

-		CompilationUnitScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(TypeParameter typeParameter, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(TypeParameter typeParameter, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(UnaryExpression unaryExpression, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(WhileStatement whileStatement, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(Wildcard wildcard, BlockScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-	public boolean visit(Wildcard wildcard, ClassScope scope) {

-		return true; // do nothing by default, keep traversing

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ClassFile.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ClassFile.js
deleted file mode 100644
index 157a108..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ClassFile.js
+++ /dev/null
@@ -1,3040 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-import java.io.*;

-import java.util.StringTokenizer;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.StringConstant;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-/**

- * Represents a class file wrapper on bytes, it is aware of its actual

- * type name.

- *

- * Public APIs are listed below:

- *

- * byte[] getBytes();

- *		Answer the actual bytes of the class file

- *

- * char[][] getCompoundName();

- * 		Answer the compound name of the class file.

- * 		For example, {{java}, {util}, {Hashtable}}.

- *

- * byte[] getReducedBytes();

- * 		Answer a smaller byte format, which is only contains some structural 

- *      information. Those bytes are decodable with a regular class file reader, 

- *      such as DietClassFileReader

- */

-public class ClassFile

-	implements AttributeNamesConstants, CompilerModifiers, TypeConstants, TypeIds {

-	public SourceTypeBinding referenceBinding;

-	public ConstantPool constantPool;

-	public ClassFile enclosingClassFile;

-	// used to generate private access methods

-	public int produceDebugAttributes;

-	public ReferenceBinding[] innerClassesBindings;

-	public int numberOfInnerClasses;

-	public byte[] header;

-	// the header contains all the bytes till the end of the constant pool

-	public byte[] contents;

-	// that collection contains all the remaining bytes of the .class file

-	public int headerOffset;

-	public int contentsOffset;

-	public int constantPoolOffset;

-	public int methodCountOffset;

-	public int methodCount;

-	protected boolean creatingProblemType;

-	public static final int INITIAL_CONTENTS_SIZE = 400;

-	public static final int INITIAL_HEADER_SIZE = 1500;

-	public boolean ownSharedArrays = false; // flag set when header/contents are set to shared arrays

-	public static final int INNER_CLASSES_SIZE = 5;

-	public CodeStream codeStream;

-	public long targetJDK;

-	

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods creates a new instance of the receiver.

-	 */

-	public ClassFile() {

-		// default constructor for subclasses

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods creates a new instance of the receiver.

-	 *

-	 * @param aType org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding

-	 * @param enclosingClassFile org.eclipse.wst.jsdt.internal.compiler.ClassFile

-	 * @param creatingProblemType <CODE>boolean</CODE>

-	 */

-	public ClassFile(

-		SourceTypeBinding aType,

-		ClassFile enclosingClassFile,

-		boolean creatingProblemType) {

-	    

-		this.referenceBinding = aType;

-		initByteArrays();

-

-		// generate the magic numbers inside the header

-		header[headerOffset++] = (byte) (0xCAFEBABEL >> 24);

-		header[headerOffset++] = (byte) (0xCAFEBABEL >> 16);

-		header[headerOffset++] = (byte) (0xCAFEBABEL >> 8);

-		header[headerOffset++] = (byte) (0xCAFEBABEL >> 0);

-		

-		final CompilerOptions options = aType.scope.environment().options;

-		this.targetJDK = options.targetJDK;

-		header[headerOffset++] = (byte) (this.targetJDK >> 8); // minor high

-		header[headerOffset++] = (byte) (this.targetJDK >> 0); // minor low

-		header[headerOffset++] = (byte) (this.targetJDK >> 24); // major high

-		header[headerOffset++] = (byte) (this.targetJDK >> 16); // major low

-

-		constantPoolOffset = headerOffset;

-		headerOffset += 2;

-		constantPool = new ConstantPool(this);

-		

-		// Modifier manipulations for classfile

-		int accessFlags = aType.getAccessFlags();

-		if (aType.isPrivate()) { // rewrite private to non-public

-			accessFlags &= ~AccPublic;

-		}

-		if (aType.isProtected()) { // rewrite protected into public

-			accessFlags |= AccPublic;

-		}

-		// clear all bits that are illegal for a class or an interface

-		accessFlags

-			&= ~(

-				AccStrictfp

-					| AccProtected

-					| AccPrivate

-					| AccStatic

-					| AccSynchronized

-					| AccNative);

-					

-		// set the AccSuper flag (has to be done after clearing AccSynchronized - since same value)

-		if (aType.isClass()) {

-			accessFlags |= AccSuper;

-		}

-		

-		this.enclosingClassFile = enclosingClassFile;

-		// innerclasses get their names computed at code gen time

-

-		// now we continue to generate the bytes inside the contents array

-		contents[contentsOffset++] = (byte) (accessFlags >> 8);

-		contents[contentsOffset++] = (byte) accessFlags;

-		int classNameIndex = constantPool.literalIndex(aType);

-		contents[contentsOffset++] = (byte) (classNameIndex >> 8);

-		contents[contentsOffset++] = (byte) classNameIndex;

-		int superclassNameIndex;

-		if (aType.isInterface()) {

-			superclassNameIndex = constantPool.literalIndexForJavaLangObject();

-		} else {

-			superclassNameIndex =

-				(aType.superclass == null ? 0 : constantPool.literalIndex(aType.superclass));

-		}

-		contents[contentsOffset++] = (byte) (superclassNameIndex >> 8);

-		contents[contentsOffset++] = (byte) superclassNameIndex;

-		ReferenceBinding[] superInterfacesBinding = aType.superInterfaces();

-		int interfacesCount = superInterfacesBinding.length;

-		contents[contentsOffset++] = (byte) (interfacesCount >> 8);

-		contents[contentsOffset++] = (byte) interfacesCount;

-		for (int i = 0; i < interfacesCount; i++) {

-			int interfaceIndex = constantPool.literalIndex(superInterfacesBinding[i]);

-			contents[contentsOffset++] = (byte) (interfaceIndex >> 8);

-			contents[contentsOffset++] = (byte) interfaceIndex;

-		}

-		produceDebugAttributes = options.produceDebugAttributes;

-		innerClassesBindings = new ReferenceBinding[INNER_CLASSES_SIZE];

-		this.creatingProblemType = creatingProblemType;

-		codeStream = new CodeStream(this, this.targetJDK);

-

-		// retrieve the enclosing one guaranteed to be the one matching the propagated flow info

-		// 1FF9ZBU: LFCOM:ALL - Local variable attributes busted (Sanity check)

-		ClassFile outermostClassFile = this.outerMostEnclosingClassFile();

-		if (this == outermostClassFile) {

-			codeStream.maxFieldCount = aType.scope.referenceType().maxFieldCount;

-		} else {

-			codeStream.maxFieldCount = outermostClassFile.codeStream.maxFieldCount;

-		}

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a boggus method.

-	 *

-	 * @param method org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.MethodBinding

-	 */

-	public void addAbstractMethod(

-		AbstractMethodDeclaration method,

-		MethodBinding methodBinding) {

-

-		// force the modifiers to be public and abstract

-		methodBinding.modifiers = AccPublic | AccAbstract;

-

-		this.generateMethodInfoHeader(methodBinding);

-		int methodAttributeOffset = this.contentsOffset;

-		int attributeNumber = this.generateMethodInfoAttribute(methodBinding);

-		this.completeMethodInfo(methodAttributeOffset, attributeNumber);

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods generate all the attributes for the receiver.

-	 * For a class they could be:

-	 * - source file attribute

-	 * - inner classes attribute

-	 * - deprecated attribute

-	 */

-	public void addAttributes() {

-		// update the method count

-		contents[methodCountOffset++] = (byte) (methodCount >> 8);

-		contents[methodCountOffset] = (byte) methodCount;

-

-		int attributeNumber = 0;

-		// leave two bytes for the number of attributes and store the current offset

-		int attributeOffset = contentsOffset;

-		contentsOffset += 2;

-

-		// source attribute

-		if ((produceDebugAttributes & CompilerOptions.Source) != 0) {

-			String fullFileName =

-				new String(referenceBinding.scope.referenceCompilationUnit().getFileName());

-			fullFileName = fullFileName.replace('\\', '/');

-			int lastIndex = fullFileName.lastIndexOf('/');

-			if (lastIndex != -1) {

-				fullFileName = fullFileName.substring(lastIndex + 1, fullFileName.length());

-			}

-			// check that there is enough space to write all the bytes for the field info corresponding

-			// to the @fieldBinding

-			if (contentsOffset + 8 >= contents.length) {

-				resizeContents(8);

-			}

-			int sourceAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.SourceName);

-			contents[contentsOffset++] = (byte) (sourceAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) sourceAttributeNameIndex;

-			// The length of a source file attribute is 2. This is a fixed-length

-			// attribute

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 2;

-			// write the source file name

-			int fileNameIndex = constantPool.literalIndex(fullFileName.toCharArray());

-			contents[contentsOffset++] = (byte) (fileNameIndex >> 8);

-			contents[contentsOffset++] = (byte) fileNameIndex;

-			attributeNumber++;

-		}

-		// Deprecated attribute

-		if (referenceBinding.isDeprecated()) {

-			// check that there is enough space to write all the bytes for the field info corresponding

-			// to the @fieldBinding

-			if (contentsOffset + 6 >= contents.length) {

-				resizeContents(6);

-			}

-			int deprecatedAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.DeprecatedName);

-			contents[contentsOffset++] = (byte) (deprecatedAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) deprecatedAttributeNameIndex;

-			// the length of a deprecated attribute is equals to 0

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			attributeNumber++;

-		}

-		// Inner class attribute

-		if (numberOfInnerClasses != 0) {

-			// Generate the inner class attribute

-			int exSize = 8 * numberOfInnerClasses + 8;

-			if (exSize + contentsOffset >= this.contents.length) {

-				resizeContents(exSize);

-			}

-			// Now we now the size of the attribute and the number of entries

-			// attribute name

-			int attributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.InnerClassName);

-			contents[contentsOffset++] = (byte) (attributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) attributeNameIndex;

-			int value = (numberOfInnerClasses << 3) + 2;

-			contents[contentsOffset++] = (byte) (value >> 24);

-			contents[contentsOffset++] = (byte) (value >> 16);

-			contents[contentsOffset++] = (byte) (value >> 8);

-			contents[contentsOffset++] = (byte) value;

-			contents[contentsOffset++] = (byte) (numberOfInnerClasses >> 8);

-			contents[contentsOffset++] = (byte) numberOfInnerClasses;

-			for (int i = 0; i < numberOfInnerClasses; i++) {

-				ReferenceBinding innerClass = innerClassesBindings[i];

-				int accessFlags = innerClass.getAccessFlags();

-				int innerClassIndex = constantPool.literalIndex(innerClass);

-				// inner class index

-				contents[contentsOffset++] = (byte) (innerClassIndex >> 8);

-				contents[contentsOffset++] = (byte) innerClassIndex;

-				// outer class index: anonymous and local have no outer class index

-				if (innerClass.isMemberType()) {

-					// member or member of local

-					int outerClassIndex = constantPool.literalIndex(innerClass.enclosingType());

-					contents[contentsOffset++] = (byte) (outerClassIndex >> 8);

-					contents[contentsOffset++] = (byte) outerClassIndex;

-				} else {

-					// equals to 0 if the innerClass is not a member type

-					contents[contentsOffset++] = 0;

-					contents[contentsOffset++] = 0;

-				}

-				// name index

-				if (!innerClass.isAnonymousType()) {

-					int nameIndex = constantPool.literalIndex(innerClass.sourceName());

-					contents[contentsOffset++] = (byte) (nameIndex >> 8);

-					contents[contentsOffset++] = (byte) nameIndex;

-				} else {

-					// equals to 0 if the innerClass is an anonymous type

-					contents[contentsOffset++] = 0;

-					contents[contentsOffset++] = 0;

-				}

-				// access flag

-				if (innerClass.isAnonymousType()) {

-					accessFlags |= AccPrivate;

-				} else

-					if (innerClass.isLocalType() && !innerClass.isMemberType()) {

-						accessFlags |= AccPrivate;

-					}

-				contents[contentsOffset++] = (byte) (accessFlags >> 8);

-				contents[contentsOffset++] = (byte) accessFlags;

-			}

-			attributeNumber++;

-		}

-		// add signature attribute

-		char[] genericSignature = referenceBinding.genericSignature();

-		if (genericSignature != null) {

-			// check that there is enough space to write all the bytes for the field info corresponding

-			// to the @fieldBinding

-			if (contentsOffset + 8 >= contents.length) {

-				resizeContents(8);

-			}

-			int signatureAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.SignatureName);

-			contents[contentsOffset++] = (byte) (signatureAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) signatureAttributeNameIndex;

-			// the length of a signature attribute is equals to 2

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 2;

-			int signatureIndex =

-				constantPool.literalIndex(genericSignature);

-			contents[contentsOffset++] = (byte) (signatureIndex >> 8);

-			contents[contentsOffset++] = (byte) signatureIndex;

-			attributeNumber++;

-		}

-		

-		// update the number of attributes

-		if (attributeOffset + 2 >= this.contents.length) {

-			resizeContents(2);

-		}

-		contents[attributeOffset++] = (byte) (attributeNumber >> 8);

-		contents[attributeOffset] = (byte) attributeNumber;

-

-		// resynchronize all offsets of the classfile

-		header = constantPool.poolContent;

-		headerOffset = constantPool.currentOffset;

-		int constantPoolCount = constantPool.currentIndex;

-		header[constantPoolOffset++] = (byte) (constantPoolCount >> 8);

-		header[constantPoolOffset] = (byte) constantPoolCount;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods generate all the default abstract method infos that correpond to

-	 * the abstract methods inherited from superinterfaces.

-	 */

-	public void addDefaultAbstractMethods() { // default abstract methods

-		MethodBinding[] defaultAbstractMethods =

-			referenceBinding.getDefaultAbstractMethods();

-		for (int i = 0, max = defaultAbstractMethods.length; i < max; i++) {

-			generateMethodInfoHeader(defaultAbstractMethods[i]);

-			int methodAttributeOffset = contentsOffset;

-			int attributeNumber = generateMethodInfoAttribute(defaultAbstractMethods[i]);

-			completeMethodInfo(methodAttributeOffset, attributeNumber);

-		}

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods generates the bytes for the field binding passed like a parameter

-	 * @param fieldBinding org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding

-	 */

-	public void addFieldInfo(FieldBinding fieldBinding) {

-		int attributeNumber = 0;

-		// check that there is enough space to write all the bytes for the field info corresponding

-		// to the @fieldBinding

-		if (contentsOffset + 30 >= contents.length) {

-			resizeContents(30);

-		}

-		// Now we can generate all entries into the byte array

-		// First the accessFlags

-		int accessFlags = fieldBinding.getAccessFlags();

-		if (targetJDK < ClassFileConstants.JDK1_5) {

-		    // pre 1.5, synthetic was an attribute, not a modifier

-		    accessFlags &= ~AccSynthetic;

-		}		

-		contents[contentsOffset++] = (byte) (accessFlags >> 8);

-		contents[contentsOffset++] = (byte) accessFlags;

-		// Then the nameIndex

-		int nameIndex = constantPool.literalIndex(fieldBinding.name);

-		contents[contentsOffset++] = (byte) (nameIndex >> 8);

-		contents[contentsOffset++] = (byte) nameIndex;

-		// Then the descriptorIndex

-		int descriptorIndex = constantPool.literalIndex(fieldBinding.type.signature());

-		contents[contentsOffset++] = (byte) (descriptorIndex >> 8);

-		contents[contentsOffset++] = (byte) descriptorIndex;

-		// leave some space for the number of attributes

-		int fieldAttributeOffset = contentsOffset;

-		contentsOffset += 2;

-		// 4.7.2 only static constant fields get a ConstantAttribute

-		// Generate the constantValueAttribute

-		if (fieldBinding.isConstantValue()){

-			if (contentsOffset + 8 >= contents.length) {

-				resizeContents(8);

-			}

-			// Now we generate the constant attribute corresponding to the fieldBinding

-			int constantValueNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.ConstantValueName);

-			contents[contentsOffset++] = (byte) (constantValueNameIndex >> 8);

-			contents[contentsOffset++] = (byte) constantValueNameIndex;

-			// The attribute length = 2 in case of a constantValue attribute

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 2;

-			attributeNumber++;

-			// Need to add the constant_value_index

-			Constant fieldConstant = fieldBinding.constant();

-			switch (fieldConstant.typeID()) {

-				case T_boolean :

-					int booleanValueIndex =

-						constantPool.literalIndex(fieldConstant.booleanValue() ? 1 : 0);

-					contents[contentsOffset++] = (byte) (booleanValueIndex >> 8);

-					contents[contentsOffset++] = (byte) booleanValueIndex;

-					break;

-				case T_byte :

-				case T_char :

-				case T_int :

-				case T_short :

-					int integerValueIndex =

-						constantPool.literalIndex(fieldConstant.intValue());

-					contents[contentsOffset++] = (byte) (integerValueIndex >> 8);

-					contents[contentsOffset++] = (byte) integerValueIndex;

-					break;

-				case T_float :

-					int floatValueIndex =

-						constantPool.literalIndex(fieldConstant.floatValue());

-					contents[contentsOffset++] = (byte) (floatValueIndex >> 8);

-					contents[contentsOffset++] = (byte) floatValueIndex;

-					break;

-				case T_double :

-					int doubleValueIndex =

-						constantPool.literalIndex(fieldConstant.doubleValue());

-					contents[contentsOffset++] = (byte) (doubleValueIndex >> 8);

-					contents[contentsOffset++] = (byte) doubleValueIndex;

-					break;

-				case T_long :

-					int longValueIndex =

-						constantPool.literalIndex(fieldConstant.longValue());

-					contents[contentsOffset++] = (byte) (longValueIndex >> 8);

-					contents[contentsOffset++] = (byte) longValueIndex;

-					break;

-				case T_String :

-					int stringValueIndex =

-						constantPool.literalIndex(

-							((StringConstant) fieldConstant).stringValue());

-					if (stringValueIndex == -1) {

-						if (!creatingProblemType) {

-							// report an error and abort: will lead to a problem type classfile creation

-							TypeDeclaration typeDeclaration = referenceBinding.scope.referenceContext;

-							FieldDeclaration[] fieldDecls = typeDeclaration.fields;

-							for (int i = 0, max = fieldDecls.length; i < max; i++) {

-								if (fieldDecls[i].binding == fieldBinding) {

-									// problem should abort

-									typeDeclaration.scope.problemReporter().stringConstantIsExceedingUtf8Limit(

-										fieldDecls[i]);

-								}

-							}

-						} else {

-							// already inside a problem type creation : no constant for this field

-							contentsOffset = fieldAttributeOffset + 2;

-							// +2 is necessary to keep the two byte space for the attribute number

-							attributeNumber--;

-						}

-					} else {

-						contents[contentsOffset++] = (byte) (stringValueIndex >> 8);

-						contents[contentsOffset++] = (byte) stringValueIndex;

-					}

-			}

-		}

-		if (this.targetJDK < ClassFileConstants.JDK1_5 && fieldBinding.isSynthetic()) {

-			if (contentsOffset + 6 >= contents.length) {

-				resizeContents(6);

-			}

-			int syntheticAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.SyntheticName);

-			contents[contentsOffset++] = (byte) (syntheticAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) syntheticAttributeNameIndex;

-			// the length of a synthetic attribute is equals to 0

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			attributeNumber++;

-		}

-		if (fieldBinding.isDeprecated()) {

-			if (contentsOffset + 6 >= contents.length) {

-				resizeContents(6);

-			}

-			int deprecatedAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.DeprecatedName);

-			contents[contentsOffset++] = (byte) (deprecatedAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) deprecatedAttributeNameIndex;

-			// the length of a deprecated attribute is equals to 0

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			attributeNumber++;

-		}

-		// add signature attribute

-		char[] genericSignature = fieldBinding.genericSignature();

-		if (genericSignature != null) {

-			// check that there is enough space to write all the bytes for the field info corresponding

-			// to the @fieldBinding

-			if (contentsOffset + 8 >= contents.length) {

-				resizeContents(8);

-			}

-			int signatureAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.SignatureName);

-			contents[contentsOffset++] = (byte) (signatureAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) signatureAttributeNameIndex;

-			// the length of a signature attribute is equals to 2

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 2;

-			int signatureIndex =

-				constantPool.literalIndex(genericSignature);

-			contents[contentsOffset++] = (byte) (signatureIndex >> 8);

-			contents[contentsOffset++] = (byte) signatureIndex;

-			attributeNumber++;

-		}				

-		contents[fieldAttributeOffset++] = (byte) (attributeNumber >> 8);

-		contents[fieldAttributeOffset] = (byte) attributeNumber;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods generate all the fields infos for the receiver.

-	 * This includes:

-	 * - a field info for each defined field of that class

-	 * - a field info for each synthetic field (e.g. this$0)

-	 */

-	public void addFieldInfos() {

-		SourceTypeBinding currentBinding = referenceBinding;

-		FieldBinding[] syntheticFields = currentBinding.syntheticFields();

-		int fieldCount =

-			currentBinding.fieldCount()

-				+ (syntheticFields == null ? 0 : syntheticFields.length);

-

-		// write the number of fields

-		if (fieldCount > 0xFFFF) {

-			referenceBinding.scope.problemReporter().tooManyFields(referenceBinding.scope.referenceType());

-		}

-		contents[contentsOffset++] = (byte) (fieldCount >> 8);

-		contents[contentsOffset++] = (byte) fieldCount;

-

-		FieldBinding[] fieldBindings = currentBinding.fields();

-		for (int i = 0, max = fieldBindings.length; i < max; i++) {

-			addFieldInfo(fieldBindings[i]);

-		}

-		if (syntheticFields != null) {

-			for (int i = 0, max = syntheticFields.length; i < max; i++) {

-				addFieldInfo(syntheticFields[i]);

-			}

-		}

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods stores the bindings for each inner class. They will be used to know which entries

-	 * have to be generated for the inner classes attributes.

-	 * @param refBinding org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding 

-	 */

-	public void addInnerClasses(ReferenceBinding refBinding) {

-		// check first if that reference binding is there

-		for (int i = 0; i < numberOfInnerClasses; i++) {

-			if (innerClassesBindings[i] == refBinding)

-				return;

-		}

-		int length = innerClassesBindings.length;

-		if (numberOfInnerClasses == length) {

-			System.arraycopy(

-				innerClassesBindings,

-				0,

-				innerClassesBindings = new ReferenceBinding[length * 2],

-				0,

-				length);

-		}

-		innerClassesBindings[numberOfInnerClasses++] = refBinding;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem clinit method info that correspond to a boggus method.

-	 *

-	 * @param problems org.eclipse.wst.jsdt.internal.compiler.problem.Problem[]

-	 */

-	public void addProblemClinit(IProblem[] problems) {

-		generateMethodInfoHeaderForClinit();

-		// leave two spaces for the number of attributes

-		contentsOffset -= 2;

-		int attributeOffset = contentsOffset;

-		contentsOffset += 2;

-		int attributeNumber = 0;

-

-		int codeAttributeOffset = contentsOffset;

-		generateCodeAttributeHeader();

-		codeStream.resetForProblemClinit(this);

-		String problemString = "" ; //$NON-NLS-1$

-		int problemLine = 0;

-		if (problems != null) {

-			int max = problems.length;

-			StringBuffer buffer = new StringBuffer(25);

-			int count = 0;

-			for (int i = 0; i < max; i++) {

-				IProblem problem = problems[i];

-				if ((problem != null) && (problem.isError())) {

-					buffer.append("\t"  +problem.getMessage() + "\n" ); //$NON-NLS-1$ //$NON-NLS-2$

-					count++;

-					if (problemLine == 0) {

-						problemLine = problem.getSourceLineNumber();

-					}

-					problems[i] = null;

-				}

-			} // insert the top line afterwards, once knowing how many problems we have to consider

-			if (count > 1) {

-				buffer.insert(0, Util.bind("compilation.unresolvedProblems" )); //$NON-NLS-1$

-			} else {

-				buffer.insert(0, Util.bind("compilation.unresolvedProblem" )); //$NON-NLS-1$

-			}

-			problemString = buffer.toString();

-		}

-

-		// return codeStream.generateCodeAttributeForProblemMethod(comp.options.runtimeExceptionNameForCompileError, "")

-		codeStream.generateCodeAttributeForProblemMethod(problemString);

-		attributeNumber++; // code attribute

-		completeCodeAttributeForClinit(

-			codeAttributeOffset,

-			referenceBinding

-				.scope

-				.referenceCompilationUnit()

-				.compilationResult

-				.lineSeparatorPositions,

-			problemLine);

-		contents[attributeOffset++] = (byte) (attributeNumber >> 8);

-		contents[attributeOffset] = (byte) attributeNumber;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a boggus constructor.

-	 *

-	 * @param method org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.MethodBinding

-	 * @param problems org.eclipse.wst.jsdt.internal.compiler.problem.Problem[]

-	 */

-	public void addProblemConstructor(

-		AbstractMethodDeclaration method,

-		MethodBinding methodBinding,

-		IProblem[] problems) {

-

-		// always clear the strictfp/native/abstract bit for a problem method

-		generateMethodInfoHeader(methodBinding, methodBinding.modifiers & ~(AccStrictfp | AccNative | AccAbstract));

-		int methodAttributeOffset = contentsOffset;

-		int attributeNumber = generateMethodInfoAttribute(methodBinding);

-		

-		// Code attribute

-		attributeNumber++;

-		int codeAttributeOffset = contentsOffset;

-		generateCodeAttributeHeader();

-		codeStream.reset(method, this);

-		String problemString = "" ; //$NON-NLS-1$

-		int problemLine = 0;

-		if (problems != null) {

-			int max = problems.length;

-			StringBuffer buffer = new StringBuffer(25);

-			int count = 0;

-			for (int i = 0; i < max; i++) {

-				IProblem problem = problems[i];

-				if ((problem != null) && (problem.isError())) {

-					buffer.append("\t"  +problem.getMessage() + "\n" ); //$NON-NLS-1$ //$NON-NLS-2$

-					count++;

-					if (problemLine == 0) {

-						problemLine = problem.getSourceLineNumber();

-					}

-				}

-			} // insert the top line afterwards, once knowing how many problems we have to consider

-			if (count > 1) {

-				buffer.insert(0, Util.bind("compilation.unresolvedProblems" )); //$NON-NLS-1$

-			} else {

-				buffer.insert(0, Util.bind("compilation.unresolvedProblem" )); //$NON-NLS-1$

-			}

-			problemString = buffer.toString();

-		}

-

-		// return codeStream.generateCodeAttributeForProblemMethod(comp.options.runtimeExceptionNameForCompileError, "")

-		codeStream.generateCodeAttributeForProblemMethod(problemString);

-		completeCodeAttributeForProblemMethod(

-			method,

-			methodBinding,

-			codeAttributeOffset,

-			((SourceTypeBinding) methodBinding.declaringClass)

-				.scope

-				.referenceCompilationUnit()

-				.compilationResult

-				.lineSeparatorPositions,

-			problemLine);

-		completeMethodInfo(methodAttributeOffset, attributeNumber);

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a boggus constructor.

-	 * Reset the position inside the contents byte array to the savedOffset.

-	 *

-	 * @param method org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.MethodBinding

-	 * @param problems org.eclipse.wst.jsdt.internal.compiler.problem.Problem[]

-	 * @param savedOffset <CODE>int</CODE>

-	 */

-	public void addProblemConstructor(

-		AbstractMethodDeclaration method,

-		MethodBinding methodBinding,

-		IProblem[] problems,

-		int savedOffset) {

-		// we need to move back the contentsOffset to the value at the beginning of the method

-		contentsOffset = savedOffset;

-		methodCount--; // we need to remove the method that causes the problem

-		addProblemConstructor(method, methodBinding, problems);

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a boggus method.

-	 *

-	 * @param method org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.MethodBinding

-	 * @param problems org.eclipse.wst.jsdt.internal.compiler.problem.Problem[]

-	 */

-	public void addProblemMethod(

-		AbstractMethodDeclaration method,

-		MethodBinding methodBinding,

-		IProblem[] problems) {

-		if (methodBinding.isAbstract() && methodBinding.declaringClass.isInterface()) {

-			method.abort(ProblemSeverities.AbortType, null);

-		}

-		// always clear the strictfp/native/abstract bit for a problem method

-		generateMethodInfoHeader(methodBinding, methodBinding.modifiers & ~(AccStrictfp | AccNative | AccAbstract));

-		int methodAttributeOffset = contentsOffset;

-		int attributeNumber = generateMethodInfoAttribute(methodBinding);

-		

-		// Code attribute

-		attributeNumber++;

-		

-		int codeAttributeOffset = contentsOffset;

-		generateCodeAttributeHeader();

-		codeStream.reset(method, this);

-		String problemString = "" ; //$NON-NLS-1$

-		int problemLine = 0;

-		if (problems != null) {

-			int max = problems.length;

-			StringBuffer buffer = new StringBuffer(25);

-			int count = 0;

-			for (int i = 0; i < max; i++) {

-				IProblem problem = problems[i];

-				if ((problem != null)

-					&& (problem.isError())

-					&& (problem.getSourceStart() >= method.declarationSourceStart)

-					&& (problem.getSourceEnd() <= method.declarationSourceEnd)) {

-					buffer.append("\t"  +problem.getMessage() + "\n" ); //$NON-NLS-1$ //$NON-NLS-2$

-					count++;

-					if (problemLine == 0) {

-						problemLine = problem.getSourceLineNumber();

-					}

-					problems[i] = null;

-				}

-			} // insert the top line afterwards, once knowing how many problems we have to consider

-			if (count > 1) {

-				buffer.insert(0, Util.bind("compilation.unresolvedProblems" )); //$NON-NLS-1$

-			} else {

-				buffer.insert(0, Util.bind("compilation.unresolvedProblem" )); //$NON-NLS-1$

-			}

-			problemString = buffer.toString();

-		}

-

-		// return codeStream.generateCodeAttributeForProblemMethod(comp.options.runtimeExceptionNameForCompileError, "")

-		codeStream.generateCodeAttributeForProblemMethod(problemString);

-		completeCodeAttributeForProblemMethod(

-			method,

-			methodBinding,

-			codeAttributeOffset,

-			((SourceTypeBinding) methodBinding.declaringClass)

-				.scope

-				.referenceCompilationUnit()

-				.compilationResult

-				.lineSeparatorPositions,

-			problemLine);

-		completeMethodInfo(methodAttributeOffset, attributeNumber);

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a boggus method.

-	 * Reset the position inside the contents byte array to the savedOffset.

-	 *

-	 * @param method org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.MethodBinding

-	 * @param problems org.eclipse.wst.jsdt.internal.compiler.problem.Problem[]

-	 * @param savedOffset <CODE>int</CODE>

-	 */

-	public void addProblemMethod(

-		AbstractMethodDeclaration method,

-		MethodBinding methodBinding,

-		IProblem[] problems,

-		int savedOffset) {

-		// we need to move back the contentsOffset to the value at the beginning of the method

-		contentsOffset = savedOffset;

-		methodCount--; // we need to remove the method that causes the problem

-		addProblemMethod(method, methodBinding, problems);

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for all the special method infos.

-	 * They are:

-	 * - synthetic access methods

-	 * - default abstract methods

-	 */

-	public void addSpecialMethods() {

-	    

-		// add all methods (default abstract methods and synthetic)

-

-		// default abstract methods

-		generateMissingAbstractMethods(referenceBinding.scope.referenceType().missingAbstractMethods, referenceBinding.scope.referenceCompilationUnit().compilationResult);

-

-		MethodBinding[] defaultAbstractMethods = this.referenceBinding.getDefaultAbstractMethods();

-		for (int i = 0, max = defaultAbstractMethods.length; i < max; i++) {

-			generateMethodInfoHeader(defaultAbstractMethods[i]);

-			int methodAttributeOffset = contentsOffset;

-			int attributeNumber = generateMethodInfoAttribute(defaultAbstractMethods[i]);

-			completeMethodInfo(methodAttributeOffset, attributeNumber);

-		}

-		// add synthetic methods infos

-		SyntheticAccessMethodBinding[] syntheticAccessMethods = this.referenceBinding.syntheticAccessMethods();

-		if (syntheticAccessMethods != null) {

-			for (int i = 0, max = syntheticAccessMethods.length; i < max; i++) {

-				SyntheticAccessMethodBinding accessMethodBinding = syntheticAccessMethods[i];

-				switch (accessMethodBinding.accessType) {

-					case SyntheticAccessMethodBinding.FieldReadAccess :

-						// generate a method info to emulate an reading access to

-						// a non-accessible field

-						addSyntheticFieldReadAccessMethod(accessMethodBinding);

-						break;

-					case SyntheticAccessMethodBinding.FieldWriteAccess :

-						// generate a method info to emulate an writing access to

-						// a non-accessible field

-						addSyntheticFieldWriteAccessMethod(accessMethodBinding);

-						break;

-					case SyntheticAccessMethodBinding.MethodAccess :

-					case SyntheticAccessMethodBinding.SuperMethodAccess :

-					case SyntheticAccessMethodBinding.BridgeMethodAccess :

-						// generate a method info to emulate an access to a non-accessible method / super-method or bridge method

-						addSyntheticMethodAccessMethod(accessMethodBinding);

-						break;

-					case SyntheticAccessMethodBinding.ConstructorAccess :

-						// generate a method info to emulate an access to a non-accessible constructor

-						addSyntheticConstructorAccessMethod(accessMethodBinding);

-						break;

-				}

-			}

-		}

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for problem method infos that correspond to missing abstract methods.

-	 * http://dev.eclipse.org/bugs/show_bug.cgi?id=3179

-	 *

-	 * @param methodDeclarations Array of all missing abstract methods

-	 */

-	public void generateMissingAbstractMethods(MethodDeclaration[] methodDeclarations, CompilationResult compilationResult) {

-		if (methodDeclarations != null) {

-			for (int i = 0, max = methodDeclarations.length; i < max; i++) {

-				MethodDeclaration methodDeclaration = methodDeclarations[i];

-				MethodBinding methodBinding = methodDeclaration.binding;

-		 		String readableName = new String(methodBinding.readableName());

-		 		IProblem[] problems = compilationResult.problems;

-		 		int problemsCount = compilationResult.problemCount;

-				for (int j = 0; j < problemsCount; j++) {

-					IProblem problem = problems[j];

-					if (problem != null

-						&& problem.getID() == IProblem.AbstractMethodMustBeImplemented

-						&& problem.getMessage().indexOf(readableName) != -1) {

-							// we found a match

-							addMissingAbstractProblemMethod(methodDeclaration, methodBinding, problem, compilationResult);

-						}

-				}

-			}

-		}

-	}

-	

-	private void addMissingAbstractProblemMethod(MethodDeclaration methodDeclaration, MethodBinding methodBinding, IProblem problem, CompilationResult compilationResult) {

-		// always clear the strictfp/native/abstract bit for a problem method

-		generateMethodInfoHeader(methodBinding, methodBinding.modifiers & ~(AccStrictfp | AccNative | AccAbstract));

-		int methodAttributeOffset = contentsOffset;

-		int attributeNumber = generateMethodInfoAttribute(methodBinding);

-		

-		// Code attribute

-		attributeNumber++;

-		

-		int codeAttributeOffset = contentsOffset;

-		generateCodeAttributeHeader();

-		StringBuffer buffer = new StringBuffer(25);

-		buffer.append("\t"  + problem.getMessage() + "\n" ); //$NON-NLS-1$ //$NON-NLS-2$

-		buffer.insert(0, Util.bind("compilation.unresolvedProblem" )); //$NON-NLS-1$

-		String problemString = buffer.toString();

-		

-		codeStream.init(this);

-		codeStream.preserveUnusedLocals = true;

-		codeStream.initializeMaxLocals(methodBinding);

-

-		// return codeStream.generateCodeAttributeForProblemMethod(comp.options.runtimeExceptionNameForCompileError, "")

-		codeStream.generateCodeAttributeForProblemMethod(problemString);

-				

-		completeCodeAttributeForMissingAbstractProblemMethod(

-			methodBinding,

-			codeAttributeOffset,

-			compilationResult.lineSeparatorPositions,

-			problem.getSourceLineNumber());

-			

-		completeMethodInfo(methodAttributeOffset, attributeNumber);

-	}

-

-	/**

-	 * 

-	 */

-	public void completeCodeAttributeForMissingAbstractProblemMethod(

-		MethodBinding binding,

-		int codeAttributeOffset,

-		int[] startLineIndexes,

-		int problemLine) {

-		// reinitialize the localContents with the byte modified by the code stream

-		this.contents = codeStream.bCodeStream;

-		int localContentsOffset = codeStream.classFileOffset;

-		// codeAttributeOffset is the position inside localContents byte array before we started to write// any information about the codeAttribute// That means that to write the attribute_length you need to offset by 2 the value of codeAttributeOffset// to get the right position, 6 for the max_stack etc...

-		int max_stack = codeStream.stackMax;

-		this.contents[codeAttributeOffset + 6] = (byte) (max_stack >> 8);

-		this.contents[codeAttributeOffset + 7] = (byte) max_stack;

-		int max_locals = codeStream.maxLocals;

-		this.contents[codeAttributeOffset + 8] = (byte) (max_locals >> 8);

-		this.contents[codeAttributeOffset + 9] = (byte) max_locals;

-		int code_length = codeStream.position;

-		this.contents[codeAttributeOffset + 10] = (byte) (code_length >> 24);

-		this.contents[codeAttributeOffset + 11] = (byte) (code_length >> 16);

-		this.contents[codeAttributeOffset + 12] = (byte) (code_length >> 8);

-		this.contents[codeAttributeOffset + 13] = (byte) code_length;

-		// write the exception table

-		if (localContentsOffset + 50 >= this.contents.length) {

-			resizeContents(50);

-		}

-		this.contents[localContentsOffset++] = 0;

-		this.contents[localContentsOffset++] = 0;

-		// debug attributes

-		int codeAttributeAttributeOffset = localContentsOffset;

-		int attributeNumber = 0; // leave two bytes for the attribute_length

-		localContentsOffset += 2; // first we handle the linenumber attribute

-

-		if (codeStream.generateLineNumberAttributes) {

-			/* Create and add the line number attribute (used for debugging) 

-			    * Build the pairs of:

-			    * (bytecodePC lineNumber)

-			    * according to the table of start line indexes and the pcToSourceMap table

-			    * contained into the codestream

-			    */

-			int lineNumberNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.LineNumberTableName);

-			this.contents[localContentsOffset++] = (byte) (lineNumberNameIndex >> 8);

-			this.contents[localContentsOffset++] = (byte) lineNumberNameIndex;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 6;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 1;

-			if (problemLine == 0) {

-				problemLine = searchLineNumber(startLineIndexes, binding.sourceStart());

-			}

-			// first entry at pc = 0

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = (byte) (problemLine >> 8);

-			this.contents[localContentsOffset++] = (byte) problemLine;

-			// now we change the size of the line number attribute

-			attributeNumber++;

-		}

-		

-		// then we do the local variable attribute

-		// update the number of attributes// ensure first that there is enough space available inside the localContents array

-		if (codeAttributeAttributeOffset + 2 >= this.contents.length) {

-			resizeContents(2);

-		}

-		this.contents[codeAttributeAttributeOffset++] = (byte) (attributeNumber >> 8);

-		this.contents[codeAttributeAttributeOffset] = (byte) attributeNumber;

-		// update the attribute length

-		int codeAttributeLength = localContentsOffset - (codeAttributeOffset + 6);

-		this.contents[codeAttributeOffset + 2] = (byte) (codeAttributeLength >> 24);

-		this.contents[codeAttributeOffset + 3] = (byte) (codeAttributeLength >> 16);

-		this.contents[codeAttributeOffset + 4] = (byte) (codeAttributeLength >> 8);

-		this.contents[codeAttributeOffset + 5] = (byte) codeAttributeLength;

-		contentsOffset = localContentsOffset;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a synthetic method that

-	 * generate an access to a private constructor.

-	 *

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding

-	 */

-	public void addSyntheticConstructorAccessMethod(SyntheticAccessMethodBinding methodBinding) {

-		generateMethodInfoHeader(methodBinding);

-		// We know that we won't get more than 2 attribute: the code attribute + synthetic attribute

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 2;

-		// Code attribute

-		int codeAttributeOffset = contentsOffset;

-		generateCodeAttributeHeader();

-		codeStream.init(this);

-		codeStream.generateSyntheticBodyForConstructorAccess(methodBinding);

-		completeCodeAttributeForSyntheticAccessMethod(

-			methodBinding,

-			codeAttributeOffset,

-			((SourceTypeBinding) methodBinding.declaringClass)

-				.scope

-				.referenceCompilationUnit()

-				.compilationResult

-				.lineSeparatorPositions);

-		// add the synthetic attribute

-		int syntheticAttributeNameIndex =

-			constantPool.literalIndex(AttributeNamesConstants.SyntheticName);

-		contents[contentsOffset++] = (byte) (syntheticAttributeNameIndex >> 8);

-		contents[contentsOffset++] = (byte) syntheticAttributeNameIndex;

-		// the length of a synthetic attribute is equals to 0

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a synthetic method that

-	 * generate an read access to a private field.

-	 *

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding

-	 */

-	public void addSyntheticFieldReadAccessMethod(SyntheticAccessMethodBinding methodBinding) {

-		generateMethodInfoHeader(methodBinding);

-		// We know that we won't get more than 2 attribute: the code attribute + synthetic attribute

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 2;

-		// Code attribute

-		int codeAttributeOffset = contentsOffset;

-		generateCodeAttributeHeader();

-		codeStream.init(this);

-		codeStream.generateSyntheticBodyForFieldReadAccess(methodBinding);

-		completeCodeAttributeForSyntheticAccessMethod(

-			methodBinding,

-			codeAttributeOffset,

-			((SourceTypeBinding) methodBinding.declaringClass)

-				.scope

-				.referenceCompilationUnit()

-				.compilationResult

-				.lineSeparatorPositions);

-		// add the synthetic attribute

-		int syntheticAttributeNameIndex =

-			constantPool.literalIndex(AttributeNamesConstants.SyntheticName);

-		contents[contentsOffset++] = (byte) (syntheticAttributeNameIndex >> 8);

-		contents[contentsOffset++] = (byte) syntheticAttributeNameIndex;

-		// the length of a synthetic attribute is equals to 0

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a synthetic method that

-	 * generate an write access to a private field.

-	 *

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding

-	 */

-	public void addSyntheticFieldWriteAccessMethod(SyntheticAccessMethodBinding methodBinding) {

-		generateMethodInfoHeader(methodBinding);

-		// We know that we won't get more than 2 attribute: the code attribute + synthetic attribute

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 2;

-		// Code attribute

-		int codeAttributeOffset = contentsOffset;

-		generateCodeAttributeHeader();

-		codeStream.init(this);

-		codeStream.generateSyntheticBodyForFieldWriteAccess(methodBinding);

-		completeCodeAttributeForSyntheticAccessMethod(

-			methodBinding,

-			codeAttributeOffset,

-			((SourceTypeBinding) methodBinding.declaringClass)

-				.scope

-				.referenceCompilationUnit()

-				.compilationResult

-				.lineSeparatorPositions);

-		// add the synthetic attribute

-		int syntheticAttributeNameIndex =

-			constantPool.literalIndex(AttributeNamesConstants.SyntheticName);

-		contents[contentsOffset++] = (byte) (syntheticAttributeNameIndex >> 8);

-		contents[contentsOffset++] = (byte) syntheticAttributeNameIndex;

-		// the length of a synthetic attribute is equals to 0

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Generate the byte for a problem method info that correspond to a synthetic method that

-	 * generate an access to a private method.

-	 *

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.nameloopkup.SyntheticAccessMethodBinding

-	 */

-	public void addSyntheticMethodAccessMethod(SyntheticAccessMethodBinding methodBinding) {

-		generateMethodInfoHeader(methodBinding);

-		// We know that we won't get more than 2 attribute: the code attribute + synthetic attribute

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 2;

-		// Code attribute

-		int codeAttributeOffset = contentsOffset;

-		generateCodeAttributeHeader();

-		codeStream.init(this);

-		codeStream.generateSyntheticBodyForMethodAccess(methodBinding);

-		completeCodeAttributeForSyntheticAccessMethod(

-			methodBinding,

-			codeAttributeOffset,

-			((SourceTypeBinding) methodBinding.declaringClass)

-				.scope

-				.referenceCompilationUnit()

-				.compilationResult

-				.lineSeparatorPositions);

-		// add the synthetic attribute

-		int syntheticAttributeNameIndex =

-			constantPool.literalIndex(AttributeNamesConstants.SyntheticName);

-		contents[contentsOffset++] = (byte) (syntheticAttributeNameIndex >> 8);

-		contents[contentsOffset++] = (byte) syntheticAttributeNameIndex;

-		// the length of a synthetic attribute is equals to 0

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 0;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Build all the directories and subdirectories corresponding to the packages names

-	 * into the directory specified in parameters.

-	 *

-	 * outputPath is formed like:

-	 *	   c:\temp\ the last character is a file separator

-	 * relativeFileName is formed like:

-	 *     java\lang\String.class *

-	 * 

-	 * @param outputPath java.lang.String

-	 * @param relativeFileName java.lang.String

-	 * @return java.lang.String

-	 */

-	public static String buildAllDirectoriesInto(

-		String outputPath,

-		String relativeFileName)

-		throws IOException {

-		char fileSeparatorChar = File.separatorChar;

-		String fileSeparator = File.separator;

-		File f;

-		// First we ensure that the outputPath exists

-		outputPath = outputPath.replace('/', fileSeparatorChar);

-		// To be able to pass the mkdirs() method we need to remove the extra file separator at the end of the outDir name

-		if (outputPath.endsWith(fileSeparator)) {

-			outputPath = outputPath.substring(0, outputPath.length() - 1);

-		}

-		f = new File(outputPath);

-		if (f.exists()) {

-			if (!f.isDirectory()) {

-				System.out.println(Util.bind("output.isFile" , f.getAbsolutePath())); //$NON-NLS-1$

-				throw new IOException(Util.bind("output.isFileNotDirectory" )); //$NON-NLS-1$

-			}

-		} else {

-			// we have to create that directory

-			if (!f.mkdirs()) {

-				System.out.println(Util.bind("output.dirName" , f.getAbsolutePath())); //$NON-NLS-1$

-				throw new IOException(Util.bind("output.notValidAll" )); //$NON-NLS-1$

-			}

-		}

-		StringBuffer outDir = new StringBuffer(outputPath);

-		outDir.append(fileSeparator);

-		StringTokenizer tokenizer =

-			new StringTokenizer(relativeFileName, fileSeparator);

-		String token = tokenizer.nextToken();

-		while (tokenizer.hasMoreTokens()) {

-			f = new File(outDir.append(token).append(fileSeparator).toString());

-			if (f.exists()) {

-				// The outDir already exists, so we proceed the next entry

-				// System.out.println("outDir: " + outDir + " already exists.");

-			} else {

-				// Need to add the outDir

-				if (!f.mkdir()) {

-					System.out.println(Util.bind("output.fileName" , f.getName())); //$NON-NLS-1$

-					throw new IOException(Util.bind("output.notValid" )); //$NON-NLS-1$

-				}

-			}

-			token = tokenizer.nextToken();

-		}

-		// token contains the last one

-		return outDir.append(token).toString();

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method completes the creation of the code attribute by setting

-	 * - the attribute_length

-	 * - max_stack

-	 * - max_locals

-	 * - code_length

-	 * - exception table

-	 * - and debug attributes if necessary.

-	 *

-	 * @param codeAttributeOffset <CODE>int</CODE>

-	 */

-	public void completeCodeAttribute(int codeAttributeOffset) {

-		// reinitialize the localContents with the byte modified by the code stream

-		this.contents = codeStream.bCodeStream;

-		int localContentsOffset = codeStream.classFileOffset;

-		// codeAttributeOffset is the position inside localContents byte array before we started to write

-		// any information about the codeAttribute

-		// That means that to write the attribute_length you need to offset by 2 the value of codeAttributeOffset

-		// to get the right position, 6 for the max_stack etc...

-		int code_length = codeStream.position;

-		if (code_length > 65535) {

-			codeStream.methodDeclaration.scope.problemReporter().bytecodeExceeds64KLimit(

-				codeStream.methodDeclaration);

-		}

-		if (localContentsOffset + 20 >= this.contents.length) {

-			resizeContents(20);

-		}

-		int max_stack = codeStream.stackMax;

-		this.contents[codeAttributeOffset + 6] = (byte) (max_stack >> 8);

-		this.contents[codeAttributeOffset + 7] = (byte) max_stack;

-		int max_locals = codeStream.maxLocals;

-		this.contents[codeAttributeOffset + 8] = (byte) (max_locals >> 8);

-		this.contents[codeAttributeOffset + 9] = (byte) max_locals;

-		this.contents[codeAttributeOffset + 10] = (byte) (code_length >> 24);

-		this.contents[codeAttributeOffset + 11] = (byte) (code_length >> 16);

-		this.contents[codeAttributeOffset + 12] = (byte) (code_length >> 8);

-		this.contents[codeAttributeOffset + 13] = (byte) code_length;

-

-		// write the exception table

-		int exceptionHandlersNumber = codeStream.exceptionHandlersCounter;

-		ExceptionLabel[] exceptionHandlers = codeStream.exceptionHandlers;

-		int exSize = exceptionHandlersNumber * 8 + 2;

-		if (exSize + localContentsOffset >= this.contents.length) {

-			resizeContents(exSize);

-		}

-		// there is no exception table, so we need to offset by 2 the current offset and move 

-		// on the attribute generation

-		this.contents[localContentsOffset++] = (byte) (exceptionHandlersNumber >> 8);

-		this.contents[localContentsOffset++] = (byte) exceptionHandlersNumber;

-		for (int i = 0, max = codeStream.exceptionHandlersIndex; i < max; i++) {

-			ExceptionLabel exceptionHandler = exceptionHandlers[i];

-			if (exceptionHandler != null) {

-				int start = exceptionHandler.start;

-				this.contents[localContentsOffset++] = (byte) (start >> 8);

-				this.contents[localContentsOffset++] = (byte) start;

-				int end = exceptionHandler.end;

-				this.contents[localContentsOffset++] = (byte) (end >> 8);

-				this.contents[localContentsOffset++] = (byte) end;

-				int handlerPC = exceptionHandler.position;

-				this.contents[localContentsOffset++] = (byte) (handlerPC >> 8);

-				this.contents[localContentsOffset++] = (byte) handlerPC;

-				if (exceptionHandler.exceptionType == null) {

-					// any exception handler

-					this.contents[localContentsOffset++] = 0;

-					this.contents[localContentsOffset++] = 0;

-				} else {

-					int nameIndex;

-					if (exceptionHandler.exceptionType == BaseTypes.NullBinding) {

-						/* represents ClassNotFoundException, see class literal access*/

-						nameIndex = constantPool.literalIndexForJavaLangClassNotFoundException();

-					} else {

-						nameIndex = constantPool.literalIndex(exceptionHandler.exceptionType);

-					}

-					this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) nameIndex;

-				}

-			}

-		}

-		// debug attributes

-		int codeAttributeAttributeOffset = localContentsOffset;

-		int attributeNumber = 0;

-		// leave two bytes for the attribute_length

-		localContentsOffset += 2;

-

-		// first we handle the linenumber attribute

-		if (codeStream.generateLineNumberAttributes) {

-			/* Create and add the line number attribute (used for debugging) 

-			 * Build the pairs of:

-			 * 	(bytecodePC lineNumber)

-			 * according to the table of start line indexes and the pcToSourceMap table

-			 * contained into the codestream

-			 */

-			int[] pcToSourceMapTable;

-			if (((pcToSourceMapTable = codeStream.pcToSourceMap) != null)

-				&& (codeStream.pcToSourceMapSize != 0)) {

-				int lineNumberNameIndex =

-					constantPool.literalIndex(AttributeNamesConstants.LineNumberTableName);

-				if (localContentsOffset + 8 >= this.contents.length) {

-					resizeContents(8);

-				}

-				this.contents[localContentsOffset++] = (byte) (lineNumberNameIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) lineNumberNameIndex;

-				int lineNumberTableOffset = localContentsOffset;

-				localContentsOffset += 6;

-				// leave space for attribute_length and line_number_table_length

-				int numberOfEntries = 0;

-				int length = codeStream.pcToSourceMapSize;

-				for (int i = 0; i < length;) {

-					// write the entry

-					if (localContentsOffset + 4 >= this.contents.length) {

-						resizeContents(4);

-					}

-					int pc = pcToSourceMapTable[i++];

-					this.contents[localContentsOffset++] = (byte) (pc >> 8);

-					this.contents[localContentsOffset++] = (byte) pc;

-					int lineNumber = pcToSourceMapTable[i++];

-					this.contents[localContentsOffset++] = (byte) (lineNumber >> 8);

-					this.contents[localContentsOffset++] = (byte) lineNumber;

-					numberOfEntries++;

-				}

-				// now we change the size of the line number attribute

-				int lineNumberAttr_length = numberOfEntries * 4 + 2;

-				this.contents[lineNumberTableOffset++] = (byte) (lineNumberAttr_length >> 24);

-				this.contents[lineNumberTableOffset++] = (byte) (lineNumberAttr_length >> 16);

-				this.contents[lineNumberTableOffset++] = (byte) (lineNumberAttr_length >> 8);

-				this.contents[lineNumberTableOffset++] = (byte) lineNumberAttr_length;

-				this.contents[lineNumberTableOffset++] = (byte) (numberOfEntries >> 8);

-				this.contents[lineNumberTableOffset++] = (byte) numberOfEntries;

-				attributeNumber++;

-			}

-		}

-		// then we do the local variable attribute

-		if (codeStream.generateLocalVariableTableAttributes) {

-			int localVariableTableOffset = localContentsOffset;

-			int numberOfEntries = 0;

-			int localVariableNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.LocalVariableTableName);

-			final boolean methodDeclarationIsStatic = codeStream.methodDeclaration.isStatic();

-			int maxOfEntries = 8 + 10 * (methodDeclarationIsStatic ? 0 : 1);

-			for (int i = 0; i < codeStream.allLocalsCounter; i++) {

-				maxOfEntries += 10 * codeStream.locals[i].initializationCount;

-			}

-			// reserve enough space

-			if (localContentsOffset + maxOfEntries >= this.contents.length) {

-				resizeContents(maxOfEntries);

-			}

-			this.contents[localContentsOffset++] = (byte) (localVariableNameIndex >> 8);

-			this.contents[localContentsOffset++] = (byte) localVariableNameIndex;

-			localContentsOffset += 6;

-			// leave space for attribute_length and local_variable_table_length

-			int nameIndex;

-			int descriptorIndex;

-			SourceTypeBinding declaringClassBinding = null;

-			if (!methodDeclarationIsStatic) {

-				numberOfEntries++;

-				this.contents[localContentsOffset++] = 0; // the startPC for this is always 0

-				this.contents[localContentsOffset++] = 0;

-				this.contents[localContentsOffset++] = (byte) (code_length >> 8);

-				this.contents[localContentsOffset++] = (byte) code_length;

-				nameIndex = constantPool.literalIndex(QualifiedNamesConstants.This);

-				this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) nameIndex;

-				declaringClassBinding = (SourceTypeBinding) codeStream.methodDeclaration.binding.declaringClass;

-				descriptorIndex =

-					constantPool.literalIndex(

-						declaringClassBinding.signature());

-				this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) descriptorIndex;

-				this.contents[localContentsOffset++] = 0;// the resolved position for this is always 0

-				this.contents[localContentsOffset++] = 0;

-			}

-			// used to remember the local variable with a generic type

-			int genericLocalVariablesCounter = 0;

-			LocalVariableBinding[] genericLocalVariables = null;

-			int numberOfGenericEntries = 0;

-			

-			for (int i = 0, max = codeStream.allLocalsCounter; i < max; i++) {

-				LocalVariableBinding localVariable = codeStream.locals[i];

-				final TypeBinding localVariableTypeBinding = localVariable.type;

-				boolean isParameterizedType = localVariableTypeBinding.isParameterizedType() || localVariableTypeBinding.isTypeVariable();

-				if (localVariable.initializationCount != 0 && isParameterizedType) {

-					if (genericLocalVariables == null) {

-						// we cannot have more than max locals

-						genericLocalVariables = new LocalVariableBinding[max];

-					}

-					genericLocalVariables[genericLocalVariablesCounter++] = localVariable;

-				}

-				for (int j = 0; j < localVariable.initializationCount; j++) {

-					int startPC = localVariable.initializationPCs[j << 1];

-					int endPC = localVariable.initializationPCs[(j << 1) + 1];

-					if (startPC != endPC) { // only entries for non zero length

-						if (endPC == -1) {

-							localVariable.declaringScope.problemReporter().abortDueToInternalError(

-								Util.bind("abort.invalidAttribute" , new String(localVariable.name)), //$NON-NLS-1$

-								(ASTNode) localVariable.declaringScope.methodScope().referenceContext);

-						}

-						if (isParameterizedType) {

-							numberOfGenericEntries++;

-						}

-						// now we can safely add the local entry

-						numberOfEntries++;

-						this.contents[localContentsOffset++] = (byte) (startPC >> 8);

-						this.contents[localContentsOffset++] = (byte) startPC;

-						int length = endPC - startPC;

-						this.contents[localContentsOffset++] = (byte) (length >> 8);

-						this.contents[localContentsOffset++] = (byte) length;

-						nameIndex = constantPool.literalIndex(localVariable.name);

-						this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-						this.contents[localContentsOffset++] = (byte) nameIndex;

-						descriptorIndex = constantPool.literalIndex(localVariableTypeBinding.signature());

-						this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-						this.contents[localContentsOffset++] = (byte) descriptorIndex;

-						int resolvedPosition = localVariable.resolvedPosition;

-						this.contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-						this.contents[localContentsOffset++] = (byte) resolvedPosition;

-					}

-				}

-			}

-			int value = numberOfEntries * 10 + 2;

-			localVariableTableOffset += 2;

-			this.contents[localVariableTableOffset++] = (byte) (value >> 24);

-			this.contents[localVariableTableOffset++] = (byte) (value >> 16);

-			this.contents[localVariableTableOffset++] = (byte) (value >> 8);

-			this.contents[localVariableTableOffset++] = (byte) value;

-			this.contents[localVariableTableOffset++] = (byte) (numberOfEntries >> 8);

-			this.contents[localVariableTableOffset] = (byte) numberOfEntries;

-			attributeNumber++;

-			

-			final boolean currentInstanceIsGeneric = 

-				!methodDeclarationIsStatic

-				&& declaringClassBinding != null 

-				&& declaringClassBinding.typeVariables != NoTypeVariables;

-			if (genericLocalVariablesCounter != 0 || currentInstanceIsGeneric) {

-				// add the local variable type table attribute

-				numberOfGenericEntries += (currentInstanceIsGeneric ? 1 : 0);

-				maxOfEntries = 8 + numberOfGenericEntries * 10;

-				// reserve enough space

-				if (localContentsOffset + maxOfEntries >= this.contents.length) {

-					resizeContents(maxOfEntries);

-				}

-				int localVariableTypeNameIndex =

-					constantPool.literalIndex(AttributeNamesConstants.LocalVariableTypeTableName);

-				this.contents[localContentsOffset++] = (byte) (localVariableTypeNameIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) localVariableTypeNameIndex;

-				value = numberOfGenericEntries * 10 + 2;

-				this.contents[localContentsOffset++] = (byte) (value >> 24);

-				this.contents[localContentsOffset++] = (byte) (value >> 16);

-				this.contents[localContentsOffset++] = (byte) (value >> 8);

-				this.contents[localContentsOffset++] = (byte) value;

-				this.contents[localContentsOffset++] = (byte) (numberOfGenericEntries >> 8);

-				this.contents[localContentsOffset++] = (byte) numberOfGenericEntries;

-				if (currentInstanceIsGeneric) {

-					this.contents[localContentsOffset++] = 0; // the startPC for this is always 0

-					this.contents[localContentsOffset++] = 0;

-					this.contents[localContentsOffset++] = (byte) (code_length >> 8);

-					this.contents[localContentsOffset++] = (byte) code_length;

-					nameIndex = constantPool.literalIndex(QualifiedNamesConstants.This);

-					this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) nameIndex;

-					descriptorIndex = constantPool.literalIndex(declaringClassBinding.genericTypeSignature());

-					this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) descriptorIndex;

-					this.contents[localContentsOffset++] = 0;// the resolved position for this is always 0

-					this.contents[localContentsOffset++] = 0;

-				}

-				

-				for (int i = 0; i < genericLocalVariablesCounter; i++) {

-					LocalVariableBinding localVariable = genericLocalVariables[i];

-					for (int j = 0; j < localVariable.initializationCount; j++) {

-						int startPC = localVariable.initializationPCs[j << 1];

-						int endPC = localVariable.initializationPCs[(j << 1) + 1];

-						if (startPC != endPC) {

-							// only entries for non zero length

-							// now we can safely add the local entry

-							this.contents[localContentsOffset++] = (byte) (startPC >> 8);

-							this.contents[localContentsOffset++] = (byte) startPC;

-							int length = endPC - startPC;

-							this.contents[localContentsOffset++] = (byte) (length >> 8);

-							this.contents[localContentsOffset++] = (byte) length;

-							nameIndex = constantPool.literalIndex(localVariable.name);

-							this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-							this.contents[localContentsOffset++] = (byte) nameIndex;

-							descriptorIndex = constantPool.literalIndex(localVariable.type.genericTypeSignature());

-							this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-							this.contents[localContentsOffset++] = (byte) descriptorIndex;

-							int resolvedPosition = localVariable.resolvedPosition;

-							this.contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-							this.contents[localContentsOffset++] = (byte) resolvedPosition;

-						}

-					}

-				}

-				attributeNumber++;

-			}

-		}

-		// update the number of attributes

-		// ensure first that there is enough space available inside the localContents array

-		if (codeAttributeAttributeOffset + 2 >= this.contents.length) {

-			resizeContents(2);

-		}

-		this.contents[codeAttributeAttributeOffset++] = (byte) (attributeNumber >> 8);

-		this.contents[codeAttributeAttributeOffset] = (byte) attributeNumber;

-

-		// update the attribute length

-		int codeAttributeLength = localContentsOffset - (codeAttributeOffset + 6);

-		this.contents[codeAttributeOffset + 2] = (byte) (codeAttributeLength >> 24);

-		this.contents[codeAttributeOffset + 3] = (byte) (codeAttributeLength >> 16);

-		this.contents[codeAttributeOffset + 4] = (byte) (codeAttributeLength >> 8);

-		this.contents[codeAttributeOffset + 5] = (byte) codeAttributeLength;

-		contentsOffset = localContentsOffset;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method completes the creation of the code attribute by setting

-	 * - the attribute_length

-	 * - max_stack

-	 * - max_locals

-	 * - code_length

-	 * - exception table

-	 * - and debug attributes if necessary.

-	 *

-	 * @param codeAttributeOffset <CODE>int</CODE>

-	 */

-	public void completeCodeAttributeForClinit(int codeAttributeOffset) {

-		// reinitialize the contents with the byte modified by the code stream

-		this.contents = codeStream.bCodeStream;

-		int localContentsOffset = codeStream.classFileOffset;

-		// codeAttributeOffset is the position inside contents byte array before we started to write

-		// any information about the codeAttribute

-		// That means that to write the attribute_length you need to offset by 2 the value of codeAttributeOffset

-		// to get the right position, 6 for the max_stack etc...

-		int code_length = codeStream.position;

-		if (code_length > 65535) {

-			codeStream.methodDeclaration.scope.problemReporter().bytecodeExceeds64KLimit(

-				codeStream.methodDeclaration.scope.referenceType());

-		}

-		if (localContentsOffset + 20 >= this.contents.length) {

-			resizeContents(20);

-		}

-		int max_stack = codeStream.stackMax;

-		this.contents[codeAttributeOffset + 6] = (byte) (max_stack >> 8);

-		this.contents[codeAttributeOffset + 7] = (byte) max_stack;

-		int max_locals = codeStream.maxLocals;

-		this.contents[codeAttributeOffset + 8] = (byte) (max_locals >> 8);

-		this.contents[codeAttributeOffset + 9] = (byte) max_locals;

-		this.contents[codeAttributeOffset + 10] = (byte) (code_length >> 24);

-		this.contents[codeAttributeOffset + 11] = (byte) (code_length >> 16);

-		this.contents[codeAttributeOffset + 12] = (byte) (code_length >> 8);

-		this.contents[codeAttributeOffset + 13] = (byte) code_length;

-

-		// write the exception table

-		int exceptionHandlersNumber = codeStream.exceptionHandlersCounter;

-		ExceptionLabel[] exceptionHandlers = codeStream.exceptionHandlers;

-		int exSize = exceptionHandlersNumber * 8 + 2;

-		if (exSize + localContentsOffset >= this.contents.length) {

-			resizeContents(exSize);

-		}

-		// there is no exception table, so we need to offset by 2 the current offset and move 

-		// on the attribute generation

-		this.contents[localContentsOffset++] = (byte) (exceptionHandlersNumber >> 8);

-		this.contents[localContentsOffset++] = (byte) exceptionHandlersNumber;

-		for (int i = 0, max = codeStream.exceptionHandlersIndex; i < max; i++) {

-			ExceptionLabel exceptionHandler = exceptionHandlers[i];

-			if (exceptionHandler != null) {

-				int start = exceptionHandler.start;

-				this.contents[localContentsOffset++] = (byte) (start >> 8);

-				this.contents[localContentsOffset++] = (byte) start;

-				int end = exceptionHandler.end;

-				this.contents[localContentsOffset++] = (byte) (end >> 8);

-				this.contents[localContentsOffset++] = (byte) end;

-				int handlerPC = exceptionHandler.position;

-				this.contents[localContentsOffset++] = (byte) (handlerPC >> 8);

-				this.contents[localContentsOffset++] = (byte) handlerPC;

-				if (exceptionHandler.exceptionType == null) {

-					// any exception handler

-					this.contents[localContentsOffset++] = 0;

-					this.contents[localContentsOffset++] = 0;

-				} else {

-					int nameIndex;

-					if (exceptionHandler.exceptionType == BaseTypes.NullBinding) {

-						/* represents denote ClassNotFoundException, see class literal access*/

-						nameIndex = constantPool.literalIndexForJavaLangClassNotFoundException();

-					} else {

-						nameIndex = constantPool.literalIndex(exceptionHandler.exceptionType);

-					}

-					this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) nameIndex;

-				}

-			}

-		}

-		// debug attributes

-		int codeAttributeAttributeOffset = localContentsOffset;

-		int attributeNumber = 0;

-		// leave two bytes for the attribute_length

-		localContentsOffset += 2;

-

-		// first we handle the linenumber attribute

-		if (codeStream.generateLineNumberAttributes) {

-			/* Create and add the line number attribute (used for debugging) 

-			 * Build the pairs of:

-			 * 	(bytecodePC lineNumber)

-			 * according to the table of start line indexes and the pcToSourceMap table

-			 * contained into the codestream

-			 */

-			int[] pcToSourceMapTable;

-			if (((pcToSourceMapTable = codeStream.pcToSourceMap) != null)

-				&& (codeStream.pcToSourceMapSize != 0)) {

-				int lineNumberNameIndex =

-					constantPool.literalIndex(AttributeNamesConstants.LineNumberTableName);

-				if (localContentsOffset + 8 >= this.contents.length) {

-					resizeContents(8);

-				}

-				this.contents[localContentsOffset++] = (byte) (lineNumberNameIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) lineNumberNameIndex;

-				int lineNumberTableOffset = localContentsOffset;

-				localContentsOffset += 6;

-				// leave space for attribute_length and line_number_table_length

-				int numberOfEntries = 0;

-				int length = codeStream.pcToSourceMapSize;

-				for (int i = 0; i < length;) {

-					// write the entry

-					if (localContentsOffset + 4 >= this.contents.length) {

-						resizeContents(4);

-					}

-					int pc = pcToSourceMapTable[i++];

-					this.contents[localContentsOffset++] = (byte) (pc >> 8);

-					this.contents[localContentsOffset++] = (byte) pc;

-					int lineNumber = pcToSourceMapTable[i++];

-					this.contents[localContentsOffset++] = (byte) (lineNumber >> 8);

-					this.contents[localContentsOffset++] = (byte) lineNumber;

-					numberOfEntries++;

-				}

-				// now we change the size of the line number attribute

-				int lineNumberAttr_length = numberOfEntries * 4 + 2;

-				this.contents[lineNumberTableOffset++] = (byte) (lineNumberAttr_length >> 24);

-				this.contents[lineNumberTableOffset++] = (byte) (lineNumberAttr_length >> 16);

-				this.contents[lineNumberTableOffset++] = (byte) (lineNumberAttr_length >> 8);

-				this.contents[lineNumberTableOffset++] = (byte) lineNumberAttr_length;

-				this.contents[lineNumberTableOffset++] = (byte) (numberOfEntries >> 8);

-				this.contents[lineNumberTableOffset++] = (byte) numberOfEntries;

-				attributeNumber++;

-			}

-		}

-		// then we do the local variable attribute

-		if (codeStream.generateLocalVariableTableAttributes) {

-			int localVariableTableOffset = localContentsOffset;

-			int numberOfEntries = 0;

-			//		codeAttribute.addLocalVariableTableAttribute(this);

-			if ((codeStream.pcToSourceMap != null)

-				&& (codeStream.pcToSourceMapSize != 0)) {

-				int localVariableNameIndex =

-					constantPool.literalIndex(AttributeNamesConstants.LocalVariableTableName);

-				if (localContentsOffset + 8 >= this.contents.length) {

-					resizeContents(8);

-				}

-				this.contents[localContentsOffset++] = (byte) (localVariableNameIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) localVariableNameIndex;

-				localContentsOffset += 6;

-

-				// leave space for attribute_length and local_variable_table_length

-				int nameIndex;

-				int descriptorIndex;

-

-				// used to remember the local variable with a generic type

-				int genericLocalVariablesCounter = 0;

-				LocalVariableBinding[] genericLocalVariables = null;

-				int numberOfGenericEntries = 0;

-

-				for (int i = 0, max = codeStream.allLocalsCounter; i < max; i++) {

-					LocalVariableBinding localVariable = codeStream.locals[i];

-					final TypeBinding localVariableTypeBinding = localVariable.type;

-					boolean isParameterizedType = localVariableTypeBinding.isParameterizedType() || localVariableTypeBinding.isTypeVariable();

-					if (localVariable.initializationCount != 0 && isParameterizedType) {

-						if (genericLocalVariables == null) {

-							// we cannot have more than max locals

-							genericLocalVariables = new LocalVariableBinding[max];

-						}

-						genericLocalVariables[genericLocalVariablesCounter++] = localVariable;

-					}

-					for (int j = 0; j < localVariable.initializationCount; j++) {

-						int startPC = localVariable.initializationPCs[j << 1];

-						int endPC = localVariable.initializationPCs[(j << 1) + 1];

-						if (startPC != endPC) { // only entries for non zero length

-							if (endPC == -1) {

-								localVariable.declaringScope.problemReporter().abortDueToInternalError(

-									Util.bind("abort.invalidAttribute" , new String(localVariable.name)), //$NON-NLS-1$

-									(ASTNode) localVariable.declaringScope.methodScope().referenceContext);

-							}

-							if (localContentsOffset + 10 >= this.contents.length) {

-								resizeContents(10);

-							}

-							// now we can safely add the local entry

-							numberOfEntries++;

-							if (isParameterizedType) {

-								numberOfGenericEntries++;

-							}

-							this.contents[localContentsOffset++] = (byte) (startPC >> 8);

-							this.contents[localContentsOffset++] = (byte) startPC;

-							int length = endPC - startPC;

-							this.contents[localContentsOffset++] = (byte) (length >> 8);

-							this.contents[localContentsOffset++] = (byte) length;

-							nameIndex = constantPool.literalIndex(localVariable.name);

-							this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-							this.contents[localContentsOffset++] = (byte) nameIndex;

-							descriptorIndex = constantPool.literalIndex(localVariableTypeBinding.signature());

-							this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-							this.contents[localContentsOffset++] = (byte) descriptorIndex;

-							int resolvedPosition = localVariable.resolvedPosition;

-							this.contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-							this.contents[localContentsOffset++] = (byte) resolvedPosition;

-						}

-					}

-				}

-				int value = numberOfEntries * 10 + 2;

-				localVariableTableOffset += 2;

-				this.contents[localVariableTableOffset++] = (byte) (value >> 24);

-				this.contents[localVariableTableOffset++] = (byte) (value >> 16);

-				this.contents[localVariableTableOffset++] = (byte) (value >> 8);

-				this.contents[localVariableTableOffset++] = (byte) value;

-				this.contents[localVariableTableOffset++] = (byte) (numberOfEntries >> 8);

-				this.contents[localVariableTableOffset] = (byte) numberOfEntries;

-				attributeNumber++;

-

-				if (genericLocalVariablesCounter != 0) {

-					// add the local variable type table attribute

-					// reserve enough space

-					int maxOfEntries = 8 + numberOfGenericEntries * 10;

-

-					if (localContentsOffset + maxOfEntries >= this.contents.length) {

-						resizeContents(maxOfEntries);

-					}

-					int localVariableTypeNameIndex =

-						constantPool.literalIndex(AttributeNamesConstants.LocalVariableTypeTableName);

-					this.contents[localContentsOffset++] = (byte) (localVariableTypeNameIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) localVariableTypeNameIndex;

-					value = numberOfGenericEntries * 10 + 2;

-					this.contents[localContentsOffset++] = (byte) (value >> 24);

-					this.contents[localContentsOffset++] = (byte) (value >> 16);

-					this.contents[localContentsOffset++] = (byte) (value >> 8);

-					this.contents[localContentsOffset++] = (byte) value;

-					this.contents[localContentsOffset++] = (byte) (numberOfGenericEntries >> 8);

-					this.contents[localContentsOffset++] = (byte) numberOfGenericEntries;

-					for (int i = 0; i < genericLocalVariablesCounter; i++) {

-						LocalVariableBinding localVariable = genericLocalVariables[i];

-						for (int j = 0; j < localVariable.initializationCount; j++) {

-							int startPC = localVariable.initializationPCs[j << 1];

-							int endPC = localVariable.initializationPCs[(j << 1) + 1];

-							if (startPC != endPC) { // only entries for non zero length

-								// now we can safely add the local entry

-								this.contents[localContentsOffset++] = (byte) (startPC >> 8);

-								this.contents[localContentsOffset++] = (byte) startPC;

-								int length = endPC - startPC;

-								this.contents[localContentsOffset++] = (byte) (length >> 8);

-								this.contents[localContentsOffset++] = (byte) length;

-								nameIndex = constantPool.literalIndex(localVariable.name);

-								this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-								this.contents[localContentsOffset++] = (byte) nameIndex;

-								descriptorIndex = constantPool.literalIndex(localVariable.type.genericTypeSignature());

-								this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-								this.contents[localContentsOffset++] = (byte) descriptorIndex;

-								int resolvedPosition = localVariable.resolvedPosition;

-								this.contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-								this.contents[localContentsOffset++] = (byte) resolvedPosition;

-							}

-						}

-					}

-					attributeNumber++;

-				}

-			}

-		}

-		// update the number of attributes

-		// ensure first that there is enough space available inside the contents array

-		if (codeAttributeAttributeOffset + 2 >= this.contents.length) {

-			resizeContents(2);

-		}

-		this.contents[codeAttributeAttributeOffset++] = (byte) (attributeNumber >> 8);

-		this.contents[codeAttributeAttributeOffset] = (byte) attributeNumber;

-		// update the attribute length

-		int codeAttributeLength = localContentsOffset - (codeAttributeOffset + 6);

-		this.contents[codeAttributeOffset + 2] = (byte) (codeAttributeLength >> 24);

-		this.contents[codeAttributeOffset + 3] = (byte) (codeAttributeLength >> 16);

-		this.contents[codeAttributeOffset + 4] = (byte) (codeAttributeLength >> 8);

-		this.contents[codeAttributeOffset + 5] = (byte) codeAttributeLength;

-		contentsOffset = localContentsOffset;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method completes the creation of the code attribute by setting

-	 * - the attribute_length

-	 * - max_stack

-	 * - max_locals

-	 * - code_length

-	 * - exception table

-	 * - and debug attributes if necessary.

-	 *

-	 * @param codeAttributeOffset <CODE>int</CODE>

-	 * @param startLineIndexes int[]

-	 */

-	public void completeCodeAttributeForClinit(

-		int codeAttributeOffset,

-		int[] startLineIndexes,

-		int problemLine) {

-		// reinitialize the contents with the byte modified by the code stream

-		this.contents = codeStream.bCodeStream;

-		int localContentsOffset = codeStream.classFileOffset;

-		// codeAttributeOffset is the position inside contents byte array before we started to write

-		// any information about the codeAttribute

-		// That means that to write the attribute_length you need to offset by 2 the value of codeAttributeOffset

-		// to get the right position, 6 for the max_stack etc...

-		int code_length = codeStream.position;

-		if (code_length > 65535) {

-			codeStream.methodDeclaration.scope.problemReporter().bytecodeExceeds64KLimit(

-				codeStream.methodDeclaration.scope.referenceType());

-		}

-		if (localContentsOffset + 20 >= this.contents.length) {

-			resizeContents(20);

-		}

-		int max_stack = codeStream.stackMax;

-		this.contents[codeAttributeOffset + 6] = (byte) (max_stack >> 8);

-		this.contents[codeAttributeOffset + 7] = (byte) max_stack;

-		int max_locals = codeStream.maxLocals;

-		this.contents[codeAttributeOffset + 8] = (byte) (max_locals >> 8);

-		this.contents[codeAttributeOffset + 9] = (byte) max_locals;

-		this.contents[codeAttributeOffset + 10] = (byte) (code_length >> 24);

-		this.contents[codeAttributeOffset + 11] = (byte) (code_length >> 16);

-		this.contents[codeAttributeOffset + 12] = (byte) (code_length >> 8);

-		this.contents[codeAttributeOffset + 13] = (byte) code_length;

-

-		// write the exception table

-		this.contents[localContentsOffset++] = 0;

-		this.contents[localContentsOffset++] = 0;

-

-		// debug attributes

-		int codeAttributeAttributeOffset = localContentsOffset;

-		int attributeNumber = 0; // leave two bytes for the attribute_length

-		localContentsOffset += 2; // first we handle the linenumber attribute

-

-		// first we handle the linenumber attribute

-		if (codeStream.generateLineNumberAttributes) {

-			if (localContentsOffset + 20 >= this.contents.length) {

-				resizeContents(20);

-			}			

-			/* Create and add the line number attribute (used for debugging) 

-			    * Build the pairs of:

-			    * (bytecodePC lineNumber)

-			    * according to the table of start line indexes and the pcToSourceMap table

-			    * contained into the codestream

-			    */

-			int lineNumberNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.LineNumberTableName);

-			this.contents[localContentsOffset++] = (byte) (lineNumberNameIndex >> 8);

-			this.contents[localContentsOffset++] = (byte) lineNumberNameIndex;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 6;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 1;

-			// first entry at pc = 0

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = (byte) (problemLine >> 8);

-			this.contents[localContentsOffset++] = (byte) problemLine;

-			// now we change the size of the line number attribute

-			attributeNumber++;

-		}

-		// then we do the local variable attribute

-		if (codeStream.generateLocalVariableTableAttributes) {

-			int localVariableNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.LocalVariableTableName);

-			if (localContentsOffset + 8 >= this.contents.length) {

-				resizeContents(8);

-			}

-			this.contents[localContentsOffset++] = (byte) (localVariableNameIndex >> 8);

-			this.contents[localContentsOffset++] = (byte) localVariableNameIndex;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 2;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			attributeNumber++;

-		}

-		// update the number of attributes

-		// ensure first that there is enough space available inside the contents array

-		if (codeAttributeAttributeOffset + 2 >= this.contents.length) {

-			resizeContents(2);

-		}

-		this.contents[codeAttributeAttributeOffset++] = (byte) (attributeNumber >> 8);

-		this.contents[codeAttributeAttributeOffset] = (byte) attributeNumber;

-		// update the attribute length

-		int codeAttributeLength = localContentsOffset - (codeAttributeOffset + 6);

-		this.contents[codeAttributeOffset + 2] = (byte) (codeAttributeLength >> 24);

-		this.contents[codeAttributeOffset + 3] = (byte) (codeAttributeLength >> 16);

-		this.contents[codeAttributeOffset + 4] = (byte) (codeAttributeLength >> 8);

-		this.contents[codeAttributeOffset + 5] = (byte) codeAttributeLength;

-		contentsOffset = localContentsOffset;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method completes the creation of the code attribute by setting

-	 * - the attribute_length

-	 * - max_stack

-	 * - max_locals

-	 * - code_length

-	 * - exception table

-	 * - and debug attributes if necessary.

-	 *

-	 * @param codeAttributeOffset <CODE>int</CODE>

-	 */

-	public void completeCodeAttributeForProblemMethod(

-		AbstractMethodDeclaration method,

-		MethodBinding binding,

-		int codeAttributeOffset,

-		int[] startLineIndexes,

-		int problemLine) {

-		// reinitialize the localContents with the byte modified by the code stream

-		this.contents = codeStream.bCodeStream;

-		int localContentsOffset = codeStream.classFileOffset;

-		// codeAttributeOffset is the position inside localContents byte array before we started to write// any information about the codeAttribute// That means that to write the attribute_length you need to offset by 2 the value of codeAttributeOffset// to get the right position, 6 for the max_stack etc...

-		int max_stack = codeStream.stackMax;

-		this.contents[codeAttributeOffset + 6] = (byte) (max_stack >> 8);

-		this.contents[codeAttributeOffset + 7] = (byte) max_stack;

-		int max_locals = codeStream.maxLocals;

-		this.contents[codeAttributeOffset + 8] = (byte) (max_locals >> 8);

-		this.contents[codeAttributeOffset + 9] = (byte) max_locals;

-		int code_length = codeStream.position;

-		this.contents[codeAttributeOffset + 10] = (byte) (code_length >> 24);

-		this.contents[codeAttributeOffset + 11] = (byte) (code_length >> 16);

-		this.contents[codeAttributeOffset + 12] = (byte) (code_length >> 8);

-		this.contents[codeAttributeOffset + 13] = (byte) code_length;

-		// write the exception table

-		if (localContentsOffset + 50 >= this.contents.length) {

-			resizeContents(50);

-		}

-

-		// write the exception table

-		this.contents[localContentsOffset++] = 0;

-		this.contents[localContentsOffset++] = 0;

-		// debug attributes

-		int codeAttributeAttributeOffset = localContentsOffset;

-		int attributeNumber = 0; // leave two bytes for the attribute_length

-		localContentsOffset += 2; // first we handle the linenumber attribute

-

-		if (codeStream.generateLineNumberAttributes) {

-			if (localContentsOffset + 20 >= this.contents.length) {

-				resizeContents(20);

-			}

-			/* Create and add the line number attribute (used for debugging) 

-			    * Build the pairs of:

-			    * (bytecodePC lineNumber)

-			    * according to the table of start line indexes and the pcToSourceMap table

-			    * contained into the codestream

-			    */

-			int lineNumberNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.LineNumberTableName);

-			this.contents[localContentsOffset++] = (byte) (lineNumberNameIndex >> 8);

-			this.contents[localContentsOffset++] = (byte) lineNumberNameIndex;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 6;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 1;

-			if (problemLine == 0) {

-				problemLine = searchLineNumber(startLineIndexes, binding.sourceStart());

-			}

-			// first entry at pc = 0

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = 0;

-			this.contents[localContentsOffset++] = (byte) (problemLine >> 8);

-			this.contents[localContentsOffset++] = (byte) problemLine;

-			// now we change the size of the line number attribute

-			attributeNumber++;

-		}

-		// then we do the local variable attribute

-		if (codeStream.generateLocalVariableTableAttributes) {

-			// compute the resolved position for the arguments of the method

-			int argSize;

-			int localVariableTableOffset = localContentsOffset;

-			int numberOfEntries = 0;

-			//		codeAttribute.addLocalVariableTableAttribute(this);

-			int localVariableNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.LocalVariableTableName);

-			if (localContentsOffset + 8 >= this.contents.length) {

-				resizeContents(8);

-			}

-			this.contents[localContentsOffset++] = (byte) (localVariableNameIndex >> 8);

-			this.contents[localContentsOffset++] = (byte) localVariableNameIndex;

-			localContentsOffset += 6;

-			// leave space for attribute_length and local_variable_table_length

-			int descriptorIndex;

-			int nameIndex;

-			SourceTypeBinding declaringClassBinding = null;

-			final boolean methodDeclarationIsStatic = codeStream.methodDeclaration.isStatic();

-			if (!methodDeclarationIsStatic) {

-				numberOfEntries++;

-				if (localContentsOffset + 10 >= this.contents.length) {

-					resizeContents(10);

-				}

-				this.contents[localContentsOffset++] = 0;

-				this.contents[localContentsOffset++] = 0;

-				this.contents[localContentsOffset++] = (byte) (code_length >> 8);

-				this.contents[localContentsOffset++] = (byte) code_length;

-				nameIndex = constantPool.literalIndex(QualifiedNamesConstants.This);

-				this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) nameIndex;

-				declaringClassBinding = (SourceTypeBinding) codeStream.methodDeclaration.binding.declaringClass;

-				descriptorIndex =

-					constantPool.literalIndex(declaringClassBinding.signature());

-				this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) descriptorIndex;

-				// the resolved position for this is always 0

-				this.contents[localContentsOffset++] = 0;

-				this.contents[localContentsOffset++] = 0;

-			}

-			// used to remember the local variable with a generic type

-			int genericLocalVariablesCounter = 0;

-			LocalVariableBinding[] genericLocalVariables = null;

-			int numberOfGenericEntries = 0;

-			

-			if (binding.isConstructor()) {

-				ReferenceBinding declaringClass = binding.declaringClass;

-				if (declaringClass.isNestedType()) {

-					NestedTypeBinding methodDeclaringClass = (NestedTypeBinding) declaringClass;

-					argSize = methodDeclaringClass.enclosingInstancesSlotSize;

-					SyntheticArgumentBinding[] syntheticArguments;

-					if ((syntheticArguments = methodDeclaringClass.syntheticEnclosingInstances()) != null) {

-						for (int i = 0, max = syntheticArguments.length; i < max; i++) {

-							LocalVariableBinding localVariable = syntheticArguments[i];

-							final TypeBinding localVariableTypeBinding = localVariable.type;

-							if (localVariableTypeBinding.isParameterizedType() || localVariableTypeBinding.isTypeVariable()) {

-								if (genericLocalVariables == null) {

-									// we cannot have more than max locals

-									genericLocalVariables = new LocalVariableBinding[max];

-								}

-								genericLocalVariables[genericLocalVariablesCounter++] = localVariable;

-								numberOfGenericEntries++;								

-							}

-							if (localContentsOffset + 10 >= this.contents.length) {

-								resizeContents(10);

-							}

-							// now we can safely add the local entry

-							numberOfEntries++;

-							this.contents[localContentsOffset++] = 0;

-							this.contents[localContentsOffset++] = 0;

-							this.contents[localContentsOffset++] = (byte) (code_length >> 8);

-							this.contents[localContentsOffset++] = (byte) code_length;

-							nameIndex = constantPool.literalIndex(localVariable.name);

-							this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-							this.contents[localContentsOffset++] = (byte) nameIndex;

-							descriptorIndex = constantPool.literalIndex(localVariableTypeBinding.signature());

-							this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-							this.contents[localContentsOffset++] = (byte) descriptorIndex;

-							int resolvedPosition = localVariable.resolvedPosition;

-							this.contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-							this.contents[localContentsOffset++] = (byte) resolvedPosition;

-						}

-					}

-				} else {

-					argSize = 1;

-				}

-			} else {

-				argSize = binding.isStatic() ? 0 : 1;

-			}

-			

-			int genericArgumentsCounter = 0;

-			int[] genericArgumentsNameIndexes = null;

-			int[] genericArgumentsResolvedPositions = null;

-			TypeBinding[] genericArgumentsTypeBindings = null;

-

-			if (method.binding != null) {

-				TypeBinding[] parameters = method.binding.parameters;

-				Argument[] arguments = method.arguments;

-				if ((parameters != null) && (arguments != null)) {

-					for (int i = 0, max = parameters.length; i < max; i++) {

-						TypeBinding argumentBinding = parameters[i];

-						if (localContentsOffset + 10 >= this.contents.length) {

-							resizeContents(10);

-						}

-						// now we can safely add the local entry

-						numberOfEntries++;

-						this.contents[localContentsOffset++] = 0;

-						this.contents[localContentsOffset++] = 0;

-						this.contents[localContentsOffset++] = (byte) (code_length >> 8);

-						this.contents[localContentsOffset++] = (byte) code_length;

-						nameIndex = constantPool.literalIndex(arguments[i].name);

-						this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-						this.contents[localContentsOffset++] = (byte) nameIndex;

-						int resolvedPosition = argSize;

-						if (argumentBinding.isParameterizedType() || argumentBinding.isTypeVariable()) {

-							if (genericArgumentsCounter == 0) {

-								// we cannot have more than max locals

-								genericArgumentsNameIndexes = new int[max];

-								genericArgumentsResolvedPositions = new int[max];

-								genericArgumentsTypeBindings = new TypeBinding[max];

-							}

-							genericArgumentsNameIndexes[genericArgumentsCounter] = nameIndex;

-							genericArgumentsResolvedPositions[genericArgumentsCounter] = resolvedPosition;

-							genericArgumentsTypeBindings[genericArgumentsCounter++] = argumentBinding;

-						}

-						descriptorIndex = constantPool.literalIndex(argumentBinding.signature());

-						this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-						this.contents[localContentsOffset++] = (byte) descriptorIndex;

-						if ((argumentBinding == BaseTypes.LongBinding)

-							|| (argumentBinding == BaseTypes.DoubleBinding))

-							argSize += 2;

-						else

-							argSize++;

-						this.contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-						this.contents[localContentsOffset++] = (byte) resolvedPosition;

-					}

-				}

-			}

-			int value = numberOfEntries * 10 + 2;

-			localVariableTableOffset += 2;

-			this.contents[localVariableTableOffset++] = (byte) (value >> 24);

-			this.contents[localVariableTableOffset++] = (byte) (value >> 16);

-			this.contents[localVariableTableOffset++] = (byte) (value >> 8);

-			this.contents[localVariableTableOffset++] = (byte) value;

-			this.contents[localVariableTableOffset++] = (byte) (numberOfEntries >> 8);

-			this.contents[localVariableTableOffset] = (byte) numberOfEntries;

-			attributeNumber++;

-			

-			final boolean currentInstanceIsGeneric = 

-				!methodDeclarationIsStatic

-				&& declaringClassBinding != null

-				&& declaringClassBinding.typeVariables != NoTypeVariables;

-			if (genericLocalVariablesCounter != 0 || genericArgumentsCounter != 0 || currentInstanceIsGeneric) {

-				// add the local variable type table attribute

-				numberOfEntries = numberOfGenericEntries + genericArgumentsCounter + (currentInstanceIsGeneric ? 1 : 0);

-				// reserve enough space

-				int maxOfEntries = 8 + numberOfEntries * 10;

-				if (localContentsOffset + maxOfEntries >= this.contents.length) {

-					resizeContents(maxOfEntries);

-				}

-				int localVariableTypeNameIndex =

-					constantPool.literalIndex(AttributeNamesConstants.LocalVariableTypeTableName);

-				this.contents[localContentsOffset++] = (byte) (localVariableTypeNameIndex >> 8);

-				this.contents[localContentsOffset++] = (byte) localVariableTypeNameIndex;

-				value = numberOfEntries * 10 + 2;

-				this.contents[localContentsOffset++] = (byte) (value >> 24);

-				this.contents[localContentsOffset++] = (byte) (value >> 16);

-				this.contents[localContentsOffset++] = (byte) (value >> 8);

-				this.contents[localContentsOffset++] = (byte) value;

-				this.contents[localContentsOffset++] = (byte) (numberOfEntries >> 8);

-				this.contents[localContentsOffset++] = (byte) numberOfEntries;

-				if (currentInstanceIsGeneric) {

-					numberOfEntries++;

-					this.contents[localContentsOffset++] = 0; // the startPC for this is always 0

-					this.contents[localContentsOffset++] = 0;

-					this.contents[localContentsOffset++] = (byte) (code_length >> 8);

-					this.contents[localContentsOffset++] = (byte) code_length;

-					nameIndex = constantPool.literalIndex(QualifiedNamesConstants.This);

-					this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) nameIndex;

-					descriptorIndex = constantPool.literalIndex(declaringClassBinding.genericTypeSignature());

-					this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) descriptorIndex;

-					this.contents[localContentsOffset++] = 0;// the resolved position for this is always 0

-					this.contents[localContentsOffset++] = 0;

-				}

-				

-				for (int i = 0; i < genericLocalVariablesCounter; i++) {

-					LocalVariableBinding localVariable = genericLocalVariables[i];

-					this.contents[localContentsOffset++] = 0;

-					this.contents[localContentsOffset++] = 0;

-					this.contents[localContentsOffset++] = (byte) (code_length >> 8);

-					this.contents[localContentsOffset++] = (byte) code_length;

-					nameIndex = constantPool.literalIndex(localVariable.name);

-					this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) nameIndex;

-					descriptorIndex = constantPool.literalIndex(localVariable.type.genericTypeSignature());

-					this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) descriptorIndex;

-					int resolvedPosition = localVariable.resolvedPosition;

-					this.contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-					this.contents[localContentsOffset++] = (byte) resolvedPosition;

-				}

-				for (int i = 0; i < genericArgumentsCounter; i++) {

-					this.contents[localContentsOffset++] = 0;

-					this.contents[localContentsOffset++] = 0;

-					this.contents[localContentsOffset++] = (byte) (code_length >> 8);

-					this.contents[localContentsOffset++] = (byte) code_length;

-					nameIndex = genericArgumentsNameIndexes[i];

-					this.contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) nameIndex;

-					descriptorIndex = constantPool.literalIndex(genericArgumentsTypeBindings[i].genericTypeSignature());

-					this.contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-					this.contents[localContentsOffset++] = (byte) descriptorIndex;

-					int resolvedPosition = genericArgumentsResolvedPositions[i];

-					this.contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-					this.contents[localContentsOffset++] = (byte) resolvedPosition;

-				}				

-				attributeNumber++;

-			}			

-		}

-		// update the number of attributes// ensure first that there is enough space available inside the localContents array

-		if (codeAttributeAttributeOffset + 2 >= this.contents.length) {

-			resizeContents(2);

-		}

-		this.contents[codeAttributeAttributeOffset++] = (byte) (attributeNumber >> 8);

-		this.contents[codeAttributeAttributeOffset] = (byte) attributeNumber;

-		// update the attribute length

-		int codeAttributeLength = localContentsOffset - (codeAttributeOffset + 6);

-		this.contents[codeAttributeOffset + 2] = (byte) (codeAttributeLength >> 24);

-		this.contents[codeAttributeOffset + 3] = (byte) (codeAttributeLength >> 16);

-		this.contents[codeAttributeOffset + 4] = (byte) (codeAttributeLength >> 8);

-		this.contents[codeAttributeOffset + 5] = (byte) codeAttributeLength;

-		contentsOffset = localContentsOffset;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method completes the creation of the code attribute by setting

-	 * - the attribute_length

-	 * - max_stack

-	 * - max_locals

-	 * - code_length

-	 * - exception table

-	 * - and debug attributes if necessary.

-	 *

-	 * @param binding org.eclipse.wst.jsdt.internal.compiler.lookup.SyntheticAccessMethodBinding

-	 * @param codeAttributeOffset <CODE>int</CODE>

-	 */

-	public void completeCodeAttributeForSyntheticAccessMethod(

-		SyntheticAccessMethodBinding binding,

-		int codeAttributeOffset,

-		int[] startLineIndexes) {

-		// reinitialize the contents with the byte modified by the code stream

-		this.contents = codeStream.bCodeStream;

-		int localContentsOffset = codeStream.classFileOffset;

-		// codeAttributeOffset is the position inside contents byte array before we started to write

-		// any information about the codeAttribute

-		// That means that to write the attribute_length you need to offset by 2 the value of codeAttributeOffset

-		// to get the right position, 6 for the max_stack etc...

-		int max_stack = codeStream.stackMax;

-		contents[codeAttributeOffset + 6] = (byte) (max_stack >> 8);

-		contents[codeAttributeOffset + 7] = (byte) max_stack;

-		int max_locals = codeStream.maxLocals;

-		contents[codeAttributeOffset + 8] = (byte) (max_locals >> 8);

-		contents[codeAttributeOffset + 9] = (byte) max_locals;

-		int code_length = codeStream.position;

-		contents[codeAttributeOffset + 10] = (byte) (code_length >> 24);

-		contents[codeAttributeOffset + 11] = (byte) (code_length >> 16);

-		contents[codeAttributeOffset + 12] = (byte) (code_length >> 8);

-		contents[codeAttributeOffset + 13] = (byte) code_length;

-		if ((localContentsOffset + 40) >= this.contents.length) {

-			resizeContents(40);

-		}

-		// there is no exception table, so we need to offset by 2 the current offset and move 

-		// on the attribute generation

-		contents[localContentsOffset++] = 0;

-		contents[localContentsOffset++] = 0;

-		// debug attributes

-		int codeAttributeAttributeOffset = localContentsOffset;

-		int attributeNumber = 0;

-		// leave two bytes for the attribute_length

-		localContentsOffset += 2;

-

-		// first we handle the linenumber attribute

-		if (codeStream.generateLineNumberAttributes) {

-			int index = 0;

-			int lineNumberNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.LineNumberTableName);

-			contents[localContentsOffset++] = (byte) (lineNumberNameIndex >> 8);

-			contents[localContentsOffset++] = (byte) lineNumberNameIndex;

-			int lineNumberTableOffset = localContentsOffset;

-			localContentsOffset += 6;

-			// leave space for attribute_length and line_number_table_length

-			// Seems like do would be better, but this preserves the existing behavior.

-			index = searchLineNumber(startLineIndexes, binding.sourceStart);

-			contents[localContentsOffset++] = 0;

-			contents[localContentsOffset++] = 0;

-			contents[localContentsOffset++] = (byte) (index >> 8);

-			contents[localContentsOffset++] = (byte) index;

-			// now we change the size of the line number attribute

-			contents[lineNumberTableOffset++] = 0;

-			contents[lineNumberTableOffset++] = 0;

-			contents[lineNumberTableOffset++] = 0;

-			contents[lineNumberTableOffset++] = 6;

-			contents[lineNumberTableOffset++] = 0;

-			contents[lineNumberTableOffset++] = 1;

-			attributeNumber++;

-		}

-		// then we do the local variable attribute

-		if (codeStream.generateLocalVariableTableAttributes) {

-			int localVariableTableOffset = localContentsOffset;

-			int numberOfEntries = 0;

-			int localVariableNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.LocalVariableTableName);

-			if (localContentsOffset + 8 > this.contents.length) {

-				resizeContents(8);

-			}

-			contents[localContentsOffset++] = (byte) (localVariableNameIndex >> 8);

-			contents[localContentsOffset++] = (byte) localVariableNameIndex;

-			localContentsOffset += 6;

-			// leave space for attribute_length and local_variable_table_length

-			int nameIndex;

-			int descriptorIndex;

-

-			// used to remember the local variable with a generic type

-			int genericLocalVariablesCounter = 0;

-			LocalVariableBinding[] genericLocalVariables = null;

-			int numberOfGenericEntries = 0;

-			

-			for (int i = 0, max = codeStream.allLocalsCounter; i < max; i++) {

-				LocalVariableBinding localVariable = codeStream.locals[i];

-				final TypeBinding localVariableTypeBinding = localVariable.type;

-				boolean isParameterizedType = localVariableTypeBinding.isParameterizedType() || localVariableTypeBinding.isTypeVariable();

-				if (localVariable.initializationCount != 0 && isParameterizedType) {

-					if (genericLocalVariables == null) {

-						// we cannot have more than max locals

-						genericLocalVariables = new LocalVariableBinding[max];

-					}

-					genericLocalVariables[genericLocalVariablesCounter++] = localVariable;

-				}

-				for (int j = 0; j < localVariable.initializationCount; j++) {

-					int startPC = localVariable.initializationPCs[j << 1];

-					int endPC = localVariable.initializationPCs[(j << 1) + 1];

-					if (startPC != endPC) { // only entries for non zero length

-						if (endPC == -1) {

-							localVariable.declaringScope.problemReporter().abortDueToInternalError(

-								Util.bind("abort.invalidAttribute" , new String(localVariable.name)), //$NON-NLS-1$

-								(ASTNode) localVariable.declaringScope.methodScope().referenceContext);

-						}

-						if (localContentsOffset + 10 > this.contents.length) {

-							resizeContents(10);

-						}

-						// now we can safely add the local entry

-						numberOfEntries++;

-						if (isParameterizedType) {

-							numberOfGenericEntries++;

-						}

-						contents[localContentsOffset++] = (byte) (startPC >> 8);

-						contents[localContentsOffset++] = (byte) startPC;

-						int length = endPC - startPC;

-						contents[localContentsOffset++] = (byte) (length >> 8);

-						contents[localContentsOffset++] = (byte) length;

-						nameIndex = constantPool.literalIndex(localVariable.name);

-						contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-						contents[localContentsOffset++] = (byte) nameIndex;

-						descriptorIndex = constantPool.literalIndex(localVariableTypeBinding.signature());

-						contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-						contents[localContentsOffset++] = (byte) descriptorIndex;

-						int resolvedPosition = localVariable.resolvedPosition;

-						contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-						contents[localContentsOffset++] = (byte) resolvedPosition;

-					}

-				}

-			}

-			int value = numberOfEntries * 10 + 2;

-			localVariableTableOffset += 2;

-			contents[localVariableTableOffset++] = (byte) (value >> 24);

-			contents[localVariableTableOffset++] = (byte) (value >> 16);

-			contents[localVariableTableOffset++] = (byte) (value >> 8);

-			contents[localVariableTableOffset++] = (byte) value;

-			contents[localVariableTableOffset++] = (byte) (numberOfEntries >> 8);

-			contents[localVariableTableOffset] = (byte) numberOfEntries;

-			attributeNumber++;

-

-			if (genericLocalVariablesCounter != 0) {

-				// add the local variable type table attribute

-				int maxOfEntries = 8 + numberOfGenericEntries * 10;

-				// reserve enough space

-				if (localContentsOffset + maxOfEntries >= this.contents.length) {

-					resizeContents(maxOfEntries);

-				}

-				int localVariableTypeNameIndex =

-					constantPool.literalIndex(AttributeNamesConstants.LocalVariableTypeTableName);

-				contents[localContentsOffset++] = (byte) (localVariableTypeNameIndex >> 8);

-				contents[localContentsOffset++] = (byte) localVariableTypeNameIndex;

-				value = numberOfGenericEntries * 10 + 2;

-				contents[localContentsOffset++] = (byte) (value >> 24);

-				contents[localContentsOffset++] = (byte) (value >> 16);

-				contents[localContentsOffset++] = (byte) (value >> 8);

-				contents[localContentsOffset++] = (byte) value;

-				contents[localContentsOffset++] = (byte) (numberOfGenericEntries >> 8);

-				contents[localContentsOffset++] = (byte) numberOfGenericEntries;

-

-				for (int i = 0; i < genericLocalVariablesCounter; i++) {

-					LocalVariableBinding localVariable = genericLocalVariables[i];

-					for (int j = 0; j < localVariable.initializationCount; j++) {

-						int startPC = localVariable.initializationPCs[j << 1];

-						int endPC = localVariable.initializationPCs[(j << 1) + 1];

-						if (startPC != endPC) { // only entries for non zero length

-							// now we can safely add the local entry

-							contents[localContentsOffset++] = (byte) (startPC >> 8);

-							contents[localContentsOffset++] = (byte) startPC;

-							int length = endPC - startPC;

-							contents[localContentsOffset++] = (byte) (length >> 8);

-							contents[localContentsOffset++] = (byte) length;

-							nameIndex = constantPool.literalIndex(localVariable.name);

-							contents[localContentsOffset++] = (byte) (nameIndex >> 8);

-							contents[localContentsOffset++] = (byte) nameIndex;

-							descriptorIndex = constantPool.literalIndex(localVariable.type.genericTypeSignature());

-							contents[localContentsOffset++] = (byte) (descriptorIndex >> 8);

-							contents[localContentsOffset++] = (byte) descriptorIndex;

-							int resolvedPosition = localVariable.resolvedPosition;

-							contents[localContentsOffset++] = (byte) (resolvedPosition >> 8);

-							contents[localContentsOffset++] = (byte) resolvedPosition;

-						}

-					}

-				}

-				attributeNumber++;

-			}

-		}

-		// update the number of attributes

-		// ensure first that there is enough space available inside the contents array

-		if (codeAttributeAttributeOffset + 2 >= this.contents.length) {

-			resizeContents(2);

-		}

-		contents[codeAttributeAttributeOffset++] = (byte) (attributeNumber >> 8);

-		contents[codeAttributeAttributeOffset] = (byte) attributeNumber;

-

-		// update the attribute length

-		int codeAttributeLength = localContentsOffset - (codeAttributeOffset + 6);

-		contents[codeAttributeOffset + 2] = (byte) (codeAttributeLength >> 24);

-		contents[codeAttributeOffset + 3] = (byte) (codeAttributeLength >> 16);

-		contents[codeAttributeOffset + 4] = (byte) (codeAttributeLength >> 8);

-		contents[codeAttributeOffset + 5] = (byte) codeAttributeLength;

-		contentsOffset = localContentsOffset;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Complete the creation of a method info by setting up the number of attributes at the right offset.

-	 *

-	 * @param methodAttributeOffset <CODE>int</CODE>

-	 * @param attributeNumber <CODE>int</CODE> 

-	 */

-	public void completeMethodInfo(

-		int methodAttributeOffset,

-		int attributeNumber) {

-		// update the number of attributes

-		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);

-		contents[methodAttributeOffset] = (byte) attributeNumber;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Request the creation of a ClassFile compatible representation of a problematic type

-	 *

-	 * @param typeDeclaration org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration

-	 * @param unitResult org.eclipse.wst.jsdt.internal.compiler.CompilationUnitResult

-	 */

-	public static void createProblemType(

-		TypeDeclaration typeDeclaration,

-		CompilationResult unitResult) {

-		SourceTypeBinding typeBinding = typeDeclaration.binding;

-		ClassFile classFile = new ClassFile(typeBinding, null, true);

-

-		// TODO (olivier) handle cases where a field cannot be generated (name too long)

-		// TODO (olivier) handle too many methods

-		// inner attributes

-		if (typeBinding.isMemberType())

-			classFile.recordEnclosingTypeAttributes(typeBinding);

-

-		// add its fields

-		FieldBinding[] fields = typeBinding.fields;

-		if ((fields != null) && (fields != NoFields)) {

-			for (int i = 0, max = fields.length; i < max; i++) {

-				if (fields[i].constant() == null) {

-					FieldReference.getConstantFor(fields[i], null, false, null);

-				}

-			}

-			classFile.addFieldInfos();

-		} else {

-			// we have to set the number of fields to be equals to 0

-			classFile.contents[classFile.contentsOffset++] = 0;

-			classFile.contents[classFile.contentsOffset++] = 0;

-		}

-		// leave some space for the methodCount

-		classFile.setForMethodInfos();

-		// add its user defined methods

-		MethodBinding[] methods = typeBinding.methods;

-		AbstractMethodDeclaration[] methodDeclarations = typeDeclaration.methods;

-		int maxMethodDecl = methodDeclarations == null ? 0 : methodDeclarations.length;

-		int problemsLength;

-		IProblem[] problems = unitResult.getErrors();

-		if (problems == null) {

-			problems = new IProblem[0];

-		}

-		IProblem[] problemsCopy = new IProblem[problemsLength = problems.length];

-		System.arraycopy(problems, 0, problemsCopy, 0, problemsLength);

-		if (methods != null) {

-			if (typeBinding.isInterface()) {

-				// we cannot create problem methods for an interface. So we have to generate a clinit

-				// which should contain all the problem

-				classFile.addProblemClinit(problemsCopy);

-				for (int i = 0, max = methods.length; i < max; i++) {

-					MethodBinding methodBinding;

-					if ((methodBinding = methods[i]) != null) {

-						// find the corresponding method declaration

-						for (int j = 0; j < maxMethodDecl; j++) {

-							if ((methodDeclarations[j] != null)

-								&& (methodDeclarations[j].binding == methods[i])) {

-								if (!methodBinding.isConstructor()) {

-									classFile.addAbstractMethod(methodDeclarations[j], methodBinding);

-								}

-								break;

-							}

-						}

-					}

-				}

-			} else {

-				for (int i = 0, max = methods.length; i < max; i++) {

-					MethodBinding methodBinding;

-					if ((methodBinding = methods[i]) != null) {

-						// find the corresponding method declaration

-						for (int j = 0; j < maxMethodDecl; j++) {

-							if ((methodDeclarations[j] != null)

-								&& (methodDeclarations[j].binding == methods[i])) {

-								AbstractMethodDeclaration methodDecl;

-								if ((methodDecl = methodDeclarations[j]).isConstructor()) {

-									classFile.addProblemConstructor(methodDecl, methodBinding, problemsCopy);

-								} else {

-									classFile.addProblemMethod(methodDecl, methodBinding, problemsCopy);

-								}

-								break;

-							}

-						}

-					}

-				}

-			}

-			// add abstract methods

-			classFile.addDefaultAbstractMethods();

-		}

-		// propagate generation of (problem) member types

-		if (typeDeclaration.memberTypes != null) {

-			for (int i = 0, max = typeDeclaration.memberTypes.length; i < max; i++) {

-				TypeDeclaration memberType = typeDeclaration.memberTypes[i];

-				if (memberType.binding != null) {

-					classFile.recordNestedMemberAttribute(memberType.binding);

-					ClassFile.createProblemType(memberType, unitResult);

-				}

-			}

-		}

-		classFile.addAttributes();

-		unitResult.record(typeBinding.constantPoolName(), classFile);

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods returns a char[] representing the file name of the receiver

-	 *

-	 * @return char[]

-	 */

-	public char[] fileName() {

-		return constantPool.UTF8Cache.returnKeyFor(1);

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method generates the header of a code attribute.

-	 * - the index inside the constant pool for the attribute name ("Code")

-	 * - leave some space for attribute_length(4), max_stack(2), max_locals(2), code_length(4).

-	 */

-	public void generateCodeAttributeHeader() {

-		if (contentsOffset + 20 >= this.contents.length) {

-			resizeContents(20);

-		}

-		int constantValueNameIndex =

-			constantPool.literalIndex(AttributeNamesConstants.CodeName);

-		contents[contentsOffset++] = (byte) (constantValueNameIndex >> 8);

-		contents[contentsOffset++] = (byte) constantValueNameIndex;

-		// leave space for attribute_length(4), max_stack(2), max_locals(2), code_length(4)

-		contentsOffset += 12;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method generates the attributes of a code attribute.

-	 * They could be:

-	 * - an exception attribute for each try/catch found inside the method

-	 * - a deprecated attribute

-	 * - a synthetic attribute for synthetic access methods

-	 *

-	 * It returns the number of attributes created for the code attribute.

-	 *

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

-	 * @return <CODE>int</CODE>

-	 */

-	public int generateMethodInfoAttribute(MethodBinding methodBinding) {

-		// leave two bytes for the attribute_number

-		contentsOffset += 2;

-		// now we can handle all the attribute for that method info:

-		// it could be:

-		// - a CodeAttribute

-		// - a ExceptionAttribute

-		// - a DeprecatedAttribute

-		// - a SyntheticAttribute

-

-		// Exception attribute

-		ReferenceBinding[] thrownsExceptions;

-		int attributeNumber = 0;

-		if ((thrownsExceptions = methodBinding.thrownExceptions) != NoExceptions) {

-			// The method has a throw clause. So we need to add an exception attribute

-			// check that there is enough space to write all the bytes for the exception attribute

-			int length = thrownsExceptions.length;

-			int exSize = 8 + length * 2;

-			if (exSize + contentsOffset >= this.contents.length) {

-				resizeContents(exSize);

-			}

-			int exceptionNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.ExceptionsName);

-			contents[contentsOffset++] = (byte) (exceptionNameIndex >> 8);

-			contents[contentsOffset++] = (byte) exceptionNameIndex;

-			// The attribute length = length * 2 + 2 in case of a exception attribute

-			int attributeLength = length * 2 + 2;

-			contents[contentsOffset++] = (byte) (attributeLength >> 24);

-			contents[contentsOffset++] = (byte) (attributeLength >> 16);

-			contents[contentsOffset++] = (byte) (attributeLength >> 8);

-			contents[contentsOffset++] = (byte) attributeLength;

-			contents[contentsOffset++] = (byte) (length >> 8);

-			contents[contentsOffset++] = (byte) length;

-			for (int i = 0; i < length; i++) {

-				int exceptionIndex = constantPool.literalIndex(thrownsExceptions[i]);

-				contents[contentsOffset++] = (byte) (exceptionIndex >> 8);

-				contents[contentsOffset++] = (byte) exceptionIndex;

-			}

-			attributeNumber++;

-		}

-		if (methodBinding.isDeprecated()) {

-			// Deprecated attribute

-			// Check that there is enough space to write the deprecated attribute

-			if (contentsOffset + 6 >= this.contents.length) {

-				resizeContents(6);

-			}

-			int deprecatedAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.DeprecatedName);

-			contents[contentsOffset++] = (byte) (deprecatedAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) deprecatedAttributeNameIndex;

-			// the length of a deprecated attribute is equals to 0

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-

-			attributeNumber++;

-		}

-		if (this.targetJDK < ClassFileConstants.JDK1_5 && methodBinding.isSynthetic()) {

-			// Synthetic attribute

-			// Check that there is enough space to write the deprecated attribute

-			if (contentsOffset + 6 >= this.contents.length) {

-				resizeContents(6);

-			}

-			int syntheticAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.SyntheticName);

-			contents[contentsOffset++] = (byte) (syntheticAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) syntheticAttributeNameIndex;

-			// the length of a synthetic attribute is equals to 0

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-

-			attributeNumber++;

-		}

-		// add signature attribute

-		char[] genericSignature = methodBinding.genericSignature();

-		if (genericSignature != null) {

-			// check that there is enough space to write all the bytes for the field info corresponding

-			// to the @fieldBinding

-			if (contentsOffset + 8 >= this.contents.length) {

-				resizeContents(8);

-			}

-			int signatureAttributeNameIndex =

-				constantPool.literalIndex(AttributeNamesConstants.SignatureName);

-			contents[contentsOffset++] = (byte) (signatureAttributeNameIndex >> 8);

-			contents[contentsOffset++] = (byte) signatureAttributeNameIndex;

-			// the length of a signature attribute is equals to 2

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 0;

-			contents[contentsOffset++] = 2;

-			int signatureIndex =

-				constantPool.literalIndex(genericSignature);

-			contents[contentsOffset++] = (byte) (signatureIndex >> 8);

-			contents[contentsOffset++] = (byte) signatureIndex;

-			attributeNumber++;

-		}		

-		return attributeNumber;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method generates the header of a method info:

-	 * The header consists in:

-	 * - the access flags

-	 * - the name index of the method name inside the constant pool

-	 * - the descriptor index of the signature of the method inside the constant pool.

-	 *

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

-	 */

-	public void generateMethodInfoHeader(MethodBinding methodBinding) {

-		generateMethodInfoHeader(methodBinding, methodBinding.modifiers);

-	}

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method generates the header of a method info:

-	 * The header consists in:

-	 * - the access flags

-	 * - the name index of the method name inside the constant pool

-	 * - the descriptor index of the signature of the method inside the constant pool.

-	 *

-	 * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

-	 * @param accessFlags the access flags

-	 */

-	public void generateMethodInfoHeader(MethodBinding methodBinding, int accessFlags) {

-		// check that there is enough space to write all the bytes for the method info corresponding

-		// to the @methodBinding

-		methodCount++; // add one more method

-		if (contentsOffset + 10 >= this.contents.length) {

-			resizeContents(10);

-		}

-		if (targetJDK < ClassFileConstants.JDK1_5) {

-		    // pre 1.5, synthetic was an attribute, not a modifier

-		    accessFlags &= ~AccSynthetic;

-		}

-		if (methodBinding.isRequiredToClearPrivateModifier()) {

-			accessFlags &= ~AccPrivate;

-		}

-		contents[contentsOffset++] = (byte) (accessFlags >> 8);

-		contents[contentsOffset++] = (byte) accessFlags;

-		int nameIndex = constantPool.literalIndex(methodBinding.selector);

-		contents[contentsOffset++] = (byte) (nameIndex >> 8);

-		contents[contentsOffset++] = (byte) nameIndex;

-		int descriptorIndex = constantPool.literalIndex(methodBinding.signature());

-		contents[contentsOffset++] = (byte) (descriptorIndex >> 8);

-		contents[contentsOffset++] = (byte) descriptorIndex;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * That method generates the method info header of a clinit:

-	 * The header consists in:

-	 * - the access flags (always default access + static)

-	 * - the name index of the method name (always <clinit>) inside the constant pool 

-	 * - the descriptor index of the signature (always ()V) of the method inside the constant pool.

-	 */

-	public void generateMethodInfoHeaderForClinit() {

-		// check that there is enough space to write all the bytes for the method info corresponding

-		// to the @methodBinding

-		methodCount++; // add one more method

-		if (contentsOffset + 10 >= this.contents.length) {

-			resizeContents(10);

-		}

-		contents[contentsOffset++] = (byte) ((AccDefault | AccStatic) >> 8);

-		contents[contentsOffset++] = (byte) (AccDefault | AccStatic);

-		int nameIndex = constantPool.literalIndex(QualifiedNamesConstants.Clinit);

-		contents[contentsOffset++] = (byte) (nameIndex >> 8);

-		contents[contentsOffset++] = (byte) nameIndex;

-		int descriptorIndex =

-			constantPool.literalIndex(QualifiedNamesConstants.ClinitSignature);

-		contents[contentsOffset++] = (byte) (descriptorIndex >> 8);

-		contents[contentsOffset++] = (byte) descriptorIndex;

-		// We know that we won't get more than 1 attribute: the code attribute

-		contents[contentsOffset++] = 0;

-		contents[contentsOffset++] = 1;

-	}

-

-	/**

-	 * EXTERNAL API

-	 * Answer the actual bytes of the class file

-	 *

-	 * This method encodes the receiver structure into a byte array which is the content of the classfile.

-	 * Returns the byte array that represents the encoded structure of the receiver.

-	 *

-	 * @return byte[]

-	 */

-	public byte[] getBytes() {

-		byte[] fullContents = new byte[headerOffset + contentsOffset];

-		System.arraycopy(header, 0, fullContents, 0, headerOffset);

-		System.arraycopy(contents, 0, fullContents, headerOffset, contentsOffset);

-		return fullContents;

-	}

-

-	/**

-	 * EXTERNAL API

-	 * Answer the compound name of the class file.

-	 * @return char[][]

-	 * e.g. {{java}, {util}, {Hashtable}}.

-	 */

-	public char[][] getCompoundName() {

-		return CharOperation.splitOn('/', fileName());

-	}

-

-	protected void initByteArrays() {

-		LookupEnvironment env = this.referenceBinding.scope.environment();

-		synchronized (env) {

-			if (env.sharedArraysUsed) {

-				this.ownSharedArrays = false;

-				int members = referenceBinding.methods().length + referenceBinding.fields().length;

-				this.header = new byte[INITIAL_HEADER_SIZE];

-				this.contents = new byte[members < 15 ? INITIAL_CONTENTS_SIZE : INITIAL_HEADER_SIZE];

-			} else {

-				this.ownSharedArrays = env.sharedArraysUsed = true;

-				this.header = env.sharedClassFileHeader;

-				this.contents = env.sharedClassFileContents;

-			}

-		}

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Returns the most enclosing classfile of the receiver. This is used know to store the constant pool name

-	 * for all inner types of the receiver.

-	 * @return org.eclipse.wst.jsdt.internal.compiler.codegen.ClassFile

-	 */

-	public ClassFile outerMostEnclosingClassFile() {

-		ClassFile current = this;

-		while (current.enclosingClassFile != null)

-			current = current.enclosingClassFile;

-		return current;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This is used to store a new inner class. It checks that the binding @binding doesn't already exist inside the

-	 * collection of inner classes. Add all the necessary classes in the right order to fit to the specifications.

-	 *

-	 * @param binding org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding

-	 */

-	public void recordEnclosingTypeAttributes(ReferenceBinding binding) {

-		// add all the enclosing types

-		ReferenceBinding enclosingType = referenceBinding.enclosingType();

-		int depth = 0;

-		while (enclosingType != null) {

-			depth++;

-			enclosingType = enclosingType.enclosingType();

-		}

-		enclosingType = referenceBinding;

-		ReferenceBinding enclosingTypes[];

-		if (depth >= 2) {

-			enclosingTypes = new ReferenceBinding[depth];

-			for (int i = depth - 1; i >= 0; i--) {

-				enclosingTypes[i] = enclosingType;

-				enclosingType = enclosingType.enclosingType();

-			}

-			for (int i = 0; i < depth; i++) {

-				addInnerClasses(enclosingTypes[i]);

-			}

-		} else {

-			addInnerClasses(referenceBinding);

-		}

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This is used to store a new inner class. It checks that the binding @binding doesn't already exist inside the

-	 * collection of inner classes. Add all the necessary classes in the right order to fit to the specifications.

-	 *

-	 * @param binding org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding

-	 */

-	public void recordNestedLocalAttribute(ReferenceBinding binding) {

-		// add all the enclosing types

-		ReferenceBinding enclosingType = referenceBinding.enclosingType();

-		int depth = 0;

-		while (enclosingType != null) {

-			depth++;

-			enclosingType = enclosingType.enclosingType();

-		}

-		enclosingType = referenceBinding;

-		ReferenceBinding enclosingTypes[];

-		if (depth >= 2) {

-			enclosingTypes = new ReferenceBinding[depth];

-			for (int i = depth - 1; i >= 0; i--) {

-				enclosingTypes[i] = enclosingType;

-				enclosingType = enclosingType.enclosingType();

-			}

-			for (int i = 0; i < depth; i++)

-				addInnerClasses(enclosingTypes[i]);

-		} else {

-			addInnerClasses(binding);

-		}

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This is used to store a new inner class. It checks that the binding @binding doesn't already exist inside the

-	 * collection of inner classes. Add all the necessary classes in the right order to fit to the specifications.

-	 *

-	 * @param binding org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding

-	 */

-	public void recordNestedMemberAttribute(ReferenceBinding binding) {

-		addInnerClasses(binding);

-	}

-	

-	/**

-	 * Resize the pool contents

-	 */

-	private final void resizeContents(int minimalSize) {

-		int length = this.contents.length;

-		int toAdd = length;

-		if (toAdd < minimalSize)

-			toAdd = minimalSize;

-		System.arraycopy(this.contents, 0, this.contents = new byte[length + toAdd], 0, length);

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * Search the line number corresponding to a specific position

-	 */

-	public static final int searchLineNumber(

-		int[] startLineIndexes,

-		int position) {

-		// this code is completely useless, but it is the same implementation than

-		// org.eclipse.wst.jsdt.internal.compiler.problem.ProblemHandler.searchLineNumber(int[], int)

-		// if (startLineIndexes == null)

-		//	return 1;

-		int length = startLineIndexes.length;

-		if (length == 0)

-			return 1;

-		int g = 0, d = length - 1;

-		int m = 0;

-		while (g <= d) {

-			m = (g + d) / 2;

-			if (position < startLineIndexes[m]) {

-				d = m - 1;

-			} else

-				if (position > startLineIndexes[m]) {

-					g = m + 1;

-				} else {

-					return m + 1;

-				}

-		}

-		if (position < startLineIndexes[m]) {

-			return m + 1;

-		}

-		return m + 2;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * This methods leaves the space for method counts recording.

-	 */

-	public void setForMethodInfos() {

-		// leave some space for the methodCount

-		methodCountOffset = contentsOffset;

-		contentsOffset += 2;

-	}

-

-	/**

-	 * INTERNAL USE-ONLY

-	 * outputPath is formed like:

-	 *	   c:\temp\ the last character is a file separator

-	 * relativeFileName is formed like:

-	 *     java\lang\String.class

-	 * @param generatePackagesStructure a flag to know if the packages structure has to be generated.

-	 * @param outputPath the output directory

-	 * @param relativeFileName java.lang.String

-	 * @param contents byte[]

-	 * 

-	 */

-	public static void writeToDisk(

-		boolean generatePackagesStructure,

-		String outputPath,

-		String relativeFileName,

-		byte[] contents)

-		throws IOException {

-			

-		BufferedOutputStream output = null;

-		if (generatePackagesStructure) {

-			output = new BufferedOutputStream(

-				new FileOutputStream(

-						new File(buildAllDirectoriesInto(outputPath, relativeFileName))));

-		} else {

-			String fileName = null;

-			char fileSeparatorChar = File.separatorChar;

-			String fileSeparator = File.separator;

-			// First we ensure that the outputPath exists

-			outputPath = outputPath.replace('/', fileSeparatorChar);

-			// To be able to pass the mkdirs() method we need to remove the extra file separator at the end of the outDir name

-			int indexOfPackageSeparator = relativeFileName.lastIndexOf(fileSeparatorChar);

-			if (indexOfPackageSeparator == -1) {

-				if (outputPath.endsWith(fileSeparator)) {

-					fileName = outputPath + relativeFileName;

-				} else {

-					fileName = outputPath + fileSeparator + relativeFileName;

-				}

-			} else {

-				int length = relativeFileName.length();

-				if (outputPath.endsWith(fileSeparator)) {

-					fileName = outputPath + relativeFileName.substring(indexOfPackageSeparator + 1, length);

-				} else {

-					fileName = outputPath + fileSeparator + relativeFileName.substring(indexOfPackageSeparator + 1, length);

-				}

-			}

-			output = new BufferedOutputStream(

-				new FileOutputStream(

-						new File(fileName)));

-		}

-		try {

-			output.write(contents);

-		} finally {

-			output.flush();

-			output.close();

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/CompilationResult.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/CompilationResult.js
deleted file mode 100644
index 45dc35d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/CompilationResult.js
+++ /dev/null
@@ -1,433 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-/**

- * A compilation result consists of all information returned by the compiler for 

- * a single compiled compilation source unit.  This includes:

- * <ul>

- * <li> the compilation unit that was compiled

- * <li> for each type produced by compiling the compilation unit, its binary and optionally its principal structure

- * <li> any problems (errors or warnings) produced

- * <li> dependency info

- * </ul>

- *

- * The principle structure and binary may be null if the compiler could not produce them.

- * If neither could be produced, there is no corresponding entry for the type.

- *

- * The dependency info includes type references such as supertypes, field types, method

- * parameter and return types, local variable types, types of intermediate expressions, etc.

- * It also includes the namespaces (packages) in which names were looked up.

- * It does <em>not</em> include finer grained dependencies such as information about

- * specific fields and methods which were referenced, but does contain their 

- * declaring types and any other types used to locate such fields or methods.

- */

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.env.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding;

-

-import java.util.*;

-

-public class CompilationResult {

-	

-	public IProblem problems[];

-	public IProblem tasks[];

-	public int problemCount;

-	public int taskCount;

-	public ICompilationUnit compilationUnit;

-	private Map problemsMap;

-	private Map firstErrorsMap;

-	private int maxProblemPerUnit;

-	public char[][][] qualifiedReferences;

-	public char[][] simpleNameReferences;

-

-	public int lineSeparatorPositions[];

-	public Hashtable compiledTypes = new Hashtable(11);

-	public int unitIndex, totalUnitsKnown;

-	public boolean hasBeenAccepted = false;

-	public char[] fileName;

-	public boolean hasInconsistentToplevelHierarchies = false; // record the fact some toplevel types have inconsistent hierarchies

-	

-	public CompilationResult(

-		char[] fileName,

-		int unitIndex, 

-		int totalUnitsKnown,

-		int maxProblemPerUnit){

-	

-		this.fileName = fileName;

-		this.unitIndex = unitIndex;

-		this.totalUnitsKnown = totalUnitsKnown;

-		this.maxProblemPerUnit = maxProblemPerUnit;

-	}

-	

-	public CompilationResult(

-		ICompilationUnit compilationUnit,

-		int unitIndex, 

-		int totalUnitsKnown,

-		int maxProblemPerUnit){

-	

-		this.fileName = compilationUnit.getFileName();

-		this.compilationUnit = compilationUnit;

-		this.unitIndex = unitIndex;

-		this.totalUnitsKnown = totalUnitsKnown;

-		this.maxProblemPerUnit = maxProblemPerUnit;

-	}

-

-	private int computePriority(IProblem problem){

-	

-		final int P_STATIC = 10000;

-		final int P_OUTSIDE_METHOD = 40000;

-		final int P_FIRST_ERROR = 20000;

-		final int P_ERROR = 100000;

-		

-		int priority = 10000 - problem.getSourceLineNumber(); // early problems first

-		if (priority < 0) priority = 0;

-		if (problem.isError()){

-			priority += P_ERROR;

-		}

-		ReferenceContext context = problemsMap == null ? null : (ReferenceContext) problemsMap.get(problem);

-		if (context != null){

-			if (context instanceof AbstractMethodDeclaration){

-				AbstractMethodDeclaration method = (AbstractMethodDeclaration) context;

-				if (method.isStatic()) {

-					priority += P_STATIC;

-				}

-			} else {

-			priority += P_OUTSIDE_METHOD;

-			}

-		} else {

-			priority += P_OUTSIDE_METHOD;

-		}

-		if (firstErrorsMap.containsKey(problem)){

-			priority += P_FIRST_ERROR;

-		}

-		return priority;

-	}

-

-	

-	public IProblem[] getAllProblems() {

-		IProblem[] onlyProblems = this.getProblems();

-		int onlyProblemCount = onlyProblems != null ? onlyProblems.length : 0;

-		IProblem[] onlyTasks = this.getTasks();

-		int onlyTaskCount = onlyTasks != null ? onlyTasks.length : 0;

-		if (onlyTaskCount == 0) {

-			return onlyProblems;

-		}

-		if (onlyProblemCount == 0) {

-			return onlyTasks;

-		}

-

-		int totalNumberOfProblem = onlyProblemCount + onlyTaskCount;

-		IProblem[] allProblems = new IProblem[totalNumberOfProblem];

-		int allProblemIndex = 0;

-		int taskIndex = 0;

-		int problemIndex = 0;

-		while (taskIndex + problemIndex < totalNumberOfProblem) {

-			IProblem nextTask = null;

-			IProblem nextProblem = null;

-			if (taskIndex < onlyTaskCount) {

-				nextTask = onlyTasks[taskIndex];

-			}

-			if (problemIndex < onlyProblemCount) {

-				nextProblem = onlyProblems[problemIndex];

-			}

-			// select the next problem

-			IProblem currentProblem = null;

-			if (nextProblem != null) {

-				if (nextTask != null) {

-					if (nextProblem.getSourceStart() < nextTask.getSourceStart()) {

-						currentProblem = nextProblem;

-						problemIndex++;

-					} else {

-						currentProblem = nextTask;

-						taskIndex++;

-					}

-				} else {

-					currentProblem = nextProblem;

-					problemIndex++;

-				}

-			} else {

-				if (nextTask != null) {

-					currentProblem = nextTask;

-					taskIndex++;

-				}

-			}

-			allProblems[allProblemIndex++] = currentProblem;

-		}

-		return allProblems;

-	}

-	

-	public ClassFile[] getClassFiles() {

-		Enumeration files = compiledTypes.elements();

-		ClassFile[] classFiles = new ClassFile[compiledTypes.size()];

-		int index = 0;

-		while (files.hasMoreElements()){

-			classFiles[index++] = (ClassFile)files.nextElement();

-		}

-		return classFiles;	

-	}

-

-	/**

-	 * Answer the initial compilation unit corresponding to the present compilation result

-	 */

-	public ICompilationUnit getCompilationUnit(){

-		return compilationUnit;

-	}

-

-	/**

-	 * Answer the initial file name

-	 */

-	public char[] getFileName(){

-		return fileName;

-	}

-	

-	/**

-	 * Answer the errors encountered during compilation.

-	 */

-	public IProblem[] getErrors() {

-	

-		IProblem[] reportedProblems = getProblems();

-		int errorCount = 0;

-		for (int i = 0; i < this.problemCount; i++) {

-			if (reportedProblems[i].isError()) errorCount++;

-		}

-		if (errorCount == this.problemCount) return reportedProblems;

-		IProblem[] errors = new IProblem[errorCount];

-		int index = 0;

-		for (int i = 0; i < this.problemCount; i++) {

-			if (reportedProblems[i].isError()) errors[index++] = reportedProblems[i];

-		}

-		return errors;

-	}

-	

-	/**

-	 * Answer the problems (errors and warnings) encountered during compilation.

-	 *

-	 * This is not a compiler internal API - it has side-effects !

-	 * It is intended to be used only once all problems have been detected,

-	 * and makes sure the problems slot as the exact size of the number of

-	 * problems.

-	 */

-	public IProblem[] getProblems() {

-		

-		// Re-adjust the size of the problems if necessary.

-		if (problems != null) {

-	

-			if (this.problemCount != problems.length) {

-				System.arraycopy(problems, 0, (problems = new IProblem[problemCount]), 0, problemCount);

-			}

-	

-			if (this.maxProblemPerUnit > 0 && this.problemCount > this.maxProblemPerUnit){

-				quickPrioritize(problems, 0, problemCount - 1);

-				this.problemCount = this.maxProblemPerUnit;

-				System.arraycopy(problems, 0, (problems = new IProblem[problemCount]), 0, problemCount);

-			}

-	

-			// Sort problems per source positions.

-			quickSort(problems, 0, problems.length-1);

-		}

-		return problems;

-	}

-

-	/**

-	 * Answer the tasks (TO-DO, ...) encountered during compilation.

-	 *

-	 * This is not a compiler internal API - it has side-effects !

-	 * It is intended to be used only once all problems have been detected,

-	 * and makes sure the problems slot as the exact size of the number of

-	 * problems.

-	 */

-	public IProblem[] getTasks() {

-		

-		// Re-adjust the size of the tasks if necessary.

-		if (this.tasks != null) {

-	

-			if (this.taskCount != this.tasks.length) {

-				System.arraycopy(this.tasks, 0, (this.tasks = new IProblem[this.taskCount]), 0, this.taskCount);

-			}

-			quickSort(tasks, 0, tasks.length-1);

-		}

-		return this.tasks;

-	}

-	

-	public boolean hasErrors() {

-

-		if (problems != null)

-			for (int i = 0; i < problemCount; i++) {

-				if (problems[i].isError())

-					return true;

-			}

-		return false;

-	}

-

-	public boolean hasProblems() {

-

-		return problemCount != 0;

-	}

-

-	public boolean hasSyntaxError(){

-

-		if (problems != null)

-			for (int i = 0; i < problemCount; i++) {

-				IProblem problem = problems[i];

-				if ((problem.getID() & IProblem.Syntax) != 0 && problem.isError())

-					return true;

-			}

-		return false;

-	}

-

-	public boolean hasTasks() {

-		return this.taskCount != 0;

-	}

-	

-	public boolean hasWarnings() {

-

-		if (problems != null)

-			for (int i = 0; i < problemCount; i++) {

-				if (problems[i].isWarning())

-					return true;

-			}

-		return false;

-	}

-	

-	private static void quickSort(IProblem[] list, int left, int right) {

-

-		if (left >= right) return;

-	

-		// sort the problems by their source start position... starting with 0

-		int original_left = left;

-		int original_right = right;

-		int mid = list[(left + right) / 2].getSourceStart();

-		do {

-			while (list[left].getSourceStart() < mid)

-				left++;

-			while (mid < list[right].getSourceStart())

-				right--;

-			if (left <= right) {

-				IProblem tmp = list[left];

-				list[left] = list[right];

-				list[right] = tmp;

-				left++;

-				right--;

-			}

-		} while (left <= right);

-		if (original_left < right)

-			quickSort(list, original_left, right);

-		if (left < original_right)

-			quickSort(list, left, original_right);

-	}

-	

-	private void quickPrioritize(IProblem[] list, int left, int right) {

-		

-		if (left >= right) return;

-	

-		// sort the problems by their priority... starting with the highest priority

-		int original_left = left;

-		int original_right = right;

-		int mid = computePriority(list[(left + right) / 2]);

-		do {

-			while (computePriority(list[right]) < mid)

-				right--;

-			while (mid < computePriority(list[left]))

-				left++;

-			if (left <= right) {

-				IProblem tmp = list[left];

-				list[left] = list[right];

-				list[right] = tmp;

-				left++;

-				right--;

-			}

-		} while (left <= right);

-		if (original_left < right)

-			quickPrioritize(list, original_left, right);

-		if (left < original_right)

-			quickPrioritize(list, left, original_right);

-	}

-	

-	/**

-	 * For now, remember the compiled type using its compound name.

-	 */

-	public void record(char[] typeName, ClassFile classFile) {

-

-	    SourceTypeBinding sourceType = classFile.referenceBinding;

-	    if (!sourceType.isLocalType() && sourceType.isHierarchyInconsistent()) {

-	        this.hasInconsistentToplevelHierarchies = true;

-	    }

-		compiledTypes.put(typeName, classFile);

-	}

-

-	public void record(IProblem newProblem, ReferenceContext referenceContext) {

-

-		if (newProblem.getID() == IProblem.Task) {

-			recordTask(newProblem);

-			return;

-		}

-		if (problemCount == 0) {

-			problems = new IProblem[5];

-		} else if (problemCount == problems.length) {

-			System.arraycopy(problems, 0, (problems = new IProblem[problemCount * 2]), 0, problemCount);

-		}

-		problems[problemCount++] = newProblem;

-		if (referenceContext != null){

-			if (problemsMap == null) problemsMap = new Hashtable(5);

-			if (firstErrorsMap == null) firstErrorsMap = new Hashtable(5);

-			if (newProblem.isError() && !referenceContext.hasErrors()) firstErrorsMap.put(newProblem, newProblem);

-			problemsMap.put(newProblem, referenceContext);

-		}

-	}

-

-	private void recordTask(IProblem newProblem) {

-		if (this.taskCount == 0) {

-			this.tasks = new IProblem[5];

-		} else if (this.taskCount == this.tasks.length) {

-			System.arraycopy(this.tasks, 0, (this.tasks = new IProblem[this.taskCount * 2]), 0, this.taskCount);

-		}

-		this.tasks[this.taskCount++] = newProblem;

-	}

-	

-	public CompilationResult tagAsAccepted(){

-

-		this.hasBeenAccepted = true;

-		this.problemsMap = null; // flush

-		return this;

-	}

-	

-	public String toString(){

-

-		StringBuffer buffer = new StringBuffer();

-		if (this.fileName != null){

-			buffer.append("Filename : ").append(this.fileName).append('\n'); //$NON-NLS-1$

-		}

-		if (this.compiledTypes != null){

-			buffer.append("COMPILED type(s)	\n");  //$NON-NLS-1$

-			Enumeration typeNames = this.compiledTypes.keys();

-			while (typeNames.hasMoreElements()) {

-				char[] typeName = (char[]) typeNames.nextElement();

-				buffer.append("\t - ").append(typeName).append('\n');   //$NON-NLS-1$

-				

-			}

-		} else {

-			buffer.append("No COMPILED type\n");  //$NON-NLS-1$

-		}

-		if (problems != null){

-			buffer.append(this.problemCount).append(" PROBLEM(s) detected \n"); //$NON-NLS-1$//$NON-NLS-2$

-			for (int i = 0; i < this.problemCount; i++){

-				buffer.append("\t - ").append(this.problems[i]).append('\n'); //$NON-NLS-1$

-			}

-		} else {

-			buffer.append("No PROBLEM\n"); //$NON-NLS-1$

-		} 

-		return buffer.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/Compiler.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/Compiler.js
deleted file mode 100644
index 55a0ed4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/Compiler.js
+++ /dev/null
@@ -1,610 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.env.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.*;

-import org.eclipse.wst.jsdt.internal.compiler.util.*;

-

-import java.io.*;

-import java.util.*;

-

-public class Compiler implements ITypeRequestor, ProblemSeverities {

-	public Parser parser;

-	public ICompilerRequestor requestor;

-	public CompilerOptions options;

-	public ProblemReporter problemReporter;

-

-	// management of unit to be processed

-	//public CompilationUnitResult currentCompilationUnitResult;

-	public CompilationUnitDeclaration[] unitsToProcess;

-	public int totalUnits; // (totalUnits-1) gives the last unit in unitToProcess

-

-	// name lookup

-	public LookupEnvironment lookupEnvironment;

-

-	// ONCE STABILIZED, THESE SHOULD RETURN TO A FINAL FIELD

-	public static boolean DEBUG = false;

-	public int parseThreshold = -1;

-	// number of initial units parsed at once (-1: none)

-

-	/*

-	 * Static requestor reserved to listening compilation results in debug mode,

-	 * so as for example to monitor compiler activity independantly from a particular

-	 * builder implementation. It is reset at the end of compilation, and should not 

-	 * persist any information after having been reset.

-	 */

-	public static IDebugRequestor DebugRequestor = null;

-

-	/**

-	 * Answer a new compiler using the given name environment and compiler options.

-	 * The environment and options will be in effect for the lifetime of the compiler.

-	 * When the compiler is run, compilation results are sent to the given requestor.

-	 *

-	 *  @param environment org.eclipse.wst.jsdt.internal.compiler.api.env.INameEnvironment

-	 *      Environment used by the compiler in order to resolve type and package

-	 *      names. The name environment implements the actual connection of the compiler

-	 *      to the outside world (e.g. in batch mode the name environment is performing

-	 *      pure file accesses, reuse previous build state or connection to repositories).

-	 *      Note: the name environment is responsible for implementing the actual classpath

-	 *            rules.

-	 *

-	 *  @param policy org.eclipse.wst.jsdt.internal.compiler.api.problem.IErrorHandlingPolicy

-	 *      Configurable part for problem handling, allowing the compiler client to

-	 *      specify the rules for handling problems (stop on first error or accumulate

-	 *      them all) and at the same time perform some actions such as opening a dialog

-	 *      in UI when compiling interactively.

-	 *      @see org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies

-	 *      

-	 *  @param requestor org.eclipse.wst.jsdt.internal.compiler.api.ICompilerRequestor

-	 *      Component which will receive and persist all compilation results and is intended

-	 *      to consume them as they are produced. Typically, in a batch compiler, it is 

-	 *      responsible for writing out the actual .class files to the file system.

-	 *      @see org.eclipse.wst.jsdt.internal.compiler.CompilationResult

-	 *

-	 *  @param problemFactory org.eclipse.wst.jsdt.internal.compiler.api.problem.IProblemFactory

-	 *      Factory used inside the compiler to create problem descriptors. It allows the

-	 *      compiler client to supply its own representation of compilation problems in

-	 *      order to avoid object conversions. Note that the factory is not supposed

-	 *      to accumulate the created problems, the compiler will gather them all and hand

-	 *      them back as part of the compilation unit result.

-	 */

-	public Compiler(

-		INameEnvironment environment,

-		IErrorHandlingPolicy policy,

-		Map settings,

-		final ICompilerRequestor requestor,

-		IProblemFactory problemFactory) {

-

-		// create a problem handler given a handling policy

-		this.options = new CompilerOptions(settings);

-		

-		// wrap requestor in DebugRequestor if one is specified

-		if(DebugRequestor == null) {

-			this.requestor = requestor;

-		} else {

-			this.requestor = new ICompilerRequestor(){

-				public void acceptResult(CompilationResult result){

-					if (DebugRequestor.isActive()){

-						DebugRequestor.acceptDebugResult(result);

-					}

-					requestor.acceptResult(result);

-				}

-			};

-		}

-		this.problemReporter =

-			new ProblemReporter(policy, this.options, problemFactory);

-		this.lookupEnvironment =

-			new LookupEnvironment(this, options, problemReporter, environment);

-		initializeParser();

-	}

-	

-	/**

-	 * Answer a new compiler using the given name environment and compiler options.

-	 * The environment and options will be in effect for the lifetime of the compiler.

-	 * When the compiler is run, compilation results are sent to the given requestor.

-	 *

-	 *  @param environment org.eclipse.wst.jsdt.internal.compiler.api.env.INameEnvironment

-	 *      Environment used by the compiler in order to resolve type and package

-	 *      names. The name environment implements the actual connection of the compiler

-	 *      to the outside world (e.g. in batch mode the name environment is performing

-	 *      pure file accesses, reuse previous build state or connection to repositories).

-	 *      Note: the name environment is responsible for implementing the actual classpath

-	 *            rules.

-	 *

-	 *  @param policy org.eclipse.wst.jsdt.internal.compiler.api.problem.IErrorHandlingPolicy

-	 *      Configurable part for problem handling, allowing the compiler client to

-	 *      specify the rules for handling problems (stop on first error or accumulate

-	 *      them all) and at the same time perform some actions such as opening a dialog

-	 *      in UI when compiling interactively.

-	 *      @see org.eclipse.wst.jsdt.internal.compiler.DefaultErrorHandlingPolicies

-	 *      

-	 *  @param requestor org.eclipse.wst.jsdt.internal.compiler.api.ICompilerRequestor

-	 *      Component which will receive and persist all compilation results and is intended

-	 *      to consume them as they are produced. Typically, in a batch compiler, it is 

-	 *      responsible for writing out the actual .class files to the file system.

-	 *      @see org.eclipse.wst.jsdt.internal.compiler.CompilationResult

-	 *

-	 *  @param problemFactory org.eclipse.wst.jsdt.internal.compiler.api.problem.IProblemFactory

-	 *      Factory used inside the compiler to create problem descriptors. It allows the

-	 *      compiler client to supply its own representation of compilation problems in

-	 *      order to avoid object conversions. Note that the factory is not supposed

-	 *      to accumulate the created problems, the compiler will gather them all and hand

-	 *      them back as part of the compilation unit result.

-	 *	@param parseLiteralExpressionsAsConstants <code>boolean</code>

-	 *		This parameter is used to optimize the literals or leave them as they are in the source.

-	 * 		If you put true, "Hello" + " world" will be converted to "Hello world".

-	 */

-	public Compiler(

-		INameEnvironment environment,

-		IErrorHandlingPolicy policy,

-		Map settings,

-		final ICompilerRequestor requestor,

-		IProblemFactory problemFactory,

-		boolean parseLiteralExpressionsAsConstants) {

-

-		// create a problem handler given a handling policy

-		this.options = new CompilerOptions(settings);

-		

-		// wrap requestor in DebugRequestor if one is specified

-		if(DebugRequestor == null) {

-			this.requestor = requestor;

-		} else {

-			this.requestor = new ICompilerRequestor(){

-				public void acceptResult(CompilationResult result){

-					if (DebugRequestor.isActive()){

-						DebugRequestor.acceptDebugResult(result);

-					}

-					requestor.acceptResult(result);

-				}

-			};

-		}

-		this.problemReporter = new ProblemReporter(policy, this.options, problemFactory);

-		this.lookupEnvironment = new LookupEnvironment(this, options, problemReporter, environment);

-		initializeParser();

-	}

-	

-	/**

-	 * Add an additional binary type

-	 */

-	public void accept(IBinaryType binaryType, PackageBinding packageBinding) {

-		if (options.verbose) {

-			System.out.println(

-				Util.bind(

-					"compilation.loadBinary" , //$NON-NLS-1$

-					new String[] {

-						new String(binaryType.getName())}));

-//			new Exception("TRACE BINARY").printStackTrace(System.out);

-//		    System.out.println();

-		}

-		lookupEnvironment.createBinaryTypeFrom(binaryType, packageBinding);

-	}

-

-	/**

-	 * Add an additional compilation unit into the loop

-	 *  ->  build compilation unit declarations, their bindings and record their results.

-	 */

-	public void accept(ICompilationUnit sourceUnit) {

-		// Switch the current policy and compilation result for this unit to the requested one.

-		CompilationResult unitResult =

-			new CompilationResult(sourceUnit, totalUnits, totalUnits, this.options.maxProblemsPerUnit);

-		try {

-			if (options.verbose) {

-				String count = String.valueOf(totalUnits + 1);

-				System.out.println(

-					Util.bind(

-						"compilation.request" , //$NON-NLS-1$

-						new String[] {

-							count,

-							count,

-							new String(sourceUnit.getFileName())}));

-			}

-			// diet parsing for large collection of unit

-			CompilationUnitDeclaration parsedUnit;

-			if (totalUnits < parseThreshold) {

-				parsedUnit = parser.parse(sourceUnit, unitResult);

-			} else {

-				parsedUnit = parser.dietParse(sourceUnit, unitResult);

-			}

-			// initial type binding creation

-			lookupEnvironment.buildTypeBindings(parsedUnit);

-			this.addCompilationUnit(sourceUnit, parsedUnit);

-

-			// binding resolution

-			lookupEnvironment.completeTypeBindings(parsedUnit);

-		} catch (AbortCompilationUnit e) {

-			// at this point, currentCompilationUnitResult may not be sourceUnit, but some other

-			// one requested further along to resolve sourceUnit.

-			if (unitResult.compilationUnit == sourceUnit) { // only report once

-				requestor.acceptResult(unitResult.tagAsAccepted());

-			} else {

-				throw e; // want to abort enclosing request to compile

-			}

-		}

-	}

-

-	/**

-	 * Add additional source types

-	 */

-	public void accept(ISourceType[] sourceTypes, PackageBinding packageBinding) {

-		problemReporter.abortDueToInternalError(

-			Util.bind(

-				"abort.againstSourceModel" , //$NON-NLS-1$

-				String.valueOf(sourceTypes[0].getName()),

-				String.valueOf(sourceTypes[0].getFileName())));

-	}

-

-	protected void addCompilationUnit(

-		ICompilationUnit sourceUnit,

-		CompilationUnitDeclaration parsedUnit) {

-

-		// append the unit to the list of ones to process later on

-		int size = unitsToProcess.length;

-		if (totalUnits == size)

-			// when growing reposition units starting at position 0

-			System.arraycopy(

-				unitsToProcess,

-				0,

-				(unitsToProcess = new CompilationUnitDeclaration[size * 2]),

-				0,

-				totalUnits);

-		unitsToProcess[totalUnits++] = parsedUnit;

-	}

-

-	/**

-	 * Add the initial set of compilation units into the loop

-	 *  ->  build compilation unit declarations, their bindings and record their results.

-	 */

-	protected void beginToCompile(ICompilationUnit[] sourceUnits) {

-		int maxUnits = sourceUnits.length;

-		totalUnits = 0;

-		unitsToProcess = new CompilationUnitDeclaration[maxUnits];

-

-		// Switch the current policy and compilation result for this unit to the requested one.

-		for (int i = 0; i < maxUnits; i++) {

-			CompilationUnitDeclaration parsedUnit;

-			CompilationResult unitResult =

-				new CompilationResult(sourceUnits[i], i, maxUnits, this.options.maxProblemsPerUnit);

-			try {

-				if (options.verbose) {

-					System.out.println(

-						Util.bind(

-							"compilation.request" , //$NON-NLS-1$

-							new String[] {

-								String.valueOf(i + 1),

-								String.valueOf(maxUnits),

-								new String(sourceUnits[i].getFileName())}));

-				}

-				// diet parsing for large collection of units

-				if (totalUnits < parseThreshold) {

-					parsedUnit = parser.parse(sourceUnits[i], unitResult);

-				} else {

-					parsedUnit = parser.dietParse(sourceUnits[i], unitResult);

-				}

-				// initial type binding creation

-				lookupEnvironment.buildTypeBindings(parsedUnit);

-				this.addCompilationUnit(sourceUnits[i], parsedUnit);

-				//} catch (AbortCompilationUnit e) {

-				//	requestor.acceptResult(unitResult.tagAsAccepted());

-			} finally {

-				sourceUnits[i] = null; // no longer hold onto the unit

-			}

-		}

-		// binding resolution

-		lookupEnvironment.completeTypeBindings();

-	}

-

-	/**

-	 * General API

-	 * -> compile each of supplied files

-	 * -> recompile any required types for which we have an incomplete principle structure

-	 */

-	public void compile(ICompilationUnit[] sourceUnits) {

-		CompilationUnitDeclaration unit = null;

-		int i = 0;

-		try {

-			// build and record parsed units

-

-			beginToCompile(sourceUnits);

-

-			// process all units (some more could be injected in the loop by the lookup environment)

-			for (; i < totalUnits; i++) {

-				unit = unitsToProcess[i];

-				try {

-					if (options.verbose)

-						System.out.println(

-							Util.bind(

-								"compilation.process" , //$NON-NLS-1$

-								new String[] {

-									String.valueOf(i + 1),

-									String.valueOf(totalUnits),

-									new String(unitsToProcess[i].getFileName())}));

-					process(unit, i);

-				} finally {

-					// cleanup compilation unit result

-					unit.cleanUp();

-				}

-				unitsToProcess[i] = null; // release reference to processed unit declaration

-				requestor.acceptResult(unit.compilationResult.tagAsAccepted());

-				if (options.verbose)

-					System.out.println(Util.bind("compilation.done", //$NON-NLS-1$

-				new String[] {

-					String.valueOf(i + 1),

-					String.valueOf(totalUnits),

-					new String(unit.getFileName())}));

-			}

-		} catch (AbortCompilation e) {

-			this.handleInternalException(e, unit);

-		} catch (Error e) {

-			this.handleInternalException(e, unit, null);

-			throw e; // rethrow

-		} catch (RuntimeException e) {

-			this.handleInternalException(e, unit, null);

-			throw e; // rethrow

-		} finally {

-			this.reset();

-		}

-		if (options.verbose) {

-			if (totalUnits > 1) {

-				System.out.println(

-					Util.bind("compilation.units" , String.valueOf(totalUnits))); //$NON-NLS-1$

-			} else {

-				System.out.println(

-					Util.bind("compilation.unit" , String.valueOf(totalUnits))); //$NON-NLS-1$

-			}

-		}

-	}

-

-	/*

-	 * Compiler crash recovery in case of unexpected runtime exceptions

-	 */

-	protected void handleInternalException(

-		Throwable internalException,

-		CompilationUnitDeclaration unit,

-		CompilationResult result) {

-

-		/* find a compilation result */

-		if ((unit != null)) // basing result upon the current unit if available

-			result = unit.compilationResult; // current unit being processed ?

-		if ((result == null) && (unitsToProcess != null) && (totalUnits > 0))

-			result = unitsToProcess[totalUnits - 1].compilationResult;

-		// last unit in beginToCompile ?

-

-		boolean needToPrint = true;

-		if (result != null) {

-			/* create and record a compilation problem */

-			StringWriter stringWriter = new StringWriter();

-			PrintWriter writer = new PrintWriter(stringWriter);

-			internalException.printStackTrace(writer);

-			StringBuffer buffer = stringWriter.getBuffer();

-

-			String[] pbArguments = new String[] {

-				Util.bind("compilation.internalError" ) //$NON-NLS-1$

-					+ "\n"  //$NON-NLS-1$

-					+ buffer.toString()};

-

-			result

-				.record(

-					problemReporter

-					.createProblem(

-						result.getFileName(),

-						IProblem.Unclassified,

-						pbArguments,

-						pbArguments,

-						Error, // severity

-						0, // source start

-						0, // source end

-						0), // line number		

-					unit);

-

-			/* hand back the compilation result */

-			if (!result.hasBeenAccepted) {

-				requestor.acceptResult(result.tagAsAccepted());

-				needToPrint = false;

-			}

-		}

-		if (needToPrint) {

-			/* dump a stack trace to the console */

-			internalException.printStackTrace();

-		}

-	}

-

-	/*

-	 * Compiler recovery in case of internal AbortCompilation event

-	 */

-	protected void handleInternalException(

-		AbortCompilation abortException,

-		CompilationUnitDeclaration unit) {

-

-		/* special treatment for SilentAbort: silently cancelling the compilation process */

-		if (abortException.isSilent) {

-			if (abortException.silentException == null) {

-				return;

-			}

-			throw abortException.silentException;

-		}

-

-		/* uncomment following line to see where the abort came from */

-		// abortException.printStackTrace(); 

-

-		// Exception may tell which compilation result it is related, and which problem caused it

-		CompilationResult result = abortException.compilationResult;

-		if ((result == null) && (unit != null)) {

-			result = unit.compilationResult; // current unit being processed ?

-		}

-		// Lookup environment may be in middle of connecting types

-		if ((result == null) && lookupEnvironment.unitBeingCompleted != null) {

-		    result = lookupEnvironment.unitBeingCompleted.compilationResult;

-		}

-		if ((result == null) && (unitsToProcess != null) && (totalUnits > 0))

-			result = unitsToProcess[totalUnits - 1].compilationResult;

-		// last unit in beginToCompile ?

-		if (result != null && !result.hasBeenAccepted) {

-			/* distant problem which could not be reported back there? */

-			if (abortException.problem != null) {

-				recordDistantProblem: {

-					IProblem distantProblem = abortException.problem;

-					IProblem[] knownProblems = result.problems;

-					for (int i = 0; i < result.problemCount; i++) {

-						if (knownProblems[i] == distantProblem) { // already recorded

-							break recordDistantProblem;

-						}

-					}

-					if (distantProblem instanceof DefaultProblem) { // fixup filename TODO (philippe) should improve API to make this official

-						((DefaultProblem) distantProblem).setOriginatingFileName(result.getFileName());

-					}

-					result	.record(distantProblem, unit);

-				}

-			} else {

-				/* distant internal exception which could not be reported back there */

-				if (abortException.exception != null) {

-					this.handleInternalException(abortException.exception, null, result);

-					return;

-				}

-			}

-			/* hand back the compilation result */

-			if (!result.hasBeenAccepted) {

-				requestor.acceptResult(result.tagAsAccepted());

-			}

-		} else {

-			abortException.printStackTrace();

-		}

-	}

-

-	public void initializeParser() {

-

-		this.parser = new Parser(this.problemReporter, this.options.parseLiteralExpressionsAsConstants);

-	}

-	

-	/**

-	 * Process a compilation unit already parsed and build.

-	 */

-	public void process(CompilationUnitDeclaration unit, int i) {

-

-		this.parser.getMethodBodies(unit);

-

-		// fault in fields & methods

-		if (unit.scope != null)

-			unit.scope.faultInTypes();

-

-		// verify inherited methods

-		if (unit.scope != null)

-			unit.scope.verifyMethods(lookupEnvironment.methodVerifier());

-

-		// type checking

-		unit.resolve();

-

-		// flow analysis

-		unit.analyseCode();

-

-		// code generation

-		unit.generateCode();

-

-		// reference info

-		if (options.produceReferenceInfo && unit.scope != null)

-			unit.scope.storeDependencyInfo();

-

-		// refresh the total number of units known at this stage

-		unit.compilationResult.totalUnitsKnown = totalUnits;

-	}

-	public void reset() {

-		lookupEnvironment.reset();

-		parser.scanner.source = null;

-		unitsToProcess = null;

-		if (DebugRequestor != null) DebugRequestor.reset();

-	}

-

-	/**

-	 * Internal API used to resolve a given compilation unit. Can run a subset of the compilation process

-	 */

-	public CompilationUnitDeclaration resolve(

-			CompilationUnitDeclaration unit, 

-			ICompilationUnit sourceUnit, 

-			boolean verifyMethods,

-			boolean analyzeCode,

-			boolean generateCode) {

-				

-		try {

-			if (unit == null) {

-				// build and record parsed units

-				parseThreshold = 0; // will request a full parse

-				beginToCompile(new ICompilationUnit[] { sourceUnit });

-				// process all units (some more could be injected in the loop by the lookup environment)

-				unit = unitsToProcess[0];

-			} else {

-				// initial type binding creation

-				lookupEnvironment.buildTypeBindings(unit);

-

-				// binding resolution

-				lookupEnvironment.completeTypeBindings();

-			}

-			this.parser.getMethodBodies(unit);

-			if (unit.scope != null) {

-				// fault in fields & methods

-				unit.scope.faultInTypes();

-				if (unit.scope != null && verifyMethods) {

-					// http://dev.eclipse.org/bugs/show_bug.cgi?id=23117

- 					// verify inherited methods

-					unit.scope.verifyMethods(lookupEnvironment.methodVerifier());

-				}

-				// type checking

-				unit.resolve();		

-

-				// flow analysis

-				if (analyzeCode) unit.analyseCode();

-		

-				// code generation

-				if (generateCode) unit.generateCode();

-			}

-			if (unitsToProcess != null) unitsToProcess[0] = null; // release reference to processed unit declaration

-			requestor.acceptResult(unit.compilationResult.tagAsAccepted());

-			return unit;

-		} catch (AbortCompilation e) {

-			this.handleInternalException(e, unit);

-			return unit == null ? unitsToProcess[0] : unit;

-		} catch (Error e) {

-			this.handleInternalException(e, unit, null);

-			throw e; // rethrow

-		} catch (RuntimeException e) {

-			this.handleInternalException(e, unit, null);

-			throw e; // rethrow

-		} finally {

-			// No reset is performed there anymore since,

-			// within the CodeAssist (or related tools),

-			// the compiler may be called *after* a call

-			// to this resolve(...) method. And such a call

-			// needs to have a compiler with a non-empty

-			// environment.

-			// this.reset();

-		}

-	}

-	/**

-	 * Internal API used to resolve a given compilation unit. Can run a subset of the compilation process

-	 */

-	public CompilationUnitDeclaration resolve(

-			ICompilationUnit sourceUnit, 

-			boolean verifyMethods,

-			boolean analyzeCode,

-			boolean generateCode) {

-				

-		return resolve(

-			null,

-			sourceUnit,

-			verifyMethods,

-			analyzeCode,

-			generateCode);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ConfigurableOption.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ConfigurableOption.js
deleted file mode 100644
index 5d160cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ConfigurableOption.js
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-/**

- * Generic option description, which can be modified independently from the

- * component it belongs to.

- * 

- * @deprecated backport 1.0 internal functionality

- */

-

-import java.util.*;

-

-public class ConfigurableOption {

-	private String componentName;

-	private String optionName;

-	private int id;

-

-	private String category;

-	private String name;

-	private String description;

-	private int currentValueIndex;

-	private int defaultValueIndex;

-	private String[] possibleValues;

-

-	// special value for <possibleValues> indicating that 

-	// the <currentValueIndex> is the actual value

-	public final static String[] NoDiscreteValue = {}; 

-/**

- * INTERNAL USE ONLY

- *

- * Initialize an instance of this class according to a specific locale

- *

- * @param loc java.util.Locale

- */

-public ConfigurableOption(

-	String componentName, 

-	String optionName, 

-	Locale loc, 

-	int currentValueIndex) {

-

-	this.componentName = componentName;

-	this.optionName = optionName;

-	this.currentValueIndex = currentValueIndex;

-		

-	ResourceBundle resource = null;

-	try {

-		String location = componentName.substring(0, componentName.lastIndexOf('.'));

-		resource = ResourceBundle.getBundle(location + ".options", loc); //$NON-NLS-1$

-	} catch (MissingResourceException e) {

-		category = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$

-		name = "Missing ressources entries for"+ componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$

-		description = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$

-		possibleValues = new String[0];

-		id = -1;

-	}

-	if (resource == null) return;

-	try {

-		id = Integer.parseInt(resource.getString(optionName + ".number")); //$NON-NLS-1$

-	} catch (MissingResourceException e) {

-		id = -1;

-	} catch (NumberFormatException e) {

-		id = -1;

-	}

-	try {

-		category = resource.getString(optionName + ".category"); //$NON-NLS-1$

-	} catch (MissingResourceException e) {

-		category = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$

-	}

-	try {

-		name = resource.getString(optionName + ".name"); //$NON-NLS-1$

-	} catch (MissingResourceException e) {

-		name = "Missing ressources entries for"+ componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$

-	}

-	try {

-		StringTokenizer tokenizer = new StringTokenizer(resource.getString(optionName + ".possibleValues"), "|"); //$NON-NLS-1$ //$NON-NLS-2$

-		int numberOfValues = Integer.parseInt(tokenizer.nextToken());

-		if(numberOfValues == -1){

-			possibleValues = NoDiscreteValue;

-		} else {

-			possibleValues = new String[numberOfValues];

-			int index = 0;

-			while (tokenizer.hasMoreTokens()) {

-				possibleValues[index] = tokenizer.nextToken();

-				index++;

-			}

-		}

-	} catch (MissingResourceException e) {

-		possibleValues = new String[0];

-	} catch (NoSuchElementException e) {

-		possibleValues = new String[0];

-	} catch (NumberFormatException e) {

-		possibleValues = new String[0];

-	}

-	try {

-		description = resource.getString(optionName + ".description");  //$NON-NLS-1$

-	} catch (MissingResourceException e) {

-		description = "Missing ressources entries for"+ componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$

-	}

-}

-/**

- * Return a String that represents the localized category of the receiver.

- * @return java.lang.String

- */

-public String getCategory() {

-	return category;

-}

-/**

- * Return a String that identifies the component owner (typically the qualified

- *	type name of the class which it corresponds to).

- *

- * e.g. "org.eclipse.wst.jsdt.internal.compiler.api.Compiler"

- *

- * @return java.lang.String

- */

-public String getComponentName() {

-	return componentName;

-}

-/**

- * Answer the index (in possibleValues array) of the current setting for this

- * particular option.

- *

- * In case the set of possibleValues is NoDiscreteValue, then this index is the

- * actual value (e.g. max line lenght set to 80).

- *

- * @return int

- */

-public int getCurrentValueIndex() {

-	return currentValueIndex;

-}

-/**

- * Answer the index (in possibleValues array) of the default setting for this

- * particular option.

- *

- * In case the set of possibleValues is NoDiscreteValue, then this index is the

- * actual value (e.g. max line lenght set to 80).

- *

- * @return int

- */

-public int getDefaultValueIndex() {

-	return defaultValueIndex;

-}

-/**

- * Return an String that represents the localized description of the receiver.

- *

- * @return java.lang.String

- */

-public String getDescription() {

-	return description;

-}

-/**

- * Internal ID which allows the configurable component to identify this particular option.

- *

- * @return int

- */

-public int getID() {

-	return id;

-}

-/**

- * Return a String that represents the localized name of the receiver.

- * @return java.lang.String

- */

-public String getName() {

-	return name;

-}

-/**

- * Return an array of String that represents the localized possible values of the receiver.

- * @return java.lang.String[]

- */

-public String[] getPossibleValues() {

-	return possibleValues;

-}

-/**

- * Change the index (in possibleValues array) of the current setting for this

- * particular option.

- *

- * In case the set of possibleValues is NoDiscreteValue, then this index is the

- * actual value (e.g. max line lenght set to 80).

- */

-public void setValueIndex(int newIndex) {

-	currentValueIndex = newIndex;

-}

-public String toString() {

-	StringBuffer buffer = new StringBuffer();

-	buffer.append("Configurable option for "); //$NON-NLS-1$ 

-	buffer.append(this.componentName).append("\n"); //$NON-NLS-1$ 

-	buffer.append("- category:			").append(this.category).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$

-	buffer.append("- name:				").append(this.name).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$

-	/* display current value */

-	buffer.append("- current value:	"); //$NON-NLS-1$ 

-	if (possibleValues == NoDiscreteValue){

-		buffer.append(this.currentValueIndex);

-	} else {

-		buffer.append(this.possibleValues[this.currentValueIndex]);

-	}

-	buffer.append("\n"); //$NON-NLS-1$ 

-	

-	/* display possible values */

-	if (possibleValues != NoDiscreteValue){

-		buffer.append("- possible values:	["); //$NON-NLS-1$ 

-		for (int i = 0, max = possibleValues.length; i < max; i++) {

-			if (i != 0)

-				buffer.append(", "); //$NON-NLS-1$ 

-			buffer.append(possibleValues[i]);

-		}

-		buffer.append("]\n"); //$NON-NLS-1$ 

-		buffer.append("- curr. val. index:	").append(currentValueIndex).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$

-	}

-	buffer.append("- description:		").append(description).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$

-	return buffer.toString();

-}

-	/**

-	 * Gets the optionName.

-	 * @return Returns a String

-	 */

-	public String getOptionName() {

-		return optionName;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/DefaultErrorHandlingPolicies.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/DefaultErrorHandlingPolicies.js
deleted file mode 100644
index 3f6e081..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/DefaultErrorHandlingPolicies.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-public class DefaultErrorHandlingPolicies {

- 

-/*

- * Accumulate all problems, then exit without proceeding.

- *

- * Typically, the #proceedWithProblems(Problem[]) should

- * show the problems.

- *

- */

-public static IErrorHandlingPolicy exitAfterAllProblems() {

-	return new IErrorHandlingPolicy() {

-		public boolean stopOnFirstError() {

-			return false;

-		}

-		public boolean proceedOnErrors(){

-			return false;

-		}

-	};

-}

-/*

- * Exit without proceeding on the first problem wich appears

- * to be an error.

- *

- */

-public static IErrorHandlingPolicy exitOnFirstError() {

-	return new IErrorHandlingPolicy() {

-		public boolean stopOnFirstError() {

-			return true;

-		}

-		public boolean proceedOnErrors(){

-			return false;

-		}

-	};

-}

-/*

- * Proceed on the first error met.

- *

- */

-public static IErrorHandlingPolicy proceedOnFirstError() {

-	return new IErrorHandlingPolicy() {

-		public boolean stopOnFirstError() {

-			return true;

-		}

-		public boolean proceedOnErrors(){

-			return true;

-		}

-	};

-}

-/*

- * Accumulate all problems, then proceed with them.

- *

- */

-public static IErrorHandlingPolicy proceedWithAllProblems() {

-	return new IErrorHandlingPolicy() {

-		public boolean stopOnFirstError() {

-			return false;

-		}

-		public boolean proceedOnErrors(){

-			return true;

-		}

-	};

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ICompilerRequestor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ICompilerRequestor.js
deleted file mode 100644
index ddc5a00..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ICompilerRequestor.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-/**

- * A callback interface for receiving compilation results.

- */

-public interface ICompilerRequestor {

-	

-	/**

-	 * Accept a compilation result.

-	 */

-	public void acceptResult(CompilationResult result);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IDebugRequestor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IDebugRequestor.js
deleted file mode 100644
index 5823f05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IDebugRequestor.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-public interface IDebugRequestor {

-

-	/*

-	 * Debug callback method allowing to take into account a new compilation result.

-	 * Any side-effect performed on the actual result might interfere with the

-	 * original compiler requestor, and should be prohibited.

-	 */

-	void acceptDebugResult(CompilationResult result);

-

-	/*

-	 * Answers true when in active mode

-	 */

-	boolean isActive();

-	

-	/* 

-	 * Activate debug callbacks

-	 */	

-	void activate();

-

-	/* 

-	 * Deactivate debug callbacks

-	 */	

-	void deactivate();

-	

-	/*

-	 * Reset debug requestor after compilation has finished

-	 */

-	void reset();

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IErrorHandlingPolicy.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IErrorHandlingPolicy.js
deleted file mode 100644
index 1b07efc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IErrorHandlingPolicy.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-/*

- * Handler policy is responsible to answer the 2 following

- * questions:

- * 1. should the handler stop on first problem which appears

- *	to be a real error (that is, not a warning),

- * 2. should it proceed once it has gathered all problems

- *

- * The intent is that one can supply its own policy to implement 

- * some interactive error handling strategy where some UI would 

- * display problems and ask user if he wants to proceed or not.

- */

-

-public interface IErrorHandlingPolicy {

-	boolean proceedOnErrors();

-	boolean stopOnFirstError();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IProblemFactory.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IProblemFactory.js
deleted file mode 100644
index 348dedf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/IProblemFactory.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler;

-

-import java.util.Locale;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-

-/*

- * Factory used from inside the compiler to build the actual problems

- * which are handed back in the compilation result.

- *

- * This allows sharing the internal problem representation with the environment.

- *

- * Note: The factory is responsible for computing and storing a localized error message.

- */

-

-public interface IProblemFactory {

-

-	IProblem createProblem(

-		char[] originatingFileName,

-		int problemId,

-		String[] problemArguments,

-		String[] messageArguments, // shorter versions of the problemArguments

-		int severity,

-		int startPosition,

-		int endPosition,

-		int lineNumber);

-		

-	Locale getLocale();

-	

-	String getLocalizedMessage(int problemId, String[] messageArguments);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AND_AND_Expression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AND_AND_Expression.js
deleted file mode 100644
index 0362b8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AND_AND_Expression.js
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-//dedicated treatment for the &&

-public class AND_AND_Expression extends BinaryExpression {

-

-	int rightInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-

-	public AND_AND_Expression(Expression left, Expression right, int operator) {

-		super(left, right, operator);

-	}

-

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-

-		Constant cst = this.left.optimizedBooleanConstant();

-		boolean isLeftOptimizedTrue = cst != NotAConstant && cst.booleanValue() == true;

-		boolean isLeftOptimizedFalse = cst != NotAConstant && cst.booleanValue() == false;

-

-		if (isLeftOptimizedTrue) {

-			// TRUE && anything

-			// need to be careful of scenario:

-			//  (x && y) && !z, if passing the left info to the right, it would

-			// be swapped by the !

-			FlowInfo mergedInfo = left.analyseCode(currentScope, flowContext, flowInfo)

-					.unconditionalInits();

-			mergedInfo = right.analyseCode(currentScope, flowContext, mergedInfo);

-			mergedInitStateIndex = currentScope.methodScope()

-					.recordInitializationStates(mergedInfo);

-			return mergedInfo;

-		}

-

-		FlowInfo leftInfo = left.analyseCode(currentScope, flowContext, flowInfo);

-		// need to be careful of scenario:

-		//  (x && y) && !z, if passing the left info to the right, it would be

-		// swapped by the !

-		FlowInfo rightInfo = leftInfo.initsWhenTrue().unconditionalInits().copy();

-		rightInitStateIndex = currentScope.methodScope().recordInitializationStates(rightInfo);

-

-		int previousMode = rightInfo.reachMode();

-		if (isLeftOptimizedFalse) {

-			rightInfo.setReachMode(FlowInfo.UNREACHABLE);

-		}

-		rightInfo = right.analyseCode(currentScope, flowContext, rightInfo);

-		FlowInfo trueMergedInfo = rightInfo.initsWhenTrue().copy();

-		rightInfo.setReachMode(previousMode); // reset after trueMergedInfo got extracted

-		FlowInfo mergedInfo = FlowInfo.conditional(

-				trueMergedInfo, 

-				leftInfo.initsWhenFalse().copy().unconditionalInits().mergedWith(

-						rightInfo.initsWhenFalse().copy().unconditionalInits()));

-		mergedInitStateIndex = currentScope.methodScope().recordInitializationStates(mergedInfo);

-		return mergedInfo;

-	}

-

-	/**

-	 * Code generation for a binary operation

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-

-		int pc = codeStream.position;

-		if (constant != Constant.NotAConstant) {

-			// inlined value

-			if (valueRequired)

-				codeStream.generateConstant(constant, implicitConversion);

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		Constant cst = right.constant;

-		if (cst != NotAConstant) {

-			// <expr> && true --> <expr>

-			if (cst.booleanValue() == true) {

-				this.left.generateCode(currentScope, codeStream, valueRequired);

-			} else {

-				// <expr> && false --> false

-				this.left.generateCode(currentScope, codeStream, false);

-				if (valueRequired) codeStream.iconst_0();

-			}

-			if (mergedInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			}			

-			codeStream.generateImplicitConversion(implicitConversion);

-			codeStream.updateLastRecordedEndPC(codeStream.position);

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		

-		Label falseLabel = new Label(codeStream), endLabel;

-		cst = left.optimizedBooleanConstant();

-		boolean leftIsConst = cst != NotAConstant;

-		boolean leftIsTrue = leftIsConst && cst.booleanValue() == true;

-

-		cst = right.optimizedBooleanConstant();

-		boolean rightIsConst = cst != NotAConstant;

-		boolean rightIsTrue = rightIsConst && cst.booleanValue() == true;

-

-		generateOperands : {

-			if (leftIsConst) {

-				left.generateCode(currentScope, codeStream, false);

-				if (!leftIsTrue) {

-					break generateOperands; // no need to generate right operand

-				}

-			} else {

-				left.generateOptimizedBoolean(currentScope, codeStream, null, falseLabel, true); 

-				// need value, e.g. if (a == 1 && ((b = 2) > 0)) {} -> shouldn't initialize 'b' if a!=1 

-			}

-			if (rightInitStateIndex != -1) {

-				codeStream.addDefinitelyAssignedVariables(currentScope, rightInitStateIndex);

-			}

-			if (rightIsConst) {

-				right.generateCode(currentScope, codeStream, false);

-			} else {

-				right.generateOptimizedBoolean(currentScope, codeStream, null, falseLabel, valueRequired);

-			}

-		}

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-		/*

-		 * improving code gen for such a case: boolean b = i < 0 && false since

-		 * the label has never been used, we have the inlined value on the

-		 * stack.

-		 */

-		if (valueRequired) {

-			if (leftIsConst && !leftIsTrue) {

-				codeStream.iconst_0();

-				codeStream.updateLastRecordedEndPC(codeStream.position);

-			} else {

-				if (rightIsConst && !rightIsTrue) {

-					codeStream.iconst_0();

-					codeStream.updateLastRecordedEndPC(codeStream.position);

-				} else {

-					codeStream.iconst_1();

-				}

-				if (falseLabel.hasForwardReferences()) {

-					if ((bits & ValueForReturnMASK) != 0) {

-						codeStream.ireturn();

-						falseLabel.place();

-						codeStream.iconst_0();

-					} else {

-						codeStream.goto_(endLabel = new Label(codeStream));

-						codeStream.decrStackSize(1);

-						falseLabel.place();

-						codeStream.iconst_0();

-						endLabel.place();

-					}

-				} else {

-					falseLabel.place();

-				}

-			}

-			codeStream.generateImplicitConversion(implicitConversion);

-			codeStream.updateLastRecordedEndPC(codeStream.position);

-		} else {

-			falseLabel.place();

-		}

-	}

-

-	/**

-	 * Boolean operator code generation Optimized operations are: &&

-	 */

-	public void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream,

-			Label trueLabel, Label falseLabel, boolean valueRequired) {

-

-		if (constant != Constant.NotAConstant) {

-			super.generateOptimizedBoolean(currentScope, codeStream, trueLabel, falseLabel,

-					valueRequired);

-			return;

-		}

-

-		// <expr> && true --> <expr>

-		Constant cst = right.constant;

-		if (cst != NotAConstant && cst.booleanValue() == true) {

-			int pc = codeStream.position;

-			this.left.generateOptimizedBoolean(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-			if (mergedInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			}			

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		cst = left.optimizedBooleanConstant();

-		boolean leftIsConst = cst != NotAConstant;

-		boolean leftIsTrue = leftIsConst && cst.booleanValue() == true;

-

-		cst = right.optimizedBooleanConstant();

-		boolean rightIsConst = cst != NotAConstant;

-		boolean rightIsTrue = rightIsConst && cst.booleanValue() == true;

-

-		// default case

-		generateOperands : {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// implicit falling through the FALSE case

-					Label internalFalseLabel = new Label(codeStream);

-					left.generateOptimizedBoolean(currentScope, codeStream, null,

-							internalFalseLabel, !leftIsConst); 

-					// need value, e.g. if (a == 1 && ((b = 2) > 0)) {} -> shouldn't initialize 'b' if a!=1

-					if (leftIsConst && !leftIsTrue) {

-						internalFalseLabel.place();

-						break generateOperands; // no need to generate right operand

-					}

-					if (rightInitStateIndex != -1) {

-						codeStream

-								.addDefinitelyAssignedVariables(currentScope, rightInitStateIndex);

-					}

-					right.generateOptimizedBoolean(currentScope, codeStream, trueLabel, null,

-							valueRequired && !rightIsConst);

-					if (valueRequired && rightIsConst && rightIsTrue) {

-						codeStream.goto_(trueLabel);

-						codeStream.updateLastRecordedEndPC(codeStream.position);

-					}

-					internalFalseLabel.place();

-				}

-			} else {

-				// implicit falling through the TRUE case

-				if (trueLabel == null) {

-					left.generateOptimizedBoolean(currentScope, codeStream, null, falseLabel, !leftIsConst); 

-					// need value, e.g. if (a == 1 && ((b = 2) > 0)) {} -> shouldn't initialize 'b' if a!=1

-					if (leftIsConst && !leftIsTrue) {

-						codeStream.goto_(falseLabel);

-						codeStream.updateLastRecordedEndPC(codeStream.position);

-						break generateOperands; // no need to generate right operand

-					}

-					if (rightInitStateIndex != -1) {

-						codeStream

-								.addDefinitelyAssignedVariables(currentScope, rightInitStateIndex);

-					}

-					right.generateOptimizedBoolean(currentScope, codeStream, null, falseLabel,

-							valueRequired && !rightIsConst);

-					if (valueRequired && rightIsConst && !rightIsTrue) {

-						codeStream.goto_(falseLabel);

-						codeStream.updateLastRecordedEndPC(codeStream.position);

-					}

-				} else {

-					// no implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-	}

-

-	public boolean isCompactableOperation() {

-		return false;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			left.traverse(visitor, scope);

-			right.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ASTNode.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ASTNode.js
deleted file mode 100644
index 787ce8f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ASTNode.js
+++ /dev/null
@@ -1,298 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-

-public abstract class ASTNode implements BaseTypes, CompilerModifiers, TypeConstants, TypeIds {

-	

-	public int sourceStart, sourceEnd;

-

-	//some global provision for the hierarchy

-	public final static Constant NotAConstant = Constant.NotAConstant;

-

-	// storage for internal flags (32 bits)						BIT USAGE

-	public final static int Bit1 = 0x1; 							// return type (operator) | name reference kind (name ref) | add assertion (type decl) | useful empty statement (empty statement)

-	public final static int Bit2 = 0x2; 							// return type (operator) | name reference kind (name ref) | has local type (type, method, field decl)

-	public final static int Bit3 = 0x4; 							// return type (operator) | name reference kind (name ref) | implicit this (this ref)

-	public final static int Bit4 = 0x8; 							// return type (operator) | first assignment to local (local decl) | undocumented empty block (block, type and method decl)

-	public final static int Bit5 = 0x10; 						// value for return (expression) | has all method bodies (unit) | supertype ref (type ref)

-	public final static int Bit6 = 0x20; 						// depth (name ref, msg) | only value required (binary expression) | ignore need cast check (cast expression)

-	public final static int Bit7 = 0x40; 						// depth (name ref, msg) | operator (operator) | need runtime checkcast (cast expression)

-	public final static int Bit8 = 0x80; 						// depth (name ref, msg) | operator (operator) 

-	public final static int Bit9 = 0x100; 						// depth (name ref, msg) | operator (operator) | is local type (type decl)

-	public final static int Bit10= 0x200; 					// depth (name ref, msg) | operator (operator) | is anonymous type (type decl)

-	public final static int Bit11 = 0x400; 					// depth (name ref, msg) | operator (operator) | is member type (type decl)

-	public final static int Bit12 = 0x800; 					// depth (name ref, msg) | operator (operator)

-	public final static int Bit13 = 0x1000; 				// depth (name ref, msg) 

-	public final static int Bit14 = 0x2000; 				// strictly assigned (reference lhs)

-	public final static int Bit15 = 0x4000; 				// is unnecessary cast (expression)

-	public final static int Bit16 = 0x8000; 				// in javadoc comment (name ref, type ref, msg)

-	public final static int Bit17 = 0x10000; 				// compound assigned (reference lhs)

-	public final static int Bit18 = 0x20000; 

-	public final static int Bit19 = 0x40000; 

-	public final static int Bit20 = 0x80000; 

-	public final static int Bit21 = 0x100000; 		

-	public final static int Bit22 = 0x200000; 			// parenthesis count (expression)

-	public final static int Bit23 = 0x400000; 			// parenthesis count (expression)

-	public final static int Bit24 = 0x800000; 			// parenthesis count (expression)

-	public final static int Bit25 = 0x1000000; 			// parenthesis count (expression)

-	public final static int Bit26 = 0x2000000; 			// parenthesis count (expression)

-	public final static int Bit27 = 0x4000000; 			// parenthesis count (expression)

-	public final static int Bit28 = 0x8000000; 			// parenthesis count (expression)

-	public final static int Bit29 = 0x10000000; 		// parenthesis count (expression)

-	public final static int Bit30 = 0x20000000; 		// assignment with no effect (assignment) | elseif (if statement)

-	public final static int Bit31 = 0x40000000; 		// local declaration reachable (local decl)

-	public final static int Bit32 = 0x80000000; 		// reachable (statement)

-

-	public final static long Bit32L = 0x80000000L; 		

-	public final static long Bit33L = 0x100000000L;

-	public final static long Bit34L = 0x200000000L;

-	public final static long Bit35L = 0x400000000L;

-	public final static long Bit36L = 0x800000000L;

-	public final static long Bit37L = 0x1000000000L;

-	public final static long Bit38L = 0x2000000000L;

-	public final static long Bit39L = 0x4000000000L;

-	public final static long Bit40L = 0x8000000000L;

-

-	public int bits = IsReachableMASK; 				// reachable by default

-

-	// for operators 

-	public static final int ReturnTypeIDMASK = Bit1|Bit2|Bit3|Bit4; 

-	public static final int OperatorSHIFT = 6;	// Bit7 -> Bit12

-	public static final int OperatorMASK = Bit7|Bit8|Bit9|Bit10|Bit11|Bit12; // 6 bits for operator ID

-

-	// for binary expressions

-	public static final int ValueForReturnMASK = Bit5; 

-	public static final int OnlyValueRequiredMASK = Bit6; 

-

-	// for cast expressions

-	public static final int UnnecessaryCastMask = Bit15;

-	public static final int NeedRuntimeCheckCastMASK = Bit7;

-	public static final int IgnoreNeedForCastCheckMASK = Bit6;

-	

-	// for name references 

-	public static final int RestrictiveFlagMASK = Bit1|Bit2|Bit3;	

-	public static final int FirstAssignmentToLocalMASK = Bit4;

-	

-	// for this reference

-	public static final int IsImplicitThisMask = Bit3; 

-

-	// for single name references

-	public static final int DepthSHIFT = 5;	// Bit6 -> Bit13

-	public static final int DepthMASK = Bit6|Bit7|Bit8|Bit9|Bit10|Bit11|Bit12|Bit13; // 8 bits for actual depth value (max. 255)

-

-	// for statements 

-	public static final int IsReachableMASK = Bit32; 

-	public static final int IsLocalDeclarationReachableMASK = Bit31; 

-

-	// for type declaration

-	public static final int AddAssertionMASK = Bit1;

-	public static final int IsLocalTypeMASK = Bit9;

-	public static final int IsAnonymousTypeMASK = Bit10; // used to test for anonymous 

-	public static final int AnonymousAndLocalMask = IsAnonymousTypeMASK | IsLocalTypeMASK; // used to set anonymous marker

-	public static final int IsMemberTypeMASK = Bit11; // local member do not know it is local at parse time (need to look at binding)

-	

-	// for type, method and field declarations 

-	public static final int HasLocalTypeMASK = Bit2; // cannot conflict with AddAssertionMASK

-

-	// for expression 

-	public static final int ParenthesizedSHIFT = 21; // Bit22 -> Bit29

-	public static final int ParenthesizedMASK = Bit22|Bit23|Bit24|Bit25|Bit26|Bit27|Bit28|Bit29; // 8 bits for parenthesis count value (max. 255)

-

-	// for assignment

-	public static final int IsAssignmentWithNoEffectMASK = Bit30;	

-	

-	// for references on lhs of assignment

-	public static final int IsStrictlyAssignedMASK = Bit14; // set only for true assignments, as opposed to compound ones

-	public static final int IsCompoundAssignedMASK = Bit17; // set only for compound assignments, as opposed to other ones

-

-	// for empty statement

-	public static final int IsUsefulEmptyStatementMASK = Bit1;

-

-	// for block and method declaration

-	public static final int UndocumentedEmptyBlockMASK = Bit4;

-

-	// for compilation unit

-	public static final int HasAllMethodBodies = Bit5;

-	

-	// for references in Javadoc comments

-	public static final int InsideJavadoc = Bit16;

-	

-	// for if statement

-	public static final int IsElseIfStatement = Bit30;

-	

-	// for type reference

-	public static final int IsSuperType = Bit5;

-	

-	

-	public ASTNode() {

-

-		super();

-	}

-	public static void checkInvocationArguments(BlockScope scope, Expression receiver, TypeBinding receiverType, MethodBinding method, Expression[] arguments, TypeBinding[] argumentTypes, boolean argsContainCast, InvocationSite invocationSite) {

-		boolean unsafeWildcardInvocation = false;

-		for (int i = 0; i < arguments.length; i++) {

-		    TypeBinding parameterType = method.parameters[i];

-		    TypeBinding argumentType = argumentTypes[i];

-			arguments[i].computeConversion(scope, parameterType, argumentType);

-			if (argumentType != NullBinding && parameterType.isWildcard() && ((WildcardBinding)parameterType).kind != Wildcard.SUPER) {

-			    unsafeWildcardInvocation = true;

-			} else if (argumentType != parameterType 

-			        && argumentType.isRawType() 

-			        && (parameterType.isBoundParameterizedType() || parameterType.isGenericType())) {

-			    scope.problemReporter().unsafeRawConversion(arguments[i], argumentType, parameterType);

-			}

-		}

-		if (argsContainCast) {

-			CastExpression.checkNeedForArgumentCasts(scope, receiver, receiverType, method, arguments, argumentTypes, invocationSite);

-		}

-		if (unsafeWildcardInvocation) {

-		    scope.problemReporter().wildcardInvocation((ASTNode)invocationSite, receiverType, method, argumentTypes);

-		} else if (receiverType.isRawType() && method.hasSubstitutedParameters()) {

-		    scope.problemReporter().unsafeRawInvocation((ASTNode)invocationSite, receiverType, method);

-		}

-	}

-	public ASTNode concreteStatement() {

-		return this;

-	}

-

-	/* Answer true if the field use is considered deprecated.

-	* An access in the same compilation unit is allowed.

-	*/

-	public final boolean isFieldUseDeprecated(FieldBinding field, Scope scope, boolean isStrictlyAssigned) {

-

-		if (!isStrictlyAssigned && field.isPrivate() && !scope.isDefinedInField(field)) {

-			// ignore cases where field is used from within inside itself 

-			field.modifiers |= AccPrivateUsed;

-		}

-

-		if (!field.isViewedAsDeprecated()) return false;

-

-		// inside same unit - no report

-		if (scope.isDefinedInSameUnit(field.declaringClass)) return false;

-		

-		// if context is deprecated, may avoid reporting

-		if (!scope.environment().options.reportDeprecationInsideDeprecatedCode && scope.isInsideDeprecatedCode()) return false;

-		return true;

-	}

-

-	public boolean isImplicitThis() {

-		

-		return false;

-	}

-	

-	/* Answer true if the method use is considered deprecated.

-	* An access in the same compilation unit is allowed.

-	*/

-	public final boolean isMethodUseDeprecated(MethodBinding method, Scope scope) {

-

-		if (method.isPrivate() && !scope.isDefinedInMethod(method)) {

-			// ignore cases where method is used from within inside itself (e.g. direct recursions)

-			method.original().modifiers |= AccPrivateUsed;

-		}

-		

-		if (!method.isViewedAsDeprecated()) return false;

-

-		// inside same unit - no report

-		if (scope.isDefinedInSameUnit(method.declaringClass)) return false;

-		

-		// if context is deprecated, may avoid reporting

-		if (!scope.environment().options.reportDeprecationInsideDeprecatedCode && scope.isInsideDeprecatedCode()) return false;

-		return true;

-	}

-

-	public boolean isSuper() {

-

-		return false;

-	}

-

-	public boolean isThis() {

-

-		return false;

-	}

-

-	/* Answer true if the type use is considered deprecated.

-	* An access in the same compilation unit is allowed.

-	*/

-	public final boolean isTypeUseDeprecated(TypeBinding type, Scope scope) {

-

-		if (type.isArrayType())

-			type = ((ArrayBinding) type).leafComponentType;

-		if (type.isBaseType())

-			return false;

-

-		ReferenceBinding refType = (ReferenceBinding) type;

-

-		if (refType.isPrivate() && !scope.isDefinedInType(refType)) {

-			// ignore cases where type is used from within inside itself 

-			((ReferenceBinding)refType.erasure()).modifiers |= AccPrivateUsed;

-		}

-

-		if (!refType.isViewedAsDeprecated()) return false;

-		

-		// inside same unit - no report

-		if (scope.isDefinedInSameUnit(refType)) return false;

-		

-		// if context is deprecated, may avoid reporting

-		if (!scope.environment().options.reportDeprecationInsideDeprecatedCode && scope.isInsideDeprecatedCode()) return false;

-		return true;

-	}

-

-	public abstract StringBuffer print(int indent, StringBuffer output);

-

-	public static StringBuffer printIndent(int indent, StringBuffer output) {

-

-		for (int i = indent; i > 0; i--) output.append("  "); //$NON-NLS-1$

-		return output;

-	}

-

-	public static StringBuffer printModifiers(int modifiers, StringBuffer output) {

-

-		if ((modifiers & AccPublic) != 0)

-			output.append("public "); //$NON-NLS-1$

-		if ((modifiers & AccPrivate) != 0)

-			output.append("private "); //$NON-NLS-1$

-		if ((modifiers & AccProtected) != 0)

-			output.append("protected "); //$NON-NLS-1$

-		if ((modifiers & AccStatic) != 0)

-			output.append("static "); //$NON-NLS-1$

-		if ((modifiers & AccFinal) != 0)

-			output.append("final "); //$NON-NLS-1$

-		if ((modifiers & AccSynchronized) != 0)

-			output.append("synchronized "); //$NON-NLS-1$

-		if ((modifiers & AccVolatile) != 0)

-			output.append("volatile "); //$NON-NLS-1$

-		if ((modifiers & AccTransient) != 0)

-			output.append("transient "); //$NON-NLS-1$

-		if ((modifiers & AccNative) != 0)

-			output.append("native "); //$NON-NLS-1$

-		if ((modifiers & AccAbstract) != 0)

-			output.append("abstract "); //$NON-NLS-1$

-		return output;

-	}

-	public int sourceStart() {

-		return this.sourceStart;

-	}

-	public int sourceEnd() {

-		return this.sourceEnd;

-	}

-	public String toString() {

-

-		return print(0, new StringBuffer(30)).toString();

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		// do nothing by default

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AbstractMethodDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AbstractMethodDeclaration.js
deleted file mode 100644
index 1b47a6e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AbstractMethodDeclaration.js
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.flow.InitializationFlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.*;

-

-public abstract class AbstractMethodDeclaration

-	extends ASTNode

-	implements ProblemSeverities, ReferenceContext {

-		

-	public MethodScope scope;

-	//it is not relevent for constructor but it helps to have the name of the constructor here 

-	//which is always the name of the class.....parsing do extra work to fill it up while it do not have to....

-	public char[] selector;

-	public int declarationSourceStart;

-	public int declarationSourceEnd;

-	public int modifiers;

-	public int modifiersSourceStart;

-	public Annotation[] annotations;

-	public Argument[] arguments;

-	public TypeReference[] thrownExceptions;

-	public Statement[] statements;

-	public int explicitDeclarations;

-	public MethodBinding binding;

-	public boolean ignoreFurtherInvestigation = false;

-	public boolean needFreeReturn = false;

-	

-	public Javadoc javadoc;

-	

-	public int bodyStart;

-	public int bodyEnd = -1;

-	public CompilationResult compilationResult;

-	

-	public boolean errorInSignature = false; 

-	

-	AbstractMethodDeclaration(CompilationResult compilationResult){

-		this.compilationResult = compilationResult;

-	}

-	

-	/*

-	 *	We cause the compilation task to abort to a given extent.

-	 */

-	public void abort(int abortLevel, IProblem problem) {

-

-		switch (abortLevel) {

-			case AbortCompilation :

-				throw new AbortCompilation(this.compilationResult, problem);

-			case AbortCompilationUnit :

-				throw new AbortCompilationUnit(this.compilationResult, problem);

-			case AbortType :

-				throw new AbortType(this.compilationResult, problem);

-			default :

-				throw new AbortMethod(this.compilationResult, problem);

-		}

-	}

-

-	public abstract void analyseCode(ClassScope classScope, InitializationFlowContext initializationContext, FlowInfo info);

-

-		/**

-	 * Bind and add argument's binding into the scope of the method

-	 */

-	public void bindArguments() {

-

-		if (this.arguments != null) {

-			// by default arguments in abstract/native methods are considered to be used (no complaint is expected)

-			boolean used = this.binding == null || this.binding.isAbstract() || this.binding.isNative();

-

-			int length = this.arguments.length;

-			for (int i = 0; i < length; i++) {

-				TypeBinding argType = this.binding == null ? null : this.binding.parameters[i];

-				this.arguments[i].bind(this.scope, argType, used);

-			}

-		}

-	}

-

-	/**

-	 * Record the thrown exception type bindings in the corresponding type references.

-	 */

-	public void bindThrownExceptions() {

-

-		if (this.thrownExceptions != null

-			&& this.binding != null

-			&& this.binding.thrownExceptions != null) {

-			int thrownExceptionLength = this.thrownExceptions.length;

-			int length = this.binding.thrownExceptions.length;

-			if (length == thrownExceptionLength) {

-				for (int i = 0; i < length; i++) {

-					this.thrownExceptions[i].resolvedType = this.binding.thrownExceptions[i];

-				}

-			} else {

-				int bindingIndex = 0;

-				for (int i = 0; i < thrownExceptionLength && bindingIndex < length; i++) {

-					TypeReference thrownException = this.thrownExceptions[i];

-					ReferenceBinding thrownExceptionBinding = this.binding.thrownExceptions[bindingIndex];

-					char[][] bindingCompoundName = thrownExceptionBinding.compoundName;

-					if (thrownException instanceof SingleTypeReference) {

-						// single type reference

-						int lengthName = bindingCompoundName.length;

-						char[] thrownExceptionTypeName = thrownException.getTypeName()[0];

-						if (CharOperation.equals(thrownExceptionTypeName, bindingCompoundName[lengthName - 1])) {

-							thrownException.resolvedType = thrownExceptionBinding;

-							bindingIndex++;

-						}

-					} else {

-						// qualified type reference

-						if (CharOperation.equals(thrownException.getTypeName(), bindingCompoundName)) {

-							thrownException.resolvedType = thrownExceptionBinding;

-							bindingIndex++;

-						}						

-					}

-				}

-			}

-		}

-	}

-

-	public CompilationResult compilationResult() {

-		

-		return this.compilationResult;

-	}

-	

-	/**

-	 * Bytecode generation for a method

-	 * @param classScope

-	 * @param classFile

-	 */

-	public void generateCode(ClassScope classScope, ClassFile classFile) {

-		

-		int problemResetPC = 0;

-		classFile.codeStream.wideMode = false; // reset wideMode to false

-		if (this.ignoreFurtherInvestigation) {

-			// method is known to have errors, dump a problem method

-			if (this.binding == null)

-				return; // handle methods with invalid signature or duplicates

-			int problemsLength;

-			IProblem[] problems =

-				this.scope.referenceCompilationUnit().compilationResult.getProblems();

-			IProblem[] problemsCopy = new IProblem[problemsLength = problems.length];

-			System.arraycopy(problems, 0, problemsCopy, 0, problemsLength);

-			classFile.addProblemMethod(this, this.binding, problemsCopy);

-			return;

-		}

-		// regular code generation

-		try {

-			problemResetPC = classFile.contentsOffset;

-			this.generateCode(classFile);

-		} catch (AbortMethod e) {

-			// a fatal error was detected during code generation, need to restart code gen if possible

-			if (e.compilationResult == CodeStream.RESTART_IN_WIDE_MODE) {

-				// a branch target required a goto_w, restart code gen in wide mode.

-				try {

-					classFile.contentsOffset = problemResetPC;

-					classFile.methodCount--;

-					classFile.codeStream.wideMode = true; // request wide mode 

-					this.generateCode(classFile); // restart method generation

-				} catch (AbortMethod e2) {

-					int problemsLength;

-					IProblem[] problems =

-						this.scope.referenceCompilationUnit().compilationResult.getAllProblems();

-					IProblem[] problemsCopy = new IProblem[problemsLength = problems.length];

-					System.arraycopy(problems, 0, problemsCopy, 0, problemsLength);

-					classFile.addProblemMethod(this, this.binding, problemsCopy, problemResetPC);

-				}

-			} else {

-				// produce a problem method accounting for this fatal error

-				int problemsLength;

-				IProblem[] problems =

-					this.scope.referenceCompilationUnit().compilationResult.getAllProblems();

-				IProblem[] problemsCopy = new IProblem[problemsLength = problems.length];

-				System.arraycopy(problems, 0, problemsCopy, 0, problemsLength);

-				classFile.addProblemMethod(this, this.binding, problemsCopy, problemResetPC);

-			}

-		}

-	}

-

-	private void generateCode(ClassFile classFile) {

-

-		classFile.generateMethodInfoHeader(this.binding);

-		int methodAttributeOffset = classFile.contentsOffset;

-		int attributeNumber = classFile.generateMethodInfoAttribute(this.binding);

-		if ((!this.binding.isNative()) && (!this.binding.isAbstract())) {

-			int codeAttributeOffset = classFile.contentsOffset;

-			classFile.generateCodeAttributeHeader();

-			CodeStream codeStream = classFile.codeStream;

-			codeStream.reset(this, classFile);

-			// initialize local positions

-			this.scope.computeLocalVariablePositions(this.binding.isStatic() ? 0 : 1, codeStream);

-

-			// arguments initialization for local variable debug attributes

-			if (this.arguments != null) {

-				for (int i = 0, max = this.arguments.length; i < max; i++) {

-					LocalVariableBinding argBinding;

-					codeStream.addVisibleLocalVariable(argBinding = this.arguments[i].binding);

-					argBinding.recordInitializationStartPC(0);

-				}

-			}

-			if (this.statements != null) {

-				for (int i = 0, max = this.statements.length; i < max; i++)

-					this.statements[i].generateCode(this.scope, codeStream);

-			}

-			if (this.needFreeReturn) {

-				codeStream.return_();

-			}

-			// local variable attributes

-			codeStream.exitUserScope(this.scope);

-			codeStream.recordPositionsFrom(0, this.declarationSourceEnd);

-			classFile.completeCodeAttribute(codeAttributeOffset);

-			attributeNumber++;

-		} else {

-			checkArgumentsSize();

-		}

-		classFile.completeMethodInfo(methodAttributeOffset, attributeNumber);

-

-		// if a problem got reported during code gen, then trigger problem method creation

-		if (this.ignoreFurtherInvestigation) {

-			throw new AbortMethod(this.scope.referenceCompilationUnit().compilationResult, null);

-		}

-	}

-

-	private void checkArgumentsSize() {

-		TypeBinding[] parameters = this.binding.parameters;

-		int size = 1; // an abstact method or a native method cannot be static

-		for (int i = 0, max = parameters.length; i < max; i++) {

-			TypeBinding parameter = parameters[i];

-			if (parameter == LongBinding || parameter == DoubleBinding) {

-				size += 2;

-			} else {

-				size++;

-			}

-			if (size > 0xFF) {

-				this.scope.problemReporter().noMoreAvailableSpaceForArgument(this.scope.locals[i], this.scope.locals[i].declaration);

-			}

-		}

-	}

-	

-	public boolean hasErrors() {

-		return this.ignoreFurtherInvestigation;

-	}

-

-	public boolean isAbstract() {

-

-		if (this.binding != null)

-			return this.binding.isAbstract();

-		return (this.modifiers & AccAbstract) != 0;

-	}

-

-	public boolean isClinit() {

-

-		return false;

-	}

-

-	public boolean isConstructor() {

-

-		return false;

-	}

-

-	public boolean isDefaultConstructor() {

-

-		return false;

-	}

-

-	public boolean isInitializationMethod() {

-

-		return false;

-	}

-

-	public boolean isMethod() {

-

-		return false;

-	}

-

-	public boolean isNative() {

-

-		if (this.binding != null)

-			return this.binding.isNative();

-		return (this.modifiers & AccNative) != 0;

-	}

-

-	public boolean isStatic() {

-

-		if (this.binding != null)

-			return this.binding.isStatic();

-		return (this.modifiers & AccStatic) != 0;

-	}

-

-	/**

-	 * Fill up the method body with statement

-	 * @param parser

-	 * @param unit

-	 */

-	public abstract void parseStatements(

-		Parser parser,

-		CompilationUnitDeclaration unit);

-

-	public StringBuffer print(int tab, StringBuffer output) {

-

-		printIndent(tab, output);

-		printModifiers(this.modifiers, output);

-		

-		TypeParameter[] typeParams = typeParameters();

-		if (typeParams != null) {

-			output.append('<');//$NON-NLS-1$

-			int max = typeParams.length - 1;

-			for (int j = 0; j < max; j++) {

-				typeParams[j].print(0, output);

-				output.append(", ");//$NON-NLS-1$

-			}

-			typeParams[max].print(0, output);

-			output.append('>');

-		}

-		

-		printReturnType(0, output).append(this.selector).append('(');

-		if (this.arguments != null) {

-			for (int i = 0; i < this.arguments.length; i++) {

-				if (i > 0) output.append(", "); //$NON-NLS-1$

-				this.arguments[i].print(0, output);

-			}

-		}

-		output.append(')');

-		if (this.thrownExceptions != null) {

-			output.append(" throws "); //$NON-NLS-1$

-			for (int i = 0; i < this.thrownExceptions.length; i++) {

-				if (i > 0) output.append(", "); //$NON-NLS-1$

-				this.thrownExceptions[i].print(0, output);

-			}

-		}

-		printBody(tab + 1, output);

-		return output;

-	}

-

-	public StringBuffer printBody(int indent, StringBuffer output) {

-

-		if (isAbstract() || (this.modifiers & AccSemicolonBody) != 0) 

-			return output.append(';');

-

-		output.append(" {"); //$NON-NLS-1$

-		if (this.statements != null) {

-			for (int i = 0; i < this.statements.length; i++) {

-				output.append('\n');

-				this.statements[i].printStatement(indent, output); 

-			}

-		}

-		output.append('\n'); //$NON-NLS-1$

-		printIndent(indent == 0 ? 0 : indent - 1, output).append('}');

-		return output;

-	}

-

-	public StringBuffer printReturnType(int indent, StringBuffer output) {

-		

-		return output;

-	}

-

-	public void resolve(ClassScope upperScope) {

-

-		if (this.binding == null) {

-			this.ignoreFurtherInvestigation = true;

-		}

-

-		try {

-			bindArguments(); 

-			bindThrownExceptions();

-			resolveJavadoc();

-			resolveStatements();

-		} catch (AbortMethod e) {	// ========= abort on fatal error =============

-			this.ignoreFurtherInvestigation = true;

-		} 

-	}

-

-	public void resolveJavadoc() {

-		

-		if (this.binding == null) return;

-		if (this.javadoc != null) {

-			this.javadoc.resolve(this.scope);

-			return;

-		}

-		if (this.binding.declaringClass != null && !this.binding.declaringClass.isLocalType()) {

-			this.scope.problemReporter().javadocMissing(this.sourceStart, this.sourceEnd, this.binding.modifiers);

-		}

-	}

-

-	public void resolveStatements() {

-

-		if (this.statements != null) {

-			for (int i = 0, length = this.statements.length; i < length; i++) {

-				this.statements[i].resolve(this.scope);

-			}

-		} else if ((this.bits & UndocumentedEmptyBlockMASK) != 0) {

-			this.scope.problemReporter().undocumentedEmptyBlock(this.bodyStart-1, this.bodyEnd+1);

-		}

-	}

-

-	public void tagAsHavingErrors() {

-

-		this.ignoreFurtherInvestigation = true;

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		ClassScope classScope) {

-		// default implementation: subclass will define it

-	}

-	

-	public TypeParameter[] typeParameters() {

-	    return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AbstractVariableDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AbstractVariableDeclaration.js
deleted file mode 100644
index 0607c48..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AbstractVariableDeclaration.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public abstract class AbstractVariableDeclaration extends Statement implements InvocationSite {

-	public int declarationEnd;

-	public int declarationSourceEnd;

-	public int declarationSourceStart;

-	public int hiddenVariableDepth; // used to diagnose hiding scenarii

-	public Expression initialization;

-	public int modifiers;

-	public int modifiersSourceStart;

-	public Annotation[] annotations;

-

-	public char[] name;

-

-	public TypeReference type;

-	

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-		return flowInfo;

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()

-	 */

-	public TypeBinding[] genericTypeArguments() {

-		return null;

-	}

-	

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#isSuperAccess()

-	 */

-	public boolean isSuperAccess() {

-		return false;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#isTypeAccess()

-	 */

-	public boolean isTypeAccess() {

-		return false;

-	}

-

-	

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		printIndent(indent, output);

-		printModifiers(this.modifiers, output);

-		type.print(0, output).append(' ').append(this.name); 

-		if (initialization != null) {

-			output.append(" = "); //$NON-NLS-1$

-			initialization.printExpression(indent, output);

-		}

-		return output.append(';');

-	}

-

-	public void resolve(BlockScope scope) {

-		// do nothing by default (redefined for local variables)

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#setActualReceiverType(org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding)

-	 */

-	public void setActualReceiverType(ReferenceBinding receiverType) {

-		// do nothing by default

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#setDepth(int)

-	 */

-	public void setDepth(int depth) {

-

-		this.hiddenVariableDepth = depth;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#setFieldIndex(int)

-	 */

-	public void setFieldIndex(int depth) {

-		// do nothing by default

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AllocationExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AllocationExpression.js
deleted file mode 100644
index bcb824c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AllocationExpression.js
+++ /dev/null
@@ -1,317 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class AllocationExpression extends Expression implements InvocationSite {

-		

-	public TypeReference type;

-	public Expression[] arguments;

-	public MethodBinding binding;							// exact binding resulting from lookup

-	protected MethodBinding codegenBinding;	// actual binding used for code generation (if no synthetic accessor)

-	MethodBinding syntheticAccessor;						// synthetic accessor for inner-emulation

-	public TypeReference[] typeArguments;	

-	public TypeBinding[] genericTypeArguments;

-	

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// check captured variables are initialized in current context (26134)

-		checkCapturedLocalInitializationIfNecessary(this.binding.declaringClass, currentScope, flowInfo);

-

-		// process arguments

-		if (arguments != null) {

-			for (int i = 0, count = arguments.length; i < count; i++) {

-				flowInfo =

-					arguments[i]

-						.analyseCode(currentScope, flowContext, flowInfo)

-						.unconditionalInits();

-			}

-		}

-		// record some dependency information for exception types

-		ReferenceBinding[] thrownExceptions;

-		if (((thrownExceptions = this.binding.thrownExceptions).length) != 0) {

-			// check exception handling

-			flowContext.checkExceptionHandlers(

-				thrownExceptions,

-				this,

-				flowInfo,

-				currentScope);

-		}

-		manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-		manageSyntheticAccessIfNecessary(currentScope, flowInfo);

-		

-		return flowInfo;

-	}

-

-	public void checkCapturedLocalInitializationIfNecessary(ReferenceBinding checkedType, BlockScope currentScope, FlowInfo flowInfo) {

-

-		if (checkedType.isLocalType() 

-				&& !checkedType.isAnonymousType()

-				&& !currentScope.isDefinedInType(checkedType)) { // only check external allocations

-			NestedTypeBinding nestedType = (NestedTypeBinding) checkedType;

-			SyntheticArgumentBinding[] syntheticArguments = nestedType.syntheticOuterLocalVariables();

-			if (syntheticArguments != null) 

-				for (int i = 0, count = syntheticArguments.length; i < count; i++){

-					SyntheticArgumentBinding syntheticArgument = syntheticArguments[i];

-					LocalVariableBinding targetLocal;

-					if ((targetLocal = syntheticArgument.actualOuterLocalVariable) == null) continue;

-					if (targetLocal.declaration != null && !flowInfo.isDefinitelyAssigned(targetLocal)){

-						currentScope.problemReporter().uninitializedLocalVariable(targetLocal, this);

-					}

-				}

-						

-		}

-	}

-	

-	public Expression enclosingInstance() {

-		return null;

-	}

-

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		ReferenceBinding allocatedType = this.codegenBinding.declaringClass;

-

-		codeStream.new_(allocatedType);

-		if (valueRequired) {

-			codeStream.dup();

-		}

-		// better highlight for allocation: display the type individually

-		codeStream.recordPositionsFrom(pc, type.sourceStart);

-

-		// handling innerclass instance allocation - enclosing instance arguments

-		if (allocatedType.isNestedType()) {

-			codeStream.generateSyntheticEnclosingInstanceValues(

-				currentScope,

-				allocatedType,

-				enclosingInstance(),

-				this);

-		}

-		// generate the arguments for constructor

-		if (arguments != null) {

-			for (int i = 0, count = arguments.length; i < count; i++) {

-				arguments[i].generateCode(currentScope, codeStream, true);

-			}

-		}

-		// handling innerclass instance allocation - outer local arguments

-		if (allocatedType.isNestedType()) {

-			codeStream.generateSyntheticOuterArgumentValues(

-				currentScope,

-				allocatedType,

-				this);

-		}

-		// invoke constructor

-		if (syntheticAccessor == null) {

-			codeStream.invokespecial(this.codegenBinding);

-		} else {

-			// synthetic accessor got some extra arguments appended to its signature, which need values

-			for (int i = 0,

-				max = syntheticAccessor.parameters.length - this.codegenBinding.parameters.length;

-				i < max;

-				i++) {

-				codeStream.aconst_null();

-			}

-			codeStream.invokespecial(syntheticAccessor);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()

-	 */

-	public TypeBinding[] genericTypeArguments() {

-		return this.genericTypeArguments;

-	}

-	

-	public boolean isSuperAccess() {

-

-		return false;

-	}

-

-	public boolean isTypeAccess() {

-

-		return true;

-	}

-

-	/* Inner emulation consists in either recording a dependency 

-	 * link only, or performing one level of propagation.

-	 *

-	 * Dependency mechanism is used whenever dealing with source target

-	 * types, since by the time we reach them, we might not yet know their

-	 * exact need.

-	 */

-	public void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-		ReferenceBinding allocatedType;

-

-		// perform some emulation work in case there is some and we are inside a local type only

-		if ((allocatedType = binding.declaringClass).isNestedType()

-			&& currentScope.enclosingSourceType().isLocalType()) {

-

-			if (allocatedType.isLocalType()) {

-				((LocalTypeBinding) allocatedType).addInnerEmulationDependent(currentScope, false);

-				// request cascade of accesses

-			} else {

-				// locally propagate, since we already now the desired shape for sure

-				currentScope.propagateInnerEmulation(allocatedType, false);

-				// request cascade of accesses

-			}

-		}

-	}

-

-	public void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-

-		// if constructor from parameterized type got found, use the original constructor at codegen time

-		this.codegenBinding = this.binding.original();

-

-		if (this.codegenBinding.isPrivate()

-			&& (currentScope.enclosingSourceType() != this.codegenBinding.declaringClass)) {

-

-			if (currentScope.environment().options.isPrivateConstructorAccessChangingVisibility) {

-				this.codegenBinding.tagForClearingPrivateModifier();

-				// constructor will not be dumped as private, no emulation required thus

-			} else {

-				syntheticAccessor =

-					((SourceTypeBinding) this.codegenBinding.declaringClass).addSyntheticMethod(this.codegenBinding, isSuperAccess());

-				currentScope.problemReporter().needToEmulateMethodAccess(this.codegenBinding, this);

-			}

-		}

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		output.append("new "); //$NON-NLS-1$

-		if (typeArguments != null) {

-			output.append('<');//$NON-NLS-1$

-			int max = typeArguments.length - 1;

-			for (int j = 0; j < max; j++) {

-				typeArguments[j].print(0, output);

-				output.append(", ");//$NON-NLS-1$

-			}

-			typeArguments[max].print(0, output);

-			output.append('>');

-		}

-		type.printExpression(0, output); 

-		output.append('(');

-		if (arguments != null) {

-			for (int i = 0; i < arguments.length; i++) {

-				if (i > 0) output.append(", "); //$NON-NLS-1$

-				arguments[i].printExpression(0, output);

-			}

-		}

-		return output.append(')');

-	}

-	

-	public TypeBinding resolveType(BlockScope scope) {

-

-		// Propagate the type checking to the arguments, and check if the constructor is defined.

-		constant = NotAConstant;

-		this.resolvedType = type.resolveType(scope);

-		// will check for null after args are resolved

-

-		// resolve type arguments (for generic constructor call)

-		if (this.typeArguments != null) {

-			int length = this.typeArguments.length;

-			boolean argHasError = false; // typeChecks all arguments

-			this.genericTypeArguments = new TypeBinding[length];

-			for (int i = 0; i < length; i++) {

-				if ((this.genericTypeArguments[i] = this.typeArguments[i].resolveType(scope)) == null) {

-					argHasError = true;

-				}

-			}

-			if (argHasError) {

-				return null;

-			}

-		}

-		

-		// buffering the arguments' types

-		boolean argsContainCast = false;

-		TypeBinding[] argumentTypes = NoParameters;

-		if (arguments != null) {

-			boolean argHasError = false;

-			int length = arguments.length;

-			argumentTypes = new TypeBinding[length];

-			for (int i = 0; i < length; i++) {

-				Expression argument = this.arguments[i];

-				if (argument instanceof CastExpression) {

-					argument.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-					argsContainCast = true;

-				}

-				if ((argumentTypes[i] = argument.resolveType(scope)) == null) {

-					argHasError = true;

-				}

-			}

-			if (argHasError) {

-				return this.resolvedType;

-			}

-		}

-		if (this.resolvedType == null)

-			return null;

-

-		if (!this.resolvedType.canBeInstantiated()) {

-			scope.problemReporter().cannotInstantiate(type, this.resolvedType);

-			return this.resolvedType;

-		}

-		ReferenceBinding allocationType = (ReferenceBinding) this.resolvedType;

-		if (!(binding = scope.getConstructor(allocationType, argumentTypes, this)).isValidBinding()) {

-			if (binding.declaringClass == null)

-				binding.declaringClass = allocationType;

-			scope.problemReporter().invalidConstructor(this, binding);

-			return this.resolvedType;

-		}

-		if (isMethodUseDeprecated(binding, scope))

-			scope.problemReporter().deprecatedMethod(binding, this);

-		if (this.arguments != null)

-			checkInvocationArguments(scope, null, allocationType, this.binding, this.arguments, argumentTypes, argsContainCast, this);

-		return allocationType;

-	}

-

-	public void setActualReceiverType(ReferenceBinding receiverType) {

-		// ignored

-	}

-

-	public void setDepth(int i) {

-		// ignored

-	}

-

-	public void setFieldIndex(int i) {

-		// ignored

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			if (this.typeArguments != null) {

-				for (int i = 0, typeArgumentsLength = this.typeArguments.length; i < typeArgumentsLength; i++) {

-					this.typeArguments[i].traverse(visitor, scope);

-				}

-			}

-			this.type.traverse(visitor, scope);

-			if (this.arguments != null) {

-				for (int i = 0, argumentsLength = this.arguments.length; i < argumentsLength; i++)

-					this.arguments[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Annotation.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Annotation.js
deleted file mode 100644
index 25f651f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Annotation.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;

-

-/**

- * Annotation

- */

-public abstract class Annotation extends Expression {

-	

-	public char[][] tokens;

-	public long[] sourcePositions;

-	public int declarationSourceEnd;

-	

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		output.append('@');

-		for (int i = 0; i < tokens.length; i++) {

-			if (i > 0) output.append('.');

-			output.append(tokens[i]);

-		}

-		return output;

-	}

-	public abstract void traverse(ASTVisitor visitor, BlockScope scope);

-	public abstract void traverse(ASTVisitor visitor, ClassScope scope);

-	public abstract void traverse(ASTVisitor visitor, CompilationUnitScope scope);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AnnotationTypeDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AnnotationTypeDeclaration.js
deleted file mode 100644
index 086ec3e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AnnotationTypeDeclaration.js
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortType;

-

-/**

- * Annotation type declaration

- */

-public class AnnotationTypeDeclaration extends TypeDeclaration {

-

-	public AnnotationTypeMemberDeclaration[] annotationTypeMemberDeclarations;

-

-	/**

-	 * @param compilationResult

-	 */

-	public AnnotationTypeDeclaration(CompilationResult compilationResult) {

-		super(compilationResult);

-	}

-

-	public StringBuffer printHeader(int indent, StringBuffer output) {

-

-		printModifiers(this.modifiers, output);

-		output.append("@interface "); //$NON-NLS-1$ //$NON-NLS-2$

-		output.append(name);

-		if (typeParameters != null) {

-			output.append("<");//$NON-NLS-1$

-			for (int i = 0; i < typeParameters.length; i++) {

-				if (i > 0) output.append( ", "); //$NON-NLS-1$

-				typeParameters[i].print(0, output);

-			}

-			output.append(">");//$NON-NLS-1$

-		}

-		if (superclass != null) {

-			output.append(" extends ");  //$NON-NLS-1$

-			superclass.print(0, output);

-		}

-		if (superInterfaces != null && superInterfaces.length > 0) {

-			output.append(isInterface() ? " extends " : " implements ");//$NON-NLS-2$ //$NON-NLS-1$

-			for (int i = 0; i < superInterfaces.length; i++) {

-				if (i > 0) output.append( ", "); //$NON-NLS-1$

-				superInterfaces[i].print(0, output);

-			}

-		}

-		return output;

-	}

-

-	public StringBuffer printBody(int indent, StringBuffer output) {

-

-		output.append(" {"); //$NON-NLS-1$

-		if (this.enums != null) {

-			for (int i = 0; i < this.enums.length; i++) {

-				if (this.enums[i] != null) {

-					output.append('\n');

-					this.enums[i].print(indent + 1, output);

-				}

-			}

-		}

-		if (this.annotationTypeMemberDeclarations != null) {

-			for (int i = 0; i < this.annotationTypeMemberDeclarations.length; i++) {

-				if (this.annotationTypeMemberDeclarations[i] != null) {

-					output.append('\n');

-					this.annotationTypeMemberDeclarations[i].print(indent + 1, output);

-				}

-			}

-		}

-		if (memberTypes != null) {

-			for (int i = 0; i < memberTypes.length; i++) {

-				if (memberTypes[i] != null) {

-					output.append('\n');

-					memberTypes[i].print(indent + 1, output);

-				}

-			}

-		}

-		if (fields != null) {

-			for (int fieldI = 0; fieldI < fields.length; fieldI++) {

-				if (fields[fieldI] != null) {

-					output.append('\n');

-					fields[fieldI].print(indent + 1, output);

-				}

-			}

-		}

-		if (methods != null) {

-			for (int i = 0; i < methods.length; i++) {

-				if (methods[i] != null) {

-					output.append('\n');

-					methods[i].print(indent + 1, output); 

-				}

-			}

-		}

-		output.append('\n');

-		return printIndent(indent, output).append('}');

-	}	

-

-	public void traverse(ASTVisitor visitor, BlockScope unitScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, unitScope)) {

-				if (this.typeParameters != null) {

-					int length = this.typeParameters.length;

-					for (int i = 0; i < length; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++) {

-						this.enums[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.annotationTypeMemberDeclarations != null) {

-					int length = this.annotationTypeMemberDeclarations.length;

-					for (int i = 0; i < length; i++) {

-						this.annotationTypeMemberDeclarations[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, unitScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-	public void traverse(ASTVisitor visitor, ClassScope classScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, classScope)) {

-				if (this.typeParameters != null) {

-					int typeParametersLength = this.typeParameters.length;

-					for (int i = 0; i < typeParametersLength; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++) {

-						this.enums[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.annotationTypeMemberDeclarations != null) {

-					int length = this.annotationTypeMemberDeclarations.length;

-					for (int i = 0; i < length; i++) {

-						this.annotationTypeMemberDeclarations[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, classScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}	

-

-	public void traverse(ASTVisitor visitor, CompilationUnitScope unitScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, unitScope)) {

-				if (this.typeParameters != null) {

-					int length = this.typeParameters.length;

-					for (int i = 0; i < length; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++) {

-						this.enums[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.annotationTypeMemberDeclarations != null) {

-					int length = this.annotationTypeMemberDeclarations.length;

-					for (int i = 0; i < length; i++) {

-						this.annotationTypeMemberDeclarations[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, unitScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AnnotationTypeMemberDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AnnotationTypeMemberDeclaration.js
deleted file mode 100644
index cf66855..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AnnotationTypeMemberDeclaration.js
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.flow.ExceptionHandlingFlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.flow.InitializationFlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortMethod;

-

-public class AnnotationTypeMemberDeclaration extends AbstractMethodDeclaration {

-	

-	public TypeReference returnType;

-	public Expression memberValue;

-	public int extendedDimensions;

-

-	/**

-	 * MethodDeclaration constructor comment.

-	 */

-	public AnnotationTypeMemberDeclaration(CompilationResult compilationResult) {

-		super(compilationResult);

-	}

-

-	public void analyseCode(

-		ClassScope classScope,

-		InitializationFlowContext initializationContext,

-		FlowInfo flowInfo) {

-

-		// starting of the code analysis for methods

-		if (ignoreFurtherInvestigation) {

-			return;

-		}

-		if (this.extendedDimensions != 0) {

-			scope.problemReporter().illegalExtendedDimensions(this);		

-		}

-		try {

-			if (binding == null) {

-				return;

-			}

-				

-			if (this.binding.isPrivate() && !this.binding.isPrivateUsed()) {

-				if (!classScope.referenceCompilationUnit().compilationResult.hasSyntaxError()) {

-					scope.problemReporter().unusedPrivateMethod(this);

-				}

-			}

-				

-			// may be in a non necessary <clinit> for innerclass with static final constant fields

-			if (binding.isAbstract() || binding.isNative())

-				return;

-

-			ExceptionHandlingFlowContext methodContext =

-				new ExceptionHandlingFlowContext(

-					initializationContext,

-					this,

-					binding.thrownExceptions,

-					scope,

-					FlowInfo.DEAD_END);

-

-			// propagate to statements

-			if (statements != null) {

-				boolean didAlreadyComplain = false;

-				for (int i = 0, count = statements.length; i < count; i++) {

-					Statement stat = statements[i];

-					if (!stat.complainIfUnreachable(flowInfo, scope, didAlreadyComplain)) {

-						flowInfo = stat.analyseCode(scope, methodContext, flowInfo);

-					} else {

-						didAlreadyComplain = true;

-					}

-				}

-			}

-			// check for missing returning path

-			TypeBinding returnTypeBinding = binding.returnType;

-			if ((returnTypeBinding == VoidBinding) || isAbstract()) {

-				this.needFreeReturn = flowInfo.isReachable();

-			} else {

-				if (flowInfo != FlowInfo.DEAD_END) { 

-					scope.problemReporter().shouldReturn(returnTypeBinding, this);

-				}

-			}

-			// check unreachable catch blocks

-			methodContext.complainIfUnusedExceptionHandlers(this);

-		} catch (AbortMethod e) {

-			this.ignoreFurtherInvestigation = true;

-		}

-	}

-

-

-	public void parseStatements(Parser parser, CompilationUnitDeclaration unit) {

-		// nothing to do

-		// annotation type member declaration don't have any body

-	}

-	

-	public StringBuffer printReturnType(int indent, StringBuffer output) {

-

-		if (returnType == null) return output;

-		return returnType.printExpression(0, output).append(' ');

-	}

-

-	public void resolve(ClassScope upperScope) {

-		if (this.binding == null) {

-			this.ignoreFurtherInvestigation = true;

-		}

-

-		try {

-			resolveStatements();

-			resolveJavadoc();

-		} catch (AbortMethod e) {	// ========= abort on fatal error =============

-			this.ignoreFurtherInvestigation = true;

-		} 

-	}

-	

-	public void resolveStatements() {

-

-		// ========= abort on fatal error =============

-		if (this.returnType != null && this.binding != null) {

-			this.returnType.resolvedType = this.binding.returnType;

-			// record the return type binding

-		}

-		// check if method with constructor name

-		if (CharOperation.equals(scope.enclosingSourceType().sourceName, selector)) {

-			scope.problemReporter().annotationTypeMemberDeclarationWithConstructorName(this);

-		}

-		super.resolveStatements(); 

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		ClassScope classScope) {

-

-		if (visitor.visit(this, classScope)) {

-			if (this.annotations != null) {

-				int annotationsLength = this.annotations.length;

-				for (int i = 0; i < annotationsLength; i++)

-					this.annotations[i].traverse(visitor, scope);

-			}

-			if (returnType != null) {

-				returnType.traverse(visitor, scope);

-			}

-			if (memberValue != null) {

-				memberValue.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, classScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Argument.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Argument.js
deleted file mode 100644
index 3f26f11..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Argument.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class Argument extends LocalDeclaration {

-	

-	// prefix for setter method (to recognize special hiding argument)

-	private final static char[] SET = "set".toCharArray(); //$NON-NLS-1$

-	public boolean isVarArgs;

-	

-	public Argument(char[] name, long posNom, TypeReference tr, int modifiers, boolean isVarArgs) {

-

-		super(name, (int) (posNom >>> 32), (int) posNom);

-		this.declarationSourceEnd = (int) posNom;

-		this.modifiers = modifiers;

-		type = tr;

-		this.bits |= IsLocalDeclarationReachableMASK;

-		this.isVarArgs = isVarArgs;

-	}

-

-	public void bind(MethodScope scope, TypeBinding typeBinding, boolean used) {

-

-		if (this.type != null)

-			this.type.resolvedType = typeBinding; // TODO (philippe) no longer necessary as when binding got resolved, it was recorded already (SourceTypeBinding#resolveTypesFor(MethodBinding))

-		// record the resolved type into the type reference

-		int modifierFlag = this.modifiers;

-

-		Binding existingVariable = scope.getBinding(name, BindingIds.VARIABLE, this, false /*do not resolve hidden field*/);

-		if (existingVariable != null && existingVariable.isValidBinding()){

-			if (existingVariable instanceof LocalVariableBinding && this.hiddenVariableDepth == 0) {

-				scope.problemReporter().redefineArgument(this);

-				return;

-			}

-			boolean isSpecialArgument = false;

-			if (existingVariable instanceof FieldBinding) {

-				if (scope.isInsideConstructor()) {

-					isSpecialArgument = true; // constructor argument

-				} else {

-					AbstractMethodDeclaration methodDecl = scope.referenceMethod();

-					if (methodDecl != null && CharOperation.prefixEquals(SET, methodDecl.selector)) {

-						isSpecialArgument = true; // setter argument

-					}

-				}

-			}

-			scope.problemReporter().localVariableHiding(this, existingVariable, isSpecialArgument);

-		}

-

-		scope.addLocalVariable(

-			this.binding =

-				new LocalVariableBinding(this, typeBinding, modifierFlag, true));

-		//true stand for argument instead of just local

-		this.binding.declaration = this;

-		this.binding.useFlag = used ? LocalVariableBinding.USED : LocalVariableBinding.UNUSED;

-	}

-

-	public StringBuffer print(int indent, StringBuffer output) {

-

-		printIndent(indent, output);

-		printModifiers(this.modifiers, output);

-		if (type == null) {

-			output.append("<no type> "); //$NON-NLS-1$

-		} else {

-			type.print(0, output).append(' '); 

-		}

-		return output.append(this.name);

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		return print(indent, output).append(';');

-	}	

-

-	public TypeBinding resolveForCatch(BlockScope scope) {

-

-		// resolution on an argument of a catch clause

-		// provide the scope with a side effect : insertion of a LOCAL

-		// that represents the argument. The type must be from JavaThrowable

-

-		TypeBinding exceptionType = this.type.resolveType(scope);

-		if (exceptionType == null) return null;

-		if (exceptionType.isGenericType() || exceptionType.isParameterizedType()) {

-			scope.problemReporter().invalidParameterizedExceptionType(exceptionType, this);

-			return null;

-		}

-		if (exceptionType.isTypeVariable()) {

-			scope.problemReporter().invalidTypeVariableAsException(exceptionType, this);

-			return null;

-		}		

-		TypeBinding throwable = scope.getJavaLangThrowable();

-		if (!exceptionType.isCompatibleWith(throwable)) {

-			scope.problemReporter().typeMismatchError(exceptionType, throwable, this);

-			return null;

-		}

-		

-		Binding existingVariable = scope.getBinding(name, BindingIds.VARIABLE, this, false /*do not resolve hidden field*/);

-		if (existingVariable != null && existingVariable.isValidBinding()){

-			if (existingVariable instanceof LocalVariableBinding && this.hiddenVariableDepth == 0) {

-				scope.problemReporter().redefineArgument(this);

-				return null;

-			}

-			scope.problemReporter().localVariableHiding(this, existingVariable, false);

-		}

-

-		binding = new LocalVariableBinding(this, exceptionType, modifiers, false); // argument decl, but local var  (where isArgument = false)

-		scope.addLocalVariable(binding);

-		binding.setConstant(NotAConstant);

-		return exceptionType;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		

-		if (visitor.visit(this, scope)) {

-			if (type != null)

-				type.traverse(visitor, scope);

-			if (initialization != null)

-				initialization.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayAllocationExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayAllocationExpression.js
deleted file mode 100644
index b47b831..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayAllocationExpression.js
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ArrayAllocationExpression extends Expression {

-

-	public TypeReference type;

-

-	//dimensions.length gives the number of dimensions, but the

-	// last ones may be nulled as in new int[4][5][][]

-	public Expression[] dimensions;

-	public ArrayInitializer initializer;

-

-	/**

-	 * ArrayAllocationExpression constructor comment.

-	 */

-	public ArrayAllocationExpression() {

-		super();

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-		for (int i = 0, max = dimensions.length; i < max; i++) {

-			Expression dim;

-			if ((dim = dimensions[i]) != null) {

-				flowInfo = dim.analyseCode(currentScope, flowContext, flowInfo);

-			}

-		}

-		if (initializer != null) {

-			return initializer.analyseCode(currentScope, flowContext, flowInfo);

-		}

-		return flowInfo;

-	}

-

-	/**

-	 * Code generation for a array allocation expression

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-

-		if (initializer != null) {

-			initializer.generateCode(currentScope, codeStream, valueRequired);

-			return;

-		}

-

-		int nonNullDimensionsLength = 0;

-		for (int i = 0, max = dimensions.length; i < max; i++)

-			if (dimensions[i] != null) {

-				dimensions[i].generateCode(currentScope, codeStream, true);

-				nonNullDimensionsLength++;

-			}

-

-		// Generate a sequence of bytecodes corresponding to an array allocation

-		if (this.resolvedType.dimensions() == 1) {

-			// Mono-dimensional array

-			codeStream.newArray(currentScope, (ArrayBinding)this.resolvedType);

-		} else {

-			// Multi-dimensional array

-			codeStream.multianewarray(this.resolvedType, nonNullDimensionsLength);

-		}

-

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(implicitConversion);

-		} else {

-			codeStream.pop();

-		}

-

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		output.append("new "); //$NON-NLS-1$

-		type.print(0, output); 

-		for (int i = 0; i < dimensions.length; i++) {

-			if (dimensions[i] == null)

-				output.append("[]"); //$NON-NLS-1$

-			else {

-				output.append('[');

-				dimensions[i].printExpression(0, output);

-				output.append(']');

-			}

-		} 

-		if (initializer != null) initializer.printExpression(0, output);

-		return output;

-	}

-	

-	public TypeBinding resolveType(BlockScope scope) {

-

-		// Build an array type reference using the current dimensions

-		// The parser does not check for the fact that dimension may be null

-		// only at the -end- like new int [4][][]. The parser allows new int[][4][]

-		// so this must be checked here......(this comes from a reduction to LL1 grammar)

-

-		TypeBinding referenceType = type.resolveType(scope);

-		

-		// will check for null after dimensions are checked

-		constant = Constant.NotAConstant;

-		if (referenceType == VoidBinding) {

-			scope.problemReporter().cannotAllocateVoidArray(this);

-			referenceType = null;

-		}

-

-		// check the validity of the dimension syntax (and test for all null dimensions)

-		int explicitDimIndex = -1;

-		for (int i = dimensions.length; --i >= 0;) {

-			if (dimensions[i] != null) {

-				if (explicitDimIndex < 0) explicitDimIndex = i;

-			} else if (explicitDimIndex> 0) {

-				// should not have an empty dimension before an non-empty one

-				scope.problemReporter().incorrectLocationForEmptyDimension(this, i);

-			}

-		}

-

-		// explicitDimIndex < 0 says if all dimensions are nulled

-		// when an initializer is given, no dimension must be specified

-		if (initializer == null) {

-			if (explicitDimIndex < 0) {

-				scope.problemReporter().mustDefineDimensionsOrInitializer(this);

-			}

-		} else if (explicitDimIndex >= 0) {

-			scope.problemReporter().cannotDefineDimensionsAndInitializer(this);

-		}

-

-		// dimensions resolution 

-		for (int i = 0; i <= explicitDimIndex; i++) {

-			if (dimensions[i] != null) {

-				TypeBinding dimensionType = dimensions[i].resolveTypeExpecting(scope, IntBinding);

-				if (dimensionType != null) {

-					dimensions[i].computeConversion(scope, IntBinding, dimensionType);

-				}

-			}

-		}

-

-		// building the array binding

-		if (referenceType != null) {

-			if (dimensions.length > 255) {

-				scope.problemReporter().tooManyDimensions(this);

-			}

-			// allow new List<?>[5]

-			if (referenceType.isBoundParameterizedType() || referenceType.isGenericType() || referenceType.isTypeVariable()) {

-			    scope.problemReporter().illegalGenericArray(referenceType, this);

-			}

-			this.resolvedType = scope.createArrayType(referenceType, dimensions.length);

-

-			// check the initializer

-			if (initializer != null) {

-				if ((initializer.resolveTypeExpecting(scope, this.resolvedType)) != null)

-					initializer.binding = (ArrayBinding)this.resolvedType;

-			}

-		}

-		return this.resolvedType;

-	}

-

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			int dimensionsLength = dimensions.length;

-			type.traverse(visitor, scope);

-			for (int i = 0; i < dimensionsLength; i++) {

-				if (dimensions[i] != null)

-					dimensions[i].traverse(visitor, scope);

-			}

-			if (initializer != null)

-				initializer.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayInitializer.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayInitializer.js
deleted file mode 100644
index ddcb5c6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayInitializer.js
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ArrayInitializer extends Expression {

-		

-	public Expression[] expressions;

-	public ArrayBinding binding; //the type of the { , , , }

-	

-	/**

-	 * ArrayInitializer constructor comment.

-	 */

-	public ArrayInitializer() {

-

-		super();

-	}

-

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-

-		if (expressions != null) {

-			for (int i = 0, max = expressions.length; i < max; i++) {

-				flowInfo = expressions[i].analyseCode(currentScope, flowContext, flowInfo).unconditionalInits();

-			}

-		}

-		return flowInfo;

-	}

-

-	/**

-	 * Code generation for a array initializer

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-

-		// Flatten the values and compute the dimensions, by iterating in depth into nested array initializers

-		int pc = codeStream.position;

-		int expressionLength = (expressions == null) ? 0: expressions.length;

-		codeStream.generateInlinedValue(expressionLength);

-		codeStream.newArray(currentScope, binding);

-		if (expressions != null) {

-			// binding is an ArrayType, so I can just deal with the dimension

-			int elementsTypeID = binding.dimensions > 1 ? -1 : binding.leafComponentType.id;

-			for (int i = 0; i < expressionLength; i++) {

-				Expression expr;

-				if ((expr = expressions[i]).constant != NotAConstant) {

-					switch (elementsTypeID) { // filter out initializations to default values

-						case T_int :

-						case T_short :

-						case T_byte :

-						case T_char :

-						case T_long :

-							if (expr.constant.longValue() != 0) {

-								codeStream.dup();

-								codeStream.generateInlinedValue(i);

-								expr.generateCode(currentScope, codeStream, true);

-								codeStream.arrayAtPut(elementsTypeID, false);

-							}

-							break;

-						case T_float :

-						case T_double :

-							double constantValue = expr.constant.doubleValue();

-							if (constantValue == -0.0 || constantValue != 0) {

-								codeStream.dup();

-								codeStream.generateInlinedValue(i);

-								expr.generateCode(currentScope, codeStream, true);

-								codeStream.arrayAtPut(elementsTypeID, false);

-							}

-							break;

-						case T_boolean :

-							if (expr.constant.booleanValue() != false) {

-								codeStream.dup();

-								codeStream.generateInlinedValue(i);

-								expr.generateCode(currentScope, codeStream, true);

-								codeStream.arrayAtPut(elementsTypeID, false);

-							}

-							break;

-						default :

-							if (!(expr instanceof NullLiteral)) {

-								codeStream.dup();

-								codeStream.generateInlinedValue(i);

-								expr.generateCode(currentScope, codeStream, true);

-								codeStream.arrayAtPut(elementsTypeID, false);

-							}

-					}

-				} else if (!(expr instanceof NullLiteral)) {

-					codeStream.dup();

-					codeStream.generateInlinedValue(i);

-					expr.generateCode(currentScope, codeStream, true);

-					codeStream.arrayAtPut(elementsTypeID, false);

-				}

-			}

-		}

-		if (!valueRequired) {

-			codeStream.pop();

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-	

-		output.append('{');

-		if (expressions != null) { 	

-			int j = 20 ; 

-			for (int i = 0 ; i < expressions.length ; i++) {	

-				if (i > 0) output.append(", "); //$NON-NLS-1$

-				expressions[i].printExpression(0, output);

-				j -- ;

-				if (j == 0) {

-					output.append('\n');

-					printIndent(indent+1, output);

-					j = 20;

-				}

-			}

-		}

-		return output.append('}');

-	}

-

-	public TypeBinding resolveTypeExpecting(BlockScope scope, TypeBinding expectedTb) {

-		// Array initializers can only occur on the right hand side of an assignment

-		// expression, therefore the expected type contains the valid information

-		// concerning the type that must be enforced by the elements of the array initializer.

-	

-		// this method is recursive... (the test on isArrayType is the stop case)

-	

-		constant = NotAConstant;

-		if (expectedTb.isArrayType()) {

-			binding = (ArrayBinding) expectedTb;

-			if (expressions == null)

-				return binding;

-			TypeBinding expectedElementsTb = binding.elementsType();

-			if (expectedElementsTb.isBaseType()) {

-				for (int i = 0, length = expressions.length; i < length; i++) {

-					Expression expression = expressions[i];

-					TypeBinding expressionTb =

-						(expression instanceof ArrayInitializer)

-							? expression.resolveTypeExpecting(scope, expectedElementsTb)

-							: expression.resolveType(scope);

-					if (expressionTb == null)

-						return null;

-	

-					// Compile-time conversion required?

-					if (expression.isConstantValueOfTypeAssignableToType(expressionTb, expectedElementsTb)) {

-						expression.computeConversion(scope, expectedElementsTb, expressionTb);

-					} else if (BaseTypeBinding.isWidening(expectedElementsTb.id, expressionTb.id)) {

-						expression.computeConversion(scope, expectedElementsTb, expressionTb);

-					} else {

-						scope.problemReporter().typeMismatchError(expressionTb, expectedElementsTb, expression);

-						return null;

-					}

-				}

-			} else {

-				for (int i = 0, length = expressions.length; i < length; i++)

-					if (expressions[i].resolveTypeExpecting(scope, expectedElementsTb) == null)

-						return null;

-			}

-			return binding;

-		}

-		

-		// infer initializer type for error reporting based on first element

-		TypeBinding leafElementType = null;

-		int dim = 1;

-		if (expressions == null) {

-			leafElementType = scope.getJavaLangObject();

-		} else {

-			Expression currentExpression = expressions[0];

-			while(currentExpression != null && currentExpression instanceof ArrayInitializer) {

-				dim++;

-				Expression[] subExprs = ((ArrayInitializer) currentExpression).expressions;

-				if (subExprs == null){

-					leafElementType = scope.getJavaLangObject();

-					currentExpression = null;

-					break;

-				}

-				currentExpression = ((ArrayInitializer) currentExpression).expressions[0];

-			}

-			if (currentExpression != null) {

-				leafElementType = currentExpression.resolveType(scope);

-			}

-		}

-		if (leafElementType != null) {

-			TypeBinding probableTb = scope.createArrayType(leafElementType, dim);

-			scope.problemReporter().typeMismatchError(probableTb, expectedTb, this);

-		}

-		return null;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			if (expressions != null) {

-				int expressionsLength = expressions.length;

-				for (int i = 0; i < expressionsLength; i++)

-					expressions[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayQualifiedTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayQualifiedTypeReference.js
deleted file mode 100644
index 8b676fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayQualifiedTypeReference.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-

-public class ArrayQualifiedTypeReference extends QualifiedTypeReference {

-	int dimensions;

-	

-	public ArrayQualifiedTypeReference(char[][] sources , int dim, long[] poss) {

-		

-		super( sources , poss);

-		dimensions = dim ;

-	}

-	

-	public int dimensions() {

-		

-		return dimensions;

-	}

-

-	/**

-	 * @return char[][]

-	 */

-	public char [][] getParameterizedTypeName(){

-		int dim = this.dimensions;

-		char[] dimChars = new char[dim*2];

-		for (int i = 0; i < dim; i++) {

-			int index = i*2;

-			dimChars[index] = '[';

-			dimChars[index+1] = ']';

-		}

-		int length = this.tokens.length;

-		char[][] qParamName = new char[length][];

-		System.arraycopy(this.tokens, 0, qParamName, 0, length-1);

-		qParamName[length-1] = CharOperation.concat(this.tokens[length-1], dimChars);

-		return qParamName;

-	}	

-	

-	protected TypeBinding getTypeBinding(Scope scope) {

-		

-		if (this.resolvedType != null)

-			return this.resolvedType;

-		if (dimensions > 255) {

-			scope.problemReporter().tooManyDimensions(this);

-		}

-		try {

-			TypeBinding leafComponentType = scope.getType(this.tokens, this.tokens.length);

-			return scope.createArrayType(leafComponentType, dimensions);

-		} catch (AbortCompilation e) {

-			e.updateContext(this, scope.referenceCompilationUnit().compilationResult);

-			throw e;

-		}

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output){

-		

-		super.printExpression(indent, output);

-		for (int i = 0 ; i < dimensions ; i++) {

-			output.append("[]"); //$NON-NLS-1$

-		}

-		return output;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayReference.js
deleted file mode 100644
index dd73960..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayReference.js
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ArrayReference extends Reference {

-	

-	public Expression receiver;

-	public Expression position;

-

-	public ArrayReference(Expression rec, Expression pos) {

-		this.receiver = rec;

-		this.position = pos;

-		sourceStart = rec.sourceStart;

-	}

-

-	public FlowInfo analyseAssignment(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo,

-		Assignment assignment,

-		boolean compoundAssignment) {

-

-		if (assignment.expression == null) {

-			return analyseCode(currentScope, flowContext, flowInfo).unconditionalInits();

-		}

-		return assignment

-			.expression

-			.analyseCode(

-				currentScope,

-				flowContext,

-				analyseCode(currentScope, flowContext, flowInfo).unconditionalInits())

-			.unconditionalInits();

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		return position.analyseCode(

-			currentScope,

-			flowContext,

-			receiver.analyseCode(currentScope, flowContext, flowInfo));

-	}

-

-	public void generateAssignment(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Assignment assignment,

-		boolean valueRequired) {

-

-		receiver.generateCode(currentScope, codeStream, true);

-		if (receiver instanceof CastExpression	// ((type[])null)[0]

-				&& ((CastExpression)receiver).innermostCastedExpression().resolvedType == NullBinding){

-			codeStream.checkcast(receiver.resolvedType); 

-		}	

-		position.generateCode(currentScope, codeStream, true);

-		assignment.expression.generateCode(currentScope, codeStream, true);

-		codeStream.arrayAtPut(this.resolvedType.id, valueRequired);

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(assignment.implicitConversion);

-		}

-	}

-

-	/**

-	 * Code generation for a array reference

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		receiver.generateCode(currentScope, codeStream, true);

-		if (receiver instanceof CastExpression	// ((type[])null)[0]

-				&& ((CastExpression)receiver).innermostCastedExpression().resolvedType == NullBinding){

-			codeStream.checkcast(receiver.resolvedType); 

-		}			

-		position.generateCode(currentScope, codeStream, true);

-		codeStream.arrayAt(this.resolvedType.id);

-		// Generating code for the potential runtime type checking

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(implicitConversion);

-		} else {

-			if (this.resolvedType == LongBinding

-				|| this.resolvedType == DoubleBinding) {

-				codeStream.pop2();

-			} else {

-				codeStream.pop();

-			}

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public void generateCompoundAssignment(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Expression expression,

-		int operator,

-		int assignmentImplicitConversion,

-		boolean valueRequired) {

-

-		receiver.generateCode(currentScope, codeStream, true);

-		if (receiver instanceof CastExpression	// ((type[])null)[0]

-				&& ((CastExpression)receiver).innermostCastedExpression().resolvedType == NullBinding){

-			codeStream.checkcast(receiver.resolvedType); 

-		}	

-		position.generateCode(currentScope, codeStream, true);

-		codeStream.dup2();

-		codeStream.arrayAt(this.resolvedType.id);

-		int operationTypeID;

-		if ((operationTypeID = implicitConversion >> 4) == T_String) {

-			codeStream.generateStringConcatenationAppend(currentScope, null, expression);

-		} else {

-			// promote the array reference to the suitable operation type

-			codeStream.generateImplicitConversion(implicitConversion);

-			// generate the increment value (will by itself  be promoted to the operation value)

-			if (expression == IntLiteral.One) { // prefix operation

-				codeStream.generateConstant(expression.constant, implicitConversion);

-			} else {

-				expression.generateCode(currentScope, codeStream, true);

-			}

-			// perform the operation

-			codeStream.sendOperator(operator, operationTypeID);

-			// cast the value back to the array reference type

-			codeStream.generateImplicitConversion(assignmentImplicitConversion);

-		}

-		codeStream.arrayAtPut(this.resolvedType.id, valueRequired);

-	}

-

-	public void generatePostIncrement(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		CompoundAssignment postIncrement,

-		boolean valueRequired) {

-

-		receiver.generateCode(currentScope, codeStream, true);

-		if (receiver instanceof CastExpression	// ((type[])null)[0]

-				&& ((CastExpression)receiver).innermostCastedExpression().resolvedType == NullBinding){

-			codeStream.checkcast(receiver.resolvedType); 

-		}	

-		position.generateCode(currentScope, codeStream, true);

-		codeStream.dup2();

-		codeStream.arrayAt(this.resolvedType.id);

-		if (valueRequired) {

-			if ((this.resolvedType == LongBinding)

-				|| (this.resolvedType == DoubleBinding)) {

-				codeStream.dup2_x2();

-			} else {

-				codeStream.dup_x2();

-			}

-		}

-		codeStream.generateConstant(

-			postIncrement.expression.constant,

-			implicitConversion);

-		codeStream.sendOperator(postIncrement.operator, this.resolvedType.id);

-		codeStream.generateImplicitConversion(

-			postIncrement.assignmentImplicitConversion);

-		codeStream.arrayAtPut(this.resolvedType.id, false);

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		receiver.printExpression(0, output).append('[');

-		return position.printExpression(0, output).append(']');

-	} 

-

-	public TypeBinding resolveType(BlockScope scope) {

-

-		constant = Constant.NotAConstant;

-		if (receiver instanceof CastExpression	// no cast check for ((type[])null)[0]

-				&& ((CastExpression)receiver).innermostCastedExpression() instanceof NullLiteral) {

-			this.receiver.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-		}		

-		TypeBinding arrayType = receiver.resolveType(scope);

-		if (arrayType != null) {

-			receiver.computeConversion(scope, arrayType, arrayType);

-			if (arrayType.isArrayType()) {

-				this.resolvedType = ((ArrayBinding) arrayType).elementsType();

-			} else {

-				scope.problemReporter().referenceMustBeArrayTypeAt(arrayType, this);

-			}

-		}

-		TypeBinding positionType = position.resolveTypeExpecting(scope, IntBinding);

-		if (positionType != null) {

-			position.computeConversion(scope, IntBinding, positionType);

-		}

-		return this.resolvedType;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		

-		if (visitor.visit(this, scope)) {

-			receiver.traverse(visitor, scope);

-			position.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayTypeReference.js
deleted file mode 100644
index aece1cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ArrayTypeReference.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public class ArrayTypeReference extends SingleTypeReference {

-	public int dimensions;

-

-	/**

-	 * ArrayTypeReference constructor comment.

-	 * @param source char[]

-	 * @param dimensions int

-	 * @param pos int

-	 */

-	public ArrayTypeReference(char[] source, int dimensions, long pos) {

-		

-		super(source, pos);

-		this.dimensions = dimensions ;

-	}

-	

-	public int dimensions() {

-		

-		return dimensions;

-	}

-	/**

-	 * @return char[][]

-	 */

-	public char [][] getParameterizedTypeName(){

-		int dim = this.dimensions;

-		char[] dimChars = new char[dim*2];

-		for (int i = 0; i < dim; i++) {

-			int index = i*2;

-			dimChars[index] = '[';

-			dimChars[index+1] = ']';

-		}

-		return new char[][]{ CharOperation.concat(token, dimChars) };

-	}	

-	protected TypeBinding getTypeBinding(Scope scope) {

-		

-		if (this.resolvedType != null) return this.resolvedType;

-		if (dimensions > 255) {

-			scope.problemReporter().tooManyDimensions(this);

-		}

-		TypeBinding leafComponentType = scope.getType(token);

-		return scope.createArrayType(leafComponentType, dimensions);

-	

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output){

-	

-		super.printExpression(indent, output)  ;

-		for (int i= 0 ; i < dimensions ; i++) {

-			output.append("[]"); //$NON-NLS-1$

-		}

-		return output;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AssertStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AssertStatement.js
deleted file mode 100644
index c761a24..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/AssertStatement.js
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-

-public class AssertStatement extends Statement {

-	

-	public Expression assertExpression, exceptionArgument;

-

-	// for local variable attribute

-	int preAssertInitStateIndex = -1;

-	private FieldBinding assertionSyntheticFieldBinding;

-	

-	public AssertStatement(

-		Expression exceptionArgument,

-		Expression assertExpression,

-		int startPosition) {

-			

-		this.assertExpression = assertExpression;

-		this.exceptionArgument = exceptionArgument;

-		sourceStart = startPosition;

-		sourceEnd = exceptionArgument.sourceEnd;

-	}

-

-	public AssertStatement(Expression assertExpression, int startPosition) {

-

-		this.assertExpression = assertExpression;

-		sourceStart = startPosition;

-		sourceEnd = assertExpression.sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-			

-		preAssertInitStateIndex = currentScope.methodScope().recordInitializationStates(flowInfo);

-

-		Constant cst = this.assertExpression.optimizedBooleanConstant();		

-		boolean isOptimizedTrueAssertion = cst != NotAConstant && cst.booleanValue() == true;

-		boolean isOptimizedFalseAssertion = cst != NotAConstant && cst.booleanValue() == false;

-

-		FlowInfo assertInfo = flowInfo.copy();

-		if (isOptimizedTrueAssertion) {

-			assertInfo.setReachMode(FlowInfo.UNREACHABLE);

-		}

-		assertInfo = assertExpression.analyseCode(currentScope, flowContext, assertInfo).unconditionalInits();

-		

-		if (exceptionArgument != null) {

-			// only gets evaluated when escaping - results are not taken into account

-			FlowInfo exceptionInfo = exceptionArgument.analyseCode(currentScope, flowContext, assertInfo.copy()); 

-			

-			if (!isOptimizedTrueAssertion){

-				flowContext.checkExceptionHandlers(

-					currentScope.getJavaLangAssertionError(),

-					this,

-					exceptionInfo,

-					currentScope);

-			}

-		}

-		

-		if (!isOptimizedTrueAssertion){

-			// add the assert support in the clinit

-			manageSyntheticAccessIfNecessary(currentScope, flowInfo);

-		}

-		if (isOptimizedFalseAssertion) {

-			return flowInfo; // if assertions are enabled, the following code will be unreachable

-		} else {

-			return flowInfo.mergedWith(assertInfo.unconditionalInits()); 

-		}

-	}

-

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-	

-		if (this.assertionSyntheticFieldBinding != null) {

-			Label assertionActivationLabel = new Label(codeStream);

-			codeStream.getstatic(this.assertionSyntheticFieldBinding);

-			codeStream.ifne(assertionActivationLabel);

-			

-			Label falseLabel = new Label(codeStream);

-			this.assertExpression.generateOptimizedBoolean(currentScope, codeStream, (falseLabel = new Label(codeStream)), null , true);

-			codeStream.newJavaLangAssertionError();

-			codeStream.dup();

-			if (exceptionArgument != null) {

-				exceptionArgument.generateCode(currentScope, codeStream, true);

-				codeStream.invokeJavaLangAssertionErrorConstructor(exceptionArgument.implicitConversion & 0xF);

-			} else {

-				codeStream.invokeJavaLangAssertionErrorDefaultConstructor();

-			}

-			codeStream.athrow();

-			falseLabel.place();

-			assertionActivationLabel.place();

-		}

-		

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (preAssertInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, preAssertInitStateIndex);

-		}	

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public void resolve(BlockScope scope) {

-

-		assertExpression.resolveTypeExpecting(scope, BooleanBinding);

-		if (exceptionArgument != null) {

-			TypeBinding exceptionArgumentType = exceptionArgument.resolveType(scope);

-			if (exceptionArgumentType != null){

-			    int id = exceptionArgumentType.id;

-			    switch(id) {

-					case T_void :

-						scope.problemReporter().illegalVoidExpression(exceptionArgument);

-					default:

-					    id = T_Object;

-					case T_boolean :

-					case T_byte :

-					case T_char :

-					case T_short :

-					case T_double :

-					case T_float :

-					case T_int :

-					case T_long :

-					case T_String :

-						exceptionArgument.implicitConversion = (id << 4) + id;

-				}

-			}

-		}

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			assertExpression.traverse(visitor, scope);

-			if (exceptionArgument != null) {

-				exceptionArgument.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}	

-	

-	public void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-		

-		// need assertion flag: $assertionsDisabled on outer most source clas

-		// (in case of static member of interface, will use the outermost static member - bug 22334)

-		SourceTypeBinding outerMostClass = currentScope.enclosingSourceType();

-		while (outerMostClass.isLocalType()){

-			ReferenceBinding enclosing = outerMostClass.enclosingType();

-			if (enclosing == null || enclosing.isInterface()) break;

-			outerMostClass = (SourceTypeBinding) enclosing;

-		}

-

-		this.assertionSyntheticFieldBinding = outerMostClass.addSyntheticField(this, currentScope);

-

-		// find <clinit> and enable assertion support

-		TypeDeclaration typeDeclaration = outerMostClass.scope.referenceType();

-		AbstractMethodDeclaration[] methods = typeDeclaration.methods;

-		for (int i = 0, max = methods.length; i < max; i++) {

-			AbstractMethodDeclaration method = methods[i];

-			if (method.isClinit()) {

-				((Clinit) method).setAssertionSupport(assertionSyntheticFieldBinding, currentScope.environment().options.sourceLevel < ClassFileConstants.JDK1_5);

-				break;

-			}

-		}

-	}

-

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-

-		printIndent(tab, output);

-		output.append("assert "); //$NON-NLS-1$

-		this.assertExpression.printExpression(0, output);

-		if (this.exceptionArgument != null) {

-			output.append(": "); //$NON-NLS-1$

-			this.exceptionArgument.printExpression(0, output);

-		}

-		return output.append(';');

-	}

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Assignment.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Assignment.js
deleted file mode 100644
index 21cb020..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Assignment.js
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Genady Beriozkin - added support for reporting assignment with no effect

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class Assignment extends Expression {

-

-	public Expression lhs;

-	public Expression expression;

-		

-	public Assignment(Expression lhs, Expression expression, int sourceEnd) {

-		//lhs is always a reference by construction ,

-		//but is build as an expression ==> the checkcast cannot fail

-

-		this.lhs = lhs;

-		lhs.bits |= IsStrictlyAssignedMASK; // tag lhs as assigned

-		

-		this.expression = expression;

-

-		this.sourceStart = lhs.sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-		// record setting a variable: various scenarii are possible, setting an array reference, 

-		// a field reference, a blank final field reference, a field of an enclosing instance or 

-		// just a local variable.

-

-		return ((Reference) lhs)

-			.analyseAssignment(currentScope, flowContext, flowInfo, this, false)

-			.unconditionalInits();

-	}

-

-	void checkAssignmentEffect(BlockScope scope) {

-		

-		Binding left = getDirectBinding(this.lhs);

-		if (left != null && left == getDirectBinding(this.expression)) {

-			scope.problemReporter().assignmentHasNoEffect(this, left.shortReadableName());

-			this.bits |= IsAssignmentWithNoEffectMASK; // record assignment has no effect

-		}

-	}

-

-	void checkAssignment(BlockScope scope, TypeBinding lhsType, TypeBinding rhsType) {

-		

-		FieldBinding leftField = getLastField(this.lhs);

-		if (leftField != null &&  rhsType != NullBinding && lhsType.isWildcard() && ((WildcardBinding)lhsType).kind != Wildcard.SUPER) {

-		    scope.problemReporter().wildcardAssignment(lhsType, rhsType, this.expression);

-		} else if (leftField != null && leftField.declaringClass != null /*length pseudo field*/&& leftField.declaringClass.isRawType() 

-		        && (rhsType.isParameterizedType() || rhsType.isGenericType())) {

-		    scope.problemReporter().unsafeRawFieldAssignment(leftField, rhsType, this.lhs);

-		} else if (rhsType.isRawType() && (lhsType.isBoundParameterizedType() || lhsType.isGenericType())) {

-		    scope.problemReporter().unsafeRawConversion(this.expression, rhsType, lhsType);

-		}		

-	}

-	

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		// various scenarii are possible, setting an array reference, 

-		// a field reference, a blank final field reference, a field of an enclosing instance or 

-		// just a local variable.

-

-		int pc = codeStream.position;

-		if ((this.bits & IsAssignmentWithNoEffectMASK) != 0) {

-			if (valueRequired) {

-				this.expression.generateCode(currentScope, codeStream, true);

-			}

-		} else {

-			 ((Reference) lhs).generateAssignment(currentScope, codeStream, this, valueRequired);

-			// variable may have been optimized out

-			// the lhs is responsible to perform the implicitConversion generation for the assignment since optimized for unused local assignment.

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	Binding getDirectBinding(Expression someExpression) {

-		if (someExpression instanceof SingleNameReference) {

-			return ((SingleNameReference)someExpression).binding;

-		} else if (someExpression instanceof FieldReference) {

-			FieldReference fieldRef = (FieldReference)someExpression;

-			if (fieldRef.receiver.isThis() && !(fieldRef.receiver instanceof QualifiedThisReference)) {

-				return fieldRef.binding;

-			}			

-		}

-		return null;

-	}

-	FieldBinding getLastField(Expression someExpression) {

-	    if (someExpression instanceof SingleNameReference) {

-	        if ((someExpression.bits & RestrictiveFlagMASK) == BindingIds.FIELD) {

-	            return (FieldBinding) ((SingleNameReference)someExpression).binding;

-	        }

-	    } else if (someExpression instanceof FieldReference) {

-	        return ((FieldReference)someExpression).binding;

-	    } else if (someExpression instanceof QualifiedNameReference) {

-	        QualifiedNameReference qName = (QualifiedNameReference) someExpression;

-	        if (qName.otherBindings == null && ((someExpression.bits & RestrictiveFlagMASK) == BindingIds.FIELD)) {

-	            return (FieldBinding)qName.binding;

-	        } else {

-	            return qName.otherBindings[qName.otherBindings.length - 1];

-	        }

-	    }

-	    return null;

-	}	

-	public StringBuffer print(int indent, StringBuffer output) {

-

-		//no () when used as a statement 

-		printIndent(indent, output);

-		return printExpressionNoParenthesis(indent, output);

-	}

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		//subclass redefine printExpressionNoParenthesis()

-		output.append('(');

-		return printExpressionNoParenthesis(0, output).append(')');

-	} 

-

-	public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output) {

-

-		lhs.printExpression(indent, output).append(" = "); //$NON-NLS-1$

-		return expression.printExpression(0, output);

-	}

-	

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		//no () when used as a statement 

-		return print(indent, output).append(';');

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-

-		// due to syntax lhs may be only a NameReference, a FieldReference or an ArrayReference

-		constant = NotAConstant;

-		if (!(this.lhs instanceof Reference) || this.lhs.isThis()) {

-			scope.problemReporter().expressionShouldBeAVariable(this.lhs);

-			return null;

-		}

-		TypeBinding lhsType = this.resolvedType = lhs.resolveType(scope);

-		expression.setExpectedType(lhsType); // needed in case of generic method invocation

-		TypeBinding rhsType = expression.resolveType(scope);

-		if (lhsType == null || rhsType == null) {

-			return null;

-		}

-		checkAssignmentEffect(scope);

-

-		// Compile-time conversion of base-types : implicit narrowing integer into byte/short/character

-		// may require to widen the rhs expression at runtime

-		if ((expression.isConstantValueOfTypeAssignableToType(rhsType, lhsType)

-				|| (lhsType.isBaseType() && BaseTypeBinding.isWidening(lhsType.id, rhsType.id)))

-				|| rhsType.isCompatibleWith(lhsType)) {

-			expression.computeConversion(scope, lhsType, rhsType);

-			checkAssignment(scope, lhsType, rhsType);

-			return this.resolvedType;

-		}

-		scope.problemReporter().typeMismatchError(rhsType, lhsType, expression);

-		return lhsType;

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveTypeExpecting(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding)

-	 */

-	public TypeBinding resolveTypeExpecting(

-			BlockScope scope,

-			TypeBinding expectedType) {

-

-		TypeBinding type = super.resolveTypeExpecting(scope, expectedType);

-		if (type == null) return null;

-		TypeBinding lhsType = this.resolvedType; 

-		TypeBinding rhsType = this.expression.resolvedType;

-		// signal possible accidental boolean assignment (instead of using '==' operator)

-		if (expectedType == BooleanBinding 

-				&& lhsType == BooleanBinding 

-				&& (this.lhs.bits & IsStrictlyAssignedMASK) != 0) {

-			scope.problemReporter().possibleAccidentalBooleanAssignment(this);

-		}

-		checkAssignment(scope, lhsType, rhsType);

-		return type;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		

-		if (visitor.visit(this, scope)) {

-			lhs.traverse(visitor, scope);

-			expression.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BinaryExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BinaryExpression.js
deleted file mode 100644
index 37ba3ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BinaryExpression.js
+++ /dev/null
@@ -1,1764 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class BinaryExpression extends OperatorExpression {

-

-	public Expression left, right;

-	public Constant optimizedBooleanConstant;

-

-	public BinaryExpression(Expression left, Expression right, int operator) {

-

-		this.left = left;

-		this.right = right;

-		this.bits |= operator << OperatorSHIFT; // encode operator

-		this.sourceStart = left.sourceStart;

-		this.sourceEnd = right.sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		return right

-			.analyseCode(

-				currentScope,

-				flowContext,

-				left.analyseCode(currentScope, flowContext, flowInfo).unconditionalInits())

-			.unconditionalInits();

-	}

-

-	public void computeConstant(BlockScope scope, int leftId, int rightId) {

-

-		//compute the constant when valid

-		if ((this.left.constant != Constant.NotAConstant)

-			&& (this.right.constant != Constant.NotAConstant)) {

-			try {

-				this.constant =

-					Constant.computeConstantOperation(

-						this.left.constant,

-						leftId,

-						(this.bits & OperatorMASK) >> OperatorSHIFT,

-						this.right.constant,

-						rightId);

-			} catch (ArithmeticException e) {

-				this.constant = Constant.NotAConstant;

-				// 1.2 no longer throws an exception at compile-time

-				//scope.problemReporter().compileTimeConstantThrowsArithmeticException(this);

-			}

-		} else {

-			this.constant = Constant.NotAConstant;

-			//add some work for the boolean operators & |  

-			this.optimizedBooleanConstant(

-				leftId,

-				(this.bits & OperatorMASK) >> OperatorSHIFT,

-				rightId);

-		}

-	}

-

-	public Constant optimizedBooleanConstant() {

-

-		return this.optimizedBooleanConstant == null ? this.constant : this.optimizedBooleanConstant;

-	}

-

-	/**

-	 * Code generation for a binary operation

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		Label falseLabel, endLabel;

-		if (constant != Constant.NotAConstant) {

-			if (valueRequired)

-				codeStream.generateConstant(constant, implicitConversion);

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		bits |= OnlyValueRequiredMASK;

-		switch ((bits & OperatorMASK) >> OperatorSHIFT) {

-			case PLUS :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_String :

-						codeStream.generateStringConcatenationAppend(currentScope, left, right);

-						if (!valueRequired)

-							codeStream.pop();

-						break;

-					case T_int :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.iadd();

-						break;

-					case T_long :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.ladd();

-						break;

-					case T_double :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.dadd();

-						break;

-					case T_float :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.fadd();

-						break;

-				}

-				break;

-			case MINUS :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.isub();

-						break;

-					case T_long :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.lsub();

-						break;

-					case T_double :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.dsub();

-						break;

-					case T_float :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.fsub();

-						break;

-				}

-				break;

-			case MULTIPLY :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.imul();

-						break;

-					case T_long :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.lmul();

-						break;

-					case T_double :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.dmul();

-						break;

-					case T_float :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.fmul();

-						break;

-				}

-				break;

-			case DIVIDE :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						left.generateCode(currentScope, codeStream, true);

-						right.generateCode(currentScope, codeStream, true);

-						codeStream.idiv();

-						if (!valueRequired)

-							codeStream.pop();

-						break;

-					case T_long :

-						left.generateCode(currentScope, codeStream, true);

-						right.generateCode(currentScope, codeStream, true);

-						codeStream.ldiv();

-						if (!valueRequired)

-							codeStream.pop2();

-						break;

-					case T_double :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.ddiv();

-						break;

-					case T_float :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.fdiv();

-						break;

-				}

-				break;

-			case REMAINDER :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						left.generateCode(currentScope, codeStream, true);

-						right.generateCode(currentScope, codeStream, true);

-						codeStream.irem();

-						if (!valueRequired)

-							codeStream.pop();

-						break;

-					case T_long :

-						left.generateCode(currentScope, codeStream, true);

-						right.generateCode(currentScope, codeStream, true);

-						codeStream.lrem();

-						if (!valueRequired)

-							codeStream.pop2();

-						break;

-					case T_double :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.drem();

-						break;

-					case T_float :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.frem();

-						break;

-				}

-				break;

-			case AND :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						// 0 & x

-						if ((left.constant != Constant.NotAConstant)

-							&& (left.constant.typeID() == T_int)

-							&& (left.constant.intValue() == 0)) {

-							right.generateCode(currentScope, codeStream, false);

-							if (valueRequired)

-								codeStream.iconst_0();

-						} else {

-							// x & 0

-							if ((right.constant != Constant.NotAConstant)

-								&& (right.constant.typeID() == T_int)

-								&& (right.constant.intValue() == 0)) {

-								left.generateCode(currentScope, codeStream, false);

-								if (valueRequired)

-									codeStream.iconst_0();

-							} else {

-								left.generateCode(currentScope, codeStream, valueRequired);

-								right.generateCode(currentScope, codeStream, valueRequired);

-								if (valueRequired)

-									codeStream.iand();

-							}

-						}

-						break;

-					case T_long :

-						// 0 & x

-						if ((left.constant != Constant.NotAConstant)

-							&& (left.constant.typeID() == T_long)

-							&& (left.constant.longValue() == 0L)) {

-							right.generateCode(currentScope, codeStream, false);

-							if (valueRequired)

-								codeStream.lconst_0();

-						} else {

-							// x & 0

-							if ((right.constant != Constant.NotAConstant)

-								&& (right.constant.typeID() == T_long)

-								&& (right.constant.longValue() == 0L)) {

-								left.generateCode(currentScope, codeStream, false);

-								if (valueRequired)

-									codeStream.lconst_0();

-							} else {

-								left.generateCode(currentScope, codeStream, valueRequired);

-								right.generateCode(currentScope, codeStream, valueRequired);

-								if (valueRequired)

-									codeStream.land();

-							}

-						}

-						break;

-					case T_boolean : // logical and

-						generateOptimizedLogicalAnd(

-							currentScope,

-							codeStream,

-							null,

-							(falseLabel = new Label(codeStream)),

-							valueRequired);

-						/* improving code gen for such a case: boolean b = i < 0 && false;

-						 * since the label has never been used, we have the inlined value on the stack. */

-						if (falseLabel.hasForwardReferences()) {

-							if (valueRequired) {

-								codeStream.iconst_1();

-								if ((bits & ValueForReturnMASK) != 0) {

-									codeStream.ireturn();

-									falseLabel.place();

-									codeStream.iconst_0();

-								} else {

-									codeStream.goto_(endLabel = new Label(codeStream));

-									codeStream.decrStackSize(1);

-									falseLabel.place();

-									codeStream.iconst_0();

-									endLabel.place();

-								}

-							} else {

-								falseLabel.place();

-							}

-						}

-				}

-				break;

-			case OR :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						// 0 | x

-						if ((left.constant != Constant.NotAConstant)

-							&& (left.constant.typeID() == T_int)

-							&& (left.constant.intValue() == 0)) {

-							right.generateCode(currentScope, codeStream, valueRequired);

-						} else {

-							// x | 0

-							if ((right.constant != Constant.NotAConstant)

-								&& (right.constant.typeID() == T_int)

-								&& (right.constant.intValue() == 0)) {

-								left.generateCode(currentScope, codeStream, valueRequired);

-							} else {

-								left.generateCode(currentScope, codeStream, valueRequired);

-								right.generateCode(currentScope, codeStream, valueRequired);

-								if (valueRequired)

-									codeStream.ior();

-							}

-						}

-						break;

-					case T_long :

-						// 0 | x

-						if ((left.constant != Constant.NotAConstant)

-							&& (left.constant.typeID() == T_long)

-							&& (left.constant.longValue() == 0L)) {

-							right.generateCode(currentScope, codeStream, valueRequired);

-						} else {

-							// x | 0

-							if ((right.constant != Constant.NotAConstant)

-								&& (right.constant.typeID() == T_long)

-								&& (right.constant.longValue() == 0L)) {

-								left.generateCode(currentScope, codeStream, valueRequired);

-							} else {

-								left.generateCode(currentScope, codeStream, valueRequired);

-								right.generateCode(currentScope, codeStream, valueRequired);

-								if (valueRequired)

-									codeStream.lor();

-							}

-						}

-						break;

-					case T_boolean : // logical or

-						generateOptimizedLogicalOr(

-							currentScope,

-							codeStream,

-							null,

-							(falseLabel = new Label(codeStream)),

-							valueRequired);

-						/* improving code gen for such a case: boolean b = i < 0 || true;

-						 * since the label has never been used, we have the inlined value on the stack. */

-						if (falseLabel.hasForwardReferences()) {

-							if (valueRequired) {

-								codeStream.iconst_1();

-								if ((bits & ValueForReturnMASK) != 0) {

-									codeStream.ireturn();

-									falseLabel.place();

-									codeStream.iconst_0();

-								} else {

-									codeStream.goto_(endLabel = new Label(codeStream));

-									codeStream.decrStackSize(1);

-									falseLabel.place();

-									codeStream.iconst_0();

-									endLabel.place();

-								}

-							} else {

-								falseLabel.place();

-							}

-						}

-				}

-				break;

-			case XOR :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						// 0 ^ x

-						if ((left.constant != Constant.NotAConstant)

-							&& (left.constant.typeID() == T_int)

-							&& (left.constant.intValue() == 0)) {

-							right.generateCode(currentScope, codeStream, valueRequired);

-						} else {

-							// x ^ 0

-							if ((right.constant != Constant.NotAConstant)

-								&& (right.constant.typeID() == T_int)

-								&& (right.constant.intValue() == 0)) {

-								left.generateCode(currentScope, codeStream, valueRequired);

-							} else {

-								left.generateCode(currentScope, codeStream, valueRequired);

-								right.generateCode(currentScope, codeStream, valueRequired);

-								if (valueRequired)

-									codeStream.ixor();

-							}

-						}

-						break;

-					case T_long :

-						// 0 ^ x

-						if ((left.constant != Constant.NotAConstant)

-							&& (left.constant.typeID() == T_long)

-							&& (left.constant.longValue() == 0L)) {

-							right.generateCode(currentScope, codeStream, valueRequired);

-						} else {

-							// x ^ 0

-							if ((right.constant != Constant.NotAConstant)

-								&& (right.constant.typeID() == T_long)

-								&& (right.constant.longValue() == 0L)) {

-								left.generateCode(currentScope, codeStream, valueRequired);

-							} else {

-								left.generateCode(currentScope, codeStream, valueRequired);

-								right.generateCode(currentScope, codeStream, valueRequired);

-								if (valueRequired)

-									codeStream.lxor();

-							}

-						}

-						break;

-					case T_boolean :

-						generateOptimizedLogicalXor(

-							currentScope,

-							codeStream,

-							null,

-							(falseLabel = new Label(codeStream)),

-							valueRequired);

-						/* improving code gen for such a case: boolean b = i < 0 ^ bool;

-						 * since the label has never been used, we have the inlined value on the stack. */

-						if (falseLabel.hasForwardReferences()) {

-							if (valueRequired) {

-								codeStream.iconst_1();

-								if ((bits & ValueForReturnMASK) != 0) {

-									codeStream.ireturn();

-									falseLabel.place();

-									codeStream.iconst_0();

-								} else {

-									codeStream.goto_(endLabel = new Label(codeStream));

-									codeStream.decrStackSize(1);

-									falseLabel.place();

-									codeStream.iconst_0();

-									endLabel.place();

-								}

-							} else {

-								falseLabel.place();

-							}

-						}

-				}

-				break;

-			case LEFT_SHIFT :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.ishl();

-						break;

-					case T_long :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.lshl();

-				}

-				break;

-			case RIGHT_SHIFT :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.ishr();

-						break;

-					case T_long :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.lshr();

-				}

-				break;

-			case UNSIGNED_RIGHT_SHIFT :

-				switch (bits & ReturnTypeIDMASK) {

-					case T_int :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.iushr();

-						break;

-					case T_long :

-						left.generateCode(currentScope, codeStream, valueRequired);

-						right.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired)

-							codeStream.lushr();

-				}

-				break;

-			case GREATER :

-				generateOptimizedGreaterThan(

-					currentScope,

-					codeStream,

-					null,

-					(falseLabel = new Label(codeStream)),

-					valueRequired);

-				if (valueRequired) {

-					codeStream.iconst_1();

-					if ((bits & ValueForReturnMASK) != 0) {

-						codeStream.ireturn();

-						falseLabel.place();

-						codeStream.iconst_0();

-					} else {

-						codeStream.goto_(endLabel = new Label(codeStream));

-						codeStream.decrStackSize(1);

-						falseLabel.place();

-						codeStream.iconst_0();

-						endLabel.place();

-					}

-				}

-				break;

-			case GREATER_EQUAL :

-				generateOptimizedGreaterThanOrEqual(

-					currentScope,

-					codeStream,

-					null,

-					(falseLabel = new Label(codeStream)),

-					valueRequired);

-				if (valueRequired) {

-					codeStream.iconst_1();

-					if ((bits & ValueForReturnMASK) != 0) {

-						codeStream.ireturn();

-						falseLabel.place();

-						codeStream.iconst_0();

-					} else {

-						codeStream.goto_(endLabel = new Label(codeStream));

-						codeStream.decrStackSize(1);

-						falseLabel.place();

-						codeStream.iconst_0();

-						endLabel.place();

-					}

-				}

-				break;

-			case LESS :

-				generateOptimizedLessThan(

-					currentScope,

-					codeStream,

-					null,

-					(falseLabel = new Label(codeStream)),

-					valueRequired);

-				if (valueRequired) {

-					codeStream.iconst_1();

-					if ((bits & ValueForReturnMASK) != 0) {

-						codeStream.ireturn();

-						falseLabel.place();

-						codeStream.iconst_0();

-					} else {

-						codeStream.goto_(endLabel = new Label(codeStream));

-						codeStream.decrStackSize(1);

-						falseLabel.place();

-						codeStream.iconst_0();

-						endLabel.place();

-					}

-				}

-				break;

-			case LESS_EQUAL :

-				generateOptimizedLessThanOrEqual(

-					currentScope,

-					codeStream,

-					null,

-					(falseLabel = new Label(codeStream)),

-					valueRequired);

-				if (valueRequired) {

-					codeStream.iconst_1();

-					if ((bits & ValueForReturnMASK) != 0) {

-						codeStream.ireturn();

-						falseLabel.place();

-						codeStream.iconst_0();

-					} else {

-						codeStream.goto_(endLabel = new Label(codeStream));

-						codeStream.decrStackSize(1);

-						falseLabel.place();

-						codeStream.iconst_0();

-						endLabel.place();

-					}

-				}

-		}

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(implicitConversion);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	/**

-	 * Boolean operator code generation

-	 *	Optimized operations are: <, <=, >, >=, &, |, ^

-	 */

-	public void generateOptimizedBoolean(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-

-		if ((constant != Constant.NotAConstant) && (constant.typeID() == T_boolean)) {

-			super.generateOptimizedBoolean(

-				currentScope,

-				codeStream,

-				trueLabel,

-				falseLabel,

-				valueRequired);

-			return;

-		}

-		switch ((bits & OperatorMASK) >> OperatorSHIFT) {

-			case LESS :

-				generateOptimizedLessThan(

-					currentScope,

-					codeStream,

-					trueLabel,

-					falseLabel,

-					valueRequired);

-				return;

-			case LESS_EQUAL :

-				generateOptimizedLessThanOrEqual(

-					currentScope,

-					codeStream,

-					trueLabel,

-					falseLabel,

-					valueRequired);

-				return;

-			case GREATER :

-				generateOptimizedGreaterThan(

-					currentScope,

-					codeStream,

-					trueLabel,

-					falseLabel,

-					valueRequired);

-				return;

-			case GREATER_EQUAL :

-				generateOptimizedGreaterThanOrEqual(

-					currentScope,

-					codeStream,

-					trueLabel,

-					falseLabel,

-					valueRequired);

-				return;

-			case AND :

-				generateOptimizedLogicalAnd(

-					currentScope,

-					codeStream,

-					trueLabel,

-					falseLabel,

-					valueRequired);

-				return;

-			case OR :

-				generateOptimizedLogicalOr(

-					currentScope,

-					codeStream,

-					trueLabel,

-					falseLabel,

-					valueRequired);

-				return;

-			case XOR :

-				generateOptimizedLogicalXor(

-					currentScope,

-					codeStream,

-					trueLabel,

-					falseLabel,

-					valueRequired);

-				return;

-		}

-		super.generateOptimizedBoolean(

-			currentScope,

-			codeStream,

-			trueLabel,

-			falseLabel,

-			valueRequired);

-	}

-

-	/**

-	 * Boolean generation for >

-	 */

-	public void generateOptimizedGreaterThan(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-

-		int promotedTypeID = left.implicitConversion >> 4;

-		// both sides got promoted in the same way

-		if (promotedTypeID == T_int) {

-			// 0 > x

-			if ((left.constant != NotAConstant) && (left.constant.intValue() == 0)) {

-				right.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicitly falling through the FALSE case

-							codeStream.iflt(trueLabel);

-						}

-					} else {

-						if (trueLabel == null) {

-							// implicitly falling through the TRUE case

-							codeStream.ifge(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				// reposition the endPC

-				codeStream.updateLastRecordedEndPC(codeStream.position);					

-				return;

-			}

-			// x > 0

-			if ((right.constant != NotAConstant) && (right.constant.intValue() == 0)) {

-				left.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicitly falling through the FALSE case

-							codeStream.ifgt(trueLabel);

-						}

-					} else {

-						if (trueLabel == null) {

-							// implicitly falling through the TRUE case

-							codeStream.ifle(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				// reposition the endPC

-				codeStream.updateLastRecordedEndPC(codeStream.position);					

-				return;

-			}

-		}

-		// default comparison

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// implicit falling through the FALSE case

-					switch (promotedTypeID) {

-						case T_int :

-							codeStream.if_icmpgt(trueLabel);

-							break;

-						case T_float :

-							codeStream.fcmpl();

-							codeStream.ifgt(trueLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.ifgt(trueLabel);

-							break;

-						case T_double :

-							codeStream.dcmpl();

-							codeStream.ifgt(trueLabel);

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-					return;

-				}

-			} else {

-				if (trueLabel == null) {

-					// implicit falling through the TRUE case

-					switch (promotedTypeID) {

-						case T_int :

-							codeStream.if_icmple(falseLabel);

-							break;

-						case T_float :

-							codeStream.fcmpl();

-							codeStream.ifle(falseLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.ifle(falseLabel);

-							break;

-						case T_double :

-							codeStream.dcmpl();

-							codeStream.ifle(falseLabel);

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-					return;

-				} else {

-					// no implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-	}

-

-	/**

-	 * Boolean generation for >=

-	 */

-	public void generateOptimizedGreaterThanOrEqual(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-

-		int promotedTypeID = left.implicitConversion >> 4;

-		// both sides got promoted in the same way

-		if (promotedTypeID == T_int) {

-			// 0 >= x

-			if ((left.constant != NotAConstant) && (left.constant.intValue() == 0)) {

-				right.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicitly falling through the FALSE case

-							codeStream.ifle(trueLabel);

-						}

-					} else {

-						if (trueLabel == null) {

-							// implicitly falling through the TRUE case

-							codeStream.ifgt(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				// reposition the endPC

-				codeStream.updateLastRecordedEndPC(codeStream.position);					

-				return;

-			}

-			// x >= 0

-			if ((right.constant != NotAConstant) && (right.constant.intValue() == 0)) {

-				left.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicitly falling through the FALSE case

-							codeStream.ifge(trueLabel);

-						}

-					} else {

-						if (trueLabel == null) {

-							// implicitly falling through the TRUE case

-							codeStream.iflt(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				// reposition the endPC

-				codeStream.updateLastRecordedEndPC(codeStream.position);					

-				return;

-			}

-		}

-		// default comparison

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// implicit falling through the FALSE case

-					switch (promotedTypeID) {

-						case T_int :

-							codeStream.if_icmpge(trueLabel);

-							break;

-						case T_float :

-							codeStream.fcmpl();

-							codeStream.ifge(trueLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.ifge(trueLabel);

-							break;

-						case T_double :

-							codeStream.dcmpl();

-							codeStream.ifge(trueLabel);

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-					return;

-				}

-			} else {

-				if (trueLabel == null) {

-					// implicit falling through the TRUE case

-					switch (promotedTypeID) {

-						case T_int :

-							codeStream.if_icmplt(falseLabel);

-							break;

-						case T_float :

-							codeStream.fcmpl();

-							codeStream.iflt(falseLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.iflt(falseLabel);

-							break;

-						case T_double :

-							codeStream.dcmpl();

-							codeStream.iflt(falseLabel);

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-					return;

-				} else {

-					// no implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-	}

-

-	/**

-	 * Boolean generation for <

-	 */

-	public void generateOptimizedLessThan(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-

-		int promotedTypeID = left.implicitConversion >> 4;

-		// both sides got promoted in the same way

-		if (promotedTypeID == T_int) {

-			// 0 < x

-			if ((left.constant != NotAConstant) && (left.constant.intValue() == 0)) {

-				right.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicitly falling through the FALSE case

-							codeStream.ifgt(trueLabel);

-						}

-					} else {

-						if (trueLabel == null) {

-							// implicitly falling through the TRUE case

-							codeStream.ifle(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				codeStream.updateLastRecordedEndPC(codeStream.position);

-				return;

-			}

-			// x < 0

-			if ((right.constant != NotAConstant) && (right.constant.intValue() == 0)) {

-				left.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicitly falling through the FALSE case

-							codeStream.iflt(trueLabel);

-						}

-					} else {

-						if (trueLabel == null) {

-							// implicitly falling through the TRUE case

-							codeStream.ifge(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				codeStream.updateLastRecordedEndPC(codeStream.position);

-				return;

-			}

-		}

-		// default comparison

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// implicit falling through the FALSE case

-					switch (promotedTypeID) {

-						case T_int :

-							codeStream.if_icmplt(trueLabel);

-							break;

-						case T_float :

-							codeStream.fcmpg();

-							codeStream.iflt(trueLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.iflt(trueLabel);

-							break;

-						case T_double :

-							codeStream.dcmpg();

-							codeStream.iflt(trueLabel);

-					}

-					codeStream.updateLastRecordedEndPC(codeStream.position);

-					return;

-				}

-			} else {

-				if (trueLabel == null) {

-					// implicit falling through the TRUE case

-					switch (promotedTypeID) {

-						case T_int :

-							codeStream.if_icmpge(falseLabel);

-							break;

-						case T_float :

-							codeStream.fcmpg();

-							codeStream.ifge(falseLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.ifge(falseLabel);

-							break;

-						case T_double :

-							codeStream.dcmpg();

-							codeStream.ifge(falseLabel);

-					}

-					codeStream.updateLastRecordedEndPC(codeStream.position);

-					return;

-				} else {

-					// no implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-	}

-	

-	/**

-	 * Boolean generation for <=

-	 */

-	public void generateOptimizedLessThanOrEqual(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-

-		int promotedTypeID = left.implicitConversion >> 4;

-		// both sides got promoted in the same way

-		if (promotedTypeID == T_int) {

-			// 0 <= x

-			if ((left.constant != NotAConstant) && (left.constant.intValue() == 0)) {

-				right.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicitly falling through the FALSE case

-							codeStream.ifge(trueLabel);

-						}

-					} else {

-						if (trueLabel == null) {

-							// implicitly falling through the TRUE case

-							codeStream.iflt(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				// reposition the endPC

-				codeStream.updateLastRecordedEndPC(codeStream.position);					

-				return;

-			}

-			// x <= 0

-			if ((right.constant != NotAConstant) && (right.constant.intValue() == 0)) {

-				left.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicitly falling through the FALSE case

-							codeStream.ifle(trueLabel);

-						}

-					} else {

-						if (trueLabel == null) {

-							// implicitly falling through the TRUE case

-							codeStream.ifgt(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				// reposition the endPC

-				codeStream.updateLastRecordedEndPC(codeStream.position);					

-				return;

-			}

-		}

-		// default comparison

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// implicit falling through the FALSE case

-					switch (promotedTypeID) {

-						case T_int :

-							codeStream.if_icmple(trueLabel);

-							break;

-						case T_float :

-							codeStream.fcmpg();

-							codeStream.ifle(trueLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.ifle(trueLabel);

-							break;

-						case T_double :

-							codeStream.dcmpg();

-							codeStream.ifle(trueLabel);

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-					return;

-				}

-			} else {

-				if (trueLabel == null) {

-					// implicit falling through the TRUE case

-					switch (promotedTypeID) {

-						case T_int :

-							codeStream.if_icmpgt(falseLabel);

-							break;

-						case T_float :

-							codeStream.fcmpg();

-							codeStream.ifgt(falseLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.ifgt(falseLabel);

-							break;

-						case T_double :

-							codeStream.dcmpg();

-							codeStream.ifgt(falseLabel);

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-					return;

-				} else {

-					// no implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-	}

-	

-	/**

-	 * Boolean generation for &

-	 */

-	public void generateOptimizedLogicalAnd(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-			

-		Constant condConst;

-		if ((left.implicitConversion & 0xF) == T_boolean) {

-			if ((condConst = left.optimizedBooleanConstant()) != NotAConstant) {

-				if (condConst.booleanValue() == true) {

-					// <something equivalent to true> & x

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					if ((bits & OnlyValueRequiredMASK) != 0) {

-						right.generateCode(currentScope, codeStream, valueRequired);

-					} else {

-						right.generateOptimizedBoolean(

-							currentScope,

-							codeStream,

-							trueLabel,

-							falseLabel,

-							valueRequired);

-					}

-				} else {

-					// <something equivalent to false> & x

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					Label internalTrueLabel = new Label(codeStream);

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					internalTrueLabel.place();

-					if (valueRequired) {

-						if ((bits & OnlyValueRequiredMASK) != 0) {

-							codeStream.iconst_0();

-						} else {

-							if (falseLabel != null) {

-								// implicit falling through the TRUE case

-								codeStream.goto_(falseLabel);

-							}

-						}

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-				}

-				return;

-			}

-			if ((condConst = right.optimizedBooleanConstant()) != NotAConstant) {

-				if (condConst.booleanValue() == true) {

-					// x & <something equivalent to true>

-					if ((bits & OnlyValueRequiredMASK) != 0) {

-						left.generateCode(currentScope, codeStream, valueRequired);

-					} else {

-						left.generateOptimizedBoolean(

-							currentScope,

-							codeStream,

-							trueLabel,

-							falseLabel,

-							valueRequired);

-					}

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-				} else {

-					// x & <something equivalent to false>

-					Label internalTrueLabel = new Label(codeStream);

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						internalTrueLabel,

-						falseLabel,

-						false);

-					internalTrueLabel.place();

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					if (valueRequired) {

-						if ((bits & OnlyValueRequiredMASK) != 0) {

-							codeStream.iconst_0();

-						} else {

-							if (falseLabel != null) {

-								// implicit falling through the TRUE case

-								codeStream.goto_(falseLabel);

-							}

-						}

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-				}

-				return;

-			}

-		}

-		// default case

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			codeStream.iand();

-			if ((bits & OnlyValueRequiredMASK) == 0) {

-				if (falseLabel == null) {

-					if (trueLabel != null) {

-						// implicit falling through the FALSE case

-						codeStream.ifne(trueLabel);

-					}

-				} else {

-					// implicit falling through the TRUE case

-					if (trueLabel == null) {

-						codeStream.ifeq(falseLabel);

-					} else {

-						// no implicit fall through TRUE/FALSE --> should never occur

-					}

-				}

-			}

-		}

-		// reposition the endPC

-		codeStream.updateLastRecordedEndPC(codeStream.position);					

-	}

-	

-	/**

-	 * Boolean generation for |

-	 */

-	public void generateOptimizedLogicalOr(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-			

-		Constant condConst;

-		if ((left.implicitConversion & 0xF) == T_boolean) {

-			if ((condConst = left.optimizedBooleanConstant()) != NotAConstant) {

-				if (condConst.booleanValue() == true) {

-					// <something equivalent to true> | x

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					Label internalFalseLabel = new Label(codeStream);

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						internalFalseLabel,

-						false);

-					internalFalseLabel.place();

-					if (valueRequired) {

-						if ((bits & OnlyValueRequiredMASK) != 0) {

-							codeStream.iconst_1();

-						} else {

-							if (trueLabel != null) {

-								codeStream.goto_(trueLabel);

-							}

-						}

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-				} else {

-					// <something equivalent to false> | x

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					if ((bits & OnlyValueRequiredMASK) != 0) {

-						right.generateCode(currentScope, codeStream, valueRequired);

-					} else {

-						right.generateOptimizedBoolean(

-							currentScope,

-							codeStream,

-							trueLabel,

-							falseLabel,

-							valueRequired);

-					}

-				}

-				return;

-			}

-			if ((condConst = right.optimizedBooleanConstant()) != NotAConstant) {

-				if (condConst.booleanValue() == true) {

-					// x | <something equivalent to true>

-					Label internalFalseLabel = new Label(codeStream);

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						internalFalseLabel,

-						false);

-					internalFalseLabel.place();

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					if (valueRequired) {

-						if ((bits & OnlyValueRequiredMASK) != 0) {

-							codeStream.iconst_1();

-						} else {

-							if (trueLabel != null) {

-								codeStream.goto_(trueLabel);

-							}

-						}

-					}

-					// reposition the endPC

-					codeStream.updateLastRecordedEndPC(codeStream.position);					

-				} else {

-					// x | <something equivalent to false>

-					if ((bits & OnlyValueRequiredMASK) != 0) {

-						left.generateCode(currentScope, codeStream, valueRequired);

-					} else {

-						left.generateOptimizedBoolean(

-							currentScope,

-							codeStream,

-							trueLabel,

-							falseLabel,

-							valueRequired);

-					}

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-				}

-				return;

-			}

-		}

-		// default case

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			codeStream.ior();

-			if ((bits & OnlyValueRequiredMASK) == 0) {

-				if (falseLabel == null) {

-					if (trueLabel != null) {

-						// implicit falling through the FALSE case

-						codeStream.ifne(trueLabel);

-					}

-				} else {

-					// implicit falling through the TRUE case

-					if (trueLabel == null) {

-						codeStream.ifeq(falseLabel);

-					} else {

-						// no implicit fall through TRUE/FALSE --> should never occur

-					}

-				}

-			}

-		}

-		// reposition the endPC

-		codeStream.updateLastRecordedEndPC(codeStream.position);					

-	}

-	

-	/**

-	 * Boolean generation for ^

-	 */

-	public void generateOptimizedLogicalXor(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-			

-		Constant condConst;

-		if ((left.implicitConversion & 0xF) == T_boolean) {

-			if ((condConst = left.optimizedBooleanConstant()) != NotAConstant) {

-				if (condConst.booleanValue() == true) {

-					// <something equivalent to true> ^ x

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						falseLabel,

-						trueLabel,

-						valueRequired);

-				} else {

-					// <something equivalent to false> ^ x

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-					if ((bits & OnlyValueRequiredMASK) != 0) {

-						right.generateCode(currentScope, codeStream, valueRequired);

-					} else {

-						right.generateOptimizedBoolean(

-							currentScope,

-							codeStream,

-							trueLabel,

-							falseLabel,

-							valueRequired);

-					}

-				}

-				return;

-			}

-			if ((condConst = right.optimizedBooleanConstant()) != NotAConstant) {

-				if (condConst.booleanValue() == true) {

-					// x ^ <something equivalent to true>

-					left.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						falseLabel,

-						trueLabel,

-						valueRequired);

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-				} else {

-					// x ^ <something equivalent to false>

-					if ((bits & OnlyValueRequiredMASK) != 0) {

-						left.generateCode(currentScope, codeStream, valueRequired);

-					} else {

-						left.generateOptimizedBoolean(

-							currentScope,

-							codeStream,

-							trueLabel,

-							falseLabel,

-							valueRequired);

-					}

-					right.generateOptimizedBoolean(

-						currentScope,

-						codeStream,

-						trueLabel,

-						falseLabel,

-						false);

-				}

-				return;

-			}

-		}

-		// default case

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			codeStream.ixor();

-			if ((bits & OnlyValueRequiredMASK) == 0) {

-				if (falseLabel == null) {

-					if (trueLabel != null) {

-						// implicit falling through the FALSE case

-						codeStream.ifne(trueLabel);

-					}

-				} else {

-					// implicit falling through the TRUE case

-					if (trueLabel == null) {

-						codeStream.ifeq(falseLabel);

-					} else {

-						// no implicit fall through TRUE/FALSE --> should never occur

-					}

-				}

-			}

-		}

-		// reposition the endPC

-		codeStream.updateLastRecordedEndPC(codeStream.position);					

-	}

-	

-	public void generateOptimizedStringConcatenation(

-		BlockScope blockScope,

-		CodeStream codeStream,

-		int typeID) {

-			

-		/* In the case trying to make a string concatenation, there is no need to create a new

-		 * string buffer, thus use a lower-level API for code generation involving only the

-		 * appending of arguments to the existing StringBuffer

-		 */

-

-		if ((((bits & OperatorMASK) >> OperatorSHIFT) == PLUS)

-			&& ((bits & ReturnTypeIDMASK) == T_String)) {

-			if (constant != NotAConstant) {

-				codeStream.generateConstant(constant, implicitConversion);

-				codeStream.invokeStringConcatenationAppendForType(implicitConversion & 0xF);

-			} else {

-				int pc = codeStream.position;

-				left.generateOptimizedStringConcatenation(

-					blockScope,

-					codeStream,

-					left.implicitConversion & 0xF);

-				codeStream.recordPositionsFrom(pc, left.sourceStart);

-				pc = codeStream.position;

-				right.generateOptimizedStringConcatenation(

-					blockScope,

-					codeStream,

-					right.implicitConversion & 0xF);

-				codeStream.recordPositionsFrom(pc, right.sourceStart);

-			}

-		} else {

-			super.generateOptimizedStringConcatenation(blockScope, codeStream, typeID);

-		}

-	}

-	

-	public void generateOptimizedStringConcatenationCreation(

-		BlockScope blockScope,

-		CodeStream codeStream,

-		int typeID) {

-			

-		/* In the case trying to make a string concatenation, there is no need to create a new

-		 * string buffer, thus use a lower-level API for code generation involving only the 

-		 * appending of arguments to the existing StringBuffer

-		 */

-

-		if ((((bits & OperatorMASK) >> OperatorSHIFT) == PLUS)

-			&& ((bits & ReturnTypeIDMASK) == T_String)) {

-			if (constant != NotAConstant) {

-				codeStream.newStringContatenation(); // new: java.lang.StringBuffer

-				codeStream.dup();

-				codeStream.ldc(constant.stringValue());

-				codeStream.invokeStringConcatenationStringConstructor();

-				// invokespecial: java.lang.StringBuffer.<init>(Ljava.lang.String;)V

-			} else {

-				int pc = codeStream.position;

-				left.generateOptimizedStringConcatenationCreation(

-					blockScope,

-					codeStream,

-					left.implicitConversion & 0xF);

-				codeStream.recordPositionsFrom(pc, left.sourceStart);

-				pc = codeStream.position;

-				right.generateOptimizedStringConcatenation(

-					blockScope,

-					codeStream,

-					right.implicitConversion & 0xF);

-				codeStream.recordPositionsFrom(pc, right.sourceStart);

-			}

-		} else {

-			super.generateOptimizedStringConcatenationCreation(blockScope, codeStream, typeID);

-		}

-	}

-	

-	public boolean isCompactableOperation() {

-		

-		return true;

-	}

-	

-	public void optimizedBooleanConstant(int leftId, int operator, int rightId) {

-

-		switch (operator) {

-			case AND :

-				if ((leftId != T_boolean) || (rightId != T_boolean))

-					return;

-			case AND_AND :

-				Constant cst;

-				if ((cst = left.optimizedBooleanConstant()) != NotAConstant) {

-					if (cst.booleanValue() == false) { // left is equivalent to false

-						optimizedBooleanConstant = cst; // constant(false)

-						return;

-					} else { //left is equivalent to true

-						if ((cst = right.optimizedBooleanConstant()) != NotAConstant) {

-							optimizedBooleanConstant = cst;

-							// the conditional result is equivalent to the right conditional value

-						}

-						return;

-					}

-				}

-				if ((cst = right.optimizedBooleanConstant()) != NotAConstant) {

-					if (cst.booleanValue() == false) { // right is equivalent to false

-						optimizedBooleanConstant = cst; // constant(false)

-					}

-				}

-				return;

-			case OR :

-				if ((leftId != T_boolean) || (rightId != T_boolean))

-					return;

-			case OR_OR :

-				if ((cst = left.optimizedBooleanConstant()) != NotAConstant) {

-					if (cst.booleanValue() == true) { // left is equivalent to true

-						optimizedBooleanConstant = cst; // constant(true)

-						return;

-					} else { //left is equivalent to false

-						if ((cst = right.optimizedBooleanConstant()) != NotAConstant) {

-							optimizedBooleanConstant = cst;

-						}

-						return;

-					}

-				}

-				if ((cst = right.optimizedBooleanConstant()) != NotAConstant) {

-					if (cst.booleanValue() == true) { // right is equivalent to true

-						optimizedBooleanConstant = cst; // constant(true)

-					}

-				}

-		}

-	}

-

-	public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output) {

-

-		left.printExpression(indent, output).append(' ').append(operatorToString()).append(' ');

-		return right.printExpression(0, output);

-	}

-		

-	public TypeBinding resolveType(BlockScope scope) {

-

-		boolean leftIsCast, rightIsCast;

-		if ((leftIsCast = left instanceof CastExpression) == true) left.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-		TypeBinding leftType = left.resolveType(scope);

-

-		if ((rightIsCast = right instanceof CastExpression) == true) right.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-		TypeBinding rightType = right.resolveType(scope);

-

-		// use the id of the type to navigate into the table

-		if (leftType == null || rightType == null) {

-			constant = Constant.NotAConstant;

-			return null;

-		}

-		int leftTypeId = leftType.id;

-		int rightTypeId = rightType.id;

-		if (leftTypeId > 15

-			|| rightTypeId > 15) { // must convert String + Object || Object + String

-			if (leftTypeId == T_String) {

-				rightTypeId = T_Object;

-			} else if (rightTypeId == T_String) {

-				leftTypeId = T_Object;

-			} else {

-				constant = Constant.NotAConstant;

-				scope.problemReporter().invalidOperator(this, leftType, rightType);

-				return null;

-			}

-		}

-		if (((bits & OperatorMASK) >> OperatorSHIFT) == PLUS) {

-			if (leftTypeId == T_String) {

-				this.left.computeConversion(scope, leftType, leftType);

-				if (rightType.isArrayType() && ((ArrayBinding) rightType).elementsType() == CharBinding) {

-					scope.problemReporter().signalNoImplicitStringConversionForCharArrayExpression(right);

-				}

-			}

-			if (rightTypeId == T_String) {

-				this.right.computeConversion(scope, rightType, rightType);

-				if (leftType.isArrayType() && ((ArrayBinding) leftType).elementsType() == CharBinding) {

-					scope.problemReporter().signalNoImplicitStringConversionForCharArrayExpression(left);

-				}

-			}

-		}

-

-		// the code is an int

-		// (cast)  left   Op (cast)  right --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       <<0

-

-		// Don't test for result = 0. If it is zero, some more work is done.

-		// On the one hand when it is not zero (correct code) we avoid doing the test	

-		int operator = (bits & OperatorMASK) >> OperatorSHIFT;

-		int operatorSignature = OperatorSignatures[operator][(leftTypeId << 4) + rightTypeId];

-		left.implicitConversion = operatorSignature >>> 12;

-		right.implicitConversion = (operatorSignature >>> 4) & 0x000FF;

-

-		bits |= operatorSignature & 0xF;

-		switch (operatorSignature & 0xF) { // record the current ReturnTypeID

-			// only switch on possible result type.....

-			case T_boolean :

-				this.resolvedType = BooleanBinding;

-				break;

-			case T_byte :

-				this.resolvedType = ByteBinding;

-				break;

-			case T_char :

-				this.resolvedType = CharBinding;

-				break;

-			case T_double :

-				this.resolvedType = DoubleBinding;

-				break;

-			case T_float :

-				this.resolvedType = FloatBinding;

-				break;

-			case T_int :

-				this.resolvedType = IntBinding;

-				break;

-			case T_long :

-				this.resolvedType = LongBinding;

-				break;

-			case T_String :

-				this.resolvedType = scope.getJavaLangString();

-				break;

-			default : //error........

-				constant = Constant.NotAConstant;

-				scope.problemReporter().invalidOperator(this, leftType, rightType);

-				return null;

-		}

-

-		// check need for operand cast

-		if (leftIsCast || rightIsCast) {

-			CastExpression.checkNeedForArgumentCasts(scope, operator, operatorSignature, left, leftTypeId, leftIsCast, right, rightTypeId, rightIsCast);

-		}

-		// compute the constant when valid

-		computeConstant(scope, leftTypeId, rightTypeId);

-		return this.resolvedType;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		

-		if (visitor.visit(this, scope)) {

-			left.traverse(visitor, scope);

-			right.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Block.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Block.js
deleted file mode 100644
index c3adc8d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Block.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class Block extends Statement {

-	

-	public Statement[] statements;

-	public int explicitDeclarations;

-	// the number of explicit declaration , used to create scope

-	public BlockScope scope;

-	

-	public Block(int explicitDeclarations) {

-		this.explicitDeclarations = explicitDeclarations;

-	}

-	

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// empty block

-		if (statements == null)	return flowInfo;

-		boolean didAlreadyComplain = false;

-		for (int i = 0, max = statements.length; i < max; i++) {

-			Statement stat = statements[i];

-			if (!stat.complainIfUnreachable(flowInfo, scope, didAlreadyComplain)) {

-				flowInfo = stat.analyseCode(scope, flowContext, flowInfo);

-			} else {

-				didAlreadyComplain = true;

-			}

-		}

-		return flowInfo;

-	}

-	/**

-	 * Code generation for a block

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-		if (statements != null) {

-			for (int i = 0, max = statements.length; i < max; i++) {

-				statements[i].generateCode(scope, codeStream);

-			}

-		} // for local variable debug attributes

-		if (scope != currentScope) { // was really associated with its own scope

-			codeStream.exitUserScope(scope);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public boolean isEmptyBlock() {

-

-		return statements == null;

-	}

-

-	public StringBuffer printBody(int indent, StringBuffer output) {

-

-		if (this.statements == null) return output;

-		for (int i = 0; i < statements.length; i++) {

-			statements[i].printStatement(indent + 1, output);

-			output.append('\n'); 

-		}

-		return output;

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		printIndent(indent, output);

-		output.append("{\n"); //$NON-NLS-1$

-		printBody(indent, output);

-		return printIndent(indent, output).append('}');

-	}

-

-	public void resolve(BlockScope upperScope) {

-

-		if ((this.bits & UndocumentedEmptyBlockMASK) != 0) {

-			upperScope.problemReporter().undocumentedEmptyBlock(this.sourceStart, this.sourceEnd);

-		}

-		if (statements != null) {

-			scope =

-				explicitDeclarations == 0

-					? upperScope

-					: new BlockScope(upperScope, explicitDeclarations);

-			for (int i = 0, length = statements.length; i < length; i++) {

-				statements[i].resolve(scope);

-			}

-		}

-	}

-

-	public void resolveUsing(BlockScope givenScope) {

-

-		if ((this.bits & UndocumentedEmptyBlockMASK) != 0) {

-			givenScope.problemReporter().undocumentedEmptyBlock(this.sourceStart, this.sourceEnd);

-		}

-		// this optimized resolve(...) is sent only on none empty blocks

-		scope = givenScope;

-		if (statements != null) {

-			for (int i = 0, length = statements.length; i < length; i++) {

-				statements[i].resolve(scope);

-			}

-		}

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			if (statements != null) {

-				for (int i = 0, length = statements.length; i < length; i++)

-					statements[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, blockScope);

-	}

-	

-	/**

-	 * Dispatch the call on its last statement.

-	 */

-	public void branchChainTo(Label label) {

-		 if (this.statements != null) {

-		 	this.statements[statements.length - 1].branchChainTo(label);

-		 }

-	}

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BranchStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BranchStatement.js
deleted file mode 100644
index b663f17..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BranchStatement.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public abstract class BranchStatement extends Statement {

-	public char[] label;

-	public Label targetLabel;

-	public SubRoutineStatement[] subroutines;

-/**

- * BranchStatement constructor comment.

- */

-public BranchStatement(char[] l, int s,int e) {

-	label = l ;

-	sourceStart = s;

-	sourceEnd = e;

-}

-/**

- * Branch code generation

- *

- *   generate the finallyInvocationSequence.

- */

-public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-	if ((bits & IsReachableMASK) == 0) {

-		return;

-	}

-	int pc = codeStream.position;

-

-	// generation of code responsible for invoking the finally 

-	// blocks in sequence

-	if (subroutines != null){

-		for (int i = 0, max = subroutines.length; i < max; i++){

-			SubRoutineStatement sub = subroutines[i];

-			sub.generateSubRoutineInvocation(currentScope, codeStream);

-			if (sub.isSubRoutineEscaping()) {

-					codeStream.recordPositionsFrom(pc, this.sourceStart);

-					SubRoutineStatement.reenterExceptionHandlers(subroutines, i, codeStream);

-					return;

-			}

-			sub.exitAnyExceptionHandler();

-		}

-	}

-	codeStream.goto_(targetLabel);

-	codeStream.recordPositionsFrom(pc, this.sourceStart);

-	SubRoutineStatement.reenterExceptionHandlers(subroutines, -1, codeStream);

-}

-public void resolve(BlockScope scope) {

-	// nothing to do during name resolution

-}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BreakStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BreakStatement.js
deleted file mode 100644
index 8d6cb72..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/BreakStatement.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class BreakStatement extends BranchStatement {

-	

-	public BreakStatement(char[] label, int sourceStart, int e) {

-		super(label, sourceStart, e);

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// here requires to generate a sequence of finally blocks invocations depending corresponding

-		// to each of the traversed try statements, so that execution will terminate properly.

-

-		// lookup the label, this should answer the returnContext

-		FlowContext targetContext = (label == null) 

-			? flowContext.getTargetContextForDefaultBreak()

-			: flowContext.getTargetContextForBreakLabel(label);

-

-		if (targetContext == null) {

-			if (label == null) {

-				currentScope.problemReporter().invalidBreak(this);

-			} else {

-				currentScope.problemReporter().undefinedLabel(this); 

-			}

-			return flowInfo; // pretend it did not break since no actual target

-		}

-		

-		targetLabel = targetContext.breakLabel();

-		FlowContext traversedContext = flowContext;

-		int subIndex = 0, maxSub = 5;

-		subroutines = new SubRoutineStatement[maxSub];

-		

-		do {

-			SubRoutineStatement sub;

-			if ((sub = traversedContext.subRoutine()) != null) {

-				if (subIndex == maxSub) {

-					System.arraycopy(subroutines, 0, (subroutines = new SubRoutineStatement[maxSub*=2]), 0, subIndex); // grow

-				}

-				subroutines[subIndex++] = sub;

-				if (sub.isSubRoutineEscaping()) {

-					break;

-				}

-			}

-			traversedContext.recordReturnFrom(flowInfo.unconditionalInits());

-

-			ASTNode node;

-			if ((node = traversedContext.associatedNode) instanceof TryStatement) {

-				TryStatement tryStatement = (TryStatement) node;

-				flowInfo.addInitializationsFrom(tryStatement.subRoutineInits); // collect inits			

-			} else if (traversedContext == targetContext) {

-				// only record break info once accumulated through subroutines, and only against target context

-				targetContext.recordBreakFrom(flowInfo);

-				break;

-			}

-		} while ((traversedContext = traversedContext.parent) != null);

-		

-		// resize subroutines

-		if (subIndex != maxSub) {

-			System.arraycopy(subroutines, 0, (subroutines = new SubRoutineStatement[subIndex]), 0, subIndex);

-		}

-		return FlowInfo.DEAD_END;

-	}

-	

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-

-		printIndent(tab, output).append("break "); //$NON-NLS-1$

-		if (label != null) output.append(label);

-		return output.append(';');

-	}

-	

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockscope) {

-

-		visitor.visit(this, blockscope);

-		visitor.endVisit(this, blockscope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CaseStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CaseStatement.js
deleted file mode 100644
index d9ab25b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CaseStatement.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class CaseStatement extends Statement {

-	

-	public Expression constantExpression;

-	public CaseLabel targetLabel;

-	public CaseStatement(Expression constantExpression, int sourceEnd, int sourceStart) {

-		this.constantExpression = constantExpression;

-		this.sourceEnd = sourceEnd;

-		this.sourceStart = sourceStart;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		if (constantExpression != null) {

-			if (constantExpression.constant == NotAConstant) {

-				currentScope.problemReporter().caseExpressionMustBeConstant(constantExpression);

-			}

-			this.constantExpression.analyseCode(currentScope, flowContext, flowInfo);

-		}

-		return flowInfo;

-	}

-

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-

-		printIndent(tab, output);

-		if (constantExpression == null) {

-			output.append("default : "); //$NON-NLS-1$

-		} else {

-			output.append("case "); //$NON-NLS-1$

-			constantExpression.printExpression(0, output).append(" : "); //$NON-NLS-1$

-		}

-		return output.append(';');

-	}

-	

-	/**

-	 * Case code generation

-	 *

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-		targetLabel.place();

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	/**

-	 * No-op : should use resolveCase(...) instead.

-	 */

-	public void resolve(BlockScope scope) {

-		// no-op : should use resolveCase(...) instead.

-	}

-

-	public Constant resolveCase(

-		BlockScope scope,

-		TypeBinding switchType,

-		SwitchStatement switchStatement) {

-

-	    scope.switchCase = this; // record entering in a switch case block

-	    

-		if (constantExpression == null) {

-			// remember the default case into the associated switch statement

-			if (switchStatement.defaultCase != null)

-				scope.problemReporter().duplicateDefaultCase(this);

-	

-			// on error the last default will be the selected one ...	

-			switchStatement.defaultCase = this;

-			return null;

-		}

-		// add into the collection of cases of the associated switch statement

-		switchStatement.cases[switchStatement.caseCount++] = this;

-		TypeBinding caseType = constantExpression.resolveType(scope);

-		if (caseType == null || switchType == null) return null;

-		if (constantExpression.isConstantValueOfTypeAssignableToType(caseType, switchType))

-			return constantExpression.constant;

-		if (caseType.isCompatibleWith(switchType))

-			return constantExpression.constant;

-		scope.problemReporter().typeMismatchError(caseType, switchType, constantExpression);

-		return null;

-	}

-

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			if (constantExpression != null) constantExpression.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CastExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CastExpression.js
deleted file mode 100644
index 64a1d99..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CastExpression.js
+++ /dev/null
@@ -1,420 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Nick Teryaev - fix for bug (https://bugs.eclipse.org/bugs/show_bug.cgi?id=40752)

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-

-public class CastExpression extends Expression {

-

-	public Expression expression;

-	public Expression type;

-	public TypeBinding expectedType; // when assignment conversion to a given expected type: String s = (String) t;

-	

-	//expression.implicitConversion holds the cast for baseType casting 

-	public CastExpression(Expression expression, Expression type) {

-		this.expression = expression;

-		this.type = type;

-

-		//due to the fact an expression may start with ( and that a cast also start with (

-		//the field is an expression....it can be a TypeReference OR a NameReference Or

-		//an expression <--this last one is invalid.......

-

-		//if (type instanceof TypeReference )

-		//	flag = IsTypeReference ;

-		//else

-		//	if (type instanceof NameReference)

-		//		flag = IsNameReference ;

-		//	else

-		//		flag = IsExpression ;

-

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		return expression

-			.analyseCode(currentScope, flowContext, flowInfo)

-			.unconditionalInits();

-	}

-

-	/**

-	 * Casting an enclosing instance will considered as useful if removing it would actually bind to a different type

-	 */

-	public static void checkNeedForEnclosingInstanceCast(BlockScope scope, Expression enclosingInstance, TypeBinding enclosingInstanceType, TypeBinding memberType) {

-	

-		if (scope.environment().options.getSeverity(CompilerOptions.UnnecessaryTypeCheck) == ProblemSeverities.Ignore) return;

-		

-		TypeBinding castedExpressionType = ((CastExpression)enclosingInstance).expression.resolvedType;

-		if (castedExpressionType == null) return; // cannot do better

-		// obvious identity cast

-		if (castedExpressionType == enclosingInstanceType) { 

-			scope.problemReporter().unnecessaryCast((CastExpression)enclosingInstance);

-		} else if (castedExpressionType == NullBinding){

-			return; // tolerate null enclosing instance cast

-		} else {

-			TypeBinding alternateEnclosingInstanceType = castedExpressionType; 

-			if (castedExpressionType.isBaseType() || castedExpressionType.isArrayType()) return; // error case

-			if (memberType == scope.getMemberType(memberType.sourceName(), (ReferenceBinding) alternateEnclosingInstanceType)) {

-				scope.problemReporter().unnecessaryCast((CastExpression)enclosingInstance);

-			}

-		}

-	}

-

-	/**

-	 * Only complain for identity cast, since other type of casts may be useful: e.g.  ~((~(long) 0) << 32)  is different from: ~((~0) << 32) 

-	 */

-	public static void checkNeedForArgumentCast(BlockScope scope, int operator, int operatorSignature, Expression expression, int expressionTypeId) {

-	

-		if (scope.environment().options.getSeverity(CompilerOptions.UnnecessaryTypeCheck) == ProblemSeverities.Ignore) return;

-	

-		// check need for left operand cast

-		int alternateLeftTypeId = expressionTypeId;

-		if ((expression.bits & UnnecessaryCastMask) == 0 && expression.resolvedType.isBaseType()) {

-			// narrowing conversion on base type may change value, thus necessary

-			return;

-		} else  {

-			TypeBinding alternateLeftType = ((CastExpression)expression).expression.resolvedType;

-			if (alternateLeftType == null) return; // cannot do better

-			if ((alternateLeftTypeId = alternateLeftType.id) == expressionTypeId) { // obvious identity cast

-				scope.problemReporter().unnecessaryCast((CastExpression)expression); 

-				return;

-			} else if (alternateLeftTypeId == T_null) {

-				alternateLeftTypeId = expressionTypeId;  // tolerate null argument cast

-				return;

-			}

-		}

-/*		tolerate widening cast in unary expressions, as may be used when combined in binary expressions (41680)

-		int alternateOperatorSignature = OperatorExpression.OperatorSignatures[operator][(alternateLeftTypeId << 4) + alternateLeftTypeId];

-		// (cast)  left   Op (cast)  right --> result

-		//  1111   0000       1111   0000     1111

-		//  <<16   <<12       <<8    <<4       <<0

-		final int CompareMASK = (0xF<<16) + (0xF<<8) + 0xF; // mask hiding compile-time types

-		if ((operatorSignature & CompareMASK) == (alternateOperatorSignature & CompareMASK)) { // same promotions and result

-			scope.problemReporter().unnecessaryCastForArgument((CastExpression)expression,  TypeBinding.wellKnownType(scope, expression.implicitConversion >> 4)); 

-		}

-*/		

-	}

-		

-	/**

-	 * Cast expressions will considered as useful if removing them all would actually bind to a different method

-	 * (no fine grain analysis on per casted argument basis, simply separate widening cast from narrowing ones)

-	 */

-	public static void checkNeedForArgumentCasts(BlockScope scope, Expression receiver, TypeBinding receiverType, MethodBinding binding, Expression[] arguments, TypeBinding[] argumentTypes, final InvocationSite invocationSite) {

-	

-		if (scope.environment().options.getSeverity(CompilerOptions.UnnecessaryTypeCheck) == ProblemSeverities.Ignore) return;

-		

-		int length = argumentTypes.length;

-

-		// iterate over arguments, and retrieve original argument types (before cast)

-		TypeBinding[] rawArgumentTypes = argumentTypes;

-		for (int i = 0; i < length; i++) {

-			Expression argument = arguments[i];

-			if (argument instanceof CastExpression) {

- 				// narrowing conversion on base type may change value, thus necessary

-				if ((argument.bits & UnnecessaryCastMask) == 0 && argument.resolvedType.isBaseType()) {

-					continue;

-				}		

-				TypeBinding castedExpressionType = ((CastExpression)argument).expression.resolvedType;

-				if (castedExpressionType == null) return; // cannot do better

-				// obvious identity cast

-				if (castedExpressionType == argumentTypes[i]) { 

-					scope.problemReporter().unnecessaryCast((CastExpression)argument);

-				} else if (castedExpressionType == NullBinding){

-					continue; // tolerate null argument cast

-				} else {

-					if (rawArgumentTypes == argumentTypes) {

-						System.arraycopy(rawArgumentTypes, 0, rawArgumentTypes = new TypeBinding[length], 0, length);

-					}

-					// retain original argument type

-					rawArgumentTypes[i] = castedExpressionType; 

-				}

-			}				

-		}

-		// perform alternate lookup with original types

-		if (rawArgumentTypes != argumentTypes) {

-			checkAlternateBinding(scope, receiver, receiverType, binding, arguments, argumentTypes, rawArgumentTypes, invocationSite);

-		}

-	}

-

-	/**

-	 * Check binary operator casted arguments 

-	 */

-	public static void checkNeedForArgumentCasts(BlockScope scope, int operator, int operatorSignature, Expression left, int leftTypeId, boolean leftIsCast, Expression right, int rightTypeId, boolean rightIsCast) {

-

-		if (scope.environment().options.getSeverity(CompilerOptions.UnnecessaryTypeCheck) == ProblemSeverities.Ignore) return;

-

-		// check need for left operand cast

-		int alternateLeftTypeId = leftTypeId;

-		if (leftIsCast) {

-			if ((left.bits & UnnecessaryCastMask) == 0 && left.resolvedType.isBaseType()) {

- 				// narrowing conversion on base type may change value, thus necessary

- 				leftIsCast = false;

-			} else  {

-				TypeBinding alternateLeftType = ((CastExpression)left).expression.resolvedType;

-				if (alternateLeftType == null) return; // cannot do better

-				if ((alternateLeftTypeId = alternateLeftType.id) == leftTypeId) { // obvious identity cast

-					scope.problemReporter().unnecessaryCast((CastExpression)left); 

-					leftIsCast = false;

-				} else if (alternateLeftTypeId == T_null) {

-					alternateLeftTypeId = leftTypeId;  // tolerate null argument cast

-					leftIsCast = false;

-				}

-			}

-		}

-		// check need for right operand cast

-		int alternateRightTypeId = rightTypeId;

-		if (rightIsCast) {

-			if ((right.bits & UnnecessaryCastMask) == 0 && right.resolvedType.isBaseType()) {

- 				// narrowing conversion on base type may change value, thus necessary

- 				rightIsCast = false;

-			} else {

-				TypeBinding alternateRightType = ((CastExpression)right).expression.resolvedType;

-				if (alternateRightType == null) return; // cannot do better

-				if ((alternateRightTypeId = alternateRightType.id) == rightTypeId) { // obvious identity cast

-					scope.problemReporter().unnecessaryCast((CastExpression)right); 

-					rightIsCast = false;

-				} else if (alternateRightTypeId == T_null) {

-					alternateRightTypeId = rightTypeId;  // tolerate null argument cast

-					rightIsCast = false;

-				}

-			}	

-		}

-		if (leftIsCast || rightIsCast) {

-			if (alternateLeftTypeId > 15 || alternateRightTypeId > 15) { // must convert String + Object || Object + String

-				if (alternateLeftTypeId == T_String) {

-					alternateRightTypeId = T_Object;

-				} else if (alternateRightTypeId == T_String) {

-					alternateLeftTypeId = T_Object;

-				} else {

-					return; // invalid operator

-				}

-			}

-			int alternateOperatorSignature = OperatorExpression.OperatorSignatures[operator][(alternateLeftTypeId << 4) + alternateRightTypeId];

-			// (cast)  left   Op (cast)  right --> result

-			//  1111   0000       1111   0000     1111

-			//  <<16   <<12       <<8    <<4       <<0

-			final int CompareMASK = (0xF<<16) + (0xF<<8) + 0xF; // mask hiding compile-time types

-			if ((operatorSignature & CompareMASK) == (alternateOperatorSignature & CompareMASK)) { // same promotions and result

-				if (leftIsCast) scope.problemReporter().unnecessaryCastForArgument((CastExpression)left,  TypeBinding.wellKnownType(scope, left.implicitConversion >> 4)); 

-				if (rightIsCast) scope.problemReporter().unnecessaryCastForArgument((CastExpression)right, TypeBinding.wellKnownType(scope,  right.implicitConversion >> 4));

-			}

-		}

-	}

-

-	private static void checkAlternateBinding(BlockScope scope, Expression receiver, TypeBinding receiverType, MethodBinding binding, Expression[] arguments, TypeBinding[] originalArgumentTypes, TypeBinding[] alternateArgumentTypes, final InvocationSite invocationSite) {

-

-			InvocationSite fakeInvocationSite = new InvocationSite(){	

-				public TypeBinding[] genericTypeArguments() { return null; }

-				public boolean isSuperAccess(){ return invocationSite.isSuperAccess(); }

-				public boolean isTypeAccess() { return invocationSite.isTypeAccess(); }

-				public void setActualReceiverType(ReferenceBinding actualReceiverType) { /* ignore */}

-				public void setDepth(int depth) { /* ignore */}

-				public void setFieldIndex(int depth){ /* ignore */}

-				public int sourceStart() { return 0; }

-				public int sourceEnd() { return 0; }

-			};	

-			MethodBinding bindingIfNoCast;

-			if (binding.isConstructor()) {

-				bindingIfNoCast = scope.getConstructor((ReferenceBinding)receiverType, alternateArgumentTypes, fakeInvocationSite);

-			} else {

-				bindingIfNoCast = receiver.isImplicitThis()

-					? scope.getImplicitMethod(binding.selector, alternateArgumentTypes, fakeInvocationSite)

-					: scope.getMethod(receiverType, binding.selector, alternateArgumentTypes, fakeInvocationSite); 	

-			}

-			if (bindingIfNoCast == binding) {

-				for (int i = 0, length = originalArgumentTypes.length; i < length; i++) {

-					if (originalArgumentTypes[i] != alternateArgumentTypes[i]) {

-						scope.problemReporter().unnecessaryCastForArgument((CastExpression)arguments[i], binding.parameters[i]);

-					}

-				}

-			}	

-	}

-	

-	public boolean checkUnsafeCast(Scope scope, TypeBinding castType, TypeBinding expressionType, TypeBinding match, boolean isNarrowing) {

-		if (match == castType) {

-			if (!isNarrowing) tagAsUnnecessaryCast(scope, castType);

-			return true;

-		}

-		if (castType.isBoundParameterizedType() || castType.isGenericType()) {

-			if (match.isProvablyDistinctFrom(isNarrowing ? expressionType : castType)) {

-				reportIllegalCast(scope, castType, expressionType);

-				return false; 

-			}

-			if (isNarrowing ? !expressionType.isEquivalentTo(match) : !match.isEquivalentTo(castType)) {

-				scope.problemReporter().unsafeCast(this);

-				return true;

-			}

-			if ((castType.tagBits & TagBits.HasWildcard) == 0) {

-				if ((!match.isParameterizedType() && !match.isGenericType())

-						|| expressionType.isRawType()) {

-					scope.problemReporter().unsafeCast(this);

-					return true;

-				}

-			}

-		}

-		if (!isNarrowing) tagAsUnnecessaryCast(scope, castType);

-		return true;

-	}	

-	

-	/**

-	 * Cast expression code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		boolean needRuntimeCheckcast = (this.bits & NeedRuntimeCheckCastMASK) != 0;

-		if (constant != NotAConstant) {

-			if (valueRequired || needRuntimeCheckcast) { // Added for: 1F1W9IG: IVJCOM:WINNT - Compiler omits casting check

-				codeStream.generateConstant(constant, implicitConversion);

-				if (needRuntimeCheckcast) {

-					codeStream.checkcast(this.resolvedType);

-					if (!valueRequired)

-						codeStream.pop();

-				}

-			}

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		expression.generateCode(

-			currentScope,

-			codeStream,

-			valueRequired || needRuntimeCheckcast);

-		if (needRuntimeCheckcast) {

-			codeStream.checkcast(this.resolvedType);

-			if (!valueRequired)

-				codeStream.pop();

-		} else {

-			if (valueRequired)

-				codeStream.generateImplicitConversion(implicitConversion);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public Expression innermostCastedExpression(){ 

-		Expression current = this.expression;

-		while (current instanceof CastExpression) {

-			current = ((CastExpression) current).expression;

-		}

-		return current;

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		output.append('(');

-		type.print(0, output).append(") "); //$NON-NLS-1$

-		return expression.printExpression(0, output);

-	}

-

-	public void reportIllegalCast(Scope scope, TypeBinding castType, TypeBinding expressionType) {

-		scope.problemReporter().typeCastError(this, castType, expressionType);

-	}

-	

-	public TypeBinding resolveType(BlockScope scope) {

-		// compute a new constant if the cast is effective

-

-		// due to the fact an expression may start with ( and that a cast can also start with (

-		// the field is an expression....it can be a TypeReference OR a NameReference Or

-		// any kind of Expression <-- this last one is invalid.......

-

-		constant = Constant.NotAConstant;

-		implicitConversion = T_undefined;

-

-		if ((type instanceof TypeReference) || (type instanceof NameReference)

-				&& ((type.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT) == 0) { // no extra parenthesis around type: ((A))exp

-

-			this.resolvedType = type.resolveType(scope);

-			expression.setExpectedType(this.resolvedType); // needed in case of generic method invocation			

-			TypeBinding expressionType = expression.resolveType(scope);

-			if (this.resolvedType != null && expressionType != null) {

-				checkCastTypesCompatibility(scope, this.resolvedType, expressionType, this.expression);

-				this.expression.computeConversion(scope, this.resolvedType, expressionType);

-				if ((this.bits & UnnecessaryCastMask) != 0) {

-					if ((this.bits & IgnoreNeedForCastCheckMASK) == 0) {

-						if (!usedForGenericMethodReturnTypeInference()) // used for generic type inference ?

-							scope.problemReporter().unnecessaryCast(this);

-					}

-				}

-			}

-			return this.resolvedType;

-		} else { // expression as a cast

-			TypeBinding expressionType = expression.resolveType(scope);

-			if (expressionType == null) return null;

-			scope.problemReporter().invalidTypeReference(type);

-			return null;

-		}

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#setExpectedType(org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding)

-	 */

-	public void setExpectedType(TypeBinding expectedType) {

-		this.expectedType = expectedType;

-	}

-

-	/**

-	 * Determines whether apparent unnecessary cast wasn't actually used to

-	 * perform return type inference of generic method invocation.

-	 */

-	private boolean usedForGenericMethodReturnTypeInference() {

-		if (this.expression instanceof MessageSend) {

-			MethodBinding method = ((MessageSend)this.expression).binding;

-			if (method instanceof ParameterizedGenericMethodBinding

-						&& ((ParameterizedGenericMethodBinding)method).inferredReturnType) {

-				if (this.expectedType == null) 

-					return true;

-				if (this.resolvedType != this.expectedType)

-					return true;

-			}

-		}

-		return false;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#tagAsNeedCheckCast()

-	 */

-	public void tagAsNeedCheckCast() {

-		this.bits |= NeedRuntimeCheckCastMASK;

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#tagAsUnnecessaryCast(Scope, TypeBinding)

-	 */

-	public void tagAsUnnecessaryCast(Scope scope, TypeBinding castType) {

-		if (this.expression.resolvedType == null) return; // cannot do better if expression is not bound

-		this.bits |= UnnecessaryCastMask;

-	}

-	

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			type.traverse(visitor, blockScope);

-			expression.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CharLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CharLiteral.js
deleted file mode 100644
index 3b77ca4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CharLiteral.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class CharLiteral extends NumberLiteral {

-	char value;

-public CharLiteral(char[] token, int s, int e) {

-	super(token, s, e);

-	computeValue();

-}

-public void computeConstant() {

-	//The source is a  char[3] first and last char are '

-	//This is true for both regular char AND unicode char

-	//BUT not for escape char like '\b' which are char[4]....

-

-	constant = Constant.fromValue(value);

-}

-private void computeValue() {

-	//The source is a  char[3] first and last char are '

-	//This is true for both regular char AND unicode char

-	//BUT not for escape char like '\b' which are char[4]....

-

-	if ((value = source[1]) != '\\')

-		return;

-	char digit;

-	switch (digit = source[2]) {

-		case 'b' :

-			value = '\b';

-			break;

-		case 't' :

-			value = '\t';

-			break;

-		case 'n' :

-			value = '\n';

-			break;

-		case 'f' :

-			value = '\f';

-			break;

-		case 'r' :

-			value = '\r';

-			break;

-		case '\"' :

-			value = '\"';

-			break;

-		case '\'' :

-			value = '\'';

-			break;

-		case '\\' :

-			value = '\\';

-			break;

-		default : //octal (well-formed: ended by a ' )

-			int number = Character.getNumericValue(digit);

-			if ((digit = source[3]) != '\'')

-				number = (number * 8) + Character.getNumericValue(digit);

-			else {

-				constant = Constant.fromValue(value = (char) number);

-				break;

-			}

-			if ((digit = source[4]) != '\'')

-				number = (number * 8) + Character.getNumericValue(digit);

-			value = (char) number;

-			break;

-	}

-}

-/**

- * CharLiteral code generation

- *

- * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

- * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

- * @param valueRequired boolean

- */

-public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-	int pc = codeStream.position;

-	if (valueRequired)

-		if ((implicitConversion >> 4) == T_char)

-			codeStream.generateInlinedValue(value);

-		else

-			codeStream.generateConstant(constant, implicitConversion);

-	codeStream.recordPositionsFrom(pc, this.sourceStart);

-}

-public TypeBinding literalType(BlockScope scope) {

-	return CharBinding;

-}

-public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-	visitor.visit(this, blockScope);

-	visitor.endVisit(this, blockScope);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ClassLiteralAccess.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ClassLiteralAccess.js
deleted file mode 100644
index 16b98c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ClassLiteralAccess.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ClassLiteralAccess extends Expression {

-	

-	public TypeReference type;

-	public TypeBinding targetType;

-	FieldBinding syntheticField;

-

-	public ClassLiteralAccess(int sourceEnd, TypeReference t) {

-		type = t;

-		this.sourceStart = t.sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// if reachable, request the addition of a synthetic field for caching the class descriptor

-		SourceTypeBinding sourceType =

-			currentScope.outerMostMethodScope().enclosingSourceType();

-		if ((!(sourceType.isInterface()

-				// no field generated in interface case (would'nt verify) see 1FHHEZL

-				|| sourceType.isBaseType()))

-				&& currentScope.environment().options.sourceLevel <= ClassFileConstants.JDK1_5) {

-			syntheticField = sourceType.addSyntheticField(targetType, currentScope);

-		}

-		return flowInfo;

-	}

-

-	/**

-	 * MessageSendDotClass code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-		int pc = codeStream.position;

-

-		// in interface case, no caching occurs, since cannot make a cache field for interface

-		if (valueRequired) {

-			codeStream.generateClassLiteralAccessForType(type.resolvedType, syntheticField);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		return type.print(0, output).append(".class"); //$NON-NLS-1$

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-

-		constant = NotAConstant;

-		if ((targetType = type.resolveType(scope)) == null)

-			return null;

-

-		if (targetType.isArrayType()

-			&& ((ArrayBinding) targetType).leafComponentType == VoidBinding) {

-			scope.problemReporter().cannotAllocateVoidArray(this);

-			return null;

-		} else if (targetType.isTypeVariable()) {

-			scope.problemReporter().illegalClassLiteralForTypeVariable((TypeVariableBinding)targetType, this);

-		}

-		ReferenceBinding classType = scope.getJavaLangClass();

-		if (classType.isGenericType()) {

-		    // Integer.class --> Class<Integer>, perform boxing of base types (int.class --> Class<Integer>)

-		    this.resolvedType = scope.createParameterizedType(classType, new TypeBinding[]{ scope.boxing(targetType) }, null/*not a member*/);

-		} else {

-		    this.resolvedType = classType;

-		}

-		return this.resolvedType;

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			type.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Clinit.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Clinit.js
deleted file mode 100644
index 6ec9bfb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Clinit.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.*;

-

-public class Clinit extends AbstractMethodDeclaration {

-	

-	public final static char[] ConstantPoolName = "<clinit>".toCharArray(); //$NON-NLS-1$

-

-	private FieldBinding assertionSyntheticFieldBinding = null;

-	private FieldBinding classLiteralSyntheticField = null;

-

-	public Clinit(CompilationResult compilationResult) {

-		super(compilationResult);

-		modifiers = 0;

-		selector = ConstantPoolName;

-	}

-

-	public void analyseCode(

-		ClassScope classScope,

-		InitializationFlowContext staticInitializerFlowContext,

-		FlowInfo flowInfo) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			ExceptionHandlingFlowContext clinitContext =

-				new ExceptionHandlingFlowContext(

-					staticInitializerFlowContext.parent,

-					this,

-					NoExceptions,

-					scope,

-					FlowInfo.DEAD_END);

-

-			// check for missing returning path

-			this.needFreeReturn = flowInfo.isReachable();

-

-			// check missing blank final field initializations

-			flowInfo = flowInfo.mergedWith(staticInitializerFlowContext.initsOnReturn);

-			FieldBinding[] fields = scope.enclosingSourceType().fields();

-			for (int i = 0, count = fields.length; i < count; i++) {

-				FieldBinding field;

-				if ((field = fields[i]).isStatic()

-					&& field.isFinal()

-					&& (!flowInfo.isDefinitelyAssigned(fields[i]))) {

-					scope.problemReporter().uninitializedBlankFinalField(

-						field,

-						scope.referenceType().declarationOf(field.original()));

-					// can complain against the field decl, since only one <clinit>

-				}

-			}

-			// check static initializers thrown exceptions

-			staticInitializerFlowContext.checkInitializerExceptions(

-				scope,

-				clinitContext,

-				flowInfo);

-		} catch (AbortMethod e) {

-			this.ignoreFurtherInvestigation = true;

-		}

-	}

-

-	/**

-	 * Bytecode generation for a <clinit> method

-	 *

-	 * @param classScope org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope

-	 * @param classFile org.eclipse.wst.jsdt.internal.compiler.codegen.ClassFile

-	 */

-	public void generateCode(ClassScope classScope, ClassFile classFile) {

-

-		int clinitOffset = 0;

-		if (ignoreFurtherInvestigation) {

-			// should never have to add any <clinit> problem method

-			return;

-		}

-		try {

-			clinitOffset = classFile.contentsOffset;

-			this.generateCode(classScope, classFile, clinitOffset);

-		} catch (AbortMethod e) {

-			// should never occur

-			// the clinit referenceContext is the type declaration

-			// All clinit problems will be reported against the type: AbortType instead of AbortMethod

-			// reset the contentsOffset to the value before generating the clinit code

-			// decrement the number of method info as well.

-			// This is done in the addProblemMethod and addProblemConstructor for other

-			// cases.

-			if (e.compilationResult == CodeStream.RESTART_IN_WIDE_MODE) {

-				// a branch target required a goto_w, restart code gen in wide mode.

-				try {

-					classFile.contentsOffset = clinitOffset;

-					classFile.methodCount--;

-					classFile.codeStream.wideMode = true; // request wide mode 

-					this.generateCode(classScope, classFile, clinitOffset);

-					// restart method generation

-				} catch (AbortMethod e2) {

-					classFile.contentsOffset = clinitOffset;

-					classFile.methodCount--;

-				}

-			} else {

-				// produce a problem method accounting for this fatal error

-				classFile.contentsOffset = clinitOffset;

-				classFile.methodCount--;

-			}

-		}

-	}

-

-	/**

-	 * Bytecode generation for a <clinit> method

-	 *

-	 * @param classScope org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope

-	 * @param classFile org.eclipse.wst.jsdt.internal.compiler.codegen.ClassFile

-	 */

-	private void generateCode(

-		ClassScope classScope,

-		ClassFile classFile,

-		int clinitOffset) {

-

-		ConstantPool constantPool = classFile.constantPool;

-		int constantPoolOffset = constantPool.currentOffset;

-		int constantPoolIndex = constantPool.currentIndex;

-		classFile.generateMethodInfoHeaderForClinit();

-		int codeAttributeOffset = classFile.contentsOffset;

-		classFile.generateCodeAttributeHeader();

-		CodeStream codeStream = classFile.codeStream;

-		this.resolve(classScope);

-

-		codeStream.reset(this, classFile);

-		TypeDeclaration declaringType = classScope.referenceContext;

-

-		// initialize local positions - including initializer scope.

-		MethodScope staticInitializerScope = declaringType.staticInitializerScope;

-		staticInitializerScope.computeLocalVariablePositions(0, codeStream);

-

-		// 1.4 feature

-		// This has to be done before any other initialization

-		if (this.assertionSyntheticFieldBinding != null) {

-			// generate code related to the activation of assertion for this class

-			codeStream.generateClassLiteralAccessForType(

-				classScope.enclosingSourceType(),

-				classLiteralSyntheticField);

-			codeStream.invokeJavaLangClassDesiredAssertionStatus();

-			Label falseLabel = new Label(codeStream);

-			codeStream.ifne(falseLabel);

-			codeStream.iconst_1();

-			Label jumpLabel = new Label(codeStream);

-			codeStream.goto_(jumpLabel);

-			falseLabel.place();

-			codeStream.iconst_0();

-			jumpLabel.place();

-			codeStream.putstatic(this.assertionSyntheticFieldBinding);

-		}

-		// generate initializers

-		if (declaringType.fields != null) {

-			for (int i = 0, max = declaringType.fields.length; i < max; i++) {

-				FieldDeclaration fieldDecl;

-				if ((fieldDecl = declaringType.fields[i]).isStatic()) {

-					fieldDecl.generateCode(staticInitializerScope, codeStream);

-				}

-			}

-		}

-		if (codeStream.position == 0) {

-			// do not need to output a Clinit if no bytecodes

-			// so we reset the offset inside the byte array contents.

-			classFile.contentsOffset = clinitOffset;

-			// like we don't addd a method we need to undo the increment on the method count

-			classFile.methodCount--;

-			// reset the constant pool to its state before the clinit

-			constantPool.resetForClinit(constantPoolIndex, constantPoolOffset);

-		} else {

-			if (this.needFreeReturn) {

-				int oldPosition = codeStream.position;

-				codeStream.return_();

-				codeStream.updateLocalVariablesAttribute(oldPosition);

-			}

-			// Record the end of the clinit: point to the declaration of the class

-			codeStream.recordPositionsFrom(0, declaringType.sourceStart);

-			classFile.completeCodeAttributeForClinit(codeAttributeOffset);

-		}

-	}

-

-	public boolean isClinit() {

-

-		return true;

-	}

-

-	public boolean isInitializationMethod() {

-

-		return true;

-	}

-

-	public boolean isStatic() {

-

-		return true;

-	}

-

-	public void parseStatements(Parser parser, CompilationUnitDeclaration unit) {

-		//the clinit is filled by hand .... 

-	}

-

-	public StringBuffer print(int tab, StringBuffer output) {

-

-		printIndent(tab, output).append("<clinit>()"); //$NON-NLS-1$

-		printBody(tab + 1, output);

-		return output;

-	}

-

-	public void resolve(ClassScope classScope) {

-

-		this.scope = new MethodScope(classScope, classScope.referenceContext, true);

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		ClassScope classScope) {

-

-		visitor.visit(this, classScope);

-		visitor.endVisit(this, classScope);

-	}

-

-	// 1.4 feature

-	public void setAssertionSupport(FieldBinding assertionSyntheticFieldBinding, boolean needClassLiteralField) {

-

-		this.assertionSyntheticFieldBinding = assertionSyntheticFieldBinding;

-

-		// we need to add the field right now, because the field infos are generated before the methods

-		SourceTypeBinding sourceType =

-			this.scope.outerMostMethodScope().enclosingSourceType();

-		if (needClassLiteralField) {

-			this.classLiteralSyntheticField =

-				sourceType.addSyntheticField(sourceType, scope);

-		}

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CompilationUnitDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CompilationUnitDeclaration.js
deleted file mode 100644
index 132dc2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CompilationUnitDeclaration.js
+++ /dev/null
@@ -1,323 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.*;

-

-public class CompilationUnitDeclaration

-	extends ASTNode

-	implements ProblemSeverities, ReferenceContext {

-	

-	private static final char[] PACKAGE_INFO_FILE_NAME = "package-info.java".toCharArray(); //$NON-NLS-1$

-		

-	public ImportReference currentPackage;

-	public ImportReference[] imports;

-	public TypeDeclaration[] types;

-	public int[][] comments;

-

-	public boolean ignoreFurtherInvestigation = false;	// once pointless to investigate due to errors

-	public boolean ignoreMethodBodies = false;

-	public CompilationUnitScope scope;

-	public ProblemReporter problemReporter;

-	public CompilationResult compilationResult;

-

-	public LocalTypeBinding[] localTypes;

-	public int localTypeCount = 0;

-	

-	public boolean isPropagatingInnerClassEmulation;

-

-	public CompilationUnitDeclaration(

-		ProblemReporter problemReporter,

-		CompilationResult compilationResult,

-		int sourceLength) {

-

-		this.problemReporter = problemReporter;

-		this.compilationResult = compilationResult;

-

-		//by definition of a compilation unit....

-		sourceStart = 0;

-		sourceEnd = sourceLength - 1;

-

-	}

-

-	/*

-	 *	We cause the compilation task to abort to a given extent.

-	 */

-	public void abort(int abortLevel, IProblem problem) {

-

-		switch (abortLevel) {

-			case AbortType :

-				throw new AbortType(this.compilationResult, problem);

-			case AbortMethod :

-				throw new AbortMethod(this.compilationResult, problem);

-			default :

-				throw new AbortCompilationUnit(this.compilationResult, problem);

-		}

-	}

-

-	/*

-	 * Dispatch code analysis AND request saturation of inner emulation

-	 */

-	public void analyseCode() {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (types != null) {

-				for (int i = 0, count = types.length; i < count; i++) {

-					types[i].analyseCode(scope);

-				}

-			}

-			// request inner emulation propagation

-			propagateInnerEmulationForAllLocalTypes();

-		} catch (AbortCompilationUnit e) {

-			this.ignoreFurtherInvestigation = true;

-			return;

-		}

-	}

-

-	/*

-	 * When unit result is about to be accepted, removed back pointers

-	 * to compiler structures.

-	 */

-	public void cleanUp() {

-		if (this.types != null) {

-			for (int i = 0, max = this.types.length; i < max; i++) {

-				cleanUp(this.types[i]);

-			}

-			for (int i = 0, max = this.localTypeCount; i < max; i++) {

-			    LocalTypeBinding localType = localTypes[i];

-				// null out the type's scope backpointers

-				localType.scope = null; // local members are already in the list

-			}

-		}

-		ClassFile[] classFiles = compilationResult.getClassFiles();

-		for (int i = 0, max = classFiles.length; i < max; i++) {

-			// clear the classFile back pointer to the bindings

-			ClassFile classFile = classFiles[i];

-			// null out the classfile backpointer to a type binding

-			classFile.referenceBinding = null;

-			classFile.codeStream = null; // codeStream holds onto ast and scopes

-			classFile.innerClassesBindings = null;

-		}

-	}

-	private void cleanUp(TypeDeclaration type) {

-		if (type.memberTypes != null) {

-			for (int i = 0, max = type.memberTypes.length; i < max; i++){

-				cleanUp(type.memberTypes[i]);

-			}

-		}

-		if (type.binding != null) {

-			// null out the type's scope backpointers

-			type.binding.scope = null;

-		}

-	}

-

-	public void checkUnusedImports(){

-		

-		if (this.scope.imports != null){

-			for (int i = 0, max = this.scope.imports.length; i < max; i++){

-				ImportBinding importBinding = this.scope.imports[i];

-				ImportReference importReference = importBinding.reference;

-				if (importReference != null && !importReference.used){

-					scope.problemReporter().unusedImport(importReference);

-				}

-			}

-		}

-	}

-	

-	public CompilationResult compilationResult() {

-		return compilationResult;

-	}

-	

-	/*

-	 * Finds the matching type amoung this compilation unit types.

-	 * Returns null if no type with this name is found.

-	 * The type name is a compound name

-	 * eg. if we're looking for X.A.B then a type name would be {X, A, B}

-	 */

-	public TypeDeclaration declarationOfType(char[][] typeName) {

-

-		for (int i = 0; i < this.types.length; i++) {

-			TypeDeclaration typeDecl = this.types[i].declarationOfType(typeName);

-			if (typeDecl != null) {

-				return typeDecl;

-			}

-		}

-		return null;

-	}

-

-	/**

-	 * Bytecode generation

-	 */

-	public void generateCode() {

-

-		if (ignoreFurtherInvestigation) {

-			if (types != null) {

-				for (int i = 0, count = types.length; i < count; i++) {

-					types[i].ignoreFurtherInvestigation = true;

-					// propagate the flag to request problem type creation

-					types[i].generateCode(scope);

-				}

-			}

-			return;

-		}

-		try {

-			if (types != null) {

-				for (int i = 0, count = types.length; i < count; i++)

-					types[i].generateCode(scope);

-			}

-		} catch (AbortCompilationUnit e) {

-			// ignore

-		}

-	}

-

-	public char[] getFileName() {

-

-		return compilationResult.getFileName();

-	}

-

-	public char[] getMainTypeName() {

-

-		if (compilationResult.compilationUnit == null) {

-			char[] fileName = compilationResult.getFileName();

-

-			int start = CharOperation.lastIndexOf('/', fileName) + 1;

-			if (start == 0 || start < CharOperation.lastIndexOf('\\', fileName))

-				start = CharOperation.lastIndexOf('\\', fileName) + 1;

-

-			int end = CharOperation.lastIndexOf('.', fileName);

-			if (end == -1)

-				end = fileName.length;

-

-			return CharOperation.subarray(fileName, start, end);

-		} else {

-			return compilationResult.compilationUnit.getMainTypeName();

-		}

-	}

-

-	public boolean isEmpty() {

-

-		return (currentPackage == null) && (imports == null) && (types == null);

-	}

-

-	public boolean hasErrors() {

-		return this.ignoreFurtherInvestigation;

-	}

-

-	public StringBuffer print(int indent, StringBuffer output) {

-

-		if (currentPackage != null) {

-			printIndent(indent, output).append("package "); //$NON-NLS-1$

-			currentPackage.print(0, output, false).append(";\n"); //$NON-NLS-1$

-		}

-		if (imports != null)

-			for (int i = 0; i < imports.length; i++) {

-				printIndent(indent, output).append("import "); //$NON-NLS-1$

-				imports[i].print(0, output).append(";\n"); //$NON-NLS-1$ 

-			}

-

-		if (types != null) {

-			for (int i = 0; i < types.length; i++) {

-				types[i].print(indent, output).append("\n"); //$NON-NLS-1$

-			}

-		}

-		return output;

-	}

-	

-	/*

-	 * Force inner local types to update their innerclass emulation

-	 */

-	public void propagateInnerEmulationForAllLocalTypes() {

-

-		isPropagatingInnerClassEmulation = true;

-		for (int i = 0, max = this.localTypeCount; i < max; i++) {

-				

-			LocalTypeBinding localType = localTypes[i];

-			// only propagate for reachable local types

-			if ((localType.scope.referenceType().bits & IsReachableMASK) != 0) {

-				localType.updateInnerEmulationDependents();

-			}

-		}

-	}

-

-	/*

-	 * Keep track of all local types, so as to update their innerclass

-	 * emulation later on.

-	 */

-	public void record(LocalTypeBinding localType) {

-

-		if (this.localTypeCount == 0) {

-			this.localTypes = new LocalTypeBinding[5];

-		} else if (this.localTypeCount == this.localTypes.length) {

-			System.arraycopy(this.localTypes, 0, (this.localTypes = new LocalTypeBinding[this.localTypeCount * 2]), 0, this.localTypeCount);

-		}

-		this.localTypes[this.localTypeCount++] = localType;

-	}

-

-	public void resolve() {

-		if (this.currentPackage != null) {

-			if (this.currentPackage.annotations != null

-					&& !CharOperation.endsWith(getFileName(), PACKAGE_INFO_FILE_NAME)) {

-				scope.problemReporter().invalidFileNameForPackageAnnotations(this.currentPackage.annotations[0]);

-			}

-		}

-		try {

-			if (types != null) {

-				for (int i = 0, count = types.length; i < count; i++) {

-					types[i].resolve(scope);

-				}

-			}

-			if (!this.compilationResult.hasSyntaxError()) checkUnusedImports();

-		} catch (AbortCompilationUnit e) {

-			this.ignoreFurtherInvestigation = true;

-			return;

-		}

-	}

-

-	public void tagAsHavingErrors() {

-		ignoreFurtherInvestigation = true;

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		CompilationUnitScope unitScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, this.scope)) {

-				if (currentPackage != null) {

-					currentPackage.traverse(visitor, this.scope);

-				}

-				if (imports != null) {

-					int importLength = imports.length;

-					for (int i = 0; i < importLength; i++) {

-						imports[i].traverse(visitor, this.scope);

-					}

-				}

-				if (types != null) {

-					int typesLength = types.length;

-					for (int i = 0; i < typesLength; i++) {

-						types[i].traverse(visitor, this.scope);

-					}

-				}

-			}

-			visitor.endVisit(this, this.scope);

-		} catch (AbortCompilationUnit e) {

-			// ignore

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CompoundAssignment.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CompoundAssignment.js
deleted file mode 100644
index d52f8d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/CompoundAssignment.js
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class CompoundAssignment extends Assignment implements OperatorIds {

-	public int operator;

-	public int assignmentImplicitConversion;

-

-	//  var op exp is equivalent to var = (varType) var op exp

-	// assignmentImplicitConversion stores the cast needed for the assignment

-

-	public CompoundAssignment(Expression lhs, Expression expression,int operator, int sourceEnd) {

-		//lhs is always a reference by construction ,

-		//but is build as an expression ==> the checkcast cannot fail

-	

-		super(lhs, expression, sourceEnd);

-		lhs.bits &= ~IsStrictlyAssignedMASK; // tag lhs as NON assigned - it is also a read access

-		lhs.bits |= IsCompoundAssignedMASK; // tag lhs as assigned by compound

-		this.operator = operator ;

-	}

-	

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-		// record setting a variable: various scenarii are possible, setting an array reference, 

-		// a field reference, a blank final field reference, a field of an enclosing instance or 

-		// just a local variable.

-	

-		return  ((Reference) lhs).analyseAssignment(currentScope, flowContext, flowInfo, this, true).unconditionalInits();

-	}

-	

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-	

-		// various scenarii are possible, setting an array reference, 

-		// a field reference, a blank final field reference, a field of an enclosing instance or 

-		// just a local variable.

-	

-		int pc = codeStream.position;

-		 ((Reference) lhs).generateCompoundAssignment(currentScope, codeStream, expression, operator, assignmentImplicitConversion, valueRequired);

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(implicitConversion);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	

-	public String operatorToString() {

-		switch (operator) {

-			case PLUS :

-				return "+="; //$NON-NLS-1$

-			case MINUS :

-				return "-="; //$NON-NLS-1$

-			case MULTIPLY :

-				return "*="; //$NON-NLS-1$

-			case DIVIDE :

-				return "/="; //$NON-NLS-1$

-			case AND :

-				return "&="; //$NON-NLS-1$

-			case OR :

-				return "|="; //$NON-NLS-1$

-			case XOR :

-				return "^="; //$NON-NLS-1$

-			case REMAINDER :

-				return "%="; //$NON-NLS-1$

-			case LEFT_SHIFT :

-				return "<<="; //$NON-NLS-1$

-			case RIGHT_SHIFT :

-				return ">>="; //$NON-NLS-1$

-			case UNSIGNED_RIGHT_SHIFT :

-				return ">>>="; //$NON-NLS-1$

-		}

-		return "unknown operator"; //$NON-NLS-1$

-	}

-	

-	public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output) {

-	

-		lhs.printExpression(indent, output).append(' ').append(operatorToString()).append(' ');

-		return expression.printExpression(0, output) ; 

-	}

-	

-	public TypeBinding resolveType(BlockScope scope) {

-		constant = NotAConstant;

-		if (!(this.lhs instanceof Reference) || this.lhs.isThis()) {

-			scope.problemReporter().expressionShouldBeAVariable(this.lhs);

-			return null;

-		}

-		TypeBinding lhsType = lhs.resolveType(scope);

-		TypeBinding expressionType = expression.resolveType(scope);

-		if (lhsType == null || expressionType == null)

-			return null;

-	

-		int lhsId = lhsType.id;

-		int expressionId = expressionType.id;

-		if (restrainUsageToNumericTypes() && !lhsType.isNumericType()) {

-			scope.problemReporter().operatorOnlyValidOnNumericType(this, lhsType, expressionType);

-			return null;

-		}

-		if (lhsId > 15 || expressionId > 15) {

-			if (lhsId != T_String) { // String += Thread is valid whereas Thread += String  is not

-				scope.problemReporter().invalidOperator(this, lhsType, expressionType);

-				return null;

-			}

-			expressionId = T_Object; // use the Object has tag table

-		}

-	

-		// the code is an int

-		// (cast)  left   Op (cast)  rigth --> result 

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8     <<4        <<0

-	

-		// the conversion is stored INTO the reference (info needed for the code gen)

-		int result = OperatorExpression.OperatorSignatures[operator][ (lhsId << 4) + expressionId];

-		if (result == T_undefined) {

-			scope.problemReporter().invalidOperator(this, lhsType, expressionType);

-			return null;

-		}

-		if (operator == PLUS){

-			if(lhsId == T_JavaLangObject) {

-				// <Object> += <String> is illegal (39248)

-				scope.problemReporter().invalidOperator(this, lhsType, expressionType);

-				return null;

-			} else {

-				// <int | boolean> += <String> is illegal

-				if ((lhsType.isNumericType() || lhsId == T_boolean) && !expressionType.isNumericType()){

-					scope.problemReporter().invalidOperator(this, lhsType, expressionType);

-					return null;

-				}

-			}

-		}

-		// TODO (philippe) should retrofit in using #computeConversion

-		lhs.implicitConversion = result >>> 12;

-		expression.implicitConversion = (result >>> 4) & 0x000FF;

-		assignmentImplicitConversion = (lhsId << 4) + (result & 0x0000F);

-		return this.resolvedType = lhsType;

-	}

-	

-	public boolean restrainUsageToNumericTypes(){

-		return false ;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			lhs.traverse(visitor, scope);

-			expression.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ConditionalExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ConditionalExpression.js
deleted file mode 100644
index 6299b09..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ConditionalExpression.js
+++ /dev/null
@@ -1,416 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ConditionalExpression extends OperatorExpression {

-

-	public Expression condition, valueIfTrue, valueIfFalse;

-	public Constant optimizedBooleanConstant;

-	public Constant optimizedIfTrueConstant;

-	public Constant optimizedIfFalseConstant;

-	

-	// for local variables table attributes

-	int trueInitStateIndex = -1;

-	int falseInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-	

-	public ConditionalExpression(

-		Expression condition,

-		Expression valueIfTrue,

-		Expression valueIfFalse) {

-		this.condition = condition;

-		this.valueIfTrue = valueIfTrue;

-		this.valueIfFalse = valueIfFalse;

-		sourceStart = condition.sourceStart;

-		sourceEnd = valueIfFalse.sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		Constant cst = this.condition.optimizedBooleanConstant();

-		boolean isConditionOptimizedTrue = cst != NotAConstant && cst.booleanValue() == true;

-		boolean isConditionOptimizedFalse = cst != NotAConstant && cst.booleanValue() == false;

-

-		int mode = flowInfo.reachMode();

-		flowInfo = condition.analyseCode(currentScope, flowContext, flowInfo, cst == NotAConstant);

-		

-		// process the if-true part

-		FlowInfo trueFlowInfo = flowInfo.initsWhenTrue().copy();

-		if (isConditionOptimizedFalse) {

-			trueFlowInfo.setReachMode(FlowInfo.UNREACHABLE); 

-		}

-		trueInitStateIndex = currentScope.methodScope().recordInitializationStates(trueFlowInfo);

-		trueFlowInfo = valueIfTrue.analyseCode(currentScope, flowContext, trueFlowInfo);

-

-		// process the if-false part

-		FlowInfo falseFlowInfo = flowInfo.initsWhenFalse().copy();

-		if (isConditionOptimizedTrue) {

-			falseFlowInfo.setReachMode(FlowInfo.UNREACHABLE); 

-		}

-		falseInitStateIndex = currentScope.methodScope().recordInitializationStates(falseFlowInfo);

-		falseFlowInfo = valueIfFalse.analyseCode(currentScope, flowContext, falseFlowInfo);

-

-		// merge if-true & if-false initializations

-		FlowInfo mergedInfo;

-		if (isConditionOptimizedTrue){

-			mergedInfo = trueFlowInfo.addPotentialInitializationsFrom(falseFlowInfo);

-		} else if (isConditionOptimizedFalse) {

-			mergedInfo = falseFlowInfo.addPotentialInitializationsFrom(trueFlowInfo);

-		} else {

-			// if ((t && (v = t)) ? t : t && (v = f)) r = v;  -- ok

-			cst = this.optimizedIfTrueConstant;

-			boolean isValueIfTrueOptimizedTrue = cst != null && cst != NotAConstant && cst.booleanValue() == true;

-			boolean isValueIfTrueOptimizedFalse = cst != null && cst != NotAConstant && cst.booleanValue() == false;

-			

-			cst = this.optimizedIfFalseConstant;

-			boolean isValueIfFalseOptimizedTrue = cst != null && cst != NotAConstant && cst.booleanValue() == true;

-			boolean isValueIfFalseOptimizedFalse = cst != null && cst != NotAConstant && cst.booleanValue() == false;

-

-			UnconditionalFlowInfo trueInfoWhenTrue = trueFlowInfo.initsWhenTrue().copy().unconditionalInits();

-			if (isValueIfTrueOptimizedFalse) trueInfoWhenTrue.setReachMode(FlowInfo.UNREACHABLE); 

-

-			UnconditionalFlowInfo falseInfoWhenTrue = falseFlowInfo.initsWhenTrue().copy().unconditionalInits();

-			if (isValueIfFalseOptimizedFalse) falseInfoWhenTrue.setReachMode(FlowInfo.UNREACHABLE); 

-			

-			UnconditionalFlowInfo trueInfoWhenFalse = trueFlowInfo.initsWhenFalse().copy().unconditionalInits();

-			if (isValueIfTrueOptimizedTrue) trueInfoWhenFalse.setReachMode(FlowInfo.UNREACHABLE); 

-

-			UnconditionalFlowInfo falseInfoWhenFalse = falseFlowInfo.initsWhenFalse().copy().unconditionalInits();

-			if (isValueIfFalseOptimizedTrue) falseInfoWhenFalse.setReachMode(FlowInfo.UNREACHABLE); 

-

-			mergedInfo =

-				FlowInfo.conditional(

-					trueInfoWhenTrue.mergedWith(falseInfoWhenTrue),

-					trueInfoWhenFalse.mergedWith(falseInfoWhenFalse));

-		}

-		mergedInitStateIndex =

-			currentScope.methodScope().recordInitializationStates(mergedInfo);

-		mergedInfo.setReachMode(mode);

-		return mergedInfo;

-	}

-

-	/**

-	 * Code generation for the conditional operator ?:

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	*/

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		Label endifLabel, falseLabel;

-		if (constant != NotAConstant) {

-			if (valueRequired)

-				codeStream.generateConstant(constant, implicitConversion);

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		Constant cst = condition.constant;

-		Constant condCst = condition.optimizedBooleanConstant();

-		boolean needTruePart =

-			!(((cst != NotAConstant) && (cst.booleanValue() == false))

-				|| ((condCst != NotAConstant) && (condCst.booleanValue() == false)));

-		boolean needFalsePart =

-			!(((cst != NotAConstant) && (cst.booleanValue() == true))

-				|| ((condCst != NotAConstant) && (condCst.booleanValue() == true)));

-		endifLabel = new Label(codeStream);

-

-		// Generate code for the condition

-		boolean needConditionValue = (cst == NotAConstant) && (condCst == NotAConstant);

-		condition.generateOptimizedBoolean(

-			currentScope,

-			codeStream,

-			null,

-			(falseLabel = new Label(codeStream)),

-			needConditionValue);

-

-		if (trueInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(

-				currentScope,

-				trueInitStateIndex);

-			codeStream.addDefinitelyAssignedVariables(currentScope, trueInitStateIndex);

-		}

-		// Then code generation

-		if (needTruePart) {

-			valueIfTrue.generateCode(currentScope, codeStream, valueRequired);

-			if (needFalsePart) {

-				// Jump over the else part

-				int position = codeStream.position;

-				codeStream.goto_(endifLabel);

-				codeStream.updateLastRecordedEndPC(position);

-				// Tune codestream stack size

-				if (valueRequired) {

-					codeStream.decrStackSize(this.resolvedType == LongBinding || this.resolvedType == DoubleBinding ? 2 : 1);

-				}

-			}

-		}

-		if (needFalsePart) {

-			falseLabel.place();

-			if (falseInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(

-					currentScope,

-					falseInitStateIndex);

-				codeStream.addDefinitelyAssignedVariables(currentScope, falseInitStateIndex);

-			}

-			valueIfFalse.generateCode(currentScope, codeStream, valueRequired);

-			// End of if statement

-			endifLabel.place();

-		}

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(

-				currentScope,

-				mergedInitStateIndex);

-		}

-		// implicit conversion

-		if (valueRequired)

-			codeStream.generateImplicitConversion(implicitConversion);

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	/**

-	 * Optimized boolean code generation for the conditional operator ?:

-	*/

-	public void generateOptimizedBoolean(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-

-		if ((constant != Constant.NotAConstant) && (constant.typeID() == T_boolean) // constant

-			|| (valueIfTrue.implicitConversion >> 4) != T_boolean) { // non boolean values

-			super.generateOptimizedBoolean(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-			return;

-		}

-		Constant cst = condition.constant;

-		Constant condCst = condition.optimizedBooleanConstant();

-		boolean needTruePart =

-			!(((cst != NotAConstant) && (cst.booleanValue() == false))

-				|| ((condCst != NotAConstant) && (condCst.booleanValue() == false)));

-		boolean needFalsePart =

-			!(((cst != NotAConstant) && (cst.booleanValue() == true))

-				|| ((condCst != NotAConstant) && (condCst.booleanValue() == true)));

-

-		Label internalFalseLabel, endifLabel = new Label(codeStream);

-

-		// Generate code for the condition

-		boolean needConditionValue = (cst == NotAConstant) && (condCst == NotAConstant);

-		condition.generateOptimizedBoolean(

-				currentScope,

-				codeStream,

-				null,

-				internalFalseLabel = new Label(codeStream),

-				needConditionValue);

-

-		if (trueInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(

-				currentScope,

-				trueInitStateIndex);

-			codeStream.addDefinitelyAssignedVariables(currentScope, trueInitStateIndex);

-		}

-		// Then code generation

-		if (needTruePart) {

-			valueIfTrue.generateOptimizedBoolean(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-			

-			if (needFalsePart) {

-				// Jump over the else part

-				int position = codeStream.position;

-				codeStream.goto_(endifLabel);

-				codeStream.updateLastRecordedEndPC(position);

-				// No need to decrement codestream stack size

-				// since valueIfTrue was already consumed by branch bytecode

-			}

-		}

-		if (needFalsePart) {

-			internalFalseLabel.place();

-			if (falseInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, falseInitStateIndex);

-				codeStream.addDefinitelyAssignedVariables(currentScope, falseInitStateIndex);

-			}

-			valueIfFalse.generateOptimizedBoolean(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-

-			// End of if statement

-			endifLabel.place();

-		}

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-		// no implicit conversion for boolean values

-		codeStream.updateLastRecordedEndPC(codeStream.position);

-	}

-

-	public Constant optimizedBooleanConstant() {

-

-		return this.optimizedBooleanConstant == null ? this.constant : this.optimizedBooleanConstant;

-	}

-	

-	public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output) {

-		

-		condition.printExpression(indent, output).append(" ? "); //$NON-NLS-1$

-		valueIfTrue.printExpression(0, output).append(" : "); //$NON-NLS-1$

-		return valueIfFalse.printExpression(0, output);

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-		// specs p.368

-		constant = NotAConstant;

-		TypeBinding conditionType = condition.resolveTypeExpecting(scope, BooleanBinding);

-		

-		if (valueIfTrue instanceof CastExpression) valueIfTrue.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-		TypeBinding valueIfTrueType = valueIfTrue.resolveType(scope);

-

-		if (valueIfFalse instanceof CastExpression) valueIfFalse.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-		TypeBinding valueIfFalseType = valueIfFalse.resolveType(scope);

-

-		if (conditionType == null || valueIfTrueType == null || valueIfFalseType == null)

-			return null;

-

-		// Propagate the constant value from the valueIfTrue and valueIFFalse expression if it is possible

-		Constant condConstant, trueConstant, falseConstant;

-		if ((condConstant = condition.constant) != NotAConstant

-			&& (trueConstant = valueIfTrue.constant) != NotAConstant

-			&& (falseConstant = valueIfFalse.constant) != NotAConstant) {

-			// all terms are constant expression so we can propagate the constant

-			// from valueIFTrue or valueIfFalse to teh receiver constant

-			constant = condConstant.booleanValue() ? trueConstant : falseConstant;

-		}

-		if (valueIfTrueType == valueIfFalseType) { // harmed the implicit conversion 

-			valueIfTrue.computeConversion(scope, valueIfTrueType, valueIfTrueType);

-			valueIfFalse.implicitConversion = valueIfTrue.implicitConversion;

-			if (valueIfTrueType == BooleanBinding) {

-				this.optimizedIfTrueConstant = valueIfTrue.optimizedBooleanConstant();

-				this.optimizedIfFalseConstant = valueIfFalse.optimizedBooleanConstant();

-				if (this.optimizedIfTrueConstant != NotAConstant 

-						&& this.optimizedIfFalseConstant != NotAConstant

-						&& this.optimizedIfTrueConstant.booleanValue() == this.optimizedIfFalseConstant.booleanValue()) {

-					// a ? true : true  /   a ? false : false

-					this.optimizedBooleanConstant = optimizedIfTrueConstant;

-				} else if ((condConstant = condition.optimizedBooleanConstant()) != NotAConstant) { // Propagate the optimized boolean constant if possible

-					this.optimizedBooleanConstant = condConstant.booleanValue()

-						? this.optimizedIfTrueConstant

-						: this.optimizedIfFalseConstant;

-				}

-			}

-			return this.resolvedType = valueIfTrueType;

-		}

-		// Determine the return type depending on argument types

-		// Numeric types

-		if (valueIfTrueType.isNumericType() && valueIfFalseType.isNumericType()) {

-			// (Short x Byte) or (Byte x Short)"

-			if ((valueIfTrueType == ByteBinding && valueIfFalseType == ShortBinding)

-				|| (valueIfTrueType == ShortBinding && valueIfFalseType == ByteBinding)) {

-				valueIfTrue.computeConversion(scope, ShortBinding, valueIfTrueType);

-				valueIfFalse.computeConversion(scope, ShortBinding, valueIfFalseType);

-				return this.resolvedType = ShortBinding;

-			}

-			// <Byte|Short|Char> x constant(Int)  ---> <Byte|Short|Char>   and reciprocally

-			if ((valueIfTrueType == ByteBinding || valueIfTrueType == ShortBinding || valueIfTrueType == CharBinding)

-					&& (valueIfFalseType == IntBinding

-						&& valueIfFalse.isConstantValueOfTypeAssignableToType(valueIfFalseType, valueIfTrueType))) {

-				valueIfTrue.computeConversion(scope, valueIfTrueType, valueIfTrueType);

-				valueIfFalse.computeConversion(scope, valueIfTrueType, valueIfFalseType);

-				return this.resolvedType = valueIfTrueType;

-			}

-			if ((valueIfFalseType == ByteBinding

-					|| valueIfFalseType == ShortBinding

-					|| valueIfFalseType == CharBinding)

-					&& (valueIfTrueType == IntBinding

-						&& valueIfTrue.isConstantValueOfTypeAssignableToType(valueIfTrueType, valueIfFalseType))) {

-				valueIfTrue.computeConversion(scope, valueIfFalseType, valueIfTrueType);

-				valueIfFalse.computeConversion(scope, valueIfFalseType, valueIfFalseType);

-				return this.resolvedType = valueIfFalseType;

-			}

-			// Manual binary numeric promotion

-			// int

-			if (BaseTypeBinding.isNarrowing(valueIfTrueType.id, T_int)

-					&& BaseTypeBinding.isNarrowing(valueIfFalseType.id, T_int)) {

-				valueIfTrue.computeConversion(scope, IntBinding, valueIfTrueType);

-				valueIfFalse.computeConversion(scope, IntBinding, valueIfFalseType);

-				return this.resolvedType = IntBinding;

-			}

-			// long

-			if (BaseTypeBinding.isNarrowing(valueIfTrueType.id, T_long)

-					&& BaseTypeBinding.isNarrowing(valueIfFalseType.id, T_long)) {

-				valueIfTrue.computeConversion(scope, LongBinding, valueIfTrueType);

-				valueIfFalse.computeConversion(scope, LongBinding, valueIfFalseType);

-				return this.resolvedType = LongBinding;

-			}

-			// float

-			if (BaseTypeBinding.isNarrowing(valueIfTrueType.id, T_float)

-					&& BaseTypeBinding.isNarrowing(valueIfFalseType.id, T_float)) {

-				valueIfTrue.computeConversion(scope, FloatBinding, valueIfTrueType);

-				valueIfFalse.computeConversion(scope, FloatBinding, valueIfFalseType);

-				return this.resolvedType = FloatBinding;

-			}

-			// double

-			valueIfTrue.computeConversion(scope, DoubleBinding, valueIfTrueType);

-			valueIfFalse.computeConversion(scope, DoubleBinding, valueIfFalseType);

-			return this.resolvedType = DoubleBinding;

-		}

-		// Type references (null null is already tested)

-		if ((valueIfTrueType.isBaseType() && valueIfTrueType != NullBinding)

-				|| (valueIfFalseType.isBaseType() && valueIfFalseType != NullBinding)) {

-			scope.problemReporter().conditionalArgumentsIncompatibleTypes(

-				this,

-				valueIfTrueType,

-				valueIfFalseType);

-			return null;

-		}

-		if (valueIfFalseType.isCompatibleWith(valueIfTrueType)) {

-			valueIfTrue.computeConversion(scope, valueIfTrueType, valueIfTrueType);

-			valueIfFalse.computeConversion(scope, valueIfTrueType, valueIfFalseType);

-			return this.resolvedType = valueIfTrueType;

-		}

-		if (valueIfTrueType.isCompatibleWith(valueIfFalseType)) {

-			valueIfTrue.computeConversion(scope, valueIfFalseType, valueIfTrueType);

-			valueIfFalse.computeConversion(scope, valueIfFalseType, valueIfFalseType);

-			return this.resolvedType = valueIfFalseType;

-		}

-		// 1.5 addition: allow most common type 

-		if (scope.environment().options.sourceLevel >= ClassFileConstants.JDK1_5) {

-			TypeBinding commonType = scope.lowerUpperBound(new TypeBinding[] { valueIfTrueType, valueIfFalseType });

-//			TypeBinding commonType = scope.mostSpecificCommonType(new TypeBinding[] { valueIfTrueType, valueIfFalseType });

-			if (commonType != null) {

-				return this.resolvedType = commonType;

-			}

-		}

-		scope.problemReporter().conditionalArgumentsIncompatibleTypes(

-			this,

-			valueIfTrueType,

-			valueIfFalseType);

-		return null;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			condition.traverse(visitor, scope);

-			valueIfTrue.traverse(visitor, scope);

-			valueIfFalse.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ConstructorDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ConstructorDeclaration.js
deleted file mode 100644
index 278f87e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ConstructorDeclaration.js
+++ /dev/null
@@ -1,467 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import java.util.ArrayList;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.*;

-

-public class ConstructorDeclaration extends AbstractMethodDeclaration {

-

-	public ExplicitConstructorCall constructorCall;

-	public final static char[] ConstantPoolName = "<init>".toCharArray(); //$NON-NLS-1$

-	public boolean isDefaultConstructor = false;

-	public TypeParameter[] typeParameters;

-

-	public ConstructorDeclaration(CompilationResult compilationResult){

-		super(compilationResult);

-	}

-	

-	public void analyseCode(

-		ClassScope classScope,

-		InitializationFlowContext initializerFlowContext,

-		FlowInfo flowInfo) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-

-		if (this.binding != null && this.binding.isPrivate() && !this.binding.isPrivateUsed()) {

-			if (!classScope.referenceCompilationUnit().compilationResult.hasSyntaxError()) {

-				scope.problemReporter().unusedPrivateConstructor(this);

-			}

-		}

-			

-		// check constructor recursion, once all constructor got resolved

-		if (isRecursive(null /*lazy initialized visited list*/)) {				

-			this.scope.problemReporter().recursiveConstructorInvocation(this.constructorCall);

-		}

-			

-		try {

-			ExceptionHandlingFlowContext constructorContext =

-				new ExceptionHandlingFlowContext(

-					initializerFlowContext.parent,

-					this,

-					binding.thrownExceptions,

-					scope,

-					FlowInfo.DEAD_END);

-			initializerFlowContext.checkInitializerExceptions(

-				scope,

-				constructorContext,

-				flowInfo);

-

-			// anonymous constructor can gain extra thrown exceptions from unhandled ones

-			if (binding.declaringClass.isAnonymousType()) {

-				ArrayList computedExceptions = constructorContext.extendedExceptions;

-				if (computedExceptions != null){

-					int size;

-					if ((size = computedExceptions.size()) > 0){

-						ReferenceBinding[] actuallyThrownExceptions;

-						computedExceptions.toArray(actuallyThrownExceptions = new ReferenceBinding[size]);

-						binding.thrownExceptions = actuallyThrownExceptions;

-					}

-				}

-			}

-			

-			// propagate to constructor call

-			if (constructorCall != null) {

-				// if calling 'this(...)', then flag all non-static fields as definitely

-				// set since they are supposed to be set inside other local constructor

-				if (constructorCall.accessMode == ExplicitConstructorCall.This) {

-					FieldBinding[] fields = binding.declaringClass.fields();

-					for (int i = 0, count = fields.length; i < count; i++) {

-						FieldBinding field;

-						if (!(field = fields[i]).isStatic()) {

-							flowInfo.markAsDefinitelyAssigned(field);

-						}

-					}

-				}

-				flowInfo = constructorCall.analyseCode(scope, constructorContext, flowInfo);

-			}

-			// propagate to statements

-			if (statements != null) {

-				boolean didAlreadyComplain = false;

-				for (int i = 0, count = statements.length; i < count; i++) {

-					Statement stat = statements[i];

-					if (!stat.complainIfUnreachable(flowInfo, scope, didAlreadyComplain)) {

-						flowInfo = stat.analyseCode(scope, constructorContext, flowInfo);

-					} else {

-						didAlreadyComplain = true;

-					}

-				}

-			}

-			// check for missing returning path

-			this.needFreeReturn = flowInfo.isReachable();

-

-			// check missing blank final field initializations

-			if ((constructorCall != null)

-				&& (constructorCall.accessMode != ExplicitConstructorCall.This)) {

-				flowInfo = flowInfo.mergedWith(constructorContext.initsOnReturn);

-				FieldBinding[] fields = binding.declaringClass.fields();

-				for (int i = 0, count = fields.length; i < count; i++) {

-					FieldBinding field;

-					if ((!(field = fields[i]).isStatic())

-						&& field.isFinal()

-						&& (!flowInfo.isDefinitelyAssigned(fields[i]))) {

-						scope.problemReporter().uninitializedBlankFinalField(

-							field,

-							isDefaultConstructor ? (ASTNode) scope.referenceType() : this);

-					}

-				}

-			}

-			// check unreachable catch blocks

-			constructorContext.complainIfUnusedExceptionHandlers(this);

-		} catch (AbortMethod e) {

-			this.ignoreFurtherInvestigation = true;

-		}

-	}

-

-	/**

-	 * Bytecode generation for a constructor

-	 *

-	 * @param classScope org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope

-	 * @param classFile org.eclipse.wst.jsdt.internal.compiler.codegen.ClassFile

-	 */

-	public void generateCode(ClassScope classScope, ClassFile classFile) {

-		

-		int problemResetPC = 0;

-		if (ignoreFurtherInvestigation) {

-			if (this.binding == null)

-				return; // Handle methods with invalid signature or duplicates

-			int problemsLength;

-			IProblem[] problems =

-				scope.referenceCompilationUnit().compilationResult.getProblems();

-			IProblem[] problemsCopy = new IProblem[problemsLength = problems.length];

-			System.arraycopy(problems, 0, problemsCopy, 0, problemsLength);

-			classFile.addProblemConstructor(this, binding, problemsCopy);

-			return;

-		}

-		try {

-			problemResetPC = classFile.contentsOffset;

-			this.internalGenerateCode(classScope, classFile);

-		} catch (AbortMethod e) {

-			if (e.compilationResult == CodeStream.RESTART_IN_WIDE_MODE) {

-				// a branch target required a goto_w, restart code gen in wide mode.

-				try {

-					classFile.contentsOffset = problemResetPC;

-					classFile.methodCount--;

-					classFile.codeStream.wideMode = true; // request wide mode 

-					this.internalGenerateCode(classScope, classFile); // restart method generation

-				} catch (AbortMethod e2) {

-					int problemsLength;

-					IProblem[] problems =

-						scope.referenceCompilationUnit().compilationResult.getAllProblems();

-					IProblem[] problemsCopy = new IProblem[problemsLength = problems.length];

-					System.arraycopy(problems, 0, problemsCopy, 0, problemsLength);

-					classFile.addProblemConstructor(this, binding, problemsCopy, problemResetPC);

-				}

-			} else {

-				int problemsLength;

-				IProblem[] problems =

-					scope.referenceCompilationUnit().compilationResult.getAllProblems();

-				IProblem[] problemsCopy = new IProblem[problemsLength = problems.length];

-				System.arraycopy(problems, 0, problemsCopy, 0, problemsLength);

-				classFile.addProblemConstructor(this, binding, problemsCopy, problemResetPC);

-			}

-		}

-	}

-

-	public void generateSyntheticFieldInitializationsIfNecessary(

-		MethodScope methodScope,

-		CodeStream codeStream,

-		ReferenceBinding declaringClass) {

-			

-		if (!declaringClass.isNestedType()) return;

-		

-		NestedTypeBinding nestedType = (NestedTypeBinding) declaringClass;

-

-		SyntheticArgumentBinding[] syntheticArgs = nestedType.syntheticEnclosingInstances();

-		for (int i = 0, max = syntheticArgs == null ? 0 : syntheticArgs.length; i < max; i++) {

-			SyntheticArgumentBinding syntheticArg;

-			if ((syntheticArg = syntheticArgs[i]).matchingField != null) {

-				codeStream.aload_0();

-				codeStream.load(syntheticArg);

-				codeStream.putfield(syntheticArg.matchingField);

-			}

-		}

-		syntheticArgs = nestedType.syntheticOuterLocalVariables();

-		for (int i = 0, max = syntheticArgs == null ? 0 : syntheticArgs.length; i < max; i++) {

-			SyntheticArgumentBinding syntheticArg;

-			if ((syntheticArg = syntheticArgs[i]).matchingField != null) {

-				codeStream.aload_0();

-				codeStream.load(syntheticArg);

-				codeStream.putfield(syntheticArg.matchingField);

-			}

-		}

-	}

-

-	private void internalGenerateCode(ClassScope classScope, ClassFile classFile) {

-		

-		classFile.generateMethodInfoHeader(binding);

-		int methodAttributeOffset = classFile.contentsOffset;

-		int attributeNumber = classFile.generateMethodInfoAttribute(binding);

-		if ((!binding.isNative()) && (!binding.isAbstract())) {

-			

-			TypeDeclaration declaringType = classScope.referenceContext;

-			int codeAttributeOffset = classFile.contentsOffset;

-			classFile.generateCodeAttributeHeader();

-			CodeStream codeStream = classFile.codeStream;

-			codeStream.reset(this, classFile);

-

-			// initialize local positions - including initializer scope.

-			ReferenceBinding declaringClass = binding.declaringClass;

-

-			int argSlotSize = 1; // this==aload0

-			

-			if (declaringClass.isNestedType()){

-				NestedTypeBinding nestedType = (NestedTypeBinding) declaringClass;

-				this.scope.extraSyntheticArguments = nestedType.syntheticOuterLocalVariables();

-				scope.computeLocalVariablePositions(// consider synthetic arguments if any

-					nestedType.enclosingInstancesSlotSize + 1,

-					codeStream);

-				argSlotSize += nestedType.enclosingInstancesSlotSize;

-				argSlotSize += nestedType.outerLocalVariablesSlotSize;

-			} else {

-				scope.computeLocalVariablePositions(1,  codeStream);

-			}

-				

-			if (arguments != null) {

-				for (int i = 0, max = arguments.length; i < max; i++) {

-					// arguments initialization for local variable debug attributes

-					LocalVariableBinding argBinding;

-					codeStream.addVisibleLocalVariable(argBinding = arguments[i].binding);

-					argBinding.recordInitializationStartPC(0);

-					TypeBinding argType;

-					if ((argType = argBinding.type) == LongBinding || (argType == DoubleBinding)) {

-						argSlotSize += 2;

-					} else {

-						argSlotSize++;

-					}

-				}

-			}

-			

-			MethodScope initializerScope = declaringType.initializerScope;

-			initializerScope.computeLocalVariablePositions(argSlotSize, codeStream); // offset by the argument size (since not linked to method scope)

-

-			boolean needFieldInitializations = constructorCall == null || constructorCall.accessMode != ExplicitConstructorCall.This;

-

-			// post 1.4 source level, synthetic initializations occur prior to explicit constructor call

-			boolean preInitSyntheticFields = scope.environment().options.targetJDK >= ClassFileConstants.JDK1_4;

-

-			if (needFieldInitializations && preInitSyntheticFields){

-				generateSyntheticFieldInitializationsIfNecessary(scope, codeStream, declaringClass);

-			}			

-			// generate constructor call

-			if (constructorCall != null) {

-				constructorCall.generateCode(scope, codeStream);

-			}

-			// generate field initialization - only if not invoking another constructor call of the same class

-			if (needFieldInitializations) {

-				if (!preInitSyntheticFields){

-					generateSyntheticFieldInitializationsIfNecessary(scope, codeStream, declaringClass);

-				}

-				// generate user field initialization

-				if (declaringType.fields != null) {

-					for (int i = 0, max = declaringType.fields.length; i < max; i++) {

-						FieldDeclaration fieldDecl;

-						if (!(fieldDecl = declaringType.fields[i]).isStatic()) {

-							fieldDecl.generateCode(initializerScope, codeStream);

-						}

-					}

-				}

-			}

-			// generate statements

-			if (statements != null) {

-				for (int i = 0, max = statements.length; i < max; i++) {

-					statements[i].generateCode(scope, codeStream);

-				}

-			}

-			if (this.needFreeReturn) {

-				codeStream.return_();

-			}

-			// local variable attributes

-			codeStream.exitUserScope(scope);

-			codeStream.recordPositionsFrom(0, this.bodyEnd);

-			classFile.completeCodeAttribute(codeAttributeOffset);

-			attributeNumber++;

-		}

-		classFile.completeMethodInfo(methodAttributeOffset, attributeNumber);

-

-		// if a problem got reported during code gen, then trigger problem method creation

-		if (ignoreFurtherInvestigation) {

-			throw new AbortMethod(scope.referenceCompilationUnit().compilationResult, null);

-		}

-	}

-

-	public boolean isConstructor() {

-

-		return true;

-	}

-

-	public boolean isDefaultConstructor() {

-

-		return this.isDefaultConstructor;

-	}

-

-	public boolean isInitializationMethod() {

-

-		return true;

-	}

-

-	/*

-	 * Returns true if the constructor is directly involved in a cycle.

-	 * Given most constructors aren't, we only allocate the visited list

-	 * lazily.

-	 */

-	public boolean isRecursive(ArrayList visited) {

-

-		if (this.binding == null

-				|| this.constructorCall == null

-				|| this.constructorCall.binding == null

-				|| this.constructorCall.isSuperAccess()

-				|| !this.constructorCall.binding.isValidBinding()) {

-			return false;

-		}

-		

-		ConstructorDeclaration targetConstructor = 

-			((ConstructorDeclaration)this.scope.referenceType().declarationOf(constructorCall.binding.original()));

-		if (this == targetConstructor) return true; // direct case

-

-		if (visited == null) { // lazy allocation

-			visited = new ArrayList(1);

-		} else {

-			int index = visited.indexOf(this);

-			if (index >= 0) return index == 0; // only blame if directly part of the cycle

-		}

-		visited.add(this);

-

-		return targetConstructor.isRecursive(visited);

-	}

-	

-	public void parseStatements(Parser parser, CompilationUnitDeclaration unit) {

-

-		//fill up the constructor body with its statements

-		if (ignoreFurtherInvestigation)

-			return;

-		if (isDefaultConstructor){

-			constructorCall = SuperReference.implicitSuperConstructorCall();

-			constructorCall.sourceStart = sourceStart;

-			constructorCall.sourceEnd = sourceEnd; 

-			return;

-		}

-		parser.parse(this, unit);

-

-	}

-

-	public StringBuffer printBody(int indent, StringBuffer output) {

-

-		output.append(" {"); //$NON-NLS-1$

-		if (constructorCall != null) {

-			output.append('\n');

-			constructorCall.printStatement(indent, output); //$NON-NLS-1$ //$NON-NLS-2$

-		}

-		if (statements != null) {

-			for (int i = 0; i < statements.length; i++) {

-				output.append('\n');

-				statements[i].printStatement(indent, output); //$NON-NLS-1$

-			}

-		}

-		output.append('\n');

-		printIndent(indent == 0 ? 0 : indent - 1, output).append('}');

-		return output;

-	}

-	

-	public void resolveJavadoc() {

-		

-		if (this.binding == null || this.javadoc != null) {

-			super.resolveJavadoc();

-		} else if (!isDefaultConstructor) {

-			this.scope.problemReporter().javadocMissing(this.sourceStart, this.sourceEnd, this.binding.modifiers);

-		}

-	}

-

-	/*

-	 * Type checking for constructor, just another method, except for special check

-	 * for recursive constructor invocations.

-	 */

-	public void resolveStatements() {

-

-		if (!CharOperation.equals(scope.enclosingSourceType().sourceName, selector)){

-			scope.problemReporter().missingReturnType(this);

-		}

-

-		// if null ==> an error has occurs at parsing time ....

-		if (this.constructorCall != null) {

-			// e.g. using super() in java.lang.Object

-			if (this.binding != null

-				&& this.binding.declaringClass.id == T_Object

-				&& this.constructorCall.accessMode != ExplicitConstructorCall.This) {

-					if (this.constructorCall.accessMode == ExplicitConstructorCall.Super) {

-						scope.problemReporter().cannotUseSuperInJavaLangObject(this.constructorCall);

-					}

-					this.constructorCall = null;

-			} else {

-				this.constructorCall.resolve(this.scope);

-			}

-		}

-		if ((modifiers & AccSemicolonBody) != 0) {

-			scope.problemReporter().methodNeedBody(this);		

-		}

-		super.resolveStatements();

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		ClassScope classScope) {

-

-		

-		if (visitor.visit(this, classScope)) {

-			if (this.annotations != null) {

-				int annotationsLength = this.annotations.length;

-				for (int i = 0; i < annotationsLength; i++)

-					this.annotations[i].traverse(visitor, scope);

-			}

-			if (this.typeParameters != null) {

-				int typeParametersLength = this.typeParameters.length;

-				for (int i = 0; i < typeParametersLength; i++) {

-					this.typeParameters[i].traverse(visitor, scope);

-				}

-			}			

-			if (arguments != null) {

-				int argumentLength = arguments.length;

-				for (int i = 0; i < argumentLength; i++)

-					arguments[i].traverse(visitor, scope);

-			}

-			if (thrownExceptions != null) {

-				int thrownExceptionsLength = thrownExceptions.length;

-				for (int i = 0; i < thrownExceptionsLength; i++)

-					thrownExceptions[i].traverse(visitor, scope);

-			}

-			if (constructorCall != null)

-				constructorCall.traverse(visitor, scope);

-			if (statements != null) {

-				int statementsLength = statements.length;

-				for (int i = 0; i < statementsLength; i++)

-					statements[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, classScope);

-	}

-	public TypeParameter[] typeParameters() {

-	    return this.typeParameters;

-	}		

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ContinueStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ContinueStatement.js
deleted file mode 100644
index f127a20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ContinueStatement.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ContinueStatement extends BranchStatement {

-

-	public ContinueStatement(char[] l, int s, int e) {

-		

-		super(l, s, e);

-	}

-	

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// here requires to generate a sequence of finally blocks invocations depending corresponding

-		// to each of the traversed try statements, so that execution will terminate properly.

-

-		// lookup the label, this should answer the returnContext

-		FlowContext targetContext = (label == null)

-				? flowContext.getTargetContextForDefaultContinue()

-				: flowContext.getTargetContextForContinueLabel(label);

-

-		if (targetContext == null) {

-			if (label == null) {

-				currentScope.problemReporter().invalidContinue(this);

-			} else {

-				currentScope.problemReporter().undefinedLabel(this); 

-			}

-			return flowInfo; // pretend it did not continue since no actual target			

-		} 

-

-		if (targetContext == FlowContext.NotContinuableContext) {

-			currentScope.problemReporter().invalidContinue(this);

-			return flowInfo; // pretend it did not continue since no actual target

-		}

-		targetLabel = targetContext.continueLabel();

-		FlowContext traversedContext = flowContext;

-		int subIndex = 0, maxSub = 5;

-		subroutines = new SubRoutineStatement[maxSub];

-

-		do {

-			SubRoutineStatement sub;

-			if ((sub = traversedContext.subRoutine()) != null) {

-				if (subIndex == maxSub) {

-					System.arraycopy(subroutines, 0, (subroutines = new SubRoutineStatement[maxSub*=2]), 0, subIndex); // grow

-				}

-				subroutines[subIndex++] = sub;

-				if (sub.isSubRoutineEscaping()) {

-					break;

-				}

-			}

-			traversedContext.recordReturnFrom(flowInfo.unconditionalInits());

-

-			ASTNode node;

-			if ((node = traversedContext.associatedNode) instanceof TryStatement) {

-				TryStatement tryStatement = (TryStatement) node;

-				flowInfo.addInitializationsFrom(tryStatement.subRoutineInits); // collect inits			

-			} else if (traversedContext == targetContext) {

-				// only record continue info once accumulated through subroutines, and only against target context

-				targetContext.recordContinueFrom(flowInfo);

-				break;

-			}

-		} while ((traversedContext = traversedContext.parent) != null);

-		

-		// resize subroutines

-		if (subIndex != maxSub) {

-			System.arraycopy(subroutines, 0, (subroutines = new SubRoutineStatement[subIndex]), 0, subIndex);

-		}

-		return FlowInfo.DEAD_END;

-	}

-

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-

-		printIndent(tab, output).append("continue "); //$NON-NLS-1$

-		if (label != null) output.append(label);

-		return output.append(';');

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		visitor.visit(this, blockScope);

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/DoStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/DoStatement.js
deleted file mode 100644
index 5877703..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/DoStatement.js
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class DoStatement extends Statement {

-

-	public Expression condition;

-	public Statement action;

-

-	private Label breakLabel, continueLabel;

-

-	// for local variables table attributes

-	int mergedInitStateIndex = -1;

-

-	public DoStatement(Expression condition, Statement action, int s, int e) {

-

-		this.sourceStart = s;

-		this.sourceEnd = e;

-		this.condition = condition;

-		this.action = action;

-		// remember useful empty statement

-		if (action instanceof EmptyStatement) action.bits |= IsUsefulEmptyStatementMASK;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		breakLabel = new Label();

-		continueLabel = new Label();

-		LoopingFlowContext loopingContext =

-			new LoopingFlowContext(

-				flowContext,

-				this,

-				breakLabel,

-				continueLabel,

-				currentScope);

-

-		Constant cst = condition.constant;

-		boolean isConditionTrue = cst != NotAConstant && cst.booleanValue() == true;

-		cst = condition.optimizedBooleanConstant();

-		boolean isConditionOptimizedTrue = cst != NotAConstant && cst.booleanValue() == true;

-		boolean isConditionOptimizedFalse = cst != NotAConstant && cst.booleanValue() == false;

-

-		int previousMode = flowInfo.reachMode();

-				

-		if ((action != null) && !action.isEmptyBlock()) {

-			flowInfo = action.analyseCode(currentScope, loopingContext, flowInfo);

-

-			// code generation can be optimized when no need to continue in the loop

-			if (!flowInfo.isReachable() && !loopingContext.initsOnContinue.isReachable()) {

-				continueLabel = null;

-			}

-		}

-		/* Reset reach mode, to address following scenario.

-		 *   final blank;

-		 *   do { if (true) break; else blank = 0; } while(false);

-		 *   blank = 1; // may be initialized already 

-		 */

-		flowInfo.setReachMode(previousMode);

-		

-		flowInfo =

-			condition.analyseCode(

-				currentScope,

-				loopingContext,

-				(action == null

-					? flowInfo

-					: (flowInfo.mergedWith(loopingContext.initsOnContinue))));

-		if (!isConditionOptimizedFalse && continueLabel != null) {

-			loopingContext.complainOnFinalAssignmentsInLoop(currentScope, flowInfo);

-		}

-

-		// end of loop

-		FlowInfo mergedInfo = FlowInfo.mergedOptimizedBranches(

-				loopingContext.initsOnBreak, 

-				isConditionOptimizedTrue, 

-				flowInfo.initsWhenFalse(), 

-				false, // never consider opt false case for DO loop, since break can always occur (47776)

-				!isConditionTrue /*do{}while(true); unreachable(); */);

-		mergedInitStateIndex = currentScope.methodScope().recordInitializationStates(mergedInfo);

-		return mergedInfo;

-	}

-

-	/**

-	 * Do statement code generation

-	 *

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-

-		// labels management

-		Label actionLabel = new Label(codeStream);

-		actionLabel.place();

-		breakLabel.initialize(codeStream);

-		if (continueLabel != null) {

-			continueLabel.initialize(codeStream);

-		}

-

-		// generate action

-		if (action != null) {

-			action.generateCode(currentScope, codeStream);

-		}

-		// generate condition

-		if (continueLabel != null) {

-			continueLabel.place();

-			condition.generateOptimizedBoolean(

-				currentScope,

-				codeStream,

-				actionLabel,

-				null,

-				true);

-		}

-		breakLabel.place();

-

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			codeStream.addDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		printIndent(indent, output).append("do"); //$NON-NLS-1$

-		if (action == null)

-			output.append(" ;\n"); //$NON-NLS-1$

-		else {

-			output.append('\n');

-			action.printStatement(indent + 1, output).append('\n');

-		}

-		output.append("while ("); //$NON-NLS-1$

-		return condition.printExpression(0, output).append(");"); //$NON-NLS-1$

-	}

-	public void resolve(BlockScope scope) {

-

-		TypeBinding type = condition.resolveTypeExpecting(scope, BooleanBinding);

-		condition.computeConversion(scope, type, type);

-		if (action != null)

-			action.resolve(scope);

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			if (action != null) {

-				action.traverse(visitor, scope);

-			}

-			condition.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/DoubleLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/DoubleLiteral.js
deleted file mode 100644
index e9536a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/DoubleLiteral.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.util.FloatUtil;

-

-public class DoubleLiteral extends NumberLiteral {

-	double value;

-	public DoubleLiteral(char[] token, int s, int e) {

-		super(token, s, e);

-	}

-	public void computeConstant() {

-		Double computedValue;

-		try {

-			computedValue = Double.valueOf(String.valueOf(source));

-		} catch (NumberFormatException e) {

-			// hex floating point literal

-			// being rejected by 1.4 libraries where Double.valueOf(...) doesn't handle hex decimal floats

-			try {

-				double v = FloatUtil.valueOfHexDoubleLiteral(source);

-				if (v == Double.POSITIVE_INFINITY) {

-					// error: the number is too large to represent

-					return;

-				}

-				if (Double.isNaN(v)) {

-					// error: the number is too small to represent

-					return;

-				}

-				value = v;

-				constant = Constant.fromValue(v);

-			} catch (NumberFormatException e1) {

-				// if the computation of the constant fails

-			}

-			return;

-		}

-

-		final double doubleValue = computedValue.doubleValue();

-		if (doubleValue > Double.MAX_VALUE) {

-			// error: the number is too large to represent

-			return;

-		}

-		if (doubleValue < Double.MIN_VALUE) {

-			// see 1F6IGUU

-			// a true 0 only has '0' and '.' in mantissa

-			// 1.0e-5000d is non-zero, but underflows to 0

-			boolean isHexaDecimal = false;

-			label : for (int i = 0; i < source.length; i++) { //it is welled formated so just test against '0' and potential . D d  

-				switch (source[i]) {

-					case '0' :

-					case '.' :

-						break;

-					case 'x' :

-					case 'X' :

-						isHexaDecimal = true;

-						break;

-					case 'e' :

-					case 'E' :

-					case 'f' :

-					case 'F' :

-					case 'd' :

-					case 'D' :

-						if (isHexaDecimal) {

-							return;

-						}

-						// starting the exponent - mantissa is all zero

-						// no exponent - mantissa is all zero

-						break label;

-					case 'p' :

-					case 'P' :

-						break label;

-					default :

-						// error: the number is too small to represent

-						return;

-				}

-			}

-		}

-		value = doubleValue;

-		constant = Constant.fromValue(value);

-	}

-	/**

-	 * Code generation for the double literak

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-		int pc = codeStream.position;

-		if (valueRequired)

-			if ((implicitConversion >> 4) == T_double)

-				codeStream.generateInlinedValue(value);

-			else

-				codeStream.generateConstant(constant, implicitConversion);

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	public TypeBinding literalType(BlockScope scope) {

-		return DoubleBinding;

-	}

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-		visitor.visit(this, blockScope);

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EmptyStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EmptyStatement.js
deleted file mode 100644
index c7c9e13..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EmptyStatement.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-

-public class EmptyStatement extends Statement {

-

-	public EmptyStatement(int startPosition, int endPosition) {

-		this.sourceStart = startPosition;

-		this.sourceEnd = endPosition;

-	}

-

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-		return flowInfo;

-	}

-

-	// Report an error if necessary

-	public boolean complainIfUnreachable(FlowInfo flowInfo, BlockScope scope, boolean didAlreadyComplain) {

-		

-		// before 1.4, empty statements are tolerated anywhere

-		if (scope.environment().options.complianceLevel < ClassFileConstants.JDK1_4) {

-			return false;

-		}

-		return super.complainIfUnreachable(flowInfo, scope, didAlreadyComplain);

-	}

-	

-	public void generateCode(BlockScope currentScope, CodeStream codeStream){

-		// no bytecode, no need to check for reachability or recording source positions

-	}

-	

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-		return printIndent(tab, output).append(';');

-	}

-		

-	public void resolve(BlockScope scope) {

-		if ((bits & IsUsefulEmptyStatementMASK) == 0) {

-			scope.problemReporter().superfluousSemicolon(this.sourceStart, this.sourceEnd);

-		} else {

-			scope.problemReporter().emptyControlFlowStatement(this.sourceStart, this.sourceEnd);

-		}

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	

-

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EnumConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EnumConstant.js
deleted file mode 100644
index 3512823..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EnumConstant.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortType;

-

-/**

- * Enum constant node

- */

-public class EnumConstant extends TypeDeclaration {

-

-	public Expression[] arguments;

-

-	public EnumConstant(CompilationResult compilationResult) {

-		super(compilationResult);

-		this.compilationResult = compilationResult;

-	}

-

-	public StringBuffer print(int indent, StringBuffer output) {

-		output.append(name);

-		if (arguments != null) {

-			output.append('(');

-			int length = arguments.length;

-			for (int i = 0; i < length - 1; i++) {

-				arguments[i].print(0, output);

-				output.append(", ");//$NON-NLS-1$

-			}

-			arguments[length - 1].print(0, output);

-			output.append(')');

-		}

-		printBody(indent, output);

-		return output;

-	}

-

-	/**

-	 *	Iteration for a package member type

-	 *

-	 */

-	public void traverse(

-		ASTVisitor visitor,

-		CompilationUnitScope unitScope) {

-	

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, unitScope)) {

-				if (this.annotations != null) {

-					int annotationsLength = this.annotations.length;

-					for (int i = 0; i < annotationsLength; i++)

-						this.annotations[i].traverse(visitor, scope);

-				}

-				if (this.arguments != null) {

-					int length = this.arguments.length;

-					for (int i = 0; i < length; i++)

-						this.arguments[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++)

-						this.enums[i].traverse(visitor, scope);

-				}

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, unitScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-

-	/**

-	 *	Iteration for a local innertype

-	 *

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-		

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, blockScope)) {

-				if (this.annotations != null) {

-					int annotationsLength = this.annotations.length;

-					for (int i = 0; i < annotationsLength; i++)

-						this.annotations[i].traverse(visitor, scope);

-				}

-				if (this.arguments != null) {

-					int length = this.arguments.length;

-					for (int i = 0; i < length; i++)

-						this.arguments[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++)

-						this.enums[i].traverse(visitor, scope);

-				}

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, blockScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-

-	/**

-	 *	Iteration for a member innertype

-	 *

-	 */

-	public void traverse(ASTVisitor visitor, ClassScope classScope) {

-		

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, classScope)) {

-				if (this.annotations != null) {

-					int annotationsLength = this.annotations.length;

-					for (int i = 0; i < annotationsLength; i++)

-						this.annotations[i].traverse(visitor, scope);

-				}

-				if (this.arguments != null) {

-					int length = this.arguments.length;

-					for (int i = 0; i < length; i++)

-						this.arguments[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++)

-						this.enums[i].traverse(visitor, scope);

-				}

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, classScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EnumDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EnumDeclaration.js
deleted file mode 100644
index d92d99b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EnumDeclaration.js
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortType;

-

-/**

- * Enum declaration

- */

-public class EnumDeclaration extends TypeDeclaration {

-

-	public EnumConstant[] enumConstants;

-	

-	/**

-	 * @param compilationResult

-	 */

-	public EnumDeclaration(CompilationResult compilationResult) {

-		super(compilationResult);

-	}

-

-	public StringBuffer printBody(int indent, StringBuffer output) {

-

-		output.append(" {"); //$NON-NLS-1$

-		if (enumConstants != null) {

-			int length = enumConstants.length;

-			output.append('\n');

-			for (int i = 0; i < length - 1; i++) {

-				if (enumConstants[i] != null) {

-					enumConstants[i].print(indent + 1, output);

-					output.append(",\n");//$NON-NLS-1$

-				}

-			}

-			enumConstants[length - 1].print(indent + 1, output);

-			output.append("\n;\n");//$NON-NLS-1$

-		}

-		if (this.enums != null) {

-			for (int i = 0; i < this.enums.length; i++) {

-				if (this.enums[i] != null) {

-					output.append('\n');

-					this.enums[i].print(indent + 1, output);

-				}

-			}

-		}

-		if (memberTypes != null) {

-			for (int i = 0; i < memberTypes.length; i++) {

-				if (memberTypes[i] != null) {

-					output.append('\n');

-					memberTypes[i].print(indent + 1, output);

-				}

-			}

-		}

-		if (fields != null) {

-			for (int fieldI = 0; fieldI < fields.length; fieldI++) {

-				if (fields[fieldI] != null) {

-					output.append('\n');

-					fields[fieldI].print(indent + 1, output);

-				}

-			}

-		}

-		if (methods != null) {

-			for (int i = 0; i < methods.length; i++) {

-				if (methods[i] != null) {

-					output.append('\n');

-					methods[i].print(indent + 1, output); 

-				}

-			}

-		}

-		output.append('\n');

-		return printIndent(indent, output).append('}');

-	}	

-

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, blockScope)) {

-				if (this.typeParameters != null) {

-					int length = this.typeParameters.length;

-					for (int i = 0; i < length; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++) {

-						this.enums[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, blockScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-	public void traverse(ASTVisitor visitor, ClassScope classScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, classScope)) {

-				if (this.typeParameters != null) {

-					int typeParametersLength = this.typeParameters.length;

-					for (int i = 0; i < typeParametersLength; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++) {

-						this.enums[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, classScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}	

-

-	public void traverse(ASTVisitor visitor, CompilationUnitScope unitScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, unitScope)) {

-				if (this.typeParameters != null) {

-					int length = this.typeParameters.length;

-					for (int i = 0; i < length; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++) {

-						this.enums[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, unitScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EqualExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EqualExpression.js
deleted file mode 100644
index 7837252..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/EqualExpression.js
+++ /dev/null
@@ -1,454 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class EqualExpression extends BinaryExpression {

-

-	public EqualExpression(Expression left, Expression right,int operator) {

-		super(left,right,operator);

-	}

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-		if (((bits & OperatorMASK) >> OperatorSHIFT) == EQUAL_EQUAL) {

-			if ((left.constant != NotAConstant) && (left.constant.typeID() == T_boolean)) {

-				if (left.constant.booleanValue()) { //  true == anything

-					//  this is equivalent to the right argument inits 

-					return right.analyseCode(currentScope, flowContext, flowInfo);

-				} else { // false == anything

-					//  this is equivalent to the right argument inits negated

-					return right.analyseCode(currentScope, flowContext, flowInfo).asNegatedCondition();

-				}

-			}

-			if ((right.constant != NotAConstant) && (right.constant.typeID() == T_boolean)) {

-				if (right.constant.booleanValue()) { //  anything == true

-					//  this is equivalent to the right argument inits 

-					return left.analyseCode(currentScope, flowContext, flowInfo);

-				} else { // anything == false

-					//  this is equivalent to the right argument inits negated

-					return left.analyseCode(currentScope, flowContext, flowInfo).asNegatedCondition();

-				}

-			}

-			return right.analyseCode(

-				currentScope, flowContext, 

-				left.analyseCode(currentScope, flowContext, flowInfo).unconditionalInits()).unconditionalInits();

-		} else { //NOT_EQUAL :

-			if ((left.constant != NotAConstant) && (left.constant.typeID() == T_boolean)) {

-				if (!left.constant.booleanValue()) { //  false != anything

-					//  this is equivalent to the right argument inits 

-					return right.analyseCode(currentScope, flowContext, flowInfo);

-				} else { // true != anything

-					//  this is equivalent to the right argument inits negated

-					return right.analyseCode(currentScope, flowContext, flowInfo).asNegatedCondition();

-				}

-			}

-			if ((right.constant != NotAConstant) && (right.constant.typeID() == T_boolean)) {

-				if (!right.constant.booleanValue()) { //  anything != false

-					//  this is equivalent to the right argument inits 

-					return left.analyseCode(currentScope, flowContext, flowInfo);

-				} else { // anything != true

-					//  this is equivalent to the right argument inits negated

-					return left.analyseCode(currentScope, flowContext, flowInfo).asNegatedCondition();

-				}

-			}

-			return right.analyseCode(

-				currentScope, flowContext, 

-				left.analyseCode(currentScope, flowContext, flowInfo).unconditionalInits()).asNegatedCondition().unconditionalInits();

-		}

-	}

-	

-	public final void computeConstant(TypeBinding leftType, TypeBinding rightType) {

-		if ((this.left.constant != NotAConstant) && (this.right.constant != NotAConstant)) {

-			this.constant =

-				Constant.computeConstantOperationEQUAL_EQUAL(

-					left.constant,

-					leftType.id,

-					EQUAL_EQUAL,

-					right.constant,

-					rightType.id);

-			if (((this.bits & OperatorMASK) >> OperatorSHIFT) == NOT_EQUAL)

-				constant = Constant.fromValue(!constant.booleanValue());

-		} else {

-			this.constant = NotAConstant;

-			// no optimization for null == null

-		}

-	}

-	/**

-	 * Normal == or != code generation.

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-	

-		if (constant != NotAConstant) {

-			int pc = codeStream.position;

-			if (valueRequired) 

-				codeStream.generateConstant(constant, implicitConversion);

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		Label falseLabel;

-		bits |= OnlyValueRequiredMASK;

-		generateOptimizedBoolean(

-			currentScope, 

-			codeStream, 

-			null, 

-			falseLabel = new Label(codeStream), 

-			valueRequired);

-		if (falseLabel.hasForwardReferences()) {

-			if (valueRequired){

-				// comparison is TRUE 

-				codeStream.iconst_1();

-				if ((bits & ValueForReturnMASK) != 0){

-					codeStream.ireturn();

-					// comparison is FALSE

-					falseLabel.place();

-					codeStream.iconst_0();

-				} else {

-					Label endLabel = new Label(codeStream);

-					codeStream.goto_(endLabel);

-					codeStream.decrStackSize(1);

-					// comparison is FALSE

-					falseLabel.place();

-					codeStream.iconst_0();

-					endLabel.place();

-				}

-			} else {

-				falseLabel.place();

-			}	

-		}

-	}

-	/**

-	 * Boolean operator code generation

-	 *	Optimized operations are: == and !=

-	 */

-	public void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, Label trueLabel, Label falseLabel, boolean valueRequired) {

-	

-		if (constant != Constant.NotAConstant) {

-			super.generateOptimizedBoolean(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-			return;

-		}

-		if (((bits & OperatorMASK) >> OperatorSHIFT) == EQUAL_EQUAL) {

-			if ((left.implicitConversion & 0xF) /*compile-time*/ == T_boolean) {

-				generateOptimizedBooleanEqual(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-			} else {

-				generateOptimizedNonBooleanEqual(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-			}

-		} else {

-			if ((left.implicitConversion & 0xF) /*compile-time*/ == T_boolean) {

-				generateOptimizedBooleanEqual(currentScope, codeStream, falseLabel, trueLabel, valueRequired);

-			} else {

-				generateOptimizedNonBooleanEqual(currentScope, codeStream, falseLabel, trueLabel, valueRequired);

-			}

-		}

-	}

-	/**

-	 * Boolean generation for == with boolean operands

-	 *

-	 * Note this code does not optimize conditional constants !!!!

-	 */

-	public void generateOptimizedBooleanEqual(BlockScope currentScope, CodeStream codeStream, Label trueLabel, Label falseLabel, boolean valueRequired) {

-	

-		// optimized cases: true == x, false == x

-		if (left.constant != NotAConstant) {

-			boolean inline = left.constant.booleanValue();

-			right.generateOptimizedBoolean(currentScope, codeStream, (inline ? trueLabel : falseLabel), (inline ? falseLabel : trueLabel), valueRequired);

-			return;

-		} // optimized cases: x == true, x == false

-		if (right.constant != NotAConstant) {

-			boolean inline = right.constant.booleanValue();

-			left.generateOptimizedBoolean(currentScope, codeStream, (inline ? trueLabel : falseLabel), (inline ? falseLabel : trueLabel), valueRequired);

-			return;

-		}

-		// default case

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// implicit falling through the FALSE case

-					codeStream.if_icmpeq(trueLabel);

-				}

-			} else {

-				// implicit falling through the TRUE case

-				if (trueLabel == null) {

-					codeStream.if_icmpne(falseLabel);

-				} else {

-					// no implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-		// reposition the endPC

-		codeStream.updateLastRecordedEndPC(codeStream.position);					

-	}

-	/**

-	 * Boolean generation for == with non-boolean operands

-	 *

-	 */

-	public void generateOptimizedNonBooleanEqual(BlockScope currentScope, CodeStream codeStream, Label trueLabel, Label falseLabel, boolean valueRequired) {

-	

-		int pc = codeStream.position;

-		Constant inline;

-		if ((inline = right.constant) != NotAConstant) {

-			// optimized case: x == 0

-			if (((left.implicitConversion >> 4) == T_int) && (inline.intValue() == 0)) {

-				left.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicit falling through the FALSE case

-							codeStream.ifeq(trueLabel);

-						}

-					} else {

-						// implicit falling through the TRUE case

-						if (trueLabel == null) {

-							codeStream.ifne(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				codeStream.recordPositionsFrom(pc, this.sourceStart);

-				return;

-			}

-		}

-		if ((inline = left.constant) != NotAConstant) {

-			// optimized case: 0 == x

-			if (((left.implicitConversion >> 4) == T_int)

-				&& (inline.intValue() == 0)) {

-				right.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicit falling through the FALSE case

-							codeStream.ifeq(trueLabel);

-						}

-					} else {

-						// implicit falling through the TRUE case

-						if (trueLabel == null) {

-							codeStream.ifne(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-				codeStream.recordPositionsFrom(pc, this.sourceStart);

-				return;

-			}

-		}

-		// null cases

-		// optimized case: x == null

-		if (right instanceof NullLiteral) {

-			if (left instanceof NullLiteral) {

-				// null == null

-				if (valueRequired) {

-						if ((bits & OnlyValueRequiredMASK) != 0) {

-							if (((bits & OperatorMASK) >> OperatorSHIFT) == EQUAL_EQUAL) {

-								codeStream.iconst_1();

-							} else {

-								codeStream.iconst_0();

-							}

-						} else {

-							if (falseLabel == null) {

-								// implicit falling through the FALSE case

-								if (trueLabel != null) {

-									codeStream.goto_(trueLabel);

-								}

-							}

-					}

-				}

-			} else {

-				left.generateCode(currentScope, codeStream, valueRequired);

-				if (valueRequired) {

-					if (falseLabel == null) {

-						if (trueLabel != null) {

-							// implicit falling through the FALSE case

-							codeStream.ifnull(trueLabel);

-						}

-					} else {

-						// implicit falling through the TRUE case

-						if (trueLabel == null) {

-							codeStream.ifnonnull(falseLabel);

-						} else {

-							// no implicit fall through TRUE/FALSE --> should never occur

-						}

-					}

-				}

-			}

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		} else if (left instanceof NullLiteral) { // optimized case: null == x

-			right.generateCode(currentScope, codeStream, valueRequired);

-			if (valueRequired) {

-				if (falseLabel == null) {

-					if (trueLabel != null) {

-						// implicit falling through the FALSE case

-						codeStream.ifnull(trueLabel);

-					}

-				} else {

-					// implicit falling through the TRUE case

-					if (trueLabel == null) {

-						codeStream.ifnonnull(falseLabel);

-					} else {

-						// no implicit fall through TRUE/FALSE --> should never occur

-					}

-				}

-			}

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-	

-		// default case

-		left.generateCode(currentScope, codeStream, valueRequired);

-		right.generateCode(currentScope, codeStream, valueRequired);

-		if (valueRequired) {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// implicit falling through the FALSE case

-					switch (left.implicitConversion >> 4) { // operand runtime type

-						case T_int :

-							codeStream.if_icmpeq(trueLabel);

-							break;

-						case T_float :

-							codeStream.fcmpl();

-							codeStream.ifeq(trueLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.ifeq(trueLabel);

-							break;

-						case T_double :

-							codeStream.dcmpl();

-							codeStream.ifeq(trueLabel);

-							break;

-						default :

-							codeStream.if_acmpeq(trueLabel);

-					}

-				}

-			} else {

-				// implicit falling through the TRUE case

-				if (trueLabel == null) {

-					switch (left.implicitConversion >> 4) { // operand runtime type

-						case T_int :

-							codeStream.if_icmpne(falseLabel);

-							break;

-						case T_float :

-							codeStream.fcmpl();

-							codeStream.ifne(falseLabel);

-							break;

-						case T_long :

-							codeStream.lcmp();

-							codeStream.ifne(falseLabel);

-							break;

-						case T_double :

-							codeStream.dcmpl();

-							codeStream.ifne(falseLabel);

-							break;

-						default :

-							codeStream.if_acmpne(falseLabel);

-					}

-				} else {

-					// no implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	public boolean isCompactableOperation() {

-		return false;

-	}

-	public TypeBinding resolveType(BlockScope scope) {

-	

-			boolean leftIsCast, rightIsCast;

-			if ((leftIsCast = left instanceof CastExpression) == true) left.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-			TypeBinding leftType = left.resolveType(scope);

-	

-			if ((rightIsCast = right instanceof CastExpression) == true) right.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-			TypeBinding rightType = right.resolveType(scope);

-	

-		// always return BooleanBinding

-		if (leftType == null || rightType == null){

-			constant = NotAConstant;		

-			return null;

-		}

-	

-		// both base type

-		if (leftType.isBaseType() && rightType.isBaseType()) {

-			// the code is an int

-			// (cast)  left   == (cast)  right --> result

-			//  0000   0000       0000   0000      0000

-			//  <<16   <<12       <<8    <<4       <<0

-			int operatorSignature = OperatorSignatures[EQUAL_EQUAL][ (leftType.id << 4) + rightType.id];

-			left.implicitConversion = operatorSignature >>> 12;

-			right.implicitConversion = (operatorSignature >>> 4) & 0x000FF;

-			bits |= operatorSignature & 0xF;		

-			if ((operatorSignature & 0x0000F) == T_undefined) {

-				constant = Constant.NotAConstant;

-				scope.problemReporter().invalidOperator(this, leftType, rightType);

-				return null;

-			}

-			// check need for operand cast

-			if (leftIsCast || rightIsCast) {

-				CastExpression.checkNeedForArgumentCasts(scope, EQUAL_EQUAL, operatorSignature, left, leftType.id, leftIsCast, right, rightType.id, rightIsCast);

-			}

-			computeConstant(leftType, rightType);

-			return this.resolvedType = BooleanBinding;

-		}

-	

-		// Object references 

-		// spec 15.20.3

-		if (this.checkCastTypesCompatibility(scope, leftType, rightType, null) 

-				|| this.checkCastTypesCompatibility(scope, rightType, leftType, null)) {

-

-			// (special case for String)

-			if ((rightType.id == T_String) && (leftType.id == T_String)) {

-				computeConstant(leftType, rightType);

-			} else {

-				constant = NotAConstant;

-			}

-			if (rightType.id == T_String) {

-				right.implicitConversion = String2String;

-			}

-			if (leftType.id == T_String) {

-				left.implicitConversion = String2String;

-			}

-			// check need for operand cast

-			boolean unnecessaryLeftCast = (left.bits & UnnecessaryCastMask) != 0;

-			boolean unnecessaryRightCast = (right.bits & UnnecessaryCastMask) != 0;

-			if (unnecessaryLeftCast || unnecessaryRightCast) {

-				TypeBinding alternateLeftType = unnecessaryLeftCast ? ((CastExpression)left).expression.resolvedType : leftType;

-				TypeBinding alternateRightType = unnecessaryRightCast ? ((CastExpression)right).expression.resolvedType : rightType;

-				if (this.checkCastTypesCompatibility(scope, alternateLeftType, alternateRightType, null) 

-						|| this.checkCastTypesCompatibility(scope, alternateRightType, alternateLeftType, null)) {

-					if (unnecessaryLeftCast) scope.problemReporter().unnecessaryCast((CastExpression)left); 

-					if (unnecessaryRightCast) scope.problemReporter().unnecessaryCast((CastExpression)right);

-				}

-			}

-			return this.resolvedType = BooleanBinding;

-		}

-		constant = NotAConstant;

-		scope.problemReporter().notCompatibleTypesError(this, leftType, rightType);

-		return null;

-	}

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			left.traverse(visitor, scope);

-			right.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ExplicitConstructorCall.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ExplicitConstructorCall.js
deleted file mode 100644
index ce80ae6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ExplicitConstructorCall.js
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ExplicitConstructorCall extends Statement implements InvocationSite {

-		

-	public Expression[] arguments;

-	public Expression qualification;

-	public MethodBinding binding;							// exact binding resulting from lookup

-	protected MethodBinding codegenBinding;	// actual binding used for code generation (if no synthetic accessor)

-	MethodBinding syntheticAccessor;						// synthetic accessor for inner-emulation

-	public int accessMode;

-	public TypeReference[] typeArguments;

-	public TypeBinding[] genericTypeArguments;

-	

-	public final static int ImplicitSuper = 1;

-	public final static int Super = 2;

-	public final static int This = 3;

-

-	public VariableBinding[][] implicitArguments;

-	boolean discardEnclosingInstance;

-	

-	// TODO Remove once DOMParser is activated

-	public int typeArgumentsSourceStart;

-

-	public ExplicitConstructorCall(int accessMode) {

-		this.accessMode = accessMode;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// must verify that exceptions potentially thrown by this expression are caught in the method.

-

-		try {

-			((MethodScope) currentScope).isConstructorCall = true;

-

-			// process enclosing instance

-			if (qualification != null) {

-				flowInfo =

-					qualification

-						.analyseCode(currentScope, flowContext, flowInfo)

-						.unconditionalInits();

-			}

-			// process arguments

-			if (arguments != null) {

-				for (int i = 0, max = arguments.length; i < max; i++) {

-					flowInfo =

-						arguments[i]

-							.analyseCode(currentScope, flowContext, flowInfo)

-							.unconditionalInits();

-				}

-			}

-

-			ReferenceBinding[] thrownExceptions;

-			if ((thrownExceptions = binding.thrownExceptions) != NoExceptions) {

-				// check exceptions

-				flowContext.checkExceptionHandlers(

-					thrownExceptions,

-					(accessMode == ImplicitSuper)

-						? (ASTNode) currentScope.methodScope().referenceContext

-						: (ASTNode) this,

-					flowInfo,

-					currentScope);

-			}

-			manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-			manageSyntheticAccessIfNecessary(currentScope, flowInfo);

-			return flowInfo;

-		} finally {

-			((MethodScope) currentScope).isConstructorCall = false;

-		}

-	}

-

-	/**

-	 * Constructor call code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		try {

-			((MethodScope) currentScope).isConstructorCall = true;

-

-			int pc = codeStream.position;

-			codeStream.aload_0();

-

-			// handling innerclass constructor invocation

-			ReferenceBinding targetType = this.codegenBinding.declaringClass;

-			// handling innerclass instance allocation - enclosing instance arguments

-			if (targetType.isNestedType()) {

-				codeStream.generateSyntheticEnclosingInstanceValues(

-					currentScope,

-					targetType,

-					discardEnclosingInstance ? null : qualification,

-					this);

-			}

-			// regular code gen

-			if (arguments != null) {

-				for (int i = 0, max = arguments.length; i < max; i++) {

-					arguments[i].generateCode(currentScope, codeStream, true);

-				}

-			}

-			// handling innerclass instance allocation - outer local arguments

-			if (targetType.isNestedType()) {

-				codeStream.generateSyntheticOuterArgumentValues(

-					currentScope,

-					targetType,

-					this);

-			}

-			if (syntheticAccessor != null) {

-				// synthetic accessor got some extra arguments appended to its signature, which need values

-				for (int i = 0,

-					max = syntheticAccessor.parameters.length - this.codegenBinding.parameters.length;

-					i < max;

-					i++) {

-					codeStream.aconst_null();

-				}

-				codeStream.invokespecial(syntheticAccessor);

-			} else {

-				codeStream.invokespecial(this.codegenBinding);

-			}

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-		} finally {

-			((MethodScope) currentScope).isConstructorCall = false;

-		}

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()

-	 */

-	public TypeBinding[] genericTypeArguments() {

-		return this.genericTypeArguments;

-	}

-	public boolean isImplicitSuper() {

-		//return true if I'm of these compiler added statement super();

-

-		return (accessMode == ImplicitSuper);

-	}

-

-	public boolean isSuperAccess() {

-

-		return accessMode != This;

-	}

-

-	public boolean isTypeAccess() {

-

-		return true;

-	}

-

-	/* Inner emulation consists in either recording a dependency 

-	 * link only, or performing one level of propagation.

-	 *

-	 * Dependency mechanism is used whenever dealing with source target

-	 * types, since by the time we reach them, we might not yet know their

-	 * exact need.

-	 */

-	void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-		ReferenceBinding superType;

-

-		if (!flowInfo.isReachable()) return;

-		// perform some emulation work in case there is some and we are inside a local type only

-		if ((superType = binding.declaringClass).isNestedType()

-			&& currentScope.enclosingSourceType().isLocalType()) {

-

-			if (superType.isLocalType()) {

-				((LocalTypeBinding) superType).addInnerEmulationDependent(currentScope, qualification != null);

-			} else {

-				// locally propagate, since we already now the desired shape for sure

-				currentScope.propagateInnerEmulation(superType, qualification != null);

-			}

-		}

-	}

-

-	public void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-		// if constructor from parameterized type got found, use the original constructor at codegen time

-		this.codegenBinding = this.binding.original();

-		

-		// perform some emulation work in case there is some and we are inside a local type only

-		if (binding.isPrivate() && accessMode != This) {

-

-			if (currentScope.environment().options.isPrivateConstructorAccessChangingVisibility) {

-				this.codegenBinding.tagForClearingPrivateModifier();

-				// constructor will not be dumped as private, no emulation required thus

-			} else {

-				syntheticAccessor =

-					((SourceTypeBinding) this.codegenBinding.declaringClass).addSyntheticMethod(this.codegenBinding, isSuperAccess());

-				currentScope.problemReporter().needToEmulateMethodAccess(this.codegenBinding, this);

-			}

-		}

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		printIndent(indent, output);

-		if (qualification != null) qualification.printExpression(0, output).append('.');

-		if (typeArguments != null) {

-			output.append('<');//$NON-NLS-1$

-			int max = typeArguments.length - 1;

-			for (int j = 0; j < max; j++) {

-				typeArguments[j].print(0, output);

-				output.append(", ");//$NON-NLS-1$

-			}

-			typeArguments[max].print(0, output);

-			output.append('>');

-		}		

-		if (accessMode == This) {

-			output.append("this("); //$NON-NLS-1$

-		} else {

-			output.append("super("); //$NON-NLS-1$

-		}

-		if (arguments != null) {

-			for (int i = 0; i < arguments.length; i++) {

-				if (i > 0) output.append(", "); //$NON-NLS-1$

-				arguments[i].printExpression(0, output);

-			}

-		}

-		return output.append(");"); //$NON-NLS-1$

-	}

-	

-	public void resolve(BlockScope scope) {

-		// the return type should be void for a constructor.

-		// the test is made into getConstructor

-

-		// mark the fact that we are in a constructor call.....

-		// unmark at all returns

-		MethodScope methodScope = scope.methodScope();

-		try {

-			AbstractMethodDeclaration methodDeclaration = methodScope.referenceMethod();

-			if (methodDeclaration == null 

-					|| !methodDeclaration.isConstructor()

-					|| ((ConstructorDeclaration) methodDeclaration).constructorCall != this) {

-				scope.problemReporter().invalidExplicitConstructorCall(this);

-				return;

-			}

-			methodScope.isConstructorCall = true;

-			ReferenceBinding receiverType = scope.enclosingSourceType();

-			if (accessMode != This)

-				receiverType = receiverType.superclass();

-

-			if (receiverType == null) {

-				return;

-			}

-

-			// qualification should be from the type of the enclosingType

-			if (qualification != null) {

-				if (accessMode != Super) {

-					scope.problemReporter().unnecessaryEnclosingInstanceSpecification(

-						qualification,

-						receiverType);

-				}

-				ReferenceBinding enclosingType = receiverType.enclosingType();

-				if (enclosingType == null) {

-					scope.problemReporter().unnecessaryEnclosingInstanceSpecification(

-						qualification,

-						receiverType);

-					discardEnclosingInstance = true;

-				} else {

-					TypeBinding qTb = qualification.resolveTypeExpecting(scope, enclosingType);

-					qualification.computeConversion(scope, qTb, qTb);

-				}

-			}

-			// resolve type arguments (for generic constructor call)

-			if (this.typeArguments != null) {

-				int length = this.typeArguments.length;

-				boolean argHasError = false; // typeChecks all arguments

-				this.genericTypeArguments = new TypeBinding[length];

-				for (int i = 0; i < length; i++) {

-					if ((this.genericTypeArguments[i] = this.typeArguments[i].resolveType(scope)) == null) {

-						argHasError = true;

-					}

-				}

-				if (argHasError) {

-					return;

-				}

-			}			

-	

-			// arguments buffering for the method lookup

-			TypeBinding[] argumentTypes = NoParameters;

-			boolean argsContainCast = false;

-			if (arguments != null) {

-				boolean argHasError = false; // typeChecks all arguments

-				int length = arguments.length;

-				argumentTypes = new TypeBinding[length];

-				for (int i = 0; i < length; i++) {

-					Expression argument = this.arguments[i];

-					if (argument instanceof CastExpression) {

-						argument.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-						argsContainCast = true;

-					}

-					if ((argumentTypes[i] = argument.resolveType(scope)) == null) {

-						argHasError = true;

-					}

-				}

-				if (argHasError) {

-					return;

-				}

-			}

-			if ((binding = scope.getConstructor(receiverType, argumentTypes, this)).isValidBinding()) {

-				if (isMethodUseDeprecated(binding, scope))

-					scope.problemReporter().deprecatedMethod(binding, this);

-				if (this.arguments != null)

-					checkInvocationArguments(scope, null, receiverType, binding, this.arguments, argumentTypes, argsContainCast, this);

-				if (binding.isPrivate()) {

-					binding.original().modifiers |= AccPrivateUsed;

-				}				

-			} else {

-				if (binding.declaringClass == null)

-					binding.declaringClass = receiverType;

-				scope.problemReporter().invalidConstructor(this, binding);

-			}

-		} finally {

-			methodScope.isConstructorCall = false;

-		}

-	}

-

-	public void setActualReceiverType(ReferenceBinding receiverType) {

-		// ignored

-	}

-

-	public void setDepth(int depth) {

-		// ignore for here

-	}

-

-	public void setFieldIndex(int depth) {

-		// ignore for here

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			if (this.qualification != null) {

-				this.qualification.traverse(visitor, scope);

-			}

-			if (this.typeArguments != null) {

-				for (int i = 0, typeArgumentsLength = this.typeArguments.length; i < typeArgumentsLength; i++) {

-					this.typeArguments[i].traverse(visitor, scope);

-				}			

-			}

-			if (this.arguments != null) {

-				for (int i = 0, argumentLength = this.arguments.length; i < argumentLength; i++)

-					this.arguments[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Expression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Expression.js
deleted file mode 100644
index 3f3d98c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Expression.js
+++ /dev/null
@@ -1,757 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import java.util.ArrayList;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.*;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public abstract class Expression extends Statement {

-

-	public static final boolean isConstantValueRepresentable(

-		Constant constant,

-		int constantTypeID,

-		int targetTypeID) {

-

-		//true if there is no loss of precision while casting.

-		// constantTypeID == constant.typeID

-		if (targetTypeID == constantTypeID)

-			return true;

-		switch (targetTypeID) {

-			case T_char :

-				switch (constantTypeID) {

-					case T_char :

-						return true;

-					case T_double :

-						return constant.doubleValue() == constant.charValue();

-					case T_float :

-						return constant.floatValue() == constant.charValue();

-					case T_int :

-						return constant.intValue() == constant.charValue();

-					case T_short :

-						return constant.shortValue() == constant.charValue();

-					case T_byte :

-						return constant.byteValue() == constant.charValue();

-					case T_long :

-						return constant.longValue() == constant.charValue();

-					default :

-						return false;//boolean

-				} 

-

-			case T_float :

-				switch (constantTypeID) {

-					case T_char :

-						return constant.charValue() == constant.floatValue();

-					case T_double :

-						return constant.doubleValue() == constant.floatValue();

-					case T_float :

-						return true;

-					case T_int :

-						return constant.intValue() == constant.floatValue();

-					case T_short :

-						return constant.shortValue() == constant.floatValue();

-					case T_byte :

-						return constant.byteValue() == constant.floatValue();

-					case T_long :

-						return constant.longValue() == constant.floatValue();

-					default :

-						return false;//boolean

-				} 

-				

-			case T_double :

-				switch (constantTypeID) {

-					case T_char :

-						return constant.charValue() == constant.doubleValue();

-					case T_double :

-						return true;

-					case T_float :

-						return constant.floatValue() == constant.doubleValue();

-					case T_int :

-						return constant.intValue() == constant.doubleValue();

-					case T_short :

-						return constant.shortValue() == constant.doubleValue();

-					case T_byte :

-						return constant.byteValue() == constant.doubleValue();

-					case T_long :

-						return constant.longValue() == constant.doubleValue();

-					default :

-						return false; //boolean

-				} 

-				

-			case T_byte :

-				switch (constantTypeID) {

-					case T_char :

-						return constant.charValue() == constant.byteValue();

-					case T_double :

-						return constant.doubleValue() == constant.byteValue();

-					case T_float :

-						return constant.floatValue() == constant.byteValue();

-					case T_int :

-						return constant.intValue() == constant.byteValue();

-					case T_short :

-						return constant.shortValue() == constant.byteValue();

-					case T_byte :

-						return true;

-					case T_long :

-						return constant.longValue() == constant.byteValue();

-					default :

-						return false; //boolean

-				} 

-				

-			case T_short :

-				switch (constantTypeID) {

-					case T_char :

-						return constant.charValue() == constant.shortValue();

-					case T_double :

-						return constant.doubleValue() == constant.shortValue();

-					case T_float :

-						return constant.floatValue() == constant.shortValue();

-					case T_int :

-						return constant.intValue() == constant.shortValue();

-					case T_short :

-						return true;

-					case T_byte :

-						return constant.byteValue() == constant.shortValue();

-					case T_long :

-						return constant.longValue() == constant.shortValue();

-					default :

-						return false; //boolean

-				} 

-				

-			case T_int :

-				switch (constantTypeID) {

-					case T_char :

-						return constant.charValue() == constant.intValue();

-					case T_double :

-						return constant.doubleValue() == constant.intValue();

-					case T_float :

-						return constant.floatValue() == constant.intValue();

-					case T_int :

-						return true;

-					case T_short :

-						return constant.shortValue() == constant.intValue();

-					case T_byte :

-						return constant.byteValue() == constant.intValue();

-					case T_long :

-						return constant.longValue() == constant.intValue();

-					default :

-						return false; //boolean

-				} 

-				

-			case T_long :

-				switch (constantTypeID) {

-					case T_char :

-						return constant.charValue() == constant.longValue();

-					case T_double :

-						return constant.doubleValue() == constant.longValue();

-					case T_float :

-						return constant.floatValue() == constant.longValue();

-					case T_int :

-						return constant.intValue() == constant.longValue();

-					case T_short :

-						return constant.shortValue() == constant.longValue();

-					case T_byte :

-						return constant.byteValue() == constant.longValue();

-					case T_long :

-						return true;

-					default :

-						return false; //boolean

-				} 

-				

-			default :

-				return false; //boolean

-		} 

-	}

-	

-	public Constant constant;

-	

-	//Some expression may not be used - from a java semantic point

-	//of view only - as statements. Other may. In order to avoid the creation

-	//of wrappers around expression in order to tune them as expression

-	//Expression is a subclass of Statement. See the message isValidJavaStatement()

-

-	public int implicitConversion;

-	public TypeBinding resolvedType;

-

-	public Expression() {

-		super();

-	}

-

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-

-		return flowInfo;

-	}

-

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, boolean valueRequired) {

-

-		return analyseCode(currentScope, flowContext, flowInfo);

-	}

-

-	/**

-	 * Returns false if cast is not legal. 

-	 */

-	public final boolean checkCastTypesCompatibility(

-		BlockScope scope,

-		TypeBinding castType,

-		TypeBinding expressionType,

-		Expression expression) {

-	

-		// see specifications 5.5

-		// handle errors and process constant when needed

-	

-		// if either one of the type is null ==>

-		// some error has been already reported some where ==>

-		// we then do not report an obvious-cascade-error.

-	

-		if (castType == null || expressionType == null) return true;

-	

-		// identity conversion cannot be performed upfront, due to side-effects

-		// like constant propagation

-				

-		if (castType.isBaseType()) {

-			if (expressionType.isBaseType()) {

-				if (expressionType == castType) {

-					if (expression != null) {

-						this.constant = expression.constant; //use the same constant

-					}

-					tagAsUnnecessaryCast(scope, castType);

-					return true;

-				}

-				boolean necessary = false;

-				if (expressionType.isCompatibleWith(castType)

-						|| (necessary = BaseTypeBinding.isNarrowing(castType.id, expressionType.id))) {

-					if (expression != null) {

-						expression.implicitConversion = (castType.id << 4) + expressionType.id;

-						if (expression.constant != Constant.NotAConstant) {

-							constant = expression.constant.castTo(expression.implicitConversion);

-						}

-					}

-					if (!necessary) tagAsUnnecessaryCast(scope, castType);

-					return true;

-					

-				}

-			}

-			reportIllegalCast(scope, castType, expressionType);

-			return false;

-		}

-	

-		//-----------cast to something which is NOT a base type--------------------------	

-		if (expressionType == NullBinding) {

-			tagAsUnnecessaryCast(scope, castType);

-			return true; //null is compatible with every thing

-		}

-		if (expressionType.isBaseType()) {

-			reportIllegalCast(scope, castType, expressionType);

-			return false;

-		}

-	

-		if (expressionType.isArrayType()) {

-			if (castType == expressionType) {

-				tagAsUnnecessaryCast(scope, castType);

-				return true; // identity conversion

-			}

-	

-			if (castType.isArrayType()) {

-				//------- (castType.isArray) expressionType.isArray -----------

-				TypeBinding exprElementType = ((ArrayBinding) expressionType).elementsType();

-				if (exprElementType.isBaseType()) {

-					// <---stop the recursion------- 

-					if (((ArrayBinding) castType).elementsType() == exprElementType) {

-						tagAsNeedCheckCast();

-						return true;

-					} else {

-						reportIllegalCast(scope, castType, expressionType);

-						return false;

-					}

-				}

-				// recursively on the elements...

-				return checkCastTypesCompatibility(

-					scope,

-					((ArrayBinding) castType).elementsType(),

-					exprElementType,

-					expression);

-			} else if (

-				castType.isClass()) {

-				//------(castType.isClass) expressionType.isArray ---------------	

-				if (castType.id == T_Object) {

-					tagAsUnnecessaryCast(scope, castType);

-					return true;

-				}

-			} else { //------- (castType.isInterface) expressionType.isArray -----------

-				if (castType.id == T_JavaLangCloneable || castType.id == T_JavaIoSerializable) {

-					tagAsNeedCheckCast();

-					return true;

-				}

-			}

-			reportIllegalCast(scope, castType, expressionType);

-			return false;

-		}

-	

-		if (expressionType.isClass()) {

-			if (castType.isArrayType()) {

-				// ---- (castType.isArray) expressionType.isClass -------

-				if (expressionType.id == T_Object) { // potential runtime error

-					tagAsNeedCheckCast();

-					return true;

-				}

-			} else if (castType.isClass()) { // ----- (castType.isClass) expressionType.isClass ------

-				

-				ReferenceBinding match = ((ReferenceBinding)expressionType).findSuperTypeErasingTo((ReferenceBinding)castType.erasure());

-				if (match != null) {

-					if (expression != null && castType.id == T_String) this.constant = expression.constant; // (String) cst is still a constant

-					return checkUnsafeCast(scope, castType, expressionType, match, false);

-				}

-				match = ((ReferenceBinding)castType).findSuperTypeErasingTo((ReferenceBinding)expressionType.erasure());

-				if (match != null) {

-					tagAsNeedCheckCast();

-					return checkUnsafeCast(scope, castType, expressionType, match, true);

-				}

-			} else { // ----- (castType.isInterface) expressionType.isClass -------  

-

-				ReferenceBinding match = ((ReferenceBinding)expressionType).findSuperTypeErasingTo((ReferenceBinding)castType.erasure());

-				if (match != null) {

-					return checkUnsafeCast(scope, castType, expressionType, match, false);

-				}

-				// a subclass may implement the interface ==> no check at compile time

-				if (!((ReferenceBinding) expressionType).isFinal()) {

-					tagAsNeedCheckCast();

-					match = ((ReferenceBinding)castType).findSuperTypeErasingTo((ReferenceBinding)expressionType.erasure());

-					if (match != null) {

-						return checkUnsafeCast(scope, castType, expressionType, match, true);

-					}

-					return true;

-				}

-				// no subclass for expressionType, thus compile-time check is valid

-			}

-			reportIllegalCast(scope, castType, expressionType);

-			return false;

-		}

-	

-		//	if (expressionType.isInterface()) { cannot be anything else

-		if (castType.isArrayType()) {

-			// ----- (castType.isArray) expressionType.isInterface ------

-			if (expressionType.id == T_JavaLangCloneable

-					|| expressionType.id == T_JavaIoSerializable) {// potential runtime error

-				tagAsNeedCheckCast();

-				return true;

-			} else {

-				reportIllegalCast(scope, castType, expressionType);

-				return false;

-			}

-		} else if (castType.isClass()) { // ----- (castType.isClass) expressionType.isInterface --------

-

-			if (castType.id == T_Object) { // no runtime error

-				tagAsUnnecessaryCast(scope, castType);

-				return true;

-			}

-			if (((ReferenceBinding) castType).isFinal()) {

-				// no subclass for castType, thus compile-time check is valid

-				ReferenceBinding match = ((ReferenceBinding)castType).findSuperTypeErasingTo((ReferenceBinding)expressionType.erasure());

-				if (match == null) {

-					// potential runtime error

-					reportIllegalCast(scope, castType, expressionType);

-					return false;

-				}				

-			}

-		} else { // ----- (castType.isInterface) expressionType.isInterface -------

-

-			ReferenceBinding match = ((ReferenceBinding)expressionType).findSuperTypeErasingTo((ReferenceBinding)castType.erasure());

-			if (match != null) {

-				return checkUnsafeCast(scope, castType, expressionType, match, false);

-			}

-			

-			match = ((ReferenceBinding)castType).findSuperTypeErasingTo((ReferenceBinding)expressionType.erasure());

-			if (match != null) {

-				tagAsNeedCheckCast();

-				return checkUnsafeCast(scope, castType, expressionType, match, true);

-			}  else {

-				MethodBinding[] castTypeMethods = getAllInheritedMethods((ReferenceBinding) castType);

-				MethodBinding[] expressionTypeMethods =

-					getAllInheritedMethods((ReferenceBinding) expressionType);

-				int exprMethodsLength = expressionTypeMethods.length;

-				for (int i = 0, castMethodsLength = castTypeMethods.length; i < castMethodsLength; i++) {

-					for (int j = 0; j < exprMethodsLength; j++) {

-						if ((castTypeMethods[i].returnType != expressionTypeMethods[j].returnType)

-								&& (CharOperation.equals(castTypeMethods[i].selector, expressionTypeMethods[j].selector))

-								&& castTypeMethods[i].areParametersEqual(expressionTypeMethods[j])) {

-							reportIllegalCast(scope, castType, expressionType);

-							return false;

-

-						}

-					}

-				}

-			}

-		}

-		tagAsNeedCheckCast();

-		return true;

-	}	

-	

-	private MethodBinding[] getAllInheritedMethods(ReferenceBinding binding) {

-		ArrayList collector = new ArrayList();

-		getAllInheritedMethods0(binding, collector);

-		return (MethodBinding[]) collector.toArray(new MethodBinding[collector.size()]);

-	}

-	

-	private void getAllInheritedMethods0(ReferenceBinding binding, ArrayList collector) {

-		if (!binding.isInterface()) return;

-		MethodBinding[] methodBindings = binding.methods();

-		for (int i = 0, max = methodBindings.length; i < max; i++) {

-			collector.add(methodBindings[i]);

-		}

-		ReferenceBinding[] superInterfaces = binding.superInterfaces();

-		for (int i = 0, max = superInterfaces.length; i < max; i++) {

-			getAllInheritedMethods0(superInterfaces[i], collector);

-		}

-	}

-

-	public boolean checkUnsafeCast(Scope scope, TypeBinding castType, TypeBinding expressionType, TypeBinding match, boolean isNarrowing) {

-		if (match == castType) {

-			if (!isNarrowing) tagAsUnnecessaryCast(scope, castType);

-			return true;

-		}

-		if (castType.isBoundParameterizedType() || castType.isGenericType()) {

-			if (match.isProvablyDistinctFrom(isNarrowing ? expressionType : castType)) {

-				reportIllegalCast(scope, castType, expressionType);

-				return false; 

-			}

-		}

-		if (!isNarrowing) tagAsUnnecessaryCast(scope, castType);

-		return true;

-	}

-	

-	/**

-	 * Base types need that the widening is explicitly done by the compiler using some bytecode like i2f.

-	 * Also check unsafe type operations.

-	 */ 

-	public void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType) {

-

-		if (runtimeTimeType == null || compileTimeType == null)

-			return;

-		if (this.implicitConversion != 0) return; // already set independantly

-		

-		switch (runtimeTimeType.id) {

-			case T_byte :

-			case T_short :

-			case T_char :

-				this.implicitConversion = (T_int << 4) + compileTimeType.id;

-				break;

-			case T_String :

-			case T_float :

-			case T_boolean :

-			case T_double :

-			case T_int : //implicitConversion may result in i2i which will result in NO code gen

-			case T_long :

-				this.implicitConversion = (runtimeTimeType.id << 4) + compileTimeType.id;

-				break;

-			default : // regular object ref

-//				if (compileTimeType.isRawType() && runtimeTimeType.isBoundParameterizedType()) {

-//				    scope.problemReporter().unsafeRawExpression(this, compileTimeType, runtimeTimeType);

-//				}		

-		}

-	}	

-

-	/**

-	 * Expression statements are plain expressions, however they generate like

-	 * normal expressions with no value required.

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream 

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		generateCode(currentScope, codeStream, false);

-	}

-

-	/**

-	 * Every expression is responsible for generating its implicit conversion when necessary.

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		if (constant != NotAConstant) {

-			// generate a constant expression

-			int pc = codeStream.position;

-			codeStream.generateConstant(constant, implicitConversion);

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-		} else {

-			// actual non-constant code generation

-			throw new ShouldNotImplement(Util.bind("ast.missingCode")); //$NON-NLS-1$

-		}

-	}

-

-	/**

-	 * Default generation of a boolean value

-	 * @param currentScope

-	 * @param codeStream

-	 * @param trueLabel

-	 * @param falseLabel

-	 * @param valueRequired

-	 */

-	public void generateOptimizedBoolean(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-

-		// a label valued to nil means: by default we fall through the case... 

-		// both nil means we leave the value on the stack

-

-		if ((constant != Constant.NotAConstant) && (constant.typeID() == T_boolean)) {

-			int pc = codeStream.position;

-			if (constant.booleanValue() == true) {

-				// constant == true

-				if (valueRequired) {

-					if (falseLabel == null) {

-						// implicit falling through the FALSE case

-						if (trueLabel != null) {

-							codeStream.goto_(trueLabel);

-						}

-					}

-				}

-			} else {

-				if (valueRequired) {

-					if (falseLabel != null) {

-						// implicit falling through the TRUE case

-						if (trueLabel == null) {

-							codeStream.goto_(falseLabel);

-						}

-					}

-				}

-			}

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		generateCode(currentScope, codeStream, valueRequired);

-		// branching

-		int position = codeStream.position;

-		if (valueRequired) {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// Implicit falling through the FALSE case

-					codeStream.ifne(trueLabel);

-				}

-			} else {

-				if (trueLabel == null) {

-					// Implicit falling through the TRUE case

-					codeStream.ifeq(falseLabel);

-				} else {

-					// No implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-		// reposition the endPC

-		codeStream.updateLastRecordedEndPC(position);

-	}

-

-	/* Optimized (java) code generation for string concatenations that involve StringBuffer

-	 * creation: going through this path means that there is no need for a new StringBuffer

-	 * creation, further operands should rather be only appended to the current one.

-	 * By default: no optimization.

-	 */

-	public void generateOptimizedStringConcatenation(

-		BlockScope blockScope,

-		CodeStream codeStream,

-		int typeID) {

-

-		if (typeID == T_String && this.constant != NotAConstant && this.constant.stringValue().length() == 0) {

-			return; // optimize str + ""

-		}

-		generateCode(blockScope, codeStream, true);

-		codeStream.invokeStringConcatenationAppendForType(typeID);

-	}

-

-	/* Optimized (java) code generation for string concatenations that involve StringBuffer

-	 * creation: going through this path means that there is no need for a new StringBuffer

-	 * creation, further operands should rather be only appended to the current one.

-	 */

-	public void generateOptimizedStringConcatenationCreation(

-		BlockScope blockScope,

-		CodeStream codeStream,

-		int typeID) {

-

-		// Optimization only for integers and strings

-		if (typeID == T_Object) {

-			// in the case the runtime value of valueOf(Object) returns null, we have to use append(Object) instead of directly valueOf(Object)

-			// append(Object) returns append(valueOf(Object)), which means that the null case is handled by append(String).

-			codeStream.newStringContatenation();

-			codeStream.dup();

-			codeStream.invokeStringConcatenationDefaultConstructor();

-			generateCode(blockScope, codeStream, true);

-			codeStream.invokeStringConcatenationAppendForType(T_Object);

-			return;

-		}

-		codeStream.newStringContatenation();

-		codeStream.dup();

-		if (typeID == T_String || typeID == T_null) {

-			if (constant != NotAConstant) {

-				String stringValue = constant.stringValue();

-				if (stringValue.length() == 0) {  // optimize ""+<str> 

-					codeStream.invokeStringConcatenationDefaultConstructor();

-					return;

-				}

-				codeStream.ldc(stringValue);

-			} else {

-				generateCode(blockScope, codeStream, true);

-				codeStream.invokeStringValueOf(T_Object);

-			}

-		} else {

-			generateCode(blockScope, codeStream, true);

-			codeStream.invokeStringValueOf(typeID);

-		}

-		codeStream.invokeStringConcatenationStringConstructor();

-	}

-

-	public boolean isCompactableOperation() {

-

-		return false;

-	}

-

-	//Return true if the conversion is done AUTOMATICALLY by the vm

-	//while the javaVM is an int based-machine, thus for example pushing

-	//a byte onto the stack , will automatically create an int on the stack

-	//(this request some work d be done by the VM on signed numbers)

-	public boolean isConstantValueOfTypeAssignableToType(TypeBinding constantType, TypeBinding targetType) {

-

-		if (constant == Constant.NotAConstant)

-			return false;

-		if (constantType == targetType)

-			return true;

-		if (constantType.isBaseType() && targetType.isBaseType()) {

-			//No free assignment conversion from anything but to integral ones.

-			if ((constantType == IntBinding

-				|| BaseTypeBinding.isWidening(T_int, constantType.id))

-				&& (BaseTypeBinding.isNarrowing(targetType.id, T_int))) {

-				//use current explicit conversion in order to get some new value to compare with current one

-				return isConstantValueRepresentable(constant, constantType.id, targetType.id);

-			}

-		}

-		return false;

-	}

-

-	public boolean isTypeReference() {

-		return false;

-	}

-	

-	/**

-	 * Constant usable for bytecode pattern optimizations, but cannot be inlined

-	 * since it is not strictly equivalent to the definition of constant expressions.

-	 * In particular, some side-effects may be required to occur (only the end value

-	 * is known).

-	 * @return Constant known to be of boolean type

-	 */ 

-	public Constant optimizedBooleanConstant() {

-		return this.constant;

-	}

-

-	public StringBuffer print(int indent, StringBuffer output) {

-		printIndent(indent, output);

-		return printExpression(indent, output);

-	}

-

-	public abstract StringBuffer printExpression(int indent, StringBuffer output);

-	

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-		return print(indent, output).append(";"); //$NON-NLS-1$

-	}

-

-	public void reportIllegalCast(Scope scope, TypeBinding castType, TypeBinding expressionType) {

-		// do nothing by default

-	}

-	

-	public void resolve(BlockScope scope) {

-		// drops the returning expression's type whatever the type is.

-

-		this.resolveType(scope);

-		return;

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-		// by default... subclasses should implement a better TC if required.

-

-		return null;

-	}

-

-	public TypeBinding resolveType(ClassScope classScope) {

-		// by default... subclasses should implement a better TB if required.

-		return null;

-	}

-

-	public TypeBinding resolveTypeExpecting(

-		BlockScope scope,

-		TypeBinding expectedType) {

-

-		this.setExpectedType(expectedType); // needed in case of generic method invocation

-		TypeBinding expressionType = this.resolveType(scope);

-		if (expressionType == null) return null;

-		if (expressionType == expectedType) return expressionType;

-		

-		if (!expressionType.isCompatibleWith(expectedType)) {

-			scope.problemReporter().typeMismatchError(expressionType, expectedType, this);

-			return null;

-		}

-		return expressionType;

-	}

-

-	/**

-	 * Record the type expectation before this expression is typechecked.

-	 * e.g. String s = foo();, foo() will be tagged as being expected of type String

-	 * Used to trigger proper inference of generic method invocations.

-	 */

-	public void setExpectedType(TypeBinding expectedType) {

-	    // do nothing by default

-	}

-

-	public void tagAsUnnecessaryCast(Scope scope, TypeBinding castType) {

-	    // do nothing by default

-	}

-	

-	public void tagAsNeedCheckCast() {

-	    // do nothing by default		

-	}

-	

-	public Expression toTypeReference() {

-		//by default undefined

-

-		//this method is meanly used by the parser in order to transform

-		//an expression that is used as a type reference in a cast ....

-		//--appreciate the fact that castExpression and ExpressionWithParenthesis

-		//--starts with the same pattern.....

-

-		return this;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		// do nothing by default

-	}

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		// do nothing by default

-	}

-	public void traverse(ASTVisitor visitor, CompilationUnitScope scope) {

-		// do nothing by default

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ExtendedStringLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ExtendedStringLiteral.js
deleted file mode 100644
index 21e01dd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ExtendedStringLiteral.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-

-public class ExtendedStringLiteral extends StringLiteral {

-

-	/** 

-	 *  Build a string+char literal

-	 */

-	public ExtendedStringLiteral(StringLiteral str, CharLiteral character) {

-

-		super(str.source, str.sourceStart, str.sourceEnd);

-		extendWith(character);

-	}

-

-	/**	

-	 * Build a two-strings literal

-	 * */

-	public ExtendedStringLiteral(StringLiteral str1, StringLiteral str2) {

-

-		super(str1.source, str1.sourceStart, str1.sourceEnd);

-		extendWith(str2);

-	}

-

-	/**

-	 * Add the lit source to mine, just as if it was mine

-	 */

-	public ExtendedStringLiteral extendWith(CharLiteral lit) {

-

-		//update the source

-		int length = source.length;

-		System.arraycopy(source, 0, (source = new char[length + 1]), 0, length);

-		source[length] = lit.value;

-		//position at the end of all literals

-		sourceEnd = lit.sourceEnd;

-		return this;

-	}

-

-	/**

-	 *  Add the lit source to mine, just as if it was mine

-	 */

-	public ExtendedStringLiteral extendWith(StringLiteral lit) {

-

-		//uddate the source

-		int length = source.length;

-		System.arraycopy(

-			source,

-			0,

-			source = new char[length + lit.source.length],

-			0,

-			length);

-		System.arraycopy(lit.source, 0, source, length, lit.source.length);

-		//position at the end of all literals

-		sourceEnd = lit.sourceEnd;

-		return this;

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		return output.append("ExtendedStringLiteral{").append(source).append('}'); //$NON-NLS-1$

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FalseLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FalseLiteral.js
deleted file mode 100644
index 5ef0163..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FalseLiteral.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class FalseLiteral extends MagicLiteral {

-	static final char[] source = {'f', 'a', 'l', 's', 'e'};

-public FalseLiteral(int s , int e) {

-	super(s,e);

-}

-public void computeConstant() {

-

-	constant = Constant.fromValue(false);}

-/**

- * Code generation for false literal

- *

- * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

- * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

- * @param valueRequired boolean

- */

-public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-	int pc = codeStream.position;

-	if (valueRequired)

-		codeStream.iconst_0();

-	codeStream.recordPositionsFrom(pc, this.sourceStart);

-}

-public void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, Label trueLabel, Label falseLabel, boolean valueRequired) {

-

-	// falseLabel being not nil means that we will not fall through into the FALSE case

-

-	int pc = codeStream.position;

-	if (valueRequired) {

-		if (falseLabel != null) {

-			// implicit falling through the TRUE case

-			if (trueLabel == null) {

-				codeStream.goto_(falseLabel);

-			}

-		}

-	}

-	codeStream.recordPositionsFrom(pc, this.sourceStart);

-}

-public TypeBinding literalType(BlockScope scope) {

-	return BooleanBinding;

-}

-/**

- * 

- */

-public char[] source() {

-	return source;

-}

-public void traverse(ASTVisitor visitor, BlockScope scope) {

-	visitor.visit(this, scope);

-	visitor.endVisit(this, scope);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FieldDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FieldDeclaration.js
deleted file mode 100644
index 9224626..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FieldDeclaration.js
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class FieldDeclaration extends AbstractVariableDeclaration {

-	public FieldBinding binding;

-	boolean hasBeenResolved = false;

-	public Javadoc javadoc;

-

-	//allows to retrieve both the "type" part of the declaration (part1)

-	//and also the part that decribe the name and the init and optionally

-	//some other dimension ! .... 

-	//public int[] a, b[] = X, c ;

-	//for b that would give for 

-	// - part1 : public int[]

-	// - part2 : b[] = X,

-

-	public int endPart1Position;

-	public int endPart2Position;

-

-	public FieldDeclaration() {

-		// for subtypes or conversion

-	}

-

-	public FieldDeclaration(

-		char[] name,

-		int sourceStart,

-		int sourceEnd) {

-

-		this.name = name;

-

-		//due to some declaration like 

-		// int x, y = 3, z , x ;

-		//the sourceStart and the sourceEnd is ONLY on  the name

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		MethodScope initializationScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		if (this.binding != null && this.binding.isPrivate() && !this.binding.isPrivateUsed()) {

-			if (!initializationScope.referenceCompilationUnit().compilationResult.hasSyntaxError()) {

-				initializationScope.problemReporter().unusedPrivateField(this);

-			}

-		}

-		// cannot define static non-constant field inside nested class

-		if (this.binding != null

-			&& this.binding.isValidBinding()

-			&& this.binding.isStatic()

-			&& !this.binding.isConstantValue()

-			&& this.binding.declaringClass.isNestedType()

-			&& this.binding.declaringClass.isClass()

-			&& !this.binding.declaringClass.isStatic()) {

-			initializationScope.problemReporter().unexpectedStaticModifierForField(

-				(SourceTypeBinding) this.binding.declaringClass,

-				this);

-		}

-

-		if (this.initialization != null) {

-			flowInfo =

-				this.initialization

-					.analyseCode(initializationScope, flowContext, flowInfo)

-					.unconditionalInits();

-			flowInfo.markAsDefinitelyAssigned(this.binding);

-		}

-		return flowInfo;

-	}

-

-	/**

-	 * Code generation for a field declaration:

-	 *	   standard assignment to a field 

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((this.bits & IsReachableMASK) == 0) {

-			return;

-		}

-		// do not generate initialization code if final and static (constant is then

-		// recorded inside the field itself).

-		int pc = codeStream.position;

-		boolean isStatic;

-		if (this.initialization != null

-			&& !((isStatic = this.binding.isStatic()) && this.binding.isConstantValue())) {

-			// non-static field, need receiver

-			if (!isStatic)

-				codeStream.aload_0();

-			// generate initialization value

-			this.initialization.generateCode(currentScope, codeStream, true);

-			// store into field

-			if (isStatic) {

-				codeStream.putstatic(this.binding);

-			} else {

-				codeStream.putfield(this.binding);

-			}

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public boolean isField() {

-

-		return true;

-	}

-

-	public boolean isStatic() {

-

-		if (this.binding != null)

-			return this.binding.isStatic();

-		return (this.modifiers & AccStatic) != 0;

-	}

-	

-	public void resolve(MethodScope initializationScope) {

-

-		// the two <constant = Constant.NotAConstant> could be regrouped into

-		// a single line but it is clearer to have two lines while the reason of their

-		// existence is not at all the same. See comment for the second one.

-

-		//--------------------------------------------------------

-		if (!this.hasBeenResolved && this.binding != null && this.binding.isValidBinding()) {

-

-			this.hasBeenResolved = true;

-

-			// check if field is hiding some variable - issue is that field binding already got inserted in scope

-			// thus must lookup separately in super type and outer context

-			ClassScope classScope = initializationScope.enclosingClassScope();

-			

-			if (classScope != null) {

-				SourceTypeBinding declaringType = classScope.enclosingSourceType();

-				boolean checkLocal = true;

-				if (declaringType.superclass != null) {

-					Binding existingVariable = classScope.findField(declaringType.superclass, this.name, this,  false /*do not resolve hidden field*/);

-					if (existingVariable != null && existingVariable.isValidBinding()){

-						initializationScope.problemReporter().fieldHiding(this, existingVariable);

-						checkLocal = false; // already found a matching field

-					}

-				}

-				if (checkLocal) {

-					Scope outerScope = classScope.parent;

-					// only corner case is: lookup of outer field through static declaringType, which isn't detected by #getBinding as lookup starts

-					// from outer scope. Subsequent static contexts are detected for free.

-					Binding existingVariable = outerScope.getBinding(this.name, BindingIds.VARIABLE, this, false /*do not resolve hidden field*/);

-					if (existingVariable != null && existingVariable.isValidBinding()

-							&& (!(existingVariable instanceof FieldBinding)

-									|| ((FieldBinding) existingVariable).isStatic() 

-									|| !declaringType.isStatic())) {

-						initializationScope.problemReporter().fieldHiding(this, existingVariable);

-					}

-				}

-			}

-			

-			this.type.resolvedType = this.binding.type; // update binding for type reference

-

-			FieldBinding previousField = initializationScope.initializedField;

-			int previousFieldID = initializationScope.lastVisibleFieldID;

-			try {

-				initializationScope.initializedField = this.binding;

-				initializationScope.lastVisibleFieldID = this.binding.id;

-

-				// the resolution of the initialization hasn't been done

-				if (this.initialization == null) {

-					this.binding.setConstant(Constant.NotAConstant);

-				} else {

-					// break dead-lock cycles by forcing constant to NotAConstant

-					this.binding.setConstant(Constant.NotAConstant);

-					

-					TypeBinding fieldType = this.binding.type;

-					TypeBinding initializationType;

-					this.initialization.setExpectedType(fieldType); // needed in case of generic method invocation

-					if (this.initialization instanceof ArrayInitializer) {

-

-						if ((initializationType = this.initialization.resolveTypeExpecting(initializationScope, fieldType)) != null) {

-							((ArrayInitializer) this.initialization).binding = (ArrayBinding) initializationType;

-							this.initialization.computeConversion(initializationScope, fieldType, initializationType);

-						}

-					} else if ((initializationType = this.initialization.resolveType(initializationScope)) != null) {

-

-						if (this.initialization.isConstantValueOfTypeAssignableToType(initializationType, fieldType)

-								|| (fieldType.isBaseType() && BaseTypeBinding.isWidening(fieldType.id, initializationType.id))

-								|| initializationType.isCompatibleWith(fieldType)) {

-							this.initialization.computeConversion(initializationScope, fieldType, initializationType);

-							if (initializationType.isRawType() && (fieldType.isBoundParameterizedType() || fieldType.isGenericType())) {

-								    initializationScope.problemReporter().unsafeRawConversion(this.initialization, initializationType, fieldType);

-							}									

-						} else {

-							initializationScope.problemReporter().typeMismatchError(initializationType, fieldType, this);

-						}

-						if (this.binding.isFinal()){ // cast from constant actual type to variable type

-							this.binding.setConstant(this.initialization.constant.castTo((this.binding.type.id << 4) + this.initialization.constant.typeID()));

-						}

-					} else {

-						this.binding.setConstant(NotAConstant);

-					}

-				}

-				// Resolve Javadoc comment if one is present

-				if (this.javadoc != null) {

-					/*

-					if (classScope != null) {

-						this.javadoc.resolve(classScope);

-					}

-					*/

-					this.javadoc.resolve(initializationScope);

-				} else if (this.binding != null && this.binding.declaringClass != null && !this.binding.declaringClass.isLocalType()) {

-					initializationScope.problemReporter().javadocMissing(this.sourceStart, this.sourceEnd, this.binding.modifiers);

-				}

-			} finally {

-				initializationScope.initializedField = previousField;

-				initializationScope.lastVisibleFieldID = previousFieldID;

-				if (this.binding.constant() == null)

-					this.binding.setConstant(Constant.NotAConstant);

-			}

-		}

-	}

-

-	public void traverse(ASTVisitor visitor, MethodScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			this.type.traverse(visitor, scope);

-			if (this.initialization != null)

-				this.initialization.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FieldReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FieldReference.js
deleted file mode 100644
index f6aa637..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FieldReference.js
+++ /dev/null
@@ -1,545 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class FieldReference extends Reference implements InvocationSite {

-

-	public Expression receiver;

-	public char[] token;

-	public FieldBinding binding;															// exact binding resulting from lookup

-	protected FieldBinding codegenBinding;									// actual binding used for code generation (if no synthetic accessor)

-	public MethodBinding[] syntheticAccessors; // [0]=read accessor [1]=write accessor

-	public static final int READ = 0;

-	public static final int WRITE = 1;

-	

-	public long nameSourcePosition; //(start<<32)+end

-	public TypeBinding receiverType;

-	public TypeBinding genericCast;

-	

-	public FieldReference(char[] source, long pos) {

-

-		token = source;

-		nameSourcePosition = pos;

-		//by default the position are the one of the field (not true for super access)

-		sourceStart = (int) (pos >>> 32);

-		sourceEnd = (int) (pos & 0x00000000FFFFFFFFL);

-		bits |= BindingIds.FIELD;

-

-	}

-

-	public FlowInfo analyseAssignment(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo,

-		Assignment assignment,

-		boolean isCompound) {

-

-		// compound assignment extra work

-		if (isCompound) { // check the variable part is initialized if blank final

-			if (binding.isBlankFinal()

-				&& receiver.isThis()

-				&& currentScope.allowBlankFinalFieldAssignment(binding)

-				&& (!flowInfo.isDefinitelyAssigned(binding))) {

-				currentScope.problemReporter().uninitializedBlankFinalField(binding, this);

-				// we could improve error msg here telling "cannot use compound assignment on final blank field"

-			}

-			manageSyntheticAccessIfNecessary(currentScope, flowInfo, true /*read-access*/);

-		}

-		flowInfo =

-			receiver

-				.analyseCode(currentScope, flowContext, flowInfo, !binding.isStatic())

-				.unconditionalInits();

-		if (assignment.expression != null) {

-			flowInfo =

-				assignment

-					.expression

-					.analyseCode(currentScope, flowContext, flowInfo)

-					.unconditionalInits();

-		}

-		manageSyntheticAccessIfNecessary(currentScope, flowInfo, false /*write-access*/);

-

-		// check if assigning a final field 

-		if (binding.isFinal()) {

-			// in a context where it can be assigned?

-			if (binding.isBlankFinal()

-				&& !isCompound

-				&& receiver.isThis()

-				&& !(receiver instanceof QualifiedThisReference)

-				&& ((receiver.bits & ParenthesizedMASK) == 0) // (this).x is forbidden

-				&& currentScope.allowBlankFinalFieldAssignment(binding)) {

-				if (flowInfo.isPotentiallyAssigned(binding)) {

-					currentScope.problemReporter().duplicateInitializationOfBlankFinalField(

-						binding,

-						this);

-				} else {

-					flowContext.recordSettingFinal(binding, this, flowInfo);

-				}

-				flowInfo.markAsDefinitelyAssigned(binding);

-			} else {

-				// assigning a final field outside an initializer or constructor or wrong reference

-				currentScope.problemReporter().cannotAssignToFinalField(binding, this);

-			}

-		}

-		return flowInfo;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		return analyseCode(currentScope, flowContext, flowInfo, true);

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo,

-		boolean valueRequired) {

-

-		receiver.analyseCode(currentScope, flowContext, flowInfo, !binding.isStatic());

-		if (valueRequired) {

-			manageSyntheticAccessIfNecessary(currentScope, flowInfo, true /*read-access*/);

-		}

-		return flowInfo;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#computeConversion(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding)

-	 */

-	public void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType) {

-		if (runtimeTimeType == null || compileTimeType == null)

-			return;		

-		// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)

-		if (this.binding != null && this.binding.isValidBinding()) {

-			FieldBinding originalBinding = this.binding.original();

-			if (originalBinding != this.binding) {

-			    // extra cast needed if method return type has type variable

-			    if ((originalBinding.type.tagBits & TagBits.HasTypeVariable) != 0 && runtimeTimeType.id != T_Object) {

-			        this.genericCast = originalBinding.type.genericCast(runtimeTimeType);

-			    }

-			}

-		} 	

-		super.computeConversion(scope, runtimeTimeType, compileTimeType);

-	}

-

-	public FieldBinding fieldBinding() {

-

-		return binding;

-	}

-

-	public void generateAssignment(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Assignment assignment,

-		boolean valueRequired) {

-

-		receiver.generateCode(

-			currentScope,

-			codeStream,

-			!this.codegenBinding.isStatic());

-		assignment.expression.generateCode(currentScope, codeStream, true);

-		fieldStore(

-			codeStream,

-			this.codegenBinding,

-			syntheticAccessors == null ? null : syntheticAccessors[WRITE],

-			valueRequired);

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(assignment.implicitConversion);

-		}

-		// no need for generic cast as value got dupped

-	}

-

-	/**

-	 * Field reference code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		if (constant != NotAConstant) {

-			if (valueRequired) {

-				codeStream.generateConstant(constant, implicitConversion);

-			}

-		} else {

-			boolean isStatic = this.codegenBinding.isStatic();

-			receiver.generateCode(currentScope, codeStream, !isStatic);

-			if (valueRequired) {

-				if (!this.codegenBinding.isConstantValue()) {

-					if (this.codegenBinding.declaringClass == null) { // array length

-						codeStream.arraylength();

-					} else {

-						if (syntheticAccessors == null || syntheticAccessors[READ] == null) {

-							if (isStatic) {

-								codeStream.getstatic(this.codegenBinding);

-							} else {

-								codeStream.getfield(this.codegenBinding);

-							}

-						} else {

-							codeStream.invokestatic(syntheticAccessors[READ]);

-						}

-					}

-					codeStream.generateImplicitConversion(implicitConversion);

-					if (this.genericCast != null) codeStream.checkcast(this.genericCast);			

-				} else {

-					if (!isStatic) {

-						codeStream.invokeObjectGetClass(); // perform null check

-						codeStream.pop();

-					}

-					codeStream.generateConstant(this.codegenBinding.constant(), implicitConversion);

-				}

-			} else {

-				if (!isStatic){

-					codeStream.invokeObjectGetClass(); // perform null check

-					codeStream.pop();

-				}

-			}

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public void generateCompoundAssignment(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Expression expression,

-		int operator,

-		int assignmentImplicitConversion,

-		boolean valueRequired) {

-

-		boolean isStatic;

-		receiver.generateCode(

-			currentScope,

-			codeStream,

-			!(isStatic = this.codegenBinding.isStatic()));

-		if (isStatic) {

-			if (syntheticAccessors == null || syntheticAccessors[READ] == null) {

-				codeStream.getstatic(this.codegenBinding);

-			} else {

-				codeStream.invokestatic(syntheticAccessors[READ]);

-			}

-		} else {

-			codeStream.dup();

-			if (syntheticAccessors == null || syntheticAccessors[READ] == null) {

-				codeStream.getfield(this.codegenBinding);

-			} else {

-				codeStream.invokestatic(syntheticAccessors[READ]);

-			}

-		}

-		int operationTypeID;

-		if ((operationTypeID = implicitConversion >> 4) == T_String) {

-		    // no need for generic cast on previous #getfield since using Object string buffer methods.

-			codeStream.generateStringConcatenationAppend(currentScope, null, expression);

-		} else {

-			// promote the array reference to the suitable operation type

-			codeStream.generateImplicitConversion(implicitConversion);

-			// generate the increment value (will by itself  be promoted to the operation value)

-			if (expression == IntLiteral.One) { // prefix operation

-				codeStream.generateConstant(expression.constant, implicitConversion);

-			} else {

-				expression.generateCode(currentScope, codeStream, true);

-			}

-			// perform the operation

-			codeStream.sendOperator(operator, operationTypeID);

-			// cast the value back to the array reference type

-			codeStream.generateImplicitConversion(assignmentImplicitConversion);

-		}

-		fieldStore(

-			codeStream,

-			this.codegenBinding,

-			syntheticAccessors == null ? null : syntheticAccessors[WRITE],

-			valueRequired);

-		// no need for generic cast as value got dupped

-	}

-

-	public void generatePostIncrement(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		CompoundAssignment postIncrement,

-		boolean valueRequired) {

-

-		boolean isStatic;

-		receiver.generateCode(

-			currentScope,

-			codeStream,

-			!(isStatic = this.codegenBinding.isStatic()));

-		if (isStatic) {

-			if (syntheticAccessors == null || syntheticAccessors[READ] == null) {

-				codeStream.getstatic(this.codegenBinding);

-			} else {

-				codeStream.invokestatic(syntheticAccessors[READ]);

-			}

-		} else {

-			codeStream.dup();

-			if (syntheticAccessors == null || syntheticAccessors[READ] == null) {

-				codeStream.getfield(this.codegenBinding);

-			} else {

-				codeStream.invokestatic(syntheticAccessors[READ]);

-			}

-		}

-		if (valueRequired) {

-			if (isStatic) {

-				if ((this.codegenBinding.type == LongBinding)

-					|| (this.codegenBinding.type == DoubleBinding)) {

-					codeStream.dup2();

-				} else {

-					codeStream.dup();

-				}

-			} else { // Stack:  [owner][old field value]  ---> [old field value][owner][old field value]

-				if ((this.codegenBinding.type == LongBinding)

-					|| (this.codegenBinding.type == DoubleBinding)) {

-					codeStream.dup2_x1();

-				} else {

-					codeStream.dup_x1();

-				}

-			}

-		}

-		codeStream.generateConstant(

-			postIncrement.expression.constant,

-			implicitConversion);

-		codeStream.sendOperator(postIncrement.operator, this.codegenBinding.type.id);

-		codeStream.generateImplicitConversion(

-			postIncrement.assignmentImplicitConversion);

-		fieldStore(codeStream, this.codegenBinding, syntheticAccessors == null ? null : syntheticAccessors[WRITE], false);

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()

-	 */

-	public TypeBinding[] genericTypeArguments() {

-		return null;

-	}

-	public static final Constant getConstantFor(

-		FieldBinding binding,

-		Reference reference,

-		boolean isImplicit,

-		Scope referenceScope) {

-

-		//propagation of the constant.

-

-		//ref can be a FieldReference, a SingleNameReference or a QualifiedNameReference

-		//indexInQualification may have a value greater than zero only for QualifiednameReference

-		//if ref==null then indexInQualification==0 AND implicitReceiver == false. This case is a 

-		//degenerated case where a fake reference field (null) 

-		//is associted to a real FieldBinding in order 

-		//to allow its constant computation using the regular path (in other words, find the fieldDeclaration

-		//and proceed to its type resolution). As implicitReceiver is false, no error reporting

-		//against ref will be used ==> no nullPointerException risk .... 

-

-		//special treatment for langage-built-in  field (their declaring class is null)

-		if (binding.declaringClass == null) {

-			//currently only one field "length" : the constant computation is never done

-			return NotAConstant;

-		}

-		if (!binding.isFinal()) {

-			binding.setConstant(NotAConstant);

-			return NotAConstant;

-		}

-		Constant fieldConstant = binding.constant();

-		if (fieldConstant != null) {

-			if (isImplicit || (reference instanceof QualifiedNameReference

-					&& binding == ((QualifiedNameReference)reference).binding)) {

-				return fieldConstant;

-			}

-			return NotAConstant;

-		}

-

-		//The field has not been yet type checked.

-		//It also means that the field is not coming from a class that

-		//has already been compiled. It can only be from a class within

-		//compilation units to process. Thus the field is NOT from a BinaryTypeBinbing

-

-		FieldBinding originalField = binding.original();

-		SourceTypeBinding sourceType = (SourceTypeBinding) originalField.declaringClass;

-		TypeDeclaration typeDecl = sourceType.scope.referenceContext;

-		FieldDeclaration fieldDecl = typeDecl.declarationOf(originalField);

-

-		fieldDecl.resolve(originalField.isStatic() //side effect on binding 

-				? typeDecl.staticInitializerScope

-				: typeDecl.initializerScope); 

-

-		if (isImplicit || (reference instanceof QualifiedNameReference

-				&& binding == ((QualifiedNameReference)reference).binding)) {

-			return binding.constant();

-		}

-		return NotAConstant;

-	}

-

-	public boolean isSuperAccess() {

-

-		return receiver.isSuper();

-	}

-

-	public boolean isTypeAccess() {

-

-		return receiver != null && receiver.isTypeReference();

-	}

-

-	/*

-	 * No need to emulate access to protected fields since not implicitly accessed

-	 */

-	public void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo, boolean isReadAccess) {

-

-		if (!flowInfo.isReachable()) return;

-		// if field from parameterized type got found, use the original field at codegen time

-		this.codegenBinding = this.binding.original();

-		

-		if (binding.isPrivate()) {

-			if ((currentScope.enclosingSourceType() != this.codegenBinding.declaringClass) && !binding.isConstantValue()) {

-				if (syntheticAccessors == null)

-					syntheticAccessors = new MethodBinding[2];

-				syntheticAccessors[isReadAccess ? READ : WRITE] = 

-					((SourceTypeBinding) this.codegenBinding.declaringClass).addSyntheticMethod(this.codegenBinding, isReadAccess);

-				currentScope.problemReporter().needToEmulateFieldAccess(this.codegenBinding, this, isReadAccess);

-				return;

-			}

-

-		} else if (receiver instanceof QualifiedSuperReference) { // qualified super

-

-			// qualified super need emulation always

-			SourceTypeBinding destinationType =

-				(SourceTypeBinding) (((QualifiedSuperReference) receiver)

-					.currentCompatibleType);

-			if (syntheticAccessors == null)

-				syntheticAccessors = new MethodBinding[2];

-			syntheticAccessors[isReadAccess ? READ : WRITE] = destinationType.addSyntheticMethod(this.codegenBinding, isReadAccess);

-			currentScope.problemReporter().needToEmulateFieldAccess(this.codegenBinding, this, isReadAccess);

-			return;

-

-		} else if (binding.isProtected()) {

-

-			SourceTypeBinding enclosingSourceType;

-			if (((bits & DepthMASK) != 0)

-				&& binding.declaringClass.getPackage()

-					!= (enclosingSourceType = currentScope.enclosingSourceType()).getPackage()) {

-

-				SourceTypeBinding currentCompatibleType =

-					(SourceTypeBinding) enclosingSourceType.enclosingTypeAt(

-						(bits & DepthMASK) >> DepthSHIFT);

-				if (syntheticAccessors == null)

-					syntheticAccessors = new MethodBinding[2];

-				syntheticAccessors[isReadAccess ? READ : WRITE] = currentCompatibleType.addSyntheticMethod(this.codegenBinding, isReadAccess);

-				currentScope.problemReporter().needToEmulateFieldAccess(this.codegenBinding, this, isReadAccess);

-				return;

-			}

-		}

-		// if the binding declaring class is not visible, need special action

-		// for runtime compatibility on 1.2 VMs : change the declaring class of the binding

-		// NOTE: from target 1.2 on, field's declaring class is touched if any different from receiver type

-		if (this.binding.declaringClass != this.receiverType

-			&& !this.receiverType.isArrayType()

-			&& this.binding.declaringClass != null // array.length

-			&& !this.binding.isConstantValue()

-			&& ((currentScope.environment().options.targetJDK >= ClassFileConstants.JDK1_2

-				&& this.binding.declaringClass.id != T_Object)

-			//no change for Object fields (in case there was)

-				|| !this.codegenBinding.declaringClass.canBeSeenBy(currentScope))) {

-			this.codegenBinding =

-				currentScope.enclosingSourceType().getUpdatedFieldBinding(

-					this.codegenBinding,

-					(ReferenceBinding) this.receiverType.erasure());

-		}

-	}

-

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		return receiver.printExpression(0, output).append('.').append(token);

-	}

-	

-	public TypeBinding resolveType(BlockScope scope) {

-

-		// Answer the signature type of the field.

-		// constants are propaged when the field is final

-		// and initialized with a (compile time) constant 

-

-		//always ignore receiver cast, since may affect constant pool reference

-		boolean receiverCast = false;

-		if (this.receiver instanceof CastExpression) {

-			this.receiver.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-			receiverCast = true;

-		}

-		this.receiverType = receiver.resolveType(scope);

-		if (this.receiverType == null) {

-			constant = NotAConstant;

-			return null;

-		}

-		if (receiverCast) {

-			 // due to change of declaring class with receiver type, only identity cast should be notified

-			if (((CastExpression)this.receiver).expression.resolvedType == this.receiverType) { 

-						scope.problemReporter().unnecessaryCast((CastExpression)this.receiver);		

-			}

-		}		

-		// the case receiverType.isArrayType and token = 'length' is handled by the scope API

-		this.codegenBinding = this.binding = scope.getField(this.receiverType, token, this);

-		if (!binding.isValidBinding()) {

-			constant = NotAConstant;

-			scope.problemReporter().invalidField(this, this.receiverType);

-			return null;

-		}

-		this.receiver.computeConversion(scope, this.receiverType, this.receiverType);

-		if (isFieldUseDeprecated(binding, scope, (this.bits & IsStrictlyAssignedMASK) !=0)) {

-			scope.problemReporter().deprecatedField(binding, this);

-		}

-		boolean isImplicitThisRcv = receiver.isImplicitThis();

-		constant = FieldReference.getConstantFor(binding, this, isImplicitThisRcv, scope);

-		if (!isImplicitThisRcv) {

-			constant = NotAConstant;

-		}

-		if (binding.isStatic()) {

-			// static field accessed through receiver? legal but unoptimal (optional warning)

-			if (!(isImplicitThisRcv

-					|| (receiver instanceof NameReference 

-						&& (((NameReference) receiver).bits & BindingIds.TYPE) != 0))) {

-				scope.problemReporter().nonStaticAccessToStaticField(this, binding);

-			}

-			if (!isImplicitThisRcv && binding.declaringClass != receiverType) {

-				scope.problemReporter().indirectAccessToStaticField(this, binding);

-			}

-		}

-		return this.resolvedType = binding.type;

-	}

-

-	public void setActualReceiverType(ReferenceBinding receiverType) {

-		// ignored

-	}

-

-	public void setDepth(int depth) {

-

-		bits &= ~DepthMASK; // flush previous depth if any			

-		if (depth > 0) {

-			bits |= (depth & 0xFF) << DepthSHIFT; // encoded on 8 bits

-		}

-	}

-

-	public void setFieldIndex(int index) {

-		// ignored

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			receiver.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FloatLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FloatLiteral.js
deleted file mode 100644
index 93a0848..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/FloatLiteral.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-import org.eclipse.wst.jsdt.internal.compiler.util.FloatUtil;

-

-public class FloatLiteral extends NumberLiteral {

-	float value;

-	final static float Float_MIN_VALUE = Float.intBitsToFloat(1); // work-around VAJ problem 1F6IGUU

-	public FloatLiteral(char[] token, int s, int e) {

-		super(token, s, e);

-	}

-	public void computeConstant() {

-		Float computedValue;

-		try {

-			computedValue = Float.valueOf(String.valueOf(source));

-		} catch (NumberFormatException e) {

-			// hex floating point literal

-			// being rejected by 1.4 libraries where Float.valueOf(...) doesn't handle hex decimal floats

-			try {

-				float v = FloatUtil.valueOfHexFloatLiteral(source);

-				if (v == Float.POSITIVE_INFINITY) {

-					// error: the number is too large to represent

-					return;

-				}

-				if (Float.isNaN(v)) {

-					// error: the number is too small to represent

-					return;

-				}

-				value = v;

-				constant = Constant.fromValue(v);

-			} catch (NumberFormatException e1) {

-				// if the computation of the constant fails

-			}

-			return;

-		}

-

-		final float floatValue = computedValue.floatValue();

-		if (floatValue > Float.MAX_VALUE) {

-			// error: the number is too large to represent

-			return;

-		}

-		if (floatValue < Float.MIN_VALUE) {

-			// see 1F6IGUU

-			// a true 0 only has '0' and '.' in mantissa

-			// 1.0e-5000d is non-zero, but underflows to 0

-			boolean isHexaDecimal = false;

-			label : for (int i = 0; i < source.length; i++) { //it is welled formated so just test against '0' and potential . D d  

-				switch (source[i]) {

-					case '0' :

-					case '.' :

-						break;

-					case 'x' :

-					case 'X' :

-						isHexaDecimal = true;

-						break;

-					case 'e' :

-					case 'E' :

-					case 'f' :

-					case 'F' :

-					case 'd' :

-					case 'D' :

-						if (isHexaDecimal) {

-							return;

-						}

-						// starting the exponent - mantissa is all zero

-						// no exponent - mantissa is all zero

-						break label;

-					case 'p' :

-					case 'P' :

-						break label;

-					default :

-						// error: the number is too small to represent

-						return;

-				}

-			}

-		}

-		value = floatValue;

-		constant = Constant.fromValue(value);

-	}

-	/**

-	 * Code generation for float literal

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-		int pc = codeStream.position;

-		if (valueRequired)

-			if ((implicitConversion >> 4) == T_float)

-				codeStream.generateInlinedValue(value);

-			else

-				codeStream.generateConstant(constant, implicitConversion);

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	public TypeBinding literalType(BlockScope scope) {

-		return FloatBinding;

-	}

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-		visitor.visit(this, blockScope);

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ForStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ForStatement.js
deleted file mode 100644
index 59cdef9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ForStatement.js
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ForStatement extends Statement {

-	

-	public Statement[] initializations;

-	public Expression condition;

-	public Statement[] increments;

-	public Statement action;

-

-	//when there is no local declaration, there is no need of a new scope

-	//scope is positionned either to a new scope, or to the "upper"scope (see resolveType)

-	public boolean neededScope;

-	public BlockScope scope;

-

-	private Label breakLabel, continueLabel;

-

-	// for local variables table attributes

-	int preCondInitStateIndex = -1;

-	int condIfTrueInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-

-	public ForStatement(

-		Statement[] initializations,

-		Expression condition,

-		Statement[] increments,

-		Statement action,

-		boolean neededScope,

-		int s,

-		int e) {

-

-		this.sourceStart = s;

-		this.sourceEnd = e;

-		this.initializations = initializations;

-		this.condition = condition;

-		this.increments = increments;

-		this.action = action;

-		// remember useful empty statement

-		if (action instanceof EmptyStatement) action.bits |= IsUsefulEmptyStatementMASK;

-		this.neededScope = neededScope;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-			

-		breakLabel = new Label();

-		continueLabel = new Label();

-

-		// process the initializations

-		if (initializations != null) {

-			for (int i = 0, count = initializations.length; i < count; i++) {

-				flowInfo = initializations[i].analyseCode(scope, flowContext, flowInfo);

-			}

-		}

-		preCondInitStateIndex =

-			currentScope.methodScope().recordInitializationStates(flowInfo);

-

-		Constant cst = this.condition == null ? null : this.condition.constant;

-		boolean isConditionTrue = cst == null || (cst != NotAConstant && cst.booleanValue() == true);

-		boolean isConditionFalse = cst != null && (cst != NotAConstant && cst.booleanValue() == false);

-

-		cst = this.condition == null ? null : this.condition.optimizedBooleanConstant();

-		boolean isConditionOptimizedTrue = cst == null ||  (cst != NotAConstant && cst.booleanValue() == true);

-		boolean isConditionOptimizedFalse = cst != null && (cst != NotAConstant && cst.booleanValue() == false);

-		

-		// process the condition

-		LoopingFlowContext condLoopContext = null;

-		if (condition != null) {

-			if (!isConditionTrue) {

-				flowInfo =

-					condition.analyseCode(

-						scope,

-						(condLoopContext =

-							new LoopingFlowContext(flowContext, this, null, null, scope)),

-						flowInfo);

-			}

-		}

-

-		// process the action

-		LoopingFlowContext loopingContext;

-		FlowInfo actionInfo;

-		if (action == null 

-			|| (action.isEmptyBlock() && currentScope.environment().options.complianceLevel <= ClassFileConstants.JDK1_3)) {

-			if (condLoopContext != null)

-				condLoopContext.complainOnFinalAssignmentsInLoop(scope, flowInfo);

-			if (isConditionTrue) {

-				return FlowInfo.DEAD_END;

-			} else {

-				if (isConditionFalse){

-					continueLabel = null; // for(;false;p());

-				}

-				actionInfo = flowInfo.initsWhenTrue().copy();

-				loopingContext =

-					new LoopingFlowContext(flowContext, this, breakLabel, continueLabel, scope);

-			}

-		} else {

-			loopingContext =

-				new LoopingFlowContext(flowContext, this, breakLabel, continueLabel, scope);

-			FlowInfo initsWhenTrue = flowInfo.initsWhenTrue();

-			condIfTrueInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(initsWhenTrue);

-

-				if (isConditionFalse) {

-					actionInfo = FlowInfo.DEAD_END;

-				} else {

-					actionInfo = initsWhenTrue.copy();

-					if (isConditionOptimizedFalse){

-						actionInfo.setReachMode(FlowInfo.UNREACHABLE);

-					}

-				}

-			if (!this.action.complainIfUnreachable(actionInfo, scope, false)) {

-				actionInfo = action.analyseCode(scope, loopingContext, actionInfo);

-			}

-

-			// code generation can be optimized when no need to continue in the loop

-			if (!actionInfo.isReachable() && !loopingContext.initsOnContinue.isReachable()) {

-				continueLabel = null;

-			} else {

-				if (condLoopContext != null)

-					condLoopContext.complainOnFinalAssignmentsInLoop(scope, flowInfo);

-				actionInfo = actionInfo.mergedWith(loopingContext.initsOnContinue.unconditionalInits());

-				loopingContext.complainOnFinalAssignmentsInLoop(scope, actionInfo);

-			}

-		}

-		// for increments

-		if ((continueLabel != null) && (increments != null)) {

-			LoopingFlowContext loopContext =

-				new LoopingFlowContext(flowContext, this, null, null, scope);

-			for (int i = 0, count = increments.length; i < count; i++) {

-				actionInfo = increments[i].analyseCode(scope, loopContext, actionInfo);

-			}

-			loopContext.complainOnFinalAssignmentsInLoop(scope, actionInfo);

-		}

-

-		//end of loop

-		FlowInfo mergedInfo = FlowInfo.mergedOptimizedBranches(

-				loopingContext.initsOnBreak, 

-				isConditionOptimizedTrue, 

-				flowInfo.initsWhenFalse(), 

-				isConditionOptimizedFalse, 

-				!isConditionTrue /*for(;;){}while(true); unreachable(); */);

-		mergedInitStateIndex = currentScope.methodScope().recordInitializationStates(mergedInfo);

-		return mergedInfo;

-	}

-

-	/**

-	 * For statement code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-

-		// generate the initializations

-		if (initializations != null) {

-			for (int i = 0, max = initializations.length; i < max; i++) {

-				initializations[i].generateCode(scope, codeStream);

-			}

-		}

-

-		// label management

-		Label actionLabel = new Label(codeStream);

-		Label conditionLabel = new Label(codeStream);

-		breakLabel.initialize(codeStream);

-		if (continueLabel != null) {

-			continueLabel.initialize(codeStream);

-		}

-		// jump over the actionBlock

-		if ((condition != null)

-			&& (condition.constant == NotAConstant)

-			&& !((action == null || action.isEmptyBlock()) && (increments == null))) {

-			int jumpPC = codeStream.position;

-			codeStream.goto_(conditionLabel);

-			codeStream.recordPositionsFrom(jumpPC, condition.sourceStart);

-		}

-		// generate the loop action

-		actionLabel.place();

-		if (action != null) {

-			// Required to fix 1PR0XVS: LFRE:WINNT - Compiler: variable table for method appears incorrect

-			if (condIfTrueInitStateIndex != -1) {

-				// insert all locals initialized inside the condition into the action generated prior to the condition

-				codeStream.addDefinitelyAssignedVariables(

-					currentScope,

-					condIfTrueInitStateIndex);

-			}

-			action.generateCode(scope, codeStream);

-		}

-		// continuation point

-		if (continueLabel != null) {

-			continueLabel.place();

-			// generate the increments for next iteration

-			if (increments != null) {

-				for (int i = 0, max = increments.length; i < max; i++) {

-					increments[i].generateCode(scope, codeStream);

-				}

-			}

-		}

-

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (preCondInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, preCondInitStateIndex);

-		}

-

-		// generate the condition

-		conditionLabel.place();

-		if ((condition != null) && (condition.constant == NotAConstant)) {

-			condition.generateOptimizedBoolean(scope, codeStream, actionLabel, null, true);

-		} else {

-			if (continueLabel != null) {

-				codeStream.goto_(actionLabel);

-			}

-		}

-		breakLabel.place();

-

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (neededScope) {

-			codeStream.exitUserScope(scope);

-		}

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			codeStream.addDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-

-		printIndent(tab, output).append("for ("); //$NON-NLS-1$

-		//inits

-		if (initializations != null) {

-			for (int i = 0; i < initializations.length; i++) {

-				//nice only with expressions

-				if (i > 0) output.append(", "); //$NON-NLS-1$

-				initializations[i].print(0, output);

-			}

-		}

-		output.append("; "); //$NON-NLS-1$

-		//cond

-		if (condition != null) condition.printExpression(0, output);

-		output.append("; "); //$NON-NLS-1$

-		//updates

-		if (increments != null) {

-			for (int i = 0; i < increments.length; i++) {

-				if (i > 0) output.append(", "); //$NON-NLS-1$

-				increments[i].print(0, output);

-			}

-		}

-		output.append(") "); //$NON-NLS-1$

-		//block

-		if (action == null)

-			output.append(';');

-		else {

-			output.append('\n');

-			action.printStatement(tab + 1, output); //$NON-NLS-1$

-		}

-		return output.append(';');

-	}

-

-	public void resolve(BlockScope upperScope) {

-

-		// use the scope that will hold the init declarations

-		scope = neededScope ? new BlockScope(upperScope) : upperScope;

-		if (initializations != null)

-			for (int i = 0, length = initializations.length; i < length; i++)

-				initializations[i].resolve(scope);

-		if (condition != null) {

-			TypeBinding type = condition.resolveTypeExpecting(scope, BooleanBinding);

-			condition.computeConversion(scope, type, type);

-		}

-		if (increments != null)

-			for (int i = 0, length = increments.length; i < length; i++)

-				increments[i].resolve(scope);

-		if (action != null)

-			action.resolve(scope);

-	}

-	

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			if (initializations != null) {

-				int initializationsLength = initializations.length;

-				for (int i = 0; i < initializationsLength; i++)

-					initializations[i].traverse(visitor, scope);

-			}

-

-			if (condition != null)

-				condition.traverse(visitor, scope);

-

-			if (increments != null) {

-				int incrementsLength = increments.length;

-				for (int i = 0; i < incrementsLength; i++)

-					increments[i].traverse(visitor, scope);

-			}

-

-			if (action != null)

-				action.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ForeachStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ForeachStatement.js
deleted file mode 100644
index b082e42..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ForeachStatement.js
+++ /dev/null
@@ -1,393 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.Label;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.flow.LoopingFlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ArrayBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.LocalVariableBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ParameterizedTypeBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeConstants;

-

-public class ForeachStatement extends Statement {

-    

-	public LocalDeclaration elementVariable;

-	public int elementVariableImplicitWidening = -1; 

-	public Expression collection;

-	public Statement action;

-	

-	// set the kind of foreach

-	private int kind;

-	// possible kinds of iterating behavior

-	private static final int ARRAY = 0;

-	private static final int RAW_ITERABLE = 1;

-	private static final int GENERIC_ITERABLE = 2;

-

-	private int arrayElementTypeID;

-

-	// loop labels

-	private Label breakLabel;

-	private Label continueLabel;

-	

-	public BlockScope scope;

-

-	// secret variables for codegen

-	public LocalVariableBinding indexVariable;

-	public LocalVariableBinding collectionVariable;	// to store the collection expression value

-	public LocalVariableBinding maxVariable;

-	// secret variable names

-	private static final char[] SecretIndexVariableName = " index".toCharArray(); //$NON-NLS-1$

-	private static final char[] SecretCollectionVariableName = " collection".toCharArray(); //$NON-NLS-1$

-	private static final char[] SecretMaxVariableName = " max".toCharArray(); //$NON-NLS-1$

-	

-	int postCollectionInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-	

-	public ForeachStatement(

-		LocalDeclaration elementVariable,

-		Expression collection,

-		int start) {

-

-		this.elementVariable = elementVariable;

-		this.collection = collection;

-		this.sourceStart = start;

-		this.kind = -1;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-		// initialize break and continue labels

-		breakLabel = new Label();

-		continueLabel = new Label();

-

-		// process the element variable and collection

-		flowInfo = this.elementVariable.analyseCode(scope, flowContext, flowInfo);

-		flowInfo = this.collection.analyseCode(scope, flowContext, flowInfo);

-

-		// element variable will be assigned when iterating

-		flowInfo.markAsDefinitelyAssigned(this.elementVariable.binding);

-

-		this.postCollectionInitStateIndex = currentScope.methodScope().recordInitializationStates(flowInfo);

-		

-		// process the action

-		LoopingFlowContext loopingContext = new LoopingFlowContext(flowContext, this, breakLabel, continueLabel, scope);

-		FlowInfo actionInfo = flowInfo.initsWhenTrue().copy();

-		if (!(action == null || (action.isEmptyBlock() 

-		        	&& currentScope.environment().options.complianceLevel <= ClassFileConstants.JDK1_3))) {

-

-			if (!this.action.complainIfUnreachable(actionInfo, scope, false)) {

-				actionInfo = action.analyseCode(scope, loopingContext, actionInfo);

-			}

-

-			// code generation can be optimized when no need to continue in the loop

-			if (!actionInfo.isReachable() && !loopingContext.initsOnContinue.isReachable()) {

-				continueLabel = null;

-			} else {

-				actionInfo = actionInfo.mergedWith(loopingContext.initsOnContinue.unconditionalInits());

-				loopingContext.complainOnFinalAssignmentsInLoop(scope, actionInfo);

-			}

-		}

-

-		// we need the variable to iterate the collection even if the 

-		// element variable is not used

-		if (!(this.action == null

-				|| this.action.isEmptyBlock()

-				|| ((this.action.bits & IsUsefulEmptyStatementMASK) != 0))) {

-			switch(this.kind) {

-				case ARRAY :

-					this.collectionVariable.useFlag = LocalVariableBinding.USED;

-					this.indexVariable.useFlag = LocalVariableBinding.USED;

-					this.maxVariable.useFlag = LocalVariableBinding.USED;

-					break;

-				case RAW_ITERABLE :

-				case GENERIC_ITERABLE :

-					this.indexVariable.useFlag = LocalVariableBinding.USED;

-					break;

-			}

-		}

-		//end of loop

-		FlowInfo mergedInfo = FlowInfo.mergedOptimizedBranches(

-				loopingContext.initsOnBreak, 

-				false, 

-				flowInfo.initsWhenFalse(), 

-				false, 

-				true /*for(;;){}while(true); unreachable(); */);

-		return mergedInfo;

-	}

-

-	/**

-	 * For statement code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-	    

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-		if (this.action == null

-				|| this.action.isEmptyBlock()

-				|| ((this.action.bits & IsUsefulEmptyStatementMASK) != 0)) {

-			codeStream.exitUserScope(scope);

-			if (mergedInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-				codeStream.addDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);				

-			}

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		// generate the initializations

-		switch(this.kind) {

-			case ARRAY :

-				collection.generateCode(scope, codeStream, true);

-				codeStream.store(this.collectionVariable, false);

-				codeStream.iconst_0();

-				codeStream.store(this.indexVariable, false);

-				codeStream.load(this.collectionVariable);

-				codeStream.arraylength();

-				codeStream.store(this.maxVariable, false);

-				break;

-			case RAW_ITERABLE :

-			case GENERIC_ITERABLE :

-				collection.generateCode(scope, codeStream, true);

-				// declaringClass.iterator();

-				final TypeBinding collectionTypeBinding = collection.resolvedType;

-				MethodBinding iteratorMethodBinding =

-					new MethodBinding(

-							AccPublic,

-							"iterator".toCharArray(),//$NON-NLS-1$

-							scope.getJavaUtilIterator(),

-							TypeConstants.NoParameters,

-							TypeConstants.NoExceptions,

-							(ReferenceBinding) collectionTypeBinding);

-				if (collectionTypeBinding.isInterface()) {

-					codeStream.invokeinterface(iteratorMethodBinding);

-				} else {

-					codeStream.invokevirtual(iteratorMethodBinding);

-				}

-				codeStream.store(this.indexVariable, false);

-				break;

-		}

-		

-		// label management

-		Label actionLabel = new Label(codeStream);

-		Label conditionLabel = new Label(codeStream);

-		breakLabel.initialize(codeStream);

-		if (this.continueLabel != null) {

-			this.continueLabel.initialize(codeStream);

-		}

-		// jump over the actionBlock

-		codeStream.goto_(conditionLabel);

-

-		// generate the loop action

-		actionLabel.place();

-

-		// generate the loop action

-		if (this.elementVariable.binding.resolvedPosition != -1) {

-			switch(this.kind) {

-				case ARRAY :

-					codeStream.load(this.collectionVariable);

-					codeStream.load(this.indexVariable);

-					codeStream.arrayAt(this.arrayElementTypeID);

-					if (this.elementVariableImplicitWidening != -1) {

-						codeStream.generateImplicitConversion(this.elementVariableImplicitWidening);

-					}

-					codeStream.store(this.elementVariable.binding, false);

-					break;

-				case RAW_ITERABLE :

-				case GENERIC_ITERABLE :

-					codeStream.load(this.indexVariable);

-					codeStream.invokeJavaUtilIteratorNext();

-					if (this.elementVariable.binding.type.id != T_JavaLangObject) {

-						codeStream.checkcast(this.elementVariable.binding.type);

-					}

-					codeStream.store(this.elementVariable.binding, false);

-					break;

-			}

-			codeStream.addVisibleLocalVariable(this.elementVariable.binding);

-			if (this.postCollectionInitStateIndex != -1) {

-				codeStream.addDefinitelyAssignedVariables(

-					currentScope,

-					this.postCollectionInitStateIndex);

-			}

-		}

-		this.action.generateCode(scope, codeStream);

-

-		// continuation point

-		int continuationPC = codeStream.position;

-		if (this.continueLabel != null) {

-			this.continueLabel.place();

-			// generate the increments for next iteration

-			switch(this.kind) {

-				case ARRAY :

-					codeStream.iinc(this.indexVariable.resolvedPosition, 1);

-					break;

-				case RAW_ITERABLE :

-				case GENERIC_ITERABLE :

-					break;

-			}

-		}

-		// generate the condition

-		conditionLabel.place();

-		if (this.postCollectionInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, postCollectionInitStateIndex);

-		}

-		switch(this.kind) {

-			case ARRAY :

-				codeStream.load(this.indexVariable);

-				codeStream.load(this.maxVariable);

-				codeStream.if_icmplt(actionLabel);

-				break;

-			case RAW_ITERABLE :

-			case GENERIC_ITERABLE :

-				codeStream.load(this.indexVariable);

-				codeStream.invokeJavaUtilIteratorHasNext();

-				codeStream.ifne(actionLabel);

-				break;

-		}

-		codeStream.recordPositionsFrom(continuationPC, this.elementVariable.sourceStart);

-

-		breakLabel.place();

-		codeStream.exitUserScope(scope);

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			codeStream.addDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);			

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-

-		printIndent(tab, output).append("for ("); //$NON-NLS-1$

-		this.elementVariable.print(0, output); 

-		output.append(" : ");//$NON-NLS-1$

-		this.collection.print(0, output).append(") "); //$NON-NLS-1$

-		//block

-		if (this.action == null) {

-			output.append(';');

-		} else {

-			output.append('\n');

-			this.action.printStatement(tab + 1, output); //$NON-NLS-1$

-		}

-		return output;

-	}

-

-	public void resolve(BlockScope upperScope) {

-		// use the scope that will hold the init declarations

-		scope = new BlockScope(upperScope);

-		this.elementVariable.resolve(scope); // collection expression can see itemVariable

-		TypeBinding elementType = this.elementVariable.type.resolvedType;

-		TypeBinding collectionType = this.collection.resolveType(scope);

-		this.collection.computeConversion(scope, collectionType, collectionType);

-		boolean hasError = elementType == null || collectionType == null;

-

-		if (!hasError) {

-			if (collectionType.isArrayType()) { // for(E e : E[])

-				this.kind = ARRAY;

-				TypeBinding collectionElementType = ((ArrayBinding) collectionType).elementsType();

-				if (!collectionElementType.isCompatibleWith(elementType)) {

-					scope.problemReporter().notCompatibleTypesErrorInForeach(collection, collectionElementType, elementType);

-				}

-				// in case we need to do a conversion

-				this.arrayElementTypeID = collectionElementType.id;

-				if (elementType.isBaseType()) {

-					this.elementVariableImplicitWidening = (elementType.id << 4) + this.arrayElementTypeID;

-				}

-			} else if (collectionType instanceof ReferenceBinding) {

-			    ReferenceBinding iterableType = ((ReferenceBinding)collectionType).findSuperTypeErasingTo(T_JavaLangIterable, false /*Iterable is not a class*/);

-			    if (iterableType != null) {

-				    if (iterableType.isParameterizedType()) { // for(E e : Iterable<E>)

-					    ParameterizedTypeBinding parameterizedType = (ParameterizedTypeBinding)iterableType;

-						if (parameterizedType.arguments.length == 1) { // per construction can only be one

-							this.kind = GENERIC_ITERABLE;

-							TypeBinding collectionElementType = parameterizedType.arguments[0]; 

-							if (!collectionElementType.isCompatibleWith(elementType)) {

-								scope.problemReporter().notCompatibleTypesErrorInForeach(collection, collectionElementType, elementType);

-							}

-							// no conversion needed as only for reference types

-						}

-				    } else if (iterableType.isGenericType()) { // for (T t : Iterable<T>) - in case used inside Iterable itself

-						if (iterableType.typeVariables().length == 1) {

-							this.kind = GENERIC_ITERABLE;

-							TypeBinding collectionElementType = iterableType.typeVariables()[0]; 

-							if (!collectionElementType.isCompatibleWith(elementType)) {

-								scope.problemReporter().notCompatibleTypesErrorInForeach(collection, collectionElementType, elementType);

-							}

-						}

-					} else if (iterableType.isRawType()) { // for(Object o : Iterable)

-						this.kind = RAW_ITERABLE;

-						TypeBinding collectionElementType = scope.getJavaLangObject(); 

-						if (!collectionElementType.isCompatibleWith(elementType)) {

-							scope.problemReporter().notCompatibleTypesErrorInForeach(collection, collectionElementType, elementType);

-						}

-						// no conversion needed as only for reference types

-					}

-			    }

-			}

-			switch(this.kind) {

-				case ARRAY :

-					// allocate #index secret variable (of type int)

-					this.indexVariable = new LocalVariableBinding(SecretIndexVariableName, IntBinding, AccDefault, false);

-					scope.addLocalVariable(this.indexVariable);

-					this.indexVariable.setConstant(NotAConstant); // not inlinable

-					

-					// allocate #max secret variable

-					this.maxVariable = new LocalVariableBinding(SecretMaxVariableName, IntBinding, AccDefault, false);

-					scope.addLocalVariable(this.maxVariable);

-					this.maxVariable.setConstant(NotAConstant); // not inlinable

-					// add #array secret variable (of collection type)

-					this.collectionVariable = new LocalVariableBinding(SecretCollectionVariableName, collectionType, AccDefault, false);

-					scope.addLocalVariable(this.collectionVariable);

-					this.collectionVariable.setConstant(NotAConstant); // not inlinable

-					break;

-				case RAW_ITERABLE :

-				case GENERIC_ITERABLE :

-					// allocate #index secret variable (of type Iterator)

-					this.indexVariable = new LocalVariableBinding(SecretIndexVariableName, scope.getJavaUtilIterator(), AccDefault, false);

-					scope.addLocalVariable(this.indexVariable);

-					this.indexVariable.setConstant(NotAConstant); // not inlinable

-					break;

-				default :

-					scope.problemReporter().invalidTypeForCollection(collection);

-			}

-		}

-		if (action != null) {

-			action.resolve(scope);

-		}

-	}

-	

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			this.elementVariable.traverse(visitor, scope);

-			this.collection.traverse(visitor, scope);

-			if (action != null) {

-				action.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IfStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IfStatement.js
deleted file mode 100644
index 7c3e687..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IfStatement.js
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class IfStatement extends Statement {

-	

-	//this class represents the case of only one statement in 

-	//either else and/or then branches.

-

-	public Expression condition;

-	public Statement thenStatement;

-	public Statement elseStatement;

-

-	boolean thenExit;

-

-	// for local variables table attributes

-	int thenInitStateIndex = -1;

-	int elseInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-

-	public IfStatement(Expression condition, Statement thenStatement, 	int sourceStart, int sourceEnd) {

-

-		this.condition = condition;

-		this.thenStatement = thenStatement;

-		// remember useful empty statement

-		if (thenStatement instanceof EmptyStatement) thenStatement.bits |= IsUsefulEmptyStatementMASK;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-

-	public IfStatement(Expression condition, Statement thenStatement, Statement elseStatement, int sourceStart, int sourceEnd) {

-

-		this.condition = condition;

-		this.thenStatement = thenStatement;

-		// remember useful empty statement

-		if (thenStatement instanceof EmptyStatement) thenStatement.bits |= IsUsefulEmptyStatementMASK;

-		this.elseStatement = elseStatement;

-		if (elseStatement instanceof IfStatement) elseStatement.bits |= IsElseIfStatement;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// process the condition

-		flowInfo = condition.analyseCode(currentScope, flowContext, flowInfo);

-

-		Constant cst = this.condition.optimizedBooleanConstant();

-		boolean isConditionOptimizedTrue = cst != NotAConstant && cst.booleanValue() == true;

-		boolean isConditionOptimizedFalse = cst != NotAConstant && cst.booleanValue() == false;

-		

-		// process the THEN part

-		FlowInfo thenFlowInfo = flowInfo.initsWhenTrue().copy();

-		if (isConditionOptimizedFalse) {

-			thenFlowInfo.setReachMode(FlowInfo.UNREACHABLE); 

-		}

-		if (this.thenStatement != null) {

-			// Save info for code gen

-			thenInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(thenFlowInfo);

-			if (!thenStatement.complainIfUnreachable(thenFlowInfo, currentScope, false)) {

-				thenFlowInfo =

-					thenStatement.analyseCode(currentScope, flowContext, thenFlowInfo);

-			}

-		}

-		// code gen: optimizing the jump around the ELSE part

-		this.thenExit =  !thenFlowInfo.isReachable();

-

-		// process the ELSE part

-		FlowInfo elseFlowInfo = flowInfo.initsWhenFalse().copy();

-		if (isConditionOptimizedTrue) {

-			elseFlowInfo.setReachMode(FlowInfo.UNREACHABLE); 

-		}

-		if (this.elseStatement != null) {

-		    // signal else clause unnecessarily nested, tolerate else-if code pattern

-		    if (thenFlowInfo == FlowInfo.DEAD_END 

-		            && (this.bits & IsElseIfStatement) == 0 	// else of an else-if

-		            && !(this.elseStatement instanceof IfStatement)) {

-		        currentScope.problemReporter().unnecessaryElse(this.elseStatement);

-		    }

-			// Save info for code gen

-			elseInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(elseFlowInfo);

-			if (!elseStatement.complainIfUnreachable(elseFlowInfo, currentScope, false)) {

-				elseFlowInfo =

-					elseStatement.analyseCode(currentScope, flowContext, elseFlowInfo);

-			}

-		}

-

-		// merge THEN & ELSE initializations

-		FlowInfo mergedInfo = FlowInfo.mergedOptimizedBranches(

-				thenFlowInfo, 

-				isConditionOptimizedTrue, 

-				elseFlowInfo, 

-				isConditionOptimizedFalse,

-				true /*if(true){ return; }  fake-reachable(); */);

-		mergedInitStateIndex = currentScope.methodScope().recordInitializationStates(mergedInfo);

-		return mergedInfo;

-	}

-

-	/**

-	 * If code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((this.bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-		Label endifLabel = new Label(codeStream);

-

-		// optimizing the then/else part code gen

-		Constant cst;

-		boolean hasThenPart = 

-			!(((cst = this.condition.optimizedBooleanConstant()) != NotAConstant

-					&& cst.booleanValue() == false)

-				|| this.thenStatement == null

-				|| this.thenStatement.isEmptyBlock());

-		boolean hasElsePart =

-			!((cst != NotAConstant && cst.booleanValue() == true)

-				|| this.elseStatement == null

-				|| this.elseStatement.isEmptyBlock());

-

-		if (hasThenPart) {

-			Label falseLabel;

-			// generate boolean condition

-			this.condition.generateOptimizedBoolean(

-				currentScope,

-				codeStream,

-				null,

-				(falseLabel = new Label(codeStream)),

-				true);

-			// May loose some local variable initializations : affecting the local variable attributes

-			if (thenInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, thenInitStateIndex);

-				codeStream.addDefinitelyAssignedVariables(currentScope, thenInitStateIndex);

-			}

-			// generate then statement

-			this.thenStatement.generateCode(currentScope, codeStream);

-			// jump around the else statement

-			if (hasElsePart && !thenExit) {

-				this.thenStatement.branchChainTo(endifLabel);

-				int position = codeStream.position;

-				codeStream.goto_(endifLabel);

-				codeStream.updateLastRecordedEndPC(position);

-				//goto is tagged as part of the thenAction block

-			}

-			falseLabel.place();

-		} else {

-			if (hasElsePart) {

-				// generate boolean condition

-				this.condition.generateOptimizedBoolean(

-					currentScope,

-					codeStream,

-					endifLabel,

-					null,

-					true);

-			} else {

-				// generate condition side-effects

-				this.condition.generateCode(currentScope, codeStream, false);

-				codeStream.recordPositionsFrom(pc, this.sourceStart);

-			}

-		}

-		// generate else statement

-		if (hasElsePart) {

-			// May loose some local variable initializations : affecting the local variable attributes

-			if (elseInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(

-					currentScope,

-					elseInitStateIndex);

-				codeStream.addDefinitelyAssignedVariables(currentScope, elseInitStateIndex);

-			}

-			this.elseStatement.generateCode(currentScope, codeStream);

-		}

-		endifLabel.place();

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(

-				currentScope,

-				mergedInitStateIndex);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		printIndent(indent, output).append("if ("); //$NON-NLS-1$

-		condition.printExpression(0, output).append(")\n");	//$NON-NLS-1$ 

-		thenStatement.printStatement(indent + 2, output);

-		if (elseStatement != null) {

-			output.append('\n');

-			printIndent(indent, output);

-			output.append("else\n"); //$NON-NLS-1$

-			elseStatement.printStatement(indent + 2, output);

-		}

-		return output;

-	}

-

-	public void resolve(BlockScope scope) {

-

-		TypeBinding type = condition.resolveTypeExpecting(scope, BooleanBinding);

-		condition.computeConversion(scope, type, type);

-		if (thenStatement != null)

-			thenStatement.resolve(scope);

-		if (elseStatement != null)

-			elseStatement.resolve(scope);

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			condition.traverse(visitor, blockScope);

-			if (thenStatement != null)

-				thenStatement.traverse(visitor, blockScope);

-			if (elseStatement != null)

-				elseStatement.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ImplicitDocTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ImplicitDocTypeReference.js
deleted file mode 100644
index 6321c29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ImplicitDocTypeReference.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public class ImplicitDocTypeReference extends TypeReference {

-	

-	public char[] token;

-

-	public ImplicitDocTypeReference(char[] name, int pos) {

-		super();

-		this.token = name;

-		this.sourceStart = pos;

-		this.sourceEnd = pos;

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference#copyDims(int)

-	 */

-	public TypeReference copyDims(int dim) {

-		return null;

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference#getTypeBinding(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope)

-	 */

-	protected TypeBinding getTypeBinding(Scope scope) {

-		this.constant = NotAConstant;

-		return this.resolvedType = scope.enclosingSourceType();

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference#getTypeName()

-	 */

-	public char[][] getTypeName() {

-		if (this.token != null) {

-			char[][] tokens = { this.token };

-			return tokens;

-		}

-		return null;

-	}

-	public boolean isThis() {

-		return true;

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope classScope) {

-		// Do nothing

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope)

-	 */

-	public void traverse(ASTVisitor visitor, ClassScope classScope) {

-		// Do nothing

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#printExpression(int, java.lang.StringBuffer)

-	 */

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		return new StringBuffer();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ImportReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ImportReference.js
deleted file mode 100644
index 386d225..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ImportReference.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ImportReference extends ASTNode {

-

-	public char[][] tokens;

-	public long[] sourcePositions; //each entry is using the code : (start<<32) + end

-	public boolean onDemand = true; //most of the time

-	public int declarationEnd; // doesn't include an potential trailing comment

-	public int declarationSourceStart;

-	public int declarationSourceEnd;

-	public boolean used;

-	public int modifiers; // 1.5 addition for static imports

-	public Annotation[] annotations;

-

-	public ImportReference(

-			char[][] tokens,

-			long[] sourcePositions,

-			boolean onDemand,

-			int modifiers) {

-

-		this.tokens = tokens;

-		this.sourcePositions = sourcePositions;

-		this.onDemand = onDemand;

-		this.sourceEnd = (int) (sourcePositions[sourcePositions.length-1] & 0x00000000FFFFFFFF);

-		this.sourceStart = (int) (sourcePositions[0] >>> 32);

-		this.modifiers = modifiers;

-	}

-	

-	public boolean isStatic() {

-		return (this.modifiers & AccStatic) != 0;

-	}

-

-	/**

-	 * @return char[][]

-	 */

-	public char[][] getImportName() {

-

-		return tokens;

-	}

-

-	public StringBuffer print(int indent, StringBuffer output) {

-

-		return print(indent, output, true);

-	}

-

-	public StringBuffer print(int tab, StringBuffer output, boolean withOnDemand) {

-

-		/* when withOnDemand is false, only the name is printed */

-		for (int i = 0; i < tokens.length; i++) {

-			if (i > 0) output.append('.');

-			output.append(tokens[i]);

-		}

-		if (withOnDemand && onDemand) {

-			output.append(".*"); //$NON-NLS-1$

-		}

-		return output;

-	}

-

-	public void traverse(ASTVisitor visitor, CompilationUnitScope scope) {

-

-		visitor.visit(this, scope);

-		if (this.annotations != null) {

-			int annotationsLength = this.annotations.length;

-			for (int i = 0; i < annotationsLength; i++)

-				this.annotations[i].traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Initializer.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Initializer.js
deleted file mode 100644
index 2952373..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Initializer.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.*;

-

-public class Initializer extends FieldDeclaration {

-	

-	public Block block;

-	public int lastVisibleFieldID;

-	public int bodyStart;

-	public int bodyEnd;

-	

-	public boolean errorInSignature = false; 

-	

-	public Initializer(Block block, int modifiers) {

-		this.block = block;

-		this.modifiers = modifiers;

-

-		declarationSourceStart = sourceStart = block.sourceStart;

-	}

-

-	public FlowInfo analyseCode(

-		MethodScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		return block.analyseCode(currentScope, flowContext, flowInfo);

-	}

-

-	/**

-	 * Code generation for a non-static initializer: 

-	 *    standard block code gen

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-		block.generateCode(currentScope, codeStream);

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public boolean isField() {

-

-		return false;

-	}

-

-	public boolean isStatic() {

-

-		return (modifiers & AccStatic) != 0;

-	}

-

-	public void parseStatements(

-		Parser parser,

-		TypeDeclaration typeDeclaration,

-		CompilationUnitDeclaration unit) {

-

-		//fill up the method body with statement

-		parser.parse(this, typeDeclaration, unit);

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		if (modifiers != 0) {

-			printIndent(indent, output);

-			printModifiers(modifiers, output).append("{\n"); //$NON-NLS-1$

-			block.printBody(indent, output);

-			printIndent(indent, output).append('}'); 

-			return output;

-		} else {

-			return block.printStatement(indent, output);

-		}

-	}

-	

-	public void resolve(MethodScope scope) {

-

-	    FieldBinding previousField = scope.initializedField;

-		int previousFieldID = scope.lastVisibleFieldID;

-		try {

-		    scope.initializedField = null;

-			scope.lastVisibleFieldID = lastVisibleFieldID;

-			if (isStatic()) {

-				ReferenceBinding declaringType = scope.enclosingSourceType();

-				if (declaringType.isNestedType() && !declaringType.isStatic())

-					scope.problemReporter().innerTypesCannotDeclareStaticInitializers(

-						declaringType,

-						this);

-			}

-			block.resolve(scope);

-		} finally {

-		    scope.initializedField = previousField;

-			scope.lastVisibleFieldID = previousFieldID;

-		}

-	}

-

-	public void traverse(ASTVisitor visitor, MethodScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			block.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/InstanceOfExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/InstanceOfExpression.js
deleted file mode 100644
index 5738ea0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/InstanceOfExpression.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class InstanceOfExpression extends OperatorExpression {

-

-	public Expression expression;

-	public TypeReference type;

-

-	public InstanceOfExpression(

-		Expression expression,

-		TypeReference type,

-		int operator) {

-

-		this.expression = expression;

-		this.type = type;

-		this.bits |= operator << OperatorSHIFT;

-		this.sourceStart = expression.sourceStart;

-		this.sourceEnd = type.sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		return expression

-			.analyseCode(currentScope, flowContext, flowInfo)

-			.unconditionalInits();

-	}

-

-	/**

-	 * Code generation for instanceOfExpression

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	*/

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		expression.generateCode(currentScope, codeStream, true);

-		codeStream.instance_of(type.resolvedType);

-		if (!valueRequired)

-			codeStream.pop();

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output) {

-

-		expression.printExpression(indent, output).append(" instanceof "); //$NON-NLS-1$

-		return type.print(0, output);

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#reportIllegalCast(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding)

-	 */

-	public void reportIllegalCast(Scope scope, TypeBinding castType, TypeBinding expressionType) {

-		scope.problemReporter().notCompatibleTypesError(this, expressionType, castType);

-	}

-	public TypeBinding resolveType(BlockScope scope) {

-

-		constant = NotAConstant;

-		TypeBinding expressionType = expression.resolveType(scope);

-		TypeBinding checkedType = type.resolveType(scope);

-		if (expressionType == null || checkedType == null)

-			return null;

-

-		if (checkedType.isTypeVariable() || checkedType.isParameterizedType() || checkedType.isGenericType()) {

-			scope.problemReporter().illegalInstanceOfGenericType(checkedType, this);

-		} else {

-			checkCastTypesCompatibility(scope, checkedType, expressionType, null);

-		}

-		return this.resolvedType = BooleanBinding;

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#tagAsUnnecessaryCast(Scope,TypeBinding)

-	 */

-	public void tagAsUnnecessaryCast(Scope scope, TypeBinding castType) {

-		scope.problemReporter().unnecessaryInstanceof(this, castType);

-	}

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			expression.traverse(visitor, scope);

-			type.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IntLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IntLiteral.js
deleted file mode 100644
index 10f6f73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IntLiteral.js
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class IntLiteral extends NumberLiteral {

-	public int value;

-	

-	public static final IntLiteral

-		One = new IntLiteral(new char[]{'1'},0,0,1);//used for ++ and -- 

-

-	static final Constant FORMAT_ERROR = new DoubleConstant(1.0/0.0); // NaN;

-public IntLiteral(char[] token, int s, int e) {

-	super(token, s,e);

-}

-public IntLiteral(char[] token, int s,int e, int value) {

-	this(token, s,e);

-	this.value = value;

-}

-public IntLiteral(int intValue) {

-	//special optimized constructor : the cst is the argument 

-

-	//value that should not be used

-	//	tokens = null ;

-	//	sourceStart = 0;

-	//	sourceEnd = 0;

-	super(null,0,0);

-	constant = Constant.fromValue(intValue);

-	value = intValue;

-	

-}

-public void computeConstant() {

-	//a special constant is use for the potential Integer.MAX_VALUE+1

-	//which is legal if used with a - as prefix....cool....

-	//notice that Integer.MIN_VALUE  == -2147483648

-

-	long MAX = Integer.MAX_VALUE;

-	if (this == One) {	constant = Constant.One; return ;}

-	

-	int length = source.length;

-	long computedValue = 0L;

-	if (source[0] == '0')

-	{	MAX = 0xFFFFFFFFL ; //a long in order to be positive ! 	

-		if (length == 1) {	constant = Constant.fromValue(0); return ;}

-		final int shift,radix;

-		int j ;

-		if ( (source[1] == 'x') || (source[1] == 'X') )

-		{	shift = 4 ; j = 2; radix = 16;}

-		else

-		{	shift = 3 ; j = 1; radix = 8;}

-		while (source[j]=='0') 

-		{	j++; //jump over redondant zero

-			if (j == length)

-			{	//watch for 000000000000000000

-				constant = Constant.fromValue(value = (int)computedValue);

-				return ;}}

-		

-		while (j<length)

-		{	int digitValue ;

-			if ((digitValue = Character.digit(source[j++],radix))	< 0 ) 	

-			{	constant = FORMAT_ERROR; return ;}

-			computedValue = (computedValue<<shift) | digitValue ;

-			if (computedValue > MAX) return /*constant stays null*/ ;}}

-	else

-	{	//-----------regular case : radix = 10-----------

-		for (int i = 0 ; i < length;i++)

-		{	int digitValue ;

-			if ((digitValue = Character.digit(source[i],10))	< 0 ) 

-			{	constant = FORMAT_ERROR; return ;}

-			computedValue = 10*computedValue + digitValue;

-			if (computedValue > MAX) return /*constant stays null*/ ; }}

-

-	constant = Constant.fromValue(value = (int)computedValue);

-		

-}

-/**

- * Code generation for int literal

- *

- * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

- * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

- * @param valueRequired boolean

- */ 

-public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-	int pc = codeStream.position;

-	if (valueRequired)

-		if ((implicitConversion >> 4) == T_int)

-			codeStream.generateInlinedValue(value);

-		else

-			codeStream.generateConstant(constant, implicitConversion);

-	codeStream.recordPositionsFrom(pc, this.sourceStart);

-}

-public TypeBinding literalType(BlockScope scope) {

-	return IntBinding;

-}

-public final boolean mayRepresentMIN_VALUE(){

-	//a special autorized int literral is 2147483648

-	//which is ONE over the limit. This special case 

-	//only is used in combinaison with - to denote

-	//the minimal value of int -2147483648

-

-	return ((source.length == 10) &&

-			(source[0] == '2') &&

-			(source[1] == '1') &&

-			(source[2] == '4') &&

-			(source[3] == '7') &&			

-			(source[4] == '4') &&

-			(source[5] == '8') &&

-			(source[6] == '3') &&

-			(source[7] == '6') &&			

-			(source[8] == '4') &&

-			(source[9] == '8'));}

-public TypeBinding resolveType(BlockScope scope) {

-	// the format may be incorrect while the scanner could detect

-	// such an error only on painfull tests...easier and faster here

-

-	TypeBinding tb = super.resolveType(scope);

-	if (constant == FORMAT_ERROR) {

-		constant = NotAConstant;

-		scope.problemReporter().constantOutOfFormat(this);

-		this.resolvedType = null;

-		return null;

-	}

-	return tb;

-}

-public StringBuffer printExpression(int indent, StringBuffer output){

-

-	if (source == null) {

-	/* special optimized IntLiteral that are created by the compiler */

-		return output.append(String.valueOf(value));

-	}

-	return super.printExpression(indent, output);

-}

-	

-public void traverse(ASTVisitor visitor, BlockScope scope) {

-	visitor.visit(this, scope);

-	visitor.endVisit(this, scope);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IntLiteralMinValue.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IntLiteralMinValue.js
deleted file mode 100644
index 8558e73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/IntLiteralMinValue.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-

-public class IntLiteralMinValue extends IntLiteral {

-

-	final static char[] CharValue = new char[]{'-','2','1','4','7','4','8','3','6','4','8'};

-	final static Constant MIN_VALUE = Constant.fromValue(Integer.MIN_VALUE) ; 

-

-public IntLiteralMinValue() {

-	super(CharValue,0,0,Integer.MIN_VALUE);

-	constant = MIN_VALUE;

-}

-public void computeConstant(){

-	

-	/*precomputed at creation time*/ }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Javadoc.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Javadoc.js
deleted file mode 100644
index c5601ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Javadoc.js
+++ /dev/null
@@ -1,495 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser;

-

-/**

- * Node representing a structured Javadoc comment

- */

-public class Javadoc extends ASTNode {

-

-	public JavadocSingleNameReference[] parameters; // @param

-	public TypeReference[] thrownExceptions; // @throws, @exception

-	public JavadocReturnStatement returnStatement; // @return

-	public Expression[] references; // @see

-	public boolean inherited = false;

-	// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51600

-	// Store param references for tag with invalid syntax

-	public JavadocSingleNameReference[] invalidParameters; // @param

-

-	public Javadoc(int sourceStart, int sourceEnd) {

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-	

-	/*

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#print(int, java.lang.StringBuffer)

-	 */

-	public StringBuffer print(int indent, StringBuffer output) {

-		printIndent(indent, output).append("/**\n"); //$NON-NLS-1$

-		if (this.parameters != null) {

-			for (int i = 0, length = this.parameters.length; i < length; i++) {

-				printIndent(indent + 1, output).append(" * @param "); //$NON-NLS-1$		

-				this.parameters[i].print(indent, output).append('\n');

-			}

-		}

-		if (this.returnStatement != null) {

-			printIndent(indent + 1, output).append(" * @return\n"); //$NON-NLS-1$		

-		}

-		if (this.thrownExceptions != null) {

-			for (int i = 0, length = this.thrownExceptions.length; i < length; i++) {

-				printIndent(indent + 1, output).append(" * @throws "); //$NON-NLS-1$		

-				this.thrownExceptions[i].print(indent, output).append('\n');

-			}

-		}

-		if (this.references != null) {

-			for (int i = 0, length = this.references.length; i < length; i++) {

-				printIndent(indent + 1, output).append(" * @see"); //$NON-NLS-1$		

-				this.references[i].print(indent, output).append('\n');

-			}

-		}

-		printIndent(indent, output).append(" */\n"); //$NON-NLS-1$

-		return output;

-	}

-

-	/*

-	 * Resolve type javadoc while a class scope

-	 */

-	public void resolve(ClassScope classScope) {

-		

-

-		// @param tags

-		int paramTagsSize = this.parameters == null ? 0 : this.parameters.length;

-		for (int i = 0; i < paramTagsSize; i++) {

-			JavadocSingleNameReference param = this.parameters[i];

-			classScope.problemReporter().javadocUnexpectedTag(param.tagSourceStart, param.tagSourceEnd);

-		}

-

-		// @return tags

-		if (this.returnStatement != null) {

-			classScope.problemReporter().javadocUnexpectedTag(this.returnStatement.sourceStart, this.returnStatement.sourceEnd);

-		}

-

-		// @throws/@exception tags

-		int throwsTagsLength = this.thrownExceptions == null ? 0 : this.thrownExceptions.length;

-		for (int i = 0; i < throwsTagsLength; i++) {

-			TypeReference typeRef = this.thrownExceptions[i];

-			int start, end;

-			if (typeRef instanceof JavadocSingleTypeReference) {

-				JavadocSingleTypeReference singleRef = (JavadocSingleTypeReference) typeRef;

-				start = singleRef.tagSourceStart;

-				end = singleRef.tagSourceEnd;

-			} else if (typeRef instanceof JavadocQualifiedTypeReference) {

-				JavadocQualifiedTypeReference qualifiedRef = (JavadocQualifiedTypeReference) typeRef;

-				start = qualifiedRef.tagSourceStart;

-				end = qualifiedRef.tagSourceEnd;

-			} else {

-				start = typeRef.sourceStart;

-				end = typeRef.sourceEnd;

-			}

-			classScope.problemReporter().javadocUnexpectedTag(start, end);

-		}

-

-		// @see tags

-		int seeTagsLength = this.references == null ? 0 : this.references.length;

-		for (int i = 0; i < seeTagsLength; i++) {

-			resolveReference(this.references[i], classScope);

-		}

-	}

-	

-	/*

-	 * Resolve method javadoc while a method scope

-	 */

-	public void resolve(MethodScope methScope) {

-		

-		// get method declaration

-		AbstractMethodDeclaration methDecl = methScope.referenceMethod();

-		boolean overriding = methDecl == null ? false : (methDecl.binding.modifiers & (AccImplementing+AccOverriding)) != 0;

-

-		// @see tags

-		int seeTagsLength = this.references == null ? 0 : this.references.length;

-		boolean superRef = false;

-		for (int i = 0; i < seeTagsLength; i++) {

-			

-			// Resolve reference

-			resolveReference(this.references[i], methScope);

-			

-			// see whether we can have a super reference

-			try {

-				if (methDecl != null && (methDecl.isConstructor() || overriding) && !superRef) {

-					if (this.references[i] instanceof JavadocMessageSend) {

-						JavadocMessageSend messageSend = (JavadocMessageSend) this.references[i];

-						// if binding is valid then look if we have a reference to an overriden method/constructor

-						if (messageSend.binding != null && messageSend.binding.isValidBinding()) {

-							if (methDecl.binding.declaringClass.isCompatibleWith(messageSend.receiverType) &&

-								CharOperation.equals(messageSend.selector, methDecl.selector) &&

-								(messageSend.binding.returnType == methDecl.binding.returnType)) {

-								if (messageSend.arguments == null && methDecl.arguments == null) {

-									superRef = true;

-								}

-								else if (messageSend.arguments != null && methDecl.arguments != null) {

-									superRef = methDecl.binding.areParametersEqual(messageSend.binding);

-								}

-							}

-						}

-					}

-					else if (this.references[i] instanceof JavadocAllocationExpression) {

-						JavadocAllocationExpression allocationExpr = (JavadocAllocationExpression) this.references[i];

-						// if binding is valid then look if we have a reference to an overriden method/constructor

-						if (allocationExpr.binding != null && allocationExpr.binding.isValidBinding()) {

-							if (methDecl.binding.declaringClass.isCompatibleWith(allocationExpr.resolvedType)) {

-								if (allocationExpr.arguments == null && methDecl.arguments == null) {

-									superRef = true;

-								}

-								else if (allocationExpr.arguments != null && methDecl.arguments != null) {

-									superRef = methDecl.binding.areParametersEqual(allocationExpr.binding);

-								}

-							}

-						}

-					}

-				}

-			}

-			catch (Exception e) {

-				// Something wrong happen, forget super ref...

-			}

-		}

-		

-		// Store if a reference exists to an overriden method/constructor or the method is in a local type,

-		boolean reportMissing = methDecl == null || !((overriding && this.inherited) || superRef || (methDecl.binding.declaringClass != null && methDecl.binding.declaringClass.isLocalType()));

-

-		// @param tags

-		resolveParamTags(methScope, reportMissing);

-

-		// @return tags

-		if (this.returnStatement == null) {

-			if (reportMissing && methDecl != null) {

-				if (methDecl.isMethod()) {

-					MethodDeclaration meth = (MethodDeclaration) methDecl;

-					if (meth.binding.returnType != VoidBinding) {

-						// method with return should have @return tag

-						methScope.problemReporter().javadocMissingReturnTag(meth.returnType.sourceStart, meth.returnType.sourceEnd, methDecl.binding.modifiers);

-					}

-				}

-			}

-		} else {

-			this.returnStatement.resolve(methScope);

-		}

-

-		// @throws/@exception tags

-		resolveThrowsTags(methScope, reportMissing);

-

-		// Resolve param tags with invalid syntax

-		int length = this.invalidParameters == null ? 0 : this.invalidParameters.length;

-		for (int i = 0; i < length; i++) {

-			this.invalidParameters[i].resolve(methScope, false);

-		}

-	}

-	

-	private void resolveReference(Expression reference, Scope scope) {

-

-		// Perform resolve

-		switch (scope.kind) {

-			case Scope.METHOD_SCOPE:

-				reference.resolveType((MethodScope)scope);

-			break;

-			case Scope.CLASS_SCOPE:

-				reference.resolveType((ClassScope)scope);

-			break;

-		}

-

-		// Verify field references

-		boolean verifyValues = scope.environment().options.sourceLevel >= ClassFileConstants.JDK1_5;

-		if (reference instanceof JavadocFieldReference) {

-			JavadocFieldReference fieldRef = (JavadocFieldReference) reference;

-			

-			// Verify if this is a method reference

-			// see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51911

-			if (fieldRef.methodBinding != null) {

-				// cannot refer to method for @value tag

-				if (fieldRef.tagValue == AbstractCommentParser.TAG_VALUE_VALUE) {

-					scope.problemReporter().javadocInvalidValueReference(fieldRef.sourceStart, fieldRef.sourceEnd);

-				}

-				else if (fieldRef.receiverType != null) {

-					fieldRef.superAccess = scope.enclosingSourceType().isCompatibleWith(fieldRef.receiverType);

-					fieldRef.methodBinding = scope.findMethod((ReferenceBinding)fieldRef.receiverType, fieldRef.token, new TypeBinding[0], fieldRef);

-				}

-			}

-

-			// Verify whether field ref should be static or not (for @value tags)

-			else if (verifyValues && fieldRef.binding != null && fieldRef.binding.isValidBinding()) {

-				if (fieldRef.tagValue == AbstractCommentParser.TAG_VALUE_VALUE && !fieldRef.binding.isStatic()) {

-					scope.problemReporter().javadocInvalidValueReference(fieldRef.sourceStart, fieldRef.sourceEnd);

-				}

-			}

-		}

-

-		// If not 1.5 level, verification is finished

-		if (!verifyValues)  return;

-

-		// Verify that message reference are not used for @value tags

-		else if (reference instanceof JavadocMessageSend) {

-			JavadocMessageSend msgSend = (JavadocMessageSend) reference;

-			if (msgSend.tagValue == AbstractCommentParser.TAG_VALUE_VALUE) { // cannot refer to method for @value tag

-				scope.problemReporter().javadocInvalidValueReference(msgSend.sourceStart, msgSend.sourceEnd);

-			}

-		}

-

-		// Verify that constructorreference are not used for @value tags

-		else if (reference instanceof JavadocAllocationExpression) {

-			JavadocAllocationExpression alloc = (JavadocAllocationExpression) reference;

-			if (alloc.tagValue == AbstractCommentParser.TAG_VALUE_VALUE) { // cannot refer to method for @value tag

-				scope.problemReporter().javadocInvalidValueReference(alloc.sourceStart, alloc.sourceEnd);

-			}

-		}

-	}

-	

-	/*

-	 * Resolve @param tags while method scope

-	 */

-	private void resolveParamTags(MethodScope methScope, boolean reportMissing) {

-		AbstractMethodDeclaration md = methScope.referenceMethod();

-		int paramTagsSize = this.parameters == null ? 0 : this.parameters.length;

-

-		// If no referenced method (field initializer for example) then report a problem for each param tag

-		if (md == null) {

-			for (int i = 0; i < paramTagsSize; i++) {

-				JavadocSingleNameReference param = this.parameters[i];

-				methScope.problemReporter().javadocUnexpectedTag(param.tagSourceStart, param.tagSourceEnd);

-			}

-			return;

-		}

-		

-		// If no param tags then report a problem for each method argument

-		int argumentsSize = md.arguments == null ? 0 : md.arguments.length;

-		if (paramTagsSize == 0) {

-			if (reportMissing) {

-				for (int i = 0; i < argumentsSize; i++) {

-					Argument arg = md.arguments[i];

-					methScope.problemReporter().javadocMissingParamTag(arg, md.binding.modifiers);

-				}

-			}

-		} else {

-			LocalVariableBinding[] bindings = new LocalVariableBinding[paramTagsSize];

-			int maxBindings = 0;

-

-			// Scan all @param tags

-			for (int i = 0; i < paramTagsSize; i++) {

-				JavadocSingleNameReference param = this.parameters[i];

-				param.resolve(methScope);

-				if (param.binding != null && param.binding.isValidBinding()) {

-					// Verify duplicated tags

-					boolean found = false;

-					for (int j = 0; j < maxBindings && !found; j++) {

-						if (bindings[j] == param.binding) {

-							methScope.problemReporter().javadocDuplicatedParamTag(param, md.binding.modifiers);

-							found = true;

-						}

-					}

-					if (!found) {

-						bindings[maxBindings++] = (LocalVariableBinding) param.binding;

-					}

-				}

-			}

-

-			// Look for undocumented arguments

-			if (reportMissing) {

-				for (int i = 0; i < argumentsSize; i++) {

-					Argument arg = md.arguments[i];

-					boolean found = false;

-					for (int j = 0; j < maxBindings && !found; j++) {

-						LocalVariableBinding binding = bindings[j];

-						if (arg.binding == binding) {

-							found = true;

-						}

-					}

-					if (!found) {

-						methScope.problemReporter().javadocMissingParamTag(arg, md.binding.modifiers);

-					}

-				}

-			}

-		}

-	}

-

-	/*

-	 * Resolve @throws/@exception tags while method scope

-	 */

-	private void resolveThrowsTags(MethodScope methScope, boolean reportMissing) {

-		AbstractMethodDeclaration md = methScope.referenceMethod();

-		int throwsTagsLength = this.thrownExceptions == null ? 0 : this.thrownExceptions.length;

-

-		// If no referenced method (field initializer for example) then report a problem for each throws tag

-		if (md == null) {

-			for (int i = 0; i < throwsTagsLength; i++) {

-				TypeReference typeRef = this.thrownExceptions[i];

-				int start = typeRef.sourceStart;

-				int end = typeRef.sourceEnd;

-				if (typeRef instanceof JavadocQualifiedTypeReference) {

-					start = ((JavadocQualifiedTypeReference) typeRef).tagSourceStart;

-					end = ((JavadocQualifiedTypeReference) typeRef).tagSourceEnd;

-				} else if (typeRef instanceof JavadocSingleTypeReference) {

-					start = ((JavadocSingleTypeReference) typeRef).tagSourceStart;

-					end = ((JavadocSingleTypeReference) typeRef).tagSourceEnd;

-				}

-				methScope.problemReporter().javadocUnexpectedTag(start, end);

-			}

-			return;

-		}

-

-		// If no throws tags then report a problem for each method thrown exception

-		int boundExceptionLength = (md.binding == null || md.binding.thrownExceptions == null) ? 0 : md.binding.thrownExceptions.length;

-		int thrownExceptionLength = md.thrownExceptions == null ? 0 : md.thrownExceptions.length;

-		if (throwsTagsLength == 0) {

-			if (reportMissing) {

-				for (int i = 0; i < boundExceptionLength; i++) {

-					ReferenceBinding exceptionBinding = md.binding.thrownExceptions[i];

-					if (exceptionBinding != null && exceptionBinding.isValidBinding()) { // flag only valid class name

-						int j=i;

-						while (j<thrownExceptionLength && exceptionBinding != md.thrownExceptions[j].resolvedType) j++;

-						if (j<thrownExceptionLength) {

-							methScope.problemReporter().javadocMissingThrowsTag(md.thrownExceptions[j], md.binding.modifiers);

-						}

-					}

-				}

-			}

-		} else {

-			int maxRef = 0;

-			TypeReference[] typeReferences = new TypeReference[throwsTagsLength];

-

-			// Scan all @throws tags

-			for (int i = 0; i < throwsTagsLength; i++) {

-				TypeReference typeRef = this.thrownExceptions[i];

-				typeRef.resolve(methScope);

-				TypeBinding typeBinding = typeRef.resolvedType;

-

-				if (typeBinding != null && typeBinding.isValidBinding() && typeBinding.isClass()) {

-					typeReferences[maxRef++] = typeRef;

-				}

-			}

-

-			// Look for undocumented thrown exception

-			for (int i = 0; i < boundExceptionLength; i++) {

-				ReferenceBinding exceptionBinding = md.binding.thrownExceptions[i];

-				boolean found = false;

-				for (int j = 0; j < maxRef && !found; j++) {

-					if (typeReferences[j] != null) {

-						TypeBinding typeBinding = typeReferences[j].resolvedType;

-						if (exceptionBinding == typeBinding) {

-							found = true;

-							typeReferences[j] = null;

-						}

-					}

-				}

-				if (!found && reportMissing) {

-					if (exceptionBinding != null && exceptionBinding.isValidBinding()) { // flag only valid class name

-						int k=i;

-						while (k<thrownExceptionLength && exceptionBinding != md.thrownExceptions[k].resolvedType) k++;

-						if (k<thrownExceptionLength) {

-							methScope.problemReporter().javadocMissingThrowsTag(md.thrownExceptions[k], md.binding.modifiers);

-						}

-					}

-				}

-			}

-

-			// Verify additional @throws tags

-			for (int i = 0; i < maxRef; i++) {

-				TypeReference typeRef = typeReferences[i];

-				if (typeRef != null) {

-					boolean compatible = false;

-					// thrown exceptions subclasses are accepted

-					for (int j = 0; j<thrownExceptionLength && !compatible; j++) {

-						TypeBinding exceptionBinding = md.thrownExceptions[j].resolvedType;

-						if (exceptionBinding != null) {

-							compatible = typeRef.resolvedType.isCompatibleWith(exceptionBinding);

-						}

-					}

-			

-					//  If not compatible only complain on unchecked exception

-					if (!compatible &&

-						 !typeRef.resolvedType.isCompatibleWith(methScope.getJavaLangRuntimeException()) &&

-						 !typeRef.resolvedType.isCompatibleWith(methScope.getJavaLangError())) {

-						methScope.problemReporter().javadocInvalidThrowsClassName(typeRef, md.binding.modifiers);

-					}

-				}

-			}

-		}

-	}

-	

-	/*

-	 * Search node with a given staring position in javadoc objects arrays.

-	 */

-	public ASTNode getNodeStartingAt(int start) {

-		// parameters array

-		if (this.parameters != null) {

-			for (int i=0; i<this.parameters.length; i++) {

-				JavadocSingleNameReference param = this.parameters[i];

-				if (param.sourceStart==start) {

-					return param;

-				}

-			}

-		}

-		// array of invalid syntax tags parameters

-		if (this.invalidParameters != null) {

-			for (int i=0; i<this.invalidParameters.length; i++) {

-				JavadocSingleNameReference param = this.invalidParameters[i];

-				if (param.sourceStart==start) {

-					return param;

-				}

-			}

-		}

-		// thrown exception array

-		if (this.thrownExceptions != null) {

-			for (int i=0; i<this.thrownExceptions.length; i++) {

-				TypeReference typeRef = this.thrownExceptions[i];

-				if (typeRef.sourceStart==start) {

-					return typeRef;

-				}

-			}

-		}

-		// references array

-		if (this.references != null) {

-			for (int i=0; i<this.references.length; i++) {

-				org.eclipse.wst.jsdt.internal.compiler.ast.Expression expression = this.references[i];

-				if (expression.sourceStart==start) {

-					return expression;

-				} else if (expression instanceof JavadocAllocationExpression) {

-					JavadocAllocationExpression allocationExpr = (JavadocAllocationExpression) this.references[i];

-					// if binding is valid then look at arguments

-					if (allocationExpr.binding != null && allocationExpr.binding.isValidBinding()) {

-						if (allocationExpr.arguments != null) {

-							for (int j=0; j<allocationExpr.arguments.length; j++) {

-								if (allocationExpr.arguments[j].sourceStart == start) {

-									return allocationExpr.arguments[j];

-								}

-							}

-						}

-					}

-				} else if (expression instanceof JavadocMessageSend) {

-					JavadocMessageSend messageSend = (JavadocMessageSend) this.references[i];

-					// if binding is valid then look at arguments

-					if (messageSend.binding != null && messageSend.binding.isValidBinding()) {

-						if (messageSend.arguments != null) {

-							for (int j=0; j<messageSend.arguments.length; j++) {

-								if (messageSend.arguments[j].sourceStart == start) {

-									return messageSend.arguments[j];

-								}

-							}

-						}

-					}

-				}

-			}

-		}

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocAllocationExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocAllocationExpression.js
deleted file mode 100644
index cd1b929..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocAllocationExpression.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public class JavadocAllocationExpression extends AllocationExpression {

-

-	public int tagSourceStart, tagSourceEnd;

-	public int tagValue;

-	public boolean superAccess = false;

-	

-	public JavadocAllocationExpression(long pos) {

-		this.sourceStart = (int) (pos >>> 32);

-		this.sourceEnd = (int) pos;

-		this.bits |= InsideJavadoc;

-	}

-

-	/*

-	 * Resolves type on a Block or Class scope.

-	 */

-	private TypeBinding internalResolveType(Scope scope) {

-

-		// Propagate the type checking to the arguments, and check if the constructor is defined.

-		this.constant = NotAConstant;

-		if (this.type == null) {

-			this.resolvedType = scope.enclosingSourceType();

-		} else if (scope.kind == Scope.CLASS_SCOPE) {

-			this.resolvedType = this.type.resolveType((ClassScope)scope);

-		} else {

-			this.resolvedType = this.type.resolveType((BlockScope)scope);

-		}

-

-		// buffering the arguments' types

-		TypeBinding[] argumentTypes = NoParameters;

-		if (this.arguments != null) {

-			boolean argHasError = false;

-			int length = this.arguments.length;

-			argumentTypes = new TypeBinding[length];

-			for (int i = 0; i < length; i++) {

-				Expression argument = this.arguments[i];

-				if (scope.kind == Scope.CLASS_SCOPE) {

-					argumentTypes[i] = argument.resolveType((ClassScope)scope);

-				} else {

-					argumentTypes[i] = argument.resolveType((BlockScope)scope);

-				}

-				if (argumentTypes[i] == null) {

-					argHasError = true;

-				}

-			}

-			if (argHasError) {

-				return null;

-			}

-		}

-

-		// check resolved type

-		if (this.resolvedType == null) {

-			return null;

-		}

-		this.superAccess = scope.enclosingSourceType().isCompatibleWith(this.resolvedType);

-

-		ReferenceBinding allocationType = (ReferenceBinding) this.resolvedType;

-		this.binding = scope.getConstructor(allocationType, argumentTypes, this);

-		if (!this.binding.isValidBinding()) {

-			MethodBinding methodBinding = scope.getMethod(this.resolvedType, this.resolvedType.sourceName(), argumentTypes, this);

-			if (methodBinding.isValidBinding()) {

-				this.binding = methodBinding;

-			} else {

-				if (this.binding.declaringClass == null) {

-					this.binding.declaringClass = allocationType;

-				}

-				scope.problemReporter().javadocInvalidConstructor(this, this.binding, scope.getDeclarationModifiers());

-			}

-			return this.resolvedType;

-		}

-		if (isMethodUseDeprecated(this.binding, scope)) {

-			scope.problemReporter().javadocDeprecatedMethod(this.binding, this, scope.getDeclarationModifiers());

-		}

-		// TODO (frederic) add support for unsafe type operation warning

-		return allocationType;

-	}

-	

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#isSuperAccess()

-	 */

-	public boolean isSuperAccess() {

-		return this.superAccess;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public TypeBinding resolveType(BlockScope scope) {

-		return internalResolveType(scope);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public TypeBinding resolveType(ClassScope scope) {

-		return internalResolveType(scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArgumentExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArgumentExpression.js
deleted file mode 100644
index 70ff2d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArgumentExpression.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.env.IConstants;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-

-public class JavadocArgumentExpression extends Expression {

-	public char[] token;

-	public Argument argument;

-

-	public JavadocArgumentExpression(char[] name, int startPos, int endPos, TypeReference typeRef) {

-		this.token = name;

-		this.sourceStart = startPos;

-		this.sourceEnd = endPos;

-		long pos = (((long) startPos) << 32) + endPos;

-		this.argument = new Argument(name, pos, typeRef, IConstants.AccDefault, false);

-		this.bits |= InsideJavadoc;

-	}

-

-	/*

-	 * Resolves type on a Block or Class scope.

-	 */

-	private TypeBinding internalResolveType(Scope scope) {

-		this.constant = NotAConstant;

-		if (this.resolvedType != null) // is a shared type reference which was already resolved

-			return this.resolvedType.isValidBinding() ? this.resolvedType : null; // already reported error

-

-		if (this.argument != null) {

-			TypeReference typeRef = this.argument.type;

-			if (typeRef != null) {

-				this.resolvedType = typeRef.getTypeBinding(scope);

-				typeRef.resolvedType = this.resolvedType;

-				if (!this.resolvedType.isValidBinding()) {

-					scope.problemReporter().javadocInvalidType(typeRef, this.resolvedType, scope.getDeclarationModifiers());

-					return null;

-				}

-				if (isTypeUseDeprecated(this.resolvedType, scope)) {

-					scope.problemReporter().javadocDeprecatedType(this.resolvedType, typeRef, scope.getDeclarationModifiers());

-					return null;

-				}

-				return this.resolvedType = scope.convertToRawType(this.resolvedType);

-			}

-		}

-		return null;

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		if (this.argument == null) {

-			if (this.token != null) {

-				output.append(this.token);

-			}

-		}

-		else {

-			this.argument.print(indent, output);

-		}

-		return output;

-	}

-

-	public void resolve(BlockScope scope) {

-		if (this.argument != null) {

-			this.argument.resolve(scope);

-		}

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-		return internalResolveType(scope);

-	}

-

-	public TypeBinding resolveType(ClassScope scope) {

-		return internalResolveType(scope);

-	}

-	

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-		if (visitor.visit(this, blockScope)) {

-			if (this.argument != null) {

-				this.argument.traverse(visitor, blockScope);

-			}

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArrayQualifiedTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArrayQualifiedTypeReference.js
deleted file mode 100644
index 732290f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArrayQualifiedTypeReference.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-

-

-

-public class JavadocArrayQualifiedTypeReference extends ArrayQualifiedTypeReference {

-

-	public int tagSourceStart, tagSourceEnd;

-

-	public JavadocArrayQualifiedTypeReference(JavadocQualifiedTypeReference typeRef, int dim) {

-		super(typeRef.tokens, dim, typeRef.sourcePositions);

-	}

-

-	protected void reportInvalidType(Scope scope) {

-		scope.problemReporter().javadocInvalidType(this, this.resolvedType, scope.getDeclarationModifiers());

-	}

-	protected void reportDeprecatedType(Scope scope) {

-		scope.problemReporter().javadocDeprecatedType(this.resolvedType, this, scope.getDeclarationModifiers());

-	}

-

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArraySingleTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArraySingleTypeReference.js
deleted file mode 100644
index 495531d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocArraySingleTypeReference.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-

-

-public class JavadocArraySingleTypeReference extends ArrayTypeReference {

-

-	public JavadocArraySingleTypeReference(char[] name, int dim, long pos) {

-		super(name, dim, pos);

-		this.bits |= InsideJavadoc;

-	}

-

-	protected void reportInvalidType(Scope scope) {

-		scope.problemReporter().javadocInvalidType(this, this.resolvedType, scope.getDeclarationModifiers());

-	}

-	protected void reportDeprecatedType(Scope scope) {

-		scope.problemReporter().javadocDeprecatedType(this.resolvedType, this, scope.getDeclarationModifiers());

-	}

-

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocFieldReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocFieldReference.js
deleted file mode 100644
index 12fbdc2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocFieldReference.js
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class JavadocFieldReference extends FieldReference {

-

-	public int tagSourceStart, tagSourceEnd;

-	public int tagValue;

-	public MethodBinding methodBinding;

-	public boolean superAccess = false;

-

-	public JavadocFieldReference(char[] source, long pos) {

-		super(source, pos);

-		this.bits |= InsideJavadoc;

-	}

-	

-	/*

-	public Binding getBinding() {

-		if (this.methodBinding != null) {

-			return this.methodBinding;

-		}

-		return this.binding;

-	}

-	*/

-

-	/*

-	 * Resolves type on a Block or Class scope.

-	 */

-	private TypeBinding internalResolveType(Scope scope) {

-

-		this.constant = NotAConstant;

-		if (this.receiver == null) {

-			this.receiverType = scope.enclosingSourceType();

-		} else if (scope.kind == Scope.CLASS_SCOPE) {

-			this.receiverType = this.receiver.resolveType((ClassScope) scope);

-		} else {

-			this.receiverType = this.receiver.resolveType((BlockScope)scope);

-		}

-		if (this.receiverType == null) {

-			return null;

-		}

-

-		Binding fieldBinding = (this.receiver != null && this.receiver.isThis())

-			? scope.classScope().getBinding(this.token, this.bits & RestrictiveFlagMASK, this, true /*resolve*/)

-			: scope.getField(this.receiverType, this.token, this);

-		if (!fieldBinding.isValidBinding()) {

-			// implicit lookup may discover issues due to static/constructor contexts. javadoc must be resilient

-			switch (fieldBinding.problemId()) {

-				case ProblemReasons.NonStaticReferenceInConstructorInvocation:

-				case ProblemReasons.NonStaticReferenceInStaticContext:

-				case ProblemReasons.InheritedNameHidesEnclosingName : 

-					FieldBinding closestMatch = ((ProblemFieldBinding)fieldBinding).closestMatch;

-					if (closestMatch != null) {

-						fieldBinding = closestMatch; // ignore problem if can reach target field through it

-					}

-			}

-		}			

-		if (!fieldBinding.isValidBinding() || !(fieldBinding instanceof FieldBinding)) {

-			if (this.receiverType instanceof ReferenceBinding) {

-				ReferenceBinding refBinding = (ReferenceBinding) this.receiverType;

-				MethodBinding[] methodBindings = refBinding.getMethods(this.token);

-				if (methodBindings == null) {

-					scope.problemReporter().javadocInvalidField(this.sourceStart, this.sourceEnd, fieldBinding, this.receiverType, scope.getDeclarationModifiers());

-				} else {

-					switch (methodBindings.length) {

-						case 0:

-							scope.problemReporter().javadocInvalidField(this.sourceStart, this.sourceEnd, fieldBinding, this.receiverType, scope.getDeclarationModifiers());

-							break;

-						case 1:

-							this.methodBinding = methodBindings[0];

-							break;

-						default:

-							this.methodBinding = methodBindings[0];

-							scope.problemReporter().javadocAmbiguousMethodReference(this.sourceStart, this.sourceEnd, fieldBinding, scope.getDeclarationModifiers());

-							break;

-					}

-				}

-			}

-			return null;

-		}

-		this.binding = (FieldBinding) fieldBinding;

-

-		if (isFieldUseDeprecated(this.binding, scope, (this.bits & IsStrictlyAssignedMASK) != 0)) {

-			scope.problemReporter().javadocDeprecatedField(this.binding, this, scope.getDeclarationModifiers());

-		}

-		return this.resolvedType = this.binding.type;

-	}

-	

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#isSuperAccess()

-	 */

-	public boolean isSuperAccess() {

-		return this.superAccess;

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		if (this.receiver != null) {

-			this.receiver.printExpression(0, output);

-		}

-		output.append('#').append(this.token);

-		return output;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public TypeBinding resolveType(BlockScope scope) {

-		return internalResolveType(scope);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public TypeBinding resolveType(ClassScope scope) {

-		return internalResolveType(scope);

-	}

-

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			if (this.receiver != null) {

-				this.receiver.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocImportReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocImportReference.js
deleted file mode 100644
index d57ad49..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocImportReference.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-/**

- */

-public class JavadocImportReference extends ImportReference {

-

-	public int tagSourceStart, tagSourceEnd;

-

-	/**

-	 * @param tokens

-	 * @param sourcePositions

-	 * @param tagStart

-	 * @param tagEnd

-	 */

-	public JavadocImportReference(char[][] tokens, long[] sourcePositions, int tagStart, int tagEnd) {

-		super(tokens, sourcePositions, false, AccDefault);

-		this.tagSourceStart = tagStart;

-		this.tagSourceEnd = tagEnd;

-		this.bits |= InsideJavadoc;

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocMessageSend.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocMessageSend.js
deleted file mode 100644
index e4b1991..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocMessageSend.js
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-

-public class JavadocMessageSend extends MessageSend {

-

-	public int tagSourceStart, tagSourceEnd;

-	public int tagValue;

-	public boolean superAccess = false;

-

-	public JavadocMessageSend(char[] name, long pos) {

-		this.selector = name;

-		this.nameSourcePosition = pos;

-		this.sourceStart = (int) (this.nameSourcePosition >>> 32);

-		this.sourceEnd = (int) this.nameSourcePosition;

-		this.bits |= InsideJavadoc;

-	}

-	public JavadocMessageSend(char[] name, long pos, JavadocArgumentExpression[] arguments) {

-		this(name, pos);

-		this.arguments = arguments;

-	}

-

-	/*

-	 * Resolves type on a Block or Class scope.

-	 */

-	private TypeBinding internalResolveType(Scope scope) {

-		// Answer the signature return type

-		// Base type promotion

-		this.constant = NotAConstant;

-		if (this.receiver == null) {

-			this.receiverType = scope.enclosingSourceType();

-		} else if (scope.kind == Scope.CLASS_SCOPE) {

-			this.receiverType = this.receiver.resolveType((ClassScope) scope);

-		} else {

-			this.receiverType = this.receiver.resolveType((BlockScope) scope);

-		}

-

-		// will check for null after args are resolved

-		TypeBinding[] argumentTypes = NoParameters;

-		if (this.arguments != null) {

-			boolean argHasError = false; // typeChecks all arguments 

-			int length = this.arguments.length;

-			argumentTypes = new TypeBinding[length];

-			for (int i = 0; i < length; i++){

-				Expression argument = this.arguments[i];

-				if (scope.kind == Scope.CLASS_SCOPE) {

-					argumentTypes[i] = argument.resolveType((ClassScope)scope);

-				} else {

-					argumentTypes[i] = argument.resolveType((BlockScope)scope);

-				}

-				if (argumentTypes[i] == null) {

-					argHasError = true;

-				}

-			}

-			if (argHasError) {

-				return null;

-			}

-		}

-

-		// check receiver type

-		if (this.receiverType == null) {

-			return null;

-		}

-		this.qualifyingType = this.receiverType;

-		this.superAccess = scope.enclosingSourceType().isCompatibleWith(this.receiverType);

-

-		// base type cannot receive any message

-		if (this.receiverType.isBaseType()) {

-			scope.problemReporter().javadocErrorNoMethodFor(this, this.receiverType, argumentTypes, scope.getDeclarationModifiers());

-			return null;

-		}

-		this.binding = (this.receiver != null && this.receiver.isThis())

-			? scope.getImplicitMethod(this.selector, argumentTypes, this)

-			: scope.getMethod(this.receiverType, this.selector, argumentTypes, this);

-		if (!this.binding.isValidBinding()) {

-			// implicit lookup may discover issues due to static/constructor contexts. javadoc must be resilient

-			switch (this.binding.problemId()) {

-				case ProblemReasons.NonStaticReferenceInConstructorInvocation:

-				case ProblemReasons.NonStaticReferenceInStaticContext:

-				case ProblemReasons.InheritedNameHidesEnclosingName : 

-					MethodBinding closestMatch = ((ProblemMethodBinding)this.binding).closestMatch;

-					if (closestMatch != null) {

-						this.binding = closestMatch; // ignore problem if can reach target method through it

-					}

-			}

-		}

-		if (!this.binding.isValidBinding()) {

-			if (this.binding.declaringClass == null) {

-				if (this.receiverType instanceof ReferenceBinding) {

-					this.binding.declaringClass = (ReferenceBinding) this.receiverType;

-				} else { 

-					scope.problemReporter().javadocErrorNoMethodFor(this, this.receiverType, argumentTypes, scope.getDeclarationModifiers());

-					return null;

-				}

-			}

-			scope.problemReporter().javadocInvalidMethod(this, this.binding, scope.getDeclarationModifiers());

-			// record the closest match, for clients who may still need hint about possible method match

-			if (this.binding instanceof ProblemMethodBinding){

-				MethodBinding closestMatch = ((ProblemMethodBinding)this.binding).closestMatch;

-				if (closestMatch != null) this.binding = closestMatch;

-			}

-			return this.resolvedType = this.binding == null ? null : this.binding.returnType;

-		}

-		if (isMethodUseDeprecated(this.binding, scope)) {

-			scope.problemReporter().javadocDeprecatedMethod(this.binding, this, scope.getDeclarationModifiers());

-		}

-

-		return this.resolvedType = this.binding.returnType;

-	}

-	

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#isSuperAccess()

-	 */

-	public boolean isSuperAccess() {

-		return this.superAccess;

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output){

-	

-		if (this.receiver != null) {

-			this.receiver.printExpression(0, output);

-		}

-		output.append('#').append(this.selector).append('(');

-		if (this.arguments != null) {

-			for (int i = 0; i < this.arguments.length ; i ++) {	

-				if (i > 0) output.append(", "); //$NON-NLS-1$

-				this.arguments[i].printExpression(0, output);

-			}

-		}

-		return output.append(')');

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-		return internalResolveType(scope);

-	}

-

-	public TypeBinding resolveType(ClassScope scope) {

-		return internalResolveType(scope);

-	}

-

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-		if (visitor.visit(this, blockScope)) {

-			if (this.receiver != null) {

-				this.receiver.traverse(visitor, blockScope);

-			}

-			if (this.arguments != null) {

-				int argumentsLength = this.arguments.length;

-				for (int i = 0; i < argumentsLength; i++)

-					this.arguments[i].traverse(visitor, blockScope);

-			}

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocQualifiedTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocQualifiedTypeReference.js
deleted file mode 100644
index 6b11d32..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocQualifiedTypeReference.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Binding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-

-

-public class JavadocQualifiedTypeReference extends QualifiedTypeReference {

-

-	public int tagSourceStart, tagSourceEnd;

-	public PackageBinding packageBinding;

-

-	public JavadocQualifiedTypeReference(char[][] sources, long[] pos, int tagStart, int tagEnd) {

-		super(sources, pos);

-		this.tagSourceStart = tagStart;

-		this.tagSourceEnd = tagEnd;

-		this.bits |= InsideJavadoc;

-	}

-

-	protected void reportInvalidType(Scope scope) {

-		scope.problemReporter().javadocInvalidType(this, this.resolvedType, scope.getDeclarationModifiers());

-	}

-	protected void reportDeprecatedType(Scope scope) {

-		scope.problemReporter().javadocDeprecatedType(this.resolvedType, this, scope.getDeclarationModifiers());

-	}

-

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-

-	/*

-	 *

-	 */

-	private TypeBinding internalResolveType(Scope scope) {

-		// handle the error here

-		this.constant = NotAConstant;

-		if (this.resolvedType != null) // is a shared type reference which was already resolved

-			return this.resolvedType.isValidBinding() ? this.resolvedType : null; // already reported error

-

-		this.resolvedType = getTypeBinding(scope);

-		if (!this.resolvedType.isValidBinding()) {

-			Binding binding = scope.getTypeOrPackage(this.tokens);

-			if (binding instanceof PackageBinding) {

-				this.packageBinding = (PackageBinding) binding;

-			} else {

-				reportInvalidType(scope);

-			}

-			return null;

-		}

-		if (isTypeUseDeprecated(this.resolvedType, scope))

-			reportDeprecatedType(scope);

-		return this.resolvedType = scope.convertToRawType(this.resolvedType);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 * We need to override to handle package references

-	 */

-	public TypeBinding resolveType(BlockScope blockScope) {

-		return internalResolveType(blockScope);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope)

-	 * We need to override to handle package references

-	 */

-	public TypeBinding resolveType(ClassScope classScope) {

-		return internalResolveType(classScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocReturnStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocReturnStatement.js
deleted file mode 100644
index d40450d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocReturnStatement.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-

-public class JavadocReturnStatement extends ReturnStatement {

-	public char[] description;

-	public boolean empty = true;

-

-	public JavadocReturnStatement(int s, int e, char[] descr) {

-		super(null, s, e);

-		this.description = descr;

-		this.bits |= InsideJavadoc;

-	}

-

-	public void resolve(BlockScope scope) {

-		MethodScope methodScope = scope.methodScope();

-		MethodBinding methodBinding = null;

-		TypeBinding methodType =

-			(methodScope.referenceContext instanceof AbstractMethodDeclaration)

-				? ((methodBinding = ((AbstractMethodDeclaration) methodScope.referenceContext).binding) == null 

-					? null 

-					: methodBinding.returnType)

-				: VoidBinding;

-		if (methodType == null || methodType == VoidBinding) {

-			scope.problemReporter().javadocUnexpectedTag(this.sourceStart, this.sourceEnd);

-		} else if (this.empty) {

-			scope.problemReporter().javadocEmptyReturnTag(this.sourceStart, this.sourceEnd);

-		}

-	}

-

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocSingleNameReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocSingleNameReference.js
deleted file mode 100644
index cbe3172..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocSingleNameReference.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class JavadocSingleNameReference extends SingleNameReference {

-

-	public int tagSourceStart, tagSourceEnd;

-

-	public JavadocSingleNameReference(char[] name, int startPosition, int endPosition) {

-		super(name, (((long) startPosition) << 32) + endPosition);

-		this.bits |= InsideJavadoc;

-	}

-

-	public void resolve(BlockScope scope) {

-		resolve(scope, true);

-	}

-

-	/**

-	 * Resolve without warnings

-	 */

-	public void resolve(BlockScope scope, boolean warn) {

-		

-		LocalVariableBinding variableBinding = scope.findVariable(this.token);

-		if (variableBinding != null && variableBinding.isValidBinding() && variableBinding.isArgument) {

-			this.binding = variableBinding;

-			return;

-		}

-		if (warn) {

-			try {

-				MethodScope methScope = (MethodScope) scope;

-				scope.problemReporter().javadocInvalidParamName(this, methScope.referenceMethod().modifiers);

-			}

-			catch (Exception e) {

-				scope.problemReporter().javadocInvalidParamName(this, -1);

-			}

-		}

-	}

-

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocSingleTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocSingleTypeReference.js
deleted file mode 100644
index 81a4939..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/JavadocSingleTypeReference.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Binding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-

-public class JavadocSingleTypeReference extends SingleTypeReference {

-	

-	public int tagSourceStart, tagSourceEnd;

-	public PackageBinding packageBinding;

-

-	public JavadocSingleTypeReference(char[] source, long pos, int tagStart, int tagEnd) {

-		super(source, pos);

-		this.tagSourceStart = tagStart;

-		this.tagSourceEnd = tagEnd;

-		this.bits |= InsideJavadoc;

-	}

-

-	protected void reportInvalidType(Scope scope) {

-		scope.problemReporter().javadocInvalidType(this, this.resolvedType, scope.getDeclarationModifiers());

-	}

-	protected void reportDeprecatedType(Scope scope) {

-		scope.problemReporter().javadocDeprecatedType(this.resolvedType, this, scope.getDeclarationModifiers());

-	}

-

-	/* (non-Javadoc)

-	 * Redefine to capture javadoc specific signatures

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.wst.jsdt.internal.compiler.ASTVisitor, org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	/*

-	 * 

-	 */

-	private TypeBinding internalResolveType(Scope scope) {

-		// handle the error here

-		this.constant = NotAConstant;

-		if (this.resolvedType != null)// is a shared type reference which was already resolved

-			return this.resolvedType.isValidBinding() ? this.resolvedType : null; // already reported error

-

-		this.resolvedType = getTypeBinding(scope);

-		if (!this.resolvedType.isValidBinding()) {

-			char[][] tokens = { this.token };

-			Binding binding = scope.getTypeOrPackage(tokens);

-			if (binding instanceof PackageBinding) {

-				this.packageBinding = (PackageBinding) binding;

-			} else {

-				reportInvalidType(scope);

-			}

-			return null;

-		}

-		if (isTypeUseDeprecated(this.resolvedType, scope))

-			reportDeprecatedType(scope);

-		return this.resolvedType = scope.convertToRawType(this.resolvedType);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope)

-	 * We need to override to handle package references

-	 */

-	public TypeBinding resolveType(BlockScope blockScope) {

-		return internalResolveType(blockScope);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope)

-	 * We need to override to handle package references

-	 */

-	public TypeBinding resolveType(ClassScope classScope) {

-		return internalResolveType(classScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LabeledStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LabeledStatement.js
deleted file mode 100644
index 52e29bd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LabeledStatement.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class LabeledStatement extends Statement {

-	

-	public Statement statement;

-	public char[] label;

-	public Label targetLabel;

-

-	// for local variables table attributes

-	int mergedInitStateIndex = -1;

-	

-	/**

-	 * LabeledStatement constructor comment.

-	 */

-	public LabeledStatement(char[] label, Statement statement, int sourceStart, int sourceEnd) {

-		

-		this.statement = statement;

-		// remember useful empty statement

-		if (statement instanceof EmptyStatement) statement.bits |= IsUsefulEmptyStatementMASK;

-		this.label = label;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-	

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// need to stack a context to store explicit label, answer inits in case of normal completion merged

-		// with those relative to the exit path from break statement occurring inside the labeled statement.

-		if (statement == null) {

-			return flowInfo;

-		} else {

-			LabelFlowContext labelContext;

-			FlowInfo mergedInfo =

-				statement

-					.analyseCode(

-						currentScope,

-						(labelContext =

-							new LabelFlowContext(

-								flowContext,

-								this,

-								label,

-								(targetLabel = new Label()),

-								currentScope)),

-						flowInfo)

-					.mergedWith(labelContext.initsOnBreak);

-			mergedInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(mergedInfo);

-			return mergedInfo;

-		}

-	}

-	

-	public ASTNode concreteStatement() {

-		

-		// return statement.concreteStatement(); // for supporting nested labels:   a:b:c: someStatement (see 21912)

-		return statement;

-	}

-	

-	/**

-	 * Code generation for labeled statement

-	 *

-	 * may not need actual source positions recording

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-		

-		int pc = codeStream.position;

-		if (targetLabel != null) {

-			targetLabel.initialize(codeStream);

-			if (statement != null) {

-				statement.generateCode(currentScope, codeStream);

-			}

-			targetLabel.place();

-		}

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			codeStream.addDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-

-		printIndent(tab, output).append(label).append(": "); //$NON-NLS-1$

-		if (this.statement == null) 

-			output.append(';');

-		else 

-			this.statement.printStatement(0, output); 

-		return output;

-	}

-	

-	public void resolve(BlockScope scope) {

-		

-		if (this.statement != null) {

-			this.statement.resolve(scope);

-		}

-	}

-

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			if (this.statement != null) this.statement.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Literal.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Literal.js
deleted file mode 100644
index ea1305e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Literal.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public abstract class Literal extends Expression {

-

-	public Literal(int s, int e) {

-

-		sourceStart = s;

-		sourceEnd = e;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-			

-		return flowInfo;

-	}

-

-	public abstract void computeConstant();

-

-	public abstract TypeBinding literalType(BlockScope scope);

-

-	public StringBuffer printExpression(int indent, StringBuffer output){

-	

-		return output.append(source());

-	 }

-	 

-	public TypeBinding resolveType(BlockScope scope) {

-		// compute the real value, which must range its type's range

-		this.resolvedType = literalType(scope);

-

-		// in case of error, constant did remain null

-		computeConstant();

-		if (constant == null) {

-			scope.problemReporter().constantOutOfRange(this, this.resolvedType);

-			constant = Constant.NotAConstant;

-		}

-		return this.resolvedType;

-	}

-

-	public abstract char[] source();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LocalDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LocalDeclaration.js
deleted file mode 100644
index 1df4695..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LocalDeclaration.js
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class LocalDeclaration extends AbstractVariableDeclaration {

-

-	public LocalVariableBinding binding;

-	

-	public LocalDeclaration(

-		char[] name,

-		int sourceStart,

-		int sourceEnd) {

-

-		this.name = name;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-		this.declarationEnd = sourceEnd;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// record variable initialization if any

-		if (flowInfo.isReachable()) {

-			bits |= IsLocalDeclarationReachableMASK; // only set if actually reached

-		}

-		if (initialization == null) 

-			return flowInfo;

-			

-		flowInfo =

-			initialization

-				.analyseCode(currentScope, flowContext, flowInfo)

-				.unconditionalInits();

-

-		// final int i = (i = 0);

-		// no need to complain since (i = 0) part will get the blame

-		//if (binding.isFinal() && flowInfo.isPotentiallyAssigned(binding)) {

-		//	currentScope.problemReporter().duplicateInitializationOfFinalLocal(binding, this);

-		//}

-				

-		flowInfo.markAsDefinitelyAssigned(binding);

-		return flowInfo;

-	}

-

-	public void checkModifiers() {

-

-		//only potential valid modifier is <<final>>

-		if (((modifiers & AccJustFlag) & ~AccFinal) != 0)

-			//AccModifierProblem -> other (non-visibility problem)

-			//AccAlternateModifierProblem -> duplicate modifier

-			//AccModifierProblem | AccAlternateModifierProblem -> visibility problem"

-

-			modifiers = (modifiers & ~AccAlternateModifierProblem) | AccModifierProblem;

-	}

-

-	/**

-	 * Code generation for a local declaration:

-	 *	i.e.&nbsp;normal assignment to a local variable + unused variable handling 

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		// even if not reachable, variable must be added to visible if allocated (28298)

-		if (binding.resolvedPosition != -1) {

-			codeStream.addVisibleLocalVariable(binding);

-		}

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-		Constant inlinedValue;

-

-		// something to initialize?

-		if (initialization != null) {

-			// initialize to constant value?

-			if ((inlinedValue = initialization.constant) != NotAConstant) {

-				// forget initializing unused or final locals set to constant value (final ones are inlined)

-				if (binding.resolvedPosition != -1) { // may need to preserve variable

-					int initPC = codeStream.position;

-					codeStream.generateConstant(inlinedValue, initialization.implicitConversion);

-					codeStream.recordPositionsFrom(initPC, initialization.sourceStart);

-					codeStream.store(binding, false);

-					binding.recordInitializationStartPC(codeStream.position);

-					//				codeStream.lastInitStateIndexWhenRemovingInits = -2; // reinitialize remove index 

-					//				codeStream.lastInitStateIndexWhenAddingInits = -2; // reinitialize add index		

-				}

-			} else { // initializing to non-constant value

-				initialization.generateCode(currentScope, codeStream, true);

-				// if binding unused generate then discard the value

-				if (binding.resolvedPosition != -1) {

-					// 26903, need extra cast to store null in array local var	

-					if (binding.type.isArrayType() 

-						&& (initialization.resolvedType == NullBinding	// arrayLoc = null

-							|| ((initialization instanceof CastExpression)	// arrayLoc = (type[])null

-								&& (((CastExpression)initialization).innermostCastedExpression().resolvedType == NullBinding)))){

-						codeStream.checkcast(binding.type); 

-					}					

-					codeStream.store(binding, false);

-					if (binding.initializationCount == 0) {

-						/* Variable may have been initialized during the code initializing it

-							e.g. int i = (i = 1);

-						*/

-						binding.recordInitializationStartPC(codeStream.position);

-						//					codeStream.lastInitStateIndexWhenRemovingInits = -2; // reinitialize remove index 

-						//					codeStream.lastInitStateIndexWhenAddingInits = -2; // reinitialize add index 

-					}

-				} else {

-					if ((binding.type == LongBinding) || (binding.type == DoubleBinding)) {

-						codeStream.pop2();

-					} else {

-						codeStream.pop();

-					}

-				}

-			}

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public void resolve(BlockScope scope) {

-

-		// create a binding and add it to the scope

-		TypeBinding variableType = type.resolveType(scope);

-

-		checkModifiers();

-

-		if (variableType != null) {

-			if (variableType == VoidBinding) {

-				scope.problemReporter().variableTypeCannotBeVoid(this);

-				return;

-			}

-			if (variableType.isArrayType() && ((ArrayBinding) variableType).leafComponentType == VoidBinding) {

-				scope.problemReporter().variableTypeCannotBeVoidArray(this);

-				return;

-			}

-		}

-		

-		Binding existingVariable = scope.getBinding(name, BindingIds.VARIABLE, this, false /*do not resolve hidden field*/);

-		boolean shouldInsertInScope = true;

-		if (existingVariable != null && existingVariable.isValidBinding()){

-			if (existingVariable instanceof LocalVariableBinding && this.hiddenVariableDepth == 0) {

-				shouldInsertInScope = false;

-				scope.problemReporter().redefineLocal(this);

-			} else {

-				scope.problemReporter().localVariableHiding(this, existingVariable, false);

-			}

-		}

-				

-		if (shouldInsertInScope) {

-			if ((modifiers & AccFinal)!= 0 && this.initialization == null) {

-				modifiers |= AccBlankFinal;

-			}

-			binding = new LocalVariableBinding(this, variableType, modifiers, false);

-			scope.addLocalVariable(binding);

-			binding.setConstant(NotAConstant);

-			// allow to recursivelly target the binding....

-			// the correct constant is harmed if correctly computed at the end of this method

-		}

-

-		if (variableType == null) {

-			if (initialization != null)

-				initialization.resolveType(scope); // want to report all possible errors

-			return;

-		}

-

-		// store the constant for final locals 	

-		if (initialization != null) {

-			if (initialization instanceof ArrayInitializer) {

-				TypeBinding initializationType = initialization.resolveTypeExpecting(scope, variableType);

-				if (initializationType != null) {

-					((ArrayInitializer) initialization).binding = (ArrayBinding) initializationType;

-					initialization.computeConversion(scope, variableType, initializationType);

-				}

-			} else {

-			    this.initialization.setExpectedType(variableType);

-				TypeBinding initializationType = this.initialization.resolveType(scope);

-				if (initializationType != null) {

-					if (initialization.isConstantValueOfTypeAssignableToType(initializationType, variableType)

-						|| (variableType.isBaseType() && BaseTypeBinding.isWidening(variableType.id, initializationType.id))

-						|| initializationType.isCompatibleWith(variableType)) {

-						this.initialization.computeConversion(scope, variableType, initializationType);

-						if (initializationType.isRawType() && (variableType.isBoundParameterizedType() || variableType.isGenericType())) {

-							    scope.problemReporter().unsafeRawConversion(this.initialization, initializationType, variableType);

-						}						

-					} else {

-						scope.problemReporter().typeMismatchError(initializationType, variableType, this);

-					}

-				}

-			}

-

-			// change the constant in the binding when it is final

-			// (the optimization of the constant propagation will be done later on)

-			// cast from constant actual type to variable type

-			if (binding != null) {

-				binding.setConstant(

-					binding.isFinal()

-						? initialization.constant.castTo((variableType.id << 4) + initialization.constant.typeID())

-						: NotAConstant);

-			}

-		}

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			type.traverse(visitor, scope);

-			if (initialization != null)

-				initialization.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LongLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LongLiteral.js
deleted file mode 100644
index 300cf6c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LongLiteral.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class LongLiteral extends NumberLiteral {

-	long value;

-	

-	static final Constant FORMAT_ERROR = new DoubleConstant(1.0/0.0); // NaN;	

-		

-public LongLiteral(char[] token, int s,int e) {

-	super(token, s,e);

-}

-public LongLiteral(char[] token, int s,int e, long value) {

-	this(token, s,e);

-	this.value = value;

-}

-public void computeConstant() {

-	//the overflow (when radix=10) is tested using the fact that

-	//the value should always grow during its computation

-

-	int length = source.length - 1; //minus one because the last char is 'l' or 'L'

-	

-	long computedValue ;

-	if (source[0] == '0')

-	{	if (length == 1) { 	constant = Constant.fromValue(0L);	return;	}

-		final int shift,radix;

-		int j ;

-		if ( (source[1] == 'x') || (source[1] == 'X') )

-		{	shift = 4 ; j = 2; radix = 16;}

-		else

-		{	shift = 3 ; j = 1; radix = 8;}

-		int nbDigit = 0;

-		while (source[j]=='0') 

-		{	j++; //jump over redondant zero

-			if ( j == length)

-			{	//watch for 0000000000000L

-				constant = Constant.fromValue(value = 0L);

-				return ;}}

-				

-		int digitValue ;

-		if ((digitValue = Character.digit(source[j++],radix))	< 0 ) 	

-		{	constant = FORMAT_ERROR; return ;}

-		if (digitValue >= 8) nbDigit = 4;

-		else 	if (digitValue >= 4) nbDigit = 3;

-				else 	if (digitValue >= 2) nbDigit = 2;

-						else nbDigit = 1; //digitValue is not 0

-		computedValue = digitValue ;

-		while (j<length)

-		{	if ((digitValue = Character.digit(source[j++],radix))	< 0 ) 	

-			{	constant = FORMAT_ERROR; return ;}

-			if ((nbDigit += shift) > 64) return /*constant stays null*/ ;

-			computedValue = (computedValue<<shift) | digitValue ;}}

-

-	else

-	{	//-----------case radix=10-----------------

-		long previous = computedValue = 0;

-		for (int i = 0 ; i < length; i++) 

-		{	int digitValue ;	

-			if ((digitValue = Character.digit(source[i], 10)) < 0 ) return /*constant stays null*/ ;

-			previous = computedValue;

-			computedValue = 10 * computedValue + digitValue ;

-			if (previous > computedValue) return /*constant stays null*/;}}

-	

-	constant = Constant.fromValue(value = computedValue);

-}

-/**

- * Code generation for long literal

- *

- * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

- * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

- * @param valueRequired boolean

- */ 

-public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-	int pc = codeStream.position;

-	if (valueRequired)

-		if ((implicitConversion >> 4) == T_long)

-			codeStream.generateInlinedValue(value);

-		else

-			codeStream.generateConstant(constant, implicitConversion);

-	codeStream.recordPositionsFrom(pc, this.sourceStart);

-}

-public TypeBinding literalType(BlockScope scope) {

-	return LongBinding;

-}

-public final boolean mayRepresentMIN_VALUE(){

-	//a special autorized int literral is 9223372036854775808L

-	//which is ONE over the limit. This special case 

-	//only is used in combinaison with - to denote

-	//the minimal value of int -9223372036854775808L

-

-	return ((source.length == 20) &&

-			(source[0] == '9') &&

-			(source[1] == '2') &&

-			(source[2] == '2') &&

-			(source[3] == '3') &&			

-			(source[4] == '3') &&

-			(source[5] == '7') &&

-			(source[6] == '2') &&

-			(source[7] == '0') &&			

-			(source[8] == '3') &&

-			(source[9] == '6') &&

-			(source[10] == '8') &&

-			(source[11] == '5') &&

-			(source[12] == '4') &&			

-			(source[13] == '7') &&

-			(source[14] == '7') &&

-			(source[15] == '5') &&

-			(source[16] == '8') &&			

-			(source[17] == '0') &&

-			(source[18] == '8'));}

-public TypeBinding resolveType(BlockScope scope) {

-	// the format may be incorrect while the scanner could detect

-	// such error only on painfull tests...easier and faster here

-

-	TypeBinding tb = super.resolveType(scope);

-	if (constant == FORMAT_ERROR) {

-		constant = NotAConstant;

-		scope.problemReporter().constantOutOfFormat(this);

-		this.resolvedType = null;

-		return null;

-	}

-	return tb;

-}

-public void traverse(ASTVisitor visitor, BlockScope scope) {

-	visitor.visit(this, scope);

-	visitor.endVisit(this, scope);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LongLiteralMinValue.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LongLiteralMinValue.js
deleted file mode 100644
index 950ae38..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/LongLiteralMinValue.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-

-public class LongLiteralMinValue extends LongLiteral {

-

-	final static char[] CharValue = new char[]{'-', '9','2','2','3','3','7','2','0','3','6','8','5','4','7','7','5','8','0','8','L'};

-	final static Constant MIN_VALUE = Constant.fromValue(Long.MIN_VALUE) ; 

-

-public LongLiteralMinValue(){

-	super(CharValue,0,0,Long.MIN_VALUE);

-	constant = MIN_VALUE;

-}

-public void computeConstant() {

-

-	/*precomputed at creation time*/}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MagicLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MagicLiteral.js
deleted file mode 100644
index 0238b0d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MagicLiteral.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-public abstract class  MagicLiteral extends Literal {

-	

-	public MagicLiteral(int start , int end) {

-		

-		super(start,end);

-	}

-	

-	public boolean isValidJavaStatement(){

-		

-		return false ;

-	}

-	

-	public char[] source() {

-	

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MarkerAnnotation.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MarkerAnnotation.js
deleted file mode 100644
index daf855d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MarkerAnnotation.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*

- * Created on 2004-03-11

- *

- * To change the template for this generated file go to

- * Window - Preferences - Java - Code Generation - Code and Comments

- */

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;

-

-public class MarkerAnnotation extends Annotation {

-	

-	public MarkerAnnotation(char[][] tokens, long[] sourcePositions, int sourceStart) {

-		this.tokens = tokens;

-		this.sourcePositions = sourcePositions;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = (int) sourcePositions[sourcePositions.length - 1];

-	}

-	

-	public MarkerAnnotation(char[] token, long sourcePosition, int sourceStart) {

-		this.tokens = new char[][] { token };

-		this.sourcePositions = new long[] { sourcePosition };

-		this.sourceStart = sourceStart;

-		this.sourceEnd = (int) sourcePosition;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, CompilationUnitScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MemberValuePair.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MemberValuePair.js
deleted file mode 100644
index 26b9f4c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MemberValuePair.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;

-

-/**

- * MemberValuePair node

- */

-public class MemberValuePair extends ASTNode {

-	

-	public char[] token;

-	public Expression value;

-	

-	public MemberValuePair(char[] token, int sourceStart, int sourceEnd, Expression value) {

-		this.token = token;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-		this.value = value;

-	}

-	

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode#print(int, java.lang.StringBuffer)

-	 */

-	public StringBuffer print(int indent, StringBuffer output) {

-		output

-			.append(token)

-			.append(" = "); //$NON-NLS-1$

-		value.print(indent, output);

-		return output;

-	}

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.value != null) {

-				this.value.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.value != null) {

-				this.value.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, CompilationUnitScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.value != null) {

-				this.value.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MessageSend.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MessageSend.js
deleted file mode 100644
index 2314828..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MessageSend.js
+++ /dev/null
@@ -1,399 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Nick Teryaev - fix for bug (https://bugs.eclipse.org/bugs/show_bug.cgi?id=40752)

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class MessageSend extends Expression implements InvocationSite {

-    

-	public Expression receiver ;

-	public char[] selector ;

-	public Expression[] arguments ;

-	public MethodBinding binding;							// exact binding resulting from lookup

-	protected MethodBinding codegenBinding;		// actual binding used for code generation (if no synthetic accessor)

-	MethodBinding syntheticAccessor;						// synthetic accessor for inner-emulation

-	public TypeBinding expectedType;					// for generic method invocation (return type inference)

-

-	public long nameSourcePosition ; //(start<<32)+end

-

-	public TypeBinding receiverType, qualifyingType;

-	public TypeBinding genericCast;

-	public TypeReference[] typeArguments;

-	public TypeBinding[] genericTypeArguments;

-	

-public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-

-	flowInfo = receiver.analyseCode(currentScope, flowContext, flowInfo, !binding.isStatic()).unconditionalInits();

-	if (arguments != null) {

-		int length = arguments.length;

-		for (int i = 0; i < length; i++) {

-			flowInfo = arguments[i].analyseCode(currentScope, flowContext, flowInfo).unconditionalInits();

-		}

-	}

-	ReferenceBinding[] thrownExceptions;

-	if ((thrownExceptions = binding.thrownExceptions) != NoExceptions) {

-		// must verify that exceptions potentially thrown by this expression are caught in the method

-		flowContext.checkExceptionHandlers(thrownExceptions, this, flowInfo, currentScope);

-	}

-	manageSyntheticAccessIfNecessary(currentScope, flowInfo);	

-	return flowInfo;

-}

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#computeConversion(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding)

- */

-public void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType) {

-	if (runtimeTimeType == null || compileTimeType == null)

-		return;

-	// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)

-	if (this.binding != null && this.binding.isValidBinding()) {

-		MethodBinding originalBinding = this.binding.original();

-		if (originalBinding != this.binding) {

-		    // extra cast needed if method return type has type variable

-		    if ((originalBinding.returnType.tagBits & TagBits.HasTypeVariable) != 0 && runtimeTimeType.id != T_Object) {

-		        this.genericCast = originalBinding.returnType.genericCast(runtimeTimeType);

-		    }

-		} 	

-	}

-	super.computeConversion(scope, runtimeTimeType, compileTimeType);

-}

-/**

- * MessageSend code generation

- *

- * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

- * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

- * @param valueRequired boolean

- */ 

-public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-

-	int pc = codeStream.position;

-

-	// generate receiver/enclosing instance access

-	boolean isStatic = this.codegenBinding.isStatic();

-	// outer access ?

-	if (!isStatic && ((bits & DepthMASK) != 0) && receiver.isImplicitThis()){

-		// outer method can be reached through emulation if implicit access

-		ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((bits & DepthMASK) >> DepthSHIFT);		

-		Object[] path = currentScope.getEmulationPath(targetType, true /*only exact match*/, false/*consider enclosing arg*/);

-		codeStream.generateOuterAccess(path, this, targetType, currentScope);

-	} else {

-		receiver.generateCode(currentScope, codeStream, !isStatic);

-	}

-	// generate arguments

-	if (arguments != null){

-		for (int i = 0, max = arguments.length; i < max; i++){

-			arguments[i].generateCode(currentScope, codeStream, true);

-		}

-	}

-	// actual message invocation

-	if (syntheticAccessor == null){

-		if (isStatic){

-			codeStream.invokestatic(this.codegenBinding);

-		} else {

-			if( (receiver.isSuper()) || this.codegenBinding.isPrivate()){

-				codeStream.invokespecial(this.codegenBinding);

-			} else {

-				if (this.codegenBinding.declaringClass.isInterface()){

-					codeStream.invokeinterface(this.codegenBinding);

-				} else {

-					codeStream.invokevirtual(this.codegenBinding);

-				}

-			}

-		}

-	} else {

-		codeStream.invokestatic(syntheticAccessor);

-	}

-	// operation on the returned value

-	if (valueRequired){

-		// implicit conversion if necessary

-		codeStream.generateImplicitConversion(implicitConversion);

-		if (this.genericCast != null) codeStream.checkcast(this.genericCast);

-	} else {

-		// pop return value if any

-		switch(binding.returnType.id){

-			case T_long :

-			case T_double :

-				codeStream.pop2();

-				break;

-			case T_void :

-				break;

-			default:

-				codeStream.pop();

-		}

-	}

-	codeStream.recordPositionsFrom(pc, (int)(this.nameSourcePosition >>> 32)); // highlight selector

-}

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()

- */

-public TypeBinding[] genericTypeArguments() {

-	return this.genericTypeArguments;

-}

-public boolean isSuperAccess() {	

-	return receiver.isSuper();

-}

-public boolean isTypeAccess() {	

-	return receiver != null && receiver.isTypeReference();

-}

-public void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo){

-

-	if (!flowInfo.isReachable()) return;

-

-	// if method from parameterized type got found, use the original method at codegen time

-	this.codegenBinding = this.binding.original();

-	if (this.binding.isPrivate()){

-

-		// depth is set for both implicit and explicit access (see MethodBinding#canBeSeenBy)		

-		if (currentScope.enclosingSourceType() != this.codegenBinding.declaringClass){

-		

-			syntheticAccessor = ((SourceTypeBinding)this.codegenBinding.declaringClass).addSyntheticMethod(this.codegenBinding, isSuperAccess());

-			currentScope.problemReporter().needToEmulateMethodAccess(this.codegenBinding, this);

-			return;

-		}

-

-	} else if (receiver instanceof QualifiedSuperReference){ // qualified super

-

-		// qualified super need emulation always

-		SourceTypeBinding destinationType = (SourceTypeBinding)(((QualifiedSuperReference)receiver).currentCompatibleType);

-		syntheticAccessor = destinationType.addSyntheticMethod(this.codegenBinding, isSuperAccess());

-		currentScope.problemReporter().needToEmulateMethodAccess(this.codegenBinding, this);

-		return;

-

-	} else if (binding.isProtected()){

-

-		SourceTypeBinding enclosingSourceType;

-		if (((bits & DepthMASK) != 0) 

-				&& this.codegenBinding.declaringClass.getPackage() 

-					!= (enclosingSourceType = currentScope.enclosingSourceType()).getPackage()){

-

-			SourceTypeBinding currentCompatibleType = (SourceTypeBinding)enclosingSourceType.enclosingTypeAt((bits & DepthMASK) >> DepthSHIFT);

-			syntheticAccessor = currentCompatibleType.addSyntheticMethod(this.codegenBinding, isSuperAccess());

-			currentScope.problemReporter().needToEmulateMethodAccess(this.codegenBinding, this);

-			return;

-		}

-	}

-	

-	// if the binding declaring class is not visible, need special action

-	// for runtime compatibility on 1.2 VMs : change the declaring class of the binding

-	// NOTE: from target 1.2 on, method's declaring class is touched if any different from receiver type

-	// and not from Object or implicit static method call.	

-	if (this.binding.declaringClass != this.qualifyingType

-		&& !this.qualifyingType.isArrayType()

-		&& ((currentScope.environment().options.targetJDK >= ClassFileConstants.JDK1_2

-				&& (!receiver.isImplicitThis() || !this.codegenBinding.isStatic())

-				&& this.binding.declaringClass.id != T_Object) // no change for Object methods

-			|| !this.binding.declaringClass.canBeSeenBy(currentScope))) {

-

-		this.codegenBinding = currentScope.enclosingSourceType().getUpdatedMethodBinding(

-		        										this.codegenBinding, (ReferenceBinding) this.qualifyingType.erasure());

-

-		// Post 1.4.0 target, array clone() invocations are qualified with array type 

-		// This is handled in array type #clone method binding resolution (see Scope and UpdatedMethodBinding)

-	}

-}

-

-public StringBuffer printExpression(int indent, StringBuffer output){

-	

-	if (!receiver.isImplicitThis()) receiver.printExpression(0, output).append('.');

-	if (this.typeArguments != null) {

-		output.append('<');//$NON-NLS-1$

-		int max = typeArguments.length - 1;

-		for (int j = 0; j < max; j++) {

-			typeArguments[j].print(0, output);

-			output.append(", ");//$NON-NLS-1$

-		}

-		typeArguments[max].print(0, output);

-		output.append('>');

-	}

-	output.append(selector).append('(') ; //$NON-NLS-1$

-	if (arguments != null) {

-		for (int i = 0; i < arguments.length ; i ++) {	

-			if (i > 0) output.append(", "); //$NON-NLS-1$

-			arguments[i].printExpression(0, output);

-		}

-	}

-	return output.append(')');

-}

-

-public TypeBinding resolveType(BlockScope scope) {

-	// Answer the signature return type

-	// Base type promotion

-

-	constant = NotAConstant;

-	boolean receiverCast = false, argsContainCast = false; 

-	if (this.receiver instanceof CastExpression) {

-		this.receiver.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-		receiverCast = true;

-	}

-	this.qualifyingType = this.receiverType = receiver.resolveType(scope); 

-	if (receiverCast && this.receiverType != null) {

-		 // due to change of declaring class with receiver type, only identity cast should be notified

-		if (((CastExpression)this.receiver).expression.resolvedType == this.receiverType) { 

-			scope.problemReporter().unnecessaryCast((CastExpression)this.receiver);		

-		}

-	}

-	// resolve type arguments (for generic constructor call)

-	if (this.typeArguments != null) {

-		int length = this.typeArguments.length;

-		boolean argHasError = false; // typeChecks all arguments

-		this.genericTypeArguments = new TypeBinding[length];

-		for (int i = 0; i < length; i++) {

-			if ((this.genericTypeArguments[i] = this.typeArguments[i].resolveType(scope)) == null) {

-				argHasError = true;

-			}

-		}

-		if (argHasError) {

-			return null;

-		}

-	}	

-	// will check for null after args are resolved

-	TypeBinding[] argumentTypes = NoParameters;

-	if (arguments != null) {

-		boolean argHasError = false; // typeChecks all arguments 

-		int length = arguments.length;

-		argumentTypes = new TypeBinding[length];

-		for (int i = 0; i < length; i++){

-			Expression argument = arguments[i];

-			if (argument instanceof CastExpression) {

-				argument.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-				argsContainCast = true;

-			}

-			if ((argumentTypes[i] = argument.resolveType(scope)) == null){

-				argHasError = true;

-			}

-		}

-		if (argHasError) {

-			if(receiverType instanceof ReferenceBinding) {

-				// record any selector match, for clients who may still need hint about possible method match

-				this.binding = scope.findMethod((ReferenceBinding)receiverType, selector, new TypeBinding[]{}, this);

-			}			

-			return null;

-		}

-	}

-	if (this.receiverType == null) {

-		return null;

-	}

-	// base type cannot receive any message

-	if (this.receiverType.isBaseType()) {

-		scope.problemReporter().errorNoMethodFor(this, this.receiverType, argumentTypes);

-		return null;

-	}

-	this.binding = 

-		receiver.isImplicitThis()

-			? scope.getImplicitMethod(selector, argumentTypes, this)

-			: scope.getMethod(this.receiverType, selector, argumentTypes, this); 

-	if (!binding.isValidBinding()) {

-		if (binding.declaringClass == null) {

-			if (this.receiverType instanceof ReferenceBinding) {

-				binding.declaringClass = (ReferenceBinding) this.receiverType;

-			} else { 

-				scope.problemReporter().errorNoMethodFor(this, this.receiverType, argumentTypes);

-				return null;

-			}

-		}

-		scope.problemReporter().invalidMethod(this, binding);

-		MethodBinding closestMatch = ((ProblemMethodBinding)binding).closestMatch;

-		switch (this.binding.problemId()) {

-			case ProblemReasons.Ambiguous :

-			case ProblemReasons.NotVisible :

-			case ProblemReasons.NonStaticReferenceInConstructorInvocation :

-			case ProblemReasons.NonStaticReferenceInStaticContext :

-			case ProblemReasons.ReceiverTypeNotVisible :

-			case ProblemReasons.ParameterBoundMismatch :

-				// only steal returnType in cases listed above

-				if (closestMatch != null) this.resolvedType = closestMatch.returnType;

-			default :

-		}

-		// record the closest match, for clients who may still need hint about possible method match

-		if (closestMatch != null) {

-			this.binding = closestMatch;

-			if (closestMatch.isPrivate() && !scope.isDefinedInMethod(closestMatch)) {

-				// ignore cases where method is used from within inside itself (e.g. direct recursions)

-				closestMatch.original().modifiers |= AccPrivateUsed;

-			}

-		}

-		return this.resolvedType;

-	}

-	if (!binding.isStatic()) {

-		// the "receiver" must not be a type, in other words, a NameReference that the TC has bound to a Type

-		if (receiver instanceof NameReference 

-				&& (((NameReference) receiver).bits & BindingIds.TYPE) != 0) {

-			scope.problemReporter().mustUseAStaticMethod(this, binding);

-		}

-		receiver.computeConversion(scope, receiverType, receiverType); // compute generic cast if necessary

-	} else {

-		// static message invoked through receiver? legal but unoptimal (optional warning).

-		if (!(receiver.isImplicitThis()

-				|| receiver.isSuper()

-				|| (receiver instanceof NameReference 

-					&& (((NameReference) receiver).bits & BindingIds.TYPE) != 0))) {

-			scope.problemReporter().nonStaticAccessToStaticMethod(this, binding);

-		}

-		if (!receiver.isImplicitThis() && binding.declaringClass != receiverType) {

-			scope.problemReporter().indirectAccessToStaticMethod(this, binding);

-		}		

-	}

-	if (this.arguments != null) 

-		checkInvocationArguments(scope, this.receiver, receiverType, binding, this.arguments, argumentTypes, argsContainCast, this);

-

-	//-------message send that are known to fail at compile time-----------

-	if (binding.isAbstract()) {

-		if (receiver.isSuper()) {

-			scope.problemReporter().cannotDireclyInvokeAbstractMethod(this, binding);

-		}

-		// abstract private methods cannot occur nor abstract static............

-	}

-	if (isMethodUseDeprecated(binding, scope))

-		scope.problemReporter().deprecatedMethod(binding, this);

-

-	return this.resolvedType = this.binding.returnType;

-}

-public void setActualReceiverType(ReferenceBinding receiverType) {

-	this.qualifyingType = receiverType;

-}

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#setExpectedType(org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding)

- */

-public void setExpectedType(TypeBinding expectedType) {

-    this.expectedType = expectedType;

-}

-

-public void setDepth(int depth) {

-	bits &= ~DepthMASK; // flush previous depth if any

-	if (depth > 0) {

-		bits |= (depth & 0xFF) << DepthSHIFT; // encoded on 8 bits

-	}

-}

-public void setFieldIndex(int depth) {

-	// ignore for here

-}

-

-public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-	if (visitor.visit(this, blockScope)) {

-		receiver.traverse(visitor, blockScope);

-		if (this.typeArguments != null) {

-			for (int i = 0, typeArgumentsLength = this.typeArguments.length; i < typeArgumentsLength; i++) {

-				this.typeArguments[i].traverse(visitor, blockScope);

-			}		

-		}

-		if (arguments != null) {

-			int argumentsLength = arguments.length;

-			for (int i = 0; i < argumentsLength; i++)

-				arguments[i].traverse(visitor, blockScope);

-		}

-	}

-	visitor.endVisit(this, blockScope);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MethodDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MethodDeclaration.js
deleted file mode 100644
index ae40cd9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/MethodDeclaration.js
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.flow.ExceptionHandlingFlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.flow.InitializationFlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortMethod;

-

-public class MethodDeclaration extends AbstractMethodDeclaration {

-	

-	public TypeReference returnType;

-	public TypeParameter[] typeParameters;

-	

-	/**

-	 * MethodDeclaration constructor comment.

-	 */

-	public MethodDeclaration(CompilationResult compilationResult) {

-		super(compilationResult);

-	}

-

-	public void analyseCode(

-		ClassScope classScope,

-		InitializationFlowContext initializationContext,

-		FlowInfo flowInfo) {

-

-		// starting of the code analysis for methods

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (binding == null)

-				return;

-				

-			if (this.binding.isPrivate() && !this.binding.isPrivateUsed()) {

-				if (!classScope.referenceCompilationUnit().compilationResult.hasSyntaxError()) {

-					scope.problemReporter().unusedPrivateMethod(this);

-				}

-			}

-				

-			// may be in a non necessary <clinit> for innerclass with static final constant fields

-			if (binding.isAbstract() || binding.isNative())

-				return;

-

-			ExceptionHandlingFlowContext methodContext =

-				new ExceptionHandlingFlowContext(

-					initializationContext,

-					this,

-					binding.thrownExceptions,

-					scope,

-					FlowInfo.DEAD_END);

-

-			// propagate to statements

-			if (statements != null) {

-				boolean didAlreadyComplain = false;

-				for (int i = 0, count = statements.length; i < count; i++) {

-					Statement stat = statements[i];

-					if (!stat.complainIfUnreachable(flowInfo, scope, didAlreadyComplain)) {

-						flowInfo = stat.analyseCode(scope, methodContext, flowInfo);

-					} else {

-						didAlreadyComplain = true;

-					}

-				}

-			}

-			// check for missing returning path

-			TypeBinding returnTypeBinding = binding.returnType;

-			if ((returnTypeBinding == VoidBinding) || isAbstract()) {

-				this.needFreeReturn = flowInfo.isReachable();

-			} else {

-				if (flowInfo != FlowInfo.DEAD_END) { 

-					scope.problemReporter().shouldReturn(returnTypeBinding, this);

-				}

-			}

-			// check unreachable catch blocks

-			methodContext.complainIfUnusedExceptionHandlers(this);

-		} catch (AbortMethod e) {

-			this.ignoreFurtherInvestigation = true;

-		}

-	}

-

-	public boolean isMethod() {

-

-		return true;

-	}

-

-	public void parseStatements(Parser parser, CompilationUnitDeclaration unit) {

-

-		//fill up the method body with statement

-		if (ignoreFurtherInvestigation)

-			return;

-		parser.parse(this, unit);

-	}

-

-	public StringBuffer printReturnType(int indent, StringBuffer output) {

-

-		if (returnType == null) return output;

-		return returnType.printExpression(0, output).append(' ');

-	}

-

-	public void resolveStatements() {

-

-		// ========= abort on fatal error =============

-		if (this.returnType != null && this.binding != null) {

-			this.returnType.resolvedType = this.binding.returnType;

-			// record the return type binding

-		}

-		// check if method with constructor name

-		if (CharOperation.equals(scope.enclosingSourceType().sourceName, selector)) {

-			scope.problemReporter().methodWithConstructorName(this);

-		}

-		

-		// by grammatical construction, interface methods are always abstract

-		if (!scope.enclosingSourceType().isInterface()){

-

-			// if a method has an semicolon body and is not declared as abstract==>error

-			// native methods may have a semicolon body 

-			if ((modifiers & AccSemicolonBody) != 0) {

-				if ((modifiers & AccNative) == 0)

-					if ((modifiers & AccAbstract) == 0)

-						scope.problemReporter().methodNeedBody(this);

-			} else {

-				// the method HAS a body --> abstract native modifiers are forbiden

-				if (((modifiers & AccNative) != 0) || ((modifiers & AccAbstract) != 0))

-					scope.problemReporter().methodNeedingNoBody(this);

-			}

-		}

-		super.resolveStatements(); 

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		ClassScope classScope) {

-

-		if (visitor.visit(this, classScope)) {

-			if (this.annotations != null) {

-				int annotationsLength = this.annotations.length;

-				for (int i = 0; i < annotationsLength; i++)

-					this.annotations[i].traverse(visitor, scope);

-			}

-			if (this.typeParameters != null) {

-				int typeParametersLength = this.typeParameters.length;

-				for (int i = 0; i < typeParametersLength; i++) {

-					this.typeParameters[i].traverse(visitor, scope);

-				}

-			}			

-			if (returnType != null)

-				returnType.traverse(visitor, scope);

-			if (arguments != null) {

-				int argumentLength = arguments.length;

-				for (int i = 0; i < argumentLength; i++)

-					arguments[i].traverse(visitor, scope);

-			}

-			if (thrownExceptions != null) {

-				int thrownExceptionsLength = thrownExceptions.length;

-				for (int i = 0; i < thrownExceptionsLength; i++)

-					thrownExceptions[i].traverse(visitor, scope);

-			}

-			if (statements != null) {

-				int statementsLength = statements.length;

-				for (int i = 0; i < statementsLength; i++)

-					statements[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, classScope);

-	}

-	public TypeParameter[] typeParameters() {

-	    return this.typeParameters;

-	}		

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NameReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NameReference.js
deleted file mode 100644
index 68774eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NameReference.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public abstract class NameReference extends Reference implements InvocationSite, BindingIds {

-

-	public Binding binding, codegenBinding; //may be aTypeBinding-aFieldBinding-aLocalVariableBinding

-	

-	public TypeBinding receiverType;		// raw receiver type

-	public TypeBinding actualReceiverType;	// modified receiver type - actual one according to namelookup

-

-	//the error printing

-	//some name reference are build as name reference but

-	//only used as type reference. When it happens, instead of

-	//creating a new objet (aTypeReference) we just flag a boolean

-	//This concesion is valuable while their are cases when the NameReference

-	//will be a TypeReference (static message sends.....) and there is

-	//no changeClass in java.

-public NameReference() {

-	super();

-	bits |= TYPE | VARIABLE; // restrictiveFlag

-	

-}

-public FieldBinding fieldBinding() {

-	//this method should be sent ONLY after a check against isFieldReference()

-	//check its use doing senders.........

-

-	return (FieldBinding) binding ;

-}

-public boolean isSuperAccess() {

-	return false;

-}

-public boolean isTypeAccess() {

-	// null is acceptable when we are resolving the first part of a reference

-	return binding == null || binding instanceof ReferenceBinding;

-}

-public boolean isTypeReference() {

-	return binding instanceof ReferenceBinding;

-}

-public void setActualReceiverType(ReferenceBinding receiverType) {

-	this.actualReceiverType = receiverType;

-}

-public void setDepth(int depth) {

-	bits &= ~DepthMASK; // flush previous depth if any			

-	if (depth > 0) {

-		bits |= (depth & 0xFF) << DepthSHIFT; // encoded on 8 bits

-	}

-}

-public void setFieldIndex(int index){

-	// ignored

-}

-

-public abstract String unboundReferenceErrorName();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NormalAnnotation.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NormalAnnotation.js
deleted file mode 100644
index f669527..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NormalAnnotation.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;

-

-/**

- * Normal annotation node

- */

-public class NormalAnnotation extends Annotation {

-	

-	public MemberValuePair[] memberValuePairs;

-	

-	public NormalAnnotation(char[][] tokens, long[] sourcePositions, int sourceStart) {

-		this.tokens = tokens;

-		this.sourcePositions = sourcePositions;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = (int) sourcePositions[sourcePositions.length - 1];

-	}

-

-	public NormalAnnotation(char[] token, long sourcePosition, int sourceStart) {

-		this.tokens = new char[][] { token };

-		this.sourcePositions = new long[] { sourcePosition };

-		this.sourceStart = sourceStart;

-		this.sourceEnd = (int) sourcePosition;

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		super.printExpression(indent, output);

-		output.append('(');

-		if (this.memberValuePairs != null) {

-			for (int i = 0, max = this.memberValuePairs.length; i < max; i++) {

-				if (i > 0) {

-					output.append(',');

-				}

-				this.memberValuePairs[i].print(indent, output);

-			}

-		}

-		output.append(')');

-		return output;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.memberValuePairs != null) {

-				int memberValuePairsLength = this.memberValuePairs.length;

-				for (int i = 0; i < memberValuePairsLength; i++)

-					this.memberValuePairs[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.memberValuePairs != null) {

-				int memberValuePairsLength = this.memberValuePairs.length;

-				for (int i = 0; i < memberValuePairsLength; i++)

-					this.memberValuePairs[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, CompilationUnitScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.memberValuePairs != null) {

-				int memberValuePairsLength = this.memberValuePairs.length;

-				for (int i = 0; i < memberValuePairsLength; i++)

-					this.memberValuePairs[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NullLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NullLiteral.js
deleted file mode 100644
index ce4d0ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NullLiteral.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class NullLiteral extends MagicLiteral {

-

-	static final char[] source = {'n' , 'u' , 'l' , 'l'};

-

-	public NullLiteral(int s , int e) {

-

-		super(s,e);

-	}

-

-	public void computeConstant() {

-	

-		constant = NotAConstant; 

-	}

-

-	/**

-	 * Code generation for the null literal

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */ 

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-		int pc = codeStream.position;

-		if (valueRequired)

-			codeStream.aconst_null();

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	public TypeBinding literalType(BlockScope scope) {

-		return NullBinding;

-	}

-

-	/**

-	 * 

-	 */

-	public char[] source() {

-		return source;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NumberLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NumberLiteral.js
deleted file mode 100644
index e6e8238..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/NumberLiteral.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-public abstract class NumberLiteral extends Literal {

-

-	char[] source;

-	

-	public NumberLiteral(char[] token, int s, int e) {

-		

-		this(s,e) ;

-		source = token ;

-	}

-	

-	public NumberLiteral(int s, int e) {

-		super (s,e) ;

-	}

-	

-	public boolean isValidJavaStatement(){

-

-		return false ;

-	}

-	

-	public char[] source(){

-

-		return source;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OR_OR_Expression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OR_OR_Expression.js
deleted file mode 100644
index 51118e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OR_OR_Expression.js
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-//dedicated treatment for the ||

-public class OR_OR_Expression extends BinaryExpression {

-

-	int rightInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-

-	public OR_OR_Expression(Expression left, Expression right, int operator) {

-		super(left, right, operator);

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		Constant cst = this.left.optimizedBooleanConstant();

-		boolean isLeftOptimizedTrue = cst != NotAConstant && cst.booleanValue() == true;

-		boolean isLeftOptimizedFalse = cst != NotAConstant && cst.booleanValue() == false;

-

-		if (isLeftOptimizedFalse) {

-			// FALSE || anything

-			 // need to be careful of scenario:

-			//		(x || y) || !z, if passing the left info to the right, it would be swapped by the !

-			FlowInfo mergedInfo = left.analyseCode(currentScope, flowContext, flowInfo).unconditionalInits();

-			mergedInfo = right.analyseCode(currentScope, flowContext, mergedInfo);

-			mergedInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(mergedInfo);

-			return mergedInfo;

-		}

-

-		FlowInfo leftInfo = left.analyseCode(currentScope, flowContext, flowInfo);

-	

-		 // need to be careful of scenario:

-		//		(x || y) || !z, if passing the left info to the right, it would be swapped by the !

-		FlowInfo rightInfo = leftInfo.initsWhenFalse().unconditionalInits().copy();

-		rightInitStateIndex =

-			currentScope.methodScope().recordInitializationStates(rightInfo);

-

-		int previousMode = rightInfo.reachMode();

-		if (isLeftOptimizedTrue){

-			rightInfo.setReachMode(FlowInfo.UNREACHABLE); 

-		}

-		rightInfo = right.analyseCode(currentScope, flowContext, rightInfo);

-		FlowInfo falseMergedInfo = rightInfo.initsWhenFalse().copy();

-		rightInfo.setReachMode(previousMode); // reset after falseMergedInfo got extracted

-

-		FlowInfo mergedInfo = FlowInfo.conditional(

-					// merging two true initInfos for such a negative case: if ((t && (b = t)) || f) r = b; // b may not have been initialized

-					leftInfo.initsWhenTrue().copy().unconditionalInits().mergedWith(

-						rightInfo.initsWhenTrue().copy().unconditionalInits()),

-					falseMergedInfo);

-		mergedInitStateIndex =

-			currentScope.methodScope().recordInitializationStates(mergedInfo);

-		return mergedInfo;

-	}

-

-	/**

-	 * Code generation for a binary operation

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-

-		int pc = codeStream.position;

-		if (constant != Constant.NotAConstant) {

-			// inlined value

-			if (valueRequired)

-				codeStream.generateConstant(constant, implicitConversion);

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		Constant cst = right.constant;

-		if (cst != NotAConstant) {

-			// <expr> || true --> true

-			if (cst.booleanValue() == true) {

-				this.left.generateCode(currentScope, codeStream, false);

-				if (valueRequired) codeStream.iconst_1();

-			} else {

-				// <expr>|| false --> <expr>

-				this.left.generateCode(currentScope, codeStream, valueRequired);

-			}

-			if (mergedInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			}			

-			codeStream.generateImplicitConversion(implicitConversion);

-			codeStream.updateLastRecordedEndPC(codeStream.position);

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		

-		Label trueLabel = new Label(codeStream), endLabel;

-		cst = left.optimizedBooleanConstant();

-		boolean leftIsConst = cst != NotAConstant;

-		boolean leftIsTrue = leftIsConst && cst.booleanValue() == true;

-

-		cst = right.optimizedBooleanConstant();

-		boolean rightIsConst = cst != NotAConstant;

-		boolean rightIsTrue = rightIsConst && cst.booleanValue() == true;

-

-		generateOperands : {

-			if (leftIsConst) {

-				left.generateCode(currentScope, codeStream, false);

-				if (leftIsTrue) {

-					break generateOperands; // no need to generate right operand

-				}

-			} else {

-				left.generateOptimizedBoolean(currentScope, codeStream, trueLabel, null, true); 

-				// need value, e.g. if (a == 1 || ((b = 2) > 0)) {} -> shouldn't initialize 'b' if a==1 

-			}

-			if (rightInitStateIndex != -1) {

-				codeStream.addDefinitelyAssignedVariables(currentScope, rightInitStateIndex);

-			}

-			if (rightIsConst) {

-				right.generateCode(currentScope, codeStream, false);

-			} else {

-				right.generateOptimizedBoolean(currentScope, codeStream, trueLabel, null, valueRequired);

-			}

-		}

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-		/*

-		 * improving code gen for such a case: boolean b = i < 0 || true since

-		 * the label has never been used, we have the inlined value on the

-		 * stack.

-		 */

-		if (valueRequired) {

-			if (leftIsConst && leftIsTrue) {

-				codeStream.iconst_1();

-				codeStream.updateLastRecordedEndPC(codeStream.position);

-			} else {

-				if (rightIsConst && rightIsTrue) {

-					codeStream.iconst_1();

-					codeStream.updateLastRecordedEndPC(codeStream.position);

-				} else {

-					codeStream.iconst_0();

-				}

-				if (trueLabel.hasForwardReferences()) {

-					if ((bits & ValueForReturnMASK) != 0) {

-						codeStream.ireturn();

-						trueLabel.place();

-						codeStream.iconst_1();

-					} else {

-						codeStream.goto_(endLabel = new Label(codeStream));

-						codeStream.decrStackSize(1);

-						trueLabel.place();

-						codeStream.iconst_1();

-						endLabel.place();

-					}

-				} else {

-					trueLabel.place();

-				}

-			}

-			codeStream.generateImplicitConversion(implicitConversion);

-			codeStream.updateLastRecordedEndPC(codeStream.position);

-		} else {

-			trueLabel.place();

-		}

-	}

-

-	/**

-	 * Boolean operator code generation Optimized operations are: ||

-	 */

-	public void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, Label trueLabel, Label falseLabel, boolean valueRequired) {

-

-		if (constant != Constant.NotAConstant) {

-			super.generateOptimizedBoolean(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-			return;

-		}

-

-		// <expr> || false --> <expr>

-		Constant cst = right.constant;

-		if (cst != NotAConstant && cst.booleanValue() == false) {

-			int pc = codeStream.position;

-			this.left.generateOptimizedBoolean(currentScope, codeStream, trueLabel, falseLabel, valueRequired);

-			if (mergedInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			}			

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-	

-		cst = left.optimizedBooleanConstant();

-		boolean leftIsConst = cst != NotAConstant;

-		boolean leftIsTrue = leftIsConst && cst.booleanValue() == true;

-

-		cst = right.optimizedBooleanConstant();

-		boolean rightIsConst = cst != NotAConstant;

-		boolean rightIsTrue = rightIsConst && cst.booleanValue() == true;

-

-		// default case

-		generateOperands : {

-			if (falseLabel == null) {

-				if (trueLabel != null) {

-					// implicit falling through the FALSE case

-					left.generateOptimizedBoolean(currentScope, codeStream, trueLabel, null, !leftIsConst); 

-					// need value, e.g. if (a == 1 || ((b = 2) > 0)) {} -> shouldn't initialize 'b' if a==1

-					if (leftIsConst && leftIsTrue) {

-						codeStream.goto_(trueLabel);

-						codeStream.updateLastRecordedEndPC(codeStream.position);

-						break generateOperands; // no need to generate right operand

-					}

-					if (rightInitStateIndex != -1) {

-						codeStream

-								.addDefinitelyAssignedVariables(currentScope, rightInitStateIndex);

-					}

-					right.generateOptimizedBoolean(currentScope, codeStream, trueLabel, null, valueRequired && !rightIsConst);

-					if (valueRequired && rightIsConst && rightIsTrue) {

-						codeStream.goto_(trueLabel);

-						codeStream.updateLastRecordedEndPC(codeStream.position);

-					}

-				}

-			} else {

-				// implicit falling through the TRUE case

-				if (trueLabel == null) {

-					Label internalTrueLabel = new Label(codeStream);

-					left.generateOptimizedBoolean(currentScope, codeStream, internalTrueLabel, null, !leftIsConst); 

-					// need value, e.g. if (a == 1 || ((b = 2) > 0)) {} -> shouldn't initialize 'b' if a==1

-					if (leftIsConst && leftIsTrue) {

-						internalTrueLabel.place();

-						break generateOperands; // no need to generate right operand

-					}

-					if (rightInitStateIndex != -1) {

-						codeStream

-								.addDefinitelyAssignedVariables(currentScope, rightInitStateIndex);

-					}

-					right.generateOptimizedBoolean(currentScope, codeStream, null, falseLabel, valueRequired && !rightIsConst);

-					if (valueRequired && rightIsConst) {

-						if (!rightIsTrue) {

-							codeStream.goto_(falseLabel);

-							codeStream.updateLastRecordedEndPC(codeStream.position);

-						}

-					}

-					internalTrueLabel.place();

-				} else {

-					// no implicit fall through TRUE/FALSE --> should never occur

-				}

-			}

-		}

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-	}

-	

-	public boolean isCompactableOperation() {

-		return false;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			left.traverse(visitor, scope);

-			right.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OperatorExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OperatorExpression.js
deleted file mode 100644
index 46e2194..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OperatorExpression.js
+++ /dev/null
@@ -1,1564 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-public abstract class OperatorExpression extends Expression implements OperatorIds {

-

-	public static int[][] OperatorSignatures = new int[NumberOfTables][];

-

-	static {classInitialize();}

-

-	/**

-	 * OperatorExpression constructor comment.

-	 */

-	public OperatorExpression() {

-		super();

-	}

-	public static final void classInitialize() {

-		OperatorSignatures[AND] = get_AND();

-		OperatorSignatures[AND_AND] = get_AND_AND();

-		OperatorSignatures[DIVIDE] = get_DIVIDE();

-		OperatorSignatures[EQUAL_EQUAL] = get_EQUAL_EQUAL();

-		OperatorSignatures[GREATER] = get_GREATER();

-		OperatorSignatures[GREATER_EQUAL] = get_GREATER_EQUAL();

-		OperatorSignatures[LEFT_SHIFT] = get_LEFT_SHIFT();

-		OperatorSignatures[LESS] = get_LESS();

-		OperatorSignatures[LESS_EQUAL] = get_LESS_EQUAL();

-		OperatorSignatures[MINUS] = get_MINUS();

-		OperatorSignatures[MULTIPLY] = get_MULTIPLY();

-		OperatorSignatures[OR] = get_OR();

-		OperatorSignatures[OR_OR] = get_OR_OR();

-		OperatorSignatures[PLUS] = get_PLUS();

-		OperatorSignatures[REMAINDER] = get_REMAINDER();

-		OperatorSignatures[RIGHT_SHIFT] = get_RIGHT_SHIFT();

-		OperatorSignatures[UNSIGNED_RIGHT_SHIFT] = get_UNSIGNED_RIGHT_SHIFT();

-		OperatorSignatures[XOR] = get_XOR();

-	}

-

-	public static final String generateTableTestCase(){

-		//return a String which is a java method allowing to test

-		//the non zero entries of all tables

-	

-		/*

-		org.eclipse.wst.jsdt.internal.compiler.ast.

-		OperatorExpression.generateTableTestCase();

-		*/

-	

-		int[] operators = new int[]{AND,AND_AND,DIVIDE,GREATER,GREATER_EQUAL,

-				LEFT_SHIFT,LESS,LESS_EQUAL,MINUS,MULTIPLY,OR,OR_OR,PLUS,REMAINDER,

-				RIGHT_SHIFT,UNSIGNED_RIGHT_SHIFT,XOR};

-	

-		class Decode {

-			public  final String constant(int code){

-				switch(code){ 

-					case T_boolean 	: return "true"; //$NON-NLS-1$

-					case T_byte		: return "((byte) 3)"; //$NON-NLS-1$

-					case T_char		: return "'A'"; //$NON-NLS-1$

-					case T_double	: return "300.0d"; //$NON-NLS-1$

-					case T_float	: return "100.0f"; //$NON-NLS-1$

-					case T_int		: return "1"; //$NON-NLS-1$

-					case T_long		: return "7L"; //$NON-NLS-1$

-					case T_String	: return "\"hello-world\""; //$NON-NLS-1$

-					case T_null		: return "null"; //$NON-NLS-1$

-					case T_short	: return "((short) 5)"; //$NON-NLS-1$

-					case T_Object	: return "null";} //$NON-NLS-1$

-				return "";} //$NON-NLS-1$

-	

-			public  final String type(int code){

-				switch(code){ 

-					case T_boolean 	: return "z"; //$NON-NLS-1$

-					case T_byte		: return "b"; //$NON-NLS-1$

-					case T_char		: return "c"; //$NON-NLS-1$

-					case T_double	: return "d"; //$NON-NLS-1$

-					case T_float	: return "f"; //$NON-NLS-1$

-					case T_int		: return "i"; //$NON-NLS-1$

-					case T_long		: return "l"; //$NON-NLS-1$

-					case T_String	: return "str"; //$NON-NLS-1$

-					case T_null		: return "null"; //$NON-NLS-1$

-					case T_short	: return "s"; //$NON-NLS-1$

-					case T_Object	: return "obj";} //$NON-NLS-1$

-				return "xxx";} //$NON-NLS-1$

-			

-			public  final String operator(int operator){

-					switch (operator) {

-					case EQUAL_EQUAL :	return "=="; //$NON-NLS-1$

-					case LESS_EQUAL :	return "<="; //$NON-NLS-1$

-					case GREATER_EQUAL :return ">="; //$NON-NLS-1$

-					case LEFT_SHIFT :	return "<<"; //$NON-NLS-1$

-					case RIGHT_SHIFT :	return ">>"; //$NON-NLS-1$

-					case UNSIGNED_RIGHT_SHIFT :	return ">>>"; //$NON-NLS-1$

-					case OR_OR :return "||"; //$NON-NLS-1$

-					case AND_AND :		return "&&"; //$NON-NLS-1$

-					case PLUS :			return "+"; //$NON-NLS-1$

-					case MINUS :		return "-"; //$NON-NLS-1$

-					case NOT :			return "!"; //$NON-NLS-1$

-					case REMAINDER :	return "%"; //$NON-NLS-1$

-					case XOR :			return "^"; //$NON-NLS-1$

-					case AND :			return "&"; //$NON-NLS-1$

-					case MULTIPLY :		return "*"; //$NON-NLS-1$

-					case OR :			return "|"; //$NON-NLS-1$

-					case TWIDDLE :		return "~"; //$NON-NLS-1$

-					case DIVIDE :		return "/"; //$NON-NLS-1$

-					case GREATER :		return ">"; //$NON-NLS-1$

-					case LESS :			return "<";	} //$NON-NLS-1$

-				return "????";} //$NON-NLS-1$

-		}

-	

-			

-		Decode decode = new Decode();

-		String s;

-	

-		s = "\tpublic static void binaryOperationTablesTestCase(){\n" + //$NON-NLS-1$

-	

-			"\t\t//TC test : all binary operation (described in tables)\n"+ //$NON-NLS-1$

-			"\t\t//method automatically generated by\n"+ //$NON-NLS-1$

-			"\t\t//org.eclipse.wst.jsdt.internal.compiler.ast.OperatorExpression.generateTableTestCase();\n"+ //$NON-NLS-1$

-		

-			"\t\tString str0;\t String str\t= "+decode.constant(T_String)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tint i0;\t int i\t= "+decode.constant(T_int)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tboolean z0;\t boolean z\t= "+decode.constant(T_boolean)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tchar c0; \t char  c\t= "+decode.constant(T_char)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tfloat f0; \t float f\t= "+decode.constant(T_float)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tdouble d0;\t double d\t= "+decode.constant(T_double)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tbyte b0; \t byte b\t= "+decode.constant(T_byte)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tshort s0; \t short s\t= "+decode.constant(T_short)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tlong l0; \t long l\t= "+decode.constant(T_long)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\t\tObject obj0; \t Object obj\t= "+decode.constant(T_Object)+";\n"+ //$NON-NLS-1$ //$NON-NLS-2$

-			"\n"; //$NON-NLS-1$

-	

-		int error = 0;		

-		for (int i=0; i < operators.length; i++)

-		{	int operator = operators[i];

-			for (int left=0; left<16;left++)

-			for (int right=0; right<16;right++)

-			{	int result = (OperatorSignatures[operator][(left<<4)+right]) & 0x0000F;

-				if (result != T_undefined)

-	

-					//1/ First regular computation then 2/ comparaison

-					//with a compile time constant (generated by the compiler)

-					//	z0 = s >= s;

-					//	if ( z0 != (((short) 5) >= ((short) 5)))

-					//		System.out.println(155);

-	

-				{	s += "\t\t"+decode.type(result)+"0"+" = "+decode.type(left); //$NON-NLS-1$ //$NON-NLS-3$ //$NON-NLS-2$

-					s += " "+decode.operator(operator)+" "+decode.type(right)+";\n"; //$NON-NLS-2$ //$NON-NLS-1$ //$NON-NLS-3$

-					String begin = result == T_String ? "\t\tif (! " : "\t\tif ( "; //$NON-NLS-2$ //$NON-NLS-1$

-					String test = result == T_String ? ".equals(" : " != ("; //$NON-NLS-2$ //$NON-NLS-1$

-					s += begin	+decode.type(result)+"0"+test //$NON-NLS-1$

-								+decode.constant(left)+" " //$NON-NLS-1$

-								+decode.operator(operator)+" " //$NON-NLS-1$

-								+decode.constant(right)+"))\n"; //$NON-NLS-1$

-					s += "\t\t\tSystem.out.println("+ (++error) +");\n"; //$NON-NLS-1$ //$NON-NLS-2$

-									

-					}

-				}

-			}

-			

-		return s += "\n\t\tSystem.out.println(\"binary tables test : done\");}"; //$NON-NLS-1$

-	}

-

-	public static final int[] get_AND(){

-	

-		//the code is an int, only 20 bits are used, see below.

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		int[] table  = new int[16*16];

-		

-		//	table[(T_undefined<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_undefined<<4)+T_byte] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_long] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_short] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_void] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_String] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_Object] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_double] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_float] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_char] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_int] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_byte<<4)+T_undefined] 	= T_undefined;

-		table[(T_byte<<4)+T_byte] 		= (Byte2Int<<12) +(Byte2Int<<4) +T_int;

-		table[(T_byte<<4)+T_long]		= (Byte2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_byte<<4)+T_short] 		= (Byte2Int<<12) +(Short2Int<<4)+T_int;

-		//	table[(T_byte<<4)+T_void] 		= T_undefined;

-		//	table[(T_byte<<4)+T_String] 	= T_undefined;

-		//	table[(T_byte<<4)+T_Object] 	= T_undefined;

-		//	table[(T_byte<<4)+T_double] 	= T_undefined;

-		//	table[(T_byte<<4)+T_float] 		= T_undefined;

-		//	table[(T_byte<<4)+T_boolean] 	= T_undefined;

-		table[(T_byte<<4)+T_char] 		= (Byte2Int<<12) +(Char2Int<<4) +T_int;

-		table[(T_byte<<4)+T_int] 		= (Byte2Int<<12) +(Int2Int<<4)  +T_int;

-		//	table[(T_byte<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_long<<4)+T_undefined] 	= T_undefined;

-		table[(T_long<<4)+T_byte] 		= (Long2Long<<12)+(Byte2Long<<4)+T_long;

-		table[(T_long<<4)+T_long] 		= (Long2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_long<<4)+T_short] 		= (Long2Long<<12)+(Short2Long<<4)+T_long;

-		//	table[(T_long<<4)+T_void] 		= T_undefined;

-		//	table[(T_long<<4)+T_String] 	= T_undefined;

-		//	table[(T_long<<4)+T_Object] 	= T_undefined;

-		//	table[(T_long<<4)+T_double] 	= T_undefined;

-		//	table[(T_long<<4)+T_float] 		= T_undefined;

-		//	table[(T_long<<4)+T_boolean] 	= T_undefined;

-		table[(T_long<<4)+T_char] 		= (Long2Long<<12)+(Char2Long<<4)+T_long;

-		table[(T_long<<4)+T_int] 		= (Long2Long<<12)+(Int2Long<<4)+T_long;

-		//	table[(T_long<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_short<<4)+T_undefined] 	= T_undefined;

-		table[(T_short<<4)+T_byte] 			= (Short2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_short<<4)+T_long] 			= (Short2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_short<<4)+T_short] 		= (Short2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_short<<4)+T_void] 			= T_undefined;

-		//	table[(T_short<<4)+T_String] 		= T_undefined;

-		//	table[(T_short<<4)+T_Object] 		= T_undefined;

-		//	table[(T_short<<4)+T_double] 		= T_undefined;

-		//	table[(T_short<<4)+T_float] 		= T_undefined;

-		//	table[(T_short<<4)+T_boolean] 		= T_undefined;

-		table[(T_short<<4)+T_char] 			= (Short2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_short<<4)+T_int] 			= (Short2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_short<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_void<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_void<<4)+T_byte] 		= T_undefined;

-		//	table[(T_void<<4)+T_long] 		= T_undefined;

-		//	table[(T_void<<4)+T_short] 		= T_undefined;

-		//	table[(T_void<<4)+T_void] 		= T_undefined;

-		//	table[(T_void<<4)+T_String] 	= T_undefined;

-		//	table[(T_void<<4)+T_Object] 	= T_undefined;

-		//	table[(T_void<<4)+T_double] 	= T_undefined;

-		//	table[(T_void<<4)+T_float] 		= T_undefined;

-		//	table[(T_void<<4)+T_boolean] 	= T_undefined;

-		//	table[(T_void<<4)+T_char] 		= T_undefined;

-		//	table[(T_void<<4)+T_int] 		= T_undefined;

-		//	table[(T_void<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_String<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_String<<4)+T_byte] 		= T_undefined;

-		//	table[(T_String<<4)+T_long] 		= T_undefined;

-		//	table[(T_String<<4)+T_short] 		= T_undefined;

-		//	table[(T_String<<4)+T_void] 		= T_undefined;

-		//	table[(T_String<<4)+T_String] 		= T_undefined;

-		//	table[(T_String<<4)+T_Object] 		= T_undefined;

-		//	table[(T_String<<4)+T_double] 		= T_undefined;

-		//	table[(T_String<<4)+T_float] 		= T_undefined;

-		//	table[(T_String<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_String<<4)+T_char] 		= T_undefined;

-		//	table[(T_String<<4)+T_int] 			= T_undefined;

-		//	table[(T_String<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_Object<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_Object<<4)+T_byte] 		= T_undefined;

-		//	table[(T_Object<<4)+T_long] 		= T_undefined;

-		//	table[(T_Object<<4)+T_short]		= T_undefined;

-		//	table[(T_Object<<4)+T_void] 		= T_undefined;

-		//	table[(T_Object<<4)+T_String] 		= T_undefined;

-		//	table[(T_Object<<4)+T_Object] 		= T_undefined;

-		//	table[(T_Object<<4)+T_double] 		= T_undefined;

-		//	table[(T_Object<<4)+T_float] 		= T_undefined;

-		//	table[(T_Object<<4)+T_boolean]		= T_undefined;

-		//	table[(T_Object<<4)+T_char] 		= T_undefined;

-		//	table[(T_Object<<4)+T_int] 			= T_undefined;

-		//	table[(T_Object<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_double<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_double<<4)+T_byte] 		= T_undefined;

-		//	table[(T_double<<4)+T_long] 		= T_undefined;

-		//	table[(T_double<<4)+T_short] 		= T_undefined;

-		//	table[(T_double<<4)+T_void] 		= T_undefined;

-		//	table[(T_double<<4)+T_String] 		= T_undefined;

-		//	table[(T_double<<4)+T_Object] 		= T_undefined;

-		//	table[(T_double<<4)+T_double] 		= T_undefined;

-		//	table[(T_double<<4)+T_float] 		= T_undefined;

-		//	table[(T_double<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_double<<4)+T_char] 		= T_undefined;

-		//	table[(T_double<<4)+T_int] 			= T_undefined;

-		//	table[(T_double<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_float<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_float<<4)+T_byte] 			= T_undefined;

-		//	table[(T_float<<4)+T_long] 			= T_undefined;

-		//	table[(T_float<<4)+T_short] 		= T_undefined;

-		//	table[(T_float<<4)+T_void] 			= T_undefined;

-		//	table[(T_float<<4)+T_String] 		= T_undefined;

-		//	table[(T_float<<4)+T_Object] 		= T_undefined;

-		//	table[(T_float<<4)+T_double] 		= T_undefined;

-		//	table[(T_float<<4)+T_float] 		= T_undefined;

-		//	table[(T_float<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_float<<4)+T_char] 			= T_undefined;

-		//	table[(T_float<<4)+T_int] 			= T_undefined;

-		//	table[(T_float<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_boolean<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_boolean<<4)+T_byte] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_long] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_short] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_void] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_String] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_Object] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_double] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_float] 			= T_undefined;

-		table[(T_boolean<<4)+T_boolean] 		= (Boolean2Boolean << 12)+(Boolean2Boolean << 4)+T_boolean;

-		//	table[(T_boolean<<4)+T_char] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_int] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_null] 			= T_undefined;

-			

-		//	table[(T_char<<4)+T_undefined] 		= T_undefined;

-		table[(T_char<<4)+T_byte] 			= (Char2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_char<<4)+T_long] 			= (Char2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_char<<4)+T_short] 			= (Char2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_char<<4)+T_void] 			= T_undefined;

-		//	table[(T_char<<4)+T_String] 		= T_undefined;

-		//	table[(T_char<<4)+T_Object] 		= T_undefined;

-		//	table[(T_char<<4)+T_double] 		= T_undefined;

-		//	table[(T_char<<4)+T_float] 			= T_undefined;

-		//	table[(T_char<<4)+T_boolean] 		= T_undefined;

-		table[(T_char<<4)+T_char] 			= (Char2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_char<<4)+T_int] 			= (Char2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_char<<4)+T_null] 			= T_undefined;

-			

-		//	table[(T_int<<4)+T_undefined] 	= T_undefined;

-		table[(T_int<<4)+T_byte] 		= (Int2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_int<<4)+T_long] 		= (Int2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_int<<4)+T_short] 		= (Int2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_int<<4)+T_void] 		= T_undefined;

-		//	table[(T_int<<4)+T_String] 		= T_undefined;

-		//	table[(T_int<<4)+T_Object] 		= T_undefined;

-		//	table[(T_int<<4)+T_double] 		= T_undefined;

-		//	table[(T_int<<4)+T_float] 		= T_undefined;

-		//	table[(T_int<<4)+T_boolean] 	= T_undefined;

-		table[(T_int<<4)+T_char] 		= (Int2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_int<<4)+T_int] 		= (Int2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_int<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_null<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_null<<4)+T_byte] 			= T_undefined;

-		//	table[(T_null<<4)+T_long] 			= T_undefined;

-		//	table[(T_null<<4)+T_short] 			= T_undefined;

-		//	table[(T_null<<4)+T_void] 			= T_undefined;

-		//	table[(T_null<<4)+T_String] 		= T_undefined;

-		//	table[(T_null<<4)+T_Object] 		= T_undefined;

-		//	table[(T_null<<4)+T_double] 		= T_undefined;

-		//	table[(T_null<<4)+T_float] 			= T_undefined;

-		//	table[(T_null<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_null<<4)+T_char] 			= T_undefined;

-		//	table[(T_null<<4)+T_int] 			= T_undefined;

-		//	table[(T_null<<4)+T_null] 			= T_undefined;

-	

-		return table;

-	}

-

-	public static final int[] get_AND_AND(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		int[] table  = new int[16*16];

-		

-		//     table[(T_undefined<<4)+T_undefined] 		= T_undefined;

-		//     table[(T_undefined<<4)+T_byte] 			= T_undefined;

-		//     table[(T_undefined<<4)+T_long] 			= T_undefined;

-		//     table[(T_undefined<<4)+T_short] 			= T_undefined;

-		//     table[(T_undefined<<4)+T_void] 			= T_undefined;

-		//     table[(T_undefined<<4)+T_String] 		= T_undefined;

-		//     table[(T_undefined<<4)+T_Object] 		= T_undefined;

-		//     table[(T_undefined<<4)+T_double] 		= T_undefined;

-		//     table[(T_undefined<<4)+T_float] 			= T_undefined;

-		//     table[(T_undefined<<4)+T_boolean] 		= T_undefined;

-		//     table[(T_undefined<<4)+T_char] 			= T_undefined;

-		//     table[(T_undefined<<4)+T_int] 			= T_undefined;

-		//     table[(T_undefined<<4)+T_null] 			= T_undefined;

-			

-		//     table[(T_byte<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_byte<<4)+T_byte] 		= T_undefined;

-		//     table[(T_byte<<4)+T_long] 		= T_undefined;

-		//     table[(T_byte<<4)+T_short] 		= T_undefined;

-		//     table[(T_byte<<4)+T_void] 		= T_undefined;

-		//     table[(T_byte<<4)+T_String] 		= T_undefined;

-		//     table[(T_byte<<4)+T_Object] 		= T_undefined;

-		//     table[(T_byte<<4)+T_double] 		= T_undefined;

-		//     table[(T_byte<<4)+T_float] 		= T_undefined;

-		//     table[(T_byte<<4)+T_boolean] 	= T_undefined;

-		//     table[(T_byte<<4)+T_char] 		= T_undefined;

-		//     table[(T_byte<<4)+T_int] 		= T_undefined;

-		//     table[(T_byte<<4)+T_null] 		= T_undefined;

-		

-		//     table[(T_long<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_long<<4)+T_byte] 		= T_undefined;

-		//     table[(T_long<<4)+T_long] 		= T_undefined;

-		//     table[(T_long<<4)+T_short] 		= T_undefined;

-		//     table[(T_long<<4)+T_void] 		= T_undefined;

-		//     table[(T_long<<4)+T_String] 		= T_undefined;

-		//     table[(T_long<<4)+T_Object] 		= T_undefined;

-		//     table[(T_long<<4)+T_double] 		= T_undefined;

-		//     table[(T_long<<4)+T_float] 		= T_undefined;

-		//     table[(T_long<<4)+T_boolean] 	= T_undefined;

-		//     table[(T_long<<4)+T_char] 		= T_undefined;

-		//     table[(T_long<<4)+T_int] 		= T_undefined;

-		//     table[(T_long<<4)+T_null] 		= T_undefined;

-		

-		//     table[(T_short<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_short<<4)+T_byte] 		= T_undefined;

-		//     table[(T_short<<4)+T_long] 		= T_undefined;

-		//     table[(T_short<<4)+T_short] 		= T_undefined;

-		//     table[(T_short<<4)+T_void] 		= T_undefined;

-		//     table[(T_short<<4)+T_String] 	= T_undefined;

-		//     table[(T_short<<4)+T_Object] 	= T_undefined;

-		//     table[(T_short<<4)+T_double] 	= T_undefined;

-		//     table[(T_short<<4)+T_float] 		= T_undefined;

-		//     table[(T_short<<4)+T_boolean]	= T_undefined;

-		//     table[(T_short<<4)+T_char] 		= T_undefined;

-		//     table[(T_short<<4)+T_int] 		= T_undefined;

-		//     table[(T_short<<4)+T_null] 		= T_undefined;

-		

-		//     table[(T_void<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_void<<4)+T_byte] 		= T_undefined;

-		//     table[(T_void<<4)+T_long] 		= T_undefined;

-		//     table[(T_void<<4)+T_short] 		= T_undefined;

-		//     table[(T_void<<4)+T_void] 		= T_undefined;

-		//     table[(T_void<<4)+T_String] 	= T_undefined;

-		//     table[(T_void<<4)+T_Object] 	= T_undefined;

-		//     table[(T_void<<4)+T_double] 	= T_undefined;

-		//     table[(T_void<<4)+T_float] 		= T_undefined;

-		//     table[(T_void<<4)+T_boolean] 	= T_undefined;

-		//     table[(T_void<<4)+T_char] 		= T_undefined;

-		//     table[(T_void<<4)+T_int] 		= T_undefined;

-		//     table[(T_void<<4)+T_null] 		= T_undefined;

-		

-		//     table[(T_String<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_String<<4)+T_byte] 		= T_undefined;

-		//     table[(T_String<<4)+T_long] 		= T_undefined;

-		//     table[(T_String<<4)+T_short] 		= T_undefined;

-		//     table[(T_String<<4)+T_void] 		= T_undefined;

-		//     table[(T_String<<4)+T_String] 		= T_undefined;

-		//     table[(T_String<<4)+T_Object] 		= T_undefined;

-		//     table[(T_String<<4)+T_double] 		= T_undefined;

-		//     table[(T_String<<4)+T_float] 		= T_undefined;

-		//     table[(T_String<<4)+T_boolean] 		= T_undefined;

-		//     table[(T_String<<4)+T_char] 		= T_undefined;

-		//     table[(T_String<<4)+T_int] 			= T_undefined;

-		//     table[(T_String<<4)+T_null] 		= T_undefined;

-		

-		//     table[(T_Object<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_Object<<4)+T_byte] 		= T_undefined;

-		//     table[(T_Object<<4)+T_long] 		= T_undefined;

-		//     table[(T_Object<<4)+T_short]		= T_undefined;

-		//     table[(T_Object<<4)+T_void] 		= T_undefined;

-		//     table[(T_Object<<4)+T_String] 		= T_undefined;

-		//     table[(T_Object<<4)+T_Object] 		= T_undefined;

-		//     table[(T_Object<<4)+T_double] 		= T_undefined;

-		//     table[(T_Object<<4)+T_float] 		= T_undefined;

-		//     table[(T_Object<<4)+T_boolean]		= T_undefined;

-		//     table[(T_Object<<4)+T_char] 		= T_undefined;

-		//     table[(T_Object<<4)+T_int] 			= T_undefined;

-		//     table[(T_Object<<4)+T_null] 		= T_undefined;

-		

-		//     table[(T_double<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_double<<4)+T_byte] 		= T_undefined;

-		//     table[(T_double<<4)+T_long] 		= T_undefined;

-		//     table[(T_double<<4)+T_short] 		= T_undefined;

-		//     table[(T_double<<4)+T_void] 		= T_undefined;

-		//     table[(T_double<<4)+T_String] 		= T_undefined;

-		//     table[(T_double<<4)+T_Object] 		= T_undefined;

-		//     table[(T_double<<4)+T_double] 		= T_undefined;

-		//     table[(T_double<<4)+T_float] 		= T_undefined;

-		//     table[(T_double<<4)+T_boolean] 		= T_undefined;

-		//     table[(T_double<<4)+T_char] 		= T_undefined;

-		//     table[(T_double<<4)+T_int] 			= T_undefined;

-		//     table[(T_double<<4)+T_null] 		= T_undefined;

-		

-		//     table[(T_float<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_float<<4)+T_byte] 			= T_undefined;

-		//     table[(T_float<<4)+T_long] 			= T_undefined;

-		//     table[(T_float<<4)+T_short] 		= T_undefined;

-		//     table[(T_float<<4)+T_void] 			= T_undefined;

-		//     table[(T_float<<4)+T_String] 		= T_undefined;

-		//     table[(T_float<<4)+T_Object] 		= T_undefined;

-		//     table[(T_float<<4)+T_double] 		= T_undefined;

-		//     table[(T_float<<4)+T_float] 		= T_undefined;

-		//     table[(T_float<<4)+T_boolean] 		= T_undefined;

-		//     table[(T_float<<4)+T_char] 			= T_undefined;

-		//     table[(T_float<<4)+T_int] 			= T_undefined;

-		//     table[(T_float<<4)+T_null] 			= T_undefined;

-		

-		//     table[(T_boolean<<4)+T_undefined] 		= T_undefined;

-		//     table[(T_boolean<<4)+T_byte] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_long] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_short] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_void] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_String] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_Object] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_double] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_float] 			= T_undefined;

-	   table[(T_boolean<<4)+T_boolean] 		= (Boolean2Boolean<<12)+(Boolean2Boolean<<4)+T_boolean;

-		//     table[(T_boolean<<4)+T_char] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_int] 			= T_undefined;

-		//     table[(T_boolean<<4)+T_null] 			= T_undefined;

-			

-		//     table[(T_char<<4)+T_undefined] 		= T_undefined;

-		//     table[(T_char<<4)+T_byte] 			= T_undefined;

-		//     table[(T_char<<4)+T_long] 			= T_undefined;

-		//     table[(T_char<<4)+T_short] 			= T_undefined;

-		//     table[(T_char<<4)+T_void] 			= T_undefined;

-		//     table[(T_char<<4)+T_String] 		= T_undefined;

-		//     table[(T_char<<4)+T_Object] 		= T_undefined;

-		//     table[(T_char<<4)+T_double] 		= T_undefined;

-		//     table[(T_char<<4)+T_float] 			= T_undefined;

-		//     table[(T_char<<4)+T_boolean] 		= T_undefined;

-		//     table[(T_char<<4)+T_char] 			= T_undefined;

-		//     table[(T_char<<4)+T_int] 			= T_undefined;

-		//     table[(T_char<<4)+T_null] 			= T_undefined;

-			

-		//     table[(T_int<<4)+T_undefined] 	= T_undefined;

-		//     table[(T_int<<4)+T_byte] 		= T_undefined;

-		//     table[(T_int<<4)+T_long] 		= T_undefined;

-		//     table[(T_int<<4)+T_short] 		= T_undefined;

-		//     table[(T_int<<4)+T_void] 		= T_undefined;

-		//     table[(T_int<<4)+T_String] 		= T_undefined;

-		//     table[(T_int<<4)+T_Object] 		= T_undefined;

-		//     table[(T_int<<4)+T_double] 		= T_undefined;

-		//     table[(T_int<<4)+T_float] 		= T_undefined;

-		//     table[(T_int<<4)+T_boolean] 	= T_undefined;

-		//     table[(T_int<<4)+T_char] 		= T_undefined;

-		//     table[(T_int<<4)+T_int] 		= T_undefined;

-		//     table[(T_int<<4)+T_null] 		= T_undefined;

-		

-		//     table[(T_null<<4)+T_undefined] 		= T_undefined;

-		//     table[(T_null<<4)+T_byte] 			= T_undefined;

-		//     table[(T_null<<4)+T_long] 			= T_undefined;

-		//     table[(T_null<<4)+T_short] 			= T_undefined;

-		//     table[(T_null<<4)+T_void] 			= T_undefined;

-		//     table[(T_null<<4)+T_String] 		= T_undefined;

-		//     table[(T_null<<4)+T_Object] 		= T_undefined;

-		//     table[(T_null<<4)+T_double] 		= T_undefined;

-		//     table[(T_null<<4)+T_float] 			= T_undefined;

-		//     table[(T_null<<4)+T_boolean] 		= T_undefined;

-		//     table[(T_null<<4)+T_char] 			= T_undefined;

-		//     table[(T_null<<4)+T_int] 			= T_undefined;

-		//     table[(T_null<<4)+T_null] 			= T_undefined;

-		return table;

-	}

-

-	public static final int[] get_DIVIDE(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		

-	//	int[] table  = new int[16*16];

-		

-		return get_MINUS();

-	}

-

-	public static final int[] get_EQUAL_EQUAL(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		int[] table  = new int[16*16];

-		

-		//	table[(T_undefined<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_undefined<<4)+T_byte] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_long] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_short] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_void] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_String] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_Object] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_double] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_float] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_char] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_int] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_byte<<4)+T_undefined] 	= T_undefined;

-		table[(T_byte<<4)+T_byte] 		= (Byte2Int<<12)+(Byte2Int<<4)+T_boolean;

-		table[(T_byte<<4)+T_long] 		= (Byte2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_byte<<4)+T_short] 		= (Byte2Int<<12)+(Short2Int<<4)+T_boolean;

-		//	table[(T_byte<<4)+T_void] 		= T_undefined;

-		//	table[(T_byte<<4)+T_String] 	= T_undefined;

-		//	table[(T_byte<<4)+T_Object] 	= T_undefined;

-		table[(T_byte<<4)+T_double] 	= (Byte2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_byte<<4)+T_float] 		= (Byte2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_byte<<4)+T_boolean] 	= T_undefined;

-		table[(T_byte<<4)+T_char] 		= (Byte2Int<<12)+(Char2Int<<4)+T_boolean;

-		table[(T_byte<<4)+T_int] 		= (Byte2Int<<12)+(Int2Int<<4)+T_boolean;

-		//	table[(T_byte<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_long<<4)+T_undefined] 	= T_undefined;

-		table[(T_long<<4)+T_byte] 		= (Long2Long<<12)+(Byte2Long<<4)+T_boolean;

-		table[(T_long<<4)+T_long] 		= (Long2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_long<<4)+T_short] 		= (Long2Long<<12)+(Short2Long<<4)+T_boolean;

-		//	table[(T_long<<4)+T_void] 		= T_undefined;

-		//	table[(T_long<<4)+T_String] 	= T_undefined;

-		//	table[(T_long<<4)+T_Object] 	= T_undefined;

-		table[(T_long<<4)+T_double] 	= (Long2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_long<<4)+T_float] 		= (Long2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_long<<4)+T_boolean] 	= T_undefined;

-		table[(T_long<<4)+T_char] 		= (Long2Long<<12)+(Char2Long<<4)+T_boolean;

-		table[(T_long<<4)+T_int] 		= (Long2Long<<12)+(Int2Long<<4)+T_boolean;

-		//	table[(T_long<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_short<<4)+T_undefined] 	= T_undefined;

-		table[(T_short<<4)+T_byte] 			= (Short2Int<<12)+(Byte2Int<<4)+T_boolean;

-		table[(T_short<<4)+T_long] 			= (Short2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_short<<4)+T_short] 		= (Short2Int<<12)+(Short2Int<<4)+T_boolean;

-		//	table[(T_short<<4)+T_void] 			= T_undefined;

-		//	table[(T_short<<4)+T_String] 		= T_undefined;

-		//	table[(T_short<<4)+T_Object] 		= T_undefined;

-		table[(T_short<<4)+T_double] 		= (Short2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_short<<4)+T_float] 		= (Short2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_short<<4)+T_boolean] 		= T_undefined;

-		table[(T_short<<4)+T_char] 			= (Short2Int<<12)+(Char2Int<<4)+T_boolean;

-		table[(T_short<<4)+T_int] 			= (Short2Int<<12)+(Int2Int<<4)+T_boolean;

-		//	table[(T_short<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_void<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_void<<4)+T_byte] 		= T_undefined;

-		//	table[(T_void<<4)+T_long] 		= T_undefined;

-		//	table[(T_void<<4)+T_short] 		= T_undefined;

-		//	table[(T_void<<4)+T_void] 		= T_undefined;

-		//	table[(T_void<<4)+T_String] 	= T_undefined;

-		//	table[(T_void<<4)+T_Object] 	= T_undefined;

-		//	table[(T_void<<4)+T_double] 	= T_undefined;

-		//	table[(T_void<<4)+T_float] 		= T_undefined;

-		//	table[(T_void<<4)+T_boolean] 	= T_undefined;

-		//	table[(T_void<<4)+T_char] 		= T_undefined;

-		//	table[(T_void<<4)+T_int] 		= T_undefined;

-		//	table[(T_void<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_String<<4)+T_undefined] 	= T_undefined; 

-		//	table[(T_String<<4)+T_byte] 		= T_undefined;

-		//	table[(T_String<<4)+T_long] 		= T_undefined; 

-		//	table[(T_String<<4)+T_short] 		= T_undefined;

-		//	table[(T_String<<4)+T_void] 		= T_undefined;

-		table[(T_String<<4)+T_String] 		= /*String2Object                 String2Object*/

-											  (T_Object<<16)+(T_String<<12)+(T_Object<<8)+(T_String<<4)+T_boolean;

-		table[(T_String<<4)+T_Object] 		= /*String2Object                 Object2Object*/

-											  (T_Object<<16)+(T_String<<12)+(T_Object<<8)+(T_Object<<4)+T_boolean;

-		//	table[(T_String<<4)+T_double] 		= T_undefined;

-		//	table[(T_String<<4)+T_float] 		= T_undefined; 

-		//	table[(T_String<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_String<<4)+T_char] 		= T_undefined;

-		//	table[(T_String<<4)+T_int] 			= T_undefined;

-		table[(T_String<<4)+T_null] 		= /*Object2String                null2Object */

-											  (T_Object<<16)+(T_String<<12)+(T_Object<<8)+(T_null<<4)+T_boolean;

-	

-		//	table[(T_Object<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_Object<<4)+T_byte] 		= T_undefined;

-		//	table[(T_Object<<4)+T_long] 		= T_undefined;

-		//	table[(T_Object<<4)+T_short]		= T_undefined;

-		//	table[(T_Object<<4)+T_void] 		= T_undefined;

-		table[(T_Object<<4)+T_String] 		= /*Object2Object                 String2Object*/

-											  (T_Object<<16)+(T_Object<<12)+(T_Object<<8)+(T_String<<4)+T_boolean;

-		table[(T_Object<<4)+T_Object] 		= /*Object2Object                 Object2Object*/

-											  (T_Object<<16)+(T_Object<<12)+(T_Object<<8)+(T_Object<<4)+T_boolean;

-		//	table[(T_Object<<4)+T_double] 		= T_undefined;

-		//	table[(T_Object<<4)+T_float] 		= T_undefined;

-		//	table[(T_Object<<4)+T_boolean]		= T_undefined;

-		//	table[(T_Object<<4)+T_char] 		= T_undefined;

-		//	table[(T_Object<<4)+T_int] 			= T_undefined;

-		table[(T_Object<<4)+T_null] 		= /*Object2Object                 null2Object*/

-											  (T_Object<<16)+(T_Object<<12)+(T_Object<<8)+(T_null<<4)+T_boolean;

-	

-		//	table[(T_double<<4)+T_undefined] 	= T_undefined;

-		table[(T_double<<4)+T_byte] 		= (Double2Double<<12)+(Byte2Double<<4)+T_boolean;

-		table[(T_double<<4)+T_long] 		= (Double2Double<<12)+(Long2Double<<4)+T_boolean;

-		table[(T_double<<4)+T_short] 		= (Double2Double<<12)+(Short2Double<<4)+T_boolean;

-		//	table[(T_double<<4)+T_void] 		= T_undefined;

-		//	table[(T_double<<4)+T_String] 		= T_undefined;

-		//	table[(T_double<<4)+T_Object] 		= T_undefined;

-		table[(T_double<<4)+T_double] 		= (Double2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_double<<4)+T_float] 		= (Double2Double<<12)+(Float2Double<<4)+T_boolean;

-		//	table[(T_double<<4)+T_boolean] 		= T_undefined;

-		table[(T_double<<4)+T_char] 		= (Double2Double<<12)+(Char2Double<<4)+T_boolean;

-		table[(T_double<<4)+T_int] 			= (Double2Double<<12)+(Int2Double<<4)+T_boolean;

-		//	table[(T_double<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_float<<4)+T_undefined] 	= T_undefined;

-		table[(T_float<<4)+T_byte] 			= (Float2Float<<12)+(Byte2Float<<4)+T_boolean;

-		table[(T_float<<4)+T_long] 			= (Float2Float<<12)+(Long2Float<<4)+T_boolean;

-		table[(T_float<<4)+T_short] 		= (Float2Float<<12)+(Short2Float<<4)+T_boolean;

-		//	table[(T_float<<4)+T_void] 			= T_undefined;

-		//	table[(T_float<<4)+T_String] 		= T_undefined;

-		//	table[(T_float<<4)+T_Object] 		= T_undefined;

-		table[(T_float<<4)+T_double] 		= (Float2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_float<<4)+T_float] 		= (Float2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_float<<4)+T_boolean] 		= T_undefined;

-		table[(T_float<<4)+T_char] 			= (Float2Float<<12)+(Char2Float<<4)+T_boolean;

-		table[(T_float<<4)+T_int] 			= (Float2Float<<12)+(Int2Float<<4)+T_boolean;

-		//	table[(T_float<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_boolean<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_boolean<<4)+T_byte] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_long] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_short] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_void] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_String] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_Object] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_double] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_float] 			= T_undefined;

-		table[(T_boolean<<4)+T_boolean] 		= (Boolean2Boolean<<12)+(Boolean2Boolean<<4)+T_boolean;

-		//	table[(T_boolean<<4)+T_char] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_int] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_null] 			= T_undefined;

-			

-		//	table[(T_char<<4)+T_undefined] 		= T_undefined;

-		table[(T_char<<4)+T_byte] 			= (Char2Int<<12)+(Byte2Int<<4)+T_boolean;

-		table[(T_char<<4)+T_long] 			= (Char2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_char<<4)+T_short] 			= (Char2Int<<12)+(Short2Int<<4)+T_boolean;

-		//	table[(T_char<<4)+T_void] 			= T_undefined;

-		//	table[(T_char<<4)+T_String] 		= T_undefined;

-		//	table[(T_char<<4)+T_Object] 		= T_undefined;

-		table[(T_char<<4)+T_double] 		= (Char2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_char<<4)+T_float] 			= (Char2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_char<<4)+T_boolean] 		= T_undefined;

-		table[(T_char<<4)+T_char] 			= (Char2Int<<12)+(Char2Int<<4)+T_boolean;

-		table[(T_char<<4)+T_int] 			= (Char2Int<<12)+(Int2Int<<4)+T_boolean;

-		//	table[(T_char<<4)+T_null] 			= T_undefined;

-			

-		//	table[(T_int<<4)+T_undefined] 	= T_undefined;

-		table[(T_int<<4)+T_byte] 		= (Int2Int<<12)+(Byte2Int<<4)+T_boolean;

-		table[(T_int<<4)+T_long] 		= (Int2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_int<<4)+T_short] 		= (Int2Int<<12)+(Short2Int<<4)+T_boolean;

-		//	table[(T_int<<4)+T_void] 		= T_undefined;

-		//	table[(T_int<<4)+T_String] 		= T_undefined;

-		//	table[(T_int<<4)+T_Object] 		= T_undefined;

-		table[(T_int<<4)+T_double] 		= (Int2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_int<<4)+T_float] 		= (Int2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_int<<4)+T_boolean] 	= T_undefined;

-		table[(T_int<<4)+T_char] 		= (Int2Int<<12)+(Char2Int<<4)+T_boolean;

-		table[(T_int<<4)+T_int] 		= (Int2Int<<12)+(Int2Int<<4)+T_boolean;

-		//	table[(T_int<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_null<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_null<<4)+T_byte] 			= T_undefined;

-		//	table[(T_null<<4)+T_long] 			= T_undefined;

-		//	table[(T_null<<4)+T_short] 			= T_undefined;

-		//	table[(T_null<<4)+T_void] 			= T_undefined;

-		table[(T_null<<4)+T_String] 		= /*null2Object                 String2Object*/

-											  (T_Object<<16)+(T_null<<12)+(T_Object<<8)+(T_String<<4)+T_boolean;

-		table[(T_null<<4)+T_Object] 		= /*null2Object                 Object2Object*/

-											  (T_Object<<16)+(T_null<<12)+(T_Object<<8)+(T_Object<<4)+T_boolean; 

-		//	table[(T_null<<4)+T_double] 		= T_undefined;

-		//	table[(T_null<<4)+T_float] 			= T_undefined;

-		//	table[(T_null<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_null<<4)+T_char] 			= T_undefined;

-		//	table[(T_null<<4)+T_int] 			= T_undefined;

-		table[(T_null<<4)+T_null] 			= /*null2Object                 null2Object*/

-											  (T_Object<<16)+(T_null<<12)+(T_Object<<8)+(T_null<<4)+T_boolean;

-		return table;

-	}

-

-	public static final int[] get_GREATER(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		//	int[] table  = new int[16*16];

-		return get_LESS();

-	}

-

-	public static final int[] get_GREATER_EQUAL(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		//	int[] table  = new int[16*16];

-		return get_LESS();

-	}

-

-	public static final int[] get_LEFT_SHIFT(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		int[] table  = new int[16*16];

-		

-		//	table[(T_undefined<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_undefined<<4)+T_byte] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_long] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_short] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_void] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_String] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_Object] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_double] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_float] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_char] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_int] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_null] 			= T_undefined;

-			

-		//	table[(T_byte<<4)+T_undefined] 	= T_undefined;

-		table[(T_byte<<4)+T_byte] 		= (Byte2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_byte<<4)+T_long] 		= (Byte2Int<<12)+(Long2Int<<4)+T_int;

-		table[(T_byte<<4)+T_short] 		= (Byte2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_byte<<4)+T_void] 		= T_undefined;

-		//	table[(T_byte<<4)+T_String] 	= T_undefined;

-		//	table[(T_byte<<4)+T_Object] 	= T_undefined;

-		//	table[(T_byte<<4)+T_double] 	= T_undefined;

-		//	table[(T_byte<<4)+T_float] 		= T_undefined;

-		//	table[(T_byte<<4)+T_boolean] 	= T_undefined;

-		table[(T_byte<<4)+T_char] 		= (Byte2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_byte<<4)+T_int] 		= (Byte2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_byte<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_long<<4)+T_undefined] 	= T_undefined;

-		table[(T_long<<4)+T_byte] 		= (Long2Long<<12)+(Byte2Int<<4)+T_long;

-		table[(T_long<<4)+T_long] 		= (Long2Long<<12)+(Long2Int<<4)+T_long;

-		table[(T_long<<4)+T_short] 		= (Long2Long<<12)+(Short2Int<<4)+T_long;

-		//	table[(T_long<<4)+T_void] 		= T_undefined;

-		//	table[(T_long<<4)+T_String] 	= T_undefined;

-		//	table[(T_long<<4)+T_Object] 	= T_undefined;

-		//	table[(T_long<<4)+T_double] 	= T_undefined;

-		//	table[(T_long<<4)+T_float] 		= T_undefined;

-		//	table[(T_long<<4)+T_boolean] 	= T_undefined;

-		table[(T_long<<4)+T_char] 		= (Long2Long<<12)+(Char2Int<<4)+T_long;

-		table[(T_long<<4)+T_int] 		= (Long2Long<<12)+(Int2Int<<4)+T_long;

-		//	table[(T_long<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_short<<4)+T_undefined] 	= T_undefined;

-		table[(T_short<<4)+T_byte] 			= (Short2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_short<<4)+T_long] 			= (Short2Int<<12)+(Long2Int<<4)+T_int;

-		table[(T_short<<4)+T_short] 		= (Short2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_short<<4)+T_void] 			= T_undefined;

-		//	table[(T_short<<4)+T_String] 		= T_undefined;

-		//	table[(T_short<<4)+T_Object] 		= T_undefined;

-		//	table[(T_short<<4)+T_double] 		= T_undefined;

-		//	table[(T_short<<4)+T_float] 		= T_undefined;

-		//	table[(T_short<<4)+T_boolean] 		= T_undefined;

-		table[(T_short<<4)+T_char] 			= (Short2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_short<<4)+T_int] 			= (Short2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_short<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_void<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_void<<4)+T_byte] 		= T_undefined;

-		//	table[(T_void<<4)+T_long] 		= T_undefined;

-		//	table[(T_void<<4)+T_short] 		= T_undefined;

-		//	table[(T_void<<4)+T_void] 		= T_undefined;

-		//	table[(T_void<<4)+T_String] 	= T_undefined;

-		//	table[(T_void<<4)+T_Object] 	= T_undefined;

-		//	table[(T_void<<4)+T_double] 	= T_undefined;

-		//	table[(T_void<<4)+T_float] 		= T_undefined;

-		//	table[(T_void<<4)+T_boolean] 	= T_undefined;

-		//	table[(T_void<<4)+T_char] 		= T_undefined;

-		//	table[(T_void<<4)+T_int] 		= T_undefined;

-		//	table[(T_void<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_String<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_String<<4)+T_byte] 		= T_undefined;

-		//	table[(T_String<<4)+T_long] 		= T_undefined;

-		//	table[(T_String<<4)+T_short] 		= T_undefined;

-		//	table[(T_String<<4)+T_void] 		= T_undefined;

-		//	table[(T_String<<4)+T_String] 		= T_undefined;

-		//	table[(T_String<<4)+T_Object] 		= T_undefined;

-		//	table[(T_String<<4)+T_double] 		= T_undefined;

-		//	table[(T_String<<4)+T_float] 		= T_undefined;

-		//	table[(T_String<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_String<<4)+T_char] 		= T_undefined;

-		//	table[(T_String<<4)+T_int] 			= T_undefined;

-		//	table[(T_String<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_Object<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_Object<<4)+T_byte] 		= T_undefined;

-		//	table[(T_Object<<4)+T_long] 		= T_undefined;

-		//	table[(T_Object<<4)+T_short]		= T_undefined;

-		//	table[(T_Object<<4)+T_void] 		= T_undefined;

-		//	table[(T_Object<<4)+T_String] 		= T_undefined;

-		//	table[(T_Object<<4)+T_Object] 		= T_undefined;

-		//	table[(T_Object<<4)+T_double] 		= T_undefined;

-		//	table[(T_Object<<4)+T_float] 		= T_undefined;

-		//	table[(T_Object<<4)+T_boolean]		= T_undefined;

-		//	table[(T_Object<<4)+T_char] 		= T_undefined;

-		//	table[(T_Object<<4)+T_int] 			= T_undefined;

-		//	table[(T_Object<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_double<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_double<<4)+T_byte] 		= T_undefined;

-		//	table[(T_double<<4)+T_long] 		= T_undefined;

-		//	table[(T_double<<4)+T_short] 		= T_undefined;

-		//	table[(T_double<<4)+T_void] 		= T_undefined;

-		//	table[(T_double<<4)+T_String] 		= T_undefined;

-		//	table[(T_double<<4)+T_Object] 		= T_undefined;

-		//	table[(T_double<<4)+T_double] 		= T_undefined;

-		//	table[(T_double<<4)+T_float] 		= T_undefined;

-		//	table[(T_double<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_double<<4)+T_char] 		= T_undefined;

-		//	table[(T_double<<4)+T_int] 			= T_undefined;

-		//	table[(T_double<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_float<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_float<<4)+T_byte] 			= T_undefined;

-		//	table[(T_float<<4)+T_long] 			= T_undefined;

-		//	table[(T_float<<4)+T_short] 		= T_undefined;

-		//	table[(T_float<<4)+T_void] 			= T_undefined;

-		//	table[(T_float<<4)+T_String] 		= T_undefined;

-		//	table[(T_float<<4)+T_Object] 		= T_undefined;

-		//	table[(T_float<<4)+T_double] 		= T_undefined;

-		//	table[(T_float<<4)+T_float] 		= T_undefined;

-		//	table[(T_float<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_float<<4)+T_char] 			= T_undefined;

-		//	table[(T_float<<4)+T_int] 			= T_undefined;

-		//	table[(T_float<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_boolean<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_boolean<<4)+T_byte] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_long] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_short] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_void] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_String] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_Object] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_double] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_float] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_boolean<<4)+T_char] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_int] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_null] 			= T_undefined;

-			

-		//	table[(T_char<<4)+T_undefined] 		= T_undefined;

-		table[(T_char<<4)+T_byte] 			= (Char2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_char<<4)+T_long] 			= (Char2Int<<12)+(Long2Int<<4)+T_int;

-		table[(T_char<<4)+T_short] 			= (Char2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_char<<4)+T_void] 			= T_undefined;

-		//	table[(T_char<<4)+T_String] 		= T_undefined;

-		//	table[(T_char<<4)+T_Object] 		= T_undefined;

-		//	table[(T_char<<4)+T_double] 		= T_undefined;

-		//	table[(T_char<<4)+T_float] 			= T_undefined;

-		//	table[(T_char<<4)+T_boolean] 		= T_undefined;

-		table[(T_char<<4)+T_char] 			= (Char2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_char<<4)+T_int] 			= (Char2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_char<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_int<<4)+T_undefined] 	= T_undefined;

-		table[(T_int<<4)+T_byte] 		= (Int2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_int<<4)+T_long] 		= (Int2Int<<12)+(Long2Int<<4)+T_int;

-		table[(T_int<<4)+T_short] 		= (Int2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_int<<4)+T_void] 		= T_undefined;

-		//	table[(T_int<<4)+T_String] 		= T_undefined;

-		//	table[(T_int<<4)+T_Object] 		= T_undefined;

-		//	table[(T_int<<4)+T_double] 		= T_undefined;

-		//	table[(T_int<<4)+T_float] 		= T_undefined;

-		//	table[(T_int<<4)+T_boolean] 	= T_undefined;

-		table[(T_int<<4)+T_char] 		= (Int2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_int<<4)+T_int] 		= (Int2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_int<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_null<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_null<<4)+T_byte] 			= T_undefined;

-		//	table[(T_null<<4)+T_long] 			= T_undefined;

-		//	table[(T_null<<4)+T_short] 			= T_undefined;

-		//	table[(T_null<<4)+T_void] 			= T_undefined;

-		//	table[(T_null<<4)+T_String] 		= T_undefined;

-		//	table[(T_null<<4)+T_Object] 		= T_undefined;

-		//	table[(T_null<<4)+T_double] 		= T_undefined;

-		//	table[(T_null<<4)+T_float] 			= T_undefined;

-		//	table[(T_null<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_null<<4)+T_char] 			= T_undefined;

-		//	table[(T_null<<4)+T_int] 			= T_undefined;

-		//	table[(T_null<<4)+T_null] 			= T_undefined;

-	

-		return table;

-	}

-

-	public static final int[] get_LESS(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		int[] table  = new int[16*16];

-		

-		//	table[(T_undefined<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_undefined<<4)+T_byte] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_long] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_short] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_void] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_String] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_Object] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_double] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_float] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_char] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_int] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_byte<<4)+T_undefined] 	= T_undefined;

-		table[(T_byte<<4)+T_byte] 		= (Byte2Int<<12)+(Byte2Int<<4)+T_boolean;

-		table[(T_byte<<4)+T_long] 		= (Byte2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_byte<<4)+T_short] 		= (Byte2Int<<12)+(Short2Int<<4)+T_boolean;

-		//	table[(T_byte<<4)+T_void] 		= T_undefined;

-		//	table[(T_byte<<4)+T_String] 	= T_undefined;

-		//	table[(T_byte<<4)+T_Object] 	= T_undefined;

-		table[(T_byte<<4)+T_double] 	= (Byte2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_byte<<4)+T_float] 		= (Byte2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_byte<<4)+T_boolean] 	= T_undefined;

-		table[(T_byte<<4)+T_char] 		= (Byte2Int<<12)+(Char2Int<<4)+T_boolean;

-		table[(T_byte<<4)+T_int] 		= (Byte2Int<<12)+(Int2Int<<4)+T_boolean;

-		//	table[(T_byte<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_long<<4)+T_undefined] 	= T_undefined;

-		table[(T_long<<4)+T_byte] 		= (Long2Long<<12)+(Byte2Long<<4)+T_boolean;

-		table[(T_long<<4)+T_long] 		= (Long2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_long<<4)+T_short] 		= (Long2Long<<12)+(Short2Long<<4)+T_boolean;

-		//	table[(T_long<<4)+T_void] 		= T_undefined;

-		//	table[(T_long<<4)+T_String] 	= T_undefined;

-		//	table[(T_long<<4)+T_Object] 	= T_undefined;

-		table[(T_long<<4)+T_double] 	= (Long2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_long<<4)+T_float] 		= (Long2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_long<<4)+T_boolean] 	= T_undefined;

-		table[(T_long<<4)+T_char] 		= (Long2Long<<12)+(Char2Long<<4)+T_boolean;

-		table[(T_long<<4)+T_int] 		= (Long2Long<<12)+(Int2Long<<4)+T_boolean;

-		//	table[(T_long<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_short<<4)+T_undefined] 	= T_undefined;

-		table[(T_short<<4)+T_byte] 			= (Short2Int<<12)+(Byte2Int<<4)+T_boolean;

-		table[(T_short<<4)+T_long] 			= (Short2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_short<<4)+T_short] 		= (Short2Int<<12)+(Short2Int<<4)+T_boolean;

-		//	table[(T_short<<4)+T_void] 			= T_undefined;

-		//	table[(T_short<<4)+T_String] 		= T_undefined;

-		//	table[(T_short<<4)+T_Object] 		= T_undefined;

-		table[(T_short<<4)+T_double] 		= (Short2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_short<<4)+T_float] 		= (Short2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_short<<4)+T_boolean] 		= T_undefined;

-		table[(T_short<<4)+T_char] 			= (Short2Int<<12)+(Char2Int<<4)+T_boolean;

-		table[(T_short<<4)+T_int] 			= (Short2Int<<12)+(Int2Int<<4)+T_boolean;

-		//	table[(T_short<<4)+T_null] 			= T_undefined;

-	

-		//	table[(T_void<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_void<<4)+T_byte] 		= T_undefined;

-		//	table[(T_void<<4)+T_long] 		= T_undefined;

-		//	table[(T_void<<4)+T_short] 		= T_undefined;

-		//	table[(T_void<<4)+T_void] 		= T_undefined;

-		//	table[(T_void<<4)+T_String] 	= T_undefined;

-		//	table[(T_void<<4)+T_Object] 	= T_undefined;

-		//	table[(T_void<<4)+T_double] 	= T_undefined;

-		//	table[(T_void<<4)+T_float] 		= T_undefined;

-		//	table[(T_void<<4)+T_boolean] 	= T_undefined;

-		//	table[(T_void<<4)+T_char] 		= T_undefined;

-		//	table[(T_void<<4)+T_int] 		= T_undefined;

-		//	table[(T_void<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_String<<4)+T_undefined] 	= T_undefined; 

-		//	table[(T_String<<4)+T_byte] 		= T_undefined;

-		//	table[(T_String<<4)+T_long] 		= T_undefined; 

-		//	table[(T_String<<4)+T_short] 		= T_undefined;

-		//	table[(T_String<<4)+T_void] 		= T_undefined;

-		//	table[(T_String<<4)+T_String] 		= T_undefined;

-		//	table[(T_String<<4)+T_Object] 		= T_undefined;

-		//	table[(T_String<<4)+T_double] 		= T_undefined;

-		//	table[(T_String<<4)+T_float] 		= T_undefined; 

-		//	table[(T_String<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_String<<4)+T_char] 		= T_undefined;

-		//	table[(T_String<<4)+T_int] 			= T_undefined;

-		//	table[(T_String<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_Object<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_Object<<4)+T_byte] 		= T_undefined;

-		//	table[(T_Object<<4)+T_long] 		= T_undefined;

-		//	table[(T_Object<<4)+T_short]		= T_undefined;

-		//	table[(T_Object<<4)+T_void] 		= T_undefined;

-		//	table[(T_Object<<4)+T_String] 		= T_undefined;

-		//	table[(T_Object<<4)+T_Object] 		= T_undefined;

-		//	table[(T_Object<<4)+T_double] 		= T_undefined;

-		//	table[(T_Object<<4)+T_float] 		= T_undefined;

-		//	table[(T_Object<<4)+T_boolean]		= T_undefined;

-		//	table[(T_Object<<4)+T_char] 		= T_undefined;

-		//	table[(T_Object<<4)+T_int] 			= T_undefined;

-		//	table[(T_Object<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_double<<4)+T_undefined] 	= T_undefined;

-		table[(T_double<<4)+T_byte] 		= (Double2Double<<12)+(Byte2Double<<4)+T_boolean;

-		table[(T_double<<4)+T_long] 		= (Double2Double<<12)+(Long2Double<<4)+T_boolean;

-		table[(T_double<<4)+T_short] 		= (Double2Double<<12)+(Short2Double<<4)+T_boolean;

-		//	table[(T_double<<4)+T_void] 		= T_undefined;

-		//	table[(T_double<<4)+T_String] 		= T_undefined;

-		//	table[(T_double<<4)+T_Object] 		= T_undefined;

-		table[(T_double<<4)+T_double] 		= (Double2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_double<<4)+T_float] 		= (Double2Double<<12)+(Float2Double<<4)+T_boolean;

-		//	table[(T_double<<4)+T_boolean] 		= T_undefined;

-		table[(T_double<<4)+T_char] 		= (Double2Double<<12)+(Char2Double<<4)+T_boolean;

-		table[(T_double<<4)+T_int] 			= (Double2Double<<12)+(Int2Double<<4)+T_boolean;

-		//	table[(T_double<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_float<<4)+T_undefined] 	= T_undefined;

-		table[(T_float<<4)+T_byte] 			= (Float2Float<<12)+(Byte2Float<<4)+T_boolean;

-		table[(T_float<<4)+T_long] 			= (Float2Float<<12)+(Long2Float<<4)+T_boolean;

-		table[(T_float<<4)+T_short] 		= (Float2Float<<12)+(Short2Float<<4)+T_boolean;

-		//	table[(T_float<<4)+T_void] 			= T_undefined;

-		//	table[(T_float<<4)+T_String] 		= T_undefined;

-		//	table[(T_float<<4)+T_Object] 		= T_undefined;

-		table[(T_float<<4)+T_double] 		= (Float2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_float<<4)+T_float] 		= (Float2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_float<<4)+T_boolean] 		= T_undefined;

-		table[(T_float<<4)+T_char] 			= (Float2Float<<12)+(Char2Float<<4)+T_boolean;

-		table[(T_float<<4)+T_int] 			= (Float2Float<<12)+(Int2Float<<4)+T_boolean;

-		//	table[(T_float<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_boolean<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_boolean<<4)+T_byte] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_long] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_short] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_void] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_String] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_Object] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_double] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_float] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_boolean<<4)+T_char] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_int] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_null] 			= T_undefined;

-			

-		//	table[(T_char<<4)+T_undefined] 		= T_undefined;

-		table[(T_char<<4)+T_byte] 			= (Char2Int<<12)+(Byte2Int<<4)+T_boolean;

-		table[(T_char<<4)+T_long] 			= (Char2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_char<<4)+T_short] 			= (Char2Int<<12)+(Short2Int<<4)+T_boolean;

-		//	table[(T_char<<4)+T_void] 			= T_undefined;

-		//	table[(T_char<<4)+T_String] 		= T_undefined;

-		//	table[(T_char<<4)+T_Object] 		= T_undefined;

-		table[(T_char<<4)+T_double] 		= (Char2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_char<<4)+T_float] 			= (Char2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_char<<4)+T_boolean] 		= T_undefined;

-		table[(T_char<<4)+T_char] 			= (Char2Int<<12)+(Char2Int<<4)+T_boolean;

-		table[(T_char<<4)+T_int] 			= (Char2Int<<12)+(Int2Int<<4)+T_boolean;

-		//	table[(T_char<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_int<<4)+T_undefined] 	= T_undefined;

-		table[(T_int<<4)+T_byte] 		= (Int2Int<<12)+(Byte2Int<<4)+T_boolean;

-		table[(T_int<<4)+T_long] 		= (Int2Long<<12)+(Long2Long<<4)+T_boolean;

-		table[(T_int<<4)+T_short] 		= (Int2Int<<12)+(Short2Int<<4)+T_boolean;

-		//	table[(T_int<<4)+T_void] 		= T_undefined;

-		//	table[(T_int<<4)+T_String] 		= T_undefined;

-		//	table[(T_int<<4)+T_Object] 		= T_undefined;

-		table[(T_int<<4)+T_double] 		= (Int2Double<<12)+(Double2Double<<4)+T_boolean;

-		table[(T_int<<4)+T_float] 		= (Int2Float<<12)+(Float2Float<<4)+T_boolean;

-		//	table[(T_int<<4)+T_boolean] 	= T_undefined;

-		table[(T_int<<4)+T_char] 		= (Int2Int<<12)+(Char2Int<<4)+T_boolean;

-		table[(T_int<<4)+T_int] 		= (Int2Int<<12)+(Int2Int<<4)+T_boolean;

-		//	table[(T_int<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_null<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_null<<4)+T_byte] 			= T_undefined;

-		//	table[(T_null<<4)+T_long] 			= T_undefined;

-		//	table[(T_null<<4)+T_short] 			= T_undefined;

-		//	table[(T_null<<4)+T_void] 			= T_undefined;

-		//	table[(T_null<<4)+T_String] 		= T_undefined;

-		//	table[(T_null<<4)+T_Object] 		= T_undefined;

-		//	table[(T_null<<4)+T_double] 		= T_undefined;

-		//	table[(T_null<<4)+T_float] 			= T_undefined;

-		//	table[(T_null<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_null<<4)+T_char] 			= T_undefined;

-		//	table[(T_null<<4)+T_int] 			= T_undefined;

-		//	table[(T_null<<4)+T_null] 			= T_undefined;

-	

-		return table;

-	}

-

-	public static final int[] get_LESS_EQUAL(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		//	int[] table  = new int[16*16];

-		return get_LESS();

-	}

-

-	public static final int[] get_MINUS(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		int[] table  = new int[16*16];

-	

-		table = (int[]) get_PLUS().clone();

-

-		// customization	

-		table[(T_String<<4)+T_byte] 		= T_undefined;

-		table[(T_String<<4)+T_long] 		= T_undefined;

-		table[(T_String<<4)+T_short] 		= T_undefined;

-		table[(T_String<<4)+T_void] 		= T_undefined;

-		table[(T_String<<4)+T_String] 		= T_undefined;

-		table[(T_String<<4)+T_Object] 		= T_undefined;

-		table[(T_String<<4)+T_double] 		= T_undefined;

-		table[(T_String<<4)+T_float] 		= T_undefined;

-		table[(T_String<<4)+T_boolean] 		= T_undefined;

-		table[(T_String<<4)+T_char] 		= T_undefined;

-		table[(T_String<<4)+T_int] 			= T_undefined;

-		table[(T_String<<4)+T_null] 		= T_undefined;

-		

-		table[(T_byte<<4)	+T_String] 		= T_undefined;

-		table[(T_long<<4)	+T_String] 		= T_undefined;

-		table[(T_short<<4)	+T_String] 		= T_undefined;

-		table[(T_void<<4)	+T_String] 		= T_undefined;

-		table[(T_Object<<4)	+T_String] 		= T_undefined;

-		table[(T_double<<4)	+T_String] 		= T_undefined;

-		table[(T_float<<4)	+T_String] 		= T_undefined;

-		table[(T_boolean<<4)+T_String] 		= T_undefined;

-		table[(T_char<<4)	+T_String] 		= T_undefined;

-		table[(T_int<<4)	+T_String] 		= T_undefined;

-		table[(T_null<<4)	+T_String] 		= T_undefined;

-		

-		table[(T_null<<4)	+T_null] 		= T_undefined;

-	

-		return table;

-	}

-

-	public static final int[] get_MULTIPLY(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		//	int[] table  = new int[16*16];

-		return get_MINUS();

-	}

-

-	public static final int[] get_OR(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		

-		//	int[] table  = new int[16*16];

-		return get_AND();

-	}

-

-	public static final int[] get_OR_OR(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		//	int[] table  = new int[16*16];

-		return get_AND_AND();

-	}

-

-	public static final int[] get_PLUS(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		int[] table  = new int[16*16];

-		

-		//	table[(T_undefined<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_undefined<<4)+T_byte] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_long] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_short] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_void] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_String] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_Object] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_double] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_float] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_undefined<<4)+T_char] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_int] 			= T_undefined;

-		//	table[(T_undefined<<4)+T_null] 			= T_undefined;

-			

-		//	table[(T_byte<<4)+T_undefined] 	= T_undefined;

-		table[(T_byte<<4)+T_byte] 		= (Byte2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_byte<<4)+T_long] 		= (Byte2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_byte<<4)+T_short] 		= (Byte2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_byte<<4)+T_void] 		= T_undefined;

-		table[(T_byte<<4)+T_String] 	= (Byte2Byte<<12)+(String2String<<4)+T_String;

-		//	table[(T_byte<<4)+T_Object] 	= T_undefined;

-		table[(T_byte<<4)+T_double] 	= (Byte2Double<<12)+(Double2Double<<4)+T_double;

-		table[(T_byte<<4)+T_float] 		= (Byte2Float<<12)+(Float2Float<<4)+T_float;

-		//	table[(T_byte<<4)+T_boolean] 	= T_undefined;

-		table[(T_byte<<4)+T_char] 		= (Byte2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_byte<<4)+T_int] 		= (Byte2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_byte<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_long<<4)+T_undefined] 	= T_undefined;

-		table[(T_long<<4)+T_byte] 		= (Long2Long<<12)+(Byte2Long<<4)+T_long;

-		table[(T_long<<4)+T_long] 		= (Long2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_long<<4)+T_short] 		= (Long2Long<<12)+(Short2Long<<4)+T_long;

-		//	table[(T_long<<4)+T_void] 		= T_undefined;

-		table[(T_long<<4)+T_String] 	= (Long2Long<<12)+(String2String<<4)+T_String;

-		//	table[(T_long<<4)+T_Object] 	= T_undefined;

-		table[(T_long<<4)+T_double] 	= (Long2Double<<12)+(Double2Double<<4)+T_double;

-		table[(T_long<<4)+T_float] 		= (Long2Float<<12)+(Float2Float<<4)+T_float;

-		//	table[(T_long<<4)+T_boolean] 	= T_undefined;

-		table[(T_long<<4)+T_char] 		= (Long2Long<<12)+(Char2Long<<4)+T_long;

-		table[(T_long<<4)+T_int] 		= (Long2Long<<12)+(Int2Long<<4)+T_long; 

-		//	table[(T_long<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_short<<4)+T_undefined] 	= T_undefined;

-		table[(T_short<<4)+T_byte] 			= (Short2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_short<<4)+T_long] 			= (Short2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_short<<4)+T_short] 		= (Short2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_short<<4)+T_void] 			= T_undefined;

-		table[(T_short<<4)+T_String] 		= (Short2Short<<12)+(String2String<<4)+T_String;

-		//	table[(T_short<<4)+T_Object] 		= T_undefined;

-		table[(T_short<<4)+T_double] 		= (Short2Double<<12)+(Double2Double<<4)+T_double;

-		table[(T_short<<4)+T_float] 		= (Short2Float<<12)+(Float2Float<<4)+T_float;

-		//	table[(T_short<<4)+T_boolean] 		= T_undefined;

-		table[(T_short<<4)+T_char] 			= (Short2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_short<<4)+T_int] 			= (Short2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_short<<4)+T_null] 			= T_undefined;

-	

-		//	table[(T_void<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_void<<4)+T_byte] 		= T_undefined;

-		//	table[(T_void<<4)+T_long] 		= T_undefined;

-		//	table[(T_void<<4)+T_short] 		= T_undefined;

-		//	table[(T_void<<4)+T_void] 		= T_undefined;

-		//	table[(T_void<<4)+T_String] 	= T_undefined;

-		//	table[(T_void<<4)+T_Object] 	= T_undefined;

-		//	table[(T_void<<4)+T_double] 	= T_undefined;

-		//	table[(T_void<<4)+T_float] 		= T_undefined;

-		//	table[(T_void<<4)+T_boolean] 	= T_undefined;

-		//	table[(T_void<<4)+T_char] 		= T_undefined;

-		//	table[(T_void<<4)+T_int] 		= T_undefined;

-		//	table[(T_void<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_String<<4)+T_undefined] 	= T_undefined; 

-		table[(T_String<<4)+T_byte] 		= (String2String<<12)+(Byte2Byte<<4)+T_String;

-		table[(T_String<<4)+T_long] 		= (String2String<<12)+(Long2Long<<4)+T_String; 

-		table[(T_String<<4)+T_short] 		= (String2String<<12)+(Short2Short<<4)+T_String;

-		//	table[(T_String<<4)+T_void] 		= T_undefined;

-		table[(T_String<<4)+T_String] 		= (String2String<<12)+(String2String<<4)+T_String;

-		table[(T_String<<4)+T_Object] 		= (String2String<<12)+(Object2Object<<4)+T_String;

-		table[(T_String<<4)+T_double] 		= (String2String<<12)+(Double2Double<<4)+T_String;

-		table[(T_String<<4)+T_float] 		= (String2String<<12)+(Float2Float<<4)+T_String; 

-		table[(T_String<<4)+T_boolean] 		= (String2String<<12)+(Boolean2Boolean<<4)+T_String;

-		table[(T_String<<4)+T_char] 		= (String2String<<12)+(Char2Char<<4)+T_String;

-		table[(T_String<<4)+T_int] 			= (String2String<<12)+(Int2Int<<4)+T_String;

-		table[(T_String<<4)+T_null] 		= (String2String<<12)+(T_null<<8)+(T_null<<4)+T_String;

-	

-		//	table[(T_Object<<4)+T_undefined] 	= T_undefined;

-		//	table[(T_Object<<4)+T_byte] 		= T_undefined;

-		//	table[(T_Object<<4)+T_long] 		= T_undefined;

-		//	table[(T_Object<<4)+T_short]		= T_undefined;

-		//	table[(T_Object<<4)+T_void] 		= T_undefined;

-		table[(T_Object<<4)+T_String] 		= (Object2Object<<12)+(String2String<<4)+T_String;

-		//	table[(T_Object<<4)+T_Object] 		= T_undefined;

-		//	table[(T_Object<<4)+T_double] 		= T_undefined;

-		//	table[(T_Object<<4)+T_float] 		= T_undefined;

-		//	table[(T_Object<<4)+T_boolean]		= T_undefined;

-		//	table[(T_Object<<4)+T_char] 		= T_undefined;

-		//	table[(T_Object<<4)+T_int] 			= T_undefined;

-		//	table[(T_Object<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_double<<4)+T_undefined] 	= T_undefined;

-		table[(T_double<<4)+T_byte] 		= (Double2Double<<12)+(Byte2Double<<4)+T_double;

-		table[(T_double<<4)+T_long] 		= (Double2Double<<12)+(Long2Double<<4)+T_double;

-		table[(T_double<<4)+T_short] 		= (Double2Double<<12)+(Short2Double<<4)+T_double; 

-		//	table[(T_double<<4)+T_void] 		= T_undefined;

-		table[(T_double<<4)+T_String] 		= (Double2Double<<12)+(String2String<<4)+T_String;

-		//	table[(T_double<<4)+T_Object] 		= T_undefined;

-		table[(T_double<<4)+T_double] 		= (Double2Double<<12)+(Double2Double<<4)+T_double;

-		table[(T_double<<4)+T_float] 		= (Double2Double<<12)+(Float2Double<<4)+T_double; 

-		//	table[(T_double<<4)+T_boolean] 		= T_undefined;

-		table[(T_double<<4)+T_char] 		= (Double2Double<<12)+(Char2Double<<4)+T_double; 

-		table[(T_double<<4)+T_int] 			= (Double2Double<<12)+(Int2Double<<4)+T_double; 

-		//	table[(T_double<<4)+T_null] 		= T_undefined;

-		

-		//	table[(T_float<<4)+T_undefined] 	= T_undefined;

-		table[(T_float<<4)+T_byte] 			= (Float2Float<<12)+(Byte2Float<<4)+T_float;

-		table[(T_float<<4)+T_long] 			= (Float2Float<<12)+(Long2Float<<4)+T_float;

-		table[(T_float<<4)+T_short] 		= (Float2Float<<12)+(Short2Float<<4)+T_float;

-		//	table[(T_float<<4)+T_void] 			= T_undefined;

-		table[(T_float<<4)+T_String] 		= (Float2Float<<12)+(String2String<<4)+T_String;

-		//	table[(T_float<<4)+T_Object] 		= T_undefined;

-		table[(T_float<<4)+T_double] 		= (Float2Double<<12)+(Double2Double<<4)+T_double;

-		table[(T_float<<4)+T_float] 		= (Float2Float<<12)+(Float2Float<<4)+T_float;

-		//	table[(T_float<<4)+T_boolean] 		= T_undefined;

-		table[(T_float<<4)+T_char] 			= (Float2Float<<12)+(Char2Float<<4)+T_float;

-		table[(T_float<<4)+T_int] 			= (Float2Float<<12)+(Int2Float<<4)+T_float;

-		//	table[(T_float<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_boolean<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_boolean<<4)+T_byte] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_long] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_short] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_void] 			= T_undefined;

-		table[(T_boolean<<4)+T_String] 			= (Boolean2Boolean<<12)+(String2String<<4)+T_String;

-		//	table[(T_boolean<<4)+T_Object] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_double] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_float] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_boolean<<4)+T_char] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_int] 			= T_undefined;

-		//	table[(T_boolean<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_char<<4)+T_undefined] 		= T_undefined;

-		table[(T_char<<4)+T_byte] 			= (Char2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_char<<4)+T_long] 			= (Char2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_char<<4)+T_short] 			= (Char2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_char<<4)+T_void] 			= T_undefined;

-		table[(T_char<<4)+T_String] 		= (Char2Char<<12)+(String2String<<4)+T_String;

-		//	table[(T_char<<4)+T_Object] 		= T_undefined;

-		table[(T_char<<4)+T_double] 		= (Char2Double<<12)+(Double2Double<<4)+T_double;

-		table[(T_char<<4)+T_float] 			= (Char2Float<<12)+(Float2Float<<4)+T_float;

-		//	table[(T_char<<4)+T_boolean] 		= T_undefined;

-		table[(T_char<<4)+T_char] 			= (Char2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_char<<4)+T_int] 			= (Char2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_char<<4)+T_null] 			= T_undefined;

-		

-		//	table[(T_int<<4)+T_undefined] 	= T_undefined;

-		table[(T_int<<4)+T_byte] 		= (Int2Int<<12)+(Byte2Int<<4)+T_int;

-		table[(T_int<<4)+T_long] 		= (Int2Long<<12)+(Long2Long<<4)+T_long;

-		table[(T_int<<4)+T_short] 		= (Int2Int<<12)+(Short2Int<<4)+T_int;

-		//	table[(T_int<<4)+T_void] 		= T_undefined;

-		table[(T_int<<4)+T_String] 		= (Int2Int<<12)+(String2String<<4)+T_String;

-		//	table[(T_int<<4)+T_Object] 		= T_undefined;

-		table[(T_int<<4)+T_double] 		= (Int2Double<<12)+(Double2Double<<4)+T_double;

-		table[(T_int<<4)+T_float] 		= (Int2Float<<12)+(Float2Float<<4)+T_float;

-		//	table[(T_int<<4)+T_boolean] 	= T_undefined;

-		table[(T_int<<4)+T_char] 		= (Int2Int<<12)+(Char2Int<<4)+T_int;

-		table[(T_int<<4)+T_int] 		= (Int2Int<<12)+(Int2Int<<4)+T_int;

-		//	table[(T_int<<4)+T_null] 		= T_undefined;

-	

-		//	table[(T_null<<4)+T_undefined] 		= T_undefined;

-		//	table[(T_null<<4)+T_byte] 			= T_undefined;

-		//	table[(T_null<<4)+T_long] 			= T_undefined;

-		//	table[(T_null<<4)+T_short] 			= T_undefined;

-		//	table[(T_null<<4)+T_void] 			= T_undefined;

-		table[(T_null<<4)+T_String] 		= (T_null<<16)+(T_null<<12)+(String2String<<4)+T_String;

-		//	table[(T_null<<4)+T_Object] 		= T_undefined;

-		//	table[(T_null<<4)+T_double] 		= T_undefined;

-		//	table[(T_null<<4)+T_float] 			= T_undefined;

-		//	table[(T_null<<4)+T_boolean] 		= T_undefined;

-		//	table[(T_null<<4)+T_char] 			= T_undefined;

-		//	table[(T_null<<4)+T_int] 			= T_undefined;

-		//	table[(T_null<<4)+T_null] 			= (Null2String<<12)+(Null2String<<4)+T_String;;

-	

-		return table;

-	}

-

-	public static final int[] get_REMAINDER(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		//	int[] table  = new int[16*16];

-		return get_MINUS();

-	}

-

-	public static final int[] get_RIGHT_SHIFT(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		//	int[] table  = new int[16*16];

-		return get_LEFT_SHIFT();

-	}

-

-	public static final int[] get_UNSIGNED_RIGHT_SHIFT(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-		

-		//	int[] table  = new int[16*16];

-		return get_LEFT_SHIFT();

-	}

-

-	public static final int[] get_XOR(){

-	

-		//the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       

-

-		//	int[] table  = new int[16*16];

-		return get_AND();

-	}

-	

-	public String operatorToString() {

-		switch ((bits & OperatorMASK) >> OperatorSHIFT) {

-			case EQUAL_EQUAL :

-				return "=="; //$NON-NLS-1$

-			case LESS_EQUAL :

-				return "<="; //$NON-NLS-1$

-			case GREATER_EQUAL :

-				return ">="; //$NON-NLS-1$

-			case NOT_EQUAL :

-				return "!="; //$NON-NLS-1$

-			case LEFT_SHIFT :

-				return "<<"; //$NON-NLS-1$

-			case RIGHT_SHIFT :

-				return ">>"; //$NON-NLS-1$

-			case UNSIGNED_RIGHT_SHIFT :

-				return ">>>"; //$NON-NLS-1$

-			case OR_OR :

-				return "||"; //$NON-NLS-1$

-			case AND_AND :

-				return "&&"; //$NON-NLS-1$

-			case PLUS :

-				return "+"; //$NON-NLS-1$

-			case MINUS :

-				return "-"; //$NON-NLS-1$

-			case NOT :

-				return "!"; //$NON-NLS-1$

-			case REMAINDER :

-				return "%"; //$NON-NLS-1$

-			case XOR :

-				return "^"; //$NON-NLS-1$

-			case AND :

-				return "&"; //$NON-NLS-1$

-			case MULTIPLY :

-				return "*"; //$NON-NLS-1$

-			case OR :

-				return "|"; //$NON-NLS-1$

-			case TWIDDLE :

-				return "~"; //$NON-NLS-1$

-			case DIVIDE :

-				return "/"; //$NON-NLS-1$

-			case GREATER :

-				return ">"; //$NON-NLS-1$

-			case LESS :

-				return "<"; //$NON-NLS-1$

-			case QUESTIONCOLON :

-				return "?:"; //$NON-NLS-1$

-			case EQUAL :

-				return "="; //$NON-NLS-1$

-		}

-		return "unknown operator"; //$NON-NLS-1$

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output){

-

-		output.append('(');

-		return printExpressionNoParenthesis(0, output).append(')');

-	}

-	

-	public abstract StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OperatorIds.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OperatorIds.js
deleted file mode 100644
index 058d6b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/OperatorIds.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-public interface OperatorIds {

-	public static final int AND_AND = 0;

-	public static final int OR_OR = 1;

-	public static final int AND = 2; 

-	public static final int OR = 3; 

-	public static final int LESS = 4;

-	public static final int LESS_EQUAL = 5;

-	public static final int GREATER = 6;

-	public static final int GREATER_EQUAL = 7;

-	public static final int XOR = 8;

-	public static final int DIVIDE = 9; 

-	public static final int LEFT_SHIFT = 10;

-	public static final int NOT = 11; 

-	public static final int TWIDDLE = 12; 

-	public static final int MINUS = 13; 

-	public static final int PLUS = 14; 

-	public static final int MULTIPLY = 15; 

-	public static final int REMAINDER = 16;

-	public static final int RIGHT_SHIFT = 17;

-	public static final int EQUAL_EQUAL = 18;

-	public static final int UNSIGNED_RIGHT_SHIFT= 19;

-	public static final int NumberOfTables = 20;

-

-	public static final int QUESTIONCOLON = 23;

-

-	public static final int NOT_EQUAL = 29;

-	public static final int EQUAL = 30;

-	public static final int INSTANCEOF = 31;

-	public static final int PLUS_PLUS = 32;

-	public static final int MINUS_MINUS = 33;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.js
deleted file mode 100644
index cf82dca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.js
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-/**

- * Syntactic representation of a reference to a generic type.

- * Note that it might also have a dimension.

- */

-public class ParameterizedQualifiedTypeReference extends ArrayQualifiedTypeReference {

-

-	public TypeReference[][] typeArguments;

-	private boolean didResolve = false;

-

-	/**

-	 * @param tokens

-	 * @param dim

-	 * @param positions

-	 */

-	public ParameterizedQualifiedTypeReference(char[][] tokens, TypeReference[][] typeArguments, int dim, long[] positions) {

-	    

-		super(tokens, dim, positions);

-		this.typeArguments = typeArguments;

-	}

-	public void checkBounds(Scope scope) {

-		if (this.resolvedType == null) return;

-

-		checkBounds(

-			(ReferenceBinding) this.resolvedType.leafComponentType(),

-			scope,

-			this.typeArguments.length - 1);

-	}

-	public void checkBounds(ReferenceBinding type, Scope scope, int index) {

-		if (type.enclosingType() != null)

-			checkBounds(type.enclosingType(), scope, index - 1);

-

-		if (type.isParameterizedType()) {

-			ParameterizedTypeBinding parameterizedType = (ParameterizedTypeBinding) type;

-			ReferenceBinding currentType = parameterizedType.type;

-			TypeVariableBinding[] typeVariables = currentType.typeVariables();

-			TypeBinding[] argTypes = parameterizedType.arguments;

-			if (argTypes != null && typeVariables != null) { // argTypes may be null in error cases

-				for (int i = 0, argLength = typeVariables.length; i < argLength; i++)

-				    if (!typeVariables[i].boundCheck(parameterizedType, argTypes[i]))

-						scope.problemReporter().typeMismatchError(argTypes[i], typeVariables[i], currentType, this.typeArguments[index][i]);

-			}

-		}

-	}

-	public TypeReference copyDims(int dim){

-		//return a type reference copy of me with some dimensions

-		//warning : the new type ref has a null binding

-		this.dimensions = dim;

-		return this;

-	}	

-	

-	/**

-	 * @return char[][]

-	 */

-	public char [][] getParameterizedTypeName(){

-		int length = this.tokens.length;

-		char[][] qParamName = new char[length][];

-		for (int i = 0; i < length; i++) {

-			TypeReference[] arguments = this.typeArguments[i];

-			if (arguments == null) {

-				qParamName[i] = this.tokens[i];

-			} else {

-				StringBuffer buffer = new StringBuffer(5);

-				buffer.append(this.tokens[i]);

-				buffer.append('<');

-				for (int j = 0, argLength =arguments.length; j < argLength; j++) {

-					if (j > 0) buffer.append(',');

-					buffer.append(CharOperation.concatWith(arguments[j].getParameterizedTypeName(), '.'));

-				}

-				buffer.append('>');

-				int nameLength = buffer.length();

-				qParamName[i] = new char[nameLength];

-				buffer.getChars(0, nameLength, qParamName[i], 0);		

-			}

-		}

-		int dim = this.dimensions;

-		if (dim > 0) {

-			char[] dimChars = new char[dim*2];

-			for (int i = 0; i < dim; i++) {

-				int index = i*2;

-				dimChars[index] = '[';

-				dimChars[index+1] = ']';

-			}

-			qParamName[length-1] = CharOperation.concat(qParamName[length-1], dimChars);

-		}

-		return qParamName;

-	}	

-	

-	/* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.ast.ArrayQualifiedTypeReference#getTypeBinding(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope)

-     */

-    protected TypeBinding getTypeBinding(Scope scope) {

-        return null; // not supported here - combined with resolveType(...)

-    }

-    

-    /*

-     * No need to check for reference to raw type per construction

-     */

-	private TypeBinding internalResolveType(Scope scope) {

-

-		// handle the error here

-		this.constant = NotAConstant;

-		if (this.didResolve) { // is a shared type reference which was already resolved

-			if (this.resolvedType != null && !this.resolvedType.isValidBinding())

-				return null; // already reported error

-			return this.resolvedType;

-		} 

-	    this.didResolve = true;

-	    Binding binding = scope.getPackage(this.tokens);

-	    if (binding != null && !binding.isValidBinding()) {

-	    	this.resolvedType = (ReferenceBinding) binding;

-			reportInvalidType(scope);

-			return null;

-		}

-

-	    PackageBinding packageBinding = binding == null ? null : (PackageBinding) binding;

-	    boolean isClassScope = scope.kind == Scope.CLASS_SCOPE;

-		boolean typeIsConsistent = true;

-		ReferenceBinding qualifiedType = null;

-	    for (int i = packageBinding == null ? 0 : packageBinding.compoundName.length, max = this.tokens.length; i < max; i++) {

-			findNextTypeBinding(i, scope, packageBinding);

-			if (!(this.resolvedType.isValidBinding())) {

-				reportInvalidType(scope);

-				return null;

-			}

-			ReferenceBinding currentType = (ReferenceBinding) this.resolvedType;

-			if (typeIsConsistent && currentType.isStatic() && qualifiedType != null && (qualifiedType.isParameterizedType() || qualifiedType.isGenericType())) {

-				scope.problemReporter().staticMemberOfParameterizedType(this, scope.createParameterizedType(currentType, null, qualifiedType));

-				typeIsConsistent = false;

-			}			

-			// check generic and arity

-		    TypeReference[] args = this.typeArguments[i];

-		    if (args != null) {

-				int argLength = args.length;

-				TypeBinding[] argTypes = new TypeBinding[argLength];

-				boolean argHasError = false;

-				for (int j = 0; j < argLength; j++) {

-				    TypeReference arg = args[j];

-				    TypeBinding argType = isClassScope

-						? arg.resolveTypeArgument((ClassScope) scope, currentType, j)

-						: arg.resolveTypeArgument((BlockScope) scope, currentType, j);

-					if (argType == null) {

-						argHasError = true;

-					} else {

-						argTypes[j] = argType;

-					}			    

-				}

-				if (argHasError) return null;

-// TODO (philippe)	if ((this.bits & ASTNode.IsSuperType) != 0)

-				if (isClassScope)

-					if (((ClassScope) scope).detectCycle(currentType, this, argTypes))

-						return null;

-

-			    TypeVariableBinding[] typeVariables = currentType.typeVariables();

-				if (typeVariables == NoTypeVariables) { // check generic

-					scope.problemReporter().nonGenericTypeCannotBeParameterized(this, currentType, argTypes);

-					return null;

-				} else if (argLength != typeVariables.length) { // check arity

-					scope.problemReporter().incorrectArityForParameterizedType(this, currentType, argTypes);

-					return null;

-				}

-				// check parameterizing non-static member type of raw type

-				if (typeIsConsistent && !currentType.isStatic() && qualifiedType != null && qualifiedType.isRawType()) {

-					scope.problemReporter().rawMemberTypeCannotBeParameterized(

-							this, scope.environment().createRawType(currentType, qualifiedType), argTypes);

-					typeIsConsistent = false;				

-				}

-				ParameterizedTypeBinding parameterizedType = scope.createParameterizedType(currentType, argTypes, qualifiedType);

-				// check argument type compatibility now if not a class scope

-				if (!isClassScope) // otherwise will do it in Scope.connectTypeVariables()

-					for (int j = 0; j < argLength; j++)

-					    if (!typeVariables[j].boundCheck(parameterizedType, argTypes[j]))

-							scope.problemReporter().typeMismatchError(argTypes[j], typeVariables[j], currentType, args[j]);

-				qualifiedType = parameterizedType;

-		    } else {

-// TODO (philippe)	if ((this.bits & ASTNode.IsSuperType) != 0)

-				if (isClassScope)

-					if (((ClassScope) scope).detectCycle(currentType, this, null))

-						return null;

-				if (currentType.isGenericType()) {

-	   			    if (typeIsConsistent && qualifiedType != null && qualifiedType.isParameterizedType()) {

-						scope.problemReporter().parameterizedMemberTypeMissingArguments(this, scope.createParameterizedType(currentType, null, qualifiedType));

-						typeIsConsistent = false;

-					}

-	   			    qualifiedType = scope.environment().createRawType(currentType, qualifiedType); // raw type

-				} else {

-					qualifiedType = (qualifiedType != null && qualifiedType.isParameterizedType())

-													? scope.createParameterizedType(currentType, null, qualifiedType)

-													: currentType;

-				}

-			}

-		}

-		this.resolvedType = qualifiedType;

-		if (isTypeUseDeprecated(this.resolvedType, scope))

-			reportDeprecatedType(scope);

-		// array type ?

-		if (this.dimensions > 0) {

-			if (dimensions > 255)

-				scope.problemReporter().tooManyDimensions(this);

-			this.resolvedType = scope.createArrayType(this.resolvedType, dimensions);

-		}

-		return this.resolvedType;

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		int length = tokens.length;

-		for (int i = 0; i < length - 1; i++) {

-			output.append(tokens[i]);

-			TypeReference[] typeArgument = typeArguments[i];

-			if (typeArgument != null) {

-				output.append('<');//$NON-NLS-1$

-				int max = typeArgument.length - 1;

-				for (int j = 0; j < max; j++) {

-					typeArgument[j].print(0, output);

-					output.append(", ");//$NON-NLS-1$

-				}

-				typeArgument[max].print(0, output);

-				output.append('>');

-			}

-			output.append('.');

-		}

-		output.append(tokens[length - 1]);

-		TypeReference[] typeArgument = typeArguments[length - 1];

-		if (typeArgument != null) {

-			output.append('<');//$NON-NLS-1$

-			int max = typeArgument.length - 1;

-			for (int j = 0; j < max; j++) {

-				typeArgument[j].print(0, output);

-				output.append(", ");//$NON-NLS-1$

-			}

-			typeArgument[max].print(0, output);

-			output.append('>');

-		}

-		for (int i= 0 ; i < dimensions ; i++) {

-			output.append("[]"); //$NON-NLS-1$

-		}

-		return output;

-	}	

-	

-	public TypeBinding resolveType(BlockScope scope) {

-	    return internalResolveType(scope);

-	}	

-	public TypeBinding resolveType(ClassScope scope) {

-	    return internalResolveType(scope);

-	}

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			for (int i = 0, max = this.typeArguments.length; i < max; i++) {

-				if (this.typeArguments[i] != null) {

-					for (int j = 0, max2 = this.typeArguments[i].length; j < max2; j++) {

-						this.typeArguments[i][j].traverse(visitor, scope);

-					}

-				}

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-	

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		if (visitor.visit(this, scope)) {

-			for (int i = 0, max = this.typeArguments.length; i < max; i++) {

-				if (this.typeArguments[i] != null) {

-					for (int j = 0, max2 = this.typeArguments[i].length; j < max2; j++) {

-						this.typeArguments[i][j].traverse(visitor, scope);

-					}

-				}

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ParameterizedSingleTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ParameterizedSingleTypeReference.js
deleted file mode 100644
index 5b71c59..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ParameterizedSingleTypeReference.js
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-/**

- * Syntactic representation of a reference to a generic type.

- * Note that it might also have a dimension.

- */

-public class ParameterizedSingleTypeReference extends ArrayTypeReference {

-

-	public TypeReference[] typeArguments;

-	private boolean didResolve = false;

-	

-	public ParameterizedSingleTypeReference(char[] name, TypeReference[] typeArguments, int dim, long pos){

-		super(name, dim, pos);

-		this.typeArguments = typeArguments;

-	}

-	public void checkBounds(Scope scope) {

-		if (this.resolvedType == null) return;

-

-		if (this.resolvedType.leafComponentType() instanceof ParameterizedTypeBinding) {

-			ParameterizedTypeBinding parameterizedType = (ParameterizedTypeBinding) this.resolvedType.leafComponentType();

-			ReferenceBinding currentType = parameterizedType.type;

-			TypeVariableBinding[] typeVariables = currentType.typeVariables();

-			TypeBinding[] argTypes = parameterizedType.arguments;

-			if (argTypes != null && typeVariables != null) { // may be null in error cases

-				for (int i = 0, argLength = typeVariables.length; i < argLength; i++)

-					if (!typeVariables[i].boundCheck(parameterizedType, argTypes[i]))

-						scope.problemReporter().typeMismatchError(argTypes[i], typeVariables[i], currentType, this.typeArguments[i]);

-			}

-		}

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference#copyDims(int)

-	 */

-	public TypeReference copyDims(int dim) {

-		this.dimensions = dim;

-		return this;

-	}

-

-	/**

-	 * @return char[][]

-	 */

-	public char [][] getParameterizedTypeName(){

-		StringBuffer buffer = new StringBuffer(5);

-		buffer.append(this.token).append('<');

-		for (int i = 0, length = this.typeArguments.length; i < length; i++) {

-			if (i > 0) buffer.append(',');

-			buffer.append(CharOperation.concatWith(this.typeArguments[i].getParameterizedTypeName(), '.'));

-		}

-		buffer.append('>');

-		int nameLength = buffer.length();

-		char[] name = new char[nameLength];

-		buffer.getChars(0, nameLength, name, 0);

-		int dim = this.dimensions;

-		if (dim > 0) {

-			char[] dimChars = new char[dim*2];

-			for (int i = 0; i < dim; i++) {

-				int index = i*2;

-				dimChars[index] = '[';

-				dimChars[index+1] = ']';

-			}

-			name = CharOperation.concat(name, dimChars);

-		}		

-		return new char[][]{ name };

-	}	

-	/**

-     * @see org.eclipse.wst.jsdt.internal.compiler.ast.ArrayQualifiedTypeReference#getTypeBinding(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope)

-     */

-    protected TypeBinding getTypeBinding(Scope scope) {

-        return null; // not supported here - combined with resolveType(...)

-    }	

-

-    /*

-     * No need to check for reference to raw type per construction

-     */

-	private TypeBinding internalResolveType(Scope scope, ReferenceBinding enclosingType) {

-

-		// handle the error here

-		this.constant = NotAConstant;

-		if (this.didResolve) { // is a shared type reference which was already resolved

-			if (this.resolvedType != null && !this.resolvedType.isValidBinding())

-				return null; // already reported error

-			return this.resolvedType;

-		} 

-	    this.didResolve = true;

-		if (enclosingType == null) {

-			this.resolvedType = scope.getType(token);

-			if (!(this.resolvedType.isValidBinding())) {

-				reportInvalidType(scope);

-				return null;

-			}

-		} else { // resolving member type (relatively to enclosingType)

-			this.resolvedType = scope.getMemberType(token, (ReferenceBinding)enclosingType.erasure());		    

-			if (!this.resolvedType.isValidBinding()) {

-				scope.problemReporter().invalidEnclosingType(this, this.resolvedType, enclosingType);

-				return null;

-			}

-			if (isTypeUseDeprecated(this.resolvedType, scope))

-				scope.problemReporter().deprecatedType(this.resolvedType, this);

-		}

-

-		// check generic and arity

-	    boolean isClassScope = scope.kind == Scope.CLASS_SCOPE;

-		ReferenceBinding currentType = (ReferenceBinding) this.resolvedType;

-		int argLength = this.typeArguments.length;

-		TypeBinding[] argTypes = new TypeBinding[argLength];

-		boolean argHasError = false;

-		for (int i = 0; i < argLength; i++) {

-		    TypeReference typeArgument = this.typeArguments[i];

-		    TypeBinding argType = isClassScope

-				? typeArgument.resolveTypeArgument((ClassScope) scope, currentType, i)

-				: typeArgument.resolveTypeArgument((BlockScope) scope, currentType, i);

-		     if (argType == null) {

-		         argHasError = true;

-		     } else {

-			    argTypes[i] = argType;

-		     }

-		}

-		if (argHasError) return null;

-// TODO (philippe)	if ((this.bits & ASTNode.IsSuperType) != 0)

-		if (isClassScope)

-			if (((ClassScope) scope).detectCycle(currentType, this, argTypes))

-				return null;

-

-		TypeVariableBinding[] typeVariables = currentType.typeVariables();

-		if (typeVariables == NoTypeVariables) { // check generic

-			scope.problemReporter().nonGenericTypeCannotBeParameterized(this, currentType, argTypes);

-			return null;

-		} else if (argLength != typeVariables.length) { // check arity

-			scope.problemReporter().incorrectArityForParameterizedType(this, currentType, argTypes);

-			return null;

-		}

-		// if generic type X<T> is referred to as parameterized X<T>, then answer itself

-		checkGeneric: {

-		    for (int i = 0; i < argLength; i++)

-				if (typeVariables[i] != argTypes[i])

-				    break checkGeneric;

-			return currentType;

-		}

-		ParameterizedTypeBinding parameterizedType = scope.createParameterizedType(currentType, argTypes, enclosingType);

-		// check argument type compatibility now if not a class scope

-		if (!isClassScope) // otherwise will do it in Scope.connectTypeVariables()

-			for (int i = 0; i < argLength; i++)

-			    if (!typeVariables[i].boundCheck(parameterizedType, argTypes[i]))

-					scope.problemReporter().typeMismatchError(argTypes[i], typeVariables[i], currentType, this.typeArguments[i]);

-

-		this.resolvedType = parameterizedType;

-		if (isTypeUseDeprecated(this.resolvedType, scope))

-			reportDeprecatedType(scope);

-		// array type ?

-		if (this.dimensions > 0) {

-			if (dimensions > 255)

-				scope.problemReporter().tooManyDimensions(this);

-			this.resolvedType = scope.createArrayType(parameterizedType, dimensions);

-		}

-		return this.resolvedType;

-	}	

-	

-	public StringBuffer printExpression(int indent, StringBuffer output){

-		output.append(token);

-		output.append("<"); //$NON-NLS-1$

-		int max = typeArguments.length - 1;

-		for (int i= 0; i < max; i++) {

-			typeArguments[i].print(0, output);

-			output.append(", ");//$NON-NLS-1$

-		}

-		typeArguments[max].print(0, output);

-		output.append(">"); //$NON-NLS-1$

-		for (int i= 0 ; i < dimensions ; i++) {

-			output.append("[]"); //$NON-NLS-1$

-		}

-		return output;

-	}

-	

-	public TypeBinding resolveType(BlockScope scope) {

-	    return internalResolveType(scope, null);

-	}	

-

-	public TypeBinding resolveType(ClassScope scope) {

-	    return internalResolveType(scope, null);

-	}	

-	

-	public TypeBinding resolveTypeEnclosing(BlockScope scope, ReferenceBinding enclosingType) {

-	    return internalResolveType(scope, enclosingType);

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			for (int i = 0, max = this.typeArguments.length; i < max; i++) {

-				this.typeArguments[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-	

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		if (visitor.visit(this, scope)) {

-			for (int i = 0, max = this.typeArguments.length; i < max; i++) {

-				this.typeArguments[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/PostfixExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/PostfixExpression.js
deleted file mode 100644
index e04c73f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/PostfixExpression.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class PostfixExpression extends CompoundAssignment {

-

-	public PostfixExpression(Expression l, Expression e, int op, int pos) {

-		

-		super(l, e, op, pos);

-		this.sourceStart = l.sourceStart;

-		this.sourceEnd = pos;

-	}

-	

-	/**

-	 * Code generation for PostfixExpression

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		// various scenarii are possible, setting an array reference, 

-		// a field reference, a blank final field reference, a field of an enclosing instance or 

-		// just a local variable.

-

-		int pc = codeStream.position;

-		 ((Reference) lhs).generatePostIncrement(currentScope, codeStream, this, valueRequired);

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(implicitConversion);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public String operatorToString() {

-		switch (operator) {

-			case PLUS :

-				return "++"; //$NON-NLS-1$

-			case MINUS :

-				return "--"; //$NON-NLS-1$

-		} 

-		return "unknown operator"; //$NON-NLS-1$

-	}

-	

-	public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output) {

-

-		return lhs.printExpression(indent, output).append(' ').append(operatorToString()); 

-	} 

-

-	public boolean restrainUsageToNumericTypes() {

-

-		return true;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			lhs.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/PrefixExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/PrefixExpression.js
deleted file mode 100644
index 5dedc57..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/PrefixExpression.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class PrefixExpression extends CompoundAssignment {

-

-	/**

-	 * PrefixExpression constructor comment.

-	 * @param l org.eclipse.wst.jsdt.internal.compiler.ast.Expression

-	 * @param e org.eclipse.wst.jsdt.internal.compiler.ast.Expression

-	 * @param op int

-	 */

-	public PrefixExpression(Expression l, Expression e, int op, int pos) {

-

-		super(l, e, op, l.sourceEnd);

-		this.sourceStart = pos;

-		this.sourceEnd = l.sourceEnd;

-	}

-

-	public String operatorToString() {

-

-		switch (operator) {

-			case PLUS :

-				return "++"; //$NON-NLS-1$

-			case MINUS :

-				return "--"; //$NON-NLS-1$

-		} 

-		return "unknown operator"; //$NON-NLS-1$

-	}

-

-	public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output) {

-

-		output.append(operatorToString()).append(' ');

-		return lhs.printExpression(0, output); 

-	} 

-	

-	public boolean restrainUsageToNumericTypes() {

-

-		return true;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			lhs.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedAllocationExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedAllocationExpression.js
deleted file mode 100644
index fad19f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedAllocationExpression.js
+++ /dev/null
@@ -1,359 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-/**

- * Variation on allocation, where can optionally be specified any of:

- * - leading enclosing instance

- * - trailing anonymous type

- * - generic type arguments for generic constructor invocation

- */

-public class QualifiedAllocationExpression extends AllocationExpression {

-	

-	//qualification may be on both side

-	public Expression enclosingInstance;

-	public TypeDeclaration anonymousType;

-	public ReferenceBinding superTypeBinding;

-	

-	public QualifiedAllocationExpression() {

-		// for subtypes

-	}

-

-	public QualifiedAllocationExpression(TypeDeclaration anonymousType) {

-		this.anonymousType = anonymousType;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// analyse the enclosing instance

-		if (enclosingInstance != null) {

-			flowInfo = enclosingInstance.analyseCode(currentScope, flowContext, flowInfo);

-		}

-		

-		// check captured variables are initialized in current context (26134)

-		checkCapturedLocalInitializationIfNecessary(

-			this.superTypeBinding == null ? this.binding.declaringClass : this.superTypeBinding, 

-			currentScope, 

-			flowInfo);

-		

-		// process arguments

-		if (arguments != null) {

-			for (int i = 0, count = arguments.length; i < count; i++) {

-				flowInfo = arguments[i].analyseCode(currentScope, flowContext, flowInfo);

-			}

-		}

-

-		// analyse the anonymous nested type

-		if (anonymousType != null) {

-			flowInfo = anonymousType.analyseCode(currentScope, flowContext, flowInfo);

-		}

-

-		// record some dependency information for exception types

-		ReferenceBinding[] thrownExceptions;

-		if (((thrownExceptions = binding.thrownExceptions).length) != 0) {

-			// check exception handling

-			flowContext.checkExceptionHandlers(

-				thrownExceptions,

-				this,

-				flowInfo,

-				currentScope);

-		}

-		manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-		manageSyntheticAccessIfNecessary(currentScope, flowInfo);

-		return flowInfo;

-	}

-

-	public Expression enclosingInstance() {

-

-		return enclosingInstance;

-	}

-

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		ReferenceBinding allocatedType = this.codegenBinding.declaringClass;

-		codeStream.new_(allocatedType);

-		if (valueRequired) {

-			codeStream.dup();

-		}

-		// better highlight for allocation: display the type individually

-		codeStream.recordPositionsFrom(pc, type.sourceStart);

-

-		// handling innerclass instance allocation - enclosing instance arguments

-		if (allocatedType.isNestedType()) {

-			codeStream.generateSyntheticEnclosingInstanceValues(

-				currentScope,

-				allocatedType,

-				enclosingInstance(),

-				this);

-		}

-		// generate the arguments for constructor

-		if (arguments != null) {

-			for (int i = 0, count = arguments.length; i < count; i++) {

-				arguments[i].generateCode(currentScope, codeStream, true);

-			}

-		}

-		// handling innerclass instance allocation - outer local arguments

-		if (allocatedType.isNestedType()) {

-			codeStream.generateSyntheticOuterArgumentValues(

-				currentScope,

-				allocatedType,

-				this);

-		}

-		

-		// invoke constructor

-		if (syntheticAccessor == null) {

-			codeStream.invokespecial(this.codegenBinding);

-		} else {

-			// synthetic accessor got some extra arguments appended to its signature, which need values

-			for (int i = 0,

-				max = syntheticAccessor.parameters.length - this.codegenBinding.parameters.length;

-				i < max;

-				i++) {

-				codeStream.aconst_null();

-			}

-			codeStream.invokespecial(syntheticAccessor);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-

-		if (anonymousType != null) {

-			anonymousType.generateCode(currentScope, codeStream);

-		}

-	}

-	

-	public boolean isSuperAccess() {

-

-		// necessary to lookup super constructor of anonymous type

-		return anonymousType != null;

-	}

-	

-	/* Inner emulation consists in either recording a dependency 

-	 * link only, or performing one level of propagation.

-	 *

-	 * Dependency mechanism is used whenever dealing with source target

-	 * types, since by the time we reach them, we might not yet know their

-	 * exact need.

-	 */

-	public void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-		ReferenceBinding allocatedType;

-

-		// perform some emulation work in case there is some and we are inside a local type only

-		if ((allocatedType = binding.declaringClass).isNestedType()

-			&& currentScope.enclosingSourceType().isLocalType()) {

-

-			if (allocatedType.isLocalType()) {

-				((LocalTypeBinding) allocatedType).addInnerEmulationDependent(currentScope, enclosingInstance != null);

-			} else {

-				// locally propagate, since we already now the desired shape for sure

-				currentScope.propagateInnerEmulation(allocatedType, enclosingInstance != null);

-			}

-		}

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		if (enclosingInstance != null)

-			enclosingInstance.printExpression(0, output).append('.'); 

-		if (typeArguments != null) {

-			output.append('<');//$NON-NLS-1$

-			int max = typeArguments.length - 1;

-			for (int j = 0; j < max; j++) {

-				typeArguments[j].print(0, output);

-				output.append(", ");//$NON-NLS-1$

-			}

-			typeArguments[max].print(0, output);

-			output.append('>');

-		}			

-		super.printExpression(0, output);

-		if (anonymousType != null) {

-			anonymousType.print(indent, output);

-		}

-		return output;

-	}

-	

-	public TypeBinding resolveType(BlockScope scope) {

-

-		// added for code assist...cannot occur with 'normal' code

-		if (this.anonymousType == null && this.enclosingInstance == null) {

-			return super.resolveType(scope);

-		}

-

-		// Propagate the type checking to the arguments, and checks if the constructor is defined.

-		// ClassInstanceCreationExpression ::= Primary '.' 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt

-		// ClassInstanceCreationExpression ::= Name '.' 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt

-		

-		constant = NotAConstant;

-		TypeBinding enclosingInstanceType = null;

-		TypeBinding receiverType = null;

-		boolean hasError = false;

-		boolean enclosingInstanceContainsCast = false;

-		boolean argsContainCast = false;

-		

-		if (enclosingInstance != null) {

-			if (enclosingInstance instanceof CastExpression) {

-				enclosingInstance.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-				enclosingInstanceContainsCast = true;

-			}

-			if ((enclosingInstanceType = enclosingInstance.resolveType(scope)) == null){

-				hasError = true;

-			} else if (enclosingInstanceType.isBaseType() || enclosingInstanceType.isArrayType()) {

-				scope.problemReporter().illegalPrimitiveOrArrayTypeForEnclosingInstance(

-					enclosingInstanceType,

-					enclosingInstance);

-				hasError = true;

-			} else if (type instanceof QualifiedTypeReference) {

-				scope.problemReporter().illegalUsageOfQualifiedTypeReference((QualifiedTypeReference)type);

-				hasError = true;

-			} else {

-				receiverType = ((SingleTypeReference) type).resolveTypeEnclosing(scope, (ReferenceBinding) enclosingInstanceType);

-				if (receiverType != null && enclosingInstanceContainsCast) {

-					CastExpression.checkNeedForEnclosingInstanceCast(scope, enclosingInstance, enclosingInstanceType, receiverType);

-				}

-			}

-		} else {

-			receiverType = type.resolveType(scope);

-		}

-		if (receiverType == null) {

-			hasError = true;

-		} else if (((ReferenceBinding) receiverType).isFinal() && this.anonymousType != null) {

-			scope.problemReporter().anonymousClassCannotExtendFinalClass(type, receiverType);

-			hasError = true;

-		}

-		// resolve type arguments (for generic constructor call)

-		if (this.typeArguments != null) {

-			int length = this.typeArguments.length;

-			this.genericTypeArguments = new TypeBinding[length];

-			for (int i = 0; i < length; i++) {

-				TypeBinding argType = this.typeArguments[i].resolveType(scope);

-				if (argType == null) return null; // error already reported

-				this.genericTypeArguments[i] = argType;

-			}

-		}

-		

-		// will check for null after args are resolved

-		TypeBinding[] argumentTypes = NoParameters;

-		if (arguments != null) {

-			int length = arguments.length;

-			argumentTypes = new TypeBinding[length];

-			for (int i = 0; i < length; i++) {

-				Expression argument = this.arguments[i];

-				if (argument instanceof CastExpression) {

-					argument.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-					argsContainCast = true;

-				}

-				if ((argumentTypes[i] = argument.resolveType(scope)) == null){

-					hasError = true;

-				}

-			}

-		}

-		// limit of fault-tolerance

-		if (hasError) return this.resolvedType = receiverType;

-		if (this.anonymousType == null) {

-			// qualified allocation with no anonymous type

-			ReferenceBinding allocationType = (ReferenceBinding) receiverType;

-			if (!receiverType.canBeInstantiated()) {

-				scope.problemReporter().cannotInstantiate(type, receiverType);

-				return this.resolvedType = receiverType;

-			}

-			if ((this.binding = scope.getConstructor(allocationType, argumentTypes, this)).isValidBinding()) {

-				if (isMethodUseDeprecated(binding, scope)) {

-					scope.problemReporter().deprecatedMethod(this.binding, this);

-				}

-				if (this.arguments != null)

-					checkInvocationArguments(scope, null, allocationType, binding, this.arguments, argumentTypes, argsContainCast, this);

-			} else {

-				if (this.binding.declaringClass == null) {

-					this.binding.declaringClass = allocationType;

-				}

-				scope.problemReporter().invalidConstructor(this, this.binding);

-				return this.resolvedType = receiverType;

-			}

-

-			// The enclosing instance must be compatible with the innermost enclosing type

-			ReferenceBinding expectedType = this.binding.declaringClass.enclosingType();

-			if (enclosingInstanceType.isCompatibleWith(expectedType)) {

-				enclosingInstance.computeConversion(scope, expectedType, enclosingInstanceType);

-				return receiverType;

-			}

-			scope.problemReporter().typeMismatchError(enclosingInstanceType, expectedType, this.enclosingInstance);

-			return this.resolvedType = receiverType;

-		}

-

-		// anonymous type scenario

-		// an anonymous class inherits from java.lang.Object when declared "after" an interface

-		this.superTypeBinding = receiverType.isInterface() ? scope.getJavaLangObject() : (ReferenceBinding) receiverType;

-		// insert anonymous type in scope

-		scope.addAnonymousType(this.anonymousType, (ReferenceBinding) receiverType);

-		this.anonymousType.resolve(scope);		

-		

-		// find anonymous super constructor

-		MethodBinding inheritedBinding = scope.getConstructor(this.superTypeBinding, argumentTypes, this);

-		if (!inheritedBinding.isValidBinding()) {

-			if (inheritedBinding.declaringClass == null) {

-				inheritedBinding.declaringClass = this.superTypeBinding;

-			}

-			scope.problemReporter().invalidConstructor(this, inheritedBinding);

-			return this.resolvedType = anonymousType.binding;

-		}

-		if (enclosingInstance != null) {

-			ReferenceBinding targetEnclosing = inheritedBinding.declaringClass.enclosingType();

-			if (targetEnclosing == null) {

-				scope.problemReporter().unnecessaryEnclosingInstanceSpecification(enclosingInstance, (ReferenceBinding)receiverType);

-				return this.resolvedType = anonymousType.binding;

-			} else 	if (!enclosingInstanceType.isCompatibleWith(targetEnclosing)) {

-				scope.problemReporter().typeMismatchError(enclosingInstanceType, targetEnclosing, enclosingInstance);

-				return this.resolvedType = anonymousType.binding;

-			}

-			enclosingInstance.computeConversion(scope, targetEnclosing, enclosingInstanceType);

-		}

-		if (this.arguments != null)

-			checkInvocationArguments(scope, null, this.superTypeBinding, inheritedBinding, this.arguments, argumentTypes, argsContainCast, this);

-		

-		// Update the anonymous inner class : superclass, interface  

-		binding = anonymousType.createsInternalConstructorWithBinding(inheritedBinding);

-		return this.resolvedType = anonymousType.binding; // 1.2 change

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-

-		if (visitor.visit(this, scope)) {

-			if (enclosingInstance != null)

-				enclosingInstance.traverse(visitor, scope);

-			if (this.typeArguments != null) {

-				for (int i = 0, typeArgumentsLength = this.typeArguments.length; i < typeArgumentsLength; i++) {

-					this.typeArguments[i].traverse(visitor, scope);

-				}					

-			}

-			type.traverse(visitor, scope);

-			if (arguments != null) {

-				int argumentsLength = arguments.length;

-				for (int i = 0; i < argumentsLength; i++)

-					arguments[i].traverse(visitor, scope);

-			}

-			if (anonymousType != null)

-				anonymousType.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedNameReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedNameReference.js
deleted file mode 100644
index 1d753b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedNameReference.js
+++ /dev/null
@@ -1,877 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-

-public class QualifiedNameReference extends NameReference {

-	

-	public char[][] tokens;

-	public long[] sourcePositions;	

-	public FieldBinding[] otherBindings, otherCodegenBindings;

-	int[] otherDepths;

-	public int indexOfFirstFieldBinding;//points (into tokens) for the first token that corresponds to first FieldBinding

-	SyntheticAccessMethodBinding syntheticWriteAccessor;

-	SyntheticAccessMethodBinding[] syntheticReadAccessors;

-	public TypeBinding genericCast;

-	public TypeBinding[] otherGenericCasts;

-	

-	public QualifiedNameReference(

-		char[][] sources,

-		long[] positions,

-		int sourceStart,

-		int sourceEnd) {

-		super();

-		this.tokens = sources;

-		this.sourcePositions = positions;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-	

-	public FlowInfo analyseAssignment(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo,

-		Assignment assignment,

-		boolean isCompound) {

-

-		// determine the rank until which we now we do not need any actual value for the field access

-		int otherBindingsCount = otherBindings == null ? 0 : otherBindings.length;

-		boolean needValue = otherBindingsCount == 0 || !this.otherBindings[0].isStatic();

-		FieldBinding lastFieldBinding = null;

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD : // reading a field

-				lastFieldBinding = (FieldBinding) binding;

-				if (needValue) {

-					manageSyntheticAccessIfNecessary(currentScope, lastFieldBinding, this.actualReceiverType, 0, flowInfo);

-				}				// check if final blank field

-				if (lastFieldBinding.isBlankFinal()

-				    && this.otherBindings != null // the last field binding is only assigned

-	 				&& currentScope.allowBlankFinalFieldAssignment(lastFieldBinding)) {

-					if (!flowInfo.isDefinitelyAssigned(lastFieldBinding)) {

-						currentScope.problemReporter().uninitializedBlankFinalField(

-							lastFieldBinding,

-							this);

-					}

-				}

-				break;

-			case LOCAL :

-				// first binding is a local variable

-				LocalVariableBinding localBinding;

-				if (!flowInfo

-					.isDefinitelyAssigned(localBinding = (LocalVariableBinding) binding)) {

-					currentScope.problemReporter().uninitializedLocalVariable(localBinding, this);

-				}

-				if (flowInfo.isReachable()) {

-					localBinding.useFlag = LocalVariableBinding.USED;

-				} else if (localBinding.useFlag == LocalVariableBinding.UNUSED) {

-					localBinding.useFlag = LocalVariableBinding.FAKE_USED;

-				}

-		}

-		

-		if (needValue) {

-			manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-			// only for first binding

-		}

-		// all intermediate field accesses are read accesses

-		if (otherBindings != null) {

-			for (int i = 0; i < otherBindingsCount-1; i++) {

-				lastFieldBinding = otherBindings[i];

-				needValue = !otherBindings[i+1].isStatic();

-				if (needValue) {

-					manageSyntheticAccessIfNecessary(

-						currentScope, 

-						lastFieldBinding, 

-						i == 0 

-							? ((VariableBinding)binding).type

-							: otherBindings[i-1].type,

-						i + 1, 

-						flowInfo);

-				}

-			}

-			lastFieldBinding = otherBindings[otherBindingsCount-1];

-		}

-

-		if (isCompound) {

-			if (binding == lastFieldBinding

-				&& lastFieldBinding.isBlankFinal()

-				&& currentScope.allowBlankFinalFieldAssignment(lastFieldBinding)

-				&& (!flowInfo.isDefinitelyAssigned(lastFieldBinding))) {

-				currentScope.problemReporter().uninitializedBlankFinalField(

-					lastFieldBinding,

-					this);

-			}

-			TypeBinding lastReceiverType;

-			if (lastFieldBinding == binding){

-				lastReceiverType = this.actualReceiverType;

-			} else if (otherBindingsCount == 1){

-				lastReceiverType = ((VariableBinding)this.binding).type;

-			} else {

-				lastReceiverType = this.otherBindings[otherBindingsCount-2].type;

-			}

-			manageSyntheticAccessIfNecessary(

-				currentScope,

-				lastFieldBinding,

-				lastReceiverType,

-				lastFieldBinding == binding

-					? 0 

-					: otherBindingsCount, 

-				flowInfo);

-		}

-		

-		if (assignment.expression != null) {

-			flowInfo =

-				assignment

-					.expression

-					.analyseCode(currentScope, flowContext, flowInfo)

-					.unconditionalInits();

-		}

-		

-		// the last field access is a write access

-		if (lastFieldBinding.isFinal()) {

-			// in a context where it can be assigned?

-			if (lastFieldBinding.isBlankFinal()

-					&& !isCompound

-					&& currentScope.allowBlankFinalFieldAssignment(lastFieldBinding) 

-					&& indexOfFirstFieldBinding == 1) {

-				if (flowInfo.isPotentiallyAssigned(lastFieldBinding)) {

-					currentScope.problemReporter().duplicateInitializationOfBlankFinalField(lastFieldBinding, this);

-				} else {

-					flowContext.recordSettingFinal(lastFieldBinding, this, flowInfo);

-				}

-				flowInfo.markAsDefinitelyAssigned(lastFieldBinding);

-			} else {

-				currentScope.problemReporter().cannotAssignToFinalField(lastFieldBinding, this);

-				if (currentScope.allowBlankFinalFieldAssignment(lastFieldBinding)) { // pretend it got assigned

-					flowInfo.markAsDefinitelyAssigned(lastFieldBinding);

-				}

-			}

-		}

-		// equivalent to valuesRequired[maxOtherBindings]

-		TypeBinding lastReceiverType;

-		if (lastFieldBinding == binding){

-			lastReceiverType = this.actualReceiverType;

-		} else if (otherBindingsCount == 1){

-			lastReceiverType = ((VariableBinding)this.binding).type;

-		} else {

-			lastReceiverType = this.otherBindings[otherBindingsCount-2].type;

-		}

-		manageSyntheticAccessIfNecessary(currentScope, lastFieldBinding, lastReceiverType, -1 /*write-access*/, flowInfo);

-

-		return flowInfo;

-	}

-	

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		return analyseCode(currentScope, flowContext, flowInfo, true);

-	}

-	

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo,

-		boolean valueRequired) {

-			

-		// determine the rank until which we now we do not need any actual value for the field access

-		int otherBindingsCount = otherBindings == null ? 0 : otherBindings.length;

-

-		boolean needValue = otherBindingsCount == 0 ? valueRequired : !this.otherBindings[0].isStatic();

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD : // reading a field

-				if (needValue) {

-					manageSyntheticAccessIfNecessary(currentScope, (FieldBinding) binding, this.actualReceiverType, 0, flowInfo);

-				}

-				// check if reading a final blank field

-				FieldBinding fieldBinding;

-					if ((fieldBinding = (FieldBinding) binding).isBlankFinal()

-						&& (indexOfFirstFieldBinding == 1)

-					// was an implicit reference to the first field binding

-						&& currentScope.allowBlankFinalFieldAssignment(fieldBinding)

-						&& (!flowInfo.isDefinitelyAssigned(fieldBinding))) {

-					currentScope.problemReporter().uninitializedBlankFinalField(fieldBinding, this);

-				}

-				break;

-			case LOCAL : // reading a local variable

-				LocalVariableBinding localBinding;

-				if (!flowInfo

-					.isDefinitelyAssigned(localBinding = (LocalVariableBinding) binding)) {

-					currentScope.problemReporter().uninitializedLocalVariable(localBinding, this);

-				}

-				if (flowInfo.isReachable()) {

-					localBinding.useFlag = LocalVariableBinding.USED;

-				} else if (localBinding.useFlag == LocalVariableBinding.UNUSED) {

-					localBinding.useFlag = LocalVariableBinding.FAKE_USED;

-				}

-		}

-		if (needValue) {

-			manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-			// only for first binding

-		}

-		if (otherBindings != null) {

-			for (int i = 0; i < otherBindingsCount; i++) {

-				needValue = i < otherBindingsCount-1 ? !otherBindings[i+1].isStatic() : valueRequired;

-				if (needValue) {

-					manageSyntheticAccessIfNecessary(

-						currentScope, 

-						otherBindings[i], 

-						i == 0 	? ((VariableBinding)binding).type : otherBindings[i-1].type,

-						i + 1,

-						flowInfo);

-				}

-			}

-		}

-		return flowInfo;

-	}

-	/**

-	 * Check and/or redirect the field access to the delegate receiver if any

-	 */

-	public TypeBinding checkFieldAccess(BlockScope scope) {

-		// check for forward references

-		FieldBinding fieldBinding = (FieldBinding) binding;

-		MethodScope methodScope = scope.methodScope();

-		if (methodScope.enclosingSourceType() == fieldBinding.declaringClass

-			&& methodScope.lastVisibleFieldID >= 0

-			&& fieldBinding.id >= methodScope.lastVisibleFieldID) {

-			if ((!fieldBinding.isStatic() || methodScope.isStatic)

-				&& this.indexOfFirstFieldBinding == 1)

-				scope.problemReporter().forwardReference(this, 0, scope.enclosingSourceType());

-		}

-		bits &= ~RestrictiveFlagMASK; // clear bits

-		bits |= FIELD;

-		return getOtherFieldBindings(scope);

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#computeConversion(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding)

-	 */

-	public void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType) {

-		if (runtimeTimeType == null || compileTimeType == null)

-			return;		

-		// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)

-		FieldBinding field = null;

-		int length = this.otherBindings == null ? 0 : this.otherBindings.length;

-		if (length == 0) {

-			if (this.binding != null && this.binding.isValidBinding()) {

-				field = (FieldBinding) this.binding;

-			}

-		} else {

-			field  = this.otherBindings[length-1];

-		}

-		if (field != null) {

-			FieldBinding originalBinding = field.original();

-			if (originalBinding != field) {

-			    // extra cast needed if method return type has type variable

-			    if ((originalBinding.type.tagBits & TagBits.HasTypeVariable) != 0 && runtimeTimeType.id != T_Object) {

-			    	setGenericCast(length,originalBinding.type.genericCast(runtimeTimeType));

-			    }

-			} 	

-		}

-		super.computeConversion(scope, runtimeTimeType, compileTimeType);

-	}

-

-	public void generateAssignment(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Assignment assignment,

-		boolean valueRequired) {

-			

-		FieldBinding lastFieldBinding = generateReadSequence(currentScope, codeStream);

-		assignment.expression.generateCode(currentScope, codeStream, true);

-		fieldStore(codeStream, lastFieldBinding, syntheticWriteAccessor, valueRequired);

-		// equivalent to valuesRequired[maxOtherBindings]

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(assignment.implicitConversion);

-		}

-	}

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-			

-		int pc = codeStream.position;

-		if (constant != NotAConstant) {

-			if (valueRequired) {

-				codeStream.generateConstant(constant, implicitConversion);

-			}

-		} else {

-			FieldBinding lastFieldBinding = generateReadSequence(currentScope, codeStream); 

-			if (valueRequired) {

-				if (lastFieldBinding.declaringClass == null) { // array length

-					codeStream.arraylength();

-					codeStream.generateImplicitConversion(implicitConversion);

-				} else {

-					if (lastFieldBinding.isConstantValue()) {

-						if (!lastFieldBinding.isStatic()){

-							codeStream.invokeObjectGetClass();

-							codeStream.pop();

-						}

-						// inline the last field constant

-						codeStream.generateConstant(lastFieldBinding.constant(), implicitConversion);

-					} else {

-						SyntheticAccessMethodBinding accessor =

-							syntheticReadAccessors == null

-								? null

-								: syntheticReadAccessors[syntheticReadAccessors.length - 1];

-						if (accessor == null) {

-							if (lastFieldBinding.isStatic()) {

-								codeStream.getstatic(lastFieldBinding);

-							} else {

-								codeStream.getfield(lastFieldBinding);

-							}

-						} else {

-							codeStream.invokestatic(accessor);

-						}

-						codeStream.generateImplicitConversion(implicitConversion);

-						TypeBinding requiredGenericCast = getGenericCast(this.otherCodegenBindings == null ? 0 : this.otherCodegenBindings.length);

-						if (requiredGenericCast != null) codeStream.checkcast(requiredGenericCast);

-					}

-				}

-			} else {

-				if (lastFieldBinding != null && !lastFieldBinding.isStatic()){

-					codeStream.invokeObjectGetClass(); // perform null check

-					codeStream.pop();

-				}

-							

-			}

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	public void generateCompoundAssignment(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Expression expression,

-		int operator,

-		int assignmentImplicitConversion,

-		boolean valueRequired) {

-			

-		FieldBinding lastFieldBinding = generateReadSequence(currentScope, codeStream);

-		SyntheticAccessMethodBinding accessor =

-			syntheticReadAccessors == null

-				? null

-				: syntheticReadAccessors[syntheticReadAccessors.length - 1];

-		if (lastFieldBinding.isStatic()) {

-			if (accessor == null) {

-				codeStream.getstatic(lastFieldBinding);

-			} else {

-				codeStream.invokestatic(accessor);

-			}

-		} else {

-			codeStream.dup();

-			if (accessor == null) {

-				codeStream.getfield(lastFieldBinding);

-			} else {

-				codeStream.invokestatic(accessor);

-			}

-		}

-		// the last field access is a write access

-		// perform the actual compound operation

-		int operationTypeID;

-		if ((operationTypeID = implicitConversion >> 4) == T_String) {

-			codeStream.generateStringConcatenationAppend(currentScope, null, expression);

-		} else {

-			// promote the array reference to the suitable operation type

-			codeStream.generateImplicitConversion(implicitConversion);

-			// generate the increment value (will by itself  be promoted to the operation value)

-			if (expression == IntLiteral.One) { // prefix operation

-				codeStream.generateConstant(expression.constant, implicitConversion);

-			} else {

-				expression.generateCode(currentScope, codeStream, true);

-			}

-			// perform the operation

-			codeStream.sendOperator(operator, operationTypeID);

-			// cast the value back to the array reference type

-			codeStream.generateImplicitConversion(assignmentImplicitConversion);

-		}

-		// actual assignment

-		fieldStore(codeStream, lastFieldBinding, syntheticWriteAccessor, valueRequired);

-		// equivalent to valuesRequired[maxOtherBindings]

-	}

-	public void generatePostIncrement(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		CompoundAssignment postIncrement,

-		boolean valueRequired) {

-	    

-		FieldBinding lastFieldBinding = generateReadSequence(currentScope, codeStream);

-		SyntheticAccessMethodBinding accessor =

-			syntheticReadAccessors == null

-				? null

-				: syntheticReadAccessors[syntheticReadAccessors.length - 1];

-		if (lastFieldBinding.isStatic()) {

-			if (accessor == null) {

-				codeStream.getstatic(lastFieldBinding);

-			} else {

-				codeStream.invokestatic(accessor);

-			}

-		} else {

-			codeStream.dup();

-			if (accessor == null) {

-				codeStream.getfield(lastFieldBinding);

-			} else {

-				codeStream.invokestatic(accessor);

-			}

-		}

-		// duplicate the old field value

-		if (valueRequired) {

-			if (lastFieldBinding.isStatic()) {

-				if ((lastFieldBinding.type == LongBinding)

-					|| (lastFieldBinding.type == DoubleBinding)) {

-					codeStream.dup2();

-				} else {

-					codeStream.dup();

-				}

-			} else { // Stack:  [owner][old field value]  ---> [old field value][owner][old field value]

-				if ((lastFieldBinding.type == LongBinding)

-					|| (lastFieldBinding.type == DoubleBinding)) {

-					codeStream.dup2_x1();

-				} else {

-					codeStream.dup_x1();

-				}

-			}

-		}

-		codeStream.generateConstant(

-			postIncrement.expression.constant,

-			implicitConversion);

-		codeStream.sendOperator(postIncrement.operator, lastFieldBinding.type.id);

-		codeStream.generateImplicitConversion(

-			postIncrement.assignmentImplicitConversion);

-		fieldStore(codeStream, lastFieldBinding, syntheticWriteAccessor, false);

-	}

-	/*

-	 * Generate code for all bindings (local and fields) excluding the last one, which may then be generated code

-	 * for a read or write access.

-	 */

-	public FieldBinding generateReadSequence(BlockScope currentScope, CodeStream codeStream) {

-			

-		// determine the rank until which we now we do not need any actual value for the field access

-		int otherBindingsCount = this.otherCodegenBindings == null ? 0 : otherCodegenBindings.length;

-		boolean needValue = otherBindingsCount == 0 || !this.otherBindings[0].isStatic();

-		FieldBinding lastFieldBinding = null;

-		TypeBinding lastGenericCast = null;

-

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD :

-				lastFieldBinding = (FieldBinding) this.codegenBinding;

-				lastGenericCast = this.genericCast;

-				// if first field is actually constant, we can inline it

-				if (lastFieldBinding.isConstantValue()) {

-					break;

-				}

-				if (needValue && !lastFieldBinding.isStatic()) {

-					if ((bits & DepthMASK) != 0) {

-						ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((bits & DepthMASK) >> DepthSHIFT);

-						Object[] emulationPath = currentScope.getEmulationPath(targetType, true /*only exact match*/, false/*consider enclosing arg*/);

-						codeStream.generateOuterAccess(emulationPath, this, targetType, currentScope);

-					} else {

-						generateReceiver(codeStream);

-					}

-				}

-				break;

-			case LOCAL : // reading the first local variable

-				if (!needValue) break; // no value needed

-				LocalVariableBinding localBinding = (LocalVariableBinding) this.codegenBinding;

-				// regular local variable read

-				if (localBinding.isConstantValue()) {

-					codeStream.generateConstant(localBinding.constant(), 0);

-					// no implicit conversion

-				} else {

-					// outer local?

-					if ((bits & DepthMASK) != 0) {

-						// outer local can be reached either through a synthetic arg or a synthetic field

-						VariableBinding[] path = currentScope.getEmulationPath(localBinding);

-						codeStream.generateOuterAccess(path, this, localBinding, currentScope);

-					} else {

-						codeStream.load(localBinding);

-					}

-				}

-		}

-						

-		// all intermediate field accesses are read accesses

-		// only the last field binding is a write access

-		if (this.otherCodegenBindings != null) {

-			for (int i = 0; i < otherBindingsCount; i++) {

-				FieldBinding nextField = this.otherCodegenBindings[i];

-				TypeBinding nextGenericCast = this.otherGenericCasts == null ? null : this.otherGenericCasts[i];

-				if (lastFieldBinding != null) {

-					needValue = !nextField.isStatic();

-					if (needValue) {

-						MethodBinding accessor =

-							syntheticReadAccessors == null ? null : syntheticReadAccessors[i]; 

-						if (accessor == null) {

-							if (lastFieldBinding.isConstantValue()) {

-								if (lastFieldBinding != this.codegenBinding && !lastFieldBinding.isStatic()) {

-									codeStream.invokeObjectGetClass(); // perform null check

-									codeStream.pop();

-								}

-								codeStream.generateConstant(lastFieldBinding.constant(), 0);

-							} else if (lastFieldBinding.isStatic()) {

-								codeStream.getstatic(lastFieldBinding);

-							} else {

-								codeStream.getfield(lastFieldBinding);

-							}

-						} else {

-							codeStream.invokestatic(accessor);

-						}

-						if (lastGenericCast != null) codeStream.checkcast(lastGenericCast);

-					} else {

-						if (this.codegenBinding != lastFieldBinding && !lastFieldBinding.isStatic()){

-							codeStream.invokeObjectGetClass(); // perform null check

-							codeStream.pop();

-						}						

-					}

-				}

-				lastFieldBinding = nextField;

-				lastGenericCast = nextGenericCast;

-			}

-		}

-		return lastFieldBinding;

-	}

-	public void generateReceiver(CodeStream codeStream) {

-		codeStream.aload_0();

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()

-	 */

-	public TypeBinding[] genericTypeArguments() {

-		return null;

-	}

-	

-	// get the matching codegenBinding

-	protected FieldBinding getCodegenBinding(int index) {

-	  if (index == 0){

-			return (FieldBinding)this.codegenBinding;

-		} else {

-			return this.otherCodegenBindings[index-1];

-		}

-	}

-

-	// get the matching generic cast

-	protected TypeBinding getGenericCast(int index) {

-	   if (index == 0){

-			return this.genericCast;

-		} else {

-		    if (this.otherGenericCasts == null) return null;

-			return this.otherGenericCasts[index-1];

-		}

-	}

-	

-	public TypeBinding getOtherFieldBindings(BlockScope scope) {

-		// At this point restrictiveFlag may ONLY have two potential value : FIELD LOCAL (i.e cast <<(VariableBinding) binding>> is valid)

-		int length = tokens.length;

-		FieldBinding field;

-		if ((bits & FIELD) != 0) {

-			field = (FieldBinding) this.binding;

-			if (!field.isStatic()) {

-				//must check for the static status....

-				if (indexOfFirstFieldBinding > 1  //accessing to a field using a type as "receiver" is allowed only with static field

-						 || scope.methodScope().isStatic) { 	// the field is the first token of the qualified reference....

-					scope.problemReporter().staticFieldAccessToNonStaticVariable(this, field);

-					return null;

-				 }

-			} else {

-				// indirect static reference ?

-				if (indexOfFirstFieldBinding > 1 

-						&& field.declaringClass != actualReceiverType) {

-					scope.problemReporter().indirectAccessToStaticField(this, field);

-				}

-			}

-			// only last field is actually a write access if any

-			if (isFieldUseDeprecated(field, scope, (this.bits & IsStrictlyAssignedMASK) !=0 && indexOfFirstFieldBinding == length))

-				scope.problemReporter().deprecatedField(field, this);

-		} else {

-			field = null;

-		}

-		TypeBinding type = ((VariableBinding) binding).type;

-		int index = indexOfFirstFieldBinding;

-		if (index == length) { //	restrictiveFlag == FIELD

-			this.constant = FieldReference.getConstantFor((FieldBinding) binding, this, false, scope);

-			return type;

-		}

-		// allocation of the fieldBindings array	and its respective constants

-		int otherBindingsLength = length - index;

-		otherCodegenBindings = otherBindings = new FieldBinding[otherBindingsLength];

-		otherDepths = new int[otherBindingsLength];

-		

-		// fill the first constant (the one of the binding)

-		this.constant = field != null

-				? FieldReference.getConstantFor((FieldBinding) binding, this, false, scope)

-				: ((VariableBinding) binding).constant();

-		// save first depth, since will be updated by visibility checks of other bindings

-		int firstDepth = (bits & DepthMASK) >> DepthSHIFT;

-		// iteration on each field	

-		while (index < length) {

-			char[] token = tokens[index];

-			if (type == null)

-				return null; // could not resolve type prior to this point

-

-			// set generic cast of for previous field (if any)

-			if (field != null) {

-				FieldBinding originalBinding = field.original();

-				if (originalBinding != field) {

-				    // extra cast needed if method return type has type variable

-				    if ((originalBinding.type.tagBits & TagBits.HasTypeVariable) != 0 && type.id != T_Object) {

-				    	setGenericCast(index-1,originalBinding.type.genericCast(type));

-				    }

-				} 	

-			}

-			bits &= ~DepthMASK; // flush previous depth if any			

-			field = scope.getField(type, token, this);

-			int place = index - indexOfFirstFieldBinding;

-			otherBindings[place] = field;

-			otherDepths[place] = (bits & DepthMASK) >> DepthSHIFT;

-			if (field.isValidBinding()) {

-				// only last field is actually a write access if any

-				if (isFieldUseDeprecated(field, scope, (this.bits & IsStrictlyAssignedMASK) !=0 && index+1 == length)) {

-					scope.problemReporter().deprecatedField(field, this);

-				}

-				Constant someConstant = FieldReference.getConstantFor(field, this, false, scope);

-				// constant propagation can only be performed as long as the previous one is a constant too.

-				if (this.constant != NotAConstant) {

-					this.constant = someConstant;					

-				}

-

-				if (field.isStatic()) {

-					// static field accessed through receiver? legal but unoptimal (optional warning)

-					scope.problemReporter().nonStaticAccessToStaticField(this, field);

-					// indirect static reference ?

-					if (field.declaringClass != type) {

-						scope.problemReporter().indirectAccessToStaticField(this, field);

-					}

-				}

-				type = field.type;

-				index++;

-			} else {

-				constant = NotAConstant; //don't fill other constants slots...

-				scope.problemReporter().invalidField(this, field, index, type);

-				setDepth(firstDepth);

-				return null;

-			}

-		}

-		setDepth(firstDepth);

-		return (otherBindings[otherBindingsLength - 1]).type;

-	}

-	public void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-		if (!flowInfo.isReachable()) return;

-		//If inlinable field, forget the access emulation, the code gen will directly target it

-		if (((bits & DepthMASK) == 0) || (constant != NotAConstant)) {

-			return;

-		}

-		if ((bits & RestrictiveFlagMASK) == LOCAL) {

-			currentScope.emulateOuterAccess((LocalVariableBinding) binding);

-		}

-	}

-	/**

-	 * index is <0 to denote write access emulation

-	 */

-	public void manageSyntheticAccessIfNecessary(

-			BlockScope currentScope,

-			FieldBinding fieldBinding,

-			TypeBinding lastReceiverType,

-			int index,

-			FlowInfo flowInfo) {

-	    

-		if (!flowInfo.isReachable()) return;

-		// index == 0 denotes the first fieldBinding, index > 0 denotes one of the 'otherBindings', index < 0 denotes a write access (to last binding)

-		if (fieldBinding.isConstantValue())

-			return;

-

-		// if field from parameterized type got found, use the original field at codegen time

-		FieldBinding originalField = fieldBinding.original();

-		if (originalField != fieldBinding) {

-			setCodegenBinding(index < 0 ? (this.otherBindings == null ? 0 : this.otherBindings.length) : index, originalField);

-		}

-		

-		if (fieldBinding.isPrivate()) { // private access

-		    FieldBinding someCodegenBinding = getCodegenBinding(index < 0 ? (this.otherBindings == null ? 0 : this.otherBindings.length) : index);

-			if (someCodegenBinding.declaringClass != currentScope.enclosingSourceType()) {

-			    setSyntheticAccessor(fieldBinding, index, 

-			            ((SourceTypeBinding) someCodegenBinding.declaringClass).addSyntheticMethod(someCodegenBinding, index >= 0 /*read-access?*/));

-				currentScope.problemReporter().needToEmulateFieldAccess(someCodegenBinding, this, index >= 0 /*read-access?*/);

-				return;

-			}

-		} else if (fieldBinding.isProtected()){

-		    int depth = fieldBinding == binding 

-		    		? (bits & DepthMASK) >> DepthSHIFT 

-		    		 : otherDepths[index < 0 ? otherDepths.length-1 : index-1];

-			

-			// implicit protected access 

-			if (depth > 0 && (fieldBinding.declaringClass.getPackage() != currentScope.enclosingSourceType().getPackage())) {

-			    FieldBinding someCodegenBinding = getCodegenBinding(index < 0 ? (this.otherBindings == null ? 0 : this.otherBindings.length) : index);

-			    setSyntheticAccessor(fieldBinding, index, 

-			            ((SourceTypeBinding) currentScope.enclosingSourceType().enclosingTypeAt(depth)).addSyntheticMethod(someCodegenBinding, index >= 0 /*read-access?*/));

-				currentScope.problemReporter().needToEmulateFieldAccess(someCodegenBinding, this, index >= 0 /*read-access?*/);

-				return;

-			}

-		}

-		// if the binding declaring class is not visible, need special action

-		// for runtime compatibility on 1.2 VMs : change the declaring class of the binding

-		// NOTE: from target 1.2 on, field's declaring class is touched if any different from receiver type

-		if (fieldBinding.declaringClass != lastReceiverType

-			&& !lastReceiverType.isArrayType()			

-			&& fieldBinding.declaringClass != null

-			&& !fieldBinding.isConstantValue()

-			&& ((currentScope.environment().options.targetJDK >= ClassFileConstants.JDK1_2

-					&& (fieldBinding != binding || indexOfFirstFieldBinding > 1 || !fieldBinding.isStatic())

-					&& fieldBinding.declaringClass.id != T_Object)

-				|| !fieldBinding.declaringClass.canBeSeenBy(currentScope))){

-		    setCodegenBinding(

-		            index < 0 ? (this.otherBindings == null ? 0 : this.otherBindings.length) : index, 

-		            currentScope.enclosingSourceType().getUpdatedFieldBinding(

-		                    getCodegenBinding(index < 0 ? (this.otherBindings == null ? 0 : this.otherBindings.length) : index), 

-		                    (ReferenceBinding)lastReceiverType.erasure()));

-		}

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		

-		for (int i = 0; i < tokens.length; i++) {

-			if (i > 0) output.append('.');

-			output.append(tokens[i]);

-		}

-		return output;

-	}

-		

-	/**

-	 * Normal field binding did not work, try to bind to a field of the delegate receiver.

-	 */

-	public TypeBinding reportError(BlockScope scope) {

-		if (binding instanceof ProblemFieldBinding) {

-			scope.problemReporter().invalidField(this, (FieldBinding) binding);

-		} else if (binding instanceof ProblemReferenceBinding) {

-			scope.problemReporter().invalidType(this, (TypeBinding) binding);

-		} else {

-			scope.problemReporter().unresolvableReference(this, binding);

-		}

-		return null;

-	}

-	public TypeBinding resolveType(BlockScope scope) {

-		// field and/or local are done before type lookups

-		// the only available value for the restrictiveFlag BEFORE

-		// the TC is Flag_Type Flag_LocalField and Flag_TypeLocalField 

-		this.actualReceiverType = this.receiverType = scope.enclosingSourceType();

-		constant = Constant.NotAConstant;

-		if ((this.codegenBinding = this.binding = scope.getBinding(tokens, bits & RestrictiveFlagMASK, this, true /*resolve*/)).isValidBinding()) {

-			switch (bits & RestrictiveFlagMASK) {

-				case VARIABLE : //============only variable===========

-				case TYPE | VARIABLE :

-					if (binding instanceof LocalVariableBinding) {

-						if (!((LocalVariableBinding) binding).isFinal() && ((bits & DepthMASK) != 0))

-							scope.problemReporter().cannotReferToNonFinalOuterLocal(

-								(LocalVariableBinding) binding,

-								this);

-						bits &= ~RestrictiveFlagMASK; // clear bits

-						bits |= LOCAL;

-						return this.resolvedType = getOtherFieldBindings(scope);

-					}

-					if (binding instanceof FieldBinding) {

-						// check for forward references

-						FieldBinding fieldBinding = (FieldBinding) binding;

-						MethodScope methodScope = scope.methodScope();

-						if (methodScope.enclosingSourceType() == fieldBinding.declaringClass

-								&& methodScope.lastVisibleFieldID >= 0

-								&& fieldBinding.id >= methodScope.lastVisibleFieldID) {

-							if ((!fieldBinding.isStatic() || methodScope.isStatic)

-								&& this.indexOfFirstFieldBinding == 1) {

-								scope.problemReporter().forwardReference(this, 0, scope.enclosingSourceType());

-								}

-						}

-						if (!fieldBinding.isStatic() 

-								&& this.indexOfFirstFieldBinding == 1

-								&& scope.environment().options.getSeverity(CompilerOptions.UnqualifiedFieldAccess) != ProblemSeverities.Ignore) {

-							scope.problemReporter().unqualifiedFieldAccess(this, fieldBinding);

-						}

-						bits &= ~RestrictiveFlagMASK; // clear bits

-						bits |= FIELD;

-						

-						// check for deprecated receiver type

-						// deprecation check for receiver type if not first token

-						if (indexOfFirstFieldBinding > 1) {

-							if (isTypeUseDeprecated(this.actualReceiverType, scope))

-								scope.problemReporter().deprecatedType(this.actualReceiverType, this);

-						}

-						

-						return this.resolvedType = getOtherFieldBindings(scope);

-					}

-					// thus it was a type

-					bits &= ~RestrictiveFlagMASK; // clear bits

-					bits |= TYPE;

-				case TYPE : //=============only type ==============

-				    TypeBinding type = (TypeBinding) binding;

-					if (isTypeUseDeprecated(type, scope))

-						scope.problemReporter().deprecatedType(type, this);

-					return this.resolvedType = scope.convertToRawType(type);

-			}

-		}

-		//========error cases===============

-		return this.resolvedType = this.reportError(scope);

-	}

-

-	// set the matching codegenBinding and generic cast

-	protected void setCodegenBinding(int index, FieldBinding someCodegenBinding) {

-

-		if (index == 0){

-			this.codegenBinding = someCodegenBinding;

-		} else {

-		    int length = this.otherBindings.length;

-			if (this.otherCodegenBindings == this.otherBindings){

-				System.arraycopy(this.otherBindings, 0, this.otherCodegenBindings = new FieldBinding[length], 0, length);

-			}

-			this.otherCodegenBindings[index-1] = someCodegenBinding;

-		}	    

-	}

-

-	// set the matching codegenBinding and generic cast

-	protected void setGenericCast(int index, TypeBinding someGenericCast) {

-

-		if (index == 0){

-			this.genericCast = someGenericCast;

-		} else {

-		    if (this.otherGenericCasts == null) {

-		        this.otherGenericCasts = new TypeBinding[this.otherBindings.length];

-		    }

-		    this.otherGenericCasts[index-1] = someGenericCast;

-		}	    

-	}

-	

-	// set the matching synthetic accessor

-	protected void setSyntheticAccessor(FieldBinding fieldBinding, int index, SyntheticAccessMethodBinding syntheticAccessor) {

-		if (index < 0) { // write-access ?

-			syntheticWriteAccessor = syntheticAccessor;

-	    } else {

-			if (syntheticReadAccessors == null) {

-				syntheticReadAccessors = new SyntheticAccessMethodBinding[otherBindings == null ? 1 : otherBindings.length + 1];

-			}

-			syntheticReadAccessors[index] = syntheticAccessor;

-	    }

-	}

-	

-	public void setFieldIndex(int index) {

-		this.indexOfFirstFieldBinding = index;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	public String unboundReferenceErrorName() {

-		return new String(tokens[0]);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedSuperReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedSuperReference.js
deleted file mode 100644
index 02d743f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedSuperReference.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class QualifiedSuperReference extends QualifiedThisReference {

-	

-	public QualifiedSuperReference(TypeReference name, int pos, int sourceEnd) {

-		super(name, pos, sourceEnd);

-	}

-

-	public boolean isSuper() {

-

-		return true;

-	}

-

-	public boolean isThis() {

-

-		return false;

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		return qualification.print(0, output).append(".super"); //$NON-NLS-1$

-	}

-	

-	public TypeBinding resolveType(BlockScope scope) {

-

-		if ((this.bits & ParenthesizedMASK) != 0) {

-			scope.problemReporter().invalidParenthesizedExpression(this);

-			return null;

-		}

-		super.resolveType(scope);

-		if (currentCompatibleType == null)

-			return null; // error case

-

-		if (currentCompatibleType.id == T_Object) {

-			scope.problemReporter().cannotUseSuperInJavaLangObject(this);

-			return null;

-		}

-		return this.resolvedType = currentCompatibleType.superclass();

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			qualification.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedThisReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedThisReference.js
deleted file mode 100644
index fe5aa41..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedThisReference.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class QualifiedThisReference extends ThisReference {

-	

-	public TypeReference qualification;

-	ReferenceBinding currentCompatibleType;

-	

-	public QualifiedThisReference(TypeReference name, int sourceStart, int sourceEnd) {

-		super(sourceStart, sourceEnd);

-		qualification = name;

-		this.sourceStart = name.sourceStart;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		return flowInfo;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo,

-		boolean valueRequired) {

-

-		return flowInfo;

-	}

-

-	/**

-	 * Code generation for QualifiedThisReference

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-

-		int pc = codeStream.position;

-		if (valueRequired) {

-			if ((bits & DepthMASK) != 0) {

-				Object[] emulationPath =

-					currentScope.getEmulationPath(this.currentCompatibleType, true /*only exact match*/, false/*consider enclosing arg*/);

-				codeStream.generateOuterAccess(emulationPath, this, this.currentCompatibleType, currentScope);

-			} else {

-				// nothing particular after all

-				codeStream.aload_0();

-			}

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-

-		constant = NotAConstant;

-		TypeBinding type = this.resolvedType = this.qualification.resolveType(scope);

-		if (type == null) return null;

-		// X.this is not a raw type as denoting enclosing instance

-		if (type.isRawType()) {

-		    RawTypeBinding rawType = (RawTypeBinding) type;

-		    type = this.resolvedType = rawType.type; // unwrap

-		}

-		// the qualification MUST exactly match some enclosing type name

-		// Its possible to qualify 'this' by the name of the current class

-		int depth = 0;

-		this.currentCompatibleType = scope.referenceType().binding;

-		while (this.currentCompatibleType != null

-			&& this.currentCompatibleType != type) {

-			depth++;

-			this.currentCompatibleType = this.currentCompatibleType.isStatic() ? null : this.currentCompatibleType.enclosingType();

-		}

-		bits &= ~DepthMASK; // flush previous depth if any			

-		bits |= (depth & 0xFF) << DepthSHIFT; // encoded depth into 8 bits

-

-		if (this.currentCompatibleType == null) {

-			scope.problemReporter().noSuchEnclosingInstance(type, this, false);

-			return type;

-		}

-

-		// Ensure one cannot write code like: B() { super(B.this); }

-		if (depth == 0) {

-			checkAccess(scope.methodScope());

-		} // if depth>0, path emulation will diagnose bad scenarii

-		return type;

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-

-		return qualification.print(0, output).append(".this"); //$NON-NLS-1$

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			qualification.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedTypeReference.js
deleted file mode 100644
index 2b4f35a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/QualifiedTypeReference.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-

-public class QualifiedTypeReference extends TypeReference {

-

-	public char[][] tokens;

-	public long[] sourcePositions;

-

-	public QualifiedTypeReference(char[][] sources , long[] poss) {

-		

-		tokens = sources ;

-		sourcePositions = poss ;

-		sourceStart = (int) (sourcePositions[0]>>>32) ;

-		sourceEnd = (int)(sourcePositions[sourcePositions.length-1] & 0x00000000FFFFFFFFL ) ;

-	}

-		

-	public TypeReference copyDims(int dim){

-		//return a type reference copy of me with some dimensions

-		//warning : the new type ref has a null binding

-		return new ArrayQualifiedTypeReference(tokens, dim, sourcePositions);

-	}

-

-	protected TypeBinding findNextTypeBinding(int tokenIndex, Scope scope, PackageBinding packageBinding) {

-		try {

-		    if (this.resolvedType == null) {

-				this.resolvedType = scope.getType(this.tokens[tokenIndex], packageBinding);

-		    } else {

-			    this.resolvedType = scope.getMemberType(this.tokens[tokenIndex], (ReferenceBinding) this.resolvedType);

-				if (this.resolvedType instanceof ProblemReferenceBinding) {

-					ProblemReferenceBinding problemBinding = (ProblemReferenceBinding) this.resolvedType;

-					this.resolvedType = new ProblemReferenceBinding(

-						org.eclipse.wst.jsdt.core.compiler.CharOperation.subarray(this.tokens, 0, tokenIndex + 1),

-						problemBinding.original,

-						this.resolvedType.problemId());

-				}

-			}

-		    return this.resolvedType;

-		} catch (AbortCompilation e) {

-			e.updateContext(this, scope.referenceCompilationUnit().compilationResult);

-			throw e;

-		}

-	}

-

-	protected TypeBinding getTypeBinding(Scope scope) {

-		

-		if (this.resolvedType != null)

-			return this.resolvedType;

-

-		Binding binding = scope.getPackage(this.tokens);

-		if (binding != null && !binding.isValidBinding())

-			return (ReferenceBinding) binding; // not found

-

-	    PackageBinding packageBinding = binding == null ? null : (PackageBinding) binding;

-	    boolean isClassScope = scope.kind == Scope.CLASS_SCOPE;

-	    ReferenceBinding qualifiedType = null;

-		for (int i = packageBinding == null ? 0 : packageBinding.compoundName.length, max = this.tokens.length; i < max; i++) {

-			findNextTypeBinding(i, scope, packageBinding);

-			if (!this.resolvedType.isValidBinding())

-				return this.resolvedType;

-			

-			if (isClassScope)

-				if (((ClassScope) scope).detectCycle(this.resolvedType, this, null)) // must connect hierarchy to find inherited member types

-					return null;

-			ReferenceBinding currentType = (ReferenceBinding) this.resolvedType;

-			if (currentType.isGenericType()) {

-				qualifiedType = scope.environment().createRawType(currentType, qualifiedType);

-			} else {

-				qualifiedType = (qualifiedType != null && (qualifiedType.isRawType() || qualifiedType.isParameterizedType()))

-										? scope.createParameterizedType(currentType, null, qualifiedType)

-										: currentType;

-			}

-		}

-		this.resolvedType = qualifiedType;

-		return this.resolvedType;

-	}

-	

-	public char[][] getTypeName(){

-	

-		return tokens;

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		

-		for (int i = 0; i < tokens.length; i++) {

-			if (i > 0) output.append('.');

-			output.append(tokens[i]);

-		}

-		return output;

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Reference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Reference.js
deleted file mode 100644
index 183ac7a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Reference.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public abstract class Reference extends Expression  {

-/**

- * BaseLevelReference constructor comment.

- */

-public Reference() {

-	super();

-}

-public abstract FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound);

-

-public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-	return flowInfo;

-}

-public FieldBinding fieldBinding() {

-	//this method should be sent one FIELD-tagged references

-	//  (ref.bits & BindingIds.FIELD != 0)()

-	return null ;

-}

-public void fieldStore(CodeStream codeStream, FieldBinding fieldBinding, MethodBinding syntheticWriteAccessor, boolean valueRequired) {

-

-	if (fieldBinding.isStatic()) {

-		if (valueRequired) {

-			if ((fieldBinding.type == LongBinding) || (fieldBinding.type == DoubleBinding)) {

-				codeStream.dup2();

-			} else {

-				codeStream.dup();

-			}

-		}

-		if (syntheticWriteAccessor == null) {

-			codeStream.putstatic(fieldBinding);

-		} else {

-			codeStream.invokestatic(syntheticWriteAccessor);

-		}

-	} else { // Stack:  [owner][new field value]  ---> [new field value][owner][new field value]

-		if (valueRequired) {

-			if ((fieldBinding.type == LongBinding) || (fieldBinding.type == DoubleBinding)) {

-				codeStream.dup2_x1();

-			} else {

-				codeStream.dup_x1();

-			}

-		}

-		if (syntheticWriteAccessor == null) {

-			codeStream.putfield(fieldBinding);

-		} else {

-			codeStream.invokestatic(syntheticWriteAccessor);

-		}

-	}

-}

-public abstract void generateAssignment(BlockScope currentScope, CodeStream codeStream, Assignment assignment, boolean valueRequired);

-

-public abstract void generateCompoundAssignment(BlockScope currentScope, CodeStream codeStream, Expression expression, int operator, int assignmentImplicitConversion, boolean valueRequired);

-

-public abstract void generatePostIncrement(BlockScope currentScope, CodeStream codeStream, CompoundAssignment postIncrement, boolean valueRequired);

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ReturnStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ReturnStatement.js
deleted file mode 100644
index 1e3c95b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ReturnStatement.js
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ReturnStatement extends Statement {

-		

-	public Expression expression;

-	public boolean isSynchronized;

-	public SubRoutineStatement[] subroutines;

-	public boolean isAnySubRoutineEscaping = false;

-	public LocalVariableBinding saveValueVariable;

-	

-	public ReturnStatement(Expression expr, int s, int e ) {

-		sourceStart = s;

-		sourceEnd = e;

-		expression = expr ;

-	}

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {	// here requires to generate a sequence of finally blocks invocations depending corresponding

-		// to each of the traversed try statements, so that execution will terminate properly.

-	

-		// lookup the label, this should answer the returnContext

-	

-		if (expression != null) {

-			flowInfo = expression.analyseCode(currentScope, flowContext, flowInfo);

-		}

-		// compute the return sequence (running the finally blocks)

-		FlowContext traversedContext = flowContext;

-		int subIndex = 0, maxSub = 5;

-		boolean saveValueNeeded = false;

-		boolean hasValueToSave = expression != null && expression.constant == NotAConstant;

-		do {

-			SubRoutineStatement sub;

-			if ((sub = traversedContext.subRoutine()) != null) {

-				if (this.subroutines == null){

-					this.subroutines = new SubRoutineStatement[maxSub];

-				}

-				if (subIndex == maxSub) {

-					System.arraycopy(this.subroutines, 0, (this.subroutines = new SubRoutineStatement[maxSub *= 2]), 0, subIndex); // grow

-				}

-				this.subroutines[subIndex++] = sub;

-				if (sub.isSubRoutineEscaping()) {

-					saveValueNeeded = false;

-					isAnySubRoutineEscaping = true;

-					break;

-				}

-			}

-			traversedContext.recordReturnFrom(flowInfo.unconditionalInits());

-	

-			ASTNode node;

-			if ((node = traversedContext.associatedNode) instanceof SynchronizedStatement) {

-				isSynchronized = true;

-	

-			} else if (node instanceof TryStatement) {

-				TryStatement tryStatement = (TryStatement) node;

-				flowInfo.addInitializationsFrom(tryStatement.subRoutineInits); // collect inits

-				if (hasValueToSave) {

-					if (this.saveValueVariable == null){ // closest subroutine secret variable is used

-						prepareSaveValueLocation(tryStatement);

-					}

-					saveValueNeeded = true;

-				}

-	

-			} else if (traversedContext instanceof InitializationFlowContext) {

-					currentScope.problemReporter().cannotReturnInInitializer(this);

-					return FlowInfo.DEAD_END;

-			}

-		} while ((traversedContext = traversedContext.parent) != null);

-		

-		// resize subroutines

-		if ((subroutines != null) && (subIndex != maxSub)) {

-			System.arraycopy(subroutines, 0, (subroutines = new SubRoutineStatement[subIndex]), 0, subIndex);

-		}

-	

-		// secret local variable for return value (note that this can only occur in a real method)

-		if (saveValueNeeded) {

-			if (this.saveValueVariable != null) {

-				this.saveValueVariable.useFlag = LocalVariableBinding.USED;

-			}

-		} else {

-			this.saveValueVariable = null;

-			if (!isSynchronized && this.expression != null && this.expression.resolvedType == BooleanBinding) {

-				this.expression.bits |= ValueForReturnMASK;

-			}

-		}

-		return FlowInfo.DEAD_END;

-	}

-	 

-	/**

-	 * Retrun statement code generation

-	 *

-	 *   generate the finallyInvocationSequence.

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-		// generate the expression

-		if ((expression != null) && (expression.constant == NotAConstant)) {

-			expression.generateCode(currentScope, codeStream, needValue()); // no value needed if non-returning subroutine

-			generateStoreSaveValueIfNecessary(codeStream);

-		}

-		

-		// generation of code responsible for invoking the finally blocks in sequence

-		if (subroutines != null) {

-			for (int i = 0, max = subroutines.length; i < max; i++) {

-				SubRoutineStatement sub = subroutines[i];

-				sub.generateSubRoutineInvocation(currentScope, codeStream);

-				if (sub.isSubRoutineEscaping()) {

-						codeStream.recordPositionsFrom(pc, this.sourceStart);

-						SubRoutineStatement.reenterExceptionHandlers(subroutines, i, codeStream);

-						return;

-				}

-				sub.exitAnyExceptionHandler();

-			}

-		}

-		if (saveValueVariable != null) codeStream.load(saveValueVariable);

-		

-		if ((expression != null) && (expression.constant != NotAConstant)) {

-			codeStream.generateConstant(expression.constant, expression.implicitConversion);

-			generateStoreSaveValueIfNecessary(codeStream);		

-		}

-		// output the suitable return bytecode or wrap the value inside a descriptor for doits

-		this.generateReturnBytecode(codeStream);

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-		SubRoutineStatement.reenterExceptionHandlers(subroutines, -1, codeStream);

-	}

-	/**

-	 * Dump the suitable return bytecode for a return statement

-	 *

-	 */

-	public void generateReturnBytecode(CodeStream codeStream) {

-	

-		if (expression == null) {

-			codeStream.return_();

-		} else {

-			switch (expression.implicitConversion >> 4) {

-				case T_boolean :

-				case T_int :

-					codeStream.ireturn();

-					break;

-				case T_float :

-					codeStream.freturn();

-					break;

-				case T_long :

-					codeStream.lreturn();

-					break;

-				case T_double :

-					codeStream.dreturn();

-					break;

-				default :

-					codeStream.areturn();

-			}

-		}

-	}

-	public void generateStoreSaveValueIfNecessary(CodeStream codeStream){

-		if (saveValueVariable != null) codeStream.store(saveValueVariable, false);

-	}

-	public boolean needValue(){

-		return (subroutines == null) || (saveValueVariable != null) || isSynchronized;

-	}

-	public void prepareSaveValueLocation(TryStatement targetTryStatement){

-			

-		this.saveValueVariable = targetTryStatement.secretReturnValue;

-	}

-	public StringBuffer printStatement(int tab, StringBuffer output){

-	

-		printIndent(tab, output).append("return "); //$NON-NLS-1$

-		if (expression != null )

-			expression.printExpression(0, output) ;

-		return output.append(';');

-	}

-	

-	public void resolve(BlockScope scope) {

-		

-		MethodScope methodScope = scope.methodScope();

-		MethodBinding methodBinding;

-		TypeBinding methodType =

-			(methodScope.referenceContext instanceof AbstractMethodDeclaration)

-				? ((methodBinding = ((AbstractMethodDeclaration) methodScope.referenceContext).binding) == null 

-					? null 

-					: methodBinding.returnType)

-				: VoidBinding;

-		TypeBinding expressionType;

-		if (methodType == VoidBinding) {

-			// the expression should be null

-			if (expression == null)

-				return;

-			if ((expressionType = expression.resolveType(scope)) != null)

-				scope.problemReporter().attemptToReturnNonVoidExpression(this, expressionType);

-			return;

-		}

-		if (expression == null) {

-			if (methodType != null) scope.problemReporter().shouldReturn(methodType, this);

-			return;

-		}

-		expression.setExpectedType(methodType); // needed in case of generic method invocation

-		if ((expressionType = expression.resolveType(scope)) == null) return;

-		if (expressionType == VoidBinding) {

-			scope.problemReporter().attemptToReturnVoidValue(this);

-			return;

-		}

-		if (methodType == null) 

-			return;

-	

-		if (expressionType.isRawType() && (methodType.isBoundParameterizedType() || methodType.isGenericType())) {

-		    scope.problemReporter().unsafeRawConversion(this.expression, expressionType, methodType);

-		}

-		

-		if (expression.isConstantValueOfTypeAssignableToType(expressionType, methodType)) {

-			// dealing with constant

-			expression.computeConversion(scope, methodType, expressionType);

-			return;

-		}

-		if (expressionType.isCompatibleWith(methodType)) {

-			expression.computeConversion(scope, methodType, expressionType);

-			return;

-		}

-		scope.problemReporter().typeMismatchError(expressionType, methodType, expression);

-	}

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (expression != null)

-				expression.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleMemberAnnotation.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleMemberAnnotation.js
deleted file mode 100644
index abc054b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleMemberAnnotation.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope;

-

-/**

- * SingleMemberAnnotation node

- */

-public class SingleMemberAnnotation extends Annotation {

-	public Expression memberValue;

-	

-	public SingleMemberAnnotation(char[][] tokens, long[] sourcePositions, int sourceStart) {

-		this.tokens = tokens;

-		this.sourcePositions = sourcePositions;

-		this.sourceStart = sourceStart;

-		this.sourceEnd = (int) sourcePositions[sourcePositions.length - 1];

-	}

-	

-	public SingleMemberAnnotation(char[] token, long sourcePosition, int sourceStart) {

-		this.tokens = new char[][] { token };

-		this.sourcePositions = new long[] { sourcePosition };

-		this.sourceStart = sourceStart;

-		this.sourceEnd = (int) sourcePosition;

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		super.printExpression(indent, output);

-		output.append('(');

-		this.memberValue.printExpression(indent, output);

-		return output.append(')');

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.memberValue != null) {

-				this.memberValue.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.memberValue != null) {

-				this.memberValue.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-	public void traverse(ASTVisitor visitor, CompilationUnitScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.memberValue != null) {

-				this.memberValue.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleNameReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleNameReference.js
deleted file mode 100644
index 8f05a7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleNameReference.js
+++ /dev/null
@@ -1,689 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-

-public class SingleNameReference extends NameReference implements OperatorIds {

-    

-	public char[] token;

-	public MethodBinding[] syntheticAccessors; // [0]=read accessor [1]=write accessor

-	public static final int READ = 0;

-	public static final int WRITE = 1;

-	public TypeBinding genericCast;

-	

-	public SingleNameReference(char[] source, long pos) {

-		super();

-		token = source;

-		sourceStart = (int) (pos >>> 32);

-		sourceEnd = (int) pos;

-	}

-	public FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound) {

-	

-		boolean isReachable = flowInfo.isReachable();

-		// compound assignment extra work

-		if (isCompound) { // check the variable part is initialized if blank final

-			switch (bits & RestrictiveFlagMASK) {

-				case FIELD : // reading a field

-					FieldBinding fieldBinding;

-					if ((fieldBinding = (FieldBinding) binding).isBlankFinal() 

-							&& currentScope.allowBlankFinalFieldAssignment(fieldBinding)) {

-						if (!flowInfo.isDefinitelyAssigned(fieldBinding)) {

-							currentScope.problemReporter().uninitializedBlankFinalField(fieldBinding, this);

-						}

-					}

-					manageSyntheticAccessIfNecessary(currentScope, flowInfo, true /*read-access*/);

-					break;

-				case LOCAL : // reading a local variable

-					// check if assigning a final blank field

-					LocalVariableBinding localBinding;

-					if (!flowInfo.isDefinitelyAssigned(localBinding = (LocalVariableBinding) binding)) {

-						currentScope.problemReporter().uninitializedLocalVariable(localBinding, this);

-						// we could improve error msg here telling "cannot use compound assignment on final local variable"

-					}

-					if (isReachable) {

-						localBinding.useFlag = LocalVariableBinding.USED;

-					} else if (localBinding.useFlag == LocalVariableBinding.UNUSED) {

-						localBinding.useFlag = LocalVariableBinding.FAKE_USED;

-					}

-			}

-		}

-		if (assignment.expression != null) {

-			flowInfo = assignment.expression.analyseCode(currentScope, flowContext, flowInfo).unconditionalInits();

-		}

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD : // assigning to a field

-				manageSyntheticAccessIfNecessary(currentScope, flowInfo, false /*write-access*/);

-	

-				// check if assigning a final field

-				FieldBinding fieldBinding;

-				if ((fieldBinding = (FieldBinding) binding).isFinal()) {

-					// inside a context where allowed

-					if (!isCompound && fieldBinding.isBlankFinal() && currentScope.allowBlankFinalFieldAssignment(fieldBinding)) {

-						if (flowInfo.isPotentiallyAssigned(fieldBinding)) {

-							currentScope.problemReporter().duplicateInitializationOfBlankFinalField(fieldBinding, this);

-						} else {

-							flowContext.recordSettingFinal(fieldBinding, this, flowInfo);						

-						}

-						flowInfo.markAsDefinitelyAssigned(fieldBinding);

-					} else {

-						currentScope.problemReporter().cannotAssignToFinalField(fieldBinding, this);

-					}

-				}

-				break;

-			case LOCAL : // assigning to a local variable 

-				LocalVariableBinding localBinding = (LocalVariableBinding) binding;

-				if (!flowInfo.isDefinitelyAssigned(localBinding)){// for local variable debug attributes

-					bits |= FirstAssignmentToLocalMASK;

-				} else {

-					bits &= ~FirstAssignmentToLocalMASK;

-				}

-				if (localBinding.isFinal()) {

-					if ((bits & DepthMASK) == 0) {

-						// tolerate assignment to final local in unreachable code (45674)

-						if ((isReachable && isCompound) || !localBinding.isBlankFinal()){

-							currentScope.problemReporter().cannotAssignToFinalLocal(localBinding, this);

-						} else if (flowInfo.isPotentiallyAssigned(localBinding)) {

-							currentScope.problemReporter().duplicateInitializationOfFinalLocal(localBinding, this);

-						} else {

-							flowContext.recordSettingFinal(localBinding, this, flowInfo);								

-						}

-					} else {

-						currentScope.problemReporter().cannotAssignToFinalOuterLocal(localBinding, this);

-					}

-				}

-				flowInfo.markAsDefinitelyAssigned(localBinding);

-		}

-		manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-		return flowInfo;

-	}

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-		return analyseCode(currentScope, flowContext, flowInfo, true);

-	}

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, boolean valueRequired) {

-	

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD : // reading a field

-				if (valueRequired) {

-					manageSyntheticAccessIfNecessary(currentScope, flowInfo, true /*read-access*/);

-				}

-				// check if reading a final blank field

-				FieldBinding fieldBinding;

-				if ((fieldBinding = (FieldBinding) binding).isBlankFinal() 

-						&& currentScope.allowBlankFinalFieldAssignment(fieldBinding)) {

-					if (!flowInfo.isDefinitelyAssigned(fieldBinding)) {

-						currentScope.problemReporter().uninitializedBlankFinalField(fieldBinding, this);

-					}

-				}

-				break;

-			case LOCAL : // reading a local variable

-				LocalVariableBinding localBinding;

-				if (!flowInfo.isDefinitelyAssigned(localBinding = (LocalVariableBinding) binding)) {

-					currentScope.problemReporter().uninitializedLocalVariable(localBinding, this);

-				}

-				if (flowInfo.isReachable()) {

-					localBinding.useFlag = LocalVariableBinding.USED;

-				} else if (localBinding.useFlag == LocalVariableBinding.UNUSED) {

-					localBinding.useFlag = LocalVariableBinding.FAKE_USED;

-				}

-		}

-		if (valueRequired) {

-			manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-		}

-		return flowInfo;

-	}

-	public TypeBinding checkFieldAccess(BlockScope scope) {

-	

-		FieldBinding fieldBinding = (FieldBinding) binding;

-		

-		bits &= ~RestrictiveFlagMASK; // clear bits

-		bits |= FIELD;

-		if (!((FieldBinding) binding).isStatic()) {

-			// must check for the static status....

-			if (scope.methodScope().isStatic) {

-				scope.problemReporter().staticFieldAccessToNonStaticVariable(this, fieldBinding);

-				constant = NotAConstant;

-				return fieldBinding.type;

-			}

-		}

-		constant = FieldReference.getConstantFor(fieldBinding, this, true, scope);

-	

-		if (isFieldUseDeprecated(fieldBinding, scope, (this.bits & IsStrictlyAssignedMASK) !=0))

-			scope.problemReporter().deprecatedField(fieldBinding, this);

-	

-		MethodScope ms = scope.methodScope();

-		if ((this.bits & IsStrictlyAssignedMASK) == 0

-			&& ms.enclosingSourceType() == fieldBinding.declaringClass

-			&& ms.lastVisibleFieldID >= 0

-			&& fieldBinding.id >= ms.lastVisibleFieldID) {

-			//if the field is static and ms is not .... then it is valid

-			if (!fieldBinding.isStatic() || ms.isStatic)

-				scope.problemReporter().forwardReference(this, 0, scope.enclosingSourceType());

-		}

-		//====================================================

-	

-		return fieldBinding.type;

-	

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Expression#computeConversion(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding)

-	 */

-	public void computeConversion(Scope scope, TypeBinding runtimeTimeType, TypeBinding compileTimeType) {

-		if (runtimeTimeType == null || compileTimeType == null)

-			return;				

-		if ((bits & FIELD) != 0 && this.binding != null && this.binding.isValidBinding()) {

-			// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)

-			FieldBinding originalBinding = ((FieldBinding)this.binding).original();

-			if (originalBinding != this.binding) {

-			    // extra cast needed if method return type has type variable

-			    if ((originalBinding.type.tagBits & TagBits.HasTypeVariable) != 0 && runtimeTimeType.id != T_Object) {

-			        this.genericCast = originalBinding.type.genericCast(runtimeTimeType);

-			    }

-			} 	

-		}

-		super.computeConversion(scope, runtimeTimeType, compileTimeType);

-}	

-

-	public void generateAssignment(BlockScope currentScope, CodeStream codeStream, Assignment assignment, boolean valueRequired) {

-	

-		// optimizing assignment like: i = i + 1 or i = 1 + i

-		if (assignment.expression.isCompactableOperation()) {

-			BinaryExpression operation = (BinaryExpression) assignment.expression;

-			SingleNameReference variableReference;

-			if ((operation.left instanceof SingleNameReference) && ((variableReference = (SingleNameReference) operation.left).binding == binding)) {

-				// i = i + value, then use the variable on the right hand side, since it has the correct implicit conversion

-				variableReference.generateCompoundAssignment(currentScope, codeStream, syntheticAccessors == null ? null : syntheticAccessors[WRITE], operation.right, (operation.bits & OperatorMASK) >> OperatorSHIFT, operation.left.implicitConversion /*should be equivalent to no conversion*/, valueRequired);

-				return;

-			}

-			int operator = (operation.bits & OperatorMASK) >> OperatorSHIFT;

-			if ((operation.right instanceof SingleNameReference)

-				&& ((operator == PLUS) || (operator == MULTIPLY)) // only commutative operations

-				&& ((variableReference = (SingleNameReference) operation.right).binding == binding)

-				&& (operation.left.constant != NotAConstant) // exclude non constant expressions, since could have side-effect

-				&& ((operation.left.implicitConversion >> 4) != T_String) // exclude string concatenation which would occur backwards

-				&& ((operation.right.implicitConversion >> 4) != T_String)) { // exclude string concatenation which would occur backwards

-				// i = value + i, then use the variable on the right hand side, since it has the correct implicit conversion

-				variableReference.generateCompoundAssignment(currentScope, codeStream, syntheticAccessors == null ? null : syntheticAccessors[WRITE], operation.left, operator, operation.right.implicitConversion /*should be equivalent to no conversion*/, valueRequired);

-				return;

-			}

-		}

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD : // assigning to a field

-				FieldBinding fieldBinding;

-				if (!(fieldBinding = (FieldBinding) this.codegenBinding).isStatic()) { // need a receiver?

-					if ((bits & DepthMASK) != 0) {

-						ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((bits & DepthMASK) >> DepthSHIFT);

-						Object[] emulationPath = currentScope.getEmulationPath(targetType, true /*only exact match*/, false/*consider enclosing arg*/);

-						codeStream.generateOuterAccess(emulationPath, this, targetType, currentScope);

-					} else {

-						this.generateReceiver(codeStream);

-					}

-				}

-				assignment.expression.generateCode(currentScope, codeStream, true);

-				fieldStore(codeStream, fieldBinding, syntheticAccessors == null ? null : syntheticAccessors[WRITE], valueRequired);

-				if (valueRequired) {

-					codeStream.generateImplicitConversion(assignment.implicitConversion);

-				}

-				// no need for generic cast as value got dupped

-				return;

-			case LOCAL : // assigning to a local variable

-				LocalVariableBinding localBinding = (LocalVariableBinding) this.codegenBinding;

-				if (localBinding.resolvedPosition != -1) {

-					assignment.expression.generateCode(currentScope, codeStream, true);

-				} else {

-					if (assignment.expression.constant != NotAConstant) {

-						// assigning an unused local to a constant value = no actual assignment is necessary

-						if (valueRequired) {

-							codeStream.generateConstant(assignment.expression.constant, assignment.implicitConversion);

-						}

-					} else {

-						assignment.expression.generateCode(currentScope, codeStream, true);

-						/* Even though the value may not be required, we force it to be produced, and discard it later

-						on if it was actually not necessary, so as to provide the same behavior as JDK1.2beta3.	*/

-						if (valueRequired) {

-							codeStream.generateImplicitConversion(assignment.implicitConversion); // implicit conversion

-						} else {

-							if ((localBinding.type == LongBinding) || (localBinding.type == DoubleBinding)) {

-								codeStream.pop2();

-							} else {

-								codeStream.pop();

-							}

-						}

-					}

-					return;

-				}

-				// 26903, need extra cast to store null in array local var	

-				if (localBinding.type.isArrayType() 

-					&& (assignment.expression.resolvedType == NullBinding	// arrayLoc = null

-						|| ((assignment.expression instanceof CastExpression)	// arrayLoc = (type[])null

-							&& (((CastExpression)assignment.expression).innermostCastedExpression().resolvedType == NullBinding)))){

-					codeStream.checkcast(localBinding.type); 

-				}

-				

-				// normal local assignment (since cannot store in outer local which are final locations)

-				codeStream.store(localBinding, valueRequired);

-				if ((bits & FirstAssignmentToLocalMASK) != 0) { // for local variable debug attributes

-					localBinding.recordInitializationStartPC(codeStream.position);

-				}

-				// implicit conversion

-				if (valueRequired) {

-					codeStream.generateImplicitConversion(assignment.implicitConversion);

-				}

-		}

-	}

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-		int pc = codeStream.position;

-		if (constant != NotAConstant) {

-			if (valueRequired) {

-				codeStream.generateConstant(constant, implicitConversion);

-			}

-		} else {

-			switch (bits & RestrictiveFlagMASK) {

-				case FIELD : // reading a field

-					FieldBinding fieldBinding;

-					if (valueRequired) {

-						if (!(fieldBinding = (FieldBinding) this.codegenBinding).isConstantValue()) { // directly use inlined value for constant fields

-							boolean isStatic;

-							if (!(isStatic = fieldBinding.isStatic())) {

-								if ((bits & DepthMASK) != 0) {

-									ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((bits & DepthMASK) >> DepthSHIFT);

-									Object[] emulationPath = currentScope.getEmulationPath(targetType, true /*only exact match*/, false/*consider enclosing arg*/);

-									codeStream.generateOuterAccess(emulationPath, this, targetType, currentScope);

-								} else {

-									generateReceiver(codeStream);

-								}

-							}

-							// managing private access							

-							if ((syntheticAccessors == null) || (syntheticAccessors[READ] == null)) {

-								if (isStatic) {

-									codeStream.getstatic(fieldBinding);

-								} else {

-									codeStream.getfield(fieldBinding);

-								}

-							} else {

-								codeStream.invokestatic(syntheticAccessors[READ]);

-							}

-							codeStream.generateImplicitConversion(implicitConversion);

-							if (this.genericCast != null) codeStream.checkcast(this.genericCast);

-					} else { // directly use the inlined value

-							codeStream.generateConstant(fieldBinding.constant(), implicitConversion);

-						}

-					}

-					break;

-				case LOCAL : // reading a local

-					LocalVariableBinding localBinding = (LocalVariableBinding) this.codegenBinding;

-					if (valueRequired) {

-						// outer local?

-						if ((bits & DepthMASK) != 0) {

-							// outer local can be reached either through a synthetic arg or a synthetic field

-							VariableBinding[] path = currentScope.getEmulationPath(localBinding);

-							codeStream.generateOuterAccess(path, this, localBinding, currentScope);

-						} else {

-							// regular local variable read

-							codeStream.load(localBinding);

-						}

-						codeStream.generateImplicitConversion(implicitConversion);

-					}

-			}

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-	/*

-	 * Regular API for compound assignment, relies on the fact that there is only one reference to the

-	 * variable, which carries both synthetic read/write accessors.

-	 * The APIs with an extra argument is used whenever there are two references to the same variable which

-	 * are optimized in one access: e.g "a = a + 1" optimized into "a++".

-	 */

-	public void generateCompoundAssignment(BlockScope currentScope, CodeStream codeStream, Expression expression, int operator, int assignmentImplicitConversion, boolean valueRequired) {

-	

-		this.generateCompoundAssignment(

-			currentScope, 

-			codeStream, 

-			syntheticAccessors == null ? null : syntheticAccessors[WRITE],

-			expression,

-			operator, 

-			assignmentImplicitConversion, 

-			valueRequired);

-	}

-	/*

-	 * The APIs with an extra argument is used whenever there are two references to the same variable which

-	 * are optimized in one access: e.g "a = a + 1" optimized into "a++".

-	 */

-	public void generateCompoundAssignment(BlockScope currentScope, CodeStream codeStream, MethodBinding writeAccessor, Expression expression, int operator, int assignmentImplicitConversion, boolean valueRequired) {

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD : // assigning to a field

-				FieldBinding fieldBinding;

-				if ((fieldBinding = (FieldBinding) this.codegenBinding).isStatic()) {

-					if ((syntheticAccessors == null) || (syntheticAccessors[READ] == null)) {

-						codeStream.getstatic(fieldBinding);

-					} else {

-						codeStream.invokestatic(syntheticAccessors[READ]);

-					}

-				} else {

-					if ((bits & DepthMASK) != 0) {

-						ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((bits & DepthMASK) >> DepthSHIFT);

-						Object[] emulationPath = currentScope.getEmulationPath(targetType, true /*only exact match*/, false/*consider enclosing arg*/);

-						codeStream.generateOuterAccess(emulationPath, this, targetType, currentScope);

-					} else {

-						codeStream.aload_0();

-					}

-					codeStream.dup();

-					if ((syntheticAccessors == null) || (syntheticAccessors[READ] == null)) {

-						codeStream.getfield(fieldBinding);

-					} else {

-						codeStream.invokestatic(syntheticAccessors[READ]);

-					}

-				}

-				break;

-			case LOCAL : // assigning to a local variable (cannot assign to outer local)

-				LocalVariableBinding localBinding = (LocalVariableBinding) this.codegenBinding;

-				Constant assignConstant;

-				int increment;

-				// using incr bytecode if possible

-				switch (localBinding.type.id) {

-					case T_String :

-						codeStream.generateStringConcatenationAppend(currentScope, this, expression);

-						if (valueRequired) {

-							codeStream.dup();

-						}

-						codeStream.store(localBinding, false);

-						return;

-					case T_int :

-						if (((assignConstant = expression.constant) != NotAConstant) 

-							&& (assignConstant.typeID() != T_float) // only for integral types

-							&& (assignConstant.typeID() != T_double)

-							&& ((increment = assignConstant.intValue()) == (short) increment)) { // 16 bits value

-							switch (operator) {

-								case PLUS :

-									codeStream.iinc(localBinding.resolvedPosition, increment);

-									if (valueRequired) {

-										codeStream.load(localBinding);

-									}

-									return;

-								case MINUS :

-									codeStream.iinc(localBinding.resolvedPosition, -increment);

-									if (valueRequired) {

-										codeStream.load(localBinding);

-									}

-									return;

-							}

-						}

-					default :

-						codeStream.load(localBinding);

-				}

-		}

-		// perform the actual compound operation

-		int operationTypeID;

-		if ((operationTypeID = implicitConversion >> 4) == T_String || operationTypeID == T_Object) {

-			// we enter here if the single name reference is a field of type java.lang.String or if the type of the 

-			// operation is java.lang.Object

-			// For example: o = o + ""; // where the compiled type of o is java.lang.Object.

-			codeStream.generateStringConcatenationAppend(currentScope, null, expression);

-			// no need for generic cast on previous #getfield since using Object string buffer methods.			

-		} else {

-			// promote the array reference to the suitable operation type

-			codeStream.generateImplicitConversion(implicitConversion);

-			// generate the increment value (will by itself  be promoted to the operation value)

-			if (expression == IntLiteral.One){ // prefix operation

-				codeStream.generateConstant(expression.constant, implicitConversion);			

-			} else {

-				expression.generateCode(currentScope, codeStream, true);

-			}		

-			// perform the operation

-			codeStream.sendOperator(operator, operationTypeID);

-			// cast the value back to the array reference type

-			codeStream.generateImplicitConversion(assignmentImplicitConversion);

-		}

-		// store the result back into the variable

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD : // assigning to a field

-				fieldStore(codeStream, (FieldBinding) this.codegenBinding, writeAccessor, valueRequired);

-				// no need for generic cast as value got dupped

-				return;

-			case LOCAL : // assigning to a local variable

-				LocalVariableBinding localBinding = (LocalVariableBinding) this.codegenBinding;

-				if (valueRequired) {

-					if ((localBinding.type == LongBinding) || (localBinding.type == DoubleBinding)) {

-						codeStream.dup2();

-					} else {

-						codeStream.dup();

-					}

-				}

-				codeStream.store(localBinding, false);

-		}

-	}

-	

-	public void generatePostIncrement(BlockScope currentScope, CodeStream codeStream, CompoundAssignment postIncrement, boolean valueRequired) {

-		switch (bits & RestrictiveFlagMASK) {

-			case FIELD : // assigning to a field

-				FieldBinding fieldBinding;

-				if ((fieldBinding = (FieldBinding) this.codegenBinding).isStatic()) {

-					if ((syntheticAccessors == null) || (syntheticAccessors[READ] == null)) {

-						codeStream.getstatic(fieldBinding);

-					} else {

-						codeStream.invokestatic(syntheticAccessors[READ]);

-					}

-				} else {

-					if ((bits & DepthMASK) != 0) {

-						ReferenceBinding targetType = currentScope.enclosingSourceType().enclosingTypeAt((bits & DepthMASK) >> DepthSHIFT);

-						Object[] emulationPath = currentScope.getEmulationPath(targetType, true /*only exact match*/, false/*consider enclosing arg*/);

-						codeStream.generateOuterAccess(emulationPath, this, targetType, currentScope);

-					} else {

-						codeStream.aload_0();

-					}

-					codeStream.dup();

-					if ((syntheticAccessors == null) || (syntheticAccessors[READ] == null)) {

-						codeStream.getfield(fieldBinding);

-					} else {

-						codeStream.invokestatic(syntheticAccessors[READ]);

-					}

-				}

-				if (valueRequired) {

-					if (fieldBinding.isStatic()) {

-						if ((fieldBinding.type == LongBinding) || (fieldBinding.type == DoubleBinding)) {

-							codeStream.dup2();

-						} else {

-							codeStream.dup();

-						}

-					} else { // Stack:  [owner][old field value]  ---> [old field value][owner][old field value]

-						if ((fieldBinding.type == LongBinding) || (fieldBinding.type == DoubleBinding)) {

-							codeStream.dup2_x1();

-						} else {

-							codeStream.dup_x1();

-						}

-					}

-				}

-				codeStream.generateConstant(postIncrement.expression.constant, implicitConversion);

-				codeStream.sendOperator(postIncrement.operator, fieldBinding.type.id);

-				codeStream.generateImplicitConversion(postIncrement.assignmentImplicitConversion);

-				fieldStore(codeStream, fieldBinding, syntheticAccessors == null ? null : syntheticAccessors[WRITE], false);

-				// no need for generic cast 

-				return;

-			case LOCAL : // assigning to a local variable

-				LocalVariableBinding localBinding = (LocalVariableBinding) this.codegenBinding;

-				// using incr bytecode if possible

-				if (localBinding.type == IntBinding) {

-					if (valueRequired) {

-						codeStream.load(localBinding);

-					}

-					if (postIncrement.operator == PLUS) {

-						codeStream.iinc(localBinding.resolvedPosition, 1);

-					} else {

-						codeStream.iinc(localBinding.resolvedPosition, -1);

-					}

-				} else {

-					codeStream.load(localBinding);

-					if (valueRequired){

-						if ((localBinding.type == LongBinding) || (localBinding.type == DoubleBinding)) {

-							codeStream.dup2();

-						} else {

-							codeStream.dup();

-						}

-					}

-					codeStream.generateConstant(postIncrement.expression.constant, implicitConversion);

-					codeStream.sendOperator(postIncrement.operator, localBinding.type.id);

-					codeStream.generateImplicitConversion(postIncrement.assignmentImplicitConversion);

-	

-					codeStream.store(localBinding, false);

-				}

-		}

-	}

-	

-	public void generateReceiver(CodeStream codeStream) {

-		

-		codeStream.aload_0();

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite#genericTypeArguments()

-	 */

-	public TypeBinding[] genericTypeArguments() {

-		return null;

-	}

-	

-	public void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-	

-		if (!flowInfo.isReachable()) return;

-		//If inlinable field, forget the access emulation, the code gen will directly target it

-		if (((bits & DepthMASK) == 0) || (constant != NotAConstant)) return;

-	

-		if ((bits & RestrictiveFlagMASK) == LOCAL) {

-			currentScope.emulateOuterAccess((LocalVariableBinding) binding);

-		}

-	}

-	public void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo, boolean isReadAccess) {

-	

-		if (!flowInfo.isReachable()) return;

-	

-		//If inlinable field, forget the access emulation, the code gen will directly target it

-		if (constant != NotAConstant)

-			return;

-	

-		if ((bits & FIELD) != 0) {

-			FieldBinding fieldBinding = (FieldBinding) binding;

-			FieldBinding codegenField = fieldBinding.original();

-			this.codegenBinding = codegenField;

-			if (((bits & DepthMASK) != 0)

-				&& (codegenField.isPrivate() // private access

-					|| (codegenField.isProtected() // implicit protected access

-							&& codegenField.declaringClass.getPackage() != currentScope.enclosingSourceType().getPackage()))) {

-				if (syntheticAccessors == null)

-					syntheticAccessors = new MethodBinding[2];

-				syntheticAccessors[isReadAccess ? READ : WRITE] = 

-				    ((SourceTypeBinding)currentScope.enclosingSourceType().

-						enclosingTypeAt((bits & DepthMASK) >> DepthSHIFT)).addSyntheticMethod(codegenField, isReadAccess);

-				currentScope.problemReporter().needToEmulateFieldAccess(codegenField, this, isReadAccess);

-				return;

-			}

-			// if the binding declaring class is not visible, need special action

-			// for runtime compatibility on 1.2 VMs : change the declaring class of the binding

-			// NOTE: from target 1.2 on, field's declaring class is touched if any different from receiver type

-			// and not from Object or implicit static field access.	

-			if (fieldBinding.declaringClass != this.actualReceiverType

-				&& !this.actualReceiverType.isArrayType()	

-				&& fieldBinding.declaringClass != null

-				&& !fieldBinding.isConstantValue()

-				&& ((currentScope.environment().options.targetJDK >= ClassFileConstants.JDK1_2 

-						&& !fieldBinding.isStatic()

-						&& fieldBinding.declaringClass.id != T_Object) // no change for Object fields (if there was any)

-					|| !codegenField.declaringClass.canBeSeenBy(currentScope))){

-				this.codegenBinding = 

-				    currentScope.enclosingSourceType().getUpdatedFieldBinding(

-					       codegenField, 

-					        (ReferenceBinding)this.actualReceiverType.erasure());

-			}

-		}

-	}

-	public StringBuffer printExpression(int indent, StringBuffer output){

-	

-		return output.append(token);

-	}

-	

-	public TypeBinding reportError(BlockScope scope) {

-		

-		//=====error cases=======

-		constant = Constant.NotAConstant;

-		if (binding instanceof ProblemFieldBinding) {

-			scope.problemReporter().invalidField(this, (FieldBinding) binding);

-		} else if (binding instanceof ProblemReferenceBinding) {

-			scope.problemReporter().invalidType(this, (TypeBinding) binding);

-		} else {

-			scope.problemReporter().unresolvableReference(this, binding);

-		}

-		return null;

-	}

-	public TypeBinding resolveType(BlockScope scope) {

-		// for code gen, harm the restrictiveFlag 	

-	

-		this.actualReceiverType = this.receiverType = scope.enclosingSourceType();

-		

-		if ((this.codegenBinding = this.binding = scope.getBinding(token, bits & RestrictiveFlagMASK, this, true /*resolve*/)).isValidBinding()) {

-			switch (bits & RestrictiveFlagMASK) {

-				case VARIABLE : // =========only variable============

-				case VARIABLE | TYPE : //====both variable and type============

-					if (binding instanceof VariableBinding) {

-						VariableBinding variable = (VariableBinding) binding;

-						if (binding instanceof LocalVariableBinding) {

-							bits &= ~RestrictiveFlagMASK;  // clear bits

-							bits |= LOCAL;

-							if ((this.bits & IsStrictlyAssignedMASK) == 0) {

-								constant = variable.constant();

-							} else {

-								constant = NotAConstant;

-							}

-							if (!variable.isFinal() && (bits & DepthMASK) != 0) {

-								scope.problemReporter().cannotReferToNonFinalOuterLocal((LocalVariableBinding)variable, this);

-							}

-							return this.resolvedType = variable.type;

-						}

-						// a field

-						FieldBinding field = (FieldBinding) this.binding;

-						if (!field.isStatic() && scope.environment().options.getSeverity(CompilerOptions.UnqualifiedFieldAccess) != ProblemSeverities.Ignore) {

-							scope.problemReporter().unqualifiedFieldAccess(this, field);

-						}

-						return this.resolvedType = checkFieldAccess(scope);

-					}

-	

-					// thus it was a type

-					bits &= ~RestrictiveFlagMASK;  // clear bits

-					bits |= TYPE;

-				case TYPE : //========only type==============

-					constant = Constant.NotAConstant;

-					//deprecated test

-					TypeBinding type = (TypeBinding)binding;

-					if (isTypeUseDeprecated(type, scope))

-						scope.problemReporter().deprecatedType(type, this);

-					return this.resolvedType = scope.convertToRawType(type);

-			}

-		}

-	

-		// error scenarii

-		return this.resolvedType = this.reportError(scope);

-	}

-		

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-	

-	public String unboundReferenceErrorName(){

-	

-		return new String(token);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleTypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleTypeReference.js
deleted file mode 100644
index c33f25e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SingleTypeReference.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class SingleTypeReference extends TypeReference {

-

-	public char[] token;

-

-	public SingleTypeReference(char[] source, long pos) {

-

-			token = source;

-			sourceStart = (int) (pos>>>32)  ;

-			sourceEnd = (int) (pos & 0x00000000FFFFFFFFL) ;

-		

-	}

-

-	public TypeReference copyDims(int dim){

-		//return a type reference copy of me with some dimensions

-		//warning : the new type ref has a null binding

-		

-		return new ArrayTypeReference(token, dim,(((long)sourceStart)<<32)+sourceEnd);

-	}

-

-	protected TypeBinding getTypeBinding(Scope scope) {

-		if (this.resolvedType != null)

-			return this.resolvedType;

-

-		this.resolvedType = scope.getType(token);

-

-		if (scope.kind == Scope.CLASS_SCOPE && this.resolvedType.isValidBinding())

-			if (((ClassScope) scope).detectCycle(this.resolvedType, this, null))

-				return null;

-		return this.resolvedType;

-	}

-

-	public char [][] getTypeName() {

-		return new char[][] { token };

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output){

-		

-		return output.append(token);

-	}

-

-	public TypeBinding resolveTypeEnclosing(BlockScope scope, ReferenceBinding enclosingType) {

-

-		ReferenceBinding memberType = scope.getMemberType(token, enclosingType);

-		if (!memberType.isValidBinding()) {

-			scope.problemReporter().invalidEnclosingType(this, memberType, enclosingType);

-			return null;

-		}

-		if (isTypeUseDeprecated(memberType, scope))

-			scope.problemReporter().deprecatedType(memberType, this);

-		return this.resolvedType = scope.convertToRawType(memberType);

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Statement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Statement.js
deleted file mode 100644
index 38a7016..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Statement.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public abstract class Statement extends ASTNode {

-	

-	public abstract FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo);

-	

-	/**

-	 * INTERNAL USE ONLY.

-	 * This is used to redirect inter-statements jumps.

-	 */

-	public void branchChainTo(Label label) {

-		// do nothing by default

-	}

-	

-	// Report an error if necessary

-	public boolean complainIfUnreachable(FlowInfo flowInfo, BlockScope scope, boolean didAlreadyComplain) {

-	

-		if ((flowInfo.reachMode() & FlowInfo.UNREACHABLE) != 0) {

-			this.bits &= ~ASTNode.IsReachableMASK;

-			boolean reported = flowInfo == FlowInfo.DEAD_END;

-			if (!didAlreadyComplain && reported) {

-				scope.problemReporter().unreachableCode(this);

-			}

-			return reported; // keep going for fake reachable

-		}

-		return false;

-	}

-	

-	public abstract void generateCode(BlockScope currentScope, CodeStream codeStream);

-	

-	public boolean isEmptyBlock() {

-		return false;

-	}

-	

-	public boolean isValidJavaStatement() {

-		//the use of this method should be avoid in most cases

-		//and is here mostly for documentation purpose.....

-		//while the parser is responsable for creating

-		//welled formed expression statement, which results

-		//in the fact that java-non-semantic-expression-used-as-statement

-		//should not be parsable...thus not being built.

-		//It sounds like the java grammar as help the compiler job in removing

-		//-by construction- some statement that would have no effect....

-		//(for example all expression that may do side-effects are valid statement

-		// -this is an appromative idea.....-)

-

-		return true;

-	}

-	

-	public StringBuffer print(int indent, StringBuffer output) {

-		return printStatement(indent, output);

-	}

-	public abstract StringBuffer printStatement(int indent, StringBuffer output);

-

-	public abstract void resolve(BlockScope scope);

-	

-	public Constant resolveCase(BlockScope scope, TypeBinding testType, SwitchStatement switchStatement) {

-		// statement within a switch that are not case are treated as normal statement.... 

-

-		resolve(scope);

-		return null;

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/StringLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/StringLiteral.js
deleted file mode 100644
index 3c2f6dc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/StringLiteral.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public class StringLiteral extends Literal {

-

-	char[] source;

-

-	public StringLiteral(char[] token, int s, int e) {

-

-		this(s,e);

-		source = token;

-	}

-

-	public StringLiteral(int s, int e) {

-

-		super(s,e);

-	}

-

-	public void computeConstant() {

-	

-		constant = Constant.fromValue(String.valueOf(source));

-	}

-

-	public ExtendedStringLiteral extendWith(CharLiteral lit){

-

-		//add the lit source to mine, just as if it was mine

-		return new ExtendedStringLiteral(this,lit);

-	}

-

-	public ExtendedStringLiteral extendWith(StringLiteral lit){

-

-		//add the lit source to mine, just as if it was mine

-		return new ExtendedStringLiteral(this,lit);

-	}

-

-	/**

-	 *  Add the lit source to mine, just as if it was mine

-	 */

-	public StringLiteralConcatenation extendsWith(StringLiteral lit) {

-		return new StringLiteralConcatenation(this, lit);

-	}

-	/**

-	 * Code generation for string literal

-	 */ 

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-

-		int pc = codeStream.position;

-		if (valueRequired)

-			codeStream.ldc(constant.stringValue());

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public TypeBinding literalType(BlockScope scope) {

-

-		return scope.getJavaLangString();

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-	

-		// handle some special char.....

-		output.append('\"');

-		for (int i = 0; i < source.length; i++) {

-			switch (source[i]) {

-				case '\b' :

-					output.append("\\b"); //$NON-NLS-1$

-					break;

-				case '\t' :

-					output.append("\\t"); //$NON-NLS-1$

-					break;

-				case '\n' :

-					output.append("\\n"); //$NON-NLS-1$

-					break;

-				case '\f' :

-					output.append("\\f"); //$NON-NLS-1$

-					break;

-				case '\r' :

-					output.append("\\r"); //$NON-NLS-1$

-					break;

-				case '\"' :

-					output.append("\\\""); //$NON-NLS-1$

-					break;

-				case '\'' :

-					output.append("\\'"); //$NON-NLS-1$

-					break;

-				case '\\' : //take care not to display the escape as a potential real char

-					output.append("\\\\"); //$NON-NLS-1$

-					break;

-				default :

-					output.append(source[i]);

-			}

-		}

-		output.append('\"'); 

-		return output;

-	}

-

-	public char[] source() {

-

-		return source;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		visitor.visit(this, scope);

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/StringLiteralConcatenation.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/StringLiteralConcatenation.js
deleted file mode 100644
index 5eab2a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/StringLiteralConcatenation.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-

-/**

- * Flatten string literal

- */

-public class StringLiteralConcatenation extends StringLiteral {

-	private static final int INITIAL_SIZE = 5;

-	public StringLiteral[] literals;

-	public int counter;

-	/**	

-	 * Build a two-strings literal

-	 * */

-	public StringLiteralConcatenation(StringLiteral str1, StringLiteral str2) {

-		super(str1.sourceStart, str1.sourceEnd);

-		this.source = str1.source;

-		this.literals = new StringLiteral[INITIAL_SIZE];

-		this.counter = 0;

-		this.literals[this.counter++] = str1;

-		extendsWith(str2);

-	}

-

-	/**

-	 *  Add the lit source to mine, just as if it was mine

-	 */

-	public StringLiteralConcatenation extendsWith(StringLiteral lit) {

-		this.sourceEnd = lit.sourceEnd;

-		final int literalsLength = this.literals.length;

-		if (this.counter == literalsLength) {

-			// resize

-			System.arraycopy(this.literals, 0, this.literals = new StringLiteral[literalsLength + INITIAL_SIZE], 0, literalsLength);

-		}

-		//uddate the source

-		int length = source.length;

-		System.arraycopy(

-			source,

-			0,

-			source = new char[length + lit.source.length],

-			0,

-			length);

-		System.arraycopy(lit.source, 0, source, length, lit.source.length);

-		this.literals[this.counter++] = lit;		

-		return this;

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output) {

-		output.append("StringLiteralConcatenation{"); //$NON-NLS-1$

-		for (int i = 0, max = this.counter; i < max; i++) {

-			this.literals[i].printExpression(indent, output);

-			output.append("+\n");//$NON-NLS-1$

-		}

-		return output.append('}');

-	}

-	

-	public char[] source() {

-		return source;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			for (int i = 0, max = this.counter; i < max; i++) {

-				this.literals[i].traverse(visitor, scope);

-			}			

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SubRoutineStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SubRoutineStatement.js
deleted file mode 100644
index 303dd87..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SubRoutineStatement.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.ExceptionLabel;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-

-/**

- * Extra behavior for statements which are generating subroutines

- */

-public abstract class SubRoutineStatement extends Statement {

-	

-	public static final ExceptionLabel[] NO_EXCEPTION_HANDLER = new ExceptionLabel[0];

-	ExceptionLabel[] anyExceptionLabels = NO_EXCEPTION_HANDLER;

-	int anyExceptionLabelsCount = 0;

-	

-	public abstract boolean isSubRoutineEscaping();

-

-	public abstract void generateSubRoutineInvocation(BlockScope currentScope, CodeStream codeStream);

-	

-	public ExceptionLabel enterAnyExceptionHandler(CodeStream codeStream) {

-		

-		int length;

-		if ((length = this.anyExceptionLabelsCount) == this.anyExceptionLabels.length) {

-			System.arraycopy(this.anyExceptionLabels, 0 , this.anyExceptionLabels=new ExceptionLabel[length*2 + 1], 0, length);

-		}

-		ExceptionLabel exceptionLabel = new ExceptionLabel(codeStream, null);

-		this.anyExceptionLabels[this.anyExceptionLabelsCount++] = exceptionLabel;

-		return exceptionLabel;

-	}

-

-	public void exitAnyExceptionHandler() {

-		if (this.anyExceptionLabelsCount == 0) return;

-		ExceptionLabel currentLabel = this.anyExceptionLabels[this.anyExceptionLabelsCount-1];

-		if (currentLabel.start == currentLabel.codeStream.position) {

-			// discard empty exception handler

-			this.anyExceptionLabels[--this.anyExceptionLabelsCount] = null;

-			currentLabel.codeStream.removeExceptionHandler(currentLabel);

-		} else {

-			currentLabel.placeEnd();

-		}

-	}

-	

-	public void placeAllAnyExceptionHandlers() {

-		

-		for (int i = 0; i < this.anyExceptionLabelsCount; i++) {

-			this.anyExceptionLabels[i].place();

-		}

-	}

-	

-	public static void reenterExceptionHandlers(SubRoutineStatement[] subroutines, int max, CodeStream codeStream) {

-		if (subroutines == null) return;

-		if (max < 0) max = subroutines.length;

-		for (int i = 0; i < max; i++) {

-			subroutines[i].enterAnyExceptionHandler(codeStream); 

-		}	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SuperReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SuperReference.js
deleted file mode 100644
index 7933f7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SuperReference.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public class SuperReference extends ThisReference {

-	

-	public SuperReference(int sourceStart, int sourceEnd) {

-

-		super(sourceStart, sourceEnd);

-	}

-

-	public static ExplicitConstructorCall implicitSuperConstructorCall() {

-

-		return new ExplicitConstructorCall(ExplicitConstructorCall.ImplicitSuper);

-	}

-

-	public boolean isImplicitThis() {

-		

-		return false;

-	}

-

-	public boolean isSuper() {

-		

-		return true;

-	}

-

-	public boolean isThis() {

-		

-		return false ;

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output){

-	

-		return output.append("super"); //$NON-NLS-1$

-		

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-

-		constant = NotAConstant;

-		if (!checkAccess(scope.methodScope()))

-			return null;

-		SourceTypeBinding enclosingTb = scope.enclosingSourceType();

-		if (enclosingTb.id == T_Object) {

-			scope.problemReporter().cannotUseSuperInJavaLangObject(this);

-			return null;

-		}

-		return this.resolvedType = enclosingTb.superclass;

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-		visitor.visit(this, blockScope);

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SwitchStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SwitchStatement.js
deleted file mode 100644
index 4b976ac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SwitchStatement.js
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class SwitchStatement extends Statement {

-

-	public Expression expression;

-	public Statement[] statements;

-	public BlockScope scope;

-	public int explicitDeclarations;

-	public Label breakLabel;

-	public CaseStatement[] cases;

-	public CaseStatement defaultCase;

-	public int caseCount = 0;

-	public int blockStart;

-	

-	// for local variables table attributes

-	int preSwitchInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-

-	public FlowInfo analyseCode(

-			BlockScope currentScope,

-			FlowContext flowContext,

-			FlowInfo flowInfo) {

-

-	    try {

-			flowInfo = expression.analyseCode(currentScope, flowContext, flowInfo);

-			SwitchFlowContext switchContext =

-				new SwitchFlowContext(flowContext, this, (breakLabel = new Label()));

-	

-			// analyse the block by considering specially the case/default statements (need to bind them 

-			// to the entry point)

-			FlowInfo caseInits = FlowInfo.DEAD_END;

-			// in case of statements before the first case

-			preSwitchInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(flowInfo);

-			int caseIndex = 0;

-			if (statements != null) {

-				boolean didAlreadyComplain = false;

-				for (int i = 0, max = statements.length; i < max; i++) {

-					Statement statement = statements[i];

-					if ((caseIndex < caseCount) && (statement == cases[caseIndex])) { // statement is a case

-						this.scope.switchCase = cases[caseIndex]; // record entering in a switch case block

-						caseIndex++;

-						caseInits = caseInits.mergedWith(flowInfo.copy().unconditionalInits());

-						didAlreadyComplain = false; // reset complaint

-					} else if (statement == defaultCase) { // statement is the default case

-						this.scope.switchCase = defaultCase; // record entering in a switch case block

-						caseInits = caseInits.mergedWith(flowInfo.copy().unconditionalInits());

-						didAlreadyComplain = false; // reset complaint

-					}

-					if (!statement.complainIfUnreachable(caseInits, scope, didAlreadyComplain)) {

-						caseInits = statement.analyseCode(scope, switchContext, caseInits);

-					} else {

-						didAlreadyComplain = true;

-					}

-				}

-			}

-	

-			// if no default case, then record it may jump over the block directly to the end

-			if (defaultCase == null) {

-				// only retain the potential initializations

-				flowInfo.addPotentialInitializationsFrom(

-					caseInits.mergedWith(switchContext.initsOnBreak));

-				mergedInitStateIndex =

-					currentScope.methodScope().recordInitializationStates(flowInfo);

-				return flowInfo;

-			}

-	

-			// merge all branches inits

-			FlowInfo mergedInfo = caseInits.mergedWith(switchContext.initsOnBreak);

-			mergedInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(mergedInfo);

-			return mergedInfo;

-	    } finally {

-	        if (this.scope != null) this.scope.switchCase = null; // no longer inside switch case block

-	    }

-	}

-

-	/**

-	 * Switch code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-	    try {

-			int[] sortedIndexes = new int[caseCount];

-			int[] localKeysCopy;

-			if ((bits & IsReachableMASK) == 0) {

-				return;

-			}

-			int pc = codeStream.position;

-	

-			// prepare the labels and constants

-			breakLabel.initialize(codeStream);

-			CaseLabel[] caseLabels = new CaseLabel[caseCount];

-			int[] constants = new int[caseCount];

-			boolean needSwitch = caseCount != 0;

-			for (int i = 0; i < caseCount; i++) {

-				constants[i] = cases[i].constantExpression.constant.intValue();

-				cases[i].targetLabel = (caseLabels[i] = new CaseLabel(codeStream));

-			}

-	

-			// we sort the keys to be able to generate the code for tableswitch or lookupswitch

-			for (int i = 0; i < caseCount; i++) {

-				sortedIndexes[i] = i;

-			}

-			System.arraycopy(

-				constants,

-				0,

-				(localKeysCopy = new int[caseCount]),

-				0,

-				caseCount);

-			CodeStream.sort(localKeysCopy, 0, caseCount - 1, sortedIndexes);

-			CaseLabel defaultLabel = new CaseLabel(codeStream);

-			if (defaultCase != null) {

-				defaultCase.targetLabel = defaultLabel;

-			}

-			// generate expression testes

-			expression.generateCode(currentScope, codeStream, needSwitch);

-	

-			// generate the appropriate switch table/lookup bytecode

-			if (needSwitch) {

-				int max = localKeysCopy[caseCount - 1];

-				int min = localKeysCopy[0];

-				if ((long) (caseCount * 2.5) > ((long) max - (long) min)) {

-					

-					// work-around 1.3 VM bug, if max>0x7FFF0000, must use lookup bytecode

-					// see http://dev.eclipse.org/bugs/show_bug.cgi?id=21557

-					if (max > 0x7FFF0000 && currentScope.environment().options.complianceLevel < ClassFileConstants.JDK1_4) {

-						codeStream.lookupswitch(defaultLabel, constants, sortedIndexes, caseLabels);

-	

-					} else {

-						codeStream.tableswitch(

-							defaultLabel,

-							min,

-							max,

-							constants,

-							sortedIndexes,

-							caseLabels);

-					}

-				} else {

-					codeStream.lookupswitch(defaultLabel, constants, sortedIndexes, caseLabels);

-				}

-				codeStream.updateLastRecordedEndPC(codeStream.position);

-			}

-			

-			// generate the switch block statements

-			int caseIndex = 0;

-			if (statements != null) {

-				for (int i = 0, maxCases = statements.length; i < maxCases; i++) {

-					Statement statement = statements[i];

-					if ((caseIndex < caseCount) && (statement == cases[caseIndex])) { // statements[i] is a case

-						this.scope.switchCase = cases[caseIndex]; // record entering in a switch case block

-						if (preSwitchInitStateIndex != -1) {

-							codeStream.removeNotDefinitelyAssignedVariables(currentScope, preSwitchInitStateIndex);

-						}

-						caseIndex++;

-					} else {

-						if (statement == defaultCase) { // statements[i] is a case or a default case

-							this.scope.switchCase = defaultCase; // record entering in a switch case block

-							if (preSwitchInitStateIndex != -1) {

-								codeStream.removeNotDefinitelyAssignedVariables(currentScope, preSwitchInitStateIndex);

-							}

-						}

-					}

-					statement.generateCode(scope, codeStream);

-				}

-			}

-			// place the trailing labels (for break and default case)

-			breakLabel.place();

-			if (defaultCase == null) {

-				defaultLabel.place();

-			}

-			// May loose some local variable initializations : affecting the local variable attributes

-			if (mergedInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-				codeStream.addDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			}

-			if (scope != currentScope) {

-				codeStream.exitUserScope(scope);

-			}

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-	    } finally {

-	        if (this.scope != null) this.scope.switchCase = null; // no longer inside switch case block

-	    }		

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		printIndent(indent, output).append("switch ("); //$NON-NLS-1$

-		expression.printExpression(0, output).append(") {"); //$NON-NLS-1$

-		if (statements != null) {

-			for (int i = 0; i < statements.length; i++) {

-				output.append('\n');

-				if (statements[i] instanceof CaseStatement) {

-					statements[i].printStatement(indent, output);

-				} else {

-					statements[i].printStatement(indent+2, output);

-				}

-			}

-		}

-		output.append("\n"); //$NON-NLS-1$

-		return printIndent(indent, output).append('}');

-	}

-

-	public void resolve(BlockScope upperScope) {

-	

-	    try {

-			TypeBinding testType = expression.resolveType(upperScope);

-			if (testType == null)

-				return;

-			expression.computeConversion(upperScope, testType, testType);

-			if (!(expression.isConstantValueOfTypeAssignableToType(testType, IntBinding))) {

-				if (!testType.isCompatibleWith(IntBinding)) {

-					upperScope.problemReporter().incorrectSwitchType(expression, testType);

-					return;

-				}

-			}

-			if (statements != null) {

-				scope = explicitDeclarations == 0 ? upperScope : new BlockScope(upperScope);

-				int length;

-				// collection of cases is too big but we will only iterate until caseCount

-				cases = new CaseStatement[length = statements.length];

-				int[] casesValues = new int[length];

-				CaseStatement[] duplicateCaseStatements = null;

-				int duplicateCaseStatementsCounter = 0;

-				int counter = 0;

-				for (int i = 0; i < length; i++) {

-					Constant constant;

-					final Statement statement = statements[i];

-					if ((constant = statement.resolveCase(scope, testType, this)) != null) {

-						//----check for duplicate case statement------------

-						if (constant != NotAConstant) {

-							int key = constant.intValue();

-							for (int j = 0; j < counter; j++) {

-								if (casesValues[j] == key) {

-									final CaseStatement currentCaseStatement = (CaseStatement) statement;

-									if (duplicateCaseStatements == null) {

-										scope.problemReporter().duplicateCase(cases[j]);

-										scope.problemReporter().duplicateCase(currentCaseStatement);

-										duplicateCaseStatements = new CaseStatement[length];

-										duplicateCaseStatements[duplicateCaseStatementsCounter++] = cases[j];

-										duplicateCaseStatements[duplicateCaseStatementsCounter++] = currentCaseStatement;

-									} else {

-										boolean found = false;

-										searchReportedDuplicate: for (int k = 2; k < duplicateCaseStatementsCounter; k++) {

-											if (duplicateCaseStatements[k] == statement) {

-												found = true;

-												break searchReportedDuplicate;

-											}

-										}

-										if (!found) {

-											scope.problemReporter().duplicateCase(currentCaseStatement);

-											duplicateCaseStatements[duplicateCaseStatementsCounter++] = currentCaseStatement;

-										}

-									}

-								}

-							}

-							casesValues[counter++] = key;

-						}

-					}

-				}

-			} else {

-				if ((this.bits & UndocumentedEmptyBlockMASK) != 0) {

-					upperScope.problemReporter().undocumentedEmptyBlock(this.blockStart, this.sourceEnd);

-				}

-			}

-	    } finally {

-	        if (this.scope != null) this.scope.switchCase = null; // no longer inside switch case block

-	    }

-	}

-

-	public void traverse(

-			ASTVisitor visitor,

-			BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			expression.traverse(visitor, scope);

-			if (statements != null) {

-				int statementsLength = statements.length;

-				for (int i = 0; i < statementsLength; i++)

-					statements[i].traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, blockScope);

-	}

-	

-	/**

-	 * Dispatch the call on its last statement.

-	 */

-	public void branchChainTo(Label label) {

-		

-		// in order to improve debug attributes for stepping (11431)

-		// we want to inline the jumps to #breakLabel which already got

-		// generated (if any), and have them directly branch to a better

-		// location (the argument label).

-		// we know at this point that the breakLabel already got placed

-		if (this.breakLabel.hasForwardReferences()) {

-			label.appendForwardReferencesFrom(this.breakLabel);

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SynchronizedStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SynchronizedStatement.js
deleted file mode 100644
index afce181..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/SynchronizedStatement.js
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class SynchronizedStatement extends SubRoutineStatement {

-

-	public Expression expression;

-	public Block block;

-	public BlockScope scope;

-	boolean blockExit;

-	public LocalVariableBinding synchroVariable;

-	static final char[] SecretLocalDeclarationName = " syncValue".toCharArray(); //$NON-NLS-1$

-

-	public SynchronizedStatement(

-		Expression expression,

-		Block statement,

-		int s,

-		int e) {

-

-		this.expression = expression;

-		this.block = statement;

-		sourceEnd = e;

-		sourceStart = s;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-	    // TODO (philippe) shouldn't it be protected by a check whether reachable statement ?

-	    

-		// mark the synthetic variable as being used

-		synchroVariable.useFlag = LocalVariableBinding.USED;

-

-		// simple propagation to subnodes

-		flowInfo =

-			block.analyseCode(

-				scope,

-				new InsideSubRoutineFlowContext(flowContext, this),

-				expression.analyseCode(scope, flowContext, flowInfo));

-

-		// optimizing code gen

-		this.blockExit = !flowInfo.isReachable();

-

-		return flowInfo;

-	}

-

-	public boolean isSubRoutineEscaping() {

-

-		return false;

-	}

-	

-	/**

-	 * Synchronized statement code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-	

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		// in case the labels needs to be reinitialized

-		// when the code generation is restarted in wide mode

-		if (this.anyExceptionLabelsCount > 0) {

-			this.anyExceptionLabels = NO_EXCEPTION_HANDLER;

-			this.anyExceptionLabelsCount = 0;

-		}

-		int pc = codeStream.position;

-	

-		// generate the synchronization expression

-		expression.generateCode(scope, codeStream, true);

-		if (block.isEmptyBlock()) {

-			if ((synchroVariable.type == LongBinding)

-				|| (synchroVariable.type == DoubleBinding)) {

-				codeStream.dup2();

-			} else {

-				codeStream.dup();

-			}

-			// only take the lock

-			codeStream.monitorenter();

-			codeStream.monitorexit();

-		} else {

-			// enter the monitor

-			codeStream.store(synchroVariable, true);

-			codeStream.monitorenter();

-	

-			// generate  the body of the synchronized block

-			this.enterAnyExceptionHandler(codeStream);

-			block.generateCode(scope, codeStream);

-			Label endLabel = new Label(codeStream);

-			if (!blockExit) {

-				codeStream.load(synchroVariable);

-				codeStream.monitorexit();

-				this.exitAnyExceptionHandler();

-				codeStream.goto_(endLabel);

-				this.enterAnyExceptionHandler(codeStream);

-			}

-			// generate the body of the exception handler

-			this.placeAllAnyExceptionHandlers();

-			codeStream.incrStackSize(1);

-			codeStream.load(synchroVariable);

-			codeStream.monitorexit();

-			this.exitAnyExceptionHandler();

-			codeStream.athrow();

-			if (!blockExit) {

-				endLabel.place();

-			}

-		}

-		if (scope != currentScope) {

-			codeStream.exitUserScope(scope);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.SubRoutineStatement#generateSubRoutineInvocation(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope, org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream)

-	 */

-	public void generateSubRoutineInvocation(

-			BlockScope currentScope,

-			CodeStream codeStream) {

-

-		codeStream.load(this.synchroVariable);

-		codeStream.monitorexit();

-	}

-

-	public void resolve(BlockScope upperScope) {

-

-		// special scope for secret locals optimization.

-		scope = new BlockScope(upperScope);

-		TypeBinding type = expression.resolveType(scope);

-		if (type == null)

-			return;

-		switch (type.id) {

-			case (T_boolean) :

-			case (T_char) :

-			case (T_float) :

-			case (T_double) :

-			case (T_byte) :

-			case (T_short) :

-			case (T_int) :

-			case (T_long) :

-				scope.problemReporter().invalidTypeToSynchronize(expression, type);

-				break;

-			case (T_void) :

-				scope.problemReporter().illegalVoidExpression(expression);

-				break;

-			case (T_null) :

-				scope.problemReporter().invalidNullToSynchronize(expression);

-				break; 

-		}

-		//continue even on errors in order to have the TC done into the statements

-		synchroVariable = new LocalVariableBinding(SecretLocalDeclarationName, type, AccDefault, false);

-		scope.addLocalVariable(synchroVariable);

-		synchroVariable.setConstant(NotAConstant); // not inlinable

-		expression.computeConversion(scope, type, type);

-		block.resolveUsing(scope);

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		printIndent(indent, output);

-		output.append("synchronized ("); //$NON-NLS-1$

-		expression.printExpression(0, output).append(')');

-		output.append('\n');

-		return block.printStatement(indent + 1, output); 

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			expression.traverse(visitor, scope);

-			block.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ThisReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ThisReference.js
deleted file mode 100644
index f5826c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ThisReference.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class ThisReference extends Reference {

-

-	public static ThisReference implicitThis(){

-

-		ThisReference implicitThis = new ThisReference(0, 0); 

-		implicitThis.bits |= IsImplicitThisMask;

-		return implicitThis;

-	}

-		

-	public ThisReference(int sourceStart, int sourceEnd) {

-	

-		this.sourceStart = sourceStart;

-		this.sourceEnd = sourceEnd;

-	}

-

-	/* 

-	 * @see Reference#analyseAssignment(...)

-	 */

-	public FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound) {

-

-		return flowInfo; // this cannot be assigned

-	}

-

-	public boolean checkAccess(MethodScope methodScope) {

-	

-		// this/super cannot be used in constructor call

-		if (methodScope.isConstructorCall) {

-			methodScope.problemReporter().fieldsOrThisBeforeConstructorInvocation(this);

-			return false;

-		}

-	

-		// static may not refer to this/super

-		if (methodScope.isStatic) {

-			methodScope.problemReporter().errorThisSuperInStatic(this);

-			return false;

-		}

-		return true;

-	}

-

-	/* 

-	 * @see Reference#generateAssignment(...)

-	 */

-	public void generateAssignment(BlockScope currentScope, CodeStream codeStream, Assignment assignment, boolean valueRequired) {

-

-		 // this cannot be assigned

-	}

-

-	public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-	

-		int pc = codeStream.position;

-		if (valueRequired)

-			codeStream.aload_0();

-		if ((this.bits & IsImplicitThisMask) == 0) codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	/* 

-	 * @see Reference#generateCompoundAssignment(...)

-	 */

-	public void generateCompoundAssignment(BlockScope currentScope, CodeStream codeStream, Expression expression, int operator, int assignmentImplicitConversion,  boolean valueRequired) {

-

-		 // this cannot be assigned

-	}

-	

-	/* 

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.Reference#generatePostIncrement()

-	 */

-	public void generatePostIncrement(BlockScope currentScope, CodeStream codeStream, CompoundAssignment postIncrement, boolean valueRequired) {

-

-		 // this cannot be assigned

-	}

-	

-	public boolean isImplicitThis() {

-		

-		return (this.bits & IsImplicitThisMask) != 0;

-	}

-

-	public boolean isThis() {

-		

-		return true ;

-	}

-

-	public StringBuffer printExpression(int indent, StringBuffer output){

-	

-		if (this.isImplicitThis()) return output;

-		return output.append("this"); //$NON-NLS-1$

-	}

-

-	public TypeBinding resolveType(BlockScope scope) {

-	

-		constant = NotAConstant;

-		if (!this.isImplicitThis() &&!checkAccess(scope.methodScope())) {

-			return null;

-		}

-		return this.resolvedType = scope.enclosingSourceType();

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-

-		visitor.visit(this, blockScope);

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ThrowStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ThrowStatement.js
deleted file mode 100644
index 1db70fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/ThrowStatement.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public class ThrowStatement extends Statement {

-	public Expression exception;

-	public TypeBinding exceptionType;

-

-	public ThrowStatement(Expression exception, int startPosition) {

-		this.exception = exception;

-		this.sourceStart = startPosition;

-		this.sourceEnd = exception.sourceEnd;

-	}

-

-	public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-

-		exception.analyseCode(currentScope, flowContext, flowInfo);

-		// need to check that exception thrown is actually caught somewhere

-		flowContext.checkExceptionHandlers(exceptionType, this, flowInfo, currentScope);

-		return FlowInfo.DEAD_END;

-	}

-

-	/**

-	 * Throw code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0)

-			return;

-		int pc = codeStream.position;

-		exception.generateCode(currentScope, codeStream, true);

-		codeStream.athrow();

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-

-		printIndent(indent, output).append("throw "); //$NON-NLS-1$

-		exception.printExpression(0, output);

-		return output.append(';');

-	}

-

-	public void resolve(BlockScope scope) {

-		

-		exceptionType = exception.resolveTypeExpecting(scope, scope.getJavaLangThrowable());

-		

-		if (exceptionType == NullBinding

-				&& scope.environment().options.complianceLevel <= ClassFileConstants.JDK1_3){

-			// if compliant with 1.4, this problem will not be reported

-			scope.problemReporter().cannotThrowNull(this);

-	 	}

-		exception.computeConversion(scope, exceptionType, exceptionType);

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-		if (visitor.visit(this, blockScope))

-			exception.traverse(visitor, blockScope);

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TrueLiteral.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TrueLiteral.js
deleted file mode 100644
index ed5e33f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TrueLiteral.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.Label;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public class TrueLiteral extends MagicLiteral {

-	static final char[] source = {'t' , 'r' , 'u' , 'e'};

-public TrueLiteral(int s , int e) {

-	super(s,e);

-}

-public void computeConstant() {

-

-	constant = Constant.fromValue(true);}

-/**

- * Code generation for the true literal

- *

- * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

- * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

- * @param valueRequired boolean

- */ 

-public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) {

-	int pc = codeStream.position;

-	if (valueRequired)

-		codeStream.iconst_1();

-	codeStream.recordPositionsFrom(pc, this.sourceStart);

-}

-public void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, Label trueLabel, Label falseLabel, boolean valueRequired) {

-

-	// trueLabel being not nil means that we will not fall through into the TRUE case

-

-	int pc = codeStream.position;

-	// constant == true

-	if (valueRequired) {

-		if (falseLabel == null) {

-			// implicit falling through the FALSE case

-			if (trueLabel != null) {

-				codeStream.goto_(trueLabel);

-			}

-		}

-	}

-	codeStream.recordPositionsFrom(pc, this.sourceStart);

-}

-public TypeBinding literalType(BlockScope scope) {

-	return BooleanBinding;

-}

-/**

- * 

- */

-public char[] source() {

-	return source;

-}

-public void traverse(ASTVisitor visitor, BlockScope scope) {

-	visitor.visit(this, scope);

-	visitor.endVisit(this, scope);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TryStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TryStatement.js
deleted file mode 100644
index a667369..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TryStatement.js
+++ /dev/null
@@ -1,562 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class TryStatement extends SubRoutineStatement {

-	

-	public Block tryBlock;

-	public Block[] catchBlocks;

-	public Argument[] catchArguments;

-	public Block finallyBlock;

-	BlockScope scope;

-

-	private boolean isSubRoutineEscaping = false;

-	public UnconditionalFlowInfo subRoutineInits;

-	

-	// should rename into subRoutineComplete to be set to false by default

-

-	ReferenceBinding[] caughtExceptionTypes;

-	boolean tryBlockExit;

-	boolean[] catchExits;

-	public int[] preserveExceptionHandler;

-

-	Label subRoutineStartLabel;

-	public LocalVariableBinding anyExceptionVariable,

-		returnAddressVariable,

-		secretReturnValue;

-

-	public final static char[] SecretReturnName = " returnAddress".toCharArray(); //$NON-NLS-1$

-	public final static char[] SecretAnyHandlerName = " anyExceptionHandler".toCharArray(); //$NON-NLS-1$

-	public static final char[] SecretLocalDeclarationName = " returnValue".toCharArray(); //$NON-NLS-1$

-

-	// for local variables table attributes

-	int preTryInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		// Consider the try block and catch block so as to compute the intersection of initializations and	

-		// the minimum exit relative depth amongst all of them. Then consider the subroutine, and append its

-		// initialization to the try/catch ones, if the subroutine completes normally. If the subroutine does not

-		// complete, then only keep this result for the rest of the analysis

-

-		// process the finally block (subroutine) - create a context for the subroutine

-

-		preTryInitStateIndex =

-			currentScope.methodScope().recordInitializationStates(flowInfo);

-

-		if (anyExceptionVariable != null) {

-			anyExceptionVariable.useFlag = LocalVariableBinding.USED;

-		}

-		if (returnAddressVariable != null) { // TODO (philippe) if subroutine is escaping, unused

-			returnAddressVariable.useFlag = LocalVariableBinding.USED;

-		}

-		InsideSubRoutineFlowContext insideSubContext;

-		FinallyFlowContext finallyContext;

-		UnconditionalFlowInfo subInfo;

-		if (subRoutineStartLabel == null) {

-			// no finally block

-			insideSubContext = null;

-			finallyContext = null;

-			subInfo = null;

-		} else {

-			// analyse finally block first

-			insideSubContext = new InsideSubRoutineFlowContext(flowContext, this);

-			subInfo = 

-				finallyBlock

-					.analyseCode(

-						currentScope,

-						finallyContext = new FinallyFlowContext(flowContext, finallyBlock),

-						flowInfo.copy())

-					.unconditionalInits();

-			if (subInfo == FlowInfo.DEAD_END) {

-				isSubRoutineEscaping = true;

-				scope.problemReporter().finallyMustCompleteNormally(finallyBlock);

-			}

-			this.subRoutineInits = subInfo;

-		}

-		// process the try block in a context handling the local exceptions.

-		ExceptionHandlingFlowContext handlingContext =

-			new ExceptionHandlingFlowContext(

-				insideSubContext == null ? flowContext : insideSubContext,

-				tryBlock,

-				caughtExceptionTypes,

-				scope,

-				flowInfo.unconditionalInits());

-

-		FlowInfo tryInfo;

-		if (tryBlock.isEmptyBlock()) {

-			tryInfo = flowInfo;

-			tryBlockExit = false;

-		} else {

-			tryInfo = tryBlock.analyseCode(currentScope, handlingContext, flowInfo.copy());

-			tryBlockExit = !tryInfo.isReachable();

-		}

-

-		// check unreachable catch blocks

-		handlingContext.complainIfUnusedExceptionHandlers(scope, this);

-

-		// process the catch blocks - computing the minimal exit depth amongst try/catch

-		if (catchArguments != null) {

-			int catchCount;

-			catchExits = new boolean[catchCount = catchBlocks.length];

-			for (int i = 0; i < catchCount; i++) {

-				// keep track of the inits that could potentially have led to this exception handler (for final assignments diagnosis)

-				FlowInfo catchInfo =

-					flowInfo

-						.copy()

-						.unconditionalInits()

-						.addPotentialInitializationsFrom(

-							handlingContext.initsOnException(caughtExceptionTypes[i]).unconditionalInits())

-						.addPotentialInitializationsFrom(tryInfo.unconditionalInits())

-						.addPotentialInitializationsFrom(handlingContext.initsOnReturn);

-

-				// catch var is always set

-				catchInfo.markAsDefinitelyAssigned(catchArguments[i].binding);

-				/*

-				"If we are about to consider an unchecked exception handler, potential inits may have occured inside

-				the try block that need to be detected , e.g. 

-				try { x = 1; throwSomething();} catch(Exception e){ x = 2} "

-				"(uncheckedExceptionTypes notNil and: [uncheckedExceptionTypes at: index])

-				ifTrue: [catchInits addPotentialInitializationsFrom: tryInits]."

-				*/

-				// TODO (philippe) should only tag as unreachable if the catchblock cannot be reached?

-				//??? if (!handlingContext.initsOnException(caughtExceptionTypes[i]).isReachable()){

-				if (tryBlock.statements == null) {

-					catchInfo.setReachMode(FlowInfo.UNREACHABLE);

-				}

-				catchInfo =

-					catchBlocks[i].analyseCode(

-						currentScope,

-						insideSubContext == null ? flowContext : insideSubContext,

-						catchInfo);

-				catchExits[i] = !catchInfo.isReachable();

-				tryInfo = tryInfo.mergedWith(catchInfo.unconditionalInits());

-			}

-		}

-		if (subRoutineStartLabel == null) {

-			mergedInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(tryInfo);

-			return tryInfo;

-		}

-

-

-		// we also need to check potential multiple assignments of final variables inside the finally block

-		// need to include potential inits from returns inside the try/catch parts - 1GK2AOF

-		finallyContext.complainOnRedundantFinalAssignments(

-			tryInfo.isReachable() 

-				? (tryInfo.addPotentialInitializationsFrom(insideSubContext.initsOnReturn))

-				: insideSubContext.initsOnReturn, 

-			currentScope);

-		if (subInfo == FlowInfo.DEAD_END) {

-			mergedInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(subInfo);

-			return subInfo;

-		} else {

-			FlowInfo mergedInfo = tryInfo.addInitializationsFrom(subInfo);

-			mergedInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(mergedInfo);

-			return mergedInfo;

-		}

-	}

-

-	public boolean isSubRoutineEscaping() {

-

-		return isSubRoutineEscaping;

-	}

-

-	/**

-	 * Try statement code generation with or without jsr bytecode use

-	 *	post 1.5 target level, cannot use jsr bytecode, must instead inline finally block

-	 * returnAddress is only allocated if jsr is allowed

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		// in case the labels needs to be reinitialized

-		// when the code generation is restarted in wide mode

-		if (this.anyExceptionLabelsCount > 0) {

-			this.anyExceptionLabels = NO_EXCEPTION_HANDLER;

-			this.anyExceptionLabelsCount = 0;

-		}

-		int pc = codeStream.position;

-		final int NO_FINALLY = 0;									// no finally block

-		final int FINALLY_SUBROUTINE = 1; 					// finally is generated as a subroutine (using jsr/ret bytecodes)

-		final int FINALLY_DOES_NOT_COMPLETE = 2;	// non returning finally is optimized with only one instance of finally block

-		final int FINALLY_MUST_BE_INLINED = 3;			// finally block must be inlined since cannot use jsr/ret bytecodes >1.5

-		int finallyMode;

-		if (subRoutineStartLabel == null) { 

-			finallyMode = NO_FINALLY;

-		} else {

-			if (this.isSubRoutineEscaping) {

-				finallyMode = FINALLY_DOES_NOT_COMPLETE;

-			} else if (scope.environment().options.inlineJsrBytecode) {

-				finallyMode = FINALLY_MUST_BE_INLINED;

-			} else {

-				finallyMode = FINALLY_SUBROUTINE;

-			}

-		}

-		boolean requiresNaturalExit = false;

-		// preparing exception labels

-		int maxCatches;

-		ExceptionLabel[] exceptionLabels =

-			new ExceptionLabel[maxCatches =

-				catchArguments == null ? 0 : catchArguments.length];

-		for (int i = 0; i < maxCatches; i++) {

-			exceptionLabels[i] = new ExceptionLabel(codeStream, catchArguments[i].binding.type);

-		}

-		if (subRoutineStartLabel != null) {

-			subRoutineStartLabel.initialize(codeStream);

-			this.enterAnyExceptionHandler(codeStream);

-		}

-		// generate the try block

-		tryBlock.generateCode(scope, codeStream);

-		boolean tryBlockHasSomeCode = codeStream.position != pc;

-		// flag telling if some bytecodes were issued inside the try block

-

-		// place end positions of user-defined exception labels

-		if (tryBlockHasSomeCode) {

-			// natural exit may require subroutine invocation (if finally != null)

-			Label naturalExitLabel = new Label(codeStream);

-			if (!tryBlockExit) {

-				int position = codeStream.position;

-				switch(finallyMode) {

-					case FINALLY_SUBROUTINE :

-					case FINALLY_MUST_BE_INLINED :

-						requiresNaturalExit = true;

-						// fall through

-					case NO_FINALLY :

-						codeStream.goto_(naturalExitLabel);

-						break;

-					case FINALLY_DOES_NOT_COMPLETE :

-						codeStream.goto_(subRoutineStartLabel);

-						break;

-				}

-				codeStream.updateLastRecordedEndPC(position);

-				//goto is tagged as part of the try block

-			}

-			for (int i = 0; i < maxCatches; i++) {

-				exceptionLabels[i].placeEnd();

-			}

-			/* generate sequence of handler, all starting by storing the TOS (exception

-			thrown) into their own catch variables, the one specified in the source

-			that must denote the handled exception.

-			*/

-			if (catchArguments != null) {

-				for (int i = 0; i < maxCatches; i++) {

-					// May loose some local variable initializations : affecting the local variable attributes

-					if (preTryInitStateIndex != -1) {

-						codeStream.removeNotDefinitelyAssignedVariables(currentScope, preTryInitStateIndex);

-					}

-					exceptionLabels[i].place();

-					codeStream.incrStackSize(1);

-					// optimizing the case where the exception variable is not actually used

-					LocalVariableBinding catchVar;

-					int varPC = codeStream.position;

-					if ((catchVar = catchArguments[i].binding).resolvedPosition != -1) {

-						codeStream.store(catchVar, false);

-						catchVar.recordInitializationStartPC(codeStream.position);

-						codeStream.addVisibleLocalVariable(catchVar);

-					} else {

-						codeStream.pop();

-					}

-					codeStream.recordPositionsFrom(varPC, catchArguments[i].sourceStart);

-					// Keep track of the pcs at diverging point for computing the local attribute

-					// since not passing the catchScope, the block generation will exitUserScope(catchScope)

-					catchBlocks[i].generateCode(scope, codeStream);

-					if (!catchExits[i]) {

-						switch(finallyMode) {

-							case FINALLY_SUBROUTINE :

-							case FINALLY_MUST_BE_INLINED :

-								requiresNaturalExit = true;

-								// fall through

-							case NO_FINALLY :

-								codeStream.goto_(naturalExitLabel);

-								break;

-							case FINALLY_DOES_NOT_COMPLETE :

-								codeStream.goto_(subRoutineStartLabel);

-								break;

-						}

-					}

-				}

-			}

-			this.exitAnyExceptionHandler();

-			// extra handler for trailing natural exit (will be fixed up later on when natural exit is generated below)

-			ExceptionLabel naturalExitExceptionHandler = 

-				finallyMode == FINALLY_SUBROUTINE && requiresNaturalExit ? new ExceptionLabel(codeStream, null) : null;

-

-			// addition of a special handler so as to ensure that any uncaught exception (or exception thrown

-			// inside catch blocks) will run the finally block

-			int finallySequenceStartPC = codeStream.position;

-			if (subRoutineStartLabel != null) {

-				this.placeAllAnyExceptionHandlers();

-				if (naturalExitExceptionHandler != null) naturalExitExceptionHandler.place();

-				

-				if (preTryInitStateIndex != -1) {

-					// reset initialization state, as for a normal catch block

-					codeStream.removeNotDefinitelyAssignedVariables(currentScope, preTryInitStateIndex);

-				}

-

-				codeStream.incrStackSize(1);

-				switch(finallyMode) {

-					case FINALLY_SUBROUTINE :

-						codeStream.store(anyExceptionVariable, false);

-						codeStream.jsr(subRoutineStartLabel);

-						codeStream.recordPositionsFrom(finallySequenceStartPC, finallyBlock.sourceStart);

-						int position = codeStream.position;						

-						codeStream.load(anyExceptionVariable);

-						codeStream.athrow();

-						codeStream.recordPositionsFrom(position, finallyBlock.sourceEnd);

-						subRoutineStartLabel.place();

-						codeStream.incrStackSize(1);

-						position = codeStream.position;	

-						codeStream.store(returnAddressVariable, false);

-						codeStream.recordPositionsFrom(position, finallyBlock.sourceStart);

-						finallyBlock.generateCode(scope, codeStream);

-						position = codeStream.position;

-						codeStream.ret(returnAddressVariable.resolvedPosition);

-//						codeStream.updateLastRecordedEndPC(position);

-						codeStream.recordPositionsFrom(

-							position,

-							finallyBlock.sourceEnd);

-						// the ret bytecode is part of the subroutine

-						break;

-					case FINALLY_MUST_BE_INLINED :

-						codeStream.store(anyExceptionVariable, false);

-						codeStream.recordPositionsFrom(finallySequenceStartPC, finallyBlock.sourceStart);

-						this.finallyBlock.generateCode(currentScope, codeStream);

-						position = codeStream.position;

-						codeStream.load(anyExceptionVariable);

-						codeStream.athrow();

-						subRoutineStartLabel.place();

-						codeStream.recordPositionsFrom(position, finallyBlock.sourceEnd);

-						break;

-					case FINALLY_DOES_NOT_COMPLETE :

-						codeStream.pop();

-						subRoutineStartLabel.place();

-						codeStream.recordPositionsFrom(finallySequenceStartPC, finallyBlock.sourceStart);

-						finallyBlock.generateCode(scope, codeStream);

-						break;

-				}

-				// will naturally fall into subsequent code after subroutine invocation

-				naturalExitLabel.place();

-				if (requiresNaturalExit) {

-					switch(finallyMode) {

-						case FINALLY_SUBROUTINE :

-							int position = codeStream.position;

-							// fix up natural exit handler

-							naturalExitExceptionHandler.placeStart();

-							codeStream.jsr(subRoutineStartLabel);

-							naturalExitExceptionHandler.placeEnd();

-							codeStream.recordPositionsFrom(

-								position,

-								finallyBlock.sourceEnd);	

-							break;

-						case FINALLY_MUST_BE_INLINED :

-							// May loose some local variable initializations : affecting the local variable attributes

-							// needed since any exception handler got inlined subroutine

-							if (preTryInitStateIndex != -1) {

-								codeStream.removeNotDefinitelyAssignedVariables(currentScope, preTryInitStateIndex);

-							}

-							// entire sequence for finally is associated to finally block

-							finallyBlock.generateCode(scope, codeStream);

-							break;

-						case FINALLY_DOES_NOT_COMPLETE :

-							break;

-					}

-				}

-			} else {

-				// no subroutine, simply position end label (natural exit == end)

-				naturalExitLabel.place();

-			}

-		} else {

-			// try block had no effect, only generate the body of the finally block if any

-			if (subRoutineStartLabel != null) {

-				finallyBlock.generateCode(scope, codeStream);

-			}

-		}

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			codeStream.addDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.SubRoutineStatement#generateSubRoutineInvocation(org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope, org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream)

-	 */

-	public void generateSubRoutineInvocation(

-			BlockScope currentScope,

-			CodeStream codeStream) {

-	

-		if (this.isSubRoutineEscaping) {

-				codeStream.goto_(this.subRoutineStartLabel);

-		} else {

-			if (currentScope.environment().options.inlineJsrBytecode) { 

-				// cannot use jsr bytecode, then simply inline the subroutine

-				this.finallyBlock.generateCode(currentScope, codeStream);

-			} else {

-				// classic subroutine invocation, distinguish case of non-returning subroutine

-				codeStream.jsr(this.subRoutineStartLabel);

-			}

-		}

-	}

-

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-		printIndent(indent, output).append("try \n"); //$NON-NLS-1$

-		tryBlock.printStatement(indent + 1, output); //$NON-NLS-1$

-

-		//catches

-		if (catchBlocks != null)

-			for (int i = 0; i < catchBlocks.length; i++) {

-					output.append('\n');

-					printIndent(indent, output).append("catch ("); //$NON-NLS-1$

-					catchArguments[i].print(0, output).append(") "); //$NON-NLS-1$

-					catchBlocks[i].printStatement(indent + 1, output);

-			}

-		//finally

-		if (finallyBlock != null) {

-			output.append('\n');

-			printIndent(indent, output).append("finally\n"); //$NON-NLS-1$

-			finallyBlock.printStatement(indent + 1, output);

-		}

-

-		return output;

-	}

-

-	public void resolve(BlockScope upperScope) {

-

-		// special scope for secret locals optimization.	

-		this.scope = new BlockScope(upperScope);

-

-		BlockScope tryScope = new BlockScope(scope);

-		BlockScope finallyScope = null;

-		

-		if (finallyBlock != null) {

-			if (finallyBlock.isEmptyBlock()) {

-				if ((finallyBlock.bits & UndocumentedEmptyBlockMASK) != 0) {

-					scope.problemReporter().undocumentedEmptyBlock(finallyBlock.sourceStart, finallyBlock.sourceEnd);

-				}

-			} else {

-				finallyScope = new BlockScope(scope, false); // don't add it yet to parent scope

-	

-				// provision for returning and forcing the finally block to run

-				MethodScope methodScope = scope.methodScope();

-	

-				// the type does not matter as long as it is not a base type

-				if (!upperScope.environment().options.inlineJsrBytecode) {

-					this.returnAddressVariable =

-						new LocalVariableBinding(SecretReturnName, upperScope.getJavaLangObject(), AccDefault, false);

-					finallyScope.addLocalVariable(returnAddressVariable);

-					this.returnAddressVariable.setConstant(NotAConstant); // not inlinable

-				}

-				this.subRoutineStartLabel = new Label();

-	

-				this.anyExceptionVariable =

-					new LocalVariableBinding(SecretAnyHandlerName, scope.getJavaLangThrowable(), AccDefault, false);

-				finallyScope.addLocalVariable(this.anyExceptionVariable);

-				this.anyExceptionVariable.setConstant(NotAConstant); // not inlinable

-	

-				if (!methodScope.isInsideInitializer()) {

-					MethodBinding methodBinding =

-						((AbstractMethodDeclaration) methodScope.referenceContext).binding;

-					if (methodBinding != null) {

-						TypeBinding methodReturnType = methodBinding.returnType;

-						if (methodReturnType.id != T_void) {

-							this.secretReturnValue =

-								new LocalVariableBinding(

-									SecretLocalDeclarationName,

-									methodReturnType,

-									AccDefault,

-									false);

-							finallyScope.addLocalVariable(this.secretReturnValue);

-							this.secretReturnValue.setConstant(NotAConstant); // not inlinable

-						}

-					}

-				}

-				finallyBlock.resolveUsing(finallyScope);

-				// force the finally scope to have variable positions shifted after its try scope and catch ones

-				finallyScope.shiftScopes = new BlockScope[catchArguments == null ? 1 : catchArguments.length+1];

-				finallyScope.shiftScopes[0] = tryScope;

-			}

-		}

-		this.tryBlock.resolveUsing(tryScope);

-

-		// arguments type are checked against JavaLangThrowable in resolveForCatch(..)

-		if (this.catchBlocks != null) {

-			int length = this.catchArguments.length;

-			TypeBinding[] argumentTypes = new TypeBinding[length];

-			boolean catchHasError = false;

-			for (int i = 0; i < length; i++) {

-				BlockScope catchScope = new BlockScope(scope);

-				if (finallyScope != null){

-					finallyScope.shiftScopes[i+1] = catchScope;

-				}

-				// side effect on catchScope in resolveForCatch(..)

-				if ((argumentTypes[i] = catchArguments[i].resolveForCatch(catchScope)) == null) {

-					catchHasError = true;

-				}

-				catchBlocks[i].resolveUsing(catchScope);

-			}

-			if (catchHasError) {

-				return;

-			}

-			// Verify that the catch clause are ordered in the right way:

-			// more specialized first.

-			this.caughtExceptionTypes = new ReferenceBinding[length];

-			for (int i = 0; i < length; i++) {

-				caughtExceptionTypes[i] = (ReferenceBinding) argumentTypes[i];

-				for (int j = 0; j < i; j++) {

-					if (caughtExceptionTypes[i].isCompatibleWith(argumentTypes[j])) {

-						scope.problemReporter().wrongSequenceOfExceptionTypesError(this, caughtExceptionTypes[i], i, argumentTypes[j]);

-					}

-				}

-			}

-		} else {

-			caughtExceptionTypes = new ReferenceBinding[0];

-		}

-		

-		if (finallyScope != null){

-			// add finallyScope as last subscope, so it can be shifted behind try/catch subscopes.

-			// the shifting is necessary to achieve no overlay in between the finally scope and its

-			// sibling in term of local variable positions.

-			this.scope.addSubscope(finallyScope);

-		}

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			tryBlock.traverse(visitor, scope);

-			if (catchArguments != null) {

-				for (int i = 0, max = catchBlocks.length; i < max; i++) {

-					catchArguments[i].traverse(visitor, scope);

-					catchBlocks[i].traverse(visitor, scope);

-				}

-			}

-			if (finallyBlock != null)

-				finallyBlock.traverse(visitor, scope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeDeclaration.js
deleted file mode 100644
index 2caf39e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeDeclaration.js
+++ /dev/null
@@ -1,1202 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.*;

-import org.eclipse.wst.jsdt.internal.compiler.problem.*;

-

-public class TypeDeclaration

-	extends Statement

-	implements ProblemSeverities, ReferenceContext {

-

-	public static final char[] ANONYMOUS_EMPTY_NAME = new char[] {};

-

-	public int modifiers = AccDefault;

-	public int modifiersSourceStart;

-	public Annotation[] annotations;

-	public char[] name;

-	public TypeReference superclass;

-	public TypeReference[] superInterfaces;

-	public FieldDeclaration[] fields;

-	public AbstractMethodDeclaration[] methods;

-	public TypeDeclaration[] memberTypes;

-	public SourceTypeBinding binding;

-	public ClassScope scope;

-	public MethodScope initializerScope;

-	public MethodScope staticInitializerScope;

-	public boolean ignoreFurtherInvestigation = false;

-	public int maxFieldCount;

-	public int declarationSourceStart;

-	public int declarationSourceEnd;

-	public int bodyStart;

-	public int bodyEnd; // doesn't include the trailing comment if any.

-	protected boolean hasBeenGenerated = false;

-	public CompilationResult compilationResult;

-	public MethodDeclaration[] missingAbstractMethods;

-	public Javadoc javadoc;	

-

-	public QualifiedAllocationExpression allocation; // for anonymous only

-	public TypeDeclaration enclosingType; // for member types only

-	

-	// 1.5 support

-	public EnumDeclaration[] enums;

-	public TypeParameter[] typeParameters;

-	

-	public TypeDeclaration(CompilationResult compilationResult){

-		this.compilationResult = compilationResult;

-	}

-		

-	/*

-	 *	We cause the compilation task to abort to a given extent.

-	 */

-	public void abort(int abortLevel, IProblem problem) {

-

-		switch (abortLevel) {

-			case AbortCompilation :

-				throw new AbortCompilation(this.compilationResult, problem);

-			case AbortCompilationUnit :

-				throw new AbortCompilationUnit(this.compilationResult, problem);

-			case AbortMethod :

-				throw new AbortMethod(this.compilationResult, problem);

-			default :

-				throw new AbortType(this.compilationResult, problem);

-		}

-	}

-	/**

-	 * This method is responsible for adding a <clinit> method declaration to the type method collections.

-	 * Note that this implementation is inserting it in first place (as VAJ or javac), and that this

-	 * impacts the behavior of the method ConstantPool.resetForClinit(int. int), in so far as 

-	 * the latter will have to reset the constant pool state accordingly (if it was added first, it does 

-	 * not need to preserve some of the method specific cached entries since this will be the first method).

-	 * inserts the clinit method declaration in the first position.

-	 * 

-	 * @see org.eclipse.wst.jsdt.internal.compiler.codegen.ConstantPool#resetForClinit(int, int)

-	 */

-	public final void addClinit() {

-

-		//see comment on needClassInitMethod

-		if (needClassInitMethod()) {

-			int length;

-			AbstractMethodDeclaration[] methodDeclarations;

-			if ((methodDeclarations = this.methods) == null) {

-				length = 0;

-				methodDeclarations = new AbstractMethodDeclaration[1];

-			} else {

-				length = methodDeclarations.length;

-				System.arraycopy(

-					methodDeclarations,

-					0,

-					(methodDeclarations = new AbstractMethodDeclaration[length + 1]),

-					1,

-					length);

-			}

-			Clinit clinit = new Clinit(this.compilationResult);

-			methodDeclarations[0] = clinit;

-			// clinit is added in first location, so as to minimize the use of ldcw (big consumer of constant inits)

-			clinit.declarationSourceStart = clinit.sourceStart = sourceStart;

-			clinit.declarationSourceEnd = clinit.sourceEnd = sourceEnd;

-			clinit.bodyEnd = sourceEnd;

-			this.methods = methodDeclarations;

-		}

-	}

-

-	/*

-	 * INTERNAL USE ONLY - Creates a fake method declaration for the corresponding binding.

-	 * It is used to report errors for missing abstract methods.

-	 */

-	public MethodDeclaration addMissingAbstractMethodFor(MethodBinding methodBinding) {

-		TypeBinding[] argumentTypes = methodBinding.parameters;

-		int argumentsLength = argumentTypes.length;

-		//the constructor

-		MethodDeclaration methodDeclaration = new MethodDeclaration(this.compilationResult);

-		methodDeclaration.selector = methodBinding.selector;

-		methodDeclaration.sourceStart = sourceStart;

-		methodDeclaration.sourceEnd = sourceEnd;

-		methodDeclaration.modifiers = methodBinding.getAccessFlags() & ~AccAbstract;

-

-		if (argumentsLength > 0) {

-			String baseName = "arg";//$NON-NLS-1$

-			Argument[] arguments = (methodDeclaration.arguments = new Argument[argumentsLength]);

-			for (int i = argumentsLength; --i >= 0;) {

-				arguments[i] = new Argument((baseName + i).toCharArray(), 0L, null /*type ref*/, AccDefault, false /*not vararg*/);

-			}

-		}

-

-		//adding the constructor in the methods list

-		if (this.missingAbstractMethods == null) {

-			this.missingAbstractMethods = new MethodDeclaration[] { methodDeclaration };

-		} else {

-			MethodDeclaration[] newMethods;

-			System.arraycopy(

-				this.missingAbstractMethods,

-				0,

-				newMethods = new MethodDeclaration[this.missingAbstractMethods.length + 1],

-				1,

-				this.missingAbstractMethods.length);

-			newMethods[0] = methodDeclaration;

-			this.missingAbstractMethods = newMethods;

-		}

-

-		//============BINDING UPDATE==========================

-		methodDeclaration.binding = new MethodBinding(

-				methodDeclaration.modifiers, //methodDeclaration

-				methodBinding.selector,

-				methodBinding.returnType,

-				argumentsLength == 0 ? NoParameters : argumentTypes, //arguments bindings

-				methodBinding.thrownExceptions, //exceptions

-				binding); //declaringClass

-				

-		methodDeclaration.scope = new MethodScope(scope, methodDeclaration, true);

-		methodDeclaration.bindArguments();

-

-/*		if (binding.methods == null) {

-			binding.methods = new MethodBinding[] { methodDeclaration.binding };

-		} else {

-			MethodBinding[] newMethods;

-			System.arraycopy(

-				binding.methods,

-				0,

-				newMethods = new MethodBinding[binding.methods.length + 1],

-				1,

-				binding.methods.length);

-			newMethods[0] = methodDeclaration.binding;

-			binding.methods = newMethods;

-		}*/

-		//===================================================

-

-		return methodDeclaration;

-	}

-

-	/**

-	 *	Flow analysis for a local innertype

-	 *

-	 */

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		if (ignoreFurtherInvestigation)

-			return flowInfo;

-		try {

-			if (flowInfo.isReachable()) {

-				bits |= IsReachableMASK;

-				LocalTypeBinding localType = (LocalTypeBinding) binding;

-				localType.setConstantPoolName(currentScope.compilationUnitScope().computeConstantPoolName(localType));

-			}

-			manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-			updateMaxFieldCount(); // propagate down the max field count

-			internalAnalyseCode(flowContext, flowInfo); 

-		} catch (AbortType e) {

-			this.ignoreFurtherInvestigation = true;

-		}

-		return flowInfo;

-	}

-

-	/**

-	 *	Flow analysis for a member innertype

-	 *

-	 */

-	public void analyseCode(ClassScope enclosingClassScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			// propagate down the max field count

-			updateMaxFieldCount();

-			internalAnalyseCode(null, FlowInfo.initial(maxFieldCount));

-		} catch (AbortType e) {

-			this.ignoreFurtherInvestigation = true;

-		}

-	}

-

-	/**

-	 *	Flow analysis for a local member innertype

-	 *

-	 */

-	public void analyseCode(

-		ClassScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (flowInfo.isReachable()) {

-				bits |= IsReachableMASK;

-				LocalTypeBinding localType = (LocalTypeBinding) binding;

-				localType.setConstantPoolName(currentScope.compilationUnitScope().computeConstantPoolName(localType));

-			}

-			manageEnclosingInstanceAccessIfNecessary(currentScope, flowInfo);

-			updateMaxFieldCount(); // propagate down the max field count

-			internalAnalyseCode(flowContext, flowInfo);

-		} catch (AbortType e) {

-			this.ignoreFurtherInvestigation = true;

-		}

-	}

-

-	/**

-	 *	Flow analysis for a package member type

-	 *

-	 */

-	public void analyseCode(CompilationUnitScope unitScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			internalAnalyseCode(null, FlowInfo.initial(maxFieldCount));

-		} catch (AbortType e) {

-			this.ignoreFurtherInvestigation = true;

-		}

-	}

-

-	/*

-	 * Check for constructor vs. method with no return type.

-	 * Answers true if at least one constructor is defined

-	 */

-	public boolean checkConstructors(Parser parser) {

-

-		//if a constructor has not the name of the type,

-		//convert it into a method with 'null' as its return type

-		boolean hasConstructor = false;

-		if (methods != null) {

-			for (int i = methods.length; --i >= 0;) {

-				AbstractMethodDeclaration am;

-				if ((am = methods[i]).isConstructor()) {

-					if (!CharOperation.equals(am.selector, name)) {

-						// the constructor was in fact a method with no return type

-						// unless an explicit constructor call was supplied

-						ConstructorDeclaration c = (ConstructorDeclaration) am;

-						if (c.constructorCall == null || c.constructorCall.isImplicitSuper()) { //changed to a method

-							MethodDeclaration m = parser.convertToMethodDeclaration(c, this.compilationResult);

-							methods[i] = m;

-						}

-					} else {

-						if (this.isInterface()) {

-							// report the problem and continue the parsing

-							parser.problemReporter().interfaceCannotHaveConstructors(

-								(ConstructorDeclaration) am);

-						}

-						hasConstructor = true;

-					}

-				}

-			}

-		}

-		return hasConstructor;

-	}

-

-	public CompilationResult compilationResult() {

-

-		return this.compilationResult;

-	}

-

-	public ConstructorDeclaration createsInternalConstructor(

-		boolean needExplicitConstructorCall,

-		boolean needToInsert) {

-

-		//Add to method'set, the default constuctor that just recall the

-		//super constructor with no arguments

-		//The arguments' type will be positionned by the TC so just use

-		//the default int instead of just null (consistency purpose)

-

-		//the constructor

-		ConstructorDeclaration constructor = new ConstructorDeclaration(this.compilationResult);

-		constructor.isDefaultConstructor = true;

-		constructor.selector = name;

-		if (modifiers != AccDefault) {

-			constructor.modifiers =

-				(((this.bits & ASTNode.IsMemberTypeMASK) != 0) && (modifiers & AccPrivate) != 0)

-					? AccDefault

-					: modifiers & AccVisibilityMASK;

-		}

-

-		//if you change this setting, please update the 

-		//SourceIndexer2.buildTypeDeclaration(TypeDeclaration,char[]) method

-		constructor.declarationSourceStart = constructor.sourceStart = sourceStart;

-		constructor.declarationSourceEnd =

-			constructor.sourceEnd = constructor.bodyEnd = sourceEnd;

-

-		//the super call inside the constructor

-		if (needExplicitConstructorCall) {

-			constructor.constructorCall = SuperReference.implicitSuperConstructorCall();

-			constructor.constructorCall.sourceStart = sourceStart;

-			constructor.constructorCall.sourceEnd = sourceEnd;

-		}

-

-		//adding the constructor in the methods list

-		if (needToInsert) {

-			if (methods == null) {

-				methods = new AbstractMethodDeclaration[] { constructor };

-			} else {

-				AbstractMethodDeclaration[] newMethods;

-				System.arraycopy(

-					methods,

-					0,

-					newMethods = new AbstractMethodDeclaration[methods.length + 1],

-					1,

-					methods.length);

-				newMethods[0] = constructor;

-				methods = newMethods;

-			}

-		}

-		return constructor;

-	}

-	

-	// anonymous type constructor creation

-	public MethodBinding createsInternalConstructorWithBinding(MethodBinding inheritedConstructorBinding) {

-

-		//Add to method'set, the default constuctor that just recall the

-		//super constructor with the same arguments

-		String baseName = "$anonymous"; //$NON-NLS-1$

-		TypeBinding[] argumentTypes = inheritedConstructorBinding.parameters;

-		int argumentsLength = argumentTypes.length;

-		//the constructor

-		ConstructorDeclaration cd = new ConstructorDeclaration(this.compilationResult);

-		cd.selector = new char[] { 'x' }; //no maining

-		cd.sourceStart = sourceStart;

-		cd.sourceEnd = sourceEnd;

-		cd.modifiers = modifiers & AccVisibilityMASK;

-		cd.isDefaultConstructor = true;

-

-		if (argumentsLength > 0) {

-			Argument[] arguments = (cd.arguments = new Argument[argumentsLength]);

-			for (int i = argumentsLength; --i >= 0;) {

-				arguments[i] = new Argument((baseName + i).toCharArray(), 0L, null /*type ref*/, AccDefault, false /*not vararg*/);

-			}

-		}

-

-		//the super call inside the constructor

-		cd.constructorCall = SuperReference.implicitSuperConstructorCall();

-		cd.constructorCall.sourceStart = sourceStart;

-		cd.constructorCall.sourceEnd = sourceEnd;

-

-		if (argumentsLength > 0) {

-			Expression[] args;

-			args = cd.constructorCall.arguments = new Expression[argumentsLength];

-			for (int i = argumentsLength; --i >= 0;) {

-				args[i] = new SingleNameReference((baseName + i).toCharArray(), 0L);

-			}

-		}

-

-		//adding the constructor in the methods list

-		if (methods == null) {

-			methods = new AbstractMethodDeclaration[] { cd };

-		} else {

-			AbstractMethodDeclaration[] newMethods;

-			System.arraycopy(

-				methods,

-				0,

-				newMethods = new AbstractMethodDeclaration[methods.length + 1],

-				1,

-				methods.length);

-			newMethods[0] = cd;

-			methods = newMethods;

-		}

-

-		//============BINDING UPDATE==========================

-		cd.binding = new MethodBinding(

-				cd.modifiers, //methodDeclaration

-				argumentsLength == 0 ? NoParameters : argumentTypes, //arguments bindings

-				inheritedConstructorBinding.thrownExceptions, //exceptions

-				binding); //declaringClass

-				

-		cd.scope = new MethodScope(scope, cd, true);

-		cd.bindArguments();

-		cd.constructorCall.resolve(cd.scope);

-

-		if (binding.methods == null) {

-			binding.methods = new MethodBinding[] { cd.binding };

-		} else {

-			MethodBinding[] newMethods;

-			System.arraycopy(

-				binding.methods,

-				0,

-				newMethods = new MethodBinding[binding.methods.length + 1],

-				1,

-				binding.methods.length);

-			newMethods[0] = cd.binding;

-			binding.methods = newMethods;

-		}

-		//===================================================

-

-		return cd.binding;

-	}

-

-	/*

-	 * Find the matching parse node, answers null if nothing found

-	 */

-	public FieldDeclaration declarationOf(FieldBinding fieldBinding) {

-

-		if (fieldBinding != null) {

-			for (int i = 0, max = this.fields.length; i < max; i++) {

-				FieldDeclaration fieldDecl;

-				if ((fieldDecl = this.fields[i]).binding == fieldBinding)

-					return fieldDecl;

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * Find the matching parse node, answers null if nothing found

-	 */

-	public TypeDeclaration declarationOf(MemberTypeBinding memberTypeBinding) {

-

-		if (memberTypeBinding != null) {

-			for (int i = 0, max = this.memberTypes.length; i < max; i++) {

-				TypeDeclaration memberTypeDecl;

-				if ((memberTypeDecl = this.memberTypes[i]).binding == memberTypeBinding)

-					return memberTypeDecl;

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * Find the matching parse node, answers null if nothing found

-	 */

-	public AbstractMethodDeclaration declarationOf(MethodBinding methodBinding) {

-

-		if (methodBinding != null) {

-			for (int i = 0, max = this.methods.length; i < max; i++) {

-				AbstractMethodDeclaration methodDecl;

-

-				if ((methodDecl = this.methods[i]).binding == methodBinding)

-					return methodDecl;

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * Finds the matching type amoung this type's member types.

-	 * Returns null if no type with this name is found.

-	 * The type name is a compound name relative to this type

-	 * eg. if this type is X and we're looking for Y.X.A.B

-	 *     then a type name would be {X, A, B}

-	 */

-	public TypeDeclaration declarationOfType(char[][] typeName) {

-

-		int typeNameLength = typeName.length;

-		if (typeNameLength < 1 || !CharOperation.equals(typeName[0], this.name)) {

-			return null;

-		}

-		if (typeNameLength == 1) {

-			return this;

-		}

-		char[][] subTypeName = new char[typeNameLength - 1][];

-		System.arraycopy(typeName, 1, subTypeName, 0, typeNameLength - 1);

-		for (int i = 0; i < this.memberTypes.length; i++) {

-			TypeDeclaration typeDecl = this.memberTypes[i].declarationOfType(subTypeName);

-			if (typeDecl != null) {

-				return typeDecl;

-			}

-		}

-		return null;

-	}

-

-	/**

-	 * Generic bytecode generation for type

-	 */

-	public void generateCode(ClassFile enclosingClassFile) {

-

-		if (hasBeenGenerated)

-			return;

-		hasBeenGenerated = true;

-		if (ignoreFurtherInvestigation) {

-			if (binding == null)

-				return;

-			ClassFile.createProblemType(

-				this,

-				scope.referenceCompilationUnit().compilationResult);

-			return;

-		}

-		try {

-			// create the result for a compiled type

-			ClassFile classFile = new ClassFile(binding, enclosingClassFile, false);

-			// generate all fiels

-			classFile.addFieldInfos();

-

-			// record the inner type inside its own .class file to be able

-			// to generate inner classes attributes

-			if (binding.isMemberType())

-				classFile.recordEnclosingTypeAttributes(binding);

-			if (binding.isLocalType()) {

-				enclosingClassFile.recordNestedLocalAttribute(binding);

-				classFile.recordNestedLocalAttribute(binding);

-			}

-			if (memberTypes != null) {

-				for (int i = 0, max = memberTypes.length; i < max; i++) {

-					// record the inner type inside its own .class file to be able

-					// to generate inner classes attributes

-					classFile.recordNestedMemberAttribute(memberTypes[i].binding);

-					memberTypes[i].generateCode(scope, classFile);

-				}

-			}

-			// generate all methods

-			classFile.setForMethodInfos();

-			if (methods != null) {

-				for (int i = 0, max = methods.length; i < max; i++) {

-					methods[i].generateCode(scope, classFile);

-				}

-			}

-			// generate all synthetic and abstract methods

-			classFile.addSpecialMethods();

-

-			if (ignoreFurtherInvestigation) { // trigger problem type generation for code gen errors

-				throw new AbortType(scope.referenceCompilationUnit().compilationResult, null);

-			}

-

-			// finalize the compiled type result

-			classFile.addAttributes();

-			scope.referenceCompilationUnit().compilationResult.record(

-				binding.constantPoolName(),

-				classFile);

-		} catch (AbortType e) {

-			if (binding == null)

-				return;

-			ClassFile.createProblemType(

-				this,

-				scope.referenceCompilationUnit().compilationResult);

-		}

-	}

-

-	/**

-	 * Bytecode generation for a local inner type (API as a normal statement code gen)

-	 */

-	public void generateCode(BlockScope blockScope, CodeStream codeStream) {

-

-		if ((this.bits & IsReachableMASK) == 0) {

-			return;

-		}		

-		if (hasBeenGenerated) return;

-		int pc = codeStream.position;

-		if (binding != null) ((NestedTypeBinding) binding).computeSyntheticArgumentSlotSizes();

-		generateCode(codeStream.classFile);

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	/**

-	 * Bytecode generation for a member inner type

-	 */

-	public void generateCode(ClassScope classScope, ClassFile enclosingClassFile) {

-

-		if (hasBeenGenerated) return;

-		if (binding != null) ((NestedTypeBinding) binding).computeSyntheticArgumentSlotSizes();

-		generateCode(enclosingClassFile);

-	}

-

-	/**

-	 * Bytecode generation for a package member

-	 */

-	public void generateCode(CompilationUnitScope unitScope) {

-

-		generateCode((ClassFile) null);

-	}

-

-	public boolean hasErrors() {

-		return this.ignoreFurtherInvestigation;

-	}

-

-	/**

-	 *	Common flow analysis for all types

-	 *

-	 */

-	public void internalAnalyseCode(FlowContext flowContext, FlowInfo flowInfo) {

-

-		if (this.binding.isPrivate() && !this.binding.isPrivateUsed()) {

-			if (!scope.referenceCompilationUnit().compilationResult.hasSyntaxError()) {

-				scope.problemReporter().unusedPrivateType(this);

-			}

-		}

-

-		InitializationFlowContext initializerContext = new InitializationFlowContext(null, this, initializerScope);

-		InitializationFlowContext staticInitializerContext = new InitializationFlowContext(null, this, staticInitializerScope);

-		FlowInfo nonStaticFieldInfo = flowInfo.copy().unconditionalInits().discardFieldInitializations();

-		FlowInfo staticFieldInfo = flowInfo.copy().unconditionalInits().discardFieldInitializations();

-		if (fields != null) {

-			for (int i = 0, count = fields.length; i < count; i++) {

-				FieldDeclaration field = fields[i];

-				if (field.isStatic()) {

-					/*if (field.isField()){

-						staticInitializerContext.handledExceptions = NoExceptions; // no exception is allowed jls8.3.2

-					} else {*/

-					staticInitializerContext.handledExceptions = AnyException; // tolerate them all, and record them

-					/*}*/

-					staticFieldInfo =

-						field.analyseCode(

-							staticInitializerScope,

-							staticInitializerContext,

-							staticFieldInfo);

-					// in case the initializer is not reachable, use a reinitialized flowInfo and enter a fake reachable

-					// branch, since the previous initializer already got the blame.

-					if (staticFieldInfo == FlowInfo.DEAD_END) {

-						staticInitializerScope.problemReporter().initializerMustCompleteNormally(field);

-						staticFieldInfo = FlowInfo.initial(maxFieldCount).setReachMode(FlowInfo.UNREACHABLE);

-					}

-				} else {

-					/*if (field.isField()){

-						initializerContext.handledExceptions = NoExceptions; // no exception is allowed jls8.3.2

-					} else {*/

-						initializerContext.handledExceptions = AnyException; // tolerate them all, and record them

-					/*}*/

-					nonStaticFieldInfo =

-						field.analyseCode(initializerScope, initializerContext, nonStaticFieldInfo);

-					// in case the initializer is not reachable, use a reinitialized flowInfo and enter a fake reachable

-					// branch, since the previous initializer already got the blame.

-					if (nonStaticFieldInfo == FlowInfo.DEAD_END) {

-						initializerScope.problemReporter().initializerMustCompleteNormally(field);

-						nonStaticFieldInfo = FlowInfo.initial(maxFieldCount).setReachMode(FlowInfo.UNREACHABLE);

-					} 

-				}

-			}

-		}

-		if (memberTypes != null) {

-			for (int i = 0, count = memberTypes.length; i < count; i++) {

-				if (flowContext != null){ // local type

-					memberTypes[i].analyseCode(scope, flowContext, nonStaticFieldInfo.copy().setReachMode(flowInfo.reachMode())); // reset reach mode in case initializers did abrupt completely

-				} else {

-					memberTypes[i].analyseCode(scope);

-				}

-			}

-		}

-		if (methods != null) {

-			UnconditionalFlowInfo outerInfo = flowInfo.copy().unconditionalInits().discardFieldInitializations();

-			FlowInfo constructorInfo = nonStaticFieldInfo.unconditionalInits().discardNonFieldInitializations().addInitializationsFrom(outerInfo);

-			for (int i = 0, count = methods.length; i < count; i++) {

-				AbstractMethodDeclaration method = methods[i];

-				if (method.ignoreFurtherInvestigation)

-					continue;

-				if (method.isInitializationMethod()) {

-					if (method.isStatic()) { // <clinit>

-						method.analyseCode(

-							scope, 

-							staticInitializerContext,  

-							staticFieldInfo.unconditionalInits().discardNonFieldInitializations().addInitializationsFrom(outerInfo).setReachMode(flowInfo.reachMode()));  // reset reach mode in case initializers did abrupt completely

-					} else { // constructor

-						method.analyseCode(scope, initializerContext, constructorInfo.copy().setReachMode(flowInfo.reachMode())); // reset reach mode in case initializers did abrupt completely

-					}

-				} else { // regular method

-					method.analyseCode(scope, null, flowInfo.copy());

-				}

-			}

-		}

-	}

-

-	public boolean isInterface() {

-

-		return (modifiers & AccInterface) != 0;

-	}

-

-	/* 

-	 * Access emulation for a local type

-	 * force to emulation of access to direct enclosing instance.

-	 * By using the initializer scope, we actually only request an argument emulation, the

-	 * field is not added until actually used. However we will force allocations to be qualified

-	 * with an enclosing instance.

-	 * 15.9.2

-	 */

-	public void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope, FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-		NestedTypeBinding nestedType = (NestedTypeBinding) binding;

-		

-		MethodScope methodScope = currentScope.methodScope();

-		if (!methodScope.isStatic && !methodScope.isConstructorCall){

-

-			nestedType.addSyntheticArgumentAndField(binding.enclosingType());	

-		}

-		// add superclass enclosing instance arg for anonymous types (if necessary)

-		if (binding.isAnonymousType()) { 

-			ReferenceBinding superclassBinding = binding.superclass;

-			if (superclassBinding.enclosingType() != null && !superclassBinding.isStatic()) {

-				if (!superclassBinding.isLocalType()

-						|| ((NestedTypeBinding)superclassBinding).getSyntheticField(superclassBinding.enclosingType(), true) != null){

-

-					nestedType.addSyntheticArgument(superclassBinding.enclosingType());	

-				}

-			}

-		}

-	}

-	

-	/* 

-	 * Access emulation for a local member type

-	 * force to emulation of access to direct enclosing instance.

-	 * By using the initializer scope, we actually only request an argument emulation, the

-	 * field is not added until actually used. However we will force allocations to be qualified

-	 * with an enclosing instance.

-	 * 

-	 * Local member cannot be static.

-	 */

-	public void manageEnclosingInstanceAccessIfNecessary(ClassScope currentScope, FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-		NestedTypeBinding nestedType = (NestedTypeBinding) binding;

-		nestedType.addSyntheticArgumentAndField(binding.enclosingType());

-	}	

-	

-	/**

-	 * A <clinit> will be requested as soon as static fields or assertions are present. It will be eliminated during

-	 * classfile creation if no bytecode was actually produced based on some optimizations/compiler settings.

-	 */

-	public final boolean needClassInitMethod() {

-

-		// always need a <clinit> when assertions are present

-		if ((this.bits & AddAssertionMASK) != 0)

-			return true;

-		if (fields == null)

-			return false;

-		if (isInterface())

-			return true; // fields are implicitly statics

-		for (int i = fields.length; --i >= 0;) {

-			FieldDeclaration field = fields[i];

-			//need to test the modifier directly while there is no binding yet

-			if ((field.modifiers & AccStatic) != 0)

-				return true;

-		}

-		return false;

-	}

-

-	public void parseMethod(Parser parser, CompilationUnitDeclaration unit) {

-

-		//connect method bodies

-		if (unit.ignoreMethodBodies)

-			return;

-

-		//members

-		if (memberTypes != null) {

-			int length = memberTypes.length;

-			for (int i = 0; i < length; i++)

-				memberTypes[i].parseMethod(parser, unit);

-		}

-

-		//methods

-		if (methods != null) {

-			int length = methods.length;

-			for (int i = 0; i < length; i++)

-				methods[i].parseStatements(parser, unit);

-		}

-

-		//initializers

-		if (fields != null) {

-			int length = fields.length;

-			for (int i = 0; i < length; i++) {

-				if (fields[i] instanceof Initializer) {

-					((Initializer) fields[i]).parseStatements(parser, this, unit);

-				}

-			}

-		}

-	}

-

-	public StringBuffer print(int indent, StringBuffer output) {

-

-		if ((this.bits & IsAnonymousTypeMASK) == 0) {

-			printIndent(indent, output);

-			printHeader(0, output);

-		}

-		return printBody(indent, output);

-	}

-

-	public StringBuffer printBody(int indent, StringBuffer output) {

-

-		output.append(" {"); //$NON-NLS-1$

-		if (memberTypes != null) {

-			for (int i = 0; i < memberTypes.length; i++) {

-				if (memberTypes[i] != null) {

-					output.append('\n');

-					memberTypes[i].print(indent + 1, output);

-				}

-			}

-		}

-		if (fields != null) {

-			for (int fieldI = 0; fieldI < fields.length; fieldI++) {

-				if (fields[fieldI] != null) {

-					output.append('\n');

-					fields[fieldI].print(indent + 1, output);

-				}

-			}

-		}

-		if (methods != null) {

-			for (int i = 0; i < methods.length; i++) {

-				if (methods[i] != null) {

-					output.append('\n');

-					methods[i].print(indent + 1, output); 

-				}

-			}

-		}

-		output.append('\n');

-		return printIndent(indent, output).append('}');

-	}

-

-	public StringBuffer printHeader(int indent, StringBuffer output) {

-

-		printModifiers(this.modifiers, output);

-		output.append(isInterface() ? "interface " : "class "); //$NON-NLS-1$ //$NON-NLS-2$

-		output.append(name);

-		if (typeParameters != null) {

-			output.append("<");//$NON-NLS-1$

-			for (int i = 0; i < typeParameters.length; i++) {

-				if (i > 0) output.append( ", "); //$NON-NLS-1$

-				typeParameters[i].print(0, output);

-			}

-			output.append(">");//$NON-NLS-1$

-		}

-		if (superclass != null) {

-			output.append(" extends ");  //$NON-NLS-1$

-			superclass.print(0, output);

-		}

-		if (superInterfaces != null && superInterfaces.length > 0) {

-			output.append(isInterface() ? " extends " : " implements ");//$NON-NLS-2$ //$NON-NLS-1$

-			for (int i = 0; i < superInterfaces.length; i++) {

-				if (i > 0) output.append( ", "); //$NON-NLS-1$

-				superInterfaces[i].print(0, output);

-			}

-		}

-		return output;

-	}

-

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-		return print(tab, output);

-	}

-

-	public void resolve() {

-

-		SourceTypeBinding sourceType = this.binding;

-		if (sourceType == null) {

-			this.ignoreFurtherInvestigation = true;

-			return;

-		}

-		try {

-			if ((this.bits & UndocumentedEmptyBlockMASK) != 0) {

-				this.scope.problemReporter().undocumentedEmptyBlock(this.bodyStart-1, this.bodyEnd);

-			}

-			boolean needSerialVersion = 

-							this.scope.environment().options.getSeverity(CompilerOptions.MissingSerialVersion) != ProblemSeverities.Ignore

-							&& sourceType.isClass() 

-							&& !sourceType.isAbstract() 

-							&& sourceType.findSuperTypeErasingTo(T_JavaIoSerializable, false /*Serializable is not a class*/) != null;

-			

-			if (this.typeParameters != null && scope.getJavaLangThrowable().isSuperclassOf(sourceType)) {

-				this.scope.problemReporter().genericTypeCannotExtendThrowable(this);

-			}

-			this.maxFieldCount = 0;

-			int lastVisibleFieldID = -1;

-			if (this.fields != null) {

-				for (int i = 0, count = this.fields.length; i < count; i++) {

-					FieldDeclaration field = this.fields[i];

-					if (field.isField()) {

-						FieldBinding fieldBinding = field.binding;

-						if (fieldBinding == null) {

-							// still discover secondary errors

-							if (field.initialization != null) field.initialization.resolve(field.isStatic() ? this.staticInitializerScope : this.initializerScope);

-							this.ignoreFurtherInvestigation = true;

-							continue;

-						}

-						if (needSerialVersion

-								&& ((fieldBinding.modifiers & (AccStatic | AccFinal)) == (AccStatic | AccFinal))

-								&& CharOperation.equals(TypeConstants.SERIALVERSIONUID, fieldBinding.name)

-								&& BaseTypes.LongBinding == fieldBinding.type) {

-							needSerialVersion = false;

-						}

-						this.maxFieldCount++;

-						lastVisibleFieldID = field.binding.id;

-					} else { // initializer

-						 ((Initializer) field).lastVisibleFieldID = lastVisibleFieldID + 1;

-					}

-					field.resolve(field.isStatic() ? this.staticInitializerScope : this.initializerScope);

-				}

-			}

-			if (needSerialVersion) {

-				this.scope.problemReporter().missingSerialVersion(this);

-			}

-			if (this.memberTypes != null) {

-				for (int i = 0, count = this.memberTypes.length; i < count; i++) {

-					this.memberTypes[i].resolve(this.scope);

-				}

-			}

-			int missingAbstractMethodslength = this.missingAbstractMethods == null ? 0 : this.missingAbstractMethods.length;

-			int methodsLength = this.methods == null ? 0 : this.methods.length;

-			if ((methodsLength + missingAbstractMethodslength) > 0xFFFF) {

-				this.scope.problemReporter().tooManyMethods(this);

-			}

-			

-			if (this.methods != null) {

-				for (int i = 0, count = this.methods.length; i < count; i++) {

-					this.methods[i].resolve(this.scope);

-				}

-			}

-			// Resolve javadoc

-			if (this.javadoc != null) {

-				if (this.scope != null) {

-					this.javadoc.resolve(this.scope);

-				}

-			} else if (sourceType != null && !sourceType.isLocalType()) {

-				this.scope.problemReporter().javadocMissing(this.sourceStart, this.sourceEnd, sourceType.modifiers);

-			}

-			

-		} catch (AbortType e) {

-			this.ignoreFurtherInvestigation = true;

-			return;

-		}

-	}

-

-	public void resolve(BlockScope blockScope) {

-		// local type declaration

-

-		// need to build its scope first and proceed with binding's creation

-		if ((this.bits & IsAnonymousTypeMASK) == 0) blockScope.addLocalType(this);

-

-		if (binding != null) {

-			// remember local types binding for innerclass emulation propagation

-			blockScope.referenceCompilationUnit().record((LocalTypeBinding)binding);

-

-			// binding is not set if the receiver could not be created

-			resolve();

-			updateMaxFieldCount();

-		}

-	}

-	

-	public void resolve(ClassScope upperScope) {

-		// member scopes are already created

-		// request the construction of a binding if local member type

-

-		if (binding != null && binding instanceof LocalTypeBinding) {

-			// remember local types binding for innerclass emulation propagation

-			upperScope.referenceCompilationUnit().record((LocalTypeBinding)binding);

-		}

-		resolve();

-		updateMaxFieldCount();

-	}

-

-	public void resolve(CompilationUnitScope upperScope) {

-		// top level : scope are already created

-

-		resolve();

-		updateMaxFieldCount();

-	}

-

-	public void tagAsHavingErrors() {

-		ignoreFurtherInvestigation = true;

-	}

-

-

-	/**

-	 *	Iteration for a package member type

-	 *

-	 */

-	public void traverse(

-		ASTVisitor visitor,

-		CompilationUnitScope unitScope) {

-

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, unitScope)) {

-				if (this.annotations != null) {

-					int annotationsLength = this.annotations.length;

-					for (int i = 0; i < annotationsLength; i++)

-						this.annotations[i].traverse(visitor, scope);

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.typeParameters != null) {

-					int length = this.typeParameters.length;

-					for (int i = 0; i < length; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++)

-						this.enums[i].traverse(visitor, scope);

-				}

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, unitScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-

-	/**

-	 *	Iteration for a local innertype

-	 *

-	 */

-	public void traverse(ASTVisitor visitor, BlockScope blockScope) {

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, blockScope)) {

-				if (this.annotations != null) {

-					int annotationsLength = this.annotations.length;

-					for (int i = 0; i < annotationsLength; i++)

-						this.annotations[i].traverse(visitor, scope);

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.typeParameters != null) {

-					int length = this.typeParameters.length;

-					for (int i = 0; i < length; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++)

-						this.enums[i].traverse(visitor, scope);

-				}				

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							// local type cannot have static fields

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, blockScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}

-

-	/**

-	 *	Iteration for a member innertype

-	 *

-	 */

-	public void traverse(ASTVisitor visitor, ClassScope classScope) {

-		if (ignoreFurtherInvestigation)

-			return;

-		try {

-			if (visitor.visit(this, classScope)) {

-				if (this.annotations != null) {

-					int annotationsLength = this.annotations.length;

-					for (int i = 0; i < annotationsLength; i++)

-						this.annotations[i].traverse(visitor, scope);

-				}

-				if (this.superclass != null)

-					this.superclass.traverse(visitor, scope);

-				if (this.superInterfaces != null) {

-					int length = this.superInterfaces.length;

-					for (int i = 0; i < length; i++)

-						this.superInterfaces[i].traverse(visitor, scope);

-				}

-				if (this.typeParameters != null) {

-					int length = this.typeParameters.length;

-					for (int i = 0; i < length; i++) {

-						this.typeParameters[i].traverse(visitor, scope);

-					}

-				}				

-				if (this.memberTypes != null) {

-					int length = this.memberTypes.length;

-					for (int i = 0; i < length; i++)

-						this.memberTypes[i].traverse(visitor, scope);

-				}

-				if (this.enums != null) {

-					int length = this.enums.length;

-					for (int i = 0; i < length; i++)

-						this.enums[i].traverse(visitor, scope);

-				}					

-				if (this.fields != null) {

-					int length = this.fields.length;

-					for (int i = 0; i < length; i++) {

-						FieldDeclaration field;

-						if ((field = this.fields[i]).isStatic()) {

-							field.traverse(visitor, staticInitializerScope);

-						} else {

-							field.traverse(visitor, initializerScope);

-						}

-					}

-				}

-				if (this.methods != null) {

-					int length = this.methods.length;

-					for (int i = 0; i < length; i++)

-						this.methods[i].traverse(visitor, scope);

-				}

-			}

-			visitor.endVisit(this, classScope);

-		} catch (AbortType e) {

-			// silent abort

-		}

-	}	

-

-	/**

-	 * MaxFieldCount's computation is necessary so as to reserve space for

-	 * the flow info field portions. It corresponds to the maximum amount of

-	 * fields this class or one of its innertypes have.

-	 *

-	 * During name resolution, types are traversed, and the max field count is recorded

-	 * on the outermost type. It is then propagated down during the flow analysis.

-	 *

-	 * This method is doing either up/down propagation.

-	 */

-	void updateMaxFieldCount() {

-

-		if (binding == null)

-			return; // error scenario

-		TypeDeclaration outerMostType = scope.outerMostClassScope().referenceType();

-		if (maxFieldCount > outerMostType.maxFieldCount) {

-			outerMostType.maxFieldCount = maxFieldCount; // up

-		} else {

-			maxFieldCount = outerMostType.maxFieldCount; // down

-		}

-	}	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeParameter.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeParameter.js
deleted file mode 100644
index 0f7354e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeParameter.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeVariableBinding;

-

-public class TypeParameter extends AbstractVariableDeclaration {

-

-    public TypeVariableBinding binding;

-	public TypeReference[] bounds;

-

-	public void resolve(ClassScope scope) {

-	    // TODO (philippe) add warning for detecting variable name collisions

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.ast.AstNode#print(int, java.lang.StringBuffer)

-	 */

-	public StringBuffer printStatement(int indent, StringBuffer output) {

-		output.append(this.name);

-		if (this.type != null) {

-			output.append(" extends "); //$NON-NLS-1$

-			this.type.print(0, output);

-		}

-		if (this.bounds != null){

-			for (int i = 0; i < this.bounds.length; i++) {

-				output.append(" & "); //$NON-NLS-1$

-				this.bounds[i].print(0, output);

-			}

-		}

-		return output;

-	}

-	

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-	    // nothing to do

-	}

-	

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (type != null) {

-				type.traverse(visitor, scope);

-			}

-			if (bounds != null) {

-				int boundsLength = this.bounds.length;

-				for (int i = 0; i < boundsLength; i++) {

-					this.bounds[i].traverse(visitor, scope);

-				}

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (type != null) {

-				type.traverse(visitor, scope);

-			}

-			if (bounds != null) {

-				int boundsLength = this.bounds.length;

-				for (int i = 0; i < boundsLength; i++) {

-					this.bounds[i].traverse(visitor, scope);

-				}

-			}

-		}

-		visitor.endVisit(this, scope);

-	}	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeReference.js
deleted file mode 100644
index bea4e26..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/TypeReference.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowContext;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public abstract class TypeReference extends Expression {

-

-public TypeReference() {

-		super () ;

-		}

-

-public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {

-	return flowInfo;

-}

-

-// allows us to trap completion & selection nodes

-public void aboutToResolve(Scope scope) {

-	// default implementation: do nothing

-}

-/*

- * Answer a base type reference (can be an array of base type).

- */

-public static final TypeReference baseTypeReference(int baseType, int dim) {

-	

-	if (dim == 0) {

-		switch (baseType) {

-			case (T_void) :

-				return new SingleTypeReference(VoidBinding.simpleName, 0);

-			case (T_boolean) :

-				return new SingleTypeReference(BooleanBinding.simpleName, 0);

-			case (T_char) :

-				return new SingleTypeReference(CharBinding.simpleName, 0);

-			case (T_float) :

-				return new SingleTypeReference(FloatBinding.simpleName, 0);

-			case (T_double) :

-				return new SingleTypeReference(DoubleBinding.simpleName, 0);

-			case (T_byte) :

-				return new SingleTypeReference(ByteBinding.simpleName, 0);

-			case (T_short) :

-				return new SingleTypeReference(ShortBinding.simpleName, 0);

-			case (T_int) :

-				return new SingleTypeReference(IntBinding.simpleName, 0);

-			default : //T_long	

-				return new SingleTypeReference(LongBinding.simpleName, 0);

-		}

-	}

-	switch (baseType) {

-		case (T_void) :

-			return new ArrayTypeReference(VoidBinding.simpleName, dim, 0);

-		case (T_boolean) :

-			return new ArrayTypeReference(BooleanBinding.simpleName, dim, 0);

-		case (T_char) :

-			return new ArrayTypeReference(CharBinding.simpleName, dim, 0);

-		case (T_float) :

-			return new ArrayTypeReference(FloatBinding.simpleName, dim, 0);

-		case (T_double) :

-			return new ArrayTypeReference(DoubleBinding.simpleName, dim, 0);

-		case (T_byte) :

-			return new ArrayTypeReference(ByteBinding.simpleName, dim, 0);

-		case (T_short) :

-			return new ArrayTypeReference(ShortBinding.simpleName, dim, 0);

-		case (T_int) :

-			return new ArrayTypeReference(IntBinding.simpleName, dim, 0);

-		default : //T_long	

-			return new ArrayTypeReference(LongBinding.simpleName, dim, 0);

-	}

-}

-public void checkBounds(Scope scope) {

-	// only parameterized type references have bounds

-}

-public abstract TypeReference copyDims(int dim);

-public int dimensions() {

-	return 0;

-}

-/**

- * @return char[][]

- * TODO (jerome) should merge back into #getTypeName()

- */

-public char [][] getParameterizedTypeName(){

-	return getTypeName();

-}

-protected abstract TypeBinding getTypeBinding(Scope scope);

-/**

- * @return char[][]

- */

-public abstract char [][] getTypeName() ;

-public boolean isTypeReference() {

-	return true;

-}

-public TypeBinding resolveSuperType(ClassScope scope) {

-	// assumes the implementation of resolveType(ClassScope) will call back to detect cycles

-	if (resolveType(scope) == null) return null;

-

-	if (this.resolvedType.isTypeVariable()) {

-		this.resolvedType = new ProblemReferenceBinding(getTypeName(), (ReferenceBinding) this.resolvedType, ProblemReasons.IllegalSuperTypeVariable);

-		reportInvalidType(scope);

-		return null;

-	}

-	return this.resolvedType;

-}

-public TypeBinding resolveType(BlockScope blockScope) {

-	// handle the error here

-	this.constant = NotAConstant;

-	if (this.resolvedType != null) // is a shared type reference which was already resolved

-		return this.resolvedType.isValidBinding() ? this.resolvedType : null; // already reported error

-

-	this.resolvedType = getTypeBinding(blockScope);

-	if (this.resolvedType == null)

-		return null; // detected cycle while resolving hierarchy	

-	if (!this.resolvedType.isValidBinding()) {

-		reportInvalidType(blockScope);

-		return null;

-	}

-	if (isTypeUseDeprecated(this.resolvedType, blockScope))

-		reportDeprecatedType(blockScope);

-	return this.resolvedType = blockScope.convertToRawType(this.resolvedType);

-}

-public TypeBinding resolveType(ClassScope classScope) {

-	// handle the error here

-	this.constant = NotAConstant;

-	if (this.resolvedType != null) // is a shared type reference which was already resolved

-		return this.resolvedType.isValidBinding() ? this.resolvedType : null; // already reported error

-

-	this.resolvedType = getTypeBinding(classScope);

-	if (this.resolvedType == null)

-		return null; // detected cycle while resolving hierarchy	

-	if (!this.resolvedType.isValidBinding()) {

-		reportInvalidType(classScope);

-		return null;

-	}

-	if (isTypeUseDeprecated(this.resolvedType, classScope))

-		reportDeprecatedType(classScope);

-	return this.resolvedType = classScope.convertToRawType(this.resolvedType);

-}

-

-public TypeBinding resolveTypeArgument(BlockScope blockScope, ReferenceBinding genericType, int rank) {

-    return resolveType(blockScope);

-}

-

-public TypeBinding resolveTypeArgument(ClassScope classScope, ReferenceBinding genericType, int rank) {

-    return resolveType(classScope);

-}

-	

-protected void reportInvalidType(Scope scope) {

-	scope.problemReporter().invalidType(this, this.resolvedType);

-}

-protected void reportDeprecatedType(Scope scope) {

-	scope.problemReporter().deprecatedType(this.resolvedType, this);

-}

-public abstract void traverse(ASTVisitor visitor, ClassScope classScope);

-public abstract void traverse(ASTVisitor visitor, BlockScope classScope);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/UnaryExpression.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/UnaryExpression.js
deleted file mode 100644
index 0509783..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/UnaryExpression.js
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class UnaryExpression extends OperatorExpression {

-	

-	public Expression expression;

-	public Constant optimizedBooleanConstant;

-

-	public UnaryExpression(Expression expression, int operator) {

-		this.expression = expression;

-		this.bits |= operator << OperatorSHIFT; // encode operator

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-			

-		if (((bits & OperatorMASK) >> OperatorSHIFT) == NOT) {

-			return this.expression

-				.analyseCode(currentScope, flowContext, flowInfo)

-				.asNegatedCondition();

-		} else {

-			return this.expression.analyseCode(currentScope, flowContext, flowInfo);

-		}

-	}

-

-	public Constant optimizedBooleanConstant() {

-		

-		return this.optimizedBooleanConstant == null 

-				? this.constant 

-				: this.optimizedBooleanConstant;

-	}

-

-	/**

-	 * Code generation for an unary operation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 * @param valueRequired boolean

-	 */

-	public void generateCode(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		boolean valueRequired) {

-			

-		int pc = codeStream.position;

-		Label falseLabel, endifLabel;

-		if (this.constant != Constant.NotAConstant) {

-			// inlined value

-			if (valueRequired) {

-				codeStream.generateConstant(this.constant, this.implicitConversion);

-			}

-			codeStream.recordPositionsFrom(pc, this.sourceStart);

-			return;

-		}

-		switch ((bits & OperatorMASK) >> OperatorSHIFT) {

-			case NOT :

-				switch (this.expression.implicitConversion >> 4) /* runtime type */ {

-					case T_boolean :

-						// ! <boolean>

-						// Generate code for the condition

-						this.expression.generateOptimizedBoolean(

-							currentScope,

-							codeStream,

-							null,

-							(falseLabel = new Label(codeStream)),

-							valueRequired);

-						if (valueRequired) {

-							codeStream.iconst_0();

-							if (falseLabel.hasForwardReferences()) {

-								codeStream.goto_(endifLabel = new Label(codeStream));

-								codeStream.decrStackSize(1);

-								falseLabel.place();

-								codeStream.iconst_1();

-								endifLabel.place();

-							}

-						} else { // 6596: if (!(a && b)){} - must still place falseLabel

-							falseLabel.place();

-						}						

-						break;

-				}

-				break;

-			case TWIDDLE :

-				switch (this.expression.implicitConversion >> 4 /* runtime */

-					) {

-					case T_int :

-						// ~int

-						this.expression.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired) {

-							codeStream.iconst_m1();

-							codeStream.ixor();

-						}

-						break;

-					case T_long :

-						this.expression.generateCode(currentScope, codeStream, valueRequired);

-						if (valueRequired) {

-							codeStream.ldc2_w(-1L);

-							codeStream.lxor();

-						}

-				}

-				break;

-			case MINUS :

-				// - <num>

-				if (this.constant != NotAConstant) {

-					if (valueRequired) {

-						switch (this.expression.implicitConversion >> 4){ /* runtime */

-							case T_int :

-								codeStream.generateInlinedValue(this.constant.intValue() * -1);

-								break;

-							case T_float :

-								codeStream.generateInlinedValue(this.constant.floatValue() * -1.0f);

-								break;

-							case T_long :

-								codeStream.generateInlinedValue(this.constant.longValue() * -1L);

-								break;

-							case T_double :

-								codeStream.generateInlinedValue(this.constant.doubleValue() * -1.0);

-						}

-					}

-				} else {

-					this.expression.generateCode(currentScope, codeStream, valueRequired);

-					if (valueRequired) {

-						switch (expression.implicitConversion >> 4){ /* runtime type */

-							case T_int :

-								codeStream.ineg();

-								break;

-							case T_float :

-								codeStream.fneg();

-								break;

-							case T_long :

-								codeStream.lneg();

-								break;

-							case T_double :

-								codeStream.dneg();

-						}

-					}

-				}

-				break;

-			case PLUS :

-				this.expression.generateCode(currentScope, codeStream, valueRequired);

-		}

-		if (valueRequired) {

-			codeStream.generateImplicitConversion(this.implicitConversion);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	/**

-	 * Boolean operator code generation

-	 *	Optimized operations are: &&, ||, <, <=, >, >=, &, |, ^

-	 */

-	public void generateOptimizedBoolean(

-		BlockScope currentScope,

-		CodeStream codeStream,

-		Label trueLabel,

-		Label falseLabel,

-		boolean valueRequired) {

-

-		if ((this.constant != Constant.NotAConstant) && (this.constant.typeID() == T_boolean)) {

-			super.generateOptimizedBoolean(

-				currentScope,

-				codeStream,

-				trueLabel,

-				falseLabel,

-				valueRequired);

-			return;

-		}

-		if (((this.bits & OperatorMASK) >> OperatorSHIFT) == NOT) {

-			this.expression.generateOptimizedBoolean(

-				currentScope,

-				codeStream,

-				falseLabel,

-				trueLabel,

-				valueRequired);

-		} else {

-			super.generateOptimizedBoolean(

-				currentScope,

-				codeStream,

-				trueLabel,

-				falseLabel,

-				valueRequired);

-		}

-	}

-

-	public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output) {

-		

-		output.append(operatorToString()).append(' ');

-		return this.expression.printExpression(0, output);

-	} 

-	

-	public TypeBinding resolveType(BlockScope scope) {

-		

-		boolean expressionIsCast;

-		if ((expressionIsCast = this.expression instanceof CastExpression) == true) this.expression.bits |= IgnoreNeedForCastCheckMASK; // will check later on

-		TypeBinding expressionType = this.expression.resolveType(scope);

-		if (expressionType == null) {

-			this.constant = NotAConstant;

-			return null;

-		}

-		int expressionTypeId = expressionType.id;

-		if (expressionTypeId > 15) {

-			this.constant = NotAConstant;

-			scope.problemReporter().invalidOperator(this, expressionType);

-			return null;

-		}

-	

-		int tableId;

-		switch ((bits & OperatorMASK) >> OperatorSHIFT) {

-			case NOT :

-				tableId = AND_AND;

-				break;

-			case TWIDDLE :

-				tableId = LEFT_SHIFT;

-				break;

-			default :

-				tableId = MINUS;

-		} //+ and - cases

-	

-		// the code is an int

-		// (cast)  left   Op (cast)  rigth --> result

-		//  0000   0000       0000   0000      0000

-		//  <<16   <<12       <<8    <<4       <<0

-		int operatorSignature = OperatorSignatures[tableId][(expressionTypeId << 4) + expressionTypeId];

-		this.expression.implicitConversion = operatorSignature >>> 12;

-		this.bits |= operatorSignature & 0xF;

-		switch (operatorSignature & 0xF) { // only switch on possible result type.....

-			case T_boolean :

-				this.resolvedType = BooleanBinding;

-				break;

-			case T_byte :

-				this.resolvedType = ByteBinding;

-				break;

-			case T_char :

-				this.resolvedType = CharBinding;

-				break;

-			case T_double :

-				this.resolvedType = DoubleBinding;

-				break;

-			case T_float :

-				this.resolvedType = FloatBinding;

-				break;

-			case T_int :

-				this.resolvedType = IntBinding;

-				break;

-			case T_long :

-				this.resolvedType = LongBinding;

-				break;

-			default : //error........

-				this.constant = Constant.NotAConstant;

-				if (expressionTypeId != T_undefined)

-					scope.problemReporter().invalidOperator(this, expressionType);

-				return null;

-		}

-		// compute the constant when valid

-		if (this.expression.constant != Constant.NotAConstant) {

-			this.constant =

-				Constant.computeConstantOperation(

-					this.expression.constant,

-					expressionTypeId,

-					(bits & OperatorMASK) >> OperatorSHIFT);

-		} else {

-			this.constant = Constant.NotAConstant;

-			if (((bits & OperatorMASK) >> OperatorSHIFT) == NOT) {

-				Constant cst = expression.optimizedBooleanConstant();

-				if (cst != Constant.NotAConstant) 

-					this.optimizedBooleanConstant = Constant.fromValue(!cst.booleanValue());

-			}

-		}

-		if (expressionIsCast) {

-		// check need for operand cast

-			CastExpression.checkNeedForArgumentCast(scope, tableId, operatorSignature, this.expression, expressionTypeId);

-		}

-		return this.resolvedType;

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-			

-		if (visitor.visit(this, blockScope)) {

-			this.expression.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/WhileStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/WhileStatement.js
deleted file mode 100644
index 58adf73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/WhileStatement.js
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class WhileStatement extends Statement {

-	

-	public Expression condition;

-	public Statement action;

-	private Label breakLabel, continueLabel;

-	int preCondInitStateIndex = -1;

-	int condIfTrueInitStateIndex = -1;

-	int mergedInitStateIndex = -1;

-

-	public WhileStatement(Expression condition, Statement action, int s, int e) {

-

-		this.condition = condition;

-		this.action = action;

-		// remember useful empty statement

-		if (action instanceof EmptyStatement) action.bits |= IsUsefulEmptyStatementMASK;

-		sourceStart = s;

-		sourceEnd = e;

-	}

-

-	public FlowInfo analyseCode(

-		BlockScope currentScope,

-		FlowContext flowContext,

-		FlowInfo flowInfo) {

-

-		breakLabel = new Label();

-		continueLabel = new Label(); 

-

-		Constant cst = this.condition.constant;

-		boolean isConditionTrue = cst != NotAConstant && cst.booleanValue() == true;

-		boolean isConditionFalse = cst != NotAConstant && cst.booleanValue() == false;

-

-		cst = this.condition.optimizedBooleanConstant();

-		boolean isConditionOptimizedTrue = cst != NotAConstant && cst.booleanValue() == true;

-		boolean isConditionOptimizedFalse = cst != NotAConstant && cst.booleanValue() == false;

-		

-		preCondInitStateIndex =

-			currentScope.methodScope().recordInitializationStates(flowInfo);

-		LoopingFlowContext condLoopContext;

-		FlowInfo postCondInfo =

-			this.condition.analyseCode(

-				currentScope,

-				(condLoopContext =

-					new LoopingFlowContext(flowContext, this, null, null, currentScope)),

-				flowInfo);

-

-		LoopingFlowContext loopingContext;

-		FlowInfo actionInfo;

-		if (action == null 

-			|| (action.isEmptyBlock() && currentScope.environment().options.complianceLevel <= ClassFileConstants.JDK1_3)) {

-			condLoopContext.complainOnFinalAssignmentsInLoop(currentScope, postCondInfo);

-			if (isConditionTrue) {

-				return FlowInfo.DEAD_END;

-			} else {

-				FlowInfo mergedInfo = postCondInfo.initsWhenFalse().unconditionalInits();

-				if (isConditionOptimizedTrue){

-					mergedInfo.setReachMode(FlowInfo.UNREACHABLE);

-				}

-				mergedInitStateIndex =

-					currentScope.methodScope().recordInitializationStates(mergedInfo);

-				return mergedInfo;

-			}

-		} else {

-			// in case the condition was inlined to false, record the fact that there is no way to reach any 

-			// statement inside the looping action

-			loopingContext =

-				new LoopingFlowContext(

-					flowContext,

-					this,

-					breakLabel,

-					continueLabel,

-					currentScope);

-			if (isConditionFalse) {

-				actionInfo = FlowInfo.DEAD_END;

-			} else {

-				actionInfo = postCondInfo.initsWhenTrue().copy();

-				if (isConditionOptimizedFalse){

-					actionInfo.setReachMode(FlowInfo.UNREACHABLE);

-				}

-			}

-

-			// for computing local var attributes

-			condIfTrueInitStateIndex =

-				currentScope.methodScope().recordInitializationStates(

-					postCondInfo.initsWhenTrue());

-

-			if (!this.action.complainIfUnreachable(actionInfo, currentScope, false)) {

-				actionInfo = this.action.analyseCode(currentScope, loopingContext, actionInfo);

-			}

-

-			// code generation can be optimized when no need to continue in the loop

-			if (!actionInfo.isReachable() && !loopingContext.initsOnContinue.isReachable()) {

-				continueLabel = null;

-			} else {

-				condLoopContext.complainOnFinalAssignmentsInLoop(currentScope, postCondInfo);

-				actionInfo = actionInfo.mergedWith(loopingContext.initsOnContinue.unconditionalInits());

-				loopingContext.complainOnFinalAssignmentsInLoop(currentScope, actionInfo);

-			}

-		}

-

-		// end of loop

-		FlowInfo mergedInfo = FlowInfo.mergedOptimizedBranches(

-				loopingContext.initsOnBreak, 

-				isConditionOptimizedTrue, 

-				postCondInfo.initsWhenFalse(), 

-				isConditionOptimizedFalse,

-				!isConditionTrue /*while(true); unreachable(); */);

-		mergedInitStateIndex = currentScope.methodScope().recordInitializationStates(mergedInfo);

-		return mergedInfo;

-	}

-

-	/**

-	 * While code generation

-	 *

-	 * @param currentScope org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope

-	 * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

-	 */

-	public void generateCode(BlockScope currentScope, CodeStream codeStream) {

-

-		if ((bits & IsReachableMASK) == 0) {

-			return;

-		}

-		int pc = codeStream.position;

-		breakLabel.initialize(codeStream);

-

-		// generate condition

-		if (continueLabel == null) {

-			// no need to reverse condition

-			if (condition.constant == NotAConstant) {

-				condition.generateOptimizedBoolean(

-					currentScope,

-					codeStream,

-					null,

-					breakLabel,

-					true);

-			}

-		} else {

-			continueLabel.initialize(codeStream);

-			if (!(((condition.constant != NotAConstant)

-				&& (condition.constant.booleanValue() == true))

-				|| (action == null)

-				|| action.isEmptyBlock())) {

-				int jumpPC = codeStream.position;

-				codeStream.goto_(continueLabel);

-				codeStream.recordPositionsFrom(jumpPC, condition.sourceStart);

-			}

-		}

-		// generate the action

-		Label actionLabel;

-		(actionLabel = new Label(codeStream)).place();

-		if (action != null) {

-			// Required to fix 1PR0XVS: LFRE:WINNT - Compiler: variable table for method appears incorrect

-			if (condIfTrueInitStateIndex != -1) {

-				// insert all locals initialized inside the condition into the action generated prior to the condition

-				codeStream.addDefinitelyAssignedVariables(

-					currentScope,

-					condIfTrueInitStateIndex);

-			}

-			action.generateCode(currentScope, codeStream);

-			// May loose some local variable initializations : affecting the local variable attributes

-			if (preCondInitStateIndex != -1) {

-				codeStream.removeNotDefinitelyAssignedVariables(currentScope, preCondInitStateIndex);

-			}

-

-		}

-		// output condition and branch back to the beginning of the repeated action

-		if (continueLabel != null) {

-			continueLabel.place();

-			condition.generateOptimizedBoolean(

-				currentScope,

-				codeStream,

-				actionLabel,

-				null,

-				true);

-		}

-		breakLabel.place();

-

-		// May loose some local variable initializations : affecting the local variable attributes

-		if (mergedInitStateIndex != -1) {

-			codeStream.removeNotDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-			codeStream.addDefinitelyAssignedVariables(currentScope, mergedInitStateIndex);

-		}

-		codeStream.recordPositionsFrom(pc, this.sourceStart);

-	}

-

-	public void resolve(BlockScope scope) {

-

-		TypeBinding type = condition.resolveTypeExpecting(scope, BooleanBinding);

-		condition.computeConversion(scope, type, type);

-		if (action != null)

-			action.resolve(scope);

-	}

-

-	public StringBuffer printStatement(int tab, StringBuffer output) {

-

-		printIndent(tab, output).append("while ("); //$NON-NLS-1$

-		condition.printExpression(0, output).append(')');

-		if (action == null)

-			output.append(';');

-		else

-			action.printStatement(tab + 1, output); 

-		return output;

-	}

-

-	public void traverse(

-		ASTVisitor visitor,

-		BlockScope blockScope) {

-

-		if (visitor.visit(this, blockScope)) {

-			condition.traverse(visitor, blockScope);

-			if (action != null)

-				action.traverse(visitor, blockScope);

-		}

-		visitor.endVisit(this, blockScope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Wildcard.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Wildcard.js
deleted file mode 100644
index 28432b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/ast/Wildcard.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.ast;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ASTVisitor;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-/**

- * Node to represent Wildcard

- */

-public class Wildcard extends SingleTypeReference {

-

-    public static final int UNBOUND = 0;

-    public static final int EXTENDS = 1;

-    public static final int SUPER = 2;

-    

-	public TypeReference bound;

-	public int kind;

-

-	public Wildcard(int kind) {

-		super(WILDCARD_NAME, 0);

-		this.kind = kind;

-	}

-	

-	public char [][] getParameterizedTypeName() {

-        switch (this.kind) {

-            case Wildcard.UNBOUND : 

-               return new char[][] { WILDCARD_NAME };

-            case Wildcard.EXTENDS :

-                return new char[][] { CharOperation.concat(WILDCARD_NAME, WILDCARD_EXTENDS, CharOperation.concatWith(this.bound.getParameterizedTypeName(), '.')) };

-			default: // SUPER

-                return new char[][] { CharOperation.concat(WILDCARD_NAME, WILDCARD_SUPER, CharOperation.concatWith(this.bound.getParameterizedTypeName(), '.')) };

-        }        	    

-	}	

-

-	public char [][] getTypeName() {

-        switch (this.kind) {

-            case Wildcard.UNBOUND : 

-               return new char[][] { WILDCARD_NAME };

-            case Wildcard.EXTENDS :

-                return new char[][] { CharOperation.concat(WILDCARD_NAME, WILDCARD_EXTENDS, CharOperation.concatWith(this.bound.getTypeName(), '.')) };

-			default: // SUPER

-                return new char[][] { CharOperation.concat(WILDCARD_NAME, WILDCARD_SUPER, CharOperation.concatWith(this.bound.getTypeName(), '.')) };

-        }        	    

-	}

-	

-	private TypeBinding internalResolveType(Scope scope, ReferenceBinding genericType, int rank) {

-	    TypeBinding boundType = null;

-	    if (this.bound != null) {

-			boundType = scope.kind == Scope.CLASS_SCOPE

-	       		? this.bound.resolveType((ClassScope)scope)

-	       		: this.bound.resolveType((BlockScope)scope);

-	       		        

-			if (boundType == null) {

-				return null;

-			}	    

-		}

-	    WildcardBinding wildcard = scope.environment().createWildcard(genericType, rank, boundType, this.kind);

-	    return this.resolvedType = wildcard;

-	}

-	

-	public StringBuffer printExpression(int indent, StringBuffer output){

-        switch (this.kind) {

-            case Wildcard.UNBOUND : 

-                output.append(WILDCARD_NAME);

-            case Wildcard.EXTENDS :

-                output.append(WILDCARD_NAME).append(WILDCARD_EXTENDS);

-            	this.bound.printExpression(0, output);

-            	break;

-			default: // SUPER

-                output.append(WILDCARD_NAME).append(WILDCARD_SUPER);

-            	this.bound.printExpression(0, output);

-            	break;

-        }        	    

-		return output;

-	}	

-	

-	public TypeBinding resolveTypeArgument(BlockScope blockScope, ReferenceBinding genericType, int rank) {

-	    return internalResolveType(blockScope, genericType, rank);

-	}

-	

-	public TypeBinding resolveTypeArgument(ClassScope classScope, ReferenceBinding genericType, int rank) {

-	    return internalResolveType(classScope, genericType, rank);

-	}

-

-	public void traverse(ASTVisitor visitor, BlockScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.bound != null) {

-				this.bound.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-

-	public void traverse(ASTVisitor visitor, ClassScope scope) {

-		if (visitor.visit(this, scope)) {

-			if (this.bound != null) {

-				this.bound.traverse(visitor, scope);

-			}

-		}

-		visitor.endVisit(this, scope);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileConstants.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileConstants.js
deleted file mode 100644
index ed1ed29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileConstants.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.classfmt;

-

-import org.eclipse.wst.jsdt.internal.compiler.env.*;

-

-public interface ClassFileConstants extends IConstants {

-	

-	int Utf8Tag = 1;

-	int IntegerTag = 3;

-	int FloatTag = 4;

-	int LongTag = 5;

-	int DoubleTag = 6;

-	int ClassTag = 7;

-	int StringTag = 8;

-	int FieldRefTag = 9;

-	int MethodRefTag = 10;

-	int InterfaceMethodRefTag = 11;

-	int NameAndTypeTag = 12;

-	

-	int ConstantMethodRefFixedSize = 5;

-	int ConstantClassFixedSize = 3;

-	int ConstantDoubleFixedSize = 9;

-	int ConstantFieldRefFixedSize = 5;

-	int ConstantFloatFixedSize = 5;

-	int ConstantIntegerFixedSize = 5;

-	int ConstantInterfaceMethodRefFixedSize = 5;

-	int ConstantLongFixedSize = 9;

-	int ConstantStringFixedSize = 3;

-	int ConstantUtf8FixedSize = 3;

-	int ConstantNameAndTypeFixedSize = 5;

-	

-	int MAJOR_VERSION_1_1 = 45;

-	int MAJOR_VERSION_1_2 = 46;

-	int MAJOR_VERSION_1_3 = 47;

-	int MAJOR_VERSION_1_4 = 48;

-	int MAJOR_VERSION_1_5 = 49; 

-	

-	int MINOR_VERSION_0 = 0;

-	int MINOR_VERSION_1 = 1;

-	int MINOR_VERSION_2 = 2;	

-	int MINOR_VERSION_3 = 3;	

-	

-	// JDK 1.1 -> 1.5, comparable value allowing to check both major/minor version at once 1.4.1 > 1.4.0

-	// 16 unsigned bits for major, then 16 bits for minor

-	long JDK1_1 = ((long)ClassFileConstants.MAJOR_VERSION_1_1 << 16) + ClassFileConstants.MINOR_VERSION_3; // 1.1. is 45.3

-	long JDK1_2 =  ((long)ClassFileConstants.MAJOR_VERSION_1_2 << 16) + ClassFileConstants.MINOR_VERSION_0;

-	long JDK1_3 =  ((long)ClassFileConstants.MAJOR_VERSION_1_3 << 16) + ClassFileConstants.MINOR_VERSION_0;

-	long JDK1_4 = ((long)ClassFileConstants.MAJOR_VERSION_1_4 << 16) + ClassFileConstants.MINOR_VERSION_0;

-	long JDK1_5 = ((long)ClassFileConstants.MAJOR_VERSION_1_5 << 16) + ClassFileConstants.MINOR_VERSION_0;	

-	

-	// jdk level used to denote future releases: optional behavior is not enabled for now, but may become so. In order to enable these,

-	// search for references to this constant, and change it to one of the official JDT constants above.

-	long JDK_DEFERRED = Long.MAX_VALUE;

-	

-	int INT_ARRAY = 10;

-	int BYTE_ARRAY = 8;

-	int BOOLEAN_ARRAY = 4;

-	int SHORT_ARRAY = 9;

-	int CHAR_ARRAY = 5;

-	int LONG_ARRAY = 11;

-	int FLOAT_ARRAY = 6;

-	int DOUBLE_ARRAY = 7;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileReader.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileReader.js
deleted file mode 100644
index 9ed62a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileReader.js
+++ /dev/null
@@ -1,827 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.classfmt;

-

-import java.io.File;

-import java.io.IOException;

-import java.util.Arrays;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.AttributeNamesConstants;

-import org.eclipse.wst.jsdt.internal.compiler.env.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public class ClassFileReader extends ClassFileStruct implements AttributeNamesConstants, IBinaryType {

-public static ClassFileReader read(File file) throws ClassFormatException, IOException {

-	return read(file, false);

-}

-public static ClassFileReader read(File file, boolean fullyInitialize) throws ClassFormatException, IOException {

-	byte classFileBytes[] = Util.getFileByteContent(file);

-	ClassFileReader classFileReader = new ClassFileReader(classFileBytes, file.getAbsolutePath().toCharArray());

-	if (fullyInitialize) {

-		classFileReader.initialize();

-	}

-	return classFileReader;

-}

-public static ClassFileReader read(

-	java.util.zip.ZipFile zip, 

-	String filename)

-	throws ClassFormatException, java.io.IOException {

-		return read(zip, filename, false);

-}

-public static ClassFileReader read(

-	java.util.zip.ZipFile zip, 

-	String filename,

-	boolean fullyInitialize)

-	throws ClassFormatException, java.io.IOException {

-	java.util.zip.ZipEntry ze = zip.getEntry(filename);

-	if (ze == null)

-		return null;

-	byte classFileBytes[] = Util.getZipEntryByteContent(ze, zip);

-	ClassFileReader classFileReader = new ClassFileReader(classFileBytes, filename.toCharArray());

-	if (fullyInitialize) {

-		classFileReader.initialize();

-	}

-	return classFileReader;

-}

-public static ClassFileReader read(String fileName) throws ClassFormatException, java.io.IOException {

-	return read(fileName, false);

-}

-public static ClassFileReader read(String fileName, boolean fullyInitialize) throws ClassFormatException, java.io.IOException {

-	return read(new File(fileName), fullyInitialize);

-}

-	private int accessFlags;

-	private char[] classFileName;

-	private char[] className;

-	private int classNameIndex;

-	private int constantPoolCount;

-	private int[] constantPoolOffsets;

-	private FieldInfo[] fields;

-	private int fieldsCount;

-	// initialized in case the .class file is a nested type

-	private InnerClassInfo innerInfo;

-	private int innerInfoIndex;

-	private InnerClassInfo[] innerInfos;

-	private char[][] interfaceNames;

-	private int interfacesCount;

-	private MethodInfo[] methods;

-	private int methodsCount;

-	private char[] signature;

-	private char[] sourceFileName;

-	private char[] superclassName;

-	private long version;

-

-/**

- * @param classFileBytes Actual bytes of a .class file

- * @param fileName	Actual name of the file that contains the bytes, can be null

- * 

- * @exception ClassFormatException

- */

-public ClassFileReader(byte classFileBytes[], char[] fileName) throws ClassFormatException {

-	this(classFileBytes, fileName, false);

-}

-

-/**

- * @param classFileBytes byte[]

- * 		Actual bytes of a .class file

- * 

- * @param fileName char[]

- * 		Actual name of the file that contains the bytes, can be null

- * 

- * @param fullyInitialize boolean

- * 		Flag to fully initialize the new object

- * @exception ClassFormatException

- */

-public ClassFileReader(byte[] classFileBytes, char[] fileName, boolean fullyInitialize) throws ClassFormatException {

-	// This method looks ugly but is actually quite simple, the constantPool is constructed

-	// in 3 passes.  All non-primitive constant pool members that usually refer to other members

-	// by index are tweaked to have their value in inst vars, this minor cost at read-time makes

-	// all subsequent uses of the constant pool element faster.

-	super(classFileBytes, 0);

-	this.classFileName = fileName;

-	int readOffset = 10;

-	try {

-		this.version = ((long)this.u2At(6) << 16) + this.u2At(4); // major<<16 + minor

-		constantPoolCount = this.u2At(8);

-		// Pass #1 - Fill in all primitive constants

-		this.constantPoolOffsets = new int[constantPoolCount];

-		for (int i = 1; i < constantPoolCount; i++) {

-			int tag = this.u1At(readOffset);

-			switch (tag) {

-				case Utf8Tag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += u2At(readOffset + 1);

-					readOffset += ConstantUtf8FixedSize;

-					break;

-				case IntegerTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantIntegerFixedSize;

-					break;

-				case FloatTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantFloatFixedSize;

-					break;

-				case LongTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantLongFixedSize;

-					i++;

-					break;

-				case DoubleTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantDoubleFixedSize;

-					i++;

-					break;

-				case ClassTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantClassFixedSize;

-					break;

-				case StringTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantStringFixedSize;

-					break;

-				case FieldRefTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantFieldRefFixedSize;

-					break;

-				case MethodRefTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantMethodRefFixedSize;

-					break;

-				case InterfaceMethodRefTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantInterfaceMethodRefFixedSize;

-					break;

-				case NameAndTypeTag :

-					this.constantPoolOffsets[i] = readOffset;

-					readOffset += ConstantNameAndTypeFixedSize;

-			}

-		}

-		// Read and validate access flags

-		this.accessFlags = u2At(readOffset);

-		readOffset += 2;

-

-		// Read the classname, use exception handlers to catch bad format

-		this.classNameIndex = u2At(readOffset);

-		this.className = getConstantClassNameAt(this.classNameIndex);

-		readOffset += 2;

-

-		// Read the superclass name, can be null for java.lang.Object

-		int superclassNameIndex = u2At(readOffset);

-		readOffset += 2;

-		// if superclassNameIndex is equals to 0 there is no need to set a value for the 

-		// field this.superclassName. null is fine.

-		if (superclassNameIndex != 0) {

-			this.superclassName = getConstantClassNameAt(superclassNameIndex);

-		}

-

-		// Read the interfaces, use exception handlers to catch bad format

-		this.interfacesCount = u2At(readOffset);

-		readOffset += 2;

-		if (this.interfacesCount != 0) {

-			this.interfaceNames = new char[this.interfacesCount][];

-			for (int i = 0; i < this.interfacesCount; i++) {

-				this.interfaceNames[i] = getConstantClassNameAt(u2At(readOffset));

-				readOffset += 2;

-			}

-		}

-		// Read the this.fields, use exception handlers to catch bad format

-		this.fieldsCount = u2At(readOffset);

-		readOffset += 2;

-		if (this.fieldsCount != 0) {

-			FieldInfo field;

-			this.fields = new FieldInfo[this.fieldsCount];

-			for (int i = 0; i < this.fieldsCount; i++) {

-				field = new FieldInfo(reference, this.constantPoolOffsets, readOffset);

-				this.fields[i] = field;

-				readOffset += field.sizeInBytes();

-			}

-		}

-		// Read the this.methods

-		this.methodsCount = u2At(readOffset);

-		readOffset += 2;

-		if (this.methodsCount != 0) {

-			this.methods = new MethodInfo[this.methodsCount];

-			MethodInfo method;

-			for (int i = 0; i < this.methodsCount; i++) {

-				method = new MethodInfo(reference, this.constantPoolOffsets, readOffset);

-				this.methods[i] = method;

-				readOffset += method.sizeInBytes();

-			}

-		}

-

-		// Read the attributes

-		int attributesCount = u2At(readOffset);

-		readOffset += 2;

-

-		for (int i = 0; i < attributesCount; i++) {

-			int utf8Offset = this.constantPoolOffsets[u2At(readOffset)];

-			char[] attributeName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-			if (CharOperation.equals(attributeName, DeprecatedName)) {

-				this.accessFlags |= AccDeprecated;

-			} else if (CharOperation.equals(attributeName, InnerClassName)) {

-				int innerOffset = readOffset + 6;

-				int number_of_classes = u2At(innerOffset);

-				if (number_of_classes != 0) {

-					innerOffset+= 2;

-					this.innerInfos = new InnerClassInfo[number_of_classes];

-					for (int j = 0; j < number_of_classes; j++) {

-						this.innerInfos[j] = 

-							new InnerClassInfo(reference, this.constantPoolOffsets, innerOffset); 

-						if (this.classNameIndex == this.innerInfos[j].innerClassNameIndex) {

-							this.innerInfo = this.innerInfos[j];

-							this.innerInfoIndex = j;

-						}

-						innerOffset += 8;

-					}

-				}

-			} else if (CharOperation.equals(attributeName, SourceName)) {

-				utf8Offset = this.constantPoolOffsets[u2At(readOffset + 6)];

-				this.sourceFileName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-			} else if (CharOperation.equals(attributeName, SyntheticName)) {

-				this.accessFlags |= AccSynthetic;

-			} else if (CharOperation.equals(attributeName, SignatureName)) {

-				utf8Offset = this.constantPoolOffsets[u2At(readOffset + 6)];

-				this.signature = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));				

-			}

-			readOffset += (6 + u4At(readOffset + 2));

-		}

-		if (fullyInitialize) {

-			this.initialize();

-		}

-	} catch(ClassFormatException e) {

-		throw e;

-	} catch (Exception e) {

-		throw new ClassFormatException(

-			ClassFormatException.ErrTruncatedInput, 

-			readOffset); 

-	}

-}

-

-/**

- * 	Answer the receiver's access flags.  The value of the access_flags

- *	item is a mask of modifiers used with class and interface declarations.

- *  @return int 

- */

-public int accessFlags() {

-	return this.accessFlags;

-}

-/**

- * Answer the char array that corresponds to the class name of the constant class.

- * constantPoolIndex is the index in the constant pool that is a constant class entry.

- *

- * @param constantPoolIndex int

- * @return char[]

- */

-private char[] getConstantClassNameAt(int constantPoolIndex) {

-	int utf8Offset = this.constantPoolOffsets[u2At(this.constantPoolOffsets[constantPoolIndex] + 1)];

-	return utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-}

-/**

- * Answer the int array that corresponds to all the offsets of each entry in the constant pool

- *

- * @return int[]

- */

-public int[] getConstantPoolOffsets() {

-	return this.constantPoolOffsets;

-}

-/*

- * Answer the resolved compoundName of the enclosing type

- * or null if the receiver is a top level type.

- */

-public char[] getEnclosingTypeName() {

-	if (this.innerInfo != null && !this.isAnonymous()) {

-		return this.innerInfo.getEnclosingTypeName();

-	}

-	return null;

-}

-/**

- * Answer the receiver's this.fields or null if the array is empty.

- * @return org.eclipse.wst.jsdt.internal.compiler.api.IBinaryField[]

- */

-public IBinaryField[] getFields() {

-	return this.fields;

-}

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.env.IDependent#getFileName()

- */

-public char[] getFileName() {

-	return this.classFileName;

-}

-public char[] getGenericSignature() {

-	return this.signature;

-}

-/**

- * Answer the source name if the receiver is a inner type. Return null if it is an anonymous class or if the receiver is a top-level class.

- * e.g.

- * public class A {

- *	public class B {

- *	}

- *	public void foo() {

- *		class C {}

- *	}

- *	public Runnable bar() {

- *		return new Runnable() {

- *			public void run() {}

- *		};

- *	}

- * }

- * It returns {'B'} for the member A$B

- * It returns null for A

- * It returns {'C'} for the local class A$1$C

- * It returns null for the anonymous A$1

- * @return char[]

- */

-public char[] getInnerSourceName() {

-	if (this.innerInfo != null)

-		return this.innerInfo.getSourceName();

-	return null;

-}

-/**

- * Answer the resolved names of the receiver's interfaces in the

- * class file format as specified in section 4.2 of the Java 2 VM spec

- * or null if the array is empty.

- *

- * For example, java.lang.String is java/lang/String.

- * @return char[][]

- */

-public char[][] getInterfaceNames() {

-	return this.interfaceNames;

-}

-/**

- * Answer the receiver's nested types or null if the array is empty.

- *

- * This nested type info is extracted from the inner class attributes.

- * Ask the name environment to find a member type using its compound name

- * @return org.eclipse.wst.jsdt.internal.compiler.api.IBinaryNestedType[]

- */

-public IBinaryNestedType[] getMemberTypes() {

-	// we might have some member types of the current type

-	if (this.innerInfos == null) return null;

-

-	int length = this.innerInfos.length;

-	int startingIndex = this.innerInfo != null ? this.innerInfoIndex + 1 : 0;

-	if (length != startingIndex) {

-		IBinaryNestedType[] memberTypes = 

-			new IBinaryNestedType[length - this.innerInfoIndex]; 

-		int memberTypeIndex = 0;

-		for (int i = startingIndex; i < length; i++) {

-			InnerClassInfo currentInnerInfo = this.innerInfos[i];

-			int outerClassNameIdx = currentInnerInfo.outerClassNameIndex;

-			int innerNameIndex = currentInnerInfo.innerNameIndex;

-			/*

-			 * Checking that outerClassNameIDx is different from 0 should be enough to determine if an inner class

-			 * attribute entry is a member class, but due to the bug:

-			 * http://dev.eclipse.org/bugs/show_bug.cgi?id=14592

-			 * we needed to add an extra check. So we check that innerNameIndex is different from 0 as well.

-			 * 

-			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=49879

-			 * From JavaMail 1.2, the class javax.mail.Folder contains an anonymous class in the

-			 * terminateQueue() method for which the inner attribute is boggus.

-			 * outerClassNameIdx is not 0, innerNameIndex is not 0, but the sourceName length is 0.

-			 * So I added this extra check to filter out this anonymous class from the 

-			 * member types.

-			 */

-			if (outerClassNameIdx != 0

-				&& innerNameIndex != 0

-				&& outerClassNameIdx == this.classNameIndex

-				&& currentInnerInfo.getSourceName().length != 0) {

-				memberTypes[memberTypeIndex++] = currentInnerInfo;

-			}

-		}

-		if (memberTypeIndex == 0) return null;

-		if (memberTypeIndex != memberTypes.length) {

-			// we need to resize the memberTypes array. Some local or anonymous classes

-			// are present in the current class.

-			System.arraycopy(

-				memberTypes, 

-				0, 

-				(memberTypes = new IBinaryNestedType[memberTypeIndex]), 

-				0, 

-				memberTypeIndex); 

-		}

-		return memberTypes;

-	}

-	return null;

-}

-/**

- * Answer the receiver's this.methods or null if the array is empty.

- * @return org.eclipse.wst.jsdt.internal.compiler.api.env.IBinaryMethod[]

- */

-public IBinaryMethod[] getMethods() {

-	return this.methods;

-}

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- * Set the AccDeprecated and AccSynthetic bits if necessary

- * @return int

- */

-public int getModifiers() {

-	if (this.innerInfo != null) {

-		if ((this.accessFlags & AccDeprecated) != 0) {

-			return this.innerInfo.getModifiers() | AccDeprecated;

-		} else {

-			return this.innerInfo.getModifiers();

-		}

-	}

-	return this.accessFlags;

-}

-/**

- * Answer the resolved name of the type in the

- * class file format as specified in section 4.2 of the Java 2 VM spec.

- *

- * For example, java.lang.String is java/lang/String.

- * @return char[]

- */

-public char[] getName() {

-	return this.className;

-}

-/**

- * Answer the resolved name of the receiver's superclass in the

- * class file format as specified in section 4.2 of the Java 2 VM spec

- * or null if it does not have one.

- *

- * For example, java.lang.String is java/lang/String.

- * @return char[]

- */

-public char[] getSuperclassName() {

-	return this.superclassName;

-}

-/**

- * Answer the major/minor version defined in this class file according to the VM spec.

- * as a long: (major<<16)+minor

- * @return the major/minor version found

- */

-public long getVersion() {

-	return this.version;

-}

-private boolean hasNonSyntheticFieldChanges(FieldInfo[] currentFieldInfos, FieldInfo[] otherFieldInfos) {

-	int length1 = currentFieldInfos == null ? 0 : currentFieldInfos.length;

-	int length2 = otherFieldInfos == null ? 0 : otherFieldInfos.length;

-	int index1 = 0;

-	int index2 = 0;

-

-	end : while (index1 < length1 && index2 < length2) {

-		while (currentFieldInfos[index1].isSynthetic()) {

-			if (++index1 >= length1) break end;

-		}

-		while (otherFieldInfos[index2].isSynthetic()) {

-			if (++index2 >= length2) break end;

-		}

-		if (hasStructuralFieldChanges(currentFieldInfos[index1++], otherFieldInfos[index2++]))

-			return true;

-	}

-

-	while (index1 < length1) {

-		if (!currentFieldInfos[index1++].isSynthetic()) return true;

-	}

-	while (index2 < length2) {

-		if (!otherFieldInfos[index2++].isSynthetic()) return true;

-	}

-	return false;

-}

-private boolean hasNonSyntheticMethodChanges(MethodInfo[] currentMethodInfos, MethodInfo[] otherMethodInfos) {

-	int length1 = currentMethodInfos == null ? 0 : currentMethodInfos.length;

-	int length2 = otherMethodInfos == null ? 0 : otherMethodInfos.length;

-	int index1 = 0;

-	int index2 = 0;

-

-	MethodInfo m;

-	end : while (index1 < length1 && index2 < length2) {

-		while ((m = currentMethodInfos[index1]).isSynthetic() || m.isClinit()) {

-			if (++index1 >= length1) break end;

-		}

-		while ((m = otherMethodInfos[index2]).isSynthetic() || m.isClinit()) {

-			if (++index2 >= length2) break end;

-		}

-		if (hasStructuralMethodChanges(currentMethodInfos[index1++], otherMethodInfos[index2++]))

-			return true;

-	}

-

-	while (index1 < length1) {

-		if (!((m = currentMethodInfos[index1++]).isSynthetic() || m.isClinit())) return true;

-	}

-	while (index2 < length2) {

-		if (!((m = otherMethodInfos[index2++]).isSynthetic() || m.isClinit())) return true;

-	}

-	return false;

-}

-/**

- * Check if the receiver has structural changes compare to the byte array in argument.

- * Structural changes are:

- * - modifiers changes for the class, the this.fields or the this.methods

- * - signature changes for this.fields or this.methods.

- * - changes in the number of this.fields or this.methods

- * - changes for field constants

- * - changes for thrown exceptions

- * - change for the super class or any super interfaces.

- * - changes for member types name or modifiers

- * If any of these changes occurs, the method returns true. false otherwise. 

- * The synthetic fields are included and the members are not required to be sorted.

- * @param newBytes the bytes of the .class file we want to compare the receiver to

- * @return boolean Returns true is there is a structural change between the two .class files, false otherwise

- */

-public boolean hasStructuralChanges(byte[] newBytes) {

-	return hasStructuralChanges(newBytes, true, true);

-}

-/**

- * Check if the receiver has structural changes compare to the byte array in argument.

- * Structural changes are:

- * - modifiers changes for the class, the this.fields or the this.methods

- * - signature changes for this.fields or this.methods.

- * - changes in the number of this.fields or this.methods

- * - changes for field constants

- * - changes for thrown exceptions

- * - change for the super class or any super interfaces.

- * - changes for member types name or modifiers

- * If any of these changes occurs, the method returns true. false otherwise.

- * @param newBytes the bytes of the .class file we want to compare the receiver to

- * @param orderRequired a boolean indicating whether the members should be sorted or not

- * @param excludesSynthetic a boolean indicating whether the synthetic members should be used in the comparison

- * @return boolean Returns true is there is a structural change between the two .class files, false otherwise

- */

-public boolean hasStructuralChanges(byte[] newBytes, boolean orderRequired, boolean excludesSynthetic) {

-	try {

-		ClassFileReader newClassFile =

-			new ClassFileReader(newBytes, this.classFileName);

-		// type level comparison

-		// modifiers

-		if (this.getModifiers() != newClassFile.getModifiers())

-			return true;

-		// superclass

-		if (!CharOperation.equals(this.getSuperclassName(), newClassFile.getSuperclassName()))

-			return true;

-		// interfaces

-		char[][] newInterfacesNames = newClassFile.getInterfaceNames();

-		if (this.interfaceNames != newInterfacesNames) { // TypeConstants.NoSuperInterfaces

-			int newInterfacesLength = newInterfacesNames == null ? 0 : newInterfacesNames.length;

-			if (newInterfacesLength != this.interfacesCount)

-				return true;

-			for (int i = 0, max = this.interfacesCount; i < max; i++)

-				if (!CharOperation.equals(this.interfaceNames[i], newInterfacesNames[i]))

-					return true;

-		}

-

-		// member types

-		IBinaryNestedType[] currentMemberTypes = this.getMemberTypes();

-		IBinaryNestedType[] otherMemberTypes = newClassFile.getMemberTypes();

-		if (currentMemberTypes != otherMemberTypes) { // TypeConstants.NoMemberTypes

-			int currentMemberTypeLength = currentMemberTypes == null ? 0 : currentMemberTypes.length;

-			int otherMemberTypeLength = otherMemberTypes == null ? 0 : otherMemberTypes.length;

-			if (currentMemberTypeLength != otherMemberTypeLength)

-				return true;

-			for (int i = 0; i < currentMemberTypeLength; i++)

-				if (!CharOperation.equals(currentMemberTypes[i].getName(), otherMemberTypes[i].getName())

-					|| currentMemberTypes[i].getModifiers() != otherMemberTypes[i].getModifiers())

-						return true;

-		}

-

-		// fields

-		FieldInfo[] otherFieldInfos = (FieldInfo[]) newClassFile.getFields();

-		int otherFieldInfosLength = otherFieldInfos == null ? 0 : otherFieldInfos.length;

-		boolean compareFields = true;

-		if (this.fieldsCount == otherFieldInfosLength) {

-			int i = 0;

-			for (; i < this.fieldsCount; i++)

-				if (hasStructuralFieldChanges(this.fields[i], otherFieldInfos[i])) break;

-			if ((compareFields = i != this.fieldsCount) && !orderRequired && !excludesSynthetic)

-				return true;

-		}

-		if (compareFields) {

-			if (this.fieldsCount != otherFieldInfosLength && !excludesSynthetic)

-				return true;

-			if (orderRequired) {

-				if (this.fieldsCount != 0)

-					Arrays.sort(this.fields);

-				if (otherFieldInfosLength != 0)

-					Arrays.sort(otherFieldInfos);

-			}

-			if (excludesSynthetic) {

-				if (hasNonSyntheticFieldChanges(this.fields, otherFieldInfos))

-					return true;

-			} else {

-				for (int i = 0; i < this.fieldsCount; i++)

-					if (hasStructuralFieldChanges(this.fields[i], otherFieldInfos[i]))

-						return true;

-			}

-		}

-		

-		// methods

-		MethodInfo[] otherMethodInfos = (MethodInfo[]) newClassFile.getMethods();

-		int otherMethodInfosLength = otherMethodInfos == null ? 0 : otherMethodInfos.length;

-		boolean compareMethods = true;

-		if (this.methodsCount == otherMethodInfosLength) {

-			int i = 0;

-			for (; i < this.methodsCount; i++)

-				if (hasStructuralMethodChanges(this.methods[i], otherMethodInfos[i])) break;

-			if ((compareMethods = i != this.methodsCount) && !orderRequired && !excludesSynthetic)

-				return true;

-		}

-		if (compareMethods) {

-			if (this.methodsCount != otherMethodInfosLength && !excludesSynthetic)

-				return true;

-			if (orderRequired) {

-				if (this.methodsCount != 0)

-					Arrays.sort(this.methods);

-				if (otherMethodInfosLength != 0)

-					Arrays.sort(otherMethodInfos);	

-			}

-			if (excludesSynthetic) {

-				if (hasNonSyntheticMethodChanges(this.methods, otherMethodInfos))

-					return true;

-			} else {

-				for (int i = 0; i < this.methodsCount; i++)

-					if (hasStructuralMethodChanges(this.methods[i], otherMethodInfos[i]))

-						return true;

-			}

-		}

-

-		return false;

-	} catch (ClassFormatException e) {

-		return true;

-	}

-}

-private boolean hasStructuralFieldChanges(FieldInfo currentFieldInfo, FieldInfo otherFieldInfo) {

-	if (currentFieldInfo.getModifiers() != otherFieldInfo.getModifiers())

-		return true;

-	if (!CharOperation.equals(currentFieldInfo.getName(), otherFieldInfo.getName()))

-		return true;

-	if (!CharOperation.equals(currentFieldInfo.getTypeName(), otherFieldInfo.getTypeName()))

-		return true;

-	if (currentFieldInfo.hasConstant() != otherFieldInfo.hasConstant())

-		return true;

-	if (currentFieldInfo.hasConstant()) {

-		Constant currentConstant = currentFieldInfo.getConstant();

-		Constant otherConstant = otherFieldInfo.getConstant();

-		if (currentConstant.typeID() != otherConstant.typeID())

-			return true;

-		if (!currentConstant.getClass().equals(otherConstant.getClass()))

-			return true;

-		switch (currentConstant.typeID()) {

-			case TypeIds.T_int :

-				return currentConstant.intValue() != otherConstant.intValue();

-			case TypeIds.T_byte :

-				return currentConstant.byteValue() != otherConstant.byteValue();

-			case TypeIds.T_short :

-				return currentConstant.shortValue() != otherConstant.shortValue();

-			case TypeIds.T_char :

-				return currentConstant.charValue() != otherConstant.charValue();

-			case TypeIds.T_long :

-				return currentConstant.longValue() != otherConstant.longValue();

-			case TypeIds.T_float :

-				return currentConstant.floatValue() != otherConstant.floatValue();

-			case TypeIds.T_double :

-				return currentConstant.doubleValue() != otherConstant.doubleValue();

-			case TypeIds.T_boolean :

-				return currentConstant.booleanValue() != otherConstant.booleanValue();

-			case TypeIds.T_String :

-				return !currentConstant.stringValue().equals(otherConstant.stringValue());

-		}

-	}

-	return false;

-}

-private boolean hasStructuralMethodChanges(MethodInfo currentMethodInfo, MethodInfo otherMethodInfo) {

-	if (currentMethodInfo.getModifiers() != otherMethodInfo.getModifiers())

-		return true;

-	if (!CharOperation.equals(currentMethodInfo.getSelector(), otherMethodInfo.getSelector()))

-		return true;

-	if (!CharOperation.equals(currentMethodInfo.getMethodDescriptor(), otherMethodInfo.getMethodDescriptor()))

-		return true;

-	if (!CharOperation.equals(currentMethodInfo.getGenericSignature(), otherMethodInfo.getGenericSignature()))

-		return true;

-

-	char[][] currentThrownExceptions = currentMethodInfo.getExceptionTypeNames();

-	char[][] otherThrownExceptions = otherMethodInfo.getExceptionTypeNames();

-	if (currentThrownExceptions != otherThrownExceptions) { // TypeConstants.NoExceptions

-		int currentThrownExceptionsLength = currentThrownExceptions == null ? 0 : currentThrownExceptions.length;

-		int otherThrownExceptionsLength = otherThrownExceptions == null ? 0 : otherThrownExceptions.length;

-		if (currentThrownExceptionsLength != otherThrownExceptionsLength)

-			return true;

-		for (int k = 0; k < currentThrownExceptionsLength; k++)

-			if (!CharOperation.equals(currentThrownExceptions[k], otherThrownExceptions[k]))

-				return true;

-	}

-	return false;

-}

-/**

- * This method is used to fully initialize the contents of the receiver. All methodinfos, fields infos

- * will be therefore fully initialized and we can get rid of the bytes.

- */

-private void initialize() throws ClassFormatException {

-	try {

-		for (int i = 0, max = fieldsCount; i < max; i++) {

-			fields[i].initialize();

-		}

-		for (int i = 0, max = methodsCount; i < max; i++) {

-			methods[i].initialize();

-		}

-		if (innerInfos != null) {

-			for (int i = 0, max = innerInfos.length; i < max; i++) {

-				innerInfos[i].initialize();

-			}

-		}

-		this.reset();

-	} catch(RuntimeException e) {

-		ClassFormatException exception = new ClassFormatException(e, this.classFileName);

-		throw exception;

-	}

-}

-/**

- * Answer true if the receiver is an anonymous type, false otherwise

- *

- * @return <CODE>boolean</CODE>

- */

-public boolean isAnonymous() {

-	if (this.innerInfo == null) return false;

-	char[] sourceName = this.innerInfo.getSourceName();

-	return (sourceName == null || sourceName.length == 0);

-}

-/**

- * Answer whether the receiver contains the resolved binary form

- * or the unresolved source form of the type.

- * @return boolean

- */

-public boolean isBinaryType() {

-	return true;

-}

-/**

- * Answer true if the receiver is a class. False otherwise.

- * @return boolean

- */

-public boolean isClass() {

-	return (getModifiers() & AccInterface) == 0;

-}

-/**

- * Answer true if the receiver is an interface. False otherwise.

- * @return boolean

- */

-public boolean isInterface() {

-	return (getModifiers() & AccInterface) != 0;

-}

-/**

- * Answer true if the receiver is a local type, false otherwise

- *

- * @return <CODE>boolean</CODE>

- */

-public boolean isLocal() {

-	if (this.innerInfo == null) return false;

-	if (this.innerInfo.getEnclosingTypeName() != null) return false;

-	char[] sourceName = this.innerInfo.getSourceName();

-	return (sourceName != null && sourceName.length > 0);	

-}

-/**

- * Answer true if the receiver is a member type, false otherwise

- *

- * @return <CODE>boolean</CODE>

- */

-public boolean isMember() {

-	if (this.innerInfo == null) return false;

-	if (this.innerInfo.getEnclosingTypeName() == null) return false;

-	char[] sourceName = this.innerInfo.getSourceName();

-	return (sourceName != null && sourceName.length > 0);	 // protection against ill-formed attributes (67600)

-}

-/**

- * Answer true if the receiver is a nested type, false otherwise

- *

- * @return <CODE>boolean</CODE>

- */

-public boolean isNestedType() {

-	return this.innerInfo != null;

-}

-protected void reset() {

-	this.constantPoolOffsets = null;

-	super.reset();

-}

-

-/**

- * Answer the source file name attribute. Return null if there is no source file attribute for the receiver.

- * 

- * @return char[]

- */

-public char[] sourceFileName() {

-	return this.sourceFileName;

-}

-public String toString() {

-	java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();

-	java.io.PrintWriter print = new java.io.PrintWriter(out);

-	

-	print.println(this.getClass().getName() + "{"); //$NON-NLS-1$

-	print.println(" this.className: " + new String(getName())); //$NON-NLS-1$

-	print.println(" this.superclassName: " + (getSuperclassName() == null ? "null" : new String(getSuperclassName()))); //$NON-NLS-2$ //$NON-NLS-1$

-	print.println(" access_flags: " + ClassFileStruct.printTypeModifiers(this.accessFlags()) + "(" + this.accessFlags() + ")"); //$NON-NLS-1$ //$NON-NLS-3$ //$NON-NLS-2$

-

-	print.flush();

-	return out.toString();

-}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileStruct.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileStruct.js
deleted file mode 100644
index 8fc3cfd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFileStruct.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.classfmt;

-

-abstract public class ClassFileStruct implements ClassFileConstants {

-	byte[] reference;

-	int structOffset;

-public ClassFileStruct(byte classFileBytes[], int off) {

-	reference = classFileBytes;

-	structOffset = off;

-}

-public ClassFileStruct (byte classFileBytes[], int off, boolean verifyStructure) {

-	reference = classFileBytes;

-	structOffset = off;

-}

-public double doubleAt(int relativeOffset) {

-	return (Double.longBitsToDouble(this.i8At(relativeOffset)));

-}

-public float floatAt(int relativeOffset) {

-	return (Float.intBitsToFloat(this.i4At(relativeOffset)));

-}

-public int i1At(int relativeOffset) {

-	return reference[relativeOffset + structOffset];

-}

-public int i2At(int relativeOffset) {

-	int position = relativeOffset + structOffset;

-	return (reference[position++] << 8) + (reference[position] & 0xFF);

-}

-public int i4At(int relativeOffset) {

-	int position = relativeOffset + structOffset;

-	return ((reference[position++] & 0xFF) << 24) + ((reference[position++] & 0xFF) << 16) + ((reference[position++] & 0xFF) << 8) + (reference[position] & 0xFF);

-}

-public long i8At(int relativeOffset) {

-	int position = relativeOffset + structOffset;

-	return (((long) (reference[position++] & 0xFF)) << 56) 

-					+ (((long) (reference[position++] & 0xFF)) << 48) 

-					+ (((long) (reference[position++] & 0xFF)) << 40) 

-					+ (((long) (reference[position++] & 0xFF)) << 32) 

-					+ (((long) (reference[position++] & 0xFF)) << 24) 

-					+ (((long) (reference[position++] & 0xFF)) << 16) 

-					+ (((long) (reference[position++] & 0xFF)) << 8) 

-					+ (reference[position++] & 0xFF);

-}

-public static String printTypeModifiers(int modifiers) {

-

-	java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();

-	java.io.PrintWriter print = new java.io.PrintWriter(out);

-

-	if ((modifiers & AccPublic) != 0) print.print("public "); //$NON-NLS-1$

-	if ((modifiers & AccPrivate) != 0) print.print("private "); //$NON-NLS-1$

-	if ((modifiers & AccFinal) != 0) print.print("final "); //$NON-NLS-1$

-	if ((modifiers & AccSuper) != 0) print.print("super "); //$NON-NLS-1$

-	if ((modifiers & AccInterface) != 0) print.print("interface "); //$NON-NLS-1$

-	if ((modifiers & AccAbstract) != 0) print.print("abstract "); //$NON-NLS-1$

-	print.flush();

-	return out.toString();

-}

-public int u1At(int relativeOffset) {

-	return (reference[relativeOffset + structOffset] & 0xFF);

-}

-public int u2At(int relativeOffset) {

-	int position = relativeOffset + structOffset;

-	return ((reference[position++] & 0xFF) << 8) + (reference[position] & 0xFF);

-}

-public long u4At(int relativeOffset) {

-	int position = relativeOffset + structOffset;

-	return (((reference[position++] & 0xFFL) << 24) + ((reference[position++] & 0xFF) << 16) + ((reference[position++] & 0xFF) << 8) + (reference[position] & 0xFF));

-}

-public char[] utf8At(int relativeOffset, int bytesAvailable) {

-	int length = bytesAvailable;

-	char outputBuf[] = new char[bytesAvailable];

-	int outputPos = 0;

-	int readOffset = this.structOffset + relativeOffset;

-	

-	while (length != 0) {

-		int x = this.reference[readOffset++] & 0xFF;

-		length--;

-		if ((0x80 & x) != 0) {

-			if ((x & 0x20) != 0) {

-				length-=2;

-				x = ((x & 0xF) << 12) | ((this.reference[readOffset++] & 0x3F) << 6) | (this.reference[readOffset++] & 0x3F);

-			} else {

-				length--;

-				x = ((x & 0x1F) << 6) | (this.reference[readOffset++] & 0x3F);

-			}

-		}

-		outputBuf[outputPos++] = (char) x;

-	}

-

-	if (outputPos != bytesAvailable) {

-		System.arraycopy(outputBuf, 0, (outputBuf = new char[outputPos]), 0, outputPos);

-	}

-	return outputBuf;

-}

-

-protected void reset() {

-	this.reference = null;

-}

-

-public char[] utf8At(int relativeOffset, int bytesAvailable, boolean testValidity) throws ClassFormatException {

-	int x, y, z;

-	int length = bytesAvailable;

-	char outputBuf[] = new char[bytesAvailable];

-	int outputPos = 0;

-	int readOffset = structOffset + relativeOffset;

-	

-	while (length != 0) {

-		x = reference[readOffset++] & 0xFF;

-		length--;

-		if ((0x80 & x) != 0) {

-			if (testValidity) {

-				if ((0x40 & x) == 0) {

-					throw new ClassFormatException(ClassFormatException.ErrMalformedUtf8);

-				}

-				if (length < 1) {

-					throw new ClassFormatException(ClassFormatException.ErrMalformedUtf8);

-				}

-			}

-			y = this.reference[readOffset++] & 0xFF;

-			length--;

-			if (testValidity) {

-				if ((y & 0xC0) != 0x80) {

-					throw new ClassFormatException(ClassFormatException.ErrMalformedUtf8);

-				}

-			}

-			if ((x & 0x20) != 0) {

-				if (testValidity && (length < 1)) {

-					throw new ClassFormatException(ClassFormatException.ErrMalformedUtf8);

-				}

-				z = this.reference[readOffset++] & 0xFF;

-				length--;

-				if (testValidity && ((z & 0xC0) != 0x80)) {

-					throw new ClassFormatException(ClassFormatException.ErrMalformedUtf8);

-				}

-				x = ((x & 0x1F) << 12) + ((y & 0x3F) << 6) + (z & 0x3F);

-				if (testValidity && (x < 0x0800)) {

-					throw new ClassFormatException(ClassFormatException.ErrMalformedUtf8);

-				}

-			} else {

-				x = ((x & 0x1F) << 6) + (y & 0x3F);

-				if (testValidity && !((x == 0) || (x >= 0x80))) {

-					throw new ClassFormatException(ClassFormatException.ErrMalformedUtf8);

-				}

-			}

-		} else {

-			if (testValidity && x == 0) {

-					throw new ClassFormatException(ClassFormatException.ErrMalformedUtf8);

-			}

-		}

-		outputBuf[outputPos++] = (char) x;

-	}

-

-	if (outputPos != bytesAvailable) {

-		System.arraycopy(outputBuf, 0, (outputBuf = new char[outputPos]), 0, outputPos);

-	}

-	return outputBuf;

-}

-public static void verifyMethodNameAndSignature(char[] name, char[] signature) throws ClassFormatException {

-

-	// ensure name is not empty 

-	if (name.length == 0) {

-		throw new ClassFormatException(ClassFormatException.ErrInvalidMethodName);

-	}

-

-	// if name begins with the < character it must be clinit or init

-	if (name[0] == '<') {

-		if (new String(name).equals("<clinit>") || new String(name).equals("<init>")) { //$NON-NLS-2$ //$NON-NLS-1$

-			int signatureLength = signature.length;

-			if (!((signatureLength > 2)

-				&& (signature[0] == '(')

-				&& (signature[signatureLength - 2] == ')')

-				&& (signature[signatureLength - 1] == 'V'))) {

-				throw new ClassFormatException(ClassFormatException.ErrInvalidMethodSignature);

-			}

-		} else {

-			throw new ClassFormatException(ClassFormatException.ErrInvalidMethodName);

-		}

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFormatException.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFormatException.js
deleted file mode 100644
index 609f725..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/ClassFormatException.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others. All rights reserved.

- * This program and the accompanying materials are made available under the

- * terms of the Common Public License v1.0 which accompanies this distribution,

- * and is available at http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors: IBM Corporation - initial API and implementation

- ******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.classfmt;

-import java.io.PrintStream;

-import java.io.PrintWriter;

-public class ClassFormatException extends Exception {

-	

-	public static final int ErrBadMagic = 1;

-	public static final int ErrBadMinorVersion = 2;

-	public static final int ErrBadMajorVersion = 3;

-	public static final int ErrBadConstantClass = 4;

-	public static final int ErrBadConstantString = 5;

-	public static final int ErrBadConstantNameAndType = 6;

-	public static final int ErrBadConstantFieldRef = 7;

-	public static final int ErrBadConstantMethodRef = 8;

-	public static final int ErrBadConstantInterfaceMethodRef = 9;

-	public static final int ErrBadConstantPoolIndex = 10;

-	public static final int ErrBadSuperclassName = 11;

-	public static final int ErrInterfaceCannotBeFinal = 12;

-	public static final int ErrInterfaceMustBeAbstract = 13;

-	public static final int ErrBadModifiers = 14;

-	public static final int ErrClassCannotBeAbstractFinal = 15;

-	public static final int ErrBadClassname = 16;

-	public static final int ErrBadFieldInfo = 17;

-	public static final int ErrBadMethodInfo = 17;

-	public static final int ErrEmptyConstantPool = 18;

-	public static final int ErrMalformedUtf8 = 19;

-	public static final int ErrUnknownConstantTag = 20;

-	public static final int ErrTruncatedInput = 21;

-	public static final int ErrMethodMustBeAbstract = 22;

-	public static final int ErrMalformedAttribute = 23;

-	public static final int ErrBadInterface = 24;

-	public static final int ErrInterfaceMustSubclassObject = 25;

-	public static final int ErrIncorrectInterfaceMethods = 26;

-	public static final int ErrInvalidMethodName = 27;

-	public static final int ErrInvalidMethodSignature = 28;

-

-	private static final long serialVersionUID = 6667458511042774540L; // backward compatible

-

-	private int errorCode;

-	private int bufferPosition;

-	private RuntimeException nestedException;

-	private char[] fileName;

-

-	public ClassFormatException(RuntimeException e, char[] fileName) {

-		this.nestedException = e;

-	}

-	public ClassFormatException(int code) {

-		errorCode = code;

-	}

-	public ClassFormatException(int code, int bufPos) {

-		errorCode = code;

-		bufferPosition = bufPos;

-	}

-	/**

-	 * @return int

-	 */

-	public int getErrorCode() {

-		return errorCode;

-	}

-	/**

-	 * @return int

-	 */

-	public int getBufferPosition() {

-		return bufferPosition;

-	}

-	/**

-	 * Returns the underlying <code>Throwable</code> that caused the failure.

-	 * 

-	 * @return the wrappered <code>Throwable</code>, or <code>null</code>

-	 *         if the direct case of the failure was at the Java model layer

-	 */

-	public Throwable getException() {

-		return this.nestedException;

-	}

-	public void printStackTrace() {

-		printStackTrace(System.err);

-	}

-	/**

-	 * Prints this exception's stack trace to the given print stream.

-	 * 

-	 * @param output

-	 *            the print stream

-	 * @since 3.0

-	 */

-	public void printStackTrace(PrintStream output) {

-		synchronized (output) {

-			super.printStackTrace(output);

-			Throwable throwable = getException();

-			if (throwable != null) {

-				if (this.fileName != null) {

-					output.print("Caused in "); //$NON-NLS-1$

-					output.print(this.fileName);

-					output.print(" by: "); //$NON-NLS-1$

-				} else {

-					output.print("Caused by: "); //$NON-NLS-1$

-				}

-				throwable.printStackTrace(output);

-			}

-		}

-	}

-	/**

-	 * Prints this exception's stack trace to the given print writer.

-	 * 

-	 * @param output

-	 *            the print writer

-	 * @since 3.0

-	 */

-	public void printStackTrace(PrintWriter output) {

-		synchronized (output) {

-			super.printStackTrace(output);

-			Throwable throwable = getException();

-			if (throwable != null) {

-				if (this.fileName != null) {

-					output.print("Caused in "); //$NON-NLS-1$

-					output.print(this.fileName);

-					output.print(" by: "); //$NON-NLS-1$

-				} else {

-					output.print("Caused by: "); //$NON-NLS-1$

-				}

-				throwable.printStackTrace(output);

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/FieldInfo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/FieldInfo.js
deleted file mode 100644
index 7ac465c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/FieldInfo.js
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.classfmt;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.AttributeNamesConstants;

-import org.eclipse.wst.jsdt.internal.compiler.env.IBinaryField;

-import org.eclipse.wst.jsdt.internal.compiler.impl.BooleanConstant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ByteConstant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CharConstant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.DoubleConstant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.FloatConstant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.IntConstant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.LongConstant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ShortConstant;

-import org.eclipse.wst.jsdt.internal.compiler.impl.StringConstant;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public class FieldInfo extends ClassFileStruct implements AttributeNamesConstants, IBinaryField, Comparable, TypeIds {

-	private int accessFlags;

-	private int attributeBytes;

-	private Constant constant;

-	private int[] constantPoolOffsets;

-	private char[] descriptor;

-	private char[] name;

-	private Object wrappedConstantValue;

-	private char[] signature;

-	private int signatureUtf8Offset;

-/**

- * @param classFileBytes byte[]

- * @param offsets int[]

- * @param offset int

- */

-public FieldInfo (byte classFileBytes[], int offsets[], int offset) {

-	super(classFileBytes, offset);

-	constantPoolOffsets = offsets;

-	accessFlags = -1;

-	int attributesCount = u2At(6);

-	int readOffset = 8;

-	this.signatureUtf8Offset = -1;

-	for (int i = 0; i < attributesCount; i++) {

-		// check the name of each attribute

-		int utf8Offset = constantPoolOffsets[u2At(readOffset)] - structOffset;

-		char[] attributeName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		if (CharOperation.equals(AttributeNamesConstants.SignatureName, attributeName)) {

-			this.signatureUtf8Offset = constantPoolOffsets[u2At(readOffset + 6)] - structOffset;

-		}

-		readOffset += (6 + u4At(readOffset + 2));

-	}

-	attributeBytes = readOffset;

-}

-

-public int compareTo(Object o) {

-	if (!(o instanceof FieldInfo)) {

-		throw new ClassCastException();

-	}

-	return new String(this.getName()).compareTo(new String(((FieldInfo) o).getName()));

-}

-/**

- * Return the constant of the field.

- * Return org.eclipse.wst.jsdt.internal.compiler.impl.Constant.NotAConstant if there is none.

- * @return org.eclipse.wst.jsdt.internal.compiler.impl.Constant

- */

-public Constant getConstant() {

-	if (constant == null) {

-		// read constant

-		readConstantAttribute();

-	}

-	return constant;

-}

-public char[] getGenericSignature() {

-	if (this.signatureUtf8Offset != -1) {

-		if (this.signature == null) {

-			// decode the signature

-			this.signature = utf8At(this.signatureUtf8Offset + 3, u2At(this.signatureUtf8Offset + 1));

-		}

-		return this.signature;

-	}

-	return null;

-}

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- * Set the AccDeprecated and AccSynthetic bits if necessary

- * @return int

- */

-public int getModifiers() {

-	if (this.accessFlags == -1) {

-		// compute the accessflag. Don't forget the deprecated attribute

-		this.accessFlags = u2At(0);

-		readDeprecatedAndSyntheticAttributes();

-	}

-	return this.accessFlags;

-}

-/**

- * Answer the name of the field.

- * @return char[]

- */

-public char[] getName() {

-	if (name == null) {

-		// read the name

-		int utf8Offset = constantPoolOffsets[u2At(2)] - structOffset;

-		name = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-	}

-	return name;

-}

-/**

- * Answer the resolved name of the receiver's type in the

- * class file format as specified in section 4.3.2 of the Java 2 VM spec.

- *

- * For example:

- *   - java.lang.String is Ljava/lang/String;

- *   - an int is I

- *   - a 2 dimensional array of strings is [[Ljava/lang/String;

- *   - an array of floats is [F

- * @return char[]

- */

-public char[] getTypeName() {

-	if (descriptor == null) {

-		// read the signature

-		int utf8Offset = constantPoolOffsets[u2At(4)] - structOffset;

-		descriptor = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-	}

-	return descriptor;

-}

-/**

- * Return a wrapper that contains the constant of the field.

- * @return java.lang.Object

- */

-public Object getWrappedConstantValue() {

-

-	if (this.wrappedConstantValue == null) {

-		if (hasConstant()) {

-			Constant fieldConstant = getConstant();

-			switch (fieldConstant.typeID()) {

-				case T_int :

-					this.wrappedConstantValue = new Integer(fieldConstant.intValue());

-					break;

-				case T_byte :

-					this.wrappedConstantValue = new Byte(fieldConstant.byteValue());

-					break;

-				case T_short :

-					this.wrappedConstantValue = new Short(fieldConstant.shortValue());

-					break;

-				case T_char :

-					this.wrappedConstantValue = new Character(fieldConstant.charValue());

-					break;

-				case T_float :

-					this.wrappedConstantValue = new Float(fieldConstant.floatValue());

-					break;

-				case T_double :

-					this.wrappedConstantValue = new Double(fieldConstant.doubleValue());

-					break;

-				case T_boolean :

-					this.wrappedConstantValue = Util.toBoolean(fieldConstant.booleanValue());

-					break;

-				case T_long :

-					this.wrappedConstantValue = new Long(fieldConstant.longValue());

-					break;

-				case T_String :

-					this.wrappedConstantValue = fieldConstant.stringValue();

-			}

-		}

-	}

-	return this.wrappedConstantValue;

-}

-/**

- * Return true if the field has a constant value attribute, false otherwise.

- * @return boolean

- */

-public boolean hasConstant() {

-	return getConstant() != Constant.NotAConstant;

-}

-/**

- * This method is used to fully initialize the contents of the receiver. All methodinfos, fields infos

- * will be therefore fully initialized and we can get rid of the bytes.

- */

-void initialize() {

-	getModifiers();

-	getName();

-	getConstant();

-	getTypeName();

-	getGenericSignature();

-	reset();

-}

-/**

- * Return true if the field is a synthetic field, false otherwise.

- * @return boolean

- */

-public boolean isSynthetic() {

-	return (getModifiers() & AccSynthetic) != 0;

-}

-

-private void readConstantAttribute() {

-	int attributesCount = u2At(6);

-	int readOffset = 8;

-	boolean isConstant = false;

-	for (int i = 0; i < attributesCount; i++) {

-		int utf8Offset = constantPoolOffsets[u2At(readOffset)] - structOffset;

-		char[] attributeName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		if (CharOperation

-			.equals(attributeName, ConstantValueName)) {

-			isConstant = true;

-			// read the right constant

-			int relativeOffset = constantPoolOffsets[u2At(readOffset + 6)] - structOffset;

-			switch (u1At(relativeOffset)) {

-				case IntegerTag :

-					char[] sign = getTypeName();

-					if (sign.length == 1) {

-						switch (sign[0]) {

-							case 'Z' : // boolean constant

-								constant = new BooleanConstant(i4At(relativeOffset + 1) == 1);

-								break;

-							case 'I' : // integer constant

-								constant = new IntConstant(i4At(relativeOffset + 1));

-								break;

-							case 'C' : // char constant

-								constant = new CharConstant((char) i4At(relativeOffset + 1));

-								break;

-							case 'B' : // byte constant

-								constant = new ByteConstant((byte) i4At(relativeOffset + 1));

-								break;

-							case 'S' : // short constant

-								constant = new ShortConstant((short) i4At(relativeOffset + 1));

-								break;

-							default:

-								constant = Constant.NotAConstant;                   

-						}

-					} else {

-						constant = Constant.NotAConstant;

-					}

-					break;

-				case FloatTag :

-					constant = new FloatConstant(floatAt(relativeOffset + 1));

-					break;

-				case DoubleTag :

-					constant = new DoubleConstant(doubleAt(relativeOffset + 1));

-					break;

-				case LongTag :

-					constant = new LongConstant(i8At(relativeOffset + 1));

-					break;

-				case StringTag :

-					utf8Offset = constantPoolOffsets[u2At(relativeOffset + 1)] - structOffset;

-					constant = 

-						new StringConstant(

-							String.valueOf(utf8At(utf8Offset + 3, u2At(utf8Offset + 1)))); 

-					break;

-			}

-		}

-		readOffset += (6 + u4At(readOffset + 2));

-	}

-	if (!isConstant) {

-		constant = Constant.NotAConstant;

-	}

-}

-private void readDeprecatedAndSyntheticAttributes() {

-	int attributesCount = u2At(6);

-	int readOffset = 8;

-	for (int i = 0; i < attributesCount; i++) {

-		int utf8Offset = constantPoolOffsets[u2At(readOffset)] - structOffset;

-		char[] attributeName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		if (CharOperation.equals(attributeName, DeprecatedName)) {

-			this.accessFlags |= AccDeprecated;

-		} else if (CharOperation.equals(attributeName, SyntheticName)) {

-			this.accessFlags |= AccSynthetic;

-		}

-		readOffset += (6 + u4At(readOffset + 2));

-	}

-}

-protected void reset() {

-	this.constantPoolOffsets = null;

-	super.reset();

-}

-/**

- * Answer the size of the receiver in bytes.

- * 

- * @return int

- */

-public int sizeInBytes() {

-	return attributeBytes;

-}

-public void throwFormatException() throws ClassFormatException {

-	throw new ClassFormatException(ClassFormatException.ErrBadFieldInfo);

-}

-public String toString() {

-	StringBuffer buffer = new StringBuffer(this.getClass().getName());

-	int modifiers = getModifiers();

-	return buffer

-		.append("{") //$NON-NLS-1$

-		.append(

-			((modifiers & AccDeprecated) != 0 ? "deprecated " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0001) == 1 ? "public " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0002) == 0x0002 ? "private " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0004) == 0x0004 ? "protected " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0008) == 0x000008 ? "static " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0010) == 0x0010 ? "final " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0040) == 0x0040 ? "volatile " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0080) == 0x0080 ? "transient " : "")) //$NON-NLS-1$ //$NON-NLS-2$

-		.append(getTypeName())

-		.append(" ") //$NON-NLS-1$

-		.append(getName())

-		.append(" ") //$NON-NLS-1$

-		.append(getConstant())

-		.append("}") //$NON-NLS-1$

-		.toString(); 

-}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/InnerClassInfo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/InnerClassInfo.js
deleted file mode 100644
index a5ad1ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/InnerClassInfo.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.classfmt;

-

-import org.eclipse.wst.jsdt.internal.compiler.env.IBinaryNestedType;

-

-/**

- * Describes one entry in the classes table of the InnerClasses attribute.

- * See the inner class specification (The class file attribute "InnerClasses").

- */

-

-public class InnerClassInfo extends ClassFileStruct implements IBinaryNestedType {

-	int innerClassNameIndex = -1;

-	int outerClassNameIndex = -1;

-	int innerNameIndex = -1;

-	private char[] innerClassName;

-	private char[] outerClassName;

-	private char[] innerName;

-	private int accessFlags = -1;

-	private int[] constantPoolOffsets;

-	private boolean readInnerClassName = false;

-	private boolean readOuterClassName = false;

-	private boolean readInnerName = false;

-public InnerClassInfo(byte classFileBytes[], int offsets[], int offset) {

-	super(classFileBytes, offset);

-	constantPoolOffsets = offsets;

-	innerClassNameIndex = u2At(0);

-	outerClassNameIndex = u2At(2);

-	this.innerNameIndex = u2At(4);

-}

-/**

- * Answer the resolved name of the enclosing type in the

- * class file format as specified in section 4.2 of the Java 2 VM spec.

- *

- * For example, java.lang.String is java/lang/String.

- * @return char[]

- */

-public char[] getEnclosingTypeName() {

-	if (!readOuterClassName) {

-		// read outer class name

-		readOuterClassName = true;

-		if (outerClassNameIndex != 0) {

-			int utf8Offset = 

-				constantPoolOffsets[u2At(

-					constantPoolOffsets[outerClassNameIndex] - structOffset + 1)]

-					- structOffset; 

-			outerClassName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		}

-

-	}

-	return outerClassName;

-}

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- * @return int

- */

-public int getModifiers() {

-	if (accessFlags == -1) {

-		// read access flag

-		accessFlags = u2At(6);

-	}

-	return accessFlags;

-}

-/**

- * Answer the resolved name of the member type in the

- * class file format as specified in section 4.2 of the Java 2 VM spec.

- *

- * For example, p1.p2.A.M is p1/p2/A$M.

- * @return char[]

- */

-public char[] getName() {

-	if (!readInnerClassName) {

-		// read the inner class name

-		readInnerClassName = true;

-		if (innerClassNameIndex != 0) {

-			int  classOffset = constantPoolOffsets[innerClassNameIndex] - structOffset;

-			int utf8Offset = constantPoolOffsets[u2At(classOffset + 1)] - structOffset;

-			innerClassName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		}

-	}

-	return innerClassName;

-}

-/**

- * Answer the source name of the member type.

- *

- * For example, p1.p2.A.M is M.

- * @return char[]

- */

-public char[] getSourceName() {

-	if (!this.readInnerName) {

-		this.readInnerName = true;

-		if (innerNameIndex != 0) {

-			int utf8Offset = constantPoolOffsets[innerNameIndex] - structOffset;

-			innerName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		}

-	}

-	return innerName;

-}

-/**

- * Answer the string representation of the receiver

- * @return java.lang.String

- */

-public String toString() {

-	StringBuffer buffer = new StringBuffer();

-	if (getName() != null) {

-		buffer.append(getName());

-	}

-	buffer.append("\n"); //$NON-NLS-1$

-	if (getEnclosingTypeName() != null) {

-		buffer.append(getEnclosingTypeName());

-	}

-	buffer.append("\n"); //$NON-NLS-1$

-	if (getSourceName() != null) {

-		buffer.append(getSourceName());

-	}

-	return buffer.toString();   

-}

-/**

- * This method is used to fully initialize the contents of the receiver. All methodinfos, fields infos

- * will be therefore fully initialized and we can get rid of the bytes.

- */

-void initialize() {

-	getModifiers();

-	getName();

-	getSourceName();

-	getEnclosingTypeName();

-	reset();

-}

-protected void reset() {

-	this.constantPoolOffsets = null;

-	super.reset();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/MethodInfo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/MethodInfo.js
deleted file mode 100644
index 90c3240..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/classfmt/MethodInfo.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.classfmt;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.AttributeNamesConstants;

-import org.eclipse.wst.jsdt.internal.compiler.env.IBinaryMethod;

-

-public class MethodInfo extends ClassFileStruct implements IBinaryMethod, AttributeNamesConstants, Comparable {

-	static private final char[][] noException = CharOperation.NO_CHAR_CHAR;

-	private int accessFlags;

-	private int attributeBytes;

-	private int[] constantPoolOffsets;

-	private char[] descriptor;

-	private char[][] exceptionNames;

-	private char[] name;

-	private char[] signature;

-	private int signatureUtf8Offset;

-	

-/**

- * @param classFileBytes byte[]

- * @param offsets int[]

- * @param offset int

- */

-public MethodInfo (byte classFileBytes[], int offsets[], int offset) {

-	super(classFileBytes, offset);

-	constantPoolOffsets = offsets;

-	accessFlags = -1;

-	int attributesCount = u2At(6);

-	int readOffset = 8;

-	this.signatureUtf8Offset = -1;

-	for (int i = 0; i < attributesCount; i++) {

-		// check the name of each attribute

-		int utf8Offset = constantPoolOffsets[u2At(readOffset)] - structOffset;

-		char[] attributeName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		if (CharOperation.equals(AttributeNamesConstants.SignatureName, attributeName)) {

-			this.signatureUtf8Offset = constantPoolOffsets[u2At(readOffset + 6)] - structOffset;

-		}

-		readOffset += (6 + u4At(readOffset + 2));

-	}

-	attributeBytes = readOffset;

-}

-public int compareTo(Object o) {

-	if (!(o instanceof MethodInfo)) {

-		throw new ClassCastException();

-	}

-

-	MethodInfo otherMethod = (MethodInfo) o;

-	int result = new String(this.getSelector()).compareTo(new String(otherMethod.getSelector()));

-	if (result != 0) return result;

-	return new String(this.getMethodDescriptor()).compareTo(new String(otherMethod.getMethodDescriptor()));

-}

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.env.IGenericMethod#getArgumentNames()

- */

-public char[][] getArgumentNames() {

-	return null;

-}

-/**

- * Answer the resolved names of the exception types in the

- * class file format as specified in section 4.2 of the Java 2 VM spec

- * or null if the array is empty.

- *

- * For example, java.lang.String is java/lang/String.

- * @return char[][]

- */

-public char[][] getExceptionTypeNames() {

-	if (exceptionNames == null) {

-		readExceptionAttributes();

-	}

-	return exceptionNames;

-}

-public char[] getGenericSignature() {

-	if (this.signatureUtf8Offset != -1) {

-		if (this.signature == null) {

-			// decode the signature

-			this.signature = utf8At(this.signatureUtf8Offset + 3, u2At(this.signatureUtf8Offset + 1));

-		}

-		return this.signature;

-	}

-	return null;

-}

-/**

- * Answer the receiver's method descriptor which describes the parameter &

- * return types as specified in section 4.3.3 of the Java 2 VM spec.

- *

- * For example:

- *   - int foo(String) is (Ljava/lang/String;)I

- *   - void foo(Object[]) is (I)[Ljava/lang/Object;

- * @return char[]

- */

-public char[] getMethodDescriptor() {

-	if (descriptor == null) {

-		// read the name

-		int utf8Offset = constantPoolOffsets[u2At(4)] - structOffset;

-		descriptor = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-	}

-	return descriptor;

-}

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- * Set the AccDeprecated and AccSynthetic bits if necessary

- * @return int

- */

-public int getModifiers() {

-	if (this.accessFlags == -1) {

-		// compute the accessflag. Don't forget the deprecated attribute

-		this.accessFlags = u2At(0);

-		readDeprecatedAndSyntheticAttributes();

-	}

-	return this.accessFlags;

-}

-/**

- * Answer the name of the method.

- *

- * For a constructor, answer <init> & <clinit> for a clinit method.

- * @return char[]

- */

-public char[] getSelector() {

-	if (name == null) {

-		// read the name

-		int utf8Offset = constantPoolOffsets[u2At(2)] - structOffset;

-		name = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-	}

-	return name;

-}

-/**

- * This method is used to fully initialize the contents of the receiver. All methodinfos, fields infos

- * will be therefore fully initialized and we can get rid of the bytes.

- */

-void initialize() {

-	getModifiers();

-	getSelector();

-	getMethodDescriptor();

-	getExceptionTypeNames();

-	getGenericSignature();

-	reset();

-}

-/**

- * Answer true if the method is a class initializer, false otherwise.

- * @return boolean

- */

-public boolean isClinit() {

-	char[] selector = getSelector();

-	return selector[0] == '<' && selector.length == 8; // Can only match <clinit>

-}

-/**

- * Answer true if the method is a constructor, false otherwise.

- * @return boolean

- */

-public boolean isConstructor() {

-	char[] selector = getSelector();

-	return selector[0] == '<' && selector.length == 6; // Can only match <init>

-}

-/**

- * Return true if the field is a synthetic method, false otherwise.

- * @return boolean

- */

-public boolean isSynthetic() {

-	return (getModifiers() & AccSynthetic) != 0;

-}

-private void readDeprecatedAndSyntheticAttributes() {

-	int attributesCount = u2At(6);

-	int readOffset = 8;

-	for (int i = 0; i < attributesCount; i++) {

-		int utf8Offset = constantPoolOffsets[u2At(readOffset)] - structOffset;

-		char[] attributeName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		if (CharOperation.equals(attributeName, DeprecatedName)) {

-			this.accessFlags |= AccDeprecated;

-		} else if (CharOperation.equals(attributeName, SyntheticName)) {

-			this.accessFlags |= AccSynthetic;

-		}

-		readOffset += (6 + u4At(readOffset + 2));

-	}

-}

-private void readExceptionAttributes() {

-	int attributesCount = u2At(6);

-	int readOffset = 8;

-	for (int i = 0; i < attributesCount; i++) {

-		int utf8Offset = constantPoolOffsets[u2At(readOffset)] - structOffset;

-		char[] attributeName = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-		if (CharOperation.equals(attributeName, ExceptionsName)) {

-			// read the number of exception entries

-			int entriesNumber = u2At(readOffset + 6);

-			// place the readOffset at the beginning of the exceptions table

-			readOffset += 8;

-			if (entriesNumber == 0) {

-				exceptionNames = noException;

-			} else {

-				exceptionNames = new char[entriesNumber][];

-				for (int j = 0; j < entriesNumber; j++) {

-					utf8Offset = 

-						constantPoolOffsets[u2At(

-							constantPoolOffsets[u2At(readOffset)] - structOffset + 1)]

-							- structOffset; 

-					exceptionNames[j] = utf8At(utf8Offset + 3, u2At(utf8Offset + 1));

-					readOffset += 2;

-				}

-			}

-		} else {

-			readOffset += (6 + u4At(readOffset + 2));

-		}

-	}

-	if (exceptionNames == null) {

-		exceptionNames = noException;

-	}

-}

-protected void reset() {

-	this.constantPoolOffsets = null;

-	super.reset();

-}

-/**

- * Answer the size of the receiver in bytes.

- * 

- * @return int

- */

-public int sizeInBytes() {

-	return attributeBytes;

-}

-public String toString() {

-	int modifiers = getModifiers();

-	char[] desc = getGenericSignature();

-	if (desc == null)

-		desc = getMethodDescriptor();

-	StringBuffer buffer = new StringBuffer(this.getClass().getName());

-	return buffer

-		.append("{") //$NON-NLS-1$

-		.append(

-			((modifiers & AccDeprecated) != 0 ? "deprecated " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0001) == 1 ? "public " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0002) == 0x0002 ? "private " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0004) == 0x0004 ? "protected " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0008) == 0x000008 ? "static " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0010) == 0x0010 ? "final " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0040) == 0x0040 ? "volatile " : "") //$NON-NLS-1$ //$NON-NLS-2$

-				+ ((modifiers & 0x0080) == 0x0080 ? "transient " : "")) //$NON-NLS-1$ //$NON-NLS-2$

-		.append(getSelector())

-		.append(desc)

-		.append("}") //$NON-NLS-1$

-		.toString(); 

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/AttributeNamesConstants.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/AttributeNamesConstants.js
deleted file mode 100644
index 3bbbd8c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/AttributeNamesConstants.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public interface AttributeNamesConstants {

-	final char[] SyntheticName = new char[] {'S', 'y', 'n', 't', 'h', 'e', 't', 'i', 'c'};

-	final char[] ConstantValueName = new char[] {'C', 'o', 'n', 's', 't', 'a', 'n', 't', 'V', 'a', 'l', 'u', 'e'};

-	final char[] LineNumberTableName = new char[] {'L', 'i', 'n', 'e', 'N', 'u', 'm', 'b', 'e', 'r', 'T', 'a', 'b', 'l', 'e'};

-	final char[] LocalVariableTableName = new char[] {'L', 'o', 'c', 'a', 'l', 'V', 'a', 'r', 'i', 'a', 'b', 'l', 'e', 'T', 'a', 'b', 'l', 'e'};

-	final char[] InnerClassName = new char[] {'I', 'n', 'n', 'e', 'r', 'C', 'l', 'a', 's', 's', 'e', 's'};

-	final char[] CodeName = new char[] {'C', 'o', 'd', 'e'};

-	final char[] ExceptionsName = new char[] {'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n', 's'};

-	final char[] SourceName = new char[] {'S', 'o', 'u', 'r', 'c', 'e', 'F', 'i', 'l', 'e'};

-	final char[] DeprecatedName = new char[] {'D', 'e', 'p', 'r', 'e', 'c', 'a', 't', 'e', 'd'};

-	final char[] SignatureName = new char[] {'S', 'i', 'g', 'n', 'a', 't', 'u', 'r', 'e'};	

-	final char[] LocalVariableTypeTableName = new char[] {'L', 'o', 'c', 'a', 'l', 'V', 'a', 'r', 'i', 'a', 'b', 'l', 'e', 'T', 'y', 'p', 'e', 'T', 'a', 'b', 'l', 'e'};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CaseLabel.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CaseLabel.js
deleted file mode 100644
index fb49850..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CaseLabel.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public class CaseLabel extends Label {

-	public int instructionPosition = POS_NOT_SET;

-	public int backwardsBranch = POS_NOT_SET;

-/**

- * CaseLabel constructor comment.

- * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

- */

-public CaseLabel(CodeStream codeStream) {

-	super(codeStream);

-}

-/*

-* Put down  a refernece to the array at the location in the codestream.

-*/

-void branch() {

-	if (position == POS_NOT_SET) {

-		addForwardReference(codeStream.position);

-		// Leave 4 bytes free to generate the jump offset afterwards

-		codeStream.position += 4;

-		codeStream.classFileOffset += 4;

-	} else { //Position is set. Write it!

-		codeStream.writeSignedWord(position - codeStream.position + 1);

-	}

-}

-/*

-* Put down  a refernece to the array at the location in the codestream.

-*/

-void branchWide() {

-	if (position == POS_NOT_SET) {

-		addForwardReference(codeStream.position);

-		// Leave 4 bytes free to generate the jump offset afterwards

-		codeStream.position += 4;

-	} else { //Position is set. Write it!

-		codeStream.writeSignedWord(position - codeStream.position + 1);

-	}

-}

-public boolean isStandardLabel(){

-	return false;

-}

-/*

-* Put down  a reference to the array at the location in the codestream.

-*/

-public void place() {

-	position = codeStream.position;

-	if (instructionPosition == POS_NOT_SET)

-		backwardsBranch = position;

-	else {

-		int offset = position - instructionPosition;

-		for (int i = 0; i < forwardReferenceCount; i++) {

-			codeStream.writeSignedWord(forwardReferences[i], offset);

-		}

-		// add the label int the codeStream labels collection

-		codeStream.addLabel(this);

-	}

-}

-/*

-* Put down  a refernece to the array at the location in the codestream.

-*/

-void placeInstruction() {

-	if (instructionPosition == POS_NOT_SET) {

-		instructionPosition = codeStream.position;

-		if (backwardsBranch != POS_NOT_SET) {

-			int offset = backwardsBranch - instructionPosition;

-			for (int i = 0; i < forwardReferenceCount; i++)

-				codeStream.writeSignedWord(forwardReferences[i], offset);

-			backwardsBranch = POS_NOT_SET;

-		}

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CharArrayCache.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CharArrayCache.js
deleted file mode 100644
index e564277..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CharArrayCache.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public class CharArrayCache {

-	// to avoid using Enumerations, walk the individual tables skipping nulls

-	public char[] keyTable[];

-	public int valueTable[];

-	int elementSize; // number of elements in the table

-	int threshold;

-/**

- * Constructs a new, empty hashtable. A default capacity is used.

- * Note that the hashtable will automatically grow when it gets full.

- */

-public CharArrayCache() {

-	this(13);

-}

-/**

- * Constructs a new, empty hashtable with the specified initial

- * capacity.

- * @param initialCapacity int

- *	the initial number of buckets

- */

-public CharArrayCache(int initialCapacity) {

-	this.elementSize = 0;

-	this.threshold = (int) (initialCapacity * 0.66f);

-	this.keyTable = new char[initialCapacity][];

-	this.valueTable = new int[initialCapacity];

-}

-/**

- * Clears the hash table so that it has no more elements in it.

- */

-public void clear() {

-	for (int i = keyTable.length; --i >= 0;) {

-		keyTable[i] = null;

-		valueTable[i] = 0;

-	}

-	elementSize = 0;

-}

-/** Returns true if the collection contains an element for the key.

- *

- * @param key char[] the key that we are looking for

- * @return boolean

- */

-public boolean containsKey(char[] key) {

-	int index = hashCodeChar(key);

-	while (keyTable[index] != null) {

-		if (CharOperation.equals(keyTable[index], key))

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-/** Gets the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>char[]</CODE> the specified key

- * @return int the element for the key or -1 if the key is not

- *	defined in the hash table.

- */

-public int get(char[] key) {

-	int index = hashCodeChar(key);

-	while (keyTable[index] != null) {

-		if (CharOperation.equals(keyTable[index], key))

-			return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return -1;

-}

-private int hashCodeChar(char[] val) {

-	int length = val.length;

-	int hash = 0;

-	int n = 2; // number of characters skipped

-	for (int i = 0; i < length; i += n) {

-		hash += val[i];

-	}

-	return (hash & 0x7FFFFFFF) % keyTable.length;

-}

-/**

- * Puts the specified element into the hashtable, using the specified

- * key.  The element may be retrieved by doing a get() with the same key.

- * The key and the element cannot be null. 

- * 

- * @param key <CODE>Object</CODE> the specified key in the hashtable

- * @param value <CODE>int</CODE> the specified element

- * @return int the old value of the key, or -1 if it did not have one.

- */

-public int put(char[] key, int value) { 

-	int index = hashCodeChar(key);

-	while (keyTable[index] != null) {

-		if (CharOperation.equals(keyTable[index], key))

-			return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold)

-		rehash();

-	return value;

-}

-/**

- * Rehashes the content of the table into a bigger table.

- * This method is called automatically when the hashtable's

- * size exceeds the threshold.

- */

-private void rehash() {

-	CharArrayCache newHashtable = new CharArrayCache(keyTable.length * 2);

-	for (int i = keyTable.length; --i >= 0;)

-		if (keyTable[i] != null)

-			newHashtable.put(keyTable[i], valueTable[i]);

-

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-/** Remove the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>char[]</CODE> the specified key

- */

-public void remove(char[] key) {

-	int index = hashCodeChar(key);

-	while (keyTable[index] != null) {

-		if (CharOperation.equals(keyTable[index], key)) {

-			valueTable[index] = 0;

-			keyTable[index] = null;

-			return;

-		}

-		index = (index + 1) % keyTable.length;

-	}

-}

-/**

- * Returns the key corresponding to the value. Returns null if the

- * receiver doesn't contain the value.

- * @param value int the value that we are looking for

- * @return Object

- */

-public char[] returnKeyFor(int value) {

-	for (int i = keyTable.length; i-- > 0;) {

-		if (valueTable[i] == value) {

-			return keyTable[i];

-		}

-	}

-	return null;

-}

-/**

- * Returns the number of elements contained in the hashtable.

- *

- * @return <CODE>int</CODE> The size of the table

- */

-public int size() {

-	return elementSize;

-}

-/**

- * Converts to a rather lengthy String.

- *

- * return String the ascii representation of the receiver

- */

-public String toString() {

-	int max = size();

-	StringBuffer buf = new StringBuffer();

-	buf.append("{"); //$NON-NLS-1$

-	for (int i = 0; i < max; ++i) {

-		if (keyTable[i] != null) {

-			buf.append(keyTable[i]).append("->").append(valueTable[i]); //$NON-NLS-1$

-		}

-		if (i < max) {

-			buf.append(", "); //$NON-NLS-1$

-		}

-	}

-	buf.append("}"); //$NON-NLS-1$

-	return buf.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CodeStream.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CodeStream.js
deleted file mode 100644
index 72463a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/CodeStream.js
+++ /dev/null
@@ -1,5479 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-import org.eclipse.wst.jsdt.internal.compiler.*;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.*;

-import org.eclipse.wst.jsdt.internal.compiler.flow.*;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-public class CodeStream implements OperatorIds, ClassFileConstants, Opcodes, BaseTypes, TypeConstants, TypeIds {

-

-	public static final boolean DEBUG = false;

-	

-	// It will be responsible for the following items.

-	// -> Tracking Max Stack.

-

-	public int stackMax; // Use Ints to keep from using extra bc when adding

-	public int stackDepth; // Use Ints to keep from using extra bc when adding

-	public int maxLocals;

-	public static final int LABELS_INCREMENT = 5;

-	public byte[] bCodeStream;

-	public int pcToSourceMapSize;

-	public int[] pcToSourceMap = new int[24];

-	public int lastEntryPC; // last entry recorded

-	public int[] lineSeparatorPositions;

-	public int position; // So when first set can be incremented

-	public int classFileOffset;

-	public int startingClassFileOffset; // I need to keep the starting point inside the byte array

-	public ConstantPool constantPool; // The constant pool used to generate bytecodes that need to store information into the constant pool

-	public ClassFile classFile; // The current classfile it is associated to.

-	// local variable attributes output

-	public static final int LOCALS_INCREMENT = 10;

-	public LocalVariableBinding[] locals = new LocalVariableBinding[LOCALS_INCREMENT];

-	static LocalVariableBinding[] noLocals = new LocalVariableBinding[LOCALS_INCREMENT];

-	public LocalVariableBinding[] visibleLocals = new LocalVariableBinding[LOCALS_INCREMENT];

-	static LocalVariableBinding[] noVisibleLocals = new LocalVariableBinding[LOCALS_INCREMENT];

-	int visibleLocalsCount;

-	public AbstractMethodDeclaration methodDeclaration;

-	public ExceptionLabel[] exceptionHandlers = new ExceptionLabel[LABELS_INCREMENT];

-	static ExceptionLabel[] noExceptionHandlers = new ExceptionLabel[LABELS_INCREMENT];

-	public int exceptionHandlersIndex;

-	public int exceptionHandlersCounter;

-	

-	public static FieldBinding[] ImplicitThis = new FieldBinding[] {};

-	public boolean generateLineNumberAttributes;

-	public boolean generateLocalVariableTableAttributes;

-	public boolean preserveUnusedLocals;

-	// store all the labels placed at the current position to be able to optimize

-	// a jump to the next bytecode.

-	public Label[] labels = new Label[LABELS_INCREMENT];

-	static Label[] noLabels = new Label[LABELS_INCREMENT];

-	public int countLabels;

-	public int allLocalsCounter;

-	public int maxFieldCount;

-	// to handle goto_w

-	public boolean wideMode = false;

-	public static final CompilationResult RESTART_IN_WIDE_MODE = new CompilationResult((char[])null, 0, 0, 0);

-	

-	// target level to manage different code generation between different target levels

-	private long targetLevel;

-	

-public CodeStream(ClassFile classFile, long targetLevel) {

-	this.targetLevel = targetLevel;

-	this.generateLineNumberAttributes = (classFile.produceDebugAttributes & CompilerOptions.Lines) != 0;

-	this.generateLocalVariableTableAttributes = (classFile.produceDebugAttributes & CompilerOptions.Vars) != 0;

-	if (this.generateLineNumberAttributes) {

-		this.lineSeparatorPositions = classFile.referenceBinding.scope.referenceCompilationUnit().compilationResult.lineSeparatorPositions;

-	}

-}

-final public void aaload() {

-	if (DEBUG) System.out.println(position + "\t\taaload"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_aaload;

-}

-final public void aastore() {

-	if (DEBUG) System.out.println(position + "\t\taastore"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_aastore;

-}

-final public void aconst_null() {

-	if (DEBUG) System.out.println(position + "\t\taconst_null"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax) {

-		stackMax = stackDepth;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_aconst_null;

-}

-public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {

-	// Required to fix 1PR0XVS: LFRE:WINNT - Compiler: variable table for method appears incorrect

-	if (!generateLocalVariableTableAttributes)

-		return;

-/*	if (initStateIndex == lastInitStateIndexWhenAddingInits)

-		return;

-	lastInitStateIndexWhenAddingInits = initStateIndex;

-	if (lastInitStateIndexWhenRemovingInits != initStateIndex){

-		lastInitStateIndexWhenRemovingInits = -2; // reinitialize remove index 

-		// remove(1)-add(1)-remove(1) -> ignore second remove

-		// remove(1)-add(2)-remove(1) -> perform second remove

-	}

-	

-*/	for (int i = 0; i < visibleLocalsCount; i++) {

-		LocalVariableBinding localBinding = visibleLocals[i];

-		if (localBinding != null) {

-			// Check if the local is definitely assigned

-			if ((initStateIndex != -1) && isDefinitelyAssigned(scope, initStateIndex, localBinding)) {

-				if ((localBinding.initializationCount == 0) || (localBinding.initializationPCs[((localBinding.initializationCount - 1) << 1) + 1] != -1)) {

-					/* There are two cases:

-					 * 1) there is no initialization interval opened ==> add an opened interval

-					 * 2) there is already some initialization intervals but the last one is closed ==> add an opened interval

-					 * An opened interval means that the value at localBinding.initializationPCs[localBinding.initializationCount - 1][1]

-					 * is equals to -1.

-					 * initializationPCs is a collection of pairs of int:

-					 * 	first value is the startPC and second value is the endPC. -1 one for the last value means that the interval

-					 * 	is not closed yet.

-					 */

-					localBinding.recordInitializationStartPC(position);

-				}

-			}

-		}

-	}

-}

-public void addLabel(Label aLabel) {

-	if (countLabels == labels.length)

-		System.arraycopy(labels, 0, labels = new Label[countLabels + LABELS_INCREMENT], 0, countLabels);

-	labels[countLabels++] = aLabel;

-}

-public void addVisibleLocalVariable(LocalVariableBinding localBinding) {

-	if (!generateLocalVariableTableAttributes)

-		return;

-

-	if (visibleLocalsCount >= visibleLocals.length)

-		System.arraycopy(visibleLocals, 0, visibleLocals = new LocalVariableBinding[visibleLocalsCount * 2], 0, visibleLocalsCount);

-	visibleLocals[visibleLocalsCount++] = localBinding;

-}

-final public void aload(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\taload:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals <= iArg) {

-		maxLocals = iArg + 1;

-	}

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_aload;

-		writeUnsignedShort(iArg);

-	} else {

-		// Don't need to use the wide bytecode

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_aload;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void aload_0() {

-	if (DEBUG) System.out.println(position + "\t\taload_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax) {

-		stackMax = stackDepth;

-	}

-	if (maxLocals == 0) {

-		maxLocals = 1;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_aload_0;

-}

-final public void aload_1() {

-	if (DEBUG) System.out.println(position + "\t\taload_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals <= 1) {

-		maxLocals = 2;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_aload_1;

-}

-final public void aload_2() {

-	if (DEBUG) System.out.println(position + "\t\taload_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals <= 2) {

-		maxLocals = 3;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_aload_2;

-}

-final public void aload_3() {

-	if (DEBUG) System.out.println(position + "\t\taload_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals <= 3) {

-		maxLocals = 4;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_aload_3;

-}

-public final void anewarray(TypeBinding typeBinding) {

-	if (DEBUG) System.out.println(position + "\t\tanewarray: " + typeBinding); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_anewarray;

-	writeUnsignedShort(constantPool.literalIndex(typeBinding));

-}

-final public void areturn() {

-	if (DEBUG) System.out.println(position + "\t\tareturn"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	// the stackDepth should be equal to 0 

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_areturn;

-}

-public void arrayAt(int typeBindingID) {

-	switch (typeBindingID) {

-		case T_int :

-			this.iaload();

-			break;

-		case T_byte :

-		case T_boolean :

-			this.baload();

-			break;

-		case T_short :

-			this.saload();

-			break;

-		case T_char :

-			this.caload();

-			break;

-		case T_long :

-			this.laload();

-			break;

-		case T_float :

-			this.faload();

-			break;

-		case T_double :

-			this.daload();

-			break;

-		default :

-			this.aaload();

-	}

-}

-public void arrayAtPut(int elementTypeID, boolean valueRequired) {

-	switch (elementTypeID) {

-		case T_int :

-			if (valueRequired)

-				dup_x2();

-			iastore();

-			break;

-		case T_byte :

-		case T_boolean :

-			if (valueRequired)

-				dup_x2();

-			bastore();

-			break;

-		case T_short :

-			if (valueRequired)

-				dup_x2();

-			sastore();

-			break;

-		case T_char :

-			if (valueRequired)

-				dup_x2();

-			castore();

-			break;

-		case T_long :

-			if (valueRequired)

-				dup2_x2();

-			lastore();

-			break;

-		case T_float :

-			if (valueRequired)

-				dup_x2();

-			fastore();

-			break;

-		case T_double :

-			if (valueRequired)

-				dup2_x2();

-			dastore();

-			break;

-		default :

-			if (valueRequired)

-				dup_x2();

-			aastore();

-	}

-}

-final public void arraylength() {

-	if (DEBUG) System.out.println(position + "\t\tarraylength"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_arraylength;

-}

-final public void astore(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tastore:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= iArg) {

-		maxLocals = iArg + 1;

-	}

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position+=2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_astore;

-		writeUnsignedShort(iArg);

-	} else {

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position+=2;

-		bCodeStream[classFileOffset++] = OPC_astore;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void astore_0() {

-	if (DEBUG) System.out.println(position + "\t\tastore_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals == 0) {

-		maxLocals = 1;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_astore_0;

-}

-final public void astore_1() {

-	if (DEBUG) System.out.println(position + "\t\tastore_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 1) {

-		maxLocals = 2;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_astore_1;

-}

-final public void astore_2() {

-	if (DEBUG) System.out.println(position + "\t\tastore_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 2) {

-		maxLocals = 3;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_astore_2;

-}

-final public void astore_3() {

-	if (DEBUG) System.out.println(position + "\t\tastore_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 3) {

-		maxLocals = 4;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_astore_3;

-}

-final public void athrow() {

-	if (DEBUG) System.out.println(position + "\t\tathrow"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_athrow;

-}

-final public void baload() {

-	if (DEBUG) System.out.println(position + "\t\tbaload"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_baload;

-}

-final public void bastore() {

-	if (DEBUG) System.out.println(position + "\t\tbastore"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_bastore;

-}

-final public void bipush(byte b) {

-	if (DEBUG) System.out.println(position + "\t\tbipush "+b); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 1 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position += 2;

-	bCodeStream[classFileOffset++] = OPC_bipush;

-	bCodeStream[classFileOffset++] = b;

-}

-final public void caload() {

-	if (DEBUG) System.out.println(position + "\t\tcaload"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_caload;

-}

-final public void castore() {

-	if (DEBUG) System.out.println(position + "\t\tcastore"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_castore;

-}

-public final void checkcast(TypeBinding typeBinding) {

-	if (DEBUG) System.out.println(position + "\t\tcheckcast:"+typeBinding); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_checkcast;

-	writeUnsignedShort(constantPool.literalIndex(typeBinding));

-}

-final public void d2f() {

-	if (DEBUG) System.out.println(position + "\t\td2f"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_d2f;

-}

-final public void d2i() {

-	if (DEBUG) System.out.println(position + "\t\td2i"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_d2i;

-}

-final public void d2l() {

-	if (DEBUG) System.out.println(position + "\t\td2l"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_d2l;

-}

-final public void dadd() {

-	if (DEBUG) System.out.println(position + "\t\tdadd"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dadd;

-}

-final public void daload() {

-	if (DEBUG) System.out.println(position + "\t\tdaload"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_daload;

-}

-final public void dastore() {

-	if (DEBUG) System.out.println(position + "\t\tdastore"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 4;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dastore;

-}

-final public void dcmpg() {

-	if (DEBUG) System.out.println(position + "\t\tdcmpg"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dcmpg;

-}

-final public void dcmpl() {

-	if (DEBUG) System.out.println(position + "\t\tdcmpl"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dcmpl;

-}

-final public void dconst_0() {

-	if (DEBUG) System.out.println(position + "\t\tdconst_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dconst_0;

-}

-final public void dconst_1() {

-	if (DEBUG) System.out.println(position + "\t\tdconst_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dconst_1;

-}

-final public void ddiv() {

-	if (DEBUG) System.out.println(position + "\t\tddiv"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ddiv;

-}

-public void decrStackSize(int offset) {

-	stackDepth -= offset;

-}

-final public void dload(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tdload:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals < iArg + 2) {

-		maxLocals = iArg + 2; // + 2 because it is a double

-	}

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_dload;

-		writeUnsignedShort(iArg);

-	} else {

-		// Don't need to use the wide bytecode

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_dload;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void dload_0() {

-	if (DEBUG) System.out.println(position + "\t\tdload_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals < 2) {

-		maxLocals = 2;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dload_0;

-}

-final public void dload_1() {

-	if (DEBUG) System.out.println(position + "\t\tdload_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals < 3) {

-		maxLocals = 3;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dload_1;

-}

-final public void dload_2() {

-	if (DEBUG) System.out.println(position + "\t\tdload_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals < 4) {

-		maxLocals = 4;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dload_2;

-}

-final public void dload_3() {

-	if (DEBUG) System.out.println(position + "\t\tdload_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (maxLocals < 5) {

-		maxLocals = 5;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dload_3;

-}

-final public void dmul() {

-	if (DEBUG) System.out.println(position + "\t\tdmul"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dmul;

-}

-final public void dneg() {

-	if (DEBUG) System.out.println(position + "\t\tdneg"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dneg;

-}

-final public void drem() {

-	if (DEBUG) System.out.println(position + "\t\tdrem"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_drem;

-}

-final public void dreturn() {

-	if (DEBUG) System.out.println(position + "\t\tdreturn"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	// the stackDepth should be equal to 0 

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dreturn;

-}

-final public void dstore(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tdstore:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals <= iArg + 1) {

-		maxLocals = iArg + 2;

-	}

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_dstore;

-		writeUnsignedShort(iArg);

-	} else {

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_dstore;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void dstore_0() {

-	if (DEBUG) System.out.println(position + "\t\tdstore_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals < 2) {

-		maxLocals = 2;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dstore_0;

-}

-final public void dstore_1() {

-	if (DEBUG) System.out.println(position + "\t\tdstore_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals < 3) {

-		maxLocals = 3;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dstore_1;

-}

-final public void dstore_2() {

-	if (DEBUG) System.out.println(position + "\t\tdstore_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals < 4) {

-		maxLocals = 4;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dstore_2;

-}

-final public void dstore_3() {

-	if (DEBUG) System.out.println(position + "\t\tdstore_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals < 5) {

-		maxLocals = 5;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dstore_3;

-}

-final public void dsub() {

-	if (DEBUG) System.out.println(position + "\t\tdsub"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dsub;

-}

-final public void dup() {

-	if (DEBUG) System.out.println(position + "\t\tdup"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax) {

-		stackMax = stackDepth;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dup;

-}

-final public void dup_x1() {

-	if (DEBUG) System.out.println(position + "\t\tdup_x1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dup_x1;

-}

-final public void dup_x2() {

-	if (DEBUG) System.out.println(position + "\t\tdup_x2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dup_x2;

-}

-final public void dup2() {

-	if (DEBUG) System.out.println(position + "\t\tdup2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dup2;

-}

-final public void dup2_x1() {

-	if (DEBUG) System.out.println(position + "\t\tdup2_x1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dup2_x1;

-}

-final public void dup2_x2() {

-	if (DEBUG) System.out.println(position + "\t\tdup2_x2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_dup2_x2;

-}

-public void exitUserScope(BlockScope blockScope) {

-	// mark all the scope's locals as loosing their definite assignment

-

-	if (!generateLocalVariableTableAttributes)

-		return;

-	for (int i = 0; i < visibleLocalsCount; i++) {

-		LocalVariableBinding visibleLocal = visibleLocals[i];

-		if ((visibleLocal != null) && (visibleLocal.declaringScope == blockScope)) { 

-			// there maybe some some preserved locals never initialized

-			if (visibleLocal.initializationCount > 0){

-				visibleLocals[i].recordInitializationEndPC(position);

-			}

-			visibleLocals[i] = null; // this variable is no longer visible afterwards

-		}

-	}

-}

-final public void f2d() {

-	if (DEBUG) System.out.println(position + "\t\tf2d"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_f2d;

-}

-final public void f2i() {

-	if (DEBUG) System.out.println(position + "\t\tf2i"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_f2i;

-}

-final public void f2l() {

-	if (DEBUG) System.out.println(position + "\t\tf2l"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_f2l;

-}

-final public void fadd() {

-	if (DEBUG) System.out.println(position + "\t\tfadd"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fadd;

-}

-final public void faload() {

-	if (DEBUG) System.out.println(position + "\t\tfaload"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_faload;

-}

-final public void fastore() {

-	if (DEBUG) System.out.println(position + "\t\tfaload"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fastore;

-}

-final public void fcmpg() {

-	if (DEBUG) System.out.println(position + "\t\tfcmpg"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fcmpg;

-}

-final public void fcmpl() {

-	if (DEBUG) System.out.println(position + "\t\tfcmpl"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fcmpl;

-}

-final public void fconst_0() {

-	if (DEBUG) System.out.println(position + "\t\tfconst_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fconst_0;

-}

-final public void fconst_1() {

-	if (DEBUG) System.out.println(position + "\t\tfconst_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fconst_1;

-}

-final public void fconst_2() {

-	if (DEBUG) System.out.println(position + "\t\tfconst_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fconst_2;

-}

-final public void fdiv() {

-	if (DEBUG) System.out.println(position + "\t\tfdiv"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fdiv;

-}

-final public void fload(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tfload:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= iArg) {

-		maxLocals = iArg + 1;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_fload;

-		writeUnsignedShort(iArg);

-	} else {

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_fload;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void fload_0() {

-	if (DEBUG) System.out.println(position + "\t\tfload_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals == 0) {

-		maxLocals = 1;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fload_0;

-}

-final public void fload_1() {

-	if (DEBUG) System.out.println(position + "\t\tfload_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= 1) {

-		maxLocals = 2;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fload_1;

-}

-final public void fload_2() {

-	if (DEBUG) System.out.println(position + "\t\tfload_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= 2) {

-		maxLocals = 3;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fload_2;

-}

-final public void fload_3() {

-	if (DEBUG) System.out.println(position + "\t\tfload_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= 3) {

-		maxLocals = 4;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fload_3;

-}

-final public void fmul() {

-	if (DEBUG) System.out.println(position + "\t\tfmul"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fmul;

-}

-final public void fneg() {

-	if (DEBUG) System.out.println(position + "\t\tfneg"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fneg;

-}

-final public void frem() {

-	if (DEBUG) System.out.println(position + "\t\tfrem"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_frem;

-}

-final public void freturn() {

-	if (DEBUG) System.out.println(position + "\t\tfreturn"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	// the stackDepth should be equal to 0 

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_freturn;

-}

-final public void fstore(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tfstore:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= iArg) {

-		maxLocals = iArg + 1;

-	}

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_fstore;

-		writeUnsignedShort(iArg);

-	} else {

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_fstore;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void fstore_0() {

-	if (DEBUG) System.out.println(position + "\t\tfstore_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals == 0) {

-		maxLocals = 1;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fstore_0;

-}

-final public void fstore_1() {

-	if (DEBUG) System.out.println(position + "\t\tfstore_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 1) {

-		maxLocals = 2;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fstore_1;

-}

-final public void fstore_2() {

-	if (DEBUG) System.out.println(position + "\t\tfstore_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 2) {

-		maxLocals = 3;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fstore_2;

-}

-final public void fstore_3() {

-	if (DEBUG) System.out.println(position + "\t\tfstore_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 3) {

-		maxLocals = 4;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fstore_3;

-}

-final public void fsub() {

-	if (DEBUG) System.out.println(position + "\t\tfsub"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_fsub;

-}

-/**

- * Macro for building a class descriptor object

- */

-public void generateClassLiteralAccessForType(TypeBinding accessedType, FieldBinding syntheticFieldBinding) {

-	Label endLabel;

-	ExceptionLabel anyExceptionHandler;

-	int saveStackSize;

-	if (accessedType.isBaseType() && accessedType != NullBinding) {

-		this.getTYPE(accessedType.id);

-		return;

-	}

-

-	if (this.targetLevel >= ClassFileConstants.JDK1_5) {

-		// generation using the new ldc_w bytecode

-		this.ldc(accessedType);

-	} else {

-		endLabel = new Label(this);

-		if (syntheticFieldBinding != null) { // non interface case

-			this.getstatic(syntheticFieldBinding);

-			this.dup();

-			this.ifnonnull(endLabel);

-			this.pop();

-		}

-

-		/* Macro for building a class descriptor object... using or not a field cache to store it into...

-		this sequence is responsible for building the actual class descriptor.

-		

-		If the fieldCache is set, then it is supposed to be the body of a synthetic access method

-		factoring the actual descriptor creation out of the invocation site (saving space).

-		If the fieldCache is nil, then we are dumping the bytecode on the invocation site, since

-		we have no way to get a hand on the field cache to do better. */

-	

-	

-		// Wrap the code in an exception handler to convert a ClassNotFoundException into a NoClassDefError

-	

-		anyExceptionHandler = new ExceptionLabel(this, BaseTypes.NullBinding /* represents ClassNotFoundException*/);

-		this.ldc(accessedType == BaseTypes.NullBinding ? "java.lang.Object" : String.valueOf(accessedType.constantPoolName()).replace('/', '.')); //$NON-NLS-1$

-		this.invokeClassForName();

-	

-		/* See https://bugs.eclipse.org/bugs/show_bug.cgi?id=37565

-		if (accessedType == BaseTypes.NullBinding) {

-			this.ldc("java.lang.Object"); //$NON-NLS-1$

-		} else if (accessedType.isArrayType()) {

-			this.ldc(String.valueOf(accessedType.constantPoolName()).replace('/', '.'));

-		} else {

-			// we make it an array type (to avoid class initialization)

-			this.ldc("[L" + String.valueOf(accessedType.constantPoolName()).replace('/', '.') + ";"); //$NON-NLS-1$//$NON-NLS-2$

-		}

-		this.invokeClassForName();

-		if (!accessedType.isArrayType()) { // extract the component type, which doesn't initialize the class

-			this.invokeJavaLangClassGetComponentType();

-		}	

-		*/

-		/* We need to protect the runtime code from binary inconsistencies

-		in case the accessedType is missing, the ClassNotFoundException has to be converted

-		into a NoClassDefError(old ex message), we thus need to build an exception handler for this one. */

-		anyExceptionHandler.placeEnd();

-	

-		if (syntheticFieldBinding != null) { // non interface case

-			this.dup();

-			this.putstatic(syntheticFieldBinding);

-		}

-		this.goto_(endLabel);

-	

-	

-		// Generate the body of the exception handler

-		saveStackSize = stackDepth;

-		stackDepth = 1;

-		/* ClassNotFoundException on stack -- the class literal could be doing more things

-		on the stack, which means that the stack may not be empty at this point in the

-		above code gen. So we save its state and restart it from 1. */

-	

-		anyExceptionHandler.place();

-	

-		// Transform the current exception, and repush and throw a 

-		// NoClassDefFoundError(ClassNotFound.getMessage())

-	

-		this.newNoClassDefFoundError();

-		this.dup_x1();

-		this.swap();

-	

-		// Retrieve the message from the old exception

-		this.invokeThrowableGetMessage();

-	

-		// Send the constructor taking a message string as an argument

-		this.invokeNoClassDefFoundErrorStringConstructor();

-		this.athrow();

-		stackDepth = saveStackSize;

-		endLabel.place();

-	}

-}

-/**

- * This method generates the code attribute bytecode

- */

-final public void generateCodeAttributeForProblemMethod(String problemMessage) {

-	newJavaLangError();

-	dup();

-	ldc(problemMessage);

-	invokeJavaLangErrorConstructor();

-	athrow();

-}

-public void generateConstant(Constant constant, int implicitConversionCode) {

-	int targetTypeID = implicitConversionCode >> 4;

-	switch (targetTypeID) {

-		case T_boolean :

-			generateInlinedValue(constant.booleanValue());

-			break;

-		case T_char :

-			generateInlinedValue(constant.charValue());

-			break;

-		case T_byte :

-			generateInlinedValue(constant.byteValue());

-			break;

-		case T_short :

-			generateInlinedValue(constant.shortValue());

-			break;

-		case T_int :

-			generateInlinedValue(constant.intValue());

-			break;

-		case T_long :

-			generateInlinedValue(constant.longValue());

-			break;

-		case T_float :

-			generateInlinedValue(constant.floatValue());

-			break;

-		case T_double :

-			generateInlinedValue(constant.doubleValue());

-			break;

-		default : //String or Object

-			ldc(constant.stringValue());

-	}

-}

-/**

- * Generates the sequence of instructions which will perform the conversion of the expression

- * on the stack into a different type (e.g. long l = someInt; --> i2l must be inserted).

- * @param implicitConversionCode int

- */

-public void generateImplicitConversion(int implicitConversionCode) {

-	switch (implicitConversionCode) {

-		case Float2Char :

-			this.f2i();

-			this.i2c();

-			break;

-		case Double2Char :

-			this.d2i();

-			this.i2c();

-			break;

-		case Int2Char :

-		case Short2Char :

-		case Byte2Char :

-			this.i2c();

-			break;

-		case Long2Char :

-			this.l2i();

-			this.i2c();

-			break;

-		case Char2Float :

-		case Short2Float :

-		case Int2Float :

-		case Byte2Float :

-			this.i2f();

-			break;

-		case Double2Float :

-			this.d2f();

-			break;

-		case Long2Float :

-			this.l2f();

-			break;

-		case Float2Byte :

-			this.f2i();

-			this.i2b();

-			break;

-		case Double2Byte :

-			this.d2i();

-			this.i2b();

-			break;

-		case Int2Byte :

-		case Short2Byte :

-		case Char2Byte :

-			this.i2b();

-			break;

-		case Long2Byte :

-			this.l2i();

-			this.i2b();

-			break;

-		case Byte2Double :

-		case Char2Double :

-		case Short2Double :

-		case Int2Double :

-			this.i2d();

-			break;

-		case Float2Double :

-			this.f2d();

-			break;

-		case Long2Double :

-			this.l2d();

-			break;

-		case Byte2Short :

-		case Char2Short :

-		case Int2Short :

-			this.i2s();

-			break;

-		case Double2Short :

-			this.d2i();

-			this.i2s();

-			break;

-		case Long2Short :

-			this.l2i();

-			this.i2s();

-			break;

-		case Float2Short :

-			this.f2i();

-			this.i2s();

-			break;

-		case Double2Int :

-			this.d2i();

-			break;

-		case Float2Int :

-			this.f2i();

-			break;

-		case Long2Int :

-			this.l2i();

-			break;

-		case Int2Long :

-		case Char2Long :

-		case Byte2Long :

-		case Short2Long :

-			this.i2l();

-			break;

-		case Double2Long :

-			this.d2l();

-			break;

-		case Float2Long :

-			this.f2l();

-	}

-}

-public void generateInlinedValue(byte inlinedValue) {

-	switch (inlinedValue) {

-		case -1 :

-			this.iconst_m1();

-			break;

-		case 0 :

-			this.iconst_0();

-			break;

-		case 1 :

-			this.iconst_1();

-			break;

-		case 2 :

-			this.iconst_2();

-			break;

-		case 3 :

-			this.iconst_3();

-			break;

-		case 4 :

-			this.iconst_4();

-			break;

-		case 5 :

-			this.iconst_5();

-			break;

-		default :

-			if ((-128 <= inlinedValue) && (inlinedValue <= 127)) {

-				this.bipush(inlinedValue);

-				return;

-			}

-	}

-}

-public void generateInlinedValue(char inlinedValue) {

-	switch (inlinedValue) {

-		case 0 :

-			this.iconst_0();

-			break;

-		case 1 :

-			this.iconst_1();

-			break;

-		case 2 :

-			this.iconst_2();

-			break;

-		case 3 :

-			this.iconst_3();

-			break;

-		case 4 :

-			this.iconst_4();

-			break;

-		case 5 :

-			this.iconst_5();

-			break;

-		default :

-			if ((6 <= inlinedValue) && (inlinedValue <= 127)) {

-				this.bipush((byte) inlinedValue);

-				return;

-			}

-			if ((128 <= inlinedValue) && (inlinedValue <= 32767)) {

-				this.sipush(inlinedValue);

-				return;

-			}

-			this.ldc(inlinedValue);

-	}

-}

-public void generateInlinedValue(double inlinedValue) {

-	if (inlinedValue == 0.0) {

-		if (Double.doubleToLongBits(inlinedValue) != 0L)

-			this.ldc2_w(inlinedValue);

-		else

-			this.dconst_0();

-		return;

-	}

-	if (inlinedValue == 1.0) {

-		this.dconst_1();

-		return;

-	}

-	this.ldc2_w(inlinedValue);

-}

-public void generateInlinedValue(float inlinedValue) {

-	if (inlinedValue == 0.0f) {

-		if (Float.floatToIntBits(inlinedValue) != 0)

-			this.ldc(inlinedValue);

-		else

-			this.fconst_0();

-		return;

-	}

-	if (inlinedValue == 1.0f) {

-		this.fconst_1();

-		return;

-	}

-	if (inlinedValue == 2.0f) {

-		this.fconst_2();

-		return;

-	}

-	this.ldc(inlinedValue);

-}

-public void generateInlinedValue(int inlinedValue) {

-	switch (inlinedValue) {

-		case -1 :

-			this.iconst_m1();

-			break;

-		case 0 :

-			this.iconst_0();

-			break;

-		case 1 :

-			this.iconst_1();

-			break;

-		case 2 :

-			this.iconst_2();

-			break;

-		case 3 :

-			this.iconst_3();

-			break;

-		case 4 :

-			this.iconst_4();

-			break;

-		case 5 :

-			this.iconst_5();

-			break;

-		default :

-			if ((-128 <= inlinedValue) && (inlinedValue <= 127)) {

-				this.bipush((byte) inlinedValue);

-				return;

-			}

-			if ((-32768 <= inlinedValue) && (inlinedValue <= 32767)) {

-				this.sipush(inlinedValue);

-				return;

-			}

-			this.ldc(inlinedValue);

-	}

-}

-public void generateInlinedValue(long inlinedValue) {

-	if (inlinedValue == 0) {

-		this.lconst_0();

-		return;

-	}

-	if (inlinedValue == 1) {

-		this.lconst_1();

-		return;

-	}

-	this.ldc2_w(inlinedValue);

-}

-public void generateInlinedValue(short inlinedValue) {

-	switch (inlinedValue) {

-		case -1 :

-			this.iconst_m1();

-			break;

-		case 0 :

-			this.iconst_0();

-			break;

-		case 1 :

-			this.iconst_1();

-			break;

-		case 2 :

-			this.iconst_2();

-			break;

-		case 3 :

-			this.iconst_3();

-			break;

-		case 4 :

-			this.iconst_4();

-			break;

-		case 5 :

-			this.iconst_5();

-			break;

-		default :

-			if ((-128 <= inlinedValue) && (inlinedValue <= 127)) {

-				this.bipush((byte) inlinedValue);

-				return;

-			}

-			this.sipush(inlinedValue);

-	}

-}

-public void generateInlinedValue(boolean inlinedValue) {

-	if (inlinedValue)

-		this.iconst_1();

-	else

-		this.iconst_0();

-}

-public void generateOuterAccess(Object[] mappingSequence, ASTNode invocationSite, Binding target, Scope scope) {

-	if (mappingSequence == null) {

-		if (target instanceof LocalVariableBinding) {

-			scope.problemReporter().needImplementation(); //TODO (philippe) should improve local emulation failure reporting

-		} else {

-			scope.problemReporter().noSuchEnclosingInstance((ReferenceBinding)target, invocationSite, false);

-		}

-		return;

-	}

-	if (mappingSequence == BlockScope.NoEnclosingInstanceInConstructorCall) {

-		scope.problemReporter().noSuchEnclosingInstance((ReferenceBinding)target, invocationSite, true);

-		return;

-	} else if (mappingSequence == BlockScope.NoEnclosingInstanceInStaticContext) {

-		scope.problemReporter().noSuchEnclosingInstance((ReferenceBinding)target, invocationSite, false);

-		return;

-	}

-	

-	if (mappingSequence == BlockScope.EmulationPathToImplicitThis) {

-		this.aload_0();

-		return;

-	} else if (mappingSequence[0] instanceof FieldBinding) {

-		FieldBinding fieldBinding = (FieldBinding) mappingSequence[0];

-		this.aload_0();

-		this.getfield(fieldBinding);

-	} else {

-		load((LocalVariableBinding) mappingSequence[0]);

-	}

-	for (int i = 1, length = mappingSequence.length; i < length; i++) {

-		if (mappingSequence[i] instanceof FieldBinding) {

-			FieldBinding fieldBinding = (FieldBinding) mappingSequence[i];

-			this.getfield(fieldBinding);

-		} else {

-			this.invokestatic((MethodBinding) mappingSequence[i]);

-		}

-	}

-}

-

-/**

- * The equivalent code performs a string conversion:

- *

- * @param blockScope the given blockScope

- * @param oper1 the first expression

- * @param oper2 the second expression

- */

-public void generateStringConcatenationAppend(BlockScope blockScope, Expression oper1, Expression oper2) {

-	int pc;

-	if (oper1 == null) {

-		/* Operand is already on the stack, and maybe nil:

-		note type1 is always to  java.lang.String here.*/

-		this.newStringContatenation();

-		this.dup_x1();

-		this.swap();

-		// If argument is reference type, need to transform it 

-		// into a string (handles null case)

-		this.invokeStringValueOf(T_Object);

-		this.invokeStringConcatenationStringConstructor();

-	} else {

-		pc = position;

-		oper1.generateOptimizedStringConcatenationCreation(blockScope, this, oper1.implicitConversion & 0xF);

-		this.recordPositionsFrom(pc, oper1.sourceStart);

-	}

-	pc = position;

-	oper2.generateOptimizedStringConcatenation(blockScope, this, oper2.implicitConversion & 0xF);

-	this.recordPositionsFrom(pc, oper2.sourceStart);

-	this.invokeStringConcatenationToString();

-}

-/**

- * Code responsible to generate the suitable code to supply values for the synthetic enclosing

- * instance arguments of a constructor invocation of a nested type.

- */

-public void generateSyntheticEnclosingInstanceValues(

-		BlockScope currentScope, 

-		ReferenceBinding targetType, 

-		Expression enclosingInstance, 

-		ASTNode invocationSite) {

-

-	// supplying enclosing instance for the anonymous type's superclass

-	ReferenceBinding checkedTargetType = targetType.isAnonymousType() ? targetType.superclass() : targetType;

-	boolean hasExtraEnclosingInstance = enclosingInstance != null;

-	if (hasExtraEnclosingInstance 

-			&& (!checkedTargetType.isNestedType() || checkedTargetType.isStatic())) {

-		currentScope.problemReporter().unnecessaryEnclosingInstanceSpecification(enclosingInstance, checkedTargetType);

-		return;

-	}

-

-	// perform some emulation work in case there is some and we are inside a local type only

-	ReferenceBinding[] syntheticArgumentTypes;

-	if ((syntheticArgumentTypes = targetType.syntheticEnclosingInstanceTypes()) != null) {

-

-		ReferenceBinding targetEnclosingType = checkedTargetType.enclosingType();

-		boolean complyTo14 = currentScope.environment().options.complianceLevel >= ClassFileConstants.JDK1_4;

-		// deny access to enclosing instance argument for allocation and super constructor call (if 1.4)

-		boolean ignoreEnclosingArgInConstructorCall = invocationSite instanceof AllocationExpression

-					|| (complyTo14 && ((invocationSite instanceof ExplicitConstructorCall && ((ExplicitConstructorCall)invocationSite).isSuperAccess())));

-						

-		for (int i = 0, max = syntheticArgumentTypes.length; i < max; i++) {

-			ReferenceBinding syntheticArgType = syntheticArgumentTypes[i];

-			if (hasExtraEnclosingInstance && syntheticArgType == targetEnclosingType) {

-				hasExtraEnclosingInstance = false;

-				enclosingInstance.generateCode(currentScope, this, true);

-				if (complyTo14){

-					dup();

-					invokeObjectGetClass(); // will perform null check

-					pop();

-				}

-			} else {

-				Object[] emulationPath = currentScope.getEmulationPath(

-						syntheticArgType, 

-						false /*not only exact match (that is, allow compatible)*/,

-						ignoreEnclosingArgInConstructorCall);

-				this.generateOuterAccess(emulationPath, invocationSite, syntheticArgType, currentScope);

-			}

-		}

-		if (hasExtraEnclosingInstance){

-			currentScope.problemReporter().unnecessaryEnclosingInstanceSpecification(enclosingInstance, checkedTargetType);

-		}

-	}

-}

-

-/**

- * Code responsible to generate the suitable code to supply values for the synthetic outer local

- * variable arguments of a constructor invocation of a nested type.

- * (bug 26122) - synthetic values for outer locals must be passed after user arguments, e.g. new X(i = 1){}

- */

-public void generateSyntheticOuterArgumentValues(BlockScope currentScope, ReferenceBinding targetType, ASTNode invocationSite) {

-

-	// generate the synthetic outer arguments then

-	SyntheticArgumentBinding syntheticArguments[];

-	if ((syntheticArguments = targetType.syntheticOuterLocalVariables()) != null) {

-		for (int i = 0, max = syntheticArguments.length; i < max; i++) {

-			LocalVariableBinding targetVariable = syntheticArguments[i].actualOuterLocalVariable;

-			VariableBinding[] emulationPath = currentScope.getEmulationPath(targetVariable);

-			this.generateOuterAccess(emulationPath, invocationSite, targetVariable, currentScope);

-		}

-	}

-}

-

-/**

- * @param accessBinding the access method binding to generate

- */

-public void generateSyntheticBodyForConstructorAccess(SyntheticAccessMethodBinding accessBinding) {

-

-	initializeMaxLocals(accessBinding);

-

-	MethodBinding constructorBinding = accessBinding.targetMethod;

-	TypeBinding[] parameters = constructorBinding.parameters;

-	int length = parameters.length;

-	int resolvedPosition = 1;

-	this.aload_0();

-	if (constructorBinding.declaringClass.isNestedType()) {

-		NestedTypeBinding nestedType = (NestedTypeBinding) constructorBinding.declaringClass;

-		SyntheticArgumentBinding[] syntheticArguments = nestedType.syntheticEnclosingInstances();

-		for (int i = 0; i < (syntheticArguments == null ? 0 : syntheticArguments.length); i++) {

-			TypeBinding type;

-			load((type = syntheticArguments[i].type), resolvedPosition);

-			if ((type == DoubleBinding) || (type == LongBinding))

-				resolvedPosition += 2;

-			else

-				resolvedPosition++;

-		}

-	}

-	for (int i = 0; i < length; i++) {

-		load(parameters[i], resolvedPosition);

-		if ((parameters[i] == DoubleBinding) || (parameters[i] == LongBinding))

-			resolvedPosition += 2;

-		else

-			resolvedPosition++;

-	}

-	

-	if (constructorBinding.declaringClass.isNestedType()) {

-		NestedTypeBinding nestedType = (NestedTypeBinding) constructorBinding.declaringClass;

-		SyntheticArgumentBinding[] syntheticArguments = nestedType.syntheticOuterLocalVariables();

-		for (int i = 0; i < (syntheticArguments == null ? 0 : syntheticArguments.length); i++) {

-			TypeBinding type;

-			load((type = syntheticArguments[i].type), resolvedPosition);

-			if ((type == DoubleBinding) || (type == LongBinding))

-				resolvedPosition += 2;

-			else

-				resolvedPosition++;

-		}

-	}

-	this.invokespecial(constructorBinding);

-	this.return_();

-}

-public void generateSyntheticBodyForFieldReadAccess(SyntheticAccessMethodBinding accessBinding) {

-	initializeMaxLocals(accessBinding);

-	FieldBinding fieldBinding = accessBinding.targetReadField;

-	TypeBinding type;

-	if (fieldBinding.isStatic())

-		this.getstatic(fieldBinding);

-	else {

-		this.aload_0();

-		this.getfield(fieldBinding);

-	}

-	if ((type = fieldBinding.type).isBaseType()) {

-		if (type == IntBinding)

-			this.ireturn();

-		else

-			if (type == FloatBinding)

-				this.freturn();

-			else

-				if (type == LongBinding)

-					this.lreturn();

-				else

-					if (type == DoubleBinding)

-						this.dreturn();

-					else

-						this.ireturn();

-	} else

-		this.areturn();

-}

-public void generateSyntheticBodyForFieldWriteAccess(SyntheticAccessMethodBinding accessBinding) {

-	initializeMaxLocals(accessBinding);

-	FieldBinding fieldBinding = accessBinding.targetWriteField;

-	if (fieldBinding.isStatic()) {

-		load(fieldBinding.type, 0);

-		this.putstatic(fieldBinding);

-	} else {

-		this.aload_0();

-		load(fieldBinding.type, 1);

-		this.putfield(fieldBinding);

-	}

-	this.return_();

-}

-public void generateSyntheticBodyForMethodAccess(SyntheticAccessMethodBinding accessBinding) {

-

-	initializeMaxLocals(accessBinding);

-	MethodBinding methodBinding = accessBinding.targetMethod;

-	TypeBinding[] parameters = methodBinding.parameters;

-	int length = parameters.length;

-	TypeBinding[] arguments = accessBinding.accessType == SyntheticAccessMethodBinding.BridgeMethodAccess 

-													? accessBinding.parameters

-													: null;

-	int resolvedPosition;

-	if (methodBinding.isStatic())

-		resolvedPosition = 0;

-	else {

-		this.aload_0();

-		resolvedPosition = 1;

-	}

-	for (int i = 0; i < length; i++) {

-	    TypeBinding parameter = parameters[i];

-	    if (arguments != null) { // for bridge methods

-		    TypeBinding argument = arguments[i];

-			load(argument, resolvedPosition);

-			if (argument != parameter) 

-			    checkcast(parameter);

-	    } else {

-			load(parameter, resolvedPosition);

-		}

-		if ((parameter == DoubleBinding) || (parameter == LongBinding))

-			resolvedPosition += 2;

-		else

-			resolvedPosition++;

-	}

-	TypeBinding type;

-	if (methodBinding.isStatic())

-		this.invokestatic(methodBinding);

-	else {

-		if (methodBinding.isConstructor()

-			|| methodBinding.isPrivate()

-			// qualified super "X.super.foo()" targets methods from superclass

-			|| accessBinding.accessType == SyntheticAccessMethodBinding.SuperMethodAccess){

-			this.invokespecial(methodBinding);

-		} else {

-			if (methodBinding.declaringClass.isInterface()){

-				this.invokeinterface(methodBinding);

-			} else {

-				this.invokevirtual(methodBinding);

-			}

-		}

-	}

-	if ((type = methodBinding.returnType).isBaseType())

-		if (type == VoidBinding)

-			this.return_();

-		else

-			if (type == IntBinding)

-				this.ireturn();

-			else

-				if (type == FloatBinding)

-					this.freturn();

-				else

-					if (type == LongBinding)

-						this.lreturn();

-					else

-						if (type == DoubleBinding)

-							this.dreturn();

-						else

-							this.ireturn();

-	else

-		this.areturn();

-}

-final public byte[] getContents() {

-	byte[] contents;

-	System.arraycopy(bCodeStream, 0, contents = new byte[position], 0, position);

-	return contents;

-}

-final public void getfield(FieldBinding fieldBinding) {

-	if (DEBUG) System.out.println(position + "\t\tgetfield:"+fieldBinding); //$NON-NLS-1$

-	countLabels = 0;

-	if ((fieldBinding.type.id == T_double) || (fieldBinding.type.id == T_long)) {

-		if (++stackDepth > stackMax)

-			stackMax = stackDepth;

-	}

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_getfield;

-	writeUnsignedShort(constantPool.literalIndex(fieldBinding));

-}

-final public void getstatic(FieldBinding fieldBinding) {

-	if (DEBUG) System.out.println(position + "\t\tgetstatic:"+fieldBinding); //$NON-NLS-1$

-	countLabels = 0;

-	if ((fieldBinding.type.id == T_double) || (fieldBinding.type.id == T_long))

-		stackDepth += 2;

-	else

-		stackDepth += 1;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_getstatic;

-	writeUnsignedShort(constantPool.literalIndex(fieldBinding));

-}

-public void getTYPE(int baseTypeID) {

-	countLabels = 0;

-	if (++stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_getstatic;

-	switch (baseTypeID) {

-		case T_byte :

-			// getstatic: java.lang.Byte.TYPE			

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Byte.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangByteTYPE());

-			break;

-		case T_short :

-			// getstatic: java.lang.Short.TYPE			

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Short.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangShortTYPE());

-			break;

-		case T_char :

-			// getstatic: java.lang.Character.TYPE			

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Character.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangCharacterTYPE());

-			break;

-		case T_int :

-			// getstatic: java.lang.Integer.TYPE			

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Integer.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangIntegerTYPE());

-			break;

-		case T_long :

-			// getstatic: java.lang.Long.TYPE			

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Long.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangLongTYPE());

-			break;

-		case T_float :

-			// getstatic: java.lang.Float.TYPE			

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Float.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangFloatTYPE());

-			break;

-		case T_double :

-			// getstatic: java.lang.Double.TYPE			

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Double.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangDoubleTYPE());

-			break;

-		case T_boolean :

-			// getstatic: java.lang.Boolean.TYPE			

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Boolean.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangBooleanTYPE());

-			break;

-		case T_void :

-			// getstatic: java.lang.Void.TYPE

-			if (DEBUG) System.out.println(position + "\t\tgetstatic: java.lang.Void.TYPE"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangVoidTYPE());

-			break;

-	}

-}

-/**

- * We didn't call it goto, because there is a conflit with the goto keyword

- */

-final public void goto_(Label label) {

-	if (this.wideMode) {

-		this.goto_w(label);

-		return;

-	}

-	if (DEBUG) System.out.println(position + "\t\tgoto:"+label); //$NON-NLS-1$

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	label.inlineForwardReferencesFromLabelsTargeting(position);

-	/*

-	 Possible optimization for code such as:

-	 public Object foo() {

-		boolean b = true;

-		if (b) {

-			if (b)

-				return null;

-		} else {

-			if (b) {

-				return null;

-			}

-		}

-		return null;

-	}

-	The goto around the else block for the first if will

-	be unreachable, because the thenClause of the second if

-	returns.

-	See inlineForwardReferencesFromLabelsTargeting defined

-	on the Label class for the remaining part of this

-	optimization.

-	 if (!lbl.isBranchTarget(position)) {

-		switch(bCodeStream[classFileOffset-1]) {

-			case OPC_return :

-			case OPC_areturn:

-				return;

-		}

-	}*/

-	position++;

-	bCodeStream[classFileOffset++] = OPC_goto;

-	label.branch();

-}

-

-final public void goto_w(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tgotow:"+lbl); //$NON-NLS-1$

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_goto_w;

-	lbl.branchWide();

-}

-final public void i2b() {

-	if (DEBUG) System.out.println(position + "\t\ti2b"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_i2b;

-}

-final public void i2c() {

-	if (DEBUG) System.out.println(position + "\t\ti2c"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_i2c;

-}

-final public void i2d() {

-	if (DEBUG) System.out.println(position + "\t\ti2d"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_i2d;

-}

-final public void i2f() {

-	if (DEBUG) System.out.println(position + "\t\ti2f"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_i2f;

-}

-final public void i2l() {

-	if (DEBUG) System.out.println(position + "\t\ti2l"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_i2l;

-}

-final public void i2s() {

-	if (DEBUG) System.out.println(position + "\t\ti2s"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_i2s;

-}

-final public void iadd() {

-	if (DEBUG) System.out.println(position + "\t\tiadd"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iadd;

-}

-final public void iaload() {

-	if (DEBUG) System.out.println(position + "\t\tiaload"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iaload;

-}

-final public void iand() {

-	if (DEBUG) System.out.println(position + "\t\tiand"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iand;

-}

-final public void iastore() {

-	if (DEBUG) System.out.println(position + "\t\tiastore"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iastore;

-}

-final public void iconst_0() {

-	if (DEBUG) System.out.println(position + "\t\ticonst_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iconst_0;

-}

-final public void iconst_1() {

-	if (DEBUG) System.out.println(position + "\t\ticonst_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iconst_1;

-}

-final public void iconst_2() {

-	if (DEBUG) System.out.println(position + "\t\ticonst_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iconst_2;

-}

-final public void iconst_3() {

-	if (DEBUG) System.out.println(position + "\t\ticonst_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iconst_3;

-}

-final public void iconst_4() {

-	if (DEBUG) System.out.println(position + "\t\ticonst_4"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iconst_4;

-}

-final public void iconst_5() {

-	if (DEBUG) System.out.println(position + "\t\ticonst_5"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iconst_5;

-}

-final public void iconst_m1() {

-	if (DEBUG) System.out.println(position + "\t\ticonst_m1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iconst_m1;

-}

-final public void idiv() {

-	if (DEBUG) System.out.println(position + "\t\tidiv"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_idiv;

-}

-final public void if_acmpeq(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tif_acmpeq:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth-=2;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_if_acmpne, lbl);

-	} else {	

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_if_acmpeq;

-		lbl.branch();

-	}

-}

-final public void if_acmpne(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tif_acmpne:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth-=2;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_if_acmpeq, lbl);

-	} else {	

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_if_acmpne;

-		lbl.branch();

-	}

-}

-final public void if_icmpeq(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tif_cmpeq:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_if_icmpne, lbl);

-	} else {	

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_if_icmpeq;

-		lbl.branch();

-	}

-}

-final public void if_icmpge(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tif_iacmpge:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_if_icmplt, lbl);

-	} else {	

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_if_icmpge;

-		lbl.branch();

-	}

-}

-final public void if_icmpgt(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tif_iacmpgt:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_if_icmple, lbl);

-	} else {	

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_if_icmpgt;

-		lbl.branch();

-	}

-}

-final public void if_icmple(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tif_iacmple:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_if_icmpgt, lbl);

-	} else {	

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_if_icmple;

-		lbl.branch();

-	}

-}

-final public void if_icmplt(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tif_iacmplt:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_if_icmpge, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_if_icmplt;

-		lbl.branch();

-	}

-}

-final public void if_icmpne(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tif_iacmpne:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_if_icmpeq, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_if_icmpne;

-		lbl.branch();

-	}

-}

-final public void ifeq(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tifeq:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_ifne, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ifeq;

-		lbl.branch();

-	}

-}

-final public void ifge(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tifge:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_iflt, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ifge;

-		lbl.branch();

-	}

-}

-final public void ifgt(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tifgt:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_ifle, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ifgt;

-		lbl.branch();

-	}

-}

-final public void ifle(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tifle:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_ifgt, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ifle;

-		lbl.branch();

-	}

-}

-final public void iflt(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tiflt:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_ifge, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_iflt;

-		lbl.branch();

-	}

-}

-final public void ifne(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tifne:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_ifeq, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ifne;

-		lbl.branch();

-	}

-}

-final public void ifnonnull(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tifnonnull:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_ifnull, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ifnonnull;

-		lbl.branch();

-	}

-}

-final public void ifnull(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tifnull:"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (this.wideMode) {

-		generateWideRevertedConditionalBranch(OPC_ifnonnull, lbl);

-	} else {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ifnull;

-		lbl.branch();

-	}

-}

-final public void iinc(int index, int value) {

-	if (DEBUG) System.out.println(position + "\t\tiinc:"+index+","+value); //$NON-NLS-1$ //$NON-NLS-2$

-	countLabels = 0;

-	if ((index > 255) || (value < -128 || value > 127)) { // have to widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_iinc;

-		writeUnsignedShort(index);

-		writeSignedShort(value);

-	} else {

-		if (classFileOffset + 2 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 3;

-		bCodeStream[classFileOffset++] = OPC_iinc;

-		bCodeStream[classFileOffset++] = (byte) index;

-		bCodeStream[classFileOffset++] = (byte) value;

-	}

-}

-final public void iload(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tiload:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= iArg) {

-		maxLocals = iArg + 1;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_iload;

-		writeUnsignedShort(iArg);

-	} else {

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_iload;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void iload_0() {

-	if (DEBUG) System.out.println(position + "\t\tiload_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= 0) {

-		maxLocals = 1;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iload_0;

-}

-final public void iload_1() {

-	if (DEBUG) System.out.println(position + "\t\tiload_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= 1) {

-		maxLocals = 2;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iload_1;

-}

-final public void iload_2() {

-	if (DEBUG) System.out.println(position + "\t\tiload_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= 2) {

-		maxLocals = 3;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iload_2;

-}

-final public void iload_3() {

-	if (DEBUG) System.out.println(position + "\t\tiload_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (maxLocals <= 3) {

-		maxLocals = 4;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iload_3;

-}

-final public void imul() {

-	if (DEBUG) System.out.println(position + "\t\timul"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_imul;

-}

-public void incrementTemp(LocalVariableBinding localBinding, int value) {

-	if (value == (short) value) {

-		this.iinc(localBinding.resolvedPosition, value);

-		return;

-	}

-	load(localBinding);

-	this.ldc(value);

-	this.iadd();

-	store(localBinding, false);

-}

-public void incrStackSize(int offset) {

-	if ((stackDepth += offset) > stackMax)

-		stackMax = stackDepth;

-}

-public int indexOfSameLineEntrySincePC(int pc, int line) {

-	for (int index = pc, max = pcToSourceMapSize; index < max; index+=2) {

-		if (pcToSourceMap[index+1] == line)

-			return index;

-	}

-	return -1;

-}

-final public void ineg() {

-	if (DEBUG) System.out.println(position + "\t\tineg"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ineg;

-}

-public void init(ClassFile targetClassFile) {

-	this.classFile = targetClassFile;

-	this.constantPool = targetClassFile.constantPool;

-	this.bCodeStream = targetClassFile.contents;

-	this.classFileOffset = targetClassFile.contentsOffset;

-	this.startingClassFileOffset = this.classFileOffset;

-	pcToSourceMapSize = 0;

-	lastEntryPC = 0;

-	int length = visibleLocals.length;

-	if (noVisibleLocals.length < length) {

-		noVisibleLocals = new LocalVariableBinding[length];

-	}

-	System.arraycopy(noVisibleLocals, 0, visibleLocals, 0, length);

-	visibleLocalsCount = 0;

-	

-	length = locals.length;

-	if (noLocals.length < length) {

-		noLocals = new LocalVariableBinding[length];

-	}

-	System.arraycopy(noLocals, 0, locals, 0, length);

-	allLocalsCounter = 0;

-

-	length = exceptionHandlers.length;

-	if (noExceptionHandlers.length < length) {

-		noExceptionHandlers = new ExceptionLabel[length];

-	}

-	System.arraycopy(noExceptionHandlers, 0, exceptionHandlers, 0, length);

-	exceptionHandlersIndex = 0;

-	exceptionHandlersCounter = 0;

-	

-	length = labels.length;

-	if (noLabels.length < length) {

-		noLabels = new Label[length];

-	}

-	System.arraycopy(noLabels, 0, labels, 0, length);

-	countLabels = 0;

-

-	stackMax = 0;

-	stackDepth = 0;

-	maxLocals = 0;

-	position = 0;

-}

-/**

- * @param methodBinding the given method binding to initialize the max locals

- */

-public void initializeMaxLocals(MethodBinding methodBinding) {

-

-	maxLocals = (methodBinding == null || methodBinding.isStatic()) ? 0 : 1;

-	// take into account the synthetic parameters

-	if (methodBinding != null) {

-		if (methodBinding.isConstructor() && methodBinding.declaringClass.isNestedType()) {

-			ReferenceBinding enclosingInstanceTypes[];

-			if ((enclosingInstanceTypes = methodBinding.declaringClass.syntheticEnclosingInstanceTypes()) != null) {

-				for (int i = 0, max = enclosingInstanceTypes.length; i < max; i++) {

-					maxLocals++; // an enclosingInstanceType can only be a reference binding. It cannot be

-					// LongBinding or DoubleBinding

-				}

-			}

-			SyntheticArgumentBinding syntheticArguments[];

-			if ((syntheticArguments = methodBinding.declaringClass.syntheticOuterLocalVariables()) != null) {

-				for (int i = 0, max = syntheticArguments.length; i < max; i++) {

-					TypeBinding argType;

-					if (((argType = syntheticArguments[i].type) == LongBinding) || (argType == DoubleBinding)) {

-						maxLocals += 2;

-					} else {

-						maxLocals++;

-					}

-				}

-			}

-		}

-		TypeBinding[] arguments;

-		if ((arguments = methodBinding.parameters) != null) {

-			for (int i = 0, max = arguments.length; i < max; i++) {

-				TypeBinding argType;

-				if (((argType = arguments[i]) == LongBinding) || (argType == DoubleBinding)) {

-					maxLocals += 2;

-				} else {

-					maxLocals++;

-				}

-			}

-		}

-	}

-}

-/**

- * This methods searches for an existing entry inside the pcToSourceMap table with a pc equals to @pc.

- * If there is an existing entry it returns -1 (no insertion required).

- * Otherwise it returns the index where the entry for the pc has to be inserted.

- * This is based on the fact that the pcToSourceMap table is sorted according to the pc.

- *

- * @param pcToSourceMap the given pcToSourceMap array

- * @param length the given length

- * @param pc the given pc

- * @return int

- */

-public static int insertionIndex(int[] pcToSourceMap, int length, int pc) {

-	int g = 0;

-	int d = length - 2;

-	int m = 0;

-	while (g <= d) {

-		m = (g + d) / 2;

-		// we search only on even indexes

-		if ((m % 2) != 0)

-			m--;

-		int currentPC = pcToSourceMap[m];

-		if (pc < currentPC) {

-			d = m - 2;

-		} else

-			if (pc > currentPC) {

-				g = m + 2;

-			} else {

-				return -1;

-			}

-	}

-	if (pc < pcToSourceMap[m])

-		return m;

-	return m + 2;

-}

-/**

- * We didn't call it instanceof because there is a conflit with the

- * instanceof keyword

- */

-final public void instance_of(TypeBinding typeBinding) {

-	if (DEBUG) System.out.println(position + "\t\tinstance_of:"+typeBinding); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_instanceof;

-	writeUnsignedShort(constantPool.literalIndex(typeBinding));

-}

-public void invokeClassForName() {

-	// invokestatic: java.lang.Class.forName(Ljava.lang.String;)Ljava.lang.Class;

-	if (DEBUG) System.out.println(position + "\t\tinvokestatic: java.lang.Class.forName(Ljava.lang.String;)Ljava.lang.Class;"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokestatic;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangClassForName());

-}

-public void invokeJavaLangClassDesiredAssertionStatus() {

-	// invokevirtual: java.lang.Class.desiredAssertionStatus()Z;

-	if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.Class.desiredAssertionStatus()Z;"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokevirtual;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangClassDesiredAssertionStatus());

-}

-

-public void invokeJavaLangClassGetComponentType() {

-	// invokevirtual: java.lang.Class.getComponentType()java.lang.Class;

-	if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.Class.getComponentType()java.lang.Class;"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokevirtual;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangClassGetComponentType());

-}

-

-final public void invokeinterface(MethodBinding methodBinding) {

-	// initialized to 1 to take into account this  immediately

-	if (DEBUG) System.out.println(position + "\t\tinvokeinterface: " + methodBinding); //$NON-NLS-1$

-	countLabels = 0;

-	int argCount = 1;

-	int id;

-	if (classFileOffset + 4 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position += 3;

-	bCodeStream[classFileOffset++] = OPC_invokeinterface;

-	writeUnsignedShort(constantPool.literalIndex(methodBinding));

-	for (int i = methodBinding.parameters.length - 1; i >= 0; i--)

-		if (((id = methodBinding.parameters[i].id) == T_double) || (id == T_long))

-			argCount += 2;

-		else

-			argCount += 1;

-	bCodeStream[classFileOffset++] = (byte) argCount;

-	// Generate a  0 into the byte array. Like the array is already fill with 0, we just need to increment

-	// the number of bytes.

-	bCodeStream[classFileOffset++] = 0;

-	if (((id = methodBinding.returnType.id) == T_double) || (id == T_long)) {

-		stackDepth += (2 - argCount);

-	} else {

-		if (id == T_void) {

-			stackDepth -= argCount;

-		} else {

-			stackDepth += (1 - argCount);

-		}

-	}

-	if (stackDepth > stackMax) {

-		stackMax = stackDepth;

-	}

-}

-public void invokeJavaLangErrorConstructor() {

-	// invokespecial: java.lang.Error<init>(Ljava.lang.String;)V

-	if (DEBUG) System.out.println(position + "\t\tinvokespecial: java.lang.Error<init>(Ljava.lang.String;)V"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokespecial;

-	stackDepth -= 2;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangErrorConstructor());

-}

-public void invokeNoClassDefFoundErrorStringConstructor() {

-	// invokespecial: java.lang.NoClassDefFoundError.<init>(Ljava.lang.String;)V

-	if (DEBUG) System.out.println(position + "\t\tinvokespecial: java.lang.NoClassDefFoundError.<init>(Ljava.lang.String;)V"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokespecial;

-	stackDepth -= 2;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangNoClassDefFoundErrorStringConstructor());

-}

-public void invokeObjectGetClass() {

-	// invokevirtual: java.lang.Object.getClass()Ljava.lang.Class;

-	if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.Object.getClass()Ljava.lang.Class;"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokevirtual;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangObjectGetClass());

-}

-

-final public void invokespecial(MethodBinding methodBinding) {

-	if (DEBUG) System.out.println(position + "\t\tinvokespecial:"+methodBinding); //$NON-NLS-1$

-	// initialized to 1 to take into account this  immediately

-	countLabels = 0;

-	int argCount = 1;

-	int id;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokespecial;

-	writeUnsignedShort(constantPool.literalIndex(methodBinding));

-	if (methodBinding.isConstructor() && methodBinding.declaringClass.isNestedType()) {

-		// enclosing instances

-		TypeBinding[] syntheticArgumentTypes = methodBinding.declaringClass.syntheticEnclosingInstanceTypes();

-		if (syntheticArgumentTypes != null) {

-			for (int i = 0, max = syntheticArgumentTypes.length; i < max; i++) {

-				if (((id = syntheticArgumentTypes[i].id) == T_double) || (id == T_long)) {

-					argCount += 2;

-				} else {

-					argCount++;

-				}

-			}

-		}

-		// outer local variables

-		SyntheticArgumentBinding[] syntheticArguments = methodBinding.declaringClass.syntheticOuterLocalVariables();

-		if (syntheticArguments != null) {

-			for (int i = 0, max = syntheticArguments.length; i < max; i++) {

-				if (((id = syntheticArguments[i].type.id) == T_double) || (id == T_long)) {

-					argCount += 2;

-				} else {

-					argCount++;

-				}

-			}

-		}

-	}

-	for (int i = methodBinding.parameters.length - 1; i >= 0; i--)

-		if (((id = methodBinding.parameters[i].id) == T_double) || (id == T_long))

-			argCount += 2;

-		else

-			argCount++;

-	if (((id = methodBinding.returnType.id) == T_double) || (id == T_long))

-		stackDepth += (2 - argCount);

-	else

-		if (id == T_void)

-			stackDepth -= argCount;

-		else

-			stackDepth += (1 - argCount);

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-}

-final public void invokestatic(MethodBinding methodBinding) {

-	if (DEBUG) System.out.println(position + "\t\tinvokestatic:"+methodBinding); //$NON-NLS-1$

-	// initialized to 0 to take into account that there is no this for

-	// a static method

-	countLabels = 0;

-	int argCount = 0;

-	int id;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokestatic;

-	writeUnsignedShort(constantPool.literalIndex(methodBinding));

-	for (int i = methodBinding.parameters.length - 1; i >= 0; i--)

-		if (((id = methodBinding.parameters[i].id) == T_double) || (id == T_long))

-			argCount += 2;

-		else

-			argCount += 1;

-	if (((id = methodBinding.returnType.id) == T_double) || (id == T_long))

-		stackDepth += (2 - argCount);

-	else

-		if (id == T_void)

-			stackDepth -= argCount;

-		else

-			stackDepth += (1 - argCount);

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-}

-/**

- * The equivalent code performs a string conversion of the TOS

- * @param typeID <CODE>int</CODE>

- */

-public void invokeStringConcatenationAppendForType(int typeID) {

-	if (DEBUG) {

-		if (this.targetLevel >= JDK1_5) {

-			System.out.println(position + "\t\tinvokevirtual: java.lang.StringBuilder.append(...)"); //$NON-NLS-1$

-		} else {

-			System.out.println(position + "\t\tinvokevirtual: java.lang.StringBuffer.append(...)"); //$NON-NLS-1$

-		}

-	}

-	countLabels = 0;

-	int usedTypeID;

-	if (typeID == T_null) {

-		usedTypeID = T_String;

-	} else {

-		usedTypeID = typeID;

-	}

-	// invokevirtual

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokevirtual;

-	if (this.targetLevel >= JDK1_5) {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBuilderAppend(typeID));

-	} else {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBufferAppend(typeID));

-	}

-	if ((usedTypeID == T_long) || (usedTypeID == T_double)) {

-		stackDepth -= 2;

-	} else {

-		stackDepth--;

-	}

-}

-

-public void invokeJavaLangAssertionErrorConstructor(int typeBindingID) {

-	// invokespecial: java.lang.AssertionError.<init>(typeBindingID)V

-	if (DEBUG) System.out.println(position + "\t\tinvokespecial: java.lang.AssertionError.<init>(typeBindingID)V"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokespecial;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangAssertionErrorConstructor(typeBindingID));

-	stackDepth -= 2;

-}

-

-public void invokeJavaLangAssertionErrorDefaultConstructor() {

-	// invokespecial: java.lang.AssertionError.<init>()V

-	if (DEBUG) System.out.println(position + "\t\tinvokespecial: java.lang.AssertionError.<init>()V"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokespecial;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangAssertionErrorDefaultConstructor());

-	stackDepth --;

-}

-public void invokeJavaUtilIteratorHasNext() {

-	// invokeinterface java.util.Iterator.hasNext()Z

-	if (DEBUG) System.out.println(position + "\t\tinvokeinterface: java.util.Iterator.hasNext()Z"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 4 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position += 3;

-	bCodeStream[classFileOffset++] = OPC_invokeinterface;

-	writeUnsignedShort(constantPool.literalIndexForJavaUtilIteratorHasNext());

-	bCodeStream[classFileOffset++] = 1;

-	// Generate a  0 into the byte array. Like the array is already fill with 0, we just need to increment

-	// the number of bytes.

-	bCodeStream[classFileOffset++] = 0;

-}

-public void invokeJavaUtilIteratorNext() {

-	// invokeinterface java.util.Iterator.next()java.lang.Object

-	if (DEBUG) System.out.println(position + "\t\tinvokeinterface: java.util.Iterator.next()java.lang.Object"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 4 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position += 3;

-	bCodeStream[classFileOffset++] = OPC_invokeinterface;

-	writeUnsignedShort(constantPool.literalIndexForJavaUtilIteratorNext());

-	bCodeStream[classFileOffset++] = 1;

-	// Generate a  0 into the byte array. Like the array is already fill with 0, we just need to increment

-	// the number of bytes.

-	bCodeStream[classFileOffset++] = 0;

-}

-public void invokeStringConcatenationDefaultConstructor() {

-	// invokespecial: java.lang.StringBuffer.<init>()V

-	if (DEBUG) {

-		if (this.targetLevel >= JDK1_5) {

-			System.out.println(position + "\t\tinvokespecial: java.lang.StringBuilder.<init>()V"); //$NON-NLS-1$

-		} else {

-			System.out.println(position + "\t\tinvokespecial: java.lang.StringBuffer.<init>()V"); //$NON-NLS-1$

-		}

-	}

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokespecial;

-	if (this.targetLevel >= JDK1_5) {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBuilderDefaultConstructor());

-	} else {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBufferDefaultConstructor());

-	}

-	stackDepth--;

-}

-public void invokeStringConcatenationStringConstructor() {

-	if (DEBUG) {

-		if (this.targetLevel >= JDK1_5) {

-			System.out.println(position + "\t\tjava.lang.StringBuilder.<init>(Ljava.lang.String;)V"); //$NON-NLS-1$

-		} else {

-			System.out.println(position + "\t\tjava.lang.StringBuffer.<init>(Ljava.lang.String;)V"); //$NON-NLS-1$

-		}

-	}

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokespecial;

-	if (this.targetLevel >= JDK1_5) {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBuilderConstructor());

-	} else {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBufferConstructor());

-	}

-	stackDepth -= 2;

-}

-

-public void invokeStringConcatenationToString() {

-	if (DEBUG) {

-		if (this.targetLevel >= JDK1_5) {

-			System.out.println(position + "\t\tinvokevirtual: StringBuilder.toString()Ljava.lang.String;"); //$NON-NLS-1$

-		} else {

-			System.out.println(position + "\t\tinvokevirtual: StringBuffer.toString()Ljava.lang.String;"); //$NON-NLS-1$

-		}

-	}

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokevirtual;

-	if (this.targetLevel >= JDK1_5) {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBuilderToString());

-	} else {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBufferToString());

-	}

-}

-public void invokeStringIntern() {

-	// invokevirtual: java.lang.String.intern()

-	if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.String.intern()"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokevirtual;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangStringIntern());

-}

-public void invokeStringValueOf(int typeID) {

-	// invokestatic: java.lang.String.valueOf(argumentType)

-	if (DEBUG) System.out.println(position + "\t\tinvokestatic: java.lang.String.valueOf(...)"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokestatic;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangStringValueOf(typeID));

-}

-public void invokeThrowableGetMessage() {

-	// invokevirtual: java.lang.Throwable.getMessage()Ljava.lang.String;

-	if (DEBUG) System.out.println(position + "\t\tinvokevirtual: java.lang.Throwable.getMessage()Ljava.lang.String;"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokevirtual;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangThrowableGetMessage());

-}

-final public void invokevirtual(MethodBinding methodBinding) {

-	if (DEBUG) System.out.println(position + "\t\tinvokevirtual:"+methodBinding); //$NON-NLS-1$

-	// initialized to 1 to take into account this  immediately

-	countLabels = 0;

-	int argCount = 1;

-	int id;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_invokevirtual;

-	writeUnsignedShort(constantPool.literalIndex(methodBinding));

-	for (int i = methodBinding.parameters.length - 1; i >= 0; i--)

-		if (((id = methodBinding.parameters[i].id) == T_double) || (id == T_long))

-			argCount += 2;

-		else

-			argCount++;

-	if (((id = methodBinding.returnType.id) == T_double) || (id == T_long))

-		stackDepth += (2 - argCount);

-	else

-		if (id == T_void)

-			stackDepth -= argCount;

-		else

-			stackDepth += (1 - argCount);

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-}

-final public void ior() {

-	if (DEBUG) System.out.println(position + "\t\tior"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ior;

-}

-final public void irem() {

-	if (DEBUG) System.out.println(position + "\t\tirem"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_irem;

-}

-final public void ireturn() {

-	if (DEBUG) System.out.println(position + "\t\tireturn"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	// the stackDepth should be equal to 0 

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ireturn;

-}

-public boolean isDefinitelyAssigned(Scope scope, int initStateIndex, LocalVariableBinding local) {

-	// Dependant of UnconditionalFlowInfo.isDefinitelyAssigned(..)

-	if (initStateIndex == -1)

-		return false;

-	if (local.isArgument) {

-		return true;

-	}

-	int localPosition = local.id + maxFieldCount;

-	MethodScope methodScope = scope.methodScope();

-	// id is zero-based

-	if (localPosition < UnconditionalFlowInfo.BitCacheSize) {

-		return (methodScope.definiteInits[initStateIndex] & (1L << localPosition)) != 0; // use bits

-	}

-	// use extra vector

-	long[] extraInits = methodScope.extraDefiniteInits[initStateIndex];

-	if (extraInits == null)

-		return false; // if vector not yet allocated, then not initialized

-	int vectorIndex;

-	if ((vectorIndex = (localPosition / UnconditionalFlowInfo.BitCacheSize) - 1) >= extraInits.length)

-		return false; // if not enough room in vector, then not initialized 

-	return ((extraInits[vectorIndex]) & (1L << (localPosition % UnconditionalFlowInfo.BitCacheSize))) != 0;

-}

-final public void ishl() {

-	if (DEBUG) System.out.println(position + "\t\tishl"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ishl;

-}

-final public void ishr() {

-	if (DEBUG) System.out.println(position + "\t\tishr"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ishr;

-}

-final public void istore(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tistore:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= iArg) {

-		maxLocals = iArg + 1;

-	}

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_istore;

-		writeUnsignedShort(iArg);

-	} else {

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_istore;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void istore_0() {

-	if (DEBUG) System.out.println(position + "\t\tistore_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals == 0) {

-		maxLocals = 1;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_istore_0;

-}

-final public void istore_1() {

-	if (DEBUG) System.out.println(position + "\t\tistore_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 1) {

-		maxLocals = 2;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_istore_1;

-}

-final public void istore_2() {

-	if (DEBUG) System.out.println(position + "\t\tistore_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 2) {

-		maxLocals = 3;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_istore_2;

-}

-final public void istore_3() {

-	if (DEBUG) System.out.println(position + "\t\tistore_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (maxLocals <= 3) {

-		maxLocals = 4;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_istore_3;

-}

-final public void isub() {

-	if (DEBUG) System.out.println(position + "\t\tisub"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_isub;

-}

-final public void iushr() {

-	if (DEBUG) System.out.println(position + "\t\tiushr"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_iushr;

-}

-final public void ixor() {

-	if (DEBUG) System.out.println(position + "\t\tixor"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ixor;

-}

-final public void jsr(Label lbl) {

-	if (this.wideMode) {

-		this.jsr_w(lbl);

-		return;

-	}

-	if (DEBUG) System.out.println(position + "\t\tjsr"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_jsr;

-	lbl.branch();

-}

-final public void jsr_w(Label lbl) {

-	if (DEBUG) System.out.println(position + "\t\tjsr_w"+lbl); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_jsr_w;

-	lbl.branchWide();

-}

-final public void l2d() {

-	if (DEBUG) System.out.println(position + "\t\tl2d"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_l2d;

-}

-final public void l2f() {

-	if (DEBUG) System.out.println(position + "\t\tl2f"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_l2f;

-}

-final public void l2i() {

-	if (DEBUG) System.out.println(position + "\t\tl2i"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_l2i;

-}

-final public void ladd() {

-	if (DEBUG) System.out.println(position + "\t\tladd"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ladd;

-}

-final public void laload() {

-	if (DEBUG) System.out.println(position + "\t\tlaload"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_laload;

-}

-final public void land() {

-	if (DEBUG) System.out.println(position + "\t\tland"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_land;

-}

-final public void lastore() {

-	if (DEBUG) System.out.println(position + "\t\tlastore"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 4;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lastore;

-}

-final public void lcmp() {

-	if (DEBUG) System.out.println(position + "\t\tlcmp"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lcmp;

-}

-final public void lconst_0() {

-	if (DEBUG) System.out.println(position + "\t\tlconst_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lconst_0;

-}

-final public void lconst_1() {

-	if (DEBUG) System.out.println(position + "\t\tlconst_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lconst_1;

-}

-final public void ldc(float constant) {

-	countLabels = 0;

-	int index = constantPool.literalIndex(constant);

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (index > 255) {

-		if (DEBUG) System.out.println(position + "\t\tldc_w:"+constant); //$NON-NLS-1$

-		// Generate a ldc_w

-		if (classFileOffset + 2 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ldc_w;

-		writeUnsignedShort(index);

-	} else {

-		if (DEBUG) System.out.println(position + "\t\tldc:"+constant); //$NON-NLS-1$

-		// Generate a ldc

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_ldc;

-		bCodeStream[classFileOffset++] = (byte) index;

-	}

-}

-final public void ldc(int constant) {

-	countLabels = 0;

-	int index = constantPool.literalIndex(constant);

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (index > 255) {

-		if (DEBUG) System.out.println(position + "\t\tldc_w:"+constant); //$NON-NLS-1$

-		// Generate a ldc_w

-		if (classFileOffset + 2 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ldc_w;

-		writeUnsignedShort(index);

-	} else {

-		if (DEBUG) System.out.println(position + "\t\tldc:"+constant); //$NON-NLS-1$

-		// Generate a ldc

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_ldc;

-		bCodeStream[classFileOffset++] = (byte) index;

-	}

-}

-final public void ldc(String constant) {

-	countLabels = 0;

-	int currentConstantPoolIndex = constantPool.currentIndex;

-	int currentConstantPoolOffset = constantPool.currentOffset;

-	int currentCodeStreamPosition = position;

-	int index = constantPool.literalIndexForLdc(constant.toCharArray());

-	if (index > 0) {

-		// the string already exists inside the constant pool

-		// we reuse the same index

-		stackDepth++;

-		if (stackDepth > stackMax)

-			stackMax = stackDepth;

-		if (index > 255) {

-			if (DEBUG) System.out.println(position + "\t\tldc_w:"+constant); //$NON-NLS-1$

-			// Generate a ldc_w

-			if (classFileOffset + 2 >= bCodeStream.length) {

-				resizeByteArray();

-			}

-			position++;

-			bCodeStream[classFileOffset++] = OPC_ldc_w;

-			writeUnsignedShort(index);

-		} else {

-			if (DEBUG) System.out.println(position + "\t\tldc:"+constant); //$NON-NLS-1$

-			// Generate a ldc

-			if (classFileOffset + 1 >= bCodeStream.length) {

-				resizeByteArray();

-			}

-			position += 2;

-			bCodeStream[classFileOffset++] = OPC_ldc;

-			bCodeStream[classFileOffset++] = (byte) index;

-		}

-	} else {

-		// the string is too big to be utf8-encoded in one pass.

-		// we have to split it into different pieces.

-		// first we clean all side-effects due to the code above

-		// this case is very rare, so we can afford to lose time to handle it

-		char[] constantChars = constant.toCharArray();

-		position = currentCodeStreamPosition;

-		constantPool.currentIndex = currentConstantPoolIndex;

-		constantPool.currentOffset = currentConstantPoolOffset;

-		constantPool.stringCache.remove(constantChars);

-		constantPool.UTF8Cache.remove(constantChars);

-		int i = 0;

-		int length = 0;

-		int constantLength = constant.length();

-		byte[] utf8encoding = new byte[Math.min(constantLength + 100, 65535)];

-		int utf8encodingLength = 0;

-		while ((length < 65532) && (i < constantLength)) {

-			char current = constantChars[i];

-			// we resize the byte array immediately if necessary

-			if (length + 3 > (utf8encodingLength = utf8encoding.length)) {

-				System.arraycopy(utf8encoding, 0, utf8encoding = new byte[Math.min(utf8encodingLength + 100, 65535)], 0, length);

-			}

-			if ((current >= 0x0001) && (current <= 0x007F)) {

-				// we only need one byte: ASCII table

-				utf8encoding[length++] = (byte) current;

-			} else {

-				if (current > 0x07FF) {

-					// we need 3 bytes

-					utf8encoding[length++] = (byte) (0xE0 | ((current >> 12) & 0x0F)); // 0xE0 = 1110 0000

-					utf8encoding[length++] = (byte) (0x80 | ((current >> 6) & 0x3F)); // 0x80 = 1000 0000

-					utf8encoding[length++] = (byte) (0x80 | (current & 0x3F)); // 0x80 = 1000 0000

-				} else {

-					// we can be 0 or between 0x0080 and 0x07FF

-					// In that case we only need 2 bytes

-					utf8encoding[length++] = (byte) (0xC0 | ((current >> 6) & 0x1F)); // 0xC0 = 1100 0000

-					utf8encoding[length++] = (byte) (0x80 | (current & 0x3F)); // 0x80 = 1000 0000

-				}

-			}

-			i++;

-		}

-		// check if all the string is encoded (PR 1PR2DWJ)

-		// the string is too big to be encoded in one pass

-		newStringContatenation();

-		dup();

-		// write the first part

-		char[] subChars = new char[i];

-		System.arraycopy(constantChars, 0, subChars, 0, i);

-		System.arraycopy(utf8encoding, 0, utf8encoding = new byte[length], 0, length);

-		index = constantPool.literalIndex(subChars, utf8encoding);

-		stackDepth++;

-		if (stackDepth > stackMax)

-			stackMax = stackDepth;

-		if (index > 255) {

-			// Generate a ldc_w

-			if (classFileOffset + 2 >= bCodeStream.length) {

-				resizeByteArray();

-			}

-			position++;

-			bCodeStream[classFileOffset++] = OPC_ldc_w;

-			writeUnsignedShort(index);

-		} else {

-			// Generate a ldc

-			if (classFileOffset + 1 >= bCodeStream.length) {

-				resizeByteArray();

-			}

-			position += 2;

-			bCodeStream[classFileOffset++] = OPC_ldc;

-			bCodeStream[classFileOffset++] = (byte) index;

-		}

-		// write the remaining part

-		invokeStringConcatenationStringConstructor();

-		while (i < constantLength) {

-			length = 0;

-			utf8encoding = new byte[Math.min(constantLength - i + 100, 65535)];

-			int startIndex = i;

-			while ((length < 65532) && (i < constantLength)) {

-				char current = constantChars[i];

-				// we resize the byte array immediately if necessary

-				if (constantLength + 2 > (utf8encodingLength = utf8encoding.length)) {

-					System.arraycopy(utf8encoding, 0, utf8encoding = new byte[Math.min(utf8encodingLength + 100, 65535)], 0, length);

-				}

-				if ((current >= 0x0001) && (current <= 0x007F)) {

-					// we only need one byte: ASCII table

-					utf8encoding[length++] = (byte) current;

-				} else {

-					if (current > 0x07FF) {

-						// we need 3 bytes

-						utf8encoding[length++] = (byte) (0xE0 | ((current >> 12) & 0x0F)); // 0xE0 = 1110 0000

-						utf8encoding[length++] = (byte) (0x80 | ((current >> 6) & 0x3F)); // 0x80 = 1000 0000

-						utf8encoding[length++] = (byte) (0x80 | (current & 0x3F)); // 0x80 = 1000 0000

-					} else {

-						// we can be 0 or between 0x0080 and 0x07FF

-						// In that case we only need 2 bytes

-						utf8encoding[length++] = (byte) (0xC0 | ((current >> 6) & 0x1F)); // 0xC0 = 1100 0000

-						utf8encoding[length++] = (byte) (0x80 | (current & 0x3F)); // 0x80 = 1000 0000

-					}

-				}

-				i++;

-			}

-			// the next part is done

-			subChars = new char[i - startIndex];

-			System.arraycopy(constantChars, startIndex, subChars, 0, i - startIndex);

-			System.arraycopy(utf8encoding, 0, utf8encoding = new byte[length], 0, length);

-			index = constantPool.literalIndex(subChars, utf8encoding);

-			stackDepth++;

-			if (stackDepth > stackMax)

-				stackMax = stackDepth;

-			if (index > 255) {

-				// Generate a ldc_w

-				if (classFileOffset + 2 >= bCodeStream.length) {

-					resizeByteArray();

-				}

-				position++;

-				bCodeStream[classFileOffset++] = OPC_ldc_w;

-				writeUnsignedShort(index);

-			} else {

-				// Generate a ldc

-				if (classFileOffset + 1 >= bCodeStream.length) {

-					resizeByteArray();

-				}

-				position += 2;

-				bCodeStream[classFileOffset++] = OPC_ldc;

-				bCodeStream[classFileOffset++] = (byte) index;

-			}

-			// now on the stack it should be a StringBuffer and a string.

-			invokeStringConcatenationAppendForType(T_String);

-		}

-		invokeStringConcatenationToString();

-		invokeStringIntern();

-	}

-}

-final public void ldc(TypeBinding typeBinding) {

-	countLabels = 0;

-	int index = constantPool.literalIndex(typeBinding);

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (index > 255) {

-		if (DEBUG) System.out.println(position + "\t\tldc_w:"+ typeBinding); //$NON-NLS-1$

-		// Generate a ldc_w

-		if (classFileOffset + 2 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = OPC_ldc_w;

-		writeUnsignedShort(index);

-	} else {

-		if (DEBUG) System.out.println(position + "\t\tldw:"+ typeBinding); //$NON-NLS-1$

-		// Generate a ldc

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_ldc;

-		bCodeStream[classFileOffset++] = (byte) index;

-	}

-}

-final public void ldc2_w(double constant) {

-	if (DEBUG) System.out.println(position + "\t\tldc2_w:"+constant); //$NON-NLS-1$

-	countLabels = 0;

-	int index = constantPool.literalIndex(constant);

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	// Generate a ldc2_w

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ldc2_w;

-	writeUnsignedShort(index);

-}

-final public void ldc2_w(long constant) {

-	if (DEBUG) System.out.println(position + "\t\tldc2_w:"+constant); //$NON-NLS-1$

-	countLabels = 0;

-	int index = constantPool.literalIndex(constant);

-	stackDepth += 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	// Generate a ldc2_w

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ldc2_w;

-	writeUnsignedShort(index);

-}

-final public void ldiv() {

-	if (DEBUG) System.out.println(position + "\t\tldiv"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_ldiv;

-}

-final public void lload(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tlload:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (maxLocals <= iArg + 1) {

-		maxLocals = iArg + 2;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_lload;

-		writeUnsignedShort(iArg);

-	} else {

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_lload;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void lload_0() {

-	if (DEBUG) System.out.println(position + "\t\tlload_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (maxLocals < 2) {

-		maxLocals = 2;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lload_0;

-}

-final public void lload_1() {

-	if (DEBUG) System.out.println(position + "\t\tlload_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (maxLocals < 3) {

-		maxLocals = 3;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lload_1;

-}

-final public void lload_2() {

-	if (DEBUG) System.out.println(position + "\t\tlload_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (maxLocals < 4) {

-		maxLocals = 4;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lload_2;

-}

-final public void lload_3() {

-	if (DEBUG) System.out.println(position + "\t\tlload_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth += 2;

-	if (maxLocals < 5) {

-		maxLocals = 5;

-	}

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lload_3;

-}

-final public void lmul() {

-	if (DEBUG) System.out.println(position + "\t\tlmul"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lmul;

-}

-final public void lneg() {

-	if (DEBUG) System.out.println(position + "\t\tlneg"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lneg;

-}

-public final void load(LocalVariableBinding localBinding) {

-	countLabels = 0;

-	TypeBinding typeBinding = localBinding.type;

-	int resolvedPosition = localBinding.resolvedPosition;

-	// Using dedicated int bytecode

-	if (typeBinding == IntBinding) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.iload_0();

-				break;

-			case 1 :

-				this.iload_1();

-				break;

-			case 2 :

-				this.iload_2();

-				break;

-			case 3 :

-				this.iload_3();

-				break;

-			//case -1 :

-			// internal failure: trying to load variable not supposed to be generated

-			//	break;

-			default :

-				this.iload(resolvedPosition);

-		}

-		return;

-	}

-	// Using dedicated float bytecode

-	if (typeBinding == FloatBinding) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.fload_0();

-				break;

-			case 1 :

-				this.fload_1();

-				break;

-			case 2 :

-				this.fload_2();

-				break;

-			case 3 :

-				this.fload_3();

-				break;

-			default :

-				this.fload(resolvedPosition);

-		}

-		return;

-	}

-	// Using dedicated long bytecode

-	if (typeBinding == LongBinding) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.lload_0();

-				break;

-			case 1 :

-				this.lload_1();

-				break;

-			case 2 :

-				this.lload_2();

-				break;

-			case 3 :

-				this.lload_3();

-				break;

-			default :

-				this.lload(resolvedPosition);

-		}

-		return;

-	}

-	// Using dedicated double bytecode

-	if (typeBinding == DoubleBinding) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.dload_0();

-				break;

-			case 1 :

-				this.dload_1();

-				break;

-			case 2 :

-				this.dload_2();

-				break;

-			case 3 :

-				this.dload_3();

-				break;

-			default :

-				this.dload(resolvedPosition);

-		}

-		return;

-	}

-	// boolean, byte, char and short are handled as int

-	if ((typeBinding == ByteBinding) || (typeBinding == CharBinding) || (typeBinding == BooleanBinding) || (typeBinding == ShortBinding)) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.iload_0();

-				break;

-			case 1 :

-				this.iload_1();

-				break;

-			case 2 :

-				this.iload_2();

-				break;

-			case 3 :

-				this.iload_3();

-				break;

-			default :

-				this.iload(resolvedPosition);

-		}

-		return;

-	}

-

-	// Reference object

-	switch (resolvedPosition) {

-		case 0 :

-			this.aload_0();

-			break;

-		case 1 :

-			this.aload_1();

-			break;

-		case 2 :

-			this.aload_2();

-			break;

-		case 3 :

-			this.aload_3();

-			break;

-		default :

-			this.aload(resolvedPosition);

-	}

-}

-public final void load(TypeBinding typeBinding, int resolvedPosition) {

-	countLabels = 0;

-	// Using dedicated int bytecode

-	if (typeBinding == IntBinding) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.iload_0();

-				break;

-			case 1 :

-				this.iload_1();

-				break;

-			case 2 :

-				this.iload_2();

-				break;

-			case 3 :

-				this.iload_3();

-				break;

-			default :

-				this.iload(resolvedPosition);

-		}

-		return;

-	}

-	// Using dedicated float bytecode

-	if (typeBinding == FloatBinding) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.fload_0();

-				break;

-			case 1 :

-				this.fload_1();

-				break;

-			case 2 :

-				this.fload_2();

-				break;

-			case 3 :

-				this.fload_3();

-				break;

-			default :

-				this.fload(resolvedPosition);

-		}

-		return;

-	}

-	// Using dedicated long bytecode

-	if (typeBinding == LongBinding) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.lload_0();

-				break;

-			case 1 :

-				this.lload_1();

-				break;

-			case 2 :

-				this.lload_2();

-				break;

-			case 3 :

-				this.lload_3();

-				break;

-			default :

-				this.lload(resolvedPosition);

-		}

-		return;

-	}

-	// Using dedicated double bytecode

-	if (typeBinding == DoubleBinding) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.dload_0();

-				break;

-			case 1 :

-				this.dload_1();

-				break;

-			case 2 :

-				this.dload_2();

-				break;

-			case 3 :

-				this.dload_3();

-				break;

-			default :

-				this.dload(resolvedPosition);

-		}

-		return;

-	}

-	// boolean, byte, char and short are handled as int

-	if ((typeBinding == ByteBinding) || (typeBinding == CharBinding) || (typeBinding == BooleanBinding) || (typeBinding == ShortBinding)) {

-		switch (resolvedPosition) {

-			case 0 :

-				this.iload_0();

-				break;

-			case 1 :

-				this.iload_1();

-				break;

-			case 2 :

-				this.iload_2();

-				break;

-			case 3 :

-				this.iload_3();

-				break;

-			default :

-				this.iload(resolvedPosition);

-		}

-		return;

-	}

-

-	// Reference object

-	switch (resolvedPosition) {

-		case 0 :

-			this.aload_0();

-			break;

-		case 1 :

-			this.aload_1();

-			break;

-		case 2 :

-			this.aload_2();

-			break;

-		case 3 :

-			this.aload_3();

-			break;

-		default :

-			this.aload(resolvedPosition);

-	}

-}

-public final void loadInt(int resolvedPosition) {

-	// Using dedicated int bytecode

-	switch (resolvedPosition) {

-		case 0 :

-			this.iload_0();

-			break;

-		case 1 :

-			this.iload_1();

-			break;

-		case 2 :

-			this.iload_2();

-			break;

-		case 3 :

-			this.iload_3();

-			break;

-		default :

-			this.iload(resolvedPosition);

-	}

-}

-public final void loadObject(int resolvedPosition) {

-	switch (resolvedPosition) {

-		case 0 :

-			this.aload_0();

-			break;

-		case 1 :

-			this.aload_1();

-			break;

-		case 2 :

-			this.aload_2();

-			break;

-		case 3 :

-			this.aload_3();

-			break;

-		default :

-			this.aload(resolvedPosition);

-	}

-}

-final public void lookupswitch(CaseLabel defaultLabel, int[] keys, int[] sortedIndexes, CaseLabel[] casesLabel) {

-	if (DEBUG) System.out.println(position + "\t\tlookupswitch"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	int length = keys.length;

-	int pos = position;

-	defaultLabel.placeInstruction();

-	for (int i = 0; i < length; i++) {

-		casesLabel[i].placeInstruction();

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lookupswitch;

-	for (int i = (3 - (pos % 4)); i > 0; i--) {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = 0;

-	}

-	defaultLabel.branch();

-	writeSignedWord(length);

-	for (int i = 0; i < length; i++) {

-		writeSignedWord(keys[sortedIndexes[i]]);

-		casesLabel[sortedIndexes[i]].branch();

-	}

-}

-final public void lor() {

-	if (DEBUG) System.out.println(position + "\t\tlor"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lor;

-}

-final public void lrem() {

-	if (DEBUG) System.out.println(position + "\t\tlrem"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lrem;

-}

-final public void lreturn() {

-	if (DEBUG) System.out.println(position + "\t\tlreturn"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	// the stackDepth should be equal to 0 

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lreturn;

-}

-final public void lshl() {

-	if (DEBUG) System.out.println(position + "\t\tlshl"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lshl;

-}

-final public void lshr() {

-	if (DEBUG) System.out.println(position + "\t\tlshr"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lshr;

-}

-final public void lstore(int iArg) {

-	if (DEBUG) System.out.println(position + "\t\tlstore:"+iArg); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals <= iArg + 1) {

-		maxLocals = iArg + 2;

-	}

-	if (iArg > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_lstore;

-		writeUnsignedShort(iArg);

-	} else {

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_lstore;

-		bCodeStream[classFileOffset++] = (byte) iArg;

-	}

-}

-final public void lstore_0() {

-	if (DEBUG) System.out.println(position + "\t\tlstore_0"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals < 2) {

-		maxLocals = 2;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lstore_0;

-}

-final public void lstore_1() {

-	if (DEBUG) System.out.println(position + "\t\tlstore_1"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals < 3) {

-		maxLocals = 3;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lstore_1;

-}

-final public void lstore_2() {

-	if (DEBUG) System.out.println(position + "\t\tlstore_2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals < 4) {

-		maxLocals = 4;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lstore_2;

-}

-final public void lstore_3() {

-	if (DEBUG) System.out.println(position + "\t\tlstore_3"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (maxLocals < 5) {

-		maxLocals = 5;

-	}

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lstore_3;

-}

-final public void lsub() {

-	if (DEBUG) System.out.println(position + "\t\tlsub"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lsub;

-}

-final public void lushr() {

-	if (DEBUG) System.out.println(position + "\t\tlushr"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lushr;

-}

-final public void lxor() {

-	if (DEBUG) System.out.println(position + "\t\tlxor"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_lxor;

-}

-final public void monitorenter() {

-	if (DEBUG) System.out.println(position + "\t\tmonitorenter"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_monitorenter;

-}

-final public void monitorexit() {

-	if (DEBUG) System.out.println(position + "\t\tmonitorexit"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_monitorexit;

-}

-final public void multianewarray(TypeBinding typeBinding, int dimensions) {

-	if (DEBUG) System.out.println(position + "\t\tmultinewarray:"+typeBinding+","+dimensions); //$NON-NLS-1$ //$NON-NLS-2$

-	countLabels = 0;

-	stackDepth += (1 - dimensions);

-	if (classFileOffset + 3 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position += 2;

-	bCodeStream[classFileOffset++] = OPC_multianewarray;

-	writeUnsignedShort(constantPool.literalIndex(typeBinding));

-	bCodeStream[classFileOffset++] = (byte) dimensions;

-}

-/**

- * We didn't call it new, because there is a conflit with the new keyword

- */

-final public void new_(TypeBinding typeBinding) {

-	if (DEBUG) System.out.println(position + "\t\tnew:"+typeBinding); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_new;

-	writeUnsignedShort(constantPool.literalIndex(typeBinding));

-}

-final public void newarray(int array_Type) {

-	if (DEBUG) System.out.println(position + "\t\tnewarray:"+array_Type); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset + 1 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position += 2;

-	bCodeStream[classFileOffset++] = OPC_newarray;

-	bCodeStream[classFileOffset++] = (byte) array_Type;

-}

-public void newArray(Scope scope, ArrayBinding arrayBinding) {

-	TypeBinding component = arrayBinding.elementsType();

-	switch (component.id) {

-		case T_int :

-			this.newarray(INT_ARRAY);

-			break;

-		case T_byte :

-			this.newarray(BYTE_ARRAY);

-			break;

-		case T_boolean :

-			this.newarray(BOOLEAN_ARRAY);

-			break;

-		case T_short :

-			this.newarray(SHORT_ARRAY);

-			break;

-		case T_char :

-			this.newarray(CHAR_ARRAY);

-			break;

-		case T_long :

-			this.newarray(LONG_ARRAY);

-			break;

-		case T_float :

-			this.newarray(FLOAT_ARRAY);

-			break;

-		case T_double :

-			this.newarray(DOUBLE_ARRAY);

-			break;

-		default :

-			this.anewarray(component);

-	}

-}

-public void newJavaLangError() {

-	// new: java.lang.Error

-	if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Error"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_new;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangError());

-}

-

-public void newJavaLangAssertionError() {

-	// new: java.lang.AssertionError

-	if (DEBUG) System.out.println(position + "\t\tnew: java.lang.AssertionError"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_new;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangAssertionError());

-}

-

-public void newNoClassDefFoundError() {

-	// new: java.lang.NoClassDefFoundError

-	if (DEBUG) System.out.println(position + "\t\tnew: java.lang.NoClassDefFoundError"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_new;

-	writeUnsignedShort(constantPool.literalIndexForJavaLangNoClassDefFoundError());

-}

-public void newStringContatenation() {

-	// new: java.lang.StringBuffer

-	// new: java.lang.StringBuilder

-	if (DEBUG) {

-		if (this.targetLevel >= JDK1_5) {

-			System.out.println(position + "\t\tnew: java.lang.StringBuilder"); //$NON-NLS-1$

-		} else {

-			System.out.println(position + "\t\tnew: java.lang.StringBuffer"); //$NON-NLS-1$

-		}

-	}

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax) {

-		stackMax = stackDepth;

-	}

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_new;

-	if (this.targetLevel >= JDK1_5) {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBuilder());

-	} else {

-		writeUnsignedShort(constantPool.literalIndexForJavaLangStringBuffer());

-	}

-}

-public void newWrapperFor(int typeID) {

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_new;

-	switch (typeID) {

-		case T_int : // new: java.lang.Integer

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Integer"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangInteger());

-			break;

-		case T_boolean : // new: java.lang.Boolean

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Boolean"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangBoolean());

-			break;

-		case T_byte : // new: java.lang.Byte

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Byte"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangByte());

-			break;

-		case T_char : // new: java.lang.Character

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Character"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangCharacter());

-			break;

-		case T_float : // new: java.lang.Float

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Float"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangFloat());

-			break;

-		case T_double : // new: java.lang.Double

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Double"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangDouble());

-			break;

-		case T_short : // new: java.lang.Short

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Short"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangShort());

-			break;

-		case T_long : // new: java.lang.Long

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Long"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangLong());

-			break;

-		case T_void : // new: java.lang.Void

-			if (DEBUG) System.out.println(position + "\t\tnew: java.lang.Void"); //$NON-NLS-1$

-			writeUnsignedShort(constantPool.literalIndexForJavaLangVoid());

-	}

-}

-final public void nop() {

-	if (DEBUG) System.out.println(position + "\t\tnop"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_nop;

-}

-final public void pop() {

-	if (DEBUG) System.out.println(position + "\t\tpop"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_pop;

-}

-final public void pop2() {

-	if (DEBUG) System.out.println(position + "\t\tpop2"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 2;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_pop2;

-}

-final public void putfield(FieldBinding fieldBinding) {

-	if (DEBUG) System.out.println(position + "\t\tputfield:"+fieldBinding); //$NON-NLS-1$

-	countLabels = 0;

-	int id;

-	if (((id = fieldBinding.type.id) == T_double) || (id == T_long))

-		stackDepth -= 3;

-	else

-		stackDepth -= 2;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_putfield;

-	writeUnsignedShort(constantPool.literalIndex(fieldBinding));

-}

-final public void putstatic(FieldBinding fieldBinding) {

-	if (DEBUG) System.out.println(position + "\t\tputstatic:"+fieldBinding); //$NON-NLS-1$

-	countLabels = 0;

-	int id;

-	if (((id = fieldBinding.type.id) == T_double) || (id == T_long))

-		stackDepth -= 2;

-	else

-		stackDepth -= 1;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset + 2 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_putstatic;

-	writeUnsignedShort(constantPool.literalIndex(fieldBinding));

-}

-public void record(LocalVariableBinding local) {

-	if (!generateLocalVariableTableAttributes)

-		return;

-	if (allLocalsCounter == locals.length) {

-		// resize the collection

-		System.arraycopy(locals, 0, locals = new LocalVariableBinding[allLocalsCounter + LOCALS_INCREMENT], 0, allLocalsCounter);

-	}

-	locals[allLocalsCounter++] = local;

-	local.initializationPCs = new int[4];

-	local.initializationCount = 0;

-}

-public void recordPositionsFrom(int startPC, int sourcePos) {

-

-	/* Record positions in the table, only if nothing has 

-	 * already been recorded. Since we output them on the way 

-	 * up (children first for more specific info)

-	 * The pcToSourceMap table is always sorted.

-	 */

-

-	if (!generateLineNumberAttributes)

-		return;

-	if (sourcePos == 0)

-		return;

-

-	// no code generated for this node. e.g. field without any initialization

-	if (position == startPC)

-		return;

-

-	// Widening an existing entry that already has the same source positions

-	if (pcToSourceMapSize + 4 > pcToSourceMap.length) {

-		// resize the array pcToSourceMap

-		System.arraycopy(pcToSourceMap, 0, pcToSourceMap = new int[pcToSourceMapSize << 1], 0, pcToSourceMapSize);

-	}

-	int newLine = ClassFile.searchLineNumber(lineSeparatorPositions, sourcePos);

-	// lastEntryPC represents the endPC of the lastEntry.

-	if (pcToSourceMapSize > 0) {

-		// in this case there is already an entry in the table

-		if (pcToSourceMap[pcToSourceMapSize - 1] != newLine) {

-			if (startPC < lastEntryPC) {

-				// we forgot to add an entry.

-				// search if an existing entry exists for startPC

-				int insertionIndex = insertionIndex(pcToSourceMap, pcToSourceMapSize, startPC);

-				if (insertionIndex != -1) {

-					// there is no existing entry starting with startPC.

-					int existingEntryIndex = indexOfSameLineEntrySincePC(startPC, newLine); // index for PC

-					/* the existingEntryIndex corresponds to en entry with the same line and a PC >= startPC.

-						in this case it is relevant to widen this entry instead of creating a new one.

-						line1: this(a,

-						  b,

-						  c);

-						with this code we generate each argument. We generate a aload0 to invoke the constructor. There is no entry for this

-						aload0 bytecode. The first entry is the one for the argument a.

-						But we want the constructor call to start at the aload0 pc and not just at the pc of the first argument.

-						So we widen the existing entry (if there is one) or we create a new entry with the startPC.

-					*/

-					if (existingEntryIndex != -1) {

-						// widen existing entry

-						pcToSourceMap[existingEntryIndex] = startPC;

-					} else if (insertionIndex < 1 || pcToSourceMap[insertionIndex - 1] != newLine) {

-						// we have to add an entry that won't be sorted. So we sort the pcToSourceMap.

-						System.arraycopy(pcToSourceMap, insertionIndex, pcToSourceMap, insertionIndex + 2, pcToSourceMapSize - insertionIndex);

-						pcToSourceMap[insertionIndex++] = startPC;

-						pcToSourceMap[insertionIndex] = newLine;

-						pcToSourceMapSize += 2;

-					}

-				} else if (position != lastEntryPC) { // no bytecode since last entry pc

-					pcToSourceMap[pcToSourceMapSize++] = lastEntryPC;

-					pcToSourceMap[pcToSourceMapSize++] = newLine;

-				}

-			} else {

-				// we can safely add the new entry. The endPC of the previous entry is not in conflit with the startPC of the new entry.

-				pcToSourceMap[pcToSourceMapSize++] = startPC;

-				pcToSourceMap[pcToSourceMapSize++] = newLine;

-			}

-		} else {

-			/* the last recorded entry is on the same line. But it could be relevant to widen this entry.

-			   we want to extend this entry forward in case we generated some bytecode before the last entry that are not related to any statement

-			*/	

-			if (startPC < pcToSourceMap[pcToSourceMapSize - 2]) {

-				int insertionIndex = insertionIndex(pcToSourceMap, pcToSourceMapSize, startPC);

-				if (insertionIndex != -1) {

-					// widen the existing entry

-					// we have to figure out if we need to move the last entry at another location to keep a sorted table

-					/* First we need to check if at the insertion position there is not an existing entry

-					 * that includes the one we want to insert. This is the case if pcToSourceMap[insertionIndex - 1] == newLine.

-					 * In this case we don't want to change the table. If not, we want to insert a new entry. Prior to insertion

-					 * we want to check if it is worth doing an arraycopy. If not we simply update the recorded pc.

-					 */

-					if (!((insertionIndex > 1) && (pcToSourceMap[insertionIndex - 1] == newLine))) {

-						if ((pcToSourceMapSize > 4) && (pcToSourceMap[pcToSourceMapSize - 4] > startPC)) {

-							System.arraycopy(pcToSourceMap, insertionIndex, pcToSourceMap, insertionIndex + 2, pcToSourceMapSize - 2 - insertionIndex);

-							pcToSourceMap[insertionIndex++] = startPC;

-							pcToSourceMap[insertionIndex] = newLine;						

-						} else {

-							pcToSourceMap[pcToSourceMapSize - 2] = startPC;

-						}

-					}

-				}

-			}

-		}

-		lastEntryPC = position;

-	} else {

-		// record the first entry

-		pcToSourceMap[pcToSourceMapSize++] = startPC;

-		pcToSourceMap[pcToSourceMapSize++] = newLine;

-		lastEntryPC = position;

-	}

-}

-/**

- * @param anExceptionLabel org.eclipse.wst.jsdt.internal.compiler.codegen.ExceptionLabel

- */

-public void registerExceptionHandler(ExceptionLabel anExceptionLabel) {

-	int length;

-	if (exceptionHandlersIndex >= (length = exceptionHandlers.length)) {

-		// resize the exception handlers table

-		System.arraycopy(exceptionHandlers, 0, exceptionHandlers = new ExceptionLabel[length + LABELS_INCREMENT], 0, length);

-	}

-	// no need to resize. So just add the new exception label

-	exceptionHandlers[exceptionHandlersIndex++] = anExceptionLabel;

-	exceptionHandlersCounter++;

-}

-public void removeExceptionHandler(ExceptionLabel exceptionLabel) {

-	for (int i = 0; i < exceptionHandlersIndex; i++) {

-		if (exceptionHandlers[i] == exceptionLabel) {

-			exceptionHandlers[i] = null;

-			exceptionHandlersCounter--;

-			return;

-		}

-	}

-}

-public final void removeNotDefinitelyAssignedVariables(Scope scope, int initStateIndex) {

-	// given some flow info, make sure we did not loose some variables initialization

-	// if this happens, then we must update their pc entries to reflect it in debug attributes

-	if (!generateLocalVariableTableAttributes)

-		return;

-/*	if (initStateIndex == lastInitStateIndexWhenRemovingInits)

-		return;

-		

-	lastInitStateIndexWhenRemovingInits = initStateIndex;

-	if (lastInitStateIndexWhenAddingInits != initStateIndex){

-		lastInitStateIndexWhenAddingInits = -2;// reinitialize add index 

-		// add(1)-remove(1)-add(1) -> ignore second add

-		// add(1)-remove(2)-add(1) -> perform second add

-	}*/

-	for (int i = 0; i < visibleLocalsCount; i++) {

-		LocalVariableBinding localBinding = visibleLocals[i];

-		if (localBinding != null) {

-			if (initStateIndex == -1 || !isDefinitelyAssigned(scope, initStateIndex, localBinding)) {

-				if (localBinding.initializationCount > 0) {

-					localBinding.recordInitializationEndPC(position);

-				}

-			}

-		}

-	}

-}

-/**

- * @param referenceMethod org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration

- * @param targetClassFile org.eclipse.wst.jsdt.internal.compiler.codegen.ClassFile

- */

-public void reset(AbstractMethodDeclaration referenceMethod, ClassFile targetClassFile) {

-	init(targetClassFile);

-	this.methodDeclaration = referenceMethod;

-	preserveUnusedLocals = referenceMethod.scope.problemReporter().options.preserveAllLocalVariables;

-	initializeMaxLocals(referenceMethod.binding);

-}

-/**

- * @param targetClassFile The given classfile to reset the code stream

- */

-public void resetForProblemClinit(ClassFile targetClassFile) {

-	init(targetClassFile);

-	maxLocals = 0;

-}

-private final void resizeByteArray() {

-	int length = bCodeStream.length;

-	int requiredSize = length + length;

-	if (classFileOffset > requiredSize) {

-		// must be sure to grow by enough

-		requiredSize = classFileOffset + length;

-	}

-	System.arraycopy(bCodeStream, 0, bCodeStream = new byte[requiredSize], 0, length);

-}

-final public void ret(int index) {

-	if (DEBUG) System.out.println(position + "\t\tret:"+index); //$NON-NLS-1$

-	countLabels = 0;

-	if (index > 255) { // Widen

-		if (classFileOffset + 3 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_wide;

-		bCodeStream[classFileOffset++] = OPC_ret;

-		writeUnsignedShort(index);

-	} else { // Don't Widen

-		if (classFileOffset + 1 >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position += 2;

-		bCodeStream[classFileOffset++] = OPC_ret;

-		bCodeStream[classFileOffset++] = (byte) index;

-	}

-}

-final public void return_() {

-	if (DEBUG) System.out.println(position + "\t\treturn"); //$NON-NLS-1$

-	countLabels = 0;

-	// the stackDepth should be equal to 0 

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_return;

-}

-final public void saload() {

-	if (DEBUG) System.out.println(position + "\t\tsaload"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_saload;

-}

-final public void sastore() {

-	if (DEBUG) System.out.println(position + "\t\tsastore"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth -= 3;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_sastore;

-}

-/**

- * @param operatorConstant int

- * @param type_ID int

- */

-public void sendOperator(int operatorConstant, int type_ID) {

-	switch (type_ID) {

-		case T_int :

-		case T_boolean :

-		case T_char :

-		case T_byte :

-		case T_short :

-			switch (operatorConstant) {

-				case PLUS :

-					this.iadd();

-					break;

-				case MINUS :

-					this.isub();

-					break;

-				case MULTIPLY :

-					this.imul();

-					break;

-				case DIVIDE :

-					this.idiv();

-					break;

-				case REMAINDER :

-					this.irem();

-					break;

-				case LEFT_SHIFT :

-					this.ishl();

-					break;

-				case RIGHT_SHIFT :

-					this.ishr();

-					break;

-				case UNSIGNED_RIGHT_SHIFT :

-					this.iushr();

-					break;

-				case AND :

-					this.iand();

-					break;

-				case OR :

-					this.ior();

-					break;

-				case XOR :

-					this.ixor();

-					break;

-			}

-			break;

-		case T_long :

-			switch (operatorConstant) {

-				case PLUS :

-					this.ladd();

-					break;

-				case MINUS :

-					this.lsub();

-					break;

-				case MULTIPLY :

-					this.lmul();

-					break;

-				case DIVIDE :

-					this.ldiv();

-					break;

-				case REMAINDER :

-					this.lrem();

-					break;

-				case LEFT_SHIFT :

-					this.lshl();

-					break;

-				case RIGHT_SHIFT :

-					this.lshr();

-					break;

-				case UNSIGNED_RIGHT_SHIFT :

-					this.lushr();

-					break;

-				case AND :

-					this.land();

-					break;

-				case OR :

-					this.lor();

-					break;

-				case XOR :

-					this.lxor();

-					break;

-			}

-			break;

-		case T_float :

-			switch (operatorConstant) {

-				case PLUS :

-					this.fadd();

-					break;

-				case MINUS :

-					this.fsub();

-					break;

-				case MULTIPLY :

-					this.fmul();

-					break;

-				case DIVIDE :

-					this.fdiv();

-					break;

-				case REMAINDER :

-					this.frem();

-			}

-			break;

-		case T_double :

-			switch (operatorConstant) {

-				case PLUS :

-					this.dadd();

-					break;

-				case MINUS :

-					this.dsub();

-					break;

-				case MULTIPLY :

-					this.dmul();

-					break;

-				case DIVIDE :

-					this.ddiv();

-					break;

-				case REMAINDER :

-					this.drem();

-			}

-	}

-}

-final public void sipush(int s) {

-	if (DEBUG) System.out.println(position + "\t\tsipush:"+s); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth++;

-	if (stackDepth > stackMax)

-		stackMax = stackDepth;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_sipush;

-	writeSignedShort(s);

-}

-public static final void sort(int[] tab, int lo0, int hi0, int[] result) {

-	int lo = lo0;

-	int hi = hi0;

-	int mid;

-	if (hi0 > lo0) {

-		/* Arbitrarily establishing partition element as the midpoint of

-		  * the array.

-		  */

-		mid = tab[ (lo0 + hi0) / 2];

-		// loop through the array until indices cross

-		while (lo <= hi) {

-			/* find the first element that is greater than or equal to 

-			 * the partition element starting from the left Index.

-			 */

-			while ((lo < hi0) && (tab[lo] < mid))

-				++lo;

-			/* find an element that is smaller than or equal to 

-			 * the partition element starting from the right Index.

-			 */

-			while ((hi > lo0) && (tab[hi] > mid))

-				--hi;

-			// if the indexes have not crossed, swap

-			if (lo <= hi) {

-				swap(tab, lo, hi, result);

-				++lo;

-				--hi;

-			}

-		}

-		/* If the right index has not reached the left side of array

-		  * must now sort the left partition.

-		  */

-		if (lo0 < hi)

-			sort(tab, lo0, hi, result);

-		/* If the left index has not reached the right side of array

-		  * must now sort the right partition.

-		  */

-		if (lo < hi0)

-			sort(tab, lo, hi0, result);

-	}

-}

-

-public final void store(LocalVariableBinding localBinding, boolean valueRequired) {

-	int localPosition = localBinding.resolvedPosition;

-	// Using dedicated int bytecode

-	switch(localBinding.type.id) {

-		case TypeIds.T_int :

-		case TypeIds.T_char :

-		case TypeIds.T_byte :

-		case TypeIds.T_short :

-		case TypeIds.T_boolean :

-			if (valueRequired)

-				this.dup();

-			switch (localPosition) {

-				case 0 :

-					this.istore_0();

-					break;

-				case 1 :

-					this.istore_1();

-					break;

-				case 2 :

-					this.istore_2();

-					break;

-				case 3 :

-					this.istore_3();

-					break;

-				//case -1 :

-				// internal failure: trying to store into variable not supposed to be generated

-				//	break;

-				default :

-					this.istore(localPosition);

-			}

-			break;

-		case TypeIds.T_float :

-			if (valueRequired)

-				this.dup();

-			switch (localPosition) {

-				case 0 :

-					this.fstore_0();

-					break;

-				case 1 :

-					this.fstore_1();

-					break;

-				case 2 :

-					this.fstore_2();

-					break;

-				case 3 :

-					this.fstore_3();

-					break;

-				default :

-					this.fstore(localPosition);

-			}

-			break;

-		case TypeIds.T_double :

-			if (valueRequired)

-				this.dup2();

-			switch (localPosition) {

-				case 0 :

-					this.dstore_0();

-					break;

-				case 1 :

-					this.dstore_1();

-					break;

-				case 2 :

-					this.dstore_2();

-					break;

-				case 3 :

-					this.dstore_3();

-					break;

-				default :

-					this.dstore(localPosition);

-			}

-			break;

-		case TypeIds.T_long :

-			if (valueRequired)

-				this.dup2();

-			switch (localPosition) {

-				case 0 :

-					this.lstore_0();

-					break;

-				case 1 :

-					this.lstore_1();

-					break;

-				case 2 :

-					this.lstore_2();

-					break;

-				case 3 :

-					this.lstore_3();

-					break;

-				default :

-					this.lstore(localPosition);

-			}

-			break;

-		default:

-			// Reference object

-			if (valueRequired)

-				this.dup();

-			switch (localPosition) {

-				case 0 :

-					this.astore_0();

-					break;

-				case 1 :

-					this.astore_1();

-					break;

-				case 2 :

-					this.astore_2();

-					break;

-				case 3 :

-					this.astore_3();

-					break;

-				default :

-					this.astore(localPosition);

-			}

-	}

-}

-public final void store(TypeBinding type, int localPosition) {

-	// Using dedicated int bytecode

-	if ((type == IntBinding) || (type == CharBinding) || (type == ByteBinding) || (type == ShortBinding) || (type == BooleanBinding)) {

-		switch (localPosition) {

-			case 0 :

-				this.istore_0();

-				break;

-			case 1 :

-				this.istore_1();

-				break;

-			case 2 :

-				this.istore_2();

-				break;

-			case 3 :

-				this.istore_3();

-				break;

-			default :

-				this.istore(localPosition);

-		}

-		return;

-	}

-	// Using dedicated float bytecode

-	if (type == FloatBinding) {

-		switch (localPosition) {

-			case 0 :

-				this.fstore_0();

-				break;

-			case 1 :

-				this.fstore_1();

-				break;

-			case 2 :

-				this.fstore_2();

-				break;

-			case 3 :

-				this.fstore_3();

-				break;

-			default :

-				this.fstore(localPosition);

-		}

-		return;

-	}

-	// Using dedicated long bytecode

-	if (type == LongBinding) {

-		switch (localPosition) {

-			case 0 :

-				this.lstore_0();

-				break;

-			case 1 :

-				this.lstore_1();

-				break;

-			case 2 :

-				this.lstore_2();

-				break;

-			case 3 :

-				this.lstore_3();

-				break;

-			default :

-				this.lstore(localPosition);

-		}

-		return;

-	}

-	// Using dedicated double bytecode

-	if (type == DoubleBinding) {

-		switch (localPosition) {

-			case 0 :

-				this.dstore_0();

-				break;

-			case 1 :

-				this.dstore_1();

-				break;

-			case 2 :

-				this.dstore_2();

-				break;

-			case 3 :

-				this.dstore_3();

-				break;

-			default :

-				this.dstore(localPosition);

-		}

-		return;

-	}

-	// Reference object

-	switch (localPosition) {

-		case 0 :

-			this.astore_0();

-			break;

-		case 1 :

-			this.astore_1();

-			break;

-		case 2 :

-			this.astore_2();

-			break;

-		case 3 :

-			this.astore_3();

-			break;

-		default :

-			this.astore(localPosition);

-	}

-}

-public final void storeInt(int localPosition) {

-	switch (localPosition) {

-		case 0 :

-			this.istore_0();

-			break;

-		case 1 :

-			this.istore_1();

-			break;

-		case 2 :

-			this.istore_2();

-			break;

-		case 3 :

-			this.istore_3();

-			break;

-		default :

-			this.istore(localPosition);

-	}

-}

-public final void storeObject(int localPosition) {

-	switch (localPosition) {

-		case 0 :

-			this.astore_0();

-			break;

-		case 1 :

-			this.astore_1();

-			break;

-		case 2 :

-			this.astore_2();

-			break;

-		case 3 :

-			this.astore_3();

-			break;

-		default :

-			this.astore(localPosition);

-	}

-}

-final public void swap() {

-	if (DEBUG) System.out.println(position + "\t\tswap"); //$NON-NLS-1$

-	countLabels = 0;

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_swap;

-}

-private static final void swap(int a[], int i, int j, int result[]) {

-	int T;

-	T = a[i];

-	a[i] = a[j];

-	a[j] = T;

-	T = result[j];

-	result[j] = result[i];

-	result[i] = T;

-}

-final public void tableswitch(CaseLabel defaultLabel, int low, int high, int[] keys, int[] sortedIndexes, CaseLabel[] casesLabel) {

-	if (DEBUG) System.out.println(position + "\t\ttableswitch"); //$NON-NLS-1$

-	countLabels = 0;

-	stackDepth--;

-	int length = casesLabel.length;

-	int pos = position;

-	defaultLabel.placeInstruction();

-	for (int i = 0; i < length; i++)

-		casesLabel[i].placeInstruction();

-	if (classFileOffset >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position++;

-	bCodeStream[classFileOffset++] = OPC_tableswitch;

-	for (int i = (3 - (pos % 4)); i > 0; i--) {

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = 0;

-	}

-	defaultLabel.branch();

-	writeSignedWord(low);

-	writeSignedWord(high);

-	int i = low, j = low;

-	// the index j is used to know if the index i is one of the missing entries in case of an 

-	// optimized tableswitch

-	while (true) {

-		int index;

-		int key = keys[index = sortedIndexes[j - low]];

-		if (key == i) {

-			casesLabel[index].branch();

-			j++;

-			if (i == high) break; // if high is maxint, then avoids wrapping to minint.

-		} else {

-			defaultLabel.branch();

-		}

-		i++;

-	}

-}

-public String toString() {

-	StringBuffer buffer = new StringBuffer("( position:"); //$NON-NLS-1$

-	buffer.append(position);

-	buffer.append(",\nstackDepth:"); //$NON-NLS-1$

-	buffer.append(stackDepth);

-	buffer.append(",\nmaxStack:"); //$NON-NLS-1$

-	buffer.append(stackMax);

-	buffer.append(",\nmaxLocals:"); //$NON-NLS-1$

-	buffer.append(maxLocals);

-	buffer.append(")"); //$NON-NLS-1$

-	return buffer.toString();

-}

-public void updateLastRecordedEndPC(int pos) {

-

-	/* Tune positions in the table, this is due to some 

-	 * extra bytecodes being

-	 * added to some user code (jumps). */

-	/** OLD CODE

-		if (!generateLineNumberAttributes)

-			return;

-		pcToSourceMap[pcToSourceMapSize - 1][1] = position;

-		// need to update the initialization endPC in case of generation of local variable attributes.

-		updateLocalVariablesAttribute(pos);	

-	*/	

-

-	if (!generateLineNumberAttributes)

-		return;

-	this.lastEntryPC = pos;

-	// need to update the initialization endPC in case of generation of local variable attributes.

-	updateLocalVariablesAttribute(pos);

-}

-public void updateLocalVariablesAttribute(int pos) {

-	// need to update the initialization endPC in case of generation of local variable attributes.

-	if (generateLocalVariableTableAttributes) {

-		for (int i = 0, max = locals.length; i < max; i++) {

-			LocalVariableBinding local = locals[i];

-			if ((local != null) && (local.initializationCount > 0)) {

-				if (local.initializationPCs[((local.initializationCount - 1) << 1) + 1] == pos) {

-					local.initializationPCs[((local.initializationCount - 1) << 1) + 1] = position;

-				}

-			}

-		}

-	}

-}

-/**

- * Write a signed 16 bits value into the byte array

- * @param value the signed short

- */

-public final void writeSignedShort(int value) {

-	// we keep the resize in here because it is used outside the code stream

-	if (classFileOffset + 1 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position += 2;

-	bCodeStream[classFileOffset++] = (byte) (value >> 8);

-	bCodeStream[classFileOffset++] = (byte) value;

-}

-public final void writeSignedShort(int pos, int value) {

-	int currentOffset = startingClassFileOffset + pos;

-	if (currentOffset + 1 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	bCodeStream[currentOffset] = (byte) (value >> 8);

-	bCodeStream[currentOffset + 1] = (byte) value;

-}

-public final void writeSignedWord(int value) {

-	// we keep the resize in here because it is used outside the code stream

-	if (classFileOffset + 3 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	position += 4;

-	bCodeStream[classFileOffset++] = (byte) ((value & 0xFF000000) >> 24);

-	bCodeStream[classFileOffset++] = (byte) ((value & 0xFF0000) >> 16);

-	bCodeStream[classFileOffset++] = (byte) ((value & 0xFF00) >> 8);

-	bCodeStream[classFileOffset++] = (byte) (value & 0xFF);

-}

-public final void writeSignedWord(int pos, int value) {

-	int currentOffset = startingClassFileOffset + pos;

-	if (currentOffset + 4 >= bCodeStream.length) {

-		resizeByteArray();

-	}

-	bCodeStream[currentOffset++] = (byte) ((value & 0xFF000000) >> 24);

-	bCodeStream[currentOffset++] = (byte) ((value & 0xFF0000) >> 16);

-	bCodeStream[currentOffset++] = (byte) ((value & 0xFF00) >> 8);

-	bCodeStream[currentOffset++] = (byte) (value & 0xFF);

-}

-/**

- * Write a unsigned 16 bits value into the byte array

- * @param value the unsigned short

- */

-protected final void writeUnsignedShort(int value) {

-	position += 2;

-	bCodeStream[classFileOffset++] = (byte) (value >>> 8);

-	bCodeStream[classFileOffset++] = (byte) value;

-}

-/*

- * Wide conditional branch compare, improved by swapping comparison opcode

- *   ifeq WideTarget

- * becomes

- *    ifne Intermediate

- *    gotow WideTarget

- *    Intermediate:

- */

-public void generateWideRevertedConditionalBranch(byte revertedOpcode, Label wideTarget) {

-		Label intermediate = new Label(this);

-		if (classFileOffset >= bCodeStream.length) {

-			resizeByteArray();

-		}

-		position++;

-		bCodeStream[classFileOffset++] = revertedOpcode;

-		intermediate.branch();

-		this.goto_w(wideTarget);

-		intermediate.place();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ConstantPool.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ConstantPool.js
deleted file mode 100644
index 829d4c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ConstantPool.js
+++ /dev/null
@@ -1,3609 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.ClassFile;

-

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-

-/**

- * This type is used to store all the constant pool entries.

- */

-public class ConstantPool implements ClassFileConstants, TypeIds {

-	public static final int DOUBLE_INITIAL_SIZE = 5;

-	public static final int FLOAT_INITIAL_SIZE = 3;

-	public static final int INT_INITIAL_SIZE = 248;

-	public static final int LONG_INITIAL_SIZE = 5;

-	public static final int UTF8_INITIAL_SIZE = 778;

-	public static final int STRING_INITIAL_SIZE = 761;

-	public static final int FIELD_INITIAL_SIZE = 156;

-	public static final int METHOD_INITIAL_SIZE = 236;

-	public static final int INTERFACE_INITIAL_SIZE = 50;

-	public static final int CLASS_INITIAL_SIZE = 86;

-	public static final int NAMEANDTYPE_INITIAL_SIZE = 272;

-	public static final int CONSTANTPOOL_INITIAL_SIZE = 2000;

-	public static final int CONSTANTPOOL_GROW_SIZE = 6000;

-	protected DoubleCache doubleCache;

-	protected FloatCache floatCache;

-	protected IntegerCache intCache;

-	protected LongCache longCache;

-	public CharArrayCache UTF8Cache;

-	protected CharArrayCache stringCache;

-	protected ObjectCache fieldCache;

-	protected ObjectCache methodCache;

-	protected ObjectCache interfaceMethodCache;

-	protected ObjectCache classCache;

-	protected FieldNameAndTypeCache nameAndTypeCacheForFields;

-	protected MethodNameAndTypeCache nameAndTypeCacheForMethods;

-	int[] wellKnownTypes = new int[23];

-	int[] wellKnownMethods = new int[49];

-	int[] wellKnownFields = new int[9];

-	int[] wellKnownFieldNameAndTypes = new int[2];

-	int[] wellKnownMethodNameAndTypes = new int[43];

-	public byte[] poolContent;

-	public int currentIndex = 1;

-	public int currentOffset;

-	// predefined constant index for well known types

-	final static int JAVA_LANG_BOOLEAN_TYPE = 0;

-	final static int JAVA_LANG_BYTE_TYPE = 1;

-	final static int JAVA_LANG_CHARACTER_TYPE = 2;

-	final static int JAVA_LANG_DOUBLE_TYPE = 3;

-	final static int JAVA_LANG_FLOAT_TYPE = 4;

-	final static int JAVA_LANG_INTEGER_TYPE = 5;

-	final static int JAVA_LANG_LONG_TYPE = 6;

-	final static int JAVA_LANG_SHORT_TYPE = 7;

-	final static int JAVA_LANG_VOID_TYPE = 8;

-	final static int JAVA_LANG_CLASS_TYPE = 9;

-	final static int JAVA_LANG_CLASSNOTFOUNDEXCEPTION_TYPE = 10;

-	final static int JAVA_LANG_NOCLASSDEFFOUNDERROR_TYPE = 11;

-	final static int JAVA_LANG_OBJECT_TYPE = 12;

-	final static int JAVA_LANG_STRING_TYPE = 13;

-	final static int JAVA_LANG_STRINGBUFFER_TYPE = 14;

-	final static int JAVA_LANG_SYSTEM_TYPE = 15;

-	final static int JAVA_LANG_THROWABLE_TYPE = 16;

-	final static int JAVA_LANG_ERROR_TYPE = 17;

-	final static int JAVA_LANG_EXCEPTION_TYPE = 18;

-	final static int JAVA_LANG_REFLECT_CONSTRUCTOR_TYPE = 19;

-	final static int JAVA_LANG_ASSERTIONERROR_TYPE = 20;

-	final static int JAVA_UTIL_ITERATOR_TYPE = 21;

-	final static int JAVA_LANG_STRINGBUILDER_TYPE = 22;

-	

-	// predefined constant index for well known fields  

-	final static int JAVA_LANG_BYTE_TYPE_FIELD = 0;

-	final static int JAVA_LANG_SHORT_TYPE_FIELD = 1;

-	final static int JAVA_LANG_CHARACTER_TYPE_FIELD = 2;

-	final static int JAVA_LANG_INTEGER_TYPE_FIELD = 3;

-	final static int JAVA_LANG_LONG_TYPE_FIELD = 4;

-	final static int JAVA_LANG_FLOAT_TYPE_FIELD = 5;

-	final static int JAVA_LANG_DOUBLE_TYPE_FIELD = 6;

-	final static int JAVA_LANG_BOOLEAN_TYPE_FIELD = 7;

-	final static int JAVA_LANG_VOID_TYPE_FIELD = 8;

-

-	// predefined constant index for well known methods 

-	final static int CLASS_FORNAME_METHOD = 0;

-	final static int NOCLASSDEFFOUNDERROR_CONSTR_METHOD = 1;

-	final static int STRINGBUFFER_APPEND_INT_METHOD = 2;

-	final static int STRINGBUFFER_APPEND_FLOAT_METHOD = 3;

-	final static int STRINGBUFFER_APPEND_LONG_METHOD = 4;

-	final static int STRINGBUFFER_APPEND_OBJECT_METHOD = 5;

-	final static int STRINGBUFFER_APPEND_CHAR_METHOD = 6;

-	final static int STRINGBUFFER_APPEND_STRING_METHOD = 7;

-	final static int STRINGBUFFER_APPEND_BOOLEAN_METHOD = 8;

-	final static int STRINGBUFFER_APPEND_DOUBLE_METHOD = 9;

-	final static int STRINGBUFFER_STRING_CONSTR_METHOD = 10;

-	final static int STRINGBUFFER_DEFAULT_CONSTR_METHOD = 11;

-	final static int STRINGBUFFER_TOSTRING_METHOD = 12;

-	final static int SYSTEM_EXIT_METHOD = 13;

-	final static int THROWABLE_GETMESSAGE_METHOD = 14;

-	final static int JAVALANGERROR_CONSTR_METHOD = 15;

-	final static int NEWINSTANCE_CONSTRUCTOR_METHOD = 16;

-	final static int STRING_INTERN_METHOD = 17;

-	final static int STRING_VALUEOF_INT_METHOD = 18;

-	final static int STRING_VALUEOF_FLOAT_METHOD = 19;

-	final static int STRING_VALUEOF_LONG_METHOD = 20;

-	final static int STRING_VALUEOF_OBJECT_METHOD = 21;

-	final static int STRING_VALUEOF_CHAR_METHOD = 22;

-	final static int STRING_VALUEOF_BOOLEAN_METHOD = 23;

-	final static int STRING_VALUEOF_DOUBLE_METHOD = 24;

-	final static int ASSERTIONERROR_CONSTR_OBJECT_METHOD = 25;

-	final static int ASSERTIONERROR_CONSTR_INT_METHOD = 26;

-	final static int ASSERTIONERROR_CONSTR_LONG_METHOD = 27;

-	final static int ASSERTIONERROR_CONSTR_FLOAT_METHOD = 28;

-	final static int ASSERTIONERROR_CONSTR_DOUBLE_METHOD = 29;

-	final static int ASSERTIONERROR_CONSTR_BOOLEAN_METHOD = 30;

-	final static int ASSERTIONERROR_CONSTR_CHAR_METHOD = 31;

-	final static int ASSERTIONERROR_DEFAULT_CONSTR_METHOD = 32;

-	final static int CLASS_DESIREDASSERTIONSTATUS_METHOD = 33;

-	final static int OBJECT_GETCLASS_METHOD = 34;

-	final static int CLASS_GETCOMPONENTTYPE_METHOD = 35;

-	final static int ITERATOR_HASNEXT_METHOD = 36;

-	final static int ITERATOR_NEXT_METHOD = 37;

-	final static int STRINGBUILDER_STRING_CONSTR_METHOD = 38;

-	final static int STRINGBUILDER_DEFAULT_CONSTR_METHOD = 39;

-	final static int STRINGBUILDER_TOSTRING_METHOD = 40;

-	final static int STRINGBUILDER_APPEND_INT_METHOD = 41;

-	final static int STRINGBUILDER_APPEND_FLOAT_METHOD = 42;

-	final static int STRINGBUILDER_APPEND_LONG_METHOD = 43;

-	final static int STRINGBUILDER_APPEND_OBJECT_METHOD = 44;

-	final static int STRINGBUILDER_APPEND_CHAR_METHOD = 45;

-	final static int STRINGBUILDER_APPEND_STRING_METHOD = 46;

-	final static int STRINGBUILDER_APPEND_BOOLEAN_METHOD = 47;

-	final static int STRINGBUILDER_APPEND_DOUBLE_METHOD = 48;

-	

-	// predefined constant index for well known name and type for fields

-	final static int TYPE_JAVALANGCLASS_NAME_AND_TYPE = 0;

-	final static int OUT_SYSTEM_NAME_AND_TYPE = 1;

-	// predefined constant index for well known name and type for methods

-	final static int FORNAME_CLASS_METHOD_NAME_AND_TYPE = 0;

-	final static int CONSTR_STRING_METHOD_NAME_AND_TYPE = 1;

-	final static int DEFAULT_CONSTR_METHOD_NAME_AND_TYPE = 2;

-	final static int APPEND_INT_STRINGBUFFER_METHOD_NAME_AND_TYPE = 3;

-	final static int APPEND_FLOAT_STRINGBUFFER_METHOD_NAME_AND_TYPE = 4;

-	final static int APPEND_LONG_STRINGBUFFER_METHOD_NAME_AND_TYPE = 5;

-	final static int APPEND_OBJECT_STRINGBUFFER_METHOD_NAME_AND_TYPE = 6;

-	final static int APPEND_CHAR_STRINGBUFFER_METHOD_NAME_AND_TYPE = 7;

-	final static int APPEND_STRING_STRINGBUFFER_METHOD_NAME_AND_TYPE = 8;

-	final static int APPEND_BOOLEAN_STRINGBUFFER_METHOD_NAME_AND_TYPE = 9;

-	final static int APPEND_DOUBLE_STRINGBUFFER_METHOD_NAME_AND_TYPE = 10;

-	final static int TOSTRING_METHOD_NAME_AND_TYPE = 11;

-	final static int EXIT_METHOD_NAME_AND_TYPE = 12;

-	final static int GETMESSAGE_METHOD_NAME_AND_TYPE = 13;

-	final static int NEWINSTANCE_METHOD_NAME_AND_TYPE = 14;

-	final static int INTERN_METHOD_NAME_AND_TYPE = 15;

-	final static int VALUEOF_INT_METHOD_NAME_AND_TYPE = 16;

-	final static int VALUEOF_FLOAT_METHOD_NAME_AND_TYPE = 17;

-	final static int VALUEOF_LONG_METHOD_NAME_AND_TYPE = 18;

-	final static int VALUEOF_OBJECT_METHOD_NAME_AND_TYPE = 19;

-	final static int VALUEOF_CHAR_METHOD_NAME_AND_TYPE = 20;

-	final static int VALUEOF_BOOLEAN_METHOD_NAME_AND_TYPE = 21;

-	final static int VALUEOF_DOUBLE_METHOD_NAME_AND_TYPE = 22;

-	final static int CONSTR_INT_METHOD_NAME_AND_TYPE = 23;

-	final static int CONSTR_LONG_METHOD_NAME_AND_TYPE = 24;

-	final static int CONSTR_FLOAT_METHOD_NAME_AND_TYPE = 25;

-	final static int CONSTR_DOUBLE_METHOD_NAME_AND_TYPE = 26;

-	final static int CONSTR_OBJECT_METHOD_NAME_AND_TYPE = 27;

-	final static int CONSTR_CHAR_METHOD_NAME_AND_TYPE = 28;

-	final static int CONSTR_BOOLEAN_METHOD_NAME_AND_TYPE = 29;

-	final static int DESIREDASSERTIONSTATUS_METHOD_NAME_AND_TYPE = 30;

-	final static int GETCLASS_OBJECT_METHOD_NAME_AND_TYPE = 31;

-	final static int GETCOMPONENTTYPE_CLASS_METHOD_NAME_AND_TYPE = 32;

-	final static int HASNEXT_METHOD_NAME_AND_TYPE = 33;

-	final static int NEXT_METHOD_NAME_AND_TYPE = 34;

-	final static int APPEND_INT_STRINGBUILDER_METHOD_NAME_AND_TYPE = 35;

-	final static int APPEND_FLOAT_STRINGBUILDER_METHOD_NAME_AND_TYPE = 36;

-	final static int APPEND_LONG_STRINGBUILDER_METHOD_NAME_AND_TYPE = 37;

-	final static int APPEND_OBJECT_STRINGBUILDER_METHOD_NAME_AND_TYPE = 38;

-	final static int APPEND_CHAR_STRINGBUILDER_METHOD_NAME_AND_TYPE = 39;

-	final static int APPEND_STRING_STRINGBUILDER_METHOD_NAME_AND_TYPE = 40;

-	final static int APPEND_BOOLEAN_STRINGBUILDER_METHOD_NAME_AND_TYPE = 41;

-	final static int APPEND_DOUBLE_STRINGBUILDER_METHOD_NAME_AND_TYPE = 42;

-	

-	

-	public ClassFile classFile;

-

-/**

- * ConstantPool constructor comment.

- */

-public ConstantPool(ClassFile classFile) {

-	this.UTF8Cache = new CharArrayCache(UTF8_INITIAL_SIZE);

-	this.stringCache = new CharArrayCache(STRING_INITIAL_SIZE);

-	this.fieldCache = new ObjectCache(FIELD_INITIAL_SIZE);

-	this.methodCache = new ObjectCache(METHOD_INITIAL_SIZE);

-	this.interfaceMethodCache = new ObjectCache(INTERFACE_INITIAL_SIZE);

-	this.classCache = new ObjectCache(CLASS_INITIAL_SIZE);

-	this.nameAndTypeCacheForMethods = new MethodNameAndTypeCache(NAMEANDTYPE_INITIAL_SIZE);

-	this.nameAndTypeCacheForFields = new FieldNameAndTypeCache(NAMEANDTYPE_INITIAL_SIZE);   

-	this.poolContent = classFile.header;

-	this.currentOffset = classFile.headerOffset;

-	// currentOffset is initialized to 0 by default

-	this.currentIndex = 1;

-	this.classFile = classFile;

-}

-/**

- * Return the content of the receiver

- */

-public byte[] dumpBytes() {

-	System.arraycopy(poolContent, 0, (poolContent = new byte[currentOffset]), 0, currentOffset);

-	return poolContent;

-}

-/**

- * Return the index of the @fieldBinding.

- *

- * Returns -1 if the @fieldBinding is not a predefined fieldBinding, 

- * the right index otherwise.

- *

- * @param fieldBinding org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding

- * @return <CODE>int</CODE>

- */

-public int indexOfWellKnownFieldNameAndType(FieldBinding fieldBinding) {

-	if ((fieldBinding.type.id == T_JavaLangClass) && (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE)))

-		return TYPE_JAVALANGCLASS_NAME_AND_TYPE;

-	if ((fieldBinding.type.id == T_JavaIoPrintStream) && (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.Out)))

-		return OUT_SYSTEM_NAME_AND_TYPE;

-	return -1;

-}

-/**

- * Return the index of the @fieldBinding.

- *

- * Returns -1 if the @fieldBinding is not a predefined fieldBinding, 

- * the right index otherwise.

- *

- * @param fieldBinding org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding

- * @return <CODE>int</CODE>

- */

-public int indexOfWellKnownFields(FieldBinding fieldBinding) {

-	switch (fieldBinding.declaringClass.id) {

-		case T_JavaLangByte :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_BYTE_TYPE_FIELD;

-			break;

-		case T_JavaLangShort :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_SHORT_TYPE_FIELD;

-			break;

-		case T_JavaLangCharacter :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_CHARACTER_TYPE_FIELD;

-			break;

-		case T_JavaLangInteger :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_INTEGER_TYPE_FIELD;

-			break;

-		case T_JavaLangLong :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_LONG_TYPE_FIELD;

-			break;

-		case T_JavaLangFloat :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_FLOAT_TYPE_FIELD;

-			break;

-		case T_JavaLangDouble :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_DOUBLE_TYPE_FIELD;

-			break;

-		case T_JavaLangBoolean :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_BOOLEAN_TYPE_FIELD;

-			break;

-		case T_JavaLangVoid :

-			if (CharOperation.equals(fieldBinding.name, QualifiedNamesConstants.TYPE))

-				return JAVA_LANG_VOID_TYPE_FIELD;

-			break;

-	}

-	return -1;

-}

-/**

- * Return the index of the @methodBinding.

- *

- * Returns -1 if the @methodBinding is not a predefined methodBinding, 

- * the right index otherwise.

- *

- * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

- * @return <CODE>int</CODE>

- */

-public int indexOfWellKnownMethodNameAndType(MethodBinding methodBinding) {

-	char firstChar = methodBinding.selector[0];

-	switch (firstChar) {

-		case 'f' :

-			if ((methodBinding.parameters.length == 1) && (methodBinding.parameters[0].id == T_JavaLangString) && (methodBinding.returnType.id == T_JavaLangClass) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.ForName))) {

-				// This method binding is forName(java.lang.String)

-				return FORNAME_CLASS_METHOD_NAME_AND_TYPE;

-			}

-			break;

-		case '<' :

-			if (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Init)) {

-				switch(methodBinding.parameters.length) {

-					case 1:

-						switch(methodBinding.parameters[0].id) {

-							case T_String :

-								if (CharOperation.equals(methodBinding.signature(), QualifiedNamesConstants.StringConstructorSignature)) {

-									return CONSTR_STRING_METHOD_NAME_AND_TYPE;	

-								} else {

-									return -1;

-								}

-							case T_Object :

-								if (CharOperation.equals(methodBinding.signature(), QualifiedNamesConstants.AssertionErrorObjectConstrSignature)) {

-									return CONSTR_OBJECT_METHOD_NAME_AND_TYPE;

-								} else {

-									return -1;

-								}

-							case T_int :

-								if (CharOperation.equals(methodBinding.signature(), QualifiedNamesConstants.AssertionErrorIntConstrSignature)) {

-									return CONSTR_INT_METHOD_NAME_AND_TYPE;

-								} else {

-									return -1;

-								}

-							case T_char :

-								if (CharOperation.equals(methodBinding.signature(), QualifiedNamesConstants.AssertionErrorCharConstrSignature)) {

-									return CONSTR_CHAR_METHOD_NAME_AND_TYPE;

-								} else {

-									return -1;

-								}

-							case T_boolean :

-								if (CharOperation.equals(methodBinding.signature(), QualifiedNamesConstants.AssertionErrorBooleanConstrSignature)) {

-									return CONSTR_BOOLEAN_METHOD_NAME_AND_TYPE;

-								} else {

-									return -1;

-								}

-							case T_float :

-								if (CharOperation.equals(methodBinding.signature(), QualifiedNamesConstants.AssertionErrorFloatConstrSignature)) {

-									return CONSTR_FLOAT_METHOD_NAME_AND_TYPE;

-								} else {

-									return -1;

-								}

-							case T_double :

-								if (CharOperation.equals(methodBinding.signature(), QualifiedNamesConstants.AssertionErrorDoubleConstrSignature)) {

-									return CONSTR_DOUBLE_METHOD_NAME_AND_TYPE;

-								} else {

-									return -1;

-								}

-							case T_long :

-								if (CharOperation.equals(methodBinding.signature(), QualifiedNamesConstants.AssertionErrorLongConstrSignature)) {

-									return CONSTR_LONG_METHOD_NAME_AND_TYPE;

-								} else {

-									return -1;

-								}

-						}

-					case 0:

-						if (methodBinding.signature().length == 3) {

-							return DEFAULT_CONSTR_METHOD_NAME_AND_TYPE;

-						}

-				}

-			}

-			break;

-		case 'a' :

-			if ((methodBinding.parameters.length == 1) && CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Append)) {

-				if (methodBinding.returnType.id == T_JavaLangStringBuffer) {

-					switch (methodBinding.parameters[0].id) {

-						case T_int :

-						case T_byte :

-						case T_short :

-							// This method binding is append(int)

-							return APPEND_INT_STRINGBUFFER_METHOD_NAME_AND_TYPE;

-						case T_float :

-							// This method binding is append(float)

-							return APPEND_FLOAT_STRINGBUFFER_METHOD_NAME_AND_TYPE;

-						case T_long :

-							// This method binding is append(long)

-							return APPEND_LONG_STRINGBUFFER_METHOD_NAME_AND_TYPE;

-						case T_JavaLangObject :

-							// This method binding is append(java.lang.Object)

-							return APPEND_OBJECT_STRINGBUFFER_METHOD_NAME_AND_TYPE;

-						case T_char :

-							// This method binding is append(char)

-							return APPEND_CHAR_STRINGBUFFER_METHOD_NAME_AND_TYPE;

-						case T_JavaLangString :

-							// This method binding is append(java.lang.String)

-							return APPEND_STRING_STRINGBUFFER_METHOD_NAME_AND_TYPE;

-						case T_boolean :

-							// This method binding is append(boolean)

-							return APPEND_BOOLEAN_STRINGBUFFER_METHOD_NAME_AND_TYPE;

-						case T_double :

-							// This method binding is append(double)

-							return APPEND_DOUBLE_STRINGBUFFER_METHOD_NAME_AND_TYPE;

-					}

-				} else if (methodBinding.returnType.id == T_JavaLangStringBuilder) {

-					switch (methodBinding.parameters[0].id) {

-						case T_int :

-						case T_byte :

-						case T_short :

-							// This method binding is append(int)

-							return APPEND_INT_STRINGBUILDER_METHOD_NAME_AND_TYPE;

-						case T_float :

-							// This method binding is append(float)

-							return APPEND_FLOAT_STRINGBUILDER_METHOD_NAME_AND_TYPE;

-						case T_long :

-							// This method binding is append(long)

-							return APPEND_LONG_STRINGBUILDER_METHOD_NAME_AND_TYPE;

-						case T_JavaLangObject :

-							// This method binding is append(java.lang.Object)

-							return APPEND_OBJECT_STRINGBUILDER_METHOD_NAME_AND_TYPE;

-						case T_char :

-							// This method binding is append(char)

-							return APPEND_CHAR_STRINGBUILDER_METHOD_NAME_AND_TYPE;

-						case T_JavaLangString :

-							// This method binding is append(java.lang.String)

-							return APPEND_STRING_STRINGBUILDER_METHOD_NAME_AND_TYPE;

-						case T_boolean :

-							// This method binding is append(boolean)

-							return APPEND_BOOLEAN_STRINGBUILDER_METHOD_NAME_AND_TYPE;

-						case T_double :

-							// This method binding is append(double)

-							return APPEND_DOUBLE_STRINGBUILDER_METHOD_NAME_AND_TYPE;

-					}

-				}

-			}

-			break;

-		case 't' :

-			if ((methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.ToString))) {

-				// This method binding is toString()

-				return TOSTRING_METHOD_NAME_AND_TYPE;

-			}

-			break;

-		case 'v' :

-			if ((methodBinding.parameters.length == 1) && (methodBinding.returnType.id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.ValueOf))) {

-				switch(methodBinding.parameters[0].id) {

-					case T_Object:

-						return VALUEOF_OBJECT_METHOD_NAME_AND_TYPE;

-					case T_int:

-					case T_short:

-					case T_byte:

-						return VALUEOF_INT_METHOD_NAME_AND_TYPE;

-					case T_long:

-						return VALUEOF_LONG_METHOD_NAME_AND_TYPE;

-					case T_float:

-						return VALUEOF_FLOAT_METHOD_NAME_AND_TYPE;

-					case T_double:

-						return VALUEOF_DOUBLE_METHOD_NAME_AND_TYPE;

-					case T_boolean:

-						return VALUEOF_BOOLEAN_METHOD_NAME_AND_TYPE;

-					case T_char:

-						return VALUEOF_CHAR_METHOD_NAME_AND_TYPE;

-				}

-			}

-			break;

-		case 'e' :

-			if ((methodBinding.parameters.length == 1) && (methodBinding.parameters[0].id == T_int) && (methodBinding.returnType.id == T_void) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Exit))) {

-				// This method binding is exit(int)

-				return EXIT_METHOD_NAME_AND_TYPE;

-			}

-			break;

-		case 'g' :

-			if ((methodBinding.selector.length == 10)

-			    && (methodBinding.parameters.length == 0)

-			    && (methodBinding.returnType.id == T_JavaLangString)

-			    && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.GetMessage))) {

-				// This method binding is getMessage()

-				return GETMESSAGE_METHOD_NAME_AND_TYPE;

-			}

-			if (methodBinding.parameters.length == 0

-				&& methodBinding.returnType.id == T_JavaLangClass

-				&& CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.GetClass)) {

-					return GETCLASS_OBJECT_METHOD_NAME_AND_TYPE;

-			}

-			if (methodBinding.parameters.length == 0

-				&& methodBinding.returnType.id == T_JavaLangClass

-				&& CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.GetComponentType)) {

-					return GETCOMPONENTTYPE_CLASS_METHOD_NAME_AND_TYPE;

-			}

-			break;

-		case 'i' :

-			if ((methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Intern))) {

-				// This method binding is intern()java.lang.String

-				return INTERN_METHOD_NAME_AND_TYPE;

-			}

-			break;

-		case 'h' :

-			if ((methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_boolean) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.HasNext))) {

-				// This method binding is hasNext()Z

-				return HASNEXT_METHOD_NAME_AND_TYPE;

-			}

-		case 'n' :

-			if ((methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_JavaLangObject) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Next))) {

-				// This method binding is next()java.lang.Object

-				return NEXT_METHOD_NAME_AND_TYPE;

-			}

-	}

-	return -1;

-}

-/**

- * Return the index of the @methodBinding.

- *

- * Returns -1 if the @methodBinding is not a predefined methodBinding, 

- * the right index otherwise.

- *

- * @param methodBinding org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

- * @return <CODE>int</CODE>

- */

-public int indexOfWellKnownMethods(MethodBinding methodBinding) {

-	char firstChar = methodBinding.selector[0];

-	switch (methodBinding.declaringClass.id) {

-		case T_JavaLangClass :

-			if ((firstChar == 'f') && (methodBinding.isStatic()) && (methodBinding.parameters.length == 1) && (methodBinding.parameters[0].id == T_JavaLangString) && (methodBinding.returnType.id == T_JavaLangClass) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.ForName))) {

-				// This method binding is forName(java.lang.String)

-				return CLASS_FORNAME_METHOD;

-			} else if ((firstChar == 'd') && (methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_boolean) && CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.DesiredAssertionStatus)) {

-					return CLASS_DESIREDASSERTIONSTATUS_METHOD;

-			} else if ((firstChar == 'g') && (methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_JavaLangClass) && CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.GetComponentType)) {

-				return CLASS_GETCOMPONENTTYPE_METHOD;

-			}

-			break;

-		case T_JavaLangNoClassDefError :

-			if ((firstChar == '<') && (methodBinding.parameters.length == 1) && (methodBinding.parameters[0].id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Init))) {

-				// This method binding is NoClassDefFoundError(java.lang.String)

-				return NOCLASSDEFFOUNDERROR_CONSTR_METHOD;

-			}

-			break;

-		case T_JavaLangReflectConstructor :

-			if ((firstChar == 'n') && (methodBinding.parameters.length == 1) && (methodBinding.returnType.id == T_JavaLangObject) && CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.NewInstance) && CharOperation.equals(methodBinding.parameters[0].constantPoolName(), QualifiedNamesConstants.ArrayJavaLangObjectConstantPoolName)) {

-				return NEWINSTANCE_CONSTRUCTOR_METHOD;

-			}

-			break;

-		case T_JavaLangStringBuffer :

-			if ((firstChar == 'a') && (methodBinding.parameters.length == 1) && (methodBinding.returnType.id == T_JavaLangStringBuffer) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Append))) {

-				switch (methodBinding.parameters[0].id) {

-					case T_int :

-					case T_byte :

-					case T_short :

-						// This method binding is append(int)

-						return STRINGBUFFER_APPEND_INT_METHOD;

-					case T_float :

-						// This method binding is append(float)

-						return STRINGBUFFER_APPEND_FLOAT_METHOD;

-					case T_long :

-						// This method binding is append(long)

-						return STRINGBUFFER_APPEND_LONG_METHOD;

-					case T_JavaLangObject :

-						// This method binding is append(java.lang.Object)

-						return STRINGBUFFER_APPEND_OBJECT_METHOD;

-					case T_char :

-						// This method binding is append(char)

-						return STRINGBUFFER_APPEND_CHAR_METHOD;

-					case T_JavaLangString :

-						// This method binding is append(java.lang.String)

-						return STRINGBUFFER_APPEND_STRING_METHOD;

-					case T_boolean :

-						// This method binding is append(boolean)

-						return STRINGBUFFER_APPEND_BOOLEAN_METHOD;

-					case T_double :

-						// This method binding is append(double)

-						return STRINGBUFFER_APPEND_DOUBLE_METHOD;

-				}

-			} else

-				if ((firstChar == 't') && (methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.ToString))) {

-					// This method binding is toString()

-					return STRINGBUFFER_TOSTRING_METHOD;

-				} else

-					if ((firstChar == '<') && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Init))) {

-						if ((methodBinding.parameters.length == 1) && (methodBinding.parameters[0].id == T_JavaLangString)) {

-							// This method binding is <init>(String)                    

-							return STRINGBUFFER_STRING_CONSTR_METHOD;

-						} else {

-							if (methodBinding.parameters.length == 0) {

-								// This method binding is <init>()

-								return STRINGBUFFER_DEFAULT_CONSTR_METHOD;

-							}

-						}

-					}

-			break;

-		case T_JavaLangStringBuilder :

-			if ((firstChar == 'a') && (methodBinding.parameters.length == 1) && (methodBinding.returnType.id == T_JavaLangStringBuilder) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Append))) {

-				switch (methodBinding.parameters[0].id) {

-					case T_int :

-					case T_byte :

-					case T_short :

-						// This method binding is append(int)

-						return STRINGBUILDER_APPEND_INT_METHOD;

-					case T_float :

-						// This method binding is append(float)

-						return STRINGBUILDER_APPEND_FLOAT_METHOD;

-					case T_long :

-						// This method binding is append(long)

-						return STRINGBUILDER_APPEND_LONG_METHOD;

-					case T_JavaLangObject :

-						// This method binding is append(java.lang.Object)

-						return STRINGBUILDER_APPEND_OBJECT_METHOD;

-					case T_char :

-						// This method binding is append(char)

-						return STRINGBUILDER_APPEND_CHAR_METHOD;

-					case T_JavaLangString :

-						// This method binding is append(java.lang.String)

-						return STRINGBUILDER_APPEND_STRING_METHOD;

-					case T_boolean :

-						// This method binding is append(boolean)

-						return STRINGBUILDER_APPEND_BOOLEAN_METHOD;

-					case T_double :

-						// This method binding is append(double)

-						return STRINGBUILDER_APPEND_DOUBLE_METHOD;

-				}

-			} else

-				if ((firstChar == 't') && (methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.ToString))) {

-					// This method binding is toString()

-					return STRINGBUILDER_TOSTRING_METHOD;

-				} else

-					if ((firstChar == '<') && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Init))) {

-						if ((methodBinding.parameters.length == 1) && (methodBinding.parameters[0].id == T_JavaLangString)) {

-							// This method binding is <init>(String)                    

-							return STRINGBUILDER_STRING_CONSTR_METHOD;

-						} else {

-							if (methodBinding.parameters.length == 0) {

-								// This method binding is <init>()

-								return STRINGBUILDER_DEFAULT_CONSTR_METHOD;

-							}

-						}

-					}

-			break;

-		case T_JavaLangString :

-			if ((firstChar == 'v') && (methodBinding.parameters.length == 1) && (methodBinding.returnType.id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.ValueOf))) {

-				// This method binding is valueOf(java.lang.Object)

-				switch (methodBinding.parameters[0].id) {

-					case T_Object :

-						return STRING_VALUEOF_OBJECT_METHOD;

-					case T_int :

-					case T_short :

-					case T_byte :

-						return STRING_VALUEOF_INT_METHOD;

-					case T_long :

-						return STRING_VALUEOF_LONG_METHOD;

-					case T_float :

-						return STRING_VALUEOF_FLOAT_METHOD;

-					case T_double :

-						return STRING_VALUEOF_DOUBLE_METHOD;

-					case T_boolean :

-						return STRING_VALUEOF_BOOLEAN_METHOD;

-					case T_char :

-						return STRING_VALUEOF_CHAR_METHOD;

-				}

-			} else

-				if ((firstChar == 'i') && (methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Intern))) {

-					// This method binding is valueOf(java.lang.Object)

-					return STRING_INTERN_METHOD;

-				}

-			break;

-		case T_JavaLangSystem :

-			if ((firstChar == 'e') && (methodBinding.parameters.length == 1) && (methodBinding.parameters[0].id == T_int) && (methodBinding.returnType.id == T_void) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Exit))) {

-				// This method binding is exit(int)

-				return SYSTEM_EXIT_METHOD;

-			}

-			break;

-		case T_JavaLangThrowable :

-			if ((firstChar == 'g') && (methodBinding.selector.length == 10) && (methodBinding.parameters.length == 0) && (methodBinding.returnType.id == T_JavaLangString) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.GetMessage))) {

-				// This method binding is getMessage()

-				return THROWABLE_GETMESSAGE_METHOD;

-			}

-			break;

-		case T_JavaLangError :

-			if ((firstChar == '<') && (methodBinding.parameters.length == 1) && (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Init)) && (methodBinding.parameters[0].id == T_String)) {

-				return JAVALANGERROR_CONSTR_METHOD;

-			}

-			break;

-		case T_JavaLangAssertionError :

-			if ((firstChar == '<') && CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Init)) {

-				switch (methodBinding.parameters.length) {

-					case 0:

-						return ASSERTIONERROR_DEFAULT_CONSTR_METHOD;

-					case 1:

-						switch(methodBinding.parameters[0].id) {

-							case T_boolean :

-								return ASSERTIONERROR_CONSTR_BOOLEAN_METHOD;

-							case T_char :

-								return ASSERTIONERROR_CONSTR_CHAR_METHOD;

-							case T_double :

-								return ASSERTIONERROR_CONSTR_DOUBLE_METHOD;

-							case T_int :

-							case T_byte :

-							case T_short :

-								return ASSERTIONERROR_CONSTR_INT_METHOD;

-							case T_float :

-								return ASSERTIONERROR_CONSTR_FLOAT_METHOD;

-							case T_long :

-								return ASSERTIONERROR_CONSTR_LONG_METHOD;

-							default:

-								return ASSERTIONERROR_CONSTR_OBJECT_METHOD;

-						}

-				}

-			}

-			break;

-		case T_JavaLangObject :

-			if (methodBinding.parameters.length == 0

-				&& CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.GetClass)) {

-					return OBJECT_GETCLASS_METHOD;

-			}

-			break;

-		case T_JavaUtilIterator :

-			if (methodBinding.parameters.length == 0) {

-				if (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.HasNext)) {

-					return ITERATOR_HASNEXT_METHOD;

-				}

-				if (CharOperation.equals(methodBinding.selector, QualifiedNamesConstants.Next)) {

-					return ITERATOR_NEXT_METHOD;

-				}

-			}

-	}

-	return -1;

-}

-/**

- * Return the index of the @typeBinding

- *

- * Returns -1 if the @typeBinding is not a predefined binding, the right index 

- * otherwise.

- *

- * @param typeBinding org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding

- * @return <CODE>int</CODE>

- */

-public int indexOfWellKnownTypes(TypeBinding typeBinding) {

-	switch(typeBinding.id) {

-		case T_JavaLangBoolean : return JAVA_LANG_BOOLEAN_TYPE;

-		case T_JavaLangByte : return JAVA_LANG_BYTE_TYPE;

-		case T_JavaLangCharacter : return JAVA_LANG_CHARACTER_TYPE;

-		case T_JavaLangDouble : return JAVA_LANG_DOUBLE_TYPE;

-		case T_JavaLangFloat : return JAVA_LANG_FLOAT_TYPE;

-		case T_JavaLangInteger : return JAVA_LANG_INTEGER_TYPE;

-		case T_JavaLangLong : return JAVA_LANG_LONG_TYPE;

-		case T_JavaLangShort : return JAVA_LANG_SHORT_TYPE;

-		case T_JavaLangVoid : return JAVA_LANG_VOID_TYPE;

-		case T_JavaLangClass : return JAVA_LANG_CLASS_TYPE;

-		case T_JavaLangClassNotFoundException : return JAVA_LANG_CLASSNOTFOUNDEXCEPTION_TYPE;

-		case T_JavaLangNoClassDefError : return JAVA_LANG_NOCLASSDEFFOUNDERROR_TYPE;

-		case T_JavaLangObject : return JAVA_LANG_OBJECT_TYPE;

-		case T_JavaLangString : return JAVA_LANG_STRING_TYPE;

-		case T_JavaLangStringBuffer : return JAVA_LANG_STRINGBUFFER_TYPE;

-		case T_JavaLangStringBuilder: return JAVA_LANG_STRINGBUILDER_TYPE;

-		case T_JavaLangSystem : return JAVA_LANG_SYSTEM_TYPE;

-		case T_JavaLangThrowable : return JAVA_LANG_THROWABLE_TYPE;

-		case T_JavaLangError : return JAVA_LANG_ERROR_TYPE;

-		case T_JavaLangException : return JAVA_LANG_EXCEPTION_TYPE;

-		case T_JavaLangReflectConstructor : return JAVA_LANG_REFLECT_CONSTRUCTOR_TYPE;

-		case T_JavaLangAssertionError : return JAVA_LANG_ASSERTIONERROR_TYPE;

-		case T_JavaUtilIterator : return JAVA_UTIL_ITERATOR_TYPE;

-	}

-	return -1;

-}

-public int literalIndex(byte[] utf8encoding, char[] stringCharArray) {

-	int index;

-	if ((index = UTF8Cache.get(stringCharArray)) < 0) {

-		// The entry doesn't exit yet

-		index = UTF8Cache.put(stringCharArray, currentIndex);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		currentIndex++;

-		// Write the tag first

-		writeU1(Utf8Tag);

-		// Then the size of the stringName array

-		//writeU2(utf8Constant.length);

-		int savedCurrentOffset = currentOffset;

-		int utf8encodingLength = utf8encoding.length;

-		if (currentOffset + 2 + utf8encodingLength >= poolContent.length) {

-			// we need to resize the poolContent array because we won't have

-			// enough space to write the length

-			resizePoolContents(2 + utf8encodingLength);

-		}

-		currentOffset += 2;

-		// add in once the whole byte array

-		System.arraycopy(utf8encoding, 0, poolContent, currentOffset, utf8encodingLength);

-		currentOffset += utf8encodingLength;

-		// Now we know the length that we have to write in the constant pool

-		// we use savedCurrentOffset to do that

-		poolContent[savedCurrentOffset] = (byte) (utf8encodingLength >> 8);

-		poolContent[savedCurrentOffset + 1] = (byte) utf8encodingLength;

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @param utf8Constant char[]

- * @return <CODE>int</CODE>

- */

-public int literalIndex(char[] utf8Constant) {

-	int index;

-	if ((index = UTF8Cache.get(utf8Constant)) < 0) {

-		// The entry doesn't exit yet

-		// Write the tag first

-		writeU1(Utf8Tag);

-		// Then the size of the stringName array

-		int savedCurrentOffset = currentOffset;

-		if (currentOffset + 2 >= poolContent.length) {

-			// we need to resize the poolContent array because we won't have

-			// enough space to write the length

-			resizePoolContents(2);

-		}

-		currentOffset += 2;

-		int length = 0;

-		for (int i = 0; i < utf8Constant.length; i++) {

-			char current = utf8Constant[i];

-			if ((current >= 0x0001) && (current <= 0x007F)) {

-				// we only need one byte: ASCII table

-				writeU1(current);

-				length++;

-			} else

-				if (current > 0x07FF) {

-					// we need 3 bytes

-					length += 3;

-					writeU1(0xE0 | ((current >> 12) & 0x0F)); // 0xE0 = 1110 0000

-					writeU1(0x80 | ((current >> 6) & 0x3F)); // 0x80 = 1000 0000

-					writeU1(0x80 | (current & 0x3F)); // 0x80 = 1000 0000

-				} else {

-					// we can be 0 or between 0x0080 and 0x07FF

-					// In that case we only need 2 bytes

-					length += 2;

-					writeU1(0xC0 | ((current >> 6) & 0x1F)); // 0xC0 = 1100 0000

-					writeU1(0x80 | (current & 0x3F)); // 0x80 = 1000 0000

-				}

-		}

-		if (length >= 65535) {

-			currentOffset = savedCurrentOffset - 1;

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceForConstant(this.classFile.referenceBinding.scope.referenceType());

-		}

-		index = UTF8Cache.put(utf8Constant, currentIndex);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		currentIndex++;     

-		// Now we know the length that we have to write in the constant pool

-		// we use savedCurrentOffset to do that

-		poolContent[savedCurrentOffset] = (byte) (length >> 8);

-		poolContent[savedCurrentOffset + 1] = (byte) length;

-	}

-	return index;

-}

-public int literalIndex(char[] stringCharArray, byte[] utf8encoding) {

-	int index;

-	int stringIndex;

-	if ((index = stringCache.get(stringCharArray)) < 0) {

-		// The entry doesn't exit yet

-		stringIndex = literalIndex(utf8encoding, stringCharArray);

-		index = stringCache.put(stringCharArray, currentIndex++);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the tag first

-		writeU1(StringTag);

-		// Then the string index

-		writeU2(stringIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the double

- * value. If the double is not already present into the pool, it is added. The 

- * double cache is updated and it returns the right index.

- *

- * @param key <CODE>double</CODE>

- * @return <CODE>int</CODE>

- */

-public int literalIndex(double key) {

-	//Retrieve the index from the cache

-	// The double constant takes two indexes into the constant pool, but we only store

-	// the first index into the long table

-	int index;

-	// lazy initialization for base type caches

-	// If it is null, initialize it, otherwise use it

-	if (doubleCache == null) {

-			doubleCache = new DoubleCache(DOUBLE_INITIAL_SIZE);

-	}

-	if ((index = doubleCache.get(key)) < 0) {

-		index = doubleCache.put(key, currentIndex++);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		currentIndex++; // a double needs an extra place into the constant pool

-		// Write the double into the constant pool

-		// First add the tag

-		writeU1(DoubleTag);

-		// Then add the 8 bytes representing the double

-		long temp = java.lang.Double.doubleToLongBits(key);

-		int length = poolContent.length;

-		if (currentOffset + 8 >= length) {

-			resizePoolContents(8);

-		}

-		for (int i = 0; i < 8; i++) {

-			poolContent[currentOffset++] = (byte) (temp >>> (56 - (i << 3)));

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the float

- * value. If the float is not already present into the pool, it is added. The 

- * int cache is updated and it returns the right index.

- *

- * @param key <CODE>float</CODE>

- * @return <CODE>int</CODE>

- */

-public int literalIndex(float key) {

-	//Retrieve the index from the cache

-	int index;

-	// lazy initialization for base type caches

-	// If it is null, initialize it, otherwise use it

-	if (floatCache == null) {

-		floatCache = new FloatCache(FLOAT_INITIAL_SIZE);

-	}

-	if ((index = floatCache.get(key)) < 0) {

-		index = floatCache.put(key, currentIndex++);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the float constant entry into the constant pool

-		// First add the tag

-		writeU1(FloatTag);

-		// Then add the 4 bytes representing the float

-		int temp = java.lang.Float.floatToIntBits(key);

-		if (currentOffset + 4 >= poolContent.length) {

-			resizePoolContents(4);

-		}

-		for (int i = 0; i < 4; i++) {

-			poolContent[currentOffset++] = (byte) (temp >>> (24 - i * 8));

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the int

- * value. If the int is not already present into the pool, it is added. The 

- * int cache is updated and it returns the right index.

- *

- * @param key <CODE>int</CODE>

- * @return <CODE>int</CODE>

- */

-public int literalIndex(int key) {

-	//Retrieve the index from the cache

-	int index;

-	// lazy initialization for base type caches

-	// If it is null, initialize it, otherwise use it

-	if (intCache == null) {

-		intCache = new IntegerCache(INT_INITIAL_SIZE);

-	}

-	if ((index = intCache.get(key)) < 0) {

-		index = intCache.put(key, currentIndex++);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the integer constant entry into the constant pool

-		// First add the tag

-		writeU1(IntegerTag);

-		// Then add the 4 bytes representing the int

-		if (currentOffset + 4 >= poolContent.length) {

-			resizePoolContents(4);

-		}

-		for (int i = 0; i < 4; i++) {

-			poolContent[currentOffset++] = (byte) (key >>> (24 - i * 8));

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the long

- * value. If the long is not already present into the pool, it is added. The 

- * long cache is updated and it returns the right index.

- *

- * @param key <CODE>long</CODE>

- * @return <CODE>int</CODE>

- */

-public int literalIndex(long key) {

-	// Retrieve the index from the cache

-	// The long constant takes two indexes into the constant pool, but we only store

-	// the first index into the long table

-	int index;

-	// lazy initialization for base type caches

-	// If it is null, initialize it, otherwise use it

-	if (longCache == null) {

-		longCache = new LongCache(LONG_INITIAL_SIZE);

-	}

-	if ((index = longCache.get(key)) < 0) {

-		index = longCache.put(key, currentIndex++);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		currentIndex++; // long value need an extra place into thwe constant pool

-		// Write the long into the constant pool

-		// First add the tag

-		writeU1(LongTag);

-		// Then add the 8 bytes representing the long

-		if (currentOffset + 8 >= poolContent.length) {

-			resizePoolContents(8);

-		}

-		for (int i = 0; i < 8; i++) {

-			poolContent[currentOffset++] = (byte) (key >>> (56 - (i << 3)));

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @param stringConstant java.lang.String

- * @return <CODE>int</CODE>

- */

-public int literalIndex(String stringConstant) {

-	int index;

-	char[] stringCharArray = stringConstant.toCharArray();

-	if ((index = stringCache.get(stringCharArray)) < 0) {

-		// The entry doesn't exit yet

-		int stringIndex = literalIndex(stringCharArray);

-		index = stringCache.put(stringCharArray, currentIndex++);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the tag first

-		writeU1(StringTag);

-		// Then the string index

-		writeU2(stringIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @param aFieldBinding FieldBinding

- * @return <CODE>int</CODE>

- */

-public int literalIndex(FieldBinding aFieldBinding) {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	int indexWellKnownField;

-	if ((indexWellKnownField = indexOfWellKnownFields(aFieldBinding)) == -1) {

-		if ((index = fieldCache.get(aFieldBinding)) < 0) {

-			// The entry doesn't exit yet

-			classIndex = literalIndex(aFieldBinding.declaringClass);

-			nameAndTypeIndex = literalIndexForFields(literalIndex(aFieldBinding.name), literalIndex(aFieldBinding.type.signature()), aFieldBinding);

-			index = fieldCache.put(aFieldBinding, currentIndex++);

-			if (index > 0xFFFF){

-				this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-			}

-			writeU1(FieldRefTag);

-			writeU2(classIndex);

-			writeU2(nameAndTypeIndex);

-		}

-	} else {

-		if ((index = wellKnownFields[indexWellKnownField]) == 0) {

-			// that field need to be inserted

-			classIndex = literalIndex(aFieldBinding.declaringClass);

-			nameAndTypeIndex = literalIndexForFields(literalIndex(aFieldBinding.name), literalIndex(aFieldBinding.type.signature()), aFieldBinding);

-			index = wellKnownFields[indexWellKnownField] = currentIndex++;

-			if (index > 0xFFFF){

-				this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-			}

-			writeU1(FieldRefTag);

-			writeU2(classIndex);

-			writeU2(nameAndTypeIndex);

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- * Note: uses the method binding #constantPoolDeclaringClass which could be an array type

- * for the array clone method (see UpdatedMethodDeclaration).

- * @param aMethodBinding MethodBinding

- * @return <CODE>int</CODE>

- */

-public int literalIndex(MethodBinding aMethodBinding) {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	int indexWellKnownMethod;

-	if ((indexWellKnownMethod = indexOfWellKnownMethods(aMethodBinding)) == -1) {

-		if (aMethodBinding.constantPoolDeclaringClass().isInterface()) {

-			// Lookinf into the interface method ref table

-			if ((index = interfaceMethodCache.get(aMethodBinding)) < 0) {

-				classIndex = literalIndex(aMethodBinding.constantPoolDeclaringClass());

-				nameAndTypeIndex = literalIndexForMethods(literalIndex(aMethodBinding.constantPoolName()), literalIndex(aMethodBinding.signature()), aMethodBinding);

-				index = interfaceMethodCache.put(aMethodBinding, currentIndex++);

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the interface method ref constant into the constant pool

-				// First add the tag

-				writeU1(InterfaceMethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-		} else {

-			// Lookinf into the method ref table

-			if ((index = methodCache.get(aMethodBinding)) < 0) {

-				classIndex = literalIndex(aMethodBinding.constantPoolDeclaringClass());

-				nameAndTypeIndex = literalIndexForMethods(literalIndex(aMethodBinding.constantPoolName()), literalIndex(aMethodBinding.signature()), aMethodBinding);

-				index = methodCache.put(aMethodBinding, currentIndex++);

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-		}

-	} else {

-		// This is a well known method

-		if ((index = wellKnownMethods[indexWellKnownMethod]) == 0) {

-			// this methods was not inserted yet

-			if (aMethodBinding.constantPoolDeclaringClass().isInterface()) {

-				// Lookinf into the interface method ref table

-				classIndex = literalIndex(aMethodBinding.constantPoolDeclaringClass());

-				nameAndTypeIndex = literalIndexForMethods(literalIndex(aMethodBinding.constantPoolName()), literalIndex(aMethodBinding.signature()), aMethodBinding);

-				index = wellKnownMethods[indexWellKnownMethod] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the interface method ref constant into the constant pool

-				// First add the tag

-				writeU1(InterfaceMethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			} else {

-				// Lookinf into the method ref table

-				classIndex = literalIndex(aMethodBinding.constantPoolDeclaringClass());

-				nameAndTypeIndex = literalIndexForMethods(literalIndex(aMethodBinding.constantPoolName()), literalIndex(aMethodBinding.signature()), aMethodBinding);

-				index = wellKnownMethods[indexWellKnownMethod] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @param aTypeBinding TypeBinding

- * @return <CODE>int</CODE>

- */

-public int literalIndex(TypeBinding aTypeBinding) {

-	int index;

-	int nameIndex;

-	int indexWellKnownType;

-	if ((indexWellKnownType = indexOfWellKnownTypes(aTypeBinding)) == -1) {

-		if ((index = classCache.get(aTypeBinding)) < 0) {

-			// The entry doesn't exit yet

-			nameIndex = literalIndex(aTypeBinding.constantPoolName());

-			index = classCache.put(aTypeBinding, currentIndex++);

-			if (index > 0xFFFF){

-				this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-			}

-			writeU1(ClassTag);

-			// Then add the 8 bytes representing the long

-			writeU2(nameIndex);

-		}

-	} else {

-		if ((index = wellKnownTypes[indexWellKnownType]) == 0) {

-			// Need to insert that binding

-			nameIndex = literalIndex(aTypeBinding.constantPoolName());

-			index = wellKnownTypes[indexWellKnownType] = currentIndex++;

-			if (index > 0xFFFF){

-				this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-			}

-			writeU1(ClassTag);

-			// Then add the 8 bytes representing the long

-			writeU2(nameIndex);

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding 

- * nameAndType constant with nameIndex, typeIndex.

- *

- * @param nameIndex int

- * @param typeIndex int

- * @param key org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding

- * @return <CODE>int</CODE>

- */

-public int literalIndexForFields(int nameIndex, int typeIndex, FieldBinding key) {

-	int index;

-	int indexOfWellKnownFieldNameAndType;

-	if ((indexOfWellKnownFieldNameAndType = indexOfWellKnownFieldNameAndType(key)) == -1) {

-		// check if the entry already exists

-		if ((index = nameAndTypeCacheForFields.get(key)) == -1) {

-			// The entry doesn't exit yet

-			index = nameAndTypeCacheForFields.put(key, currentIndex++);

-			if (index > 0xFFFF){

-				this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-			}

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-	} else {

-		if ((index = wellKnownFieldNameAndTypes[indexOfWellKnownFieldNameAndType]) == 0) {

-			index = wellKnownFieldNameAndTypes[indexOfWellKnownFieldNameAndType] = currentIndex++;

-			if (index > 0xFFFF){

-				this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-			}

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangBoolean() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_BOOLEAN_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangBooleanConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_BOOLEAN_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangBooleanTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_BOOLEAN_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangBoolean();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_BOOLEAN_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangByte() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_BYTE_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangByteConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_BYTE_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangByteTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_BYTE_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangByte();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_BYTE_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangCharacter() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_CHARACTER_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangCharacterConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_CHARACTER_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangCharacterTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_CHARACTER_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangCharacter();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_CHARACTER_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangClass() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_CLASS_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangClassConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_CLASS_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangClassForName() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[CLASS_FORNAME_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangClass();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[FORNAME_CLASS_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.ForName);

-			int typeIndex = literalIndex(QualifiedNamesConstants.ForNameSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[FORNAME_CLASS_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[CLASS_FORNAME_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangClassDesiredAssertionStatus() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[CLASS_DESIREDASSERTIONSTATUS_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangClass();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[DESIREDASSERTIONSTATUS_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.DesiredAssertionStatus);

-			int typeIndex = literalIndex(QualifiedNamesConstants.DesiredAssertionStatusSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[DESIREDASSERTIONSTATUS_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[CLASS_DESIREDASSERTIONSTATUS_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangClassGetComponentType() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[CLASS_GETCOMPONENTTYPE_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangClass();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[GETCOMPONENTTYPE_CLASS_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.GetComponentType);

-			int typeIndex = literalIndex(QualifiedNamesConstants.GetComponentTypeSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[GETCOMPONENTTYPE_CLASS_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[CLASS_GETCOMPONENTTYPE_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangClassNotFoundException() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_CLASSNOTFOUNDEXCEPTION_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangClassNotFoundExceptionConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_CLASSNOTFOUNDEXCEPTION_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangDouble() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_DOUBLE_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangDoubleConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_DOUBLE_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangDoubleTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_DOUBLE_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangDouble();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_DOUBLE_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangError() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_ERROR_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangErrorConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_ERROR_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangErrorConstructor() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[JAVALANGERROR_CONSTR_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangError();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_STRING_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-			int typeIndex = literalIndex(QualifiedNamesConstants.StringConstructorSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_STRING_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[JAVALANGERROR_CONSTR_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-public int literalIndexForJavaLangException() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_EXCEPTION_TYPE]) == 0) {

-		// The entry doesn't exit yet

-		int nameIndex = literalIndex(QualifiedNamesConstants.JavaLangExceptionConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_EXCEPTION_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangFloat() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_FLOAT_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangFloatConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_FLOAT_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangFloatTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_FLOAT_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangFloat();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_FLOAT_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangInteger() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_INTEGER_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangIntegerConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_INTEGER_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangIntegerTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_INTEGER_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangInteger();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_INTEGER_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangLong() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_LONG_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangLongConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_LONG_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangLongTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_LONG_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangLong();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_LONG_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangNoClassDefFoundError() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_NOCLASSDEFFOUNDERROR_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangNoClassDefFoundErrorConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_NOCLASSDEFFOUNDERROR_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangAssertionError() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_ASSERTIONERROR_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangAssertionErrorConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_ASSERTIONERROR_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @param typeBindingID int

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangAssertionErrorConstructor(int typeBindingID) {

-	int index = 0;

-	int nameAndTypeIndex = 0;

-	int classIndex = 0;

-	switch (typeBindingID) {

-		case T_int :

-		case T_byte :

-		case T_short :

-			if ((index = wellKnownMethods[ASSERTIONERROR_CONSTR_INT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangAssertionError();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_INT_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-					int typeIndex = literalIndex(QualifiedNamesConstants.AssertionErrorIntConstrSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_INT_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[ASSERTIONERROR_CONSTR_INT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_long :

-			if ((index = wellKnownMethods[ASSERTIONERROR_CONSTR_LONG_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangAssertionError();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_LONG_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-					int typeIndex = literalIndex(QualifiedNamesConstants.AssertionErrorLongConstrSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_LONG_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[ASSERTIONERROR_CONSTR_LONG_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_float :

-			if ((index = wellKnownMethods[ASSERTIONERROR_CONSTR_FLOAT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangAssertionError();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_FLOAT_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-					int typeIndex = literalIndex(QualifiedNamesConstants.AssertionErrorFloatConstrSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_FLOAT_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[ASSERTIONERROR_CONSTR_FLOAT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_double :

-			if ((index = wellKnownMethods[ASSERTIONERROR_CONSTR_DOUBLE_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangAssertionError();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_DOUBLE_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-					int typeIndex = literalIndex(QualifiedNamesConstants.AssertionErrorDoubleConstrSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_DOUBLE_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[ASSERTIONERROR_CONSTR_DOUBLE_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_char :

-			if ((index = wellKnownMethods[ASSERTIONERROR_CONSTR_CHAR_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangAssertionError();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_CHAR_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-					int typeIndex = literalIndex(QualifiedNamesConstants.AssertionErrorCharConstrSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_CHAR_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[ASSERTIONERROR_CONSTR_CHAR_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_boolean :

-			if ((index = wellKnownMethods[ASSERTIONERROR_CONSTR_BOOLEAN_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangAssertionError();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_BOOLEAN_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-					int typeIndex = literalIndex(QualifiedNamesConstants.AssertionErrorBooleanConstrSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_BOOLEAN_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[ASSERTIONERROR_CONSTR_BOOLEAN_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		//case T_Object :

-		//case T_String :

-		//case T_null :

-		default : 

-			if ((index = wellKnownMethods[ASSERTIONERROR_CONSTR_OBJECT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangAssertionError();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_OBJECT_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-					int typeIndex = literalIndex(QualifiedNamesConstants.AssertionErrorObjectConstrSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_OBJECT_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[ASSERTIONERROR_CONSTR_OBJECT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-	}

-	return index;

-}

-

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangAssertionErrorDefaultConstructor() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[ASSERTIONERROR_DEFAULT_CONSTR_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangAssertionError();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[DEFAULT_CONSTR_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-			int typeIndex = literalIndex(QualifiedNamesConstants.DefaultConstructorSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[DEFAULT_CONSTR_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[ASSERTIONERROR_DEFAULT_CONSTR_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-

-

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangNoClassDefFoundErrorStringConstructor() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[NOCLASSDEFFOUNDERROR_CONSTR_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangNoClassDefFoundError();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_STRING_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-			int typeIndex = literalIndex(QualifiedNamesConstants.StringConstructorSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_STRING_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[NOCLASSDEFFOUNDERROR_CONSTR_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangObject() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_OBJECT_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangObjectConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_OBJECT_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangReflectConstructor() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_REFLECT_CONSTRUCTOR_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangReflectConstructor);

-		index = wellKnownTypes[JAVA_LANG_REFLECT_CONSTRUCTOR_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-public int literalIndexForJavaLangReflectConstructorNewInstance() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[NEWINSTANCE_CONSTRUCTOR_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangReflectConstructor();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[NEWINSTANCE_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.NewInstance);

-			int typeIndex = literalIndex(QualifiedNamesConstants.NewInstanceSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[NEWINSTANCE_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[NEWINSTANCE_CONSTRUCTOR_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangShort() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_SHORT_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangShortConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_SHORT_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangShortTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_SHORT_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangShort();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_SHORT_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangString() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_STRING_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangStringConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_STRING_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaUtilIterator() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_UTIL_ITERATOR_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaUtilIteratorConstantPoolName);

-		index = wellKnownTypes[JAVA_UTIL_ITERATOR_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/*

- * This method returns the index into the constantPool corresponding to the type descriptor.

- */

-public int literalIndexForJavaLangStringBuffer() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_STRINGBUFFER_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangStringBufferConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_STRINGBUFFER_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/*

- * This method returns the index into the constantPool corresponding to the type descriptor.

- */

-public int literalIndexForJavaLangStringBuilder() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_STRINGBUILDER_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangStringBuilderConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_STRINGBUILDER_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringBufferAppend(int typeID) {

-	int index = 0;

-	int nameAndTypeIndex = 0;

-	int classIndex = 0;

-	switch (typeID) {

-		case T_int :

-		case T_byte :

-		case T_short :

-			if ((index = wellKnownMethods[STRINGBUFFER_APPEND_INT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_INT_STRINGBUFFER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBufferAppendIntSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_INT_STRINGBUFFER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUFFER_APPEND_INT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_long :

-			if ((index = wellKnownMethods[STRINGBUFFER_APPEND_LONG_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_LONG_STRINGBUFFER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBufferAppendLongSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_LONG_STRINGBUFFER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUFFER_APPEND_LONG_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_float :

-			if ((index = wellKnownMethods[STRINGBUFFER_APPEND_FLOAT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_FLOAT_STRINGBUFFER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBufferAppendFloatSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_FLOAT_STRINGBUFFER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUFFER_APPEND_FLOAT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_double :

-			if ((index = wellKnownMethods[STRINGBUFFER_APPEND_DOUBLE_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_DOUBLE_STRINGBUFFER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBufferAppendDoubleSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_DOUBLE_STRINGBUFFER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUFFER_APPEND_DOUBLE_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_char :

-			if ((index = wellKnownMethods[STRINGBUFFER_APPEND_CHAR_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_CHAR_STRINGBUFFER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBufferAppendCharSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_CHAR_STRINGBUFFER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUFFER_APPEND_CHAR_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_boolean :

-			if ((index = wellKnownMethods[STRINGBUFFER_APPEND_BOOLEAN_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_BOOLEAN_STRINGBUFFER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBufferAppendBooleanSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_BOOLEAN_STRINGBUFFER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUFFER_APPEND_BOOLEAN_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_Object :

-			if ((index = wellKnownMethods[STRINGBUFFER_APPEND_OBJECT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_OBJECT_STRINGBUFFER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBufferAppendObjectSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_OBJECT_STRINGBUFFER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUFFER_APPEND_OBJECT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_String :

-		case T_null :

-			if ((index = wellKnownMethods[STRINGBUFFER_APPEND_STRING_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_STRING_STRINGBUFFER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBufferAppendStringSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_STRING_STRINGBUFFER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUFFER_APPEND_STRING_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringBuilderAppend(int typeID) {

-	int index = 0;

-	int nameAndTypeIndex = 0;

-	int classIndex = 0;

-	switch (typeID) {

-		case T_int :

-		case T_byte :

-		case T_short :

-			if ((index = wellKnownMethods[STRINGBUILDER_APPEND_INT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuilder();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_INT_STRINGBUILDER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBuilderAppendIntSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_INT_STRINGBUILDER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUILDER_APPEND_INT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_long :

-			if ((index = wellKnownMethods[STRINGBUILDER_APPEND_LONG_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuilder();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_LONG_STRINGBUILDER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBuilderAppendLongSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_LONG_STRINGBUILDER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUILDER_APPEND_LONG_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_float :

-			if ((index = wellKnownMethods[STRINGBUILDER_APPEND_FLOAT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuilder();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_FLOAT_STRINGBUILDER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBuilderAppendFloatSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_FLOAT_STRINGBUILDER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUILDER_APPEND_FLOAT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_double :

-			if ((index = wellKnownMethods[STRINGBUILDER_APPEND_DOUBLE_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuilder();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_DOUBLE_STRINGBUILDER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBuilderAppendDoubleSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_DOUBLE_STRINGBUILDER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUILDER_APPEND_DOUBLE_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_char :

-			if ((index = wellKnownMethods[STRINGBUILDER_APPEND_CHAR_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuilder();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_CHAR_STRINGBUILDER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBuilderAppendCharSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_CHAR_STRINGBUILDER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUILDER_APPEND_CHAR_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_boolean :

-			if ((index = wellKnownMethods[STRINGBUILDER_APPEND_BOOLEAN_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuilder();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_BOOLEAN_STRINGBUILDER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBuilderAppendBooleanSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_BOOLEAN_STRINGBUILDER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUILDER_APPEND_BOOLEAN_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_Object :

-			if ((index = wellKnownMethods[STRINGBUILDER_APPEND_OBJECT_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuilder();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_OBJECT_STRINGBUILDER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBuilderAppendObjectSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_OBJECT_STRINGBUILDER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUILDER_APPEND_OBJECT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_String :

-		case T_null :

-			if ((index = wellKnownMethods[STRINGBUILDER_APPEND_STRING_METHOD]) == 0) {

-				classIndex = literalIndexForJavaLangStringBuilder();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_STRING_STRINGBUILDER_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Append);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringBuilderAppendStringSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[APPEND_STRING_STRINGBUILDER_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRINGBUILDER_APPEND_STRING_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringBufferConstructor() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[STRINGBUFFER_STRING_CONSTR_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangStringBuffer();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_STRING_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-					int typeIndex = literalIndex(QualifiedNamesConstants.StringConstructorSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_STRING_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-		index = wellKnownMethods[STRINGBUFFER_STRING_CONSTR_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringBuilderConstructor() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[STRINGBUILDER_STRING_CONSTR_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangStringBuilder();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_STRING_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-			int typeIndex = literalIndex(QualifiedNamesConstants.StringConstructorSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[CONSTR_STRING_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[STRINGBUILDER_STRING_CONSTR_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringBufferDefaultConstructor() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[STRINGBUFFER_DEFAULT_CONSTR_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangStringBuffer();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[DEFAULT_CONSTR_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-			int typeIndex = literalIndex(QualifiedNamesConstants.DefaultConstructorSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[DEFAULT_CONSTR_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[STRINGBUFFER_DEFAULT_CONSTR_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringBuilderDefaultConstructor() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[STRINGBUILDER_DEFAULT_CONSTR_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangStringBuilder();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[DEFAULT_CONSTR_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Init);

-			int typeIndex = literalIndex(QualifiedNamesConstants.DefaultConstructorSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[DEFAULT_CONSTR_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[STRINGBUILDER_DEFAULT_CONSTR_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringBufferToString() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[STRINGBUFFER_TOSTRING_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangStringBuffer();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[TOSTRING_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.ToString);

-			int typeIndex = literalIndex(QualifiedNamesConstants.ToStringSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[TOSTRING_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[STRINGBUFFER_TOSTRING_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringBuilderToString() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[STRINGBUILDER_TOSTRING_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangStringBuilder();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[TOSTRING_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.ToString);

-			int typeIndex = literalIndex(QualifiedNamesConstants.ToStringSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[TOSTRING_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[STRINGBUILDER_TOSTRING_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringIntern() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[STRING_INTERN_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangString();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[INTERN_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Intern);

-			int typeIndex = literalIndex(QualifiedNamesConstants.InternSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[INTERN_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[STRING_INTERN_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It is an interface method reference constant

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaUtilIteratorHasNext() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[ITERATOR_HASNEXT_METHOD]) == 0) {

-		classIndex = literalIndexForJavaUtilIterator();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[HASNEXT_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.HasNext);

-			int typeIndex = literalIndex(QualifiedNamesConstants.HasNextSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[HASNEXT_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[ITERATOR_HASNEXT_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(InterfaceMethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It is an interface method reference constant

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaUtilIteratorNext() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[ITERATOR_NEXT_METHOD]) == 0) {

-		classIndex = literalIndexForJavaUtilIterator();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[NEXT_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Next);

-			int typeIndex = literalIndex(QualifiedNamesConstants.NextSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[NEXT_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[ITERATOR_NEXT_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(InterfaceMethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangStringValueOf(int typeID) {

-	int index = 0;

-	int nameAndTypeIndex = 0;

-	switch (typeID) {

-		case T_int :

-		case T_byte :

-		case T_short :

-			if ((index = wellKnownMethods[STRING_VALUEOF_INT_METHOD]) == 0) {

-				int classIndex = literalIndexForJavaLangString();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_INT_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.ValueOf);

-					int typeIndex = literalIndex(QualifiedNamesConstants.ValueOfIntSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_INT_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRING_VALUEOF_INT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_long :

-			if ((index = wellKnownMethods[STRING_VALUEOF_LONG_METHOD]) == 0) {

-				int classIndex = literalIndexForJavaLangString();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_LONG_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.ValueOf);

-					int typeIndex = literalIndex(QualifiedNamesConstants.ValueOfLongSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_LONG_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRING_VALUEOF_LONG_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_float :

-			if ((index = wellKnownMethods[STRING_VALUEOF_FLOAT_METHOD]) == 0) {

-				int classIndex = literalIndexForJavaLangString();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_FLOAT_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.ValueOf);

-					int typeIndex = literalIndex(QualifiedNamesConstants.ValueOfFloatSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_FLOAT_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRING_VALUEOF_FLOAT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_double :

-			if ((index = wellKnownMethods[STRING_VALUEOF_DOUBLE_METHOD]) == 0) {

-				int classIndex = literalIndexForJavaLangString();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_DOUBLE_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.ValueOf);

-					int typeIndex = literalIndex(QualifiedNamesConstants.ValueOfDoubleSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_DOUBLE_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRING_VALUEOF_DOUBLE_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_char :

-			if ((index = wellKnownMethods[STRING_VALUEOF_CHAR_METHOD]) == 0) {

-				int classIndex = literalIndexForJavaLangString();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_CHAR_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.ValueOf);

-					int typeIndex = literalIndex(QualifiedNamesConstants.ValueOfCharSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_CHAR_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRING_VALUEOF_CHAR_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_boolean :

-			if ((index = wellKnownMethods[STRING_VALUEOF_BOOLEAN_METHOD]) == 0) {

-				int classIndex = literalIndexForJavaLangString();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_BOOLEAN_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.ValueOf);

-					int typeIndex = literalIndex(QualifiedNamesConstants.ValueOfBooleanSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_BOOLEAN_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRING_VALUEOF_BOOLEAN_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-		case T_Object :

-			if ((index = wellKnownMethods[STRING_VALUEOF_OBJECT_METHOD]) == 0) {

-				int classIndex = literalIndexForJavaLangString();

-				if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_OBJECT_METHOD_NAME_AND_TYPE]) == 0) {

-					int nameIndex = literalIndex(QualifiedNamesConstants.ValueOf);

-					int typeIndex = literalIndex(QualifiedNamesConstants.ValueOfObjectSignature);

-					nameAndTypeIndex = wellKnownMethodNameAndTypes[VALUEOF_OBJECT_METHOD_NAME_AND_TYPE] = currentIndex++;

-					writeU1(NameAndTypeTag);

-					writeU2(nameIndex);

-					writeU2(typeIndex);

-				}

-				index = wellKnownMethods[STRING_VALUEOF_OBJECT_METHOD] = currentIndex++;

-				if (index > 0xFFFF){

-					this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-				}

-				// Write the method ref constant into the constant pool

-				// First add the tag

-				writeU1(MethodRefTag);

-				// Then write the class index

-				writeU2(classIndex);

-				// The write the nameAndType index

-				writeU2(nameAndTypeIndex);

-			}

-			break;

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangSystem() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_SYSTEM_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangSystemConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_SYSTEM_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangSystemExitInt() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[SYSTEM_EXIT_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangSystem();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[EXIT_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.Exit);

-			int typeIndex = literalIndex(QualifiedNamesConstants.ExitIntSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[EXIT_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[SYSTEM_EXIT_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangThrowable() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_THROWABLE_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangThrowableConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_THROWABLE_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangThrowableGetMessage() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[THROWABLE_GETMESSAGE_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangThrowable();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[GETMESSAGE_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.GetMessage);

-			int typeIndex = literalIndex(QualifiedNamesConstants.GetMessageSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[GETMESSAGE_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[THROWABLE_GETMESSAGE_METHOD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangVoid() {

-	int index;

-	if ((index = wellKnownTypes[JAVA_LANG_VOID_TYPE]) == 0) {

-		int nameIndex;

-		// The entry doesn't exit yet

-		nameIndex = literalIndex(QualifiedNamesConstants.JavaLangVoidConstantPoolName);

-		index = wellKnownTypes[JAVA_LANG_VOID_TYPE] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(ClassTag);

-		// Then add the 8 bytes representing the long

-		writeU2(nameIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool 

- * corresponding to the field binding aFieldBinding.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangVoidTYPE() {

-	int index;

-	if ((index = wellKnownFields[JAVA_LANG_VOID_TYPE_FIELD]) == 0) {

-		int nameAndTypeIndex;

-		int classIndex;

-		// The entry doesn't exit yet

-		classIndex = literalIndexForJavaLangVoid();

-		if ((nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.TYPE);

-			int typeIndex = literalIndex(QualifiedNamesConstants.JavaLangClassSignature);

-			nameAndTypeIndex = wellKnownFieldNameAndTypes[TYPE_JAVALANGCLASS_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownFields[JAVA_LANG_VOID_TYPE_FIELD] = currentIndex++;

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		writeU1(FieldRefTag);

-		writeU2(classIndex);

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the type descriptor.

- *

- * @param stringCharArray char[]

- * @return <CODE>int</CODE>

- */

-public int literalIndexForLdc(char[] stringCharArray) {

-	int index;

-	if ((index = stringCache.get(stringCharArray)) < 0) {

-		int stringIndex;

-		// The entry doesn't exit yet

-		if ((stringIndex = UTF8Cache.get(stringCharArray)) < 0) {

-			// The entry doesn't exit yet

-			// Write the tag first

-			writeU1(Utf8Tag);

-			// Then the size of the stringName array

-			int savedCurrentOffset = currentOffset;

-			if (currentOffset + 2 >= poolContent.length) {

-				// we need to resize the poolContent array because we won't have

-				// enough space to write the length

-				resizePoolContents(2);

-			}

-			currentOffset += 2;

-			int length = 0;

-			for (int i = 0; i < stringCharArray.length; i++) {

-				char current = stringCharArray[i];

-				if ((current >= 0x0001) && (current <= 0x007F)) {

-					// we only need one byte: ASCII table

-					writeU1(current);

-					length++;

-				} else

-					if (current > 0x07FF) {

-						// we need 3 bytes

-						length += 3;

-						writeU1(0xE0 | ((current >> 12) & 0x0F)); // 0xE0 = 1110 0000

-						writeU1(0x80 | ((current >> 6) & 0x3F)); // 0x80 = 1000 0000

-						writeU1(0x80 | (current & 0x3F)); // 0x80 = 1000 0000

-					} else {

-						// we can be 0 or between 0x0080 and 0x07FF

-						// In that case we only need 2 bytes

-						length += 2;

-						writeU1(0xC0 | ((current >> 6) & 0x1F)); // 0xC0 = 1100 0000

-						writeU1(0x80 | (current & 0x3F)); // 0x80 = 1000 0000

-					}

-			}

-			if (length >= 65535) {

-				currentOffset = savedCurrentOffset - 1;

-				return -1;

-			}

-			stringIndex = UTF8Cache.put(stringCharArray, currentIndex++);

-			// Now we know the length that we have to write in the constant pool

-			// we use savedCurrentOffset to do that

-			if (length > 65535) {

-				return 0;

-			}

-			poolContent[savedCurrentOffset] = (byte) (length >> 8);

-			poolContent[savedCurrentOffset + 1] = (byte) length;

-		}

-		index = stringCache.put(stringCharArray, currentIndex++);

-		if (index > 0xFFFF){

-			this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-		}

-		// Write the tag first

-		writeU1(StringTag);

-		// Then the string index

-		writeU2(stringIndex);

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding 

- * nameAndType constant with nameIndex, typeIndex.

- *

- * @param nameIndex int

- * @param typeIndex int

- * @param key org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

- * @return <CODE>int</CODE>

- */

-public int literalIndexForMethods(int nameIndex, int typeIndex, MethodBinding key) {

-	int index;

-	int indexOfWellKnownMethodNameAndType;

-	if ((indexOfWellKnownMethodNameAndType = indexOfWellKnownMethodNameAndType(key)) == -1) {

-		// check if the entry exists

-		if ((index = nameAndTypeCacheForMethods.get(key)) == -1) {

-			// The entry doesn't exit yet

-			index = nameAndTypeCacheForMethods.put(key, currentIndex++);

-			if (index > 0xFFFF){

-				this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-			}

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-	} else {

-		if ((index = wellKnownMethodNameAndTypes[indexOfWellKnownMethodNameAndType]) == 0) {

-			index = wellKnownMethodNameAndTypes[indexOfWellKnownMethodNameAndType] = currentIndex++;

-			if (index > 0xFFFF){

-				this.classFile.referenceBinding.scope.problemReporter().noMoreAvailableSpaceInConstantPool(this.classFile.referenceBinding.scope.referenceType());

-			}

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-	}

-	return index;

-}

-/**

- * This method returns the index into the constantPool corresponding to the 

- * method descriptor. It can be either an interface method reference constant

- * or a method reference constant.

- *

- * @return <CODE>int</CODE>

- */

-public int literalIndexForJavaLangObjectGetClass() {

-	int index;

-	int nameAndTypeIndex;

-	int classIndex;

-	// Looking into the method ref table

-	if ((index = wellKnownMethods[OBJECT_GETCLASS_METHOD]) == 0) {

-		classIndex = literalIndexForJavaLangObject();

-		if ((nameAndTypeIndex = wellKnownMethodNameAndTypes[GETCLASS_OBJECT_METHOD_NAME_AND_TYPE]) == 0) {

-			int nameIndex = literalIndex(QualifiedNamesConstants.GetClass);

-			int typeIndex = literalIndex(QualifiedNamesConstants.GetClassSignature);

-			nameAndTypeIndex = wellKnownMethodNameAndTypes[GETCLASS_OBJECT_METHOD_NAME_AND_TYPE] = currentIndex++;

-			writeU1(NameAndTypeTag);

-			writeU2(nameIndex);

-			writeU2(typeIndex);

-		}

-		index = wellKnownMethods[OBJECT_GETCLASS_METHOD] = currentIndex++;

-		// Write the method ref constant into the constant pool

-		// First add the tag

-		writeU1(MethodRefTag);

-		// Then write the class index

-		writeU2(classIndex);

-		// The write the nameAndType index

-		writeU2(nameAndTypeIndex);

-	}

-	return index;

-}

-/**

- * This method is used to clean the receiver in case of a clinit header is generated, but the 

- * clinit has no code.

- * This implementation assumes that the clinit is the first method to be generated.

- * @see org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration#addClinit()

- */

-public void resetForClinit(int constantPoolIndex, int constantPoolOffset) {

-	currentIndex = constantPoolIndex;

-	currentOffset = constantPoolOffset;

-	if (UTF8Cache.get(AttributeNamesConstants.CodeName) >= constantPoolIndex) {

-		UTF8Cache.remove(AttributeNamesConstants.CodeName);

-	}

-	if (UTF8Cache.get(QualifiedNamesConstants.ClinitSignature) >= constantPoolIndex) {

-		UTF8Cache.remove(QualifiedNamesConstants.ClinitSignature);

-	}

-	if (UTF8Cache.get(QualifiedNamesConstants.Clinit) >= constantPoolIndex) {

-		UTF8Cache.remove(QualifiedNamesConstants.Clinit);

-	}

-}

-

-/**

- * Resize the pool contents

- */

-private final void resizePoolContents(int minimalSize) {

-	int length = poolContent.length;

-	int toAdd = length;

-	if (toAdd < minimalSize)

-		toAdd = minimalSize;

-	System.arraycopy(poolContent, 0, poolContent = new byte[length + toAdd], 0, length);

-}

-/**

- * Write a unsigned byte into the byte array

- * 

- * @param value <CODE>int</CODE> The value to write into the byte array

- */

-protected final void writeU1(int value) {

-	if (currentOffset + 1 >= poolContent.length) {

-		resizePoolContents(1);

-	}

-	poolContent[currentOffset++] = (byte) value;

-}

-/**

- * Write a unsigned byte into the byte array

- * 

- * @param value <CODE>int</CODE> The value to write into the byte array

- */

-protected final void writeU2(int value) {

-	if (currentOffset + 2 >= poolContent.length) {

-		resizePoolContents(2);

-	}

-	//first byte

-	poolContent[currentOffset++] = (byte) (value >> 8);

-	poolContent[currentOffset++] = (byte) value;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/DoubleCache.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/DoubleCache.js
deleted file mode 100644
index 60d3079..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/DoubleCache.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public class DoubleCache {

-	private double keyTable[];

-	private int valueTable[]; 

-	private int elementSize;

-/**

- * Constructs a new, empty hashtable. A default capacity and

- * load factor is used. Note that the hashtable will automatically 

- * grow when it gets full.

- */

-public DoubleCache() {

-	this(13);

-}

-/**

- * Constructs a new, empty hashtable with the specified initial

- * capacity.

- * @param initialCapacity int

- *  the initial number of buckets

- */

-public DoubleCache(int initialCapacity) {

-	elementSize = 0;

-	keyTable = new double[initialCapacity];

-	valueTable = new int[initialCapacity];

-}

-/**

- * Clears the hash table so that it has no more elements in it.

- */

-public void clear() {

-	for (int i = keyTable.length; --i >= 0;) {

-		keyTable[i] = 0.0;

-		valueTable[i] = 0;

-	}

-	elementSize = 0;

-}

-/** Returns true if the collection contains an element for the key.

- *

- * @param key <CODE>double</CODE> the key that we are looking for

- * @return boolean

- */

-public boolean containsKey(double key) {

-	if (key == 0.0) {

-		for (int i = 0, max = elementSize; i < max; i++) {

-			if (keyTable[i] == 0.0) {

-				long value1 = Double.doubleToLongBits(key);

-				long value2 = Double.doubleToLongBits(keyTable[i]);

-				if (value1 == -9223372036854775808L && value2 == -9223372036854775808L)

-					return true;

-				if (value1 == 0 && value2 == 0)

-					return true;

-			}

-		}

-	} else {

-		for (int i = 0, max = elementSize; i < max; i++) {

-			if (keyTable[i] == key) {

-				return true;

-			}

-		}

-	}

-	return false;

-}

-/** Gets the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>double</CODE> the specified key

- * @return int the element for the key or -1 if the key is not

- *  defined in the hash table.

- */

-public int get(double key) {

-	if (key == 0.0) {

-		for (int i = 0, max = elementSize; i < max; i++) {

-			if (keyTable[i] == 0.0) {

-				long value1 = Double.doubleToLongBits(key);

-				long value2 = Double.doubleToLongBits(keyTable[i]);

-				if (value1 == -9223372036854775808L && value2 == -9223372036854775808L)

-					return valueTable[i];

-				if (value1 == 0 && value2 == 0)

-					return valueTable[i];

-			}

-		}

-	} else {

-		for (int i = 0, max = elementSize; i < max; i++) {

-			if (keyTable[i] == key) {

-				return valueTable[i];

-			}

-		}

-	}

-	return -1;

-}

-/**

- * Puts the specified element into the hashtable, using the specified

- * key.  The element may be retrieved by doing a get() with the same key.

- * 

- * @param key <CODE>double</CODE> the specified key in the hashtable

- * @param value <CODE>int</CODE> the specified element

- * @return int value

- */

-public int put(double key, int value) {

-	if (elementSize == keyTable.length) {

-		// resize

-		System.arraycopy(keyTable, 0, (keyTable = new double[elementSize * 2]), 0, elementSize);

-		System.arraycopy(valueTable, 0, (valueTable = new int[elementSize * 2]), 0, elementSize);

-	}

-	keyTable[elementSize] = key;

-	valueTable[elementSize] = value;

-	elementSize++;

-	return value;

-}

-/**

- * Converts to a rather lengthy String.

- *

- * @return String the ascii representation of the receiver

- */

-public String toString() {

-	int max = elementSize;

-	StringBuffer buf = new StringBuffer();

-	buf.append("{"); //$NON-NLS-1$

-	for (int i = 0; i < max; ++i) {

-		if ((keyTable[i] != 0) || ((keyTable[i] == 0) &&(valueTable[i] != 0))) {

-			buf.append(keyTable[i]).append("->").append(valueTable[i]); //$NON-NLS-1$

-		}

-		if (i < max) {

-			buf.append(", "); //$NON-NLS-1$

-		}

-	}

-	buf.append("}"); //$NON-NLS-1$

-	return buf.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ExceptionLabel.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ExceptionLabel.js
deleted file mode 100644
index 76decf8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ExceptionLabel.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-public class ExceptionLabel extends Label {

-	

-	public int start = POS_NOT_SET;

-	public int end = POS_NOT_SET;

-	public TypeBinding exceptionType;

-	

-	public ExceptionLabel(CodeStream codeStream, TypeBinding exceptionType) {

-

-		super(codeStream);

-		this.exceptionType = exceptionType;

-		this.placeStart();	

-	}

-

-	public boolean isStandardLabel(){

-

-		return false;

-	}

-

-	public void place() {

-

-		// register the handler inside the codeStream then normal place

-		codeStream.registerExceptionHandler(this);

-		super.place();

-	}

-

-	public void placeEnd() {

-

-		this.end = codeStream.position;

-	}

-	

-	public void placeStart() {

-

-		this.start = codeStream.position;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/FieldNameAndTypeCache.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/FieldNameAndTypeCache.js
deleted file mode 100644
index b3addf3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/FieldNameAndTypeCache.js
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding;

-

-public class FieldNameAndTypeCache {

-	public FieldBinding keyTable[];

-	public int valueTable[];

-	int elementSize;

-	int threshold;

-/**

- * Constructs a new, empty hashtable. A default capacity is used.

- * Note that the hashtable will automatically grow when it gets full.

- */

-public FieldNameAndTypeCache() {

-	this(13);

-}

-/**

- * Constructs a new, empty hashtable with the specified initial

- * capacity.

- * @param initialCapacity int

- *	the initial number of buckets

- */

-public FieldNameAndTypeCache(int initialCapacity) {

-	this.elementSize = 0;

-	this.threshold = (int) (initialCapacity * 0.66f);

-	this.keyTable = new FieldBinding[initialCapacity];

-	this.valueTable = new int[initialCapacity];

-}

-/**

- * Clears the hash table so that it has no more elements in it.

- */

-public void clear() {

-	for (int i = keyTable.length; --i >= 0;) {

-		keyTable[i] = null;

-		valueTable[i] = 0;

-	}

-	elementSize = 0;

-}

-/** Returns true if the collection contains an element for the key.

- *

- * @param key char[] the key that we are looking for

- * @return boolean

- */

-public boolean containsKey(FieldBinding key) {

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (equalsForNameAndType(keyTable[index], key))

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-/**

- * Return true if the two field binding are consider like equals.

- */

-public boolean equalsForNameAndType(FieldBinding field1, FieldBinding field2) {

-	return ((field1.type == field2.type) && CharOperation.equals(field1.name, field2.name));

-}

-/** Gets the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>char[]</CODE> the specified key

- * @return int the element for the key or -1 if the key is not

- *	defined in the hash table.

- */

-public int get(FieldBinding key) {

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (equalsForNameAndType(keyTable[index], key))

-			return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return -1;

-}

-/**

- * Return the hashcode for the key parameter

- *

- * @param key org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

- * @return int

- */

-public int hashCode(FieldBinding key) {

-	return ((CharOperation.hashCode(key.name) + key.type.hashCode()) & 0x7FFFFFFF) % keyTable.length;

-}

-/**

- * Puts the specified element into the hashtable, using the specified

- * key.  The element may be retrieved by doing a get() with the same key.

- * The key and the element cannot be null. 

- * 

- * @param key <CODE>Object</CODE> the specified key in the hashtable

- * @param value <CODE>int</CODE> the specified element

- * @return int the old value of the key, or -1 if it did not have one.

- */

-public int put(FieldBinding key, int value) { 

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (equalsForNameAndType(keyTable[index], key))

-			return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold)

-		rehash();

-	return value;

-}

-/**

- * Rehashes the content of the table into a bigger table.

- * This method is called automatically when the hashtable's

- * size exceeds the threshold.

- */

-private void rehash() {

-	FieldNameAndTypeCache newHashtable = new FieldNameAndTypeCache(keyTable.length * 2);

-	for (int i = keyTable.length; --i >= 0;)

-		if (keyTable[i] != null)

-			newHashtable.put(keyTable[i], valueTable[i]);

-

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-/**

- * Returns the number of elements contained in the hashtable.

- *

- * @return <CODE>int</CODE> The size of the table

- */

-public int size() {

-	return elementSize;

-}

-/**

- * Converts to a rather lengthy String.

- *

- * @return String the ascii representation of the receiver

- */

-public String toString() {

-	int max = size();

-	StringBuffer buf = new StringBuffer();

-	buf.append("{"); //$NON-NLS-1$

-	for (int i = 0; i < max; ++i) {

-		if (keyTable[i] != null) {

-			buf.append(keyTable[i]).append("->").append(valueTable[i]); //$NON-NLS-1$

-		}

-		if (i < max) {

-			buf.append(", "); //$NON-NLS-1$

-		}

-	}

-	buf.append("}"); //$NON-NLS-1$

-	return buf.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/FloatCache.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/FloatCache.js
deleted file mode 100644
index 6a11877..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/FloatCache.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public class FloatCache {

-	private float keyTable[];

-	private int valueTable[];

-	private int elementSize;

-/**

- * Constructs a new, empty hashtable. A default capacity and

- * load factor is used. Note that the hashtable will automatically 

- * grow when it gets full.

- */

-public FloatCache() {

-	this(13);

-}

-/**

- * Constructs a new, empty hashtable with the specified initial

- * capacity.

- * @param initialCapacity int

- *  the initial number of buckets

- */

-public FloatCache(int initialCapacity) {

-	elementSize = 0;

-	keyTable = new float[initialCapacity];

-	valueTable = new int[initialCapacity];

-}

-/**

- * Clears the hash table so that it has no more elements in it.

- */

-public void clear() {

-	for (int i = keyTable.length; --i >= 0;) {

-		keyTable[i] = 0.0f;

-		valueTable[i] = 0;

-	}

-	elementSize = 0;

-}

-/** Returns true if the collection contains an element for the key.

- *

- * @param key <CODE>float</CODE> the key that we are looking for

- * @return boolean

- */

-public boolean containsKey(float key) {

-	if (key == 0.0f) {

-		for (int i = 0, max = elementSize; i < max; i++) {

-			if (keyTable[i] == 0.0f) {

-				int value1 = Float.floatToIntBits(key);

-				int value2 = Float.floatToIntBits(keyTable[i]);

-				if (value1 == -2147483648 && value2 == -2147483648)

-					return true;

-				if (value1 == 0 && value2 == 0)

-					return true;

-			}

-		}

-	} else {

-		for (int i = 0, max = elementSize; i < max; i++) {

-			if (keyTable[i] == key) {

-				return true;

-			}

-		}

-	}

-	return false;

-}

-/** Gets the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>float</CODE> the specified key

- * @return int the element for the key or -1 if the key is not

- *  defined in the hash table.

- */

-public int get(float key) {

-	if (key == 0.0f) {

-		for (int i = 0, max = elementSize; i < max; i++) {

-			if (keyTable[i] == 0.0f) {

-				int value1 = Float.floatToIntBits(key);

-				int value2 = Float.floatToIntBits(keyTable[i]);

-				if (value1 == -2147483648 && value2 == -2147483648)

-					return valueTable[i];

-				if (value1 == 0 && value2 == 0)

-					return valueTable[i];

-			}

-		}

-	} else {

-		for (int i = 0, max = elementSize; i < max; i++) {

-			if (keyTable[i] == key) {

-				return valueTable[i];

-			}

-		}

-	}

-	return -1;

-}

-/**

- * Puts the specified element into the hashtable, using the specified

- * key.  The element may be retrieved by doing a get() with the same key.

- * 

- * @param key <CODE>float</CODE> the specified key in the hashtable

- * @param value <CODE>int</CODE> the specified element

- * @return int value

- */

-public int put(float key, int value) {

-	if (elementSize == keyTable.length) {

-		// resize

-		System.arraycopy(keyTable, 0, (keyTable = new float[elementSize * 2]), 0, elementSize);

-		System.arraycopy(valueTable, 0, (valueTable = new int[elementSize * 2]), 0, elementSize);

-	}

-	keyTable[elementSize] = key;

-	valueTable[elementSize] = value;

-	elementSize++;

-	return value;

-}

-/**

- * Converts to a rather lengthy String.

- *

- * @return String the ascii representation of the receiver

- */

-public String toString() {

-	int max = elementSize;

-	StringBuffer buf = new StringBuffer();

-	buf.append("{"); //$NON-NLS-1$

-	for (int i = 0; i < max; ++i) {

-		if ((keyTable[i] != 0) || ((keyTable[i] == 0) && (valueTable[i] != 0))) {

-			buf.append(keyTable[i]).append("->").append(valueTable[i]); //$NON-NLS-1$

-		}

-		if (i < max) {

-			buf.append(", "); //$NON-NLS-1$

-		}

-	}

-	buf.append("}"); //$NON-NLS-1$

-	return buf.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/IntegerCache.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/IntegerCache.js
deleted file mode 100644
index 8e540e0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/IntegerCache.js
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public class IntegerCache {

-	public int keyTable[];

-	public int valueTable[]; 

-	int elementSize;

-	int threshold;

-/**

- * Constructs a new, empty hashtable. A default capacity and

- * load factor is used. Note that the hashtable will automatically 

- * grow when it gets full.

- */

-public IntegerCache() {

-	this(13);

-}

-/**

- * Constructs a new, empty hashtable with the specified initial

- * capacity.

- * @param initialCapacity int

- *  the initial number of buckets

- */

-public IntegerCache(int initialCapacity) {

-	elementSize = 0;

-	threshold = (int) (initialCapacity * 0.66);

-	keyTable = new int[initialCapacity];

-	valueTable = new int[initialCapacity];

-}

-/**

- * Clears the hash table so that it has no more elements in it.

- */

-public void clear() {

-	for (int i = keyTable.length; --i >= 0;) {

-		keyTable[i] = 0;

-		valueTable[i] = 0;

-	}

-	elementSize = 0;

-}

-/** Returns true if the collection contains an element for the key.

- *

- * @param key <CODE>double</CODE> the key that we are looking for

- * @return boolean

- */

-public boolean containsKey(int key) {

-	int index = hash(key);

-	while ((keyTable[index] != 0) || ((keyTable[index] == 0) &&(valueTable[index] != 0))) {

-		if (keyTable[index] == key)

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-/** Gets the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>double</CODE> the specified key

- * @return int the element for the key or -1 if the key is not

- *  defined in the hash table.

- */

-public int get(int key) {

-	int index = hash(key);

-	while ((keyTable[index] != 0) || ((keyTable[index] == 0) &&(valueTable[index] != 0))) {

-		if (keyTable[index] == key)

-			return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return -1;

-}

-/**

- * Return a hashcode for the value of the key parameter.

- * @param key int

- * @return int the hash code corresponding to the key value

- */

-public int hash(int key) {

-	return (key & 0x7FFFFFFF) % keyTable.length;

-}

-/**

- * Puts the specified element into the hashtable, using the specified

- * key.  The element may be retrieved by doing a get() with the same key.

- * 

- * @param key <CODE>int</CODE> the specified key in the hashtable

- * @param value <CODE>int</CODE> the specified element

- * @return int value

- */

-public int put(int key, int value) {

-	int index = hash(key);

-	while ((keyTable[index] != 0) || ((keyTable[index] == 0) && (valueTable[index] != 0))) {

-		if (keyTable[index] == key)

-			return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold) {

-		rehash();

-	}

-	return value;

-}

-/**

- * Rehashes the content of the table into a bigger table.

- * This method is called automatically when the hashtable's

- * size exceeds the threshold.

- */

-private void rehash() {

-	IntegerCache newHashtable = new IntegerCache(keyTable.length * 2);

-	for (int i = keyTable.length; --i >= 0;) {

-		int key = keyTable[i];

-		int value = valueTable[i];

-		if ((key != 0) || ((key == 0) && (value != 0))) {

-			newHashtable.put(key, value);

-		}

-	}

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-/**

- * Returns the number of elements contained in the hashtable.

- *

- * @return <CODE>int</CODE> The size of the table

- */

-public int size() {

-	return elementSize;

-}

-/**

- * Converts to a rather lengthy String.

- *

- * @return String the ascii representation of the receiver

- */

-public String toString() {

-	int max = size();

-	StringBuffer buf = new StringBuffer();

-	buf.append("{"); //$NON-NLS-1$

-	for (int i = 0; i < max; ++i) {

-		if ((keyTable[i] != 0) || ((keyTable[i] == 0) && (valueTable[i] != 0))) {

-			buf.append(keyTable[i]).append("->").append(valueTable[i]); //$NON-NLS-1$

-		}

-		if (i < max) {

-			buf.append(", "); //$NON-NLS-1$

-		}

-	}

-	buf.append("}"); //$NON-NLS-1$

-	return buf.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/Label.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/Label.js
deleted file mode 100644
index fac3fa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/Label.js
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-import org.eclipse.wst.jsdt.internal.compiler.lookup.LocalVariableBinding;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortMethod;

-

-/**

- * This type is a port of smalltalks JavaLabel

- */

-public class Label {

-	public CodeStream codeStream;

-	final static int POS_NOT_SET = -1;

-	public int position = POS_NOT_SET; // position=POS_NOT_SET Then it's pos is not set.

-	public int[] forwardReferences = new int[10]; // Add an overflow check here.

-	public int forwardReferenceCount = 0;

-	private boolean isWide = false;

-	

-public Label() {

-	// for creating labels ahead of code generation

-}

-/**

- * @param codeStream org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream

- */

-public Label(CodeStream codeStream) {

-	this.codeStream = codeStream;

-}

-/**

- * Add a forward refrence for the array.

- */

-void addForwardReference(int iPos) {

-	int length;

-	if (forwardReferenceCount >= (length = forwardReferences.length))

-		System.arraycopy(forwardReferences, 0, (forwardReferences = new int[2*length]), 0, length);

-	forwardReferences[forwardReferenceCount++] = iPos;

-}

-/**

- * Add a forward refrence for the array.

- */

-public void appendForwardReferencesFrom(Label otherLabel) {

-	int otherCount = otherLabel.forwardReferenceCount;

-	if (otherCount == 0) return;

-	int length = forwardReferences.length;

-	int neededSpace = otherCount + forwardReferenceCount;

-	if (neededSpace >= length){

-		System.arraycopy(forwardReferences, 0, (forwardReferences = new int[neededSpace]), 0, forwardReferenceCount);

-	}

-	// append other forward references at the end, so they will get updated as well

-	System.arraycopy(otherLabel.forwardReferences, 0, forwardReferences, forwardReferenceCount, otherCount);

-	forwardReferenceCount = neededSpace;

-}

-/*

-* Put down  a reference to the array at the location in the codestream.

-*/

-void branch() {

-	if (position == POS_NOT_SET) {

-		addForwardReference(codeStream.position);

-		// Leave two bytes free to generate the jump afterwards

-		codeStream.position += 2;

-		codeStream.classFileOffset += 2;

-	} else {

-		/*

-		 * Position is set. Write it if it is not a wide branch.

-		 */

-		int offset = position - codeStream.position + 1;

-		if (Math.abs(offset) > 0x7FFF && !this.codeStream.wideMode) {

-			throw new AbortMethod(CodeStream.RESTART_IN_WIDE_MODE, null);

-		}

-		codeStream.writeSignedShort(offset);

-	}

-}

-/*

-* No support for wide branches yet

-*/

-void branchWide() {

-	if (position == POS_NOT_SET) {

-		addForwardReference(codeStream.position);

-		// Leave 4 bytes free to generate the jump offset afterwards

-		isWide = true;

-		codeStream.position += 4;

-		codeStream.classFileOffset += 4;

-	} else { //Position is set. Write it!

-		codeStream.writeSignedWord(position - codeStream.position + 1);

-	}

-}

-/**

- * @return boolean

- */

-public boolean hasForwardReferences() {

-	return forwardReferenceCount != 0;

-}

-/*

- * Some placed labels might be branching to a goto bytecode which we can optimize better.

- */

-public void inlineForwardReferencesFromLabelsTargeting(int gotoLocation) {

-	

-/*

- Code required to optimized unreachable gotos.

-	public boolean isBranchTarget(int location) {

-		Label[] labels = codeStream.labels;

-		for (int i = codeStream.countLabels - 1; i >= 0; i--){

-			Label label = labels[i];

-			if ((label.position == location) && label.isStandardLabel()){

-				return true;

-			}

-		}

-		return false;

-	}

- */

-	

-	Label[] labels = codeStream.labels;

-	for (int i = codeStream.countLabels - 1; i >= 0; i--){

-		Label label = labels[i];

-		if ((label.position == gotoLocation) && label.isStandardLabel()){

-			this.appendForwardReferencesFrom(label);

-			/*

-			 Code required to optimized unreachable gotos.

-				label.position = POS_NOT_SET;

-			*/

-		} else {

-			break; // same target labels should be contiguous

-		}

-	}

-}

-public void initialize(CodeStream stream) {

-    this.codeStream = stream;

-   	this.position = POS_NOT_SET;

-	this.forwardReferenceCount = 0; 

-}

-public boolean isStandardLabel(){

-	return true;

-}

-/*

-* Place the label. If we have forward references resolve them.

-*/

-public void place() { // Currently lacking wide support.

-	if (CodeStream.DEBUG) System.out.println("\t\t\t\t<place at: "+codeStream.position+" - "+ this); //$NON-NLS-1$ //$NON-NLS-2$

-

-	if (position == POS_NOT_SET) {

-		position = codeStream.position;

-		codeStream.addLabel(this);

-		int oldPosition = position;

-		boolean isOptimizedBranch = false;

-		// TURNED OFF since fail on 1F4IRD9

-		if (forwardReferenceCount != 0) {

-			isOptimizedBranch = (forwardReferences[forwardReferenceCount - 1] + 2 == position) && (codeStream.bCodeStream[codeStream.classFileOffset - 3] == Opcodes.OPC_goto);

-			if (isOptimizedBranch) {

-				codeStream.position = (position -= 3);

-				codeStream.classFileOffset -= 3;

-				forwardReferenceCount--;

-				// also update the PCs in the related debug attributes

-				/** OLD CODE

-					int index = codeStream.pcToSourceMapSize - 1;

-						while ((index >= 0) && (codeStream.pcToSourceMap[index][1] == oldPosition)) {

-							codeStream.pcToSourceMap[index--][1] = position;

-						}

-				*/

-				// Beginning of new code

-				int index = codeStream.pcToSourceMapSize - 2;

-				if (codeStream.lastEntryPC == oldPosition) {

-					codeStream.lastEntryPC = position;

-				}

-				if ((index >= 0) && (codeStream.pcToSourceMap[index] == position)) {

-					codeStream.pcToSourceMapSize-=2;

-				}

-				// end of new code

-				if (codeStream.generateLocalVariableTableAttributes) {

-					LocalVariableBinding locals[] = codeStream.locals;

-					for (int i = 0, max = locals.length; i < max; i++) {

-						LocalVariableBinding local = locals[i];

-						if ((local != null) && (local.initializationCount > 0)) {

-							if (local.initializationPCs[((local.initializationCount - 1) << 1) + 1] == oldPosition) {

-								// we want to prevent interval of size 0 to have a negative size.

-								// see PR 1GIRQLA: ITPJCORE:ALL - ClassFormatError for local variable attribute

-								local.initializationPCs[((local.initializationCount - 1) << 1) + 1] = position;

-							}

-							if (local.initializationPCs[(local.initializationCount - 1) << 1] == oldPosition) {

-								local.initializationPCs[(local.initializationCount - 1) << 1] = position;

-							}

-						}

-					}

-				}

-			}

-		}

-		for (int i = 0; i < forwardReferenceCount; i++) {

-			int offset = position - forwardReferences[i] + 1;

-			if (Math.abs(offset) > 0x7FFF && !this.codeStream.wideMode) {

-				throw new AbortMethod(CodeStream.RESTART_IN_WIDE_MODE, null);

-			}

-			if (this.codeStream.wideMode) {

-				if (this.isWide) {

-					codeStream.writeSignedWord(forwardReferences[i], offset);

-				} else {

-					codeStream.writeSignedShort(forwardReferences[i], offset);

-				}

-			} else {

-				codeStream.writeSignedShort(forwardReferences[i], offset);

-			}

-		}

-		// For all labels placed at that position we check if we need to rewrite the jump

-		// offset. It is the case each time a label had a forward reference to the current position.

-		// Like we change the current position, we have to change the jump offset. See 1F4IRD9 for more details.

-		if (isOptimizedBranch) {

-			for (int i = 0; i < codeStream.countLabels; i++) {

-				Label label = codeStream.labels[i];

-				if (oldPosition == label.position) {

-					label.position = position;

-					if (label instanceof CaseLabel) {

-						int offset = position - ((CaseLabel) label).instructionPosition;

-						for (int j = 0; j < label.forwardReferenceCount; j++) {

-							int forwardPosition = label.forwardReferences[j];

-							codeStream.writeSignedWord(forwardPosition, offset);

-						}

-					} else {

-						for (int j = 0; j < label.forwardReferenceCount; j++) {

-							int forwardPosition = label.forwardReferences[j];

-							int offset = position - forwardPosition + 1;

-							if (Math.abs(offset) > 0x7FFF && !this.codeStream.wideMode) {

-								throw new AbortMethod(CodeStream.RESTART_IN_WIDE_MODE, null);

-							}

-							if (this.codeStream.wideMode) {

-								if (this.isWide) {

-									codeStream.writeSignedWord(forwardPosition, offset);

-								} else {

-									codeStream.writeSignedShort(forwardPosition, offset);

-								}

-							} else {

-								codeStream.writeSignedShort(forwardPosition, offset);

-							}

-						}

-					}

-				}

-			}

-		}

-	}

-}

-/**

- * Print out the receiver

- */

-public String toString() {

-	String basic = getClass().getName();

-	basic = basic.substring(basic.lastIndexOf('.')+1);

-	StringBuffer buffer = new StringBuffer(basic); 

-	buffer.append('@').append(Integer.toHexString(hashCode()));

-	buffer.append("(position=").append(position); //$NON-NLS-1$

-	buffer.append(", forwards = ["); //$NON-NLS-1$

-	for (int i = 0; i < forwardReferenceCount - 1; i++)

-		buffer.append(forwardReferences[i] + ", "); //$NON-NLS-1$

-	if (forwardReferenceCount >= 1)

-		buffer.append(forwardReferences[forwardReferenceCount-1]);

-	buffer.append("] )"); //$NON-NLS-1$

-	return buffer.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/LongCache.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/LongCache.js
deleted file mode 100644
index 5101a69..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/LongCache.js
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public class LongCache {

-	public long keyTable[];

-	public int valueTable[]; 

-	int elementSize;

-	int threshold;

-/**

- * Constructs a new, empty hashtable. A default capacity and

- * load factor is used. Note that the hashtable will automatically 

- * grow when it gets full.

- */

-public LongCache() {

-	this(13);

-}

-/**

- * Constructs a new, empty hashtable with the specified initial

- * capacity.

- * @param initialCapacity int

- *  the initial number of buckets

- */

-public LongCache(int initialCapacity) {

-	elementSize = 0;

-	threshold = (int) (initialCapacity * 0.66);

-	keyTable = new long[initialCapacity];

-	valueTable = new int[initialCapacity];

-}

-/**

- * Clears the hash table so that it has no more elements in it.

- */

-public void clear() {

-	for (int i = keyTable.length; --i >= 0;) {

-		keyTable[i] = 0;

-		valueTable[i] = 0;

-	}

-	elementSize = 0;

-}

-/** Returns true if the collection contains an element for the key.

- *

- * @param key <CODE>long</CODE> the key that we are looking for

- * @return boolean

- */

-public boolean containsKey(long key) {

-	int index = hash(key);

-	while ((keyTable[index] != 0) || ((keyTable[index] == 0) &&(valueTable[index] != 0))) {

-		if (keyTable[index] == key)

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-/** Gets the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>long</CODE> the specified key

- * @return int the element for the key or -1 if the key is not

- *  defined in the hash table.

- */

-public int get(long key) {

-	int index = hash(key);

-	while ((keyTable[index] != 0) || ((keyTable[index] == 0) &&(valueTable[index] != 0))) {

-		if (keyTable[index] == key)

-			return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return -1;

-}

-/**

- * Return a hashcode for the value of the key parameter.

- * @param key long

- * @return int the hash code corresponding to the key value

- */

-public int hash(long key) {

-	return ((int) key & 0x7FFFFFFF) % keyTable.length;

-}

-/**

- * Puts the specified element into the hashtable, using the specified

- * key.  The element may be retrieved by doing a get() with the same key.

- * 

- * @param key <CODE>long</CODE> the specified key in the hashtable

- * @param value <CODE>int</CODE> the specified element

- * @return int value

- */

-public int put(long key, int value) {

-	int index = hash(key);

-	while ((keyTable[index] != 0) || ((keyTable[index] == 0) && (valueTable[index] != 0))) {

-		if (keyTable[index] == key)

-			return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold) {

-		rehash();

-	}

-	return value;

-}

-/**

- * Rehashes the content of the table into a bigger table.

- * This method is called automatically when the hashtable's

- * size exceeds the threshold.

- */

-private void rehash() {

-	LongCache newHashtable = new LongCache(keyTable.length * 2);

-	for (int i = keyTable.length; --i >= 0;) {

-		long key = keyTable[i];

-		int value = valueTable[i];

-		if ((key != 0) || ((key == 0) && (value != 0))) {

-			newHashtable.put(key, value);

-		}

-	}

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-/**

- * Returns the number of elements contained in the hashtable.

- *

- * @return <CODE>int</CODE> The size of the table

- */

-public int size() {

-	return elementSize;

-}

-/**

- * Converts to a rather lengthy String.

- *

- * @return String the ascii representation of the receiver

- */

-public String toString() {

-	int max = size();

-	StringBuffer buf = new StringBuffer();

-	buf.append("{"); //$NON-NLS-1$

-	for (int i = 0; i < max; ++i) {

-		if ((keyTable[i] != 0) || ((keyTable[i] == 0) && (valueTable[i] != 0))) {

-			buf.append(keyTable[i]).append("->").append(valueTable[i]); //$NON-NLS-1$

-		}

-		if (i < max) {

-			buf.append(", "); //$NON-NLS-1$

-		}

-	}

-	buf.append("}"); //$NON-NLS-1$

-	return buf.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/MethodNameAndTypeCache.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/MethodNameAndTypeCache.js
deleted file mode 100644
index f9b30a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/MethodNameAndTypeCache.js
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding;

-

-public class MethodNameAndTypeCache {

-	public MethodBinding keyTable[];

-	public int valueTable[]; 

-	int elementSize;

-	int threshold;

-/**

- * Constructs a new, empty hashtable. A default capacity is used.

- * Note that the hashtable will automatically grow when it gets full.

- */

-public MethodNameAndTypeCache() {

-	this(13);

-}

-/**

- * Constructs a new, empty hashtable with the specified initial

- * capacity.

- * @param initialCapacity int

- *	the initial number of buckets

- */

-public MethodNameAndTypeCache(int initialCapacity) {

-	this.elementSize = 0;

-	this.threshold = (int) (initialCapacity * 0.66f);

-	this.keyTable = new MethodBinding[initialCapacity];

-	this.valueTable = new int[initialCapacity];

-}

-/**

- * Clears the hash table so that it has no more elements in it.

- */

-public void clear() {

-	for (int i = keyTable.length; --i >= 0;) {

-		keyTable[i] = null;

-		valueTable[i] = 0;

-	}

-	elementSize = 0;

-}

-/** Returns true if the collection contains an element for the key.

- *

- * @param key char[] the key that we are looking for

- * @return boolean

- */

-public boolean containsKey(MethodBinding key) {

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (equalsForNameAndType(keyTable[index], key))

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-/**

- * Returns true if the two methodBinding are consider to be equal for the name and type

- * purpose

- */

-public boolean equalsForNameAndType(MethodBinding method1, MethodBinding method2) {

-	return CharOperation.equals(method1.selector, method2.selector) && CharOperation.equals(method1.signature(), method2.signature());

-}

-/** Gets the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>char[]</CODE> the specified key

- * @return int the element for the key or -1 if the key is not

- *	defined in the hash table.

- */

-public int get(MethodBinding key) {

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (equalsForNameAndType(keyTable[index], key))

-			return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return -1;

-}

-/**

- * Return the hashcode for the key parameter

- *

- * @param key org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

- * @return int

- */

-public int hashCode(MethodBinding key) {

-	return CharOperation.hashCode(key.selector) % keyTable.length;

-}

-/**

- * Puts the specified element into the hashtable, using the specified

- * key.  The element may be retrieved by doing a get() with the same key.

- * The key and the element cannot be null. 

- * 

- * @param key <CODE>Object</CODE> the specified key in the hashtable

- * @param value <CODE>int</CODE> the specified element

- * @return int the old value of the key, or -1 if it did not have one.

- */

-public int put(MethodBinding key, int value) { 

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (equalsForNameAndType(keyTable[index], key))

-			return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold)

-		rehash();

-	return value;

-}

-/**

- * Rehashes the content of the table into a bigger table.

- * This method is called automatically when the hashtable's

- * size exceeds the threshold.

- */

-private void rehash() {

-	MethodNameAndTypeCache newHashtable = new MethodNameAndTypeCache(keyTable.length * 2);

-	for (int i = keyTable.length; --i >= 0;)

-		if (keyTable[i] != null)

-			newHashtable.put(keyTable[i], valueTable[i]);

-

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-/**

- * Returns the number of elements contained in the hashtable.

- *

- * @return <CODE>int</CODE> The size of the table

- */

-public int size() {

-	return elementSize;

-}

-/**

- * Converts to a rather lengthy String.

- *

- * @return String the ascii representation of the receiver

- */

-public String toString() {

-	int max = size();

-	StringBuffer buf = new StringBuffer();

-	buf.append("{"); //$NON-NLS-1$

-	for (int i = 0; i < max; ++i) {

-		if (keyTable[i] != null) {

-			buf.append(keyTable[i]).append("->").append(valueTable[i]); //$NON-NLS-1$

-		}

-		if (i < max) {

-			buf.append(", "); //$NON-NLS-1$

-		}

-	}

-	buf.append("}"); //$NON-NLS-1$

-	return buf.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ObjectCache.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ObjectCache.js
deleted file mode 100644
index fc5d031..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/ObjectCache.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public class ObjectCache {

-	public Object keyTable[];

-	public int valueTable[];

-	int elementSize;

-	int threshold;

-/**

- * Constructs a new, empty hashtable. A default capacity is used.

- * Note that the hashtable will automatically grow when it gets full.

- */

-public ObjectCache() {

-	this(13);

-}

-/**

- * Constructs a new, empty hashtable with the specified initial

- * capacity.

- * @param initialCapacity int

- *  the initial number of buckets

- */

-public ObjectCache(int initialCapacity) {

-	this.elementSize = 0;

-	this.threshold = (int) (initialCapacity * 0.66f);

-	this.keyTable = new Object[initialCapacity];

-	this.valueTable = new int[initialCapacity];

-}

-/**

- * Clears the hash table so that it has no more elements in it.

- */

-public void clear() {

-	for (int i = keyTable.length; --i >= 0;) {

-		keyTable[i] = null;

-		valueTable[i] = 0;

-	}

-	elementSize = 0;

-}

-/** Returns true if the collection contains an element for the key.

- *

- * @param key char[] the key that we are looking for

- * @return boolean

- */

-public boolean containsKey(Object key) {

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (keyTable[index] == key)

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-/** Gets the object associated with the specified key in the

- * hashtable.

- * @param key <CODE>char[]</CODE> the specified key

- * @return int the element for the key or -1 if the key is not

- *  defined in the hash table.

- */

-public int get(Object key) {

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (keyTable[index] == key)

-			return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return -1;

-}

-/**

- * Return the hashcode for the key parameter

- *

- * @param key org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding

- * @return int

- */

-public int hashCode(Object key) {

-	return (key.hashCode() & 0x7FFFFFFF) % keyTable.length;

-}

-/**

- * Puts the specified element into the hashtable, using the specified

- * key.  The element may be retrieved by doing a get() with the same key.

- * The key and the element cannot be null. 

- * 

- * @param key <CODE>Object</CODE> the specified key in the hashtable

- * @param value <CODE>int</CODE> the specified element

- * @return int the old value of the key, or -1 if it did not have one.

- */

-public int put(Object key, int value) { 

-	int index = hashCode(key);

-	while (keyTable[index] != null) {

-		if (keyTable[index] == key)

-			return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold)

-		rehash();

-	return value;

-}

-/**

- * Rehashes the content of the table into a bigger table.

- * This method is called automatically when the hashtable's

- * size exceeds the threshold.

- */

-private void rehash() {

-	ObjectCache newHashtable = new ObjectCache(keyTable.length * 2);

-	for (int i = keyTable.length; --i >= 0;)

-		if (keyTable[i] != null)

-			newHashtable.put(keyTable[i], valueTable[i]);

-

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-/**

- * Returns the number of elements contained in the hashtable.

- *

- * @return <CODE>int</CODE> The size of the table

- */

-public int size() {

-	return elementSize;

-}

-/**

- * Converts to a rather lengthy String.

- *

- * @return String the ascii representation of the receiver

- */

-public String toString() {

-	int max = size();

-	StringBuffer buf = new StringBuffer();

-	buf.append("{"); //$NON-NLS-1$

-	for (int i = 0; i < max; ++i) {

-		if (keyTable[i] != null) {

-			buf.append(keyTable[i]).append("->").append(valueTable[i]); //$NON-NLS-1$

-		}

-		if (i < max) {

-			buf.append(", "); //$NON-NLS-1$

-		}

-	}

-	buf.append("}"); //$NON-NLS-1$

-	return buf.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/Opcodes.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/Opcodes.js
deleted file mode 100644
index b60a1ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/Opcodes.js
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public interface Opcodes {

-

-	public static final byte OPC_nop = 0;

-	public static final byte OPC_aconst_null = 1;

-	public static final byte OPC_iconst_m1 = 2;

-	public static final byte OPC_iconst_0 = 3;

-	public static final byte OPC_iconst_1 = 4;

-	public static final byte OPC_iconst_2 = 5;

-	public static final byte OPC_iconst_3 = 6;

-	public static final byte OPC_iconst_4 = 7;

-	public static final byte OPC_iconst_5 = 8;

-	public static final byte OPC_lconst_0 = 9;

-	public static final byte OPC_lconst_1 = 10;

-	public static final byte OPC_fconst_0 = 11;

-	public static final byte OPC_fconst_1 = 12;

-	public static final byte OPC_fconst_2 = 13;

-	public static final byte OPC_dconst_0 = 14;

-	public static final byte OPC_dconst_1 = 15;

-	public static final byte OPC_bipush = 16;

-	public static final byte OPC_sipush = 17;

-	public static final byte OPC_ldc = 18;

-	public static final byte OPC_ldc_w = 19;

-	public static final byte OPC_ldc2_w = 20;

-	public static final byte OPC_iload = 21;

-	public static final byte OPC_lload = 22;

-	public static final byte OPC_fload = 23;

-	public static final byte OPC_dload = 24;

-	public static final byte OPC_aload = 25;

-	public static final byte OPC_iload_0 = 26;

-	public static final byte OPC_iload_1 = 27;

-	public static final byte OPC_iload_2 = 28;

-	public static final byte OPC_iload_3 = 29;

-	public static final byte OPC_lload_0 = 30;

-	public static final byte OPC_lload_1 = 31;

-	public static final byte OPC_lload_2 = 32;

-	public static final byte OPC_lload_3 = 33;

-	public static final byte OPC_fload_0 = 34;

-	public static final byte OPC_fload_1 = 35;

-	public static final byte OPC_fload_2 = 36;

-	public static final byte OPC_fload_3 = 37;

-	public static final byte OPC_dload_0 = 38;

-	public static final byte OPC_dload_1 = 39;

-	public static final byte OPC_dload_2 = 40;

-	public static final byte OPC_dload_3 = 41;

-	public static final byte OPC_aload_0 = 42;

-	public static final byte OPC_aload_1 = 43;

-	public static final byte OPC_aload_2 = 44;

-	public static final byte OPC_aload_3 = 45;

-	public static final byte OPC_iaload = 46;

-	public static final byte OPC_laload = 47;

-	public static final byte OPC_faload = 48;

-	public static final byte OPC_daload = 49;

-	public static final byte OPC_aaload = 50;

-	public static final byte OPC_baload = 51;

-	public static final byte OPC_caload = 52;

-	public static final byte OPC_saload = 53;

-	public static final byte OPC_istore = 54;

-	public static final byte OPC_lstore = 55;

-	public static final byte OPC_fstore = 56;

-	public static final byte OPC_dstore = 57;

-	public static final byte OPC_astore = 58;

-	public static final byte OPC_istore_0 = 59;

-	public static final byte OPC_istore_1 = 60;

-	public static final byte OPC_istore_2 = 61;

-	public static final byte OPC_istore_3 = 62;

-	public static final byte OPC_lstore_0 = 63;

-	public static final byte OPC_lstore_1 = 64;

-	public static final byte OPC_lstore_2 = 65;

-	public static final byte OPC_lstore_3 = 66;

-	public static final byte OPC_fstore_0 = 67;

-	public static final byte OPC_fstore_1 = 68;

-	public static final byte OPC_fstore_2 = 69;

-	public static final byte OPC_fstore_3 = 70;

-	public static final byte OPC_dstore_0 = 71;

-	public static final byte OPC_dstore_1 = 72;

-	public static final byte OPC_dstore_2 = 73;

-	public static final byte OPC_dstore_3 = 74;

-	public static final byte OPC_astore_0 = 75;

-	public static final byte OPC_astore_1 = 76;

-	public static final byte OPC_astore_2 = 77;

-	public static final byte OPC_astore_3 = 78;

-	public static final byte OPC_iastore = 79;

-	public static final byte OPC_lastore = 80;

-	public static final byte OPC_fastore = 81;

-	public static final byte OPC_dastore = 82;

-	public static final byte OPC_aastore = 83;

-	public static final byte OPC_bastore = 84;

-	public static final byte OPC_castore = 85;

-	public static final byte OPC_sastore = 86;

-	public static final byte OPC_pop = 87;

-	public static final byte OPC_pop2 = 88;

-	public static final byte OPC_dup = 89;

-	public static final byte OPC_dup_x1 = 90;

-	public static final byte OPC_dup_x2 = 91;

-	public static final byte OPC_dup2 = 92;

-	public static final byte OPC_dup2_x1 = 93;

-	public static final byte OPC_dup2_x2 = 94;

-	public static final byte OPC_swap = 95;

-	public static final byte OPC_iadd = 96;

-	public static final byte OPC_ladd = 97;

-	public static final byte OPC_fadd = 98;

-	public static final byte OPC_dadd = 99;

-	public static final byte OPC_isub = 100;

-	public static final byte OPC_lsub = 101;

-	public static final byte OPC_fsub = 102;

-	public static final byte OPC_dsub = 103;

-	public static final byte OPC_imul = 104;

-	public static final byte OPC_lmul = 105;

-	public static final byte OPC_fmul = 106;

-	public static final byte OPC_dmul = 107;

-	public static final byte OPC_idiv = 108;

-	public static final byte OPC_ldiv = 109;

-	public static final byte OPC_fdiv = 110;

-	public static final byte OPC_ddiv = 111;

-	public static final byte OPC_irem = 112;

-	public static final byte OPC_lrem = 113;

-	public static final byte OPC_frem = 114;

-	public static final byte OPC_drem = 115;

-	public static final byte OPC_ineg = 116;

-	public static final byte OPC_lneg = 117;

-	public static final byte OPC_fneg = 118;

-	public static final byte OPC_dneg = 119;

-	public static final byte OPC_ishl = 120;

-	public static final byte OPC_lshl = 121;

-	public static final byte OPC_ishr = 122;

-	public static final byte OPC_lshr = 123;

-	public static final byte OPC_iushr = 124;

-	public static final byte OPC_lushr = 125;

-	public static final byte OPC_iand = 126;

-	public static final byte OPC_land = 127;

-	public static final byte OPC_ior = (byte) 128;

-	public static final byte OPC_lor = (byte) 129;

-	public static final byte OPC_ixor = (byte) 130;

-	public static final byte OPC_lxor = (byte) 131;

-	public static final byte OPC_iinc = (byte) 132;

-	public static final byte OPC_i2l = (byte) 133;

-	public static final byte OPC_i2f = (byte) 134;

-	public static final byte OPC_i2d = (byte) 135;

-	public static final byte OPC_l2i = (byte) 136;

-	public static final byte OPC_l2f = (byte) 137;

-	public static final byte OPC_l2d = (byte) 138;

-	public static final byte OPC_f2i = (byte) 139;

-	public static final byte OPC_f2l = (byte) 140;

-	public static final byte OPC_f2d = (byte) 141;

-	public static final byte OPC_d2i = (byte) 142;

-	public static final byte OPC_d2l = (byte) 143;

-	public static final byte OPC_d2f = (byte) 144;

-	public static final byte OPC_i2b = (byte) 145;

-	public static final byte OPC_i2c = (byte) 146;

-	public static final byte OPC_i2s = (byte) 147;

-	public static final byte OPC_lcmp = (byte) 148;

-	public static final byte OPC_fcmpl = (byte) 149;

-	public static final byte OPC_fcmpg = (byte) 150;

-	public static final byte OPC_dcmpl = (byte) 151;

-	public static final byte OPC_dcmpg = (byte) 152;

-	public static final byte OPC_ifeq = (byte) 153;

-	public static final byte OPC_ifne = (byte) 154;

-	public static final byte OPC_iflt = (byte) 155;

-	public static final byte OPC_ifge = (byte) 156;

-	public static final byte OPC_ifgt = (byte) 157;

-	public static final byte OPC_ifle = (byte) 158;

-	public static final byte OPC_if_icmpeq = (byte) 159;

-	public static final byte OPC_if_icmpne = (byte) 160;

-	public static final byte OPC_if_icmplt = (byte) 161;

-	public static final byte OPC_if_icmpge = (byte) 162;

-	public static final byte OPC_if_icmpgt = (byte) 163;

-	public static final byte OPC_if_icmple = (byte) 164;

-	public static final byte OPC_if_acmpeq = (byte) 165;

-	public static final byte OPC_if_acmpne = (byte) 166;

-	public static final byte OPC_goto = (byte) 167;

-	public static final byte OPC_jsr = (byte) 168;

-	public static final byte OPC_ret = (byte) 169;

-	public static final byte OPC_tableswitch = (byte) 170;

-	public static final byte OPC_lookupswitch = (byte) 171;

-	public static final byte OPC_ireturn = (byte) 172;

-	public static final byte OPC_lreturn = (byte) 173;

-	public static final byte OPC_freturn = (byte) 174;

-	public static final byte OPC_dreturn = (byte) 175;

-	public static final byte OPC_areturn = (byte) 176;

-	public static final byte OPC_return = (byte) 177;

-	public static final byte OPC_getstatic = (byte) 178;

-	public static final byte OPC_putstatic = (byte) 179;

-	public static final byte OPC_getfield = (byte) 180;

-	public static final byte OPC_putfield = (byte) 181;

-	public static final byte OPC_invokevirtual = (byte) 182;

-	public static final byte OPC_invokespecial = (byte) 183;

-	public static final byte OPC_invokestatic = (byte) 184;

-	public static final byte OPC_invokeinterface = (byte) 185;

-	public static final byte OPC_new = (byte) 187;

-	public static final byte OPC_newarray = (byte) 188;

-	public static final byte OPC_anewarray = (byte) 189;

-	public static final byte OPC_arraylength = (byte) 190;

-	public static final byte OPC_athrow = (byte) 191;

-	public static final byte OPC_checkcast = (byte) 192;

-	public static final byte OPC_instanceof = (byte) 193;

-	public static final byte OPC_monitorenter = (byte) 194;

-	public static final byte OPC_monitorexit = (byte) 195;

-	public static final byte OPC_wide = (byte) 196;

-	public static final byte OPC_multianewarray = (byte) 197;

-	public static final byte OPC_ifnull = (byte) 198;

-	public static final byte OPC_ifnonnull = (byte) 199;

-	public static final byte OPC_goto_w = (byte) 200;

-	public static final byte OPC_jsr_w = (byte) 201;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/QualifiedNamesConstants.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/QualifiedNamesConstants.js
deleted file mode 100644
index 1c41c80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/codegen/QualifiedNamesConstants.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.codegen;

-

-public interface QualifiedNamesConstants {

-	char[] JavaLangObjectConstantPoolName = "java/lang/Object".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangStringConstantPoolName = "java/lang/String".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangStringBufferConstantPoolName = "java/lang/StringBuffer".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangClassConstantPoolName = "java/lang/Class".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangThrowableConstantPoolName = "java/lang/Throwable".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangClassNotFoundExceptionConstantPoolName = "java/lang/ClassNotFoundException".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangNoClassDefFoundErrorConstantPoolName = "java/lang/NoClassDefFoundError".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangIntegerConstantPoolName = "java/lang/Integer".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangFloatConstantPoolName = "java/lang/Float".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangDoubleConstantPoolName = "java/lang/Double".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangLongConstantPoolName = "java/lang/Long".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangShortConstantPoolName = "java/lang/Short".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangByteConstantPoolName = "java/lang/Byte".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangCharacterConstantPoolName = "java/lang/Character".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangVoidConstantPoolName = "java/lang/Void".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangBooleanConstantPoolName = "java/lang/Boolean".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangSystemConstantPoolName = "java/lang/System".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangErrorConstantPoolName = "java/lang/Error".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangExceptionConstantPoolName = "java/lang/Exception".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangReflectConstructor = "java/lang/reflect/Constructor".toCharArray();   //$NON-NLS-1$

-	char[] JavaUtilIteratorConstantPoolName = "java/util/Iterator".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangStringBuilderConstantPoolName = "java/lang/StringBuilder".toCharArray(); //$NON-NLS-1$

-	char[] Append = new char[] {'a', 'p', 'p', 'e', 'n', 'd'};

-	char[] ToString = new char[] {'t', 'o', 'S', 't', 'r', 'i', 'n', 'g'};

-	char[] Init = new char[] {'<', 'i', 'n', 'i', 't', '>'};

-	char[] Clinit = new char[] {'<', 'c', 'l', 'i', 'n', 'i', 't', '>'};

-	char[] ValueOf = new char[] {'v', 'a', 'l', 'u', 'e', 'O', 'f'};

-	char[] ForName = new char[] {'f', 'o', 'r', 'N', 'a', 'm', 'e'};

-	char[] GetMessage = new char[] {'g', 'e', 't', 'M', 'e', 's', 's', 'a', 'g', 'e'};

-	char[] NewInstance = "newInstance".toCharArray(); //$NON-NLS-1$

-	char[] GetConstructor = "getConstructor".toCharArray(); //$NON-NLS-1$

-	char[] Exit = new char[] {'e', 'x', 'i', 't'};

-	char[] Intern = "intern".toCharArray(); //$NON-NLS-1$

-	char[] Out = new char[] {'o', 'u', 't'};

-	char[] TYPE = new char[] {'T', 'Y', 'P', 'E'};

-	char[] This = new char[] {'t', 'h', 'i', 's'};

-	char[] JavaLangClassSignature = new char[] {'L', 'j', 'a', 'v', 'a', '/', 'l', 'a', 'n', 'g', '/', 'C', 'l', 'a', 's', 's', ';'};

-	char[] ForNameSignature = "(Ljava/lang/String;)Ljava/lang/Class;".toCharArray(); //$NON-NLS-1$

-	char[] GetMessageSignature = "()Ljava/lang/String;".toCharArray(); //$NON-NLS-1$

-	char[] GetConstructorSignature = "([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;".toCharArray(); //$NON-NLS-1$

-	char[] StringConstructorSignature = "(Ljava/lang/String;)V".toCharArray(); //$NON-NLS-1$

-	char[] NewInstanceSignature = "([Ljava/lang/Object;)Ljava/lang/Object;".toCharArray(); //$NON-NLS-1$

-	char[] DefaultConstructorSignature = {'(', ')', 'V'};

-	char[] ClinitSignature = DefaultConstructorSignature;

-	char[] ToStringSignature = GetMessageSignature;

-	char[] InternSignature = GetMessageSignature;

-	char[] StringBufferAppendIntSignature = "(I)Ljava/lang/StringBuffer;".toCharArray(); //$NON-NLS-1$

-	char[] StringBufferAppendLongSignature = "(J)Ljava/lang/StringBuffer;".toCharArray(); //$NON-NLS-1$

-	char[] StringBufferAppendFloatSignature = "(F)Ljava/lang/StringBuffer;".toCharArray(); //$NON-NLS-1$

-	char[] StringBufferAppendDoubleSignature = "(D)Ljava/lang/StringBuffer;".toCharArray(); //$NON-NLS-1$

-	char[] StringBufferAppendCharSignature = "(C)Ljava/lang/StringBuffer;".toCharArray(); //$NON-NLS-1$

-	char[] StringBufferAppendBooleanSignature = "(Z)Ljava/lang/StringBuffer;".toCharArray(); //$NON-NLS-1$

-	char[] StringBufferAppendObjectSignature = "(Ljava/lang/Object;)Ljava/lang/StringBuffer;".toCharArray(); //$NON-NLS-1$

-	char[] StringBufferAppendStringSignature = "(Ljava/lang/String;)Ljava/lang/StringBuffer;".toCharArray(); //$NON-NLS-1$

-	char[] StringBuilderAppendIntSignature = "(I)Ljava/lang/StringBuilder;".toCharArray(); //$NON-NLS-1$

-	char[] StringBuilderAppendLongSignature = "(J)Ljava/lang/StringBuilder;".toCharArray(); //$NON-NLS-1$

-	char[] StringBuilderAppendFloatSignature = "(F)Ljava/lang/StringBuilder;".toCharArray(); //$NON-NLS-1$

-	char[] StringBuilderAppendDoubleSignature = "(D)Ljava/lang/StringBuilder;".toCharArray(); //$NON-NLS-1$

-	char[] StringBuilderAppendCharSignature = "(C)Ljava/lang/StringBuilder;".toCharArray(); //$NON-NLS-1$

-	char[] StringBuilderAppendBooleanSignature = "(Z)Ljava/lang/StringBuilder;".toCharArray(); //$NON-NLS-1$

-	char[] StringBuilderAppendObjectSignature = "(Ljava/lang/Object;)Ljava/lang/StringBuilder;".toCharArray(); //$NON-NLS-1$

-	char[] StringBuilderAppendStringSignature = "(Ljava/lang/String;)Ljava/lang/StringBuilder;".toCharArray(); //$NON-NLS-1$

-	char[] ValueOfObjectSignature = "(Ljava/lang/Object;)Ljava/lang/String;".toCharArray(); //$NON-NLS-1$

-	char[] ValueOfIntSignature = "(I)Ljava/lang/String;".toCharArray(); //$NON-NLS-1$

-	char[] ValueOfLongSignature = "(J)Ljava/lang/String;".toCharArray(); //$NON-NLS-1$

-	char[] ValueOfCharSignature = "(C)Ljava/lang/String;".toCharArray(); //$NON-NLS-1$

-	char[] ValueOfBooleanSignature = "(Z)Ljava/lang/String;".toCharArray(); //$NON-NLS-1$

-	char[] ValueOfDoubleSignature = "(D)Ljava/lang/String;".toCharArray(); //$NON-NLS-1$

-	char[] ValueOfFloatSignature = "(F)Ljava/lang/String;".toCharArray(); //$NON-NLS-1$

-	char[] JavaIoPrintStreamSignature = "Ljava/io/PrintStream;".toCharArray(); //$NON-NLS-1$

-	char[] ExitIntSignature = new char[] {'(', 'I', ')', 'V'};

-	char[] ArrayJavaLangObjectConstantPoolName = "[Ljava/lang/Object;".toCharArray(); //$NON-NLS-1$

-	char[] ArrayJavaLangClassConstantPoolName = "[Ljava/lang/Class;".toCharArray(); //$NON-NLS-1$

-	char[] JavaLangAssertionErrorConstantPoolName = "java/lang/AssertionError".toCharArray(); //$NON-NLS-1$

-	char[] AssertionErrorIntConstrSignature = "(I)V".toCharArray(); //$NON-NLS-1$

-	char[] AssertionErrorLongConstrSignature = "(J)V".toCharArray(); //$NON-NLS-1$

-	char[] AssertionErrorFloatConstrSignature = "(F)V".toCharArray(); //$NON-NLS-1$

-	char[] AssertionErrorDoubleConstrSignature = "(D)V".toCharArray(); //$NON-NLS-1$

-	char[] AssertionErrorCharConstrSignature = "(C)V".toCharArray(); //$NON-NLS-1$

-	char[] AssertionErrorBooleanConstrSignature = "(Z)V".toCharArray(); //$NON-NLS-1$

-	char[] AssertionErrorObjectConstrSignature = "(Ljava/lang/Object;)V".toCharArray(); //$NON-NLS-1$

-	char[] DesiredAssertionStatus = "desiredAssertionStatus".toCharArray(); //$NON-NLS-1$

-	char[] DesiredAssertionStatusSignature = "()Z".toCharArray(); //$NON-NLS-1$

-	char[] ShortConstrSignature = "(S)V".toCharArray(); //$NON-NLS-1$

-	char[] ByteConstrSignature = "(B)V".toCharArray(); //$NON-NLS-1$

-	char[] GetClass = "getClass".toCharArray(); //$NON-NLS-1$

-	char[] GetClassSignature = "()Ljava/lang/Class;".toCharArray(); //$NON-NLS-1$

-	char[] GetComponentType = "getComponentType".toCharArray(); //$NON-NLS-1$

-	char[] GetComponentTypeSignature = GetClassSignature;

-	char[] HasNext = "hasNext".toCharArray();//$NON-NLS-1$

-	char[] HasNextSignature = "()Z".toCharArray();//$NON-NLS-1$

-	char[] Next = "next".toCharArray();//$NON-NLS-1$

-	char[] NextSignature = "()Ljava/lang/Object;".toCharArray();//$NON-NLS-1$

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryField.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryField.js
deleted file mode 100644
index 82ae705..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryField.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-

-public interface IBinaryField extends IGenericField {

-/**

- * 

- * @return org.eclipse.wst.jsdt.internal.compiler.Constant

- */

-Constant getConstant();

-/**

- * Answer the resolved name of the receiver's type in the

- * class file format as specified in section 4.3.2 of the Java 2 VM spec.

- *

- * For example:

- *   - java.lang.String is Ljava/lang/String;

- *   - an int is I

- *   - a 2 dimensional array of strings is [[Ljava/lang/String;

- *   - an array of floats is [F

- */

-

-char[] getTypeName();

-

-/**

- * Answer the receiver's signature which describes the parameter &

- * return types as specified in section 4.4.4 of the Java 2 VM spec.

- */

-char[] getGenericSignature();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryMethod.js
deleted file mode 100644
index 40103e3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryMethod.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-// clinit methods (synthetics too?) can be returned from IBinaryType>>getMethods()

-// BUT do not have to be... the compiler will ignore them when building the binding.

-// The synthetic argument of a member type's constructor (ie. the first arg of a non-static

-// member type) is also ignored by the compiler, BUT in this case it must be included

-// in the constructor's signature.

-

-public interface IBinaryMethod extends IGenericMethod {

-

-/**

- * Answer the resolved names of the exception types in the

- * class file format as specified in section 4.2 of the Java 2 VM spec

- * or null if the array is empty.

- *

- * For example, java.lang.String is java/lang/String.

- */

-char[][] getExceptionTypeNames();

-

-/**

- * Answer the receiver's method descriptor which describes the parameter &

- * return types as specified in section 4.4.3 of the Java 2 VM spec.

- *

- * For example:

- *   - int foo(String) is (Ljava/lang/String;)I

- *   - Object[] foo(int) is (I)[Ljava/lang/Object;

- */

-char[] getMethodDescriptor();

-

-/**

- * Answer the receiver's signature which describes the parameter &

- * return types as specified in section 4.4.4 of the Java 2 VM spec.

- */

-char[] getGenericSignature();

-

-/**

- * Answer whether the receiver represents a class initializer method.

- */

-boolean isClinit();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryNestedType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryNestedType.js
deleted file mode 100644
index a1d4aa8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryNestedType.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public interface IBinaryNestedType {

-/**

- * Answer the resolved name of the enclosing type in the

- * class file format as specified in section 4.2 of the Java 2 VM spec.

- *

- * For example, java.lang.String is java/lang/String.

- */

-

-char[] getEnclosingTypeName();

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- */

-

-// We have added AccDeprecated & AccSynthetic.

-

-int getModifiers();

-/**

- * Answer the resolved name of the member type in the

- * class file format as specified in section 4.2 of the Java 2 VM spec.

- *

- * For example, p1.p2.A.M is p1/p2/A$M.

- */

-

-char[] getName();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryType.js
deleted file mode 100644
index def9d07..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IBinaryType.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public interface IBinaryType extends IGenericType {

-

-	char[][] NoInterface = CharOperation.NO_CHAR_CHAR;

-	IBinaryNestedType[] NoNestedType = new IBinaryNestedType[0];

-	IBinaryField[] NoField = new IBinaryField[0];

-	IBinaryMethod[] NoMethod = new IBinaryMethod[0];

-/**

- * Answer the resolved name of the enclosing type in the

- * class file format as specified in section 4.2 of the Java 2 VM spec

- * or null if the receiver is a top level type.

- *

- * For example, java.lang.String is java/lang/String.

- */

-

-char[] getEnclosingTypeName();

-/**

- * Answer the receiver's fields or null if the array is empty.

- */

-

-IBinaryField[] getFields();

-/**

- * Answer the resolved names of the receiver's interfaces in the

- * class file format as specified in section 4.2 of the Java 2 VM spec

- * or null if the array is empty.

- *

- * For example, java.lang.String is java/lang/String.

- */

-

-char[][] getInterfaceNames();

-/**

- * Answer the receiver's nested types or null if the array is empty.

- *

- * This nested type info is extracted from the inner class attributes.

- * Ask the name environment to find a member type using its compound name.

- */

-

-// NOTE: The compiler examines the nested type info & ignores the local types

-// so the local types do not have to be included.

-

-IBinaryNestedType[] getMemberTypes();

-/**

- * Answer the receiver's methods or null if the array is empty.

- */

-

-IBinaryMethod[] getMethods();

-/**

- * Answer the resolved name of the type in the

- * class file format as specified in section 4.2 of the Java 2 VM spec.

- *

- * For example, java.lang.String is java/lang/String.

- */

-

-char[] getName();

-

-/**

- * Answer the receiver's signature which describes the parameter &

- * return types as specified in section 4.4.4 of the Java 2 VM spec.

- * Returns null if none.

- * 

- * @return the receiver's signature, null if none

- */

-char[] getGenericSignature();

-

-/**

- * Answer the resolved name of the receiver's superclass in the

- * class file format as specified in section 4.2 of the Java 2 VM spec

- * or null if it does not have one.

- *

- * For example, java.lang.String is java/lang/String.

- */

-

-char[] getSuperclassName();

-

-/**

- * Answer true if the receiver is an anonymous class.

- * false otherwise

- */

-boolean isAnonymous();

-

-/**

- * Answer true if the receiver is a local class.

- * false otherwise

- */

-boolean isLocal();

-

-/**

- * Answer true if the receiver is a member class.

- * false otherwise

- */

-boolean isMember(); 

-

-/**

- * Answer the source file attribute, or null if none.

- *

- * For example, "String.java"

- */

-

-char[] sourceFileName();

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ICompilationUnit.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ICompilationUnit.js
deleted file mode 100644
index 79266e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ICompilationUnit.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-/**

- * This interface denotes a compilation unit, providing its name and content.

- */

-public interface ICompilationUnit extends IDependent {

-/**

- * Answer the contents of the compilation unit.

- *

- * In normal use, the contents are requested twice.

- * Once during the initial lite parsing step, then again for the

- * more detailed parsing step.

- */

-char[] getContents();

-/**

- * Answer the name of the top level public type.

- * For example, {Hashtable}.

- */

-char[] getMainTypeName();

-/**

- * Answer the name of the package according to the directory structure

- * or null if package consistency checks should be ignored.

- * For example, {java, lang}.

- */

-char[][] getPackageName();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IConstants.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IConstants.js
deleted file mode 100644
index 1eab815..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IConstants.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-/**

- * This interface defines constants for use by the builder / compiler

- * interface.

- */

-public interface IConstants {

-	int AccDefault = 0;

-	/*

-	 * Modifiers

-	 */

-	int AccPublic       = 0x0001;

-	int AccPrivate      = 0x0002;

-	int AccProtected    = 0x0004;

-	int AccStatic       = 0x0008;

-	int AccFinal        = 0x0010;

-	int AccSynchronized = 0x0020;

-	int AccVolatile     = 0x0040;

-	int AccBridge       = 0x0040;

-	int AccTransient    = 0x0080;

-	int AccVarargs      = 0x0080;

-	int AccNative       = 0x0100;

-	int AccInterface    = 0x0200;

-	int AccAbstract     = 0x0400;

-	int AccStrictfp     = 0x0800;

-	int AccSynthetic    = 0x1000;

-	int AccAnnotation   = 0x2000;

-	int AccEnum         = 0x4000;

-

-	/**

-	 * Other VM flags.

-	 */

-	int AccSuper = 0x0020;

-	/**

-	 * Extra flags for types and members attributes.

-	 */

-	int AccDeprecated = 0x100000;

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IDependent.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IDependent.js
deleted file mode 100644
index 0b314cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IDependent.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-/**

- * This represents the target file of a type dependency.

- *

- * All implementors of this interface are containers for types or types

- * themselves which must be able to identify their source file name

- * when file dependencies are collected.

- */

-public interface IDependent {

-	char JAR_FILE_ENTRY_SEPARATOR = '|';

-/**

- * Answer the file name which defines the type.

- *

- * The path part (optional) must be separated from the actual

- * file proper name by a separator suitable for the type (java.io.File.separator for example),

- * e.g.

- *  "c:\\source\\com\\p\\X.java" or

- *  "/com/p/Y.java".

- * 

- * The path to the zip or jar file (optional) must be separated

- * from the actual path part by JAR_FILE_ENTRY_SEPARATOR,

- * e.g.

- *  "c:\\lib\\some.jar|/com/p/X.class" or

- *  "/lib/some.zip|/com/q/Y.class".

- *

- * The proper file name includes the suffix extension (e.g.&nbsp;".java")

- * e.g.&nbsp;"c:/org/eclipse/jdt/internal/compileri/env/IDependent.java" 

- * 

- * Return null if no file defines the type.

- */

-

-char[] getFileName();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericField.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericField.js
deleted file mode 100644
index a0f2584..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericField.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public interface IGenericField {

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- */

-

-// We have added AccDeprecated & AccSynthetic.

-

-int getModifiers();

-/**

- * Answer the name of the field.

- */

-

-char[] getName();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericMethod.js
deleted file mode 100644
index 7fbb5e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericMethod.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public interface IGenericMethod {

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- */

-// We have added AccDeprecated

-int getModifiers();

-

-/**

- * Answer the name of the method.

- *

- * For a constructor, answer <init> & <clinit> for a clinit method.

- */

-char[] getSelector();

-

-boolean isConstructor();

-

-/**

- * Answer the names of the argument

- * or null if the argument names are not available.

- */

-

-char[][] getArgumentNames();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericType.js
deleted file mode 100644
index d99502b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/IGenericType.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public interface IGenericType extends IDependent {

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- */

-

-// We have added AccDeprecated & AccSynthetic.

-

-// NOTE: If the receiver represents a member type, the modifiers are extracted from its inner class attributes.

-

-int getModifiers();

-/**

- * Answer whether the receiver contains the resolved binary form

- * or the unresolved source form of the type.

- */

-

-boolean isBinaryType();

-boolean isClass();

-boolean isInterface();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/INameEnvironment.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/INameEnvironment.js
deleted file mode 100644
index e232837..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/INameEnvironment.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-/**

- * The name environment provides a callback API that the compiler

- * can use to look up types, compilation units, and packages in the

- * current environment.  The name environment is passed to the compiler

- * on creation.

- */

-public interface INameEnvironment {

-/**

- * Find a type with the given compound name.

- * Answer the binary form of the type if it is known to be consistent.

- * Otherwise, answer the compilation unit which defines the type

- * or null if the type does not exist.

- * Types in the default package are specified as {{typeName}}.

- *

- * It is unknown whether the package containing the type actually exists.

- *

- * NOTE: This method can be used to find a member type using its

- * internal name A$B, but the source file for A is answered if the binary

- * file is inconsistent.

- */

-

-NameEnvironmentAnswer findType(char[][] compoundTypeName);

-/**

- * Find a type named <typeName> in the package <packageName>.

- * Answer the binary form of the type if it is known to be consistent.

- * Otherwise, answer the compilation unit which defines the type

- * or null if the type does not exist.

- * The default package is indicated by char[0][].

- *

- * It is known that the package containing the type exists.

- *

- * NOTE: This method can be used to find a member type using its

- * internal name A$B, but the source file for A is answered if the binary

- * file is inconsistent.

- */

-

-NameEnvironmentAnswer findType(char[] typeName, char[][] packageName);

-/**

- * Answer whether packageName is the name of a known subpackage inside

- * the package parentPackageName. A top level package is found relative to null.

- * The default package is always assumed to exist.

- *

- * For example:

- *      isPackage({{java}, {awt}}, {event});

- *      isPackage(null, {java});

- */

-

-boolean isPackage(char[][] parentPackageName, char[] packageName);

-

-/**

- * This method cleans the environment uo. It is responsible for releasing the memory

- * and freeing resources. Passed that point, the name environment is no longer usable.

- * 

- * A name environment can have a long life cycle, therefore it is the responsibility of

- * the code which created it to decide when it is a good time to clean it up.

- */

-void cleanup();

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceField.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceField.js
deleted file mode 100644
index 3f63ba6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceField.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public interface ISourceField extends IGenericField {

-/**

- * Answer the source end position of the field's declaration.

- */

-int getDeclarationSourceEnd();

-

-/**

- * Answer the source start position of the field's declaration.

- */

-int getDeclarationSourceStart();

-

-/**

- * Answer the initialization source for this constant field.

- * Answer null if the field is not a constant or if it has no initialization.

- */

-char[] getInitializationSource();

-

-/**

- * Answer the source end position of the field's name.

- */

-int getNameSourceEnd();

-

-/**

- * Answer the source start position of the field's name.

- */

-int getNameSourceStart();

-

-/**

- * Answer the type name of the field.

- *

- * The name is a simple name or a qualified, dot separated name.

- * For example, Hashtable or java.util.Hashtable.

- */

-char[] getTypeName();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceImport.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceImport.js
deleted file mode 100644
index 4d4b1c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceImport.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public interface ISourceImport {

-

-/**

- * Answer the source end position of the import declaration.

- */

-

-int getDeclarationSourceEnd();

-/**

- * Answer the source start position of the import declaration.

- */

-

-int getDeclarationSourceStart();

-

-/**

- * Answer an int whose bits are set according the access constants

- * defined by the VM spec.

- * Since Java 1.5, static imports can be defined.

- */ 

-int getModifiers();

-

-/**

- * Answer the name of the import.

- * A name is a simple name or a qualified, dot separated name.

- * For example, Hashtable or java.util.Hashtable.

- */

-char[] getName();	

-

-/**

- * Answer whether the import is on demand or not

- * On demand import names have no trailing star

- */

-boolean onDemand();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceMethod.js
deleted file mode 100644
index 141264e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceMethod.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public interface ISourceMethod extends IGenericMethod {

-

-/**

- * Answer the unresolved names of the argument types

- * or null if the array is empty.

- *

- * A name is a simple name or a qualified, dot separated name.

- * For example, Hashtable or java.util.Hashtable.

- */

-

-char[][] getArgumentTypeNames();

-/**

- * Answer the source end position of the method's declaration.

- */

-

-int getDeclarationSourceEnd();

-/**

- * Answer the source start position of the method's declaration.

- */

-

-int getDeclarationSourceStart();

-/**

- * Answer the unresolved names of the exception types

- * or null if the array is empty.

- *

- * A name is a simple name or a qualified, dot separated name.

- * For example, Hashtable or java.util.Hashtable.

- */

-

-char[][] getExceptionTypeNames();

-/**

- * Answer the source end position of the method's selector.

- */

-

-int getNameSourceEnd();

-/**

- * Answer the source start position of the method's selector.

- */

-

-int getNameSourceStart();

-/**

- * Answer the unresolved name of the return type

- * or null if receiver is a constructor or clinit.

- *

- * The name is a simple name or a qualified, dot separated name.

- * For example, Hashtable or java.util.Hashtable.

- */

-

-char[] getReturnTypeName();

-/**

- * Answer the names of the receiver's type parameters

- * or null if the array is empty.

- */

-char[][] getTypeParameterNames();

-/**

- * Answer the array of bound names of the receiver's type parameters

- * or null if the array is empty.

- */

-char[][][] getTypeParameterBounds();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceType.js
deleted file mode 100644
index 75dbc63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/ISourceType.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public interface ISourceType extends IGenericType {

-

-/**

- * Answer the source end position of the type's declaration.

- */

-int getDeclarationSourceEnd();

-

-/**

- * Answer the source start position of the type's declaration.

- */

-int getDeclarationSourceStart();

-

-/**

- * Answer the enclosing type

- * or null if the receiver is a top level type.

- */

-ISourceType getEnclosingType();

-

-/**

- * Answer the receiver's fields.

- *

- * NOTE: Multiple fields with the same name can exist in the result.

- */

-ISourceField[] getFields();

-

-/**

- * Answer the receiver's imports.

- *

- * An import is a qualified, dot separated name.

- * For example, java.util.Hashtable or java.lang.*.

- * A static import used 'static.' as its first fragment, for

- * example: static.java.util.Hashtable.*

- */

-ISourceImport[] getImports();

-

-/**

- * Answer the unresolved names of the receiver's interfaces

- * or null if the array is empty.

- *

- * A name is a simple name or a qualified, dot separated name.

- * For example, Hashtable or java.util.Hashtable.

- */

-char[][] getInterfaceNames();

-

-/**

- * Answer the receiver's member types.

- */

-ISourceType[] getMemberTypes();

-

-/**

- * Answer the receiver's methods.

- *

- * NOTE: Multiple methods with the same name & parameter types can exist in the result.

- */

-ISourceMethod[] getMethods();

-

-/**

- * Answer the simple source name of the receiver.

- */

-char[] getName();

-

-/**

- * Answer the source end position of the type's name.

- */

-int getNameSourceEnd();

-

-/**

- * Answer the source start position of the type's name.

- */

-int getNameSourceStart();

-

-/**

- * Answer the qualified name of the receiver's package separated by periods

- * or null if its the default package.

- *

- * For example, {java.util.Hashtable}.

- */

-char[] getPackageName();

-

-/**

- * Answer the unresolved name of the receiver's superclass

- * or null if it does not have one.

- *

- * The name is a simple name or a qualified, dot separated name.

- * For example, Hashtable or java.util.Hashtable.

- */

-char[] getSuperclassName();

-/**

- * Answer the array of bound names of the receiver's type parameters.

- */

-char[][][] getTypeParameterBounds();

-/**

- * Answer the names of the receiver's type parameters.

- */

-char[][] getTypeParameterNames();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/NameEnvironmentAnswer.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/NameEnvironmentAnswer.js
deleted file mode 100644
index 32207b8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/env/NameEnvironmentAnswer.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.env;

-

-public class NameEnvironmentAnswer {

-	

-	// only one of the three can be set

-	IBinaryType binaryType;

-	ICompilationUnit compilationUnit;

-	ISourceType[] sourceTypes;

-	

-	public NameEnvironmentAnswer(IBinaryType binaryType) {

-		this.binaryType = binaryType;

-	}

-

-	public NameEnvironmentAnswer(ICompilationUnit compilationUnit) {

-		this.compilationUnit = compilationUnit;

-	}

-

-	public NameEnvironmentAnswer(ISourceType[] sourceTypes) {

-		this.sourceTypes = sourceTypes;

-	}

-

-	/**

-	 * Answer the resolved binary form for the type or null if the

-	 * receiver represents a compilation unit or source type.

-	 */

-	public IBinaryType getBinaryType() {

-		return this.binaryType;

-	}

-

-	/**

-	 * Answer the compilation unit or null if the

-	 * receiver represents a binary or source type.

-	 */

-	public ICompilationUnit getCompilationUnit() {

-		return this.compilationUnit;

-	}

-

-	/**

-	 * Answer the unresolved source forms for the type or null if the

-	 * receiver represents a compilation unit or binary type.

-	 * 

-	 * Multiple source forms can be answered in case the originating compilation unit did contain

-	 * several type at once. Then the first type is guaranteed to be the requested type.

-	 */

-	public ISourceType[] getSourceTypes() {

-		return this.sourceTypes;

-	}

-

-	/**

-	 * Answer whether the receiver contains the resolved binary form of the type.

-	 */

-	public boolean isBinaryType() {

-		return this.binaryType != null;

-	}

-

-	/**

-	 * Answer whether the receiver contains the compilation unit which defines the type.

-	 */

-	public boolean isCompilationUnit() {

-		return this.compilationUnit != null;

-	}

-

-	/**

-	 * Answer whether the receiver contains the unresolved source form of the type.

-	 */

-	public boolean isSourceType() {

-		return this.sourceTypes != null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/ConditionalFlowInfo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/ConditionalFlowInfo.js
deleted file mode 100644
index 723e0fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/ConditionalFlowInfo.js
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.LocalVariableBinding;

-

-/**

- * Record conditional initialization status during definite assignment analysis

- *

- */

-public class ConditionalFlowInfo extends FlowInfo {

-	

-	public FlowInfo initsWhenTrue;

-	public FlowInfo initsWhenFalse;

-	

-	ConditionalFlowInfo(FlowInfo initsWhenTrue, FlowInfo initsWhenFalse){

-		

-		this.initsWhenTrue = initsWhenTrue;

-		this.initsWhenFalse = initsWhenFalse; 

-	}

-	

-	public FlowInfo addInitializationsFrom(FlowInfo otherInits) {

-		

-		this.initsWhenTrue.addInitializationsFrom(otherInits);

-		this.initsWhenFalse.addInitializationsFrom(otherInits);

-		return this;

-	}

-	

-	public FlowInfo addPotentialInitializationsFrom(FlowInfo otherInits) {

-		

-		this.initsWhenTrue.addPotentialInitializationsFrom(otherInits);

-		this.initsWhenFalse.addPotentialInitializationsFrom(otherInits);

-		return this;

-	}

-	

-	public FlowInfo asNegatedCondition() {

-		

-		FlowInfo extra = initsWhenTrue;

-		initsWhenTrue = initsWhenFalse;

-		initsWhenFalse = extra;

-		return this;

-	}

-

-	public FlowInfo copy() {

-		

-		return new ConditionalFlowInfo(initsWhenTrue.copy(), initsWhenFalse.copy());

-	}

-	

-	public FlowInfo initsWhenFalse() {

-		

-		return initsWhenFalse;

-	}

-	

-	public FlowInfo initsWhenTrue() {

-		

-		return initsWhenTrue;

-	}

-	

-	/**

-	 * Check status of definite assignment for a field.

-	 */

-	public boolean isDefinitelyAssigned(FieldBinding field) {

-		

-		return initsWhenTrue.isDefinitelyAssigned(field) 

-				&& initsWhenFalse.isDefinitelyAssigned(field);

-	}

-	

-	/**

-	 * Check status of definite assignment for a local variable.

-	 */

-	public boolean isDefinitelyAssigned(LocalVariableBinding local) {

-		

-		return initsWhenTrue.isDefinitelyAssigned(local) 

-				&& initsWhenFalse.isDefinitelyAssigned(local);

-	}

-	

-	public int reachMode(){

-		return unconditionalInits().reachMode();

-	}

-	

-	public boolean isReachable(){

-		

-		return unconditionalInits().isReachable();	

-		//should maybe directly be: false

-	}

-	

-	/**

-	 * Check status of potential assignment for a field.

-	 */

-	public boolean isPotentiallyAssigned(FieldBinding field) {

-		

-		return initsWhenTrue.isPotentiallyAssigned(field) 

-				|| initsWhenFalse.isPotentiallyAssigned(field);

-	}

-	

-	/**

-	 * Check status of potential assignment for a local variable.

-	 */

-	public boolean isPotentiallyAssigned(LocalVariableBinding local) {

-		

-		return initsWhenTrue.isPotentiallyAssigned(local) 

-				|| initsWhenFalse.isPotentiallyAssigned(local);

-	}

-	

-	/**

-	 * Record a field got definitely assigned.

-	 */

-	public void markAsDefinitelyAssigned(FieldBinding field) {

-		

-		initsWhenTrue.markAsDefinitelyAssigned(field);

-		initsWhenFalse.markAsDefinitelyAssigned(field);	

-	}

-	

-	/**

-	 * Record a field got definitely assigned.

-	 */

-	public void markAsDefinitelyAssigned(LocalVariableBinding local) {

-		

-		initsWhenTrue.markAsDefinitelyAssigned(local);

-		initsWhenFalse.markAsDefinitelyAssigned(local);	

-	}

-	

-	/**

-	 * Clear the initialization info for a field

-	 */

-	public void markAsDefinitelyNotAssigned(FieldBinding field) {

-		

-		initsWhenTrue.markAsDefinitelyNotAssigned(field);

-		initsWhenFalse.markAsDefinitelyNotAssigned(field);	

-	}

-	

-	/**

-	 * Clear the initialization info for a local variable

-	 */

-	public void markAsDefinitelyNotAssigned(LocalVariableBinding local) {

-		

-		initsWhenTrue.markAsDefinitelyNotAssigned(local);

-		initsWhenFalse.markAsDefinitelyNotAssigned(local);	

-	}

-	

-	public FlowInfo setReachMode(int reachMode) {

-		

-		initsWhenTrue.setReachMode(reachMode);

-		initsWhenFalse.setReachMode(reachMode);

-		return this;

-	}

-	

-	/**

-	 * Converts conditional receiver into inconditional one, updated in the following way: <ul>

-	 * <li> intersection of definitely assigned variables, 

-	 * <li> union of potentially assigned variables.

-	 * </ul>

-	 */

-	public UnconditionalFlowInfo mergedWith(UnconditionalFlowInfo otherInits) {

-		

-		return unconditionalInits().mergedWith(otherInits);

-	}

-	

-	public String toString() {

-		

-		return "FlowInfo<true: " + initsWhenTrue.toString() + ", false: " + initsWhenFalse.toString() + ">"; //$NON-NLS-1$ //$NON-NLS-3$ //$NON-NLS-2$

-	}

-	

-	public UnconditionalFlowInfo unconditionalInits() {

-		

-		return initsWhenTrue.unconditionalInits().copy()

-				.mergedWith(initsWhenFalse.unconditionalInits());

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/ExceptionHandlingFlowContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/ExceptionHandlingFlowContext.js
deleted file mode 100644
index c981cb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/ExceptionHandlingFlowContext.js
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import java.util.ArrayList;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TryStatement;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.ObjectCache;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.MethodScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-/**

- * Reflects the context of code analysis, keeping track of enclosing

- *	try statements, exception handlers, etc...

- */

-public class ExceptionHandlingFlowContext extends FlowContext {

-	

-	public ReferenceBinding[] handledExceptions;

-	

-	public final static int BitCacheSize = 32; // 32 bits per int

-	int[] isReached;

-	int[] isNeeded;

-	UnconditionalFlowInfo[] initsOnExceptions;

-	ObjectCache indexes = new ObjectCache();

-	boolean isMethodContext;

-

-	public UnconditionalFlowInfo initsOnReturn;

-

-	// for dealing with anonymous constructor thrown exceptions

-	public ArrayList extendedExceptions;

-	

-	public ExceptionHandlingFlowContext(

-		FlowContext parent,

-		ASTNode associatedNode,

-		ReferenceBinding[] handledExceptions,

-		BlockScope scope,

-		UnconditionalFlowInfo flowInfo) {

-

-		super(parent, associatedNode);

-		isMethodContext = scope == scope.methodScope();

-		this.handledExceptions = handledExceptions;

-		int count = handledExceptions.length, cacheSize = (count / BitCacheSize) + 1;

-		this.isReached = new int[cacheSize]; // none is reached by default

-		this.isNeeded = new int[cacheSize]; // none is needed by default

-		this.initsOnExceptions = new UnconditionalFlowInfo[count];

-		for (int i = 0; i < count; i++) {

-			this.indexes.put(handledExceptions[i], i); // key type  -> value index

-			boolean isUnchecked =

-				(scope.compareUncheckedException(handledExceptions[i]) != NotRelated);

-			int cacheIndex = i / BitCacheSize, bitMask = 1 << (i % BitCacheSize);

-			if (isUnchecked) {

-				isReached[cacheIndex] |= bitMask;

-				this.initsOnExceptions[i] = flowInfo.copy().unconditionalInits();

-			} else {

-				this.initsOnExceptions[i] = FlowInfo.DEAD_END;

-			}

-		}

-		System.arraycopy(this.isReached, 0, this.isNeeded, 0, cacheSize);

-		this.initsOnReturn = FlowInfo.DEAD_END;	

-	}

-

-	public void complainIfUnusedExceptionHandlers(AbstractMethodDeclaration method) {

-		MethodScope scope = method.scope;

-		// can optionally skip overriding methods

-		if ((method.binding.modifiers & (CompilerModifiers.AccOverriding | CompilerModifiers.AccImplementing)) != 0

-		        && !scope.environment().options.reportUnusedDeclaredThrownExceptionWhenOverriding) {

-		    return;

-		}

-		    

-		// report errors for unreachable exception handlers

-		for (int i = 0, count = handledExceptions.length; i < count; i++) {

-			int index = indexes.get(handledExceptions[i]);

-			int cacheIndex = index / BitCacheSize;

-			int bitMask = 1 << (index % BitCacheSize);

-			if ((isReached[cacheIndex] & bitMask) == 0) {

-				scope.problemReporter().unusedDeclaredThrownException(

-					handledExceptions[index],

-					method,

-					method.thrownExceptions[index]);

-			}

-		}

-	}

-	

-	public void complainIfUnusedExceptionHandlers(

-		BlockScope scope,

-		TryStatement tryStatement) {

-		// report errors for unreachable exception handlers

-		for (int i = 0, count = handledExceptions.length; i < count; i++) {

-			int index = indexes.get(handledExceptions[i]);

-			int cacheIndex = index / BitCacheSize;

-			int bitMask = 1 << (index % BitCacheSize);

-			if ((isReached[cacheIndex] & bitMask) == 0) {

-				scope.problemReporter().unreachableCatchBlock(

-					handledExceptions[index],

-					tryStatement.catchArguments[index].type);

-			} else {

-				if ((isNeeded[cacheIndex] & bitMask) == 0) {

-					scope.problemReporter().hiddenCatchBlock(

-						handledExceptions[index],

-						tryStatement.catchArguments[index].type);

-				}

-			}

-		}

-	}

-

-	public String individualToString() {

-		

-		StringBuffer buffer = new StringBuffer("Exception flow context"); //$NON-NLS-1$

-		int length = handledExceptions.length;

-		for (int i = 0; i < length; i++) {

-			int cacheIndex = i / BitCacheSize;

-			int bitMask = 1 << (i % BitCacheSize);

-			buffer.append('[').append(handledExceptions[i].readableName());

-			if ((isReached[cacheIndex] & bitMask) != 0) {

-				if ((isNeeded[cacheIndex] & bitMask) == 0) {

-					buffer.append("-masked"); //$NON-NLS-1$

-				} else {

-					buffer.append("-reached"); //$NON-NLS-1$

-				}

-			} else {

-				buffer.append("-not reached"); //$NON-NLS-1$

-			}

-			buffer.append('-').append(initsOnExceptions[i].toString()).append(']');

-		}

-		buffer.append("[initsOnReturn -").append(initsOnReturn.toString()).append(']'); //$NON-NLS-1$

-		return buffer.toString();

-	}

-

-	public UnconditionalFlowInfo initsOnException(ReferenceBinding exceptionType) {

-		

-		int index;

-		if ((index = indexes.get(exceptionType)) < 0) {

-			return FlowInfo.DEAD_END;

-		}

-		return initsOnExceptions[index];

-	}

-

-	public UnconditionalFlowInfo initsOnReturn(){

-		return this.initsOnReturn;

-	}

-	

-	public void recordHandlingException(

-		ReferenceBinding exceptionType,

-		UnconditionalFlowInfo flowInfo,

-		TypeBinding raisedException,

-		ASTNode invocationSite,

-		boolean wasAlreadyDefinitelyCaught) {

-			

-		int index = indexes.get(exceptionType);

-		// if already flagged as being reached (unchecked exception handler)

-		int cacheIndex = index / BitCacheSize;

-		int bitMask = 1 << (index % BitCacheSize);

-		if (!wasAlreadyDefinitelyCaught) {

-			this.isNeeded[cacheIndex] |= bitMask;

-		}

-		this.isReached[cacheIndex] |= bitMask;

-		

-		initsOnExceptions[index] =

-			initsOnExceptions[index] == FlowInfo.DEAD_END

-				? flowInfo.copy().unconditionalInits()

-				: initsOnExceptions[index].mergedWith(flowInfo.copy().unconditionalInits());

-	}

-	

-	public void recordReturnFrom(FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return; 

-		if (initsOnReturn == FlowInfo.DEAD_END) {

-			initsOnReturn = flowInfo.copy().unconditionalInits();

-		} else {

-			initsOnReturn = initsOnReturn.mergedWith(flowInfo.copy().unconditionalInits());

-		}

-	}

-	

-	/*

-	 * Compute a merged list of unhandled exception types (keeping only the most generic ones).

-	 * This is necessary to add synthetic thrown exceptions for anonymous type constructors (JLS 8.6).

-	 */

-	public void mergeUnhandledException(TypeBinding newException){

-		

-		if (this.extendedExceptions == null){

-			this.extendedExceptions = new ArrayList(5);

-			for (int i = 0; i < this.handledExceptions.length; i++){

-				this.extendedExceptions.add(this.handledExceptions[i]);

-			}

-		}

-		

-		boolean isRedundant = false;

-		

-		for(int i = this.extendedExceptions.size()-1; i >= 0; i--){

-			switch(Scope.compareTypes(newException, (TypeBinding)this.extendedExceptions.get(i))){

-				case MoreGeneric :

-					this.extendedExceptions.remove(i);

-					break;

-				case EqualOrMoreSpecific :

-					isRedundant = true;

-					break;

-				case NotRelated :

-					break;

-			}

-		}

-		if (!isRedundant){

-			this.extendedExceptions.add(newException);

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FinallyFlowContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FinallyFlowContext.js
deleted file mode 100644
index 75af069..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FinallyFlowContext.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Reference;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.LocalVariableBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.VariableBinding;

-

-/**

- * Reflects the context of code analysis, keeping track of enclosing

- *	try statements, exception handlers, etc...

- */

-public class FinallyFlowContext extends FlowContext {

-	

-	Reference finalAssignments[];

-	VariableBinding finalVariables[];

-	int assignCount;

-	

-	public FinallyFlowContext(FlowContext parent, ASTNode associatedNode) {

-		super(parent, associatedNode);

-	}

-

-	/**

-	 * Given some contextual initialization info (derived from a try block or a catch block), this 

-	 * code will check that the subroutine context does not also initialize a final variable potentially set

-	 * redundantly.

-	 */

-	public void complainOnRedundantFinalAssignments(

-		FlowInfo flowInfo,

-		BlockScope scope) {

-		for (int i = 0; i < assignCount; i++) {

-			VariableBinding variable = finalVariables[i];

-			if (variable == null) continue;

-			

-			boolean complained = false; // remember if have complained on this final assignment

-			if (variable instanceof FieldBinding) {

-				// final field

-				if (flowInfo.isPotentiallyAssigned((FieldBinding)variable)) {

-					complained = true;

-					scope.problemReporter().duplicateInitializationOfBlankFinalField((FieldBinding)variable, finalAssignments[i]);

-				}

-			} else {

-				// final local variable

-				if (flowInfo.isPotentiallyAssigned((LocalVariableBinding) variable)) {

-					complained = true;

-					scope.problemReporter().duplicateInitializationOfFinalLocal(

-						(LocalVariableBinding) variable,

-						finalAssignments[i]);

-				}

-			}

-			// any reference reported at this level is removed from the parent context 

-			// where it could also be reported again

-			if (complained) {

-				FlowContext currentContext = parent;

-				while (currentContext != null) {

-					//if (currentContext.isSubRoutine()) {

-					currentContext.removeFinalAssignmentIfAny(finalAssignments[i]);

-					//}

-					currentContext = currentContext.parent;

-				}

-			}

-		}

-	}

-

-	public String individualToString() {

-		

-		StringBuffer buffer = new StringBuffer("Finally flow context"); //$NON-NLS-1$

-		buffer.append("[finalAssignments count -").append(assignCount).append(']'); //$NON-NLS-1$

-		return buffer.toString();

-	}

-	

-	public boolean isSubRoutine() {

-		return true;

-	}

-

-	boolean recordFinalAssignment(

-		VariableBinding binding,

-		Reference finalAssignment) {

-		if (assignCount == 0) {

-			finalAssignments = new Reference[5];

-			finalVariables = new VariableBinding[5];

-		} else {

-			if (assignCount == finalAssignments.length)

-				System.arraycopy(

-					finalAssignments,

-					0,

-					(finalAssignments = new Reference[assignCount * 2]),

-					0,

-					assignCount);

-			System.arraycopy(

-				finalVariables,

-				0,

-				(finalVariables = new VariableBinding[assignCount * 2]),

-				0,

-				assignCount);

-		}

-		finalAssignments[assignCount] = finalAssignment;

-		finalVariables[assignCount++] = binding;

-		return true;

-	}

-

-	void removeFinalAssignmentIfAny(Reference reference) {

-		for (int i = 0; i < assignCount; i++) {

-			if (finalAssignments[i] == reference) {

-				finalAssignments[i] = null;

-				finalVariables[i] = null;

-				return;

-			}

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FlowContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FlowContext.js
deleted file mode 100644
index eb2beff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FlowContext.js
+++ /dev/null
@@ -1,493 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Reference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.SubRoutineStatement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TryStatement;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.Label;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeConstants;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.VariableBinding;

-

-/**

- * Reflects the context of code analysis, keeping track of enclosing

- *	try statements, exception handlers, etc...

- */

-public class FlowContext implements TypeConstants {

-	

-	public ASTNode associatedNode;

-	public FlowContext parent;

-

-	public final static FlowContext NotContinuableContext = new FlowContext(null, null);

-		

-	public FlowContext(FlowContext parent, ASTNode associatedNode) {

-

-		this.parent = parent;

-		this.associatedNode = associatedNode;

-	}

-	

-	public Label breakLabel() {

-

-		return null;

-	}

-	

-	public void checkExceptionHandlers(

-		TypeBinding[] raisedExceptions,

-		ASTNode location,

-		FlowInfo flowInfo,

-		BlockScope scope) {

-

-		// check that all the argument exception types are handled

-		// JDK Compatible implementation - when an exception type is thrown, 

-		// all related catch blocks are marked as reachable... instead of those only

-		// until the point where it is safely handled (Smarter - see comment at the end)

-		int remainingCount; // counting the number of remaining unhandled exceptions

-		int raisedCount; // total number of exceptions raised

-		if ((raisedExceptions == null)

-			|| ((raisedCount = raisedExceptions.length) == 0))

-			return;

-		remainingCount = raisedCount;

-

-		// duplicate the array of raised exceptions since it will be updated

-		// (null replaces any handled exception)

-		System.arraycopy(

-			raisedExceptions,

-			0,

-			(raisedExceptions = new TypeBinding[raisedCount]),

-			0,

-			raisedCount);

-		FlowContext traversedContext = this;

-

-		while (traversedContext != null) {

-			SubRoutineStatement sub;

-			if (((sub = traversedContext.subRoutine()) != null) && sub.isSubRoutineEscaping()) {

-				// traversing a non-returning subroutine means that all unhandled 

-				// exceptions will actually never get sent...

-				return;

-			}

-			// filter exceptions that are locally caught from the innermost enclosing 

-			// try statement to the outermost ones.

-			if (traversedContext instanceof ExceptionHandlingFlowContext) {

-				ExceptionHandlingFlowContext exceptionContext =

-					(ExceptionHandlingFlowContext) traversedContext;

-				ReferenceBinding[] caughtExceptions;

-				if ((caughtExceptions = exceptionContext.handledExceptions) != NoExceptions) {

-					int caughtCount = caughtExceptions.length;

-					boolean[] locallyCaught = new boolean[raisedCount]; // at most

-

-					for (int caughtIndex = 0; caughtIndex < caughtCount; caughtIndex++) {

-						ReferenceBinding caughtException = caughtExceptions[caughtIndex];

-						for (int raisedIndex = 0; raisedIndex < raisedCount; raisedIndex++) {

-							TypeBinding raisedException;

-							if ((raisedException = raisedExceptions[raisedIndex]) != null) {

-							    int state = caughtException == null 

-							    	? EqualOrMoreSpecific /* any exception */

-							        : Scope.compareTypes(raisedException, caughtException);

-								switch (state) {

-									case EqualOrMoreSpecific :

-										exceptionContext.recordHandlingException(

-											caughtException,

-											flowInfo.unconditionalInits(),

-											raisedException,

-											location,

-											locallyCaught[raisedIndex]);

-										// was already definitely caught ?

-										if (!locallyCaught[raisedIndex]) {

-											locallyCaught[raisedIndex] = true;

-											// remember that this exception has been definitely caught

-											remainingCount--;

-										}

-										break;

-									case MoreGeneric :

-										exceptionContext.recordHandlingException(

-											caughtException,

-											flowInfo.unconditionalInits(),

-											raisedException,

-											location,

-											false);

-										// was not caught already per construction

-								}

-							}

-						}

-					}

-					// remove locally caught exceptions from the remaining ones

-					for (int i = 0; i < raisedCount; i++) {

-						if (locallyCaught[i]) {

-							raisedExceptions[i] = null; // removed from the remaining ones.

-						}

-					}

-				}

-				// method treatment for unchecked exceptions

-				if (exceptionContext.isMethodContext) {

-					for (int i = 0; i < raisedCount; i++) {

-						TypeBinding raisedException;

-						if ((raisedException = raisedExceptions[i]) != null) {

-							if (raisedException.isCompatibleWith(scope.getJavaLangRuntimeException())

-								|| raisedException.isCompatibleWith(scope.getJavaLangError())) {

-								remainingCount--;

-								raisedExceptions[i] = null;

-							}

-						}

-					}

-					// anonymous constructors are allowed to throw any exceptions (their thrown exceptions

-					// clause will be fixed up later as per JLS 8.6).

-					if (exceptionContext.associatedNode instanceof AbstractMethodDeclaration){

-						AbstractMethodDeclaration method = (AbstractMethodDeclaration)exceptionContext.associatedNode;

-						if (method.isConstructor() && method.binding.declaringClass.isAnonymousType()){

-								

-							for (int i = 0; i < raisedCount; i++) {

-								TypeBinding raisedException;

-								if ((raisedException = raisedExceptions[i]) != null) {

-									exceptionContext.mergeUnhandledException(raisedException);

-								}

-							}

-							return; // no need to complain, will fix up constructor exceptions						

-						}

-					}

-					break; // not handled anywhere, thus jump to error handling

-				}

-			}

-			if (remainingCount == 0)

-				return;

-				

-			traversedContext.recordReturnFrom(flowInfo.unconditionalInits());

-			if (traversedContext.associatedNode instanceof TryStatement){

-				flowInfo = flowInfo.copy().addInitializationsFrom(((TryStatement) traversedContext.associatedNode).subRoutineInits);

-			}

-			traversedContext = traversedContext.parent;

-		}

-		// if reaches this point, then there are some remaining unhandled exception types.	

-		nextReport: for (int i = 0; i < raisedCount; i++) {

-			TypeBinding exception;

-			if ((exception = raisedExceptions[i]) != null) {

-				// only one complaint if same exception declared to be thrown more than once

-				for (int j = 0; j < i; j++) {

-					if (raisedExceptions[j] == exception) continue nextReport; // already reported 

-				}

-				scope.problemReporter().unhandledException(exception, location);

-			}

-		}

-	}

-

-	public void checkExceptionHandlers(

-		TypeBinding raisedException,

-		ASTNode location,

-		FlowInfo flowInfo,

-		BlockScope scope) {

-

-		// LIGHT-VERSION OF THE EQUIVALENT WITH AN ARRAY OF EXCEPTIONS

-		// check that all the argument exception types are handled

-		// JDK Compatible implementation - when an exception type is thrown, 

-		// all related catch blocks are marked as reachable... instead of those only

-		// until the point where it is safely handled (Smarter - see comment at the end)

-		FlowContext traversedContext = this;

-		while (traversedContext != null) {

-			SubRoutineStatement sub;

-			if (((sub = traversedContext.subRoutine()) != null) && sub.isSubRoutineEscaping()) {

-				// traversing a non-returning subroutine means that all unhandled 

-				// exceptions will actually never get sent...

-				return;

-			}

-			

-			// filter exceptions that are locally caught from the innermost enclosing 

-			// try statement to the outermost ones.

-			if (traversedContext instanceof ExceptionHandlingFlowContext) {

-				ExceptionHandlingFlowContext exceptionContext =

-					(ExceptionHandlingFlowContext) traversedContext;

-				ReferenceBinding[] caughtExceptions;

-				if ((caughtExceptions = exceptionContext.handledExceptions) != NoExceptions) {

-					boolean definitelyCaught = false;

-					for (int caughtIndex = 0, caughtCount = caughtExceptions.length;

-						caughtIndex < caughtCount;

-						caughtIndex++) {

-						ReferenceBinding caughtException = caughtExceptions[caughtIndex];

-					    int state = caughtException == null 

-					    	? EqualOrMoreSpecific /* any exception */

-					        : Scope.compareTypes(raisedException, caughtException);						

-						switch (state) {

-							case EqualOrMoreSpecific :

-								exceptionContext.recordHandlingException(

-									caughtException,

-									flowInfo.unconditionalInits(),

-									raisedException,

-									location,

-									definitelyCaught);

-								// was it already definitely caught ?

-								definitelyCaught = true;

-								break;

-							case MoreGeneric :

-								exceptionContext.recordHandlingException(

-									caughtException,

-									flowInfo.unconditionalInits(),

-									raisedException,

-									location,

-									false);

-								// was not caught already per construction

-						}

-					}

-					if (definitelyCaught)

-						return;

-				}

-				// method treatment for unchecked exceptions

-				if (exceptionContext.isMethodContext) {

-					if (raisedException.isCompatibleWith(scope.getJavaLangRuntimeException())

-						|| raisedException.isCompatibleWith(scope.getJavaLangError()))

-						return;

-						

-					// anonymous constructors are allowed to throw any exceptions (their thrown exceptions

-					// clause will be fixed up later as per JLS 8.6).

-					if (exceptionContext.associatedNode instanceof AbstractMethodDeclaration){

-						AbstractMethodDeclaration method = (AbstractMethodDeclaration)exceptionContext.associatedNode;

-						if (method.isConstructor() && method.binding.declaringClass.isAnonymousType()){

-									

-							exceptionContext.mergeUnhandledException(raisedException);

-							return; // no need to complain, will fix up constructor exceptions						

-						}

-					}

-					break; // not handled anywhere, thus jump to error handling

-				}

-			}

-

-			traversedContext.recordReturnFrom(flowInfo.unconditionalInits());

-			if (traversedContext.associatedNode instanceof TryStatement){

-				flowInfo = flowInfo.copy().addInitializationsFrom(((TryStatement) traversedContext.associatedNode).subRoutineInits);

-			}

-			traversedContext = traversedContext.parent;

-		}

-		// if reaches this point, then there are some remaining unhandled exception types.

-		scope.problemReporter().unhandledException(raisedException, location);

-	}

-

-	public Label continueLabel() {

-

-		return null;

-	}

-

-	/*

-	 * lookup through break labels

-	 */

-	public FlowContext getTargetContextForBreakLabel(char[] labelName) {

-

-		FlowContext current = this, lastNonReturningSubRoutine = null;

-		while (current != null) {

-			if (current.isNonReturningContext()) {

-				lastNonReturningSubRoutine = current;

-			}

-			char[] currentLabelName;

-			if (((currentLabelName = current.labelName()) != null)

-				&& CharOperation.equals(currentLabelName, labelName)) {

-				if (lastNonReturningSubRoutine == null)

-					return current;

-				return lastNonReturningSubRoutine;

-			}

-			current = current.parent;

-		}

-		// not found

-		return null;

-	}

-

-	/*

-	 * lookup through continue labels

-	 */

-	public FlowContext getTargetContextForContinueLabel(char[] labelName) {

-

-		FlowContext current = this;

-		FlowContext lastContinuable = null;

-		FlowContext lastNonReturningSubRoutine = null;

-

-		while (current != null) {

-			if (current.isNonReturningContext()) {

-				lastNonReturningSubRoutine = current;

-			} else {

-				if (current.isContinuable()) {

-					lastContinuable = current;

-				}

-			}

-			

-			char[] currentLabelName;

-			if ((currentLabelName = current.labelName()) != null && CharOperation.equals(currentLabelName, labelName)) {

-

-				// matching label found					

-				if ((lastContinuable != null)

-						&& (current.associatedNode.concreteStatement()	== lastContinuable.associatedNode)) {

-				    

-					if (lastNonReturningSubRoutine == null) return lastContinuable;

-					return lastNonReturningSubRoutine;

-				} 

-				// label is found, but not a continuable location

-				return NotContinuableContext;

-			}

-			current = current.parent;

-		}

-		// not found

-		return null;

-	}

-

-	/*

-	 * lookup a default break through breakable locations

-	 */

-	public FlowContext getTargetContextForDefaultBreak() {

-

-		FlowContext current = this, lastNonReturningSubRoutine = null;

-		while (current != null) {

-			if (current.isNonReturningContext()) {

-				lastNonReturningSubRoutine = current;

-			}

-			if (current.isBreakable() && current.labelName() == null) {

-				if (lastNonReturningSubRoutine == null) return current;

-				return lastNonReturningSubRoutine;

-			}

-			current = current.parent;

-		}

-		// not found

-		return null;

-	}

-

-	/*

-	 * lookup a default continue amongst continuable locations

-	 */

-	public FlowContext getTargetContextForDefaultContinue() {

-

-		FlowContext current = this, lastNonReturningSubRoutine = null;

-		while (current != null) {

-			if (current.isNonReturningContext()) {

-				lastNonReturningSubRoutine = current;

-			}

-			if (current.isContinuable()) {

-				if (lastNonReturningSubRoutine == null)

-					return current;

-				return lastNonReturningSubRoutine;

-			}

-			current = current.parent;

-		}

-		// not found

-		return null;

-	}

-

-	public String individualToString() {

-

-		return "Flow context"; //$NON-NLS-1$

-	}

-

-	public FlowInfo initsOnBreak() {

-

-		return FlowInfo.DEAD_END;

-	}

-

-	public UnconditionalFlowInfo initsOnReturn() {

-

-		return FlowInfo.DEAD_END;

-	}

-

-	public boolean isBreakable() {

-

-		return false;

-	}

-

-	public boolean isContinuable() {

-

-		return false;

-	}

-

-	public boolean isNonReturningContext() {

-

-		return false;

-	}

-

-	public boolean isSubRoutine() {

-

-		return false;

-	}

-

-	public char[] labelName() {

-

-		return null;

-	}

-

-	public void recordBreakFrom(FlowInfo flowInfo) {

-		// default implementation: do nothing

-	}

-

-	public void recordContinueFrom(FlowInfo flowInfo) {

-		// default implementation: do nothing

-	}

-

-	boolean recordFinalAssignment(

-		VariableBinding variable,

-		Reference finalReference) {

-

-		return true; // keep going

-	}

-

-	public void recordReturnFrom(FlowInfo flowInfo) {

-		// default implementation: do nothing

-	}

-

-	public void recordSettingFinal(

-		VariableBinding variable,

-		Reference finalReference,

-		FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-

-		// for initialization inside looping statement that effectively loops

-		FlowContext context = this;

-		while (context != null) {

-			if (!context.recordFinalAssignment(variable, finalReference)) {

-				break; // no need to keep going

-			}

-			context = context.parent;

-		}

-	}

-

-	void removeFinalAssignmentIfAny(Reference reference) {

-		// default implementation: do nothing

-	}

-

-	public SubRoutineStatement subRoutine() {

-

-		return null;

-	}

-

-	public String toString() {

-

-		StringBuffer buffer = new StringBuffer();

-		FlowContext current = this;

-		int parentsCount = 0;

-		while ((current = current.parent) != null) {

-			parentsCount++;

-		}

-		FlowContext[] parents = new FlowContext[parentsCount + 1];

-		current = this;

-		int index = parentsCount;

-		while (index >= 0) {

-			parents[index--] = current;

-			current = current.parent;

-		}

-		for (int i = 0; i < parentsCount; i++) {

-			for (int j = 0; j < i; j++)

-				buffer.append('\t');

-			buffer.append(parents[i].individualToString()).append('\n');

-		}

-		buffer.append('*');

-		for (int j = 0; j < parentsCount + 1; j++)

-			buffer.append('\t');

-		buffer.append(individualToString()).append('\n');

-		return buffer.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FlowInfo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FlowInfo.js
deleted file mode 100644
index 8de5e93..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/FlowInfo.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.LocalVariableBinding;

-

-public abstract class FlowInfo {

-

-	public final static int REACHABLE = 0;

-	public final static int UNREACHABLE = 1; 

-	

-	public static final UnconditionalFlowInfo DEAD_END; // Represents a dead branch status of initialization

-	static {

-		DEAD_END = new UnconditionalFlowInfo();

-		DEAD_END.reachMode = UNREACHABLE;

-	}

-	abstract public FlowInfo addInitializationsFrom(FlowInfo otherInits);

-

-	abstract public FlowInfo addPotentialInitializationsFrom(FlowInfo otherInits);

-

-	public FlowInfo asNegatedCondition() {

-

-		return this;

-	}

-

-	public static FlowInfo conditional(FlowInfo initsWhenTrue, FlowInfo initsWhenFalse){

-

-		// if (initsWhenTrue.equals(initsWhenFalse)) return initsWhenTrue; -- could optimize if #equals is defined

-		return new ConditionalFlowInfo(initsWhenTrue, initsWhenFalse);

-	}

-

-	abstract public FlowInfo copy();

-

-	public static UnconditionalFlowInfo initial(int maxFieldCount) {

-		UnconditionalFlowInfo info = new UnconditionalFlowInfo();

-		info.maxFieldCount = maxFieldCount;

-		return info;

-	}

-

-	abstract public FlowInfo initsWhenFalse();

-

-	abstract public FlowInfo initsWhenTrue();

-

-	/**

-	 * Check status of definite assignment for a field.

-	 */

-	 abstract public boolean isDefinitelyAssigned(FieldBinding field);   

-

-	/**

-	 * Check status of definite assignment for a local.

-	 */

-	public abstract boolean isDefinitelyAssigned(LocalVariableBinding local);

-

-	//abstract public int reachMode(); 

-

-	/**

-	 * Check status of potential assignment for a field.

-	 */

-	 abstract public boolean isPotentiallyAssigned(FieldBinding field);   

-

-	/**

-	 * Check status of potential assignment for a local variable.

-	 */

-

-	 abstract public boolean isPotentiallyAssigned(LocalVariableBinding field);   

-

-	abstract public boolean isReachable();

-	

-	/**

-	 * Record a field got definitely assigned.

-	 */

-	abstract public void markAsDefinitelyAssigned(FieldBinding field);

-

-	/**

-	 * Record a local got definitely assigned.

-	 */

-	abstract public void markAsDefinitelyAssigned(LocalVariableBinding local);

-

-	/**

-	 * Clear the initialization info for a field

-	 */

-	abstract public void markAsDefinitelyNotAssigned(FieldBinding field);

-

-	/**

-	 * Clear the initialization info for a local variable

-	 */

-	abstract public void markAsDefinitelyNotAssigned(LocalVariableBinding local);

-

-	/**

-	 * Merge branches using optimized boolean conditions

-	 */

-	public static FlowInfo mergedOptimizedBranches(FlowInfo initsWhenTrue, boolean isOptimizedTrue, FlowInfo initsWhenFalse, boolean isOptimizedFalse, boolean allowFakeDeadBranch) {

-		FlowInfo mergedInfo;

-		if (isOptimizedTrue){

-			if (initsWhenTrue == FlowInfo.DEAD_END && allowFakeDeadBranch) {

-				mergedInfo = initsWhenFalse.setReachMode(FlowInfo.UNREACHABLE);

-			} else {

-				mergedInfo = initsWhenTrue.addPotentialInitializationsFrom(initsWhenFalse);

-			}

-

-		} else if (isOptimizedFalse) {

-			if (initsWhenFalse == FlowInfo.DEAD_END && allowFakeDeadBranch) {

-				mergedInfo = initsWhenTrue.setReachMode(FlowInfo.UNREACHABLE);

-			} else {

-				mergedInfo = initsWhenFalse.addPotentialInitializationsFrom(initsWhenTrue);

-			}

-

-		} else {

-			mergedInfo = initsWhenTrue.unconditionalInits().mergedWith(initsWhenFalse.unconditionalInits());

-		}

-		return mergedInfo;

-	}

-	

-	abstract public int reachMode();

-

-	abstract public FlowInfo setReachMode(int reachMode);

-

-	/**

-	 * Returns the receiver updated in the following way: <ul>

-	 * <li> intersection of definitely assigned variables, 

-	 * <li> union of potentially assigned variables.

-	 * </ul>

-	 */

-	abstract public UnconditionalFlowInfo mergedWith(UnconditionalFlowInfo otherInits);

-

-	public String toString(){

-

-		if (this == DEAD_END){

-			return "FlowInfo.DEAD_END"; //$NON-NLS-1$

-		}

-		return super.toString();

-	}

-

-	abstract public UnconditionalFlowInfo unconditionalInits();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/InitializationFlowContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/InitializationFlowContext.js
deleted file mode 100644
index 82f01b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/InitializationFlowContext.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding;

-

-/**

- * Reflects the context of code analysis, keeping track of enclosing

- *	try statements, exception handlers, etc...

- */

-public class InitializationFlowContext extends ExceptionHandlingFlowContext {

-

-	public int exceptionCount;

-	public TypeBinding[] thrownExceptions = new TypeBinding[5];

-	public ASTNode[] exceptionThrowers = new ASTNode[5];

-	public FlowInfo[] exceptionThrowerFlowInfos = new FlowInfo[5];

-	

-	public InitializationFlowContext(

-		FlowContext parent,

-		ASTNode associatedNode,

-		BlockScope scope) {

-		super(

-			parent,

-			associatedNode,

-			NoExceptions, // no exception allowed by default

-			scope, 

-			FlowInfo.DEAD_END);

-	}

-

-	public void checkInitializerExceptions(

-		BlockScope currentScope,

-		FlowContext initializerContext,

-		FlowInfo flowInfo) {

-		for (int i = 0; i < exceptionCount; i++) {

-			initializerContext.checkExceptionHandlers(

-				thrownExceptions[i],

-				exceptionThrowers[i],

-				exceptionThrowerFlowInfos[i],

-				currentScope);

-		}

-	}

-

-	public String individualToString() {

-		

-		StringBuffer buffer = new StringBuffer("Initialization flow context"); //$NON-NLS-1$

-		for (int i = 0; i < exceptionCount; i++) {

-			buffer.append('[').append(thrownExceptions[i].readableName());

-			buffer.append('-').append(exceptionThrowerFlowInfos[i].toString()).append(']');

-		}

-		return buffer.toString();

-	}

-	

-	public void recordHandlingException(

-		ReferenceBinding exceptionType,

-		UnconditionalFlowInfo flowInfo,

-		TypeBinding raisedException,

-		ASTNode invocationSite,

-		boolean wasMasked) {

-			

-		// even if unreachable code, need to perform unhandled exception diagnosis

-		int size = thrownExceptions.length;

-		if (exceptionCount == size) {

-			System.arraycopy(

-				thrownExceptions,

-				0,

-				(thrownExceptions = new TypeBinding[size * 2]),

-				0,

-				size);

-			System.arraycopy(

-				exceptionThrowers,

-				0,

-				(exceptionThrowers = new ASTNode[size * 2]),

-				0,

-				size);

-			System.arraycopy(

-				exceptionThrowerFlowInfos,

-				0,

-				(exceptionThrowerFlowInfos = new FlowInfo[size * 2]),

-				0,

-				size);

-		}

-		thrownExceptions[exceptionCount] = raisedException;

-		exceptionThrowers[exceptionCount] = invocationSite;

-		exceptionThrowerFlowInfos[exceptionCount++] = flowInfo.copy();

-	}	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/InsideSubRoutineFlowContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/InsideSubRoutineFlowContext.js
deleted file mode 100644
index 7cc7f68..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/InsideSubRoutineFlowContext.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.SubRoutineStatement;

-

-/**

- * Reflects the context of code analysis, keeping track of enclosing

- *	try statements, exception handlers, etc...

- */

-public class InsideSubRoutineFlowContext extends FlowContext {

-

-	public UnconditionalFlowInfo initsOnReturn;

-	

-	public InsideSubRoutineFlowContext(

-		FlowContext parent,

-		ASTNode associatedNode) {

-		super(parent, associatedNode);

-		this.initsOnReturn = FlowInfo.DEAD_END;				

-	}

-

-	public String individualToString() {

-		

-		StringBuffer buffer = new StringBuffer("Inside SubRoutine flow context"); //$NON-NLS-1$

-		buffer.append("[initsOnReturn -").append(initsOnReturn.toString()).append(']'); //$NON-NLS-1$

-		return buffer.toString();

-	}

-		

-	public UnconditionalFlowInfo initsOnReturn(){

-		return this.initsOnReturn;

-	}

-		

-	public boolean isNonReturningContext() {

-		return subRoutine().isSubRoutineEscaping();

-	}

-	

-	public SubRoutineStatement subRoutine() {

-		return (SubRoutineStatement)associatedNode;

-	}

-	

-	public void recordReturnFrom(FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return; 

-		if (initsOnReturn == FlowInfo.DEAD_END) {

-			initsOnReturn = flowInfo.copy().unconditionalInits();

-		} else {

-			initsOnReturn = initsOnReturn.mergedWith(flowInfo.copy().unconditionalInits());

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/LabelFlowContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/LabelFlowContext.js
deleted file mode 100644
index 82e7b37..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/LabelFlowContext.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.Label;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-

-/**

- * Reflects the context of code analysis, keeping track of enclosing

- *	try statements, exception handlers, etc...

- */

-public class LabelFlowContext extends SwitchFlowContext {

-	

-	public char[] labelName;

-	

-	public LabelFlowContext(

-		FlowContext parent,

-		ASTNode associatedNode,

-		char[] labelName,

-		Label breakLabel,

-		BlockScope scope) {

-			

-		super(parent, associatedNode, breakLabel);

-		this.labelName = labelName;

-		checkLabelValidity(scope);

-	}

-

-	void checkLabelValidity(BlockScope scope) {

-		

-		// check if label was already defined above

-		FlowContext current = parent;

-		while (current != null) {

-			char[] currentLabelName;

-			if (((currentLabelName = current.labelName()) != null)

-				&& CharOperation.equals(currentLabelName, labelName)) {

-				scope.problemReporter().alreadyDefinedLabel(labelName, associatedNode);

-			}

-			current = current.parent;

-		}

-	}

-

-	public String individualToString() {

-

-		return "Label flow context [label:" + String.valueOf(labelName) + "]"; //$NON-NLS-2$ //$NON-NLS-1$

-	}

-

-	public char[] labelName() {

-

-		return labelName;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/LoopingFlowContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/LoopingFlowContext.js
deleted file mode 100644
index 4da9fdd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/LoopingFlowContext.js
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Reference;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.Label;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BlockScope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.LocalVariableBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.Scope;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.VariableBinding;

-

-/**

- * Reflects the context of code analysis, keeping track of enclosing

- *	try statements, exception handlers, etc...

- */

-public class LoopingFlowContext extends SwitchFlowContext {

-	

-	public Label continueLabel;

-	public UnconditionalFlowInfo initsOnContinue = FlowInfo.DEAD_END;

-	Reference finalAssignments[];

-	VariableBinding finalVariables[];

-	int assignCount = 0;

-	Scope associatedScope;

-	

-	public LoopingFlowContext(

-		FlowContext parent,

-		ASTNode associatedNode,

-		Label breakLabel,

-		Label continueLabel,

-		Scope associatedScope) {

-		super(parent, associatedNode, breakLabel);

-		this.continueLabel = continueLabel;

-		this.associatedScope = associatedScope;

-	}

-	

-	public void complainOnFinalAssignmentsInLoop(

-		BlockScope scope,

-		FlowInfo flowInfo) {

-		for (int i = 0; i < assignCount; i++) {

-			VariableBinding variable = finalVariables[i];

-			if (variable == null) continue;

-			boolean complained = false; // remember if have complained on this final assignment

-			if (variable instanceof FieldBinding) {

-				if (flowInfo.isPotentiallyAssigned((FieldBinding) variable)) {

-					complained = true;

-					scope.problemReporter().duplicateInitializationOfBlankFinalField(

-						(FieldBinding) variable,

-						finalAssignments[i]);

-				}

-			} else {

-				if (flowInfo.isPotentiallyAssigned((LocalVariableBinding) variable)) {

-					complained = true;

-					scope.problemReporter().duplicateInitializationOfFinalLocal(

-						(LocalVariableBinding) variable,

-						finalAssignments[i]);

-				}

-			}

-			// any reference reported at this level is removed from the parent context where it 

-			// could also be reported again

-			if (complained) {

-				FlowContext context = parent;

-				while (context != null) {

-					context.removeFinalAssignmentIfAny(finalAssignments[i]);

-					context = context.parent;

-				}

-			}

-		}

-	}

-

-	public Label continueLabel() {

-		return continueLabel;

-	}

-

-	public String individualToString() {

-		StringBuffer buffer = new StringBuffer("Looping flow context"); //$NON-NLS-1$

-		buffer.append("[initsOnBreak -").append(initsOnBreak.toString()).append(']'); //$NON-NLS-1$

-		buffer.append("[initsOnContinue -").append(initsOnContinue.toString()).append(']'); //$NON-NLS-1$

-		return buffer.toString();

-	}

-

-	public boolean isContinuable() {

-		return true;

-	}

-

-	public boolean isContinuedTo() {

-		return initsOnContinue != FlowInfo.DEAD_END;

-	}

-

-	public void recordContinueFrom(FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return;

-		if (initsOnContinue == FlowInfo.DEAD_END) {

-			initsOnContinue = flowInfo.copy().unconditionalInits();

-		} else {

-			initsOnContinue = initsOnContinue.mergedWith(flowInfo.copy().unconditionalInits());

-		}

-	}

-

-	boolean recordFinalAssignment(

-		VariableBinding binding,

-		Reference finalAssignment) {

-

-		// do not consider variables which are defined inside this loop

-		if (binding instanceof LocalVariableBinding) {

-			Scope scope = ((LocalVariableBinding) binding).declaringScope;

-			while ((scope = scope.parent) != null) {

-				if (scope == associatedScope)

-					return false;

-			}

-		}

-		if (assignCount == 0) {

-			finalAssignments = new Reference[5];

-			finalVariables = new VariableBinding[5];

-		} else {

-			if (assignCount == finalAssignments.length)

-				System.arraycopy(

-					finalAssignments,

-					0,

-					(finalAssignments = new Reference[assignCount * 2]),

-					0,

-					assignCount);

-			System.arraycopy(

-				finalVariables,

-				0,

-				(finalVariables = new VariableBinding[assignCount * 2]),

-				0,

-				assignCount);

-		}

-		finalAssignments[assignCount] = finalAssignment;

-		finalVariables[assignCount++] = binding;

-		return true;

-	}

-

-	void removeFinalAssignmentIfAny(Reference reference) {

-		for (int i = 0; i < assignCount; i++) {

-			if (finalAssignments[i] == reference) {

-				finalAssignments[i] = null;

-				finalVariables[i] = null;

-				return;

-			}

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/SwitchFlowContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/SwitchFlowContext.js
deleted file mode 100644
index d491732..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/SwitchFlowContext.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.Label;

-

-/**

- * Reflects the context of code analysis, keeping track of enclosing

- *	try statements, exception handlers, etc...

- */

-public class SwitchFlowContext extends FlowContext {

-	public Label breakLabel;

-	public UnconditionalFlowInfo initsOnBreak = FlowInfo.DEAD_END;

-	

-	public SwitchFlowContext(

-		FlowContext parent,

-		ASTNode associatedNode,

-		Label breakLabel) {

-		super(parent, associatedNode);

-		this.breakLabel = breakLabel;

-	}

-

-	public Label breakLabel() {

-		return breakLabel;

-	}

-

-	public String individualToString() {

-		StringBuffer buffer = new StringBuffer("Switch flow context"); //$NON-NLS-1$

-		buffer.append("[initsOnBreak -").append(initsOnBreak.toString()).append(']'); //$NON-NLS-1$

-		return buffer.toString();

-	}

-

-	public boolean isBreakable() {

-		return true;

-	}

-

-	public void recordBreakFrom(FlowInfo flowInfo) {

-

-		if (initsOnBreak == FlowInfo.DEAD_END) {

-			initsOnBreak = flowInfo.copy().unconditionalInits();

-		} else {

-			initsOnBreak = initsOnBreak.mergedWith(flowInfo.copy().unconditionalInits());

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/UnconditionalFlowInfo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/UnconditionalFlowInfo.js
deleted file mode 100644
index e2731d7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/flow/UnconditionalFlowInfo.js
+++ /dev/null
@@ -1,558 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.flow;

-

-import org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.LocalVariableBinding;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding;

-

-/**

- * Record initialization status during definite assignment analysis

- *

- * No caching of pre-allocated instances.

- */

-public class UnconditionalFlowInfo extends FlowInfo {

-

-	

-	public long definiteInits;

-	public long potentialInits;

-	public long extraDefiniteInits[];

-	public long extraPotentialInits[];

-	

-	public int reachMode; // by default

-

-	public int maxFieldCount;

-	

-	// Constants

-	public static final int BitCacheSize = 64; // 64 bits in a long.

-

-	UnconditionalFlowInfo() {

-		this.reachMode = REACHABLE;

-	}

-

-	// unions of both sets of initialization - used for try/finally

-	public FlowInfo addInitializationsFrom(FlowInfo inits) {

-

-		if (this == DEAD_END)

-			return this;

-

-		UnconditionalFlowInfo otherInits = inits.unconditionalInits();	

-		if (otherInits == DEAD_END)

-			return this;

-			

-		// union of definitely assigned variables, 

-		definiteInits |= otherInits.definiteInits;

-		// union of potentially set ones

-		potentialInits |= otherInits.potentialInits;

-	

-		// treating extra storage

-		if (extraDefiniteInits != null) {

-			if (otherInits.extraDefiniteInits != null) {

-				// both sides have extra storage

-				int i = 0, length, otherLength;

-				if ((length = extraDefiniteInits.length) < (otherLength = otherInits.extraDefiniteInits.length)) {

-					// current storage is shorter -> grow current (could maybe reuse otherInits extra storage?)

-					System.arraycopy(extraDefiniteInits, 0, (extraDefiniteInits = new long[otherLength]), 0, length);

-					System.arraycopy(extraPotentialInits, 0, (extraPotentialInits = new long[otherLength]), 0, length);

-					while (i < length) {

-						extraDefiniteInits[i] |= otherInits.extraDefiniteInits[i];

-						extraPotentialInits[i] |= otherInits.extraPotentialInits[i++];

-					}

-					while (i < otherLength) {

-						extraPotentialInits[i] = otherInits.extraPotentialInits[i++];

-					}

-				} else {

-					// current storage is longer

-					while (i < otherLength) {

-						extraDefiniteInits[i] |= otherInits.extraDefiniteInits[i];

-						extraPotentialInits[i] |= otherInits.extraPotentialInits[i++];

-					}

-					while (i < length)

-						extraDefiniteInits[i++] = 0;

-				}

-			} else {

-				// no extra storage on otherInits

-			}

-		} else

-			if (otherInits.extraDefiniteInits != null) {

-				// no storage here, but other has extra storage.

-				int otherLength;

-				System.arraycopy(otherInits.extraDefiniteInits, 0, (extraDefiniteInits = new long[otherLength = otherInits.extraDefiniteInits.length]), 0, otherLength);			

-				System.arraycopy(otherInits.extraPotentialInits, 0, (extraPotentialInits = new long[otherLength]), 0, otherLength);

-			}

-		return this;

-	}

-

-	// unions of both sets of initialization - used for try/finally

-	public FlowInfo addPotentialInitializationsFrom(FlowInfo inits) {

-	

-		if (this == DEAD_END){

-			return this;

-		}

-

-		UnconditionalFlowInfo otherInits = inits.unconditionalInits();

-		if (otherInits == DEAD_END){

-			return this;

-		}

-		// union of potentially set ones

-		potentialInits |= otherInits.potentialInits;

-	

-		// treating extra storage

-		if (extraDefiniteInits != null) {

-			if (otherInits.extraDefiniteInits != null) {

-				// both sides have extra storage

-				int i = 0, length, otherLength;

-				if ((length = extraDefiniteInits.length) < (otherLength = otherInits.extraDefiniteInits.length)) {

-					// current storage is shorter -> grow current (could maybe reuse otherInits extra storage?)

-					System.arraycopy(extraDefiniteInits, 0, (extraDefiniteInits = new long[otherLength]), 0, length);

-					System.arraycopy(extraPotentialInits, 0, (extraPotentialInits = new long[otherLength]), 0, length);

-					while (i < length) {

-						extraPotentialInits[i] |= otherInits.extraPotentialInits[i++];

-					}

-					while (i < otherLength) {

-						extraPotentialInits[i] = otherInits.extraPotentialInits[i++];

-					}

-				} else {

-					// current storage is longer

-					while (i < otherLength) {

-						extraPotentialInits[i] |= otherInits.extraPotentialInits[i++];

-					}

-				}

-			}

-		} else

-			if (otherInits.extraDefiniteInits != null) {

-				// no storage here, but other has extra storage.

-				int otherLength;

-				extraDefiniteInits = new long[otherLength = otherInits.extraDefiniteInits.length];			

-				System.arraycopy(otherInits.extraPotentialInits, 0, (extraPotentialInits = new long[otherLength]), 0, otherLength);

-			}

-		return this;

-	}

-

-	/**

-	 * Answers a copy of the current instance

-	 */

-	public FlowInfo copy() {

-		

-		// do not clone the DeadEnd

-		if (this == DEAD_END)

-			return this;

-	

-		// look for an unused preallocated object

-		UnconditionalFlowInfo copy = new UnconditionalFlowInfo();

-	

-		// copy slots

-		copy.definiteInits = this.definiteInits;

-		copy.potentialInits = this.potentialInits;

-		copy.reachMode = this.reachMode;

-		copy.maxFieldCount = this.maxFieldCount;

-		

-		if (this.extraDefiniteInits != null) {

-			int length;

-			System.arraycopy(this.extraDefiniteInits, 0, (copy.extraDefiniteInits = new long[ (length = extraDefiniteInits.length)]), 0, length);

-			System.arraycopy(this.extraPotentialInits, 0, (copy.extraPotentialInits = new long[length]), 0, length);

-		}

-		return copy;

-	}

-	

-	public UnconditionalFlowInfo discardFieldInitializations(){

-		

-		int limit = this.maxFieldCount;

-		

-		if (limit < BitCacheSize) {

-			long mask = (1L << limit)-1;

-			this.definiteInits &= ~mask;

-			this.potentialInits &= ~mask;

-			return this;

-		} 

-

-		this.definiteInits = 0;

-		this.potentialInits = 0;

-

-		// use extra vector

-		if (extraDefiniteInits == null) {

-			return this; // if vector not yet allocated, then not initialized

-		}

-		int vectorIndex, length = this.extraDefiniteInits.length;

-		if ((vectorIndex = (limit / BitCacheSize) - 1) >= length) {

-			return this; // not enough room yet

-		}

-		for (int i = 0; i < vectorIndex; i++) {

-			this.extraDefiniteInits[i] = 0L;

-			this.extraPotentialInits[i] = 0L;

-		}

-		long mask = (1L << (limit % BitCacheSize))-1;

-		this.extraDefiniteInits[vectorIndex] &= ~mask;

-		this.extraPotentialInits[vectorIndex] &= ~mask;

-		return this;

-	}

-

-	public UnconditionalFlowInfo discardNonFieldInitializations(){

-		

-		int limit = this.maxFieldCount;

-		

-		if (limit < BitCacheSize) {

-			long mask = (1L << limit)-1;

-			this.definiteInits &= mask;

-			this.potentialInits &= mask;

-			return this;

-		} 

-		// use extra vector

-		if (extraDefiniteInits == null) {

-			return this; // if vector not yet allocated, then not initialized

-		}

-		int vectorIndex, length = this.extraDefiniteInits.length;

-		if ((vectorIndex = (limit / BitCacheSize) - 1) >= length) {

-			return this; // not enough room yet

-		}

-		long mask = (1L << (limit % BitCacheSize))-1;

-		this.extraDefiniteInits[vectorIndex] &= mask;

-		this.extraPotentialInits[vectorIndex] &= mask;

-		for (int i = vectorIndex+1; i < length; i++) {

-			this.extraDefiniteInits[i] = 0L;

-			this.extraPotentialInits[i] = 0L;

-		}

-		return this;

-	}

-	

-	public FlowInfo initsWhenFalse() {

-		

-		return this;

-	}

-	

-	public FlowInfo initsWhenTrue() {

-		

-		return this;

-	}

-	

-	/**

-	 * Check status of definite assignment at a given position.

-	 * It deals with the dual representation of the InitializationInfo2:

-	 * bits for the first 64 entries, then an array of booleans.

-	 */

-	final private boolean isDefinitelyAssigned(int position) {

-		

-		// Dependant of CodeStream.isDefinitelyAssigned(..)

-		// id is zero-based

-		if (position < BitCacheSize) {

-			return (definiteInits & (1L << position)) != 0; // use bits

-		}

-		// use extra vector

-		if (extraDefiniteInits == null)

-			return false; // if vector not yet allocated, then not initialized

-		int vectorIndex;

-		if ((vectorIndex = (position / BitCacheSize) - 1) >= extraDefiniteInits.length)

-			return false; // if not enough room in vector, then not initialized 

-		return ((extraDefiniteInits[vectorIndex]) & (1L << (position % BitCacheSize))) != 0;

-	}

-	

-	/**

-	 * Check status of definite assignment for a field.

-	 */

-	final public boolean isDefinitelyAssigned(FieldBinding field) {

-		

-		// Dependant of CodeStream.isDefinitelyAssigned(..)

-		// We do not want to complain in unreachable code

-		if ((this.reachMode & UNREACHABLE) != 0)  

-			return true;

-		return isDefinitelyAssigned(field.id); 

-	}

-	

-	/**

-	 * Check status of definite assignment for a local.

-	 */

-	final public boolean isDefinitelyAssigned(LocalVariableBinding local) {

-		

-		// Dependant of CodeStream.isDefinitelyAssigned(..)

-		// We do not want to complain in unreachable code

-		if ((this.reachMode & UNREACHABLE) != 0)

-			return true;

-		if (local.isArgument) {

-			return true;

-		}

-		// final constants are inlined, and thus considered as always initialized

-		if (local.isConstantValue()) {

-			return true;

-		}

-		return isDefinitelyAssigned(local.id + maxFieldCount);

-	}

-	

-	public boolean isReachable() {

-		

-		return this.reachMode == REACHABLE;

-	}

-	

-	/**

-	 * Check status of potential assignment at a given position.

-	 * It deals with the dual representation of the InitializationInfo3:

-	 * bits for the first 64 entries, then an array of booleans.

-	 */

-	final private boolean isPotentiallyAssigned(int position) {

-		

-		// id is zero-based

-		if (position < BitCacheSize) {

-			// use bits

-			return (potentialInits & (1L << position)) != 0;

-		}

-		// use extra vector

-		if (extraPotentialInits == null)

-			return false; // if vector not yet allocated, then not initialized

-		int vectorIndex;

-		if ((vectorIndex = (position / BitCacheSize) - 1) >= extraPotentialInits.length)

-			return false; // if not enough room in vector, then not initialized 

-		return ((extraPotentialInits[vectorIndex]) & (1L << (position % BitCacheSize))) != 0;

-	}

-	

-	/**

-	 * Check status of definite assignment for a field.

-	 */

-	final public boolean isPotentiallyAssigned(FieldBinding field) {

-		

-		return isPotentiallyAssigned(field.id); 

-	}

-	

-	/**

-	 * Check status of potential assignment for a local.

-	 */

-	final public boolean isPotentiallyAssigned(LocalVariableBinding local) {

-		

-		if (local.isArgument) {

-			return true;

-		}

-		// final constants are inlined, and thus considered as always initialized

-		if (local.isConstantValue()) {

-			return true;

-		}

-		return isPotentiallyAssigned(local.id + maxFieldCount);

-	}

-	

-	/**

-	 * Record a definite assignment at a given position.

-	 * It deals with the dual representation of the InitializationInfo2:

-	 * bits for the first 64 entries, then an array of booleans.

-	 */

-	final private void markAsDefinitelyAssigned(int position) {

-		

-		if (this != DEAD_END) {

-	

-			// position is zero-based

-			if (position < BitCacheSize) {

-				// use bits

-				long mask;

-				definiteInits |= (mask = 1L << position);

-				potentialInits |= mask;

-			} else {

-				// use extra vector

-				int vectorIndex = (position / BitCacheSize) - 1;

-				if (extraDefiniteInits == null) {

-					int length;

-					extraDefiniteInits = new long[length = vectorIndex + 1];

-					extraPotentialInits = new long[length];

-				} else {

-					int oldLength; // might need to grow the arrays

-					if (vectorIndex >= (oldLength = extraDefiniteInits.length)) {

-						System.arraycopy(extraDefiniteInits, 0, (extraDefiniteInits = new long[vectorIndex + 1]), 0, oldLength);

-						System.arraycopy(extraPotentialInits, 0, (extraPotentialInits = new long[vectorIndex + 1]), 0, oldLength);

-					}

-				}

-				long mask;

-				extraDefiniteInits[vectorIndex] |= (mask = 1L << (position % BitCacheSize));

-				extraPotentialInits[vectorIndex] |= mask;

-			}

-		}

-	}

-	

-	/**

-	 * Record a field got definitely assigned.

-	 */

-	public void markAsDefinitelyAssigned(FieldBinding field) {

-		if (this != DEAD_END)

-			markAsDefinitelyAssigned(field.id);

-	}

-	

-	/**

-	 * Record a local got definitely assigned.

-	 */

-	public void markAsDefinitelyAssigned(LocalVariableBinding local) {

-		if (this != DEAD_END)

-			markAsDefinitelyAssigned(local.id + maxFieldCount);

-	}

-	

-	/**

-	 * Clear initialization information at a given position.

-	 * It deals with the dual representation of the InitializationInfo2:

-	 * bits for the first 64 entries, then an array of booleans.

-	 */

-	final private void markAsDefinitelyNotAssigned(int position) {

-		if (this != DEAD_END) {

-	

-			// position is zero-based

-			if (position < BitCacheSize) {

-				// use bits

-				long mask;

-				definiteInits &= ~(mask = 1L << position);

-				potentialInits &= ~mask;

-			} else {

-				// use extra vector

-				int vectorIndex = (position / BitCacheSize) - 1;

-				if (extraDefiniteInits == null) {

-					return; // nothing to do, it was not yet set 

-				}

-				// might need to grow the arrays

-				if (vectorIndex >= extraDefiniteInits.length) {

-					return; // nothing to do, it was not yet set 

-				}

-				long mask;

-				extraDefiniteInits[vectorIndex] &= ~(mask = 1L << (position % BitCacheSize));

-				extraPotentialInits[vectorIndex] &= ~mask;

-			}

-		}

-	}

-	

-	/**

-	 * Clear the initialization info for a field

-	 */

-	public void markAsDefinitelyNotAssigned(FieldBinding field) {

-		

-		if (this != DEAD_END)

-			markAsDefinitelyNotAssigned(field.id);

-	}

-	

-	/**

-	 * Clear the initialization info for a local variable

-	 */

-	

-	public void markAsDefinitelyNotAssigned(LocalVariableBinding local) {

-		

-		if (this != DEAD_END)

-			markAsDefinitelyNotAssigned(local.id + maxFieldCount);

-	}

-		

-	/**

-	 * Returns the receiver updated in the following way: <ul>

-	 * <li> intersection of definitely assigned variables, 

-	 * <li> union of potentially assigned variables.

-	 * </ul>

-	 */

-	public UnconditionalFlowInfo mergedWith(UnconditionalFlowInfo otherInits) {

-	

-		if (this == DEAD_END) return otherInits;

-		if (otherInits == DEAD_END) return this;

-	

-		if ((this.reachMode & UNREACHABLE) != (otherInits.reachMode & UNREACHABLE)){

-			if ((this.reachMode & UNREACHABLE) != 0){

-				return otherInits;

-			} 

-			return this;

-		}

-		

-		// if one branch is not fake reachable, then the merged one is reachable

-		this.reachMode &= otherInits.reachMode;

-	

-		// intersection of definitely assigned variables, 

-		this.definiteInits &= otherInits.definiteInits;

-		// union of potentially set ones

-		this.potentialInits |= otherInits.potentialInits;

-	

-		// treating extra storage

-		if (this.extraDefiniteInits != null) {

-			if (otherInits.extraDefiniteInits != null) {

-				// both sides have extra storage

-				int i = 0, length, otherLength;

-				if ((length = this.extraDefiniteInits.length) < (otherLength = otherInits.extraDefiniteInits.length)) {

-					// current storage is shorter -> grow current (could maybe reuse otherInits extra storage?)

-					System.arraycopy(this.extraDefiniteInits, 0, (this.extraDefiniteInits = new long[otherLength]), 0, length);

-					System.arraycopy(this.extraPotentialInits, 0, (this.extraPotentialInits = new long[otherLength]), 0, length);

-					while (i < length) {

-						this.extraDefiniteInits[i] &= otherInits.extraDefiniteInits[i];

-						this.extraPotentialInits[i] |= otherInits.extraPotentialInits[i++];

-					}

-					while (i < otherLength) {

-						this.extraPotentialInits[i] = otherInits.extraPotentialInits[i++];

-					}

-				} else {

-					// current storage is longer

-					while (i < otherLength) {

-						this.extraDefiniteInits[i] &= otherInits.extraDefiniteInits[i];

-						this.extraPotentialInits[i] |= otherInits.extraPotentialInits[i++];

-					}

-					while (i < length)

-						this.extraDefiniteInits[i++] = 0;

-				}

-			} else {

-				// no extra storage on otherInits

-				int i = 0, length = this.extraDefiniteInits.length;

-				while (i < length)

-					this.extraDefiniteInits[i++] = 0;

-			}

-		} else

-			if (otherInits.extraDefiniteInits != null) {

-				// no storage here, but other has extra storage.

-				int otherLength;

-				this.extraDefiniteInits = new long[otherLength = otherInits.extraDefiniteInits.length];

-				System.arraycopy(otherInits.extraPotentialInits, 0, (this.extraPotentialInits = new long[otherLength]), 0, otherLength);

-			}

-		return this;

-	}

-	

-	/*

-	 * Answer the total number of fields in enclosing types of a given type

-	 */

-	static int numberOfEnclosingFields(ReferenceBinding type){

-		

-		int count = 0;

-		type = type.enclosingType();

-		while(type != null) {

-			count += type.fieldCount();

-			type = type.enclosingType();

-		}

-		return count;

-	}

-	

-	public int reachMode(){

-		return this.reachMode;

-	}

-	

-	public FlowInfo setReachMode(int reachMode) {

-		

-		if (this == DEAD_END) return this; // cannot modify DEAD_END

-	

-		// reset optional inits when becoming unreachable

-		if ((this.reachMode & UNREACHABLE) == 0 && (reachMode & UNREACHABLE) != 0) {

-			this.potentialInits = 0;

-			if (this.extraPotentialInits != null){

-				for (int i = 0, length = this.extraPotentialInits.length; i < length; i++){

-					this.extraPotentialInits[i] = 0;

-				}

-			}

-		}				

-		this.reachMode = reachMode;

-	

-		return this;

-	}

-

-	public String toString(){

-		

-		if (this == DEAD_END){

-			return "FlowInfo.DEAD_END"; //$NON-NLS-1$

-		}

-		return "FlowInfo<def: "+ this.definiteInits //$NON-NLS-1$

-			+", pot: " + this.potentialInits  //$NON-NLS-1$

-			+ ", reachable:" + ((this.reachMode & UNREACHABLE) == 0) //$NON-NLS-1$

-			+">"; //$NON-NLS-1$

-	}

-	

-	public UnconditionalFlowInfo unconditionalInits() {

-		

-		// also see conditional inits, where it requests them to merge

-		return this;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/BooleanConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/BooleanConstant.js
deleted file mode 100644
index a83fe93..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/BooleanConstant.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public class BooleanConstant extends Constant {

-

-	boolean value;

-	

-	public BooleanConstant(boolean value) {

-		this.value = value;

-	}

-

-	public boolean booleanValue() {

-		return value;

-	}

-

-	public String stringValue() {

-		//spec 15.17.11

-		String s = Util.toBoolean(value).toString();

-		if (s == null) return "null"; //$NON-NLS-1$

-		return s;

-	}

-

-	public String toString(){

-		return "(boolean)" + value ;  //$NON-NLS-1$

-	}

-

-	public int typeID() {

-		return T_boolean;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ByteConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ByteConstant.js
deleted file mode 100644
index 43e8f06..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ByteConstant.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-public class ByteConstant extends Constant {

-	byte value;

-public ByteConstant(byte value) {

-	this.value = value;

-}

-public byte byteValue() {

-	return this.value;

-}

-public char charValue() {

-	return (char) value;

-}

-public double doubleValue() {

-	return value; // implicit cast to return type

-}

-public float floatValue() {

-	return value; // implicit cast to return type

-}

-public int intValue() {

-	return value; // implicit cast to return type

-}

-public long longValue() {

-	return value; // implicit cast to return type

-}

-public short shortValue() {

-	return value; // implicit cast to return type

-}

-public String stringValue() {

-	//spec 15.17.11

-	

-	String s = new Integer(value).toString() ;

-	if (s == null) return "null"; //$NON-NLS-1$

-	return s;

-}

-public String toString(){

-

-	return "(byte)" + value ; } //$NON-NLS-1$

-public int typeID() {

-	return T_byte;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/CharConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/CharConstant.js
deleted file mode 100644
index 3677ae2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/CharConstant.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-public class CharConstant extends Constant {

-

-	char value;

-

-	public CharConstant(char value) {

-		this.value = value;

-	}

-	public byte byteValue() {

-		return (byte) value;

-	}

-	public char charValue() {

-		return this.value;

-	}

-	public double doubleValue() {

-		return value; // implicit cast to return type

-	}

-	public float floatValue() {

-		return value; // implicit cast to return type

-	}

-	public int intValue() {

-		return value; // implicit cast to return type

-	}

-	public long longValue() {

-		return value; // implicit cast to return type

-	}

-	public short shortValue() {

-		return (short) value;

-	}

-	public String stringValue() {

-		//spec 15.17.11

-		

-		String s = new Character(value).toString() ;

-		if (s == null) return "null"; //$NON-NLS-1$

-		return s;

-	}

-	public String toString(){

-	

-		return "(char)" + value; //$NON-NLS-1$

-	}

-	public int typeID() {

-		return T_char;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/CompilerOptions.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/CompilerOptions.js
deleted file mode 100644
index 901a1d2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/CompilerOptions.js
+++ /dev/null
@@ -1,725 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-import java.io.ByteArrayInputStream;

-import java.io.InputStreamReader;

-import java.io.UnsupportedEncodingException;

-import java.util.HashMap;

-import java.util.Map;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.Compiler;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ProblemReasons;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-

-public class CompilerOptions implements ProblemReasons, ProblemSeverities, ClassFileConstants {

-	

-	/**

-	 * Option IDs

-	 */

-	public static final String OPTION_LocalVariableAttribute = "org.eclipse.wst.jsdt.core.compiler.debug.localVariable"; //$NON-NLS-1$

-	public static final String OPTION_LineNumberAttribute = "org.eclipse.wst.jsdt.core.compiler.debug.lineNumber"; //$NON-NLS-1$

-	public static final String OPTION_SourceFileAttribute = "org.eclipse.wst.jsdt.core.compiler.debug.sourceFile"; //$NON-NLS-1$

-	public static final String OPTION_PreserveUnusedLocal = "org.eclipse.wst.jsdt.core.compiler.codegen.unusedLocal"; //$NON-NLS-1$

-	public static final String OPTION_DocCommentSupport= "org.eclipse.wst.jsdt.core.compiler.doc.comment.support"; //$NON-NLS-1$

-	public static final String OPTION_ReportMethodWithConstructorName = "org.eclipse.wst.jsdt.core.compiler.problem.methodWithConstructorName"; //$NON-NLS-1$

-	public static final String OPTION_ReportOverridingPackageDefaultMethod = "org.eclipse.wst.jsdt.core.compiler.problem.overridingPackageDefaultMethod"; //$NON-NLS-1$

-	public static final String OPTION_ReportDeprecation = "org.eclipse.wst.jsdt.core.compiler.problem.deprecation"; //$NON-NLS-1$

-	public static final String OPTION_ReportDeprecationInDeprecatedCode = "org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode"; //$NON-NLS-1$

-	public static final String OPTION_ReportDeprecationWhenOverridingDeprecatedMethod = "org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod"; //$NON-NLS-1$

-	public static final String OPTION_ReportHiddenCatchBlock = "org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnusedLocal = "org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnusedParameter = "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnusedParameterWhenImplementingAbstract = "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnusedParameterWhenOverridingConcrete = "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenOverridingConcrete"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnusedImport = "org.eclipse.wst.jsdt.core.compiler.problem.unusedImport"; //$NON-NLS-1$

-	public static final String OPTION_ReportSyntheticAccessEmulation = "org.eclipse.wst.jsdt.core.compiler.problem.syntheticAccessEmulation"; //$NON-NLS-1$

-	public static final String OPTION_ReportNoEffectAssignment = "org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment"; //$NON-NLS-1$

-	public static final String OPTION_ReportLocalVariableHiding = "org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding"; //$NON-NLS-1$

-	public static final String OPTION_ReportSpecialParameterHidingField = "org.eclipse.wst.jsdt.core.compiler.problem.specialParameterHidingField"; //$NON-NLS-1$

-	public static final String OPTION_ReportFieldHiding = "org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding"; //$NON-NLS-1$

-	public static final String OPTION_ReportPossibleAccidentalBooleanAssignment = "org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment"; //$NON-NLS-1$

-	public static final String OPTION_ReportNonExternalizedStringLiteral = "org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral"; //$NON-NLS-1$

-	public static final String OPTION_ReportIncompatibleNonInheritedInterfaceMethod = "org.eclipse.wst.jsdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnusedPrivateMember = "org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember"; //$NON-NLS-1$

-	public static final String OPTION_ReportNoImplicitStringConversion = "org.eclipse.wst.jsdt.core.compiler.problem.noImplicitStringConversion"; //$NON-NLS-1$

-	public static final String OPTION_ReportAssertIdentifier = "org.eclipse.wst.jsdt.core.compiler.problem.assertIdentifier"; //$NON-NLS-1$

-	public static final String OPTION_ReportEnumIdentifier = "org.eclipse.wst.jsdt.core.compiler.problem.enumIdentifier"; //$NON-NLS-1$

-	public static final String OPTION_ReportNonStaticAccessToStatic = "org.eclipse.wst.jsdt.core.compiler.problem.staticAccessReceiver"; //$NON-NLS-1$

-	public static final String OPTION_ReportIndirectStaticAccess = "org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess"; //$NON-NLS-1$

-	public static final String OPTION_ReportEmptyStatement = "org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnnecessaryTypeCheck = "org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryTypeCheck"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnnecessaryElse = "org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse"; //$NON-NLS-1$

-	public static final String OPTION_ReportUndocumentedEmptyBlock = "org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock"; //$NON-NLS-1$

-	public static final String OPTION_ReportInvalidJavadoc = "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadoc"; //$NON-NLS-1$

-	public static final String OPTION_ReportInvalidJavadocTags = "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTags"; //$NON-NLS-1$

-	public static final String OPTION_ReportInvalidJavadocTagsVisibility = "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsVisibility"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingJavadocTags = "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTags"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingJavadocTagsVisibility = "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTagsVisibility"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingJavadocTagsOverriding = "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTagsOverriding"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingJavadocComments = "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocComments"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingJavadocCommentsVisibility = "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocCommentsVisibility"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingJavadocCommentsOverriding = "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocCommentsOverriding"; //$NON-NLS-1$

-	public static final String OPTION_ReportFinallyBlockNotCompletingNormally = "org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnusedDeclaredThrownException = "org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownException"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding = "org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnqualifiedFieldAccess = "org.eclipse.wst.jsdt.core.compiler.problem.unqualifiedFieldAccess"; //$NON-NLS-1$

-	public static final String OPTION_ReportUnsafeTypeOperation = "org.eclipse.wst.jsdt.core.compiler.problem.unsafeTypeOperation"; //$NON-NLS-1$

-	public static final String OPTION_ReportFinalParameterBound = "org.eclipse.wst.jsdt.core.compiler.problem.finalParameterBound"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingSerialVersion = "org.eclipse.wst.jsdt.core.compiler.problem.missingSerialVersion"; //$NON-NLS-1$

-	public static final String OPTION_ReportForbiddenReference =  "org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference"; //$NON-NLS-1$

-	public static final String OPTION_Source = "org.eclipse.wst.jsdt.core.compiler.source"; //$NON-NLS-1$

-	public static final String OPTION_TargetPlatform = "org.eclipse.wst.jsdt.core.compiler.codegen.targetPlatform"; //$NON-NLS-1$

-	public static final String OPTION_Compliance = "org.eclipse.wst.jsdt.core.compiler.compliance"; //$NON-NLS-1$

-	public static final String OPTION_Encoding = "org.eclipse.wst.jsdt.core.encoding"; //$NON-NLS-1$

-	public static final String OPTION_MaxProblemPerUnit = "org.eclipse.wst.jsdt.core.compiler.maxProblemPerUnit"; //$NON-NLS-1$

-	public static final String OPTION_TaskTags = "org.eclipse.wst.jsdt.core.compiler.taskTags"; //$NON-NLS-1$

-	public static final String OPTION_TaskPriorities = "org.eclipse.wst.jsdt.core.compiler.taskPriorities"; //$NON-NLS-1$

-	public static final String OPTION_TaskCaseSensitive = "org.eclipse.wst.jsdt.core.compiler.taskCaseSensitive"; //$NON-NLS-1$

-	public static final String OPTION_InlineJsr = "org.eclipse.wst.jsdt.core.compiler.codegen.inlineJsrBytecode"; //$NON-NLS-1$

-	

-	// Backward compatibility

-	public static final String OPTION_ReportInvalidAnnotation = "org.eclipse.wst.jsdt.core.compiler.problem.invalidAnnotation"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingAnnotation = "org.eclipse.wst.jsdt.core.compiler.problem.missingAnnotation"; //$NON-NLS-1$

-	public static final String OPTION_ReportMissingJavadoc = "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadoc"; //$NON-NLS-1$

-

-	/* should surface ??? */

-	public static final String OPTION_PrivateConstructorAccess = "org.eclipse.wst.jsdt.core.compiler.codegen.constructorAccessEmulation"; //$NON-NLS-1$

-

-	/**

-	 * Possible values for configurable options

-	 */

-	public static final String GENERATE = "generate";//$NON-NLS-1$

-	public static final String DO_NOT_GENERATE = "do not generate"; //$NON-NLS-1$

-	public static final String PRESERVE = "preserve"; //$NON-NLS-1$

-	public static final String OPTIMIZE_OUT = "optimize out"; //$NON-NLS-1$

-	public static final String VERSION_1_1 = "1.1"; //$NON-NLS-1$

-	public static final String VERSION_1_2 = "1.2"; //$NON-NLS-1$

-	public static final String VERSION_1_3 = "1.3"; //$NON-NLS-1$

-	public static final String VERSION_1_4 = "1.4"; //$NON-NLS-1$

-	public static final String VERSION_1_5 = "1.5"; //$NON-NLS-1$

-	public static final String ERROR = "error"; //$NON-NLS-1$

-	public static final String WARNING = "warning"; //$NON-NLS-1$

-	public static final String IGNORE = "ignore"; //$NON-NLS-1$

-	public static final String ENABLED = "enabled"; //$NON-NLS-1$

-	public static final String DISABLED = "disabled"; //$NON-NLS-1$

-	public static final String PUBLIC = "public";	//$NON-NLS-1$

-	public static final String PROTECTED = "protected";	//$NON-NLS-1$

-	public static final String DEFAULT = "default";	//$NON-NLS-1$

-	public static final String PRIVATE = "private";	//$NON-NLS-1$

-	

-	/**

-	 * Bit mask for configurable problems (error/warning threshold)

-	 */

-	public static final long MethodWithConstructorName = ASTNode.Bit1;

-	public static final long OverriddenPackageDefaultMethod = ASTNode.Bit2;

-	public static final long UsingDeprecatedAPI = ASTNode.Bit3;

-	public static final long MaskedCatchBlock = ASTNode.Bit4;

-	public static final long UnusedLocalVariable = ASTNode.Bit5;

-	public static final long UnusedArgument = ASTNode.Bit6;

-	public static final long NoImplicitStringConversion = ASTNode.Bit7;

-	public static final long AccessEmulation = ASTNode.Bit8;

-	public static final long NonExternalizedString = ASTNode.Bit9;

-	public static final long AssertUsedAsAnIdentifier = ASTNode.Bit10;

-	public static final long UnusedImport = ASTNode.Bit11;

-	public static final long NonStaticAccessToStatic = ASTNode.Bit12;

-	public static final long Task = ASTNode.Bit13;

-	public static final long NoEffectAssignment = ASTNode.Bit14;

-	public static final long IncompatibleNonInheritedInterfaceMethod = ASTNode.Bit15;

-	public static final long UnusedPrivateMember = ASTNode.Bit16;

-	public static final long LocalVariableHiding = ASTNode.Bit17;

-	public static final long FieldHiding = ASTNode.Bit18;

-	public static final long AccidentalBooleanAssign = ASTNode.Bit19;

-	public static final long EmptyStatement = ASTNode.Bit20;

-	public static final long MissingJavadocComments  = ASTNode.Bit21;

-	public static final long MissingJavadocTags = ASTNode.Bit22;

-	public static final long UnqualifiedFieldAccess = ASTNode.Bit23;

-	public static final long UnusedDeclaredThrownException = ASTNode.Bit24;

-	public static final long FinallyBlockNotCompleting = ASTNode.Bit25;

-	public static final long InvalidJavadoc = ASTNode.Bit26;

-	public static final long UnnecessaryTypeCheck = ASTNode.Bit27;

-	public static final long UndocumentedEmptyBlock = ASTNode.Bit28;

-	public static final long IndirectStaticAccess = ASTNode.Bit29;

-	public static final long UnnecessaryElse  = ASTNode.Bit30;

-	public static final long UnsafeTypeOperation = ASTNode.Bit31;

-	public static final long FinalParameterBound = ASTNode.Bit32L;

-	public static final long MissingSerialVersion = ASTNode.Bit33L;

-	public static final long EnumUsedAsAnIdentifier = ASTNode.Bit34L;	

-	public static final long ForbiddenReference = ASTNode.Bit35L;

-

-	// Default severity level for handlers

-	public long errorThreshold = 0;

-		

-	public long warningThreshold = 

-		MethodWithConstructorName 

-		| UsingDeprecatedAPI 

-		| MaskedCatchBlock 

-		| OverriddenPackageDefaultMethod

-		| UnusedImport

-		| NonStaticAccessToStatic

-		| NoEffectAssignment

-		| IncompatibleNonInheritedInterfaceMethod

-		| NoImplicitStringConversion

-		| FinallyBlockNotCompleting

-		| AssertUsedAsAnIdentifier

-		| EnumUsedAsAnIdentifier

-		| UnsafeTypeOperation

-		| MissingSerialVersion;

-

-	// Debug attributes

-	public static final int Source = 1; // SourceFileAttribute

-	public static final int Lines = 2; // LineNumberAttribute

-	public static final int Vars = 4; // LocalVariableTableAttribute

-

-	// By default only lines and source attributes are generated.

-	public int produceDebugAttributes = Lines | Source;

-

-	public long complianceLevel = JDK1_4; // by default be compliant with 1.4

-	public long sourceLevel = JDK1_3; //1.3 source behavior by default

-	public long targetJDK = JDK1_2; // default generates for JVM1.2

-

-	// toggle private access emulation for 1.2 (constr. accessor has extra arg on constructor) or 1.3 (make private constructor default access when access needed)

-	public boolean isPrivateConstructorAccessChangingVisibility = false; // by default, follows 1.2

-	

-	// source encoding format

-	public String defaultEncoding = null; // will use the platform default encoding

-	

-	// print what unit is being processed

-	public boolean verbose = Compiler.DEBUG;

-

-	// indicates if reference info is desired

-	public boolean produceReferenceInfo = false;

-

-	// indicates if unused/optimizable local variables need to be preserved (debugging purpose)

-	public boolean preserveAllLocalVariables = false;

-

-	// indicates whether literal expressions are inlined at parse-time or not

-	public boolean parseLiteralExpressionsAsConstants = true;

-

-	// max problems per compilation unit

-	public int maxProblemsPerUnit = 100; // no more than 100 problems per default

-	

-	// tags used to recognize tasks in comments

-	public char[][] taskTags = null;

-	public char[][] taskPriorites = null;

-	public boolean isTaskCaseSensitive = true;

-

-	// deprecation report

-	public boolean reportDeprecationInsideDeprecatedCode = false;

-	public boolean reportDeprecationWhenOverridingDeprecatedMethod = false;

-	

-	// unused parameters report

-	public boolean reportUnusedParameterWhenImplementingAbstract = false;

-	public boolean reportUnusedParameterWhenOverridingConcrete = false;

-

-	// unused declaration of thrown exception

-	public boolean reportUnusedDeclaredThrownExceptionWhenOverriding = false;

-	

-	// constructor/setter parameter hiding

-	public boolean reportSpecialParameterHidingField = false;

-

-	// check javadoc comments

-	public int reportInvalidJavadocTagsVisibility = AccPrivate; 

-	public boolean reportInvalidJavadocTags = true; 

-

-	// check missing javadoc tags

-	public int reportMissingJavadocTagsVisibility = AccPrivate; 

-	public boolean reportMissingJavadocTagsOverriding = true;

-

-	// check missing javadoc comments

-	public int reportMissingJavadocCommentsVisibility = AccPublic; 

-	public boolean reportMissingJavadocCommentsOverriding = true; 

-	

-	// JSR bytecode inlining

-	public boolean inlineJsrBytecode = false;

-	

-	// javadoc comment support

-	public boolean docCommentSupport = false;

-	

-	

-	/** 

-	 * Initializing the compiler options with defaults

-	 */

-	public CompilerOptions(){

-		// use default options

-	}

-

-	/** 

-	 * Initializing the compiler options with external settings

-	 * @param settings

-	 */

-	public CompilerOptions(Map settings){

-

-		if (settings == null) return;

-		set(settings);		

-	}

-

-	public Map getMap() {

-		Map optionsMap = new HashMap(30);

-		optionsMap.put(OPTION_LocalVariableAttribute, (this.produceDebugAttributes & Vars) != 0 ? GENERATE : DO_NOT_GENERATE); 

-		optionsMap.put(OPTION_LineNumberAttribute, (this.produceDebugAttributes & Lines) != 0 ? GENERATE : DO_NOT_GENERATE);

-		optionsMap.put(OPTION_SourceFileAttribute, (this.produceDebugAttributes & Source) != 0 ? GENERATE : DO_NOT_GENERATE);

-		optionsMap.put(OPTION_PreserveUnusedLocal, this.preserveAllLocalVariables ? PRESERVE : OPTIMIZE_OUT);

-		optionsMap.put(OPTION_DocCommentSupport, this.docCommentSupport ? ENABLED : DISABLED); 

-		optionsMap.put(OPTION_ReportMethodWithConstructorName, getSeverityString(MethodWithConstructorName)); 

-		optionsMap.put(OPTION_ReportOverridingPackageDefaultMethod, getSeverityString(OverriddenPackageDefaultMethod)); 

-		optionsMap.put(OPTION_ReportDeprecation, getSeverityString(UsingDeprecatedAPI)); 

-		optionsMap.put(OPTION_ReportDeprecationInDeprecatedCode, this.reportDeprecationInsideDeprecatedCode ? ENABLED : DISABLED); 

-		optionsMap.put(OPTION_ReportDeprecationWhenOverridingDeprecatedMethod, this.reportDeprecationWhenOverridingDeprecatedMethod ? ENABLED : DISABLED); 

-		optionsMap.put(OPTION_ReportHiddenCatchBlock, getSeverityString(MaskedCatchBlock)); 

-		optionsMap.put(OPTION_ReportUnusedLocal, getSeverityString(UnusedLocalVariable)); 

-		optionsMap.put(OPTION_ReportUnusedParameter, getSeverityString(UnusedArgument)); 

-		optionsMap.put(OPTION_ReportUnusedImport, getSeverityString(UnusedImport)); 

-		optionsMap.put(OPTION_ReportSyntheticAccessEmulation, getSeverityString(AccessEmulation)); 

-		optionsMap.put(OPTION_ReportNoEffectAssignment, getSeverityString(NoEffectAssignment)); 

-		optionsMap.put(OPTION_ReportNonExternalizedStringLiteral, getSeverityString(NonExternalizedString)); 

-		optionsMap.put(OPTION_ReportNoImplicitStringConversion, getSeverityString(NoImplicitStringConversion)); 

-		optionsMap.put(OPTION_ReportNonStaticAccessToStatic, getSeverityString(NonStaticAccessToStatic)); 

-		optionsMap.put(OPTION_ReportIndirectStaticAccess, getSeverityString(IndirectStaticAccess)); 

-		optionsMap.put(OPTION_ReportIncompatibleNonInheritedInterfaceMethod, getSeverityString(IncompatibleNonInheritedInterfaceMethod)); 

-		optionsMap.put(OPTION_ReportUnusedPrivateMember, getSeverityString(UnusedPrivateMember)); 

-		optionsMap.put(OPTION_ReportLocalVariableHiding, getSeverityString(LocalVariableHiding)); 

-		optionsMap.put(OPTION_ReportFieldHiding, getSeverityString(FieldHiding)); 

-		optionsMap.put(OPTION_ReportPossibleAccidentalBooleanAssignment, getSeverityString(AccidentalBooleanAssign)); 

-		optionsMap.put(OPTION_ReportEmptyStatement, getSeverityString(EmptyStatement)); 

-		optionsMap.put(OPTION_ReportAssertIdentifier, getSeverityString(AssertUsedAsAnIdentifier)); 

-		optionsMap.put(OPTION_ReportEnumIdentifier, getSeverityString(EnumUsedAsAnIdentifier)); 

-		optionsMap.put(OPTION_ReportUndocumentedEmptyBlock, getSeverityString(UndocumentedEmptyBlock)); 

-		optionsMap.put(OPTION_ReportUnnecessaryTypeCheck, getSeverityString(UnnecessaryTypeCheck)); 

-		optionsMap.put(OPTION_ReportUnnecessaryElse, getSeverityString(UnnecessaryElse)); 

-		optionsMap.put(OPTION_ReportInvalidJavadoc, getSeverityString(InvalidJavadoc));

-		optionsMap.put(OPTION_ReportInvalidJavadocTagsVisibility, getVisibilityString(this.reportInvalidJavadocTagsVisibility));

-		optionsMap.put(OPTION_ReportInvalidJavadocTags, this.reportInvalidJavadocTags? ENABLED : DISABLED);

-		optionsMap.put(OPTION_ReportMissingJavadocTags, getSeverityString(MissingJavadocTags));

-		optionsMap.put(OPTION_ReportMissingJavadocTagsVisibility, getVisibilityString(this.reportMissingJavadocTagsVisibility));

-		optionsMap.put(OPTION_ReportMissingJavadocTagsOverriding, this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED);

-		optionsMap.put(OPTION_ReportMissingJavadocComments, getSeverityString(MissingJavadocComments));

-		optionsMap.put(OPTION_ReportMissingJavadocCommentsVisibility, getVisibilityString(this.reportMissingJavadocCommentsVisibility));

-		optionsMap.put(OPTION_ReportMissingJavadocCommentsOverriding, this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED);

-		optionsMap.put(OPTION_ReportFinallyBlockNotCompletingNormally, getSeverityString(FinallyBlockNotCompleting));

-		optionsMap.put(OPTION_ReportUnusedDeclaredThrownException, getSeverityString(UnusedDeclaredThrownException));

-		optionsMap.put(OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding, this.reportUnusedDeclaredThrownExceptionWhenOverriding ? ENABLED : DISABLED); 

-		optionsMap.put(OPTION_ReportUnqualifiedFieldAccess, getSeverityString(UnqualifiedFieldAccess));

-		optionsMap.put(OPTION_ReportUnsafeTypeOperation, getSeverityString(UnsafeTypeOperation));

-		optionsMap.put(OPTION_ReportFinalParameterBound, getSeverityString(FinalParameterBound));

-		optionsMap.put(OPTION_ReportMissingSerialVersion, getSeverityString(MissingSerialVersion));

-		optionsMap.put(OPTION_ReportForbiddenReference, getSeverityString(ForbiddenReference));

-		optionsMap.put(OPTION_Compliance, versionFromJdkLevel(this.complianceLevel)); 

-		optionsMap.put(OPTION_Source, versionFromJdkLevel(this.sourceLevel)); 

-		optionsMap.put(OPTION_TargetPlatform, versionFromJdkLevel(this.targetJDK)); 

-		if (this.defaultEncoding != null) {

-			optionsMap.put(OPTION_Encoding, this.defaultEncoding); 

-		}

-		optionsMap.put(OPTION_TaskTags, this.taskTags == null ? "" : new String(CharOperation.concatWith(this.taskTags,','))); //$NON-NLS-1$

-		optionsMap.put(OPTION_TaskPriorities, this.taskPriorites == null ? "" : new String(CharOperation.concatWith(this.taskPriorites,','))); //$NON-NLS-1$

-		optionsMap.put(OPTION_TaskCaseSensitive, this.isTaskCaseSensitive ? ENABLED : DISABLED);

-		optionsMap.put(OPTION_ReportUnusedParameterWhenImplementingAbstract, this.reportUnusedParameterWhenImplementingAbstract ? ENABLED : DISABLED); 

-		optionsMap.put(OPTION_ReportUnusedParameterWhenOverridingConcrete, this.reportUnusedParameterWhenOverridingConcrete ? ENABLED : DISABLED); 

-		optionsMap.put(OPTION_ReportSpecialParameterHidingField, this.reportSpecialParameterHidingField ? ENABLED : DISABLED); 

-		optionsMap.put(OPTION_MaxProblemPerUnit, String.valueOf(this.maxProblemsPerUnit));

-		optionsMap.put(OPTION_InlineJsr, this.inlineJsrBytecode ? ENABLED : DISABLED); 

-		return optionsMap;		

-	}

-	

-	public int getSeverity(long irritant) {

-		if((this.warningThreshold & irritant) != 0)

-			return Warning;

-		if((this.errorThreshold & irritant) != 0)

-			return Error;

-		return Ignore;

-	}

-

-	public String getSeverityString(long irritant) {

-		if((this.warningThreshold & irritant) != 0)

-			return WARNING;

-		if((this.errorThreshold & irritant) != 0)

-			return ERROR;

-		return IGNORE;

-	}

-	

-	public String getVisibilityString(int level) {

-		switch (level) {

-			case AccPublic:

-				return PUBLIC;

-			case AccProtected:

-				return PROTECTED;

-			case AccPrivate:

-				return PRIVATE;

-			default:

-				return DEFAULT;

-		}

-	}

-	

-	public void set(Map optionsMap) {

-

-		Object optionValue;

-		if ((optionValue = optionsMap.get(OPTION_LocalVariableAttribute)) != null) {

-			if (GENERATE.equals(optionValue)) {

-				this.produceDebugAttributes |= Vars;

-			} else if (DO_NOT_GENERATE.equals(optionValue)) {

-				this.produceDebugAttributes &= ~Vars;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_LineNumberAttribute)) != null) {

-			if (GENERATE.equals(optionValue)) {

-				this.produceDebugAttributes |= Lines;

-			} else if (DO_NOT_GENERATE.equals(optionValue)) {

-				this.produceDebugAttributes &= ~Lines;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_SourceFileAttribute)) != null) {

-			if (GENERATE.equals(optionValue)) {

-				this.produceDebugAttributes |= Source;

-			} else if (DO_NOT_GENERATE.equals(optionValue)) {

-				this.produceDebugAttributes &= ~Source;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_PreserveUnusedLocal)) != null) {

-			if (PRESERVE.equals(optionValue)) {

-				this.preserveAllLocalVariables = true;

-			} else if (OPTIMIZE_OUT.equals(optionValue)) {

-				this.preserveAllLocalVariables = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportDeprecationInDeprecatedCode)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportDeprecationInsideDeprecatedCode = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportDeprecationInsideDeprecatedCode = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportDeprecationWhenOverridingDeprecatedMethod)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportDeprecationWhenOverridingDeprecatedMethod = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportDeprecationWhenOverridingDeprecatedMethod = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportUnusedDeclaredThrownExceptionWhenOverriding = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportUnusedDeclaredThrownExceptionWhenOverriding = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_Compliance)) != null) {

-			long level = versionToJdkLevel(optionValue);

-			if (level != 0) this.complianceLevel = level;

-		}

-		if ((optionValue = optionsMap.get(OPTION_Source)) != null) {

-			long level = versionToJdkLevel(optionValue);

-			if (level != 0) this.sourceLevel = level;

-		}

-		if ((optionValue = optionsMap.get(OPTION_TargetPlatform)) != null) {

-			long level = versionToJdkLevel(optionValue);

-			if (level != 0) this.targetJDK = level;

-			if (this.targetJDK >= JDK1_5) this.inlineJsrBytecode = true; // forced in 1.5 mode

-		}

-		if ((optionValue = optionsMap.get(OPTION_Encoding)) != null) {

-			if (optionValue instanceof String) {

-				this.defaultEncoding = null;

-				String stringValue = (String) optionValue;

-				if (stringValue.length() > 0){

-					try { 

-						new InputStreamReader(new ByteArrayInputStream(new byte[0]), stringValue);

-						this.defaultEncoding = stringValue;

-					} catch(UnsupportedEncodingException e){

-						// ignore unsupported encoding

-					}

-				}

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_PrivateConstructorAccess)) != null) {

-			long level = versionToJdkLevel(optionValue);

-			if (level >= JDK1_3) this.isPrivateConstructorAccessChangingVisibility = true;

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameterWhenImplementingAbstract)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportUnusedParameterWhenImplementingAbstract = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportUnusedParameterWhenImplementingAbstract = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameterWhenOverridingConcrete)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportUnusedParameterWhenOverridingConcrete = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportUnusedParameterWhenOverridingConcrete = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportSpecialParameterHidingField)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportSpecialParameterHidingField = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportSpecialParameterHidingField = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_MaxProblemPerUnit)) != null) {

-			if (optionValue instanceof String) {

-				String stringValue = (String) optionValue;

-				try {

-					int val = Integer.parseInt(stringValue);

-					if (val >= 0) this.maxProblemsPerUnit = val;

-				} catch(NumberFormatException e){

-					// ignore ill-formatted limit

-				}				

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_TaskTags)) != null) {

-			if (optionValue instanceof String) {

-				String stringValue = (String) optionValue;

-				if (stringValue.length() == 0) {

-					this.taskTags = null;

-				} else {

-					this.taskTags = CharOperation.splitAndTrimOn(',', stringValue.toCharArray());

-				}

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_TaskPriorities)) != null) {

-			if (optionValue instanceof String) {

-				String stringValue = (String) optionValue;

-				if (stringValue.length() == 0) {

-					this.taskPriorites = null;

-				} else {

-					this.taskPriorites = CharOperation.splitAndTrimOn(',', stringValue.toCharArray());

-				}

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_TaskCaseSensitive)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.isTaskCaseSensitive = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.isTaskCaseSensitive = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_InlineJsr)) != null) {

-			if (this.targetJDK < JDK1_5) { // only optional if target < 1.5 (inlining on from 1.5 on)

-				if (ENABLED.equals(optionValue)) {

-					this.inlineJsrBytecode = true;

-				} else if (DISABLED.equals(optionValue)) {

-					this.inlineJsrBytecode = false;

-				}

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportMethodWithConstructorName)) != null) updateSeverity(MethodWithConstructorName, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportOverridingPackageDefaultMethod)) != null) updateSeverity(OverriddenPackageDefaultMethod, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportDeprecation)) != null) updateSeverity(UsingDeprecatedAPI, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportHiddenCatchBlock)) != null) updateSeverity(MaskedCatchBlock, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnusedLocal)) != null) updateSeverity(UnusedLocalVariable, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameter)) != null) updateSeverity(UnusedArgument, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnusedImport)) != null) updateSeverity(UnusedImport, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnusedPrivateMember)) != null) updateSeverity(UnusedPrivateMember, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnusedDeclaredThrownException)) != null) updateSeverity(UnusedDeclaredThrownException, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportNoImplicitStringConversion)) != null) updateSeverity(NoImplicitStringConversion, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportSyntheticAccessEmulation)) != null) updateSeverity(AccessEmulation, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportLocalVariableHiding)) != null) updateSeverity(LocalVariableHiding, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportFieldHiding)) != null) updateSeverity(FieldHiding, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportPossibleAccidentalBooleanAssignment)) != null) updateSeverity(AccidentalBooleanAssign, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportEmptyStatement)) != null) updateSeverity(EmptyStatement, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportNonExternalizedStringLiteral)) != null) updateSeverity(NonExternalizedString, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportAssertIdentifier)) != null) updateSeverity(AssertUsedAsAnIdentifier, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportEnumIdentifier)) != null) updateSeverity(EnumUsedAsAnIdentifier, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportNonStaticAccessToStatic)) != null) updateSeverity(NonStaticAccessToStatic, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportIndirectStaticAccess)) != null) updateSeverity(IndirectStaticAccess, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportIncompatibleNonInheritedInterfaceMethod)) != null) updateSeverity(IncompatibleNonInheritedInterfaceMethod, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUndocumentedEmptyBlock)) != null) updateSeverity(UndocumentedEmptyBlock, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnnecessaryTypeCheck)) != null) updateSeverity(UnnecessaryTypeCheck, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnnecessaryElse)) != null) updateSeverity(UnnecessaryElse, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportFinallyBlockNotCompletingNormally)) != null) updateSeverity(FinallyBlockNotCompleting, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnqualifiedFieldAccess)) != null) updateSeverity(UnqualifiedFieldAccess, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportNoEffectAssignment)) != null) updateSeverity(NoEffectAssignment, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportUnsafeTypeOperation)) != null) updateSeverity(UnsafeTypeOperation, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportFinalParameterBound)) != null) updateSeverity(FinalParameterBound, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportMissingSerialVersion)) != null) updateSeverity(MissingSerialVersion, optionValue);

-		if ((optionValue = optionsMap.get(OPTION_ReportForbiddenReference)) != null) updateSeverity(ForbiddenReference, optionValue);

-

-		// Javadoc options

-		if ((optionValue = optionsMap.get(OPTION_DocCommentSupport)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.docCommentSupport = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.docCommentSupport = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadoc)) != null) {

-			updateSeverity(InvalidJavadoc, optionValue);

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadocTagsVisibility)) != null) {

-			if (PUBLIC.equals(optionValue)) {

-				this.reportInvalidJavadocTagsVisibility = AccPublic;

-			} else if (PROTECTED.equals(optionValue)) {

-				this.reportInvalidJavadocTagsVisibility = AccProtected;

-			} else if (DEFAULT.equals(optionValue)) {

-				this.reportInvalidJavadocTagsVisibility = AccDefault;

-			} else if (PRIVATE.equals(optionValue)) {

-				this.reportInvalidJavadocTagsVisibility = AccPrivate;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadocTags)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportInvalidJavadocTags= true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportInvalidJavadocTags = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTags)) != null) {

-			updateSeverity(MissingJavadocTags, optionValue);

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTagsVisibility)) != null) {

-			if (PUBLIC.equals(optionValue)) {

-				this.reportMissingJavadocTagsVisibility = AccPublic;

-			} else if (PROTECTED.equals(optionValue)) {

-				this.reportMissingJavadocTagsVisibility = AccProtected;

-			} else if (DEFAULT.equals(optionValue)) {

-				this.reportMissingJavadocTagsVisibility = AccDefault;

-			} else if (PRIVATE.equals(optionValue)) {

-				this.reportMissingJavadocTagsVisibility = AccPrivate;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTagsOverriding)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportMissingJavadocTagsOverriding = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportMissingJavadocTagsOverriding = false;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocComments)) != null) {

-			updateSeverity(MissingJavadocComments, optionValue);

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocCommentsVisibility)) != null) {

-			if (PUBLIC.equals(optionValue)) {

-				this.reportMissingJavadocCommentsVisibility = AccPublic;

-			} else if (PROTECTED.equals(optionValue)) {

-				this.reportMissingJavadocCommentsVisibility = AccProtected;

-			} else if (DEFAULT.equals(optionValue)) {

-				this.reportMissingJavadocCommentsVisibility = AccDefault;

-			} else if (PRIVATE.equals(optionValue)) {

-				this.reportMissingJavadocCommentsVisibility = AccPrivate;

-			}

-		}

-		if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocCommentsOverriding)) != null) {

-			if (ENABLED.equals(optionValue)) {

-				this.reportMissingJavadocCommentsOverriding = true;

-			} else if (DISABLED.equals(optionValue)) {

-				this.reportMissingJavadocCommentsOverriding = false;

-			}

-		}

-	}

-

-	public String toString() {

-	

-		StringBuffer buf = new StringBuffer("CompilerOptions:"); //$NON-NLS-1$

-		buf.append("\n\t- local variables debug attributes: ").append((this.produceDebugAttributes & Vars) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t- line number debug attributes: ").append((this.produceDebugAttributes & Lines) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t- source debug attributes: ").append((this.produceDebugAttributes & Source) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t- preserve all local variables: ").append(this.preserveAllLocalVariables ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t- method with constructor name: ").append(getSeverityString(MethodWithConstructorName)); //$NON-NLS-1$

-		buf.append("\n\t- overridden package default method: ").append(getSeverityString(OverriddenPackageDefaultMethod)); //$NON-NLS-1$

-		buf.append("\n\t- deprecation: ").append(getSeverityString(UsingDeprecatedAPI)); //$NON-NLS-1$

-		buf.append("\n\t- masked catch block: ").append(getSeverityString(MaskedCatchBlock)); //$NON-NLS-1$

-		buf.append("\n\t- unused local variable: ").append(getSeverityString(UnusedLocalVariable)); //$NON-NLS-1$

-		buf.append("\n\t- unused parameter: ").append(getSeverityString(UnusedArgument)); //$NON-NLS-1$

-		buf.append("\n\t- unused import: ").append(getSeverityString(UnusedImport)); //$NON-NLS-1$

-		buf.append("\n\t- synthetic access emulation: ").append(getSeverityString(AccessEmulation)); //$NON-NLS-1$

-		buf.append("\n\t- assignment with no effect: ").append(getSeverityString(NoEffectAssignment)); //$NON-NLS-1$

-		buf.append("\n\t- non externalized string: ").append(getSeverityString(NonExternalizedString)); //$NON-NLS-1$

-		buf.append("\n\t- static access receiver: ").append(getSeverityString(NonStaticAccessToStatic)); //$NON-NLS-1$

-		buf.append("\n\t- indirect static access: ").append(getSeverityString(IndirectStaticAccess)); //$NON-NLS-1$

-		buf.append("\n\t- incompatible non inherited interface method: ").append(getSeverityString(IncompatibleNonInheritedInterfaceMethod)); //$NON-NLS-1$

-		buf.append("\n\t- unused private member: ").append(getSeverityString(UnusedPrivateMember)); //$NON-NLS-1$

-		buf.append("\n\t- local variable hiding another variable: ").append(getSeverityString(LocalVariableHiding)); //$NON-NLS-1$

-		buf.append("\n\t- field hiding another variable: ").append(getSeverityString(FieldHiding)); //$NON-NLS-1$

-		buf.append("\n\t- possible accidental boolean assignment: ").append(getSeverityString(AccidentalBooleanAssign)); //$NON-NLS-1$

-		buf.append("\n\t- superfluous semicolon: ").append(getSeverityString(EmptyStatement)); //$NON-NLS-1$

-		buf.append("\n\t- uncommented empty block: ").append(getSeverityString(UndocumentedEmptyBlock)); //$NON-NLS-1$

-		buf.append("\n\t- unnecessary type check: ").append(getSeverityString(UnnecessaryTypeCheck)); //$NON-NLS-1$

-		buf.append("\n\t- javadoc comment support: ").append(this.docCommentSupport ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t\t+ invalid javadoc: ").append(getSeverityString(InvalidJavadoc)); //$NON-NLS-1$

-		buf.append("\n\t\t+ report invalid javadoc tags: ").append(this.reportInvalidJavadocTags ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t\t+ visibility level to report invalid javadoc tags: ").append(getVisibilityString(this.reportInvalidJavadocTagsVisibility)); //$NON-NLS-1$

-		buf.append("\n\t\t+ missing javadoc tags: ").append(getSeverityString(MissingJavadocTags)); //$NON-NLS-1$

-		buf.append("\n\t\t+ visibility level to report missing javadoc tags: ").append(getVisibilityString(this.reportMissingJavadocTagsVisibility)); //$NON-NLS-1$

-		buf.append("\n\t\t+ report missing javadoc tags in overriding methods: ").append(this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t\t+ missing javadoc comments: ").append(getSeverityString(MissingJavadocComments)); //$NON-NLS-1$

-		buf.append("\n\t\t+ visibility level to report missing javadoc comments: ").append(getVisibilityString(this.reportMissingJavadocCommentsVisibility)); //$NON-NLS-1$

-		buf.append("\n\t\t+ report missing javadoc comments in overriding methods: ").append(this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t- finally block not completing normally: ").append(getSeverityString(FinallyBlockNotCompleting)); //$NON-NLS-1$

-		buf.append("\n\t- unused declared thrown exception: ").append(getSeverityString(UnusedDeclaredThrownException)); //$NON-NLS-1$

-		buf.append("\n\t- unused declared thrown exception when overriding: ").append(this.reportUnusedDeclaredThrownExceptionWhenOverriding ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t- unnecessary else: ").append(getSeverityString(UnnecessaryElse)); //$NON-NLS-1$

-		buf.append("\n\t- JDK compliance level: "+ versionFromJdkLevel(this.complianceLevel)); //$NON-NLS-1$

-		buf.append("\n\t- JDK source level: "+ versionFromJdkLevel(this.sourceLevel)); //$NON-NLS-1$

-		buf.append("\n\t- JDK target level: "+ versionFromJdkLevel(this.targetJDK)); //$NON-NLS-1$

-		buf.append("\n\t- private constructor access: ").append(this.isPrivateConstructorAccessChangingVisibility ? "extra argument" : "make default access"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t- verbose : ").append(this.verbose ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t- produce reference info : ").append(this.produceReferenceInfo ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t- parse literal expressions as constants : ").append(this.parseLiteralExpressionsAsConstants ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-		buf.append("\n\t- encoding : ").append(this.defaultEncoding == null ? "<default>" : this.defaultEncoding); //$NON-NLS-1$ //$NON-NLS-2$

-		buf.append("\n\t- task tags: ").append(this.taskTags == null ? "" : new String(CharOperation.concatWith(this.taskTags,',')));  //$NON-NLS-1$ //$NON-NLS-2$

-		buf.append("\n\t- task priorities : ").append(this.taskPriorites == null ? "" : new String(CharOperation.concatWith(this.taskPriorites,','))); //$NON-NLS-1$ //$NON-NLS-2$

-		buf.append("\n\t- report deprecation inside deprecated code : ").append(this.reportDeprecationInsideDeprecatedCode ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t- report deprecation when overriding deprecated method : ").append(this.reportDeprecationWhenOverridingDeprecatedMethod ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t- report unused parameter when implementing abstract method : ").append(this.reportUnusedParameterWhenImplementingAbstract ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t- report unused parameter when overriding concrete method : ").append(this.reportUnusedParameterWhenOverridingConcrete ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t- report constructor/setter parameter hiding existing field : ").append(this.reportSpecialParameterHidingField ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t- inline JSR bytecode : ").append(this.inlineJsrBytecode ? ENABLED : DISABLED); //$NON-NLS-1$

-		buf.append("\n\t- unsafe type operation: ").append(getSeverityString(UnsafeTypeOperation)); //$NON-NLS-1$

-		buf.append("\n\t- final bound for type parameter: ").append(getSeverityString(FinalParameterBound)); //$NON-NLS-1$

-		buf.append("\n\t- missing serialVersionUID: ").append(getSeverityString(MissingSerialVersion)); //$NON-NLS-1$

-		buf.append("\n\t- forbidden reference to non-API type: ").append(getSeverityString(ForbiddenReference)); //$NON-NLS-1$

-		return buf.toString();

-	}

-

-	void updateSeverity(long irritant, Object severityString) {

-		if (ERROR.equals(severityString)) {

-			this.errorThreshold |= irritant;

-			this.warningThreshold &= ~irritant;

-		} else if (WARNING.equals(severityString)) {

-			this.errorThreshold &= ~irritant;

-			this.warningThreshold |= irritant;

-		} else if (IGNORE.equals(severityString)) {

-			this.errorThreshold &= ~irritant;

-			this.warningThreshold &= ~irritant;

-		}

-	}				

-	public static long versionToJdkLevel(Object versionID) {

-		if (VERSION_1_1.equals(versionID)) {

-			return JDK1_1;

-		} else if (VERSION_1_2.equals(versionID)) {

-			return JDK1_2;

-		} else if (VERSION_1_3.equals(versionID)) {

-			return JDK1_3;

-		} else if (VERSION_1_4.equals(versionID)) {

-			return JDK1_4;

-		} else if (VERSION_1_5.equals(versionID)) {

-			return JDK1_5;

-		}

-		return 0; // unknown

-	}

-

-	public static String versionFromJdkLevel(long jdkLevel) {

-		if (jdkLevel == JDK1_1) {

-			return VERSION_1_1;

-		} else if (jdkLevel == JDK1_2) {

-			return VERSION_1_2;

-		} else if (jdkLevel == JDK1_3) {

-			return VERSION_1_3;

-		} else if (jdkLevel == JDK1_4) {

-			return VERSION_1_4;

-		} else if (jdkLevel == JDK1_5) {

-			return VERSION_1_5;

-		}

-		return ""; // unknown version //$NON-NLS-1$

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/Constant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/Constant.js
deleted file mode 100644
index a625b0a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/Constant.js
+++ /dev/null
@@ -1,1611 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.OperatorIds;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ShouldNotImplement;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public abstract class Constant implements TypeIds, OperatorIds {

-	

-	public static final Constant NotAConstant = new DoubleConstant(Double.NaN);

-

-	public static final IntConstant Zero = new IntConstant(0);

-	public static final IntConstant Two = new IntConstant(2);

-	public static final IntConstant One = new IntConstant(1);

-	

-	public boolean booleanValue() {

-

-		throw new ShouldNotImplement(Util.bind("constant.cannotCastedInto",typeName(),"boolean")); //$NON-NLS-1$ //$NON-NLS-2$

-	}

-

-	public byte byteValue() {

-

-		throw new ShouldNotImplement(Util.bind("constant.cannotCastedInto",typeName(),"byte")); //$NON-NLS-1$ //$NON-NLS-2$

-	}

-

-	public final Constant castTo(int conversionToTargetType){

-		//the cast is an int of the form

-		// (castId<<4)+typeId (in order to follow the

-		//user written style (cast)expression ....

-	

-		if (this == NotAConstant) return NotAConstant;

-		switch(conversionToTargetType){

-			case T_undefined : 						return this;

-	//            TARGET TYPE  <- FROM TYPE

-	//	    case (T_undefined<<4)+T_undefined  	 : return NotAConstant;  

-	//	    case (T_undefined<<4)+T_byte  		 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_long  		 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_short  		 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_void  		 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_String  	 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_Object  	 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_double  	 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_float  		 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_boolean 	 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_char  		 : return NotAConstant;   

-	//	    case (T_undefined<<4)+T_int  		 : return NotAConstant;   

-		

-	//	    case (T_byte<<4)+T_undefined  	 : return NotAConstant;   

-		    case (T_byte<<4)+T_byte  		 : return this;  

-		    case (T_byte<<4)+T_long  		 : return Constant.fromValue((byte)this.longValue()); 

-		    case (T_byte<<4)+T_short  		 : return Constant.fromValue((byte)this.shortValue());    

-	//	    case (T_byte<<4)+T_void  		 : return NotAConstant;   

-	//	    case (T_byte<<4)+T_String  	 	 : return NotAConstant;   

-	//	    case (T_byte<<4)+T_Object  	 	 : return NotAConstant;   

-		    case (T_byte<<4)+T_double  	 	 : return Constant.fromValue((byte)this.doubleValue());    

-		    case (T_byte<<4)+T_float  		 : return Constant.fromValue((byte)this.floatValue());    

-	//	    case (T_byte<<4)+T_boolean  	 : return NotAConstant;   

-		    case (T_byte<<4)+T_char  		 : return Constant.fromValue((byte)this.charValue());    

-		    case (T_byte<<4)+T_int  		 : return Constant.fromValue((byte)this.intValue());    

-	

-	//	    case (T_long<<4)+T_undefined  	 : return NotAConstant;   

-		    case (T_long<<4)+T_byte  		 : return Constant.fromValue((long)this.byteValue()); 

-		    case (T_long<<4)+T_long  		 : return this; 

-		    case (T_long<<4)+T_short  		 : return Constant.fromValue((long)this.shortValue()); 

-	//	    case (T_long<<4)+T_void  		 : return NotAConstant;   

-	//	    case (T_long<<4)+T_String  		 : return NotAConstant;   

-	//	    case (T_long<<4)+T_Object  		 : return NotAConstant;   

-		    case (T_long<<4)+T_double  		 : return Constant.fromValue((long)this.doubleValue());   

-		    case (T_long<<4)+T_float  		 : return Constant.fromValue((long)this.floatValue());  

-	//	    case (T_long<<4)+T_boolean  	 : return NotAConstant;   

-		    case (T_long<<4)+T_char  		 : return Constant.fromValue((long)this.charValue()); 

-		    case (T_long<<4)+T_int  		 : return Constant.fromValue((long)this.intValue()); 

-	

-	//	    case (T_short<<4)+T_undefined  	 : return NotAConstant;   

-		    case (T_short<<4)+T_byte  		 : return Constant.fromValue((short)this.byteValue());

-		    case (T_short<<4)+T_long  		 : return Constant.fromValue((short)this.longValue()); 

-		    case (T_short<<4)+T_short  		 : return this;  

-	//	    case (T_short<<4)+T_void  		 : return NotAConstant;   

-	//	    case (T_short<<4)+T_String  	 : return NotAConstant;   

-	//	    case (T_short<<4)+T_Object  	 : return NotAConstant;   

-		    case (T_short<<4)+T_double  	 : return Constant.fromValue((short)this.doubleValue());   

-		    case (T_short<<4)+T_float  		 : return Constant.fromValue((short)this.floatValue());   

-	//	    case (T_short<<4)+T_boolean 	 : return NotAConstant;   

-		    case (T_short<<4)+T_char  		 : return Constant.fromValue((short)this.charValue());  

-		    case (T_short<<4)+T_int  		 : return Constant.fromValue((short)this.intValue());  

-	

-	//	    case (T_void<<4)+T_undefined  	 : return NotAConstant;   

-	//	    case (T_void<<4)+T_byte  		 : return NotAConstant;   

-	//	    case (T_void<<4)+T_long  		 : return NotAConstant;   

-	//	    case (T_void<<4)+T_short  		 : return NotAConstant;   

-	//	    case (T_void<<4)+T_void  		 : return NotAConstant;   

-	//	    case (T_void<<4)+T_String  	 	 : return NotAConstant;   

-	//	    case (T_void<<4)+T_Object  	 	 : return NotAConstant;   

-	//	    case (T_void<<4)+T_double  	 	 : return NotAConstant;   

-	//	    case (T_void<<4)+T_float  		 : return NotAConstant;   

-	//	    case (T_void<<4)+T_boolean  	 : return NotAConstant;   

-	//	    case (T_void<<4)+T_char  		 : return NotAConstant;   

-	//	    case (T_void<<4)+T_int  		 : return NotAConstant;   

-	

-	//	    case (T_String<<4)+T_undefined   : return NotAConstant;   

-	//	    case (T_String<<4)+T_byte  		 : return NotAConstant;   

-	//	    case (T_String<<4)+T_long  		 : return NotAConstant;   

-	//	    case (T_String<<4)+T_short  	 : return NotAConstant;   

-	//	    case (T_String<<4)+T_void  		 : return NotAConstant;   

-		    case (T_String<<4)+T_String  	 : return this;   

-	//	    case (T_String<<4)+T_Object  	 : return NotAConstant;   

-	//	    case (T_String<<4)+T_double  	 : return NotAConstant;   

-	//	    case (T_String<<4)+T_float  	 : return NotAConstant;   

-	//	    case (T_String<<4)+T_boolean 	 : return NotAConstant;   

-	//	    case (T_String<<4)+T_char  		 : return NotAConstant;   

-	//	    case (T_String<<4)+T_int  		 : return NotAConstant;   

-	

-	//	    case (T_Object<<4)+T_undefined   	: return NotAConstant;   

-	//	    case (T_Object<<4)+T_byte  		 	: return NotAConstant;   

-	//	    case (T_Object<<4)+T_long  		 	: return NotAConstant;   

-	//	    case (T_Object<<4)+T_short 		 	: return NotAConstant;   

-	//	    case (T_Object<<4)+T_void  		 	: return NotAConstant;   

-	//	    case (T_Object<<4)+T_String  		: return NotAConstant;   

-	//	    case (T_Object<<4)+T_Object  		: return NotAConstant;   

-	//	    case (T_Object<<4)+T_double  		: return NotAConstant;   

-	//	    case (T_Object<<4)+T_float  		: return NotAConstant;   

-	//	    case (T_Object<<4)+T_boolean 		: return NotAConstant;   

-	//	    case (T_Object<<4)+T_char  		 	: return NotAConstant;   

-	//	    case (T_Object<<4)+T_int  			: return NotAConstant;   

-	

-	//	    case (T_double<<4)+T_undefined  	: return NotAConstant;   

-		    case (T_double<<4)+T_byte  		 	: return Constant.fromValue((double)this.byteValue());   

-		    case (T_double<<4)+T_long  		 	: return Constant.fromValue((double)this.longValue());   

-		    case (T_double<<4)+T_short  		: return Constant.fromValue((double)this.shortValue());   

-	//	    case (T_double<<4)+T_void  		 	: return NotAConstant;   

-	//	    case (T_double<<4)+T_String  		: return NotAConstant;   

-	//	    case (T_double<<4)+T_Object  		: return NotAConstant;   

-		    case (T_double<<4)+T_double  		: return this;   

-		    case (T_double<<4)+T_float  		: return Constant.fromValue((double)this.floatValue());   

-	//	    case (T_double<<4)+T_boolean  		: return NotAConstant;   

-		    case (T_double<<4)+T_char  		 	: return Constant.fromValue((double)this.charValue());   

-		    case (T_double<<4)+T_int  			: return Constant.fromValue((double)this.intValue());  

-	

-	//	    case (T_float<<4)+T_undefined  	 : return NotAConstant;   

-		    case (T_float<<4)+T_byte  		 : return Constant.fromValue((float)this.byteValue());   

-		    case (T_float<<4)+T_long  		 : return Constant.fromValue((float)this.longValue());   

-		    case (T_float<<4)+T_short  		 : return Constant.fromValue((float)this.shortValue());   

-	//	    case (T_float<<4)+T_void  		 : return NotAConstant;   

-	//	    case (T_float<<4)+T_String  	 : return NotAConstant;   

-	//	    case (T_float<<4)+T_Object  	 : return NotAConstant;   

-		    case (T_float<<4)+T_double  	 : return Constant.fromValue((float)this.doubleValue());   

-		    case (T_float<<4)+T_float  		 : return this;   

-	//	    case (T_float<<4)+T_boolean 	 : return NotAConstant;   

-		    case (T_float<<4)+T_char  		 : return Constant.fromValue((float)this.charValue());   

-		    case (T_float<<4)+T_int  		 : return Constant.fromValue((float)this.intValue());   

-	

-	//	    case (T_boolean<<4)+T_undefined  		 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_byte  			 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_long  			 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_short  			 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_void  			 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_String  			 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_Object  			 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_double  			 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_float  			 : return NotAConstant;   

-		    case (T_boolean<<4)+T_boolean  			 : return this;  

-	//	    case (T_boolean<<4)+T_char  			 : return NotAConstant;   

-	//	    case (T_boolean<<4)+T_int  				 : return NotAConstant;   

-		

-	//	    case (T_char<<4)+T_undefined  	 : return NotAConstant;   

-		    case (T_char<<4)+T_byte  		 : return Constant.fromValue((char)this.byteValue());  

-		    case (T_char<<4)+T_long  		 : return Constant.fromValue((char)this.longValue());  

-		    case (T_char<<4)+T_short  		 : return Constant.fromValue((char)this.shortValue());  

-	//	    case (T_char<<4)+T_void  		 : return NotAConstant;   

-	//	    case (T_char<<4)+T_String  		 : return NotAConstant;   

-	//	    case (T_char<<4)+T_Object  		 : return NotAConstant;   

-		    case (T_char<<4)+T_double  		 : return Constant.fromValue((char)this.doubleValue());   

-		    case (T_char<<4)+T_float  		 : return Constant.fromValue((char)this.floatValue());   

-	//	    case (T_char<<4)+T_boolean  	 : return NotAConstant;   

-		    case (T_char<<4)+T_char  		 : return this;  

-		    case (T_char<<4)+T_int  		 : return Constant.fromValue((char)this.intValue());  

-		

-	//	    case (T_int<<4)+T_undefined  	 : return NotAConstant;   

-		    case (T_int<<4)+T_byte  		 : return Constant.fromValue((int)this.byteValue());  

-		    case (T_int<<4)+T_long  		 : return Constant.fromValue((int)this.longValue());  

-		    case (T_int<<4)+T_short  		 : return Constant.fromValue((int)this.shortValue());  

-	//	    case (T_int<<4)+T_void  		 : return NotAConstant;   

-	//	    case (T_int<<4)+T_String  		 : return NotAConstant;   

-	//	    case (T_int<<4)+T_Object  		 : return NotAConstant;   

-		    case (T_int<<4)+T_double  		 : return Constant.fromValue((int)this.doubleValue());   

-		    case (T_int<<4)+T_float  		 : return Constant.fromValue((int)this.floatValue());   

-	//	    case (T_int<<4)+T_boolean  	 	 : return NotAConstant;   

-		    case (T_int<<4)+T_char  		 : return Constant.fromValue((int)this.charValue());  

-		    case (T_int<<4)+T_int  		 	 : return this;  

-	

-		}

-	

-		return NotAConstant;

-	}

-	

-	public char charValue() {

-		

-		throw new ShouldNotImplement(Util.bind("constant.cannotCastedInto",typeName(),"char")); //$NON-NLS-1$ //$NON-NLS-2$

-	}

-	

-	public static final Constant computeConstantOperation(Constant cst, int id, int operator) {

-

-		switch (operator) {

-			case NOT	: 	

-							return Constant.fromValue(!cst.booleanValue());

-			case PLUS	:	return cst; 

-			case MINUS	:	//the two special -9223372036854775808L and -2147483648 are inlined at parseTime

-							switch (id){

-								case T_float  :	float f;

-												if ( (f= cst.floatValue()) == 0.0f)

-												{ //positive and negative 0....

-													if (Float.floatToIntBits(f) == 0)

-														return Constant.fromValue(-0.0f);

-													else

-														return Constant.fromValue(0.0f);}

-												break; //default case

-								case T_double : double d;

-												if ( (d= cst.doubleValue()) == 0.0d)

-												{ //positive and negative 0....

-													if (Double.doubleToLongBits(d) == 0)

-														return Constant.fromValue(-0.0d);

-													else

-														return Constant.fromValue(0.0d);}

-												break; //default case

-							}

-							return computeConstantOperationMINUS(Zero,T_int,operator,cst,id);

-			case TWIDDLE:	

-				switch (id){

-					case T_char :	return Constant.fromValue(~ cst.charValue());

-					case T_byte:	return Constant.fromValue(~ cst.byteValue());

-					case T_short:	return Constant.fromValue(~ cst.shortValue());

-					case T_int:		return Constant.fromValue(~ cst.intValue());

-					case T_long:	return Constant.fromValue(~ cst.longValue());

-					default : return NotAConstant;

-				} 

-			default : return NotAConstant;

-		}

-	} 

-

-	public static final Constant computeConstantOperation(Constant left, int leftId, int operator, Constant right, int rightId) {

-

-		switch (operator) {

-			case AND		: return computeConstantOperationAND		(left,leftId,operator,right,rightId);

-			case AND_AND	: return computeConstantOperationAND_AND	(left,leftId,operator,right,rightId);

-			case DIVIDE 	: return computeConstantOperationDIVIDE		(left,leftId,operator,right,rightId);

-			case GREATER	: return computeConstantOperationGREATER	(left,leftId,operator,right,rightId);

-			case GREATER_EQUAL	: return computeConstantOperationGREATER_EQUAL(left,leftId,operator,right,rightId);

-			case LEFT_SHIFT	: return computeConstantOperationLEFT_SHIFT	(left,leftId,operator,right,rightId);

-			case LESS		: return computeConstantOperationLESS		(left,leftId,operator,right,rightId);

-			case LESS_EQUAL	: return computeConstantOperationLESS_EQUAL	(left,leftId,operator,right,rightId);

-			case MINUS		: return computeConstantOperationMINUS		(left,leftId,operator,right,rightId);

-			case MULTIPLY	: return computeConstantOperationMULTIPLY	(left,leftId,operator,right,rightId);

-			case OR			: return computeConstantOperationOR			(left,leftId,operator,right,rightId);

-			case OR_OR		: return computeConstantOperationOR_OR		(left,leftId,operator,right,rightId);

-			case PLUS		: return computeConstantOperationPLUS		(left,leftId,operator,right,rightId);

-			case REMAINDER	: return computeConstantOperationREMAINDER	(left,leftId,operator,right,rightId);

-			case RIGHT_SHIFT: return computeConstantOperationRIGHT_SHIFT(left,leftId,operator,right,rightId);

-			case UNSIGNED_RIGHT_SHIFT: return computeConstantOperationUNSIGNED_RIGHT_SHIFT(left,leftId,operator,right,rightId);

-			case XOR		: return computeConstantOperationXOR		(left,leftId,operator,right,rightId);

-	

-			default : return NotAConstant;

-		}

-	}

-	

-	public static final Constant computeConstantOperationAND(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_boolean :		return Constant.fromValue(left.booleanValue() & right.booleanValue());

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() & right.charValue());

-					case T_byte:	return Constant.fromValue(left.charValue() & right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() & right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() & right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() & right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() & right.charValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() & right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() & right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() & right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() & right.longValue());

-				}

-			break;

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() & right.charValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() & right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() & right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() & right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() & right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() & right.charValue());

-					case T_byte:	return Constant.fromValue(left.intValue() & right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() & right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() & right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() & right.longValue());

-				}

-			break;

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() & right.charValue());

-					case T_byte:	return Constant.fromValue(left.longValue() & right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() & right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() & right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() & right.longValue());

-				}

-			}

-		

-		return NotAConstant;

-	} 

-		

-	public static final Constant computeConstantOperationAND_AND(Constant left, int leftId, int operator, Constant right, int rightId) {

-	

-		return Constant.fromValue(left.booleanValue() && right.booleanValue());

-	}

-		

-	public static final Constant computeConstantOperationDIVIDE(Constant left, int leftId, int operator, Constant right, int rightId) {

-		// division by zero must be handled outside this method (error reporting)

-	

-		switch (leftId){

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() / right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() / right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() / right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() / right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() / right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() / right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() / right.longValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() / right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() / right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() / right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() / right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() / right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() / right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() / right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() / right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() / right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() / right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() / right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() / right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() / right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() / right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() / right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() / right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() / right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() / right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() / right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() / right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() / right.longValue());

-				}

-			break;

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() / right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() / right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() / right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() / right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() / right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() / right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() / right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() / right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() / right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() / right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() / right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() / right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() / right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() / right.longValue());

-				}

-			break;

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() / right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() / right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() / right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() / right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() / right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() / right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() / right.longValue());

-				}

-	

-			}

-		

-		return NotAConstant;

-	} 

-		

-	public static final Constant computeConstantOperationEQUAL_EQUAL(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_boolean :

-				if (rightId == T_boolean) {

-					return Constant.fromValue(left.booleanValue() == right.booleanValue());

-				}

-			break;

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() == right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() == right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() == right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() == right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() == right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() == right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() == right.longValue());}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() == right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() == right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() == right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() == right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() == right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() == right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() == right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() == right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() == right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() == right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() == right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() == right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() == right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() == right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() == right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() == right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() == right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() == right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() == right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() == right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() == right.longValue());

-				}

-			break;			

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() == right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() == right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() == right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() == right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() == right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() == right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() == right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() == right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() == right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() == right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() == right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() == right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() == right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() == right.longValue());

-				}

-			break;		

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() == right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() == right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() == right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() == right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() == right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() == right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() == right.longValue());

-				}

-			break;

-			case T_String :

-				if (rightId == T_String) {

-					//String are interned in th compiler==>thus if two string constant

-					//get to be compared, it is an equal on the vale which is done

-					return Constant.fromValue(((StringConstant)left).compileTimeEqual((StringConstant)right));

-				}

-			break;	

-			case T_null :

-				if (rightId == T_String) { 

-					return Constant.fromValue(false);

-				} else {

-					if (rightId == T_null) { 

-						return Constant.fromValue(true);

-					}

-				}

-			}

-		

-		return Constant.fromValue(false);

-	}

-		

-	public static final Constant computeConstantOperationGREATER(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_char : 

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() > right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() > right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() > right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() > right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() > right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() > right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() > right.longValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() > right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() > right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() > right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() > right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() > right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() > right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() > right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() > right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() > right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() > right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() > right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() > right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() > right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() > right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() > right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() > right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() > right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() > right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() > right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() > right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() > right.longValue());

-				}

-			break;			

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() > right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() > right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() > right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() > right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() > right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() > right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() > right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() > right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() > right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() > right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() > right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() > right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() > right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() > right.longValue());

-				}

-			break;		

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() > right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() > right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() > right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() > right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() > right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() > right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() > right.longValue());

-				}

-				

-			}

-		

-		return NotAConstant;

-	}

-

-	public static final Constant computeConstantOperationGREATER_EQUAL(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_char : 

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() >= right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() >= right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() >= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() >= right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() >= right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() >= right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() >= right.longValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() >= right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() >= right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() >= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() >= right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() >= right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() >= right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() >= right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() >= right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() >= right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() >= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() >= right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() >= right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() >= right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() >= right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() >= right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() >= right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() >= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() >= right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() >= right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() >= right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() >= right.longValue());

-				}

-			break;			

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() >= right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() >= right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() >= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() >= right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() >= right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() >= right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() >= right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() >= right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() >= right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() >= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() >= right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() >= right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() >= right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() >= right.longValue());

-				}

-			break;		

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() >= right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() >= right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() >= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() >= right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() >= right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() >= right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() >= right.longValue());

-				}

-				

-			}

-		

-		return NotAConstant;

-	}  

-		

-	public static final Constant computeConstantOperationLEFT_SHIFT(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() << right.charValue());

-					case T_byte:	return Constant.fromValue(left.charValue() << right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() << right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() << right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() << right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() << right.charValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() << right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() << right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() << right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() << right.longValue());

-				}

-			break;

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() << right.charValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() << right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() << right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() << right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() << right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() << right.charValue());

-					case T_byte:	return Constant.fromValue(left.intValue() << right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() << right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() << right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() << right.longValue());

-				}

-			break;

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() << right.charValue());

-					case T_byte:	return Constant.fromValue(left.longValue() << right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() << right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() << right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() << right.longValue());

-				}

-	

-			}

-	

-		return NotAConstant;

-	} 

-		

-	public static final Constant computeConstantOperationLESS(Constant left, int leftId, int operator, Constant right, int rightId) { 

-		

-		switch (leftId){

-			case T_char : 

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() < right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() < right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() < right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() < right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() < right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() < right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() < right.longValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() < right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() < right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() < right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() < right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() < right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() < right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() < right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() < right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() < right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() < right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() < right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() < right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() < right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() < right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() < right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() < right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() < right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() < right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() < right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() < right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() < right.longValue());

-				}

-			break;			

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() < right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() < right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() < right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() < right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() < right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() < right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() < right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() < right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() < right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() < right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() < right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() < right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() < right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() < right.longValue());

-				}

-			break;		

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() < right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() < right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() < right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() < right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() < right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() < right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() < right.longValue());

-				}

-				

-			}

-		

-		return NotAConstant;

-	}

-		

-	public static final Constant computeConstantOperationLESS_EQUAL(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_char : 

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() <= right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() <= right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() <= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() <= right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() <= right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() <= right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() <= right.longValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() <= right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() <= right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() <= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() <= right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() <= right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() <= right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() <= right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() <= right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() <= right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() <= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() <= right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() <= right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() <= right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() <= right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() <= right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() <= right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() <= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() <= right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() <= right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() <= right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() <= right.longValue());

-				}

-			break;			

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() <= right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() <= right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() <= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() <= right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() <= right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() <= right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() <= right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() <= right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() <= right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() <= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() <= right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() <= right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() <= right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() <= right.longValue());

-				}

-			break;		

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() <= right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() <= right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() <= right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() <= right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() <= right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() <= right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() <= right.longValue());

-				}

-			}

-		

-		return NotAConstant;

-	}  

-	

-	public static final Constant computeConstantOperationMINUS(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_char : 

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() - right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() - right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() - right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() - right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() - right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() - right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() - right.longValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() - right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() - right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() - right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() - right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() - right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() - right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() - right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() - right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() - right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() - right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() - right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() - right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() - right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() - right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() - right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() - right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() - right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() - right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() - right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() - right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() - right.longValue());

-				}

-			break;			

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() - right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() - right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() - right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() - right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() - right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() - right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() - right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() - right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() - right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() - right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() - right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() - right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() - right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() - right.longValue());

-				}

-			break;		

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() - right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() - right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() - right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() - right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() - right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() - right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() - right.longValue());

-				}

-				

-			}

-		

-		return NotAConstant;

-	}

-	

-	public static final Constant computeConstantOperationMULTIPLY(Constant left, int leftId, int operator, Constant right, int rightId) {

-	

-		switch (leftId){

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() * right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() * right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() * right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() * right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() * right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() * right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() * right.longValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() * right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() * right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() * right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() * right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() * right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() * right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() * right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() * right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() * right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() * right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() * right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() * right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() * right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() * right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() * right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() * right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() * right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() * right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() * right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() * right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() * right.longValue());

-				}

-			break;

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() * right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() * right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() * right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() * right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() * right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() * right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() * right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() * right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() * right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() * right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() * right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() * right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() * right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() * right.longValue());

-				}

-			break;

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() * right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() * right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() * right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() * right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() * right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() * right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() * right.longValue());

-				}

-			}

-	

-		return NotAConstant;

-	}

-	

-	public static final Constant computeConstantOperationOR(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_boolean :		return Constant.fromValue(left.booleanValue() | right.booleanValue());

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() | right.charValue());

-					case T_byte:	return Constant.fromValue(left.charValue() | right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() | right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() | right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() | right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() | right.charValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() | right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() | right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() | right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() | right.longValue());

-				}

-			break;

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() | right.charValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() | right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() | right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() | right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() | right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() | right.charValue());

-					case T_byte:	return Constant.fromValue(left.intValue() | right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() | right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() | right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() | right.longValue());

-				}

-			break;

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() | right.charValue());

-					case T_byte:	return Constant.fromValue(left.longValue() | right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() | right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() | right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() | right.longValue());

-				}

-	

-			}	

-	

-		return NotAConstant;

-	}

-	

-	public static final Constant computeConstantOperationOR_OR(Constant left, int leftId, int operator, Constant right, int rightId) {

-	

-		return Constant.fromValue(left.booleanValue() || right.booleanValue());

-	}

-		

-	public static final Constant computeConstantOperationPLUS(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_Object :

-				if (rightId == T_String) {

-					return Constant.fromValue(left.stringValue() + right.stringValue());

-				}

-			case T_boolean :

-				if (rightId == T_String) {

-					return Constant.fromValue(left.stringValue() + right.stringValue());

-				}

-			break;

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() + right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() + right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() + right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() + right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() + right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() + right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() + right.longValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() + right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() + right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() + right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() + right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() + right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() + right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() + right.longValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue()); 

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() + right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() + right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() + right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() + right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() + right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() + right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() + right.longValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() + right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() + right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() + right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() + right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() + right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() + right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() + right.longValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue()); 

-				}

-	

-			break;			

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() + right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() + right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() + right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() + right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() + right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() + right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() + right.longValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() + right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() + right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() + right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() + right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() + right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() + right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() + right.longValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue());

-				}

-			break;		

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() + right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() + right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() + right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() + right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() + right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() + right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() + right.longValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue()); 

-				}

-			break;

-			case T_String :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_float:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_double:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_byte:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_short:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_int:		return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_long:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue()); 

-					case T_boolean:	return Constant.fromValue(left.stringValue() + right.stringValue());

-				}

-			break;	

-			case T_null :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_float:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_double:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_byte:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_short:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_int:		return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_long:	return Constant.fromValue(left.stringValue() + right.stringValue());

-					case T_String:	return Constant.fromValue(left.stringValue() + right.stringValue()); 

-				}

-				

-			}

-		

-		return NotAConstant;

-	}

-		

-	public static final Constant computeConstantOperationREMAINDER(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_char : 

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() % right.charValue());

-					case T_float:	return Constant.fromValue(left.charValue() % right.floatValue());

-					case T_double:	return Constant.fromValue(left.charValue() % right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.charValue() % right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() % right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() % right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() % right.longValue());

-				}

-			break;

-			case T_float :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.floatValue() % right.charValue());

-					case T_float:	return Constant.fromValue(left.floatValue() % right.floatValue());

-					case T_double:	return Constant.fromValue(left.floatValue() % right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.floatValue() % right.byteValue());

-					case T_short:	return Constant.fromValue(left.floatValue() % right.shortValue());

-					case T_int:		return Constant.fromValue(left.floatValue() % right.intValue());

-					case T_long:	return Constant.fromValue(left.floatValue() % right.longValue());

-				}

-			break;

-			case T_double :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.doubleValue() % right.charValue());

-					case T_float:	return Constant.fromValue(left.doubleValue() % right.floatValue());

-					case T_double:	return Constant.fromValue(left.doubleValue() % right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.doubleValue() % right.byteValue());

-					case T_short:	return Constant.fromValue(left.doubleValue() % right.shortValue());

-					case T_int:		return Constant.fromValue(left.doubleValue() % right.intValue());

-					case T_long:	return Constant.fromValue(left.doubleValue() % right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() % right.charValue());

-					case T_float:	return Constant.fromValue(left.byteValue() % right.floatValue());

-					case T_double:	return Constant.fromValue(left.byteValue() % right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() % right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() % right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() % right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() % right.longValue());

-				}

-			break;			

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() % right.charValue());

-					case T_float:	return Constant.fromValue(left.shortValue() % right.floatValue());

-					case T_double:	return Constant.fromValue(left.shortValue() % right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() % right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() % right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() % right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() % right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() % right.charValue());

-					case T_float:	return Constant.fromValue(left.intValue() % right.floatValue());

-					case T_double:	return Constant.fromValue(left.intValue() % right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.intValue() % right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() % right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() % right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() % right.longValue());

-				}

-			break;		

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() % right.charValue());

-					case T_float:	return Constant.fromValue(left.longValue() % right.floatValue());

-					case T_double:	return Constant.fromValue(left.longValue() % right.doubleValue());

-					case T_byte:	return Constant.fromValue(left.longValue() % right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() % right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() % right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() % right.longValue());

-				}

-				

-			}

-		

-		return NotAConstant;

-	} 

-	

-	public static final Constant computeConstantOperationRIGHT_SHIFT(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() >> right.charValue());

-					case T_byte:	return Constant.fromValue(left.charValue() >> right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() >> right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() >> right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() >> right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() >> right.charValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() >> right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() >> right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() >> right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() >> right.longValue());

-				}

-			break;

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() >> right.charValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() >> right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() >> right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() >> right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() >> right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() >> right.charValue());

-					case T_byte:	return Constant.fromValue(left.intValue() >> right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() >> right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() >> right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() >> right.longValue());

-				}

-			break;

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() >> right.charValue());

-					case T_byte:	return Constant.fromValue(left.longValue() >> right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() >> right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() >> right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() >> right.longValue());

-				}

-	

-			}

-		

-		return NotAConstant;

-	}

-

-	public static final Constant computeConstantOperationUNSIGNED_RIGHT_SHIFT(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() >>> right.charValue());

-					case T_byte:	return Constant.fromValue(left.charValue() >>> right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() >>> right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() >>> right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() >>> right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() >>> right.charValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() >>> right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() >>> right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() >>> right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() >>> right.longValue());

-				}

-			break;

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() >>> right.charValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() >>> right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() >>> right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() >>> right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() >>> right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() >>> right.charValue());

-					case T_byte:	return Constant.fromValue(left.intValue() >>> right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() >>> right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() >>> right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() >>> right.longValue());

-				}

-			break;

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() >>> right.charValue());

-					case T_byte:	return Constant.fromValue(left.longValue() >>> right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() >>> right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() >>> right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() >>> right.longValue());

-				}

-	

-			}

-	

-		return NotAConstant;

-	}

-	

-	public static final Constant computeConstantOperationXOR(Constant left, int leftId, int operator, Constant right, int rightId) {

-		

-		switch (leftId){

-			case T_boolean :		return Constant.fromValue(left.booleanValue() ^ right.booleanValue());

-			case T_char :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.charValue() ^ right.charValue());

-					case T_byte:	return Constant.fromValue(left.charValue() ^ right.byteValue());

-					case T_short:	return Constant.fromValue(left.charValue() ^ right.shortValue());

-					case T_int:		return Constant.fromValue(left.charValue() ^ right.intValue());

-					case T_long:	return Constant.fromValue(left.charValue() ^ right.longValue());

-				}

-			break;

-			case T_byte :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.byteValue() ^ right.charValue());

-					case T_byte:	return Constant.fromValue(left.byteValue() ^ right.byteValue());

-					case T_short:	return Constant.fromValue(left.byteValue() ^ right.shortValue());

-					case T_int:		return Constant.fromValue(left.byteValue() ^ right.intValue());

-					case T_long:	return Constant.fromValue(left.byteValue() ^ right.longValue());

-				}

-			break;

-			case T_short :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.shortValue() ^ right.charValue());

-					case T_byte:	return Constant.fromValue(left.shortValue() ^ right.byteValue());

-					case T_short:	return Constant.fromValue(left.shortValue() ^ right.shortValue());

-					case T_int:		return Constant.fromValue(left.shortValue() ^ right.intValue());

-					case T_long:	return Constant.fromValue(left.shortValue() ^ right.longValue());

-				}

-			break;

-			case T_int :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.intValue() ^ right.charValue());

-					case T_byte:	return Constant.fromValue(left.intValue() ^ right.byteValue());

-					case T_short:	return Constant.fromValue(left.intValue() ^ right.shortValue());

-					case T_int:		return Constant.fromValue(left.intValue() ^ right.intValue());

-					case T_long:	return Constant.fromValue(left.intValue() ^ right.longValue());

-				}

-			break;

-			case T_long :

-				switch (rightId){

-					case T_char :	return Constant.fromValue(left.longValue() ^ right.charValue());

-					case T_byte:	return Constant.fromValue(left.longValue() ^ right.byteValue());

-					case T_short:	return Constant.fromValue(left.longValue() ^ right.shortValue());

-					case T_int:		return Constant.fromValue(left.longValue() ^ right.intValue());

-					case T_long:	return Constant.fromValue(left.longValue() ^ right.longValue());

-				}

-			}

-	

-		return NotAConstant;

-	}

-

-	public double doubleValue() {

-

-		throw new ShouldNotImplement(Util.bind("constant.cannotCastedInto",typeName(),"double")); //$NON-NLS-2$ //$NON-NLS-1$

-	}

-

-	public float floatValue() {

-

-		throw new ShouldNotImplement(Util.bind("constant.cannotCastedInto",typeName(),"float")); //$NON-NLS-2$ //$NON-NLS-1$

-	}

-

-	public static Constant fromValue(byte value) {

-

-		return new ByteConstant(value);

-	}

-

-	public static Constant fromValue(char value) {

-

-		return new CharConstant(value);

-	}

-

-	public static Constant fromValue(double value) {

-

-		return new DoubleConstant(value);

-	}

-

-	public static Constant fromValue(float value) {

-

-		return new FloatConstant(value);

-	}

-

-	public static Constant fromValue(int value) {

-

-		return new IntConstant(value);

-	}

-

-	public static Constant fromValue(long value) {

-

-		return new LongConstant(value);

-	}

-

-	public static Constant fromValue(String value) {

-		

-		return new StringConstant(value);

-	}

-

-	public static Constant fromValue(short value) {

-

-		return new ShortConstant(value);

-	}

-

-	public static Constant fromValue(boolean value) {

-

-		return new BooleanConstant(value);

-	}

-

-	public int intValue() {

-

-		throw new ShouldNotImplement(Util.bind("constant.cannotCastedInto",typeName(),"int")); //$NON-NLS-2$ //$NON-NLS-1$

-	}

-

-	public long longValue() {

-

-		throw new ShouldNotImplement(Util.bind("constant.cannotCastedInto",typeName(),"long")); //$NON-NLS-2$ //$NON-NLS-1$

-	}

-

-	public short shortValue() {

-

-		throw new ShouldNotImplement(Util.bind("constant.cannotConvertedTo",typeName(),"short")); //$NON-NLS-2$ //$NON-NLS-1$

-	}

-

-	public String stringValue() {

-

-		throw new ShouldNotImplement(Util.bind("constant.cannotConvertedTo",typeName(),"String")); //$NON-NLS-1$ //$NON-NLS-2$

-	}

-

-	public String toString(){

-	

-		if (this == NotAConstant) return "(Constant) NotAConstant"; //$NON-NLS-1$

-		return super.toString(); }

-

-	public abstract int typeID();

-

-	public String typeName() {

-		switch (typeID()) {

-			case T_int : return "int"; //$NON-NLS-1$

-			case T_byte : return "byte"; //$NON-NLS-1$

-			case T_short : return "short"; //$NON-NLS-1$

-			case T_char : return "char"; //$NON-NLS-1$

-			case T_float : return "float"; //$NON-NLS-1$

-			case T_double : return "double"; //$NON-NLS-1$

-			case T_boolean : return "boolean"; //$NON-NLS-1$

-			case T_long : return "long";//$NON-NLS-1$

-			case T_String : return "java.lang.String"; //$NON-NLS-1$

-			case T_null : return "null";	 //$NON-NLS-1$

-			default: return "unknown"; //$NON-NLS-1$

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/DoubleConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/DoubleConstant.js
deleted file mode 100644
index 17fbbfc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/DoubleConstant.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-public class DoubleConstant extends Constant {

-	

-	double value;

-	

-	public DoubleConstant(double value) {

-		this.value = value;

-	}

-	

-	public byte byteValue() {

-		return (byte) value;

-	}

-	

-	public char charValue() {

-		return (char) value;

-	}

-	

-	public double doubleValue() {

-		return this.value;

-	}

-	

-	public float floatValue() {

-		return (float) value;

-	}

-	

-	public int intValue() {

-		return (int) value;

-	}

-	

-	public long longValue() {

-		return (long) value;

-	}

-	

-	public short shortValue() {

-		return (short) value;

-	}

-	

-	public String stringValue() {

-		String s = Double.toString(value);

-		if (s == null) return "null"; //$NON-NLS-1$

-		return s;

-	}

-	

-	public String toString() {

-		if (this == NotAConstant)

-			return "(Constant) NotAConstant"; //$NON-NLS-1$

-		return "(double)" + value;  //$NON-NLS-1$

-	}

-

-	public int typeID() {

-		return T_double;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/FloatConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/FloatConstant.js
deleted file mode 100644
index c01dd13..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/FloatConstant.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-public class FloatConstant extends Constant {

-	

-	float value;

-	

-	public FloatConstant(float value) {

-		this.value = value;

-	}

-	

-	public byte byteValue() {

-		return (byte) value;

-	}

-	

-	public char charValue() {

-		return (char) value;

-	}

-	

-	public double doubleValue() {

-		return value; // implicit cast to return type

-	}

-	

-	public float floatValue() {

-		return this.value;

-	}

-	

-	public int intValue() {

-		return (int) value;

-	}

-	

-	public long longValue() {

-		return (long) value;

-	}

-	

-	public short shortValue() {

-		return (short) value;

-	}

-	

-	public String stringValue() {

-		String s = Float.toString(value);

-		if (s == null) return "null"; //$NON-NLS-1$

-		return s;

-	}

-

-	public String toString() {

-		return "(float)" + value; //$NON-NLS-1$

-	} 

-

-	public int typeID() {

-		return T_float;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ITypeRequestor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ITypeRequestor.js
deleted file mode 100644
index 4da3ae5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ITypeRequestor.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-import org.eclipse.wst.jsdt.internal.compiler.env.IBinaryType;

-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;

-import org.eclipse.wst.jsdt.internal.compiler.env.ISourceType;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding;

-

-public interface ITypeRequestor {

-	

-	/**

-	 * Accept the resolved binary form for the requested type.

-	 */

-	void accept(IBinaryType binaryType, PackageBinding packageBinding);

-

-	/**

-	 * Accept the requested type's compilation unit.

-	 */

-	void accept(ICompilationUnit unit);

-

-	/**

-	 * Accept the unresolved source forms for the requested type.

-	 * Note that the multiple source forms can be answered, in case the target compilation unit

-	 * contains multiple types. The first one is then guaranteed to be the one corresponding to the

-	 * requested type.

-	 */

-	void accept(ISourceType[] sourceType, PackageBinding packageBinding);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/IntConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/IntConstant.js
deleted file mode 100644
index e865e94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/IntConstant.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-public class IntConstant extends Constant {

-	

-	int value;

-	

-	public IntConstant(int value) {

-		this.value = value;

-	}

-	

-	public byte byteValue() {

-		return (byte) value;

-	}

-	

-	public char charValue() {

-		return (char) value;

-	}

-	

-	public double doubleValue() {

-		return value; // implicit cast to return type

-	}

-	

-	public float floatValue() {

-		return value; // implicit cast to return type

-	}

-	

-	public int intValue() {

-		return value;

-	}

-	

-	public long longValue() {

-		return value; // implicit cast to return type

-	}

-	

-	public short shortValue() {

-		return (short) value;

-	}

-	

-	public String stringValue() {

-		//spec 15.17.11

-		String s = new Integer(value).toString();

-		if (s == null) return "null"; //$NON-NLS-1$

-		return s;

-	}

-

-	public String toString() {

-		return "(int)" + value; //$NON-NLS-1$

-	} 

-

-	public int typeID() {

-		return T_int;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/LongConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/LongConstant.js
deleted file mode 100644
index a01a5c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/LongConstant.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-public class LongConstant extends Constant {

-	long value;

-public LongConstant(long value) {

-	this.value = value;

-}

-public byte byteValue() {

-	return (byte) value;

-}

-public char charValue() {

-	return (char) value;

-}

-public double doubleValue() {

-	return value; // implicit cast to return type

-}

-public float floatValue() {

-	return value; // implicit cast to return type

-}

-public int intValue() {

-	return (int) value;

-}

-public long longValue() {

-	return value; 

-}

-public short shortValue() {

-	return (short) value;

-}

-public String stringValue() {

-	//spec 15.17.11

-	

-	String s = new Long(value).toString() ;

-	if (s == null) return "null"; //$NON-NLS-1$

-	return s;

-}

-public String toString(){

-

-	return "(long)" + value ; } //$NON-NLS-1$

-public int typeID() {

-	return T_long;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ReferenceContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ReferenceContext.js
deleted file mode 100644
index 1df477b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ReferenceContext.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-/*

- * Implementors are valid compilation contexts from which we can

- * escape in case of error:

- *	For example: method, type or compilation unit.

- */

-

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-

-public interface ReferenceContext {

-	void abort(int abortLevel, IProblem problem);

-	CompilationResult compilationResult();

-	void tagAsHavingErrors();

-	boolean hasErrors();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ShortConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ShortConstant.js
deleted file mode 100644
index da56229..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/ShortConstant.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-public class ShortConstant extends Constant {

-	short value;

-public ShortConstant(short value) {

-	this.value = value;

-}

-public byte byteValue() {

-	return (byte) value;

-}

-public char charValue() {

-	return (char) value;

-}

-public double doubleValue() {

-	return value; // implicit cast to return type

-}

-public float floatValue() {

-	return value; // implicit cast to return type

-}

-public int intValue() {

-	return value; // implicit cast to return type

-}

-public long longValue() {

-	return value; // implicit cast to return type

-}

-public short shortValue() {

-	return value;

-}

-public String stringValue() {

-	//spec 15.17.11

-	

-	String s = new Integer(value).toString() ;

-	if (s == null) return "null"; //$NON-NLS-1$

-	return s;

-}

-public String toString(){

-

-	return "(short)" + value ; } //$NON-NLS-1$

-public int typeID() {

-	return T_short;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/StringConstant.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/StringConstant.js
deleted file mode 100644
index 7c917d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/impl/StringConstant.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.impl;

-

-public class StringConstant extends Constant {

-	public String value;

-    

-public StringConstant(String value) {

-	this.value = value ;

-}

-public boolean compileTimeEqual(StringConstant right){

-	//String are intermed in the compiler==>thus if two string constant

-	//get to be compared, it is an equal on the vale which is done

-	if (this.value == null) {

-		return right.value == null;

-	}

-	return this.value.equals(right.value);

-}

-public String stringValue() {

-	//spec 15.17.11

-

-	//the next line do not go into the toString() send....!

-	return value ;

-

-	/*

-	String s = value.toString() ;

-	if (s == null)

-		return "null";

-	else

-		return s;

-	*/

-	

-}

-public String toString(){

-

-	return "(String)\"" + value +"\""; } //$NON-NLS-2$ //$NON-NLS-1$

-public int typeID() {

-	return T_String;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ArrayBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ArrayBinding.js
deleted file mode 100644
index 664e878..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ArrayBinding.js
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import java.util.Map;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-

-public final class ArrayBinding extends TypeBinding {

-	// creation and initialization of the length field

-	// the declaringClass of this field is intentionally set to null so it can be distinguished.

-	public static final FieldBinding ArrayLength = new FieldBinding(LENGTH, IntBinding, AccPublic | AccFinal, null, Constant.NotAConstant);

-

-	public TypeBinding leafComponentType;

-	public int dimensions;

-	LookupEnvironment environment;	

-	char[] constantPoolName;

-	char[] genericTypeSignature;

-	

-public ArrayBinding(TypeBinding type, int dimensions, LookupEnvironment environment) {

-	this.tagBits |= IsArrayType;

-	this.leafComponentType = type;

-	this.dimensions = dimensions;

-	this.environment = environment;

-	if (type instanceof UnresolvedReferenceBinding)

-		((UnresolvedReferenceBinding) type).addWrapper(this);

-	else

-    	this.tagBits |= type.tagBits & (HasTypeVariable | HasWildcard);

-}

-

-/**

- * Collect the substitutes into a map for certain type variables inside the receiver type

- * e.g.   Collection<T>.findSubstitute(T, Collection<List<X>>):   T --> List<X>

- */

-public void collectSubstitutes(TypeBinding otherType, Map substitutes) {

-    if (otherType.isArrayType()) {

-        int otherDim = otherType.dimensions();

-        if (otherDim == this.dimensions) {

-		    this.leafComponentType.collectSubstitutes(otherType.leafComponentType(), substitutes);

-        } else if (otherDim > this.dimensions) {

-            ArrayBinding otherReducedType = this.environment.createArrayType(otherType.leafComponentType(), otherDim - this.dimensions);

-            this.leafComponentType.collectSubstitutes(otherReducedType, substitutes);

-        }

-    } 

-}

-	

-/**

- * Answer the receiver's constant pool name.

- * NOTE: This method should only be used during/after code gen.

- * e.g. '[Ljava/lang/Object;'

- */

-public char[] constantPoolName() {

-	if (constantPoolName != null)

-		return constantPoolName;

-

-	char[] brackets = new char[dimensions];

-	for (int i = dimensions - 1; i >= 0; i--) brackets[i] = '[';

-	return constantPoolName = CharOperation.concat(brackets, leafComponentType.signature());

-}

-public String debugName() {

-	StringBuffer brackets = new StringBuffer(dimensions * 2);

-	for (int i = dimensions; --i >= 0;)

-		brackets.append("[]"); //$NON-NLS-1$

-	return leafComponentType.debugName() + brackets.toString();

-}

-public int dimensions() {

-	return this.dimensions;

-}

-

-/* Answer an array whose dimension size is one less than the receiver.

-*

-* When the receiver's dimension size is one then answer the leaf component type.

-*/

-

-public TypeBinding elementsType() {

-	if (this.dimensions == 1) return this.leafComponentType;

-	return this.environment.createArrayType(this.leafComponentType, this.dimensions - 1);

-}

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#erasure()

- */

-public TypeBinding erasure() {

-    TypeBinding erasedType = this.leafComponentType.erasure();

-    if (this.leafComponentType != erasedType)

-        return this.environment.createArrayType(erasedType, this.dimensions);

-    return this;

-}

-public LookupEnvironment environment() {

-    return this.environment;

-}

-

-public char[] genericTypeSignature() {

-	

-    if (this.genericTypeSignature == null) {

-		char[] brackets = new char[dimensions];

-		for (int i = dimensions - 1; i >= 0; i--) brackets[i] = '[';

-		this.genericTypeSignature = CharOperation.concat(brackets, leafComponentType.genericTypeSignature());

-    }

-    return this.genericTypeSignature;

-}

-

-public PackageBinding getPackage() {

-	return leafComponentType.getPackage();

-}

-public int hashCode() {

-	return this.leafComponentType == null ? super.hashCode() : this.leafComponentType.hashCode();

-}

-/* Answer true if the receiver type can be assigned to the argument type (right)

-*/

-public boolean isCompatibleWith(TypeBinding right) {

-	if (this == right)

-		return true;

-

-	if (right.isArrayType()) {

-		ArrayBinding rightArray = (ArrayBinding) right;

-		if (rightArray.leafComponentType.isBaseType())

-			return false; // relying on the fact that all equal arrays are identical

-		if (dimensions == rightArray.dimensions)

-			return leafComponentType.isCompatibleWith(rightArray.leafComponentType);

-		if (dimensions < rightArray.dimensions)

-			return false; // cannot assign 'String[]' into 'Object[][]' but can assign 'byte[][]' into 'Object[]'

-	} else {

-		if (right.isBaseType())

-			return false;

-		if (right.isWildcard()) {

-		    return ((WildcardBinding) right).boundCheck(this);

-		}

-	}

-	//Check dimensions - Java does not support explicitly sized dimensions for types.

-	//However, if it did, the type checking support would go here.

-	switch (right.leafComponentType().id) {

-	    case T_JavaLangObject :

-	    case T_JavaLangCloneable :

-	    case T_JavaIoSerializable :

-	        return true;

-	}

-	return false;

-}

-

-/**

- * Returns true if a type is identical to another one,

- * or for generic types, true if compared to its raw type.

- */

-public boolean isEquivalentTo(TypeBinding otherType) {

-    if (this == otherType) return true;

-    if (otherType == null) return false;

-    if (otherType.isWildcard()) // wildcard

-		return ((WildcardBinding) otherType).boundCheck(this);

-	return false;

-

-}

-public TypeBinding leafComponentType(){

-	return leafComponentType;

-}

-

-/* API

-* Answer the problem id associated with the receiver.

-* NoError if the receiver is a valid binding.

-*/

-

-public int problemId() {

-	return leafComponentType.problemId();

-}

-/**

-* Answer the source name for the type.

-* In the case of member types, as the qualified name from its top level type.

-* For example, for a member type N defined inside M & A: "A.M.N".

-*/

-

-public char[] qualifiedSourceName() {

-	char[] brackets = new char[dimensions * 2];

-	for (int i = dimensions * 2 - 1; i >= 0; i -= 2) {

-		brackets[i] = ']';

-		brackets[i - 1] = '[';

-	}

-	return CharOperation.concat(leafComponentType.qualifiedSourceName(), brackets);

-}

-public char[] readableName() /* java.lang.Object[] */ {

-	char[] brackets = new char[dimensions * 2];

-	for (int i = dimensions * 2 - 1; i >= 0; i -= 2) {

-		brackets[i] = ']';

-		brackets[i - 1] = '[';

-	}

-	return CharOperation.concat(leafComponentType.readableName(), brackets);

-}

-public char[] shortReadableName(){

-	char[] brackets = new char[dimensions * 2];

-	for (int i = dimensions * 2 - 1; i >= 0; i -= 2) {

-		brackets[i] = ']';

-		brackets[i - 1] = '[';

-	}

-	return CharOperation.concat(leafComponentType.shortReadableName(), brackets);

-}

-public char[] sourceName() {

-	char[] brackets = new char[dimensions * 2];

-	for (int i = dimensions * 2 - 1; i >= 0; i -= 2) {

-		brackets[i] = ']';

-		brackets[i - 1] = '[';

-	}

-	return CharOperation.concat(leafComponentType.sourceName(), brackets);

-}

-public void swapUnresolved(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType, LookupEnvironment env) {

-	if (this.leafComponentType == unresolvedType) {

-		this.leafComponentType = resolvedType.isGenericType() ? env.createRawType(resolvedType, null) : resolvedType;

-		this.tagBits |= this.leafComponentType.tagBits & (HasTypeVariable | HasWildcard);

-	}

-}

-public String toString() {

-	return leafComponentType != null ? debugName() : "NULL TYPE ARRAY"; //$NON-NLS-1$

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BaseTypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BaseTypeBinding.js
deleted file mode 100644
index ed30230..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BaseTypeBinding.js
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public final class BaseTypeBinding extends TypeBinding {

-

-	public char[] simpleName;

-	private char[] constantPoolName;

-

-	BaseTypeBinding(int id, char[] name, char[] constantPoolName) {

-

-		this.tagBits |= IsBaseType;

-		this.id = id;

-		this.simpleName = name;

-		this.constantPoolName = constantPoolName;

-	}

-

-	/* Answer the receiver's constant pool name.

-	*/

-	public char[] constantPoolName() {

-

-		return constantPoolName;

-	}

-

-	public PackageBinding getPackage() {

-

-		return null;

-	}

-

-	/* Answer true if the receiver type can be assigned to the argument type (right)

-	*/

-	public final boolean isCompatibleWith(TypeBinding right) {

-

-		if (this == right)

-			return true;

-		if (!right.isBaseType())

-			return this == NullBinding;

-

-		switch (right.id) {

-			case T_boolean :

-			case T_byte :

-			case T_char :

-				return false;

-			case T_double :

-				switch (id) {

-					case T_byte :

-					case T_char :

-					case T_short :

-					case T_int :

-					case T_long :

-					case T_float :

-						return true;

-					default :

-						return false;

-				}

-			case T_float :

-				switch (id) {

-					case T_byte :

-					case T_char :

-					case T_short :

-					case T_int :

-					case T_long :

-						return true;

-					default :

-						return false;

-				}

-			case T_long :

-				switch (id) {

-					case T_byte :

-					case T_char :

-					case T_short :

-					case T_int :

-						return true;

-					default :

-						return false;

-				}

-			case T_int :

-				switch (id) {

-					case T_byte :

-					case T_char :

-					case T_short :

-						return true;

-					default :

-						return false;

-				}

-			case T_short :

-				return (id == T_byte);

-		}

-		return false;

-	}

-

-	public static final boolean isNarrowing(int left, int right) {

-

-		//can "left" store a "right" using some narrowing conversion

-		//(is left smaller than right)

-		switch (left) {

-			case T_boolean :

-				return right == T_boolean;

-			case T_char :

-			case T_byte :

-				if (right == T_byte)

-					return true;

-			case T_short :

-				if (right == T_short)

-					return true;

-				if (right == T_char)

-					return true;

-			case T_int :

-				if (right == T_int)

-					return true;

-			case T_long :

-				if (right == T_long)

-					return true;

-			case T_float :

-				if (right == T_float)

-					return true;

-			case T_double :

-				if (right == T_double)

-					return true;

-			default :

-				return false;

-		}

-	}

-

-	public static final boolean isWidening(int left, int right) {

-

-		//can "left" store a "right" using some widening conversion

-		//(is left "bigger" than right)

-		switch (left) {

-			case T_boolean :

-				return right == T_boolean;

-			case T_char :

-				return right == T_char;

-			case T_double :

-				if (right == T_double)

-					return true;

-			case T_float :

-				if (right == T_float)

-					return true;

-			case T_long :

-				if (right == T_long)

-					return true;

-			case T_int :

-				if (right == T_int)

-					return true;

-				if (right == T_char)

-					return true;

-			case T_short :

-				if (right == T_short)

-					return true;

-			case T_byte :

-				if (right == T_byte)

-					return true;

-			default :

-				return false;

-		}

-	}

-

-	public char[] qualifiedSourceName() {

-		return simpleName;

-	}

-

-	public char[] readableName() {

-		return simpleName;

-	}

-

-	public char[] shortReadableName() {

-		return simpleName;

-	}

-

-	public char[] sourceName() {

-		return simpleName;

-	}

-

-	public String toString() {

-		return new String(constantPoolName) + " (id=" + id + ")"; //$NON-NLS-1$ //$NON-NLS-2$

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BaseTypes.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BaseTypes.js
deleted file mode 100644
index b0f39cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BaseTypes.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public interface BaseTypes {

-	final BaseTypeBinding IntBinding = new BaseTypeBinding(TypeIds.T_int, "int".toCharArray(), new char[] {'I'}); //$NON-NLS-1$

-	final BaseTypeBinding ByteBinding = new BaseTypeBinding(TypeIds.T_byte, "byte".toCharArray(), new char[] {'B'}); //$NON-NLS-1$

-	final BaseTypeBinding ShortBinding = new BaseTypeBinding(TypeIds.T_short, "short".toCharArray(), new char[] {'S'}); //$NON-NLS-1$

-	final BaseTypeBinding CharBinding = new BaseTypeBinding(TypeIds.T_char, "char".toCharArray(), new char[] {'C'}); //$NON-NLS-1$

-	final BaseTypeBinding LongBinding = new BaseTypeBinding(TypeIds.T_long, "long".toCharArray(), new char[] {'J'}); //$NON-NLS-1$

-	final BaseTypeBinding FloatBinding = new BaseTypeBinding(TypeIds.T_float, "float".toCharArray(), new char[] {'F'}); //$NON-NLS-1$

-	final BaseTypeBinding DoubleBinding = new BaseTypeBinding(TypeIds.T_double, "double".toCharArray(), new char[] {'D'}); //$NON-NLS-1$

-	final BaseTypeBinding BooleanBinding = new BaseTypeBinding(TypeIds.T_boolean, "boolean".toCharArray(), new char[] {'Z'}); //$NON-NLS-1$

-	final BaseTypeBinding NullBinding = new BaseTypeBinding(TypeIds.T_null, "null".toCharArray(), new char[] {'N'}); //N stands for null even if it is never internally used //$NON-NLS-1$

-	final BaseTypeBinding VoidBinding = new BaseTypeBinding(TypeIds.T_void, "void".toCharArray(), new char[] {'V'}); //$NON-NLS-1$

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BinaryTypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BinaryTypeBinding.js
deleted file mode 100644
index d7eb557..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BinaryTypeBinding.js
+++ /dev/null
@@ -1,819 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ConstructorDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.env.IBinaryField;

-import org.eclipse.wst.jsdt.internal.compiler.env.IBinaryMethod;

-import org.eclipse.wst.jsdt.internal.compiler.env.IBinaryNestedType;

-import org.eclipse.wst.jsdt.internal.compiler.env.IBinaryType;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-

-/*

-Not all fields defined by this type are initialized when it is created.

-Some are initialized only when needed.

-

-Accessors have been provided for some public fields so all TypeBindings have the same API...

-but access public fields directly whenever possible.

-Non-public fields have accessors which should be used everywhere you expect the field to be initialized.

-

-null is NOT a valid value for a non-public field... it just means the field is not initialized.

-*/

-

-public final class BinaryTypeBinding extends ReferenceBinding {

-

-// all of these fields are ONLY guaranteed to be initialized if accessed using their public accessor method

-private ReferenceBinding superclass;

-private ReferenceBinding enclosingType;

-private ReferenceBinding[] superInterfaces;

-private FieldBinding[] fields;

-private MethodBinding[] methods;

-private ReferenceBinding[] memberTypes;

-protected TypeVariableBinding[] typeVariables;

-

-// For the link with the principle structure

-private LookupEnvironment environment;

-

-public static ReferenceBinding resolveType(ReferenceBinding type, LookupEnvironment environment, boolean convertGenericToRawType) {

-	if (type instanceof UnresolvedReferenceBinding)

-		return ((UnresolvedReferenceBinding) type).resolve(environment, convertGenericToRawType);

-	if (type.isParameterizedType())

-		return ((ParameterizedTypeBinding) type).resolve();

-	if (type.isWildcard())

-		return ((WildcardBinding) type).resolve();

-

-	if (convertGenericToRawType && type.isGenericType()) // raw reference to generic ?

-	    return environment.createRawType(type, null);

-	return type;

-}

-public static TypeBinding resolveType(TypeBinding type, LookupEnvironment environment, ParameterizedTypeBinding parameterizedType, int rank) {

-	if (type instanceof UnresolvedReferenceBinding)

-		return ((UnresolvedReferenceBinding) type).resolve(environment, parameterizedType == null);

-	if (type.isParameterizedType())

-		return ((ParameterizedTypeBinding) type).resolve();

-	if (type.isWildcard())

-		return ((WildcardBinding) type).resolve();

-	if (type.isArrayType())

-		resolveType(((ArrayBinding) type).leafComponentType, environment, parameterizedType, rank);

-

-	if (parameterizedType == null && type.isGenericType()) // raw reference to generic ?

-	    return environment.createRawType((ReferenceBinding) type, null);

-	return type;

-}

-// resolve hierarchy types in 2 steps by first resolving any UnresolvedTypes

-static ReferenceBinding resolveUnresolvedType(ReferenceBinding type, LookupEnvironment environment, boolean convertGenericToRawType) {

-	if (type instanceof UnresolvedReferenceBinding)

-		return ((UnresolvedReferenceBinding) type).resolve(environment, convertGenericToRawType);

-

-	if (type.isParameterizedType())

-		resolveUnresolvedType(((ParameterizedTypeBinding) type).type, environment, false); // still part of parameterized type ref

-	else if (type.isWildcard())

-		resolveType(((WildcardBinding) type).genericType, environment, null, 0);

-	return type;

-}

-

-

-public BinaryTypeBinding(PackageBinding packageBinding, IBinaryType binaryType, LookupEnvironment environment) {

-	this.compoundName = CharOperation.splitOn('/', binaryType.getName());

-	computeId();

-

-	this.tagBits |= IsBinaryBinding;

-	this.environment = environment;

-	this.fPackage = packageBinding;

-	this.fileName = binaryType.getFileName();

-	this.typeVariables = NoTypeVariables;

-

-	// source name must be one name without "$".

-	char[] possibleSourceName = this.compoundName[this.compoundName.length - 1];

-	int start = CharOperation.lastIndexOf('$', possibleSourceName) + 1;

-	if (start == 0) {

-		this.sourceName = possibleSourceName;

-	} else {

-		this.sourceName = new char[possibleSourceName.length - start];

-		System.arraycopy(possibleSourceName, start, this.sourceName, 0, this.sourceName.length);

-	}

-

-	this.modifiers = binaryType.getModifiers();

-	if (binaryType.isInterface())

-		this.modifiers |= AccInterface;

-		

-	if (binaryType.isAnonymous()) {

-		this.tagBits |= AnonymousTypeMask;

-	} else if (binaryType.isLocal()) {

-		this.tagBits |= LocalTypeMask;

-	} else if (binaryType.isMember()) {

-		this.tagBits |= MemberTypeMask;

-	}

-}

-

-public FieldBinding[] availableFields() {

-	FieldBinding[] availableFields = new FieldBinding[fields.length];

-	int count = 0;

-	

-	for (int i = 0; i < fields.length;i++) {

-		try {

-			availableFields[count] = resolveTypeFor(fields[i]);

-			count++;

-		} catch (AbortCompilation a){

-			// silent abort

-		}

-	}

-	

-	System.arraycopy(availableFields, 0, availableFields = new FieldBinding[count], 0, count);

-	return availableFields;

-}

-

-public MethodBinding[] availableMethods() {

-	if ((modifiers & AccUnresolved) == 0)

-		return methods;

-		

-	MethodBinding[] availableMethods = new MethodBinding[methods.length];

-	int count = 0;

-	

-	for (int i = 0; i < methods.length;i++) {

-		try {

-			availableMethods[count] = resolveTypesFor(methods[i]);

-			count++;

-		} catch (AbortCompilation a){

-			// silent abort

-		}

-	}

-	System.arraycopy(availableMethods, 0, availableMethods = new MethodBinding[count], 0, count);

-	return availableMethods;

-}

-

-void cachePartsFrom(IBinaryType binaryType, boolean needFieldsAndMethods) {

-	

-	// default initialization for super-interfaces early, in case some aborting compilation error occurs,

-	// and still want to use binaries passed that point (e.g. type hierarchy resolver, see bug 63748).

-	this.superInterfaces = NoSuperInterfaces;

-	

-	// need enclosing type to access type variables

-	char[] enclosingTypeName = binaryType.getEnclosingTypeName();

-	if (enclosingTypeName != null) {

-		// attempt to find the enclosing type if it exists in the cache (otherwise - resolve it when requested)

-		this.enclosingType = environment.getTypeFromConstantPoolName(enclosingTypeName, 0, -1, true); // pretend parameterized to avoid raw

-		this.tagBits |= MemberTypeMask;   // must be a member type not a top-level or local type

-		this.tagBits |= 	HasUnresolvedEnclosingType;

-		if (this.enclosingType().isStrictfp())

-			this.modifiers |= AccStrictfp;

-		if (this.enclosingType().isDeprecated())

-			this.modifiers |= AccDeprecatedImplicitly;

-	}

-

-	boolean checkGenericSignatures = environment.options.sourceLevel >= ClassFileConstants.JDK1_5;

-	char[] typeSignature = checkGenericSignatures ? binaryType.getGenericSignature() : null;

-	if (typeSignature == null) {

-		char[] superclassName = binaryType.getSuperclassName();

-		if (superclassName != null) {

-			// attempt to find the superclass if it exists in the cache (otherwise - resolve it when requested)

-			this.superclass = environment.getTypeFromConstantPoolName(superclassName, 0, -1, false);

-			this.tagBits |= 	HasUnresolvedSuperclass;

-		}

-

-		this.superInterfaces = NoSuperInterfaces;

-		char[][] interfaceNames = binaryType.getInterfaceNames();

-		if (interfaceNames != null) {

-			int size = interfaceNames.length;

-			if (size > 0) {

-				this.superInterfaces = new ReferenceBinding[size];

-				for (int i = 0; i < size; i++)

-					// attempt to find each superinterface if it exists in the cache (otherwise - resolve it when requested)

-					this.superInterfaces[i] = environment.getTypeFromConstantPoolName(interfaceNames[i], 0, -1, false);

-				this.tagBits |= 	HasUnresolvedSuperinterfaces;

-			}

-		}

-	} else {

-		// ClassSignature = ParameterPart(optional) super_TypeSignature interface_signature

-		SignatureWrapper wrapper = new SignatureWrapper(typeSignature);

-		if (wrapper.signature[wrapper.start] == '<') {

-			// ParameterPart = '<' ParameterSignature(s) '>'

-			wrapper.start++; // skip '<'

-			int rank = 0;

-			do {

-				TypeVariableBinding variable = createTypeVariable(wrapper, rank);

-				variable.fPackage = this.fPackage;

-				System.arraycopy(this.typeVariables, 0, this.typeVariables = new TypeVariableBinding[rank + 1], 0, rank);

-				this.typeVariables[rank++] = variable;

-				initializeTypeVariable(variable, this.typeVariables, wrapper);

-			} while (wrapper.signature[wrapper.start] != '>');

-			wrapper.start++; // skip '>'

-			this.tagBits |=  HasUnresolvedTypeVariables;

-			this.modifiers |= AccGenericSignature;

-		}

-

-		// attempt to find the superclass if it exists in the cache (otherwise - resolve it when requested)

-		this.superclass = (ReferenceBinding) environment.getTypeFromTypeSignature(wrapper, NoTypeVariables, this);

-		this.tagBits |= 	HasUnresolvedSuperclass;

-

-		this.superInterfaces = NoSuperInterfaces;

-		if (!wrapper.atEnd()) {

-			// attempt to find each superinterface if it exists in the cache (otherwise - resolve it when requested)

-			java.util.ArrayList types = new java.util.ArrayList(2);

-			do {

-				types.add(environment.getTypeFromTypeSignature(wrapper, NoTypeVariables, this));

-			} while (!wrapper.atEnd());

-			this.superInterfaces = new ReferenceBinding[types.size()];

-			types.toArray(this.superInterfaces);

-			this.tagBits |= 	HasUnresolvedSuperinterfaces;

-		}

-	}

-

-	this.memberTypes = NoMemberTypes;

-	IBinaryNestedType[] memberTypeStructures = binaryType.getMemberTypes();

-	if (memberTypeStructures != null) {

-		int size = memberTypeStructures.length;

-		if (size > 0) {

-			this.memberTypes = new ReferenceBinding[size];

-			for (int i = 0; i < size; i++)

-				// attempt to find each member type if it exists in the cache (otherwise - resolve it when requested)

-				this.memberTypes[i] = environment.getTypeFromConstantPoolName(memberTypeStructures[i].getName(), 0, -1, false);

-			this.tagBits |= 	HasUnresolvedMemberTypes;

-		}

-	}

-

-	if (needFieldsAndMethods) {

-		createFields(binaryType.getFields(), checkGenericSignatures);

-		createMethods(binaryType.getMethods(), checkGenericSignatures);

-	} else { // protect against incorrect use of the needFieldsAndMethods flag, see 48459

-		this.fields = NoFields;

-		this.methods = NoMethods;

-	}

-}

-private void createFields(IBinaryField[] iFields, boolean checkGenericSignatures) {

-	this.fields = NoFields;

-	if (iFields != null) {

-		int size = iFields.length;

-		if (size > 0) {

-			this.fields = new FieldBinding[size];

-			for (int i = 0; i < size; i++) {

-				IBinaryField field = iFields[i];

-				char[] fieldSignature = checkGenericSignatures ? field.getGenericSignature() : null;

-				TypeBinding type = fieldSignature == null

-					? environment.getTypeFromSignature(field.getTypeName(), 0, -1, false, this)

-					: environment.getTypeFromTypeSignature(new SignatureWrapper(fieldSignature), NoTypeVariables, this);

-				this.fields[i] =

-					new FieldBinding(

-						field.getName(),

-						type,

-						field.getModifiers() | AccUnresolved,

-						this,

-						field.getConstant());

-			}

-		}

-	}

-}

-private MethodBinding createMethod(IBinaryMethod method, boolean checkGenericSignatures) {

-	int methodModifiers = method.getModifiers() | AccUnresolved;

-	ReferenceBinding[] exceptions = NoExceptions;

-	TypeBinding[] parameters = NoParameters;

-	TypeVariableBinding[] typeVars = NoTypeVariables;

-	TypeBinding returnType = null;

-

-	char[] methodSignature = checkGenericSignatures ? method.getGenericSignature() : null;

-	if (methodSignature == null) { // no generics

-		char[] methodDescriptor = method.getMethodDescriptor();   // of the form (I[Ljava/jang/String;)V

-		int numOfParams = 0;

-		char nextChar;

-		int index = 0;   // first character is always '(' so skip it

-		while ((nextChar = methodDescriptor[++index]) != ')') {

-			if (nextChar != '[') {

-				numOfParams++;

-				if (nextChar == 'L')

-					while ((nextChar = methodDescriptor[++index]) != ';'){/*empty*/}

-			}

-		}

-

-		// Ignore synthetic argument for member types.

-		int startIndex = (method.isConstructor() && isMemberType() && !isStatic()) ? 1 : 0;

-		int size = numOfParams - startIndex;

-		if (size > 0) {

-			parameters = new TypeBinding[size];

-			index = 1;

-			int end = 0;   // first character is always '(' so skip it

-			for (int i = 0; i < numOfParams; i++) {

-				while ((nextChar = methodDescriptor[++end]) == '['){/*empty*/}

-				if (nextChar == 'L')

-					while ((nextChar = methodDescriptor[++end]) != ';'){/*empty*/}

-	

-				if (i >= startIndex)   // skip the synthetic arg if necessary

-					parameters[i - startIndex] = environment.getTypeFromSignature(methodDescriptor, index, end, false, this);

-				index = end + 1;

-			}

-		}

-

-		char[][] exceptionTypes = method.getExceptionTypeNames();

-		if (exceptionTypes != null) {

-			size = exceptionTypes.length;

-			if (size > 0) {

-				exceptions = new ReferenceBinding[size];

-				for (int i = 0; i < size; i++)

-					exceptions[i] = environment.getTypeFromConstantPoolName(exceptionTypes[i], 0, -1, false);

-			}

-		}

-

-		if (!method.isConstructor())

-			returnType = environment.getTypeFromSignature(methodDescriptor, index + 1, -1, false, this);   // index is currently pointing at the ')'

-	} else {

-		// MethodTypeSignature = ParameterPart(optional) '(' TypeSignatures ')' return_typeSignature ['^' TypeSignature (optional)]

-		SignatureWrapper wrapper = new SignatureWrapper(methodSignature);

-		if (wrapper.signature[wrapper.start] == '<') {

-			// <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;

-			// ParameterPart = '<' ParameterSignature(s) '>'

-			wrapper.start++; // skip '<'

-			int rank = 0;

-			do {

-				TypeVariableBinding variable = createTypeVariable(wrapper, rank);

-				System.arraycopy(typeVars, 0, typeVars = new TypeVariableBinding[rank + 1], 0, rank);

-				typeVars[rank++] = variable;

-				initializeTypeVariable(variable,typeVars, wrapper);

-			} while (wrapper.signature[wrapper.start] != '>');

-			wrapper.start++; // skip '>'

-		}

-

-		if (wrapper.signature[wrapper.start] == '(') {

-			wrapper.start++; // skip '('

-			if (wrapper.signature[wrapper.start] == ')') {

-				wrapper.start++; // skip ')'

-			} else {

-				java.util.ArrayList types = new java.util.ArrayList(2);

-				int startIndex = (method.isConstructor() && isMemberType() && !isStatic()) ? 1 : 0;

-				if (startIndex == 1)

-					environment.getTypeFromTypeSignature(wrapper, typeVars, this); // skip synthetic argument

-				while (wrapper.signature[wrapper.start] != ')') {

-					types.add(environment.getTypeFromTypeSignature(wrapper, typeVars, this));

-				}

-				wrapper.start++; // skip ')'

-				parameters = new TypeBinding[types.size()];

-				types.toArray(parameters);

-			}

-		}

-

-		if (!method.isConstructor())

-			returnType = environment.getTypeFromTypeSignature(wrapper, typeVars, this);

-

-		if (!wrapper.atEnd() && wrapper.signature[wrapper.start] == '^') {

-			// attempt to find each superinterface if it exists in the cache (otherwise - resolve it when requested)

-			java.util.ArrayList types = new java.util.ArrayList(2);

-			do {

-				wrapper.start++; // skip '^'

-				types.add(environment.getTypeFromTypeSignature(wrapper, typeVars, this));

-			} while (!wrapper.atEnd() && wrapper.signature[wrapper.start] == '^');

-			exceptions = new ReferenceBinding[types.size()];

-			types.toArray(exceptions);

-		} else { // get the exceptions the old way

-			char[][] exceptionTypes = method.getExceptionTypeNames();

-			if (exceptionTypes != null) {

-				int size = exceptionTypes.length;

-				if (size > 0) {

-					exceptions = new ReferenceBinding[size];

-					for (int i = 0; i < size; i++)

-						exceptions[i] = environment.getTypeFromConstantPoolName(exceptionTypes[i], 0, -1, false);

-				}

-			}

-		}

-	}

-

-	MethodBinding result = method.isConstructor()

-		? new MethodBinding(methodModifiers, parameters, exceptions, this)

-		: new MethodBinding(methodModifiers, method.getSelector(), returnType, parameters, exceptions, this);

-	result.typeVariables = typeVars;

-	return result;

-}

-/**

- * Create method bindings for binary type, filtering out <clinit> and synthetics

- */

-private void createMethods(IBinaryMethod[] iMethods, boolean checkGenericSignatures) {

-	int total = 0, initialTotal = 0, iClinit = -1;

-	int[] toSkip = null;

-	if (iMethods != null) {

-		total = initialTotal = iMethods.length;

-		for (int i = total; --i >= 0;) {

-			IBinaryMethod method = iMethods[i];

-			if ((method.getModifiers() & AccSynthetic) != 0) {

-				// discard synthetics methods

-				if (toSkip == null) toSkip = new int[iMethods.length];

-				toSkip[i] = -1;

-				total--;

-			} else if (iClinit == -1) {

-				char[] methodName = method.getSelector();

-				if (methodName.length == 8 && methodName[0] == '<') {

-					// discard <clinit>

-					iClinit = i;

-					total--;

-				}

-			}

-		}

-	}

-	if (total == 0) {

-		this.methods = NoMethods;

-		return;

-	}

-

-	this.methods = new MethodBinding[total];

-	if (total == initialTotal) {

-		for (int i = 0; i < initialTotal; i++)

-			this.methods[i] = createMethod(iMethods[i], checkGenericSignatures);

-	} else {

-		for (int i = 0, index = 0; i < initialTotal; i++)

-			if (iClinit != i && (toSkip == null || toSkip[i] != -1))

-				this.methods[index++] = createMethod(iMethods[i], checkGenericSignatures);

-	}

-	modifiers |= AccUnresolved; // until methods() is sent

-}

-private TypeVariableBinding createTypeVariable(SignatureWrapper wrapper, int rank) {

-	// ParameterSignature = Identifier ':' TypeSignature

-	//   or Identifier ':' TypeSignature(optional) InterfaceBound(s)

-	// InterfaceBound = ':' TypeSignature

-	int colon = CharOperation.indexOf(':', wrapper.signature, wrapper.start);

-	char[] variableName = CharOperation.subarray(wrapper.signature, wrapper.start, colon);

-	TypeVariableBinding variable = new TypeVariableBinding(variableName, this, rank);

-	return variable;

-}

-

-/* Answer the receiver's enclosing type... null if the receiver is a top level type.

-*

-* NOTE: enclosingType of a binary type is resolved when needed

-*/

-

-public ReferenceBinding enclosingType() {

-	if ((this.tagBits & HasUnresolvedEnclosingType) == 0)

-		return this.enclosingType;

-

-	this.enclosingType = resolveUnresolvedType(this.enclosingType, this.environment, false); // no raw conversion for now

-	this.tagBits ^= HasUnresolvedEnclosingType;

-

-	// finish resolving the type

-	this.enclosingType = resolveType(this.enclosingType, this.environment, false);

-	return this.enclosingType;

-}

-// NOTE: the type of each field of a binary type is resolved when needed

-

-public FieldBinding[] fields() {

-	for (int i = fields.length; --i >= 0;)

-		resolveTypeFor(fields[i]);

-	return fields;

-}

-// NOTE: the return type, arg & exception types of each method of a binary type are resolved when needed

-

-public MethodBinding getExactConstructor(TypeBinding[] argumentTypes) {

-	int argCount = argumentTypes.length;

-	nextMethod : for (int m = methods.length; --m >= 0;) {

-		MethodBinding method = methods[m];

-		if (method.selector == ConstructorDeclaration.ConstantPoolName && method.parameters.length == argCount) {

-			resolveTypesFor(method);

-			TypeBinding[] toMatch = method.parameters;

-			for (int p = 0; p < argCount; p++)

-				if (toMatch[p] != argumentTypes[p])

-					continue nextMethod;

-			return method;

-		}

-	}

-	return null;

-}

-// NOTE: the return type, arg & exception types of each method of a binary type are resolved when needed

-// searches up the hierarchy as long as no potential (but not exact) match was found.

-

-public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes, CompilationUnitScope refScope) {

-	if (refScope != null)

-		refScope.recordTypeReference(this);

-

-	int argCount = argumentTypes.length;

-	int selectorLength = selector.length;

-	boolean foundNothing = true;

-	nextMethod : for (int m = methods.length; --m >= 0;) {

-		MethodBinding method = methods[m];

-		if (method.selector.length == selectorLength && CharOperation.equals(method.selector, selector)) {

-			foundNothing = false; // inner type lookups must know that a method with this name exists

-			if (method.parameters.length == argCount) {

-				resolveTypesFor(method);

-				TypeBinding[] toMatch = method.parameters;

-				for (int p = 0; p < argCount; p++)

-					if (toMatch[p] != argumentTypes[p])

-						continue nextMethod;

-				return method;

-			}

-		}

-	}

-

-	if (foundNothing) {

-		if (isInterface()) {

-			 if (superInterfaces.length == 1)

-				return superInterfaces[0].getExactMethod(selector, argumentTypes, refScope);

-		} else if (superclass != null) {

-			return superclass.getExactMethod(selector, argumentTypes, refScope);

-		}

-	}

-	return null;

-}

-// NOTE: the type of a field of a binary type is resolved when needed

-

-public FieldBinding getField(char[] fieldName, boolean needResolve) {

-	int fieldLength = fieldName.length;

-	for (int f = fields.length; --f >= 0;) {

-		char[] name = fields[f].name;

-		if (name.length == fieldLength && CharOperation.equals(name, fieldName))

-			return needResolve ? resolveTypeFor(fields[f]) : fields[f];

-	}

-	return null;

-}

-/**

- *  Rewrite of default getMemberType to avoid resolving eagerly all member types when one is requested

- */

-public ReferenceBinding getMemberType(char[] typeName) {

-	for (int i = this.memberTypes.length; --i >= 0;) {

-	    ReferenceBinding memberType = this.memberTypes[i];

-	    if (memberType instanceof UnresolvedReferenceBinding) {

-			char[] name = memberType.sourceName; // source name is qualified with enclosing type name

-			int prefixLength = this.compoundName[this.compoundName.length - 1].length + 1; // enclosing$

-			if (name.length == (prefixLength + typeName.length)) // enclosing $ typeName

-				if (CharOperation.fragmentEquals(typeName, name, prefixLength, true)) // only check trailing portion

-					return this.memberTypes[i] = resolveType(memberType, this.environment, false); // no raw conversion for now

-	    } else if (CharOperation.equals(typeName, memberType.sourceName)) {

-	        return memberType;

-	    }

-	}

-	return null;

-}

-// NOTE: the return type, arg & exception types of each method of a binary type are resolved when needed

-

-public MethodBinding[] getMethods(char[] selector) {

-	int count = 0;

-	int lastIndex = -1;

-	int selectorLength = selector.length;

-	for (int m = 0, length = methods.length; m < length; m++) {

-		MethodBinding method = methods[m];

-		if (method.selector.length == selectorLength && CharOperation.equals(method.selector, selector)) {

-			resolveTypesFor(method);

-			count++;

-			lastIndex = m;

-		}

-	}

-	if (count == 1)

-		return new MethodBinding[] {methods[lastIndex]};

-	if (count > 0) {

-		MethodBinding[] result = new MethodBinding[count];

-		count = 0;

-		for (int m = 0; m <= lastIndex; m++) {

-			MethodBinding method = methods[m];

-			if (method.selector.length == selectorLength && CharOperation.equals(method.selector, selector))

-				result[count++] = method;

-		}

-		return result;

-	}

-	return NoMethods;

-}

-public boolean hasMemberTypes() {

-    return this.memberTypes.length > 0;

-}

-// NOTE: member types of binary types are resolved when needed

-

-public TypeVariableBinding getTypeVariable(char[] variableName) {

-	TypeVariableBinding variable = super.getTypeVariable(variableName);

-	resolveTypesFor(variable);

-	return variable;

-}

-private void initializeTypeVariable(TypeVariableBinding variable, TypeVariableBinding[] existingVariables, SignatureWrapper wrapper) {

-	// ParameterSignature = Identifier ':' TypeSignature

-	//   or Identifier ':' TypeSignature(optional) InterfaceBound(s)

-	// InterfaceBound = ':' TypeSignature

-	int colon = CharOperation.indexOf(':', wrapper.signature, wrapper.start);

-	wrapper.start = colon + 1; // skip name + ':'

-	ReferenceBinding type, firstBound = null;

-	if (wrapper.signature[wrapper.start] == ':') {

-		type = environment.getType(JAVA_LANG_OBJECT);

-	} else {

-		type = (ReferenceBinding) environment.getTypeFromTypeSignature(wrapper, existingVariables, this);

-		firstBound = type;

-	}

-

-	// variable is visible to its bounds

-	variable.modifiers |= AccUnresolved;

-	variable.superclass = type;

-

-	ReferenceBinding[] bounds = null;

-	if (wrapper.signature[wrapper.start] == ':') {

-		java.util.ArrayList types = new java.util.ArrayList(2);

-		do {

-			wrapper.start++; // skip ':'

-			types.add(environment.getTypeFromTypeSignature(wrapper, existingVariables, this));

-		} while (wrapper.signature[wrapper.start] == ':');

-		bounds = new ReferenceBinding[types.size()];

-		types.toArray(bounds);

-	}

-

-	variable.superInterfaces = bounds == null ? NoSuperInterfaces : bounds;

-	if (firstBound == null) {

-		firstBound = variable.superInterfaces.length == 0 ? null : variable.superInterfaces[0];

-		variable.modifiers |= AccInterface;

-	}

-	variable.firstBound = firstBound;

-}

-/**

- * Returns true if a type is identical to another one,

- * or for generic types, true if compared to its raw type.

- */

-public boolean isEquivalentTo(TypeBinding otherType) {

-    if (this == otherType) return true;

-    if (otherType == null) return false;

-    if (otherType.isWildcard()) // wildcard

-		return ((WildcardBinding) otherType).boundCheck(this);

-    if (this.typeVariables == NoTypeVariables) return false;

-    if (otherType.isRawType())

-        return otherType.erasure() == this;

-	return false;

-}

-public boolean isGenericType() {

-    return this.typeVariables != NoTypeVariables;

-}

-// NOTE: member types of binary types are resolved when needed

-

-public ReferenceBinding[] memberTypes() {

- 	if ((this.tagBits & HasUnresolvedMemberTypes) == 0)

-		return this.memberTypes;

-

-	for (int i = this.memberTypes.length; --i >= 0;)

-		this.memberTypes[i] = resolveUnresolvedType(this.memberTypes[i], this.environment, false); // no raw conversion for now

-	this.tagBits ^= HasUnresolvedMemberTypes;

-

-	for (int i = this.memberTypes.length; --i >= 0;)

-		this.memberTypes[i] = resolveType(this.memberTypes[i], this.environment, false); // no raw conversion for now

-	return this.memberTypes;

-}

-// NOTE: the return type, arg & exception types of each method of a binary type are resolved when needed

-

-public MethodBinding[] methods() {

-	if ((modifiers & AccUnresolved) == 0)

-		return methods;

-

-	for (int i = methods.length; --i >= 0;)

-		resolveTypesFor(methods[i]);

-	modifiers ^= AccUnresolved;

-	return methods;

-}

-private FieldBinding resolveTypeFor(FieldBinding field) {

-	if ((field.modifiers & AccUnresolved) == 0)

-		return field;

-

-	field.type = resolveType(field.type, this.environment, null, 0);

-	field.modifiers ^= AccUnresolved;

-	return field;

-}

-MethodBinding resolveTypesFor(MethodBinding method) {

-	if ((method.modifiers & AccUnresolved) == 0)

-		return method;

-

-	if (!method.isConstructor())

-		method.returnType = resolveType(method.returnType, this.environment, null, 0);

-	for (int i = method.parameters.length; --i >= 0;)

-		method.parameters[i] = resolveType(method.parameters[i], this.environment, null, 0);

-	for (int i = method.thrownExceptions.length; --i >= 0;)

-		method.thrownExceptions[i] = resolveType(method.thrownExceptions[i], this.environment, true);

-	for (int i = method.typeVariables.length; --i >= 0;)

-		resolveTypesFor(method.typeVariables[i]);

-	method.modifiers ^= AccUnresolved;

-	return method;

-}

-private TypeVariableBinding resolveTypesFor(TypeVariableBinding variable) {

-	if ((variable.modifiers & AccUnresolved) == 0)

-		return variable;

-

-	if (variable.superclass != null)

-		variable.superclass = resolveUnresolvedType(variable.superclass, this.environment, true);

-	if (variable.firstBound != null)

-		variable.firstBound = resolveUnresolvedType(variable.firstBound, this.environment, true);

-	ReferenceBinding[] interfaces = variable.superInterfaces;

-	for (int i = interfaces.length; --i >= 0;)

-		interfaces[i] = resolveUnresolvedType(interfaces[i], this.environment, true);

-	variable.modifiers ^= AccUnresolved;

-

-	// finish resolving the types

-	if (variable.superclass != null)

-		variable.superclass = resolveType(variable.superclass, this.environment, true);

-	if (variable.firstBound != null)

-		variable.firstBound = resolveType(variable.firstBound, this.environment, true);

-	for (int i = interfaces.length; --i >= 0;)

-		interfaces[i] = resolveType(interfaces[i], this.environment, true);

-	return variable;

-}

-/* Answer the receiver's superclass... null if the receiver is Object or an interface.

-*

-* NOTE: superclass of a binary type is resolved when needed

-*/

-

-public ReferenceBinding superclass() {

-	if ((this.tagBits & HasUnresolvedSuperclass) == 0)

-		return this.superclass;

-

-	this.superclass = resolveUnresolvedType(this.superclass, this.environment, true);

-	this.tagBits ^= HasUnresolvedSuperclass;

-

-	// finish resolving the type

-	this.superclass = resolveType(this.superclass, this.environment, true);

-	return this.superclass;

-}

-// NOTE: superInterfaces of binary types are resolved when needed

-

-public ReferenceBinding[] superInterfaces() {

-	if ((this.tagBits & HasUnresolvedSuperinterfaces) == 0)

-		return this.superInterfaces;

-

-	for (int i = this.superInterfaces.length; --i >= 0;)

-		this.superInterfaces[i] = resolveUnresolvedType(this.superInterfaces[i], this.environment, true);

-	this.tagBits ^= HasUnresolvedSuperinterfaces;

-

-	for (int i = this.superInterfaces.length; --i >= 0;)

-		this.superInterfaces[i] = resolveType(this.superInterfaces[i], this.environment, true);

-	return this.superInterfaces;

-}

-public TypeVariableBinding[] typeVariables() {

- 	if ((this.tagBits & HasUnresolvedTypeVariables) == 0)

-		return this.typeVariables;

-

- 	for (int i = this.typeVariables.length; --i >= 0;)

-		resolveTypesFor(this.typeVariables[i]);

-	this.tagBits ^= HasUnresolvedTypeVariables;

-	return this.typeVariables;

-}

-public String toString() {

-	String s = ""; //$NON-NLS-1$

-

-	if (isDeprecated()) s += "deprecated "; //$NON-NLS-1$

-	if (isPublic()) s += "public "; //$NON-NLS-1$

-	if (isProtected()) s += "protected "; //$NON-NLS-1$

-	if (isPrivate()) s += "private "; //$NON-NLS-1$

-	if (isAbstract() && isClass()) s += "abstract "; //$NON-NLS-1$

-	if (isStatic() && isNestedType()) s += "static "; //$NON-NLS-1$

-	if (isFinal()) s += "final "; //$NON-NLS-1$

-

-	s += isInterface() ? "interface " : "class "; //$NON-NLS-1$ //$NON-NLS-2$

-	s += (compoundName != null) ? CharOperation.toString(compoundName) : "UNNAMED TYPE"; //$NON-NLS-1$

-

-	s += "\n\textends "; //$NON-NLS-1$

-	s += (superclass != null) ? superclass.debugName() : "NULL TYPE"; //$NON-NLS-1$

-

-	if (superInterfaces != null) {

-		if (superInterfaces != NoSuperInterfaces) {

-			s += "\n\timplements : "; //$NON-NLS-1$

-			for (int i = 0, length = superInterfaces.length; i < length; i++) {

-				if (i  > 0)

-					s += ", "; //$NON-NLS-1$

-				s += (superInterfaces[i] != null) ? superInterfaces[i].debugName() : "NULL TYPE"; //$NON-NLS-1$

-			}

-		}

-	} else {

-		s += "NULL SUPERINTERFACES"; //$NON-NLS-1$

-	}

-

-	if (enclosingType != null) {

-		s += "\n\tenclosing type : "; //$NON-NLS-1$

-		s += enclosingType.debugName();

-	}

-

-	if (fields != null) {

-		if (fields != NoFields) {

-			s += "\n/*   fields   */"; //$NON-NLS-1$

-			for (int i = 0, length = fields.length; i < length; i++)

-				s += (fields[i] != null) ? "\n" + fields[i].toString() : "\nNULL FIELD"; //$NON-NLS-1$ //$NON-NLS-2$

-		}

-	} else {

-		s += "NULL FIELDS"; //$NON-NLS-1$

-	}

-

-	if (methods != null) {

-		if (methods != NoMethods) {

-			s += "\n/*   methods   */"; //$NON-NLS-1$

-			for (int i = 0, length = methods.length; i < length; i++)

-				s += (methods[i] != null) ? "\n" + methods[i].toString() : "\nNULL METHOD"; //$NON-NLS-1$ //$NON-NLS-2$

-		}

-	} else {

-		s += "NULL METHODS"; //$NON-NLS-1$

-	}

-

-	if (memberTypes != null) {

-		if (memberTypes != NoMemberTypes) {

-			s += "\n/*   members   */"; //$NON-NLS-1$

-			for (int i = 0, length = memberTypes.length; i < length; i++)

-				s += (memberTypes[i] != null) ? "\n" + memberTypes[i].toString() : "\nNULL TYPE"; //$NON-NLS-1$ //$NON-NLS-2$

-		}

-	} else {

-		s += "NULL MEMBER TYPES"; //$NON-NLS-1$

-	}

-

-	s += "\n\n\n"; //$NON-NLS-1$

-	return s;

-}

-MethodBinding[] unResolvedMethods() { // for the MethodVerifier so it doesn't resolve types

-	return methods;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Binding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Binding.js
deleted file mode 100644
index 7bcf511..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Binding.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public abstract class Binding implements BindingIds, CompilerModifiers, ProblemReasons {

-	/* API

-	* Answer the receiver's binding type from Binding.BindingID.

-	*

-	* Note: Do NOT expect this to be used very often... only in switch statements with

-	* more than 2 possible choices.

-	*/

-	public abstract int bindingType();

-	/* API

-	* Answer true if the receiver is not a problem binding

-	*/

-	

-	public final boolean isValidBinding() {

-		return problemId() == NoError;

-	}

-	/* API

-	* Answer the problem id associated with the receiver.

-	* NoError if the receiver is a valid binding.

-	*/

-	// TODO (philippe) should rename into problemReason()

-	public int problemId() {

-		return NoError;

-	}

-	/* Answer a printable representation of the receiver.

-	*/

-	public abstract char[] readableName();

-

-	/* Shorter printable representation of the receiver (no qualified type)

-	 */	

-	public char[] shortReadableName(){

-		return readableName();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BindingIds.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BindingIds.js
deleted file mode 100644
index 086a274..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BindingIds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public interface BindingIds {

-	final int FIELD = 1;

-	final int LOCAL = 2;

-	final int VARIABLE = FIELD | LOCAL;

-	final int TYPE = 4;

-	final int METHOD = 8;

-	final int PACKAGE = 16;

-	final int IMPORT = 32;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BlockScope.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BlockScope.js
deleted file mode 100644
index 16fee08..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/BlockScope.js
+++ /dev/null
@@ -1,825 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-

-public class BlockScope extends Scope {

-

-	// Local variable management

-	public LocalVariableBinding[] locals;

-	public int localIndex; // position for next variable

-	public int startIndex;	// start position in this scope - for ordering scopes vs. variables

-	public int offset; // for variable allocation throughout scopes

-	public int maxOffset; // for variable allocation throughout scopes

-

-	// finally scopes must be shifted behind respective try&catch scope(s) so as to avoid

-	// collisions of secret variables (return address, save value).

-	public BlockScope[] shiftScopes; 

-

-	public final static VariableBinding[] EmulationPathToImplicitThis = {};

-	public final static VariableBinding[] NoEnclosingInstanceInConstructorCall = {};

-	public final static VariableBinding[] NoEnclosingInstanceInStaticContext = {};

-

-	public Scope[] subscopes = new Scope[1]; // need access from code assist

-	public int subscopeCount = 0; // need access from code assist

-

-	// record the current case statement being processed (for entire switch case block).

-	public CaseStatement switchCase; // from 1.4 on, local types should not be accessed across switch case blocks (52221)

-

-	protected BlockScope(int kind, Scope parent) {

-

-		super(kind, parent);

-	}

-

-	public BlockScope(BlockScope parent) {

-

-		this(parent, true);

-	}

-

-	public BlockScope(BlockScope parent, boolean addToParentScope) {

-

-		this(BLOCK_SCOPE, parent);

-		locals = new LocalVariableBinding[5];

-		if (addToParentScope) parent.addSubscope(this);

-		this.startIndex = parent.localIndex;

-	}

-

-	public BlockScope(BlockScope parent, int variableCount) {

-

-		this(BLOCK_SCOPE, parent);

-		locals = new LocalVariableBinding[variableCount];

-		parent.addSubscope(this);

-		this.startIndex = parent.localIndex;

-	}

-

-	/* Create the class scope & binding for the anonymous type.

-	 */

-	public final void addAnonymousType(

-		TypeDeclaration anonymousType,

-		ReferenceBinding superBinding) {

-

-		ClassScope anonymousClassScope = new ClassScope(this, anonymousType);

-		anonymousClassScope.buildAnonymousTypeBinding(

-			enclosingSourceType(),

-			superBinding);

-	}

-

-	/* Create the class scope & binding for the local type.

-	 */

-	public final void addLocalType(TypeDeclaration localType) {

-

-		// check that the localType does not conflict with an enclosing type

-		ReferenceBinding type = enclosingSourceType();

-		do {

-			if (CharOperation.equals(type.sourceName, localType.name)) {

-				problemReporter().hidingEnclosingType(localType);

-				return;

-			}

-			type = type.enclosingType();

-		} while (type != null);

-

-		// check that the localType does not conflict with another sibling local type

-		Scope scope = this;

-		do {

-			if (((BlockScope) scope).findLocalType(localType.name) != null) {

-				problemReporter().duplicateNestedType(localType);

-				return;

-			}

-		} while ((scope = scope.parent) instanceof BlockScope);

-

-		ClassScope localTypeScope = new ClassScope(this, localType);

-		addSubscope(localTypeScope);

-		localTypeScope.buildLocalTypeBinding(enclosingSourceType());

-	}

-

-	/* Insert a local variable into a given scope, updating its position

-	 * and checking there are not too many locals or arguments allocated.

-	 */

-	public final void addLocalVariable(LocalVariableBinding binding) {

-

-		checkAndSetModifiersForVariable(binding);

-

-		// insert local in scope

-		if (localIndex == locals.length)

-			System.arraycopy(

-				locals,

-				0,

-				(locals = new LocalVariableBinding[localIndex * 2]),

-				0,

-				localIndex);

-		locals[localIndex++] = binding;

-

-		// update local variable binding 

-		binding.declaringScope = this;

-		binding.id = this.outerMostMethodScope().analysisIndex++;

-		// share the outermost method scope analysisIndex

-	}

-

-	public void addSubscope(Scope childScope) {

-		if (subscopeCount == subscopes.length)

-			System.arraycopy(

-				subscopes,

-				0,

-				(subscopes = new Scope[subscopeCount * 2]),

-				0,

-				subscopeCount);

-		subscopes[subscopeCount++] = childScope;

-	}

-

-	/* Answer true if the receiver is suitable for assigning final blank fields.

-	 *

-	 * in other words, it is inside an initializer, a constructor or a clinit 

-	 */

-	public final boolean allowBlankFinalFieldAssignment(FieldBinding binding) {

-

-		if (enclosingSourceType() != binding.declaringClass)

-			return false;

-

-		MethodScope methodScope = methodScope();

-		if (methodScope.isStatic != binding.isStatic())

-			return false;

-		return methodScope.isInsideInitializer() // inside initializer

-				|| ((AbstractMethodDeclaration) methodScope.referenceContext)

-					.isInitializationMethod(); // inside constructor or clinit

-	}

-	String basicToString(int tab) {

-		String newLine = "\n"; //$NON-NLS-1$

-		for (int i = tab; --i >= 0;)

-			newLine += "\t"; //$NON-NLS-1$

-

-		String s = newLine + "--- Block Scope ---"; //$NON-NLS-1$

-		newLine += "\t"; //$NON-NLS-1$

-		s += newLine + "locals:"; //$NON-NLS-1$

-		for (int i = 0; i < localIndex; i++)

-			s += newLine + "\t" + locals[i].toString(); //$NON-NLS-1$

-		s += newLine + "startIndex = " + startIndex; //$NON-NLS-1$

-		return s;

-	}

-

-	private void checkAndSetModifiersForVariable(LocalVariableBinding varBinding) {

-

-		int modifiers = varBinding.modifiers;

-		if ((modifiers & AccAlternateModifierProblem) != 0 && varBinding.declaration != null){

-			problemReporter().duplicateModifierForVariable(varBinding.declaration, this instanceof MethodScope);

-		}

-		int realModifiers = modifiers & AccJustFlag;

-		

-		int unexpectedModifiers = ~AccFinal;

-		if ((realModifiers & unexpectedModifiers) != 0 && varBinding.declaration != null){ 

-			problemReporter().illegalModifierForVariable(varBinding.declaration, this instanceof MethodScope);

-		}

-		varBinding.modifiers = modifiers;

-	}

-

-	/* Compute variable positions in scopes given an initial position offset

-	 * ignoring unused local variables.

-	 * 

-	 * No argument is expected here (ilocal is the first non-argument local of the outermost scope)

-	 * Arguments are managed by the MethodScope method

-	 */

-	void computeLocalVariablePositions(int ilocal, int initOffset, CodeStream codeStream) {

-

-		this.offset = initOffset;

-		this.maxOffset = initOffset;

-

-		// local variable init

-		int maxLocals = this.localIndex;

-		boolean hasMoreVariables = ilocal < maxLocals;

-

-		// scope init

-		int iscope = 0, maxScopes = this.subscopeCount;

-		boolean hasMoreScopes = maxScopes > 0;

-

-		// iterate scopes and variables in parallel

-		while (hasMoreVariables || hasMoreScopes) {

-			if (hasMoreScopes

-				&& (!hasMoreVariables || (subscopes[iscope].startIndex() <= ilocal))) {

-				// consider subscope first

-				if (subscopes[iscope] instanceof BlockScope) {

-					BlockScope subscope = (BlockScope) subscopes[iscope];

-					int subOffset = subscope.shiftScopes == null ? this.offset : subscope.maxShiftedOffset();

-					subscope.computeLocalVariablePositions(0, subOffset, codeStream);

-					if (subscope.maxOffset > this.maxOffset)

-						this.maxOffset = subscope.maxOffset;

-				}

-				hasMoreScopes = ++iscope < maxScopes;

-			} else {

-				

-				// consider variable first

-				LocalVariableBinding local = locals[ilocal]; // if no local at all, will be locals[ilocal]==null

-				

-				// check if variable is actually used, and may force it to be preserved

-				boolean generateCurrentLocalVar = (local.useFlag == LocalVariableBinding.USED && !local.isConstantValue());

-					

-				// do not report fake used variable

-				if (local.useFlag == LocalVariableBinding.UNUSED

-					&& (local.declaration != null) // unused (and non secret) local

-					&& ((local.declaration.bits & ASTNode.IsLocalDeclarationReachableMASK) != 0)) { // declaration is reachable

-						

-					if (!(local.declaration instanceof Argument))  // do not report unused catch arguments

-						this.problemReporter().unusedLocalVariable(local.declaration);

-				}

-				

-				// could be optimized out, but does need to preserve unread variables ?

-				if (!generateCurrentLocalVar) {

-					if (local.declaration != null && environment().options.preserveAllLocalVariables) {

-						generateCurrentLocalVar = true; // force it to be preserved in the generated code

-						local.useFlag = LocalVariableBinding.USED;

-					}

-				}

-				

-				// allocate variable

-				if (generateCurrentLocalVar) {

-

-					if (local.declaration != null) {

-						codeStream.record(local); // record user-defined local variables for attribute generation

-					}

-					// assign variable position

-					local.resolvedPosition = this.offset;

-

-					if ((local.type == LongBinding) || (local.type == DoubleBinding)) {

-						this.offset += 2;

-					} else {

-						this.offset++;

-					}

-					if (this.offset > 0xFFFF) { // no more than 65535 words of locals

-						this.problemReporter().noMoreAvailableSpaceForLocal(

-							local, 

-							local.declaration == null ? (ASTNode)this.methodScope().referenceContext : local.declaration);

-					}

-				} else {

-					local.resolvedPosition = -1; // not generated

-				}

-				hasMoreVariables = ++ilocal < maxLocals;

-			}

-		}

-		if (this.offset > this.maxOffset)

-			this.maxOffset = this.offset;

-	}

-

-	/*

-	 *	Record the suitable binding denoting a synthetic field or constructor argument,

-	 * mapping to the actual outer local variable in the scope context.

-	 * Note that this may not need any effect, in case the outer local variable does not

-	 * need to be emulated and can directly be used as is (using its back pointer to its

-	 * declaring scope).

-	 */

-	public void emulateOuterAccess(LocalVariableBinding outerLocalVariable) {

-

-		MethodScope currentMethodScope;

-		if ((currentMethodScope = this.methodScope())

-			!= outerLocalVariable.declaringScope.methodScope()) {

-			NestedTypeBinding currentType = (NestedTypeBinding) this.enclosingSourceType();

-

-			//do nothing for member types, pre emulation was performed already

-			if (!currentType.isLocalType()) {

-				return;

-			}

-			// must also add a synthetic field if we're not inside a constructor

-			if (!currentMethodScope.isInsideInitializerOrConstructor()) {

-				currentType.addSyntheticArgumentAndField(outerLocalVariable);

-			} else {

-				currentType.addSyntheticArgument(outerLocalVariable);

-			}

-		}

-	}

-

-	/* Note that it must never produce a direct access to the targetEnclosingType,

-	 * but instead a field sequence (this$2.this$1.this$0) so as to handle such a test case:

-	 *

-	 * class XX {

-	 *	void foo() {

-	 *		class A {

-	 *			class B {

-	 *				class C {

-	 *					boolean foo() {

-	 *						return (Object) A.this == (Object) B.this;

-	 *					}

-	 *				}

-	 *			}

-	 *		}

-	 *		new A().new B().new C();

-	 *	}

-	 * }

-	 * where we only want to deal with ONE enclosing instance for C (could not figure out an A for C)

-	 */

-	public final ReferenceBinding findLocalType(char[] name) {

-

-		long compliance = environment().options.complianceLevel;

-		for (int i = 0, length = subscopeCount; i < length; i++) {

-			if (subscopes[i] instanceof ClassScope) {

-				LocalTypeBinding sourceType = (LocalTypeBinding)((ClassScope) subscopes[i]).referenceContext.binding;

-				// from 1.4 on, local types should not be accessed across switch case blocks (52221)				

-				if (compliance >= ClassFileConstants.JDK1_4 && sourceType.switchCase != this.switchCase) continue;

-				if (CharOperation.equals(sourceType.sourceName(), name))

-					return sourceType;

-			}

-		}

-		return null;

-	}

-

-	public LocalVariableBinding findVariable(char[] variable) {

-

-		int varLength = variable.length;

-		for (int i = 0, length = locals.length; i < length; i++) {

-			LocalVariableBinding local = locals[i];

-			if (local == null)

-				return null;

-			if (local.name.length == varLength && CharOperation.equals(local.name, variable))

-				return local;

-		}

-		return null;

-	}

-	/* API

-	 * flag is a mask of the following values VARIABLE (= FIELD or LOCAL), TYPE.

-	 * Only bindings corresponding to the mask will be answered.

-	 *

-	 *	if the VARIABLE mask is set then

-	 *		If the first name provided is a field (or local) then the field (or local) is answered

-	 *		Otherwise, package names and type names are consumed until a field is found.

-	 *		In this case, the field is answered.

-	 *

-	 *	if the TYPE mask is set,

-	 *		package names and type names are consumed until the end of the input.

-	 *		Only if all of the input is consumed is the type answered

-	 *

-	 *	All other conditions are errors, and a problem binding is returned.

-	 *	

-	 *	NOTE: If a problem binding is returned, senders should extract the compound name

-	 *	from the binding & not assume the problem applies to the entire compoundName.

-	 *

-	 *	The VARIABLE mask has precedence over the TYPE mask.

-	 *

-	 *	InvocationSite implements

-	 *		isSuperAccess(); this is used to determine if the discovered field is visible.

-	 *		setFieldIndex(int); this is used to record the number of names that were consumed.

-	 *

-	 *	For example, getBinding({"foo","y","q", VARIABLE, site) will answer

-	 *	the binding for the field or local named "foo" (or an error binding if none exists).

-	 *	In addition, setFieldIndex(1) will be sent to the invocation site.

-	 *	If a type named "foo" exists, it will not be detected (and an error binding will be answered)

-	 *

-	 *	IMPORTANT NOTE: This method is written under the assumption that compoundName is longer than length 1.

-	 */

-	public Binding getBinding(char[][] compoundName, int mask, InvocationSite invocationSite, boolean needResolve) {

-

-		Binding binding = getBinding(compoundName[0], mask | TYPE | PACKAGE, invocationSite, needResolve);

-		invocationSite.setFieldIndex(1);

-		if (binding instanceof VariableBinding) return binding;

-		compilationUnitScope().recordSimpleReference(compoundName[0]);

-		if (!binding.isValidBinding()) return binding;

-

-		int length = compoundName.length;

-		int currentIndex = 1;

-		foundType : if (binding instanceof PackageBinding) {

-			PackageBinding packageBinding = (PackageBinding) binding;

-			while (currentIndex < length) {

-				compilationUnitScope().recordReference(packageBinding.compoundName, compoundName[currentIndex]);

-				binding = packageBinding.getTypeOrPackage(compoundName[currentIndex++]);

-				invocationSite.setFieldIndex(currentIndex);

-				if (binding == null) {

-					if (currentIndex == length) {

-						// must be a type if its the last name, otherwise we have no idea if its a package or type

-						return new ProblemReferenceBinding(

-							CharOperation.subarray(compoundName, 0, currentIndex),

-							NotFound);

-					}

-					return new ProblemBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						NotFound);

-				}

-				if (binding instanceof ReferenceBinding) {

-					if (!binding.isValidBinding())

-						return new ProblemReferenceBinding(

-							CharOperation.subarray(compoundName, 0, currentIndex),

-							binding.problemId());

-					if (!((ReferenceBinding) binding).canBeSeenBy(this))

-						return new ProblemReferenceBinding(

-							CharOperation.subarray(compoundName, 0, currentIndex),

-							(ReferenceBinding) binding,

-							NotVisible);

-					break foundType;

-				}

-				packageBinding = (PackageBinding) binding;

-			}

-

-			// It is illegal to request a PACKAGE from this method.

-			return new ProblemReferenceBinding(

-				CharOperation.subarray(compoundName, 0, currentIndex),

-				NotFound);

-		}

-

-		// know binding is now a ReferenceBinding

-		while (currentIndex < length) {

-			ReferenceBinding typeBinding = (ReferenceBinding) binding;

-			char[] nextName = compoundName[currentIndex++];

-			invocationSite.setFieldIndex(currentIndex);

-			invocationSite.setActualReceiverType(typeBinding);

-			if ((mask & FIELD) != 0 && (binding = findField(typeBinding, nextName, invocationSite, true /*resolve*/)) != null) {

-				if (!binding.isValidBinding())

-					return new ProblemFieldBinding(

-						((FieldBinding) binding).declaringClass,

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						binding.problemId());

-				break; // binding is now a field

-			}

-			if ((binding = findMemberType(nextName, typeBinding)) == null) {

-				if ((mask & FIELD) != 0) {

-					return new ProblemBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						typeBinding,

-						NotFound);

-				} 

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					typeBinding,

-					NotFound);

-			}

-			if (!binding.isValidBinding())

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					binding.problemId());

-		}

-		if ((mask & FIELD) != 0 && (binding instanceof FieldBinding)) {

-			// was looking for a field and found a field

-			FieldBinding field = (FieldBinding) binding;

-			if (!field.isStatic())

-				return new ProblemFieldBinding(

-					field.declaringClass,

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					NonStaticReferenceInStaticContext);

-			return binding;

-		}

-		if ((mask & TYPE) != 0 && (binding instanceof ReferenceBinding)) {

-			// was looking for a type and found a type

-			return binding;

-		}

-

-		// handle the case when a field or type was asked for but we resolved the compoundName to a type or field

-		return new ProblemBinding(

-			CharOperation.subarray(compoundName, 0, currentIndex),

-			NotFound);

-	}

-

-	// Added for code assist... NOT Public API

-	public final Binding getBinding(

-		char[][] compoundName,

-		InvocationSite invocationSite) {

-		int currentIndex = 0;

-		int length = compoundName.length;

-		Binding binding =

-			getBinding(

-				compoundName[currentIndex++],

-				VARIABLE | TYPE | PACKAGE,

-				invocationSite, 

-				true /*resolve*/);

-		if (!binding.isValidBinding())

-			return binding;

-

-		foundType : if (binding instanceof PackageBinding) {

-			while (currentIndex < length) {

-				PackageBinding packageBinding = (PackageBinding) binding;

-				binding = packageBinding.getTypeOrPackage(compoundName[currentIndex++]);

-				if (binding == null) {

-					if (currentIndex == length) {

-						// must be a type if its the last name, otherwise we have no idea if its a package or type

-						return new ProblemReferenceBinding(

-							CharOperation.subarray(compoundName, 0, currentIndex),

-							NotFound);

-					}

-					return new ProblemBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						NotFound);

-				}

-				if (binding instanceof ReferenceBinding) {

-					if (!binding.isValidBinding())

-						return new ProblemReferenceBinding(

-							CharOperation.subarray(compoundName, 0, currentIndex),

-							binding.problemId());

-					if (!((ReferenceBinding) binding).canBeSeenBy(this))

-						return new ProblemReferenceBinding(

-							CharOperation.subarray(compoundName, 0, currentIndex),

-							(ReferenceBinding) binding, 

-							NotVisible);

-					break foundType;

-				}

-			}

-			return binding;

-		}

-

-		foundField : if (binding instanceof ReferenceBinding) {

-			while (currentIndex < length) {

-				ReferenceBinding typeBinding = (ReferenceBinding) binding;

-				char[] nextName = compoundName[currentIndex++];

-				if ((binding = findField(typeBinding, nextName, invocationSite, true /*resolve*/)) != null) {

-					if (!binding.isValidBinding())

-						return new ProblemFieldBinding(

-							((FieldBinding) binding).declaringClass,

-							CharOperation.subarray(compoundName, 0, currentIndex),

-							binding.problemId());

-					if (!((FieldBinding) binding).isStatic())

-						return new ProblemFieldBinding(

-							((FieldBinding) binding).declaringClass,

-							CharOperation.subarray(compoundName, 0, currentIndex),

-							NonStaticReferenceInStaticContext);

-					break foundField; // binding is now a field

-				}

-				if ((binding = findMemberType(nextName, typeBinding)) == null)

-					return new ProblemBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						typeBinding,

-						NotFound);

-				if (!binding.isValidBinding())

-					return new ProblemReferenceBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						binding.problemId());

-			}

-			return binding;

-		}

-

-		VariableBinding variableBinding = (VariableBinding) binding;

-		while (currentIndex < length) {

-			TypeBinding typeBinding = variableBinding.type;

-			if (typeBinding == null)

-				return new ProblemFieldBinding(

-					null,

-					CharOperation.subarray(compoundName, 0, currentIndex + 1),

-					NotFound);

-			variableBinding =

-				findField(typeBinding, compoundName[currentIndex++], invocationSite, true /*resolve*/);

-			if (variableBinding == null)

-				return new ProblemFieldBinding(

-					null,

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					NotFound);

-			if (!variableBinding.isValidBinding())

-				return variableBinding;

-		}

-		return variableBinding;

-	}

-

-	/*

-	 * This retrieves the argument that maps to an enclosing instance of the suitable type,

-	 * 	if not found then answers nil -- do not create one

-	 *	

-	 *		#implicitThis		  	 			: the implicit this will be ok

-	 *		#((arg) this$n)						: available as a constructor arg

-	 * 		#((arg) this$n ... this$p) 			: available as as a constructor arg + a sequence of fields

-	 * 		#((fieldDescr) this$n ... this$p) 	: available as a sequence of fields

-	 * 		nil 		 											: not found

-	 *

-	 * 	Note that this algorithm should answer the shortest possible sequence when

-	 * 		shortcuts are available:

-	 * 				this$0 . this$0 . this$0

-	 * 		instead of

-	 * 				this$2 . this$1 . this$0 . this$1 . this$0

-	 * 		thus the code generation will be more compact and runtime faster

-	 */

-	public VariableBinding[] getEmulationPath(LocalVariableBinding outerLocalVariable) {

-

-		MethodScope currentMethodScope = this.methodScope();

-		SourceTypeBinding sourceType = currentMethodScope.enclosingSourceType();

-

-		// identity check

-		if (currentMethodScope == outerLocalVariable.declaringScope.methodScope()) {

-			return new VariableBinding[] { outerLocalVariable };

-			// implicit this is good enough

-		}

-		// use synthetic constructor arguments if possible

-		if (currentMethodScope.isInsideInitializerOrConstructor()

-			&& (sourceType.isNestedType())) {

-			SyntheticArgumentBinding syntheticArg;

-			if ((syntheticArg = ((NestedTypeBinding) sourceType).getSyntheticArgument(outerLocalVariable)) != null) {

-				return new VariableBinding[] { syntheticArg };

-			}

-		}

-		// use a synthetic field then

-		if (!currentMethodScope.isStatic) {

-			FieldBinding syntheticField;

-			if ((syntheticField = sourceType.getSyntheticField(outerLocalVariable)) != null) {

-				return new VariableBinding[] { syntheticField };

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * This retrieves the argument that maps to an enclosing instance of the suitable type,

-	 * 	if not found then answers nil -- do not create one

-	 *

-	 *		#implicitThis		  	 											:  the implicit this will be ok

-	 *		#((arg) this$n)													: available as a constructor arg

-	 * 	#((arg) this$n access$m... access$p) 		: available as as a constructor arg + a sequence of synthetic accessors to synthetic fields

-	 * 	#((fieldDescr) this$n access#m... access$p)	: available as a first synthetic field + a sequence of synthetic accessors to synthetic fields

-	 * 	null 		 															: not found

-	 *	jls 15.9.2 + http://www.ergnosis.com/java-spec-report/java-language/jls-8.8.5.1-d.html

-	 */

-	public Object[] getEmulationPath(

-			ReferenceBinding targetEnclosingType, 

-			boolean onlyExactMatch,

-			boolean ignoreEnclosingArgInConstructorCall) {

-				

-		MethodScope currentMethodScope = this.methodScope();

-		SourceTypeBinding sourceType = currentMethodScope.enclosingSourceType();

-

-		// use 'this' if possible

-		if (!currentMethodScope.isConstructorCall && !currentMethodScope.isStatic) {

-			if (sourceType == targetEnclosingType || (!onlyExactMatch && sourceType.findSuperTypeErasingTo(targetEnclosingType) != null)) {

-				return EmulationPathToImplicitThis; // implicit this is good enough

-			}

-		}

-		if (!sourceType.isNestedType() || sourceType.isStatic()) { // no emulation from within non-inner types

-			if (currentMethodScope.isConstructorCall) {

-				return NoEnclosingInstanceInConstructorCall;

-			} else if (currentMethodScope.isStatic){

-				return NoEnclosingInstanceInStaticContext;

-			}

-			return null;

-		}

-		boolean insideConstructor = currentMethodScope.isInsideInitializerOrConstructor();

-		// use synthetic constructor arguments if possible

-		if (insideConstructor) {

-			SyntheticArgumentBinding syntheticArg;

-			if ((syntheticArg = ((NestedTypeBinding) sourceType).getSyntheticArgument(targetEnclosingType, onlyExactMatch)) != null) {

-				// reject allocation and super constructor call

-				if (ignoreEnclosingArgInConstructorCall 

-						&& currentMethodScope.isConstructorCall 

-						&& (sourceType == targetEnclosingType || (!onlyExactMatch && sourceType.findSuperTypeErasingTo(targetEnclosingType) != null))) {

-					return NoEnclosingInstanceInConstructorCall;

-				}

-				return new Object[] { syntheticArg };

-			}

-		}

-

-		// use a direct synthetic field then

-		if (currentMethodScope.isStatic) {

-			return NoEnclosingInstanceInStaticContext;

-		}

-		FieldBinding syntheticField = sourceType.getSyntheticField(targetEnclosingType, onlyExactMatch);

-		if (syntheticField != null) {

-			if (currentMethodScope.isConstructorCall){

-				return NoEnclosingInstanceInConstructorCall;

-			}

-			return new Object[] { syntheticField };

-		}

-		// could be reached through a sequence of enclosing instance link (nested members)

-		Object[] path = new Object[2]; // probably at least 2 of them

-		ReferenceBinding currentType = sourceType.enclosingType();

-		if (insideConstructor) {

-			path[0] = ((NestedTypeBinding) sourceType).getSyntheticArgument(currentType, onlyExactMatch);

-		} else {

-			if (currentMethodScope.isConstructorCall){

-				return NoEnclosingInstanceInConstructorCall;

-			}

-			path[0] = sourceType.getSyntheticField(currentType, onlyExactMatch);

-		}

-		if (path[0] != null) { // keep accumulating

-			

-			int count = 1;

-			ReferenceBinding currentEnclosingType;

-			while ((currentEnclosingType = currentType.enclosingType()) != null) {

-

-				//done?

-				if (currentType == targetEnclosingType

-					|| (!onlyExactMatch && currentType.findSuperTypeErasingTo(targetEnclosingType) != null))	break;

-

-				if (currentMethodScope != null) {

-					currentMethodScope = currentMethodScope.enclosingMethodScope();

-					if (currentMethodScope != null && currentMethodScope.isConstructorCall){

-						return NoEnclosingInstanceInConstructorCall;

-					}

-					if (currentMethodScope != null && currentMethodScope.isStatic){

-						return NoEnclosingInstanceInStaticContext;

-					}

-				}

-				

-				syntheticField = ((NestedTypeBinding) currentType).getSyntheticField(currentEnclosingType, onlyExactMatch);

-				if (syntheticField == null) break;

-

-				// append inside the path

-				if (count == path.length) {

-					System.arraycopy(path, 0, (path = new Object[count + 1]), 0, count);

-				}

-				// private access emulation is necessary since synthetic field is private

-				path[count++] = ((SourceTypeBinding) syntheticField.declaringClass).addSyntheticMethod(syntheticField, true);

-				currentType = currentEnclosingType;

-			}

-			if (currentType == targetEnclosingType

-				|| (!onlyExactMatch && currentType.findSuperTypeErasingTo(targetEnclosingType) != null)) {

-				return path;

-			}

-		}

-		return null;

-	}

-

-	/* Answer true if the variable name already exists within the receiver's scope.

-	 */

-	public final boolean isDuplicateLocalVariable(char[] name) {

-		BlockScope current = this;

-		while (true) {

-			for (int i = 0; i < localIndex; i++) {

-				if (CharOperation.equals(name, current.locals[i].name))

-					return true;

-			}

-			if (current.kind != BLOCK_SCOPE) return false;

-			current = (BlockScope)current.parent;

-		}

-	}

-

-	public int maxShiftedOffset() {

-		int max = -1;

-		if (this.shiftScopes != null){

-			for (int i = 0, length = this.shiftScopes.length; i < length; i++){

-				int subMaxOffset = this.shiftScopes[i].maxOffset;

-				if (subMaxOffset > max) max = subMaxOffset;

-			}

-		}

-		return max;

-	}

-	

-	/* Answer the problem reporter to use for raising new problems.

-	 *

-	 * Note that as a side-effect, this updates the current reference context

-	 * (unit, type or method) in case the problem handler decides it is necessary

-	 * to abort.

-	 */

-	public ProblemReporter problemReporter() {

-

-		return outerMostMethodScope().problemReporter();

-	}

-

-	/*

-	 * Code responsible to request some more emulation work inside the invocation type, so as to supply

-	 * correct synthetic arguments to any allocation of the target type.

-	 */

-	public void propagateInnerEmulation(ReferenceBinding targetType, boolean isEnclosingInstanceSupplied) {

-

-		// no need to propagate enclosing instances, they got eagerly allocated already.

-		

-		SyntheticArgumentBinding[] syntheticArguments;

-		if ((syntheticArguments = targetType.syntheticOuterLocalVariables()) != null) {

-			for (int i = 0, max = syntheticArguments.length; i < max; i++) {

-				SyntheticArgumentBinding syntheticArg = syntheticArguments[i];

-				// need to filter out the one that could match a supplied enclosing instance

-				if (!(isEnclosingInstanceSupplied

-					&& (syntheticArg.type == targetType.enclosingType()))) {

-					this.emulateOuterAccess(syntheticArg.actualOuterLocalVariable);

-				}

-			}

-		}

-	}

-

-	/* Answer the reference type of this scope.

-	 *

-	 * It is the nearest enclosing type of this scope.

-	 */

-	public TypeDeclaration referenceType() {

-

-		return methodScope().referenceType();

-	}

-

-	/*

-	 * Answer the index of this scope relatively to its parent.

-	 * For method scope, answers -1 (not a classScope relative position)

-	 */

-	public int scopeIndex() {

-		if (this instanceof MethodScope) return -1;

-		BlockScope parentScope = (BlockScope)parent;

-		Scope[] parentSubscopes = parentScope.subscopes;

-		for (int i = 0, max = parentScope.subscopeCount; i < max; i++) {

-			if (parentSubscopes[i] == this) return i;

-		}

-		return -1;

-	}

-	

-	// start position in this scope - for ordering scopes vs. variables

-	int startIndex() {

-		return startIndex;

-	}

-

-	public String toString() {

-		return toString(0);

-	}

-

-	public String toString(int tab) {

-

-		String s = basicToString(tab);

-		for (int i = 0; i < subscopeCount; i++)

-			if (subscopes[i] instanceof BlockScope)

-				s += ((BlockScope) subscopes[i]).toString(tab + 1) + "\n"; //$NON-NLS-1$

-		return s;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ClassScope.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ClassScope.js
deleted file mode 100644
index 458ba4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ClassScope.js
+++ /dev/null
@@ -1,995 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Clinit;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeParameter;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfObject;

-

-public class ClassScope extends Scope {

-	public TypeDeclaration referenceContext;

-	private TypeReference superTypeReference;

-

-	private final static char[] IncompleteHierarchy = new char[] {'h', 'a', 's', ' ', 'i', 'n', 'c', 'o', 'n', 's', 'i', 's', 't', 'e', 'n', 't', ' ', 'h', 'i', 'e', 'r', 'a', 'r', 'c', 'h', 'y'};

-

-	public ClassScope(Scope parent, TypeDeclaration context) {

-		super(CLASS_SCOPE, parent);

-		this.referenceContext = context;

-	}

-	

-	void buildAnonymousTypeBinding(SourceTypeBinding enclosingType, ReferenceBinding supertype) {

-		

-		LocalTypeBinding anonymousType = buildLocalType(enclosingType, enclosingType.fPackage);

-

-		SourceTypeBinding sourceType = referenceContext.binding;

-		if (supertype.isInterface()) {

-			sourceType.superclass = getJavaLangObject();

-			sourceType.superInterfaces = new ReferenceBinding[] { supertype };

-		} else {

-			sourceType.superclass = supertype;

-			sourceType.superInterfaces = TypeConstants.NoSuperInterfaces;

-		}

-		connectMemberTypes();

-		buildFieldsAndMethods();

-		anonymousType.faultInTypesForFieldsAndMethods();

-		sourceType.verifyMethods(environment().methodVerifier());

-	}

-	

-	private void buildFields() {

-		boolean hierarchyIsInconsistent = referenceContext.binding.isHierarchyInconsistent();

-		if (referenceContext.fields == null) {

-			if (hierarchyIsInconsistent) { // 72468

-				referenceContext.binding.fields = new FieldBinding[1];

-				referenceContext.binding.fields[0] =

-					new FieldBinding(IncompleteHierarchy, VoidBinding, AccPrivate, referenceContext.binding, null);

-			} else {

-				referenceContext.binding.fields = NoFields;

-			}

-			return;

-		}

-		// count the number of fields vs. initializers

-		FieldDeclaration[] fields = referenceContext.fields;

-		int size = fields.length;

-		int count = 0;

-		for (int i = 0; i < size; i++)

-			if (fields[i].isField())

-				count++;

-

-		if (hierarchyIsInconsistent)

-			count++;

-		// iterate the field declarations to create the bindings, lose all duplicates

-		FieldBinding[] fieldBindings = new FieldBinding[count];

-		HashtableOfObject knownFieldNames = new HashtableOfObject(count);

-		boolean duplicate = false;

-		count = 0;

-		for (int i = 0; i < size; i++) {

-			FieldDeclaration field = fields[i];

-			if (!field.isField()) {

-				if (referenceContext.binding.isInterface())

-					problemReporter().interfaceCannotHaveInitializers(referenceContext.binding, field);

-			} else {

-				FieldBinding fieldBinding = new FieldBinding(field, null, field.modifiers | AccUnresolved, referenceContext.binding);

-				// field's type will be resolved when needed for top level types

-				checkAndSetModifiersForField(fieldBinding, field);

-

-				if (knownFieldNames.containsKey(field.name)) {

-					duplicate = true;

-					FieldBinding previousBinding = (FieldBinding) knownFieldNames.get(field.name);

-					if (previousBinding != null) {

-						for (int f = 0; f < i; f++) {

-							FieldDeclaration previousField = fields[f];

-							if (previousField.binding == previousBinding) {

-								problemReporter().duplicateFieldInType(referenceContext.binding, previousField);

-								previousField.binding = null;

-								break;

-							}

-						}

-					}

-					knownFieldNames.put(field.name, null); // ensure that the duplicate field is found & removed

-					problemReporter().duplicateFieldInType(referenceContext.binding, field);

-					field.binding = null;

-				} else {

-					knownFieldNames.put(field.name, fieldBinding);

-					// remember that we have seen a field with this name

-					if (fieldBinding != null)

-						fieldBindings[count++] = fieldBinding;

-				}

-			}

-		}

-		// remove duplicate fields

-		if (duplicate) {

-			FieldBinding[] newFieldBindings = new FieldBinding[knownFieldNames.size() - 1];

-			// we know we'll be removing at least 1 duplicate name

-			size = count;

-			count = 0;

-			for (int i = 0; i < size; i++) {

-				FieldBinding fieldBinding = fieldBindings[i];

-				if (knownFieldNames.get(fieldBinding.name) != null)

-					newFieldBindings[count++] = fieldBinding;

-			}

-			fieldBindings = newFieldBindings;

-		}

-		if (hierarchyIsInconsistent)

-			fieldBindings[count++] = new FieldBinding(IncompleteHierarchy, VoidBinding, AccPrivate, referenceContext.binding, null);

-

-		if (count != fieldBindings.length)

-			System.arraycopy(fieldBindings, 0, fieldBindings = new FieldBinding[count], 0, count);

-		for (int i = 0; i < count; i++)

-			fieldBindings[i].id = i;

-		referenceContext.binding.fields = fieldBindings;

-	}

-	

-	void buildFieldsAndMethods() {

-		buildFields();

-		buildMethods();

-

-		SourceTypeBinding sourceType = referenceContext.binding;

-		if (sourceType.isMemberType() && !sourceType.isLocalType())

-			 ((MemberTypeBinding) sourceType).checkSyntheticArgsAndFields();

-

-		ReferenceBinding[] memberTypes = sourceType.memberTypes;

-		for (int i = 0, length = memberTypes.length; i < length; i++)

-			 ((SourceTypeBinding) memberTypes[i]).scope.buildFieldsAndMethods();

-	}

-	

-	private LocalTypeBinding buildLocalType(

-		SourceTypeBinding enclosingType,

-		PackageBinding packageBinding) {

-	    

-		referenceContext.scope = this;

-		referenceContext.staticInitializerScope = new MethodScope(this, referenceContext, true);

-		referenceContext.initializerScope = new MethodScope(this, referenceContext, false);

-

-		// build the binding or the local type

-		LocalTypeBinding localType = new LocalTypeBinding(this, enclosingType, this.switchCase());

-		referenceContext.binding = localType;

-		checkAndSetModifiers();

-		buildTypeVariables();

-		

-		// Look at member types

-		ReferenceBinding[] memberTypeBindings = NoMemberTypes;

-		if (referenceContext.memberTypes != null) {

-			int size = referenceContext.memberTypes.length;

-			memberTypeBindings = new ReferenceBinding[size];

-			int count = 0;

-			nextMember : for (int i = 0; i < size; i++) {

-				TypeDeclaration memberContext = referenceContext.memberTypes[i];

-				if (memberContext.isInterface()) {

-					problemReporter().nestedClassCannotDeclareInterface(memberContext);

-					continue nextMember;

-				}

-				ReferenceBinding type = localType;

-				// check that the member does not conflict with an enclosing type

-				do {

-					if (CharOperation.equals(type.sourceName, memberContext.name)) {

-						problemReporter().hidingEnclosingType(memberContext);

-						continue nextMember;

-					}

-					type = type.enclosingType();

-				} while (type != null);

-				// check the member type does not conflict with another sibling member type

-				for (int j = 0; j < i; j++) {

-					if (CharOperation.equals(referenceContext.memberTypes[j].name, memberContext.name)) {

-						problemReporter().duplicateNestedType(memberContext);

-						continue nextMember;

-					}

-				}

-				ClassScope memberScope = new ClassScope(this, referenceContext.memberTypes[i]);

-				LocalTypeBinding memberBinding = memberScope.buildLocalType(localType, packageBinding);

-				memberBinding.setAsMemberType();

-				memberTypeBindings[count++] = memberBinding;

-			}

-			if (count != size)

-				System.arraycopy(memberTypeBindings, 0, memberTypeBindings = new ReferenceBinding[count], 0, count);

-		}

-		localType.memberTypes = memberTypeBindings;

-		return localType;

-	}

-	

-	void buildLocalTypeBinding(SourceTypeBinding enclosingType) {

-

-		LocalTypeBinding localType = buildLocalType(enclosingType, enclosingType.fPackage);

-		connectTypeHierarchy();

-		buildFieldsAndMethods();

-		localType.faultInTypesForFieldsAndMethods();

-

-		referenceContext.binding.verifyMethods(environment().methodVerifier());

-	}

-	

-	private void buildMemberTypes() {

-	    SourceTypeBinding sourceType = referenceContext.binding;

-		ReferenceBinding[] memberTypeBindings = NoMemberTypes;

-		if (referenceContext.memberTypes != null) {

-			int length = referenceContext.memberTypes.length;

-			memberTypeBindings = new ReferenceBinding[length];

-			int count = 0;

-			nextMember : for (int i = 0; i < length; i++) {

-				TypeDeclaration memberContext = referenceContext.memberTypes[i];

-				if (memberContext.isInterface()

-					&& sourceType.isNestedType()

-					&& sourceType.isClass()

-					&& !sourceType.isStatic()) {

-					problemReporter().nestedClassCannotDeclareInterface(memberContext);

-					continue nextMember;

-				}

-				ReferenceBinding type = sourceType;

-				// check that the member does not conflict with an enclosing type

-				do {

-					if (CharOperation.equals(type.sourceName, memberContext.name)) {

-						problemReporter().hidingEnclosingType(memberContext);

-						continue nextMember;

-					}

-					type = type.enclosingType();

-				} while (type != null);

-				// check that the member type does not conflict with another sibling member type

-				for (int j = 0; j < i; j++) {

-					if (CharOperation.equals(referenceContext.memberTypes[j].name, memberContext.name)) {

-						problemReporter().duplicateNestedType(memberContext);

-						continue nextMember;

-					}

-				}

-

-				ClassScope memberScope = new ClassScope(this, memberContext);

-				memberTypeBindings[count++] = memberScope.buildType(sourceType, sourceType.fPackage);

-			}

-			if (count != length)

-				System.arraycopy(memberTypeBindings, 0, memberTypeBindings = new ReferenceBinding[count], 0, count);

-		}

-		sourceType.memberTypes = memberTypeBindings;

-	}

-	

-	private void buildMethods() {

-		if (referenceContext.methods == null) {

-			referenceContext.binding.methods = NoMethods;

-			return;

-		}

-

-		// iterate the method declarations to create the bindings

-		AbstractMethodDeclaration[] methods = referenceContext.methods;

-		int size = methods.length;

-		int clinitIndex = -1;

-		for (int i = 0; i < size; i++) {

-			if (methods[i] instanceof Clinit) {

-				clinitIndex = i;

-				break;

-			}

-		}

-		MethodBinding[] methodBindings = new MethodBinding[clinitIndex == -1 ? size : size - 1];

-

-		int count = 0;

-		for (int i = 0; i < size; i++) {

-			if (i != clinitIndex) {

-				MethodScope scope = new MethodScope(this, methods[i], false);

-				MethodBinding methodBinding = scope.createMethod(methods[i]);

-				if (methodBinding != null) // is null if binding could not be created

-					methodBindings[count++] = methodBinding;

-			}

-		}

-		if (count != methodBindings.length)

-			System.arraycopy(methodBindings, 0, methodBindings = new MethodBinding[count], 0, count);

-

-		referenceContext.binding.methods = methodBindings;

-		referenceContext.binding.modifiers |= AccUnresolved; // until methods() is sent

-	}

-	

-	SourceTypeBinding buildType(SourceTypeBinding enclosingType, PackageBinding packageBinding) {

-		// provide the typeDeclaration with needed scopes

-		referenceContext.scope = this;

-		referenceContext.staticInitializerScope = new MethodScope(this, referenceContext, true);

-		referenceContext.initializerScope = new MethodScope(this, referenceContext, false);

-

-		if (enclosingType == null) {

-			char[][] className = CharOperation.arrayConcat(packageBinding.compoundName, referenceContext.name);

-			referenceContext.binding = new SourceTypeBinding(className, packageBinding, this);

-		} else {

-			char[][] className = CharOperation.deepCopy(enclosingType.compoundName);

-			className[className.length - 1] =

-				CharOperation.concat(className[className.length - 1], referenceContext.name, '$');

-			referenceContext.binding = new MemberTypeBinding(className, this, enclosingType);

-		}

-

-		SourceTypeBinding sourceType = referenceContext.binding;

-		sourceType.fPackage.addType(sourceType);

-		checkAndSetModifiers();

-		buildTypeVariables();

-		buildMemberTypes();

-		return sourceType;

-	}

-	

-	private void buildTypeVariables() {

-	    

-	    SourceTypeBinding sourceType = referenceContext.binding;

-		TypeParameter[] typeParameters = referenceContext.typeParameters;

-		

-	    // do not construct type variables if source < 1.5

-		if (typeParameters == null || environment().options.sourceLevel < ClassFileConstants.JDK1_5) {

-		    sourceType.typeVariables = NoTypeVariables;

-		    return;

-		}

-		sourceType.typeVariables = NoTypeVariables; // safety

-

-		if (sourceType.id == T_Object) { // handle the case of redefining java.lang.Object up front

-			problemReporter().objectCannotBeGeneric(referenceContext);

-			return; 

-		}

-		sourceType.typeVariables = createTypeVariables(typeParameters, sourceType);

-		sourceType.modifiers |= AccGenericSignature;

-	}

-	

-	private void checkAndSetModifiers() {

-		SourceTypeBinding sourceType = referenceContext.binding;

-		int modifiers = sourceType.modifiers;

-		if ((modifiers & AccAlternateModifierProblem) != 0)

-			problemReporter().duplicateModifierForType(sourceType);

-

-		ReferenceBinding enclosingType = sourceType.enclosingType();

-		boolean isMemberType = sourceType.isMemberType();

-		

-		if (isMemberType) {

-			// checks for member types before local types to catch local members

-			if (enclosingType.isStrictfp())

-				modifiers |= AccStrictfp;

-			if (enclosingType.isViewedAsDeprecated() && !sourceType.isDeprecated())

-				modifiers |= AccDeprecatedImplicitly;

-			if (enclosingType.isInterface())

-				modifiers |= AccPublic;

-		} else if (sourceType.isLocalType()) {

-			if (sourceType.isAnonymousType()) 

-			    modifiers |= AccFinal;

-			Scope scope = this;

-			do {

-				switch (scope.kind) {

-					case METHOD_SCOPE :

-						MethodScope methodScope = (MethodScope) scope;

-						if (methodScope.isInsideInitializer()) {

-							SourceTypeBinding type = ((TypeDeclaration) methodScope.referenceContext).binding;

-			

-							// inside field declaration ? check field modifier to see if deprecated

-							if (methodScope.initializedField != null) {

-									// currently inside this field initialization

-								if (methodScope.initializedField.isViewedAsDeprecated() && !sourceType.isDeprecated()){

-									modifiers |= AccDeprecatedImplicitly;

-								}

-							} else {

-								if (type.isStrictfp())

-									modifiers |= AccStrictfp;

-								if (type.isViewedAsDeprecated() && !sourceType.isDeprecated()) 

-									modifiers |= AccDeprecatedImplicitly;

-							}					

-						} else {

-							MethodBinding method = ((AbstractMethodDeclaration) methodScope.referenceContext).binding;

-							if (method != null){

-								if (method.isStrictfp())

-									modifiers |= AccStrictfp;

-								if (method.isViewedAsDeprecated() && !sourceType.isDeprecated())

-									modifiers |= AccDeprecatedImplicitly;

-							}

-						}

-						break;

-					case CLASS_SCOPE :

-						// local member

-						if (enclosingType.isStrictfp())

-							modifiers |= AccStrictfp;

-						if (enclosingType.isViewedAsDeprecated() && !sourceType.isDeprecated())

-							modifiers |= AccDeprecatedImplicitly;

-						break;

-				}

-				scope = scope.parent;

-			} while (scope != null);

-		}

-		// after this point, tests on the 16 bits reserved.

-		int realModifiers = modifiers & AccJustFlag;

-

-		if ((realModifiers & AccInterface) != 0) {

-			// detect abnormal cases for interfaces

-			if (isMemberType) {

-				int unexpectedModifiers =

-					~(AccPublic | AccPrivate | AccProtected | AccStatic | AccAbstract | AccInterface | AccStrictfp);

-				if ((realModifiers & unexpectedModifiers) != 0)

-					problemReporter().illegalModifierForMemberInterface(sourceType);

-				/*

-				} else if (sourceType.isLocalType()) { //interfaces cannot be defined inside a method

-					int unexpectedModifiers = ~(AccAbstract | AccInterface | AccStrictfp);

-					if ((realModifiers & unexpectedModifiers) != 0)

-						problemReporter().illegalModifierForLocalInterface(sourceType);

-				*/

-			} else {

-				int unexpectedModifiers = ~(AccPublic | AccAbstract | AccInterface | AccStrictfp);

-				if ((realModifiers & unexpectedModifiers) != 0)

-					problemReporter().illegalModifierForInterface(sourceType);

-			}

-			modifiers |= AccAbstract;

-		} else {

-			// detect abnormal cases for types

-			if (isMemberType) { // includes member types defined inside local types

-				int unexpectedModifiers =

-					~(AccPublic | AccPrivate | AccProtected | AccStatic | AccAbstract | AccFinal | AccStrictfp);

-				if ((realModifiers & unexpectedModifiers) != 0)

-					problemReporter().illegalModifierForMemberClass(sourceType);

-			} else if (sourceType.isLocalType()) {

-				int unexpectedModifiers = ~(AccAbstract | AccFinal | AccStrictfp);

-				if ((realModifiers & unexpectedModifiers) != 0)

-					problemReporter().illegalModifierForLocalClass(sourceType);

-			} else {

-				int unexpectedModifiers = ~(AccPublic | AccAbstract | AccFinal | AccStrictfp);

-				if ((realModifiers & unexpectedModifiers) != 0)

-					problemReporter().illegalModifierForClass(sourceType);

-			}

-

-			// check that Final and Abstract are not set together

-			if ((realModifiers & (AccFinal | AccAbstract)) == (AccFinal | AccAbstract))

-				problemReporter().illegalModifierCombinationFinalAbstractForClass(sourceType);

-		}

-

-		if (isMemberType) {

-			// test visibility modifiers inconsistency, isolate the accessors bits

-			if (enclosingType.isInterface()) {

-				if ((realModifiers & (AccProtected | AccPrivate)) != 0) {

-					problemReporter().illegalVisibilityModifierForInterfaceMemberType(sourceType);

-

-					// need to keep the less restrictive

-					if ((realModifiers & AccProtected) != 0)

-						modifiers ^= AccProtected;

-					if ((realModifiers & AccPrivate) != 0)

-						modifiers ^= AccPrivate;

-				}

-			} else {

-				int accessorBits = realModifiers & (AccPublic | AccProtected | AccPrivate);

-				if ((accessorBits & (accessorBits - 1)) > 1) {

-					problemReporter().illegalVisibilityModifierCombinationForMemberType(sourceType);

-

-					// need to keep the less restrictive

-					if ((accessorBits & AccPublic) != 0) {

-						if ((accessorBits & AccProtected) != 0)

-							modifiers ^= AccProtected;

-						if ((accessorBits & AccPrivate) != 0)

-							modifiers ^= AccPrivate;

-					}

-					if ((accessorBits & AccProtected) != 0)

-						if ((accessorBits & AccPrivate) != 0)

-							modifiers ^= AccPrivate;

-				}

-			}

-

-			// static modifier test

-			if ((realModifiers & AccStatic) == 0) {

-				if (enclosingType.isInterface())

-					modifiers |= AccStatic;

-			} else {

-				if (!enclosingType.isStatic())

-					// error the enclosing type of a static field must be static or a top-level type

-					problemReporter().illegalStaticModifierForMemberType(sourceType);

-			}

-		}

-

-		sourceType.modifiers = modifiers;

-	}

-	

-	/* This method checks the modifiers of a field.

-	*

-	* 9.3 & 8.3

-	* Need to integrate the check for the final modifiers for nested types

-	*

-	* Note : A scope is accessible by : fieldBinding.declaringClass.scope

-	*/

-	private void checkAndSetModifiersForField(FieldBinding fieldBinding, FieldDeclaration fieldDecl) {

-		int modifiers = fieldBinding.modifiers;

-		if ((modifiers & AccAlternateModifierProblem) != 0)

-			problemReporter().duplicateModifierForField(fieldBinding.declaringClass, fieldDecl);

-

-		if (fieldBinding.declaringClass.isInterface()) {

-			int expectedValue = AccPublic | AccStatic | AccFinal;

-			// set the modifiers

-			modifiers |= expectedValue;

-

-			// and then check that they are the only ones

-			if ((modifiers & AccJustFlag) != expectedValue)

-				problemReporter().illegalModifierForInterfaceField(fieldBinding.declaringClass, fieldDecl);

-			fieldBinding.modifiers = modifiers;

-			return;

-		}

-

-		// after this point, tests on the 16 bits reserved.

-		int realModifiers = modifiers & AccJustFlag;

-		int unexpectedModifiers =

-			~(AccPublic | AccPrivate | AccProtected | AccFinal | AccStatic | AccTransient | AccVolatile);

-		if ((realModifiers & unexpectedModifiers) != 0)

-			problemReporter().illegalModifierForField(fieldBinding.declaringClass, fieldDecl);

-

-		int accessorBits = realModifiers & (AccPublic | AccProtected | AccPrivate);

-		if ((accessorBits & (accessorBits - 1)) > 1) {

-			problemReporter().illegalVisibilityModifierCombinationForField(

-				fieldBinding.declaringClass,

-				fieldDecl);

-

-			// need to keep the less restrictive

-			if ((accessorBits & AccPublic) != 0) {

-				if ((accessorBits & AccProtected) != 0)

-					modifiers ^= AccProtected;

-				if ((accessorBits & AccPrivate) != 0)

-					modifiers ^= AccPrivate;

-			}

-			if ((accessorBits & AccProtected) != 0)

-				if ((accessorBits & AccPrivate) != 0)

-					modifiers ^= AccPrivate;

-		}

-

-		if ((realModifiers & (AccFinal | AccVolatile)) == (AccFinal | AccVolatile))

-			problemReporter().illegalModifierCombinationFinalVolatileForField(

-				fieldBinding.declaringClass,

-				fieldDecl);

-

-		if (fieldDecl.initialization == null && (modifiers & AccFinal) != 0) {

-			modifiers |= AccBlankFinal;

-		}

-		fieldBinding.modifiers = modifiers;

-	}

-

-	private void checkForInheritedMemberTypes(SourceTypeBinding sourceType) {

-		// search up the hierarchy of the sourceType to see if any superType defines a member type

-		// when no member types are defined, tag the sourceType & each superType with the HasNoMemberTypes bit

-		// assumes super types have already been checked & tagged

-		ReferenceBinding currentType = sourceType;

-		ReferenceBinding[][] interfacesToVisit = null;

-		int lastPosition = -1;

-		do {

-			if (currentType.hasMemberTypes()) // avoid resolving member types eagerly

-				return;

-

-			ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-			if (itsInterfaces != NoSuperInterfaces) {

-				if (interfacesToVisit == null)

-					interfacesToVisit = new ReferenceBinding[5][];

-				if (++lastPosition == interfacesToVisit.length)

-					System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-				interfacesToVisit[lastPosition] = itsInterfaces;

-			}

-		} while ((currentType = currentType.superclass()) != null && (currentType.tagBits & HasNoMemberTypes) == 0);

-

-		if (interfacesToVisit != null) {

-			// contains the interfaces between the sourceType and any superclass, which was tagged as having no member types

-			boolean needToTag = false;

-			for (int i = 0; i <= lastPosition; i++) {

-				ReferenceBinding[] interfaces = interfacesToVisit[i];

-				for (int j = 0, length = interfaces.length; j < length; j++) {

-					ReferenceBinding anInterface = interfaces[j];

-					if ((anInterface.tagBits & HasNoMemberTypes) == 0) { // skip interface if it already knows it has no member types

-						if (anInterface.hasMemberTypes()) // avoid resolving member types eagerly

-							return;

-

-						needToTag = true;

-						ReferenceBinding[] itsInterfaces = anInterface.superInterfaces();

-						if (itsInterfaces != NoSuperInterfaces) {

-							if (++lastPosition == interfacesToVisit.length)

-								System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-							interfacesToVisit[lastPosition] = itsInterfaces;

-						}

-					}

-				}

-			}

-

-			if (needToTag) {

-				for (int i = 0; i <= lastPosition; i++) {

-					ReferenceBinding[] interfaces = interfacesToVisit[i];

-					for (int j = 0, length = interfaces.length; j < length; j++)

-						interfaces[j].tagBits |= HasNoMemberTypes;

-				}

-			}

-		}

-

-		// tag the sourceType and all of its superclasses, unless they have already been tagged

-		currentType = sourceType;

-		do {

-			currentType.tagBits |= HasNoMemberTypes;

-		} while ((currentType = currentType.superclass()) != null && (currentType.tagBits & HasNoMemberTypes) == 0);

-	}

-	// Perform deferred bound checks for parameterized type references (only done after hierarchy is connected)

-	private void  checkParameterizedTypeBounds() {

-		TypeReference superclass = referenceContext.superclass;

-		if (superclass != null) {

-			superclass.checkBounds(this);

-		}

-		TypeReference[] superinterfaces = referenceContext.superInterfaces;

-		if (superinterfaces != null) {

-			for (int i = 0, length = superinterfaces.length; i < length; i++) {

-				superinterfaces[i].checkBounds(this);

-			}

-		}

-		TypeParameter[] typeParameters = referenceContext.typeParameters;

-		if (typeParameters != null) {

-			for (int i = 0, paramLength = typeParameters.length; i < paramLength; i++) {

-				TypeParameter typeParameter = typeParameters[i];

-				TypeReference typeRef = typeParameter.type;

-				if (typeRef != null) {

-					typeRef.checkBounds(this);

-

-					TypeReference[] boundRefs = typeParameter.bounds;

-					if (boundRefs != null)

-						for (int j = 0, k = boundRefs.length; j < k; j++)

-							boundRefs[j].checkBounds(this);

-				}

-			}

-		}

-	}

-

-	private void connectMemberTypes() {

-		SourceTypeBinding sourceType = referenceContext.binding;

-		if (sourceType.memberTypes != NoMemberTypes)

-			for (int i = 0, size = sourceType.memberTypes.length; i < size; i++)

-				 ((SourceTypeBinding) sourceType.memberTypes[i]).scope.connectTypeHierarchy();

-	}

-	/*

-		Our current belief based on available JCK tests is:

-			inherited member types are visible as a potential superclass.

-			inherited interfaces are not visible when defining a superinterface.

-	

-		Error recovery story:

-			ensure the superclass is set to java.lang.Object if a problem is detected

-			resolving the superclass.

-	

-		Answer false if an error was reported against the sourceType.

-	*/

-	private boolean connectSuperclass() {

-		SourceTypeBinding sourceType = referenceContext.binding;

-		if (sourceType.id == T_Object) { // handle the case of redefining java.lang.Object up front

-			sourceType.superclass = null;

-			sourceType.superInterfaces = NoSuperInterfaces;

-			if (referenceContext.superclass != null || referenceContext.superInterfaces != null)

-				problemReporter().objectCannotHaveSuperTypes(sourceType);

-			return true; // do not propagate Object's hierarchy problems down to every subtype

-		}

-		if (referenceContext.superclass == null) {

-			sourceType.superclass = getJavaLangObject();

-			return !detectCycle(sourceType, sourceType.superclass, null);

-		}

-		TypeReference superclassRef = referenceContext.superclass;

-		ReferenceBinding superclass = findSupertype(superclassRef);

-		if (superclass != null) { // is null if a cycle was detected cycle or a problem

-			if (superclass.isInterface()) {

-				problemReporter().superclassMustBeAClass(sourceType, superclassRef, superclass);

-			} else if (superclass.isFinal()) {

-				problemReporter().classExtendFinalClass(sourceType, superclassRef, superclass);

-			} else if ((superclass.tagBits & TagBits.HasWildcard) != 0) {

-				problemReporter().superTypeCannotUseWildcard(sourceType, superclassRef, superclass);

-			} else {

-				// only want to reach here when no errors are reported

-				sourceType.superclass = superclass;

-				return true;

-			}

-		}

-		sourceType.tagBits |= HierarchyHasProblems;

-		sourceType.superclass = getJavaLangObject();

-		if ((sourceType.superclass.tagBits & BeginHierarchyCheck) == 0)

-			detectCycle(sourceType, sourceType.superclass, null);

-		return false; // reported some error against the source type

-	}

-

-	/*

-		Our current belief based on available JCK 1.3 tests is:

-			inherited member types are visible as a potential superclass.

-			inherited interfaces are visible when defining a superinterface.

-	

-		Error recovery story:

-			ensure the superinterfaces contain only valid visible interfaces.

-	

-		Answer false if an error was reported against the sourceType.

-	*/

-	private boolean connectSuperInterfaces() {

-		SourceTypeBinding sourceType = referenceContext.binding;

-		sourceType.superInterfaces = NoSuperInterfaces;

-		if (referenceContext.superInterfaces == null)

-			return true;

-		if (sourceType.id == T_Object) // already handled the case of redefining java.lang.Object

-			return true;

-

-		boolean noProblems = true;

-		int length = referenceContext.superInterfaces.length;

-		ReferenceBinding[] interfaceBindings = new ReferenceBinding[length];

-		int count = 0;

-		nextInterface : for (int i = 0; i < length; i++) {

-		    TypeReference superInterfaceRef = referenceContext.superInterfaces[i];

-			ReferenceBinding superInterface = findSupertype(superInterfaceRef);

-			if (superInterface == null) { // detected cycle

-				sourceType.tagBits |= HierarchyHasProblems;

-				noProblems = false;

-				continue nextInterface;

-			}

-			superInterfaceRef.resolvedType = superInterface; // hold onto the problem type

-			// Check for a duplicate interface once the name is resolved, otherwise we may be confused (ie : a.b.I and c.d.I)

-			for (int k = 0; k < count; k++) {

-				if (interfaceBindings[k] == superInterface) {

-					// should this be treated as a warning?

-					problemReporter().duplicateSuperinterface(sourceType, referenceContext, superInterface);

-					continue nextInterface;

-				}

-			}

-			if (superInterface.isClass()) {

-				problemReporter().superinterfaceMustBeAnInterface(sourceType, superInterfaceRef, superInterface);

-				sourceType.tagBits |= HierarchyHasProblems;

-				noProblems = false;

-				continue nextInterface;

-			}

-			if ((superInterface.tagBits & TagBits.HasWildcard) != 0) {

-				problemReporter().superTypeCannotUseWildcard(sourceType, superInterfaceRef, superInterface);

-				sourceType.tagBits |= HierarchyHasProblems;

-				noProblems = false;

-				continue nextInterface;

-			}

-			ReferenceBinding invalid = findAmbiguousInterface(superInterface, sourceType);

-			if (invalid != null) {

-				ReferenceBinding generic = null;

-				if (superInterface.isParameterizedType())

-					generic = ((ParameterizedTypeBinding) superInterface).type;

-				else if (invalid.isParameterizedType())

-					generic = ((ParameterizedTypeBinding) invalid).type;

-				problemReporter().superinterfacesCollide(generic, referenceContext, superInterface, invalid);

-				sourceType.tagBits |= HierarchyHasProblems;

-				noProblems = false;

-				continue nextInterface;

-			}

-

-			// only want to reach here when no errors are reported

-			interfaceBindings[count++] = superInterface;

-		}

-		// hold onto all correctly resolved superinterfaces

-		if (count > 0) {

-			if (count != length)

-				System.arraycopy(interfaceBindings, 0, interfaceBindings = new ReferenceBinding[count], 0, count);

-			sourceType.superInterfaces = interfaceBindings;

-		}

-		return noProblems;

-	}

-	

-	void connectTypeHierarchy() {

-		SourceTypeBinding sourceType = referenceContext.binding;

-		if ((sourceType.tagBits & BeginHierarchyCheck) == 0) {

-			sourceType.tagBits |= BeginHierarchyCheck;

-			boolean noProblems = connectTypeVariables(referenceContext.typeParameters);

-			noProblems &= connectSuperclass();

-			noProblems &= connectSuperInterfaces();

-			sourceType.tagBits |= EndHierarchyCheck;

-			if (noProblems && sourceType.isHierarchyInconsistent())

-				problemReporter().hierarchyHasProblems(sourceType);

-		}

-		// Perform deferred bound checks for parameterized type references (only done after hierarchy is connected)

-		checkParameterizedTypeBounds();

-		connectMemberTypes();

-		try {

-			checkForInheritedMemberTypes(sourceType);

-		} catch (AbortCompilation e) {

-			e.updateContext(referenceContext, referenceCompilationUnit().compilationResult);

-			throw e;

-		}

-	}

-	

-	private void connectTypeHierarchyWithoutMembers() {

-		// must ensure the imports are resolved

-		if (parent instanceof CompilationUnitScope) {

-			if (((CompilationUnitScope) parent).imports == null)

-				 ((CompilationUnitScope) parent).checkAndSetImports();

-		} else if (parent instanceof ClassScope) {

-			// ensure that the enclosing type has already been checked

-			 ((ClassScope) parent).connectTypeHierarchyWithoutMembers();

-		}

-

-		// double check that the hierarchy search has not already begun...

-		SourceTypeBinding sourceType = referenceContext.binding;

-		if ((sourceType.tagBits & BeginHierarchyCheck) != 0)

-			return;

-

-		sourceType.tagBits |= BeginHierarchyCheck;

-		boolean noProblems = connectTypeVariables(referenceContext.typeParameters);

-		noProblems &= connectSuperclass();

-		noProblems &= connectSuperInterfaces();

-		sourceType.tagBits |= EndHierarchyCheck;

-		if (noProblems && sourceType.isHierarchyInconsistent())

-			problemReporter().hierarchyHasProblems(sourceType);

-	}

-

-	public boolean detectCycle(TypeBinding superType, TypeReference reference, TypeBinding[] argTypes) {

-		if (!(superType instanceof ReferenceBinding)) return false;

-

-		if (argTypes != null) {

-			for (int i = 0, l = argTypes.length; i < l; i++) {

-				TypeBinding argType = argTypes[i].leafComponentType();

-				if ((argType.tagBits & BeginHierarchyCheck) == 0 && argType instanceof SourceTypeBinding)

-			    	// ensure if this is a source argument type that it has already been checked

-			    	((SourceTypeBinding) argType).scope.connectTypeHierarchyWithoutMembers();

-			}

-		}

-

-		if (reference == this.superTypeReference) { // see findSuperType()

-			if (superType.isTypeVariable())

-				return false; // error case caught in resolveSuperType()

-			// abstract class X<K,V> implements java.util.Map<K,V>

-			//    static abstract class M<K,V> implements Entry<K,V>

-			if (superType.isParameterizedType())

-				superType = ((ParameterizedTypeBinding) superType).type;

-			compilationUnitScope().recordSuperTypeReference(superType); // to record supertypes

-			return detectCycle(referenceContext.binding, (ReferenceBinding) superType, reference);

-		}

-

-		if ((superType.tagBits & BeginHierarchyCheck) == 0 && superType instanceof SourceTypeBinding)

-			// ensure if this is a source superclass that it has already been checked

-			((SourceTypeBinding) superType).scope.connectTypeHierarchyWithoutMembers();

-		return false;

-	}

-

-	// Answer whether a cycle was found between the sourceType & the superType

-	private boolean detectCycle(SourceTypeBinding sourceType, ReferenceBinding superType, TypeReference reference) {

-		if (superType.isRawType())

-			superType = ((RawTypeBinding) superType).type;

-		// by this point the superType must be a binary or source type

-

-		if (sourceType == superType) {

-			problemReporter().hierarchyCircularity(sourceType, superType, reference);

-			sourceType.tagBits |= HierarchyHasProblems;

-			return true;

-		}

-

-		if (superType.isMemberType()) {

-			ReferenceBinding current = superType.enclosingType();

-			do {

-				if (current.isHierarchyBeingConnected()) {

-					problemReporter().hierarchyCircularity(sourceType, current, reference);

-					sourceType.tagBits |= HierarchyHasProblems;

-					current.tagBits |= HierarchyHasProblems;

-					return true;

-				}

-			} while ((current = current.enclosingType()) != null);

-		}

-

-		if (superType.isBinaryBinding()) {

-			// force its superclass & superinterfaces to be found... 2 possibilities exist - the source type is included in the hierarchy of:

-			//		- a binary type... this case MUST be caught & reported here

-			//		- another source type... this case is reported against the other source type

-			boolean hasCycle = false;

-			if (superType.superclass() != null) {

-				if (sourceType == superType.superclass()) {

-					problemReporter().hierarchyCircularity(sourceType, superType, reference);

-					sourceType.tagBits |= HierarchyHasProblems;

-					superType.tagBits |= HierarchyHasProblems;

-					return true;

-				}

-				ReferenceBinding parentType = superType.superclass();

-				if (parentType.isParameterizedType())

-					parentType = ((ParameterizedTypeBinding) parentType).type;

-				hasCycle |= detectCycle(sourceType, parentType, reference);

-				if ((parentType.tagBits & HierarchyHasProblems) != 0) {

-					sourceType.tagBits |= HierarchyHasProblems;

-					parentType.tagBits |= HierarchyHasProblems; // propagate down the hierarchy

-				}

-			}

-

-			ReferenceBinding[] itsInterfaces = superType.superInterfaces();

-			if (itsInterfaces != NoSuperInterfaces) {

-				for (int i = 0, length = itsInterfaces.length; i < length; i++) {

-					ReferenceBinding anInterface = itsInterfaces[i];

-					if (sourceType == anInterface) {

-						problemReporter().hierarchyCircularity(sourceType, superType, reference);

-						sourceType.tagBits |= HierarchyHasProblems;

-						superType.tagBits |= HierarchyHasProblems;

-						return true;

-					}

-					if (anInterface.isParameterizedType())

-						anInterface = ((ParameterizedTypeBinding) anInterface).type;

-					hasCycle |= detectCycle(sourceType, anInterface, reference);

-					if ((anInterface.tagBits & HierarchyHasProblems) != 0) {

-						sourceType.tagBits |= HierarchyHasProblems;

-						superType.tagBits |= HierarchyHasProblems;

-					}

-				}

-			}

-			return hasCycle;

-		}

-

-		if (superType.isHierarchyBeingConnected()) {

-			if (((SourceTypeBinding) superType).scope.superTypeReference != null) { // if null then its connecting its type variables

-				problemReporter().hierarchyCircularity(sourceType, superType, reference);

-				sourceType.tagBits |= HierarchyHasProblems;

-				superType.tagBits |= HierarchyHasProblems;

-				return true;

-			}

-		}

-		if ((superType.tagBits & BeginHierarchyCheck) == 0)

-			// ensure if this is a source superclass that it has already been checked

-			((SourceTypeBinding) superType).scope.connectTypeHierarchyWithoutMembers();

-		if ((superType.tagBits & HierarchyHasProblems) != 0)

-			sourceType.tagBits |= HierarchyHasProblems;

-		return false;

-	}

-

-	private ReferenceBinding findAmbiguousInterface(ReferenceBinding newInterface, ReferenceBinding currentType) {

-		TypeBinding newErasure = newInterface.erasure();

-		if (newInterface == newErasure) return null;

-

-		ReferenceBinding[][] interfacesToVisit = new ReferenceBinding[5][];

-		int lastPosition = -1;

-		do {

-			ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-			if (itsInterfaces != NoSuperInterfaces) {

-				if (++lastPosition == interfacesToVisit.length)

-					System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-				interfacesToVisit[lastPosition] = itsInterfaces;

-			}

-		} while ((currentType = currentType.superclass()) != null);

-

-		for (int i = 0; i <= lastPosition; i++) {

-			ReferenceBinding[] interfaces = interfacesToVisit[i];

-			for (int j = 0, length = interfaces.length; j < length; j++) {

-				currentType = interfaces[j];

-				if (currentType.erasure() == newErasure)

-					if (currentType != newInterface)

-						return currentType;

-

-				ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-				if (itsInterfaces != NoSuperInterfaces) {

-					if (++lastPosition == interfacesToVisit.length)

-						System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-					interfacesToVisit[lastPosition] = itsInterfaces;

-				}

-			}

-		}

-		return null;

-	}

-

-	private ReferenceBinding findSupertype(TypeReference typeReference) {

-		try {

-			typeReference.aboutToResolve(this); // allows us to trap completion & selection nodes

-			compilationUnitScope().recordQualifiedReference(typeReference.getTypeName());

-			this.superTypeReference = typeReference;

-			ReferenceBinding superType = (ReferenceBinding) typeReference.resolveSuperType(this);

-			this.superTypeReference = null;

-			return superType;

-		} catch (AbortCompilation e) {

-			e.updateContext(typeReference, referenceCompilationUnit().compilationResult);

-			throw e;

-		}			

-	}

-

-	/* Answer the problem reporter to use for raising new problems.

-	*

-	* Note that as a side-effect, this updates the current reference context

-	* (unit, type or method) in case the problem handler decides it is necessary

-	* to abort.

-	*/

-	public ProblemReporter problemReporter() {

-		MethodScope outerMethodScope;

-		if ((outerMethodScope = outerMostMethodScope()) == null) {

-			ProblemReporter problemReporter = referenceCompilationUnit().problemReporter;

-			problemReporter.referenceContext = referenceContext;

-			return problemReporter;

-		}

-		return outerMethodScope.problemReporter();

-	}

-

-	/* Answer the reference type of this scope.

-	* It is the nearest enclosing type of this scope.

-	*/

-	public TypeDeclaration referenceType() {

-		return referenceContext;

-	}

-	

-	public String toString() {

-		if (referenceContext != null)

-			return "--- Class Scope ---\n\n"  //$NON-NLS-1$

-							+ referenceContext.binding.toString();

-		return "--- Class Scope ---\n\n Binding not initialized" ; //$NON-NLS-1$

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/CompilationUnitScope.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/CompilationUnitScope.js
deleted file mode 100644
index e418131..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/CompilationUnitScope.js
+++ /dev/null
@@ -1,633 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.util.*;

-

-public class CompilationUnitScope extends Scope {

-	

-	public LookupEnvironment environment;

-	public CompilationUnitDeclaration referenceContext;

-	public char[][] currentPackageName;

-	public PackageBinding fPackage;

-	public ImportBinding[] imports;

-	public HashtableOfObject resolvedSingeTypeImports;

-	

-	public SourceTypeBinding[] topLevelTypes;

-

-	private CompoundNameVector qualifiedReferences;

-	private SimpleNameVector simpleNameReferences;

-	private ObjectVector referencedTypes;

-	private ObjectVector referencedSuperTypes;

-	

-	HashtableOfType constantPoolNameUsage;

-

-public CompilationUnitScope(CompilationUnitDeclaration unit, LookupEnvironment environment) {

-	super(COMPILATION_UNIT_SCOPE, null);

-	this.environment = environment;

-	this.referenceContext = unit;

-	unit.scope = this;

-	this.currentPackageName = unit.currentPackage == null ? CharOperation.NO_CHAR_CHAR : unit.currentPackage.tokens;

-

-	if (environment.options.produceReferenceInfo) {

-		this.qualifiedReferences = new CompoundNameVector();

-		this.simpleNameReferences = new SimpleNameVector();

-		this.referencedTypes = new ObjectVector();

-		this.referencedSuperTypes = new ObjectVector();

-	} else {

-		this.qualifiedReferences = null; // used to test if dependencies should be recorded

-		this.simpleNameReferences = null;

-		this.referencedTypes = null;

-		this.referencedSuperTypes = null;

-	}

-}

-void buildFieldsAndMethods() {

-	for (int i = 0, length = topLevelTypes.length; i < length; i++)

-		topLevelTypes[i].scope.buildFieldsAndMethods();

-}

-void buildTypeBindings() {

-	topLevelTypes = new SourceTypeBinding[0]; // want it initialized if the package cannot be resolved

-	if (referenceContext.compilationResult.compilationUnit != null) {

-		char[][] expectedPackageName = referenceContext.compilationResult.compilationUnit.getPackageName();

-		if (expectedPackageName != null 

-				&& !CharOperation.equals(currentPackageName, expectedPackageName)) {

-

-			// only report if the unit isn't structurally empty

-			if (referenceContext.currentPackage != null 

-					|| referenceContext.types != null 

-					|| referenceContext.imports != null) {

-				problemReporter().packageIsNotExpectedPackage(referenceContext);

-			}

-			currentPackageName = expectedPackageName.length == 0 ? CharOperation.NO_CHAR_CHAR : expectedPackageName;

-		}

-	}

-	if (currentPackageName == CharOperation.NO_CHAR_CHAR) {

-		if ((fPackage = environment.defaultPackage) == null) {

-			problemReporter().mustSpecifyPackage(referenceContext);

-			return;

-		}

-	} else {

-		if ((fPackage = environment.createPackage(currentPackageName)) == null) {

-			problemReporter().packageCollidesWithType(referenceContext);

-			return;

-		}

-		recordQualifiedReference(currentPackageName); // always dependent on your own package

-	}

-

-	// Skip typeDeclarations which know of previously reported errors

-	TypeDeclaration[] types = referenceContext.types;

-	int typeLength = (types == null) ? 0 : types.length;

-	topLevelTypes = new SourceTypeBinding[typeLength];

-	int count = 0;

-	nextType: for (int i = 0; i < typeLength; i++) {

-		TypeDeclaration typeDecl = types[i];

-		ReferenceBinding typeBinding = fPackage.getType0(typeDecl.name);

-		recordSimpleReference(typeDecl.name); // needed to detect collision cases

-		if (typeBinding != null && !(typeBinding instanceof UnresolvedReferenceBinding)) {

-			// if a type exists, it must be a valid type - cannot be a NotFound problem type

-			// unless its an unresolved type which is now being defined

-			problemReporter().duplicateTypes(referenceContext, typeDecl);

-			continue nextType;

-		}

-		if (fPackage != environment.defaultPackage && fPackage.getPackage(typeDecl.name) != null) {

-			// if a package exists, it must be a valid package - cannot be a NotFound problem package

-			problemReporter().typeCollidesWithPackage(referenceContext, typeDecl);

-			continue nextType;

-		}

-

-		if ((typeDecl.modifiers & AccPublic) != 0) {

-			char[] mainTypeName;

-			if ((mainTypeName = referenceContext.getMainTypeName()) != null // mainTypeName == null means that implementor of ICompilationUnit decided to return null

-					&& !CharOperation.equals(mainTypeName, typeDecl.name)) {

-				problemReporter().publicClassMustMatchFileName(referenceContext, typeDecl);

-				continue nextType;

-			}

-		}

-

-		ClassScope child = new ClassScope(this, typeDecl);

-		SourceTypeBinding type = child.buildType(null, fPackage);

-		if(type != null) {

-			topLevelTypes[count++] = type;

-		}

-	}

-

-	// shrink topLevelTypes... only happens if an error was reported

-	if (count != topLevelTypes.length)

-		System.arraycopy(topLevelTypes, 0, topLevelTypes = new SourceTypeBinding[count], 0, count);

-}

-void checkAndSetImports() {

-	if (referenceContext.imports == null) {

-		imports = getDefaultImports();

-		return;

-	}

-

-	// allocate the import array, add java.lang.* by default

-	int numberOfStatements = referenceContext.imports.length;

-	int numberOfImports = numberOfStatements + 1;

-	for (int i = 0; i < numberOfStatements; i++) {

-		ImportReference importReference = referenceContext.imports[i];

-		if (importReference.onDemand && CharOperation.equals(JAVA_LANG, importReference.tokens)) {

-			numberOfImports--;

-			break;

-		}

-	}

-	ImportBinding[] resolvedImports = new ImportBinding[numberOfImports];

-	resolvedImports[0] = getDefaultImports()[0];

-	int index = 1;

-

-	nextImport : for (int i = 0; i < numberOfStatements; i++) {

-		ImportReference importReference = referenceContext.imports[i];

-		char[][] compoundName = importReference.tokens;

-

-		// skip duplicates or imports of the current package

-		for (int j = 0; j < index; j++)

-			if (resolvedImports[j].onDemand == importReference.onDemand)

-				if (CharOperation.equals(compoundName, resolvedImports[j].compoundName))

-					continue nextImport;

-		if (importReference.onDemand == true)

-			if (CharOperation.equals(compoundName, currentPackageName))

-				continue nextImport;

-

-		if (importReference.onDemand) {

-			Binding importBinding = findOnDemandImport(compoundName);

-			if (!importBinding.isValidBinding())

-				continue nextImport;	// we report all problems in faultInImports()

-			resolvedImports[index++] = new ImportBinding(compoundName, true, importBinding, importReference);

-		} else {

-			resolvedImports[index++] = new ImportBinding(compoundName, false, null, importReference);

-		}

-	}

-

-	// shrink resolvedImports... only happens if an error was reported

-	if (resolvedImports.length > index)

-		System.arraycopy(resolvedImports, 0, resolvedImports = new ImportBinding[index], 0, index);

-	imports = resolvedImports;

-}

-/*

- * INTERNAL USE-ONLY

- * Innerclasses get their name computed as they are generated, since some may not

- * be actually outputed if sitting inside unreachable code.

- */

-public char[] computeConstantPoolName(LocalTypeBinding localType) {

-	if (localType.constantPoolName() != null) {

-		return localType.constantPoolName();

-	}

-	// delegates to the outermost enclosing classfile, since it is the only one with a global vision of its innertypes.

-

-	if (constantPoolNameUsage == null)

-		constantPoolNameUsage = new HashtableOfType();

-

-	ReferenceBinding outerMostEnclosingType = localType.scope.outerMostClassScope().enclosingSourceType();

-	

-	// ensure there is not already such a local type name defined by the user

-	int index = 0;

-	char[] candidateName;

-	while(true) {

-		if (localType.isMemberType()){

-			if (index == 0){

-				candidateName = CharOperation.concat(

-					localType.enclosingType().constantPoolName(),

-					localType.sourceName,

-					'$');

-			} else {

-				// in case of collision, then member name gets extra $1 inserted

-				// e.g. class X { { class L{} new X(){ class L{} } } }

-				candidateName = CharOperation.concat(

-					localType.enclosingType().constantPoolName(),

-					'$',

-					String.valueOf(index).toCharArray(),

-					'$',

-					localType.sourceName);

-			}

-		} else if (localType.isAnonymousType()){

-				candidateName = CharOperation.concat(

-					outerMostEnclosingType.constantPoolName(),

-					String.valueOf(index+1).toCharArray(),

-					'$');

-		} else {

-				candidateName = CharOperation.concat(

-					outerMostEnclosingType.constantPoolName(),

-					'$',

-					String.valueOf(index+1).toCharArray(),

-					'$',

-					localType.sourceName);

-		}						

-		if (constantPoolNameUsage.get(candidateName) != null) {

-			index ++;

-		} else {

-			constantPoolNameUsage.put(candidateName, localType);

-			break;

-		}

-	}

-	return candidateName;

-}

-

-void connectTypeHierarchy() {

-	for (int i = 0, length = topLevelTypes.length; i < length; i++)

-		topLevelTypes[i].scope.connectTypeHierarchy();

-}

-void faultInImports() {

-	if (referenceContext.imports == null)

-		return;

-

-	// collect the top level type names if a single type import exists

-	int numberOfStatements = referenceContext.imports.length;

-	HashtableOfType typesBySimpleNames = null;

-	for (int i = 0; i < numberOfStatements; i++) {

-		if (!referenceContext.imports[i].onDemand) {

-			typesBySimpleNames = new HashtableOfType(topLevelTypes.length + numberOfStatements);

-			for (int j = 0, length = topLevelTypes.length; j < length; j++)

-				typesBySimpleNames.put(topLevelTypes[j].sourceName, topLevelTypes[j]);

-			break;

-		}

-	}

-

-	// allocate the import array, add java.lang.* by default

-	int numberOfImports = numberOfStatements + 1;

-	for (int i = 0; i < numberOfStatements; i++) {

-		ImportReference importReference = referenceContext.imports[i];

-		if (importReference.onDemand && CharOperation.equals(JAVA_LANG, importReference.tokens)) {

-			numberOfImports--;

-			break;

-		}

-	}

-	ImportBinding[] resolvedImports = new ImportBinding[numberOfImports];

-	resolvedImports[0] = getDefaultImports()[0];

-	int index = 1;

-

-	nextImport : for (int i = 0; i < numberOfStatements; i++) {

-		ImportReference importReference = referenceContext.imports[i];

-		char[][] compoundName = importReference.tokens;

-

-		// skip duplicates or imports of the current package

-		for (int j = 0; j < index; j++)

-			if (resolvedImports[j].onDemand == importReference.onDemand)

-				if (CharOperation.equals(compoundName, resolvedImports[j].compoundName)) {

-					problemReporter().unusedImport(importReference); // since skipped, must be reported now

-					continue nextImport;

-				}

-		if (importReference.onDemand == true)

-			if (CharOperation.equals(compoundName, currentPackageName)) {

-				problemReporter().unusedImport(importReference); // since skipped, must be reported now

-				continue nextImport;

-			}

-		if (importReference.onDemand) {

-			Binding importBinding = findOnDemandImport(compoundName);

-			if (!importBinding.isValidBinding()) {

-				problemReporter().importProblem(importReference, importBinding);

-				continue nextImport;

-			}

-			resolvedImports[index++] = new ImportBinding(compoundName, true, importBinding, importReference);

-		} else {

-			Binding typeBinding = findSingleTypeImport(compoundName);

-			if (!typeBinding.isValidBinding()) {

-				problemReporter().importProblem(importReference, typeBinding);

-				continue nextImport;

-			}

-			if (typeBinding instanceof PackageBinding) {

-				problemReporter().cannotImportPackage(importReference);

-				continue nextImport;

-			}

-			if (typeBinding instanceof ReferenceBinding) {

-				ReferenceBinding referenceBinding = (ReferenceBinding) typeBinding;

-				if (importReference.isTypeUseDeprecated(referenceBinding, this)) {

-					problemReporter().deprecatedType((TypeBinding) typeBinding, importReference);

-				}

-			}

-			ReferenceBinding existingType = typesBySimpleNames.get(compoundName[compoundName.length - 1]);

-			if (existingType != null) {

-				// duplicate test above should have caught this case, but make sure

-				if (existingType == typeBinding) {

-					continue nextImport;

-				}

-				// either the type collides with a top level type or another imported type

-				for (int j = 0, length = topLevelTypes.length; j < length; j++) {

-					if (CharOperation.equals(topLevelTypes[j].sourceName, existingType.sourceName)) {

-						problemReporter().conflictingImport(importReference);

-						continue nextImport;

-					}

-				}

-				problemReporter().duplicateImport(importReference);

-				continue nextImport;

-			}

-			resolvedImports[index++] = new ImportBinding(compoundName, false, typeBinding, importReference);

-			typesBySimpleNames.put(compoundName[compoundName.length - 1], (ReferenceBinding) typeBinding);

-		}

-	}

-

-	// shrink resolvedImports... only happens if an error was reported

-	if (resolvedImports.length > index)

-		System.arraycopy(resolvedImports, 0, resolvedImports = new ImportBinding[index], 0, index);

-	imports = resolvedImports;

-

-	int length = imports.length;

-	resolvedSingeTypeImports = new HashtableOfObject(length);

-	for (int i = 0; i < length; i++) {

-		ImportBinding binding = imports[i];

-		if (!binding.onDemand)

-			resolvedSingeTypeImports.put(binding.compoundName[binding.compoundName.length - 1], binding);

-	}

-}

-public void faultInTypes() {

-	faultInImports();

-

-	for (int i = 0, length = topLevelTypes.length; i < length; i++)

-		topLevelTypes[i].faultInTypesForFieldsAndMethods();

-}

-private Binding findOnDemandImport(char[][] compoundName) {

-	recordQualifiedReference(compoundName);

-

-	Binding binding = environment.getTopLevelPackage(compoundName[0]);

-	int i = 1;

-	int length = compoundName.length;

-	foundNothingOrType: if (binding != null) {

-		PackageBinding packageBinding = (PackageBinding) binding;

-		while (i < length) {

-			binding = packageBinding.getTypeOrPackage(compoundName[i++]);

-			if (binding == null || !binding.isValidBinding()) {

-				binding = null;

-				break foundNothingOrType;

-			}

-			if (!(binding instanceof PackageBinding))

-				break foundNothingOrType;

-

-			packageBinding = (PackageBinding) binding;

-		}

-		return packageBinding;

-	}

-

-	ReferenceBinding type;

-	if (binding == null) {

-		if (environment.defaultPackage == null

-				|| environment.options.complianceLevel >= ClassFileConstants.JDK1_4){

-			return new ProblemReferenceBinding(

-				CharOperation.subarray(compoundName, 0, i),

-				NotFound);

-		}

-		type = findType(compoundName[0], environment.defaultPackage, environment.defaultPackage);

-		if (type == null || !type.isValidBinding())

-			return new ProblemReferenceBinding(

-				CharOperation.subarray(compoundName, 0, i),

-				NotFound);

-		i = 1; // reset to look for member types inside the default package type

-	} else {

-		type = (ReferenceBinding) binding;

-	}

-

-	for (; i < length; i++) {

-		if (!type.canBeSeenBy(fPackage)) {

-			return new ProblemReferenceBinding(CharOperation.subarray(compoundName, 0, i), type, NotVisible);		

-		}

-		// does not look for inherited member types on purpose

-		if ((type = type.getMemberType(compoundName[i])) == null) {

-			return new ProblemReferenceBinding(

-				CharOperation.subarray(compoundName, 0, i + 1),

-				NotFound);

-		}

-	}

-	if (!type.canBeSeenBy(fPackage))

-		return new ProblemReferenceBinding(compoundName, type, NotVisible);

-	return type;

-}

-private Binding findSingleTypeImport(char[][] compoundName) {

-	if (compoundName.length == 1) {

-		// findType records the reference

-		// the name cannot be a package

-		if (environment.defaultPackage == null 

-			|| environment.options.complianceLevel >= ClassFileConstants.JDK1_4)

-			return new ProblemReferenceBinding(compoundName, NotFound);

-		ReferenceBinding typeBinding = findType(compoundName[0], environment.defaultPackage, fPackage);

-		if (typeBinding == null)

-			return new ProblemReferenceBinding(compoundName, NotFound);

-		return typeBinding;

-	}

-	return findOnDemandImport(compoundName);

-}

-ImportBinding[] getDefaultImports() {

-	// initialize the default imports if necessary... share the default java.lang.* import

-	if (environment.defaultImports != null) return environment.defaultImports;

-

-	Binding importBinding = environment.getTopLevelPackage(JAVA);

-	if (importBinding != null)

-		importBinding = ((PackageBinding) importBinding).getTypeOrPackage(JAVA_LANG[1]);

-

-	// abort if java.lang cannot be found...

-	if (importBinding == null || !importBinding.isValidBinding())

-		problemReporter().isClassPathCorrect(JAVA_LANG_OBJECT, referenceCompilationUnit());

-

-	return environment.defaultImports = new ImportBinding[] {new ImportBinding(JAVA_LANG, true, importBinding, null)};

-}

-// NOT Public API

-public final Binding getImport(char[][] compoundName, boolean onDemand) {

-	if (onDemand)

-		return findOnDemandImport(compoundName);

-	return findSingleTypeImport(compoundName);

-}

-/* Answer the problem reporter to use for raising new problems.

-*

-* Note that as a side-effect, this updates the current reference context

-* (unit, type or method) in case the problem handler decides it is necessary

-* to abort.

-*/

-

-public ProblemReporter problemReporter() {

-	ProblemReporter problemReporter = referenceContext.problemReporter;

-	problemReporter.referenceContext = referenceContext;

-	return problemReporter;

-}

-

-/*

-What do we hold onto:

-

-1. when we resolve 'a.b.c', say we keep only 'a.b.c'

- & when we fail to resolve 'c' in 'a.b', lets keep 'a.b.c'

-THEN when we come across a new/changed/removed item named 'a.b.c',

- we would find all references to 'a.b.c'

--> This approach fails because every type is resolved in every onDemand import to

- detect collision cases... so the references could be 10 times bigger than necessary.

-

-2. when we resolve 'a.b.c', lets keep 'a.b' & 'c'

- & when we fail to resolve 'c' in 'a.b', lets keep 'a.b' & 'c'

-THEN when we come across a new/changed/removed item named 'a.b.c',

- we would find all references to 'a.b' & 'c'

--> This approach does not have a space problem but fails to handle collision cases.

- What happens if a type is added named 'a.b'? We would search for 'a' & 'b' but

- would not find a match.

-

-3. when we resolve 'a.b.c', lets keep 'a', 'a.b' & 'a', 'b', 'c'

- & when we fail to resolve 'c' in 'a.b', lets keep 'a', 'a.b' & 'a', 'b', 'c'

-THEN when we come across a new/changed/removed item named 'a.b.c',

- we would find all references to 'a.b' & 'c'

-OR 'a.b' -> 'a' & 'b'

-OR 'a' -> '' & 'a'

--> As long as each single char[] is interned, we should not have a space problem

- and can handle collision cases.

-

-4. when we resolve 'a.b.c', lets keep 'a.b' & 'a', 'b', 'c'

- & when we fail to resolve 'c' in 'a.b', lets keep 'a.b' & 'a', 'b', 'c'

-THEN when we come across a new/changed/removed item named 'a.b.c',

- we would find all references to 'a.b' & 'c'

-OR 'a.b' -> 'a' & 'b' in the simple name collection

-OR 'a' -> 'a' in the simple name collection

--> As long as each single char[] is interned, we should not have a space problem

- and can handle collision cases.

-*/

-void recordQualifiedReference(char[][] qualifiedName) {

-	if (qualifiedReferences == null) return; // not recording dependencies

-

-	int length = qualifiedName.length;

-	if (length > 1) {

-		while (!qualifiedReferences.contains(qualifiedName)) {

-			qualifiedReferences.add(qualifiedName);

-			if (length == 2) {

-				recordSimpleReference(qualifiedName[0]);

-				recordSimpleReference(qualifiedName[1]);

-				return;

-			}

-			length--;

-			recordSimpleReference(qualifiedName[length]);

-			System.arraycopy(qualifiedName, 0, qualifiedName = new char[length][], 0, length);

-		}

-	} else if (length == 1) {

-		recordSimpleReference(qualifiedName[0]);

-	}

-}

-void recordReference(char[][] qualifiedEnclosingName, char[] simpleName) {

-	recordQualifiedReference(qualifiedEnclosingName);

-	recordSimpleReference(simpleName);

-}

-void recordReference(ReferenceBinding type, char[] simpleName) {

-	ReferenceBinding actualType = typeToRecord(type);

-	if (actualType != null)

-		recordReference(actualType.compoundName, simpleName);

-}

-void recordSimpleReference(char[] simpleName) {

-	if (simpleNameReferences == null) return; // not recording dependencies

-

-	if (!simpleNameReferences.contains(simpleName))

-		simpleNameReferences.add(simpleName);

-}

-void recordSuperTypeReference(TypeBinding type) {

-	if (referencedSuperTypes == null) return; // not recording dependencies

-

-	ReferenceBinding actualType = typeToRecord(type);

-	if (actualType != null && !referencedSuperTypes.containsIdentical(actualType))

-		referencedSuperTypes.add(actualType);

-}

-void recordTypeReference(TypeBinding type) {

-	if (referencedTypes == null) return; // not recording dependencies

-

-	ReferenceBinding actualType = typeToRecord(type);

-	if (actualType != null && !referencedTypes.containsIdentical(actualType))

-		referencedTypes.add(actualType);

-}

-void recordTypeReferences(TypeBinding[] types) {

-	if (qualifiedReferences == null) return; // not recording dependencies

-	if (types == null || types.length == 0) return;

-

-	for (int i = 0, max = types.length; i < max; i++) {

-		// No need to record supertypes of method arguments & thrown exceptions, just the compoundName

-		// If a field/method is retrieved from such a type then a separate call does the job

-		ReferenceBinding actualType = typeToRecord(types[i]);

-		if (actualType != null)

-			recordQualifiedReference(actualType.isMemberType()

-				? CharOperation.splitOn('.', actualType.readableName())

-				: actualType.compoundName);

-	}

-}

-Binding resolveSingleTypeImport(ImportBinding importBinding) {

-	if (importBinding.resolvedImport == null) {

-		importBinding.resolvedImport = findSingleTypeImport(importBinding.compoundName);

-		if (!importBinding.resolvedImport.isValidBinding() || importBinding.resolvedImport instanceof PackageBinding) {

-			if (this.imports != null){

-				ImportBinding[] newImports = new ImportBinding[imports.length - 1];

-				for (int i = 0, n = 0, max = this.imports.length; i < max; i++)

-					if (this.imports[i] != importBinding){

-						newImports[n++] = this.imports[i];

-					}

-				this.imports = newImports;

-			}

-			return null;

-		}

-	}

-	return importBinding.resolvedImport;

-}

-public void storeDependencyInfo() {

-	// add the type hierarchy of each referenced supertype

-	// cannot do early since the hierarchy may not be fully resolved

-	for (int i = 0; i < referencedSuperTypes.size; i++) { // grows as more types are added

-		ReferenceBinding type = (ReferenceBinding) referencedSuperTypes.elementAt(i);

-		if (!referencedTypes.containsIdentical(type))

-			referencedTypes.add(type);

-

-		if (!type.isLocalType()) {

-			ReferenceBinding enclosing = type.enclosingType();

-			if (enclosing != null)

-				recordSuperTypeReference(enclosing);

-		}

-		ReferenceBinding superclass = type.superclass();

-		if (superclass != null)

-			recordSuperTypeReference(superclass);

-		ReferenceBinding[] interfaces = type.superInterfaces();

-		if (interfaces != null)

-			for (int j = 0, length = interfaces.length; j < length; j++)

-				recordSuperTypeReference(interfaces[j]);

-	}

-

-	for (int i = 0, l = referencedTypes.size; i < l; i++) {

-		ReferenceBinding type = (ReferenceBinding) referencedTypes.elementAt(i);

-		if (!type.isLocalType())

-			recordQualifiedReference(type.isMemberType()

-				? CharOperation.splitOn('.', type.readableName())

-				: type.compoundName);

-	}

-

-	int size = qualifiedReferences.size;

-	char[][][] qualifiedRefs = new char[size][][];

-	for (int i = 0; i < size; i++)

-		qualifiedRefs[i] = qualifiedReferences.elementAt(i);

-	referenceContext.compilationResult.qualifiedReferences = qualifiedRefs;

-

-	size = simpleNameReferences.size;

-	char[][] simpleRefs = new char[size][];

-	for (int i = 0; i < size; i++)

-		simpleRefs[i] = simpleNameReferences.elementAt(i);

-	referenceContext.compilationResult.simpleNameReferences = simpleRefs;

-}

-public String toString() {

-	return "--- CompilationUnit Scope : " + new String(referenceContext.getFileName()); //$NON-NLS-1$

-}

-private ReferenceBinding typeToRecord(TypeBinding type) {

-	if (type.isArrayType())

-		type = ((ArrayBinding) type).leafComponentType;

-

-	if (type.isParameterizedType())

-		type = type.erasure();

-	else if (type.isRawType())

-		type = type.erasure();

-	else if (type.isWildcard()) 

-	    return null;

-

-	if (type.isBaseType()) return null;

-	if (type.isTypeVariable()) return null;

-	if (((ReferenceBinding) type).isLocalType()) return null;

-

-	return (ReferenceBinding) type;

-}

-public void verifyMethods(MethodVerifier verifier) {

-	for (int i = 0, length = topLevelTypes.length; i < length; i++)

-		topLevelTypes[i].verifyMethods(verifier);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/CompilerModifiers.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/CompilerModifiers.js
deleted file mode 100644
index 2cc7484..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/CompilerModifiers.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-

-public interface CompilerModifiers extends ClassFileConstants { // modifier constant

-	// those constants are depending upon ClassFileConstants (relying that classfiles only use the 16 lower bits)

-	final int AccDefault = 0;

-	final int AccJustFlag = // 16 lower bits

-	    	ASTNode.Bit1|ASTNode.Bit2|ASTNode.Bit3|ASTNode.Bit4|ASTNode.Bit5|ASTNode.Bit6|ASTNode.Bit7|ASTNode.Bit8|

-			ASTNode.Bit9|ASTNode.Bit10|ASTNode.Bit11|ASTNode.Bit12|ASTNode.Bit13|ASTNode.Bit14|ASTNode.Bit15|ASTNode.Bit16;

-

-	final int AccRestrictedAccess = ASTNode.Bit19; 

-	final int AccFromClassFile = ASTNode.Bit20; 

-	final int AccIsConstantValue = ASTNode.Bit20;

-	final int AccDefaultAbstract = ASTNode.Bit20; 

-	// bit21 - IConstants.AccDeprecated

-	final int AccDeprecatedImplicitly = ASTNode.Bit22; // record whether deprecated itself or contained by a deprecated type

-	final int AccAlternateModifierProblem = ASTNode.Bit23; 

-	final int AccModifierProblem = ASTNode.Bit24; 

-	final int AccSemicolonBody = ASTNode.Bit25; 

-	final int AccUnresolved = ASTNode.Bit26; 

-	final int AccClearPrivateModifier = ASTNode.Bit27; // might be requested during private access emulation

-	final int AccBlankFinal = ASTNode.Bit27; // for blank final variables

-	final int AccIsDefaultConstructor = ASTNode.Bit27; // for default constructor

-	final int AccPrivateUsed = ASTNode.Bit28; // used to diagnose unused private members

-	final int AccVisibilityMASK = AccPublic | AccProtected | AccPrivate;

-	

-	final int AccOverriding = ASTNode.Bit29; // record fact a method overrides another one

-	final int AccImplementing = ASTNode.Bit30; // record fact a method implements another one (it is concrete and overrides an abstract one)

-	final int AccGenericSignature = ASTNode.Bit31; // record fact a type/method/field involves generics in its signature (and need special signature attr)

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/FieldBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/FieldBinding.js
deleted file mode 100644
index 8858163..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/FieldBinding.js
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-

-public class FieldBinding extends VariableBinding {

-	public ReferenceBinding declaringClass;

-protected FieldBinding() {

-	super(null, null, 0, null);

-	// for creating problem field

-}

-public FieldBinding(char[] name, TypeBinding type, int modifiers, ReferenceBinding declaringClass, Constant constant) {

-	super(name, type, modifiers, constant);

-	this.declaringClass = declaringClass;

-

-	// propagate the deprecated modifier

-	if (this.declaringClass != null)

-		if (this.declaringClass.isViewedAsDeprecated() && !isDeprecated())

-			this.modifiers |= AccDeprecatedImplicitly;

-}

-public FieldBinding(FieldDeclaration field, TypeBinding type, int modifiers, ReferenceBinding declaringClass) {

-	this(field.name, type, modifiers, declaringClass, null);

-	field.binding = this; // record binding in declaration

-}

-// special API used to change field declaring class for runtime visibility check

-public FieldBinding(FieldBinding initialFieldBinding, ReferenceBinding declaringClass) {

-	super(initialFieldBinding.name, initialFieldBinding.type, initialFieldBinding.modifiers, initialFieldBinding.constant());

-	this.declaringClass = declaringClass;

-	this.id = initialFieldBinding.id;

-}

-/* API

-* Answer the receiver's binding type from Binding.BindingID.

-*/

-

-public final int bindingType() {

-	return FIELD;

-}

-/* Answer true if the receiver is visible to the type provided by the scope.

-* InvocationSite implements isSuperAccess() to provide additional information

-* if the receiver is protected.

-*

-* NOTE: Cannot invoke this method with a compilation unit scope.

-*/

-

-public final boolean canBeSeenBy(TypeBinding receiverType, InvocationSite invocationSite, Scope scope) {

-	if (isPublic()) return true;

-

-	SourceTypeBinding invocationType = scope.enclosingSourceType();

-	if (invocationType == declaringClass && invocationType == receiverType) return true;

-

-	if (isProtected()) {

-		// answer true if the invocationType is the declaringClass or they are in the same package

-		// OR the invocationType is a subclass of the declaringClass

-		//    AND the receiverType is the invocationType or its subclass

-		//    OR the method is a static method accessed directly through a type

-		//    OR previous assertions are true for one of the enclosing type

-		if (invocationType == declaringClass) return true;

-		if (invocationType.fPackage == declaringClass.fPackage) return true;

-		

-		ReferenceBinding currentType = invocationType;

-		int depth = 0;

-		do {

-			if (declaringClass.isSuperclassOf(currentType)) {

-				if (invocationSite.isSuperAccess()){

-					return true;

-				}

-				// receiverType can be an array binding in one case... see if you can change it

-				if (receiverType instanceof ArrayBinding){

-					return false;

-				}

-				if (isStatic()){

-					if (depth > 0) invocationSite.setDepth(depth);

-					return true; // see 1FMEPDL - return invocationSite.isTypeAccess();

-				}

-				if (currentType == receiverType || currentType.isSuperclassOf((ReferenceBinding) receiverType)){

-					if (depth > 0) invocationSite.setDepth(depth);

-					return true;

-				}

-			}

-			depth++;

-			currentType = currentType.enclosingType();

-		} while (currentType != null);

-		return false;

-	}

-

-	if (isPrivate()) {

-		// answer true if the receiverType is the declaringClass

-		// AND the invocationType and the declaringClass have a common enclosingType

-		receiverCheck: {

-			if (receiverType != declaringClass) {

-				// special tolerance for type variable direct bounds

-				if (receiverType.isTypeVariable() && ((TypeVariableBinding) receiverType).isErasureBoundTo(declaringClass.erasure())) {

-					break receiverCheck;

-				}

-				return false;

-			}

-		}

-

-		if (invocationType != declaringClass) {

-			ReferenceBinding outerInvocationType = invocationType;

-			ReferenceBinding temp = outerInvocationType.enclosingType();

-			while (temp != null) {

-				outerInvocationType = temp;

-				temp = temp.enclosingType();

-			}

-

-			ReferenceBinding outerDeclaringClass = (ReferenceBinding)declaringClass.erasure();

-			temp = outerDeclaringClass.enclosingType();

-			while (temp != null) {

-				outerDeclaringClass = temp;

-				temp = temp.enclosingType();

-			}

-			if (outerInvocationType != outerDeclaringClass) return false;

-		}

-		return true;

-	}

-

-	// isDefault()

-	if (invocationType.fPackage != declaringClass.fPackage) return false;

-

-	// receiverType can be an array binding in one case... see if you can change it

-	if (receiverType instanceof ArrayBinding)

-		return false;

-	ReferenceBinding currentType = (ReferenceBinding) receiverType;

-	PackageBinding declaringPackage = declaringClass.fPackage;

-	do {

-		if (declaringClass == currentType) return true;

-		if (declaringPackage != currentType.fPackage) return false;

-	} while ((currentType = currentType.superclass()) != null);

-	return false;

-}

-

-/**

- * X<T> t   -->  LX<TT;>;

- */

-public char[] genericSignature() {

-    if ((this.modifiers & AccGenericSignature) == 0) return null;

-    return this.type.genericTypeSignature();

-}

-

-public final int getAccessFlags() {

-	return modifiers & AccJustFlag;

-}

-

-/* Answer true if the receiver has default visibility

-*/

-

-public final boolean isDefault() {

-	return !isPublic() && !isProtected() && !isPrivate();

-}

-/* Answer true if the receiver is a deprecated field

-*/

-

-public final boolean isDeprecated() {

-	return (modifiers & AccDeprecated) != 0;

-}

-/* Answer true if the receiver has private visibility

-*/

-

-public final boolean isPrivate() {

-	return (modifiers & AccPrivate) != 0;

-}

-/* Answer true if the receiver has private visibility and is used locally

-*/

-

-public final boolean isPrivateUsed() {

-	return (modifiers & AccPrivateUsed) != 0;

-}

-/* Answer true if the receiver has protected visibility

-*/

-

-public final boolean isProtected() {

-	return (modifiers & AccProtected) != 0;

-}

-/* Answer true if the receiver has public visibility

-*/

-

-public final boolean isPublic() {

-	return (modifiers & AccPublic) != 0;

-}

-/* Answer true if the receiver is a static field

-*/

-

-public final boolean isStatic() {

-	return (modifiers & AccStatic) != 0;

-}

-/* Answer true if the receiver is not defined in the source of the declaringClass

-*/

-

-public final boolean isSynthetic() {

-	return (modifiers & AccSynthetic) != 0;

-}

-/* Answer true if the receiver is a transient field

-*/

-

-public final boolean isTransient() {

-	return (modifiers & AccTransient) != 0;

-}

-/* Answer true if the receiver's declaring type is deprecated (or any of its enclosing types)

-*/

-

-public final boolean isViewedAsDeprecated() {

-	return (modifiers & AccDeprecated) != 0 ||

-		(modifiers & AccDeprecatedImplicitly) != 0;

-}

-/* Answer true if the receiver is a volatile field

-*/

-

-public final boolean isVolatile() {

-	return (modifiers & AccVolatile) != 0;

-}

-/**

- * Returns the original field (as opposed to parameterized instances)

- */

-public FieldBinding original() {

-	return this;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ImportBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ImportBinding.js
deleted file mode 100644
index dd72a39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ImportBinding.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ImportReference;

-

-public class ImportBinding extends Binding {

-	public char[][] compoundName;

-	public boolean onDemand;

-	public ImportReference reference;

-

-	Binding resolvedImport; // must ensure the import is resolved

-	

-public ImportBinding(char[][] compoundName, boolean isOnDemand, Binding binding, ImportReference reference) {

-	this.compoundName = compoundName;

-	this.onDemand = isOnDemand;

-	this.resolvedImport = binding;

-	this.reference = reference;

-}

-/* API

-* Answer the receiver's binding type from Binding.BindingID.

-*/

-

-public final int bindingType() {

-	return IMPORT;

-}

-public char[] readableName() {

-	if (onDemand)

-		return CharOperation.concat(CharOperation.concatWith(compoundName, '.'), ".*".toCharArray()); //$NON-NLS-1$

-	else

-		return CharOperation.concatWith(compoundName, '.');

-}

-public String toString() {

-	return "import : " + new String(readableName()); //$NON-NLS-1$

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/InnerEmulationDependency.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/InnerEmulationDependency.js
deleted file mode 100644
index 107d7e1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/InnerEmulationDependency.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public class InnerEmulationDependency{

-

-	public BlockScope scope;

-	public boolean wasEnclosingInstanceSupplied;

-    

-	public InnerEmulationDependency(BlockScope scope, boolean wasEnclosingInstanceSupplied) {

-		this.scope = scope;

-		this.wasEnclosingInstanceSupplied = wasEnclosingInstanceSupplied;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/InvocationSite.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/InvocationSite.js
deleted file mode 100644
index 16036d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/InvocationSite.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public interface InvocationSite {

-	

-	TypeBinding[] genericTypeArguments();

-	boolean isSuperAccess();

-	boolean isTypeAccess();

-	void setDepth(int depth);

-	void setFieldIndex(int depth);

-	

-	// in case the receiver type does not match the actual receiver type 

-	// e.g. pkg.Type.C (receiver type of C is type of source context, 

-	//		but actual receiver type is pkg.Type)

-	// e.g2. in presence of implicit access to enclosing type

-	void setActualReceiverType(ReferenceBinding receiverType);

-	int sourceStart();

-	int sourceEnd();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LocalTypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LocalTypeBinding.js
deleted file mode 100644
index 8be2f1a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LocalTypeBinding.js
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.CaseStatement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-

-public final class LocalTypeBinding extends NestedTypeBinding {

-	final static char[] LocalTypePrefix = { '$', 'L', 'o', 'c', 'a', 'l', '$' };

-

-	private InnerEmulationDependency[] dependents;

-	public ArrayBinding[] localArrayBindings; // used to cache array bindings of various dimensions for this local type

-	public CaseStatement switchCase; // from 1.4 on, local types should not be accessed across switch case blocks (52221)

-	

-public LocalTypeBinding(ClassScope scope, SourceTypeBinding enclosingType, CaseStatement switchCase) {

-	super(

-		new char[][] {CharOperation.concat(LocalTypePrefix, scope.referenceContext.name)},

-		scope,

-		enclosingType);

-	

-	if (this.sourceName == TypeDeclaration.ANONYMOUS_EMPTY_NAME)

-		this.tagBits |= AnonymousTypeMask;

-	else

-		this.tagBits |= LocalTypeMask;

-	this.switchCase = switchCase;

-}

-/* Record a dependency onto a source target type which may be altered

-* by the end of the innerclass emulation. Later on, we will revisit

-* all its dependents so as to update them (see updateInnerEmulationDependents()).

-*/

-

-public void addInnerEmulationDependent(BlockScope dependentScope, boolean wasEnclosingInstanceSupplied) {

-	int index;

-	if (dependents == null) {

-		index = 0;

-		dependents = new InnerEmulationDependency[1];

-	} else {

-		index = dependents.length;

-		for (int i = 0; i < index; i++)

-			if (dependents[i].scope == dependentScope)

-				return; // already stored

-		System.arraycopy(dependents, 0, (dependents = new InnerEmulationDependency[index + 1]), 0, index);

-	}

-	dependents[index] = new InnerEmulationDependency(dependentScope, wasEnclosingInstanceSupplied);

-	//  System.out.println("Adding dependency: "+ new String(scope.enclosingType().readableName()) + " --> " + new String(this.readableName()));

-}

-/* Answer the receiver's constant pool name.

-*

-* NOTE: This method should only be used during/after code gen.

-*/

-

-public char[] constantPoolName() /* java/lang/Object */ {

-	return constantPoolName;

-}

-

-ArrayBinding createArrayType(int dimensionCount) {

-	if (localArrayBindings == null) {

-		localArrayBindings = new ArrayBinding[] {new ArrayBinding(this, dimensionCount, scope.environment())};

-		return localArrayBindings[0];

-	}

-

-	// find the cached array binding for this dimensionCount (if any)

-	int length = localArrayBindings.length;

-	for (int i = 0; i < length; i++)

-		if (localArrayBindings[i].dimensions == dimensionCount)

-			return localArrayBindings[i];

-

-	// no matching array

-	System.arraycopy(localArrayBindings, 0, localArrayBindings = new ArrayBinding[length + 1], 0, length); 

-	return localArrayBindings[length] = new ArrayBinding(this, dimensionCount, scope.environment());

-}

-

-public char[] readableName() /*java.lang.Object,  p.X<T> */ {

-    char[] readableName;

-	if (isAnonymousType()) {

-		if (superInterfaces == NoSuperInterfaces)

-			readableName = CharOperation.concat(TypeConstants.ANONYM_PREFIX, superclass.readableName(), TypeConstants.ANONYM_SUFFIX);

-		else

-			readableName = CharOperation.concat(TypeConstants.ANONYM_PREFIX, superInterfaces[0].readableName(), TypeConstants.ANONYM_SUFFIX);

-	} else if (isMemberType()) {

-		readableName = CharOperation.concat(enclosingType().readableName(), this.sourceName, '.');

-	} else {

-		readableName = this.sourceName;

-	}    

-	TypeVariableBinding[] typeVars;

-	if ((typeVars = this.typeVariables()) != NoTypeVariables) {

-	    StringBuffer nameBuffer = new StringBuffer(10);

-	    nameBuffer.append(readableName).append('<');

-	    for (int i = 0, length = typeVars.length; i < length; i++) {

-	        if (i > 0) nameBuffer.append(',');

-	        nameBuffer.append(typeVars[i].readableName());

-	    }

-	    nameBuffer.append('>');

-	    int nameLength = nameBuffer.length();

-		readableName = new char[nameLength];

-		nameBuffer.getChars(0, nameLength, readableName, 0);

-	}

-	return readableName;

-}

-

-public char[] shortReadableName() /*Object*/ {

-    char[] shortReadableName;

-	if (isAnonymousType()) {

-		if (superInterfaces == NoSuperInterfaces)

-			shortReadableName = CharOperation.concat(TypeConstants.ANONYM_PREFIX, superclass.shortReadableName(), TypeConstants.ANONYM_SUFFIX);

-		else

-			shortReadableName = CharOperation.concat(TypeConstants.ANONYM_PREFIX, superInterfaces[0].shortReadableName(), TypeConstants.ANONYM_SUFFIX);

-	} else if (isMemberType()) {

-		shortReadableName = CharOperation.concat(enclosingType().shortReadableName(), sourceName, '.');

-	} else {

-		shortReadableName = sourceName;

-	}

-	TypeVariableBinding[] typeVars;

-	if ((typeVars = this.typeVariables()) != NoTypeVariables) {

-	    StringBuffer nameBuffer = new StringBuffer(10);

-	    nameBuffer.append(shortReadableName).append('<');

-	    for (int i = 0, length = typeVars.length; i < length; i++) {

-	        if (i > 0) nameBuffer.append(',');

-	        nameBuffer.append(typeVars[i].shortReadableName());

-	    }

-	    nameBuffer.append('>');

-		int nameLength = nameBuffer.length();

-		shortReadableName = new char[nameLength];

-		nameBuffer.getChars(0, nameLength, shortReadableName, 0);	    

-	}

-	return shortReadableName;

-}

-

-// Record that the type is a local member type

-public void setAsMemberType() {

-	tagBits |= MemberTypeMask;

-}

-

-public void setConstantPoolName(char[] computedConstantPoolName) /* java/lang/Object */ {

-	this.constantPoolName = computedConstantPoolName;

-}

-

-public char[] sourceName() {

-	if (isAnonymousType()) {

-		if (superInterfaces == NoSuperInterfaces)

-			return CharOperation.concat(TypeConstants.ANONYM_PREFIX, superclass.sourceName(), TypeConstants.ANONYM_SUFFIX);

-		else

-			return CharOperation.concat(TypeConstants.ANONYM_PREFIX, superInterfaces[0].sourceName(), TypeConstants.ANONYM_SUFFIX);

-			

-	} else

-		return sourceName;

-}

-public String toString() {

-	if (isAnonymousType())

-		return "Anonymous type : " + super.toString(); //$NON-NLS-1$

-	if (isMemberType())

-		return "Local member type : " + new String(sourceName()) + " " + super.toString(); //$NON-NLS-2$ //$NON-NLS-1$

-	return "Local type : " + new String(sourceName()) + " " + super.toString(); //$NON-NLS-2$ //$NON-NLS-1$

-}

-/* Trigger the dependency mechanism forcing the innerclass emulation

-* to be propagated to all dependent source types.

-*/

-

-public void updateInnerEmulationDependents() {

-	if (dependents != null) {

-		for (int i = 0; i < dependents.length; i++) {

-			InnerEmulationDependency dependency = dependents[i];

-			// System.out.println("Updating " + new String(this.readableName()) + " --> " + new String(dependency.scope.enclosingType().readableName()));

-			dependency.scope.propagateInnerEmulation(this, dependency.wasEnclosingInstanceSupplied);

-		}

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LocalVariableBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LocalVariableBinding.js
deleted file mode 100644
index a929118..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LocalVariableBinding.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-

-public class LocalVariableBinding extends VariableBinding {

-

-	public boolean isArgument;

-	public int resolvedPosition; // for code generation (position in method context)

-	

-	public static final int UNUSED = 0;

-	public static final int USED = 1;

-	public static final int FAKE_USED = 2;

-	public int useFlag; // for flow analysis (default is UNUSED)

-	

-	public BlockScope declaringScope; // back-pointer to its declaring scope

-	public LocalDeclaration declaration; // for source-positions

-

-	public int[] initializationPCs;

-	public int initializationCount = 0;

-

-	// for synthetic local variables	

-	// if declaration slot is not positionned, the variable will not be listed in attribute

-	// note that the name of a variable should be chosen so as not to conflict with user ones (usually starting with a space char is all needed)

-	public LocalVariableBinding(char[] name, TypeBinding type, int modifiers, boolean isArgument) {

-		super(name, type, modifiers, isArgument ? Constant.NotAConstant : null);

-		this.isArgument = isArgument;

-	}

-	

-	// regular local variable or argument

-	public LocalVariableBinding(LocalDeclaration declaration, TypeBinding type, int modifiers, boolean isArgument) {

-

-		this(declaration.name, type, modifiers, isArgument);

-		this.declaration = declaration;

-	}

-

-	/* API

-	* Answer the receiver's binding type from Binding.BindingID.

-	*/

-	public final int bindingType() {

-

-		return LOCAL;

-	}

-	

-	// Answer whether the variable binding is a secret variable added for code gen purposes

-	public boolean isSecret() {

-

-		return declaration == null && !isArgument;

-	}

-

-	public void recordInitializationEndPC(int pc) {

-

-		if (initializationPCs[((initializationCount - 1) << 1) + 1] == -1)

-			initializationPCs[((initializationCount - 1) << 1) + 1] = pc;

-	}

-

-	public void recordInitializationStartPC(int pc) {

-

-		if (initializationPCs == null) 	return;

-		// optimize cases where reopening a contiguous interval

-		if ((initializationCount > 0) && (initializationPCs[ ((initializationCount - 1) << 1) + 1] == pc)) {

-			initializationPCs[ ((initializationCount - 1) << 1) + 1] = -1; // reuse previous interval (its range will be augmented)

-		} else {

-			int index = initializationCount << 1;

-			if (index == initializationPCs.length) {

-				System.arraycopy(initializationPCs, 0, (initializationPCs = new int[initializationCount << 2]), 0, index);

-			}

-			initializationPCs[index] = pc;

-			initializationPCs[index + 1] = -1;

-			initializationCount++;

-		}

-	}

-

-	public String toString() {

-

-		String s = super.toString();

-		switch (useFlag){

-			case USED:

-				s += "[pos: " + String.valueOf(resolvedPosition) + "]"; //$NON-NLS-2$ //$NON-NLS-1$

-				break;

-			case UNUSED:

-				s += "[pos: unused]"; //$NON-NLS-1$

-				break;

-			case FAKE_USED:

-				s += "[pos: fake_used]"; //$NON-NLS-1$

-				break;

-		}

-		s += "[id:" + String.valueOf(id) + "]"; //$NON-NLS-2$ //$NON-NLS-1$

-		if (initializationCount > 0) {

-			s += "[pc: "; //$NON-NLS-1$

-			for (int i = 0; i < initializationCount; i++) {

-				if (i > 0)

-					s += ", "; //$NON-NLS-1$

-				s += String.valueOf(initializationPCs[i << 1]) + "-" + ((initializationPCs[(i << 1) + 1] == -1) ? "?" : String.valueOf(initializationPCs[(i<< 1) + 1])); //$NON-NLS-2$ //$NON-NLS-1$

-			}

-			s += "]"; //$NON-NLS-1$

-		}

-		return s;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LookupEnvironment.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LookupEnvironment.js
deleted file mode 100644
index c32558c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/LookupEnvironment.js
+++ /dev/null
@@ -1,815 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Wildcard;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.env.*;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ITypeRequestor;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfPackage;

-import org.eclipse.wst.jsdt.internal.compiler.util.SimpleLookupTable;

-

-public class LookupEnvironment implements BaseTypes, ProblemReasons, TypeConstants {

-	public CompilerOptions options;

-	public ProblemReporter problemReporter;

-	public ITypeRequestor typeRequestor;

-

-	PackageBinding defaultPackage;

-	ImportBinding[] defaultImports;

-	HashtableOfPackage knownPackages;

-	static final ProblemPackageBinding TheNotFoundPackage = new ProblemPackageBinding(CharOperation.NO_CHAR, NotFound);

-	static final ProblemReferenceBinding TheNotFoundType = new ProblemReferenceBinding(CharOperation.NO_CHAR, NotFound);

-

-	public INameEnvironment nameEnvironment;

-	private MethodVerifier verifier;

-	private ArrayBinding[][] uniqueArrayBindings;

-	private SimpleLookupTable uniqueParameterizedTypeBindings;

-	private SimpleLookupTable uniqueRawTypeBindings;

-	private SimpleLookupTable uniqueWildcardBindings;

-

-	private CompilationUnitDeclaration[] units = new CompilationUnitDeclaration[4];

-	private int lastUnitIndex = -1;

-	private int lastCompletedUnitIndex = -1;

-	public CompilationUnitDeclaration unitBeingCompleted = null; // only set while completing units

-

-	// indicate in which step on the compilation we are.

-	// step 1 : build the reference binding

-	// step 2 : conect the hierarchy (connect bindings)

-	// step 3 : build fields and method bindings.

-	private int stepCompleted;

-	final static int BUILD_TYPE_HIERARCHY = 1;

-	final static int CHECK_AND_SET_IMPORTS = 2;

-	final static int CONNECT_TYPE_HIERARCHY = 3;

-	final static int BUILD_FIELDS_AND_METHODS = 4;

-

-	// shared byte[]'s used by ClassFile to avoid allocating MBs during a build

-	public boolean sharedArraysUsed = true; // set to false once actual arrays are allocated

-	public byte[] sharedClassFileHeader = null;

-	public byte[] sharedClassFileContents = null;

-

-public LookupEnvironment(ITypeRequestor typeRequestor, CompilerOptions options, ProblemReporter problemReporter, INameEnvironment nameEnvironment) {

-	this.typeRequestor = typeRequestor;

-	this.options = options;

-	this.problemReporter = problemReporter;

-	this.defaultPackage = new PackageBinding(this); // assume the default package always exists

-	this.defaultImports = null;

-	this.nameEnvironment = nameEnvironment;

-	this.knownPackages = new HashtableOfPackage();

-	this.uniqueArrayBindings = new ArrayBinding[5][];

-	this.uniqueArrayBindings[0] = new ArrayBinding[50]; // start off the most common 1 dimension array @ 50

-	this.uniqueParameterizedTypeBindings = new SimpleLookupTable(3);

-	this.uniqueRawTypeBindings = new SimpleLookupTable(3);

-	this.uniqueWildcardBindings = new SimpleLookupTable(3);

-}

-/* Ask the oracle for a type which corresponds to the compoundName.

-* Answer null if the name cannot be found.

-*/

-

-public ReferenceBinding askForType(char[][] compoundName) {

-	NameEnvironmentAnswer answer = nameEnvironment.findType(compoundName);

-	if (answer == null)

-		return null;

-

-	if (answer.isBinaryType())

-		// the type was found as a .class file

-		typeRequestor.accept(answer.getBinaryType(), computePackageFrom(compoundName));

-	else if (answer.isCompilationUnit())

-		// the type was found as a .java file, try to build it then search the cache

-		typeRequestor.accept(answer.getCompilationUnit());

-	else if (answer.isSourceType())

-		// the type was found as a source model

-		typeRequestor.accept(answer.getSourceTypes(), computePackageFrom(compoundName));

-

-	return getCachedType(compoundName);

-}

-/* Ask the oracle for a type named name in the packageBinding.

-* Answer null if the name cannot be found.

-*/

-

-ReferenceBinding askForType(PackageBinding packageBinding, char[] name) {

-	if (packageBinding == null) {

-		if (defaultPackage == null)

-			return null;

-		packageBinding = defaultPackage;

-	}

-	NameEnvironmentAnswer answer = nameEnvironment.findType(name, packageBinding.compoundName);

-	if (answer == null)

-		return null;

-

-	if (answer.isBinaryType())

-		// the type was found as a .class file

-		typeRequestor.accept(answer.getBinaryType(), packageBinding);

-	else if (answer.isCompilationUnit())

-		// the type was found as a .java file, try to build it then search the cache

-		typeRequestor.accept(answer.getCompilationUnit());

-	else if (answer.isSourceType())

-		// the type was found as a source model

-		typeRequestor.accept(answer.getSourceTypes(), packageBinding);

-

-	return packageBinding.getType0(name);

-}

-/* Create the initial type bindings for the compilation unit.

-*

-* See completeTypeBindings() for a description of the remaining steps

-*

-* NOTE: This method can be called multiple times as additional source files are needed

-*/

-

-public void buildTypeBindings(CompilationUnitDeclaration unit) {

-	CompilationUnitScope scope = new CompilationUnitScope(unit, this);

-	scope.buildTypeBindings();

-

-	int unitsLength = units.length;

-	if (++lastUnitIndex >= unitsLength)

-		System.arraycopy(units, 0, units = new CompilationUnitDeclaration[2 * unitsLength], 0, unitsLength);

-	units[lastUnitIndex] = unit;

-}

-/* Cache the binary type since we know it is needed during this compile.

-*

-* Answer the created BinaryTypeBinding or null if the type is already in the cache.

-*/

-

-public BinaryTypeBinding cacheBinaryType(IBinaryType binaryType) {

-	return cacheBinaryType(binaryType, true);

-}

-/* Cache the binary type since we know it is needed during this compile.

-*

-* Answer the created BinaryTypeBinding or null if the type is already in the cache.

-*/

-

-public BinaryTypeBinding cacheBinaryType(IBinaryType binaryType, boolean needFieldsAndMethods) {

-	char[][] compoundName = CharOperation.splitOn('/', binaryType.getName());

-	ReferenceBinding existingType = getCachedType(compoundName);

-

-	if (existingType == null || existingType instanceof UnresolvedReferenceBinding)

-		// only add the binary type if its not already in the cache

-		return createBinaryTypeFrom(binaryType, computePackageFrom(compoundName), needFieldsAndMethods);

-	return null; // the type already exists & can be retrieved from the cache

-}

-/*

-* 1. Connect the type hierarchy for the type bindings created for parsedUnits.

-* 2. Create the field bindings

-* 3. Create the method bindings

-*/

-

-/* We know each known compilationUnit is free of errors at this point...

-*

-* Each step will create additional bindings unless a problem is detected, in which

-* case either the faulty import/superinterface/field/method will be skipped or a

-* suitable replacement will be substituted (such as Object for a missing superclass)

-*/

-

-public void completeTypeBindings() {

-	stepCompleted = BUILD_TYPE_HIERARCHY;

-	

-	for (int i = this.lastCompletedUnitIndex + 1; i <= this.lastUnitIndex; i++) {

-	    (this.unitBeingCompleted = this.units[i]).scope.checkAndSetImports();

-	}

-	stepCompleted = CHECK_AND_SET_IMPORTS;

-

-	for (int i = this.lastCompletedUnitIndex + 1; i <= this.lastUnitIndex; i++) {

-	    (this.unitBeingCompleted = this.units[i]).scope.connectTypeHierarchy();

-	}

-	stepCompleted = CONNECT_TYPE_HIERARCHY;

-

-	for (int i = this.lastCompletedUnitIndex + 1; i <= this.lastUnitIndex; i++) {

-		(this.unitBeingCompleted = this.units[i]).scope.buildFieldsAndMethods();

-		this.units[i] = null; // release unnecessary reference to the parsed unit

-	}

-	stepCompleted = BUILD_FIELDS_AND_METHODS;

-	this.lastCompletedUnitIndex = this.lastUnitIndex;

-	this.unitBeingCompleted = null;

-}

-/*

-* 1. Connect the type hierarchy for the type bindings created for parsedUnits.

-* 2. Create the field bindings

-* 3. Create the method bindings

-*/

-

-/*

-* Each step will create additional bindings unless a problem is detected, in which

-* case either the faulty import/superinterface/field/method will be skipped or a

-* suitable replacement will be substituted (such as Object for a missing superclass)

-*/

-

-public void completeTypeBindings(CompilationUnitDeclaration parsedUnit) {

-	if (stepCompleted == BUILD_FIELDS_AND_METHODS) {

-		// This can only happen because the original set of units are completely built and

-		// are now being processed, so we want to treat all the additional units as a group

-		// until they too are completely processed.

-		completeTypeBindings();

-	} else {

-		if (parsedUnit.scope == null) return; // parsing errors were too severe

-		

-		if (stepCompleted >= CHECK_AND_SET_IMPORTS)

-			(this.unitBeingCompleted = parsedUnit).scope.checkAndSetImports();

-

-		if (stepCompleted >= CONNECT_TYPE_HIERARCHY)

-			(this.unitBeingCompleted = parsedUnit).scope.connectTypeHierarchy();

-		

-		this.unitBeingCompleted = null;

-	}

-}

-/*

-* Used by other compiler tools which do not start by calling completeTypeBindings().

-*

-* 1. Connect the type hierarchy for the type bindings created for parsedUnits.

-* 2. Create the field bindings

-* 3. Create the method bindings

-*/

-

-public void completeTypeBindings(CompilationUnitDeclaration parsedUnit, boolean buildFieldsAndMethods) {

-	if (parsedUnit.scope == null) return; // parsing errors were too severe

-

-	(this.unitBeingCompleted = parsedUnit).scope.checkAndSetImports();

-	parsedUnit.scope.connectTypeHierarchy();

-	if (buildFieldsAndMethods)

-		parsedUnit.scope.buildFieldsAndMethods();

-	this.unitBeingCompleted = null;

-}

-private PackageBinding computePackageFrom(char[][] constantPoolName) {

-	if (constantPoolName.length == 1)

-		return defaultPackage;

-

-	PackageBinding packageBinding = getPackage0(constantPoolName[0]);

-	if (packageBinding == null || packageBinding == TheNotFoundPackage) {

-		packageBinding = new PackageBinding(constantPoolName[0], this);

-		knownPackages.put(constantPoolName[0], packageBinding);

-	}

-

-	for (int i = 1, length = constantPoolName.length - 1; i < length; i++) {

-		PackageBinding parent = packageBinding;

-		if ((packageBinding = parent.getPackage0(constantPoolName[i])) == null || packageBinding == TheNotFoundPackage) {

-			packageBinding = new PackageBinding(CharOperation.subarray(constantPoolName, 0, i + 1), parent, this);

-			parent.addPackage(packageBinding);

-		}

-	}

-	return packageBinding;

-}

-/* Used to guarantee array type identity.

-*/

-

-ArrayBinding createArrayType(TypeBinding type, int dimensionCount) {

-	if (type instanceof LocalTypeBinding) // cache local type arrays with the local type itself

-		return ((LocalTypeBinding) type).createArrayType(dimensionCount);

-

-	// find the array binding cache for this dimension

-	int dimIndex = dimensionCount - 1;

-	int length = uniqueArrayBindings.length;

-	ArrayBinding[] arrayBindings;

-	if (dimIndex < length) {

-		if ((arrayBindings = uniqueArrayBindings[dimIndex]) == null)

-			uniqueArrayBindings[dimIndex] = arrayBindings = new ArrayBinding[10];

-	} else {

-		System.arraycopy(

-			uniqueArrayBindings, 0, 

-			uniqueArrayBindings = new ArrayBinding[dimensionCount][], 0, 

-			length); 

-		uniqueArrayBindings[dimIndex] = arrayBindings = new ArrayBinding[10];

-	}

-

-	// find the cached array binding for this leaf component type (if any)

-	int index = -1;

-	length = arrayBindings.length;

-	while (++index < length) {

-		ArrayBinding currentBinding = arrayBindings[index];

-		if (currentBinding == null) // no matching array, but space left

-			return arrayBindings[index] = new ArrayBinding(type, dimensionCount, this);

-		if (currentBinding.leafComponentType == type)

-			return currentBinding;

-	}

-

-	// no matching array, no space left

-	System.arraycopy(

-		arrayBindings, 0,

-		(arrayBindings = new ArrayBinding[length * 2]), 0,

-		length); 

-	uniqueArrayBindings[dimIndex] = arrayBindings;

-	return arrayBindings[length] = new ArrayBinding(type, dimensionCount, this);

-}

-public BinaryTypeBinding createBinaryTypeFrom(IBinaryType binaryType, PackageBinding packageBinding) {

-	return createBinaryTypeFrom(binaryType, packageBinding, true);

-}

-public BinaryTypeBinding createBinaryTypeFrom(IBinaryType binaryType, PackageBinding packageBinding, boolean needFieldsAndMethods) {

-	BinaryTypeBinding binaryBinding = new BinaryTypeBinding(packageBinding, binaryType, this);

-

-	// resolve any array bindings which reference the unresolvedType

-	ReferenceBinding cachedType = packageBinding.getType0(binaryBinding.compoundName[binaryBinding.compoundName.length - 1]);

-	if (cachedType != null) {

-		if (cachedType.isBinaryBinding()) // sanity check before the cast... at this point the cache should ONLY contain unresolved types

-			return (BinaryTypeBinding) cachedType;

-

-		((UnresolvedReferenceBinding) cachedType).setResolvedType(binaryBinding, this);

-	}

-

-	packageBinding.addType(binaryBinding);

-	binaryBinding.cachePartsFrom(binaryType, needFieldsAndMethods);

-	return binaryBinding;

-}

-/* Used to create packages from the package statement.

-*/

-

-PackageBinding createPackage(char[][] compoundName) {

-	PackageBinding packageBinding = getPackage0(compoundName[0]);

-	if (packageBinding == null || packageBinding == TheNotFoundPackage) {

-		packageBinding = new PackageBinding(compoundName[0], this);

-		knownPackages.put(compoundName[0], packageBinding);

-	}

-

-	for (int i = 1, length = compoundName.length; i < length; i++) {

-		// check to see if it collides with a known type...

-		// this case can only happen if the package does not exist as a directory in the file system

-		// otherwise when the source type was defined, the correct error would have been reported

-		// unless its an unresolved type which is referenced from an inconsistent class file

-		ReferenceBinding type = packageBinding.getType0(compoundName[i]);

-		if (type != null && type != TheNotFoundType && !(type instanceof UnresolvedReferenceBinding))

-			return null;

-

-		PackageBinding parent = packageBinding;

-		if ((packageBinding = parent.getPackage0(compoundName[i])) == null || packageBinding == TheNotFoundPackage) {

-			// if the package is unknown, check to see if a type exists which would collide with the new package

-			// catches the case of a package statement of: package java.lang.Object;

-			// since the package can be added after a set of source files have already been compiled, we need

-			// whenever a package statement is encountered

-			if (nameEnvironment.findType(compoundName[i], parent.compoundName) != null)

-				return null;

-

-			packageBinding = new PackageBinding(CharOperation.subarray(compoundName, 0, i + 1), parent, this);

-			parent.addPackage(packageBinding);

-		}

-	}

-	return packageBinding;

-}

-

-public ParameterizedTypeBinding createParameterizedType(ReferenceBinding genericType, TypeBinding[] typeArguments, ReferenceBinding enclosingType) {

-

-	// cached info is array of already created parameterized types for this type

-	ParameterizedTypeBinding[] cachedInfo = (ParameterizedTypeBinding[])this.uniqueParameterizedTypeBindings.get(genericType);

-	int argLength = typeArguments == null ? 0: typeArguments.length;

-	boolean needToGrow = false;

-	if (cachedInfo != null){

-		nextCachedType : 

-			// iterate existing parameterized for reusing one with same type arguments if any

-			for (int i = 0, max = cachedInfo.length; i < max; i++){

-			    ParameterizedTypeBinding cachedType = cachedInfo[i];

-			    if (cachedType.type != genericType) continue nextCachedType; // remain of unresolved type

-			    if (cachedType.enclosingType() != enclosingType) continue nextCachedType;

-				TypeBinding[] cachedArguments = cachedType.arguments;

-				int cachedArgLength = cachedArguments == null ? 0 : cachedArguments.length;

-				if (argLength != cachedArgLength) continue nextCachedType; // would be an error situation (from unresolved binaries)

-				for (int j = 0; j < cachedArgLength; j++){

-					if (typeArguments[j] != cachedArguments[j]) continue nextCachedType;

-				}

-				// all arguments match, reuse current

-				return cachedType;

-		}

-		needToGrow = true;

-	} else {

-		cachedInfo = new ParameterizedTypeBinding[1];

-		this.uniqueParameterizedTypeBindings.put(genericType, cachedInfo);

-	}

-	// grow cache ?

-	if (needToGrow){

-		int length = cachedInfo.length;

-		System.arraycopy(cachedInfo, 0, cachedInfo = new ParameterizedTypeBinding[length+1], 0, length);

-		this.uniqueParameterizedTypeBindings.put(genericType, cachedInfo);

-	}

-	// add new binding

-	ParameterizedTypeBinding parameterizedType = new ParameterizedTypeBinding(genericType,typeArguments, enclosingType, this);

-	cachedInfo[cachedInfo.length-1] = parameterizedType;

-	return parameterizedType;

-}

-

-public RawTypeBinding createRawType(ReferenceBinding genericType, ReferenceBinding enclosingType) {

-

-	// cached info is array of already created raw types for this type

-	RawTypeBinding[] cachedInfo = (RawTypeBinding[])this.uniqueRawTypeBindings.get(genericType);

-	boolean needToGrow = false;

-	if (cachedInfo != null){

-		nextCachedType : 

-			// iterate existing parameterized for reusing one with same type arguments if any

-			for (int i = 0, max = cachedInfo.length; i < max; i++){

-			    RawTypeBinding cachedType = cachedInfo[i];

-			    if (cachedType.type != genericType) continue nextCachedType; // remain of unresolved type

-			    if (cachedType.enclosingType() != enclosingType) continue nextCachedType;

-				// all enclosing type match, reuse current

-				return cachedType;

-		}

-		needToGrow = true;

-	} else {

-		cachedInfo = new RawTypeBinding[1];

-		this.uniqueRawTypeBindings.put(genericType, cachedInfo);

-	}

-	// grow cache ?

-	if (needToGrow){

-		int length = cachedInfo.length;

-		System.arraycopy(cachedInfo, 0, cachedInfo = new RawTypeBinding[length+1], 0, length);

-		this.uniqueRawTypeBindings.put(genericType, cachedInfo);

-	}

-	// add new binding

-	RawTypeBinding rawType = new RawTypeBinding(genericType, enclosingType, this);

-	cachedInfo[cachedInfo.length-1] = rawType;

-	return rawType;

-	

-}

-

-public WildcardBinding createWildcard(ReferenceBinding genericType, int rank, TypeBinding bound, int kind) {

-	

-	// cached info is array of already created wildcard  types for this type

-	WildcardBinding[] cachedInfo = (WildcardBinding[])this.uniqueWildcardBindings.get(genericType);

-	boolean needToGrow = false;

-	if (cachedInfo != null){

-		nextCachedType : 

-			// iterate existing wildcards for reusing one with same information if any

-			for (int i = 0, max = cachedInfo.length; i < max; i++){

-			    WildcardBinding cachedType = cachedInfo[i];

-			    if (cachedType.genericType != genericType) continue nextCachedType; // remain of unresolved type

-			    if (cachedType.rank != rank) continue nextCachedType;

-			    if (cachedType.kind != kind) continue nextCachedType;

-			    if (cachedType.bound != bound) continue nextCachedType;

-				// all match, reuse current

-				return cachedType;

-		}

-		needToGrow = true;

-	} else {

-		cachedInfo = new WildcardBinding[1];

-		this.uniqueWildcardBindings.put(genericType, cachedInfo);

-	}

-	// grow cache ?

-	if (needToGrow){

-		int length = cachedInfo.length;

-		System.arraycopy(cachedInfo, 0, cachedInfo = new WildcardBinding[length+1], 0, length);

-		this.uniqueWildcardBindings.put(genericType, cachedInfo);

-	}

-	// add new binding

-	WildcardBinding wildcard = new WildcardBinding(genericType, rank, bound, kind, this);

-	cachedInfo[cachedInfo.length-1] = wildcard;

-	return wildcard;

-}

-

-/* Answer the type for the compoundName if it exists in the cache.

-* Answer theNotFoundType if it could not be resolved the first time

-* it was looked up, otherwise answer null.

-*

-* NOTE: Do not use for nested types... the answer is NOT the same for a.b.C or a.b.C.D.E

-* assuming C is a type in both cases. In the a.b.C.D.E case, null is the answer.

-*/

-

-public ReferenceBinding getCachedType(char[][] compoundName) {

-	if (compoundName.length == 1) {

-		if (defaultPackage == null)

-			return null;

-		return defaultPackage.getType0(compoundName[0]);

-	}

-

-	PackageBinding packageBinding = getPackage0(compoundName[0]);

-	if (packageBinding == null || packageBinding == TheNotFoundPackage)

-		return null;

-

-	for (int i = 1, packageLength = compoundName.length - 1; i < packageLength; i++)

-		if ((packageBinding = packageBinding.getPackage0(compoundName[i])) == null || packageBinding == TheNotFoundPackage)

-			return null;

-	return packageBinding.getType0(compoundName[compoundName.length - 1]);

-}

-/* Answer the top level package named name if it exists in the cache.

-* Answer theNotFoundPackage if it could not be resolved the first time

-* it was looked up, otherwise answer null.

-*

-* NOTE: Senders must convert theNotFoundPackage into a real problem

-* package if its to returned.

-*/

-

-PackageBinding getPackage0(char[] name) {

-	return knownPackages.get(name);

-}

-/* Answer the top level package named name.

-* Ask the oracle for the package if its not in the cache.

-* Answer null if the package cannot be found.

-*/

-

-PackageBinding getTopLevelPackage(char[] name) {

-	PackageBinding packageBinding = getPackage0(name);

-	if (packageBinding != null) {

-		if (packageBinding == TheNotFoundPackage)

-			return null;

-		return packageBinding;

-	}

-

-	if (nameEnvironment.isPackage(null, name)) {

-		knownPackages.put(name, packageBinding = new PackageBinding(name, this));

-		return packageBinding;

-	}

-

-	knownPackages.put(name, TheNotFoundPackage); // saves asking the oracle next time

-	return null;

-}

-/* Answer the type corresponding to the compoundName.

-* Ask the oracle for the type if its not in the cache.

-* Answer null if the type cannot be found... likely a fatal error.

-*/

-

-public ReferenceBinding getType(char[][] compoundName) {

-	ReferenceBinding referenceBinding;

-

-	if (compoundName.length == 1) {

-		if (defaultPackage == null)

-			return null;

-

-		if ((referenceBinding = defaultPackage.getType0(compoundName[0])) == null) {

-			PackageBinding packageBinding = getPackage0(compoundName[0]);

-			if (packageBinding != null && packageBinding != TheNotFoundPackage)

-				return null; // collides with a known package... should not call this method in such a case

-			referenceBinding = askForType(defaultPackage, compoundName[0]);

-		}

-	} else {

-		PackageBinding packageBinding = getPackage0(compoundName[0]);

-		if (packageBinding == TheNotFoundPackage)

-			return null;

-

-		if (packageBinding != null) {

-			for (int i = 1, packageLength = compoundName.length - 1; i < packageLength; i++) {

-				if ((packageBinding = packageBinding.getPackage0(compoundName[i])) == null)

-					break;

-				if (packageBinding == TheNotFoundPackage)

-					return null;

-			}

-		}

-

-		if (packageBinding == null)

-			referenceBinding = askForType(compoundName);

-		else if ((referenceBinding = packageBinding.getType0(compoundName[compoundName.length - 1])) == null)

-			referenceBinding = askForType(packageBinding, compoundName[compoundName.length - 1]);

-	}

-

-	if (referenceBinding == null || referenceBinding == TheNotFoundType)

-		return null;

-	referenceBinding = BinaryTypeBinding.resolveType(referenceBinding, this, false); // no raw conversion for now

-

-	// compoundName refers to a nested type incorrectly (for example, package1.A$B)

-	if (referenceBinding.isNestedType())

-		return new ProblemReferenceBinding(compoundName, InternalNameProvided);

-	return referenceBinding;

-}

-private TypeBinding[] getTypeArgumentsFromSignature(SignatureWrapper wrapper, TypeVariableBinding[] staticVariables, ReferenceBinding enclosingType, ReferenceBinding genericType) {

-	java.util.ArrayList args = new java.util.ArrayList(2);

-	int rank = 0;

-	do {

-		args.add(getTypeFromVariantTypeSignature(wrapper, staticVariables, enclosingType, genericType, rank++));

-	} while (wrapper.signature[wrapper.start] != '>');

-	wrapper.start++; // skip '>'

-	TypeBinding[] typeArguments = new TypeBinding[args.size()];

-	args.toArray(typeArguments);

-	return typeArguments;

-}

-/* Answer the type corresponding to the name from the binary file.

-* Does not ask the oracle for the type if its not found in the cache... instead an

-* unresolved type is returned which must be resolved before used.

-*

-* NOTE: Does NOT answer base types nor array types!

-*

-* NOTE: Aborts compilation if the class file cannot be found.

-*/

-

-ReferenceBinding getTypeFromConstantPoolName(char[] signature, int start, int end, boolean isParameterized) {

-	if (end == -1)

-		end = signature.length;

-

-	char[][] compoundName = CharOperation.splitOn('/', signature, start, end);

-	ReferenceBinding binding = getCachedType(compoundName);

-	if (binding == null) {

-		PackageBinding packageBinding = computePackageFrom(compoundName);

-		binding = new UnresolvedReferenceBinding(compoundName, packageBinding);

-		packageBinding.addType(binding);

-	} else if (binding == TheNotFoundType) {

-		problemReporter.isClassPathCorrect(compoundName, null);

-		return null; // will not get here since the above error aborts the compilation

-	} else if (!isParameterized && binding.isGenericType()) {

-	    // check raw type, only for resolved types

-        binding = createRawType(binding, null);

-	}

-	return binding;

-}

-/* Answer the type corresponding to the signature from the binary file.

-* Does not ask the oracle for the type if its not found in the cache... instead an

-* unresolved type is returned which must be resolved before used.

-*

-* NOTE: Does answer base types & array types.

-*

-* NOTE: Aborts compilation if the class file cannot be found.

-*/

-

-TypeBinding getTypeFromSignature(char[] signature, int start, int end, boolean isParameterized, TypeBinding enclosingType) {

-	int dimension = 0;

-	while (signature[start] == '[') {

-		start++;

-		dimension++;

-	}

-	if (end == -1)

-		end = signature.length - 1;

-

-	// Just switch on signature[start] - the L case is the else

-	TypeBinding binding = null;

-	if (start == end) {

-		switch (signature[start]) {

-			case 'I' :

-				binding = IntBinding;

-				break;

-			case 'Z' :

-				binding = BooleanBinding;

-				break;

-			case 'V' :

-				binding = VoidBinding;

-				break;

-			case 'C' :

-				binding = CharBinding;

-				break;

-			case 'D' :

-				binding = DoubleBinding;

-				break;

-			case 'B' :

-				binding = ByteBinding;

-				break;

-			case 'F' :

-				binding = FloatBinding;

-				break;

-			case 'J' :

-				binding = LongBinding;

-				break;

-			case 'S' :

-				binding = ShortBinding;

-				break;

-			default :

-				problemReporter.corruptedSignature(enclosingType, signature, start);

-				// will never reach here, since error will cause abort

-		}

-	} else {

-		binding = getTypeFromConstantPoolName(signature, start + 1, end, isParameterized);

-	}

-

-	if (dimension == 0)

-		return binding;

-	return createArrayType(binding, dimension);

-}

-TypeBinding getTypeFromTypeSignature(SignatureWrapper wrapper, TypeVariableBinding[] staticVariables, ReferenceBinding enclosingType) {

-	// TypeVariableSignature = 'T' Identifier ';'

-	// ArrayTypeSignature = '[' TypeSignature

-	// ClassTypeSignature = 'L' Identifier TypeArgs(optional) ';'

-	//   or ClassTypeSignature '.' 'L' Identifier TypeArgs(optional) ';'

-	// TypeArgs = '<' VariantTypeSignature VariantTypeSignatures '>'

-	int dimension = 0;

-	while (wrapper.signature[wrapper.start] == '[') {

-		wrapper.start++;

-		dimension++;

-	}

-

-	if (wrapper.signature[wrapper.start] == 'T') {

-	    int varStart = wrapper.start + 1;

-	    int varEnd = wrapper.computeEnd();

-		for (int i = staticVariables.length; --i >= 0;)

-			if (CharOperation.equals(staticVariables[i].sourceName, wrapper.signature, varStart, varEnd))

-				return dimension == 0 ? (TypeBinding) staticVariables[i] : createArrayType(staticVariables[i], dimension);

-	    ReferenceBinding initialType = enclosingType;

-		do {

-		    if (enclosingType instanceof BinaryTypeBinding) { // per construction can only be binary type binding

-				TypeVariableBinding[] enclosingVariables = ((BinaryTypeBinding)enclosingType).typeVariables; // do not trigger resolution of variables

-				for (int i = enclosingVariables.length; --i >= 0;)

-					if (CharOperation.equals(enclosingVariables[i].sourceName, wrapper.signature, varStart, varEnd))

-						return dimension == 0 ? (TypeBinding) enclosingVariables[i] : createArrayType(enclosingVariables[i], dimension);

-		    }

-		} while ((enclosingType = enclosingType.enclosingType()) != null);

-		problemReporter.undefinedTypeVariableSignature(CharOperation.subarray(wrapper.signature, varStart, varEnd), initialType);

-		return null; // cannot reach this, since previous problem will abort compilation

-	}

-

-	TypeBinding type = getTypeFromSignature(wrapper.signature, wrapper.start, wrapper.computeEnd(), true, enclosingType);

-	if (wrapper.end != wrapper.bracket)

-		return dimension == 0 ? type : createArrayType(type, dimension);

-

-	// type must be a ReferenceBinding at this point, cannot be a BaseTypeBinding or ArrayTypeBinding

-	ReferenceBinding actualType = (ReferenceBinding) type;

-	TypeBinding[] typeArguments = getTypeArgumentsFromSignature(wrapper, staticVariables, enclosingType, actualType);

-	ParameterizedTypeBinding parameterizedType = createParameterizedType(actualType, typeArguments, null);

-

-	while (wrapper.signature[wrapper.start] == '.') {

-		wrapper.start++; // skip '.'

-		char[] memberName = wrapper.nextWord();

-		BinaryTypeBinding.resolveType(parameterizedType, this, false);

-		ReferenceBinding memberType = parameterizedType.type.getMemberType(memberName);

-		if (wrapper.signature[wrapper.start] == '<') {

-			wrapper.start++; // skip '<'

-			typeArguments = getTypeArgumentsFromSignature(wrapper, staticVariables, enclosingType, memberType);

-		} else {

-			typeArguments = null;

-		}

-		parameterizedType = createParameterizedType(memberType, typeArguments, parameterizedType);

-	}

-	wrapper.start++; // skip ';'

-	return dimension == 0 ? (TypeBinding) parameterizedType : createArrayType(parameterizedType, dimension);

-}

-TypeBinding getTypeFromVariantTypeSignature(

-	SignatureWrapper wrapper,

-	TypeVariableBinding[] staticVariables,

-	ReferenceBinding enclosingType,

-	ReferenceBinding genericType,

-	int rank) {

-	// VariantTypeSignature = '-' TypeSignature

-	//   or '+' TypeSignature

-	//   or TypeSignature

-	//   or '*'

-	switch (wrapper.signature[wrapper.start]) {

-		case '-' :

-			// ? super aType

-			wrapper.start++;

-			TypeBinding bound = getTypeFromTypeSignature(wrapper, staticVariables, enclosingType);

-			return createWildcard(genericType, rank, bound, Wildcard.SUPER);

-		case '+' :

-			// ? extends aType

-			wrapper.start++;

-			bound = getTypeFromTypeSignature(wrapper, staticVariables, enclosingType);

-			return createWildcard(genericType, rank, bound, Wildcard.EXTENDS);

-		case '*' :

-			// ?

-			wrapper.start++;

-			return createWildcard(genericType, rank, null, Wildcard.UNBOUND);

-		default :

-			return getTypeFromTypeSignature(wrapper, staticVariables, enclosingType);

-	}

-}

-/* Ask the oracle if a package exists named name in the package named compoundName.

-*/

-

-boolean isPackage(char[][] compoundName, char[] name) {

-	if (compoundName == null || compoundName.length == 0)

-		return nameEnvironment.isPackage(null, name);

-	return nameEnvironment.isPackage(compoundName, name);

-}

-// The method verifier is lazily initialized to guarantee the receiver, the compiler & the oracle are ready.

-

-public MethodVerifier methodVerifier() {

-	if (verifier == null)

-		verifier = this.options.sourceLevel < ClassFileConstants.JDK1_5

-			? new MethodVerifier(this)

-			: new MethodVerifier15(this);

-	return verifier;

-}

-public void reset() {

-	this.defaultPackage = new PackageBinding(this); // assume the default package always exists

-	this.defaultImports = null;

-	this.knownPackages = new HashtableOfPackage();

-

-	this.verifier = null;

-	for (int i = this.uniqueArrayBindings.length; --i >= 0;) {

-		ArrayBinding[] arrayBindings = this.uniqueArrayBindings[i];

-		if (arrayBindings != null)

-			for (int j = arrayBindings.length; --j >= 0;)

-				arrayBindings[j] = null;

-	}

-	this.uniqueParameterizedTypeBindings = new SimpleLookupTable(3);

-	this.uniqueRawTypeBindings = new SimpleLookupTable(3);

-	this.uniqueWildcardBindings = new SimpleLookupTable(3);

-

-	for (int i = this.units.length; --i >= 0;)

-		this.units[i] = null;

-	this.lastUnitIndex = -1;

-	this.lastCompletedUnitIndex = -1;

-	this.unitBeingCompleted = null; // in case AbortException occurred

-

-	// name environment has a longer life cycle, and must be reset in

-	// the code which created it.

-}

-void updateCaches(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType) {

-	// walk all the unique collections & replace the unresolvedType with the resolvedType

-	// must prevent 2 entries so == still works (1 containing the unresolvedType and the other containing the resolvedType)

-	if (uniqueParameterizedTypeBindings.get(unresolvedType) != null) { // update the key

-		Object[] keys = uniqueParameterizedTypeBindings.keyTable;

-		for (int i = 0, l = keys.length; i < l; i++) {

-			if (keys[i] == unresolvedType) {

-				keys[i] = resolvedType; // hashCode is based on compoundName so this works - cannot be raw since type of parameterized type

-				break;

-			}

-		}

-	}

-

-	if (uniqueWildcardBindings.get(unresolvedType) != null) { // update the key

-		Object[] keys = uniqueWildcardBindings.keyTable;

-		for (int i = 0, l = keys.length; i < l; i++) {

-			if (keys[i] == unresolvedType) {

-				keys[i] = resolvedType.isGenericType() ? createRawType(resolvedType, null) : resolvedType; // hashCode is based on compoundName so this works

-				break;

-			}

-		}

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MemberTypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MemberTypeBinding.js
deleted file mode 100644
index d2efd89..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MemberTypeBinding.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public final class MemberTypeBinding extends NestedTypeBinding {

-public MemberTypeBinding(char[][] compoundName, ClassScope scope, SourceTypeBinding enclosingType) {

-	super(compoundName, scope, enclosingType);

-	this.tagBits |= MemberTypeMask;

-}

-void checkSyntheticArgsAndFields() {

-	if (this.isStatic()) return;

-	if (this.isInterface()) return;

-	this.addSyntheticArgumentAndField(this.enclosingType);

-}

-/* Answer the receiver's constant pool name.

-*

-* NOTE: This method should only be used during/after code gen.

-*/

-

-public char[] constantPoolName() /* java/lang/Object */ {

-	if (constantPoolName != null)

-		return constantPoolName;

-

-	return constantPoolName = CharOperation.concat(enclosingType().constantPoolName(), sourceName, '$');

-}

-public String toString() {

-	return "Member type : " + new String(sourceName()) + " " + super.toString(); //$NON-NLS-2$ //$NON-NLS-1$

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodBinding.js
deleted file mode 100644
index 38b3bc4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodBinding.js
+++ /dev/null
@@ -1,635 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ConstructorDeclaration;

-

-public class MethodBinding extends Binding implements BaseTypes, TypeConstants {

-	public int modifiers;

-	public char[] selector;

-	public TypeBinding returnType;

-	public TypeBinding[] parameters;

-	public ReferenceBinding[] thrownExceptions;

-	public ReferenceBinding declaringClass;

-	public TypeVariableBinding[] typeVariables = NoTypeVariables;

-

-	char[] signature;

-

-protected MethodBinding() {

-	// for creating problem or synthetic method

-}

-public MethodBinding(int modifiers, char[] selector, TypeBinding returnType, TypeBinding[] parameters, ReferenceBinding[] thrownExceptions, ReferenceBinding declaringClass) {

-	this.modifiers = modifiers;

-	this.selector = selector;

-	this.returnType = returnType;

-	this.parameters = (parameters == null || parameters.length == 0) ? NoParameters : parameters;

-	this.thrownExceptions = (thrownExceptions == null || thrownExceptions.length == 0) ? NoExceptions : thrownExceptions;

-	this.declaringClass = declaringClass;

-	

-	// propagate the strictfp & deprecated modifiers

-	if (this.declaringClass != null) {

-		if (this.declaringClass.isStrictfp())

-			if (!(isNative() || isAbstract()))

-				this.modifiers |= AccStrictfp;

-		if (this.declaringClass.isViewedAsDeprecated() && !isDeprecated())

-			this.modifiers |= AccDeprecatedImplicitly;

-	}

-}

-public MethodBinding(int modifiers, TypeBinding[] parameters, ReferenceBinding[] thrownExceptions, ReferenceBinding declaringClass) {

-	this(modifiers, ConstructorDeclaration.ConstantPoolName, VoidBinding, parameters, thrownExceptions, declaringClass);

-}

-// special API used to change method declaring class for runtime visibility check

-public MethodBinding(MethodBinding initialMethodBinding, ReferenceBinding declaringClass) {

-	this.modifiers = initialMethodBinding.modifiers;

-	this.selector = initialMethodBinding.selector;

-	this.returnType = initialMethodBinding.returnType;

-	this.parameters = initialMethodBinding.parameters;

-	this.thrownExceptions = initialMethodBinding.thrownExceptions;

-	this.declaringClass = declaringClass;

-}

-/* Answer true if the argument types & the receiver's parameters are equal

-*/

-public final boolean areParametersEqual(MethodBinding method) {

-	TypeBinding[] args = method.parameters;

-	if (parameters == args)

-		return true;

-

-	int length = parameters.length;

-	if (length != args.length)

-		return false;

-	

-	for (int i = 0; i < length; i++)

-		if (parameters[i] != args[i])

-			return false;

-	return true;

-}

-/* Answer true if the argument types & the receiver's parameters have the same erasure

-*/

-public final boolean areParameterErasuresEqual(MethodBinding method) {

-	TypeBinding[] args = method.parameters;

-	if (parameters == args)

-		return true;

-

-	int length = parameters.length;

-	if (length != args.length)

-		return false;

-

-	for (int i = 0; i < length; i++) {

-		if (parameters[i].erasure() != args[i].erasure()) return false;

-	}

-	return true;

-}

-/* API

-* Answer the receiver's binding type from Binding.BindingID.

-*/

-

-public final int bindingType() {

-	return METHOD;

-}

-/* Answer true if the receiver is visible to the type provided by the scope.

-* InvocationSite implements isSuperAccess() to provide additional information

-* if the receiver is protected.

-*

-* NOTE: This method should ONLY be sent if the receiver is a constructor.

-*

-* NOTE: Cannot invoke this method with a compilation unit scope.

-*/

-

-public final boolean canBeSeenBy(InvocationSite invocationSite, Scope scope) {

-	if (isPublic()) return true;

-

-	SourceTypeBinding invocationType = scope.enclosingSourceType();

-	if (invocationType == declaringClass) return true;

-

-	if (isProtected()) {

-		// answer true if the receiver is in the same package as the invocationType

-		if (invocationType.fPackage == declaringClass.fPackage) return true;

-		return invocationSite.isSuperAccess();

-	}

-

-	if (isPrivate()) {

-		// answer true if the invocationType and the declaringClass have a common enclosingType

-		// already know they are not the identical type

-		ReferenceBinding outerInvocationType = invocationType;

-		ReferenceBinding temp = outerInvocationType.enclosingType();

-		while (temp != null) {

-			outerInvocationType = temp;

-			temp = temp.enclosingType();

-		}

-

-		ReferenceBinding outerDeclaringClass = (ReferenceBinding)declaringClass.erasure();

-		temp = outerDeclaringClass.enclosingType();

-		while (temp != null) {

-			outerDeclaringClass = temp;

-			temp = temp.enclosingType();

-		}

-		return outerInvocationType == outerDeclaringClass;

-	}

-

-	// isDefault()

-	return invocationType.fPackage == declaringClass.fPackage;

-}

-/* Answer true if the receiver is visible to the type provided by the scope.

-* InvocationSite implements isSuperAccess() to provide additional information

-* if the receiver is protected.

-*

-* NOTE: Cannot invoke this method with a compilation unit scope.

-*/

-public final boolean canBeSeenBy(TypeBinding receiverType, InvocationSite invocationSite, Scope scope) {

-	if (isPublic()) return true;

-

-	SourceTypeBinding invocationType = scope.enclosingSourceType();

-	if (invocationType == declaringClass && invocationType == receiverType) return true;

-

-	if (isProtected()) {

-		// answer true if the invocationType is the declaringClass or they are in the same package

-		// OR the invocationType is a subclass of the declaringClass

-		//    AND the receiverType is the invocationType or its subclass

-		//    OR the method is a static method accessed directly through a type

-		//    OR previous assertions are true for one of the enclosing type

-		if (invocationType == declaringClass) return true;

-		if (invocationType.fPackage == declaringClass.fPackage) return true;

-		

-		ReferenceBinding currentType = invocationType;

-		int depth = 0;

-		do {

-			if (declaringClass.isSuperclassOf(currentType)) {

-				if (invocationSite.isSuperAccess()){

-					return true;

-				}

-				// receiverType can be an array binding in one case... see if you can change it

-				if (receiverType instanceof ArrayBinding){

-					return false;

-				}

-				if (isStatic()){

-					if (depth > 0) invocationSite.setDepth(depth);

-					return true; // see 1FMEPDL - return invocationSite.isTypeAccess();

-				}

-				if (currentType == receiverType || currentType.isSuperclassOf((ReferenceBinding) receiverType)){

-					if (depth > 0) invocationSite.setDepth(depth);

-					return true;

-				}

-			}

-			depth++;

-			currentType = currentType.enclosingType();

-		} while (currentType != null);

-		return false;

-	}

-

-	if (isPrivate()) {

-		// answer true if the receiverType is the declaringClass

-		// AND the invocationType and the declaringClass have a common enclosingType

-		receiverCheck: {

-			if (receiverType != declaringClass) {

-				// special tolerance for type variable direct bounds

-				if (receiverType.isTypeVariable() && ((TypeVariableBinding) receiverType).isErasureBoundTo(declaringClass.erasure())) {

-					break receiverCheck;

-				}

-				return false;

-			}

-		}

-

-		if (invocationType != declaringClass) {

-			ReferenceBinding outerInvocationType = invocationType;

-			ReferenceBinding temp = outerInvocationType.enclosingType();

-			while (temp != null) {

-				outerInvocationType = temp;

-				temp = temp.enclosingType();

-			}

-

-			ReferenceBinding outerDeclaringClass = (ReferenceBinding)declaringClass.erasure();

-			temp = outerDeclaringClass.enclosingType();

-			while (temp != null) {

-				outerDeclaringClass = temp;

-				temp = temp.enclosingType();

-			}

-			if (outerInvocationType != outerDeclaringClass) return false;

-		}

-		return true;

-	}

-

-	// isDefault()

-	if (invocationType.fPackage != declaringClass.fPackage) return false;

-

-	// receiverType can be an array binding in one case... see if you can change it

-	if (receiverType instanceof ArrayBinding)

-		return false;

-	ReferenceBinding type = (ReferenceBinding) receiverType;

-	PackageBinding declaringPackage = declaringClass.fPackage;

-	do {

-		if (declaringClass == type) return true;

-		if (declaringPackage != type.fPackage) return false;

-	} while ((type = type.superclass()) != null);

-	return false;

-}

-

-/* 

- * Answer the declaring class to use in the constant pool

- * may not be a reference binding (see subtypes)

- */

-public TypeBinding constantPoolDeclaringClass() {

-	return this.declaringClass;

-}

-/* Answer the receiver's constant pool name.

-*

-* <init> for constructors

-* <clinit> for clinit methods

-* or the source name of the method

-*/

-public final char[] constantPoolName() {

-	return selector;

-}

-/**

- *<typeParam1 ... typeParamM>(param1 ... paramN)returnType thrownException1 ... thrownExceptionP

- * T foo(T t) throws X<T>   --->   (TT;)TT;LX<TT;>;

- * void bar(X<T> t)   -->   (LX<TT;>;)V

- * <T> void bar(X<T> t)   -->  <T:Ljava.lang.Object;>(LX<TT;>;)V

- */

-public char[] genericSignature() {

-	if ((this.modifiers & AccGenericSignature) == 0) return null;

-	StringBuffer sig = new StringBuffer(10);

-	if (this.typeVariables != NoTypeVariables) {

-		sig.append('<');

-		for (int i = 0, length = this.typeVariables.length; i < length; i++) {

-			sig.append(this.typeVariables[i].genericSignature());

-		}

-		sig.append('>');

-	}

-	sig.append('(');

-	for (int i = 0, length = this.parameters.length; i < length; i++) {

-		sig.append(this.parameters[i].genericTypeSignature());

-	}

-	sig.append(')').append(this.returnType.genericTypeSignature());

-	// only append thrown exception if any is generic/parameterized

-	for (int i = 0, length = this.thrownExceptions.length; i < length; i++) {

-		if((this.thrownExceptions[i].modifiers & AccGenericSignature) != 0) {

-			for (int j = 0; j < length; j++) {

-				sig.append(this.thrownExceptions[j].genericTypeSignature());

-			}

-			break;

-		}

-	}

-	int sigLength = sig.length();

-	char[] genericSignature = new char[sigLength];

-	sig.getChars(0, sigLength, genericSignature, 0);	

-	return genericSignature;

-}

-public final int getAccessFlags() {

-	return modifiers & AccJustFlag;

-}

-public TypeVariableBinding getTypeVariable(char[] variableName) {

-	for (int i = this.typeVariables.length; --i >= 0;)

-		if (CharOperation.equals(this.typeVariables[i].sourceName, variableName))

-			return this.typeVariables[i];

-	return null;

-}

-/**

- * Returns true if method got substituted parameter types

- * (see ParameterizedMethodBinding)

- */

-public boolean hasSubstitutedParameters() {

-	return false;

-}

-

-/* Answer true if the return type got substituted.

- */

-public boolean hasSubstitutedReturnType() {

-	return false;

-}

-

-/* Answer true if the receiver is an abstract method

-*/

-public final boolean isAbstract() {

-	return (modifiers & AccAbstract) != 0;

-}

-

-/* Answer true if the receiver is a bridge method

-*/

-public final boolean isBridge() {

-	return (modifiers & AccBridge) != 0;

-}

-

-/* Answer true if the receiver is a constructor

-*/

-public final boolean isConstructor() {

-	return selector == ConstructorDeclaration.ConstantPoolName;

-}

-protected boolean isConstructorRelated() {

-	return isConstructor();

-}

-

-/* Answer true if the receiver has default visibility

-*/

-public final boolean isDefault() {

-	return !isPublic() && !isProtected() && !isPrivate();

-}

-

-/* Answer true if the receiver is a system generated default abstract method

-*/

-public final boolean isDefaultAbstract() {

-	return (modifiers & AccDefaultAbstract) != 0;

-}

-

-/* Answer true if the receiver is a deprecated method

-*/

-public final boolean isDeprecated() {

-	return (modifiers & AccDeprecated) != 0;

-}

-

-/* Answer true if the receiver is final and cannot be overridden

-*/

-public final boolean isFinal() {

-	return (modifiers & AccFinal) != 0;

-}

-

-/* Answer true if the receiver is implementing another method

- * in other words, it is overriding and concrete, and overriden method is abstract

- * Only set for source methods

-*/

-public final boolean isImplementing() {

-	return (modifiers & AccImplementing) != 0;

-}

-

-/* Answer true if the receiver is a native method

-*/

-public final boolean isNative() {

-	return (modifiers & AccNative) != 0;

-}

-

-/* Answer true if the receiver is overriding another method

- * Only set for source methods

-*/

-public final boolean isOverriding() {

-	return (modifiers & AccOverriding) != 0;

-}

-/*

- * Answer true if the receiver is a "public static void main(String[])" method

- */

-public final boolean isMain() {

-	if (this.selector.length == 4 && CharOperation.equals(this.selector, MAIN)

-			&& ((this.modifiers & (AccPublic | AccStatic)) != 0)

-			&& VoidBinding == this.returnType  

-			&& this.parameters.length == 1) {

-		TypeBinding paramType = this.parameters[0];

-		if (paramType.dimensions() == 1 && paramType.leafComponentType().id == TypeIds.T_JavaLangString) {

-			return true;

-		}

-	}

-	return false;

-}

-/* Answer true if the receiver has private visibility

-*/

-public final boolean isPrivate() {

-	return (modifiers & AccPrivate) != 0;

-}

-

-/* Answer true if the receiver has private visibility and is used locally

-*/

-public final boolean isPrivateUsed() {

-	return (modifiers & AccPrivateUsed) != 0;

-}

-

-/* Answer true if the receiver has protected visibility

-*/

-public final boolean isProtected() {

-	return (modifiers & AccProtected) != 0;

-}

-

-/* Answer true if the receiver has public visibility

-*/

-public final boolean isPublic() {

-	return (modifiers & AccPublic) != 0;

-}

-

-/* Answer true if the receiver got requested to clear the private modifier

- * during private access emulation.

- */

-public final boolean isRequiredToClearPrivateModifier() {

-	return (modifiers & AccClearPrivateModifier) != 0;

-}

-

-/* Answer true if the receiver is a static method

-*/

-public final boolean isStatic() {

-	return (modifiers & AccStatic) != 0;

-}

-

-/* Answer true if all float operations must adher to IEEE 754 float/double rules

-*/

-public final boolean isStrictfp() {

-	return (modifiers & AccStrictfp) != 0;

-}

-

-/* Answer true if the receiver is a synchronized method

-*/

-public final boolean isSynchronized() {

-	return (modifiers & AccSynchronized) != 0;

-}

-

-/* Answer true if the receiver has public visibility

-*/

-public final boolean isSynthetic() {

-	return (modifiers & AccSynthetic) != 0;

-}

-

-/* Answer true if the receiver is a vararg method

-*/

-public final boolean isVararg() {

-	return (modifiers & AccVarargs) != 0;

-}

-

-/* Answer true if the receiver's declaring type is deprecated (or any of its enclosing types)

-*/

-public final boolean isViewedAsDeprecated() {

-	return (modifiers & AccDeprecated) != 0 ||

-		(modifiers & AccDeprecatedImplicitly) != 0;

-}

-

-/**

- * Returns the original method (as opposed to parameterized instances)

- */

-public MethodBinding original() {

-	return this;

-}

-

-public char[] readableName() /* foo(int, Thread) */ {

-	StringBuffer buffer = new StringBuffer(parameters.length + 1 * 20);

-	if (isConstructor())

-		buffer.append(declaringClass.sourceName());

-	else

-		buffer.append(selector);

-	buffer.append('(');

-	if (parameters != NoParameters) {

-		for (int i = 0, length = parameters.length; i < length; i++) {

-			if (i > 0)

-				buffer.append(", "); //$NON-NLS-1$

-			buffer.append(parameters[i].sourceName());

-		}

-	}

-	buffer.append(')');

-	return buffer.toString().toCharArray();

-}

-

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.lookup.Binding#shortReadableName()

- */

-public char[] shortReadableName() {

-	StringBuffer buffer = new StringBuffer(parameters.length + 1 * 20);

-	if (isConstructor())

-		buffer.append(declaringClass.shortReadableName());

-	else

-		buffer.append(selector);

-	buffer.append('(');

-	if (parameters != NoParameters) {

-		for (int i = 0, length = parameters.length; i < length; i++) {

-			if (i > 0)

-				buffer.append(", "); //$NON-NLS-1$

-			buffer.append(parameters[i].shortReadableName());

-		}

-	}

-	buffer.append(')');

-	int nameLength = buffer.length();

-	char[] shortReadableName = new char[nameLength];

-	buffer.getChars(0, nameLength, shortReadableName, 0);	    

-	return shortReadableName;

-}

-

-protected final void setSelector(char[] selector) {

-	this.selector = selector;

-	this.signature = null;

-}

-

-/* Answer the receiver's signature.

-*

-* NOTE: This method should only be used during/after code gen.

-* The signature is cached so if the signature of the return type or any parameter

-* type changes, the cached state is invalid.

-*/

-public final char[] signature() /* (ILjava/lang/Thread;)Ljava/lang/Object; */ {

-	if (signature != null)

-		return signature;

-

-	StringBuffer buffer = new StringBuffer(parameters.length + 1 * 20);

-	buffer.append('(');

-	

-	TypeBinding[] targetParameters = this.parameters;

-	boolean considerSynthetics = isConstructorRelated() && declaringClass.isNestedType();

-	if (considerSynthetics) {

-		

-		// take into account the synthetic argument type signatures as well

-		ReferenceBinding[] syntheticArgumentTypes = declaringClass.syntheticEnclosingInstanceTypes();

-		int count = syntheticArgumentTypes == null ? 0 : syntheticArgumentTypes.length;

-		for (int i = 0; i < count; i++) {

-			buffer.append(syntheticArgumentTypes[i].signature());

-		}

-		

-		if (this instanceof SyntheticAccessMethodBinding) {

-			targetParameters = ((SyntheticAccessMethodBinding)this).targetMethod.parameters;

-		}

-	}

-

-	if (targetParameters != NoParameters) {

-		for (int i = 0; i < targetParameters.length; i++) {

-			buffer.append(targetParameters[i].signature());

-		}

-	}

-	if (considerSynthetics) {

-		SyntheticArgumentBinding[] syntheticOuterArguments = declaringClass.syntheticOuterLocalVariables();

-		int count = syntheticOuterArguments == null ? 0 : syntheticOuterArguments.length;

-		for (int i = 0; i < count; i++) {

-			buffer.append(syntheticOuterArguments[i].type.signature());

-		}

-		// move the extra padding arguments of the synthetic constructor invocation to the end		

-		for (int i = targetParameters.length, extraLength = parameters.length; i < extraLength; i++) {

-			buffer.append(parameters[i].signature());

-		}

-	}

-	buffer.append(')');

-	buffer.append(returnType.signature());

-	int nameLength = buffer.length();

-	signature = new char[nameLength];

-	buffer.getChars(0, nameLength, signature, 0);	    

-	

-	return signature;

-}

-public final int sourceEnd() {

-	AbstractMethodDeclaration method = sourceMethod();

-	if (method == null)

-		return 0;

-	return method.sourceEnd;

-}

-AbstractMethodDeclaration sourceMethod() {

-	SourceTypeBinding sourceType;

-	try {

-		sourceType = (SourceTypeBinding) declaringClass;

-	} catch (ClassCastException e) {

-		return null;		

-	}

-

-	AbstractMethodDeclaration[] methods = sourceType.scope.referenceContext.methods;

-	for (int i = methods.length; --i >= 0;)

-		if (this == methods[i].binding)

-			return methods[i];

-	return null;		

-}

-public final int sourceStart() {

-	AbstractMethodDeclaration method = sourceMethod();

-	if (method == null)

-		return 0;

-	return method.sourceStart;

-}

-

-/* During private access emulation, the binding can be requested to loose its

- * private visibility when the class file is dumped.

- */

-

-public final void tagForClearingPrivateModifier() {

-	modifiers |= AccClearPrivateModifier;

-}

-public String toString() {

-	String s = (returnType != null) ? returnType.debugName() : "NULL TYPE"; //$NON-NLS-1$

-	s += " "; //$NON-NLS-1$

-	s += (selector != null) ? new String(selector) : "UNNAMED METHOD"; //$NON-NLS-1$

-

-	s += "("; //$NON-NLS-1$

-	if (parameters != null) {

-		if (parameters != NoParameters) {

-			for (int i = 0, length = parameters.length; i < length; i++) {

-				if (i  > 0)

-					s += ", "; //$NON-NLS-1$

-				s += (parameters[i] != null) ? parameters[i].debugName() : "NULL TYPE"; //$NON-NLS-1$

-			}

-		}

-	} else {

-		s += "NULL PARAMETERS"; //$NON-NLS-1$

-	}

-	s += ") "; //$NON-NLS-1$

-

-	if (thrownExceptions != null) {

-		if (thrownExceptions != NoExceptions) {

-			s += "throws "; //$NON-NLS-1$

-			for (int i = 0, length = thrownExceptions.length; i < length; i++) {

-				if (i  > 0)

-					s += ", "; //$NON-NLS-1$

-				s += (thrownExceptions[i] != null) ? thrownExceptions[i].debugName() : "NULL TYPE"; //$NON-NLS-1$

-			}

-		}

-	} else {

-		s += "NULL THROWN EXCEPTIONS"; //$NON-NLS-1$

-	}

-	return s;

-}

-public TypeVariableBinding[] typeVariables() {

-	return this.typeVariables;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodScope.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodScope.js
deleted file mode 100644
index 29d61f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodScope.js
+++ /dev/null
@@ -1,502 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ConstructorDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.QualifiedNameReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.SingleNameReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.codegen.CodeStream;

-import org.eclipse.wst.jsdt.internal.compiler.flow.FlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.flow.UnconditionalFlowInfo;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-

-/**

- * Particular block scope used for methods, constructors or clinits, representing

- * its outermost blockscope. Note also that such a scope will be provided to enclose

- * field initializers subscopes as well.

- */

-public class MethodScope extends BlockScope {

-

-	public ReferenceContext referenceContext;

-	public boolean isStatic; // method modifier or initializer one

-

-	//fields used during name resolution

-	public boolean isConstructorCall = false; 

-	public FieldBinding initializedField; // the field being initialized

-	public int lastVisibleFieldID = -1; // the ID of the last field which got declared 

-	// note that #initializedField can be null AND lastVisibleFieldID >= 0, when processing instance field initializers.

-

-	// flow analysis

-	public int analysisIndex; // for setting flow-analysis id

-	public boolean isPropagatingInnerClassEmulation;

-

-	// for local variables table attributes

-	public int lastIndex = 0;

-	public long[] definiteInits = new long[4];

-	public long[][] extraDefiniteInits = new long[4][];

-

-	// inner-emulation

-	public SyntheticArgumentBinding[] extraSyntheticArguments;

-	

-	public MethodScope(ClassScope parent, ReferenceContext context, boolean isStatic) {

-

-		super(METHOD_SCOPE, parent);

-		locals = new LocalVariableBinding[5];

-		this.referenceContext = context;

-		this.isStatic = isStatic;

-		this.startIndex = 0;

-	}

-

-	/* Spec : 8.4.3 & 9.4

-	 */

-	private void checkAndSetModifiersForConstructor(MethodBinding methodBinding) {

-		

-		int modifiers = methodBinding.modifiers;

-		if ((modifiers & AccAlternateModifierProblem) != 0)

-			problemReporter().duplicateModifierForMethod(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-

-		if (((ConstructorDeclaration) referenceContext).isDefaultConstructor) {

-			if (methodBinding.declaringClass.isPublic())

-				modifiers |= AccPublic;

-			else if (methodBinding.declaringClass.isProtected())

-				modifiers |= AccProtected;

-		}

-

-		// after this point, tests on the 16 bits reserved.

-		int realModifiers = modifiers & AccJustFlag;

-

-		// check for abnormal modifiers

-		int unexpectedModifiers =

-			~(AccPublic | AccPrivate | AccProtected | AccStrictfp);

-		if ((realModifiers & unexpectedModifiers) != 0)

-			problemReporter().illegalModifierForMethod(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-		else if (

-			(((AbstractMethodDeclaration) referenceContext).modifiers & AccStrictfp) != 0)

-			// must check the parse node explicitly

-			problemReporter().illegalModifierForMethod(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-

-		// check for incompatible modifiers in the visibility bits, isolate the visibility bits

-		int accessorBits = realModifiers & (AccPublic | AccProtected | AccPrivate);

-		if ((accessorBits & (accessorBits - 1)) != 0) {

-			problemReporter().illegalVisibilityModifierCombinationForMethod(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-

-			// need to keep the less restrictive

-			if ((accessorBits & AccPublic) != 0) {

-				if ((accessorBits & AccProtected) != 0)

-					modifiers ^= AccProtected;

-				if ((accessorBits & AccPrivate) != 0)

-					modifiers ^= AccPrivate;

-			}

-			if ((accessorBits & AccProtected) != 0)

-				if ((accessorBits & AccPrivate) != 0)

-					modifiers ^= AccPrivate;

-		}

-

-		// if the receiver's declaring class is a private nested type, then make sure the receiver is not private (causes problems for inner type emulation)

-		if (methodBinding.declaringClass.isPrivate())

-			if ((modifiers & AccPrivate) != 0)

-				modifiers ^= AccPrivate;

-

-		methodBinding.modifiers = modifiers;

-	}

-	

-	/* Spec : 8.4.3 & 9.4

-	 */

-	private void checkAndSetModifiersForMethod(MethodBinding methodBinding) {

-		

-		int modifiers = methodBinding.modifiers;

-		if ((modifiers & AccAlternateModifierProblem) != 0)

-			problemReporter().duplicateModifierForMethod(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-

-		// after this point, tests on the 16 bits reserved.

-		int realModifiers = modifiers & AccJustFlag;

-

-		// set the requested modifiers for a method in an interface

-		if (methodBinding.declaringClass.isInterface()) {

-			if ((realModifiers & ~(AccPublic | AccAbstract)) != 0)

-				problemReporter().illegalModifierForInterfaceMethod(

-					methodBinding.declaringClass,

-					(AbstractMethodDeclaration) referenceContext);

-			return;

-		}

-

-		// check for abnormal modifiers

-		int unexpectedModifiers =

-			~(

-				AccPublic

-					| AccPrivate

-					| AccProtected

-					| AccAbstract

-					| AccStatic

-					| AccFinal

-					| AccSynchronized

-					| AccNative

-					| AccStrictfp);

-		if ((realModifiers & unexpectedModifiers) != 0)

-			problemReporter().illegalModifierForMethod(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-

-		// check for incompatible modifiers in the visibility bits, isolate the visibility bits

-		int accessorBits = realModifiers & (AccPublic | AccProtected | AccPrivate);

-		if ((accessorBits & (accessorBits - 1)) != 0) {

-			problemReporter().illegalVisibilityModifierCombinationForMethod(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-

-			// need to keep the less restrictive

-			if ((accessorBits & AccPublic) != 0) {

-				if ((accessorBits & AccProtected) != 0)

-					modifiers ^= AccProtected;

-				if ((accessorBits & AccPrivate) != 0)

-					modifiers ^= AccPrivate;

-			}

-			if ((accessorBits & AccProtected) != 0)

-				if ((accessorBits & AccPrivate) != 0)

-					modifiers ^= AccPrivate;

-		}

-

-		// check for modifiers incompatible with abstract modifier

-		if ((modifiers & AccAbstract) != 0) {

-			int incompatibleWithAbstract =

-				AccPrivate | AccStatic | AccFinal | AccSynchronized | AccNative | AccStrictfp;

-			if ((modifiers & incompatibleWithAbstract) != 0)

-				problemReporter().illegalAbstractModifierCombinationForMethod(

-					methodBinding.declaringClass,

-					(AbstractMethodDeclaration) referenceContext);

-			if (!methodBinding.declaringClass.isAbstract())

-				problemReporter().abstractMethodInAbstractClass(

-					(SourceTypeBinding) methodBinding.declaringClass,

-					(AbstractMethodDeclaration) referenceContext);

-		}

-

-		/* DISABLED for backward compatibility with javac (if enabled should also mark private methods as final)

-		// methods from a final class are final : 8.4.3.3 

-		if (methodBinding.declaringClass.isFinal())

-			modifiers |= AccFinal;

-		*/

-		// native methods cannot also be tagged as strictfp

-		if ((modifiers & AccNative) != 0 && (modifiers & AccStrictfp) != 0)

-			problemReporter().nativeMethodsCannotBeStrictfp(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-

-		// static members are only authorized in a static member or top level type

-		if (((realModifiers & AccStatic) != 0)

-			&& methodBinding.declaringClass.isNestedType()

-			&& !methodBinding.declaringClass.isStatic())

-			problemReporter().unexpectedStaticModifierForMethod(

-				methodBinding.declaringClass,

-				(AbstractMethodDeclaration) referenceContext);

-

-		methodBinding.modifiers = modifiers;

-	}

-	

-	/* Compute variable positions in scopes given an initial position offset

-	 * ignoring unused local variables.

-	 * 

-	 * Deal with arguments here, locals and subscopes are processed in BlockScope method

-	 */

-	public void computeLocalVariablePositions(int initOffset, CodeStream codeStream) {

-

-		boolean isReportingUnusedArgument = false;

-

-		if (referenceContext instanceof AbstractMethodDeclaration) {

-			AbstractMethodDeclaration methodDecl = (AbstractMethodDeclaration)referenceContext;

-			MethodBinding method = methodDecl.binding;

-			CompilerOptions options = compilationUnitScope().environment.options;

-			if (!(method.isAbstract()

-					|| (method.isImplementing() && !options.reportUnusedParameterWhenImplementingAbstract) 

-					|| (method.isOverriding() && !method.isImplementing() && !options.reportUnusedParameterWhenOverridingConcrete)

-					|| method.isMain())) {

-				isReportingUnusedArgument = true;

-			}

-		}

-		this.offset = initOffset;

-		this.maxOffset = initOffset;

-

-		// manage arguments	

-		int ilocal = 0, maxLocals = this.localIndex;	

-		while (ilocal < maxLocals) {

-			LocalVariableBinding local = locals[ilocal];

-			if (local == null || !local.isArgument) break; // done with arguments

-

-			// do not report fake used variable

-			if (isReportingUnusedArgument

-					&& local.useFlag == LocalVariableBinding.UNUSED

-					&& ((local.declaration.bits & ASTNode.IsLocalDeclarationReachableMASK) != 0)) { // declaration is reachable

-				this.problemReporter().unusedArgument(local.declaration);

-			}

-

-			// record user-defined argument for attribute generation

-			codeStream.record(local); 

-

-			// assign variable position

-			local.resolvedPosition = this.offset;

-

-			if ((local.type == LongBinding) || (local.type == DoubleBinding)) {

-				this.offset += 2;

-			} else {

-				this.offset++;

-			}

-			// check for too many arguments/local variables

-			if (this.offset > 0xFF) { // no more than 255 words of arguments

-				this.problemReporter().noMoreAvailableSpaceForArgument(local, local.declaration);

-			}

-			ilocal++;

-		}

-		

-		// sneak in extra argument before other local variables

-		if (extraSyntheticArguments != null) {

-			for (int iarg = 0, maxArguments = extraSyntheticArguments.length; iarg < maxArguments; iarg++){

-				SyntheticArgumentBinding argument = extraSyntheticArguments[iarg];

-				argument.resolvedPosition = this.offset;

-				if ((argument.type == LongBinding) || (argument.type == DoubleBinding)){

-					this.offset += 2;

-				} else {

-					this.offset++;

-				}

-				if (this.offset > 0xFF) { // no more than 255 words of arguments

-					this.problemReporter().noMoreAvailableSpaceForArgument(argument, (ASTNode)this.referenceContext); 

-				}

-			}

-		}

-		this.computeLocalVariablePositions(ilocal, this.offset, codeStream);

-	}

-

-	/* Error management:

-	 * 		keep null for all the errors that prevent the method to be created

-	 * 		otherwise return a correct method binding (but without the element

-	 *		that caused the problem) : ie : Incorrect thrown exception

-	 */

-	MethodBinding createMethod(AbstractMethodDeclaration method) {

-

-		// is necessary to ensure error reporting

-		this.referenceContext = method;

-		method.scope = this;

-		SourceTypeBinding declaringClass = referenceType().binding;

-		int modifiers = method.modifiers | AccUnresolved;

-		if (method.isConstructor()) {

-			if (method.isDefaultConstructor()) {

-				modifiers |= AccIsDefaultConstructor;

-			}

-			method.binding = new MethodBinding(modifiers, null, null, declaringClass);

-			checkAndSetModifiersForConstructor(method.binding);

-		} else {

-			if (declaringClass.isInterface())

-				modifiers |= AccPublic | AccAbstract;

-			method.binding =

-				new MethodBinding(modifiers, method.selector, null, null, null, declaringClass);

-			checkAndSetModifiersForMethod(method.binding);

-		}

-		this.isStatic = method.binding.isStatic();

-		

-		TypeParameter[] typeParameters = method.typeParameters();

-	    // do not construct type variables if source < 1.5

-		if (typeParameters == null || environment().options.sourceLevel < ClassFileConstants.JDK1_5) {

-		    method.binding.typeVariables = NoTypeVariables;

-		} else {

-			method.binding.typeVariables = createTypeVariables(typeParameters, method.binding);

-			method.binding.modifiers |= AccGenericSignature;

-		}

-		return method.binding;

-	}

-

-	/* Overridden to detect the error case inside an explicit constructor call:

-	

-	class X {

-		int i;

-		X myX;

-		X(X x) {

-			this(i, myX.i, x.i); // same for super calls... only the first 2 field accesses are errors

-		}

-	}

-	*/

-	public FieldBinding findField(

-		TypeBinding receiverType,

-		char[] fieldName,

-		InvocationSite invocationSite,

-		boolean needResolve) {

-

-		FieldBinding field = super.findField(receiverType, fieldName, invocationSite, needResolve);

-		if (field == null)

-			return null;

-		if (!field.isValidBinding())

-			return field; // answer the error field

-		if (field.isStatic())

-			return field; // static fields are always accessible

-

-		if (!isConstructorCall || receiverType != enclosingSourceType())

-			return field;

-

-		if (invocationSite instanceof SingleNameReference)

-			return new ProblemFieldBinding(

-				field, // closest match

-				field.declaringClass,

-				fieldName,

-				NonStaticReferenceInConstructorInvocation);

-		if (invocationSite instanceof QualifiedNameReference) {

-			// look to see if the field is the first binding

-			QualifiedNameReference name = (QualifiedNameReference) invocationSite;

-			if (name.binding == null)

-				// only true when the field is the fieldbinding at the beginning of name's tokens

-				return new ProblemFieldBinding(

-					field, // closest match

-					field.declaringClass,

-					fieldName,

-					NonStaticReferenceInConstructorInvocation);

-		}

-		return field;

-	}

-

-	public boolean isInsideConstructor() {

-

-		return (referenceContext instanceof ConstructorDeclaration);

-	}

-	

-	public boolean isInsideInitializer() {

-

-		return (referenceContext instanceof TypeDeclaration);

-	}

-

-	public boolean isInsideInitializerOrConstructor() {

-

-		return (referenceContext instanceof TypeDeclaration)

-			|| (referenceContext instanceof ConstructorDeclaration);

-	}

-

-	/* Answer the problem reporter to use for raising new problems.

-	 *

-	 * Note that as a side-effect, this updates the current reference context

-	 * (unit, type or method) in case the problem handler decides it is necessary

-	 * to abort.

-	 */

-	public ProblemReporter problemReporter() {

-

-		MethodScope outerMethodScope;

-		if ((outerMethodScope = outerMostMethodScope()) == this) {

-			ProblemReporter problemReporter = referenceCompilationUnit().problemReporter;

-			problemReporter.referenceContext = referenceContext;

-			return problemReporter;

-		}

-		return outerMethodScope.problemReporter();

-	}

-

-	public final int recordInitializationStates(FlowInfo flowInfo) {

-

-		if (!flowInfo.isReachable()) return -1;

-

-		UnconditionalFlowInfo unconditionalFlowInfo = flowInfo.unconditionalInits();

-		long[] extraInits = unconditionalFlowInfo.extraDefiniteInits;

-		long inits = unconditionalFlowInfo.definiteInits;

-		checkNextEntry : for (int i = lastIndex; --i >= 0;) {

-			if (definiteInits[i] == inits) {

-				long[] otherInits = extraDefiniteInits[i];

-				if ((extraInits != null) && (otherInits != null)) {

-					if (extraInits.length == otherInits.length) {

-						int j, max;

-						for (j = 0, max = extraInits.length; j < max; j++) {

-							if (extraInits[j] != otherInits[j]) {

-								continue checkNextEntry;

-							}

-						}

-						return i;

-					}

-				} else {

-					if ((extraInits == null) && (otherInits == null)) {

-						return i;

-					}

-				}

-			}

-		}

-

-		// add a new entry

-		if (definiteInits.length == lastIndex) {

-			// need a resize

-			System.arraycopy(

-				definiteInits,

-				0,

-				(definiteInits = new long[lastIndex + 20]),

-				0,

-				lastIndex);

-			System.arraycopy(

-				extraDefiniteInits,

-				0,

-				(extraDefiniteInits = new long[lastIndex + 20][]),

-				0,

-				lastIndex);

-		}

-		definiteInits[lastIndex] = inits;

-		if (extraInits != null) {

-			extraDefiniteInits[lastIndex] = new long[extraInits.length];

-			System.arraycopy(

-				extraInits,

-				0,

-				extraDefiniteInits[lastIndex],

-				0,

-				extraInits.length);

-		}

-		return lastIndex++;

-	}

-

-	/* Answer the reference method of this scope, or null if initialization scoope.

-	*/

-	public AbstractMethodDeclaration referenceMethod() {

-

-		if (referenceContext instanceof AbstractMethodDeclaration) return (AbstractMethodDeclaration) referenceContext;

-		return null;

-	}

-

-	/* Answer the reference type of this scope.

-	*

-	* It is the nearest enclosing type of this scope.

-	*/

-	public TypeDeclaration referenceType() {

-

-		return ((ClassScope) parent).referenceContext;

-	}

-

-	String basicToString(int tab) {

-

-		String newLine = "\n"; //$NON-NLS-1$

-		for (int i = tab; --i >= 0;)

-			newLine += "\t"; //$NON-NLS-1$

-

-		String s = newLine + "--- Method Scope ---"; //$NON-NLS-1$

-		newLine += "\t"; //$NON-NLS-1$

-		s += newLine + "locals:"; //$NON-NLS-1$

-		for (int i = 0; i < localIndex; i++)

-			s += newLine + "\t" + locals[i].toString(); //$NON-NLS-1$

-		s += newLine + "startIndex = " + startIndex; //$NON-NLS-1$

-		s += newLine + "isConstructorCall = " + isConstructorCall; //$NON-NLS-1$

-		s += newLine + "initializedField = " + initializedField; //$NON-NLS-1$

-		s += newLine + "lastVisibleFieldID = " + lastVisibleFieldID; //$NON-NLS-1$

-		s += newLine + "referenceContext = " + referenceContext; //$NON-NLS-1$

-		return s;

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodVerifier.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodVerifier.js
deleted file mode 100644
index 304249d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodVerifier.js
+++ /dev/null
@@ -1,544 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfObject;

-

-class MethodVerifier implements TagBits, TypeConstants {

-	SourceTypeBinding type;

-	HashtableOfObject inheritedMethods;

-	HashtableOfObject currentMethods;

-	ReferenceBinding runtimeException;

-	ReferenceBinding errorException;

-	LookupEnvironment environment;

-/*

-Binding creation is responsible for reporting all problems with types:

-	- all modifier problems (duplicates & multiple visibility modifiers + incompatible combinations - abstract/final)

-		- plus invalid modifiers given the context (the verifier did not do this before)

-	- qualified name collisions between a type and a package (types in default packages are excluded)

-	- all type hierarchy problems:

-		- cycles in the superclass or superinterface hierarchy

-		- an ambiguous, invisible or missing superclass or superinterface

-		- extending a final class

-		- extending an interface instead of a class

-		- implementing a class instead of an interface

-		- implementing the same interface more than once (ie. duplicate interfaces)

-	- with nested types:

-		- shadowing an enclosing type's source name

-		- defining a static class or interface inside a non-static nested class

-		- defining an interface as a local type (local types can only be classes)

-*/

-MethodVerifier(LookupEnvironment environment) {

-	this.type = null;  // Initialized with the public method verify(SourceTypeBinding)

-	this.inheritedMethods = null;

-	this.currentMethods = null;

-	this.runtimeException = null;

-	this.errorException = null;

-	this.environment = environment;

-}

-boolean areParametersEqual(MethodBinding one, MethodBinding two) {

-	TypeBinding[] oneArgs = one.parameters;

-	TypeBinding[] twoArgs = two.parameters;

-	if (oneArgs == twoArgs) return true;

-

-	int length = oneArgs.length;

-	if (length != twoArgs.length) return false;

-

-	for (int i = 0; i < length; i++)

-		if (!areTypesEqual(oneArgs[i], twoArgs[i])) return false;

-	return true;

-}

-boolean areReturnTypesEqual(MethodBinding one, MethodBinding two) {

-	return areTypesEqual(one.returnType, two.returnType);

-}

-boolean areTypesEqual(TypeBinding one, TypeBinding two) {

-	if (one == two) return true;

-	if (one instanceof ReferenceBinding && two instanceof ReferenceBinding)

-		// can compare unresolved to resolved reference bindings

-		return CharOperation.equals(((ReferenceBinding) one).compoundName, ((ReferenceBinding) two).compoundName);

-	return false; // all other type bindings are identical

-}

-void checkAbstractMethod(MethodBinding abstractMethod) {

-	if (mustImplementAbstractMethod(abstractMethod)) {

-		TypeDeclaration typeDeclaration = this.type.scope.referenceContext;

-		if (typeDeclaration != null) {

-			MethodDeclaration missingAbstractMethod = typeDeclaration.addMissingAbstractMethodFor(abstractMethod);

-			missingAbstractMethod.scope.problemReporter().abstractMethodMustBeImplemented(this.type, abstractMethod);

-		} else {

-			this.problemReporter().abstractMethodMustBeImplemented(this.type, abstractMethod);

-		}

-	}

-}

-void checkAgainstInheritedMethods(MethodBinding currentMethod, MethodBinding[] methods, int length) {

-	nextMethod : for (int i = length; --i >= 0;) {

-		MethodBinding inheritedMethod = methods[i];

-		if (currentMethod.isStatic() != inheritedMethod.isStatic()) {  // Cannot override a static method or hide an instance method

-			this.problemReporter(currentMethod).staticAndInstanceConflict(currentMethod, inheritedMethod);

-			continue nextMethod;

-		}

-

-		if (!currentMethod.isAbstract() && inheritedMethod.isAbstract()) {

-			if ((currentMethod.modifiers & CompilerModifiers.AccOverriding) == 0)

-				currentMethod.modifiers |= CompilerModifiers.AccImplementing;

-		} else {

-			currentMethod.modifiers |= CompilerModifiers.AccOverriding;

-		}

-

-		if (!areReturnTypesEqual(currentMethod, inheritedMethod)) {

-			this.problemReporter(currentMethod).incompatibleReturnType(currentMethod, inheritedMethod);

-		} else {

-			if (currentMethod.thrownExceptions != NoExceptions)

-				this.checkExceptions(currentMethod, inheritedMethod);

-			if (inheritedMethod.isFinal())

-				this.problemReporter(currentMethod).finalMethodCannotBeOverridden(currentMethod, inheritedMethod);

-			if (!this.isAsVisible(currentMethod, inheritedMethod))

-				this.problemReporter(currentMethod).visibilityConflict(currentMethod, inheritedMethod);

-			if (environment.options.reportDeprecationWhenOverridingDeprecatedMethod && inheritedMethod.isViewedAsDeprecated()) {

-				if (!currentMethod.isViewedAsDeprecated() || environment.options.reportDeprecationInsideDeprecatedCode) {

-					// check against the other inherited methods to see if they hide this inheritedMethod

-					ReferenceBinding declaringClass = inheritedMethod.declaringClass;

-					if (declaringClass.isInterface())

-						for (int j = length; --j >= 0;)

-							if (i != j && methods[j].declaringClass.implementsInterface(declaringClass, false))

-								continue nextMethod;

-

-					this.problemReporter(currentMethod).overridesDeprecatedMethod(currentMethod, inheritedMethod);

-				}

-			}

-		}

-	}

-}

-/*

-"8.4.4"

-Verify that newExceptions are all included in inheritedExceptions.

-Assumes all exceptions are valid and throwable.

-Unchecked exceptions (compatible with runtime & error) are ignored (see the spec on pg. 203).

-*/

-void checkExceptions(MethodBinding newMethod, MethodBinding inheritedMethod) {

-	ReferenceBinding[] newExceptions = resolvedExceptionTypesFor(newMethod);

-	ReferenceBinding[] inheritedExceptions = resolvedExceptionTypesFor(inheritedMethod);

-	for (int i = newExceptions.length; --i >= 0;) {

-		ReferenceBinding newException = newExceptions[i];

-		int j = inheritedExceptions.length;

-		while (--j > -1 && !this.isSameClassOrSubclassOf(newException, inheritedExceptions[j])){/*empty*/}

-		if (j == -1)

-			if (!(newException.isCompatibleWith(this.runtimeException()) || newException.isCompatibleWith(this.errorException())))

-				this.problemReporter(newMethod).incompatibleExceptionInThrowsClause(this.type, newMethod, inheritedMethod, newException);

-	}

-}

-void checkInheritedMethods(MethodBinding[] methods, int length) {

-	MethodBinding first = methods[0];

-	int index = length;

-	while (--index > 0 && areReturnTypesEqual(first, methods[index])){/*empty*/}

-	if (index > 0) {  // All inherited methods do NOT have the same vmSignature

-		this.problemReporter().inheritedMethodsHaveIncompatibleReturnTypes(this.type, methods, length);

-		return;

-	}

-

-	MethodBinding concreteMethod = null;

-	if (!type.isInterface()) {  // ignore concrete methods for interfaces

-		for (int i = length; --i >= 0;) {  // Remember that only one of the methods can be non-abstract

-			if (!methods[i].isAbstract()) {

-				concreteMethod = methods[i];

-				break;

-			}

-		}

-	}

-	if (concreteMethod == null) {

-		if (this.type.isClass() && !this.type.isAbstract()) {

-			for (int i = length; --i >= 0;) {

-				if (mustImplementAbstractMethod(methods[i])) {

-					TypeDeclaration typeDeclaration = this.type.scope.referenceContext;

-					if (typeDeclaration != null) {

-						MethodDeclaration missingAbstractMethod = typeDeclaration.addMissingAbstractMethodFor(methods[0]);

-						missingAbstractMethod.scope.problemReporter().abstractMethodMustBeImplemented(this.type, methods[0]);

-					} else {

-						this.problemReporter().abstractMethodMustBeImplemented(this.type, methods[0]);

-					}

-					return;

-				}

-			}

-		}

-		return;

-	}

-

-	MethodBinding[] abstractMethods = new MethodBinding[length - 1];

-	index = 0;

-	for (int i = length; --i >= 0;)

-		if (methods[i] != concreteMethod)

-			abstractMethods[index++] = methods[i];

-

-	// Remember that interfaces can only define public instance methods

-	if (concreteMethod.isStatic())

-		// Cannot inherit a static method which is specified as an instance method by an interface

-		this.problemReporter().staticInheritedMethodConflicts(type, concreteMethod, abstractMethods);	

-	if (!concreteMethod.isPublic())

-		// Cannot reduce visibility of a public method specified by an interface

-		this.problemReporter().inheritedMethodReducesVisibility(type, concreteMethod, abstractMethods);

-	if (concreteMethod.thrownExceptions != NoExceptions)

-		for (int i = abstractMethods.length; --i >= 0;)

-			this.checkExceptions(concreteMethod, abstractMethods[i]);

-}

-/*

-For each inherited method identifier (message pattern - vm signature minus the return type)

-	if current method exists

-		if current's vm signature does not match an inherited signature then complain 

-		else compare current's exceptions & visibility against each inherited method

-	else

-		if inherited methods = 1

-			if inherited is abstract && type is NOT an interface or abstract, complain

-		else

-			if vm signatures do not match complain

-			else

-				find the concrete implementation amongst the abstract methods (can only be 1)

-				if one exists then

-					it must be a public instance method

-					compare concrete's exceptions against each abstract method

-				else

-					complain about missing implementation only if type is NOT an interface or abstract

-*/

-void checkMethods() {

-	boolean mustImplementAbstractMethods = this.type.isClass() && !this.type.isAbstract();

-	boolean skipInheritedMethods = mustImplementAbstractMethods && this.type.superInterfaces() == NoSuperInterfaces

-		&& this.type.superclass() != null && !this.type.superclass().isAbstract(); // have a single concrete superclass so only check overridden methods

-	char[][] methodSelectors = this.inheritedMethods.keyTable;

-	nextSelector : for (int s = methodSelectors.length; --s >= 0;) {

-		if (methodSelectors[s] == null) continue nextSelector;

-

-		MethodBinding[] current = (MethodBinding[]) this.currentMethods.get(methodSelectors[s]);

-		if (current == null && skipInheritedMethods)

-			continue nextSelector;

-

-		MethodBinding[] inherited = (MethodBinding[]) this.inheritedMethods.valueTable[s];

-		if (inherited.length == 1 && current == null) { // handle the common case

-			if (mustImplementAbstractMethods && inherited[0].isAbstract())

-				checkAbstractMethod(inherited[0]);

-			continue nextSelector;

-		}

-

-		int index = -1;

-		MethodBinding[] matchingInherited = new MethodBinding[inherited.length];

-		if (current != null) {

-			for (int i = 0, length1 = current.length; i < length1; i++) {

-				while (index >= 0) matchingInherited[index--] = null; // clear the previous contents of the matching methods

-				MethodBinding currentMethod = current[i];

-				for (int j = 0, length2 = inherited.length; j < length2; j++) {

-					MethodBinding inheritedMethod = inherited[j];

-					if (inheritedMethod != null && areParametersEqual(currentMethod, inheritedMethod)) {

-						matchingInherited[++index] = inheritedMethod;

-						inherited[j] = null; // do not want to find it again

-					}

-				}

-				if (index >= 0)

-					this.checkAgainstInheritedMethods(currentMethod, matchingInherited, index + 1); // pass in the length of matching

-			}

-		}

-

-		for (int i = 0, length = inherited.length; i < length; i++) {

-			while (index >= 0) matchingInherited[index--] = null; // clear the previous contents of the matching methods

-			MethodBinding inheritedMethod = inherited[i];

-			if (inheritedMethod != null) {

-				matchingInherited[++index] = inheritedMethod;

-				for (int j = i + 1; j < length; j++) {

-					if (inherited[j] != null && areParametersEqual(inheritedMethod, inherited[j])) {

-						matchingInherited[++index] = inherited[j];

-						inherited[j] = null; // do not want to find it again

-					}

-				}

-			}

-			if (index > 0)

-				this.checkInheritedMethods(matchingInherited, index + 1); // pass in the length of matching

-			else if (mustImplementAbstractMethods && index == 0 && matchingInherited[0].isAbstract())

-				checkAbstractMethod(matchingInherited[0]);

-		}

-	}

-}

-void checkPackagePrivateAbstractMethod(MethodBinding abstractMethod) {

-	// check that the inherited abstract method (package private visibility) is implemented within the same package

-	PackageBinding necessaryPackage = abstractMethod.declaringClass.fPackage;

-	if (necessaryPackage == this.type.fPackage) return; // not a problem

-

-	ReferenceBinding superType = this.type.superclass();

-	char[] selector = abstractMethod.selector;

-	do {

-		if (!superType.isValidBinding()) return;

-		if (!superType.isAbstract()) return; // closer non abstract super type will be flagged instead

-

-		if (necessaryPackage == superType.fPackage) {

-			MethodBinding[] methods = superType.getMethods(selector);

-			nextMethod : for (int m = methods.length; --m >= 0;) {

-				MethodBinding method = methods[m];

-				if (method.isPrivate() || method.isConstructor() || method.isDefaultAbstract())

-					continue nextMethod;

-				if (doesMethodOverride(method, abstractMethod))

-					return; // found concrete implementation of abstract method in same package

-			}

-		}

-	} while ((superType = superType.superclass()) != abstractMethod.declaringClass);

-

-	// non visible abstract methods cannot be overridden so the type must be defined abstract

-	this.problemReporter().abstractMethodCannotBeOverridden(this.type, abstractMethod);

-}

-/*

-Binding creation is responsible for reporting:

-	- all modifier problems (duplicates & multiple visibility modifiers + incompatible combinations)

-		- plus invalid modifiers given the context... examples:

-			- interface methods can only be public

-			- abstract methods can only be defined by abstract classes

-	- collisions... 2 methods with identical vmSelectors

-	- multiple methods with the same message pattern but different return types

-	- ambiguous, invisible or missing return/argument/exception types

-	- check the type of any array is not void

-	- check that each exception type is Throwable or a subclass of it

-*/

-void computeInheritedMethods() {

-	// only want to remember inheritedMethods that can have an impact on the current type

-	// if an inheritedMethod has been 'replaced' by a supertype's method then skip it

-

-	this.inheritedMethods = new HashtableOfObject(51); // maps method selectors to an array of methods... must search to match paramaters & return type

-	ReferenceBinding[][] interfacesToVisit = new ReferenceBinding[3][];

-	int lastPosition = -1;

-	ReferenceBinding[] itsInterfaces = type.superInterfaces();

-	if (itsInterfaces != NoSuperInterfaces)

-		interfacesToVisit[++lastPosition] = itsInterfaces;

-

-	ReferenceBinding superType = this.type.isClass()

-		? this.type.superclass()

-		: this.type.scope.getJavaLangObject(); // check interface methods against Object

-	HashtableOfObject nonVisibleDefaultMethods = new HashtableOfObject(3); // maps method selectors to an array of methods

-	boolean allSuperclassesAreAbstract = true;

-

-	while (superType != null) {

-		if (superType.isValidBinding()) {

-		    if (allSuperclassesAreAbstract) {

-			    if (superType.isAbstract()) {

-					// only need to include superinterfaces if immediate superclasses are abstract

-					if ((itsInterfaces = superType.superInterfaces()) != NoSuperInterfaces) {

-						if (++lastPosition == interfacesToVisit.length)

-							System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-						interfacesToVisit[lastPosition] = itsInterfaces;

-					}

-				} else {

-				    allSuperclassesAreAbstract = false;

-				}

-			}

-

-			MethodBinding[] methods = superType.unResolvedMethods();

-			nextMethod : for (int m = methods.length; --m >= 0;) {

-				MethodBinding inheritedMethod = methods[m];

-				if (inheritedMethod.isPrivate() || inheritedMethod.isConstructor() || inheritedMethod.isDefaultAbstract())

-					continue nextMethod;

-				MethodBinding[] existingMethods = (MethodBinding[]) this.inheritedMethods.get(inheritedMethod.selector);

-				if (existingMethods != null) {

-					for (int i = 0, length = existingMethods.length; i < length; i++) {

-						if (doesMethodOverride(existingMethods[i], inheritedMethod)) {

-							if (inheritedMethod.isDefault() && inheritedMethod.isAbstract())

-								checkPackagePrivateAbstractMethod(inheritedMethod);

-							continue nextMethod;

-						}

-					}

-				}

-				MethodBinding[] nonVisible = (MethodBinding[]) nonVisibleDefaultMethods.get(inheritedMethod.selector);

-				if (nonVisible != null)

-					for (int i = 0, l = nonVisible.length; i < l; i++)

-						if (doesMethodOverride(nonVisible[i], inheritedMethod))

-							continue nextMethod;

-

-				if (!inheritedMethod.isDefault() || inheritedMethod.declaringClass.fPackage == type.fPackage) {

-					if (existingMethods == null) {

-						existingMethods = new MethodBinding[] {inheritedMethod};

-					} else {

-						int length = existingMethods.length;

-						System.arraycopy(existingMethods, 0, existingMethods = new MethodBinding[length + 1], 0, length);

-						existingMethods[length] = inheritedMethod;

-					}

-					this.inheritedMethods.put(inheritedMethod.selector, existingMethods);

-				} else {

-					if (nonVisible == null) {

-						nonVisible = new MethodBinding[] {inheritedMethod};

-					} else {

-						int length = nonVisible.length;

-						System.arraycopy(nonVisible, 0, nonVisible = new MethodBinding[length + 1], 0, length);

-						nonVisible[length] = inheritedMethod;

-					}

-					nonVisibleDefaultMethods.put(inheritedMethod.selector, nonVisible);

-

-					if (inheritedMethod.isAbstract() && !this.type.isAbstract()) // non visible abstract methods cannot be overridden so the type must be defined abstract

-						this.problemReporter().abstractMethodCannotBeOverridden(this.type, inheritedMethod);

-

-					MethodBinding[] current = (MethodBinding[]) this.currentMethods.get(inheritedMethod.selector);

-					if (current != null) { // non visible methods cannot be overridden so a warning is issued

-						foundMatch : for (int i = 0, length = current.length; i < length; i++) {

-							if (doesMethodOverride(current[i], inheritedMethod)) {

-								this.problemReporter().overridesPackageDefaultMethod(current[i], inheritedMethod);

-								break foundMatch;

-							}

-						}

-					}

-				}

-			}

-			superType = superType.superclass();

-		}

-	}

-

-	for (int i = 0; i <= lastPosition; i++) {

-		ReferenceBinding[] interfaces = interfacesToVisit[i];

-		for (int j = 0, l = interfaces.length; j < l; j++) {

-			superType = interfaces[j];

-			if ((superType.tagBits & InterfaceVisited) == 0) {

-				superType.tagBits |= InterfaceVisited;

-				if (superType.isValidBinding()) {

-					if ((itsInterfaces = superType.superInterfaces()) != NoSuperInterfaces) {

-						if (++lastPosition == interfacesToVisit.length)

-							System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-						interfacesToVisit[lastPosition] = itsInterfaces;

-					}

-

-					MethodBinding[] methods = superType.unResolvedMethods();

-					nextMethod : for (int m = methods.length; --m >= 0;) { // Interface methods are all abstract public

-						MethodBinding inheritedMethod = methods[m];

-						MethodBinding[] existingMethods = (MethodBinding[]) this.inheritedMethods.get(inheritedMethod.selector);

-						if (existingMethods == null) {

-							existingMethods = new MethodBinding[] {inheritedMethod};

-						} else {

-							int length = existingMethods.length;

-							for (int e = 0; e < length; e++) {

-								MethodBinding existing = existingMethods[e];

-								// look to see if any of the existingMethods implement this inheritedMethod

-								if (areParametersEqual(existing, inheritedMethod) && existing.declaringClass.implementsInterface(superType, true))

-// so if the implemented method is abstract & has a different return type then did it get a bridge method?

-									continue nextMethod; // skip interface method with the same signature if visible to its declaringClass

-							}

-							System.arraycopy(existingMethods, 0, existingMethods = new MethodBinding[length + 1], 0, length);

-							existingMethods[length] = inheritedMethod;

-						}

-						this.inheritedMethods.put(inheritedMethod.selector, existingMethods);

-					}

-				}

-			}

-		}

-	}

-

-	// bit reinitialization

-	for (int i = 0; i <= lastPosition; i++) {

-		ReferenceBinding[] interfaces = interfacesToVisit[i];

-		for (int j = 0, length = interfaces.length; j < length; j++)

-			interfaces[j].tagBits &= ~InterfaceVisited;

-	}

-}

-void computeMethods() {

-	MethodBinding[] methods = type.methods();

-	int size = methods.length;

-	this.currentMethods = new HashtableOfObject(size == 0 ? 1 : size); // maps method selectors to an array of methods... must search to match paramaters & return type

-	for (int m = size; --m >= 0;) {

-		MethodBinding method = methods[m];

-		if (!(method.isConstructor() || method.isDefaultAbstract())) { // keep all methods which are NOT constructors or default abstract

-			MethodBinding[] existingMethods = (MethodBinding[]) this.currentMethods.get(method.selector);

-			if (existingMethods == null)

-				existingMethods = new MethodBinding[1];

-			else

-				System.arraycopy(existingMethods, 0,

-					(existingMethods = new MethodBinding[existingMethods.length + 1]), 0, existingMethods.length - 1);

-			existingMethods[existingMethods.length - 1] = method;

-			this.currentMethods.put(method.selector, existingMethods);

-		}

-	}

-}

-boolean doesMethodOverride(MethodBinding method, MethodBinding inheritedMethod) {

-	return areReturnTypesEqual(method, inheritedMethod) && areParametersEqual(method, inheritedMethod);

-}

-ReferenceBinding errorException() {

-	if (errorException == null)

-		this.errorException = this.type.scope.getJavaLangError();

-	return errorException;

-}

-boolean isAsVisible(MethodBinding newMethod, MethodBinding inheritedMethod) {

-	if (inheritedMethod.modifiers == newMethod.modifiers) return true;

-

-	if (newMethod.isPublic()) return true;		// Covers everything

-	if (inheritedMethod.isPublic()) return false;

-

-	if (newMethod.isProtected()) return true;

-	if (inheritedMethod.isProtected()) return false;

-

-	return !newMethod.isPrivate();		// The inheritedMethod cannot be private since it would not be visible

-}

-boolean isSameClassOrSubclassOf(ReferenceBinding testClass, ReferenceBinding superclass) {

-	do {

-		if (testClass == superclass) return true;

-	} while ((testClass = testClass.superclass()) != null);

-	return false;

-}

-boolean mustImplementAbstractMethod(MethodBinding abstractMethod) {

-	// if the type's superclass is an abstract class, then all abstract methods must be implemented

-	// otherwise, skip it if the type's superclass must implement any of the inherited methods

-	ReferenceBinding superclass = this.type.superclass();

-	ReferenceBinding declaringClass = abstractMethod.declaringClass;

-	if (declaringClass.isClass()) {

-		while (superclass.isAbstract() && superclass != declaringClass)

-			superclass = superclass.superclass(); // find the first concrete superclass or the abstract declaringClass

-	} else {

-		if (this.type.implementsInterface(declaringClass, false)) {

-			if (this.type.isAbstract()) return false; // leave it for the subclasses

-			if (!superclass.implementsInterface(declaringClass, true)) // only if a superclass does not also implement the interface

-				return true;

-		}

-		while (superclass.isAbstract() && !superclass.implementsInterface(declaringClass, false))

-			superclass = superclass.superclass(); // find the first concrete superclass or the superclass which implements the interface

-	}

-	return superclass.isAbstract();		// if it is a concrete class then we have already reported problem against it

-}

-ProblemReporter problemReporter() {

-	return this.type.scope.problemReporter();

-}

-ProblemReporter problemReporter(MethodBinding currentMethod) {

-	ProblemReporter reporter = problemReporter();

-	if (currentMethod.declaringClass == type)	// only report against the currentMethod if its implemented by the type

-		reporter.referenceContext = currentMethod.sourceMethod();

-	return reporter;

-}

-ReferenceBinding[] resolvedExceptionTypesFor(MethodBinding method) {

-	ReferenceBinding[] exceptions = method.thrownExceptions;

-	if ((method.modifiers & CompilerModifiers.AccUnresolved) == 0)

-		return exceptions;

-

-	if (!(method.declaringClass instanceof BinaryTypeBinding))

-		return TypeConstants.NoExceptions; // safety check

-

-	for (int i = exceptions.length; --i >= 0;)

-		exceptions[i] = BinaryTypeBinding.resolveType(exceptions[i], this.environment, true);

-	return exceptions;

-}

-ReferenceBinding runtimeException() {

-	if (runtimeException == null)

-		this.runtimeException = this.type.scope.getJavaLangRuntimeException();

-	return runtimeException;

-}

-void verify(SourceTypeBinding someType) {

-	this.type = someType;

-	this.computeMethods();

-	this.computeInheritedMethods();

-	this.checkMethods();

-}

-public String toString() {

-	StringBuffer buffer = new StringBuffer(10);

-	buffer.append("MethodVerifier for type: "); //$NON-NLS-1$

-	buffer.append(type.readableName());

-	buffer.append('\n');

-	buffer.append("\t-inherited methods: "); //$NON-NLS-1$

-	buffer.append(this.inheritedMethods);

-	return buffer.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodVerifier15.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodVerifier15.js
deleted file mode 100644
index 35a200b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/MethodVerifier15.js
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration;

-

-class MethodVerifier15 extends MethodVerifier {

-

-MethodVerifier15(LookupEnvironment environment) {

-	super(environment);

-}

-boolean areTypesEqual(TypeBinding one, TypeBinding two) {

-	return one == two || super.areTypesEqual(one.erasure(), two.erasure());

-}

-void checkAgainstInheritedMethods(MethodBinding currentMethod, MethodBinding[] methods, int length) {

-	// methods includes the inherited methods that the currentMethod must comply with

-	// likely only 1 but could be more if mutiple declared supertypes define the method (1 superclass & 1 to many declared interfaces)

-	nextMethod : for (int i = length; --i >= 0;) {

-		MethodBinding inheritedMethod = methods[i];

-		if (currentMethod.isStatic() != inheritedMethod.isStatic()) {  // Cannot override a static method or hide an instance method

-			this.problemReporter(currentMethod).staticAndInstanceConflict(currentMethod, inheritedMethod);

-			continue nextMethod;

-		}

-

-		// curentMethod is always resolved as its defined by the source type BUT the inheritedMethod may not be

-		// so now with generics, the inheritedMethod should be resolved since we don't want to waste time dealing

-		// with Unresolved types over & over

-		if (inheritedMethod.declaringClass instanceof BinaryTypeBinding)

-			((BinaryTypeBinding) inheritedMethod.declaringClass).resolveTypesFor(inheritedMethod);

-

-		// must check each parameter pair to see if you have raw to parameterized conversions

-		TypeBinding[] currentArgs = currentMethod.parameters;

-		TypeBinding[] inheritedArgs = inheritedMethod.parameters;

-		if (currentArgs != inheritedArgs) {

-			for (int j = 0, k = currentArgs.length; j < k; j++) {

-				TypeBinding currentArg = currentArgs[j].leafComponentType();

-				TypeBinding inheritedArg = inheritedArgs[j].leafComponentType();

-				if (currentArg != inheritedArg) {

-					if (currentArg.isParameterizedType() && hasBoundedParameters((ParameterizedTypeBinding) currentArg)) {

-						if (inheritedArg.isRawType()) {

-//						if (inheritedArg.isRawType() || !inheritedArg.isEquivalentTo(currentArg)) {

-							this.problemReporter(currentMethod).methodNameClash(currentMethod, inheritedMethod);

-							continue nextMethod;

-						}

-					}

-				}

-			}

-		}

-

-		if (!currentMethod.isAbstract() && inheritedMethod.isAbstract()) {

-			if ((currentMethod.modifiers & CompilerModifiers.AccOverriding) == 0)

-				currentMethod.modifiers |= CompilerModifiers.AccImplementing;

-		} else {

-			currentMethod.modifiers |= CompilerModifiers.AccOverriding;

-		}

-

-		boolean addBridgeMethod = inheritedMethod.hasSubstitutedReturnType();

-		if (currentMethod.returnType != inheritedMethod.returnType) {

-			// can be [] of Class#RAW vs. Class<T>

-			if (!isReturnTypeSubstituable(currentMethod, inheritedMethod)) {

-				this.problemReporter(currentMethod).incompatibleReturnType(currentMethod, inheritedMethod);

-				continue nextMethod;

-			}

-

-			TypeBinding inheritedReturnType = inheritedMethod.returnType.leafComponentType();

-			TypeBinding returnType = currentMethod.returnType.leafComponentType();

-			if (inheritedReturnType.isRawType()) {

-				if (returnType.isParameterizedType() && hasBoundedParameters((ParameterizedTypeBinding) returnType)) {

-					this.problemReporter(currentMethod).methodNameClash(currentMethod, inheritedMethod);

-					continue nextMethod;

-				}

-			} else if (inheritedReturnType.isParameterizedType()) {

-				if (!returnType.isParameterizedType()) 

-					this.problemReporter(currentMethod).unsafeReturnTypeOverride(currentMethod, inheritedMethod, ((MethodDeclaration)currentMethod.sourceMethod()).returnType);

-			} else if (inheritedReturnType.isTypeVariable()) {

-				this.problemReporter(currentMethod).unsafeReturnTypeOverride(currentMethod, inheritedMethod,  ((MethodDeclaration)currentMethod.sourceMethod()).returnType);

-			}

-			addBridgeMethod = true;

-		}

-

-		if (addBridgeMethod || inheritedMethod.hasSubstitutedParameters()) {

-		    MethodBinding original = inheritedMethod.original();

-		    if (!areReturnTypesEqual(original, currentMethod) || !areParametersEqual(original, currentMethod))

-				this.type.addSyntheticBridgeMethod(original, currentMethod);

-		}

-

-		if (currentMethod.thrownExceptions != NoExceptions)

-			this.checkExceptions(currentMethod, inheritedMethod);

-		if (inheritedMethod.isFinal())

-			this.problemReporter(currentMethod).finalMethodCannotBeOverridden(currentMethod, inheritedMethod);

-		if (!this.isAsVisible(currentMethod, inheritedMethod))

-			this.problemReporter(currentMethod).visibilityConflict(currentMethod, inheritedMethod);

-		if (environment.options.reportDeprecationWhenOverridingDeprecatedMethod && inheritedMethod.isViewedAsDeprecated()) {

-			if (!currentMethod.isViewedAsDeprecated() || environment.options.reportDeprecationInsideDeprecatedCode) {

-				// check against the other inherited methods to see if they hide this inheritedMethod

-				ReferenceBinding declaringClass = inheritedMethod.declaringClass;

-				if (declaringClass.isInterface())

-					for (int j = length; --j >= 0;)

-						if (i != j && methods[j].declaringClass.implementsInterface(declaringClass, false))

-							continue nextMethod;

-

-				this.problemReporter(currentMethod).overridesDeprecatedMethod(currentMethod, inheritedMethod);

-			}

-		}

-	}

-}

-boolean doesMethodOverride(MethodBinding method, MethodBinding inheritedMethod) {

-	return areParametersEqual(method, inheritedMethod) && isReturnTypeSubstituable(method, inheritedMethod);

-}

-boolean hasBoundedParameters(ParameterizedTypeBinding parameterizedType) {

-	TypeBinding[] arguments = parameterizedType.arguments;

-	if (arguments == null) return false;

-

-	nextArg : for (int i = 0, l = arguments.length; i < l; i++) {

-		if (arguments[i].isWildcard())

-			if (((WildcardBinding) arguments[i]).kind == org.eclipse.wst.jsdt.internal.compiler.ast.Wildcard.UNBOUND)

-				continue nextArg;

-		if (arguments[i].isTypeVariable())

-			if (((TypeVariableBinding) arguments[i]).firstBound == null)

-				continue nextArg;

-		return true;

-	}

-	return false;

-}

-boolean isReturnTypeSubstituable(MethodBinding one, MethodBinding two) {

-	if (one.returnType == two.returnType) return true;

-

-	return isTypeSubstituable(one.returnType.erasure(), two.returnType.erasure());

-}

-boolean isTypeSubstituable(TypeBinding one, TypeBinding two) {

-	if (one == two) return true;

-	if (one.isArrayType() || two.isArrayType()) {

-		if (one.isArrayType() != two.isArrayType()) return false;

-		ArrayBinding arrayOne = (ArrayBinding) one;

-		ArrayBinding arrayTwo = (ArrayBinding) two;

-		if (arrayOne.dimensions != arrayTwo.dimensions) return false;

-		one = arrayOne.leafComponentType;

-		two = arrayTwo.leafComponentType;

-	}

-	if (one.isBaseType() || two.isBaseType()) return false;

-

-	ReferenceBinding subType = (ReferenceBinding) one;

-	ReferenceBinding superType = (ReferenceBinding) two;

-	if (CharOperation.equals(subType.compoundName, superType.compoundName)) return true;

-

-	superType = BinaryTypeBinding.resolveType(superType, this.environment, true);

-	subType = BinaryTypeBinding.resolveType(subType, this.environment, true);

-	if (superType.isInterface())

-		return subType.implementsInterface(superType, true);

-	return subType.isClass() && isSameClassOrSubclassOf(subType, superType);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/NestedTypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/NestedTypeBinding.js
deleted file mode 100644
index d39fcef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/NestedTypeBinding.js
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public class NestedTypeBinding extends SourceTypeBinding {

-

-	public SourceTypeBinding enclosingType;

-

-	public SyntheticArgumentBinding[] enclosingInstances;

-	public SyntheticArgumentBinding[] outerLocalVariables;

-	public int enclosingInstancesSlotSize; // amount of slots used by synthetic enclosing instances

-	public int outerLocalVariablesSlotSize; // amount of slots used by synthetic outer local variables

-	

-	public NestedTypeBinding(char[][] typeName, ClassScope scope, SourceTypeBinding enclosingType) {

-		super(typeName, enclosingType.fPackage, scope);

-		this.tagBits |= IsNestedType;

-		this.enclosingType = enclosingType;

-	}

-	

-	/* Add a new synthetic argument for <actualOuterLocalVariable>.

-	* Answer the new argument or the existing argument if one already existed.

-	*/

-	public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) {

-		SyntheticArgumentBinding synthLocal = null;

-	

-		if (outerLocalVariables == null) {

-			synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable);

-			outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal};

-		} else {

-			int size = outerLocalVariables.length;

-			int newArgIndex = size;

-			for (int i = size; --i >= 0;) {		// must search backwards

-				if (outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable)

-					return outerLocalVariables[i];	// already exists

-				if (outerLocalVariables[i].id > actualOuterLocalVariable.id)

-					newArgIndex = i;

-			}

-			SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1];

-			System.arraycopy(outerLocalVariables, 0, synthLocals, 0, newArgIndex);

-			synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable);

-			System.arraycopy(outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex);

-			outerLocalVariables = synthLocals;

-		}

-		//System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName()));

-		if (scope.referenceCompilationUnit().isPropagatingInnerClassEmulation)

-			this.updateInnerEmulationDependents();

-		return synthLocal;

-	}

-

-	/* Add a new synthetic argument for <enclosingType>.

-	* Answer the new argument or the existing argument if one already existed.

-	*/

-	public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) {

-		SyntheticArgumentBinding synthLocal = null;

-		if (enclosingInstances == null) {

-			synthLocal = new SyntheticArgumentBinding(targetEnclosingType);

-			enclosingInstances = new SyntheticArgumentBinding[] {synthLocal};

-		} else {

-			int size = enclosingInstances.length;

-			int newArgIndex = size;

-			for (int i = size; --i >= 0;) {

-				if (enclosingInstances[i].type == targetEnclosingType)

-					return enclosingInstances[i]; // already exists

-				if (this.enclosingType() == targetEnclosingType)

-					newArgIndex = 0;

-			}

-			SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1];

-			System.arraycopy(enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size);

-			newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType);

-			enclosingInstances = newInstances;

-		}

-		//System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName()));

-		if (scope.referenceCompilationUnit().isPropagatingInnerClassEmulation)

-			this.updateInnerEmulationDependents();

-		return synthLocal;

-	}

-

-	/* Add a new synthetic argument and field for <actualOuterLocalVariable>.

-	* Answer the new argument or the existing argument if one already existed.

-	*/

-	public SyntheticArgumentBinding addSyntheticArgumentAndField(LocalVariableBinding actualOuterLocalVariable) {

-		SyntheticArgumentBinding synthLocal = addSyntheticArgument(actualOuterLocalVariable);

-		if (synthLocal == null) return null;

-	

-		if (synthLocal.matchingField == null)

-			synthLocal.matchingField = addSyntheticField(actualOuterLocalVariable);

-		return synthLocal;

-	}

-

-	/* Add a new synthetic argument and field for <enclosingType>.

-	* Answer the new argument or the existing argument if one already existed.

-	*/

-	public SyntheticArgumentBinding addSyntheticArgumentAndField(ReferenceBinding targetEnclosingType) {

-		SyntheticArgumentBinding synthLocal = addSyntheticArgument(targetEnclosingType);

-		if (synthLocal == null) return null;

-	

-		if (synthLocal.matchingField == null)

-			synthLocal.matchingField = addSyntheticField(targetEnclosingType);

-		return synthLocal;

-	}

-

-	/**

-	 * Compute the resolved positions for all the synthetic arguments

-	 */

-	final public void computeSyntheticArgumentSlotSizes() {

-	

-		int slotSize = 0; 

-		// insert enclosing instances first, followed by the outerLocals

-		int enclosingInstancesCount = this.enclosingInstances == null ? 0 : this.enclosingInstances.length;

-		for (int i = 0; i < enclosingInstancesCount; i++){

-			SyntheticArgumentBinding argument = this.enclosingInstances[i];

-			// position the enclosing instance synthetic arg

-			argument.resolvedPosition = slotSize + 1; // shift by 1 to leave room for aload0==this

-			if (slotSize + 1 > 0xFF) { // no more than 255 words of arguments

-				this.scope.problemReporter().noMoreAvailableSpaceForArgument(argument, this.scope.referenceType()); 

-			}

-			if ((argument.type == LongBinding) || (argument.type == DoubleBinding)){

-				slotSize += 2;

-			} else {

-				slotSize ++;

-			}

-		}

-		this.enclosingInstancesSlotSize = slotSize; 

-		

-		slotSize = 0; // reset, outer local are not positionned yet, since will be appended to user arguments

-		int outerLocalsCount = this.outerLocalVariables == null ? 0 : this.outerLocalVariables.length;

-			for (int i = 0; i < outerLocalsCount; i++){

-			SyntheticArgumentBinding argument = this.outerLocalVariables[i];

-			// do NOT position the outerlocal synthetic arg yet,  since will be appended to user arguments

-			if ((argument.type == LongBinding) || (argument.type == DoubleBinding)){

-				slotSize += 2;

-			} else {

-				slotSize ++;

-			}

-		}

-		this.outerLocalVariablesSlotSize = slotSize;

-	}

-	

-	/* Answer the receiver's enclosing type... null if the receiver is a top level type.

-	*/

-	public ReferenceBinding enclosingType() {

-

-		return enclosingType;

-	}

-

-	/* Answer the synthetic argument for <actualOuterLocalVariable> or null if one does not exist.

-	*/

-	public SyntheticArgumentBinding getSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) {

-

-		if (outerLocalVariables == null) return null;		// is null if no outer local variables are known

-	

-		for (int i = outerLocalVariables.length; --i >= 0;)

-			if (outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable)

-				return outerLocalVariables[i];

-		return null;

-	}

-

-	public SyntheticArgumentBinding[] syntheticEnclosingInstances() {

-		return enclosingInstances;		// is null if no enclosing instances are required

-	}

-

-	public ReferenceBinding[] syntheticEnclosingInstanceTypes() {

-		if (enclosingInstances == null)

-			return null;

-	

-		int length = enclosingInstances.length;

-		ReferenceBinding types[] = new ReferenceBinding[length];

-		for (int i = 0; i < length; i++)

-			types[i] = (ReferenceBinding) enclosingInstances[i].type;

-		return types;

-	}

-

-	public SyntheticArgumentBinding[] syntheticOuterLocalVariables() {

-

-		return outerLocalVariables;		// is null if no outer locals are required

-	}

-

-	/*

-	 * Trigger the dependency mechanism forcing the innerclass emulation

-	 * to be propagated to all dependent source types.

-	 */

-	public void updateInnerEmulationDependents() {

-		// nothing to do in general, only local types are doing anything

-	}

-	

-	/* Answer the synthetic argument for <targetEnclosingType> or null if one does not exist.

-	*/

-	public SyntheticArgumentBinding getSyntheticArgument(ReferenceBinding targetEnclosingType, boolean onlyExactMatch) {

-

-		if (enclosingInstances == null) return null;		// is null if no enclosing instances are known

-	

-		// exact match

-		for (int i = enclosingInstances.length; --i >= 0;)

-			if (enclosingInstances[i].type == targetEnclosingType)

-				if (enclosingInstances[i].actualOuterLocalVariable == null)

-					return enclosingInstances[i];

-	

-		// type compatibility : to handle cases such as

-		// class T { class M{}}

-		// class S extends T { class N extends M {}} --> need to use S as a default enclosing instance for the super constructor call in N().

-		if (!onlyExactMatch){

-			for (int i = enclosingInstances.length; --i >= 0;)

-				if (enclosingInstances[i].actualOuterLocalVariable == null)

-					if (((ReferenceBinding)enclosingInstances[i].type).findSuperTypeErasingTo(targetEnclosingType) != null)

-						return enclosingInstances[i];

-		}

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/PackageBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/PackageBinding.js
deleted file mode 100644
index 45b4497..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/PackageBinding.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfPackage;

-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfType;

-

-public class PackageBinding extends Binding implements TypeConstants {

-	public char[][] compoundName;

-	PackageBinding parent;

-	public LookupEnvironment environment;

-	HashtableOfType knownTypes;

-	HashtableOfPackage knownPackages;

-protected PackageBinding() {

-	// for creating problem package

-}

-public PackageBinding(char[][] compoundName, PackageBinding parent, LookupEnvironment environment) {

-	this.compoundName = compoundName;

-	this.parent = parent;

-	this.environment = environment;

-	this.knownTypes = null; // initialized if used... class counts can be very large 300-600

-	this.knownPackages = new HashtableOfPackage(3); // sub-package counts are typically 0-3

-}

-public PackageBinding(char[] topLevelPackageName, LookupEnvironment environment) {

-	this(new char[][] {topLevelPackageName}, null, environment);

-}

-/* Create the default package.

-*/

-

-public PackageBinding(LookupEnvironment environment) {

-	this(CharOperation.NO_CHAR_CHAR, null, environment);

-}

-private void addNotFoundPackage(char[] simpleName) {

-	knownPackages.put(simpleName, LookupEnvironment.TheNotFoundPackage);

-}

-private void addNotFoundType(char[] simpleName) {

-	if (knownTypes == null)

-		knownTypes = new HashtableOfType(25);

-	knownTypes.put(simpleName, LookupEnvironment.TheNotFoundType);

-}

-void addPackage(PackageBinding element) {

-	knownPackages.put(element.compoundName[element.compoundName.length - 1], element);

-}

-void addType(ReferenceBinding element) {

-	if (knownTypes == null)

-		knownTypes = new HashtableOfType(25);

-	knownTypes.put(element.compoundName[element.compoundName.length - 1], element);

-}

-/* API

-* Answer the receiver's binding type from Binding.BindingID.

-*/

-

-public final int bindingType() {

-	return PACKAGE;

-}

-private PackageBinding findPackage(char[] name) {

-	if (!environment.isPackage(this.compoundName, name))

-		return null;

-

-	char[][] subPkgCompoundName = CharOperation.arrayConcat(this.compoundName, name);

-	PackageBinding subPackageBinding = new PackageBinding(subPkgCompoundName, this, environment);

-	addPackage(subPackageBinding);

-	return subPackageBinding;

-}

-/* Answer the subpackage named name; ask the oracle for the package if its not in the cache.

-* Answer null if it could not be resolved.

-*

-* NOTE: This should only be used when we know there is NOT a type with the same name.

-*/

-

-PackageBinding getPackage(char[] name) {

-	PackageBinding binding = getPackage0(name);

-	if (binding != null) {

-		if (binding == LookupEnvironment.TheNotFoundPackage)

-			return null;

-		else

-			return binding;

-	}

-	if ((binding = findPackage(name)) != null)

-		return binding;

-

-	// not found so remember a problem package binding in the cache for future lookups

-	addNotFoundPackage(name);

-	return null;

-}

-/* Answer the subpackage named name if it exists in the cache.

-* Answer theNotFoundPackage if it could not be resolved the first time

-* it was looked up, otherwise answer null.

-*

-* NOTE: Senders must convert theNotFoundPackage into a real problem

-* package if its to returned.

-*/

-

-PackageBinding getPackage0(char[] name) {

-	return knownPackages.get(name);

-}

-/* Answer the type named name; ask the oracle for the type if its not in the cache.

-* Answer a NotVisible problem type if the type is not visible from the invocationPackage.

-* Answer null if it could not be resolved.

-*

-* NOTE: This should only be used by source types/scopes which know there is NOT a

-* package with the same name.

-*/

-

-ReferenceBinding getType(char[] name) {

-	ReferenceBinding typeBinding = getType0(name);

-	if (typeBinding == null) {

-		if ((typeBinding = environment.askForType(this, name)) == null) {

-			// not found so remember a problem type binding in the cache for future lookups

-			addNotFoundType(name);

-			return null;

-		}

-	}

-

-	if (typeBinding == LookupEnvironment.TheNotFoundType)

-		return null;

-

-	typeBinding = BinaryTypeBinding.resolveType(typeBinding, environment, false); // no raw conversion for now

-	if (typeBinding.isNestedType())

-		return new ProblemReferenceBinding(name, InternalNameProvided);

-	return typeBinding;

-}

-/* Answer the type named name if it exists in the cache.

-* Answer theNotFoundType if it could not be resolved the first time

-* it was looked up, otherwise answer null.

-*

-* NOTE: Senders must convert theNotFoundType into a real problem

-* reference type if its to returned.

-*/

-

-ReferenceBinding getType0(char[] name) {

-	if (knownTypes == null)

-		return null;

-	return knownTypes.get(name);

-}

-/* Answer the package or type named name; ask the oracle if it is not in the cache.

-* Answer null if it could not be resolved.

-*

-* When collisions exist between a type name & a package name, answer the type.

-* Treat the package as if it does not exist... a problem was already reported when the type was defined.

-*

-* NOTE: no visibility checks are performed.

-* THIS SHOULD ONLY BE USED BY SOURCE TYPES/SCOPES.

-*/

-

-public Binding getTypeOrPackage(char[] name) {

-	ReferenceBinding typeBinding = getType0(name);

-	if (typeBinding != null && typeBinding != LookupEnvironment.TheNotFoundType) {

-		typeBinding = BinaryTypeBinding.resolveType(typeBinding, environment, false); // no raw conversion for now

-		if (typeBinding.isNestedType())

-			return new ProblemReferenceBinding(name, InternalNameProvided);

-		return typeBinding;

-	}

-

-	PackageBinding packageBinding = getPackage0(name);

-	if (packageBinding != null && packageBinding != LookupEnvironment.TheNotFoundPackage)

-		return packageBinding;

-

-	if (typeBinding == null) { // have not looked for it before

-		if ((typeBinding = environment.askForType(this, name)) != null) {

-			if (typeBinding.isNestedType())

-				return new ProblemReferenceBinding(name, InternalNameProvided);

-			return typeBinding;

-		}

-

-		// Since name could not be found, add a problem binding

-		// to the collections so it will be reported as an error next time.

-		addNotFoundType(name);

-	}

-

-	if (packageBinding == null) { // have not looked for it before

-		if ((packageBinding = findPackage(name)) != null)

-			return packageBinding;

-		addNotFoundPackage(name);

-	}

-

-	return null;

-}

-public char[] readableName() /*java.lang*/ {

-	return CharOperation.concatWith(compoundName, '.');

-}

-public String toString() {

-	if (compoundName == CharOperation.NO_CHAR_CHAR)

-		return "The Default Package"; //$NON-NLS-1$

-	else

-		return "package " + ((compoundName != null) ? CharOperation.toString(compoundName) : "UNNAMED"); //$NON-NLS-1$ //$NON-NLS-2$

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedFieldBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedFieldBinding.js
deleted file mode 100644
index bb44131..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedFieldBinding.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-

-/**

- * Binding denoting a field after type substitution got performed.

- * On parameterized type bindings, all fields got substituted, regardless whether

- * their signature did involve generics or not, so as to get the proper declaringClass for

- * these fields.

- */

-public class ParameterizedFieldBinding extends FieldBinding {

-    

-    public FieldBinding originalField;

-    

-	public ParameterizedFieldBinding(ParameterizedTypeBinding parameterizedDeclaringClass, FieldBinding originalField) {

-	    super (

-	            originalField.name, 

-	            originalField.isStatic() ? originalField.type : parameterizedDeclaringClass.substitute(originalField.type), 

-	            originalField.modifiers, 

-	            parameterizedDeclaringClass, 

-	            null);

-	    this.originalField = originalField;

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.VariableBinding#constant()

-	 */

-	public Constant constant() {

-		return this.originalField.constant();

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.VariableBinding#isConstantValue()

-	 */

-	public boolean isConstantValue() {

-		return this.originalField.isConstantValue();

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.FieldBinding#original()

-	 */

-	public FieldBinding original() {

-		return this.originalField.original();

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.VariableBinding#constant()

-	 */

-	public void setConstant(Constant constant) {

-		this.originalField.setConstant(constant);

-	}	

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.js
deleted file mode 100644
index 22bf914..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.js
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import java.util.HashMap;

-import java.util.Map;

-import org.eclipse.wst.jsdt.internal.compiler.ast.MessageSend;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Wildcard;

-

-/**

- * Binding denoting a generic method after type parameter substitutions got performed.

- * On parameterized type bindings, all methods got substituted, regardless whether

- * their signature did involve generics or not, so as to get the proper declaringClass for

- * these methods.

- */

-public class ParameterizedGenericMethodBinding extends ParameterizedMethodBinding implements Substitution {

-

-    public TypeBinding[] typeArguments; 

-    private LookupEnvironment environment;

-    public boolean inferredReturnType;

-    

-    /**

-     * Create method of parameterized type, substituting original parameters with type arguments.

-     */

-	public ParameterizedGenericMethodBinding(MethodBinding originalMethod, TypeBinding[] typeArguments, LookupEnvironment environment) {

-

-	    this.environment = environment;

-		this.modifiers = originalMethod.modifiers;

-		this.selector = originalMethod.selector;

-		this.declaringClass = originalMethod.declaringClass;

-	    this.typeVariables = NoTypeVariables;

-	    this.typeArguments = typeArguments;

-	    this.originalMethod = originalMethod;

-	    this.parameters = Scope.substitute(this, originalMethod.parameters);

-	    this.thrownExceptions = Scope.substitute(this, originalMethod.thrownExceptions);

-	    this.returnType = this.substitute(originalMethod.returnType);

-	}

-	/**

-	 * Create raw generic method for raw type (double substitution from type vars with raw type arguments, and erasure of method variables)

-	 */

-	public ParameterizedGenericMethodBinding(MethodBinding originalMethod, RawTypeBinding rawType, LookupEnvironment environment) {

-

-		TypeVariableBinding[] originalVariables = originalMethod.typeVariables;

-		int length = originalVariables.length;

-		TypeBinding[] rawArguments = new TypeBinding[length];

-		for (int i = 0; i < length; i++) {

-			rawArguments[i] = originalVariables[i].erasure();

-		}		

-	    this.environment = environment;

-		this.modifiers = originalMethod.modifiers;

-		this.selector = originalMethod.selector;

-		this.declaringClass = rawType;

-	    this.typeVariables = NoTypeVariables;

-	    this.typeArguments = rawArguments;

-	    this.originalMethod = originalMethod;

-		boolean isStatic = originalMethod.isStatic();

-	    this.parameters = Scope.substitute(this, 

-	    										isStatic ? originalMethod.parameters : Scope.substitute(rawType, originalMethod.parameters));

-	    this.thrownExceptions = Scope.substitute(this, 

-	    										isStatic ? originalMethod.thrownExceptions : Scope.substitute(rawType, originalMethod.thrownExceptions));

-	    this.returnType = this.substitute(isStatic ? originalMethod.returnType : rawType.substitute(originalMethod.returnType));

-	}

-	

-	/**

-	 * Perform inference of generic method type parameters and/or expected type

-	 */	

-	public static MethodBinding computeCompatibleMethod(MethodBinding originalMethod, TypeBinding[] arguments, Scope scope, InvocationSite invocationSite) {

-		

-		ParameterizedGenericMethodBinding methodSubstitute;

-		TypeVariableBinding[] typeVariables = originalMethod.typeVariables;

-		TypeBinding[] substitutes = invocationSite.genericTypeArguments();

-		

-		if (substitutes != null) {

-			if (substitutes.length != typeVariables.length) {

-		        // incompatible due to wrong arity

-		        return new ProblemMethodBinding(originalMethod, originalMethod.selector, substitutes, TypeParameterArityMismatch);

-			}

-			methodSubstitute = new ParameterizedGenericMethodBinding(originalMethod, substitutes, scope.environment());

-		} else {

-			// perform type inference based on argument types and expected type

-			

-			// collect substitutes by pattern matching parameters and arguments

-			int argLength = arguments.length;

-			TypeBinding[] parameters = originalMethod.parameters;

-			int varLength = typeVariables.length;

-			HashMap collectedSubstitutes = new HashMap(varLength);

-			for (int i = 0; i < varLength; i++)

-				collectedSubstitutes.put(typeVariables[i], new TypeBinding[1]);

-			for (int i = 0; i < argLength; i++)

-				parameters[i].collectSubstitutes(arguments[i], collectedSubstitutes);

-			substitutes = new TypeBinding[varLength];

-			boolean needReturnTypeInference = false;

-			for (int i = 0; i < varLength; i++) {

-				TypeBinding[] variableSubstitutes = (TypeBinding[]) collectedSubstitutes.get(typeVariables[i]);

-				TypeBinding mostSpecificSubstitute = scope.lowerUpperBound(variableSubstitutes);

-				//TypeBinding mostSpecificSubstitute = scope.mostSpecificCommonType(variableSubstitutes);

-				if (mostSpecificSubstitute == null)

-					return null; // incompatible

-				if (mostSpecificSubstitute == VoidBinding) {

-					needReturnTypeInference = true;

-				    mostSpecificSubstitute = typeVariables[i];

-				}

-				substitutes[i] = mostSpecificSubstitute;

-			}

-			// apply inferred variable substitutions

-			methodSubstitute = new ParameterizedGenericMethodBinding(originalMethod, substitutes, scope.environment());

-	

-			if (needReturnTypeInference && invocationSite instanceof MessageSend) {

-				MessageSend message = (MessageSend) invocationSite;

-				TypeBinding expectedType = message.expectedType;

-				if (expectedType != null)

-					methodSubstitute.inferFromExpectedType(message.expectedType, scope);

-			}

-		}

-		// check bounds

-		for (int i = 0, length = typeVariables.length; i < length; i++) {

-		    TypeVariableBinding typeVariable = typeVariables[i];

-		    if (!typeVariable.boundCheck(methodSubstitute, substitutes[i]))

-		        // incompatible due to bound check

-		        return new ProblemMethodBinding(methodSubstitute, originalMethod.selector, new TypeBinding[]{substitutes[i], typeVariables[i] }, ParameterBoundMismatch);

-		}

-

-		return methodSubstitute;

-	}

-	

-	public void inferFromExpectedType(TypeBinding expectedType, Scope scope) {

-	    if (this.returnType == expectedType) 

-	        return;

-        if ((this.returnType.tagBits & TagBits.HasTypeVariable) == 0) 

-            return;

-        Map substitutes = new HashMap(1);

-        int length = this.typeArguments.length;

-        TypeVariableBinding[] originalVariables = this.original().typeVariables;

-        boolean hasUnboundParameters = false;

-        for (int i = 0; i < length; i++) {

-            if (this.typeArguments[i] == originalVariables[i]) {

-                hasUnboundParameters = true;

-	        	substitutes.put(originalVariables[i], new TypeBinding[1]);

-            } else {

-	        	substitutes.put(originalVariables[i], new TypeBinding[] { this.typeArguments[i] });

-            }

-        }

-        if (!hasUnboundParameters)

-            return;

-        returnType.collectSubstitutes(expectedType, substitutes);

-		for (int i = 0; i < length; i++) {

-			TypeBinding[] variableSubstitutes = (TypeBinding[]) substitutes.get(originalVariables[i]);

-			TypeBinding mostSpecificSubstitute = scope.lowerUpperBound(variableSubstitutes);

-			//TypeBinding mostSpecificSubstitute = scope.mostSpecificCommonType(variableSubstitutes);

-			if (mostSpecificSubstitute == null) {

-			    return; // TODO (philippe) should report no way to infer type

-			}

-			if (mostSpecificSubstitute != VoidBinding) 

-				this.typeArguments[i] = mostSpecificSubstitute;

-		}

-		TypeBinding oldReturnType = this.returnType;

-		this.returnType = this.substitute(this.returnType);

-		this.inferredReturnType = this.returnType != oldReturnType;

-	    this.parameters = Scope.substitute(this, this.parameters);

-	    this.thrownExceptions = Scope.substitute(this, this.thrownExceptions);

-	}

-	

-    /**

-     * Returns a type, where original type was substituted using the receiver

-     * parameterized method.

-     */

-    public TypeBinding substitute(TypeBinding originalType) {

-        

-        if ((originalType.tagBits & TagBits.HasTypeVariable) != 0) {

-    	    if (originalType.isTypeVariable()) {

-    	        TypeVariableBinding originalVariable = (TypeVariableBinding) originalType;

-    	        TypeVariableBinding[] variables = this.originalMethod.typeVariables;

-    	        int length = variables.length;

-    	        // check this variable can be substituted given parameterized type

-       		        if (originalVariable.rank < length && variables[originalVariable.rank] == originalVariable) {

-    					return this.typeArguments[originalVariable.rank];

-       		        }

-    	    } else if (originalType.isParameterizedType()) {

-    	        ParameterizedTypeBinding originalParameterizedType = (ParameterizedTypeBinding) originalType;

-    	        TypeBinding[] originalArguments = originalParameterizedType.arguments;

-    	        TypeBinding[] substitutedArguments = Scope.substitute(this, originalArguments);

-    	        if (substitutedArguments != originalArguments) {

-					identicalVariables: { // if substituted with original variables, then answer the generic type itself

-						TypeVariableBinding[] originalVariables = originalParameterizedType.type.typeVariables();

-						for (int i = 0, length = originalVariables.length; i < length; i++) {

-							if (substitutedArguments[i] != originalVariables[i]) break identicalVariables;

-						}

-						return originalParameterizedType.type;

-					}    	        	

-    	            return this.environment.createParameterizedType(

-    	                    originalParameterizedType.type, substitutedArguments, originalParameterizedType.enclosingType());

-        	    } 

-			} else if (originalType.isArrayType()) {

-				TypeBinding originalLeafComponentType = originalType.leafComponentType();

-				TypeBinding substitute = substitute(originalLeafComponentType); // substitute could itself be array type

-				if (substitute != originalLeafComponentType) {

-					return this.environment.createArrayType(substitute.leafComponentType(), substitute.dimensions() + originalType.dimensions());

-				}

-			} else if (originalType.isWildcard()) {

-		        WildcardBinding wildcard = (WildcardBinding) originalType;

-		        if (wildcard.kind != Wildcard.UNBOUND) {

-			        TypeBinding originalBound = wildcard.bound;

-			        TypeBinding substitutedBound = substitute(originalBound);

-			        if (substitutedBound != originalBound) {

-		        		return this.environment.createWildcard(wildcard.genericType, wildcard.rank, substitutedBound, wildcard.kind);

-			        }

-		        }

-    	    }

-		} else if (originalType.isGenericType()) {

-		    // treat as if parameterized with its type variables

-			ReferenceBinding originalGenericType = (ReferenceBinding) originalType;

-			TypeVariableBinding[] originalVariables = originalGenericType.typeVariables();

-			int length = originalVariables.length;

-			TypeBinding[] originalArguments;

-			System.arraycopy(originalVariables, 0, originalArguments = new TypeBinding[length], 0, length);

-			TypeBinding[] substitutedArguments = Scope.substitute(this, originalArguments);

-			if (substitutedArguments != originalArguments) {

-				return this.environment.createParameterizedType(

-						originalGenericType, substitutedArguments, null);

-			}

-        }

-        return originalType;

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedMethodBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedMethodBinding.js
deleted file mode 100644
index ab3d28c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedMethodBinding.js
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.Wildcard;

-

-/**

- * Binding denoting a method after type parameter substitutions got performed.

- * On parameterized type bindings, all methods got substituted, regardless whether

- * their signature did involve generics or not, so as to get the proper declaringClass for

- * these methods.

- */

-public class ParameterizedMethodBinding extends MethodBinding {

-

-	protected MethodBinding originalMethod;

-

-	/**

-	 * Create method of parameterized type, substituting original parameters/exception/return type with type arguments.

-	 */

-	public ParameterizedMethodBinding(ParameterizedTypeBinding parameterizedDeclaringClass, MethodBinding originalMethod, boolean isStatic) {

-

-		super(

-				originalMethod.modifiers,

-				originalMethod.selector,

-				isStatic // no substitution if original was static

-						? originalMethod.returnType

-						: parameterizedDeclaringClass.substitute(originalMethod.returnType),

-				isStatic // no substitution if original was static

-					? originalMethod.parameters

-					: Scope.substitute(parameterizedDeclaringClass, originalMethod.parameters),

-				isStatic // no substitution if original was static

-					? originalMethod.thrownExceptions

-					: Scope.substitute(parameterizedDeclaringClass, originalMethod.thrownExceptions),

-				parameterizedDeclaringClass);

-		this.originalMethod = originalMethod;

-		this.typeVariables = originalMethod.typeVariables;

-	}

-

-	public ParameterizedMethodBinding() {

-		// no init

-	}

-

-	/**

-	 * The type of x.getClass() is substituted from 'Class<? extends Object>' into: 'Class<? extends |X|> where |X| is X's erasure.

-	 */

-	public static ParameterizedMethodBinding instantiateGetClass(TypeBinding receiverType, MethodBinding originalMethod, Scope scope) {

-		ParameterizedMethodBinding method = new ParameterizedMethodBinding();

-		method.modifiers = originalMethod.modifiers;

-		method.selector = originalMethod.selector;

-		method.declaringClass = originalMethod.declaringClass;

-		method.typeVariables = NoTypeVariables;

-		method.originalMethod = originalMethod;

-		method.parameters = originalMethod.parameters;

-		method.thrownExceptions = originalMethod.thrownExceptions;

-		ReferenceBinding genericClassType = scope.getJavaLangClass();

-		method.returnType = scope.createParameterizedType(

-			genericClassType,

-			new TypeBinding[] {  scope.environment().createWildcard(genericClassType, 0, receiverType.erasure(), Wildcard.EXTENDS) },

-			null);

-		return method;

-	}

-

-	/**

-	 * Returns true if some parameters got substituted.

-	 */

-	public boolean hasSubstitutedParameters() {

-		return this.parameters != originalMethod.parameters;

-	}

-

-	/**

-	 * Returns true if the return type got substituted.

-	 */

-	public boolean hasSubstitutedReturnType() {

-		return this.returnType != originalMethod.returnType;

-	}

-

-	/**

-	 * Returns the original method (as opposed to parameterized instances)

-	 */

-	public MethodBinding original() {

-		return this.originalMethod.original();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedTypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedTypeBinding.js
deleted file mode 100644
index 8766a7d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ParameterizedTypeBinding.js
+++ /dev/null
@@ -1,787 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000-2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import java.util.Map;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ConstructorDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Wildcard;

-

-/**

- * A parameterized type encapsulates a type with type arguments,

- */

-public class ParameterizedTypeBinding extends ReferenceBinding implements Substitution {

-

-	public ReferenceBinding type; 

-	public TypeBinding[] arguments;

-	public LookupEnvironment environment; 

-	public char[] genericTypeSignature;

-	public ReferenceBinding superclass;

-	public ReferenceBinding[] superInterfaces;	

-	public FieldBinding[] fields;	

-	public ReferenceBinding[] memberTypes;

-	public MethodBinding[] methods;

-	private ReferenceBinding enclosingType;

-	

-	public ParameterizedTypeBinding(ReferenceBinding type, TypeBinding[] arguments,  ReferenceBinding enclosingType, LookupEnvironment environment){

-		this.environment = environment;

-		if (type.isParameterizedType() && type.isMemberType()) { // fixup instance of parameterized member type, e.g. Map<K,V>.Entry + <A,B>

-			enclosingType = type.enclosingType(); // use enclosing from previously parameterized

-			type = (ReferenceBinding)type.erasure(); // connect to erasure of member type

-		}

-		initialize(type, arguments);

-		this.enclosingType = enclosingType; // never unresolved, never lazy per construction

-

-		if (type instanceof UnresolvedReferenceBinding)

-			((UnresolvedReferenceBinding) type).addWrapper(this);

-		if (arguments != null) {

-			for (int i = 0, l = arguments.length; i < l; i++)

-				if (arguments[i] instanceof UnresolvedReferenceBinding)

-					((UnresolvedReferenceBinding) arguments[i]).addWrapper(this);

-		}

-	}

-

-	/**

-	 * Collect the substitutes into a map for certain type variables inside the receiver type

-	 * e.g.   Collection<T>.findSubstitute(T, Collection<List<X>>):   T --> List<X>

-	 */

-	public void collectSubstitutes(TypeBinding otherType, Map substitutes) {

-		if (this.arguments == null) return;

-		if (otherType instanceof ReferenceBinding) {

-			// allow List<T> to match with LinkedList<String>

-	        ReferenceBinding otherEquivalent = ((ReferenceBinding)otherType).findSuperTypeErasingTo((ReferenceBinding)this.type.erasure());

-	        if (otherEquivalent != null && otherEquivalent.isParameterizedType()) {

-		        ParameterizedTypeBinding otherParameterizedType = (ParameterizedTypeBinding) otherEquivalent;

-	            for (int i = 0, length = this.arguments.length; i < length; i++) {

-	                this.arguments[i].collectSubstitutes(otherParameterizedType.arguments[i], substitutes);

-	            }

-		    }

-	    }

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#computeId()

-	 */

-	public void computeId() {

-		this.id = NoId;		

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#constantPoolName()

-	 */

-	public char[] constantPoolName() {

-		return this.type.constantPoolName(); // erasure

-	}

-

-	public ParameterizedMethodBinding createParameterizedMethod(MethodBinding originalMethod) {

-		return new ParameterizedMethodBinding(this, originalMethod, originalMethod.isStatic());

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#debugName()

-	 */

-	public String debugName() {

-	    StringBuffer nameBuffer = new StringBuffer(10);

-		nameBuffer.append(this.type.sourceName());

-		if (this.arguments != null) {

-			nameBuffer.append('<');

-		    for (int i = 0, length = this.arguments.length; i < length; i++) {

-		        if (i > 0) nameBuffer.append(',');

-		        nameBuffer.append(this.arguments[i].debugName());

-		    }

-		    nameBuffer.append('>');

-		}

-	    return nameBuffer.toString();		

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#enclosingType()

-	 */

-	public ReferenceBinding enclosingType() {

-		if (this.isMemberType() && this.enclosingType == null) {

-			ReferenceBinding originalEnclosing = this.type.enclosingType();

-			this.enclosingType = originalEnclosing.isGenericType()

-													? this.environment.createRawType(originalEnclosing, null) // TODO (need to propagate in depth on enclosing type)

-													: originalEnclosing;

-		}

-	    return this.enclosingType;

-	}

-

-	/**

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#erasure()

-     */

-    public TypeBinding erasure() {

-        return this.type.erasure(); // erasure

-    }

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#fieldCount()

-	 */

-	public int fieldCount() {

-		return this.type.fieldCount(); // same as erasure (lazy)

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#fields()

-	 */

-	public FieldBinding[] fields() {

-		if (this.fields == null) {

-			try {

-				FieldBinding[] originalFields = this.type.fields();

-				int length = originalFields.length;

-				FieldBinding[] parameterizedFields = new FieldBinding[length];

-				for (int i = 0; i < length; i++)

-					// substitute all fields, so as to get updated declaring class at least

-					parameterizedFields[i] = new ParameterizedFieldBinding(this, originalFields[i]);

-				this.fields = parameterizedFields;	    

-			} finally {

-				// if the original fields cannot be retrieved (ex. AbortCompilation), then assume we do not have any fields

-				if (this.fields == null) 

-					this.fields = NoFields;

-			}

-		}

-		return this.fields;

-	}

-

-	/**

-	 * Ltype<param1 ... paremN>;

-	 * LY<TT;>;

-	 */

-	public char[] genericTypeSignature() {

-	    if (this.genericTypeSignature == null) {

-		    StringBuffer sig = new StringBuffer(10);

-			if (this.isMemberType() && this.enclosingType().isParameterizedType()) {

-			    char[] typeSig = this.enclosingType().genericTypeSignature();

-			    for (int i = 0; i < typeSig.length-1; i++) sig.append(typeSig[i]); // copy all but trailing semicolon

-			    sig.append('.').append(this.sourceName());

-			} else {

-			    char[] typeSig = this.type.signature();

-			    for (int i = 0; i < typeSig.length-1; i++) sig.append(typeSig[i]); // copy all but trailing semicolon

-			}	   	    

-			if (this.arguments != null) {

-			    sig.append('<');

-			    for (int i = 0, length = this.arguments.length; i < length; i++) {

-			        sig.append(this.arguments[i].genericTypeSignature());

-			    }

-			    sig.append('>'); //$NON-NLS-1$

-			}

-			sig.append(';');

-			int sigLength = sig.length();

-			this.genericTypeSignature = new char[sigLength];

-			sig.getChars(0, sigLength, this.genericTypeSignature, 0);			

-	    }

-		return this.genericTypeSignature;	    

-	}	

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#getExactConstructor(TypeBinding[])

-	 */

-	public MethodBinding getExactConstructor(TypeBinding[] argumentTypes) {

-		int argCount = argumentTypes.length;

-

-		if ((modifiers & AccUnresolved) == 0) { // have resolved all arg types & return type of the methods

-			nextMethod : for (int m = methods.length; --m >= 0;) {

-				MethodBinding method = methods[m];

-				if (method.selector == ConstructorDeclaration.ConstantPoolName && method.parameters.length == argCount) {

-					TypeBinding[] toMatch = method.parameters;

-					for (int p = 0; p < argCount; p++)

-						if (toMatch[p] != argumentTypes[p])

-							continue nextMethod;

-					return method;

-				}

-			}

-		} else {

-			MethodBinding[] constructors = getMethods(ConstructorDeclaration.ConstantPoolName); // takes care of duplicates & default abstract methods

-			nextConstructor : for (int c = constructors.length; --c >= 0;) {

-				MethodBinding constructor = constructors[c];

-				TypeBinding[] toMatch = constructor.parameters;

-				if (toMatch.length == argCount) {

-					for (int p = 0; p < argCount; p++)

-						if (toMatch[p] != argumentTypes[p])

-							continue nextConstructor;

-					return constructor;

-				}

-			}

-		}

-		return null;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#getExactMethod(char[], TypeBinding[])

-	 */

-	public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes, CompilationUnitScope refScope) {

-		if (refScope != null)

-			refScope.recordTypeReference(this);

-

-		int argCount = argumentTypes.length;

-		int selectorLength = selector.length;

-		boolean foundNothing = true;

-		MethodBinding match = null;

-

-		if ((modifiers & AccUnresolved) == 0) { // have resolved all arg types & return type of the methods

-			nextMethod : for (int m = methods.length; --m >= 0;) {

-				MethodBinding method = methods[m];

-				if (method.selector.length == selectorLength && CharOperation.equals(method.selector, selector)) {

-					foundNothing = false; // inner type lookups must know that a method with this name exists

-					if (method.parameters.length == argCount) {

-						TypeBinding[] toMatch = method.parameters;

-						for (int p = 0; p < argCount; p++)

-							if (toMatch[p] != argumentTypes[p])

-								continue nextMethod;

-						if (match != null) return null; // collision case

-						match = method;

-					}

-				}

-			}

-		} else {

-			MethodBinding[] matchingMethods = getMethods(selector); // takes care of duplicates & default abstract methods

-			foundNothing = matchingMethods == NoMethods;

-			nextMethod : for (int m = matchingMethods.length; --m >= 0;) {

-				MethodBinding method = matchingMethods[m];

-				TypeBinding[] toMatch = method.parameters;

-				if (toMatch.length == argCount) {

-					for (int p = 0; p < argCount; p++)

-						if (toMatch[p] != argumentTypes[p])

-							continue nextMethod;

-						if (match != null) return null; // collision case

-						match = method;

-				}

-			}

-		}

-		if (match != null) return match;

-

-		if (foundNothing) {

-			if (isInterface()) {

-				 if (superInterfaces().length == 1)

-					return superInterfaces[0].getExactMethod(selector, argumentTypes, refScope);

-			} else if (superclass() != null) {

-				return superclass.getExactMethod(selector, argumentTypes, refScope);

-			}

-		}

-		return null;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#getField(char[], boolean)

-	 */

-	public FieldBinding getField(char[] fieldName, boolean needResolve) {

-		fields(); // ensure fields have been initialized... must create all at once unlike methods

-		int fieldLength = fieldName.length;

-		for (int i = fields.length; --i >= 0;) {

-			FieldBinding field = fields[i];

-			if (field.name.length == fieldLength && CharOperation.equals(field.name, fieldName))

-				return field;

-		}

-		return null;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#getMemberType(char[])

-	 */

-	public ReferenceBinding getMemberType(char[] typeName) {

-		memberTypes(); // ensure memberTypes have been initialized... must create all at once unlike methods

-		int typeLength = typeName.length;

-		for (int i = this.memberTypes.length; --i >= 0;) {

-			ReferenceBinding memberType = this.memberTypes[i];

-			if (memberType.sourceName.length == typeLength && CharOperation.equals(memberType.sourceName, typeName))

-				return memberType;

-		}

-		return null;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#getMethods(char[])

-	 */

-	public MethodBinding[] getMethods(char[] selector) {

-		java.util.ArrayList matchingMethods = null;

-		if (this.methods != null) {

-			int selectorLength = selector.length;

-			for (int i = 0, length = this.methods.length; i < length; i++) {

-				MethodBinding method = methods[i];

-				if (method.selector.length == selectorLength && CharOperation.equals(method.selector, selector)) {

-					if (matchingMethods == null)

-						matchingMethods = new java.util.ArrayList(2);

-					matchingMethods.add(method);

-				}

-			}

-			if (matchingMethods != null) {

-				MethodBinding[] result = new MethodBinding[matchingMethods.size()];

-				matchingMethods.toArray(result);

-				return result;

-			}

-		}

-		if ((modifiers & AccUnresolved) == 0) return NoMethods; // have created all the methods and there are no matches

-

-		MethodBinding[] parameterizedMethods = null;

-		try {

-		    MethodBinding[] originalMethods = this.type.getMethods(selector);

-		    int length = originalMethods.length;

-		    if (length == 0) return NoMethods; 

-

-		    parameterizedMethods = new MethodBinding[length];

-		    for (int i = 0; i < length; i++)

-		    	// substitute methods, so as to get updated declaring class at least

-	            parameterizedMethods[i] = createParameterizedMethod(originalMethods[i]);

-		    if (this.methods == null) {

-		    	this.methods = parameterizedMethods;

-		    } else {

-		    	MethodBinding[] temp = new MethodBinding[length + this.methods.length];

-		    	System.arraycopy(parameterizedMethods, 0, temp, 0, length);

-		    	System.arraycopy(this.methods, 0, temp, length, this.methods.length);

-		    	this.methods = temp;

-			}

-		    return parameterizedMethods;

-		} finally {

-			// if the original methods cannot be retrieved (ex. AbortCompilation), then assume we do not have any methods

-		    if (parameterizedMethods == null) 

-		        this.methods = parameterizedMethods = NoMethods;

-		}

-	}

-	public boolean hasMemberTypes() {

-	    return this.type.hasMemberTypes();

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#implementsMethod(MethodBinding)

-	 */

-	public boolean implementsMethod(MethodBinding method) {

-		return this.type.implementsMethod(method); // erasure

-	}

-

-	void initialize(ReferenceBinding someType, TypeBinding[] someArguments) {

-		this.type = someType;

-		this.sourceName = someType.sourceName;

-		this.compoundName = someType.compoundName;

-		this.fPackage = someType.fPackage;

-		this.fileName = someType.fileName;

-		// should not be set yet

-		// this.superclass = null;

-		// this.superInterfaces = null;

-		// this.fields = null;

-		// this.methods = null;		

-		this.modifiers = someType.modifiers | AccGenericSignature | AccUnresolved; // until methods() is sent

-		if (someArguments != null) {

-			this.arguments = someArguments;

-			for (int i = 0, length = someArguments.length; i < length; i++) {

-				TypeBinding someArgument = someArguments[i];

-				if (!someArgument.isWildcard() || ((WildcardBinding) someArgument).kind != Wildcard.UNBOUND) {

-					this.tagBits |= IsBoundParameterizedType;

-				}

-			    this.tagBits |= someArgument.tagBits & (HasTypeVariable | HasWildcard);

-			}

-		}	    

-		this.tagBits |= someType.tagBits & (IsLocalType| IsMemberType | IsNestedType);

-	}

-

-	protected void initializeArguments() {

-	    // do nothing for true parameterized types (only for raw types)

-	}

-	

-	public boolean isEquivalentTo(TypeBinding otherType) {

-		if (this == otherType) 

-		    return true;

-	    if (otherType == null) 

-	        return false;

-        if (otherType.isRawType())

-            return erasure() == otherType.erasure();

-        if (otherType.isParameterizedType()) {

-            if ((otherType.tagBits & HasWildcard) == 0 && (!this.isMemberType() || !otherType.isMemberType())) 

-            	return false; // should have been identical

-            ParameterizedTypeBinding otherParamType = (ParameterizedTypeBinding) otherType;

-            if (this.type != otherParamType.type) 

-                return false;

-            ReferenceBinding enclosing = enclosingType();

-            if (enclosing != null && !enclosing.isEquivalentTo(otherParamType.enclosingType()))

-                return false;

-            int length = this.arguments == null ? 0 : this.arguments.length;

-            TypeBinding[] otherArguments = otherParamType.arguments;

-            int otherLength = otherArguments == null ? 0 : otherArguments.length;

-            if (otherLength != length) 

-                return false;

-            // argument must be identical, only equivalence is allowed if wildcard other type

-            for (int i = 0; i < length; i++) {

-            	TypeBinding argument = this.arguments[i];

-            	TypeBinding otherArgument = otherArguments[i];

-				if (!(argument == otherArgument

-						|| (otherArgument.isWildcard()) && argument.isEquivalentTo(otherArgument))) {

-					return false;

-				}

-            }

-            return true;

-        }

-        if (otherType.isWildcard())

-        	return ((WildcardBinding) otherType).boundCheck(this);

-        return false;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#isParameterizedType()

-	 */

-	public boolean isParameterizedType() {

-	    return true;

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#memberTypes()

-	 */

-	public ReferenceBinding[] memberTypes() {

-		if (this.memberTypes == null) {

-			try {

-				ReferenceBinding[] originalMemberTypes = this.type.memberTypes();

-				int length = originalMemberTypes.length;

-				ReferenceBinding[] parameterizedMemberTypes = new ReferenceBinding[length];

-				for (int i = 0; i < length; i++)

-					// substitute all member types, so as to get updated enclosing types

-					parameterizedMemberTypes[i] = this.environment.createParameterizedType(originalMemberTypes[i], null, this);

-				this.memberTypes = parameterizedMemberTypes;	    

-			} finally {

-				// if the original fields cannot be retrieved (ex. AbortCompilation), then assume we do not have any fields

-				if (this.memberTypes == null) 

-					this.memberTypes = NoMemberTypes;

-			}

-		}

-		return this.memberTypes;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#methods()

-	 */

-	public MethodBinding[] methods() {

-		if ((modifiers & AccUnresolved) == 0)

-			return this.methods;

-

-		try {

-		    MethodBinding[] originalMethods = this.type.methods();

-		    int length = originalMethods.length;

-		    MethodBinding[] parameterizedMethods = new MethodBinding[length];

-		    for (int i = 0; i < length; i++)

-		    	// substitute all methods, so as to get updated declaring class at least

-	            parameterizedMethods[i] = createParameterizedMethod(originalMethods[i]);

-		    this.methods = parameterizedMethods;

-		} finally {

-			// if the original methods cannot be retrieved (ex. AbortCompilation), then assume we do not have any methods

-		    if (this.methods == null) 

-		        this.methods = NoMethods;

-

-			modifiers ^= AccUnresolved;

-		}		

-		return this.methods;

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#qualifiedSourceName()

-	 */

-	public char[] qualifiedSourceName() {

-		return this.type.qualifiedSourceName();

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.Binding#readableName()

-	 */

-	public char[] readableName() {

-	    StringBuffer nameBuffer = new StringBuffer(10);

-		if (this.isMemberType()) {

-			nameBuffer.append(CharOperation.concat(this.enclosingType().readableName(), sourceName, '.'));

-		} else {

-			nameBuffer.append(CharOperation.concatWith(this.type.compoundName, '.'));

-		}	    

-		if (this.arguments != null) {

-			nameBuffer.append('<');

-		    for (int i = 0, length = this.arguments.length; i < length; i++) {

-		        if (i > 0) nameBuffer.append(',');

-		        nameBuffer.append(this.arguments[i].readableName());

-		    }

-		    nameBuffer.append('>');

-		}

-		int nameLength = nameBuffer.length();

-		char[] readableName = new char[nameLength];

-		nameBuffer.getChars(0, nameLength, readableName, 0);		

-	    return readableName;

-	}

-

-	ReferenceBinding resolve() {

-		// TODO need flag to know that this has already been done... should it be on ReferenceBinding?

-		ReferenceBinding resolvedType = BinaryTypeBinding.resolveType(this.type, this.environment, false); // still part of parameterized type ref

-		if (this.arguments != null) {

-			int argLength = this.arguments.length;

-			for (int i = 0; i < argLength; i++)

-				BinaryTypeBinding.resolveType(this.arguments[i], this.environment, this, i);

-			// arity check

-			TypeVariableBinding[] refTypeVariables = resolvedType.typeVariables();

-			if (refTypeVariables == NoTypeVariables) { // check generic

-				this.environment.problemReporter.nonGenericTypeCannotBeParameterized(null, resolvedType, this.arguments);

-				return this; // cannot reach here as AbortCompilation is thrown

-			} else if (argLength != refTypeVariables.length) { // check arity

-				this.environment.problemReporter.incorrectArityForParameterizedType(null, resolvedType, this.arguments);

-				return this; // cannot reach here as AbortCompilation is thrown

-			}			

-			// check argument type compatibility

-			for (int i = 0; i < argLength; i++) {

-			    TypeBinding resolvedArgument = this.arguments[i];

-				if (!refTypeVariables[i].boundCheck(this, resolvedArgument)) {

-					this.environment.problemReporter.typeMismatchError(resolvedArgument, refTypeVariables[i], resolvedType, null);

-			    }

-			}

-		}

-		return this;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.Binding#shortReadableName()

-	 */

-	public char[] shortReadableName() {

-	    StringBuffer nameBuffer = new StringBuffer(10);

-		if (this.isMemberType()) {

-			nameBuffer.append(CharOperation.concat(this.enclosingType().shortReadableName(), sourceName, '.'));

-		} else {

-			nameBuffer.append(this.type.sourceName);

-		}	    

-		if (this.arguments != null) {

-			nameBuffer.append('<');

-		    for (int i = 0, length = this.arguments.length; i < length; i++) {

-		        if (i > 0) nameBuffer.append(',');

-		        nameBuffer.append(this.arguments[i].shortReadableName());

-		    }

-		    nameBuffer.append('>');

-		}

-		int nameLength = nameBuffer.length();

-		char[] shortReadableName = new char[nameLength];

-		nameBuffer.getChars(0, nameLength, shortReadableName, 0);	    

-	    return shortReadableName;

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#signature()

-	 */

-	public char[] signature() {

-	    if (this.signature == null) {

-	        this.signature = this.type.signature();  // erasure

-	    }

-		return this.signature; 

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#sourceName()

-	 */

-	public char[] sourceName() {

-		return this.type.sourceName();

-	}

-

-	/**

-	 * Returns a type, where original type was substituted using the receiver

-	 * parameterized type.

-	 */

-	public TypeBinding substitute(TypeBinding originalType) {

-		if ((originalType.tagBits & TagBits.HasTypeVariable) != 0) {

-			if (originalType.isTypeVariable()) {

-				TypeVariableBinding originalVariable = (TypeVariableBinding) originalType;

-				ParameterizedTypeBinding currentType = this;

-				while (true) {

-					if (currentType.arguments != null) {

-						TypeVariableBinding[] typeVariables = currentType.type.typeVariables();

-						int length = typeVariables.length;

-						// check this variable can be substituted given parameterized type

-						if (originalVariable.rank < length && typeVariables[originalVariable.rank] == originalVariable) {

-							return currentType.arguments[originalVariable.rank];

-						}

-					}

-					// recurse on enclosing type, as it may hold more substitutions to perform

-					ReferenceBinding enclosing = currentType.enclosingType();

-					if (!(enclosing instanceof ParameterizedTypeBinding))

-						break;

-					currentType = (ParameterizedTypeBinding) enclosing;

-				}

-			} else if (originalType.isParameterizedType()) {

-				ParameterizedTypeBinding originalParameterizedType = (ParameterizedTypeBinding) originalType;

-				TypeBinding[] originalArguments = originalParameterizedType.arguments;

-				TypeBinding[] substitutedArguments = Scope.substitute(this, originalArguments);

-				if (substitutedArguments != originalArguments) {

-					identicalVariables: { // if substituted with original variables, then answer the generic type itself

-						TypeVariableBinding[] originalVariables = originalParameterizedType.type.typeVariables();

-						for (int i = 0, length = originalVariables.length; i < length; i++) {

-							if (substitutedArguments[i] != originalVariables[i]) break identicalVariables;

-						}

-						return originalParameterizedType.type;

-					}

-					return this.environment.createParameterizedType(

-							originalParameterizedType.type, substitutedArguments, originalParameterizedType.enclosingType);

-				}

-			} else if (originalType.isArrayType()) {

-				TypeBinding originalLeafComponentType = originalType.leafComponentType();

-				TypeBinding substitute = substitute(originalLeafComponentType); // substitute could itself be array type

-				if (substitute != originalLeafComponentType) {

-					return this.environment.createArrayType(substitute.leafComponentType(), substitute.dimensions() + originalType.dimensions());

-				}

-			} else if (originalType.isWildcard()) {

-		        WildcardBinding wildcard = (WildcardBinding) originalType;

-		        if (wildcard.kind != Wildcard.UNBOUND) {

-			        TypeBinding originalBound = wildcard.bound;

-			        TypeBinding substitutedBound = substitute(originalBound);

-			        if (substitutedBound != originalBound) {

-		        		return this.environment.createWildcard(wildcard.genericType, wildcard.rank, substitutedBound, wildcard.kind);

-			        }

-		        }

-			}

-		} else if (originalType.isGenericType()) {

-		    // treat as if parameterized with its type variables

-			ReferenceBinding originalGenericType = (ReferenceBinding) originalType;

-			TypeVariableBinding[] originalVariables = originalGenericType.typeVariables();

-			int length = originalVariables.length;

-			TypeBinding[] originalArguments;

-			System.arraycopy(originalVariables, 0, originalArguments = new TypeBinding[length], 0, length);

-			TypeBinding[] substitutedArguments = Scope.substitute(this, originalArguments);

-			if (substitutedArguments != originalArguments) {

-				return this.environment.createParameterizedType(

-						originalGenericType, substitutedArguments, null);

-			}

-		}

-		return originalType;

-	}	

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#superclass()

-	 */

-	public ReferenceBinding superclass() {

-	    if (this.superclass == null) {

-	        // note: Object cannot be generic

-	        ReferenceBinding genericSuperclass = this.type.superclass();

-	        if (genericSuperclass == null) return null; // e.g. interfaces

-		    this.superclass = (ReferenceBinding) substitute(genericSuperclass);

-	    }

-		return this.superclass;

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#superInterfaces()

-	 */

-	public ReferenceBinding[] superInterfaces() {

-	    if (this.superInterfaces == null) {

-	    	this.superInterfaces = Scope.substitute(this, this.type.superInterfaces());

-	    }

-		return this.superInterfaces;

-	}

-

-	public void swapUnresolved(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType, LookupEnvironment env) {

-		boolean update = false;

-		if (this.type == unresolvedType) {

-			this.type = resolvedType; // cannot be raw since being parameterized below

-			update = true;

-		}

-		if (this.arguments != null) {

-			for (int i = 0, l = this.arguments.length; i < l; i++) {

-				if (this.arguments[i] == unresolvedType) {

-					this.arguments[i] = resolvedType.isGenericType() ? env.createRawType(resolvedType, null) : resolvedType;

-					update = true;

-				}

-			}

-		}

-		if (update)

-			initialize(this.type, this.arguments);

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#syntheticEnclosingInstanceTypes()

-	 */

-	public ReferenceBinding[] syntheticEnclosingInstanceTypes() {

-		return this.type.syntheticEnclosingInstanceTypes();

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#syntheticOuterLocalVariables()

-	 */

-	public SyntheticArgumentBinding[] syntheticOuterLocalVariables() {

-		return this.type.syntheticOuterLocalVariables();

-	}

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#qualifiedPackageName()

-	 */

-	public char[] qualifiedPackageName() {

-		return this.type.qualifiedPackageName();

-	}

-

-	/**

-	 * @see java.lang.Object#toString()

-	 */

-	public String toString() {

-	    StringBuffer buffer = new StringBuffer(30);

-		if (isDeprecated()) buffer.append("deprecated "); //$NON-NLS-1$

-		if (isPublic()) buffer.append("public "); //$NON-NLS-1$

-		if (isProtected()) buffer.append("protected "); //$NON-NLS-1$

-		if (isPrivate()) buffer.append("private "); //$NON-NLS-1$

-		if (isAbstract() && isClass()) buffer.append("abstract "); //$NON-NLS-1$

-		if (isStatic() && isNestedType()) buffer.append("static "); //$NON-NLS-1$

-		if (isFinal()) buffer.append("final "); //$NON-NLS-1$

-	

-		buffer.append(isInterface() ? "interface " : "class "); //$NON-NLS-1$ //$NON-NLS-2$

-		buffer.append(this.debugName());

-	

-		buffer.append("\n\textends "); //$NON-NLS-1$

-		buffer.append((superclass != null) ? superclass.debugName() : "NULL TYPE"); //$NON-NLS-1$

-	

-		if (superInterfaces != null) {

-			if (superInterfaces != NoSuperInterfaces) {

-				buffer.append("\n\timplements : "); //$NON-NLS-1$

-				for (int i = 0, length = superInterfaces.length; i < length; i++) {

-					if (i  > 0)

-						buffer.append(", "); //$NON-NLS-1$

-					buffer.append((superInterfaces[i] != null) ? superInterfaces[i].debugName() : "NULL TYPE"); //$NON-NLS-1$

-				}

-			}

-		} else {

-			buffer.append("NULL SUPERINTERFACES"); //$NON-NLS-1$

-		}

-	

-		if (enclosingType() != null) {

-			buffer.append("\n\tenclosing type : "); //$NON-NLS-1$

-			buffer.append(enclosingType().debugName());

-		}

-	

-		if (fields != null) {

-			if (fields != NoFields) {

-				buffer.append("\n/*   fields   */"); //$NON-NLS-1$

-				for (int i = 0, length = fields.length; i < length; i++)

-				    buffer.append('\n').append((fields[i] != null) ? fields[i].toString() : "NULL FIELD"); //$NON-NLS-1$ 

-			}

-		} else {

-			buffer.append("NULL FIELDS"); //$NON-NLS-1$

-		}

-	

-		if (methods != null) {

-			if (methods != NoMethods) {

-				buffer.append("\n/*   methods   */"); //$NON-NLS-1$

-				for (int i = 0, length = methods.length; i < length; i++)

-					buffer.append('\n').append((methods[i] != null) ? methods[i].toString() : "NULL METHOD"); //$NON-NLS-1$ //$NON-NLS-2$

-			}

-		} else {

-			buffer.append("NULL METHODS"); //$NON-NLS-1$

-		}

-	

-//		if (memberTypes != null) {

-//			if (memberTypes != NoMemberTypes) {

-//				buffer.append("\n/*   members   */"); //$NON-NLS-1$

-//				for (int i = 0, length = memberTypes.length; i < length; i++)

-//					buffer.append('\n').append((memberTypes[i] != null) ? memberTypes[i].toString() : "NULL TYPE"); //$NON-NLS-1$ //$NON-NLS-2$

-//			}

-//		} else {

-//			buffer.append("NULL MEMBER TYPES"); //$NON-NLS-1$

-//		}

-	

-		buffer.append("\n\n"); //$NON-NLS-1$

-		return buffer.toString();

-		

-	}

-	public TypeVariableBinding[] typeVariables() {

-		if (this.arguments == null) {

-			// retain original type variables if not substituted (member type of parameterized type)

-			return this.type.typeVariables();

-		} 

-		return NoTypeVariables;

-	}	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemBinding.js
deleted file mode 100644
index 550bc7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemBinding.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public class ProblemBinding extends Binding {

-	public char[] name;

-	public ReferenceBinding searchType;

-	private int problemId;

-// NOTE: must only answer the subset of the name related to the problem

-

-public ProblemBinding(char[][] compoundName, int problemId) {

-	this(CharOperation.concatWith(compoundName, '.'), problemId);

-}

-// NOTE: must only answer the subset of the name related to the problem

-

-public ProblemBinding(char[][] compoundName, ReferenceBinding searchType, int problemId) {

-	this(CharOperation.concatWith(compoundName, '.'), searchType, problemId);

-}

-ProblemBinding(char[] name, int problemId) {

-	this.name = name;

-	this.problemId = problemId;

-}

-ProblemBinding(char[] name, ReferenceBinding searchType, int problemId) {

-	this(name, problemId);

-	this.searchType = searchType;

-}

-/* API

-* Answer the receiver's binding type from Binding.BindingID.

-*/

-

-public final int bindingType() {

-	return VARIABLE | TYPE;

-}

-/* API

-* Answer the problem id associated with the receiver.

-* NoError if the receiver is a valid binding.

-*/

-

-public final int problemId() {

-	return problemId;

-}

-public char[] readableName() {

-	return name;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemFieldBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemFieldBinding.js
deleted file mode 100644
index 88def92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemFieldBinding.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public class ProblemFieldBinding extends FieldBinding {

-	private int problemId;

-	public FieldBinding closestMatch;

-		

-// NOTE: must only answer the subset of the name related to the problem

-

-public ProblemFieldBinding(ReferenceBinding declaringClass, char[][] compoundName, int problemId) {

-	this(null, declaringClass, CharOperation.concatWith(compoundName, '.'), problemId);

-}

-public ProblemFieldBinding(ReferenceBinding declaringClass, char[] name, int problemId) {

-	this(null, declaringClass, name, problemId);

-}

-public ProblemFieldBinding(FieldBinding closestMatch, ReferenceBinding declaringClass, char[] name, int problemId) {

-	this.closestMatch = closestMatch;

-	this.declaringClass = declaringClass;

-	this.name = name;

-	this.problemId = problemId;

-}

-/* API

-* Answer the problem id associated with the receiver.

-* NoError if the receiver is a valid binding.

-*/

-

-public final int problemId() {

-	return problemId;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemMethodBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemMethodBinding.js
deleted file mode 100644
index 7db33ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemMethodBinding.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public class ProblemMethodBinding extends MethodBinding {

-    

-	private int problemReason;

-	public MethodBinding closestMatch; // TODO (philippe) should rename into #alternateMatch

-	

-public ProblemMethodBinding(char[] selector, TypeBinding[] args, int problemReason) {

-	this.selector = selector;

-	this.parameters = (args == null || args.length == 0) ? NoParameters : args;

-	this.problemReason = problemReason;

-}

-public ProblemMethodBinding(char[] selector, TypeBinding[] args, ReferenceBinding declaringClass, int problemReason) {

-	this.selector = selector;

-	this.parameters = (args == null || args.length == 0) ? NoParameters : args;

-	this.declaringClass = declaringClass;

-	this.problemReason = problemReason;

-}

-public ProblemMethodBinding(MethodBinding closestMatch, char[] selector, TypeBinding[] args, int problemReason) {

-	this(selector, args, problemReason);

-	this.closestMatch = closestMatch;

-	if (closestMatch != null) this.declaringClass = closestMatch.declaringClass;

-}

-/* API

-* Answer the problem id associated with the receiver.

-* NoError if the receiver is a valid binding.

-*/

-

-public final int problemId() {

-	return this.problemReason;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemPackageBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemPackageBinding.js
deleted file mode 100644
index 42a57ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemPackageBinding.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public class ProblemPackageBinding extends PackageBinding {

-	private int problemId;

-// NOTE: must only answer the subset of the name related to the problem

-

-ProblemPackageBinding(char[][] compoundName, int problemId) {

-	this.compoundName = compoundName;

-	this.problemId = problemId;

-}

-ProblemPackageBinding(char[] name, int problemId) {

-	this(new char[][] {name}, problemId);

-}

-/* API

-* Answer the problem id associated with the receiver.

-* NoError if the receiver is a valid binding.

-*/

-

-public final int problemId() {

-	return problemId;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemReasons.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemReasons.js
deleted file mode 100644
index 8c8ad2e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemReasons.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public interface ProblemReasons {

-	final int NoError = 0;

-	final int NotFound = 1;

-	final int NotVisible = 2;

-	final int Ambiguous = 3;

-	final int InternalNameProvided = 4; // used if an internal name is used in source

-	final int InheritedNameHidesEnclosingName = 5;

-	final int NonStaticReferenceInConstructorInvocation = 6;

-	final int NonStaticReferenceInStaticContext = 7;

-	final int ReceiverTypeNotVisible = 8;

-	final int IllegalSuperTypeVariable = 9;

-	final int ParameterBoundMismatch = 10; // for generic method

-	final int TypeParameterArityMismatch = 11; // for generic method

-	final int ParameterizedMethodTypeMismatch = 12; // for generic method

-	final int TypeArgumentsForRawGenericMethod = 13; // for generic method

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemReferenceBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemReferenceBinding.js
deleted file mode 100644
index 2170a69..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ProblemReferenceBinding.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public class ProblemReferenceBinding extends ReferenceBinding {

-	public ReferenceBinding original;

-	private int problemReason;

-	public ReferenceBinding alternateMatch;

-	

-// NOTE: must only answer the subset of the name related to the problem

-

-public ProblemReferenceBinding(char[][] compoundName, int problemReason) {

-	this(compoundName, null, problemReason);

-}

-public ProblemReferenceBinding(char[] name, int problemReason) {

-	this(new char[][] {name}, null, problemReason);

-}

-

-public ProblemReferenceBinding(char[][] compoundName, ReferenceBinding original, int problemReason) {

-	this.compoundName = compoundName;

-	this.original = original;

-	this.problemReason = problemReason;

-}

-public ProblemReferenceBinding(char[] name, ReferenceBinding original, int problemReason) {

-	this(new char[][] {name}, original, problemReason);

-}

-/* API

-* Answer the problem id associated with the receiver.

-* NoError if the receiver is a valid binding.

-*/

-public int problemId() {

-	return this.problemReason;

-}

-

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#shortReadableName()

- */

-public char[] shortReadableName() {

-	return readableName();

-}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/RawTypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/RawTypeBinding.js
deleted file mode 100644
index be6b20c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/RawTypeBinding.js
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-/**

- * Denote a raw type, i.e. a generic type referenced without any type arguments.

- * e.g. X<T extends Exception> can be used a raw type 'X', in which case it

- * 	will behave as X<Exception>

- */

-public class RawTypeBinding extends ParameterizedTypeBinding {

-    

-    /**

-     * Raw type arguments are erasure of respective parameter bounds. But we may not have resolved

-     * these bounds yet if creating raw types while supertype hierarchies are being connected.

-     * Therefore, use 'null' instead, and access these in a lazy way later on (when substituting).

-     */

-	public RawTypeBinding(ReferenceBinding type, ReferenceBinding enclosingType, LookupEnvironment environment){

-		super(type, null, enclosingType, environment);

-		if (enclosingType == null || (enclosingType.modifiers & AccGenericSignature) == 0)

-			this.modifiers ^= AccGenericSignature; // only need signature if enclosing needs one

-	}    

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ParameterizedTypeBinding#createParameterizedMethod(org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding)

-	 */

-	public ParameterizedMethodBinding createParameterizedMethod(MethodBinding originalMethod) {

-		if (originalMethod.typeVariables == NoTypeVariables) {

-			return super.createParameterizedMethod(originalMethod);

-		}

-		return new ParameterizedGenericMethodBinding(originalMethod, this, this.environment);

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#debugName()

-	 */

-	public String debugName() {

-	    StringBuffer nameBuffer = new StringBuffer(10);

-		nameBuffer.append(this.type.sourceName()).append("#RAW"); //$NON-NLS-1$

-	    return nameBuffer.toString();		

-	}	

-

-	/**

-	 * Ltype<param1 ... paramN>;

-	 * LY<TT;>;

-	 */

-	public char[] genericTypeSignature() {

-

-	    if (this.genericTypeSignature == null) {

-		    StringBuffer sig = new StringBuffer(10);

-			if (this.isMemberType() && this.enclosingType().isParameterizedType()) {

-			    char[] typeSig = this.enclosingType().genericTypeSignature();

-			    for (int i = 0; i < typeSig.length-1; i++) sig.append(typeSig[i]); // copy all but trailing semicolon

-			    sig.append('.').append(this.sourceName()).append(';');

-				int sigLength = sig.length();

-				this.genericTypeSignature = new char[sigLength];

-				sig.getChars(0, sigLength, this.genericTypeSignature, 0);						    

-			} else {

-			     this.genericTypeSignature = this.type.signature(); // erasure

-			}

-	    }

-	   return this.genericTypeSignature;

-	}		

-	

-    public boolean isEquivalentTo(TypeBinding otherType) {

-	    if (this == otherType) return true;

-        if (otherType == null) return false;

-		if (otherType.isWildcard()) // wildcard

-			return ((WildcardBinding) otherType).boundCheck(this);

-        return otherType.erasure() == this.erasure();

-    }

-	/**

-	 * Raw type is not treated as a standard parameterized type

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#isParameterizedType()

-	 */

-	public boolean isParameterizedType() {

-	    return false;

-	}	

-	public boolean isRawType() {

-	    return true;

-	}	

-	

-	protected void initializeArguments() {

-		TypeVariableBinding[] typeVariables = this.type.typeVariables();

-		int length = typeVariables.length;

-		TypeBinding[] typeArguments = new TypeBinding[length];

-		for (int i = 0; i < length; i++) {

-		    typeArguments[i] = typeVariables[i].erasure();

-		}

-		this.arguments = typeArguments;

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.Binding#readableName()

-	 */

-	public char[] readableName() /*java.lang.Object,  p.X<T> */ {

-	    char[] readableName;

-		if (isMemberType()) {

-			readableName = CharOperation.concat(enclosingType().readableName(), sourceName, '.');

-		} else {

-			readableName = CharOperation.concatWith(this.type.compoundName, '.');

-		}

-		return readableName;

-	}

-

-	/**

-	 * Returns a type, where original type was substituted using the receiver

-	 * raw type.

-	 * On raw types, all parameterized type denoting same original type are converted

-	 * to raw types. e.g. 

-	 * class X <T> {

-	 *   X<T> foo;

-	 *   X<String> bar;

-	 * } when used in raw fashion, then type of both foo and bar is raw type X.

-	 */

-	public TypeBinding substitute(TypeBinding originalType) {

-	    

-	    if (originalType.isTypeVariable()) {

-	        TypeVariableBinding originalVariable = (TypeVariableBinding) originalType;

-		    ParameterizedTypeBinding currentType = this;

-	        while (true) {

-		        TypeVariableBinding[] typeVariables = currentType.type.typeVariables();

-		        int length = typeVariables.length;

-		        // check this variable can be substituted given parameterized type

-		        if (originalVariable.rank < length && typeVariables[originalVariable.rank] == originalVariable) {

-				    // lazy init, since cannot do so during binding creation if during supertype connection

-				    if (currentType.arguments == null)  currentType.initializeArguments();

-				    if (currentType.arguments != null)

-			           return currentType.arguments[originalVariable.rank];

-		        }

-			    // recurse on enclosing type, as it may hold more substitutions to perform

-			    ReferenceBinding enclosing = currentType.enclosingType();

-			    if (!(enclosing instanceof ParameterizedTypeBinding))

-			        break;

-			    currentType = (ParameterizedTypeBinding) enclosing;

-	        }

-	    } else if (originalType.isParameterizedType()) {

-	        ParameterizedTypeBinding originalParameterizedType = (ParameterizedTypeBinding) originalType;

-			return this.environment.createRawType(originalParameterizedType.type, originalParameterizedType.enclosingType());

-	    } else  if (originalType.isGenericType()) {

-            return this.environment.createRawType((ReferenceBinding)originalType, null);

-	    } else if (originalType.isArrayType()) {

-			TypeBinding originalLeafComponentType = originalType.leafComponentType();

-			TypeBinding substitute = substitute(originalLeafComponentType); // substitute could itself be array type

-			if (substitute != originalLeafComponentType) {

-				return this.environment.createArrayType(substitute.leafComponentType(), substitute.dimensions() + originalType.dimensions());

-			}

-	    }

-	    return originalType;

-	}	

-

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.Binding#shortReadableName()

-	 */

-	public char[] shortReadableName() /*Object*/ {

-	    char[] shortReadableName;

-		if (isMemberType()) {

-			shortReadableName = CharOperation.concat(enclosingType().shortReadableName(), sourceName, '.');

-		} else {

-			shortReadableName = this.type.sourceName;

-		}

-		return shortReadableName;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ReferenceBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ReferenceBinding.js
deleted file mode 100644
index a96c077..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/ReferenceBinding.js
+++ /dev/null
@@ -1,742 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.env.IDependent;

-

-/*

-Not all fields defined by this type (& its subclasses) are initialized when it is created.

-Some are initialized only when needed.

-

-Accessors have been provided for some public fields so all TypeBindings have the same API...

-but access public fields directly whenever possible.

-Non-public fields have accessors which should be used everywhere you expect the field to be initialized.

-

-null is NOT a valid value for a non-public field... it just means the field is not initialized.

-*/

-

-abstract public class ReferenceBinding extends TypeBinding implements IDependent {

-	public char[][] compoundName;

-	public char[] sourceName;

-	public int modifiers;

-	public PackageBinding fPackage;

-

-	char[] fileName;

-	char[] constantPoolName;

-	char[] signature;

-

-public FieldBinding[] availableFields() {

-	return fields();

-}

-

-public MethodBinding[] availableMethods() {

-	return methods();

-}	

-/* Answer true if the receiver can be instantiated

-*/

-

-public boolean canBeInstantiated() {

-	return !(isAbstract() || isInterface());

-}

-/* Answer true if the receiver is visible to the invocationPackage.

-*/

-

-public final boolean canBeSeenBy(PackageBinding invocationPackage) {

-	if (isPublic()) return true;

-	if (isPrivate()) return false;

-

-	// isProtected() or isDefault()

-	return invocationPackage == fPackage;

-}

-/* Answer true if the receiver is visible to the receiverType and the invocationType.

-*/

-

-public final boolean canBeSeenBy(ReferenceBinding receiverType, SourceTypeBinding invocationType) {

-	if (isPublic()) return true;

-

-	if (invocationType == this && invocationType == receiverType) return true;

-

-	if (isProtected()) {

-

-		// answer true if the invocationType is the declaringClass or they are in the same package

-		// OR the invocationType is a subclass of the declaringClass

-		//    AND the invocationType is the invocationType or its subclass

-		//    OR the type is a static method accessed directly through a type

-		//    OR previous assertions are true for one of the enclosing type

-		if (invocationType == this) return true;

-		if (invocationType.fPackage == fPackage) return true;

-

-		ReferenceBinding currentType = invocationType;

-		ReferenceBinding declaringClass = enclosingType(); // protected types always have an enclosing one

-		if (declaringClass == null) return false; // could be null if incorrect top-level protected type

-		//int depth = 0;

-		do {

-			if (declaringClass == invocationType) return true;

-			if (declaringClass.isSuperclassOf(currentType)) return true;

-			//depth++;

-			currentType = currentType.enclosingType();

-		} while (currentType != null);

-		return false;

-	}

-

-	if (isPrivate()) {

-		// answer true if the receiverType is the receiver or its enclosingType

-		// AND the invocationType and the receiver have a common enclosingType

-		receiverCheck: {

-			if (!(receiverType == this || receiverType == enclosingType())) {

-				// special tolerance for type variable direct bounds

-				if (receiverType.isTypeVariable()) {

-					TypeVariableBinding typeVariable = (TypeVariableBinding) receiverType;

-					if (typeVariable.isErasureBoundTo(this.erasure()) || typeVariable.isErasureBoundTo(enclosingType().erasure())) {

-						break receiverCheck;

-					}

-				}

-				return false;

-			}

-		}

-		

-		

-		if (invocationType != this) {

-			ReferenceBinding outerInvocationType = invocationType;

-			ReferenceBinding temp = outerInvocationType.enclosingType();

-			while (temp != null) {

-				outerInvocationType = temp;

-				temp = temp.enclosingType();

-			}

-

-			ReferenceBinding outerDeclaringClass = (ReferenceBinding)this.erasure();

-			temp = outerDeclaringClass.enclosingType();

-			while (temp != null) {

-				outerDeclaringClass = temp;

-				temp = temp.enclosingType();

-			}

-			if (outerInvocationType != outerDeclaringClass) return false;

-		}

-		return true;

-	}

-

-	// isDefault()

-	if (invocationType.fPackage != fPackage) return false;

-

-	ReferenceBinding type = receiverType;

-	ReferenceBinding declaringClass = enclosingType() == null ? this : enclosingType();

-	do {

-		if (declaringClass == type) return true;

-		if (fPackage != type.fPackage) return false;

-	} while ((type = type.superclass()) != null);

-	return false;

-}

-/* 

- * Answer true if the receiver is visible to the type provided by the scope.

- */

-

-public final boolean canBeSeenBy(Scope scope) {

-	

-	if (isPublic()) return true;

-

-	if (scope.kind == Scope.COMPILATION_UNIT_SCOPE){

-		return this.canBeSeenBy(((CompilationUnitScope)scope).fPackage);

-	}

-	

-	SourceTypeBinding invocationType = scope.enclosingSourceType();

-	if (invocationType == this) return true;

-

-	if (isProtected()) {

-		// answer true if the invocationType is the declaringClass or they are in the same package

-		// OR the invocationType is a subclass of the declaringClass

-		//    AND the invocationType is the invocationType or its subclass

-		//    OR the type is a static method accessed directly through a type

-		//    OR previous assertions are true for one of the enclosing type

-		if (invocationType.fPackage == fPackage) return true;

-

-		ReferenceBinding currentType = invocationType;

-		ReferenceBinding declaringClass = enclosingType(); // protected types always have an enclosing one

-		if (declaringClass == null) return false; // could be null if incorrect top-level protected type

-		// int depth = 0;

-		do {

-			if (declaringClass == invocationType) return true;

-			if (declaringClass.isSuperclassOf(currentType)) return true;

-			// depth++;

-			currentType = currentType.enclosingType();

-		} while (currentType != null);

-		return false;

-	}

-	if (isPrivate()) {

-		// answer true if the receiver and the invocationType have a common enclosingType

-		// already know they are not the identical type

-		ReferenceBinding outerInvocationType = invocationType;

-		ReferenceBinding temp = outerInvocationType.enclosingType();

-		while (temp != null) {

-			outerInvocationType = temp;

-			temp = temp.enclosingType();

-		}

-

-		ReferenceBinding outerDeclaringClass = (ReferenceBinding)this.erasure();

-		temp = outerDeclaringClass.enclosingType();

-		while (temp != null) {

-			outerDeclaringClass = temp;

-			temp = temp.enclosingType();

-		}

-		return outerInvocationType == outerDeclaringClass;

-	}

-

-	// isDefault()

-	return invocationType.fPackage == fPackage;

-}

-public void computeId() {

-	if (compoundName.length != 3) {

-		if (compoundName.length == 4 && CharOperation.equals(JAVA_LANG_REFLECT_CONSTRUCTOR, compoundName))

-			id = T_JavaLangReflectConstructor;

-		return;

-	}

-

-	if (!CharOperation.equals(JAVA, compoundName[0]))

-		return;

-

-	// remaining types MUST be in java.*.*

-	if (!CharOperation.equals(LANG, compoundName[1])) {

-		if (CharOperation.equals(JAVA_IO_PRINTSTREAM, compoundName))

-			id = T_JavaIoPrintStream;

-		else if (CharOperation.equals(JAVA_UTIL_ITERATOR, compoundName))

-			id = T_JavaUtilIterator;

-		else if (CharOperation.equals(JAVA_IO_SERIALIZABLE, compoundName))

-		    id = T_JavaIoSerializable;

-		return;

-	}

-

-	// remaining types MUST be in java.lang.*

-	char[] typeName = compoundName[2];

-	if (typeName.length == 0) return; // just to be safe

-	switch (typeName[0]) {

-		case 'A' :

-			if (CharOperation.equals(typeName, JAVA_LANG_ASSERTIONERROR[2]))

-				id = T_JavaLangAssertionError;

-			return;

-		case 'B' :

-			if (CharOperation.equals(typeName, JAVA_LANG_BOOLEAN[2]))

-				id = T_JavaLangBoolean;

-			else if (CharOperation.equals(typeName, JAVA_LANG_BYTE[2]))

-				id = T_JavaLangByte;

-			return;

-		case 'C' :

-			if (CharOperation.equals(typeName, JAVA_LANG_CHARACTER[2]))

-				id = T_JavaLangCharacter;

-			else if (CharOperation.equals(typeName, JAVA_LANG_CLASS[2]))

-				id = T_JavaLangClass;

-			else if (CharOperation.equals(typeName, JAVA_LANG_CLASSNOTFOUNDEXCEPTION[2]))

-				id = T_JavaLangClassNotFoundException;

-			else if (CharOperation.equals(typeName, JAVA_LANG_CLONEABLE[2]))

-			    id = T_JavaLangCloneable;

-			return;

-		case 'D' :

-			if (CharOperation.equals(typeName, JAVA_LANG_DOUBLE[2]))

-				id = T_JavaLangDouble;

-			return;

-		case 'E' :

-			if (CharOperation.equals(typeName, JAVA_LANG_ERROR[2]))

-				id = T_JavaLangError;

-			else if (CharOperation.equals(typeName, JAVA_LANG_EXCEPTION[2]))

-				id = T_JavaLangException;

-			return;

-		case 'F' :

-			if (CharOperation.equals(typeName, JAVA_LANG_FLOAT[2]))

-				id = T_JavaLangFloat;

-			return;

-		case 'I' :

-			if (CharOperation.equals(typeName, JAVA_LANG_INTEGER[2]))

-				id = T_JavaLangInteger;

-			else if (CharOperation.equals(typeName, JAVA_LANG_ITERABLE[2]))

-				id = T_JavaLangIterable;

-			return;

-		case 'L' :

-			if (CharOperation.equals(typeName, JAVA_LANG_LONG[2]))

-				id = T_JavaLangLong;

-			return;

-		case 'N' :

-			if (CharOperation.equals(typeName, JAVA_LANG_NOCLASSDEFERROR[2]))

-				id = T_JavaLangNoClassDefError;

-			return;

-		case 'O' :

-			if (CharOperation.equals(typeName, JAVA_LANG_OBJECT[2]))

-				id = T_JavaLangObject;

-			return;

-		case 'S' :

-			if (CharOperation.equals(typeName, JAVA_LANG_STRING[2]))

-				id = T_JavaLangString;

-			else if (CharOperation.equals(typeName, JAVA_LANG_STRINGBUFFER[2]))

-				id = T_JavaLangStringBuffer;

-			else if (CharOperation.equals(typeName, JAVA_LANG_STRINGBUILDER[2])) 

-				id = T_JavaLangStringBuilder;

-			else if (CharOperation.equals(typeName, JAVA_LANG_SYSTEM[2]))

-				id = T_JavaLangSystem;

-			else if (CharOperation.equals(typeName, JAVA_LANG_SHORT[2]))

-				id = T_JavaLangShort;

-			return;

-		case 'T' :

-			if (CharOperation.equals(typeName, JAVA_LANG_THROWABLE[2]))

-				id = T_JavaLangThrowable;

-			return;

-		case 'V' :

-			if (CharOperation.equals(typeName, JAVA_LANG_VOID[2]))

-				id = T_JavaLangVoid;

-			return;

-	}

-}

-/* Answer the receiver's constant pool name.

-*

-* NOTE: This method should only be used during/after code gen.

-*/

-

-public char[] constantPoolName() /* java/lang/Object */ {

-	if (constantPoolName != null) 	return constantPoolName;

-	return constantPoolName = CharOperation.concatWith(compoundName, '/');

-}

-public String debugName() {

-	return (compoundName != null) ? new String(readableName()) : "UNNAMED TYPE"; //$NON-NLS-1$

-}

-public final int depth() {

-	int depth = 0;

-	ReferenceBinding current = this;

-	while ((current = current.enclosingType()) != null)

-		depth++;

-	return depth;

-}

-/* Answer the receiver's enclosing type... null if the receiver is a top level type.

-*/

-

-public ReferenceBinding enclosingType() {

-	return null;

-}

-public final ReferenceBinding enclosingTypeAt(int relativeDepth) {

-	ReferenceBinding current = this;

-	while (relativeDepth-- > 0 && current != null)

-		current = current.enclosingType();

-	return current;

-}

-

-public int fieldCount() {

-	return fields().length;

-}

-public FieldBinding[] fields() {

-	return NoFields;

-}

-/**

- * Find supertype which erases to a given well-known type, or null if not found

- * (using id avoids triggering the load of well-known type: 73740)

- * NOTE: only works for erasures of well-known types, as random other types may share

- * same id though being distincts.

- *

- */

-public ReferenceBinding findSuperTypeErasingTo(int erasureId, boolean erasureIsClass) {

-

-    if (erasure().id == erasureId) return this;

-    ReferenceBinding currentType = this;

-    // iterate superclass to avoid recording interfaces if searched supertype is class

-    if (erasureIsClass) {

-		while ((currentType = currentType.superclass()) != null) { 

-			if (currentType.erasure().id == erasureId) return currentType;

-		}    

-		return null;

-    }

-	ReferenceBinding[][] interfacesToVisit = new ReferenceBinding[5][];

-	int lastPosition = -1;

-	do {

-		ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-		if (itsInterfaces != NoSuperInterfaces) {

-			if (++lastPosition == interfacesToVisit.length)

-				System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-			interfacesToVisit[lastPosition] = itsInterfaces;

-		}

-	} while ((currentType = currentType.superclass()) != null);

-			

-	for (int i = 0; i <= lastPosition; i++) {

-		ReferenceBinding[] interfaces = interfacesToVisit[i];

-		for (int j = 0, length = interfaces.length; j < length; j++) {

-			if ((currentType = interfaces[j]).erasure().id == erasureId)

-				return currentType;

-

-			ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-			if (itsInterfaces != NoSuperInterfaces) {

-				if (++lastPosition == interfacesToVisit.length)

-					System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-				interfacesToVisit[lastPosition] = itsInterfaces;

-			}

-		}

-	}

-	return null;

-}

-/**

- * Find supertype which erases to a given type, or null if not found

- */

-public ReferenceBinding findSuperTypeErasingTo(ReferenceBinding erasure) {

-

-    if (erasure() == erasure) return this;

-    ReferenceBinding currentType = this;

-    if (erasure.isClass()) {

-		while ((currentType = currentType.superclass()) != null) {

-			if (currentType.erasure() == erasure) return currentType;

-		}

-		return null;

-    }

-	ReferenceBinding[][] interfacesToVisit = new ReferenceBinding[5][];

-	int lastPosition = -1;

-	do {

-		ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-		if (itsInterfaces != NoSuperInterfaces) {

-			if (++lastPosition == interfacesToVisit.length)

-				System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-			interfacesToVisit[lastPosition] = itsInterfaces;

-		}

-	} while ((currentType = currentType.superclass()) != null);

-			

-	for (int i = 0; i <= lastPosition; i++) {

-		ReferenceBinding[] interfaces = interfacesToVisit[i];

-		for (int j = 0, length = interfaces.length; j < length; j++) {

-			if ((currentType = interfaces[j]).erasure() == erasure)

-				return currentType;

-

-			ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-			if (itsInterfaces != NoSuperInterfaces) {

-				if (++lastPosition == interfacesToVisit.length)

-					System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-				interfacesToVisit[lastPosition] = itsInterfaces;

-			}

-		}

-	}

-	return null;

-}

-

-public final int getAccessFlags() {

-	return modifiers & AccJustFlag;

-}

-public MethodBinding getExactConstructor(TypeBinding[] argumentTypes) {

-	return null;

-}

-public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes) {

-	return getExactMethod(selector, argumentTypes, null);

-}

-public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes, CompilationUnitScope refScope) {

-	return null;

-}

-public FieldBinding getField(char[] fieldName, boolean needResolve) {

-	return null;

-}

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.env.IDependent#getFileName()

- */

-public char[] getFileName() {

-	return fileName;

-}

-public ReferenceBinding getMemberType(char[] typeName) {

-	ReferenceBinding[] memberTypes = memberTypes();

-	for (int i = memberTypes.length; --i >= 0;)

-		if (CharOperation.equals(memberTypes[i].sourceName, typeName))

-			return memberTypes[i];

-	return null;

-}

-public MethodBinding[] getMethods(char[] selector) {

-	return NoMethods;

-}

-public PackageBinding getPackage() {

-	return fPackage;

-}

-public boolean hasMemberTypes() {

-    return false;

-}

-public TypeVariableBinding getTypeVariable(char[] variableName) {

-	TypeVariableBinding[] typeVariables = typeVariables();

-	for (int i = typeVariables.length; --i >= 0;)

-		if (CharOperation.equals(typeVariables[i].sourceName, variableName))

-			return typeVariables[i];

-	return null;

-}

-public int hashCode() {

-	// ensure ReferenceBindings hash to the same posiiton as UnresolvedReferenceBindings so they can be replaced without rehashing

-	// ALL ReferenceBindings are unique when created so equals() is the same as ==

-	return (this.compoundName == null || this.compoundName.length == 0)

-		? super.hashCode()

-		: CharOperation.hashCode(this.compoundName[this.compoundName.length - 1]);

-}

-

-public final boolean hasRestrictedAccess() {

-	return (modifiers & AccRestrictedAccess) != 0;

-}

-

-/* Answer true if the receiver implements anInterface or is identical to anInterface.

-* If searchHierarchy is true, then also search the receiver's superclasses.

-*

-* NOTE: Assume that anInterface is an interface.

-*/

-public boolean implementsInterface(ReferenceBinding anInterface, boolean searchHierarchy) {

-	if (this == anInterface)

-		return true;

-

-	ReferenceBinding[][] interfacesToVisit = new ReferenceBinding[5][];

-	int lastPosition = -1;

-	ReferenceBinding currentType = this;

-	do {

-		ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-		if (itsInterfaces != NoSuperInterfaces) {

-			if (++lastPosition == interfacesToVisit.length)

-				System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-			interfacesToVisit[lastPosition] = itsInterfaces;

-		}

-	} while (searchHierarchy && (currentType = currentType.superclass()) != null);

-			

-	for (int i = 0; i <= lastPosition; i++) {

-		ReferenceBinding[] interfaces = interfacesToVisit[i];

-		for (int j = 0, length = interfaces.length; j < length; j++) {

-			if ((currentType = interfaces[j]).isEquivalentTo(anInterface))

-				return true;

-

-			ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-			if (itsInterfaces != NoSuperInterfaces) {

-				if (++lastPosition == interfacesToVisit.length)

-					System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-				interfacesToVisit[lastPosition] = itsInterfaces;

-			}

-		}

-	}

-	return false;

-}

-// Internal method... assume its only sent to classes NOT interfaces

-

-boolean implementsMethod(MethodBinding method) {

-	ReferenceBinding type = this;

-	while (type != null) {

-		MethodBinding[] methods = type.getMethods(method.selector);

-		for (int i = methods.length; --i >= 0;)

-			if (methods[i].areParametersEqual(method))

-				return true;

-		type = type.superclass();

-	}

-	return false;

-}

-/* Answer true if the receiver is an abstract type

-*/

-

-public final boolean isAbstract() {

-	return (modifiers & AccAbstract) != 0;

-}

-public final boolean isAnonymousType() {

-	return (tagBits & IsAnonymousType) != 0;

-}

-public final boolean isBinaryBinding() {

-	return (tagBits & IsBinaryBinding) != 0;

-}

-public boolean isClass() {

-	return (modifiers & AccInterface) == 0;

-}

-/*

- * Returns true if the type hierarchy is being connected

- */

-public boolean isHierarchyBeingConnected() {

-	return (this.tagBits & EndHierarchyCheck) == 0 && (this.tagBits & BeginHierarchyCheck) != 0;

-}

-/* Answer true if the receiver type can be assigned to the argument type (right)

-*/

-public boolean isCompatibleWith(TypeBinding otherType) {

-    

-	if (otherType == this)

-		return true;

-	if (otherType.id == T_Object)

-		return true;

-	if (!(otherType instanceof ReferenceBinding))

-		return false;

-	ReferenceBinding otherReferenceType = (ReferenceBinding) otherType;

-	if (this.isEquivalentTo(otherReferenceType)) return true;

-	if (otherReferenceType.isWildcard()) {

-	    return ((WildcardBinding) otherReferenceType).boundCheck(this);

-	}

-	if (otherReferenceType.isInterface())

-		return implementsInterface(otherReferenceType, true);

-	if (isInterface())  // Explicit conversion from an interface to a class is not allowed

-		return false;

-	return otherReferenceType.isSuperclassOf(this);

-}

-/* Answer true if the receiver has default visibility

-*/

-

-public final boolean isDefault() {

-	return (modifiers & (AccPublic | AccProtected | AccPrivate)) == 0;

-}

-/* Answer true if the receiver is a deprecated type

-*/

-

-public final boolean isDeprecated() {

-	return (modifiers & AccDeprecated) != 0;

-}

-/* Answer true if the receiver is final and cannot be subclassed

-*/

-public final boolean isFinal() {

-	return (modifiers & AccFinal) != 0;

-}

-public boolean isInterface() {

-	return (modifiers & AccInterface) != 0;

-}

-

-/* Answer true if the receiver has private visibility

-*/

-public final boolean isPrivate() {

-	return (modifiers & AccPrivate) != 0;

-}

-/* Answer true if the receiver has private visibility and is used locally

-*/

-

-public final boolean isPrivateUsed() {

-	return (modifiers & AccPrivateUsed) != 0;

-}

-/* Answer true if the receiver has protected visibility

-*/

-

-public final boolean isProtected() {

-	return (modifiers & AccProtected) != 0;

-}

-/* Answer true if the receiver has public visibility

-*/

-

-public final boolean isPublic() {

-	return (modifiers & AccPublic) != 0;

-}

-/* Answer true if the receiver is a static member type (or toplevel)

- */

-

-public final boolean isStatic() {

-	return (modifiers & (AccStatic | AccInterface)) != 0 ||

-		    (tagBits & IsNestedType) == 0;

-}

-/* Answer true if all float operations must adher to IEEE 754 float/double rules

-*/

-

-public final boolean isStrictfp() {

-	return (modifiers & AccStrictfp) != 0;

-}

-/* Answer true if the receiver is in the superclass hierarchy of aType

-*

-* NOTE: Object.isSuperclassOf(Object) -> false

-*/

-

-public boolean isSuperclassOf(ReferenceBinding otherType) {

-	while ((otherType = otherType.superclass()) != null) {

-		if (this.isEquivalentTo(otherType)) return true;

-	}

-	return false;

-}

-

-/* Answer true if the receiver is deprecated (or any of its enclosing types)

-*/

-

-public final boolean isViewedAsDeprecated() {

-	return (modifiers & AccDeprecated) != 0 ||

-		(modifiers & AccDeprecatedImplicitly) != 0;

-}

-public ReferenceBinding[] memberTypes() {

-	return NoMemberTypes;

-}

-public MethodBinding[] methods() {

-	return NoMethods;

-}

-/**

-* Answer the source name for the type.

-* In the case of member types, as the qualified name from its top level type.

-* For example, for a member type N defined inside M & A: "A.M.N".

-*/

-

-public char[] qualifiedSourceName() {

-	if (isMemberType())

-		return CharOperation.concat(enclosingType().qualifiedSourceName(), sourceName(), '.');

-	return sourceName();

-}

-

-public char[] readableName() /*java.lang.Object,  p.X<T> */ {

-    char[] readableName;

-	if (isMemberType()) {

-		readableName = CharOperation.concat(enclosingType().readableName(), sourceName, '.');

-	} else {

-		readableName = CharOperation.concatWith(compoundName, '.');

-	}

-	TypeVariableBinding[] typeVars;

-	if ((typeVars = this.typeVariables()) != NoTypeVariables) {

-	    StringBuffer nameBuffer = new StringBuffer(10);

-	    nameBuffer.append(readableName).append('<');

-	    for (int i = 0, length = typeVars.length; i < length; i++) {

-	        if (i > 0) nameBuffer.append(',');

-	        nameBuffer.append(typeVars[i].readableName());

-	    }

-	    nameBuffer.append('>');

-		int nameLength = nameBuffer.length();

-		readableName = new char[nameLength];

-		nameBuffer.getChars(0, nameLength, readableName, 0);  

-	}

-	return readableName;

-}

-

-public char[] shortReadableName() /*Object*/ {

-    char[] shortReadableName;

-	if (isMemberType()) {

-		shortReadableName = CharOperation.concat(enclosingType().shortReadableName(), sourceName, '.');

-	} else {

-		shortReadableName = this.sourceName;

-	}

-	TypeVariableBinding[] typeVars;

-	if ((typeVars = this.typeVariables()) != NoTypeVariables) {

-	    StringBuffer nameBuffer = new StringBuffer(10);

-	    nameBuffer.append(shortReadableName).append('<');

-	    for (int i = 0, length = typeVars.length; i < length; i++) {

-	        if (i > 0) nameBuffer.append(',');

-	        nameBuffer.append(typeVars[i].shortReadableName());

-	    }

-	    nameBuffer.append('>');

-		int nameLength = nameBuffer.length();

-		shortReadableName = new char[nameLength];

-		nameBuffer.getChars(0, nameLength, shortReadableName, 0);	    

-	}

-	return shortReadableName;

-}

-

-/* Answer the receiver's signature.

-*

-* NOTE: This method should only be used during/after code gen.

-*/

-

-public char[] signature() /* Ljava/lang/Object; */ {

-	if (signature != null)

-		return signature;

-

-	return signature = CharOperation.concat('L', constantPoolName(), ';');

-}

-public char[] sourceName() {

-	return sourceName;

-}

-

-public ReferenceBinding superclass() {

-	return null;

-}

-public ReferenceBinding[] superInterfaces() {

-	return NoSuperInterfaces;

-}

-public ReferenceBinding[] syntheticEnclosingInstanceTypes() {

-	if (isStatic()) return null;

-

-	ReferenceBinding enclosingType = enclosingType();

-	if (enclosingType == null)

-		return null;

-	return new ReferenceBinding[] {enclosingType};

-}

-public SyntheticArgumentBinding[] syntheticOuterLocalVariables() {

-	return null;		// is null if no enclosing instances are required

-}

-

-MethodBinding[] unResolvedMethods() { // for the MethodVerifier so it doesn't resolve types

-	return methods();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Scope.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Scope.js
deleted file mode 100644
index 5edd9c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Scope.js
+++ /dev/null
@@ -1,2887 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import java.util.ArrayList;

-import java.util.HashMap;

-import java.util.List;

-import java.util.Map;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfObject;

-import org.eclipse.wst.jsdt.internal.compiler.util.ObjectVector;

-

-public abstract class Scope

-	implements BaseTypes, BindingIds, CompilerModifiers, ProblemReasons, TagBits, TypeConstants, TypeIds {

-

-	public final static int BLOCK_SCOPE = 1;

-	public final static int CLASS_SCOPE = 3;

-	public final static int COMPILATION_UNIT_SCOPE = 4;

-	public final static int METHOD_SCOPE = 2;

-	

-   /* Answer an int describing the relationship between the given types.

-	*

-	* 		NotRelated 

-	* 		EqualOrMoreSpecific : left is compatible with right

-	* 		MoreGeneric : right is compatible with left

-	*/

-	public static int compareTypes(TypeBinding left, TypeBinding right) {

-		if (left.isCompatibleWith(right))

-			return EqualOrMoreSpecific;

-		if (right.isCompatibleWith(left))

-			return MoreGeneric;

-		return NotRelated;

-	}

-

-	/**

-	 * Returns an array of types, where original types got substituted given a substitution.

-	 * Only allocate an array if anything is different.

-	 */

-	public static ReferenceBinding[] substitute(Substitution substitution, ReferenceBinding[] originalTypes) {

-	    ReferenceBinding[] substitutedTypes = originalTypes;

-	    for (int i = 0, length = originalTypes.length; i < length; i++) {

-	        ReferenceBinding originalType = originalTypes[i];

-	        ReferenceBinding substitutedParameter = (ReferenceBinding)substitution.substitute(originalType);

-	        if (substitutedParameter != originalType) {

-	            if (substitutedTypes == originalTypes) {

-	                System.arraycopy(originalTypes, 0, substitutedTypes = new ReferenceBinding[length], 0, i);

-	            }

-	            substitutedTypes[i] = substitutedParameter;

-	        } else if (substitutedTypes != originalTypes) {

-	            substitutedTypes[i] = originalType;

-	        }

-	    }

-	    return substitutedTypes;

-	}

-

-	/**

-	 * Returns an array of types, where original types got substituted given a substitution.

-	 * Only allocate an array if anything is different.

-	 */

-	public static TypeBinding[] substitute(Substitution substitution, TypeBinding[] originalTypes) {

-	    TypeBinding[] substitutedTypes = originalTypes;

-	    for (int i = 0, length = originalTypes.length; i < length; i++) {

-	        TypeBinding originalType = originalTypes[i];

-	        TypeBinding substitutedParameter = substitution.substitute(originalType);

-	        if (substitutedParameter != originalType) {

-	            if (substitutedTypes == originalTypes) {

-	                System.arraycopy(originalTypes, 0, substitutedTypes = new TypeBinding[length], 0, i);

-	            }

-	            substitutedTypes[i] = substitutedParameter;

-	        } else if (substitutedTypes != originalTypes) {

-	            substitutedTypes[i] = originalType;

-	        }

-	    }

-	    return substitutedTypes;

-	}

-

-	public int kind;

-	public Scope parent;

-

-	protected Scope(int kind, Scope parent) {

-		this.kind = kind;

-		this.parent = parent;

-	}

-

-	/*

-	 * Boxing primitive

-	 */

-	public int boxing(int id) {

-		switch (id) {

-			case T_int :

-				return T_JavaLangInteger;

-			case T_byte :

-				return T_JavaLangByte;

-			case T_short :

-				return T_JavaLangShort;

-			case T_char :

-				return T_JavaLangCharacter;

-			case T_long :

-				return T_JavaLangLong;

-			case T_float :

-				return T_JavaLangFloat;

-			case T_double :

-				return T_JavaLangDouble;

-			case T_boolean :

-				return T_JavaLangBoolean;

-			case T_void :

-				return T_JavaLangVoid;

-		}

-		return id;

-	}

-	/*

-	 * Boxing primitive

-	 */

-	public TypeBinding boxing(TypeBinding type) {

-		TypeBinding boxedType;

-		switch (type.id) {

-			case T_int :

-				boxedType = environment().getType(JAVA_LANG_INTEGER);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_INTEGER, NotFound);				

-			case T_byte :

-				boxedType = environment().getType(JAVA_LANG_BYTE);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_BYTE, NotFound);				

-			case T_short :

-				boxedType = environment().getType(JAVA_LANG_SHORT);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_SHORT, NotFound);				

-			case T_char :

-				boxedType = environment().getType(JAVA_LANG_CHARACTER);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_CHARACTER, NotFound);				

-			case T_long :

-				boxedType = environment().getType(JAVA_LANG_LONG);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_LONG, NotFound);				

-			case T_float :

-				boxedType = environment().getType(JAVA_LANG_FLOAT);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_FLOAT, NotFound);				

-			case T_double :

-				boxedType = environment().getType(JAVA_LANG_DOUBLE);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_DOUBLE, NotFound);				

-			case T_boolean :

-				boxedType = environment().getType(JAVA_LANG_BOOLEAN);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_BOOLEAN, NotFound);				

-			case T_void :

-				boxedType = environment().getType(JAVA_LANG_VOID);

-				if (boxedType != null) return boxedType;

-				return new ProblemReferenceBinding(	JAVA_LANG_VOID, NotFound);				

-		}

-		return type;

-	}	

-

-	public final ClassScope classScope() {

-		Scope scope = this;

-		do {

-			if (scope instanceof ClassScope)

-				return (ClassScope) scope;

-			scope = scope.parent;

-		} while (scope != null);

-		return null;

-	}	

-

-	/* Answer an int describing the relationship between the given type and unchecked exceptions.

-	*

-	* 	NotRelated 

-	* 	EqualOrMoreSpecific : type is known for sure to be an unchecked exception type

-	* 	MoreGeneric : type is a supertype of an actual unchecked exception type

-	*/

-	public int compareUncheckedException(ReferenceBinding type) {

-		int comparison = compareTypes(type, getJavaLangRuntimeException());

-		if (comparison != 0) return comparison;

-		return compareTypes(type, getJavaLangError());

-	}

-

-	public final CompilationUnitScope compilationUnitScope() {

-		Scope lastScope = null;

-		Scope scope = this;

-		do {

-			lastScope = scope;

-			scope = scope.parent;

-		} while (scope != null);

-		return (CompilationUnitScope) lastScope;

-	}

-

-	/**

-	 * Internal use only

-	 * Given a method, returns null if arguments cannot be converted to parameters.

-	 * Will answer a subsituted method in case the method was generic and type inference got triggered;

-	 * in case the method was originally compatible, then simply answer it back.

-	 */

-	protected final MethodBinding computeCompatibleMethod(MethodBinding method, TypeBinding[] arguments, InvocationSite invocationSite) {

-

-		TypeBinding[] genericTypeArguments = invocationSite.genericTypeArguments();

-		TypeBinding[] parameters = method.parameters;

-		if (parameters == arguments 

-				&& (method.returnType.tagBits & HasTypeVariable) == 0 

-				&& genericTypeArguments == null)

-			return method;

-

-		int argLength = arguments.length;

-		if (argLength != parameters.length)

-			return null; // incompatible

-

-		TypeVariableBinding[] typeVariables = method.typeVariables;

-		if (typeVariables != NoTypeVariables) { // generic method

-			method = ParameterizedGenericMethodBinding.computeCompatibleMethod(method, arguments, this, invocationSite);

-			if (method == null) return null; // incompatible

-			if (!method.isValidBinding()) return method; // bound check issue is taking precedence

-			parameters = method.parameters; // reacquire them after type inference has performed

-		} else if (genericTypeArguments != null) {

-			if (method instanceof ParameterizedGenericMethodBinding) {

-				if (method.declaringClass.isRawType())

-					return new ProblemMethodBinding(method, method.selector, genericTypeArguments, TypeArgumentsForRawGenericMethod); // attempt to invoke generic method of raw type with type hints <String>foo()

-			} else {

-				return new ProblemMethodBinding(method, method.selector, genericTypeArguments, TypeParameterArityMismatch);

-			}

-		}

-		

-		argumentCompatibility: {

-			for (int i = 0; i < argLength; i++)

-				if (parameters[i] != arguments[i] && !arguments[i].isCompatibleWith(parameters[i]))

-					break argumentCompatibility;

-			return method; // compatible

-		}

-		if (genericTypeArguments != null) {

-			return new ProblemMethodBinding(method, method.selector, arguments, ParameterizedMethodTypeMismatch);

-		}

-		return null; // incompatible

-	}

-	

-	protected boolean connectTypeVariables(TypeParameter[] typeParameters) {

-		boolean noProblems = true;

-		if (typeParameters == null || environment().options.sourceLevel < ClassFileConstants.JDK1_5) return true;

-

-		nextVariable : for (int i = 0, paramLength = typeParameters.length; i < paramLength; i++) {

-			TypeParameter typeParameter = typeParameters[i];

-			TypeVariableBinding typeVariable = typeParameter.binding;

-			if (typeVariable == null) return false;

-

-			typeVariable.superclass = getJavaLangObject();

-			typeVariable.superInterfaces = NoSuperInterfaces;

-			// set firstBound to the binding of the first explicit bound in parameter declaration

-			typeVariable.firstBound = null; // first bound used to compute erasure

-

-			TypeReference typeRef = typeParameter.type;

-			if (typeRef == null)

-				continue nextVariable;

-			ReferenceBinding superType = this.kind == METHOD_SCOPE

-				? (ReferenceBinding) typeRef.resolveType((BlockScope)this)

-				: (ReferenceBinding) typeRef.resolveType((ClassScope)this);

-			if (superType == null) {

-				typeVariable.tagBits |= HierarchyHasProblems;

-				noProblems = false;

-				continue nextVariable;

-			}

-			if (superType.isTypeVariable()) {

-				TypeVariableBinding varSuperType = (TypeVariableBinding) superType;

-				if (varSuperType.rank >= typeVariable.rank && varSuperType.declaringElement == typeVariable.declaringElement) {

-					problemReporter().forwardTypeVariableReference(typeParameter, varSuperType);

-					typeVariable.tagBits |= HierarchyHasProblems;

-					noProblems = false;

-					continue nextVariable;

-				}

-			}

-			if (superType.isFinal())

-				problemReporter().finalVariableBound(typeVariable, typeRef);

-			typeRef.resolvedType = superType; // hold onto the problem type

-			if (superType.isClass()) {

-				typeVariable.superclass = superType;

-			} else {

-				typeVariable.superInterfaces = new ReferenceBinding[] {superType};

-				typeVariable.modifiers |= AccInterface;

-			}

-			typeVariable.firstBound = superType; // first bound used to compute erasure

-

-			TypeReference[] boundRefs = typeParameter.bounds;

-			if (boundRefs != null) {

-				for (int j = 0, k = boundRefs.length; j < k; j++) {

-					typeRef = boundRefs[j];

-					superType = this.kind == METHOD_SCOPE

-						? (ReferenceBinding) typeRef.resolveType((BlockScope)this)

-						: (ReferenceBinding) typeRef.resolveType((ClassScope)this);

-					if (superType == null) {

-						typeVariable.tagBits |= HierarchyHasProblems;

-						noProblems = false;

-						continue nextVariable;

-					}

-					typeRef.resolvedType = superType; // hold onto the problem type

-					if (superType.isClass()) {

-						problemReporter().boundsMustBeAnInterface(typeRef, superType);

-						typeVariable.tagBits |= HierarchyHasProblems;

-						noProblems = false;

-						continue nextVariable;

-					}

-					int size = typeVariable.superInterfaces.length;

-					System.arraycopy(typeVariable.superInterfaces, 0, typeVariable.superInterfaces = new ReferenceBinding[size + 1], 0, size);

-					typeVariable.superInterfaces[size] = superType;

-				}

-			}

-		}

-		return noProblems;

-	}

-

-	public TypeBinding convertToRawType(TypeBinding type) {

-		if (type.isArrayType()) {

-		    TypeBinding leafComponentType = type.leafComponentType();

-		    if (leafComponentType.isGenericType())

-		        return createArrayType(environment().createRawType((ReferenceBinding) leafComponentType, null), type.dimensions());

-		} else if (type.isGenericType()) {

-	        return environment().createRawType((ReferenceBinding) type, null);

-		}

-		return type;

-	}

-

-	public ArrayBinding createArrayType(TypeBinding type, int dimension) {

-		if (type.isValidBinding())

-			return environment().createArrayType(type, dimension);

-		// do not cache obvious invalid types

-		return new ArrayBinding(type, dimension, environment());

-	}

-	

-	public ParameterizedTypeBinding createParameterizedType(ReferenceBinding genericType, TypeBinding[] arguments, ReferenceBinding enclosingType) {

-		valid: {

-			if (!genericType.isValidBinding()) break valid;

-			for (int i = 0, max = arguments == null ? 0 : arguments.length; i < max; i++){

-				if (!arguments[i].isValidBinding()) break valid;

-			}

-			return environment().createParameterizedType(genericType, arguments, enclosingType);

-		}

-		return new ParameterizedTypeBinding(genericType, arguments, enclosingType, environment());

-	}

-	

-	public TypeVariableBinding[] createTypeVariables(TypeParameter[] typeParameters, Binding declaringElement) {

-

-		PackageBinding unitPackage = compilationUnitScope().fPackage;

-		

-		// do not construct type variables if source < 1.5

-		if (typeParameters == null || environment().options.sourceLevel < ClassFileConstants.JDK1_5) {

-			return NoTypeVariables;

-		}

-		TypeVariableBinding[] typeVariableBindings = NoTypeVariables;

-		

-		int length = typeParameters.length;

-		typeVariableBindings = new TypeVariableBinding[length];

-		HashtableOfObject knownTypeParameterNames = new HashtableOfObject(length);

-		int count = 0;

-		nextParameter : for (int i = 0; i < length; i++) {

-			TypeParameter typeParameter = typeParameters[i];

-			TypeVariableBinding parameterBinding = new TypeVariableBinding(typeParameter.name, declaringElement, i);

-			parameterBinding.fPackage = unitPackage;

-			typeParameter.binding = parameterBinding;

-			

-			if (knownTypeParameterNames.containsKey(typeParameter.name)) {

-				TypeVariableBinding previousBinding = (TypeVariableBinding) knownTypeParameterNames.get(typeParameter.name);

-				if (previousBinding != null) {

-					for (int j = 0; j < i; j++) {

-						TypeParameter previousParameter = typeParameters[j];

-						if (previousParameter.binding == previousBinding) {

-							problemReporter().duplicateTypeParameterInType(previousParameter);

-							previousParameter.binding = null;

-							break;

-						}

-					}

-				}

-				knownTypeParameterNames.put(typeParameter.name, null); // ensure that the duplicate parameter is found & removed

-				problemReporter().duplicateTypeParameterInType(typeParameter);

-				typeParameter.binding = null;

-			} else {

-				knownTypeParameterNames.put(typeParameter.name, parameterBinding);

-				// remember that we have seen a field with this name

-				if (parameterBinding != null)

-					typeVariableBindings[count++] = parameterBinding;

-			}

-//				TODO should offer warnings to inform about hiding declaring, enclosing or member types				

-//				ReferenceBinding type = sourceType;

-//				// check that the member does not conflict with an enclosing type

-//				do {

-//					if (CharOperation.equals(type.sourceName, memberContext.name)) {

-//						problemReporter().hidingEnclosingType(memberContext);

-//						continue nextParameter;

-//					}

-//					type = type.enclosingType();

-//				} while (type != null);

-//				// check that the member type does not conflict with another sibling member type

-//				for (int j = 0; j < i; j++) {

-//					if (CharOperation.equals(referenceContext.memberTypes[j].name, memberContext.name)) {

-//						problemReporter().duplicateNestedType(memberContext);

-//						continue nextParameter;

-//					}

-//				}

-		}

-		if (count != length) {

-			System.arraycopy(typeVariableBindings, 0, typeVariableBindings = new TypeVariableBinding[count], 0, count);

-		}

-		return typeVariableBindings;

-	}

-

-	public boolean detectCycle(ReferenceBinding superType) {

-		return false;

-	}

-

-	public final ClassScope enclosingClassScope() {

-		Scope scope = this;

-		while ((scope = scope.parent) != null) {

-			if (scope instanceof ClassScope) return (ClassScope)scope;

-		}

-		return null; // may answer null if no type around

-	}

-

-	public final MethodScope enclosingMethodScope() {

-		Scope scope = this;

-		while ((scope = scope.parent) != null) {

-			if (scope instanceof MethodScope) return (MethodScope)scope;

-		}

-		return null; // may answer null if no method around

-	}

-

-	/* Answer the receiver's enclosing source type.

-	*/

-	public final SourceTypeBinding enclosingSourceType() {

-		Scope scope = this;

-		do {

-			if (scope instanceof ClassScope)

-				return ((ClassScope) scope).referenceContext.binding;

-			scope = scope.parent;

-		} while (scope != null);

-		return null;

-	}

-	public final LookupEnvironment environment() {

-		Scope scope, unitScope = this;

-		while ((scope = unitScope.parent) != null)

-			unitScope = scope;

-		return ((CompilationUnitScope) unitScope).environment;

-	}

-

-	// abstract method lookup lookup (since maybe missing default abstract methods)

-	public MethodBinding findDefaultAbstractMethod(

-		ReferenceBinding receiverType, 

-		char[] selector,

-		TypeBinding[] argumentTypes,

-		InvocationSite invocationSite,

-		ReferenceBinding classHierarchyStart,

-		MethodBinding matchingMethod,

-		ObjectVector found) {

-

-		int startFoundSize = found.size;

-		ReferenceBinding currentType = classHierarchyStart;

-		while (currentType != null) {

-			matchingMethod = findMethodInSuperInterfaces(currentType, selector, found, matchingMethod);

-			currentType = currentType.superclass();

-		}

-		int foundSize = found.size;

-		if (foundSize == startFoundSize) {

-			if (matchingMethod != null) compilationUnitScope().recordTypeReferences(matchingMethod.thrownExceptions);

-			return matchingMethod; // maybe null

-		}

-		MethodBinding[] candidates = new MethodBinding[foundSize - startFoundSize];

-		int candidatesCount = 0;

-		MethodBinding problemMethod = null;

-		// argument type compatibility check

-		for (int i = startFoundSize; i < foundSize; i++) {

-			MethodBinding methodBinding = (MethodBinding) found.elementAt(i);

-			MethodBinding compatibleMethod = computeCompatibleMethod(methodBinding, argumentTypes, invocationSite);

-			if (compatibleMethod != null) {

-				if (compatibleMethod.isValidBinding())

-					candidates[candidatesCount++] = compatibleMethod;

-				else if (problemMethod == null)

-					problemMethod = compatibleMethod;

-			}

-		}

-

-		if (candidatesCount == 1) {

-			compilationUnitScope().recordTypeReferences(candidates[0].thrownExceptions);

-			return candidates[0]; 

-		}

-		if (candidatesCount == 0) { // try to find a close match when the parameter order is wrong or missing some parameters

-			if (problemMethod != null) return problemMethod;

-			int argLength = argumentTypes.length;

-			nextMethod : for (int i = 0; i < foundSize; i++) {

-				MethodBinding methodBinding = (MethodBinding) found.elementAt(i);

-				TypeBinding[] params = methodBinding.parameters;

-				int paramLength = params.length;

-				nextArg: for (int a = 0; a < argLength; a++) {

-					TypeBinding arg = argumentTypes[a];

-					for (int p = 0; p < paramLength; p++)

-						if (params[p] == arg)

-							continue nextArg;

-					continue nextMethod;

-				}

-				return methodBinding;

-			}

-			return (MethodBinding) found.elementAt(0); // no good match so just use the first one found

-		}

-		// no need to check for visibility - interface methods are public

-		return mostSpecificInterfaceMethodBinding(candidates, candidatesCount, invocationSite);

-	}

-

-	// Internal use only

-	public ReferenceBinding findDirectMemberType(char[] typeName, ReferenceBinding enclosingType) {

-		if ((enclosingType.tagBits & HasNoMemberTypes) != 0)

-			return null; // know it has no member types (nor inherited member types)

-

-		SourceTypeBinding enclosingSourceType = enclosingSourceType();

-		compilationUnitScope().recordReference(enclosingType, typeName);

-		ReferenceBinding memberType = enclosingType.getMemberType(typeName);

-		if (memberType != null) {

-			compilationUnitScope().recordTypeReference(memberType);

-			if (enclosingSourceType == null

-					? memberType.canBeSeenBy(getCurrentPackage())

-					: memberType.canBeSeenBy(enclosingType, enclosingSourceType))

-				return memberType;

-			return new ProblemReferenceBinding(typeName, memberType, NotVisible);

-		}

-		return null;

-	}

-

-	// Internal use only

-	public MethodBinding findExactMethod(

-		ReferenceBinding receiverType,

-		char[] selector,

-		TypeBinding[] argumentTypes,

-		InvocationSite invocationSite) {

-

-		compilationUnitScope().recordTypeReferences(argumentTypes);

-		MethodBinding exactMethod = receiverType.getExactMethod(selector, argumentTypes, compilationUnitScope());

-		if (exactMethod != null) {

-			compilationUnitScope().recordTypeReferences(exactMethod.thrownExceptions);

-			// special treatment for Object.getClass() in 1.5 mode (substitute parameterized return type)

-			if (receiverType.isInterface() || exactMethod.canBeSeenBy(receiverType, invocationSite, this)) {

-			    if (receiverType.id != T_Object

-			            && argumentTypes == NoParameters

-			            && CharOperation.equals(selector, GETCLASS)

-			            && exactMethod.returnType.isParameterizedType()/*1.5*/) {

-			        return ParameterizedMethodBinding.instantiateGetClass(receiverType, exactMethod, this);

-			    }

-			    // targeting a generic method could find an exact match with variable return type

-			    if (exactMethod.typeVariables != NoTypeVariables || invocationSite.genericTypeArguments() != null)

-			    	exactMethod = computeCompatibleMethod(exactMethod, argumentTypes, invocationSite);

-				return exactMethod;

-			}

-		}

-		return null;

-	}

-

-	// Internal use only

-	/*	Answer the field binding that corresponds to fieldName.

-		Start the lookup at the receiverType.

-		InvocationSite implements

-			isSuperAccess(); this is used to determine if the discovered field is visible.

-		Only fields defined by the receiverType or its supertypes are answered;

-		a field of an enclosing type will not be found using this API.

-	

-		If no visible field is discovered, null is answered.

-	*/

-	public FieldBinding findField(TypeBinding receiverType, char[] fieldName, InvocationSite invocationSite, boolean needResolve) {

-		if (receiverType.isBaseType()) return null;

-		if (receiverType.isArrayType()) {

-			TypeBinding leafType = receiverType.leafComponentType();

-			if (leafType instanceof ReferenceBinding) {

-				if (!((ReferenceBinding) leafType).canBeSeenBy(this))

-					return new ProblemFieldBinding((ReferenceBinding)leafType, fieldName, ReceiverTypeNotVisible);

-			}

-			if (CharOperation.equals(fieldName, LENGTH))

-				return ArrayBinding.ArrayLength;

-			return null;

-		}

-

-		compilationUnitScope().recordTypeReference(receiverType);

-

-		ReferenceBinding currentType = (ReferenceBinding) receiverType;

-		if (!currentType.canBeSeenBy(this))

-			return new ProblemFieldBinding(currentType, fieldName, ReceiverTypeNotVisible);

-

-		FieldBinding field = currentType.getField(fieldName, true /*resolve*/);

-		if (field != null) {

-			if (field.canBeSeenBy(currentType, invocationSite, this))

-				return field;

-			return new ProblemFieldBinding(field /* closest match*/, field.declaringClass, fieldName, NotVisible);

-		}

-		// collect all superinterfaces of receiverType until the field is found in a supertype

-		ReferenceBinding[][] interfacesToVisit = null;

-		int lastPosition = -1;

-		FieldBinding visibleField = null;

-		boolean keepLooking = true;

-		boolean notVisible = false;

-		// we could hold onto the not visible field for extra error reporting

-		while (keepLooking) {

-			ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-			if (itsInterfaces != NoSuperInterfaces) {

-				if (interfacesToVisit == null)

-					interfacesToVisit = new ReferenceBinding[5][];

-				if (++lastPosition == interfacesToVisit.length)

-					System.arraycopy(

-						interfacesToVisit,

-						0,

-						interfacesToVisit = new ReferenceBinding[lastPosition * 2][],

-						0,

-						lastPosition);

-				interfacesToVisit[lastPosition] = itsInterfaces;

-			}

-			if ((currentType = currentType.superclass()) == null)

-				break;

-

-			compilationUnitScope().recordTypeReference(currentType);

-			if ((field = currentType.getField(fieldName, needResolve)) != null) {

-				keepLooking = false;

-				if (field.canBeSeenBy(receiverType, invocationSite, this)) {

-					if (visibleField == null)

-						visibleField = field;

-					else

-						return new ProblemFieldBinding(visibleField /* closest match*/, visibleField.declaringClass, fieldName, Ambiguous);

-				} else {

-					notVisible = true;

-				}

-			}

-		}

-

-		// walk all visible interfaces to find ambiguous references

-		if (interfacesToVisit != null) {

-			ProblemFieldBinding ambiguous = null;

-			done : for (int i = 0; i <= lastPosition; i++) {

-				ReferenceBinding[] interfaces = interfacesToVisit[i];

-				for (int j = 0, length = interfaces.length; j < length; j++) {

-					ReferenceBinding anInterface = interfaces[j];

-					if ((anInterface.tagBits & InterfaceVisited) == 0) {

-						// if interface as not already been visited

-						anInterface.tagBits |= InterfaceVisited;

-						compilationUnitScope().recordTypeReference(anInterface);

-						if ((field = anInterface.getField(fieldName, true /*resolve*/)) != null) {

-							if (visibleField == null) {

-								visibleField = field;

-							} else {

-								ambiguous = new ProblemFieldBinding(visibleField /* closest match*/, visibleField.declaringClass, fieldName, Ambiguous);

-								break done;

-							}

-						} else {

-							ReferenceBinding[] itsInterfaces = anInterface.superInterfaces();

-							if (itsInterfaces != NoSuperInterfaces) {

-								if (++lastPosition == interfacesToVisit.length)

-									System.arraycopy(

-										interfacesToVisit,

-										0,

-										interfacesToVisit = new ReferenceBinding[lastPosition * 2][],

-										0,

-										lastPosition);

-								interfacesToVisit[lastPosition] = itsInterfaces;

-							}

-						}

-					}

-				}

-			}

-

-			// bit reinitialization

-			for (int i = 0; i <= lastPosition; i++) {

-				ReferenceBinding[] interfaces = interfacesToVisit[i];

-				for (int j = 0, length = interfaces.length; j < length; j++)

-					interfaces[j].tagBits &= ~InterfaceVisited;

-			}

-			if (ambiguous != null)

-				return ambiguous;

-		}

-

-		if (visibleField != null)

-			return visibleField;

-		if (notVisible)

-			return new ProblemFieldBinding(currentType, fieldName, NotVisible);

-		return null;

-	}

-

-	// Internal use only

-	public ReferenceBinding findMemberType(char[] typeName, ReferenceBinding enclosingType) {

-		if ((enclosingType.tagBits & HasNoMemberTypes) != 0)

-			return null; // know it has no member types (nor inherited member types)

-

-		SourceTypeBinding enclosingSourceType = enclosingSourceType();

-		PackageBinding currentPackage = getCurrentPackage();

-		compilationUnitScope().recordReference(enclosingType, typeName);

-		ReferenceBinding memberType = enclosingType.getMemberType(typeName);

-		if (memberType != null) {

-			compilationUnitScope().recordTypeReference(memberType);

-			if (enclosingSourceType == null

-					? memberType.canBeSeenBy(currentPackage)

-					: memberType.canBeSeenBy(enclosingType, enclosingSourceType))

-				return memberType;

-			return new ProblemReferenceBinding(typeName, memberType, NotVisible);

-		}

-

-		// collect all superinterfaces of receiverType until the memberType is found in a supertype

-		ReferenceBinding currentType = enclosingType;

-		ReferenceBinding[][] interfacesToVisit = null;

-		int lastPosition = -1;

-		ReferenceBinding visibleMemberType = null;

-		boolean keepLooking = true;

-		ReferenceBinding notVisible = null;

-		// we could hold onto the not visible field for extra error reporting

-		while (keepLooking) {

-			ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-			if (itsInterfaces != NoSuperInterfaces) {

-				if (interfacesToVisit == null)

-					interfacesToVisit = new ReferenceBinding[5][];

-				if (++lastPosition == interfacesToVisit.length)

-					System.arraycopy(

-						interfacesToVisit,

-						0,

-						interfacesToVisit = new ReferenceBinding[lastPosition * 2][],

-						0,

-						lastPosition);

-				interfacesToVisit[lastPosition] = itsInterfaces;

-			}

-			if ((currentType = currentType.superclass()) == null)

-				break;

-

-			compilationUnitScope().recordReference(currentType, typeName);

-			if ((memberType = currentType.getMemberType(typeName)) != null) {

-				compilationUnitScope().recordTypeReference(memberType);

-				keepLooking = false;

-				if (enclosingSourceType == null

-					? memberType.canBeSeenBy(currentPackage)

-					: memberType.canBeSeenBy(enclosingType, enclosingSourceType)) {

-						if (visibleMemberType == null)

-							visibleMemberType = memberType;

-						else

-							return new ProblemReferenceBinding(typeName, Ambiguous);

-				} else {

-					notVisible = memberType;

-				}

-			}

-		}

-		// walk all visible interfaces to find ambiguous references

-		if (interfacesToVisit != null) {

-			ProblemReferenceBinding ambiguous = null;

-			done : for (int i = 0; i <= lastPosition; i++) {

-				ReferenceBinding[] interfaces = interfacesToVisit[i];

-				for (int j = 0, length = interfaces.length; j < length; j++) {

-					ReferenceBinding anInterface = interfaces[j];

-					if ((anInterface.tagBits & InterfaceVisited) == 0) {

-						// if interface as not already been visited

-						anInterface.tagBits |= InterfaceVisited;

-						compilationUnitScope().recordReference(anInterface, typeName);

-						if ((memberType = anInterface.getMemberType(typeName)) != null) {

-							compilationUnitScope().recordTypeReference(memberType);

-							if (visibleMemberType == null) {

-								visibleMemberType = memberType;

-							} else {

-								ambiguous = new ProblemReferenceBinding(typeName, Ambiguous);

-								break done;

-							}

-						} else {

-							ReferenceBinding[] itsInterfaces = anInterface.superInterfaces();

-							if (itsInterfaces != NoSuperInterfaces) {

-								if (++lastPosition == interfacesToVisit.length)

-									System.arraycopy(

-										interfacesToVisit,

-										0,

-										interfacesToVisit = new ReferenceBinding[lastPosition * 2][],

-										0,

-										lastPosition);

-								interfacesToVisit[lastPosition] = itsInterfaces;

-							}

-						}

-					}

-				}

-			}

-

-			// bit reinitialization

-			for (int i = 0; i <= lastPosition; i++) {

-				ReferenceBinding[] interfaces = interfacesToVisit[i];

-				for (int j = 0, length = interfaces.length; j < length; j++)

-					interfaces[j].tagBits &= ~InterfaceVisited;

-			}

-			if (ambiguous != null)

-				return ambiguous;

-		}

-		if (visibleMemberType != null)

-			return visibleMemberType;

-		if (notVisible != null)

-			return new ProblemReferenceBinding(typeName, notVisible, NotVisible);

-		return null;

-	}

-

-	// Internal use only

-	public MethodBinding findMethod(

-		ReferenceBinding receiverType,

-		char[] selector,

-		TypeBinding[] argumentTypes,

-		InvocationSite invocationSite) {

-

-		ReferenceBinding currentType = receiverType;

-		MethodBinding matchingMethod = null;

-		ObjectVector found = new ObjectVector(); //TODO (kent) should rewrite to remove #matchingMethod since found is allocated anyway

-

-		compilationUnitScope().recordTypeReferences(argumentTypes);

-

-		if (currentType.isInterface()) {

-			compilationUnitScope().recordTypeReference(currentType);

-			MethodBinding[] currentMethods = currentType.getMethods(selector);

-			int currentLength = currentMethods.length;

-			if (currentLength == 1) {

-				matchingMethod = currentMethods[0];

-			} else if (currentLength > 1) {

-				found.addAll(currentMethods);

-			}

-			matchingMethod = findMethodInSuperInterfaces(currentType, selector, found, matchingMethod);

-			currentType = getJavaLangObject();

-		}

-

-		boolean isCompliant14 = compilationUnitScope().environment.options.complianceLevel >= ClassFileConstants.JDK1_4;

-		// superclass lookup

-		ReferenceBinding classHierarchyStart = currentType;

-		while (currentType != null) {

-			compilationUnitScope().recordTypeReference(currentType);

-			MethodBinding[] currentMethods = currentType.getMethods(selector);

-			int currentLength = currentMethods.length;

-

-			/*

-			 * if 1.4 compliant, must filter out redundant protected methods from superclasses

-			 */

-			if (isCompliant14){			 

-				nextMethod: for (int i = 0; i < currentLength; i++){

-					MethodBinding currentMethod = currentMethods[i];

-					// protected method need to be checked only - default access is already dealt with in #canBeSeen implementation

-					// when checking that p.C -> q.B -> p.A cannot see default access members from A through B.

-					if ((currentMethod.modifiers & AccProtected) == 0) continue nextMethod;

-					if (matchingMethod != null){

-						if (currentMethod.areParametersEqual(matchingMethod)){

-							currentLength--;

-							currentMethods[i] = null; // discard this match

-							continue nextMethod;

-						}

-					} else {

-						for (int j = 0, max = found.size; j < max; j++) {

-							if (((MethodBinding)found.elementAt(j)).areParametersEqual(currentMethod)){

-								currentLength--;

-								currentMethods[i] = null;

-								continue nextMethod;

-							}

-						}

-					}

-				}

-			}

-			

-			if (currentLength == 1 && matchingMethod == null && found.size == 0) {

-				matchingMethod = currentMethods[0];

-			} else if (currentLength > 0) {

-				if (matchingMethod != null) {

-					found.add(matchingMethod);

-					matchingMethod = null;

-				}

-				// append currentMethods, filtering out null entries

-				int maxMethod = currentMethods.length;

-				if (maxMethod == currentLength) { // no method was eliminated for 1.4 compliance (see above)

-					found.addAll(currentMethods);

-				} else {

-					for (int i = 0, max = currentMethods.length; i < max; i++) {

-						MethodBinding currentMethod = currentMethods[i];

-						if (currentMethod != null) found.add(currentMethod);

-					}

-				}

-			}

-			currentType = currentType.superclass();

-		}

-

-		// if found several candidates, then eliminate those not matching argument types

-		int foundSize = found.size;

-		MethodBinding[] candidates = null;

-		int candidatesCount = 0;

-		boolean checkedMatchingMethod = false; // is matchingMethod meeting argument expectation ?

-		MethodBinding problemMethod = null;

-		if (foundSize > 0) {

-			// argument type compatibility check

-			for (int i = 0; i < foundSize; i++) {

-				MethodBinding methodBinding = (MethodBinding) found.elementAt(i);

-				MethodBinding compatibleMethod = computeCompatibleMethod(methodBinding, argumentTypes, invocationSite);

-				if (compatibleMethod != null) {

-					if (compatibleMethod.isValidBinding()) {

-						switch (candidatesCount) {

-							case 0: 

-								matchingMethod = compatibleMethod; // if only one match, reuse matchingMethod

-								checkedMatchingMethod = true; // matchingMethod is known to exist and match params here

-								break;

-							case 1:

-								candidates = new MethodBinding[foundSize]; // only lazily created if more than one match

-								candidates[0] = matchingMethod; // copy back

-								matchingMethod = null;

-								// fall through

-							default:

-								candidates[candidatesCount] = compatibleMethod;

-						}

-						candidatesCount++;

-					} else if (problemMethod == null) {

-						problemMethod = compatibleMethod;

-					}

-				}

-			}

-		}

-		if (candidatesCount > 0)

-			problemMethod = null; // forget the problem method if candidates were found

-

-		// if only one matching method left (either from start or due to elimination of rivals), then match is in matchingMethod

-		if (matchingMethod != null) {

-			if (!checkedMatchingMethod) {

-				MethodBinding compatibleMethod = computeCompatibleMethod(matchingMethod, argumentTypes, invocationSite);

-				if (compatibleMethod != null) {

-					if (compatibleMethod.isValidBinding()) {

-						matchingMethod = compatibleMethod;

-						checkedMatchingMethod = true;

-					} else {

-						problemMethod = compatibleMethod;

-					}

-				}

-			}

-			if (checkedMatchingMethod) {

-				// (if no default abstract) must explicitly look for one instead, which could be a better match

-				if (!matchingMethod.canBeSeenBy(receiverType, invocationSite, this)) {

-					// ignore matching method (to be consistent with multiple matches, none visible (matching method is then null)

-					MethodBinding interfaceMethod =

-						findDefaultAbstractMethod(receiverType, selector, argumentTypes, invocationSite, classHierarchyStart, null, found);						

-					if (interfaceMethod != null) return interfaceMethod;

-					compilationUnitScope().recordTypeReferences(matchingMethod.thrownExceptions);

-					return matchingMethod;

-				}

-			} 

-			matchingMethod =

-				findDefaultAbstractMethod(receiverType, selector, argumentTypes, invocationSite, classHierarchyStart, matchingMethod, found);

-			if (matchingMethod != null) return matchingMethod;

-			return problemMethod;

-		}

-

-		// no match was found, try to find a close match when the parameter order is wrong or missing some parameters

-		if (candidatesCount == 0) {

-			MethodBinding interfaceMethod =

-				findDefaultAbstractMethod(receiverType, selector, argumentTypes, invocationSite, classHierarchyStart, matchingMethod, found);

-			if (interfaceMethod != null) return interfaceMethod;

-			if (problemMethod != null) return problemMethod;

-

-			int argLength = argumentTypes.length;

-			foundSize = found.size;

-			nextMethod : for (int i = 0; i < foundSize; i++) {

-				MethodBinding methodBinding = (MethodBinding) found.elementAt(i);

-				TypeBinding[] params = methodBinding.parameters;

-				int paramLength = params.length;

-				nextArg: for (int a = 0; a < argLength; a++) {

-					TypeBinding arg = argumentTypes[a];

-					for (int p = 0; p < paramLength; p++)

-						if (params[p] == arg)

-							continue nextArg;

-					continue nextMethod;

-				}

-				return methodBinding;

-			}

-			return (MethodBinding) found.elementAt(0); // no good match so just use the first one found

-		}

-

-		// check for duplicate parameterized methods

-		if (compilationUnitScope().environment.options.sourceLevel >= ClassFileConstants.JDK1_5) {

-			for (int i = 0; i < candidatesCount; i++) {

-				MethodBinding current = candidates[i];

-				if (current instanceof ParameterizedMethodBinding)

-					for (int j = i + 1; j < candidatesCount; j++)

-						if (current.declaringClass == candidates[j].declaringClass && current.areParametersEqual(candidates[j]))

-							return new ProblemMethodBinding(candidates[i].selector, candidates[i].parameters, Ambiguous);

-			}

-		}

-

-		// tiebreak using visibility check

-		int visiblesCount = 0;

-		for (int i = 0; i < candidatesCount; i++) {

-			MethodBinding methodBinding = candidates[i];

-			if (methodBinding.canBeSeenBy(receiverType, invocationSite, this)) {

-				if (visiblesCount != i) {

-					candidates[i] = null;

-					candidates[visiblesCount] = methodBinding;

-				}

-				visiblesCount++;

-			}

-		}

-		if (visiblesCount == 1) {

-			compilationUnitScope().recordTypeReferences(candidates[0].thrownExceptions);

-			return candidates[0];

-		}

-		if (visiblesCount == 0) {

-			MethodBinding interfaceMethod =

-				findDefaultAbstractMethod(receiverType, selector, argumentTypes, invocationSite, classHierarchyStart, matchingMethod, found);

-			if (interfaceMethod != null) return interfaceMethod;

-			return new ProblemMethodBinding(candidates[0], candidates[0].selector, candidates[0].parameters, NotVisible);

-		}

-		if (isCompliant14)

-			return mostSpecificMethodBinding(candidates, visiblesCount, invocationSite);

-		return candidates[0].declaringClass.isClass()

-			? mostSpecificClassMethodBinding(candidates, visiblesCount, invocationSite)

-			: mostSpecificInterfaceMethodBinding(candidates, visiblesCount, invocationSite);

-	}

-	

-	// Internal use only

-	public MethodBinding findMethodForArray(

-		ArrayBinding receiverType,

-		char[] selector,

-		TypeBinding[] argumentTypes,

-		InvocationSite invocationSite) {

-

-		TypeBinding leafType = receiverType.leafComponentType();

-		if (leafType instanceof ReferenceBinding) {

-			if (!((ReferenceBinding) leafType).canBeSeenBy(this))

-				return new ProblemMethodBinding(selector, TypeConstants.NoParameters, (ReferenceBinding)leafType, ReceiverTypeNotVisible);

-		}

-

-		ReferenceBinding object = getJavaLangObject();

-		MethodBinding methodBinding = object.getExactMethod(selector, argumentTypes);

-		if (methodBinding != null) {

-			// handle the method clone() specially... cannot be protected or throw exceptions

-			if (argumentTypes == NoParameters) {

-			    switch (selector[0]) {

-			        case 'c': 

-			            if (CharOperation.equals(selector, CLONE))

-							return new UpdatedMethodBinding(

-								environment().options.targetJDK >= ClassFileConstants.JDK1_4 ? (TypeBinding)receiverType : (TypeBinding)object, // remember its array type for codegen purpose on target>=1.4.0

-								(methodBinding.modifiers ^ AccProtected) | AccPublic,

-								CLONE,

-								methodBinding.returnType,

-								argumentTypes,

-								null,

-								object);

-			            break;

-			        case 'g': 

-			            if (CharOperation.equals(selector, GETCLASS) && methodBinding.returnType.isParameterizedType()/*1.5*/) {

-							return ParameterizedMethodBinding.instantiateGetClass(receiverType, methodBinding, this);

-			            }

-			            break;

-			    }

-			}

-			if (methodBinding.canBeSeenBy(receiverType, invocationSite, this))

-				return methodBinding;

-		}

-		// answers closest approximation, may not check argumentTypes or visibility

-		methodBinding = findMethod(object, selector, argumentTypes, invocationSite);

-		if (methodBinding == null)

-			return new ProblemMethodBinding(selector, argumentTypes, NotFound);

-		if (methodBinding.isValidBinding()) {

-			MethodBinding compatibleMethod = computeCompatibleMethod(methodBinding, argumentTypes, invocationSite);

-			if (compatibleMethod == null)

-				return new ProblemMethodBinding(methodBinding, selector, argumentTypes, NotFound);

-			if (!compatibleMethod.isValidBinding())

-				return compatibleMethod;

-

-			methodBinding = compatibleMethod;

-			if (!methodBinding.canBeSeenBy(receiverType, invocationSite, this))

-				return new ProblemMethodBinding(methodBinding, selector, methodBinding.parameters, NotVisible);

-		}

-		return methodBinding;

-	}

-

-	public MethodBinding findMethodInSuperInterfaces(

-		ReferenceBinding currentType,

-		char[] selector,

-		ObjectVector found,

-		MethodBinding matchingMethod) {

-

-		ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-		if (itsInterfaces != NoSuperInterfaces) {

-			ReferenceBinding[][] interfacesToVisit = new ReferenceBinding[5][];

-			int lastPosition = -1;

-			if (++lastPosition == interfacesToVisit.length)

-				System.arraycopy(

-					interfacesToVisit, 0,

-					interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0,

-					lastPosition);

-			interfacesToVisit[lastPosition] = itsInterfaces;

-

-			for (int i = 0; i <= lastPosition; i++) {

-				ReferenceBinding[] interfaces = interfacesToVisit[i];

-				for (int j = 0, length = interfaces.length; j < length; j++) {

-					currentType = interfaces[j];

-					if ((currentType.tagBits & InterfaceVisited) == 0) {

-						// if interface as not already been visited

-						currentType.tagBits |= InterfaceVisited;

-

-						compilationUnitScope().recordTypeReference(currentType);

-						MethodBinding[] currentMethods = currentType.getMethods(selector);

-						int currentLength = currentMethods.length;

-						if (currentLength == 1 && matchingMethod == null && found.size == 0) {

-							matchingMethod = currentMethods[0];

-						} else if (currentLength > 0) {

-							if (matchingMethod != null) {

-								found.add(matchingMethod);

-								matchingMethod = null;

-							}

-							found.addAll(currentMethods);

-						}

-						itsInterfaces = currentType.superInterfaces();

-						if (itsInterfaces != NoSuperInterfaces) {

-							if (++lastPosition == interfacesToVisit.length)

-								System.arraycopy(

-									interfacesToVisit, 0,

-									interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0,

-									lastPosition);

-							interfacesToVisit[lastPosition] = itsInterfaces;

-						}

-					}

-				}

-			}

-

-			// bit reinitialization

-			for (int i = 0; i <= lastPosition; i++) {

-				ReferenceBinding[] interfaces = interfacesToVisit[i];

-				for (int j = 0, length = interfaces.length; j < length; j++)

-					interfaces[j].tagBits &= ~InterfaceVisited;

-			}

-		}

-		return matchingMethod;

-	}

-

-	// Internal use only

-	public ReferenceBinding findType(

-		char[] typeName,

-		PackageBinding declarationPackage,

-		PackageBinding invocationPackage) {

-

-		compilationUnitScope().recordReference(declarationPackage.compoundName, typeName);

-		ReferenceBinding typeBinding = declarationPackage.getType(typeName);

-		if (typeBinding == null)

-			return null;

-

-		if (typeBinding.isValidBinding()) {

-			if (declarationPackage != invocationPackage && !typeBinding.canBeSeenBy(invocationPackage))

-				return new ProblemReferenceBinding(typeName, typeBinding, NotVisible);

-		}

-		return typeBinding;

-	}

-

-	public LocalVariableBinding findVariable(char[] variable) {

-

-		return null;

-	}

-	

-	public TypeBinding getBaseType(char[] name) {

-		// list should be optimized (with most often used first)

-		int length = name.length;

-		if (length > 2 && length < 8) {

-			switch (name[0]) {

-				case 'i' :

-					if (length == 3 && name[1] == 'n' && name[2] == 't')

-						return IntBinding;

-					break;

-				case 'v' :

-					if (length == 4 && name[1] == 'o' && name[2] == 'i' && name[3] == 'd')

-						return VoidBinding;

-					break;

-				case 'b' :

-					if (length == 7

-						&& name[1] == 'o'

-						&& name[2] == 'o'

-						&& name[3] == 'l'

-						&& name[4] == 'e'

-						&& name[5] == 'a'

-						&& name[6] == 'n')

-						return BooleanBinding;

-					if (length == 4 && name[1] == 'y' && name[2] == 't' && name[3] == 'e')

-						return ByteBinding;

-					break;

-				case 'c' :

-					if (length == 4 && name[1] == 'h' && name[2] == 'a' && name[3] == 'r')

-						return CharBinding;

-					break;

-				case 'd' :

-					if (length == 6

-						&& name[1] == 'o'

-						&& name[2] == 'u'

-						&& name[3] == 'b'

-						&& name[4] == 'l'

-						&& name[5] == 'e')

-						return DoubleBinding;

-					break;

-				case 'f' :

-					if (length == 5

-						&& name[1] == 'l'

-						&& name[2] == 'o'

-						&& name[3] == 'a'

-						&& name[4] == 't')

-						return FloatBinding;

-					break;

-				case 'l' :

-					if (length == 4 && name[1] == 'o' && name[2] == 'n' && name[3] == 'g')

-						return LongBinding;

-					break;

-				case 's' :

-					if (length == 5

-						&& name[1] == 'h'

-						&& name[2] == 'o'

-						&& name[3] == 'r'

-						&& name[4] == 't')

-						return ShortBinding;

-			}

-		}

-		return null;

-	}

-

-	/* API

-	 *	

-	 *	Answer the binding that corresponds to the argument name.

-	 *	flag is a mask of the following values VARIABLE (= FIELD or LOCAL), TYPE, PACKAGE.

-	 *	Only bindings corresponding to the mask can be answered.

-	 *

-	 *	For example, getBinding("foo", VARIABLE, site) will answer

-	 *	the binding for the field or local named "foo" (or an error binding if none exists).

-	 *	If a type named "foo" exists, it will not be detected (and an error binding will be answered)

-	 *

-	 *	The VARIABLE mask has precedence over the TYPE mask.

-	 *

-	 *	If the VARIABLE mask is not set, neither fields nor locals will be looked for.

-	 *

-	 *	InvocationSite implements:

-	 *		isSuperAccess(); this is used to determine if the discovered field is visible.

-	 *

-	 *	Limitations: cannot request FIELD independently of LOCAL, or vice versa

-	 */

-	public Binding getBinding(char[] name, int mask, InvocationSite invocationSite, boolean needResolve) {

-			

-		try {

-			Binding binding = null;

-			FieldBinding problemField = null;

-			if ((mask & VARIABLE) != 0) {

-				boolean insideStaticContext = false;

-				boolean insideConstructorCall = false;

-	

-				FieldBinding foundField = null;

-				// can be a problem field which is answered if a valid field is not found

-				ProblemFieldBinding foundInsideProblem = null;

-				// inside Constructor call or inside static context

-				Scope scope = this;

-				int depth = 0;

-				int foundDepth = 0;

-				ReferenceBinding foundActualReceiverType = null;

-				done : while (true) { // done when a COMPILATION_UNIT_SCOPE is found

-					switch (scope.kind) {

-						case METHOD_SCOPE :

-							MethodScope methodScope = (MethodScope) scope;

-							insideStaticContext |= methodScope.isStatic;

-							insideConstructorCall |= methodScope.isConstructorCall;

-							// Fall through... could duplicate the code below to save a cast - questionable optimization

-						case BLOCK_SCOPE :

-							LocalVariableBinding variableBinding = scope.findVariable(name);

-							// looks in this scope only

-							if (variableBinding != null) {

-								if (foundField != null && foundField.isValidBinding())

-									return new ProblemFieldBinding(

-										foundField, // closest match

-										foundField.declaringClass,

-										name,

-										InheritedNameHidesEnclosingName);

-								if (depth > 0)

-									invocationSite.setDepth(depth);

-								return variableBinding;

-							}

-							break;

-						case CLASS_SCOPE :

-							ClassScope classScope = (ClassScope) scope;

-							SourceTypeBinding enclosingType = classScope.referenceContext.binding;

-							FieldBinding fieldBinding =

-								classScope.findField(enclosingType, name, invocationSite, needResolve);

-							// Use next line instead if willing to enable protected access accross inner types

-							// FieldBinding fieldBinding = findField(enclosingType, name, invocationSite);

-							if (fieldBinding != null) { // skip it if we did not find anything

-								if (fieldBinding.problemId() == Ambiguous) {

-									if (foundField == null || foundField.problemId() == NotVisible)

-										// supercedes any potential InheritedNameHidesEnclosingName problem

-										return fieldBinding;

-									// make the user qualify the field, likely wants the first inherited field (javac generates an ambiguous error instead)

-									return new ProblemFieldBinding(

-										foundField, // closest match

-										foundField.declaringClass,

-										name,

-										InheritedNameHidesEnclosingName);

-								}

-	

-								ProblemFieldBinding insideProblem = null;

-								if (fieldBinding.isValidBinding()) {

-									if (!fieldBinding.isStatic()) {

-										if (insideConstructorCall) {

-											insideProblem =

-												new ProblemFieldBinding(

-													fieldBinding, // closest match

-													fieldBinding.declaringClass,

-													name,

-													NonStaticReferenceInConstructorInvocation);

-										} else if (insideStaticContext) {

-											insideProblem =

-												new ProblemFieldBinding(

-													fieldBinding, // closest match

-													fieldBinding.declaringClass,

-													name,

-													NonStaticReferenceInStaticContext);

-										}

-									}

-									if (enclosingType == fieldBinding.declaringClass

-										|| environment().options.complianceLevel >= ClassFileConstants.JDK1_4){

-										// found a valid field in the 'immediate' scope (ie. not inherited)

-										// OR in 1.4 mode (inherited shadows enclosing)

-										if (foundField == null) {

-											if (depth > 0){

-												invocationSite.setDepth(depth);

-												invocationSite.setActualReceiverType(enclosingType);

-											}

-											// return the fieldBinding if it is not declared in a superclass of the scope's binding (that is, inherited)

-											return insideProblem == null ? fieldBinding : insideProblem;

-										}

-										if (foundField.isValidBinding())

-											// if a valid field was found, complain when another is found in an 'immediate' enclosing type (that is, not inherited)

-											if (foundField.declaringClass != fieldBinding.declaringClass)

-												// ie. have we found the same field - do not trust field identity yet

-												return new ProblemFieldBinding(

-													foundField, // closest match

-													foundField.declaringClass,

-													name,

-													InheritedNameHidesEnclosingName);

-									}

-								}

-	

-								if (foundField == null

-									|| (foundField.problemId() == NotVisible

-										&& fieldBinding.problemId() != NotVisible)) {

-									// only remember the fieldBinding if its the first one found or the previous one was not visible & fieldBinding is...

-									foundDepth = depth;

-									foundActualReceiverType = enclosingType;

-									foundInsideProblem = insideProblem;

-									foundField = fieldBinding;

-								}

-							}

-							depth++;

-							insideStaticContext |= enclosingType.isStatic();

-							// 1EX5I8Z - accessing outer fields within a constructor call is permitted

-							// in order to do so, we change the flag as we exit from the type, not the method

-							// itself, because the class scope is used to retrieve the fields.

-							MethodScope enclosingMethodScope = scope.methodScope();

-							insideConstructorCall =

-								enclosingMethodScope == null ? false : enclosingMethodScope.isConstructorCall;

-							break;

-						case COMPILATION_UNIT_SCOPE :

-							break done;

-					}

-					scope = scope.parent;

-				}

-	

-				if (foundInsideProblem != null)

-					return foundInsideProblem;

-				if (foundField != null) {

-					if (foundField.isValidBinding()){

-						if (foundDepth > 0){

-							invocationSite.setDepth(foundDepth);

-							invocationSite.setActualReceiverType(foundActualReceiverType);

-						}

-						return foundField;

-					}

-					problemField = foundField;

-				}

-			}

-	

-			// We did not find a local or instance variable.

-			if ((mask & TYPE) != 0) {

-				if ((binding = getBaseType(name)) != null)

-					return binding;

-				binding = getTypeOrPackage(name, (mask & PACKAGE) == 0 ? TYPE : TYPE | PACKAGE);

-				if (binding.isValidBinding() || mask == TYPE)

-					return binding;

-				// answer the problem type binding if we are only looking for a type

-			} else if ((mask & PACKAGE) != 0) {

-				compilationUnitScope().recordSimpleReference(name);

-				if ((binding = environment().getTopLevelPackage(name)) != null)

-					return binding;

-			}

-			if (problemField != null) return problemField;

-			return new ProblemBinding(name, enclosingSourceType(), NotFound);

-		} catch (AbortCompilation e) {

-			e.updateContext(invocationSite, referenceCompilationUnit().compilationResult);

-			throw e;

-		}

-	}

-

-	public MethodBinding getConstructor(ReferenceBinding receiverType, TypeBinding[] argumentTypes, InvocationSite invocationSite) {

-		try {

-			compilationUnitScope().recordTypeReference(receiverType);

-			compilationUnitScope().recordTypeReferences(argumentTypes);

-			MethodBinding methodBinding = receiverType.getExactConstructor(argumentTypes);

-			if (methodBinding != null && methodBinding.canBeSeenBy(invocationSite, this)) {

-			    // targeting a non generic constructor with type arguments ?

-			    if (invocationSite.genericTypeArguments() != null)

-			    	methodBinding = computeCompatibleMethod(methodBinding, argumentTypes, invocationSite);				

-				return methodBinding;

-			}

-			MethodBinding[] methods = receiverType.getMethods(ConstructorDeclaration.ConstantPoolName);

-			if (methods == NoMethods)

-				return new ProblemMethodBinding(

-					ConstructorDeclaration.ConstantPoolName,

-					argumentTypes,

-					NotFound);

-	

-			MethodBinding[] compatible = new MethodBinding[methods.length];

-			int compatibleIndex = 0;

-			MethodBinding problemMethod = null;

-			for (int i = 0, length = methods.length; i < length; i++) {

-				MethodBinding compatibleMethod = computeCompatibleMethod(methods[i], argumentTypes, invocationSite);

-				if (compatibleMethod != null) {

-					if (compatibleMethod.isValidBinding())

-						compatible[compatibleIndex++] = compatibleMethod;

-					else if (problemMethod == null)

-						problemMethod = compatibleMethod;

-				}

-			}

-			if (compatibleIndex == 0) {

-				if (problemMethod == null)

-					return new ProblemMethodBinding(ConstructorDeclaration.ConstantPoolName, argumentTypes, NotFound);

-				return problemMethod;

-			}

-			// need a more descriptive error... cannot convert from X to Y

-	

-			MethodBinding[] visible = new MethodBinding[compatibleIndex];

-			int visibleIndex = 0;

-			for (int i = 0; i < compatibleIndex; i++) {

-				MethodBinding method = compatible[i];

-				if (method.canBeSeenBy(invocationSite, this))

-					visible[visibleIndex++] = method;

-			}

-			if (visibleIndex == 1) return visible[0];

-			if (visibleIndex == 0)

-				return new ProblemMethodBinding(

-					compatible[0],

-					ConstructorDeclaration.ConstantPoolName,

-					compatible[0].parameters,

-					NotVisible);

-			return mostSpecificClassMethodBinding(visible, visibleIndex, invocationSite);

-		} catch (AbortCompilation e) {

-			e.updateContext(invocationSite, referenceCompilationUnit().compilationResult);

-			throw e;

-		}

-	}

-

-	public final PackageBinding getCurrentPackage() {

-		Scope scope, unitScope = this;

-		while ((scope = unitScope.parent) != null)

-			unitScope = scope;

-		return ((CompilationUnitScope) unitScope).fPackage;

-	}

-

-	/**

-	 * Returns the modifiers of the innermost enclosing declaration.

-	 * @return modifiers

-	 */

-	public int getDeclarationModifiers(){

-		switch(this.kind){

-			case Scope.BLOCK_SCOPE :

-			case Scope.METHOD_SCOPE :

-				MethodScope methodScope = methodScope();

-				if (!methodScope.isInsideInitializer()){

-					// check method modifiers to see if deprecated

-					MethodBinding context = ((AbstractMethodDeclaration)methodScope.referenceContext).binding;

-					if (context != null) {

-						return context.modifiers;

-					}

-				} else {

-					SourceTypeBinding type = ((BlockScope)this).referenceType().binding;

-

-					// inside field declaration ? check field modifier to see if deprecated

-					if (methodScope.initializedField != null) {

-						return methodScope.initializedField.modifiers;

-					}

-					if (type != null) {

-						return type.modifiers;

-					}

-				}

-				break;

-			case Scope.CLASS_SCOPE :

-				ReferenceBinding context = ((ClassScope)this).referenceType().binding;

-				if (context != null) {

-					return context.modifiers;

-				}

-				break;

-		}

-		return -1;

-	}

-

-	public FieldBinding getField(TypeBinding receiverType, char[] fieldName, InvocationSite invocationSite) {

-		try {

-			FieldBinding field = findField(receiverType, fieldName, invocationSite, true /*resolve*/);

-			if (field != null) return field;

-	

-			return new ProblemFieldBinding(

-				receiverType instanceof ReferenceBinding ? (ReferenceBinding) receiverType : null,

-				fieldName,

-				NotFound);

-		} catch (AbortCompilation e) {

-			e.updateContext(invocationSite, referenceCompilationUnit().compilationResult);

-			throw e;

-		}			

-	}

-

-	/* API

-	 *	

-	 *	Answer the method binding that corresponds to selector, argumentTypes.

-	 *	Start the lookup at the enclosing type of the receiver.

-	 *	InvocationSite implements 

-	 *		isSuperAccess(); this is used to determine if the discovered method is visible.

-	 *		setDepth(int); this is used to record the depth of the discovered method

-	 *			relative to the enclosing type of the receiver. (If the method is defined

-	 *			in the enclosing type of the receiver, the depth is 0; in the next enclosing

-	 *			type, the depth is 1; and so on

-	 * 

-	 *	If no visible method is discovered, an error binding is answered.

-	 */

-	public MethodBinding getImplicitMethod(char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) {

-

-		boolean insideStaticContext = false;

-		boolean insideConstructorCall = false;

-		MethodBinding foundMethod = null;

-		MethodBinding foundFuzzyProblem = null;

-		// the weird method lookup case (matches method name in scope, then arg types, then visibility)

-		MethodBinding foundInsideProblem = null;

-		// inside Constructor call or inside static context

-		Scope scope = this;

-		int depth = 0;

-		done : while (true) { // done when a COMPILATION_UNIT_SCOPE is found

-			switch (scope.kind) {

-				case METHOD_SCOPE :

-					MethodScope methodScope = (MethodScope) scope;

-					insideStaticContext |= methodScope.isStatic;

-					insideConstructorCall |= methodScope.isConstructorCall;

-					break;

-				case CLASS_SCOPE :

-					ClassScope classScope = (ClassScope) scope;

-					SourceTypeBinding receiverType = classScope.referenceContext.binding;

-					boolean isExactMatch = true;

-					// retrieve an exact visible match (if possible)

-					MethodBinding methodBinding =

-						(foundMethod == null)

-							? classScope.findExactMethod(receiverType, selector, argumentTypes, invocationSite)

-							: classScope.findExactMethod( receiverType, foundMethod.selector, foundMethod.parameters, invocationSite);

-					//		? findExactMethod(receiverType, selector, argumentTypes, invocationSite)

-					//		: findExactMethod(receiverType, foundMethod.selector, foundMethod.parameters, invocationSite);

-					if (methodBinding == null) {

-						// answers closest approximation, may not check argumentTypes or visibility

-						isExactMatch = false;

-						methodBinding = classScope.findMethod(receiverType, selector, argumentTypes, invocationSite);

-						// methodBinding = findMethod(receiverType, selector, argumentTypes, invocationSite);

-					}

-					if (methodBinding != null) { // skip it if we did not find anything

-						if (methodBinding.problemId() == Ambiguous) {

-							if (foundMethod == null || foundMethod.problemId() == NotVisible) {

-								// supercedes any potential InheritedNameHidesEnclosingName problem

-								return methodBinding;

-							}

-							// make the user qualify the method, likely wants the first inherited method (javac generates an ambiguous error instead)

-							return new ProblemMethodBinding(

-								methodBinding, // closest match

-								selector,

-								argumentTypes,

-								InheritedNameHidesEnclosingName);

-						}

-						MethodBinding fuzzyProblem = null;

-						MethodBinding insideProblem = null;

-						if (methodBinding.isValidBinding()) {

-							if (!isExactMatch) {

-								MethodBinding compatibleMethod = computeCompatibleMethod(methodBinding, argumentTypes, invocationSite);

-								if (compatibleMethod == null) {

-									if (foundMethod == null || foundMethod.problemId() == NotVisible)

-										// inherited mismatch is reported directly, not looking at enclosing matches

-										return new ProblemMethodBinding(methodBinding, selector, argumentTypes, NotFound);

-									// make the user qualify the method, likely wants the first inherited method (javac generates an ambiguous error instead)

-									fuzzyProblem = new ProblemMethodBinding(methodBinding, selector, methodBinding.parameters, InheritedNameHidesEnclosingName);

-								} else if (!compatibleMethod.isValidBinding()) {

-									fuzzyProblem = compatibleMethod;

-								} else {

-									methodBinding = compatibleMethod;

-									if (!methodBinding.canBeSeenBy(receiverType, invocationSite, classScope)) {

-										// using <classScope> instead of <this> for visibility check does grant all access to innerclass

-										fuzzyProblem = new ProblemMethodBinding(methodBinding, selector, methodBinding.parameters, NotVisible);

-									}

-								}

-							}

-							if (fuzzyProblem == null && !methodBinding.isStatic()) {

-								if (insideConstructorCall) {

-									insideProblem =

-										new ProblemMethodBinding(

-											methodBinding, // closest match

-											methodBinding.selector,

-											methodBinding.parameters,

-											NonStaticReferenceInConstructorInvocation);

-								} else if (insideStaticContext) {

-									insideProblem =

-										new ProblemMethodBinding(

-											methodBinding, // closest match

-											methodBinding.selector,

-											methodBinding.parameters,

-											NonStaticReferenceInStaticContext);

-								}

-							}

-

-							if (receiverType == methodBinding.declaringClass

-								|| (receiverType.getMethods(selector)) != NoMethods

-								|| ((fuzzyProblem == null || fuzzyProblem.problemId() != NotVisible) && environment().options.complianceLevel >= ClassFileConstants.JDK1_4)){

-								// found a valid method in the 'immediate' scope (ie. not inherited)

-								// OR the receiverType implemented a method with the correct name

-								// OR in 1.4 mode (inherited visible shadows enclosing)

-								if (foundMethod == null) {

-									if (depth > 0){

-										invocationSite.setDepth(depth);

-										invocationSite.setActualReceiverType(receiverType);

-									}

-									// return the methodBinding if it is not declared in a superclass of the scope's binding (that is, inherited)

-									if (fuzzyProblem != null)

-										return fuzzyProblem;

-									if (insideProblem != null)

-										return insideProblem;

-									return methodBinding;

-								}

-								// if a method was found, complain when another is found in an 'immediate' enclosing type (that is, not inherited)

-								// NOTE: Unlike fields, a non visible method hides a visible method

-								if (foundMethod.declaringClass != methodBinding.declaringClass)

-									// ie. have we found the same method - do not trust field identity yet

-									return new ProblemMethodBinding(

-										methodBinding, // closest match

-										methodBinding.selector,

-										methodBinding.parameters,

-										InheritedNameHidesEnclosingName);

-							}

-						}

-

-						if (foundMethod == null

-							|| (foundMethod.problemId() == NotVisible

-								&& methodBinding.problemId() != NotVisible)) {

-							// only remember the methodBinding if its the first one found or the previous one was not visible & methodBinding is...

-							// remember that private methods are visible if defined directly by an enclosing class

-							if (depth > 0){

-								invocationSite.setDepth(depth);

-								invocationSite.setActualReceiverType(receiverType);

-							}

-							foundFuzzyProblem = fuzzyProblem;

-							foundInsideProblem = insideProblem;

-							if (fuzzyProblem == null)

-								foundMethod = methodBinding; // only keep it if no error was found

-						}

-					}

-					depth++;

-					insideStaticContext |= receiverType.isStatic();

-					// 1EX5I8Z - accessing outer fields within a constructor call is permitted

-					// in order to do so, we change the flag as we exit from the type, not the method

-					// itself, because the class scope is used to retrieve the fields.

-					MethodScope enclosingMethodScope = scope.methodScope();

-					insideConstructorCall =

-						enclosingMethodScope == null ? false : enclosingMethodScope.isConstructorCall;

-					break;

-				case COMPILATION_UNIT_SCOPE :

-					break done;

-			}

-			scope = scope.parent;

-		}

-

-		if (foundFuzzyProblem != null)

-			return foundFuzzyProblem;

-		if (foundInsideProblem != null)

-			return foundInsideProblem;

-		if (foundMethod != null)

-			return foundMethod;

-		return new ProblemMethodBinding(selector, argumentTypes, NotFound);

-	}

-

-	public final ReferenceBinding getJavaIoSerializable() {

-		compilationUnitScope().recordQualifiedReference(JAVA_IO_SERIALIZABLE);

-		ReferenceBinding type = environment().getType(JAVA_IO_SERIALIZABLE);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_IO_SERIALIZABLE, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-

-	public final ReferenceBinding getJavaLangAssertionError() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_ASSERTIONERROR);

-		ReferenceBinding type = environment().getType(JAVA_LANG_ASSERTIONERROR);

-		if (type != null) return type;

-		problemReporter().isClassPathCorrect(JAVA_LANG_ASSERTIONERROR, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-

-	public final ReferenceBinding getJavaLangClass() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_CLASS);

-		ReferenceBinding type = environment().getType(JAVA_LANG_CLASS);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_LANG_CLASS, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-

-	public final ReferenceBinding getJavaLangCloneable() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_CLONEABLE);

-		ReferenceBinding type = environment().getType(JAVA_LANG_CLONEABLE);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_LANG_CLONEABLE, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-

-	public final ReferenceBinding getJavaLangError() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_ERROR);

-		ReferenceBinding type = environment().getType(JAVA_LANG_ERROR);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_LANG_ERROR, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-	public final ReferenceBinding getJavaLangIterable() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_ITERABLE);

-		ReferenceBinding type = environment().getType(JAVA_LANG_ITERABLE);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_LANG_ITERABLE, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-	public final ReferenceBinding getJavaLangObject() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_OBJECT);

-		ReferenceBinding type = environment().getType(JAVA_LANG_OBJECT);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_LANG_OBJECT, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-

-	public final ReferenceBinding getJavaLangRuntimeException() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_RUNTIMEEXCEPTION);

-		ReferenceBinding type = environment().getType(JAVA_LANG_RUNTIMEEXCEPTION);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_LANG_RUNTIMEEXCEPTION, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-

-	public final ReferenceBinding getJavaLangString() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_STRING);

-		ReferenceBinding type = environment().getType(JAVA_LANG_STRING);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_LANG_STRING, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-

-	public final ReferenceBinding getJavaLangThrowable() {

-		compilationUnitScope().recordQualifiedReference(JAVA_LANG_THROWABLE);

-		ReferenceBinding type = environment().getType(JAVA_LANG_THROWABLE);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_LANG_THROWABLE, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-	public final ReferenceBinding getJavaUtilIterator() {

-		compilationUnitScope().recordQualifiedReference(JAVA_UTIL_ITERATOR);

-		ReferenceBinding type = environment().getType(JAVA_UTIL_ITERATOR);

-		if (type != null) return type;

-	

-		problemReporter().isClassPathCorrect(JAVA_UTIL_ITERATOR, referenceCompilationUnit());

-		return null; // will not get here since the above error aborts the compilation

-	}

-

-	/* Answer the type binding corresponding to the typeName argument, relative to the enclosingType.

-	*/

-	public final ReferenceBinding getMemberType(char[] typeName, ReferenceBinding enclosingType) {

-		ReferenceBinding memberType = findMemberType(typeName, enclosingType);

-		if (memberType != null) return memberType;

-		return new ProblemReferenceBinding(typeName, NotFound);

-	}

-

-	public MethodBinding getMethod(TypeBinding receiverType, char[] selector, TypeBinding[] argumentTypes, InvocationSite invocationSite) {

-		try {

-			if (receiverType.isArrayType())

-				return findMethodForArray((ArrayBinding) receiverType, selector, argumentTypes, invocationSite);

-			if (receiverType.isBaseType())

-				return new ProblemMethodBinding(selector, argumentTypes, NotFound);

-	

-			ReferenceBinding currentType = (ReferenceBinding) receiverType;

-			if (!currentType.canBeSeenBy(this))

-				return new ProblemMethodBinding(selector, argumentTypes, ReceiverTypeNotVisible);

-	

-			// retrieve an exact visible match (if possible)

-			MethodBinding methodBinding = findExactMethod(currentType, selector, argumentTypes, invocationSite);

-			if (methodBinding != null) return methodBinding;

-	

-			// TODO (kent) performance - we are accumulating super methods which are *hidden* during the walk (see testcase from bug 69141)

-			// answers closest approximation, may not check argumentTypes or visibility

-			methodBinding = findMethod(currentType, selector, argumentTypes, invocationSite);

-			if (methodBinding == null)

-				return new ProblemMethodBinding(selector, argumentTypes, NotFound);

-			if (methodBinding.isValidBinding()) {

-				MethodBinding compatibleMethod = computeCompatibleMethod(methodBinding, argumentTypes, invocationSite);

-				if (compatibleMethod == null)

-					return new ProblemMethodBinding(methodBinding, selector, argumentTypes, NotFound);

-				if (!compatibleMethod.isValidBinding())

-					return compatibleMethod;

-	

-				methodBinding = compatibleMethod;

-				if (!methodBinding.canBeSeenBy(currentType, invocationSite, this))

-					return new ProblemMethodBinding( methodBinding, selector, methodBinding.parameters, NotVisible);

-			}

-			return methodBinding;

-		} catch (AbortCompilation e) {

-			e.updateContext(invocationSite, referenceCompilationUnit().compilationResult);

-			throw e;

-		}

-	}

-

-	/* Answer the package from the compoundName or null if it begins with a type.

-	* Intended to be used while resolving a qualified type name.

-	*

-	* NOTE: If a problem binding is returned, senders should extract the compound name

-	* from the binding & not assume the problem applies to the entire compoundName.

-	*/

-	public final Binding getPackage(char[][] compoundName) {

-		compilationUnitScope().recordQualifiedReference(compoundName);

-		Binding binding = getTypeOrPackage(compoundName[0], TYPE | PACKAGE);

-		if (binding == null)

-			return new ProblemReferenceBinding(compoundName[0], NotFound);

-		if (!binding.isValidBinding())

-			return (ReferenceBinding) binding;

-

-		if (!(binding instanceof PackageBinding)) return null; // compoundName does not start with a package

-

-		int currentIndex = 1;

-		PackageBinding packageBinding = (PackageBinding) binding;

-		while (currentIndex < compoundName.length) {

-			binding = packageBinding.getTypeOrPackage(compoundName[currentIndex++]);

-			if (binding == null)

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					NotFound);

-			if (!binding.isValidBinding())

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					binding.problemId());

-			if (!(binding instanceof PackageBinding))

-				return packageBinding;

-			packageBinding = (PackageBinding) binding;

-		}

-		return new ProblemReferenceBinding(compoundName, NotFound);

-	}

-

-	/* Answer the type binding that corresponds the given name, starting the lookup in the receiver.

-	* The name provided is a simple source name (e.g., "Object" , "Point", ...)

-	*/

-	// The return type of this method could be ReferenceBinding if we did not answer base types.

-	// NOTE: We could support looking for Base Types last in the search, however any code using

-	// this feature would be extraordinarily slow.  Therefore we don't do this

-	public final TypeBinding getType(char[] name) {

-		// Would like to remove this test and require senders to specially handle base types

-		TypeBinding binding = getBaseType(name);

-		if (binding != null) return binding;

-		return (ReferenceBinding) getTypeOrPackage(name, TYPE);

-	}

-

-	/* Answer the type binding that corresponds to the given name, starting the lookup in the receiver

-	* or the packageBinding if provided.

-	* The name provided is a simple source name (e.g., "Object" , "Point", ...)

-	*/

-	public final TypeBinding getType(char[] name, PackageBinding packageBinding) {

-		if (packageBinding == null)

-			return getType(name);

-

-		Binding binding = packageBinding.getTypeOrPackage(name);

-		if (binding == null)

-			return new ProblemReferenceBinding(

-				CharOperation.arrayConcat(packageBinding.compoundName, name),

-				NotFound);

-		if (!binding.isValidBinding())

-			return new ProblemReferenceBinding(

-				CharOperation.arrayConcat(packageBinding.compoundName, name),

-				binding.problemId());

-

-		ReferenceBinding typeBinding = (ReferenceBinding) binding;

-		if (!typeBinding.canBeSeenBy(this))

-			return new ProblemReferenceBinding(

-				CharOperation.arrayConcat(packageBinding.compoundName, name),

-				typeBinding,

-				NotVisible);

-		return typeBinding;

-	}

-

-	/* Answer the type binding corresponding to the compoundName.

-	*

-	* NOTE: If a problem binding is returned, senders should extract the compound name

-	* from the binding & not assume the problem applies to the entire compoundName.

-	*/

-	public final TypeBinding getType(char[][] compoundName, int typeNameLength) {

-		if (typeNameLength == 1) {

-			// Would like to remove this test and require senders to specially handle base types

-			TypeBinding binding = getBaseType(compoundName[0]);

-			if (binding != null) return binding;

-		}

-

-		compilationUnitScope().recordQualifiedReference(compoundName);

-		Binding binding =

-			getTypeOrPackage(compoundName[0], typeNameLength == 1 ? TYPE : TYPE | PACKAGE);

-		if (binding == null)

-			return new ProblemReferenceBinding(compoundName[0], NotFound);

-		if (!binding.isValidBinding())

-			return (ReferenceBinding) binding;

-

-		int currentIndex = 1;

-		boolean checkVisibility = false;

-		if (binding instanceof PackageBinding) {

-			PackageBinding packageBinding = (PackageBinding) binding;

-			while (currentIndex < typeNameLength) {

-				binding = packageBinding.getTypeOrPackage(compoundName[currentIndex++]); // does not check visibility

-				if (binding == null)

-					return new ProblemReferenceBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						NotFound);

-				if (!binding.isValidBinding())

-					return new ProblemReferenceBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						binding.problemId());

-				if (!(binding instanceof PackageBinding))

-					break;

-				packageBinding = (PackageBinding) binding;

-			}

-			if (binding instanceof PackageBinding)

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					NotFound);

-			checkVisibility = true;

-		}

-

-		// binding is now a ReferenceBinding

-		ReferenceBinding typeBinding = (ReferenceBinding) binding;

-		compilationUnitScope().recordTypeReference(typeBinding);

-		if (checkVisibility) // handles the fall through case

-			if (!typeBinding.canBeSeenBy(this))

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					typeBinding,

-					NotVisible);

-

-		while (currentIndex < typeNameLength) {

-			typeBinding = getMemberType(compoundName[currentIndex++], typeBinding);

-			if (!typeBinding.isValidBinding()) {

-				if (typeBinding instanceof ProblemReferenceBinding) {

-					ProblemReferenceBinding problemBinding = (ProblemReferenceBinding) typeBinding;

-					return new ProblemReferenceBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						problemBinding.original,

-						typeBinding.problemId());

-				}

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					typeBinding.problemId());

-			}

-		}

-		return typeBinding;

-	}

-

-	/* Internal use only 

-	*/

-	final Binding getTypeOrPackage(char[] name, int mask) {

-		Scope scope = this;

-		ReferenceBinding foundType = null;

-		boolean insideStaticContext = false;

-		if ((mask & TYPE) == 0) {

-			Scope next = scope;

-			while ((next = scope.parent) != null)

-				scope = next;

-		} else {

-			done : while (true) { // done when a COMPILATION_UNIT_SCOPE is found

-				switch (scope.kind) {

-					case METHOD_SCOPE :

-						MethodScope methodScope = (MethodScope) scope;

-						AbstractMethodDeclaration methodDecl = methodScope.referenceMethod();

-						if (methodDecl != null && methodDecl.binding != null) {

-							TypeVariableBinding typeVariable = methodDecl.binding.getTypeVariable(name);

-							if (typeVariable != null)	return typeVariable;

-						}

-						insideStaticContext |= methodScope.isStatic;

-					case BLOCK_SCOPE :

-						ReferenceBinding localType = ((BlockScope) scope).findLocalType(name); // looks in this scope only

-						if (localType != null) {

-							if (foundType != null && foundType != localType)

-								return new ProblemReferenceBinding(name, InheritedNameHidesEnclosingName);

-							return localType;

-						}

-						break;

-					case CLASS_SCOPE :

-						SourceTypeBinding sourceType = ((ClassScope) scope).referenceContext.binding;

-						if (sourceType.isHierarchyBeingConnected()) {

-							// type variables take precedence over the source type, ex. class X <X> extends X == class X <Y> extends Y 

-							TypeVariableBinding typeVariable = sourceType.getTypeVariable(name);

-							if (typeVariable != null)

-								return typeVariable;

-							if (CharOperation.equals(name, sourceType.sourceName))

-								return sourceType;

-							break;

-						}

-						// type variables take precedence over member types

-						TypeVariableBinding typeVariable = sourceType.getTypeVariable(name);

-						if (typeVariable != null) {

-							if (insideStaticContext) // do not consider this type modifiers: access is legite within same type

-								return new ProblemReferenceBinding(name, NonStaticReferenceInStaticContext);

-							return typeVariable;

-						}

-						insideStaticContext |= (sourceType.modifiers & AccStatic) != 0; // not isStatic()

-						// 6.5.5.1 - member types have precedence over top-level type in same unit

-						ReferenceBinding memberType = findMemberType(name, sourceType);

-						if (memberType != null) { // skip it if we did not find anything

-							if (memberType.problemId() == Ambiguous) {

-								if (foundType == null || foundType.problemId() == NotVisible)

-									// supercedes any potential InheritedNameHidesEnclosingName problem

-									return memberType;

-								else

-									// make the user qualify the type, likely wants the first inherited type

-									return new ProblemReferenceBinding(name, InheritedNameHidesEnclosingName);

-							}

-							if (memberType.isValidBinding()) {

-								if (sourceType == memberType.enclosingType()

-										|| environment().options.complianceLevel >= ClassFileConstants.JDK1_4) {

-									// found a valid type in the 'immediate' scope (ie. not inherited)

-									// OR in 1.4 mode (inherited shadows enclosing)

-									if (foundType == null)

-										return memberType; 

-									if (foundType.isValidBinding())

-										// if a valid type was found, complain when another is found in an 'immediate' enclosing type (ie. not inherited)

-										if (foundType != memberType)

-											return new ProblemReferenceBinding(name, InheritedNameHidesEnclosingName);

-								}

-							}

-							if (foundType == null || (foundType.problemId() == NotVisible && memberType.problemId() != NotVisible))

-								// only remember the memberType if its the first one found or the previous one was not visible & memberType is...

-								foundType = memberType;

-						}

-						if (CharOperation.equals(sourceType.sourceName, name)) {

-							if (foundType != null && foundType != sourceType && foundType.problemId() != NotVisible)

-								return new ProblemReferenceBinding(name, InheritedNameHidesEnclosingName);

-							return sourceType;

-						}

-						break;

-					case COMPILATION_UNIT_SCOPE :

-						break done;

-				}

-				scope = scope.parent;

-			}

-			if (foundType != null && foundType.problemId() != NotVisible)

-				return foundType;

-		}

-

-		// at this point the scope is a compilation unit scope

-		CompilationUnitScope unitScope = (CompilationUnitScope) scope;

-		PackageBinding currentPackage = unitScope.fPackage; 

-		// ask for the imports + name

-		if ((mask & TYPE) != 0) {

-			// check single type imports.

-

-			ImportBinding[] imports = unitScope.imports;

-			if (imports != null) {

-				HashtableOfObject typeImports = unitScope.resolvedSingeTypeImports;

-				if (typeImports != null) {

-					ImportBinding typeImport = (ImportBinding) typeImports.get(name);

-					if (typeImport != null) {

-						ImportReference importReference = typeImport.reference;

-						if (importReference != null) importReference.used = true;

-						return typeImport.resolvedImport; // already know its visible

-					}

-				} else {

-					// walk all the imports since resolvedSingeTypeImports is not yet initialized

-					for (int i = 0, length = imports.length; i < length; i++) {

-						ImportBinding typeImport = imports[i];

-						if (!typeImport.onDemand) {

-							if (CharOperation.equals(typeImport.compoundName[typeImport.compoundName.length - 1], name)) {

-								if (unitScope.resolveSingleTypeImport(typeImport) != null) {

-									ImportReference importReference = typeImport.reference;

-									if (importReference != null) importReference.used = true;

-									return typeImport.resolvedImport; // already know its visible

-								}

-							}

-						}

-					}

-				}

-			}

-			// check if the name is in the current package, skip it if its a sub-package

-			unitScope.recordReference(currentPackage.compoundName, name);

-			Binding binding = currentPackage.getTypeOrPackage(name);

-			if (binding instanceof ReferenceBinding) return binding; // type is always visible to its own package

-

-			// check on demand imports

-			if (imports != null) {

-				boolean foundInImport = false;

-				ReferenceBinding type = null;

-				for (int i = 0, length = imports.length; i < length; i++) {

-					ImportBinding someImport = imports[i];

-					if (someImport.onDemand) {

-						Binding resolvedImport = someImport.resolvedImport;

-						ReferenceBinding temp = resolvedImport instanceof PackageBinding

-							? findType(name, (PackageBinding) resolvedImport, currentPackage)

-							: findDirectMemberType(name, (ReferenceBinding) resolvedImport);

-						if (temp != null) {

-							if (temp.isValidBinding()) {

-								ImportReference importReference = someImport.reference;

-								if (importReference != null) importReference.used = true;

-								if (foundInImport)

-									// Answer error binding -- import on demand conflict; name found in two import on demand packages.

-									return new ProblemReferenceBinding(name, Ambiguous);

-								type = temp;

-								foundInImport = true;

-							} else if (foundType == null) {

-								foundType = temp;

-							}

-						}

-					}

-				}

-				if (type != null) return type;

-			}

-		}

-

-		unitScope.recordSimpleReference(name);

-		if ((mask & PACKAGE) != 0) {

-			PackageBinding packageBinding = unitScope.environment.getTopLevelPackage(name);

-			if (packageBinding != null) return packageBinding;

-		}

-

-		// Answer error binding -- could not find name

-		if (foundType != null) return foundType; // problem type from above

-		return new ProblemReferenceBinding(name, NotFound);

-	}

-

-	// Added for code assist... NOT Public API

-	// DO NOT USE to resolve import references since this method assumes 'A.B' is relative to a single type import of 'p1.A'

-	// when it may actually mean the type B in the package A

-	// use CompilationUnitScope.getImport(char[][]) instead

-	public final Binding getTypeOrPackage(char[][] compoundName) {

-		int nameLength = compoundName.length;

-		if (nameLength == 1) {

-			TypeBinding binding = getBaseType(compoundName[0]);

-			if (binding != null) return binding;

-		}

-		Binding binding = getTypeOrPackage(compoundName[0], TYPE | PACKAGE);

-		if (!binding.isValidBinding()) return binding;

-

-		int currentIndex = 1;

-		boolean checkVisibility = false;

-		if (binding instanceof PackageBinding) {

-			PackageBinding packageBinding = (PackageBinding) binding;

-

-			while (currentIndex < nameLength) {

-				binding = packageBinding.getTypeOrPackage(compoundName[currentIndex++]);

-				if (binding == null)

-					return new ProblemReferenceBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						NotFound);

-				if (!binding.isValidBinding())

-					return new ProblemReferenceBinding(

-						CharOperation.subarray(compoundName, 0, currentIndex),

-						binding.problemId());

-				if (!(binding instanceof PackageBinding))

-					break;

-				packageBinding = (PackageBinding) binding;

-			}

-			if (binding instanceof PackageBinding) return binding;

-			checkVisibility = true;

-		}

-		// binding is now a ReferenceBinding

-		ReferenceBinding typeBinding = (ReferenceBinding) binding;

-		if (checkVisibility) // handles the fall through case

-			if (!typeBinding.canBeSeenBy(this))

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					typeBinding,

-					NotVisible);

-

-		while (currentIndex < nameLength) {

-			typeBinding = getMemberType(compoundName[currentIndex++], typeBinding);

-			// checks visibility

-			if (!typeBinding.isValidBinding())

-				return new ProblemReferenceBinding(

-					CharOperation.subarray(compoundName, 0, currentIndex),

-					typeBinding.problemId());

-		}

-		return typeBinding;

-	}

-	

-	// 5.1.10

-	public TypeBinding[] greaterLowerBound(TypeBinding[] types) {

-		if (types == null) return null;

-		int length = types.length;

-		TypeBinding[] result = types;

-		int removed = 0;

-		for (int i = 0; i < length; i++) {

-			TypeBinding iType = result[i];

-			for (int j = 0; j < length; j++) {

-				if (i == j) continue;

-				TypeBinding jType = result[j];

-				if (jType == null) continue;

-				if (iType.isCompatibleWith(jType)) { // if Vi <: Vj, Vj is removed

-					if (result == types) { // defensive copy

-						System.arraycopy(result, 0, result = new TypeBinding[length], 0, length);

-					}

-					result[j] = null;

-					removed ++;

-				}

-			}

-		}

-		if (removed == 0) return result;

-		TypeBinding[] trimmedResult = new TypeBinding[length - removed];

-		for (int i = 0, index = 0; i < length; i++) {

-			TypeBinding iType = result[i];

-			if (iType != null) {

-				trimmedResult[index++] = iType;

-			}

-		}

-		return trimmedResult;

-	}

-

-	/* Answer true if the scope is nested inside a given field declaration.

-	 * Note: it works as long as the scope.fieldDeclarationIndex is reflecting the field being traversed 

-	 * e.g. during name resolution.

-	*/

-	public final boolean isDefinedInField(FieldBinding field) {

-		Scope scope = this;

-		do {

-			if (scope instanceof MethodScope) {

-				MethodScope methodScope = (MethodScope) scope;

-				if (methodScope.initializedField == field) return true;

-			}

-			scope = scope.parent;

-		} while (scope != null);

-		return false;

-	}

-

-	/* Answer true if the scope is nested inside a given method declaration

-	*/

-	public final boolean isDefinedInMethod(MethodBinding method) {

-		Scope scope = this;

-		do {

-			if (scope instanceof MethodScope) {

-				ReferenceContext refContext = ((MethodScope) scope).referenceContext;

-				if (refContext instanceof AbstractMethodDeclaration

-						&& ((AbstractMethodDeclaration)refContext).binding == method) {

-					return true;

-				}

-			}

-			scope = scope.parent;

-		} while (scope != null);

-		return false;

-	}

-

-	/* Answer whether the type is defined in the same compilation unit as the receiver

-	*/

-	public final boolean isDefinedInSameUnit(ReferenceBinding type) {

-		// find the outer most enclosing type

-		ReferenceBinding enclosingType = type;

-		while ((type = enclosingType.enclosingType()) != null)

-			enclosingType = type;

-

-		// find the compilation unit scope

-		Scope scope, unitScope = this;

-		while ((scope = unitScope.parent) != null)

-			unitScope = scope;

-

-		// test that the enclosingType is not part of the compilation unit

-		SourceTypeBinding[] topLevelTypes =

-			((CompilationUnitScope) unitScope).topLevelTypes;

-		for (int i = topLevelTypes.length; --i >= 0;)

-			if (topLevelTypes[i] == enclosingType)

-				return true;

-		return false;

-	}

-		

-	/* Answer true if the scope is nested inside a given type declaration

-	*/

-	public final boolean isDefinedInType(ReferenceBinding type) {

-		Scope scope = this;

-		do {

-			if (scope instanceof ClassScope)

-				if (((ClassScope) scope).referenceContext.binding == type){

-					return true;

-				}

-			scope = scope.parent;

-		} while (scope != null);

-		return false;

-	}

-

-	public boolean isInsideDeprecatedCode(){

-		switch(this.kind){

-			case Scope.BLOCK_SCOPE :

-			case Scope.METHOD_SCOPE :

-				MethodScope methodScope = methodScope();

-				if (!methodScope.isInsideInitializer()){

-					// check method modifiers to see if deprecated

-					MethodBinding context = ((AbstractMethodDeclaration)methodScope.referenceContext).binding;

-					if (context != null && context.isViewedAsDeprecated()) {

-						return true;

-					}

-				} else {

-					SourceTypeBinding type = ((BlockScope)this).referenceType().binding;

-					// inside field declaration ? check field modifier to see if deprecated

-					if (methodScope.initializedField != null && methodScope.initializedField.isViewedAsDeprecated()) {

-						return true;

-					}

-					if (type != null && type.isViewedAsDeprecated()) {

-						return true;

-					}

-				}

-				break;

-			case Scope.CLASS_SCOPE :

-				ReferenceBinding context = ((ClassScope)this).referenceType().binding;

-				if (context != null && context.isViewedAsDeprecated()) {

-					return true;

-				}

-				break;

-		}

-		return false;

-	}

-	private TypeBinding leastContainingInvocation(TypeBinding mec, List invocations) {

-		int length = invocations.size();

-		if (length == 0) return mec;

-		if (length == 1) return (TypeBinding) invocations.get(0);

-		int argLength = mec.typeVariables().length;

-		if (argLength == 0) return mec; // should be caught by no invocation check

-

-		// infer proper parameterized type from invocations

-		TypeBinding[] bestArguments = new TypeBinding[argLength];

-		for (int i = 0; i < length; i++) {

-			TypeBinding invocation = (TypeBinding)invocations.get(i);

-			if (invocation.isGenericType()) {

-				for (int j = 0; j < argLength; j++) {

-					TypeBinding bestArgument = leastContainingTypeArgument(bestArguments[j], invocation.typeVariables()[j], (ReferenceBinding) mec, j);

-					if (bestArgument == null) return null;

-					bestArguments[j] = bestArgument;

-				}

-			} else if (invocation.isParameterizedType()) {

-				ParameterizedTypeBinding parameterizedType = (ParameterizedTypeBinding)invocation;

-				for (int j = 0; j < argLength; j++) {

-					TypeBinding bestArgument = leastContainingTypeArgument(bestArguments[j], parameterizedType.arguments[j], (ReferenceBinding) mec, j);

-					if (bestArgument == null) return null;

-					bestArguments[j] = bestArgument;

-				}

-			} else if (invocation.isRawType()) {

-				return invocation; // raw type is taking precedence

-			}

-		}

-		return createParameterizedType((ReferenceBinding) mec, bestArguments, null);

-	}

-	

-	// JLS 15.12.2

-	private TypeBinding leastContainingTypeArgument(TypeBinding u, TypeBinding v, ReferenceBinding genericType, int rank) {

-		if (u == null) return v;

-		if (u == v) return u;

-		if (v.isWildcard()) {

-			WildcardBinding wildV = (WildcardBinding) v;

-			if (u.isWildcard()) {

-				WildcardBinding wildU = (WildcardBinding) u;

-				switch (wildU.kind) {

-					// ? extends U

-					case Wildcard.EXTENDS :

-						switch(wildV.kind) {

-							// ? extends U, ? extends V

-							case Wildcard.EXTENDS :  

-								TypeBinding lub = lowerUpperBound(new TypeBinding[]{wildU.bound,wildV.bound});

-								if (lub == null) return null;

-								return environment().createWildcard(genericType, rank, lub, Wildcard.EXTENDS);	

-							// ? extends U, ? SUPER V

-							case Wildcard.SUPER : 

-								if (wildU.bound == wildV.bound) return wildU.bound;

-								return environment().createWildcard(genericType, rank, null, Wildcard.UNBOUND);

-						}

-						break;

-						// ? super U

-					case Wildcard.SUPER : 

-						// ? super U, ? super V

-						if (wildU.kind == Wildcard.SUPER) {

-							TypeBinding[] glb = greaterLowerBound(new TypeBinding[]{wildU.bound,wildV.bound});

-							if (glb == null) return null;

-							return environment().createWildcard(genericType, rank, glb[0], Wildcard.SUPER);	// TODO (philippe) need to capture entire bounds

-						}

-				}				

-			} else {

-				switch (wildV.kind) {

-					// U, ? extends V

-					case Wildcard.EXTENDS :

-						TypeBinding lub = lowerUpperBound(new TypeBinding[]{u,wildV.bound});

-						if (lub == null) return null;

-						return environment().createWildcard(genericType, rank, lub, Wildcard.EXTENDS);	

-					// U, ? super V

-					case Wildcard.SUPER :

-						TypeBinding[] glb = greaterLowerBound(new TypeBinding[]{u,wildV.bound});

-						if (glb == null) return null;

-						return environment().createWildcard(genericType, rank, glb[0], Wildcard.SUPER);	// TODO (philippe) need to capture entire bounds

-					case Wildcard.UNBOUND :

-				}

-			}

-		} else if (u.isWildcard()) {

-			WildcardBinding wildU = (WildcardBinding) u;

-			switch (wildU.kind) {

-				// U, ? extends V

-				case Wildcard.EXTENDS :

-					TypeBinding lub = lowerUpperBound(new TypeBinding[]{wildU.bound, v});

-					if (lub == null) return null;

-					return environment().createWildcard(genericType, rank, lub, Wildcard.EXTENDS);	

-				// U, ? super V

-				case Wildcard.SUPER :

-					TypeBinding[] glb = greaterLowerBound(new TypeBinding[]{wildU.bound, v});

-					if (glb == null) return null;

-					return environment().createWildcard(genericType, rank, glb[0], Wildcard.SUPER); // TODO (philippe) need to capture entire bounds		

-				case Wildcard.UNBOUND :

-			}

-		}

-		TypeBinding lub = lowerUpperBound(new TypeBinding[]{u,v});

-		if (lub == null) return null;

-		return environment().createWildcard(genericType, rank, lub, Wildcard.EXTENDS);

-	}

-

-	// 15.12.2

-	public TypeBinding lowerUpperBound(TypeBinding[] types) {

-		

-		ArrayList invocations = new ArrayList(1);

-		TypeBinding mec = minimalErasedCandidate(types, invocations);

-		return leastContainingInvocation(mec, invocations);

-	}

-	

-	public final MethodScope methodScope() {

-		Scope scope = this;

-		do {

-			if (scope instanceof MethodScope)

-				return (MethodScope) scope;

-			scope = scope.parent;

-		} while (scope != null);

-		return null;

-	}

-

-	/**

-	 * Returns the most specific type compatible with all given types.

-	 * (i.e. most specific common super type)

-	 * If no types is given, will return VoidBinding. If not compatible 

-	 * reference type is found, returns null.

-	 */

-	private TypeBinding minimalErasedCandidate(TypeBinding[] types, List invocations) {

-		Map allInvocations = new HashMap(2);

-		int length = types.length;

-		int indexOfFirst = -1, actualLength = 0;

-		for (int i = 0; i < length; i++) {

-			TypeBinding type = types[i];

-			if (type == null) continue;

-			if (type.isBaseType()) return null;

-			if (indexOfFirst < 0) indexOfFirst = i;

-			actualLength ++;

-		}

-		switch (actualLength) {

-			case 0: return VoidBinding;

-			case 1: return types[indexOfFirst];

-		}

-

-		// record all supertypes of type

-		// intersect with all supertypes of otherType

-		TypeBinding firstType = types[indexOfFirst];

-		TypeBinding[] superTypes;

-		int superLength;

-		if (firstType.isBaseType()) {

-			return null; 

-		} else if (firstType.isArrayType()) {

-			superLength = 4;

-			if (firstType.erasure() != firstType) {

-				ArrayList someInvocations = new ArrayList(1);

-				someInvocations.add(firstType);

-				allInvocations.put(firstType.erasure(), someInvocations);

-			}

-			superTypes = new TypeBinding[] {

-					firstType.erasure(), 

-					getJavaIoSerializable(),

-					getJavaLangCloneable(),

-					getJavaLangObject(),

-			};

-		} else {

-			ArrayList typesToVisit = new ArrayList(5);

-			if (firstType.erasure() != firstType) {

-				ArrayList someInvocations = new ArrayList(1);

-				someInvocations.add(firstType);

-				allInvocations.put(firstType.erasure(), someInvocations);

-			}			

-			typesToVisit.add(firstType.erasure());

-			ReferenceBinding currentType = (ReferenceBinding)firstType;

-			for (int i = 0, max = 1; i < max; i++) {

-				currentType = (ReferenceBinding) typesToVisit.get(i);

-				TypeBinding itsSuperclass = currentType.superclass();

-				if (itsSuperclass != null) {

-					TypeBinding itsSuperclassErasure = itsSuperclass.erasure();

-					if (!typesToVisit.contains(itsSuperclassErasure)) {

-						if (itsSuperclassErasure != itsSuperclass) {

-							ArrayList someInvocations = new ArrayList(1);

-							someInvocations.add(itsSuperclass);

-							allInvocations.put(itsSuperclassErasure, someInvocations);

-						}

-						typesToVisit.add(itsSuperclassErasure);

-						max++;

-					}

-				}

-				ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-				for (int j = 0, count = itsInterfaces.length; j < count; j++) {

-					TypeBinding itsInterface = itsInterfaces[j];

-					TypeBinding itsInterfaceErasure = itsInterface.erasure();

-					if (!typesToVisit.contains(itsInterfaceErasure)) {

-						if (itsInterfaceErasure != itsInterface) {

-							ArrayList someInvocations = new ArrayList(1);

-							someInvocations.add(itsInterface);

-							allInvocations.put(itsInterfaceErasure, someInvocations);

-						}						

-						typesToVisit.add(itsInterfaceErasure);

-						max++;

-					}

-				}

-			}

-			superLength = typesToVisit.size();

-			superTypes = new TypeBinding[superLength];

-			typesToVisit.toArray(superTypes);

-		}

-		int remaining = superLength;

-		nextOtherType: for (int i = indexOfFirst+1; i < length; i++) {

-			TypeBinding otherType = types[i];

-			if (otherType == null)

-				continue nextOtherType;

-			else if (otherType.isArrayType()) {

-				nextSuperType: for (int j = 0; j < superLength; j++) {

-					TypeBinding superType = superTypes[j];

-					if (superType == null || superType == otherType) continue nextSuperType;

-					switch (superType.id) {

-						case T_JavaIoSerializable :

-						case T_JavaLangCloneable :

-						case T_JavaLangObject :

-							continue nextSuperType;

-					}

-					superTypes[j] = null;

-					if (--remaining == 0) return null;

-					

-				}

-				continue nextOtherType;

-			}

-			ReferenceBinding otherRefType = (ReferenceBinding) otherType;

-			nextSuperType: for (int j = 0; j < superLength; j++) {

-				TypeBinding superType = superTypes[j];

-				if (superType == null) continue nextSuperType;

-				if (otherRefType.erasure().isCompatibleWith(superType)) {

-					TypeBinding match = otherRefType.findSuperTypeErasingTo((ReferenceBinding)superType);

-						if (match != null && match.erasure() != match) { // match can be null: interface.findSuperTypeErasingTo(Object)

-							ArrayList someInvocations = (ArrayList) allInvocations.get(superType);

-							if (someInvocations == null) someInvocations = new ArrayList(1);

-							someInvocations.add(match);

-							allInvocations.put(superType, someInvocations);

-						}						

-					break nextSuperType;

-				} else {

-					superTypes[j] = null;

-					if (--remaining == 0) return null;

-				}

-			}				

-		}

-		// per construction, first non-null supertype is most specific common supertype

-		for (int i = 0; i < superLength; i++) {

-			TypeBinding superType = superTypes[i];

-			if (superType != null) {

-				List matchingInvocations = (List)allInvocations.get(superType);

-				if (matchingInvocations != null) invocations.addAll(matchingInvocations);

-				return superType;

-			}

-		}

-		return null;

-	}

-	

-	// Internal use only

-	/* All methods in visible are acceptable matches for the method in question...

-	* The methods defined by the receiver type appear before those defined by its

-	* superclass and so on. We want to find the one which matches best.

-	*

-	* Since the receiver type is a class, we know each method's declaring class is

-	* either the receiver type or one of its superclasses. It is an error if the best match

-	* is defined by a superclass, when a lesser match is defined by the receiver type

-	* or a closer superclass.

-	*/

-	protected final MethodBinding mostSpecificClassMethodBinding(MethodBinding[] visible, int visibleSize, InvocationSite invocationSite) {

-		MethodBinding problemMethod = null;

-		MethodBinding previous = null;

-		nextVisible : for (int i = 0; i < visibleSize; i++) {

-			MethodBinding method = visible[i];

-			if (previous != null && method.declaringClass != previous.declaringClass)

-				break; // cannot answer a method farther up the hierarchy than the first method found

-

-			if (!method.isStatic()) previous = method; // no ambiguity for static methods

-			for (int j = 0; j < visibleSize; j++) {

-				if (i == j) continue;

-				MethodBinding compatibleMethod = computeCompatibleMethod(visible[j], method.parameters, invocationSite);

-				if (compatibleMethod == null || !compatibleMethod.isValidBinding()) {

-					if (problemMethod == null)

-						problemMethod = compatibleMethod;

-					continue nextVisible;

-				}

-			}

-			compilationUnitScope().recordTypeReferences(method.thrownExceptions);

-			return method;

-		}

-		if (problemMethod == null)

-			return new ProblemMethodBinding(visible[0].selector, visible[0].parameters, Ambiguous);

-		return problemMethod;

-	}

-	

-	/**

-	 * Returns the most specific type compatible with all given types.

-	 * (i.e. most specific common super type)

-	 * If no types is given, will return VoidBinding. If not compatible 

-	 * reference type is found, returns null.

-	 * @deprecated - use lowerUpperBound(TypeBinding[]) instead

-	 */

-	public TypeBinding mostSpecificCommonType(TypeBinding[] types) {

-		int length = types.length;

-		int indexOfFirst = -1, actualLength = 0;

-		for (int i = 0; i < length; i++) {

-			TypeBinding type = types[i];

-			if (type == null) continue;

-			if (type.isBaseType()) return null;

-			if (indexOfFirst < 0) indexOfFirst = i;

-			actualLength ++;

-		}

-		switch (actualLength) {

-			case 0: return VoidBinding;

-			case 1: return types[indexOfFirst];

-		}

-

-		// record all supertypes of type

-		// intersect with all supertypes of otherType

-		TypeBinding firstType = types[indexOfFirst];

-		TypeBinding[] superTypes;

-		int superLength;

-		if (firstType.isBaseType()) {

-			return null; 

-		} else if (firstType.isArrayType()) {

-			superLength = 4;

-			superTypes = new TypeBinding[] {

-					firstType, 

-					getJavaIoSerializable(),

-					getJavaLangCloneable(),

-					getJavaLangObject(),

-			};

-		} else {

-			ArrayList typesToVisit = new ArrayList(5);

-			typesToVisit.add(firstType);

-			ReferenceBinding currentType = (ReferenceBinding)firstType;

-			for (int i = 0, max = 1; i < max; i++) {

-				currentType = (ReferenceBinding) typesToVisit.get(i);

-				ReferenceBinding itsSuperclass = currentType.superclass();

-				if (itsSuperclass != null && !typesToVisit.contains(itsSuperclass)) {

-					typesToVisit.add(itsSuperclass);

-					max++;

-				}

-				ReferenceBinding[] itsInterfaces = currentType.superInterfaces();

-				for (int j = 0, count = itsInterfaces.length; j < count; j++)

-					if (!typesToVisit.contains(itsInterfaces[j])) {

-						typesToVisit.add(itsInterfaces[j]);

-						max++;

-					}

-			}

-			superLength = typesToVisit.size();

-			superTypes = new TypeBinding[superLength];

-			typesToVisit.toArray(superTypes);

-		}

-		int remaining = superLength;

-		nextOtherType: for (int i = indexOfFirst+1; i < length; i++) {

-			TypeBinding otherType = types[i];

-			if (otherType == null)

-				continue nextOtherType;

-			else if (otherType.isArrayType()) {

-				nextSuperType: for (int j = 0; j < superLength; j++) {

-					TypeBinding superType = superTypes[j];

-					if (superType == null || superType == otherType) continue nextSuperType;

-					switch (superType.id) {

-						case T_JavaIoSerializable :

-						case T_JavaLangCloneable :

-						case T_JavaLangObject :

-							continue nextSuperType;

-					}

-					superTypes[j] = null;

-					if (--remaining == 0) return null;

-					

-				}

-				continue nextOtherType;

-			}

-			ReferenceBinding otherRefType = (ReferenceBinding) otherType;

-			nextSuperType: for (int j = 0; j < superLength; j++) {

-				TypeBinding superType = superTypes[j];

-				if (superType == null) continue nextSuperType;

-				if (otherRefType.isCompatibleWith(superType)) {

-					break nextSuperType;

-				} else {

-					superTypes[j] = null;

-					if (--remaining == 0) return null;

-				}

-			}				

-		}

-		// per construction, first non-null supertype is most specific common supertype

-		for (int i = 0; i < superLength; i++) {

-			TypeBinding superType = superTypes[i];

-			if (superType != null) return superType;

-		}

-		return null;

-	}

-

-	// Internal use only

-	/* All methods in visible are acceptable matches for the method in question...

-	* Since the receiver type is an interface, we ignore the possibility that 2 inherited

-	* but unrelated superinterfaces may define the same method in acceptable but

-	* not identical ways... we just take the best match that we find since any class which

-	* implements the receiver interface MUST implement all signatures for the method...

-	* in which case the best match is correct.

-	*

-	* NOTE: This is different than javac... in the following example, the message send of

-	* bar(X) in class Y is supposed to be ambiguous. But any class which implements the

-	* interface I MUST implement both signatures for bar. If this class was the receiver of

-	* the message send instead of the interface I, then no problem would be reported.

-	*

-	interface I1 {

-		void bar(J j);

-	}

-	interface I2 {

-	//	void bar(J j);

-		void bar(Object o);

-	}

-	interface I extends I1, I2 {}

-	interface J {}

-	

-	class X implements J {}

-	

-	class Y extends X {

-		public void foo(I i, X x) { i.bar(x); }

-	}

-	*/

-	protected final MethodBinding mostSpecificInterfaceMethodBinding(MethodBinding[] visible, int visibleSize, InvocationSite invocationSite) {

-		MethodBinding problemMethod = null;

-		nextVisible : for (int i = 0; i < visibleSize; i++) {

-			MethodBinding method = visible[i];

-			for (int j = 0; j < visibleSize; j++) {

-				if (i == j) continue;

-				MethodBinding compatibleMethod = computeCompatibleMethod(visible[j], method.parameters, invocationSite);

-				if (compatibleMethod == null || !compatibleMethod.isValidBinding()) {

-					if (problemMethod == null)

-						problemMethod = compatibleMethod;

-					continue nextVisible;

-				}

-			}

-			compilationUnitScope().recordTypeReferences(method.thrownExceptions);

-			return method;

-		}

-		if (problemMethod == null)

-			return new ProblemMethodBinding(visible[0].selector, visible[0].parameters, Ambiguous);

-		return problemMethod;

-	}

-

-	// Internal use only

-	/* All methods in visible are acceptable matches for the method in question...

-	* Since 1.4, the inherited ambiguous case has been removed from mostSpecificClassMethodBinding

-	*/

-	protected final MethodBinding mostSpecificMethodBinding(MethodBinding[] visible, int visibleSize, InvocationSite invocationSite) {

-		MethodBinding method = null;

-		nextVisible : for (int i = 0; i < visibleSize; i++) {

-			method = visible[i];

-			for (int j = 0; j < visibleSize; j++) {

-				if (i == j) continue;

-				MethodBinding compatibleMethod = computeCompatibleMethod(visible[j], method.parameters, invocationSite);

-				if (compatibleMethod == null)

-					continue nextVisible;

-			}

-			compilationUnitScope().recordTypeReferences(method.thrownExceptions);

-			return method;

-		}

-		return new ProblemMethodBinding(visible[0].selector, visible[0].parameters, Ambiguous);

-	}	

-

-	public final ClassScope outerMostClassScope() {

-		ClassScope lastClassScope = null;

-		Scope scope = this;

-		do {

-			if (scope instanceof ClassScope)

-				lastClassScope = (ClassScope) scope;

-			scope = scope.parent;

-		} while (scope != null);

-		return lastClassScope; // may answer null if no class around

-	}

-

-	public final MethodScope outerMostMethodScope() {

-		MethodScope lastMethodScope = null;

-		Scope scope = this;

-		do {

-			if (scope instanceof MethodScope)

-				lastMethodScope = (MethodScope) scope;

-			scope = scope.parent;

-		} while (scope != null);

-		return lastMethodScope; // may answer null if no method around

-	}

-

-	public abstract ProblemReporter problemReporter();

-

-	public final CompilationUnitDeclaration referenceCompilationUnit() {

-		Scope scope, unitScope = this;

-		while ((scope = unitScope.parent) != null)

-			unitScope = scope;

-		return ((CompilationUnitScope) unitScope).referenceContext;

-	}

-	// start position in this scope - for ordering scopes vs. variables

-	int startIndex() {

-		return 0;

-	}

-	

-	/**

-	 * Returns the immediately enclosing switchCase statement (carried by closest blockScope),

-	 */

-	public CaseStatement switchCase() {

-		Scope scope = this;

-		do {

-			if (scope instanceof BlockScope)

-				return ((BlockScope) scope).switchCase;

-			scope = scope.parent;

-		} while (scope != null);

-		return null;

-	}

-	/*

-	 * Unboxing primitive

-	 */

-	public int unboxing(int id) {

-		switch (id) {

-			case T_JavaLangInteger :

-				return T_int;

-			case T_JavaLangByte :

-				return T_byte;

-			case T_JavaLangShort :

-				return T_short;

-			case T_JavaLangCharacter :

-				return T_char;

-			case T_JavaLangLong :

-				return T_long;

-			case T_JavaLangFloat :

-				return T_float;

-			case T_JavaLangDouble :

-				return T_double;

-			case T_JavaLangBoolean :

-				return T_boolean;

-			case T_JavaLangVoid :

-				return T_void;

-		}

-		return id;

-	}

-	/*

-	 * Unboxing primitive

-	 */

-	public TypeBinding unboxing(TypeBinding type) {

-		switch (type.id) {

-			case T_JavaLangInteger :

-				return IntBinding;

-			case T_JavaLangByte :

-				return ByteBinding;

-			case T_JavaLangShort :

-				return ShortBinding;		

-			case T_JavaLangCharacter :

-				return CharBinding;				

-			case T_JavaLangLong :

-				return LongBinding;

-			case T_JavaLangFloat :

-				return FloatBinding;

-			case T_JavaLangDouble :

-				return DoubleBinding;

-			case T_JavaLangBoolean :

-				return BooleanBinding;

-			case T_JavaLangVoid :

-				return VoidBinding;

-		}

-		return type;

-	}		

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SignatureWrapper.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SignatureWrapper.js
deleted file mode 100644
index 3fe6039..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SignatureWrapper.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public class SignatureWrapper {

-	public char[] signature;

-	public int start;

-	public int end;

-	public int bracket;

-

-	public SignatureWrapper(char[] signature) {

-		this.signature = signature;

-		this.start = 0;

-		this.end = this.bracket = -1;

-	}

-	public boolean atEnd() {

-		return this.start < 0 || this.start >= this.signature.length;

-	}

-	public int computeEnd() {

-		int index = this.start;

-		while (this.signature[index] == '[')

-			index++;

-		switch (this.signature[index]) {

-			case 'L' :

-			case 'T' :

-				this.end = CharOperation.indexOf(';', this.signature, this.start);

-				if (this.bracket <= this.start) // already know it if its > start

-					this.bracket = CharOperation.indexOf('<', this.signature, this.start);

-		

-				if (this.bracket > this.start && this.bracket < this.end)

-					this.end = this.bracket;

-				else if (this.end == -1)

-					this.end = this.signature.length + 1;

-				break;

-			default :

-				this.end = this.start;

-		}

-

-		this.start = this.end + 1; // skip ';'

-		return this.end;

-	}

-	public char[] nextWord() {

-		this.end = CharOperation.indexOf(';', this.signature, this.start);

-		if (this.bracket <= this.start) // already know it if its > start

-			this.bracket = CharOperation.indexOf('<', this.signature, this.start);

-		int dot = CharOperation.indexOf('.', this.signature, this.start);

-

-		if (this.bracket > this.start && this.bracket < this.end)

-			this.end = this.bracket;

-		if (dot > this.start && dot < this.end)

-			this.end = dot;

-

-		return CharOperation.subarray(this.signature, this.start, this.start = this.end); // skip word

-	}

-	public String toString() {

-		return new String(this.signature) + " @ " + this.start; //$NON-NLS-1$

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SourceTypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SourceTypeBinding.js
deleted file mode 100644
index 1fe2d0f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SourceTypeBinding.js
+++ /dev/null
@@ -1,1162 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import java.util.HashMap;

-import java.util.Hashtable;

-import java.util.Iterator;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AnnotationTypeMemberDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Argument;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AssertStatement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ConstructorDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.MethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeParameter;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-

-public class SourceTypeBinding extends ReferenceBinding {

-	public ReferenceBinding superclass;

-	public ReferenceBinding[] superInterfaces;

-	public FieldBinding[] fields;

-	public MethodBinding[] methods;

-	public ReferenceBinding[] memberTypes;

-    public TypeVariableBinding[] typeVariables;

-

-	public ClassScope scope;

-

-	// Synthetics are separated into 5 categories: methods, super methods, fields, class literals, changed declaring type bindings and bridge methods

-	public final static int METHOD_EMUL = 0;

-	public final static int FIELD_EMUL = 1;

-	public final static int CLASS_LITERAL_EMUL = 2;

-	public final static int RECEIVER_TYPE_EMUL = 3;

-	HashMap[] synthetics;

-	char[] genericReferenceTypeSignature;

-	

-	

-public SourceTypeBinding(char[][] compoundName, PackageBinding fPackage, ClassScope scope) {

-	this.compoundName = compoundName;

-	this.fPackage = fPackage;

-	this.fileName = scope.referenceCompilationUnit().getFileName();

-	this.modifiers = scope.referenceContext.modifiers;

-	this.sourceName = scope.referenceContext.name;

-	this.scope = scope;

-

-	// expect the fields & methods to be initialized correctly later

-	this.fields = NoFields;

-	this.methods = NoMethods;

-

-	computeId();

-}

-private void addDefaultAbstractMethod(MethodBinding abstractMethod) {

-	MethodBinding defaultAbstract = new MethodBinding(

-		abstractMethod.modifiers | AccDefaultAbstract,

-		abstractMethod.selector,

-		abstractMethod.returnType,

-		abstractMethod.parameters,

-		abstractMethod.thrownExceptions,

-		this);

-

-	MethodBinding[] temp = new MethodBinding[methods.length + 1];

-	System.arraycopy(methods, 0, temp, 0, methods.length);

-	temp[methods.length] = defaultAbstract;

-	methods = temp;

-}

-public void addDefaultAbstractMethods() {

-	if ((tagBits & KnowsDefaultAbstractMethods) != 0) return;

-

-	tagBits |= KnowsDefaultAbstractMethods;

-

-	if (isClass() && isAbstract()) {

-		if (fPackage.environment.options.targetJDK >= ClassFileConstants.JDK1_2) return; // no longer added for post 1.2 targets

-

-		ReferenceBinding[][] interfacesToVisit = new ReferenceBinding[5][];

-		int lastPosition = 0;

-		interfacesToVisit[lastPosition] = superInterfaces();

-

-		for (int i = 0; i <= lastPosition; i++) {

-			ReferenceBinding[] interfaces = interfacesToVisit[i];

-			for (int j = 0, length = interfaces.length; j < length; j++) {

-				ReferenceBinding superType = interfaces[j];

-				if (superType.isValidBinding()) {

-					MethodBinding[] superMethods = superType.methods();

-					for (int m = superMethods.length; --m >= 0;) {

-						MethodBinding method = superMethods[m];

-						if (!implementsMethod(method))

-							addDefaultAbstractMethod(method);

-					}

-

-					ReferenceBinding[] itsInterfaces = superType.superInterfaces();

-					if (itsInterfaces != NoSuperInterfaces) {

-						if (++lastPosition == interfacesToVisit.length)

-							System.arraycopy(interfacesToVisit, 0, interfacesToVisit = new ReferenceBinding[lastPosition * 2][], 0, lastPosition);

-						interfacesToVisit[lastPosition] = itsInterfaces;

-					}

-				}

-			}

-		}

-	}

-}

-/* Add a new synthetic field for <actualOuterLocalVariable>.

-*	Answer the new field or the existing field if one already existed.

-*/

-

-public FieldBinding addSyntheticField(LocalVariableBinding actualOuterLocalVariable) {

-	if (synthetics == null) {

-		synthetics = new HashMap[4];

-	}

-	if (synthetics[FIELD_EMUL] == null) {

-		synthetics[FIELD_EMUL] = new HashMap(5);

-	}

-	

-	FieldBinding synthField = (FieldBinding) synthetics[FIELD_EMUL].get(actualOuterLocalVariable);

-	if (synthField == null) {

-		synthField = new SyntheticFieldBinding(

-			CharOperation.concat(SyntheticArgumentBinding.OuterLocalPrefix, actualOuterLocalVariable.name), 

-			actualOuterLocalVariable.type, 

-			AccPrivate | AccFinal | AccSynthetic, 

-			this, 

-			Constant.NotAConstant,

-			synthetics[FIELD_EMUL].size());

-		synthetics[FIELD_EMUL].put(actualOuterLocalVariable, synthField);

-	}

-

-	// ensure there is not already such a field defined by the user

-	boolean needRecheck;

-	int index = 1;

-	do {

-		needRecheck = false;

-		FieldBinding existingField;

-		if ((existingField = this.getField(synthField.name, true /*resolve*/)) != null) {

-			TypeDeclaration typeDecl = scope.referenceContext;

-			for (int i = 0, max = typeDecl.fields.length; i < max; i++) {

-				FieldDeclaration fieldDecl = typeDecl.fields[i];

-				if (fieldDecl.binding == existingField) {

-					synthField.name = CharOperation.concat(

-						SyntheticArgumentBinding.OuterLocalPrefix,

-						actualOuterLocalVariable.name,

-						("$" + String.valueOf(index++)).toCharArray()); //$NON-NLS-1$

-					needRecheck = true;

-					break;

-				}

-			}

-		}

-	} while (needRecheck);

-	return synthField;

-}

-/* Add a new synthetic field for <enclosingType>.

-*	Answer the new field or the existing field if one already existed.

-*/

-

-public FieldBinding addSyntheticField(ReferenceBinding enclosingType) {

-

-	if (synthetics == null) {

-		synthetics = new HashMap[4];

-	}

-	if (synthetics[FIELD_EMUL] == null) {

-		synthetics[FIELD_EMUL] = new HashMap(5);

-	}

-

-	FieldBinding synthField = (FieldBinding) synthetics[FIELD_EMUL].get(enclosingType);

-	if (synthField == null) {

-		synthField = new SyntheticFieldBinding(

-			CharOperation.concat(

-				SyntheticArgumentBinding.EnclosingInstancePrefix,

-				String.valueOf(enclosingType.depth()).toCharArray()),

-			enclosingType,

-			AccDefault | AccFinal | AccSynthetic,

-			this,

-			Constant.NotAConstant,

-			synthetics[FIELD_EMUL].size());

-		synthetics[FIELD_EMUL].put(enclosingType, synthField);

-	}

-	// ensure there is not already such a field defined by the user

-	FieldBinding existingField;

-	if ((existingField = this.getField(synthField.name, true /*resolve*/)) != null) {

-		TypeDeclaration typeDecl = scope.referenceContext;

-		for (int i = 0, max = typeDecl.fields.length; i < max; i++) {

-			FieldDeclaration fieldDecl = typeDecl.fields[i];

-			if (fieldDecl.binding == existingField) {

-				scope.problemReporter().duplicateFieldInType(this, fieldDecl);

-				break;

-			}

-		}

-	}		

-	return synthField;

-}

-/* Add a new synthetic field for a class literal access.

-*	Answer the new field or the existing field if one already existed.

-*/

-

-public FieldBinding addSyntheticField(TypeBinding targetType, BlockScope blockScope) {

-

-	if (synthetics == null) {

-		synthetics = new HashMap[4];

-	}

-	if (synthetics[CLASS_LITERAL_EMUL] == null) {

-		synthetics[CLASS_LITERAL_EMUL] = new HashMap(5);

-	}

-

-	// use a different table than FIELDS, given there might be a collision between emulation of X.this$0 and X.class.

-	FieldBinding synthField = (FieldBinding) synthetics[CLASS_LITERAL_EMUL].get(targetType);

-	if (synthField == null) {

-		synthField = new SyntheticFieldBinding(

-			("class$" + synthetics[CLASS_LITERAL_EMUL].size()).toCharArray(), //$NON-NLS-1$

-			blockScope.getJavaLangClass(),

-			AccDefault | AccStatic | AccSynthetic,

-			this,

-			Constant.NotAConstant,

-			synthetics[CLASS_LITERAL_EMUL].size());

-		synthetics[CLASS_LITERAL_EMUL].put(targetType, synthField);

-	}

-	// ensure there is not already such a field defined by the user

-	FieldBinding existingField;

-	if ((existingField = this.getField(synthField.name, true /*resolve*/)) != null) {

-		TypeDeclaration typeDecl = blockScope.referenceType();

-		for (int i = 0, max = typeDecl.fields.length; i < max; i++) {

-			FieldDeclaration fieldDecl = typeDecl.fields[i];

-			if (fieldDecl.binding == existingField) {

-				blockScope.problemReporter().duplicateFieldInType(this, fieldDecl);

-				break;

-			}

-		}

-	}		

-	return synthField;

-}

-

-/* Add a new synthetic field for the emulation of the assert statement.

-*	Answer the new field or the existing field if one already existed.

-*/

-public FieldBinding addSyntheticField(AssertStatement assertStatement, BlockScope blockScope) {

-

-	if (synthetics == null) {

-		synthetics = new HashMap[4];

-	}

-	if (synthetics[FIELD_EMUL] == null) {

-		synthetics[FIELD_EMUL] = new HashMap(5);

-	}

-

-	FieldBinding synthField = (FieldBinding) synthetics[FIELD_EMUL].get("assertionEmulation"); //$NON-NLS-1$

-	if (synthField == null) {

-		synthField = new SyntheticFieldBinding(

-			"$assertionsDisabled".toCharArray(), //$NON-NLS-1$

-			BooleanBinding,

-			AccDefault | AccStatic | AccSynthetic | AccFinal,

-			this,

-			Constant.NotAConstant,

-			synthetics[FIELD_EMUL].size());

-		synthetics[FIELD_EMUL].put("assertionEmulation", synthField); //$NON-NLS-1$

-	}

-	// ensure there is not already such a field defined by the user

-	// ensure there is not already such a field defined by the user

-	boolean needRecheck;

-	int index = 0;

-	do {

-		needRecheck = false;

-		FieldBinding existingField;

-		if ((existingField = this.getField(synthField.name, true /*resolve*/)) != null) {

-			TypeDeclaration typeDecl = scope.referenceContext;

-			for (int i = 0, max = typeDecl.fields.length; i < max; i++) {

-				FieldDeclaration fieldDecl = typeDecl.fields[i];

-				if (fieldDecl.binding == existingField) {

-					synthField.name = CharOperation.concat(

-						"$assertionsDisabled".toCharArray(), //$NON-NLS-1$

-						("_" + String.valueOf(index++)).toCharArray()); //$NON-NLS-1$

-					needRecheck = true;

-					break;

-				}

-			}

-		}

-	} while (needRecheck);

-	return synthField;

-}

-

-/* Add a new synthetic access method for read/write access to <targetField>.

-	Answer the new method or the existing method if one already existed.

-*/

-

-public SyntheticAccessMethodBinding addSyntheticMethod(FieldBinding targetField, boolean isReadAccess) {

-

-	if (synthetics == null) {

-		synthetics = new HashMap[4];

-	}

-	if (synthetics[METHOD_EMUL] == null) {

-		synthetics[METHOD_EMUL] = new HashMap(5);

-	}

-

-	SyntheticAccessMethodBinding accessMethod = null;

-	SyntheticAccessMethodBinding[] accessors = (SyntheticAccessMethodBinding[]) synthetics[METHOD_EMUL].get(targetField);

-	if (accessors == null) {

-		accessMethod = new SyntheticAccessMethodBinding(targetField, isReadAccess, this);

-		synthetics[METHOD_EMUL].put(targetField, accessors = new SyntheticAccessMethodBinding[2]);

-		accessors[isReadAccess ? 0 : 1] = accessMethod;		

-	} else {

-		if ((accessMethod = accessors[isReadAccess ? 0 : 1]) == null) {

-			accessMethod = new SyntheticAccessMethodBinding(targetField, isReadAccess, this);

-			accessors[isReadAccess ? 0 : 1] = accessMethod;

-		}

-	}

-	return accessMethod;

-}

-/* Add a new synthetic access method for access to <targetMethod>.

- * Must distinguish access method used for super access from others (need to use invokespecial bytecode)

-	Answer the new method or the existing method if one already existed.

-*/

-

-public SyntheticAccessMethodBinding addSyntheticMethod(MethodBinding targetMethod, boolean isSuperAccess) {

-

-	if (synthetics == null) {

-		synthetics = new HashMap[4];

-	}

-	if (synthetics[METHOD_EMUL] == null) {

-		synthetics[METHOD_EMUL] = new HashMap(5);

-	}

-

-	SyntheticAccessMethodBinding accessMethod = null;

-	SyntheticAccessMethodBinding[] accessors = (SyntheticAccessMethodBinding[]) synthetics[METHOD_EMUL].get(targetMethod);

-	if (accessors == null) {

-		accessMethod = new SyntheticAccessMethodBinding(targetMethod, isSuperAccess, this);

-		synthetics[METHOD_EMUL].put(targetMethod, accessors = new SyntheticAccessMethodBinding[2]);

-		accessors[isSuperAccess ? 0 : 1] = accessMethod;		

-	} else {

-		if ((accessMethod = accessors[isSuperAccess ? 0 : 1]) == null) {

-			accessMethod = new SyntheticAccessMethodBinding(targetMethod, isSuperAccess, this);

-			accessors[isSuperAccess ? 0 : 1] = accessMethod;

-		}

-	}

-	return accessMethod;

-}

-/* 

- * Record the fact that bridge methods need to be generated to override certain inherited methods

- */

-public SyntheticAccessMethodBinding addSyntheticBridgeMethod(MethodBinding inheritedMethodToBridge, MethodBinding localTargetMethod) {

-    

-	if (synthetics == null) {

-		synthetics = new HashMap[4];

-	}

-	if (synthetics[METHOD_EMUL] == null) {

-		synthetics[METHOD_EMUL] = new HashMap(5);

-	} else {

-		// TODO (philippe) MethodBindings do not implement equals() so how do we prevent adding 2 'equal' inherited methods?

-		// check to see if there is another equivalent inheritedMethod already added

-		Iterator synthMethods = synthetics[METHOD_EMUL].keySet().iterator();

-		while (synthMethods.hasNext()) {

-			Object method = synthMethods.next();

-			if (method instanceof MethodBinding)

-				if (inheritedMethodToBridge.areParameterErasuresEqual((MethodBinding) method))

-					if (inheritedMethodToBridge.returnType.erasure() == ((MethodBinding) method).returnType.erasure())

-						return null;

-		}

-	}

-

-	SyntheticAccessMethodBinding accessMethod = null;

-	SyntheticAccessMethodBinding[] accessors = (SyntheticAccessMethodBinding[]) synthetics[METHOD_EMUL].get(inheritedMethodToBridge);

-	if (accessors == null) {

-		accessMethod = new SyntheticAccessMethodBinding(inheritedMethodToBridge, localTargetMethod);

-		synthetics[METHOD_EMUL].put(inheritedMethodToBridge, accessors = new SyntheticAccessMethodBinding[2]);

-		accessors[1] = accessMethod;		

-	} else {

-		if ((accessMethod = accessors[1]) == null) {

-			accessMethod = new SyntheticAccessMethodBinding(inheritedMethodToBridge, localTargetMethod);

-			accessors[1] = accessMethod;

-		}

-	}

-	return accessMethod;

-}

-void faultInTypesForFieldsAndMethods() {

-	fields();

-	methods();

-

-	for (int i = 0, length = memberTypes.length; i < length; i++)

-		((SourceTypeBinding) memberTypes[i]).faultInTypesForFieldsAndMethods();

-}

-

-// NOTE: the type of each field of a source type is resolved when needed

-public FieldBinding[] fields() {

-	int failed = 0;

-	try {

-		for (int i = 0, length = fields.length; i < length; i++) {

-			if (resolveTypeFor(fields[i]) == null) {

-				fields[i] = null;

-				failed++;

-			}

-		}

-	} finally {

-		if (failed > 0) {

-			// ensure fields are consistent reqardless of the error

-			int newSize = fields.length - failed;

-			if (newSize == 0)

-				return fields = NoFields;

-	

-			FieldBinding[] newFields = new FieldBinding[newSize];

-			for (int i = 0, j = 0, length = fields.length; i < length; i++)

-				if (fields[i] != null)

-					newFields[j++] = fields[i];

-			fields = newFields;

-		}

-	}

-	return fields;

-}

-/**

- * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#genericTypeSignature()

- */

-public char[] genericTypeSignature() {

-    if (this.genericReferenceTypeSignature == null) {

-        if (this.typeVariables == NoTypeVariables) {

-	        this.genericReferenceTypeSignature = this.signature();

-        } else {

-		    char[] typeSig = this.signature();

-		    StringBuffer sig = new StringBuffer(10);

-		    for (int i = 0; i < typeSig.length-1; i++) { // copy all but trailing semicolon

-		    	sig.append(typeSig[i]);

-		    }

-		    sig.append('<');

-		    for (int i = 0, length = this.typeVariables.length; i < length; i++) {

-		        sig.append(this.typeVariables[i].genericTypeSignature());

-		    }

-		    sig.append(">;"); //$NON-NLS-1$

-			int sigLength = sig.length();

-			this.genericReferenceTypeSignature = new char[sigLength];

-			sig.getChars(0, sigLength, this.genericReferenceTypeSignature, 0);		    

-	    }

-    }

-    return this.genericReferenceTypeSignature;

-}

-/**

- * <param1 ... paramN>superclass superinterface1 ... superinterfaceN

- * <T:LY<TT;>;U:Ljava/lang/Object;V::Ljava/lang/Runnable;:Ljava/lang/Cloneable;:Ljava/util/Map;>Ljava/lang/Exception;Ljava/lang/Runnable;

- */

-public char[] genericSignature() {

-    StringBuffer sig = null;

-	if (this.typeVariables != NoTypeVariables) {

-	    sig = new StringBuffer(10);

-	    sig.append('<');

-	    for (int i = 0, length = this.typeVariables.length; i < length; i++) {

-	        sig.append(this.typeVariables[i].genericSignature());

-	    }

-	    sig.append('>');

-	} else {

-	    // could still need a signature if any of supertypes is parameterized

-	    noSignature: if (this.superclass == null || !this.superclass.isParameterizedType()) {

-		    for (int i = 0, length = this.superInterfaces.length; i < length; i++) {

-		        if (this.superInterfaces[i].isParameterizedType()) break noSignature;

-		    }        

-	        return null;

-	    }

-	    sig = new StringBuffer(10);

-	}

-	if (this.superclass != null) {

-		sig.append(this.superclass.genericTypeSignature());

-	} else {

-		// interface scenario only (as Object cannot be generic) - 65953

-		sig.append(scope.getJavaLangObject().genericTypeSignature());

-	}

-    for (int i = 0, length = this.superInterfaces.length; i < length; i++) {

-        sig.append(this.superInterfaces[i].genericTypeSignature());

-    }

-	return sig.toString().toCharArray();

-}

-public MethodBinding[] getDefaultAbstractMethods() {

-	int count = 0;

-	for (int i = methods.length; --i >= 0;)

-		if (methods[i].isDefaultAbstract())

-			count++;

-	if (count == 0) return NoMethods;

-

-	MethodBinding[] result = new MethodBinding[count];

-	count = 0;

-	for (int i = methods.length; --i >= 0;)

-		if (methods[i].isDefaultAbstract())

-			result[count++] = methods[i];

-	return result;

-}

-// NOTE: the return type, arg & exception types of each method of a source type are resolved when needed

-

-public MethodBinding getExactConstructor(TypeBinding[] argumentTypes) {

-	int argCount = argumentTypes.length;

-

-	if ((modifiers & AccUnresolved) == 0) { // have resolved all arg types & return type of the methods

-		nextMethod : for (int m = methods.length; --m >= 0;) {

-			MethodBinding method = methods[m];

-			if (method.selector == ConstructorDeclaration.ConstantPoolName && method.parameters.length == argCount) {

-				TypeBinding[] toMatch = method.parameters;

-				for (int p = 0; p < argCount; p++)

-					if (toMatch[p] != argumentTypes[p])

-						continue nextMethod;

-				return method;

-			}

-		}

-	} else {

-		MethodBinding[] constructors = getMethods(ConstructorDeclaration.ConstantPoolName); // takes care of duplicates & default abstract methods

-		nextConstructor : for (int c = constructors.length; --c >= 0;) {

-			MethodBinding constructor = constructors[c];

-			TypeBinding[] toMatch = constructor.parameters;

-			if (toMatch.length == argCount) {

-				for (int p = 0; p < argCount; p++)

-					if (toMatch[p] != argumentTypes[p])

-						continue nextConstructor;

-				return constructor;

-			}

-		}

-	}

-	return null;

-}

-// NOTE: the return type, arg & exception types of each method of a source type are resolved when needed

-// searches up the hierarchy as long as no potential (but not exact) match was found.

-

-public MethodBinding getExactMethod(char[] selector, TypeBinding[] argumentTypes, CompilationUnitScope refScope) {

-	if (refScope != null)

-		refScope.recordTypeReference(this);

-

-	int argCount = argumentTypes.length;

-	int selectorLength = selector.length;

-	boolean foundNothing = true;

-

-	if ((modifiers & AccUnresolved) == 0) { // have resolved all arg types & return type of the methods

-		nextMethod : for (int m = methods.length; --m >= 0;) {

-			MethodBinding method = methods[m];

-			if (method.selector.length == selectorLength && CharOperation.equals(method.selector, selector)) {

-				foundNothing = false; // inner type lookups must know that a method with this name exists

-				if (method.parameters.length == argCount) {

-					TypeBinding[] toMatch = method.parameters;

-					for (int p = 0; p < argCount; p++)

-						if (toMatch[p] != argumentTypes[p])

-							continue nextMethod;

-					return method;

-				}

-			}

-		}

-	} else {

-		MethodBinding[] matchingMethods = getMethods(selector); // takes care of duplicates & default abstract methods

-		foundNothing = matchingMethods == NoMethods;

-		nextMethod : for (int m = matchingMethods.length; --m >= 0;) {

-			MethodBinding method = matchingMethods[m];

-			TypeBinding[] toMatch = method.parameters;

-			if (toMatch.length == argCount) {

-				for (int p = 0; p < argCount; p++)

-					if (toMatch[p] != argumentTypes[p])

-						continue nextMethod;

-				return method;

-			}

-		}

-	}

-

-	if (foundNothing) {

-		if (isInterface()) {

-			 if (superInterfaces.length == 1)

-				return superInterfaces[0].getExactMethod(selector, argumentTypes, refScope);

-		} else if (superclass != null) {

-			return superclass.getExactMethod(selector, argumentTypes, refScope);

-		}

-	}

-	return null;

-}

-

-// NOTE: the type of a field of a source type is resolved when needed

-public FieldBinding getField(char[] fieldName, boolean needResolve) {

-	// always resolve anyway on source types

-	int fieldLength = fieldName.length;

-	for (int i = 0, length = fields.length; i < length; i++) {

-		FieldBinding field = fields[i];

-		if (field.name.length == fieldLength && CharOperation.equals(field.name, fieldName)) {

-			FieldBinding result = null;

-			try {

-				result = resolveTypeFor(field);

-				return result;

-			} finally {

-				if (result == null) {

-					// ensure fields are consistent reqardless of the error

-					int newSize = fields.length - 1;

-					if (newSize == 0) {

-						fields = NoFields;

-					} else {

-						FieldBinding[] newFields = new FieldBinding[newSize];

-						System.arraycopy(fields, 0, newFields, 0, i);

-						System.arraycopy(fields, i + 1, newFields, i, newSize - i);

-						fields = newFields;

-					}

-				}

-			}

-		}

-	}

-	return null;

-}

-

-// NOTE: the return type, arg & exception types of each method of a source type are resolved when needed

-public MethodBinding[] getMethods(char[] selector) {

-	int selectorLength = selector.length;

-	boolean methodsAreResolved = (modifiers & AccUnresolved) == 0; // have resolved all arg types & return type of the methods

-	java.util.ArrayList matchingMethods = null;

-	for (int i = 0, length = methods.length; i < length; i++) {

-		MethodBinding method = methods[i];

-		if (method.selector.length == selectorLength && CharOperation.equals(method.selector, selector)) {

-			if (!methodsAreResolved && resolveTypesFor(method) == null || method.returnType == null) {

-				methods();

-				return getMethods(selector); // try again since the problem methods have been removed

-			}

-			if (matchingMethods == null)

-				matchingMethods = new java.util.ArrayList(2);

-			matchingMethods.add(method);

-		}

-	}

-	if (matchingMethods == null) return NoMethods;

-

-	MethodBinding[] result = new MethodBinding[matchingMethods.size()];

-	matchingMethods.toArray(result);

-	if (!methodsAreResolved) {

-		for (int i = 0, length = result.length - 1; i < length; i++) {

-			MethodBinding method = result[i];

-			for (int j = length; j > i; j--) {

-				if (method.areParameterErasuresEqual(result[j])) {

-					methods();

-					return getMethods(selector); // try again since the duplicate methods have been removed

-				}

-			}

-		}

-	}

-	return result;

-}

-/* Answer the synthetic field for <actualOuterLocalVariable>

-*	or null if one does not exist.

-*/

-

-public FieldBinding getSyntheticField(LocalVariableBinding actualOuterLocalVariable) {

-	

-	if (synthetics == null || synthetics[FIELD_EMUL] == null) return null;

-	return (FieldBinding) synthetics[FIELD_EMUL].get(actualOuterLocalVariable);

-}

-/* 

- * Answer the bridge method associated for an  inherited methods or null if one does not exist

- */

-public SyntheticAccessMethodBinding getSyntheticBridgeMethod(MethodBinding inheritedMethodToBridge) {

-    

-	if (synthetics == null) return null;

-	if (synthetics[METHOD_EMUL] == null) return null;

-	SyntheticAccessMethodBinding[] accessors = (SyntheticAccessMethodBinding[]) synthetics[METHOD_EMUL].get(inheritedMethodToBridge);

-	if (accessors == null) return null;

-	return accessors[1];

-}

-/**

- * Returns true if a type is identical to another one,

- * or for generic types, true if compared to its raw type.

- */

-public boolean isEquivalentTo(TypeBinding otherType) {

-    if (this == otherType) return true;

-    if (otherType == null) return false;

-    if (otherType.isWildcard()) // wildcard

-		return ((WildcardBinding) otherType).boundCheck(this);

-    if (this.typeVariables == NoTypeVariables) return false;

-    if (otherType.isParameterizedType()) {

-        if ((otherType.tagBits & HasWildcard) == 0 && (!this.isMemberType() || !otherType.isMemberType())) 

-        	return false; // should have been identical

-        ParameterizedTypeBinding otherParamType = (ParameterizedTypeBinding) otherType;

-        if (this != otherParamType.type) 

-            return false;

-        ReferenceBinding enclosing = enclosingType();

-        if (enclosing != null && !enclosing.isEquivalentTo(otherParamType.enclosingType()))

-            return false;

-        int length = this.typeVariables == null ? 0 : this.typeVariables.length;

-        TypeBinding[] otherArguments = otherParamType.arguments;

-        int otherLength = otherArguments == null ? 0 : otherArguments.length;

-        if (otherLength != length) 

-            return false;

-        // argument must be identical, only equivalence is allowed if wildcard other type

-        for (int i = 0; i < length; i++) {

-        	TypeBinding argument = this.typeVariables[i];

-        	TypeBinding otherArgument = otherArguments[i];

-			if (!(argument == otherArgument

-					|| (otherArgument.isWildcard()) && argument.isEquivalentTo(otherArgument))) {

-				return false;

-			}

-        }

-        return true;

-    } else if (otherType.isRawType())

-        return otherType.erasure() == this;

-	return false;

-}

-

-public boolean isGenericType() {

-    return this.typeVariables != NoTypeVariables;

-}

-

-public ReferenceBinding[] memberTypes() {

-	return this.memberTypes;

-}

-public FieldBinding getUpdatedFieldBinding(FieldBinding targetField, ReferenceBinding newDeclaringClass) {

-

-	if (this.synthetics == null) {

-		this.synthetics = new HashMap[4];

-	}

-	if (this.synthetics[RECEIVER_TYPE_EMUL] == null) {

-		this.synthetics[RECEIVER_TYPE_EMUL] = new HashMap(5);

-	}

-

-	Hashtable fieldMap = (Hashtable) this.synthetics[RECEIVER_TYPE_EMUL].get(targetField);

-	if (fieldMap == null) {

-		fieldMap = new Hashtable(5);

-		this.synthetics[RECEIVER_TYPE_EMUL].put(targetField, fieldMap);

-	}

-	FieldBinding updatedField = (FieldBinding) fieldMap.get(newDeclaringClass);

-	if (updatedField == null){

-		updatedField = new FieldBinding(targetField, newDeclaringClass);

-		fieldMap.put(newDeclaringClass, updatedField);

-	}

-	return updatedField;

-}

-

-public MethodBinding getUpdatedMethodBinding(MethodBinding targetMethod, ReferenceBinding newDeclaringClass) {

-

-	if (this.synthetics == null) {

-		this.synthetics = new HashMap[4];

-	}

-	if (this.synthetics[RECEIVER_TYPE_EMUL] == null) {

-		this.synthetics[RECEIVER_TYPE_EMUL] = new HashMap(5);

-	}

-

-

-	Hashtable methodMap = (Hashtable) synthetics[RECEIVER_TYPE_EMUL].get(targetMethod);

-	if (methodMap == null) {

-		methodMap = new Hashtable(5);

-		this.synthetics[RECEIVER_TYPE_EMUL].put(targetMethod, methodMap);

-	}

-	MethodBinding updatedMethod = (MethodBinding) methodMap.get(newDeclaringClass);

-	if (updatedMethod == null){

-		updatedMethod = new MethodBinding(targetMethod, newDeclaringClass);

-		methodMap.put(newDeclaringClass, updatedMethod);

-	}

-	return updatedMethod;

-}

-public boolean hasMemberTypes() {

-    return this.memberTypes.length > 0;

-}

-// NOTE: the return type, arg & exception types of each method of a source type are resolved when needed

-public MethodBinding[] methods() {

-	if ((modifiers & AccUnresolved) == 0)

-		return methods;

-

-	int failed = 0;

-	try {

-		for (int i = 0, length = methods.length; i < length; i++) {

-			if (resolveTypesFor(methods[i]) == null) {

-				methods[i] = null; // unable to resolve parameters

-				failed++;

-			}

-		}

-

-		// find & report collision cases

-		for (int i = 0, length = methods.length; i < length; i++) {

-			MethodBinding method = methods[i];

-			if (method != null) {

-				AbstractMethodDeclaration methodDecl = null;

-				for (int j = length - 1; j > i; j--) {

-					MethodBinding method2 = methods[j];

-					if (method2 != null && CharOperation.equals(method.selector, method2.selector)) {

-						if (method.areParameterErasuresEqual(method2)) {

-							if (methodDecl == null) {

-								methodDecl = method.sourceMethod(); // cannot be retrieved after binding is lost

-								scope.problemReporter().duplicateMethodInType(this, methodDecl);

-								methodDecl.binding = null;

-								methods[i] = null;

-								failed++;

-							}

-							AbstractMethodDeclaration method2Decl = method2.sourceMethod();

-							scope.problemReporter().duplicateMethodInType(this, method2Decl);

-							method2Decl.binding = null;

-							methods[j] = null;

-							failed++;

-						}

-					}

-				}

-				if (method.returnType == null && methodDecl == null) { // forget method with invalid return type... was kept to detect possible collisions

-					method.sourceMethod().binding = null;

-					methods[i] = null;

-					failed++;

-				}

-			}

-		}

-	} finally {

-		if (failed > 0) {

-			int newSize = methods.length - failed;

-			if (newSize == 0) {

-				methods = NoMethods;

-			} else {

-				MethodBinding[] newMethods = new MethodBinding[newSize];

-				for (int i = 0, j = 0, length = methods.length; i < length; i++)

-					if (methods[i] != null)

-						newMethods[j++] = methods[i];

-				methods = newMethods;

-			}

-		}

-

-		// handle forward references to potential default abstract methods

-		addDefaultAbstractMethods();

-

-		modifiers ^= AccUnresolved;

-	}		

-	return methods;

-}

-private FieldBinding resolveTypeFor(FieldBinding field) {

-	if ((field.modifiers & AccUnresolved) == 0)

-		return field;

-

-	FieldDeclaration[] fieldDecls = scope.referenceContext.fields;

-	for (int f = 0, length = fieldDecls.length; f < length; f++) {

-		if (fieldDecls[f].binding != field)

-			continue;

-

-			MethodScope initializationScope = field.isStatic() 

-				? scope.referenceContext.staticInitializerScope 

-				: scope.referenceContext.initializerScope;

-			FieldBinding previousField = initializationScope.initializedField;

-			try {

-				initializationScope.initializedField = field;

-				TypeBinding fieldType = fieldDecls[f].type.resolveType(initializationScope);

-				field.type = fieldType;

-				field.modifiers ^= AccUnresolved;

-				if (fieldType == null) {

-					fieldDecls[f].binding = null;

-					return null;

-				}

-				if (fieldType == VoidBinding) {

-					scope.problemReporter().variableTypeCannotBeVoid(fieldDecls[f]);

-					fieldDecls[f].binding = null;

-					return null;

-				}

-				if (fieldType.isArrayType() && ((ArrayBinding) fieldType).leafComponentType == VoidBinding) {

-					scope.problemReporter().variableTypeCannotBeVoidArray(fieldDecls[f]);

-					fieldDecls[f].binding = null;

-					return null;

-				}

-				if (fieldType instanceof ReferenceBinding && (((ReferenceBinding)fieldType).modifiers & AccGenericSignature) != 0) {

-					field.modifiers |= AccGenericSignature;

-				}				

-			} finally {

-			    initializationScope.initializedField = previousField;

-			}

-		return field;

-	}

-	return null; // should never reach this point

-}

-private MethodBinding resolveTypesFor(MethodBinding method) {

-    

-	if ((method.modifiers & AccUnresolved) == 0)

-		return method;

-

-	AbstractMethodDeclaration methodDecl = method.sourceMethod();

-	if (methodDecl == null) return null; // method could not be resolved in previous iteration

-	

-	TypeParameter[] typeParameters = methodDecl.typeParameters();

-	if (typeParameters != null) methodDecl.scope.connectTypeVariables(typeParameters);

-	TypeReference[] exceptionTypes = methodDecl.thrownExceptions;

-	if (exceptionTypes != null) {

-		int size = exceptionTypes.length;

-		method.thrownExceptions = new ReferenceBinding[size];

-		ReferenceBinding throwable = scope.getJavaLangThrowable();

-		int count = 0;

-		ReferenceBinding resolvedExceptionType;

-		for (int i = 0; i < size; i++) {

-			resolvedExceptionType = (ReferenceBinding) exceptionTypes[i].resolveType(methodDecl.scope);

-			if (resolvedExceptionType == null) {

-				continue;

-			}

-			if (resolvedExceptionType.isGenericType() || resolvedExceptionType.isParameterizedType()) {

-				methodDecl.scope.problemReporter().invalidParameterizedExceptionType(resolvedExceptionType, exceptionTypes[i]);

-				continue;

-			}

-			if (throwable != resolvedExceptionType && !throwable.isSuperclassOf(resolvedExceptionType)) {

-				methodDecl.scope.problemReporter().cannotThrowType(this, methodDecl, exceptionTypes[i], resolvedExceptionType);

-				continue;

-			}

-		    if ((resolvedExceptionType.modifiers & AccGenericSignature) != 0) {

-				method.modifiers |= AccGenericSignature;

-			}

-			method.thrownExceptions[count++] = resolvedExceptionType;

-		}

-		if (count < size)

-			System.arraycopy(method.thrownExceptions, 0, method.thrownExceptions = new ReferenceBinding[count], 0, count);

-	}

-

-	boolean foundArgProblem = false;

-	Argument[] arguments = methodDecl.arguments;

-	if (arguments != null) {

-		int size = arguments.length;

-		method.parameters = new TypeBinding[size];

-		for (int i = 0; i < size; i++) {

-			Argument arg = arguments[i];

-			TypeBinding parameterType = arg.type.resolveType(methodDecl.scope);

-			if (parameterType == null) {

-				foundArgProblem = true;

-			} else if (parameterType == VoidBinding) {

-				methodDecl.scope.problemReporter().argumentTypeCannotBeVoid(this, methodDecl, arg);

-				foundArgProblem = true;

-			} else if (parameterType.isArrayType() && ((ArrayBinding) parameterType).leafComponentType == VoidBinding) {

-				methodDecl.scope.problemReporter().argumentTypeCannotBeVoidArray(this, methodDecl, arg);

-				foundArgProblem = true;

-			} else {

-			    if (parameterType instanceof ReferenceBinding && (((ReferenceBinding)parameterType).modifiers & AccGenericSignature) != 0) {

-					method.modifiers |= AccGenericSignature;

-				}

-				method.parameters[i] = parameterType;

-			}

-		}

-	}

-

-	boolean foundReturnTypeProblem = false;

-	if (!method.isConstructor()) {

-		TypeReference returnType = methodDecl instanceof MethodDeclaration

-			? ((MethodDeclaration) methodDecl).returnType

-			: ((AnnotationTypeMemberDeclaration) methodDecl).returnType;

-		if (returnType == null) {

-			methodDecl.scope.problemReporter().missingReturnType(methodDecl);

-			method.returnType = null;

-			foundReturnTypeProblem = true;

-		} else {

-		    TypeBinding methodType = returnType.resolveType(methodDecl.scope);

-			if (methodType == null) {

-				foundReturnTypeProblem = true;

-			} else if (methodType.isArrayType() && ((ArrayBinding) methodType).leafComponentType == VoidBinding) {

-				methodDecl.scope.problemReporter().returnTypeCannotBeVoidArray(this, (MethodDeclaration) methodDecl);

-				foundReturnTypeProblem = true;

-			} else {

-				method.returnType = methodType;

-				if (methodType instanceof ReferenceBinding && (((ReferenceBinding)methodType).modifiers & AccGenericSignature) != 0) {

-					method.modifiers |= AccGenericSignature;

-				}

-			}

-		}

-	}

-	if (foundArgProblem) {

-		methodDecl.binding = null;

-		return null;

-	}

-	if (foundReturnTypeProblem)

-		return method; // but its still unresolved with a null return type & is still connected to its method declaration

-

-	method.modifiers ^= AccUnresolved;

-	return method;

-}

-public final int sourceEnd() {

-	return scope.referenceContext.sourceEnd;

-}

-public final int sourceStart() {

-	return scope.referenceContext.sourceStart;

-}

-public ReferenceBinding superclass() {

-	return superclass;

-}

-public ReferenceBinding[] superInterfaces() {

-	return superInterfaces;

-}

-// TODO (philippe) could be a performance issue since some senders are building the list just to count them

-public SyntheticAccessMethodBinding[] syntheticAccessMethods() {

-	

-	if (synthetics == null || synthetics[METHOD_EMUL] == null || synthetics[METHOD_EMUL].size() == 0) return null;

-

-	// difficult to compute size up front because of the embedded arrays so assume there is only 1

-	int index = 0;

-	SyntheticAccessMethodBinding[] bindings = new SyntheticAccessMethodBinding[1];

-	Iterator fieldsOrMethods = synthetics[METHOD_EMUL].keySet().iterator();

-	while (fieldsOrMethods.hasNext()) {

-

-		Object fieldOrMethod = fieldsOrMethods.next();

-

-		if (fieldOrMethod instanceof MethodBinding) {

-

-			SyntheticAccessMethodBinding[] methodAccessors = (SyntheticAccessMethodBinding[]) synthetics[METHOD_EMUL].get(fieldOrMethod);

-			int numberOfAccessors = 0;

-			if (methodAccessors[0] != null) numberOfAccessors++;

-			if (methodAccessors[1] != null) numberOfAccessors++;

-			if (index + numberOfAccessors > bindings.length)

-				System.arraycopy(bindings, 0, (bindings = new SyntheticAccessMethodBinding[index + numberOfAccessors]), 0, index);

-			if (methodAccessors[0] != null) 

-				bindings[index++] = methodAccessors[0]; // super access 

-			if (methodAccessors[1] != null) 

-				bindings[index++] = methodAccessors[1]; // normal access or bridge

-

-		} else {

-

-			SyntheticAccessMethodBinding[] fieldAccessors = (SyntheticAccessMethodBinding[]) synthetics[METHOD_EMUL].get(fieldOrMethod);

-			int numberOfAccessors = 0;

-			if (fieldAccessors[0] != null) numberOfAccessors++;

-			if (fieldAccessors[1] != null) numberOfAccessors++;

-			if (index + numberOfAccessors > bindings.length)

-				System.arraycopy(bindings, 0, (bindings = new SyntheticAccessMethodBinding[index + numberOfAccessors]), 0, index);

-			if (fieldAccessors[0] != null) 

-				bindings[index++] = fieldAccessors[0]; // read access

-			if (fieldAccessors[1] != null) 

-				bindings[index++] = fieldAccessors[1]; // write access

-		}

-	}

-

-	// sort them in according to their own indexes

-	int length;

-	SyntheticAccessMethodBinding[] sortedBindings = new SyntheticAccessMethodBinding[length = bindings.length];

-	for (int i = 0; i < length; i++){

-		SyntheticAccessMethodBinding binding = bindings[i];

-		sortedBindings[binding.index] = binding;

-	}

-	return sortedBindings;

-}

-/**

- * Answer the collection of synthetic fields to append into the classfile

- */

-public FieldBinding[] syntheticFields() {

-	

-	if (synthetics == null) return null;

-

-	int fieldSize = synthetics[FIELD_EMUL] == null ? 0 : synthetics[FIELD_EMUL].size();

-	int literalSize = synthetics[CLASS_LITERAL_EMUL] == null ? 0 :synthetics[CLASS_LITERAL_EMUL].size();

-	int totalSize = fieldSize + literalSize;

-	if (totalSize == 0) return null;

-	FieldBinding[] bindings = new FieldBinding[totalSize];

-

-	// add innerclass synthetics

-	if (synthetics[FIELD_EMUL] != null){

-		Iterator elements = synthetics[FIELD_EMUL].values().iterator();

-		for (int i = 0; i < fieldSize; i++) {

-			SyntheticFieldBinding synthBinding = (SyntheticFieldBinding) elements.next();

-			bindings[synthBinding.index] = synthBinding;

-		}

-	}

-	// add class literal synthetics

-	if (synthetics[CLASS_LITERAL_EMUL] != null){

-		Iterator elements = synthetics[CLASS_LITERAL_EMUL].values().iterator();

-		for (int i = 0; i < literalSize; i++) {

-			SyntheticFieldBinding synthBinding = (SyntheticFieldBinding) elements.next();

-			bindings[fieldSize+synthBinding.index] = synthBinding;

-		}

-	}

-	return bindings;

-}

-public String toString() {

-    StringBuffer buffer = new StringBuffer(30);

-    buffer.append("(id="); //$NON-NLS-1$

-    if (id == NoId) 

-        buffer.append("NoId"); //$NON-NLS-1$

-    else 

-        buffer.append(id);

-    buffer.append(")\n"); //$NON-NLS-1$

-	if (isDeprecated()) buffer.append("deprecated "); //$NON-NLS-1$

-	if (isPublic()) buffer.append("public "); //$NON-NLS-1$

-	if (isProtected()) buffer.append("protected "); //$NON-NLS-1$

-	if (isPrivate()) buffer.append("private "); //$NON-NLS-1$

-	if (isAbstract() && isClass()) buffer.append("abstract "); //$NON-NLS-1$

-	if (isStatic() && isNestedType()) buffer.append("static "); //$NON-NLS-1$

-	if (isFinal()) buffer.append("final "); //$NON-NLS-1$

-

-	buffer.append(isInterface() ? "interface " : "class "); //$NON-NLS-1$ //$NON-NLS-2$

-	buffer.append((compoundName != null) ? CharOperation.toString(compoundName) : "UNNAMED TYPE"); //$NON-NLS-1$

-

-	if (this.typeVariables != null && this.typeVariables != NoTypeVariables) {

-		buffer.append("\n\t<"); //$NON-NLS-1$

-		for (int i = 0, length = this.typeVariables.length; i < length; i++) {

-			if (i  > 0)

-				buffer.append(", "); //$NON-NLS-1$

-			buffer.append((this.typeVariables[i] != null) ? this.typeVariables[i].toString() : "NULL TYPE VARIABLE"); //$NON-NLS-1$

-		}

-		buffer.append(">"); //$NON-NLS-1$

-	} else {

-		buffer.append("<NULL TYPE VARIABLES>"); //$NON-NLS-1$

-	}

-	buffer.append("\n\textends "); //$NON-NLS-1$

-	buffer.append((superclass != null) ? superclass.debugName() : "NULL TYPE"); //$NON-NLS-1$

-

-	if (superInterfaces != null) {

-		if (superInterfaces != NoSuperInterfaces) {

-			buffer.append("\n\timplements : "); //$NON-NLS-1$

-			for (int i = 0, length = superInterfaces.length; i < length; i++) {

-				if (i  > 0)

-					buffer.append(", "); //$NON-NLS-1$

-				buffer.append((superInterfaces[i] != null) ? superInterfaces[i].debugName() : "NULL TYPE"); //$NON-NLS-1$

-			}

-		}

-	} else {

-		buffer.append("NULL SUPERINTERFACES"); //$NON-NLS-1$

-	}

-

-	if (enclosingType() != null) {

-		buffer.append("\n\tenclosing type : "); //$NON-NLS-1$

-		buffer.append(enclosingType().debugName());

-	}

-

-	if (fields != null) {

-		if (fields != NoFields) {

-			buffer.append("\n/*   fields   */"); //$NON-NLS-1$

-			for (int i = 0, length = fields.length; i < length; i++)

-			    buffer.append('\n').append((fields[i] != null) ? fields[i].toString() : "NULL FIELD"); //$NON-NLS-1$ 

-		}

-	} else {

-		buffer.append("NULL FIELDS"); //$NON-NLS-1$

-	}

-

-	if (methods != null) {

-		if (methods != NoMethods) {

-			buffer.append("\n/*   methods   */"); //$NON-NLS-1$

-			for (int i = 0, length = methods.length; i < length; i++)

-				buffer.append('\n').append((methods[i] != null) ? methods[i].toString() : "NULL METHOD"); //$NON-NLS-1$ //$NON-NLS-2$

-		}

-	} else {

-		buffer.append("NULL METHODS"); //$NON-NLS-1$

-	}

-

-	if (memberTypes != null) {

-		if (memberTypes != NoMemberTypes) {

-			buffer.append("\n/*   members   */"); //$NON-NLS-1$

-			for (int i = 0, length = memberTypes.length; i < length; i++)

-				buffer.append('\n').append((memberTypes[i] != null) ? memberTypes[i].toString() : "NULL TYPE"); //$NON-NLS-1$ //$NON-NLS-2$

-		}

-	} else {

-		buffer.append("NULL MEMBER TYPES"); //$NON-NLS-1$

-	}

-

-	buffer.append("\n\n"); //$NON-NLS-1$

-	return buffer.toString();

-}

-public TypeVariableBinding[] typeVariables() {

-	return this.typeVariables;

-}

-void verifyMethods(MethodVerifier verifier) {

-	verifier.verify(this);

-

-	for (int i = memberTypes.length; --i >= 0;)

-		 ((SourceTypeBinding) memberTypes[i]).verifyMethods(verifier);

-}

-

-/* Answer the synthetic field for <targetEnclosingType>

-*	or null if one does not exist.

-*/

-

-public FieldBinding getSyntheticField(ReferenceBinding targetEnclosingType, boolean onlyExactMatch) {

-

-	if (synthetics == null || synthetics[FIELD_EMUL] == null) return null;

-	FieldBinding field = (FieldBinding) synthetics[FIELD_EMUL].get(targetEnclosingType);

-	if (field != null) return field;

-

-	// type compatibility : to handle cases such as

-	// class T { class M{}}

-	// class S extends T { class N extends M {}} --> need to use S as a default enclosing instance for the super constructor call in N().

-	if (!onlyExactMatch){

-		Iterator accessFields = synthetics[FIELD_EMUL].values().iterator();

-		while (accessFields.hasNext()) {

-			field = (FieldBinding) accessFields.next();

-			if (CharOperation.prefixEquals(SyntheticArgumentBinding.EnclosingInstancePrefix, field.name)

-				&& ((ReferenceBinding) field.type).findSuperTypeErasingTo(targetEnclosingType) != null)

-					return field;

-		}

-	}

-	return null;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Substitution.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Substitution.js
deleted file mode 100644
index 2a417b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/Substitution.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-/*

- * Encapsulates aspects related to type variable substitution

- */

-public interface Substitution {

-    

-	/**

-	 * Returns the type substitute for a given type, or itself

-	 * if no substitution got performed.

-	 */

-	TypeBinding substitute(TypeBinding originalType);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticAccessMethodBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticAccessMethodBinding.js
deleted file mode 100644
index 11b46cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticAccessMethodBinding.js
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-

-public class SyntheticAccessMethodBinding extends MethodBinding {

-

-	public FieldBinding targetReadField;		// read access to a field

-	public FieldBinding targetWriteField;		// write access to a field

-	public MethodBinding targetMethod;	// method or constructor

-	

-	public int accessType;

-

-	public final static int FieldReadAccess = 1; 		// field read

-	public final static int FieldWriteAccess = 2; 		// field write

-	public final static int MethodAccess = 3; 		// normal method 

-	public final static int ConstructorAccess = 4; 	// constructor

-	public final static int SuperMethodAccess = 5; // super method

-	public final static int BridgeMethodAccess = 6; // bridge method

-

-	final static char[] AccessMethodPrefix = { 'a', 'c', 'c', 'e', 's', 's', '$' };

-

-	public int sourceStart = 0; // start position of the matching declaration

-	public int index; // used for sorting access methods in the class file

-	

-	public SyntheticAccessMethodBinding(FieldBinding targetField, boolean isReadAccess, ReferenceBinding declaringClass) {

-

-		this.modifiers = AccDefault | AccStatic | AccSynthetic;

-		SourceTypeBinding declaringSourceType = (SourceTypeBinding) declaringClass;

-		SyntheticAccessMethodBinding[] knownAccessMethods = declaringSourceType.syntheticAccessMethods();

-		int methodId = knownAccessMethods == null ? 0 : knownAccessMethods.length;

-		this.index = methodId;

-		this.selector = CharOperation.concat(AccessMethodPrefix, String.valueOf(methodId).toCharArray());

-		if (isReadAccess) {

-			this.returnType = targetField.type;

-			if (targetField.isStatic()) {

-				this.parameters = NoParameters;

-			} else {

-				this.parameters = new TypeBinding[1];

-				this.parameters[0] = declaringSourceType;

-			}

-			this.targetReadField = targetField;

-			this.accessType = FieldReadAccess;

-		} else {

-			this.returnType = VoidBinding;

-			if (targetField.isStatic()) {

-				this.parameters = new TypeBinding[1];

-				this.parameters[0] = targetField.type;

-			} else {

-				this.parameters = new TypeBinding[2];

-				this.parameters[0] = declaringSourceType;

-				this.parameters[1] = targetField.type;

-			}

-			this.targetWriteField = targetField;

-			this.accessType = FieldWriteAccess;

-		}

-		this.thrownExceptions = NoExceptions;

-		this.declaringClass = declaringSourceType;

-	

-		// check for method collision

-		boolean needRename;

-		do {

-			check : {

-				needRename = false;

-				// check for collision with known methods

-				MethodBinding[] methods = declaringSourceType.methods;

-				for (int i = 0, length = methods.length; i < length; i++) {

-					if (CharOperation.equals(this.selector, methods[i].selector) && this.areParametersEqual(methods[i])) {

-						needRename = true;

-						break check;

-					}

-				}

-				// check for collision with synthetic accessors

-				if (knownAccessMethods != null) {

-					for (int i = 0, length = knownAccessMethods.length; i < length; i++) {

-						if (knownAccessMethods[i] == null) continue;

-						if (CharOperation.equals(this.selector, knownAccessMethods[i].selector) && this.areParametersEqual(methods[i])) {

-							needRename = true;

-							break check;

-						}

-					}

-				}

-			}

-			if (needRename) { // retry with a selector postfixed by a growing methodId

-				this.setSelector(CharOperation.concat(AccessMethodPrefix, String.valueOf(++methodId).toCharArray()));

-			}

-		} while (needRename);

-	

-		// retrieve sourceStart position for the target field for line number attributes

-		FieldDeclaration[] fieldDecls = declaringSourceType.scope.referenceContext.fields;

-		if (fieldDecls != null) {

-			for (int i = 0, max = fieldDecls.length; i < max; i++) {

-				if (fieldDecls[i].binding == targetField) {

-					this.sourceStart = fieldDecls[i].sourceStart;

-					return;

-				}

-			}

-		}

-	

-	/* did not find the target field declaration - it is a synthetic one

-		public class A {

-			public class B {

-				public class C {

-					void foo() {

-						System.out.println("A.this = " + A.this);

-					}

-				}

-			}

-			public static void main(String args[]) {

-				new A().new B().new C().foo();

-			}

-		}	

-	*/

-		// We now at this point - per construction - it is for sure an enclosing instance, we are going to

-		// show the target field type declaration location.

-		this.sourceStart = declaringSourceType.scope.referenceContext.sourceStart; // use the target declaring class name position instead

-	}

-

-	public SyntheticAccessMethodBinding(MethodBinding targetMethod, boolean isSuperAccess, ReferenceBinding receiverType) {

-	

-		if (targetMethod.isConstructor()) {

-			this.initializeConstructorAccessor(targetMethod);

-		} else {

-			this.initializeMethodAccessor(targetMethod, isSuperAccess, receiverType);

-		}

-	}

-

-	/*

-	 * Construct a bridge method

-	 */

-	public SyntheticAccessMethodBinding(MethodBinding overridenMethodToBridge, MethodBinding localTargetMethod) {

-	    this.declaringClass = localTargetMethod.declaringClass;

-	    this.selector = overridenMethodToBridge.selector;

-	    this.modifiers = overridenMethodToBridge.modifiers | AccBridge | AccSynthetic;

-	    this.modifiers &= ~(AccAbstract | AccNative);

-	    this.returnType = overridenMethodToBridge.returnType;

-	    this.parameters = overridenMethodToBridge.parameters;

-	    this.thrownExceptions = overridenMethodToBridge.thrownExceptions;

-	    this.targetMethod = localTargetMethod;

-	    this.accessType = BridgeMethodAccess;

-		SyntheticAccessMethodBinding[] knownAccessMethods = ((SourceTypeBinding)this.declaringClass).syntheticAccessMethods();

-		int methodId = knownAccessMethods == null ? 0 : knownAccessMethods.length;

-		this.index = methodId;	    

-	}

-	

-	/**

-	 * An constructor accessor is a constructor with an extra argument (declaringClass), in case of

-	 * collision with an existing constructor, then add again an extra argument (declaringClass again).

-	 */

-	 public void initializeConstructorAccessor(MethodBinding accessedConstructor) {

-	

-		this.targetMethod = accessedConstructor;

-		this.modifiers = AccDefault | AccSynthetic;

-		SourceTypeBinding sourceType = (SourceTypeBinding) accessedConstructor.declaringClass; 

-		SyntheticAccessMethodBinding[] knownAccessMethods = 

-			sourceType.syntheticAccessMethods(); 

-		this.index = knownAccessMethods == null ? 0 : knownAccessMethods.length;

-	

-		this.selector = accessedConstructor.selector;

-		this.returnType = accessedConstructor.returnType;

-		this.accessType = ConstructorAccess;

-		this.parameters = new TypeBinding[accessedConstructor.parameters.length + 1];

-		System.arraycopy(

-			accessedConstructor.parameters, 

-			0, 

-			this.parameters, 

-			0, 

-			accessedConstructor.parameters.length); 

-		parameters[accessedConstructor.parameters.length] = 

-			accessedConstructor.declaringClass; 

-		this.thrownExceptions = accessedConstructor.thrownExceptions;

-		this.declaringClass = sourceType;

-	

-		// check for method collision

-		boolean needRename;

-		do {

-			check : {

-				needRename = false;

-				// check for collision with known methods

-				MethodBinding[] methods = sourceType.methods;

-				for (int i = 0, length = methods.length; i < length; i++) {

-					if (CharOperation.equals(this.selector, methods[i].selector)

-						&& this.areParametersEqual(methods[i])) {

-						needRename = true;

-						break check;

-					}

-				}

-				// check for collision with synthetic accessors

-				if (knownAccessMethods != null) {

-					for (int i = 0, length = knownAccessMethods.length; i < length; i++) {

-						if (knownAccessMethods[i] == null)

-							continue;

-						if (CharOperation.equals(this.selector, knownAccessMethods[i].selector)

-							&& this.areParametersEqual(knownAccessMethods[i])) {

-							needRename = true;

-							break check;

-						}

-					}

-				}

-			}

-			if (needRename) { // retry with a new extra argument

-				int length = this.parameters.length;

-				System.arraycopy(

-					this.parameters, 

-					0, 

-					this.parameters = new TypeBinding[length + 1], 

-					0, 

-					length); 

-				this.parameters[length] = this.declaringClass;

-			}

-		} while (needRename);

-	

-		// retrieve sourceStart position for the target method for line number attributes

-		AbstractMethodDeclaration[] methodDecls = 

-			sourceType.scope.referenceContext.methods; 

-		if (methodDecls != null) {

-			for (int i = 0, length = methodDecls.length; i < length; i++) {

-				if (methodDecls[i].binding == accessedConstructor) {

-					this.sourceStart = methodDecls[i].sourceStart;

-					return;

-				}

-			}

-		}

-	}

-

-	/**

-	 * An method accessor is a method with an access$N selector, where N is incremented in case of collisions.

-	 */

-	public void initializeMethodAccessor(MethodBinding accessedMethod, boolean isSuperAccess, ReferenceBinding receiverType) {

-		

-		this.targetMethod = accessedMethod;

-		this.modifiers = AccDefault | AccStatic | AccSynthetic;

-		SourceTypeBinding declaringSourceType = (SourceTypeBinding) receiverType;

-		SyntheticAccessMethodBinding[] knownAccessMethods = declaringSourceType.syntheticAccessMethods();

-		int methodId = knownAccessMethods == null ? 0 : knownAccessMethods.length;

-		this.index = methodId;

-	

-		this.selector = CharOperation.concat(AccessMethodPrefix, String.valueOf(methodId).toCharArray());

-		this.returnType = accessedMethod.returnType;

-		this.accessType = isSuperAccess ? SuperMethodAccess : MethodAccess;

-		

-		if (accessedMethod.isStatic()) {

-			this.parameters = accessedMethod.parameters;

-		} else {

-			this.parameters = new TypeBinding[accessedMethod.parameters.length + 1];

-			this.parameters[0] = declaringSourceType;

-			System.arraycopy(accessedMethod.parameters, 0, this.parameters, 1, accessedMethod.parameters.length);

-		}

-		this.thrownExceptions = accessedMethod.thrownExceptions;

-		this.declaringClass = declaringSourceType;

-	

-		// check for method collision

-		boolean needRename;

-		do {

-			check : {

-				needRename = false;

-				// check for collision with known methods

-				MethodBinding[] methods = declaringSourceType.methods;

-				for (int i = 0, length = methods.length; i < length; i++) {

-					if (CharOperation.equals(this.selector, methods[i].selector) && this.areParametersEqual(methods[i])) {

-						needRename = true;

-						break check;

-					}

-				}

-				// check for collision with synthetic accessors

-				if (knownAccessMethods != null) {

-					for (int i = 0, length = knownAccessMethods.length; i < length; i++) {

-						if (knownAccessMethods[i] == null) continue;

-						if (CharOperation.equals(this.selector, knownAccessMethods[i].selector) && this.areParametersEqual(knownAccessMethods[i])) {

-							needRename = true;

-							break check;

-						}

-					}

-				}

-			}

-			if (needRename) { // retry with a selector & a growing methodId

-				this.setSelector(CharOperation.concat(AccessMethodPrefix, String.valueOf(++methodId).toCharArray()));

-			}

-		} while (needRename);

-	

-		// retrieve sourceStart position for the target method for line number attributes

-		AbstractMethodDeclaration[] methodDecls = declaringSourceType.scope.referenceContext.methods;

-		if (methodDecls != null) {

-			for (int i = 0, length = methodDecls.length; i < length; i++) {

-				if (methodDecls[i].binding == accessedMethod) {

-					this.sourceStart = methodDecls[i].sourceStart;

-					return;

-				}

-			}

-		}

-	}

-

-	protected boolean isConstructorRelated() {

-		return accessType == ConstructorAccess;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticArgumentBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticArgumentBinding.js
deleted file mode 100644
index 42f74bb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticArgumentBinding.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-/**

- * Specific local variable location used to:

- * - either provide emulation for outer local variables used from within innerclass constructs,

- * - or provide emulation to enclosing instances. 

- * When it is mapping to an outer local variable, this actual outer local is accessible through 

- * the public field #actualOuterLocalVariable.

- *

- * Such a synthetic argument binding will be inserted in all constructors of local innertypes before

- * the user arguments.

- */

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public class SyntheticArgumentBinding extends LocalVariableBinding {

-

-	{	

-		this.isArgument = true;

-		this.useFlag = USED;

-	}

-	

-	// if the argument is mapping to an outer local variable, this denotes the outer actual variable

-	public LocalVariableBinding actualOuterLocalVariable;

-	// if the argument has a matching synthetic field

-	public FieldBinding matchingField;

-

-	final static char[] OuterLocalPrefix = { 'v', 'a', 'l', '$' };

-	final static char[] EnclosingInstancePrefix = { 't', 'h', 'i', 's', '$' };

-	

-	public SyntheticArgumentBinding(LocalVariableBinding actualOuterLocalVariable) {

-

-		super(

-			CharOperation.concat(OuterLocalPrefix, actualOuterLocalVariable.name), 

-			actualOuterLocalVariable.type, 

-			AccFinal,

-			true);

-		this.actualOuterLocalVariable = actualOuterLocalVariable;

-	}

-

-	public SyntheticArgumentBinding(ReferenceBinding enclosingType) {

-

-		super(

-			CharOperation.concat(

-				SyntheticArgumentBinding.EnclosingInstancePrefix,

-				String.valueOf(enclosingType.depth()).toCharArray()),

-			enclosingType, 

-			AccFinal,

-			true);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticFieldBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticFieldBinding.js
deleted file mode 100644
index b9d670b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/SyntheticFieldBinding.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-

-public class SyntheticFieldBinding extends FieldBinding {

-	public int index;

-public SyntheticFieldBinding(char[] name, TypeBinding type, int modifiers, ReferenceBinding declaringClass, Constant constant, int index) {

-	super(name, type, modifiers, declaringClass, constant);

-	this.index = index;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TagBits.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TagBits.js
deleted file mode 100644
index 4338d5e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TagBits.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-

-public interface TagBits {

-    

-	// Tag bits in the tagBits int of every TypeBinding

-	final int IsArrayType = ASTNode.Bit1;

-	final int IsBaseType = ASTNode.Bit2;

-	final int IsNestedType = ASTNode.Bit3;

-	final int IsMemberType = ASTNode.Bit4;

-	final int MemberTypeMask = IsNestedType | IsMemberType;

-	final int IsLocalType = ASTNode.Bit5;

-	final int LocalTypeMask = IsNestedType | IsLocalType;

-	final int IsAnonymousType = ASTNode.Bit6;

-	final int AnonymousTypeMask = LocalTypeMask | IsAnonymousType;

-	final int IsBinaryBinding = ASTNode.Bit7;

-	

-	// for the type hierarchy check used by ClassScope

-	final int BeginHierarchyCheck = ASTNode.Bit9;

-	final int EndHierarchyCheck = ASTNode.Bit10;

-

-	// test bit to see if default abstract methods were computed

-	final int KnowsDefaultAbstractMethods = ASTNode.Bit11;

-

-	// Reusable bit currently used by Scopes

-	final int InterfaceVisited = ASTNode.Bit12;

-

-	// test bits to see if parts of binary types are faulted

-	final int AreFieldsComplete = ASTNode.Bit13;

-	final int AreMethodsComplete = ASTNode.Bit14;

-

-	// test bit to avoid asking a type for a member type (includes inherited member types)

-	final int HasNoMemberTypes = ASTNode.Bit15;

-

-	// test bit to identify if the type's hierarchy is inconsistent

-	final int HierarchyHasProblems = ASTNode.Bit16;

-

-	// set for parameterized type NOT of the form X<?,?>

-	final int IsBoundParameterizedType = ASTNode.Bit24; 

-

-	// used by BinaryTypeBinding

-	final int HasUnresolvedTypeVariables = ASTNode.Bit25;

-	final int HasUnresolvedSuperclass = ASTNode.Bit26;

-	final int HasUnresolvedSuperinterfaces = ASTNode.Bit27;

-	final int HasUnresolvedEnclosingType = ASTNode.Bit28;

-	final int HasUnresolvedMemberTypes = ASTNode.Bit29;

-

-	final int HasTypeVariable = ASTNode.Bit30; // set either for type variables (direct) or parameterized types indirectly referencing type variables

-	final int HasWildcard = ASTNode.Bit31; // set either for wildcards (direct) or parameterized types indirectly referencing wildcards

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeBinding.js
deleted file mode 100644
index 0cfc2bf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeBinding.js
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import java.util.Map;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Wildcard;

-

-/*

- * Not all fields defined by this type (& its subclasses) are initialized when it is created.

- * Some are initialized only when needed.

- *

- * Accessors have been provided for some public fields so all TypeBindings have the same API...

- * but access public fields directly whenever possible.

- * Non-public fields have accessors which should be used everywhere you expect the field to be initialized.

- *

- * null is NOT a valid value for a non-public field... it just means the field is not initialized.

- */

-abstract public class TypeBinding extends Binding implements BaseTypes, TagBits, TypeConstants, TypeIds {

-	public int id = NoId;

-	public int tagBits = 0; // See values in the interface TagBits below

-/* API

- * Answer the receiver's binding type from Binding.BindingID.

- */

-

-public final int bindingType() {

-	return TYPE;

-}

-/* Answer true if the receiver can be instantiated

- */

-public boolean canBeInstantiated() {

-	return !isBaseType();

-}

-/**

- * Collect the substitutes into a map for certain type variables inside the receiver type

- * e.g.   Collection<T>.findSubstitute(T, Collection<List<X>>):   T --> List<X>

- */

-public void collectSubstitutes(TypeBinding otherType, Map substitutes) {

-    // no substitute by default

-}

-/**

- *  Answer the receiver's constant pool name.

- *  NOTE: This method should only be used during/after code gen.

- *  e.g. 'java/lang/Object' 

- */

-public abstract char[] constantPoolName();

-

-public String debugName() {

-	return new String(readableName());

-}

-/*

- * Answer the receiver's dimensions - 0 for non-array types

- */

-public int dimensions(){

-	return 0;

-}

-public TypeBinding erasure() {

-    return this;

-}

-/**

- * Returns the type to use for generic cast, or null if none required

- */

-public TypeBinding genericCast(TypeBinding otherType) {

-    if (this == otherType) return null;

-	if (otherType.isWildcard() && ((WildcardBinding)otherType).kind != Wildcard.EXTENDS) return null;

-	TypeBinding otherErasure = otherType.erasure();

-	if (otherErasure == this.erasure()) return null;

-	return otherErasure;

-}

-

-/**

- * Answer the receiver classfile signature.

- * Arrays & base types do not distinguish between signature() & constantPoolName().

- * NOTE: This method should only be used during/after code gen.

- */

-public char[] genericTypeSignature() {

-    return signature();

-}

-public abstract PackageBinding getPackage();

-/* Answer true if the receiver is an array

-*/

-public final boolean isArrayType() {

-	return (tagBits & IsArrayType) != 0;

-}

-/* Answer true if the receiver is a base type

-*/

-public final boolean isBaseType() {

-	return (tagBits & IsBaseType) != 0;

-}

-public boolean isClass() {

-	return false;

-}

-/* Answer true if the receiver type can be assigned to the argument type (right)

-*/

-public abstract boolean isCompatibleWith(TypeBinding right);

-

-/**

- * Returns true if a type is identical to another one,

- * or for generic types, true if compared to its raw type.

- */

-public boolean isEquivalentTo(TypeBinding otherType) {

-    return this == otherType;

-}

-

-public boolean isGenericType() {

-    return false;

-}

-

-/* Answer true if the receiver's hierarchy has problems (always false for arrays & base types)

-*/

-public final boolean isHierarchyInconsistent() {

-	return (tagBits & HierarchyHasProblems) != 0;

-}

-public boolean isInterface() {

-	return false;

-}

-public final boolean isLocalType() {

-	return (tagBits & IsLocalType) != 0;

-}

-

-public final boolean isMemberType() {

-	return (tagBits & IsMemberType) != 0;

-}

-

-public final boolean isNestedType() {

-	return (tagBits & IsNestedType) != 0;

-}

-public final boolean isNumericType() {

-	switch (id) {

-		case T_int :

-		case T_float :

-		case T_double :

-		case T_short :

-		case T_byte :

-		case T_long :

-		case T_char :

-			return true;

-		default :

-			return false;

-	}

-}

-

-/**

- * Returns true if the type is parameterized, e.g. List<String>

- */

-public boolean isParameterizedType() {

-    return false;

-}

-	

-/**

- * Returns true if the two types are statically known to be different at compile-time,

- * e.g. a type variable is not probably known to be distinct from another type

- */

-public boolean isProvablyDistinctFrom(TypeBinding otherType) {

-	if (this == otherType) return false;

-	if (this.isTypeVariable()) return false;

-	if (this.isWildcard()) return false;

-	if (otherType.isTypeVariable()) return false;

-	if (otherType.isWildcard()) return false;

-	if (this.isParameterizedType()) {

-		ParameterizedTypeBinding parameterizedType = (ParameterizedTypeBinding) this;

-		if (parameterizedType.type.isProvablyDistinctFrom(otherType.erasure())) return true;

-		if (otherType.isGenericType()) return false;

-		if (otherType.isRawType()) return false;

-		if (otherType.isParameterizedType()) {

-			TypeBinding[] arguments = parameterizedType.arguments;

-			if (arguments == null) return false;

-			ParameterizedTypeBinding otherParameterizedType = (ParameterizedTypeBinding) otherType;

-			TypeBinding[] otherArguments = otherParameterizedType. arguments;

-			if (otherArguments == null) return false;

-			for (int i = 0, length = arguments.length; i < length; i++) {

-				if (arguments[i].isProvablyDistinctFrom(otherArguments[i])) return true;

-			}

-			return false;

-		}

-	} else if (this.isRawType()) {

-		return this.erasure().isProvablyDistinctFrom(otherType.erasure());

-	} else if (this.isGenericType()) {

-		return this != otherType.erasure();

-	}

-	return this != otherType;

-}

-

-/**

- * Returns true if the type was declared as a type variable

- */

-public boolean isTypeVariable() {

-    return false;

-}

-

-	

-/**

- *  Returns true if parameterized type AND not of the form List<?>

- */

-public boolean isBoundParameterizedType() {

-	return (this.tagBits & TagBits.IsBoundParameterizedType) != 0;

-}

-

-/**

- * Returns true if the type is a wildcard

- */

-public boolean isWildcard() {

-    return false;

-}

-	

-public TypeBinding leafComponentType(){

-	return this;

-}

-

-/**

- * Answer the qualified name of the receiver's package separated by periods

- * or an empty string if its the default package.

- *

- * For example, {java.util.Hashtable}.

- */

-

-public char[] qualifiedPackageName() {

-	PackageBinding packageBinding = getPackage();

-	return packageBinding == null  || packageBinding.compoundName == CharOperation.NO_CHAR_CHAR

-		? CharOperation.NO_CHAR

-		: packageBinding.readableName();

-}

-/**

-* Answer the source name for the type.

-* In the case of member types, as the qualified name from its top level type.

-* For example, for a member type N defined inside M & A: "A.M.N".

-*/

-

-public abstract char[] qualifiedSourceName();

-

-public boolean isRawType() {

-    return false;

-}

-

-/**

- * Answer the receiver classfile signature.

- * Arrays & base types do not distinguish between signature() & constantPoolName().

- * NOTE: This method should only be used during/after code gen.

- */

-public char[] signature() {

-	return constantPoolName();

-}

-

-public abstract char[] sourceName();

-

-public void swapUnresolved(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType, LookupEnvironment environment) {

-	// subclasses must override if they wrap another type binding

-}

-public TypeVariableBinding[] typeVariables() {

-	return NoTypeVariables;

-}

-/**

- * Match a well-known type id to its binding

- */

-public static final TypeBinding wellKnownType(Scope scope, int id) {

-		switch (id) { 

-			case T_boolean :

-				return BooleanBinding;

-			case T_byte :

-				return ByteBinding;

-			case T_char :

-				return CharBinding;

-			case T_short :

-				return ShortBinding;

-			case T_double :

-				return DoubleBinding;

-			case T_float :

-				return FloatBinding;

-			case T_int :

-				return IntBinding;

-			case T_long :

-				return LongBinding;

-			case T_Object :

-				return scope.getJavaLangObject();

-			case T_String :

-				return scope.getJavaLangString();

-			default : 

-				return null;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeConstants.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeConstants.js
deleted file mode 100644
index eece6c6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeConstants.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public interface TypeConstants {

-	final char[] JAVA = "java".toCharArray(); //$NON-NLS-1$

-	final char[] LANG = "lang".toCharArray(); //$NON-NLS-1$

-	final char[] IO = "io".toCharArray(); //$NON-NLS-1$

-	final char[] REFLECT = "reflect".toCharArray(); //$NON-NLS-1$

-	final char[] CharArray_JAVA_LANG_OBJECT = "java.lang.Object".toCharArray(); //$NON-NLS-1$

-	final char[] LENGTH = "length".toCharArray(); //$NON-NLS-1$

-	final char[] CLONE = "clone".toCharArray(); //$NON-NLS-1$

-	final char[] GETCLASS = "getClass".toCharArray(); //$NON-NLS-1$

-	final char[] OBJECT = "Object".toCharArray(); //$NON-NLS-1$

-	final char[] MAIN = "main".toCharArray(); //$NON-NLS-1$

-	final char[] SERIALVERSIONUID = "serialVersionUID".toCharArray(); //$NON-NLS-1$

-	final char[] SERIALPERSISTENTFIELDS = "serialPersistentFields".toCharArray(); //$NON-NLS-1$ 

-	final char[] READRESOLVE = "readResolve".toCharArray(); //$NON-NLS-1$

-	final char[] WRITEREPLACE = "writeReplace".toCharArray(); //$NON-NLS-1$

-	final char[] READOBJECT = "readObject".toCharArray(); //$NON-NLS-1$

-	final char[] WRITEOBJECT = "writeObject".toCharArray(); //$NON-NLS-1$

-	final char[] CharArray_JAVA_IO_OBJECTINPUTSTREAM = "java.io.ObjectInputStream".toCharArray(); //$NON-NLS-1$

-	final char[] CharArray_JAVA_IO_OBJECTOUTPUTSTREAM = "java.io.ObjectOutputStream".toCharArray(); //$NON-NLS-1$

-	final char[] CharArray_JAVA_IO_OBJECTSTREAMFIELD = "java.io.ObjectStreamField".toCharArray(); //$NON-NLS-1$

-	final char[] ANONYM_PREFIX = "new ".toCharArray(); //$NON-NLS-1$

-	final char[] ANONYM_SUFFIX = "(){}".toCharArray(); //$NON-NLS-1$

-    final char[] WILDCARD_NAME = { '?' };

-    final char[] WILDCARD_SUPER = " super ".toCharArray(); //$NON-NLS-1$

-    final char[] WILDCARD_EXTENDS = " extends ".toCharArray(); //$NON-NLS-1$

-    final char[] WILDCARD_MINUS = { '-' };

-    final char[] WILDCARD_STAR = { '*' };

-    final char[] WILDCARD_PLUS = { '+' };

-    

-	// Constant compound names

-	final char[][] JAVA_LANG = {JAVA, LANG};

-	final char[][] JAVA_IO = {JAVA, IO};

-	final char[][] JAVA_LANG_ASSERTIONERROR = {JAVA, LANG, "AssertionError".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_CLASS = {JAVA, LANG, "Class".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_CLASSNOTFOUNDEXCEPTION = {JAVA, LANG, "ClassNotFoundException".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_CLONEABLE = {JAVA, LANG, "Cloneable".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_EXCEPTION = {JAVA, LANG, "Exception".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_ERROR = {JAVA, LANG, "Error".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_ITERABLE = {JAVA, LANG, "Iterable".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_NOCLASSDEFERROR = {JAVA, LANG, "NoClassDefError".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_OBJECT = {JAVA, LANG, OBJECT};

-	final char[][] JAVA_LANG_STRING = {JAVA, LANG, "String".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_STRINGBUFFER = {JAVA, LANG, "StringBuffer".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_STRINGBUILDER = {JAVA, LANG, "StringBuilder".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_SYSTEM = {JAVA, LANG, "System".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_RUNTIMEEXCEPTION = {JAVA, LANG, "RuntimeException".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_THROWABLE = {JAVA, LANG, "Throwable".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_REFLECT_CONSTRUCTOR = {JAVA, LANG, REFLECT, "Constructor".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_IO_PRINTSTREAM = {JAVA, IO, "PrintStream".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_IO_SERIALIZABLE = {JAVA, IO, "Serializable".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_BYTE = {JAVA, LANG, "Byte".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_SHORT = {JAVA, LANG, "Short".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_CHARACTER = {JAVA, LANG, "Character".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_INTEGER = {JAVA, LANG, "Integer".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_LONG = {JAVA, LANG, "Long".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_FLOAT = {JAVA, LANG, "Float".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_DOUBLE = {JAVA, LANG, "Double".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_BOOLEAN = {JAVA, LANG, "Boolean".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_LANG_VOID = {JAVA, LANG, "Void".toCharArray()}; //$NON-NLS-1$

-	final char[][] JAVA_UTIL_ITERATOR = {JAVA, "util".toCharArray(), "Iterator".toCharArray()}; //$NON-NLS-1$//$NON-NLS-2$

-

-	// Constants used by the flow analysis

-	final int EqualOrMoreSpecific = -1;

-	final int NotRelated = 0;

-	final int MoreGeneric = 1;

-

-	// Method collections

-	final TypeBinding[] NoParameters = new TypeBinding[0];

-	final ReferenceBinding[] NoExceptions = new ReferenceBinding[0];

-	final ReferenceBinding[] AnyException = new ReferenceBinding[] { null }; // special handler for all exceptions

-	// Type collections

-	final FieldBinding[] NoFields = new FieldBinding[0];

-	final MethodBinding[] NoMethods = new MethodBinding[0];

-	final ReferenceBinding[] NoSuperInterfaces = new ReferenceBinding[0];

-	final ReferenceBinding[] NoMemberTypes = new ReferenceBinding[0];

-	final TypeVariableBinding[] NoTypeVariables = new TypeVariableBinding[0];

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeIds.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeIds.js
deleted file mode 100644
index b5ba994..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeIds.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public interface TypeIds {

-

-    //base type void null undefined Object String

-	//should have an id that is 0<= id <= 15

-    // The IDs below must be representable using 4 bits so as to fit in operator signatures.

-	final int T_undefined = 0; // should not be changed

-	final int T_Object = 1;

-	final int T_char = 2;

-	final int T_byte = 3;

-	final int T_short = 4;

-	final int T_boolean = 5;

-	final int T_void = 6;

-	final int T_long = 7;

-	final int T_double = 8;

-	final int T_float = 9;

-	final int T_int = 10;

-	final int T_String = 11;

-	final int T_null = 12;

-

-	//=========end of 4 bits constraint===========

-

-	final int T_JavaLangObject = T_Object; // for consistency

-	final int T_JavaLangString = T_String; // for consistency

-

-	// well-known exception types

-	final int T_JavaLangClass = 16;

-	final int T_JavaLangStringBuffer = 17;

-	final int T_JavaLangSystem = 18;

-	final int T_JavaLangError = 19;

-	final int T_JavaLangReflectConstructor = 20;

-	final int T_JavaLangThrowable = 21;

-	final int T_JavaLangNoClassDefError = 22;

-	final int T_JavaLangClassNotFoundException = 23;

-	final int T_JavaIoPrintStream = 24;

-	final int T_JavaLangException = 25;

-

-	// wrapper types

-	final int T_JavaLangByte = 26;

-	final int T_JavaLangShort = 27;

-	final int T_JavaLangCharacter = 28;

-	final int T_JavaLangInteger = 29;

-	final int T_JavaLangLong = 30;

-	final int T_JavaLangFloat = 31;

-	final int T_JavaLangDouble = 32;

-	final int T_JavaLangBoolean = 33;

-	final int T_JavaLangVoid = 34;

-

-	// 1.4 features

-	final int T_JavaLangAssertionError = 35;

-	

-	// array interfaces

-	final int T_JavaLangCloneable = 36;

-	final int T_JavaIoSerializable = 37;

-	    

-	// 1.5 features

-	final int T_JavaLangIterable = 38;

-	final int T_JavaUtilIterator = 39;

-	final int T_JavaLangStringBuilder = 40;

-	

-	final int NoId = Integer.MAX_VALUE;

-

-	// implicit conversions: <compileType> to <runtimeType>  (note: booleans are integers at runtime)

-	final int Boolean2Int = T_boolean + (T_int << 4);

-	final int Boolean2String = T_boolean + (T_String << 4);

-	final int Boolean2Boolean = T_boolean + (T_boolean << 4);

-	final int Byte2Byte = T_byte + (T_byte << 4);

-	final int Byte2Short = T_byte + (T_short << 4);

-	final int Byte2Char = T_byte + (T_char << 4);

-	final int Byte2Int = T_byte + (T_int << 4);

-	final int Byte2Long = T_byte + (T_long << 4);

-	final int Byte2Float = T_byte + (T_float << 4);

-	final int Byte2Double = T_byte + (T_double << 4);

-	final int Byte2String = T_byte + (T_String << 4);

-	final int Short2Byte = T_short + (T_byte << 4);

-	final int Short2Short = T_short + (T_short << 4);

-	final int Short2Char = T_short + (T_char << 4);

-	final int Short2Int = T_short + (T_int << 4);

-	final int Short2Long = T_short + (T_long << 4);

-	final int Short2Float = T_short + (T_float << 4);

-	final int Short2Double = T_short + (T_double << 4);

-	final int Short2String = T_short + (T_String << 4);

-	final int Char2Byte = T_char + (T_byte << 4);

-	final int Char2Short = T_char + (T_short << 4);

-	final int Char2Char = T_char + (T_char << 4);

-	final int Char2Int = T_char + (T_int << 4);

-	final int Char2Long = T_char + (T_long << 4);

-	final int Char2Float = T_char + (T_float << 4);

-	final int Char2Double = T_char + (T_double << 4);

-	final int Char2String = T_char + (T_String << 4);

-	final int Int2Byte = T_int + (T_byte << 4);

-	final int Int2Short = T_int + (T_short << 4);

-	final int Int2Char = T_int + (T_char << 4);

-	final int Int2Int = T_int + (T_int << 4);

-	final int Int2Long = T_int + (T_long << 4);

-	final int Int2Float = T_int + (T_float << 4);

-	final int Int2Double = T_int + (T_double << 4);

-	final int Int2String = T_int + (T_String << 4);

-	final int Long2Byte = T_long + (T_byte << 4);

-	final int Long2Short = T_long + (T_short << 4);

-	final int Long2Char = T_long + (T_char << 4);

-	final int Long2Int = T_long + (T_int << 4);

-	final int Long2Long = T_long + (T_long << 4);

-	final int Long2Float = T_long + (T_float << 4);

-	final int Long2Double = T_long + (T_double << 4);

-	final int Long2String = T_long + (T_String << 4);

-	final int Float2Byte = T_float + (T_byte << 4);

-	final int Float2Short = T_float + (T_short << 4);

-	final int Float2Char = T_float + (T_char << 4);

-	final int Float2Int = T_float + (T_int << 4);

-	final int Float2Long = T_float + (T_long << 4);

-	final int Float2Float = T_float + (T_float << 4);

-	final int Float2Double = T_float + (T_double << 4);

-	final int Float2String = T_float + (T_String << 4);

-	final int Double2Byte = T_double + (T_byte << 4);

-	final int Double2Short = T_double + (T_short << 4);

-	final int Double2Char = T_double + (T_char << 4);

-	final int Double2Int = T_double + (T_int << 4);

-	final int Double2Long = T_double + (T_long << 4);

-	final int Double2Float = T_double + (T_float << 4);

-	final int Double2Double = T_double + (T_double << 4);

-	final int Double2String = T_double + (T_String << 4);

-	final int String2String = T_String + (T_String << 4);

-	final int Object2String = T_Object + (T_String << 4);

-	final int Null2String = T_null + (T_String << 4);

-	final int Object2Object = T_Object + (T_Object << 4);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeVariableBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeVariableBinding.js
deleted file mode 100644
index 1ccbc45..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/TypeVariableBinding.js
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 International Business Machines Corp. and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v0.5 

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v05.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- ******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import java.util.Map;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Wildcard;

-

-/**

- * Binding for a type parameter, held by source/binary type or method.

- */

-public class TypeVariableBinding extends ReferenceBinding {

-

-	public Binding declaringElement; // binding of declaring type or method 

-	public int rank; // declaration rank, can be used to match variable in parameterized type

-

-	/**

-	 * Denote the first explicit (binding) bound amongst the supertypes (from declaration in source)

-	 * If no superclass was specified, then it denotes the first superinterface, or null if none was specified.

-	 */

-	public ReferenceBinding firstBound; 

-

-	// actual resolved variable supertypes (if no superclass bound, then associated to Object)

-	public ReferenceBinding superclass;

-	public ReferenceBinding[] superInterfaces; 

-	public char[] genericTypeSignature;

-

-	public TypeVariableBinding(char[] sourceName, Binding declaringElement, int rank) {

-		this.sourceName = sourceName;

-		this.declaringElement = declaringElement;

-		this.rank = rank;

-		this.modifiers = AccPublic | AccGenericSignature; // treat type var as public

-		this.tagBits |= HasTypeVariable;

-	}

-

-	/**

-	 * Returns true if the argument type satisfies all bounds of the type parameter

-	 */

-	public boolean boundCheck(Substitution substitution, TypeBinding argumentType) {

-		if (argumentType == NullBinding) 

-			return true;

-		if (!(argumentType instanceof ReferenceBinding || argumentType.isArrayType()))

-			return false;	

-		if (this.superclass.id != T_Object && !argumentType.isCompatibleWith(substitution.substitute(this.superclass))) {

-		    return false;

-		}

-	    for (int i = 0, length = this.superInterfaces.length; i < length; i++) {

-	        if (!argumentType.isCompatibleWith(substitution.substitute(this.superInterfaces[i]))) {

-				return false;

-	        }

-	    }

-	    if (argumentType.isWildcard()) {

-	        WildcardBinding wildcard = (WildcardBinding) argumentType;

-	        if (wildcard.kind == Wildcard.SUPER) {

-	            if (!boundCheck(substitution, wildcard.bound)) return false;

-	        }

-	    }

-	    return true;

-	}

-

-	/**

-	 * Collect the substitutes into a map for certain type variables inside the receiver type

-	 * e.g.   Collection<T>.findSubstitute(T, Collection<List<X>>):   T --> List<X>

-	 */

-	public void collectSubstitutes(TypeBinding otherType, Map substitutes) {

-		// cannot infer anything from a null type

-		if (otherType == NullBinding) return;

-		

-	    TypeBinding[] variableSubstitutes = (TypeBinding[])substitutes.get(this);

-	    if (variableSubstitutes != null) {

-	        int length = variableSubstitutes.length;

-	        for (int i = 0; i < length; i++) {

-	            if (variableSubstitutes[i] == otherType) return; // already there

-	            if (variableSubstitutes[i] == null) {

-	                variableSubstitutes[i] = otherType;

-	                return;

-	            }

-	        }

-	        // no free spot found, need to grow

-	        System.arraycopy(variableSubstitutes, 0, variableSubstitutes = new TypeBinding[2*length], 0, length);

-	        variableSubstitutes[length] = otherType;

-	        substitutes.put(this, variableSubstitutes);

-	    }

-	}

-	

-	public char[] constantPoolName() { /* java/lang/Object */ 

-	    if (this.firstBound != null) {

-			return this.firstBound.constantPoolName();

-	    }

-	    return this.superclass.constantPoolName(); // java/lang/Object

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#debugName()

-	 */

-	public String debugName() {

-	    return new String(this.sourceName);		

-	}		

-	public TypeBinding erasure() {

-	    if (this.firstBound != null) {

-			return this.firstBound.erasure();

-	    }

-	    return this.superclass; // java/lang/Object

-	}	

-

-	/**

-	 * T::Ljava/util/Map;:Ljava/io/Serializable;

-	 * T:LY<TT;>

-	 */

-	public char[] genericSignature() {

-	    StringBuffer sig = new StringBuffer(10);

-	    sig.append(this.sourceName).append(':');

-	   	int interfaceLength = this.superInterfaces.length;

-	    if (interfaceLength == 0 || this.firstBound == this.superclass) {

-	        sig.append(this.superclass.genericTypeSignature());

-	    }

-		for (int i = 0; i < interfaceLength; i++) {

-		    sig.append(':').append(this.superInterfaces[i].genericTypeSignature());

-		}

-		int sigLength = sig.length();

-		char[] genericSignature = new char[sigLength];

-		sig.getChars(0, sigLength, genericSignature, 0);					

-		return genericSignature;

-	}

-	/**

-	 * T::Ljava/util/Map;:Ljava/io/Serializable;

-	 * T:LY<TT;>

-	 */

-	public char[] genericTypeSignature() {

-	    if (this.genericTypeSignature != null) return this.genericTypeSignature;

-		return this.genericTypeSignature = CharOperation.concat('T', this.sourceName, ';');

-	}

-	/**

-	 * Returns true if a type is identical to another one,

-	 * or for generic types, true if compared to its raw type.

-	 */

-	public boolean isEquivalentTo(TypeBinding otherType) {

-	    if (this == otherType) return true;

-	    if (otherType == null) return false;

-	    if (otherType.isWildcard()) // wildcard

-			return ((WildcardBinding) otherType).boundCheck(this);

-		return false;

-	}	

-	/**

-	 * Returns true if the type variable is directly bound to a given type

-	 */

-	public boolean isErasureBoundTo(TypeBinding type) {

-		if (this.superclass.erasure() == type) 

-			return true;

-		for (int i = 0, length = this.superInterfaces.length; i < length; i++) {

-			if (this.superInterfaces[i].erasure() == type)

-				return true;

-		}

-		return false;

-	}

-	/**

-	 * Returns true if the type was declared as a type variable

-	 */

-	public boolean isTypeVariable() {

-	    return true;

-	}

-	/**

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#readableName()

-     */

-    public char[] readableName() {

-        return this.sourceName;

-    }

-	/**

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#shortReadableName()

-     */

-    public char[] shortReadableName() {

-        return this.readableName();

-    }

-	public ReferenceBinding superclass() {

-		return superclass;

-	}

-	public ReferenceBinding[] superInterfaces() {

-		return superInterfaces;

-	}	

-	/**

-	 * @see java.lang.Object#toString()

-	 */

-	public String toString() {

-		StringBuffer buffer = new StringBuffer(10);

-		buffer.append('<').append(this.sourceName);//.append('[').append(this.rank).append(']');

-		if (this.superclass != null && this.firstBound == this.superclass) {

-		    buffer.append(" extends ").append(this.superclass.debugName()); //$NON-NLS-1$

-		}

-		if (this.superInterfaces != null && this.superInterfaces != NoSuperInterfaces) {

-		   if (this.firstBound != this.superclass) {

-		        buffer.append(" extends "); //$NON-NLS-1$

-	        }

-		    for (int i = 0, length = this.superInterfaces.length; i < length; i++) {

-		        if (i > 0 || this.firstBound == this.superclass) {

-		            buffer.append(" & "); //$NON-NLS-1$

-		        }

-				buffer.append(this.superInterfaces[i].debugName());

-			}

-		}

-		buffer.append('>');

-		return buffer.toString();

-	}	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/UnresolvedReferenceBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/UnresolvedReferenceBinding.js
deleted file mode 100644
index 88c8405..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/UnresolvedReferenceBinding.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public class UnresolvedReferenceBinding extends ReferenceBinding {

-

-ReferenceBinding resolvedType;

-TypeBinding[] wrappers;

-

-UnresolvedReferenceBinding(char[][] compoundName, PackageBinding packageBinding) {

-	this.compoundName = compoundName;

-	this.sourceName = compoundName[compoundName.length - 1]; // reasonable guess

-	this.fPackage = packageBinding;

-	this.wrappers = null;

-}

-void addWrapper(TypeBinding wrapper) {

-	if (this.wrappers == null) {

-		this.wrappers = new TypeBinding[] {wrapper};

-	} else {

-		int length = this.wrappers.length;

-		System.arraycopy(this.wrappers, 0, this.wrappers = new TypeBinding[length + 1], 0, length);

-		this.wrappers[length] = wrapper;

-	}

-}

-public String debugName() {

-	return toString();

-}

-ReferenceBinding resolve(LookupEnvironment environment, boolean convertGenericToRawType) {

-    ReferenceBinding targetType = this.resolvedType;

-	if (targetType == null) {

-		targetType = this.fPackage.getType0(this.compoundName[this.compoundName.length - 1]);

-		if (targetType == this)

-			targetType = environment.askForType(this.compoundName);

-		if (targetType != null && targetType != this) { // could not resolve any better, error was already reported against it

-			setResolvedType(targetType, environment);

-		} else {

-			environment.problemReporter.isClassPathCorrect(this.compoundName, null);

-			return null; // will not get here since the above error aborts the compilation

-		}

-	}

-	if (convertGenericToRawType && targetType.isGenericType()) // raw reference to generic ?

-	    return environment.createRawType(targetType, null);

-	return targetType;

-}

-void setResolvedType(ReferenceBinding targetType, LookupEnvironment environment) {

-	if (this.resolvedType == targetType) return; // already resolved

-

-	// targetType may be a source or binary type

-	this.resolvedType = targetType;

-	// must ensure to update any other type bindings that can contain the resolved type

-	// otherwise we could create 2 : 1 for this unresolved type & 1 for the resolved type

-	if (this.wrappers != null)

-		for (int i = 0, l = this.wrappers.length; i < l; i++)

-			this.wrappers[i].swapUnresolved(this, targetType, environment);

-	environment.updateCaches(this, targetType);

-}

-public String toString() {

-	return "Unresolved type " + ((compoundName != null) ? CharOperation.toString(compoundName) : "UNNAMED"); //$NON-NLS-1$ //$NON-NLS-2$

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/UpdatedMethodBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/UpdatedMethodBinding.js
deleted file mode 100644
index c938517..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/UpdatedMethodBinding.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-public class UpdatedMethodBinding extends MethodBinding {

-	

-	public TypeBinding updatedDeclaringClass;

-

-	public UpdatedMethodBinding(TypeBinding updatedDeclaringClass, int modifiers, char[] selector, TypeBinding returnType, TypeBinding[] args, ReferenceBinding[] exceptions, ReferenceBinding declaringClass) {

-		super(modifiers, selector, returnType, args, exceptions, declaringClass);

-		this.updatedDeclaringClass = updatedDeclaringClass;

-	}

-	

-	public TypeBinding constantPoolDeclaringClass() {

-		return this.updatedDeclaringClass;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/VariableBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/VariableBinding.js
deleted file mode 100644
index ffe9b43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/VariableBinding.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import org.eclipse.wst.jsdt.internal.compiler.impl.Constant;

-

-public abstract class VariableBinding extends Binding {

-    

-	public int modifiers;

-	public TypeBinding type;

-	public char[] name;

-	private Constant constant;

-	public int id; // for flow-analysis (position in flowInfo bit vector)

-

-	public VariableBinding(char[] name, TypeBinding type, int modifiers, Constant constant) {

-		this.name = name;

-		this.type = type;

-		this.modifiers = modifiers;

-		this.constant = constant;

-	}

-	

-	public Constant constant() {

-		return this.constant;

-	}

-	

-	public final boolean isBlankFinal(){

-		return (modifiers & AccBlankFinal) != 0;

-	}

-	/* Answer true if the receiver is final and cannot be changed

-	*/

-	

-	public boolean isConstantValue() {

-		return constant != Constant.NotAConstant;

-	}

-	

-	public final boolean isFinal() {

-		return (modifiers & AccFinal) != 0;

-	}

-	public char[] readableName() {

-		return name;

-	}

-	public void setConstant(Constant constant) {

-		this.constant = constant;

-	}

-	public String toString() {

-		String s = (type != null) ? type.debugName() : "UNDEFINED TYPE"; //$NON-NLS-1$

-		s += " "; //$NON-NLS-1$

-		s += (name != null) ? new String(name) : "UNNAMED FIELD"; //$NON-NLS-1$

-		return s;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/WildcardBinding.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/WildcardBinding.js
deleted file mode 100644
index 434ea0d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/lookup/WildcardBinding.js
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000-2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.lookup;

-

-import java.util.Map;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Wildcard;

-

-/*

- * A wildcard acts as an argument for parameterized types, allowing to

- * abstract parameterized types, e.g. List<String> is not compatible with List<Object>, 

- * but compatible with List<?>.

- */

-public class WildcardBinding extends ReferenceBinding {

-

-	ReferenceBinding genericType;

-	int rank;

-    public TypeBinding bound; // when unbound denotes the corresponding type variable (so as to retrieve its bound lazily)

-	char[] genericSignature;

-	public int kind;

-	ReferenceBinding superclass;

-	ReferenceBinding[] superInterfaces;

-	TypeVariableBinding typeVariable; // corresponding variable

-	LookupEnvironment environment;

-	

-	/**

-	 * When unbound, the bound denotes the corresponding type variable (so as to retrieve its bound lazily)

-	 */

-	public WildcardBinding(ReferenceBinding genericType, int rank, TypeBinding bound, int kind, LookupEnvironment environment) {

-		this.genericType = genericType;

-		this.rank = rank;

-	    this.kind = kind;

-		this.modifiers = AccPublic | AccGenericSignature; // treat wildcard as public

-		this.tagBits |= HasWildcard;

-		this.environment = environment;

-		initialize(genericType, bound);

-

-		if (genericType instanceof UnresolvedReferenceBinding)

-			((UnresolvedReferenceBinding) genericType).addWrapper(this);

-		if (bound instanceof UnresolvedReferenceBinding)

-			((UnresolvedReferenceBinding) bound).addWrapper(this);

-	}

-

-	/**

-	 * Returns true if the argument type satisfies all bounds of the type parameter

-	 */

-	public boolean boundCheck(TypeBinding argumentType) {

-	    switch (this.kind) {

-	        case Wildcard.UNBOUND :

-	            return true;

-	        case Wildcard.EXTENDS :

-	            return argumentType.isCompatibleWith(this.bound);

-	        default: // SUPER

-	            return this.bound.isCompatibleWith(argumentType);

-	    }

-    }

-	

-	/**

-	 * Collect the substitutes into a map for certain type variables inside the receiver type

-	 * e.g.   Collection<T>.findSubstitute(T, Collection<List<X>>):   T --> List<X>

-	 */

-	public void collectSubstitutes(TypeBinding otherType, Map substitutes) {

-	    switch(this.kind) {

-	        case Wildcard.UNBOUND :

-	            return;

-	        case Wildcard.EXTENDS :

-	            this.bound.collectSubstitutes(otherType, substitutes);

-	            return;

-	        default: // SUPER

-	            this.bound.collectSubstitutes(otherType, substitutes);

-	            return;

-	    }

-	}

-	

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#debugName()

-	 */

-	public String debugName() {

-	    return toString();		

-	}	

-	

-    /* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#erasure()

-     */

-    public TypeBinding erasure() {

-    	if (this.kind == Wildcard.EXTENDS)

-	        return this.bound.erasure();

-    	return typeVariable().erasure();

-    }

-

-    /* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#signature()

-     */

-    public char[] genericTypeSignature() {

-        if (this.genericSignature == null) {

-            switch (this.kind) {

-                case Wildcard.UNBOUND : 

-                    this.genericSignature = WILDCARD_STAR;

-                    break;

-                case Wildcard.EXTENDS :

-                    this.genericSignature = CharOperation.concat(WILDCARD_PLUS, this.bound.genericTypeSignature());

-					break;

-				default: // SUPER

-				    this.genericSignature = CharOperation.concat(WILDCARD_MINUS, this.bound.genericTypeSignature());

-            }

-        } 

-        return this.genericSignature;

-    }

-    

-	void initialize(ReferenceBinding someGenericType, TypeBinding someBound) {

-		this.genericType = someGenericType;

-		this.bound = someBound;

-		if (someGenericType != null) {

-			this.fPackage = someGenericType.getPackage();

-		}

-		if (someBound != null) {

-		    if (someBound.isTypeVariable())

-		        this.tagBits |= HasTypeVariable;

-		}

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#isClass()

-	 */

-	public boolean isClass() {

-	    return erasure().isClass();

-	}

-	/**

-	 * Returns true if a type is identical to another one,

-	 * or for generic types, true if compared to its raw type.

-	 */

-	public boolean isEquivalentTo(TypeBinding otherType) {

-	    if (this == otherType) return true;

-        if (otherType == null) return false;

-	    switch (this.kind) {

-	        case Wildcard.UNBOUND :

-	        default :  // SUPER - cannot use lower bound

-	            return this.typeVariable().isCompatibleWith(otherType);

-	        case Wildcard.EXTENDS :

-	        	if (otherType.isWildcard()) {

-	        		WildcardBinding otherWildcard = (WildcardBinding) otherType;

-	        		switch (otherWildcard.kind) {

-	        			case Wildcard.UNBOUND :

-	        				return true;

-	        			default : // SUPER :

-	        				return false;

-	        			case Wildcard.EXTENDS :

-	        				return this.bound.isCompatibleWith(otherWildcard.bound);

-	        		}

-	        	} else {

-		            return this.bound.isCompatibleWith(otherType);

-	        	}

-	    }        

-	}

-	/**

-	 * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#isInterface()

-	 */

-	public boolean isInterface() {

-	    return erasure().isInterface();

-	}

-	/**

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#isSuperclassOf(org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding)

-     */

-    public boolean isSuperclassOf(ReferenceBinding otherType) {

-        if (this.kind == Wildcard.SUPER) {

-            if (this.bound instanceof ReferenceBinding) {

-                return ((ReferenceBinding) this.bound).isSuperclassOf(otherType);

-            } else { // array bound

-                return otherType.id == T_Object;

-            }

-        }

-        return false;

-    }

-

-    /**

-	 * Returns true if the type is a wildcard

-	 */

-	public boolean isWildcard() {

-	    return true;

-	}

-

-    /* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.Binding#readableName()

-     */

-    public char[] readableName() {

-        switch (this.kind) {

-            case Wildcard.UNBOUND : 

-                return WILDCARD_NAME;

-            case Wildcard.EXTENDS :

-                return CharOperation.concat(WILDCARD_NAME, WILDCARD_EXTENDS, this.bound.readableName());

-			default: // SUPER

-			    return CharOperation.concat(WILDCARD_NAME, WILDCARD_SUPER, this.bound.readableName());

-        }

-    }

-    

-	ReferenceBinding resolve() {

-		BinaryTypeBinding.resolveType(this.genericType, this.environment, null, 0);

-	    switch(this.kind) {

-	        case Wildcard.EXTENDS :

-	        case Wildcard.SUPER :

-				BinaryTypeBinding.resolveType(this.bound, this.environment, null, 0);

-				break;

-			case Wildcard.UNBOUND :

-	    }

-		return this;

-	}

-	

-    /* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.Binding#shortReadableName()

-     */

-    public char[] shortReadableName() {

-        switch (this.kind) {

-            case Wildcard.UNBOUND : 

-                return WILDCARD_NAME;

-            case Wildcard.EXTENDS :

-                return CharOperation.concat(WILDCARD_NAME, WILDCARD_EXTENDS, this.bound.shortReadableName());

-			default: // SUPER

-			    return CharOperation.concat(WILDCARD_NAME, WILDCARD_SUPER, this.bound.shortReadableName());

-        }

-    }

-    

-    /* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding#signature()

-     */

-    public char[] signature() {

-        if (this.signature == null) {

-            this.signature = this.bound.signature();

-        } 

-        return this.signature;

-    }

-    

-    /* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#sourceName()

-     */

-    public char[] sourceName() {

-        switch (this.kind) {

-            case Wildcard.UNBOUND : 

-                return WILDCARD_NAME;

-            case Wildcard.EXTENDS :

-                return CharOperation.concat(WILDCARD_NAME, WILDCARD_EXTENDS, this.bound.sourceName());

-			default: // SUPER

-			    return CharOperation.concat(WILDCARD_NAME, WILDCARD_SUPER, this.bound.sourceName());

-        }        

-    }

-

-    /* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.TypeVariableBinding#superclass()

-     */

-    public ReferenceBinding superclass() {

-		if (this.superclass == null) {

-			TypeBinding superType = null;

-			if (this.kind == Wildcard.EXTENDS) {

-				superType = this.bound;

-			} else if (this.typeVariable() != null) {

-				superType = this.typeVariable.firstBound;

-			}

-			this.superclass = superType != null && superType.isClass()

-				? (ReferenceBinding) superType

-				: environment.getType(JAVA_LANG_OBJECT);

-		}

-		return this.superclass;

-    }

-    /* (non-Javadoc)

-     * @see org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding#superInterfaces()

-     */

-    public ReferenceBinding[] superInterfaces() {

-        if (this.superInterfaces == null) {

-			TypeBinding superType = null;

-			if (this.kind == Wildcard.EXTENDS) {

-				superType = this.bound;

-			} else if (this.typeVariable() != null) {

-				superType = this.typeVariable.firstBound; // TODO (philippe) shouldn't it retrieve variable superinterfaces ?

-			}

-			this.superInterfaces = superType != null && superType.isInterface()

-				? new ReferenceBinding[] { (ReferenceBinding) superType }

-				: NoSuperInterfaces;

-        }

-        return this.superInterfaces;

-    }

-

-	public void swapUnresolved(UnresolvedReferenceBinding unresolvedType, ReferenceBinding resolvedType, LookupEnvironment env) {

-		boolean affected = false;

-		if (this.genericType == unresolvedType) {

-			this.genericType = resolvedType; // no raw conversion

-			affected = true;

-		} else if (this.bound == unresolvedType) {

-			this.bound = resolvedType.isGenericType() ? env.createRawType(resolvedType, null) : resolvedType;

-			affected = true;

-		}

-		if (affected) 

-			initialize(this.genericType, this.bound);

-	}

-

-	/**

-	 * @see java.lang.Object#toString()

-	 */

-	public String toString() {

-        switch (this.kind) {

-            case Wildcard.UNBOUND : 

-                return new String(WILDCARD_NAME);

-            case Wildcard.EXTENDS :

-                return new String(CharOperation.concat(WILDCARD_NAME, WILDCARD_EXTENDS, this.bound.debugName().toCharArray()));

-			default: // SUPER

-			    return new String(CharOperation.concat(WILDCARD_NAME, WILDCARD_SUPER, this.bound.debugName().toCharArray()));

-        }        

-	}		

-	/**

-	 * Returns associated type variable, or null in case of inconsistency

-	 */

-	public TypeVariableBinding typeVariable() {

-		if (this.typeVariable == null) {

-			TypeVariableBinding[] typeVariables = this.genericType.typeVariables();

-			if (this.rank < typeVariables.length)

-				this.typeVariable = typeVariables[this.rank];

-		}

-		return this.typeVariable;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/AbstractCommentParser.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/AbstractCommentParser.js
deleted file mode 100644
index e3efdcd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/AbstractCommentParser.js
+++ /dev/null
@@ -1,1234 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-

-/**

- * Parser specialized for decoding javadoc comments

- */

-public abstract class AbstractCommentParser {

-

-	// recognized tags

-	public static final char[] TAG_DEPRECATED = "deprecated".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_PARAM = "param".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_RETURN = "return".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_THROWS = "throws".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_EXCEPTION = "exception".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_SEE = "see".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_LINK = "link".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_LINKPLAIN = "linkplain".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_INHERITDOC = "inheritDoc".toCharArray(); //$NON-NLS-1$

-	public static final char[] TAG_VALUE = "value".toCharArray(); //$NON-NLS-1$

-

-	// tags value

-	public static final int NO_TAG_VALUE = 0;

-	public static final int TAG_DEPRECATED_VALUE = 1;

-	public static final int TAG_PARAM_VALUE = 2;

-	public static final int TAG_RETURN_VALUE = 3;

-	public static final int TAG_THROWS_VALUE = 4;

-	public static final int TAG_EXCEPTION_VALUE = 5;

-	public static final int TAG_SEE_VALUE = 6;

-	public static final int TAG_LINK_VALUE = 7;

-	public static final int TAG_LINKPLAIN_VALUE = 8;

-	public static final int TAG_INHERITDOC_VALUE = 9;

-	public static final int TAG_VALUE_VALUE = 10;

-	public static final int TAG_OTHERS_VALUE = 11;

-	protected int tagValue = NO_TAG_VALUE;

-	

-	// tags expected positions

-	public final static int ORDERED_TAGS_NUMBER = 3;

-	public final static int PARAM_TAG_EXPECTED_ORDER = 0;

-	public final static int THROWS_TAG_EXPECTED_ORDER = 1;

-	public final static int SEE_TAG_EXPECTED_ORDER = 2;

-	

-	// Kind of comment parser

-	public final static int COMPIL_PARSER = 0x00000001;

-	public final static int DOM_PARSER = 0x00000002;

-	

-	// Public fields

-	public Scanner scanner;

-	public boolean checkDocComment = false;

-	

-	// Protected fields

-	protected boolean inherited, deprecated;

-	protected char[] source;

-	protected int index, endComment, lineEnd;

-	protected int tokenPreviousPosition, lastIdentifierEndPosition, starPosition;

-	protected int textStart, memberStart;

-	protected int tagSourceStart, tagSourceEnd;

-	protected int inlineTagStart;

-	protected Parser sourceParser;

-	protected Object returnStatement;

-	protected boolean lineStarted = false, inlineTagStarted = false;

-	protected int kind;

-	protected int[] lineEnds;

-	

-	// Private fields

-	private int currentTokenType = -1;

-	

-	// Line pointers

-	private int linePtr, lastLinePtr;

-	

-	// Identifier stack

-	protected int identifierPtr;

-	protected char[][] identifierStack;

-	protected int identifierLengthPtr;

-	protected int[] identifierLengthStack;

-	protected long[] identifierPositionStack;

-	// Ast stack

-	protected static int AstStackIncrement = 10;

-	protected int astPtr;

-	protected Object[] astStack;

-	protected int astLengthPtr;

-	protected int[] astLengthStack;

-

-	protected AbstractCommentParser(Parser sourceParser) {

-		this.sourceParser = sourceParser;

-		this.scanner = new Scanner(false, false, false, ClassFileConstants.JDK1_3, null, null, true/*taskCaseSensitive*/);

-		this.identifierStack = new char[20][];

-		this.identifierPositionStack = new long[20];

-		this.identifierLengthStack = new int[10];

-		this.astStack = new Object[30];

-		this.astLengthStack = new int[20];

-	}

-

-	/* (non-Javadoc)

-	 * Returns true if tag @deprecated is present in javadoc comment.

-	 * 

-	 * If javadoc checking is enabled, will also construct an Javadoc node, which will be stored into Parser.javadoc

-	 * slot for being consumed later on.

-	 */

-	protected boolean commentParse(int javadocStart, int javadocEnd) {

-

-		boolean validComment = true;

-		try {

-			// Init scanner position

-			this.scanner.resetTo(javadocStart, javadocEnd);

-			this.endComment = javadocEnd;

-			this.index = javadocStart;

-			readChar(); // starting '/'

-			int previousPosition = this.index;

-			readChar(); // first '*'

-			char nextCharacter= readChar(); // second '*'

-			

-			// Init local variables

-			this.astLengthPtr = -1;

-			this.astPtr = -1;

-			this.currentTokenType = -1;

-			this.inlineTagStarted = false;

-			this.inlineTagStart = -1;

-			this.lineStarted = false;

-			this.returnStatement = null;

-			this.inherited = false;

-			this.deprecated = false;

-			this.linePtr = getLineNumber(javadocStart);

-			this.lastLinePtr = getLineNumber(javadocEnd);

-			this.lineEnd = (this.linePtr == this.lastLinePtr) ? this.endComment : this.scanner.getLineEnd(this.linePtr);

-			this.textStart = -1;

-			char previousChar = 0;

-			int invalidTagLineEnd = -1;

-			int invalidInlineTagLineEnd = -1;

-			

-			// Loop on each comment character

-			while (this.index < this.endComment) {

-				previousPosition = this.index;

-				previousChar = nextCharacter;

-				

-				// Calculate line end (cannot use this.scanner.linePtr as scanner does not parse line ends again)

-				if (this.index > (this.lineEnd+1)) {

-					updateLineEnd();

-				}

-				

-				// Read next char only if token was consumed

-				if (this.currentTokenType < 0) {

-					nextCharacter = readChar(); // consider unicodes

-				} else {

-					previousPosition = this.scanner.getCurrentTokenStartPosition();

-					switch (this.currentTokenType) {

-						case TerminalTokens.TokenNameRBRACE:

-							nextCharacter = '}';

-							break;

-						case TerminalTokens.TokenNameMULTIPLY:

-							nextCharacter = '*';

-							break;

-					default:

-							nextCharacter = this.scanner.currentCharacter;

-					}

-					consumeToken();

-				}

-			

-				if (this.index >= this.endComment) {

-					break;

-				}

-				

-				switch (nextCharacter) {

-					case '@' :

-						// Start tag parsing only if we are on line beginning or at inline tag beginning

-						if ((!this.lineStarted || previousChar == '{')) {

-							this.lineStarted = true;

-							if (this.inlineTagStarted) {

-								this.inlineTagStarted = false;

-								// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=53279

-								// Cannot have @ inside inline comment

-								if (this.sourceParser != null) {

-									int end = previousPosition<invalidInlineTagLineEnd ? previousPosition : invalidInlineTagLineEnd;

-									this.sourceParser.problemReporter().javadocUnterminatedInlineTag(this.inlineTagStart, end);

-								}

-								validComment = false;

-								if (this.lineStarted && this.textStart != -1 && this.textStart < previousPosition) {

-									pushText(this.textStart, previousPosition);

-								}

-								if (this.kind == DOM_PARSER) refreshInlineTagPosition(previousPosition);

-							}

-							if (previousChar == '{') {

-								if (this.textStart != -1 && this.textStart < this.inlineTagStart) {

-									pushText(this.textStart, this.inlineTagStart);

-								}

-								this.inlineTagStarted = true;

-								invalidInlineTagLineEnd = this.lineEnd;

-							} else if (this.textStart != -1 && this.textStart < invalidTagLineEnd) {

-								pushText(this.textStart, invalidTagLineEnd);

-							}

-							this.scanner.resetTo(this.index, this.endComment);

-							this.currentTokenType = -1; // flush token cache at line begin

-							try {

-								if (!parseTag(previousPosition)) {

-									// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51600

-									// do not stop the inline tag when error is encountered to get text after

-									validComment = false;

-									// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51600

-									// for DOM AST node, store tag as text in case of invalid syntax

-									if (this.kind == DOM_PARSER) {

-										createTag();

-										this.textStart = this.tagSourceEnd+1;

-										invalidTagLineEnd  = this.lineEnd;

-									}

-								}

-							} catch (InvalidInputException e) {

-								consumeToken();

-							}

-						}

-						break;

-					case '\r':

-					case '\n':

-						if (this.lineStarted && this.textStart < previousPosition) {

-							pushText(this.textStart, previousPosition);

-						}

-						this.lineStarted = false;

-						// Fix bug 51650

-						this.textStart = -1;

-						break;

-					case '}' :

-						if (this.inlineTagStarted) {

-							if (this.lineStarted && this.textStart != -1 && this.textStart < previousPosition) {

-								pushText(this.textStart, previousPosition);

-							}

-							if (this.kind == DOM_PARSER) refreshInlineTagPosition(previousPosition);

-							this.textStart = this.index;

-							this.inlineTagStarted = false;

-						} else {

-							if (!this.lineStarted) {

-								this.textStart = previousPosition;

-							}

-						}

-						this.lineStarted = true;

-						break;

-					case '{' :

-						if (this.inlineTagStarted) {

-							this.inlineTagStarted = false;

-							// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=53279

-							// Cannot have opening brace in inline comment

-							if (this.sourceParser != null) {

-								int end = previousPosition<invalidInlineTagLineEnd ? previousPosition : invalidInlineTagLineEnd;

-								this.sourceParser.problemReporter().javadocUnterminatedInlineTag(this.inlineTagStart, end);

-							}

-							if (this.lineStarted && this.textStart != -1 && this.textStart < previousPosition) {

-								pushText(this.textStart, previousPosition);

-							}

-							if (this.kind == DOM_PARSER) refreshInlineTagPosition(previousPosition);

-						}

-						if (!this.lineStarted) {

-							this.textStart = previousPosition;

-						}

-						this.lineStarted = true;

-						this.inlineTagStart = previousPosition;

-						break;

-					case '*' :

-					case '\u000c' :	/* FORM FEED               */

-					case ' ' :			/* SPACE                   */

-					case '\t' :			/* HORIZONTAL TABULATION   */

-						// do nothing for space or '*' characters

-						break;

-					default :

-						if (!this.lineStarted) {

-							this.textStart = previousPosition;

-						}

-						this.lineStarted = true;

-						break;

-				}

-			}

-			// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=53279

-			// Cannot leave comment inside inline comment

-			if (this.inlineTagStarted) {

-				this.inlineTagStarted = false;

-				if (this.sourceParser != null) {

-					int end = previousPosition<invalidInlineTagLineEnd ? previousPosition : invalidInlineTagLineEnd;

-					if (this.index >= this.endComment) end = invalidInlineTagLineEnd;

-					this.sourceParser.problemReporter().javadocUnterminatedInlineTag(this.inlineTagStart, end);

-				}

-				if (this.lineStarted && this.textStart != -1 && this.textStart < previousPosition) {

-					pushText(this.textStart, previousPosition);

-				}

-				if (this.kind == DOM_PARSER) {

-					refreshInlineTagPosition(previousPosition);

-				}

-			} else if (this.lineStarted && this.textStart < previousPosition) {

-				pushText(this.textStart, previousPosition);

-			}

-			updateDocComment();

-		} catch (Exception ex) {

-			validComment = false;

-		}

-		return validComment;

-	}

-

-	private void consumeToken() {

-		this.currentTokenType = -1; // flush token cache

-		updateLineEnd();

-	}

-

-	protected abstract Object createArgumentReference(char[] name, int dim, Object typeRef, long[] dimPos, long argNamePos) throws InvalidInputException;

-	protected abstract Object createFieldReference(Object receiver) throws InvalidInputException;

-	protected abstract Object createMethodReference(Object receiver, List arguments) throws InvalidInputException;

-	protected Object createReturnStatement() { return null; }

-	protected abstract void createTag();

-	protected abstract Object createTypeReference(int primitiveToken);

-	

-	private int getIndexPosition() {

-		if (this.index > this.lineEnd) {

-			return this.lineEnd;

-		} else {

-			return this.index-1;

-		}

-	}

-

-	/**

-	 * Search the line number corresponding to a specific position.

-	 * Warning: returned position is 1-based index!

-	 * @see Scanner#getLineNumber(int) We cannot directly use this method

-	 * when linePtr field is not initialized.

-	 */

-	private int getLineNumber(int position) {

-	

-		if (this.scanner.linePtr != -1) {

-			return this.scanner.getLineNumber(position);

-		}

-		if (this.lineEnds == null)

-			return 1;

-		int length = this.lineEnds.length;

-		if (length == 0)

-			return 1;

-		int g = 0, d = length - 1;

-		int m = 0;

-		while (g <= d) {

-			m = (g + d) /2;

-			if (position < this.lineEnds[m]) {

-				d = m-1;

-			} else if (position > this.lineEnds[m]) {

-				g = m+1;

-			} else {

-				return m + 1;

-			}

-		}

-		if (position < this.lineEnds[m]) {

-			return m+1;

-		}

-		return m+2;

-	}

-

-	private int getTokenEndPosition() {

-		if (this.scanner.getCurrentTokenEndPosition() > this.lineEnd) {

-			return this.lineEnd;

-		} else {

-			return this.scanner.getCurrentTokenEndPosition();

-		}

-	}

-	

-	/*

-	 * Parse argument in @see tag method reference

-	 */

-	private Object parseArguments(Object receiver) throws InvalidInputException {

-

-		// Init

-		int modulo = 0; // should be 2 for (Type,Type,...) or 3 for (Type arg,Type arg,...)

-		int iToken = 0;

-		char[] argName = null;

-		List arguments = new ArrayList(10);

-		int start = this.scanner.getCurrentTokenStartPosition();

-		

-		// Parse arguments declaration if method reference

-		nextArg : while (this.index < this.scanner.eofPosition) {

-

-			// Read argument type reference

-			Object typeRef;

-			try {

-				typeRef = parseQualifiedName(false);

-			} catch (InvalidInputException e) {

-				break nextArg;

-			}

-			boolean firstArg = modulo == 0;

-			if (firstArg) { // verify position

-				if (iToken != 0)

-					break nextArg;

-			} else if ((iToken % modulo) != 0) {

-					break nextArg;

-			}

-			if (typeRef == null) {

-				if (firstArg && this.currentTokenType == TerminalTokens.TokenNameRPAREN) {

-					// verify characters after arguments declaration (expecting white space or end comment)

-					if (!verifySpaceOrEndComment()) {

-						int end = this.starPosition == -1 ? this.lineEnd : this.starPosition;

-						if (this.source[end]=='\n') end--;

-						if (this.sourceParser != null) this.sourceParser.problemReporter().javadocMalformedSeeReference(start, end);

-						return null;

-					}

-					this.lineStarted = true;

-					return createMethodReference(receiver, null);

-				}

-				break nextArg;

-			}

-			iToken++;

-

-			// Read possible array declaration

-			int dim = 0;

-			long[] dimPositions = new long[20]; // assume that there won't be more than 20 dimensions...

-			if (readToken() == TerminalTokens.TokenNameLBRACKET) {

-				int dimStart = this.scanner.getCurrentTokenStartPosition();

-				while (readToken() == TerminalTokens.TokenNameLBRACKET) {

-					consumeToken();

-					if (readToken() != TerminalTokens.TokenNameRBRACKET) {

-						break nextArg;

-					}

-					consumeToken();

-					dimPositions[dim++] = (((long) dimStart) << 32) + this.scanner.getCurrentTokenEndPosition();

-				}

-			}

-

-			// Read argument name

-			long argNamePos = -1;

-			if (readToken() == TerminalTokens.TokenNameIdentifier) {

-				consumeToken();

-				if (firstArg) { // verify position

-					if (iToken != 1)

-						break nextArg;

-				} else if ((iToken % modulo) != 1) {

-						break nextArg;

-				}

-				if (argName == null) { // verify that all arguments name are declared

-					if (!firstArg) {

-						break nextArg;

-					}

-				}

-				argName = this.scanner.getCurrentIdentifierSource();

-				argNamePos = (((long)this.scanner.getCurrentTokenStartPosition())<<32)+this.scanner.getCurrentTokenEndPosition();

-				iToken++;

-			} else if (argName != null) { // verify that no argument name is declared

-				break nextArg;

-			}

-			

-			// Verify token position

-			if (firstArg) {

-				modulo = iToken + 1;

-			} else {

-				if ((iToken % modulo) != (modulo - 1)) {

-					break nextArg;

-				}

-			}

-

-			// Read separator or end arguments declaration

-			int token = readToken();

-			char[] name = argName == null ? new char[0] : argName;

-			if (token == TerminalTokens.TokenNameCOMMA) {

-				// Create new argument

-				Object argument = createArgumentReference(name, dim, typeRef, dimPositions, argNamePos);

-				arguments.add(argument);

-				consumeToken();

-				iToken++;

-			} else if (token == TerminalTokens.TokenNameRPAREN) {

-				// verify characters after arguments declaration (expecting white space or end comment)

-				if (!verifySpaceOrEndComment()) {

-					int end = this.starPosition == -1 ? this.lineEnd : this.starPosition;

-					if (this.source[end]=='\n') end--;

-					if (this.sourceParser != null) this.sourceParser.problemReporter().javadocMalformedSeeReference(start, end);

-					return null;

-				}

-				// Create new argument

-				Object argument = createArgumentReference(name, dim, typeRef, dimPositions, argNamePos);

-				arguments.add(argument);

-				consumeToken();

-				return createMethodReference(receiver, arguments);

-			} else {

-				break nextArg;

-			}

-		}

-

-		// Something wrong happened => Invalid input

-		throw new InvalidInputException();

-	}

-

-	/*

-	 * Parse an URL link reference in @see tag

-	 */

-	private boolean parseHref() throws InvalidInputException {

-		int start = this.scanner.getCurrentTokenStartPosition();

-		if (Character.toLowerCase(readChar()) == 'a') {

-			this.scanner.currentPosition = this.index;

-			if (readToken() == TerminalTokens.TokenNameIdentifier) {

-				this.currentTokenType = -1; // do not update line end

-				try {

-					if (CharOperation.equals(this.scanner.getCurrentIdentifierSource(), new char[]{'h', 'r', 'e', 'f'}, false) &&

-						readToken() == TerminalTokens.TokenNameEQUAL) {

-						this.currentTokenType = -1; // do not update line end

-						if (readToken() == TerminalTokens.TokenNameStringLiteral) {

-							this.currentTokenType = -1; // do not update line end

-							// Skip all characters after string literal until closing '>' (see bug 68726)

-							while (this.index <= this.lineEnd && readToken() != TerminalTokens.TokenNameGREATER) {

-								this.currentTokenType = -1; // do not update line end

-							}

-							if (this.currentTokenType == TerminalTokens.TokenNameGREATER) {

-								consumeToken(); // update line end as new lines are allowed in URL description

-								while (readToken() != TerminalTokens.TokenNameLESS) {

-									if (this.scanner.currentPosition >= this.scanner.eofPosition || this.scanner.currentCharacter == '@') {

-										// Reset position: we want to rescan last token

-										this.index = this.tokenPreviousPosition;

-										this.scanner.currentPosition = this.tokenPreviousPosition;

-										this.currentTokenType = -1;

-										// Signal syntax error

-										if (this.tagValue != TAG_VALUE_VALUE && this.sourceParser != null)

-											this.sourceParser.problemReporter().javadocInvalidSeeUrlReference(start, this.lineEnd);

-										return false;

-									}

-									consumeToken();

-								}

-								this.currentTokenType = -1; // do not update line end

-								start = this.scanner.getCurrentTokenStartPosition();

-								if (readChar() == '/') {

-									if (Character.toLowerCase(readChar()) == 'a') {

-										if (readChar() == '>') {

-											// Valid href

-											return true;

-										}

-									}

-								}

-							}

-						}

-					}

-				} catch (InvalidInputException ex) {

-					// Do nothing as we want to keep positions for error message

-				}

-			}

-		}

-		// Reset position: we want to rescan last token

-		this.index = this.tokenPreviousPosition;

-		this.scanner.currentPosition = this.tokenPreviousPosition;

-		this.currentTokenType = -1;

-		// Signal syntax error

-		if (this.tagValue != TAG_VALUE_VALUE && this.sourceParser != null)

-			this.sourceParser.problemReporter().javadocInvalidSeeUrlReference(start, this.lineEnd);

-		return false;

-	}

-

-	/*

-	 * Parse a method reference in @see tag

-	 */

-	private Object parseMember(Object receiver) throws InvalidInputException {

-		// Init

-		this.identifierPtr = -1;

-		this.identifierLengthPtr = -1;

-		int start = this.scanner.getCurrentTokenStartPosition();

-		this.memberStart = start;

-	

-		// Get member identifier

-		if (readToken() == TerminalTokens.TokenNameIdentifier) {

-			consumeToken();

-			pushIdentifier(true);

-			// Look for next token to know whether it's a field or method reference

-			int previousPosition = this.index;

-			if (readToken() == TerminalTokens.TokenNameLPAREN) {

-				consumeToken();

-				start = this.scanner.getCurrentTokenStartPosition();

-				try {

-					return parseArguments(receiver);

-				} catch (InvalidInputException e) {

-					int end = this.scanner.getCurrentTokenEndPosition() < this.lineEnd ?

-							this.scanner.getCurrentTokenEndPosition() :

-							this.scanner.getCurrentTokenStartPosition();

-					end = end < this.lineEnd ? end : this.lineEnd;

-					if (this.sourceParser != null) this.sourceParser.problemReporter().javadocInvalidSeeReferenceArgs(start, end);

-				}

-				return null;

-			}

-	

-			// Reset position: we want to rescan last token

-			this.index = previousPosition;

-			this.scanner.currentPosition = previousPosition;

-			this.currentTokenType = -1;

-	

-			// Verify character(s) after identifier (expecting space or end comment)

-			if (!verifySpaceOrEndComment()) {

-				int end = this.starPosition == -1 ? this.lineEnd : this.starPosition;

-				if (this.source[end]=='\n') end--;

-				if (this.sourceParser != null) this.sourceParser.problemReporter().javadocMalformedSeeReference(start, end);

-				return null;

-			}

-			return createFieldReference(receiver);

-		}

-		int end = getTokenEndPosition() - 1;

-		end = start > end ? start : end;

-		if (this.sourceParser != null) this.sourceParser.problemReporter().javadocInvalidReference(start, end);

-		// Reset position: we want to rescan last token

-		this.index = this.tokenPreviousPosition;

-		this.scanner.currentPosition = this.tokenPreviousPosition;

-		this.currentTokenType = -1;

-		return null;

-	}

-

-	/*

-	 * Parse @param tag declaration

-	 */

-	protected boolean parseParam() {

-

-		// Store current token state

-		int start = this.tagSourceStart;

-		int end = this.tagSourceEnd;

-

-		try {

-			// Push identifier next

-			int token = readToken();

-			switch (token) {

-				case TerminalTokens.TokenNameIdentifier :

-					consumeToken();

-					return pushParamName();

-				case TerminalTokens.TokenNameEOF :

-					break;

-				default :

-					start = this.scanner.getCurrentTokenStartPosition();

-					end = getTokenEndPosition();

-					if (end < start) start = this.tagSourceStart;

-					break;

-			}

-		} catch (InvalidInputException e) {

-			end = getTokenEndPosition();

-		}

-

-		// Reset position to avoid missing tokens when new line was encountered

-		this.index = this.tokenPreviousPosition;

-		this.scanner.currentPosition = this.tokenPreviousPosition;

-		this.currentTokenType = -1;

-

-		// Report problem

-		if (this.sourceParser != null) this.sourceParser.problemReporter().javadocMissingParamName(start, end);

-		return false;

-	}

-

-	/*

-	 * Parse a qualified name and built a type reference if the syntax is valid.

-	 */

-	protected Object parseQualifiedName(boolean reset) throws InvalidInputException {

-

-		// Reset identifier stack if requested

-		if (reset) {

-			this.identifierPtr = -1;

-			this.identifierLengthPtr = -1;

-		}

-

-		// Scan tokens

-		int primitiveToken = -1;

-		nextToken : for (int iToken = 0; ; iToken++) {

-			int token = readToken();

-			switch (token) {

-				case TerminalTokens.TokenNameIdentifier :

-					if (((iToken % 2) > 0)) { // identifiers must be odd tokens

-						break nextToken;

-					}

-					pushIdentifier(iToken == 0);

-					consumeToken();

-					break;

-

-				case TerminalTokens.TokenNameDOT :

-					if ((iToken % 2) == 0) { // dots must be even tokens

-						throw new InvalidInputException();

-					}

-					consumeToken();

-					break;

-

-				case TerminalTokens.TokenNamevoid :

-				case TerminalTokens.TokenNameboolean :

-				case TerminalTokens.TokenNamebyte :

-				case TerminalTokens.TokenNamechar :

-				case TerminalTokens.TokenNamedouble :

-				case TerminalTokens.TokenNamefloat :

-				case TerminalTokens.TokenNameint :

-				case TerminalTokens.TokenNamelong :

-				case TerminalTokens.TokenNameshort :

-					if (iToken > 0) {

-						throw new InvalidInputException();

-					}

-					pushIdentifier(true);

-					primitiveToken = token;

-					consumeToken();

-					break nextToken;

-

-				default :

-					if (iToken == 0) {

-						return null;

-					}

-					if ((iToken % 2) == 0) { // cannot leave on a dot

-						// Reset position: we want to rescan last token

-						if (this.kind == DOM_PARSER && this.currentTokenType != -1) {

-							this.index = this.tokenPreviousPosition;

-							this.scanner.currentPosition = this.tokenPreviousPosition;

-							this.currentTokenType = -1;

-						}

-						throw new InvalidInputException();

-					}

-					break nextToken;

-			}

-		}

-		// Reset position: we want to rescan last token

-		if (this.currentTokenType != -1) {

-			this.index = this.tokenPreviousPosition;

-			this.scanner.currentPosition = this.tokenPreviousPosition;

-			this.currentTokenType = -1;

-		}

-		this.lastIdentifierEndPosition = (int) this.identifierPositionStack[this.identifierPtr];

-		return createTypeReference(primitiveToken);

-	}

-

-	/*

-	 * Parse a reference in @see tag

-	 */

-	protected boolean parseReference() throws InvalidInputException {

-		int currentPosition = this.scanner.currentPosition;

-		try {

-			Object typeRef = null;

-			Object reference = null;

-			int previousPosition = -1;

-			int typeRefStartPosition = -1;

-			

-			// Get reference tokens

-			nextToken : while (this.index < this.scanner.eofPosition) {

-				previousPosition = this.index;

-				int token = readToken();

-				switch (token) {

-					case TerminalTokens.TokenNameStringLiteral : // @see "string"

-						consumeToken();

-						int start = this.scanner.getCurrentTokenStartPosition();

-						if (this.tagValue == TAG_VALUE_VALUE) {

-							if (this.sourceParser != null) this.sourceParser.problemReporter().javadocInvalidValueReference(start, getTokenEndPosition());

-						} else {

-							// If typeRef != null we may raise a warning here to let user know there's an unused reference...

-							// Currently as javadoc 1.4.2 ignore it, we do the same (see bug 69302)

-							if (typeRef != null) {

-								start = this.tagSourceEnd+1;

-								previousPosition = start;

-								typeRef = null;

-							}

-							// verify end line (expecting empty or end comment)

-							if (verifyEndLine(previousPosition)) {

-								return true;

-							}

-							if (this.sourceParser != null) this.sourceParser.problemReporter().javadocUnexpectedText(this.scanner.currentPosition, this.lineEnd);

-						}

-						return false;

-					case TerminalTokens.TokenNameLESS : // @see "<a href="URL#Value">label</a>

-						consumeToken();

-						start = this.scanner.getCurrentTokenStartPosition();

-						if (parseHref()) {

-							consumeToken();

-							// If typeRef != null we may raise a warning here to let user know there's an unused reference...

-							// Currently as javadoc 1.4.2 ignore it, we do the same (see bug 69302)

-							if (typeRef != null) {

-								start = this.tagSourceEnd+1;

-								previousPosition = start;

-								typeRef = null;

-							}

-							// verify end line (expecting empty or end comment)

-							if (verifyEndLine(previousPosition)) {

-								return true;

-							}

-							if (this.tagValue != TAG_VALUE_VALUE && this.sourceParser != null) {

-//								this.sourceParser.problemReporter().javadocInvalidReference(start, this.lineEnd);

-								if (this.sourceParser != null) this.sourceParser.problemReporter().javadocUnexpectedText(this.scanner.currentPosition, this.lineEnd);

-							}

-						}

-						if (this.tagValue == TAG_VALUE_VALUE && this.sourceParser != null) {

-							this.sourceParser.problemReporter().javadocInvalidValueReference(start, getIndexPosition());

-						}

-						return false;

-					case TerminalTokens.TokenNameERROR :

-						if (this.scanner.currentCharacter == '#') { // @see ...#member

-							consumeToken();

-							reference = parseMember(typeRef);

-							if (reference != null) {

-								return pushSeeRef(reference);

-							}

-							return false;

-						}

-						break nextToken;

-					case TerminalTokens.TokenNameIdentifier :

-						if (typeRef == null) {

-							typeRefStartPosition = this.scanner.getCurrentTokenStartPosition();

-							typeRef = parseQualifiedName(true);

-							break;

-						}

-					default :

-						break nextToken;

-				}

-			}

-

-			// Verify that we got a reference

-			if (reference == null) reference = typeRef;

-			if (reference == null) {

-				this.index = this.tokenPreviousPosition;

-				this.scanner.currentPosition = this.tokenPreviousPosition;

-				this.currentTokenType = -1;

-				if (this.tagValue == TAG_VALUE_VALUE) {

-					if (this.kind == DOM_PARSER) createTag();

-					return true;

-				}

-				if (this.sourceParser != null) this.sourceParser.problemReporter().javadocMissingReference(this.tagSourceStart, this.tagSourceEnd);

-				return false;

-			}

-

-			// Reset position at the end of type reference

-			this.index = this.lastIdentifierEndPosition+1;

-			this.scanner.currentPosition = this.index;

-			this.currentTokenType = -1;

-

-			// In case of @value, we have an invalid reference (only static field refs are valid for this tag)

-			if (this.tagValue == TAG_VALUE_VALUE) {

-				if (this.sourceParser != null) this.sourceParser.problemReporter().javadocInvalidReference(typeRefStartPosition, this.lineEnd);

-				return false;

-			}

-

-			// Verify that line end does not start with an open parenthese (which could be a constructor reference wrongly written...)

-			// See bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=47215

-			char ch = peekChar();

-			if (ch == '(') {

-				if (this.sourceParser != null) this.sourceParser.problemReporter().javadocMissingHashCharacter(typeRefStartPosition, this.lineEnd, String.valueOf(this.source, typeRefStartPosition, this.lineEnd-typeRefStartPosition+1));

-				return false;

-			}

-

-			// Verify that we get white space after reference

-			if (!verifySpaceOrEndComment()) {

-				this.index = this.tokenPreviousPosition;

-				this.scanner.currentPosition = this.tokenPreviousPosition;

-				this.currentTokenType = -1;

-				int end = this.starPosition == -1 ? this.lineEnd : this.starPosition;

-				if (this.source[end]=='\n') end--;

-				if (this.sourceParser != null) this.sourceParser.problemReporter().javadocMalformedSeeReference(typeRefStartPosition, end);

-				return false;

-			}

-			

-			// Everything is OK, store reference

-			return pushSeeRef(reference);

-		}

-		catch (InvalidInputException ex) {

-			if (this.sourceParser != null) this.sourceParser.problemReporter().javadocInvalidReference(currentPosition, getTokenEndPosition());

-		}

-		// Reset position to avoid missing tokens when new line was encountered

-		this.index = this.tokenPreviousPosition;

-		this.scanner.currentPosition = this.tokenPreviousPosition;

-		this.currentTokenType = -1;

-		return false;

-	}

-

-	/*

-	 * Parse @return tag declaration

-	 */

-	protected abstract boolean parseReturn();

-

-	/*

-	 * Parse @see tag declaration

-	 *

-	protected boolean parseSee(int value) {

-		int start = this.scanner.currentPosition;

-		try {

-			return parseReference(value);

-		} catch (InvalidInputException ex) {

-				if (this.sourceParser != null) this.sourceParser.problemReporter().javadocInvalidSeeReference(start, getEndPosition());

-		}

-		// Reset position to avoid missing tokens when new line was encountered

-		this.index = this.tokenPreviousPosition;

-		this.scanner.currentPosition = this.tokenPreviousPosition;

-		this.currentTokenType = -1;

-		return false;

-	}

-	*/

-

-	/*

-	 * Parse tag declaration

-	 */

-	protected abstract boolean parseTag(int previousPosition) throws InvalidInputException;

-

-	/*

-	 * Parse @throws tag declaration

-	 */

-	protected boolean parseThrows() {

-		int start = this.scanner.currentPosition;

-		try {

-			Object typeRef = parseQualifiedName(true);

-			if (typeRef == null) {

-				if (this.sourceParser != null) this.sourceParser.problemReporter().javadocMissingThrowsClassName(this.tagSourceStart, this.tagSourceEnd);

-			} else {

-				return pushThrowName(typeRef);

-			}

-		} catch (InvalidInputException ex) {

-			if (this.sourceParser != null) this.sourceParser.problemReporter().javadocInvalidThrowsClass(start, getTokenEndPosition());

-		}

-		return false;

-	}

-

-	/*

-	 * Return current character without move index position.

-	 */

-	protected char peekChar() {

-		int idx = this.index;

-		char c = this.source[idx++];

-		if (c == '\\' && this.source[idx] == 'u') {

-			int c1, c2, c3, c4;

-			idx++;

-			while (this.source[idx] == 'u')

-				idx++;

-			if (!(((c1 = Character.getNumericValue(this.source[idx++])) > 15 || c1 < 0)

-					|| ((c2 = Character.getNumericValue(this.source[idx++])) > 15 || c2 < 0)

-					|| ((c3 = Character.getNumericValue(this.source[idx++])) > 15 || c3 < 0) || ((c4 = Character.getNumericValue(this.source[idx++])) > 15 || c4 < 0))) {

-				c = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			}

-		}

-		return c;

-	}

-

-	/*

-	 * push the consumeToken on the identifier stack. Increase the total number of identifier in the stack.

-	 */

-	protected void pushIdentifier(boolean newLength) {

-

-		int stackLength = this.identifierStack.length;

-		if (++this.identifierPtr >= stackLength) {

-			System.arraycopy(

-				this.identifierStack, 0,

-				this.identifierStack = new char[stackLength + 10][], 0,

-				stackLength);

-			System.arraycopy(

-				this.identifierPositionStack, 0,

-				this.identifierPositionStack = new long[stackLength + 10], 0,

-				stackLength);

-		}

-		this.identifierStack[this.identifierPtr] = this.scanner.getCurrentIdentifierSource();

-		this.identifierPositionStack[this.identifierPtr] = (((long) this.scanner.startPosition) << 32) + (this.scanner.currentPosition - 1);

-

-		if (newLength) {

-			stackLength = this.identifierLengthStack.length;

-			if (++this.identifierLengthPtr >= stackLength) {

-				System.arraycopy(

-					this.identifierLengthStack, 0,

-					this.identifierLengthStack = new int[stackLength + 10], 0,

-					stackLength);

-			}

-			this.identifierLengthStack[this.identifierLengthPtr] = 1;

-		} else {

-			this.identifierLengthStack[this.identifierLengthPtr]++;

-		}

-	}

-

-	/*

-	 * Add a new obj on top of the ast stack.

-	 * If new length is required, then add also a new length in length stack.

-	 */

-	protected void pushOnAstStack(Object node, boolean newLength) {

-

-		if (node == null) {

-			this.astLengthStack[++this.astLengthPtr] = 0;

-			return;

-		}

-

-		int stackLength = this.astStack.length;

-		if (++this.astPtr >= stackLength) {

-			System.arraycopy(

-				this.astStack, 0,

-				this.astStack = new Object[stackLength + AstStackIncrement], 0,

-				stackLength);

-			this.astPtr = stackLength;

-		}

-		this.astStack[this.astPtr] = node;

-

-		if (newLength) {

-			stackLength = this.astLengthStack.length;

-			if (++this.astLengthPtr >= stackLength) {

-				System.arraycopy(

-					this.astLengthStack, 0,

-					this.astLengthStack = new int[stackLength + AstStackIncrement], 0,

-					stackLength);

-			}

-			this.astLengthStack[this.astLengthPtr] = 1;

-		} else {

-			this.astLengthStack[this.astLengthPtr]++;

-		}

-	}

-

-	/*

-	 * Push a param name in ast node stack.

-	 */

-	protected abstract boolean pushParamName();

-

-	/*

-	 * Push a reference statement in ast node stack.

-	 */

-	protected abstract boolean pushSeeRef(Object statement);

-

-	/*

-	 * Push a text element in ast node stack

-	 */

-	protected abstract void pushText(int start, int end);

-

-	/*

-	 * Push a throws type ref in ast node stack.

-	 */

-	protected abstract boolean pushThrowName(Object typeRef);

-

-	/*

-	 * Read current character and move index position.

-	 * Warning: scanner position is unchanged using this method!

-	 */

-	protected char readChar() {

-	

-		char c = this.source[this.index++];

-		if (c == '\\' && this.source[this.index] == 'u') {

-			int c1, c2, c3, c4;

-			int pos = this.index;

-			this.index++;

-			while (this.source[this.index] == 'u')

-				this.index++;

-			if (!(((c1 = Character.getNumericValue(this.source[this.index++])) > 15 || c1 < 0)

-					|| ((c2 = Character.getNumericValue(this.source[this.index++])) > 15 || c2 < 0)

-					|| ((c3 = Character.getNumericValue(this.source[this.index++])) > 15 || c3 < 0) || ((c4 = Character.getNumericValue(this.source[this.index++])) > 15 || c4 < 0))) {

-				c = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			} else {

-				// TODO (frederic) currently reset to previous position, perhaps signal a syntax error would be more appropriate

-				this.index = pos;

-			}

-		}

-		return c;

-	}

-

-	/*

-	 * Read token only if previous was consumed

-	 */

-	private int readToken() throws InvalidInputException {

-		if (this.currentTokenType < 0) {

-			this.tokenPreviousPosition = this.scanner.currentPosition;

-			this.currentTokenType = this.scanner.getNextToken();

-			if (this.scanner.currentPosition > (this.lineEnd+1)) { // be sure to be on next line (lineEnd is still on the same line)

-				this.lineStarted = false;

-				while (this.currentTokenType == TerminalTokens.TokenNameMULTIPLY) {

-					this.currentTokenType = this.scanner.getNextToken();

-				}

-			}

-			this.index = this.scanner.currentPosition;

-			this.lineStarted = true; // after having read a token, line is obviously started...

-		}

-		return this.currentTokenType;

-	}

-

-	protected int readTokenAndConsume() throws InvalidInputException {

-		int token = readToken();

-		consumeToken();

-		return token;

-	}

-	

-	/*

-	 * Refresh start position and length of an inline tag.

-	 */

-	protected void refreshInlineTagPosition(int previousPosition) {

-		// do nothing by default

-	}

-

-	public String toString() {

-		StringBuffer buffer = new StringBuffer();

-		int startPos = this.scanner.currentPosition<this.index ? this.scanner.currentPosition : this.index;

-		int endPos = this.scanner.currentPosition<this.index ? this.index : this.scanner.currentPosition;

-		if (startPos == this.source.length)

-			return "EOF\n\n" + new String(this.source); //$NON-NLS-1$

-		if (endPos > this.source.length)

-			return "behind the EOF\n\n" + new String(this.source); //$NON-NLS-1$

-	

-		char front[] = new char[startPos];

-		System.arraycopy(this.source, 0, front, 0, startPos);

-	

-		int middleLength = (endPos - 1) - startPos + 1;

-		char middle[];

-		if (middleLength > -1) {

-			middle = new char[middleLength];

-			System.arraycopy(

-				this.source, 

-				startPos, 

-				middle, 

-				0, 

-				middleLength);

-		} else {

-			middle = CharOperation.NO_CHAR;

-		}

-		

-		char end[] = new char[this.source.length - (endPos - 1)];

-		System.arraycopy(

-			this.source, 

-			(endPos - 1) + 1, 

-			end, 

-			0, 

-			this.source.length - (endPos - 1) - 1);

-		

-		buffer.append(front);

-		if (this.scanner.currentPosition<this.index) {

-			buffer.append("\n===============================\nScanner current position here -->"); //$NON-NLS-1$

-		} else {

-			buffer.append("\n===============================\nParser index here -->"); //$NON-NLS-1$

-		}

-		buffer.append(middle);

-		if (this.scanner.currentPosition<this.index) {

-			buffer.append("<-- Parser index here\n===============================\n"); //$NON-NLS-1$

-		} else {

-			buffer.append("<-- Scanner current position here\n===============================\n"); //$NON-NLS-1$

-		}

-		buffer.append(end);

-

-		return buffer.toString();

-	}

-

-	/*

-	 * Update 

-	 */

-	protected abstract void updateDocComment();

-

-	/*

-	 * Update line end

-	 */

-	protected void updateLineEnd() {

-		while (this.index > (this.lineEnd+1)) { // be sure to be on next line (lineEnd is still on the same line)

-			if (this.linePtr < this.lastLinePtr) {

-				this.lineEnd = this.scanner.getLineEnd(++this.linePtr) - 1;

-			} else {

-				this.lineEnd = this.endComment;

-				return;

-			}

-		}

-	}

-

-	/*

-	 * Verify that end of the line only contains space characters or end of comment.

-	 * Note that end of comment may be preceeding by several contiguous '*' chars.

-	 */

-	private boolean verifyEndLine(int textPosition) {

-		int startPosition = this.index;

-		int previousPosition = this.index;

-		this.starPosition = -1;

-		char ch = readChar();

-		nextChar: while (true) {

-			switch (ch) {

-				case '\r':

-				case '\n':

-					if (this.kind == DOM_PARSER) {

-						createTag();

-						pushText(textPosition, previousPosition);

-					}

-					this.index = previousPosition;

-					return true;

-				case '\u000c' :	/* FORM FEED               */

-				case ' ' :			/* SPACE                   */

-				case '\t' :			/* HORIZONTAL TABULATION   */

-					if (this.starPosition >= 0) break nextChar;

-					break;

-				case '*':

-					this.starPosition = previousPosition;

-					break;

-				case '/':

-					if (this.starPosition >= textPosition) {

-						if (this.kind == DOM_PARSER) {

-							createTag();

-							pushText(textPosition, this.starPosition);

-						}

-						return true;

-					}

-				default :

-					// leave loop

-					break nextChar;

-				

-			}

-			previousPosition = this.index;

-			ch = readChar();

-		}

-		this.index = startPosition;

-		return false;

-	}

-

-	/*

-	 * Verify characters after a name matches one of following conditions:

-	 * 	1- first character is a white space

-	 * 	2- first character is a closing brace *and* we're currently parsing an inline tag

-	 * 	3- are the end of comment (several contiguous star ('*') characters may be

-	 * 	    found before the last slash ('/') character).

-	 */

-	private boolean verifySpaceOrEndComment() {

-		int startPosition = this.index;

-		// Whitespace or inline tag closing brace

-		char ch = peekChar();

-		switch (ch) {

-			case '}':

-				return this.inlineTagStarted;

-			default:

-				if (Character.isWhitespace(ch)) {

-					return true;

-				}

-		}

-		// End of comment

-		int previousPosition = this.index;

-		this.starPosition = -1;

-		ch = readChar();

-		nextChar: while (this.index<this.source.length) {

-			switch (ch) {

-				case '*':

-					// valid whatever the number of star before last '/'

-					this.starPosition = previousPosition;

-					break;

-				case '/':

-					if (this.starPosition >= startPosition) { // valid only if a star was previous character

-						return true;

-					}

-				default :

-					// invalid whatever other character, even white spaces

-					this.index = startPosition;

-					return false;

-				

-			}

-			previousPosition = this.index;

-			ch = readChar();

-		}

-		this.index = startPosition;

-		return false;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/JavadocParser.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/JavadocParser.js
deleted file mode 100644
index 97a6b8d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/JavadocParser.js
+++ /dev/null
@@ -1,632 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-import java.util.List;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Expression;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ImplicitDocTypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Javadoc;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocAllocationExpression;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocArgumentExpression;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocArrayQualifiedTypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocArraySingleTypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocFieldReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocMessageSend;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocQualifiedTypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocReturnStatement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocSingleNameReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.JavadocSingleTypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-

-/**

- * Parser specialized for decoding javadoc comments

- */

-public class JavadocParser extends AbstractCommentParser {

-

-	// Public fields

-	public Javadoc docComment;

-	

-	// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51600

-	// Store param references for tag with invalid syntax

-	private int invalidParamReferencesPtr = -1;

-	private JavadocSingleNameReference[] invalidParamReferencesStack;

-

-	// Store current tag stack pointer

-	private int currentAstPtr= -2;

-

-	public JavadocParser(Parser sourceParser) {

-		super(sourceParser);

-		this.checkDocComment = this.sourceParser.options.docCommentSupport;

-		this.kind = COMPIL_PARSER;

-	}

-

-	/* (non-Javadoc)

-	 * Returns true if tag @deprecated is present in javadoc comment.

-	 * 

-	 * If javadoc checking is enabled, will also construct an Javadoc node, which will be stored into Parser.javadoc

-	 * slot for being consumed later on.

-	 */

-	public boolean checkDeprecation(int javadocStart, int javadocEnd) {

-

-		try {

-			this.source = this.sourceParser.scanner.source;

-			this.index = javadocStart +3;

-			this.endComment = javadocEnd - 2;

-			if (this.checkDocComment) {

-				// Initialization

-				this.scanner.lineEnds = this.sourceParser.scanner.lineEnds;

-				this.scanner.linePtr = this.sourceParser.scanner.linePtr;

-				this.lineEnds = this.scanner.lineEnds;

-				this.docComment = new Javadoc(javadocStart, javadocEnd);

-				commentParse(javadocStart, javadocEnd);

-			} else {

-				// Init javadoc if necessary

-				if (this.sourceParser.options.getSeverity(CompilerOptions.MissingJavadocComments) != ProblemSeverities.Ignore) {

-					this.docComment = new Javadoc(javadocStart, javadocEnd);

-				} else {

-					this.docComment = null;

-				}

-				

-				// Parse comment

-				int firstLineNumber = this.sourceParser.scanner.getLineNumber(javadocStart);

-				int lastLineNumber = this.sourceParser.scanner.getLineNumber(javadocEnd);

-	

-				// scan line per line, since tags must be at beginning of lines only

-				nextLine : for (int line = firstLineNumber; line <= lastLineNumber; line++) {

-					int lineStart = line == firstLineNumber

-							? javadocStart + 3 // skip leading /**

-							: this.sourceParser.scanner.getLineStart(line);

-					this.index = lineStart;

-					this.lineEnd = line == lastLineNumber

-							? javadocEnd - 2 // remove trailing * /

-							: this.sourceParser.scanner.getLineEnd(line);

-					nextCharacter : while (this.index < this.lineEnd) {

-						char c = readChar(); // consider unicodes

-						switch (c) {

-						    default : 

-						        if (Character.isWhitespace(c)) {

-						            continue nextCharacter;

-						        }

-						        break;

-						    case '*' :

-						        continue nextCharacter;

-						    case '@' :

-						        if ((readChar() == 'd') && (readChar() == 'e') &&

-										(readChar() == 'p') && (readChar() == 'r') &&

-										(readChar() == 'e') && (readChar() == 'c') &&

-										(readChar() == 'a') && (readChar() == 't') &&

-										(readChar() == 'e') && (readChar() == 'd')) {

-									// ensure the tag is properly ended: either followed by a space, a tab, line end or asterisk.

-									c = readChar();

-									if (Character.isWhitespace(c) || c == '*') {

-										return true;

-									}

-						        }

-						}

-			        	continue nextLine;

-					}

-				}

-				return false;

-			}

-		} finally {

-			this.source = null; // release source as soon as finished

-		}

-		return this.deprecated;

-	}

-

-	public String toString() {

-		StringBuffer buffer = new StringBuffer();

-		buffer.append("check javadoc: ").append(this.checkDocComment).append("\n");	//$NON-NLS-1$ //$NON-NLS-2$

-		buffer.append("javadoc: ").append(this.docComment).append("\n");	//$NON-NLS-1$ //$NON-NLS-2$

-		buffer.append(super.toString());

-		return buffer.toString();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser#createArgumentReference(char[], java.lang.Object, int)

-	 */

-	protected Object createArgumentReference(char[] name, int dim, Object typeRef, long[] dimPositions, long argNamePos) throws InvalidInputException {

-		try {

-			TypeReference argTypeRef = (TypeReference) typeRef;

-			if (dim > 0) {

-				long pos = (((long) argTypeRef.sourceStart) << 32) + argTypeRef.sourceEnd;

-				if (typeRef instanceof JavadocSingleTypeReference) {

-					JavadocSingleTypeReference singleRef = (JavadocSingleTypeReference) typeRef;

-					argTypeRef = new JavadocArraySingleTypeReference(singleRef.token, dim, pos);

-				} else {

-					JavadocQualifiedTypeReference qualifRef = (JavadocQualifiedTypeReference) typeRef;

-					argTypeRef = new JavadocArrayQualifiedTypeReference(qualifRef, dim);

-				}

-			}

-			int argEnd = argTypeRef.sourceEnd;

-			if (dim > 0) argEnd = (int) dimPositions[dim-1];

-			if (argNamePos >= 0) argEnd = (int) argNamePos;

-			return new JavadocArgumentExpression(name, argTypeRef.sourceStart, argEnd, argTypeRef);

-		}

-		catch (ClassCastException ex) {

-				throw new InvalidInputException();

-		}

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser#createFieldReference()

-	 */

-	protected Object createFieldReference(Object receiver) throws InvalidInputException {

-		try {

-			// Get receiver type

-			TypeReference typeRef = (TypeReference) receiver;

-			if (typeRef == null) {

-				char[] name = this.sourceParser.compilationUnit.compilationResult.compilationUnit.getMainTypeName();

-				typeRef = new ImplicitDocTypeReference(name, this.memberStart);

-			}

-			// Create field

-			JavadocFieldReference field = new JavadocFieldReference(this.identifierStack[0], this.identifierPositionStack[0]);

-			field.receiver = typeRef;

-			field.tagSourceStart = this.tagSourceStart;

-			field.tagSourceEnd = this.tagSourceEnd;

-			field.tagValue = this.tagValue;

-			return field;

-		}

-		catch (ClassCastException ex) {

-			throw new InvalidInputException();

-		}

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser#createMethodReference(java.lang.Object[])

-	 */

-	protected Object createMethodReference(Object receiver, List arguments) throws InvalidInputException {

-		try {

-			// Get receiver type

-			TypeReference typeRef = (TypeReference) receiver;

-			// Decide whether we have a constructor or not

-			boolean isConstructor = false;

-			if (typeRef == null) {

-				char[] name = this.sourceParser.compilationUnit.compilationResult.compilationUnit.getMainTypeName();

-				isConstructor = CharOperation.equals(this.identifierStack[0], name);

-				typeRef = new ImplicitDocTypeReference(name, this.memberStart);

-			} else {

-				char[] name = null;

-				if (typeRef instanceof JavadocSingleTypeReference) {

-					name = ((JavadocSingleTypeReference)typeRef).token;

-				} else if (typeRef instanceof JavadocQualifiedTypeReference) {

-					char[][] tokens = ((JavadocQualifiedTypeReference)typeRef).tokens;

-					name = tokens[tokens.length-1];

-				} else {

-					throw new InvalidInputException();

-				}

-				isConstructor = CharOperation.equals(this.identifierStack[0], name);

-			}

-			// Create node

-			if (arguments == null) {

-				if (isConstructor) {

-					JavadocAllocationExpression alloc = new JavadocAllocationExpression(this.identifierPositionStack[0]);

-					alloc.type = typeRef;

-					alloc.tagValue = this.tagValue;

-					return alloc;

-				} else {

-					JavadocMessageSend msg = new JavadocMessageSend(this.identifierStack[0], this.identifierPositionStack[0]);

-					msg.receiver = typeRef;

-					msg.tagValue = this.tagValue;

-					return msg;

-				}

-			} else {

-				JavadocArgumentExpression[] expressions = new JavadocArgumentExpression[arguments.size()];

-				arguments.toArray(expressions);

-				if (isConstructor) {

-					JavadocAllocationExpression alloc = new JavadocAllocationExpression(this.identifierPositionStack[0]);

-					alloc.arguments = expressions;

-					alloc.type = typeRef;

-					alloc.tagValue = this.tagValue;

-					return alloc;

-				} else {

-					JavadocMessageSend msg = new JavadocMessageSend(this.identifierStack[0], this.identifierPositionStack[0], expressions);

-					msg.receiver = typeRef;

-					msg.tagValue = this.tagValue;

-					return msg;

-				}

-			}

-		}

-		catch (ClassCastException ex) {

-				throw new InvalidInputException();

-		}

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser#createReturnStatement()

-	 */

-	protected Object createReturnStatement() {

-		return new JavadocReturnStatement(this.scanner.getCurrentTokenStartPosition(),

-					this.scanner.getCurrentTokenEndPosition(),

-					this.scanner.getRawTokenSourceEnd());

-	}

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser#createTypeReference()

-	 */

-	protected Object createTypeReference(int primitiveToken) {

-		TypeReference typeRef = null;

-		int size = this.identifierLengthStack[this.identifierLengthPtr--];

-		if (size == 1) { // Single Type ref

-			typeRef = new JavadocSingleTypeReference(

-						this.identifierStack[this.identifierPtr],

-						this.identifierPositionStack[this.identifierPtr],

-						this.tagSourceStart,

-						this.tagSourceEnd);

-		} else if (size > 1) { // Qualified Type ref

-			char[][] tokens = new char[size][];

-			System.arraycopy(this.identifierStack, this.identifierPtr - size + 1, tokens, 0, size);

-			long[] positions = new long[size];

-			System.arraycopy(this.identifierPositionStack, this.identifierPtr - size + 1, positions, 0, size);

-			typeRef = new JavadocQualifiedTypeReference(tokens, positions, this.tagSourceStart, this.tagSourceEnd);

-		}

-		this.identifierPtr -= size;

-		return typeRef;

-	}

-

-	/*

-	 * Parse @return tag declaration

-	 */

-	protected boolean parseReturn() {

-		if (this.returnStatement == null) {

-			this.returnStatement = createReturnStatement();

-			this.currentAstPtr = this.astPtr;

-			return true;

-		}

-		if (this.sourceParser != null) this.sourceParser.problemReporter().javadocDuplicatedReturnTag(

-				this.scanner.getCurrentTokenStartPosition(),

-				this.scanner.getCurrentTokenEndPosition());

-		return false;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser#parseTag(int)

-	 */

-	protected boolean parseTag(int previousPosition) throws InvalidInputException {

-		boolean valid = false;

-

-		// In case of previous return tag, set it to not empty if parsing an inline tag

-		if (this.currentAstPtr != -2 && this.returnStatement != null) {

-			this.currentAstPtr = -2;

-			JavadocReturnStatement javadocReturn = (JavadocReturnStatement) this.returnStatement;

-			javadocReturn.empty = javadocReturn.empty && !this.inlineTagStarted;

-		}

-

-		// Read tag name

-		int token = readTokenAndConsume();

-		this.tagSourceStart = this.scanner.getCurrentTokenStartPosition();

-		this.tagSourceEnd = this.scanner.getCurrentTokenEndPosition();

-		char[] tag = this.scanner.getCurrentIdentifierSource(); // first token is either an identifier or a keyword

-

-		// Decide which parse to perform depending on tag name

-		this.tagValue = NO_TAG_VALUE;

-		switch (token) {

-			case TerminalTokens.TokenNameIdentifier :

-				switch (tag[0]) {

-					case 'd':

-						if (CharOperation.equals(tag, TAG_DEPRECATED)) {

-							this.deprecated = true;

-							valid = true;

-							this.tagValue = TAG_DEPRECATED_VALUE;

-						}

-					break;

-					case 'i':

-						if (CharOperation.equals(tag, TAG_INHERITDOC)) {

-							// inhibits inherited flag when tags have been already stored

-							// see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51606

-							// Note that for DOM_PARSER, nodes stack may be not empty even no '@' tag

-							// was encountered in comment. But it cannot be the case for COMPILER_PARSER

-							// and so is enough as it is only this parser which signals the missing tag warnings...

-							this.inherited = this.astPtr==-1;

-							valid = true;

-							this.tagValue = TAG_INHERITDOC_VALUE;

-						}

-					break;

-					case 'p':

-						if (CharOperation.equals(tag, TAG_PARAM)) {

-							this.tagValue = TAG_PARAM_VALUE;

-							valid = parseParam();

-						}

-					break;

-					case 'e':

-						if (CharOperation.equals(tag, TAG_EXCEPTION)) {

-							this.tagValue = TAG_EXCEPTION_VALUE;

-							valid = parseThrows();

-						}

-					break;

-					case 's':

-						if (CharOperation.equals(tag, TAG_SEE)) {

-							if (this.inlineTagStarted) {

-								// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=53290

-								// Cannot have @see inside inline comment

-								valid = false;

-								if (this.sourceParser != null)

-									this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);

-							} else {

-								this.tagValue = TAG_SEE_VALUE;

-								valid = parseReference();

-							}

-						}

-					break;

-					case 'l':

-						if (CharOperation.equals(tag, TAG_LINK)) {

-							this.tagValue = TAG_LINK_VALUE;

-							if (this.inlineTagStarted) {

-								valid= parseReference();

-							} else {

-								// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=53290

-								// Cannot have @link outside inline comment

-								valid = false;

-								if (this.sourceParser != null)

-									this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);

-							}

-						} else if (CharOperation.equals(tag, TAG_LINKPLAIN)) {

-							this.tagValue = TAG_LINKPLAIN_VALUE;

-							if (this.inlineTagStarted) {

-								valid = parseReference();

-							} else {

-								valid = false;

-								if (this.sourceParser != null)

-									this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);

-							}

-						}

-					break;

-					case 'v':

-						if (CharOperation.equals(tag, TAG_VALUE) && this.sourceParser != null && this.sourceParser.options.sourceLevel >= ClassFileConstants.JDK1_5) {

-							this.tagValue = TAG_VALUE_VALUE;

-							if (this.inlineTagStarted) {

-								valid = parseReference();

-							} else {

-								valid = false;

-								if (this.sourceParser != null)

-									this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);

-							}

-						} else {

-							createTag();

-						}

-					break;

-				}

-				break;

-			case TerminalTokens.TokenNamereturn :

-				this.tagValue = TAG_RETURN_VALUE;

-				valid = parseReturn();

-				/* verify characters after return tag (we're expecting text description)

-				if(!verifyCharsAfterReturnTag(this.index)) {

-					if (this.sourceParser != null) {

-						int end = this.starPosition == -1 || this.lineEnd<this.starPosition ? this.lineEnd : this.starPosition;

-						this.sourceParser.problemReporter().javadocEmptyReturnTag(this.tagSourceStart, end);

-					}

-				}

-				*/

-				break;

-			case TerminalTokens.TokenNamethrows :

-				this.tagValue = TAG_THROWS_VALUE;

-				valid = parseThrows();

-				break;

-		}

-		this.textStart = this.index;

-		return valid;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser#parseTagName()

-	 */

-	protected void createTag() {

-		this.tagValue = TAG_OTHERS_VALUE;

-	}

-

-	/*

-	 * Push a param name in ast node stack.

-	 */

-	protected boolean pushParamName() {

-		// Create name reference

-		JavadocSingleNameReference nameRef = new JavadocSingleNameReference(this.scanner.getCurrentIdentifierSource(),

-				this.scanner.getCurrentTokenStartPosition(),

-				this.scanner.getCurrentTokenEndPosition());

-		nameRef.tagSourceStart = this.tagSourceStart;

-		nameRef.tagSourceEnd = this.tagSourceEnd;

-		// Push ref on stack

-		if (this.astLengthPtr == -1) { // First push

-			pushOnAstStack(nameRef, true);

-		} else {

-			// Verify that no @throws has been declared before

-			for (int i=THROWS_TAG_EXPECTED_ORDER; i<=this.astLengthPtr; i+=ORDERED_TAGS_NUMBER) {

-				if (this.astLengthStack[i] != 0) {

-					if (this.sourceParser != null) this.sourceParser.problemReporter().javadocUnexpectedTag(this.tagSourceStart, this.tagSourceEnd);

-					// bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=51600

-					// store invalid param references in specific array

-					if (this.invalidParamReferencesPtr == -1l) {

-						this.invalidParamReferencesStack = new JavadocSingleNameReference[10];

-					}

-					int stackLength = this.invalidParamReferencesStack.length;

-					if (++this.invalidParamReferencesPtr >= stackLength) {

-						System.arraycopy(

-							this.invalidParamReferencesStack, 0,

-							this.invalidParamReferencesStack = new JavadocSingleNameReference[stackLength + AstStackIncrement], 0,

-							stackLength);

-					}

-					this.invalidParamReferencesStack[this.invalidParamReferencesPtr] = nameRef;

-					return false;

-				}

-			}

-			switch (this.astLengthPtr % ORDERED_TAGS_NUMBER) {

-				case PARAM_TAG_EXPECTED_ORDER :

-					// previous push was a @param tag => push another param name

-					pushOnAstStack(nameRef, false);

-					break;

-				case SEE_TAG_EXPECTED_ORDER :

-					// previous push was a @see tag => push new param name

-					pushOnAstStack(nameRef, true);

-					break;

-				default:

-					return false;

-			}

-		}

-		return true;

-	}

-

-	/*

-	 * Push a reference statement in ast node stack.

-	 */

-	protected boolean pushSeeRef(Object statement) {

-		if (this.astLengthPtr == -1) { // First push

-			pushOnAstStack(null, true);

-			pushOnAstStack(null, true);

-			pushOnAstStack(statement, true);

-		} else {

-			switch (this.astLengthPtr % ORDERED_TAGS_NUMBER) {

-				case PARAM_TAG_EXPECTED_ORDER :

-					// previous push was a @param tag => push empty @throws tag and new @see tag

-					pushOnAstStack(null, true);

-					pushOnAstStack(statement, true);

-					break;

-				case THROWS_TAG_EXPECTED_ORDER :

-					// previous push was a @throws tag => push new @see tag

-					pushOnAstStack(statement, true);

-					break;

-				case SEE_TAG_EXPECTED_ORDER :

-					// previous push was a @see tag => push another @see tag

-					pushOnAstStack(statement, false);

-					break;

-				default:

-					return false;

-			}

-		}

-		return true;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.wst.jsdt.internal.compiler.parser.AbstractCommentParser#pushText(int, int)

-	 */

-	protected void pushText(int start, int end) {

-		// In case of previous return tag, verify that text make it not empty

-		if (this.currentAstPtr != -2 && this.returnStatement != null) {

-			int position = this.index;

-			this.index = start;

-			boolean empty = true;

-			boolean star = false;

-			char ch = readChar();

-			// Look for first character other than white or '*'

-			if (Character.isWhitespace(ch) || start>(this.tagSourceEnd+1)) {

-				while (this.index <= end && empty) {

-					if (!star) {

-						empty = Character.isWhitespace(ch) || ch == '*';

-						star = ch == '*';

-					} else if (ch != '*') {

-						empty = false;

-						break;

-					}

-					ch = readChar();

-				}

-			}

-			// Store result in previous return tag

-			((JavadocReturnStatement)this.returnStatement).empty = empty;

-			// Reset position and current ast ptr if we are on a different tag than previous return one

-			this.index = position;

-			if (this.currentAstPtr != this.astPtr) {

-				this.currentAstPtr = -2;

-			}

-		}

-	}

-

-	/*

-	 * Push a throws type ref in ast node stack.

-	 */

-	protected boolean pushThrowName(Object typeRef) {

-		if (this.astLengthPtr == -1) { // First push

-			pushOnAstStack(null, true);

-			pushOnAstStack(typeRef, true);

-		} else {

-			switch (this.astLengthPtr % ORDERED_TAGS_NUMBER) {

-				case PARAM_TAG_EXPECTED_ORDER :

-					// previous push was a @param tag => push new @throws tag

-					pushOnAstStack(typeRef, true);

-					break;

-				case THROWS_TAG_EXPECTED_ORDER :

-					// previous push was a @throws tag => push another @throws tag

-					pushOnAstStack(typeRef, false);

-					break;

-				case SEE_TAG_EXPECTED_ORDER :

-					// previous push was a @see tag => push empty @param and new @throws tags

-					pushOnAstStack(null, true);

-					pushOnAstStack(typeRef, true);

-					break;

-				default:

-					return false;

-			}

-		}

-		return true;

-	}

-

-	/*

-	 * Fill associated comment fields with ast nodes information stored in stack.

-	 */

-	protected void updateDocComment() {

-		

-		// Set inherited flag

-		this.docComment.inherited = this.inherited;

-

-		// Set return node if present

-		if (this.returnStatement != null) {

-			this.docComment.returnStatement = (JavadocReturnStatement) this.returnStatement;

-		}

-		

-		// Copy array of invalid syntax param tags

-		if (this.invalidParamReferencesPtr >= 0) {

-			this.docComment.invalidParameters = new JavadocSingleNameReference[this.invalidParamReferencesPtr+1];

-			System.arraycopy(this.invalidParamReferencesStack, 0, this.docComment.invalidParameters, 0, this.invalidParamReferencesPtr+1);

-		}

-

-		// If no nodes stored return

-		if (this.astLengthPtr == -1) {

-			return;

-		}

-

-		// Initialize arrays

-		int[] sizes = new int[ORDERED_TAGS_NUMBER];

-		for (int i=0; i<=this.astLengthPtr; i++) {

-			sizes[i%ORDERED_TAGS_NUMBER] += this.astLengthStack[i];

-		}

-		this.docComment.references = new Expression[sizes[SEE_TAG_EXPECTED_ORDER]];

-		this.docComment.thrownExceptions = new TypeReference[sizes[THROWS_TAG_EXPECTED_ORDER]];

-		this.docComment.parameters = new JavadocSingleNameReference[sizes[PARAM_TAG_EXPECTED_ORDER]];

-

-		// Store nodes in arrays

-		while (this.astLengthPtr >= 0) {

-			int ptr = this.astLengthPtr % ORDERED_TAGS_NUMBER;

-			// Starting with the stack top, so get references (eg. Expression) coming from @see declarations

-			if (ptr == SEE_TAG_EXPECTED_ORDER) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				for (int i=0; i<size; i++) {

-					this.docComment.references[--sizes[ptr]] = (Expression) this.astStack[this.astPtr--];

-				}

-			}

-

-			// Then continuing with class names (eg. TypeReference) coming from @throw/@exception declarations

-			else if (ptr == THROWS_TAG_EXPECTED_ORDER) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				for (int i=0; i<size; i++) {

-					this.docComment.thrownExceptions[--sizes[ptr]] = (TypeReference) this.astStack[this.astPtr--];

-				}

-			}

-

-			// Finally, finishing with parameters nales (ie. Argument) coming from @param declaration

-			else if (ptr == PARAM_TAG_EXPECTED_ORDER) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				for (int i=0; i<size; i++) {

-					this.docComment.parameters[--sizes[ptr]] = (JavadocSingleNameReference) this.astStack[this.astPtr--];

-				}

-			}

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/NLSLine.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/NLSLine.js
deleted file mode 100644
index a83aff9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/NLSLine.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-import java.util.ArrayList;

-import java.util.Iterator;

-import java.util.List;

-import org.eclipse.wst.jsdt.internal.compiler.ast.StringLiteral;

-

-public class NLSLine {

-

-	private List elements;

-

-	public NLSLine() {

-		this.elements = new ArrayList();

-	}

-	

-	/**

-	 * Adds a NLS element to this line.

-	 */

-	public void add(StringLiteral element) {

-		this.elements.add(element);

-	}

-	

-	/**

-	 * returns an Iterator over NLSElements

-	 */

-	public Iterator iterator() {

-		return this.elements.iterator();

-	}

-	

-	public StringLiteral get(int index) {

-		return (StringLiteral) this.elements.get(index);

-	}

-	

-	public void set(int index, StringLiteral literal) {

-		this.elements.set(index, literal);

-	}

-	

-	public boolean exists(int index) {

-		return index >= 0 && index < this.elements.size();

-	}

-	

-	public int size(){

-		return this.elements.size();

-	}

-	

-	public String toString() {

-		StringBuffer result= new StringBuffer();

-		for (Iterator iter= iterator(); iter.hasNext(); ) {

-			result.append("\t"); //$NON-NLS-1$

-			result.append(iter.next().toString());

-			result.append("\n"); //$NON-NLS-1$

-		}

-		return result.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/Parser.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/Parser.js
deleted file mode 100644
index d6d839c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/Parser.js
+++ /dev/null
@@ -1,9112 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Tom Tromey - patch for readTable(String) as described in http://bugs.eclipse.org/bugs/show_bug.cgi?id=32196

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-import java.io.*;

-import java.util.ArrayList;

-import java.util.Collections;

-import java.util.Iterator;

-import java.util.List;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BindingIds;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.parser.diagnose.DiagnoseParser;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public class Parser implements BindingIds, ParserBasicInformation, TerminalTokens, CompilerModifiers, OperatorIds, TypeIds {

-	protected static final int THIS_CALL = ExplicitConstructorCall.This;

-	protected static final int SUPER_CALL = ExplicitConstructorCall.Super;

-

-	public static char asb[] = null;

-	public static char asr[] = null;

-	//ast stack

-	protected final static int AstStackIncrement = 100;

-	public static char base_action[] = null;

-	public static final int BracketKinds = 3;

-    

-	public static short check_table[] = null;

-	public static final int CurlyBracket = 2;

-	// TODO remove once testing is done

-	private static final boolean DEBUG = false;

-	private static final String EOF_TOKEN = "$eof" ; //$NON-NLS-1$

-	private static final String ERROR_TOKEN = "$error" ; //$NON-NLS-1$

-	//expression stack

-	protected final static int ExpressionStackIncrement = 100;

-

-	protected final static int GenericsStackIncrement = 10;

-    

-	private final static String FILEPREFIX = "parser"; //$NON-NLS-1$

-    public static char in_symb[] = null;

-	private static final String INVALID_CHARACTER = "Invalid Character" ; //$NON-NLS-1$

-	public static char lhs[] =  null;

-

-	public static String name[] = null;

-	public static char nasb[] = null;

-	public static char nasr[] = null;

-	public static char non_terminal_index[] = null;

-	private final static String READABLE_NAMES_FILE = "readableNames"; //$NON-NLS-1$

-	private final static String READABLE_NAMES_FILE_NAME =

-		"org.eclipse.wst.jsdt.internal.compiler.parser." + READABLE_NAMES_FILE; //$NON-NLS-1$

-	public static String readableName[] = null;

-	

-	public static byte rhs[] = null;

-	

-	public static long rules_compliance[] =  null;

-	

-	public static final int RoundBracket = 0;

-    

-    public static byte scope_la[] = null;

-    public static char scope_lhs[] = null;

-	

-	public static char scope_prefix[] = null;

-    public static char scope_rhs[] = null;

-    public static char scope_state[] = null;

-

-    public static char scope_state_set[] = null;

-    public static char scope_suffix[] = null;

-	public static final int SquareBracket = 1;

-		

-	//internal data for the automat 

-	protected final static int StackIncrement = 255;

-	

-	public static char term_action[] = null;

-	public static byte term_check[] = null;

-

-	public static char terminal_index[] = null;

-

-	private static final String UNEXPECTED_EOF = "Unexpected End Of File" ; //$NON-NLS-1$

-	public static boolean VERBOSE_RECOVERY = false;

-

-

-

-	protected int astLengthPtr;

-	protected int[] astLengthStack;

-	protected int astPtr;

-	protected ASTNode[] astStack = new ASTNode[AstStackIncrement];

-	public CompilationUnitDeclaration compilationUnit; /*the result from parse()*/

-	protected RecoveredElement currentElement;

-	public int currentToken;

-	protected boolean diet = false; //tells the scanner to jump over some parts of the code/expressions like method bodies

-	protected int dietInt = 0; // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-	protected int endPosition; //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-	protected int endStatementPosition;

-	protected int expressionLengthPtr;

-	protected int[] expressionLengthStack;

-	protected int expressionPtr;

-	protected Expression[] expressionStack = new Expression[ExpressionStackIncrement];

-	public int firstToken ; // handle for multiple parsing goals

-

-	// generics management

-	protected int genericsIdentifiersLengthPtr;

-	protected int[] genericsIdentifiersLengthStack = new int[GenericsStackIncrement];

-	protected int genericsLengthPtr;

-	protected int[] genericsLengthStack = new int[GenericsStackIncrement];

-	protected int genericsPtr;

-	protected ASTNode[] genericsStack = new ASTNode[GenericsStackIncrement];

-	

-	protected boolean hasError;

-	protected boolean hasReportedError;

-

-	//identifiers stacks 

-	protected int identifierLengthPtr;

-	protected int[] identifierLengthStack;

-	protected long[] identifierPositionStack;

-	protected int identifierPtr;

-	protected char[][] identifierStack;

-	

-	protected boolean ignoreNextOpeningBrace;

-	//positions , dimensions , .... (int stacks)

-	protected int intPtr;

-	protected int[] intStack;

-	public int lastAct ; //handle for multiple parsing goals

-

-	//error recovery management

-	protected int lastCheckPoint;

-	protected int lastErrorEndPosition;

-	protected int lastErrorEndPositionBeforeRecovery = -1;

-	protected int lastIgnoredToken, nextIgnoredToken;

-	protected int listLength; // for recovering some incomplete list (interfaces, throws or parameters)

-	protected int listTypeParameterLength; // for recovering some incomplete list (type parameters)

-	protected int lParenPos,rParenPos; //accurate only when used !

-	protected int modifiers;

-	protected int modifiersSourceStart;

-	protected int[] nestedMethod; //the ptr is nestedType

-	protected int nestedType, dimensions;

-	ASTNode [] noAstNodes = new ASTNode[AstStackIncrement];

-	Expression [] noExpressions = new Expression[ExpressionStackIncrement];

-	//modifiers dimensions nestedType etc.......

-	protected boolean optimizeStringLiterals =true;

-	protected CompilerOptions options;

-	protected ProblemReporter problemReporter;

-	protected int rBraceStart, rBraceEnd, rBraceSuccessorStart; //accurate only when used !

-	protected int realBlockPtr;

-	protected int[] realBlockStack;

-	protected int recoveredStaticInitializerStart;

-	public ReferenceContext referenceContext;

-	public boolean reportOnlyOneSyntaxError = false;

-	public boolean reportSyntaxErrorIsRequired = true;

-	protected boolean restartRecovery;

-	//scanner token 

-	public Scanner scanner;

-	protected int[] stack = new int[StackIncrement];

-	protected int stateStackTop;

-	protected int synchronizedBlockSourceStart;

-	protected int[] variablesCounter;

-

-	public Javadoc javadoc;

-	public JavadocParser javadocParser;

-	static {

-		try{

-			initTables();

-		} catch(java.io.IOException ex){

-			throw new ExceptionInInitializerError(ex.getMessage());

-		}

-	}

-public static int asi(int state) {

-

-	return asb[original_state(state)]; 

-}

-public final static short base_check(int i) {

-	return check_table[i - (NUM_RULES + 1)];

-}

-private final static void buildFile(String filename, List listToDump) throws java.io.IOException {

-	BufferedWriter writer = new BufferedWriter(new FileWriter(filename));

-	for (Iterator iterator = listToDump.iterator(); iterator.hasNext(); ) {

-		writer.write(String.valueOf(iterator.next()));

-	}

-	writer.flush();

-	writer.close();

-	System.out.println(filename + " creation complete"); //$NON-NLS-1$

-}

-private final static String[] buildFileForName(String filename, String contents) throws java.io.IOException {

-	String[] result = new String[contents.length()];

-	result[0] = null;

-	int resultCount = 1;

-	

-	StringBuffer buffer = new StringBuffer();

-	

-	int start = contents.indexOf("name[]"); //$NON-NLS-1$

-	start = contents.indexOf('\"', start); 

-	int end = contents.indexOf("};", start); //$NON-NLS-1$

-	

-	contents = contents.substring(start, end);

-	

-	boolean addLineSeparator = false;

-	int tokenStart = -1;

-	StringBuffer currentToken = new StringBuffer();

-	for (int i = 0; i < contents.length(); i++) {

-		char c = contents.charAt(i);

-		if(c == '\"') {

-			if(tokenStart == -1) {

-				tokenStart = i + 1;	

-			} else {

-				if(addLineSeparator) {

-					buffer.append('\n');

-					result[resultCount++] = currentToken.toString();

-					currentToken = new StringBuffer();

-				}

-				String token = contents.substring(tokenStart, i);

-				if(token.equals(ERROR_TOKEN)){

-					token = INVALID_CHARACTER;

-				} else if(token.equals(EOF_TOKEN)) {

-					token = UNEXPECTED_EOF;

-				}

-				buffer.append(token);

-				currentToken.append(token);

-				addLineSeparator = true;

-				tokenStart = -1;

-			}

-		}

-		if(tokenStart == -1 && c == '+'){

-			addLineSeparator = false;

-		}

-	}

-	if(currentToken.length() > 0) {

-		result[resultCount++] = currentToken.toString();

-	}

-	

-	buildFileForTable(filename, buffer.toString().toCharArray());

-	

-	System.arraycopy(result, 0, result = new String[resultCount], 0, resultCount);

-	return result;

-}

-private static void buildFileForReadableName(

-	String file,

-	char[] newLhs,

-	char[] newNonTerminalIndex,

-	String[] newName,

-	String[] tokens) throws java.io.IOException {

-

-	ArrayList entries = new ArrayList();

-	

-	boolean[] alreadyAdded = new boolean[newName.length];

-	

-	for (int i = 0; i < tokens.length; i = i + 3) {

-		if("1".equals(tokens[i])) { //$NON-NLS-1$

-			int index = newNonTerminalIndex[newLhs[Integer.parseInt(tokens[i + 1])]];

-			StringBuffer buffer = new StringBuffer();

-			if(!alreadyAdded[index]) {

-				alreadyAdded[index] = true;

-				buffer.append(newName[index]);

-				buffer.append('=');

-				buffer.append(tokens[i+2].trim());

-				buffer.append('\n');

-				entries.add(String.valueOf(buffer));

-			}

-		}

-	}

-	int i = 1;

-	while(!INVALID_CHARACTER.equals(newName[i])) i++;

-	i++;

-	for (; i < alreadyAdded.length; i++) {

-		if(!alreadyAdded[i]) {

-			System.out.println(newName[i] + " has no readable name"); //$NON-NLS-1$

-		}

-	}

-	Collections.sort(entries);

-	buildFile(file, entries);

-}

-private static void buildFileForCompliance(

-		String file,

-		int length,

-		String[] tokens) throws java.io.IOException {

-

-		byte[] result = new byte[length * 8];

-		

-		for (int i = 0; i < tokens.length; i = i + 3) {

-			if("2".equals(tokens[i])) { //$NON-NLS-1$

-				int index = Integer.parseInt(tokens[i + 1]);

-				String token = tokens[i + 2].trim();

-				long compliance = 0;

-				if("1.4".equals(token)) { //$NON-NLS-1$

-					compliance = ClassFileConstants.JDK1_4;

-				} else if("1.5".equals(token)) { //$NON-NLS-1$

-					compliance = ClassFileConstants.JDK1_5;

-				} else if("recovery".equals(token)) { //$NON-NLS-1$

-					compliance = ClassFileConstants.JDK_DEFERRED;

-				}

-				

-				int j = index * 8;

-				result[j] = 	(byte)(compliance >>> 56);

-				result[j + 1] = (byte)(compliance >>> 48);

-				result[j + 2] = (byte)(compliance >>> 40);

-				result[j + 3] = (byte)(compliance >>> 32);

-				result[j + 4] = (byte)(compliance >>> 24);

-				result[j + 5] = (byte)(compliance >>> 16);

-				result[j + 6] = (byte)(compliance >>> 8);

-				result[j + 7] = (byte)(compliance);

-			}

-		}

-

-		buildFileForTable(file, result); //$NON-NLS-1$

-	}

-private final static void buildFileForTable(String filename, byte[] bytes) throws java.io.IOException {

-	java.io.FileOutputStream stream = new java.io.FileOutputStream(filename);

-	stream.write(bytes);

-	stream.close();

-	System.out.println(filename + " creation complete"); //$NON-NLS-1$

-}

-private final static void buildFileForTable(String filename, char[] chars) throws java.io.IOException {

-

-	byte[] bytes = new byte[chars.length * 2];

-	for (int i = 0; i < chars.length; i++) {

-		bytes[2 * i] = (byte) (chars[i] >>> 8);

-		bytes[2 * i + 1] = (byte) (chars[i] & 0xFF);

-	}

-

-	java.io.FileOutputStream stream = new java.io.FileOutputStream(filename);

-	stream.write(bytes);

-	stream.close();

-	System.out.println(filename + " creation complete"); //$NON-NLS-1$

-}

-private final static byte[] buildFileOfByteFor(String filename, String tag, String[] tokens) throws java.io.IOException {

-

-	//transform the String tokens into chars before dumping then into file

-

-	int i = 0;

-	//read upto the tag

-	while (!tokens[i++].equals(tag)){/*empty*/}

-	//read upto the }

-	

-	byte[] bytes = new byte[tokens.length]; //can't be bigger

-	int ic = 0;

-	String token;

-	while (!(token = tokens[i++]).equals("}")) { //$NON-NLS-1$

-		int c = Integer.parseInt(token);

-		bytes[ic++] = (byte) c;

-	}

-

-	//resize

-	System.arraycopy(bytes, 0, bytes = new byte[ic], 0, ic);

-

-	buildFileForTable(filename, bytes);

-	return bytes;

-}

-private final static char[] buildFileOfIntFor(String filename, String tag, String[] tokens) throws java.io.IOException {

-

-	//transform the String tokens into chars before dumping then into file

-

-	int i = 0;

-	//read upto the tag

-	while (!tokens[i++].equals(tag)){/*empty*/}

-	//read upto the }

-	

-	char[] chars = new char[tokens.length]; //can't be bigger

-	int ic = 0;

-	String token;

-	while (!(token = tokens[i++]).equals("}")) { //$NON-NLS-1$

-		int c = Integer.parseInt(token);

-		chars[ic++] = (char) c;

-	}

-

-	//resize

-	System.arraycopy(chars, 0, chars = new char[ic], 0, ic);

-

-	buildFileForTable(filename, chars);

-	return chars;

-}

-private final static void buildFileOfShortFor(String filename, String tag, String[] tokens) throws java.io.IOException {

-

-	//transform the String tokens into chars before dumping then into file

-

-	int i = 0;

-	//read upto the tag

-	while (!tokens[i++].equals(tag)){/*empty*/}

-	//read upto the }

-	

-	char[] chars = new char[tokens.length]; //can't be bigger

-	int ic = 0;

-	String token;

-	while (!(token = tokens[i++]).equals("}")) { //$NON-NLS-1$

-		int c = Integer.parseInt(token);

-		chars[ic++] = (char) (c + 32768);

-	}

-

-	//resize

-	System.arraycopy(chars, 0, chars = new char[ic], 0, ic);

-

-	buildFileForTable(filename, chars);

-}

-public final static void buildFilesFromLPG(String dataFilename, String dataFilename2)	throws java.io.IOException {

-

-	//RUN THIS METHOD TO GENERATE PARSER*.RSC FILES

-

-	//build from the lpg javadcl.java files that represents the parser tables

-	//lhs check_table asb asr symbol_index

-

-	//[org.eclipse.wst.jsdt.internal.compiler.parser.Parser.buildFilesFromLPG("d:/leapfrog/grammar/javadcl.java")]

-	char[] contents = new char[] {};

-	try {

-		contents = Util.getFileCharContent(new File(dataFilename), null);

-	} catch (IOException ex) {

-		System.out.println(Util.bind("parser.incorrectPath")); //$NON-NLS-1$

-		return;

-	}

-	java.util.StringTokenizer st = 

-		new java.util.StringTokenizer(new String(contents), " \t\n\r[]={,;");  //$NON-NLS-1$

-	String[] tokens = new String[st.countTokens()];

-	int j = 0;

-	while (st.hasMoreTokens()) {

-		tokens[j++] = st.nextToken();

-	}

-	final String prefix = FILEPREFIX;

-	int i = 0;

-	

-	char[] newLhs = buildFileOfIntFor(prefix + (++i) + ".rsc", "lhs", tokens); //$NON-NLS-1$ //$NON-NLS-2$

-	buildFileOfShortFor(prefix + (++i) + ".rsc", "check_table", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "asb", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "asr", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "nasb", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "nasr", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "terminal_index", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	char[] newNonTerminalIndex = buildFileOfIntFor(prefix + (++i) + ".rsc", "non_terminal_index", tokens); //$NON-NLS-1$ //$NON-NLS-2$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "term_action", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "scope_prefix", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "scope_suffix", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "scope_lhs", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "scope_state_set", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "scope_rhs", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "scope_state", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfIntFor(prefix + (++i) + ".rsc", "in_symb", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	

-	byte[] newRhs = buildFileOfByteFor(prefix + (++i) + ".rsc", "rhs", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfByteFor(prefix + (++i) + ".rsc", "term_check", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	buildFileOfByteFor(prefix + (++i) + ".rsc", "scope_la", tokens); //$NON-NLS-2$ //$NON-NLS-1$

-	

-	String[] newName = buildFileForName(prefix + (++i) + ".rsc", new String(contents)); //$NON-NLS-1$

-	

-	contents = new char[] {};

-	try {

-		contents = Util.getFileCharContent(new File(dataFilename2), null);

-	} catch (IOException ex) {

-		System.out.println(Util.bind("parser.incorrectPath")); //$NON-NLS-1$

-		return;

-	}

-	st = new java.util.StringTokenizer(new String(contents), "\t\n\r=#");  //$NON-NLS-1$

-	tokens = new String[st.countTokens()];

-	j = 0;

-	while (st.hasMoreTokens()) {

-		tokens[j++] = st.nextToken();

-	}

-	

-	buildFileForCompliance(prefix + (++i) + ".rsc", newRhs.length, tokens);//$NON-NLS-1$

-	buildFileForReadableName(READABLE_NAMES_FILE+".properties", newLhs, newNonTerminalIndex, newName, tokens);//$NON-NLS-1$

-	

-	System.out.println(Util.bind("parser.moveFiles")); //$NON-NLS-1$

-}

-public static int in_symbol(int state) {

-	return in_symb[original_state(state)];

-}

-public final static void initTables() throws java.io.IOException {

-

-	final String prefix = FILEPREFIX;

-	int i = 0;

-	lhs = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	char[] chars = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	check_table = new short[chars.length];

-	for (int c = chars.length; c-- > 0;) {

-		check_table[c] = (short) (chars[c] - 32768);

-	}

-	asb = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	asr = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	nasb = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	nasr = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	terminal_index = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	non_terminal_index = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	term_action = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	

-	scope_prefix = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	scope_suffix = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	scope_lhs = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	scope_state_set = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	scope_rhs = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	scope_state = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	in_symb = readTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	

-	rhs = readByteTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	term_check = readByteTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	scope_la = readByteTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	

-	name = readNameTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	

-	rules_compliance = readLongTable(prefix + (++i) + ".rsc"); //$NON-NLS-1$

-	

-	readableName = readReadableNameTable(READABLE_NAMES_FILE_NAME);

-	

-	base_action = lhs;

-}

-public static int nasi(int state) {

-	return nasb[original_state(state)];

-}

-public static int ntAction(int state, int sym) {

-	return base_action[state + sym];

-}

-protected static int original_state(int state) {

-	return -base_check(state);

-}

-protected static byte[] readByteTable(String filename) throws java.io.IOException {

-

-	//files are located at Parser.class directory

-

-	InputStream stream = Parser.class.getResourceAsStream(filename);

-	if (stream == null) {

-		throw new java.io.IOException(Util.bind("parser.missingFile",filename)); //$NON-NLS-1$

-	}

-	byte[] bytes = null;

-	try {

-		stream = new BufferedInputStream(stream);

-		bytes = Util.getInputStreamAsByteArray(stream, -1);

-	} finally {

-		try {

-			stream.close();

-		} catch (IOException e) {

-			// ignore

-		}

-	}

-	return bytes;

-}

-	

-protected static String[] readNameTable(String filename) throws java.io.IOException {

-	char[] contents = readTable(filename);

-	char[][] nameAsChar = CharOperation.splitOn('\n', contents);

-

-	String[] result = new String[nameAsChar.length + 1];

-	result[0] = null;

-	for (int i = 0; i < nameAsChar.length; i++) {

-		result[i + 1] = new String(nameAsChar[i]);

-	}

-	

-	return result;

-}

-protected static String[] readReadableNameTable(String filename) {

-	String[] result = new String[name.length];

-

-	ResourceBundle bundle;

-	try {

-		bundle = ResourceBundle.getBundle(filename, Locale.getDefault());

-	} catch(MissingResourceException e) {

-		System.out.println("Missing resource : " + filename.replace('.', '/') + ".properties for locale " + Locale.getDefault()); //$NON-NLS-1$//$NON-NLS-2$

-		throw e;

-	}

-	for (int i = 0; i < NT_OFFSET + 1; i++) {

-		result[i] = name[i];

-	}

-	for (int i = NT_OFFSET; i < name.length; i++) {

-		try {

-			String n = bundle.getString(name[i]);

-			if(n != null && n.length() > 0) {

-				result[i] = n;

-			} else {

-				result[i] = name[i];

-			}

-		} catch(MissingResourceException e) {

-			result[i] = name[i];

-		}

-	}

-	return result;

-}

-protected static char[] readTable(String filename) throws java.io.IOException {

-

-	//files are located at Parser.class directory

-

-	InputStream stream = Parser.class.getResourceAsStream(filename);

-	if (stream == null) {

-		throw new java.io.IOException(Util.bind("parser.missingFile",filename)); //$NON-NLS-1$

-	}

-	byte[] bytes = null;

-	try {

-		stream = new BufferedInputStream(stream);

-		bytes = Util.getInputStreamAsByteArray(stream, -1);

-	} finally {

-		try {

-			stream.close();

-		} catch (IOException e) {

-			// ignore

-		}

-	}

-

-	//minimal integrity check (even size expected)

-	int length = bytes.length;

-	if (length % 2 != 0)

-		throw new java.io.IOException(Util.bind("parser.corruptedFile",filename)); //$NON-NLS-1$

-

-	// convert bytes into chars

-	char[] chars = new char[length / 2];

-	int i = 0;

-	int charIndex = 0;

-

-	while (true) {

-		chars[charIndex++] = (char) (((bytes[i++] & 0xFF) << 8) + (bytes[i++] & 0xFF));

-		if (i == length)

-			break;

-	}

-	return chars;

-}

-protected static long[] readLongTable(String filename) throws java.io.IOException {

-

-	//files are located at Parser.class directory

-

-	InputStream stream = Parser.class.getResourceAsStream(filename);

-	if (stream == null) {

-		throw new java.io.IOException(Util.bind("parser.missingFile",filename)); //$NON-NLS-1$

-	}

-	byte[] bytes = null;

-	try {

-		stream = new BufferedInputStream(stream);

-		bytes = Util.getInputStreamAsByteArray(stream, -1);

-	} finally {

-		try {

-			stream.close();

-		} catch (IOException e) {

-			// ignore

-		}

-	}

-

-	//minimal integrity check (even size expected)

-	int length = bytes.length;

-	if (length % 8 != 0)

-		throw new java.io.IOException(Util.bind("parser.corruptedFile",filename)); //$NON-NLS-1$

-

-	// convert bytes into longs

-	long[] longs = new long[length / 8];

-	int i = 0;

-	int longIndex = 0;

-

-	while (true) {

-		longs[longIndex++] = 

-		  (((long) (bytes[i++] & 0xFF)) << 56)

-		+ (((long) (bytes[i++] & 0xFF)) << 48)

-		+ (((long) (bytes[i++] & 0xFF)) << 40)

-		+ (((long) (bytes[i++] & 0xFF)) << 32)

-		+ (((long) (bytes[i++] & 0xFF)) << 24)

-		+ (((long) (bytes[i++] & 0xFF)) << 16)

-		+ (((long) (bytes[i++] & 0xFF)) << 8)

-		+ (bytes[i++] & 0xFF);

-		

-		if (i == length)

-			break;

-	}

-	return longs;

-}

-public static int tAction(int state, int sym) {

-	return term_action[term_check[base_action[state]+sym] == sym ? base_action[state] + sym : base_action[state]];

-}

-

-public Parser(ProblemReporter problemReporter, boolean optimizeStringLiterals) {

-		

-	this.problemReporter = problemReporter;

-	this.options = problemReporter.options;

-	this.optimizeStringLiterals = optimizeStringLiterals;

-	this.initializeScanner();

-	this.astLengthStack = new int[50];

-	this.expressionLengthStack = new int[30];

-	this.intStack = new int[50];

-	this.identifierStack = new char[30][];

-	this.identifierLengthStack = new int[30];

-	this.nestedMethod = new int[30];

-	this.realBlockStack = new int[30];

-	this.identifierPositionStack = new long[30];

-	this.variablesCounter = new int[30];

-	

-	// javadoc support

-	this.javadocParser = new JavadocParser(this);	

-}

-/**

- *

- * INTERNAL USE-ONLY

- */

-protected void adjustInterfaceModifiers() {

-	this.intStack[this.intPtr - 1] |= AccInterface;

-}

-public void arrayInitializer(int length) {

-	//length is the size of the array Initializer

-	//expressionPtr points on the last elt of the arrayInitializer, 

-	// in other words, it has not been decremented yet.

-

-	ArrayInitializer ai = new ArrayInitializer();

-	if (length != 0) {

-		this.expressionPtr -= length;

-		System.arraycopy(this.expressionStack, this.expressionPtr + 1, ai.expressions = new Expression[length], 0, length);

-	}

-	pushOnExpressionStack(ai);

-	//positionning

-	ai.sourceEnd = this.endStatementPosition;

-	ai.sourceStart = this.intStack[this.intPtr--];

-}

-protected void blockReal() {

-	// See consumeLocalVariableDeclarationStatement in case of change: duplicated code

-	// increment the amount of declared variables for this block

-	this.realBlockStack[this.realBlockPtr]++;

-}

-/*

- * Build initial recovery state.

- * Recovery state is inferred from the current state of the parser (reduced node stack).

- */

-public RecoveredElement buildInitialRecoveryState(){

-

-	/* initialize recovery by retrieving available reduced nodes 

-	 * also rebuild bracket balance 

-	 */

-	this.lastCheckPoint = 0;

-	this.lastErrorEndPositionBeforeRecovery = this.scanner.currentPosition;

-

-	RecoveredElement element = null;

-	if (this.referenceContext instanceof CompilationUnitDeclaration){

-		element = new RecoveredUnit(this.compilationUnit, 0, this);

-		

-		/* ignore current stack state, since restarting from the beginnning 

-		   since could not trust simple brace count */

-		if (true){ // experimenting restart recovery from scratch

-			this.compilationUnit.currentPackage = null;

-			this.compilationUnit.imports = null;

-			this.compilationUnit.types = null;

-			this.currentToken = 0;

-			this.listLength = 0;

-			this.listTypeParameterLength = 0;

-			this.endPosition = 0;

-			this.endStatementPosition = 0;

-			return element;

-		}

-		if (this.compilationUnit.currentPackage != null){

-			this.lastCheckPoint = this.compilationUnit.currentPackage.declarationSourceEnd+1;

-		}

-		if (this.compilationUnit.imports != null){

-			this.lastCheckPoint = this.compilationUnit.imports[this.compilationUnit.imports.length -1].declarationSourceEnd+1;		

-		}

-	} else {

-		if (this.referenceContext instanceof AbstractMethodDeclaration){

-			element = new RecoveredMethod((AbstractMethodDeclaration) this.referenceContext, null, 0, this);

-			this.lastCheckPoint = ((AbstractMethodDeclaration) this.referenceContext).bodyStart;

-		} else {

-			/* Initializer bodies are parsed in the context of the type declaration, we must thus search it inside */

-			if (this.referenceContext instanceof TypeDeclaration){

-				TypeDeclaration type = (TypeDeclaration) this.referenceContext;

-				for (int i = 0; i < type.fields.length; i++){

-					FieldDeclaration field = type.fields[i];					

-					if (field != null

-						&& !field.isField()

-						&& field.declarationSourceStart <= this.scanner.initialPosition

-						&& this.scanner.initialPosition <= field.declarationSourceEnd

-						&& this.scanner.eofPosition <= field.declarationSourceEnd+1){

-						element = new RecoveredInitializer(field, null, 1, this);

-						this.lastCheckPoint = field.declarationSourceStart;					

-						break;

-					}

-				}

-			} 

-		}

-	}

-

-	if (element == null) return element;

-	

-	for(int i = 0; i <= this.astPtr; i++){

-		ASTNode node = this.astStack[i];

-		if (node instanceof AbstractMethodDeclaration){

-			AbstractMethodDeclaration method = (AbstractMethodDeclaration) node;

-			if (method.declarationSourceEnd == 0){

-				element = element.add(method, 0);

-				this.lastCheckPoint = method.bodyStart;

-			} else {

-				element = element.add(method, 0);

-				this.lastCheckPoint = method.declarationSourceEnd + 1;

-			}

-			continue;

-		}

-		if (node instanceof Initializer){

-			Initializer initializer = (Initializer) node;

-			if (initializer.declarationSourceEnd == 0){

-				element = element.add(initializer, 1);

-				this.lastCheckPoint = initializer.sourceStart;				

-			} else {

-				element = element.add(initializer, 0);

-				this.lastCheckPoint = initializer.declarationSourceEnd + 1;

-			}

-			continue;

-		}		

-		if (node instanceof FieldDeclaration){

-			FieldDeclaration field = (FieldDeclaration) node;

-			if (field.declarationSourceEnd == 0){

-				element = element.add(field, 0);

-				if (field.initialization == null){

-					this.lastCheckPoint = field.sourceEnd + 1;

-				} else {

-					this.lastCheckPoint = field.initialization.sourceEnd + 1;

-				}

-			} else {

-				element = element.add(field, 0);

-				this.lastCheckPoint = field.declarationSourceEnd + 1;

-			}

-			continue;

-		}

-		if (node instanceof TypeDeclaration){

-			TypeDeclaration type = (TypeDeclaration) node;

-			if (type.declarationSourceEnd == 0){

-				element = element.add(type, 0);	

-				this.lastCheckPoint = type.bodyStart;

-			} else {

-				element = element.add(type, 0);				

-				this.lastCheckPoint = type.declarationSourceEnd + 1;

-			}

-			continue;

-		}

-		if (node instanceof ImportReference){

-			ImportReference importRef = (ImportReference) node;

-			element = element.add(importRef, 0);

-			this.lastCheckPoint = importRef.declarationSourceEnd + 1;

-		}

-	}

-	return element;

-}

-

-protected void checkAndSetModifiers(int flag){

-	/*modify the current modifiers buffer.

-	When the startPosition of the modifiers is 0

-	it means that the modifier being parsed is the first

-	of a list of several modifiers. The startPosition

-	is zeroed when a copy of modifiers-buffer is push

-	onto the this.astStack. */

-

-	if ((this.modifiers & flag) != 0){ // duplicate modifier

-		this.modifiers |= AccAlternateModifierProblem;

-	}

-	this.modifiers |= flag;

-			

-	if (this.modifiersSourceStart < 0) this.modifiersSourceStart = this.scanner.startPosition;

-}

-public void checkComment() {

-

-	if (this.currentElement != null && this.scanner.commentPtr >= 0) {

-		flushCommentsDefinedPriorTo(this.endStatementPosition); // discard obsolete comments during recovery

-	}

-	

-	int lastComment = this.scanner.commentPtr;

-	

-	if (this.modifiersSourceStart >= 0) {

-		// eliminate comments located after modifierSourceStart if positionned

-		while (lastComment >= 0 && this.scanner.commentStarts[lastComment] > this.modifiersSourceStart) lastComment--;

-	}

-	if (lastComment >= 0) {

-		// consider all remaining leading comments to be part of current declaration

-		this.modifiersSourceStart = this.scanner.commentStarts[0]; 

-	

-		// check deprecation in last comment if javadoc (can be followed by non-javadoc comments which are simply ignored)	

-		while (lastComment >= 0 && this.scanner.commentStops[lastComment] < 0) lastComment--; // non javadoc comment have negative end positions

-		if (lastComment >= 0 && this.javadocParser != null) {

-			if (this.javadocParser.checkDeprecation(

-					this.scanner.commentStarts[lastComment],

-					this.scanner.commentStops[lastComment] - 1)) { //stop is one over,

-				checkAndSetModifiers(AccDeprecated);

-			}

-			this.javadoc = this.javadocParser.docComment;	// null if check javadoc is not activated 

-		}

-	}

-}

-protected void checkNonExternalizedStringLiteral() {

-	if (this.scanner.wasNonExternalizedStringLiteral) {

-		StringLiteral[] literals = this.scanner.nonNLSStrings;

-		// could not reproduce, but this is the only NPE

-		// added preventive null check see PR 9035

-		if (literals != null) {

-			for (int i = 0, max = literals.length; i < max; i++) {

-				problemReporter().nonExternalizedStringLiteral(literals[i]);

-			}

-		}

-		this.scanner.wasNonExternalizedStringLiteral = false;

-	}

-}

-protected void checkNonNLSAfterBodyEnd(int declarationEnd){

-	if(this.scanner.currentPosition - 1 <= declarationEnd) {

-		this.scanner.eofPosition = declarationEnd < Integer.MAX_VALUE ? declarationEnd + 1 : declarationEnd;

-		try {

-			while(this.scanner.getNextToken() != TokenNameEOF){/*empty*/}

-			checkNonExternalizedStringLiteral();

-		} catch (InvalidInputException e) {

-			// Nothing to do

-		}

-	}

-}

-protected void classInstanceCreation(boolean alwaysQualified) {

-	// ClassInstanceCreationExpression ::= 'new' ClassType '(' ArgumentListopt ')' ClassBodyopt

-

-	// ClassBodyopt produces a null item on the astStak if it produces NO class body

-	// An empty class body produces a 0 on the length stack.....

-

-	AllocationExpression alloc;

-	int length;

-	if (((length = this.astLengthStack[this.astLengthPtr--]) == 1)

-		&& (this.astStack[this.astPtr] == null)) {

-		//NO ClassBody

-		this.astPtr--;

-		if (alwaysQualified) {

-			alloc = new QualifiedAllocationExpression();

-		} else {

-			alloc = new AllocationExpression();

-		}

-		alloc.sourceEnd = this.endPosition; //the position has been stored explicitly

-

-		if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-			this.expressionPtr -= length;

-			System.arraycopy(

-				this.expressionStack, 

-				this.expressionPtr + 1, 

-				alloc.arguments = new Expression[length], 

-				0, 

-				length); 

-		}

-		alloc.type = getTypeReference(0);

-		

-		//the default constructor with the correct number of argument

-		//will be created and added by the TC (see createsInternalConstructorWithBinding)

-		alloc.sourceStart = this.intStack[this.intPtr--];

-		pushOnExpressionStack(alloc);

-	} else {

-		dispatchDeclarationInto(length);

-		TypeDeclaration anonymousTypeDeclaration = (TypeDeclaration)this.astStack[this.astPtr];

-		anonymousTypeDeclaration.declarationSourceEnd = this.endStatementPosition;

-		anonymousTypeDeclaration.bodyEnd = this.endStatementPosition;

-		if (anonymousTypeDeclaration.allocation != null) {

-			anonymousTypeDeclaration.allocation.sourceEnd = this.endStatementPosition;

-		}

-		if (length == 0 && !containsComment(anonymousTypeDeclaration.bodyStart, anonymousTypeDeclaration.bodyEnd)) {

-			anonymousTypeDeclaration.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-		}

-		this.astPtr--;

-		this.astLengthPtr--;

-

-		// mark initializers with local type mark if needed

-		markInitializersWithLocalType(anonymousTypeDeclaration);

-	}

-}

-protected void concatExpressionLists() {

-	this.expressionLengthStack[--this.expressionLengthPtr]++;

-}

-protected void concatGenericsLists() {

-	this.genericsLengthStack[this.genericsLengthPtr - 1] += this.genericsLengthStack[this.genericsLengthPtr--];

-}

-protected void concatNodeLists() {

-	/*

-	 * This is a case where you have two sublists into the this.astStack that you want

-	 * to merge in one list. There is no action required on the this.astStack. The only

-	 * thing you need to do is merge the two lengths specified on the astStackLength.

-	 * The top two length are for example:

-	 * ... p   n

-	 * and you want to result in a list like:

-	 * ... n+p 

-	 * This means that the p could be equals to 0 in case there is no astNode pushed

-	 * on the this.astStack.

-	 * Look at the InterfaceMemberDeclarations for an example.

-	 */

-

-	this.astLengthStack[this.astLengthPtr - 1] += this.astLengthStack[this.astLengthPtr--];

-}

-protected void consumeAdditionalBound() {

-	pushOnGenericsStack(getTypeReference(this.intStack[this.intPtr--]));

-}

-protected void consumeAdditionalBound1() {

-	// nothing to be done.

-	// The reference type1 is consumed by consumeReferenceType1 method.

-}

-protected void consumeAdditionalBoundList() {

-	concatGenericsLists();

-}

-protected void consumeAdditionalBoundList1() {

-	concatGenericsLists();

-}

-protected void consumeAllocationHeader() {

-	// ClassInstanceCreationExpression ::= 'new' ClassType '(' ArgumentListopt ')' ClassBodyopt

-

-	// ClassBodyopt produces a null item on the astStak if it produces NO class body

-	// An empty class body produces a 0 on the length stack.....

-

-	if (this.currentElement == null){

-		return; // should never occur, this consumeRule is only used in recovery mode

-	}

-	if (this.currentToken == TokenNameLBRACE){

-		// beginning of an anonymous type

-		TypeDeclaration anonymousType = new TypeDeclaration(this.compilationUnit.compilationResult);

-		anonymousType.name = TypeDeclaration.ANONYMOUS_EMPTY_NAME;

-		anonymousType.bits |= ASTNode.AnonymousAndLocalMask;

-		anonymousType.sourceStart = this.intStack[this.intPtr--];

-		anonymousType.sourceEnd = this.rParenPos; // closing parenthesis

-		QualifiedAllocationExpression alloc = new QualifiedAllocationExpression(anonymousType);

-		alloc.type = getTypeReference(0);

-		alloc.sourceStart = anonymousType.sourceStart;

-		alloc.sourceEnd = anonymousType.sourceEnd ;

-		anonymousType.allocation = alloc; 

-		this.lastCheckPoint = anonymousType.bodyStart = this.scanner.currentPosition;

-		this.currentElement = this.currentElement.add(anonymousType, 0);

-		this.lastIgnoredToken = -1;

-		this.currentToken = 0; // opening brace already taken into account

-		return;

-	}

-	this.lastCheckPoint = this.scanner.startPosition; // force to restart at this exact position

-	this.restartRecovery = true; // request to restart from here on

-}

-protected void consumeAnnotationAsModifier() {

-	// nothing to do

-}

-protected void consumeAnnotationTypeDeclaration() {

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		//there are length declarations

-		//dispatch according to the type of the declarations

-		dispatchDeclarationInto(length);

-	}

-

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];

-	

-	// mark initializers with local type mark if needed

-	markInitializersWithLocalType(typeDecl);

-

-	//convert constructor that do not have the type's name into methods

-	typeDecl.checkConstructors(this);

-	

-	//always add <clinit> (will be remove at code gen time if empty)

-	if (this.scanner.containsAssertKeyword) {

-		typeDecl.bits |= ASTNode.AddAssertionMASK;

-	}

-	typeDecl.addClinit();

-	typeDecl.bodyEnd = this.endStatementPosition;

-	if (length == 0 && !containsComment(typeDecl.bodyStart, typeDecl.bodyEnd)) {

-		typeDecl.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-	}

-	typeDecl.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition); 

-}

-protected void consumeAnnotationTypeDeclarationHeader() {

-	// consumeAnnotationTypeDeclarationHeader ::= Modifiers '@' PushModifiers interface Identifier

-	// consumeAnnotationTypeDeclarationHeader ::= '@' PushModifiers interface Identifier

-	AnnotationTypeDeclaration annotationTypeDeclaration = new AnnotationTypeDeclaration(this.compilationUnit.compilationResult);

-	if (this.nestedMethod[this.nestedType] == 0) {

-		if (this.nestedType != 0) {

-			annotationTypeDeclaration.bits |= ASTNode.IsMemberTypeMASK;

-		}

-	} else {

-		// Record that the block has a declaration for local types

-		annotationTypeDeclaration.bits |= ASTNode.IsLocalTypeMASK;

-		markEnclosingMemberWithLocalType();

-		blockReal();

-	}

-

-	//highlight the name of the type

-	long pos = this.identifierPositionStack[this.identifierPtr];

-	annotationTypeDeclaration.sourceEnd = (int) pos;

-	annotationTypeDeclaration.sourceStart = (int) (pos >>> 32);

-	annotationTypeDeclaration.name = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-

-	//compute the declaration source too

-	// 'interface' push two int positions: the beginning of the class token and its end.

-	// we want to keep the beginning position but get rid of the end position

-	// it is only used for the ClassLiteralAccess positions.

-	this.intPtr--; // remove the start position of the interface token

-	this.intPtr--; // remove the end position of the interface token

-

-	annotationTypeDeclaration.modifiersSourceStart = this.intStack[this.intPtr--];

-	annotationTypeDeclaration.modifiers = this.intStack[this.intPtr--];

-	if (annotationTypeDeclaration.modifiersSourceStart >= 0) {

-		annotationTypeDeclaration.declarationSourceStart = annotationTypeDeclaration.modifiersSourceStart;

-		this.intPtr--; // remove the position of the '@' token as we have modifiers

-	} else {

-		int atPosition = this.intStack[this.intPtr--];

-		// remove the position of the '@' token as we don't have modifiers

-		annotationTypeDeclaration.declarationSourceStart = atPosition;

-	}

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			annotationTypeDeclaration.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-	annotationTypeDeclaration.bodyStart = annotationTypeDeclaration.sourceEnd + 1;

-

-	// javadoc

-	annotationTypeDeclaration.javadoc = this.javadoc;

-	this.javadoc = null;	

-	pushOnAstStack(annotationTypeDeclaration);

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		this.problemReporter().invalidUsageOfAnnotationDeclarations(annotationTypeDeclaration);

-	}	

-}

-protected void consumeAnnotationTypeMemberDeclarationHeader() {

-	// AnnotationTypeMemberDeclarationHeader ::= Modifiersopt Type Identifier '(' ')'

-	AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration = new AnnotationTypeMemberDeclaration(this.compilationUnit.compilationResult);

-

-	//name

-	annotationTypeMemberDeclaration.selector = this.identifierStack[this.identifierPtr];

-	long selectorSource = this.identifierPositionStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	//type

-	annotationTypeMemberDeclaration.returnType = getTypeReference(this.intStack[this.intPtr--]);

-	//modifiers

-	annotationTypeMemberDeclaration.declarationSourceStart = this.intStack[this.intPtr--];

-	annotationTypeMemberDeclaration.modifiers = this.intStack[this.intPtr--];

-	// javadoc

-	annotationTypeMemberDeclaration.javadoc = this.javadoc;

-	this.javadoc = null;

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			annotationTypeMemberDeclaration.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-

-	//highlight starts at selector start

-	annotationTypeMemberDeclaration.sourceStart = (int) (selectorSource >>> 32);

-	annotationTypeMemberDeclaration.sourceEnd = (int) selectorSource;

-	

-	annotationTypeMemberDeclaration.bodyStart = this.rParenPos + 1;	

-	pushOnAstStack(annotationTypeMemberDeclaration);

-}

-protected void consumeAnnotationTypeMemberHeaderExtendedDims() {

-	// AnnotationTypeMemberHeaderExtendedDims ::= Dimsopt

-	AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration = (AnnotationTypeMemberDeclaration) this.astStack[this.astPtr];

-	int extendedDims = this.intStack[this.intPtr--];

-	annotationTypeMemberDeclaration.extendedDimensions = extendedDims;

-	if (extendedDims != 0) {

-		TypeReference returnType = annotationTypeMemberDeclaration.returnType;

-		annotationTypeMemberDeclaration.sourceEnd = this.endPosition;

-		int dims = returnType.dimensions() + extendedDims;

-		int baseType;

-		if ((baseType = this.identifierLengthStack[this.identifierLengthPtr + 1]) < 0) {

-			//it was a baseType

-			int sourceStart = returnType.sourceStart;

-			int sourceEnd =  returnType.sourceEnd;

-			returnType = TypeReference.baseTypeReference(-baseType, dims);

-			returnType.sourceStart = sourceStart;

-			returnType.sourceEnd = sourceEnd;

-			annotationTypeMemberDeclaration.returnType = returnType;

-		} else {

-			annotationTypeMemberDeclaration.returnType = this.copyDims(annotationTypeMemberDeclaration.returnType, dims);

-		}

-		if (this.currentToken == TokenNameSEMICOLON){ 

-			annotationTypeMemberDeclaration.bodyStart = this.endPosition + 1;

-		}	

-	}	

-}

-protected void consumeAnnotationTypeMemberDeclaration() {

-	// AnnotationTypeMemberDeclaration ::= AnnotationTypeMemberDeclarationHeader AnnotationTypeMemberHeaderExtendedDims DefaultValueopt ';'

-	AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration = (AnnotationTypeMemberDeclaration) this.astStack[this.astPtr];

-

-	int length = this.expressionLengthStack[this.expressionLengthPtr--];

-	if (length == 1) {

-		intPtr--; // we get rid of the position of the default keyword

-		intPtr--; // we get rid of the position of the default keyword

-		annotationTypeMemberDeclaration.memberValue = this.expressionStack[this.expressionPtr--];

-	}

-

-	// store the this.endPosition (position just before the '}') in case there is

-	// a trailing comment behind the end of the method

-	int declarationEndPosition = flushCommentsDefinedPriorTo(this.endStatementPosition);

-	annotationTypeMemberDeclaration.bodyStart = this.endStatementPosition;

-	annotationTypeMemberDeclaration.bodyEnd = declarationEndPosition;

-	annotationTypeMemberDeclaration.declarationSourceEnd = declarationEndPosition;

-}

-protected void consumeAnnotationTypeMemberDeclarations() {

-	// AnnotationTypeMemberDeclarations ::= AnnotationTypeMemberDeclarations AnnotationTypeMemberDeclaration

-	concatNodeLists();

-}

-protected void consumeArgumentList() {

-	// ArgumentList ::= ArgumentList ',' Expression

-	concatExpressionLists();

-}

-protected void consumeArguments() {

-	// Arguments ::= '(' ArgumentListopt ')' 

-	// nothing to do, the expression stack is already updated

-}

-protected void consumeArrayAccess(boolean unspecifiedReference) {

-	// ArrayAccess ::= Name '[' Expression ']' ==> true

-	// ArrayAccess ::= PrimaryNoNewArray '[' Expression ']' ==> false

-

-

-	//optimize push/pop

-	Expression exp;

-	if (unspecifiedReference) {

-		exp = 

-			this.expressionStack[this.expressionPtr] = 

-				new ArrayReference(

-					getUnspecifiedReferenceOptimized(),

-					this.expressionStack[this.expressionPtr]);

-	} else {

-		this.expressionPtr--;

-		this.expressionLengthPtr--;

-		exp = 

-			this.expressionStack[this.expressionPtr] = 

-				new ArrayReference(

-					this.expressionStack[this.expressionPtr],

-					this.expressionStack[this.expressionPtr + 1]);

-	}

-	exp.sourceEnd = this.endPosition;

-}

-protected void consumeArrayCreationExpressionWithInitializer() {

-	// ArrayCreationWithArrayInitializer ::= 'new' PrimitiveType DimWithOrWithOutExprs ArrayInitializer

-	// ArrayCreationWithArrayInitializer ::= 'new' ClassOrInterfaceType DimWithOrWithOutExprs ArrayInitializer

-

-	int length;

-	ArrayAllocationExpression aae = new ArrayAllocationExpression();

-	this.expressionLengthPtr -- ;

-	aae.initializer = (ArrayInitializer) this.expressionStack[this.expressionPtr--];

-		

-	aae.type = getTypeReference(0);

-	length = (this.expressionLengthStack[this.expressionLengthPtr--]);

-	this.expressionPtr -= length ;

-	System.arraycopy(

-		this.expressionStack,

-		this.expressionPtr+1,

-		aae.dimensions = new Expression[length],

-		0,

-		length);

-	aae.sourceStart = this.intStack[this.intPtr--];

-	if (aae.initializer == null) {

-		aae.sourceEnd = this.endPosition;

-	} else {

-		aae.sourceEnd = aae.initializer.sourceEnd ;

-	}

-	pushOnExpressionStack(aae);

-}

-protected void consumeArrayCreationExpressionWithoutInitializer() {

-	// ArrayCreationWithoutArrayInitializer ::= 'new' ClassOrInterfaceType DimWithOrWithOutExprs

-	// ArrayCreationWithoutArrayInitializer ::= 'new' PrimitiveType DimWithOrWithOutExprs

-

-	int length;

-	ArrayAllocationExpression aae = new ArrayAllocationExpression();

-	aae.type = getTypeReference(0);

-	length = (this.expressionLengthStack[this.expressionLengthPtr--]);

-	this.expressionPtr -= length ;

-	System.arraycopy(

-		this.expressionStack,

-		this.expressionPtr+1,

-		aae.dimensions = new Expression[length],

-		0,

-		length);

-	aae.sourceStart = this.intStack[this.intPtr--];

-	if (aae.initializer == null) {

-		aae.sourceEnd = this.endPosition;

-	} else {

-		aae.sourceEnd = aae.initializer.sourceEnd ;

-	}

-	pushOnExpressionStack(aae);

-}

-protected void consumeArrayCreationHeader() {

-	// nothing to do

-}

-protected void consumeArrayInitializer() {

-	// ArrayInitializer ::= '{' VariableInitializers '}'

-	// ArrayInitializer ::= '{' VariableInitializers , '}'

-

-	arrayInitializer(this.expressionLengthStack[this.expressionLengthPtr--]);

-}

-protected void consumeArrayTypeWithTypeArgumentsName() {

-	this.intStack[this.intPtr] += this.identifierLengthStack[this.identifierLengthPtr];

-}

-protected void consumeAssertStatement() {

-	// AssertStatement ::= 'assert' Expression ':' Expression ';'

-	this.expressionLengthPtr-=2;

-	pushOnAstStack(new AssertStatement(this.expressionStack[this.expressionPtr--], this.expressionStack[this.expressionPtr--], this.intStack[this.intPtr--]));

-}

-protected void consumeAssignment() {

-	// Assignment ::= LeftHandSide AssignmentOperator AssignmentExpression

-	//optimize the push/pop

-

-	int op = this.intStack[this.intPtr--] ; //<--the encoded operator

-	

-	this.expressionPtr -- ; this.expressionLengthPtr -- ;

-	this.expressionStack[this.expressionPtr] =

-		(op != EQUAL ) ?

-			new CompoundAssignment(

-				this.expressionStack[this.expressionPtr] ,

-				this.expressionStack[this.expressionPtr+1], 

-				op,

-				this.scanner.startPosition - 1)	:

-			new Assignment(

-				this.expressionStack[this.expressionPtr] ,

-				this.expressionStack[this.expressionPtr+1],

-				this.scanner.startPosition - 1);

-}

-protected void consumeAssignmentOperator(int pos) {

-	// AssignmentOperator ::= '='

-	// AssignmentOperator ::= '*='

-	// AssignmentOperator ::= '/='

-	// AssignmentOperator ::= '%='

-	// AssignmentOperator ::= '+='

-	// AssignmentOperator ::= '-='

-	// AssignmentOperator ::= '<<='

-	// AssignmentOperator ::= '>>='

-	// AssignmentOperator ::= '>>>='

-	// AssignmentOperator ::= '&='

-	// AssignmentOperator ::= '^='

-	// AssignmentOperator ::= '|='

-

-	pushOnIntStack(pos);

-}

-protected void consumeBinaryExpression(int op) {

-	// MultiplicativeExpression ::= MultiplicativeExpression '*' UnaryExpression

-	// MultiplicativeExpression ::= MultiplicativeExpression '/' UnaryExpression

-	// MultiplicativeExpression ::= MultiplicativeExpression '%' UnaryExpression

-	// AdditiveExpression ::= AdditiveExpression '+' MultiplicativeExpression

-	// AdditiveExpression ::= AdditiveExpression '-' MultiplicativeExpression

-	// ShiftExpression ::= ShiftExpression '<<'  AdditiveExpression

-	// ShiftExpression ::= ShiftExpression '>>'  AdditiveExpression

-	// ShiftExpression ::= ShiftExpression '>>>' AdditiveExpression

-	// RelationalExpression ::= RelationalExpression '<'  ShiftExpression

-	// RelationalExpression ::= RelationalExpression '>'  ShiftExpression

-	// RelationalExpression ::= RelationalExpression '<=' ShiftExpression

-	// RelationalExpression ::= RelationalExpression '>=' ShiftExpression

-	// AndExpression ::= AndExpression '&' EqualityExpression

-	// ExclusiveOrExpression ::= ExclusiveOrExpression '^' AndExpression

-	// InclusiveOrExpression ::= InclusiveOrExpression '|' ExclusiveOrExpression

-	// ConditionalAndExpression ::= ConditionalAndExpression '&&' InclusiveOrExpression

-	// ConditionalOrExpression ::= ConditionalOrExpression '||' ConditionalAndExpression

-

-	//optimize the push/pop

-

-	this.expressionPtr--;

-	this.expressionLengthPtr--;

-	Expression expr1 = this.expressionStack[this.expressionPtr];

-	Expression expr2 = this.expressionStack[this.expressionPtr + 1];

-	switch(op) {

-		case OR_OR :

-			this.expressionStack[this.expressionPtr] = 

-				new OR_OR_Expression(

-					expr1, 

-					expr2, 

-					op); 

-			break;

-		case AND_AND :

-			this.expressionStack[this.expressionPtr] = 

-				new AND_AND_Expression(

-					expr1, 

-					expr2, 

-					op);

-			break;

-		case PLUS :

-			// look for "string1" + "string2"

-			if (this.optimizeStringLiterals) {

-				if (expr1 instanceof StringLiteral) {

-					if (expr2 instanceof CharLiteral) { // string+char

-						this.expressionStack[this.expressionPtr] = 

-							((StringLiteral) expr1).extendWith((CharLiteral) expr2); 

-					} else if (expr2 instanceof StringLiteral) { //string+string

-						this.expressionStack[this.expressionPtr] = 

-							((StringLiteral) expr1).extendWith((StringLiteral) expr2); 

-					} else {

-						this.expressionStack[this.expressionPtr] = new BinaryExpression(expr1, expr2, PLUS);

-					}

-				} else {

-					this.expressionStack[this.expressionPtr] = new BinaryExpression(expr1, expr2, PLUS);

-				}

-			} else if (expr1 instanceof StringLiteral) {

-				if (expr2 instanceof StringLiteral) {

-					// string + string

-					this.expressionStack[this.expressionPtr] = 

-						((StringLiteral) expr1).extendsWith((StringLiteral) expr2); 

-				} else {

-					this.expressionStack[this.expressionPtr] = 

-						new BinaryExpression(

-							expr1, 

-							expr2, 

-							op);

-				}

-			} else {

-				this.expressionStack[this.expressionPtr] = 

-					new BinaryExpression(

-						expr1, 

-						expr2, 

-						op);

-			}

-			break;

-		case LESS :

-			// TODO (olivier) bug 67790 remove once DOMParser is activated

-			this.intPtr--;

-			this.expressionStack[this.expressionPtr] = 

-				new BinaryExpression(

-					expr1, 

-					expr2, 

-					op);

-			break;

-		default :

-			this.expressionStack[this.expressionPtr] = 

-				new BinaryExpression(

-					expr1, 

-					expr2, 

-					op);		

-	}

-}

-/**

- * @param op binary operator

- */

-protected void consumeBinaryExpressionWithName(int op) {

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());

-	this.expressionPtr--;

-	this.expressionLengthPtr--;

-	/*

-	if (op == OR_OR) {

-		this.expressionStack[this.expressionPtr] = 

-			new OR_OR_Expression(

-				this.expressionStack[this.expressionPtr + 1], 

-				this.expressionStack[this.expressionPtr], 

-				op); 

-	} else {

-		if (op == AND_AND) {

-			this.expressionStack[this.expressionPtr] = 

-				new AND_AND_Expression(

-					this.expressionStack[this.expressionPtr + 1], 

-					this.expressionStack[this.expressionPtr], 

-					op);

-		} else {

-			// look for "string1" + "string2"

-			if ((op == PLUS) && this.optimizeStringLiterals) {

-				Expression expr1, expr2;

-				expr1 = this.expressionStack[this.expressionPtr + 1];

-				expr2 = this.expressionStack[this.expressionPtr];

-				if (expr1 instanceof StringLiteral) {

-					if (expr2 instanceof CharLiteral) { // string+char

-						this.expressionStack[this.expressionPtr] = 

-							((StringLiteral) expr1).extendWith((CharLiteral) expr2); 

-					} else if (expr2 instanceof StringLiteral) { //string+string

-						this.expressionStack[this.expressionPtr] = 

-							((StringLiteral) expr1).extendWith((StringLiteral) expr2); 

-					} else {

-						this.expressionStack[this.expressionPtr] = new BinaryExpression(expr1, expr2, PLUS);

-					}

-				} else {

-					this.expressionStack[this.expressionPtr] = new BinaryExpression(expr1, expr2, PLUS);

-				}

-			} else {

-				this.expressionStack[this.expressionPtr] = 

-					new BinaryExpression(

-						this.expressionStack[this.expressionPtr + 1], 

-						this.expressionStack[this.expressionPtr], 

-						op);

-			}

-		}

-	}

-	*/

-	Expression expr1 = this.expressionStack[this.expressionPtr + 1];

-	Expression expr2 = this.expressionStack[this.expressionPtr];

-	switch(op) {

-		case OR_OR :

-			this.expressionStack[this.expressionPtr] = 

-				new OR_OR_Expression(

-					expr1, 

-					expr2, 

-					op); 

-			break;

-		case AND_AND :

-			this.expressionStack[this.expressionPtr] = 

-				new AND_AND_Expression(

-					expr1, 

-					expr2, 

-					op);

-			break;

-		case PLUS :

-			// look for "string1" + "string2"

-			if (this.optimizeStringLiterals) {

-				if (expr1 instanceof StringLiteral) {

-					if (expr2 instanceof CharLiteral) { // string+char

-						this.expressionStack[this.expressionPtr] = 

-							((StringLiteral) expr1).extendWith((CharLiteral) expr2); 

-					} else if (expr2 instanceof StringLiteral) { //string+string

-						this.expressionStack[this.expressionPtr] = 

-							((StringLiteral) expr1).extendWith((StringLiteral) expr2); 

-					} else {

-						this.expressionStack[this.expressionPtr] = new BinaryExpression(expr1, expr2, PLUS);

-					}

-				} else {

-					this.expressionStack[this.expressionPtr] = new BinaryExpression(expr1, expr2, PLUS);

-				}

-			} else if (expr1 instanceof StringLiteral) {

-				if (expr2 instanceof StringLiteral) {

-					// string + string

-					this.expressionStack[this.expressionPtr] = 

-						((StringLiteral) expr1).extendsWith((StringLiteral) expr2); 

-				} else {

-					this.expressionStack[this.expressionPtr] = 

-						new BinaryExpression(

-							expr1, 

-							expr2, 

-							op);

-				}

-			} else {

-				this.expressionStack[this.expressionPtr] = 

-					new BinaryExpression(

-						expr1, 

-						expr2, 

-						op);

-			}

-			break;

-		case LESS :

-			// TODO (olivier) bug 67790 remove once DOMParser is activated

-			this.intPtr--;

-			this.expressionStack[this.expressionPtr] = 

-				new BinaryExpression(

-					expr1, 

-					expr2, 

-					op);

-			break;

-		default :

-			this.expressionStack[this.expressionPtr] = 

-				new BinaryExpression(

-					expr1, 

-					expr2, 

-					op);		

-	}

-}

-protected void consumeBlock() {

-	// Block ::= OpenBlock '{' BlockStatementsopt '}'

-	// simpler action for empty blocks

-

-	int statementsLength = this.astLengthStack[this.astLengthPtr--];

-	Block block;

-	if (statementsLength == 0) { // empty block 

-		block = new Block(0);

-		block.sourceStart = this.intStack[this.intPtr--];

-		block.sourceEnd = this.endStatementPosition;

-		// check whether this block at least contains some comment in it

-		if (!containsComment(block.sourceStart, block.sourceEnd)) {

-			block.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-		}

-		this.realBlockPtr--; // still need to pop the block variable counter

-	} else {

-		block = new Block(this.realBlockStack[this.realBlockPtr--]);

-		this.astPtr -= statementsLength;

-		System.arraycopy(

-			this.astStack, 

-			this.astPtr + 1, 

-			block.statements = new Statement[statementsLength], 

-			0, 

-			statementsLength); 

-		block.sourceStart = this.intStack[this.intPtr--];

-		block.sourceEnd = this.endStatementPosition;

-	}

-	pushOnAstStack(block);

-}

-protected void consumeBlockStatements() {

-	// BlockStatements ::= BlockStatements BlockStatement

-	concatNodeLists();

-}

-protected void consumeCaseLabel() {

-	// SwitchLabel ::= 'case' ConstantExpression ':'

-	this.expressionLengthPtr--;

-	Expression expression = this.expressionStack[this.expressionPtr--];

-	pushOnAstStack(new CaseStatement(expression, expression.sourceEnd, this.intStack[this.intPtr--]));

-}

-protected void consumeCastExpressionLL1() {

-	//CastExpression ::= '(' Expression ')' InsideCastExpressionLL1 UnaryExpressionNotPlusMinus

-	// Expression is used in order to make the grammar LL1

-

-	//optimize push/pop

-

-	Expression cast,exp;

-	this.expressionPtr--;

-	this.expressionStack[this.expressionPtr] = 

-		cast = new CastExpression(

-			exp=this.expressionStack[this.expressionPtr+1] ,

-			getTypeReference(this.expressionStack[this.expressionPtr]));

-	this.expressionLengthPtr -- ;

-	updateSourcePosition(cast);

-	cast.sourceEnd=exp.sourceEnd;

-}

-protected void consumeCastExpressionWithGenericsArray() {

-	// CastExpression ::= PushLPAREN Name TypeArguments Dims PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus

-

-	Expression exp, cast, castType;

-	int end = this.intStack[this.intPtr--];

-

-	int dim = this.intStack[this.intPtr--];

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-	

-	this.expressionStack[this.expressionPtr] = cast = new CastExpression(exp = this.expressionStack[this.expressionPtr], castType = getTypeReference(dim));

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-	castType.sourceEnd = end - 1;

-	castType.sourceStart = (cast.sourceStart = this.intStack[this.intPtr--]) + 1;

-	cast.sourceEnd = exp.sourceEnd;

-}

-protected void consumeCastExpressionWithNameArray() {

-	// CastExpression ::= PushLPAREN Name Dims PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus

-

-	Expression exp, cast, castType;

-	int end = this.intStack[this.intPtr--];

-	

-	// handle type arguments

-	pushOnGenericsLengthStack(0);

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-	

-	this.expressionStack[this.expressionPtr] = cast = new CastExpression(exp = this.expressionStack[this.expressionPtr], castType = getTypeReference(this.intStack[this.intPtr--]));

-	castType.sourceEnd = end - 1;

-	castType.sourceStart = (cast.sourceStart = this.intStack[this.intPtr--]) + 1;

-	cast.sourceEnd = exp.sourceEnd;

-}

-protected void consumeCastExpressionWithPrimitiveType() {

-	// CastExpression ::= PushLPAREN PrimitiveType Dimsopt PushRPAREN InsideCastExpression UnaryExpression

-

-	//this.intStack : posOfLeftParen dim posOfRightParen

-

-	//optimize the push/pop

-

-	Expression exp, cast, castType;

-	int end = this.intStack[this.intPtr--];

-	this.expressionStack[this.expressionPtr] = cast = new CastExpression(exp = this.expressionStack[this.expressionPtr], castType = getTypeReference(this.intStack[this.intPtr--]));

-	castType.sourceEnd = end - 1;

-	castType.sourceStart = (cast.sourceStart = this.intStack[this.intPtr--]) + 1;

-	cast.sourceEnd = exp.sourceEnd;

-}

-protected ParameterizedQualifiedTypeReference computeQualifiedGenericsFromRightSide(TypeReference rightSide, int dim) {

-	int nameSize = this.identifierLengthStack[this.identifierLengthPtr];

-	int tokensSize = nameSize;

-	if (rightSide instanceof ParameterizedSingleTypeReference) {

-		tokensSize ++;

-	} else if (rightSide instanceof SingleTypeReference) {

-		tokensSize ++;

-	} else if (rightSide instanceof ParameterizedQualifiedTypeReference) {

-		tokensSize += ((QualifiedTypeReference) rightSide).tokens.length;

-	} else if (rightSide instanceof QualifiedTypeReference) {

-		tokensSize += ((QualifiedTypeReference) rightSide).tokens.length;

-	}

-	TypeReference[][] typeArguments = new TypeReference[tokensSize][];

-	char[][] tokens = new char[tokensSize][];

-	long[] positions = new long[tokensSize];

-	if (rightSide instanceof ParameterizedSingleTypeReference) {

-		ParameterizedSingleTypeReference singleParameterizedTypeReference = (ParameterizedSingleTypeReference) rightSide;

-		tokens[nameSize] = singleParameterizedTypeReference.token;

-		positions[nameSize] = (((long) singleParameterizedTypeReference.sourceStart) << 32) + singleParameterizedTypeReference.sourceEnd;

-		typeArguments[nameSize] = singleParameterizedTypeReference.typeArguments;

-	} else if (rightSide instanceof SingleTypeReference) {

-		SingleTypeReference singleTypeReference = (SingleTypeReference) rightSide;

-		tokens[nameSize] = singleTypeReference.token;

-		positions[nameSize] = (((long) singleTypeReference.sourceStart) << 32) + singleTypeReference.sourceEnd;

-	} else if (rightSide instanceof ParameterizedQualifiedTypeReference) {

-		ParameterizedQualifiedTypeReference parameterizedTypeReference = (ParameterizedQualifiedTypeReference) rightSide;

-		TypeReference[][] rightSideTypeArguments = parameterizedTypeReference.typeArguments;

-		System.arraycopy(rightSideTypeArguments, 0, typeArguments, nameSize, rightSideTypeArguments.length);

-		char[][] rightSideTokens = parameterizedTypeReference.tokens;

-		System.arraycopy(rightSideTokens, 0, tokens, nameSize, rightSideTokens.length);

-		long[] rightSidePositions = parameterizedTypeReference.sourcePositions;

-		System.arraycopy(rightSidePositions, 0, positions, nameSize, rightSidePositions.length);

-	} else if (rightSide instanceof QualifiedTypeReference) {

-		QualifiedTypeReference qualifiedTypeReference = (QualifiedTypeReference) rightSide;

-		char[][] rightSideTokens = qualifiedTypeReference.tokens;

-		System.arraycopy(rightSideTokens, 0, tokens, nameSize, rightSideTokens.length);

-		long[] rightSidePositions = qualifiedTypeReference.sourcePositions;

-		System.arraycopy(rightSidePositions, 0, positions, nameSize, rightSidePositions.length);

-	}

-

-	int currentTypeArgumentsLength = this.genericsLengthStack[this.genericsLengthPtr--];

-	TypeReference[] currentTypeArguments = new TypeReference[currentTypeArgumentsLength];

-	this.genericsPtr -= currentTypeArgumentsLength;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, currentTypeArguments, 0, currentTypeArgumentsLength);

-	

-	if (nameSize == 1) {

-		tokens[0] = this.identifierStack[this.identifierPtr];

-		positions[0] = this.identifierPositionStack[this.identifierPtr--];

-		typeArguments[0] = currentTypeArguments;

-	} else {

-		this.identifierPtr -= nameSize;

-		System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, nameSize);

-		System.arraycopy(this.identifierPositionStack, this.identifierPtr + 1, positions, 0, nameSize);

-		typeArguments[nameSize - 1] = currentTypeArguments;

-	}

-	this.identifierLengthPtr--;

-	return new ParameterizedQualifiedTypeReference(tokens, typeArguments, dim, positions);

-}

-protected void consumeCastExpressionWithQualifiedGenericsArray() {

-	// CastExpression ::= PushLPAREN Name OnlyTypeArguments '.' ClassOrInterfaceType Dims PushRPAREN InsideCastExpression UnaryExpressionNotPlusMinus

-	Expression exp, cast, castType;

-	int end = this.intStack[this.intPtr--];

-

-	int dim = this.intStack[this.intPtr--];

-	TypeReference rightSide = getTypeReference(0);

-	

-	ParameterizedQualifiedTypeReference qualifiedParameterizedTypeReference = computeQualifiedGenericsFromRightSide(rightSide, dim);

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-	this.expressionStack[this.expressionPtr] = cast = new CastExpression(exp = this.expressionStack[this.expressionPtr], castType = qualifiedParameterizedTypeReference);

-	castType.sourceEnd = end - 1;

-	castType.sourceStart = (cast.sourceStart = this.intStack[this.intPtr--]) + 1;

-	cast.sourceEnd = exp.sourceEnd;

-}

-protected void consumeCatches() {

-	// Catches ::= Catches CatchClause

-	optimizedConcatNodeLists();

-}

-protected void consumeCatchHeader() {

-	// CatchDeclaration ::= 'catch' '(' FormalParameter ')' '{'

-

-	if (this.currentElement == null){

-		return; // should never occur, this consumeRule is only used in recovery mode

-	}

-	// current element should be a block due to the presence of the opening brace

-	if (!(this.currentElement instanceof RecoveredBlock)){

-		if(!(this.currentElement instanceof RecoveredMethod)) {

-			return;

-		}

-		RecoveredMethod rMethod = (RecoveredMethod) this.currentElement;

-		if(!(rMethod.methodBody == null && rMethod.bracketBalance > 0)) {

-			return;

-		}

-	}

-	

-	Argument arg = (Argument)this.astStack[this.astPtr--];

-	// convert argument to local variable

-	LocalDeclaration localDeclaration = new LocalDeclaration(arg.name, arg.sourceStart, arg.sourceEnd);

-	localDeclaration.type = arg.type;

-	localDeclaration.declarationSourceStart = arg.declarationSourceStart;

-	localDeclaration.declarationSourceEnd = arg.declarationSourceEnd;

-	

-	this.currentElement = this.currentElement.add(localDeclaration, 0);

-	this.lastCheckPoint = this.scanner.startPosition; // force to restart at this exact position

-	this.restartRecovery = true; // request to restart from here on

-	this.lastIgnoredToken = -1;

-}

-protected void consumeClassBodyDeclaration() {

-	// ClassBodyDeclaration ::= Diet Block

-	//push an Initializer

-	//optimize the push/pop

-	this.nestedMethod[this.nestedType]--;

-	Block block = (Block) this.astStack[this.astPtr];

-	if (this.diet) block.bits &= ~ASTNode.UndocumentedEmptyBlockMASK; // clear bit since was diet

-	Initializer initializer = new Initializer(block, 0);

-	this.intPtr--; // pop sourcestart left on the stack by consumeNestedMethod.

-	initializer.bodyStart = this.intStack[this.intPtr--];

-	this.realBlockPtr--; // pop the block variable counter left on the stack by consumeNestedMethod

-	int javadocCommentStart = this.intStack[this.intPtr--];

-	if (javadocCommentStart != -1) {

-		initializer.declarationSourceStart = javadocCommentStart;

-		initializer.javadoc = this.javadoc;

-		this.javadoc = null;

-	}

-	this.astStack[this.astPtr] = initializer;

-	initializer.bodyEnd = this.endPosition;

-	initializer.sourceEnd = this.endStatementPosition;

-	initializer.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition);

-}

-protected void consumeClassBodyDeclarations() {

-	// ClassBodyDeclarations ::= ClassBodyDeclarations ClassBodyDeclaration

-	concatNodeLists();

-}

-protected void consumeClassBodyDeclarationsopt() {

-	// ClassBodyDeclarationsopt ::= NestedType ClassBodyDeclarations

-	this.nestedType-- ;

-}

-protected void consumeClassBodyopt() {

-	// ClassBodyopt ::= $empty

-	pushOnAstStack(null);

-	this.endPosition = this.scanner.startPosition - 1;

-}

-protected void consumeClassDeclaration() {

-	// ClassDeclaration ::= ClassHeader ClassBody

-

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		//there are length declarations

-		//dispatch according to the type of the declarations

-		dispatchDeclarationInto(length);

-	}

-

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];

-

-	// mark initializers with local type mark if needed

-	markInitializersWithLocalType(typeDecl);

-

-	//convert constructor that do not have the type's name into methods

-	boolean hasConstructor = typeDecl.checkConstructors(this);

-	

-	//add the default constructor when needed (interface don't have it)

-	if (!hasConstructor && !typeDecl.isInterface()) {

-		boolean insideFieldInitializer = false;

-		if (this.diet) {

-			for (int i = this.nestedType; i > 0; i--){

-				if (this.variablesCounter[i] > 0) {

-					insideFieldInitializer = true;

-					break;

-				}

-			}

-		}

-		typeDecl.createsInternalConstructor(!this.diet || insideFieldInitializer, true);

-	}

-

-	//always add <clinit> (will be remove at code gen time if empty)

-	if (this.scanner.containsAssertKeyword) {

-		typeDecl.bits |= ASTNode.AddAssertionMASK;

-	}

-	typeDecl.addClinit();

-	typeDecl.bodyEnd = this.endStatementPosition;

-	if (length == 0 && !containsComment(typeDecl.bodyStart, typeDecl.bodyEnd)) {

-		typeDecl.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-	}

-

-	typeDecl.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition); 

-}

-protected void consumeClassHeader() {

-	// ClassHeader ::= ClassHeaderName ClassHeaderExtendsopt ClassHeaderImplementsopt

-

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];	

-	if (this.currentToken == TokenNameLBRACE) { 

-		typeDecl.bodyStart = this.scanner.currentPosition;

-	}

-	if (this.currentElement != null) {

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton		

-	}

-	// flush the comments related to the class header

-	this.scanner.commentPtr = -1;

-}

-protected void consumeClassHeaderExtends() {

-	// ClassHeaderExtends ::= 'extends' ClassType

-	//superclass

-	TypeReference superClass = getTypeReference(0);

-	// There is a class declaration on the top of stack

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];

-	typeDecl.superclass = superClass;

-	superClass.bits |= ASTNode.IsSuperType;

-	typeDecl.bodyStart = typeDecl.superclass.sourceEnd + 1;

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = typeDecl.bodyStart;

-	}

-}

-protected void consumeClassHeaderImplements() {

-	// ClassHeaderImplements ::= 'implements' InterfaceTypeList

-	int length = this.astLengthStack[this.astLengthPtr--];

-	//super interfaces

-	this.astPtr -= length;

-	// There is a class declaration on the top of stack

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];

-	System.arraycopy(

-		this.astStack, 

-		this.astPtr + 1, 

-		typeDecl.superInterfaces = new TypeReference[length], 

-		0, 

-		length); 

-	for (int i = 0, max = typeDecl.superInterfaces.length; i < max; i++) {

-		typeDecl.superInterfaces[i].bits |= ASTNode.IsSuperType;

-	}

-	typeDecl.bodyStart = typeDecl.superInterfaces[length-1].sourceEnd + 1;

-	this.listLength = 0; // reset after having read super-interfaces

-	// recovery

-	if (this.currentElement != null) { // is recovering

-		this.lastCheckPoint = typeDecl.bodyStart;

-	}

-}

-protected void consumeClassHeaderName1() {

-	// ClassHeaderName1 ::= Modifiersopt 'class' 'Identifier'

-	TypeDeclaration typeDecl = new TypeDeclaration(this.compilationUnit.compilationResult);

-	if (this.nestedMethod[this.nestedType] == 0) {

-		if (this.nestedType != 0) {

-			typeDecl.bits |= ASTNode.IsMemberTypeMASK;

-		}

-	} else {

-		// Record that the block has a declaration for local types

-		typeDecl.bits |= ASTNode.IsLocalTypeMASK;

-		markEnclosingMemberWithLocalType();

-		blockReal();

-	}

-

-	//highlight the name of the type

-	long pos = this.identifierPositionStack[this.identifierPtr];

-	typeDecl.sourceEnd = (int) pos;

-	typeDecl.sourceStart = (int) (pos >>> 32);

-	typeDecl.name = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-

-	//compute the declaration source too

-	// 'class' and 'interface' push two int positions: the beginning of the class token and its end.

-	// we want to keep the beginning position but get rid of the end position

-	// it is only used for the ClassLiteralAccess positions.

-	typeDecl.declarationSourceStart = this.intStack[this.intPtr--]; 

-	this.intPtr--; // remove the end position of the class token

-

-	typeDecl.modifiersSourceStart = this.intStack[this.intPtr--];

-	typeDecl.modifiers = this.intStack[this.intPtr--];

-	if (typeDecl.modifiersSourceStart >= 0) {

-		typeDecl.declarationSourceStart = typeDecl.modifiersSourceStart;

-	}

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			typeDecl.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-	typeDecl.bodyStart = typeDecl.sourceEnd + 1;

-	pushOnAstStack(typeDecl);

-

-	this.listLength = 0; // will be updated when reading super-interfaces

-	// recovery

-	if (this.currentElement != null){ 

-		this.lastCheckPoint = typeDecl.bodyStart;

-		this.currentElement = this.currentElement.add(typeDecl, 0);

-		this.lastIgnoredToken = -1;

-	}

-	// javadoc

-	typeDecl.javadoc = this.javadoc;

-	this.javadoc = null;

-}

-protected void consumeTypeHeaderNameWithTypeParameters() {

-	// ClassHeaderName ::= ClassHeaderName1 TypeParameters

-	// InterfaceHeaderName ::= InterfaceHeaderName1 TypeParameters

-	TypeDeclaration typeDecl = (TypeDeclaration)this.astStack[this.astPtr];

-

-	// consume type parameters

-	int length = this.genericsLengthStack[this.genericsLengthPtr--];

-	this.genericsPtr -= length;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, typeDecl.typeParameters = new TypeParameter[length], 0, length);

-

-	typeDecl.bodyStart = typeDecl.typeParameters[length-1].declarationSourceEnd + 1;

-	

-	this.listTypeParameterLength = 0;

-	

-	if (this.currentElement != null) { // is recovering

-		this.lastCheckPoint = typeDecl.bodyStart;

-	}

-}

-protected void consumeClassInstanceCreationExpression() {

-	// ClassInstanceCreationExpression ::= 'new' ClassType '(' ArgumentListopt ')' ClassBodyopt

-	classInstanceCreation(false);

-}

-protected void consumeClassInstanceCreationExpressionName() {

-	// ClassInstanceCreationExpressionName ::= Name '.'

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());

-}

-protected void consumeClassInstanceCreationExpressionQualified() {

-	// ClassInstanceCreationExpression ::= Primary '.' 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt

-	// ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' SimpleName '(' ArgumentListopt ')' ClassBodyopt

-	classInstanceCreation(true);

-

-	this.expressionLengthPtr--;

-	QualifiedAllocationExpression qae = 

-		(QualifiedAllocationExpression) this.expressionStack[this.expressionPtr--]; 

-	qae.enclosingInstance = this.expressionStack[this.expressionPtr];

-	this.expressionStack[this.expressionPtr] = qae;

-	qae.sourceStart = qae.enclosingInstance.sourceStart;

-}

-protected void consumeClassInstanceCreationExpressionQualifiedWithTypeArguments() {

-	// ClassInstanceCreationExpression ::= Primary '.' 'new' TypeArguments SimpleName '(' ArgumentListopt ')' ClassBodyopt

-	// ClassInstanceCreationExpression ::= ClassInstanceCreationExpressionName 'new' TypeArguments SimpleName '(' ArgumentListopt ')' ClassBodyopt

-

-	QualifiedAllocationExpression alloc;

-	int length;

-	if (((length = this.astLengthStack[this.astLengthPtr--]) == 1) && (this.astStack[this.astPtr] == null)) {

-		//NO ClassBody

-		this.astPtr--;

-		alloc = new QualifiedAllocationExpression();

-		alloc.sourceEnd = this.endPosition; //the position has been stored explicitly

-

-		if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-			this.expressionPtr -= length;

-			System.arraycopy(

-				this.expressionStack, 

-				this.expressionPtr + 1, 

-				alloc.arguments = new Expression[length], 

-				0, 

-				length); 

-		}

-		alloc.type = getTypeReference(0);

-

-		length = this.genericsLengthStack[this.genericsLengthPtr--];

-		this.genericsPtr -= length;

-		System.arraycopy(this.genericsStack, this.genericsPtr + 1, alloc.typeArguments = new TypeReference[length], 0, length);

-		// TODO  (olivier) bug 67790 remove once DOMParser is activated

-		intPtr--;

-

-		//the default constructor with the correct number of argument

-		//will be created and added by the TC (see createsInternalConstructorWithBinding)

-		alloc.sourceStart = this.intStack[this.intPtr--];

-		pushOnExpressionStack(alloc);

-	} else {

-		dispatchDeclarationInto(length);

-		TypeDeclaration anonymousTypeDeclaration = (TypeDeclaration)this.astStack[this.astPtr];

-		anonymousTypeDeclaration.declarationSourceEnd = this.endStatementPosition;

-		anonymousTypeDeclaration.bodyEnd = this.endStatementPosition;

-		if (length == 0 && !containsComment(anonymousTypeDeclaration.bodyStart, anonymousTypeDeclaration.bodyEnd)) {

-			anonymousTypeDeclaration.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-		}

-		this.astPtr--;

-		this.astLengthPtr--;

-

-		QualifiedAllocationExpression anonymousTypeDeclarationAllocationExpression = anonymousTypeDeclaration.allocation;

-		if (anonymousTypeDeclarationAllocationExpression != null) {

-			anonymousTypeDeclarationAllocationExpression.sourceEnd = this.endStatementPosition;

-			// handle type arguments

-			length = this.genericsLengthStack[this.genericsLengthPtr--];

-			this.genericsPtr -= length;

-			System.arraycopy(this.genericsStack, this.genericsPtr + 1, anonymousTypeDeclarationAllocationExpression.typeArguments = new TypeReference[length], 0, length);

-		}

-		

-		// mark initializers with local type mark if needed

-		markInitializersWithLocalType(anonymousTypeDeclaration);

-	}

-

-	this.expressionLengthPtr--;

-	QualifiedAllocationExpression qae = 

-		(QualifiedAllocationExpression) this.expressionStack[this.expressionPtr--]; 

-	qae.enclosingInstance = this.expressionStack[this.expressionPtr];

-	this.expressionStack[this.expressionPtr] = qae;

-	qae.sourceStart = qae.enclosingInstance.sourceStart;

-}

-protected void consumeClassInstanceCreationExpressionWithTypeArguments() {

-	// ClassInstanceCreationExpression ::= 'new' TypeArguments ClassType '(' ArgumentListopt ')' ClassBodyopt

-	AllocationExpression alloc;

-	int length;

-	if (((length = this.astLengthStack[this.astLengthPtr--]) == 1)

-		&& (this.astStack[this.astPtr] == null)) {

-		//NO ClassBody

-		this.astPtr--;

-		alloc = new AllocationExpression();

-		alloc.sourceEnd = this.endPosition; //the position has been stored explicitly

-

-		if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-			this.expressionPtr -= length;

-			System.arraycopy(

-				this.expressionStack, 

-				this.expressionPtr + 1, 

-				alloc.arguments = new Expression[length], 

-				0, 

-				length); 

-		}

-		alloc.type = getTypeReference(0);

-

-		length = this.genericsLengthStack[this.genericsLengthPtr--];

-		this.genericsPtr -= length;

-		System.arraycopy(this.genericsStack, this.genericsPtr + 1, alloc.typeArguments = new TypeReference[length], 0, length);

-		// TODO (olivier) bug 67790 remove once DOMParser is activated

-		intPtr--;

-		

-		//the default constructor with the correct number of argument

-		//will be created and added by the TC (see createsInternalConstructorWithBinding)

-		alloc.sourceStart = this.intStack[this.intPtr--];

-		pushOnExpressionStack(alloc);

-	} else {

-		dispatchDeclarationInto(length);

-		TypeDeclaration anonymousTypeDeclaration = (TypeDeclaration)this.astStack[this.astPtr];

-		anonymousTypeDeclaration.declarationSourceEnd = this.endStatementPosition;

-		anonymousTypeDeclaration.bodyEnd = this.endStatementPosition;

-		if (length == 0 && !containsComment(anonymousTypeDeclaration.bodyStart, anonymousTypeDeclaration.bodyEnd)) {

-			anonymousTypeDeclaration.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-		}

-		this.astPtr--;

-		this.astLengthPtr--;

-

-		QualifiedAllocationExpression anonymousTypeDeclarationAllocationExpression = anonymousTypeDeclaration.allocation;

-		if (anonymousTypeDeclarationAllocationExpression != null) {

-			anonymousTypeDeclarationAllocationExpression.sourceEnd = this.endStatementPosition;

-			// handle type arguments

-			length = this.genericsLengthStack[this.genericsLengthPtr--];

-			this.genericsPtr -= length;

-			System.arraycopy(this.genericsStack, this.genericsPtr + 1, anonymousTypeDeclarationAllocationExpression.typeArguments = new TypeReference[length], 0, length);

-		}

-		

-		// mark initializers with local type mark if needed

-		markInitializersWithLocalType(anonymousTypeDeclaration);

-	}

-}

-protected void consumeClassOrInterface() {

-	this.genericsIdentifiersLengthStack[this.genericsIdentifiersLengthPtr] += this.identifierLengthStack[this.identifierLengthPtr];

-	pushOnGenericsLengthStack(0); // handle type arguments

-}

-protected void consumeClassOrInterfaceName() {

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-	pushOnGenericsLengthStack(0); // handle type arguments

-}

-protected void consumeClassTypeElt() {

-	// ClassTypeElt ::= ClassType

-	pushOnAstStack(getTypeReference(0));

-	/* if incomplete thrown exception list, this.listLength counter will not have been reset,

-		indicating that some items are available on the stack */

-	this.listLength++; 	

-}

-protected void consumeClassTypeList() {

-	// ClassTypeList ::= ClassTypeList ',' ClassTypeElt

-	optimizedConcatNodeLists();

-}

-protected void consumeCompilationUnit() {

-	// CompilationUnit ::= EnterCompilationUnit InternalCompilationUnit

-	// do nothing by default

-}

-protected void consumeConditionalExpression(int op) {

-	// ConditionalExpression ::= ConditionalOrExpression '?' Expression ':' ConditionalExpression

-	//optimize the push/pop

-	this.intPtr -= 2;//consume position of the question mark

-	this.expressionPtr -= 2;

-	this.expressionLengthPtr -= 2;

-	this.expressionStack[this.expressionPtr] =

-		new ConditionalExpression(

-			this.expressionStack[this.expressionPtr],

-			this.expressionStack[this.expressionPtr + 1],

-			this.expressionStack[this.expressionPtr + 2]);

-}

-/**

- * @param op

- */

-protected void consumeConditionalExpressionWithName(int op) {

-	// ConditionalExpression ::= Name '?' Expression ':' ConditionalExpression

-	this.intPtr -= 2;//consume position of the question mark

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());

-	this.expressionPtr -= 2;

-	this.expressionLengthPtr -= 2;

-	this.expressionStack[this.expressionPtr] =

-		new ConditionalExpression(

-			this.expressionStack[this.expressionPtr + 2],

-			this.expressionStack[this.expressionPtr],

-			this.expressionStack[this.expressionPtr + 1]);

-}

-protected void consumeConstructorBlockStatements() {

-	// ConstructorBody ::= NestedMethod '{' ExplicitConstructorInvocation BlockStatements '}'

-	concatNodeLists(); // explictly add the first statement into the list of statements 

-}

-protected void consumeConstructorBody() {

-	// ConstructorBody ::= NestedMethod  '{' BlockStatementsopt '}'

-	// ConstructorBody ::= NestedMethod  '{' ExplicitConstructorInvocation '}'

-	this.nestedMethod[this.nestedType] --;

-}

-protected void consumeConstructorDeclaration() {

-	// ConstructorDeclaration ::= ConstructorHeader ConstructorBody

-

-	/*

-	this.astStack : MethodDeclaration statements

-	this.identifierStack : name

-	 ==>

-	this.astStack : MethodDeclaration

-	this.identifierStack :

-	*/

-

-	//must provide a default constructor call when needed

-

-	int length;

-

-	// pop the position of the {  (body of the method) pushed in block decl

-	this.intPtr--;

-	this.intPtr--;

-

-	//statements

-	this.realBlockPtr--;

-	ExplicitConstructorCall constructorCall = null;

-	Statement[] statements = null;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		this.astPtr -= length;

-		if (this.astStack[this.astPtr + 1] instanceof ExplicitConstructorCall) {

-			//avoid a isSomeThing that would only be used here BUT what is faster between two alternatives ?

-			System.arraycopy(

-				this.astStack, 

-				this.astPtr + 2, 

-				statements = new Statement[length - 1], 

-				0, 

-				length - 1); 

-			constructorCall = (ExplicitConstructorCall) this.astStack[this.astPtr + 1];

-		} else { //need to add explicitly the super();

-			System.arraycopy(

-				this.astStack, 

-				this.astPtr + 1, 

-				statements = new Statement[length], 

-				0, 

-				length); 

-			constructorCall = SuperReference.implicitSuperConstructorCall();

-		}

-	} else {

-		boolean insideFieldInitializer = false;

-		if (this.diet) {

-			for (int i = this.nestedType; i > 0; i--){

-				if (this.variablesCounter[i] > 0) {

-					insideFieldInitializer = true;

-					break;

-				}

-			}

-		}

-		

-		if (!this.diet || insideFieldInitializer){

-			// add it only in non-diet mode, if diet_bodies, then constructor call will be added elsewhere.

-			constructorCall = SuperReference.implicitSuperConstructorCall();

-		}

-	}

-

-	// now we know that the top of stack is a constructorDeclaration

-	ConstructorDeclaration cd = (ConstructorDeclaration) this.astStack[this.astPtr];

-	cd.constructorCall = constructorCall;

-	cd.statements = statements;

-

-	//highlight of the implicit call on the method name

-	if (constructorCall != null && cd.constructorCall.sourceEnd == 0) {

-		cd.constructorCall.sourceEnd = cd.sourceEnd;

-		cd.constructorCall.sourceStart = cd.sourceStart;

-	}

-

-	if (!this.diet && (statements == null && constructorCall.isImplicitSuper())) {

-		if (!containsComment(cd.bodyStart, this.endPosition)) {

-			cd.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-		}

-	}

-

-	//watch for } that could be given as a unicode ! ( u007D is '}' )

-	// store the this.endPosition (position just before the '}') in case there is

-	// a trailing comment behind the end of the method

-	cd.bodyEnd = this.endPosition;

-	cd.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition); 

-}

-protected void consumeConstructorHeader() {

-	// ConstructorHeader ::= ConstructorHeaderName MethodHeaderParameters MethodHeaderThrowsClauseopt

-

-	AbstractMethodDeclaration method = (AbstractMethodDeclaration)this.astStack[this.astPtr];

-

-	if (this.currentToken == TokenNameLBRACE){ 

-		method.bodyStart = this.scanner.currentPosition;

-	}

-	// recovery

-	if (this.currentElement != null){

-		if (this.currentToken == TokenNameSEMICOLON){ // for invalid constructors

-			method.modifiers |= AccSemicolonBody;			

-			method.declarationSourceEnd = this.scanner.currentPosition-1;

-			method.bodyEnd = this.scanner.currentPosition-1;

-			if (this.currentElement.parseTree() == method && this.currentElement.parent != null) {

-				this.currentElement = this.currentElement.parent;

-			}

-		}		

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton

-	}		

-}

-protected void consumeConstructorHeaderName() {

-

-	/* recovering - might be an empty message send */

-	if (this.currentElement != null){

-		if (this.lastIgnoredToken == TokenNamenew){ // was an allocation expression

-			this.lastCheckPoint = this.scanner.startPosition; // force to restart at this exact position				

-			this.restartRecovery = true;

-			return;

-		}

-	}

-	

-	// ConstructorHeaderName ::=  Modifiersopt 'Identifier' '('

-	ConstructorDeclaration cd = new ConstructorDeclaration(this.compilationUnit.compilationResult);

-

-	//name -- this is not really revelant but we do .....

-	cd.selector = this.identifierStack[this.identifierPtr];

-	long selectorSource = this.identifierPositionStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-

-	//modifiers

-	cd.declarationSourceStart = this.intStack[this.intPtr--];

-	cd.modifiers = this.intStack[this.intPtr--];

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			cd.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}	

-	// javadoc

-	cd.javadoc = this.javadoc;

-	this.javadoc = null;

-

-	//highlight starts at the selector starts

-	cd.sourceStart = (int) (selectorSource >>> 32);

-	pushOnAstStack(cd);

-	cd.sourceEnd = this.lParenPos;

-	cd.bodyStart = this.lParenPos+1;

-	this.listLength = 0; // initialize this.listLength before reading parameters/throws

-

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = cd.bodyStart;

-		if ((this.currentElement instanceof RecoveredType && this.lastIgnoredToken != TokenNameDOT)

-			|| cd.modifiers != 0){

-			this.currentElement = this.currentElement.add(cd, 0);

-			this.lastIgnoredToken = -1;

-		}

-	}	

-}

-protected void consumeConstructorHeaderNameWithTypeParameters() {

-

-	/* recovering - might be an empty message send */

-	if (this.currentElement != null){

-		if (this.lastIgnoredToken == TokenNamenew){ // was an allocation expression

-			this.lastCheckPoint = this.scanner.startPosition; // force to restart at this exact position				

-			this.restartRecovery = true;

-			return;

-		}

-	}

-	

-	// ConstructorHeaderName ::=  Modifiersopt TypeParameters 'Identifier' '('

-	ConstructorDeclaration cd = new ConstructorDeclaration(this.compilationUnit.compilationResult);

-

-	//name -- this is not really revelant but we do .....

-	cd.selector = this.identifierStack[this.identifierPtr];

-	long selectorSource = this.identifierPositionStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-

-	// consume type parameters

-	int length = this.genericsLengthStack[this.genericsLengthPtr--];

-	this.genericsPtr -= length;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, cd.typeParameters = new TypeParameter[length], 0, length);

-	

-	//modifiers

-	cd.declarationSourceStart = this.intStack[this.intPtr--];

-	cd.modifiers = this.intStack[this.intPtr--];

-	// consume annotations

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			cd.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-	// javadoc

-	cd.javadoc = this.javadoc;

-	this.javadoc = null;

-

-	//highlight starts at the selector starts

-	cd.sourceStart = (int) (selectorSource >>> 32);

-	pushOnAstStack(cd);

-	cd.sourceEnd = this.lParenPos;

-	cd.bodyStart = this.lParenPos+1;

-	this.listLength = 0; // initialize this.listLength before reading parameters/throws

-

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = cd.bodyStart;

-		if ((this.currentElement instanceof RecoveredType && this.lastIgnoredToken != TokenNameDOT)

-			|| cd.modifiers != 0){

-			this.currentElement = this.currentElement.add(cd, 0);

-			this.lastIgnoredToken = -1;

-		}

-	}	

-}

-protected void consumeDefaultLabel() {

-	// SwitchLabel ::= 'default' ':'

-	pushOnAstStack(new CaseStatement(null, this.intStack[this.intPtr--], this.intStack[this.intPtr--]));

-}

-protected void consumeDefaultModifiers() {

-	checkComment(); // might update modifiers with AccDeprecated

-	pushOnIntStack(this.modifiers); // modifiers

-	pushOnIntStack(

-		this.modifiersSourceStart >= 0 ? this.modifiersSourceStart : this.scanner.startPosition); 

-	resetModifiers();

-	pushOnExpressionStackLengthStack(0); // no annotation

-}

-protected void consumeDiet() {

-	// Diet ::= $empty

-	checkComment();

-	pushOnIntStack(this.modifiersSourceStart); // push the start position of a javadoc comment if there is one

-	resetModifiers();

-	jumpOverMethodBody();

-}

-protected void consumeDims() {

-	// Dims ::= DimsLoop

-	pushOnIntStack(this.dimensions);

-	this.dimensions = 0;

-}

-protected void consumeDimWithOrWithOutExpr() {

-	// DimWithOrWithOutExpr ::= '[' ']'

-	pushOnExpressionStack(null);

-	

-	if(this.currentElement != null && this.currentToken == TokenNameLBRACE) {

-		this.ignoreNextOpeningBrace = true;

-		this.currentElement.bracketBalance++; 

-	}

-}

-protected void consumeDimWithOrWithOutExprs() {

-	// DimWithOrWithOutExprs ::= DimWithOrWithOutExprs DimWithOrWithOutExpr

-	concatExpressionLists();

-}

-protected void consumeEmptyAnnotationTypeMemberDeclarationsopt() {

-	// AnnotationTypeMemberDeclarationsopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyArgumentListopt() {

-	// ArgumentListopt ::= $empty

-	pushOnExpressionStackLengthStack(0);

-}

-protected void consumeEmptyArguments() {

-	// Argumentsopt ::= $empty

-	pushOnExpressionStackLengthStack(0);

-}

-protected void consumeEmptyArrayInitializer() {

-	// ArrayInitializer ::= '{' ,opt '}'

-	arrayInitializer(0);

-}

-protected void consumeEmptyArrayInitializeropt() {

-	// ArrayInitializeropt ::= $empty

-	pushOnExpressionStackLengthStack(0);

-}

-protected void consumeEmptyBlockStatementsopt() {

-	// BlockStatementsopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyCatchesopt() {

-	// Catchesopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyClassBodyDeclarationsopt() {

-	// ClassBodyDeclarationsopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyClassMemberDeclaration() {

-	// ClassMemberDeclaration ::= ';'

-	pushOnAstLengthStack(0);

-	problemReporter().superfluousSemicolon(this.endPosition+1, this.endStatementPosition);

-	flushCommentsDefinedPriorTo(this.endStatementPosition);

-}

-protected void consumeEmptyDefaultValue() {

-	// DefaultValueopt ::= $empty

-	pushOnExpressionStackLengthStack(0);

-}

-protected void consumeEmptyDimsopt() {

-	// Dimsopt ::= $empty

-	pushOnIntStack(0);

-}

-protected void consumeEmptyEnumDeclarations() {

-	// EnumBodyDeclarationsopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyExpression() {

-	// Expressionopt ::= $empty

-	pushOnExpressionStackLengthStack(0);

-}

-protected void consumeEmptyForInitopt() {

-	// ForInitopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyForUpdateopt() {

-	// ForUpdateopt ::= $empty

-	pushOnExpressionStackLengthStack(0);

-}

-protected void consumeEmptyInterfaceMemberDeclaration() {

-	// InterfaceMemberDeclaration ::= ';'

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyInterfaceMemberDeclarationsopt() {

-	// InterfaceMemberDeclarationsopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyInternalCompilationUnit() {

-	// InternalCompilationUnit ::= $empty

-	// nothing to do by default

-}

-protected void consumeEmptyMemberValuePairsopt() {

-	// MemberValuePairsopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyMemberValueArrayInitializer() {

-	// MemberValueArrayInitializer ::= '{' ',' '}'

-	// MemberValueArrayInitializer ::= '{' '}'

-	arrayInitializer(0);

-}

-protected void consumeEmptyStatement() {

-	// EmptyStatement ::= ';'

-	if (this.scanner.source[this.endStatementPosition] == ';') {

-		pushOnAstStack(new EmptyStatement(this.endStatementPosition, this.endStatementPosition));

-	} else {

-		// we have a Unicode for the ';' (/u003B)

-		pushOnAstStack(new EmptyStatement(this.endStatementPosition - 5, this.endStatementPosition));

-	}

-}

-protected void consumeEmptySwitchBlock() {

-	// SwitchBlock ::= '{' '}'

-	pushOnAstLengthStack(0);

-}

-protected void consumeEmptyTypeDeclaration() {

-	// TypeDeclaration ::= ';' 

-	pushOnAstLengthStack(0);

-	problemReporter().superfluousSemicolon(this.endPosition+1, this.endStatementPosition);

-	flushCommentsDefinedPriorTo(this.endStatementPosition);

-}

-protected void consumeEnhancedForStatementHeader(boolean hasModifiers){

-	// EnhancedForStatementHeader ::= 'for' '(' Type PushModifiers Identifier Dimsopt ':' Expression ')'

-	// EnhancedForStatementHeader ::= 'for' '(' Modifiers Type PushRealModifiers Identifier Dimsopt ':' Expression ')'

-	TypeReference type;

-

-	char[] identifierName = this.identifierStack[this.identifierPtr];

-	long namePosition = this.identifierPositionStack[this.identifierPtr];

-	

-	LocalDeclaration localDeclaration = createLocalDeclaration(identifierName, (int) (namePosition >>> 32), (int) namePosition);

-	localDeclaration.declarationSourceEnd = localDeclaration.declarationEnd;

-	

-	int extraDims = this.intStack[this.intPtr--];

-	this.identifierPtr--;

-	this.identifierLengthPtr--;

-	// remove fake modifiers/modifiers start

-	int declarationSourceStart = 0;

-	int modifiersValue  = 0;

-	if (hasModifiers) {

-		declarationSourceStart = this.intStack[this.intPtr--];

-		modifiersValue = this.intStack[this.intPtr--];

-	} else {

-		this.intPtr-=2;

-	}

-

-	//updates are on the expression stack

-	this.expressionLengthPtr--;

-	Expression collection = this.expressionStack[this.expressionPtr--];

-	

-	type = getTypeReference(this.intStack[this.intPtr--] + extraDims); // type dimension

-

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--])!= 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			localDeclaration.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-	if (hasModifiers) {

-		localDeclaration.declarationSourceStart = declarationSourceStart;

-		localDeclaration.modifiers = modifiersValue;

-	} else {

-		localDeclaration.declarationSourceStart = type.sourceStart;

-	}

-	localDeclaration.type = type;

-

-	ForeachStatement iteratorForStatement =

-		new ForeachStatement(

-			localDeclaration,

-			collection,

-			this.intStack[this.intPtr--]); 

-	pushOnAstStack(iteratorForStatement);

-	

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		this.problemReporter().invalidUsageOfForeachStatements(localDeclaration, collection);

-	}

-}

-protected void consumeEnhancedForStatement() {

-	// EnhancedForStatement ::= EnhancedForStatementHeader Statement

-	// EnhancedForStatementNoShortIf ::= EnhancedForStatementHeader StatementNoShortIf

-

-	//statements

-	this.astLengthPtr--;

-	Statement statement = (Statement) this.astStack[this.astPtr--];

-

-	// foreach statement is on the ast stack

-	ForeachStatement foreachStatement = (ForeachStatement) this.astStack[this.astPtr];

-	foreachStatement.action = statement;

-	// remember useful empty statement

-	if (statement instanceof EmptyStatement) statement.bits |= ASTNode.IsUsefulEmptyStatementMASK;

-	

-	foreachStatement.sourceEnd = this.endStatementPosition;

-}

-protected void consumeEnterAnonymousClassBody() {

-	// EnterAnonymousClassBody ::= $empty

-	TypeReference typeReference = getTypeReference(0);

-

-	QualifiedAllocationExpression alloc;

-	TypeDeclaration anonymousType = new TypeDeclaration(this.compilationUnit.compilationResult); 

-	anonymousType.name = TypeDeclaration.ANONYMOUS_EMPTY_NAME;

-	anonymousType.bits |= ASTNode.AnonymousAndLocalMask;

-	alloc = anonymousType.allocation = new QualifiedAllocationExpression(anonymousType); 

-	markEnclosingMemberWithLocalType();

-	pushOnAstStack(anonymousType);

-

-	alloc.sourceEnd = this.rParenPos; //the position has been stored explicitly

-	int argumentLength;

-	if ((argumentLength = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		this.expressionPtr -= argumentLength;

-		System.arraycopy(

-			this.expressionStack, 

-			this.expressionPtr + 1, 

-			alloc.arguments = new Expression[argumentLength], 

-			0, 

-			argumentLength); 

-	}

-	alloc.type = typeReference;

-

-	anonymousType.sourceEnd = alloc.sourceEnd;

-	//position at the type while it impacts the anonymous declaration

-	anonymousType.sourceStart = anonymousType.declarationSourceStart = alloc.type.sourceStart;

-	alloc.sourceStart = this.intStack[this.intPtr--];

-	pushOnExpressionStack(alloc);

-

-	anonymousType.bodyStart = this.scanner.currentPosition;	

-	this.listLength = 0; // will be updated when reading super-interfaces

-	// recovery

-	if (this.currentElement != null){ 

-		this.lastCheckPoint = anonymousType.bodyStart;		

-		this.currentElement = this.currentElement.add(anonymousType, 0);

-		this.currentToken = 0; // opening brace already taken into account

-		this.lastIgnoredToken = -1;

-	}	

-}

-protected void consumeEnterAnonymousClassBodySimpleName() {

-	// EnterAnonymousClassBody ::= $empty

-	pushOnGenericsLengthStack(0);

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-	TypeReference typeReference = getTypeReference(0);

-

-	QualifiedAllocationExpression alloc;

-	TypeDeclaration anonymousType = new TypeDeclaration(this.compilationUnit.compilationResult); 

-	anonymousType.name = TypeDeclaration.ANONYMOUS_EMPTY_NAME;

-	anonymousType.bits |= ASTNode.AnonymousAndLocalMask;

-	alloc = anonymousType.allocation = new QualifiedAllocationExpression(anonymousType); 

-	markEnclosingMemberWithLocalType();

-	pushOnAstStack(anonymousType);

-

-	alloc.sourceEnd = this.rParenPos; //the position has been stored explicitly

-	int argumentLength;

-	if ((argumentLength = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		this.expressionPtr -= argumentLength;

-		System.arraycopy(

-			this.expressionStack, 

-			this.expressionPtr + 1, 

-			alloc.arguments = new Expression[argumentLength], 

-			0, 

-			argumentLength); 

-	}

-	alloc.type = typeReference;

-

-	anonymousType.sourceEnd = alloc.sourceEnd;

-	//position at the type while it impacts the anonymous declaration

-	anonymousType.sourceStart = anonymousType.declarationSourceStart = alloc.type.sourceStart;

-	alloc.sourceStart = this.intStack[this.intPtr--];

-	pushOnExpressionStack(alloc);

-

-	anonymousType.bodyStart = this.scanner.currentPosition;	

-	this.listLength = 0; // will be updated when reading super-interfaces

-	// recovery

-	if (this.currentElement != null){ 

-		this.lastCheckPoint = anonymousType.bodyStart;		

-		this.currentElement = this.currentElement.add(anonymousType, 0);

-		this.currentToken = 0; // opening brace already taken into account

-		this.lastIgnoredToken = -1;

-	}	

-}

-protected void consumeEnterCompilationUnit() {

-	// EnterCompilationUnit ::= $empty

-	// do nothing by default

-}

-protected void consumeEnterVariable() {

-	// EnterVariable ::= $empty

-	// do nothing by default

-

-	char[] identifierName = this.identifierStack[this.identifierPtr];

-	long namePosition = this.identifierPositionStack[this.identifierPtr];

-	int extendedDimension = this.intStack[this.intPtr--];

-	AbstractVariableDeclaration declaration;

-	// create the ast node

-	boolean isLocalDeclaration = this.nestedMethod[this.nestedType] != 0; 

-	if (isLocalDeclaration) {

-		// create the local variable declarations

-		declaration = 

-			this.createLocalDeclaration(identifierName, (int) (namePosition >>> 32), (int) namePosition);

-	} else {

-		// create the field declaration

-		declaration = 

-			this.createFieldDeclaration(identifierName, (int) (namePosition >>> 32), (int) namePosition); 

-	}

-	

-	this.identifierPtr--;

-	this.identifierLengthPtr--;

-	TypeReference type;

-	int variableIndex = this.variablesCounter[this.nestedType];

-	int typeDim = 0;

-	if (variableIndex == 0) {

-		// first variable of the declaration (FieldDeclaration or LocalDeclaration)

-		if (isLocalDeclaration) {

-			declaration.declarationSourceStart = this.intStack[this.intPtr--];

-			declaration.modifiers = this.intStack[this.intPtr--];

-			// consume annotations

-			int length;

-			if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-				System.arraycopy(

-					this.expressionStack, 

-					(this.expressionPtr -= length) + 1, 

-					declaration.annotations = new Annotation[length], 

-					0, 

-					length); 

-			}	

-			type = getTypeReference(typeDim = this.intStack[this.intPtr--]); // type dimension

-			if (declaration.declarationSourceStart == -1) {

-				// this is true if there is no modifiers for the local variable declaration

-				declaration.declarationSourceStart = type.sourceStart;

-			}

-			pushOnAstStack(type);

-		} else {

-			type = getTypeReference(typeDim = this.intStack[this.intPtr--]); // type dimension

-			pushOnAstStack(type);

-			declaration.declarationSourceStart = this.intStack[this.intPtr--];

-			declaration.modifiers = this.intStack[this.intPtr--];

-			// consume annotations

-			int length;

-			if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-				System.arraycopy(

-					this.expressionStack, 

-					(this.expressionPtr -= length) + 1, 

-					declaration.annotations = new Annotation[length], 

-					0, 

-					length); 

-			}			

-			// Store javadoc only on first declaration as it is the same for all ones

-			FieldDeclaration fieldDeclaration = (FieldDeclaration) declaration;

-			fieldDeclaration.javadoc = this.javadoc;

-			this.javadoc = null;

-		}

-	} else {

-		type = (TypeReference) this.astStack[this.astPtr - variableIndex];

-		typeDim = type.dimensions();

-		AbstractVariableDeclaration previousVariable = 

-			(AbstractVariableDeclaration) this.astStack[this.astPtr]; 

-		declaration.declarationSourceStart = previousVariable.declarationSourceStart;

-		declaration.modifiers = previousVariable.modifiers;

-	}

-

-	if (extendedDimension == 0) {

-		declaration.type = type;

-	} else {

-		int dimension = typeDim + extendedDimension;

-		//on the this.identifierLengthStack there is the information about the type....

-		int baseType;

-		if ((baseType = this.identifierLengthStack[this.identifierLengthPtr + 1]) < 0) {

-			//it was a baseType

-			int typeSourceStart = type.sourceStart;

-			int typeSourceEnd = type.sourceEnd;

-			type = TypeReference.baseTypeReference(-baseType, dimension);

-			type.sourceStart = typeSourceStart;

-			type.sourceEnd = typeSourceEnd;

-			declaration.type = type;

-		} else {

-			declaration.type = this.copyDims(type, dimension);

-		}

-	}

-	this.variablesCounter[this.nestedType]++;

-	pushOnAstStack(declaration);

-	// recovery

-	if (this.currentElement != null) {

-		if (!(this.currentElement instanceof RecoveredType)

-			&& (this.currentToken == TokenNameDOT

-				//|| declaration.modifiers != 0

-				|| (this.scanner.getLineNumber(declaration.type.sourceStart)

-						!= this.scanner.getLineNumber((int) (namePosition >>> 32))))){

-			this.lastCheckPoint = (int) (namePosition >>> 32);

-			this.restartRecovery = true;

-			return;

-		}

-		if (isLocalDeclaration){

-			LocalDeclaration localDecl = (LocalDeclaration) this.astStack[this.astPtr];

-			this.lastCheckPoint = localDecl.sourceEnd + 1;

-			this.currentElement = this.currentElement.add(localDecl, 0);

-		} else {

-			FieldDeclaration fieldDecl = (FieldDeclaration) this.astStack[this.astPtr];

-			this.lastCheckPoint = fieldDecl.sourceEnd + 1;

-			this.currentElement = this.currentElement.add(fieldDecl, 0);

-		}

-		this.lastIgnoredToken = -1;

-	}

-}

-protected void consumeEnumBodyNoConstants() {

-	// nothing to do

-	// The 0 on the astLengthStack has been pushed by EnumBodyDeclarationsopt

-}

-protected void consumeEnumBodyWithConstants() {

-	// merge the constants values with the class body

-	concatNodeLists();

-}

-protected void consumeEnumConstantHeader() {

-	EnumConstant enumConstant = new EnumConstant(this.compilationUnit.compilationResult);

-	long pos = this.identifierPositionStack[this.identifierPtr];

-	int enumConstantEnd = (int) pos;

-	enumConstant.sourceEnd = enumConstantEnd;

-	final int start = (int) (pos >>> 32);

-	enumConstant.sourceStart = start;

-	enumConstant.declarationSourceStart = start;

-	enumConstant.name = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-

-	// fill arguments if needed

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		this.expressionPtr -= length;

-		System.arraycopy(

-			this.expressionStack, 

-			this.expressionPtr + 1, 

-			enumConstant.arguments = new Expression[length], 

-			0, 

-			length); 

-		enumConstant.declarationSourceEnd = flushCommentsDefinedPriorTo(rParenPos);

-		enumConstant.bodyStart = rParenPos;

-		enumConstant.bodyEnd = rParenPos;	

-	} else {

-		if (enumConstantEnd <= rParenPos) {

-			enumConstant.bodyEnd = rParenPos;

-		} else {

-			enumConstant.bodyEnd = enumConstantEnd;

-		}

-	}

-

-	if (this.currentToken == TokenNameLBRACE) {

-		enumConstant.bodyStart = this.scanner.currentPosition;

-	}

-	

-	pushOnAstStack(enumConstant);

-}

-protected void consumeEnumConstantNoClassBody() {

-	EnumConstant enumConstant = (EnumConstant) this.astStack[this.astPtr];

-	// use to set that this enumConstant has no class body

-	enumConstant.modifiers |= CompilerModifiers.AccSemicolonBody;

-}

-protected void consumeEnumConstants() {

-	concatNodeLists();

-}

-protected void consumeEnumConstantWithClassBody() {

-	dispatchDeclarationInto(this.astLengthStack[this.astLengthPtr--]);

-	EnumConstant enumConstant = (EnumConstant) this.astStack[this.astPtr];

-	enumConstant.modifiers = 0;

-	enumConstant.bodyEnd = this.endPosition;

-	enumConstant.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition);

-}

-protected void consumeEnumDeclaration() {

-	// EnumDeclaration ::= EnumHeader ClassHeaderImplementsopt EnumBody

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		//there are length declarations

-		//dispatch according to the type of the declarations

-		dispatchDeclarationIntoEnumDeclaration(length);

-	}

-

-	EnumDeclaration enumDeclaration = (EnumDeclaration) this.astStack[this.astPtr];

-

-	// mark initializers with local type mark if needed

-	markInitializersWithLocalType(enumDeclaration);

-

-	//convert constructor that do not have the type's name into methods

-	boolean hasConstructor = enumDeclaration.checkConstructors(this);

-	

-	//add the default constructor when needed (interface don't have it)

-	if (!hasConstructor && !enumDeclaration.isInterface()) {

-		boolean insideFieldInitializer = false;

-		if (this.diet) {

-			for (int i = this.nestedType; i > 0; i--){

-				if (this.variablesCounter[i] > 0) {

-					insideFieldInitializer = true;

-					break;

-				}

-			}

-		}

-		enumDeclaration.createsInternalConstructor(!this.diet || insideFieldInitializer, true);

-	}

-

-	//always add <clinit> (will be remove at code gen time if empty)

-	if (this.scanner.containsAssertKeyword) {

-		enumDeclaration.bits |= ASTNode.AddAssertionMASK;

-	}

-	enumDeclaration.addClinit();

-	enumDeclaration.bodyEnd = this.endStatementPosition;

-	if (length == 0 && !containsComment(enumDeclaration.bodyStart, enumDeclaration.bodyEnd)) {

-		enumDeclaration.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-	}

-

-	enumDeclaration.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition); 

-}

-protected void consumeEnumDeclarations() {

-	// Do nothing by default

-}

-protected void consumeEnumHeader() {

-	// EnumHeader ::= Modifiersopt 'enum' Identifier

-	EnumDeclaration enumDeclaration;

-	if (this.nestedMethod[this.nestedType] == 0) {

-		if (this.nestedType != 0) {

-			enumDeclaration = new EnumDeclaration(this.compilationUnit.compilationResult);

-		} else {

-			enumDeclaration = new EnumDeclaration(this.compilationUnit.compilationResult);

-		}

-	} else {

-		// Record that the block has a declaration for local types

-		enumDeclaration = new EnumDeclaration(this.compilationUnit.compilationResult);

-//		markEnclosingMemberWithLocalType();

-		blockReal();

-	}

-	//highlight the name of the type

-	long pos = this.identifierPositionStack[this.identifierPtr];

-	enumDeclaration.sourceEnd = (int) pos;

-	enumDeclaration.sourceStart = (int) (pos >>> 32);

-	enumDeclaration.name = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-

-	//compute the declaration source too

-	// 'class' and 'interface' push two int positions: the beginning of the class token and its end.

-	// we want to keep the beginning position but get rid of the end position

-	// it is only used for the ClassLiteralAccess positions.

-	enumDeclaration.declarationSourceStart = this.intStack[this.intPtr--]; 

-	this.intPtr--; // remove the end position of the class token

-

-	enumDeclaration.modifiersSourceStart = this.intStack[this.intPtr--];

-	enumDeclaration.modifiers = this.intStack[this.intPtr--];

-	if (enumDeclaration.modifiersSourceStart >= 0) {

-		enumDeclaration.declarationSourceStart = enumDeclaration.modifiersSourceStart;

-	}

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			enumDeclaration.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-	if (this.currentToken == TokenNameLBRACE) { 

-		enumDeclaration.bodyStart = this.scanner.currentPosition;

-	}

-	pushOnAstStack(enumDeclaration);

-

-	this.listLength = 0; // will be updated when reading super-interfaces

-	

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		//TODO this code will be never run while 'enum' is an identifier in 1.3 scanner 

-		this.problemReporter().invalidUsageOfEnumDeclarations(enumDeclaration);

-	}

-	

-	// recovery

-	if (this.currentElement != null){ 

-		this.lastCheckPoint = enumDeclaration.bodyStart;

-		this.currentElement = this.currentElement.add(enumDeclaration, 0);

-		this.lastIgnoredToken = -1;

-	}

-	// javadoc

-	enumDeclaration.javadoc = this.javadoc;

-	this.javadoc = null;

-}

-protected void consumeEqualityExpression(int op) {

-	// EqualityExpression ::= EqualityExpression '==' RelationalExpression

-	// EqualityExpression ::= EqualityExpression '!=' RelationalExpression

-

-	//optimize the push/pop

-

-	this.expressionPtr--;

-	this.expressionLengthPtr--;

-	this.expressionStack[this.expressionPtr] =

-		new EqualExpression(

-			this.expressionStack[this.expressionPtr],

-			this.expressionStack[this.expressionPtr + 1],

-			op);

-}

-/*

- * @param op

- */

-protected void consumeEqualityExpressionWithName(int op) {

-	// EqualityExpression ::= Name '==' RelationalExpression

-	// EqualityExpression ::= Name '!=' RelationalExpression

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());

-	this.expressionPtr--;

-	this.expressionLengthPtr--;

-	this.expressionStack[this.expressionPtr] =

-		new EqualExpression(

-			this.expressionStack[this.expressionPtr + 1],

-			this.expressionStack[this.expressionPtr],

-			op);

-}

-protected void consumeExitTryBlock() {

-	//ExitTryBlock ::= $empty

-	if(this.currentElement != null) {

-		this.restartRecovery = true;

-	}

-}

-protected void consumeExitVariableWithInitialization() {

-	// ExitVariableWithInitialization ::= $empty

-	// do nothing by default

-	this.expressionLengthPtr--;

-	AbstractVariableDeclaration variableDecl = (AbstractVariableDeclaration) this.astStack[this.astPtr];

-	variableDecl.initialization = this.expressionStack[this.expressionPtr--];

-	// we need to update the declarationSourceEnd of the local variable declaration to the

-	// source end position of the initialization expression

-	variableDecl.declarationSourceEnd = variableDecl.initialization.sourceEnd;

-	variableDecl.declarationEnd = variableDecl.initialization.sourceEnd;

-	

-	this.recoveryExitFromVariable();

-}

-protected void consumeExitVariableWithoutInitialization() {

-	// ExitVariableWithoutInitialization ::= $empty

-	// do nothing by default

-	

-	AbstractVariableDeclaration variableDecl = (AbstractVariableDeclaration) this.astStack[this.astPtr];

-	variableDecl.declarationSourceEnd = variableDecl.declarationEnd;

-	

-	this.recoveryExitFromVariable();

-}

-protected void consumeExplicitConstructorInvocation(int flag, int recFlag) {

-

-	/* flag allows to distinguish 3 cases :

-	(0) :   

-	ExplicitConstructorInvocation ::= 'this' '(' ArgumentListopt ')' ';'

-	ExplicitConstructorInvocation ::= 'super' '(' ArgumentListopt ')' ';'

-	(1) :

-	ExplicitConstructorInvocation ::= Primary '.' 'super' '(' ArgumentListopt ')' ';'

-	ExplicitConstructorInvocation ::= Primary '.' 'this' '(' ArgumentListopt ')' ';'

-	(2) :

-	ExplicitConstructorInvocation ::= Name '.' 'super' '(' ArgumentListopt ')' ';'

-	ExplicitConstructorInvocation ::= Name '.' 'this' '(' ArgumentListopt ')' ';'

-	*/

-	int startPosition = this.intStack[this.intPtr--];

-	ExplicitConstructorCall ecc = new ExplicitConstructorCall(recFlag);

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		this.expressionPtr -= length;

-		System.arraycopy(this.expressionStack, this.expressionPtr + 1, ecc.arguments = new Expression[length], 0, length);

-	}

-	switch (flag) {

-		case 0 :

-			ecc.sourceStart = startPosition;

-			break;

-		case 1 :

-			this.expressionLengthPtr--;

-			ecc.sourceStart = (ecc.qualification = this.expressionStack[this.expressionPtr--]).sourceStart;

-			break;

-		case 2 :

-			ecc.sourceStart = (ecc.qualification = getUnspecifiedReferenceOptimized()).sourceStart;

-			break;

-	}

-	pushOnAstStack(ecc);

-	ecc.sourceEnd = this.endPosition;

-}

-protected void consumeExplicitConstructorInvocationWithTypeArguments(int flag, int recFlag) {

-

-	/* flag allows to distinguish 3 cases :

-	(0) :   

-	ExplicitConstructorInvocation ::= TypeArguments 'this' '(' ArgumentListopt ')' ';'

-	ExplicitConstructorInvocation ::= TypeArguments 'super' '(' ArgumentListopt ')' ';'

-	(1) :

-	ExplicitConstructorInvocation ::= Primary '.' TypeArguments 'super' '(' ArgumentListopt ')' ';'

-	ExplicitConstructorInvocation ::= Primary '.' TypeArguments 'this' '(' ArgumentListopt ')' ';'

-	(2) :

-	ExplicitConstructorInvocation ::= Name '.' TypeArguments 'super' '(' ArgumentListopt ')' ';'

-	ExplicitConstructorInvocation ::= Name '.' TypeArguments 'this' '(' ArgumentListopt ')' ';'

-	*/

-	int startPosition = this.intStack[this.intPtr--];

-	ExplicitConstructorCall ecc = new ExplicitConstructorCall(recFlag);

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		this.expressionPtr -= length;

-		System.arraycopy(this.expressionStack, this.expressionPtr + 1, ecc.arguments = new Expression[length], 0, length);

-	}

-	length = this.genericsLengthStack[this.genericsLengthPtr--];

-	this.genericsPtr -= length;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, ecc.typeArguments = new TypeReference[length], 0, length);

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	ecc.typeArgumentsSourceStart = this.intStack[intPtr--];

-

-	switch (flag) {

-		case 0 :

-			ecc.sourceStart = startPosition;

-			break;

-		case 1 :

-			this.expressionLengthPtr--;

-			ecc.sourceStart = (ecc.qualification = this.expressionStack[this.expressionPtr--]).sourceStart;

-			break;

-		case 2 :

-			ecc.sourceStart = (ecc.qualification = getUnspecifiedReferenceOptimized()).sourceStart;

-			break;

-	}

-	

-	pushOnAstStack(ecc);

-	ecc.sourceEnd = this.endPosition;

-}

-protected void consumeExpressionStatement() {

-	// ExpressionStatement ::= StatementExpression ';'

-	this.expressionLengthPtr--;

-	pushOnAstStack(this.expressionStack[this.expressionPtr--]);

-}

-protected void consumeFieldAccess(boolean isSuperAccess) {

-	// FieldAccess ::= Primary '.' 'Identifier'

-	// FieldAccess ::= 'super' '.' 'Identifier'

-

-	FieldReference fr =

-		new FieldReference(

-			this.identifierStack[this.identifierPtr],

-			this.identifierPositionStack[this.identifierPtr--]);

-	this.identifierLengthPtr--;

-	if (isSuperAccess) {

-		//considerates the fieldReference beginning at the 'super' ....	

-		fr.sourceStart = this.intStack[this.intPtr--];

-		fr.receiver = new SuperReference(fr.sourceStart, this.endPosition);

-		pushOnExpressionStack(fr);

-	} else {

-		//optimize push/pop

-		if ((fr.receiver = this.expressionStack[this.expressionPtr]).isThis()) {

-			//fieldreference begins at the this

-			fr.sourceStart = fr.receiver.sourceStart;

-		}

-		this.expressionStack[this.expressionPtr] = fr;

-	}

-}

-protected void consumeFieldDeclaration() {

-	// See consumeLocalVariableDeclarationDefaultModifier() in case of change: duplicated code

-	// FieldDeclaration ::= Modifiersopt Type VariableDeclarators ';'

-

-	/*

-	this.astStack : 

-	this.expressionStack: Expression Expression ...... Expression

-	this.identifierStack : type  identifier identifier ...... identifier

-	this.intStack : typeDim      dim        dim               dim

-	 ==>

-	this.astStack : FieldDeclaration FieldDeclaration ...... FieldDeclaration

-	this.expressionStack :

-	this.identifierStack : 

-	this.intStack : 

-	  

-	*/

-	int variableDeclaratorsCounter = this.astLengthStack[this.astLengthPtr];

-

-	for (int i = variableDeclaratorsCounter - 1; i >= 0; i--) {

-		FieldDeclaration fieldDeclaration = (FieldDeclaration) this.astStack[this.astPtr - i];

-		fieldDeclaration.declarationSourceEnd = this.endStatementPosition; 

-		fieldDeclaration.declarationEnd = this.endStatementPosition;	// semi-colon included

-	}

-	

-	updateSourceDeclarationParts(variableDeclaratorsCounter);

-	int endPos = flushCommentsDefinedPriorTo(this.endStatementPosition);

-	if (endPos != this.endStatementPosition) {

-		for (int i = 0; i < variableDeclaratorsCounter; i++) {

-			FieldDeclaration fieldDeclaration = (FieldDeclaration) this.astStack[this.astPtr - i];

-			fieldDeclaration.declarationSourceEnd = endPos;

-		}

-	}

-	// update the this.astStack, this.astPtr and this.astLengthStack

-	int startIndex = this.astPtr - this.variablesCounter[this.nestedType] + 1;

-	System.arraycopy(

-		this.astStack, 

-		startIndex, 

-		this.astStack, 

-		startIndex - 1, 

-		variableDeclaratorsCounter); 

-	this.astPtr--; // remove the type reference

-	this.astLengthStack[--this.astLengthPtr] = variableDeclaratorsCounter;

-

-	// recovery

-	if (this.currentElement != null) {

-		this.lastCheckPoint = endPos + 1;

-		if (this.currentElement.parent != null && this.currentElement instanceof RecoveredField){

-			if (!(this.currentElement instanceof RecoveredInitializer)) {

-				this.currentElement = this.currentElement.parent;

-			}

-		}

-		this.restartRecovery = true;

-	}

-	this.variablesCounter[this.nestedType] = 0;

-}

-protected void consumeForceNoDiet() {

-	// ForceNoDiet ::= $empty

-	this.dietInt++;

-}

-protected void consumeForInit() {

-	// ForInit ::= StatementExpressionList

-	pushOnAstLengthStack(-1);

-}

-protected void consumeFormalParameter(boolean isVarArgs) {

-	// FormalParameter ::= Type VariableDeclaratorId ==> false

-	// FormalParameter ::= Modifiers Type VariableDeclaratorId ==> true

-	/*

-	this.astStack : 

-	this.identifierStack : type identifier

-	this.intStack : dim dim

-	 ==>

-	this.astStack : Argument

-	this.identifierStack :  

-	this.intStack :  

-	*/

-

-	this.identifierLengthPtr--;

-	char[] identifierName = this.identifierStack[this.identifierPtr];

-	long namePositions = this.identifierPositionStack[this.identifierPtr--];

-	TypeReference type = getTypeReference(this.intStack[this.intPtr--] + this.intStack[this.intPtr--]);

-	int modifierPositions = this.intStack[this.intPtr--];

-	this.intPtr--;

-	Argument arg = 

-		new Argument(

-			identifierName, 

-			namePositions, 

-			type, 

-			this.intStack[this.intPtr + 1] & ~AccDeprecated,

-			isVarArgs); // modifiers

-	arg.declarationSourceStart = modifierPositions;

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			arg.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-	pushOnAstStack(arg);

-

-	/* if incomplete method header, this.listLength counter will not have been reset,

-		indicating that some arguments are available on the stack */

-	this.listLength++; 	

-	

-	if(isVarArgs &&

-			options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		this.problemReporter().invalidUsageOfVarargs(arg);

-	}

-}

-protected void consumeFormalParameterList() {

-	// FormalParameterList ::= FormalParameterList ',' FormalParameter

-	optimizedConcatNodeLists();

-}

-protected void consumeFormalParameterListopt() {

-	// FormalParameterListopt ::= $empty

-	pushOnAstLengthStack(0);

-}

-protected void consumeGenericType() {

-	// nothing to do

-	// Will be consume by a getTypeRefence call

-}

-protected void consumeGenericTypeArrayType() {

-	// nothing to do

-	// Will be consume by a getTypeRefence call

-}

-protected void consumeGenericTypeNameArrayType() {

-	pushOnGenericsLengthStack(0); // handle type arguments

-}

-protected void consumeImportDeclaration() {

-	// SingleTypeImportDeclaration ::= SingleTypeImportDeclarationName ';'

-	ImportReference impt = (ImportReference) this.astStack[this.astPtr];

-	// flush annotations defined prior to import statements

-	impt.declarationEnd = this.endStatementPosition;

-	impt.declarationSourceEnd = 

-		this.flushCommentsDefinedPriorTo(impt.declarationSourceEnd); 

-

-	// recovery

-	if (this.currentElement != null) {

-		this.lastCheckPoint = impt.declarationSourceEnd + 1;

-		this.currentElement = this.currentElement.add(impt, 0);

-		this.lastIgnoredToken = -1;

-		this.restartRecovery = true; 

-		// used to avoid branching back into the regular automaton

-	}

-}

-protected void consumeImportDeclarations() {

-	// ImportDeclarations ::= ImportDeclarations ImportDeclaration 

-	optimizedConcatNodeLists();

-}

-protected void consumeInsideCastExpression() {

-	// InsideCastExpression ::= $empty

-}

-protected void consumeInsideCastExpressionLL1() {

-	// InsideCastExpressionLL1 ::= $empty

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());

-}

-protected void consumeInsideCastExpressionWithQualifiedGenerics() {

-	// InsideCastExpressionWithQualifiedGenerics ::= $empty

-}

-protected void consumeInstanceOfExpression(int op) {

-	// RelationalExpression ::= RelationalExpression 'instanceof' ReferenceType

-	//optimize the push/pop

-

-	//by construction, no base type may be used in getTypeReference

-	Expression exp;

-	this.expressionStack[this.expressionPtr] = exp =

-		new InstanceOfExpression(

-			this.expressionStack[this.expressionPtr],

-			getTypeReference(this.intStack[this.intPtr--]),

-			op);

-	if (exp.sourceEnd == 0) {

-		//array on base type....

-		exp.sourceEnd = this.scanner.startPosition - 1;

-	}

-	//the scanner is on the next token already....

-}

-/**

- * @param op

- */

-protected void consumeInstanceOfExpressionWithName(int op) {

-	// RelationalExpression_NotName ::= Name instanceof ReferenceType

-	//optimize the push/pop

-

-	//by construction, no base type may be used in getTypeReference

-	TypeReference reference = getTypeReference(this.intStack[this.intPtr--]);

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());

-	Expression exp;

-	this.expressionStack[this.expressionPtr] = exp =

-		new InstanceOfExpression(

-			this.expressionStack[this.expressionPtr],

-			reference,

-			op);

-	if (exp.sourceEnd == 0) {

-		//array on base type....

-		exp.sourceEnd = this.scanner.startPosition - 1;

-	}

-	//the scanner is on the next token already....

-}

-protected void consumeInterfaceDeclaration() {

-	// see consumeClassDeclaration in case of changes: duplicated code

-	// InterfaceDeclaration ::= InterfaceHeader InterfaceBody

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		//there are length declarations

-		//dispatch.....according to the type of the declarations

-		dispatchDeclarationInto(length);

-	}

-

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];

-	

-	// mark initializers with local type mark if needed

-	markInitializersWithLocalType(typeDecl);

-

-	//convert constructor that do not have the type's name into methods

-	typeDecl.checkConstructors(this);

-	

-	//always add <clinit> (will be remove at code gen time if empty)

-	if (this.scanner.containsAssertKeyword) {

-		typeDecl.bits |= ASTNode.AddAssertionMASK;

-	}

-	typeDecl.addClinit();

-	typeDecl.bodyEnd = this.endStatementPosition;

-	if (length == 0 && !containsComment(typeDecl.bodyStart, typeDecl.bodyEnd)) {

-		typeDecl.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-	}

-	typeDecl.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition); 

-}

-protected void consumeInterfaceHeader() {

-	// InterfaceHeader ::= InterfaceHeaderName InterfaceHeaderExtendsopt

-

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];	

-	if (this.currentToken == TokenNameLBRACE){ 

-		typeDecl.bodyStart = this.scanner.currentPosition;

-	}

-	if (this.currentElement != null){

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton		

-	}

-	// flush the comments related to the interface header

-	this.scanner.commentPtr = -1;	

-}

-protected void consumeInterfaceHeaderExtends() {

-	// InterfaceHeaderExtends ::= 'extends' InterfaceTypeList

-	int length = this.astLengthStack[this.astLengthPtr--];

-	//super interfaces

-	this.astPtr -= length;

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];

-	System.arraycopy(

-		this.astStack, 

-		this.astPtr + 1, 

-		typeDecl.superInterfaces = new TypeReference[length], 

-		0, 

-		length); 

-	for (int i = 0, max = typeDecl.superInterfaces.length; i < max; i++) {

-		typeDecl.superInterfaces[i].bits |= ASTNode.IsSuperType;

-	}

-	typeDecl.bodyStart = typeDecl.superInterfaces[length-1].sourceEnd + 1;		

-	this.listLength = 0; // reset after having read super-interfaces		

-	// recovery

-	if (this.currentElement != null) { 

-		this.lastCheckPoint = typeDecl.bodyStart;

-	}

-}

-protected void consumeInterfaceHeaderName1() {

-	// InterfaceHeaderName ::= Modifiersopt 'interface' 'Identifier'

-	TypeDeclaration typeDecl = new TypeDeclaration(this.compilationUnit.compilationResult);

-

-	if (this.nestedMethod[this.nestedType] == 0) {

-		if (this.nestedType != 0) {

-			typeDecl.bits |= ASTNode.IsMemberTypeMASK;

-		}

-	} else {

-		// Record that the block has a declaration for local types

-		typeDecl.bits |= ASTNode.IsLocalTypeMASK;

-		markEnclosingMemberWithLocalType();

-		blockReal();

-	}

-

-	//highlight the name of the type

-	long pos = this.identifierPositionStack[this.identifierPtr];

-	typeDecl.sourceEnd = (int) pos;

-	typeDecl.sourceStart = (int) (pos >>> 32);

-	typeDecl.name = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-

-	//compute the declaration source too

-	// 'class' and 'interface' push two int positions: the beginning of the class token and its end.

-	// we want to keep the beginning position but get rid of the end position

-	// it is only used for the ClassLiteralAccess positions.

-	typeDecl.declarationSourceStart = this.intStack[this.intPtr--];

-	this.intPtr--; // remove the end position of the class token

-	typeDecl.modifiersSourceStart = this.intStack[this.intPtr--];

-	typeDecl.modifiers = this.intStack[this.intPtr--];

-	if (typeDecl.modifiersSourceStart >= 0) {

-		typeDecl.declarationSourceStart = typeDecl.modifiersSourceStart;

-	}

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			typeDecl.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-	typeDecl.bodyStart = typeDecl.sourceEnd + 1;

-	pushOnAstStack(typeDecl);

-	this.listLength = 0; // will be updated when reading super-interfaces

-	// recovery

-	if (this.currentElement != null){ // is recovering

-		this.lastCheckPoint = typeDecl.bodyStart;

-		this.currentElement = this.currentElement.add(typeDecl, 0);

-		this.lastIgnoredToken = -1;		

-	}

-	// javadoc

-	typeDecl.javadoc = this.javadoc;

-	this.javadoc = null;

-}

-protected void consumeInterfaceMemberDeclarations() {

-	// InterfaceMemberDeclarations ::= InterfaceMemberDeclarations InterfaceMemberDeclaration

-	concatNodeLists();

-}

-protected void consumeInterfaceMemberDeclarationsopt() {

-	// InterfaceMemberDeclarationsopt ::= NestedType InterfaceMemberDeclarations

-	this.nestedType--;

-}

-protected void consumeInterfaceType() {

-	// InterfaceType ::= ClassOrInterfaceType

-	pushOnAstStack(getTypeReference(0));

-	/* if incomplete type header, this.listLength counter will not have been reset,

-		indicating that some interfaces are available on the stack */

-	this.listLength++; 	

-}

-protected void consumeInterfaceTypeList() {

-	// InterfaceTypeList ::= InterfaceTypeList ',' InterfaceType

-	optimizedConcatNodeLists();

-}

-protected void consumeInternalCompilationUnit() {

-	// InternalCompilationUnit ::= PackageDeclaration

-	// InternalCompilationUnit ::= PackageDeclaration ImportDeclarations ReduceImports

-	// InternalCompilationUnit ::= ImportDeclarations ReduceImports

-}

-protected void consumeInternalCompilationUnitWithTypes() {

-	// InternalCompilationUnit ::= PackageDeclaration ImportDeclarations ReduceImports TypeDeclarations

-	// InternalCompilationUnit ::= PackageDeclaration TypeDeclarations

-	// InternalCompilationUnit ::= TypeDeclarations

-	// InternalCompilationUnit ::= ImportDeclarations ReduceImports TypeDeclarations

-	// consume type declarations

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		this.astPtr -= length;

-		System.arraycopy(this.astStack, this.astPtr + 1, this.compilationUnit.types = new TypeDeclaration[length], 0, length);

-	}

-}

-protected void consumeInvalidConstructorDeclaration() {

-	// ConstructorDeclaration ::= ConstructorHeader ';'

-	// now we know that the top of stack is a constructorDeclaration

-	ConstructorDeclaration cd = (ConstructorDeclaration) this.astStack[this.astPtr];

-

-	cd.bodyEnd = this.endPosition; // position just before the trailing semi-colon

-	cd.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition); 

-	// report the problem and continue the parsing - narrowing the problem onto the method

-	

-	cd.modifiers |= AccSemicolonBody; // remember semi-colon body

-}

-protected void consumeLeftParen() {

-	// PushLPAREN ::= '('

-	pushOnIntStack(this.lParenPos);

-}

-protected void consumeLocalVariableDeclaration() {

-	// LocalVariableDeclaration ::= Modifiers Type VariableDeclarators ';'

-

-	/*

-	this.astStack : 

-	this.expressionStack: Expression Expression ...... Expression

-	this.identifierStack : type  identifier identifier ...... identifier

-	this.intStack : typeDim      dim        dim               dim

-	 ==>

-	this.astStack : FieldDeclaration FieldDeclaration ...... FieldDeclaration

-	this.expressionStack :

-	this.identifierStack : 

-	this.intStack : 

-	  

-	*/

-	int variableDeclaratorsCounter = this.astLengthStack[this.astLengthPtr];

-

-	// update the this.astStack, this.astPtr and this.astLengthStack

-	int startIndex = this.astPtr - this.variablesCounter[this.nestedType] + 1;

-	System.arraycopy(

-		this.astStack, 

-		startIndex, 

-		this.astStack, 

-		startIndex - 1, 

-		variableDeclaratorsCounter); 

-	this.astPtr--; // remove the type reference

-	this.astLengthStack[--this.astLengthPtr] = variableDeclaratorsCounter;

-	this.variablesCounter[this.nestedType] = 0;

-}

-protected void consumeLocalVariableDeclarationStatement() {

-	// LocalVariableDeclarationStatement ::= LocalVariableDeclaration ';'

-	// see blockReal in case of change: duplicated code

-	// increment the amount of declared variables for this block

-	this.realBlockStack[this.realBlockPtr]++;

-	

-	// update source end to include the semi-colon

-	int variableDeclaratorsCounter = this.astLengthStack[this.astLengthPtr];

-	for (int i = variableDeclaratorsCounter - 1; i >= 0; i--) {

-		LocalDeclaration localDeclaration = (LocalDeclaration) this.astStack[this.astPtr - i];

-		localDeclaration.declarationSourceEnd = this.endStatementPosition; 

-		localDeclaration.declarationEnd = this.endStatementPosition;	// semi-colon included

-	}

-

-}

-protected void consumeMarkerAnnotation() {

-	// MarkerAnnotation ::= '@' Name

-	MarkerAnnotation markerAnnotation = null;

-	int length = this.identifierLengthStack[this.identifierLengthPtr--];

-	if (length == 1) {

-		markerAnnotation = new MarkerAnnotation(this.identifierStack[this.identifierPtr], this.identifierPositionStack[this.identifierPtr--], this.intStack[this.intPtr--]);

-	} else {

-		char[][] tokens = new char[length][];

-		this.identifierPtr -= length;

-		long[] positions = new long[length];

-		System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-		System.arraycopy(

-			this.identifierPositionStack, 

-			this.identifierPtr + 1, 

-			positions, 

-			0, 

-			length);

-		markerAnnotation = new MarkerAnnotation(tokens, positions, this.intStack[this.intPtr--]);			

-	}

-	int sourceStart = markerAnnotation.sourceStart;

-	if (this.modifiersSourceStart < 0) {

-		this.modifiersSourceStart = sourceStart;

-	} else if (this.modifiersSourceStart > sourceStart) {

-		this.modifiersSourceStart = sourceStart;

-	}

-	markerAnnotation.declarationSourceEnd = markerAnnotation.sourceEnd;

-	pushOnExpressionStack(markerAnnotation);

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		this.problemReporter().invalidUsageOfAnnotation(markerAnnotation);

-	}

-}

-protected void consumeMemberValueArrayInitializer() {

-	// MemberValueArrayInitializer ::= '{' MemberValues ',' '}'

-	// MemberValueArrayInitializer ::= '{' MemberValues '}'

-	arrayInitializer(this.expressionLengthStack[this.expressionLengthPtr--]);

-}

-protected void consumeMemberValueAsName() {

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());	

-}

-protected void consumeMemberValuePair() {

-	// MemberValuePair ::= SimpleName '=' MemberValue

-	char[] simpleName = this.identifierStack[this.identifierPtr];

-	long position = this.identifierPositionStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	int end = (int) position;

-	int start = (int) (position >>> 32);

-	Expression value = this.expressionStack[this.expressionPtr--];

-	this.expressionLengthPtr--;

-	MemberValuePair memberValuePair = new MemberValuePair(simpleName, start, end, value);

-	pushOnAstStack(memberValuePair);

-}

-protected void consumeMemberValuePairs() {

-	// MemberValuePairs ::= MemberValuePairs ',' MemberValuePair

-	concatNodeLists();

-}

-protected void consumeMemberValues() {

-	// MemberValues ::= MemberValues ',' MemberValue

-	concatExpressionLists();

-}

-protected void consumeMethodBody() {

-	// MethodBody ::= NestedMethod '{' BlockStatementsopt '}' 

-	this.nestedMethod[this.nestedType] --;

-}

-protected void consumeMethodDeclaration(boolean isNotAbstract) {

-	// MethodDeclaration ::= MethodHeader MethodBody

-	// AbstractMethodDeclaration ::= MethodHeader ';'

-

-	/*

-	this.astStack : modifiers arguments throws statements

-	this.identifierStack : type name

-	this.intStack : dim dim dim

-	 ==>

-	this.astStack : MethodDeclaration

-	this.identifierStack :

-	this.intStack : 

-	*/

-

-	int length;

-	if (isNotAbstract) {

-		// pop the position of the {  (body of the method) pushed in block decl

-		this.intPtr--;

-		this.intPtr--;

-	}

-

-	int explicitDeclarations = 0;

-	Statement[] statements = null;

-	if (isNotAbstract) {

-		//statements

-		explicitDeclarations = this.realBlockStack[this.realBlockPtr--];

-		if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-			System.arraycopy(

-				this.astStack, 

-				(this.astPtr -= length) + 1, 

-				statements = new Statement[length], 

-				0, 

-				length); 

-		}

-	}

-

-	// now we know that we have a method declaration at the top of the ast stack

-	MethodDeclaration md = (MethodDeclaration) this.astStack[this.astPtr];

-	md.statements = statements;

-	md.explicitDeclarations = explicitDeclarations;

-

-	// cannot be done in consumeMethodHeader because we have no idea whether or not there

-	// is a body when we reduce the method header

-	if (!isNotAbstract) { //remember the fact that the method has a semicolon body

-		md.modifiers |= AccSemicolonBody;

-	} else {

-		if (!this.diet && statements == null) {

-			if (!containsComment(md.bodyStart, this.endPosition)) {

-				md.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-			}

-		}

-	}

-	// store the this.endPosition (position just before the '}') in case there is

-	// a trailing comment behind the end of the method

-	md.bodyEnd = this.endPosition;

-	md.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition);

-}

-protected void consumeMethodHeader() {

-	// MethodHeader ::= MethodHeaderName MethodHeaderParameters MethodHeaderExtendedDims ThrowsClauseopt

-	// retrieve end position of method declarator

-	AbstractMethodDeclaration method = (AbstractMethodDeclaration)this.astStack[this.astPtr];

-

-	if (this.currentToken == TokenNameLBRACE){ 

-		method.bodyStart = this.scanner.currentPosition;

-	}

-	// recovery

-	if (this.currentElement != null){

-		if (this.currentToken == TokenNameSEMICOLON){

-			method.modifiers |= AccSemicolonBody;			

-			method.declarationSourceEnd = this.scanner.currentPosition-1;

-			method.bodyEnd = this.scanner.currentPosition-1;

-			if (this.currentElement.parseTree() == method && this.currentElement.parent != null) {

-				this.currentElement = this.currentElement.parent;

-			}

-		}		

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton

-	}		

-}

-protected void consumeMethodHeaderExtendedDims() {

-	// MethodHeaderExtendedDims ::= Dimsopt

-	// now we update the returnType of the method

-	MethodDeclaration md = (MethodDeclaration) this.astStack[this.astPtr];

-	int extendedDims = this.intStack[this.intPtr--];

-	if (extendedDims != 0) {

-		TypeReference returnType = md.returnType;

-		md.sourceEnd = this.endPosition;

-		int dims = returnType.dimensions() + extendedDims;

-		int baseType;

-		if ((baseType = this.identifierLengthStack[this.identifierLengthPtr + 1]) < 0) {

-			//it was a baseType

-			int sourceStart = returnType.sourceStart;

-			int sourceEnd =  returnType.sourceEnd;

-			returnType = TypeReference.baseTypeReference(-baseType, dims);

-			returnType.sourceStart = sourceStart;

-			returnType.sourceEnd = sourceEnd;

-			md.returnType = returnType;

-		} else {

-			md.returnType = this.copyDims(md.returnType, dims);

-		}

-		if (this.currentToken == TokenNameLBRACE){ 

-			md.bodyStart = this.endPosition + 1;

-		}

-		// recovery

-		if (this.currentElement != null){

-			this.lastCheckPoint = md.bodyStart;

-		}		

-	}

-}

-protected void consumeMethodHeaderName() {

-	// MethodHeaderName ::= Modifiersopt Type 'Identifier' '('

-	MethodDeclaration md = new MethodDeclaration(this.compilationUnit.compilationResult);

-

-	//name

-	md.selector = this.identifierStack[this.identifierPtr];

-	long selectorSource = this.identifierPositionStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	//type

-	md.returnType = getTypeReference(this.intStack[this.intPtr--]);

-	//modifiers

-	md.declarationSourceStart = this.intStack[this.intPtr--];

-	md.modifiers = this.intStack[this.intPtr--];

-	// consume annotations

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			md.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}

-	// javadoc

-	md.javadoc = this.javadoc;

-	this.javadoc = null;

-

-	//highlight starts at selector start

-	md.sourceStart = (int) (selectorSource >>> 32);

-	pushOnAstStack(md);

-	md.sourceEnd = this.lParenPos;

-	md.bodyStart = this.lParenPos+1;

-	this.listLength = 0; // initialize this.listLength before reading parameters/throws

-	

-	// recovery

-	if (this.currentElement != null){

-		if (this.currentElement instanceof RecoveredType 

-			//|| md.modifiers != 0

-			|| (this.scanner.getLineNumber(md.returnType.sourceStart)

-					== this.scanner.getLineNumber(md.sourceStart))){

-			this.lastCheckPoint = md.bodyStart;

-			this.currentElement = this.currentElement.add(md, 0);

-			this.lastIgnoredToken = -1;

-		} else {

-			this.lastCheckPoint = md.sourceStart;

-			this.restartRecovery = true;

-		}

-	}		

-}

-protected void consumeMethodHeaderNameWithTypeParameters() {

-	// MethodHeaderName ::= Modifiersopt TypeParameters Type 'Identifier' '('

-	MethodDeclaration md = new MethodDeclaration(this.compilationUnit.compilationResult);

-

-	//name

-	md.selector = this.identifierStack[this.identifierPtr];

-	long selectorSource = this.identifierPositionStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	//type

-	md.returnType = getTypeReference(this.intStack[this.intPtr--]);

-	

-	// consume type parameters

-	int length = this.genericsLengthStack[this.genericsLengthPtr--];

-	this.genericsPtr -= length;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, md.typeParameters = new TypeParameter[length], 0, length);

-	

-	//modifiers

-	md.declarationSourceStart = this.intStack[this.intPtr--];

-	md.modifiers = this.intStack[this.intPtr--];

-	// consume annotations

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			md.annotations = new Annotation[length], 

-			0, 

-			length); 

-	}	

-	// javadoc

-	md.javadoc = this.javadoc;

-	this.javadoc = null;

-

-	//highlight starts at selector start

-	md.sourceStart = (int) (selectorSource >>> 32);

-	pushOnAstStack(md);

-	md.sourceEnd = this.lParenPos;

-	md.bodyStart = this.lParenPos+1;

-	this.listLength = 0; // initialize this.listLength before reading parameters/throws

-	

-	// recovery

-	if (this.currentElement != null){

-		if (this.currentElement instanceof RecoveredType 

-			//|| md.modifiers != 0

-			|| (this.scanner.getLineNumber(md.returnType.sourceStart)

-					== this.scanner.getLineNumber(md.sourceStart))){

-			this.lastCheckPoint = md.bodyStart;

-			this.currentElement = this.currentElement.add(md, 0);

-			this.lastIgnoredToken = -1;

-		} else {

-			this.lastCheckPoint = md.sourceStart;

-			this.restartRecovery = true;

-		}

-	}		

-}

-protected void consumeMethodHeaderRightParen() {

-	// MethodHeaderParameters ::= FormalParameterListopt ')'

-	int length = this.astLengthStack[this.astLengthPtr--];

-	this.astPtr -= length;

-	AbstractMethodDeclaration md = (AbstractMethodDeclaration) this.astStack[this.astPtr];

-	md.sourceEnd = 	this.rParenPos;

-	//arguments

-	if (length != 0) {

-		System.arraycopy(

-			this.astStack, 

-			this.astPtr + 1, 

-			md.arguments = new Argument[length], 

-			0, 

-			length); 

-	}

-	md.bodyStart = this.rParenPos+1;

-	this.listLength = 0; // reset this.listLength after having read all parameters

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = md.bodyStart;

-		if (this.currentElement.parseTree() == md) return;

-

-		// might not have been attached yet - in some constructor scenarii

-		if (md.isConstructor()){

-			if ((length != 0)

-				|| (this.currentToken == TokenNameLBRACE) 

-				|| (this.currentToken == TokenNamethrows)){

-				this.currentElement = this.currentElement.add(md, 0);

-				this.lastIgnoredToken = -1;

-			}	

-		}	

-	}	

-}

-protected void consumeMethodHeaderThrowsClause() {

-	// MethodHeaderThrowsClause ::= 'throws' ClassTypeList

-	int length = this.astLengthStack[this.astLengthPtr--];

-	this.astPtr -= length;

-	AbstractMethodDeclaration md = (AbstractMethodDeclaration) this.astStack[this.astPtr];

-	System.arraycopy(

-		this.astStack, 

-		this.astPtr + 1, 

-		md.thrownExceptions = new TypeReference[length], 

-		0, 

-		length);

-	md.sourceEnd = md.thrownExceptions[length-1].sourceEnd;

-	md.bodyStart = md.thrownExceptions[length-1].sourceEnd + 1;

-	this.listLength = 0; // reset this.listLength after having read all thrown exceptions	

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = md.bodyStart;

-	}

-}

-protected void consumeMethodInvocationName() {

-	// MethodInvocation ::= Name '(' ArgumentListopt ')'

-

-	// when the name is only an identifier...we have a message send to "this" (implicit)

-

-	MessageSend m = newMessageSend();

-	m.sourceEnd = this.rParenPos;

-	m.sourceStart = 

-		(int) ((m.nameSourcePosition = this.identifierPositionStack[this.identifierPtr]) >>> 32); 

-	m.selector = this.identifierStack[this.identifierPtr--];

-	if (this.identifierLengthStack[this.identifierLengthPtr] == 1) {

-		m.receiver = ThisReference.implicitThis();

-		this.identifierLengthPtr--;

-	} else {

-		this.identifierLengthStack[this.identifierLengthPtr]--;

-		m.receiver = getUnspecifiedReference();

-		m.sourceStart = m.receiver.sourceStart;		

-	}

-	pushOnExpressionStack(m);

-}

-protected void consumeMethodInvocationNameWithTypeArguments() {

-	// MethodInvocation ::= Name '.' TypeArguments 'Identifier' '(' ArgumentListopt ')'

-

-	// when the name is only an identifier...we have a message send to "this" (implicit)

-

-	MessageSend m = newMessageSendWithTypeArguments();

-	m.sourceEnd = this.rParenPos;

-	m.sourceStart = 

-		(int) ((m.nameSourcePosition = this.identifierPositionStack[this.identifierPtr]) >>> 32); 

-	m.selector = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-

-	// handle type arguments

-	int length = this.genericsLengthStack[this.genericsLengthPtr--];

-	this.genericsPtr -= length;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, m.typeArguments = new TypeReference[length], 0, length);

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-	

-	m.receiver = getUnspecifiedReference();

-	m.sourceStart = m.receiver.sourceStart;		

-	pushOnExpressionStack(m);

-}

-protected void consumeMethodInvocationPrimary() {

-	//optimize the push/pop

-	//MethodInvocation ::= Primary '.' 'Identifier' '(' ArgumentListopt ')'

-

-	MessageSend m = newMessageSend();

-	m.sourceStart = 

-		(int) ((m.nameSourcePosition = this.identifierPositionStack[this.identifierPtr]) >>> 32); 

-	m.selector = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	m.receiver = this.expressionStack[this.expressionPtr];

-	m.sourceStart = m.receiver.sourceStart;

-	m.sourceEnd = this.rParenPos;

-	this.expressionStack[this.expressionPtr] = m;

-}

-protected void consumeMethodInvocationPrimaryWithTypeArguments() {

-	//optimize the push/pop

-	//MethodInvocation ::= Primary '.' TypeArguments 'Identifier' '(' ArgumentListopt ')'

-

-	MessageSend m = newMessageSendWithTypeArguments();

-	m.sourceStart = 

-		(int) ((m.nameSourcePosition = this.identifierPositionStack[this.identifierPtr]) >>> 32); 

-	m.selector = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	

-	// handle type arguments

-	int length = this.genericsLengthStack[this.genericsLengthPtr--];

-	this.genericsPtr -= length;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, m.typeArguments = new TypeReference[length], 0, length);

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-

-	m.receiver = this.expressionStack[this.expressionPtr];

-	m.sourceStart = m.receiver.sourceStart;

-	m.sourceEnd = this.rParenPos;

-	this.expressionStack[this.expressionPtr] = m;

-}

-protected void consumeMethodInvocationSuper() {

-	// MethodInvocation ::= 'super' '.' 'Identifier' '(' ArgumentListopt ')'

-

-	MessageSend m = newMessageSend();

-	m.sourceStart = this.intStack[this.intPtr--];

-	m.sourceEnd = this.rParenPos;

-	m.nameSourcePosition = this.identifierPositionStack[this.identifierPtr];

-	m.selector = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	m.receiver = new SuperReference(m.sourceStart, this.endPosition);

-	pushOnExpressionStack(m);

-}

-protected void consumeMethodInvocationSuperWithTypeArguments() {

-	// MethodInvocation ::= 'super' '.' TypeArguments 'Identifier' '(' ArgumentListopt ')'

-

-	MessageSend m = newMessageSendWithTypeArguments();

-	m.sourceStart = this.intStack[this.intPtr--];

-	m.sourceEnd = this.rParenPos;

-	m.nameSourcePosition = this.identifierPositionStack[this.identifierPtr];

-	m.selector = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	

-	// handle type arguments

-	int length = this.genericsLengthStack[this.genericsLengthPtr--];

-	this.genericsPtr -= length;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, m.typeArguments = new TypeReference[length], 0, length);

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-

-	m.receiver = new SuperReference(m.sourceStart, this.endPosition);

-	pushOnExpressionStack(m);

-}

-protected void consumeModifiers() {

-	int savedModifiersSourceStart = this.modifiersSourceStart;	

-	checkComment(); // might update modifiers with AccDeprecated

-	pushOnIntStack(this.modifiers); // modifiers

-	if (this.modifiersSourceStart >= savedModifiersSourceStart) {

-		this.modifiersSourceStart = savedModifiersSourceStart;

-	}

-	pushOnIntStack(this.modifiersSourceStart);

-	resetModifiers();

-}

-protected void consumeModifiers2() {

-	this.expressionLengthStack[this.expressionLengthPtr - 1] += this.expressionLengthStack[this.expressionLengthPtr--];

-}

-protected void consumeNameArrayType() {

-	pushOnGenericsLengthStack(0); // handle type arguments

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-}

-protected void consumeNestedMethod() {

-	// NestedMethod ::= $empty

-	jumpOverMethodBody();

-	this.nestedMethod[this.nestedType] ++;

-	pushOnIntStack(this.scanner.currentPosition);

-	consumeOpenBlock();

-}

-protected void consumeNestedType() {

-	// NestedType ::= $empty

-	int length = this.nestedMethod.length;

-	if (++this.nestedType >= length) {

-		System.arraycopy(

-			this.nestedMethod, 0,

-			this.nestedMethod = new int[length + 30], 0,

-			length);

-		// increase the size of the variablesCounter as well. It has to be consistent with the size of the nestedMethod collection

-		System.arraycopy(

-			this.variablesCounter, 0,

-			this.variablesCounter = new int[length + 30], 0,

-			length);

-	}

-	this.nestedMethod[this.nestedType] = 0;

-	this.variablesCounter[this.nestedType] = 0;

-}

-protected void consumeNormalAnnotation() {

-	// NormalAnnotation ::= '@' Name '(' MemberValuePairsopt ')'

-	NormalAnnotation normalAnnotation = null;

-	int length = this.identifierLengthStack[this.identifierLengthPtr--];

-	if (length == 1) {

-		normalAnnotation = new NormalAnnotation(this.identifierStack[this.identifierPtr], this.identifierPositionStack[this.identifierPtr--], this.intStack[this.intPtr--]);

-	} else {

-		char[][] tokens = new char[length][];

-		this.identifierPtr -= length;

-		long[] positions = new long[length];

-		System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-		System.arraycopy(

-			this.identifierPositionStack, 

-			this.identifierPtr + 1, 

-			positions, 

-			0, 

-			length);

-		normalAnnotation = new NormalAnnotation(tokens, positions, this.intStack[this.intPtr--]);			

-	}

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.astStack, 

-			(this.astPtr -= length) + 1, 

-			normalAnnotation.memberValuePairs = new MemberValuePair[length], 

-			0, 

-			length); 

-	}

-	int sourceStart = normalAnnotation.sourceStart;

-	if (this.modifiersSourceStart < 0) {

-		this.modifiersSourceStart = sourceStart;

-	} else if (this.modifiersSourceStart > sourceStart) {

-		this.modifiersSourceStart = sourceStart;

-	}

-	normalAnnotation.declarationSourceEnd = this.rParenPos;

-	pushOnExpressionStack(normalAnnotation);

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		this.problemReporter().invalidUsageOfAnnotation(normalAnnotation);

-	}

-}

-protected void consumeOneDimLoop() {

-	// OneDimLoop ::= '[' ']'

-	this.dimensions++;

-}

-protected void consumeOnlySynchronized() {

-	// OnlySynchronized ::= 'synchronized'

-	pushOnIntStack(this.synchronizedBlockSourceStart);

-	resetModifiers();

-	this.expressionLengthPtr--;

-}

-protected void consumeOnlyTypeArguments() {

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		int length = this.genericsLengthStack[this.genericsLengthPtr];

-		this.problemReporter().invalidUsageOfTypeArguments(

-			(TypeReference)this.genericsStack[this.genericsPtr - length + 1],

-			(TypeReference)this.genericsStack[this.genericsPtr]);

-	}

-}

-protected void consumeOnlyTypeArgumentsForCastExpression() {

-	// OnlyTypeArgumentsForCastExpression ::= OnlyTypeArguments

-}

-protected void consumeOpenBlock() {

-	// OpenBlock ::= $empty

-

-	pushOnIntStack(this.scanner.startPosition);

-	int stackLength = this.realBlockStack.length;

-	if (++this.realBlockPtr >= stackLength) {

-		System.arraycopy(

-			this.realBlockStack, 0,

-			this.realBlockStack = new int[stackLength + StackIncrement], 0,

-			stackLength);

-	}

-	this.realBlockStack[this.realBlockPtr] = 0;

-}

-protected void consumePackageDeclaration() {

-	// PackageDeclaration ::= 'package' Name ';'

-	/* build an ImportRef build from the last name 

-	stored in the identifier stack. */

-

-	ImportReference impt = this.compilationUnit.currentPackage;

-	// flush comments defined prior to import statements

-	impt.declarationEnd = this.endStatementPosition;

-	impt.declarationSourceEnd = this.flushCommentsDefinedPriorTo(impt.declarationSourceEnd);

-}

-protected void consumePackageDeclarationName() {

-	// PackageDeclarationName ::= 'package' Name

-	/* build an ImportRef build from the last name 

-	stored in the identifier stack. */

-

-	ImportReference impt;

-	int length;

-	char[][] tokens = 

-		new char[length = this.identifierLengthStack[this.identifierLengthPtr--]][]; 

-	this.identifierPtr -= length;

-	long[] positions = new long[length];

-	System.arraycopy(this.identifierStack, ++this.identifierPtr, tokens, 0, length);

-	System.arraycopy(

-		this.identifierPositionStack, 

-		this.identifierPtr--, 

-		positions, 

-		0, 

-		length);

-	

-	impt = new ImportReference(tokens, positions, true, AccDefault);

-	this.compilationUnit.currentPackage = impt; 

-

-	if (this.currentToken == TokenNameSEMICOLON){

-		impt.declarationSourceEnd = this.scanner.currentPosition - 1;

-	} else {

-		impt.declarationSourceEnd = impt.sourceEnd;

-	}

-	impt.declarationEnd = impt.declarationSourceEnd;

-	//this.endPosition is just before the ;

-	impt.declarationSourceStart = this.intStack[this.intPtr--];

-

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = impt.declarationSourceEnd+1;

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton		

-	}	

-}

-protected void consumePackageDeclarationNameWithModifiers() {

-	// PackageDeclarationName ::= Modifiers 'package' Name

-	/* build an ImportRef build from the last name 

-	stored in the identifier stack. */

-

-	ImportReference impt;

-	int length;

-	char[][] tokens = 

-		new char[length = this.identifierLengthStack[this.identifierLengthPtr--]][]; 

-	this.identifierPtr -= length;

-	long[] positions = new long[length];

-	System.arraycopy(this.identifierStack, ++this.identifierPtr, tokens, 0, length);

-	System.arraycopy(

-		this.identifierPositionStack, 

-		this.identifierPtr--, 

-		positions, 

-		0, 

-		length);

-	

-	int packageModifiersSourceStart = this.intStack[this.intPtr--]; // we don't need the modifiers start

-	int packageModifiers = this.intStack[this.intPtr--];

-

-	impt = new ImportReference(tokens, positions, true, packageModifiers);

-	this.compilationUnit.currentPackage = impt; 

-	// consume annotations

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.expressionStack, 

-			(this.expressionPtr -= length) + 1, 

-			impt.annotations = new Annotation[length], 

-			0, 

-			length);

-		impt.declarationSourceStart = packageModifiersSourceStart;

-		intPtr--; // we don't need the position of the 'package keyword

-	} else {

-		impt.declarationSourceStart = this.intStack[this.intPtr--];

-	}

-		

-	if (this.currentToken == TokenNameSEMICOLON){

-		impt.declarationSourceEnd = this.scanner.currentPosition - 1;

-	} else {

-		impt.declarationSourceEnd = impt.sourceEnd;

-	}

-	impt.declarationEnd = impt.declarationSourceEnd;

-

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = impt.declarationSourceEnd+1;

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton		

-	}	

-}

-protected void consumePostfixExpression() {

-	// PostfixExpression ::= Name

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());

-}

-protected void consumePrimaryNoNewArray() {

-	// PrimaryNoNewArray ::=  PushLPAREN Expression PushRPAREN 

-	final Expression parenthesizedExpression = this.expressionStack[this.expressionPtr];

-	updateSourcePosition(parenthesizedExpression);

-	int numberOfParenthesis = (parenthesizedExpression.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;

-	parenthesizedExpression.bits &= ~ASTNode.ParenthesizedMASK;

-	parenthesizedExpression.bits |= (numberOfParenthesis + 1) << ASTNode.ParenthesizedSHIFT;

-}

-protected void consumePrimaryNoNewArrayArrayType() {

-	// PrimaryNoNewArray ::= Name Dims '.' 'class'

-	this.intPtr--; // remove the class start position

-

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-	pushOnGenericsLengthStack(0);

-

-	pushOnExpressionStack(

-		new ClassLiteralAccess(this.intStack[this.intPtr--], getTypeReference(this.intStack[this.intPtr--])));

-}

-protected void consumePrimaryNoNewArrayName() {

-	// PrimaryNoNewArray ::= Name '.' 'class'

-	this.intPtr--; // remove the class start position

-

-	// handle type arguments

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-	pushOnGenericsLengthStack(0);

-	TypeReference typeReference = getTypeReference(0);

-	

-	pushOnExpressionStack(

-		new ClassLiteralAccess(this.intStack[this.intPtr--], typeReference));

-}

-protected void consumePrimaryNoNewArrayNameSuper() {

-	// PrimaryNoNewArray ::= Name '.' 'super'

-	// handle type arguments

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-	pushOnGenericsLengthStack(0);

-	TypeReference typeReference = getTypeReference(0);

-

-	pushOnExpressionStack(

-		new QualifiedSuperReference(

-			typeReference,

-			this.intStack[this.intPtr--],

-			this.endPosition));

-}

-protected void consumePrimaryNoNewArrayNameThis() {

-	// PrimaryNoNewArray ::= Name '.' 'this'

-	// handle type arguments

-	pushOnGenericsIdentifiersLengthStack(this.identifierLengthStack[this.identifierLengthPtr]);

-	pushOnGenericsLengthStack(0); // handle type arguments

-

-	TypeReference typeReference = getTypeReference(0);

-	

-	pushOnExpressionStack(

-		new QualifiedThisReference(

-			typeReference,

-			this.intStack[this.intPtr--],

-			this.endPosition));

-}

-protected void consumePrimaryNoNewArrayPrimitiveArrayType() {

-	// PrimaryNoNewArray ::= PrimitiveType Dims '.' 'class'

-	this.intPtr--; // remove the class start position

-	pushOnExpressionStack(

-		new ClassLiteralAccess(this.intStack[this.intPtr--], getTypeReference(this.intStack[this.intPtr--])));

-}

-protected void consumePrimaryNoNewArrayPrimitiveType() {

-	// PrimaryNoNewArray ::= PrimitiveType '.' 'class'

-	this.intPtr--; // remove the class start position

-	pushOnExpressionStack(

-		new ClassLiteralAccess(this.intStack[this.intPtr--], getTypeReference(0)));

-}

-protected void consumePrimaryNoNewArrayThis() {

-	// PrimaryNoNewArray ::= 'this'

-	pushOnExpressionStack(new ThisReference(this.intStack[this.intPtr--], this.endPosition));

-}

-protected void consumePrimaryNoNewArrayWithName() {

-	// PrimaryNoNewArray ::=  PushLPAREN Expression PushRPAREN 

-	pushOnExpressionStack(getUnspecifiedReferenceOptimized());

-	final Expression parenthesizedExpression = this.expressionStack[this.expressionPtr];

-	updateSourcePosition(parenthesizedExpression);

-	int numberOfParenthesis = (parenthesizedExpression.bits & ASTNode.ParenthesizedMASK) >> ASTNode.ParenthesizedSHIFT;

-	parenthesizedExpression.bits &= ~ASTNode.ParenthesizedMASK;

-	parenthesizedExpression.bits |= (numberOfParenthesis + 1) << ASTNode.ParenthesizedSHIFT;

-}

-protected void consumePrimitiveArrayType() {

-	// nothing to do

-	// Will be consume by a getTypeRefence call

-}

-protected void consumePrimitiveType() {

-	// Type ::= PrimitiveType

-	pushOnIntStack(0);

-}

-protected void consumePushLeftBrace() {

-	pushOnIntStack(this.endPosition); // modifiers

-}

-protected void consumePushRealModifiers() {

-	pushOnIntStack(this.modifiers); // modifiers

-	pushOnIntStack(this.modifiersSourceStart);

-	resetModifiers();

-}

-protected void consumePushModifiers() {

-	pushOnIntStack(this.modifiers); // modifiers

-	pushOnIntStack(this.modifiersSourceStart);

-	resetModifiers();

-	pushOnExpressionStackLengthStack(0);

-}

-protected void consumePushPosition() {

-	// for source managment purpose

-	// PushPosition ::= $empty

-	pushOnIntStack(this.endPosition);

-}

-protected void consumeQualifiedName() {

-	// QualifiedName ::= Name '.' SimpleName 

-	/*back from the recursive loop of QualifiedName.

-	Updates identifier length into the length stack*/

-

-	this.identifierLengthStack[--this.identifierLengthPtr]++;

-}

-protected void consumeReduceImports() {

-	// Consume imports

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		this.astPtr -= length;

-		System.arraycopy(

-			this.astStack,

-			this.astPtr + 1,

-			this.compilationUnit.imports = new ImportReference[length],

-			0,

-			length);

-	}

-}

-protected void consumeReferenceType() {

-	pushOnIntStack(0); // handle array type

-}

-protected void consumeReferenceType1() {

-	pushOnGenericsStack(getTypeReference(this.intStack[this.intPtr--]));	

-}

-protected void consumeReferenceType2() {

-	pushOnGenericsStack(getTypeReference(this.intStack[this.intPtr--]));	

-}

-protected void consumeReferenceType3() {

-	pushOnGenericsStack(getTypeReference(this.intStack[this.intPtr--]));	

-}

-protected void consumeRestoreDiet() {

-	// RestoreDiet ::= $empty

-	this.dietInt--;

-}

-protected void consumeRightParen() {

-	// PushRPAREN ::= ')'

-	pushOnIntStack(this.rParenPos);

-}

-// This method is part of an automatic generation : do NOT edit-modify  

-protected void consumeRule(int act) {

-  switch ( act ) {

-    case 26 : if (DEBUG) { System.out.println("Type ::= PrimitiveType"); }  //$NON-NLS-1$

-		    consumePrimitiveType();  

-			break;

- 

-    case 40 : if (DEBUG) { System.out.println("ReferenceType ::= ClassOrInterfaceType"); }  //$NON-NLS-1$

-		    consumeReferenceType();   

-			break;

- 

-    case 44 : if (DEBUG) { System.out.println("ClassOrInterface ::= Name"); }  //$NON-NLS-1$

-		    consumeClassOrInterfaceName();   

-			break;

- 

-    case 45 : if (DEBUG) { System.out.println("ClassOrInterface ::= GenericType DOT Name"); }  //$NON-NLS-1$

-		    consumeClassOrInterface();   

-			break;

- 

-    case 46 : if (DEBUG) { System.out.println("GenericType ::= ClassOrInterface TypeArguments"); }  //$NON-NLS-1$

-		    consumeGenericType();   

-			break;

- 

-    case 47 : if (DEBUG) { System.out.println("ArrayTypeWithTypeArgumentsName ::= GenericType DOT Name"); }  //$NON-NLS-1$

-		    consumeArrayTypeWithTypeArgumentsName();   

-			break;

- 

-    case 48 : if (DEBUG) { System.out.println("ArrayType ::= PrimitiveType Dims"); }  //$NON-NLS-1$

-		    consumePrimitiveArrayType();   

-			break;

- 

-    case 49 : if (DEBUG) { System.out.println("ArrayType ::= Name Dims"); }  //$NON-NLS-1$

-		    consumeNameArrayType();   

-			break;

- 

-    case 50 : if (DEBUG) { System.out.println("ArrayType ::= ArrayTypeWithTypeArgumentsName Dims"); }  //$NON-NLS-1$

-		    consumeGenericTypeNameArrayType();   

-			break;

- 

-    case 51 : if (DEBUG) { System.out.println("ArrayType ::= GenericType Dims"); }  //$NON-NLS-1$

-		    consumeGenericTypeArrayType();   

-			break;

- 

-    case 56 : if (DEBUG) { System.out.println("QualifiedName ::= Name DOT SimpleName"); }  //$NON-NLS-1$

-		    consumeQualifiedName();  

-			break;

- 

-    case 57 : if (DEBUG) { System.out.println("CompilationUnit ::= EnterCompilationUnit..."); }  //$NON-NLS-1$

-		    consumeCompilationUnit();  

-			break;

- 

-    case 58 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration"); }  //$NON-NLS-1$

-		    consumeInternalCompilationUnit();  

-			break;

- 

-    case 59 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); }  //$NON-NLS-1$

-		    consumeInternalCompilationUnit();  

-			break;

- 

-    case 60 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); }  //$NON-NLS-1$

-		    consumeInternalCompilationUnitWithTypes();  

-			break;

- 

-    case 61 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= PackageDeclaration..."); }  //$NON-NLS-1$

-		    consumeInternalCompilationUnitWithTypes();  

-			break;

- 

-    case 62 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); }  //$NON-NLS-1$

-		    consumeInternalCompilationUnit();  

-			break;

- 

-    case 63 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= TypeDeclarations"); }  //$NON-NLS-1$

-		    consumeInternalCompilationUnitWithTypes();  

-			break;

- 

-    case 64 : if (DEBUG) { System.out.println("InternalCompilationUnit ::= ImportDeclarations..."); }  //$NON-NLS-1$

-		    consumeInternalCompilationUnitWithTypes();  

-			break;

- 

-    case 65 : if (DEBUG) { System.out.println("InternalCompilationUnit ::="); }  //$NON-NLS-1$

-		    consumeEmptyInternalCompilationUnit();  

-			break;

- 

-    case 66 : if (DEBUG) { System.out.println("ReduceImports ::="); }  //$NON-NLS-1$

-		    consumeReduceImports();  

-			break;

- 

-    case 67 : if (DEBUG) { System.out.println("EnterCompilationUnit ::="); }  //$NON-NLS-1$

-		    consumeEnterCompilationUnit();  

-			break;

- 

-    case 78 : if (DEBUG) { System.out.println("CatchHeader ::= catch LPAREN FormalParameter RPAREN..."); }  //$NON-NLS-1$

-		    consumeCatchHeader();  

-			break;

- 

-    case 80 : if (DEBUG) { System.out.println("ImportDeclarations ::= ImportDeclarations..."); }  //$NON-NLS-1$

-		    consumeImportDeclarations();  

-			break;

- 

-    case 82 : if (DEBUG) { System.out.println("TypeDeclarations ::= TypeDeclarations TypeDeclaration"); }  //$NON-NLS-1$

-		    consumeTypeDeclarations();  

-			break;

- 

-    case 83 : if (DEBUG) { System.out.println("PackageDeclaration ::= PackageDeclarationName SEMICOLON"); }  //$NON-NLS-1$

-		     consumePackageDeclaration();  

-			break;

- 

-    case 84 : if (DEBUG) { System.out.println("PackageDeclarationName ::= Modifiers package..."); }  //$NON-NLS-1$

-		     consumePackageDeclarationNameWithModifiers();  

-			break;

- 

-    case 85 : if (DEBUG) { System.out.println("PackageDeclarationName ::= package Name"); }  //$NON-NLS-1$

-		     consumePackageDeclarationName();  

-			break;

- 

-    case 90 : if (DEBUG) { System.out.println("SingleTypeImportDeclaration ::=..."); }  //$NON-NLS-1$

-		    consumeImportDeclaration();  

-			break;

- 

-    case 91 : if (DEBUG) { System.out.println("SingleTypeImportDeclarationName ::= import Name"); }  //$NON-NLS-1$

-		    consumeSingleTypeImportDeclarationName();  

-			break;

- 

-    case 92 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclaration ::=..."); }  //$NON-NLS-1$

-		    consumeImportDeclaration();  

-			break;

- 

-    case 93 : if (DEBUG) { System.out.println("TypeImportOnDemandDeclarationName ::= import Name DOT..."); }  //$NON-NLS-1$

-		    consumeTypeImportOnDemandDeclarationName();  

-			break;

- 

-     case 96 : if (DEBUG) { System.out.println("TypeDeclaration ::= SEMICOLON"); }  //$NON-NLS-1$

-		    consumeEmptyTypeDeclaration();  

-			break;

- 

-    case 100 : if (DEBUG) { System.out.println("Modifiers ::= Modifiers Modifier"); }  //$NON-NLS-1$

-		    consumeModifiers2();  

-			break;

- 

-    case 112 : if (DEBUG) { System.out.println("Modifier ::= Annotation"); }  //$NON-NLS-1$

-		    consumeAnnotationAsModifier();  

-			break;

- 

-    case 113 : if (DEBUG) { System.out.println("ClassDeclaration ::= ClassHeader ClassBody"); }  //$NON-NLS-1$

-		    consumeClassDeclaration();  

-			break;

- 

-    case 114 : if (DEBUG) { System.out.println("ClassHeader ::= ClassHeaderName ClassHeaderExtendsopt..."); }  //$NON-NLS-1$

-		    consumeClassHeader();  

-			break;

- 

-    case 115 : if (DEBUG) { System.out.println("ClassHeaderName ::= ClassHeaderName1 TypeParameters"); }  //$NON-NLS-1$

-		    consumeTypeHeaderNameWithTypeParameters();  

-			break;

- 

-    case 117 : if (DEBUG) { System.out.println("ClassHeaderName1 ::= Modifiersopt class Identifier"); }  //$NON-NLS-1$

-		    consumeClassHeaderName1();  

-			break;

- 

-    case 118 : if (DEBUG) { System.out.println("ClassHeaderExtends ::= extends ClassType"); }  //$NON-NLS-1$

-		    consumeClassHeaderExtends();  

-			break;

- 

-    case 119 : if (DEBUG) { System.out.println("ClassHeaderImplements ::= implements InterfaceTypeList"); }  //$NON-NLS-1$

-		    consumeClassHeaderImplements();  

-			break;

- 

-    case 121 : if (DEBUG) { System.out.println("InterfaceTypeList ::= InterfaceTypeList COMMA..."); }  //$NON-NLS-1$

-		    consumeInterfaceTypeList();  

-			break;

- 

-    case 122 : if (DEBUG) { System.out.println("InterfaceType ::= ClassOrInterfaceType"); }  //$NON-NLS-1$

-		    consumeInterfaceType();  

-			break;

- 

-    case 125 : if (DEBUG) { System.out.println("ClassBodyDeclarations ::= ClassBodyDeclarations..."); }  //$NON-NLS-1$

-		    consumeClassBodyDeclarations();  

-			break;

- 

-    case 129 : if (DEBUG) { System.out.println("ClassBodyDeclaration ::= Diet NestedMethod Block"); }  //$NON-NLS-1$

-		    consumeClassBodyDeclaration();  

-			break;

- 

-    case 130 : if (DEBUG) { System.out.println("Diet ::="); }  //$NON-NLS-1$

-		    consumeDiet();  

-			break;

-

-    case 131 : if (DEBUG) { System.out.println("Initializer ::= Diet NestedMethod Block"); }  //$NON-NLS-1$

-		    consumeClassBodyDeclaration();  

-			break;

- 

-    case 137 : if (DEBUG) { System.out.println("ClassMemberDeclaration ::= SEMICOLON"); }  //$NON-NLS-1$

-		    consumeEmptyClassMemberDeclaration();  

-			break;

-

-    case 140 : if (DEBUG) { System.out.println("FieldDeclaration ::= Modifiersopt Type..."); }  //$NON-NLS-1$

-		    consumeFieldDeclaration();  

-			break;

- 

-    case 142 : if (DEBUG) { System.out.println("VariableDeclarators ::= VariableDeclarators COMMA..."); }  //$NON-NLS-1$

-		    consumeVariableDeclarators();  

-			break;

- 

-    case 145 : if (DEBUG) { System.out.println("EnterVariable ::="); }  //$NON-NLS-1$

-		    consumeEnterVariable();  

-			break;

- 

-    case 146 : if (DEBUG) { System.out.println("ExitVariableWithInitialization ::="); }  //$NON-NLS-1$

-		    consumeExitVariableWithInitialization();  

-			break;

- 

-    case 147 : if (DEBUG) { System.out.println("ExitVariableWithoutInitialization ::="); }  //$NON-NLS-1$

-		    consumeExitVariableWithoutInitialization();  

-			break;

- 

-    case 148 : if (DEBUG) { System.out.println("ForceNoDiet ::="); }  //$NON-NLS-1$

-		    consumeForceNoDiet();  

-			break;

- 

-    case 149 : if (DEBUG) { System.out.println("RestoreDiet ::="); }  //$NON-NLS-1$

-		    consumeRestoreDiet();  

-			break;

- 

-    case 154 : if (DEBUG) { System.out.println("MethodDeclaration ::= MethodHeader MethodBody"); }  //$NON-NLS-1$

-		    // set to true to consume a method with a body

-  consumeMethodDeclaration(true);   

-			break;

- 

-    case 155 : if (DEBUG) { System.out.println("AbstractMethodDeclaration ::= MethodHeader SEMICOLON"); }  //$NON-NLS-1$

-		    // set to false to consume a method without body

-  consumeMethodDeclaration(false);  

-			break;

- 

-    case 156 : if (DEBUG) { System.out.println("MethodHeader ::= MethodHeaderName FormalParameterListopt"); }  //$NON-NLS-1$

-		    consumeMethodHeader();  

-			break;

- 

-    case 157 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt TypeParameters Type..."); }  //$NON-NLS-1$

-		    consumeMethodHeaderNameWithTypeParameters();  

-			break;

- 

-    case 158 : if (DEBUG) { System.out.println("MethodHeaderName ::= Modifiersopt Type Identifier LPAREN"); }  //$NON-NLS-1$

-		    consumeMethodHeaderName();  

-			break;

- 

-    case 159 : if (DEBUG) { System.out.println("MethodHeaderRightParen ::= RPAREN"); }  //$NON-NLS-1$

-		    consumeMethodHeaderRightParen();  

-			break;

- 

-    case 160 : if (DEBUG) { System.out.println("MethodHeaderExtendedDims ::= Dimsopt"); }  //$NON-NLS-1$

-		    consumeMethodHeaderExtendedDims();  

-			break;

- 

-    case 161 : if (DEBUG) { System.out.println("MethodHeaderThrowsClause ::= throws ClassTypeList"); }  //$NON-NLS-1$

-		    consumeMethodHeaderThrowsClause();  

-			break;

- 

-    case 162 : if (DEBUG) { System.out.println("ConstructorHeader ::= ConstructorHeaderName..."); }  //$NON-NLS-1$

-		    consumeConstructorHeader();  

-			break;

- 

-    case 163 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt TypeParameters..."); }  //$NON-NLS-1$

-		    consumeConstructorHeaderNameWithTypeParameters();  

-			break;

- 

-    case 164 : if (DEBUG) { System.out.println("ConstructorHeaderName ::= Modifiersopt Identifier LPAREN"); }  //$NON-NLS-1$

-		    consumeConstructorHeaderName();  

-			break;

- 

-    case 166 : if (DEBUG) { System.out.println("FormalParameterList ::= FormalParameterList COMMA..."); }  //$NON-NLS-1$

-		    consumeFormalParameterList();  

-			break;

- 

-    case 167 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type..."); }  //$NON-NLS-1$

-		    consumeFormalParameter(false);  

-			break;

- 

-    case 168 : if (DEBUG) { System.out.println("FormalParameter ::= Modifiersopt Type ELLIPSIS..."); }  //$NON-NLS-1$

-		    consumeFormalParameter(true);  

-			break;

- 

-    case 170 : if (DEBUG) { System.out.println("ClassTypeList ::= ClassTypeList COMMA ClassTypeElt"); }  //$NON-NLS-1$

-		    consumeClassTypeList();  

-			break;

- 

-    case 171 : if (DEBUG) { System.out.println("ClassTypeElt ::= ClassType"); }  //$NON-NLS-1$

-		    consumeClassTypeElt();  

-			break;

- 

-    case 172 : if (DEBUG) { System.out.println("MethodBody ::= NestedMethod LBRACE BlockStatementsopt..."); }  //$NON-NLS-1$

-		    consumeMethodBody();  

-			break;

- 

-    case 173 : if (DEBUG) { System.out.println("NestedMethod ::="); }  //$NON-NLS-1$

-		    consumeNestedMethod();  

-			break;

- 

-    case 174 : if (DEBUG) { System.out.println("StaticInitializer ::= StaticOnly Block"); }  //$NON-NLS-1$

-		    consumeStaticInitializer();  

-			break;

-

-    case 175 : if (DEBUG) { System.out.println("StaticOnly ::= static"); }  //$NON-NLS-1$

-		    consumeStaticOnly();  

-			break;

- 

-    case 176 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader MethodBody"); }  //$NON-NLS-1$

-		    consumeConstructorDeclaration() ;  

-			break;

- 

-    case 177 : if (DEBUG) { System.out.println("ConstructorDeclaration ::= ConstructorHeader SEMICOLON"); }  //$NON-NLS-1$

-		    consumeInvalidConstructorDeclaration() ;  

-			break;

- 

-    case 178 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= this LPAREN..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocation(0, THIS_CALL);  

-			break;

- 

-    case 179 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments this"); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocationWithTypeArguments(0,THIS_CALL);  

-			break;

- 

-    case 180 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= super LPAREN..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocation(0,SUPER_CALL);  

-			break;

- 

-    case 181 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= OnlyTypeArguments..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocationWithTypeArguments(0,SUPER_CALL);  

-			break;

- 

-    case 182 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT super..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocation(1, SUPER_CALL);  

-			break;

- 

-    case 183 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocationWithTypeArguments(1, SUPER_CALL);  

-			break;

- 

-    case 184 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT super LPAREN"); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocation(2, SUPER_CALL);  

-			break;

- 

-    case 185 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocationWithTypeArguments(2, SUPER_CALL);  

-			break;

- 

-    case 186 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT this..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocation(1, THIS_CALL);  

-			break;

- 

-    case 187 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Primary DOT..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocationWithTypeArguments(1, THIS_CALL);  

-			break;

- 

-    case 188 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT this LPAREN"); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocation(2, THIS_CALL);  

-			break;

- 

-    case 189 : if (DEBUG) { System.out.println("ExplicitConstructorInvocation ::= Name DOT..."); }  //$NON-NLS-1$

-		    consumeExplicitConstructorInvocationWithTypeArguments(2, THIS_CALL);  

-			break;

- 

-    case 190 : if (DEBUG) { System.out.println("InterfaceDeclaration ::= InterfaceHeader InterfaceBody"); }  //$NON-NLS-1$

-		    consumeInterfaceDeclaration();  

-			break;

- 

-    case 191 : if (DEBUG) { System.out.println("InterfaceHeader ::= InterfaceHeaderName..."); }  //$NON-NLS-1$

-		    consumeInterfaceHeader();  

-			break;

- 

-    case 192 : if (DEBUG) { System.out.println("InterfaceHeaderName ::= InterfaceHeaderName1..."); }  //$NON-NLS-1$

-		    consumeTypeHeaderNameWithTypeParameters();  

-			break;

- 

-    case 194 : if (DEBUG) { System.out.println("InterfaceHeaderName1 ::= Modifiersopt interface..."); }  //$NON-NLS-1$

-		    consumeInterfaceHeaderName1();  

-			break;

- 

-    case 196 : if (DEBUG) { System.out.println("InterfaceHeaderExtends ::= extends InterfaceTypeList"); }  //$NON-NLS-1$

-		    consumeInterfaceHeaderExtends();  

-			break;

- 

-    case 199 : if (DEBUG) { System.out.println("InterfaceMemberDeclarations ::=..."); }  //$NON-NLS-1$

-		    consumeInterfaceMemberDeclarations();  

-			break;

- 

-    case 200 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= SEMICOLON"); }  //$NON-NLS-1$

-		    consumeEmptyInterfaceMemberDeclaration();  

-			break;

- 

-    case 203 : if (DEBUG) { System.out.println("InterfaceMemberDeclaration ::= InvalidMethodDeclaration"); }  //$NON-NLS-1$

-		    ignoreMethodBody();  

-			break;

- 

-    case 204 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); }  //$NON-NLS-1$

-		    ignoreInvalidConstructorDeclaration(true);   

-			break;

- 

-    case 205 : if (DEBUG) { System.out.println("InvalidConstructorDeclaration ::= ConstructorHeader..."); }  //$NON-NLS-1$

-		    ignoreInvalidConstructorDeclaration(false);   

-			break;

- 

-    case 212 : if (DEBUG) { System.out.println("PushLeftBrace ::="); }  //$NON-NLS-1$

-		    consumePushLeftBrace();  

-			break;

- 

-    case 213 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace ,opt RBRACE"); }  //$NON-NLS-1$

-		    consumeEmptyArrayInitializer();  

-			break;

- 

-    case 214 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$

-		    consumeArrayInitializer();  

-			break;

- 

-    case 215 : if (DEBUG) { System.out.println("ArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$

-		    consumeArrayInitializer();  

-			break;

- 

-    case 217 : if (DEBUG) { System.out.println("VariableInitializers ::= VariableInitializers COMMA..."); }  //$NON-NLS-1$

-		    consumeVariableInitializers();  

-			break;

- 

-    case 218 : if (DEBUG) { System.out.println("Block ::= OpenBlock LBRACE BlockStatementsopt RBRACE"); }  //$NON-NLS-1$

-		    consumeBlock();  

-			break;

- 

-    case 219 : if (DEBUG) { System.out.println("OpenBlock ::="); }  //$NON-NLS-1$

-		    consumeOpenBlock() ;  

-			break;

- 

-    case 221 : if (DEBUG) { System.out.println("BlockStatements ::= BlockStatements BlockStatement"); }  //$NON-NLS-1$

-		    consumeBlockStatements() ;  

-			break;

- 

-    case 225 : if (DEBUG) { System.out.println("BlockStatement ::= InvalidInterfaceDeclaration"); }  //$NON-NLS-1$

-		    ignoreInterfaceDeclaration();  

-			break;

- 

-    case 226 : if (DEBUG) { System.out.println("LocalVariableDeclarationStatement ::=..."); }  //$NON-NLS-1$

-		    consumeLocalVariableDeclarationStatement();  

-			break;

- 

-    case 227 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Type PushModifiers..."); }  //$NON-NLS-1$

-		    consumeLocalVariableDeclaration();  

-			break;

- 

-    case 228 : if (DEBUG) { System.out.println("LocalVariableDeclaration ::= Modifiers Type..."); }  //$NON-NLS-1$

-		    consumeLocalVariableDeclaration();  

-			break;

- 

-    case 229 : if (DEBUG) { System.out.println("PushModifiers ::="); }  //$NON-NLS-1$

-		    consumePushModifiers();  

-			break;

- 

-    case 230 : if (DEBUG) { System.out.println("PushRealModifiers ::="); }  //$NON-NLS-1$

-		    consumePushRealModifiers();  

-			break;

- 

-    case 256 : if (DEBUG) { System.out.println("EmptyStatement ::= SEMICOLON"); }  //$NON-NLS-1$

-		    consumeEmptyStatement();  

-			break;

- 

-    case 257 : if (DEBUG) { System.out.println("LabeledStatement ::= Identifier COLON Statement"); }  //$NON-NLS-1$

-		    consumeStatementLabel() ;  

-			break;

- 

-    case 258 : if (DEBUG) { System.out.println("LabeledStatementNoShortIf ::= Identifier COLON..."); }  //$NON-NLS-1$

-		    consumeStatementLabel() ;  

-			break;

- 

-     case 259 : if (DEBUG) { System.out.println("ExpressionStatement ::= StatementExpression SEMICOLON"); }  //$NON-NLS-1$

-		    consumeExpressionStatement();  

-			break;

- 

-    case 268 : if (DEBUG) { System.out.println("IfThenStatement ::= if LPAREN Expression RPAREN..."); }  //$NON-NLS-1$

-		    consumeStatementIfNoElse();  

-			break;

- 

-    case 269 : if (DEBUG) { System.out.println("IfThenElseStatement ::= if LPAREN Expression RPAREN..."); }  //$NON-NLS-1$

-		    consumeStatementIfWithElse();  

-			break;

- 

-    case 270 : if (DEBUG) { System.out.println("IfThenElseStatementNoShortIf ::= if LPAREN Expression..."); }  //$NON-NLS-1$

-		    consumeStatementIfWithElse();  

-			break;

- 

-    case 271 : if (DEBUG) { System.out.println("SwitchStatement ::= switch LPAREN Expression RPAREN..."); }  //$NON-NLS-1$

-		    consumeStatementSwitch() ;  

-			break;

- 

-    case 272 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE RBRACE"); }  //$NON-NLS-1$

-		    consumeEmptySwitchBlock() ;  

-			break;

- 

-    case 275 : if (DEBUG) { System.out.println("SwitchBlock ::= LBRACE SwitchBlockStatements..."); }  //$NON-NLS-1$

-		    consumeSwitchBlock() ;  

-			break;

- 

-    case 277 : if (DEBUG) { System.out.println("SwitchBlockStatements ::= SwitchBlockStatements..."); }  //$NON-NLS-1$

-		    consumeSwitchBlockStatements() ;  

-			break;

- 

-    case 278 : if (DEBUG) { System.out.println("SwitchBlockStatement ::= SwitchLabels BlockStatements"); }  //$NON-NLS-1$

-		    consumeSwitchBlockStatement() ;  

-			break;

- 

-    case 280 : if (DEBUG) { System.out.println("SwitchLabels ::= SwitchLabels SwitchLabel"); }  //$NON-NLS-1$

-		    consumeSwitchLabels() ;  

-			break;

- 

-     case 281 : if (DEBUG) { System.out.println("SwitchLabel ::= case ConstantExpression COLON"); }  //$NON-NLS-1$

-		    consumeCaseLabel();  

-			break;

- 

-     case 282 : if (DEBUG) { System.out.println("SwitchLabel ::= default COLON"); }  //$NON-NLS-1$

-		    consumeDefaultLabel();  

-			break;

- 

-    case 283 : if (DEBUG) { System.out.println("WhileStatement ::= while LPAREN Expression RPAREN..."); }  //$NON-NLS-1$

-		    consumeStatementWhile() ;  

-			break;

- 

-    case 284 : if (DEBUG) { System.out.println("WhileStatementNoShortIf ::= while LPAREN Expression..."); }  //$NON-NLS-1$

-		    consumeStatementWhile() ;  

-			break;

- 

-    case 285 : if (DEBUG) { System.out.println("DoStatement ::= do Statement while LPAREN Expression..."); }  //$NON-NLS-1$

-		    consumeStatementDo() ;  

-			break;

- 

-    case 286 : if (DEBUG) { System.out.println("ForStatement ::= for LPAREN ForInitopt SEMICOLON..."); }  //$NON-NLS-1$

-		    consumeStatementFor() ;  

-			break;

- 

-    case 287 : if (DEBUG) { System.out.println("ForStatementNoShortIf ::= for LPAREN ForInitopt..."); }  //$NON-NLS-1$

-		    consumeStatementFor() ;  

-			break;

- 

-    case 288 : if (DEBUG) { System.out.println("ForInit ::= StatementExpressionList"); }  //$NON-NLS-1$

-		    consumeForInit() ;  

-			break;

- 

-    case 292 : if (DEBUG) { System.out.println("StatementExpressionList ::= StatementExpressionList..."); }  //$NON-NLS-1$

-		    consumeStatementExpressionList() ;  

-			break;

- 

-    case 293 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression SEMICOLON"); }  //$NON-NLS-1$

-		    consumeSimpleAssertStatement() ;  

-			break;

- 

-    case 294 : if (DEBUG) { System.out.println("AssertStatement ::= assert Expression COLON Expression"); }  //$NON-NLS-1$

-		    consumeAssertStatement() ;  

-			break;

- 

-    case 295 : if (DEBUG) { System.out.println("BreakStatement ::= break SEMICOLON"); }  //$NON-NLS-1$

-		    consumeStatementBreak() ;  

-			break;

- 

-    case 296 : if (DEBUG) { System.out.println("BreakStatement ::= break Identifier SEMICOLON"); }  //$NON-NLS-1$

-		    consumeStatementBreakWithLabel() ;  

-			break;

- 

-    case 297 : if (DEBUG) { System.out.println("ContinueStatement ::= continue SEMICOLON"); }  //$NON-NLS-1$

-		    consumeStatementContinue() ;  

-			break;

- 

-    case 298 : if (DEBUG) { System.out.println("ContinueStatement ::= continue Identifier SEMICOLON"); }  //$NON-NLS-1$

-		    consumeStatementContinueWithLabel() ;  

-			break;

- 

-    case 299 : if (DEBUG) { System.out.println("ReturnStatement ::= return Expressionopt SEMICOLON"); }  //$NON-NLS-1$

-		    consumeStatementReturn() ;  

-			break;

- 

-    case 300 : if (DEBUG) { System.out.println("ThrowStatement ::= throw Expression SEMICOLON"); }  //$NON-NLS-1$

-		    consumeStatementThrow();  

-			break;

- 

-    case 301 : if (DEBUG) { System.out.println("SynchronizedStatement ::= OnlySynchronized LPAREN..."); }  //$NON-NLS-1$

-		    consumeStatementSynchronized();  

-			break;

- 

-    case 302 : if (DEBUG) { System.out.println("OnlySynchronized ::= synchronized"); }  //$NON-NLS-1$

-		    consumeOnlySynchronized();  

-			break;

- 

-    case 303 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catches"); }  //$NON-NLS-1$

-		    consumeStatementTry(false);  

-			break;

- 

-    case 304 : if (DEBUG) { System.out.println("TryStatement ::= try TryBlock Catchesopt Finally"); }  //$NON-NLS-1$

-		    consumeStatementTry(true);  

-			break;

- 

-    case 306 : if (DEBUG) { System.out.println("ExitTryBlock ::="); }  //$NON-NLS-1$

-		    consumeExitTryBlock();  

-			break;

- 

-    case 308 : if (DEBUG) { System.out.println("Catches ::= Catches CatchClause"); }  //$NON-NLS-1$

-		    consumeCatches();  

-			break;

- 

-    case 309 : if (DEBUG) { System.out.println("CatchClause ::= catch LPAREN FormalParameter RPAREN..."); }  //$NON-NLS-1$

-		    consumeStatementCatch() ;  

-			break;

- 

-    case 311 : if (DEBUG) { System.out.println("PushLPAREN ::= LPAREN"); }  //$NON-NLS-1$

-		    consumeLeftParen();  

-			break;

- 

-    case 312 : if (DEBUG) { System.out.println("PushRPAREN ::= RPAREN"); }  //$NON-NLS-1$

-		    consumeRightParen();  

-			break;

- 

-    case 317 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= this"); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArrayThis();  

-			break;

- 

-    case 318 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Expression_NotName..."); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArray();  

-			break;

- 

-    case 319 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PushLPAREN Name PushRPAREN"); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArrayWithName();  

-			break;

- 

-    case 322 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT this"); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArrayNameThis();  

-			break;

- 

-    case 323 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT super"); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArrayNameSuper();  

-			break;

- 

-    case 324 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name DOT class"); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArrayName();  

-			break;

- 

-    case 325 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= Name Dims DOT class"); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArrayArrayType();  

-			break;

- 

-    case 326 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType Dims DOT class"); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArrayPrimitiveArrayType();  

-			break;

- 

-    case 327 : if (DEBUG) { System.out.println("PrimaryNoNewArray ::= PrimitiveType DOT class"); }  //$NON-NLS-1$

-		    consumePrimaryNoNewArrayPrimitiveType();  

-			break;

- 

-    case 330 : if (DEBUG) { System.out.println("AllocationHeader ::= new ClassType LPAREN..."); }  //$NON-NLS-1$

-		    consumeAllocationHeader();  

-			break;

- 

-    case 331 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new..."); }  //$NON-NLS-1$

-		    consumeClassInstanceCreationExpressionWithTypeArguments();  

-			break;

- 

-    case 332 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= new ClassType LPAREN"); }  //$NON-NLS-1$

-		    consumeClassInstanceCreationExpression();  

-			break;

- 

-    case 333 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); }  //$NON-NLS-1$

-		    consumeClassInstanceCreationExpressionQualifiedWithTypeArguments() ;  

-			break;

- 

-    case 334 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::= Primary DOT new..."); }  //$NON-NLS-1$

-		    consumeClassInstanceCreationExpressionQualified() ;  

-			break;

- 

-    case 335 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); }  //$NON-NLS-1$

-		    consumeClassInstanceCreationExpressionQualified() ;  

-			break;

- 

-    case 336 : if (DEBUG) { System.out.println("ClassInstanceCreationExpression ::=..."); }  //$NON-NLS-1$

-		    consumeClassInstanceCreationExpressionQualifiedWithTypeArguments() ;  

-			break;

- 

-    case 337 : if (DEBUG) { System.out.println("ClassInstanceCreationExpressionName ::= Name DOT"); }  //$NON-NLS-1$

-		    consumeClassInstanceCreationExpressionName() ;  

-			break;

- 

-    case 338 : if (DEBUG) { System.out.println("ClassBodyopt ::="); }  //$NON-NLS-1$

-		    consumeClassBodyopt();  

-			break;

- 

-    case 340 : if (DEBUG) { System.out.println("ClassBodySimpleNameopt ::="); }  //$NON-NLS-1$

-		    consumeClassBodyopt();  

-			break;

- 

-    case 342 : if (DEBUG) { System.out.println("EnterAnonymousClassBodySimpleName ::="); }  //$NON-NLS-1$

-		    consumeEnterAnonymousClassBodySimpleName();  

-			break;

- 

-    case 343 : if (DEBUG) { System.out.println("EnterAnonymousClassBody ::="); }  //$NON-NLS-1$

-		    consumeEnterAnonymousClassBody();  

-			break;

- 

-    case 345 : if (DEBUG) { System.out.println("ArgumentList ::= ArgumentList COMMA Expression"); }  //$NON-NLS-1$

-		    consumeArgumentList();  

-			break;

- 

-    case 346 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new PrimitiveType..."); }  //$NON-NLS-1$

-		    consumeArrayCreationHeader();  

-			break;

- 

-    case 347 : if (DEBUG) { System.out.println("ArrayCreationHeader ::= new ClassOrInterfaceType..."); }  //$NON-NLS-1$

-		    consumeArrayCreationHeader();  

-			break;

- 

-    case 348 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); }  //$NON-NLS-1$

-		    consumeArrayCreationExpressionWithoutInitializer();  

-			break;

- 

-    case 349 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new PrimitiveType"); }  //$NON-NLS-1$

-		    consumeArrayCreationExpressionWithInitializer();  

-			break;

- 

-    case 350 : if (DEBUG) { System.out.println("ArrayCreationWithoutArrayInitializer ::= new..."); }  //$NON-NLS-1$

-		    consumeArrayCreationExpressionWithoutInitializer();  

-			break;

- 

-    case 351 : if (DEBUG) { System.out.println("ArrayCreationWithArrayInitializer ::= new..."); }  //$NON-NLS-1$

-		    consumeArrayCreationExpressionWithInitializer();  

-			break;

- 

-    case 353 : if (DEBUG) { System.out.println("DimWithOrWithOutExprs ::= DimWithOrWithOutExprs..."); }  //$NON-NLS-1$

-		    consumeDimWithOrWithOutExprs();  

-			break;

- 

-     case 355 : if (DEBUG) { System.out.println("DimWithOrWithOutExpr ::= LBRACKET RBRACKET"); }  //$NON-NLS-1$

-		    consumeDimWithOrWithOutExpr();  

-			break;

- 

-     case 356 : if (DEBUG) { System.out.println("Dims ::= DimsLoop"); }  //$NON-NLS-1$

-		    consumeDims();  

-			break;

- 

-     case 359 : if (DEBUG) { System.out.println("OneDimLoop ::= LBRACKET RBRACKET"); }  //$NON-NLS-1$

-		    consumeOneDimLoop();  

-			break;

- 

-    case 360 : if (DEBUG) { System.out.println("FieldAccess ::= Primary DOT Identifier"); }  //$NON-NLS-1$

-		    consumeFieldAccess(false);  

-			break;

- 

-    case 361 : if (DEBUG) { System.out.println("FieldAccess ::= super DOT Identifier"); }  //$NON-NLS-1$

-		    consumeFieldAccess(true);  

-			break;

- 

-    case 362 : if (DEBUG) { System.out.println("MethodInvocation ::= Name LPAREN ArgumentListopt RPAREN"); }  //$NON-NLS-1$

-		    consumeMethodInvocationName();  

-			break;

- 

-    case 363 : if (DEBUG) { System.out.println("MethodInvocation ::= Name DOT OnlyTypeArguments..."); }  //$NON-NLS-1$

-		    consumeMethodInvocationNameWithTypeArguments();  

-			break;

- 

-    case 364 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT OnlyTypeArguments..."); }  //$NON-NLS-1$

-		    consumeMethodInvocationPrimaryWithTypeArguments();  

-			break;

- 

-    case 365 : if (DEBUG) { System.out.println("MethodInvocation ::= Primary DOT Identifier LPAREN..."); }  //$NON-NLS-1$

-		    consumeMethodInvocationPrimary();  

-			break;

- 

-    case 366 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT OnlyTypeArguments..."); }  //$NON-NLS-1$

-		    consumeMethodInvocationSuperWithTypeArguments();  

-			break;

- 

-    case 367 : if (DEBUG) { System.out.println("MethodInvocation ::= super DOT Identifier LPAREN..."); }  //$NON-NLS-1$

-		    consumeMethodInvocationSuper();  

-			break;

- 

-    case 368 : if (DEBUG) { System.out.println("ArrayAccess ::= Name LBRACKET Expression RBRACKET"); }  //$NON-NLS-1$

-		    consumeArrayAccess(true);  

-			break;

- 

-    case 369 : if (DEBUG) { System.out.println("ArrayAccess ::= PrimaryNoNewArray LBRACKET Expression..."); }  //$NON-NLS-1$

-		    consumeArrayAccess(false);  

-			break;

- 

-    case 370 : if (DEBUG) { System.out.println("ArrayAccess ::= ArrayCreationWithArrayInitializer..."); }  //$NON-NLS-1$

-		    consumeArrayAccess(false);  

-			break;

- 

-    case 372 : if (DEBUG) { System.out.println("PostfixExpression ::= Name"); }  //$NON-NLS-1$

-		    consumePostfixExpression();  

-			break;

- 

-    case 375 : if (DEBUG) { System.out.println("PostIncrementExpression ::= PostfixExpression PLUS_PLUS"); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.PLUS,true);  

-			break;

- 

-    case 376 : if (DEBUG) { System.out.println("PostDecrementExpression ::= PostfixExpression..."); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.MINUS,true);  

-			break;

- 

-    case 377 : if (DEBUG) { System.out.println("PushPosition ::="); }  //$NON-NLS-1$

-		    consumePushPosition();  

-			break;

- 

-    case 380 : if (DEBUG) { System.out.println("UnaryExpression ::= PLUS PushPosition UnaryExpression"); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.PLUS);  

-			break;

- 

-    case 381 : if (DEBUG) { System.out.println("UnaryExpression ::= MINUS PushPosition UnaryExpression"); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.MINUS);  

-			break;

- 

-    case 383 : if (DEBUG) { System.out.println("PreIncrementExpression ::= PLUS_PLUS PushPosition..."); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.PLUS,false);  

-			break;

- 

-    case 384 : if (DEBUG) { System.out.println("PreDecrementExpression ::= MINUS_MINUS PushPosition..."); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.MINUS,false);  

-			break;

- 

-    case 386 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= TWIDDLE PushPosition..."); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.TWIDDLE);  

-			break;

- 

-    case 387 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus ::= NOT PushPosition..."); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.NOT);  

-			break;

- 

-    case 389 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN PrimitiveType Dimsopt..."); }  //$NON-NLS-1$

-		    consumeCastExpressionWithPrimitiveType();  

-			break;

- 

-    case 390 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); }  //$NON-NLS-1$

-		    consumeCastExpressionWithGenericsArray();  

-			break;

- 

-    case 391 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name..."); }  //$NON-NLS-1$

-		    consumeCastExpressionWithQualifiedGenericsArray();  

-			break;

- 

-    case 392 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name PushRPAREN..."); }  //$NON-NLS-1$

-		    consumeCastExpressionLL1();  

-			break;

- 

-    case 393 : if (DEBUG) { System.out.println("CastExpression ::= PushLPAREN Name Dims PushRPAREN..."); }  //$NON-NLS-1$

-		    consumeCastExpressionWithNameArray();  

-			break;

- 

-    case 394 : if (DEBUG) { System.out.println("OnlyTypeArgumentsForCastExpression ::= OnlyTypeArguments"); }  //$NON-NLS-1$

-		    consumeOnlyTypeArgumentsForCastExpression();  

-			break;

- 

-    case 395 : if (DEBUG) { System.out.println("InsideCastExpression ::="); }  //$NON-NLS-1$

-		    consumeInsideCastExpression();  

-			break;

- 

-    case 396 : if (DEBUG) { System.out.println("InsideCastExpressionLL1 ::="); }  //$NON-NLS-1$

-		    consumeInsideCastExpressionLL1();  

-			break;

- 

-    case 397 : if (DEBUG) { System.out.println("InsideCastExpressionWithQualifiedGenerics ::="); }  //$NON-NLS-1$

-		    consumeInsideCastExpressionWithQualifiedGenerics();  

-			break;

- 

-    case 399 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.MULTIPLY);  

-			break;

- 

-    case 400 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.DIVIDE);  

-			break;

- 

-    case 401 : if (DEBUG) { System.out.println("MultiplicativeExpression ::= MultiplicativeExpression..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.REMAINDER);  

-			break;

- 

-    case 403 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression PLUS..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.PLUS);  

-			break;

- 

-    case 404 : if (DEBUG) { System.out.println("AdditiveExpression ::= AdditiveExpression MINUS..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.MINUS);  

-			break;

- 

-    case 406 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression LEFT_SHIFT..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.LEFT_SHIFT);  

-			break;

- 

-    case 407 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression RIGHT_SHIFT..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.RIGHT_SHIFT);  

-			break;

- 

-    case 408 : if (DEBUG) { System.out.println("ShiftExpression ::= ShiftExpression UNSIGNED_RIGHT_SHIFT"); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.UNSIGNED_RIGHT_SHIFT);  

-			break;

- 

-    case 410 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.LESS);  

-			break;

- 

-    case 411 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression GREATER..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.GREATER);  

-			break;

- 

-    case 412 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression LESS_EQUAL"); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.LESS_EQUAL);  

-			break;

- 

-    case 413 : if (DEBUG) { System.out.println("RelationalExpression ::= RelationalExpression..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.GREATER_EQUAL);  

-			break;

- 

-    case 415 : if (DEBUG) { System.out.println("InstanceofExpression ::= InstanceofExpression instanceof"); }  //$NON-NLS-1$

-		    consumeInstanceOfExpression(OperatorIds.INSTANCEOF);  

-			break;

- 

-    case 417 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression EQUAL_EQUAL..."); }  //$NON-NLS-1$

-		    consumeEqualityExpression(OperatorIds.EQUAL_EQUAL);  

-			break;

- 

-    case 418 : if (DEBUG) { System.out.println("EqualityExpression ::= EqualityExpression NOT_EQUAL..."); }  //$NON-NLS-1$

-		    consumeEqualityExpression(OperatorIds.NOT_EQUAL);  

-			break;

- 

-    case 420 : if (DEBUG) { System.out.println("AndExpression ::= AndExpression AND EqualityExpression"); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.AND);  

-			break;

- 

-    case 422 : if (DEBUG) { System.out.println("ExclusiveOrExpression ::= ExclusiveOrExpression XOR..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.XOR);  

-			break;

- 

-    case 424 : if (DEBUG) { System.out.println("InclusiveOrExpression ::= InclusiveOrExpression OR..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.OR);  

-			break;

- 

-    case 426 : if (DEBUG) { System.out.println("ConditionalAndExpression ::= ConditionalAndExpression..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.AND_AND);  

-			break;

- 

-    case 428 : if (DEBUG) { System.out.println("ConditionalOrExpression ::= ConditionalOrExpression..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.OR_OR);  

-			break;

- 

-    case 430 : if (DEBUG) { System.out.println("ConditionalExpression ::= ConditionalOrExpression..."); }  //$NON-NLS-1$

-		    consumeConditionalExpression(OperatorIds.QUESTIONCOLON) ;  

-			break;

- 

-    case 433 : if (DEBUG) { System.out.println("Assignment ::= PostfixExpression AssignmentOperator..."); }  //$NON-NLS-1$

-		    consumeAssignment();  

-			break;

- 

-    case 435 : if (DEBUG) { System.out.println("Assignment ::= InvalidArrayInitializerAssignement"); }  //$NON-NLS-1$

-		    ignoreExpressionAssignment(); 

-			break;

- 

-    case 436 : if (DEBUG) { System.out.println("AssignmentOperator ::= EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(EQUAL);  

-			break;

- 

-    case 437 : if (DEBUG) { System.out.println("AssignmentOperator ::= MULTIPLY_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(MULTIPLY);  

-			break;

- 

-    case 438 : if (DEBUG) { System.out.println("AssignmentOperator ::= DIVIDE_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(DIVIDE);  

-			break;

- 

-    case 439 : if (DEBUG) { System.out.println("AssignmentOperator ::= REMAINDER_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(REMAINDER);  

-			break;

- 

-    case 440 : if (DEBUG) { System.out.println("AssignmentOperator ::= PLUS_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(PLUS);  

-			break;

- 

-    case 441 : if (DEBUG) { System.out.println("AssignmentOperator ::= MINUS_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(MINUS);  

-			break;

- 

-    case 442 : if (DEBUG) { System.out.println("AssignmentOperator ::= LEFT_SHIFT_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(LEFT_SHIFT);  

-			break;

- 

-    case 443 : if (DEBUG) { System.out.println("AssignmentOperator ::= RIGHT_SHIFT_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(RIGHT_SHIFT);  

-			break;

- 

-    case 444 : if (DEBUG) { System.out.println("AssignmentOperator ::= UNSIGNED_RIGHT_SHIFT_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(UNSIGNED_RIGHT_SHIFT);  

-			break;

- 

-    case 445 : if (DEBUG) { System.out.println("AssignmentOperator ::= AND_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(AND);  

-			break;

- 

-    case 446 : if (DEBUG) { System.out.println("AssignmentOperator ::= XOR_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(XOR);  

-			break;

- 

-    case 447 : if (DEBUG) { System.out.println("AssignmentOperator ::= OR_EQUAL"); }  //$NON-NLS-1$

-		    consumeAssignmentOperator(OR);  

-			break;

- 

-    case 451 : if (DEBUG) { System.out.println("Expressionopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyExpression();  

-			break;

- 

-    case 456 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyClassBodyDeclarationsopt();  

-			break;

- 

-    case 457 : if (DEBUG) { System.out.println("ClassBodyDeclarationsopt ::= NestedType..."); }  //$NON-NLS-1$

-		    consumeClassBodyDeclarationsopt();  

-			break;

- 

-     case 458 : if (DEBUG) { System.out.println("Modifiersopt ::="); }  //$NON-NLS-1$

-		    consumeDefaultModifiers();  

-			break;

- 

-    case 459 : if (DEBUG) { System.out.println("Modifiersopt ::= Modifiers"); }  //$NON-NLS-1$

-		    consumeModifiers();  

-			break;

- 

-    case 460 : if (DEBUG) { System.out.println("BlockStatementsopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyBlockStatementsopt();  

-			break;

- 

-     case 462 : if (DEBUG) { System.out.println("Dimsopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyDimsopt();  

-			break;

- 

-     case 464 : if (DEBUG) { System.out.println("ArgumentListopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyArgumentListopt();  

-			break;

- 

-    case 468 : if (DEBUG) { System.out.println("FormalParameterListopt ::="); }  //$NON-NLS-1$

-		    consumeFormalParameterListopt();  

-			break;

- 

-     case 472 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyInterfaceMemberDeclarationsopt();  

-			break;

- 

-     case 473 : if (DEBUG) { System.out.println("InterfaceMemberDeclarationsopt ::= NestedType..."); }  //$NON-NLS-1$

-		    consumeInterfaceMemberDeclarationsopt();  

-			break;

- 

-    case 474 : if (DEBUG) { System.out.println("NestedType ::="); }  //$NON-NLS-1$

-		    consumeNestedType();  

-			break;

-

-     case 475 : if (DEBUG) { System.out.println("ForInitopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyForInitopt();  

-			break;

- 

-     case 477 : if (DEBUG) { System.out.println("ForUpdateopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyForUpdateopt();  

-			break;

- 

-     case 481 : if (DEBUG) { System.out.println("Catchesopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyCatchesopt();  

-			break;

- 

-     case 483 : if (DEBUG) { System.out.println("EnumDeclaration ::= EnumHeader ClassHeaderImplementsopt"); }  //$NON-NLS-1$

-		    consumeEnumDeclaration();  

-			break;

- 

-     case 484 : if (DEBUG) { System.out.println("EnumHeader ::= Modifiersopt enum Identifier"); }  //$NON-NLS-1$

-		    consumeEnumHeader();  

-			break;

- 

-     case 485 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumBodyDeclarationsopt RBRACE"); }  //$NON-NLS-1$

-		    consumeEnumBodyNoConstants();  

-			break;

- 

-     case 486 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE COMMA EnumBodyDeclarationsopt..."); }  //$NON-NLS-1$

-		    consumeEnumBodyNoConstants();  

-			break;

- 

-     case 487 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants COMMA..."); }  //$NON-NLS-1$

-		    consumeEnumBodyWithConstants();  

-			break;

- 

-     case 488 : if (DEBUG) { System.out.println("EnumBody ::= LBRACE EnumConstants..."); }  //$NON-NLS-1$

-		    consumeEnumBodyWithConstants();  

-			break;

- 

-    case 490 : if (DEBUG) { System.out.println("EnumConstants ::= EnumConstants COMMA EnumConstant"); }  //$NON-NLS-1$

-		    consumeEnumConstants();  

-			break;

- 

-    case 491 : if (DEBUG) { System.out.println("EnumConstantHeader ::= Identifier Argumentsopt"); }  //$NON-NLS-1$

-		    consumeEnumConstantHeader();  

-			break;

- 

-    case 492 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader ClassBody"); }  //$NON-NLS-1$

-		    consumeEnumConstantWithClassBody();  

-			break;

- 

-    case 493 : if (DEBUG) { System.out.println("EnumConstant ::= EnumConstantHeader"); }  //$NON-NLS-1$

-		    consumeEnumConstantNoClassBody();  

-			break;

- 

-    case 494 : if (DEBUG) { System.out.println("Arguments ::= LPAREN ArgumentListopt RPAREN"); }  //$NON-NLS-1$

-		    consumeArguments();  

-			break;

- 

-    case 495 : if (DEBUG) { System.out.println("Argumentsopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyArguments();  

-			break;

- 

-    case 497 : if (DEBUG) { System.out.println("EnumDeclarations ::= SEMICOLON ClassBodyDeclarationsopt"); }  //$NON-NLS-1$

-		    consumeEnumDeclarations();  

-			break;

- 

-    case 498 : if (DEBUG) { System.out.println("EnumBodyDeclarationsopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyEnumDeclarations();  

-			break;

- 

-    case 500 : if (DEBUG) { System.out.println("EnhancedForStatement ::= EnhancedForStatementHeader..."); }  //$NON-NLS-1$

-		    consumeEnhancedForStatement();  

-			break;

- 

-    case 501 : if (DEBUG) { System.out.println("EnhancedForStatementNoShortIf ::=..."); }  //$NON-NLS-1$

-		    consumeEnhancedForStatement();  

-			break;

- 

-    case 502 : if (DEBUG) { System.out.println("EnhancedForStatementHeader ::= for LPAREN Type..."); }  //$NON-NLS-1$

-		    consumeEnhancedForStatementHeader(false);  

-			break;

- 

-    case 503 : if (DEBUG) { System.out.println("EnhancedForStatementHeader ::= for LPAREN Modifiers Type"); }  //$NON-NLS-1$

-		    consumeEnhancedForStatementHeader(true);  

-			break;

- 

-    case 504 : if (DEBUG) { System.out.println("SingleStaticImportDeclaration ::=..."); }  //$NON-NLS-1$

-		    consumeImportDeclaration();  

-			break;

- 

-    case 505 : if (DEBUG) { System.out.println("SingleStaticImportDeclarationName ::= import static Name"); }  //$NON-NLS-1$

-		    consumeSingleStaticImportDeclarationName();  

-			break;

- 

-    case 506 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclaration ::=..."); }  //$NON-NLS-1$

-		    consumeImportDeclaration();  

-			break;

- 

-    case 507 : if (DEBUG) { System.out.println("StaticImportOnDemandDeclarationName ::= import static..."); }  //$NON-NLS-1$

-		    consumeStaticImportOnDemandDeclarationName();  

-			break;

- 

-    case 508 : if (DEBUG) { System.out.println("TypeArguments ::= LESS TypeArgumentList1"); }  //$NON-NLS-1$

-		    consumeTypeArguments();  

-			break;

- 

-    case 509 : if (DEBUG) { System.out.println("OnlyTypeArguments ::= LESS TypeArgumentList1"); }  //$NON-NLS-1$

-		    consumeOnlyTypeArguments();  

-			break;

- 

-    case 511 : if (DEBUG) { System.out.println("TypeArgumentList1 ::= TypeArgumentList COMMA..."); }  //$NON-NLS-1$

-		    consumeTypeArgumentList1();  

-			break;

- 

-    case 513 : if (DEBUG) { System.out.println("TypeArgumentList ::= TypeArgumentList COMMA TypeArgument"); }  //$NON-NLS-1$

-		    consumeTypeArgumentList();  

-			break;

- 

-    case 514 : if (DEBUG) { System.out.println("TypeArgument ::= ReferenceType"); }  //$NON-NLS-1$

-		    consumeTypeArgument();  

-			break;

- 

-    case 518 : if (DEBUG) { System.out.println("ReferenceType1 ::= ReferenceType GREATER"); }  //$NON-NLS-1$

-		    consumeReferenceType1();  

-			break;

- 

-    case 519 : if (DEBUG) { System.out.println("ReferenceType1 ::= ClassOrInterface LESS..."); }  //$NON-NLS-1$

-		    consumeTypeArgumentReferenceType1();  

-			break;

- 

-    case 521 : if (DEBUG) { System.out.println("TypeArgumentList2 ::= TypeArgumentList COMMA..."); }  //$NON-NLS-1$

-		    consumeTypeArgumentList2();  

-			break;

- 

-    case 524 : if (DEBUG) { System.out.println("ReferenceType2 ::= ReferenceType RIGHT_SHIFT"); }  //$NON-NLS-1$

-		    consumeReferenceType2();  

-			break;

- 

-    case 525 : if (DEBUG) { System.out.println("ReferenceType2 ::= ClassOrInterface LESS..."); }  //$NON-NLS-1$

-		    consumeTypeArgumentReferenceType2();  

-			break;

- 

-    case 527 : if (DEBUG) { System.out.println("TypeArgumentList3 ::= TypeArgumentList COMMA..."); }  //$NON-NLS-1$

-		    consumeTypeArgumentList3();  

-			break;

- 

-    case 530 : if (DEBUG) { System.out.println("ReferenceType3 ::= ReferenceType UNSIGNED_RIGHT_SHIFT"); }  //$NON-NLS-1$

-		    consumeReferenceType3();  

-			break;

- 

-    case 531 : if (DEBUG) { System.out.println("Wildcard ::= QUESTION"); }  //$NON-NLS-1$

-		    consumeWildcard();  

-			break;

- 

-    case 532 : if (DEBUG) { System.out.println("Wildcard ::= QUESTION WildcardBounds"); }  //$NON-NLS-1$

-		    consumeWildcardWithBounds();  

-			break;

- 

-    case 533 : if (DEBUG) { System.out.println("WildcardBounds ::= extends ReferenceType"); }  //$NON-NLS-1$

-		    consumeWildcardBoundsExtends();  

-			break;

- 

-    case 534 : if (DEBUG) { System.out.println("WildcardBounds ::= super ReferenceType"); }  //$NON-NLS-1$

-		    consumeWildcardBoundsSuper();  

-			break;

- 

-    case 535 : if (DEBUG) { System.out.println("Wildcard1 ::= QUESTION GREATER"); }  //$NON-NLS-1$

-		    consumeWildcard1();  

-			break;

- 

-    case 536 : if (DEBUG) { System.out.println("Wildcard1 ::= QUESTION WildcardBounds1"); }  //$NON-NLS-1$

-		    consumeWildcard1WithBounds();  

-			break;

- 

-    case 537 : if (DEBUG) { System.out.println("WildcardBounds1 ::= extends ReferenceType1"); }  //$NON-NLS-1$

-		    consumeWildcardBounds1Extends();  

-			break;

- 

-    case 538 : if (DEBUG) { System.out.println("WildcardBounds1 ::= super ReferenceType1"); }  //$NON-NLS-1$

-		    consumeWildcardBounds1Super();  

-			break;

- 

-    case 539 : if (DEBUG) { System.out.println("Wildcard2 ::= QUESTION RIGHT_SHIFT"); }  //$NON-NLS-1$

-		    consumeWildcard2();  

-			break;

- 

-    case 540 : if (DEBUG) { System.out.println("Wildcard2 ::= QUESTION WildcardBounds2"); }  //$NON-NLS-1$

-		    consumeWildcard2WithBounds();  

-			break;

- 

-    case 541 : if (DEBUG) { System.out.println("WildcardBounds2 ::= extends ReferenceType2"); }  //$NON-NLS-1$

-		    consumeWildcardBounds2Extends();  

-			break;

- 

-    case 542 : if (DEBUG) { System.out.println("WildcardBounds2 ::= super ReferenceType2"); }  //$NON-NLS-1$

-		    consumeWildcardBounds2Super();  

-			break;

- 

-    case 543 : if (DEBUG) { System.out.println("Wildcard3 ::= QUESTION UNSIGNED_RIGHT_SHIFT"); }  //$NON-NLS-1$

-		    consumeWildcard3();  

-			break;

- 

-    case 544 : if (DEBUG) { System.out.println("Wildcard3 ::= QUESTION WildcardBounds3"); }  //$NON-NLS-1$

-		    consumeWildcard3WithBounds();  

-			break;

- 

-    case 545 : if (DEBUG) { System.out.println("WildcardBounds3 ::= extends ReferenceType3"); }  //$NON-NLS-1$

-		    consumeWildcardBounds3Extends();  

-			break;

- 

-    case 546 : if (DEBUG) { System.out.println("WildcardBounds3 ::= super ReferenceType3"); }  //$NON-NLS-1$

-		    consumeWildcardBounds3Super();  

-			break;

- 

-    case 547 : if (DEBUG) { System.out.println("TypeParameterHeader ::= Identifier"); }  //$NON-NLS-1$

-		    consumeTypeParameterHeader();  

-			break;

- 

-    case 548 : if (DEBUG) { System.out.println("TypeParameters ::= LESS TypeParameterList1"); }  //$NON-NLS-1$

-		    consumeTypeParameters();  

-			break;

- 

-    case 550 : if (DEBUG) { System.out.println("TypeParameterList ::= TypeParameterList COMMA..."); }  //$NON-NLS-1$

-		    consumeTypeParameterList();  

-			break;

- 

-    case 552 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); }  //$NON-NLS-1$

-		    consumeTypeParameterWithExtends();  

-			break;

- 

-    case 553 : if (DEBUG) { System.out.println("TypeParameter ::= TypeParameterHeader extends..."); }  //$NON-NLS-1$

-		    consumeTypeParameterWithExtendsAndBounds();  

-			break;

- 

-    case 555 : if (DEBUG) { System.out.println("AdditionalBoundList ::= AdditionalBoundList..."); }  //$NON-NLS-1$

-		    consumeAdditionalBoundList();  

-			break;

- 

-    case 556 : if (DEBUG) { System.out.println("AdditionalBound ::= AND ReferenceType"); }  //$NON-NLS-1$

-		    consumeAdditionalBound();  

-			break;

- 

-    case 558 : if (DEBUG) { System.out.println("TypeParameterList1 ::= TypeParameterList COMMA..."); }  //$NON-NLS-1$

-		    consumeTypeParameterList1();  

-			break;

- 

-    case 559 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader GREATER"); }  //$NON-NLS-1$

-		    consumeTypeParameter1();  

-			break;

- 

-    case 560 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); }  //$NON-NLS-1$

-		    consumeTypeParameter1WithExtends();  

-			break;

- 

-    case 561 : if (DEBUG) { System.out.println("TypeParameter1 ::= TypeParameterHeader extends..."); }  //$NON-NLS-1$

-		    consumeTypeParameter1WithExtendsAndBounds();  

-			break;

- 

-    case 563 : if (DEBUG) { System.out.println("AdditionalBoundList1 ::= AdditionalBoundList..."); }  //$NON-NLS-1$

-		    consumeAdditionalBoundList1();  

-			break;

- 

-    case 564 : if (DEBUG) { System.out.println("AdditionalBound1 ::= AND ReferenceType1"); }  //$NON-NLS-1$

-		    consumeAdditionalBound1();  

-			break;

- 

-    case 570 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= PLUS PushPosition..."); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.PLUS);  

-			break;

- 

-    case 571 : if (DEBUG) { System.out.println("UnaryExpression_NotName ::= MINUS PushPosition..."); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.MINUS);  

-			break;

- 

-    case 574 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= TWIDDLE..."); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.TWIDDLE);  

-			break;

- 

-    case 575 : if (DEBUG) { System.out.println("UnaryExpressionNotPlusMinus_NotName ::= NOT PushPosition"); }  //$NON-NLS-1$

-		    consumeUnaryExpression(OperatorIds.NOT);  

-			break;

- 

-    case 578 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.MULTIPLY);  

-			break;

- 

-    case 579 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name MULTIPLY..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.MULTIPLY);  

-			break;

- 

-    case 580 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.DIVIDE);  

-			break;

- 

-    case 581 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name DIVIDE..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.DIVIDE);  

-			break;

- 

-    case 582 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.REMAINDER);  

-			break;

- 

-    case 583 : if (DEBUG) { System.out.println("MultiplicativeExpression_NotName ::= Name REMAINDER..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.REMAINDER);  

-			break;

- 

-    case 585 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.PLUS);  

-			break;

- 

-    case 586 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name PLUS..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.PLUS);  

-			break;

- 

-    case 587 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.MINUS);  

-			break;

- 

-    case 588 : if (DEBUG) { System.out.println("AdditiveExpression_NotName ::= Name MINUS..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.MINUS);  

-			break;

- 

-    case 590 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.LEFT_SHIFT);  

-			break;

- 

-    case 591 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name LEFT_SHIFT..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.LEFT_SHIFT);  

-			break;

- 

-    case 592 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.RIGHT_SHIFT);  

-			break;

- 

-    case 593 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name RIGHT_SHIFT..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.RIGHT_SHIFT);  

-			break;

- 

-    case 594 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= ShiftExpression_NotName..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.UNSIGNED_RIGHT_SHIFT);  

-			break;

- 

-    case 595 : if (DEBUG) { System.out.println("ShiftExpression_NotName ::= Name UNSIGNED_RIGHT_SHIFT..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.UNSIGNED_RIGHT_SHIFT);  

-			break;

- 

-    case 597 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.LESS);  

-			break;

- 

-    case 598 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.LESS);  

-			break;

- 

-    case 599 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= ShiftExpression_NotName"); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.GREATER);  

-			break;

- 

-    case 600 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.GREATER);  

-			break;

- 

-    case 601 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.LESS_EQUAL);  

-			break;

- 

-    case 602 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name LESS_EQUAL..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.LESS_EQUAL);  

-			break;

- 

-    case 603 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.GREATER_EQUAL);  

-			break;

- 

-    case 604 : if (DEBUG) { System.out.println("RelationalExpression_NotName ::= Name GREATER_EQUAL..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.GREATER_EQUAL);  

-			break;

- 

-    case 606 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::= Name instanceof..."); }  //$NON-NLS-1$

-		    consumeInstanceOfExpressionWithName(OperatorIds.INSTANCEOF);  

-			break;

- 

-    case 607 : if (DEBUG) { System.out.println("InstanceofExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeInstanceOfExpression(OperatorIds.INSTANCEOF);  

-			break;

- 

-    case 609 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeEqualityExpression(OperatorIds.EQUAL_EQUAL);  

-			break;

- 

-    case 610 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name EQUAL_EQUAL..."); }  //$NON-NLS-1$

-		    consumeEqualityExpressionWithName(OperatorIds.EQUAL_EQUAL);  

-			break;

- 

-    case 611 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeEqualityExpression(OperatorIds.NOT_EQUAL);  

-			break;

- 

-    case 612 : if (DEBUG) { System.out.println("EqualityExpression_NotName ::= Name NOT_EQUAL..."); }  //$NON-NLS-1$

-		    consumeEqualityExpressionWithName(OperatorIds.NOT_EQUAL);  

-			break;

- 

-    case 614 : if (DEBUG) { System.out.println("AndExpression_NotName ::= AndExpression_NotName AND..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.AND);  

-			break;

- 

-    case 615 : if (DEBUG) { System.out.println("AndExpression_NotName ::= Name AND EqualityExpression"); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.AND);  

-			break;

- 

-    case 617 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.XOR);  

-			break;

- 

-    case 618 : if (DEBUG) { System.out.println("ExclusiveOrExpression_NotName ::= Name XOR AndExpression"); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.XOR);  

-			break;

- 

-    case 620 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.OR);  

-			break;

- 

-    case 621 : if (DEBUG) { System.out.println("InclusiveOrExpression_NotName ::= Name OR..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.OR);  

-			break;

- 

-    case 623 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.AND_AND);  

-			break;

- 

-    case 624 : if (DEBUG) { System.out.println("ConditionalAndExpression_NotName ::= Name AND_AND..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.AND_AND);  

-			break;

- 

-    case 626 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeBinaryExpression(OperatorIds.OR_OR);  

-			break;

- 

-    case 627 : if (DEBUG) { System.out.println("ConditionalOrExpression_NotName ::= Name OR_OR..."); }  //$NON-NLS-1$

-		    consumeBinaryExpressionWithName(OperatorIds.OR_OR);  

-			break;

- 

-    case 629 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::=..."); }  //$NON-NLS-1$

-		    consumeConditionalExpression(OperatorIds.QUESTIONCOLON) ;  

-			break;

- 

-    case 630 : if (DEBUG) { System.out.println("ConditionalExpression_NotName ::= Name QUESTION..."); }  //$NON-NLS-1$

-		    consumeConditionalExpressionWithName(OperatorIds.QUESTIONCOLON) ;  

-			break;

- 

-    case 634 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeader ::= Modifiers AT..."); }  //$NON-NLS-1$

-		    consumeAnnotationTypeDeclarationHeader() ;  

-			break;

- 

-    case 635 : if (DEBUG) { System.out.println("AnnotationTypeDeclarationHeader ::= AT PushModifiers..."); }  //$NON-NLS-1$

-		    consumeAnnotationTypeDeclarationHeader() ;  

-			break;

- 

-    case 636 : if (DEBUG) { System.out.println("AnnotationTypeDeclaration ::=..."); }  //$NON-NLS-1$

-		    consumeAnnotationTypeDeclaration() ;  

-			break;

- 

-    case 638 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationsopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyAnnotationTypeMemberDeclarationsopt() ;  

-			break;

- 

-    case 641 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarations ::=..."); }  //$NON-NLS-1$

-		    consumeAnnotationTypeMemberDeclarations() ;  

-			break;

- 

-    case 642 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclarationHeader ::= Modifiersopt"); }  //$NON-NLS-1$

-		    consumeAnnotationTypeMemberDeclarationHeader() ;  

-			break;

- 

-    case 643 : if (DEBUG) { System.out.println("AnnotationTypeMemberHeaderExtendedDims ::= Dimsopt"); }  //$NON-NLS-1$

-		    consumeAnnotationTypeMemberHeaderExtendedDims() ;  

-			break;

- 

-    case 644 : if (DEBUG) { System.out.println("AnnotationTypeMemberDeclaration ::=..."); }  //$NON-NLS-1$

-		    consumeAnnotationTypeMemberDeclaration() ;  

-			break;

- 

-    case 647 : if (DEBUG) { System.out.println("DefaultValueopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyDefaultValue() ;  

-			break;

- 

-    case 653 : if (DEBUG) { System.out.println("NormalAnnotation ::= AT Name LPAREN MemberValuePairsopt"); }  //$NON-NLS-1$

-		    consumeNormalAnnotation() ;  

-			break;

- 

-    case 654 : if (DEBUG) { System.out.println("MemberValuePairsopt ::="); }  //$NON-NLS-1$

-		    consumeEmptyMemberValuePairsopt() ;  

-			break;

- 

-    case 657 : if (DEBUG) { System.out.println("MemberValuePairs ::= MemberValuePairs COMMA..."); }  //$NON-NLS-1$

-		    consumeMemberValuePairs() ;  

-			break;

- 

-    case 658 : if (DEBUG) { System.out.println("MemberValuePair ::= SimpleName EQUAL MemberValue"); }  //$NON-NLS-1$

-		    consumeMemberValuePair() ;  

-			break;

- 

-    case 660 : if (DEBUG) { System.out.println("MemberValue ::= Name"); }  //$NON-NLS-1$

-		    consumeMemberValueAsName() ;  

-			break;

- 

-    case 663 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$

-		    consumeMemberValueArrayInitializer() ;  

-			break;

- 

-    case 664 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$

-		    consumeMemberValueArrayInitializer() ;  

-			break;

- 

-    case 665 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$

-		    consumeEmptyMemberValueArrayInitializer() ;  

-			break;

- 

-    case 666 : if (DEBUG) { System.out.println("MemberValueArrayInitializer ::= LBRACE PushLeftBrace..."); }  //$NON-NLS-1$

-		    consumeEmptyMemberValueArrayInitializer() ;  

-			break;

- 

-    case 668 : if (DEBUG) { System.out.println("MemberValues ::= MemberValues COMMA MemberValue"); }  //$NON-NLS-1$

-		    consumeMemberValues() ;  

-			break;

- 

-    case 669 : if (DEBUG) { System.out.println("MarkerAnnotation ::= AT Name"); }  //$NON-NLS-1$

-		    consumeMarkerAnnotation() ;  

-			break;

- 

-    case 670 : if (DEBUG) { System.out.println("SingleMemberAnnotation ::= AT Name LPAREN MemberValue..."); }  //$NON-NLS-1$

-		    consumeSingleMemberAnnotation() ;  

-			break;

- 

-	}

-} 

-protected void consumeSimpleAssertStatement() {

-	// AssertStatement ::= 'assert' Expression ';'

-	this.expressionLengthPtr--;

-	pushOnAstStack(new AssertStatement(this.expressionStack[this.expressionPtr--], this.intStack[this.intPtr--]));	

-}

-protected void consumeSingleMemberAnnotation() {

-	// SingleMemberAnnotation ::= '@' Name '(' MemberValue ')'

-	SingleMemberAnnotation singleMemberAnnotation = null;

-	int length = this.identifierLengthStack[this.identifierLengthPtr--];

-	if (length == 1) {

-		singleMemberAnnotation = new SingleMemberAnnotation(this.identifierStack[this.identifierPtr], this.identifierPositionStack[this.identifierPtr--], this.intStack[this.intPtr--]);

-	} else {

-		char[][] tokens = new char[length][];

-		this.identifierPtr -= length;

-		long[] positions = new long[length];

-		System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-		System.arraycopy(

-			this.identifierPositionStack, 

-			this.identifierPtr + 1, 

-			positions, 

-			0, 

-			length);

-		singleMemberAnnotation = new SingleMemberAnnotation(tokens, positions, this.intStack[this.intPtr--]);			

-	}

-	singleMemberAnnotation.memberValue = this.expressionStack[this.expressionPtr--];

-	this.expressionLengthPtr--;

-	int sourceStart = singleMemberAnnotation.sourceStart;

-	if (this.modifiersSourceStart < 0) {

-		this.modifiersSourceStart = sourceStart;

-	} else if (this.modifiersSourceStart > sourceStart) {

-		this.modifiersSourceStart = sourceStart;

-	}

-	singleMemberAnnotation.declarationSourceEnd = this.rParenPos;

-	pushOnExpressionStack(singleMemberAnnotation);

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		this.problemReporter().invalidUsageOfAnnotation(singleMemberAnnotation);

-	}

-}

-protected void consumeSingleStaticImportDeclarationName() {

-	// SingleTypeImportDeclarationName ::= 'import' 'static' Name

-	/* push an ImportRef build from the last name 

-	stored in the identifier stack. */

-

-	ImportReference impt;

-	int length;

-	char[][] tokens = new char[length = this.identifierLengthStack[this.identifierLengthPtr--]][];

-	this.identifierPtr -= length;

-	long[] positions = new long[length];

-	System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-	System.arraycopy(this.identifierPositionStack, this.identifierPtr + 1, positions, 0, length);

-	pushOnAstStack(impt = new ImportReference(tokens, positions, false, AccStatic));

-

-	this.modifiers = AccDefault;

-	this.modifiersSourceStart = -1; // <-- see comment into modifiersFlag(int)

-	

-	if (this.currentToken == TokenNameSEMICOLON){

-		impt.declarationSourceEnd = this.scanner.currentPosition - 1;

-	} else {

-		impt.declarationSourceEnd = impt.sourceEnd;

-	}

-	impt.declarationEnd = impt.declarationSourceEnd;

-	//this.endPosition is just before the ;

-	impt.declarationSourceStart = this.intStack[this.intPtr--];

-

-	if(this.options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		impt.modifiers = AccDefault; // convert the static import reference to a non-static importe reference

-		this.problemReporter().invalidUsageOfStaticImports(impt);

-	}

-	

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = impt.declarationSourceEnd+1;

-		this.currentElement = this.currentElement.add(impt, 0);

-		this.lastIgnoredToken = -1;

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton		

-	}

-}

-protected void consumeSingleTypeImportDeclarationName() {

-	// SingleTypeImportDeclarationName ::= 'import' Name

-	/* push an ImportRef build from the last name 

-	stored in the identifier stack. */

-

-	ImportReference impt;

-	int length;

-	char[][] tokens = new char[length = this.identifierLengthStack[this.identifierLengthPtr--]][];

-	this.identifierPtr -= length;

-	long[] positions = new long[length];

-	System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-	System.arraycopy(this.identifierPositionStack, this.identifierPtr + 1, positions, 0, length);

-	pushOnAstStack(impt = new ImportReference(tokens, positions, false, AccDefault));

-

-	if (this.currentToken == TokenNameSEMICOLON){

-		impt.declarationSourceEnd = this.scanner.currentPosition - 1;

-	} else {

-		impt.declarationSourceEnd = impt.sourceEnd;

-	}

-	impt.declarationEnd = impt.declarationSourceEnd;

-	//this.endPosition is just before the ;

-	impt.declarationSourceStart = this.intStack[this.intPtr--];

-

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = impt.declarationSourceEnd+1;

-		this.currentElement = this.currentElement.add(impt, 0);

-		this.lastIgnoredToken = -1;

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton		

-	}

-}

-protected void consumeStatementBreak() {

-	// BreakStatement ::= 'break' ';'

-	// break pushs a position on this.intStack in case there is no label

-

-	pushOnAstStack(new BreakStatement(null, this.intStack[this.intPtr--], this.endPosition));

-}

-protected void consumeStatementBreakWithLabel() {

-	// BreakStatement ::= 'break' Identifier ';'

-	// break pushs a position on this.intStack in case there is no label

-

-	pushOnAstStack(

-		new BreakStatement(

-			this.identifierStack[this.identifierPtr--],

-			this.intStack[this.intPtr--],

-			this.endPosition)); 

-	this.identifierLengthPtr--;

-}

-protected void consumeStatementCatch() {

-	// CatchClause ::= 'catch' '(' FormalParameter ')'    Block

-

-	//catch are stored directly into the Try

-	//has they always comes two by two....

-	//we remove one entry from the astlengthPtr.

-	//The construction of the try statement must

-	//then fetch the catches using  2*i and 2*i + 1

-

-	this.astLengthPtr--;

-	this.listLength = 0; // reset formalParameter counter (incremented for catch variable)

-}

-protected void consumeStatementContinue() {

-	// ContinueStatement ::= 'continue' ';'

-	// continue pushs a position on this.intStack in case there is no label

-

-	pushOnAstStack(

-		new ContinueStatement(

-			null,

-			this.intStack[this.intPtr--],

-			this.endPosition));

-}

-protected void consumeStatementContinueWithLabel() {

-	// ContinueStatement ::= 'continue' Identifier ';'

-	// continue pushs a position on this.intStack in case there is no label

-

-	pushOnAstStack(

-		new ContinueStatement(

-			this.identifierStack[this.identifierPtr--], 

-			this.intStack[this.intPtr--], 

-			this.endPosition)); 

-	this.identifierLengthPtr--;

-}

-protected void consumeStatementDo() {

-	// DoStatement ::= 'do' Statement 'while' '(' Expression ')' ';'

-

-	//the 'while' pushes a value on this.intStack that we need to remove

-	this.intPtr--;

-

-	Statement statement = (Statement) this.astStack[this.astPtr];

-	this.expressionLengthPtr--;

-	this.astStack[this.astPtr] = 

-		new DoStatement(

-			this.expressionStack[this.expressionPtr--], 

-			statement, 

-			this.intStack[this.intPtr--], 

-			this.endPosition); 

-}

-protected void consumeStatementExpressionList() {

-	// StatementExpressionList ::= StatementExpressionList ',' StatementExpression

-	concatExpressionLists();

-}

-protected void consumeStatementFor() {

-	// ForStatement ::= 'for' '(' ForInitopt ';' Expressionopt ';' ForUpdateopt ')' Statement

-	// ForStatementNoShortIf ::= 'for' '(' ForInitopt ';' Expressionopt ';' ForUpdateopt ')' StatementNoShortIf

-

-	int length;

-	Expression cond = null;

-	Statement[] inits, updates;

-	boolean scope = true;

-

-	//statements

-	this.astLengthPtr--;

-	Statement statement = (Statement) this.astStack[this.astPtr--];

-

-	//updates are on the expresion stack

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) == 0) {

-		updates = null;

-	} else {

-		this.expressionPtr -= length;

-		System.arraycopy(

-			this.expressionStack, 

-			this.expressionPtr + 1, 

-			updates = new Statement[length], 

-			0, 

-			length); 

-	}

-

-	if (this.expressionLengthStack[this.expressionLengthPtr--] != 0)

-		cond = this.expressionStack[this.expressionPtr--];

-

-	//inits may be on two different stacks

-	if ((length = this.astLengthStack[this.astLengthPtr--]) == 0) {

-		inits = null;

-		scope = false;

-	} else {

-		if (length == -1) { //on this.expressionStack

-			scope = false;

-			length = this.expressionLengthStack[this.expressionLengthPtr--];

-			this.expressionPtr -= length;

-			System.arraycopy(

-				this.expressionStack, 

-				this.expressionPtr + 1, 

-				inits = new Statement[length], 

-				0, 

-				length); 

-		} else { //on this.astStack

-			this.astPtr -= length;

-			System.arraycopy(

-				this.astStack, 

-				this.astPtr + 1, 

-				inits = new Statement[length], 

-				0, 

-				length); 

-		}

-	}

-	pushOnAstStack(

-		new ForStatement(

-			inits, 

-			cond, 

-			updates, 

-			statement, 

-			scope, 

-			this.intStack[this.intPtr--], 

-			this.endStatementPosition)); 

-}

-protected void consumeStatementIfNoElse() {

-	// IfThenStatement ::=  'if' '(' Expression ')' Statement

-

-	//optimize the push/pop

-	this.expressionLengthPtr--;

-	Statement thenStatement = (Statement) this.astStack[this.astPtr];

-	this.astStack[this.astPtr] = 

-		new IfStatement(

-			this.expressionStack[this.expressionPtr--], 

-			thenStatement, 

-			this.intStack[this.intPtr--], 

-			this.endStatementPosition); 

-}

-protected void consumeStatementIfWithElse() {

-	// IfThenElseStatement ::=  'if' '(' Expression ')' StatementNoShortIf 'else' Statement

-	// IfThenElseStatementNoShortIf ::=  'if' '(' Expression ')' StatementNoShortIf 'else' StatementNoShortIf

-

-	this.expressionLengthPtr--;

-

-	// optimized {..., Then, Else } ==> {..., If }

-	this.astLengthPtr--;

-

-	//optimize the push/pop

-	this.astStack[--this.astPtr] = 

-		new IfStatement(

-			this.expressionStack[this.expressionPtr--], 

-			(Statement) this.astStack[this.astPtr], 

-			(Statement) this.astStack[this.astPtr + 1], 

-			this.intStack[this.intPtr--], 

-			this.endStatementPosition); 

-}

-protected void consumeStatementLabel() {

-	// LabeledStatement ::= 'Identifier' ':' Statement

-	// LabeledStatementNoShortIf ::= 'Identifier' ':' StatementNoShortIf

-

-	//optimize push/pop

-	Statement stmt = (Statement) this.astStack[this.astPtr];

-	this.astStack[this.astPtr] = 

-		new LabeledStatement(

-			this.identifierStack[this.identifierPtr], 

-			stmt, 

-			(int) (this.identifierPositionStack[this.identifierPtr--] >>> 32), 

-			this.endStatementPosition); 

-	this.identifierLengthPtr--;

-}

-protected void consumeStatementReturn() {

-	// ReturnStatement ::= 'return' Expressionopt ';'

-	// return pushs a position on this.intStack in case there is no expression

-

-	if (this.expressionLengthStack[this.expressionLengthPtr--] != 0) {

-		pushOnAstStack(

-			new ReturnStatement(

-				this.expressionStack[this.expressionPtr--], 

-				this.intStack[this.intPtr--], 

-				this.endPosition)

-		);

-	} else {

-		pushOnAstStack(new ReturnStatement(null, this.intStack[this.intPtr--], this.endPosition));

-	}

-}

-protected void consumeStatementSwitch() {

-	// SwitchStatement ::= 'switch' OpenBlock '(' Expression ')' SwitchBlock

-

-	//OpenBlock just makes the semantic action blockStart()

-	//the block is inlined but a scope need to be created

-	//if some declaration occurs.

-

-	int length;

-	SwitchStatement switchStatement = new SwitchStatement();

-	this.expressionLengthPtr--;

-	switchStatement.expression = this.expressionStack[this.expressionPtr--];

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		this.astPtr -= length;

-		System.arraycopy(

-			this.astStack, 

-			this.astPtr + 1, 

-			switchStatement.statements = new Statement[length], 

-			0, 

-			length); 

-	}

-	switchStatement.explicitDeclarations = this.realBlockStack[this.realBlockPtr--];

-	pushOnAstStack(switchStatement);

-	switchStatement.blockStart = this.intStack[this.intPtr--];

-	switchStatement.sourceStart = this.intStack[this.intPtr--];

-	switchStatement.sourceEnd = this.endStatementPosition;

-	if (length == 0 && !containsComment(switchStatement.blockStart, switchStatement.sourceEnd)) {

-		switchStatement.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-	}

-}

-protected void consumeStatementSynchronized() {

-	// SynchronizedStatement ::= OnlySynchronized '(' Expression ')' Block

-	//optimize the push/pop

-

-	if (this.astLengthStack[this.astLengthPtr] == 0) {

-		this.astLengthStack[this.astLengthPtr] = 1;

-		this.expressionLengthPtr--;

-		this.astStack[++this.astPtr] = 

-			new SynchronizedStatement(

-				this.expressionStack[this.expressionPtr--], 

-				null, 

-				this.intStack[this.intPtr--], 

-				this.endStatementPosition); 

-	} else {

-		this.expressionLengthPtr--;

-		this.astStack[this.astPtr] = 

-			new SynchronizedStatement(

-				this.expressionStack[this.expressionPtr--], 

-				(Block) this.astStack[this.astPtr], 

-				this.intStack[this.intPtr--], 

-				this.endStatementPosition); 

-	}

-	resetModifiers();

-}

-protected void consumeStatementThrow() {

-	// ThrowStatement ::= 'throw' Expression ';'

-	this.expressionLengthPtr--;

-	pushOnAstStack(new ThrowStatement(this.expressionStack[this.expressionPtr--], this.intStack[this.intPtr--]));

-}

-protected void consumeStatementTry(boolean withFinally) {

-	//TryStatement ::= 'try'  Block Catches

-	//TryStatement ::= 'try'  Block Catchesopt Finally

-

-	int length;

-	TryStatement tryStmt = new TryStatement();

-	//finally

-	if (withFinally) {

-		this.astLengthPtr--;

-		tryStmt.finallyBlock = (Block) this.astStack[this.astPtr--];

-	}

-	//catches are handle by two <argument-block> [see statementCatch]

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		if (length == 1) {

-			tryStmt.catchBlocks = new Block[] {(Block) this.astStack[this.astPtr--]};

-			tryStmt.catchArguments = new Argument[] {(Argument) this.astStack[this.astPtr--]};

-		} else {

-			Block[] bks = (tryStmt.catchBlocks = new Block[length]);

-			Argument[] args = (tryStmt.catchArguments = new Argument[length]);

-			while (length-- > 0) {

-				bks[length] = (Block) this.astStack[this.astPtr--];

-				args[length] = (Argument) this.astStack[this.astPtr--];

-			}

-		}

-	}

-	//try

-	this.astLengthPtr--;

-	tryStmt.tryBlock = (Block) this.astStack[this.astPtr--];

-

-	//positions

-	tryStmt.sourceEnd = this.endStatementPosition;

-	tryStmt.sourceStart = this.intStack[this.intPtr--];

-	pushOnAstStack(tryStmt);

-}

-protected void consumeStatementWhile() {

-	// WhileStatement ::= 'while' '(' Expression ')' Statement

-	// WhileStatementNoShortIf ::= 'while' '(' Expression ')' StatementNoShortIf

-

-	this.expressionLengthPtr--;

-	Statement statement = (Statement) this.astStack[this.astPtr];

-	this.astStack[this.astPtr] = 

-		new WhileStatement(

-			this.expressionStack[this.expressionPtr--], 

-			statement, 

-			this.intStack[this.intPtr--], 

-			this.endStatementPosition); 

-}

-protected void consumeStaticImportOnDemandDeclarationName() {

-	// TypeImportOnDemandDeclarationName ::= 'import' 'static' Name '.' '*'

-	/* push an ImportRef build from the last name 

-	stored in the identifier stack. */

-

-	ImportReference impt;

-	int length;

-	char[][] tokens = new char[length = this.identifierLengthStack[this.identifierLengthPtr--]][];

-	this.identifierPtr -= length;

-	long[] positions = new long[length];

-	System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-	System.arraycopy(this.identifierPositionStack, this.identifierPtr + 1, positions, 0, length);

-	pushOnAstStack(impt = new ImportReference(tokens, positions, true, AccStatic));

-

-	this.modifiers = AccDefault;

-	this.modifiersSourceStart = -1; // <-- see comment into modifiersFlag(int)

-	

-	if (this.currentToken == TokenNameSEMICOLON){

-		impt.declarationSourceEnd = this.scanner.currentPosition - 1;

-	} else {

-		impt.declarationSourceEnd = impt.sourceEnd;

-	}

-	impt.declarationEnd = impt.declarationSourceEnd;

-	//this.endPosition is just before the ;

-	impt.declarationSourceStart = this.intStack[this.intPtr--];

-

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		impt.modifiers = AccDefault; // convert the static import reference to a non-static importe reference

-		this.problemReporter().invalidUsageOfStaticImports(impt);

-	}

-	

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = impt.declarationSourceEnd+1;

-		this.currentElement = this.currentElement.add(impt, 0);

-		this.lastIgnoredToken = -1;

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton		

-	}	

-}

-protected void consumeStaticInitializer() {

-	// StaticInitializer ::=  StaticOnly Block

-	//push an Initializer

-	//optimize the push/pop

-	Block block = (Block) this.astStack[this.astPtr];

-	if (this.diet) block.bits &= ~ASTNode.UndocumentedEmptyBlockMASK; // clear bit set since was diet

-	Initializer initializer = new Initializer(block, AccStatic);

-	this.astStack[this.astPtr] = initializer;

-	initializer.sourceEnd = this.endStatementPosition;	

-	initializer.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition);

-	this.nestedMethod[this.nestedType] --;

-	initializer.declarationSourceStart = this.intStack[this.intPtr--];

-	initializer.bodyStart = this.intStack[this.intPtr--];

-	initializer.bodyEnd = this.endPosition;

-	// doc comment

-	initializer.javadoc = this.javadoc;

-	this.javadoc = null;

-	

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = initializer.declarationSourceEnd;

-		this.currentElement = this.currentElement.add(initializer, 0);

-		this.lastIgnoredToken = -1;

-	}

-}

-protected void consumeStaticOnly() {

-	// StaticOnly ::= 'static'

-	int savedModifiersSourceStart = this.modifiersSourceStart;

-	checkComment(); // might update declaration source start

-	if (this.modifiersSourceStart >= savedModifiersSourceStart) {

-		this.modifiersSourceStart = savedModifiersSourceStart;

-	}

-	pushOnIntStack(this.scanner.currentPosition);

-	pushOnIntStack(

-		this.modifiersSourceStart >= 0 ? this.modifiersSourceStart : this.scanner.startPosition);

-	jumpOverMethodBody();

-	this.nestedMethod[this.nestedType]++;

-	resetModifiers();

-

-	// recovery

-	if (this.currentElement != null){

-		this.recoveredStaticInitializerStart = this.intStack[this.intPtr]; // remember start position only for static initializers

-	}

-}

-protected void consumeSwitchBlock() {

-	// SwitchBlock ::= '{' SwitchBlockStatements SwitchLabels '}'

-	concatNodeLists();

-}

-protected void consumeSwitchBlockStatement() {

-	// SwitchBlockStatement ::= SwitchLabels BlockStatements

-	concatNodeLists();

-}

-protected void consumeSwitchBlockStatements() {

-	// SwitchBlockStatements ::= SwitchBlockStatements SwitchBlockStatement

-	concatNodeLists();

-}

-protected void consumeSwitchLabels() {

-	// SwitchLabels ::= SwitchLabels SwitchLabel

-	optimizedConcatNodeLists();

-}

-protected void consumeToken(int type) {

-	/* remember the last consumed value */

-	/* try to minimize the number of build values */

-	checkNonExternalizedStringLiteral();

-//	// clear the commentPtr of the scanner in case we read something different from a modifier

-//	switch(type) {

-//		case TokenNameabstract :

-//		case TokenNamestrictfp :

-//		case TokenNamefinal :

-//		case TokenNamenative :

-//		case TokenNameprivate :

-//		case TokenNameprotected :

-//		case TokenNamepublic :

-//		case TokenNametransient :

-//		case TokenNamevolatile :

-//		case TokenNamestatic :

-//		case TokenNamesynchronized :

-//			break;

-//		default:

-//			this.scanner.commentPtr = -1;

-//	}

-	//System.out.println(this.scanner.toStringAction(type));

-	switch (type) {

-		case TokenNameIdentifier :

-			pushIdentifier();

-			if (this.scanner.useAssertAsAnIndentifier  &&

-					this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-				long positions = this.identifierPositionStack[this.identifierPtr];

-				problemReporter().useAssertAsAnIdentifier((int) (positions >>> 32), (int) positions);

-			}

-			if (this.scanner.useEnumAsAnIndentifier  &&

-					this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-				long positions = this.identifierPositionStack[this.identifierPtr];

-				problemReporter().useEnumAsAnIdentifier((int) (positions >>> 32), (int) positions);

-			}

-			break;

-		case TokenNameinterface :

-			adjustInterfaceModifiers();

-			//'class' is pushing two int (positions) on the stack ==> 'interface' needs to do it too....

-			pushOnIntStack(this.scanner.currentPosition - 1);			

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-		case TokenNameabstract :

-			checkAndSetModifiers(AccAbstract);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNamestrictfp :

-			checkAndSetModifiers(AccStrictfp);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNamefinal :

-			checkAndSetModifiers(AccFinal);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNamenative :

-			checkAndSetModifiers(AccNative);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNameprivate :

-			checkAndSetModifiers(AccPrivate);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNameprotected :

-			checkAndSetModifiers(AccProtected);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNamepublic :

-			checkAndSetModifiers(AccPublic);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNametransient :

-			checkAndSetModifiers(AccTransient);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNamevolatile :

-			checkAndSetModifiers(AccVolatile);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNamestatic :

-			checkAndSetModifiers(AccStatic);

-			pushOnExpressionStackLengthStack(0);

-			break;

-		case TokenNamesynchronized :

-			this.synchronizedBlockSourceStart = this.scanner.startPosition;	

-			checkAndSetModifiers(AccSynchronized);

-			pushOnExpressionStackLengthStack(0);

-			break;

-			//==============================

-		case TokenNamevoid :

-			pushIdentifier(-T_void);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-			//push a default dimension while void is not part of the primitive

-			//declaration baseType and so takes the place of a type without getting into

-			//regular type parsing that generates a dimension on this.intStack

-		case TokenNameboolean :

-			pushIdentifier(-T_boolean);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);		

-			break;

-		case TokenNamebyte :

-			pushIdentifier(-T_byte);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);					

-			break;

-		case TokenNamechar :

-			pushIdentifier(-T_char);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);					

-			break;

-		case TokenNamedouble :

-			pushIdentifier(-T_double);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);					

-			break;

-		case TokenNamefloat :

-			pushIdentifier(-T_float);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);					

-			break;

-		case TokenNameint :

-			pushIdentifier(-T_int);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);					

-			break;

-		case TokenNamelong :

-			pushIdentifier(-T_long);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);					

-			break;

-		case TokenNameshort :

-			pushIdentifier(-T_short);

-			pushOnIntStack(this.scanner.currentPosition - 1);				

-			pushOnIntStack(this.scanner.startPosition);					

-			break;

-			//==============================

-		case TokenNameIntegerLiteral :

-			pushOnExpressionStack(

-				new IntLiteral(

-					this.scanner.getCurrentTokenSource(), 

-					this.scanner.startPosition, 

-					this.scanner.currentPosition - 1)); 

-			break;

-		case TokenNameLongLiteral :

-			pushOnExpressionStack(

-				new LongLiteral(

-					this.scanner.getCurrentTokenSource(), 

-					this.scanner.startPosition, 

-					this.scanner.currentPosition - 1)); 

-			break;

-		case TokenNameFloatingPointLiteral :

-			pushOnExpressionStack(

-				new FloatLiteral(

-					this.scanner.getCurrentTokenSource(), 

-					this.scanner.startPosition, 

-					this.scanner.currentPosition - 1)); 

-			break;

-		case TokenNameDoubleLiteral :

-			pushOnExpressionStack(

-				new DoubleLiteral(

-					this.scanner.getCurrentTokenSource(), 

-					this.scanner.startPosition, 

-					this.scanner.currentPosition - 1)); 

-			break;

-		case TokenNameCharacterLiteral :

-			pushOnExpressionStack(

-				new CharLiteral(

-					this.scanner.getCurrentTokenSource(), 

-					this.scanner.startPosition, 

-					this.scanner.currentPosition - 1)); 

-			break;

-		case TokenNameStringLiteral :

-			StringLiteral stringLiteral = new StringLiteral(

-					this.scanner.getCurrentTokenSourceString(), 

-					this.scanner.startPosition, 

-					this.scanner.currentPosition - 1); 

-			pushOnExpressionStack(stringLiteral); 

-			break;

-		case TokenNamefalse :

-			pushOnExpressionStack(

-				new FalseLiteral(this.scanner.startPosition, this.scanner.currentPosition - 1)); 

-			break;

-		case TokenNametrue :

-			pushOnExpressionStack(

-				new TrueLiteral(this.scanner.startPosition, this.scanner.currentPosition - 1)); 

-			break;

-		case TokenNamenull :

-			pushOnExpressionStack(

-				new NullLiteral(this.scanner.startPosition, this.scanner.currentPosition - 1)); 

-			break;

-			//============================

-		case TokenNamesuper :

-		case TokenNamethis :

-			this.endPosition = this.scanner.currentPosition - 1;

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-		case TokenNameassert :

-		case TokenNameimport :

-		case TokenNamepackage :

-		case TokenNamethrow :

-		case TokenNamedo :

-		case TokenNameif :

-		case TokenNamefor :

-		case TokenNameswitch :

-		case TokenNametry :

-		case TokenNamewhile :

-		case TokenNamebreak :

-		case TokenNamecontinue :

-		case TokenNamereturn :

-		case TokenNamecase :

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-		case TokenNamenew :

-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=40954

-			resetModifiers();

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-		case TokenNameclass :

-			pushOnIntStack(this.scanner.currentPosition - 1);

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-		case TokenNameenum :

-			pushOnIntStack(this.scanner.currentPosition - 1);

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-		case TokenNamedefault :

-			pushOnIntStack(this.scanner.startPosition);

-			pushOnIntStack(this.scanner.currentPosition - 1);

-			break;

-			//let extra semantic action decide when to push

-		case TokenNameRBRACKET :

-		case TokenNamePLUS :

-		case TokenNameMINUS :

-		case TokenNameNOT :

-		case TokenNameTWIDDLE :

-		case TokenNameLBRACE :

-			this.endPosition = this.scanner.startPosition;

-			break;

-		case TokenNamePLUS_PLUS :

-		case TokenNameMINUS_MINUS :

-			this.endPosition = this.scanner.startPosition;

-			this.endStatementPosition = this.scanner.currentPosition - 1;

-			break;

-		case TokenNameRBRACE:

-		case TokenNameSEMICOLON :

-			this.endStatementPosition = this.scanner.currentPosition - 1;

-			this.endPosition = this.scanner.startPosition - 1; 

-			//the item is not part of the potential futur expression/statement

-			break;

-		case TokenNameRPAREN :

-			// in order to handle ( expression) ////// (cast)expression///// foo(x)

-			this.rParenPos = this.scanner.currentPosition - 1; // position of the end of right parenthesis (in case of unicode \u0029) lex00101

-			break;

-		case TokenNameLPAREN :

-			this.lParenPos = this.scanner.startPosition;

-			break;

-		case TokenNameAT :

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-		case TokenNameQUESTION  :

-			pushOnIntStack(this.scanner.startPosition);

-			pushOnIntStack(this.scanner.currentPosition - 1);

-			break;

-		// TODO (olivier) bug 67790 remove once DOMParser is activated

-		case TokenNameLESS :

-			pushOnIntStack(this.scanner.startPosition);

-			break;

-			//  case TokenNameCOMMA :

-			//  case TokenNameCOLON  :

-			//  case TokenNameEQUAL  :

-			//  case TokenNameLBRACKET  :

-			//  case TokenNameDOT :

-			//  case TokenNameERROR :

-			//  case TokenNameEOF  :

-			//  case TokenNamecase  :

-			//  case TokenNamecatch  :

-			//  case TokenNameelse  :

-			//  case TokenNameextends  :

-			//  case TokenNamefinally  :

-			//  case TokenNameimplements  :

-			//  case TokenNamethrows  :

-			//  case TokenNameinstanceof  :

-			//  case TokenNameEQUAL_EQUAL  :

-			//  case TokenNameLESS_EQUAL  :

-			//  case TokenNameGREATER_EQUAL  :

-			//  case TokenNameNOT_EQUAL  :

-			//  case TokenNameLEFT_SHIFT  :

-			//  case TokenNameRIGHT_SHIFT  :

-			//  case TokenNameUNSIGNED_RIGHT_SHIFT :

-			//  case TokenNamePLUS_EQUAL  :

-			//  case TokenNameMINUS_EQUAL  :

-			//  case TokenNameMULTIPLY_EQUAL  :

-			//  case TokenNameDIVIDE_EQUAL  :

-			//  case TokenNameAND_EQUAL  :

-			//  case TokenNameOR_EQUAL  :

-			//  case TokenNameXOR_EQUAL  :

-			//  case TokenNameREMAINDER_EQUAL  :

-			//  case TokenNameLEFT_SHIFT_EQUAL  :

-			//  case TokenNameRIGHT_SHIFT_EQUAL  :

-			//  case TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL  :

-			//  case TokenNameOR_OR  :

-			//  case TokenNameAND_AND  :

-			//  case TokenNameREMAINDER :

-			//  case TokenNameXOR  :

-			//  case TokenNameAND  :

-			//  case TokenNameMULTIPLY :

-			//  case TokenNameOR  :

-			//  case TokenNameDIVIDE :

-			//  case TokenNameGREATER  :

-	}

-}

-protected void consumeTypeArgument() {

-	pushOnGenericsStack(getTypeReference(this.intStack[this.intPtr--]));	

-}

-protected void consumeTypeArgumentList() {

-	concatGenericsLists();

-}

-protected void consumeTypeArgumentList1() {

-	concatGenericsLists();

-}

-protected void consumeTypeArgumentList2() {

-	concatGenericsLists();

-}

-protected void consumeTypeArgumentList3() {

-	concatGenericsLists();

-}

-protected void consumeTypeArgumentReferenceType1() {

-	concatGenericsLists();

-	pushOnGenericsStack(getTypeReference(0));	

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-}

-protected void consumeTypeArgumentReferenceType2() {

-	concatGenericsLists();

-	pushOnGenericsStack(getTypeReference(0));	

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-}

-protected void consumeTypeArguments() {

-	concatGenericsLists();

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-

-	if(options.sourceLevel < ClassFileConstants.JDK1_5 &&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		int length = this.genericsLengthStack[this.genericsLengthPtr];

-		this.problemReporter().invalidUsageOfTypeArguments(

-			(TypeReference)this.genericsStack[this.genericsPtr - length + 1],

-			(TypeReference)this.genericsStack[this.genericsPtr]);

-	}

-}

-protected void consumeTypeDeclarations() {

-	// TypeDeclarations ::= TypeDeclarations TypeDeclaration

-	concatNodeLists();

-}

-protected void consumeTypeImportOnDemandDeclarationName() {

-	// TypeImportOnDemandDeclarationName ::= 'import' Name '.' '*'

-	/* push an ImportRef build from the last name 

-	stored in the identifier stack. */

-

-	ImportReference impt;

-	int length;

-	char[][] tokens = new char[length = this.identifierLengthStack[this.identifierLengthPtr--]][];

-	this.identifierPtr -= length;

-	long[] positions = new long[length];

-	System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-	System.arraycopy(this.identifierPositionStack, this.identifierPtr + 1, positions, 0, length);

-	pushOnAstStack(impt = new ImportReference(tokens, positions, true, AccDefault));

-

-	if (this.currentToken == TokenNameSEMICOLON){

-		impt.declarationSourceEnd = this.scanner.currentPosition - 1;

-	} else {

-		impt.declarationSourceEnd = impt.sourceEnd;

-	}

-	impt.declarationEnd = impt.declarationSourceEnd;

-	//this.endPosition is just before the ;

-	impt.declarationSourceStart = this.intStack[this.intPtr--];

-

-	// recovery

-	if (this.currentElement != null){

-		this.lastCheckPoint = impt.declarationSourceEnd+1;

-		this.currentElement = this.currentElement.add(impt, 0);

-		this.lastIgnoredToken = -1;

-		this.restartRecovery = true; // used to avoid branching back into the regular automaton		

-	}	

-}

-protected void consumeTypeParameterHeader() {

-	//TypeParameterHeader ::= Identifier

-	TypeParameter typeParameter = new TypeParameter();

-	long pos = this.identifierPositionStack[this.identifierPtr];

-	final int end = (int) pos;

-	typeParameter.declarationSourceEnd = end;

-	typeParameter.sourceEnd = end;

-	final int start = (int) (pos >>> 32);

-	typeParameter.declarationSourceStart = start;

-	typeParameter.sourceStart = start;

-	typeParameter.name = this.identifierStack[this.identifierPtr--];

-	this.identifierLengthPtr--;

-	pushOnGenericsStack(typeParameter);

-	

-	this.listTypeParameterLength++;

-}

-protected void consumeTypeParameter1() {

-	// nothing to do

-}

-protected void consumeTypeParameter1WithExtends() {

-	//TypeParameter1 ::= TypeParameterHeader 'extends' ReferenceType1

-	TypeReference superType = (TypeReference) this.genericsStack[this.genericsPtr--];

-	this.genericsLengthPtr--;

-	TypeParameter typeParameter = (TypeParameter) this.genericsStack[this.genericsPtr];

-	typeParameter.declarationSourceEnd = superType.sourceEnd;

-	typeParameter.type = superType;

-	superType.bits |= ASTNode.IsSuperType;

-	this.genericsStack[this.genericsPtr] = typeParameter;

-}

-protected void consumeTypeParameter1WithExtendsAndBounds() {

-	//TypeParameter1 ::= TypeParameterHeader 'extends' ReferenceType AdditionalBoundList1

-	int additionalBoundsLength = this.genericsLengthStack[this.genericsLengthPtr--];

-	TypeReference[] bounds = new TypeReference[additionalBoundsLength];

-	this.genericsPtr -= additionalBoundsLength;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, bounds, 0, additionalBoundsLength);

-	TypeReference superType = getTypeReference(this.intStack[this.intPtr--]);

-	TypeParameter typeParameter = (TypeParameter) this.genericsStack[this.genericsPtr];

-	typeParameter.declarationSourceEnd = bounds[additionalBoundsLength - 1].sourceEnd;

-	typeParameter.type = superType;

-	superType.bits |= ASTNode.IsSuperType;	

-	typeParameter.bounds = bounds;

-	for (int i = 0, max = bounds.length; i < max; i++) {

-		bounds[i].bits |= ASTNode.IsSuperType;

-	}	

-}

-protected void consumeTypeParameterList() {

-	//TypeParameterList ::= TypeParameterList ',' TypeParameter

-	concatGenericsLists();

-}

-protected void consumeTypeParameterList1() {

-	//TypeParameterList1 ::= TypeParameterList ',' TypeParameter1

-	concatGenericsLists();

-}

-protected void consumeTypeParameters() {

-	// TODO (olivier) bug 67790 remove once DOMParser is activated

-	intPtr--;

-	if(options.sourceLevel < ClassFileConstants.JDK1_5&&

-			this.lastErrorEndPositionBeforeRecovery < this.scanner.currentPosition) {

-		int length = this.genericsLengthStack[this.genericsLengthPtr];

-		this.problemReporter().invalidUsageOfTypeParameters(

-			(TypeParameter) this.genericsStack[genericsPtr - length + 1],

-			(TypeParameter) this.genericsStack[genericsPtr]);

-	}

-}

-protected void consumeTypeParameterWithExtends() {

-	//TypeParameter ::= TypeParameterHeader 'extends' ReferenceType

-	TypeReference superType = getTypeReference(this.intStack[this.intPtr--]);

-	TypeParameter typeParameter = (TypeParameter) this.genericsStack[this.genericsPtr];

-	typeParameter.declarationSourceEnd = superType.sourceEnd;

-	typeParameter.type = superType;

-	superType.bits |= ASTNode.IsSuperType;

-}

-protected void consumeTypeParameterWithExtendsAndBounds() {

-	//TypeParameter ::= TypeParameterHeader 'extends' ReferenceType AdditionalBoundList

-	int additionalBoundsLength = this.genericsLengthStack[this.genericsLengthPtr--];

-	TypeReference[] bounds = new TypeReference[additionalBoundsLength];

-	this.genericsPtr -= additionalBoundsLength;

-	System.arraycopy(this.genericsStack, this.genericsPtr + 1, bounds, 0, additionalBoundsLength);

-	TypeReference superType = getTypeReference(this.intStack[this.intPtr--]);

-	TypeParameter typeParameter = (TypeParameter) this.genericsStack[this.genericsPtr];

-	typeParameter.type = superType;

-	superType.bits |= ASTNode.IsSuperType;

-	typeParameter.bounds = bounds;

-	typeParameter.declarationSourceEnd = bounds[additionalBoundsLength - 1].sourceEnd;

-	for (int i = 0, max = bounds.length; i < max; i++) {

-		bounds[i].bits |= ASTNode.IsSuperType;

-	}		

-}

-protected void consumeUnaryExpression(int op) {

-	// UnaryExpression ::= '+' PushPosition UnaryExpression

-	// UnaryExpression ::= '-' PushPosition UnaryExpression

-	// UnaryExpressionNotPlusMinus ::= '~' PushPosition UnaryExpression

-	// UnaryExpressionNotPlusMinus ::= '!' PushPosition UnaryExpression

-

-	//optimize the push/pop

-

-	//handle manually the -2147483648 while it is not a real

-	//computation of an - and 2147483648 (notice that 2147483648

-	//is Integer.MAX_VALUE+1.....)

-	//Same for -9223372036854775808L ............

-

-	//this.intStack have the position of the operator

-

-	Expression r, exp = this.expressionStack[this.expressionPtr];

-	if (op == MINUS) {

-		if ((exp instanceof IntLiteral) && (((IntLiteral) exp).mayRepresentMIN_VALUE())) {

-			r = this.expressionStack[this.expressionPtr] = new IntLiteralMinValue();

-		} else {

-			if ((exp instanceof LongLiteral) && (((LongLiteral) exp).mayRepresentMIN_VALUE())) {

-				r = this.expressionStack[this.expressionPtr] = new LongLiteralMinValue();

-			} else {

-				r = this.expressionStack[this.expressionPtr] = new UnaryExpression(exp, op);

-			}

-		}

-	} else {

-		r = this.expressionStack[this.expressionPtr] = new UnaryExpression(exp, op);

-	}

-	r.sourceStart = this.intStack[this.intPtr--];

-	r.sourceEnd = exp.sourceEnd;

-}

-protected void consumeUnaryExpression(int op, boolean post) {

-	// PreIncrementExpression ::= '++' PushPosition UnaryExpression

-	// PreDecrementExpression ::= '--' PushPosition UnaryExpression

-

-	// ++ and -- operators

-	//optimize the push/pop

-

-	//this.intStack has the position of the operator when prefix

-

-	Expression leftHandSide = this.expressionStack[this.expressionPtr];

-	if (leftHandSide instanceof Reference) {

-		// ++foo()++ is unvalid 

-		if (post) {

-			this.expressionStack[this.expressionPtr] = 

-				new PostfixExpression(

-					leftHandSide,

-					IntLiteral.One,

-					op,

-					this.endStatementPosition); 

-		} else {

-			this.expressionStack[this.expressionPtr] = 

-				new PrefixExpression(

-					leftHandSide,

-					IntLiteral.One,

-					op,

-					this.intStack[this.intPtr--]); 

-		}

-	} else {

-		//the ++ or the -- is NOT taken into account if code gen proceeds

-		if (!post) {

-			this.intPtr--;

-		}

-		problemReporter().invalidUnaryExpression(leftHandSide);

-	}

-}

-protected void consumeVariableDeclarators() {

-	// VariableDeclarators ::= VariableDeclarators ',' VariableDeclarator

-	optimizedConcatNodeLists();

-}

-protected void consumeVariableInitializers() {

-	// VariableInitializers ::= VariableInitializers ',' VariableInitializer

-	concatExpressionLists();

-}

-protected void consumeWildcard() {

-	final Wildcard wildcard = new Wildcard(Wildcard.UNBOUND);

-	wildcard.sourceEnd = this.intStack[this.intPtr--];

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	pushOnGenericsStack(wildcard);

-}

-protected void consumeWildcard1() {

-	final Wildcard wildcard = new Wildcard(Wildcard.UNBOUND);

-	wildcard.sourceEnd = this.intStack[this.intPtr--];

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	pushOnGenericsStack(wildcard);

-}

-protected void consumeWildcard1WithBounds() {

-	// Nothing to do

-	// The wildcard is created by the consumeWildcardBounds1Extends or by consumeWildcardBounds1Super

-}

-protected void consumeWildcard2() {

-	final Wildcard wildcard = new Wildcard(Wildcard.UNBOUND);

-	wildcard.sourceEnd = this.intStack[this.intPtr--];

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	pushOnGenericsStack(wildcard);

-}

-protected void consumeWildcard2WithBounds() {

-	// Nothing to do

-	// The wildcard is created by the consumeWildcardBounds2Extends or by consumeWildcardBounds2Super

-}

-protected void consumeWildcard3() {

-	final Wildcard wildcard = new Wildcard(Wildcard.UNBOUND);

-	wildcard.sourceEnd = this.intStack[this.intPtr--];

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	pushOnGenericsStack(wildcard);

-}

-protected void consumeWildcard3WithBounds() {

-	// Nothing to do

-	// The wildcard is created by the consumeWildcardBounds3Extends or by consumeWildcardBounds3Super

-}

-protected void consumeWildcardBounds1Extends() {

-	Wildcard wildcard = new Wildcard(Wildcard.EXTENDS);

-	wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];

-	wildcard.sourceEnd = wildcard.bound.sourceEnd;

-	this.intPtr--; // remove end position of the '?'

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	this.genericsStack[this.genericsPtr] = wildcard;

-}

-protected void consumeWildcardBounds1Super() {

-	Wildcard wildcard = new Wildcard(Wildcard.SUPER);

-	wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];

-	this.intPtr--; // remove the starting position of the super keyword

-	wildcard.sourceEnd = wildcard.bound.sourceEnd;

-	this.intPtr--; // remove end position of the '?'

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	this.genericsStack[this.genericsPtr] = wildcard;

-}

-protected void consumeWildcardBounds2Extends() {

-	Wildcard wildcard = new Wildcard(Wildcard.EXTENDS);

-	wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];

-	wildcard.sourceEnd = wildcard.bound.sourceEnd;

-	this.intPtr--; // remove end position of the '?'

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	this.genericsStack[this.genericsPtr] = wildcard;

-}

-protected void consumeWildcardBounds2Super() {

-	Wildcard wildcard = new Wildcard(Wildcard.SUPER);

-	wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];

-	this.intPtr--; // remove the starting position of the super keyword

-	wildcard.sourceEnd = wildcard.bound.sourceEnd;

-	this.intPtr--; // remove end position of the '?'

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	this.genericsStack[this.genericsPtr] = wildcard;

-}

-protected void consumeWildcardBounds3Extends() {

-	Wildcard wildcard = new Wildcard(Wildcard.EXTENDS);

-	wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];

-	wildcard.sourceEnd = wildcard.bound.sourceEnd;

-	this.intPtr--; // remove end position of the '?'

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	this.genericsStack[this.genericsPtr] = wildcard;

-}

-protected void consumeWildcardBounds3Super() {

-	Wildcard wildcard = new Wildcard(Wildcard.SUPER);

-	wildcard.bound = (TypeReference) this.genericsStack[this.genericsPtr];

-	this.intPtr--; // remove the starting position of the super keyword

-	wildcard.sourceEnd = wildcard.bound.sourceEnd;

-	this.intPtr--; // remove end position of the '?'

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	this.genericsStack[this.genericsPtr] = wildcard;

-}

-protected void consumeWildcardBoundsExtends() {

-	Wildcard wildcard = new Wildcard(Wildcard.EXTENDS);

-	wildcard.bound = getTypeReference(this.intStack[this.intPtr--]);

-	wildcard.sourceEnd = wildcard.bound.sourceEnd;

-	this.intPtr--; // remove end position of the '?'

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	pushOnGenericsStack(wildcard);

-}

-protected void consumeWildcardBoundsSuper() {

-	Wildcard wildcard = new Wildcard(Wildcard.SUPER);

-	wildcard.bound = getTypeReference(this.intStack[this.intPtr--]);

-	this.intPtr--; // remove the starting position of the super keyword

-	wildcard.sourceEnd = wildcard.bound.sourceEnd;

-	this.intPtr--; // remove end position of the '?'

-	wildcard.sourceStart = this.intStack[this.intPtr--];

-	pushOnGenericsStack(wildcard);

-}

-protected void consumeWildcardWithBounds() {

-	// Nothing to do

-	// The wildcard is created by the consumeWildcardBoundsExtends or by consumeWildcardBoundsSuper

-}

-/**

- * Given the current comment stack, answer whether some comment is available in a certain exclusive range

- * 

- * @param sourceStart int

- * @param sourceEnd int

- * @return boolean

- */

-public boolean containsComment(int sourceStart, int sourceEnd) {

-	int iComment = this.scanner.commentPtr;

-	for (; iComment >= 0; iComment--) {

-		int commentStart = this.scanner.commentStarts[iComment];

-		// ignore comments before start

-		if (commentStart < sourceStart) continue;

-		// ignore comments after end

-		if (commentStart > sourceEnd) continue;

-		return true;

-	}

-	return false;

-}

-public MethodDeclaration convertToMethodDeclaration(ConstructorDeclaration c, CompilationResult compilationResult) {

-	MethodDeclaration m = new MethodDeclaration(compilationResult);

-	m.typeParameters = c.typeParameters;

-	m.sourceStart = c.sourceStart;

-	m.sourceEnd = c.sourceEnd;

-	m.bodyStart = c.bodyStart;

-	m.bodyEnd = c.bodyEnd;

-	m.declarationSourceEnd = c.declarationSourceEnd;

-	m.declarationSourceStart = c.declarationSourceStart;

-	m.selector = c.selector;

-	m.statements = c.statements;

-	m.modifiers = c.modifiers;

-	m.annotations = c.annotations;

-	m.arguments = c.arguments;

-	m.thrownExceptions = c.thrownExceptions;

-	m.explicitDeclarations = c.explicitDeclarations;

-	m.returnType = null;

-	return m;

-}

-protected TypeReference copyDims(TypeReference typeRef, int dim) {

-	return typeRef.copyDims(dim);

-}

-protected FieldDeclaration createFieldDeclaration(char[] fieldDeclarationName, int sourceStart, int sourceEnd) {

-	return new FieldDeclaration(fieldDeclarationName, sourceStart, sourceEnd);

-}

-

-protected LocalDeclaration createLocalDeclaration(char[] localDeclarationName, int sourceStart, int sourceEnd) {

-	return new LocalDeclaration(localDeclarationName, sourceStart, sourceEnd);

-}

-

-public CompilationUnitDeclaration dietParse(ICompilationUnit sourceUnit, CompilationResult compilationResult) {

-

-	CompilationUnitDeclaration parsedUnit;

-	boolean old = this.diet;

-	try {

-		this.diet = true;

-		parsedUnit = parse(sourceUnit, compilationResult);

-	}

-	finally {

-		this.diet = old;

-	}

-	return parsedUnit;

-}

-protected void dispatchDeclarationInto(int length) {

-	/* they are length on this.astStack that should go into

-	   methods fields constructors lists of the typeDecl

-

-	   Return if there is a constructor declaration in the methods declaration */

-	   

-	

-	// Looks for the size of each array . 

-

-	if (length == 0)

-		return;

-	int[] flag = new int[length + 1]; //plus one -- see <HERE>

-	int size1 = 0, size2 = 0, size3 = 0, size4 = 0;

-	for (int i = length - 1; i >= 0; i--) {

-		ASTNode astNode = this.astStack[this.astPtr--];

-		if (astNode instanceof AbstractMethodDeclaration) {

-			//methods and constructors have been regrouped into one single list

-			flag[i] = 3;

-			size2++;

-		} else if (astNode instanceof EnumDeclaration) {

-			flag[i] = 2;

-			size4++;

-		} else if (astNode instanceof TypeDeclaration) {

-			flag[i] = 4;

-			size3++;

-		} else {

-			//field

-			flag[i] = 1;

-			size1++;

-		}

-	}

-

-	//arrays creation

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];

-	if (size1 != 0) {

-		typeDecl.fields = new FieldDeclaration[size1];

-	}

-	if (size2 != 0) {

-		typeDecl.methods = new AbstractMethodDeclaration[size2];

-	}

-	if (size3 != 0) {

-		typeDecl.memberTypes = new TypeDeclaration[size3];

-	}

-	if (size4 != 0) {

-		typeDecl.enums = new EnumDeclaration[size4];

-	}

-

-	//arrays fill up

-	size1 = size2 = size3 = size4 = 0;

-	int flagI = flag[0], start = 0;

-	int length2;

-	for (int end = 0; end <= length; end++) //<HERE> the plus one allows to 

-		{

-		if (flagI != flag[end]) //treat the last element as a ended flag.....

-			{ //array copy

-			switch (flagI) {

-				case 1 :

-					size1 += (length2 = end - start);

-					System.arraycopy(

-						this.astStack, 

-						this.astPtr + start + 1, 

-						typeDecl.fields, 

-						size1 - length2, 

-						length2); 

-					break;

-				case 2 :

-					size4 += (length2 = end - start);

-					System.arraycopy(

-						this.astStack, 

-						this.astPtr + start + 1, 

-						typeDecl.enums, 

-						size4 - length2, 

-						length2); 

-					break;

-				case 3 :

-					size2 += (length2 = end - start);

-					System.arraycopy(

-						this.astStack, 

-						this.astPtr + start + 1, 

-						typeDecl.methods, 

-						size2 - length2, 

-						length2); 

-					break;

-				case 4 :

-					size3 += (length2 = end - start);

-					System.arraycopy(

-						this.astStack, 

-						this.astPtr + start + 1, 

-						typeDecl.memberTypes, 

-						size3 - length2, 

-						length2); 

-					break;

-			}

-			flagI = flag[start = end];

-		}

-	}

-

-	if (typeDecl.memberTypes != null) {

-		for (int i = typeDecl.memberTypes.length - 1; i >= 0; i--) {

-			typeDecl.memberTypes[i].enclosingType = typeDecl;

-		}

-	}

-}

-protected void dispatchDeclarationIntoEnumDeclaration(int length) {

-	if (length == 0)

-		return;

-	int[] flag = new int[length + 1]; //plus one -- see <HERE>

-	int size1 = 0, size2 = 0, size3 = 0, size4 = 0;

-	for (int i = length - 1; i >= 0; i--) {

-		ASTNode astNode = this.astStack[this.astPtr--];

-		if (astNode instanceof AbstractMethodDeclaration) {

-			//methods and constructors have been regrouped into one single list

-			flag[i] = 3;

-			size2++;

-		} else if (astNode instanceof EnumConstant) {

-			// enum constants

-			flag[i] = 2;

-			size4++;

-		} else if (astNode instanceof TypeDeclaration) {

-			flag[i] = 4;

-			size3++;

-		} else if (astNode instanceof FieldDeclaration) {

-			flag[i] = 1;

-			size1++;

-		}

-	}

-

-	//arrays creation

-	EnumDeclaration enumDeclaration = (EnumDeclaration) this.astStack[this.astPtr];

-	if (size1 != 0) {

-		enumDeclaration.fields = new FieldDeclaration[size1];

-	}

-	if (size2 != 0) {

-		enumDeclaration.methods = new AbstractMethodDeclaration[size2];

-	}

-	if (size3 != 0) {

-		enumDeclaration.memberTypes = new TypeDeclaration[size3];

-	}

-	if (size4 != 0) {

-		enumDeclaration.enumConstants = new EnumConstant[size4];

-	}

-

-	//arrays fill up

-	size1 = size2 = size3 = size4 = 0;

-	int flagI = flag[0], start = 0;

-	int length2;

-	for (int end = 0; end <= length; end++) //<HERE> the plus one allows to 

-		{

-		if (flagI != flag[end]) //treat the last element as a ended flag.....

-			{ //array copy

-			switch (flagI) {

-				case 1 :

-					size1 += (length2 = end - start);

-					System.arraycopy(

-						this.astStack, 

-						this.astPtr + start + 1, 

-						enumDeclaration.fields, 

-						size1 - length2, 

-						length2); 

-					break;

-				case 2 :

-					size4 += (length2 = end - start);

-					System.arraycopy(

-						this.astStack, 

-						this.astPtr + start + 1, 

-						enumDeclaration.enumConstants, 

-						size4 - length2, 

-						length2); 

-					break;

-				case 3 :

-					size2 += (length2 = end - start);

-					System.arraycopy(

-						this.astStack, 

-						this.astPtr + start + 1, 

-						enumDeclaration.methods, 

-						size2 - length2, 

-						length2); 

-					break;

-				case 4 :

-					size3 += (length2 = end - start);

-					System.arraycopy(

-						this.astStack, 

-						this.astPtr + start + 1, 

-						enumDeclaration.memberTypes, 

-						size3 - length2, 

-						length2); 

-					break;

-			}

-			flagI = flag[start = end];

-		}

-	}

-

-	if (enumDeclaration.memberTypes != null) {

-		for (int i = enumDeclaration.memberTypes.length - 1; i >= 0; i--) {

-			enumDeclaration.memberTypes[i].enclosingType = enumDeclaration;

-		}

-	}

-}

-protected CompilationUnitDeclaration endParse(int act) {

-

-	this.lastAct = act;

-

-	if (this.currentElement != null){

-		this.currentElement.topElement().updateParseTree();

-		if (VERBOSE_RECOVERY){

-			System.out.print(Util.bind("parser.syntaxRecovery")); //$NON-NLS-1$

-			System.out.println("--------------------------");		 //$NON-NLS-1$

-			System.out.println(this.compilationUnit);		

-			System.out.println("----------------------------------"); //$NON-NLS-1$

-		}		

-	} else {

-		if (this.diet & VERBOSE_RECOVERY){

-			System.out.print(Util.bind("parser.regularParse"));	 //$NON-NLS-1$

-			System.out.println("--------------------------");	 //$NON-NLS-1$

-			System.out.println(this.compilationUnit);		

-			System.out.println("----------------------------------"); //$NON-NLS-1$

-		}

-	}

-	persistLineSeparatorPositions();

-	for (int i = 0; i < this.scanner.foundTaskCount; i++){

-		problemReporter().task(

-			new String(this.scanner.foundTaskTags[i]), 

-			new String(this.scanner.foundTaskMessages[i]),

-			this.scanner.foundTaskPriorities[i] == null ? null : new String(this.scanner.foundTaskPriorities[i]), 

-			this.scanner.foundTaskPositions[i][0], 

-			this.scanner.foundTaskPositions[i][1]);

-	}

-	return this.compilationUnit;

-}

-/*

- * Flush comments defined prior to a given positions.

- *

- * Note: comments are stacked in syntactical order

- *

- * Either answer given <position>, or the end position of a comment line 

- * immediately following the <position> (same line)

- *

- * e.g.

- * void foo(){

- * } // end of method foo

- */

- 

-public int flushCommentsDefinedPriorTo(int position) {

-

-	int lastCommentIndex = this.scanner.commentPtr;

-	if (lastCommentIndex < 0) return position; // no comment

-

-	// compute the index of the first obsolete comment

-	int index = lastCommentIndex;

-	int validCount = 0;

-	while (index >= 0){

-		int commentEnd = this.scanner.commentStops[index];

-		if (commentEnd < 0) commentEnd = -commentEnd; // negative end position for non-javadoc comments

-		if (commentEnd <= position){

-			break;

-		}

-		index--;

-		validCount++;

-	}

-	// if the source at <position> is immediately followed by a line comment, then

-	// flush this comment and shift <position> to the comment end.

-	if (validCount > 0){

-		int immediateCommentEnd = -this.scanner.commentStops[index+1]; //non-javadoc comment end positions are negative

-		if (immediateCommentEnd > 0){ // only tolerating non-javadoc comments

-			// is there any line break until the end of the immediate comment ? (thus only tolerating line comment)

-			immediateCommentEnd--; // comment end in one char too far

-			if (this.scanner.getLineNumber(position) == this.scanner.getLineNumber(immediateCommentEnd)){

-				position = immediateCommentEnd;

-				validCount--; // flush this comment

-				index++;

-			}

-		}

-	}

-

-	if (index < 0) return position; // no obsolete comment

-

-	if (validCount > 0){ // move valid comment infos, overriding obsolete comment infos

-		System.arraycopy(this.scanner.commentStarts, index + 1, this.scanner.commentStarts, 0, validCount);

-		System.arraycopy(this.scanner.commentStops, index + 1, this.scanner.commentStops, 0, validCount);		

-	}

-	this.scanner.commentPtr = validCount - 1;

-	return position;

-}

-public int getFirstToken() {

-	// the first token is a virtual token that

-	// allows the parser to parse several goals

-	// even if they aren't LALR(1)....

-	// Goal ::= '++' CompilationUnit

-	// Goal ::= '--' MethodBody

-	// Goal ::= '==' ConstructorBody

-	// -- Initializer

-	// Goal ::= '>>' StaticInitializer

-	// Goal ::= '>>' Block

-	// -- error recovery

-	// Goal ::= '>>>' Headers

-	// Goal ::= '*' BlockStatements

-	// Goal ::= '*' MethodPushModifiersHeader

-	// -- JDOM

-	// Goal ::= '&&' FieldDeclaration

-	// Goal ::= '||' ImportDeclaration

-	// Goal ::= '?' PackageDeclaration

-	// Goal ::= '+' TypeDeclaration

-	// Goal ::= '/' GenericMethodDeclaration

-	// Goal ::= '&' ClassBodyDeclaration

-	// -- code snippet

-	// Goal ::= '%' Expression

-	// -- completion parser

-	// Goal ::= '!' ConstructorBlockStatementsopt

-	// Goal ::= '~' BlockStatementsopt

-	

-	return this.firstToken;

-}

-/*

- * Answer back an array of sourceStart/sourceEnd positions of the available JavaDoc comments.

- * The array is a flattened structure: 2*n entries with consecutives start and end positions.

- *

- * If no JavaDoc is available, then null is answered instead of an empty array.

- *

- * e.g. { 10, 20, 25, 45 }  --> javadoc1 from 10 to 20, javadoc2 from 25 to 45

- */

-public int[] getJavaDocPositions() {

-

-	int javadocCount = 0;

-	for (int i = 0, max = this.scanner.commentPtr; i <= max; i++){

-		// javadoc only (non javadoc comment have negative end positions.)

-		if (this.scanner.commentStops[i] > 0){

-			javadocCount++;

-		}

-	}

-	if (javadocCount == 0) return null;

-

-	int[] positions = new int[2*javadocCount];

-	int index = 0;

-	for (int i = 0, max = this.scanner.commentPtr; i <= max; i++){

-		// javadoc only (non javadoc comment have negative end positions.)

-		if (this.scanner.commentStops[i] > 0){

-			positions[index++] = this.scanner.commentStarts[i];

-			positions[index++] = this.scanner.commentStops[i]-1; //stop is one over			

-		}

-	}

-	return positions;

-}

-	public void getMethodBodies(CompilationUnitDeclaration unit) {

-		//fill the methods bodies in order for the code to be generated

-

-		if (unit == null) return;

-		

-		if (unit.ignoreMethodBodies) {

-			unit.ignoreFurtherInvestigation = true;

-			return;

-			// if initial diet parse did not work, no need to dig into method bodies.

-		}

-

-		if ((unit.bits & ASTNode.HasAllMethodBodies) != 0)

-			return; //work already done ...

-

-		// save existing values to restore them at the end of the parsing process

-		// see bug 47079 for more details

-		int[] oldLineEnds = this.scanner.lineEnds;

-		int oldLinePtr = this.scanner.linePtr;

-

-		//real parse of the method....

-		CompilationResult compilationResult = unit.compilationResult;

-		this.scanner.setSource(compilationResult);

-		

-		if (this.javadocParser != null && this.javadocParser.checkDocComment) {

-			char[] contents = compilationResult.compilationUnit.getContents();

-			this.javadocParser.scanner.setSource(contents);

-		}

-		if (unit.types != null) {

-			for (int i = unit.types.length; --i >= 0;)

-				unit.types[i].parseMethod(this, unit);

-		}

-		

-		// tag unit has having read bodies

-		unit.bits |= ASTNode.HasAllMethodBodies;

-

-		// this is done to prevent any side effects on the compilation unit result

-		// line separator positions array.

-		this.scanner.lineEnds = oldLineEnds;

-		this.scanner.linePtr = oldLinePtr;

-	}

-protected char getNextCharacter(char[] comment, int[] index) {

-	char nextCharacter = comment[index[0]++];

-	switch(nextCharacter) {

-		case '\\' :

-			int c1, c2, c3, c4;

-			index[0]++;

-			while (comment[index[0]] == 'u') index[0]++;

-			if (!(((c1 = Character.getNumericValue(comment[index[0]++])) > 15

-				|| c1 < 0)

-				|| ((c2 = Character.getNumericValue(comment[index[0]++])) > 15 || c2 < 0)

-				|| ((c3 = Character.getNumericValue(comment[index[0]++])) > 15 || c3 < 0)

-				|| ((c4 = Character.getNumericValue(comment[index[0]++])) > 15 || c4 < 0))) {

-					nextCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			}

-			break;

-	}

-	return nextCharacter;

-}

-protected Expression getTypeReference(Expression exp) {

-	

-	exp.bits &= ~ASTNode.RestrictiveFlagMASK;

-	exp.bits |= TYPE;

-	return exp;

-}

-protected TypeReference getTypeReference(int dim) {

-	/* build a Reference on a variable that may be qualified or not

-	 This variable is a type reference and dim will be its dimensions*/

-

-	TypeReference ref;

-	int length = this.identifierLengthStack[this.identifierLengthPtr--];

-	if (length < 0) { //flag for precompiled type reference on base types

-		ref = TypeReference.baseTypeReference(-length, dim);

-		ref.sourceStart = this.intStack[this.intPtr--];

-		if (dim == 0) {

-			ref.sourceEnd = this.intStack[this.intPtr--];

-		} else {

-			this.intPtr--;

-			ref.sourceEnd = this.endPosition;

-		}

-	} else {

-		int numberOfIdentifiers = this.genericsIdentifiersLengthStack[this.genericsIdentifiersLengthPtr--];

-		if (length != numberOfIdentifiers || this.genericsLengthStack[this.genericsLengthPtr] != 0) {

-			// generic type

-			ref = getTypeReferenceForGenericType(dim, length, numberOfIdentifiers);

-		} else if (length == 1) {

-			// single variable reference

-			this.genericsLengthPtr--; // pop the 0

-			if (dim == 0) {

-				ref = 

-					new SingleTypeReference(

-						this.identifierStack[this.identifierPtr], 

-						this.identifierPositionStack[this.identifierPtr--]); 

-			} else {

-				ref = 

-					new ArrayTypeReference(

-						this.identifierStack[this.identifierPtr], 

-						dim, 

-						this.identifierPositionStack[this.identifierPtr--]); 

-				ref.sourceEnd = this.endPosition;			

-			}

-		} else {

-			this.genericsLengthPtr--;

-			//Qualified variable reference

-			char[][] tokens = new char[length][];

-			this.identifierPtr -= length;

-			long[] positions = new long[length];

-			System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-			System.arraycopy(

-				this.identifierPositionStack, 

-				this.identifierPtr + 1, 

-				positions, 

-				0, 

-				length); 

-			if (dim == 0) {

-				ref = new QualifiedTypeReference(tokens, positions);

-			} else {

-				ref = new ArrayQualifiedTypeReference(tokens, dim, positions);

-				ref.sourceEnd = this.endPosition;

-			}

-		}

-	}

-	return ref;

-}

-protected TypeReference getTypeReferenceForGenericType(int dim, int identifierLength, int numberOfIdentifiers) {

-	if (identifierLength == 1 && numberOfIdentifiers == 1) {

-		int currentTypeArgumentsLength = this.genericsLengthStack[this.genericsLengthPtr--];

-		TypeReference[] typeArguments = new TypeReference[currentTypeArgumentsLength];

-		this.genericsPtr -= currentTypeArgumentsLength;

-		System.arraycopy(this.genericsStack, this.genericsPtr + 1, typeArguments, 0, currentTypeArgumentsLength);

-		return new ParameterizedSingleTypeReference(this.identifierStack[this.identifierPtr], typeArguments, dim, this.identifierPositionStack[this.identifierPtr--]);

-	} else {

-		TypeReference[][] typeArguments = new TypeReference[numberOfIdentifiers][];

-		char[][] tokens = new char[numberOfIdentifiers][];

-		long[] positions = new long[numberOfIdentifiers];

-		int index = numberOfIdentifiers;

-		int currentIdentifiersLength = identifierLength;

-		while (index > 0) {

-			int currentTypeArgumentsLength = this.genericsLengthStack[this.genericsLengthPtr--];

-			if (currentTypeArgumentsLength != 0) {

-				this.genericsPtr -= currentTypeArgumentsLength;

-				System.arraycopy(this.genericsStack, this.genericsPtr + 1, typeArguments[index - 1] = new TypeReference[currentTypeArgumentsLength], 0, currentTypeArgumentsLength);

-			}

-			switch(currentIdentifiersLength) {

-				case 1 :

-					// we are in a case A<B>.C<D> or A<B>.C<D>

-					tokens[index - 1] = this.identifierStack[this.identifierPtr];

-					positions[index - 1] = this.identifierPositionStack[this.identifierPtr--];

-					break;

-				default:

-					// we are in a case A.B.C<B>.C<D> or A.B.C<B>...

-					this.identifierPtr -= currentIdentifiersLength;

-					System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, index - currentIdentifiersLength, currentIdentifiersLength);

-					System.arraycopy(this.identifierPositionStack, this.identifierPtr + 1, positions, index - currentIdentifiersLength, currentIdentifiersLength);

-			}

-			index -= currentIdentifiersLength;

-			if (index > 0) {

-				currentIdentifiersLength = this.identifierLengthStack[this.identifierLengthPtr--];

-			}

-		}

-		return new ParameterizedQualifiedTypeReference(tokens, typeArguments, dim, positions);

-	}

-}

-protected NameReference getUnspecifiedReference() {

-	/* build a (unspecified) NameReference which may be qualified*/

-

-	int length;

-	NameReference ref;

-	if ((length = this.identifierLengthStack[this.identifierLengthPtr--]) == 1)

-		// single variable reference

-		ref = 

-			new SingleNameReference(

-				this.identifierStack[this.identifierPtr], 

-				this.identifierPositionStack[this.identifierPtr--]); 

-	else

-		//Qualified variable reference

-		{

-		char[][] tokens = new char[length][];

-		this.identifierPtr -= length;

-		System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-		long[] positions = new long[length];

-		System.arraycopy(this.identifierPositionStack, this.identifierPtr + 1, positions, 0, length);

-		ref = 

-			new QualifiedNameReference(tokens, 

-				positions,

-				(int) (this.identifierPositionStack[this.identifierPtr + 1] >> 32), // sourceStart

-				(int) this.identifierPositionStack[this.identifierPtr + length]); // sourceEnd

-	}

-	return ref;

-}

-protected NameReference getUnspecifiedReferenceOptimized() {

-	/* build a (unspecified) NameReference which may be qualified

-	The optimization occurs for qualified reference while we are

-	certain in this case the last item of the qualified name is

-	a field access. This optimization is IMPORTANT while it results

-	that when a NameReference is build, the type checker should always

-	look for that it is not a type reference */

-

-	int length;

-	NameReference ref;

-	if ((length = this.identifierLengthStack[this.identifierLengthPtr--]) == 1) {

-		// single variable reference

-		ref = 

-			new SingleNameReference(

-				this.identifierStack[this.identifierPtr], 

-				this.identifierPositionStack[this.identifierPtr--]); 

-		ref.bits &= ~ASTNode.RestrictiveFlagMASK;

-		ref.bits |= LOCAL | FIELD;

-		return ref;

-	}

-

-	//Qualified-variable-reference

-	//In fact it is variable-reference DOT field-ref , but it would result in a type

-	//conflict tha can be only reduce by making a superclass (or inetrface ) between

-	//nameReference and FiledReference or putting FieldReference under NameReference

-	//or else..........This optimisation is not really relevant so just leave as it is

-

-	char[][] tokens = new char[length][];

-	this.identifierPtr -= length;

-	System.arraycopy(this.identifierStack, this.identifierPtr + 1, tokens, 0, length);

-	long[] positions = new long[length];

-	System.arraycopy(this.identifierPositionStack, this.identifierPtr + 1, positions, 0, length);

-	ref = new QualifiedNameReference(

-			tokens,

-			positions, 

-			(int) (this.identifierPositionStack[this.identifierPtr + 1] >> 32), // sourceStart

-			(int) this.identifierPositionStack[this.identifierPtr + length]); // sourceEnd

-	ref.bits &= ~ASTNode.RestrictiveFlagMASK;

-	ref.bits |= LOCAL | FIELD;

-	return ref;

-}

-public void goForBlockStatementsopt() {

-	//tells the scanner to go for block statements opt parsing

-

-	this.firstToken = TokenNameTWIDDLE;

-	this.scanner.recordLineSeparator = false;

-}

-public void goForBlockStatementsOrCatchHeader() {

-	//tells the scanner to go for block statements or method headers parsing 

-

-	this.firstToken = TokenNameMULTIPLY;

-	this.scanner.recordLineSeparator = false;

-}

-public void goForClassBodyDeclarations() {

-	//tells the scanner to go for any body declarations parsing

-

-	this.firstToken = TokenNameAND;

-	this.scanner.recordLineSeparator = true;

-}

-public void goForCompilationUnit(){

-	//tells the scanner to go for compilation unit parsing

-

-	this.firstToken = TokenNamePLUS_PLUS ;

-	this.scanner.foundTaskCount = 0;

-	this.scanner.recordLineSeparator = true;

-	this.scanner.currentLine= null;

-}

-public void goForExpression() {

-	//tells the scanner to go for an expression parsing

-

-	this.firstToken = TokenNameREMAINDER;

-	this.scanner.recordLineSeparator = true; // recovery goals must record line separators

-}

-public void goForFieldDeclaration(){

-	//tells the scanner to go for field declaration parsing

-

-	this.firstToken = TokenNameAND_AND ;

-	this.scanner.recordLineSeparator = true;

-}

-public void goForGenericMethodDeclaration(){

-	//tells the scanner to go for generic method declarations parsing

-

-	this.firstToken = TokenNameDIVIDE;

-	this.scanner.recordLineSeparator = true;

-}

-public void goForHeaders(){

-	//tells the scanner to go for headers only parsing

-

-	this.firstToken = TokenNameUNSIGNED_RIGHT_SHIFT;

-	this.scanner.recordLineSeparator = true; // recovery goals must record line separators

-}

-public void goForImportDeclaration(){

-	//tells the scanner to go for import declaration parsing

-

-	this.firstToken = TokenNameOR_OR ;

-	this.scanner.recordLineSeparator = true;

-}

-public void goForInitializer(){

-	//tells the scanner to go for initializer parsing

-

-	this.firstToken = TokenNameRIGHT_SHIFT ;

-	this.scanner.recordLineSeparator = false;

-}

-public void goForMethodBody(){

-	//tells the scanner to go for method body parsing

-

-	this.firstToken = TokenNameMINUS_MINUS ;

-	this.scanner.recordLineSeparator = false;

-}

-public void goForPackageDeclaration() {

-	//tells the scanner to go for package declaration parsing

-

-	this.firstToken = TokenNameQUESTION;

-	this.scanner.recordLineSeparator = true;

-}

-public void goForTypeDeclaration() {

-	//tells the scanner to go for type (interface or class) declaration parsing

-

-	this.firstToken = TokenNamePLUS;

-	this.scanner.recordLineSeparator = true;

-}

-protected void ignoreExpressionAssignment() {

-	// Assignment ::= InvalidArrayInitializerAssignement

-	// encoded operator would be: this.intStack[this.intPtr]

-	this.intPtr--;

-	ArrayInitializer arrayInitializer = (ArrayInitializer) this.expressionStack[this.expressionPtr--];

-	this.expressionLengthPtr -- ;

-	// report a syntax error and abort parsing

-	problemReporter().arrayConstantsOnlyInArrayInitializers(arrayInitializer.sourceStart, arrayInitializer.sourceEnd); 	

-}

-protected void ignoreInterfaceDeclaration() {

-	// BlockStatement ::= InvalidInterfaceDeclaration

-	//InterfaceDeclaration ::= Modifiersopt 'interface' 'Identifier' ExtendsInterfacesopt InterfaceHeader InterfaceBody

-

-	// length declarations

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		//there are length declarations

-		//dispatch according to the type of the declarations

-		dispatchDeclarationInto(length);

-	}

-	

-	flushCommentsDefinedPriorTo(this.endStatementPosition);

-

-	// report the problem and continue parsing

-	TypeDeclaration typeDecl = (TypeDeclaration) this.astStack[this.astPtr];

-	typeDecl.bodyEnd = this.endStatementPosition;

-	problemReporter().cannotDeclareLocalInterface(typeDecl.name, typeDecl.sourceStart, typeDecl.sourceEnd);

-

-	// mark initializers with local type mark if needed

-	markInitializersWithLocalType(typeDecl);

-

-	// remove the ast node created in interface header

-	this.astPtr--;

-	pushOnAstLengthStack(-1);

-	concatNodeLists();

-}

-protected void ignoreInvalidConstructorDeclaration(boolean hasBody) {

-	// InvalidConstructorDeclaration ::= ConstructorHeader ConstructorBody ==> true

-	// InvalidConstructorDeclaration ::= ConstructorHeader ';' ==> false

-

-	/*

-	this.astStack : modifiers arguments throws statements

-	this.identifierStack : name

-	 ==>

-	this.astStack : MethodDeclaration

-	this.identifierStack :

-	*/

-	if (hasBody) {

-		// pop the position of the {  (body of the method) pushed in block decl

-		this.intPtr--;

-	}

-

-	//statements

-	if (hasBody) {

-		this.realBlockPtr--;

-	}

-

-	int length;

-	if (hasBody && ((length = this.astLengthStack[this.astLengthPtr--]) != 0)) {

-		this.astPtr -= length;

-	}

-	ConstructorDeclaration constructorDeclaration = (ConstructorDeclaration) this.astStack[this.astPtr];

-	constructorDeclaration.bodyEnd = this.endStatementPosition;

-	constructorDeclaration.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition);

-	if (!hasBody) {

-		constructorDeclaration.modifiers |= AccSemicolonBody;

-	}

-}

-protected void ignoreMethodBody() {

-	// InterfaceMemberDeclaration ::= InvalidMethodDeclaration

-

-	/*

-	this.astStack : modifiers arguments throws statements

-	this.identifierStack : type name

-	this.intStack : dim dim dim

-	 ==>

-	this.astStack : MethodDeclaration

-	this.identifierStack :

-	this.intStack : 

-	*/

-

-	// pop the position of the {  (body of the method) pushed in block decl

-	this.intPtr--;

-	// retrieve end position of method declarator

-

-	//statements

-	this.realBlockPtr--;

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		this.astPtr -= length;

-	}

-

-	//watch for } that could be given as a unicode ! ( u007D is '}' )

-	MethodDeclaration md = (MethodDeclaration) this.astStack[this.astPtr];

-	md.bodyEnd = this.endPosition;

-	md.declarationSourceEnd = flushCommentsDefinedPriorTo(this.endStatementPosition);

-

-	// report the problem and continue the parsing - narrowing the problem onto the method

-	problemReporter().abstractMethodNeedingNoBody(md);

-}

-public void initialize() {

-	//positionning the parser for a new compilation unit

-	//avoiding stack reallocation and all that....

-	this.astPtr = -1;

-	this.astLengthPtr = -1;

-	this.expressionPtr = -1;

-	this.expressionLengthPtr = -1;

-	this.identifierPtr = -1;	

-	this.identifierLengthPtr	= -1;

-	this.intPtr = -1;

-	this.nestedMethod[this.nestedType = 0] = 0; // need to reset for further reuse

-	this.variablesCounter[this.nestedType] = 0;

-	this.dimensions = 0 ;

-	this.realBlockPtr = -1;

-	this.compilationUnit = null;

-	this.referenceContext = null;

-	this.endStatementPosition = 0;

-

-	//remove objects from stack too, while the same parser/compiler couple is

-	//re-used between two compilations ....

-	

-	int astLength = this.astStack.length;

-	if (this.noAstNodes.length < astLength){

-		this.noAstNodes = new ASTNode[astLength];

-		//System.out.println("Resized AST stacks : "+ astLength);

-		

-	}

-	System.arraycopy(this.noAstNodes, 0, this.astStack, 0, astLength);

-

-	int expressionLength = this.expressionStack.length;

-	if (this.noExpressions.length < expressionLength){

-		this.noExpressions = new Expression[expressionLength];

-		//System.out.println("Resized EXPR stacks : "+ expressionLength);

-	}

-	System.arraycopy(this.noExpressions, 0, this.expressionStack, 0, expressionLength);

-

-	// reset this.scanner state

-	this.scanner.commentPtr = -1;

-	this.scanner.foundTaskCount = 0;

-	this.scanner.eofPosition = Integer.MAX_VALUE;

-	this.scanner.wasNonExternalizedStringLiteral = false;

-	this.scanner.nonNLSStrings = null;

-	this.scanner.currentLine = null;	

-

-	resetModifiers();

-

-	// recovery

-	this.lastCheckPoint = -1;

-	this.currentElement = null;

-	this.restartRecovery = false;

-	this.hasReportedError = false;

-	this.recoveredStaticInitializerStart = 0;

-	this.lastIgnoredToken = -1;

-	this.lastErrorEndPosition = -1;

-	this.lastErrorEndPositionBeforeRecovery = -1;

-	this.listLength = 0;

-	this.listTypeParameterLength = 0;

-	

-	this.rBraceStart = 0;

-	this.rBraceEnd = 0;

-	this.rBraceSuccessorStart = 0;

-

-	this.genericsIdentifiersLengthPtr = -1;

-	this.genericsLengthPtr = -1;

-	this.genericsPtr = -1;

-}

-public void initializeScanner(){

-	this.scanner = new Scanner(

-		false /*comment*/, 

-		false /*whitespace*/, 

-		this.options.getSeverity(CompilerOptions.NonExternalizedString) != ProblemSeverities.Ignore /*nls*/, 

-		this.options.sourceLevel /*sourceLevel*/, 

-		this.options.taskTags/*taskTags*/,

-		this.options.taskPriorites/*taskPriorities*/,

-		this.options.isTaskCaseSensitive/*taskCaseSensitive*/);

-}

-public void jumpOverMethodBody() {

-	//on diet parsing.....do not buffer method statements

-

-	//the scanner.diet is reinitialized to false

-	//automatically by the scanner once it has jumped over

-	//the statements

-

-	if (this.diet && (this.dietInt == 0))

-		this.scanner.diet = true;

-}

-protected void markEnclosingMemberWithLocalType() {

-	if (this.currentElement != null) return; // this is already done in the recovery code

-	for (int i = this.astPtr; i >= 0; i--) {

-		ASTNode node = this.astStack[i];

-		if (node instanceof AbstractMethodDeclaration 

-				|| node instanceof FieldDeclaration

-				|| node instanceof TypeDeclaration) { // mark type for now: all initializers will be marked when added to this type

-			node.bits |= ASTNode.HasLocalTypeMASK;

-			return;

-		}

-	}

-	// default to reference context (case of parse method body)

-	if (this.referenceContext instanceof AbstractMethodDeclaration

-			|| this.referenceContext instanceof TypeDeclaration) {

-		((ASTNode)this.referenceContext).bits |= ASTNode.HasLocalTypeMASK;

-	}

-}

-protected void markInitializersWithLocalType(TypeDeclaration type) {

-	if (type.fields == null || (type.bits & ASTNode.HasLocalTypeMASK) == 0) return;

-	for (int i = 0, length = type.fields.length; i < length; i++) {

-		FieldDeclaration field = type.fields[i];

-		if (field instanceof Initializer) {

-			field.bits |= ASTNode.HasLocalTypeMASK;

-		}

-	}

-}

-/*

- * Move checkpoint location (current implementation is moving it by one token)

- *

- * Answers true if successfully moved checkpoint (in other words, it did not attempt to move it

- * beyond end of file).

- */

-protected boolean moveRecoveryCheckpoint() {

-

-	int pos = this.lastCheckPoint;

-	/* reset this.scanner, and move checkpoint by one token */

-	this.scanner.startPosition = pos;

-	this.scanner.currentPosition = pos;

-	this.scanner.diet = false; // quit jumping over method bodies

-	

-	/* if about to restart, then no need to shift token */

-	if (this.restartRecovery){

-		this.lastIgnoredToken = -1;

-		this.scanner.currentLine = null;

-		return true;

-	}

-	

-	/* protect against shifting on an invalid token */

-	this.lastIgnoredToken = this.nextIgnoredToken;

-	this.nextIgnoredToken = -1;

-	do {

-		try {

-			this.nextIgnoredToken = this.scanner.getNextToken();

-			if(this.scanner.currentPosition == this.scanner.startPosition){

-				this.scanner.currentPosition++; // on fake completion identifier

-				this.nextIgnoredToken = -1;

-			}

-			

-		} catch(InvalidInputException e){

-			pos = this.scanner.currentPosition;

-		}

-	} while (this.nextIgnoredToken < 0);

-	

-	if (this.nextIgnoredToken == TokenNameEOF) { // no more recovery after this point

-		if (this.currentToken == TokenNameEOF) { // already tried one iteration on EOF

-			this.scanner.currentLine = null;

-			return false;

-		}

-	}

-	this.lastCheckPoint = this.scanner.currentPosition;

-	

-	/* reset this.scanner again to previous checkpoint location*/

-	this.scanner.startPosition = pos;

-	this.scanner.currentPosition = pos;

-	this.scanner.commentPtr = -1;

-	this.scanner.foundTaskCount = 0;

-	this.scanner.currentLine = null;

-

-	return true;

-

-/*

- 	The following implementation moves the checkpoint location by one line:

-	 

-	int pos = this.lastCheckPoint;

-	// reset this.scanner, and move checkpoint by one token

-	this.scanner.startPosition = pos;

-	this.scanner.currentPosition = pos;

-	this.scanner.diet = false; // quit jumping over method bodies

-	

-	// if about to restart, then no need to shift token

-	if (this.restartRecovery){

-		this.lastIgnoredToken = -1;

-		return true;

-	}

-	

-	// protect against shifting on an invalid token

-	this.lastIgnoredToken = this.nextIgnoredToken;

-	this.nextIgnoredToken = -1;

-	

-	boolean wasTokenizingWhiteSpace = this.scanner.tokenizeWhiteSpace;

-	this.scanner.tokenizeWhiteSpace = true;

-	checkpointMove: 

-		do {

-			try {

-				this.nextIgnoredToken = this.scanner.getNextToken();

-				switch(this.nextIgnoredToken){

-					case Scanner.TokenNameWHITESPACE :

-						if(this.scanner.getLineNumber(this.scanner.startPosition)

-							== this.scanner.getLineNumber(this.scanner.currentPosition)){

-							this.nextIgnoredToken = -1;

-							}

-						break;

-					case TokenNameSEMICOLON :

-					case TokenNameLBRACE :

-					case TokenNameRBRACE :

-						break;

-					case TokenNameIdentifier :

-						if(this.scanner.currentPosition == this.scanner.startPosition){

-							this.scanner.currentPosition++; // on fake completion identifier

-						}

-					default:						

-						this.nextIgnoredToken = -1;

-						break;

-					case TokenNameEOF :

-						break checkpointMove;

-				}

-			} catch(InvalidInputException e){

-				pos = this.scanner.currentPosition;

-			}

-		} while (this.nextIgnoredToken < 0);

-	this.scanner.tokenizeWhiteSpace = wasTokenizingWhiteSpace;

-	

-	if (this.nextIgnoredToken == TokenNameEOF) { // no more recovery after this point

-		if (this.currentToken == TokenNameEOF) { // already tried one iteration on EOF

-			return false;

-		}

-	}

-	this.lastCheckPoint = this.scanner.currentPosition;

-	

-	// reset this.scanner again to previous checkpoint location

-	this.scanner.startPosition = pos;

-	this.scanner.currentPosition = pos;

-	this.scanner.commentPtr = -1;

-

-	return true;

-*/

-}

-protected MessageSend newMessageSend() {

-	// '(' ArgumentListopt ')'

-	// the arguments are on the expression stack

-

-	MessageSend m = new MessageSend();

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		this.expressionPtr -= length;

-		System.arraycopy(

-			this.expressionStack, 

-			this.expressionPtr + 1, 

-			m.arguments = new Expression[length], 

-			0, 

-			length); 

-	}

-	return m;

-}

-protected MessageSend newMessageSendWithTypeArguments() {

-	MessageSend m = new MessageSend();

-	int length;

-	if ((length = this.expressionLengthStack[this.expressionLengthPtr--]) != 0) {

-		this.expressionPtr -= length;

-		System.arraycopy(

-			this.expressionStack, 

-			this.expressionPtr + 1, 

-			m.arguments = new Expression[length], 

-			0, 

-			length); 

-	}

-	return m;

-}

-protected void optimizedConcatNodeLists() {

-	/*back from a recursive loop. Virtualy group the

-	astNode into an array using this.astLengthStack*/

-

-	/*

-	 * This is a case where you have two sublists into the this.astStack that you want

-	 * to merge in one list. There is no action required on the this.astStack. The only

-	 * thing you need to do is merge the two lengths specified on the astStackLength.

-	 * The top two length are for example:

-	 * ... p   n

-	 * and you want to result in a list like:

-	 * ... n+p 

-	 * This means that the p could be equals to 0 in case there is no astNode pushed

-	 * on the this.astStack.

-	 * Look at the InterfaceMemberDeclarations for an example.

-	 * This case optimizes the fact that p == 1.

-	 */

-

-	this.astLengthStack[--this.astLengthPtr]++;

-}

-/*main loop of the automat

-When a rule is reduced, the method consumeRule(int) is called with the number

-of the consumed rule. When a terminal is consumed, the method consumeToken(int) is 

-called in order to remember (when needed) the consumed token */

-// (int)asr[asi(act)]

-// name[symbol_index[currentKind]]

-protected void parse() {

-	if (DEBUG) System.out.println("-- ENTER INSIDE PARSE METHOD --");  //$NON-NLS-1$

-	boolean isDietParse = this.diet;

-	int oldFirstToken = getFirstToken();

-	this.hasError = false;

-	

-	this.hasReportedError = false;

-	int act = START_STATE;

-	this.stateStackTop = -1;

-	this.currentToken = getFirstToken();

-	ProcessTerminals : for (;;) {

-		int stackLength = this.stack.length;

-		if (++this.stateStackTop >= stackLength) {

-			System.arraycopy(

-				this.stack, 0,

-				this.stack = new int[stackLength + StackIncrement], 0,

-				stackLength);

-		}

-		this.stack[this.stateStackTop] = act;

-

-		act = tAction(act, this.currentToken);

-		if (act == ERROR_ACTION || this.restartRecovery) {

-			int errorPos = this.scanner.currentPosition;

-			if (!this.hasReportedError) {

-				this.hasError = true;

-			}

-			if (resumeOnSyntaxError()) {

-				if (act == ERROR_ACTION) this.lastErrorEndPosition = errorPos;

-				act = START_STATE;

-				this.stateStackTop = -1;

-				this.currentToken = getFirstToken();

-				continue ProcessTerminals;

-			}

-			act = ERROR_ACTION;

-			break ProcessTerminals;

-		}

-		if (act <= NUM_RULES) {

-			this.stateStackTop--;

-

-		} else if (act > ERROR_ACTION) { /* shift-reduce */

-			consumeToken(this.currentToken);

-			if (this.currentElement != null) this.recoveryTokenCheck();

-			try {

-				this.currentToken = this.scanner.getNextToken();

-			} catch(InvalidInputException e){

-				if (!this.hasReportedError){

-					this.problemReporter().scannerError(this, e.getMessage());

-					this.hasReportedError = true;

-				}

-				this.lastCheckPoint = this.scanner.currentPosition;

-				this.restartRecovery = true;

-			}					

-			act -= ERROR_ACTION;

-			

-		} else {

-		    if (act < ACCEPT_ACTION) { /* shift */

-				consumeToken(this.currentToken);

-				if (this.currentElement != null) this.recoveryTokenCheck();

-				try{

-					this.currentToken = this.scanner.getNextToken();

-				} catch(InvalidInputException e){

-					if (!this.hasReportedError){

-						this.problemReporter().scannerError(this, e.getMessage());

-						this.hasReportedError = true;

-					}

-					this.lastCheckPoint = this.scanner.currentPosition;

-					this.restartRecovery = true;

-				}					

-				continue ProcessTerminals;

-			}

-			break ProcessTerminals;

-		}

-			

-		ProcessNonTerminals : do { /* reduce */

-			consumeRule(act);

-			this.stateStackTop -= (rhs[act] - 1);

-			act = ntAction(this.stack[this.stateStackTop], lhs[act]);

-		} while (act <= NUM_RULES);

-	}

-	endParse(act);

-	

-	if (this.reportSyntaxErrorIsRequired && this.hasError) {

-		reportSyntaxErrors(isDietParse, oldFirstToken);

-	}

-	if (DEBUG) System.out.println("-- EXIT FROM PARSE METHOD --");  //$NON-NLS-1$

-}

-public void parse(ConstructorDeclaration cd, CompilationUnitDeclaration unit) {

-	parse(cd, unit, false);

-}

-public void parse(ConstructorDeclaration cd, CompilationUnitDeclaration unit, boolean recordLineSeparator) {

-	//only parse the method body of cd

-	//fill out its statements

-

-	//convert bugs into parse error

-

-	initialize();

-	goForBlockStatementsopt();

-	if (recordLineSeparator) {

-		this.scanner.recordLineSeparator = true;

-	}

-	this.nestedMethod[this.nestedType]++;

-	pushOnRealBlockStack(0);

-	

-	this.referenceContext = cd;

-	this.compilationUnit = unit;

-

-	this.scanner.resetTo(cd.bodyStart, cd.bodyEnd);

-	try {

-		parse();

-	} catch (AbortCompilation ex) {

-		this.lastAct = ERROR_ACTION;

-	} finally {

-		this.nestedMethod[this.nestedType]--;

-	}

-

-	checkNonNLSAfterBodyEnd(cd.declarationSourceEnd);

-	

-	if (this.lastAct == ERROR_ACTION) {

-		initialize();

-		return;

-	}

-

-	//statements

-	cd.explicitDeclarations = this.realBlockStack[this.realBlockPtr--];

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		this.astPtr -= length;

-		if (this.astStack[this.astPtr + 1] instanceof ExplicitConstructorCall)

-			//avoid a isSomeThing that would only be used here BUT what is faster between two alternatives ?

-			{

-			System.arraycopy(

-				this.astStack, 

-				this.astPtr + 2, 

-				cd.statements = new Statement[length - 1], 

-				0, 

-				length - 1); 

-			cd.constructorCall = (ExplicitConstructorCall) this.astStack[this.astPtr + 1];

-		} else { //need to add explicitly the super();

-			System.arraycopy(

-				this.astStack, 

-				this.astPtr + 1, 

-				cd.statements = new Statement[length], 

-				0, 

-				length); 

-			cd.constructorCall = SuperReference.implicitSuperConstructorCall();

-		}

-	} else {

-		cd.constructorCall = SuperReference.implicitSuperConstructorCall();

-		if (!containsComment(cd.bodyStart, cd.bodyEnd)) {

-			cd.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-		}		

-	}

-

-	if (cd.constructorCall.sourceEnd == 0) {

-		cd.constructorCall.sourceEnd = cd.sourceEnd;

-		cd.constructorCall.sourceStart = cd.sourceStart;

-	}

-}

-// A P I

-

-public void parse(

-	FieldDeclaration field, 

-	TypeDeclaration type, 

-	CompilationUnitDeclaration unit,

-	char[] initializationSource) {

-	//only parse the initializationSource of the given field

-

-	//convert bugs into parse error

-

-	initialize();

-	goForExpression();

-	this.nestedMethod[this.nestedType]++;

-

-	this.referenceContext = type;

-	this.compilationUnit = unit;

-

-	this.scanner.setSource(initializationSource);

-	this.scanner.resetTo(0, initializationSource.length-1);

-	try {

-		parse();

-	} catch (AbortCompilation ex) {

-		this.lastAct = ERROR_ACTION;

-	} finally {

-		this.nestedMethod[this.nestedType]--;

-	}

-

-	if (this.lastAct == ERROR_ACTION) {

-		return;

-	}

-

-	field.initialization = this.expressionStack[this.expressionPtr];

-	

-	// mark field with local type if one was found during parsing

-	if ((type.bits & ASTNode.HasLocalTypeMASK) != 0) {

-		field.bits |= ASTNode.HasLocalTypeMASK;

-	}	

-}

-// A P I

-

-public CompilationUnitDeclaration parse(

-	ICompilationUnit sourceUnit, 

-	CompilationResult compilationResult) {

-	// parses a compilation unit and manages error handling (even bugs....)

-

-	return parse(sourceUnit, compilationResult, -1, -1/*parse without reseting the scanner*/);

-}

-// A P I

-

-public CompilationUnitDeclaration parse(

-	ICompilationUnit sourceUnit, 

-	CompilationResult compilationResult,

-	int start,

-	int end) {

-	// parses a compilation unit and manages error handling (even bugs....)

-

-	CompilationUnitDeclaration unit;

-	try {

-		/* automaton initialization */

-		initialize();

-		goForCompilationUnit();

-

-		/* scanners initialization */

-		char[] contents = sourceUnit.getContents();

-		this.scanner.setSource(contents);

-		if (end != -1) this.scanner.resetTo(start, end);

-		if (this.javadocParser != null && this.javadocParser.checkDocComment) {

-			this.javadocParser.scanner.setSource(contents);

-			if (end != -1) {

-				this.javadocParser.scanner.resetTo(start, end);

-			}

-		}

-		/* unit creation */

-		this.referenceContext = 

-			this.compilationUnit = 

-				new CompilationUnitDeclaration(

-					this.problemReporter, 

-					compilationResult, 

-					this.scanner.source.length);

-		/* run automaton */

-		parse();

-	} finally {

-		unit = this.compilationUnit;

-		this.compilationUnit = null; // reset parser

-		// tag unit has having read bodies

-		if (!this.diet) unit.bits |= ASTNode.HasAllMethodBodies;		

-	}

-	return unit;

-}

-// A P I

-

-public void parse(

-	Initializer initializer, 

-	TypeDeclaration type, 

-	CompilationUnitDeclaration unit) {

-	//only parse the method body of md

-	//fill out method statements

-

-	//convert bugs into parse error

-

-	initialize();

-	goForBlockStatementsopt();

-	this.nestedMethod[this.nestedType]++;

-	pushOnRealBlockStack(0);

-	

-	this.referenceContext = type;

-	this.compilationUnit = unit;

-

-	this.scanner.resetTo(initializer.bodyStart, initializer.bodyEnd); // just on the beginning {

-	try {

-		parse();

-	} catch (AbortCompilation ex) {

-		this.lastAct = ERROR_ACTION;

-	} finally {

-		this.nestedMethod[this.nestedType]--;

-	}

-

-	checkNonNLSAfterBodyEnd(initializer.declarationSourceEnd);

-	

-	if (this.lastAct == ERROR_ACTION) {

-		return;

-	}

-	

-	//refill statements

-	initializer.block.explicitDeclarations = this.realBlockStack[this.realBlockPtr--];

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) > 0) {

-		System.arraycopy(this.astStack, (this.astPtr -= length) + 1, initializer.block.statements = new Statement[length], 0, length); 

-	} else {

-		// check whether this block at least contains some comment in it

-		if (!containsComment(initializer.block.sourceStart, initializer.block.sourceEnd)) {

-			initializer.block.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-		}

-	}

-	

-	// mark initializer with local type if one was found during parsing

-	if ((type.bits & ASTNode.HasLocalTypeMASK) != 0) {

-		initializer.bits |= ASTNode.HasLocalTypeMASK;

-	}	

-}

-// A P I

-

-public void parse(MethodDeclaration md, CompilationUnitDeclaration unit) {

-	//only parse the method body of md

-	//fill out method statements

-

-	//convert bugs into parse error

-

-	if (md.isAbstract())

-		return;

-	if (md.isNative())

-		return;

-	if ((md.modifiers & AccSemicolonBody) != 0)

-		return;

-

-	initialize();

-	goForBlockStatementsopt();

-	this.nestedMethod[this.nestedType]++;

-	pushOnRealBlockStack(0);

-

-	this.referenceContext = md;

-	this.compilationUnit = unit;

-

-	this.scanner.resetTo(md.bodyStart, md.bodyEnd);

-	// reset the scanner to parser from { down to }

-	try {

-		parse();

-	} catch (AbortCompilation ex) {

-		this.lastAct = ERROR_ACTION;

-	} finally {

-		this.nestedMethod[this.nestedType]--;		

-	}

-

-	checkNonNLSAfterBodyEnd(md.declarationSourceEnd);

-	

-	if (this.lastAct == ERROR_ACTION) {

-		return;

-	}

-

-	//refill statements

-	md.explicitDeclarations = this.realBlockStack[this.realBlockPtr--];

-	int length;

-	if ((length = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		System.arraycopy(

-			this.astStack, 

-			(this.astPtr -= length) + 1, 

-			md.statements = new Statement[length], 

-			0, 

-			length); 

-	} else {

-		if (!containsComment(md.bodyStart, md.bodyEnd)) {

-			md.bits |= ASTNode.UndocumentedEmptyBlockMASK;

-		}

-	}

-}

-public ASTNode[] parseClassBodyDeclarations(char[] source, int offset, int length, CompilationUnitDeclaration unit) {

-	/* automaton initialization */

-	initialize();

-	goForClassBodyDeclarations();

-	/* scanner initialization */

-	this.scanner.setSource(source);

-	this.scanner.resetTo(offset, offset + length - 1);

-	if (this.javadocParser != null && this.javadocParser.checkDocComment) {

-		this.javadocParser.scanner.setSource(source);

-		this.javadocParser.scanner.resetTo(offset, offset + length - 1);

-	}

-

-	/* type declaration should be parsed as member type declaration */	

-	this.nestedType = 1;

-

-	/* unit creation */

-	this.referenceContext = unit;

-	this.compilationUnit = unit;

-

-	/* run automaton */

-	try {

-		parse();

-	} catch (AbortCompilation ex) {

-		this.lastAct = ERROR_ACTION;

-	}

-

-	if (this.lastAct == ERROR_ACTION) {

-		return null;

-	}

-	int astLength;

-	if ((astLength = this.astLengthStack[this.astLengthPtr--]) != 0) {

-		ASTNode[] result = new ASTNode[astLength];

-		this.astPtr -= astLength;

-		System.arraycopy(this.astStack, this.astPtr + 1, result, 0, astLength);

-		return result;

-	}

-	return null;

-}

-public Expression parseExpression(char[] source, int offset, int length, CompilationUnitDeclaration unit) {

-

-	initialize();

-	goForExpression();

-	this.nestedMethod[this.nestedType]++;

-

-	this.referenceContext = unit;

-	this.compilationUnit = unit;

-

-	this.scanner.setSource(source);

-	this.scanner.resetTo(offset, offset + length - 1);

-	try {

-		parse();

-	} catch (AbortCompilation ex) {

-		this.lastAct = ERROR_ACTION;

-	} finally {

-		this.nestedMethod[this.nestedType]--;

-	}

-

-	if (this.lastAct == ERROR_ACTION) {

-		return null;

-	}

-

-	return this.expressionStack[this.expressionPtr];

-}

-public void persistLineSeparatorPositions() {

-	if (this.scanner.recordLineSeparator) {

-		this.compilationUnit.compilationResult.lineSeparatorPositions = this.scanner.getLineEnds();

-	}

-}

-/**

- * Returns this parser's problem reporter initialized with its reference context.

- * Also it is assumed that a problem is going to be reported, so initializes

- * the compilation result's line positions.

- * 

- * @return ProblemReporter

- */

-public ProblemReporter problemReporter(){

-	if (this.scanner.recordLineSeparator) {

-		this.compilationUnit.compilationResult.lineSeparatorPositions = this.scanner.getLineEnds();

-	}

-	this.problemReporter.referenceContext = this.referenceContext;

-	return this.problemReporter;

-}

-protected void pushIdentifier() {

-	/*push the consumeToken on the identifier stack.

-	Increase the total number of identifier in the stack.

-	identifierPtr points on the next top */

-

-	int stackLength = this.identifierStack.length;

-	if (++this.identifierPtr >= stackLength) {

-		System.arraycopy(

-			this.identifierStack, 0,

-			this.identifierStack = new char[stackLength + 20][], 0,

-			stackLength);

-		System.arraycopy(

-			this.identifierPositionStack, 0,

-			this.identifierPositionStack = new long[stackLength + 20], 0,

-			stackLength);

-	}

-	this.identifierStack[this.identifierPtr] = this.scanner.getCurrentIdentifierSource();

-	this.identifierPositionStack[this.identifierPtr] =

-		(((long) this.scanner.startPosition) << 32) + (this.scanner.currentPosition - 1); 

-

-	stackLength = this.identifierLengthStack.length;

-	if (++this.identifierLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.identifierLengthStack, 0,

-			this.identifierLengthStack = new int[stackLength + 10], 0,

-			stackLength);

-	}

-	this.identifierLengthStack[this.identifierLengthPtr] = 1;

-}

-protected void pushIdentifier(int flag) {

-	/*push a special flag on the stack :

-	-zero stands for optional Name

-	-negative number for direct ref to base types.

-	identifierLengthPtr points on the top */

-

-	int stackLength = this.identifierLengthStack.length;

-	if (++this.identifierLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.identifierLengthStack, 0,

-			this.identifierLengthStack = new int[stackLength + 10], 0,

-			stackLength);

-	}

-	this.identifierLengthStack[this.identifierLengthPtr] = flag;

-}

-protected void pushOnAstLengthStack(int pos) {

-

-	int stackLength = this.astLengthStack.length;

-	if (++this.astLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.astLengthStack, 0,

-			this.astLengthStack = new int[stackLength + StackIncrement], 0,

-			stackLength);

-	}

-	this.astLengthStack[this.astLengthPtr] = pos;

-}

-protected void pushOnAstStack(ASTNode node) {

-	/*add a new obj on top of the ast stack

-	astPtr points on the top*/

-

-	int stackLength = this.astStack.length;

-	if (++this.astPtr >= stackLength) {

-		System.arraycopy(

-			this.astStack, 0,

-			this.astStack = new ASTNode[stackLength + AstStackIncrement], 0,

-			stackLength);

-		this.astPtr = stackLength;

-	}

-	this.astStack[this.astPtr] = node;

-

-	stackLength = this.astLengthStack.length;

-	if (++this.astLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.astLengthStack, 0,

-			this.astLengthStack = new int[stackLength + AstStackIncrement], 0,

-			stackLength);

-	}

-	this.astLengthStack[this.astLengthPtr] = 1;

-}

-protected void pushOnExpressionStack(Expression expr) {

-

-	int stackLength = this.expressionStack.length;

-	if (++this.expressionPtr >= stackLength) {

-		System.arraycopy(

-			this.expressionStack, 0,

-			this.expressionStack = new Expression[stackLength + ExpressionStackIncrement], 0,

-			stackLength);

-	}

-	this.expressionStack[this.expressionPtr] = expr;

-

-	stackLength = this.expressionLengthStack.length;

-	if (++this.expressionLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.expressionLengthStack, 0,

-			this.expressionLengthStack = new int[stackLength + ExpressionStackIncrement], 0,

-			stackLength);

-	}

-	this.expressionLengthStack[this.expressionLengthPtr] = 1;

-}

-protected void pushOnExpressionStackLengthStack(int pos) {

-

-	int stackLength = this.expressionLengthStack.length;

-	if (++this.expressionLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.expressionLengthStack, 0,

-			this.expressionLengthStack = new int[stackLength + StackIncrement], 0,

-			stackLength);

-	}

-	this.expressionLengthStack[this.expressionLengthPtr] = pos;

-}

-protected void pushOnGenericsStack(ASTNode node) {

-	/*add a new obj on top of the generics stack

-	genericsPtr points on the top*/

-

-	int stackLength = this.genericsStack.length;

-	if (++this.genericsPtr >= stackLength) {

-		System.arraycopy(

-			this.genericsStack, 0,

-			this.genericsStack = new ASTNode[stackLength + GenericsStackIncrement], 0,

-			stackLength);

-	}

-	this.genericsStack[this.genericsPtr] = node;

-

-	stackLength = this.genericsLengthStack.length;

-	if (++this.genericsLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.genericsLengthStack, 0,

-			this.genericsLengthStack = new int[stackLength + GenericsStackIncrement], 0,

-			stackLength);

-	}

-	this.genericsLengthStack[this.genericsLengthPtr] = 1;

-}

-protected void pushOnGenericsIdentifiersLengthStack(int pos) {

-	int stackLength = this.genericsIdentifiersLengthStack.length;

-	if (++this.genericsIdentifiersLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.genericsIdentifiersLengthStack, 0,

-			this.genericsIdentifiersLengthStack = new int[stackLength + GenericsStackIncrement], 0,

-			stackLength);

-	}

-	this.genericsIdentifiersLengthStack[this.genericsIdentifiersLengthPtr] = pos;

-}

-protected void pushOnGenericsLengthStack(int pos) {

-	int stackLength = this.genericsLengthStack.length;

-	if (++this.genericsLengthPtr >= stackLength) {

-		System.arraycopy(

-			this.genericsLengthStack, 0,

-			this.genericsLengthStack = new int[stackLength + GenericsStackIncrement], 0,

-			stackLength);

-	}

-	this.genericsLengthStack[this.genericsLengthPtr] = pos;

-}

-protected void pushOnIntStack(int pos) {

-

-	int stackLength = this.intStack.length;

-	if (++this.intPtr >= stackLength) {

-		System.arraycopy(

-			this.intStack, 0,

-			this.intStack = new int[stackLength + StackIncrement], 0,

-			stackLength);

-	}

-	this.intStack[this.intPtr] = pos;

-}

-protected void pushOnRealBlockStack(int i){

-	

-	int stackLength = this.realBlockStack.length;

-	if (++this.realBlockPtr >= stackLength) {

-		System.arraycopy(

-			this.realBlockStack, 0,

-			this.realBlockStack = new int[stackLength + StackIncrement], 0,

-			stackLength);

-	}

-	this.realBlockStack[this.realBlockPtr] = i;

-}

-public void recoveryExitFromVariable() {

-	if(this.currentElement != null && this.currentElement.parent != null) {

-		if(this.currentElement instanceof RecoveredLocalVariable) {

-			

-			int end = ((RecoveredLocalVariable)this.currentElement).localDeclaration.sourceEnd;

-			this.currentElement.updateSourceEndIfNecessary(end);

-			this.currentElement = this.currentElement.parent;

-		} else if(this.currentElement instanceof RecoveredField

-			&& !(this.currentElement instanceof RecoveredInitializer)) {

-				

-			int end = ((RecoveredField)this.currentElement).fieldDeclaration.sourceEnd;

-			this.currentElement.updateSourceEndIfNecessary(end);

-			this.currentElement = this.currentElement.parent;

-		}

-	}

-}

-/* Token check performed on every token shift once having entered

- * recovery mode.

- */

-public void recoveryTokenCheck() {

-	switch (this.currentToken) {

-		case TokenNameLBRACE : 

-			RecoveredElement newElement = null;

-			if(!this.ignoreNextOpeningBrace) {

-				newElement = this.currentElement.updateOnOpeningBrace(this.scanner.startPosition - 1, this.scanner.currentPosition - 1);

-			}

-			this.lastCheckPoint = this.scanner.currentPosition;				

-			if (newElement != null){ // null means nothing happened

-				this.restartRecovery = true; // opening brace detected

-				this.currentElement = newElement;

-			}

-			break;

-		

-		case TokenNameRBRACE : 

-			this.rBraceStart = this.scanner.startPosition - 1;

-			this.rBraceEnd = this.scanner.currentPosition - 1;

-			this.endPosition = this.flushCommentsDefinedPriorTo(this.rBraceEnd);

-			newElement =

-				this.currentElement.updateOnClosingBrace(this.scanner.startPosition, this.rBraceEnd);

-				this.lastCheckPoint = this.scanner.currentPosition;

-			if (newElement != this.currentElement){

-				this.currentElement = newElement;

-			}

-			break;

-		case TokenNameSEMICOLON :

-			this.endStatementPosition = this.scanner.currentPosition - 1;

-			this.endPosition = this.scanner.startPosition - 1; 

-			// fall through

-		default : {

-			if (this.rBraceEnd > this.rBraceSuccessorStart && this.scanner.currentPosition != this.scanner.startPosition){

-				this.rBraceSuccessorStart = this.scanner.startPosition;

-			}

-			break;

-		}

-	}

-	this.ignoreNextOpeningBrace = false;

-}

-// A P I

-protected void reportSyntaxErrors(boolean isDietParse, int oldFirstToken) {

-	if(this.referenceContext instanceof MethodDeclaration) {

-		MethodDeclaration methodDeclaration = (MethodDeclaration) this.referenceContext;

-		if(methodDeclaration.errorInSignature){

-			return;

-		}

-	}

-	this.compilationUnit.compilationResult.lineSeparatorPositions = this.scanner.getLineEnds();

-	this.scanner.recordLineSeparator = false;

-	

-	int start = this.scanner.initialPosition;

-	int end = this.scanner.eofPosition <= Integer.MAX_VALUE ? this.scanner.eofPosition - 1 : this.scanner.eofPosition;

-	if(isDietParse) {

-		TypeDeclaration[] types = this.compilationUnit.types;

-		

-		int[][] intervalToSkip = org.eclipse.wst.jsdt.internal.compiler.parser.diagnose.RangeUtil.computeDietRange(types);

-		DiagnoseParser diagnoseParser = new DiagnoseParser(this, oldFirstToken, start, end, intervalToSkip[0], intervalToSkip[1], intervalToSkip[2], this.options);

-		diagnoseParser.diagnoseParse();

-		

-		reportSyntaxErrorsForSkippedMethod(types);

-		this.scanner.resetTo(start, end);

-	} else {

-		DiagnoseParser diagnoseParser = new DiagnoseParser(this, oldFirstToken, start, end, this.options);

-		diagnoseParser.diagnoseParse();

-	}

-}

-private void reportSyntaxErrorsForSkippedMethod(TypeDeclaration[] types){

-	if(types != null) {

-		for (int i = 0; i < types.length; i++) {

-			TypeDeclaration[] memberTypes = types[i].memberTypes;

-			if(memberTypes != null) {

-				reportSyntaxErrorsForSkippedMethod(memberTypes);

-			}

-			

-			AbstractMethodDeclaration[] methods = types[i].methods;

-			if(methods != null) {

-				for (int j = 0; j < methods.length; j++) {

-					AbstractMethodDeclaration method = methods[j];

-					if(methods[j].errorInSignature) {

-						DiagnoseParser diagnoseParser = new DiagnoseParser(this, TokenNameDIVIDE, method.declarationSourceStart, method.declarationSourceEnd, this.options);

-						diagnoseParser.diagnoseParse();

-					}

-				}

-			}

-			

-			FieldDeclaration[] fields = types[i].fields;

-			if (fields != null) {

-				int length = fields.length;

-				for (int j = 0; j < length; j++) {

-					if (fields[j] instanceof Initializer) {

-						Initializer initializer = (Initializer)fields[j];

-						if(initializer.errorInSignature){

-							DiagnoseParser diagnoseParser = new DiagnoseParser(this, TokenNameRIGHT_SHIFT, initializer.declarationSourceStart, initializer.declarationSourceEnd, this.options);

-							diagnoseParser.diagnoseParse();

-						}

-					}

-				}

-			}

-		}

-	}

-}

-protected void resetModifiers() {

-	this.modifiers = AccDefault;

-	this.modifiersSourceStart = -1; // <-- see comment into modifiersFlag(int)

-	this.scanner.commentPtr = -1;

-}

-/*

- * Reset context so as to resume to regular parse loop

- */

-protected void resetStacks() {

-

-	this.astPtr = -1;

-	this.astLengthPtr = -1;

-	this.expressionPtr = -1;

-	this.expressionLengthPtr = -1;

-	this.identifierPtr = -1;	

-	this.identifierLengthPtr	= -1;

-	this.intPtr = -1;

-	this.nestedMethod[this.nestedType = 0] = 0; // need to reset for further reuse

-	this.variablesCounter[this.nestedType] = 0;

-	this.dimensions = 0 ;

-	this.realBlockStack[this.realBlockPtr = 0] = 0;

-	this.recoveredStaticInitializerStart = 0;

-	this.listLength = 0;

-	this.listTypeParameterLength = 0;

-	// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=29365

-	if (this.scanner != null) this.scanner.currentLine = null;

-	

-	this.genericsIdentifiersLengthPtr = -1;

-	this.genericsLengthPtr = -1;

-	this.genericsPtr = -1;

-}

-/*

- * Reset context so as to resume to regular parse loop

- * If unable to reset for resuming, answers false.

- *

- * Move checkpoint location, reset internal stacks and

- * decide which grammar goal is activated.

- */

-protected boolean resumeAfterRecovery() {

-

-	// Reset javadoc before restart parsing after recovery

-	this.javadoc = null;

-

-	// reset internal stacks 

-	this.resetStacks();

-	

-	/* attempt to move checkpoint location */

-	if (!this.moveRecoveryCheckpoint()) {

-		return false;

-	}

-

-	// only look for headers

-	if (this.referenceContext instanceof CompilationUnitDeclaration){

-		goForHeaders();

-		this.diet = true; // passed this point, will not consider method bodies

-		return true;

-	}

-	// does not know how to restart

-	return false;

-}

-/*

- * Syntax error was detected. Will attempt to perform some recovery action in order

- * to resume to the regular parse loop.

- */

-protected boolean resumeOnSyntaxError() {

-

-	/* request recovery initialization */

-	if (this.currentElement == null){

-		this.currentElement = 

-			this.buildInitialRecoveryState(); // build some recovered elements

-	}

-	/* do not investigate deeper in recovery when no recovered element */

-	if (this.currentElement == null) return false;

-	

-	/* manual forced recovery restart - after headers */

-	if (this.restartRecovery){

-		this.restartRecovery = false;

-	}

-	/* update recovery state with current error state of the parser */

-	this.updateRecoveryState();

-	

-	/* attempt to reset state in order to resume to parse loop */

-	return this.resumeAfterRecovery();

-}

-public String toString() {

-

-	String s = "identifierStack : char["+(this.identifierPtr + 1)+"][] = {"; //$NON-NLS-1$ //$NON-NLS-2$

-	for (int i = 0; i <= this.identifierPtr; i++) {

-		s = s + "\"" + String.valueOf(this.identifierStack[i]) + "\","; //$NON-NLS-1$ //$NON-NLS-2$

-	}

-	s = s + "}\n"; //$NON-NLS-1$

-

-	s = s + "identifierLengthStack : int["+(this.identifierLengthPtr + 1)+"] = {"; //$NON-NLS-1$ //$NON-NLS-2$

-	for (int i = 0; i <= this.identifierLengthPtr; i++) {

-		s = s + this.identifierLengthStack[i] + ","; //$NON-NLS-1$

-	}

-	s = s + "}\n"; //$NON-NLS-1$

-

-	s = s + "astLengthStack : int["+(this.astLengthPtr + 1)+"] = {"; //$NON-NLS-1$ //$NON-NLS-2$

-	for (int i = 0; i <= this.astLengthPtr; i++) {

-		s = s + this.astLengthStack[i] + ","; //$NON-NLS-1$

-	}

-	s = s + "}\n"; //$NON-NLS-1$

-	s = s + "astPtr : int = " + String.valueOf(this.astPtr) + "\n"; //$NON-NLS-1$ //$NON-NLS-2$

-

-	s = s + "intStack : int["+(this.intPtr + 1)+"] = {"; //$NON-NLS-1$ //$NON-NLS-2$

-	for (int i = 0; i <= this.intPtr; i++) {

-		s = s + this.intStack[i] + ","; //$NON-NLS-1$

-	}

-	s = s + "}\n"; //$NON-NLS-1$

-

-	s = s + "expressionLengthStack : int["+(this.expressionLengthPtr + 1)+"] = {"; //$NON-NLS-1$ //$NON-NLS-2$

-	for (int i = 0; i <= this.expressionLengthPtr; i++) {

-		s = s + this.expressionLengthStack[i] + ","; //$NON-NLS-1$

-	}

-	s = s + "}\n"; //$NON-NLS-1$

-

-	s = s + "expressionPtr : int = " + String.valueOf(this.expressionPtr) + "\n"; //$NON-NLS-1$ //$NON-NLS-2$

-	

-	s = s + "genericsIdentifiersLengthStack : int["+(this.genericsIdentifiersLengthPtr + 1)+"] = {"; //$NON-NLS-1$ //$NON-NLS-2$

-	for (int i = 0; i <= this.genericsIdentifiersLengthPtr; i++) {

-		s = s + this.genericsIdentifiersLengthStack[i] + ","; //$NON-NLS-1$

-	}

-	s = s + "}\n"; //$NON-NLS-1$

-	

-	s = s + "genericsLengthStack : int["+(this.genericsLengthPtr + 1)+"] = {"; //$NON-NLS-1$ //$NON-NLS-2$

-	for (int i = 0; i <= this.genericsLengthPtr; i++) {

-		s = s + this.genericsLengthStack[i] + ","; //$NON-NLS-1$

-	}

-	s = s + "}\n"; //$NON-NLS-1$

-

-	s = s + "genericsPtr : int = " + String.valueOf(this.genericsPtr) + "\n"; //$NON-NLS-1$ //$NON-NLS-2$

-

-	s = s + "\n\n\n----------------Scanner--------------\n" + this.scanner.toString(); //$NON-NLS-1$

-	return s;

-

-}

-/*

- * Update recovery state based on current parser/scanner state

- */

-protected void updateRecoveryState() {

-

-	/* expose parser state to recovery state */

-	this.currentElement.updateFromParserState();

-

-	/* check and update recovered state based on current token,

-		this action is also performed when shifting token after recovery

-		got activated once. 

-	*/

-	this.recoveryTokenCheck();

-}

-protected void updateSourceDeclarationParts(int variableDeclaratorsCounter) {

-	//fields is a definition of fields that are grouped together like in

-	//public int[] a, b[], c

-	//which results into 3 fields.

-

-	FieldDeclaration field;

-	int endTypeDeclarationPosition = 

-		-1 + this.astStack[this.astPtr - variableDeclaratorsCounter + 1].sourceStart; 

-	for (int i = 0; i < variableDeclaratorsCounter - 1; i++) {

-		//last one is special(see below)

-		field = (FieldDeclaration) this.astStack[this.astPtr - i - 1];

-		field.endPart1Position = endTypeDeclarationPosition;

-		field.endPart2Position = -1 + this.astStack[this.astPtr - i].sourceStart;

-	}

-	//last one

-	(field = (FieldDeclaration) this.astStack[this.astPtr]).endPart1Position = 

-		endTypeDeclarationPosition; 

-	field.endPart2Position = field.declarationSourceEnd;

-

-}

-protected void updateSourcePosition(Expression exp) {

-	//update the source Position of the expression

-

-	//this.intStack : int int

-	//-->

-	//this.intStack : 

-

-	exp.sourceEnd = this.intStack[this.intPtr--];

-	exp.sourceStart = this.intStack[this.intPtr--];

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/ParserBasicInformation.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/ParserBasicInformation.js
deleted file mode 100644
index 4402692..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/ParserBasicInformation.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/*An interface that contains static declarations for some basic information

- about the parser such as the number of rules in the grammar, the starting state, etc...*/

-public interface ParserBasicInformation {

-

-	int ERROR_SYMBOL = 108,

-		MAX_NAME_LENGTH = 41,

-		NUM_STATES = 932,

-

-		NT_OFFSET = 108,

-		SCOPE_UBOUND = 125,

-		SCOPE_SIZE = 126,

-		LA_STATE_OFFSET = 11429,

-		MAX_LA = 1,

-		NUM_RULES = 670,

-		NUM_TERMINALS = 108,

-		NUM_NON_TERMINALS = 298,

-		NUM_SYMBOLS = 406,

-		START_STATE = 1999,

-		EOFT_SYMBOL = 68,

-		EOLT_SYMBOL = 68,

-		ACCEPT_ACTION = 11428,

-		ERROR_ACTION = 11429;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredBlock.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredBlock.js
deleted file mode 100644
index 9741192..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredBlock.js
+++ /dev/null
@@ -1,330 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * Internal block structure for parsing recovery 

- */

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Argument;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Block;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Statement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BaseTypes;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-

-public class RecoveredBlock extends RecoveredStatement implements CompilerModifiers, TerminalTokens, BaseTypes {

-

-	public Block blockDeclaration;

-	public RecoveredStatement[] statements;

-	public int statementCount;

-	public boolean preserveContent = false;

-	public RecoveredLocalVariable pendingArgument;

-	

-public RecoveredBlock(Block block, RecoveredElement parent, int bracketBalance){

-	super(block, parent, bracketBalance);

-	this.blockDeclaration = block;

-	this.foundOpeningBrace = true;

-}

-/*

- * Record a nested block declaration 

- */

-public RecoveredElement add(Block nestedBlockDeclaration, int bracketBalanceValue) {

-

-	/* do not consider a nested block starting passed the block end (if set)

-		it must be belonging to an enclosing block */

-	if (this.blockDeclaration.sourceEnd != 0 

-		&& nestedBlockDeclaration.sourceStart > this.blockDeclaration.sourceEnd){

-		return this.parent.add(nestedBlockDeclaration, bracketBalanceValue);

-	}

-			

-	RecoveredBlock element = new RecoveredBlock(nestedBlockDeclaration, this, bracketBalanceValue);

-

-	// if we have a pending Argument, promote it into the new block

-	if (this.pendingArgument != null){

-		element.attach(this.pendingArgument);

-		this.pendingArgument = null;

-	}

-	this.attach(element);

-	if (nestedBlockDeclaration.sourceEnd == 0) return element;

-	return this;	

-}

-/*

- * Record a local declaration 

- */

-public RecoveredElement add(LocalDeclaration localDeclaration, int bracketBalanceValue) {

-	return this.add(localDeclaration, bracketBalanceValue, false);

-}

-/*

- * Record a local declaration 

- */

-public RecoveredElement add(LocalDeclaration localDeclaration, int bracketBalanceValue, boolean delegatedByParent) {

-

-	/* local variables inside method can only be final and non void */

-/*	

-	char[][] localTypeName; 

-	if ((localDeclaration.modifiers & ~AccFinal) != 0 // local var can only be final 

-		|| (localDeclaration.type == null) // initializer

-		|| ((localTypeName = localDeclaration.type.getTypeName()).length == 1 // non void

-			&& CharOperation.equals(localTypeName[0], VoidBinding.sourceName()))){ 

-

-		if (delegatedByParent){

-			return this; //ignore

-		} else {

-			this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(localDeclaration.declarationSourceStart - 1));

-			return this.parent.add(localDeclaration, bracketBalance);

-		}

-	}

-*/	

-		/* do not consider a local variable starting passed the block end (if set)

-		it must be belonging to an enclosing block */

-	if (this.blockDeclaration.sourceEnd != 0 

-			&& localDeclaration.declarationSourceStart > this.blockDeclaration.sourceEnd){

-		if (delegatedByParent) return this; //ignore

-		return this.parent.add(localDeclaration, bracketBalanceValue);

-	}

-

-	RecoveredLocalVariable element = new RecoveredLocalVariable(localDeclaration, this, bracketBalanceValue);

-

-	if (localDeclaration instanceof Argument){

-		this.pendingArgument = element;

-		return this;

-	}

-	

-	this.attach(element);

-	if (localDeclaration.declarationSourceEnd == 0) return element;

-	return this;	

-}

-/*

- * Record a statement declaration 

- */

-public RecoveredElement add(Statement stmt, int bracketBalanceValue) {

-	return this.add(stmt, bracketBalanceValue, false);

-}

-

-/*

- * Record a statement declaration 

- */

-public RecoveredElement add(Statement stmt, int bracketBalanceValue, boolean delegatedByParent) {

-

-	/* do not consider a nested block starting passed the block end (if set)

-		it must be belonging to an enclosing block */

-	if (this.blockDeclaration.sourceEnd != 0 

-			&& stmt.sourceStart > this.blockDeclaration.sourceEnd){

-		if (delegatedByParent) return this; //ignore

-		return this.parent.add(stmt, bracketBalanceValue);

-	}

-			

-	RecoveredStatement element = new RecoveredStatement(stmt, this, bracketBalanceValue);

-	this.attach(element);

-	if (stmt.sourceEnd == 0) return element;

-	return this;	

-}

-/*

- * Addition of a type to an initializer (act like inside method body)

- */

-public RecoveredElement add(TypeDeclaration typeDeclaration, int bracketBalanceValue) {

-	return this.add(typeDeclaration, bracketBalanceValue, false);

-}

-/*

- * Addition of a type to an initializer (act like inside method body)

- */

-public RecoveredElement add(TypeDeclaration typeDeclaration, int bracketBalanceValue, boolean delegatedByParent) {

-

-	/* do not consider a type starting passed the block end (if set)

-		it must be belonging to an enclosing block */

-	if (this.blockDeclaration.sourceEnd != 0 

-			&& typeDeclaration.declarationSourceStart > this.blockDeclaration.sourceEnd){

-		if (delegatedByParent) return this; //ignore

-		return this.parent.add(typeDeclaration, bracketBalanceValue);

-	}

-			

-	RecoveredStatement element = new RecoveredType(typeDeclaration, this, bracketBalanceValue);

-	this.attach(element);

-	if (typeDeclaration.declarationSourceEnd == 0) return element;

-	return this;

-}

-/*

- * Attach a recovered statement

- */

-void attach(RecoveredStatement recoveredStatement) {

-

-	if (this.statements == null) {

-		this.statements = new RecoveredStatement[5];

-		this.statementCount = 0;

-	} else {

-		if (this.statementCount == this.statements.length) {

-			System.arraycopy(

-				this.statements, 

-				0, 

-				(this.statements = new RecoveredStatement[2 * this.statementCount]), 

-				0, 

-				this.statementCount); 

-		}

-	}

-	this.statements[this.statementCount++] = recoveredStatement;

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return this.blockDeclaration;

-}

-public String toString(int tab) {

-	StringBuffer result = new StringBuffer(tabString(tab));

-	result.append("Recovered block:\n"); //$NON-NLS-1$

-	this.blockDeclaration.print(tab + 1, result);

-	if (this.statements != null) {

-		for (int i = 0; i < this.statementCount; i++) {

-			result.append("\n"); //$NON-NLS-1$

-			result.append(this.statements[i].toString(tab + 1));

-		}

-	}

-	return result.toString();

-}

-/*

- * Rebuild a block from the nested structure which is in scope

- */

-public Block updatedBlock(){

-

-	// if block was not marked to be preserved or empty, then ignore it

-	if (!this.preserveContent || this.statementCount == 0) return null;

-

-	Statement[] updatedStatements = new Statement[this.statementCount];

-	int updatedCount = 0;

-	

-	// only collect the non-null updated statements

-	for (int i = 0; i < this.statementCount; i++){

-		Statement updatedStatement = this.statements[i].updatedStatement();

-		if (updatedStatement != null){

-			updatedStatements[updatedCount++] = updatedStatement;

-		}

-	}

-	if (updatedCount == 0) return null; // not interesting block

-

-	// resize statement collection if necessary

-	if (updatedCount != this.statementCount){

-		this.blockDeclaration.statements = new Statement[updatedCount];

-		System.arraycopy(updatedStatements, 0, this.blockDeclaration.statements, 0, updatedCount);

-	} else {

-		this.blockDeclaration.statements = updatedStatements;

-	}

-

-	return this.blockDeclaration;

-}

-/*

- * Rebuild a statement from the nested structure which is in scope

- */

-public Statement updatedStatement(){

-

-	return this.updatedBlock();

-}

-/*

- * A closing brace got consumed, might have closed the current element,

- * in which case both the currentElement is exited

- */

-public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){

-	if ((--this.bracketBalance <= 0) && (this.parent != null)){

-		this.updateSourceEndIfNecessary(braceStart, braceEnd);

-

-		/* if the block is the method body, then it closes the method too */

-		RecoveredMethod method = enclosingMethod();

-		if (method != null && method.methodBody == this){

-			return this.parent.updateOnClosingBrace(braceStart, braceEnd);

-		}

-		RecoveredInitializer initializer = enclosingInitializer();

-		if (initializer != null && initializer.initializerBody == this){

-			return this.parent.updateOnClosingBrace(braceStart, braceEnd);

-		}

-		return this.parent;

-	}

-	return this;

-}

-/*

- * An opening brace got consumed, might be the expected opening one of the current element,

- * in which case the bodyStart is updated.

- */

-public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){

-

-	// create a nested block

-	Block block = new Block(0);

-	block.sourceStart = parser().scanner.startPosition;

-	return this.add(block, 1);

-}

-/*

- * Final update the corresponding parse node

- */

-public void updateParseTree(){

-

-	this.updatedBlock();

-}

-/*

- * Rebuild a flattened block from the nested structure which is in scope

- */

-public Statement updateStatement(){

-

-	// if block was closed or empty, then ignore it

-	if (this.blockDeclaration.sourceEnd != 0 || this.statementCount == 0) return null;

-

-	Statement[] updatedStatements = new Statement[this.statementCount];

-	int updatedCount = 0;

-	

-	// only collect the non-null updated statements

-	for (int i = 0; i < this.statementCount; i++){

-		Statement updatedStatement = this.statements[i].updatedStatement();

-		if (updatedStatement != null){

-			updatedStatements[updatedCount++] = updatedStatement;

-		}

-	}

-	if (updatedCount == 0) return null; // not interesting block

-

-	// resize statement collection if necessary

-	if (updatedCount != this.statementCount){

-		this.blockDeclaration.statements = new Statement[updatedCount];

-		System.arraycopy(updatedStatements, 0, this.blockDeclaration.statements, 0, updatedCount);

-	} else {

-		this.blockDeclaration.statements = updatedStatements;

-	}

-

-	return this.blockDeclaration;

-}

-

-/*

- * Record a field declaration 

- */

-public RecoveredElement add(FieldDeclaration fieldDeclaration, int bracketBalanceValue) {

-

-	/* local variables inside method can only be final and non void */

-	char[][] fieldTypeName; 

-	if ((fieldDeclaration.modifiers & ~AccFinal) != 0 // local var can only be final 

-		|| (fieldDeclaration.type == null) // initializer

-		|| ((fieldTypeName = fieldDeclaration.type.getTypeName()).length == 1 // non void

-			&& CharOperation.equals(fieldTypeName[0], VoidBinding.sourceName()))){ 

-		this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(fieldDeclaration.declarationSourceStart - 1));

-		return this.parent.add(fieldDeclaration, bracketBalanceValue);

-	}

-	

-	/* do not consider a local variable starting passed the block end (if set)

-		it must be belonging to an enclosing block */

-	if (this.blockDeclaration.sourceEnd != 0 

-		&& fieldDeclaration.declarationSourceStart > this.blockDeclaration.sourceEnd){

-		return this.parent.add(fieldDeclaration, bracketBalanceValue);

-	}

-

-	// ignore the added field, since indicates a local variable behind recovery point

-	// which thus got parsed as a field reference. This can happen if restarting after

-	// having reduced an assistNode to get the following context (see 1GEK7SG)

-	return this;	

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredElement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredElement.js
deleted file mode 100644
index f591eb1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredElement.js
+++ /dev/null
@@ -1,308 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * Internal structure for parsing recovery 

- */

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Block;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ImportReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Statement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-

-public class RecoveredElement {

-

-	public RecoveredElement parent;

-	public int bracketBalance;

-	public boolean foundOpeningBrace;

-	protected Parser recoveringParser;

-public RecoveredElement(RecoveredElement parent, int bracketBalance){

-	this(parent, bracketBalance, null);

-}

-public RecoveredElement(RecoveredElement parent, int bracketBalance, Parser parser){

-	this.parent = parent;

-	this.bracketBalance = bracketBalance;

-	this.recoveringParser = parser;

-}

-/*

- *	Record a method declaration

- */

-public RecoveredElement add(AbstractMethodDeclaration methodDeclaration, int bracketBalanceValue) {

-

-	/* default behavior is to delegate recording to parent if any */

-	if (this.parent == null) return this; // ignore

-	this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(methodDeclaration.declarationSourceStart - 1));	

-	return this.parent.add(methodDeclaration, bracketBalanceValue);

-}

-/*

- * Record a nested block declaration

- */

-public RecoveredElement add(Block nestedBlockDeclaration, int bracketBalanceValue) {

-

-	/* default behavior is to delegate recording to parent if any */

-	if (this.parent == null) return this; // ignore

-	this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(nestedBlockDeclaration.sourceStart - 1));	

-	return this.parent.add(nestedBlockDeclaration, bracketBalanceValue);

-}

-/*

- * Record a field declaration

- */

-public RecoveredElement add(FieldDeclaration fieldDeclaration, int bracketBalanceValue) {

-

-	/* default behavior is to delegate recording to parent if any */

-	if (this.parent == null) return this; // ignore

-	this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(fieldDeclaration.declarationSourceStart - 1));	

-	return this.parent.add(fieldDeclaration, bracketBalanceValue);

-}

-/*

- *	Record an import reference

- */

-public RecoveredElement add(ImportReference importReference, int bracketBalanceValue){

-

-	/* default behavior is to delegate recording to parent if any */

-	if (this.parent == null) return this; // ignore

-	this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(importReference.declarationSourceStart - 1));	

-	return this.parent.add(importReference, bracketBalanceValue);

-}

-/*

- * Record a local declaration

- */

-public RecoveredElement add(LocalDeclaration localDeclaration, int bracketBalanceValue) {

-

-	/* default behavior is to delegate recording to parent if any */

-	if (this.parent == null) return this; // ignore

-	this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(localDeclaration.declarationSourceStart - 1));	

-	return this.parent.add(localDeclaration, bracketBalanceValue);

-}

-/*

- * Record a statement

- */

-public RecoveredElement add(Statement statement, int bracketBalanceValue) {

-

-	/* default behavior is to delegate recording to parent if any */

-	if (this.parent == null) return this; // ignore

-	this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(statement.sourceStart - 1));	

-	return this.parent.add(statement, bracketBalanceValue);

-}

-/*

- *	Record a type declaration

- */

-public RecoveredElement add(TypeDeclaration typeDeclaration, int bracketBalanceValue){

-

-	/* default behavior is to delegate recording to parent if any */

-	if (this.parent == null) return this; // ignore

-	this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(typeDeclaration.declarationSourceStart - 1));	

-	return this.parent.add(typeDeclaration, bracketBalanceValue);

-}

-/*

- * Answer the depth of this element, considering the parent link.

- */

-public int depth(){

-	int depth = 0;

-	RecoveredElement current = this;

-	while ((current = current.parent) != null) depth++;

-	return depth;

-}

-/*

- * Answer the enclosing method node, or null if none

- */

-public RecoveredInitializer enclosingInitializer(){

-	RecoveredElement current = this;

-	while (current != null){

-		if (current instanceof RecoveredInitializer){

-			return (RecoveredInitializer) current;

-		}

-		current = current.parent;

-	}

-	return null;

-}

-/*

- * Answer the enclosing method node, or null if none

- */

-public RecoveredMethod enclosingMethod(){

-	RecoveredElement current = this;

-	while (current != null){

-		if (current instanceof RecoveredMethod){

-			return (RecoveredMethod) current;

-		}

-		current = current.parent;

-	}

-	return null;

-}

-/*

- * Answer the enclosing type node, or null if none

- */

-public RecoveredType enclosingType(){

-	RecoveredElement current = this;

-	while (current != null){

-		if (current instanceof RecoveredType){

-			return (RecoveredType) current;

-		}

-		current = current.parent;

-	}

-	return null;

-}

-/*

- * Answer the closest specified parser

- */

-public Parser parser(){

-	RecoveredElement current = this;

-	while (current != null){

-		if (current.recoveringParser != null){

-			return current.recoveringParser;

-		}

-		current = current.parent;

-	}

-	return null;

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return null;

-}

-/*

- * Iterate the enclosing blocks and tag them so as to preserve their content

- */

-public void preserveEnclosingBlocks(){

-	RecoveredElement current = this;

-	while (current != null){

-		if (current instanceof RecoveredBlock){

-			((RecoveredBlock)current).preserveContent = true;

-		}

-		if (current instanceof RecoveredType){ // for anonymous types

-			((RecoveredType)current).preserveContent = true;

-		}

-		current = current.parent;

-	}

-}

-/*

- * Answer the position of the previous line end if

- * there is nothing but spaces in between it and the

- * line end. Used to trim spaces on unclosed elements.

- */

-public int previousAvailableLineEnd(int position){

-

-	Parser parser = this.parser();

-	if (parser == null) return position;

-	

-	Scanner scanner = parser.scanner;

-	if (scanner.lineEnds == null) return position;

-	

-	int index = scanner.getLineNumber(position);

-	if (index < 2) return position;

-	int previousLineEnd = scanner.lineEnds[index-2];

-

-	char[] source = scanner.source;

-	for (int i = previousLineEnd+1; i < position; i++){

-		if (!(source[i] == ' ' || source[i] == '\t')) return position;

-	}

-	return previousLineEnd;

-}

-/*

- * Answer the very source end of the corresponding parse node

- */

-public int sourceEnd(){

-	return 0;

-}

-protected String tabString(int tab) {

-	StringBuffer result = new StringBuffer();

-	for (int i = tab; i > 0; i--) {

-		result.append("  "); //$NON-NLS-1$

-	}

-	return result.toString();

-}

-/*

- * Answer the top node

- */

-public RecoveredElement topElement(){

-	RecoveredElement current = this;

-	while (current.parent != null){

-		current = current.parent;

-	}

-	return current;

-}

-public String toString() {

-	return toString(0);

-}

-public String toString(int tab) {

-	return super.toString();

-}

-/*

- * Answer the enclosing type node, or null if none

- */

-public RecoveredType type(){

-	RecoveredElement current = this;

-	while (current != null){

-		if (current instanceof RecoveredType){

-			return (RecoveredType) current;

-		}

-		current = current.parent;

-	}

-	return null;

-}

-/*

- * Update the bodyStart of the corresponding parse node

- */

-public void updateBodyStart(int bodyStart){

-	this.foundOpeningBrace = true;	

-}

-/*

- * Update the corresponding parse node from parser state which

- * is about to disappear because of restarting recovery

- */

-public void updateFromParserState(){

-	// default implementation: do nothing

-}

-/*

- * A closing brace got consumed, might have closed the current element,

- * in which case both the currentElement is exited

- */

-public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){

-	if ((--this.bracketBalance <= 0) && (this.parent != null)){

-		this.updateSourceEndIfNecessary(braceStart, braceEnd);

-		return this.parent;

-	}

-	return this;

-}

-/*

- * An opening brace got consumed, might be the expected opening one of the current element,

- * in which case the bodyStart is updated.

- */

-/*public RecoveredElement updateOnOpeningBrace(int braceEnd){return null;}*/

-public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){

-

-	if (this.bracketBalance++ == 0){

-		this.updateBodyStart(braceEnd + 1);

-		return this;

-	}

-	return null; // no update is necessary

-}

-/*

- * Final update the corresponding parse node

- */

-public void updateParseTree(){

-	// default implementation: do nothing

-}

-/*

- * Update the declarationSourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int braceStart, int braceEnd){

-	// default implementation: do nothing

-}

-public void updateSourceEndIfNecessary(int sourceEnd){

-	this.updateSourceEndIfNecessary(sourceEnd + 1, sourceEnd);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredField.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredField.js
deleted file mode 100644
index 9b4c31e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredField.js
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * Internal field structure for parsing recovery 

- */

-import org.eclipse.wst.jsdt.internal.compiler.ast.ArrayTypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Expression;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Statement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-

-public class RecoveredField extends RecoveredElement {

-

-	public FieldDeclaration fieldDeclaration;

-	boolean alreadyCompletedFieldInitialization;

-	

-	public RecoveredType[] anonymousTypes;

-	public int anonymousTypeCount;

-public RecoveredField(FieldDeclaration fieldDeclaration, RecoveredElement parent, int bracketBalance){

-	this(fieldDeclaration, parent, bracketBalance, null);

-}

-public RecoveredField(FieldDeclaration fieldDeclaration, RecoveredElement parent, int bracketBalance, Parser parser){

-	super(parent, bracketBalance, parser);

-	this.fieldDeclaration = fieldDeclaration;

-	this.alreadyCompletedFieldInitialization = fieldDeclaration.initialization != null;

-}

-/*

- * Record an expression statement if field is expecting an initialization expression,

- * used for completion inside field initializers.

- */

-public RecoveredElement add(Statement statement, int bracketBalanceValue) {

-

-	if (this.alreadyCompletedFieldInitialization || !(statement instanceof Expression)) {

-		return super.add(statement, bracketBalanceValue);

-	} else {

-		this.alreadyCompletedFieldInitialization = true;

-		this.fieldDeclaration.initialization = (Expression)statement;

-		this.fieldDeclaration.declarationSourceEnd = statement.sourceEnd;

-		this.fieldDeclaration.declarationEnd = statement.sourceEnd;

-		return this;

-	}

-}

-/*

- * Record a type declaration if this field is expecting an initialization expression 

- * and the type is an anonymous type.

- * Used for completion inside field initializers.

- */

-public RecoveredElement add(TypeDeclaration typeDeclaration, int bracketBalanceValue) {

-

-	if (this.alreadyCompletedFieldInitialization 

-			|| ((typeDeclaration.bits & ASTNode.IsAnonymousTypeMASK) == 0)

-			|| (this.fieldDeclaration.declarationSourceEnd != 0 && typeDeclaration.sourceStart > this.fieldDeclaration.declarationSourceEnd)) {

-		return super.add(typeDeclaration, bracketBalanceValue);

-	} else { 

-		// Prepare anonymous type list

-		if (this.anonymousTypes == null) {

-			this.anonymousTypes = new RecoveredType[5];

-			this.anonymousTypeCount = 0;

-		} else {

-			if (this.anonymousTypeCount == this.anonymousTypes.length) {

-				System.arraycopy(

-					this.anonymousTypes, 

-					0, 

-					(this.anonymousTypes = new RecoveredType[2 * this.anonymousTypeCount]), 

-					0, 

-					this.anonymousTypeCount); 

-			}

-		}

-		// Store type declaration as an anonymous type

-		RecoveredType element = new RecoveredType(typeDeclaration, this, bracketBalanceValue);

-		this.anonymousTypes[this.anonymousTypeCount++] = element;

-		return element;

-	}

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return fieldDeclaration;

-}

-/*

- * Answer the very source end of the corresponding parse node

- */

-public int sourceEnd(){

-	return this.fieldDeclaration.declarationSourceEnd;

-}

-public String toString(int tab){

-	StringBuffer buffer = new StringBuffer(tabString(tab));

-	buffer.append("Recovered field:\n"); //$NON-NLS-1$

-	fieldDeclaration.print(tab + 1, buffer);

-	if (this.anonymousTypes != null) {

-		for (int i = 0; i < this.anonymousTypeCount; i++){

-			buffer.append("\n"); //$NON-NLS-1$

-			buffer.append(anonymousTypes[i].toString(tab + 1));

-		}

-	}

-	return buffer.toString();

-}

-public FieldDeclaration updatedFieldDeclaration(){

-

-	if (this.anonymousTypes != null && fieldDeclaration.initialization == null) {

-		for (int i = 0; i < this.anonymousTypeCount; i++){

-			if (anonymousTypes[i].preserveContent){

-				fieldDeclaration.initialization = this.anonymousTypes[i].updatedTypeDeclaration().allocation;

-			}

-		}

-		if (this.anonymousTypeCount > 0) fieldDeclaration.bits |= ASTNode.HasLocalTypeMASK;

-	}

-	return fieldDeclaration;

-}

-/*

- * A closing brace got consumed, might have closed the current element,

- * in which case both the currentElement is exited.

- *

- * Fields have no associated braces, thus if matches, then update parent.

- */

-public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){

-	if (bracketBalance > 0){ // was an array initializer

-		bracketBalance--;

-		if (bracketBalance == 0) alreadyCompletedFieldInitialization = true;

-		return this;

-	} else if (bracketBalance == 0) {

-		alreadyCompletedFieldInitialization = true;

-		updateSourceEndIfNecessary(braceEnd - 1);

-	}

-	if (parent != null){

-		return parent.updateOnClosingBrace(braceStart, braceEnd);

-	}

-	return this;

-}

-/*

- * An opening brace got consumed, might be the expected opening one of the current element,

- * in which case the bodyStart is updated.

- */

-public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){

-	if (fieldDeclaration.declarationSourceEnd == 0 

-		&& fieldDeclaration.type instanceof ArrayTypeReference

-		&& !alreadyCompletedFieldInitialization){

-		bracketBalance++;

-		return null; // no update is necessary	(array initializer)

-	}

-	// might be an array initializer

-	this.updateSourceEndIfNecessary(braceStart - 1, braceEnd - 1);	

-	return this.parent.updateOnOpeningBrace(braceStart, braceEnd);	

-}

-public void updateParseTree(){

-	this.updatedFieldDeclaration();

-}

-/*

- * Update the declarationSourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int bodyStart, int bodyEnd){

-	if (this.fieldDeclaration.declarationSourceEnd == 0) {

-		this.fieldDeclaration.declarationSourceEnd = bodyEnd;

-		this.fieldDeclaration.declarationEnd = bodyEnd;

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredImport.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredImport.js
deleted file mode 100644
index 7a3798c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredImport.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * Internal import structure for parsing recovery 

- */

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ImportReference;

-

-public class RecoveredImport extends RecoveredElement {

-

-	public ImportReference importReference;

-public RecoveredImport(ImportReference importReference, RecoveredElement parent, int bracketBalance){

-	super(parent, bracketBalance);

-	this.importReference = importReference;

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return importReference;

-}

-/*

- * Answer the very source end of the corresponding parse node

- */

-public int sourceEnd(){

-	return this.importReference.declarationSourceEnd;

-}

-public String toString(int tab) {

-	return tabString(tab) + "Recovered import: " + importReference.toString(); //$NON-NLS-1$

-}

-public ImportReference updatedImportReference(){

-

-	return importReference;

-}

-public void updateParseTree(){

-	this.updatedImportReference();

-}

-/*

- * Update the declarationSourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int bodyStart, int bodyEnd){

-	if (this.importReference.declarationSourceEnd == 0) {

-		this.importReference.declarationSourceEnd = bodyEnd;

-		this.importReference.declarationEnd = bodyEnd;

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredInitializer.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredInitializer.js
deleted file mode 100644
index af39dfb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredInitializer.js
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * Internal initializer structure for parsing recovery 

- */

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Block;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Initializer;

-import org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Statement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BaseTypes;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-

-public class RecoveredInitializer extends RecoveredField implements CompilerModifiers, TerminalTokens, BaseTypes {

-

-	public RecoveredType[] localTypes;

-	public int localTypeCount;

-

-	public RecoveredBlock initializerBody;	

-

-public RecoveredInitializer(FieldDeclaration fieldDeclaration, RecoveredElement parent, int bracketBalance){

-	this(fieldDeclaration, parent, bracketBalance, null);

-}

-public RecoveredInitializer(FieldDeclaration fieldDeclaration, RecoveredElement parent, int bracketBalance, Parser parser){

-	super(fieldDeclaration, parent, bracketBalance, parser);

-	this.foundOpeningBrace = true;

-}

-/*

- * Record a nested block declaration

- */

-public RecoveredElement add(Block nestedBlockDeclaration, int bracketBalanceValue) {

-

-	/* default behavior is to delegate recording to parent if any,

-	do not consider elements passed the known end (if set)

-	it must be belonging to an enclosing element 

-	*/

-	if (fieldDeclaration.declarationSourceEnd > 0

-			&& nestedBlockDeclaration.sourceStart > fieldDeclaration.declarationSourceEnd){

-		if (this.parent == null) return this; // ignore

-		return this.parent.add(nestedBlockDeclaration, bracketBalanceValue);

-	}

-	/* consider that if the opening brace was not found, it is there */

-	if (!foundOpeningBrace){

-		foundOpeningBrace = true;

-		this.bracketBalance++;

-	}

-	initializerBody = new RecoveredBlock(nestedBlockDeclaration, this, bracketBalanceValue);

-	if (nestedBlockDeclaration.sourceEnd == 0) return initializerBody;

-	return this;

-}

-/*

- * Record a field declaration (act like inside method body)

- */

-public RecoveredElement add(FieldDeclaration newFieldDeclaration, int bracketBalanceValue) {

-

-	/* local variables inside initializer can only be final and non void */

-	char[][] fieldTypeName;

-	if ((newFieldDeclaration.modifiers & ~AccFinal) != 0 /* local var can only be final */

-			|| (newFieldDeclaration.type == null) // initializer

-			|| ((fieldTypeName = newFieldDeclaration.type.getTypeName()).length == 1 // non void

-				&& CharOperation.equals(fieldTypeName[0], VoidBinding.sourceName()))){ 

-		if (this.parent == null) return this; // ignore

-		this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(newFieldDeclaration.declarationSourceStart - 1));

-		return this.parent.add(newFieldDeclaration, bracketBalanceValue);

-	}

-

-	/* default behavior is to delegate recording to parent if any,

-	do not consider elements passed the known end (if set)

-	it must be belonging to an enclosing element 

-	*/

-	if (this.fieldDeclaration.declarationSourceEnd > 0

-			&& newFieldDeclaration.declarationSourceStart > this.fieldDeclaration.declarationSourceEnd){

-		if (this.parent == null) return this; // ignore

-		return this.parent.add(newFieldDeclaration, bracketBalanceValue);

-	}

-	// still inside initializer, treat as local variable

-	return this; // ignore

-}

-/*

- * Record a local declaration - regular method should have been created a block body

- */

-public RecoveredElement add(LocalDeclaration localDeclaration, int bracketBalanceValue) {

-

-	/* do not consider a type starting passed the type end (if set)

-		it must be belonging to an enclosing type */

-	if (fieldDeclaration.declarationSourceEnd != 0 

-			&& localDeclaration.declarationSourceStart > fieldDeclaration.declarationSourceEnd){

-		if (parent == null) return this; // ignore

-		return this.parent.add(localDeclaration, bracketBalanceValue);

-	}

-	/* method body should have been created */

-	Block block = new Block(0);

-	block.sourceStart = ((Initializer)fieldDeclaration).sourceStart;

-	RecoveredElement element = this.add(block, 1);

-	return element.add(localDeclaration, bracketBalanceValue);	

-}

-/*

- * Record a statement - regular method should have been created a block body

- */

-public RecoveredElement add(Statement statement, int bracketBalanceValue) {

-

-	/* do not consider a statement starting passed the initializer end (if set)

-		it must be belonging to an enclosing type */

-	if (fieldDeclaration.declarationSourceEnd != 0 

-			&& statement.sourceStart > fieldDeclaration.declarationSourceEnd){

-		if (parent == null) return this; // ignore

-		return this.parent.add(statement, bracketBalanceValue);

-	}

-	/* initializer body should have been created */

-	Block block = new Block(0);

-	block.sourceStart = ((Initializer)fieldDeclaration).sourceStart;

-	RecoveredElement element = this.add(block, 1);

-	return element.add(statement, bracketBalanceValue);	

-}

-public RecoveredElement add(TypeDeclaration typeDeclaration, int bracketBalanceValue) {

-

-	/* do not consider a type starting passed the type end (if set)

-		it must be belonging to an enclosing type */

-	if (fieldDeclaration.declarationSourceEnd != 0 

-			&& typeDeclaration.declarationSourceStart > fieldDeclaration.declarationSourceEnd){

-		if (parent == null) return this; // ignore

-		return this.parent.add(typeDeclaration, bracketBalanceValue);

-	}

-	if ((typeDeclaration.bits & ASTNode.IsLocalTypeMASK) != 0){

-		/* method body should have been created */

-		Block block = new Block(0);

-		block.sourceStart = ((Initializer)fieldDeclaration).sourceStart;

-		RecoveredElement element = this.add(block, 1);

-		return element.add(typeDeclaration, bracketBalanceValue);	

-	}	

-	if (localTypes == null) {

-		localTypes = new RecoveredType[5];

-		localTypeCount = 0;

-	} else {

-		if (localTypeCount == localTypes.length) {

-			System.arraycopy(

-				localTypes, 

-				0, 

-				(localTypes = new RecoveredType[2 * localTypeCount]), 

-				0, 

-				localTypeCount); 

-		}

-	}

-	RecoveredType element = new RecoveredType(typeDeclaration, this, bracketBalanceValue);

-	localTypes[localTypeCount++] = element;

-

-	/* consider that if the opening brace was not found, it is there */

-	if (!foundOpeningBrace){

-		foundOpeningBrace = true;

-		this.bracketBalance++;

-	}

-	return element;

-}

-public String toString(int tab) {

-	StringBuffer result = new StringBuffer(tabString(tab));

-	result.append("Recovered initializer:\n"); //$NON-NLS-1$

-	this.fieldDeclaration.print(tab + 1, result);

-	if (this.initializerBody != null) {

-		result.append("\n"); //$NON-NLS-1$

-		result.append(this.initializerBody.toString(tab + 1));

-	}

-	return result.toString();

-}

-public FieldDeclaration updatedFieldDeclaration(){

-

-	if (initializerBody != null){

-		Block block = initializerBody.updatedBlock();

-		if (block != null){

-			((Initializer)fieldDeclaration).block = block;

-		}

-		if (this.localTypeCount > 0) fieldDeclaration.bits |= ASTNode.HasLocalTypeMASK;

-

-	}	

-	if (fieldDeclaration.sourceEnd == 0){

-		fieldDeclaration.sourceEnd = fieldDeclaration.declarationSourceEnd;

-	}

-	return fieldDeclaration;

-}

-/*

- * A closing brace got consumed, might have closed the current element,

- * in which case both the currentElement is exited

- */

-public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){

-	if ((--bracketBalance <= 0) && (parent != null)){

-		this.updateSourceEndIfNecessary(braceStart, braceEnd);

-		return parent;

-	}

-	return this;

-}

-/*

- * An opening brace got consumed, might be the expected opening one of the current element,

- * in which case the bodyStart is updated.

- */

-public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){

-	bracketBalance++;

-	return this; // request to restart

-}

-/*

- * Update the declarationSourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int braceStart, int braceEnd){

-	if (this.fieldDeclaration.declarationSourceEnd == 0) {

-		Initializer initializer = (Initializer)fieldDeclaration;

-		if(parser().rBraceSuccessorStart >= braceEnd) {

-			if (initializer.bodyStart < parser().rBraceEnd) {

-				initializer.declarationSourceEnd = parser().rBraceEnd;

-			} else {

-				initializer.declarationSourceEnd = initializer.bodyStart;

-			}

-			if (initializer.bodyStart < parser().rBraceStart) {

-				initializer.bodyEnd = parser().rBraceStart;

-			} else {

-				initializer.bodyEnd = initializer.bodyStart;

-			}

-		} else {

-			initializer.declarationSourceEnd = braceEnd;

-			initializer.bodyEnd  = braceStart - 1;

-		}

-		if(initializer.block != null) {

-			initializer.block.sourceEnd = initializer.declarationSourceEnd;

-		}

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredLocalVariable.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredLocalVariable.js
deleted file mode 100644
index 224ffd0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredLocalVariable.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * Internal local variable structure for parsing recovery 

- */

-import org.eclipse.wst.jsdt.internal.compiler.ast.ArrayTypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Expression;

-import org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Statement;

-

-public class RecoveredLocalVariable extends RecoveredStatement {

-

-	public LocalDeclaration localDeclaration;

-	boolean alreadyCompletedLocalInitialization;

-public RecoveredLocalVariable(LocalDeclaration localDeclaration, RecoveredElement parent, int bracketBalance){

-	super(localDeclaration, parent, bracketBalance);

-	this.localDeclaration = localDeclaration;

-	this.alreadyCompletedLocalInitialization = localDeclaration.initialization != null;

-}

-/*

- * Record an expression statement if local variable is expecting an initialization expression. 

- */

-public RecoveredElement add(Statement stmt, int bracketBalanceValue) {

-

-	if (this.alreadyCompletedLocalInitialization || !(stmt instanceof Expression)) {

-		return super.add(stmt, bracketBalanceValue);

-	} else {

-		this.alreadyCompletedLocalInitialization = true;

-		this.localDeclaration.initialization = (Expression)stmt;

-		this.localDeclaration.declarationSourceEnd = stmt.sourceEnd;

-		this.localDeclaration.declarationEnd = stmt.sourceEnd;

-		return this;

-	}

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return localDeclaration;

-}

-/*

- * Answer the very source end of the corresponding parse node

- */

-public int sourceEnd(){

-	return this.localDeclaration.declarationSourceEnd;

-}

-public String toString(int tab) {

-	return tabString(tab) + "Recovered local variable:\n" + localDeclaration.print(tab + 1, new StringBuffer(10)); //$NON-NLS-1$

-}

-public Statement updatedStatement(){

-	return localDeclaration;

-}

-/*

- * A closing brace got consumed, might have closed the current element,

- * in which case both the currentElement is exited.

- *

- * Fields have no associated braces, thus if matches, then update parent.

- */

-public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){

-	if (bracketBalance > 0){ // was an array initializer

-		bracketBalance--;

-		if (bracketBalance == 0) alreadyCompletedLocalInitialization = true;

-		return this;

-	}

-	if (parent != null){

-		return parent.updateOnClosingBrace(braceStart, braceEnd);

-	}

-	return this;

-}

-/*

- * An opening brace got consumed, might be the expected opening one of the current element,

- * in which case the bodyStart is updated.

- */

-public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){

-	if (localDeclaration.declarationSourceEnd == 0 

-		&& localDeclaration.type instanceof ArrayTypeReference

-		&& !alreadyCompletedLocalInitialization){

-		bracketBalance++;

-		return null; // no update is necessary	(array initializer)

-	}

-	// might be an array initializer

-	this.updateSourceEndIfNecessary(braceStart - 1, braceEnd - 1);	

-	return this.parent.updateOnOpeningBrace(braceStart, braceEnd);	

-}

-public void updateParseTree(){

-	this.updatedStatement();

-}

-/*

- * Update the declarationSourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int bodyStart, int bodyEnd){

-	if (this.localDeclaration.declarationSourceEnd == 0) {

-		this.localDeclaration.declarationSourceEnd = bodyEnd;

-		this.localDeclaration.declarationEnd = bodyEnd;	

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredMethod.js
deleted file mode 100644
index ddf4356..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredMethod.js
+++ /dev/null
@@ -1,447 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Argument;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Block;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ConstructorDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ExplicitConstructorCall;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.LocalDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Statement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.SuperReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BaseTypes;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-

-/**

- * Internal method structure for parsing recovery 

- */

-

-public class RecoveredMethod extends RecoveredElement implements CompilerModifiers, TerminalTokens, BaseTypes {

-

-	public AbstractMethodDeclaration methodDeclaration;

-

-	public RecoveredType[] localTypes;

-	public int localTypeCount;

-

-	public RecoveredBlock methodBody;

-	public boolean discardBody = true;

-

-public RecoveredMethod(AbstractMethodDeclaration methodDeclaration, RecoveredElement parent, int bracketBalance, Parser parser){

-	super(parent, bracketBalance, parser);

-	this.methodDeclaration = methodDeclaration;

-	this.foundOpeningBrace = !bodyStartsAtHeaderEnd();

-	if(this.foundOpeningBrace) {

-		this.bracketBalance++;

-	}

-}

-/*

- * Record a nested block declaration

- */

-public RecoveredElement add(Block nestedBlockDeclaration, int bracketBalanceValue) {

-

-	/* default behavior is to delegate recording to parent if any,

-	do not consider elements passed the known end (if set)

-	it must be belonging to an enclosing element 

-	*/

-	if (methodDeclaration.declarationSourceEnd > 0

-		&& nestedBlockDeclaration.sourceStart

-			> methodDeclaration.declarationSourceEnd){

-				if (this.parent == null){

-					return this; // ignore

-				} else {

-					return this.parent.add(nestedBlockDeclaration, bracketBalanceValue);

-				}

-	}

-	/* consider that if the opening brace was not found, it is there */

-	if (!foundOpeningBrace){

-		foundOpeningBrace = true;

-		this.bracketBalance++;

-	}

-

-	methodBody = new RecoveredBlock(nestedBlockDeclaration, this, bracketBalanceValue);

-	if (nestedBlockDeclaration.sourceEnd == 0) return methodBody;

-	return this;

-}

-/*

- * Record a field declaration

- */

-public RecoveredElement add(FieldDeclaration fieldDeclaration, int bracketBalanceValue) {

-

-	/* local variables inside method can only be final and non void */

-	char[][] fieldTypeName; 

-	if ((fieldDeclaration.modifiers & ~AccFinal) != 0 // local var can only be final 

-		|| (fieldDeclaration.type == null) // initializer

-		|| ((fieldTypeName = fieldDeclaration.type.getTypeName()).length == 1 // non void

-			&& CharOperation.equals(fieldTypeName[0], VoidBinding.sourceName()))){ 

-

-		if (this.parent == null){

-			return this; // ignore

-		} else {

-			this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(fieldDeclaration.declarationSourceStart - 1));

-			return this.parent.add(fieldDeclaration, bracketBalanceValue);

-		}

-	}

-	/* default behavior is to delegate recording to parent if any,

-	do not consider elements passed the known end (if set)

-	it must be belonging to an enclosing element 

-	*/

-	if (methodDeclaration.declarationSourceEnd > 0

-		&& fieldDeclaration.declarationSourceStart

-			> methodDeclaration.declarationSourceEnd){

-		if (this.parent == null){

-			return this; // ignore

-		} else {

-			return this.parent.add(fieldDeclaration, bracketBalanceValue);

-		}

-	}

-	/* consider that if the opening brace was not found, it is there */

-	if (!foundOpeningBrace){

-		foundOpeningBrace = true;

-		this.bracketBalance++;

-	}

-	// still inside method, treat as local variable

-	return this; // ignore

-}

-/*

- * Record a local declaration - regular method should have been created a block body

- */

-public RecoveredElement add(LocalDeclaration localDeclaration, int bracketBalanceValue) {

-

-	/* local variables inside method can only be final and non void */

-/*	

-	char[][] localTypeName; 

-	if ((localDeclaration.modifiers & ~AccFinal) != 0 // local var can only be final 

-		|| (localDeclaration.type == null) // initializer

-		|| ((localTypeName = localDeclaration.type.getTypeName()).length == 1 // non void

-			&& CharOperation.equals(localTypeName[0], VoidBinding.sourceName()))){ 

-

-		if (this.parent == null){

-			return this; // ignore

-		} else {

-			this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(localDeclaration.declarationSourceStart - 1));

-			return this.parent.add(localDeclaration, bracketBalance);

-		}

-	}

-*/

-	/* do not consider a type starting passed the type end (if set)

-		it must be belonging to an enclosing type */

-	if (methodDeclaration.declarationSourceEnd != 0 

-		&& localDeclaration.declarationSourceStart > methodDeclaration.declarationSourceEnd){

-			

-		if (this.parent == null) {

-			return this; // ignore

-		} else {

-			return this.parent.add(localDeclaration, bracketBalanceValue);

-		}

-	}

-	if (methodBody == null){

-		Block block = new Block(0);

-		block.sourceStart = methodDeclaration.bodyStart;

-		RecoveredElement currentBlock = this.add(block, 1);

-		if (this.bracketBalance > 0){

-			for (int i = 0; i < this.bracketBalance - 1; i++){

-				currentBlock = currentBlock.add(new Block(0), 1);

-			}

-			this.bracketBalance = 1;

-		}

-		return currentBlock.add(localDeclaration, bracketBalanceValue);

-	}

-	return methodBody.add(localDeclaration, bracketBalanceValue, true);

-}

-/*

- * Record a statement - regular method should have been created a block body

- */

-public RecoveredElement add(Statement statement, int bracketBalanceValue) {

-

-	/* do not consider a type starting passed the type end (if set)

-		it must be belonging to an enclosing type */

-	if (methodDeclaration.declarationSourceEnd != 0 

-		&& statement.sourceStart > methodDeclaration.declarationSourceEnd){

-

-		if (this.parent == null) {

-			return this; // ignore

-		} else {

-			return this.parent.add(statement, bracketBalanceValue);

-		}

-	}

-	if (methodBody == null){

-		Block block = new Block(0);

-		block.sourceStart = methodDeclaration.bodyStart;

-		RecoveredElement currentBlock = this.add(block, 1);

-		if (this.bracketBalance > 0){

-			for (int i = 0; i < this.bracketBalance - 1; i++){

-				currentBlock = currentBlock.add(new Block(0), 1);

-			}

-			this.bracketBalance = 1;

-		}

-		return currentBlock.add(statement, bracketBalanceValue);

-	}

-	return methodBody.add(statement, bracketBalanceValue, true);	

-}

-public RecoveredElement add(TypeDeclaration typeDeclaration, int bracketBalanceValue) {

-

-	/* do not consider a type starting passed the type end (if set)

-		it must be belonging to an enclosing type */

-	if (methodDeclaration.declarationSourceEnd != 0 

-		&& typeDeclaration.declarationSourceStart > methodDeclaration.declarationSourceEnd){

-			

-		if (this.parent == null) {

-			return this; // ignore

-		}

-		return this.parent.add(typeDeclaration, bracketBalanceValue);

-	}

-	if ((typeDeclaration.bits & ASTNode.IsLocalTypeMASK) != 0){

-		if (methodBody == null){

-			Block block = new Block(0);

-			block.sourceStart = methodDeclaration.bodyStart;

-			this.add(block, 1);

-		}

-		return methodBody.add(typeDeclaration, bracketBalanceValue, true);	

-	}

-	if (typeDeclaration.isInterface()) {

-		this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(typeDeclaration.declarationSourceStart - 1));

-		if (this.parent == null) {

-			return this; // ignore

-		}

-		// close the constructor

-		return this.parent.add(typeDeclaration, bracketBalanceValue);

-	}

-	if (localTypes == null) {

-		localTypes = new RecoveredType[5];

-		localTypeCount = 0;

-	} else {

-		if (localTypeCount == localTypes.length) {

-			System.arraycopy(

-				localTypes, 

-				0, 

-				(localTypes = new RecoveredType[2 * localTypeCount]), 

-				0, 

-				localTypeCount); 

-		}

-	}

-	RecoveredType element = new RecoveredType(typeDeclaration, this, bracketBalanceValue);

-	localTypes[localTypeCount++] = element;

-

-	/* consider that if the opening brace was not found, it is there */

-	if (!foundOpeningBrace){

-		foundOpeningBrace = true;

-		this.bracketBalance++;

-	}

-	return element;

-}

-public boolean bodyStartsAtHeaderEnd(){

-	return methodDeclaration.bodyStart == methodDeclaration.sourceEnd+1;

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return methodDeclaration;

-}

-/*

- * Answer the very source end of the corresponding parse node

- */

-public int sourceEnd(){

-	return this.methodDeclaration.declarationSourceEnd;

-}

-public String toString(int tab) {

-	StringBuffer result = new StringBuffer(tabString(tab));

-	result.append("Recovered method:\n"); //$NON-NLS-1$

-	this.methodDeclaration.print(tab + 1, result);

-	if (this.localTypes != null) {

-		for (int i = 0; i < this.localTypeCount; i++) {

-			result.append("\n"); //$NON-NLS-1$

-			result.append(this.localTypes[i].toString(tab + 1));

-		}

-	}

-	if (this.methodBody != null) {

-		result.append("\n"); //$NON-NLS-1$

-		result.append(this.methodBody.toString(tab + 1));

-	}

-	return result.toString();

-}

-/*

- * Update the bodyStart of the corresponding parse node

- */

-public void updateBodyStart(int bodyStart){

-	this.foundOpeningBrace = true;		

-	this.methodDeclaration.bodyStart = bodyStart;

-}

-public AbstractMethodDeclaration updatedMethodDeclaration(){

-

-	if (methodBody != null){

-		Block block = methodBody.updatedBlock();

-		if (block != null){

-			methodDeclaration.statements = block.statements;

-

-			/* first statement might be an explict constructor call destinated to a special slot */

-			if (methodDeclaration.isConstructor()) {

-				ConstructorDeclaration constructor = (ConstructorDeclaration)methodDeclaration;

-				if (methodDeclaration.statements != null

-					&& methodDeclaration.statements[0] instanceof ExplicitConstructorCall){

-					constructor.constructorCall = (ExplicitConstructorCall)methodDeclaration.statements[0];

-					int length = methodDeclaration.statements.length;

-					System.arraycopy(

-						methodDeclaration.statements, 

-						1, 

-						(methodDeclaration.statements = new Statement[length-1]),

-						0,

-						length-1);

-					}

-					if (constructor.constructorCall == null){ // add implicit constructor call

-						constructor.constructorCall = SuperReference.implicitSuperConstructorCall();

-					}

-			}

-		}

-	}

-	if (localTypeCount > 0) methodDeclaration.bits |= ASTNode.HasLocalTypeMASK;

-	return methodDeclaration;

-}

-/*

- * Update the corresponding parse node from parser state which

- * is about to disappear because of restarting recovery

- */

-public void updateFromParserState(){

-

-	if(this.bodyStartsAtHeaderEnd()){

-		Parser parser = this.parser();

-		/* might want to recover arguments or thrown exceptions */

-		if (parser.listLength > 0 && parser.astLengthPtr > 0){ // awaiting interface type references

-			/* has consumed the arguments - listed elements must be thrown exceptions */

-			if (methodDeclaration.sourceEnd == parser.rParenPos) {

-				

-				// protection for bugs 15142

-				int length = parser.astLengthStack[parser.astLengthPtr];

-				int astPtr = parser.astPtr - length;

-				boolean canConsume = astPtr >= 0;

-				if(canConsume) {

-					if((!(parser.astStack[astPtr] instanceof AbstractMethodDeclaration))) {

-						canConsume = false;

-					}

-					for (int i = 1, max = length + 1; i < max; i++) {

-						if(!(parser.astStack[astPtr + i ] instanceof TypeReference)) {

-							canConsume = false;

-						}

-					}

-				}

-				if (canConsume){

-					parser.consumeMethodHeaderThrowsClause(); 

-					// will reset typeListLength to zero

-					// thus this check will only be performed on first errorCheck after void foo() throws X, Y,

-				} else {

-					parser.listLength = 0;

-				}

-			} else {

-				/* has not consumed arguments yet, listed elements must be arguments */

-				if (parser.currentToken == TokenNameLPAREN || parser.currentToken == TokenNameSEMICOLON){

-					/* if currentToken is parenthesis this last argument is a method/field signature */

-					parser.astLengthStack[parser.astLengthPtr] --; 

-					parser.astPtr --; 

-					parser.listLength --;

-					parser.currentToken = 0;

-				}

-				int argLength = parser.astLengthStack[parser.astLengthPtr];

-				int argStart = parser.astPtr - argLength + 1;

-				boolean needUpdateRParenPos = parser.rParenPos < parser.lParenPos; // 12387 : rParenPos will be used

-				// to compute bodyStart, and thus used to set next checkpoint.

-				int count;

-				for (count = 0; count < argLength; count++){

-					Argument argument = (Argument)parser.astStack[argStart+count];

-					/* cannot be an argument if non final */

-					char[][] argTypeName = argument.type.getTypeName();

-					if ((argument.modifiers & ~AccFinal) != 0

-						|| (argTypeName.length == 1

-							&& CharOperation.equals(argTypeName[0], VoidBinding.sourceName()))){

-						parser.astLengthStack[parser.astLengthPtr] = count; 

-						parser.astPtr = argStart+count-1; 

-						parser.listLength = count;

-						parser.currentToken = 0;

-						break;

-					}

-					if (needUpdateRParenPos) parser.rParenPos = argument.sourceEnd + 1;

-				}

-				if (parser.listLength > 0 && parser.astLengthPtr > 0){

-					

-					// protection for bugs 15142

-					int length = parser.astLengthStack[parser.astLengthPtr];

-					int astPtr = parser.astPtr - length;

-					boolean canConsume = astPtr >= 0;

-					if(canConsume) {

-						if((!(parser.astStack[astPtr] instanceof AbstractMethodDeclaration))) {

-							canConsume = false;

-						}

-						for (int i = 1, max = length + 1; i < max; i++) {

-							if(!(parser.astStack[astPtr + i ] instanceof Argument)) {

-								canConsume = false;

-							}

-						}

-					}

-					if(canConsume) {

-						parser.consumeMethodHeaderRightParen();

-						/* fix-up positions, given they were updated against rParenPos, which did not get set */

-						if (parser.currentElement == this){ // parameter addition might have added an awaiting (no return type) method - see 1FVXQZ4 */

-							methodDeclaration.sourceEnd = methodDeclaration.arguments[methodDeclaration.arguments.length-1].sourceEnd;

-							methodDeclaration.bodyStart = methodDeclaration.sourceEnd+1;

-							parser.lastCheckPoint = methodDeclaration.bodyStart;

-						}

-					}

-				}

-			}

-		}

-	}

-}

-/*

- * An opening brace got consumed, might be the expected opening one of the current element,

- * in which case the bodyStart is updated.

- */

-public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){

-

-	/* in case the opening brace is close enough to the signature */

-	if (bracketBalance == 0){

-		/*

-			if (parser.scanner.searchLineNumber(methodDeclaration.sourceEnd) 

-				!= parser.scanner.searchLineNumber(braceEnd)){

-		 */

-		switch(parser().lastIgnoredToken){

-			case -1 :

-			case TokenNamethrows :

-				break;

-			default:

-				this.foundOpeningBrace = true;				

-				bracketBalance = 1; // pretend the brace was already there

-		}

-	}	

-	return super.updateOnOpeningBrace(braceStart, braceEnd);

-}

-public void updateParseTree(){

-	this.updatedMethodDeclaration();

-}

-/*

- * Update the declarationSourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int braceStart, int braceEnd){

-	if (this.methodDeclaration.declarationSourceEnd == 0) {

-		if(parser().rBraceSuccessorStart >= braceEnd) {

-			this.methodDeclaration.declarationSourceEnd = parser().rBraceEnd;

-			this.methodDeclaration.bodyEnd = parser().rBraceStart;

-		} else {

-			this.methodDeclaration.declarationSourceEnd = braceEnd;

-			this.methodDeclaration.bodyEnd  = braceStart - 1;

-		}

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredStatement.js
deleted file mode 100644
index e0499ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredStatement.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * Internal statement structure for parsing recovery 

- */

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Statement;

-

-public class RecoveredStatement extends RecoveredElement {

-

-	public Statement statement;

-public RecoveredStatement(Statement statement, RecoveredElement parent, int bracketBalance){

-	super(parent, bracketBalance);

-	this.statement = statement;

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return statement;

-}

-/*

- * Answer the very source end of the corresponding parse node

- */

-public int sourceEnd(){

-	return this.statement.sourceEnd;

-}

-public String toString(int tab){

-	return tabString(tab) + "Recovered statement:\n" + statement.print(tab + 1, new StringBuffer(10)); //$NON-NLS-1$

-}

-public Statement updatedStatement(){

-	return statement;

-}

-public void updateParseTree(){

-	this.updatedStatement();

-}

-/*

- * Update the declarationSourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int bodyStart, int bodyEnd){

-	if (this.statement.sourceEnd == 0)	

-		this.statement.sourceEnd = bodyEnd;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredType.js
deleted file mode 100644
index aa22a53..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredType.js
+++ /dev/null
@@ -1,511 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Block;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Initializer;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Statement;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeParameter;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeReference;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-

-/**

- * Internal type structure for parsing recovery 

- */

-

-public class RecoveredType extends RecoveredStatement implements TerminalTokens, CompilerModifiers {

-	public TypeDeclaration typeDeclaration;

-

-	public RecoveredType[] memberTypes;

-	public int memberTypeCount;

-	public RecoveredField[] fields;

-	public int fieldCount;

-	public RecoveredMethod[] methods;

-	public int methodCount;

-

-	public boolean preserveContent = false;	// only used for anonymous types

-	public int bodyEnd;

-	

-public RecoveredType(TypeDeclaration typeDeclaration, RecoveredElement parent, int bracketBalance){

-	super(typeDeclaration, parent, bracketBalance);

-	this.typeDeclaration = typeDeclaration;

-	this.foundOpeningBrace = !bodyStartsAtHeaderEnd();

-	if(this.foundOpeningBrace) {

-		this.bracketBalance++;

-	}

-}

-public RecoveredElement add(AbstractMethodDeclaration methodDeclaration, int bracketBalanceValue) {

-

-	/* do not consider a method starting passed the type end (if set)

-		it must be belonging to an enclosing type */

-	if (typeDeclaration.declarationSourceEnd != 0 

-		&& methodDeclaration.declarationSourceStart > typeDeclaration.declarationSourceEnd){

-		return this.parent.add(methodDeclaration, bracketBalanceValue);

-	}

-

-	if (methods == null) {

-		methods = new RecoveredMethod[5];

-		methodCount = 0;

-	} else {

-		if (methodCount == methods.length) {

-			System.arraycopy(

-				methods, 

-				0, 

-				(methods = new RecoveredMethod[2 * methodCount]), 

-				0, 

-				methodCount); 

-		}

-	}

-	RecoveredMethod element = new RecoveredMethod(methodDeclaration, this, bracketBalanceValue, this.recoveringParser);

-	methods[methodCount++] = element;

-

-	/* consider that if the opening brace was not found, it is there */

-	if (!foundOpeningBrace){

-		foundOpeningBrace = true;

-		this.bracketBalance++;

-	}

-	/* if method not finished, then method becomes current */

-	if (methodDeclaration.declarationSourceEnd == 0) return element;

-	return this;

-}

-public RecoveredElement add(Block nestedBlockDeclaration,int bracketBalanceValue) {

-	int modifiers = AccDefault;

-	if(this.parser().recoveredStaticInitializerStart != 0) {

-		modifiers = AccStatic;

-	}

-	return this.add(new Initializer(nestedBlockDeclaration, modifiers), bracketBalanceValue);

-}

-public RecoveredElement add(FieldDeclaration fieldDeclaration, int bracketBalanceValue) {

-	

-	/* do not consider a field starting passed the type end (if set)

-	it must be belonging to an enclosing type */

-	if (typeDeclaration.declarationSourceEnd != 0

-		&& fieldDeclaration.declarationSourceStart > typeDeclaration.declarationSourceEnd) {

-		return this.parent.add(fieldDeclaration, bracketBalanceValue);

-	}

-	if (fields == null) {

-		fields = new RecoveredField[5];

-		fieldCount = 0;

-	} else {

-		if (fieldCount == fields.length) {

-			System.arraycopy(

-				fields, 

-				0, 

-				(fields = new RecoveredField[2 * fieldCount]), 

-				0, 

-				fieldCount); 

-		}

-	}

-	RecoveredField element = fieldDeclaration.isField() 

-								? new RecoveredField(fieldDeclaration, this, bracketBalanceValue)

-								: new RecoveredInitializer(fieldDeclaration, this, bracketBalanceValue);

-	fields[fieldCount++] = element;

-

-	/* consider that if the opening brace was not found, it is there */

-	if (!foundOpeningBrace){

-		foundOpeningBrace = true;

-		this.bracketBalance++;

-	}

-	/* if field not finished, then field becomes current */

-	if (fieldDeclaration.declarationSourceEnd == 0) return element;

-	return this;

-}

-public RecoveredElement add(TypeDeclaration memberTypeDeclaration, int bracketBalanceValue) {

-

-	/* do not consider a type starting passed the type end (if set)

-		it must be belonging to an enclosing type */

-	if (typeDeclaration.declarationSourceEnd != 0 

-		&& memberTypeDeclaration.declarationSourceStart > typeDeclaration.declarationSourceEnd){

-		return this.parent.add(memberTypeDeclaration, bracketBalanceValue);

-	}

-	

-	if ((memberTypeDeclaration.bits & ASTNode.IsAnonymousTypeMASK) != 0){

-		if (this.methodCount > 0) {

-			// add it to the last method body

-			RecoveredMethod lastMethod = this.methods[this.methodCount-1];

-			lastMethod.methodDeclaration.bodyEnd = 0; // reopen method

-			lastMethod.methodDeclaration.declarationSourceEnd = 0; // reopen method

-			lastMethod.bracketBalance++; // expect one closing brace

-			return lastMethod.add(memberTypeDeclaration, bracketBalanceValue);

-		} else {

-			// ignore

-			return this;

-		}

-	}	

-		

-	if (memberTypes == null) {

-		memberTypes = new RecoveredType[5];

-		memberTypeCount = 0;

-	} else {

-		if (memberTypeCount == memberTypes.length) {

-			System.arraycopy(

-				memberTypes, 

-				0, 

-				(memberTypes = new RecoveredType[2 * memberTypeCount]), 

-				0, 

-				memberTypeCount); 

-		}

-	}

-	RecoveredType element = new RecoveredType(memberTypeDeclaration, this, bracketBalanceValue);

-	memberTypes[memberTypeCount++] = element;

-

-	/* consider that if the opening brace was not found, it is there */

-	if (!foundOpeningBrace){

-		foundOpeningBrace = true;

-		this.bracketBalance++;

-	}

-	/* if member type not finished, then member type becomes current */

-	if (memberTypeDeclaration.declarationSourceEnd == 0) return element;

-	return this;

-}

-/*

- * Answer the body end of the corresponding parse node

- */

-public int bodyEnd(){

-	if (bodyEnd == 0) return typeDeclaration.declarationSourceEnd;

-	return bodyEnd;

-}

-public boolean bodyStartsAtHeaderEnd(){

-	if (typeDeclaration.superInterfaces == null){

-		if (typeDeclaration.superclass == null){

-			if(typeDeclaration.typeParameters == null) {

-				return typeDeclaration.bodyStart == typeDeclaration.sourceEnd+1;

-			} else {

-				return typeDeclaration.bodyStart == typeDeclaration.typeParameters[typeDeclaration.typeParameters.length-1].sourceEnd+1;

-			}

-		} else {

-			return typeDeclaration.bodyStart == typeDeclaration.superclass.sourceEnd+1;

-		}

-	} else {

-		return typeDeclaration.bodyStart 

-				== typeDeclaration.superInterfaces[typeDeclaration.superInterfaces.length-1].sourceEnd+1;

-	}

-}

-/*

- * Answer the enclosing type node, or null if none

- */

-public RecoveredType enclosingType(){

-	RecoveredElement current = parent;

-	while (current != null){

-		if (current instanceof RecoveredType){

-			return (RecoveredType) current;

-		}

-		current = current.parent;

-	}

-	return null;

-}

-public char[] name(){

-	return typeDeclaration.name;

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return typeDeclaration;

-}

-/*

- * Answer the very source end of the corresponding parse node

- */

-public int sourceEnd(){

-	return this.typeDeclaration.declarationSourceEnd;

-}

-public String toString(int tab) {

-	StringBuffer result = new StringBuffer(tabString(tab));

-	result.append("Recovered type:\n"); //$NON-NLS-1$

-	if ((typeDeclaration.bits & ASTNode.IsAnonymousTypeMASK) != 0) {

-		result.append(tabString(tab));

-		result.append(" "); //$NON-NLS-1$

-	}

-	typeDeclaration.print(tab + 1, result);

-	if (this.memberTypes != null) {

-		for (int i = 0; i < this.memberTypeCount; i++) {

-			result.append("\n"); //$NON-NLS-1$

-			result.append(this.memberTypes[i].toString(tab + 1));

-		}

-	}

-	if (this.fields != null) {

-		for (int i = 0; i < this.fieldCount; i++) {

-			result.append("\n"); //$NON-NLS-1$

-			result.append(this.fields[i].toString(tab + 1));

-		}

-	}

-	if (this.methods != null) {

-		for (int i = 0; i < this.methodCount; i++) {

-			result.append("\n"); //$NON-NLS-1$

-			result.append(this.methods[i].toString(tab + 1));

-		}

-	}

-	return result.toString();

-}

-/*

- * Update the bodyStart of the corresponding parse node

- */

-public void updateBodyStart(int bodyStart){

-	this.foundOpeningBrace = true;

-	this.typeDeclaration.bodyStart = bodyStart;

-}

-public Statement updatedStatement(){

-

-	// ignore closed anonymous type

-	if ((typeDeclaration.bits & ASTNode.IsAnonymousTypeMASK) != 0 && !this.preserveContent){

-		return null;

-	}

-		

-	TypeDeclaration updatedType = this.updatedTypeDeclaration();

-	if ((updatedType.bits & ASTNode.IsAnonymousTypeMASK) != 0){

-		/* in presence of an anonymous type, we want the full allocation expression */

-		return updatedType.allocation;

-	}

-	return updatedType;

-}

-public TypeDeclaration updatedTypeDeclaration(){

-

-	/* update member types */

-	if (memberTypeCount > 0){

-		int existingCount = typeDeclaration.memberTypes == null ? 0 : typeDeclaration.memberTypes.length;

-		TypeDeclaration[] memberTypeDeclarations = new TypeDeclaration[existingCount + memberTypeCount];

-		if (existingCount > 0){

-			System.arraycopy(typeDeclaration.memberTypes, 0, memberTypeDeclarations, 0, existingCount);

-		}

-		// may need to update the declarationSourceEnd of the last type

-		if (memberTypes[memberTypeCount - 1].typeDeclaration.declarationSourceEnd == 0){

-			int bodyEndValue = bodyEnd();

-			memberTypes[memberTypeCount - 1].typeDeclaration.declarationSourceEnd = bodyEndValue;

-			memberTypes[memberTypeCount - 1].typeDeclaration.bodyEnd =  bodyEndValue;

-		}

-		for (int i = 0; i < memberTypeCount; i++){

-			memberTypeDeclarations[existingCount + i] = memberTypes[i].updatedTypeDeclaration();

-		}

-		typeDeclaration.memberTypes = memberTypeDeclarations;

-	}

-	/* update fields */

-	if (fieldCount > 0){

-		int existingCount = typeDeclaration.fields == null ? 0 : typeDeclaration.fields.length;

-		FieldDeclaration[] fieldDeclarations = new FieldDeclaration[existingCount + fieldCount];

-		if (existingCount > 0){

-			System.arraycopy(typeDeclaration.fields, 0, fieldDeclarations, 0, existingCount);

-		}

-		// may need to update the declarationSourceEnd of the last field

-		if (fields[fieldCount - 1].fieldDeclaration.declarationSourceEnd == 0){

-			int temp = bodyEnd();

-			fields[fieldCount - 1].fieldDeclaration.declarationSourceEnd = temp;

-			fields[fieldCount - 1].fieldDeclaration.declarationEnd = temp;

-		}

-		for (int i = 0; i < fieldCount; i++){

-			fieldDeclarations[existingCount + i] = fields[i].updatedFieldDeclaration();

-		}

-		typeDeclaration.fields = fieldDeclarations;

-	}

-	/* update methods */

-	int existingCount = typeDeclaration.methods == null ? 0 : typeDeclaration.methods.length;

-	boolean hasConstructor = false, hasRecoveredConstructor = false;

-	int defaultConstructorIndex = -1;

-	if (methodCount > 0){

-		AbstractMethodDeclaration[] methodDeclarations = new AbstractMethodDeclaration[existingCount + methodCount];

-		for (int i = 0; i < existingCount; i++){

-			AbstractMethodDeclaration m = typeDeclaration.methods[i];

-			if (m.isDefaultConstructor()) defaultConstructorIndex = i;

-			methodDeclarations[i] = m;

-		}

-		// may need to update the declarationSourceEnd of the last method

-		if (methods[methodCount - 1].methodDeclaration.declarationSourceEnd == 0){

-			int bodyEndValue = bodyEnd();

-			methods[methodCount - 1].methodDeclaration.declarationSourceEnd = bodyEndValue;

-			methods[methodCount - 1].methodDeclaration.bodyEnd = bodyEndValue;

-		}

-		for (int i = 0; i < methodCount; i++){

-			AbstractMethodDeclaration updatedMethod = methods[i].updatedMethodDeclaration();			

-			if (updatedMethod.isConstructor()) hasRecoveredConstructor = true;

-			methodDeclarations[existingCount + i] = updatedMethod;			

-		}

-		typeDeclaration.methods = methodDeclarations;

-		hasConstructor = typeDeclaration.checkConstructors(this.parser());

-	} else {

-		for (int i = 0; i < existingCount; i++){

-			if (typeDeclaration.methods[i].isConstructor()) hasConstructor = true;

-		}		

-	}

-	/* add clinit ? */

-	if (typeDeclaration.needClassInitMethod()){

-		boolean alreadyHasClinit = false;

-		for (int i = 0; i < existingCount; i++){

-			if (typeDeclaration.methods[i].isClinit()){

-				alreadyHasClinit = true;

-				break;

-			}

-		}

-		if (!alreadyHasClinit) typeDeclaration.addClinit();

-	}

-	/* add default constructor ? */

-	if (defaultConstructorIndex >= 0 && hasRecoveredConstructor){

-		/* should discard previous default construtor */

-		AbstractMethodDeclaration[] methodDeclarations = new AbstractMethodDeclaration[typeDeclaration.methods.length - 1];

-		if (defaultConstructorIndex != 0){

-			System.arraycopy(typeDeclaration.methods, 0, methodDeclarations, 0, defaultConstructorIndex);

-		}

-		if (defaultConstructorIndex != typeDeclaration.methods.length-1){

-			System.arraycopy(

-				typeDeclaration.methods, 

-				defaultConstructorIndex+1, 

-				methodDeclarations, 

-				defaultConstructorIndex, 

-				typeDeclaration.methods.length - defaultConstructorIndex - 1);

-		}

-		typeDeclaration.methods = methodDeclarations;

-	} else {

-		if (!hasConstructor && !typeDeclaration.isInterface()) {// if was already reduced, then constructor

-			boolean insideFieldInitializer = false;

-			RecoveredElement parentElement = this.parent; 

-			while (parentElement != null){

-				if (parentElement instanceof RecoveredField){

-						insideFieldInitializer = true;

-						break; 

-				}

-				parentElement = parentElement.parent;

-			}

-			typeDeclaration.createsInternalConstructor(!parser().diet || insideFieldInitializer, true);

-		} 

-	}

-	if (parent instanceof RecoveredType){

-		typeDeclaration.bits |= ASTNode.IsMemberTypeMASK;

-	} else if (parent instanceof RecoveredMethod){

-		typeDeclaration.bits |= ASTNode.IsLocalTypeMASK;

-	}

-	return typeDeclaration;

-}

-/*

- * Update the corresponding parse node from parser state which

- * is about to disappear because of restarting recovery

- */

-public void updateFromParserState(){

-

-	if(this.bodyStartsAtHeaderEnd()){

-		Parser parser = this.parser();

-		/* might want to recover implemented interfaces */

-		// protection for bugs 15142

-		if (parser.listLength > 0 && parser.astLengthPtr > 0){ // awaiting interface type references

-			int length = parser.astLengthStack[parser.astLengthPtr];

-			int astPtr = parser.astPtr - length;

-			boolean canConsume = astPtr >= 0;

-			if(canConsume) {

-				if((!(parser.astStack[astPtr] instanceof TypeDeclaration))) {

-					canConsume = false;

-				}

-				for (int i = 1, max = length + 1; i < max; i++) {

-					if(!(parser.astStack[astPtr + i ] instanceof TypeReference)) {

-						canConsume = false;

-					}

-				}

-			}

-			if(canConsume) {

-				parser.consumeClassHeaderImplements(); 

-				// will reset typeListLength to zero

-				// thus this check will only be performed on first errorCheck after class X implements Y,Z,

-			}

-		} else if (parser.listTypeParameterLength > 0) {

-			int length = parser.listTypeParameterLength;

-			int genericsPtr = parser.genericsPtr;

-			boolean canConsume = genericsPtr + 1 >= length && parser.astPtr > -1;

-			if(canConsume) {

-				if (!(parser.astStack[parser.astPtr] instanceof TypeDeclaration)) {

-					canConsume = false;

-				}

-				while(genericsPtr + 1 > length && !(parser.genericsStack[genericsPtr] instanceof TypeParameter)) {

-					genericsPtr--;

-				}

-				for (int i = 0; i < length; i++) {

-					if(!(parser.genericsStack[genericsPtr - i] instanceof TypeParameter)) {

-						canConsume = false;

-					}

-				}

-			}

-			if(canConsume) {

-				TypeDeclaration typeDecl = (TypeDeclaration)parser.astStack[parser.astPtr];

-				System.arraycopy(parser.genericsStack, genericsPtr - length + 1, typeDecl.typeParameters = new TypeParameter[length], 0, length);

-				typeDecl.bodyStart = typeDecl.typeParameters[length-1].declarationSourceEnd + 1;

-				parser.listTypeParameterLength = 0;

-				parser.lastCheckPoint = typeDecl.bodyStart;

-			}

-		}

-	}

-}

-/*

- * A closing brace got consumed, might have closed the current element,

- * in which case both the currentElement is exited

- */

-public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){

-	if ((--bracketBalance <= 0) && (parent != null)){

-		this.updateSourceEndIfNecessary(braceStart, braceEnd);

-		this.bodyEnd = braceStart - 1;

-		return parent;

-	}

-	return this;

-}

-/*

- * An opening brace got consumed, might be the expected opening one of the current element,

- * in which case the bodyStart is updated.

- */

-public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){

-	/* in case the opening brace is not close enough to the signature, ignore it */

-	if (bracketBalance == 0){

-		/*

-			if (parser.scanner.searchLineNumber(typeDeclaration.sourceEnd) 

-				!= parser.scanner.searchLineNumber(braceEnd)){

-		 */

-		Parser parser = this.parser();

-		switch(parser.lastIgnoredToken){

-			case -1 :

-			case TokenNameextends :

-			case TokenNameimplements :

-			case TokenNameGREATER :

-			case TokenNameRIGHT_SHIFT :

-			case TokenNameUNSIGNED_RIGHT_SHIFT :

-				if (parser.recoveredStaticInitializerStart == 0) break;

-			default:

-				this.foundOpeningBrace = true;				

-				bracketBalance = 1; // pretend the brace was already there

-		}

-	}	

-	// might be an initializer

-	if (this.bracketBalance == 1){

-		Block block = new Block(0);

-		Parser parser = this.parser();

-		block.sourceStart = parser.scanner.startPosition;

-		Initializer init;

-		if (parser.recoveredStaticInitializerStart == 0){

-			init = new Initializer(block, AccDefault);

-		} else {

-			init = new Initializer(block, AccStatic);

-			init.declarationSourceStart = parser.recoveredStaticInitializerStart;

-		}

-		init.bodyStart = parser.scanner.currentPosition;

-		return this.add(init, 1);

-	}

-	return super.updateOnOpeningBrace(braceStart, braceEnd);

-}

-public void updateParseTree(){

-	this.updatedTypeDeclaration();

-}

-/*

- * Update the declarationSourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int start, int end){

-	if (this.typeDeclaration.declarationSourceEnd == 0){

-		this.bodyEnd = 0;

-		this.typeDeclaration.declarationSourceEnd = end;

-		this.typeDeclaration.bodyEnd = end;

-	}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredUnit.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredUnit.js
deleted file mode 100644
index 6185e88..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/RecoveredUnit.js
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * Internal field structure for parsing recovery 

- */

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Block;

-import org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ImportReference;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Initializer;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-

-public class RecoveredUnit extends RecoveredElement {

-

-	public CompilationUnitDeclaration unitDeclaration;

-	

-	public RecoveredImport[] imports;

-	public int importCount;

-	public RecoveredType[] types;

-	public int typeCount;

-public RecoveredUnit(CompilationUnitDeclaration unitDeclaration, int bracketBalance, Parser parser){

-	super(null, bracketBalance, parser);

-	this.unitDeclaration = unitDeclaration;

-}

-/*

- *	Record a method declaration: should be attached to last type

- */

-public RecoveredElement add(AbstractMethodDeclaration methodDeclaration, int bracketBalanceValue) {

-

-	/* attach it to last type - if any */

-	if (this.typeCount > 0){

-		RecoveredType type = this.types[this.typeCount -1];

-		int start = type.bodyEnd;

-		int end = type.typeDeclaration.bodyEnd;

-		type.bodyEnd = 0; // reset position

-		type.typeDeclaration.declarationSourceEnd = 0; // reset position

-		type.typeDeclaration.bodyEnd = 0;

-		

-		if(start < end) {

-			Initializer initializer = new Initializer(new Block(0), 0);

-			initializer.bodyStart = end;

-			initializer.bodyEnd = end;

-			initializer.declarationSourceStart = end;

-			initializer.declarationSourceEnd = start;

-			type.add(initializer, bracketBalanceValue);

-		}

-		

-		return type.add(methodDeclaration, bracketBalanceValue);

-	}

-	return this; // ignore

-}

-/*

- *	Record a field declaration: should be attached to last type

- */

-public RecoveredElement add(FieldDeclaration fieldDeclaration, int bracketBalanceValue) {

-

-	/* attach it to last type - if any */

-	if (this.typeCount > 0){

-		RecoveredType type = this.types[this.typeCount -1];

-		type.bodyEnd = 0; // reset position

-		type.typeDeclaration.declarationSourceEnd = 0; // reset position

-		type.typeDeclaration.bodyEnd = 0;

-		return type.add(fieldDeclaration, bracketBalanceValue);

-	}

-	return this; // ignore

-}

-public RecoveredElement add(ImportReference importReference, int bracketBalanceValue) {

-	if (this.imports == null) {

-		this.imports = new RecoveredImport[5];

-		this.importCount = 0;

-	} else {

-		if (this.importCount == this.imports.length) {

-			System.arraycopy(

-				this.imports, 

-				0, 

-				(this.imports = new RecoveredImport[2 * this.importCount]), 

-				0, 

-				this.importCount); 

-		}

-	}

-	RecoveredImport element = new RecoveredImport(importReference, this, bracketBalanceValue);

-	this.imports[this.importCount++] = element;

-

-	/* if import not finished, then import becomes current */

-	if (importReference.declarationSourceEnd == 0) return element;

-	return this;		

-}

-public RecoveredElement add(TypeDeclaration typeDeclaration, int bracketBalanceValue) {

-	

-	if ((typeDeclaration.bits & ASTNode.IsAnonymousTypeMASK) != 0){

-		if (this.typeCount > 0) {

-			// add it to the last type

-			RecoveredType lastType = this.types[this.typeCount-1];

-			lastType.bodyEnd = 0; // reopen type

-			lastType.typeDeclaration.bodyEnd = 0; // reopen type

-			lastType.typeDeclaration.declarationSourceEnd = 0; // reopen type

-			lastType.bracketBalance++; // expect one closing brace

-			return lastType.add(typeDeclaration, bracketBalanceValue);

-		}

-	}

-	if (this.types == null) {

-		this.types = new RecoveredType[5];

-		this.typeCount = 0;

-	} else {

-		if (this.typeCount == this.types.length) {

-			System.arraycopy(

-				this.types, 

-				0, 

-				(this.types = new RecoveredType[2 * this.typeCount]), 

-				0, 

-				this.typeCount); 

-		}

-	}

-	RecoveredType element = new RecoveredType(typeDeclaration, this, bracketBalanceValue);

-	this.types[this.typeCount++] = element;

-

-	/* if type not finished, then type becomes current */

-	if (typeDeclaration.declarationSourceEnd == 0) return element;

-	return this;	

-}

-/* 

- * Answer the associated parsed structure

- */

-public ASTNode parseTree(){

-	return this.unitDeclaration;

-}

-/*

- * Answer the very source end of the corresponding parse node

- */

-public int sourceEnd(){

-	return this.unitDeclaration.sourceEnd;

-}

-public String toString(int tab) {

-	StringBuffer result = new StringBuffer(tabString(tab));

-	result.append("Recovered unit: [\n"); //$NON-NLS-1$

-	this.unitDeclaration.print(tab + 1, result);

-	result.append(tabString(tab + 1));

-	result.append("]"); //$NON-NLS-1$

-	if (this.imports != null) {

-		for (int i = 0; i < this.importCount; i++) {

-			result.append("\n"); //$NON-NLS-1$

-			result.append(this.imports[i].toString(tab + 1));

-		}

-	}

-	if (this.types != null) {

-		for (int i = 0; i < this.typeCount; i++) {

-			result.append("\n"); //$NON-NLS-1$

-			result.append(this.types[i].toString(tab + 1));

-		}

-	}

-	return result.toString();

-}

-public CompilationUnitDeclaration updatedCompilationUnitDeclaration(){

-

-	/* update imports */

-	if (this.importCount > 0){

-		ImportReference[] importRefences = new ImportReference[this.importCount];

-		for (int i = 0; i < this.importCount; i++){

-			importRefences[i] = this.imports[i].updatedImportReference();

-		}

-		this.unitDeclaration.imports = importRefences;

-	}

-	/* update types */

-	if (this.typeCount > 0){

-		int existingCount = this.unitDeclaration.types == null ? 0 : this.unitDeclaration.types.length;

-		TypeDeclaration[] typeDeclarations = new TypeDeclaration[existingCount + this.typeCount];

-		if (existingCount > 0){

-			System.arraycopy(this.unitDeclaration.types, 0, typeDeclarations, 0, existingCount);

-		}

-		// may need to update the declarationSourceEnd of the last type

-		if (this.types[this.typeCount - 1].typeDeclaration.declarationSourceEnd == 0){

-			this.types[this.typeCount - 1].typeDeclaration.declarationSourceEnd = this.unitDeclaration.sourceEnd;

-			this.types[this.typeCount - 1].typeDeclaration.bodyEnd = this.unitDeclaration.sourceEnd;

-		}

-		int actualCount = existingCount;

-		for (int i = 0; i < this.typeCount; i++){

-			TypeDeclaration typeDecl = this.types[i].updatedTypeDeclaration();

-			// filter out local types (12454)

-			if ((typeDecl.bits & ASTNode.IsLocalTypeMASK) == 0){

-				typeDeclarations[actualCount++] = typeDecl;

-			}

-		}

-		if (actualCount != this.typeCount){

-			System.arraycopy(

-				typeDeclarations, 

-				0, 

-				typeDeclarations = new TypeDeclaration[existingCount+actualCount], 

-				0, 

-				existingCount+actualCount);

-		}

-		this.unitDeclaration.types = typeDeclarations;

-	}

-	return this.unitDeclaration;

-}

-public void updateParseTree(){

-	this.updatedCompilationUnitDeclaration();

-}

-/*

- * Update the sourceEnd of the corresponding parse node

- */

-public void updateSourceEndIfNecessary(int bodyStart, int bodyEnd){

-	if (this.unitDeclaration.sourceEnd == 0)

-		this.unitDeclaration.sourceEnd = bodyEnd;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/Scanner.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/Scanner.js
deleted file mode 100644
index 96f4571..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/Scanner.js
+++ /dev/null
@@ -1,3587 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-import java.util.Iterator;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.StringLiteral;

-import org.eclipse.wst.jsdt.internal.compiler.classfmt.ClassFileConstants;

-

-/**

- * IMPORTANT NOTE: Internal Scanner implementation. It is mirrored in 

- * org.eclipse.wst.jsdt.core.compiler public package where it is API. 

- * The mirror implementation is using the backward compatible ITerminalSymbols constant 

- * definitions (stable with 2.0), whereas the internal implementation uses TerminalTokens 

- * which constant values reflect the latest parser generation state.

- */

-public class Scanner implements TerminalTokens {

-

-	/* APIs ares

-	 - getNextToken() which return the current type of the token

-	   (this value is not memorized by the scanner)

-	 - getCurrentTokenSource() which provides with the token "REAL" source

-	   (aka all unicode have been transformed into a correct char)

-	 - sourceStart gives the position into the stream

-	 - currentPosition-1 gives the sourceEnd position into the stream 

-	*/

-	private long sourceLevel;

-	// 1.4 feature 

-	public boolean useAssertAsAnIndentifier = false;

-	//flag indicating if processed source contains occurrences of keyword assert 

-	public boolean containsAssertKeyword = false; 

-	

-	// 1.5 feature

-	public boolean useEnumAsAnIndentifier = false;

-	

-	public boolean recordLineSeparator = false;

-	public char currentCharacter;

-	public int startPosition;

-	public int currentPosition;

-	public int initialPosition, eofPosition;

-	// after this position eof are generated instead of real token from the source

-

-	public boolean tokenizeComments = false;

-	public boolean tokenizeWhiteSpace = false;

-

-	//source should be viewed as a window (aka a part)

-	//of a entire very large stream

-	public char source[];

-

-	//unicode support

-	public char[] withoutUnicodeBuffer;

-	public int withoutUnicodePtr; //when == 0 ==> no unicode in the current token

-	public boolean unicodeAsBackSlash = false;

-

-	public boolean scanningFloatLiteral = false;

-

-	//support for /** comments

-	public int[] commentStops = new int[10];

-	public int[] commentStarts = new int[10];

-	public int commentPtr = -1; // no comment test with commentPtr value -1

-	protected int lastCommentLinePosition = -1;

-	

-	// task tag support

-	public char[][] foundTaskTags = null;

-	public char[][] foundTaskMessages;

-	public char[][] foundTaskPriorities = null;

-	public int[][] foundTaskPositions;

-	public int foundTaskCount = 0;

-	public char[][] taskTags = null;

-	public char[][] taskPriorities = null;

-	public boolean isTaskCaseSensitive = true;

-	

-	//diet parsing support - jump over some method body when requested

-	public boolean diet = false;

-

-	//support for the  poor-line-debuggers ....

-	//remember the position of the cr/lf

-	public int[] lineEnds = new int[250];

-	public int linePtr = -1;

-	public boolean wasAcr = false;

-

-	public static final String END_OF_SOURCE = "End_Of_Source"; //$NON-NLS-1$

-

-	public static final String INVALID_HEXA = "Invalid_Hexa_Literal"; //$NON-NLS-1$

-	public static final String INVALID_OCTAL = "Invalid_Octal_Literal"; //$NON-NLS-1$

-	public static final String INVALID_CHARACTER_CONSTANT = "Invalid_Character_Constant";  //$NON-NLS-1$

-	public static final String INVALID_ESCAPE = "Invalid_Escape"; //$NON-NLS-1$

-	public static final String INVALID_INPUT = "Invalid_Input"; //$NON-NLS-1$

-	public static final String INVALID_UNICODE_ESCAPE = "Invalid_Unicode_Escape"; //$NON-NLS-1$

-	public static final String INVALID_FLOAT = "Invalid_Float_Literal"; //$NON-NLS-1$

-

-	public static final String NULL_SOURCE_STRING = "Null_Source_String"; //$NON-NLS-1$

-	public static final String UNTERMINATED_STRING = "Unterminated_String"; //$NON-NLS-1$

-	public static final String UNTERMINATED_COMMENT = "Unterminated_Comment"; //$NON-NLS-1$

-	public static final String INVALID_CHAR_IN_STRING = "Invalid_Char_In_String"; //$NON-NLS-1$

-	public static final String INVALID_DIGIT = "Invalid_Digit"; //$NON-NLS-1$	

-

-	//----------------optimized identifier managment------------------

-	static final char[] charArray_a = new char[] {'a'}, 

-		charArray_b = new char[] {'b'}, 

-		charArray_c = new char[] {'c'}, 

-		charArray_d = new char[] {'d'}, 

-		charArray_e = new char[] {'e'}, 

-		charArray_f = new char[] {'f'}, 

-		charArray_g = new char[] {'g'}, 

-		charArray_h = new char[] {'h'}, 

-		charArray_i = new char[] {'i'}, 

-		charArray_j = new char[] {'j'}, 

-		charArray_k = new char[] {'k'}, 

-		charArray_l = new char[] {'l'}, 

-		charArray_m = new char[] {'m'}, 

-		charArray_n = new char[] {'n'}, 

-		charArray_o = new char[] {'o'}, 

-		charArray_p = new char[] {'p'}, 

-		charArray_q = new char[] {'q'}, 

-		charArray_r = new char[] {'r'}, 

-		charArray_s = new char[] {'s'}, 

-		charArray_t = new char[] {'t'}, 

-		charArray_u = new char[] {'u'}, 

-		charArray_v = new char[] {'v'}, 

-		charArray_w = new char[] {'w'}, 

-		charArray_x = new char[] {'x'}, 

-		charArray_y = new char[] {'y'}, 

-		charArray_z = new char[] {'z'}; 

-

-	static final char[] initCharArray = 

-		new char[] {'\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000'}; 

-	static final int TableSize = 30, InternalTableSize = 6; //30*6 = 180 entries

-	public static final int OptimizedLength = 6;

-	public /*static*/ final char[][][][] charArray_length = 

-		new char[OptimizedLength][TableSize][InternalTableSize][]; 

-	// support for detecting non-externalized string literals

-	public NLSLine currentLine= null;

-	public static final String TAG_PREFIX= "//$NON-NLS-"; //$NON-NLS-1$

-	public static final int TAG_PREFIX_LENGTH= TAG_PREFIX.length();

-	public static final String TAG_POSTFIX= "$"; //$NON-NLS-1$

-	public static final int TAG_POSTFIX_LENGTH= TAG_POSTFIX.length();

-	public StringLiteral[] nonNLSStrings = null;

-	public boolean checkNonExternalizedStringLiterals = false;

-	public boolean wasNonExternalizedStringLiteral = false;

-	

-	// generic support

-	public boolean returnOnlyGreater = false;

-	

-	/*static*/ {

-		for (int i = 0; i < 6; i++) {

-			for (int j = 0; j < TableSize; j++) {

-				for (int k = 0; k < InternalTableSize; k++) {

-					this.charArray_length[i][j][k] = initCharArray;

-				}

-			}

-		}

-	}

-	static int newEntry2 = 0, 

-		newEntry3 = 0, 

-		newEntry4 = 0, 

-		newEntry5 = 0, 

-		newEntry6 = 0;

-

-	public static final int RoundBracket = 0;

-	public static final int SquareBracket = 1;

-	public static final int CurlyBracket = 2;	

-	public static final int BracketKinds = 3;

-

-public Scanner() {

-	this(false /*comment*/, false /*whitespace*/, false /*nls*/, ClassFileConstants.JDK1_3 /*sourceLevel*/, null/*taskTag*/, null/*taskPriorities*/, true /*taskCaseSensitive*/);

-}

-

-public Scanner(

-	boolean tokenizeComments, 

-	boolean tokenizeWhiteSpace, 

-	boolean checkNonExternalizedStringLiterals, 

-	long sourceLevel,

-	char[][] taskTags,

-	char[][] taskPriorities,

-	boolean isTaskCaseSensitive) {

-

-	this.eofPosition = Integer.MAX_VALUE;

-	this.tokenizeComments = tokenizeComments;

-	this.tokenizeWhiteSpace = tokenizeWhiteSpace;

-	this.checkNonExternalizedStringLiterals = checkNonExternalizedStringLiterals;

-	this.sourceLevel = sourceLevel;

-	this.taskTags = taskTags;

-	this.taskPriorities = taskPriorities;

-	this.isTaskCaseSensitive = isTaskCaseSensitive;

-}

-

-public  final boolean atEnd() {

-	// This code is not relevant if source is 

-	// Only a part of the real stream input

-

-	return this.source.length == this.currentPosition;

-}

-

-private void checkNonExternalizedString() {

-	if (this.currentLine == null) 

-		return;

-	parseTags(this.currentLine);

-}

-

-// chech presence of task: tags

-// TODO (frederic) see if we need to take unicode characters into account...

-public void checkTaskTag(int commentStart, int commentEnd) {

-	char[] src = this.source;

-	

-	// only look for newer task: tags

-	if (this.foundTaskCount > 0

-		&& this.foundTaskPositions[this.foundTaskCount - 1][0] >= commentStart) {

-		return;

-	}

-	int foundTaskIndex = this.foundTaskCount;

-	char previous = src[commentStart+1]; // should be '*' or '/'

-	nextChar : for (

-		int i = commentStart + 2; i < commentEnd && i < this.eofPosition; i++) {

-		char[] tag = null;

-		char[] priority = null;

-		// check for tag occurrence only if not ambiguous with javadoc tag

-		if (previous != '@') {

-			nextTag : for (int itag = 0; itag < this.taskTags.length; itag++) {

-				tag = this.taskTags[itag];

-				int tagLength = tag.length;

-				if (tagLength == 0) continue nextTag;

-	

-				// ensure tag is not leaded with letter if tag starts with a letter

-				if (Character.isJavaIdentifierStart(tag[0])) {

-					if (Character.isJavaIdentifierPart(previous)) {

-						continue nextTag;

-					}

-				}

-	

-				for (int t = 0; t < tagLength; t++) {

-					char sc, tc;

-					int x = i+t;

-					if (x >= this.eofPosition || x >= commentEnd) continue nextTag;

-					if ((sc = src[i + t]) != (tc = tag[t])) { 																					// case sensitive check

-						if (this.isTaskCaseSensitive || (Character.toLowerCase(sc) != Character.toLowerCase(tc))) { 	// case insensitive check

-							continue nextTag;

-						}

-					}

-				}

-				// ensure tag is not followed with letter if tag finishes with a letter

-				if (i+tagLength < commentEnd && Character.isJavaIdentifierPart(src[i+tagLength-1])) {

-					if (Character.isJavaIdentifierPart(src[i + tagLength]))

-						continue nextTag;

-				}

-				if (this.foundTaskTags == null) {

-					this.foundTaskTags = new char[5][];

-					this.foundTaskMessages = new char[5][];

-					this.foundTaskPriorities = new char[5][];

-					this.foundTaskPositions = new int[5][];

-				} else if (this.foundTaskCount == this.foundTaskTags.length) {

-					System.arraycopy(this.foundTaskTags, 0, this.foundTaskTags = new char[this.foundTaskCount * 2][], 0, this.foundTaskCount);

-					System.arraycopy(this.foundTaskMessages, 0, this.foundTaskMessages = new char[this.foundTaskCount * 2][], 0, this.foundTaskCount);

-					System.arraycopy(this.foundTaskPriorities, 0, this.foundTaskPriorities = new char[this.foundTaskCount * 2][], 0, this.foundTaskCount);

-					System.arraycopy(this.foundTaskPositions, 0, this.foundTaskPositions = new int[this.foundTaskCount * 2][], 0, this.foundTaskCount);

-				}

-				

-				priority = this.taskPriorities != null && itag < this.taskPriorities.length

-							? this.taskPriorities[itag]

-							: null;

-				

-				this.foundTaskTags[this.foundTaskCount] = tag;

-				this.foundTaskPriorities[this.foundTaskCount] = priority;

-				this.foundTaskPositions[this.foundTaskCount] = new int[] { i, i + tagLength - 1 };

-				this.foundTaskMessages[this.foundTaskCount] = CharOperation.NO_CHAR;

-				this.foundTaskCount++;

-				i += tagLength - 1; // will be incremented when looping

-				break nextTag;

-			}

-		}

-		previous = src[i];

-	}

-	for (int i = foundTaskIndex; i < this.foundTaskCount; i++) {

-		// retrieve message start and end positions

-		int msgStart = this.foundTaskPositions[i][0] + this.foundTaskTags[i].length;

-		int max_value = i + 1 < this.foundTaskCount

-				? this.foundTaskPositions[i + 1][0] - 1

-				: commentEnd - 1;

-		// at most beginning of next task

-		if (max_value < msgStart) {

-			max_value = msgStart; // would only occur if tag is before EOF.

-		}

-		int end = -1;

-		char c;

-		for (int j = msgStart; j < max_value; j++) {

-			if ((c = src[j]) == '\n' || c == '\r') {

-				end = j - 1;

-				break;

-			}

-		}

-		if (end == -1) {

-			for (int j = max_value; j > msgStart; j--) {

-				if ((c = src[j]) == '*') {

-					end = j - 1;

-					break;

-				}

-			}

-			if (end == -1)

-				end = max_value;

-		}

-		if (msgStart == end)

-			continue; // empty

-		// trim the message

-		while (CharOperation.isWhitespace(src[end]) && msgStart <= end)

-			end--;

-		while (CharOperation.isWhitespace(src[msgStart]) && msgStart <= end)

-			msgStart++;

-		// update the end position of the task

-		this.foundTaskPositions[i][1] = end;

-		// get the message source

-		final int messageLength = end - msgStart + 1;

-		char[] message = new char[messageLength];

-		System.arraycopy(src, msgStart, message, 0, messageLength);

-		this.foundTaskMessages[i] = message;

-	}

-}

-public char[] getCurrentIdentifierSource() {

-	//return the token REAL source (aka unicodes are precomputed)

-

-	char[] result;

-	if (this.withoutUnicodePtr != 0) {

-		//0 is used as a fast test flag so the real first char is in position 1

-		System.arraycopy(

-			this.withoutUnicodeBuffer, 

-			1, 

-			result = new char[this.withoutUnicodePtr], 

-			0, 

-			this.withoutUnicodePtr); 

-	} else {

-		int length = this.currentPosition - this.startPosition;

-		if (length == this.source.length) return this.source;

-		switch (length) { // see OptimizedLength

-			case 1 :

-				return optimizedCurrentTokenSource1();

-			case 2 :

-				return optimizedCurrentTokenSource2();

-			case 3 :

-				return optimizedCurrentTokenSource3();

-			case 4 :

-				return optimizedCurrentTokenSource4();

-			case 5 :

-				return optimizedCurrentTokenSource5();

-			case 6 :

-				return optimizedCurrentTokenSource6();

-		}

-		//no optimization

-		System.arraycopy(this.source, this.startPosition, result = new char[length], 0, length);

-	}

-	return result;

-}

-public int getCurrentTokenEndPosition(){

-	return this.currentPosition - 1;

-}

-public final char[] getCurrentTokenSource() {

-	// Return the token REAL source (aka unicodes are precomputed)

-

-	char[] result;

-	if (this.withoutUnicodePtr != 0)

-		// 0 is used as a fast test flag so the real first char is in position 1

-		System.arraycopy(

-			this.withoutUnicodeBuffer, 

-			1, 

-			result = new char[this.withoutUnicodePtr], 

-			0, 

-			this.withoutUnicodePtr); 

-	else {

-		int length;

-		System.arraycopy(

-			this.source, 

-			this.startPosition, 

-			result = new char[length = this.currentPosition - this.startPosition], 

-			0, 

-			length); 

-	}

-	return result;

-}

-public final char[] getCurrentTokenSourceString() {

-	//return the token REAL source (aka unicodes are precomputed).

-	//REMOVE the two " that are at the beginning and the end.

-

-	char[] result;

-	if (this.withoutUnicodePtr != 0)

-		//0 is used as a fast test flag so the real first char is in position 1

-		System.arraycopy(this.withoutUnicodeBuffer, 2,

-		//2 is 1 (real start) + 1 (to jump over the ")

-		result = new char[this.withoutUnicodePtr - 2], 0, this.withoutUnicodePtr - 2);

-	else {

-		int length;

-		System.arraycopy(

-			this.source, 

-			this.startPosition + 1, 

-			result = new char[length = this.currentPosition - this.startPosition - 2], 

-			0, 

-			length); 

-	}

-	return result;

-}

-

-public final char[] getRawTokenSource() {

-	int length = this.currentPosition - this.startPosition;

-	char[] tokenSource = new char[length];

-	System.arraycopy(this.source, this.startPosition, tokenSource, 0, length);

-	return tokenSource;	

-}

-	

-public final char[] getRawTokenSourceEnd() {

-	int length = this.eofPosition - this.currentPosition - 1;

-	char[] sourceEnd = new char[length];

-	System.arraycopy(this.source, this.currentPosition, sourceEnd, 0, length);

-	return sourceEnd;	

-}

-	

-public int getCurrentTokenStartPosition(){

-	return this.startPosition;

-}

-/*

- * Search the source position corresponding to the end of a given line number

- *

- * Line numbers are 1-based, and relative to the scanner initialPosition. 

- * Character positions are 0-based.

- *

- * In case the given line number is inconsistent, answers -1.

- */

-public final int getLineEnd(int lineNumber) {

-

-	if (this.lineEnds == null) 

-		return -1;

-	if (lineNumber > this.lineEnds.length+1) 

-		return -1;

-	if (lineNumber <= 0) 

-		return -1;

-	if (lineNumber == this.lineEnds.length + 1) 

-		return this.eofPosition;

-	return this.lineEnds[lineNumber-1]; // next line start one character behind the lineEnd of the previous line

-}

-

-public final int[] getLineEnds() {

-	//return a bounded copy of this.lineEnds 

-

-	int[] copy;

-	System.arraycopy(this.lineEnds, 0, copy = new int[this.linePtr + 1], 0, this.linePtr + 1);

-	return copy;

-}

-

-/**

- * Search the source position corresponding to the beginning of a given line number

- *

- * Line numbers are 1-based, and relative to the scanner initialPosition. 

- * Character positions are 0-based.

- *

- * e.g.	getLineStart(1) --> 0	indicates that the first line starts at character 0.

- *

- * In case the given line number is inconsistent, answers -1.

- * 

- * @param lineNumber int

- * @return int

- */

-public final int getLineStart(int lineNumber) {

-

-	if (this.lineEnds == null) 

-		return -1;

-	if (lineNumber > this.lineEnds.length + 1) 

-		return -1;

-	if (lineNumber <= 0) 

-		return -1;

-	

-	if (lineNumber == 1) 

-		return this.initialPosition;

-	return this.lineEnds[lineNumber-2]+1; // next line start one character behind the lineEnd of the previous line

-}

-public final int getNextChar() {

-	try {

-		if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-			&& (this.source[this.currentPosition] == 'u')) {

-			//-------------unicode traitement ------------

-			int c1, c2, c3, c4;

-			int unicodeSize = 6;

-			this.currentPosition++;

-			while (this.source[this.currentPosition] == 'u') {

-				this.currentPosition++;

-				unicodeSize++;

-			}

-

-			if (((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-				|| c1 < 0)

-				|| ((c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c2 < 0)

-				|| ((c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c3 < 0)

-				|| ((c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c4 < 0)) {

-				return -1;

-			}

-

-			this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-

-			this.unicodeAsBackSlash = this.currentCharacter == '\\';

-

-			//need the unicode buffer

-			if (this.withoutUnicodePtr == 0) {

-				//buffer all the entries that have been left aside....

-			    unicodeInitializeBuffer(this.currentPosition - unicodeSize - this.startPosition);

-			}

-			//fill the buffer with the char

-			unicodeStoreAt(++this.withoutUnicodePtr);

-			return this.currentCharacter;

-

-		} //-------------end unicode traitement--------------

-		else {

-			this.unicodeAsBackSlash = false;

-			if (this.withoutUnicodePtr != 0) {

-			    unicodeStoreAt(++this.withoutUnicodePtr);

-			}

-			return this.currentCharacter;

-		}

-	} catch (IndexOutOfBoundsException e) {

-		return -1;

-	}

-}

-public final boolean getNextChar(char testedChar) {

-	//BOOLEAN

-	//handle the case of unicode.

-	//when a unicode appears then we must use a buffer that holds char internal values

-	//At the end of this method currentCharacter holds the new visited char

-	//and currentPosition points right next after it

-	//Both previous lines are true if the currentCharacter is == to the testedChar

-	//On false, no side effect has occured.

-

-	//ALL getNextChar.... ARE OPTIMIZED COPIES 

-

-	if (this.currentPosition >= this.source.length) { // handle the obvious case upfront

-		this.unicodeAsBackSlash = false;

-		return false;

-	}

-

-	int temp = this.currentPosition;

-	try {

-		if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-			&& (this.source[this.currentPosition] == 'u')) {

-			//-------------unicode traitement ------------

-			int c1, c2, c3, c4;

-			int unicodeSize = 6;

-			this.currentPosition++;

-			while (this.source[this.currentPosition] == 'u') {

-				this.currentPosition++;

-				unicodeSize++;

-			}

-

-			if (((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-				|| c1 < 0)

-				|| ((c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c2 < 0)

-				|| ((c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c3 < 0)

-				|| ((c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c4 < 0)) {

-				this.currentPosition = temp;

-				return false;

-			}

-

-			this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			if (this.currentCharacter != testedChar) {

-				this.currentPosition = temp;

-				return false;

-			}

-			this.unicodeAsBackSlash = this.currentCharacter == '\\';

-

-			//need the unicode buffer

-			if (this.withoutUnicodePtr == 0) {

-				//buffer all the entries that have been left aside....

-			    unicodeInitializeBuffer(this.currentPosition - unicodeSize - this.startPosition);

-			}

-			//fill the buffer with the char

-			unicodeStoreAt(++this.withoutUnicodePtr);

-			return true;

-

-		} //-------------end unicode traitement--------------

-		else {

-			if (this.currentCharacter != testedChar) {

-				this.currentPosition = temp;

-				return false;

-			}

-			this.unicodeAsBackSlash = false;

-			if (this.withoutUnicodePtr != 0)

-				unicodeStoreAt(++this.withoutUnicodePtr);

-			return true;

-		}

-	} catch (IndexOutOfBoundsException e) {

-		this.unicodeAsBackSlash = false;

-		this.currentPosition = temp;

-		return false;

-	}

-}

-public final int getNextChar(char testedChar1, char testedChar2) {

-	//INT 0 : testChar1 \\\\///\\\\ 1 : testedChar2 \\\\///\\\\ -1 : others

-	//test can be done with (x==0) for the first and (x>0) for the second

-	//handle the case of unicode.

-	//when a unicode appears then we must use a buffer that holds char internal values

-	//At the end of this method currentCharacter holds the new visited char

-	//and currentPosition points right next after it

-	//Both previous lines are true if the currentCharacter is == to the testedChar1/2

-	//On false, no side effect has occured.

-

-	//ALL getNextChar.... ARE OPTIMIZED COPIES 

-	if (this.currentPosition >= this.source.length) // handle the obvious case upfront

-		return -1;

-

-	int temp = this.currentPosition;

-	try {

-		int result;

-		if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-			&& (this.source[this.currentPosition] == 'u')) {

-			//-------------unicode traitement ------------

-			int c1, c2, c3, c4;

-			int unicodeSize = 6;

-			this.currentPosition++;

-			while (this.source[this.currentPosition] == 'u') {

-				this.currentPosition++;

-				unicodeSize++;

-			}

-

-			if (((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-				|| c1 < 0)

-				|| ((c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c2 < 0)

-				|| ((c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c3 < 0)

-				|| ((c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c4 < 0)) {

-				this.currentPosition = temp;

-				return 2;

-			}

-

-			this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			if (this.currentCharacter == testedChar1)

-				result = 0;

-			else

-				if (this.currentCharacter == testedChar2)

-					result = 1;

-				else {

-					this.currentPosition = temp;

-					return -1;

-				}

-

-			//need the unicode buffer

-			if (this.withoutUnicodePtr == 0) {

-				//buffer all the entries that have been left aside....

-				unicodeInitializeBuffer(this.currentPosition - unicodeSize - this.startPosition);

-			}

-			//fill the buffer with the char

-			unicodeStoreAt(++this.withoutUnicodePtr);

-			return result;

-		} //-------------end unicode traitement--------------

-		else {

-			if (this.currentCharacter == testedChar1)

-				result = 0;

-			else

-				if (this.currentCharacter == testedChar2)

-					result = 1;

-				else {

-					this.currentPosition = temp;

-					return -1;

-				}

-

-			if (this.withoutUnicodePtr != 0)

-				unicodeStoreAt(++this.withoutUnicodePtr);

-			return result;

-		}

-	} catch (IndexOutOfBoundsException e) {

-		this.currentPosition = temp;

-		return -1;

-	}

-}

-public final boolean getNextCharAsDigit() throws InvalidInputException {

-	//BOOLEAN

-	//handle the case of unicode.

-	//when a unicode appears then we must use a buffer that holds char internal values

-	//At the end of this method currentCharacter holds the new visited char

-	//and currentPosition points right next after it

-	//Both previous lines are true if the currentCharacter is a digit

-	//On false, no side effect has occured.

-

-	//ALL getNextChar.... ARE OPTIMIZED COPIES 

-	if (this.currentPosition >= this.source.length) // handle the obvious case upfront

-		return false;

-

-	int temp = this.currentPosition;

-	try {

-		if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-			&& (this.source[this.currentPosition] == 'u')) {

-			//-------------unicode traitement ------------

-			int c1, c2, c3, c4;

-			int unicodeSize = 6;

-			this.currentPosition++;

-			while (this.source[this.currentPosition] == 'u') {

-				this.currentPosition++;

-				unicodeSize++;

-			}

-

-			if (((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-				|| c1 < 0)

-				|| ((c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c2 < 0)

-				|| ((c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c3 < 0)

-				|| ((c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c4 < 0)) {

-				this.currentPosition = temp;

-				return false;

-			}

-

-			this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			if (!isDigit(this.currentCharacter)) {

-				this.currentPosition = temp;

-				return false;

-			}

-

-			//need the unicode buffer

-			if (this.withoutUnicodePtr == 0) {

-				//buffer all the entries that have been left aside....

-				unicodeInitializeBuffer(this.currentPosition - unicodeSize - this.startPosition);

-			}

-			//fill the buffer with the char

-			unicodeStoreAt(++this.withoutUnicodePtr);

-			return true;

-		} //-------------end unicode traitement--------------

-		else {

-			if (!isDigit(this.currentCharacter)) {

-				this.currentPosition = temp;

-				return false;

-			}

-			if (this.withoutUnicodePtr != 0)

-				unicodeStoreAt(++this.withoutUnicodePtr);

-			return true;

-		}

-	} catch (IndexOutOfBoundsException e) {

-		this.currentPosition = temp;

-		return false;

-	}

-}

-public final boolean getNextCharAsDigit(int radix) {

-	//BOOLEAN

-	//handle the case of unicode.

-	//when a unicode appears then we must use a buffer that holds char internal values

-	//At the end of this method currentCharacter holds the new visited char

-	//and currentPosition points right next after it

-	//Both previous lines are true if the currentCharacter is a digit base on radix

-	//On false, no side effect has occured.

-

-	//ALL getNextChar.... ARE OPTIMIZED COPIES 

-	if (this.currentPosition >= this.source.length) // handle the obvious case upfront

-		return false;

-

-	int temp = this.currentPosition;

-	try {

-		if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-			&& (this.source[this.currentPosition] == 'u')) {

-			//-------------unicode traitement ------------

-			int c1, c2, c3, c4;

-			int unicodeSize = 6;

-			this.currentPosition++;

-			while (this.source[this.currentPosition] == 'u') {

-				this.currentPosition++;

-				unicodeSize++;

-			}

-

-			if (((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-				|| c1 < 0)

-				|| ((c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c2 < 0)

-				|| ((c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c3 < 0)

-				|| ((c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c4 < 0)) {

-				this.currentPosition = temp;

-				return false;

-			}

-

-			this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			if (Character.digit(this.currentCharacter, radix) == -1) {

-				this.currentPosition = temp;

-				return false;

-			}

-

-			//need the unicode buffer

-			if (this.withoutUnicodePtr == 0) {

-				//buffer all the entries that have been left aside....

-				unicodeInitializeBuffer(this.currentPosition - unicodeSize - this.startPosition);

-			}

-			//fill the buffer with the char

-			unicodeStoreAt(++this.withoutUnicodePtr);

-			return true;

-		} //-------------end unicode traitement--------------

-		else {

-			if (Character.digit(this.currentCharacter, radix) == -1) {

-				this.currentPosition = temp;

-				return false;

-			}

-			if (this.withoutUnicodePtr != 0)

-				unicodeStoreAt(++this.withoutUnicodePtr);

-			return true;

-		}

-	} catch (IndexOutOfBoundsException e) {

-		this.currentPosition = temp;

-		return false;

-	}

-}

-public boolean getNextCharAsJavaIdentifierPart() {

-	//BOOLEAN

-	//handle the case of unicode.

-	//when a unicode appears then we must use a buffer that holds char internal values

-	//At the end of this method currentCharacter holds the new visited char

-	//and currentPosition points right next after it

-	//Both previous lines are true if the currentCharacter is a JavaIdentifierPart

-	//On false, no side effect has occured.

-

-	//ALL getNextChar.... ARE OPTIMIZED COPIES 

-	if (this.currentPosition >= this.source.length) // handle the obvious case upfront

-		return false;

-

-	int temp = this.currentPosition;

-	try {

-		if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-			&& (this.source[this.currentPosition] == 'u')) {

-			//-------------unicode traitement ------------

-			int c1, c2, c3, c4;

-			int unicodeSize = 6;

-			this.currentPosition++;

-			while (this.source[this.currentPosition] == 'u') {

-				this.currentPosition++;

-				unicodeSize++;

-			}

-

-			if (((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-				|| c1 < 0)

-				|| ((c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c2 < 0)

-				|| ((c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c3 < 0)

-				|| ((c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c4 < 0)) {

-				this.currentPosition = temp;

-				return false;

-			}

-

-			this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			if (!Character.isJavaIdentifierPart(this.currentCharacter)) {

-				this.currentPosition = temp;

-				return false;

-			}

-

-			//need the unicode buffer

-			if (this.withoutUnicodePtr == 0) {

-				//buffer all the entries that have been left aside....

-				unicodeInitializeBuffer(this.currentPosition - unicodeSize - this.startPosition);

-			}

-			//fill the buffer with the char

-		    unicodeStoreAt(++this.withoutUnicodePtr);

-			return true;

-		} //-------------end unicode traitement--------------

-		else {

-			if (!Character.isJavaIdentifierPart(this.currentCharacter)) {

-				this.currentPosition = temp;

-				return false;

-			}

-

-			if (this.withoutUnicodePtr != 0)

-			    unicodeStoreAt(++this.withoutUnicodePtr);

-			return true;

-		}

-	} catch (IndexOutOfBoundsException e) {

-		this.currentPosition = temp;

-		return false;

-	}

-}

-public int getNextToken() throws InvalidInputException {

-	this.wasAcr = false;

-	if (this.diet) {

-		jumpOverMethodBody();

-		this.diet = false;

-		return this.currentPosition > this.source.length ? TokenNameEOF : TokenNameRBRACE;

-	}

-	int whiteStart = 0;

-	try {

-		while (true) { //loop for jumping over comments

-			this.withoutUnicodePtr = 0;

-			//start with a new token (even comment written with unicode )

-

-			// ---------Consume white space and handles startPosition---------

-			whiteStart = this.currentPosition;

-			boolean isWhiteSpace, hasWhiteSpaces = false;

-			int offset = 0;

-			do {

-				this.startPosition = this.currentPosition;

-				boolean checkIfUnicode = false;

-				try {

-					checkIfUnicode = ((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-						&& (this.source[this.currentPosition] == 'u');

-				} catch(IndexOutOfBoundsException e) {

-					if (this.tokenizeWhiteSpace && (whiteStart != this.currentPosition - 1)) {

-						// reposition scanner in case we are interested by spaces as tokens

-						this.currentPosition--;

-						this.startPosition = whiteStart;

-						return TokenNameWHITESPACE;

-					}

-					if (this.currentPosition > this.eofPosition)

-						return TokenNameEOF;

-				}

-				if (checkIfUnicode) {

-					isWhiteSpace = jumpOverUnicodeWhiteSpace();

-					offset = 6;

-				} else {

-					offset = 1;

-					if ((this.currentCharacter == '\r') || (this.currentCharacter == '\n')) {

-						checkNonExternalizedString();

-						if (this.recordLineSeparator) {

-							pushLineSeparator();

-						} else {

-							this.currentLine = null;

-						}

-					}

-					isWhiteSpace = 

-						(this.currentCharacter == ' ') || CharOperation.isWhitespace(this.currentCharacter); 

-				}

-				if (isWhiteSpace) {

-					hasWhiteSpaces = true;

-				}

-			} while (isWhiteSpace);

-			if (this.tokenizeWhiteSpace && hasWhiteSpaces) {

-				// reposition scanner in case we are interested by spaces as tokens

-				this.currentPosition-=offset;

-				this.startPosition = whiteStart;

-				return TokenNameWHITESPACE;

-			}

-			//little trick to get out in the middle of a source compuation

-			if (this.currentPosition > this.eofPosition)

-				return TokenNameEOF;

-

-			// ---------Identify the next token-------------

-

-			switch (this.currentCharacter) {

-				case '@' :

-/*					if (this.sourceLevel >= ClassFileConstants.JDK1_5) {

-						return TokenNameAT;

-					} else {

-						return TokenNameERROR;

-					}*/

-					return TokenNameAT;

-				case '(' :

-					return TokenNameLPAREN;

-				case ')' :

-					return TokenNameRPAREN;

-				case '{' :

-					return TokenNameLBRACE;

-				case '}' :

-					return TokenNameRBRACE;

-				case '[' :

-					return TokenNameLBRACKET;

-				case ']' :

-					return TokenNameRBRACKET;

-				case ';' :

-					return TokenNameSEMICOLON;

-				case ',' :

-					return TokenNameCOMMA;

-				case '.' :

-					if (getNextCharAsDigit()) {

-						return scanNumber(true);

-					}

-/*					if (this.sourceLevel >= ClassFileConstants.JDK1_5) {

-						int temp = this.currentPosition;

-						if (getNextChar('.')) {

-							if (getNextChar('.')) {

-								return TokenNameELLIPSIS;

-							} else {

-								this.currentPosition = temp;

-								return TokenNameDOT;

-							}

-						} else {

-							this.currentPosition = temp;

-							return TokenNameDOT;

-						}

-					} else {

-						return TokenNameDOT;

-					}*/

-					int temp = this.currentPosition;

-					if (getNextChar('.')) {

-						if (getNextChar('.')) {

-							return TokenNameELLIPSIS;

-						} else {

-							this.currentPosition = temp;

-							return TokenNameDOT;

-						}

-					} else {

-						this.currentPosition = temp;

-						return TokenNameDOT;

-					}

-				case '+' :

-					{

-						int test;

-						if ((test = getNextChar('+', '=')) == 0)

-							return TokenNamePLUS_PLUS;

-						if (test > 0)

-							return TokenNamePLUS_EQUAL;

-						return TokenNamePLUS;

-					}

-				case '-' :

-					{

-						int test;

-						if ((test = getNextChar('-', '=')) == 0)

-							return TokenNameMINUS_MINUS;

-						if (test > 0)

-							return TokenNameMINUS_EQUAL;

-						return TokenNameMINUS;

-					}

-				case '~' :

-					return TokenNameTWIDDLE;

-				case '!' :

-					if (getNextChar('='))

-						return TokenNameNOT_EQUAL;

-					return TokenNameNOT;

-				case '*' :

-					if (getNextChar('='))

-						return TokenNameMULTIPLY_EQUAL;

-					return TokenNameMULTIPLY;

-				case '%' :

-					if (getNextChar('='))

-						return TokenNameREMAINDER_EQUAL;

-					return TokenNameREMAINDER;

-				case '<' :

-					{

-						int test;

-						if ((test = getNextChar('=', '<')) == 0)

-							return TokenNameLESS_EQUAL;

-						if (test > 0) {

-							if (getNextChar('='))

-								return TokenNameLEFT_SHIFT_EQUAL;

-							return TokenNameLEFT_SHIFT;

-						}

-						return TokenNameLESS;

-					}

-				case '>' :

-					{

-						int test;

-						if (this.returnOnlyGreater) {

-							return TokenNameGREATER;

-						}

-						if ((test = getNextChar('=', '>')) == 0)

-							return TokenNameGREATER_EQUAL;

-						if (test > 0) {

-							if ((test = getNextChar('=', '>')) == 0)

-								return TokenNameRIGHT_SHIFT_EQUAL;

-							if (test > 0) {

-								if (getNextChar('='))

-									return TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL;

-								return TokenNameUNSIGNED_RIGHT_SHIFT;

-							}

-							return TokenNameRIGHT_SHIFT;

-						}

-						return TokenNameGREATER;

-					}

-				case '=' :

-					if (getNextChar('='))

-						return TokenNameEQUAL_EQUAL;

-					return TokenNameEQUAL;

-				case '&' :

-					{

-						int test;

-						if ((test = getNextChar('&', '=')) == 0)

-							return TokenNameAND_AND;

-						if (test > 0)

-							return TokenNameAND_EQUAL;

-						return TokenNameAND;

-					}

-				case '|' :

-					{

-						int test;

-						if ((test = getNextChar('|', '=')) == 0)

-							return TokenNameOR_OR;

-						if (test > 0)

-							return TokenNameOR_EQUAL;

-						return TokenNameOR;

-					}

-				case '^' :

-					if (getNextChar('='))

-						return TokenNameXOR_EQUAL;

-					return TokenNameXOR;

-				case '?' :

-					return TokenNameQUESTION;

-				case ':' :

-					return TokenNameCOLON;

-				case '\'' :

-					{

-						int test;

-						if ((test = getNextChar('\n', '\r')) == 0) {

-							throw new InvalidInputException(INVALID_CHARACTER_CONSTANT);

-						}

-						if (test > 0) {

-							// relocate if finding another quote fairly close: thus unicode '/u000D' will be fully consumed

-							for (int lookAhead = 0; lookAhead < 3; lookAhead++) {

-								if (this.currentPosition + lookAhead == this.source.length)

-									break;

-								if (this.source[this.currentPosition + lookAhead] == '\n')

-									break;

-								if (this.source[this.currentPosition + lookAhead] == '\'') {

-									this.currentPosition += lookAhead + 1;

-									break;

-								}

-							}

-							throw new InvalidInputException(INVALID_CHARACTER_CONSTANT);

-						}

-					}

-					if (getNextChar('\'')) {

-						// relocate if finding another quote fairly close: thus unicode '/u000D' will be fully consumed

-						for (int lookAhead = 0; lookAhead < 3; lookAhead++) {

-							if (this.currentPosition + lookAhead == this.source.length)

-								break;

-							if (this.source[this.currentPosition + lookAhead] == '\n')

-								break;

-							if (this.source[this.currentPosition + lookAhead] == '\'') {

-								this.currentPosition += lookAhead + 1;

-								break;

-							}

-						}

-						throw new InvalidInputException(INVALID_CHARACTER_CONSTANT);

-					}

-					if (getNextChar('\\'))

-						scanEscapeCharacter();

-					else { // consume next character

-						this.unicodeAsBackSlash = false;

-						boolean checkIfUnicode = false;

-						try {

-							checkIfUnicode = ((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-							&& (this.source[this.currentPosition] == 'u');

-						} catch(IndexOutOfBoundsException e) {

-							this.currentPosition--;

-							throw new InvalidInputException(INVALID_CHARACTER_CONSTANT);

-						}

-						if (checkIfUnicode) {

-							getNextUnicodeChar();

-						} else {

-							if (this.withoutUnicodePtr != 0) {

-								unicodeStoreAt(++this.withoutUnicodePtr);

-							}

-						}

-					}

-					if (getNextChar('\''))

-						return TokenNameCharacterLiteral;

-					// relocate if finding another quote fairly close: thus unicode '/u000D' will be fully consumed

-					for (int lookAhead = 0; lookAhead < 20; lookAhead++) {

-						if (this.currentPosition + lookAhead == this.source.length)

-							break;

-						if (this.source[this.currentPosition + lookAhead] == '\n')

-							break;

-						if (this.source[this.currentPosition + lookAhead] == '\'') {

-							this.currentPosition += lookAhead + 1;

-							break;

-						}

-					}

-					throw new InvalidInputException(INVALID_CHARACTER_CONSTANT);

-				case '"' :

-					try {

-						// consume next character

-						this.unicodeAsBackSlash = false;

-						boolean isUnicode = false;

-						if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-							&& (this.source[this.currentPosition] == 'u')) {

-							getNextUnicodeChar();

-							isUnicode = true;

-						} else {

-							if (this.withoutUnicodePtr != 0) {

-								unicodeStoreAt(++this.withoutUnicodePtr);

-							}

-						}

-

-						while (this.currentCharacter != '"') {

-							/**** \r and \n are not valid in string literals ****/

-							if ((this.currentCharacter == '\n') || (this.currentCharacter == '\r')) {

-								// relocate if finding another quote fairly close: thus unicode '/u000D' will be fully consumed

-								if (isUnicode) {

-									int start = this.currentPosition;

-									for (int lookAhead = 0; lookAhead < 50; lookAhead++) {

-										if (this.currentPosition >= this.eofPosition) {

-											this.currentPosition = start;

-											break;

-										}

-										if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\') && (this.source[this.currentPosition] == 'u')) {

-											isUnicode = true;

-											getNextUnicodeChar();

-										} else {

-											isUnicode = false;

-										}

-										if (!isUnicode && this.currentCharacter == '\n') {

-											this.currentPosition--; // set current position on new line character

-											break;

-										}

-										if (this.currentCharacter == '\"') {

-											throw new InvalidInputException(INVALID_CHAR_IN_STRING);

-										}

-									}

-								} else {

-									this.currentPosition--; // set current position on new line character

-								}

-								throw new InvalidInputException(INVALID_CHAR_IN_STRING);

-							}

-							if (this.currentCharacter == '\\') {

-								int escapeSize = this.currentPosition;

-								boolean backSlashAsUnicodeInString = this.unicodeAsBackSlash;

-								//scanEscapeCharacter make a side effect on this value and we need the previous value few lines down this one

-								scanEscapeCharacter();

-								escapeSize = this.currentPosition - escapeSize;

-								if (this.withoutUnicodePtr == 0) {

-									//buffer all the entries that have been left aside....

-								    unicodeInitializeBuffer(this.currentPosition - escapeSize - 1 - this.startPosition);

-								    unicodeStoreAt(++this.withoutUnicodePtr);

-								} else { //overwrite the / in the buffer

-								    unicodeStoreAt(this.withoutUnicodePtr);

-									if (backSlashAsUnicodeInString) { //there are TWO \ in the stream where only one is correct

-										this.withoutUnicodePtr--;

-									}

-								}

-							}

-							// consume next character

-							this.unicodeAsBackSlash = false;

-							if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-								&& (this.source[this.currentPosition] == 'u')) {

-								getNextUnicodeChar();

-							} else {

-								if (this.withoutUnicodePtr != 0) {

-									unicodeStoreAt(++this.withoutUnicodePtr);

-								}

-							}

-

-						}

-					} catch (IndexOutOfBoundsException e) {

-						this.currentPosition--;

-						throw new InvalidInputException(UNTERMINATED_STRING);

-					} catch (InvalidInputException e) {

-						if (e.getMessage().equals(INVALID_ESCAPE)) {

-							// relocate if finding another quote fairly close: thus unicode '/u000D' will be fully consumed

-							for (int lookAhead = 0; lookAhead < 50; lookAhead++) {

-								if (this.currentPosition + lookAhead == this.source.length)

-									break;

-								if (this.source[this.currentPosition + lookAhead] == '\n')

-									break;

-								if (this.source[this.currentPosition + lookAhead] == '\"') {

-									this.currentPosition += lookAhead + 1;

-									break;

-								}

-							}

-

-						}

-						throw e; // rethrow

-					}

-					if (this.checkNonExternalizedStringLiterals){ // check for presence of	NLS tags //$NON-NLS-?$ where ? is an int.

-						if (this.currentLine == null) {

-							this.currentLine = new NLSLine();

-						}

-						this.currentLine.add(

-							new StringLiteral(

-								getCurrentTokenSourceString(), 

-								this.startPosition, 

-								this.currentPosition - 1));

-					}

-					return TokenNameStringLiteral;

-				case '/' :

-					{

-						int test;

-						if ((test = getNextChar('/', '*')) == 0) { //line comment 

-							this.lastCommentLinePosition = this.currentPosition;

-							try { //get the next char 

-								if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-									&& (this.source[this.currentPosition] == 'u')) {

-									//-------------unicode traitement ------------

-									int c1 = 0, c2 = 0, c3 = 0, c4 = 0;

-									this.currentPosition++;

-									while (this.source[this.currentPosition] == 'u') {

-										this.currentPosition++;

-									}

-									if ((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-										|| c1 < 0

-										|| (c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-										|| c2 < 0

-										|| (c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-										|| c3 < 0

-										|| (c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-										|| c4 < 0) {

-										throw new InvalidInputException(INVALID_UNICODE_ESCAPE);

-									} else {

-										this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-									}

-								}

-

-								//handle the \\u case manually into comment

-								if (this.currentCharacter == '\\') {

-									if (this.source[this.currentPosition] == '\\')

-										this.currentPosition++;

-								} //jump over the \\

-								boolean isUnicode = false;

-								while (this.currentCharacter != '\r' && this.currentCharacter != '\n') {

-									this.lastCommentLinePosition = this.currentPosition;

-									//get the next char

-									isUnicode = false;									

-									if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-										&& (this.source[this.currentPosition] == 'u')) {

-										isUnicode = true;											

-										//-------------unicode traitement ------------

-										int c1 = 0, c2 = 0, c3 = 0, c4 = 0;

-										this.currentPosition++;

-										while (this.source[this.currentPosition] == 'u') {

-											this.currentPosition++;

-										}

-										if ((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-											|| c1 < 0

-											|| (c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-											|| c2 < 0

-											|| (c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-											|| c3 < 0

-											|| (c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-											|| c4 < 0) {

-											throw new InvalidInputException(INVALID_UNICODE_ESCAPE);

-										} else {

-											this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-										}

-									}

-									//handle the \\u case manually into comment

-									if (this.currentCharacter == '\\') {

-										if (this.source[this.currentPosition] == '\\')

-											this.currentPosition++;

-									} //jump over the \\

-								}

-								/*

-								 * We need to completely consume the line break

-								 */

-								if (this.currentCharacter == '\r'

-								   && this.source.length > this.currentPosition) {

-								   	if (this.source[this.currentPosition] == '\n') {

-										this.currentPosition++;

-										this.currentCharacter = '\n';

-								   	} else if ((this.source[this.currentPosition] == '\\')

-										&& (this.source[this.currentPosition + 1] == 'u')) {

-										isUnicode = true;

-										char unicodeChar;

-										int index = this.currentPosition + 1;

-										index++;

-										while (this.source[index] == 'u') {

-											index++;

-										}

-										//-------------unicode traitement ------------

-										int c1 = 0, c2 = 0, c3 = 0, c4 = 0;

-										if ((c1 = Character.getNumericValue(this.source[index++])) > 15

-											|| c1 < 0

-											|| (c2 = Character.getNumericValue(this.source[index++])) > 15

-											|| c2 < 0

-											|| (c3 = Character.getNumericValue(this.source[index++])) > 15

-											|| c3 < 0

-											|| (c4 = Character.getNumericValue(this.source[index++])) > 15

-											|| c4 < 0) {

-											this.currentPosition = index;

-											throw new InvalidInputException(INVALID_UNICODE_ESCAPE);

-										} else {

-											unicodeChar = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-										}

-										if (unicodeChar == '\n') {

-											this.currentPosition = index;

-											this.currentCharacter = '\n';

-										}

-									}

-							   	}

-								recordComment(TokenNameCOMMENT_LINE);

-								if (this.taskTags != null) checkTaskTag(this.startPosition, this.currentPosition);

-								if ((this.currentCharacter == '\r') || (this.currentCharacter == '\n')) {

-									checkNonExternalizedString();

-									if (this.recordLineSeparator) {

-										if (isUnicode) {

-											pushUnicodeLineSeparator();

-										} else {

-											pushLineSeparator();

-										}

-									} else {

-										this.currentLine = null;

-									}

-								}

-								if (this.tokenizeComments) {

-									return TokenNameCOMMENT_LINE;

-								}

-							} catch (IndexOutOfBoundsException e) {

-								this.currentPosition--;

-								recordComment(TokenNameCOMMENT_LINE);

-								if (this.taskTags != null) checkTaskTag(this.startPosition, this.currentPosition);

-								if (this.tokenizeComments) {

-									return TokenNameCOMMENT_LINE;

-								} else {

-									this.currentPosition++; 

-								}

-							}

-							break;

-						}

-						if (test > 0) { //traditional and javadoc comment

-							try { //get the next char

-								boolean isJavadoc = false, star = false;

-								boolean isUnicode = false;

-								// consume next character

-								this.unicodeAsBackSlash = false;

-								if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-									&& (this.source[this.currentPosition] == 'u')) {

-									getNextUnicodeChar();

-									isUnicode = true;

-								} else {

-									isUnicode = false;

-									if (this.withoutUnicodePtr != 0) {

-										unicodeStoreAt(++this.withoutUnicodePtr);

-									}

-								}

-	

-								if (this.currentCharacter == '*') {

-									isJavadoc = true;

-									star = true;

-								}

-								if ((this.currentCharacter == '\r') || (this.currentCharacter == '\n')) {

-									checkNonExternalizedString();

-									if (this.recordLineSeparator) {

-										if (!isUnicode) {

-											pushLineSeparator();

-										}

-									} else {

-										this.currentLine = null;

-									}

-								}

-								isUnicode = false;

-								if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-									&& (this.source[this.currentPosition] == 'u')) {

-									//-------------unicode traitement ------------

-									getNextUnicodeChar();

-									isUnicode = true;

-								} else {

-									isUnicode = false;

-								}

-								//handle the \\u case manually into comment

-								if (this.currentCharacter == '\\') {

-									if (this.source[this.currentPosition] == '\\')

-										this.currentPosition++; //jump over the \\

-								}

-								// empty comment is not a javadoc /**/

-								if (this.currentCharacter == '/') { 

-									isJavadoc = false;

-								}

-								//loop until end of comment */

-								while ((this.currentCharacter != '/') || (!star)) {

-									if ((this.currentCharacter == '\r') || (this.currentCharacter == '\n')) {

-										checkNonExternalizedString();

-										if (this.recordLineSeparator) {

-											if (!isUnicode) {

-												pushLineSeparator();

-											}

-										} else {

-											this.currentLine = null;

-										}

-									}

-									star = this.currentCharacter == '*';

-									//get next char

-									if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-										&& (this.source[this.currentPosition] == 'u')) {

-										//-------------unicode traitement ------------

-										getNextUnicodeChar();

-										isUnicode = true;

-									} else {

-										isUnicode = false;

-									}

-									//handle the \\u case manually into comment

-									if (this.currentCharacter == '\\') {

-										if (this.source[this.currentPosition] == '\\')

-											this.currentPosition++;

-									} //jump over the \\

-								}

-								int token = isJavadoc ? TokenNameCOMMENT_JAVADOC : TokenNameCOMMENT_BLOCK;

-								recordComment(token);

-								if (this.taskTags != null) checkTaskTag(this.startPosition, this.currentPosition);

-								if (this.tokenizeComments) {

-									/*

-									if (isJavadoc)

-										return TokenNameCOMMENT_JAVADOC;

-									return TokenNameCOMMENT_BLOCK;

-									*/

-									return token;

-								}

-							} catch (IndexOutOfBoundsException e) {

-								this.currentPosition--;

-								throw new InvalidInputException(UNTERMINATED_COMMENT);

-							}

-							break;

-						}

-						if (getNextChar('='))

-							return TokenNameDIVIDE_EQUAL;

-						return TokenNameDIVIDE;

-					}

-				case '\u001a' :

-					if (atEnd())

-						return TokenNameEOF;

-					//the atEnd may not be <currentPosition == source.length> if source is only some part of a real (external) stream

-					throw new InvalidInputException("Ctrl-Z"); //$NON-NLS-1$

-

-				default :

-					if (Character.isJavaIdentifierStart(this.currentCharacter))

-						return scanIdentifierOrKeyword();

-					if (isDigit(this.currentCharacter)) {

-						return scanNumber(false);

-					}						

-					return TokenNameERROR;

-			}

-		}

-	} //-----------------end switch while try--------------------

-	catch (IndexOutOfBoundsException e) {

-		if (this.tokenizeWhiteSpace && (whiteStart != this.currentPosition - 1)) {

-			// reposition scanner in case we are interested by spaces as tokens

-			this.currentPosition--;

-			this.startPosition = whiteStart;

-			return TokenNameWHITESPACE;

-		}

-	}

-	return TokenNameEOF;

-}

-public final void getNextUnicodeChar()

-	throws InvalidInputException {

-	//VOID

-	//handle the case of unicode.

-	//when a unicode appears then we must use a buffer that holds char internal values

-	//At the end of this method currentCharacter holds the new visited char

-	//and currentPosition points right next after it

-

-	//ALL getNextChar.... ARE OPTIMIZED COPIES 

-

-	try {

-		int c1 = 0, c2 = 0, c3 = 0, c4 = 0, unicodeSize = 6;

-		this.currentPosition++;

-		while (this.source[this.currentPosition] == 'u') {

-			this.currentPosition++;

-			unicodeSize++;

-		}

-

-		if ((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-			|| c1 < 0

-			|| (c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-			|| c2 < 0

-			|| (c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-			|| c3 < 0

-			|| (c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-			|| c4 < 0){

-			throw new InvalidInputException(INVALID_UNICODE_ESCAPE);

-		} else {

-			this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-			//need the unicode buffer

-			if (this.withoutUnicodePtr == 0) {

-				//buffer all the entries that have been left aside....

-				unicodeInitializeBuffer(this.currentPosition - unicodeSize - this.startPosition);

-			}

-			//fill the buffer with the char

-			unicodeStoreAt(++this.withoutUnicodePtr);

-		}

-		this.unicodeAsBackSlash = this.currentCharacter == '\\';

-	} catch (ArrayIndexOutOfBoundsException e) {

-		this.currentPosition--;

-		throw new InvalidInputException(INVALID_UNICODE_ESCAPE);

-	}

-}

-

-public char[] getSource(){

-	return this.source;

-}

-private boolean isDigit(char c) throws InvalidInputException {

-	if (Character.isDigit(c)) {

-		switch(c) {

-			case '0' :

-			case '1' :

-			case '2' :

-			case '3' :

-			case '4' :

-			case '5' :

-			case '6' :

-			case '7' :

-			case '8' :

-			case '9' :

-				return true;

-		}

-		throw new InvalidInputException(Scanner.INVALID_DIGIT);

-	} else {

-		return false;

-	}

-}

-/* Tokenize a method body, assuming that curly brackets are properly balanced.

- */

-public final void jumpOverMethodBody() {

-

-	this.wasAcr = false;

-	int found = 1;

-	try {

-		while (true) { //loop for jumping over comments

-			// ---------Consume white space and handles startPosition---------

-			boolean isWhiteSpace;

-			do {

-				this.startPosition = this.currentPosition;

-				if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-					&& (this.source[this.currentPosition] == 'u')) {

-					isWhiteSpace = jumpOverUnicodeWhiteSpace();

-				} else {

-					if (this.recordLineSeparator

-						&& ((this.currentCharacter == '\r') || (this.currentCharacter == '\n')))

-						pushLineSeparator();

-					isWhiteSpace = CharOperation.isWhitespace(this.currentCharacter);

-				}

-			} while (isWhiteSpace);

-

-			// -------consume token until } is found---------

-			switch (this.currentCharacter) {

-				case '{' :

-					found++;

-					break;

-				case '}' :

-					found--;

-					if (found == 0)

-						return;

-					break;

-				case '\'' :

-					{

-						boolean test;

-						test = getNextChar('\\');

-						if (test) {

-							try {

-								scanEscapeCharacter();

-							} catch (InvalidInputException ex) {

-								// ignore

-							}

-						} else {

-							try { // consume next character

-								this.unicodeAsBackSlash = false;

-								if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-									&& (this.source[this.currentPosition] == 'u')) {

-									getNextUnicodeChar();

-								} else {

-									if (this.withoutUnicodePtr != 0) {

-										unicodeStoreAt(++this.withoutUnicodePtr);

-									}

-								}

-							} catch (InvalidInputException ex) {

-								// ignore

-							}

-						}

-						getNextChar('\'');

-						break;

-					}

-				case '"' :

-					try {

-						try { // consume next character

-							this.unicodeAsBackSlash = false;

-							if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-								&& (this.source[this.currentPosition] == 'u')) {

-								getNextUnicodeChar();

-							} else {

-								if (this.withoutUnicodePtr != 0) {

-								    unicodeStoreAt(++this.withoutUnicodePtr);

-								}

-							}

-						} catch (InvalidInputException ex) {

-								// ignore

-						}

-						while (this.currentCharacter != '"') {

-							if (this.currentCharacter == '\r'){

-								if (this.source[this.currentPosition] == '\n') this.currentPosition++;

-								break; // the string cannot go further that the line

-							}

-							if (this.currentCharacter == '\n'){

-								break; // the string cannot go further that the line

-							}

-							if (this.currentCharacter == '\\') {

-								try {

-									scanEscapeCharacter();

-								} catch (InvalidInputException ex) {

-									// ignore

-								}

-							}

-							try { // consume next character

-								this.unicodeAsBackSlash = false;

-								if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-									&& (this.source[this.currentPosition] == 'u')) {

-									getNextUnicodeChar();

-								} else {

-									if (this.withoutUnicodePtr != 0) {

-										unicodeStoreAt(++this.withoutUnicodePtr);

-									}

-								}

-							} catch (InvalidInputException ex) {

-								// ignore

-							}

-						}

-					} catch (IndexOutOfBoundsException e) {

-						return;

-					}

-					break;

-				case '/' :

-					{

-						int test;

-						if ((test = getNextChar('/', '*')) == 0) { //line comment 

-							try {

-								this.lastCommentLinePosition = this.currentPosition;

-								//get the next char 

-								if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-									&& (this.source[this.currentPosition] == 'u')) {

-									//-------------unicode traitement ------------

-									int c1 = 0, c2 = 0, c3 = 0, c4 = 0;

-									this.currentPosition++;

-									while (this.source[this.currentPosition] == 'u') {

-										this.currentPosition++;

-									}

-									if ((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-										|| c1 < 0

-										|| (c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-										|| c2 < 0

-										|| (c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-										|| c3 < 0

-										|| (c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-										|| c4 < 0) { //error don't care of the value

-										this.currentCharacter = 'A';

-									} //something different from \n and \r

-									else {

-										this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-									}

-								}

-								//handle the \\u case manually into comment

-								if (this.currentCharacter == '\\') {

-									if (this.source[this.currentPosition] == '\\')

-										this.currentPosition++;

-								} //jump over the \\

-								boolean isUnicode = false;

-								while (this.currentCharacter != '\r' && this.currentCharacter != '\n') {

-									this.lastCommentLinePosition = this.currentPosition;

-									//get the next char 

-									isUnicode = false;

-									if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-										&& (this.source[this.currentPosition] == 'u')) {

-										isUnicode = true;

-										//-------------unicode traitement ------------

-										int c1 = 0, c2 = 0, c3 = 0, c4 = 0;

-										this.currentPosition++;

-										while (this.source[this.currentPosition] == 'u') {

-											this.currentPosition++;

-										}

-										if ((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-											|| c1 < 0

-											|| (c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-											|| c2 < 0

-											|| (c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-											|| c3 < 0

-											|| (c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-											|| c4 < 0) { //error don't care of the value

-											this.currentCharacter = 'A';

-										} //something different from \n and \r

-										else {

-											this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-										}

-									}

-									//handle the \\u case manually into comment

-									if (this.currentCharacter == '\\') {

-										if (this.source[this.currentPosition] == '\\')

-											this.currentPosition++;

-									} //jump over the \\

-								}

-								/*

-								 * We need to completely consume the line break

-								 */

-								if (this.currentCharacter == '\r'

-								   && this.source.length > this.currentPosition) {

-								   	if (this.source[this.currentPosition] == '\n') {

-										this.currentPosition++;

-										this.currentCharacter = '\n';

-								   	} else if ((this.source[this.currentPosition] == '\\')

-										&& (this.source[this.currentPosition + 1] == 'u')) {

-										isUnicode = true;

-										char unicodeChar;

-										int index = this.currentPosition + 1;

-										index++;

-										while (this.source[index] == 'u') {

-											index++;

-										}

-										//-------------unicode traitement ------------

-										int c1 = 0, c2 = 0, c3 = 0, c4 = 0;

-										if ((c1 = Character.getNumericValue(this.source[index++])) > 15

-											|| c1 < 0

-											|| (c2 = Character.getNumericValue(this.source[index++])) > 15

-											|| c2 < 0

-											|| (c3 = Character.getNumericValue(this.source[index++])) > 15

-											|| c3 < 0

-											|| (c4 = Character.getNumericValue(this.source[index++])) > 15

-											|| c4 < 0) { //error don't care of the value

-											unicodeChar = 'A';

-										} else {

-											unicodeChar = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-										}

-										if (unicodeChar == '\n') {

-											this.currentPosition = index;

-											this.currentCharacter = '\n';

-										}

-									}

-							   	}

-								recordComment(TokenNameCOMMENT_LINE);

-								if (this.recordLineSeparator

-									&& ((this.currentCharacter == '\r') || (this.currentCharacter == '\n'))) {

-										if (isUnicode) {

-											pushUnicodeLineSeparator();

-										} else {

-											pushLineSeparator();

-										}

-									}

-							} catch (IndexOutOfBoundsException e) {

-								 //an eof will then be generated

-								this.currentPosition--;

-								recordComment(TokenNameCOMMENT_LINE);

-								if (!this.tokenizeComments) {

-									this.currentPosition++; 

-								}

-							}

-							break;

-						}

-						if (test > 0) { //traditional and javadoc comment

-							boolean isJavadoc = false;

-							try { //get the next char

-								boolean star = false;

-								boolean isUnicode = false;

-								// consume next character

-								this.unicodeAsBackSlash = false;

-								if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-									&& (this.source[this.currentPosition] == 'u')) {

-									getNextUnicodeChar();

-									isUnicode = true;

-								} else {

-									isUnicode = false;

-									if (this.withoutUnicodePtr != 0) {

-    								    unicodeStoreAt(++this.withoutUnicodePtr);

-									}

-								}

-	

-								if (this.currentCharacter == '*') {

-									isJavadoc = true;

-									star = true;

-								}

-								if ((this.currentCharacter == '\r') || (this.currentCharacter == '\n')) {

-									if (this.recordLineSeparator) {

-										if (isUnicode) {

-											pushUnicodeLineSeparator();

-										} else {

-											pushLineSeparator();

-										}

-									} else {

-										this.currentLine = null;

-									}

-								}

-								isUnicode = false;

-								if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-									&& (this.source[this.currentPosition] == 'u')) {

-									//-------------unicode traitement ------------

-									getNextUnicodeChar();

-									isUnicode = true;

-								} else {

-									isUnicode = false;

-								}

-								//handle the \\u case manually into comment

-								if (this.currentCharacter == '\\') {

-									if (this.source[this.currentPosition] == '\\')

-										this.currentPosition++; //jump over the \\

-								}

-								// empty comment is not a javadoc /**/

-								if (this.currentCharacter == '/') { 

-									isJavadoc = false;

-								}

-								//loop until end of comment */

-								while ((this.currentCharacter != '/') || (!star)) {

-									if ((this.currentCharacter == '\r') || (this.currentCharacter == '\n')) {

-										if (this.recordLineSeparator) {

-											if (isUnicode) {

-												pushUnicodeLineSeparator();

-											} else {

-												pushLineSeparator();

-											}

-										} else {

-											this.currentLine = null;

-										}

-									}

-									star = this.currentCharacter == '*';

-									//get next char

-									if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-										&& (this.source[this.currentPosition] == 'u')) {

-										//-------------unicode traitement ------------

-										getNextUnicodeChar();

-										isUnicode = true;

-									} else {

-										isUnicode = false;

-									}

-									//handle the \\u case manually into comment

-									if (this.currentCharacter == '\\') {

-										if (this.source[this.currentPosition] == '\\')

-											this.currentPosition++;

-									} //jump over the \\

-								}

-								recordComment(isJavadoc ? TokenNameCOMMENT_JAVADOC : TokenNameCOMMENT_BLOCK);

-							} catch (IndexOutOfBoundsException e) {

-								return;

-							}

-							break;

-						}

-						break;

-					}

-

-				default :

-					if (Character.isJavaIdentifierStart(this.currentCharacter)) {

-						scanIdentifierOrKeyword();

-						break;

-					}

-					if (isDigit(this.currentCharacter)) {

-						try {

-							scanNumber(false);

-						} catch (InvalidInputException ex) {

- 							// ignore

- 						}

-						break;

-					}

-			}

-		}

-		//-----------------end switch while try--------------------

-	} catch (IndexOutOfBoundsException e) {

-		// ignore

-	} catch (InvalidInputException e) {

-		// ignore

-	}

-	return;

-}

-public final boolean jumpOverUnicodeWhiteSpace() throws InvalidInputException {

-	//BOOLEAN

-	//handle the case of unicode. Jump over the next whiteSpace

-	//making startPosition pointing on the next available char

-	//On false, the currentCharacter is filled up with a potential

-	//correct char

-

-	try {

-		this.wasAcr = false;

-		int c1, c2, c3, c4;

-		int unicodeSize = 6;

-		this.currentPosition++;

-		while (this.source[this.currentPosition] == 'u') {

-			this.currentPosition++;

-			unicodeSize++;

-		}

-

-		if (((c1 = Character.getNumericValue(this.source[this.currentPosition++])) > 15

-			|| c1 < 0)

-			|| ((c2 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c2 < 0)

-			|| ((c3 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c3 < 0)

-			|| ((c4 = Character.getNumericValue(this.source[this.currentPosition++])) > 15 || c4 < 0)) {

-			throw new InvalidInputException(INVALID_UNICODE_ESCAPE);

-		}

-

-		this.currentCharacter = (char) (((c1 * 16 + c2) * 16 + c3) * 16 + c4);

-		if (CharOperation.isWhitespace(this.currentCharacter))

-			return true;

-

-		//buffer the new char which is not a white space

-		unicodeStoreAt(++this.withoutUnicodePtr);

-		//this.withoutUnicodePtr == 1 is true here

-		return false;

-	} catch (IndexOutOfBoundsException e){

-		this.currentPosition--;

-		throw new InvalidInputException(INVALID_UNICODE_ESCAPE);

-	}

-}

-

-final char[] optimizedCurrentTokenSource1() {

-	//return always the same char[] build only once

-

-	//optimization at no speed cost of 99.5 % of the singleCharIdentifier

-	char charOne = this.source[this.startPosition];

-	switch (charOne) {

-		case 'a' :

-			return charArray_a;

-		case 'b' :

-			return charArray_b;

-		case 'c' :

-			return charArray_c;

-		case 'd' :

-			return charArray_d;

-		case 'e' :

-			return charArray_e;

-		case 'f' :

-			return charArray_f;

-		case 'g' :

-			return charArray_g;

-		case 'h' :

-			return charArray_h;

-		case 'i' :

-			return charArray_i;

-		case 'j' :

-			return charArray_j;

-		case 'k' :

-			return charArray_k;

-		case 'l' :

-			return charArray_l;

-		case 'm' :

-			return charArray_m;

-		case 'n' :

-			return charArray_n;

-		case 'o' :

-			return charArray_o;

-		case 'p' :

-			return charArray_p;

-		case 'q' :

-			return charArray_q;

-		case 'r' :

-			return charArray_r;

-		case 's' :

-			return charArray_s;

-		case 't' :

-			return charArray_t;

-		case 'u' :

-			return charArray_u;

-		case 'v' :

-			return charArray_v;

-		case 'w' :

-			return charArray_w;

-		case 'x' :

-			return charArray_x;

-		case 'y' :

-			return charArray_y;

-		case 'z' :

-			return charArray_z;

-		default :

-			return new char[] {charOne};

-	}

-}

-final char[] optimizedCurrentTokenSource2() {

-	//try to return the same char[] build only once

-

-	char c0, c1;

-	int hash = 

-		(((c0 = this.source[this.startPosition]) << 6) + (c1 = this.source[this.startPosition + 1]))

-			% TableSize; 

-	char[][] table = this.charArray_length[0][hash];

-	int i = newEntry2;

-	while (++i < InternalTableSize) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0]) && (c1 == charArray[1]))

-			return charArray;

-	}

-	//---------other side---------

-	i = -1;

-	int max = newEntry2;

-	while (++i <= max) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0]) && (c1 == charArray[1]))

-			return charArray;

-	}

-	//--------add the entry-------

-	if (++max >= InternalTableSize) max = 0;

-	char[] r;

-	table[max] = (r = new char[] {c0, c1});

-	newEntry2 = max;

-	return r;

-}

-final char[] optimizedCurrentTokenSource3() {

-	//try to return the same char[] build only once

-

-	char c0, c1, c2;

-	int hash = 

-		(((c0 = this.source[this.startPosition]) << 12)

-			+ ((c1 = this.source[this.startPosition + 1]) << 6)

-			+ (c2 = this.source[this.startPosition + 2]))

-			% TableSize; 

-	char[][] table = this.charArray_length[1][hash];

-	int i = newEntry3;

-	while (++i < InternalTableSize) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0]) && (c1 == charArray[1]) && (c2 == charArray[2]))

-			return charArray;

-	}

-	//---------other side---------

-	i = -1;

-	int max = newEntry3;

-	while (++i <= max) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0]) && (c1 == charArray[1]) && (c2 == charArray[2]))

-			return charArray;

-	}

-	//--------add the entry-------

-	if (++max >= InternalTableSize) max = 0;

-	char[] r;

-	table[max] = (r = new char[] {c0, c1, c2});

-	newEntry3 = max;

-	return r;

-}

-final char[] optimizedCurrentTokenSource4() {

-	//try to return the same char[] build only once

-

-	char c0, c1, c2, c3;

-	long hash = 

-		((((long) (c0 = this.source[this.startPosition])) << 18)

-			+ ((c1 = this.source[this.startPosition + 1]) << 12)

-			+ ((c2 = this.source[this.startPosition + 2]) << 6)

-			+ (c3 = this.source[this.startPosition + 3]))

-			% TableSize; 

-	char[][] table = this.charArray_length[2][(int) hash];

-	int i = newEntry4;

-	while (++i < InternalTableSize) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0])

-			&& (c1 == charArray[1])

-			&& (c2 == charArray[2])

-			&& (c3 == charArray[3]))

-			return charArray;

-	}

-	//---------other side---------

-	i = -1;

-	int max = newEntry4;

-	while (++i <= max) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0])

-			&& (c1 == charArray[1])

-			&& (c2 == charArray[2])

-			&& (c3 == charArray[3]))

-			return charArray;

-	}

-	//--------add the entry-------

-	if (++max >= InternalTableSize) max = 0;

-	char[] r;

-	table[max] = (r = new char[] {c0, c1, c2, c3});

-	newEntry4 = max;

-	return r;

-	

-}

-final char[] optimizedCurrentTokenSource5() {

-	//try to return the same char[] build only once

-

-	char c0, c1, c2, c3, c4;

-	long hash = 

-		((((long) (c0 = this.source[this.startPosition])) << 24)

-			+ (((long) (c1 = this.source[this.startPosition + 1])) << 18)

-			+ ((c2 = this.source[this.startPosition + 2]) << 12)

-			+ ((c3 = this.source[this.startPosition + 3]) << 6)

-			+ (c4 = this.source[this.startPosition + 4]))

-			% TableSize; 

-	char[][] table = this.charArray_length[3][(int) hash];

-	int i = newEntry5;

-	while (++i < InternalTableSize) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0])

-			&& (c1 == charArray[1])

-			&& (c2 == charArray[2])

-			&& (c3 == charArray[3])

-			&& (c4 == charArray[4]))

-			return charArray;

-	}

-	//---------other side---------

-	i = -1;

-	int max = newEntry5;

-	while (++i <= max) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0])

-			&& (c1 == charArray[1])

-			&& (c2 == charArray[2])

-			&& (c3 == charArray[3])

-			&& (c4 == charArray[4]))

-			return charArray;

-	}

-	//--------add the entry-------

-	if (++max >= InternalTableSize) max = 0;

-	char[] r;

-	table[max] = (r = new char[] {c0, c1, c2, c3, c4});

-	newEntry5 = max;

-	return r;

-		

-}

-final char[] optimizedCurrentTokenSource6() {

-	//try to return the same char[] build only once

-

-	char c0, c1, c2, c3, c4, c5;

-	long hash = 

-		((((long) (c0 = this.source[this.startPosition])) << 32)

-			+ (((long) (c1 = this.source[this.startPosition + 1])) << 24)

-			+ (((long) (c2 = this.source[this.startPosition + 2])) << 18)

-			+ ((c3 = this.source[this.startPosition + 3]) << 12)

-			+ ((c4 = this.source[this.startPosition + 4]) << 6)

-			+ (c5 = this.source[this.startPosition + 5]))

-			% TableSize; 

-	char[][] table = this.charArray_length[4][(int) hash];

-	int i = newEntry6;

-	while (++i < InternalTableSize) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0])

-			&& (c1 == charArray[1])

-			&& (c2 == charArray[2])

-			&& (c3 == charArray[3])

-			&& (c4 == charArray[4])

-			&& (c5 == charArray[5]))

-			return charArray;

-	}

-	//---------other side---------

-	i = -1;

-	int max = newEntry6;

-	while (++i <= max) {

-		char[] charArray = table[i];

-		if ((c0 == charArray[0])

-			&& (c1 == charArray[1])

-			&& (c2 == charArray[2])

-			&& (c3 == charArray[3])

-			&& (c4 == charArray[4])

-			&& (c5 == charArray[5]))

-			return charArray;

-	}

-	//--------add the entry-------

-	if (++max >= InternalTableSize) max = 0;

-	char[] r;

-	table[max] = (r = new char[] {c0, c1, c2, c3, c4, c5});

-	newEntry6 = max;

-	return r;	

-}

-private void parseTags(NLSLine line) {

-	String s = new String(getCurrentTokenSource());

-	int pos = s.indexOf(TAG_PREFIX);

-	int lineLength = line.size();

-	while (pos != -1) {

-		int start = pos + TAG_PREFIX_LENGTH;

-		int end = s.indexOf(TAG_POSTFIX, start);

-		if (end != -1) {

-			String index = s.substring(start, end);

-			int i = 0;

-			try {

-				i = Integer.parseInt(index) - 1; // Tags are one based not zero based.

-			} catch (NumberFormatException e) {

-				i = -1; // we don't want to consider this as a valid NLS tag

-			}

-			if (line.exists(i)) {

-				line.set(i, null);

-			}

-		}

-		pos = s.indexOf(TAG_PREFIX, start);

-	}

-

-	this.nonNLSStrings = new StringLiteral[lineLength];

-	int nonNLSCounter = 0;

-	for (Iterator iterator = line.iterator(); iterator.hasNext(); ) {

-		StringLiteral literal = (StringLiteral) iterator.next();

-		if (literal != null) {

-			this.nonNLSStrings[nonNLSCounter++] = literal;

-		}

-	}

-	if (nonNLSCounter == 0) {

-		this.nonNLSStrings = null;

-		this.currentLine = null;

-		return;

-	} 

-	this.wasNonExternalizedStringLiteral = true;

-	if (nonNLSCounter != lineLength) {

-		System.arraycopy(this.nonNLSStrings, 0, (this.nonNLSStrings = new StringLiteral[nonNLSCounter]), 0, nonNLSCounter);

-	}

-	this.currentLine = null;

-}

-

-public final void pushLineSeparator() {

-	//see comment on isLineDelimiter(char) for the use of '\n' and '\r'

-	final int INCREMENT = 250;

-	

-	if (this.checkNonExternalizedStringLiterals) {

-	// reinitialize the current line for non externalize strings purpose

-		this.currentLine = null;

-	}

-	//currentCharacter is at position currentPosition-1

-

-	// cr 000D

-	if (this.currentCharacter == '\r') {

-		int separatorPos = this.currentPosition - 1;

-		//TODO (olivier) david - why the following line was "if ((this.linePtr > 0) && (this.lineEnds[this.linePtr] >= separatorPos)) return;" ?

-		if ((this.linePtr >= 0) && (this.lineEnds[this.linePtr] >= separatorPos)) return;

-		//System.out.println("CR-" + separatorPos);

-		int length = this.lineEnds.length;

-		if (++this.linePtr >=  length)

-			System.arraycopy(this.lineEnds, 0, this.lineEnds = new int[length + INCREMENT], 0, length);

-		this.lineEnds[this.linePtr] = separatorPos;

-		// look-ahead for merged cr+lf

-		try {

-			if (this.source[this.currentPosition] == '\n') {

-				//System.out.println("look-ahead LF-" + this.currentPosition);			

-				this.lineEnds[this.linePtr] = this.currentPosition;

-				this.currentPosition++;

-				this.wasAcr = false;

-			} else {

-				this.wasAcr = true;

-			}

-		} catch(IndexOutOfBoundsException e) {

-			this.wasAcr = true;

-		}

-	} else {

-		// lf 000A

-		if (this.currentCharacter == '\n') { //must merge eventual cr followed by lf

-			if (this.wasAcr && (this.lineEnds[this.linePtr] == (this.currentPosition - 2))) {

-				//System.out.println("merge LF-" + (this.currentPosition - 1));							

-				this.lineEnds[this.linePtr] = this.currentPosition - 1;

-			} else {

-				int separatorPos = this.currentPosition - 1;

-				//TODO (olivier) david - why the following line was "if ((this.linePtr > 0) && (this.lineEnds[this.linePtr] >= separatorPos)) return;" ?

-				if ((this.linePtr >= 0) && (this.lineEnds[this.linePtr] >= separatorPos)) return;

-				// System.out.println("LF-" + separatorPos);

-				int length = this.lineEnds.length;

-				if (++this.linePtr >=  length)

-					System.arraycopy(this.lineEnds, 0, this.lineEnds = new int[length + INCREMENT], 0, length);

-				this.lineEnds[this.linePtr] = separatorPos;

-			}

-			this.wasAcr = false;

-		}

-	}

-}

-public final void pushUnicodeLineSeparator() {

-	if (this.checkNonExternalizedStringLiterals) {

-	// reinitialize the current line for non externalize strings purpose

-		this.currentLine = null;

-	}

-	

-	// cr 000D

-	if (this.currentCharacter == '\r') {

-		if (this.source[this.currentPosition] == '\n') {

-			this.wasAcr = false;

-		} else {

-			this.wasAcr = true;

-		}

-	} else {

-		// lf 000A

-		if (this.currentCharacter == '\n') { //must merge eventual cr followed by lf

-			this.wasAcr = false;

-		}

-	}

-}

-public void recordComment(int token) {

-	// compute position

-	int stopPosition = this.currentPosition;

-	switch (token) {

-		case TokenNameCOMMENT_LINE:

-			stopPosition = -this.lastCommentLinePosition;

-			break;

-		case TokenNameCOMMENT_BLOCK:

-			stopPosition = -this.currentPosition;

-			break;

-	}

-

-	// a new comment is recorded

-	int length = this.commentStops.length;

-	if (++this.commentPtr >=  length) {

-		System.arraycopy(this.commentStops, 0, this.commentStops = new int[length + 30], 0, length);

-		//grows the positions buffers too

-		System.arraycopy(this.commentStarts, 0, this.commentStarts = new int[length + 30], 0, length);

-	}

-	this.commentStops[this.commentPtr] = stopPosition;

-	this.commentStarts[this.commentPtr] = this.startPosition;

-}

-

-/**

- * Reposition the scanner on some portion of the original source. The given endPosition is the last valid position.

- * Beyond this position, the scanner will answer EOF tokens (<code>ITerminalSymbols.TokenNameEOF</code>).

- * 

- * @param begin the given start position

- * @param end the given end position

- */

-public void resetTo(int begin, int end) {

-	//reset the scanner to a given position where it may rescan again

-

-	this.diet = false;

-	this.initialPosition = this.startPosition = this.currentPosition = begin;

-	this.eofPosition = end < Integer.MAX_VALUE ? end + 1 : end;

-	this.commentPtr = -1; // reset comment stack

-	this.foundTaskCount = 0;

-	

-//	// if resetTo is used with being > than end.

-//	if (begin > this.eofPosition) {

-//		begin = this.eofPosition;

-//	}

-}

-

-public final void scanEscapeCharacter() throws InvalidInputException {

-	// the string with "\\u" is a legal string of two chars \ and u

-	//thus we use a direct access to the source (for regular cases).

-

-	if (this.unicodeAsBackSlash) {

-		// consume next character

-		this.unicodeAsBackSlash = false;

-		if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\') && (this.source[this.currentPosition] == 'u')) {

-			getNextUnicodeChar();

-		} else {

-			if (this.withoutUnicodePtr != 0) {

-				unicodeStoreAt(++this.withoutUnicodePtr);

-			}

-		}

-	} else

-		this.currentCharacter = this.source[this.currentPosition++];

-	switch (this.currentCharacter) {

-		case 'b' :

-			this.currentCharacter = '\b';

-			break;

-		case 't' :

-			this.currentCharacter = '\t';

-			break;

-		case 'n' :

-			this.currentCharacter = '\n';

-			break;

-		case 'f' :

-			this.currentCharacter = '\f';

-			break;

-		case 'r' :

-			this.currentCharacter = '\r';

-			break;

-		case '\"' :

-			this.currentCharacter = '\"';

-			break;

-		case '\'' :

-			this.currentCharacter = '\'';

-			break;

-		case '\\' :

-			this.currentCharacter = '\\';

-			break;

-		default :

-			// -----------octal escape--------------

-			// OctalDigit

-			// OctalDigit OctalDigit

-			// ZeroToThree OctalDigit OctalDigit

-

-			int number = Character.getNumericValue(this.currentCharacter);

-			if (number >= 0 && number <= 7) {

-				boolean zeroToThreeNot = number > 3;

-				if (isDigit(this.currentCharacter = this.source[this.currentPosition++])) {

-					int digit = Character.getNumericValue(this.currentCharacter);

-					if (digit >= 0 && digit <= 7) {

-						number = (number * 8) + digit;

-						if (isDigit(this.currentCharacter = this.source[this.currentPosition++])) {

-							if (zeroToThreeNot) {// has read \NotZeroToThree OctalDigit Digit --> ignore last character

-								this.currentPosition--;

-							} else {

-								digit = Character.getNumericValue(this.currentCharacter);

-								if (digit >= 0 && digit <= 7){ // has read \ZeroToThree OctalDigit OctalDigit

-									number = (number * 8) + digit;

-								} else {// has read \ZeroToThree OctalDigit NonOctalDigit --> ignore last character

-									this.currentPosition--;

-								}

-							}

-						} else { // has read \OctalDigit NonDigit--> ignore last character

-							this.currentPosition--;

-						}

-					} else { // has read \OctalDigit NonOctalDigit--> ignore last character						

-						this.currentPosition--;

-					}

-				} else { // has read \OctalDigit --> ignore last character

-					this.currentPosition--;

-				}

-				if (number > 255)

-					throw new InvalidInputException(INVALID_ESCAPE);

-				this.currentCharacter = (char) number;

-			} else

-				throw new InvalidInputException(INVALID_ESCAPE);

-	}

-}

-public int scanIdentifierOrKeyword() {

-	//test keywords

-

-	//first dispatch on the first char.

-	//then the length. If there are several

-	//keywors with the same length AND the same first char, then do another

-	//dispatch on the second char 

-	this.useAssertAsAnIndentifier = false;

-	this.useEnumAsAnIndentifier = false;

-	while (getNextCharAsJavaIdentifierPart()){/*empty*/}

-

-	int index, length;

-	char[] data;

-	char firstLetter;

-	if (this.withoutUnicodePtr == 0)

-

-		//quick test on length == 1 but not on length > 12 while most identifier

-		//have a length which is <= 12...but there are lots of identifier with

-		//only one char....

-

-		{

-		if ((length = this.currentPosition - this.startPosition) == 1)

-			return TokenNameIdentifier;

-		data = this.source;

-		index = this.startPosition;

-	} else {

-		if ((length = this.withoutUnicodePtr) == 1)

-			return TokenNameIdentifier;

-		data = this.withoutUnicodeBuffer;

-		index = 1;

-	}

-

-	firstLetter = data[index];

-	switch (firstLetter) {

-

-		case 'a' : 

-			switch(length) {

-				case 8: //abstract

-					if ((data[++index] == 'b')

-						&& (data[++index] == 's')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'r')

-						&& (data[++index] == 'a')

-						&& (data[++index] == 'c')

-						&& (data[++index] == 't')) {

-							return TokenNameabstract;

-						} else {

-							return TokenNameIdentifier;

-						}

-				case 6: // assert

-					if ((data[++index] == 's')

-						&& (data[++index] == 's')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'r')

-						&& (data[++index] == 't')) {

-							if (this.sourceLevel >= ClassFileConstants.JDK1_4) {

-								this.containsAssertKeyword = true;

-								return TokenNameassert;

-							} else {

-								this.useAssertAsAnIndentifier = true;

-								return TokenNameIdentifier;								

-							}

-						} else {

-							return TokenNameIdentifier;

-						}

-				default: 

-					return TokenNameIdentifier;

-			}

-		case 'b' : //boolean break byte

-			switch (length) {

-				case 4 :

-					if ((data[++index] == 'y') && (data[++index] == 't') && (data[++index] == 'e'))

-						return TokenNamebyte;

-					else

-						return TokenNameIdentifier;

-				case 5 :

-					if ((data[++index] == 'r')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'a')

-						&& (data[++index] == 'k'))

-						return TokenNamebreak;

-					else

-						return TokenNameIdentifier;

-				case 7 :

-					if ((data[++index] == 'o')

-						&& (data[++index] == 'o')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'a')

-						&& (data[++index] == 'n'))

-						return TokenNameboolean;

-					else

-						return TokenNameIdentifier;

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 'c' : //case char catch const class continue

-			switch (length) {

-				case 4 :

-					if (data[++index] == 'a')

-						if ((data[++index] == 's') && (data[++index] == 'e'))

-							return TokenNamecase;

-						else

-							return TokenNameIdentifier;

-					else

-						if ((data[index] == 'h') && (data[++index] == 'a') && (data[++index] == 'r'))

-							return TokenNamechar;

-						else

-							return TokenNameIdentifier;

-				case 5 :

-					if (data[++index] == 'a')

-						if ((data[++index] == 't') && (data[++index] == 'c') && (data[++index] == 'h'))

-							return TokenNamecatch;

-						else

-							return TokenNameIdentifier;

-					else

-						if (data[index] == 'l')

-							if ((data[++index] == 'a')

-								&& (data[++index] == 's')

-								&& (data[++index] == 's'))

-								return TokenNameclass;

-							else

-								return TokenNameIdentifier;

-						else if ((data[index] == 'o')

-							&& (data[++index] == 'n')

-							&& (data[++index] == 's')

-							&& (data[++index] == 't'))

-							return TokenNameERROR; //const is not used in java ???????

-						else

-							return TokenNameIdentifier;

-				case 8 :

-					if ((data[++index] == 'o')

-						&& (data[++index] == 'n')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'i')

-						&& (data[++index] == 'n')

-						&& (data[++index] == 'u')

-						&& (data[++index] == 'e'))

-						return TokenNamecontinue;

-					else

-						return TokenNameIdentifier;

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 'd' : //default do double

-			switch (length) {

-				case 2 :

-					if ((data[++index] == 'o'))

-						return TokenNamedo;

-					else

-						return TokenNameIdentifier;

-				case 6 :

-					if ((data[++index] == 'o')

-						&& (data[++index] == 'u')

-						&& (data[++index] == 'b')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 'e'))

-						return TokenNamedouble;

-					else

-						return TokenNameIdentifier;

-				case 7 :

-					if ((data[++index] == 'e')

-						&& (data[++index] == 'f')

-						&& (data[++index] == 'a')

-						&& (data[++index] == 'u')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 't'))

-						return TokenNamedefault;

-					else

-						return TokenNameIdentifier;

-				default :

-					return TokenNameIdentifier;

-			}

-		case 'e' : //else extends

-			switch (length) {

-				case 4 :

-					if ((data[++index] == 'l') && (data[++index] == 's') && (data[++index] == 'e'))

-						return TokenNameelse;

-					else if ((data[index] == 'n')

-						&& (data[++index] == 'u')

-						&& (data[++index] == 'm')) {

-							if (this.sourceLevel >= ClassFileConstants.JDK1_5) {

-								return TokenNameenum;

-							} else {

-								this.useEnumAsAnIndentifier = true;

-								return TokenNameIdentifier;								

-							}

-						} else {

-							return TokenNameIdentifier;

-						}

-				case 7 :

-					if ((data[++index] == 'x')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'n')

-						&& (data[++index] == 'd')

-						&& (data[++index] == 's'))

-						return TokenNameextends;

-					else

-						return TokenNameIdentifier;

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 'f' : //final finally float for false

-			switch (length) {

-				case 3 :

-					if ((data[++index] == 'o') && (data[++index] == 'r'))

-						return TokenNamefor;

-					else

-						return TokenNameIdentifier;

-				case 5 :

-					if (data[++index] == 'i')

-						if ((data[++index] == 'n')

-							&& (data[++index] == 'a')

-							&& (data[++index] == 'l')) {

-							return TokenNamefinal;

-						} else

-							return TokenNameIdentifier;

-					else

-						if (data[index] == 'l')

-							if ((data[++index] == 'o')

-								&& (data[++index] == 'a')

-								&& (data[++index] == 't'))

-								return TokenNamefloat;

-							else

-								return TokenNameIdentifier;

-						else

-							if ((data[index] == 'a')

-								&& (data[++index] == 'l')

-								&& (data[++index] == 's')

-								&& (data[++index] == 'e'))

-								return TokenNamefalse;

-							else

-								return TokenNameIdentifier;

-				case 7 :

-					if ((data[++index] == 'i')

-						&& (data[++index] == 'n')

-						&& (data[++index] == 'a')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 'y'))

-						return TokenNamefinally;

-					else

-						return TokenNameIdentifier;

-

-				default :

-					return TokenNameIdentifier;

-			}

-		case 'g' : //goto

-			if (length == 4) {

-				if ((data[++index] == 'o')

-					&& (data[++index] == 't')

-					&& (data[++index] == 'o')) {

-					return TokenNameERROR;

-				}

-			} //no goto in java are allowed, so why java removes this keyword ???

-			return TokenNameIdentifier;

-

-		case 'i' : //if implements import instanceof int interface

-			switch (length) {

-				case 2 :

-					if (data[++index] == 'f')

-						return TokenNameif;

-					else

-						return TokenNameIdentifier;

-				case 3 :

-					if ((data[++index] == 'n') && (data[++index] == 't'))

-						return TokenNameint;

-					else

-						return TokenNameIdentifier;

-				case 6 :

-					if ((data[++index] == 'm')

-						&& (data[++index] == 'p')

-						&& (data[++index] == 'o')

-						&& (data[++index] == 'r')

-						&& (data[++index] == 't'))

-						return TokenNameimport;

-					else

-						return TokenNameIdentifier;

-				case 9 :

-					if ((data[++index] == 'n')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'r')

-						&& (data[++index] == 'f')

-						&& (data[++index] == 'a')

-						&& (data[++index] == 'c')

-						&& (data[++index] == 'e'))

-						return TokenNameinterface;

-					else

-						return TokenNameIdentifier;

-				case 10 :

-					if (data[++index] == 'm')

-						if ((data[++index] == 'p')

-							&& (data[++index] == 'l')

-							&& (data[++index] == 'e')

-							&& (data[++index] == 'm')

-							&& (data[++index] == 'e')

-							&& (data[++index] == 'n')

-							&& (data[++index] == 't')

-							&& (data[++index] == 's'))

-							return TokenNameimplements;

-						else

-							return TokenNameIdentifier;

-					else

-						if ((data[index] == 'n')

-							&& (data[++index] == 's')

-							&& (data[++index] == 't')

-							&& (data[++index] == 'a')

-							&& (data[++index] == 'n')

-							&& (data[++index] == 'c')

-							&& (data[++index] == 'e')

-							&& (data[++index] == 'o')

-							&& (data[++index] == 'f'))

-							return TokenNameinstanceof;

-						else

-							return TokenNameIdentifier;

-

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 'l' : //long

-			if (length == 4) {

-				if ((data[++index] == 'o')

-					&& (data[++index] == 'n')

-					&& (data[++index] == 'g')) {

-					return TokenNamelong;

-				}

-			}

-			return TokenNameIdentifier;

-

-		case 'n' : //native new null

-			switch (length) {

-				case 3 :

-					if ((data[++index] == 'e') && (data[++index] == 'w'))

-						return TokenNamenew;

-					else

-						return TokenNameIdentifier;

-				case 4 :

-					if ((data[++index] == 'u') && (data[++index] == 'l') && (data[++index] == 'l'))

-						return TokenNamenull;

-					else

-						return TokenNameIdentifier;

-				case 6 :

-					if ((data[++index] == 'a')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'i')

-						&& (data[++index] == 'v')

-						&& (data[++index] == 'e')) {

-						return TokenNamenative;

-					} else

-						return TokenNameIdentifier;

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 'p' : //package private protected public

-			switch (length) {

-				case 6 :

-					if ((data[++index] == 'u')

-						&& (data[++index] == 'b')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 'i')

-						&& (data[++index] == 'c')) {

-						return TokenNamepublic;

-					} else

-						return TokenNameIdentifier;

-				case 7 :

-					if (data[++index] == 'a')

-						if ((data[++index] == 'c')

-							&& (data[++index] == 'k')

-							&& (data[++index] == 'a')

-							&& (data[++index] == 'g')

-							&& (data[++index] == 'e'))

-							return TokenNamepackage;

-						else

-							return TokenNameIdentifier;

-					else

-						if ((data[index] == 'r')

-							&& (data[++index] == 'i')

-							&& (data[++index] == 'v')

-							&& (data[++index] == 'a')

-							&& (data[++index] == 't')

-							&& (data[++index] == 'e')) {

-							return TokenNameprivate;

-						} else

-							return TokenNameIdentifier;

-				case 9 :

-					if ((data[++index] == 'r')

-						&& (data[++index] == 'o')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'c')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'd')) {

-						return TokenNameprotected;

-					} else

-						return TokenNameIdentifier;

-

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 'r' : //return

-			if (length == 6) {

-				if ((data[++index] == 'e')

-					&& (data[++index] == 't')

-					&& (data[++index] == 'u')

-					&& (data[++index] == 'r')

-					&& (data[++index] == 'n')) {

-					return TokenNamereturn;

-				}

-			}

-			return TokenNameIdentifier;

-

-		case 's' : //short static super switch synchronized strictfp

-			switch (length) {

-				case 5 :

-					if (data[++index] == 'h')

-						if ((data[++index] == 'o') && (data[++index] == 'r') && (data[++index] == 't'))

-							return TokenNameshort;

-						else

-							return TokenNameIdentifier;

-					else

-						if ((data[index] == 'u')

-							&& (data[++index] == 'p')

-							&& (data[++index] == 'e')

-							&& (data[++index] == 'r'))

-							return TokenNamesuper;

-						else

-							return TokenNameIdentifier;

-

-				case 6 :

-					if (data[++index] == 't')

-						if ((data[++index] == 'a')

-							&& (data[++index] == 't')

-							&& (data[++index] == 'i')

-							&& (data[++index] == 'c')) {

-							return TokenNamestatic;

-						} else

-							return TokenNameIdentifier;

-					else

-						if ((data[index] == 'w')

-							&& (data[++index] == 'i')

-							&& (data[++index] == 't')

-							&& (data[++index] == 'c')

-							&& (data[++index] == 'h'))

-							return TokenNameswitch;

-						else

-							return TokenNameIdentifier;

-				case 8 :

-					if ((data[++index] == 't')

-						&& (data[++index] == 'r')

-						&& (data[++index] == 'i')

-						&& (data[++index] == 'c')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'f')

-						&& (data[++index] == 'p'))

-						return TokenNamestrictfp;

-					else

-						return TokenNameIdentifier;

-				case 12 :

-					if ((data[++index] == 'y')

-						&& (data[++index] == 'n')

-						&& (data[++index] == 'c')

-						&& (data[++index] == 'h')

-						&& (data[++index] == 'r')

-						&& (data[++index] == 'o')

-						&& (data[++index] == 'n')

-						&& (data[++index] == 'i')

-						&& (data[++index] == 'z')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'd')) {

-						return TokenNamesynchronized;

-					} else

-						return TokenNameIdentifier;

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 't' : //try throw throws transient this true

-			switch (length) {

-				case 3 :

-					if ((data[++index] == 'r') && (data[++index] == 'y'))

-						return TokenNametry;

-					else

-						return TokenNameIdentifier;

-				case 4 :

-					if (data[++index] == 'h') 

-						if ((data[++index] == 'i') && (data[++index] == 's'))

-							return TokenNamethis;

-						else

-							return TokenNameIdentifier;

-					else

-						if ((data[index] == 'r') && (data[++index] == 'u') && (data[++index] == 'e'))

-							return TokenNametrue;

-						else

-							return TokenNameIdentifier;

-				case 5 :

-					if ((data[++index] == 'h')

-						&& (data[++index] == 'r')

-						&& (data[++index] == 'o')

-						&& (data[++index] == 'w'))

-						return TokenNamethrow;

-					else

-						return TokenNameIdentifier;

-				case 6 :

-					if ((data[++index] == 'h')

-						&& (data[++index] == 'r')

-						&& (data[++index] == 'o')

-						&& (data[++index] == 'w')

-						&& (data[++index] == 's'))

-						return TokenNamethrows;

-					else

-						return TokenNameIdentifier;

-				case 9 :

-					if ((data[++index] == 'r')

-						&& (data[++index] == 'a')

-						&& (data[++index] == 'n')

-						&& (data[++index] == 's')

-						&& (data[++index] == 'i')

-						&& (data[++index] == 'e')

-						&& (data[++index] == 'n')

-						&& (data[++index] == 't')) {

-						return TokenNametransient;

-					} else

-						return TokenNameIdentifier;

-

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 'v' : //void volatile

-			switch (length) {

-				case 4 :

-					if ((data[++index] == 'o') && (data[++index] == 'i') && (data[++index] == 'd'))

-						return TokenNamevoid;

-					else

-						return TokenNameIdentifier;

-				case 8 :

-					if ((data[++index] == 'o')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 'a')

-						&& (data[++index] == 't')

-						&& (data[++index] == 'i')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 'e')) {

-						return TokenNamevolatile;

-					} else

-						return TokenNameIdentifier;

-

-				default :

-					return TokenNameIdentifier;

-			}

-

-		case 'w' : //while widefp

-			switch (length) {

-				case 5 :

-					if ((data[++index] == 'h')

-						&& (data[++index] == 'i')

-						&& (data[++index] == 'l')

-						&& (data[++index] == 'e'))

-						return TokenNamewhile;

-					else

-						return TokenNameIdentifier;

-					//case 6:if ( (data[++index] =='i') && (data[++index]=='d') && (data[++index]=='e') && (data[++index]=='f')&& (data[++index]=='p'))

-					//return TokenNamewidefp ;

-					//else

-					//return TokenNameIdentifier;

-				default :

-					return TokenNameIdentifier;

-			}

-

-		default :

-			return TokenNameIdentifier;

-	}

-}

-public int scanNumber(boolean dotPrefix) throws InvalidInputException {

-

-	//when entering this method the currentCharacter is the first

-	//digit of the number. It may be preceeded by a '.' when

-	//dotPrefix is true

-

-	boolean floating = dotPrefix;

-	if ((!dotPrefix) && (this.currentCharacter == '0')) {

-		if (getNextChar('x', 'X') >= 0) { //----------hexa-----------------

-			int start = this.currentPosition;

-			while (getNextCharAsDigit(16)){/*empty*/}

-			int end = this.currentPosition;

-			if (getNextChar('l', 'L') >= 0) {

-				if (end == start) {

-					throw new InvalidInputException(INVALID_HEXA);

-				}

-				return TokenNameLongLiteral;

-			} else if (getNextChar('.')) {

-				if (this.sourceLevel < ClassFileConstants.JDK1_5) {

-					// if we are in source level < 1.5, we report an integer literal

-					this.currentPosition = end;

-					return TokenNameIntegerLiteral;

-				}

-				// hexadeciman floating point literal

-				// read decimal part

-				while (getNextCharAsDigit(16)){/*empty*/}

-				

-				if (getNextChar('p', 'P') >= 0) { // consume next character

-					this.unicodeAsBackSlash = false;

-					if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-						&& (this.source[this.currentPosition] == 'u')) {

-						getNextUnicodeChar();

-					} else {

-						if (this.withoutUnicodePtr != 0) {

-							unicodeStoreAt(++this.withoutUnicodePtr);

-						}

-					}

-

-					if ((this.currentCharacter == '-')

-						|| (this.currentCharacter == '+')) { // consume next character

-						this.unicodeAsBackSlash = false;

-						if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-							&& (this.source[this.currentPosition] == 'u')) {

-							getNextUnicodeChar();

-						} else {

-							if (this.withoutUnicodePtr != 0) {

-								unicodeStoreAt(++this.withoutUnicodePtr);

-							}

-						}

-					}

-					if (!isDigit(this.currentCharacter)) {

-						throw new InvalidInputException(INVALID_HEXA);

-					}

-					while (getNextCharAsDigit()){/*empty*/}

-					if (getNextChar('f', 'F') >= 0) {

-						return TokenNameFloatingPointLiteral;

-					}

-					if (getNextChar('d', 'D') >= 0) {

-						return TokenNameDoubleLiteral;

-					}

-					if (getNextChar('l', 'L') >= 0) {

-						throw new InvalidInputException(INVALID_HEXA);

-					}					

-					return TokenNameDoubleLiteral;

-				} else {

-					throw new InvalidInputException(INVALID_HEXA);

-				}

-			} else if (getNextChar('p', 'P') >= 0) { // consume next character

-				if (this.sourceLevel < ClassFileConstants.JDK1_5) {

-					// if we are in source level < 1.5 we report an integer literal

-					this.currentPosition = end;

-					return TokenNameIntegerLiteral;

-				}

-				this.unicodeAsBackSlash = false;

-				if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-					&& (this.source[this.currentPosition] == 'u')) {

-					getNextUnicodeChar();

-				} else {

-					if (this.withoutUnicodePtr != 0) {

-						unicodeStoreAt(++this.withoutUnicodePtr);

-					}

-				}

-

-				if ((this.currentCharacter == '-')

-					|| (this.currentCharacter == '+')) { // consume next character

-					this.unicodeAsBackSlash = false;

-					if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-						&& (this.source[this.currentPosition] == 'u')) {

-						getNextUnicodeChar();

-					} else {

-						if (this.withoutUnicodePtr != 0) {

-							unicodeStoreAt(++this.withoutUnicodePtr);

-						}

-					}

-				}

-				if (!isDigit(this.currentCharacter))

-					throw new InvalidInputException(INVALID_FLOAT);

-				while (getNextCharAsDigit()){/*empty*/}

-				if (getNextChar('f', 'F') >= 0)

-					return TokenNameFloatingPointLiteral;

-				if (getNextChar('d', 'D') >= 0)

-					return TokenNameDoubleLiteral;

-				if (getNextChar('l', 'L') >= 0) {

-					throw new InvalidInputException(INVALID_HEXA);

-				}

-				return TokenNameDoubleLiteral;

-			} else {

-				if (end == start)

-					throw new InvalidInputException(INVALID_HEXA);

-				return TokenNameIntegerLiteral;

-			}

-		}

-

-		//there is x or X in the number

-		//potential octal ! ... some one may write 000099.0 ! thus 00100 < 00078.0 is true !!!!! crazy language

-		if (getNextCharAsDigit()) { //-------------potential octal-----------------

-			while (getNextCharAsDigit()){/*empty*/}

-

-			if (getNextChar('l', 'L') >= 0) {

-				return TokenNameLongLiteral;

-			}

-

-			if (getNextChar('f', 'F') >= 0) {

-				return TokenNameFloatingPointLiteral;

-			}

-

-			if (getNextChar('d', 'D') >= 0) {

-				return TokenNameDoubleLiteral;

-			} else { //make the distinction between octal and float ....

-				boolean isInteger = true;

-				if (getNextChar('.')) { 

-					isInteger = false;

-					while (getNextCharAsDigit()){/*empty*/}

-				}

-				if (getNextChar('e', 'E') >= 0) { // consume next character

-					isInteger = false;

-					this.unicodeAsBackSlash = false;

-					if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-						&& (this.source[this.currentPosition] == 'u')) {

-						getNextUnicodeChar();

-					} else {

-						if (this.withoutUnicodePtr != 0) {

-							unicodeStoreAt(++this.withoutUnicodePtr);

-						}

-					}

-

-					if ((this.currentCharacter == '-')

-						|| (this.currentCharacter == '+')) { // consume next character

-						this.unicodeAsBackSlash = false;

-						if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-							&& (this.source[this.currentPosition] == 'u')) {

-							getNextUnicodeChar();

-						} else {

-							if (this.withoutUnicodePtr != 0) {

-								unicodeStoreAt(++this.withoutUnicodePtr);

-							}

-						}

-					}

-					if (!isDigit(this.currentCharacter))

-						throw new InvalidInputException(INVALID_FLOAT);

-					while (getNextCharAsDigit()){/*empty*/}

-				}

-				if (getNextChar('f', 'F') >= 0)

-					return TokenNameFloatingPointLiteral;

-				if (getNextChar('d', 'D') >= 0 || !isInteger)

-					return TokenNameDoubleLiteral;

-				return TokenNameIntegerLiteral;

-			}

-		} else {

-			/* carry on */

-		}

-	}

-

-	while (getNextCharAsDigit()){/*empty*/}

-

-	if ((!dotPrefix) && (getNextChar('l', 'L') >= 0))

-		return TokenNameLongLiteral;

-

-	if ((!dotPrefix) && (getNextChar('.'))) { //decimal part that can be empty

-		while (getNextCharAsDigit()){/*empty*/}

-		floating = true;

-	}

-

-	//if floating is true both exponant and suffix may be optional

-

-	if (getNextChar('e', 'E') >= 0) {

-		floating = true;

-		// consume next character

-		this.unicodeAsBackSlash = false;

-		if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-			&& (this.source[this.currentPosition] == 'u')) {

-			getNextUnicodeChar();

-		} else {

-			if (this.withoutUnicodePtr != 0) {

-				unicodeStoreAt(++this.withoutUnicodePtr);

-			}

-		}

-

-		if ((this.currentCharacter == '-')

-			|| (this.currentCharacter == '+')) { // consume next character

-			this.unicodeAsBackSlash = false;

-			if (((this.currentCharacter = this.source[this.currentPosition++]) == '\\')

-				&& (this.source[this.currentPosition] == 'u')) {

-				getNextUnicodeChar();

-			} else {

-				if (this.withoutUnicodePtr != 0) {

-					unicodeStoreAt(++this.withoutUnicodePtr);

-				}

-			}

-		}

-		if (!isDigit(this.currentCharacter))

-			throw new InvalidInputException(INVALID_FLOAT);

-		while (getNextCharAsDigit()){/*empty*/}

-	}

-

-	if (getNextChar('d', 'D') >= 0)

-		return TokenNameDoubleLiteral;

-	if (getNextChar('f', 'F') >= 0)

-		return TokenNameFloatingPointLiteral;

-

-	//the long flag has been tested before

-

-	return floating ? TokenNameDoubleLiteral : TokenNameIntegerLiteral;

-}

-/**

- * Search the line number corresponding to a specific position

- * @param position int

- * @return int

- */

-public final int getLineNumber(int position) {

-

-	if (this.lineEnds == null)

-		return 1;

-	int length = this.linePtr+1;

-	if (length == 0)

-		return 1;

-	int g = 0, d = length - 1;

-	int m = 0;

-	while (g <= d) {

-		m = (g + d) /2;

-		if (position < this.lineEnds[m]) {

-			d = m-1;

-		} else if (position > this.lineEnds[m]) {

-			g = m+1;

-		} else {

-			return m + 1;

-		}

-	}

-	if (position < this.lineEnds[m]) {

-		return m+1;

-	}

-	return m+2;

-}

-public final void setSource(char[] sourceString){

-	//the source-buffer is set to sourceString

-

-	int sourceLength;

-	if (sourceString == null) {

-		this.source = CharOperation.NO_CHAR;

-		sourceLength = 0;

-	} else {

-		this.source = sourceString;

-		sourceLength = sourceString.length;

-	}

-	this.startPosition = -1;

-	this.eofPosition = sourceLength;

-	this.initialPosition = this.currentPosition = 0;

-	this.containsAssertKeyword = false;

-	this.linePtr = -1;	

-}

-

-/*

- * Should be used if a parse (usually a diet parse) has already been performed on the unit, 

- * so as to get the already computed line end positions.

- */

-public final void setSource(CompilationResult compilationResult) {

-	char[] contents = compilationResult.compilationUnit.getContents();

-	setSource(contents);

-	int[] lineSeparatorPositions = compilationResult.lineSeparatorPositions;

-	if (lineSeparatorPositions != null) {

-		this.lineEnds = lineSeparatorPositions;

-		this.linePtr = lineSeparatorPositions.length - 1;

-	}

-}

-

-public String toString() {

-	if (this.startPosition == this.source.length)

-		return "EOF\n\n" + new String(this.source); //$NON-NLS-1$

-	if (this.currentPosition > this.source.length)

-		return "behind the EOF\n\n" + new String(this.source); //$NON-NLS-1$

-

-	char front[] = new char[this.startPosition];

-	System.arraycopy(this.source, 0, front, 0, this.startPosition);

-

-	int middleLength = (this.currentPosition - 1) - this.startPosition + 1;

-	char middle[];

-	if (middleLength > -1) {

-		middle = new char[middleLength];

-		System.arraycopy(

-			this.source, 

-			this.startPosition, 

-			middle, 

-			0, 

-			middleLength);

-	} else {

-		middle = CharOperation.NO_CHAR;

-	}

-	

-	char end[] = new char[this.source.length - (this.currentPosition - 1)];

-	System.arraycopy(

-		this.source, 

-		(this.currentPosition - 1) + 1, 

-		end, 

-		0, 

-		this.source.length - (this.currentPosition - 1) - 1);

-	

-	return new String(front)

-		+ "\n===============================\nStarts here -->" //$NON-NLS-1$

-		+ new String(middle)

-		+ "<-- Ends here\n===============================\n" //$NON-NLS-1$

-		+ new String(end); 

-}

-public final String toStringAction(int act) {

-	switch (act) {

-		case TokenNameIdentifier :

-			return "Identifier(" + new String(getCurrentTokenSource()) + ")"; //$NON-NLS-1$ //$NON-NLS-2$

-		case TokenNameabstract :

-			return "abstract"; //$NON-NLS-1$

-		case TokenNameboolean :

-			return "boolean"; //$NON-NLS-1$

-		case TokenNamebreak :

-			return "break"; //$NON-NLS-1$

-		case TokenNamebyte :

-			return "byte"; //$NON-NLS-1$

-		case TokenNamecase :

-			return "case"; //$NON-NLS-1$

-		case TokenNamecatch :

-			return "catch"; //$NON-NLS-1$

-		case TokenNamechar :

-			return "char"; //$NON-NLS-1$

-		case TokenNameclass :

-			return "class"; //$NON-NLS-1$

-		case TokenNamecontinue :

-			return "continue"; //$NON-NLS-1$

-		case TokenNamedefault :

-			return "default"; //$NON-NLS-1$

-		case TokenNamedo :

-			return "do"; //$NON-NLS-1$

-		case TokenNamedouble :

-			return "double"; //$NON-NLS-1$

-		case TokenNameelse :

-			return "else"; //$NON-NLS-1$

-		case TokenNameextends :

-			return "extends"; //$NON-NLS-1$

-		case TokenNamefalse :

-			return "false"; //$NON-NLS-1$

-		case TokenNamefinal :

-			return "final"; //$NON-NLS-1$

-		case TokenNamefinally :

-			return "finally"; //$NON-NLS-1$

-		case TokenNamefloat :

-			return "float"; //$NON-NLS-1$

-		case TokenNamefor :

-			return "for"; //$NON-NLS-1$

-		case TokenNameif :

-			return "if"; //$NON-NLS-1$

-		case TokenNameimplements :

-			return "implements"; //$NON-NLS-1$

-		case TokenNameimport :

-			return "import"; //$NON-NLS-1$

-		case TokenNameinstanceof :

-			return "instanceof"; //$NON-NLS-1$

-		case TokenNameint :

-			return "int"; //$NON-NLS-1$

-		case TokenNameinterface :

-			return "interface"; //$NON-NLS-1$

-		case TokenNamelong :

-			return "long"; //$NON-NLS-1$

-		case TokenNamenative :

-			return "native"; //$NON-NLS-1$

-		case TokenNamenew :

-			return "new"; //$NON-NLS-1$

-		case TokenNamenull :

-			return "null"; //$NON-NLS-1$

-		case TokenNamepackage :

-			return "package"; //$NON-NLS-1$

-		case TokenNameprivate :

-			return "private"; //$NON-NLS-1$

-		case TokenNameprotected :

-			return "protected"; //$NON-NLS-1$

-		case TokenNamepublic :

-			return "public"; //$NON-NLS-1$

-		case TokenNamereturn :

-			return "return"; //$NON-NLS-1$

-		case TokenNameshort :

-			return "short"; //$NON-NLS-1$

-		case TokenNamestatic :

-			return "static"; //$NON-NLS-1$

-		case TokenNamesuper :

-			return "super"; //$NON-NLS-1$

-		case TokenNameswitch :

-			return "switch"; //$NON-NLS-1$

-		case TokenNamesynchronized :

-			return "synchronized"; //$NON-NLS-1$

-		case TokenNamethis :

-			return "this"; //$NON-NLS-1$

-		case TokenNamethrow :

-			return "throw"; //$NON-NLS-1$

-		case TokenNamethrows :

-			return "throws"; //$NON-NLS-1$

-		case TokenNametransient :

-			return "transient"; //$NON-NLS-1$

-		case TokenNametrue :

-			return "true"; //$NON-NLS-1$

-		case TokenNametry :

-			return "try"; //$NON-NLS-1$

-		case TokenNamevoid :

-			return "void"; //$NON-NLS-1$

-		case TokenNamevolatile :

-			return "volatile"; //$NON-NLS-1$

-		case TokenNamewhile :

-			return "while"; //$NON-NLS-1$

-

-		case TokenNameIntegerLiteral :

-			return "Integer(" + new String(getCurrentTokenSource()) + ")"; //$NON-NLS-1$ //$NON-NLS-2$

-		case TokenNameLongLiteral :

-			return "Long(" + new String(getCurrentTokenSource()) + ")"; //$NON-NLS-1$ //$NON-NLS-2$

-		case TokenNameFloatingPointLiteral :

-			return "Float(" + new String(getCurrentTokenSource()) + ")"; //$NON-NLS-1$ //$NON-NLS-2$

-		case TokenNameDoubleLiteral :

-			return "Double(" + new String(getCurrentTokenSource()) + ")"; //$NON-NLS-1$ //$NON-NLS-2$

-		case TokenNameCharacterLiteral :

-			return "Char(" + new String(getCurrentTokenSource()) + ")"; //$NON-NLS-1$ //$NON-NLS-2$

-		case TokenNameStringLiteral :

-			return "String(" + new String(getCurrentTokenSource()) + ")"; //$NON-NLS-1$ //$NON-NLS-2$

-

-		case TokenNamePLUS_PLUS :

-			return "++"; //$NON-NLS-1$

-		case TokenNameMINUS_MINUS :

-			return "--"; //$NON-NLS-1$

-		case TokenNameEQUAL_EQUAL :

-			return "=="; //$NON-NLS-1$

-		case TokenNameLESS_EQUAL :

-			return "<="; //$NON-NLS-1$

-		case TokenNameGREATER_EQUAL :

-			return ">="; //$NON-NLS-1$

-		case TokenNameNOT_EQUAL :

-			return "!="; //$NON-NLS-1$

-		case TokenNameLEFT_SHIFT :

-			return "<<"; //$NON-NLS-1$

-		case TokenNameRIGHT_SHIFT :

-			return ">>"; //$NON-NLS-1$

-		case TokenNameUNSIGNED_RIGHT_SHIFT :

-			return ">>>"; //$NON-NLS-1$

-		case TokenNamePLUS_EQUAL :

-			return "+="; //$NON-NLS-1$

-		case TokenNameMINUS_EQUAL :

-			return "-="; //$NON-NLS-1$

-		case TokenNameMULTIPLY_EQUAL :

-			return "*="; //$NON-NLS-1$

-		case TokenNameDIVIDE_EQUAL :

-			return "/="; //$NON-NLS-1$

-		case TokenNameAND_EQUAL :

-			return "&="; //$NON-NLS-1$

-		case TokenNameOR_EQUAL :

-			return "|="; //$NON-NLS-1$

-		case TokenNameXOR_EQUAL :

-			return "^="; //$NON-NLS-1$

-		case TokenNameREMAINDER_EQUAL :

-			return "%="; //$NON-NLS-1$

-		case TokenNameLEFT_SHIFT_EQUAL :

-			return "<<="; //$NON-NLS-1$

-		case TokenNameRIGHT_SHIFT_EQUAL :

-			return ">>="; //$NON-NLS-1$

-		case TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL :

-			return ">>>="; //$NON-NLS-1$

-		case TokenNameOR_OR :

-			return "||"; //$NON-NLS-1$

-		case TokenNameAND_AND :

-			return "&&"; //$NON-NLS-1$

-		case TokenNamePLUS :

-			return "+"; //$NON-NLS-1$

-		case TokenNameMINUS :

-			return "-"; //$NON-NLS-1$

-		case TokenNameNOT :

-			return "!"; //$NON-NLS-1$

-		case TokenNameREMAINDER :

-			return "%"; //$NON-NLS-1$

-		case TokenNameXOR :

-			return "^"; //$NON-NLS-1$

-		case TokenNameAND :

-			return "&"; //$NON-NLS-1$

-		case TokenNameMULTIPLY :

-			return "*"; //$NON-NLS-1$

-		case TokenNameOR :

-			return "|"; //$NON-NLS-1$

-		case TokenNameTWIDDLE :

-			return "~"; //$NON-NLS-1$

-		case TokenNameDIVIDE :

-			return "/"; //$NON-NLS-1$

-		case TokenNameGREATER :

-			return ">"; //$NON-NLS-1$

-		case TokenNameLESS :

-			return "<"; //$NON-NLS-1$

-		case TokenNameLPAREN :

-			return "("; //$NON-NLS-1$

-		case TokenNameRPAREN :

-			return ")"; //$NON-NLS-1$

-		case TokenNameLBRACE :

-			return "{"; //$NON-NLS-1$

-		case TokenNameRBRACE :

-			return "}"; //$NON-NLS-1$

-		case TokenNameLBRACKET :

-			return "["; //$NON-NLS-1$

-		case TokenNameRBRACKET :

-			return "]"; //$NON-NLS-1$

-		case TokenNameSEMICOLON :

-			return ";"; //$NON-NLS-1$

-		case TokenNameQUESTION :

-			return "?"; //$NON-NLS-1$

-		case TokenNameCOLON :

-			return ":"; //$NON-NLS-1$

-		case TokenNameCOMMA :

-			return ","; //$NON-NLS-1$

-		case TokenNameDOT :

-			return "."; //$NON-NLS-1$

-		case TokenNameEQUAL :

-			return "="; //$NON-NLS-1$

-		case TokenNameEOF :

-			return "EOF"; //$NON-NLS-1$

-		default :

-			return "not-a-token"; //$NON-NLS-1$

-	}

-}

-public void unicodeInitializeBuffer(int length) {

-	this.withoutUnicodePtr = length;	

-    if (this.withoutUnicodeBuffer == null) this.withoutUnicodeBuffer = new char[length+(1+10)];

-    int bLength = this.withoutUnicodeBuffer.length;

-    if (1+length >= bLength) {

-        System.arraycopy(this.withoutUnicodeBuffer, 0, this.withoutUnicodeBuffer = new char[length + (1+10)], 0, bLength);

-    }

-	System.arraycopy(this.source, this.startPosition, this.withoutUnicodeBuffer, 1, length);    

-}

-public void unicodeStoreAt(int pos) {

-    if (this.withoutUnicodeBuffer == null) this.withoutUnicodeBuffer = new char[10];

-    int length = this.withoutUnicodeBuffer.length;

-    if (pos == length) {

-        System.arraycopy(this.withoutUnicodeBuffer, 0, this.withoutUnicodeBuffer = new char[length * 2], 0, length);

-    }

-	this.withoutUnicodeBuffer[pos] = this.currentCharacter;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/TerminalTokens.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/TerminalTokens.js
deleted file mode 100644
index c4e7682..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/TerminalTokens.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-/**

- * IMPORTANT NOTE: These constants are dedicated to the internal Scanner implementation. 

- * It is mirrored in org.eclipse.wst.jsdt.core.compiler public package where it is API. 

- * The mirror implementation is using the backward compatible ITerminalSymbols constant 

- * definitions (stable with 2.0), whereas the internal implementation uses TerminalTokens 

- * which constant values reflect the latest parser generation state.

- */

-/**

- * Maps each terminal symbol in the java-grammar into a unique integer. 

- * This integer is used to represent the terminal when computing a parsing action. 

- * 

- * Disclaimer : These constant values are generated automatically using a Java 

- * grammar, therefore their actual values are subject to change if new keywords 

- * were added to the language (for instance, 'assert' is a keyword in 1.4).

- */

-public interface TerminalTokens {

-

-	// special tokens not part of grammar - not autogenerated

-	int TokenNameWHITESPACE = 1000,

-		TokenNameCOMMENT_LINE = 1001,

-		TokenNameCOMMENT_BLOCK = 1002,

-		TokenNameCOMMENT_JAVADOC = 1003;

-

-	int TokenNameIdentifier = 27,

-		TokenNameabstract = 56,

-		TokenNameassert = 75,

-		TokenNameboolean = 32,

-		TokenNamebreak = 76,

-		TokenNamebyte = 33,

-		TokenNamecase = 100,

-		TokenNamecatch = 101,

-		TokenNamechar = 34,

-		TokenNameclass = 71,

-		TokenNamecontinue = 77,

-		TokenNamedefault = 98,

-		TokenNamedo = 78,

-		TokenNamedouble = 35,

-		TokenNameelse = 102,

-		TokenNameenum = 103,

-		TokenNameextends = 86,

-		TokenNamefalse = 44,

-		TokenNamefinal = 57,

-		TokenNamefinally = 104,

-		TokenNamefloat = 36,

-		TokenNamefor = 79,

-		TokenNameif = 80,

-		TokenNameimplements = 105,

-		TokenNameimport = 99,

-		TokenNameinstanceof = 12,

-		TokenNameint = 37,

-		TokenNameinterface = 72,

-		TokenNamelong = 38,

-		TokenNamenative = 58,

-		TokenNamenew = 43,

-		TokenNamenull = 45,

-		TokenNamepackage = 85,

-		TokenNameprivate = 59,

-		TokenNameprotected = 60,

-		TokenNamepublic = 61,

-		TokenNamereturn = 81,

-		TokenNameshort = 39,

-		TokenNamestatic = 54,

-		TokenNamestrictfp = 62,

-		TokenNamesuper = 41,

-		TokenNameswitch = 82,

-		TokenNamesynchronized = 55,

-		TokenNamethis = 42,

-		TokenNamethrow = 83,

-		TokenNamethrows = 106,

-		TokenNametransient = 63,

-		TokenNametrue = 46,

-		TokenNametry = 84,

-		TokenNamevoid = 40,

-		TokenNamevolatile = 64,

-		TokenNamewhile = 73,

-		TokenNameIntegerLiteral = 47,

-		TokenNameLongLiteral = 48,

-		TokenNameFloatingPointLiteral = 49,

-		TokenNameDoubleLiteral = 50,

-		TokenNameCharacterLiteral = 51,

-		TokenNameStringLiteral = 52,

-		TokenNamePLUS_PLUS = 8,

-		TokenNameMINUS_MINUS = 9,

-		TokenNameEQUAL_EQUAL = 18,

-		TokenNameLESS_EQUAL = 14,

-		TokenNameGREATER_EQUAL = 15,

-		TokenNameNOT_EQUAL = 19,

-		TokenNameLEFT_SHIFT = 17,

-		TokenNameRIGHT_SHIFT = 10,

-		TokenNameUNSIGNED_RIGHT_SHIFT = 11,

-		TokenNamePLUS_EQUAL = 87,

-		TokenNameMINUS_EQUAL = 88,

-		TokenNameMULTIPLY_EQUAL = 89,

-		TokenNameDIVIDE_EQUAL = 90,

-		TokenNameAND_EQUAL = 91,

-		TokenNameOR_EQUAL = 92,

-		TokenNameXOR_EQUAL = 93,

-		TokenNameREMAINDER_EQUAL = 94,

-		TokenNameLEFT_SHIFT_EQUAL = 95,

-		TokenNameRIGHT_SHIFT_EQUAL = 96,

-		TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL = 97,

-		TokenNameOR_OR = 26,

-		TokenNameAND_AND = 25,

-		TokenNamePLUS = 1,

-		TokenNameMINUS = 2,

-		TokenNameNOT = 69,

-		TokenNameREMAINDER = 5,

-		TokenNameXOR = 21,

-		TokenNameAND = 20,

-		TokenNameMULTIPLY = 4,

-		TokenNameOR = 22,

-		TokenNameTWIDDLE = 67,

-		TokenNameDIVIDE = 6,

-		TokenNameGREATER = 16,

-		TokenNameLESS = 7,

-		TokenNameLPAREN = 29,

-		TokenNameRPAREN = 28,

-		TokenNameLBRACE = 66,

-		TokenNameRBRACE = 31,

-		TokenNameLBRACKET = 13,

-		TokenNameRBRACKET = 70,

-		TokenNameSEMICOLON = 23,

-		TokenNameQUESTION = 24,

-		TokenNameCOLON = 65,

-		TokenNameCOMMA = 30,

-		TokenNameDOT = 3,

-		TokenNameEQUAL = 74,

-		TokenNameAT = 53,

-		TokenNameELLIPSIS = 107,

-		TokenNameEOF = 68,

-		TokenNameERROR = 108;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/DiagnoseParser.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/DiagnoseParser.js
deleted file mode 100644
index abf84fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/DiagnoseParser.js
+++ /dev/null
@@ -1,2295 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser.diagnose;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.parser.Parser;

-import org.eclipse.wst.jsdt.internal.compiler.parser.ParserBasicInformation;

-import org.eclipse.wst.jsdt.internal.compiler.parser.TerminalTokens;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-

-public class DiagnoseParser implements ParserBasicInformation, TerminalTokens {

-	private static final boolean DEBUG = false;

-	private boolean DEBUG_PARSECHECK = false;

-	

-	private static final String EMPTY_STRING = ""; //$NON-NLS-1$

-	private static final int STACK_INCREMENT = 256;

-	

-//	private static final int ERROR_CODE = 1;

-	private static final int BEFORE_CODE = 2;

-	private static final int INSERTION_CODE = 3;

-	private static final int INVALID_CODE = 4;

-	private static final int SUBSTITUTION_CODE = 5;

-	private static final int DELETION_CODE = 6;

-	private static final int MERGE_CODE = 7;

-	private static final int MISPLACED_CODE = 8;

-	private static final int SCOPE_CODE = 9;

-	private static final int SECONDARY_CODE = 10;

-	private static final int EOF_CODE = 11;

-

-	private static final int BUFF_UBOUND  = 31;

-	private static final int BUFF_SIZE    = 32;

-	private static final int MAX_DISTANCE = 30;

-	private static final int MIN_DISTANCE = 3;

-	

-	private CompilerOptions options;

-	

-	private LexStream lexStream;

-	private int errorToken;

-	private int errorTokenStart;

-	

-	private int currentToken = 0;

-	

-	private int stackLength;

-	private int stateStackTop;

-	private int[] stack;

-	

-	private int[] locationStack;

-	private int[] locationStartStack;

-	

-	private int tempStackTop;

-	private int[] tempStack;

-	

-	private int prevStackTop;

-	private int[] prevStack;

-	private int nextStackTop;

-	private int[] nextStack;

-	

-	private int scopeStackTop;

-    private int[] scopeIndex;

-    private int[] scopePosition;

-	

-	int[] list = new int[NUM_SYMBOLS + 1];

-	int[] buffer = new int[BUFF_SIZE];

-	

-	private static final int NIL = -1;

-	int[] stateSeen;

-	

-	int statePoolTop;

-	StateInfo[] statePool;

-	

-	private Parser parser;

-	

-	private class RepairCandidate {

-		public int symbol;

-		public int location;

-		

-		public RepairCandidate(){

-			this.symbol = 0;

-			this.location = 0;

-		}

-	}

-	

-	private class PrimaryRepairInfo {

-		public int distance;

-		public int misspellIndex;

-		public int code;

-		public int bufferPosition;

-		public int symbol;

-		

-		public PrimaryRepairInfo(){

-			this.distance = 0;

-			this.misspellIndex = 0;

-			this.code = 0;

-			this.bufferPosition = 0;

-			this.symbol = 0;

-		}

-		

-		public PrimaryRepairInfo copy(){

-			PrimaryRepairInfo c = new PrimaryRepairInfo();

-			c.distance = this.distance;

-			c.misspellIndex = this.misspellIndex;

-			c.code = this.code;

-			c.bufferPosition = this .bufferPosition;

-			c.symbol = this.symbol;

-			return c;

-			

-		}

-	}

-	

-	private class SecondaryRepairInfo {

-		public int code;

-		public int distance;

-		public int bufferPosition;

-		public int stackPosition;

-		public int numDeletions;

-		public int symbol;

-

-		boolean recoveryOnNextStack;

-	} 

-	

-	private class StateInfo {

-	    int state;

-	    int next;

-	    

-	    public StateInfo(int state, int next){

-	    	this.state = state;

-	    	this.next = next;

-	    }

-	}

-

-	public DiagnoseParser(Parser parser, int firstToken, int start, int end, CompilerOptions options) {

-		this(parser, firstToken, start, end, new int[0], new int[0], new int[0], options);

-	}

-

-	public DiagnoseParser(Parser parser, int firstToken, int start, int end, int[] intervalStartToSkip, int[] intervalEndToSkip, int[] intervalFlagsToSkip, CompilerOptions options) {

-		this.parser = parser;

-		this.options = options;

-		this.lexStream = new LexStream(BUFF_SIZE, parser.scanner, intervalStartToSkip, intervalEndToSkip, intervalFlagsToSkip, firstToken, start, end);

-	}

-	

-	private ProblemReporter problemReporter(){

-		return parser.problemReporter();

-	}

-

-	private void reallocateStacks()	{

-		int old_stack_length = stackLength;

-

-		stackLength += STACK_INCREMENT;

-

-		if(old_stack_length == 0){

-			stack = new int[stackLength];

-			locationStack = new int[stackLength];

-			locationStartStack = new int[stackLength];

-			tempStack = new int[stackLength];

-			prevStack = new int[stackLength];

-			nextStack = new int[stackLength];

-			scopeIndex = new int[stackLength];

-			scopePosition = new int[stackLength];

-		} else {

-			System.arraycopy(stack, 0, stack = new int[stackLength], 0, old_stack_length);

-			System.arraycopy(locationStack, 0, locationStack = new int[stackLength], 0, old_stack_length);

-			System.arraycopy(locationStartStack, 0, locationStartStack = new int[stackLength], 0, old_stack_length);

-			System.arraycopy(tempStack, 0, tempStack = new int[stackLength], 0, old_stack_length);

-			System.arraycopy(prevStack, 0, prevStack = new int[stackLength], 0, old_stack_length);

-			System.arraycopy(nextStack, 0, nextStack = new int[stackLength], 0, old_stack_length);

-			System.arraycopy(scopeIndex, 0, scopeIndex = new int[stackLength], 0, old_stack_length);

-			System.arraycopy(scopePosition, 0, scopePosition = new int[stackLength], 0, old_stack_length);

-		}

-		return;

-	}

-

-

-	public void diagnoseParse() {

-		lexStream.reset();

-

-		currentToken = lexStream.getToken();

-

-		int prev_pos;

-		int pos;

-		int next_pos;

-		int act = START_STATE;

-

-		reallocateStacks();

-

-		//

-		// Start parsing

-		//

-		stateStackTop = 0;

-		stack[stateStackTop] = act;

-

-		int tok = lexStream.kind(currentToken);

-		locationStack[stateStackTop] = currentToken;

-		locationStartStack[stateStackTop] = lexStream.start(currentToken);

-		

-		boolean forceRecoveryAfterLBracketMissing = false;

-//		int forceRecoveryToken = -1;

-

-		//

-		// Process a terminal

-		//

-		do {

-			//

-			// Synchronize state stacks and update the location stack

-			//

-			prev_pos = -1;

-			prevStackTop = -1;

-

-			next_pos = -1;

-			nextStackTop = -1;

-

-			pos = stateStackTop;

-			tempStackTop = stateStackTop - 1;

-			for (int i = 0; i <= stateStackTop; i++)

-				tempStack[i] = stack[i];

-

-			act = Parser.tAction(act, tok);

-			//

-			// When a reduce action is encountered, we compute all REDUCE

-			// and associated goto actions induced by the current token.

-			// Eventually, a SHIFT, SHIFT-REDUCE, ACCEPT or ERROR action is

-			// computed...

-			//

-			while (act <= NUM_RULES) {

-				do {

-					tempStackTop -= (Parser.rhs[act]-1);

-					act = Parser.ntAction(tempStack[tempStackTop], Parser.lhs[act]);

-				} while(act <= NUM_RULES);

-				//

-				// ... Update the maximum useful position of the

-				// (STATE_)STACK, push goto state into stack, and

-				// compute next action on current symbol ...

-				//

-				if (tempStackTop + 1 >= stackLength)

-					reallocateStacks();

-				pos = pos < tempStackTop ? pos : tempStackTop;

-				tempStack[tempStackTop + 1] = act;

-				act = Parser.tAction(act, tok);

-			}

-

-			//

-			// At this point, we have a shift, shift-reduce, accept or error

-			// action.  STACK contains the configuration of the state stack

-			// prior to executing any action on curtok. next_stack contains

-			// the configuration of the state stack after executing all

-			// reduce actions induced by curtok.  The variable pos indicates

-			// the highest position in STACK that is still useful after the

-			// reductions are executed.

-			//

-			while(act > ERROR_ACTION || act < ACCEPT_ACTION) { // SHIFT-REDUCE action or SHIFT action ?

-				nextStackTop = tempStackTop + 1;

-				for (int i = next_pos + 1; i <= nextStackTop; i++)

-					nextStack[i] = tempStack[i];

-

-				for (int i = pos + 1; i <= nextStackTop; i++) {

-					locationStack[i] = locationStack[stateStackTop];

-					locationStartStack[i] = locationStartStack[stateStackTop];

-				}

-

-				//

-				// If we have a shift-reduce, process it as well as

-				// the goto-reduce actions that follow it.

-				//

-				if (act > ERROR_ACTION) {

-					act -= ERROR_ACTION;

-					do {

-						nextStackTop -= (Parser.rhs[act]-1);

-						act = Parser.ntAction(nextStack[nextStackTop], Parser.lhs[act]);

-					} while(act <= NUM_RULES);

-					pos = pos < nextStackTop ? pos : nextStackTop;

-				}

-

-				if (nextStackTop + 1 >= stackLength)

-					reallocateStacks();

-

-				tempStackTop = nextStackTop;

-				nextStack[++nextStackTop] = act;

-				next_pos = nextStackTop;

-

-				//

-				// Simulate the parser through the next token without

-				// destroying STACK or next_stack.

-				//

-				currentToken = lexStream.getToken();

-				tok = lexStream.kind(currentToken);

-				act = Parser.tAction(act, tok);

-				while(act <= NUM_RULES) {

-					//

-					// ... Process all goto-reduce actions following

-					// reduction, until a goto action is computed ...

-					//

-					do {

-						int lhs_symbol = Parser.lhs[act];

-						if(DEBUG) {

-							System.out.println(Parser.name[Parser.non_terminal_index[lhs_symbol]]);

-						}

-						tempStackTop -= (Parser.rhs[act]-1);

-						act = (tempStackTop > next_pos

-								   ? tempStack[tempStackTop]

-								   : nextStack[tempStackTop]);

-						act = Parser.ntAction(act, lhs_symbol);

-					}   while(act <= NUM_RULES);

-

-					//

-					// ... Update the maximum useful position of the

-					// (STATE_)STACK, push GOTO state into stack, and

-					// compute next action on current symbol ...

-					//

-					if (tempStackTop + 1 >= stackLength)

-						reallocateStacks();

-

-					next_pos = next_pos < tempStackTop ? next_pos : tempStackTop;

-					tempStack[tempStackTop + 1] = act;

-					act = Parser.tAction(act, tok);

-				}

-

-//				if((tok != TokenNameRBRACE || (forceRecoveryToken != currentToken && (lexStream.flags(currentToken) & LexStream.LBRACE_MISSING) != 0))

-//					&& (lexStream.flags(currentToken) & LexStream.IS_AFTER_JUMP) !=0) {

-//					act = ERROR_ACTION;

-//					if(forceRecoveryToken != currentToken

-//						&& (lexStream.flags(currentToken) & LexStream.LBRACE_MISSING) != 0) {

-//						forceRecoveryAfterLBracketMissing = true;

-//						forceRecoveryToken = currentToken;

-//					}

-//				}

-				

-				//

-				// No error was detected, Read next token into

-				// PREVTOK element, advance CURTOK pointer and

-				// update stacks.

-				//

-				if (act != ERROR_ACTION) {

-					prevStackTop = stateStackTop;

-					for (int i = prev_pos + 1; i <= prevStackTop; i++)

-						prevStack[i] = stack[i];

-					prev_pos = pos;

-

-					stateStackTop = nextStackTop;

-					for (int i = pos + 1; i <= stateStackTop; i++)

-						stack[i] = nextStack[i];

-					locationStack[stateStackTop] = currentToken;

-					locationStartStack[stateStackTop] = lexStream.start(currentToken);

-					pos = next_pos;

-				}

-			}

-

-			//

-			// At this stage, either we have an ACCEPT or an ERROR

-			// action.

-			//

-			if (act == ERROR_ACTION) {

-				//

-				// An error was detected.

-				//

-				RepairCandidate candidate = errorRecovery(currentToken, forceRecoveryAfterLBracketMissing);

-				

-				forceRecoveryAfterLBracketMissing = false;

-				

-				if(parser.reportOnlyOneSyntaxError) {

-					return;

-				}

-				

-				if(this.parser.problemReporter().options.maxProblemsPerUnit < this.parser.compilationUnit.compilationResult.problemCount) {

-					return;

-				}

-

-				act = stack[stateStackTop];

-

-				//

-				// If the recovery was successful on a nonterminal candidate,

-				// parse through that candidate and "read" the next token.

-				//

-				if (candidate.symbol == 0) {

-					break;

-				} else if (candidate.symbol > NT_OFFSET) {

-					int lhs_symbol = candidate.symbol - NT_OFFSET;

-					if(DEBUG) {

-						System.out.println(Parser.name[Parser.non_terminal_index[lhs_symbol]]);

-					}

-					act = Parser.ntAction(act, lhs_symbol);

-					while(act <= NUM_RULES) {

-						stateStackTop -= (Parser.rhs[act]-1);

-						act = Parser.ntAction(stack[stateStackTop], Parser.lhs[act]);

-					}

-					stack[++stateStackTop] = act;

-					currentToken = lexStream.getToken();

-					tok = lexStream.kind(currentToken);

-					locationStack[stateStackTop] = currentToken;

-					locationStartStack[stateStackTop] = lexStream.start(currentToken);

-				} else {

-					tok = candidate.symbol;

-					locationStack[stateStackTop] = candidate.location;

-					locationStartStack[stateStackTop] = lexStream.start(candidate.location);

-				}

-			}

-		} while (act != ACCEPT_ACTION);

-

-		return;

-	}

-

-	//

-//		This routine is invoked when an error is encountered.  It

-//	   tries to diagnose the error and recover from it.  If it is

-//	   successful, the state stack, the current token and the buffer

-//	   are readjusted; i.e., after a successful recovery,

-//	   state_stack_top points to the location in the state stack

-//	   that contains the state on which to recover; curtok

-//	   identifies the symbol on which to recover.

-//

-//	   Up to three configurations may be available when this routine

-//	   is invoked. PREV_STACK may contain the sequence of states

-//	   preceding any action on prevtok, STACK always contains the

-//	   sequence of states preceding any action on curtok, and

-//	   NEXT_STACK may contain the sequence of states preceding any

-//	   action on the successor of curtok.

-//

-	private RepairCandidate errorRecovery(int error_token, boolean forcedError) {

-		this.errorToken = error_token;

-		this.errorTokenStart = lexStream.start(error_token);

-		

-		int prevtok = lexStream.previous(error_token);

-		int prevtokKind = lexStream.kind(prevtok);

-		

-		if(forcedError) {

-			int name_index = Parser.terminal_index[TokenNameLBRACE];

-

-			reportError(INSERTION_CODE, name_index, prevtok, prevtok);

-			

-			RepairCandidate candidate = new RepairCandidate();

-			candidate.symbol = TokenNameLBRACE;

-			candidate.location = error_token;

-			lexStream.reset(error_token);

-			

-			stateStackTop = nextStackTop;

-			for (int j = 0; j <= stateStackTop; j++) {

-				stack[j] = nextStack[j];

-			}

-			locationStack[stateStackTop] = error_token;

-			locationStartStack[stateStackTop] = lexStream.start(error_token);

-			

-			return candidate;

-		}

-

-		//

-		// Try primary phase recoveries. If not successful, try secondary

-		// phase recoveries.  If not successful and we are at end of the

-		// file, we issue the end-of-file error and quit. Otherwise, ...

-		//

-		RepairCandidate candidate = primaryPhase(error_token);

-		if (candidate.symbol != 0) {

-			return candidate;

-		}

-

-		candidate = secondaryPhase(error_token);

-		if (candidate.symbol != 0) {

-			return candidate;

-		}

-

-		if (lexStream.kind(error_token) == EOFT_SYMBOL) {

-			reportError(EOF_CODE,

-						Parser.terminal_index[EOFT_SYMBOL],

-						prevtok,

-						prevtok);

-			candidate.symbol = 0;

-			candidate.location = error_token;

-			return candidate;

-		}

-

-		//

-		// At this point, primary and (initial attempt at) secondary

-		// recovery did not work.  We will now get into "panic mode" and

-		// keep trying secondary phase recoveries until we either find

-		// a successful recovery or have consumed the remaining input

-		// tokens.

-		//

-		while(lexStream.kind(buffer[BUFF_UBOUND]) != EOFT_SYMBOL) {

-			candidate = secondaryPhase(buffer[MAX_DISTANCE - MIN_DISTANCE + 2]);

-			if (candidate.symbol != 0) {

-				return candidate;

-			}

-		}

-

-		//

-		// We reached the end of the file while panicking. Delete all

-		// remaining tokens in the input.

-		//

-		int i;

-		for (i = BUFF_UBOUND; lexStream.kind(buffer[i]) == EOFT_SYMBOL; i--){/*empty*/}

-

-		reportError(DELETION_CODE,

-					Parser.terminal_index[prevtokKind],//Parser.terminal_index[lexStream.kind(prevtok)],

-					error_token,

-					buffer[i]);

-

-		candidate.symbol = 0;

-		candidate.location = buffer[i];

-

-		return candidate;

-	}

-

-//

-//	   This function tries primary and scope recovery on each

-//	   available configuration.  If a successful recovery is found

-//	   and no secondary phase recovery can do better, a diagnosis is

-//	   issued, the configuration is updated and the function returns

-//	   "true".  Otherwise, it returns "false".

-//

-	private RepairCandidate primaryPhase(int error_token) {

-		PrimaryRepairInfo repair = new PrimaryRepairInfo();

-		RepairCandidate candidate = new RepairCandidate();

-

-		//

-		// Initialize the buffer.

-		//

-		int i = (nextStackTop >= 0 ? 3 : 2);

-		buffer[i] = error_token;

-

-		for (int j = i; j > 0; j--)

-			buffer[j - 1] = lexStream.previous(buffer[j]);

-

-		for (int k = i + 1; k < BUFF_SIZE; k++)

-			buffer[k] = lexStream.next(buffer[k - 1]);

-

-		//

-		// If NEXT_STACK_TOP > 0 then the parse was successful on CURTOK

-		// and the error was detected on the successor of CURTOK. In

-		// that case, first check whether or not primary recovery is

-		// possible on next_stack ...

-		//

-		if (nextStackTop >= 0) {

-			repair.bufferPosition = 3;

-			repair = checkPrimaryDistance(nextStack, nextStackTop, repair);

-		}

-

-		//

-		// ... Next, try primary recovery on the current token...

-		//

-		PrimaryRepairInfo new_repair = repair.copy();

-

-		new_repair.bufferPosition = 2;

-		new_repair = checkPrimaryDistance(stack, stateStackTop, new_repair);

-		if (new_repair.distance > repair.distance || new_repair.misspellIndex > repair.misspellIndex) {

-			repair = new_repair;

-		}

-

-		//

-		// Finally, if prev_stack_top >= 0 then try primary recovery on

-		// the prev_stack configuration.

-		//

-		

-		if (prevStackTop >= 0) {

-			new_repair = repair.copy();

-			new_repair.bufferPosition = 1;

-			new_repair = checkPrimaryDistance(prevStack,prevStackTop, new_repair);

-			if (new_repair.distance > repair.distance || new_repair.misspellIndex > repair.misspellIndex) {

-				repair = new_repair;

-			}

-		}

-

-		//

-		// Before accepting the best primary phase recovery obtained,

-		// ensure that we cannot do better with a similar secondary

-		// phase recovery.

-		//

-		if (nextStackTop >= 0) {// next_stack available

-			if (secondaryCheck(nextStack,nextStackTop,3,repair.distance)) {

-				return candidate;

-			}

-		}

-		else if (secondaryCheck(stack, stateStackTop, 2, repair.distance)) {

-			return candidate;

-		}

-

-		//

-		// First, adjust distance if the recovery is on the error token;

-		// it is important that the adjustment be made here and not at

-		// each primary trial to prevent the distance tests from being

-		// biased in favor of deferred recoveries which have access to

-		// more input tokens...

-		//

-		repair.distance = repair.distance - repair.bufferPosition + 1;

-

-		//

-		// ...Next, adjust the distance if the recovery is a deletion or

-		// (some form of) substitution...

-		//

-		if (repair.code == INVALID_CODE      ||

-			repair.code == DELETION_CODE     ||

-			repair.code == SUBSTITUTION_CODE ||

-			repair.code == MERGE_CODE) {

-			 repair.distance--;

-		}

-

-		//

-		// ... After adjustment, check if the most successful primary

-		// recovery can be applied.  If not, continue with more radical

-		// recoveries...

-		//

-		if (repair.distance < MIN_DISTANCE) {

-			return candidate;

-		}

-

-		//

-		// When processing an insertion error, if the token preceeding

-		// the error token is not available, we change the repair code

-		// into a BEFORE_CODE to instruct the reporting routine that it

-		// indicates that the repair symbol should be inserted before

-		// the error token.

-		//

-		if (repair.code == INSERTION_CODE) {

-			if (buffer[repair.bufferPosition - 1] == 0) {

-				repair.code = BEFORE_CODE;

-			}

-		}

-

-		//

-		// Select the proper sequence of states on which to recover,

-		// update stack accordingly and call diagnostic routine.

-		//

-		if (repair.bufferPosition == 1) {

-			stateStackTop = prevStackTop;

-			for (int j = 0; j <= stateStackTop; j++) {

-				stack[j] = prevStack[j];

-			}

-		} else if (nextStackTop >= 0 && repair.bufferPosition >= 3) {

-			stateStackTop = nextStackTop;

-			for (int j = 0; j <= stateStackTop; j++) {

-				stack[j] = nextStack[j];

-			}

-			locationStack[stateStackTop] = buffer[3];

-			locationStartStack[stateStackTop] = lexStream.start(buffer[3]);

-		}

-

-		return primaryDiagnosis(repair);

-	}

-

-

-//

-//		   This function checks whether or not a given state has a

-//	   candidate, whose string representaion is a merging of the two

-//	   tokens at positions buffer_position and buffer_position+1 in

-//	   the buffer.  If so, it returns the candidate in question;

-//	   otherwise it returns 0.

-//

-	private int mergeCandidate(int state, int buffer_position) {

-		char[] name1 = lexStream.name(buffer[buffer_position]);

-		char[] name2 = lexStream.name(buffer[buffer_position + 1]);

-		

-		int len  = name1.length + name2.length;

-

-		char[] str = CharOperation.concat(name1, name2);

-

-		for (int k = Parser.asi(state); Parser.asr[k] != 0; k++) {

-			int l = Parser.terminal_index[Parser.asr[k]];

-

-			if (len == Parser.name[l].length()) {

-				char[] name = Parser.name[l].toCharArray();

-

-				if (CharOperation.equals(str, name, false)) {

-					return Parser.asr[k];

-				}

-			}

-		}

-

-		return 0;

-	}

-

-

-//

-//	   This procedure takes as arguments a parsing configuration

-//	   consisting of a state stack (stack and stack_top) and a fixed

-//	   number of input tokens (starting at buffer_position) in the

-//	   input BUFFER; and some reference arguments: repair_code,

-//	   distance, misspell_index, candidate, and stack_position

-//	   which it sets based on the best possible recovery that it

-//	   finds in the given configuration.  The effectiveness of a

-//	   a repair is judged based on two criteria:

-//

-//		 1) the number of tokens that can be parsed after the repair

-//			is applied: distance.

-//		 2) how close to perfection is the candidate that is chosen:

-//			misspell_index.

-//	   When this procedure is entered, distance, misspell_index and

-//	   repair_code are assumed to be initialized.

-//

-	private PrimaryRepairInfo checkPrimaryDistance(int stck[], int stack_top, PrimaryRepairInfo repair) {

-		int i, j, k, next_state, max_pos, act, root, symbol, tok;

-

-		//

-	    //  First, try scope and manual recovery.

-	    //

-	    PrimaryRepairInfo scope_repair = scopeTrial(stck, stack_top, repair.copy());

-	    if (scope_repair.distance > repair.distance)

-	        repair = scope_repair;

-	        

-		//

-		//  Next, try merging the error token with its successor.

-		//

-	    if(buffer[repair.bufferPosition] != 0 && buffer[repair.bufferPosition + 1] != 0) {// do not merge the first token

-			symbol = mergeCandidate(stck[stack_top], repair.bufferPosition);

-			if (symbol != 0) {

-				j = parseCheck(stck, stack_top, symbol, repair.bufferPosition+2);

-				if ((j > repair.distance) || (j == repair.distance && repair.misspellIndex < 10)) {

-					repair.misspellIndex = 10;

-					repair.symbol = symbol;

-					repair.distance = j;

-					repair.code = MERGE_CODE;

-				}

-			}

-	    }

-

-		//

-		// Next, try deletion of the error token.

-		//

-		j = parseCheck(

-				stck,

-				stack_top,

-				lexStream.kind(buffer[repair.bufferPosition + 1]),

-				repair.bufferPosition + 2);

-		if (lexStream.kind(buffer[repair.bufferPosition]) == EOLT_SYMBOL &&

-			lexStream.afterEol(buffer[repair.bufferPosition+1])) {

-			 k = 10;

-		} else {

-			k = 0;

-		}

-		if (j > repair.distance || (j == repair.distance && k > repair.misspellIndex)) {

-			repair.misspellIndex = k;

-			repair.code = DELETION_CODE;

-			repair.distance = j;

-		}

-

-		//

-		// Update the error configuration by simulating all reduce and

-		// goto actions induced by the error token. Then assign the top

-		// most state of the new configuration to next_state.

-		//

-		next_state = stck[stack_top];

-		max_pos = stack_top;

-		tempStackTop = stack_top - 1;

-

-		tok = lexStream.kind(buffer[repair.bufferPosition]);

-		lexStream.reset(buffer[repair.bufferPosition + 1]);

-		act = Parser.tAction(next_state, tok);

-		while(act <= NUM_RULES) {

-			do {

-				tempStackTop -= (Parser.rhs[act]-1);

-				symbol = Parser.lhs[act];

-				act = (tempStackTop > max_pos

-									  ? tempStack[tempStackTop]

-									  : stck[tempStackTop]);

-				act = Parser.ntAction(act, symbol);

-			} while(act <= NUM_RULES);

-			max_pos = max_pos < tempStackTop ? max_pos : tempStackTop;

-			tempStack[tempStackTop + 1] = act;

-			next_state = act;

-			act = Parser.tAction(next_state, tok);

-		}

-

-		//

-		//  Next, place the list of candidates in proper order.

-		//

-		root = 0;

-		for (i = Parser.asi(next_state); Parser.asr[i] != 0; i++) {

-			symbol = Parser.asr[i];

-			if (symbol != EOFT_SYMBOL && symbol != ERROR_SYMBOL) {

-				if (root == 0) {

-					list[symbol] = symbol;

-				} else {

-					list[symbol] = list[root];

-					list[root] = symbol;

-				}

-				root = symbol;

-			}

-		}

-

-		if (stck[stack_top] != next_state) {

-			for (i = Parser.asi(stck[stack_top]); Parser.asr[i] != 0; i++) {

-				symbol = Parser.asr[i];

-				if (symbol != EOFT_SYMBOL && symbol != ERROR_SYMBOL && list[symbol] == 0) {

-					if (root == 0) {

-						list[symbol] = symbol;

-					} else {

-						list[symbol] = list[root];

-						list[root] = symbol;

-					}

-					root = symbol;

-				}

-			}

-		}

-

-		i = list[root];

-		list[root] = 0;

-		root = i;

-

-		//

-		//  Next, try insertion for each possible candidate available in

-		// the current state, except EOFT and ERROR_SYMBOL.

-		//

-		symbol = root;

-		while(symbol != 0) {

-			if (symbol == EOLT_SYMBOL && lexStream.afterEol(buffer[repair.bufferPosition])) {

-				k = 10;

-			} else {

-				k = 0;

-			}

-			j = parseCheck(stck, stack_top, symbol, repair.bufferPosition);

-			if (j > repair.distance) {

-				repair.misspellIndex = k;

-				repair.distance = j;

-				repair.symbol = symbol;

-				repair.code = INSERTION_CODE;

-			} else if (j == repair.distance && k > repair.misspellIndex) {

-				repair.misspellIndex = k;

-				repair.distance = j;

-				repair.symbol = symbol;

-				repair.code = INSERTION_CODE;

-			} else if (j == repair.distance && k == repair.misspellIndex && isBetterSymbol(symbol, repair.symbol)) {

-				repair.misspellIndex = k;

-				repair.distance = j;

-				repair.symbol = symbol;

-				repair.code = INSERTION_CODE;

-			}

-

-			symbol = list[symbol];

-		}

-

-		//

-		//  Next, Try substitution for each possible candidate available

-		// in the current state, except EOFT and ERROR_SYMBOL.

-		//

-		symbol = root;

-		

-		if(buffer[repair.bufferPosition] != 0) {// do not replace the first token

-			while(symbol != 0) {

-				if (symbol == EOLT_SYMBOL && lexStream.afterEol(buffer[repair.bufferPosition+1])) {

-					k = 10;

-				} else {

-					k = misspell(symbol, buffer[repair.bufferPosition]);

-				}

-				j = parseCheck(stck, stack_top, symbol, repair.bufferPosition+1);

-				if (j > repair.distance) {

-					repair.misspellIndex = k;

-					repair.distance = j;

-					repair.symbol = symbol;

-					repair.code = SUBSTITUTION_CODE;

-				} else if (j == repair.distance && k > repair.misspellIndex) {

-					repair.misspellIndex = k;

-					repair.symbol = symbol;

-					repair.code = SUBSTITUTION_CODE;

-				} else if (j == repair.distance && k > repair.misspellIndex && isBetterSymbol(symbol, repair.symbol)) {

-					repair.misspellIndex = k;

-					repair.symbol = symbol;

-					repair.code = SUBSTITUTION_CODE;

-				}

-				i = symbol;

-				symbol = list[symbol];

-				list[i] = 0;                             // reset element

-			}

-		}

-

-

-		//

-		// Next, we try to insert a nonterminal candidate in front of the

-		// error token, or substituting a nonterminal candidate for the

-		// error token. Precedence is given to insertion.

-		//

-		 for (i = Parser.nasi(stck[stack_top]); Parser.nasr[i] != 0; i++) {

-			 symbol = Parser.nasr[i] + NT_OFFSET;

-			 j = parseCheck(stck, stack_top, symbol, repair.bufferPosition+1);

-			 if (j > repair.distance) {

-				 repair.misspellIndex = 0;

-				 repair.distance = j;

-				 repair.symbol = symbol;

-				 repair.code = INVALID_CODE;

-			 }

-

-			 j = parseCheck(stck, stack_top, symbol, repair.bufferPosition);

-			 if ((j > repair.distance) || (j == repair.distance && repair.code == INVALID_CODE)) {

-				 repair.misspellIndex = 0;

-				 repair.distance = j;

-				 repair.symbol = symbol;

-				 repair.code = INSERTION_CODE;

-			 }

-		 }

-

-		return repair;

-	}

-

-

-//

-//	   This procedure is invoked to issue a diagnostic message and

-//	   adjust the input buffer.  The recovery in question is either

-//	   the insertion of one or more scopes, the merging of the error

-//	   token with its successor, the deletion of the error token,

-//	   the insertion of a single token in front of the error token

-//	   or the substitution of another token for the error token.

-//

-	private RepairCandidate primaryDiagnosis(PrimaryRepairInfo repair) {

-		int name_index;

-

-		//

-		//  Issue diagnostic.

-		//

-		int prevtok = buffer[repair.bufferPosition - 1];

-		int	curtok  = buffer[repair.bufferPosition];

-

-		switch(repair.code) {

-			case INSERTION_CODE:

-			case BEFORE_CODE: {

-				if (repair.symbol > NT_OFFSET)

-					 name_index = getNtermIndex(stack[stateStackTop],

-												repair.symbol,

-												repair.bufferPosition);

-				else name_index = getTermIndex(stack,

-											   stateStackTop,

-											   repair.symbol,

-											   repair.bufferPosition);

-

-				int t = (repair.code == INSERTION_CODE ? prevtok : curtok);

-				reportError(repair.code, name_index, t, t);

-				break;

-			}

-			case INVALID_CODE: {

-				name_index = getNtermIndex(stack[stateStackTop],

-										   repair.symbol,

-										   repair.bufferPosition + 1);

-				reportError(repair.code, name_index, curtok, curtok);

-				break;

-			}

-			case SUBSTITUTION_CODE: {

-				if (repair.misspellIndex >= 6)

-					name_index = Parser.terminal_index[repair.symbol];

-				else

-				{

-					name_index = getTermIndex(stack, stateStackTop,

-											  repair.symbol,

-											  repair.bufferPosition + 1);

-					if (name_index != Parser.terminal_index[repair.symbol])

-						repair.code = INVALID_CODE;

-				}

-				reportError(repair.code, name_index, curtok, curtok);

-				break;

-			}

-			case MERGE_CODE: {

-				reportError(repair.code,

-							 Parser.terminal_index[repair.symbol],

-							 curtok,

-							 lexStream.next(curtok));

-				break;

-			}

-			case SCOPE_CODE: {

-	            for (int i = 0; i < scopeStackTop; i++) {

-	                reportError(repair.code,

-	                            -scopeIndex[i],

-	                            locationStack[scopePosition[i]],

-	                            prevtok,

-	                            Parser.non_terminal_index[Parser.scope_lhs[scopeIndex[i]]]);

-	            }

-	

-	            repair.symbol = Parser.scope_lhs[scopeIndex[scopeStackTop]] + NT_OFFSET;

-	            stateStackTop = scopePosition[scopeStackTop];

-	            reportError(repair.code,

-	                        -scopeIndex[scopeStackTop],

-	                        locationStack[scopePosition[scopeStackTop]],

-	                        prevtok,

-	                        getNtermIndex(stack[stateStackTop],

-	                                      repair.symbol,

-	                                      repair.bufferPosition)

-	                       );

-	            break;

-	        }

-			default: {// deletion

-				reportError(repair.code, Parser.terminal_index[ERROR_SYMBOL], curtok, curtok);

-			}

-		}

-

-		//

-		//  Update buffer.

-		//

-		RepairCandidate candidate = new RepairCandidate();

-		switch (repair.code) {

-			case INSERTION_CODE:

-			case BEFORE_CODE:

-			case SCOPE_CODE: {

-				candidate.symbol = repair.symbol;

-				candidate.location = buffer[repair.bufferPosition];

-				lexStream.reset(buffer[repair.bufferPosition]);

-				break;

-			}

-			case INVALID_CODE:

-			case SUBSTITUTION_CODE: {

-				candidate.symbol = repair.symbol;

-				candidate.location = buffer[repair.bufferPosition];

-				lexStream.reset(buffer[repair.bufferPosition + 1]);

-				break;

-			}

-			case MERGE_CODE: {

-				candidate.symbol = repair.symbol;

-				candidate.location = buffer[repair.bufferPosition];

-				lexStream.reset(buffer[repair.bufferPosition + 2]);

-				break;

-			}

-			default: {// deletion

-				candidate.location = buffer[repair.bufferPosition + 1];

-				candidate.symbol =

-						  lexStream.kind(buffer[repair.bufferPosition + 1]);

-				lexStream.reset(buffer[repair.bufferPosition + 2]);

-				break;

-			}

-		}

-

-		return candidate;

-	}

-

-

-//

-//	   This function takes as parameter an integer STACK_TOP that

-//	   points to a STACK element containing the state on which a

-//	   primary recovery will be made; the terminal candidate on which

-//	   to recover; and an integer: buffer_position, which points to

-//	   the position of the next input token in the BUFFER.  The

-//	   parser is simulated until a shift (or shift-reduce) action

-//	   is computed on the candidate.  Then we proceed to compute the

-//	   the name index of the highest level nonterminal that can

-//	   directly or indirectly produce the candidate.

-//

-	private int getTermIndex(int stck[], int stack_top, int tok, int buffer_position) {

-		//

-		// Initialize stack index of temp_stack and initialize maximum

-		// position of state stack that is still useful.

-		//

-		int act = stck[stack_top],

-			max_pos = stack_top,

-			highest_symbol = tok;

-

-		tempStackTop = stack_top - 1;

-

-		//

-		// Compute all reduce and associated actions induced by the

-		// candidate until a SHIFT or SHIFT-REDUCE is computed. ERROR

-		// and ACCEPT actions cannot be computed on the candidate in

-		// this context, since we know that it is suitable for recovery.

-		//

-		lexStream.reset(buffer[buffer_position]);

-		act = Parser.tAction(act, tok);

-		while(act <= NUM_RULES) {

-			//

-			// Process all goto-reduce actions following reduction,

-			// until a goto action is computed ...

-			//

-			do {

-				tempStackTop -= (Parser.rhs[act]-1);

-				int lhs_symbol = Parser.lhs[act];

-				act = (tempStackTop > max_pos

-									  ? tempStack[tempStackTop]

-									  : stck[tempStackTop]);

-				act = Parser.ntAction(act, lhs_symbol);

-			} while(act <= NUM_RULES);

-

-			//

-			// Compute new maximum useful position of (STATE_)stack,

-			// push goto state into the stack, and compute next

-			// action on candidate ...

-			//

-			max_pos = max_pos < tempStackTop ? max_pos : tempStackTop;

-			tempStack[tempStackTop + 1] = act;

-			act = Parser.tAction(act, tok);

-		}

-

-		//

-		// At this stage, we have simulated all actions induced by the

-		// candidate and we are ready to shift or shift-reduce it. First,

-		// set tok and next_ptr appropriately and identify the candidate

-		// as the initial highest_symbol. If a shift action was computed

-		// on the candidate, update the stack and compute the next

-		// action. Next, simulate all actions possible on the next input

-		// token until we either have to shift it or are about to reduce

-		// below the initial starting point in the stack (indicated by

-		// max_pos as computed in the previous loop).  At that point,

-		// return the highest_symbol computed.

-		//

-		tempStackTop++; // adjust top of stack to reflect last goto

-						  // next move is shift or shift-reduce.

-		int threshold = tempStackTop;

-

-		tok = lexStream.kind(buffer[buffer_position]);

-		lexStream.reset(buffer[buffer_position + 1]);

-

-		if (act > ERROR_ACTION) {  // shift-reduce on candidate?

-			act -= ERROR_ACTION;

-		} else {

-			tempStack[tempStackTop + 1] = act;

-			act = Parser.tAction(act, tok);

-		}

-

-		while(act <= NUM_RULES) {

-			//

-			// Process all goto-reduce actions following reduction,

-			// until a goto action is computed ...

-			//

-			do {

-				tempStackTop -= (Parser.rhs[act]-1);

-

-				if (tempStackTop < threshold) {

-					return (highest_symbol > NT_OFFSET

-						 ? Parser.non_terminal_index[highest_symbol - NT_OFFSET]

-						 : Parser.terminal_index[highest_symbol]);

-				}

-

-				int lhs_symbol = Parser.lhs[act];

-				if (tempStackTop == threshold)

-					highest_symbol = lhs_symbol + NT_OFFSET;

-				act = (tempStackTop > max_pos

-									  ? tempStack[tempStackTop]

-									  : stck[tempStackTop]);

-				act = Parser.ntAction(act, lhs_symbol);

-			} while(act <= NUM_RULES);

-

-			tempStack[tempStackTop + 1] = act;

-			act = Parser.tAction(act, tok);

-		}

-

-		return (highest_symbol > NT_OFFSET

-							 ? Parser.non_terminal_index[highest_symbol - NT_OFFSET]

-							 : Parser.terminal_index[highest_symbol]);

-	}

-

-//

-//	   This function takes as parameter a starting state number:

-//	   start, a nonterminal symbol, A (candidate), and an integer,

-//	   buffer_position,  which points to the position of the next

-//	   input token in the BUFFER.

-//	   It returns the highest level non-terminal B such that

-//	   B =>*rm A.  I.e., there does not exists a nonterminal C such

-//	   that C =>+rm B. (Recall that for an LALR(k) grammar if

-//	   C =>+rm B, it cannot be the case that B =>+rm C)

-//

-	private int getNtermIndex(int start, int sym, int buffer_position) {

-		int highest_symbol = sym - NT_OFFSET,

-			tok = lexStream.kind(buffer[buffer_position]);

-		lexStream.reset(buffer[buffer_position + 1]);

-

-		//

-		// Initialize stack index of temp_stack and initialize maximum

-		// position of state stack that is still useful.

-		//

-		tempStackTop = 0;

-		tempStack[tempStackTop] = start;

-

-		int act = Parser.ntAction(start, highest_symbol);

-		if (act > NUM_RULES) { // goto action?

-			tempStack[tempStackTop + 1] = act;

-			act = Parser.tAction(act, tok);

-		}

-

-		while(act <= NUM_RULES) {

-			//

-			// Process all goto-reduce actions following reduction,

-			// until a goto action is computed ...

-			//

-			do {

-				tempStackTop -= (Parser.rhs[act]-1);

-				if (tempStackTop < 0)

-					return Parser.non_terminal_index[highest_symbol];

-				if (tempStackTop == 0)

-					highest_symbol = Parser.lhs[act];

-				act = Parser.ntAction(tempStack[tempStackTop], Parser.lhs[act]);

-			} while(act <= NUM_RULES);

-			tempStack[tempStackTop + 1] = act;

-			act = Parser.tAction(act, tok);

-		}

-

-		return Parser.non_terminal_index[highest_symbol];

-	}

-

-	private boolean isBetterSymbol(int symbol, int actualSymbol) {

-//		switch (actualSymbol) {

-//			case TokenNameinterface :

-//				if(symbol == TokenNameclass) {

-//					return true;

-//				}

-//				break;

-//		}

-		return false;

-	}

-

-//

-//		   Check whether or not there is a high probability that a

-//	   given string is a misspelling of another.

-//	   Certain singleton symbols (such as ":" and ";") are also

-//	   considered to be misspelling of each other.

-//

-	private int misspell(int sym, int tok) {

-		

-

-		//

-		//

-		//

-		char[] name = Parser.name[Parser.terminal_index[sym]].toCharArray();

-		int n = name.length;

-		char[] s1 = new char[n + 1];

-		for (int k = 0; k < n; k++) {

-			char c = name[k];

-			s1[k] = Character.toLowerCase(c);

-		}

-		s1[n] = '\0';

-

-		//

-		//

-		//

-		char[] tokenName = lexStream.name(tok);

-		int len = tokenName.length;

-		int m = len < MAX_NAME_LENGTH ? len : MAX_NAME_LENGTH;

-		char[] s2 = new char[m + 1];

-		for (int k = 0; k < m; k++) {

-			char c = tokenName[k];

-			s2[k] = Character.toLowerCase(c);

-		}

-		s2[m] = '\0';

-

-		//

-		//  Singleton mispellings:

-		//

-		//  ;      <---->     ,

-		//

-		//  ;      <---->     :

-		//

-		//  .      <---->     ,

-		//

-		//  '      <---->     "

-		//

-		//

-		if (n == 1  &&  m == 1) {

-			if ((s1[0] == ';'  &&  s2[0] == ',')  ||

-				(s1[0] == ','  &&  s2[0] == ';')  ||

-				(s1[0] == ';'  &&  s2[0] == ':')  ||

-				(s1[0] == ':'  &&  s2[0] == ';')  ||

-				(s1[0] == '.'  &&  s2[0] == ',')  ||

-				(s1[0] == ','  &&  s2[0] == '.')  ||

-				(s1[0] == '\'' &&  s2[0] == '\"')  ||

-				(s1[0] == '\"'  &&  s2[0] == '\'')) {

-					return 3;

-			}

-		}

-

-		//

-		// Scan the two strings. Increment "match" count for each match.

-		// When a transposition is encountered, increase "match" count

-		// by two but count it as an error. When a typo is found, skip

-		// it and count it as an error. Otherwise we have a mismatch; if

-		// one of the strings is longer, increment its index, otherwise,

-		// increment both indices and continue.

-		//

-		// This algorithm is an adaptation of a boolean misspelling

-		// algorithm proposed by Juergen Uhl.

-		//

-		int count = 0;

-		int prefix_length = 0;

-		int num_errors = 0;

-

-		int i = 0;

-		int j = 0;

-		while ((i < n)  &&  (j < m)) {

-			if (s1[i] == s2[j]) {

-				count++;

-				i++;

-				j++;

-				if (num_errors == 0) {

-					prefix_length++;

-				}

-			} else if (s1[i+1] == s2[j]  &&  s1[i] == s2[j+1]) {

-				count += 2;

-				i += 2;

-				j += 2;

-				num_errors++;

-			} else if (s1[i+1] == s2[j+1]) {

-				i++;

-				j++;

-				num_errors++;

-			} else {

-				if ((n - i) > (m - j)) {

-					 i++;

-				} else if ((m - j) > (n - i)) {

-					 j++;

-				} else {

-					i++;

-					j++;

-				}

-				num_errors++;

-			}

-		}

-

-		if (i < n  ||  j < m)

-			num_errors++;

-

-		if (num_errors > ((n < m ? n : m) / 6 + 1))

-			 count = prefix_length;

-

-		return(count * 10 / ((n < len ? len : n) + num_errors));

-	}

-	

-	private PrimaryRepairInfo scopeTrial(int stck[], int stack_top, PrimaryRepairInfo repair) {

-	    stateSeen = new int[stackLength];

-	    for (int i = 0; i < stackLength; i++)

-	        stateSeen[i] = NIL;

-	    

-	    statePoolTop = 0;

-	    statePool = new StateInfo[stackLength];

-	

-	    scopeTrialCheck(stck, stack_top, repair, 0);

-	

-	    stateSeen = null;

-	    statePoolTop = 0;

-	

-	    repair.code = SCOPE_CODE;

-	    repair.misspellIndex = 10;

-	

-	    return repair;

-	}

-	

-	private void scopeTrialCheck(int stck[], int stack_top, PrimaryRepairInfo repair, int indx) {

-		if(indx > 20) return; // avoid too much recursive call to improve performance

-		

-		int act = stck[stack_top];

-	

-	    for (int i = stateSeen[stack_top]; i != NIL; i = statePool[i].next) {

-	        if (statePool[i].state == act) return;

-	    }

-

-	    int old_state_pool_top = statePoolTop++;

-	    if(statePoolTop >= statePool.length) {

-	    	System.arraycopy(statePool, 0, statePool = new StateInfo[statePoolTop * 2], 0, statePoolTop);

-	    }

-	    

-	    statePool[old_state_pool_top] = new StateInfo(act, stateSeen[stack_top]);

-	    stateSeen[stack_top] = old_state_pool_top;

-	

-	    for (int i = 0; i < SCOPE_SIZE; i++) {

-	        //

-	        // Use the scope lookahead symbol to force all reductions

-	        // inducible by that symbol.

-	        //

-	        act = stck[stack_top];

-	        tempStackTop = stack_top - 1;

-	        int max_pos = stack_top;

-	        int tok = Parser.scope_la[i];

-	        lexStream.reset(buffer[repair.bufferPosition]);

-	        act = Parser.tAction(act, tok);

-	        while(act <= NUM_RULES) {

-	            //

-	            // ... Process all goto-reduce actions following

-	            // reduction, until a goto action is computed ...

-	            //

-	            do  {

-	                tempStackTop -= (Parser.rhs[act]-1);

-	                int lhs_symbol = Parser.lhs[act];

-	                act =  (tempStackTop > max_pos

-	                            ?  tempStack[tempStackTop]

-	                            :  stck[tempStackTop]);

-	                act = Parser.ntAction(act, lhs_symbol);

-	            }  while(act <= NUM_RULES);

-	            if (tempStackTop + 1 >= stackLength)

-	                return;

-	            max_pos = max_pos < tempStackTop ? max_pos : tempStackTop;

-	            tempStack[tempStackTop + 1] = act;

-	            act = Parser.tAction(act, tok);

-	        }

-	

-	        //

-	        // If the lookahead symbol is parsable, then we check

-	        // whether or not we have a match between the scope

-	        // prefix and the transition symbols corresponding to

-	        // the states on top of the stack.

-	        //

-	        if (act != ERROR_ACTION) {

-	        	int j, k;

-	            k = Parser.scope_prefix[i];

-	            for (j = tempStackTop + 1;

-	                 j >= (max_pos + 1) &&

-	                 Parser.in_symbol(tempStack[j]) == Parser.scope_rhs[k]; j--) {

-	                 k++;

-	            }

-	            if (j == max_pos) {

-	                for (j = max_pos;

-	                     j >= 1 && Parser.in_symbol(stck[j]) == Parser.scope_rhs[k];

-	                     j--) {

-	                    k++;

-	                }

-	            }

-	            //

-	            // If the prefix matches, check whether the state

-	            // newly exposed on top of the stack, (after the

-	            // corresponding prefix states are popped from the

-	            // stack), is in the set of "source states" for the

-	            // scope in question and that it is at a position

-	            // below the threshold indicated by MARKED_POS.

-	            //

-	            int marked_pos = (max_pos < stack_top ? max_pos + 1 : stack_top);

-	            if (Parser.scope_rhs[k] == 0 && j < marked_pos) { // match?

-	                int stack_position = j;

-	                for (j = Parser.scope_state_set[i];

-	                     stck[stack_position] != Parser.scope_state[j] &&

-	                     Parser.scope_state[j] != 0;

-	                     j++){/*empty*/}

-	                //

-	                // If the top state is valid for scope recovery,

-	                // the left-hand side of the scope is used as

-	                // starting symbol and we calculate how far the

-	                // parser can advance within the forward context

-	                // after parsing the left-hand symbol.

-	                //

-	                if (Parser.scope_state[j] != 0) {     // state was found

-	                    int previous_distance = repair.distance;

-	                    int distance = parseCheck(stck,

-	                                          stack_position,

-	                                          Parser.scope_lhs[i]+NT_OFFSET,

-	                                          repair.bufferPosition);

-	                    //

-	                    // if the recovery is not successful, we

-	                    // update the stack with all actions induced

-	                    // by the left-hand symbol, and recursively

-	                    // call SCOPE_TRIAL_CHECK to try again.

-	                    // Otherwise, the recovery is successful. If

-	                    // the new distance is greater than the

-	                    // initial SCOPE_DISTANCE, we update

-	                    // SCOPE_DISTANCE and set scope_stack_top to INDX

-	                    // to indicate the number of scopes that are

-	                    // to be applied for a succesful  recovery.

-	                    // NOTE that this procedure cannot get into

-	                    // an infinite loop, since each prefix match

-	                    // is guaranteed to take us to a lower point

-	                    // within the stack.

-	                    //

-	                    if ((distance - repair.bufferPosition + 1) < MIN_DISTANCE) {

-	                        int top = stack_position;

-	                        act = Parser.ntAction(stck[top], Parser.scope_lhs[i]);

-	                        while(act <= NUM_RULES) {

-	                            top -= (Parser.rhs[act]-1);

-	                            act = Parser.ntAction(stck[top], Parser.lhs[act]);

-	                        }

-	                        top++;

-	

-	                        j = act;

-	                        act = stck[top];  // save

-	                        stck[top] = j;    // swap

-	                        scopeTrialCheck(stck, top, repair, indx+1);

-	                        stck[top] = act; // restore

-	                    } else if (distance > repair.distance) {

-	                        scopeStackTop = indx;

-	                        repair.distance = distance;

-	                    }

-	

-	                    if (lexStream.kind(buffer[repair.bufferPosition]) == EOFT_SYMBOL &&

-	                        repair.distance == previous_distance) {

-	                        scopeStackTop = indx;

-	                        repair.distance = MAX_DISTANCE;

-	                    }

-	

-	                    //

-	                    // If this scope recovery has beaten the

-	                    // previous distance, then we have found a

-	                    // better recovery (or this recovery is one

-	                    // of a list of scope recoveries). Record

-	                    // its information at the proper location

-	                    // (INDX) in SCOPE_INDEX and SCOPE_STACK.

-	                    //

-	                    if (repair.distance > previous_distance) {

-	                        scopeIndex[indx] = i;

-	                        scopePosition[indx] = stack_position;

-	                        return;

-	                    }

-	                }

-	            }

-	        }

-	    }

-	}

-//

-//	   This function computes the ParseCheck distance for the best

-//	   possible secondary recovery for a given configuration that

-//	   either deletes none or only one symbol in the forward context.

-//	   If the recovery found is more effective than the best primary

-//	   recovery previously computed, then the function returns true.

-//	   Only misplacement, scope and manual recoveries are attempted;

-//	   simple insertion or substitution of a nonterminal are tried

-//	   in CHECK_PRIMARY_DISTANCE as part of primary recovery.

-//

-	private boolean secondaryCheck(int stck[], int stack_top, int buffer_position, int distance) {

-		int top, j;

-

-		for (top = stack_top - 1; top >= 0; top--) {

-			j = parseCheck(stck, top,

-						   lexStream.kind(buffer[buffer_position]),

-						   buffer_position + 1);

-			if (((j - buffer_position + 1) > MIN_DISTANCE) && (j > distance))

-				return true;

-		}

-		

-		PrimaryRepairInfo repair = new PrimaryRepairInfo();

-	    repair.bufferPosition = buffer_position + 1;

-	    repair.distance = distance;

-	    repair = scopeTrial(stck, stack_top, repair);

-	    if ((repair.distance - buffer_position) > MIN_DISTANCE && repair.distance > distance)

-	         return true;

-		return false;

-	}

-

-

-//

-//	   Secondary_phase is a boolean function that checks whether or

-//	   not some form of secondary recovery is applicable to one of

-//	   the error configurations. First, if "next_stack" is available,

-//	   misplacement and secondary recoveries are attempted on it.

-//	   Then, in any case, these recoveries are attempted on "stack".

-//	   If a successful recovery is found, a diagnosis is issued, the

-//	   configuration is updated and the function returns "true".

-//	   Otherwise, the function returns false.

-//

-	private RepairCandidate secondaryPhase(int error_token) {

-		SecondaryRepairInfo repair = new SecondaryRepairInfo();

-		SecondaryRepairInfo misplaced = new SecondaryRepairInfo();

-

-		RepairCandidate candidate = new RepairCandidate();

-

-		int i, j, k, top;

-		int	next_last_index = 0;

-		int	last_index;

-

-		candidate.symbol = 0;

-

-		repair.code = 0;

-		repair.distance = 0;

-		repair.recoveryOnNextStack = false;

-

-		misplaced.distance = 0;

-		misplaced.recoveryOnNextStack = false;

-

-		//

-		// If the next_stack is available, try misplaced and secondary

-		// recovery on it first.

-		//

-		if (nextStackTop >= 0) {

-			int  save_location;

-

-			buffer[2] = error_token;

-			buffer[1] = lexStream.previous(buffer[2]);

-			buffer[0] = lexStream.previous(buffer[1]);

-

-			for (k = 3; k < BUFF_UBOUND; k++)

-				buffer[k] = lexStream.next(buffer[k - 1]);

-

-			buffer[BUFF_UBOUND] = lexStream.badtoken();// elmt not available

-

-			//

-			// If we are at the end of the input stream, compute the

-			// index position of the first EOFT symbol (last useful

-			// index).

-			//

-			for (next_last_index = MAX_DISTANCE - 1;

-				 next_last_index >= 1 &&

-				 lexStream.kind(buffer[next_last_index]) == EOFT_SYMBOL;

-				 next_last_index--){/*empty*/}

-			next_last_index = next_last_index + 1;

-

-			save_location = locationStack[nextStackTop];

-			int save_location_start = locationStartStack[nextStackTop];

-			locationStack[nextStackTop] = buffer[2];

-			locationStartStack[nextStackTop] = lexStream.start(buffer[2]);

-			misplaced.numDeletions = nextStackTop;

-			misplaced = misplacementRecovery(nextStack, nextStackTop,

-											 next_last_index,

-											 misplaced, true);

-			if (misplaced.recoveryOnNextStack)

-				misplaced.distance++;

-

-			repair.numDeletions = nextStackTop + BUFF_UBOUND;

-			repair = secondaryRecovery(nextStack, nextStackTop,

-									   next_last_index,

-									   repair, true);

-			if (repair.recoveryOnNextStack)

-				repair.distance++;

-

-			locationStack[nextStackTop] = save_location;

-			locationStartStack[nextStackTop] = save_location_start;

-		} else {            // next_stack not available, initialize ...

-			misplaced.numDeletions = stateStackTop;

-			repair.numDeletions = stateStackTop + BUFF_UBOUND;

-		}

-

-		//

-		// Try secondary recovery on the "stack" configuration.

-		//

-		buffer[3] = error_token;

-

-		buffer[2] = lexStream.previous(buffer[3]);

-		buffer[1] = lexStream.previous(buffer[2]);

-		buffer[0] = lexStream.previous(buffer[1]);

-

-		for (k = 4; k < BUFF_SIZE; k++)

-			buffer[k] = lexStream.next(buffer[k - 1]);

-

-		for (last_index = MAX_DISTANCE - 1;

-			 last_index >= 1 && lexStream.kind(buffer[last_index]) == EOFT_SYMBOL;

-			 last_index--){/*empty*/}

-		last_index++;

-

-		misplaced = misplacementRecovery(stack, stateStackTop,

-										 last_index,

-										 misplaced, false);

-

-		repair = secondaryRecovery(stack, stateStackTop,

-								   last_index, repair, false);

-

-		//

-		// If a successful misplaced recovery was found, compare it with

-		// the most successful secondary recovery.  If the misplaced

-		// recovery either deletes fewer symbols or parse-checks further

-		// then it is chosen.

-		//

-		if (misplaced.distance > MIN_DISTANCE) {

-			if (misplaced.numDeletions <= repair.numDeletions ||

-			   (misplaced.distance - misplaced.numDeletions) >=

-			   (repair.distance - repair.numDeletions)) {

-				repair.code = MISPLACED_CODE;

-				repair.stackPosition = misplaced.stackPosition;

-				repair.bufferPosition = 2;

-				repair.numDeletions = misplaced.numDeletions;

-				repair.distance = misplaced.distance;

-				repair.recoveryOnNextStack = misplaced.recoveryOnNextStack;

-			}

-		}

-

-		//

-		// If the successful recovery was on next_stack, update: stack,

-		// buffer, location_stack and last_index.

-		//

-		if (repair.recoveryOnNextStack) {

-			stateStackTop = nextStackTop;

-			for (i = 0; i <= stateStackTop; i++)

-				stack[i] = nextStack[i];

-

-			buffer[2] = error_token;

-			buffer[1] = lexStream.previous(buffer[2]);

-			buffer[0] = lexStream.previous(buffer[1]);

-

-			for (k = 3; k < BUFF_UBOUND; k++)

-				buffer[k] = lexStream.next(buffer[k - 1]);

-

-			buffer[BUFF_UBOUND] = lexStream.badtoken();// elmt not available

-

-			locationStack[nextStackTop] = buffer[2];

-			locationStartStack[nextStackTop] = lexStream.start(buffer[2]);

-			last_index = next_last_index;

-		}

-

-	    //

-	    // Next, try scope recoveries after deletion of one, two, three,

-	    // four ... buffer_position tokens from the input stream.

-	    //

-	    if (repair.code == SECONDARY_CODE || repair.code == DELETION_CODE) {

-	        PrimaryRepairInfo scope_repair = new PrimaryRepairInfo();

-	

-	        scope_repair.distance = 0;

-	        for (scope_repair.bufferPosition = 2;

-	             scope_repair.bufferPosition <= repair.bufferPosition &&

-	             repair.code != SCOPE_CODE; scope_repair.bufferPosition++) {

-	            scope_repair = scopeTrial(stack, stateStackTop, scope_repair);

-	            j = (scope_repair.distance == MAX_DISTANCE

-	                                        ? last_index

-	                                        : scope_repair.distance);

-	            k = scope_repair.bufferPosition - 1;

-	            if ((j - k) > MIN_DISTANCE && (j - k) > (repair.distance - repair.numDeletions)) {

-	                repair.code = SCOPE_CODE;

-	                i = scopeIndex[scopeStackTop];       // upper bound

-	                repair.symbol = Parser.scope_lhs[i] + NT_OFFSET;

-	                repair.stackPosition = stateStackTop;

-	                repair.bufferPosition = scope_repair.bufferPosition;

-	            }

-	        }

-	    }

-	

-	    //

-	    // If no successful recovery is found and we have reached the

-	    // end of the file, check whether or not scope recovery is

-	    // applicable at the end of the file after discarding some

-	    // states.

-	    //

-	    if (repair.code == 0 && lexStream.kind(buffer[last_index]) == EOFT_SYMBOL) {

-	        PrimaryRepairInfo scope_repair = new PrimaryRepairInfo();

-	

-	        scope_repair.bufferPosition = last_index;

-	        scope_repair.distance = 0;

-	        for (top = stateStackTop;

-	             top >= 0 && repair.code == 0; top--)

-	        {

-	            scope_repair = scopeTrial(stack, top, scope_repair);

-	            if (scope_repair.distance > 0)

-	            {

-	                repair.code = SCOPE_CODE;

-	                i = scopeIndex[scopeStackTop];    // upper bound

-	                repair.symbol = Parser.scope_lhs[i] + NT_OFFSET;

-	                repair.stackPosition = top;

-	                repair.bufferPosition = scope_repair.bufferPosition;

-	            }

-	        }

-	    }

-

-		//

-		// If a successful repair was not found, quit!  Otherwise, issue

-		// diagnosis and adjust configuration...

-		//

-		if (repair.code == 0)

-			return candidate;

-

-		secondaryDiagnosis(repair);

-

-		//

-		// Update buffer based on number of elements that are deleted.

-		//

-		switch(repair.code) {

-			case MISPLACED_CODE:

-				 candidate.location = buffer[2];

-				 candidate.symbol = lexStream.kind(buffer[2]);

-				 lexStream.reset(lexStream.next(buffer[2]));

-

-				 break;

-

-			case DELETION_CODE:

-				 candidate.location = buffer[repair.bufferPosition];

-				 candidate.symbol =

-						   lexStream.kind(buffer[repair.bufferPosition]);

-				 lexStream.reset(lexStream.next(buffer[repair.bufferPosition]));

-

-				 break;

-

-		default: // SCOPE_CODE || SECONDARY_CODE

-				 candidate.symbol = repair.symbol;

-				 candidate.location = buffer[repair.bufferPosition];

-				 lexStream.reset(buffer[repair.bufferPosition]);

-

-				 break;

-		}

-

-		return candidate;

-	}

-

-

-//

-//	   This boolean function checks whether or not a given

-//	   configuration yields a better misplacement recovery than

-//	   the best misplacement recovery computed previously.

-//

-	private SecondaryRepairInfo misplacementRecovery(int stck[], int stack_top, int last_index, SecondaryRepairInfo repair, boolean stack_flag) {

-		int  previous_loc = buffer[2];

-		int stack_deletions = 0;

-

-		for (int top = stack_top - 1; top >= 0; top--) {

-			if (locationStack[top] < previous_loc) {

-				stack_deletions++;

-			}

-			previous_loc = locationStack[top];

-

-			int j = parseCheck(stck, top, lexStream.kind(buffer[2]), 3);

-			if (j == MAX_DISTANCE) {

-				 j = last_index;

-			}

-			if ((j > MIN_DISTANCE) && (j - stack_deletions) > (repair.distance - repair.numDeletions)) {

-				repair.stackPosition = top;

-				repair.distance = j;

-				repair.numDeletions = stack_deletions;

-				repair.recoveryOnNextStack = stack_flag;

-			}

-		}

-

-		return repair;

-	}

-

-

-//

-//	   This boolean function checks whether or not a given

-//	   configuration yields a better secondary recovery than the

-//	   best misplacement recovery computed previously.

-//

-	private SecondaryRepairInfo secondaryRecovery(int stck[],int stack_top, int last_index, SecondaryRepairInfo repair, boolean stack_flag) {

-		int previous_loc;

-		int stack_deletions = 0;

-		

-		previous_loc = buffer[2];

-		for (int top = stack_top; top >= 0 && repair.numDeletions >= stack_deletions; top--) {

-			if (locationStack[top] < previous_loc) {

-				stack_deletions++;

-			}

-			previous_loc = locationStack[top];

-

-			for (int i = 2;

-				 i <= (last_index - MIN_DISTANCE + 1) &&

-				 (repair.numDeletions >= (stack_deletions + i - 1)); i++) {

-				int j = parseCheck(stck, top, lexStream.kind(buffer[i]), i + 1);

-

-				if (j == MAX_DISTANCE) {

-					 j = last_index;

-				}

-				if ((j - i + 1) > MIN_DISTANCE) {

-					int k = stack_deletions + i - 1;

-					if ((k < repair.numDeletions) ||

-						(j - k) > (repair.distance - repair.numDeletions) ||

-						((repair.code == SECONDARY_CODE) && (j - k) == (repair.distance - repair.numDeletions))) {

-						repair.code = DELETION_CODE;

-						repair.distance = j;

-						repair.stackPosition = top;

-						repair.bufferPosition = i;

-						repair.numDeletions = k;

-						repair.recoveryOnNextStack = stack_flag;

-					}

-				}

-

-				for (int l = Parser.nasi(stck[top]); l >= 0 && Parser.nasr[l] != 0; l++) {

-					int symbol = Parser.nasr[l] + NT_OFFSET;

-					j = parseCheck(stck, top, symbol, i);

-					if (j == MAX_DISTANCE) {

-						 j = last_index;

-					}

-					if ((j - i + 1) > MIN_DISTANCE) {

-						int k = stack_deletions + i - 1;

-						if (k < repair.numDeletions || (j - k) > (repair.distance - repair.numDeletions)) {

-							repair.code = SECONDARY_CODE;

-							repair.symbol = symbol;

-							repair.distance = j;

-							repair.stackPosition = top;

-							repair.bufferPosition = i;

-							repair.numDeletions = k;

-							repair.recoveryOnNextStack = stack_flag;

-						}

-					}

-				}

-			}

-		}

-

-		return repair;

-	}

-

-

-//

-//	   This procedure is invoked to issue a secondary diagnosis and

-//	   adjust the input buffer.  The recovery in question is either

-//	   an automatic scope recovery, a manual scope recovery, a

-//	   secondary substitution or a secondary deletion.

-//

-	private void secondaryDiagnosis(SecondaryRepairInfo repair) {

-		switch(repair.code) {

-			case SCOPE_CODE: {

-	            if (repair.stackPosition < stateStackTop) {

-	                reportError(DELETION_CODE,

-	                            Parser.terminal_index[ERROR_SYMBOL],

-	                            locationStack[repair.stackPosition],

-	                            buffer[1]);

-	            }

-	            for (int i = 0; i < scopeStackTop; i++) {

-	                reportError(SCOPE_CODE,

-	                            -scopeIndex[i],

-	                            locationStack[scopePosition[i]],

-	                            buffer[1],

-	                            Parser.non_terminal_index[Parser.scope_lhs[scopeIndex[i]]]);

-	            }

-	

-	            repair.symbol = Parser.scope_lhs[scopeIndex[scopeStackTop]] + NT_OFFSET;

-	            stateStackTop = scopePosition[scopeStackTop];

-	            reportError(SCOPE_CODE,

-	                        -scopeIndex[scopeStackTop],

-	                        locationStack[scopePosition[scopeStackTop]],

-	                        buffer[1],

-	                        getNtermIndex(stack[stateStackTop],

-	                                      repair.symbol,

-	                                      repair.bufferPosition)

-	                       );

-	            break;

-	        }

-			default: {

-				reportError(repair.code,

-							(repair.code == SECONDARY_CODE

-										  ? getNtermIndex(stack[repair.stackPosition],

-														  repair.symbol,

-														  repair.bufferPosition)

-										  : Parser.terminal_index[ERROR_SYMBOL]),

-							locationStack[repair.stackPosition],

-							buffer[repair.bufferPosition - 1]);

-				stateStackTop = repair.stackPosition;

-			}

-		}

-	}

-

-

-

-

-//

-//	   Try to parse until first_token and all tokens in BUFFER have

-//	   been consumed, or an error is encountered. Return the number

-//	   of tokens that were expended before the parse blocked.

-//

-	private int parseCheck(int stck[], int stack_top, int first_token, int buffer_position) {

-		int max_pos;

-		int indx;

-		int ct;

-		int act;

-

-		//

-		// Initialize pointer for temp_stack and initialize maximum

-		// position of state stack that is still useful.

-		//

-		act = stck[stack_top];

-		if (first_token > NT_OFFSET) {

-			tempStackTop = stack_top;

-			if(DEBUG_PARSECHECK) {

-				System.out.println(tempStackTop);

-			}

-			max_pos = stack_top;

-			indx = buffer_position;

-			ct = lexStream.kind(buffer[indx]);

-			lexStream.reset(lexStream.next(buffer[indx]));

-			int lhs_symbol = first_token - NT_OFFSET;

-			act = Parser.ntAction(act, lhs_symbol);

-			if (act <= NUM_RULES) {

-				// same loop as 'process_non_terminal'

-				do {

-					tempStackTop -= (Parser.rhs[act]-1);

-					

-					if(DEBUG_PARSECHECK) {

-						System.out.print(tempStackTop);

-						System.out.print(" ("); //$NON-NLS-1$

-						System.out.print(-(Parser.rhs[act]-1));

-						System.out.print(") [max:"); //$NON-NLS-1$

-						System.out.print(max_pos);

-						System.out.print("]\tprocess_non_terminal\t"); //$NON-NLS-1$

-						System.out.print(act);

-						System.out.print("\t"); //$NON-NLS-1$

-						System.out.print(Parser.name[Parser.non_terminal_index[Parser.lhs[act]]]);

-						System.out.println();

-					}

-					

-					if(Parser.rules_compliance[act] > this.options.sourceLevel) {

-					 	return 0;

-					}

-					lhs_symbol = Parser.lhs[act];

-					act = (tempStackTop > max_pos

-										  ? tempStack[tempStackTop]

-										  : stck[tempStackTop]);

-					act = Parser.ntAction(act, lhs_symbol);

-				} while(act <= NUM_RULES);

-	

-				max_pos = max_pos < tempStackTop ? max_pos : tempStackTop;

-			}

-		} else {

-			tempStackTop = stack_top - 1;

-			

-			if(DEBUG_PARSECHECK) {

-				System.out.println(tempStackTop);

-			}

-			

-			max_pos = tempStackTop;

-			indx = buffer_position - 1;

-			ct = first_token;

-			lexStream.reset(buffer[buffer_position]);

-		}

-

-		process_terminal: for (;;) {

-			if(DEBUG_PARSECHECK) {

-				System.out.print(tempStackTop + 1);

-				System.out.print(" (+1) [max:"); //$NON-NLS-1$

-				System.out.print(max_pos);

-				System.out.print("]\tprocess_terminal    \t"); //$NON-NLS-1$

-				System.out.print(ct);

-				System.out.print("\t"); //$NON-NLS-1$

-				System.out.print(Parser.name[Parser.terminal_index[ct]]);

-				System.out.println();

-			}

-			

-			if (++tempStackTop >= stackLength)  // Stack overflow!!!

-				return indx;

-			tempStack[tempStackTop] = act;

-

-			act = Parser.tAction(act, ct);

-

-			if (act <= NUM_RULES) {               // reduce action

-				tempStackTop--;

-				

-				if(DEBUG_PARSECHECK) {

-					System.out.print(tempStackTop);

-					System.out.print(" (-1) [max:"); //$NON-NLS-1$

-					System.out.print(max_pos);

-					System.out.print("]\treduce"); //$NON-NLS-1$

-					System.out.println();

-				}

-			} else if (act < ACCEPT_ACTION ||     // shift action

-					 act > ERROR_ACTION) {        // shift-reduce action

-				if (indx == MAX_DISTANCE)

-					return indx;

-				indx++;

-				ct = lexStream.kind(buffer[indx]);

-				lexStream.reset(lexStream.next(buffer[indx]));

-				if (act > ERROR_ACTION) {

-					act -= ERROR_ACTION;

-					

-					if(DEBUG_PARSECHECK) {

-						System.out.print(tempStackTop);

-						System.out.print("\tshift reduce"); //$NON-NLS-1$

-						System.out.println();

-					}

-				} else {

-					if(DEBUG_PARSECHECK) {

-						System.out.println("\tshift"); //$NON-NLS-1$

-					}

-					continue process_terminal;

-				}

-			} else if (act == ACCEPT_ACTION) {           // accept action

-				 return MAX_DISTANCE;

-			} else {

-				return indx;                         // error action

-			}

-

-			// same loop as first token initialization

-			process_non_terminal:

-			do {

-				tempStackTop -= (Parser.rhs[act]-1);

-				

-				if(DEBUG_PARSECHECK) {

-					System.out.print(tempStackTop);

-					System.out.print(" ("); //$NON-NLS-1$

-					System.out.print(-(Parser.rhs[act]-1));

-					System.out.print(") [max:"); //$NON-NLS-1$

-					System.out.print(max_pos);

-					System.out.print("]\tprocess_non_terminal\t"); //$NON-NLS-1$

-					System.out.print(act);

-					System.out.print("\t"); //$NON-NLS-1$

-					System.out.print(Parser.name[Parser.non_terminal_index[Parser.lhs[act]]]);

-					System.out.println();

-				}

-				

-				if(act <= NUM_RULES) {

-					if(Parser.rules_compliance[act] > this.options.sourceLevel) {

-					 	return 0;

-					}

-				}

-				int lhs_symbol = Parser.lhs[act];

-				act = (tempStackTop > max_pos

-									  ? tempStack[tempStackTop]

-									  : stck[tempStackTop]);

-				act = Parser.ntAction(act, lhs_symbol);

-			} while(act <= NUM_RULES);

-

-			max_pos = max_pos < tempStackTop ? max_pos : tempStackTop;

-		} // process_terminal;

-	}

-	private void reportError(int msgCode, int nameIndex, int leftToken, int rightToken) {

-		reportError(msgCode, nameIndex, leftToken, rightToken, 0);

-	}

-

-	private void reportError(int msgCode, int nameIndex, int leftToken, int rightToken, int scopeNameIndex) {

-		int lToken = (leftToken > rightToken ? rightToken : leftToken);

-

-		if (lToken < rightToken) {

-			reportSecondaryError(msgCode, nameIndex, lToken, rightToken, scopeNameIndex);

-		} else {

-			reportPrimaryError(msgCode, nameIndex, rightToken, scopeNameIndex);

-		}

-	}

-	private void reportPrimaryError(int msgCode, int nameIndex, int token, int scopeNameIndex) {

-		String name;

-		if (nameIndex >= 0) {

-			name = Parser.readableName[nameIndex];

-		} else {

-			name = EMPTY_STRING;

-		}

-

-		int errorStart = lexStream.start(token);

-		int errorEnd = lexStream.end(token);

-		int currentKind = lexStream.kind(token);

-		String errorTokenName = Parser.name[Parser.terminal_index[lexStream.kind(token)]];

-		char[] errorTokenSource = lexStream.name(token);

-

-		switch(msgCode) {

-			case BEFORE_CODE:

-				problemReporter().parseErrorInsertBeforeToken(

-					errorStart, 

-					errorEnd, 

-					currentKind,

-					errorTokenSource, 

-					errorTokenName, 

-					name);

-				 break;

-			case INSERTION_CODE:

-				problemReporter().parseErrorInsertAfterToken(

-					errorStart, 

-					errorEnd, 

-					currentKind,

-					errorTokenSource, 

-					errorTokenName, 

-					name);  

-				 break;

-			case DELETION_CODE:

-				problemReporter().parseErrorDeleteToken(

-					errorStart, 

-					errorEnd, 

-					currentKind,

-					errorTokenSource, 

-					errorTokenName);

-				break;

-			case INVALID_CODE:

-				if (name.length() == 0) {

-					problemReporter().parseErrorReplaceToken(

-						errorStart, 

-						errorEnd, 

-						currentKind,

-						errorTokenSource, 

-						errorTokenName, 

-						name);

-				} else {

-					problemReporter().parseErrorInvalidToken(

-						errorStart, 

-						errorEnd, 

-						currentKind,

-						errorTokenSource, 

-						errorTokenName, 

-						name);

-				}

-				break;

-			case SUBSTITUTION_CODE:

-				problemReporter().parseErrorReplaceToken(

-					errorStart, 

-					errorEnd, 

-					currentKind,

-					errorTokenSource, 

-					errorTokenName, 

-					name); 

-				 break;

-			case SCOPE_CODE:

-				StringBuffer buf = new StringBuffer();

-				for (int i = Parser.scope_suffix[- nameIndex]; Parser.scope_rhs[i] != 0; i++) {

-					buf.append(Parser.readableName[Parser.scope_rhs[i]]);

-					if (Parser.scope_rhs[i + 1] != 0) // any more symbols to print?

-						buf.append(' ');

-						

-				}

-

-				if (scopeNameIndex != 0) {

-					problemReporter().parseErrorInsertToComplete(

-						errorStart, 

-						errorEnd,

-						buf.toString(),

-						Parser.readableName[scopeNameIndex]);

-				} else {

-					problemReporter().parseErrorInsertToCompleteScope(

-						errorStart, 

-						errorEnd,

-						buf.toString()); 

-				}

-				

-				break;

-			case EOF_CODE:

-				problemReporter().parseErrorUnexpectedEnd(

-					errorStart, 

-					errorEnd); 

-				break;

-			case MERGE_CODE:

-				problemReporter().parseErrorMergeTokens(

-					errorStart, 

-					errorEnd,

-					name);

-				break;

-			case MISPLACED_CODE:

-				problemReporter().parseErrorMisplacedConstruct(

-					errorStart, 

-					errorEnd);

-				break;

-			default:

-				if (name.length() == 0) {

-					problemReporter().parseErrorNoSuggestion(

-						errorStart, 

-						errorEnd, 

-						currentKind,

-						errorTokenSource, 

-						errorTokenName);

-				} else {

-					problemReporter().parseErrorReplaceToken(

-						errorStart, 

-						errorEnd, 

-						currentKind,

-						errorTokenSource, 

-						errorTokenName, 

-						name); 

-				}

-				break;

-		}

-	}

-

-	private void reportSecondaryError(int msgCode,	int nameIndex,	int leftToken,	int rightToken, int scopeNameIndex) {

-		String name;

-		if (nameIndex >= 0) {

-			name = Parser.readableName[nameIndex];

-		} else {

-			name = EMPTY_STRING;	

-		}

-

-		int errorStart = -1;

-		if(lexStream.isInsideStream(leftToken)) {

-			if(leftToken == 0) {

-				errorStart = lexStream.start(leftToken + 1);

-			} else {

-				errorStart = lexStream.start(leftToken);

-			}

-		} else {

-			if(leftToken == errorToken) {

-				errorStart = errorTokenStart;

-			} else {

-				for (int i = 0; i <= stateStackTop; i++) {

-					if(locationStack[i] == leftToken) {

-						errorStart = locationStartStack[i];

-					}

-				}

-			}

-			if(errorStart == -1) {

-				errorStart = lexStream.start(rightToken);

-			}

-		}

-		int errorEnd = lexStream.end(rightToken);

-		

-		switch(msgCode) {

-			case MISPLACED_CODE:

-				problemReporter().parseErrorMisplacedConstruct(

-					errorStart, 

-					errorEnd); 

-				break;

-			case SCOPE_CODE:

-				// error start is on the last token start

-				errorStart = lexStream.start(rightToken);

-			

-	            StringBuffer buf = new StringBuffer();

-	            for (int i = Parser.scope_suffix[- nameIndex]; Parser.scope_rhs[i] != 0; i++) {

-	                buf.append(Parser.readableName[Parser.scope_rhs[i]]);

-	                if (Parser.scope_rhs[i+1] != 0)

-	                     buf.append(' ');

-	            }

-	            if (scopeNameIndex != 0) {

-	                problemReporter().parseErrorInsertToComplete(

-						errorStart, 

-						errorEnd,

-						buf.toString(),

-						Parser.readableName[scopeNameIndex]);

-	            } else {

-	            	problemReporter().parseErrorInsertToCompletePhrase(

-						errorStart, 

-						errorEnd,

-						buf.toString()); 

-	            }

-	            break;

-			case MERGE_CODE:

-				problemReporter().parseErrorMergeTokens(

-					errorStart, 

-					errorEnd,

-					name);

-				break;

-			case DELETION_CODE:

-				problemReporter().parseErrorDeleteTokens(

-					errorStart, 

-					errorEnd);

-				break;

-			default:

-				if (name.length() == 0) {

-					problemReporter().parseErrorNoSuggestionForTokens(

-						errorStart, 

-						errorEnd);

-				} else {

-					problemReporter().parseErrorReplaceTokens(

-						errorStart, 

-						errorEnd,

-						name);

-				}

-		}

-		return;

-	}

-

-	public String toString() {

-		StringBuffer res = new StringBuffer();

-		

-		res.append(lexStream.toString());

-		

-		return res.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/LexStream.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/LexStream.js
deleted file mode 100644
index 20c4f81..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/LexStream.js
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser.diagnose;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.parser.Scanner;

-import org.eclipse.wst.jsdt.internal.compiler.parser.TerminalTokens;

-

-public class LexStream implements TerminalTokens {

-	public static final int IS_AFTER_JUMP = 1;

-	public static final int LBRACE_MISSING = 2;

-		

-	public class Token{

-		int kind;

-		char[] name;

-		int start;

-		int end;

-		int line;

-		int flags;

-		

-		public String toString() {

-			StringBuffer buffer = new StringBuffer();

-			buffer.append(name).append('[').append(kind).append(']');

-			buffer.append('{').append(start).append(',').append(end).append('}').append(line);

-			return buffer.toString();

-		}

-

-	}

-

-	private int tokenCacheIndex;

-	private int tokenCacheEOFIndex;

-	private Token[] tokenCache;

-

-	private int currentIndex = -1;

-

-	private Scanner scanner;

-	private int[] intervalStartToSkip;

-	private int[] intervalEndToSkip;

-	private int[] intervalFlagsToSkip;

-	

-	private int previousInterval = -1;

-	

-	public LexStream(int size, Scanner scanner, int[] intervalStartToSkip, int[] intervalEndToSkip, int[] intervalFlagsToSkip, int firstToken, int init, int eof) {

-		this.tokenCache = new Token[size];

-		this.tokenCacheIndex = 0;

-		this.tokenCacheEOFIndex = Integer.MAX_VALUE;

-		this.tokenCache[0] = new Token();

-		this.tokenCache[0].kind = firstToken;

-		this.tokenCache[0].name = CharOperation.NO_CHAR;

-		this.tokenCache[0].start = init;

-		this.tokenCache[0].end = init;

-		this.tokenCache[0].line = 0;

-		

-		this.intervalStartToSkip = intervalStartToSkip;

-		this.intervalEndToSkip = intervalEndToSkip;

-		this.intervalFlagsToSkip = intervalFlagsToSkip;

-		

-		scanner.resetTo(init, eof);

-		this.scanner = scanner;

-	}

-	

-	private void readTokenFromScanner(){

-		int length = tokenCache.length;

-		boolean tokenNotFound = true;

-		

-		while(tokenNotFound) {

-			try {

-				int tokenKind =  scanner.getNextToken();

-				if(tokenKind != TokenNameEOF) {

-					int start = scanner.getCurrentTokenStartPosition();

-					int end = scanner.getCurrentTokenEndPosition();

-					if(!RangeUtil.isInInterval(start, end, intervalStartToSkip, intervalEndToSkip)) {

-						Token token = new Token();

-						token.kind = tokenKind;

-						token.name = scanner.getCurrentTokenSource();

-						token.start = start;

-						token.end = end;

-						token.line = scanner.getLineNumber(end);

-						

-						int pInterval = RangeUtil.getPreviousInterval(start, end, intervalStartToSkip, intervalEndToSkip);

-						if(pInterval != previousInterval && (intervalFlagsToSkip[previousInterval + 1] & RangeUtil.IGNORE) == 0){

-							token.flags = IS_AFTER_JUMP;

-							if((intervalFlagsToSkip[pInterval] & RangeUtil.LBRACE_MISSING) != 0){

-								token.flags |= LBRACE_MISSING;

-							}

-						}

-						previousInterval = pInterval;

-

-						tokenCache[++tokenCacheIndex % length] = token;

-						

-						tokenNotFound = false;

-					}

-				} else {

-					int start = scanner.getCurrentTokenStartPosition();

-					int end = scanner.getCurrentTokenEndPosition();

-					Token token = new Token();

-					token.kind = tokenKind;

-					token.name = CharOperation.NO_CHAR;

-					token.start = start;

-					token.end = end;

-					token.line = scanner.getLineNumber(end);

-					

-					tokenCache[++tokenCacheIndex % length] = token;

-					

-					tokenCacheEOFIndex = tokenCacheIndex;

-					tokenNotFound = false;

-				}

-			} catch (InvalidInputException e) {

-				// return next token

-			}

-		}

-	}

-	

-	public Token token(int index) {

-		if(index < 0) {

-			Token eofToken = new Token();

-			eofToken.kind = TokenNameEOF;

-			eofToken.name = CharOperation.NO_CHAR;

-			return eofToken;

-		}

-		if(this.tokenCacheEOFIndex >= 0 && index > this.tokenCacheEOFIndex) {

-			return token(this.tokenCacheEOFIndex);

-		}

-		int length = tokenCache.length;

-		if(index > this.tokenCacheIndex) {

-			int tokensToRead = index - this.tokenCacheIndex;

-			while(tokensToRead-- != 0) {

-				readTokenFromScanner();

-			}

-		} else if(this.tokenCacheIndex - length >= index) {

-			return null;

-		}

-		

-		return tokenCache[index % length];

-	}

-	

-	

-	

-	public int getToken() {

-		return currentIndex = next(currentIndex);

-	}

-	

-	public int previous(int tokenIndex) {

-		return tokenIndex > 0 ? tokenIndex - 1 : 0;

-	}

-

-	public int next(int tokenIndex) {

-		return tokenIndex < this.tokenCacheEOFIndex ? tokenIndex + 1 : this.tokenCacheEOFIndex;

-	}

-

-	public boolean afterEol(int i) {

-		return i < 1 ? true : line(i - 1) < line(i);

-	}

-	

-	public void reset() {

-		currentIndex = -1;

-	}

-	

-	public void reset(int i) {

-		currentIndex = previous(i);

-	}

-

-	public int badtoken() {

-		return 0;

-	}

-

-	public int kind(int tokenIndex) {

-		return token(tokenIndex).kind;

-	}

-	

-	public char[] name(int tokenIndex) {

-		return token(tokenIndex).name;

-	}

-

-	public int line(int tokenIndex) {

-		return token(tokenIndex).line;

-	}

-	

-	public int start(int tokenIndex) {

-		return token(tokenIndex).start;

-	}

-	

-	public int end(int tokenIndex) {

-		return token(tokenIndex).end;

-	}

-	

-	public int flags(int tokenIndex) {

-		return token(tokenIndex).flags;

-	}

-	

-	public boolean isInsideStream(int index) {

-		if(this.tokenCacheEOFIndex >= 0 && index > this.tokenCacheEOFIndex) {

-			return false;

-		} else if(index > this.tokenCacheIndex) {

-			return true;

-		} else if(this.tokenCacheIndex - tokenCache.length >= index) {

-			return false;

-		} else {

-			return true;

-		}

-	}

-	

-	/* (non-Javadoc)

-	 * @see java.lang.Object#toString()

-	 */

-	public String toString() {

-		StringBuffer res = new StringBuffer();

-		

-		String source = new String(scanner.source);

-		if(currentIndex < 0) {

-			res.append(source);

-		} else {

-			Token token = token(currentIndex);

-			int curtokKind = token.kind;

-			int curtokStart = token.start;

-			int curtokEnd = token.end;

-			

-			int previousEnd = -1;

-			for (int i = 0; i < intervalStartToSkip.length; i++) {

-				int intervalStart = intervalStartToSkip[i];

-				int intervalEnd = intervalEndToSkip[i];

-				

-				if(curtokStart >= previousEnd && curtokEnd <= intervalStart) {

-					res.append(source.substring(previousEnd + 1, curtokStart));

-					res.append('<');

-					res.append('#');

-					res.append(source.substring(curtokStart, curtokEnd + 1));

-					res.append('#');

-					res.append('>');

-					res.append(source.substring(curtokEnd+1, intervalStart));

-				} else {

-					res.append(source.substring(previousEnd + 1, intervalStart));

-				}

-				res.append('<');

-				res.append('@');

-				res.append(source.substring(intervalStart, intervalEnd + 1));

-				res.append('@');

-				res.append('>');

-				

-				previousEnd = intervalEnd;

-			}

-			if(curtokStart >= previousEnd) {

-				res.append(source.substring(previousEnd + 1, curtokStart));

-				res.append('<');

-				res.append('#');

-				if(curtokKind == TokenNameEOF) {

-					res.append("EOF#>"); //$NON-NLS-1$

-				} else {

-					res.append(source.substring(curtokStart, curtokEnd + 1));

-					res.append('#');

-					res.append('>');

-					res.append(source.substring(curtokEnd+1));

-				}

-			} else {

-				res.append(source.substring(previousEnd + 1));

-			}

-		}

-		

-		return res.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/RangeUtil.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/RangeUtil.js
deleted file mode 100644
index 8458ad1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/diagnose/RangeUtil.js
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.parser.diagnose;

-

-import org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.FieldDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.ast.Initializer;

-import org.eclipse.wst.jsdt.internal.compiler.ast.TypeDeclaration;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-

-public class RangeUtil {

-	

-	// flags

-	public static final int NO_FLAG = 0;

-	public static final int LBRACE_MISSING = 1;

-	public static final int IGNORE = 2;

-	

-	static class RangeResult {

-		private static final int INITIAL_SIZE = 10;

-		int pos;

-		int[] intervalStarts;

-		int[] intervalEnds;

-		int[] intervalFlags;

-		

-		RangeResult() {

-			this.pos = 0;

-			this.intervalStarts = new int[INITIAL_SIZE];

-			this.intervalEnds = new int[INITIAL_SIZE];

-			this.intervalFlags = new int[INITIAL_SIZE];

-		}

-		

-		void addInterval(int start, int end){

-			addInterval(start, end, NO_FLAG);

-		}

-		

-		void addInterval(int start, int end, int flags){

-			if(pos >= intervalStarts.length) {

-				System.arraycopy(intervalStarts, 0, intervalStarts = new int[pos * 2], 0, pos);

-				System.arraycopy(intervalEnds, 0, intervalEnds = new int[pos * 2], 0, pos);

-				System.arraycopy(intervalFlags, 0, intervalFlags = new int[pos * 2], 0, pos);

-			}

-			intervalStarts[pos] = start;

-			intervalEnds[pos] = end;

-			intervalFlags[pos] = flags;

-			pos++;

-		}

-		

-		int[][] getRanges() {

-			int[] resultStarts = new int[pos];

-			int[] resultEnds = new int[pos];

-			int[] resultFlags = new int[pos];

-			

-			System.arraycopy(intervalStarts, 0, resultStarts, 0, pos);

-			System.arraycopy(intervalEnds, 0, resultEnds, 0, pos);

-			System.arraycopy(intervalFlags, 0, resultFlags, 0, pos);

-

-			if (resultStarts.length > 1) {

-				quickSort(resultStarts, resultEnds, resultFlags, 0, resultStarts.length - 1);

-			}

-			return new int[][]{resultStarts, resultEnds, resultFlags};

-		}

-		

-		private void quickSort(int[] list, int[] list2, int[] list3, int left, int right) {

-			int original_left= left;

-			int original_right= right;

-			int mid= list[(left + right) / 2];

-			do {

-				while (compare(list[left], mid) < 0) {

-					left++;

-				}

-				while (compare(mid, list[right]) < 0) {

-					right--;

-				}

-				if (left <= right) {

-					int tmp= list[left];

-					list[left]= list[right];

-					list[right]= tmp;

-					

-					tmp = list2[left];

-					list2[left]= list2[right];

-					list2[right]= tmp;

-					

-					tmp = list3[left];

-					list3[left]= list3[right];

-					list3[right]= tmp;

-					

-					left++;

-					right--;

-				}

-			} while (left <= right);

-			

-			if (original_left < right) {

-				quickSort(list, list2, list3, original_left, right);

-			}

-			if (left < original_right) {

-				quickSort(list, list2, list3, left, original_right);

-			}

-		}

-		

-		private int compare(int i1, int i2) {

-			return i1 - i2;

-		}

-	}

-	

-	

-	

-	public static boolean containsErrorInSignature(AbstractMethodDeclaration method){

-		return method.sourceEnd + 1 == method.bodyStart	|| method.bodyEnd == method.declarationSourceEnd;

-	}

-

-	public static int[][] computeDietRange(TypeDeclaration[] types) {

-		if(types == null || types.length == 0) {

-			return new int[3][0];

-		} else {

-			RangeResult result = new RangeResult();

-			computeDietRange0(types, result);

-			return result.getRanges();

-		}

-	}

-	

-	private static void computeDietRange0(TypeDeclaration[] types, RangeResult result) {

-		for (int j = 0; j < types.length; j++) {

-			//members

-			TypeDeclaration[] memberTypeDeclarations = types[j].memberTypes;

-			if(memberTypeDeclarations != null && memberTypeDeclarations.length > 0) {

-				computeDietRange0(types[j].memberTypes, result);

-			}

-			//methods

-			AbstractMethodDeclaration[] methods = types[j].methods;

-			if (methods != null) {

-				int length = methods.length;

-				for (int i = 0; i < length; i++) {

-					AbstractMethodDeclaration method = methods[i];

-					if(containsIgnoredBody(method)) {

-						if(containsErrorInSignature(method)) {

-							method.errorInSignature = true;

-							result.addInterval(method.declarationSourceStart, method.declarationSourceEnd, IGNORE);

-						} else {

-							int flags = method.sourceEnd + 1 == method.bodyStart ? LBRACE_MISSING : NO_FLAG;

-							result.addInterval(method.bodyStart, method.bodyEnd, flags);

-						}

-					}

-				}

-			}

-	

-			//initializers

-			FieldDeclaration[] fields = types[j].fields;

-			if (fields != null) {

-				int length = fields.length;

-				for (int i = 0; i < length; i++) {

-					if (fields[i] instanceof Initializer) {

-						Initializer initializer = (Initializer)fields[i];

-						if(initializer.declarationSourceEnd == initializer.bodyEnd){

-							initializer.errorInSignature = true;

-							result.addInterval(initializer.declarationSourceStart, initializer.declarationSourceEnd, IGNORE);

-						} else {

-							result.addInterval(initializer.bodyStart, initializer.bodyEnd);

-						}

-					}

-				}

-			}

-		}

-	}

-	

-	public static boolean isInInterval(int start, int end, int[] intervalStart, int[] intervalEnd) {

-		int length = intervalStart.length;

-		for (int i = 0; i < length; i++) {

-			if(intervalStart[i] <= start && intervalEnd[i] >= end) {

-				return true;

-			} else if(intervalStart[i] > end) {

-				return false;

-			}

-		}

-		return false;

-	}

-	

-	public static int getPreviousInterval(int start, int end, int[] intervalStart, int[] intervalEnd) {

-		int length = intervalStart.length;

-		for (int i = 0; i < length; i++) {

-			if(intervalStart[i] > end) {

-				return i - 1;

-			}

-		}

-		return length - 1;

-	}

-	

-	public static boolean containsIgnoredBody(AbstractMethodDeclaration method){

-		return !method.isDefaultConstructor()

-			&& !method.isClinit()

-			&& (method.modifiers & CompilerModifiers.AccSemicolonBody) == 0;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser1.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser1.rsc
deleted file mode 100644
index 8271e20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser1.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser10.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser10.rsc
deleted file mode 100644
index fcc0acd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser10.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser11.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser11.rsc
deleted file mode 100644
index 4f26c0a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser11.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser12.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser12.rsc
deleted file mode 100644
index 6038286..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser12.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser13.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser13.rsc
deleted file mode 100644
index 430fb0d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser13.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser14.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser14.rsc
deleted file mode 100644
index d85614f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser14.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser15.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser15.rsc
deleted file mode 100644
index f65f970..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser15.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser16.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser16.rsc
deleted file mode 100644
index 8be2e6f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser16.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser17.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser17.rsc
deleted file mode 100644
index d99247e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser17.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser18.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser18.rsc
deleted file mode 100644
index cfaebfe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser18.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser19.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser19.rsc
deleted file mode 100644
index 3e90944..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser19.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser2.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser2.rsc
deleted file mode 100644
index 35fe970..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser2.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser20.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser20.rsc
deleted file mode 100644
index 8d4a2fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser20.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser21.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser21.rsc
deleted file mode 100644
index 3bddccf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser21.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser3.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser3.rsc
deleted file mode 100644
index a42e8f5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser3.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser4.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser4.rsc
deleted file mode 100644
index 5a84572..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser4.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser5.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser5.rsc
deleted file mode 100644
index 445bfcd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser5.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser6.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser6.rsc
deleted file mode 100644
index 191c809..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser6.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser7.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser7.rsc
deleted file mode 100644
index 1c66e3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser7.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser8.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser8.rsc
deleted file mode 100644
index 12470cd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser8.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser9.rsc b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser9.rsc
deleted file mode 100644
index 41dc251..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/parser9.rsc
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/readableNames.properties b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/readableNames.properties
deleted file mode 100644
index af94125..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/parser/readableNames.properties
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-./newJDT/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/messages.properties
-./newJDT/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/messages.properties
-./newJDT/org.eclipse.wst.jsdt.core.tests.model/build.properties
-./newJDT/org.eclipse.wst.jsdt.core.tests.model/plugin.properties
-./newJDT/org.eclipse.wst.jsdt.launching/src/org/eclipse/jsdt/internal/launching/LaunchingMessages.properties
-./newJDT/org.eclipse.wst.jsdt.launching/src/org/eclipse/jsdt/internal/launching/environments/EnvironmentMessages.properties
-./newJDT/org.eclipse.wst.jsdt.launching/build.properties
-./newJDT/org.eclipse.wst.jsdt.launching/plugin.properties
-./newJDT/org.eclipse.wst.jsdt.core.manipulation/src/org/eclipse/jsdt/internal/core/manipulation/JavaManipulationMessages.properties
-./newJDT/org.eclipse.wst.jsdt.core.manipulation/src/org/eclipse/jsdt/internal/core/refactoring/descriptors/DescriptorMessages.properties
-./newJDT/org.eclipse.wst.jsdt.core.manipulation/build.properties
-./newJDT/org.eclipse.wst.jsdt.core.manipulation/plugin.properties
-./newJDT/org.eclipse.wst.jsdt.core/src/org/eclipse/jsdt/core/formatter/messages.properties
-./newJDT/org.eclipse.wst.jsdt.core/src/org/eclipse/jsdt/internal/core/util/messages.properties
-./newJDT/org.eclipse.wst.jsdt.core/src/org/eclipse/jsdt/internal/formatter/options.properties
-./newJDT/org.eclipse.wst.jsdt.core/src/org/eclipse/jsdt/internal/compiler/messages.properties
-./newJDT/org.eclipse.wst.jsdt.core/src/org/eclipse/jsdt/internal/compiler/batch/messages.properties
-./newJDT/org.eclipse.wst.jsdt.core/src/org/eclipse/jsdt/internal/compiler/parser/readableNames.properties
-./newJDT/org.eclipse.wst.jsdt.core/src/org/eclipse/jsdt/internal/compiler/problem/messages.properties
-./newJDT/org.eclipse.wst.jsdt.core/build.properties
-./newJDT/org.eclipse.wst.jsdt.core/plugin.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/ui/text.jsScript/JavaTextMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/callhierarchy/CallHierarchyMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/actions/FoldingMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/actions/ActionMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/jarimport/JarImportMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/search/SearchMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/preferences/formatter/FormatterMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/preferences/cleanup/CleanUpMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/preferences/PreferencesMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/dialogs/DialogsMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui.jsScriptdocexport/JavadocExportMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui.jsScripteditor/selectionactions/SelectionActionMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui.jsScripteditor/JavaEditorMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui.jsScripteditor/ConstructedJavaEditorMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui.jsScripteditor/saveparticipant/SaveParticipantMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/typehierarchy/TypeHierarchyMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/text.jsScriptdoc/JavaDocMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/text/correction/CorrectionMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/text/template/preferences/TemplatePreferencesMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/text/template/contentassist/TemplateContentAssistMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/text.jsScript/JavaTextMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/text.jsScript/hover/JavaHoverMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/text/TextMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/text/folding/FoldingMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/fix/SaveParticipantMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/fix/MultiFixMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/packageview/PackagesMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/filters/FilterMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/workingsets/WorkingSetMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/model/ModelMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/propertiesfileeditor/ConstructedPropertiesFileEditorMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/propertiesfileeditor/PropertiesFileEditorMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/infoviews/InfoViewMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/refactoring/nls/search/NLSSearchMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/refactoring/nls/NLSUIMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/refactoring/refactoringui.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/refactoring/reorg/ReorgMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/compare/ReplaceWithEditionAction.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/compare/CompareWithEditionAction.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/compare/CompareMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/compare/AddFromHistoryAction.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/compare/CompareAction.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/wizards/NewWizardMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/JavaUIMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/browsing/JavaBrowsingMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/ui/jarpackager/JarPackagerMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/corext/callhierarchy/CallHierarchyMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/corext/CorextMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/corext/codemanipulation/CodeGenerationMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/corext/fix/FixMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/corext/template.jsScript/JavaTemplateMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/corext/refactoring/refactoring.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/corext/refactoring/nls/changes/NLSChangesMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/src/org/eclipse/jsdt/internal/corext/refactoring/nls/NLSMessages.properties
-./newJDT/org.eclipse.wst.jsdt.ui/templates/default-templates.properties
-./newJDT/org.eclipse.wst.jsdt.ui/build.properties
-./newJDT/org.eclipse.wst.jsdt.ui/plugin.properties
-./newJDT/org.eclipse.wst.jsdt.core.tests.compiler/build.properties
-./newJDT/org.eclipse.wst.jsdt.core.tests.compiler/plugin.properties
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortCompilation.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortCompilation.js
deleted file mode 100644
index f018335..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortCompilation.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.InvocationSite;

-

-/*

- * Special unchecked exception type used 

- * to abort from the compilation process

- *

- * should only be thrown from within problem handlers.

- */

-public class AbortCompilation extends RuntimeException {

-

-	public CompilationResult compilationResult;

-	public Throwable exception;

-	public IProblem problem;

-	

-	/* special fields used to abort silently (e.g. when cancelling build process) */

-	public boolean isSilent;

-	public RuntimeException silentException;

-

-	private static final long serialVersionUID = -2047226595083244852L; // backward compatible

-	

-	public AbortCompilation() {

-		// empty

-	}

-

-	public AbortCompilation(CompilationResult compilationResult, IProblem problem) {

-		this();

-		this.compilationResult = compilationResult;

-		this.problem = problem;

-	}

-

-	public AbortCompilation(CompilationResult compilationResult, Throwable exception) {

-		this();

-		this.compilationResult = compilationResult;

-		this.exception = exception;

-	}

-

-	public AbortCompilation(boolean isSilent, RuntimeException silentException) {

-		this();

-		this.isSilent = isSilent;

-		this.silentException = silentException;

-	}

-	

-	public void updateContext(InvocationSite invocationSite, CompilationResult unitResult) {

-		if (this.problem == null) return;

-		if (this.problem.getSourceStart() != 0 || this.problem.getSourceEnd() != 0) return;

-		this.problem.setSourceStart(invocationSite.sourceStart());

-		this.problem.setSourceEnd(invocationSite.sourceEnd());

-		this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.lineSeparatorPositions, invocationSite.sourceStart()));

-		this.compilationResult = unitResult;

-	}

-

-	public void updateContext(ASTNode astNode, CompilationResult unitResult) {

-		if (this.problem == null) return;

-		if (this.problem.getSourceStart() != 0 || this.problem.getSourceEnd() != 0) return;

-		this.problem.setSourceStart(astNode.sourceStart());

-		this.problem.setSourceEnd(astNode.sourceEnd());

-		this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.lineSeparatorPositions, astNode.sourceStart()));

-		this.compilationResult = unitResult;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortCompilationUnit.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortCompilationUnit.js
deleted file mode 100644
index d5d2ba2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortCompilationUnit.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-

-/*

- * Special unchecked exception type used 

- * to abort from the compilation process

- *

- * should only be thrown from within problem handlers.

- */

-public class AbortCompilationUnit extends AbortCompilation {

-

-	private static final long serialVersionUID = -4253893529982226734L; // backward compatible

-	

-public AbortCompilationUnit(CompilationResult compilationResult, IProblem problem) {

-	super(compilationResult, problem);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortMethod.js
deleted file mode 100644
index 3fb01ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortMethod.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-

-/*

- * Special unchecked exception type used 

- * to abort from the compilation process

- *

- * should only be thrown from within problem handlers.

- */

-public class AbortMethod extends AbortType {

-	

-	private static final long serialVersionUID = -1480267398969840003L; // backward compatible	

-	

-public AbortMethod(CompilationResult compilationResult, IProblem problem) {

-	super(compilationResult, problem);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortType.js
deleted file mode 100644
index 9c8e7ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/AbortType.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-

-/*

- * Special unchecked exception type used 

- * to abort from the compilation process

- *

- * should only be thrown from within problem handlers.

- */

-public class AbortType extends AbortCompilationUnit {

-	

-	private static final long serialVersionUID = -5882417089349134385L; // backward compatible

-	

-public AbortType(CompilationResult compilationResult, IProblem problem) {

-	super(compilationResult, problem);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/DefaultProblem.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/DefaultProblem.js
deleted file mode 100644
index 8c162e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/DefaultProblem.js
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public class DefaultProblem implements ProblemSeverities, IProblem {

-	

-	private static final String LINE_DELIMITER = System.getProperty("line.separator"); //$NON-NLS-1$

-		

-	private char[] fileName;

-	private int id;

-	private int startPosition, endPosition, line;

-	private int severity;

-	private String[] arguments;

-	private String message;

-	

-	public DefaultProblem(

-		char[] originatingFileName,

-		String message,

-		int id,

-		String[] stringArguments,

-		int severity,

-		int startPosition,

-		int endPosition,

-		int line) {

-

-		this.fileName = originatingFileName;

-		this.message = message;

-		this.id = id;

-		this.arguments = stringArguments;

-		this.severity = severity;

-		this.startPosition = startPosition;

-		this.endPosition = endPosition;

-		this.line = line;

-	}

-	public String errorReportSource(char[] unitSource) {

-		//extra from the source the innacurate     token

-		//and "highlight" it using some underneath ^^^^^

-		//put some context around too.

-

-		//this code assumes that the font used in the console is fixed size

-

-		//sanity .....

-		if ((this.startPosition > this.endPosition)

-			|| ((this.startPosition < 0) && (this.endPosition < 0)))

-			return Util.bind("problem.noSourceInformation"); //$NON-NLS-1$

-

-		StringBuffer errorBuffer = new StringBuffer(" "); //$NON-NLS-1$

-		errorBuffer.append(Util.bind("problem.atLine", String.valueOf(this.line))); //$NON-NLS-1$

-		errorBuffer.append(LINE_DELIMITER).append("\t"); //$NON-NLS-1$

-		

-		char c;

-		final char SPACE = '\u0020';

-		final char MARK = '^';

-		final char TAB = '\t';

-		//the next code tries to underline the token.....

-		//it assumes (for a good display) that token source does not

-		//contain any \r \n. This is false on statements ! 

-		//(the code still works but the display is not optimal !)

-

-		// expand to line limits

-		int length = unitSource.length, begin, end;

-		for (begin = this.startPosition >= length ? length - 1 : this.startPosition; begin > 0; begin--) {

-			if ((c = unitSource[begin - 1]) == '\n' || c == '\r') break;

-		}

-		for (end = this.endPosition >= length ? length - 1 : this.endPosition ; end+1 < length; end++) {

-			if ((c = unitSource[end + 1]) == '\r' || c == '\n') break;

-		}

-		

-		// trim left and right spaces/tabs

-		while ((c = unitSource[begin]) == ' ' || c == '\t') begin++;

-		//while ((c = unitSource[end]) == ' ' || c == '\t') end--; TODO (philippe) should also trim right, but all tests are to be updated

-		

-		// copy source

-		errorBuffer.append(unitSource, begin, end-begin+1);

-		errorBuffer.append(LINE_DELIMITER).append("\t"); //$NON-NLS-1$

-

-		// compute underline

-		for (int i = begin; i <this.startPosition; i++) {

-			errorBuffer.append((unitSource[i] == TAB) ? TAB : SPACE);

-		}

-		for (int i = this.startPosition; i <= (this.endPosition >= length ? length - 1 : this.endPosition); i++) {

-			errorBuffer.append(MARK);

-		}

-		return errorBuffer.toString();

-	}

-

-	/**

-	 * Answer back the original arguments recorded into the problem.

-	 * @return java.lang.String[]

-	 */

-	public String[] getArguments() {

-

-		return this.arguments;

-	}

-

-	/**

-	 * Answer the type of problem.

-	 * @see org.eclipse.wst.jsdt.core.compiler.IProblem#getID()

-	 * @return int

-	 */

-	public int getID() {

-

-		return this.id;

-	}

-

-	/**

-	 * Answer a localized, human-readable message string which describes the problem.

-	 * @return java.lang.String

-	 */

-	public String getMessage() {

-

-		return this.message;

-	}

-

-	/**

-	 * Answer the file name in which the problem was found.

-	 * @return char[]

-	 */

-	public char[] getOriginatingFileName() {

-

-		return this.fileName;

-	}

-

-	/**

-	 * Answer the end position of the problem (inclusive), or -1 if unknown.

-	 * @return int

-	 */

-	public int getSourceEnd() {

-

-		return this.endPosition;

-	}

-

-	/**

-	 * Answer the line number in source where the problem begins.

-	 * @return int

-	 */

-	public int getSourceLineNumber() {

-

-		return this.line;

-	}

-

-	/**

-	 * Answer the start position of the problem (inclusive), or -1 if unknown.

-	 * @return int

-	 */

-	public int getSourceStart() {

-

-		return this.startPosition;

-	}

-

-	/*

-	 * Helper method: checks the severity to see if the Error bit is set.

-	 * @return boolean

-	 */

-	public boolean isError() {

-

-		return (this.severity & ProblemSeverities.Error) != 0;

-	}

-

-	/*

-	 * Helper method: checks the severity to see if the Error bit is not set.

-	 * @return boolean

-	 */

-	public boolean isWarning() {

-

-		return (this.severity & ProblemSeverities.Error) == 0;

-	}

-

-	public void setOriginatingFileName(char[] fileName) {

-		this.fileName = fileName;

-	}

-	

-	/**

-	 * Set the end position of the problem (inclusive), or -1 if unknown.

-	 *

-	 * Used for shifting problem positions.

-	 * @param sourceEnd the new value of the sourceEnd of the receiver

-	 */

-	public void setSourceEnd(int sourceEnd) {

-

-		this.endPosition = sourceEnd;

-	}

-

-	/**

-	 * Set the line number in source where the problem begins.

-	 * @param lineNumber the new value of the line number of the receiver

-	 */

-	public void setSourceLineNumber(int lineNumber) {

-

-		this.line = lineNumber;

-	}

-

-	/**

-	 * Set the start position of the problem (inclusive), or -1 if unknown.

-	 *

-	 * Used for shifting problem positions.

-	 * @param sourceStart the new value of the source start position of the receiver

-	 */

-	public void setSourceStart(int sourceStart) {

-

-		this.startPosition = sourceStart;

-	}

-

-	public String toString() {

-

-		String s = "Pb(" + (this.id & IgnoreCategoriesMask) + ") "; //$NON-NLS-1$ //$NON-NLS-2$

-		if (this.message != null) {

-			s += this.message;

-		} else {

-			if (this.arguments != null)

-				for (int i = 0; i < this.arguments.length; i++)

-					s += " " + this.arguments[i]; //$NON-NLS-1$

-		}

-		return s;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/DefaultProblemFactory.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/DefaultProblemFactory.js
deleted file mode 100644
index d0aa209..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/DefaultProblemFactory.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-import java.util.Enumeration;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-

-import org.eclipse.wst.jsdt.core.compiler.*;

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.IProblemFactory;

-import org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfInt;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public class DefaultProblemFactory implements IProblemFactory {

-

-	public HashtableOfInt messageTemplates;

-	private Locale locale;

-	private static HashtableOfInt DEFAULT_LOCALE_TEMPLATES;

-	private final static char[] DOUBLE_QUOTES = "''".toCharArray(); //$NON-NLS-1$

-	private final static char[] SINGLE_QUOTE = "'".toCharArray(); //$NON-NLS-1$

-

-public DefaultProblemFactory() {

-	this(Locale.getDefault());

-}

-/**

- * @param loc the locale used to get the right message

- */

-public DefaultProblemFactory(Locale loc) {

-	this.locale = loc;

-	if (Locale.getDefault().equals(loc)){

-		if (DEFAULT_LOCALE_TEMPLATES == null){

-			DEFAULT_LOCALE_TEMPLATES = loadMessageTemplates(loc);

-		}

-		this.messageTemplates = DEFAULT_LOCALE_TEMPLATES;

-	} else {

-		this.messageTemplates = loadMessageTemplates(loc);

-	}

-}

-/**

- * Answer a new IProblem created according to the parameters value

- * <ul>

- * <li>originatingFileName the name of the file name from which the problem is originated

- * <li>problemId the problem id

- * <li>problemArguments the fully qualified arguments recorded inside the problem

- * <li>messageArguments the arguments needed to set the error message (shorter names than problemArguments ones)

- * <li>severity the severity of the problem

- * <li>startPosition the starting position of the problem

- * <li>endPosition the end position of the problem

- * <li>lineNumber the line on which the problem occured

- * </ul>

- * @param originatingFileName char[]

- * @param problemId int

- * @param problemArguments String[]

- * @param messageArguments String[]

- * @param severity int

- * @param startPosition int

- * @param endPosition int

- * @param lineNumber int

- * @return org.eclipse.wst.jsdt.internal.compiler.IProblem

- */

-public IProblem createProblem(

-	char[] originatingFileName, 

-	int problemId, 

-	String[] problemArguments, 

-	String[] messageArguments, 

-	int severity, 

-	int startPosition, 

-	int endPosition, 

-	int lineNumber) {

-

-	return new DefaultProblem(

-		originatingFileName, 

-		this.getLocalizedMessage(problemId, messageArguments),

-		problemId, 

-		problemArguments, 

-		severity, 

-		startPosition, 

-		endPosition, 

-		lineNumber); 

-}

-private final static int keyFromID(int id) {

-    return id + 1; // keys are offsetted by one in table, since it cannot handle 0 key

-}

-/**

- * Answer the locale used to retrieve the error messages

- * @return java.util.Locale

- */

-public Locale getLocale() {

-	return this.locale;

-}

-public final String getLocalizedMessage(int id, String[] problemArguments) {

-	String message = (String) this.messageTemplates.get(keyFromID(id & IProblem.IgnoreCategoriesMask)); 

-	if (message == null) {

-		return "Unable to retrieve the error message for problem id: " //$NON-NLS-1$

-			+ (id & IProblem.IgnoreCategoriesMask)

-			+ ". Check compiler resources.";  //$NON-NLS-1$

-	}

-

-	// for compatibility with MessageFormat which eliminates double quotes in original message

-	char[] messageWithNoDoubleQuotes =

-		CharOperation.replace(message.toCharArray(), DOUBLE_QUOTES, SINGLE_QUOTE);

-

-	if (problemArguments == null) return new String(messageWithNoDoubleQuotes);

-

-	int length = messageWithNoDoubleQuotes.length;

-	int start = 0;

-	int end = length;

-	StringBuffer output = null;

-	if ((id & IProblem.Javadoc) != 0) {

-		if (output == null) output = new StringBuffer(10+length+problemArguments.length*20);

-		output.append((String) this.messageTemplates.get(keyFromID(IProblem.JavadocMessagePrefix & IProblem.IgnoreCategoriesMask)));

-	}

-	while (true) {

-		if ((end = CharOperation.indexOf('{', messageWithNoDoubleQuotes, start)) > -1) {

-			if (output == null) output = new StringBuffer(length+problemArguments.length*20);

-			output.append(messageWithNoDoubleQuotes, start, end - start);

-			if ((start = CharOperation.indexOf('}', messageWithNoDoubleQuotes, end + 1)) > -1) {

-				int index = -1;

-				String argId = new String(messageWithNoDoubleQuotes, end + 1, start - end - 1);

-				try {

-					index = Integer.parseInt(argId);

-					output.append(problemArguments[index]);

-				} catch (NumberFormatException nfe) {

-					output.append(messageWithNoDoubleQuotes, end + 1, start - end);

-				} catch (ArrayIndexOutOfBoundsException e) {

-					return "Cannot bind message for problem (id: " //$NON-NLS-1$

-						+ (id & IProblem.IgnoreCategoriesMask)

-						+ ") \""  //$NON-NLS-1$

-						+ message

-						+ "\" with arguments: {" //$NON-NLS-1$

-						+ Util.toString(problemArguments)

-						+"}"; //$NON-NLS-1$

-				}

-				start++;

-			} else {

-				output.append(messageWithNoDoubleQuotes, end, length);

-				break;

-			}

-		} else {

-			if (output == null) return new String(messageWithNoDoubleQuotes);

-			output.append(messageWithNoDoubleQuotes, start, length - start);

-			break;

-		}

-	}

-

-	return output.toString();

-}

-/**

- * @param problem org.eclipse.wst.jsdt.internal.compiler.IProblem

- * @return String

- */

-public final String localizedMessage(IProblem problem) {

-	return getLocalizedMessage(problem.getID(), problem.getArguments());

-}

-

-/**

- * This method initializes the MessageTemplates class variable according

- * to the current Locale.

- * @param loc Locale

- * @return HashtableOfInt

- */

-public static HashtableOfInt loadMessageTemplates(Locale loc) {

-	ResourceBundle bundle = null;

-	String bundleName = "org.eclipse.wst.jsdt.internal.compiler.problem.messages"; //$NON-NLS-1$

-	try {

-		bundle = ResourceBundle.getBundle(bundleName, loc); 

-	} catch(MissingResourceException e) {

-		System.out.println("Missing resource : " + bundleName.replace('.', '/') + ".properties for locale " + loc); //$NON-NLS-1$//$NON-NLS-2$

-		throw e;

-	}

-	HashtableOfInt templates = new HashtableOfInt(700);

-	Enumeration keys = bundle.getKeys();

-	while (keys.hasMoreElements()) {

-	    String key = (String)keys.nextElement();

-	    try {

-	        int messageID = Integer.parseInt(key);

-			templates.put(keyFromID(messageID), bundle.getString(key));

-	    } catch(NumberFormatException e) {

-	        // key ill-formed

-		} catch (MissingResourceException e) {

-			// available ID

-	    }

-	}

-	return templates;

-}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemHandler.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemHandler.js
deleted file mode 100644
index 535a34d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemHandler.js
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.IErrorHandlingPolicy;

-import org.eclipse.wst.jsdt.internal.compiler.IProblemFactory;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-

-/*

- * Compiler error handler, responsible to determine whether

- * a problem is actually a warning or an error; also will

- * decide whether the compilation task can be processed further or not.

- *

- * Behavior : will request its current policy if need to stop on

- *	first error, and if should proceed (persist) with problems.

- */

-

-public class ProblemHandler implements ProblemSeverities {

-

-	public final static String[] NoArgument = new String[0];

-	

-	final public IErrorHandlingPolicy policy;

-	public final IProblemFactory problemFactory;

-	public final CompilerOptions options;

-/*

- * Problem handler can be supplied with a policy to specify

- * its behavior in error handling. Also see static methods for

- * built-in policies.

- *

- */

-public ProblemHandler(IErrorHandlingPolicy policy, CompilerOptions options, IProblemFactory problemFactory) {

-	this.policy = policy;

-	this.problemFactory = problemFactory;

-	this.options = options;

-}

-/*

- * Given the current configuration, answers which category the problem

- * falls into:

- *		Error | Warning | Ignore

- */

-public int computeSeverity(int problemId){

-	

-	return Error; // by default all problems are errors

-}

-public IProblem createProblem(

-	char[] fileName, 

-	int problemId, 

-	String[] problemArguments, 

-	String[] messageArguments,

-	int severity, 

-	int problemStartPosition, 

-	int problemEndPosition, 

-	int lineNumber) {

-

-	return this.problemFactory.createProblem(

-		fileName, 

-		problemId, 

-		problemArguments, 

-		messageArguments,

-		severity, 

-		problemStartPosition, 

-		problemEndPosition, 

-		lineNumber); 

-}

-public void handle(

-	int problemId, 

-	String[] problemArguments, 

-	String[] messageArguments,

-	int severity, 

-	int problemStartPosition, 

-	int problemEndPosition, 

-	ReferenceContext referenceContext, 

-	CompilationResult unitResult) {

-

-	if (severity == Ignore)

-		return;

-

-	// if no reference context, we need to abort from the current compilation process

-	if (referenceContext == null) {

-		if ((severity & Error) != 0) { // non reportable error is fatal

-			IProblem problem = this.createProblem(null, 	problemId, 	problemArguments, messageArguments, severity, 0, 0, 0);			

-			throw new AbortCompilation(null, problem);

-		} else {

-			return; // ignore non reportable warning

-		}

-	}

-

-	IProblem problem = 

-		this.createProblem(

-			unitResult.getFileName(), 

-			problemId, 

-			problemArguments, 

-			messageArguments,

-			severity, 

-			problemStartPosition, 

-			problemEndPosition, 

-			problemStartPosition >= 0

-				? searchLineNumber(unitResult.lineSeparatorPositions, problemStartPosition)

-				: 0);

-	if (problem == null) return; // problem couldn't be created, ignore

-	

-	switch (severity & Error) {

-		case Error :

-			this.record(problem, unitResult, referenceContext);

-			referenceContext.tagAsHavingErrors();

-

-			// should abort ?

-			int abortLevel;

-			if ((abortLevel = 

-				(this.policy.stopOnFirstError() ? AbortCompilation : severity & Abort)) != 0) {

-

-				referenceContext.abort(abortLevel, problem);

-			}

-			break;

-		case Warning :

-			this.record(problem, unitResult, referenceContext);

-			break;

-	}

-}

-/**

- * Standard problem handling API, the actual severity (warning/error/ignore) is deducted

- * from the problem ID and the current compiler options.

- */

-public void handle(

-	int problemId, 

-	String[] problemArguments, 

-	String[] messageArguments,

-	int problemStartPosition, 

-	int problemEndPosition, 

-	ReferenceContext referenceContext, 

-	CompilationResult unitResult) {

-

-	this.handle(

-		problemId,

-		problemArguments,

-		messageArguments,

-		this.computeSeverity(problemId), // severity inferred using the ID

-		problemStartPosition,

-		problemEndPosition,

-		referenceContext,

-		unitResult);

-}

-public void record(IProblem problem, CompilationResult unitResult, ReferenceContext referenceContext) {

-	unitResult.record(problem, referenceContext);

-}

-/**

- * Search the line number corresponding to a specific position

- */

-public static final int searchLineNumber(int[] startLineIndexes, int position) {

-	if (startLineIndexes == null)

-		return 1;

-	int length = startLineIndexes.length;

-	if (length == 0)

-		return 1;

-	int g = 0, d = length - 1;

-	int m = 0;

-	while (g <= d) {

-		m = (g + d) /2;

-		if (position < startLineIndexes[m]) {

-			d = m-1;

-		} else if (position > startLineIndexes[m]) {

-			g = m+1;

-		} else {

-			return m + 1;

-		}

-	}

-	if (position < startLineIndexes[m]) {

-		return m+1;

-	}

-	return m+2;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemReporter.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemReporter.js
deleted file mode 100644
index 58f42ac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemReporter.js
+++ /dev/null
@@ -1,4731 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.IProblem;

-import org.eclipse.wst.jsdt.internal.compiler.*;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.env.IConstants;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.*;

-import org.eclipse.wst.jsdt.internal.compiler.parser.*;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-public class ProblemReporter extends ProblemHandler implements ProblemReasons {

-	

-	public ReferenceContext referenceContext;

-	

-public ProblemReporter(IErrorHandlingPolicy policy, CompilerOptions options, IProblemFactory problemFactory) {

-	super(policy, options, problemFactory);

-}

-public void abortDueToInternalError(String errorMessage) {

-	String[] arguments = new String[] {errorMessage};

-	this.handle(

-		IProblem.Unclassified,

-		arguments,

-		arguments,

-		Error | Abort,

-		0,

-		0);

-}

-public void abortDueToInternalError(String errorMessage, ASTNode location) {

-	String[] arguments = new String[] {errorMessage};

-	this.handle(

-		IProblem.Unclassified,

-		arguments,

-		arguments,

-		Error | Abort,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void abstractMethodCannotBeOverridden(SourceTypeBinding type, MethodBinding concreteMethod) {

-

-	this.handle(

-		// %1 must be abstract since it cannot override the inherited package-private abstract method %2

-		IProblem.AbstractMethodCannotBeOverridden,

-		new String[] {

-			new String(type.sourceName()), 

-			new String(

-					CharOperation.concat(

-						concreteMethod.declaringClass.readableName(),

-						concreteMethod.readableName(),

-						'.'))},

-		new String[] {

-			new String(type.sourceName()), 

-			new String(

-					CharOperation.concat(

-						concreteMethod.declaringClass.shortReadableName(),

-						concreteMethod.shortReadableName(),

-						'.'))},

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void abstractMethodInAbstractClass(SourceTypeBinding type, AbstractMethodDeclaration methodDecl) {

-

-	String[] arguments = new String[] {new String(type.sourceName()), new String(methodDecl.selector)};

-	this.handle(

-		IProblem.AbstractMethodInAbstractClass,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void abstractMethodMustBeImplemented(SourceTypeBinding type, MethodBinding abstractMethod) {

-	this.handle(

-		// Must implement the inherited abstract method %1

-		// 8.4.3 - Every non-abstract subclass of an abstract type, A, must provide a concrete implementation of all of A's methods.

-		IProblem.AbstractMethodMustBeImplemented,

-		new String[] {

-			new String(

-				CharOperation.concat(

-					abstractMethod.declaringClass.readableName(),

-					abstractMethod.readableName(),

-					'.'))},

-		new String[] {

-			new String(

-				CharOperation.concat(

-					abstractMethod.declaringClass.shortReadableName(),

-					abstractMethod.shortReadableName(),

-					'.'))},

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void abstractMethodNeedingNoBody(AbstractMethodDeclaration method) {

-	this.handle(

-		IProblem.BodyForAbstractMethod,

-		NoArgument,

-		NoArgument,

-		method.sourceStart,

-		method.sourceEnd,

-		method,

-		method.compilationResult());

-}

-public void alreadyDefinedLabel(char[] labelName, ASTNode location) {

-	String[] arguments = new String[] {new String(labelName)};

-	this.handle(

-		IProblem.DuplicateLabel,

-		arguments,

-		arguments,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void annotationTypeMemberDeclarationWithConstructorName(AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration) {

-	this.handle(

-		IProblem.AnnotationButConstructorName,

-		NoArgument,

-		NoArgument,

-		annotationTypeMemberDeclaration.sourceStart,

-		annotationTypeMemberDeclaration.sourceEnd);

-}

-public void anonymousClassCannotExtendFinalClass(Expression expression, TypeBinding type) {

-	this.handle(

-		IProblem.AnonymousClassCannotExtendFinalClass,

-		new String[] {new String(type.readableName())},

-		new String[] {new String(type.shortReadableName())},

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void argumentTypeCannotBeVoid(SourceTypeBinding type, AbstractMethodDeclaration methodDecl, Argument arg) {

-	String[] arguments = new String[] {new String(methodDecl.selector), new String(arg.name)};

-	this.handle(

-		IProblem.ArgumentTypeCannotBeVoid,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void argumentTypeCannotBeVoidArray(SourceTypeBinding type, AbstractMethodDeclaration methodDecl, Argument arg) {

-	String[] arguments = new String[] {new String(methodDecl.selector), new String(arg.name)};

-	this.handle(

-		IProblem.ArgumentTypeCannotBeVoidArray,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void arrayConstantsOnlyInArrayInitializers(int sourceStart, int sourceEnd) {

-	this.handle(

-		IProblem.ArrayConstantsOnlyInArrayInitializers,

-		NoArgument,

-		NoArgument,

-		sourceStart,

-		sourceEnd);

-}

-public void assignmentHasNoEffect(Assignment assignment, char[] name){

-	String[] arguments = new String[] { new String(name) };	

-	this.handle(

-			IProblem.AssignmentHasNoEffect,

-			arguments,

-			arguments,

-			assignment.sourceStart,

-			assignment.sourceEnd);

-}

-public void attemptToReturnNonVoidExpression(ReturnStatement returnStatement, TypeBinding expectedType) {

-	this.handle(

-		IProblem.VoidMethodReturnsValue,

-		new String[] {new String(expectedType.readableName())},

-		new String[] {new String(expectedType.shortReadableName())},

-		returnStatement.sourceStart,

-		returnStatement.sourceEnd);

-}

-public void attemptToReturnVoidValue(ReturnStatement returnStatement) {

-	this.handle(

-		IProblem.MethodReturnsVoid,

-		NoArgument,

-		NoArgument,

-		returnStatement.sourceStart,

-		returnStatement.sourceEnd);

-}

-public void boundsMustBeAnInterface(ASTNode location, TypeBinding type) {

-	this.handle(

-		IProblem.BoundsMustBeAnInterface,

-		new String[] {new String(type.readableName())},

-		new String[] {new String(type.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void bytecodeExceeds64KLimit(AbstractMethodDeclaration location) {

-	if (location.isConstructor()) {

-		this.handle(

-			IProblem.BytecodeExceeds64KLimitForConstructor,

-			new String[] {new String(location.selector), parametersAsString(location.binding.parameters, false)},

-			new String[] {new String(location.selector), parametersAsString(location.binding.parameters, true)},

-			Error | Abort,

-			location.sourceStart,

-			location.sourceEnd);

-	} else {

-		this.handle(

-			IProblem.BytecodeExceeds64KLimit,

-			new String[] {new String(location.selector), parametersAsString(location.binding.parameters, false)},

-			new String[] {new String(location.selector), parametersAsString(location.binding.parameters, true)},

-			Error | Abort,

-			location.sourceStart,

-			location.sourceEnd);

-	}

-}

-public void bytecodeExceeds64KLimit(TypeDeclaration location) {

-	this.handle(

-		IProblem.BytecodeExceeds64KLimitForClinit,

-		NoArgument,

-		NoArgument,

-		Error | Abort,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void cannotAllocateVoidArray(Expression expression) {

-	this.handle(

-		IProblem.CannotAllocateVoidArray,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void cannotAssignToFinalField(FieldBinding field, ASTNode location) {

-	this.handle(

-		IProblem.FinalFieldAssignment,

-		new String[] {

-			(field.declaringClass == null ? "array" : new String(field.declaringClass.readableName())), //$NON-NLS-1$

-			new String(field.readableName())},

-		new String[] {

-			(field.declaringClass == null ? "array" : new String(field.declaringClass.shortReadableName())), //$NON-NLS-1$

-			new String(field.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void cannotAssignToFinalLocal(LocalVariableBinding local, ASTNode location) {

-	String[] arguments = new String[] { new String(local.readableName())};

-	this.handle(

-		IProblem.NonBlankFinalLocalAssignment,

-		arguments,

-		arguments,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void cannotAssignToFinalOuterLocal(LocalVariableBinding local, ASTNode location) {

-	String[] arguments = new String[] {new String(local.readableName())};

-	this.handle(

-		IProblem.FinalOuterLocalAssignment,

-		arguments,

-		arguments,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void cannotDeclareLocalInterface(char[] interfaceName, int sourceStart, int sourceEnd) {

-	String[] arguments = new String[] {new String(interfaceName)};

-	this.handle(

-		IProblem.CannotDefineInterfaceInLocalType,

-		arguments,

-		arguments,

-		sourceStart,

-		sourceEnd);

-}

-public void cannotDefineDimensionsAndInitializer(ArrayAllocationExpression expresssion) {

-	this.handle(

-		IProblem.CannotDefineDimensionExpressionsWithInit,

-		NoArgument,

-		NoArgument,

-		expresssion.sourceStart,

-		expresssion.sourceEnd);

-}

-public void cannotDireclyInvokeAbstractMethod(MessageSend messageSend, MethodBinding method) {

-	this.handle(

-		IProblem.DirectInvocationOfAbstractMethod,

-		new String[] {new String(method.declaringClass.readableName()), new String(method.selector), parametersAsString(method.parameters, false)},

-		new String[] {new String(method.declaringClass.shortReadableName()), new String(method.selector), parametersAsString(method.parameters, true)},

-		messageSend.sourceStart,

-		messageSend.sourceEnd);

-}

-public void cannotImportPackage(ImportReference importRef) {

-	String[] arguments = new String[] {CharOperation.toString(importRef.tokens)};

-	this.handle(

-		IProblem.CannotImportPackage,

-		arguments,

-		arguments,

-		importRef.sourceStart,

-		importRef.sourceEnd);

-}

-public void cannotInstantiate(TypeReference typeRef, TypeBinding type) {

-	this.handle(

-		IProblem.InvalidClassInstantiation,

-		new String[] {new String(type.readableName())},

-		new String[] {new String(type.shortReadableName())},

-		typeRef.sourceStart,

-		typeRef.sourceEnd);

-}

-public void cannotReferToNonFinalOuterLocal(LocalVariableBinding local, ASTNode location) {

-	String[] arguments =new String[]{ new String(local.readableName())};

-	this.handle(

-		IProblem.OuterLocalMustBeFinal,

-		arguments,

-		arguments,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void cannotReturnInInitializer(ASTNode location) {

-	this.handle(

-		IProblem.CannotReturnInInitializer,

-		NoArgument,

-		NoArgument,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void cannotThrowNull(ThrowStatement statement) {

-	this.handle(

-		IProblem.CannotThrowNull,

-		NoArgument,

-		NoArgument,

-		statement.sourceStart,

-		statement.sourceEnd);

-}

-public void cannotThrowType(SourceTypeBinding type, AbstractMethodDeclaration methodDecl, TypeReference exceptionType, TypeBinding expectedType) {

-	this.handle(

-		IProblem.CannotThrowType,

-		new String[] {new String(expectedType.readableName())},

-		new String[] {new String(expectedType.shortReadableName())},

-		exceptionType.sourceStart,

-		exceptionType.sourceEnd);

-}

-public void cannotUseSuperInCodeSnippet(int start, int end) {

-	this.handle(

-		IProblem.CannotUseSuperInCodeSnippet,

-		NoArgument,

-		NoArgument,

-		Error | Abort,

-		start,

-		end);

-}

-public void cannotUseSuperInJavaLangObject(ASTNode reference) {

-	this.handle(

-		IProblem.ObjectHasNoSuperclass,

-		NoArgument,

-		NoArgument,

-		reference.sourceStart,

-		reference.sourceEnd);

-}

-public void caseExpressionMustBeConstant(Expression expression) {

-	this.handle(

-		IProblem.NonConstantExpression,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void classExtendFinalClass(SourceTypeBinding type, TypeReference superclass, TypeBinding superTypeBinding) {

-	String name = new String(type.sourceName());

-	String superTypeFullName = new String(superTypeBinding.readableName());

-	String superTypeShortName = new String(superTypeBinding.shortReadableName());

-	if (superTypeShortName.equals(name)) superTypeShortName = superTypeFullName;

-	this.handle(

-		IProblem.ClassExtendFinalClass,

-		new String[] {superTypeFullName, name},

-		new String[] {superTypeShortName, name},

-		superclass.sourceStart,

-		superclass.sourceEnd);

-}

-public void codeSnippetMissingClass(String missing, int start, int end) {

-	String[] arguments = new String[]{missing};

-	this.handle(

-		IProblem.CodeSnippetMissingClass,

-		arguments,

-		arguments,

-		Error | Abort,

-		start,

-		end);

-}

-public void codeSnippetMissingMethod(String className, String missingMethod, String argumentTypes, int start, int end) {

-	String[] arguments = new String[]{ className, missingMethod, argumentTypes };

-	this.handle(

-		IProblem.CodeSnippetMissingMethod,

-		arguments,

-		arguments,

-		Error | Abort,

-		start,

-		end);

-}

-/*

- * Given the current configuration, answers which category the problem

- * falls into:

- *		Error | Warning | Ignore

- */

-public int computeSeverity(int problemId){

-

-	// severity can have been preset on the problem

-//	if ((problem.severity & Fatal) != 0){

-//		return Error;

-//	}

-

-	// if not then check whether it is a configurable problem

-	switch(problemId){

-

-		case IProblem.MaskedCatch : 

-			return this.options.getSeverity(CompilerOptions.MaskedCatchBlock);

-

-		case IProblem.UnusedImport :

-			return this.options.getSeverity(CompilerOptions.UnusedImport);

-			

-		case IProblem.MethodButWithConstructorName :

-			return this.options.getSeverity(CompilerOptions.MethodWithConstructorName);

-		

-		case IProblem.OverridingNonVisibleMethod :

-			return this.options.getSeverity(CompilerOptions.OverriddenPackageDefaultMethod);

-

-		case IProblem.IncompatibleReturnTypeForNonInheritedInterfaceMethod :

-		case IProblem.IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod :

-			return this.options.getSeverity(CompilerOptions.IncompatibleNonInheritedInterfaceMethod);

-

-		case IProblem.OverridingDeprecatedMethod :				

-		case IProblem.UsingDeprecatedType :				

-		case IProblem.UsingDeprecatedMethod :

-		case IProblem.UsingDeprecatedConstructor :

-		case IProblem.UsingDeprecatedField :

-			return this.options.getSeverity(CompilerOptions.UsingDeprecatedAPI);

-		

-		case IProblem.LocalVariableIsNeverUsed :

-			return this.options.getSeverity(CompilerOptions.UnusedLocalVariable);

-		

-		case IProblem.ArgumentIsNeverUsed :

-			return this.options.getSeverity(CompilerOptions.UnusedArgument);

-

-		case IProblem.NoImplicitStringConversionForCharArrayExpression :

-			return this.options.getSeverity(CompilerOptions.NoImplicitStringConversion);

-

-		case IProblem.NeedToEmulateFieldReadAccess :

-		case IProblem.NeedToEmulateFieldWriteAccess :

-		case IProblem.NeedToEmulateMethodAccess :

-		case IProblem.NeedToEmulateConstructorAccess :			

-			return this.options.getSeverity(CompilerOptions.AccessEmulation);

-

-		case IProblem.NonExternalizedStringLiteral :

-			return this.options.getSeverity(CompilerOptions.NonExternalizedString);

-

-		case IProblem.UseAssertAsAnIdentifier :

-			return this.options.getSeverity(CompilerOptions.AssertUsedAsAnIdentifier);

-		case IProblem.UseEnumAsAnIdentifier :

-			return this.options.getSeverity(CompilerOptions.EnumUsedAsAnIdentifier);

-

-		case IProblem.NonStaticAccessToStaticMethod :

-		case IProblem.NonStaticAccessToStaticField :

-			return this.options.getSeverity(CompilerOptions.NonStaticAccessToStatic);

-

-		case IProblem.IndirectAccessToStaticMethod :

-		case IProblem.IndirectAccessToStaticField :

-		case IProblem.IndirectAccessToStaticType :

-			return this.options.getSeverity(CompilerOptions.IndirectStaticAccess);

-

-		case IProblem.AssignmentHasNoEffect:

-			return this.options.getSeverity(CompilerOptions.NoEffectAssignment);

-

-		case IProblem.UnusedPrivateConstructor:

-		case IProblem.UnusedPrivateMethod:

-		case IProblem.UnusedPrivateField:

-		case IProblem.UnusedPrivateType:

-			return this.options.getSeverity(CompilerOptions.UnusedPrivateMember);

-

-		case IProblem.Task :

-			return Warning;			

-

-		case IProblem.LocalVariableHidingLocalVariable:

-		case IProblem.LocalVariableHidingField:

-		case IProblem.ArgumentHidingLocalVariable:

-		case IProblem.ArgumentHidingField:

-			return this.options.getSeverity(CompilerOptions.LocalVariableHiding);

-

-		case IProblem.FieldHidingLocalVariable:

-		case IProblem.FieldHidingField:

-			return this.options.getSeverity(CompilerOptions.FieldHiding);

-

-		case IProblem.PossibleAccidentalBooleanAssignment:

-			return this.options.getSeverity(CompilerOptions.AccidentalBooleanAssign);

-

-		case IProblem.SuperfluousSemicolon:

-		case IProblem.EmptyControlFlowStatement:

-			return this.options.getSeverity(CompilerOptions.EmptyStatement);

-

-		case IProblem.UndocumentedEmptyBlock:

-			return this.options.getSeverity(CompilerOptions.UndocumentedEmptyBlock);

-			

-		case IProblem.UnnecessaryCast:

-		case IProblem.UnnecessaryArgumentCast:

-		case IProblem.UnnecessaryInstanceof:

-			return this.options.getSeverity(CompilerOptions.UnnecessaryTypeCheck);

-			

-		case IProblem.FinallyMustCompleteNormally:

-			return this.options.getSeverity(CompilerOptions.FinallyBlockNotCompleting);

-			

-		case IProblem.UnusedMethodDeclaredThrownException:

-		case IProblem.UnusedConstructorDeclaredThrownException:

-			return this.options.getSeverity(CompilerOptions.UnusedDeclaredThrownException);

-

-		case IProblem.UnqualifiedFieldAccess:

-			return this.options.getSeverity(CompilerOptions.UnqualifiedFieldAccess);

-		

-		case IProblem.UnnecessaryElse:

-			return this.options.getSeverity(CompilerOptions.UnnecessaryElse);

-

-		case IProblem.UnsafeRawConstructorInvocation:

-		case IProblem.UnsafeRawMethodInvocation:

-		case IProblem.UnsafeRawConversion:

-		case IProblem.UnsafeRawFieldAssignment:

-		case IProblem.UnsafeGenericCast:

-		case IProblem.UnsafeReturnTypeOverride:

-			return this.options.getSeverity(CompilerOptions.UnsafeTypeOperation);

-

-		case IProblem.FinalBoundForTypeVariable:

-		    return this.options.getSeverity(CompilerOptions.FinalParameterBound);

-

-		case IProblem.MissingSerialVersion:

-			return this.options.getSeverity(CompilerOptions.MissingSerialVersion);

-		

-		case IProblem.ForbiddenReference:

-			return this.options.getSeverity(CompilerOptions.ForbiddenReference);

-		

-		/*

-		 * Javadoc syntax errors

-		 */

-		case IProblem.JavadocUnexpectedTag:

-		case IProblem.JavadocDuplicateReturnTag:

-		case IProblem.JavadocInvalidThrowsClass:

-		case IProblem.JavadocInvalidReference:

-		case IProblem.JavadocMalformedSeeReference:

-		case IProblem.JavadocInvalidSeeHref:

-		case IProblem.JavadocInvalidSeeArgs:

-		case IProblem.JavadocInvalidTag:

-		case IProblem.JavadocUnterminatedInlineTag:

-		case IProblem.JavadocMissingHashCharacter:

-		case IProblem.JavadocEmptyReturnTag:

-		case IProblem.JavadocUnexpectedText:

-			if (this.options.docCommentSupport) {

-				return this.options.getSeverity(CompilerOptions.InvalidJavadoc);

-			} else {

-				return ProblemSeverities.Ignore;

-			}

-

-		/*

-		 * Javadoc tags resolved references errors

-		 */

-		case IProblem.JavadocInvalidParamName:

-		case IProblem.JavadocDuplicateParamName:

-		case IProblem.JavadocMissingParamName:

-		case IProblem.JavadocInvalidThrowsClassName:

-		case IProblem.JavadocDuplicateThrowsClassName:

-		case IProblem.JavadocMissingThrowsClassName:

-		case IProblem.JavadocMissingReference:

-		case IProblem.JavadocInvalidValueReference:

-		case IProblem.JavadocUsingDeprecatedField:

-		case IProblem.JavadocUsingDeprecatedConstructor:

-		case IProblem.JavadocUsingDeprecatedMethod:

-		case IProblem.JavadocUsingDeprecatedType:

-		case IProblem.JavadocUndefinedField:

-		case IProblem.JavadocNotVisibleField:

-		case IProblem.JavadocAmbiguousField:

-		case IProblem.JavadocUndefinedConstructor:

-		case IProblem.JavadocNotVisibleConstructor:

-		case IProblem.JavadocAmbiguousConstructor:

-		case IProblem.JavadocUndefinedMethod:

-		case IProblem.JavadocNotVisibleMethod:

-		case IProblem.JavadocAmbiguousMethod:

-		case IProblem.JavadocAmbiguousMethodReference:

-		case IProblem.JavadocParameterMismatch:

-		case IProblem.JavadocUndefinedType:

-		case IProblem.JavadocNotVisibleType:

-		case IProblem.JavadocAmbiguousType:

-		case IProblem.JavadocInternalTypeNameProvided:

-		case IProblem.JavadocNoMessageSendOnArrayType:

-		case IProblem.JavadocNoMessageSendOnBaseType:

-		case IProblem.JavadocInheritedMethodHidesEnclosingName:

-		case IProblem.JavadocInheritedFieldHidesEnclosingName:

-		case IProblem.JavadocInheritedNameHidesEnclosingTypeName:

-			if (this.options.docCommentSupport && this.options.reportInvalidJavadocTags) {

-				return this.options.getSeverity(CompilerOptions.InvalidJavadoc);

-			} else {

-				return ProblemSeverities.Ignore;

-			}

-

-		/*

-		 * Javadoc missing tags errors

-		 */

-		case IProblem.JavadocMissingParamTag:

-		case IProblem.JavadocMissingReturnTag:

-		case IProblem.JavadocMissingThrowsTag:

-			if (this.options.docCommentSupport) {

-				return this.options.getSeverity(CompilerOptions.MissingJavadocTags);

-			} else {

-				return ProblemSeverities.Ignore;

-			}

-

-		/*

-		 * Missing Javadoc errors

-		 */

-		case IProblem.JavadocMissing:

-			if (this.options.docCommentSupport) {

-				return this.options.getSeverity(CompilerOptions.MissingJavadocComments);

-			} else {

-				return ProblemSeverities.Ignore;

-			}

-

-		// by default problems are errors.

-		default:

-			return Error;

-	}

-}

-public void conditionalArgumentsIncompatibleTypes(ConditionalExpression expression, TypeBinding trueType, TypeBinding falseType) {

-	this.handle(

-		IProblem.IncompatibleTypesInConditionalOperator,

-		new String[] {new String(trueType.readableName()), new String(falseType.readableName())},

-		new String[] {new String(trueType.sourceName()), new String(falseType.sourceName())},

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void conflictingImport(ImportReference importRef) {

-	String[] arguments = new String[] {CharOperation.toString(importRef.tokens)};

-	this.handle(

-		IProblem.ConflictingImport,

-		arguments,

-		arguments,

-		importRef.sourceStart,

-		importRef.sourceEnd);

-}

-public void constantOutOfFormat(NumberLiteral literal) {

-	// the literal is not in a correct format

-	// this code is called on IntLiteral and LongLiteral 

-	// example 000811 ...the 8 is uncorrect.

-

-	if ((literal instanceof LongLiteral) || (literal instanceof IntLiteral)) {

-		char[] source = literal.source();

-		try {

-			final String Radix;

-			final int radix;

-			if ((source[1] == 'x') || (source[1] == 'X')) {

-				radix = 16;

-				Radix = "Hex"; //$NON-NLS-1$

-			} else {

-				radix = 8;

-				Radix = "Octal"; //$NON-NLS-1$

-			}

-			//look for the first digit that is incorrect

-			int place = -1;

-			label : for (int i = radix == 8 ? 1 : 2; i < source.length; i++) {

-				if (Character.digit(source[i], radix) == -1) {

-					place = i;

-					break label;

-				}

-			}

-			String[] arguments = new String[] {

-				new String(literal.literalType(null).readableName()), // numeric literals do not need scope to reach type

-				Radix + " " + new String(source) + " (digit " + new String(new char[] {source[place]}) + ")"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

-

-			this.handle(

-				IProblem.NumericValueOutOfRange,

-				arguments,

-				arguments,

-				literal.sourceStart,

-				literal.sourceEnd);

-			return;

-		} catch (IndexOutOfBoundsException ex) {

-			// should never happen

-		}

-	

-		// just in case .... use a predefined error..

-		// we should never come here...(except if the code changes !)

-		this.constantOutOfRange(literal, literal.literalType(null)); // numeric literals do not need scope to reach type

-	}

-}

-public void constantOutOfRange(Literal literal, TypeBinding literalType) {

-	String[] arguments = new String[] {new String(literalType.readableName()), new String(literal.source())};

-	this.handle(

-		IProblem.NumericValueOutOfRange,

-		arguments,

-		arguments,

-		literal.sourceStart,

-		literal.sourceEnd);

-}

-public void corruptedSignature(TypeBinding enclosingType, char[] signature, int position) {

-	this.handle(

-		IProblem.CorruptedSignature,

-		new String[] { new String(enclosingType.readableName()), new String(signature), String.valueOf(position) },

-		new String[] { new String(enclosingType.shortReadableName()), new String(signature), String.valueOf(position) },

-		Error | Abort,

-		0,

-		0);

-}

-public void deprecatedField(FieldBinding field, ASTNode location) {

-	this.handle(

-		IProblem.UsingDeprecatedField,

-		new String[] {new String(field.declaringClass.readableName()), new String(field.name)},

-		new String[] {new String(field.declaringClass.shortReadableName()), new String(field.name)},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void deprecatedMethod(MethodBinding method, ASTNode location) {

-	if (method.isConstructor()) {

-		this.handle(

-			IProblem.UsingDeprecatedConstructor,

-			new String[] {new String(method.declaringClass.readableName()), parametersAsString(method.parameters, false)},

-			new String[] {new String(method.declaringClass.shortReadableName()), parametersAsString(method.parameters, true)},

-			location.sourceStart,

-			location.sourceEnd);

-	} else {

-		this.handle(

-			IProblem.UsingDeprecatedMethod,

-			new String[] {new String(method.declaringClass.readableName()), new String(method.selector), parametersAsString(method.parameters, false)},

-			new String[] {new String(method.declaringClass.shortReadableName()), new String(method.selector), parametersAsString(method.parameters, true)},

-			location.sourceStart,

-			location.sourceEnd);

-	}

-}

-public void deprecatedType(TypeBinding type, ASTNode location) {

-	if (location == null) return; // 1G828DN - no type ref for synthetic arguments

-	this.handle(

-		IProblem.UsingDeprecatedType,

-		new String[] {new String(type.readableName())},

-		new String[] {new String(type.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void duplicateCase(CaseStatement caseStatement) {

-	this.handle(

-		IProblem.DuplicateCase,

-		NoArgument,

-		NoArgument,

-		caseStatement.sourceStart,

-		caseStatement.sourceEnd);

-}

-public void duplicateDefaultCase(ASTNode statement) {

-	this.handle(

-		IProblem.DuplicateDefaultCase,

-		NoArgument,

-		NoArgument,

-		statement.sourceStart,

-		statement.sourceEnd);

-}

-public void duplicateFieldInType(SourceTypeBinding type, FieldDeclaration fieldDecl) {

-	this.handle(

-		IProblem.DuplicateField,

-		new String[] {new String(type.sourceName()), new String(fieldDecl.name)},

-		new String[] {new String(type.shortReadableName()), new String(fieldDecl.name)},

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-

-public void duplicateImport(ImportReference importRef) {

-	String[] arguments = new String[] {CharOperation.toString(importRef.tokens)};

-	this.handle(

-		IProblem.DuplicateImport,

-		arguments,

-		arguments,

-		importRef.sourceStart,

-		importRef.sourceEnd);

-}

-public void duplicateInitializationOfBlankFinalField(FieldBinding field, Reference reference) {

-	String[] arguments = new String[]{ new String(field.readableName())};

-	this.handle(

-		IProblem.DuplicateBlankFinalFieldInitialization,

-		arguments,

-		arguments,

-		reference.sourceStart,

-		reference.sourceEnd);

-}

-public void duplicateInitializationOfFinalLocal(LocalVariableBinding local, ASTNode location) {

-	String[] arguments = new String[] { new String(local.readableName())};

-	this.handle(

-		IProblem.DuplicateFinalLocalInitialization,

-		arguments,

-		arguments,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void duplicateMethodInType(SourceTypeBinding type, AbstractMethodDeclaration methodDecl) {

-    MethodBinding method = methodDecl.binding;

-    boolean duplicateErasure = false;

-    if ((method.modifiers & CompilerModifiers.AccGenericSignature) != 0) {

-        // chech it occurs in parameters (the bit is set for return type | params | thrown exceptions

-        for (int i = 0, length = method.parameters.length; i < length; i++) {

-            if ((method.parameters[i].tagBits & TagBits.HasTypeVariable) != 0) {

-                duplicateErasure = true;

-                break;

-            }

-        }

-    }

-    if (duplicateErasure) {

-        int length = method.parameters.length;

-        TypeBinding[] erasures = new TypeBinding[length];

-        for (int i = 0; i < length; i++)  {

-            erasures[i] = method.parameters[i].erasure();

-        }

-		this.handle(

-			IProblem.DuplicateMethodErasure,

-			new String[] {

-		        new String(methodDecl.selector),

-				new String(method.declaringClass.readableName()),

-				parametersAsString(method.parameters, false),

-				parametersAsString(erasures, false) } ,

-			new String[] {

-				new String(methodDecl.selector),

-				new String(method.declaringClass.shortReadableName()),

-				parametersAsString(method.parameters, true),

-				parametersAsString(erasures, true) },

-			methodDecl.sourceStart,

-			methodDecl.sourceEnd);

-    } else {

-		this.handle(

-			IProblem.DuplicateMethod,

-			new String[] {

-		        new String(methodDecl.selector),

-				new String(method.declaringClass.readableName()),

-				parametersAsString(method.parameters, false)},

-			new String[] {

-				new String(methodDecl.selector),

-				new String(method.declaringClass.shortReadableName()),

-				parametersAsString(method.parameters, true)},

-			methodDecl.sourceStart,

-			methodDecl.sourceEnd);

-    }

-}

-public void duplicateModifierForField(ReferenceBinding type, FieldDeclaration fieldDecl) {

-/* to highlight modifiers use:

-	this.handle(

-		new Problem(

-			DuplicateModifierForField,

-			new String[] {new String(fieldDecl.name)},

-			fieldDecl.modifiers.sourceStart,

-			fieldDecl.modifiers.sourceEnd));

-*/

-	String[] arguments = new String[] {new String(fieldDecl.name)};

-	this.handle(

-		IProblem.DuplicateModifierForField,

-		arguments,

-		arguments,

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-public void duplicateModifierForMethod(ReferenceBinding type, AbstractMethodDeclaration methodDecl) {

-	this.handle(

-		IProblem.DuplicateModifierForMethod,

-		new String[] {new String(type.sourceName()), new String(methodDecl.selector)},

-		new String[] {new String(type.shortReadableName()), new String(methodDecl.selector)},

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void duplicateModifierForType(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.DuplicateModifierForType,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void duplicateModifierForVariable(LocalDeclaration localDecl, boolean complainForArgument) {

-	String[] arguments = new String[] {new String(localDecl.name)};

-	this.handle(

-		complainForArgument

-			? IProblem.DuplicateModifierForArgument 

-			: IProblem.DuplicateModifierForVariable,

-		arguments,

-		arguments,

-		localDecl.sourceStart,

-		localDecl.sourceEnd);

-}

-public void duplicateNestedType(TypeDeclaration typeDecl) {

-	String[] arguments = new String[] {new String(typeDecl.name)};

-	this.handle(

-		IProblem.DuplicateNestedType,

-		arguments,

-		arguments,

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd);

-}

-public void duplicateSuperinterface(SourceTypeBinding type, TypeDeclaration typeDecl, ReferenceBinding superType) {

-	this.handle(

-		IProblem.DuplicateSuperInterface,

-		new String[] {

-			new String(superType.readableName()),

-			new String(type.sourceName())},

-		new String[] {

-			new String(superType.shortReadableName()),

-			new String(type.sourceName())},

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd);

-}

-public void duplicateTypeParameterInType(TypeParameter typeParameter) {

-	this.handle(

-		IProblem.DuplicateTypeVariable,

-		new String[] { new String(typeParameter.name)},

-		new String[] { new String(typeParameter.name)},

-		typeParameter.sourceStart,

-		typeParameter.sourceEnd);

-}

-public void duplicateTypes(CompilationUnitDeclaration compUnitDecl, TypeDeclaration typeDecl) {

-	String[] arguments = new String[] {new String(compUnitDecl.getFileName()), new String(typeDecl.name)};

-	this.referenceContext = typeDecl; // report the problem against the type not the entire compilation unit

-	this.handle(

-		IProblem.DuplicateTypes,

-		arguments,

-		arguments,

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd,

-		compUnitDecl.compilationResult);

-}

-public void emptyControlFlowStatement(int sourceStart, int sourceEnd) {

-	this.handle(

-		IProblem.EmptyControlFlowStatement,

-		NoArgument,

-		NoArgument,

-		sourceStart,

-		sourceEnd);	

-}

-public void errorNoMethodFor(MessageSend messageSend, TypeBinding recType, TypeBinding[] params) {

-	StringBuffer buffer = new StringBuffer();

-	StringBuffer shortBuffer = new StringBuffer();

-	for (int i = 0, length = params.length; i < length; i++) {

-		if (i != 0){

-			buffer.append(", "); //$NON-NLS-1$

-			shortBuffer.append(", "); //$NON-NLS-1$

-		}

-		buffer.append(new String(params[i].readableName()));

-		shortBuffer.append(new String(params[i].shortReadableName()));

-	}

-

-	int id = recType.isArrayType() ? IProblem.NoMessageSendOnArrayType : IProblem.NoMessageSendOnBaseType;

-	/*

-	if ((messageSend.bits & ASTNode.InsideJavadoc) != 0) {

-		id |= IProblem.Javadoc;

-		if (!reportInvalidJavadocTagsVisibility()) return;

-	}

-	*/

-	this.handle(

-		id,

-		new String[] {new String(recType.readableName()), new String(messageSend.selector), buffer.toString()},

-		new String[] {new String(recType.shortReadableName()), new String(messageSend.selector), shortBuffer.toString()},

-		messageSend.sourceStart,

-		messageSend.sourceEnd);

-}

-public void errorThisSuperInStatic(ASTNode reference) {

-	String[] arguments = new String[] {reference.isSuper() ? "super" : "this"}; //$NON-NLS-2$ //$NON-NLS-1$

-	this.handle(

-		IProblem.ThisInStaticContext,

-		arguments,

-		arguments,

-		reference.sourceStart,

-		reference.sourceEnd);

-}

-public void expressionShouldBeAVariable(Expression expression) {

-	this.handle(

-		IProblem.ExpressionShouldBeAVariable,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void fieldHiding(FieldDeclaration fieldDecl, Binding hiddenVariable) {

-	FieldBinding field = fieldDecl.binding;

-	if (CharOperation.equals(TypeConstants.SERIALVERSIONUID, field.name)

-			&& field.isStatic()

-			&& field.isFinal()

-			&& BaseTypes.LongBinding == field.type) {

-				return; // do not report unused serialVersionUID field

-	}

-	if (CharOperation.equals(TypeConstants.SERIALPERSISTENTFIELDS, field.name)

-			&& field.isStatic()

-			&& field.isFinal()

-			&& field.type.dimensions() == 1

-			&& CharOperation.equals(TypeConstants.CharArray_JAVA_IO_OBJECTSTREAMFIELD, field.type.leafComponentType().readableName())) {

-				return; // do not report unused serialPersistentFields field

-	}

-	

-	if (hiddenVariable instanceof LocalVariableBinding) {

-		this.handle(

-			IProblem.FieldHidingLocalVariable,

-			new String[] {new String(field.declaringClass.readableName()), new String(field.name) },

-			new String[] {new String(field.declaringClass.shortReadableName()), new String(field.name) },

-			fieldDecl.sourceStart,

-			fieldDecl.sourceEnd);

-	} else if (hiddenVariable instanceof FieldBinding) {

-		FieldBinding hiddenField = (FieldBinding) hiddenVariable;

-		this.handle(

-			IProblem.FieldHidingField,

-			new String[] {new String(field.declaringClass.readableName()), new String(field.name) , new String(hiddenField.declaringClass.readableName())  },

-			new String[] {new String(field.declaringClass.shortReadableName()), new String(field.name) , new String(hiddenField.declaringClass.shortReadableName()) },

-			fieldDecl.sourceStart,

-			fieldDecl.sourceEnd);

-	}

-}

-private int fieldLocation(FieldBinding field, ASTNode node) {

-	if (node instanceof QualifiedNameReference) {

-		QualifiedNameReference ref = (QualifiedNameReference) node;

-		FieldBinding[] bindings = ref.otherBindings;

-		if (bindings != null)

-			for (int i = bindings.length; --i >= 0;)

-				if (bindings[i] == field)

-					return (int) ref.sourcePositions[i + 1]; // first position is for the primary field

-	}

-	return node.sourceEnd;

-}

-public void fieldsOrThisBeforeConstructorInvocation(ThisReference reference) {

-	this.handle(

-		IProblem.ThisSuperDuringConstructorInvocation,

-		NoArgument,

-		NoArgument,

-		reference.sourceStart,

-		reference.sourceEnd);

-}

-public void finallyMustCompleteNormally(Block finallyBlock) {

-	this.handle(

-		IProblem.FinallyMustCompleteNormally,

-		NoArgument,

-		NoArgument,

-		finallyBlock.sourceStart,

-		finallyBlock.sourceEnd);

-}

-public void finalMethodCannotBeOverridden(MethodBinding currentMethod, MethodBinding inheritedMethod) {

-	this.handle(

-		// Cannot override the final method from %1

-		// 8.4.3.3 - Final methods cannot be overridden or hidden.

-		IProblem.FinalMethodCannotBeOverridden,

-		new String[] {new String(inheritedMethod.declaringClass.readableName())},

-		new String[] {new String(inheritedMethod.declaringClass.shortReadableName())},

-		currentMethod.sourceStart(),

-		currentMethod.sourceEnd());

-}

-public void finalVariableBound(TypeVariableBinding typeVariable, TypeReference typeRef) {

-	this.handle(

-		IProblem.FinalBoundForTypeVariable,

-		new String[] { new String(typeVariable.sourceName), new String(typeRef.resolvedType.readableName())},

-		new String[] { new String(typeVariable.sourceName), new String(typeRef.resolvedType.shortReadableName())},

-		typeRef.sourceStart,

-		typeRef.sourceEnd);

-}

-public void forbiddenReference(TypeBinding type, ASTNode location, String visibilityRuleOwner) {

-	if (location == null) return; 

-	this.handle(

-		IProblem.ForbiddenReference,

-		new String[] {new String(type.readableName()), visibilityRuleOwner},

-		new String[] {new String(type.shortReadableName()), visibilityRuleOwner},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void forwardReference(Reference reference, int indexInQualification, TypeBinding type) {

-	this.handle(

-		IProblem.ReferenceToForwardField,

-		NoArgument,

-		NoArgument,

-		reference.sourceStart,

-		reference.sourceEnd);

-}

-public void forwardTypeVariableReference(ASTNode location, TypeVariableBinding type) {

-	this.handle(

-		IProblem.ReferenceToForwardTypeVariable,

-		new String[] {new String(type.readableName())},

-		new String[] {new String(type.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void genericTypeCannotExtendThrowable(TypeDeclaration typeDecl) {

-	this.handle(

-		IProblem.GenericTypeCannotExtendThrowable,

-		new String[]{ new String(typeDecl.binding.readableName()) },

-		new String[]{ new String(typeDecl.binding.shortReadableName()) },

-		typeDecl.superclass.sourceStart,

-		typeDecl.superclass.sourceEnd);

-}

-// use this private API when the compilation unit result can be found through the

-// reference context. Otherwise, use the other API taking a problem and a compilation result

-// as arguments

-private void handle(

-	int problemId, 

-	String[] problemArguments,

-	String[] messageArguments,

-	int problemStartPosition, 

-	int problemEndPosition){

-

-	this.handle(

-			problemId,

-			problemArguments,

-			messageArguments,

-			problemStartPosition,

-			problemEndPosition,

-			this.referenceContext, 

-			this.referenceContext == null ? null : this.referenceContext.compilationResult()); 

-	this.referenceContext = null;

-}

-// use this private API when the compilation unit result cannot be found through the

-// reference context. 

-

-private void handle(

-	int problemId, 

-	String[] problemArguments,

-	String[] messageArguments,

-	int problemStartPosition, 

-	int problemEndPosition,

-	CompilationResult unitResult){

-

-	this.handle(

-			problemId,

-			problemArguments,

-			messageArguments,

-			problemStartPosition,

-			problemEndPosition,

-			this.referenceContext, 

-			unitResult); 

-	this.referenceContext = null;

-}

-// use this private API when the compilation unit result can be found through the

-// reference context. Otherwise, use the other API taking a problem and a compilation result

-// as arguments

-private void handle(

-	int problemId, 

-	String[] problemArguments,

-	String[] messageArguments,

-	int severity,

-	int problemStartPosition, 

-	int problemEndPosition){

-

-	this.handle(

-			problemId,

-			problemArguments,

-			messageArguments,

-			severity,

-			problemStartPosition,

-			problemEndPosition,

-			this.referenceContext, 

-			this.referenceContext == null ? null : this.referenceContext.compilationResult()); 

-	this.referenceContext = null;

-}

-public void hiddenCatchBlock(ReferenceBinding exceptionType, ASTNode location) {

-	this.handle(

-		IProblem.MaskedCatch,

-		new String[] {

-			new String(exceptionType.readableName()),

-		 }, 

-		new String[] {

-			new String(exceptionType.shortReadableName()),

-		 }, 

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void hidingEnclosingType(TypeDeclaration typeDecl) {

-	String[] arguments = new String[] {new String(typeDecl.name)};

-	this.handle(

-		IProblem.HidingEnclosingType,

-		arguments,

-		arguments,

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd);

-}

-public void hierarchyCircularity(SourceTypeBinding sourceType, ReferenceBinding superType, TypeReference reference) {

-	int start = 0;

-	int end = 0;

-	String typeName = new String(superType.readableName());

-	String shortTypeName = new String(superType.sourceName());

-

-	if (reference == null) {	// can only happen when java.lang.Object is busted

-		start = sourceType.sourceStart();

-		end = sourceType.sourceEnd();

-	} else {

-		start = reference.sourceStart;

-		end = reference.sourceEnd;

-		if (sourceType != superType) {

-			char[][] qName = reference.getTypeName();

-			typeName = CharOperation.toString(qName);

-			shortTypeName = new String(qName[qName.length-1]);

-		}

-	}

-

-	if (sourceType == superType)

-		this.handle(

-			IProblem.HierarchyCircularitySelfReference,

-			new String[] {typeName},

-			new String[] {shortTypeName},

-			start,

-			end);

-	else

-		this.handle(

-			IProblem.HierarchyCircularity,

-			new String[] {new String(sourceType.sourceName()), typeName},

-			new String[] {new String(sourceType.sourceName()), shortTypeName},

-			start,

-			end);

-}

-public void hierarchyHasProblems(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.HierarchyHasProblems,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalAbstractModifierCombinationForMethod(ReferenceBinding type, AbstractMethodDeclaration methodDecl) {

-	String[] arguments = new String[] {new String(type.sourceName()), new String(methodDecl.selector)};

-	this.handle(

-		IProblem.IllegalAbstractModifierCombinationForMethod,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void illegalClassLiteralForTypeVariable(TypeVariableBinding variable, ASTNode location) {

-	String[] arguments = new String[] { new String(variable.sourceName) };

-	this.handle(

-		IProblem.IllegalClassLiteralForTypeVariable,

-		arguments, 

-		arguments,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void illegalExtendedDimensions(AnnotationTypeMemberDeclaration annotationTypeMemberDeclaration) {

-	this.handle(

-		IProblem.IllegalExtendedDimensions,

-		NoArgument, 

-		NoArgument, 

-		annotationTypeMemberDeclaration.sourceStart,

-		annotationTypeMemberDeclaration.sourceEnd);

-}

-public void illegalGenericArray(TypeBinding leadtComponentType, ASTNode location) {

-	this.handle(

-		IProblem.IllegalGenericArray,

-		new String[]{ new String(leadtComponentType.readableName())},

-		new String[]{ new String(leadtComponentType.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void illegalInstanceOfGenericType(TypeBinding checkedType, ASTNode location) {

-	if (checkedType.isTypeVariable()) {

-		this.handle(

-		IProblem.IllegalInstanceofTypeParameter,

-			new String[] { new String(checkedType.readableName()), new String(checkedType.erasure().readableName())},

-			new String[] { new String(checkedType.shortReadableName()), new String(checkedType.erasure().shortReadableName())},

-			location.sourceStart,

-			location.sourceEnd);

-		return;

-	}

-	this.handle(

-		IProblem.IllegalInstanceofParameterizedType,

-		new String[] { new String(checkedType.readableName()), new String(checkedType.erasure().sourceName())},

-		new String[] { new String(checkedType.shortReadableName()), new String(checkedType.erasure().sourceName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void illegalModifierCombinationFinalAbstractForClass(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalModifierCombinationFinalAbstractForClass,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalModifierCombinationFinalVolatileForField(ReferenceBinding type, FieldDeclaration fieldDecl) {

-	String[] arguments = new String[] {new String(fieldDecl.name)};

-

-	this.handle(

-		IProblem.IllegalModifierCombinationFinalVolatileForField,

-		arguments,

-		arguments,

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-

-public void illegalModifierForClass(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalModifierForClass,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalModifierForField(ReferenceBinding type, FieldDeclaration fieldDecl) {

-	String[] arguments = new String[] {new String(fieldDecl.name)};

-	this.handle(

-		IProblem.IllegalModifierForField,

-		arguments,

-		arguments,

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-public void illegalModifierForInterface(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalModifierForInterface,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalModifierForInterfaceField(ReferenceBinding type, FieldDeclaration fieldDecl) {

-	String[] arguments = new String[] {new String(fieldDecl.name)};

-	this.handle(

-		IProblem.IllegalModifierForInterfaceField,

-		arguments,

-		arguments,

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-public void illegalModifierForInterfaceMethod(ReferenceBinding type, AbstractMethodDeclaration methodDecl) {

-	String[] arguments = new String[] {new String(type.sourceName()), new String(methodDecl.selector)};

-	this.handle(

-		IProblem.IllegalModifierForInterfaceMethod,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void illegalModifierForLocalClass(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalModifierForLocalClass,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalModifierForMemberClass(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalModifierForMemberClass,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalModifierForMemberInterface(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalModifierForMemberInterface,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalModifierForMethod(ReferenceBinding type, AbstractMethodDeclaration methodDecl) {

-	String[] arguments = new String[] {new String(type.sourceName()), new String(methodDecl.selector)};

-	this.handle(

-		IProblem.IllegalModifierForMethod,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void illegalModifierForVariable(LocalDeclaration localDecl, boolean complainAsArgument) {

-	String[] arguments = new String[] {new String(localDecl.name)};

-	this.handle(

-		complainAsArgument

-			? IProblem.IllegalModifierForArgument

-			: IProblem.IllegalModifierForVariable,

-		arguments,

-		arguments,

-		localDecl.sourceStart,

-		localDecl.sourceEnd);

-}

-public void illegalPrimitiveOrArrayTypeForEnclosingInstance(TypeBinding enclosingType, ASTNode location) {

-	this.handle(

-		IProblem.IllegalPrimitiveOrArrayTypeForEnclosingInstance,

-		new String[] {new String(enclosingType.readableName())},

-		new String[] {new String(enclosingType.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void illegalStaticModifierForMemberType(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalStaticModifierForMemberType,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalUsageOfQualifiedTypeReference(QualifiedTypeReference qualifiedTypeReference) {

-	StringBuffer buffer = new StringBuffer();

-	char[][] tokens = qualifiedTypeReference.tokens;

-	for (int i = 0; i < tokens.length; i++) {

-		if (i > 0) buffer.append('.');

-		buffer.append(tokens[i]);

-	}

-	String[] arguments = new String[] { String.valueOf(buffer)};

-	this.handle(

-		IProblem.IllegalUsageOfQualifiedTypeReference,

-		arguments,

-		arguments,

-		qualifiedTypeReference.sourceStart,

-		qualifiedTypeReference.sourceEnd);	

-}

-public void illegalVisibilityModifierCombinationForField(ReferenceBinding type, FieldDeclaration fieldDecl) {

-	String[] arguments = new String[] {new String(fieldDecl.name)};

-	this.handle(

-		IProblem.IllegalVisibilityModifierCombinationForField,

-		arguments,

-		arguments,

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-public void illegalVisibilityModifierCombinationForMemberType(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalVisibilityModifierCombinationForMemberType,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalVisibilityModifierCombinationForMethod(ReferenceBinding type, AbstractMethodDeclaration methodDecl) {

-	String[] arguments = new String[] {new String(type.sourceName()), new String(methodDecl.selector)};

-	this.handle(

-		IProblem.IllegalVisibilityModifierCombinationForMethod,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void illegalVisibilityModifierForInterfaceMemberType(SourceTypeBinding type) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-	this.handle(

-		IProblem.IllegalVisibilityModifierForInterfaceMemberType,

-		arguments,

-		arguments,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void illegalVoidExpression(ASTNode location) {

-	this.handle(

-		IProblem.InvalidVoidExpression,

-		NoArgument,

-		NoArgument,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void importProblem(ImportReference importRef, Binding expectedImport) {

-	if (expectedImport.problemId() == NotFound) {

-		char[][] tokens = expectedImport instanceof ProblemReferenceBinding

-			? ((ProblemReferenceBinding) expectedImport).compoundName

-			: importRef.tokens;

-		String[] arguments = new String[]{CharOperation.toString(tokens)};

-		this.handle(

-		        IProblem.ImportNotFound, 

-		        arguments, 

-		        arguments, 

-		        importRef.sourceStart, 

-		        (int) importRef.sourcePositions[tokens.length - 1]);

-		return;

-	}

-	invalidType(importRef, (TypeBinding)expectedImport);

-}

-public void incompatibleExceptionInThrowsClause(SourceTypeBinding type, MethodBinding currentMethod, MethodBinding inheritedMethod, ReferenceBinding exceptionType) {

-	if (type == currentMethod.declaringClass) {

-		int id;

-		if (currentMethod.declaringClass.isInterface() 

-				&& !inheritedMethod.isPublic()){ // interface inheriting Object protected method

-			id = IProblem.IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod;

-		} else {

-			id = IProblem.IncompatibleExceptionInThrowsClause;

-		}

-		this.handle(

-			// Exception %1 is not compatible with throws clause in %2

-			// 9.4.4 - The type of exception in the throws clause is incompatible.

-			id,

-			new String[] {

-				new String(exceptionType.sourceName()),

-				new String(

-					CharOperation.concat(

-						inheritedMethod.declaringClass.readableName(),

-						inheritedMethod.readableName(),

-						'.'))},

-			new String[] {

-				new String(exceptionType.sourceName()),

-				new String(

-					CharOperation.concat(

-						inheritedMethod.declaringClass.shortReadableName(),

-						inheritedMethod.shortReadableName(),

-						'.'))},

-			currentMethod.sourceStart(),

-			currentMethod.sourceEnd());

-	} else	

-		this.handle(

-			// Exception %1 in throws clause of %2 is not compatible with %3

-			// 9.4.4 - The type of exception in the throws clause is incompatible.

-			IProblem.IncompatibleExceptionInInheritedMethodThrowsClause,

-			new String[] {

-				new String(exceptionType.sourceName()),

-				new String(

-					CharOperation.concat(

-						currentMethod.declaringClass.sourceName(),

-						currentMethod.readableName(),

-						'.')),

-				new String(

-					CharOperation.concat(

-						inheritedMethod.declaringClass.readableName(),

-						inheritedMethod.readableName(),

-						'.'))},

-			new String[] {

-				new String(exceptionType.sourceName()),

-				new String(

-					CharOperation.concat(

-						currentMethod.declaringClass.sourceName(),

-						currentMethod.shortReadableName(),

-						'.')),

-				new String(

-					CharOperation.concat(

-						inheritedMethod.declaringClass.shortReadableName(),

-						inheritedMethod.shortReadableName(),

-						'.'))},

-			type.sourceStart(),

-			type.sourceEnd());

-}

-public void incompatibleReturnType(MethodBinding currentMethod, MethodBinding inheritedMethod) {

-	StringBuffer methodSignature = new StringBuffer();

-	methodSignature

-		.append(inheritedMethod.declaringClass.readableName())

-		.append('.')

-		.append(inheritedMethod.readableName());

-

-	StringBuffer shortSignature = new StringBuffer();

-	shortSignature

-		.append(inheritedMethod.declaringClass.shortReadableName())

-		.append('.')

-		.append(inheritedMethod.shortReadableName());

-

-	int id;

-	if (currentMethod.declaringClass.isInterface() 

-			&& !inheritedMethod.isPublic()){ // interface inheriting Object protected method

-		id = IProblem.IncompatibleReturnTypeForNonInheritedInterfaceMethod;

-	} else {

-		id = IProblem.IncompatibleReturnType;

-	}

-	this.handle(

-		id,

-		new String[] {methodSignature.toString()},

-		new String[] {shortSignature.toString()},

-		currentMethod.sourceStart(),

-		currentMethod.sourceEnd());

-}

-public void incorrectArityForParameterizedType(ASTNode location, TypeBinding type, TypeBinding[] argumentTypes) {

-    if (location == null) {

-		this.handle(

-			IProblem.IncorrectArityForParameterizedType,

-			new String[] {new String(type.readableName()), parametersAsString(argumentTypes, false)},

-			new String[] {new String(type.shortReadableName()), parametersAsString(argumentTypes, true)},

-			AbortCompilation | Error,

-			0,

-			1);        

-    }

-	this.handle(

-		IProblem.IncorrectArityForParameterizedType,

-		new String[] {new String(type.readableName()), parametersAsString(argumentTypes, false)},

-		new String[] {new String(type.shortReadableName()), parametersAsString(argumentTypes, true)},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void incorrectLocationForEmptyDimension(ArrayAllocationExpression expression, int index) {

-	this.handle(

-		IProblem.IllegalDimension,

-		NoArgument,

-		NoArgument,

-		expression.dimensions[index + 1].sourceStart,

-		expression.dimensions[index + 1].sourceEnd);

-}

-public void incorrectSwitchType(Expression expression, TypeBinding testType) {

-	this.handle(

-		IProblem.IncorrectSwitchType,

-		new String[] {new String(testType.readableName())},

-		new String[] {new String(testType.shortReadableName())},

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void indirectAccessToStaticField(ASTNode location, FieldBinding field){

-	this.handle(

-		IProblem.IndirectAccessToStaticField,

-		new String[] {new String(field.declaringClass.readableName()), new String(field.name)},

-		new String[] {new String(field.declaringClass.shortReadableName()), new String(field.name)},

-		location.sourceStart,

-		fieldLocation(field, location));

-}

-public void indirectAccessToStaticMethod(ASTNode location, MethodBinding method) {

-	this.handle(

-		IProblem.IndirectAccessToStaticMethod,

-		new String[] {new String(method.declaringClass.readableName()), new String(method.selector), parametersAsString(method.parameters, false)},

-		new String[] {new String(method.declaringClass.shortReadableName()), new String(method.selector), parametersAsString(method.parameters, true)},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void indirectAccessToStaticType(ASTNode location, ReferenceBinding type) {

-	this.handle(

-		IProblem.IndirectAccessToStaticMethod,

-		new String[] {new String(type.enclosingType().readableName()), new String(type.sourceName) },

-		new String[] {new String(type.enclosingType().shortReadableName()), new String(type.sourceName) },

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void inheritedMethodReducesVisibility(SourceTypeBinding type, MethodBinding concreteMethod, MethodBinding[] abstractMethods) {

-	StringBuffer concreteSignature = new StringBuffer();

-	concreteSignature

-		.append(concreteMethod.declaringClass.readableName())

-		.append('.')

-		.append(concreteMethod.readableName());

-	StringBuffer shortSignature = new StringBuffer();

-	shortSignature

-		.append(concreteMethod.declaringClass.shortReadableName())

-		.append('.')

-		.append(concreteMethod.shortReadableName());

-	this.handle(

-		// The inherited method %1 cannot hide the public abstract method in %2

-		IProblem.InheritedMethodReducesVisibility,

-		new String[] {

-			concreteSignature.toString(),

-			new String(abstractMethods[0].declaringClass.readableName())},

-		new String[] {

-			new String(shortSignature.toString()),

-			new String(abstractMethods[0].declaringClass.shortReadableName())},

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void inheritedMethodsHaveIncompatibleReturnTypes(SourceTypeBinding type, MethodBinding[] inheritedMethods, int length) {

-	StringBuffer methodSignatures = new StringBuffer();

-	StringBuffer shortSignatures = new StringBuffer();

-	for (int i = length; --i >= 0;) {

-		methodSignatures

-			.append(inheritedMethods[i].declaringClass.readableName())

-			.append('.')

-			.append(inheritedMethods[i].readableName());

-		shortSignatures

-			.append(inheritedMethods[i].declaringClass.shortReadableName())

-			.append('.')

-			.append(inheritedMethods[i].shortReadableName());

-		if (i != 0){

-			methodSignatures.append(", "); //$NON-NLS-1$

-			shortSignatures.append(", "); //$NON-NLS-1$

-		}

-	}

-

-	this.handle(

-		// Return type is incompatible with %1

-		// 9.4.2 - The return type from the method is incompatible with the declaration.

-		IProblem.IncompatibleReturnType,

-		new String[] {methodSignatures.toString()},

-		new String[] {shortSignatures.toString()},

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void initializerMustCompleteNormally(FieldDeclaration fieldDecl) {

-	this.handle(

-		IProblem.InitializerMustCompleteNormally,

-		NoArgument,

-		NoArgument,

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-public void innerTypesCannotDeclareStaticInitializers(ReferenceBinding innerType, ASTNode location) {

-	this.handle(

-		IProblem.CannotDefineStaticInitializerInLocalType,

-		new String[] {new String(innerType.readableName())},

-		new String[] {new String(innerType.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void interfaceCannotHaveConstructors(ConstructorDeclaration constructor) {

-	this.handle(

-		IProblem.InterfaceCannotHaveConstructors,

-		NoArgument,

-		NoArgument,

-		constructor.sourceStart,

-		constructor.sourceEnd,

-		constructor,

-		constructor.compilationResult());

-}

-public void interfaceCannotHaveInitializers(SourceTypeBinding type, FieldDeclaration fieldDecl) {

-	String[] arguments = new String[] {new String(type.sourceName())};

-

-	this.handle(

-		IProblem.InterfaceCannotHaveInitializers,

-		arguments,

-		arguments,

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-public void invalidBreak(ASTNode location) {

-	this.handle(

-		IProblem.InvalidBreak,

-		NoArgument,

-		NoArgument,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void invalidConstructor(Statement statement, MethodBinding targetConstructor) {

-

-	boolean insideDefaultConstructor = 

-		(this.referenceContext instanceof ConstructorDeclaration)

-			&& ((ConstructorDeclaration)this.referenceContext).isDefaultConstructor();

-	boolean insideImplicitConstructorCall =

-		(statement instanceof ExplicitConstructorCall)

-			&& (((ExplicitConstructorCall) statement).accessMode == ExplicitConstructorCall.ImplicitSuper);

-

-	int id = IProblem.UndefinedConstructor; //default...

-    MethodBinding shownConstructor = targetConstructor;

-	switch (targetConstructor.problemId()) {

-		case NotFound :

-			if (insideDefaultConstructor){

-				id = IProblem.UndefinedConstructorInDefaultConstructor;

-			} else if (insideImplicitConstructorCall){

-				id = IProblem.UndefinedConstructorInImplicitConstructorCall;

-			} else {

-				id = IProblem.UndefinedConstructor;

-			}

-			break;

-		case NotVisible :

-			if (insideDefaultConstructor){

-				id = IProblem.NotVisibleConstructorInDefaultConstructor;

-			} else if (insideImplicitConstructorCall){

-				id = IProblem.NotVisibleConstructorInImplicitConstructorCall;

-			} else {

-				id = IProblem.NotVisibleConstructor;

-			}

-			ProblemMethodBinding problemConstructor = (ProblemMethodBinding) targetConstructor;

-			if (problemConstructor.closestMatch != null) {

-			    shownConstructor = problemConstructor.closestMatch.original();

-		    }					

-			break;

-		case Ambiguous :

-			if (insideDefaultConstructor){

-				id = IProblem.AmbiguousConstructorInDefaultConstructor;

-			} else if (insideImplicitConstructorCall){

-				id = IProblem.AmbiguousConstructorInImplicitConstructorCall;

-			} else {

-				id = IProblem.AmbiguousConstructor;

-			}

-			break;

-		case ParameterBoundMismatch :

-			problemConstructor = (ProblemMethodBinding) targetConstructor;

-			ParameterizedGenericMethodBinding substitutedConstructor = (ParameterizedGenericMethodBinding) problemConstructor.closestMatch;

-			shownConstructor = substitutedConstructor.original();

-			TypeBinding typeArgument = targetConstructor.parameters[0];

-			TypeVariableBinding typeParameter = (TypeVariableBinding) targetConstructor.parameters[1];

-			this.handle(

-				IProblem.GenericConstructorTypeArgumentMismatch,

-				new String[] { 

-				        new String(shownConstructor.declaringClass.sourceName()),

-				        parametersAsString(shownConstructor.parameters, false), 

-				        new String(shownConstructor.declaringClass.readableName()), 

-				        parametersAsString(substitutedConstructor.parameters, false), 

-				        new String(typeArgument.readableName()), 

-				        new String(typeParameter.sourceName), 

-				        parameterBoundAsString(typeParameter, false) },

-				new String[] { 

-				        new String(shownConstructor.declaringClass.sourceName()),

-				        parametersAsString(shownConstructor.parameters, true), 

-				        new String(shownConstructor.declaringClass.shortReadableName()), 

-				        parametersAsString(substitutedConstructor.parameters, true), 

-				        new String(typeArgument.shortReadableName()), 

-				        new String(typeParameter.sourceName), 

-				        parameterBoundAsString(typeParameter, true) },

-				statement.sourceStart,

-				statement.sourceEnd);		    

-			return;		    

-			

-		case TypeParameterArityMismatch :

-			problemConstructor = (ProblemMethodBinding) targetConstructor;

-			shownConstructor = problemConstructor.closestMatch;

-			if (shownConstructor.typeVariables == TypeConstants.NoTypeVariables) {

-				this.handle(

-					IProblem.NonGenericConstructor,

-					new String[] { 

-					        new String(shownConstructor.declaringClass.sourceName()),

-					        parametersAsString(shownConstructor.parameters, false), 

-					        new String(shownConstructor.declaringClass.readableName()), 

-					        parametersAsString(targetConstructor.parameters, false) },

-					new String[] { 

-					        new String(shownConstructor.declaringClass.sourceName()),

-					        parametersAsString(shownConstructor.parameters, true), 

-					        new String(shownConstructor.declaringClass.shortReadableName()), 

-					        parametersAsString(targetConstructor.parameters, true) },

-					statement.sourceStart,

-					statement.sourceEnd);		    

-			} else {

-				this.handle(

-					IProblem.IncorrectArityForParameterizedConstructor  ,

-					new String[] { 

-					        new String(shownConstructor.declaringClass.sourceName()),

-					        parametersAsString(shownConstructor.parameters, false), 

-					        new String(shownConstructor.declaringClass.readableName()), 

-							parametersAsString(shownConstructor.typeVariables, false),

-					        parametersAsString(targetConstructor.parameters, false) },

-					new String[] { 

-					        new String(shownConstructor.declaringClass.sourceName()),

-					        parametersAsString(shownConstructor.parameters, true), 

-					        new String(shownConstructor.declaringClass.shortReadableName()), 

-							parametersAsString(shownConstructor.typeVariables, true),

-					        parametersAsString(targetConstructor.parameters, true) },

-					statement.sourceStart,

-					statement.sourceEnd);		    

-			}

-			return;

-		case ParameterizedMethodTypeMismatch :

-			problemConstructor = (ProblemMethodBinding) targetConstructor;

-			shownConstructor = problemConstructor.closestMatch;

-			this.handle(

-				IProblem.ParameterizedConstructorArgumentTypeMismatch,

-				new String[] { 

-				        new String(shownConstructor.declaringClass.sourceName()),

-				        parametersAsString(shownConstructor.parameters, false), 

-				        new String(shownConstructor.declaringClass.readableName()), 

-						parametersAsString(((ParameterizedGenericMethodBinding)shownConstructor).typeArguments, false),

-				        parametersAsString(targetConstructor.parameters, false) },

-				new String[] { 

-				        new String(shownConstructor.declaringClass.sourceName()),

-				        parametersAsString(shownConstructor.parameters, true), 

-				        new String(shownConstructor.declaringClass.shortReadableName()), 

-						parametersAsString(((ParameterizedGenericMethodBinding)shownConstructor).typeArguments, true),

-				        parametersAsString(targetConstructor.parameters, true) },

-				statement.sourceStart,

-				statement.sourceEnd);		    

-			return;

-		case TypeArgumentsForRawGenericMethod :

-			problemConstructor = (ProblemMethodBinding) targetConstructor;

-			shownConstructor = problemConstructor.closestMatch;

-			this.handle(

-				IProblem.TypeArgumentsForRawGenericConstructor,

-				new String[] { 

-				        new String(shownConstructor.declaringClass.sourceName()),

-				        parametersAsString(shownConstructor.parameters, false), 

-				        new String(shownConstructor.declaringClass.readableName()), 

-				        parametersAsString(targetConstructor.parameters, false) },

-				new String[] { 

-				        new String(shownConstructor.declaringClass.sourceName()),

-				        parametersAsString(shownConstructor.parameters, true), 

-				        new String(shownConstructor.declaringClass.shortReadableName()), 

-				        parametersAsString(targetConstructor.parameters, true) },

-				statement.sourceStart,

-				statement.sourceEnd);	

-			return;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-

-	this.handle(

-		id,

-		new String[] {new String(targetConstructor.declaringClass.readableName()), parametersAsString(shownConstructor.parameters, false)},

-		new String[] {new String(targetConstructor.declaringClass.shortReadableName()), parametersAsString(shownConstructor.parameters, true)},

-		statement.sourceStart,

-		statement.sourceEnd);

-}

-public void invalidContinue(ASTNode location) {

-	this.handle(

-		IProblem.InvalidContinue,

-		NoArgument,

-		NoArgument,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void invalidEnclosingType(Expression expression, TypeBinding type, ReferenceBinding enclosingType) {

-

-	if (enclosingType.isAnonymousType()) enclosingType = enclosingType.superclass();

-	int flag = IProblem.UndefinedType; // default

-	switch (type.problemId()) {

-		case NotFound : // 1

-			flag = IProblem.UndefinedType;

-			break;

-		case NotVisible : // 2

-			flag = IProblem.NotVisibleType;

-			break;

-		case Ambiguous : // 3

-			flag = IProblem.AmbiguousType;

-			break;

-		case InternalNameProvided :

-			flag = IProblem.InternalTypeNameProvided;

-			break;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-

-	this.handle(

-		flag,

-		new String[] {new String(enclosingType.readableName()) + "." + new String(type.readableName())}, //$NON-NLS-1$

-		new String[] {new String(enclosingType.shortReadableName()) + "." + new String(type.shortReadableName())}, //$NON-NLS-1$

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-

-public void invalidExplicitConstructorCall(ASTNode location) {

-	

-	this.handle(

-		IProblem.InvalidExplicitConstructorCall,

-		NoArgument,

-		NoArgument,

-		location.sourceStart,

-		location.sourceEnd);

-}

-

-public void invalidExpressionAsStatement(Expression expression){

-	this.handle(

-		IProblem.InvalidExpressionAsStatement,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void invalidField(FieldReference fieldRef, TypeBinding searchedType) {

-	int id = IProblem.UndefinedField;

-	FieldBinding field = fieldRef.binding;

-	switch (field.problemId()) {

-		case NotFound :

-			id = IProblem.UndefinedField;

-/* also need to check that the searchedType is the receiver type

-			if (searchedType.isHierarchyInconsistent())

-				severity = SecondaryError;

-*/

-			break;

-		case NotVisible :

-			id = IProblem.NotVisibleField;

-			break;

-		case Ambiguous :

-			id = IProblem.AmbiguousField;

-			break;

-		case NonStaticReferenceInStaticContext :

-			id = IProblem.NonStaticFieldFromStaticInvocation;

-			break;

-		case NonStaticReferenceInConstructorInvocation :

-			id = IProblem.InstanceFieldDuringConstructorInvocation;

-			break;

-		case InheritedNameHidesEnclosingName :

-			id = IProblem.InheritedFieldHidesEnclosingName;

-			break;

-		case ReceiverTypeNotVisible :

-			this.handle(

-				IProblem.NotVisibleType, // cannot occur in javadoc comments

-				new String[] {new String(searchedType.leafComponentType().readableName())},

-				new String[] {new String(searchedType.leafComponentType().shortReadableName())},

-				fieldRef.receiver.sourceStart,

-				fieldRef.receiver.sourceEnd);

-			return;

-			

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-

-	String[] arguments = new String[] {new String(field.readableName())};

-	this.handle(

-		id,

-		arguments,

-		arguments,

-		fieldRef.sourceStart,

-		fieldRef.sourceEnd);

-}

-public void invalidField(NameReference nameRef, FieldBinding field) {

-	int id = IProblem.UndefinedField;

-	switch (field.problemId()) {

-		case NotFound :

-			id = IProblem.UndefinedField;

-			break;

-		case NotVisible :

-			id = IProblem.NotVisibleField;

-			break;

-		case Ambiguous :

-			id = IProblem.AmbiguousField;

-			break;

-		case NonStaticReferenceInStaticContext :

-			id = IProblem.NonStaticFieldFromStaticInvocation;

-			break;

-		case NonStaticReferenceInConstructorInvocation :

-			id = IProblem.InstanceFieldDuringConstructorInvocation;

-			break;

-		case InheritedNameHidesEnclosingName :

-			id = IProblem.InheritedFieldHidesEnclosingName;

-			break;

-		case ReceiverTypeNotVisible :

-			this.handle(

-				IProblem.NotVisibleType,

-				new String[] {new String(field.declaringClass.leafComponentType().readableName())},

-				new String[] {new String(field.declaringClass.leafComponentType().shortReadableName())},

-				nameRef.sourceStart,

-				nameRef.sourceEnd);

-			return;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-	String[] arguments = new String[] {new String(field.readableName())};

-	this.handle(

-		id,

-		arguments,

-		arguments,

-		nameRef.sourceStart,

-		nameRef.sourceEnd);

-}

-public void invalidField(QualifiedNameReference nameRef, FieldBinding field, int index, TypeBinding searchedType) {

-	//the resolution of the index-th field of qname failed

-	//qname.otherBindings[index] is the binding that has produced the error

-

-	//The different targetted errors should be :

-	//UndefinedField

-	//NotVisibleField

-	//AmbiguousField

-

-	if (searchedType.isBaseType()) {

-		this.handle(

-			IProblem.NoFieldOnBaseType,

-			new String[] {

-				new String(searchedType.readableName()),

-				CharOperation.toString(CharOperation.subarray(nameRef.tokens, 0, index)),

-				new String(nameRef.tokens[index])},

-			new String[] {

-				new String(searchedType.sourceName()),

-				CharOperation.toString(CharOperation.subarray(nameRef.tokens, 0, index)),

-				new String(nameRef.tokens[index])},

-			nameRef.sourceStart,

-			(int) nameRef.sourcePositions[index]);

-		return;

-	}

-

-	int id = IProblem.UndefinedField;

-	switch (field.problemId()) {

-		case NotFound :

-			id = IProblem.UndefinedField;

-/* also need to check that the searchedType is the receiver type

-			if (searchedType.isHierarchyInconsistent())

-				severity = SecondaryError;

-*/

-			break;

-		case NotVisible :

-			id = IProblem.NotVisibleField;

-			break;

-		case Ambiguous :

-			id = IProblem.AmbiguousField;

-			break;

-		case NonStaticReferenceInStaticContext :

-			id = IProblem.NonStaticFieldFromStaticInvocation;

-			break;

-		case NonStaticReferenceInConstructorInvocation :

-			id = IProblem.InstanceFieldDuringConstructorInvocation;

-			break;

-		case InheritedNameHidesEnclosingName :

-			id = IProblem.InheritedFieldHidesEnclosingName;

-			break;

-		case ReceiverTypeNotVisible :

-			this.handle(

-				IProblem.NotVisibleType,

-				new String[] {new String(searchedType.leafComponentType().readableName())},

-				new String[] {new String(searchedType.leafComponentType().shortReadableName())},

-				nameRef.sourceStart,

-				nameRef.sourceEnd);

-			return;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-	String[] arguments = new String[] {CharOperation.toString(CharOperation.subarray(nameRef.tokens, 0, index + 1))};

-	this.handle(

-		id, 

-		arguments,

-		arguments,

-		nameRef.sourceStart, 

-		(int) nameRef.sourcePositions[index]);

-}

-public void invalidFileNameForPackageAnnotations(Annotation annotation) {

-	this.handle(

-			IProblem.InvalidFileNameForPackageAnnotations,

-			NoArgument,

-			NoArgument,

-			annotation.sourceStart,

-			annotation.sourceEnd);	

-}

-public void invalidMethod(MessageSend messageSend, MethodBinding method) {

-	int id = IProblem.UndefinedMethod; //default...

-    MethodBinding shownMethod = method;

-	switch (method.problemId()) {

-		case NotFound :

-			id = IProblem.UndefinedMethod;

-			ProblemMethodBinding problemMethod = (ProblemMethodBinding) method;

-			if (problemMethod.closestMatch != null) {

-			    	shownMethod = problemMethod.closestMatch;

-					String closestParameterTypeNames = parametersAsString(shownMethod.parameters, false);

-					String parameterTypeNames = parametersAsString(method.parameters, false);

-					String closestParameterTypeShortNames = parametersAsString(shownMethod.parameters, true);

-					String parameterTypeShortNames = parametersAsString(method.parameters, true);

-					if (closestParameterTypeShortNames.equals(parameterTypeShortNames)){

-						closestParameterTypeShortNames = closestParameterTypeNames;

-						parameterTypeShortNames = parameterTypeNames;

-					}

-					this.handle(

-						IProblem.ParameterMismatch,

-						new String[] {

-							new String(shownMethod.declaringClass.readableName()),

-							new String(shownMethod.selector),

-							closestParameterTypeNames,

-							parameterTypeNames 

-						},

-						new String[] {

-							new String(shownMethod.declaringClass.shortReadableName()),

-							new String(shownMethod.selector),

-							closestParameterTypeShortNames,

-							parameterTypeShortNames

-						},

-						(int) (messageSend.nameSourcePosition >>> 32),

-						(int) messageSend.nameSourcePosition);

-					return;

-			}			

-			break;

-		case NotVisible :

-			id = IProblem.NotVisibleMethod;

-			problemMethod = (ProblemMethodBinding) method;

-			if (problemMethod.closestMatch != null) {

-			    shownMethod = problemMethod.closestMatch.original();

-		    }			

-			break;

-		case Ambiguous :

-			id = IProblem.AmbiguousMethod;

-			break;

-		case InheritedNameHidesEnclosingName :

-			id = IProblem.InheritedMethodHidesEnclosingName;

-			break;

-		case NonStaticReferenceInConstructorInvocation :

-			id = IProblem.InstanceMethodDuringConstructorInvocation;

-			break;

-		case NonStaticReferenceInStaticContext :

-			id = IProblem.StaticMethodRequested;

-			break;

-		case ReceiverTypeNotVisible :

-			this.handle(

-				IProblem.NotVisibleType,	// cannot occur in javadoc comments

-				new String[] {new String(method.declaringClass.leafComponentType().readableName())},

-				new String[] {new String(method.declaringClass.leafComponentType().shortReadableName())},

-				messageSend.receiver.sourceStart,

-				messageSend.receiver.sourceEnd);

-			return;

-		case ParameterBoundMismatch :

-			problemMethod = (ProblemMethodBinding) method;

-			ParameterizedGenericMethodBinding substitutedMethod = (ParameterizedGenericMethodBinding) problemMethod.closestMatch;

-			shownMethod = substitutedMethod.original();

-			TypeBinding typeArgument = method.parameters[0];

-			TypeVariableBinding typeParameter = (TypeVariableBinding) method.parameters[1];

-			this.handle(

-				IProblem.GenericMethodTypeArgumentMismatch,

-				new String[] { 

-				        new String(shownMethod.selector),

-				        parametersAsString(shownMethod.parameters, false), 

-				        new String(shownMethod.declaringClass.readableName()), 

-				        parametersAsString(substitutedMethod.parameters, false), 

-				        new String(typeArgument.readableName()), 

-				        new String(typeParameter.sourceName), 

-				        parameterBoundAsString(typeParameter, false) },

-				new String[] { 

-				        new String(shownMethod.selector),

-				        parametersAsString(shownMethod.parameters, true), 

-				        new String(shownMethod.declaringClass.shortReadableName()), 

-				        parametersAsString(substitutedMethod.parameters, true), 

-				        new String(typeArgument.shortReadableName()), 

-				        new String(typeParameter.sourceName), 

-				        parameterBoundAsString(typeParameter, true) },

-				(int) (messageSend.nameSourcePosition >>> 32),

-				(int) messageSend.nameSourcePosition);		    

-			return;

-		case TypeParameterArityMismatch :

-			problemMethod = (ProblemMethodBinding) method;

-			shownMethod = problemMethod.closestMatch;

-			if (shownMethod.typeVariables == TypeConstants.NoTypeVariables) {

-				this.handle(

-					IProblem.NonGenericMethod ,

-					new String[] { 

-					        new String(shownMethod.selector),

-					        parametersAsString(shownMethod.parameters, false), 

-					        new String(shownMethod.declaringClass.readableName()), 

-					        parametersAsString(method.parameters, false) },

-					new String[] { 

-					        new String(shownMethod.selector),

-					        parametersAsString(shownMethod.parameters, true), 

-					        new String(shownMethod.declaringClass.shortReadableName()), 

-					        parametersAsString(method.parameters, true) },

-					(int) (messageSend.nameSourcePosition >>> 32),

-					(int) messageSend.nameSourcePosition);		    

-			} else {

-				this.handle(

-					IProblem.IncorrectArityForParameterizedMethod  ,

-					new String[] { 

-					        new String(shownMethod.selector),

-					        parametersAsString(shownMethod.parameters, false), 

-					        new String(shownMethod.declaringClass.readableName()), 

-							parametersAsString(shownMethod.typeVariables, false),

-					        parametersAsString(method.parameters, false) },

-					new String[] { 

-					        new String(shownMethod.selector),

-					        parametersAsString(shownMethod.parameters, true), 

-					        new String(shownMethod.declaringClass.shortReadableName()), 

-							parametersAsString(shownMethod.typeVariables, true),

-					        parametersAsString(method.parameters, true) },

-					(int) (messageSend.nameSourcePosition >>> 32),

-					(int) messageSend.nameSourcePosition);		    

-			}

-			return;

-		case ParameterizedMethodTypeMismatch :

-			problemMethod = (ProblemMethodBinding) method;

-			shownMethod = problemMethod.closestMatch;

-			this.handle(

-				IProblem.ParameterizedMethodArgumentTypeMismatch,

-				new String[] { 

-				        new String(shownMethod.selector),

-				        parametersAsString(shownMethod.parameters, false), 

-				        new String(shownMethod.declaringClass.readableName()), 

-						parametersAsString(((ParameterizedGenericMethodBinding)shownMethod).typeArguments, false),

-				        parametersAsString(method.parameters, false) },

-				new String[] { 

-				        new String(shownMethod.selector),

-				        parametersAsString(shownMethod.parameters, true), 

-				        new String(shownMethod.declaringClass.shortReadableName()), 

-						parametersAsString(((ParameterizedGenericMethodBinding)shownMethod).typeArguments, true),

-				        parametersAsString(method.parameters, true) },

-				(int) (messageSend.nameSourcePosition >>> 32),

-				(int) messageSend.nameSourcePosition);		    

-			return;

-		case TypeArgumentsForRawGenericMethod :

-			problemMethod = (ProblemMethodBinding) method;

-			shownMethod = problemMethod.closestMatch;

-			this.handle(

-				IProblem.TypeArgumentsForRawGenericMethod ,

-				new String[] { 

-				        new String(shownMethod.selector),

-				        parametersAsString(shownMethod.parameters, false), 

-				        new String(shownMethod.declaringClass.readableName()), 

-				        parametersAsString(method.parameters, false) },

-				new String[] { 

-				        new String(shownMethod.selector),

-				        parametersAsString(shownMethod.parameters, true), 

-				        new String(shownMethod.declaringClass.shortReadableName()), 

-				        parametersAsString(method.parameters, true) },

-				(int) (messageSend.nameSourcePosition >>> 32),

-				(int) messageSend.nameSourcePosition);		       

-			return;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-

-	this.handle(

-		id,

-		new String[] {

-			new String(method.declaringClass.readableName()),

-			new String(shownMethod.selector), parametersAsString(shownMethod.parameters, false)},

-		new String[] {

-			new String(method.declaringClass.shortReadableName()),

-			new String(shownMethod.selector), parametersAsString(shownMethod.parameters, true)},

-		(int) (messageSend.nameSourcePosition >>> 32),

-		(int) messageSend.nameSourcePosition);

-}

-public void invalidNullToSynchronize(Expression expression) {

-	this.handle(

-		IProblem.InvalidNullToSynchronized,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void invalidOperator(BinaryExpression expression, TypeBinding leftType, TypeBinding rightType) {

-	String leftName = new String(leftType.readableName());

-	String rightName = new String(rightType.readableName());

-	String leftShortName = new String(leftType.shortReadableName());

-	String rightShortName = new String(rightType.shortReadableName());

-	if (leftShortName.equals(rightShortName)){

-		leftShortName = leftName;

-		rightShortName = rightName;

-	}

-	this.handle(

-		IProblem.InvalidOperator,

-		new String[] {

-			expression.operatorToString(),

-			leftName + ", " + rightName}, //$NON-NLS-1$

-		new String[] {

-			expression.operatorToString(),

-			leftShortName + ", " + rightShortName}, //$NON-NLS-1$

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void invalidOperator(CompoundAssignment assign, TypeBinding leftType, TypeBinding rightType) {

-	String leftName = new String(leftType.readableName());

-	String rightName = new String(rightType.readableName());

-	String leftShortName = new String(leftType.shortReadableName());

-	String rightShortName = new String(rightType.shortReadableName());

-	if (leftShortName.equals(rightShortName)){

-		leftShortName = leftName;

-		rightShortName = rightName;

-	}

-	this.handle(

-		IProblem.InvalidOperator,

-		new String[] {

-			assign.operatorToString(),

-			leftName + ", " + rightName}, //$NON-NLS-1$

-		new String[] {

-			assign.operatorToString(),

-			leftShortName + ", " + rightShortName}, //$NON-NLS-1$

-		assign.sourceStart,

-		assign.sourceEnd);

-}

-public void invalidOperator(UnaryExpression expression, TypeBinding type) {

-	this.handle(

-		IProblem.InvalidOperator,

-		new String[] {expression.operatorToString(), new String(type.readableName())},

-		new String[] {expression.operatorToString(), new String(type.shortReadableName())},

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void invalidParameterizedExceptionType(TypeBinding exceptionType, ASTNode location) {

-	this.handle(

-		IProblem.InvalidParameterizedExceptionType,

-		new String[] {new String(exceptionType.readableName())},

-		new String[] {new String(exceptionType.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void invalidParenthesizedExpression(ASTNode reference) {

-	this.handle(

-		IProblem.InvalidParenthesizedExpression,

-		NoArgument,

-		NoArgument,

-		reference.sourceStart,

-		reference.sourceEnd);

-}

-public void invalidType(ASTNode location, TypeBinding type) {

-	int id = IProblem.UndefinedType; // default

-	switch (type.problemId()) {

-		case NotFound :

-			id = IProblem.UndefinedType;

-			break;

-		case NotVisible :

-			id = IProblem.NotVisibleType;

-			break;

-		case Ambiguous :

-			id = IProblem.AmbiguousType;

-			break;

-		case InternalNameProvided :

-			id = IProblem.InternalTypeNameProvided;

-			break;

-		case InheritedNameHidesEnclosingName :

-			id = IProblem.InheritedTypeHidesEnclosingName;

-			break;

-		case NonStaticReferenceInStaticContext :

-			id = IProblem.TypeVariableReferenceFromStaticContext;

-		    break;

-		case IllegalSuperTypeVariable : 

-		    id = IProblem.IllegalTypeVariableSuperReference;

-		    break;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-	

-	int end = location.sourceEnd;

-	if (location instanceof QualifiedNameReference) {

-		QualifiedNameReference ref = (QualifiedNameReference) location;

-		if (ref.indexOfFirstFieldBinding >= 1)

-			end = (int) ref.sourcePositions[ref.indexOfFirstFieldBinding - 1];

-	} else if (location instanceof QualifiedTypeReference) {

-		QualifiedTypeReference ref = (QualifiedTypeReference) location;

-		if (type instanceof ReferenceBinding) {

-			char[][] name = ((ReferenceBinding) type).compoundName;

-			end = (int) ref.sourcePositions[name.length - 1];

-		}

-	} else if (location instanceof ImportReference) {

-		ImportReference ref = (ImportReference) location;

-		if (type instanceof ReferenceBinding) {

-			char[][] name = ((ReferenceBinding) type).compoundName;

-			end = (int) ref.sourcePositions[name.length - 1];

-		}

-	}

-	this.handle(

-		id,

-		new String[] {new String(type.readableName()) },	

-		new String[] {new String(type.shortReadableName())},

-		location.sourceStart,

-		end);

-}

-public void invalidTypeForCollection(Expression expression) {

-	this.handle(

-			IProblem.InvalidTypeForCollection,

-			NoArgument,

-			NoArgument,

-			expression.sourceStart,

-			expression.sourceEnd);

-}

-public void invalidTypeReference(Expression expression) {

-	this.handle(

-		IProblem.InvalidTypeExpression,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void invalidTypeToSynchronize(Expression expression, TypeBinding type) {

-	this.handle(

-		IProblem.InvalidTypeToSynchronized,

-		new String[] {new String(type.readableName())},

-		new String[] {new String(type.shortReadableName())},

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void invalidTypeVariableAsException(TypeBinding exceptionType, ASTNode location) {

-	this.handle(

-		IProblem.InvalidTypeVariableExceptionType,

-		new String[] {new String(exceptionType.readableName())},

-		new String[] {new String(exceptionType.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void invalidUnaryExpression(Expression expression) {

-	this.handle(

-		IProblem.InvalidUnaryExpression,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void invalidUsageOfAnnotation(Annotation annotation) {

-	this.handle(

-		IProblem.InvalidUsageOfAnnotations,

-		NoArgument, 

-		NoArgument,

-		annotation.sourceStart,

-		annotation.sourceEnd);	

-}

-public void invalidUsageOfAnnotationDeclarations(AnnotationTypeDeclaration annotationTypeDeclaration) {

-	this.handle(

-		IProblem.InvalidUsageOfAnnotationDeclarations,

-		NoArgument, 

-		NoArgument, 

-		annotationTypeDeclaration.sourceStart,

-		annotationTypeDeclaration.sourceEnd);

-}

-public void invalidUsageOfEnumDeclarations(EnumDeclaration enumDeclaration) {

-	this.handle(

-		IProblem.InvalidUsageOfEnumDeclarations,

-		NoArgument, 

-		NoArgument, 

-		enumDeclaration.sourceStart,

-		enumDeclaration.sourceEnd);

-}

-public void invalidUsageOfForeachStatements(LocalDeclaration elementVariable, Expression collection) {

-	this.handle(

-		IProblem.InvalidUsageOfForeachStatements,

-		NoArgument, 

-		NoArgument, 

-		elementVariable.declarationSourceStart,

-		collection.sourceEnd);

-}

-public void invalidUsageOfStaticImports(ImportReference staticImport) {

-	this.handle(

-		IProblem.InvalidUsageOfStaticImports,

-		NoArgument, 

-		NoArgument, 

-		staticImport.declarationSourceStart,

-		staticImport.declarationSourceEnd);

-}

-public void invalidUsageOfTypeArguments(TypeReference firstTypeReference, TypeReference lastTypeReference) {

-	this.handle(

-		IProblem.InvalidUsageOfTypeArguments,

-		NoArgument, 

-		NoArgument, 

-		firstTypeReference.sourceStart,

-		lastTypeReference.sourceEnd);

-}

-public void invalidUsageOfTypeParameters(TypeParameter firstTypeParameter, TypeParameter lastTypeParameter) {

-	this.handle(

-		IProblem.InvalidUsageOfTypeParameters,

-		NoArgument, 

-		NoArgument, 

-		firstTypeParameter.declarationSourceStart,

-		lastTypeParameter.declarationSourceEnd);

-}

-public void invalidUsageOfVarargs(Argument argument) {

-	this.handle(

-		IProblem.InvalidUsageOfVarargs,

-		NoArgument, 

-		NoArgument, 

-		argument.type.sourceStart,

-		argument.sourceEnd);

-}

-public void isClassPathCorrect(char[][] wellKnownTypeName, CompilationUnitDeclaration compUnitDecl) {

-	this.referenceContext = compUnitDecl;

-	String[] arguments = new String[] {CharOperation.toString(wellKnownTypeName)};

-	this.handle(

-		IProblem.IsClassPathCorrect,

-		arguments, 

-		arguments,

-		AbortCompilation | Error,

-		0,

-		0);

-}

-

-private boolean isIdentifier(int token) {

-	return token == TerminalTokens.TokenNameIdentifier;

-}

-

-private boolean isKeyword(int token) {

-	switch(token) {

-		case TerminalTokens.TokenNameabstract:

-		case TerminalTokens.TokenNameassert:

-		case TerminalTokens.TokenNamebyte:

-		case TerminalTokens.TokenNamebreak:

-		case TerminalTokens.TokenNameboolean:

-		case TerminalTokens.TokenNamecase:

-		case TerminalTokens.TokenNamechar:

-		case TerminalTokens.TokenNamecatch:

-		case TerminalTokens.TokenNameclass:

-		case TerminalTokens.TokenNamecontinue:

-		case TerminalTokens.TokenNamedo:

-		case TerminalTokens.TokenNamedouble:

-		case TerminalTokens.TokenNamedefault:

-		case TerminalTokens.TokenNameelse:

-		case TerminalTokens.TokenNameextends:

-		case TerminalTokens.TokenNamefor:

-		case TerminalTokens.TokenNamefinal:

-		case TerminalTokens.TokenNamefloat:

-		case TerminalTokens.TokenNamefalse:

-		case TerminalTokens.TokenNamefinally:

-		case TerminalTokens.TokenNameif:

-		case TerminalTokens.TokenNameint:

-		case TerminalTokens.TokenNameimport:

-		case TerminalTokens.TokenNameinterface:

-		case TerminalTokens.TokenNameimplements:

-		case TerminalTokens.TokenNameinstanceof:

-		case TerminalTokens.TokenNamelong:

-		case TerminalTokens.TokenNamenew:

-		case TerminalTokens.TokenNamenull:

-		case TerminalTokens.TokenNamenative:

-		case TerminalTokens.TokenNamepublic:

-		case TerminalTokens.TokenNamepackage:

-		case TerminalTokens.TokenNameprivate:

-		case TerminalTokens.TokenNameprotected:

-		case TerminalTokens.TokenNamereturn:

-		case TerminalTokens.TokenNameshort:

-		case TerminalTokens.TokenNamesuper:

-		case TerminalTokens.TokenNamestatic:

-		case TerminalTokens.TokenNameswitch:

-		case TerminalTokens.TokenNamestrictfp:

-		case TerminalTokens.TokenNamesynchronized:

-		case TerminalTokens.TokenNametry:

-		case TerminalTokens.TokenNamethis:

-		case TerminalTokens.TokenNametrue:

-		case TerminalTokens.TokenNamethrow:

-		case TerminalTokens.TokenNamethrows:

-		case TerminalTokens.TokenNametransient:

-		case TerminalTokens.TokenNamevoid:

-		case TerminalTokens.TokenNamevolatile:

-		case TerminalTokens.TokenNamewhile:

-			return true;

-		default: 

-			return false;

-	}

-}

-

-private boolean isLiteral(int token) {

-	switch(token) {

-		case TerminalTokens.TokenNameIntegerLiteral:

-		case TerminalTokens.TokenNameLongLiteral:

-		case TerminalTokens.TokenNameFloatingPointLiteral:

-		case TerminalTokens.TokenNameDoubleLiteral:

-		case TerminalTokens.TokenNameStringLiteral:

-		case TerminalTokens.TokenNameCharacterLiteral:

-			return true;

-		default: 

-			return false;

-	}

-}

-public void javadocAmbiguousMethodReference(int sourceStart, int sourceEnd, Binding fieldBinding, int modifiers) {

-	int id = IProblem.JavadocAmbiguousMethodReference;

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		String[] arguments = new String[] {new String(fieldBinding.readableName())};

-		handle(id, arguments, arguments, sourceStart, sourceEnd);

-	}

-}

-public void javadocDeprecatedField(FieldBinding field, ASTNode location, int modifiers) {

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		this.handle(

-			IProblem.JavadocUsingDeprecatedField,

-			new String[] {new String(field.declaringClass.readableName()), new String(field.name)},

-			new String[] {new String(field.declaringClass.shortReadableName()), new String(field.name)},

-			location.sourceStart,

-			location.sourceEnd);

-	}

-}

-public void javadocDeprecatedMethod(MethodBinding method, ASTNode location, int modifiers) {

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		if (method.isConstructor()) {

-			this.handle(

-				IProblem.JavadocUsingDeprecatedConstructor,

-				new String[] {new String(method.declaringClass.readableName()), parametersAsString(method.parameters, false)},

-				new String[] {new String(method.declaringClass.shortReadableName()), parametersAsString(method.parameters, true)},

-				location.sourceStart,

-				location.sourceEnd);

-		} else {

-			this.handle(

-				IProblem.JavadocUsingDeprecatedMethod,

-				new String[] {new String(method.declaringClass.readableName()), new String(method.selector), parametersAsString(method.parameters, false)},

-				new String[] {new String(method.declaringClass.shortReadableName()), new String(method.selector), parametersAsString(method.parameters, true)},

-				location.sourceStart,

-				location.sourceEnd);

-		}

-	}

-}

-public void javadocDeprecatedType(TypeBinding type, ASTNode location, int modifiers) {

-	if (location == null) return; // 1G828DN - no type ref for synthetic arguments

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		this.handle(

-			IProblem.JavadocUsingDeprecatedType,

-			new String[] {new String(type.readableName())},

-			new String[] {new String(type.shortReadableName())},

-			location.sourceStart,

-			location.sourceEnd);

-	}

-}

-public void javadocDuplicatedParamTag(JavadocSingleNameReference param, int modifiers) {

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		String[] arguments = new String[] {String.valueOf(param.token)};

-		this.handle(IProblem.JavadocDuplicateParamName, arguments, arguments, param.sourceStart, param.sourceEnd);

-	}

-}

-public void javadocDuplicatedReturnTag(int sourceStart, int sourceEnd){

-	this.handle(IProblem.JavadocDuplicateReturnTag, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocDuplicatedThrowsClassName(TypeReference typeReference, int modifiers) {

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		String[] arguments = new String[] {String.valueOf(typeReference.resolvedType.sourceName())};

-		this.handle(IProblem.JavadocDuplicateThrowsClassName, arguments, arguments, typeReference.sourceStart, typeReference.sourceEnd);

-	}

-}

-public void javadocEmptyReturnTag(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocEmptyReturnTag, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocErrorNoMethodFor(MessageSend messageSend, TypeBinding recType, TypeBinding[] params, int modifiers) {

-	StringBuffer buffer = new StringBuffer();

-	StringBuffer shortBuffer = new StringBuffer();

-	for (int i = 0, length = params.length; i < length; i++) {

-		if (i != 0){

-			buffer.append(", "); //$NON-NLS-1$

-			shortBuffer.append(", "); //$NON-NLS-1$

-		}

-		buffer.append(new String(params[i].readableName()));

-		shortBuffer.append(new String(params[i].shortReadableName()));

-	}

-

-	int id = recType.isArrayType() ? IProblem.JavadocNoMessageSendOnArrayType : IProblem.JavadocNoMessageSendOnBaseType;

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		this.handle(

-			id,

-			new String[] {new String(recType.readableName()), new String(messageSend.selector), buffer.toString()},

-			new String[] {new String(recType.shortReadableName()), new String(messageSend.selector), shortBuffer.toString()},

-			messageSend.sourceStart,

-			messageSend.sourceEnd);

-	}

-}

-public void javadocInvalidConstructor(Statement statement, MethodBinding targetConstructor, int modifiers) {

-

-	if (!javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		return;

-	}

-//	boolean insideDefaultConstructor = 

-//		(this.referenceContext instanceof ConstructorDeclaration)

-//			&& ((ConstructorDeclaration)this.referenceContext).isDefaultConstructor();

-//	boolean insideImplicitConstructorCall =

-//		(statement instanceof ExplicitConstructorCall)

-//			&& (((ExplicitConstructorCall) statement).accessMode == ExplicitConstructorCall.ImplicitSuper);

-

-	int id = IProblem.JavadocUndefinedConstructor; //default...

-	switch (targetConstructor.problemId()) {

-		case NotFound :

-//			if (insideDefaultConstructor){

-//				id = IProblem.JavadocUndefinedConstructorInDefaultConstructor;

-//			} else if (insideImplicitConstructorCall){

-//				id = IProblem.JavadocUndefinedConstructorInImplicitConstructorCall;

-//			} else {

-				id = IProblem.JavadocUndefinedConstructor;

-//			}

-			break;

-		case NotVisible :

-//			if (insideDefaultConstructor){

-//				id = IProblem.JavadocNotVisibleConstructorInDefaultConstructor;

-//			} else if (insideImplicitConstructorCall){

-//				id = IProblem.JavadocNotVisibleConstructorInImplicitConstructorCall;

-//			} else {

-				id = IProblem.JavadocNotVisibleConstructor;

-//			}

-			break;

-		case Ambiguous :

-//			if (insideDefaultConstructor){

-//				id = IProblem.AmbiguousConstructorInDefaultConstructor;

-//			} else if (insideImplicitConstructorCall){

-//				id = IProblem.AmbiguousConstructorInImplicitConstructorCall;

-//			} else {

-				id = IProblem.JavadocAmbiguousConstructor;

-//			}

-			break;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-

-	this.handle(

-		id,

-		new String[] {new String(targetConstructor.declaringClass.readableName()), parametersAsString(targetConstructor.parameters, false)},

-		new String[] {new String(targetConstructor.declaringClass.shortReadableName()), parametersAsString(targetConstructor.parameters, true)},

-		statement.sourceStart,

-		statement.sourceEnd);

-}

-/*

- * Similar implementation than invalidField(FieldReference...)

- * Note that following problem id cannot occur for Javadoc:

- * 	- NonStaticReferenceInStaticContext :

- * 	- NonStaticReferenceInConstructorInvocation :

- * 	- ReceiverTypeNotVisible :

- */

-public void javadocInvalidField(int sourceStart, int sourceEnd, Binding fieldBinding, TypeBinding searchedType, int modifiers) {

-	int id = IProblem.JavadocUndefinedField;

-	switch (fieldBinding.problemId()) {

-		case NotFound :

-			id = IProblem.JavadocUndefinedField;

-			break;

-		case NotVisible :

-			id = IProblem.JavadocNotVisibleField;

-			break;

-		case Ambiguous :

-			id = IProblem.JavadocAmbiguousField;

-			break;

-		case InheritedNameHidesEnclosingName :

-			id = IProblem.JavadocInheritedFieldHidesEnclosingName;

-			break;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		String[] arguments = new String[] {new String(fieldBinding.readableName())};

-		handle(id, arguments, arguments, sourceStart, sourceEnd);

-	}

-}

-/*

- * Similar implementation than invalidMethod(MessageSend...)

- * Note that following problem id cannot occur for Javadoc:

- * 	- NonStaticReferenceInStaticContext :

- * 	- NonStaticReferenceInConstructorInvocation :

- * 	- ReceiverTypeNotVisible :

- */

-public void javadocInvalidMethod(MessageSend messageSend, MethodBinding method, int modifiers) {

-	if (!javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		return;

-	}

-	int id = IProblem.JavadocUndefinedMethod; //default...

-	switch (method.problemId()) {

-		case NotFound :

-			id = IProblem.JavadocUndefinedMethod;

-			break;

-		case NotVisible :

-			id = IProblem.JavadocNotVisibleMethod;

-			break;

-		case Ambiguous :

-			id = IProblem.JavadocAmbiguousMethod;

-			break;

-		case InheritedNameHidesEnclosingName :

-			id = IProblem.JavadocInheritedMethodHidesEnclosingName;

-			break;

-		case NoError : // 0

-		default :

-			needImplementation(); // want to fail to see why we were here...

-			break;

-	}

-

-	if (id == IProblem.JavadocUndefinedMethod) {

-		ProblemMethodBinding problemMethod = (ProblemMethodBinding) method;

-		if (problemMethod.closestMatch != null) {

-				String closestParameterTypeNames = parametersAsString(problemMethod.closestMatch.parameters, false);

-				String parameterTypeNames = parametersAsString(method.parameters, false);

-				String closestParameterTypeShortNames = parametersAsString(problemMethod.closestMatch.parameters, true);

-				String parameterTypeShortNames = parametersAsString(method.parameters, true);

-				if (closestParameterTypeShortNames.equals(parameterTypeShortNames)){

-					closestParameterTypeShortNames = closestParameterTypeNames;

-					parameterTypeShortNames = parameterTypeNames;

-				}

-				this.handle(

-					IProblem.JavadocParameterMismatch,

-					new String[] {

-						new String(problemMethod.closestMatch.declaringClass.readableName()),

-						new String(problemMethod.closestMatch.selector),

-						closestParameterTypeNames,

-						parameterTypeNames 

-					},

-					new String[] {

-						new String(problemMethod.closestMatch.declaringClass.shortReadableName()),

-						new String(problemMethod.closestMatch.selector),

-						closestParameterTypeShortNames,

-						parameterTypeShortNames

-					},

-					(int) (messageSend.nameSourcePosition >>> 32),

-					(int) messageSend.nameSourcePosition);

-				return;

-		}

-	}

-

-	this.handle(

-		id,

-		new String[] {

-			new String(method.declaringClass.readableName()),

-			new String(method.selector), parametersAsString(method.parameters, false)},

-		new String[] {

-			new String(method.declaringClass.shortReadableName()),

-			new String(method.selector), parametersAsString(method.parameters, true)},

-		(int) (messageSend.nameSourcePosition >>> 32),

-		(int) messageSend.nameSourcePosition);

-}

-public void javadocInvalidParamName(JavadocSingleNameReference param, int modifiers) {

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		String[] arguments = new String[] {String.valueOf(param.token)};

-		this.handle(IProblem.JavadocInvalidParamName, arguments, arguments, param.sourceStart, param.sourceEnd);

-	}

-}

-public void javadocInvalidReference(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocInvalidReference, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocInvalidSeeReferenceArgs(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocInvalidSeeArgs, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocInvalidSeeUrlReference(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocInvalidSeeHref, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocInvalidTag(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocInvalidTag, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocInvalidThrowsClass(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocInvalidThrowsClass, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocInvalidThrowsClassName(TypeReference typeReference, int modifiers) {

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		String[] arguments = new String[] {String.valueOf(typeReference.resolvedType.sourceName())};

-		this.handle(IProblem.JavadocInvalidThrowsClassName, arguments, arguments, typeReference.sourceStart, typeReference.sourceEnd);

-	}

-}

-public void javadocInvalidType(ASTNode location, TypeBinding type, int modifiers) {

-	if (javadocVisibility(this.options.reportInvalidJavadocTagsVisibility, modifiers)) {

-		int id = IProblem.JavadocUndefinedType; // default

-		switch (type.problemId()) {

-			case NotFound :

-				id = IProblem.JavadocUndefinedType;

-				break;

-			case NotVisible :

-				id = IProblem.JavadocNotVisibleType;

-				break;

-			case Ambiguous :

-				id = IProblem.JavadocAmbiguousType;

-				break;

-			case InternalNameProvided :

-				id = IProblem.JavadocInternalTypeNameProvided;

-				break;

-			case InheritedNameHidesEnclosingName :

-				id = IProblem.JavadocInheritedNameHidesEnclosingTypeName;

-				break;

-			case NoError : // 0

-			default :

-				needImplementation(); // want to fail to see why we were here...

-				break;

-		}

-		this.handle(

-			id,

-			new String[] {new String(type.readableName())},

-			new String[] {new String(type.shortReadableName())},

-			location.sourceStart,

-			location.sourceEnd);

-	}

-}

-public void javadocInvalidValueReference(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocInvalidValueReference, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocMalformedSeeReference(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocMalformedSeeReference, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocMissing(int sourceStart, int sourceEnd, int modifiers){

-	boolean overriding = (modifiers & (CompilerModifiers.AccImplementing+CompilerModifiers.AccOverriding)) != 0;

-	boolean report = (this.options.getSeverity(CompilerOptions.MissingJavadocComments) != ProblemSeverities.Ignore)

-					&& (!overriding || this.options.reportMissingJavadocCommentsOverriding);

-	if (report) {

-		String arg = javadocVisibilityArgument(this.options.reportMissingJavadocCommentsVisibility, modifiers);

-		if (arg != null) {

-			String[] arguments = new String[] { arg };

-			this.handle(IProblem.JavadocMissing, arguments, arguments, sourceStart, sourceEnd);

-		}

-	}

-}

-public void javadocMissingHashCharacter(int sourceStart, int sourceEnd, String ref){

-	String[] arguments = new String[] { ref };

-	this.handle(IProblem.JavadocMissingHashCharacter, arguments, arguments, sourceStart, sourceEnd);

-}

-public void javadocMissingParamName(int sourceStart, int sourceEnd){

-	this.handle(IProblem.JavadocMissingParamName, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocMissingParamTag(Argument param, int modifiers) {

-	boolean overriding = (modifiers & (CompilerModifiers.AccImplementing+CompilerModifiers.AccOverriding)) != 0;

-	boolean report = (this.options.getSeverity(CompilerOptions.MissingJavadocTags) != ProblemSeverities.Ignore)

-					&& (!overriding || this.options.reportMissingJavadocTagsOverriding);

-	if (report && javadocVisibility(this.options.reportMissingJavadocTagsVisibility, modifiers)) {

-		String[] arguments = new String[] { String.valueOf(param.name) };

-		this.handle(IProblem.JavadocMissingParamTag, arguments, arguments, param.sourceStart, param.sourceEnd);

-	}

-}

-public void javadocMissingReference(int sourceStart, int sourceEnd){

-	this.handle(IProblem.JavadocMissingReference, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocMissingReturnTag(int sourceStart, int sourceEnd, int modifiers){

-	boolean overriding = (modifiers & (CompilerModifiers.AccImplementing+CompilerModifiers.AccOverriding)) != 0;

-	boolean report = (this.options.getSeverity(CompilerOptions.MissingJavadocTags) != ProblemSeverities.Ignore)

-					&& (!overriding || this.options.reportMissingJavadocTagsOverriding);

-	if (report && javadocVisibility(this.options.reportMissingJavadocTagsVisibility, modifiers)) {

-		this.handle(IProblem.JavadocMissingReturnTag, NoArgument, NoArgument, sourceStart, sourceEnd);

-	}

-}

-public void javadocMissingThrowsClassName(int sourceStart, int sourceEnd){

-	this.handle(IProblem.JavadocMissingThrowsClassName, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocMissingThrowsTag(TypeReference typeRef, int modifiers){

-	boolean overriding = (modifiers & (CompilerModifiers.AccImplementing+CompilerModifiers.AccOverriding)) != 0;

-	boolean report = (this.options.getSeverity(CompilerOptions.MissingJavadocTags) != ProblemSeverities.Ignore)

-					&& (!overriding || this.options.reportMissingJavadocTagsOverriding);

-	if (report && javadocVisibility(this.options.reportMissingJavadocTagsVisibility, modifiers)) {

-		String[] arguments = new String[] { String.valueOf(typeRef.resolvedType.sourceName()) };

-		this.handle(IProblem.JavadocMissingThrowsTag, arguments, arguments, typeRef.sourceStart, typeRef.sourceEnd);

-	}

-}

-public void javadocUnexpectedTag(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocUnexpectedTag, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocUnexpectedText(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocUnexpectedText, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-public void javadocUnterminatedInlineTag(int sourceStart, int sourceEnd) {

-	this.handle(IProblem.JavadocUnterminatedInlineTag, NoArgument, NoArgument, sourceStart, sourceEnd);

-}

-private boolean javadocVisibility(int visibility, int modifiers) {

-	switch (modifiers & CompilerModifiers.AccVisibilityMASK) {

-		case IConstants.AccPublic :

-			return true;

-		case IConstants.AccProtected:

-			return (visibility != IConstants.AccPublic);

-		case IConstants.AccDefault:

-			return (visibility == IConstants.AccDefault || visibility == IConstants.AccPrivate);

-		case IConstants.AccPrivate:

-			return (visibility == IConstants.AccPrivate);

-	}

-	return true;

-}

-private String javadocVisibilityArgument(int visibility, int modifiers) {

-	String argument = null;

-	switch (modifiers & CompilerModifiers.AccVisibilityMASK) {

-		case IConstants.AccPublic :

-			argument = CompilerOptions.PUBLIC;

-			break;

-		case IConstants.AccProtected:

-			if (visibility != IConstants.AccPublic) {

-				argument = CompilerOptions.PROTECTED;

-			}

-			break;

-		case IConstants.AccDefault:

-			if (visibility == IConstants.AccDefault || visibility == IConstants.AccPrivate) {

-				argument = CompilerOptions.DEFAULT;

-			}

-			break;

-		case IConstants.AccPrivate:

-			if (visibility == IConstants.AccPrivate) {

-				argument = CompilerOptions.PRIVATE;

-			}

-			break;

-	}

-	return argument;

-}

-public void localVariableHiding(LocalDeclaration local, Binding hiddenVariable, boolean  isSpecialArgHidingField) {

-	if (hiddenVariable instanceof LocalVariableBinding) {

-		String[] arguments = new String[] {new String(local.name)  };

-		this.handle(

-			(local instanceof Argument) 

-				? IProblem.ArgumentHidingLocalVariable 

-				: IProblem.LocalVariableHidingLocalVariable,

-			arguments,

-			arguments,

-			local.sourceStart,

-			local.sourceEnd);

-	} else if (hiddenVariable instanceof FieldBinding) {

-		if (isSpecialArgHidingField && !this.options.reportSpecialParameterHidingField){

-			return;

-		}

-		FieldBinding field = (FieldBinding) hiddenVariable;

-		this.handle(

-			(local instanceof Argument)

-				? IProblem.ArgumentHidingField

-				: IProblem.LocalVariableHidingField,

-			new String[] {new String(local.name) , new String(field.declaringClass.readableName()) },

-			new String[] {new String(local.name), new String(field.declaringClass.shortReadableName()) },

-			local.sourceStart,

-			local.sourceEnd);

-	}

-}

-public void methodNameClash(MethodBinding currentMethod, MethodBinding inheritedMethod) {

-

-	this.handle(

-			IProblem.MethodNameClash,

-			new String[] {

-				new String(currentMethod.selector),

-				parametersAsString(currentMethod.original().parameters, false),

-				new String(currentMethod.declaringClass.readableName()),

-				parametersAsString(inheritedMethod.original().parameters, false),

-				new String(inheritedMethod.declaringClass.readableName()),

-			 }, 

-			new String[] {

-				new String(currentMethod.selector),

-				parametersAsString(currentMethod.original().parameters, true),

-				new String(currentMethod.declaringClass.shortReadableName()),

-				parametersAsString(inheritedMethod.original().parameters, true),

-				new String(inheritedMethod.declaringClass.shortReadableName()),

-			 }, 

-			currentMethod.sourceStart(),

-			currentMethod.sourceEnd());

-}	

-

-public void methodNeedBody(AbstractMethodDeclaration methodDecl) {

-	this.handle(

-		IProblem.MethodRequiresBody,

-		NoArgument,

-		NoArgument,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void methodNeedingNoBody(MethodDeclaration methodDecl) {

-	this.handle(

-		((methodDecl.modifiers & IConstants.AccNative) != 0) ? IProblem.BodyForNativeMethod : IProblem.BodyForAbstractMethod,

-		NoArgument,

-		NoArgument,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void methodWithConstructorName(MethodDeclaration methodDecl) {

-	this.handle(

-		IProblem.MethodButWithConstructorName,

-		NoArgument,

-		NoArgument,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void parameterizedMemberTypeMissingArguments(ASTNode location, TypeBinding type) {

-	if (location == null) { // binary case

-	    this.handle(

-			IProblem.MissingArgumentsForParameterizedMemberType,

-			new String[] {new String(type.readableName())},

-			new String[] {new String(type.shortReadableName())},

-			AbortCompilation | Error,

-			0,

-			1);

-	    return;

-	}

-    this.handle(

-		IProblem.MissingArgumentsForParameterizedMemberType,

-		new String[] {new String(type.readableName())},

-		new String[] {new String(type.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void missingReturnType(AbstractMethodDeclaration methodDecl) {

-	this.handle(

-		IProblem.MissingReturnType,

-		NoArgument,

-		NoArgument,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void missingSemiColon(Expression expression){

-	this.handle(

-		IProblem.MissingSemiColon,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void missingSerialVersion(TypeDeclaration typeDecl) {

-	String[] arguments = new String[] {new String(typeDecl.name)};

-	this.handle(

-		IProblem.MissingSerialVersion,

-		arguments,

-		arguments,

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd);

-}

-public void mustDefineDimensionsOrInitializer(ArrayAllocationExpression expression) {

-	this.handle(

-		IProblem.MustDefineEitherDimensionExpressionsOrInitializer,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void mustSpecifyPackage(CompilationUnitDeclaration compUnitDecl) {

-	String[] arguments = new String[] {new String(compUnitDecl.getFileName())};

-	this.handle(

-		IProblem.MustSpecifyPackage,

-		arguments,

-		arguments,

-		compUnitDecl.sourceStart,

-		compUnitDecl.sourceStart + 1);	

-}

-public void mustUseAStaticMethod(MessageSend messageSend, MethodBinding method) {

-	this.handle(

-		IProblem.StaticMethodRequested,

-		new String[] {new String(method.declaringClass.readableName()), new String(method.selector), parametersAsString(method.parameters, false)},

-		new String[] {new String(method.declaringClass.shortReadableName()), new String(method.selector), parametersAsString(method.parameters, true)},

-		messageSend.sourceStart,

-		messageSend.sourceEnd);

-}

-

-public void nativeMethodsCannotBeStrictfp(ReferenceBinding type, AbstractMethodDeclaration methodDecl) {

-	String[] arguments = new String[] {new String(type.sourceName()), new String(methodDecl.selector)};

-	this.handle(

-		IProblem.NativeMethodsCannotBeStrictfp,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void needImplementation() {

-	this.abortDueToInternalError(Util.bind("abort.missingCode")); //$NON-NLS-1$

-}

-public void needToEmulateFieldAccess(FieldBinding field, ASTNode location, boolean isReadAccess) {

-	this.handle(

-		isReadAccess 

-			? IProblem.NeedToEmulateFieldReadAccess

-			: IProblem.NeedToEmulateFieldWriteAccess,

-		new String[] {new String(field.declaringClass.readableName()), new String(field.name)},

-		new String[] {new String(field.declaringClass.shortReadableName()), new String(field.name)},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void needToEmulateMethodAccess(

-	MethodBinding method, 

-	ASTNode location) {

-

-	if (method.isConstructor())

-		this.handle(

-			IProblem.NeedToEmulateConstructorAccess, 

-			new String[] {

-				new String(method.declaringClass.readableName()), 

-				parametersAsString(method.parameters, false)

-			 }, 

-			new String[] {

-				new String(method.declaringClass.shortReadableName()), 

-				parametersAsString(method.parameters, true)

-			 }, 

-			location.sourceStart, 

-			location.sourceEnd); 

-	else

-		this.handle(

-			IProblem.NeedToEmulateMethodAccess, 

-			new String[] {

-				new String(method.declaringClass.readableName()), 

-				new String(method.selector), 

-				parametersAsString(method.parameters, false)

-			 }, 

-			new String[] {

-				new String(method.declaringClass.shortReadableName()), 

-				new String(method.selector), 

-				parametersAsString(method.parameters, true)

-			 }, 

-			location.sourceStart, 

-			location.sourceEnd); 

-}

-public void nestedClassCannotDeclareInterface(TypeDeclaration typeDecl) {

-	String[] arguments = new String[] {new String(typeDecl.name)};

-	this.handle(

-		IProblem.CannotDefineInterfaceInLocalType,

-		arguments,

-		arguments,

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd);

-}

-public void noMoreAvailableSpaceForArgument(LocalVariableBinding local, ASTNode location) {

-	String[] arguments = new String[]{ new String(local.name) };

-	this.handle(

-		local instanceof SyntheticArgumentBinding

-			? IProblem.TooManySyntheticArgumentSlots

-			: IProblem.TooManyArgumentSlots,

-		arguments,

-		arguments,

-		Abort | Error,

-		location.sourceStart,

-		location.sourceEnd);

-}

-

-public void noMoreAvailableSpaceForConstant(TypeDeclaration typeDeclaration) {

-	this.handle(

-		IProblem.TooManyBytesForStringConstant,

-		new String[]{ new String(typeDeclaration.binding.readableName())},

-		new String[]{ new String(typeDeclaration.binding.shortReadableName())},

-		Abort | Error,

-		typeDeclaration.sourceStart,

-		typeDeclaration.sourceEnd);

-}

-public void noMoreAvailableSpaceForLocal(LocalVariableBinding local, ASTNode location) {

-	String[] arguments = new String[]{ new String(local.name) };

-	this.handle(

-		IProblem.TooManyLocalVariableSlots,

-		arguments,

-		arguments,

-		Abort | Error,

-		location.sourceStart,

-		location.sourceEnd);

-}

-

-public void noMoreAvailableSpaceInConstantPool(TypeDeclaration typeDeclaration) {

-	this.handle(

-		IProblem.TooManyConstantsInConstantPool,

-		new String[]{ new String(typeDeclaration.binding.readableName())},

-		new String[]{ new String(typeDeclaration.binding.shortReadableName())},

-		Abort | Error,

-		typeDeclaration.sourceStart,

-		typeDeclaration.sourceEnd);

-}

-public void nonExternalizedStringLiteral(ASTNode location) {

-	this.handle(

-		IProblem.NonExternalizedStringLiteral,

-		NoArgument,

-		NoArgument,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void nonGenericTypeCannotBeParameterized(ASTNode location, TypeBinding type, TypeBinding[] argumentTypes) {

-	if (location == null) { // binary case

-	    this.handle(

-			IProblem.NonGenericType,

-			new String[] {new String(type.readableName()), parametersAsString(argumentTypes, false)},

-			new String[] {new String(type.shortReadableName()), parametersAsString(argumentTypes, true)},

-			AbortCompilation | Error,

-			0,

-			1);

-	    return;

-	}

-    this.handle(

-		IProblem.NonGenericType,

-		new String[] {new String(type.readableName()), parametersAsString(argumentTypes, false)},

-		new String[] {new String(type.shortReadableName()), parametersAsString(argumentTypes, true)},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void nonStaticAccessToStaticField(ASTNode location, FieldBinding field) {

-	this.handle(

-		IProblem.NonStaticAccessToStaticField,

-		new String[] {new String(field.declaringClass.readableName()), new String(field.name)},

-		new String[] {new String(field.declaringClass.shortReadableName()), new String(field.name)},

-		location.sourceStart,

-		fieldLocation(field, location));

-}

-public void nonStaticAccessToStaticMethod(ASTNode location, MethodBinding method) {

-	this.handle(

-		IProblem.NonStaticAccessToStaticMethod,

-		new String[] {new String(method.declaringClass.readableName()), new String(method.selector), parametersAsString(method.parameters, false)},

-		new String[] {new String(method.declaringClass.shortReadableName()), new String(method.selector), parametersAsString(method.parameters, true)},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void noSuchEnclosingInstance(TypeBinding targetType, ASTNode location, boolean isConstructorCall) {

-

-	int id;

-

-	if (isConstructorCall) {

-		//28 = No enclosing instance of type {0} is available due to some intermediate constructor invocation

-		id = IProblem.EnclosingInstanceInConstructorCall;

-	} else if ((location instanceof ExplicitConstructorCall)

-				&& ((ExplicitConstructorCall) location).accessMode == ExplicitConstructorCall.ImplicitSuper) {

-		//20 = No enclosing instance of type {0} is accessible to invoke the super constructor. Must define a constructor and explicitly qualify its super constructor invocation with an instance of {0} (e.g. x.super() where x is an instance of {0}).

-		id = IProblem.MissingEnclosingInstanceForConstructorCall;

-	} else if (location instanceof AllocationExpression 

-				&& (((AllocationExpression) location).binding.declaringClass.isMemberType()

-					|| (((AllocationExpression) location).binding.declaringClass.isAnonymousType() 

-						&& ((AllocationExpression) location).binding.declaringClass.superclass().isMemberType()))) {

-		//21 = No enclosing instance of type {0} is accessible. Must qualify the allocation with an enclosing instance of type {0} (e.g. x.new A() where x is an instance of {0}).

-		id = IProblem.MissingEnclosingInstance;

-	} else { // default

-		//22 = No enclosing instance of the type {0} is accessible in scope

-		id = IProblem.IncorrectEnclosingInstanceReference;

-	}

-

-	this.handle(

-		id,

-		new String[] { new String(targetType.readableName())}, 

-		new String[] { new String(targetType.shortReadableName())}, 

-		location.sourceStart, 

-		location.sourceEnd); 

-}

-public void notCompatibleTypesError(EqualExpression expression, TypeBinding leftType, TypeBinding rightType) {

-	String leftName = new String(leftType.readableName());

-	String rightName = new String(rightType.readableName());

-	String leftShortName = new String(leftType.shortReadableName());

-	String rightShortName = new String(rightType.shortReadableName());

-	if (leftShortName.equals(rightShortName)){

-		leftShortName = leftName;

-		rightShortName = rightName;

-	}

-	this.handle(

-		IProblem.IncompatibleTypesInEqualityOperator,

-		new String[] {leftName, rightName },

-		new String[] {leftShortName, rightShortName },

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void notCompatibleTypesError(InstanceOfExpression expression, TypeBinding leftType, TypeBinding rightType) {

-	String leftName = new String(leftType.readableName());

-	String rightName = new String(rightType.readableName());

-	String leftShortName = new String(leftType.shortReadableName());

-	String rightShortName = new String(rightType.shortReadableName());

-	if (leftShortName.equals(rightShortName)){

-		leftShortName = leftName;

-		rightShortName = rightName;

-	}

-	this.handle(

-		IProblem.IncompatibleTypesInConditionalOperator,

-		new String[] {leftName, rightName },

-		new String[] {leftShortName, rightShortName },

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void notCompatibleTypesErrorInForeach(Expression expression, TypeBinding leftType, TypeBinding rightType) {

-	String leftName = new String(leftType.readableName());

-	String rightName = new String(rightType.readableName());

-	String leftShortName = new String(leftType.shortReadableName());

-	String rightShortName = new String(rightType.shortReadableName());

-	if (leftShortName.equals(rightShortName)){

-		leftShortName = leftName;

-		rightShortName = rightName;

-	}

-	this.handle(

-		IProblem.IncompatibleTypesInForeach,

-		new String[] {leftName, rightName },

-		new String[] {leftShortName, rightShortName },

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void objectCannotBeGeneric(TypeDeclaration typeDecl) {

-	this.handle(

-		IProblem.ObjectCannotBeGeneric,

-		NoArgument,

-		NoArgument,

-		typeDecl.typeParameters[0].sourceStart,

-		typeDecl.typeParameters[typeDecl.typeParameters.length-1].sourceEnd);

-}

-public void objectCannotHaveSuperTypes(SourceTypeBinding type) {

-	this.handle(

-		IProblem.ObjectCannotHaveSuperTypes,

-		NoArgument,

-		NoArgument,

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void operatorOnlyValidOnNumericType(CompoundAssignment  assignment, TypeBinding leftType, TypeBinding rightType) {

-	String leftName = new String(leftType.readableName());

-	String rightName = new String(rightType.readableName());

-	String leftShortName = new String(leftType.shortReadableName());

-	String rightShortName = new String(rightType.shortReadableName());

-	if (leftShortName.equals(rightShortName)){

-		leftShortName = leftName;

-		rightShortName = rightName;

-	}

-	this.handle(

-		IProblem.TypeMismatch,

-		new String[] {leftName, rightName },

-		new String[] {leftShortName, rightShortName },

-		assignment.sourceStart,

-		assignment.sourceEnd);

-}

-public void overridesDeprecatedMethod(MethodBinding localMethod, MethodBinding inheritedMethod) {

-	this.handle(

-		IProblem.OverridingDeprecatedMethod,

-		new String[] {

-			new String(

-					CharOperation.concat(

-						localMethod.declaringClass.readableName(),

-						localMethod.readableName(),

-						'.')),

-			new String(inheritedMethod.declaringClass.readableName())},

-		new String[] {

-			new String(

-					CharOperation.concat(

-						localMethod.declaringClass.shortReadableName(),

-						localMethod.shortReadableName(),

-						'.')),

-			new String(inheritedMethod.declaringClass.shortReadableName())},

-		localMethod.sourceStart(),

-		localMethod.sourceEnd());

-}

-public void overridesPackageDefaultMethod(MethodBinding localMethod, MethodBinding inheritedMethod) {

-	this.handle(

-		IProblem.OverridingNonVisibleMethod,

-		new String[] {

-			new String(

-					CharOperation.concat(

-						localMethod.declaringClass.readableName(),

-						localMethod.readableName(),

-						'.')),

-			new String(inheritedMethod.declaringClass.readableName())},

-		new String[] {

-			new String(

-					CharOperation.concat(

-						localMethod.declaringClass.shortReadableName(),

-						localMethod.shortReadableName(),

-						'.')),

-			new String(inheritedMethod.declaringClass.shortReadableName())},

-		localMethod.sourceStart(),

-		localMethod.sourceEnd());

-}

-public void packageCollidesWithType(CompilationUnitDeclaration compUnitDecl) {

-	String[] arguments = new String[] {CharOperation.toString(compUnitDecl.currentPackage.tokens)};

-	this.handle(

-		IProblem.PackageCollidesWithType,

-		arguments,

-		arguments,

-		compUnitDecl.currentPackage.sourceStart,

-		compUnitDecl.currentPackage.sourceEnd);

-}

-public void packageIsNotExpectedPackage(CompilationUnitDeclaration compUnitDecl) {

-	String[] arguments = new String[] {CharOperation.toString(compUnitDecl.compilationResult.compilationUnit.getPackageName())};

-	this.handle(

-		IProblem.PackageIsNotExpectedPackage,

-		arguments,

-		arguments,

-		compUnitDecl.currentPackage == null ? 0 : compUnitDecl.currentPackage.sourceStart,

-		compUnitDecl.currentPackage == null ? 0 : compUnitDecl.currentPackage.sourceEnd);

-}

-private String parameterBoundAsString(TypeVariableBinding typeVariable, boolean makeShort) {

-    StringBuffer nameBuffer = new StringBuffer(10);

-    if (typeVariable.firstBound == typeVariable.superclass) {

-        nameBuffer.append(makeShort ? typeVariable.superclass.shortReadableName() : typeVariable.superclass.readableName());

-    }

-    int length;

-    if ((length = typeVariable.superInterfaces.length) > 0) {

-	    for (int i = 0; i < length; i++) {

-	        if (i > 0 || typeVariable.firstBound == typeVariable.superclass) nameBuffer.append(" & "); //$NON-NLS-1$

-	        nameBuffer.append(makeShort ? typeVariable.superInterfaces[i].shortReadableName() : typeVariable.superInterfaces[i].readableName());

-	    }

-	}

-	return nameBuffer.toString();

-}

-private String parametersAsString(TypeBinding[] params, boolean makeShort) {

-	StringBuffer buffer = new StringBuffer(10);

-	for (int i = 0, length = params.length; i < length; i++) {

-		if (i != 0)

-			buffer.append(", "); //$NON-NLS-1$

-		buffer.append(new String(makeShort ? params[i].shortReadableName() : params[i].readableName()));

-	}

-	return buffer.toString();

-}

-public void parseError(

-	int startPosition, 

-	int endPosition, 

-	int currentToken,

-	char[] currentTokenSource, 

-	String errorTokenName, 

-	String[] possibleTokens) {

-		

-	if (possibleTokens.length == 0) { //no suggestion available

-		if (isKeyword(currentToken)) {

-			String[] arguments = new String[] {new String(currentTokenSource)};

-			this.handle(

-				IProblem.ParsingErrorOnKeywordNoSuggestion,

-				arguments,

-				arguments,

-				// this is the current -invalid- token position

-				startPosition,

-				endPosition);

-			return;

-		} else {

-			String[] arguments = new String[] {errorTokenName};

-			this.handle(

-				IProblem.ParsingErrorNoSuggestion,

-				arguments,

-				arguments,

-				// this is the current -invalid- token position

-				startPosition,

-				endPosition);

-			return;

-		}

-	}

-

-	//build a list of probable right tokens

-	StringBuffer list = new StringBuffer(20);

-	for (int i = 0, max = possibleTokens.length; i < max; i++) {

-		if (i > 0)

-			list.append(", "); //$NON-NLS-1$

-		list.append('"');

-		list.append(possibleTokens[i]);

-		list.append('"');

-	}

-

-	if (isKeyword(currentToken)) {

-		String[] arguments = new String[] {new String(currentTokenSource), list.toString()};

-		this.handle(

-			IProblem.ParsingErrorOnKeyword,

-			arguments,

-			arguments,

-			// this is the current -invalid- token position

-			startPosition,

-			endPosition);

-		return;

-	}

-	//extract the literal when it's a literal  

-	if (isLiteral(currentToken) ||

-		isIdentifier(currentToken)) { //$NON-NLS-1$

-			errorTokenName = new String(currentTokenSource);

-	}

-

-	String[] arguments = new String[] {errorTokenName, list.toString()};

-	this.handle(

-		IProblem.ParsingError,

-		arguments,

-		arguments,

-		// this is the current -invalid- token position

-		startPosition,

-		endPosition);

-}

-public void parseErrorDeleteToken(

-	int start,

-	int end,

-	int currentKind,

-	char[] errorTokenSource,

-	String errorTokenName){

-	this.syntaxError(

-		IProblem.ParsingErrorDeleteToken,

-		start, 

-		end, 

-		currentKind,

-		errorTokenSource, 

-		errorTokenName,

-		null); 

-}

-public void parseErrorDeleteTokens(

-	int start,

-	int end){

-	this.handle(

-		IProblem.ParsingErrorDeleteTokens,

-		NoArgument,

-		NoArgument,

-		start,

-		end);

-}

-public void parseErrorInsertAfterToken(

-	int start,

-	int end,

-	int currentKind,

-	char[] errorTokenSource,

-	String errorTokenName,

-	String expectedToken){

-	this.syntaxError(

-		IProblem.ParsingErrorInsertTokenAfter,

-		start, 

-		end, 

-		currentKind,

-		errorTokenSource, 

-		errorTokenName, 

-		expectedToken); 

-}

-

-public void parseErrorInsertBeforeToken(

-	int start,

-	int end,

-	int currentKind,

-	char[] errorTokenSource,

-	String errorTokenName,

-	String expectedToken){

-	this.syntaxError(

-		IProblem.ParsingErrorInsertTokenBefore,

-		start, 

-		end, 

-		currentKind,

-		errorTokenSource, 

-		errorTokenName, 

-		expectedToken); 

-}

-public void parseErrorInsertToComplete(

-	int start,

-	int end,

-	String inserted,

-	String completed){

-	String[] arguments = new String[] {inserted, completed};

-	this.handle(

-		IProblem.ParsingErrorInsertToComplete,

-		arguments,

-		arguments,

-		start,

-		end);

-}

-public void parseErrorInsertToCompletePhrase(

-	int start,

-	int end,

-	String inserted){

-	String[] arguments = new String[] {inserted};

-	this.handle(

-		IProblem.ParsingErrorInsertToCompletePhrase,

-		arguments,

-		arguments,

-		start,

-		end);

-}

-public void parseErrorInsertToCompleteScope(

-	int start,

-	int end,

-	String inserted){

-	String[] arguments = new String[] {inserted};

-	this.handle(

-		IProblem.ParsingErrorInsertToCompleteScope,

-		arguments,

-		arguments,

-		start,

-		end);

-}

-public void parseErrorInvalidToken(

-	int start,

-	int end,

-	int currentKind,

-	char[] errorTokenSource,

-	String errorTokenName,

-	String expectedToken){

-	this.syntaxError(

-		IProblem.ParsingErrorInvalidToken,

-		start, 

-		end, 

-		currentKind,

-		errorTokenSource, 

-		errorTokenName, 

-		expectedToken); 

-}

-public void parseErrorMergeTokens(

-	int start,

-	int end,

-	String expectedToken){

-	String[] arguments = new String[] {expectedToken};

-	this.handle(

-		IProblem.ParsingErrorMergeTokens,

-		arguments,

-		arguments,

-		start,

-		end);

-}

-public void parseErrorMisplacedConstruct(

-	int start,

-	int end){

-	this.handle(

-		IProblem.ParsingErrorMisplacedConstruct,

-		NoArgument,

-		NoArgument,

-		start,

-		end);

-}

-public void parseErrorNoSuggestion(

-	int start,

-	int end,

-	int currentKind,

-	char[] errorTokenSource,

-	String errorTokenName){

-	this.syntaxError(

-		IProblem.ParsingErrorNoSuggestion,

-		start, 

-		end, 

-		currentKind,

-		errorTokenSource, 

-		errorTokenName,

-		null); 

-}

-public void parseErrorNoSuggestionForTokens(

-	int start,

-	int end){

-	this.handle(

-		IProblem.ParsingErrorNoSuggestionForTokens,

-		NoArgument,

-		NoArgument,

-		start,

-		end);

-}

-public void parseErrorReplaceToken(

-	int start,

-	int end,

-	int currentKind,

-	char[] errorTokenSource,

-	String errorTokenName,

-	String expectedToken){

-	this.syntaxError(

-		IProblem.ParsingError,

-		start, 

-		end, 

-		currentKind,

-		errorTokenSource, 

-		errorTokenName, 

-		expectedToken); 

-}

-public void parseErrorReplaceTokens(

-	int start,

-	int end,

-	String expectedToken){

-	String[] arguments = new String[] {expectedToken};

-	this.handle(

-		IProblem.ParsingErrorReplaceTokens,

-		arguments,

-		arguments,

-		start,

-		end);

-}

-public void parseErrorUnexpectedEnd(

-	int start,

-	int end){

-		

-	String[] arguments;

-	if(this.referenceContext instanceof ConstructorDeclaration) {

-		arguments = new String[] {Util.bind("parser.endOfConstructor")}; //$NON-NLS-1$

-	} else if(this.referenceContext instanceof MethodDeclaration) {

-		arguments = new String[] {Util.bind("parser.endOfMethod")}; //$NON-NLS-1$

-	} else if(this.referenceContext instanceof TypeDeclaration) {

-		arguments = new String[] {Util.bind("parser.endOfInitializer")}; //$NON-NLS-1$

-	} else {

-		arguments = new String[] {Util.bind("parser.endOfFile")}; //$NON-NLS-1$

-	}

-	this.handle(

-		IProblem.ParsingErrorUnexpectedEOF,

-		arguments,

-		arguments,

-		start,

-		end);

-}

-public void possibleAccidentalBooleanAssignment(Assignment assignment) {

-	this.handle(

-		IProblem.PossibleAccidentalBooleanAssignment,

-		NoArgument,

-		NoArgument,

-		assignment.sourceStart,

-		assignment.sourceEnd);

-}

-public void publicClassMustMatchFileName(CompilationUnitDeclaration compUnitDecl, TypeDeclaration typeDecl) {

-	this.referenceContext = typeDecl; // report the problem against the type not the entire compilation unit

-	String[] arguments = new String[] {new String(compUnitDecl.getFileName()), new String(typeDecl.name)};

-	this.handle(

-		IProblem.PublicClassMustMatchFileName,

-		arguments,

-		arguments,

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd,

-		compUnitDecl.compilationResult);

-}

-public void rawMemberTypeCannotBeParameterized(ASTNode location, ReferenceBinding type, TypeBinding[] argumentTypes) {

-	if (location == null) { // binary case

-	    this.handle(

-			IProblem.RawMemberTypeCannotBeParameterized,

-			new String[] {new String(type.readableName()), parametersAsString(argumentTypes, false), new String(type.enclosingType().readableName())},

-			new String[] {new String(type.shortReadableName()), parametersAsString(argumentTypes, true), new String(type.enclosingType().shortReadableName())},

-			AbortCompilation | Error,

-			0,

-			1);

-	    return;

-	}

-    this.handle(

-		IProblem.RawMemberTypeCannotBeParameterized,

-		new String[] {new String(type.readableName()), parametersAsString(argumentTypes, false), new String(type.enclosingType().readableName())},

-		new String[] {new String(type.shortReadableName()), parametersAsString(argumentTypes, true), new String(type.enclosingType().shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void recursiveConstructorInvocation(ExplicitConstructorCall constructorCall) {

-

-	this.handle(

-		IProblem.RecursiveConstructorInvocation,

-		new String[] {

-			new String(constructorCall.binding.declaringClass.readableName()), 

-			parametersAsString(constructorCall.binding.parameters, false)

-		},

-		new String[] {

-			new String(constructorCall.binding.declaringClass.shortReadableName()), 

-			parametersAsString(constructorCall.binding.parameters, true)

-		},

-		constructorCall.sourceStart,

-		constructorCall.sourceEnd);

-}

-

-public void redefineArgument(Argument arg) {

-	String[] arguments = new String[] {new String(arg.name)};

-	this.handle(

-		IProblem.RedefinedArgument,

-		arguments,

-		arguments,

-		arg.sourceStart,

-		arg.sourceEnd);

-}

-public void redefineLocal(LocalDeclaration localDecl) {

-	String[] arguments = new String[] {new String(localDecl.name)};

-	this.handle(

-		IProblem.RedefinedLocal,

-		arguments,

-		arguments,

-		localDecl.sourceStart,

-		localDecl.sourceEnd);

-}

-public void referenceMustBeArrayTypeAt(TypeBinding arrayType, ArrayReference arrayRef) {

-	this.handle(

-		IProblem.ArrayReferenceRequired,

-		new String[] {new String(arrayType.readableName())},

-		new String[] {new String(arrayType.shortReadableName())},

-		arrayRef.sourceStart,

-		arrayRef.sourceEnd);

-}

-public void returnTypeCannotBeVoidArray(SourceTypeBinding type, MethodDeclaration methodDecl) {

-	String[] arguments = new String[] {new String(methodDecl.selector)};

-	this.handle(

-		IProblem.ReturnTypeCannotBeVoidArray,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-

-public void scannerError(Parser parser, String errorTokenName) {

-	Scanner scanner = parser.scanner;

-

-	int flag = IProblem.ParsingErrorNoSuggestion;

-	int startPos = scanner.startPosition;

-

-	//special treatment for recognized errors....

-	if (errorTokenName.equals(Scanner.END_OF_SOURCE))

-		flag = IProblem.EndOfSource;

-	else if (errorTokenName.equals(Scanner.INVALID_HEXA))

-		flag = IProblem.InvalidHexa;

-	else if (errorTokenName.equals(Scanner.INVALID_OCTAL))

-		flag = IProblem.InvalidOctal;

-	else if (errorTokenName.equals(Scanner.INVALID_CHARACTER_CONSTANT))

-		flag = IProblem.InvalidCharacterConstant;

-	else if (errorTokenName.equals(Scanner.INVALID_ESCAPE))

-		flag = IProblem.InvalidEscape;

-	else if (errorTokenName.equals(Scanner.INVALID_UNICODE_ESCAPE)){

-		flag = IProblem.InvalidUnicodeEscape;

-		// better locate the error message

-		char[] source = scanner.source;

-		int checkPos = scanner.currentPosition - 1;

-		if (checkPos >= source.length) checkPos = source.length - 1;

-		while (checkPos >= startPos){

-			if (source[checkPos] == '\\') break;

-			checkPos --;

-		}

-		startPos = checkPos;

-	} else if (errorTokenName.equals(Scanner.INVALID_FLOAT))

-		flag = IProblem.InvalidFloat;

-	else if (errorTokenName.equals(Scanner.UNTERMINATED_STRING))

-		flag = IProblem.UnterminatedString;

-	else if (errorTokenName.equals(Scanner.UNTERMINATED_COMMENT))

-		flag = IProblem.UnterminatedComment;

-	else if (errorTokenName.equals(Scanner.INVALID_CHAR_IN_STRING))

-		flag = IProblem.UnterminatedString;

-	else if (errorTokenName.equals(Scanner.INVALID_DIGIT))

-		flag = IProblem.InvalidDigit;

-

-	String[] arguments = flag == IProblem.ParsingErrorNoSuggestion 

-			? new String[] {errorTokenName}

-			: NoArgument;

-	this.handle(

-		flag, 

-		arguments,

-		arguments,

-		// this is the current -invalid- token position

-		startPos, 

-		scanner.currentPosition - 1,

-		parser.compilationUnit.compilationResult);

-}

-public void shouldReturn(TypeBinding returnType, ASTNode location) {

-	this.handle(

-		IProblem.ShouldReturnValue,

-		new String[] { new String (returnType.readableName())},

-		new String[] { new String (returnType.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void signalNoImplicitStringConversionForCharArrayExpression(Expression expression) {

-	this.handle(

-		IProblem.NoImplicitStringConversionForCharArrayExpression,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void staticAndInstanceConflict(MethodBinding currentMethod, MethodBinding inheritedMethod) {

-	if (currentMethod.isStatic())

-		this.handle(

-			// This static method cannot hide the instance method from %1

-			// 8.4.6.4 - If a class inherits more than one method with the same signature a static (non-abstract) method cannot hide an instance method.

-			IProblem.CannotHideAnInstanceMethodWithAStaticMethod,

-			new String[] {new String(inheritedMethod.declaringClass.readableName())},

-			new String[] {new String(inheritedMethod.declaringClass.shortReadableName())},

-			currentMethod.sourceStart(),

-			currentMethod.sourceEnd());

-	else

-		this.handle(

-			// This instance method cannot override the static method from %1

-			// 8.4.6.4 - If a class inherits more than one method with the same signature an instance (non-abstract) method cannot override a static method.

-			IProblem.CannotOverrideAStaticMethodWithAnInstanceMethod,

-			new String[] {new String(inheritedMethod.declaringClass.readableName())},

-			new String[] {new String(inheritedMethod.declaringClass.shortReadableName())},

-			currentMethod.sourceStart(),

-			currentMethod.sourceEnd());

-}

-public void staticFieldAccessToNonStaticVariable(ASTNode location, FieldBinding field) {

-	String[] arguments = new String[] {new String(field.readableName())};

-	this.handle(

-		IProblem.NonStaticFieldFromStaticInvocation,

-		arguments,

-		arguments,

-		location.sourceStart,

-		fieldLocation(field, location)); 

-}

-public void staticInheritedMethodConflicts(SourceTypeBinding type, MethodBinding concreteMethod, MethodBinding[] abstractMethods) {

-	this.handle(

-		// The static method %1 conflicts with the abstract method in %2

-		// 8.4.6.4 - If a class inherits more than one method with the same signature it is an error for one to be static (non-abstract) and the other abstract.

-		IProblem.StaticInheritedMethodConflicts,

-		new String[] {

-			new String(concreteMethod.readableName()),

-			new String(abstractMethods[0].declaringClass.readableName())},

-		new String[] {

-			new String(concreteMethod.readableName()),

-			new String(abstractMethods[0].declaringClass.shortReadableName())},

-		type.sourceStart(),

-		type.sourceEnd());

-}

-public void staticMemberOfParameterizedType(ASTNode location, ReferenceBinding type) {

-	if (location == null) { // binary case

-	    this.handle(

-			IProblem.StaticMemberOfParameterizedType,

-			new String[] {new String(type.readableName()), new String(type.enclosingType().readableName()), },

-			new String[] {new String(type.shortReadableName()), new String(type.enclosingType().shortReadableName()), },

-			AbortCompilation | Error,

-			0,

-			1);

-	    return;

-	}

-    this.handle(

-		IProblem.StaticMemberOfParameterizedType,

-		new String[] {new String(type.readableName()), new String(type.enclosingType().readableName()), },

-		new String[] {new String(type.shortReadableName()), new String(type.enclosingType().shortReadableName()), },

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void stringConstantIsExceedingUtf8Limit(ASTNode location) {

-	this.handle(

-		IProblem.StringConstantIsExceedingUtf8Limit,

-		NoArgument,

-		NoArgument,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void superclassMustBeAClass(SourceTypeBinding type, TypeReference superclassRef, ReferenceBinding superType) {

-	this.handle(

-		IProblem.SuperclassMustBeAClass,

-		new String[] {new String(superType.readableName()), new String(type.sourceName())},

-		new String[] {new String(superType.shortReadableName()), new String(type.sourceName())},

-		superclassRef.sourceStart,

-		superclassRef.sourceEnd);

-}

-public void superfluousSemicolon(int sourceStart, int sourceEnd) {

-	this.handle(

-		IProblem.SuperfluousSemicolon,

-		NoArgument,

-		NoArgument,

-		sourceStart,

-		sourceEnd);	

-}

-public void superinterfaceMustBeAnInterface(SourceTypeBinding type, TypeReference superInterfaceRef, ReferenceBinding superType) {

-	this.handle(

-		IProblem.SuperInterfaceMustBeAnInterface,

-		new String[] {new String(superType.readableName()), new String(type.sourceName())},

-		new String[] {new String(superType.shortReadableName()), new String(type.sourceName())},

-		superInterfaceRef.sourceStart,

-		superInterfaceRef.sourceEnd);

-}

-public void superinterfacesCollide(ReferenceBinding type, TypeDeclaration typeDecl, ReferenceBinding superType, ReferenceBinding inheritedSuperType) {

-	this.handle(

-		IProblem.SuperInterfacesCollide,

-		new String[] {new String(superType.readableName()), new String(inheritedSuperType.readableName()), new String(type.sourceName())},

-		new String[] {new String(superType.shortReadableName()), new String(inheritedSuperType.shortReadableName()), new String(type.sourceName())},

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd);

-}

-public void superTypeCannotUseWildcard(SourceTypeBinding type, TypeReference superclass, TypeBinding superTypeBinding) {

-	String name = new String(type.sourceName());

-	String superTypeFullName = new String(superTypeBinding.readableName());

-	String superTypeShortName = new String(superTypeBinding.shortReadableName());

-	if (superTypeShortName.equals(name)) superTypeShortName = superTypeFullName;

-	this.handle(

-		IProblem.SuperTypeUsingWildcard,

-		new String[] {superTypeFullName, name},

-		new String[] {superTypeShortName, name},

-		superclass.sourceStart,

-		superclass.sourceEnd);

-}

-

-private void syntaxError(

-	int id,

-	int startPosition, 

-	int endPosition, 

-	int currentKind,

-	char[] currentTokenSource, 

-	String errorTokenName, 

-	String expectedToken) {

-

-	String eTokenName;

-	if (isKeyword(currentKind) ||

-		isLiteral(currentKind) ||

-		isIdentifier(currentKind)) { //$NON-NLS-1$

-			eTokenName = new String(currentTokenSource);

-	} else {

-		eTokenName = errorTokenName;

-	}

-

-	String[] arguments;

-	if(expectedToken != null) {

-		arguments = new String[] {eTokenName, expectedToken};

-	} else {

-		arguments = new String[] {eTokenName};

-	}

-	this.handle(

-		id,

-		arguments,

-		arguments,

-		startPosition,

-		endPosition);

-}

-

-public void task(String tag, String message, String priority, int start, int end){

-	this.handle(

-		IProblem.Task,

-		new String[] { tag, message, priority/*secret argument that is not surfaced in getMessage()*/},

-		new String[] { tag, message, priority/*secret argument that is not surfaced in getMessage()*/}, 

-		start,

-		end);

-}

-public void tooManyDimensions(ASTNode expression) {

-	this.handle(

-		IProblem.TooManyArrayDimensions,

-		NoArgument,

-		NoArgument,

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void tooManyFields(TypeDeclaration typeDeclaration) {

-	this.handle(

-		IProblem.TooManyFields,

-		new String[]{ new String(typeDeclaration.binding.readableName())},

-		new String[]{ new String(typeDeclaration.binding.shortReadableName())},

-		Abort | Error,

-		typeDeclaration.sourceStart,

-		typeDeclaration.sourceEnd);

-}

-public void tooManyMethods(TypeDeclaration typeDeclaration) {

-	this.handle(

-		IProblem.TooManyMethods,

-		new String[]{ new String(typeDeclaration.binding.readableName())},

-		new String[]{ new String(typeDeclaration.binding.shortReadableName())},

-		Abort | Error,

-		typeDeclaration.sourceStart,

-		typeDeclaration.sourceEnd);

-}

-public void typeCastError(CastExpression expression, TypeBinding leftType, TypeBinding rightType) {

-	String leftName = new String(leftType.readableName());

-	String rightName = new String(rightType.readableName());

-	String leftShortName = new String(leftType.shortReadableName());

-	String rightShortName = new String(rightType.shortReadableName());

-	if (leftShortName.equals(rightShortName)){

-		leftShortName = leftName;

-		rightShortName = rightName;

-	}

-	this.handle(

-		IProblem.IllegalCast,

-		new String[] { rightName, leftName },

-		new String[] { rightShortName, leftShortName },

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void typeCollidesWithPackage(CompilationUnitDeclaration compUnitDecl, TypeDeclaration typeDecl) {

-	this.referenceContext = typeDecl; // report the problem against the type not the entire compilation unit

-	String[] arguments = new String[] {new String(compUnitDecl.getFileName()), new String(typeDecl.name)};

-	this.handle(

-		IProblem.TypeCollidesWithPackage,

-		arguments,

-		arguments,

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd,

-		compUnitDecl.compilationResult);

-}

-public void typeMismatchError(TypeBinding actualType, TypeBinding expectedType, ASTNode location) {

-	this.handle(

-		IProblem.TypeMismatch,

-		new String[] {new String(actualType.readableName()), new String(expectedType.readableName())},

-		new String[] {new String(actualType.shortReadableName()), new String(expectedType.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void typeMismatchError(TypeBinding typeArgument, TypeVariableBinding typeParameter, ReferenceBinding genericType, ASTNode location) {

-    if (location == null) { // binary case

-		this.handle(

-			IProblem.TypeArgumentMismatch,

-			new String[] { new String(typeArgument.readableName()), new String(genericType.readableName()), new String(typeParameter.sourceName), parameterBoundAsString(typeParameter, false) },

-			new String[] { new String(typeArgument.shortReadableName()), new String(genericType.shortReadableName()), new String(typeParameter.sourceName), parameterBoundAsString(typeParameter, true) },

-			AbortCompilation | Error,

-			0,

-			1);

-        return;

-    }

-	this.handle(

-		IProblem.TypeArgumentMismatch,

-		new String[] { new String(typeArgument.readableName()), new String(genericType.readableName()), new String(typeParameter.sourceName), parameterBoundAsString(typeParameter, false) },

-		new String[] { new String(typeArgument.shortReadableName()), new String(genericType.shortReadableName()), new String(typeParameter.sourceName), parameterBoundAsString(typeParameter, true) },

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void undefinedLabel(BranchStatement statement) {

-	String[] arguments = new String[] {new String(statement.label)};

-	this.handle(

-		IProblem.UndefinedLabel,

-		arguments,

-		arguments,

-		statement.sourceStart,

-		statement.sourceEnd);

-}

-// can only occur inside binaries

-public void undefinedTypeVariableSignature(char[] variableName, ReferenceBinding binaryType) {

-	this.handle(

-		IProblem.UndefinedTypeVariable,

-		new String[] {new String(variableName), new String(binaryType.readableName()) },	

-		new String[] {new String(variableName), new String(binaryType.shortReadableName())},

-		AbortCompilation | Error,

-		0,

-		1);

-}

-public void undocumentedEmptyBlock(int blockStart, int blockEnd) {

-	this.handle(

-		IProblem.UndocumentedEmptyBlock,

-		NoArgument,

-		NoArgument,

-		blockStart,

-		blockEnd);

-}

-public void unexpectedStaticModifierForField(SourceTypeBinding type, FieldDeclaration fieldDecl) {

-	String[] arguments = new String[] {new String(fieldDecl.name)};

-	this.handle(

-		IProblem.UnexpectedStaticModifierForField,

-		arguments,

-		arguments,

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-public void unexpectedStaticModifierForMethod(ReferenceBinding type, AbstractMethodDeclaration methodDecl) {

-	String[] arguments = new String[] {new String(type.sourceName()), new String(methodDecl.selector)};

-	this.handle(

-		IProblem.UnexpectedStaticModifierForMethod,

-		arguments,

-		arguments,

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void unhandledException(TypeBinding exceptionType, ASTNode location) {

-

-	boolean insideDefaultConstructor = 

-		(this.referenceContext instanceof ConstructorDeclaration)

-			&& ((ConstructorDeclaration)this.referenceContext).isDefaultConstructor();

-	boolean insideImplicitConstructorCall =

-		(location instanceof ExplicitConstructorCall)

-			&& (((ExplicitConstructorCall) location).accessMode == ExplicitConstructorCall.ImplicitSuper);

-

-	this.handle(

-		insideDefaultConstructor

-			? IProblem.UnhandledExceptionInDefaultConstructor

-			: (insideImplicitConstructorCall 

-					? IProblem.UndefinedConstructorInImplicitConstructorCall

-					: IProblem.UnhandledException),

-		new String[] {new String(exceptionType.readableName())},

-		new String[] {new String(exceptionType.shortReadableName())},

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void uninitializedBlankFinalField(FieldBinding binding, ASTNode location) {

-	String[] arguments = new String[] {new String(binding.readableName())};

-	this.handle(

-		IProblem.UninitializedBlankFinalField,

-		arguments,

-		arguments,

-		location.sourceStart,

-		fieldLocation(binding, location));

-}

-public void uninitializedLocalVariable(LocalVariableBinding binding, ASTNode location) {

-	String[] arguments = new String[] {new String(binding.readableName())};

-	this.handle(

-		IProblem.UninitializedLocalVariable,

-		arguments,

-		arguments,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void unmatchedBracket(int position, ReferenceContext context, CompilationResult compilationResult) {

-	this.handle(

-		IProblem.UnmatchedBracket, 

-		NoArgument,

-		NoArgument,

-		position, 

-		position,

-		context,

-		compilationResult);

-}

-public void unnecessaryCast(CastExpression castExpression) {

-	TypeBinding castedExpressionType = castExpression.expression.resolvedType;

-	this.handle(

-		IProblem.UnnecessaryCast,

-		new String[]{ new String(castedExpressionType.readableName()), new String(castExpression.resolvedType.readableName())},

-		new String[]{ new String(castedExpressionType.shortReadableName()), new String(castExpression.resolvedType.shortReadableName())},

-		castExpression.sourceStart,

-		castExpression.sourceEnd);

-}

-public void unnecessaryCastForArgument(CastExpression castExpression, TypeBinding parameterType) {

-	TypeBinding castedExpressionType = castExpression.expression.resolvedType;

-	this.handle(

-		IProblem.UnnecessaryArgumentCast,

-		new String[]{ new String(castedExpressionType.readableName()), new String(castExpression.resolvedType.readableName()), new String(parameterType.readableName())},

-		new String[]{ new String(castedExpressionType.shortReadableName()), new String(castExpression.resolvedType.shortReadableName()), new String(parameterType.shortReadableName())},

-		castExpression.sourceStart,

-		castExpression.sourceEnd);

-}

-public void unnecessaryElse(ASTNode location) {

-	this.handle(

-		IProblem.UnnecessaryElse,

-		NoArgument,

-		NoArgument,

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void unnecessaryEnclosingInstanceSpecification(Expression expression, ReferenceBinding targetType) {

-	this.handle(

-		IProblem.IllegalEnclosingInstanceSpecification,

-		new String[]{ new String(targetType.readableName())},

-		new String[]{ new String(targetType.shortReadableName())},

-		expression.sourceStart,

-		expression.sourceEnd);

-}

-public void unnecessaryInstanceof(InstanceOfExpression instanceofExpression, TypeBinding checkType) {

-	TypeBinding expressionType = instanceofExpression.expression.resolvedType;

-	this.handle(

-		IProblem.UnnecessaryInstanceof,

-		new String[]{ new String(expressionType.readableName()), new String(checkType.readableName())},

-		new String[]{ new String(expressionType.shortReadableName()), new String(checkType.shortReadableName())},

-		instanceofExpression.sourceStart,

-		instanceofExpression.sourceEnd);

-}

-public void unqualifiedFieldAccess(NameReference reference, FieldBinding field) {

-	int end = reference.sourceEnd;

-	if (reference instanceof QualifiedNameReference) {

-		QualifiedNameReference qref = (QualifiedNameReference) reference;

-		end = (int) qref.sourcePositions[0];

-	}

-	this.handle(

-		IProblem.UnqualifiedFieldAccess,

-		new String[] {new String(field.declaringClass.readableName()), new String(field.name)},

-		new String[] {new String(field.declaringClass.shortReadableName()), new String(field.name)},

-		reference.sourceStart,

-		end);

-}

-public void unreachableCatchBlock(ReferenceBinding exceptionType, ASTNode location) {

-	this.handle(

-		IProblem.UnreachableCatch,

-		new String[] {

-			new String(exceptionType.readableName()),

-		 }, 

-		new String[] {

-			new String(exceptionType.shortReadableName()),

-		 }, 

-		location.sourceStart,

-		location.sourceEnd);

-}

-public void unreachableCode(Statement statement) {

-	this.handle(

-		IProblem.CodeCannotBeReached,

-		NoArgument,

-		NoArgument,

-		statement.sourceStart,

-		statement.sourceEnd);

-}

-public void unresolvableReference(NameReference nameRef, Binding binding) {

-	int severity = Error;

-/* also need to check that the searchedType is the receiver type

-	if (binding instanceof ProblemBinding) {

-		ProblemBinding problem = (ProblemBinding) binding;

-		if (problem.searchType != null && problem.searchType.isHierarchyInconsistent())

-			severity = SecondaryError;

-	}

-*/

-	String[] arguments = new String[] {new String(binding.readableName())};

-	int end = nameRef.sourceEnd;

-	if (nameRef instanceof QualifiedNameReference) {

-		QualifiedNameReference ref = (QualifiedNameReference) nameRef;

-		if (ref.indexOfFirstFieldBinding >= 1)

-			end = (int) ref.sourcePositions[ref.indexOfFirstFieldBinding - 1];

-	}

-	this.handle(

-		IProblem.UndefinedName,

-		arguments,

-		arguments,

-		severity,

-		nameRef.sourceStart,

-		end);

-}

-public void unsafeCast(CastExpression castExpression) {

-	TypeBinding castedExpressionType = castExpression.expression.resolvedType;

-	this.handle(

-		IProblem.UnsafeGenericCast,

-		new String[]{ new String(castedExpressionType.readableName()), new String(castExpression.resolvedType.readableName())},

-		new String[]{ new String(castedExpressionType.shortReadableName()), new String(castExpression.resolvedType.shortReadableName())},

-		castExpression.sourceStart,

-		castExpression.sourceEnd);

-}

-public void unsafeRawConversion(Expression expression, TypeBinding expressionType, TypeBinding expectedType) {

-	this.handle(

-		IProblem.UnsafeRawConversion,

-		new String[] { new String(expressionType.readableName()), new String(expectedType.readableName()), new String(expectedType.erasure().readableName()) },

-		new String[] { new String(expressionType.shortReadableName()), new String(expectedType.shortReadableName()), new String(expectedType.erasure().shortReadableName()) },

-		expression.sourceStart,

-		expression.sourceEnd);    

-}

-public void unsafeRawFieldAssignment(FieldBinding rawField, TypeBinding expressionType, ASTNode location) {

-	this.handle(

-		IProblem.UnsafeRawFieldAssignment,

-		new String[] { 

-		        new String(expressionType.readableName()), new String(rawField.name), new String(rawField.declaringClass.readableName()), new String(rawField.declaringClass.erasure().readableName()) },

-		new String[] { 

-		        new String(expressionType.shortReadableName()), new String(rawField.name), new String(rawField.declaringClass.shortReadableName()), new String(rawField.declaringClass.erasure().shortReadableName()) },

-		location.sourceStart,

-		location.sourceEnd);    

-}

-public void unsafeRawInvocation(ASTNode location, TypeBinding receiverType, MethodBinding method) {

-    if (method.isConstructor()) {

-		this.handle(

-			IProblem.UnsafeRawConstructorInvocation,

-			new String[] {

-				new String(receiverType.readableName()),

-				parametersAsString(method.original().parameters, false),

-				new String(receiverType.erasure().readableName()),

-			 }, 

-			new String[] {

-				new String(receiverType.shortReadableName()),

-				parametersAsString(method.original().parameters, true),

-				new String(receiverType.erasure().shortReadableName()),

-			 }, 

-			location.sourceStart,

-			location.sourceEnd);    

-    } else {

-		this.handle(

-			IProblem.UnsafeRawMethodInvocation,

-			new String[] {

-				new String(method.selector),

-				parametersAsString(method.original().parameters, false),

-				new String(receiverType.readableName()),

-				new String(receiverType.erasure().readableName()),

-			 }, 

-			new String[] {

-				new String(method.selector),

-				parametersAsString(method.original().parameters, true),

-				new String(receiverType.shortReadableName()),

-				new String(receiverType.erasure().shortReadableName()),

-			 }, 

-			location.sourceStart,

-			location.sourceEnd);    

-    }

-}

-public void unsafeReturnTypeOverride(MethodBinding currentMethod, MethodBinding inheritedMethod, ASTNode location) {

-	

-	this.handle(

-			IProblem.UnsafeReturnTypeOverride,

-			new String[] {

-				new String(currentMethod.returnType.readableName()),

-				new String(currentMethod.selector),

-				parametersAsString(currentMethod.original().parameters, false),

-				new String(currentMethod.declaringClass.readableName()),

-				new String(inheritedMethod.returnType.readableName()),

-				//new String(inheritedMethod.returnType.erasure().readableName()),

-			 }, 

-			new String[] {

-				new String(currentMethod.returnType.shortReadableName()),

-				new String(currentMethod.selector),

-				parametersAsString(currentMethod.original().parameters, true),

-				new String(currentMethod.declaringClass.shortReadableName()),

-				new String(inheritedMethod.returnType.shortReadableName()),

-				//new String(inheritedMethod.returnType.erasure().shortReadableName()),

-			 }, 

-			location.sourceStart,

-			location.sourceEnd);

-}

-public void unusedArgument(LocalDeclaration localDecl) {

-

-	String[] arguments = new String[] {new String(localDecl.name)};

-	this.handle(

-		IProblem.ArgumentIsNeverUsed,

-		arguments,

-		arguments,

-		localDecl.sourceStart,

-		localDecl.sourceEnd);

-}

-public void unusedDeclaredThrownException(ReferenceBinding exceptionType, AbstractMethodDeclaration method, ASTNode location) {

-	if (method.isConstructor()) {

-		this.handle(

-			IProblem.UnusedConstructorDeclaredThrownException,

-			new String[] {

-				new String(method.binding.declaringClass.readableName()),

-				parametersAsString(method.binding.parameters, false),

-				new String(exceptionType.readableName()),

-			 }, 

-			new String[] {

-				new String(method.binding.declaringClass.shortReadableName()),

-				parametersAsString(method.binding.parameters, true),

-				new String(exceptionType.shortReadableName()),

-			 }, 

-			location.sourceStart,

-			location.sourceEnd);

-	} else {

-		this.handle(

-			IProblem.UnusedMethodDeclaredThrownException,

-			new String[] {

-				new String(method.binding.declaringClass.readableName()),

-				new String(method.selector),

-				parametersAsString(method.binding.parameters, false),

-				new String(exceptionType.readableName()),

-			 }, 

-			new String[] {

-				new String(method.binding.declaringClass.shortReadableName()),

-				new String(method.selector),

-				parametersAsString(method.binding.parameters, true),

-				new String(exceptionType.shortReadableName()),

-			 }, 

-			location.sourceStart,

-			location.sourceEnd);

-	}

-}

-public void unusedImport(ImportReference importRef) {

-	String[] arguments = new String[] { CharOperation.toString(importRef.tokens) };

-	this.handle(

-		IProblem.UnusedImport,

-		arguments,

-		arguments,

-		importRef.sourceStart,

-		importRef.sourceEnd); 

-}

-public void unusedLocalVariable(LocalDeclaration localDecl) {

-	String[] arguments = new String[] {new String(localDecl.name)};

-	this.handle(

-		IProblem.LocalVariableIsNeverUsed,

-		arguments,

-		arguments,

-		localDecl.sourceStart,

-		localDecl.sourceEnd);

-}

-public void unusedPrivateConstructor(ConstructorDeclaration constructorDecl) {

-	

-	if (computeSeverity(IProblem.UnusedPrivateConstructor) == Ignore) return;

-

-	// no complaint for no-arg constructors (or default ones) - known pattern to block instantiation

-	if (constructorDecl.arguments == null || constructorDecl.arguments.length == 0) return;

-					

-	MethodBinding constructor = constructorDecl.binding;

-	this.handle(

-			IProblem.UnusedPrivateConstructor,

-		new String[] {

-			new String(constructor.declaringClass.readableName()),

-			parametersAsString(constructor.parameters, false)

-		 }, 

-		new String[] {

-			new String(constructor.declaringClass.shortReadableName()),

-			parametersAsString(constructor.parameters, true)

-		 }, 

-		constructorDecl.sourceStart,

-		constructorDecl.sourceEnd);

-}

-public void unusedPrivateField(FieldDeclaration fieldDecl) {

-	

-	if (computeSeverity(IProblem.UnusedPrivateField) == Ignore) return;

-

-	FieldBinding field = fieldDecl.binding;

-	

-	if (CharOperation.equals(TypeConstants.SERIALVERSIONUID, field.name)

-			&& field.isStatic()

-			&& field.isFinal()

-			&& BaseTypes.LongBinding == field.type) {

-				return; // do not report unused serialVersionUID field

-	}

-	if (CharOperation.equals(TypeConstants.SERIALPERSISTENTFIELDS, field.name)

-			&& field.isStatic()

-			&& field.isFinal()

-			&& field.type.dimensions() == 1

-			&& CharOperation.equals(TypeConstants.CharArray_JAVA_IO_OBJECTSTREAMFIELD, field.type.leafComponentType().readableName())) {

-				return; // do not report unused serialPersistentFields field

-	}

-	this.handle(

-			IProblem.UnusedPrivateField,

-		new String[] {

-			new String(field.declaringClass.readableName()),

-			new String(field.name),

-		 }, 

-		new String[] {

-			new String(field.declaringClass.shortReadableName()),

-			new String(field.name),

-		 }, 

-		fieldDecl.sourceStart,

-		fieldDecl.sourceEnd);

-}

-public void unusedPrivateMethod(AbstractMethodDeclaration methodDecl) {

-

-	if (computeSeverity(IProblem.UnusedPrivateMethod) == Ignore) return;

-	

-	MethodBinding method = methodDecl.binding;

-	

-	// no report for serialization support 'void readObject(ObjectInputStream)'

-	if (!method.isStatic()

-			&& BaseTypes.VoidBinding == method.returnType

-			&& method.parameters.length == 1

-			&& method.parameters[0].dimensions() == 0

-			&& CharOperation.equals(method.selector, TypeConstants.READOBJECT)

-			&& CharOperation.equals(TypeConstants.CharArray_JAVA_IO_OBJECTINPUTSTREAM, method.parameters[0].readableName())) {

-		return;

-	}

-	// no report for serialization support 'void writeObject(ObjectOutputStream)'

-	if (!method.isStatic()

-			&& BaseTypes.VoidBinding == method.returnType

-			&& method.parameters.length == 1

-			&& method.parameters[0].dimensions() == 0

-			&& CharOperation.equals(method.selector, TypeConstants.WRITEOBJECT)

-			&& CharOperation.equals(TypeConstants.CharArray_JAVA_IO_OBJECTOUTPUTSTREAM, method.parameters[0].readableName())) {

-		return;

-	}

-	// no report for serialization support 'Object readResolve()'

-	if (!method.isStatic()

-			&& TypeIds.T_Object == method.returnType.id

-			&& method.parameters.length == 0

-			&& CharOperation.equals(method.selector, TypeConstants.READRESOLVE)) {

-		return;

-	}

-	// no report for serialization support 'Object writeReplace()'

-	if (!method.isStatic()

-			&& TypeIds.T_Object == method.returnType.id

-			&& method.parameters.length == 0

-			&& CharOperation.equals(method.selector, TypeConstants.WRITEREPLACE)) {

-		return;

-	}

-	this.handle(

-			IProblem.UnusedPrivateMethod,

-		new String[] {

-			new String(method.declaringClass.readableName()),

-			new String(method.selector),

-			parametersAsString(method.parameters, false)

-		 }, 

-		new String[] {

-			new String(method.declaringClass.shortReadableName()),

-			new String(method.selector),

-			parametersAsString(method.parameters, true)

-		 }, 

-		methodDecl.sourceStart,

-		methodDecl.sourceEnd);

-}

-public void unusedPrivateType(TypeDeclaration typeDecl) {

-	

-	if (computeSeverity(IProblem.UnusedPrivateType) == Ignore) return;

-

-	ReferenceBinding type = typeDecl.binding;

-	this.handle(

-			IProblem.UnusedPrivateType,

-		new String[] {

-			new String(type.readableName()),

-		 }, 

-		new String[] {

-			new String(type.shortReadableName()),

-		 }, 

-		typeDecl.sourceStart,

-		typeDecl.sourceEnd);

-}

-public void useAssertAsAnIdentifier(int sourceStart, int sourceEnd) {

-	this.handle(

-		IProblem.UseAssertAsAnIdentifier,

-		NoArgument,

-		NoArgument,

-		sourceStart,

-		sourceEnd);	

-}

-public void useEnumAsAnIdentifier(int sourceStart, int sourceEnd) {

-	this.handle(

-		IProblem.UseEnumAsAnIdentifier,

-		NoArgument,

-		NoArgument,

-		sourceStart,

-		sourceEnd);	

-}

-public void variableTypeCannotBeVoid(AbstractVariableDeclaration varDecl) {

-	String[] arguments = new String[] {new String(varDecl.name)};

-	this.handle(

-		IProblem.VariableTypeCannotBeVoid,

-		arguments,

-		arguments,

-		varDecl.sourceStart,

-		varDecl.sourceEnd);

-}

-public void variableTypeCannotBeVoidArray(AbstractVariableDeclaration varDecl) {

-	String[] arguments = new String[] {new String(varDecl.name)};

-	this.handle(

-		IProblem.VariableTypeCannotBeVoidArray,

-		arguments,

-		arguments,

-		varDecl.sourceStart,

-		varDecl.sourceEnd);

-}

-public void visibilityConflict(MethodBinding currentMethod, MethodBinding inheritedMethod) {

-	this.handle(

-		//	Cannot reduce the visibility of the inherited method from %1

-		// 8.4.6.3 - The access modifier of an hiding method must provide at least as much access as the hidden method.

-		// 8.4.6.3 - The access modifier of an overiding method must provide at least as much access as the overriden method.

-		IProblem.MethodReducesVisibility,

-		new String[] {new String(inheritedMethod.declaringClass.readableName())},

-		new String[] {new String(inheritedMethod.declaringClass.shortReadableName())},

-		currentMethod.sourceStart(),

-		currentMethod.sourceEnd());

-}

-public void wildcardAssignment(TypeBinding variableType, TypeBinding expressionType, ASTNode location) {

-	this.handle(

-		IProblem.WildcardFieldAssignment,

-		new String[] { 

-		        new String(expressionType.readableName()), new String(variableType.readableName()) },

-		new String[] { 

-		        new String(expressionType.shortReadableName()), new String(variableType.shortReadableName()) },

-		location.sourceStart,

-		location.sourceEnd);    

-}

-public void wildcardInvocation(ASTNode location, TypeBinding receiverType, MethodBinding method, TypeBinding[] arguments) {

-	TypeBinding offendingArgument = null;

-	TypeBinding offendingParameter = null;

-	for (int i = 0, length = method.parameters.length; i < length; i++) {

-		TypeBinding parameter = method.parameters[i];

-		if (parameter.isWildcard() && (((WildcardBinding) parameter).kind != Wildcard.SUPER)) {

-			offendingParameter = parameter;

-			offendingArgument = arguments[i];

-			break;

-		}

-	}

-	

-    if (method.isConstructor()) {

-		this.handle(

-			IProblem.WildcardConstructorInvocation,

-			new String[] {

-				new String(receiverType.sourceName()),

-				parametersAsString(method.parameters, false),

-				new String(receiverType.readableName()),

-				parametersAsString(arguments, false),

-				new String(offendingArgument.readableName()),

-				new String(offendingParameter.readableName()),

-			 }, 

-			new String[] {

-				new String(receiverType.sourceName()),

-				parametersAsString(method.parameters, true),

-				new String(receiverType.shortReadableName()),

-				parametersAsString(arguments, true),

-				new String(offendingArgument.shortReadableName()),

-				new String(offendingParameter.shortReadableName()),

-			 }, 

-			location.sourceStart,

-			location.sourceEnd);    

-    } else {

-		this.handle(

-			IProblem.WildcardMethodInvocation,

-			new String[] {

-				new String(method.selector),

-				parametersAsString(method.parameters, false),

-				new String(receiverType.readableName()),

-				parametersAsString(arguments, false),

-				new String(offendingArgument.readableName()),

-				new String(offendingParameter.readableName()),

-			 }, 

-			new String[] {

-				new String(method.selector),

-				parametersAsString(method.parameters, true),

-				new String(receiverType.shortReadableName()),

-				parametersAsString(arguments, true),

-				new String(offendingArgument.shortReadableName()),

-				new String(offendingParameter.shortReadableName()),

-			 }, 

-			location.sourceStart,

-			location.sourceEnd);    

-    }

-}

-public void wrongSequenceOfExceptionTypesError(TryStatement statement, TypeBinding exceptionType, int under, TypeBinding hidingExceptionType) {

-	//the two catch block under and upper are in an incorrect order.

-	//under should be define BEFORE upper in the source

-

-	TypeReference typeRef = statement.catchArguments[under].type;

-	this.handle(

-		IProblem.InvalidCatchBlockSequence,

-		new String[] {

-			new String(exceptionType.readableName()),

-			new String(hidingExceptionType.readableName()),

-		 }, 

-		new String[] {

-			new String(exceptionType.shortReadableName()),

-			new String(hidingExceptionType.shortReadableName()),

-		 }, 

-		typeRef.sourceStart,

-		typeRef.sourceEnd);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemSeverities.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemSeverities.js
deleted file mode 100644
index 066a21b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ProblemSeverities.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-public interface ProblemSeverities {

-	

-	final int Ignore = -1; // during handling only

-	final int Warning = 0; // during handling only

-

-	final int Error = 1; // when bit is set: problem is error, if not it is a warning

-	final int AbortCompilation = 2;

-	final int AbortCompilationUnit = 4;

-	final int AbortType = 8;

-	final int AbortMethod = 16;

-	final int Abort = 30; // 2r11110

-	final int SecondaryError = 64;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ShouldNotImplement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ShouldNotImplement.js
deleted file mode 100644
index 290285a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/ShouldNotImplement.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.problem;

-

-/*

- * Special unchecked exception type used 

- * to denote implementation that should never be reached.

- *

- *	(internal only)

- */

-public class ShouldNotImplement extends RuntimeException {

-	private static final long serialVersionUID = 2669970476264283736L; // backward compatible

-	public ShouldNotImplement(String message) {

-		super(message);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/messages.properties b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/messages.properties
deleted file mode 100644
index e322678..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/problem/messages.properties
+++ /dev/null
@@ -1,465 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-0 = {0}
-1 = super cannot be used in.jsScript.lang.Object
-2 = {0} cannot be resolved to a type
-3 = The type {0} is not visible
-4 = The type {0} is ambiguous
-5 = The type {0} is deprecated
-6 = The nested type {0} cannot be referenced using its binary name
-7 = The private type {0} is never used locally
-
-15 = Incompatible operand types {0} and {1}
-16 = Incompatible conditional operand types {0} and {1}
-17 = Type mismatch: cannot convert from {0} to {1}
-18 = The static member type {0}.{1} should be accessed directly
-
-20 = No enclosing instance of type {0} is accessible to invoke the super constructor. Must define a constructor and explicitly qualify its super constructor invocation with an instance of {0} (e.g. x.super() where x is an instance of {0}).
-21 = No enclosing instance of type {0} is accessible. Must qualify the allocation with an enclosing instance of type {0} (e.g. x.new A() where x is an instance of {0}).
-22 = No enclosing instance of the type {0} is accessible in scope
-23 = Illegal enclosing instance specification for type {0}
-24 = Cannot define static initializer in inner type {0}
-25 = Cannot refer to a non-final variable {0} inside an inner class defined in a different function
-26 = The member interface {0} can only be defined inside a top-level class or interface
-27 = Cannot use an expression of the type {0} as a valid enclosing instance
-28 = No enclosing instance of type {0} is available due to some intermediate constructor invocation
-29 = An anonymous class cannot subclass the final class {0}
-
-50 = {0} cannot be resolved
-51 = The local variable {0} may not have been initialized
-52 = void is an invalid type for the variable {0}
-53 = An array of void is an invalid type for the variable {0}
-54 = An array of void is an invalid type
-55 = Duplicate local variable {0}
-56 = Duplicate parameter {0}
-57 = The final local variable {0} may already have been assigned
-58 = The final local variable {0} cannot be assigned. It must be blank and not using a compound assignment
-
-60 = The final local variable {0} cannot be assigned, since it is defined in an enclosing type
-61 = The local variable {0} is never read
-62 = The parameter {0} is never read
-63 = The code of function {0}({1}) is exceeding the 65535 bytes limit
-64 = The code for the static initializer is exceeding the 65535 bytes limit
-65 = Too many parameters, parameter {0} is exceeding the limit of 255 words eligible for function parameters
-66 = Too many local variables, local variable {0} is exceeding the limit of 65535 words eligible for function local variables
-67 = Too many synthetic parameters, emulated parameter {0} is exceeding the limit of 255 words eligible for function parameters
-68 = Too many array dimensions. Maximum is 255
-69 = The code of constructor {0}({1}) is exceeding the 65535 bytes limit
-70 = {0} cannot be resolved or is not a var
-71 = The var {0} is not visible
-72 = The var {0} is ambiguous
-73 = The var {0}.{1} is deprecated
-74 = Cannot make a static reference to the non-static var {0}
-75 = Cannot reference a var before it is defined
-76 = The static var {0}.{1} should be accessed in a static way
-77 = The private var {0}.{1} is never read locally
-78 = The static var {0}.{1} should be accessed directly
-79 = Unqualified access to the var {0}.{1} 
-80 = The final var {0}.{1} cannot be assigned. It must be blank in this context, not qualified and not in compound assignment
-81 = The blank final var {0} may not have been initialized
-82 = The final var {0} may already have been assigned
-
-90 = The local variable {0} is hiding another local variable defined in an enclosing type scope
-91 = The local variable {0} is hiding a var from type {1}
-92 = The var {0}.{1} is hiding another local variable defined in an enclosing type scope
-93 = The var {0}.{1} is hiding a var from type {2}
-94 = The parameter {0} is hiding another local variable defined in an enclosing type scope
-95 = The parameter {0} is hiding a var from type {1}
-96 = The serializable class {0} does not declare a static final serialVersionUID var of type long
-
-100 = The function {1}({2}) is undefined for the type {0}
-101 = The function {1}({2}) from the type {0} is not visible
-102 = The function {1}({2}) is ambiguous for the type {0}
-103 = The function {1}({2}) from the type {0} is deprecated
-104 = Cannot directly invoke the abstract function {1}({2}) for the type {0}
-105 = Void functions cannot return a value
-106 = Cannot return a void result
-107 = This function requires a body instead of a semicolon
-108 = This function must return a result of type {0}
-
-110 = This function has a constructor name
-111 = Return type for the function is missing
-112 = Native functions do not specify a body
-113 = Abstract functions do not specify a body
-114 = Cannot invoke {1}({2}) on the primitive type {0}
-115 = The function {1}({2}) in the type {0} is not applicable for the arguments ({3})
-116 = Cannot invoke {1}({2}) on the array type {0}
-117 = The static function {1}({2}) from the type {0} should be accessed in a static way
-118 = The private function {1}({2}) from the type {0} is never used locally
-119 = The static function {1}({2}) from the type {0} should be accessed directly 
-
-130 = The constructor {0}({1}) is undefined
-131 = The constructor {0}({1}) is not visible
-132 = The constructor {0}({1}) is ambiguous
-133 = The constructor {0}({1}) is deprecated
-134 = The private constructor {0}({1}) is never used locally
-135 = Cannot refer to an instance var {0} while explicitly invoking a constructor
-136 = Cannot refer to an instance function while explicitly invoking a constructor
-137 = Recursive constructor invocation {0}({1})
-138 = Cannot refer to ''this'' nor ''super'' while explicitly invoking a constructor
-139 = Constructor call must be the first statement in a constructor
-140 = Implicit super constructor {0}({1}) is undefined for default constructor. Must define an explicit constructor
-141 = Implicit super constructor {0}({1}) is not visible for default constructor. Must define an explicit constructor
-142 = Implicit super constructor {0}({1}) is ambiguous for default constructor. Must define an explicit constructor
-143 = Implicit super constructor {0}({1}) is undefined. Must explicitly invoke another constructor
-144 = Implicit super constructor {0}({1}) is not visible. Must explicitly invoke another constructor
-145 = Implicit super constructor {0}({1}) is ambiguous. Must explicitly invoke another constructor
-146 = Default constructor cannot handle exception type {0} thrown by implicit super constructor. Must define an explicit constructor
-147 = Unhandled exception type {0} thrown by implicit super constructor
-
-150 = The type of the expression must be an array type but it resolved to {0}
-151 = Must explicitly convert the char[] to a String
-152 = String constant is exceeding the limit of 65535 bytes of UTF8 encoding
-153 = case expressions must be constant expressions
-154 = The literal {1} of type {0} is out of range 
-156 = Cannot cast from {0} to {1}
-157 = Cannot instantiate the type {0}, since it is not a concrete class
-158 = Cannot define dimension expressions when an array initializer is provided
-159 = Variable must provide either dimension expressions or an array initializer
-160 = The operator {0} is undefined for the argument type(s) {1}
-161 = Unreachable code
-162 = Cannot return from within an initializer
-163 = Initializer does not complete normally
-164 = Expression must return a value
-165 = Unreachable catch block for {0}. Only more specific exceptions are thrown and handled by previous catch block(s).
-166 = The default case is already defined
-167 = Unreachable catch block for {0}. This exception is never thrown from the try statement body
-168 = Unhandled exception type {0}
-169 = case constant must be a char, byte, short, or int instead of {0}
-170 = Duplicate case
-171 = Duplicate label {0}
-172 = break cannot be used outside of a loop or a switch
-173 = continue cannot be used outside of a loop
-174 = The label {0} is missing
-175 = {0} is not a valid type''s argument for the synchronized statement
-176 = null is not a valid argument for the synchronized statement
-177 = Cannot throw null
-178 = The assignment to variable {0} has no effect
-179 = Possible accidental assignment in place of a comparison. A condition expression should not be reduced to an assignment
-180 = Unnecessary semicolon
-181 = Unnecessary cast to type {1} for expression of type {0}
-182 = Unnecessary cast to type {1} for expression of type {0}. It is already compatible with the argument type {2}
-183 = The expression of type {0} is already an instance of type {1}
-184 = finally block does not complete normally
-185 = The declared exception {3} is not actually thrown by the function {1}({2}) from type {0}
-186 = The declared exception {2} is not actually thrown by the constructor {0}({1})
-187 = Unreachable catch block for {0}. It is already handled by the catch block for {1}
-188 = Empty control-flow statement
-189 = Statement unnecessarily nested within else clause. The corresponding then clause does not complete normally
-
-190 = Read access to enclosing var {0}.{1} is emulated by a synthetic accessor function. Increasing its visibility will improve your performance
-191 = Write access to enclosing var {0}.{1} is emulated by a synthetic accessor function. Increasing its visibility will improve your performance
-192 = Access to enclosing function {1}({2}) from the type {0} is emulated by a synthetic accessor function. Increasing its visibility will improve your performance
-193 = Access to enclosing constructor {0}({1}) is emulated by a synthetic accessor function. Increasing its visibility will improve your performance
-195 = The function {1} is defined in an inherited type and an enclosing scope
-196 = The var {0} is defined in an inherited type and an enclosing scope 
-197 = The type {0} is defined in an inherited type and an enclosing scope
-198 = Cannot allocate the member type {0} using its compound name when qualified by an enclosing instance. The member type name is resolved relatively to the qualifying instance type
-
-200 = Cannot use {0} in a static context 
-201 = Cannot make a static reference to the non-static function {1}({2}) from the type {0}
-202 = Cannot specify an array dimension after an empty dimension
-203 = Invalid cast type expression
-204 = Syntax error on token "{0}", {1} expected
-205 = Syntax error on token "{0}", no accurate correction available
-206 = Invalid argument to operation ++/--
-207 = Interfaces cannot have constructors
-208 = Array constants can only be used in initializers
-209 = Syntax error on keyword "{0}"; {1} expected
-210 = Syntax error on keyword "{0}", no accurate correction available
-
-220 = Unmatched bracket
-221 = The primitive type {0} of {1} does not have a var {2}
-222 = Invalid expression as statement
-223 = The left-hand side of an assignment must be a variable
-224 = Missing semicolon
-225 = Invalid parenthesized expression
-
-230 = Syntax error on token "{0}", {1} expected before this token
-231 = Syntax error on token "{0}", {1} expected after this token
-232 = Syntax error on token "{0}", delete this token
-233 = Syntax error on tokens, delete these tokens
-234 = Syntax error on tokens, they can be merge to form {0}
-235 = Syntax error on token "{0}", invalid {1}
-236 = Syntax error on token(s), misplaced construct(s)
-237 = Syntax error on tokens, {0} expected instead
-238 = Syntax error on tokens, no accurate correction available
-239 = Syntax error, unexpected {0}
-240 = Syntax error, insert "{0}" to complete {1}
-241 = Syntax error, insert "{0}" to complete scope
-242 = Syntax error, insert "{0}" to complete phrase
-
-250 = Unexpected end of file
-251 = Invalid hex literal number
-252 = Invalid octal literal number
-253 = Invalid character constant
-254 = Invalid escape sequence (valid ones are  \\b  \\t  \\n  \\f  \\r  \\"  \\''  \\\\ )
-255 = Invalid input
-256 = Invalid unicode
-257 = Invalid float literal number
-258 = Null source string
-259 = String literal is not properly closed by a double-quote
-260 = Unexpected end of comment
-261 = Non-externalized string literal; it should be followed by //$NON-NLS-<n>$
-262 = Invalid digit (valid ones are 0..9)
-
-300 = The interface {0} cannot define an initializer
-301 = Duplicate modifier for the type {0}
-302 = Illegal modifier for the class {0}; only public, abstract & final are permitted
-303 = Illegal modifier for the interface {0}; only public & abstract are permitted
-304 = Illegal modifier for the member class {0}; only public, protected, private, static, abstract & final are permitted
-305 = Illegal modifier for the member interface {0}; only public, protected, private, static & abstract are permitted
-306 = Illegal modifier for the local class {0}; only one of abstract or final is permitted
-307 = Access to the type {0} is restricted as specified by {1}
-308 = The class {0} can be either abstract or final, not both
-309 = The interface member type {0} can only be public
-310 = The member type {0} can only set one of public / protected / private
-311 = The member type {0} cannot be declared static; static types can only be declared in static or top level types
-312 = The interface {0} cannot be the superclass of {1}; a superclass must be a class
-313 = The type {1} cannot subclass the final class {0}
-314 = Duplicate interface {0} for the type {1}
-315 = The class {0} cannot be a superinterface of {1}; a superinterface must be an interface
-316 = Cycle detected: the type {0} cannot extend/implement itself or one of its own member types
-317 = A cycle exists in the type hierarchy between {0} and {1}
-318 = Nested type {0} hides an enclosing type
-319 = Duplicate nested type {0}
-320 = Cannot throw the type {0}
-321 = The package {0} collides with a type
-322 = The type {1} collides with a package
-323 = The type {1} is already defined
-324 = The type {0} cannot be resolved. It is indirectly referenced from required .class files
-325 = The public type {1} must be defined in its own file
-326 = A package must be specified in {0} or a default package created
-327 = The hierarchy of the type {0} is inconsistent
-328 = The declared package does not match the expected package {0}
-329 = The type.jsScript.lang.Object cannot have a superclass or superinterfaces
-
-###[obsolete] 330 = {0} cannot be resolved or is not a valid superclass
-###[obsolete] 331 = Superclass {0} is not visible
-###[obsolete] 332 = Superclass {0} is ambiguous
-###[obsolete] 333 = Superclass {0} cannot be referenced using its binary name
-###[obsolete] 334 = Superclass {0} is defined in an inherited type and an enclosing scope
-###[obsolete] 335 = {0} cannot be resolved or is not a valid superinterface
-###[obsolete] 336 = Superinterface {0} is not visible
-###[obsolete] 337 = Superinterface {0} is ambiguous
-###[obsolete] 338 = Superinterface {0} cannot be referenced using its binary name
-###[obsolete] 339 = Superinterface {0} is defined in an inherited type and an enclosing scope
-
-340 = Duplicate var {0}.{1}
-341 = Duplicate modifier for the var {0}
-342 = Illegal modifier for the var {0}; only public, protected, private, static, final, transient & volatile are permitted
-343 = Illegal modifier for the interface var {0}; only public, static & final are permitted
-344 = The var {0} can only set one of public / protected / private
-345 = The var {0} can be either final or volatile, not both
-346 = The var {0} cannot be declared static; static vars can only be declared in static or top level types
-
-###[obsolete] 350 = {2} cannot be resolved (or is not a valid type) for the var {1}.{0}
-###[obsolete] 351 = The type {2} is not visible for the var {1}.{0}
-###[obsolete] 352 = The type {2} is ambiguous for the var {1}.{0}
-###[obsolete] 353 = The var type {2} cannot be referenced using its binary name
-###[obsolete] 354 = The var type {2} is defined in an inherited type and an enclosing scope
-
-355 = Duplicate function {0}({2}) in type {1}
-356 = Illegal modifier for parameter {0}; only final is permitted
-357 = Duplicate modifier for the function {1} in type {0}
-358 = Illegal modifier for the function {1} in type {0}
-359 = Illegal modifier for the interface function {1} in type {0}; only public & abstract are permitted
-360 = The function {1} in type {0} can only set one of public / protected / private
-361 = The function {1} cannot be declared static; static functions can only be declared in a static or top level type
-362 = The abstract function {1} in type {0} can only set a visibility modifier, one of public or protected
-363 = The abstract function {1} in type {0} can only be defined by an abstract class
-364 = void is an invalid type for the parameter {1} of the function {0}
-365 = An array of void is an invalid type for the parameter {1} of the function {0}
-366 = An array of void is an invalid return type for the function {0}
-367 = The native function {1} cannot also be declared strictfp
-368 = Duplicate modifier for parameter {0}
-
-###[obsolete] 370 = {2} cannot be resolved (or is not a valid type) for the parameter {1} of the function {0}
-###[obsolete] 371 = The type {2} is not visible for the parameter {1} of the function {0}
-###[obsolete] 372 = The type {2} is ambiguous for the parameter {1} of the function {0}
-###[obsolete] 373 = The parameter type {2} cannot be referenced using its binary name
-###[obsolete] 374 = The parameter type {2} is defined in an inherited type and an enclosing scope
-###[obsolete] 375 = {1} cannot be resolved (or is not an exception type) for the function {0}
-###[obsolete] 376 = The exception type {1} is not visible for the function {0}
-###[obsolete] 377 = The exception type {1} is ambiguous for the function {0}
-###[obsolete] 378 = The exception type {1} cannot be referenced using its binary name
-###[obsolete] 379 = The exception type {1} is defined in an inherited type and an enclosing scope
-###[obsolete] 380 = {1} cannot be resolved (or is not a valid return type) for the function {0}
-###[obsolete] 381 = The return type {1} is not visible for the function {0}
-###[obsolete] 382 = The return type {1} is ambiguous for the function {0}
-###[obsolete] 383 = The return type {1} cannot be referenced using its binary name
-###[obsolete] 384 = The return type {1} is defined in an inherited type and an enclosing scope
-
-385 = The import {0} conflicts with a type defined in the same file
-386 = The import {0} collides with another imported type
-387 = Only a type can be imported. {0} resolves to a package
-388 = The import {0} is never used
-390 = The import {0} cannot be resolved
-
-###[obsolete] 391 = The imported type {0} is not visible
-###[obsolete] 392 = The imported type {0} is ambiguous
-###[obsolete] 393 = The imported type {0} cannot be referenced using its binary name
-###[obsolete] 394 = The imported type {0} is defined in an inherited type and an enclosing scope
-
-395 = Duplicate modifier for the variable {0}
-396 = Illegal modifier for the variable {0}; only final is permitted
-
-400 = Class must implement the inherited abstract function {0}
-401 = Cannot override the final function from {0}
-402 = Exception {0} is not compatible with throws clause in {1}
-403 = Exception {0} in throws clause of {1} is not compatible with {2}
-404 = The return type is incompatible with {0}
-405 = The inherited function {0} cannot hide the public abstract function in {1}
-406 = This instance function cannot override the static function from {0}
-407 = This static function cannot hide the instance function from {0}
-408 = The static function {0} conflicts with the abstract function in {1}
-409 = Cannot reduce the visibility of the inherited function from {0}
-410 = The function {0} does not override the inherited function from {1} since it is private to a different package.
-411 = This class must implement the inherited abstract function {1}, but cannot override it since it is not visible from {0}. Either make the type abstract or make the inherited function visible.
-412 = The function {0} overrides a deprecated function from {1}
-413 = The return type is incompatible with {0}, thus this interface cannot be implemented
-414 = Exception {0} is not compatible with throws clause in {1}, thus this interface cannot be implemented
-
-420 = Code snippet support cannot find the class {0}
-421 = Code snippet support cannot find the function {0}.{1}({2}) 
-422 = super cannot be used in the code snippet code
-
-430 = Too many constants, the constant pool for {0} would exceed 65536 entries
-431 = The type generates a string that requires more than 65535 bytes to encode in Utf8 format in the constant pool
-
-432 = Too many vars for type {0}. Maximum is 65535
-433 = Too many functions for type {0}. Maximum is 65535
-
-440 = ''assert'' should not be used as an identifier, since it is a reserved keyword from source level 1.4 on
-441 = ''enum'' should not be used as an identifier, since it is a reserved keyword from source level 1.5 on
-
-450 = {0} {1}
-
-460 = Empty block should be documented
-
-### DOC 
-470 = Unexpected tag
-471 = Missing tag for parameter {0}
-472 = Missing parameter name
-473 = Duplicate tag for parameter
-474 = Parameter {0} is not declared
-475 = Missing tag for return type
-476 = Duplicate tag for return type
-477 = Missing tag for declared exception {0}
-478 = Missing class name
-479 = Invalid class name
-480 = Duplicate tag for thrown exception
-481 = Exception {0} is not declared
-482 = Missing reference
-483 = Invalid reference
-484 = Malformed link reference
-485 = Invalid parameters declaration
-486 = Missing comment for {0} declaration
-487 = Invalid tag
-488 = {0} cannot be resolved or is not a var
-489 = The var {0} is not visible
-490 = The var {0} is ambiguous
-491 = The var {0}.{1} is deprecated
-492 = The constructor {0}({1}) is undefined
-493 = The constructor {0}({1}) is not visible
-494 = The constructor {0}({1}) is ambiguous
-495 = The constructor {0}({1}) is deprecated
-496 = The function {1}({2}) is undefined for the type {0}
-497 = The function {1}({2}) from the type {0} is not visible
-498 = The function {1}({2}) is ambiguous for the type {0}
-499 = The function {1}({2}) from the type {0} is deprecated
-500 = Cannot invoke {1}({2}) on the primitive type {0}
-501 = The function {1}({2}) in the type {0} is not applicable for the arguments ({3})
-502 = Cannot invoke {1}({2}) on the array type {0}
-503 = {0} cannot be resolved to a type
-504 = The type {0} is not visible
-505 = The type {0} is ambiguous
-506 = The type {0} is deprecated
-507 = The nested type {0} cannot be referenced using its binary name
-508 = The function {1} is defined in an inherited type and an enclosing scope
-509 = The var {0} is defined in an inherited type and an enclosing scope 
-510 = The type {0} is defined in an inherited type and an enclosing scope
-511 = {0} is an ambiguous function reference or is not a var
-512 = Missing closing brace for inline tag
-513 = Missing #: "{0}"
-514 = Malformed reference (missing end space separator)
-515 = Missing return type description
-516 = Only static var reference is allowed for @value tag
-517 = Unexpected text
-519 = Javadoc: 
-
-### GENERICS
-520 = Duplicate type parameter {0}
-521 = Cannot refer to the type parameter {0} as a supertype
-522 = Cannot make a static reference to the type parameter {0}
-523 = The type.jsScript.lang.Object cannot be declared as a generic
-524 = The type {0} is not generic; it cannot be parameterized with arguments <{1}>
-525 = Incorrect number of arguments for type {0}; it cannot be parameterized with arguments <{1}>
-526 = Bound mismatch: The type {0} is not a valid substitute for the bounded parameter <{2} extends {3}> of the type {1}
-527 = Method {0}({2}) has the same erasure {0}({3}) as another function in type {1}
-528 = Illegal forward reference to type parameter {0}
-529 = The type {0} is not an interface; it cannot be specified as a bounded parameter
-530 = Unsafe type operation: Should not invoke the constructor {0}({1}) of raw type {0}. References to generic type {2} should be parameterized
-531 = Unsafe type operation: Should not invoke the function {0}({1}) of raw type {2}. References to generic type {3} should be parameterized
-532 = Unsafe type operation: Should not convert expression of raw type {0} to type {1}. References to generic type {2} should be parameterized
-533 = Cannot use the type parameter {0} in a catch block
-534 = Cannot use the parameterized type {0} either in catch block or throws clause
-535 = Cannot create a generic array of {0}
-536 = Unsafe type operation: Should not assign expression of type {0} to the var {1} of raw type {2}. References to generic type {3} should be parameterized
-537 = The type parameter {0} should not be bounded by the final type {1}. Final types cannot be further extended
-538 = Inconsistent classfile encountered: The undefined type parameter {0} is referenced from within {1}
-539 = The interface {2} cannot be implemented simultaneously with different arguments: {0} and {1}
-540 = Bound mismatch: The constructor {0}({1}) of type {2} is not applicable for the arguments ({3}). The wildcard parameter {5} has no lower bound, and may actually be more restrictive than argument {4}
-541 = Bound mismatch: The function {0}({1}) of type {2} is not applicable for the arguments ({3}). The wildcard parameter {5} has no lower bound, and may actually be more restrictive than argument {4}
-542 = Bound mismatch: Cannot assign expression of type {0} to wildcard type {1}. The wildcard type has no lower bound, and may actually be more restrictive than expression type
-543 = Bound mismatch: The generic function {0}({1}) of type {2} is not applicable for the arguments ({3}) since the type {4} is not a valid substitute for the bounded parameter <{5} extends {6}>
-544 = Bound mismatch: The generic constructor {0}({1}) of type {2} is not applicable for the arguments ({3}) since the type {4} is not a valid substitute for the bounded parameter <{5} extends {6}>
-545 = Unsafe type operation: The cast from {0} to parameterized type {1} will not check conformance of type arguments at runtime
-546 = Cannot perform instanceof check against parameterized type {0}. Use instead its raw form {1} since generic type information will be erased at runtime
-547 = Cannot perform instanceof check against type parameter {0}. Use instead its erasure {1} since generic type information will be erased at runtime
-548 = The function {0}({1}) of type {2} is not generic; it cannot be parameterized with arguments <{3}>
-549 = Incorrect number of type arguments for generic function <{3}>{0}({1}) of type {2}; it cannot be parameterized with arguments <{4}>
-550 = The parameterized function <{3}>{0}({1}) of type {2} is not applicable for the arguments ({4})
-551 = The constructor {0}({1}) of type {2} is not generic; it cannot be parameterized with arguments <{3}>
-552 = Incorrect number of type arguments for generic constructor <{3}>{0}({1}) of type {2}; it cannot be parameterized with arguments <{4}>
-553 = The parameterized constructor <{3}>{0}({1}) of type {2} is not applicable for the arguments ({4})
-554 = The function {0}({1}) of raw type {2} is no more generic; it cannot be parameterized with arguments <{3}>
-555 = The constructor {0}({1}) of raw type {2} is no more generic; it cannot be parameterized with arguments <{3}>
-556 = The type {1} cannot extend or implement {0}. A supertype may not specify any wildcard
-557 = The generic class {0} may not subclass.jsScript.lang.Throwable
-558 = Illegal class literal for the type parameter {0}
-559 = Unsafe type operation: The return type {0} of the function {1}({2}) of type {3} needs unchecked conversion to conform to the return type {4} of inherited function
-560 = Name clash : The function {0}({1}) of type {2} has the same erasure as {0}({3}) of type {4} but does not override it
-561 = The member type {0}<{1}> must be qualified with a parameterized type, since it is not static
-562 = The member type {0} must be parameterized, since it is qualified with a parameterized type
-563 = The member type {0} cannot be qualified with a parameterized type, since it is static. Remove arguments from qualifying type {1}
-
-### FOREACH
-580 = Type mismatch: cannot convert from element type {0} to {1}
-581 = Can only iterate over an array or an instance of.jsScript.lang.Iterable
-
-### SOURCE LEVEL
-590 = Syntax error, type parameters are only available if source level is 1.5
-591 = Syntax error, static imports are only available if source level is 1.5
-592 = Syntax error, ''for each'' statements are only available if source level is 1.5
-593 = Syntax error, parameterized types are only available if source level is 1.5
-594 = Syntax error, enum declarations are only available if source level is 1.5
-595 = Syntax error, varargs are only available if source level is 1.5
-596 = Syntax error, annotations are only available if source level is 1.5
-597 = Syntax error, annotation declarations are only available if source level is 1.5
-
-### ANNOTATIONS
-600 = This annotation type member declaration has a constructor name
-601 = Extended dimensions are illegal in an annotation type member declaration
-602 = Package annotations must be in file package-info.jsScript
-
-### CORRUPTED BINARIES
-700 = The class file {0} contains a signature ''{1}'' ill-formed at position {2}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/CompoundNameVector.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/CompoundNameVector.js
deleted file mode 100644
index 4851692..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/CompoundNameVector.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public final class CompoundNameVector {

-	static int INITIAL_SIZE = 10;

-    

-	public int size;

-	int maxSize;

-	char[][][] elements;

-public CompoundNameVector() {

-	maxSize = INITIAL_SIZE;

-	size = 0;

-	elements = new char[maxSize][][];

-}

-public void add(char[][] newElement) {

-	if (size == maxSize)    // knows that size starts <= maxSize

-		System.arraycopy(elements, 0, (elements = new char[maxSize *= 2][][]), 0, size);

-	elements[size++] = newElement;

-}

-public void addAll(char[][][] newElements) {

-	if (size + newElements.length >= maxSize) {

-		maxSize = size + newElements.length;    // assume no more elements will be added

-		System.arraycopy(elements, 0, (elements = new char[maxSize][][]), 0, size);

-	}

-	System.arraycopy(newElements, 0, elements, size, newElements.length);

-	size += newElements.length;

-}

-public boolean contains(char[][] element) {

-	for (int i = size; --i >= 0;)

-		if (CharOperation.equals(element, elements[i]))

-			return true;

-	return false;

-}

-public char[][] elementAt(int index) {

-	return elements[index];

-}

-public char[][] remove(char[][] element) {

-	// assumes only one occurrence of the element exists

-	for (int i = size; --i >= 0;)

-		if (element == elements[i]) {

-			// shift the remaining elements down one spot

-			System.arraycopy(elements, i + 1, elements, i, --size - i);

-			elements[size] = null;

-			return element;

-		}

-	return null;

-}

-public void removeAll() {

-	for (int i = size; --i >= 0;)

-		elements[i] = null;

-	size = 0;

-}

-public String toString() {

-	StringBuffer buffer = new StringBuffer();

-	for (int i = 0; i < size; i++) {

-		buffer.append(CharOperation.toString(elements[i])).append("\n"); //$NON-NLS-1$

-	}

-	return buffer.toString();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/FloatUtil.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/FloatUtil.js
deleted file mode 100644
index 73d4dfd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/FloatUtil.js
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-/**

- * Internal utility for declaing with hexadecimal double and float literals.

- * 

- * @since 3.1

- */

-public class FloatUtil {

-

-	private static final int DOUBLE_FRACTION_WIDTH = 52;

-

-	private static final int DOUBLE_PRECISION = 53;

-

-	private static final int MAX_DOUBLE_EXPONENT = +1023;

-	

-	private static final int MIN_NORMALIZED_DOUBLE_EXPONENT = -1022;

-

-	private static final int MIN_UNNORMALIZED_DOUBLE_EXPONENT = MIN_NORMALIZED_DOUBLE_EXPONENT

-			- DOUBLE_PRECISION;

-

-	private static final int DOUBLE_EXPONENT_BIAS = +1023;

-

-	private static final int DOUBLE_EXPONENT_SHIFT = 52;

-

-	private static final int SINGLE_FRACTION_WIDTH = 23;

-

-	private static final int SINGLE_PRECISION = 24;

-

-	private static final int MAX_SINGLE_EXPONENT = +127;

-

-	private static final int MIN_NORMALIZED_SINGLE_EXPONENT = -126;

-

-	private static final int MIN_UNNORMALIZED_SINGLE_EXPONENT = MIN_NORMALIZED_SINGLE_EXPONENT

-			- SINGLE_PRECISION;

-

-	private static final int SINGLE_EXPONENT_BIAS = +127;

-

-	private static final int SINGLE_EXPONENT_SHIFT = 23;

-

-	/**

-	 * Returns the float value corresponding to the given 

-	 * hexadecimal floating-point single precision literal.

-	 * The literal must be syntactially correct, and must be

-	 * a float literal (end in a 'f' or 'F'). It must not

-	 * include either leading or trailing whitespace or

-	 * a sign.

-	 * <p>

-	 * This method returns the same answer as

-	 * Float.parseFloat(new String(source)) does in JDK 1.5,

-	 * except that this method returns Floal.NaN if it

-	 * would underflow to 0 (parseFloat just returns 0).

-	 * The method handles all the tricky cases, including 

-	 * fraction rounding to 24 bits and gradual underflow.

-	 * </p>

-	 * 

-	 * @param source source string containing single precision

-	 * hexadecimal floating-point literal

-	 * @return the float value, including Float.POSITIVE_INFINITY

-	 * if the non-zero value is too large to be represented, and

-	 * Float.NaN if the non-zero value is too small to be represented

-	 */

-	public static float valueOfHexFloatLiteral(char[] source) {

-		long bits = convertHexFloatingPointLiteralToBits(source);

-		return Float.intBitsToFloat((int) bits);

-	}

-

-	/**

-	 * Returns the double value corresponding to the given 

-	 * hexadecimal floating-point double precision literal.

-	 * The literal must be syntactially correct, and must be

-	 * a double literal (end in an optional 'd' or 'D').

-	 * It must not include either leading or trailing whitespace or

-	 * a sign.

-	 * <p>

-	 * This method returns the same answer as

-	 * Double.parseDouble(new String(source)) does in JDK 1.5,

-	 * except that this method throw NumberFormatException in

-	 * the case of overflow to infinity or underflow to 0.

-	 * The method handles all the tricky cases, including 

-	 * fraction rounding to 53 bits and gradual underflow.

-	 * </p>

-	 * 

-	 * @param source source string containing double precision

-	 * hexadecimal floating-point literal

-	 * @return the double value, including Double.POSITIVE_INFINITY

-	 * if the non-zero value is too large to be represented, and

-	 * Double.NaN if the non-zero value is too small to be represented

-	 */

-	public static double valueOfHexDoubleLiteral(char[] source) {

-		long bits = convertHexFloatingPointLiteralToBits(source);

-		return Double.longBitsToDouble(bits);

-	}

-

-	/**

-	 * Returns the given hexadecimal floating-point literal as

-	 * the bits for a single-precision  (float) or a

-	 * double-precision (double) IEEE floating point number.

-	 * The literal must be syntactially correct.  It must not

-	 * include either leading or trailing whitespace or a sign.

-	 * 

-	 * @param source source string containing hexadecimal floating-point literal

-	 * @return for double precision literals, bits suitable 

-	 * for passing to Double.longBitsToDouble; for single precision literals,

-	 * bits suitable for passing to Single.intBitsToDouble in the bottom

-	 * 32 bits of the result

-	 * @throws NumberFormatException if the number cannot be parsed

-	 */

-	private static long convertHexFloatingPointLiteralToBits(char[] source) {

-		int length = source.length;

-		long mantissa = 0;

-

-		// Step 1: process the '0x' lead-in

-		int next = 0;

-		char nextChar = source[next];

-		nextChar = source[next];

-		if (nextChar == '0') {

-			next++;

-		} else {

-			throw new NumberFormatException();

-		}

-		nextChar = source[next];

-		if (nextChar == 'X' || nextChar == 'x') {

-			next++;

-		} else {

-			throw new NumberFormatException();

-		}

-

-		// Step 2: process leading '0's either before or after the '.'

-		int binaryPointPosition = -1;

-		loop: while (true) {

-			nextChar = source[next];

-			switch (nextChar) {

-			case '0':

-				next++;

-				continue loop;

-			case '.':

-				binaryPointPosition = next;

-				next++;

-				continue loop;

-			default:

-				break loop;

-			}

-		}

-

-		// Step 3: process the mantissa

-		// leading zeros have been trimmed

-		int mantissaBits = 0;

-		int leadingDigitPosition = -1;

-		loop: while (true) {

-			nextChar = source[next];

-			int hexdigit;

-			switch (nextChar) {

-			case '0':

-			case '1':

-			case '2':

-			case '3':

-			case '4':

-			case '5':

-			case '6':

-			case '7':

-			case '8':

-			case '9':

-				hexdigit = nextChar - '0';

-				break;

-			case 'a':

-			case 'b':

-			case 'c':

-			case 'd':

-			case 'e':

-			case 'f':

-				hexdigit = (nextChar - 'a') + 10;

-				break;

-			case 'A':

-			case 'B':

-			case 'C':

-			case 'D':

-			case 'E':

-			case 'F':

-				hexdigit = (nextChar - 'A') + 10;

-				break;

-			case '.':

-				binaryPointPosition = next;

-				next++;

-				continue loop;

-			default:

-				if (binaryPointPosition < 0) {

-					// record virtual '.' as being to right of all digits

-					binaryPointPosition = next;

-				}

-				break loop;

-			}

-			if (mantissaBits == 0) {

-				// this is the first non-zero hex digit

-				// ignore leading binary 0's in hex digit

-				leadingDigitPosition = next;

-				mantissa = hexdigit;

-				mantissaBits = 4;

-			} else if (mantissaBits < 60) {

-				// middle hex digits

-				mantissa <<= 4;

-				mantissa |= hexdigit;

-				mantissaBits += 4;

-			} else {

-				// more mantissa bits than we can handle

-				// drop this hex digit on the ground

-			}

-			next++;

-			continue loop;

-		}

-

-		// Step 4: process the 'P'

-		nextChar = source[next];

-		if (nextChar == 'P' || nextChar == 'p') {

-			next++;

-		} else {

-			throw new NumberFormatException();

-		}

-

-		// Step 5: process the exponent

-		int exponent = 0;

-		int exponentSign = +1;

-		loop: while (next < length) {

-			nextChar = source[next];

-			switch (nextChar) {

-			case '+':

-				exponentSign = +1;

-				next++;

-				continue loop;

-			case '-':

-				exponentSign = -1;

-				next++;

-				continue loop;

-			case '0':

-			case '1':

-			case '2':

-			case '3':

-			case '4':

-			case '5':

-			case '6':

-			case '7':

-			case '8':

-			case '9':

-				int digit = nextChar - '0';

-				exponent = (exponent * 10) + digit;

-				next++;

-				continue loop;

-			default:

-				break loop;

-			}

-		}

-

-		// Step 6: process the optional 'f' or 'd'

-		boolean doublePrecision = true;

-		if (next < length) {

-			nextChar = source[next];

-			switch (nextChar) {

-			case 'f':

-			case 'F':

-				doublePrecision = false;

-				next++;

-				break;

-			case 'd':

-			case 'D':

-				doublePrecision = true;

-				next++;

-				break;

-			default:

-				throw new NumberFormatException();

-			}

-		}

-

-		// at this point, all the parsing is done

-		// Step 7: handle mantissa of zero

-		if (mantissa == 0) {

-			return 0L;

-		}

-

-		// Step 8: normalize non-zero mantissa

-		// mantissa is in right-hand mantissaBits

-		// ensure that top bit (as opposed to hex digit) is 1

-		int scaleFactorCompensation = 0;

-		long top = (mantissa >>> (mantissaBits - 4));

-		if ((top & 0x8) == 0) {

-			mantissaBits--;

-			scaleFactorCompensation++;

-			if ((top & 0x4) == 0) {

-				mantissaBits--;

-				scaleFactorCompensation++;

-				if ((top & 0x2) == 0) {

-					mantissaBits--;

-					scaleFactorCompensation++;

-				}

-			}

-		}

-		

-		// Step 9: convert double literals to IEEE double

-		long result = 0L;

-		if (doublePrecision) {

-			long fraction;

-			if (mantissaBits > DOUBLE_PRECISION) {

-				// more bits than we can keep

-				int extraBits = mantissaBits - DOUBLE_PRECISION;

-				// round to DOUBLE_PRECISION bits

-				fraction = mantissa >>> (extraBits - 1);

-				long lowBit = fraction & 0x1;

-				fraction += lowBit;

-				fraction = fraction >>> 1;

-				if ((fraction & (1L << DOUBLE_PRECISION)) != 0) {

-					fraction = fraction >>> 1;

-					scaleFactorCompensation -= 1;

-				}

-			} else {

-				// less bits than the faction can hold - pad on right with 0s

-				fraction = mantissa << (DOUBLE_PRECISION - mantissaBits);

-			}

-

-			int scaleFactor = 0; // how many bits to move '.' to before leading hex digit

-			if (mantissaBits > 0) {

-				if (leadingDigitPosition < binaryPointPosition) {

-					// e.g., 0x80.0p0 has scaleFactor == +8 

-					scaleFactor = 4 * (binaryPointPosition - leadingDigitPosition);

-					// e.g., 0x10.0p0 has scaleFactorCompensation == +3 

-					scaleFactor -= scaleFactorCompensation;

-				} else {

-					// e.g., 0x0.08p0 has scaleFactor == -4 

-					scaleFactor = -4

-							* (leadingDigitPosition - binaryPointPosition - 1);

-					// e.g., 0x0.01p0 has scaleFactorCompensation == +3 

-					scaleFactor -= scaleFactorCompensation;

-				}

-			}

-

-			int e = (exponentSign * exponent) + scaleFactor;

-			if (e - 1 > MAX_DOUBLE_EXPONENT) {

-				// overflow to +infinity

-				result = Double.doubleToLongBits(Double.POSITIVE_INFINITY);

-			} else if (e - 1 >= MIN_NORMALIZED_DOUBLE_EXPONENT) {

-				// can be represented as a normalized double

-				// the left most bit must be discarded (it's always a 1)

-				long biasedExponent = e - 1 + DOUBLE_EXPONENT_BIAS;

-				result = fraction & ~(1L << DOUBLE_FRACTION_WIDTH);

-				result |= (biasedExponent << DOUBLE_EXPONENT_SHIFT);

-			} else if (e - 1 > MIN_UNNORMALIZED_DOUBLE_EXPONENT) {

-				// can be represented as an unnormalized double

-				long biasedExponent = 0;

-				result = fraction >>> (MIN_NORMALIZED_DOUBLE_EXPONENT - e + 1);

-				result |= (biasedExponent << DOUBLE_EXPONENT_SHIFT);

-			} else {

-				// underflow - return Double.NaN

-				result = Double.doubleToLongBits(Double.NaN);

-			}

-			return result;

-		}

-

-		// Step 10: convert float literals to IEEE single

-		long fraction;

-		if (mantissaBits > SINGLE_PRECISION) {

-			// more bits than we can keep

-			int extraBits = mantissaBits - SINGLE_PRECISION;

-			// round to DOUBLE_PRECISION bits

-			fraction = mantissa >>> (extraBits - 1);

-			long lowBit = fraction & 0x1;

-			fraction += lowBit;

-			fraction = fraction >>> 1;

-			if ((fraction & (1L << SINGLE_PRECISION)) != 0) {

-				fraction = fraction >>> 1;

-				scaleFactorCompensation -= 1;

-			}

-		} else {

-			// less bits than the faction can hold - pad on right with 0s

-			fraction = mantissa << (SINGLE_PRECISION - mantissaBits);

-		}

-

-		int scaleFactor = 0; // how many bits to move '.' to before leading hex digit

-		if (mantissaBits > 0) {

-			if (leadingDigitPosition < binaryPointPosition) {

-				// e.g., 0x80.0p0 has scaleFactor == +8 

-				scaleFactor = 4 * (binaryPointPosition - leadingDigitPosition);

-				// e.g., 0x10.0p0 has scaleFactorCompensation == +3 

-				scaleFactor -= scaleFactorCompensation;

-			} else {

-				// e.g., 0x0.08p0 has scaleFactor == -4 

-				scaleFactor = -4

-						* (leadingDigitPosition - binaryPointPosition - 1);

-				// e.g., 0x0.01p0 has scaleFactorCompensation == +3 

-				scaleFactor -= scaleFactorCompensation;

-			}

-		}

-

-		int e = (exponentSign * exponent) + scaleFactor;

-		if (e - 1 > MAX_SINGLE_EXPONENT) {

-			// overflow to +infinity

-			result = Float.floatToIntBits(Float.POSITIVE_INFINITY);

-		} else if (e - 1 >= MIN_NORMALIZED_SINGLE_EXPONENT) {

-			// can be represented as a normalized single

-			// the left most bit must be discarded (it's always a 1)

-			long biasedExponent = e - 1 + SINGLE_EXPONENT_BIAS;

-			result = fraction & ~(1L << SINGLE_FRACTION_WIDTH);

-			result |= (biasedExponent << SINGLE_EXPONENT_SHIFT);

-		} else if (e - 1 > MIN_UNNORMALIZED_SINGLE_EXPONENT) {

-			// can be represented as an unnormalized single

-			long biasedExponent = 0;

-			result = fraction >>> (MIN_NORMALIZED_SINGLE_EXPONENT - e + 1);

-			result |= (biasedExponent << SINGLE_EXPONENT_SHIFT);

-		} else {

-			// underflow - return Float.NaN

-			result = Float.floatToIntBits(Float.NaN);

-		}

-		return result;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfInt.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfInt.js
deleted file mode 100644
index 482d71e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfInt.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

- 

- /**

-  *	Hashtable for non-zero int keys.

-  */

-  

-public final class HashtableOfInt {

-	// to avoid using Enumerations, walk the individual tables skipping nulls

-	public int[] keyTable;

-	public Object[] valueTable;

-

-	public int elementSize; // number of elements in the table

-	int threshold;

-public HashtableOfInt() {

-	this(13);

-}

-public HashtableOfInt(int size) {

-	this.elementSize = 0;

-	this.threshold = size; // size represents the expected number of elements

-	int extraRoom = (int) (size * 1.75f);

-	if (this.threshold == extraRoom)

-		extraRoom++;

-	this.keyTable = new int[extraRoom];

-	this.valueTable = new Object[extraRoom];

-}

-public boolean containsKey(int key) {

-	int index = key % valueTable.length;

-	int currentKey;

-	while ((currentKey = keyTable[index]) != 0) {

-		if (currentKey == key)

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-public Object get(int key) {

-	int index = key % valueTable.length;

-	int currentKey;

-	while ((currentKey = keyTable[index]) != 0) {

-		if (currentKey == key)  return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return null;

-}

-public Object put(int key, Object value) {

-	int index = key % valueTable.length;

-	int currentKey;

-	while ((currentKey = keyTable[index]) != 0) {

-		if (currentKey == key)  return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold)

-		rehash();

-	return value;

-}

-private void rehash() {

-	HashtableOfInt newHashtable = new HashtableOfInt(elementSize * 2); // double the number of expected elements

-	int currentKey;

-	for (int i = keyTable.length; --i >= 0;)

-		if ((currentKey = keyTable[i]) != 0)

-			newHashtable.put(currentKey, valueTable[i]);

-

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-public int size() {

-	return elementSize;

-}

-public String toString() {

-	String s = ""; //$NON-NLS-1$

-	Object object;

-	for (int i = 0, length = valueTable.length; i < length; i++)

-		if ((object = valueTable[i]) != null)

-			s += keyTable[i] + " -> " + object.toString() + "\n"; //$NON-NLS-2$ //$NON-NLS-1$

-	return s;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfIntValues.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfIntValues.js
deleted file mode 100644
index 955f14b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfIntValues.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-/**

- * Hashtable of {char[] --> int}

- */

-public final class HashtableOfIntValues implements Cloneable {

-	

-	public static final int NO_VALUE = Integer.MIN_VALUE;

-	

-	// to avoid using Enumerations, walk the individual tables skipping nulls

-	public char[] keyTable[];

-	public int valueTable[];

-

-	public int elementSize; // number of elements in the table

-	int threshold;

-

-	public HashtableOfIntValues() {

-		this(13);

-	}

-

-	public HashtableOfIntValues(int size) {

-

-		this.elementSize = 0;

-		this.threshold = size; // size represents the expected number of elements

-		int extraRoom = (int) (size * 1.75f);

-		if (this.threshold == extraRoom)

-			extraRoom++;

-		this.keyTable = new char[extraRoom][];

-		this.valueTable = new int[extraRoom];

-	}

-

-	public Object clone() throws CloneNotSupportedException {

-		HashtableOfIntValues result = (HashtableOfIntValues) super.clone();

-		result.elementSize = this.elementSize;

-		result.threshold = this.threshold;

-

-		int length = this.keyTable.length;

-		result.keyTable = new char[length][];

-		System.arraycopy(this.keyTable, 0, result.keyTable, 0, length);

-

-		length = this.valueTable.length;

-		result.valueTable = new int[length];

-		System.arraycopy(this.valueTable, 0, result.valueTable, 0, length);

-		return result;

-	}

-

-	public boolean containsKey(char[] key) {

-

-		int index = CharOperation.hashCode(key) % valueTable.length;

-		int keyLength = key.length;

-		char[] currentKey;

-		while ((currentKey = keyTable[index]) != null) {

-			if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-				return true;

-			index = (index + 1) % keyTable.length;

-		}

-		return false;

-	}

-

-	public int get(char[] key) {

-

-		int index = CharOperation.hashCode(key) % valueTable.length;

-		int keyLength = key.length;

-		char[] currentKey;

-		while ((currentKey = keyTable[index]) != null) {

-			if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-				return valueTable[index];

-			index = (index + 1) % keyTable.length;

-		}

-		return NO_VALUE;

-	}

-

-	public int put(char[] key, int value) {

-

-		int index = CharOperation.hashCode(key) % valueTable.length;

-		int keyLength = key.length;

-		char[] currentKey;

-		while ((currentKey = keyTable[index]) != null) {

-			if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-				return valueTable[index] = value;

-			index = (index + 1) % keyTable.length;

-		}

-		keyTable[index] = key;

-		valueTable[index] = value;

-

-		// assumes the threshold is never equal to the size of the table

-		if (++elementSize > threshold)

-			rehash();

-		return value;

-	}

-

-	public int removeKey(char[] key) {

-

-		int index = CharOperation.hashCode(key) % valueTable.length;

-		int keyLength = key.length;

-		char[] currentKey;

-		while ((currentKey = keyTable[index]) != null) {

-			if (currentKey.length == keyLength && CharOperation.equals(currentKey, key)) {

-				int value = valueTable[index];

-				elementSize--;

-				keyTable[index] = null;

-				valueTable[index] = NO_VALUE;

-				rehash();

-				return value;

-			}

-			index = (index + 1) % keyTable.length;

-		}

-		return NO_VALUE;

-	}

-

-	private void rehash() {

-

-		HashtableOfIntValues newHashtable = new HashtableOfIntValues(elementSize * 2);		// double the number of expected elements

-		char[] currentKey;

-		for (int i = keyTable.length; --i >= 0;)

-			if ((currentKey = keyTable[i]) != null)

-				newHashtable.put(currentKey, valueTable[i]);

-

-		this.keyTable = newHashtable.keyTable;

-		this.valueTable = newHashtable.valueTable;

-		this.threshold = newHashtable.threshold;

-	}

-

-	public int size() {

-		return elementSize;

-	}

-

-	public String toString() {

-		String s = ""; //$NON-NLS-1$

-		char[] key;

-		for (int i = 0, length = valueTable.length; i < length; i++)

-			if ((key = keyTable[i]) != null)

-				s += new String(key) + " -> " + valueTable[i] + "\n"; 	//$NON-NLS-2$ //$NON-NLS-1$

-		return s;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfLong.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfLong.js
deleted file mode 100644
index b92bb19..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfLong.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

- 

- /**

-  *	Hashtable for non-zero long keys.

-  */

-  

-public final class HashtableOfLong {

-	// to avoid using Enumerations, walk the individual tables skipping nulls

-	public long[] keyTable;

-	public Object[] valueTable;

-

-	public int elementSize; // number of elements in the table

-	int threshold;

-public HashtableOfLong() {

-	this(13);

-}

-public HashtableOfLong(int size) {

-	this.elementSize = 0;

-	this.threshold = size; // size represents the expected number of elements

-	int extraRoom = (int) (size * 1.75f);

-	if (this.threshold == extraRoom)

-		extraRoom++;

-	this.keyTable = new long[extraRoom];

-	this.valueTable = new Object[extraRoom];

-}

-public boolean containsKey(long key) {

-	int index = ((int)(key >>> 32)) % valueTable.length;

-	long currentKey;

-	while ((currentKey = keyTable[index]) != 0) {

-		if (currentKey == key)

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-public Object get(long key) {

-	int index = ((int)(key >>> 32)) % valueTable.length;

-	long currentKey;

-	while ((currentKey = keyTable[index]) != 0) {

-		if (currentKey == key)  return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return null;

-}

-public Object put(long key, Object value) {

-	int index = ((int)(key >>> 32)) % valueTable.length;

-	long currentKey;

-	while ((currentKey = keyTable[index]) != 0) {

-		if (currentKey == key)  return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold)

-		rehash();

-	return value;

-}

-private void rehash() {

-	HashtableOfLong newHashtable = new HashtableOfLong(elementSize * 2); // double the number of expected elements

-	long currentKey;

-	for (int i = keyTable.length; --i >= 0;)

-		if ((currentKey = keyTable[i]) != 0)

-			newHashtable.put(currentKey, valueTable[i]);

-

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-public int size() {

-	return elementSize;

-}

-public String toString() {

-	String s = ""; //$NON-NLS-1$

-	Object object;

-	for (int i = 0, length = valueTable.length; i < length; i++)

-		if ((object = valueTable[i]) != null)

-			s += keyTable[i] + " -> " + object.toString() + "\n"; //$NON-NLS-2$ //$NON-NLS-1$

-	return s;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfObject.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfObject.js
deleted file mode 100644
index 4bec213..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfObject.js
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-/**

- * Hashtable of {char[] --> Object }

- */

-public final class HashtableOfObject implements Cloneable {

-	

-	// to avoid using Enumerations, walk the individual tables skipping nulls

-	public char[] keyTable[];

-	public Object valueTable[];

-

-	public int elementSize; // number of elements in the table

-	int threshold;

-

-	public HashtableOfObject() {

-		this(13);

-	}

-

-	public HashtableOfObject(int size) {

-

-		this.elementSize = 0;

-		this.threshold = size; // size represents the expected number of elements

-		int extraRoom = (int) (size * 1.75f);

-		if (this.threshold == extraRoom)

-			extraRoom++;

-		this.keyTable = new char[extraRoom][];

-		this.valueTable = new Object[extraRoom];

-	}

-

-	public Object clone() throws CloneNotSupportedException {

-		HashtableOfObject result = (HashtableOfObject) super.clone();

-		result.elementSize = this.elementSize;

-		result.threshold = this.threshold;

-

-		int length = this.keyTable.length;

-		result.keyTable = new char[length][];

-		System.arraycopy(this.keyTable, 0, result.keyTable, 0, length);

-

-		length = this.valueTable.length;

-		result.valueTable = new Object[length];

-		System.arraycopy(this.valueTable, 0, result.valueTable, 0, length);

-		return result;

-	}

-

-	public boolean containsKey(char[] key) {

-

-		int index = CharOperation.hashCode(key) % valueTable.length;

-		int keyLength = key.length;

-		char[] currentKey;

-		while ((currentKey = keyTable[index]) != null) {

-			if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-				return true;

-			index = (index + 1) % keyTable.length;

-		}

-		return false;

-	}

-

-	public Object get(char[] key) {

-

-		int index = CharOperation.hashCode(key) % valueTable.length;

-		int keyLength = key.length;

-		char[] currentKey;

-		while ((currentKey = keyTable[index]) != null) {

-			if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-				return valueTable[index];

-			index = (index + 1) % keyTable.length;

-		}

-		return null;

-	}

-

-	public Object put(char[] key, Object value) {

-

-		int index = CharOperation.hashCode(key) % valueTable.length;

-		int keyLength = key.length;

-		char[] currentKey;

-		while ((currentKey = keyTable[index]) != null) {

-			if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-				return valueTable[index] = value;

-			index = (index + 1) % keyTable.length;

-		}

-		keyTable[index] = key;

-		valueTable[index] = value;

-

-		// assumes the threshold is never equal to the size of the table

-		if (++elementSize > threshold)

-			rehash();

-		return value;

-	}

-

-	public Object removeKey(char[] key) {

-

-		int index = CharOperation.hashCode(key) % valueTable.length;

-		int keyLength = key.length;

-		char[] currentKey;

-		while ((currentKey = keyTable[index]) != null) {

-			if (currentKey.length == keyLength && CharOperation.equals(currentKey, key)) {

-				Object value = valueTable[index];

-				elementSize--;

-				keyTable[index] = null;

-				valueTable[index] = null;

-				rehash();

-				return value;

-			}

-			index = (index + 1) % keyTable.length;

-		}

-		return null;

-	}

-

-	private void rehash() {

-

-		HashtableOfObject newHashtable = new HashtableOfObject(elementSize * 2);		// double the number of expected elements

-		char[] currentKey;

-		for (int i = keyTable.length; --i >= 0;)

-			if ((currentKey = keyTable[i]) != null)

-				newHashtable.put(currentKey, valueTable[i]);

-

-		this.keyTable = newHashtable.keyTable;

-		this.valueTable = newHashtable.valueTable;

-		this.threshold = newHashtable.threshold;

-	}

-

-	public int size() {

-		return elementSize;

-	}

-

-	public String toString() {

-		String s = ""; //$NON-NLS-1$

-		Object object;

-		for (int i = 0, length = valueTable.length; i < length; i++)

-			if ((object = valueTable[i]) != null)

-				s += new String(keyTable[i]) + " -> " + object.toString() + "\n"; 	//$NON-NLS-2$ //$NON-NLS-1$

-		return s;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfPackage.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfPackage.js
deleted file mode 100644
index 62ba421..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfPackage.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding;

-

-public final class HashtableOfPackage {

-	// to avoid using Enumerations, walk the individual tables skipping nulls

-	public char[] keyTable[];

-	public PackageBinding valueTable[];

-

-	public int elementSize; // number of elements in the table

-	int threshold;

-public HashtableOfPackage() {

-	this(3); // usually not very large

-}

-public HashtableOfPackage(int size) {

-	this.elementSize = 0;

-	this.threshold = size; // size represents the expected number of elements

-	int extraRoom = (int) (size * 1.75f);

-	if (this.threshold == extraRoom)

-		extraRoom++;

-	this.keyTable = new char[extraRoom][];

-	this.valueTable = new PackageBinding[extraRoom];

-}

-public boolean containsKey(char[] key) {

-	int index = CharOperation.hashCode(key) % valueTable.length;

-	int keyLength = key.length;

-	char[] currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-public PackageBinding get(char[] key) {

-	int index = CharOperation.hashCode(key) % valueTable.length;

-	int keyLength = key.length;

-	char[] currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-			return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return null;

-}

-public PackageBinding put(char[] key, PackageBinding value) {

-	int index = CharOperation.hashCode(key) % valueTable.length;

-	int keyLength = key.length;

-	char[] currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-			return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold)

-		rehash();

-	return value;

-}

-private void rehash() {

-	HashtableOfPackage newHashtable = new HashtableOfPackage(elementSize * 2); // double the number of expected elements

-	char[] currentKey;

-	for (int i = keyTable.length; --i >= 0;)

-		if ((currentKey = keyTable[i]) != null)

-			newHashtable.put(currentKey, valueTable[i]);

-

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-public int size() {

-	return elementSize;

-}

-public String toString() {

-	String s = ""; //$NON-NLS-1$

-	PackageBinding pkg;

-	for (int i = 0, length = valueTable.length; i < length; i++)

-		if ((pkg = valueTable[i]) != null)

-			s += pkg.toString() + "\n"; //$NON-NLS-1$

-	return s;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfType.js
deleted file mode 100644
index 9301276..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/HashtableOfType.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding;

-

-public final class HashtableOfType {

-	// to avoid using Enumerations, walk the individual tables skipping nulls

-	public char[] keyTable[];

-	public ReferenceBinding valueTable[];

-

-	public int elementSize; // number of elements in the table

-	int threshold;

-public HashtableOfType() {

-	this(3);

-}

-public HashtableOfType(int size) {

-	this.elementSize = 0;

-	this.threshold = size; // size represents the expected number of elements

-	int extraRoom = (int) (size * 1.75f);

-	if (this.threshold == extraRoom)

-		extraRoom++;

-	this.keyTable = new char[extraRoom][];

-	this.valueTable = new ReferenceBinding[extraRoom];

-}

-public boolean containsKey(char[] key) {

-	int index = CharOperation.hashCode(key) % valueTable.length;

-	int keyLength = key.length;

-	char[] currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-			return true;

-		index = (index + 1) % keyTable.length;

-	}

-	return false;

-}

-public ReferenceBinding get(char[] key) {

-	int index = CharOperation.hashCode(key) % valueTable.length;

-	int keyLength = key.length;

-	char[] currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-			return valueTable[index];

-		index = (index + 1) % keyTable.length;

-	}

-	return null;

-}

-public ReferenceBinding put(char[] key, ReferenceBinding value) {

-	int index = CharOperation.hashCode(key) % valueTable.length;

-	int keyLength = key.length;

-	char[] currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.length == keyLength && CharOperation.equals(currentKey, key))

-			return valueTable[index] = value;

-		index = (index + 1) % keyTable.length;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold)

-		rehash();

-	return value;

-}

-private void rehash() {

-	HashtableOfType newHashtable = new HashtableOfType(elementSize < 100 ? 100 : elementSize * 2); // double the number of expected elements

-	char[] currentKey;

-	for (int i = keyTable.length; --i >= 0;)

-		if ((currentKey = keyTable[i]) != null)

-			newHashtable.put(currentKey, valueTable[i]);

-

-	this.keyTable = newHashtable.keyTable;

-	this.valueTable = newHashtable.valueTable;

-	this.threshold = newHashtable.threshold;

-}

-public int size() {

-	return elementSize;

-}

-public String toString() {

-	String s = ""; //$NON-NLS-1$

-	ReferenceBinding type;

-	for (int i = 0, length = valueTable.length; i < length; i++)

-		if ((type = valueTable[i]) != null)

-			s += type.toString() + "\n"; //$NON-NLS-1$

-	return s;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/ObjectVector.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/ObjectVector.js
deleted file mode 100644
index a01c8ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/ObjectVector.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-public final class ObjectVector {

-	

-	static int INITIAL_SIZE = 10;

-

-	public int size;

-	int maxSize;

-	Object[] elements;

-	

-	public ObjectVector() {

-

-		this.maxSize = INITIAL_SIZE;

-		this.size = 0;

-		this.elements = new Object[this.maxSize];

-	}

-

-	public void add(Object newElement) {

-

-		if (this.size == this.maxSize) // knows that size starts <= maxSize

-			System.arraycopy(this.elements, 0, (this.elements = new Object[this.maxSize *= 2]), 0, this.size);

-		this.elements[this.size++] = newElement;

-	}

-

-	public void addAll(Object[] newElements) {

-

-		if (this.size + newElements.length >= this.maxSize) {

-			maxSize = this.size + newElements.length; // assume no more elements will be added

-			System.arraycopy(this.elements, 0, (this.elements = new Object[this.maxSize]), 0, this.size);

-		}

-		System.arraycopy(newElements, 0, this.elements, size, newElements.length);

-		this.size += newElements.length;

-	}

-

-	public void addAll(ObjectVector newVector) {

-

-		if (this.size + newVector.size >= this.maxSize) {

-			maxSize = this.size + newVector.size; // assume no more elements will be added

-			System.arraycopy(this.elements, 0, (this.elements = new Object[this.maxSize]), 0, this.size);

-		}

-		System.arraycopy(newVector.elements, 0, this.elements, size, newVector.size);

-		this.size += newVector.size;

-	}

-

-	/**

-	 * Identity check

-	 */

-	public boolean containsIdentical(Object element) {

-

-		for (int i = this.size; --i >= 0;)

-			if (element == this.elements[i])

-				return true;

-		return false;

-	}

-

-	/**

-	 * Equality check

-	 */

-	public boolean contains(Object element) {

-

-		for (int i = this.size; --i >= 0;)

-			if (element.equals(this.elements[i]))

-				return true;

-		return false;

-	}

-

-	public void copyInto(Object[] targetArray){

-		

-		this.copyInto(targetArray, 0);

-	}

-	

-	public void copyInto(Object[] targetArray, int index){

-		

-		System.arraycopy(this.elements, 0, targetArray, index, this.size);

-	}	

-	

-	public Object elementAt(int index) {

-

-		return this.elements[index];

-	}

-

-	public Object find(Object element) {

-

-		for (int i = this.size; --i >= 0;)

-			if (element.equals(this.elements[i]))

-				return element;

-		return null;

-	}

-

-	public Object remove(Object element) {

-

-		// assumes only one occurrence of the element exists

-		for (int i = this.size; --i >= 0;)

-			if (element.equals(this.elements[i])) {

-				// shift the remaining elements down one spot

-				System.arraycopy(this.elements, i + 1, this.elements, i, --this.size - i);

-				this.elements[this.size] = null;

-				return element;

-			}

-		return null;

-	}

-

-	public void removeAll() {

-		

-		for (int i = this.size; --i >= 0;)

-			this.elements[i] = null;

-		this.size = 0;

-	}

-

-	public int size(){

-		

-		return this.size;

-	}

-	

-	public String toString() {

-		

-		String s = ""; //$NON-NLS-1$

-		for (int i = 0; i < this.size; i++)

-			s += this.elements[i].toString() + "\n"; //$NON-NLS-1$

-		return s;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SimpleLookupTable.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SimpleLookupTable.js
deleted file mode 100644
index 5ade59e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SimpleLookupTable.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-/**

- * A simple lookup table is a non-synchronized Hashtable, whose keys

- * and values are Objects. It also uses linear probing to resolve collisions

- * rather than a linked list of hash table entries.

- */

-public final class SimpleLookupTable implements Cloneable {

-

-// to avoid using Enumerations, walk the individual tables skipping nulls

-public Object[] keyTable;

-public Object[] valueTable;

-public int elementSize; // number of elements in the table

-public int threshold;

-

-public SimpleLookupTable() {

-	this(13);

-}

-

-public SimpleLookupTable(int size) {

-	this.elementSize = 0;

-	this.threshold = size; // size represents the expected number of elements

-	int extraRoom = (int) (size * 1.5f);

-	if (this.threshold == extraRoom)

-		extraRoom++;

-	this.keyTable = new Object[extraRoom];

-	this.valueTable = new Object[extraRoom];

-}

-

-public Object clone() throws CloneNotSupportedException {

-	SimpleLookupTable result = (SimpleLookupTable) super.clone();

-	result.elementSize = this.elementSize;

-	result.threshold = this.threshold;

-

-	int length = this.keyTable.length;

-	result.keyTable = new Object[length];

-	System.arraycopy(this.keyTable, 0, result.keyTable, 0, length);

-

-	length = this.valueTable.length;

-	result.valueTable = new Object[length];

-	System.arraycopy(this.valueTable, 0, result.valueTable, 0, length);

-	return result;

-}

-

-public boolean containsKey(Object key) {

-	int length = keyTable.length;

-	int index = (key.hashCode() & 0x7FFFFFFF) % length;

-	Object currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.equals(key)) return true;

-		if (++index == length) index = 0;

-	}

-	return false;

-}

-

-public Object get(Object key) {

-	int length = keyTable.length;

-	int index = (key.hashCode() & 0x7FFFFFFF) % length;

-	Object currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.equals(key)) return valueTable[index];

-		if (++index == length) index = 0;

-	}

-	return null;

-}

-

-public Object keyForValue(Object valueToMatch) {

-	if (valueToMatch != null)

-		for (int i = 0, l = valueTable.length; i < l; i++)

-			if (valueToMatch.equals(valueTable[i]))

-				return keyTable[i];

-	return null;

-}

-

-public Object put(Object key, Object value) {

-	int length = keyTable.length;

-	int index = (key.hashCode() & 0x7FFFFFFF) % length;

-	Object currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.equals(key)) return valueTable[index] = value;

-		if (++index == length) index = 0;

-	}

-	keyTable[index] = key;

-	valueTable[index] = value;

-

-	// assumes the threshold is never equal to the size of the table

-	if (++elementSize > threshold) rehash();

-	return value;

-}

-

-public Object removeKey(Object key) {

-	int length = keyTable.length;

-	int index = (key.hashCode() & 0x7FFFFFFF) % length;

-	Object currentKey;

-	while ((currentKey = keyTable[index]) != null) {

-		if (currentKey.equals(key)) {

-			elementSize--;

-			Object oldValue = valueTable[index];

-			keyTable[index] = null;

-			valueTable[index] = null;

-			if (keyTable[index + 1 == length ? 0 : index + 1] != null)

-				rehash(); // only needed if a possible collision existed

-			return oldValue;

-		}

-		if (++index == length) index = 0;

-	}

-	return null;

-}

-

-public void removeValue(Object valueToRemove) {

-	boolean rehash = false;

-	for (int i = 0, l = valueTable.length; i < l; i++) {

-		Object value = valueTable[i];

-		if (value != null && value.equals(valueToRemove)) {

-			elementSize--;

-			keyTable[i] = null;

-			valueTable[i] = null;

-			if (!rehash && keyTable[i + 1 == l ? 0 : i + 1] != null)

-				rehash = true; // only needed if a possible collision existed

-		}

-	}

-	if (rehash) rehash();

-}

-

-private void rehash() {

-	SimpleLookupTable newLookupTable = new SimpleLookupTable(elementSize * 2); // double the number of expected elements

-	Object currentKey;

-	for (int i = keyTable.length; --i >= 0;)

-		if ((currentKey = keyTable[i]) != null)

-			newLookupTable.put(currentKey, valueTable[i]);

-

-	this.keyTable = newLookupTable.keyTable;

-	this.valueTable = newLookupTable.valueTable;

-	this.elementSize = newLookupTable.elementSize;

-	this.threshold = newLookupTable.threshold;

-}

-

-public String toString() {

-	String s = ""; //$NON-NLS-1$

-	Object object;

-	for (int i = 0, l = valueTable.length; i < l; i++)

-		if ((object = valueTable[i]) != null)

-			s += keyTable[i].toString() + " -> " + object.toString() + "\n"; 	//$NON-NLS-2$ //$NON-NLS-1$

-	return s;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SimpleNameVector.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SimpleNameVector.js
deleted file mode 100644
index 9c29773..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SimpleNameVector.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public final class SimpleNameVector {

-	

-	static int INITIAL_SIZE = 10;

-

-	public int size;

-	int maxSize;

-	char[][] elements;

-	

-	public SimpleNameVector() {

-		

-		this.maxSize = INITIAL_SIZE;

-		this.size = 0;

-		this.elements = new char[this.maxSize][];

-	}

-	

-	public void add(char[] newElement) {

-		

-		if (this.size == this.maxSize) // knows that size starts <= maxSize

-			System.arraycopy(this.elements, 0, (this.elements = new char[this.maxSize *= 2][]), 0, this.size);

-		this.elements[size++] = newElement;

-	}

-	

-	public void addAll(char[][] newElements) {

-		

-		if (this.size + newElements.length >= this.maxSize) {

-			this.maxSize = this.size + newElements.length; // assume no more elements will be added

-			System.arraycopy(this.elements, 0, (this.elements = new char[this.maxSize][]), 0, this.size);

-		}

-		System.arraycopy(newElements, 0, this.elements, this.size, newElements.length);

-		this.size += newElements.length;

-	}

-	

-	public void copyInto(Object[] targetArray){

-		

-		System.arraycopy(this.elements, 0, targetArray, 0, this.size);

-	}

-	

-	public boolean contains(char[] element) {

-		

-		for (int i = this.size; --i >= 0;)

-			if (CharOperation.equals(element, this.elements[i]))

-				return true;

-		return false;

-	}

-	

-	public char[] elementAt(int index) {

-		return this.elements[index];

-	}

-	

-	public char[] remove(char[] element) {

-		

-		// assumes only one occurrence of the element exists

-		for (int i = this.size; --i >= 0;)

-			if (element == this.elements[i]) {

-				// shift the remaining elements down one spot

-				System.arraycopy(this.elements, i + 1, this.elements, i, --this.size - i);

-				this.elements[this.size] = null;

-				return element;

-			}

-		return null;

-	}

-	

-	public void removeAll() {

-		

-		for (int i = this.size; --i >= 0;)

-			this.elements[i] = null;

-		this.size = 0;

-	}

-	

-	public int size(){

-		

-		return this.size;

-	}

-	

-	public String toString() {

-		StringBuffer buffer = new StringBuffer();

-		for (int i = 0; i < this.size; i++) {

-			buffer.append(this.elements[i]).append("\n"); //$NON-NLS-1$

-		}

-		return buffer.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SuffixConstants.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SuffixConstants.js
deleted file mode 100644
index 8e138c6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/SuffixConstants.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-public interface SuffixConstants {

-	public final static String EXTENSION_class = "class"; //$NON-NLS-1$

-	public final static String EXTENSION_CLASS = "CLASS"; //$NON-NLS-1$

-	public final static String EXTENSION_java = "java"; //$NON-NLS-1$

-	public final static String EXTENSION_JAVA = "JAVA"; //$NON-NLS-1$

-	

-	public final static String SUFFIX_STRING_class = "." + EXTENSION_class; //$NON-NLS-1$

-	public final static String SUFFIX_STRING_CLASS = "." + EXTENSION_CLASS; //$NON-NLS-1$

-	public final static String SUFFIX_STRING_java = "." + EXTENSION_java; //$NON-NLS-1$

-	public final static String SUFFIX_STRING_JAVA = "." + EXTENSION_JAVA; //$NON-NLS-1$

-	

-	public final static char[] SUFFIX_class = SUFFIX_STRING_class.toCharArray();

-	public final static char[] SUFFIX_CLASS = SUFFIX_STRING_CLASS.toCharArray();

-	public final static char[] SUFFIX_java = SUFFIX_STRING_java.toCharArray();

-	public final static char[] SUFFIX_JAVA = SUFFIX_STRING_JAVA.toCharArray();

-	

-	public final static String EXTENSION_jar = "jar"; //$NON-NLS-1$

-	public final static String EXTENSION_JAR = "JAR"; //$NON-NLS-1$

-	public final static String EXTENSION_zip = "zip"; //$NON-NLS-1$

-	public final static String EXTENSION_ZIP = "ZIP"; //$NON-NLS-1$

-

-	public final static String SUFFIX_STRING_jar = "." + EXTENSION_jar; //$NON-NLS-1$

-	public final static String SUFFIX_STRING_JAR = "." + EXTENSION_JAR; //$NON-NLS-1$

-	public final static String SUFFIX_STRING_zip = "." + EXTENSION_zip; //$NON-NLS-1$

-	public final static String SUFFIX_STRING_ZIP = "." + EXTENSION_ZIP; //$NON-NLS-1$

-

-	public final static char[] SUFFIX_jar = SUFFIX_STRING_jar.toCharArray();

-	public final static char[] SUFFIX_JAR = SUFFIX_STRING_JAR.toCharArray();

-	public final static char[] SUFFIX_zip = SUFFIX_STRING_zip.toCharArray(); 

-	public final static char[] SUFFIX_ZIP = SUFFIX_STRING_ZIP.toCharArray();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/Util.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/Util.js
deleted file mode 100644
index 3924eeb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/Util.js
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-

-import java.io.BufferedInputStream;

-import java.io.ByteArrayInputStream;

-import java.io.File;

-import java.io.FileInputStream;

-import java.io.IOException;

-import java.io.InputStream;

-import java.io.InputStreamReader;

-import java.util.Locale;

-import java.util.MissingResourceException;

-import java.util.ResourceBundle;

-import java.util.zip.ZipEntry;

-import java.util.zip.ZipFile;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public class Util implements SuffixConstants {

-

-	public interface Displayable {

-		String displayString(Object o);

-	}

-

-	public static String LINE_SEPARATOR = System.getProperty("line.separator"); //$NON-NLS-1$

-	public static char[] LINE_SEPARATOR_CHARS = LINE_SEPARATOR.toCharArray();

-	

-	private final static char[] DOUBLE_QUOTES = "''".toCharArray(); //$NON-NLS-1$

-	private final static char[] SINGLE_QUOTE = "'".toCharArray(); //$NON-NLS-1$

-	private static final int DEFAULT_READING_SIZE = 8192;

-

-	/* Bundle containing messages */

-	protected static ResourceBundle bundle;

-	private final static String bundleName =

-		"org.eclipse.wst.jsdt.internal.compiler.util.messages"; //$NON-NLS-1$

-	static {

-		relocalize();

-	}

-	/**

-	 * Lookup the message with the given ID in this catalog and bind its

-	 * substitution locations with the given strings.

-	 */

-	public static String bind(String id, String binding1, String binding2) {

-		return bind(id, new String[] { binding1, binding2 });

-	}

-	/**

-	 * Lookup the message with the given ID in this catalog and bind its

-	 * substitution locations with the given string.

-	 */

-	public static String bind(String id, String binding) {

-		return bind(id, new String[] { binding });

-	}

-	/**

-	 * Lookup the message with the given ID in this catalog and bind its

-	 * substitution locations with the given string values.

-	 */

-	public static String bind(String id, String[] bindings) {

-		if (id == null)

-			return "No message available"; //$NON-NLS-1$

-		String message = null;

-		try {

-			message = bundle.getString(id);

-		} catch (MissingResourceException e) {

-			// If we got an exception looking for the message, fail gracefully by just returning

-			// the id we were looking for.  In most cases this is semi-informative so is not too bad.

-			return "Missing message: " + id + " in: " + bundleName; //$NON-NLS-2$ //$NON-NLS-1$

-		}

-		// for compatibility with MessageFormat which eliminates double quotes in original message

-		char[] messageWithNoDoubleQuotes =

-			CharOperation.replace(message.toCharArray(), DOUBLE_QUOTES, SINGLE_QUOTE);

-	

-		if (bindings == null) return new String(messageWithNoDoubleQuotes);

-	

-		int length = messageWithNoDoubleQuotes.length;

-		int start = 0;

-		int end = length;

-		StringBuffer output = null;

-		while (true) {

-			if ((end = CharOperation.indexOf('{', messageWithNoDoubleQuotes, start)) > -1) {

-				if (output == null) output = new StringBuffer(length+bindings.length*20);

-				output.append(messageWithNoDoubleQuotes, start, end - start);

-				if ((start = CharOperation.indexOf('}', messageWithNoDoubleQuotes, end + 1)) > -1) {

-					int index = -1;

-					String argId = new String(messageWithNoDoubleQuotes, end + 1, start - end - 1);

-					try {

-						index = Integer.parseInt(argId);

-						output.append(bindings[index]);

-					} catch (NumberFormatException nfe) { // could be nested message ID {compiler.name}

-						boolean done = false;

-						if (!id.equals(argId)) {

-							String argMessage = null;

-							try {

-								argMessage = bundle.getString(argId);

-								output.append(argMessage);

-								done = true;

-							} catch (MissingResourceException e) {

-								// unable to bind argument, ignore (will leave argument in)

-							}

-						}

-						if (!done) output.append(messageWithNoDoubleQuotes, end + 1, start - end);

-					} catch (ArrayIndexOutOfBoundsException e) {

-						output.append("{missing " + Integer.toString(index) + "}"); //$NON-NLS-2$ //$NON-NLS-1$

-					}

-					start++;

-				} else {

-					output.append(messageWithNoDoubleQuotes, end, length);

-					break;

-				}

-			} else {

-				if (output == null) return new String(messageWithNoDoubleQuotes);

-				output.append(messageWithNoDoubleQuotes, start, length - start);

-				break;

-			}

-		}

-		return output.toString();

-	}

-	/**

-	 * Lookup the message with the given ID in this catalog 

-	 */

-	public static String bind(String id) {

-		return bind(id, (String[]) null);

-	}

-	/**

-	 * Creates a NLS catalog for the given locale.

-	 */

-	public static void relocalize() {

-		try {

-			bundle = ResourceBundle.getBundle(bundleName, Locale.getDefault());

-		} catch(MissingResourceException e) {

-			System.out.println("Missing resource : " + bundleName.replace('.', '/') + ".properties for locale " + Locale.getDefault()); //$NON-NLS-1$//$NON-NLS-2$

-			throw e;

-		}

-	}

-	/**

-	 * Returns the given bytes as a char array using a given encoding (null means platform default).

-	 */

-	public static char[] bytesToChar(byte[] bytes, String encoding) throws IOException {

-

-		return getInputStreamAsCharArray(new ByteArrayInputStream(bytes), bytes.length, encoding);

-

-	}

-	/**

-	 * Returns the contents of the given file as a byte array.

-	 * @throws IOException if a problem occured reading the file.

-	 */

-	public static byte[] getFileByteContent(File file) throws IOException {

-		InputStream stream = null;

-		try {

-			stream = new BufferedInputStream(new FileInputStream(file));

-			return getInputStreamAsByteArray(stream, (int) file.length());

-		} finally {

-			if (stream != null) {

-				try {

-					stream.close();

-				} catch (IOException e) {

-					// ignore

-				}

-			}

-		}

-	}

-	/**

-	 * Returns the contents of the given file as a char array.

-	 * When encoding is null, then the platform default one is used

-	 * @throws IOException if a problem occured reading the file.

-	 */

-	public static char[] getFileCharContent(File file, String encoding) throws IOException {

-		InputStream stream = null;

-		try {

-			stream = new BufferedInputStream(new FileInputStream(file));

-			return getInputStreamAsCharArray(stream, (int) file.length(), encoding);

-		} finally {

-			if (stream != null) {

-				try {

-					stream.close();

-				} catch (IOException e) {

-					// ignore

-				}

-			}

-		}

-	}

-	/*

-	 * NIO support to get input stream as byte array.

-	 * Not used as with JDK 1.4.2 this support is slower than standard IO one...

-	 * Keep it as comment for future in case of next JDK versions improve performance

-	 * in this area...

-	 *

-	public static byte[] getInputStreamAsByteArray(FileInputStream stream, int length)

-		throws IOException {

-

-		FileChannel channel = stream.getChannel();

-		int size = (int)channel.size();

-		if (length >= 0 && length < size) size = length;

-		byte[] contents = new byte[size];

-		ByteBuffer buffer = ByteBuffer.wrap(contents);

-		channel.read(buffer);

-		return contents;

-	}

-	*/

-	/**

-	 * Returns the given input stream's contents as a byte array.

-	 * If a length is specified (ie. if length != -1), only length bytes

-	 * are returned. Otherwise all bytes in the stream are returned.

-	 * Note this doesn't close the stream.

-	 * @throws IOException if a problem occured reading the stream.

-	 */

-	public static byte[] getInputStreamAsByteArray(InputStream stream, int length)

-		throws IOException {

-		byte[] contents;

-		if (length == -1) {

-			contents = new byte[0];

-			int contentsLength = 0;

-			int amountRead = -1;

-			do {

-				int amountRequested = Math.max(stream.available(), DEFAULT_READING_SIZE);  // read at least 8K

-				

-				// resize contents if needed

-				if (contentsLength + amountRequested > contents.length) {

-					System.arraycopy(

-						contents,

-						0,

-						contents = new byte[contentsLength + amountRequested],

-						0,

-						contentsLength);

-				}

-

-				// read as many bytes as possible

-				amountRead = stream.read(contents, contentsLength, amountRequested);

-

-				if (amountRead > 0) {

-					// remember length of contents

-					contentsLength += amountRead;

-				}

-			} while (amountRead != -1); 

-

-			// resize contents if necessary

-			if (contentsLength < contents.length) {

-				System.arraycopy(

-					contents,

-					0,

-					contents = new byte[contentsLength],

-					0,

-					contentsLength);

-			}

-		} else {

-			contents = new byte[length];

-			int len = 0;

-			int readSize = 0;

-			while ((readSize != -1) && (len != length)) {

-				// See PR 1FMS89U

-				// We record first the read size. In this case len is the actual read size.

-				len += readSize;

-				readSize = stream.read(contents, len, length - len);

-			}

-		}

-

-		return contents;

-	}

-	/*

-	 * NIO support to get input stream as char array.

-	 * Not used as with JDK 1.4.2 this support is slower than standard IO one...

-	 * Keep it as comment for future in case of next JDK versions improve performance

-	 * in this area...

-	public static char[] getInputStreamAsCharArray(FileInputStream stream, int length, String encoding)

-		throws IOException {

-		

-		FileChannel channel = stream.getChannel();

-		int size = (int)channel.size();

-		if (length >= 0 && length < size) size = length;

-		Charset charset = encoding==null?systemCharset:Charset.forName(encoding);

-		if (charset != null) {

-			MappedByteBuffer bbuffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, size);

-		    CharsetDecoder decoder = charset.newDecoder();

-		    CharBuffer buffer = decoder.decode(bbuffer);

-		    char[] contents = new char[buffer.limit()];

-		    buffer.get(contents);

-		    return contents;

-		}

-		throw new UnsupportedCharsetException(SYSTEM_FILE_ENCODING);

-	}

-	*/

-	/**

-	 * Returns the given input stream's contents as a character array.

-	 * If a length is specified (ie. if length != -1), only length chars

-	 * are returned. Otherwise all chars in the stream are returned.

-	 * Note this doesn't close the stream.

-	 * @throws IOException if a problem occured reading the stream.

-	 */

-	public static char[] getInputStreamAsCharArray(InputStream stream, int length, String encoding)

-		throws IOException {

-		InputStreamReader reader = null;

-		reader = encoding == null

-					? new InputStreamReader(stream)

-					: new InputStreamReader(stream, encoding);

-		char[] contents;

-		if (length == -1) {

-			contents = CharOperation.NO_CHAR;

-			int contentsLength = 0;

-			int amountRead = -1;

-			do {

-				int amountRequested = Math.max(stream.available(), DEFAULT_READING_SIZE);  // read at least 8K

-

-				// resize contents if needed

-				if (contentsLength + amountRequested > contents.length) {

-					System.arraycopy(

-						contents,

-						0,

-						contents = new char[contentsLength + amountRequested],

-						0,

-						contentsLength);

-				}

-

-				// read as many chars as possible

-				amountRead = reader.read(contents, contentsLength, amountRequested);

-

-				if (amountRead > 0) {

-					// remember length of contents

-					contentsLength += amountRead;

-				}

-			} while (amountRead != -1);

-

-			// Do not keep first character for UTF-8 BOM encoding

-			int start = 0;

-			if (contentsLength > 0 && "UTF-8".equals(encoding)) { //$NON-NLS-1$

-				if (contents[0] == 0xFEFF) { // if BOM char then skip

-					contentsLength--;

-					start = 1;

-				}

-			}

-			// resize contents if necessary

-			if (contentsLength < contents.length) {

-				System.arraycopy(

-					contents,

-					start,

-					contents = new char[contentsLength],

-					0,

-					contentsLength);

-			}

-		} else {

-			contents = new char[length];

-			int len = 0;

-			int readSize = 0;

-			while ((readSize != -1) && (len != length)) {

-				// See PR 1FMS89U

-				// We record first the read size. In this case len is the actual read size.

-				len += readSize;

-				readSize = reader.read(contents, len, length - len);

-			}

-			// Do not keep first character for UTF-8 BOM encoding

-			int start = 0;

-			if (length > 0 && "UTF-8".equals(encoding)) { //$NON-NLS-1$

-				if (contents[0] == 0xFEFF) { // if BOM char then skip

-					len--;

-					start = 1;

-				}

-			}

-			// See PR 1FMS89U

-			// Now we need to resize in case the default encoding used more than one byte for each

-			// character

-			if (len != length)

-				System.arraycopy(contents, start, (contents = new char[len]), 0, len);

-		}

-

-		return contents;

-	}

-	

-	/**

-	 * Returns the contents of the given zip entry as a byte array.

-	 * @throws IOException if a problem occured reading the zip entry.

-	 */

-	public static byte[] getZipEntryByteContent(ZipEntry ze, ZipFile zip)

-		throws IOException {

-

-		InputStream stream = null;

-		try {

-			stream = new BufferedInputStream(zip.getInputStream(ze));

-			return getInputStreamAsByteArray(stream, (int) ze.getSize());

-		} finally {

-			if (stream != null) {

-				try {

-					stream.close();

-				} catch (IOException e) {

-					// ignore

-				}

-			}

-		}

-	}

-	/**

-	 * Returns true iff str.toLowerCase().endsWith(".jar") || str.toLowerCase().endsWith(".zip")

-	 * implementation is not creating extra strings.

-	 */

-	public final static boolean isArchiveFileName(String name) {

-		int nameLength = name == null ? 0 : name.length();

-		int suffixLength = SUFFIX_JAR.length;

-		if (nameLength < suffixLength) return false;

-

-		// try to match as JAR file

-		for (int i = 0; i < suffixLength; i++) {

-			char c = name.charAt(nameLength - i - 1);

-			int suffixIndex = suffixLength - i - 1;

-			if (c != SUFFIX_jar[suffixIndex] && c != SUFFIX_JAR[suffixIndex]) {

-

-				// try to match as ZIP file

-				suffixLength = SUFFIX_ZIP.length;

-				if (nameLength < suffixLength) return false;

-				for (int j = 0; j < suffixLength; j++) {

-					c = name.charAt(nameLength - j - 1);

-					suffixIndex = suffixLength - j - 1;

-					if (c != SUFFIX_zip[suffixIndex] && c != SUFFIX_ZIP[suffixIndex]) return false;

-				}

-				return true;

-			}

-		}

-		return true;		

-	}	

-	/**

-	 * Returns true iff str.toLowerCase().endsWith(".class")

-	 * implementation is not creating extra strings.

-	 */

-	public final static boolean isClassFileName(String name) {

-		int nameLength = name == null ? 0 : name.length();

-		int suffixLength = SUFFIX_CLASS.length;

-		if (nameLength < suffixLength) return false;

-

-		for (int i = 0; i < suffixLength; i++) {

-			char c = name.charAt(nameLength - i - 1);

-			int suffixIndex = suffixLength - i - 1;

-			if (c != SUFFIX_class[suffixIndex] && c != SUFFIX_CLASS[suffixIndex]) return false;

-		}

-		return true;		

-	}	

-	/**

-	 * Returns true iff str.toLowerCase().endsWith(".class")

-	 * implementation is not creating extra strings.

-	 */

-	public final static boolean isClassFileName(char[] name) {

-		int nameLength = name == null ? 0 : name.length;

-		int suffixLength = SUFFIX_CLASS.length;

-		if (nameLength < suffixLength) return false;

-

-		for (int i = 0, offset = nameLength - suffixLength; i < suffixLength; i++) {

-			char c = name[offset + i];

-			if (c != SUFFIX_class[i] && c != SUFFIX_CLASS[i]) return false;

-		}

-		return true;		

-	}	

-	/**

-	 * Returns true iff str.toLowerCase().endsWith(".java")

-	 * implementation is not creating extra strings.

-	 */

-	public final static boolean isJavaFileName(String name) {

-		int nameLength = name == null ? 0 : name.length();

-		int suffixLength = SUFFIX_JAVA.length;

-		if (nameLength < suffixLength) return false;

-

-		for (int i = 0; i < suffixLength; i++) {

-			char c = name.charAt(nameLength - i - 1);

-			int suffixIndex = suffixLength - i - 1;

-			if (c != SUFFIX_java[suffixIndex] && c != SUFFIX_JAVA[suffixIndex]) return false;

-		}

-		return true;		

-	}

-	/**

-	 * Returns true iff str.toLowerCase().endsWith(".java")

-	 * implementation is not creating extra strings.

-	 */

-	public final static boolean isJavaFileName(char[] name) {

-		int nameLength = name == null ? 0 : name.length;

-		int suffixLength = SUFFIX_JAVA.length;

-		if (nameLength < suffixLength) return false;

-

-		for (int i = 0, offset = nameLength - suffixLength; i < suffixLength; i++) {

-			char c = name[offset + i];

-			if (c != SUFFIX_java[i] && c != SUFFIX_JAVA[i]) return false;

-		}

-		return true;		

-	}

-	/**

-	 * Converts an array of Objects into String.

-	 */

-	public static String toString(Object[] objects) {

-		return toString(objects, 

-			new Displayable(){ 

-				public String displayString(Object o) { 

-					if (o == null) return "null"; //$NON-NLS-1$

-					return o.toString(); 

-				}

-			});

-	}

-

-	/**

-	 * Converts an array of Objects into String.

-	 */

-	public static String toString(Object[] objects, Displayable renderer) {

-		if (objects == null) return ""; //$NON-NLS-1$

-		StringBuffer buffer = new StringBuffer(10);

-		for (int i = 0; i < objects.length; i++){

-			if (i > 0) buffer.append(", "); //$NON-NLS-1$

-			buffer.append(renderer.displayString(objects[i]));

-		}

-		return buffer.toString();

-	}

-

-	/**

-	 * Converts a boolean value into Boolean.

-	 * @param bool The boolean to convert

-	 * @return The corresponding Boolean object (TRUE or FALSE).

-	 */

-	public static Boolean toBoolean(boolean bool) {

-		if (bool) {

-			return Boolean.TRUE;

-		} else {

-			return Boolean.FALSE;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/WeakHashSet.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/WeakHashSet.js
deleted file mode 100644
index 3f7975e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/WeakHashSet.js
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2004 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.compiler.util;

-import java.lang.ref.ReferenceQueue;

-import java.lang.ref.WeakReference;

-

-/**

- * A hashset whose values can be garbage collected.

- */

-public class WeakHashSet {

-	

-	public class HashableWeakReference extends WeakReference {

-		public int hashCode;

-		public HashableWeakReference(Object referent, ReferenceQueue queue) {

-			super(referent, queue);

-			this.hashCode = referent.hashCode();

-		}

-		public boolean equals(Object obj) {

-			if (!(obj instanceof HashableWeakReference)) return false;

-			Object referent = get();

-			Object other = ((HashableWeakReference) obj).get();

-			if (referent == null) return other == null;

-			return referent.equals(other);

-		}

-		public int hashCode() {

-			return this.hashCode;

-		}

-		public String toString() {

-			Object referent = get();

-			if (referent == null) return "[hashCode=" + this.hashCode + "] <referent was garbage collected>"; //$NON-NLS-1$  //$NON-NLS-2$

-			return "[hashCode=" + this.hashCode + "] " + referent.toString(); //$NON-NLS-1$ //$NON-NLS-2$

-		}

-	}

-	

-	HashableWeakReference[] values;

-	public int elementSize; // number of elements in the table

-	int threshold;

-	ReferenceQueue referenceQueue = new ReferenceQueue();	

-	

-	public WeakHashSet() {

-		this(5);

-	}

-	

-	public WeakHashSet(int size) {

-		this.elementSize = 0;

-		this.threshold = size; // size represents the expected number of elements

-		int extraRoom = (int) (size * 1.75f);

-		if (this.threshold == extraRoom)

-			extraRoom++;

-		this.values = new HashableWeakReference[extraRoom];

-	}

-	

-	/*

-	 * Adds the given object to this set.

-	 * If an object that is equals to the given object already exists, do nothing.

-	 * Returns the existing object or the new object if not found.

-	 */

-	public Object add(Object obj) {

-		cleanupGarbageCollectedValues();

-		int index = (obj.hashCode() & 0x7FFFFFFF) % this.values.length;

-		HashableWeakReference currentValue;

-		while ((currentValue = this.values[index]) != null) {

-			Object referent;

-			if (obj.equals(referent = currentValue.get())) {

-				return referent;

-			}

-			index = (index + 1) % this.values.length;

-		}

-		this.values[index] = new HashableWeakReference(obj, this.referenceQueue);

-

-		// assumes the threshold is never equal to the size of the table

-		if (++this.elementSize > this.threshold)

-			rehash();

-		

-		return obj;

-	}

-		

-	private void addValue(HashableWeakReference value) {

-		Object obj = value.get();

-		if (obj == null) return;

-		int valuesLength = this.values.length;

-		int index = (value.hashCode & 0x7FFFFFFF) % valuesLength;

-		HashableWeakReference currentValue;

-		while ((currentValue = this.values[index]) != null) {

-			if (obj.equals(currentValue.get())) {

-				return;

-			}

-			index = (index + 1) % valuesLength;

-		}

-		this.values[index] = value;

-

-		// assumes the threshold is never equal to the size of the table

-		if (++this.elementSize > this.threshold)

-			rehash();

-	}

-	

-	private void cleanupGarbageCollectedValues() {

-		HashableWeakReference toBeRemoved;

-		while ((toBeRemoved = (HashableWeakReference) this.referenceQueue.poll()) != null) {

-			int hashCode = toBeRemoved.hashCode;

-			int valuesLength = this.values.length;

-			int index = (hashCode & 0x7FFFFFFF) % valuesLength;

-			HashableWeakReference currentValue;

-			while ((currentValue = this.values[index]) != null) {

-				if (currentValue == toBeRemoved) {

-					// replace the value at index with the last value with the same hash

-					int sameHash = index;

-					int current;

-					while ((currentValue = this.values[current = (sameHash + 1) % valuesLength]) != null && currentValue.hashCode == hashCode)

-						sameHash = current;

-					this.values[index] = this.values[sameHash];

-					this.values[sameHash] = null;

-					this.elementSize--;

-					break;

-				}

-				index = (index + 1) % valuesLength;

-			}

-		}

-	}

-	

-	public boolean contains(Object obj) {

-		return get(obj) != null;

-	}

-	

-	/*

-	 * Return the object that is in this set and that is equals to the given object.

-	 * Return null if not found.

-	 */

-	public Object get(Object obj) {

-		cleanupGarbageCollectedValues();

-		int valuesLength = this.values.length;

-		int index = (obj.hashCode() & 0x7FFFFFFF) % valuesLength;

-		HashableWeakReference currentValue;

-		while ((currentValue = this.values[index]) != null) {

-			Object referent;

-			if (obj.equals(referent = currentValue.get())) {

-				return referent;

-			}

-			index = (index + 1) % valuesLength;

-		}

-		return null;

-	}

-		

-	private void rehash() {

-		WeakHashSet newHashSet = new WeakHashSet(this.elementSize * 2);		// double the number of expected elements

-		newHashSet.referenceQueue = this.referenceQueue;

-		HashableWeakReference currentValue;

-		for (int i = 0, length = this.values.length; i < length; i++)

-			if ((currentValue = this.values[i]) != null)

-				newHashSet.addValue(currentValue);

-

-		this.values = newHashSet.values;

-		this.threshold = newHashSet.threshold;

-		this.elementSize = newHashSet.elementSize;

-	}

-

-	/*

-	 * Removes the object that is in this set and that is equals to the given object.

-	 * Return the object that was in the set, or null if not found.

-	 */

-	public Object remove(Object obj) {

-		cleanupGarbageCollectedValues();

-		int valuesLength = this.values.length;

-		int index = (obj.hashCode() & 0x7FFFFFFF) % valuesLength;

-		HashableWeakReference currentValue;

-		while ((currentValue = this.values[index]) != null) {

-			Object referent;

-			if (obj.equals(referent = currentValue.get())) {

-				this.elementSize--;

-				this.values[index] = null;

-				rehash();

-				return referent;

-			}

-			index = (index + 1) % valuesLength;

-		}

-		return null;

-	}

-

-	public int size() {

-		return this.elementSize;

-	}

-

-	public String toString() {

-		StringBuffer buffer = new StringBuffer("{"); //$NON-NLS-1$

-		for (int i = 0, length = this.values.length; i < length; i++) {

-			HashableWeakReference value = this.values[i];

-			if (value != null) {

-				Object ref = value.get();

-				if (ref != null) {

-					buffer.append(ref.toString());

-					buffer.append(", "); //$NON-NLS-1$

-				}

-			}

-		}

-		buffer.append("}"); //$NON-NLS-1$

-		return buffer.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/messages.properties b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/messages.properties
deleted file mode 100644
index ac5ee6f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Compiler/src/org/eclipse/jsdt/internal/compiler/util/messages.properties
+++ /dev/null
@@ -1,66 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-### Eclipse Java Core Compiler messages.
-
-### compilation
-compilation.unresolvedProblem =  Unresolved compilation problem: \n
-compilation.unresolvedProblems = Unresolved compilation problems: \n
-compilation.request    = [parsing    {2} - #{0}/{1}]
-compilation.loadBinary = [reading    {0}.class]
-compilation.process    = [analyzing  {2} - #{0}/{1}]
-compilation.write      = [writing    {1} - #{0}]
-compilation.done       = [completed  {2} - #{0}/{1}]
-compilation.units      = [{0} units compiled]
-compilation.unit       = [{0} unit compiled]
-compilation.internalError = Internal compiler error
-
-### output
-output.isFile =  The outDir is a file : {0}
-output.isFileNotDirectory = The outDir is a file not a directory.
-output.dirName =  The output dir name is : {0}
-output.notValidAll =  The outDir is not a valid directory name. All the directories cannot be created.
-output.fileName =  file name : {0}
-output.notValid = The outDir is not a valid directory name. The directory cannot be created.
-
-### problem
-problem.noSourceInformation = \n!! no source information available !!
-problem.atLine = (at line {0})
-
-### abort
-abort.invalidAttribute = SANITY CHECK: Invalid attribute for local variable {0}
-abort.missingCode = Missing code implementation in the compiler
-abort.againstSourceModel = Cannot compile against source model {0} issued from {1}
-
-### accept
-accept.cannot = Cannot accept the compilation unit: 
-
-### parser
-parser.incorrectPath = The path for the.jsScriptdcl.jsScript file is incorrect
-parser.moveFiles = MOVE FILES IN THE Runtime DIRECTORY OF Parser.class
-parser.syntaxRecovery = SYNTAX RECOVERY
-parser.regularParse = REGULAR PARSE
-parser.missingFile = missing file {0}
-parser.corruptedFile = corrupted file {0}
-parser.endOfFile = end of file
-parser.endOfConstructor = end of constructor
-parser.endOfMethod = end of function
-parser.endOfInitializer = end of initializer
-
-### ast
-ast.missingCode = Missing code gen implementation
-
-### constant
-constant.cannotCastedInto =  {0} constant cannot be casted into {1}
-constant.cannotConvertedTo = {0} constant cannot be converted to {1}
-
-### miscellaneous
-error.undefinedTypeVariable = Undefined type variable: {0}
-error.missingBound = The class files for {0} and {1} are out of sync
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/.project
deleted file mode 100644
index e98f410..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>Completion</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/.settings/.jsdtscope
deleted file mode 100644
index 52fecd3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/.settings/.jsdtscope
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="src2"/>
-    <classpathentry kind="src" path="src3"/>
-    <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>    
-    <classpathentry kind="lib" path="zzz.jar" sourcepath="/Completion/zzzsrc.zip"/>
-    <classpathentry kind="lib" path="test0049.jar" sourcepath="/Completion/test0049src.zip"/>
-    <classpathentry kind="lib" path="pack.jar"/>
-    <classpathentry kind="lib" path="same.jar"/>
-    <classpathentry kind="lib" path="constructors.jar" sourcepath="/Completion/constructorssrc.zip"/>
-    <classpathentry kind="lib" path="generics.jar" sourcepath="/Completion/genericssrc.zip"/>
-    <classpathentry kind="lib" path="class-folder"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/ZZZ.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/ZZZ.js
deleted file mode 100644
index 01754ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/ZZZ.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function ZZZ(){
-	
-}
-ZZZ.prototype=new Object();
-ZZZ.prototype.ZZZ_FUNCTION=function(){};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/constructors.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/constructors.jar
deleted file mode 100644
index e8374af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/constructors.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/constructorssrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/constructorssrc.zip
deleted file mode 100644
index be53e39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/constructorssrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/generics.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/generics.jar
deleted file mode 100644
index 0898750..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/generics.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/genericssrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/genericssrc.zip
deleted file mode 100644
index ed67185..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/genericssrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/lib.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/lib.jar
deleted file mode 100644
index a0aa3d6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/lib.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/pack.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/pack.jar
deleted file mode 100644
index c8cba3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/pack.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/same.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/same.jar
deleted file mode 100644
index f7f4a60..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/same.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/A.js
deleted file mode 100644
index 69d90ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	public int bar;

-	public void bar(){}

-	public void foobar(){}

-	public void foobar(int i){}

-	public static void foo(){}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/B.js
deleted file mode 100644
index 1caa842..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public interface B {

-	public void foobar();

-	public void foobar(int i);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CUWithSecondaryType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CUWithSecondaryType.js
deleted file mode 100644
index 74f7dec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CUWithSecondaryType.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CUWithSecondaryType {

-

-}

-class SecondaryType2 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/ClassWithComplexName.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/ClassWithComplexName.js
deleted file mode 100644
index 8dccb5f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/ClassWithComplexName.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class ClassWithComplexName {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Completion2InterfacesWithSameMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Completion2InterfacesWithSameMethod.js
deleted file mode 100644
index eb210e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Completion2InterfacesWithSameMethod.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class Completion2InterfacesWithSameMethod {

-	void foo(Completion2InterfacesWithSameMethodI1 var){

-		var.meth

-	}

-}

-interface Completion2InterfacesWithSameMethodI1 extends Completion2InterfacesWithSameMethodI2, Completion2InterfacesWithSameMethodI3{

-}

-interface Completion2InterfacesWithSameMethodI2 {

-	void method();

-}

-interface Completion2InterfacesWithSameMethodI3 {

-	void method();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterCase1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterCase1.js
deleted file mode 100644
index 58fdcec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterCase1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionAfterCase1 {

-	static final int zzz = 5;

-	void foo(){

-		switch(1) {

-			case zz

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterCase2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterCase2.js
deleted file mode 100644
index fdbac40..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterCase2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionAfterCase2 {

-	static final int zzz = 5;

-	void foo(){

-		switch(1) {

-			case 25:

-			case zz

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterSupercall1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterSupercall1.js
deleted file mode 100644
index a35f010..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterSupercall1.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class CompletionAfterSupercall1 extends CompletionAfterSupercall1_1 {

-	public void foo(){

-		super.foo

-	}

-}

-abstract class CompletionAfterSupercall1_1 extends CompletionAfterSupercall1_2 implements CompletionAfterSupercall1_3 {

-	

-}

-class CompletionAfterSupercall1_2 implements CompletionAfterSupercall1_3 {

-	public void foo(){}

-}

-interface CompletionAfterSupercall1_3 {

-	public void foo();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterSwitch.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterSwitch.js
deleted file mode 100644
index 922c8c0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAfterSwitch.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class CompletionAfterSwitch {

-	int x;

-	void foo() {

-		switch (x) {

-			case 0:

-				x += 1;

-				break;

-		}

-		bar

-	}

-	void bar() {

-	}

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent1.js
deleted file mode 100644
index 4f3fb22..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent1.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class CompletionAllocationExpressionIsParent1 {

-	CompletionAllocationExpressionIsParent1(int i, long j){super();}

-	CompletionAllocationExpressionIsParent1(int i, Object j){super();}

-	

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo() {

-		new CompletionAllocationExpressionIsParent1(1, zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent4.js
deleted file mode 100644
index 9eb3edf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent4.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class CompletionAllocationExpressionIsParent4 {

-	CompletionAllocationExpressionIsParent4(long i, long j){}

-	CompletionAllocationExpressionIsParent4(Object i, Object j){}

-	

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo() {

-		new CompletionAllocationExpressionIsParent4(1, zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent5.js
deleted file mode 100644
index e7e64b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAllocationExpressionIsParent5.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class CompletionAllocationExpressionIsParent5 {

-	CompletionAllocationExpressionIsParent5(int i){}

-	

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo() {

-		new CompletionAllocationExpressionIsParent5(1, zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName.js
deleted file mode 100644
index 72ccb63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionAmbiguousFieldName {

-	int xBar;

-	public void foo(int xBar){

-		xBa

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName3.js
deleted file mode 100644
index 4a3a940..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName3.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class CompletionAmbiguousFieldName3 {

-	public void foo(){

-		class ClassFoo {

-			int xBar;

-			class ClassFoo2{

-				public void foo(int xBar){

-					xBa

-				}

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName4.js
deleted file mode 100644
index 5147b6d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousFieldName4.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class CompletionAmbiguousFieldName4 {

-	public void foo(){

-		new Object() {

-			int xBar;

-			class ClassFoo {

-				public void foo(int xBar){

-					xBa

-				}

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousType.js
deleted file mode 100644
index 0ce0efc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousType.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import p1.*;

-import p2.*;

-

-public class CompletionAmbiguousType {

-	ABC

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousType2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousType2.js
deleted file mode 100644
index 6a31096..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAmbiguousType2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import p1.ABC;

-import p2.*;

-

-public class CompletionAmbiguousType2 {

-	ABC

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArgumentName.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArgumentName.js
deleted file mode 100644
index 378c0ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArgumentName.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import java.io.FileInputStream;

-

-public class CompletionArgumentName {

-	public void foo(ClassWithComplexName complexName, ClassWithComplexName ){

-	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArrayAccess1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArrayAccess1.js
deleted file mode 100644
index dfa8757..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArrayAccess1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionArrayAccess1 {

-	String zzz1;

-	int zzz2;

-	void foo(){

-		String[] s;

-		String s2 = s[zzz]

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArraysCloneMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArraysCloneMethod.js
deleted file mode 100644
index a51adc8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionArraysCloneMethod.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionArraysCloneMethod {

-	public void foo(){

-		new int[]{}.cl

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod1.js
deleted file mode 100644
index 8c4f6dc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod1.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class CompletionAssignmentInMethod1 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo {

-		long o;

-		o = zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod2.js
deleted file mode 100644
index a97e68b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod2.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class CompletionAssignmentInMethod2 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo {

-		Object o;

-		o = zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod3.js
deleted file mode 100644
index 3c9a630..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionAssignmentInMethod3 {

-	void foo {

-		Object o;

-		o = new Objec

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod4.js
deleted file mode 100644
index 56e31a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionAssignmentInMethod4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionAssignmentInMethod4 {

-	void foo {

-		Object o;

-		o = new Objec;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicField1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicField1.js
deleted file mode 100644
index 6d3c689..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicField1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionBasicField1 {

-	public int zzvarzz;

-	void foo() {

-		zzvar

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicKeyword1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicKeyword1.js
deleted file mode 100644
index 4438459..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicKeyword1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//public class CompletionBasicKeyword1 {

-	function foo() {

-		whil

-	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicLocalVariable1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicLocalVariable1.js
deleted file mode 100644
index fe9efa9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicLocalVariable1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//public class CompletionBasicLocalVariable1 {

-	function foo() {

-		var zzvarzz;

-		zzvar

-	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicMethod1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicMethod1.js
deleted file mode 100644
index 8d6126d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicMethod1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//public class CompletionBasicMethod1 {

-	function zzfoo() {

-		zzfo

-	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicMethodDeclaration1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicMethodDeclaration1.js
deleted file mode 100644
index b2c4b3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicMethodDeclaration1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionBasicMethodDeclaration1 {

-	equals

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicPackage1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicPackage1.js
deleted file mode 100644
index 150f314..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicPackage1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionBasicPackage1 {

-	java.lan

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicPotentialMethodDeclaration1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicPotentialMethodDeclaration1.js
deleted file mode 100644
index c43f84f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicPotentialMethodDeclaration1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionBasicPotentialMethodDeclaration1 {

-	zzpot

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicType1.js
deleted file mode 100644
index 811d069..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBasicType1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionBasicType1 {

-	void foo() {

-		Objec

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator1.js
deleted file mode 100644
index 377937e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator1.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionBinaryOperator1 {

-	int var1;

-	boolean var2;

-	Object var3;

-	String var4

-	

-	void foo() {

-		int x = 1 + var

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator2.js
deleted file mode 100644
index b0ed185..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionBinaryOperator2 {

-	int var1;

-	boolean var2;

-	Object var3;

-	

-	void foo() {

-		boolean b = true || var

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator3.js
deleted file mode 100644
index 7276e33..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionBinaryOperator3.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionBinaryOperator3 {

-	int var1;

-	boolean var2;

-	Object var3;

-	

-	void foo() {

-		double x = 1 / var

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCaseInsensitive.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCaseInsensitive.js
deleted file mode 100644
index f8ea5de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCaseInsensitive.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//public class CompletionCaseInsensitive {

-	var field;

-//	public void foo() {

-		Field

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCaseInsensitivePackage.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCaseInsensitivePackage.js
deleted file mode 100644
index a696604..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCaseInsensitivePackage.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionCaseInsensitivePackage {

-	public void foo() {

-		Ja

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCastIsParent1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCastIsParent1.js
deleted file mode 100644
index 4c057aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCastIsParent1.js
+++ /dev/null
@@ -1,27 +0,0 @@
-public class CompletionCastIsParent1 {

-	Object zzOb;

-	XX00 zz00;

-	XX01 zz01;

-	XX02 zz02;

-	XX10 zz10;

-	XX11 zz11;

-	XX12 zz12;

-	XX20 zz20;

-	XX21 zz21;

-	XX22 zz22;

-	

-	Object zzObM(){}

-	XX00 zz00M(){}

-	XX01 zz01M(){}

-	XX02 zz02M(){}

-	XX10 zz10M(){}

-	XX11 zz11M(){}

-	XX12 zz12M(){}

-	XX20 zz20M(){}

-	XX21 zz21M(){}

-	XX22 zz22M(){}

-	

-	XX11 foo() {

-		return (XX11)zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCastIsParent2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCastIsParent2.js
deleted file mode 100644
index 035d375..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCastIsParent2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionCastIsParent2 {

-	XX11 foo() {

-		return (XX11)xx

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCatchArgumentName2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCatchArgumentName2.js
deleted file mode 100644
index 3369fb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionCatchArgumentName2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionCatchArgumentName2 {

-	public void foo(){

-		try{

-			

-		} catch (Exception )

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionClassLiteralAfterAnonymousType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionClassLiteralAfterAnonymousType1.js
deleted file mode 100644
index b061762..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionClassLiteralAfterAnonymousType1.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class CompletionClassLiteralAfterAnonymousType1 {

-	public class X {

-		void foo() {

-			new X() {

-				void bar() {

-					new Object() {

-					};

-					double.

-				}

-			};

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression1.js
deleted file mode 100644
index 67c542d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression1.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class CompletionConditionalExpression1 {

-	int var1;

-	boolean var2;

-	Object var3;

-	String var4

-	

-	void foo() {

-		boolean a, b;

-		int c;

-		c = a == b ? var

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression2.js
deleted file mode 100644
index e2f391a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression2.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class CompletionConditionalExpression2 {

-	int var1;

-	boolean var2;

-	Object var3;

-	String var4

-	

-	void foo() {

-		boolean a, b;

-		int c;

-		c = a == b ? var1 : var

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression3.js
deleted file mode 100644
index 8faa992..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConditionalExpression3.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class CompletionConditionalExpression3 {

-	int var1;

-	boolean var2;

-	Object var3;

-	String var4

-	

-	void foo() {

-		boolean a, b;

-		int c;

-		c = a == b ? var1 : (var

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConstructorForAnonymousType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConstructorForAnonymousType.js
deleted file mode 100644
index 4d17d82..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionConstructorForAnonymousType.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionConstructorForAnonymousType {

-	void foo() {

-		TypeWithConstructor a = new TypeWithConstructor(

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionDefaultPackage.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionDefaultPackage.js
deleted file mode 100644
index 13f50b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionDefaultPackage.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionDefaultPackage {

-	public void foo() {

-		Default.foo();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyToken1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyToken1.js
deleted file mode 100644
index d88ebdf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyToken1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionEmptyToken1 {

-	int zzyy;

-	void foo() {

-		zzyy

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyTypeName2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyTypeName2.js
deleted file mode 100644
index b3cd74b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyTypeName2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionEmptyTypeName2 {

-	void foo() {

-		A a = 

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyTypeName3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyTypeName3.js
deleted file mode 100644
index 699a5e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEmptyTypeName3.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionEmptyTypeName3 {

-	void foo() {

-		CompletionEmptyTypeName2 x = 

-	}

-   class CompletionEmptyTypeName3_1 {}

-}

-class CompletionEmptyTypeName3_2 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEndOfCompilationUnit.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEndOfCompilationUnit.js
deleted file mode 100644
index 9393614..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionEndOfCompilationUnit.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionEndOfCompilationUnit {

-	public void foo() {

-	}

-	public void foo(int i) {

-		foo
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionExactNameCaseInsensitive.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionExactNameCaseInsensitive.js
deleted file mode 100644
index d4d72bd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionExactNameCaseInsensitive.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionExactNameCaseInsensitive {

-	void foo(compleTionexactnamecaseInsensitive c){}

-}

-class CompletionExactNameCaseInsensitivePlus {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionExpectedTypeIsNotValid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionExpectedTypeIsNotValid.js
deleted file mode 100644
index 8e3b0aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionExpectedTypeIsNotValid.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionExpectedTypeIsNotValid {

-	public void foo() {

-		UnknownType var = new U

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer1.js
deleted file mode 100644
index 9889f00..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer1.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionFieldInitializer1 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	long o = zz

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer2.js
deleted file mode 100644
index 1e1e239..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionFieldInitializer2 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	Object o = zz

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer3.js
deleted file mode 100644
index dd25a79..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionFieldInitializer3 {

-	Object o = new Objec

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer4.js
deleted file mode 100644
index f07fd11..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldInitializer4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionFieldInitializer4 {

-	Object o = new Objec;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldName.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldName.js
deleted file mode 100644
index d0135e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFieldName.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionFieldName {

-	ClassWithComplexName complexName;

-	ClassWithComplexName 

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindClass2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindClass2.js
deleted file mode 100644
index 19484de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindClass2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionFindClass2 {

-	public void foo(){

-		pack1.PX

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindException1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindException1.js
deleted file mode 100644
index efd8a6f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindException1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionFindException1 {

-	void foo(){

-		try{

-		} catch(Ex e) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindException2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindException2.js
deleted file mode 100644
index ce82e44..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindException2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionFindException2 {

-	void foo() throws Ex {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField1.js
deleted file mode 100644
index e34f846..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionFindField1 {

-	int var;

-	public void foo(int i)

-	public void bar(int var) {

-		foo(var);

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField2.js
deleted file mode 100644
index 430f94a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionFindField2 {

-	int var;

-	public void foo(int i)

-	public void bar(int var) {

-		this.var;

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField3.js
deleted file mode 100644
index 26e9027..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindField3.js
+++ /dev/null
@@ -1,13 +0,0 @@
-interface A3 {

-	public static final String bar = "a";

-}

-interface B3 extends A3 {

-	public static final String bar = "b";

-}

-public class CompletionFindField3 {

-	public void foo() {

-		B3 b = null;

-		System.out.println(b.ba);

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindLocalVariable.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindLocalVariable.js
deleted file mode 100644
index 2518e0d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindLocalVariable.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionFindLocalVariable {

-	public void foo(int i)

-	public void bar() {

-		int var

-		foo(var);

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethod1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethod1.js
deleted file mode 100644
index 8b8a3eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethod1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionFindMethod1 {

-	A a;

-	void foo(){

-		a.fooba

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethod2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethod2.js
deleted file mode 100644
index 374f740..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethod2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionFindMethod2 {

-	void foo(B b){

-		b.fooba

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethodInProcess.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethodInProcess.js
deleted file mode 100644
index eb7866f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethodInProcess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionFindMethodInProcess {

-	public void foobar(){

-	}

-	public int foo () {

-		fooba

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethodInThis.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethodInThis.js
deleted file mode 100644
index 8079190..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindMethodInThis.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionFindMethodInThis {

-	public void foobar(int i){

-	}

-	void foo(){

-		foobar(45);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindSecondaryType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindSecondaryType1.js
deleted file mode 100644
index fb2171d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindSecondaryType1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionFindSecondaryType1 {

-	/**/Secondary

-}

-class SecondaryType1 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindThisDotField.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindThisDotField.js
deleted file mode 100644
index 8fd795c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionFindThisDotField.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionFindThisDotField {

-	public int bar;

-	void foo() {

-		this.bar = 45;

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionInsideStaticMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionInsideStaticMethod.js
deleted file mode 100644
index 4412090..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionInsideStaticMethod.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionInsideStaticMethod {

-	public static void main () {

-		Object r = new Object() {

-			public void run() {

-				doT

-			}

-			private void doTheThing() { }

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionInstanceofOperator1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionInstanceofOperator1.js
deleted file mode 100644
index 387bf12..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionInstanceofOperator1.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public class CompletionInstanceofOperator1 {

-	void foo(WWWCompletionInstanceof2 x) {

-		if(x instanceof WWWCompletionInstanceof){}

-	}

-}

-

-class WWWCompletionInstanceof1 {

-

-}

-

-class WWWCompletionInstanceof2 extends WWWCompletionInstanceof1 {

-

-}

-

-class WWWCompletionInstanceof3 extends WWWCompletionInstanceof2 {

-

-}

-

-class WWWCompletionInstanceof4 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionLocalName.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionLocalName.js
deleted file mode 100644
index adf1fc2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionLocalName.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionLocalName {

-	public void foo(){

-		ClassWithComplexName complexName;

-		ClassWithComplexName 

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent1.js
deleted file mode 100644
index 09595a1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent1.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class CompletionMessageSendIsParent1 {

-	void bar(int i, long j){}

-	void bar(int i, Object j){}

-	

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo() {

-		bar(1, zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent2.js
deleted file mode 100644
index 1fef95c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent2.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class CompletionMessageSendIsParent2 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo(CompletionMessageSendIsParent2Interface i) {

-		i.bar(1, zz

-	}

-}

-

-interface CompletionMessageSendIsParent2Interface {

-	void bar(int i, long j);

-	void bar(int i, Object j);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent3.js
deleted file mode 100644
index 9453552..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent3.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class CompletionMessageSendIsParent3 extends CompletionMessageSendIsParent3SuperClass {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo() {

-		bar(1, zz

-	}

-}

-

-class CompletionMessageSendIsParent3SuperClass {

-	void bar(int i, long j);

-	void bar(int i, Object j);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent4.js
deleted file mode 100644
index 7cba727..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent4.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class CompletionMessageSendIsParent4 {

-	void bar(long i, long j){}

-	void bar(Object i, Object j){}

-	

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo() {

-		bar(1, zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent5.js
deleted file mode 100644
index daeb3e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent5.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class CompletionMessageSendIsParent5 {

-	void bar(int i){}

-	

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo() {

-		bar(1, zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent6.js
deleted file mode 100644
index 3d2475b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMessageSendIsParent6.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class CompletionMessageSendIsParent6 {

-	int bar(int i, int j){return 0;}

-	

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo() {

-		bar(new CompletionMessageSendIsParent6().bar(0,0), zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration.js
deleted file mode 100644
index 1c3e69e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionMethodDeclaration extends SuperClass {

-	eq

-}

-

-class SuperClass {

-	public int eqFoo(int a,Object b){

-		return 1;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration10.js
deleted file mode 100644
index 830c749..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionMethodDeclaration10 {

-	clon

-	foo();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration6.js
deleted file mode 100644
index 7dff20a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration6.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionMethodDeclaration6 {

-	void foo() {

-		new Object(){

-			protected Object clone() throws CloneNotSupportedException {

-				return super.clone();

-			}

-			clon

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration7.js
deleted file mode 100644
index 7f2679e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration7.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionMethodDeclaration7 {

-	clon x

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration8.js
deleted file mode 100644
index f8d59ca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionMethodDeclaration8 {

-	clon

-	x

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration9.js
deleted file mode 100644
index 188dd97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodDeclaration9.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionMethodDeclaration9 {

-	clon foo(){

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodThrowsClause.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodThrowsClause.js
deleted file mode 100644
index d8d8a4c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodThrowsClause.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionMethodThrowsClause {

-	void foo() throws Ex

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodThrowsClause2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodThrowsClause2.js
deleted file mode 100644
index a423c2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionMethodThrowsClause2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionMethodThrowsClause2 {

-	void foo() throws java.lang.Ex

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNonEmptyToken1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNonEmptyToken1.js
deleted file mode 100644
index 77cf9e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNonEmptyToken1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionNonEmptyToken1 {

-	int zzyy;

-	void foo() {

-		zzyy

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNonStaticFieldRelevance.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNonStaticFieldRelevance.js
deleted file mode 100644
index 3c10722..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNonStaticFieldRelevance.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class CompletionNonStaticFieldRelevance {

-	void foo() {

-		CompletionNonStaticFieldRelevance2 var = null;

-		int i = 0 + var.Ii

-	}

-

-}

-class CompletionNonStaticFieldRelevance2 {

-	public static Object Ii0;

-	public Object ii1;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNullRequestor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNullRequestor.js
deleted file mode 100644
index da12d0f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionNullRequestor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionNullequestor {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionObjectsMethodWithInterfaceReceiver.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionObjectsMethodWithInterfaceReceiver.js
deleted file mode 100644
index 812f7ce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionObjectsMethodWithInterfaceReceiver.js
+++ /dev/null
@@ -1,16 +0,0 @@
-interface A {

-	int hashCode();

-}

-interface B extends A {

-}

-class C implements B {

-	public int hashCode() {

-		return super.hashCode();

-	}

-}

-public class CompletionObjectsMethodWithInterfaceReceiver {

-	public static void main(String[] arguments) {

-		C c = new C();

-		System.out.println("((A)c).hashCode() : " + ((A) c).hash

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOnStaticMember1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOnStaticMember1.js
deleted file mode 100644
index 8397c90..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOnStaticMember1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionOnStaticMember1 {

-	public static int var1;

-	public int var2;

-	void foo() {

-		this.var

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOnStaticMember2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOnStaticMember2.js
deleted file mode 100644
index 00ef489..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOnStaticMember2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionOnStaticMember2 {

-	public static void method1(){}

-	public void method2(){}

-	void foo(){

-		this.method

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOutOfBounds.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOutOfBounds.js
deleted file mode 100644
index ca09e23..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionOutOfBounds.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionOutOfBounds {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionRepeatedType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionRepeatedType.js
deleted file mode 100644
index fb7376a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionRepeatedType.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionRepeatedType {

-	void foo() {

-		/**/CompletionRepeated

-	}

-}

-

-class CompletionRepeatedOtherType {

-}

-	
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnInInitializer.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnInInitializer.js
deleted file mode 100644
index ea35673..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnInInitializer.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionReturnInInitializer {

-	{

-		return eq

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnStatementIsParent1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnStatementIsParent1.js
deleted file mode 100644
index 9d0f047..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnStatementIsParent1.js
+++ /dev/null
@@ -1,27 +0,0 @@
-public class CompletionReturnStatementIsParent1 {

-	Object zzOb;

-	XX00 zz00;

-	XX01 zz01;

-	XX02 zz02;

-	XX10 zz10;

-	XX11 zz11;

-	XX12 zz12;

-	XX20 zz20;

-	XX21 zz21;

-	XX22 zz22;

-	

-	Object zzObM(){}

-	XX00 zz00M(){}

-	XX01 zz01M(){}

-	XX02 zz02M(){}

-	XX10 zz10M(){}

-	XX11 zz11M(){}

-	XX12 zz12M(){}

-	XX20 zz20M(){}

-	XX21 zz21M(){}

-	XX22 zz22M(){}

-	

-	XX11 foo() {

-		return zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnStatementIsParent2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnStatementIsParent2.js
deleted file mode 100644
index 165f896..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionReturnStatementIsParent2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionReturnStatementIsParent2 {

-	XX11 foo() {

-		return xx

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionSameClass.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionSameClass.js
deleted file mode 100644
index 9087d28..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionSameClass.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionSameClass {

-	void foo(CompletionSameClas var){}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionThrowStatement.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionThrowStatement.js
deleted file mode 100644
index fb7b1a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionThrowStatement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionThrowStatement {

-	void foo(){

-		throw new Ex

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionType1.js
deleted file mode 100644
index c8b87f5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionType1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import q1.*;

-import q1.CT1;

-public class CompletionType1 {

-	void foo(){

-		CT1

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnaryOperator1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnaryOperator1.js
deleted file mode 100644
index b1cf77c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnaryOperator1.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionUnaryOperator1 {

-	int var1;

-	boolean var2;

-	Object var3;

-	

-	void foo() {

-		int i = -var

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnaryOperator2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnaryOperator2.js
deleted file mode 100644
index 239a688..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnaryOperator2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionUnaryOperator2 {

-	int var1;

-	boolean var2;

-	Object var3;

-	

-	void foo() {

-		if(!var){}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedEnclosingType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedEnclosingType.js
deleted file mode 100644
index 831b4d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedEnclosingType.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionUnresolvedEnclosingType {

-	public void foo(){

-		zzz.new ZZZ(

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedFieldType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedFieldType.js
deleted file mode 100644
index 7217c80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedFieldType.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionUnresolvedFieldType extends pack.Bin3{

-	void foo() {

-		this.bar

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedParameterType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedParameterType.js
deleted file mode 100644
index 6dc370f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedParameterType.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionUnresolvedParameterType extends pack.Bin2{

-	void foo() {

-		this.bar

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedReturnType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedReturnType.js
deleted file mode 100644
index 83f46e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionUnresolvedReturnType.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionUnresolvedReturnType extends pack.Bin1{

-	void foo() {

-		this.bar

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer1.js
deleted file mode 100644
index 913f8ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer1.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class CompletionVariableInitializerInInitializer1 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	{

-		long o = zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer2.js
deleted file mode 100644
index 4b29b39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer2.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class CompletionVariableInitializerInInitializer2 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	{

-		Object o = zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer3.js
deleted file mode 100644
index fe5c98a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionVariableInitializerInInitializer3 {

-	{

-		Object o = new Objec

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer4.js
deleted file mode 100644
index 70007a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInInitializer4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionVariableInitializerInInitializer4 {

-	{

-		Object o = new Objec;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod1.js
deleted file mode 100644
index ca72f4f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod1.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class CompletionVariableInitializerInMethod1 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo {

-		long o = zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod2.js
deleted file mode 100644
index 9f3030d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod2.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class CompletionVariableInitializerInMethod2 {

-	long zzlong;

-	int zzint;

-	double zzdouble;

-	boolean zzboolean;

-	Object zzObject;

-	

-	void foo {

-		Object o = zz

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod3.js
deleted file mode 100644
index 98520e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionVariableInitializerInMethod3 {

-	void foo {

-		Object o = new Objec

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod4.js
deleted file mode 100644
index 6328b5d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableInitializerInMethod4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionVariableInitializerInMethod4 {

-	void foo {

-		Object o = new Objec;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName1.js
deleted file mode 100644
index e968c87..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionVariableName1 {

-	void foo() {

-		TEST_FOO_MyClass 

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName2.js
deleted file mode 100644
index 0159b6a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionVariableName2 {

-	void foo() {

-		Test_Bar_MyClass 

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName3.js
deleted file mode 100644
index 147d2a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableName3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionVariableName3 {

-	class OneName {}

-	void foo() {

-		OneName 

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableNameUnresolvedType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableNameUnresolvedType.js
deleted file mode 100644
index 41855d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVariableNameUnresolvedType.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionVariableNameUnresolvedType {

-	Objectz ob

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVisibilityCheck.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVisibilityCheck.js
deleted file mode 100644
index 309c4a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVisibilityCheck.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class CompletionVisibilityCheck {

-	public void foo(){

-		CompletionVisibilityCheck1 x = new CompletionVisibilityCheck1();

-		x.p

-	}

-}

-

-class CompletionVisibilityCheck1{

-	private void privateFoo(){}

-	protected void protectedFoo(){}

-	public void publicFoo(){}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVoidMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVoidMethod.js
deleted file mode 100644
index 2d1472e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionVoidMethod.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionVoidMethod {

-	int foo1() {return 0;}

-	void foo() {}

-	Object foo3() {return null;}

-	void bar() {

-		int i = foo

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionWithBinaryFolder.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionWithBinaryFolder.js
deleted file mode 100644
index b4461f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/CompletionWithBinaryFolder.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import mypackage.*;

-

-public class CompletionWithBinaryFolder {

-	My	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Default.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Default.js
deleted file mode 100644
index 3e8b585..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Default.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class Default {

-	public static void foo(){}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/SuperClass.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/SuperClass.js
deleted file mode 100644
index aebd97b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/SuperClass.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class SuperClass {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/SuperInterface.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/SuperInterface.js
deleted file mode 100644
index ed405d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/SuperInterface.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public interface SuperInterface {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/TEST_FOO_MyClass.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/TEST_FOO_MyClass.js
deleted file mode 100644
index e7315f2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/TEST_FOO_MyClass.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class TEST_FOO_MyClass {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Test_Bar_MyClass.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Test_Bar_MyClass.js
deleted file mode 100644
index 23c764f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/Test_Bar_MyClass.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class Test_Bar_MyClass {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/TypeWithConstructor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/TypeWithConstructor.js
deleted file mode 100644
index f535f8c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/TypeWithConstructor.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public abstract class TypeWithConstructor {

-	protected TypeWithConstructor(int i) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX00.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX00.js
deleted file mode 100644
index 6ff899c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX00.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX00 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX01.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX01.js
deleted file mode 100644
index 217fcf5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX01.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX01 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX02.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX02.js
deleted file mode 100644
index a4abc80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX02.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX02 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX10.js
deleted file mode 100644
index 5b5a4c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX10.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX10 extends XX00 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX11.js
deleted file mode 100644
index e6db005..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX11.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX11 extends XX01 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX12.js
deleted file mode 100644
index 623a2f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX12.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX12 extends XX02 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX20.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX20.js
deleted file mode 100644
index 15cf3db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX20.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX20  extends XX10{

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX21.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX21.js
deleted file mode 100644
index 6a32c95..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX21.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX21 extends XX11 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX22.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX22.js
deleted file mode 100644
index 005e143..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/XX22.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * @author david

- *

- * To change this generated comment edit the template variable "typecomment":

- * Window>Preferences>Java>Templates.

- * To enable and disable the creation of type comments go to

- * Window>Preferences>Java>Code Generation.

- */

-public class XX22 extends XX12 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/deprecation/Bug127628Type1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/deprecation/Bug127628Type1.js
deleted file mode 100644
index 4dd099f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/deprecation/Bug127628Type1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package deprecation;

-public class Bug127628Type1 {

-	public class Bug127628TypeInner1 {

-		

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/deprecation/Bug127628Type2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/deprecation/Bug127628Type2.js
deleted file mode 100644
index c7ed40a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/deprecation/Bug127628Type2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package deprecation;

-/**

- * @deprecated

- */

-public class Bug127628Type2 {

-	public class Bug127628TypeInner2 {

-		

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/org/eclipse/jsdt/core/tests/BasicTestReferences.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/org/eclipse/jsdt/core/tests/BasicTestReferences.js
deleted file mode 100644
index 37b141a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/org/eclipse/jsdt/core/tests/BasicTestReferences.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.eclipse.wst.jsdt.core.tests;

-

-

-public class BasicTestReferences {

-	public static final int FIELD = 0;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p1/ABC.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p1/ABC.js
deleted file mode 100644
index 6667471..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p1/ABC.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p1;

-

-public class ABC {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p2/ABC.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p2/ABC.js
deleted file mode 100644
index 7fe69fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p2/ABC.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p2;

-

-public class ABC {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p3/CompletionToplevelType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p3/CompletionToplevelType1.js
deleted file mode 100644
index 721fe02..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/p3/CompletionToplevelType1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3;

-public class CompletionToplevelType1 {

-	p3.CompletionToplevelType1

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack1/PX.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack1/PX.js
deleted file mode 100644
index ba47e85..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack1/PX.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package pack1;

-

-public class PX {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack1/pack3/PX.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack1/pack3/PX.js
deleted file mode 100644
index 3d61851..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack1/pack3/PX.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package pack1.pack3;

-

-public class PX {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack2/PX.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack2/PX.js
deleted file mode 100644
index 90d66c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/pack2/PX.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package pack2;

-

-public class PX {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/q1/CT1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/q1/CT1.js
deleted file mode 100644
index 78ba376..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/q1/CT1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package q1;

-public class CT1 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/q2/CT1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/q2/CT1.js
deleted file mode 100644
index 1f7715d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/q2/CT1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package q2;

-public class CT1 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/Qla1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/Qla1.js
deleted file mode 100644
index 98174ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/Qla1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package z1.z2;

-

-public class Qla1 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Qla3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Qla3.js
deleted file mode 100644
index bbbd0fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Qla3.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package z1.z2.qla0;

-

-public class Qla3 {

-	{

-		z1.z2.ql

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Qla4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Qla4.js
deleted file mode 100644
index a1e7c22..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Qla4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package z1.z2.qla0;

-

-public class Qla4 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Wla.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Wla.js
deleted file mode 100644
index 79dd4b8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla0/Wla.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package z1.z2.qla0;

-

-public class Wla {

-	{

-		z1.z2.qla0.

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla2.js
deleted file mode 100644
index 0968776..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src/z1/z2/qla2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package z1.z2;

-

-public class qla2 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract1.js
deleted file mode 100644
index bc05192..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract1.js
+++ /dev/null
@@ -1 +0,0 @@
-abs
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract10.js
deleted file mode 100644
index ba94e34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract10.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-final abs
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract11.js
deleted file mode 100644
index 6d46add..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract11.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-abs class
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract12.js
deleted file mode 100644
index f162e6f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract12.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public abs
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract13.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract13.js
deleted file mode 100644
index 070d884..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract13.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordAbstract13 {

-	abs

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract14.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract14.js
deleted file mode 100644
index 228aefe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract14.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordAbstract14 {

-	final abs

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract15.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract15.js
deleted file mode 100644
index e07e562..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract15.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordAbstract15 {

-	abs class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract16.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract16.js
deleted file mode 100644
index 1a73d08..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract16.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordAbstract16 {

-	public abs

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract2.js
deleted file mode 100644
index a6119aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract2.js
+++ /dev/null
@@ -1 +0,0 @@
-final abs
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract3.js
deleted file mode 100644
index e274149..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract3.js
+++ /dev/null
@@ -1 +0,0 @@
-abs class
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract4.js
deleted file mode 100644
index fb5ab14..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract4.js
+++ /dev/null
@@ -1 +0,0 @@
-public abs
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract5.js
deleted file mode 100644
index 1fec4be..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract5.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordAbstract5 {

-	abs

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract6.js
deleted file mode 100644
index af760ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordAbstract6 {

-	final abs

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract7.js
deleted file mode 100644
index 974dfc1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract7.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordAbstract7 {

-	abs class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract8.js
deleted file mode 100644
index daa0a04..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract8.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordAbstract8 {

-	public abs

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract9.js
deleted file mode 100644
index 27e2bca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAbstract9.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-abs
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert1.js
deleted file mode 100644
index 10b9402..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordAssert1 {

-	void foo() {

-		as

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert2.js
deleted file mode 100644
index a5e270f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordAssert2 {

-	void foo() {

-		if(as

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert3.js
deleted file mode 100644
index 121e072..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordAssert3 {

-	as

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert4.js
deleted file mode 100644
index 70daa81..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordAssert4 {

-	void foo() {

-		#

-		as

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert5.js
deleted file mode 100644
index 03e2848..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordAssert5 {

-	void foo() {

-		#

-		if(as

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert6.js
deleted file mode 100644
index 7c518f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordAssert6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordAssert6 {

-	as

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak1.js
deleted file mode 100644
index e7b1357..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordBreak1 {

-	void foo() {

-		for(;;) {

-			{

-				bre

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak2.js
deleted file mode 100644
index b87ab04..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordBreak2 {

-	void foo() {

-		if(true) {

-			bre

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak3.js
deleted file mode 100644
index 0c3d972..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak3.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordBreak3 {

-	void foo() {

-		switch(0) {

-			case 1 :

-				bre

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak4.js
deleted file mode 100644
index b0497e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak4.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordBreak4 {

-	void foo() {

-		#

-		for(;;) {

-			{

-				bre

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak5.js
deleted file mode 100644
index 61ae016..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak5.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordBreak5 {

-	void foo() {

-		#

-		if(true) {

-			bre

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak6.js
deleted file mode 100644
index 3a3422e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordBreak6.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordBreak6 {

-	void foo() {

-		#

-		switch(0) {

-			case 1 :

-				bre

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase1.js
deleted file mode 100644
index 6a115ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordCase1 {

-	void foo(){

-		switch(0){

-			cas	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase10.js
deleted file mode 100644
index c6d3d3d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase10.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordCase10 {

-	void foo(){

-		#

-		cas

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase2.js
deleted file mode 100644
index 012da9d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordCase2 {

-	void foo(){

-		switch(0){

-			case 0:

-			cas	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase3.js
deleted file mode 100644
index 865b8c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase3.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordCase3 {

-	void foo(){

-		switch(0){

-			default:

-			cas	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase4.js
deleted file mode 100644
index ac235df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase4.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordCase4 {

-	void foo(){

-		switch(0){

-			case 0:

-				break;

-			cas	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase5.js
deleted file mode 100644
index 0d56acc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase5.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordCase5 {

-	void foo(){

-		cas

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase6.js
deleted file mode 100644
index e853d25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase6.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordCase6 {

-	void foo(){

-		#

-		switch(0){

-			cas	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase7.js
deleted file mode 100644
index f291228..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase7.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordCase7 {

-	void foo(){

-		#

-		switch(0){

-			case 0:

-			cas	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase8.js
deleted file mode 100644
index 6178cde..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase8.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordCase8 {

-	void foo(){

-		#

-		switch(0){

-			default:

-			cas	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase9.js
deleted file mode 100644
index 8fbd3ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCase9.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionKeywordCase9 {

-	void foo(){

-		#

-		switch(0){

-			case 0:

-				break;

-			cas	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch1.js
deleted file mode 100644
index 5d49e61..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordCatch1 {

-	int catchz;

-	void foo() {

-		try {

-		

-		} cat

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch10.js
deleted file mode 100644
index 8b52286..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch10.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionKeywordCatch10 {

-	int catchz;

-	void foo() {

-		#

-		try {

-		

-		} catch(Exception e) {

-		} cat

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch2.js
deleted file mode 100644
index 2a841da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordCatch2 {

-	void foo() {

-		cat

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch3.js
deleted file mode 100644
index 22073f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordCatch3 {

-	cat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch4.js
deleted file mode 100644
index 2437b1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordCatch4 {

-	void foo() {

-		if(cat

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch5.js
deleted file mode 100644
index 77b7cb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch5.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordCatch5 {

-	int catchz;

-	void foo() {

-		try {

-		

-		} catch(Exception e) {

-		} cat

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch6.js
deleted file mode 100644
index 5640976..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch6.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordCatch6 {

-	int catchz;

-	void foo() {

-		#

-		try {

-		

-		} cat

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch7.js
deleted file mode 100644
index cd2f983..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch7.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordCatch7 {

-	void foo() {

-		#

-		cat

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch8.js
deleted file mode 100644
index ab5a31a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordCath8 {

-	cat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch9.js
deleted file mode 100644
index 68a4aea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordCatch9.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordCatch9 {

-	void foo() {

-		#

-		if(cat

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass1.js
deleted file mode 100644
index 50f43d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass1.js
+++ /dev/null
@@ -1 +0,0 @@
-cla
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass10.js
deleted file mode 100644
index e00c241..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass10.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordClass10 {

-	void foo(){

-		cla

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass11.js
deleted file mode 100644
index ddc0226..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass11.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordClass11 {

-	void foo(){

-		final cla

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass12.js
deleted file mode 100644
index 1f0e0bf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass12.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordClass12 {

-	void foo(){

-		final cla X

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass13.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass13.js
deleted file mode 100644
index 66eec34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass13.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-cla
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass14.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass14.js
deleted file mode 100644
index 4d4b909..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass14.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordClass14 {

-	void foo(){

-		#

-		cla

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass15.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass15.js
deleted file mode 100644
index 92f8cd8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass15.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordClass15 {

-	void foo(){

-		#

-		final cla

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass16.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass16.js
deleted file mode 100644
index 9e9d676..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass16.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordClass16 {

-	void foo(){

-		#

-		final cla X

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass17.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass17.js
deleted file mode 100644
index e381471..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass17.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#

-public class CompletionKeywordClass17 {

-	

-}

-cla
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass18.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass18.js
deleted file mode 100644
index a5863c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass18.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public cla
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass19.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass19.js
deleted file mode 100644
index 9cb057b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass19.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public abstract cla
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass2.js
deleted file mode 100644
index 1ca9bd8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionKeywordClass2 {

-	

-}

-cla
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass20.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass20.js
deleted file mode 100644
index 2f1470f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass20.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public cla CompletionKeywordClass20
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass21.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass21.js
deleted file mode 100644
index 2026fd8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass21.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordClass21 {

-	cla

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass22.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass22.js
deleted file mode 100644
index d2c45c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass22.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordClass22 {

-	public cla

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass23.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass23.js
deleted file mode 100644
index ad1f2c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass23.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordClass23 {

-	public abstract cla

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass24.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass24.js
deleted file mode 100644
index 62aa087..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass24.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordClass24 {

-	public cla X

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass3.js
deleted file mode 100644
index ae11224..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass3.js
+++ /dev/null
@@ -1 +0,0 @@
-public cla
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass4.js
deleted file mode 100644
index cad873b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass4.js
+++ /dev/null
@@ -1 +0,0 @@
-public abstract cla
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass5.js
deleted file mode 100644
index 96e5eba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass5.js
+++ /dev/null
@@ -1 +0,0 @@
-public cla CompletionKeywordClass5
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass6.js
deleted file mode 100644
index e31818f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordClass6 {

-	cla

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass7.js
deleted file mode 100644
index f6698e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass7.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordClass7 {

-	public cla

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass8.js
deleted file mode 100644
index 12f7c37..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass8.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordClass8 {

-	public abstract cla

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass9.js
deleted file mode 100644
index 6e216ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordClass9.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordClass9 {

-	public cla X

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue1.js
deleted file mode 100644
index 868619b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordContinue1 {

-	void foo() {

-		for(;;) {

-			{

-				cont

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue2.js
deleted file mode 100644
index 0b01887..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordContinue2 {

-	void foo() {

-		if(true) {

-			cont

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue3.js
deleted file mode 100644
index 173034b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue3.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordContinue3 {

-	void foo() {

-		#

-		for(;;) {

-			{

-				cont

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue4.js
deleted file mode 100644
index 038337a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordContinue4.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordContinue4 {

-	void foo() {

-		#

-		if(true) {

-			cont

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault1.js
deleted file mode 100644
index 4a71d17..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordDefault1 {

-	void foo(){

-		switch(0){

-			def	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault10.js
deleted file mode 100644
index b288447..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault10.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordDefault10 {

-	void foo(){

-		#

-		switch(0){

-			default:

-			def	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault2.js
deleted file mode 100644
index 020254f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordDefault2 {

-	void foo(){

-		switch(0){

-			case 0:

-			def	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault3.js
deleted file mode 100644
index eb2c9d6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault3.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordDefault3 {

-	void foo(){

-		switch(0){

-			case 0:

-				break;

-			def	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault4.js
deleted file mode 100644
index 0d8b3ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordDefault4 {

-	void foo(){

-		def

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault5.js
deleted file mode 100644
index 981ff96..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault5.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordDefault5 {

-	void foo(){

-		switch(0){

-			default:

-			def	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault6.js
deleted file mode 100644
index 3f5069a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault6.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordDefault6 {

-	void foo(){

-		#

-		switch(0){

-			def	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault7.js
deleted file mode 100644
index 3a1fdaf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault7.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordDefault7 {

-	void foo(){

-		#

-		switch(0){

-			case 0:

-			def	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault8.js
deleted file mode 100644
index 350011f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault8.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionKeywordDefault8 {

-	void foo(){

-		#

-		switch(0){

-			case 0:

-				break;

-			def	

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault9.js
deleted file mode 100644
index c6b5d3c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDefault9.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordDefault9 {

-	void foo(){

-		#

-		def

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo1.js
deleted file mode 100644
index cb7afd5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordDo1 {

-	void foo() {

-		do

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo2.js
deleted file mode 100644
index bac5e83..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordDo2 {

-	void foo() {

-		if(do

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo3.js
deleted file mode 100644
index 1cb7fa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordDo3 {

-	do

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo4.js
deleted file mode 100644
index 20f65c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordDo4 {

-	void foo() {

-		#

-		do

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo5.js
deleted file mode 100644
index 1059840..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordDo5 {

-	void foo() {

-		#

-		if(do

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo6.js
deleted file mode 100644
index afb54eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordDo6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordDo6 {

-	do

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse1.js
deleted file mode 100644
index 3613f67..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordElse1 {

-	void foo() {

-		if(true) {

-		

-		} els

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse2.js
deleted file mode 100644
index 86b6e64..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordElse2 {

-	void foo() {

-		els

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse3.js
deleted file mode 100644
index 58cc0e1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordElse3 {

-	els

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse4.js
deleted file mode 100644
index 48fceb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordElse4 {

-	void foo() {

-		if(els

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse5.js
deleted file mode 100644
index 194469c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse5.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordElse5 {

-	void foo() {

-		#

-		if(true) {

-		

-		} els

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse6.js
deleted file mode 100644
index 6156315..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse6.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordElse6 {

-	void foo() {

-		#

-		els

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse7.js
deleted file mode 100644
index a3a7041..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordElse7 {

-	els

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse8.js
deleted file mode 100644
index dfc5408..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordElse8.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordElse8 {

-	void foo() {

-		#

-		if(els

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends1.js
deleted file mode 100644
index db7aaf0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordExtends1 ext {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends10.js
deleted file mode 100644
index 17c4d03..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public interface CompletionKeywordExtends10 extends SuperInterface ext{

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends2.js
deleted file mode 100644
index c351b81..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordExtends2 extends SuperClass ext {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends3.js
deleted file mode 100644
index a43dcbc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordExtends3 implements SuperInterface ext {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends4.js
deleted file mode 100644
index 497ca4f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public interface CompletionKeywordExtends4 ext {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends5.js
deleted file mode 100644
index afcb011..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends5.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public interface CompletionKeywordExtends5 extends SuperInterface ext{

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends6.js
deleted file mode 100644
index 7c94c48..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordExtends6 ext {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends7.js
deleted file mode 100644
index 58464ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordExtends7 extends SuperClass ext {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends8.js
deleted file mode 100644
index 443ccc1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordExtends8 implements SuperInterface ext {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends9.js
deleted file mode 100644
index c0f29ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordExtends9.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public interface CompletionKeywordExtends9 ext {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse1.js
deleted file mode 100644
index 6665870..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordFalse1 {

-	void foo() {

-		fal

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse2.js
deleted file mode 100644
index 9bd66a1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordFalse2 {

-	void foo() {

-		if(fal

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse3.js
deleted file mode 100644
index f8e04c0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordFalse3 {

-	void foo() {

-		#

-		fal

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse4.js
deleted file mode 100644
index 9facc44..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFalse4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordFalse4 {

-	void foo() {

-		#

-		if(fal

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal1.js
deleted file mode 100644
index baf752b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal1.js
+++ /dev/null
@@ -1 +0,0 @@
-fin
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal10.js
deleted file mode 100644
index b8f77e9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal10.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-fin
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal11.js
deleted file mode 100644
index 31b0ab9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal11.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-abstract fin
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal12.js
deleted file mode 100644
index e134839..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal12.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-fin class
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal13.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal13.js
deleted file mode 100644
index 5e03373..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal13.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public fin
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal14.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal14.js
deleted file mode 100644
index 32e25c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal14.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordFinal14 {

-	fin

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal15.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal15.js
deleted file mode 100644
index 6bd1069..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal15.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordFinal15 {

-	abstract fin

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal16.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal16.js
deleted file mode 100644
index 638eb89..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal16.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordFinal16 {

-	fin class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal17.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal17.js
deleted file mode 100644
index 0caba01..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal17.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordFinal17 {

-	public fin

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal18.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal18.js
deleted file mode 100644
index c0b64fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal18.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordFinal18 {

-	void foo(){

-		#

-		fin

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal2.js
deleted file mode 100644
index d44bee0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal2.js
+++ /dev/null
@@ -1 +0,0 @@
-abstract fin
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal3.js
deleted file mode 100644
index 33294e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal3.js
+++ /dev/null
@@ -1 +0,0 @@
-fin class
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal4.js
deleted file mode 100644
index 7f62626..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal4.js
+++ /dev/null
@@ -1 +0,0 @@
-public fin
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal5.js
deleted file mode 100644
index 300cfc8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal5.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordFinal5 {

-	fin

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal6.js
deleted file mode 100644
index 32d2757..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordFinal6 {

-	abstract fin

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal7.js
deleted file mode 100644
index 78c5783..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal7.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordFinal7 {

-	fin class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal8.js
deleted file mode 100644
index 61d0f4c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal8.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordFinal8 {

-	public fin

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal9.js
deleted file mode 100644
index 0b8d287..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinal9.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordFinal9 {

-	void foo(){

-		fin

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally1.js
deleted file mode 100644
index d355db7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordFinally1 {

-	int finallyz;

-	void foo() {

-		try {

-		

-		} finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally10.js
deleted file mode 100644
index de3e457..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordFinally10 {

-	finall

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally11.js
deleted file mode 100644
index 5e040c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally11.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordFinally11 {

-	void foo() {

-		#

-		if(finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally12.js
deleted file mode 100644
index d67447e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally12.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionKeywordFinally12 {

-	void foo() {

-		#

-		try {

-		

-		} catch(E e){

-		

-		} finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally13.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally13.js
deleted file mode 100644
index 6623695..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally13.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionKeywordFinally13 {

-	int finallyz;

-	void foo() {

-		#

-		try {

-		

-		} catch(Exception e) {

-		} finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally14.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally14.js
deleted file mode 100644
index b985016..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally14.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class CompletionKeywordFinally14 {

-	int finallyz;

-	void foo() {

-		#

-		try {

-		

-		} finally {

-		} finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally2.js
deleted file mode 100644
index 4cad896..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordFinally2 {

-	void foo() {

-		finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally3.js
deleted file mode 100644
index a6ba483..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordFinally3 {

-	finall

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally4.js
deleted file mode 100644
index 88aa17d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordFinally4 {

-	void foo() {

-		if(finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally5.js
deleted file mode 100644
index e86a9bd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally5.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordFinally5 {

-	void foo() {

-		try {

-		

-		} catch(E e){

-		

-		} finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally6.js
deleted file mode 100644
index dfbfb04..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally6.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordFinally6 {

-	int finallyz;

-	void foo() {

-		try {

-		

-		} catch(Exception e) {

-		} finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally7.js
deleted file mode 100644
index 7b7bc14..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally7.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordFinally7 {

-	int finallyz;

-	void foo() {

-		try {

-		

-		} finally {

-		} finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally8.js
deleted file mode 100644
index bb4c2aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally8.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class CompletionKeywordFinally8 {

-	int finallyz;

-	void foo() {

-		#

-		try {

-		

-		} finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally9.js
deleted file mode 100644
index 4c1fac2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFinally9.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordFinally9 {

-	void foo() {

-		#

-		finall

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor1.js
deleted file mode 100644
index 554a1f5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordFor1 {

-	void foo() {

-		fo

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor2.js
deleted file mode 100644
index 45070ef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordFor2 {

-	void foo() {

-		if(fo

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor3.js
deleted file mode 100644
index 7b82461..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordFor3 {

-	fo

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor4.js
deleted file mode 100644
index 465aa93..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordFor4 {

-	void foo() {

-		#

-		fo

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor5.js
deleted file mode 100644
index 61184d5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordFor5 {

-	void foo() {

-		#

-		if(fo

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor6.js
deleted file mode 100644
index 8c48cfe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordFor6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordFor6 {

-	fo

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf1.js
deleted file mode 100644
index e586b07..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordIf1 {

-	void foo() {

-		if

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf2.js
deleted file mode 100644
index e65258c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordIf2 {

-	void foo() {

-		if(if

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf3.js
deleted file mode 100644
index 3368086..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordIf3 {

-	if

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf4.js
deleted file mode 100644
index c767681..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordIf4 {

-	void foo() {

-		#

-		if

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf5.js
deleted file mode 100644
index a2534fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordIf5 {

-	void foo() {

-		#

-		if(if

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf6.js
deleted file mode 100644
index 2c6f0bd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordIf6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordIf6 {

-	if

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements1.js
deleted file mode 100644
index 3e73264..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordImplements1 imp {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements2.js
deleted file mode 100644
index 48c08d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordImplements2 extends SuperClass imp {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements3.js
deleted file mode 100644
index a54b2a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordImplements3 implements SuperInterface imp {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements4.js
deleted file mode 100644
index c3d177e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordImplements4 imp {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements5.js
deleted file mode 100644
index 5c7d7b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordImplements5 extends SuperClass imp {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements6.js
deleted file mode 100644
index 684012d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImplements6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordImplements6 implements SuperInterface imp {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport1.js
deleted file mode 100644
index 6edf555..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-imp

-

-public class CompletionKeywordImport1 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport3.js
deleted file mode 100644
index 41cf5ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import java.lang.Object;

-imp

-public class CompletionKeywordImport3 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport4.js
deleted file mode 100644
index 14eda8a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionKeywordImport4 {

-

-}

-imp
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport5.js
deleted file mode 100644
index 753e297..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport5.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import java.lang.Object;

-imp

-public class CompletionKeywordImport5 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport6.js
deleted file mode 100644
index d51ec54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport6.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#

-public class CompletionKeywordImport6 {

-

-}

-imp
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport7.js
deleted file mode 100644
index 1424d03..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordImport7.js
+++ /dev/null
@@ -1,7 +0,0 @@
-#

-imp

-

-package bbb;

-public class CompletionKeywordImport7 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof1.js
deleted file mode 100644
index 74507ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordInstanceof1 {

-	void foo() {

-		if(zzz ins

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof2.js
deleted file mode 100644
index 35f473d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordInstanceof1 {

-	void foo() {

-		ins

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof3.js
deleted file mode 100644
index 273ad25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordInstanceof1 {

-	void foo() {

-		if(zzz zzz ins

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof4.js
deleted file mode 100644
index 19891dc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordInstanceof4 {

-	void foo() {

-		#

-		if(zzz ins

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof5.js
deleted file mode 100644
index 99b2e92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordInstanceof5 {

-	void foo() {

-		#

-		ins

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof6.js
deleted file mode 100644
index 991cd40..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInstanceof6.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordInstanceof6 {

-	void foo() {

-		#

-		if(zzz zzz ins

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface1.js
deleted file mode 100644
index 2195f20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface1.js
+++ /dev/null
@@ -1 +0,0 @@
-interf
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface10.js
deleted file mode 100644
index d28770e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface10.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-interf
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface11.js
deleted file mode 100644
index cf0ee30..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface11.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordInterface11 {

-}

-interf
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface12.js
deleted file mode 100644
index 8db3e4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface12.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public interf
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface13.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface13.js
deleted file mode 100644
index 89302a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface13.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public abstract interf
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface14.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface14.js
deleted file mode 100644
index e89eee2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface14.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public interf CompletionKeywordInterface14
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface15.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface15.js
deleted file mode 100644
index 500ca54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface15.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordInterface15 {

-	interf

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface16.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface16.js
deleted file mode 100644
index 62bb82d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface16.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordInterface16 {

-	public interf

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface17.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface17.js
deleted file mode 100644
index 2d683ce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface17.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordInterface17 {

-	public abstract interf

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface18.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface18.js
deleted file mode 100644
index c46ed77..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface18.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordInterface18 {

-	public interf X

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface2.js
deleted file mode 100644
index 21ad0bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordInterface2 {

-}

-interf
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface3.js
deleted file mode 100644
index 786edf8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface3.js
+++ /dev/null
@@ -1 +0,0 @@
-public interf
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface4.js
deleted file mode 100644
index ceba81f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface4.js
+++ /dev/null
@@ -1 +0,0 @@
-public abstract interf
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface5.js
deleted file mode 100644
index 5586456..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface5.js
+++ /dev/null
@@ -1 +0,0 @@
-public interf CompletionKeywordInterface5
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface6.js
deleted file mode 100644
index 307950b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordInterface6 {

-	interf

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface7.js
deleted file mode 100644
index 0c72244..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface7.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordInterface7 {

-	public interf

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface8.js
deleted file mode 100644
index 9c03949..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface8.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordInterface8 {

-	public abstract interf

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface9.js
deleted file mode 100644
index d737e97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordInterface9.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordInterface9 {

-	public interf X

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative1.js
deleted file mode 100644
index a0af345..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordNative1 {

-	nat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative2.js
deleted file mode 100644
index fe4586f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordNative2 {

-	volatile nat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative3.js
deleted file mode 100644
index e4a6e29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordNative3 {

-	public nat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative4.js
deleted file mode 100644
index 2972d07..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordNative4 {

-	abstract nat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative5.js
deleted file mode 100644
index 35cc56b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordNative5 {

-	nat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative6.js
deleted file mode 100644
index 7564765..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordNative6 {

-	volatile nat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative7.js
deleted file mode 100644
index dd38643..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordNative7 {

-	public nat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative8.js
deleted file mode 100644
index fb80211..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNative8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordNative8 {

-	abstract nat

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew1.js
deleted file mode 100644
index dbe0610..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordNew1 {

-	void foo(){

-		ne

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew10.js
deleted file mode 100644
index 3552f32..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew10.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNew10 {

-	void foo(){

-		#

-		ne X

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew11.js
deleted file mode 100644
index be72211..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew11.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNew11 {

-	void foo(){

-		#

-		ne X()

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew12.js
deleted file mode 100644
index f004839..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew12.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNew12 {

-	void foo(){

-		#

-		if(ne

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew13.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew13.js
deleted file mode 100644
index f26612a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew13.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordNew13 {

-	public class X{}

-	void foo(){

-		#

-		this.ne

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew14.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew14.js
deleted file mode 100644
index 0318c17..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew14.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordNew14 {

-	public class X{}

-	void foo(){

-		#

-		this.ne X

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew15.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew15.js
deleted file mode 100644
index 74a4391..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew15.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordNew15 {

-	public class X{}

-	void foo(){

-		#

-		this.ne X()

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew16.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew16.js
deleted file mode 100644
index b18afd4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew16.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordNew16 {

-	public class X{}

-	void foo(){

-		#

-		if(this.ne

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew2.js
deleted file mode 100644
index e17d261..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordNew2 {

-	void foo(){

-		ne X

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew3.js
deleted file mode 100644
index 2a1c876..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordNew3 {

-	void foo(){

-		ne X()

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew4.js
deleted file mode 100644
index 1d6d637..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordNew4 {

-	void foo(){

-		if(ne

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew5.js
deleted file mode 100644
index d2bfbe1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNew5 {

-	public class X{}

-	void foo(){

-		this.ne

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew6.js
deleted file mode 100644
index 3351aec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew6.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNew6 {

-	public class X{}

-	void foo(){

-		this.ne X

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew7.js
deleted file mode 100644
index 7d8a2e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew7.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNew7 {

-	public class X{}

-	void foo(){

-		this.ne X()

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew8.js
deleted file mode 100644
index 319627d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew8.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNew8 {

-	public class X{}

-	void foo(){

-		if(this.ne

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew9.js
deleted file mode 100644
index 9a8a139..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNew9.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNew9 {

-	void foo(){

-		#

-		ne

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull1.js
deleted file mode 100644
index c093ee2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordNull1 {

-	void foo() {

-		nul

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull2.js
deleted file mode 100644
index be455e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordNull2 {

-	void foo() {

-		if(nul

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull3.js
deleted file mode 100644
index b8a4c5d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNull2 {

-	void foo() {

-		#

-		nul

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull4.js
deleted file mode 100644
index 0bddc1b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordNull4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordNull4 {

-	void foo() {

-		#

-		if(nul

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage1.js
deleted file mode 100644
index c9d4508..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-pac

-

-public class CompletionKeywordPackage1 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage3.js
deleted file mode 100644
index 11bfc1a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import java.lang.Object;

-pac

-

-public class CompletionKeywordPackage3 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage4.js
deleted file mode 100644
index 3b29a94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionKeywordPackage4 {

-

-}

-pac
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage5.js
deleted file mode 100644
index 4e63973..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage5.js
+++ /dev/null
@@ -1,7 +0,0 @@
-#

-import java.lang.Object;

-pac

-

-public class CompletionKeywordPackage5 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage6.js
deleted file mode 100644
index 9c84323..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage6.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#

-public class CompletionKeywordPackage6 {

-

-}

-pac
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage7.js
deleted file mode 100644
index b485731..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPackage7.js
+++ /dev/null
@@ -1,7 +0,0 @@
-#

-pac

-

-package bbb;

-public class CompletionKeywordPackage7 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate1.js
deleted file mode 100644
index d358941..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPrivate1 {

-	pri

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate10.js
deleted file mode 100644
index d9c8c5b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPrivate10 {

-	public pri

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate2.js
deleted file mode 100644
index d10e221..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPrivate2 {

-	pri class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate3.js
deleted file mode 100644
index 7ec0811..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPrivate3{

-	final pri

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate4.js
deleted file mode 100644
index 09cbb86..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPrivate4 {

-	private pri

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate5.js
deleted file mode 100644
index edbd9c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate5.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPrivate5 {

-	public pri

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate6.js
deleted file mode 100644
index 47493ff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPrivate6 {

-	pri

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate7.js
deleted file mode 100644
index 9e6007c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPrivate7 {

-	pri class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate8.js
deleted file mode 100644
index 9074bd2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPrivate8{

-	final pri

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate9.js
deleted file mode 100644
index 728103a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPrivate9.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPrivate9 {

-	private pri

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected1.js
deleted file mode 100644
index 759c999..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordProtected1 {

-	pro

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected10.js
deleted file mode 100644
index 5b30f17..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordProtected10 {

-	public pro

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected2.js
deleted file mode 100644
index 2b6900a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordProtected2 {

-	pro class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected3.js
deleted file mode 100644
index ff43595..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordProtected3{

-	final pro

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected4.js
deleted file mode 100644
index ab36b74..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordProtected4 {

-	protected pro

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected5.js
deleted file mode 100644
index da41f4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected5.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordProtected5 {

-	public pro

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected6.js
deleted file mode 100644
index 98042d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordProtected6 {

-	pro

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected7.js
deleted file mode 100644
index 163972a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordProtected7 {

-	pro class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected8.js
deleted file mode 100644
index 5059ad2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordProtected8{

-	final pro

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected9.js
deleted file mode 100644
index ec25552..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordProtected9.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordProtected9 {

-	protected pro

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic1.js
deleted file mode 100644
index 8b6b7b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic1.js
+++ /dev/null
@@ -1 +0,0 @@
-pub
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic10.js
deleted file mode 100644
index 93ce37a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPublic10 {

-	private pub

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic11.js
deleted file mode 100644
index 5954da7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic11.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-pub
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic12.js
deleted file mode 100644
index daf1a4a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic12.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPublic12 {

-	private pub

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic13.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic13.js
deleted file mode 100644
index a60b426..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic13.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-pub class CompletionKeywordPublic13 {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic14.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic14.js
deleted file mode 100644
index 3877d51..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic14.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-final pub
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic15.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic15.js
deleted file mode 100644
index 7d9c499..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic15.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#

-public pub
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic16.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic16.js
deleted file mode 100644
index e6db882..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic16.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#

-public class CompletionKeywordPublic16 {

-	

-}

-pub
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic17.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic17.js
deleted file mode 100644
index 7165f60..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic17.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPublic17 {

-	pub

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic18.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic18.js
deleted file mode 100644
index 385ec31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic18.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPublic18 {

-	pub class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic19.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic19.js
deleted file mode 100644
index f77f5ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic19.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPublic19 {

-	final pub

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic2.js
deleted file mode 100644
index 3396681..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-pub class CompletionKeywordPublic2 {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic20.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic20.js
deleted file mode 100644
index 3356173..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic20.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordPublic20 {

-	public pub

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic3.js
deleted file mode 100644
index 92836e9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic3.js
+++ /dev/null
@@ -1 +0,0 @@
-final pub
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic4.js
deleted file mode 100644
index 11633a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic4.js
+++ /dev/null
@@ -1 +0,0 @@
-public pub
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic5.js
deleted file mode 100644
index 7f03eea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionKeywordPublic5 {

-	

-}

-pub
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic6.js
deleted file mode 100644
index 2741297..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPublic6 {

-	pub

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic7.js
deleted file mode 100644
index 0307b3c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic7.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPublic7 {

-	pub class

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic8.js
deleted file mode 100644
index 733808a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic8.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPublic8 {

-	final pub

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic9.js
deleted file mode 100644
index 2dc6b91..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordPublic9.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordPublic9 {

-	public pub

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn1.js
deleted file mode 100644
index f5f0f3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordReturn1 {

-	void foo() {

-		re

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn2.js
deleted file mode 100644
index 91b4bc8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordReturn2 {

-	void foo() {

-		if(re

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn3.js
deleted file mode 100644
index cb17415..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordReturn3 {

-	re

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn4.js
deleted file mode 100644
index d2c38ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordReturn4 {

-	void foo() {

-		#

-		re

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn5.js
deleted file mode 100644
index e3b94d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordReturn5 {

-	void foo() {

-		#

-		if(re

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn6.js
deleted file mode 100644
index 798de1b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordReturn6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordReturn6 {

-	re

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic1.js
deleted file mode 100644
index 6d5defd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStatic1 {

-	sta

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic10.js
deleted file mode 100644
index 1d0ee0c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStatic10 {

-	public sta foo

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic2.js
deleted file mode 100644
index 9b4452c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStatic2 {

-	public sta

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic3.js
deleted file mode 100644
index eccdaa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStatic3 {

-	sta foo

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic4.js
deleted file mode 100644
index 0d7c163..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStatic4 {

-	abstract sta

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic5.js
deleted file mode 100644
index fcc6a4d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic5.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStatic5 {

-	public sta foo

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic6.js
deleted file mode 100644
index 25da1cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStatic6 {

-	sta

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic7.js
deleted file mode 100644
index 3a9f94e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStatic7 {

-	public sta

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic8.js
deleted file mode 100644
index 10497b6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStatic8 {

-	sta foo

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic9.js
deleted file mode 100644
index 395d7ce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStatic9.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStatic9 {

-	abstract sta

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp1.js
deleted file mode 100644
index c38d8ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStrictfp1 {

-	stric

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp2.js
deleted file mode 100644
index 4137b86..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStrictfp2 {

-	volatile stric

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp3.js
deleted file mode 100644
index 657f36c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStrictfp3 {

-	public stric

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp4.js
deleted file mode 100644
index 0569987..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordStrictfp4 {

-	abstract stric

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp5.js
deleted file mode 100644
index fa29e87..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStrictfp5 {

-	stric

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp6.js
deleted file mode 100644
index 8f66f51..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStrictfp6 {

-	volatile stric

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp7.js
deleted file mode 100644
index 3668524..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStrictfp7 {

-	public stric

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp8.js
deleted file mode 100644
index 5f473ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordStrictfp8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordStrictfp8 {

-	abstract stric

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper1.js
deleted file mode 100644
index 5cb918b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordSuper1 {

-	void foo() {

-		sup

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper10.js
deleted file mode 100644
index cad4347..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper10.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordSuper10 {

-	{

-		#

-		sup

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper11.js
deleted file mode 100644
index 9d5bcdc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper11.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordSuper11 {

-	static void foo() {

-		#

-		sup

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper2.js
deleted file mode 100644
index 4e8b5e1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordSuper2 {

-	void foo() {

-		if(sup	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper3.js
deleted file mode 100644
index 57b8c03..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordSuper3 {

-	sup

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper4.js
deleted file mode 100644
index 2ceea5b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordSuper4 {

-	{

-		sup

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper5.js
deleted file mode 100644
index 6fa2822..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper5.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordSuper5 {

-	static void foo() {

-		sup

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper7.js
deleted file mode 100644
index 1db7224..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper7.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordSuper7 {

-	void foo() {

-		#

-		sup

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper8.js
deleted file mode 100644
index bdd5a6b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper8.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordSuper8 {

-	void foo() {

-		#

-		if(sup	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper9.js
deleted file mode 100644
index 3f677e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSuper9.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordSuper9 {

-	sup

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch1.js
deleted file mode 100644
index a9fa432..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordSwitch1 {

-	void foo() {

-		sw

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch2.js
deleted file mode 100644
index 8781e13..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordSwitch2 {

-	void foo() {

-		if(sw

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch3.js
deleted file mode 100644
index a7e4e4a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordSwitch3 {

-	sw

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch4.js
deleted file mode 100644
index 1e2ef9e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordSwitch4 {

-	void foo() {

-		#

-		sw

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch5.js
deleted file mode 100644
index e2e09a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordSwitch5 {

-	void foo() {

-		#

-		if(sw

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch6.js
deleted file mode 100644
index e0ca482..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSwitch6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordSwitch6 {

-	sw

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized1.js
deleted file mode 100644
index 7524327..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordSynchronized1 {

-	syn

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized10.js
deleted file mode 100644
index 313dba2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordSynchronized10 {

-	abstract syn

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized11.js
deleted file mode 100644
index 5c604c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized11.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordSynchronized11 {

-	void foo() {

-		#

-		syn

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized12.js
deleted file mode 100644
index b80a825..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized12.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordSynchronized12 {

-	void foo() {

-		#

-		if(syn

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized2.js
deleted file mode 100644
index e251bbf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordSynchronized2 {

-	volatile syn

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized3.js
deleted file mode 100644
index 4ede753..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordSynchronized3 {

-	public syn

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized4.js
deleted file mode 100644
index 100290f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordSynchronized4 {

-	abstract syn

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized5.js
deleted file mode 100644
index 0c15d76..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized5.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordSynchronized5 {

-	void foo() {

-		syn

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized6.js
deleted file mode 100644
index 81edfa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized6.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordSynchronized6 {

-	void foo() {

-		if(syn

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized7.js
deleted file mode 100644
index 744831d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordSynchronized7 {

-	syn

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized8.js
deleted file mode 100644
index 07c2939..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordSynchronized8 {

-	volatile syn

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized9.js
deleted file mode 100644
index 0b45c5c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordSynchronized9.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordSynchronized9 {

-	public syn

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis1.js
deleted file mode 100644
index 6f0b61c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordThis1 {

-	void foo() {

-		thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis10.js
deleted file mode 100644
index 8d65bcb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordThis10 {

-	thi

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis11.js
deleted file mode 100644
index 5ba37e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis11.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordThis11 {

-	{

-		#

-		thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis12.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis12.js
deleted file mode 100644
index 46102f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis12.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordThis12 {

-	static void foo() {

-		#

-		thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis13.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis13.js
deleted file mode 100644
index f9cd8c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis13.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordThis13 {

-	void foo() {

-		#

-		CompletionKeywordThis13.thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis14.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis14.js
deleted file mode 100644
index 63697a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis14.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordThis14 {

-	static void foo() {

-		#

-		CompletionKeywordThis14.thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis2.js
deleted file mode 100644
index 3886b90..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordThis2 {

-	void foo() {

-		if(thi	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis3.js
deleted file mode 100644
index 4aa7c84..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordThis3 {

-	thi

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis4.js
deleted file mode 100644
index c8afde7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis4.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordThis4 {

-	{

-		thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis5.js
deleted file mode 100644
index 4006684..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis5.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordThis5 {

-	static void foo() {

-		thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis6.js
deleted file mode 100644
index bc2c7be..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis6.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordThis6 {

-	void foo() {

-		CompletionKeywordThis6.thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis7.js
deleted file mode 100644
index 52bffc9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis7.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordThis7 {

-	static void foo() {

-		CompletionKeywordThis7.thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis8.js
deleted file mode 100644
index 5177d5d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis8.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordThis8 {

-	void foo() {

-		#

-		thi

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis9.js
deleted file mode 100644
index 0e491f7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThis9.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordThis9 {

-	void foo() {

-		#

-		if(thi	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow1.js
deleted file mode 100644
index 9362744..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordThrow1 {

-	void foo() {

-		thr

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow2.js
deleted file mode 100644
index 2ccb0fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordThrow2 {

-	void foo() {

-		if(thr

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow3.js
deleted file mode 100644
index 59edcd2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordThrow3 {

-	thr

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow4.js
deleted file mode 100644
index 2405a4b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordThrow4 {

-	void foo() {

-		#

-		thr

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow5.js
deleted file mode 100644
index 96eb296..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordThrow5 {

-	void foo() {

-		#

-		if(thr

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow6.js
deleted file mode 100644
index 3033cb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrow6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordThrow6 {

-	thr

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows1.js
deleted file mode 100644
index cc5c3bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionKeywordThrows1 {

-	void foo() thro {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows2.js
deleted file mode 100644
index a2fe443..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionKeywordThrows2 {

-	void foo() throw Exception thro {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows3.js
deleted file mode 100644
index ddc4e8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionKeywordThrows3 {

-	int foo()[] thro {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows4.js
deleted file mode 100644
index e23131d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class CompletionKeywordThrows4 {

-	public CompletionKeywordThrows4() thro {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows5.js
deleted file mode 100644
index 70a3b0b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows5.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#

-public class CompletionKeywordThrows5 {

-	void foo() thro {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows6.js
deleted file mode 100644
index 123e5a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows6.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#

-public class CompletionKeywordThrows6 {

-	void foo() throw Exception thro {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows7.js
deleted file mode 100644
index 227230a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows7.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#

-public class CompletionKeywordThrows7 {

-	int foo()[] thro {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows8.js
deleted file mode 100644
index 1e7086e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordThrows8.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#

-public class CompletionKeywordThrows8 {

-	public CompletionKeywordThrows8() thro {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient1.js
deleted file mode 100644
index d2fffa6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordTransient1 {

-	tran

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient2.js
deleted file mode 100644
index 17eb00a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordTransient2 {

-	native tran

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient3.js
deleted file mode 100644
index 15187db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordTransient3 {

-	public tran

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient4.js
deleted file mode 100644
index 078193d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordTransient4 {

-	abstract tran

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient5.js
deleted file mode 100644
index c09938a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordTransient5 {

-	tran

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient6.js
deleted file mode 100644
index 4fb9d0c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordTransient6 {

-	native tran

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient7.js
deleted file mode 100644
index 2753500..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordTransient7 {

-	public tran

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient8.js
deleted file mode 100644
index 6dd95d5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTransient8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordTransient8 {

-	abstract tran

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue1.js
deleted file mode 100644
index 74f8746..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordTrue1 {

-	void foo() {

-		tru

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue2.js
deleted file mode 100644
index b515a83..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordTrue2 {

-	void foo() {

-		if(tru

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue3.js
deleted file mode 100644
index adbe4be..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordTrue3 {

-	void foo() {

-		#

-		tru

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue4.js
deleted file mode 100644
index 64fe1eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTrue4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordTrue4 {

-	void foo() {

-		#

-		if(tru

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry1.js
deleted file mode 100644
index 0914cc6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordTry1 {

-	void foo() {

-		tr

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry2.js
deleted file mode 100644
index 5b9d6ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordTry2 {

-	void foo() {

-		if(tr

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry3.js
deleted file mode 100644
index 0c22222..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordTry3 {

-	try

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry4.js
deleted file mode 100644
index b3fd208..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordTry4 {

-	void foo() {

-		#

-		tr

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry5.js
deleted file mode 100644
index 2f359fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordTry5 {

-	void foo() {

-		#

-		if(tr

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry6.js
deleted file mode 100644
index 29934d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordTry6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordTry6 {

-	try

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile1.js
deleted file mode 100644
index 17ae698..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordVolatile1 {

-	vol

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile2.js
deleted file mode 100644
index f9a2b6e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordVolatile2 {

-	native vol

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile3.js
deleted file mode 100644
index f8838fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordVolatile3 {

-	public vol

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile4.js
deleted file mode 100644
index f33e8fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordVolatile4 {

-	abstract vol

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile5.js
deleted file mode 100644
index 85eacc1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordVolatile5 {

-	vol

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile6.js
deleted file mode 100644
index 592ae74..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordVolatile6 {

-	native vol

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile7.js
deleted file mode 100644
index 9748aa0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordVolatile7 {

-	public vol

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile8.js
deleted file mode 100644
index 21e405f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordVolatile8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordVolatile8 {

-	abstract vol

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile1.js
deleted file mode 100644
index 56f7075..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordWhile1 {

-	void foo() {

-		wh

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile10.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile10.js
deleted file mode 100644
index 98d4e5e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile10.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class CompletionKeywordWhile10 {

-	int whilez;

-	void foo(){

-		#

-		do {

-		} wh

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile2.js
deleted file mode 100644
index 120aa86..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class CompletionKeywordWhile2 {

-	void foo() {

-		if(wh

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile3.js
deleted file mode 100644
index 11b9184..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class CompletionKeywordWhile3 {

-	wh

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile4.js
deleted file mode 100644
index 5d94bda..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordWhile4 {

-	void foo(){

-		do {

-		} wh

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile5.js
deleted file mode 100644
index fad71ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile5.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordWhile5 {

-	int whilez;

-	void foo(){

-		do {

-		} wh

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile6.js
deleted file mode 100644
index 3d7dd3e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile6.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordWhile6 {

-	void foo() {

-		#

-		wh

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile7.js
deleted file mode 100644
index 1ed1cbc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile7.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class CompletionKeywordWhile7 {

-	void foo() {

-		#

-		if(wh

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile8.js
deleted file mode 100644
index 1fe57fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile8.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#

-public class CompletionKeywordWhile8 {

-	wh

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile9.js
deleted file mode 100644
index af79d5f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/CompletionKeywordWhile9.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class CompletionKeywordWhile9 {

-	void foo(){

-		#

-		do {

-		} wh

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordImport2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordImport2.js
deleted file mode 100644
index 20c9c75..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordImport2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p;

-imp

-

-public class CompletionKeywordImport2 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordImport8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordImport8.js
deleted file mode 100644
index 01caffd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordImport8.js
+++ /dev/null
@@ -1,7 +0,0 @@
-#

-package p;

-imp

-

-public class CompletionKeywordImport8 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordPackage2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordPackage2.js
deleted file mode 100644
index 926c8b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordPackage2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p;

-pac

-public class CompletionKeywordPackage2 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordPackage8.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordPackage8.js
deleted file mode 100644
index ce5afec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src2/p/CompletionKeywordPackage8.js
+++ /dev/null
@@ -1,6 +0,0 @@
-#

-package p;

-pac

-public class CompletionKeywordPackage8 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0001/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0001/Test.js
deleted file mode 100644
index f9547d7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0001/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0001;

-

-public class Test {

-	void foo() {

-		X<St

-	}

-}

-

-class X<T> {

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0002/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0002/Test.js
deleted file mode 100644
index b61c610..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0002/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0002;

-

-public class Test {

-	void foo() {

-		X<Ob

-	}

-}

-

-class X<T> {

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0003/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0003/Test.js
deleted file mode 100644
index b871c31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0003/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0003;

-

-public class Test {

-	void foo() {

-		X<St

-	}

-}

-

-class X<T extends String> {

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0004/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0004/Test.js
deleted file mode 100644
index 068ebf2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0004/Test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package test0004;

-

-public class Test {

-	void foo() {

-		X<XZ

-	}

-}

-

-class X<T extends XZXSuper> {

-	

-}

-class XZX {

-	

-}

-class XZXSuper {

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0009/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0009/Test.js
deleted file mode 100644
index 349316a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0009/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0009;

-

-public class Test <T_1, T_2>{

-	/**/T_

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0010/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0010/Test.js
deleted file mode 100644
index e833c8c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0010/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0010;

-

-public class Test <T_1, T_2>{

-	<T_3, T_4> void foo() {

-		/**/T_

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0023/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0023/Test.js
deleted file mode 100644
index d64f50f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0023/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0023;

-

-public class Test {

-	void foo() {

-		Z0023<St

-	}

-}

-class Z0023 {

-	

-}

-

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0024/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0024/Test.js
deleted file mode 100644
index 2d9a7d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0024/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0024;

-

-public class Test {

-	void foo() {

-		String<St

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0025/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0025/Test.js
deleted file mode 100644
index d0c57c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0025/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0025;

-

-public class Test {

-	Z0025<St, String> var;

-}

-class Z0025 <T1, T2 extends String>{

-	

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0028/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0028/Test.js
deleted file mode 100644
index 3d9e10e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0028/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0028;

-

-public class Test {

-	void foo() {

-		Object o = (Z0028<St

-	}

-}

-class Z0028 <T extends String>{

-	

-}

-

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0030/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0030/Test.js
deleted file mode 100644
index b932e76..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0030/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0030;

-

-public class Test<ZZY,ZZX> {

-

-    public Test(Function<ZZY,ZZZ> function) {

-    	ZZ

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0032/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0032/Test.js
deleted file mode 100644
index 3d0edcc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0032/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0032;

-

-public class Test <T> {

-	Test<Stri

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0033/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0033/Test.js
deleted file mode 100644
index 9e5d308..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0033/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0033;

-

-public class Test <T> {

-	void foo() {

-		Test<Stri

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0034/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0034/Test.js
deleted file mode 100644
index 43354fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0034/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0034;

-

-public class Test <T> {

-	Object<Stri

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0035/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0035/Test.js
deleted file mode 100644
index bac44b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0035/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0035;

-

-public class Test <T> {

-	void foo() {

-		Object<Stri

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0036/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0036/Test.js
deleted file mode 100644
index f6f26c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0036/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0036;

-

-public class Test <T> {

-	Test<Object, Stri

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0037/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0037/Test.js
deleted file mode 100644
index f31de8f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0037/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0037;

-

-public class Test <T> {

-	void foo() {

-		Test<Object, Stri

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0038/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0038/Test.js
deleted file mode 100644
index f567044..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0038/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0038;

-

-public class Test <T> {

-	Test<Object, Stri, Object> x;

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0039/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0039/Test.js
deleted file mode 100644
index 8bdc3d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0039/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0039;

-

-public class Test <T> {

-	void foo() {

-		Test<Object, Stri, Object> x;

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0048/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0048/Test.js
deleted file mode 100644
index 7466a40..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0048/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0048;

-

-public class Test<E> {

-	void bar(E e) {

-	}

-	void foo() {

-		Test<? extends Object> l= new Test<Object>();

-		l.ba

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0049/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0049/Test.js
deleted file mode 100644
index 84fa95a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0049/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0049;

-

-public class Test {

-	void foo() {

-		TestJar<? extends Object> l= new TestJar<Object>();

-		l.ba

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0050/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0050/Test.js
deleted file mode 100644
index a343991..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0050/Test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package test0050;

-

-public class Test<T_0050> {

-	void foo() {

-		Test<T_0050> c = null;

-		void bar(Object ... var) {}

-		void toto(){}

-		static class X {

-			void titi(){

-				if(i < length) {

-					

-				}

-			}

-		}

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0057/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0057/Test.js
deleted file mode 100644
index dc81793..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0057/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0057;

-import static pkgstaticimport.QQType3.*;

-public class Test {

-	void foo() {

-		Inner

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0060/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0060/Test.js
deleted file mode 100644
index ebcd218..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0060/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0060;

-import static pkgstaticimport.QQType4.*;

-public class Test extends pkgstaticimport.QQType4 {

-	void foo() {

-		zzvarzz

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0064/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0064/Test.js
deleted file mode 100644
index 92c85b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0064/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0060;

-import static pkgstaticimport.QQType6.*;

-public class Test {

-	void foo() {

-		zzvarzz

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0067/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0067/Test.js
deleted file mode 100644
index 12c8b26..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0067/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0067;

-import static pkgstaticimport.QQType7.*;

-public class Test extends pkgstaticimport.QQType7 {

-	void foo() {

-		zzfoozz

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0068/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0068/Test.js
deleted file mode 100644
index 25e8ff7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0068/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0068;

-import static pkgstaticimport.QQType9.*;

-public class Test {

-	void foo() {

-		zzfoozz

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0069/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0069/Test.js
deleted file mode 100644
index 449e193..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0069/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0069;

-public class Test<T extends Object> {

-	T fValue;	

-	void putValue(T value) {

-		this.fValue= value;

-	}

-	void foo() {

-		Test<String> icell= new Test<String>();

-		icell.p

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0070/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0070/Test.js
deleted file mode 100644
index decb5a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0070/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0070;

-

-import static test0070

-

-public class Test {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0072/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0072/Test.js
deleted file mode 100644
index 1fe2098..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0072/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0072;

-

-import static test0072.p.ImportedClass.ZZ

-

-public class Test {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0073/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0073/Test.js
deleted file mode 100644
index bebb2e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0073/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0073;

-

-import static test0073.p.ImportedClass.Inner.ZZ

-

-public class Test {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0074/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0074/Test.js
deleted file mode 100644
index a476be5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/src3/test0074/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0074;

-

-import static test0074.p.ImportedClass.Inner.ZZ

-

-public class Test {

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/test0049.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/test0049.jar
deleted file mode 100644
index bc05bb2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/test0049.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/test0049src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/test0049src.zip
deleted file mode 100644
index 7f5c8b6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/test0049src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDoc.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDoc.jar
deleted file mode 100644
index 15b5ad3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDoc.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDocDoc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDocDoc.zip
deleted file mode 100644
index 4aae6e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDocDoc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDocsrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDocsrc.zip
deleted file mode 100644
index 3cec9c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/tmpDocsrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/zzz.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/zzz.jar
deleted file mode 100644
index 3aca5b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/zzz.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/zzzsrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/zzzsrc.zip
deleted file mode 100644
index fa08ccb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Completion/zzzsrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/.project
deleted file mode 100644
index 75574e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/.settings/.jsdtscope
deleted file mode 100644
index c65c95c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/.settings/.jsdtscope
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-    <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>    
-    <classpathentry kind="output" path="bin"/>
-    <classpathentry kind="lib" sourcepath="src" path="bins"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Hello.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Hello.js
deleted file mode 100644
index 42c53af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Hello.js
+++ /dev/null
@@ -1,23 +0,0 @@
-void ___eval() {

-	new Runnable() {

-		void ___run() throws Throwable {

-			return blah;

-		}

-		private String blarg;

-		public void run() {

-		}

-	};

-}

-public class Hello {

-	private static int x;

-	private String blah;

-	public static void main(String[] args) {

-	}

-	public void hello() {

-	}

-	public boolean blah() {

-		return false;

-	}

-	public void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/NO_WORKING.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/NO_WORKING.js
deleted file mode 100644
index b7a33a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/NO_WORKING.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class NO_WORKING {

-

-    public void method() { }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0157.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0157.js
deleted file mode 100644
index b19d3bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0157.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	var tab;

-	var t;

-	var t2;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0158.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0158.js
deleted file mode 100644
index 1ac5c03..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0158.js
+++ /dev/null
@@ -1 +0,0 @@
-	var t2;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0170.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0170.js
deleted file mode 100644
index 61a60c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test0170.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import java.util.*;

-class Test0170 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test462.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test462.js
deleted file mode 100644
index ff43459..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/Test462.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public interface Test462 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/X.js
deleted file mode 100644
index e69de29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/X.js
+++ /dev/null
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/codeManipulation/bug.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/codeManipulation/bug.js
deleted file mode 100644
index e08b07b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/codeManipulation/bug.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package codeManipulation;

-

-public class bug {

-	static private int dummyFct3() {

-		return 3;	

-	}	

-	static private int dummyFct2() {

-		return 3;	

-	}		

-	static private void pipo () {

-		int z = bug.dummyFct3(),y=bug.dummyFct2();

-

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/examples.oneofeach/ASTPosterChild.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/examples.oneofeach/ASTPosterChild.js
deleted file mode 100644
index 6b18491..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/examples.oneofeach/ASTPosterChild.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2002 IBM Corp. and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0 

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial implementation

- ******************************************************************************/

-/*

- * Syntactically correct Java program containing at least an instance of 

- * each different kind of construct in the Java language (1.4).

- */

-// PackageDeclaration

-package examples.oneofeach;

-

-// ImportDeclaration (single-type)

-import java.io.Serializable;

-// ImportDeclaration (on-demand)

-import java.util.*;

-

-/**

- * TypeDeclaration (class)

- */

-public final class ASTPosterChild extends java.lang.Object 

-	implements Serializable, ASTPosterInterface {

-

-	/**

-	 * FieldDeclaration

-	 */

-	public transient boolean[] f1 = {true, false};

-	

-	// Initializer

-	{

-		f1 = null;

-	}	

-	

-	/**

-	 * MethodDeclaration (constructor)

-	 */

-	ASTPosterChild() {

-		// ConstructorInvocation

-		this(true);

-	}	

-

-	/**

-	 * MethodDeclaration (constructor)

-	 */

-	ASTPosterChild(boolean flag) {

-		// SuperConstructorInvocation

-		super();

-	}	

-

-	/**

-	 * MethodDeclaration (method)

-	 */

-	public void op() {

-

-		// PrimitiveType, NumberLiteral

-		byte a = 0;

-		// BooleanLiteral

-		boolean b = true;

-		// CharacterLiteral

-		char c = 'x';

-		short s = 1;

-		long l = 1L;

-		float f = 1.0f;

-		double d = 1e6;

-		// SimpleType, StringLiteral

-		String z = "hello";//$NON-NLS-1$

-		// NullLiteral

-		Vector o1 = null;

-		// ArrayType, ArrayInitializer

-		int[] t1 = {1};

-		int[][] t2 = {{1,2}, {3,4}};

-		int[][][] t3 = null;

-		// ClassInstanceCreation

-		java.lang.Object o = new Object();

-		// ArrayCreation (initializer)

-		Object[] o2 = new Object[]{"0", "1"};//$NON-NLS-1$//$NON-NLS-2$

-		// ArrayCreation (dimensions)

-		Object[][] o3 = new Object[3][];

-		// Assigment

-		o3 = null;

-		// ArrayAccess

-		Object x1 = o3[0];

-		// CastExpression

-		Object x2 = (Object) o3;

-		// ConditionalExpression				

-		int x3 = b ? 1 : 2;

-		// FieldAccess

-		Object x4 = System.out;

-		// InfixExpression

-		String x5 = "a" + "b";//$NON-NLS-1$//$NON-NLS-2$

-		// InfixExpression (extended operands)

-		String x6 = "a" + "b" + "c" + "d";//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$

-		// MethodInvocation

-		notifyAll();

-		// ParenthesizedExpression

-		Object x7 = ((o));

-		// PostfixExpression

-		l++;

-		// PrefixExpression

-		--l;

-		// ThisExpression

-		Object x8 = ASTPosterChild.this;

-		// TypeLiteral

-		Object x9 = void.class;

-

-		// AssertStatement

-		// assert true: "unhappy";//$NON-NLS-1$

-		// Block

-		{}

-		// DoStatement

-		do {

-		} while (false);

-		// VariableDeclarationStatement

-		int i;

-		// ExpressionStatement

-		i = 1;

-		// LabeledStatement

-		looping:

-			// ForStatement, VariableDeclarationExpression

-			for (int j=0; j<10; j++) {

-				// ContinueStatement

-				continue looping;

-			}

-		// IfStatement

-		if (false) 

-			System.exit(0);

-		else 

-			i++;

-		// SwitchStatement

-		switch (2) {

-			// SwitchCase

-			case 2:

-				// BreakStatement

-				break;

-			default:

-				// EmptyStatement

-				;

-		}

-		// SynchronizedStatement

-		synchronized (this) {

-		}

-		// TryStatement

-		try {

-			// ThrowStatement

-			throw new RuntimeException();

-		} catch (Exception e) // CatchClause

-		{

-		} finally {

-		}

-

-		// TypeDeclarationStatement

-		abstract class X {

-			int f;

-			void m() {

-			}

-		}

-		// ClassInstanceCreation (with body declarations)

-		Object anon = new X() {

-			void m() {

-				// SuperMethodInvocation

-				super.m();

-				// SuperFieldAccess

-				super.f = 1;

-			}

-		};

-		// WhileStatement

-		boolean b1 = true;

-		while (b1);

-		// ReturnStatement;

-		return;

-	}	

-

-}

-

-/**

- * TypeDeclaration (interface)

- */

-interface ASTPosterInterface {

-

-	String FOO = "hi";//$NON-NLS-1$

-	void op();

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test000/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test000/Test.js
deleted file mode 100644
index 17e3868..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test000/Test.js
+++ /dev/null
@@ -1,36 +0,0 @@
-package javadoc.test000;

-import java.io.IOException;

-import java.util.*;

-public class Test {

-int field;

-class X {

-	int x;

-}

-/** 

- * Method outside javaDoc Comment

- * 1) {@link String} tag description not empty

- * 2) {@link CharOperation Unknown class} tag description not empty

- * @param str

- * @param VAR Unknown parameter

- * @param list third param with embedded tag: {@link Vector}

- * @param array fourth param with several embedded tags on several lines:

- * 1) {@link String} tag description not empty

- * 2) {@link CharOperation Unknown class} tag description not empty

- * @throws IllegalAccessException Unknown class

- * @throws NullPointerException

- * @return an integer

- * @see String

- * @see Vector tag description not empty

- * @see Object tag description includes embedded tags and several lines:

- * 1) {@link String} tag description not empty

- * 2) {@link CharOperation Unknown class} tag description not empty

- * @see Object#equals(Object)

- * @see Object#equals() Not applicable method

- * @see #foo(String,int,Vector,char[])

- * @see #foo(String str,int var,Vector list,char[] array) valid method

- * @see #field

- * @see X#x valid field

- * @see Object#unknown Unknown field

- */

-int foo(String str, int var, Vector list, char[] array) throws IOException { return 0; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test001/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test001/Test.js
deleted file mode 100644
index f44a18f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test001/Test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** 

- * Comment 1

- */

-package javadoc.test001;

-

-/** 

- * Comment 2

- */

-public class Test {

-

-}

-

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test002/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test002/Test.js
deleted file mode 100644
index c941c1b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test002/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.test002;

-import java.util.*;

-public class Test {

-/** 

- * @see Vector

- * @see java.util.Vector

- */

-public void foo() {

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test003/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test003/Test.js
deleted file mode 100644
index ba753f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test003/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package javadoc.test003;

-public class Test {

-/** 

- * {@link Exception}

- * @see Exception

- */

-public void foo() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test004/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test004/Test.js
deleted file mode 100644
index ed57a11..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test004/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package javadoc.test004;

-import java.util.*;

-public class Test {

-/** 

- * @see #foo(Vector)

- * @see Test#foo(Vector)

- * @see javadoc.test004.Test#foo(Vector)

- */

-public void foo(Vector v) {

-	Vector vs;

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test005/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test005/Test.js
deleted file mode 100644
index 3fb6128..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test005/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package javadoc.test005;

-import java.util.Vector;

-public class Test {

-/** 

- * @see Test#Test(String)

- */

-public Test(String str) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test006/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test006/Test.js
deleted file mode 100644
index 6da3972..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test006/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.test006;

-public class Test {

-/** 

- * @see String

- * @see StringBuffer#StringBuffer(String)

- * @see java.lang.String

- * @see java.lang.StringBuffer#StringBuffer(java.lang.String)

- */

-public void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test007/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test007/Test.js
deleted file mode 100644
index 91c1e57..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test007/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package javadoc.test007;

-public class Test {

-/** 

- * @see #foo()

- * @see Test#foo()

- * @see javadoc.test007.Test#foo()

- */

-public void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test008/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test008/Test.js
deleted file mode 100644
index 2cfbbe4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test008/Test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package javadoc.test008;

-public class Test {

-/** 

- * @see #foo(Object[],String[][][])

- */

-public void foo(Object[] o1,String[][][] s3) {}

-/** 

- * @see #foo(java.util.Vector[],java.util.Vector[][][])

- */

-public void foo(java.util.Vector[] v1,java.util.Vector[][][] v3) {}

-/** 

- * @see #foo(int[],char[][][])

- */

-public void foo(int[] a1,char[][][] a3) {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test009/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test009/Test.js
deleted file mode 100644
index 1e4a1b9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test009/Test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package javadoc.test009;

-public class Test {

-/** 

- * @see #foo(Object[] obj,String[][][] str)

- */

-public void foo(Object[] o1,String[][][] s3) {}

-/** 

- * @see #foo(java.util.Vector[] v1,java.util.Vector[][][] v2)

- */

-public void foo(java.util.Vector[] v1,java.util.Vector[][][] v3) {}

-/** 

- * @see #foo(int[] array1,char[][][] array2)

- */

-public void foo(int[] a1,char[][][] a3) {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test010/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test010/Test.js
deleted file mode 100644
index 99f7507..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test010/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.test010;

-public class Test {

-int val;

-/** 

- * {@link java.util.Vector#Vector()}

- * @param name {@link java.lang.String inline tag}

- * @see Object {@link java.lang.String inline tag} leading comment

- */

-public void gee(String name) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test011/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test011/Test.js
deleted file mode 100644
index 162b0f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test011/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package javadoc.test011;

-public class Test {

-	/** @deprecated *//

-	public Test(int myParam) { }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test012/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test012/Test.js
deleted file mode 100644
index 01f7958..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test012/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package javadoc.test012;

-public class Test {

-int val;

-	/** 

-	 * Leading comment {@link java.util.Vector#Vector()} trailing comment.

-	 */

-	public void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test013/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test013/Test.js
deleted file mode 100644
index 45188da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test013/Test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package javadoc.test013;

-import java.util.*;

-public class Test {

-	/**

-	 * Javadoc comment

-	 */

-	public static void main(String[] args) {

-		/* method main */

-		System.out.println("Hello" + " world"); // comment

-	}

-	

-	/**                    */

-	public void foo() {

-		System.out.println("Hello" + /* inside comment */ " world");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test014/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test014/X.js
deleted file mode 100644
index 4b5ad1a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test014/X.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.test014;

-public class X {

-	public static final String COMPILER_PB_INVALID_JAVADOC = ".compiler.problem.invalidJavadoc"; //$NON-NLS-1$

-	/**

-	 * Possible  configurable option ID.

-	 * @see #COMPILER_PB_INVALID_JAVADOC

-	 * @deprecated

-	 * TODO (frederic) remove after 3.0 M6

-	 */

-	public static final String COMPILER_PB_INVALID_ANNOTATION = COMPILER_PB_INVALID_JAVADOC;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test015/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test015/Test.js
deleted file mode 100644
index 965fb4a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test015/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test015;

-

-public class Test {

-	/**

-	 * Makes the given resource committable. Committable means that it is

-	 * writeable and that its content hasn't changed by calling

-	 * <code>validateEdit</code> for the given resource on <tt>IWorkspace</tt>.

-	 * 

-	 * @param list Liste of things

-	 * @see #foo(java.util.

-	 * Vector)

-	 */

-	public void foo(java.util.Vector list) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestB1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestB1.js
deleted file mode 100644
index 7a5077c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestB1.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.test100;

-public class TestB1 { /*  C0 */ /*  C1 */

-	/*  C2 */ /*  C3 */

-	/*  C4 */ /*  C5 */

-	void foo() {} /*  C6 */ /*  C7 */

-	/*  C8 */ /*  C9 */

-	/*  C10 */ /*  C11 */

-	void bar() {}

-	/*  C12 */ /*  C13 */

-	/*  C14 */ /*  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestB2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestB2.js
deleted file mode 100644
index ba76172..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestB2.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.test100;

-public class TestB2 { /*  C0 */ //  C1 */

-	/*  C2 */ //  C3 */

-	/*  C4 */ //  C5 */

-	void foo() {} /*  C6 */ //  C7 */

-	/*  C8 */ //  C9 */

-	/*  C10 */ //  C11 */

-	void bar() {}

-	/*  C12 */ //  C13 */

-	/*  C14 */ //  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestD1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestD1.js
deleted file mode 100644
index fe0d3a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestD1.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.test100;

-public class TestD1 { /** C0 */ /** C1 */

-	/** C2 */ /** C3 */

-	/** C4 */ /** C5 */

-	void foo() {} /** C6 */ /** C7 */

-	/** C8 */ /** C9 */

-	/** C10 */ /** C11 */

-	void bar() {}

-	/** C12 */ /** C13 */

-	/** C14 */ /** C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestD2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestD2.js
deleted file mode 100644
index a6355e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test100/TestD2.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.test100;

-public class TestD2 { /** C0 */ //  C1 */

-	/** C2 */ //  C3 */

-	/** C4 */ //  C5 */

-	void foo() {} /** C6 */ //  C7 */

-	/** C8 */ //  C9 */

-	/** C10 */ //  C11 */

-	void bar() {}

-	/** C12 */ //  C13 */

-	/** C14 */ //  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test101/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test101/Test.js
deleted file mode 100644
index 6e3278e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test101/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.test101;

-public class Test { //  C0 */ //  C0b */

-	//  C1 */ //  C1b */

-	//  C2 */ //  C2b */

-	void foo() {} //  C3 */ //  C3b */

-	//  C4 */ //  C4b */

-	//  C5 */ //  C5b */

-	void bar() {}

-	//  C6 */ //  C6b */

-	//  C7 */ //  C7b */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestB1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestB1.js
deleted file mode 100644
index 59ee938..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestB1.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test102;

-public class TestB1 { /*  C0 */ /*  C1 */

-	/*  C2 */ /*  C3 */

-

-	/*  C4 */ /*  C5 */

-	void foo() {} /*  C6 */ /*  C7 */

-	/*  C8 */ /*  C9 */

-

-	/*  C10 */ /*  C11 */

-	void bar() {}

-	/*  C12 */ /*  C13 */

-

-	/*  C14 */ /*  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestB2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestB2.js
deleted file mode 100644
index 34325de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestB2.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test102;

-public class TestB2 { /*  C0 */ //  C1 */

-	/*  C2 */ //  C3 */

-

-	/*  C4 */ //  C5 */

-	void foo() {} /*  C6 */ //  C7 */

-	/*  C8 */ //  C9 */

-

-	/*  C10 */ //  C11 */

-	void bar() {}

-	/*  C12 */ //  C13 */

-

-	/*  C14 */ //  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestD1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestD1.js
deleted file mode 100644
index 7d5ddde..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestD1.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test102;

-public class TestD1 { /** C0 */ /** C1 */

-	/** C2 */ /** C3 */

-

-	/** C4 */ /** C5 */

-	void foo() {} /** C6 */ /** C7 */

-	/** C8 */ /** C9 */

-

-	/** C10 */ /** C11 */

-	void bar() {}

-	/** C12 */ /** C13 */

-

-	/** C14 */ /** C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestD2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestD2.js
deleted file mode 100644
index 9eae768..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test102/TestD2.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test102;

-public class TestD2 { /** C0 */ //  C1 */

-	/** C2 */ //  C3 */

-

-	/** C4 */ //  C5 */

-	void foo() {} /** C6 */ //  C7 */

-	/** C8 */ //  C9 */

-

-	/** C10 */ //  C11 */

-	void bar() {}

-	/** C12 */ //  C13 */

-

-	/** C14 */ //  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test103/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test103/Test.js
deleted file mode 100644
index 2406e11..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test103/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test103;

-public class Test { //  C0 */ //  C0b */

-	//  C1 */ //  C1b */

-

-	//  C2 */ //  C2b */

-	void foo() {} //  C3 */ //  C3b */

-	//  C4 */ //  C4b */

-

-	//  C5 */ //  C5b */

-	void bar() {}

-	//  C6 */ //  C6b */

-

-	//  C7 */ //  C7b */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test104/TestD1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test104/TestD1.js
deleted file mode 100644
index d2081e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test104/TestD1.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package javadoc.test104;

-public class TestD1 { /** C0 */ /** C1 */

-	/** C2 */ /** C3 */

-	/** C4 */ /** C5 */

-

-	void foo() {} /** C6 */ /** C7 */

-	/** C8 */ /** C9 */

-	/** C10 */ /** C11 */

-

-	void bar() {}

-	/** C12 */ /** C13 */

-	/** C14 */ /** C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test104/TestD2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test104/TestD2.js
deleted file mode 100644
index c1d4d5b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test104/TestD2.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package javadoc.test104;

-public class TestD2 { /** C0 */ //  C1 */

-	/** C2 */ //  C3 */

-	/** C4 */ //  C5 */

-

-	void foo() {} /** C6 */ //  C7 */

-	/** C8 */ //  C9 */

-	/** C10 */ //  C11 */

-

-	void bar() {}

-	/** C12 */ //  C13 */

-	/** C14 */ //  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test105/TestB1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test105/TestB1.js
deleted file mode 100644
index 38db287..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test105/TestB1.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package javadoc.test105;

-public class TestB1 { /*  C0 */ /*  C1 */

-	/*  C2 */ /*  C3 */

-	/*  C4 */ /*  C5 */

-

-	void foo() {} /*  C6 */ /*  C7 */

-	/*  C8 */ /*  C9 */

-	/*  C10 */ /*  C11 */

-

-	void bar() {}

-	/*  C12 */ /*  C13 */

-	/*  C14 */ /*  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test105/TestB2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test105/TestB2.js
deleted file mode 100644
index f65ace8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test105/TestB2.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package javadoc.test105;

-public class TestB2 { /*  C0 */ //  C1 */

-	/*  C2 */ //  C3 */

-	/*  C4 */ //  C5 */

-

-	void foo() {} /*  C6 */ //  C7 */

-	/*  C8 */ //  C9 */

-	/*  C10 */ //  C11 */

-

-	void bar() {}

-	/*  C12 */ //  C13 */

-	/*  C14 */ //  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test106/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test106/Test.js
deleted file mode 100644
index c921ab8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test106/Test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package javadoc.test106;

-public class Test { //  C0 */ //  C0b */

-	//  C1 */ //  C1b */

-	//  C2 */ //  C2b */

-

-	void foo() {} //  C3 */ //  C3b */

-	//  C4 */ //  C4b */

-	//  C5 */ //  C5b */

-

-	void bar() {}

-	//  C6 */ //  C6b */

-	//  C7 */ //  C7b */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestB1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestB1.js
deleted file mode 100644
index c2698e3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestB1.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test107;

-public class TestB1 { /*  C0 */ /*  C1 */

-

-	/*  C2 */ /*  C3 */

-	/*  C4 */ /*  C5 */

-	void foo() {} /*  C6 */ /*  C7 */

-

-	/*  C8 */ /*  C9 */

-	/*  C10 */ /*  C11 */

-	void bar() {}

-

-	/*  C12 */ /*  C13 */

-	/*  C14 */ /*  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestB2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestB2.js
deleted file mode 100644
index e57c959..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestB2.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test107;

-public class TestB2 { /*  C0 */ //  C1 */

-

-	/*  C2 */ //  C3 */

-	/*  C4 */ //  C5 */

-	void foo() {} /*  C6 */ //  C7 */

-

-	/*  C8 */ //  C9 */

-	/*  C10 */ //  C11 */

-	void bar() {}

-

-	/*  C12 */ //  C13 */

-	/*  C14 */ //  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestD1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestD1.js
deleted file mode 100644
index 2f8c03b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestD1.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test107;

-public class TestD1 { /** C0 */ /** C1 */

-

-	/** C2 */ /** C3 */

-	/** C4 */ /** C5 */

-	void foo() {} /** C6 */ /** C7 */

-

-	/** C8 */ /** C9 */

-	/** C10 */ /** C11 */

-	void bar() {}

-

-	/** C12 */ /** C13 */

-	/** C14 */ /** C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestD2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestD2.js
deleted file mode 100644
index f38f395..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test107/TestD2.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test107;

-public class TestD2 { /** C0 */ //  C1 */

-

-	/** C2 */ //  C3 */

-	/** C4 */ //  C5 */

-	void foo() {} /** C6 */ //  C7 */

-

-	/** C8 */ //  C9 */

-	/** C10 */ //  C11 */

-	void bar() {}

-

-	/** C12 */ //  C13 */

-	/** C14 */ //  C15 */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test108/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test108/Test.js
deleted file mode 100644
index c42575d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/test108/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.test108;

-public class Test { //  C0 */ //  C0b */

-

-	//  C1 */ //  C1b */

-	//  C2 */ //  C2b */

-	void foo() {} //  C3 */ //  C3b */

-

-	//  C4 */ //  C4b */

-	//  C5 */ //  C5b */

-	void bar() {}

-

-	//  C6 */ //  C6b */

-	//  C7 */ //  C7b */

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestA.js
deleted file mode 100644
index 92f5c29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestA.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.testBug48489;

-import java.util.*;

-public class TestA {

-	/**

-	 * Javadoc comment

-	 */

-	public static void main(String[] args) {

-		/* method main */

-		System.out.println("Hello" + " world"); // comment

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestB.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestB.js
deleted file mode 100644
index fe436d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestB.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package javadoc.testBug48489;

-import java.util.*;

-public class TestB {

-	/**

-	 * Javadoc

-	 */

-	public static final /* */ String s = "NULL", s2="";// line comment

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestC.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestC.js
deleted file mode 100644
index d21e317..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestC.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.testBug48489;

-import java.util.*;

-public class TestC {

-	/**

-	 * Javadoc

-	 */

-	static {

-		/* */

-		System.out.println("Hello" + " world"); // line comment

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestD.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestD.js
deleted file mode 100644
index 83623af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestD.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.testBug48489;

-import java.util.*;

-public class TestD {

-	/**

-	 * Javadoc

-	 */

-	public static void main(String[] args) {

-		System.out./* */println("Hello" + " world");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestE.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestE.js
deleted file mode 100644
index 95435f7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug48489/TestE.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.testBug48489;

-import java.util.*;

-public class TestE {

-	/**

-	 * Javadoc

-	 */

-	public static void main(String[] args) {

-		System.out.println("Hello" + /* */ " world");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug50898/G.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug50898/G.js
deleted file mode 100644
index 9c4e0a1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug50898/G.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package javadoc.testBug50898;

-public class G {

-	private static class Inner {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug50898/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug50898/Test.js
deleted file mode 100644
index 608096b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug50898/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package javadoc.testBug50898;

-public class Test {

-    /**			

-     * @see G.Inner

-     */

-    public void foo() {

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X1.js
deleted file mode 100644
index a739d2d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51226;

-/*\u002A

- * Test

- */

-public class X1 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X2.js
deleted file mode 100644
index bb73455..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51226;

-/\u002A*

- * Test

- */

-public class X2 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X3.js
deleted file mode 100644
index c6fbacc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51226;

-\u002F**

- * Test

- */

-public class X3 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X4.js
deleted file mode 100644
index 31cbf2b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51226;

-/\u002A\u002A

- \u002A Test

- \u002A/

-public class X4 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X5.js
deleted file mode 100644
index 21af930..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51226;

-\u002F**

- * Test

- *\u002F

-public class X5 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X6.js
deleted file mode 100644
index ab00ecf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51226/X6.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51226;

-\u002F\u002A\u002A

- \u002A Test

- \u002A\u002F

-public class X6 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51241/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51241/X.js
deleted file mode 100644
index 61e659f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51241/X.js
+++ /dev/null
@@ -1,20 +0,0 @@
-package javadoc.testBug51241;

-public class X {

-	// First class line comment

-	int i;

-	// C1

-	

-	void foo() {

-		int x;

-		// C2

-		int y;

-		// First method line comment

-	}

-	// Syntax error here!

-	int z

-	

-	// Second class line comment

-	void bar() {

-		// Second method line comment

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51363/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51363/Test.js
deleted file mode 100644
index f44c112..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51363/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package javadoc.testBug51363;

-\u002F\u002FUnicode comment\u000D\u000Apublic class Test {

-	\u002F\u002FUnicode comment\u000Dvoid foo() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X1.js
deleted file mode 100644
index 0c088be..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package javadoc.testBug51476;

-/**

- * @see "Test class X"

- * @see <a href="http://www.ibm.com">Valid URL</a>

- */

-public class X1 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X2.js
deleted file mode 100644
index 870032d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51476;

-/**

- * @see "Test class X"

- */

-public class X2 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X3.js
deleted file mode 100644
index dd4eb94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51476/X3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51476;

-/**

- * @see <a href="http://www.ibm.com">Valid URL</a>

- */

-public class X3 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X1.js
deleted file mode 100644
index 19b2152..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package javadoc.testBug51478;

-/**

- * {@inheritDoc}

- * @deprecated

- */

-public class X1 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X2.js
deleted file mode 100644
index a10f8a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51478;

-/**

- * {@inheritDoc}

- */

-public class X2 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X3.js
deleted file mode 100644
index be6302e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51478/X3.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51478;

-/**

- * @deprecated

- */

-public class X3 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51508/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51508/X.js
deleted file mode 100644
index 054ce96..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51508/X.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package javadoc.testBug51508;

-/**

- * @see java

- * @see java.util

- */

-public class X {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51600/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51600/Test.js
deleted file mode 100644
index c1ed6c0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51600/Test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package javadoc.testBug51600;

-public class Test {

-  /**

-   * @param str

-   * @param

-   * @param str

-   * @see

-   * @see       

-   * @see #

-   * @see "Invalid

-   * @return String

-   * @return

-   * @return String

-   */

-  String foo(String str) { return ""; }

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51617/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51617/Test.js
deleted file mode 100644
index 89dbe0b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51617/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.testBug51617;

-public class Test {

-	/**

-	 * Set in separated folder as we have an unbound reference...

-	 * @exception e

-	 * @param name The name to set

-	 */

-	public void setName1(String name) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51650/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51650/X.js
deleted file mode 100644
index 90fc1cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51650/X.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package javadoc.testBug51650;

-public class X {

-  /**

-   * @see Exception

-   * {@link Exception}

-   */

-  public void foo() {

-  }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51660/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51660/Test.js
deleted file mode 100644
index a05dc2a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51660/Test.js
+++ /dev/null
@@ -1,37 +0,0 @@
-package javadoc.testBug51660;

-/**

- * @ejb!bean test non-java id character '!' (val=33) in tag name

- * @ejb"bean test non-java id character '"' (val=34) in tag name

- * @ejb#bean test non-java id character '#' (val=35) in tag name

- * @ejb%bean test non-java id character '%' (val=37) in tag name

- * @ejb&bean test non-java id character '&' (val=38) in tag name

- * @ejb'bean test non-java id character ''' (val=39) in tag name

- * @ejb(bean test non-java id character '(' (val=40) in tag name

- * @ejb)bean test non-java id character ')' (val=41) in tag name

- * @ejb*bean test non-java id character '*' (val=42) in tag name

- * @ejb+bean test non-java id character '+' (val=43) in tag name

- * @ejb,bean test non-java id character ',' (val=44) in tag name

- * @ejb-bean test non-java id character '-' (val=45) in tag name

- * @ejb.bean test non-java id character '.' (val=46) in tag name

- * @ejb/bean test non-java id character '/' (val=47) in tag name

- * @ejb:bean test non-java id character ':' (val=58) in tag name

- * @ejb;bean test non-java id character ';' (val=59) in tag name

- * @ejb<bean test non-java id character '<' (val=60) in tag name

- * @ejb=bean test non-java id character '=' (val=61) in tag name

- * @ejb>bean test non-java id character '>' (val=62) in tag name

- * @ejb?bean test non-java id character '?' (val=63) in tag name

- * @ejb@bean test non-java id character '@' (val=64) in tag name

- * @ejb[bean test non-java id character '[' (val=91) in tag name

- * @ejb\bean test non-java id character '\' (val=92) in tag name

- * @ejb]bean test non-java id character ']' (val=93) in tag name

- * @ejb^bean test non-java id character '^' (val=94) in tag name

- * @ejb`bean test non-java id character '`' (val=96) in tag name

- * @ejb{bean test non-java id character '{' (val=123) in tag name

- * @ejb|bean test non-java id character '|' (val=124) in tag name

- * @ejb}bean test non-java id character '}' (val=125) in tag name

- * @ejb~bean test non-java id character '~' (val=126) in tag name

- * @unknown test java id

- */

-public class Test {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51770/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51770/X.js
deleted file mode 100644
index 704a06d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51770/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug51770;

-/**

- * @see java.util.Vector

- */

-public class X {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestInvalid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestInvalid.js
deleted file mode 100644
index 7bb1639..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestInvalid.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package javadoc.testBug51911;

-/**

- * @see #foo

- */

-public class TestInvalid {

-	public void foo(int i, float f) {}

-	public void foo(String str) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid1.js
deleted file mode 100644
index dd1e63f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package javadoc.testBug51911;

-/**

- * @see #foo

- */

-public class TestValid1 {

-	public int foo;

-	public void foo(String str) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid2.js
deleted file mode 100644
index e8bd5e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package javadoc.testBug51911;

-/**

- * @see #foo

- */

-public class TestValid2 {

-	public void foo(String str) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid3.js
deleted file mode 100644
index ceafa1f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug51911/TestValid3.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package javadoc.testBug51911;

-/**

- * @see #foo

- */

-public class TestValid3 {

-	public int foo;

-	public void foo() {}

-	public void foo(String str) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908/X.js
deleted file mode 100644
index eec80f0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908/X.js
+++ /dev/null
@@ -1,47 +0,0 @@
-package javadoc.testBug52908;

-public class X {

-	/**

-	 * Text element starting with a

-	 * { caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x1;

-	/**

-	 * Text element ending with a }

-	 * caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x2;

-	/**

-	 * Text element starting with a

-	 * } caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x3;

-	/**

-	 * Text element ending with a {

-	 * caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x4;

-	/**

-	 * Text element starting with

-	 * { and ending with }

-	 * caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x6;

-	/**

-	 * Text element starting with

-	 * } and ending with {

-	 * caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x7;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908/Y.js
deleted file mode 100644
index 10f1fbb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908/Y.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.testBug52908;

-public class Y {

-	/**

-	 *   while (true)

-	 *  {

-	 *     int token = scanner.getNextToken();

-	 *     if (token == ITerminalSymbols.TokenNameEOF) break;

-	 *     System.out.println(token + " : " + new String(scanner.getCurrentTokenSource()));

-	 *   }

-	 * <pre>

-	 * </pre>

-	 */

-	void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908a/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908a/Test.js
deleted file mode 100644
index 9fc34af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908a/Test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package javadoc.testBug52908a;

-import java.util.Vector;

-

-/**

- * AST node for a parameter within a method reference ({@link Object}).

- * These nodes only occur within doc comments ({@link Vector}).

- * <pre>

- * MethodRefParameter:

- * 		Type [ Identifier ]

- * </pre>

- * 

- * @see Vector

- * @since 3.0

- */

-public class Test {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908unicode/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908unicode/X.js
deleted file mode 100644
index 3885ff0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908unicode/X.js
+++ /dev/null
@@ -1,47 +0,0 @@
-package javadoc.testBug52908unicode;

-public class X {

-	/**

-	 * Text element starting with a

-	 * \u007b caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x1;

-	/**

-	 * Text element ending with a \u007d

-	 * caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x2;

-	/**

-	 * Text element starting with a

-	 * \u007d caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x3;

-	/**

-	 * Text element ending with a \u007b

-	 * caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x4;

-	/**

-	 * Text element starting with

-	 * \u007b and ending with \u007d

-	 * caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x6;

-	/**

-	 * Text element starting with

-	 * \u007d and ending with \u007b

-	 * caused troubles in its position

-	 * if the bug is not fixed

-	 * @see Object

-	 */

-	Object x7;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908unicode/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908unicode/Y.js
deleted file mode 100644
index 108dd7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug52908unicode/Y.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.testBug52908unicode;

-public class Y {

-	/**

-	 *   while (true)

-	 *   \u007b

-	 *     int token = scanner.getNextToken();

-	 *     if (token == ITerminalSymbols.TokenNameEOF) break;

-	 *     System.out.println(token + " : " + new String(scanner.getCurrentTokenSource()));

-	 *   \u007d

-	 * <pre>

-	 * </pre>

-	 */

-	void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53075/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53075/X.js
deleted file mode 100644
index 68b47ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53075/X.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package javadoc.testBug53075;

-class X {

-/**

- * @link aggregates

- * [... some more ...]

- * @linkplain plain aggregates

- */

-void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestA.js
deleted file mode 100644
index 00310d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestA.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package javadoc.testBug53276;

-public interface TestA {

-	/**

-	 * Return the string specifying the pattern of this ignore. The string

-	 * may include the wildcard characters '*' and '?'. If you wish to

-	 * include either of these characters verbatim (i.e. you do not wish

-	 * them to expand to wildcards), you must escape them with a backslash '\'.

-	 * <p>

-	 * If you are using string literals in Java to represent the patterns, don't 

-	 * forget escape characters are represented by "\\".

-	 * 

-	 * @return the pattern represented by this ignore info

-	 */

-	public String getPattern();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestB.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestB.js
deleted file mode 100644
index b8b71d0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestB.js
+++ /dev/null
@@ -1,23 +0,0 @@
-package javadoc.testBug53276;

-

-/**

- * Handles a "Removed" response from the CVS server.

- * <p>

- * Suppose as a result of performing a command the CVS server responds

- * as follows:<br>

- * <pre>

- *   [...]

- *   Removed ??? \n

- *   [...]

- * </pre>

- * Then 

- * </p>

- */

-

-/**

- * It removes the file from both the entries of the parent-folder

- * and from the local filesystem.

- */

-public class TestB {

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestC.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestC.js
deleted file mode 100644
index f848392..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53276/TestC.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package javadoc.testBug53276;

-public class TestC {

-

-	/**

-	 * Returns the progress monitor. It there is no progress monitor the monitor\

-	 * is set to the <code>NullProgressMonitor</code>.

-	 * 

-	 * @return the progress monitor

-	 */

-	public Object foo() { return null; }

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53757/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53757/Test.js
deleted file mode 100644
index 9cde4f3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug53757/Test.js
+++ /dev/null
@@ -1,55 +0,0 @@
-package javadoc.testBug53757;

-public class Test {

-	/**

-	 * Test all grammar keywords

-	 * @abstract = 60,

-	 * @assert = 71,

-	 * @boolean = 31,

-	 * @break = 72,

-	 * @byte = 32,

-	 * @case = 83,

-	 * @catch = 86,

-	 * @char = 33,

-	 * @class = 81,

-	 * @continue = 73,

-	 * @default = 84,

-	 * @do = 74,

-	 * @double = 34,

-	 * @else = 87,

-	 * @extends = 91,

-	 * @false = 44,

-	 * @final = 61,

-	 * @finally = 88,

-	 * @float = 35,

-	 * @for = 75,

-	 * @if = 76,

-	 * @implements = 103,

-	 * @import = 82,

-	 * @instanceof = 13,

-	 * @int = 36,

-	 * @interface = 89,

-	 * @long = 37,

-	 * @native = 62,

-	 * @new = 41,

-	 * @null = 45,

-	 * @package = 85,

-	 * @private = 63,

-	 * @protected = 64,

-	 * @public = 65,

-	 * @short = 38,

-	 * @static = 57,

-	 * @strictfp = 66,

-	 * @super = 42,

-	 * @switch = 78,

-	 * @synchronized = 55,

-	 * @this = 43,

-	 * @throw = 79,

-	 * @transient = 67,

-	 * @true = 46,

-	 * @try = 80,

-	 * @void = 39,

-	 * @volatile = 68,

-	 * @while = 70,

-	 */

-	void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug54424/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug54424/Test.js
deleted file mode 100644
index 8ea97a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug54424/Test.js
+++ /dev/null
@@ -1,25 +0,0 @@
-package javadoc.testBug54424;

-import java.io.IOException;

-import java.util.AbstractList;

-

-public class Test {

-	/**

-	 * @param

-	 * @param tho {@link getList(int, long)}

-	 * @version throwaway

-	 * @param from 1st param of {@link A#getList(int, long, boolean) me}

-	 * @see #getList(Object, java.util.AbstractList)

-	 * @param from 2nd

-	 * @see #getList(int from, tho long)

-	 * @see #getList(int from, long tho)

-	 * @param 

-	 * @return the list

-	 * @see #getList(..)

-	 * @param to

-	 * @throws .IOException

-	 * @deprecated

-	 * @throws IOException.

-	 * @todo it

-	 */

-	public AbstractList getList(int from, long to) throws IOException {return null;}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug54776/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug54776/Test.js
deleted file mode 100644
index 7eb491c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug54776/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package javadoc.testBug54776;

-public class Test {

-	

-	private int field= /*]*/foo()/*[*/;	

-	

-	public int foo() {

-		return 1;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/a/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/a/Test.js
deleted file mode 100644
index 86466c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/a/Test.js
+++ /dev/null
@@ -1,18 +0,0 @@
-package javadoc.testBug55221.a;

-public class Test {

-	public int bar() {

-		int x=0;

-		if (true) {

-			x=1;

-		} else {

-			x=2;

-		}

-		return x;

-	}

-	/**

-	 * This comment should not be attached to previous method body!

-	 * @return int

-	 */

-

-	public int foo() { return 1; }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/b/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/b/Test.js
deleted file mode 100644
index 450028d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/b/Test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package javadoc.testBug55221.b;

-public class Test {

-	public int bar() {

-		int x=0;

-		if (true) {

-			x=1;

-		} else {

-			x=2;

-		}

-		return x;

-	}	/**

-	 * This comment should not be attached to previous method body!

-	 * @return int

-	 */

-

-	public int foo() { return 1; }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/c/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/c/Test.js
deleted file mode 100644
index 8e4efb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/c/Test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package javadoc.testBug55221.c;

-public class Test {

-	public int bar() {

-		int x=0;

-		if (true) {

-			x=1;

-		} else {

-			x=2;

-		}

-		return x;

-	}	/*

-	 * This comment should not be attached to previous method body!

-	 * @return int

-	 */

-	public int foo() { return 1; }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/d/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/d/Test.js
deleted file mode 100644
index 7e58ec8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55221/d/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package javadoc.testBug55221.d;

-public class Test {

-	/**

-	 * Javadoc comment

-	 */// Line comment

-	boolean foo() { return false; }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55223/TestA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55223/TestA.js
deleted file mode 100644
index a38f38e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55223/TestA.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package javadoc.testBug55223;

-public class TestA {

-	private void foo() {

-		foo();/* a */ foo(); /* b */ foo();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55223/TestB.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55223/TestB.js
deleted file mode 100644
index ce9e2db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug55223/TestB.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.testBug55223;

-public class TestB {

-	/**

-	 * Returns all of the filter elements of this shortcut as a List of String Pairs.

-	 * 

-	 * @return all of the filter elements of this shortcut, or <code>null</code> if not

-	 *  specified

-	 */

-	public /* <Pair> */ Object getFilters() { return null; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug63044/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug63044/Test.js
deleted file mode 100644
index 5b01aa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug63044/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.testBug63044;

-/**

- * @see #Test()

- * @see Test#Test()

- * @see javadoc.testBug63044.Test#Test()

- */

-public class Test{ 

-	Test( ){

-		new Test();

-	};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65174/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65174/Test.js
deleted file mode 100644
index 3671075..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65174/Test.js
+++ /dev/null
@@ -1,39 +0,0 @@
-package javadoc.testBug65174;

-public class Test {

-	/**

-	 * Comment with no error: {@link

-	 * Object valid} because it's not on first line

-	 */

-	void foo_ok() {}

-	/** Comment previously with error: {@link

-	 * Object valid} because tag is on comment very first line

-	 */

-	void foo_ko() {}

-	/**

-	 * Comment with no error: {@link		

-	 * Object valid} because it's not on first line

-	 */

-	void fooA_ok() {}

-	/** Comment previously with error: {@link		

-	 * Object valid} because tag is on comment very first line

-	 */

-	void fooA_ko() {}

-	/**

-	 * Comment with no error: {@link java.lang.

-	 * Object valid} because it's not on first line

-	 */

-	void fooB_ok() {}

-	/** Comment previously with error: {@link java.lang.

-	 * Object valid} because tag is on comment very first line

-	 */

-	void fooB_ko() {}

-	/**

-	 * Comment with no error: {@link Object

-	 * valid} because it's not on first line

-	 */

-	void fooC_ok() {}

-	/** Comment previously with error: {@link Object

-	 * valid} because tag is on comment very first line

-	 */

-	void fooC_ko() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65253/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65253/Test.js
deleted file mode 100644
index 1c122b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65253/Test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package javadoc.testBug65253;

-/**

- * Comment 

- * @@@@see Unknown Should not complain on ref

- */

-public class Test {

-	/**

-	 * Comment

-	 * @@@param xxx Should not complain on param

-	 * @@return int Should not be '@return' tag element 

-	 */

-	int foo() { // should warn on missing tag for return type

-		return 0;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65253/TestD.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65253/TestD.js
deleted file mode 100644
index 53ff22a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65253/TestD.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package javadoc.testBug65253;

-public class TestD {

-	/** Comment previously with no error: {@link Object valid} comment on one line */

-	void foo1() {}

-	/** Comment previously with no error: {@link Object valid}       */

-	void foo2() {}

-	/** Comment previously with no error: {@link Object valid}*/

-	void foo3() {}

-	/**                    {@link Object valid} comment on one line */

-	void foo4() {}

-	/**{@link Object valid} comment on one line */

-	void foo5() {}

-	/**       {@link Object valid} 				*/

-	void foo6() {}

-	/**{@link Object valid} 				*/

-	void foo7() {}

-	/**				{@link Object valid}*/

-	void foo8() {}

-	/**{@link Object valid}*/

-	void foo9() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65288/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65288/Test.js
deleted file mode 100644
index 5580f9a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug65288/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package javadoc.testBug65288;

-/**

- * @see

- * @see*/

-public class Test {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestInvalid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestInvalid.js
deleted file mode 100644
index a9fba86..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestInvalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package javadoc.testBug68017;

-public class TestInvalid {

-	/**@return*/

-	public int foo1() {return 0; }

-	/**@return        */

-	public int foo2() {return 0; }

-	/**@return****/

-	public int foo3() {return 0; }

-	/**

-	 *	@return

-	 */

-	public int foo4() {return 0; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestValid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestValid.js
deleted file mode 100644
index 774a4a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestValid.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package javadoc.testBug68017;

-public class TestValid {

-	/**@return integer*/

-	public int foo1() {return 0; }

-	/**

-	 *	@return #

-	 */

-	public int foo2() {return 0; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestWarn1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestWarn1.js
deleted file mode 100644
index d6d1b6b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestWarn1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package javadoc.testBug68017;

-public class TestWarn1 { 

-	/**

-	 *	@return* */

-	public int foo1() {return 0; }

-	/**@return** **/

-	public int foo2() {return 0; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestWarn2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestWarn2.js
deleted file mode 100644
index 40583a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68017/TestWarn2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package javadoc.testBug68017;

-public class TestWarn2 {

-	/**

-	 *	@return#

-	 */

-	public int foo() {return 0; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68025/TestA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68025/TestA.js
deleted file mode 100644
index 1eec4d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68025/TestA.js
+++ /dev/null
@@ -1,12 +0,0 @@
-

-package javadoc.testBug68025;

-public class TestA {

-

-	/**

-	 * @see IJavaElement#getElementName#bug

-	 * or closer to the reality (COPY is a constant):

-	 * @see org.eclipse.ui.actions.ActionFactory#COPY#getId

-	 */

-    void foo() {

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68025/TestB.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68025/TestB.js
deleted file mode 100644
index 78b6067..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68025/TestB.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package javadoc.testBug68025;

-public class TestB {

-	public int field;

-	public void foo() {}

-	/**

-	 *	@see #field#invalid

-	 *	@see #foo#invalid

-	 */

-	public void foo1() {}

-	/**@see Y#field# invalid*/

-	public void foo2() {}

-	/**@see Y#foo#	invalid*/

-	public void foo3() {}

-	/**@see Y#foo()#

-	 *valid*/

-	public void foo4() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726conform1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726conform1.js
deleted file mode 100644
index ff54e3e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726conform1.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package javadoc.testBug68726;

-public class TestBug68726conform1 {

-	/**

-	 *	@see Object <a href="http://www.eclipse.org" target="_top">Eclipse</a>

-	 */

-	void foo1() {}

-	/**@see Object <a href="http://www.eclipse.org" target="_top" target1="_top1" target2="_top2">Eclipse</a>*/

-	void foo2() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726conform2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726conform2.js
deleted file mode 100644
index 08a41c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726conform2.js
+++ /dev/null
@@ -1,20 +0,0 @@
-package javadoc.testBug68726;

-/**

-	* @see <a href="http:/www.ibm.com" target="_top">IBM Home Page</a>

-	* @see <a href="http:/www.ibm.com" target="_top">

-	*          IBM Home Page</a>

-	* @see <a href="http:/www.ibm.com" target="_top">

-	*          IBM Home Page

-	* 			</a>

-	* @see <a href="http:/www.ibm.com" target="_top">

-	*

-	*          IBM

-	*

-	*          Home Page

-	*

-	*

-	* 			</a>

-	* @see Object

-	*/

-public class TestBug68726conform2 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726negative1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726negative1.js
deleted file mode 100644
index ddc920a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726negative1.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package javadoc.testBug68726;

-public class TestBug68726negative1 {

-	/**

-	 * Invalid URL link references

-	 *

-	 * @see <a href="invalid" target

-	 * @see <a href="invalid" target=

-	 * @see <a href="invalid" target="

-	 * @see <a href="invalid" target="_top

-	 * @see <a href="invalid" target="_top"

-	 * @see <a href="invalid" target="_top">

-	 * @see <a href="invalid" target="_top">

-	 * @see <a href="invalid" target="_top">invalid

-	 * @see <a href="invalid" target="_top">invalid<

-	 * @see <a href="invalid" target="_top">invalid</

-	 * @see <a href="invalid" target="_top">invalid</a

-	 * @see <a href="invalid" target="_top">invalid</a> no text allowed after the href

-	 */

-	public void s_foo() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726negative2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726negative2.js
deleted file mode 100644
index 52bf42e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug68726/TestBug68726negative2.js
+++ /dev/null
@@ -1,20 +0,0 @@
-package javadoc.testBug68726;

-/**

-	* @see <a href="http:/www.ibm.com" target="_top">IBM Home Page

-	* @see <a href="http:/www.ibm.com" target="_top">

-	*          IBM Home Page

-	* @see <a href="http:/www.ibm.com" target="_top">

-	*          IBM Home Page<

-	* 			/a>

-	* @see <a href="http:/www.ibm.com" target="_top">

-	*

-	*          IBM

-	*

-	*          Home Page

-	*

-	*

-	* 			

-	* @see Unknown Unknown reference

-	*/

-public class TestBug68726negative2 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestClassInvalid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestClassInvalid.js
deleted file mode 100644
index f71d846..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestClassInvalid.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.testBug69272;

-public class TestClassInvalid {

-	/**@see Object* */

-	public void foo1() {}

-	/**@see Object*** ***/

-	public void foo2() {}

-	/**@see Object***

-	 */

-	public void foo3() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestClassValid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestClassValid.js
deleted file mode 100644
index b12529a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestClassValid.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.testBug69272;

-public class TestClassValid {

-	/**@see Object*/

-	public void foo1() {}

-	/**@see Object

-	*/

-	public void foo2() {}

-	/**@see Object    */

-	public void foo3() {}

-	/**@see Object****/

-	public void foo4() {}

-	/**@see Object		****/

-	public void foo5() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestFieldInvalid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestFieldInvalid.js
deleted file mode 100644
index 941233e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestFieldInvalid.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.testBug69272;

-public class TestFieldInvalid {

-	int field;

-	/**@see #field* */

-	public void foo1() {}

-	/**@see #field*** ***/

-	public void foo2() {}

-	/**@see #field***

-	 */

-	public void foo3() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestFieldValid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestFieldValid.js
deleted file mode 100644
index 136a357..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestFieldValid.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package javadoc.testBug69272;

-public class TestFieldValid {

-	int field;

-	/**@see #field*/

-	public void foo1() {}

-	/**@see #field

-	*/

-	public void foo2() {}

-	/**@see #field    */

-	public void foo3() {}

-	/**@see #field****/

-	public void foo4() {}

-	/**@see #field		********/

-	public void foo5() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestMethInvalid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestMethInvalid.js
deleted file mode 100644
index 4b3a9a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestMethInvalid.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.testBug69272;

-public class TestMethInvalid {

-	/**@see Object#wait()* */

-	public void foo1() {}

-	/**@see Object#wait()*** ***/

-	public void foo2() {}

-	/**@see Object#wait()***

-	 */

-	public void foo3() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestMethValid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestMethValid.js
deleted file mode 100644
index e2aae08..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69272/TestMethValid.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.testBug69272;

-public class TestMethValid {

-	/**@see Object#wait()*/

-	public void foo1() {}

-	/**@see Object#wait()

-	*/

-	public void foo2() {}

-	/**@see Object#wait()    */

-	public void foo3() {}

-	/**@see Object#wait()****/

-	public void foo4() {}

-	/**@see Object#wait()		****/

-	public void foo5() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69275/TestA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69275/TestA.js
deleted file mode 100644
index 9c61f01..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69275/TestA.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.testBug69275;

-public class TestA {

-	/**@see <a href="http://www.eclipse.org">text</a>*/

-	void foo1() {}

-	/**@see <a href="http://www.eclipse.org">text</a>

-	*/

-	void foo2() {}

-	/**@see <a href="http://www.eclipse.org">text</a>		*/

-	void foo3() {}

-	/**@see <a href="http://www.eclipse.org">text</a>**/

-	void foo4() {}

-	/**@see <a href="http://www.eclipse.org">text</a>     *****/

-	void foo5() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69275/TestB.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69275/TestB.js
deleted file mode 100644
index 4fa5a31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69275/TestB.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package javadoc.testBug69275;

-public class TestA {

-	/**@see <a href="http://www.eclipse.org">text</a>* */

-	void foo1() {}

-	/**@see <a href="http://www.eclipse.org">text</a>     *** **/

-	void foo2() {}

-	/**@see <a href="http://www.eclipse.org">text</a>***

-	 */

-	void foo3() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestInvalid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestInvalid.js
deleted file mode 100644
index aca089e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestInvalid.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package javadoc.testBug69302;

-public class TestInvalid {

-	/**@see Unknown Unknown reference <a href="http://www.eclipse.org">text</a>*/

-	void foo1() {}

-	/**@see Unknown Unknown reference "Valid string reference"*/

-	void foo2() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestValid1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestValid1.js
deleted file mode 100644
index 3a017ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestValid1.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package javadoc.testBug69302;

-public class TestValid1 {

-	/**

-	 *	@see Object <a href="http://www.eclipse.org">Eclipse</a>

-	 */

-	void foo1() {}

-	/**

-	 *	@see Object "Valid string reference"

-	 */

-	void foo2() {}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestValid2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestValid2.js
deleted file mode 100644
index e522272..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug69302/TestValid2.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package javadoc.testBug69302;

-public class TestValid2 {

-	/**

-	 *	@see Unknown <a href="http://www.eclipse.org">Unknown</a>

-	 */

-	void foo1() {}

-	/**

-	 *	@see Unknown "Valid Unknown reference"

-	 */

-	void foo2() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestInvalid1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestInvalid1.js
deleted file mode 100644
index 6547aa7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestInvalid1.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package javadoc.testBug70892;

-/**

- * {@value "invalid"}

- * {@value <a href="invalid">invalid</a>} invalid

- * {@value #field}

- * {@value #foo}

- * {@value #foo()}

- */

-public class TestInvalid1 {

-	int field;

-	void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestInvalid2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestInvalid2.js
deleted file mode 100644
index 6ace3b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestInvalid2.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package javadoc.testBug70892;

-/**

- * {@value "invalid}

- * {@value <a href}

- * {@value <a href="invalid">invalid</a} invalid

- * {@value #xxx Unknown}

- * {@value #xxx() Unknown}

- */

-public class TestInvalid2 {

-	int field;

-	void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestValid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestValid.js
deleted file mode 100644
index fe38fff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug70892/TestValid.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package javadoc.testBug70892;

-/**

- * {@value}

- * {@value }

- * {@value #field}

- */

-public class TestValid {

-	static int field;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug73348/TestInvalid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug73348/TestInvalid.js
deleted file mode 100644
index 2f36a5d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug73348/TestInvalid.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.testBug73348;

-

-public class TestInvalid {

-	/**

-	 *	@return

-	 * @see Object

-	 */

-	public int foo1(int x) {return 0; }

-	/**

-	 *	@return    

-	 * @see Object

-	 */

-	public int foo2(int x) {return 0; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug73348/TestValid.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug73348/TestValid.js
deleted file mode 100644
index d5b89f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug73348/TestValid.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package javadoc.testBug73348; 

-public class TestValid {

-	/**

-	 *	@return 

-	 * int

-	 */

-	public int foo1() {return 0; }

-	/**

-	 *	@return 

-	 * int

-	 * @see Object

-	 */

-	public int foo2() {return 0; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/A.js
deleted file mode 100644
index a263904..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	int x;

-	void foo(boolean b) {

-		if (b)

-			x = 1; // comment

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/B.js
deleted file mode 100644
index 5d8cfe8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/B.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class B {

-	private void computeDocumentNames(String[] onDiskNames, int[] positions, Object indexedDocuments) {

-		int onDiskLength = onDiskNames.length;

-		Object[] docNames = new Object[0];

-		Object[] referenceTables = new Object[1];

-		if (onDiskLength == 0) {

-			// disk index was empty, so add every indexed document

-			for (int i = 0, l = referenceTables.length; i < l; i++)

-				if (referenceTables[i] != null)

-					indexedDocuments.equals(null); // remember each new document

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/C.js
deleted file mode 100644
index 2003344..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/javadoc/testBug77644/C.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class C {

-	Object pipeIn;

-	

-  public String foo() {

-    if (pipeIn == null)

-      getReader();                                // spawn parsing thread

-    return "ok";

-  }

-	

-  public String bar() {

-    if (pipeIn == null)

-      getReader();                                // spawn parsing thread

-    return "ok";

-  }

-  void getReader() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/AboutDialog.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/AboutDialog.js
deleted file mode 100644
index 021d078..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/AboutDialog.js
+++ /dev/null
@@ -1,67 +0,0 @@
-package junit.awtui;

-

-import java.awt.*;

-import java.awt.event.*;

-

-import junit.runner.Version;

-

-class AboutDialog extends Dialog {

-	public AboutDialog(Frame parent) {

-		super(parent);

-		

-		setResizable(false);

-		setLayout(new GridBagLayout());

-		setSize(330, 138);

-		setTitle("About");

-		

-		Button button= new Button("Close");

-		button.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					dispose();

-				}

-			}

-		);

-		

-		Label label1= new Label("JUnit");

-		label1.setFont(new Font("dialog", Font.PLAIN, 36));

-		

-		Label label2= new Label("JUnit "+Version.id()+ " by Kent Beck and Erich Gamma");

-		label2.setFont(new Font("dialog", Font.PLAIN, 14));

-		

-		Logo logo= new Logo();

-

-		GridBagConstraints constraintsLabel1= new GridBagConstraints();

-		constraintsLabel1.gridx = 3; constraintsLabel1.gridy = 0;

-		constraintsLabel1.gridwidth = 1; constraintsLabel1.gridheight = 1;

-		constraintsLabel1.anchor = GridBagConstraints.CENTER;

-		add(label1, constraintsLabel1);

-

-		GridBagConstraints constraintsLabel2= new GridBagConstraints();

-		constraintsLabel2.gridx = 2; constraintsLabel2.gridy = 1;

-		constraintsLabel2.gridwidth = 2; constraintsLabel2.gridheight = 1;

-		constraintsLabel2.anchor = GridBagConstraints.CENTER;

-		add(label2, constraintsLabel2);

-

-		GridBagConstraints constraintsButton1= new GridBagConstraints();

-		constraintsButton1.gridx = 2; constraintsButton1.gridy = 2;

-		constraintsButton1.gridwidth = 2; constraintsButton1.gridheight = 1;

-		constraintsButton1.anchor = GridBagConstraints.CENTER;

-		constraintsButton1.insets= new Insets(8, 0, 8, 0);

-		add(button, constraintsButton1);

-

-		GridBagConstraints constraintsLogo1= new GridBagConstraints();

-		constraintsLogo1.gridx = 2; constraintsLogo1.gridy = 0;

-		constraintsLogo1.gridwidth = 1; constraintsLogo1.gridheight = 1;

-		constraintsLogo1.anchor = GridBagConstraints.CENTER;

-		add(logo, constraintsLogo1);

-

-		addWindowListener(

-			new WindowAdapter() {

-				public void windowClosing(WindowEvent e) {

-					dispose();

-				}

-			}

-		);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/Logo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/Logo.js
deleted file mode 100644
index e9dde2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/Logo.js
+++ /dev/null
@@ -1,53 +0,0 @@
-package junit.awtui;

-

-import java.awt.*;

-import java.awt.image.*;

-import java.net.URL;

-

-import junit.runner.BaseTestRunner;

-

-public class Logo extends Canvas {

-	private Image fImage;

-	private int fWidth;

-	private int fHeight;

-	

-	public Logo() {

-		fImage= loadImage("logo.gif");

-		MediaTracker tracker= new MediaTracker(this);

-	  	tracker.addImage(fImage, 0);

-		try {

-			tracker.waitForAll();

-		} catch (Exception e) {

-		}

-

-		if (fImage != null) {

-			fWidth= fImage.getWidth(this);

-			fHeight= fImage.getHeight(this);

-		} else {

-			fWidth= 20;

-			fHeight= 20;

-		}

-		setSize(fWidth, fHeight);

-	}

-	

-	public Image loadImage(String name) {

-		Toolkit toolkit= Toolkit.getDefaultToolkit();

-		try {

-			URL url= BaseTestRunner.class.getResource(name);

-			return toolkit.createImage((ImageProducer) url.getContent());

-		} catch (Exception ex) {

-		}

-		return null;

-	}

-	

-	public void paint(Graphics g) {

-		paintBackground(g);

-		if (fImage != null)

-			g.drawImage(fImage, 0, 0, fWidth, fHeight, this);

-	}

-	

-	public void paintBackground( java.awt.Graphics g) {

-		g.setColor(SystemColor.control);

-		g.fillRect(0, 0, getBounds().width, getBounds().height);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/ProgressBar.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/ProgressBar.js
deleted file mode 100644
index 0c4a419..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/ProgressBar.js
+++ /dev/null
@@ -1,84 +0,0 @@
-package junit.awtui;

-

-import java.awt.*;

-

-public class ProgressBar extends Canvas {

-	public boolean fError= false;

-	public int fTotal= 0;

-	public int fProgress= 0;

-	public int fProgressX= 0;

-

-	public ProgressBar() {

-		super();

-		setSize(20, 30);

-	}

-	

-	private Color getStatusColor() {

-		if (fError)

-			return Color.red;

-		return Color.green;

-	}

-	

-	public void paint(Graphics g) {

-		paintBackground(g);

-		paintStatus(g);

-	}

-	

-	public void paintBackground(Graphics g) {

-		g.setColor(SystemColor.control);

-		Rectangle r= getBounds();

-		g.fillRect(0, 0, r.width, r.height);

-		g.setColor(Color.darkGray);

-		g.drawLine(0, 0, r.width-1, 0);

-		g.drawLine(0, 0, 0, r.height-1);

-		g.setColor(Color.white);

-		g.drawLine(r.width-1, 0, r.width-1, r.height-1);

-		g.drawLine(0, r.height-1, r.width-1, r.height-1);

-	}

-	

-	public void paintStatus(Graphics g) {

-		g.setColor(getStatusColor());

-		Rectangle r= new Rectangle(0, 0, fProgressX, getBounds().height);

-		g.fillRect(1, 1, r.width-1, r.height-2);

-	}

-	

-	private void paintStep(int startX, int endX) {

-		repaint(startX, 1, endX-startX, getBounds().height-2);

-	}

-	

-	public void reset() {

-		fProgressX= 1;

-		fProgress= 0;

-		fError= false;

-		paint(getGraphics());

-	}

-	

-	public int scale(int value) {

-		if (fTotal > 0)

-			return Math.max(1, value*(getBounds().width-1)/fTotal);

-		return value; 

-	}

-	

-	public void setBounds(int x, int y, int w, int h) {

-		super.setBounds(x, y, w, h);

-		fProgressX= scale(fProgress);

-	}

-	

-	public void start(int total) {

-		fTotal= total;

-		reset();

-	}

-	

-	public void step(boolean successful) {

-		fProgress++;

-		int x= fProgressX;

-

-		fProgressX= scale(fProgress);

-

-		if (!fError && !successful) {

-			fError= true;

-			x= 1;

-		}

-		paintStep(x, fProgressX);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/TestRunner.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/TestRunner.js
deleted file mode 100644
index 741bbb4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/awtui/TestRunner.js
+++ /dev/null
@@ -1,539 +0,0 @@
-package junit.awtui;

-

-import java.awt.*;

-import java.awt.event.*;

-import java.awt.image.ImageProducer;

-import java.util.Vector;

-

-import junit.framework.*;

-import junit.runner.*;

-

-/**

- * An AWT based user interface to run tests.

- * Enter the name of a class which either provides a static

- * suite method or is a subclass of TestCase.

- * <pre>

- * Synopsis: java junit.awtui.TestRunner [-noloading] [TestCase]

- * </pre>

- * TestRunner takes as an optional argument the name of the testcase class to be run.

- */

- public class TestRunner extends BaseTestRunner {

-	protected Frame fFrame;

-	protected Vector fExceptions;

-	protected Vector fFailedTests;

-	protected Thread fRunner;

-	protected TestResult fTestResult;

-

-	protected TextArea fTraceArea;

-	protected TextField fSuiteField;

-	protected Button fRun;

-	protected ProgressBar fProgressIndicator;

-	protected List fFailureList;

-	protected Logo fLogo;

-	protected Label fNumberOfErrors;

-	protected Label fNumberOfFailures;

-	protected Label fNumberOfRuns;

-	protected Button fQuitButton;

-	protected Button fRerunButton;

-	protected TextField fStatusLine;

-	protected Checkbox fUseLoadingRunner;

-

-	protected static final Font PLAIN_FONT= new Font("dialog", Font.PLAIN, 12);

-	private static final int GAP= 4;

-

-	public TestRunner() {

-	}

-

-	private void about() {

-		AboutDialog about= new AboutDialog(fFrame);

-		about.setModal(true);

-		about.setLocation(300, 300);

-		about.setVisible(true);

-	}

-

-	public void testStarted(String testName) {

-		showInfo("Running: "+testName);

-	}

-

-	public void testEnded(String testName) {

-		setLabelValue(fNumberOfRuns, fTestResult.runCount());

-		synchronized(this) {

-			fProgressIndicator.step(fTestResult.wasSuccessful());

-		}

-	}

-

-	public void testFailed(int status, Test test, Throwable t) {

-		switch (status) {

-			case TestRunListener.STATUS_ERROR:

-				fNumberOfErrors.setText(Integer.toString(fTestResult.errorCount()));

-				appendFailure("Error", test, t);

-				break;

-			case TestRunListener.STATUS_FAILURE:

-				fNumberOfFailures.setText(Integer.toString(fTestResult.failureCount()));

-				appendFailure("Failure", test, t);

-				break;

-		}

-	}

-

-	protected void addGrid(Panel p, Component co, int x, int y, int w, int fill, double wx, int anchor) {

-		GridBagConstraints c= new GridBagConstraints();

-		c.gridx= x; c.gridy= y;

-		c.gridwidth= w;

-		c.anchor= anchor;

-		c.weightx= wx;

-		c.fill= fill;

-		if (fill == GridBagConstraints.BOTH || fill == GridBagConstraints.VERTICAL)

-			c.weighty= 1.0;

-		c.insets= new Insets(y == 0 ? GAP : 0, x == 0 ? GAP : 0, GAP, GAP);

-		p.add(co, c);

-	}

-

-	private void appendFailure(String kind, Test test, Throwable t) {

-		kind+= ": " + test;

-		String msg= t.getMessage();

-		if (msg != null) {

-			kind+= ":" + truncate(msg);

-		}

-		fFailureList.add(kind);

-		fExceptions.addElement(t);

-		fFailedTests.addElement(test);

-		if (fFailureList.getItemCount() == 1) {

-			fFailureList.select(0);

-			failureSelected();

-		}

-	}

-	/**

-	 * Creates the JUnit menu. Clients override this

-	 * method to add additional menu items.

-	 */

-	protected Menu createJUnitMenu() {

-		Menu menu= new Menu("JUnit");

-		MenuItem mi= new MenuItem("About...");

-		mi.addActionListener(

-		    new ActionListener() {

-		        public void actionPerformed(ActionEvent event) {

-		            about();

-		        }

-		    }

-		);

-		menu.add(mi);

-

-		menu.addSeparator();

-		mi= new MenuItem("Exit");

-		mi.addActionListener(

-		    new ActionListener() {

-		        public void actionPerformed(ActionEvent event) {

-		            System.exit(0);

-		        }

-		    }

-		);

-		menu.add(mi);

-		return menu;

-	}

-

-	protected void createMenus(MenuBar mb) {

-		mb.add(createJUnitMenu());

-	}

-	protected TestResult createTestResult() {

-		return new TestResult();

-	}

-

-	protected Frame createUI(String suiteName) {

-		Frame frame= new Frame("JUnit");

-		Image icon= loadFrameIcon();

-		if (icon != null)

-			frame.setIconImage(icon);

-

-		frame.setLayout(new BorderLayout(0, 0));

-		frame.setBackground(SystemColor.control);

-		final Frame finalFrame= frame;

-

-		frame.addWindowListener(

-			new WindowAdapter() {

-				public void windowClosing(WindowEvent e) {

-					finalFrame.dispose();

-					System.exit(0);

-				}

-			}

-		);

-

-		MenuBar mb = new MenuBar();

-		createMenus(mb);

-		frame.setMenuBar(mb);

-

-		//---- first section

-		Label suiteLabel= new Label("Test class name:");

-

-		fSuiteField= new TextField(suiteName != null ? suiteName : "");

-		fSuiteField.selectAll();

-		fSuiteField.requestFocus();

-		fSuiteField.setFont(PLAIN_FONT);

-		fSuiteField.setColumns(40);

-		fSuiteField.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					runSuite();

-				}

-			}

-		);

-		fSuiteField.addTextListener(

-			new TextListener() {

-				public void textValueChanged(TextEvent e) {

-					fRun.setEnabled(fSuiteField.getText().length() > 0);

-					fStatusLine.setText("");

-				}

-			}

-		);

-		fRun= new Button("Run");

-		fRun.setEnabled(false);

-		fRun.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					runSuite();

-				}

-			}

-		);

-		boolean useLoader= useReloadingTestSuiteLoader();

-		fUseLoadingRunner= new Checkbox("Reload classes every run", useLoader);

-		if (inVAJava())

-			fUseLoadingRunner.setVisible(false);

-

-		//---- second section

-		fProgressIndicator= new ProgressBar();

-

-		//---- third section

-		fNumberOfErrors= new Label("0000", Label.RIGHT);

-		fNumberOfErrors.setText("0");

-		fNumberOfErrors.setFont(PLAIN_FONT);

-

-		fNumberOfFailures= new Label("0000", Label.RIGHT);

-		fNumberOfFailures.setText("0");

-		fNumberOfFailures.setFont(PLAIN_FONT);

-

-		fNumberOfRuns= new Label("0000", Label.RIGHT);

-		fNumberOfRuns.setText("0");

-		fNumberOfRuns.setFont(PLAIN_FONT);

-

-		Panel numbersPanel= createCounterPanel();

-

-		//---- fourth section

-		Label failureLabel= new Label("Errors and Failures:");

-

-		fFailureList= new List(5);

-		fFailureList.addItemListener(

-			new ItemListener() {

-				public void itemStateChanged(ItemEvent e) {

-					failureSelected();

-				}

-			}

-		);

-		fRerunButton= new Button("Run");

-		fRerunButton.setEnabled(false);

-		fRerunButton.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					rerun();

-				}

-			}

-		);

-

-		Panel failedPanel= new Panel(new GridLayout(0, 1, 0, 2));

-		failedPanel.add(fRerunButton);

-

-		fTraceArea= new TextArea();

-		fTraceArea.setRows(5);

-		fTraceArea.setColumns(60);

-

-		//---- fifth section

-		fStatusLine= new TextField();

-		fStatusLine.setFont(PLAIN_FONT);

-		fStatusLine.setEditable(false);

-		fStatusLine.setForeground(Color.red);

-

-		fQuitButton= new Button("Exit");

-		fQuitButton.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					System.exit(0);

-				}

-			}

-		);

-

-		// ---------

-		fLogo= new Logo();

-

-		//---- overall layout

-		Panel panel= new Panel(new GridBagLayout());

-

-		addGrid(panel, suiteLabel,		 0, 0, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.WEST);

-

-		addGrid(panel, fSuiteField, 	 0, 1, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.WEST);

-		addGrid(panel, fRun, 			 2, 1, 1, GridBagConstraints.HORIZONTAL, 	0.0, GridBagConstraints.CENTER);

-		addGrid(panel, fUseLoadingRunner, 0, 2, 2, GridBagConstraints.NONE, 	1.0, GridBagConstraints.WEST);

-		addGrid(panel, fProgressIndicator, 0, 3, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.WEST);

-		addGrid(panel, fLogo, 			 2, 3, 1, GridBagConstraints.NONE, 			0.0, GridBagConstraints.NORTH);

-

-		addGrid(panel, numbersPanel,	 0, 4, 2, GridBagConstraints.NONE, 			0.0, GridBagConstraints.WEST);

-

-		addGrid(panel, failureLabel, 	 0, 5, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.WEST);

-		addGrid(panel, fFailureList, 	 0, 6, 2, GridBagConstraints.BOTH, 			1.0, GridBagConstraints.WEST);

-		addGrid(panel, failedPanel, 	 2, 6, 1, GridBagConstraints.HORIZONTAL, 	0.0, GridBagConstraints.CENTER);

-		addGrid(panel, fTraceArea, 	     0, 7, 2, GridBagConstraints.BOTH, 			1.0, GridBagConstraints.WEST);

-

-		addGrid(panel, fStatusLine, 	 0, 8, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.CENTER);

-		addGrid(panel, fQuitButton, 	 2, 8, 1, GridBagConstraints.HORIZONTAL, 	0.0, GridBagConstraints.CENTER);

-

-		frame.add(panel, BorderLayout.CENTER);

-		frame.pack();

-		return frame;

-	}

-

-	protected Panel createCounterPanel() {

-		Panel numbersPanel= new Panel(new GridBagLayout());

-		addToCounterPanel(

-			numbersPanel,

-			new Label("Runs:"),

-			0, 0, 1, 1, 0.0, 0.0,

-          	GridBagConstraints.CENTER, GridBagConstraints.NONE,

-          	new Insets(0, 0, 0, 0) 

-		);	

-		addToCounterPanel(

-			numbersPanel,

-			fNumberOfRuns, 

-          	1, 0, 1, 1, 0.33, 0.0,

-          	GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,

-          	new Insets(0, 8, 0, 40)

-		);

-		addToCounterPanel(

-			numbersPanel,

-			new Label("Errors:"),

-          	2, 0, 1, 1, 0.0, 0.0,

-          	GridBagConstraints.CENTER, GridBagConstraints.NONE,

-          	new Insets(0, 8, 0, 0)

-		);

-		addToCounterPanel(

-			numbersPanel,

-			fNumberOfErrors,

-          	3, 0, 1, 1, 0.33, 0.0,

-          	GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,

-          	new Insets(0, 8, 0, 40)

-		);

-		addToCounterPanel(

-			numbersPanel,

-			new Label("Failures:"),

-          	4, 0, 1, 1, 0.0, 0.0,

-          	GridBagConstraints.CENTER, GridBagConstraints.NONE,

-          	new Insets(0, 8, 0, 0)

-		);	

-		addToCounterPanel(

-			numbersPanel,

-			fNumberOfFailures,

-          	5, 0, 1, 1, 0.33, 0.0,

-          	GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,

-          	new Insets(0, 8, 0, 0) 

-		);

-		return numbersPanel;

-	}

-

-	private void addToCounterPanel(Panel counter, Component comp,

-	    	int gridx, int gridy, int gridwidth, int gridheight,

-			double weightx, double weighty,

-			int anchor, int fill,

-			Insets insets) {

-		

-		GridBagConstraints constraints= new GridBagConstraints();

-		constraints.gridx= gridx;

-		constraints.gridy= gridy;

-		constraints.gridwidth= gridwidth;

-		constraints.gridheight= gridheight;

-		constraints.weightx= weightx;

-		constraints.weighty= weighty;

-		constraints.anchor= anchor;

-		constraints.fill= fill;

-		constraints.insets= insets;

-		counter.add(comp, constraints);

-	}

-

-

-	public void failureSelected() {

-		fRerunButton.setEnabled(isErrorSelected());

-		showErrorTrace();

-	}

-

-	private boolean isErrorSelected() {

-		return fFailureList.getSelectedIndex() != -1;

-	}

-

-	private Image loadFrameIcon() {

-		Toolkit toolkit= Toolkit.getDefaultToolkit();

-		try {

-			java.net.URL url= BaseTestRunner.class.getResource("smalllogo.gif");

-			return toolkit.createImage((ImageProducer) url.getContent());

-		} catch (Exception ex) {

-		}

-		return null;

-	}

-

-	public Thread getRunner() {

-		return fRunner;

-	}

-

-	public static void main(String[] args) {

-		new TestRunner().start(args);

-	}

-

-	public static void run(Class test) {

-		String args[]= { test.getName() };

-		main(args);

-	}

-

-	public void rerun() {

-		int index= fFailureList.getSelectedIndex();

-		if (index == -1)

-			return;

-

-		Test test= (Test)fFailedTests.elementAt(index);

-		rerunTest(test);

-	}

-

-	private void rerunTest(Test test) {

-		if (!(test instanceof TestCase)) {

-			showInfo("Could not reload "+ test.toString());

-			return;

-		}

-		Test reloadedTest= null;

-		TestCase rerunTest= (TestCase)test;

-		try {

-			Class reloadedTestClass= getLoader().reload(test.getClass()); 

-			reloadedTest= TestSuite.createTest(reloadedTestClass, rerunTest.getName());

-		} catch(Exception e) {

-			showInfo("Could not reload "+ test.toString());

-			return;

-		}

-		TestResult result= new TestResult();

-		reloadedTest.run(result);

-

-		String message= reloadedTest.toString();

-		if(result.wasSuccessful())

-			showInfo(message+" was successful");

-		else if (result.errorCount() == 1)

-			showStatus(message+" had an error");

-		else

-			showStatus(message+" had a failure");

-	}

-

-	protected void reset() {

-		setLabelValue(fNumberOfErrors, 0);

-		setLabelValue(fNumberOfFailures, 0);

-		setLabelValue(fNumberOfRuns, 0);

-		fProgressIndicator.reset();

-		fRerunButton.setEnabled(false);

-		fFailureList.removeAll();

-		fExceptions= new Vector(10);

-		fFailedTests= new Vector(10);

-		fTraceArea.setText("");

-

-	}

-

-	protected void runFailed(String message) {

-		showStatus(message);

-		fRun.setLabel("Run");

-		fRunner= null;

-	}

-

-	synchronized public void runSuite() {

-		if (fRunner != null && fTestResult != null) {

-			fTestResult.stop();

-		} else {

-			setLoading(shouldReload());

-			fRun.setLabel("Stop");

-			showInfo("Initializing...");

-			reset();

-

-			showInfo("Load Test Case...");

-

-			final Test testSuite= getTest(fSuiteField.getText());

-			if (testSuite != null) {

-				fRunner= new Thread() {

-					public void run() {

-						fTestResult= createTestResult();

-						fTestResult.addListener(TestRunner.this);

-						fProgressIndicator.start(testSuite.countTestCases());

-						showInfo("Running...");

-

-						long startTime= System.currentTimeMillis();

-						testSuite.run(fTestResult);

-

-						if (fTestResult.shouldStop()) {

-							showStatus("Stopped");

-						} else {

-							long endTime= System.currentTimeMillis();

-							long runTime= endTime-startTime;

-							showInfo("Finished: " + elapsedTimeAsString(runTime) + " seconds");

-						}

-						fTestResult= null;

-						fRun.setLabel("Run");

-						fRunner= null;

-						System.gc();

-					}

-				};

-				fRunner.start();

-			}

-		}

-	}

-

-	private boolean shouldReload() {

-		return !inVAJava() && fUseLoadingRunner.getState();

-	}

-

-	private void setLabelValue(Label label, int value) {

-		label.setText(Integer.toString(value));

-		label.invalidate();

-		label.getParent().validate();

-

-	}

-

-	public void setSuiteName(String suite) {

-		fSuiteField.setText(suite);

-	}

-

-	private void showErrorTrace() {

-		int index= fFailureList.getSelectedIndex();

-		if (index == -1)

-			return;

-

-		Throwable t= (Throwable) fExceptions.elementAt(index);

-		fTraceArea.setText(getFilteredTrace(t));

-	}

-

-

-	private void showInfo(String message) {

-		fStatusLine.setFont(PLAIN_FONT);

-		fStatusLine.setForeground(Color.black);

-		fStatusLine.setText(message);

-	}

-

-	protected void clearStatus() {

-		showStatus("");

-	}

-

-	private void showStatus(String status) {

-		fStatusLine.setFont(PLAIN_FONT);

-		fStatusLine.setForeground(Color.red);

-		fStatusLine.setText(status);

-	}

-	/**

-	 * Starts the TestRunner

-	 */

-	public void start(String[] args) {

-		String suiteName= processArguments(args);

-		fFrame= createUI(suiteName);

-		fFrame.setLocation(200, 200);

-		fFrame.setVisible(true);

-

-		if (suiteName != null) {

-			setSuiteName(suiteName);

-			runSuite();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/ActiveTestSuite.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/ActiveTestSuite.js
deleted file mode 100644
index 7f3e271..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/ActiveTestSuite.js
+++ /dev/null
@@ -1,64 +0,0 @@
-package junit.extensions;

-

-import junit.framework.*;

-

-/**

- * A TestSuite for active Tests. It runs each

- * test in a separate thread and waits until all

- * threads have terminated.

- * -- Aarhus Radisson Scandinavian Center 11th floor

- */ 

-public class ActiveTestSuite extends TestSuite {

-	private volatile int fActiveTestDeathCount;

-

-	public ActiveTestSuite() {

-	}

-		

-	public ActiveTestSuite(Class theClass) {

-		super(theClass);

-	}

-	

-	public ActiveTestSuite(String name) {

-		super (name);

-	}

-	

-	public ActiveTestSuite(Class theClass, String name) {

-		super(theClass, name);

-	}

-	

-	public void run(TestResult result) {

-		fActiveTestDeathCount= 0;

-		super.run(result);

-		waitUntilFinished();

-	}

-	

-	public void runTest(final Test test, final TestResult result) {

-		Thread t= new Thread() {

-			public void run() {

-				try {

-					// inlined due to limitation in VA/Java 

-					//ActiveTestSuite.super.runTest(test, result);

-					test.run(result);

-				} finally {

-					ActiveTestSuite.this.runFinished(test);

-				}

-			}

-		};

-		t.start();

-	}

-

-	synchronized void waitUntilFinished() {

-		while (fActiveTestDeathCount < testCount()) {

-			try {

-				wait();

-			} catch (InterruptedException e) {

-				return; // ignore

-			}

-		}

-	}

-	

-	synchronized public void runFinished(Test test) {

-		fActiveTestDeathCount++;

-		notifyAll();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/ExceptionTestCase.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/ExceptionTestCase.js
deleted file mode 100644
index 2bf79c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/ExceptionTestCase.js
+++ /dev/null
@@ -1,46 +0,0 @@
-package junit.extensions;

-

-import junit.framework.*;

-

-/**

- * A TestCase that expects an Exception of class fExpected to be thrown.

- * The other way to check that an expected exception is thrown is:

- * <pre>

- * try {

- *   shouldThrow();

- * }

- * catch (SpecialException e) {

- *   return;

- * }

- * fail("Expected SpecialException");

- * </pre>

- *

- * To use ExceptionTestCase, create a TestCase like:

- * <pre>

- * new ExceptionTestCase("testShouldThrow", SpecialException.class);

- * </pre>

- */

-public class ExceptionTestCase extends TestCase {

-	Class fExpected;

-

-	public ExceptionTestCase(String name, Class exception) {

-		super(name);

-		fExpected= exception;

-	}

-	/**

-	 * Execute the test method expecting that an Exception of

-	 * class fExpected or one of its subclasses will be thrown

-	 */

-	protected void runTest() throws Throwable {

-		try {

-			super.runTest();

-		}

-		catch (Exception e) {

-			if (fExpected.isAssignableFrom(e.getClass()))

-				return;

-			else

-				throw e;

-		}

-		fail("Expected exception " + fExpected);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/RepeatedTest.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/RepeatedTest.js
deleted file mode 100644
index 2eb3e0b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/RepeatedTest.js
+++ /dev/null
@@ -1,31 +0,0 @@
-package junit.extensions;

-

-import junit.framework.*;

-

-/**

- * A Decorator that runs a test repeatedly.

- *

- */

-public class RepeatedTest extends  TestDecorator {

-	private int fTimesRepeat;

-

-	public RepeatedTest(Test test, int repeat) {

-		super(test);

-		if (repeat < 0)

-			throw new IllegalArgumentException("Repetition count must be > 0");

-		fTimesRepeat= repeat;

-	}

-	public int countTestCases() {

-		return super.countTestCases()*fTimesRepeat;

-	}

-	public void run(TestResult result) {

-		for (int i= 0; i < fTimesRepeat; i++) {

-			if (result.shouldStop())

-				break;

-			super.run(result);

-		}

-	}

-	public String toString() {

-		return super.toString()+"(repeated)";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/TestDecorator.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/TestDecorator.js
deleted file mode 100644
index 1989300..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/TestDecorator.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package junit.extensions;

-

-import junit.framework.*;

-

-/**

- * A Decorator for Tests. Use TestDecorator as the base class

- * for defining new test decorators. Test decorator subclasses

- * can be introduced to add behaviour before or after a test

- * is run.

- *

- */

-public class TestDecorator extends Assert implements Test {

-	protected Test fTest;

-

-	public TestDecorator(Test test) {

-		fTest= test;

-	}

-	/**

-	 * The basic run behaviour.

-	 */

-	public void basicRun(TestResult result) {

-		fTest.run(result);

-	}

-	public int countTestCases() {

-		return fTest.countTestCases();

-	}

-	public void run(TestResult result) {

-		basicRun(result);

-	}

-

-	public String toString() {

-		return fTest.toString();

-	}

-

-	public Test getTest() {

-		return fTest;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/TestSetup.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/TestSetup.js
deleted file mode 100644
index a4e9e3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/extensions/TestSetup.js
+++ /dev/null
@@ -1,37 +0,0 @@
-package junit.extensions;

-

-import junit.framework.*;

-

-/**

- * A Decorator to set up and tear down additional fixture state.

- * Subclass TestSetup and insert it into your tests when you want

- * to set up additional state once before the tests are run.

- */

-public class TestSetup extends TestDecorator {

-

-	public TestSetup(Test test) {

-		super(test);

-	}

-	public void run(final TestResult result) {

-		Protectable p= new Protectable() {

-			public void protect() throws Exception {

-				setUp();

-				basicRun(result);

-				tearDown();

-			}

-		};

-		result.runProtected(this, p);

-	}

-	/**

-	 * Sets up the fixture. Override to set up additional fixture

-	 * state.

-	 */

-	protected void setUp() throws Exception {

-	}

-	/**

-	 * Tears down the fixture. Override to tear down the additional

-	 * fixture state.

-	 */

-	protected void tearDown() throws Exception {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Assert.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Assert.js
deleted file mode 100644
index 31776f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Assert.js
+++ /dev/null
@@ -1,291 +0,0 @@
-package junit.framework;

-

-/**

- * A set of assert methods.  Messages are only displayed when an assert fails.

- */

-

-public class Assert {

-	/**

-	 * Protect constructor since it is a static only class

-	 */

-	protected Assert() {

-	}

-

-	/**

-	 * Asserts that a condition is true. If it isn't it throws

-	 * an AssertionFailedError with the given message.

-	 */

-	static public void assertTrue(String message, boolean condition) {

-		if (!condition)

-			fail(message);

-	}

-	/**

-	 * Asserts that a condition is true. If it isn't it throws

-	 * an AssertionFailedError.

-	 */

-	static public void assertTrue(boolean condition) {

-		assertTrue(null, condition);

-	}

-	/**

-	 * Asserts that a condition is false. If it isn't it throws

-	 * an AssertionFailedError with the given message.

-	 */

-	static public void assertFalse(String message, boolean condition) {

-		assertTrue(message, !condition);

-	}

-	/**

-	 * Asserts that a condition is false. If it isn't it throws

-	 * an AssertionFailedError.

-	 */

-	static public void assertFalse(boolean condition) {

-		assertFalse(null, condition);

-	}

-	/**

-	 * Fails a test with the given message.

-	 */

-	static public void fail(String message) {

-		throw new AssertionFailedError(message);

-	}

-	/**

-	 * Fails a test with no message.

-	 */

-	static public void fail() {

-		fail(null);

-	}

-	/**

-	 * Asserts that two objects are equal. If they are not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-	static public void assertEquals(String message, Object expected, Object actual) {

-		if (expected == null && actual == null)

-			return;

-		if (expected != null && expected.equals(actual))

-			return;

-		failNotEquals(message, expected, actual);

-	}

-	/**

-	 * Asserts that two objects are equal. If they are not

-	 * an AssertionFailedError is thrown.

-	 */

-	static public void assertEquals(Object expected, Object actual) {

-	    assertEquals(null, expected, actual);

-	}

-	/**

-	 * Asserts that two Strings are equal. 

-	 */

-	static public void assertEquals(String message, String expected, String actual) {

-		if (expected == null && actual == null)

-			return;

-		if (expected != null && expected.equals(actual))

-			return;

-		throw new ComparisonFailure(message, expected, actual);

-	}

-	/**

-	 * Asserts that two Strings are equal. 

-	 */

-	static public void assertEquals(String expected, String actual) {

-	    assertEquals(null, expected, actual);

-	}

-	/**

-	 * Asserts that two doubles are equal concerning a delta.  If they are not

-	 * an AssertionFailedError is thrown with the given message.  If the expected

-	 * value is infinity then the delta value is ignored.

-	 */

-	static public void assertEquals(String message, double expected, double actual, double delta) {

-		// handle infinity specially since subtracting to infinite values gives NaN and the

-		// the following test fails

-		if (Double.isInfinite(expected)) {

-			if (!(expected == actual))

-				failNotEquals(message, new Double(expected), new Double(actual));

-		} else if (!(Math.abs(expected-actual) <= delta)) // Because comparison with NaN always returns false

-			failNotEquals(message, new Double(expected), new Double(actual));

-	}

-	/**

-	 * Asserts that two doubles are equal concerning a delta. If the expected

-	 * value is infinity then the delta value is ignored.

-	 */

-	static public void assertEquals(double expected, double actual, double delta) {

-	    assertEquals(null, expected, actual, delta);

-	}

-	/**

-	 * Asserts that two floats are equal concerning a delta. If they are not

-	 * an AssertionFailedError is thrown with the given message.  If the expected

-	 * value is infinity then the delta value is ignored.

-	 */

-	static public void assertEquals(String message, float expected, float actual, float delta) {

- 		// handle infinity specially since subtracting to infinite values gives NaN and the

-		// the following test fails

-		if (Float.isInfinite(expected)) {

-			if (!(expected == actual))

-				failNotEquals(message, new Float(expected), new Float(actual));

-		} else if (!(Math.abs(expected-actual) <= delta))

-      		failNotEquals(message, new Float(expected), new Float(actual));

-	}

-	/**

-	 * Asserts that two floats are equal concerning a delta. If the expected

-	 * value is infinity then the delta value is ignored.

-	 */

-	static public void assertEquals(float expected, float actual, float delta) {

-		assertEquals(null, expected, actual, delta);

-	}

-	/**

-	 * Asserts that two longs are equal. If they are not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-	static public void assertEquals(String message, long expected, long actual) {

-	    assertEquals(message, new Long(expected), new Long(actual));

-	}

-	/**

-	 * Asserts that two longs are equal.

-	 */

-	static public void assertEquals(long expected, long actual) {

-	    assertEquals(null, expected, actual);

-	}

-	/**

-	 * Asserts that two booleans are equal. If they are not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-	static public void assertEquals(String message, boolean expected, boolean actual) {

-    		assertEquals(message, new Boolean(expected), new Boolean(actual));

-  	}

-	/**

-	 * Asserts that two booleans are equal.

- 	 */

-	static public void assertEquals(boolean expected, boolean actual) {

-		assertEquals(null, expected, actual);

-	}

-	/**

-	 * Asserts that two bytes are equal. If they are not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-  	static public void assertEquals(String message, byte expected, byte actual) {

-		assertEquals(message, new Byte(expected), new Byte(actual));

-	}

-	/**

-   	 * Asserts that two bytes are equal.

-	 */

-	static public void assertEquals(byte expected, byte actual) {

-		assertEquals(null, expected, actual);

-	}

-	/**

-	 * Asserts that two chars are equal. If they are not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-  	static public void assertEquals(String message, char expected, char actual) {

-    		assertEquals(message, new Character(expected), new Character(actual));

-  	}

-	/**

-	 * Asserts that two chars are equal.

-	 */

-  	static public void assertEquals(char expected, char actual) {

-		assertEquals(null, expected, actual);

-	}

-	/**

-	 * Asserts that two shorts are equal. If they are not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-	static public void assertEquals(String message, short expected, short actual) {

-    		assertEquals(message, new Short(expected), new Short(actual));

-	}

-  	/**

-	 * Asserts that two shorts are equal.

-	 */

-	static public void assertEquals(short expected, short actual) {

-		assertEquals(null, expected, actual);

-	}

-	/**

-	 * Asserts that two ints are equal. If they are not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-  	static public void assertEquals(String message, int expected, int actual) {

-		assertEquals(message, new Integer(expected), new Integer(actual));

-  	}

-  	/**

-   	 * Asserts that two ints are equal.

-	 */

-  	static public void assertEquals(int expected, int actual) {

-  		assertEquals(null, expected, actual);

-	}

-	/**

-	 * Asserts that an object isn't null.

-	 */

-	static public void assertNotNull(Object object) {

-		assertNotNull(null, object);

-	}

-	/**

-	 * Asserts that an object isn't null. If it is

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-	static public void assertNotNull(String message, Object object) {

-		assertTrue(message, object != null);

-	}

-	/**

-	 * Asserts that an object is null.

-	 */

-	static public void assertNull(Object object) {

-		assertNull(null, object);

-	}

-	/**

-	 * Asserts that an object is null.  If it is not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-	static public void assertNull(String message, Object object) {

-		assertTrue(message, object == null);

-	}

-	/**

-	 * Asserts that two objects refer to the same object. If they are not

-	 * an AssertionFailedError is thrown with the given message.

-	 */

-	static public void assertSame(String message, Object expected, Object actual) {

-		if (expected == actual)

-			return;

-		failNotSame(message, expected, actual);

-	}

-	/**

-	 * Asserts that two objects refer to the same object. If they are not

-	 * the same an AssertionFailedError is thrown.

-	 */

-	static public void assertSame(Object expected, Object actual) {

-	    assertSame(null, expected, actual);

-	}

- 	/**

- 	 * Asserts that two objects refer to the same object. If they are not

- 	 * an AssertionFailedError is thrown with the given message.

- 	 */

-	static public void assertNotSame(String message, Object expected, Object actual) {

-		if (expected == actual)

-			failSame(message);

-	}

-	/**

-	 * Asserts that two objects refer to the same object. If they are not

-	 * the same an AssertionFailedError is thrown.

-	 */

-	static public void assertNotSame(Object expected, Object actual) {

-		assertNotSame(null, expected, actual);

-	}

-

-	static private void failSame(String message) {

-		String formatted= "";

- 		if (message != null)

- 			formatted= message+" ";

- 		fail(formatted+"expected not same");

-	}

-

-	static private void failNotSame(String message, Object expected, Object actual) {

-		String formatted= "";

-		if (message != null)

-			formatted= message+" ";

-		fail(formatted+"expected same:<"+expected+"> was not:<"+actual+">");

-	}

-

-	static private void failNotEquals(String message, Object expected, Object actual) {

-		fail(format(message, expected, actual));

-	}

-

-	static String format(String message, Object expected, Object actual) {

-		String formatted= "";

-		if (message != null)

-			formatted= message+" ";

-		return formatted+"expected:<"+expected+"> but was:<"+actual+">";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/AssertionFailedError.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/AssertionFailedError.js
deleted file mode 100644
index d09cd10..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/AssertionFailedError.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package junit.framework;

-

-/**

- * Thrown when an assertion failed.

- */

-public class AssertionFailedError extends Error {

-

-	public AssertionFailedError () {

-	}

-	public AssertionFailedError (String message) {

-		super (message);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/ComparisonFailure.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/ComparisonFailure.js
deleted file mode 100644
index d0f55d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/ComparisonFailure.js
+++ /dev/null
@@ -1,68 +0,0 @@
-package junit.framework;

-

-/**

- * Thrown when an assert equals for Strings failed.

- * 

- * Inspired by a patch from Alex Chaffee mailto:alex@purpletech.com

- */

-public class ComparisonFailure extends AssertionFailedError {

-	private String fExpected;

-	private String fActual;

-

-	/**

-	 * Constructs a comparison failure.

-	 * @param message the identifying message or null

-	 * @param expected the expected string value

-	 * @param actual the actual string value

-	 */

-	public ComparisonFailure (String message, String expected, String actual) {

-		super (message);

-		fExpected= expected;

-		fActual= actual;

-	}

-	

-	/**

-	 * Returns "..." in place of common prefix and "..." in

-	 * place of common suffix between expected and actual.

-	 * 

-	 * @see java.lang.Throwable#getMessage()

-	 */

-	public String getMessage() {

-		if (fExpected == null || fActual == null)

-			return Assert.format(super.getMessage(), fExpected, fActual);

-			

-		int end= Math.min(fExpected.length(), fActual.length());

-		

-		int i= 0;

-		for(; i < end; i++) {

-			if (fExpected.charAt(i) != fActual.charAt(i))

-				break;

-		}

-		int j= fExpected.length()-1;

-		int k= fActual.length()-1;

-		for (; k >= i && j >= i; k--,j--) {

-			if (fExpected.charAt(j) != fActual.charAt(k))

-				break;

-		}

-		String actual, expected;

-		

-		// equal strings

-		if (j < i && k < i) {

-			expected= fExpected;

-			actual= fActual;

-		} else {

-			expected= fExpected.substring(i, j+1);

-			actual= fActual.substring(i, k+1);

-			if (i <= end && i > 0) {

-				expected= "..."+expected;

-				actual= "..."+actual;

-			}

-			

-			if (j < fExpected.length()-1)

-				expected= expected+"...";

-			if (k < fActual.length()-1)

-				actual= actual+"...";

-		}	

-		return Assert.format(super.getMessage(), expected, actual);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Protectable.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Protectable.js
deleted file mode 100644
index 509ddc2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Protectable.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package junit.framework;

-

-/**

- * A <em>Protectable</em> can be run and can throw a Throwable.

- *

- * @see TestResult

- */

-public interface Protectable {

-

-	/**

-	 * Run the the following method protected.

-	 */

-	public abstract void protect() throws Throwable;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Test.js
deleted file mode 100644
index 4bb25b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/Test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package junit.framework;

-

-/**

- * A <em>Test</em> can be run and collect its results.

- *

- * @see TestResult

- */

-public interface Test {

-	/**

-	 * Counts the number of test cases that will be run by this test.

-	 */

-	public abstract int countTestCases();

-	/**

-	 * Runs a test and collects its result in a TestResult instance.

-	 */

-	public abstract void run(TestResult result);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestCase.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestCase.js
deleted file mode 100644
index 9ac7b8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestCase.js
+++ /dev/null
@@ -1,197 +0,0 @@
-package junit.framework;

-

-import java.lang.reflect.*;

-

-/**

- * A test case defines the fixture to run multiple tests. To define a test case<br>

- * 1) implement a subclass of TestCase<br>

- * 2) define instance variables that store the state of the fixture<br>

- * 3) initialize the fixture state by overriding <code>setUp</code><br>

- * 4) clean-up after a test by overriding <code>tearDown</code>.<br>

- * Each test runs in its own fixture so there

- * can be no side effects among test runs.

- * Here is an example:

- * <pre>

- * public class MathTest extends TestCase {

- *     protected double fValue1;

- *     protected double fValue2;

- *

- *    protected void setUp() {

- *         fValue1= 2.0;

- *         fValue2= 3.0;

- *     }

- * }

- * </pre>

- *

- * For each test implement a method which interacts

- * with the fixture. Verify the expected results with assertions specified

- * by calling <code>assertTrue</code> with a boolean.

- * <pre>

- *    public void testAdd() {

- *        double result= fValue1 + fValue2;

- *        assertTrue(result == 5.0);

- *    }

- * </pre>

- * Once the methods are defined you can run them. The framework supports

- * both a static type safe and more dynamic way to run a test.

- * In the static way you override the runTest method and define the method to

- * be invoked. A convenient way to do so is with an anonymous inner class.

- * <pre>

- * TestCase test= new MathTest("add") {

- *        public void runTest() {

- *            testAdd();

- *        }

- * };

- * test.run();

- * </pre>

- * The dynamic way uses reflection to implement <code>runTest</code>. It dynamically finds

- * and invokes a method.

- * In this case the name of the test case has to correspond to the test method

- * to be run.

- * <pre>

- * TestCase= new MathTest("testAdd");

- * test.run();

- * </pre>

- * The tests to be run can be collected into a TestSuite. JUnit provides

- * different <i>test runners</i> which can run a test suite and collect the results.

- * A test runner either expects a static method <code>suite</code> as the entry

- * point to get a test to run or it will extract the suite automatically.

- * <pre>

- * public static Test suite() {

- *      suite.addTest(new MathTest("testAdd"));

- *      suite.addTest(new MathTest("testDivideByZero"));

- *      return suite;

- *  }

- * </pre>

- * @see TestResult

- * @see TestSuite

- */

-

-public abstract class TestCase extends Assert implements Test {

-	/**

-	 * the name of the test case

-	 */

-	private String fName;

-

-	/**

-	 * No-arg constructor to enable serialization. This method

-	 * is not intended to be used by mere mortals without calling setName().

-	 */

-	public TestCase() {

-		fName= null;

-	}

-	/**

-	 * Constructs a test case with the given name.

-	 */

-	public TestCase(String name) {

-		fName= name;

-	}

-	/**

-	 * Counts the number of test cases executed by run(TestResult result).

-	 */

-	public int countTestCases() {

-		return 1;

-	}

-	/**

-	 * Creates a default TestResult object

-	 *

-	 * @see TestResult

-	 */

-	protected TestResult createResult() {

-	    return new TestResult();

-	}

-	/**

-	 * A convenience method to run this test, collecting the results with a

-	 * default TestResult object.

-	 *

-	 * @see TestResult

-	 */

-	public TestResult run() {

-		TestResult result= createResult();

-		run(result);

-		return result;

-	}

-	/**

-	 * Runs the test case and collects the results in TestResult.

-	 */

-	public void run(TestResult result) {

-		result.run(this);

-	}

-	/**

-	 * Runs the bare test sequence.

-	 * @exception Throwable if any exception is thrown

-	 */

-	public void runBare() throws Throwable {

-		setUp();

-		try {

-			runTest();

-		}

-		finally {

-			tearDown();

-		}

-	}

-	/**

-	 * Override to run the test and assert its state.

-	 * @exception Throwable if any exception is thrown

-	 */

-	protected void runTest() throws Throwable {

-		assertNotNull(fName);

-		Method runMethod= null;

-		try {

-			// use getMethod to get all public inherited

-			// methods. getDeclaredMethods returns all

-			// methods of this class but excludes the

-			// inherited ones.

-			runMethod= getClass().getMethod(fName, null);

-		} catch (NoSuchMethodException e) {

-			fail("Method \""+fName+"\" not found");

-		}

-		if (!Modifier.isPublic(runMethod.getModifiers())) {

-			fail("Method \""+fName+"\" should be public");

-		}

-

-		try {

-			runMethod.invoke(this, new Class[0]);

-		}

-		catch (InvocationTargetException e) {

-			e.fillInStackTrace();

-			throw e.getTargetException();

-		}

-		catch (IllegalAccessException e) {

-			e.fillInStackTrace();

-			throw e;

-		}

-	}

-	/**

-	 * Sets up the fixture, for example, open a network connection.

-	 * This method is called before a test is executed.

-	 */

-	protected void setUp() throws Exception {

-	}

-	/**

-	 * Tears down the fixture, for example, close a network connection.

-	 * This method is called after a test is executed.

-	 */

-	protected void tearDown() throws Exception {

-	}

-	/**

-	 * Returns a string representation of the test case

-	 */

-	public String toString() {

-	    return getName() + "(" + getClass().getName() + ")";

-	}

-	/**

-	 * Gets the name of a TestCase

-	 * @return returns a String

-	 */

-	public String getName() {

-		return fName;

-	}

-	/**

-	 * Sets the name of a TestCase

-	 * @param name The name to set

-	 */

-	public void setName(String name) {

-		fName= name;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestFailure.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestFailure.js
deleted file mode 100644
index 7734499..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestFailure.js
+++ /dev/null
@@ -1,57 +0,0 @@
-package junit.framework;

-

-import java.io.PrintWriter;

-import java.io.StringWriter;

-

-

-/**

- * A <code>TestFailure</code> collects a failed test together with

- * the caught exception.

- * @see TestResult

- */

-public class TestFailure extends Object {

-	protected Test fFailedTest;

-	protected Throwable fThrownException;

-	

-

-	/**

-	 * Constructs a TestFailure with the given test and exception.

-	 */

-	public TestFailure(Test failedTest, Throwable thrownException) {

-		fFailedTest= failedTest;

-		fThrownException= thrownException;

-	}

-	/**

-	 * Gets the failed test.

-	 */

-	public Test failedTest() {

-	    return fFailedTest;

-	}

-	/**

-	 * Gets the thrown exception.

-	 */

-	public Throwable thrownException() {

-	    return fThrownException;

-	}

-	/**

-	 * Returns a short description of the failure.

-	 */

-	public String toString() {

-	    StringBuffer buffer= new StringBuffer();

-	    buffer.append(fFailedTest+": "+fThrownException.getMessage());

-	    return buffer.toString();

-	}

-	public String trace() {

-		StringWriter stringWriter= new StringWriter();

-		PrintWriter writer= new PrintWriter(stringWriter);

-		thrownException().printStackTrace(writer);

-		StringBuffer buffer= stringWriter.getBuffer();

-		return buffer.toString();

-	}

-	public String exceptionMessage() {

-		return thrownException().getMessage();

-	}

-	public boolean isFailure() {

-		return thrownException() instanceof AssertionFailedError;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestListener.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestListener.js
deleted file mode 100644
index 6b0b7bf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestListener.js
+++ /dev/null
@@ -1,23 +0,0 @@
-package junit.framework;

-

-/**

- * A Listener for test progress

- */

-public interface TestListener {

-	/**

- 	 * An error occurred.

- 	 */

-	public void addError(Test test, Throwable t);

-	/**

- 	 * A failure occurred.

- 	 */

- 	public void addFailure(Test test, AssertionFailedError t);  

-	/**

-	 * A test ended.

-	 */

- 	public void endTest(Test test); 

-	/**

-	 * A test started.

-	 */

-	public void startTest(Test test);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestResult.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestResult.js
deleted file mode 100644
index 0d9e53e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestResult.js
+++ /dev/null
@@ -1,166 +0,0 @@
-package junit.framework;

-

-import java.util.Vector;

-import java.util.Enumeration;

-

-/**

- * A <code>TestResult</code> collects the results of executing

- * a test case. It is an instance of the Collecting Parameter pattern.

- * The test framework distinguishes between <i>failures</i> and <i>errors</i>.

- * A failure is anticipated and checked for with assertions. Errors are

- * unanticipated problems like an <code>ArrayIndexOutOfBoundsException</code>.

- *

- * @see Test

- */

-public class TestResult extends Object {

-	protected Vector fFailures;

-	protected Vector fErrors;

-	protected Vector fListeners;

-	protected int fRunTests;

-	private boolean fStop;

-	

-	public TestResult() {

-		fFailures= new Vector();

-		fErrors= new Vector();

-		fListeners= new Vector();

-		fRunTests= 0;

-		fStop= false;

-	}

-	/**

-	 * Adds an error to the list of errors. The passed in exception

-	 * caused the error.

-	 */

-	public synchronized void addError(Test test, Throwable t) {

-		fErrors.addElement(new TestFailure(test, t));

-		for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) {

-			((TestListener)e.nextElement()).addError(test, t);

-		}

-	}

-	/**

-	 * Adds a failure to the list of failures. The passed in exception

-	 * caused the failure.

-	 */

-	public synchronized void addFailure(Test test, AssertionFailedError t) {

-		fFailures.addElement(new TestFailure(test, t));

-		for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) {

-			((TestListener)e.nextElement()).addFailure(test, t);

-		}

-	}

-	/**

-	 * Registers a TestListener

-	 */

-	public synchronized void addListener(TestListener listener) {

-		fListeners.addElement(listener);

-	}

-	/**

-	 * Unregisters a TestListener

-	 */

-	public synchronized void removeListener(TestListener listener) {

-		fListeners.removeElement(listener);

-	}

-	/**

-	 * Returns a copy of the listeners.

-	 */

-	private synchronized Vector cloneListeners() {

-		return (Vector)fListeners.clone();

-	}

-	/**

-	 * Informs the result that a test was completed.

-	 */

-	public void endTest(Test test) {

-		for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) {

-			((TestListener)e.nextElement()).endTest(test);

-		}

-	}

-	/**

-	 * Gets the number of detected errors.

-	 */

-	public synchronized int errorCount() {

-		return fErrors.size();

-	}

-	/**

-	 * Returns an Enumeration for the errors

-	 */

-	public synchronized Enumeration errors() {

-		return fErrors.elements();

-	}

-	/**

-	 * Gets the number of detected failures.

-	 */

-	public synchronized int failureCount() {

-		return fFailures.size();

-	}

-	/**

-	 * Returns an Enumeration for the failures

-	 */

-	public synchronized Enumeration failures() {

-		return fFailures.elements();

-	}

-	/**

-	 * Runs a TestCase.

-	 */

-	protected void run(final TestCase test) {

-		startTest(test);

-		Protectable p= new Protectable() {

-			public void protect() throws Throwable {

-				test.runBare();

-			}

-		};

-		runProtected(test, p);

-

-		endTest(test);

-	}

-	/**

-	 * Gets the number of run tests.

-	 */

-	public synchronized int runCount() {

-		return fRunTests;

-	}

-	/**

-	 * Runs a TestCase.

-	 */

-	public void runProtected(final Test test, Protectable p) {

-		try {

-			p.protect();

-		} 

-		catch (AssertionFailedError e) {

-			addFailure(test, e);

-		}

-		catch (ThreadDeath e) { // don't catch ThreadDeath by accident

-			throw e;

-		}

-		catch (Throwable e) {

-			addError(test, e);

-		}

-	}

-	/**

-	 * Checks whether the test run should stop

-	 */

-	public synchronized boolean shouldStop() {

-		return fStop;

-	}

-	/**

-	 * Informs the result that a test will be started.

-	 */

-	public void startTest(Test test) {

-		final int count= test.countTestCases();

-		synchronized(this) {

-			fRunTests+= count;

-		}

-		for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) {

-			((TestListener)e.nextElement()).startTest(test);

-		}

-	}

-	/**

-	 * Marks that the test run should stop.

-	 */

-	public synchronized void stop() {

-		fStop= true;

-	}

-	/**

-	 * Returns whether the entire test was successful or not.

-	 */

-	public synchronized boolean wasSuccessful() {

-		return failureCount() == 0 && errorCount() == 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestSuite.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestSuite.js
deleted file mode 100644
index 7645925..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/framework/TestSuite.js
+++ /dev/null
@@ -1,267 +0,0 @@
-package junit.framework;

-

-import java.util.Vector;

-import java.util.Enumeration;

-import java.io.PrintWriter;

-import java.io.StringWriter;

-import java.lang.reflect.*;

-import java.lang.reflect.Constructor;

-

-/**

- * A <code>TestSuite</code> is a <code>Composite</code> of Tests.

- * It runs a collection of test cases. Here is an example using

- * the dynamic test definition.

- * <pre>

- * TestSuite suite= new TestSuite();

- * suite.addTest(new MathTest("testAdd"));

- * suite.addTest(new MathTest("testDivideByZero"));

- * </pre>

- * Alternatively, a TestSuite can extract the tests to be run automatically.

- * To do so you pass the class of your TestCase class to the

- * TestSuite constructor.

- * <pre>

- * TestSuite suite= new TestSuite(MathTest.class);

- * </pre>

- * This constructor creates a suite with all the methods

- * starting with "test" that take no arguments.

- *

- * @see Test

- */

-public class TestSuite implements Test {

-

-	private Vector fTests= new Vector(10);

-	private String fName;

-

-    /**

-	 * Constructs an empty TestSuite.

-	 */

-	public TestSuite() {

-	}

-	

-	/**

-	 * Constructs a TestSuite from the given class with the given name.

-	 * @see TestSuite#TestSuite(Class)

-	 */

-	public TestSuite(Class theClass, String name) {

-		this(theClass);

-		setName(name);

-	}

-	

-	/**

-	 * Constructs a TestSuite from the given class. Adds all the methods

-	 * starting with "test" as test cases to the suite.

-	 * Parts of this method was written at 2337 meters in the Hüffihütte,

-	 * Kanton Uri

-	 */

-	 public TestSuite(final Class theClass) {

-		fName= theClass.getName();

-		try {

-			getTestConstructor(theClass); // Avoid generating multiple error messages

-		} catch (NoSuchMethodException e) {

-			addTest(warning("Class "+theClass.getName()+" has no public constructor TestCase(String name) or TestCase()"));

-			return;

-		}

-

-		if (!Modifier.isPublic(theClass.getModifiers())) {

-			addTest(warning("Class "+theClass.getName()+" is not public"));

-			return;

-		}

-

-		Class superClass= theClass;

-		Vector names= new Vector();

-		while (Test.class.isAssignableFrom(superClass)) {

-			Method[] methods= superClass.getDeclaredMethods();

-			for (int i= 0; i < methods.length; i++) {

-				addTestMethod(methods[i], names, theClass);

-			}

-			superClass= superClass.getSuperclass();

-		}

-		if (fTests.size() == 0)

-			addTest(warning("No tests found in "+theClass.getName()));

-	}

-	

-   	/**

-	 * Constructs an empty TestSuite.

-	 */

-	public TestSuite(String name) {

-		setName(name);

-	}

-	

-	/**

-	 * Adds a test to the suite.

-	 */

-	public void addTest(Test test) {

-		fTests.addElement(test);

-	}

-

-	/**

-	 * Adds the tests from the given class to the suite

-	 */

-	public void addTestSuite(Class testClass) {

-		addTest(new TestSuite(testClass));

-	}

-

-	private void addTestMethod(Method m, Vector names, Class theClass) {

-		String name= m.getName();

-		if (names.contains(name))

-			return;

-		if (! isPublicTestMethod(m)) {

-			if (isTestMethod(m))

-				addTest(warning("Test method isn't public: "+m.getName()));

-			return;

-		}

-		names.addElement(name);

-		addTest(createTest(theClass, name));

-	}

-

-	/**

-	 * ...as the moon sets over the early morning Merlin, Oregon

-	 * mountains, our intrepid adventurers type...

-	 */

-	static public Test createTest(Class theClass, String name) {

-		Constructor constructor;

-		try {

-			constructor= getTestConstructor(theClass);

-		} catch (NoSuchMethodException e) {

-			return warning("Class "+theClass.getName()+" has no public constructor TestCase(String name) or TestCase()");

-		}

-		Object test;

-		try {

-			if (constructor.getParameterTypes().length == 0) {

-				test= constructor.newInstance(new Object[0]);

-				if (test instanceof TestCase)

-					((TestCase) test).setName(name);

-			} else {

-				test= constructor.newInstance(new Object[]{name});

-			}

-		} catch (InstantiationException e) {

-			return(warning("Cannot instantiate test case: "+name+" ("+exceptionToString(e)+")"));

-		} catch (InvocationTargetException e) {

-			return(warning("Exception in constructor: "+name+" ("+exceptionToString(e.getTargetException())+")"));

-		} catch (IllegalAccessException e) {

-			return(warning("Cannot access test case: "+name+" ("+exceptionToString(e)+")"));

-		}

-		return (Test) test;

-	}

-

-	/**

-	 * Converts the stack trace into a string

-	 */

-	private static String exceptionToString(Throwable t) {

-		StringWriter stringWriter= new StringWriter();

-		PrintWriter writer= new PrintWriter(stringWriter);

-		t.printStackTrace(writer);

-		return stringWriter.toString();

-

-	}

-	

-	/**

-	 * Counts the number of test cases that will be run by this test.

-	 */

-	public int countTestCases() {

-		int count= 0;

-		for (Enumeration e= tests(); e.hasMoreElements(); ) {

-			Test test= (Test)e.nextElement();

-			count= count + test.countTestCases();

-		}

-		return count;

-	}

-	

-	/**

-	 * Gets a constructor which takes a single String as

-	 * its argument or a no arg constructor.

-	 */

-	public static Constructor getTestConstructor(Class theClass) throws NoSuchMethodException {

-		Class[] args= { String.class };

-		try {

-			return theClass.getConstructor(args);	

-		} catch (NoSuchMethodException e) {

-			// fall through

-		}

-		return theClass.getConstructor(new Class[0]);

-	}

-

-	private boolean isPublicTestMethod(Method m) {

-		return isTestMethod(m) && Modifier.isPublic(m.getModifiers());

-	 }

-	 

-	private boolean isTestMethod(Method m) {

-		String name= m.getName();

-		Class[] parameters= m.getParameterTypes();

-		Class returnType= m.getReturnType();

-		return parameters.length == 0 && name.startsWith("test") && returnType.equals(Void.TYPE);

-	 }

-	 

-	/**

-	 * Runs the tests and collects their result in a TestResult.

-	 */

-	public void run(TestResult result) {

-		for (Enumeration e= tests(); e.hasMoreElements(); ) {

-	  		if (result.shouldStop() )

-	  			break;

-			Test test= (Test)e.nextElement();

-			runTest(test, result);

-		}

-	}

-

-	public void runTest(Test test, TestResult result) {

-		test.run(result);

-	}

-

-	/**

-	 * Returns the test at the given index

-	 */

-	public Test testAt(int index) {

-		return (Test)fTests.elementAt(index);

-	}

-	

-	/**

-	 * Returns the number of tests in this suite

-	 */

-	public int testCount() {

-		return fTests.size();

-	}

-	

-	/**

-	 * Returns the tests as an enumeration

-	 */

-	public Enumeration tests() {

-		return fTests.elements();

-	}

-	

-	/**

-	 */

-	public String toString() {

-		if (getName() != null)

-			return getName();

-		return super.toString();

-	 }

-	 

-	/**

-	 * Sets the name of the suite.

-	 * @param name The name to set

-	 */

-	public void setName(String name) {

-		fName= name;

-	}

-

-	/**

-	 * Returns the name of the suite. Not all

-	 * test suites have a name and this method

-	 * can return null.

-	 */

-	public String getName() {

-		return fName;

-	}

-

-	/**

-	 * Returns a test which will fail and log a warning message.

-	 */

-	private static Test warning(final String message) {

-		return new TestCase("warning") {

-			protected void runTest() {

-				fail(message);

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/BaseTestRunner.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/BaseTestRunner.js
deleted file mode 100644
index 7f484dc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/BaseTestRunner.js
+++ /dev/null
@@ -1,323 +0,0 @@
-package junit.runner;

-

-import junit.framework.*;

-import java.lang.reflect.*;

-import java.text.NumberFormat;

-import java.io.*;

-import java.util.*;

-

-/**

- * Base class for all test runners.

- * This class was born live on stage in Sardinia during XP2000.

- */

-public abstract class BaseTestRunner implements TestListener {

-	public static final String SUITE_METHODNAME= "suite";

-

-	private static Properties fPreferences;

-	static int fgMaxMessageLength= 500;

-	static boolean fgFilterStack= true;

-	boolean fLoading= true;

-

-    /*

-    * Implementation of TestListener

-    */

-	public synchronized void startTest(Test test) {

-		testStarted(test.toString());

-	}

-

-	protected static void setPreferences(Properties preferences) {

-		fPreferences= preferences;

-	}

-

-	protected static Properties getPreferences() {

-		if (fPreferences == null) {

-			fPreferences= new Properties();

-	 		fPreferences.put("loading", "true");

- 			fPreferences.put("filterstack", "true");

-  			readPreferences();

-		}

-		return fPreferences;

-	}

-

-	public static void savePreferences() throws IOException {

-		FileOutputStream fos= new FileOutputStream(getPreferencesFile());

-		try {

-			getPreferences().store(fos, "");

-		} finally {

-			fos.close();

-		}

-	}

-

-	public void setPreference(String key, String value) {

-		getPreferences().setProperty(key, value);

-	}

-

-	public synchronized void endTest(Test test) {

-		testEnded(test.toString());

-	}

-

-	public synchronized void addError(final Test test, final Throwable t) {

-		testFailed(TestRunListener.STATUS_ERROR, test, t);

-	}

-

-	public synchronized void addFailure(final Test test, final AssertionFailedError t) {

-		testFailed(TestRunListener.STATUS_FAILURE, test, t);

-	}

-

-	// TestRunListener implementation

-

-	public abstract void testStarted(String testName);

-

-	public abstract void testEnded(String testName);

-

-	public abstract void testFailed(int status, Test test, Throwable t);

-

-	/**

-	 * Returns the Test corresponding to the given suite. This is

-	 * a template method, subclasses override runFailed(), clearStatus().

-	 */

-	public Test getTest(String suiteClassName) {

-		if (suiteClassName.length() <= 0) {

-			clearStatus();

-			return null;

-		}

-		Class testClass= null;

-		try {

-			testClass= loadSuiteClass(suiteClassName);

-		} catch (ClassNotFoundException e) {

-			String clazz= e.getMessage();

-			if (clazz == null)

-				clazz= suiteClassName;

-			runFailed("Class not found \""+clazz+"\"");

-			return null;

-		} catch(Exception e) {

-			runFailed("Error: "+e.toString());

-			return null;

-		}

-		Method suiteMethod= null;

-		try {

-			suiteMethod= testClass.getMethod(SUITE_METHODNAME, new Class[0]);

-	 	} catch(Exception e) {

-	 		// try to extract a test suite automatically

-			clearStatus();

-			return new TestSuite(testClass);

-		}

-		if (! Modifier.isStatic(suiteMethod.getModifiers())) {

-			runFailed("Suite() method must be static");

-			return null;

-		}

-		Test test= null;

-		try {

-			test= (Test)suiteMethod.invoke(null, new Class[0]); // static method

-			if (test == null)

-				return test;

-		}

-		catch (InvocationTargetException e) {

-			runFailed("Failed to invoke suite():" + e.getTargetException().toString());

-			return null;

-		}

-		catch (IllegalAccessException e) {

-			runFailed("Failed to invoke suite():" + e.toString());

-			return null;

-		}

-

-		clearStatus();

-		return test;

-	}

-

-	/**

-	 * Returns the formatted string of the elapsed time.

-	 */

-	public String elapsedTimeAsString(long runTime) {

-		return NumberFormat.getInstance().format((double)runTime/1000);

-	}

-

-	/**

-	 * Processes the command line arguments and

-	 * returns the name of the suite class to run or null

-	 */

-	protected String processArguments(String[] args) {

-		String suiteName= null;

-		for (int i= 0; i < args.length; i++) {

-			if (args[i].equals("-noloading")) {

-				setLoading(false);

-			} else if (args[i].equals("-nofilterstack")) {

-				fgFilterStack= false;

-			} else if (args[i].equals("-c")) {

-				if (args.length > i+1)

-					suiteName= extractClassName(args[i+1]);

-				else

-					System.out.println("Missing Test class name");

-				i++;

-			} else {

-				suiteName= args[i];

-			}

-		}

-		return suiteName;

-	}

-

-	/**

-	 * Sets the loading behaviour of the test runner

-	 */

-	public void setLoading(boolean enable) {

-		fLoading= enable;

-	}

-	/**

-	 * Extract the class name from a String in VA/Java style

-	 */

-	public String extractClassName(String className) {

-		if(className.startsWith("Default package for"))

-			return className.substring(className.lastIndexOf(".")+1);

-		return className;

-	}

-

-	/**

-	 * Truncates a String to the maximum length.

-	 */

-	public static String truncate(String s) {

-		if (fgMaxMessageLength != -1 && s.length() > fgMaxMessageLength)

-			s= s.substring(0, fgMaxMessageLength)+"...";

-		return s;

-	}

-

-	/**

-	 * Override to define how to handle a failed loading of

-	 * a test suite.

-	 */

-	protected abstract void runFailed(String message);

-

-	/**

-	 * Returns the loaded Class for a suite name.

-	 */

-	protected Class loadSuiteClass(String suiteClassName) throws ClassNotFoundException {

-		return getLoader().load(suiteClassName);

-	}

-

-	/**

-	 * Clears the status message.

-	 */

-	protected void clearStatus() { // Belongs in the GUI TestRunner class

-	}

-

-	/**

-	 * Returns the loader to be used.

-	 */

-	public TestSuiteLoader getLoader() {

-		if (useReloadingTestSuiteLoader())

-			return new ReloadingTestSuiteLoader();

-		return new StandardTestSuiteLoader();

-	}

-

-	protected boolean useReloadingTestSuiteLoader() {

-		return getPreference("loading").equals("true") && !inVAJava() && fLoading;

-	}

-

-	private static File getPreferencesFile() {

-	 	String home= System.getProperty("user.home");

- 		return new File(home, "junit.properties");

- 	}

-

- 	private static void readPreferences() {

- 		InputStream is= null;

- 		try {

- 			is= new FileInputStream(getPreferencesFile());

- 			setPreferences(new Properties(getPreferences()));

-			getPreferences().load(is);

-		} catch (IOException e) {

-			try {

-				if (is != null)

-					is.close();

-			} catch (IOException e1) {

-			}

-		}

- 	}

-

- 	public static String getPreference(String key) {

- 		return getPreferences().getProperty(key);

- 	}

-

- 	public static int getPreference(String key, int dflt) {

- 		String value= getPreference(key);

- 		int intValue= dflt;

- 		if (value == null)

- 			return intValue;

- 		try {

- 			intValue= Integer.parseInt(value);

- 	 	} catch (NumberFormatException ne) {

- 		}

- 		return intValue;

- 	}

-

- 	public static boolean inVAJava() {

-		try {

-			Class.forName("com.ibm.uvm.tools.DebugSupport");

-		}

-		catch (Exception e) {

-			return false;

-		}

-		return true;

-	}

-

-	/**

-	 * Returns a filtered stack trace

-	 */

-	public static String getFilteredTrace(Throwable t) {

-		StringWriter stringWriter= new StringWriter();

-		PrintWriter writer= new PrintWriter(stringWriter);

-		t.printStackTrace(writer);

-		StringBuffer buffer= stringWriter.getBuffer();

-		String trace= buffer.toString();

-		return BaseTestRunner.getFilteredTrace(trace);

-	}

-

-	/**

-	 * Filters stack frames from internal JUnit classes

-	 */

-	public static String getFilteredTrace(String stack) {

-		if (showStackRaw())

-			return stack;

-

-		StringWriter sw= new StringWriter();

-		PrintWriter pw= new PrintWriter(sw);

-		StringReader sr= new StringReader(stack);

-		BufferedReader br= new BufferedReader(sr);

-

-		String line;

-		try {

-			while ((line= br.readLine()) != null) {

-				if (!filterLine(line))

-					pw.println(line);

-			}

-		} catch (Exception IOException) {

-			return stack; // return the stack unfiltered

-		}

-		return sw.toString();

-	}

-

-	protected static boolean showStackRaw() {

-		return !getPreference("filterstack").equals("true") || fgFilterStack == false;

-	}

-

-	static boolean filterLine(String line) {

-		String[] patterns= new String[] {

-			"junit.framework.TestCase",

-			"junit.framework.TestResult",

-			"junit.framework.TestSuite",

-			"junit.framework.Assert.", // don't filter AssertionFailure

-			"junit.swingui.TestRunner",

-			"junit.awtui.TestRunner",

-			"junit.textui.TestRunner",

-			"java.lang.reflect.Method.invoke("

-		};

-		for (int i= 0; i < patterns.length; i++) {

-			if (line.indexOf(patterns[i]) > 0)

-				return true;

-		}

-		return false;

-	}

-

- 	static {

- 		fgMaxMessageLength= getPreference("maxmessage", fgMaxMessageLength);

- 	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/ClassPathTestCollector.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/ClassPathTestCollector.js
deleted file mode 100644
index 1c26939..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/ClassPathTestCollector.js
+++ /dev/null
@@ -1,80 +0,0 @@
-package junit.runner;

-

-import java.util.*;

-import java.io.*;

-

-/**

- * An implementation of a TestCollector that consults the

- * class path. It considers all classes on the class path

- * excluding classes in JARs. It leaves it up to subclasses

- * to decide whether a class is a runnable Test.

- *

- * @see TestCollector

- */

-public abstract class ClassPathTestCollector implements TestCollector {

-	

-	static final int SUFFIX_LENGTH= ".class".length();

-	

-	public ClassPathTestCollector() {

-	}

-	

-	public Enumeration collectTests() {

-		String classPath= System.getProperty("java.class.path");

-		Hashtable result = collectFilesInPath(classPath);

-		return result.elements();

-	}

-

-	public Hashtable collectFilesInPath(String classPath) {

-		Hashtable result= collectFilesInRoots(splitClassPath(classPath));

-		return result;

-	}

-	

-	Hashtable collectFilesInRoots(Vector roots) {

-		Hashtable result= new Hashtable(100);

-		Enumeration e= roots.elements();

-		while (e.hasMoreElements()) 

-			gatherFiles(new File((String)e.nextElement()), "", result);

-		return result;

-	}

-

-	void gatherFiles(File classRoot, String classFileName, Hashtable result) {

-		File thisRoot= new File(classRoot, classFileName);

-		if (thisRoot.isFile()) {

-			if (isTestClass(classFileName)) {

-				String className= classNameFromFile(classFileName);

-				result.put(className, className);

-			}

-			return;

-		}		

-		String[] contents= thisRoot.list();

-		if (contents != null) { 

-			for (int i= 0; i < contents.length; i++) 

-				gatherFiles(classRoot, classFileName+File.separatorChar+contents[i], result);		

-		}

-	}

-	

-	Vector splitClassPath(String classPath) {

-		Vector result= new Vector();

-		String separator= System.getProperty("path.separator");

-		StringTokenizer tokenizer= new StringTokenizer(classPath, separator);

-		while (tokenizer.hasMoreTokens()) 

-			result.addElement(tokenizer.nextToken());

-		return result;

-	}

-	

-	protected boolean isTestClass(String classFileName) {

-		return 

-			classFileName.endsWith(".class") && 

-			classFileName.indexOf('$') < 0 &&

-			classFileName.indexOf("Test") > 0;

-	}

-	

-	protected String classNameFromFile(String classFileName) {

-		// convert /a/b.class to a.b

-		String s= classFileName.substring(0, classFileName.length()-SUFFIX_LENGTH);

-		String s2= s.replace(File.separatorChar, '.');

-		if (s2.startsWith("."))

-			return s2.substring(1);

-		return s2;

-	}	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/FailureDetailView.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/FailureDetailView.js
deleted file mode 100644
index 3682ac4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/FailureDetailView.js
+++ /dev/null
@@ -1,23 +0,0 @@
-package junit.runner;

-

-import java.awt.Component; 

-

-import junit.framework.*;

-

-/**

- * A view to show a details about a failure

- */

-public interface FailureDetailView {

-	/**

-	 * Returns the component used to present the TraceView

-	 */

-	public Component getComponent();

-	/**

-	 * Shows details of a TestFailure

-	 */

-	public void showFailure(TestFailure failure);

-	/**

-	 * Clears the view

-	 */

-	public void clear();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/LoadingTestCollector.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/LoadingTestCollector.js
deleted file mode 100644
index e22a249..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/LoadingTestCollector.js
+++ /dev/null
@@ -1,69 +0,0 @@
-package junit.runner;

-

-import java.lang.reflect.*;

-import junit.runner.*;

-import junit.framework.*;

-

-/**

- * An implementation of a TestCollector that loads

- * all classes on the class path and tests whether

- * it is assignable from Test or provides a static suite method.

- * @see TestCollector

- */

-public class LoadingTestCollector extends ClassPathTestCollector {

-	

-	TestCaseClassLoader fLoader;

-	

-	public LoadingTestCollector() {

-		fLoader= new TestCaseClassLoader();

-	}

-	

-	protected boolean isTestClass(String classFileName) {	

-		try {

-			if (classFileName.endsWith(".class")) {

-				Class testClass= classFromFile(classFileName);

-				return (testClass != null) && isTestClass(testClass);

-			}

-		} 

-		catch (ClassNotFoundException expected) {

-		}

-		catch (NoClassDefFoundError notFatal) {

-		} 

-		return false;

-	}

-	

-	Class classFromFile(String classFileName) throws ClassNotFoundException {

-		String className= classNameFromFile(classFileName);

-		if (!fLoader.isExcluded(className))

-			return fLoader.loadClass(className, false);

-		return null;

-	}

-	

-	boolean isTestClass(Class testClass) {

-		if (hasSuiteMethod(testClass))

-			return true;

-		if (Test.class.isAssignableFrom(testClass) &&

-			Modifier.isPublic(testClass.getModifiers()) &&

-			hasPublicConstructor(testClass)) 

-			return true;

-		return false;

-	}

-	

-	boolean hasSuiteMethod(Class testClass) {

-		try {

-			testClass.getMethod(BaseTestRunner.SUITE_METHODNAME, new Class[0]);

-	 	} catch(Exception e) {

-	 		return false;

-		}

-		return true;

-	}

-	

-	boolean hasPublicConstructor(Class testClass) {

-		try {

-			TestSuite.getTestConstructor(testClass);

-		} catch(NoSuchMethodException e) {

-			return false;

-		}

-		return true;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/ReloadingTestSuiteLoader.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/ReloadingTestSuiteLoader.js
deleted file mode 100644
index a87128d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/ReloadingTestSuiteLoader.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package junit.runner;

-

-/**

- * A TestSuite loader that can reload classes.

- */

-public class ReloadingTestSuiteLoader implements TestSuiteLoader {

-	

-	public Class load(String suiteClassName) throws ClassNotFoundException {

-		return createLoader().loadClass(suiteClassName, true);

-	}

-	

-	public Class reload(Class aClass) throws ClassNotFoundException {

-		return createLoader().loadClass(aClass.getName(), true);

-	}

-	

-	protected TestCaseClassLoader createLoader() {

-		return new TestCaseClassLoader();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/SimpleTestCollector.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/SimpleTestCollector.js
deleted file mode 100644
index 3527bd9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/SimpleTestCollector.js
+++ /dev/null
@@ -1,20 +0,0 @@
-package junit.runner;

-

-/**

- * An implementation of a TestCollector that considers

- * a class to be a test class when it contains the

- * pattern "Test" in its name

- * @see TestCollector

- */

-public class SimpleTestCollector extends ClassPathTestCollector {

-	

-	public SimpleTestCollector() {

-	}

-	

-	protected boolean isTestClass(String classFileName) {

-		return 

-			classFileName.endsWith(".class") && 

-			classFileName.indexOf('$') < 0 &&

-			classFileName.indexOf("Test") > 0;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/Sorter.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/Sorter.js
deleted file mode 100644
index 2c82712..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/Sorter.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package junit.runner;

-

-import java.util.*;

-

-import junit.runner.*;

-

-/**

- * A custom quick sort with support to customize the swap behaviour.

- * NOTICE: We can't use the the sorting support from the JDK 1.2 collection

- * classes because of the JDK 1.1.7 compatibility.

- */

-public class Sorter {

-	public static interface Swapper {

-		public void swap(Vector values, int left, int right);

-	}

-		

-	public static void sortStrings(Vector values , int left, int right, Swapper swapper) { 

-		int oleft= left;

-		int oright= right;

-		String mid= (String)values.elementAt((left + right) / 2); 

-		do { 

-			while (((String)(values.elementAt(left))).compareTo(mid) < 0)  

-				left++; 

-			while (mid.compareTo((String)(values.elementAt(right))) < 0)  

-				right--; 

-			if (left <= right) {

-				swapper.swap(values, left, right); 

-				left++; 

-				right--; 

-			} 

-		} while (left <= right);

-		

-		if (oleft < right) 

-			sortStrings(values, oleft, right, swapper); 

-		if (left < oright) 

-			 sortStrings(values, left, oright, swapper); 

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/StandardTestSuiteLoader.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/StandardTestSuiteLoader.js
deleted file mode 100644
index 770f3d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/StandardTestSuiteLoader.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package junit.runner;

-

-/**

- * The standard test suite loader. It can only load the same class once.

- */

-public class StandardTestSuiteLoader implements TestSuiteLoader {

-	/**

-	 * Uses the system class loader to load the test class

-	 */

-	public Class load(String suiteClassName) throws ClassNotFoundException {

-		return Class.forName(suiteClassName);

-	}

-	/**

-	 * Uses the system class loader to load the test class

-	 */

-	public Class reload(Class aClass) throws ClassNotFoundException {

-		return aClass;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestCaseClassLoader.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestCaseClassLoader.js
deleted file mode 100644
index 5bf6ffd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestCaseClassLoader.js
+++ /dev/null
@@ -1,224 +0,0 @@
-package junit.runner;

-

-import java.util.*;

-import java.io.*;

-import java.net.URL;

-import java.util.zip.*;

-

-/**

- * A custom class loader which enables the reloading

- * of classes for each test run. The class loader

- * can be configured with a list of package paths that

- * should be excluded from loading. The loading

- * of these packages is delegated to the system class

- * loader. They will be shared across test runs.

- * <p>

- * The list of excluded package paths is specified in

- * a properties file "excluded.properties" that is located in 

- * the same place as the TestCaseClassLoader class.

- * <p>

- * <b>Known limitation:</b> the TestCaseClassLoader cannot load classes

- * from jar files.

- */

-

-

-public class TestCaseClassLoader extends ClassLoader {

-	/** scanned class path */

-	private Vector fPathItems;

-	/** default excluded paths */

-	private String[] defaultExclusions= {

-		"junit.framework.", 

-		"junit.extensions.", 

-		"junit.runner."

-	};

-	/** name of excluded properties file */

-	static final String EXCLUDED_FILE= "excluded.properties";

-	/** excluded paths */

-	private Vector fExcluded;

-	 

-	/**

-	 * Constructs a TestCaseLoader. It scans the class path

-	 * and the excluded package paths

-	 */

-	public TestCaseClassLoader() {

-		this(System.getProperty("java.class.path"));

-	}

-	

-	/**

-	 * Constructs a TestCaseLoader. It scans the class path

-	 * and the excluded package paths

-	 */

-	public TestCaseClassLoader(String classPath) {

-		scanPath(classPath);

-		readExcludedPackages();

-	}

-

-	private void scanPath(String classPath) {

-		String separator= System.getProperty("path.separator");

-		fPathItems= new Vector(10);

-		StringTokenizer st= new StringTokenizer(classPath, separator);

-		while (st.hasMoreTokens()) {

-			fPathItems.addElement(st.nextToken());

-		}

-	}

-	

-	public URL getResource(String name) {

-		return ClassLoader.getSystemResource(name);

-	}

-	

-	public InputStream getResourceAsStream(String name) {

-		return ClassLoader.getSystemResourceAsStream(name);

-	} 

-	

-	public boolean isExcluded(String name) {

-		for (int i= 0; i < fExcluded.size(); i++) {

-			if (name.startsWith((String) fExcluded.elementAt(i))) {

-				return true;

-			}

-		}

-		return false;	

-	}

-	

-	public synchronized Class loadClass(String name, boolean resolve)

-		throws ClassNotFoundException {

-			

-		Class c= findLoadedClass(name);

-		if (c != null)

-			return c;

-		//

-		// Delegate the loading of excluded classes to the

-		// standard class loader.

-		//

-		if (isExcluded(name)) {

-			try {

-				c= findSystemClass(name);

-				return c;

-			} catch (ClassNotFoundException e) {

-				// keep searching

-			}

-		}

-		if (c == null) {

-			byte[] data= lookupClassData(name);

-			if (data == null)

-				throw new ClassNotFoundException();

-			c= defineClass(name, data, 0, data.length);

-		}

-		if (resolve) 

-			resolveClass(c);

-		return c;

-	}

-	

-	private byte[] lookupClassData(String className) throws ClassNotFoundException {

-		byte[] data= null;

-		for (int i= 0; i < fPathItems.size(); i++) {

-			String path= (String) fPathItems.elementAt(i);

-			String fileName= className.replace('.', '/')+".class";

-			if (isJar(path)) {

-				data= loadJarData(path, fileName);

-			} else {

-				data= loadFileData(path, fileName);

-			}

-			if (data != null)

-				return data;

-		}

-		throw new ClassNotFoundException(className);

-	}

-		

-	boolean isJar(String pathEntry) {

-		return pathEntry.endsWith(".jar") || pathEntry.endsWith(".zip");

-	}

-

-	private byte[] loadFileData(String path, String fileName) {

-		File file= new File(path, fileName);

-		if (file.exists()) { 

-			return getClassData(file);

-		}

-		return null;

-	}

-	

-	private byte[] getClassData(File f) {

-		try {

-			FileInputStream stream= new FileInputStream(f);

-			ByteArrayOutputStream out= new ByteArrayOutputStream(1000);

-			byte[] b= new byte[1000];

-			int n;

-			while ((n= stream.read(b)) != -1) 

-				out.write(b, 0, n);

-			stream.close();

-			out.close();

-			return out.toByteArray();

-

-		} catch (IOException e) {

-		}

-		return null;

-	}

-

-	private byte[] loadJarData(String path, String fileName) {

-		ZipFile zipFile= null;

-		InputStream stream= null;

-		File archive= new File(path);

-		if (!archive.exists())

-			return null;

-		try {

-			zipFile= new ZipFile(archive);

-		} catch(IOException io) {

-			return null;

-		}

-		ZipEntry entry= zipFile.getEntry(fileName);

-		if (entry == null)

-			return null;

-		int size= (int) entry.getSize();

-		try {

-			stream= zipFile.getInputStream(entry);

-			byte[] data= new byte[size];

-			int pos= 0;

-			while (pos < size) {

-				int n= stream.read(data, pos, data.length - pos);

-				pos += n;

-			}

-			zipFile.close();

-			return data;

-		} catch (IOException e) {

-		} finally {

-			try {

-				if (stream != null)

-					stream.close();

-			} catch (IOException e) {

-			}

-		}

-		return null;

-	}

-	

-	private void readExcludedPackages() {		

-		fExcluded= new Vector(10);

-		for (int i= 0; i < defaultExclusions.length; i++)

-			fExcluded.addElement(defaultExclusions[i]);

-			

-		InputStream is= getClass().getResourceAsStream(EXCLUDED_FILE);

-		if (is == null) 

-			return;

-		Properties p= new Properties();

-		try {

-			p.load(is);

-		}

-		catch (IOException e) {

-			return;

-		} finally {

-			try {

-				is.close();

-			} catch (IOException e) {

-			}

-		}

-		for (Enumeration e= p.propertyNames(); e.hasMoreElements(); ) {

-			String key= (String)e.nextElement();

-			if (key.startsWith("excluded.")) {

-				String path= p.getProperty(key);

-				path= path.trim();

-				if (path.endsWith("*"))

-					path= path.substring(0, path.length()-1);

-				if (path.length() > 0) 

-					fExcluded.addElement(path);				

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestCollector.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestCollector.js
deleted file mode 100644
index bd4837a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestCollector.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package junit.runner;

-

-import java.util.*;

-

-

-/**

- * Collects Test class names to be presented

- * by the TestSelector. 

- * @see TestSelector

- */

-public interface TestCollector {

-	/**

-	 * Returns an enumeration of Strings with qualified class names

-	 */

-	public Enumeration collectTests();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestRunListener.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestRunListener.js
deleted file mode 100644
index 0d81df4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestRunListener.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package junit.runner;

-/**

- * A listener interface for observing the

- * execution of a test run. Unlike TestListener,

- * this interface using only primitive objects,

- * making it suitable for remote test execution.

- */

- public interface TestRunListener {

-     /* test status constants*/

-     public static final int STATUS_ERROR= 1;

-     public static final int STATUS_FAILURE= 2;

-

-     public void testRunStarted(String testSuiteName, int testCount);

-     public void testRunEnded(long elapsedTime);

-     public void testRunStopped(long elapsedTime);

-     public void testStarted(String testName);

-     public void testEnded(String testName);

-     public void testFailed(int status, String testName, String trace);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestSuiteLoader.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestSuiteLoader.js
deleted file mode 100644
index 57d06c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/TestSuiteLoader.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package junit.runner;

-

-/**

- * An interface to define how a test suite should be loaded.

- */

-public interface TestSuiteLoader {

-	abstract public Class load(String suiteClassName) throws ClassNotFoundException;

-	abstract public Class reload(Class aClass) throws ClassNotFoundException;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/Version.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/Version.js
deleted file mode 100644
index f292428..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/runner/Version.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package junit.runner;

-

-/**

- * This class defines the current version of JUnit

- */

-public class Version {

-	private Version() {

-		// don't instantiate

-	}

-

-	public static String id() {

-		return "3.8.1";

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/AboutDialog.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/AboutDialog.js
deleted file mode 100644
index 1cbfc28..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/AboutDialog.js
+++ /dev/null
@@ -1,81 +0,0 @@
-package junit.swingui;

-

-import java.awt.*;

-import java.awt.event.*;

-

-import javax.swing.*;

-import junit.runner.*;

-

-/**

- * The AboutDialog.

- */

-class AboutDialog extends JDialog {

-	public AboutDialog(JFrame parent) {

-		super(parent, true);

-		 

-		setResizable(false);

-		getContentPane().setLayout(new GridBagLayout());

-		setSize(330, 138);

-		setTitle("About");

-		// setLocationRelativeTo is only available in JDK 1.4

-		try {

-			setLocationRelativeTo(parent);

-		} catch (NoSuchMethodError e) {

-			TestSelector.centerWindow(this);

-		}

-

-		JButton close= new JButton("Close");

-		close.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					dispose();

-				}

-			}

-		);

-		getRootPane().setDefaultButton(close);

-		JLabel label1= new JLabel("JUnit");

-		label1.setFont(new Font("dialog", Font.PLAIN, 36));

-		

-		JLabel label2= new JLabel("JUnit "+Version.id()+" by Kent Beck and Erich Gamma");

-		label2.setFont(new Font("dialog", Font.PLAIN, 14));

-		

-		JLabel logo= createLogo();

-

-		GridBagConstraints constraintsLabel1= new GridBagConstraints();

-		constraintsLabel1.gridx = 3; constraintsLabel1.gridy = 0;

-		constraintsLabel1.gridwidth = 1; constraintsLabel1.gridheight = 1;

-		constraintsLabel1.anchor = GridBagConstraints.CENTER;

-		getContentPane().add(label1, constraintsLabel1);

-

-		GridBagConstraints constraintsLabel2= new GridBagConstraints();

-		constraintsLabel2.gridx = 2; constraintsLabel2.gridy = 1;

-		constraintsLabel2.gridwidth = 2; constraintsLabel2.gridheight = 1;

-		constraintsLabel2.anchor = GridBagConstraints.CENTER;

-		getContentPane().add(label2, constraintsLabel2);

-

-		GridBagConstraints constraintsButton1= new GridBagConstraints();

-		constraintsButton1.gridx = 2; constraintsButton1.gridy = 2;

-		constraintsButton1.gridwidth = 2; constraintsButton1.gridheight = 1;

-		constraintsButton1.anchor = GridBagConstraints.CENTER;

-		constraintsButton1.insets= new Insets(8, 0, 8, 0);

-		getContentPane().add(close, constraintsButton1);

-

-		GridBagConstraints constraintsLogo1= new GridBagConstraints();

-		constraintsLogo1.gridx = 2; constraintsLogo1.gridy = 0;

-		constraintsLogo1.gridwidth = 1; constraintsLogo1.gridheight = 1;

-		constraintsLogo1.anchor = GridBagConstraints.CENTER;

-		getContentPane().add(logo, constraintsLogo1);

-

-		addWindowListener(

-			new WindowAdapter() {

-				public void windowClosing(WindowEvent e) {

-					dispose();

-				}

-			}

-		);

-	}

-	protected JLabel createLogo() {

-		Icon icon= TestRunner.getIconResource(BaseTestRunner.class, "logo.gif");

-		return new JLabel(icon);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/CounterPanel.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/CounterPanel.js
deleted file mode 100644
index 2b7356a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/CounterPanel.js
+++ /dev/null
@@ -1,110 +0,0 @@
-package junit.swingui;

-

-import java.awt.*;

-

-import javax.swing.*;

-

-/**

- * A panel with test run counters

- */

-public class CounterPanel extends JPanel {

-	private JTextField fNumberOfErrors;

-	private JTextField fNumberOfFailures;

-	private JTextField fNumberOfRuns;

-	private Icon fFailureIcon= TestRunner.getIconResource(getClass(), "icons/failure.gif");

-	private Icon fErrorIcon= TestRunner.getIconResource(getClass(), "icons/error.gif");

-

-	private int fTotal;

-

-	public CounterPanel() {

-		super(new GridBagLayout());

-		fNumberOfErrors= createOutputField(5);

-		fNumberOfFailures= createOutputField(5);

-		fNumberOfRuns= createOutputField(9);

-

-      addToGrid(new JLabel("Runs:", JLabel.CENTER),

-          0, 0, 1, 1, 0.0, 0.0,

-          GridBagConstraints.CENTER, GridBagConstraints.NONE,

-          new Insets(0, 0, 0, 0));

-     addToGrid(fNumberOfRuns,

-          1, 0, 1, 1, 0.33, 0.0,

-          GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,

-          new Insets(0, 8, 0, 0));

-

-     addToGrid(new JLabel("Errors:", fErrorIcon, SwingConstants.LEFT),

-          2, 0, 1, 1, 0.0, 0.0,

-          GridBagConstraints.CENTER, GridBagConstraints.NONE,

-          new Insets(0, 8, 0, 0));

-      addToGrid(fNumberOfErrors,

-          3, 0, 1, 1, 0.33, 0.0,

-          GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,

-          new Insets(0, 8, 0, 0));

-

-      addToGrid(new JLabel("Failures:", fFailureIcon, SwingConstants.LEFT),

-          4, 0, 1, 1, 0.0, 0.0,

-          GridBagConstraints.CENTER, GridBagConstraints.NONE,

-          new Insets(0, 8, 0, 0));

-      addToGrid(fNumberOfFailures,

-          5, 0, 1, 1, 0.33, 0.0,

-          GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,

-          new Insets(0, 8, 0, 0));

-	}

-

-	private JTextField createOutputField(int width) {

-		JTextField field= new JTextField("0", width);

-		// force a fixed layout to avoid accidental hiding on relayout

-		field.setMinimumSize(field.getPreferredSize());

-		field.setMaximumSize(field.getPreferredSize());

-		field.setHorizontalAlignment(JTextField.LEFT);

-		field.setFont(StatusLine.BOLD_FONT);

-		field.setEditable(false);

-		field.setBorder(BorderFactory.createEmptyBorder());

-		return field;

-	}

-

-	public void addToGrid(Component comp,

-	    	int gridx, int gridy, int gridwidth, int gridheight,

-			double weightx, double weighty,

-			int anchor, int fill,

-			Insets insets) {

-

-		GridBagConstraints constraints= new GridBagConstraints();

-		constraints.gridx= gridx;

-		constraints.gridy= gridy;

-		constraints.gridwidth= gridwidth;

-		constraints.gridheight= gridheight;

-		constraints.weightx= weightx;

-		constraints.weighty= weighty;

-		constraints.anchor= anchor;

-		constraints.fill= fill;

-		constraints.insets= insets;

-		add(comp, constraints);

-	}

-

-	public void reset() {

-		setLabelValue(fNumberOfErrors, 0);

-		setLabelValue(fNumberOfFailures, 0);

-		setLabelValue(fNumberOfRuns, 0);

-		fTotal= 0;

-	}

-

-	public void setTotal(int value) {

-		fTotal= value;

-	}

-

-	public void setRunValue(int value) {

-		fNumberOfRuns.setText(Integer.toString(value) + "/" + fTotal);

-	}

-

-	public void setErrorValue(int value) {

-		setLabelValue(fNumberOfErrors, value);

-	}

-

-	public void setFailureValue(int value) {

-		setLabelValue(fNumberOfFailures, value);

-	}

-

-	private void setLabelValue(JTextField label, int value) {

-		label.setText(Integer.toString(value));

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/DefaultFailureDetailView.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/DefaultFailureDetailView.js
deleted file mode 100644
index 882d28a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/DefaultFailureDetailView.js
+++ /dev/null
@@ -1,94 +0,0 @@
-package junit.swingui;

-

-import java.awt.*;

-import java.util.*;

-

-import javax.swing.*;

-import junit.framework.TestFailure;

-import junit.runner.*;

-

-/**

- * A view that shows a stack trace of a failure

- */

-public class DefaultFailureDetailView implements FailureDetailView {

-	JList fList;  

-	

-	/**

-	 * A ListModel representing the scanned failure stack trace.

-	 */

-	static class StackTraceListModel extends AbstractListModel {

-		private Vector fLines= new Vector(20);

-		

-		public Object getElementAt(int index) {

-			return fLines.elementAt(index);

-		}

-

-		public int getSize() {

-			return fLines.size();

-		}

-		

-		public void setTrace(String trace) {

-			scan(trace);

-			fireContentsChanged(this, 0, fLines.size());

-		}

-		

-		public void clear() {

-			fLines.removeAllElements();

-			fireContentsChanged(this, 0, fLines.size());

-		}

-		

-		private void scan(String trace) {

-			fLines.removeAllElements();

-     		StringTokenizer st= new StringTokenizer(trace, "\n\r", false);

-	    	while (st.hasMoreTokens()) 

- 				fLines.add(st.nextToken());

-		}

-	}

-	

-	/**

-	 * Renderer for stack entries

-	 */

-	static class StackEntryRenderer extends DefaultListCellRenderer {

-						

-		public Component getListCellRendererComponent(

-				JList list, Object value, int modelIndex, 

-				boolean isSelected, boolean cellHasFocus) {

-			String text= ((String)value).replace('\t', ' ');

-		    Component c= super.getListCellRendererComponent(list, text, modelIndex, isSelected, cellHasFocus);

-			setText(text);

-			setToolTipText(text);

-			return c;

-		}

-	}

-	

-	/**

-	 * Returns the component used to present the trace

-	 */

-	public Component getComponent() {

-		if (fList == null) {

-			fList= new JList(new StackTraceListModel());

-			fList.setFont(new Font("Dialog", Font.PLAIN, 12));

-			fList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

-			fList.setVisibleRowCount(5);

-			fList.setCellRenderer(new StackEntryRenderer());

-		}

-		return fList;

-	}

-	

-	/**

-	 * Shows a TestFailure

-	 */

-	public void showFailure(TestFailure failure) {

-		getModel().setTrace(BaseTestRunner.getFilteredTrace(failure.trace()));

-	}

-	/**

-	 * Clears the output.

-	 */

-	public void clear() {

-		getModel().clear();

-	}

-	

-	private StackTraceListModel getModel() {

-		return 	(StackTraceListModel)fList.getModel();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/FailureRunView.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/FailureRunView.js
deleted file mode 100644
index 8c75fb9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/FailureRunView.js
+++ /dev/null
@@ -1,110 +0,0 @@
-package junit.swingui;

-

-import java.awt.*;

-

-import javax.swing.*;

-import javax.swing.event.*;

-import junit.framework.*;

-import junit.runner.BaseTestRunner;

-

-

-/**

- * A view presenting the test failures as a list.

- */

-public class FailureRunView implements TestRunView {

-	JList fFailureList;

-	TestRunContext fRunContext;

-	

-	/**

-	 * Renders TestFailures in a JList

-	 */

-	static class FailureListCellRenderer extends DefaultListCellRenderer {

-		private Icon fFailureIcon;

-		private Icon fErrorIcon;

-		

-		FailureListCellRenderer() {

-	    		super();

-	    		loadIcons();

-		}

-	

-		void loadIcons() {

-			fFailureIcon= TestRunner.getIconResource(getClass(), "icons/failure.gif");

-			fErrorIcon= TestRunner.getIconResource(getClass(), "icons/error.gif");		

-		}

-						

-		public Component getListCellRendererComponent(

-			JList list, Object value, int modelIndex, 

-			boolean isSelected, boolean cellHasFocus) {

-	

-		    Component c= super.getListCellRendererComponent(list, value, modelIndex, isSelected, cellHasFocus);

-			TestFailure failure= (TestFailure)value;

-			String text= failure.failedTest().toString();

-			String msg= failure.exceptionMessage();

-			if (msg != null) 

-				text+= ":" + BaseTestRunner.truncate(msg); 

-	 

-			if (failure.isFailure()) { 

-				if (fFailureIcon != null)

-		    		setIcon(fFailureIcon);

-			} else {

-		    	if (fErrorIcon != null)

-		    		setIcon(fErrorIcon);

-		    }

-			setText(text);

-			setToolTipText(text);

-			return c;

-		}

-	}

-	

-	public FailureRunView(TestRunContext context) {

-		fRunContext= context;

-		fFailureList= new JList(fRunContext.getFailures());

-		fFailureList.setFont(new Font("Dialog", Font.PLAIN, 12));

- 

-		fFailureList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

-		fFailureList.setCellRenderer(new FailureListCellRenderer());

-		fFailureList.setVisibleRowCount(5);

-

-		fFailureList.addListSelectionListener(

-			new ListSelectionListener() {

-				public void valueChanged(ListSelectionEvent e) {

-					testSelected();

-				}

-			}

-		);

-	}

-	

-	public Test getSelectedTest() {

-		int index= fFailureList.getSelectedIndex();

-		if (index == -1)

-			return null;

-			

-		ListModel model= fFailureList.getModel();

-		TestFailure failure= (TestFailure)model.getElementAt(index);

-		return failure.failedTest();

-	}

-	

-	public void activate() {

-		testSelected();

-	}

-	

-	public void addTab(JTabbedPane pane) {

-		JScrollPane scrollPane= new JScrollPane(fFailureList, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

-		Icon errorIcon= TestRunner.getIconResource(getClass(), "icons/error.gif");

-		pane.addTab("Failures", errorIcon, scrollPane, "The list of failed tests");

-	}

-		

-	public void revealFailure(Test failure) {

-		fFailureList.setSelectedIndex(0);

-	}

-	

-	public void aboutToStart(Test suite, TestResult result) {

-	}

-

-	public void runFinished(Test suite, TestResult result) {

-	}

-

-	protected void testSelected() {

-		fRunContext.handleTestSelected(getSelectedTest());

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/ProgressBar.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/ProgressBar.js
deleted file mode 100644
index 0e52304..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/ProgressBar.js
+++ /dev/null
@@ -1,42 +0,0 @@
-package junit.swingui;

-

-import java.awt.Color;

-

-import javax.swing.JProgressBar;

-

-/**

- * A progress bar showing the green/red status

- */

-class ProgressBar extends JProgressBar {

-	boolean fError= false;

-	

-	public ProgressBar() {

-		super(); 

-		setForeground(getStatusColor());

-	}

-	

-	private Color getStatusColor() {

-		if (fError)

-			return Color.red;

-		return Color.green;

-	}

-		

-	public void reset() {

-		fError= false;

-		setForeground(getStatusColor());

-		setValue(0);

-	}

-	

-	public void start(int total) {

-		setMaximum(total);

-		reset();

-	}

-	

-	public void step(int value, boolean successful) {

-		setValue(value);

-		if (!fError && !successful) {

-			fError= true;

-			setForeground(getStatusColor());

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/StatusLine.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/StatusLine.js
deleted file mode 100644
index 9a0e7a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/StatusLine.js
+++ /dev/null
@@ -1,42 +0,0 @@
-package junit.swingui;

-

-import java.awt.*;

-

-import javax.swing.*;

-import javax.swing.border.BevelBorder;

-

-/**

- * A status line component.

- */

-public class StatusLine extends JTextField {

-	public static final Font PLAIN_FONT= new Font("dialog", Font.PLAIN, 12);

-	public static final Font BOLD_FONT= new Font("dialog", Font.BOLD, 12);

-

-	public StatusLine(int preferredWidth) {

-		super();

-		setFont(BOLD_FONT);

-		setEditable(false);

-		setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));

-		Dimension d= getPreferredSize();

-		d.width= preferredWidth;

-		setPreferredSize(d);

-	}

-	

-	public void showInfo(String message) {

-		setFont(PLAIN_FONT);

-		setForeground(Color.black);

-		setText(message);

-	}

-	

-	public void showError(String status) {

-		setFont(BOLD_FONT);

-		setForeground(Color.red);

-		setText(status);

-		setToolTipText(status);

-	}

-	

-	public void clear() {

-		setText("");

-		setToolTipText(null);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestHierarchyRunView.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestHierarchyRunView.js
deleted file mode 100644
index cc1c996..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestHierarchyRunView.js
+++ /dev/null
@@ -1,72 +0,0 @@
-package junit.swingui;

-

-import java.util.Vector;

-

-import javax.swing.*;

-import javax.swing.event.*;

-import javax.swing.tree.TreePath;

-import junit.framework.*;

-

-/**

- * A hierarchical view of a test run.

- * The contents of a test suite is shown

- * as a tree.

- */

-public class TestHierarchyRunView implements TestRunView {

-	TestSuitePanel fTreeBrowser;

-	TestRunContext fTestContext;

-	

-	public TestHierarchyRunView(TestRunContext context) {

-		fTestContext= context;

-		fTreeBrowser= new TestSuitePanel();

-		fTreeBrowser.getTree().addTreeSelectionListener(

-			new TreeSelectionListener() {

-				public void valueChanged(TreeSelectionEvent e) {

-					testSelected();

-				}

-			}

-		);

-	}

-	

-	public void addTab(JTabbedPane pane) { 

-		Icon treeIcon= TestRunner.getIconResource(getClass(), "icons/hierarchy.gif");

-		pane.addTab("Test Hierarchy", treeIcon, fTreeBrowser, "The test hierarchy");

-	}

-	

-	public Test getSelectedTest() {

-		return fTreeBrowser.getSelectedTest();

-	}

-	

-	public void activate() {

-		testSelected();

-	}

-	

-	public void revealFailure(Test failure) {

-		JTree tree= fTreeBrowser.getTree();

-		TestTreeModel model= (TestTreeModel)tree.getModel();

-		Vector vpath= new Vector();

-		int index= model.findTest(failure, (Test)model.getRoot(), vpath);

-		if (index >= 0) {

-			Object[] path= new Object[vpath.size()+1];

-			vpath.copyInto(path);

-			Object last= path[vpath.size()-1];

-			path[vpath.size()]= model.getChild(last, index);

-			TreePath selectionPath= new TreePath(path);

-			tree.setSelectionPath(selectionPath);

-			tree.makeVisible(selectionPath);

-		}

-	}

-	

-	public void aboutToStart(Test suite, TestResult result) {

-		fTreeBrowser.showTestTree(suite);

-		result.addListener(fTreeBrowser);

-	}

-

-	public void runFinished(Test suite, TestResult result) {

-		result.removeListener(fTreeBrowser);

-	}

-

-	protected void testSelected() {

-		fTestContext.handleTestSelected(getSelectedTest());

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunContext.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunContext.js
deleted file mode 100644
index 916b545..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunContext.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package junit.swingui;

-

-import javax.swing.ListModel;

-

-import junit.framework.Test;

-

-/**

- * The interface for accessing the Test run context. Test run views

- * should use this interface rather than accessing the TestRunner

- * directly.

- */

-public interface TestRunContext {

-	/**

-	 * Handles the selection of a Test.

-	 */

-	public void handleTestSelected(Test test);

-	/**

-	 * Returns the failure model

-	 */

-	public ListModel getFailures();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunView.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunView.js
deleted file mode 100644
index 8142396..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunView.js
+++ /dev/null
@@ -1,37 +0,0 @@
-package junit.swingui;

-

-import javax.swing.JTabbedPane;

-import junit.framework.*;

-

-/**

- * A TestRunView is shown as a page in a tabbed folder.

- * It contributes the page contents and can return

- * the currently selected tests. A TestRunView is 

- * notified about the start and finish of a run.

- */

-interface TestRunView {

-	/**

-	 * Returns the currently selected Test in the View

-	 */

-	public Test getSelectedTest();

-	/**

-	 * Activates the TestRunView

-	 */

-	public void activate();

-	/**

-	 * Reveals the given failure

-	 */

-	public void revealFailure(Test failure);

-	/**

-	 * Adds the TestRunView to the test run views tab

-	 */

-	public void addTab(JTabbedPane pane);

-	/**

-	 * Informs that the suite is about to start 

-	 */

-	public void aboutToStart(Test suite, TestResult result);

-	/**

-	 * Informs that the run of the test suite has finished 

-	 */

-	public void runFinished(Test suite, TestResult result);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunner.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunner.js
deleted file mode 100644
index e82872d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestRunner.js
+++ /dev/null
@@ -1,774 +0,0 @@
-package junit.swingui;

-

-import java.awt.*;

-import java.awt.event.*;

-import java.io.*;

-import java.net.URL;

-import java.util.*;

-

-import javax.swing.*;

-import javax.swing.event.*;

-import junit.framework.*;

-import junit.runner.*;

-

-/**

- * A Swing based user interface to run tests.

- * Enter the name of a class which either provides a static

- * suite method or is a subclass of TestCase.

- * <pre>

- * Synopsis: java junit.swingui.TestRunner [-noloading] [TestCase]

- * </pre>

- * TestRunner takes as an optional argument the name of the testcase class to be run.

- */

-public class TestRunner extends BaseTestRunner implements TestRunContext {

-	private static final int GAP= 4;

-	private static final int HISTORY_LENGTH= 5;

-

-	protected JFrame fFrame;

-	private Thread fRunner;

-	private TestResult fTestResult;

-

-	private JComboBox fSuiteCombo;

-	private ProgressBar fProgressIndicator;

-	private DefaultListModel fFailures;

-	private JLabel fLogo;

-	private CounterPanel fCounterPanel;

-	private JButton fRun;

-	private JButton fQuitButton;

-	private JButton fRerunButton;

-	private StatusLine fStatusLine;

-	private FailureDetailView fFailureView;

-	private JTabbedPane fTestViewTab;

-	private JCheckBox fUseLoadingRunner;

-	private Vector fTestRunViews= new Vector(); // view associated with tab in tabbed pane

-

-	private static final String TESTCOLLECTOR_KEY= "TestCollectorClass";

-	private static final String FAILUREDETAILVIEW_KEY= "FailureViewClass";

-

-	public TestRunner() {

-	}

-

-	public static void main(String[] args) {

-		new TestRunner().start(args);

-	}

-

-	public static void run(Class test) {

-		String args[]= { test.getName() };

-		main(args);

-	}

-

-	public void testFailed(final int status, final Test test, final Throwable t) {

-		SwingUtilities.invokeLater(

-			new Runnable() {

-				public void run() {

-					switch (status) {

-						case TestRunListener.STATUS_ERROR:

-							fCounterPanel.setErrorValue(fTestResult.errorCount());

-							appendFailure(test, t);

-							break;

-						case TestRunListener.STATUS_FAILURE:

-							fCounterPanel.setFailureValue(fTestResult.failureCount());

-							appendFailure(test, t);

-							break;

-					}

-				}

-			}

-		);

-	}

-

-	public void testStarted(String testName) {

-		postInfo("Running: "+testName);

-	}

-

-	public void testEnded(String stringName) {

-		synchUI();

-		SwingUtilities.invokeLater(

-			new Runnable() {

-				public void run() {

-					if (fTestResult != null) {

-						fCounterPanel.setRunValue(fTestResult.runCount());

-						fProgressIndicator.step(fTestResult.runCount(), fTestResult.wasSuccessful());

-					}

-				}

-			}

-		);

-	}

-

-	public void setSuite(String suiteName) {

-		fSuiteCombo.getEditor().setItem(suiteName);

-	}

-

-	private void addToHistory(final String suite) {

-		for (int i= 0; i < fSuiteCombo.getItemCount(); i++) {

-			if (suite.equals(fSuiteCombo.getItemAt(i))) {

-				fSuiteCombo.removeItemAt(i);

-				fSuiteCombo.insertItemAt(suite, 0);

-				fSuiteCombo.setSelectedIndex(0);

-				return;

-			}

-		}

-		fSuiteCombo.insertItemAt(suite, 0);

-		fSuiteCombo.setSelectedIndex(0);

-		pruneHistory();

-	}

-

-	private void pruneHistory() {

-		int historyLength= getPreference("maxhistory", HISTORY_LENGTH);

-		if (historyLength < 1)

-			historyLength= 1;

-		for (int i= fSuiteCombo.getItemCount()-1; i > historyLength-1; i--)

-			fSuiteCombo.removeItemAt(i);

-	}

-

-	private void appendFailure(Test test, Throwable t) {

-		fFailures.addElement(new TestFailure(test, t));

-		if (fFailures.size() == 1)

-			revealFailure(test);

-	}

-

-	private void revealFailure(Test test) {

-		for (Enumeration e= fTestRunViews.elements(); e.hasMoreElements(); ) {

-			TestRunView v= (TestRunView) e.nextElement();

-			v.revealFailure(test);

-		}

-	}

-

-	protected void aboutToStart(final Test testSuite) {

-		for (Enumeration e= fTestRunViews.elements(); e.hasMoreElements(); ) {

-			TestRunView v= (TestRunView) e.nextElement();

-			v.aboutToStart(testSuite, fTestResult);

-		}

-	}

-

-	protected void runFinished(final Test testSuite) {

-		SwingUtilities.invokeLater(

-			new Runnable() {

-				public void run() {

-					for (Enumeration e= fTestRunViews.elements(); e.hasMoreElements(); ) {

-						TestRunView v= (TestRunView) e.nextElement();

-						v.runFinished(testSuite, fTestResult);

-					}

-				}

-			}

-		);

-	}

-

-	protected CounterPanel createCounterPanel() {

-		return new CounterPanel();

-	}

-

-	protected JPanel createFailedPanel() {

-		JPanel failedPanel= new JPanel(new GridLayout(0, 1, 0, 2));

-		fRerunButton= new JButton("Run");

-		fRerunButton.setEnabled(false);

-		fRerunButton.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					rerun();

-				}

-			}

-		);

-		failedPanel.add(fRerunButton);

-		return failedPanel;

-	}

-

-	protected FailureDetailView createFailureDetailView() {

-		String className= BaseTestRunner.getPreference(FAILUREDETAILVIEW_KEY);

-		if (className != null) {

-			Class viewClass= null;

-			try {

-				viewClass= Class.forName(className);

-				return (FailureDetailView)viewClass.newInstance();

-			} catch(Exception e) {

-				JOptionPane.showMessageDialog(fFrame, "Could not create Failure DetailView - using default view");

-			}

-		}

-		return new DefaultFailureDetailView();

-	}

-

-	/**

-	 * Creates the JUnit menu. Clients override this

-	 * method to add additional menu items.

-	 */

-	protected JMenu createJUnitMenu() {

-		JMenu menu= new JMenu("JUnit");

-		menu.setMnemonic('J');

-		JMenuItem mi1= new JMenuItem("About...");

-		mi1.addActionListener(

-		    new ActionListener() {

-		        public void actionPerformed(ActionEvent event) {

-		            about();

-		        }

-		    }

-		);

-		mi1.setMnemonic('A');

-		menu.add(mi1);

-

-		menu.addSeparator();

-		JMenuItem mi2= new JMenuItem(" Exit ");

-		mi2.addActionListener(

-		    new ActionListener() {

-		        public void actionPerformed(ActionEvent event) {

-		            terminate();

-		        }

-		    }

-		);

-		mi2.setMnemonic('x');

-		menu.add(mi2);

-

-		return menu;

-	}

-

-	protected JFrame createFrame() {

-		JFrame frame= new JFrame("JUnit");

-		Image icon= loadFrameIcon();

-		if (icon != null)

-			frame.setIconImage(icon);

-		frame.getContentPane().setLayout(new BorderLayout(0, 0));

-

-		frame.addWindowListener(

-			new WindowAdapter() {

-				public void windowClosing(WindowEvent e) {

-					terminate();

-				}

-			}

-		);

-		return frame;

-	}

-

-	protected JLabel createLogo() {

-		JLabel label;

-		Icon icon= getIconResource(BaseTestRunner.class, "logo.gif");

-		if (icon != null)

-			label= new JLabel(icon);

-		else

-			label= new JLabel("JV");

-		label.setToolTipText("JUnit Version "+Version.id());

-		return label;

-	}

-

-	protected void createMenus(JMenuBar mb) {

-		mb.add(createJUnitMenu());

-	}

-

-	protected JCheckBox createUseLoaderCheckBox() {

-		boolean useLoader= useReloadingTestSuiteLoader();

-		JCheckBox box= new JCheckBox("Reload classes every run", useLoader);

-		box.setToolTipText("Use a custom class loader to reload the classes for every run");

-		if (inVAJava())

-			box.setVisible(false);

-		return box;

-	}

-

-	protected JButton createQuitButton() {

-		 // spaces required to avoid layout flicker

-		 // Exit is shorter than Stop that shows in the same column

-		JButton quit= new JButton(" Exit ");

-		quit.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					terminate();

-				}

-			}

-		);

-		return quit;

-	}

-

-	protected JButton createRunButton() {

-		JButton run= new JButton("Run");

-		run.setEnabled(true);

-		run.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					runSuite();

-				}

-			}

-		);

-		return run;

-	}

-

-	protected Component createBrowseButton() {

-		JButton browse= new JButton("...");

-		browse.setToolTipText("Select a Test class");

-		browse.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					browseTestClasses();

-				}

-			}

-		);

-		return browse;

-	}

-

-	protected StatusLine createStatusLine() {

-		return new StatusLine(380);

-	}

-

-	protected JComboBox createSuiteCombo() {

-		JComboBox combo= new JComboBox();

-		combo.setEditable(true);

-		combo.setLightWeightPopupEnabled(false);

-

-		combo.getEditor().getEditorComponent().addKeyListener(

-			new KeyAdapter() {

-				public void keyTyped(KeyEvent e) {

-					textChanged();

-					if (e.getKeyChar() == KeyEvent.VK_ENTER)

-						runSuite();

-				}

-			}

-		);

-		try {

-			loadHistory(combo);

-		} catch (IOException e) {

-			// fails the first time

-		}

-		combo.addItemListener(

-			new ItemListener() {

-				public void itemStateChanged(ItemEvent event) {

-					if (event.getStateChange() == ItemEvent.SELECTED) {

-						textChanged();

-					}

-				}

-			}

-		);

-		return combo;

-	}

-

-	protected JTabbedPane createTestRunViews() {

-		JTabbedPane pane= new JTabbedPane(JTabbedPane.BOTTOM);

-

-		FailureRunView lv= new FailureRunView(this);

-		fTestRunViews.addElement(lv);

-		lv.addTab(pane);

-

-		TestHierarchyRunView tv= new TestHierarchyRunView(this);

-		fTestRunViews.addElement(tv);

-		tv.addTab(pane);

-

-		pane.addChangeListener(

-			new ChangeListener() {

-				public void stateChanged(ChangeEvent e) {

-					testViewChanged();

-				}

-			}

-		);

-		return pane;

-	}

-

-	public void testViewChanged() {

-		TestRunView view= (TestRunView)fTestRunViews.elementAt(fTestViewTab.getSelectedIndex());

-		view.activate();

-	}

-

-	protected TestResult createTestResult() {

-		return new TestResult();

-	}

-

-	protected JFrame createUI(String suiteName) {

-		JFrame frame= createFrame();

-		JMenuBar mb= new JMenuBar();

-		createMenus(mb);

-		frame.setJMenuBar(mb);

-

-		JLabel suiteLabel= new JLabel("Test class name:");

-		fSuiteCombo= createSuiteCombo();

-		fRun= createRunButton();

-		frame.getRootPane().setDefaultButton(fRun);

-		Component browseButton= createBrowseButton();

-

-		fUseLoadingRunner= createUseLoaderCheckBox();

-		fProgressIndicator= new ProgressBar();

-		fCounterPanel= createCounterPanel();

-

-		fFailures= new DefaultListModel();

-

-		fTestViewTab= createTestRunViews();

-		JPanel failedPanel= createFailedPanel();

-

-		fFailureView= createFailureDetailView();

-		JScrollPane tracePane= new JScrollPane(fFailureView.getComponent(), JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

-

-		fStatusLine= createStatusLine();

-		fQuitButton= createQuitButton();

-		fLogo= createLogo();

-

-		JPanel panel= new JPanel(new GridBagLayout());

-

-		addGrid(panel, suiteLabel,	0, 0, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.WEST);

-		addGrid(panel, fSuiteCombo, 	0, 1, 1, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.WEST);

-		addGrid(panel, browseButton, 	1, 1, 1, GridBagConstraints.NONE, 			0.0, GridBagConstraints.WEST);

-		addGrid(panel, fRun, 		2, 1, 1, GridBagConstraints.HORIZONTAL, 	0.0, GridBagConstraints.CENTER);

-

-		addGrid(panel, fUseLoadingRunner,  	0, 2, 3, GridBagConstraints.NONE, 1.0, GridBagConstraints.WEST);

-		//addGrid(panel, new JSeparator(), 	0, 3, 3, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.WEST);

-

-

-		addGrid(panel, fProgressIndicator, 	0, 3, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.WEST);

-		addGrid(panel, fLogo, 			2, 3, 1, GridBagConstraints.NONE, 			0.0, GridBagConstraints.NORTH);

-

-		addGrid(panel, fCounterPanel,	 0, 4, 2, GridBagConstraints.NONE, 			0.0, GridBagConstraints.WEST);

-		addGrid(panel, new JSeparator(), 	0, 5, 2, GridBagConstraints.HORIZONTAL, 1.0, GridBagConstraints.WEST);

-		addGrid(panel, new JLabel("Results:"),	0, 6, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.WEST);

-

-		JSplitPane splitter= new JSplitPane(JSplitPane.VERTICAL_SPLIT, fTestViewTab, tracePane);

-		addGrid(panel, splitter, 	 0, 7, 2, GridBagConstraints.BOTH, 			1.0, GridBagConstraints.WEST);

-

-		addGrid(panel, failedPanel, 	 2, 7, 1, GridBagConstraints.HORIZONTAL, 	0.0, GridBagConstraints.NORTH/*CENTER*/);

-

-		addGrid(panel, fStatusLine, 	 0, 9, 2, GridBagConstraints.HORIZONTAL, 	1.0, GridBagConstraints.CENTER);

-		addGrid(panel, fQuitButton, 	 2, 9, 1, GridBagConstraints.HORIZONTAL, 	0.0, GridBagConstraints.CENTER);

-

-		frame.setContentPane(panel);

-		frame.pack();

-		frame.setLocation(200, 200);

-		return frame;

-	}

-

-	private void addGrid(JPanel p, Component co, int x, int y, int w, int fill, double wx, int anchor) {

-		GridBagConstraints c= new GridBagConstraints();

-		c.gridx= x; c.gridy= y;

-		c.gridwidth= w;

-		c.anchor= anchor;

-		c.weightx= wx;

-		c.fill= fill;

-		if (fill == GridBagConstraints.BOTH || fill == GridBagConstraints.VERTICAL)

-			c.weighty= 1.0;

-		c.insets= new Insets(y == 0 ? 10 : 0, x == 0 ? 10 : GAP, GAP, GAP); 

-		p.add(co, c);

-	}

-

-	protected String getSuiteText() {

-		if (fSuiteCombo == null)

-			return "";

-		return (String)fSuiteCombo.getEditor().getItem();

-	}

-

-	public ListModel getFailures() {

-		return fFailures;

-	}

-

-	public void insertUpdate(DocumentEvent event) {

-		textChanged();

-	}

-

-	public void browseTestClasses() {

-		TestCollector collector= createTestCollector();

-		TestSelector selector= new TestSelector(fFrame, collector);

-		if (selector.isEmpty()) {

-			JOptionPane.showMessageDialog(fFrame, "No Test Cases found.\nCheck that the configured \'TestCollector\' is supported on this platform.");

-			return;

-		}

-		selector.show();

-		String className= selector.getSelectedItem();

-		if (className != null)

-			setSuite(className);

-	}

-

-	TestCollector createTestCollector() {

-		String className= BaseTestRunner.getPreference(TESTCOLLECTOR_KEY);

-		if (className != null) {

-			Class collectorClass= null;

-			try {

-				collectorClass= Class.forName(className);

-				return (TestCollector)collectorClass.newInstance();

-			} catch(Exception e) {

-				JOptionPane.showMessageDialog(fFrame, "Could not create TestCollector - using default collector");

-			}

-		}

-		return new SimpleTestCollector();

-	}

-

-	private Image loadFrameIcon() {

-		ImageIcon icon= (ImageIcon)getIconResource(BaseTestRunner.class, "smalllogo.gif");

-		if (icon != null)

-			return icon.getImage();

-		return null;

-	}

-

-	private void loadHistory(JComboBox combo) throws IOException {

-		BufferedReader br= new BufferedReader(new FileReader(getSettingsFile()));

-		int itemCount= 0;

-		try {

-			String line;

-			while ((line= br.readLine()) != null) {

-				combo.addItem(line);

-				itemCount++;

-			}

-			if (itemCount > 0)

-				combo.setSelectedIndex(0);

-

-		} finally {

-			br.close();

-		}

-	}

-

-	private File getSettingsFile() {

-	 	String home= System.getProperty("user.home");

- 		return new File(home,".junitsession");

- 	}

-

-	private void postInfo(final String message) {

-		SwingUtilities.invokeLater(

-			new Runnable() {

-				public void run() {

-					showInfo(message);

-				}

-			}

-		);

-	}

-

-	private void postStatus(final String status) {

-		SwingUtilities.invokeLater(

-			new Runnable() {

-				public void run() {

-					showStatus(status);

-				}

-			}

-		);

-	}

-

-	public void removeUpdate(DocumentEvent event) {

-		textChanged();

-	}

-

-	private void rerun() {

-		TestRunView view= (TestRunView)fTestRunViews.elementAt(fTestViewTab.getSelectedIndex());

-		Test rerunTest= view.getSelectedTest();

-		if (rerunTest != null)

-			rerunTest(rerunTest);

-	}

-

-	private void rerunTest(Test test) {

-		if (!(test instanceof TestCase)) {

-			showInfo("Could not reload "+ test.toString());

-			return;

-		}

-		Test reloadedTest= null;

-		TestCase rerunTest= (TestCase)test;

-

-		try {

-			Class reloadedTestClass= getLoader().reload(test.getClass()); 

-			reloadedTest= TestSuite.createTest(reloadedTestClass, rerunTest.getName());

-		} catch(Exception e) {

-			showInfo("Could not reload "+ test.toString());

-			return;

-		}

-		TestResult result= new TestResult();

-		reloadedTest.run(result);

-

-		String message= reloadedTest.toString();

-		if(result.wasSuccessful())

-			showInfo(message+" was successful");

-		else if (result.errorCount() == 1)

-			showStatus(message+" had an error");

-		else

-			showStatus(message+" had a failure");

-	}

-

-	protected void reset() {

-		fCounterPanel.reset();

-		fProgressIndicator.reset();

-		fRerunButton.setEnabled(false);

-		fFailureView.clear();

-		fFailures.clear();

-	}

-

-	protected void runFailed(String message) {

-		showStatus(message);

-		fRun.setText("Run");

-		fRunner= null;

-	}

-

-	synchronized public void runSuite() {

-		if (fRunner != null) {

-			fTestResult.stop();

-		} else {

-			setLoading(shouldReload());

-			reset();

-			showInfo("Load Test Case...");

-			final String suiteName= getSuiteText();

-			final Test testSuite= getTest(suiteName);

-			if (testSuite != null) {

-				addToHistory(suiteName);

-				doRunTest(testSuite);

-			}

-		}

-	}

-

-	private boolean shouldReload() {

-		return !inVAJava() && fUseLoadingRunner.isSelected();

-	}

-

-

-	synchronized protected void runTest(final Test testSuite) {

-		if (fRunner != null) {

-			fTestResult.stop();

-		} else {

-			reset();

-			if (testSuite != null) {

-				doRunTest(testSuite);

-			}

-		}

-	}

-

-	private void doRunTest(final Test testSuite) {

-		setButtonLabel(fRun, "Stop");

-		fRunner= new Thread("TestRunner-Thread") {

-			public void run() {

-				TestRunner.this.start(testSuite);

-				postInfo("Running...");

-

-				long startTime= System.currentTimeMillis();

-				testSuite.run(fTestResult);

-

-				if (fTestResult.shouldStop()) {

-					postStatus("Stopped");

-				} else {

-					long endTime= System.currentTimeMillis();

-					long runTime= endTime-startTime;

-					postInfo("Finished: " + elapsedTimeAsString(runTime) + " seconds");

-				}

-				runFinished(testSuite);

-				setButtonLabel(fRun, "Run");

-				fRunner= null;

-				System.gc();

-			}

-		};

-		// make sure that the test result is created before we start the

-		// test runner thread so that listeners can register for it.

-		fTestResult= createTestResult();

-		fTestResult.addListener(TestRunner.this);

-		aboutToStart(testSuite);

-

-		fRunner.start();

-	}

-

-	private void saveHistory() throws IOException {

-		BufferedWriter bw= new BufferedWriter(new FileWriter(getSettingsFile()));

-		try {

-			for (int i= 0; i < fSuiteCombo.getItemCount(); i++) {

-				String testsuite= fSuiteCombo.getItemAt(i).toString();

-				bw.write(testsuite, 0, testsuite.length());

-				bw.newLine();

-			}

-		} finally {

-			bw.close();

-		}

-	}

-

-	private void setButtonLabel(final JButton button, final String label) {

-		SwingUtilities.invokeLater(

-			new Runnable() {

-				public void run() {

-					button.setText(label);

-				}

-			}

-		);

-	}

-

-	public void handleTestSelected(Test test) {

-		fRerunButton.setEnabled(test != null && (test instanceof TestCase));

-		showFailureDetail(test);

-	}

-

-	private void showFailureDetail(Test test) {

-		if (test != null) {

-			ListModel failures= getFailures();

-			for (int i= 0; i < failures.getSize(); i++) {

-				TestFailure failure= (TestFailure)failures.getElementAt(i);

-				if (failure.failedTest() == test) {

-					fFailureView.showFailure(failure);

-					return;

-				}

-			}

-		}

-		fFailureView.clear();

-	}

-

-	private void showInfo(String message) {

-		fStatusLine.showInfo(message);

-	}

-

-	private void showStatus(String status) {

-		fStatusLine.showError(status);

-	}

-

-	/**

-	 * Starts the TestRunner

-	 */

-	public void start(String[] args) {

-		String suiteName= processArguments(args);

-		fFrame= createUI(suiteName);

-		fFrame.pack();

-		fFrame.setVisible(true);

-

-		if (suiteName != null) {

-			setSuite(suiteName);

-			runSuite();

-		}

-	}

-

-	private void start(final Test test) {

-		SwingUtilities.invokeLater(

-			new Runnable() {

-				public void run() {

-					int total= test.countTestCases();

-					fProgressIndicator.start(total);

-					fCounterPanel.setTotal(total);

-				}

-			}

-		);

-	}

-

-	/**

-	 * Wait until all the events are processed in the event thread

-	 */

-	private void synchUI() {

-		try {

-			SwingUtilities.invokeAndWait(

-				new Runnable() {

-					public void run() {}

-				}

-			);

-		}

-		catch (Exception e) {

-		}

-	}

-

-	/**

-	 * Terminates the TestRunner

-	 */

-	public void terminate() {

-		fFrame.dispose();

-		try {

-			saveHistory();

-		} catch (IOException e) {

-			System.out.println("Couldn't save test run history");

-		}

-		System.exit(0);

-	}

-

-	public void textChanged() {

-		fRun.setEnabled(getSuiteText().length() > 0);

-		clearStatus();

-	}

-

-	protected void clearStatus() {

-		fStatusLine.clear();

-	}

-

-	public static Icon getIconResource(Class clazz, String name) {

-		URL url= clazz.getResource(name);

-		if (url == null) {

-			System.err.println("Warning: could not load \""+name+"\" icon");

-			return null;

-		}

-		return new ImageIcon(url);

-	}

-

-	private void about() {

-		AboutDialog about= new AboutDialog(fFrame);

-		about.show();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestSelector.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestSelector.js
deleted file mode 100644
index f2eaa7f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestSelector.js
+++ /dev/null
@@ -1,258 +0,0 @@
-package junit.swingui;

-

-import java.awt.*;

-import java.awt.event.*;

-import java.util.*;

-

-import javax.swing.*;

-import javax.swing.event.*;

-import junit.runner.*;

-

-/**

- * A test class selector. A simple dialog to pick the name of a test suite.

- */

-class TestSelector extends JDialog {

-	private JButton fCancel;

-	private JButton fOk;

-	private JList fList;

-	private JScrollPane fScrolledList;

-	private JLabel fDescription;

-	private String fSelectedItem;

-	

-	/**

-	 * Renders TestFailures in a JList

-	 */

-	static class TestCellRenderer extends DefaultListCellRenderer {

-		Icon fLeafIcon;

-		Icon fSuiteIcon;

-		

-		public TestCellRenderer() {

-			fLeafIcon= UIManager.getIcon("Tree.leafIcon");

-			fSuiteIcon= UIManager.getIcon("Tree.closedIcon");

-		}

-		

-		public Component getListCellRendererComponent(

-				JList list, Object value, int modelIndex, 

-				boolean isSelected, boolean cellHasFocus) {

-			Component c= super.getListCellRendererComponent(list, value, modelIndex, isSelected, cellHasFocus);

-			String displayString= displayString((String)value);

-			

-			if (displayString.startsWith("AllTests"))

-				setIcon(fSuiteIcon);

-			else

-				setIcon(fLeafIcon);

-				

-			setText(displayString);

-		    	return c;

-		}

-		

-		public static String displayString(String className) {

-			int typeIndex= className.lastIndexOf('.');

-    			if (typeIndex < 0) 

-    				return className;

-    			return className.substring(typeIndex+1) + " - " + className.substring(0, typeIndex);

-		}

-		

-		public static boolean matchesKey(String s, char ch) {

-    			return ch == Character.toUpperCase(s.charAt(typeIndex(s)));

-		}

-		

-		private static int typeIndex(String s) {

-			int typeIndex= s.lastIndexOf('.');

-			int i= 0;

-    			if (typeIndex > 0) 

-    				i= typeIndex+1;

-    			return i;

-		}

-	}

-	

-	protected class DoubleClickListener extends MouseAdapter {

-		public void mouseClicked(MouseEvent e) {

-	    		if (e.getClickCount() == 2) {

-	    			okSelected();

-	    		}

-	      }

-	}

-	

-	protected class KeySelectListener extends KeyAdapter {

-		public void keyTyped(KeyEvent e) {

-			keySelectTestClass(e.getKeyChar());

-		}

-	}

-

-	public TestSelector(Frame parent, TestCollector testCollector) {

-		super(parent, true);

-		setSize(350, 300);

-		setResizable(false);

-		// setLocationRelativeTo only exists in 1.4

-		try {

-			setLocationRelativeTo(parent);

-		} catch (NoSuchMethodError e) {

-			centerWindow(this);

-		}

-		setTitle("Test Selector");

-		

-		Vector list= null;

-		try {

-			parent.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

-			list= createTestList(testCollector);

-		} finally {

-			parent.setCursor(Cursor.getDefaultCursor());

-		}

-		fList= new JList(list);

-		fList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

-		fList.setCellRenderer(new TestCellRenderer());

-		fScrolledList= new JScrollPane(fList);

-

-		fCancel= new JButton("Cancel");

-		fDescription= new JLabel("Select the Test class:");

-		fOk= new JButton("OK");

-		fOk.setEnabled(false);

-		getRootPane().setDefaultButton(fOk);

-		

-		defineLayout();

-		addListeners();

-	}

-

-	public static void centerWindow(Component c) {

-		Dimension paneSize= c.getSize();

-		Dimension screenSize= c.getToolkit().getScreenSize();

-		c.setLocation((screenSize.width-paneSize.width)/2, (screenSize.height-paneSize.height)/2);

-	}

-	

-	private void addListeners() {

-		fCancel.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					dispose();

-				}

-			}

-		);

-		

-		fOk.addActionListener(

-			new ActionListener() {

-				public void actionPerformed(ActionEvent e) {

-					okSelected();

-				}

-			}

-		);

-

-		fList.addMouseListener(new DoubleClickListener());

-		fList.addKeyListener(new KeySelectListener());

-		fList.addListSelectionListener(

-			new ListSelectionListener() {

-				public void valueChanged(ListSelectionEvent e) {

-					checkEnableOK(e);

-				}

-			}

-		);

-

-		addWindowListener(

-			new WindowAdapter() {

-				public void windowClosing(WindowEvent e) {

-					dispose();

-				}

-			}

-		);

-	}

-	

-	private void defineLayout() {

-		getContentPane().setLayout(new GridBagLayout());

-		GridBagConstraints labelConstraints = new GridBagConstraints();

-		labelConstraints.gridx= 0; labelConstraints.gridy= 0;

-		labelConstraints.gridwidth= 1; labelConstraints.gridheight= 1;

-		labelConstraints.fill= GridBagConstraints.BOTH;

-		labelConstraints.anchor= GridBagConstraints.WEST;

-		labelConstraints.weightx= 1.0;

-		labelConstraints.weighty= 0.0;

-		labelConstraints.insets= new Insets(8, 8, 0, 8);

-		getContentPane().add(fDescription, labelConstraints);

-

-		GridBagConstraints listConstraints = new GridBagConstraints();

-		listConstraints.gridx= 0; listConstraints.gridy= 1;

-		listConstraints.gridwidth= 4; listConstraints.gridheight= 1;

-		listConstraints.fill= GridBagConstraints.BOTH;

-		listConstraints.anchor= GridBagConstraints.CENTER;

-		listConstraints.weightx= 1.0;

-		listConstraints.weighty= 1.0;

-		listConstraints.insets= new Insets(8, 8, 8, 8);

-		getContentPane().add(fScrolledList, listConstraints);

-		

-		GridBagConstraints okConstraints= new GridBagConstraints();

-		okConstraints.gridx= 2; okConstraints.gridy= 2;

-		okConstraints.gridwidth= 1; okConstraints.gridheight= 1;

-		okConstraints.anchor= java.awt.GridBagConstraints.EAST;

-		okConstraints.insets= new Insets(0, 8, 8, 8);

-		getContentPane().add(fOk, okConstraints);

-

-

-		GridBagConstraints cancelConstraints = new GridBagConstraints();

-		cancelConstraints.gridx= 3; cancelConstraints.gridy= 2;

-		cancelConstraints.gridwidth= 1; cancelConstraints.gridheight= 1;

-		cancelConstraints.anchor= java.awt.GridBagConstraints.EAST;

-		cancelConstraints.insets= new Insets(0, 8, 8, 8);

-		getContentPane().add(fCancel, cancelConstraints);

-	}

-	

-	public void checkEnableOK(ListSelectionEvent e) {

-		fOk.setEnabled(fList.getSelectedIndex() != -1);

-	}

-	

-	public void okSelected() {

-		fSelectedItem= (String)fList.getSelectedValue();

-		dispose();

-	}

-	

-	public boolean isEmpty() {

-		return fList.getModel().getSize() == 0;

-	}

-	

-	public void keySelectTestClass(char ch) {

-		ListModel model= fList.getModel();

-		if (!Character.isJavaIdentifierStart(ch))

-			return;

-		for (int i= 0; i < model.getSize(); i++) {

-			String s= (String)model.getElementAt(i);

-			if (TestCellRenderer.matchesKey(s, Character.toUpperCase(ch))) {

-				fList.setSelectedIndex(i);

-				fList.ensureIndexIsVisible(i);

-				return;

-			}

-		}

-		Toolkit.getDefaultToolkit().beep();

-	}

-	

-	public String getSelectedItem() {

-		return fSelectedItem;

-	}

-

-	private Vector createTestList(TestCollector collector) {

-    		Enumeration each= collector.collectTests();

-    		Vector v= new Vector(200);

-    		Vector displayVector= new Vector(v.size());

-    		while(each.hasMoreElements()) {

-    			String s= (String)each.nextElement();

-    			v.addElement(s);

-    			displayVector.addElement(TestCellRenderer.displayString(s));

-    		}

-    		if (v.size() > 0)

-    			Sorter.sortStrings(displayVector, 0, displayVector.size()-1, new ParallelSwapper(v));

-    		return v;

-	}

-	

-	private class ParallelSwapper implements Sorter.Swapper {

-		Vector fOther;

-		

-		ParallelSwapper(Vector other) {

-			fOther= other;

-		}

-		public void swap(Vector values, int left, int right) {

-			Object tmp= values.elementAt(left); 

-			values.setElementAt(values.elementAt(right), left); 

-			values.setElementAt(tmp, right);

-			Object tmp2= fOther.elementAt(left);

-			fOther.setElementAt(fOther.elementAt(right), left);

-			fOther.setElementAt(tmp2, right);

-		}			

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestSuitePanel.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestSuitePanel.js
deleted file mode 100644
index f233f48..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestSuitePanel.js
+++ /dev/null
@@ -1,159 +0,0 @@
-package junit.swingui;

-

-import java.awt.*;

-import java.util.Vector;

-

-import javax.swing.*;

-import javax.swing.tree.*;

-import junit.framework.*;

-

-/**

- * A Panel showing a test suite as a tree. 

- */

-class TestSuitePanel extends JPanel implements TestListener {

-	private JTree fTree;

-	private JScrollPane fScrollTree;

-	private TestTreeModel fModel;

-

-	static class TestTreeCellRenderer extends DefaultTreeCellRenderer {

-		private Icon fErrorIcon;

-		private Icon fOkIcon;

-		private Icon fFailureIcon;

-		

-		TestTreeCellRenderer() {

-	    		super();

-	    		loadIcons();

-		}

-		

-		void loadIcons() {

-			fErrorIcon= TestRunner.getIconResource(getClass(), "icons/error.gif");

-	    		fOkIcon= TestRunner.getIconResource(getClass(), "icons/ok.gif");

-	    		fFailureIcon= TestRunner.getIconResource(getClass(), "icons/failure.gif");

-		}

-		

-		String stripParenthesis(Object o) {

-			String text= o.toString ();

-    			int pos= text.indexOf('(');

-    			if (pos < 1)

-    				return text;

-    			return text.substring (0, pos);

-  		}

-

-		public Component getTreeCellRendererComponent(JTree tree, Object value,

-				boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {

-			

-			Component c= super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);

-	  		TreeModel model= tree.getModel();

-	  		if (model instanceof TestTreeModel) {	

-				TestTreeModel testModel= (TestTreeModel)model;

-				Test t= (Test)value;

-				String s= "";

-	    		if (testModel.isFailure(t)) {

-	    			if (fFailureIcon != null)

-	    				setIcon(fFailureIcon);

-	    			s= " - Failed";

-	    		}

-	    		else if (testModel.isError(t)) {

-	    			if (fErrorIcon != null)

-	    				setIcon(fErrorIcon);

-	    			s= " - Error";

-	    		}

-	    		else if (testModel.wasRun(t)) {

-	    			if (fOkIcon != null)

-	    				setIcon(fOkIcon);

-	    			s= " - Passed";

-	    		}

-	    		if (c instanceof JComponent)

-	    			((JComponent)c).setToolTipText(getText()+s);

-	  		}

-	  		setText(stripParenthesis(value));

-			return c;

-		}

-	}

-	

-	public TestSuitePanel() {

-		super(new BorderLayout());

-		setPreferredSize(new Dimension(300, 100));

-		fTree= new JTree();

-		fTree.setModel(null);

-		fTree.setRowHeight(20);

-		ToolTipManager.sharedInstance().registerComponent(fTree);	

-		fTree.putClientProperty("JTree.lineStyle", "Angled");

-		fScrollTree= new JScrollPane(fTree);

-		add(fScrollTree, BorderLayout.CENTER);

-	}

-		

-	public void addError(final Test test, final Throwable t) {

- 		fModel.addError(test);

-		fireTestChanged(test, true);

-	}

-	

-	public void addFailure(final Test test, final AssertionFailedError t) {

- 		fModel.addFailure(test);

-		fireTestChanged(test, true);

-	}

-	

-	/**

- 	 * A test ended.

- 	 */

- 	public void endTest(Test test) {

-		fModel.addRunTest(test);

-	 	fireTestChanged(test, false);

- 	}

-

-	/**

- 	 * A test started.

- 	 */

- 	public void startTest(Test test) {

- 	} 	  

- 			

-	/**

-	 * Returns the selected test or null if multiple or none is selected

-	 */

-	public Test getSelectedTest() {

-		TreePath[] paths= fTree.getSelectionPaths();

-		if (paths != null && paths.length == 1)

-			return (Test)paths[0].getLastPathComponent();

-		return null;

-	}

-

-	/**

-	 * Returns the Tree

-	 */

-	public JTree getTree() {

-		return fTree;

-	}

-

-	/**

-	 * Shows the test hierarchy starting at the given test

-	 */

-	public void showTestTree(Test root) {

-		fModel= new TestTreeModel(root);

-		fTree.setModel(fModel);

-		fTree.setCellRenderer(new TestTreeCellRenderer());

-	}

-	

-	private void fireTestChanged(final Test test, final boolean expand) {

-		SwingUtilities.invokeLater(

-			new Runnable() {

-				public void run() {

-					Vector vpath= new Vector();

-					int index= fModel.findTest(test, (Test)fModel.getRoot(), vpath);

-					if (index >= 0) {

-						Object[] path= new Object[vpath.size()];

-						vpath.copyInto(path);

-						TreePath treePath= new TreePath(path);

-						fModel.fireNodeChanged(treePath, index);

-						if (expand) {

-							Object[] fullPath= new Object[vpath.size()+1];

-							vpath.copyInto(fullPath);

-							fullPath[vpath.size()]= fModel.getChild(treePath.getLastPathComponent(), index);;

-							TreePath fullTreePath= new TreePath(fullPath);

-							fTree.scrollPathToVisible(fullTreePath);

-						}

-					}

-				}

-			}

-		);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestTreeModel.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestTreeModel.js
deleted file mode 100644
index a1c79f0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/swingui/TestTreeModel.js
+++ /dev/null
@@ -1,184 +0,0 @@
-package junit.swingui;

-

-import java.util.*;

-

-import javax.swing.event.*;

-import javax.swing.tree.*;

-import junit.extensions.TestDecorator;

-import junit.framework.*;

-

-/**

- * A tree model for a Test.

- */

-class TestTreeModel implements TreeModel {

-	private Test fRoot;

-	private Vector fModelListeners= new Vector();

-	private Hashtable fFailures= new Hashtable();

-	private Hashtable fErrors= new Hashtable();

-	private Hashtable fRunTests= new Hashtable();

-	

-	/**

-	 * Constructs a tree model with the given test as its root.

-	 */

-	public TestTreeModel(Test root) {

-		super();

-		fRoot= root;

-	}

-	

-	/**

-	 * adds a TreeModelListener

-	 */

-	public void addTreeModelListener(TreeModelListener l) {

-		if (!fModelListeners.contains(l))

-			fModelListeners.addElement(l);

-	}

-	/**

-	 * Removes a TestModelListener

-	 */

-	public void removeTreeModelListener(TreeModelListener l) {

-		fModelListeners.removeElement(l);

-	}

-	/**

-	 * Finds the path to a test. Returns the index of the test in its

-	 * parent test suite.

-	 */

-	public int findTest(Test target, Test node, Vector path) {

-		if (target.equals(node)) 

-			return 0;

-			

-		TestSuite suite= isTestSuite(node);

-		for (int i= 0; i < getChildCount(node); i++) {

-			Test t= suite.testAt(i); 

-			int index= findTest(target, t, path);

-			if (index >= 0) {

-				path.insertElementAt(node, 0);

-				if (path.size() == 1)

-					return i;

-				return index;

-			}

-		}

-		return -1;

-	}

-	/**

-	 * Fires a node changed event

-	 */

-	public void fireNodeChanged(TreePath path, int index) {

-		int[] indices= {index};

-		Object[] changedChildren= {getChild(path.getLastPathComponent(), index)};

-		TreeModelEvent event= new TreeModelEvent(this, path, indices, changedChildren);

-		

-		Enumeration e= fModelListeners.elements();

-		while (e.hasMoreElements()) { 

-			TreeModelListener l= (TreeModelListener) e.nextElement();

-			l.treeNodesChanged(event);

-		}	

-	}

-	/**

-	 * Gets the test at the given index

-	 */

-	public Object getChild(Object parent, int index) {

-		TestSuite suite= isTestSuite(parent);

-		if (suite != null) 

-			return suite.testAt(index);

-		return null; 

-	}

-	/**

-	 * Gets the number of tests.

-	 */

-	public int getChildCount(Object parent) {

-		TestSuite suite= isTestSuite(parent);

-		if (suite != null) 

-			return suite.testCount();

-		return 0;

-	}

-	/**

-	 * Gets the index of a test in a test suite

-	 */

-	public int getIndexOfChild(Object parent, Object child) {

-		TestSuite suite= isTestSuite(parent);

-		if (suite != null) {

-			int i= 0;

-			for (Enumeration e= suite.tests(); e.hasMoreElements(); i++) {

-				if (child.equals((Test)e.nextElement()))

-					return i;

-			}

-		}

-		return -1; 

-	}

-	/**

-	 * Returns the root of the tree

-	 */

-	public Object getRoot() {

-		return fRoot;

-	}

-	/**

-	 * Tests if the test is a leaf.

-	 */

-	public boolean isLeaf(Object node) {

-		return isTestSuite(node) == null;

-	}

-	/**

-	 * Tests if the node is a TestSuite.

-	 */

-	TestSuite isTestSuite(Object node) {

-		if (node instanceof TestSuite) 

-			return (TestSuite)node;

-		if (node instanceof TestDecorator) { 

-			Test baseTest= ((TestDecorator)node).getTest(); 

-			return isTestSuite(baseTest); 

-		} 

-		return null;

-	}

-	

-	/**

-	 * Called when the value of the model object was changed in the view

-	 */

-	public void valueForPathChanged(TreePath path, Object newValue) {

-		// we don't support direct editing of the model

-		System.out.println("TreeModel.valueForPathChanged: not implemented");

-	}

-	/**

-	 * Remembers a test failure

-	 */

-	void addFailure(Test t) {

-		fFailures.put(t, t);

-	}

-	/**

-	 * Remembers a test error

-	 */

-	void addError(Test t) {

-		fErrors.put(t, t);

-	}

-	/**

-	 * Remembers that a test was run

-	 */

-	void addRunTest(Test t) {

-		fRunTests.put(t, t);

-	}

-	/**

-	 * Returns whether a test was run

-	 */

-	boolean wasRun(Test t) {

-		return fRunTests.get(t) != null;

-	}

-	/**

-	 * Tests whether a test was an error

-	 */

-	boolean isError(Test t) {

-		return (fErrors != null) && fErrors.get(t) != null;

-	}

-	/**

-	 * Tests whether a test was a failure

-	 */

-	boolean isFailure(Test t) {

-		return (fFailures != null) && fFailures.get(t) != null;

-	}

-	/**

-	 * Resets the test results

-	 */

-	void resetResults() {

-		fFailures= new Hashtable();

-		fRunTests= new Hashtable();

-		fErrors= new Hashtable();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/textui/ResultPrinter.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/textui/ResultPrinter.js
deleted file mode 100644
index 6057165..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/textui/ResultPrinter.js
+++ /dev/null
@@ -1,138 +0,0 @@
-

-package junit.textui;

-

-import java.io.PrintStream;

-import java.text.NumberFormat;

-import java.util.Enumeration;

-

-import junit.framework.AssertionFailedError;

-import junit.framework.Test;

-import junit.framework.TestFailure;

-import junit.framework.TestListener;

-import junit.framework.TestResult;

-import junit.runner.BaseTestRunner;

-

-public class ResultPrinter implements TestListener {

-	PrintStream fWriter;

-	int fColumn= 0;

-	

-	public ResultPrinter(PrintStream writer)

-		fWriter= writer;

-	

-	/* API for use by textui.TestRunner

-	 */

-

-	synchronized void print(TestResult result, long runTime) {

-		printHeader(runTime);

-	    printErrors(result);

-	    printFailures(result);

-	    printFooter(result);

-	}

-

-	void printWaitPrompt() {

-		getWriter().println();

-		getWriter().println("<RETURN> to continue");

-	}

-	

-	/* Internal methods 

-	 */

-

-	protected void printHeader(long runTime) {

-		getWriter().println();

-		getWriter().println("Time: "+elapsedTimeAsString(runTime));

-	}

-	

-	protected void printErrors(TestResult result) {

-		printDefects(result.errors(), result.errorCount(), "error");

-	}

-	

-	protected void printFailures(TestResult result) {

-		printDefects(result.failures(), result.failureCount(), "failure");

-	}

-	

-	protected void printDefects(Enumeration booBoos, int count, String type) {

-		if (count == 0) return;

-		if (count == 1)

-			getWriter().println("There was " + count + " " + type + ":");

-		else

-			getWriter().println("There were " + count + " " + type + "s:");

-		for (int i= 1; booBoos.hasMoreElements(); i++) {

-			printDefect((TestFailure) booBoos.nextElement(), i);

-		}

-	}

-	

-	public void printDefect(TestFailure booBoo, int count) { // only public for testing purposes

-		printDefectHeader(booBoo, count);

-		printDefectTrace(booBoo);

-	}

-

-	protected void printDefectHeader(TestFailure booBoo, int count) {

-		// I feel like making this a println, then adding a line giving the throwable a chance to print something

-		// before we get to the stack trace.

-		getWriter().print(count + ") " + booBoo.failedTest());

-	}

-

-	protected void printDefectTrace(TestFailure booBoo) {

-		getWriter().print(BaseTestRunner.getFilteredTrace(booBoo.trace()));

-	}

-

-	protected void printFooter(TestResult result) {

-		if (result.wasSuccessful()) {

-			getWriter().println();

-			getWriter().print("OK");

-			getWriter().println (" (" + result.runCount() + " test" + (result.runCount() == 1 ? "": "s") + ")");

-

-		} else {

-			getWriter().println();

-			getWriter().println("FAILURES!!!");

-			getWriter().println("Tests run: "+result.runCount()+ 

-				         ",  Failures: "+result.failureCount()+

-				         ",  Errors: "+result.errorCount());

-		}

-	    getWriter().println();

-	}

-

-

-	/**

-	 * Returns the formatted string of the elapsed time.

-	 * Duplicated from BaseTestRunner. Fix it.

-	 */

-	protected String elapsedTimeAsString(long runTime) {

-		return NumberFormat.getInstance().format((double)runTime/1000);

-	}

-

-	public PrintStream getWriter() {

-		return fWriter;

-	}

-	/**

-	 * @see junit.framework.TestListener#addError(Test, Throwable)

-	 */

-	public void addError(Test test, Throwable t) {

-		getWriter().print("E");

-	}

-

-	/**

-	 * @see junit.framework.TestListener#addFailure(Test, AssertionFailedError)

-	 */

-	public void addFailure(Test test, AssertionFailedError t) {

-		getWriter().print("F");

-	}

-

-	/**

-	 * @see junit.framework.TestListener#endTest(Test)

-	 */

-	public void endTest(Test test) {

-	}

-

-	/**

-	 * @see junit.framework.TestListener#startTest(Test)

-	 */

-	public void startTest(Test test) {

-		getWriter().print(".");

-		if (fColumn++ >= 40) {

-			getWriter().println();

-			fColumn= 0;

-		}

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/textui/TestRunner.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/textui/TestRunner.js
deleted file mode 100644
index a34bdfd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/junit/textui/TestRunner.js
+++ /dev/null
@@ -1,189 +0,0 @@
-package junit.textui;

-

-

-import java.io.PrintStream;

-

-import junit.framework.*;

-import junit.runner.*;

-

-/**

- * A command line based tool to run tests.

- * <pre>

- * java junit.textui.TestRunner [-wait] TestCaseClass

- * </pre>

- * TestRunner expects the name of a TestCase class as argument.

- * If this class defines a static <code>suite</code> method it 

- * will be invoked and the returned test is run. Otherwise all 

- * the methods starting with "test" having no arguments are run.

- * <p>

- * When the wait command line argument is given TestRunner

- * waits until the users types RETURN.

- * <p>

- * TestRunner prints a trace as the tests are executed followed by a

- * summary at the end. 

- */

-public class TestRunner extends BaseTestRunner {

-	private ResultPrinter fPrinter;

-	

-	public static final int SUCCESS_EXIT= 0;

-	public static final int FAILURE_EXIT= 1;

-	public static final int EXCEPTION_EXIT= 2;

-

-	/**

-	 * Constructs a TestRunner.

-	 */

-	public TestRunner() {

-		this(System.out);

-	}

-

-	/**

-	 * Constructs a TestRunner using the given stream for all the output

-	 */

-	public TestRunner(PrintStream writer) {

-		this(new ResultPrinter(writer));

-	}

-	

-	/**

-	 * Constructs a TestRunner using the given ResultPrinter all the output

-	 */

-	public TestRunner(ResultPrinter printer) {

-		fPrinter= printer;

-	}

-	

-	/**

-	 * Runs a suite extracted from a TestCase subclass.

-	 */

-	static public void run(Class testClass) {

-		run(new TestSuite(testClass));

-	}

-

-	/**

-	 * Runs a single test and collects its results.

-	 * This method can be used to start a test run

-	 * from your program.

-	 * <pre>

-	 * public static void main (String[] args) {

-	 *     test.textui.TestRunner.run(suite());

-	 * }

-	 * </pre>

-	 */

-	static public TestResult run(Test test) {

-		TestRunner runner= new TestRunner();

-		return runner.doRun(test);

-	}

-

-	/**

-	 * Runs a single test and waits until the user

-	 * types RETURN.

-	 */

-	static public void runAndWait(Test suite) {

-		TestRunner aTestRunner= new TestRunner();

-		aTestRunner.doRun(suite, true);

-	}

-

-	/**

-	 * Always use the StandardTestSuiteLoader. Overridden from

-	 * BaseTestRunner.

-	 */

-	public TestSuiteLoader getLoader() {

-		return new StandardTestSuiteLoader();

-	}

-

-	public void testFailed(int status, Test test, Throwable t) {

-	}

-	

-	public void testStarted(String testName) {

-	}

-	

-	public void testEnded(String testName) {

-	}

-

-	/**

-	 * Creates the TestResult to be used for the test run.

-	 */

-	protected TestResult createTestResult() {

-		return new TestResult();

-	}

-	

-	public TestResult doRun(Test test) {

-		return doRun(test, false);

-	}

-	

-	public TestResult doRun(Test suite, boolean wait) {

-		TestResult result= createTestResult();

-		result.addListener(fPrinter);

-		long startTime= System.currentTimeMillis();

-		suite.run(result);

-		long endTime= System.currentTimeMillis();

-		long runTime= endTime-startTime;

-		fPrinter.print(result, runTime);

-

-		pause(wait);

-		return result;

-	}

-

-	protected void pause(boolean wait) {

-		if (!wait) return;

-		fPrinter.printWaitPrompt();

-		try {

-			System.in.read();

-		}

-		catch(Exception e) {

-		}

-	}

-	

-	public static void main(String args[]) {

-		TestRunner aTestRunner= new TestRunner();

-		try {

-			TestResult r= aTestRunner.start(args);

-			if (!r.wasSuccessful()) 

-				System.exit(FAILURE_EXIT);

-			System.exit(SUCCESS_EXIT);

-		} catch(Exception e) {

-			System.err.println(e.getMessage());

-			System.exit(EXCEPTION_EXIT);

-		}

-	}

-

-	/**

-	 * Starts a test run. Analyzes the command line arguments

-	 * and runs the given test suite.

-	 */

-	protected TestResult start(String args[]) throws Exception {

-		String testCase= "";

-		boolean wait= false;

-		

-		for (int i= 0; i < args.length; i++) {

-			if (args[i].equals("-wait"))

-				wait= true;

-			else if (args[i].equals("-c")) 

-				testCase= extractClassName(args[++i]);

-			else if (args[i].equals("-v"))

-				System.err.println("JUnit "+Version.id()+" by Kent Beck and Erich Gamma");

-			else

-				testCase= args[i];

-		}

-		

-		if (testCase.equals("")) 

-			throw new Exception("Usage: TestRunner [-wait] testCaseName, where name is the name of the TestCase class");

-

-		try {

-			Test suite= getTest(testCase);

-			return doRun(suite, wait);

-		}

-		catch(Exception e) {

-			throw new Exception("Could not create and run test suite: "+e);

-		}

-	}

-		

-	protected void runFailed(String message) {

-		System.err.println(message);

-		System.exit(FAILURE_EXIT);

-	}

-	

-	public void setPrinter(ResultPrinter printer) {

-		fPrinter= printer;

-	}

-		

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p1/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p1/A.js
deleted file mode 100644
index f662ea4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p1/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package p1;

-

-public class A {

-

-	public static void foo() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p2/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p2/A.js
deleted file mode 100644
index 7344a8f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p2/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p2;

-

-public class A {

-	public static void foo() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p3/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p3/B.js
deleted file mode 100644
index 795526c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/p3/B.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package p3;

-

-import p1.*;

-

-public class B {

-

-	public static void bar() {

-		p2.A.foo();

-	}

-	public static void main(String[] args) {

-		A.foo();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0001/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0001/Test.js
deleted file mode 100644
index 637eb4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0001/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function main(args) {

-	print("Hello" + " world");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0002/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0002/Test.js
deleted file mode 100644
index 6129f7b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0002/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function main(args) {

-	print(new Object());

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0003/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0003/Test.js
deleted file mode 100644
index 62ef822..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0003/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main(args) {

-		System.out.println(new java.lang.Object());

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0004/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0004/Test.js
deleted file mode 100644
index adfe819..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0004/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main(args) {

-		System.out.println(new java.lang.Exception("ERROR"));

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0005/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0005/Test.js
deleted file mode 100644
index 7f0196e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0005/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function main(args) {

-	args[5](1);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0006/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0006/Test.js
deleted file mode 100644
index 286d207..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0006/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//	public static void main(String[] args) {

-//		System.out.println(new java.lang.Runnable() { public void run() {}});

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0007/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0007/Test.js
deleted file mode 100644
index 422c099..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0007/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-

-//	public static void main(String[] args) {

-//		System.out.println(new Test().new D());

-//	}

-//	class D {

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0008/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0008/Test.js
deleted file mode 100644
index bd67d19..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0008/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main( args) {

-		System.out.println([1, 2, 3, 4]);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0009/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0009/Test.js
deleted file mode 100644
index 7e9a3b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0009/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main( args) {

-		System.out.println([[1], [2]]);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0010/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0010/Test.js
deleted file mode 100644
index e734abe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0010/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-

-//	public static void main(String[] args) {

-//		System.out.println(new int[3]);

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0011/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0011/Test.js
deleted file mode 100644
index 60b6c6c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0011/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0011;

-import java.util.*;

-public class Test {

-

-	public static void main(String[] args) {

-		System.out.println(new int[3][]);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0012/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0012/Test.js
deleted file mode 100644
index 5903664..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0012/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0012;

-import java.util.*;

-public class Test {

-

-	public static void main(String[] args) {

-		System.out.println(new int[][] {{}, {}});

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0013/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0013/Test.js
deleted file mode 100644
index 28d7ea6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0013/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main( args) {

-		var i;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0014/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0014/Test.js
deleted file mode 100644
index 7ebb364..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0014/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main( args) {

-		var i = 0;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0015/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0015/Test.js
deleted file mode 100644
index 0533c1e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0015/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main( args) {

-		var i = 0;

-		i = 1;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0016/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0016/Test.js
deleted file mode 100644
index 6a5dee5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0016/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main( args) {

-		var i = 0;

-		i += 2;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0017/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0017/Test.js
deleted file mode 100644
index 6db136e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0017/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main( args) {

-		var i = 0;

-		i -= 2;

-	}

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0018/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0018/Test.js
deleted file mode 100644
index 9ebce8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0018/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i *= 2;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0019/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0019/Test.js
deleted file mode 100644
index e32f353..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0019/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i /= 2;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0020/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0020/Test.js
deleted file mode 100644
index 47e85c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0020/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i &= 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0021/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0021/Test.js
deleted file mode 100644
index a86e2d1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0021/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i |= 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0022/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0022/Test.js
deleted file mode 100644
index 764418c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0022/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i ^= 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0023/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0023/Test.js
deleted file mode 100644
index 528fd89..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0023/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i %= 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0024/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0024/Test.js
deleted file mode 100644
index c91b609..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0024/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i <<= 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0025/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0025/Test.js
deleted file mode 100644
index fc2a9e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0025/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i >>= 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0026/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0026/Test.js
deleted file mode 100644
index 9b9f724..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0026/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i >>>= 2;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0027/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0027/Test.js
deleted file mode 100644
index 0df0f76..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0027/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		--i;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0028/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0028/Test.js
deleted file mode 100644
index 98413eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0028/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		++i;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0029/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0029/Test.js
deleted file mode 100644
index e1db223..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0029/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i--;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0030/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0030/Test.js
deleted file mode 100644
index f296e14..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0030/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 0;

-		i++;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0031/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0031/Test.js
deleted file mode 100644
index f034fdc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0031/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//	public static void main(String[] args) {

-//		Object o = "Hello";

-//		String s = (String) o;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0032/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0032/Test.js
deleted file mode 100644
index 74d1e8c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0032/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//	public static void main(String[] args) {

-//		double d = 1.0;

-//		int i = (int) d;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0033/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0033/Test.js
deleted file mode 100644
index e0cf337..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0033/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//	public static void main(String[] args) {

-//		double d = 1.0;

-//		float f = (float) d;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0034/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0034/Test.js
deleted file mode 100644
index c14a27f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0034/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//	public static void main(String[] args) {

-//		double d = 1.0;

-//		byte b = (byte) d;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0035/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0035/Test.js
deleted file mode 100644
index 02cb76f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0035/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
- 

-//	function main(String[] args) {

-//		double d = 1.0;

-//		short s = (short) d;

-//	}

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0036/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0036/Test.js
deleted file mode 100644
index 16d7db6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0036/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//	public static void main(String[] args) {

-//		double d = 1.0;

-//		long l = (long) d;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0037/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0037/Test.js
deleted file mode 100644
index fdc9a52..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0037/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//	public static void main(String[] args) {

-//		int i = 1;

-//		char c = (char) i;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0038/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0038/Test.js
deleted file mode 100644
index 025e309..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0038/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//	public static void main(String[] args) {

-//		Class c = int.class;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0039/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0039/Test.js
deleted file mode 100644
index 4a140a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0039/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//	public static void main(String[] args) {

-//		Class c = void.class;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0040/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0040/Test.js
deleted file mode 100644
index 514e287..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0040/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//	public static void main(String[] args) {

-//		Class c = double.class;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0041/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0041/Test.js
deleted file mode 100644
index 5b0bb8f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0041/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//	public static void main(String[] args) {

-//		Class c = long.class;

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0042/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0042/Test.js
deleted file mode 100644
index 60be1ce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0042/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main(args) {

-		System.out.println(false);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0043/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0043/Test.js
deleted file mode 100644
index 3e46359..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0043/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main(args) {

-		System.out.println(true);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0044/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0044/Test.js
deleted file mode 100644
index 3566ff3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0044/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main(args) {

-		System.out.println(null);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0045/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0045/Test.js
deleted file mode 100644
index 4eb4ac0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0045/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		System.out.println('c');

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0046/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0046/Test.js
deleted file mode 100644
index 0309eac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0046/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		System.out.println(1.00001);

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0047/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0047/Test.js
deleted file mode 100644
index c9b121d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0047/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main(args) {

-		System.out.println(1.00001f);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0048/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0048/Test.js
deleted file mode 100644
index 57c8917..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0048/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		System.out.println(30000);

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0049/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0049/Test.js
deleted file mode 100644
index 4c97289..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0049/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main(args) {

-		System.out.println(-2147483648);

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0050/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0050/Test.js
deleted file mode 100644
index e659545..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0050/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main(args) {

-		System.out.println(2147483648L);

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0051/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0051/Test.js
deleted file mode 100644
index 121c864..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0051/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main(args) {

-		System.out.println(-2147483648L);

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0052/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0052/Test.js
deleted file mode 100644
index a284260..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0052/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main(args) {

-		System.out.println(-9223372036854775808L);

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0053/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0053/Test.js
deleted file mode 100644
index e44d828..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0053/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main(args) {

-		System.out.println("Hello" + " World");

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0054/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0054/Test.js
deleted file mode 100644
index bfa4c4a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0054/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function  main(  args) {

-		var b = true;

-		var b2 = true;

-		var b3 = b && b2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0055/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0055/Test.js
deleted file mode 100644
index 1fd4af9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0055/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function main(args) {

-		var b = true;

-		var b2 = true;

-		var b3 = b || b2;

- 

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0056/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0056/Test.js
deleted file mode 100644
index 987345c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0056/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main( args) {

-		var b = true;

-		var b2 = true;

-		var b3 = b == b2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0057/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0057/Test.js
deleted file mode 100644
index 3d49dd4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0057/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function main(args) {

-		var i = 2;

-		var j = 3;

-		var n = i + j;

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0058/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0058/Test.js
deleted file mode 100644
index a95cfa7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0058/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function main(args) {

-		var i = 2;

-		var j = 3;

-		var n = i - j;

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0059/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0059/Test.js
deleted file mode 100644
index a8c48a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0059/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main(args) {

-		var i = 2;

-		var j = 3;

-		var n = i * j;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0060/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0060/Test.js
deleted file mode 100644
index d181fdf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0060/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function main(args) {

-		var i = 2;

-		var j = 3;

-		var n = i / j;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0061/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0061/Test.js
deleted file mode 100644
index ac36597..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0061/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function main(args) {

-		var i = 2;

-		var j = 3;

-		var n = i % j;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0062/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0062/Test.js
deleted file mode 100644
index 90295df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0062/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function main(args) {

-		var i = 2;

-		var j = 3;

-		var n = i ^ j;

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0063/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0063/Test.js
deleted file mode 100644
index 7e547f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0063/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function main(args) {

-		var i = 2;

-		var j = 3;

-		var n = i & j;

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0064/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0064/Test.js
deleted file mode 100644
index f5f7315..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0064/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function main(args) {

-		var i = 2;

-		var j = 3;

-		var n = i | j;

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0065/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0065/Test.js
deleted file mode 100644
index c5c7c55..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0065/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function main(args) {

-		var b = true;

-		var b1 = true;

-		var b2 = b < b1;

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0066/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0066/Test.js
deleted file mode 100644
index 70eb9f0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0066/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function main(args) {

-		var b = true;

-		var b1 = true;

-		var b2 = b <= b1;

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0067/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0067/Test.js
deleted file mode 100644
index 0b7226a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0067/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function main(args) {

-		var b = true;

-		var b1 = true;

-		var b2 = b > b1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0068/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0068/Test.js
deleted file mode 100644
index 34f0cd0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0068/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function main(args) {

-		var b = true;

-		var b1 = true;

-		var b2 = b >= b1;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0069/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0069/Test.js
deleted file mode 100644
index fbd5db9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0069/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function  main( args) {

-		var b = true;

-		var b1 = true;

-		var b2 = b != b1;

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0070/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0070/Test.js
deleted file mode 100644
index 3dee4f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0070/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function  main( args) {

-		var o = new Object();

-		var b = o instanceof Number;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0071/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0071/Test.js
deleted file mode 100644
index ed94058..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0071/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var o = new Object();

-		var b = o instanceof java.lang.Integer;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0072/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0072/Test.js
deleted file mode 100644
index aec67ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0072/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function main(args) {

-		var b = true;

-		var b1 = !b;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0073/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0073/Test.js
deleted file mode 100644
index b65c196..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0073/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var i = 2;

-		var n = ~i;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0074/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0074/Test.js
deleted file mode 100644
index e9c3462..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0074/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function main(args) {

-		var i = +2;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0075/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0075/Test.js
deleted file mode 100644
index fd33db4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0075/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function main(args) {

-		var i = -2;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0076/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0076/Test.js
deleted file mode 100644
index 723957f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0076/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		var b = args != null ? true : false;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0077/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0077/Test.js
deleted file mode 100644
index 37dff34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0077/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main(args) {

-		var i = true ? args.length: 0;

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0078/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0078/Test.js
deleted file mode 100644
index a414f64..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0078/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//	public void foo() {

-//		super.bar();

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0079/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0079/Test.js
deleted file mode 100644
index c32aa43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0079/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//function foo() {

-//		super.bar(4);

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0080/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0080/Test.js
deleted file mode 100644
index aefc303..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0080/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo() {

-		bar(4);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0081/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0081/Test.js
deleted file mode 100644
index 5073bbe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0081/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		this.bar(4);

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0082/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0082/Test.js
deleted file mode 100644
index dbac964..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0082/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		for (;;);

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0083/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0083/Test.js
deleted file mode 100644
index df518bf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0083/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		for (var i = 0; i < 10; i++) {}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0084/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0084/Test.js
deleted file mode 100644
index ed90df9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0084/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		for (var i = 0; i < 10; i++);

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0085/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0085/Test.js
deleted file mode 100644
index 27eafea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0085/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		for (var i = 0;; i++);

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0086/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0086/Test.js
deleted file mode 100644
index 2ec6d0e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0086/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo() {

-		for (; i < 10; i++);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0087/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0087/Test.js
deleted file mode 100644
index 377a58f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0087/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		for (;;i++);

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0088/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0088/Test.js
deleted file mode 100644
index 93fb99e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0088/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		var i;

-	 

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0089/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0089/Test.js
deleted file mode 100644
index c3bdc7c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0089/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0089;

-//import java.util.*;

-//public class Test {

-//	public void foo() {

-		//java.lang.String s;

-//	}

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0090/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0090/Test.js
deleted file mode 100644
index 149a608..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0090/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		var tab = [1, 2];

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0091/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0091/Test.js
deleted file mode 100644
index c94e6c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0091/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo( s) {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0092/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0092/Test.js
deleted file mode 100644
index ffff995..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0092/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0092;

-//

-//public class Test {

-//	public void foo(final String s) {

-//	}

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0093/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0093/Test.js
deleted file mode 100644
index 8bc7d1a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0093/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	function foo() {

-     for (var i = 0; i < 10; i++) {

-	     break;

-	   }

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0094/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0094/Test.js
deleted file mode 100644
index cd1c3b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0094/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-	function foo(s) {

-     for (var i = 0; i < 10; i++) {

-	     continue;

-	  }

-	}

-

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0095/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0095/Test.js
deleted file mode 100644
index c26ea05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0095/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	function foo() {

-     label: for (var i = 0; i < 10; i++) {

-	     continue label;

-	   }

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0096/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0096/Test.js
deleted file mode 100644
index 7098538..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0096/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo() {

-     label: for (var i = 0; i < 10; i++) {

-	     break label;

-	   }

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0097/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0097/Test.js
deleted file mode 100644
index 15d3768..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0097/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-	function foo(i) {

-		switch(i) {

-			case 1: 

-              break;

-			case 2:

-				System.out.println(2);

-              break;

-          default:

-				System.out.println("default");

-		}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0098/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0098/Test.js
deleted file mode 100644
index 8327916..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0098/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo( i ) {

-		;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0099/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0099/Test.js
deleted file mode 100644
index c6fd502..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0099/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo() {

-		do {;

-		} while(true);

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0100/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0100/Test.js
deleted file mode 100644
index 90290d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0100/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo( i ) {

-		while(true);

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0101/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0101/Test.js
deleted file mode 100644
index 1fb7f7d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0101/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo(i ) {

-		while(true) {}

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0102/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0102/Test.js
deleted file mode 100644
index 6b865fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0102/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main( args) {

-		System.out.println("Hello" + " World" + "!");

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0103/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0103/Test.js
deleted file mode 100644
index c4004bb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0103/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main( args) {

-		System.out.println("Hello" + " World" + "!" + "!");

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0104/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0104/Test.js
deleted file mode 100644
index f745b25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0104/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main(args) {

-		System.out.println("Hello" + " World" + "!" + 4);

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0105/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0105/Test.js
deleted file mode 100644
index 4174b7f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0105/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main( args) {

-		System.out.println(4 + 5 + 6 + 4);

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0106/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0106/Test.js
deleted file mode 100644
index 660c282..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0106/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main( args) {

-		System.out.println(4 - 5 + 6 + 4);

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0107/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0107/Test.js
deleted file mode 100644
index 303432e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0107/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main( args) {

-		System.out.println(4 - 5 - 6 - 4);

-

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0108/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0108/Test.js
deleted file mode 100644
index 06c6834..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0108/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main( args) {

-		System.out.println("4" + 5 + 6 + 4);

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0109/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0109/Test.js
deleted file mode 100644
index 3098cde..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0109/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function main( args) {

-		System.out.println("4" - 5 + 6 + 4);

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0110/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0110/Test.js
deleted file mode 100644
index 5a09b21..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0110/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo(i ) {

-		return 2;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0111/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0111/Test.js
deleted file mode 100644
index d666ee1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0111/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo( i ) {

-		return 2\u003B

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0112/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0112/Test.js
deleted file mode 100644
index eda4e13..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0112/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//package test0112;

-//import java.util.*;

-//public class Test {

-//	public int foo(int i ) {

-		//synchronized(this) {

-//		}

-//	}

-

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0113/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0113/Test.js
deleted file mode 100644
index 202a007..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0113/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-	function foo( i ) {

-		try {

-		} catch( e) {

-		} finally {

-		}

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0114/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0114/Test.js
deleted file mode 100644
index d70ba9f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0114/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function foo(i ) {

-		try {

-		} catch(e) {

-		}

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0115/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0115/Test.js
deleted file mode 100644
index e376391..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0115/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-	function foo(i ) {

-		try {

-			return 2;

-		} catch(e) {

-		}

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0116/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0116/Test.js
deleted file mode 100644
index 9d9a732..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0116/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo(e) {

-		throw e   \u003B

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0117/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0117/Test.js
deleted file mode 100644
index 83eb0b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0117/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo(e) {

-		throw e /* comment in the middle of a throw */  \u003B

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0118/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0118/Test.js
deleted file mode 100644
index 06f9e97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0118/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo(e) {

-		throw e /* comment in the middle of a throw */  \u003B/** */

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0119/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0119/Test.js
deleted file mode 100644
index 384d33b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0119/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo(e) {

-		if (true)\u003B

-

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0120/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0120/Test.js
deleted file mode 100644
index 0c9923e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0120/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	function foo(e) {

-		if (true)\u003B

-		else ;

-	}

-

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0121/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0121/Test.js
deleted file mode 100644
index f9eb541..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0121/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	function foo(e) {

-		if (true) {}

-		else ;

-	

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0122/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0122/Test.js
deleted file mode 100644
index 319beb0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0122/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo(e) {

-		if (true) return 2\u003B

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0123/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0123/Test.js
deleted file mode 100644
index 1964b46..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0123/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function foo(e) {

-		if (true) return 2;

-		else return 3;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0124/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0124/Test.js
deleted file mode 100644
index 4ebbd0f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0124/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//	function foo(e) {

-//		int x= 10, z[] = null, i, j[][];

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0125/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0125/Test.js
deleted file mode 100644
index cc4601d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0125/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0125;

-//import java.util.*;

-//public class Test {

-//	public int foo(Exception e) {

-		//int[] x= 10, z[] = null, i, j[][];

-	//}

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0126/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0126/Test.js
deleted file mode 100644
index 1cc9aca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0126/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0126;

-//import java.util.*;

-//public class Test {

-//	public void foo(int i) {

-		//for (String[] tab[] = null;; ++i) {}

-//	}

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0127/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0127/Test.js
deleted file mode 100644
index c65a633..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0127/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0127;

-//import java.util.*;

-//public class Test {

-//	public void foo(int i) {

-		//for (String tab[] = null;; ++i) {}

-//	}

-

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0128/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0128/Test.js
deleted file mode 100644
index 15bc01c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0128/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function foo(i) {

-		for (var tab = null;; i++/**/) {}

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0129/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0129/Test.js
deleted file mode 100644
index 4c7e59c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0129/Test.js
+++ /dev/null
@@ -1 +0,0 @@
- var i;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0130/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0130/Test.js
deleted file mode 100644
index 98eb359..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0130/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-  var x= 10, y = null, i, j;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0131/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0131/Test.js
deleted file mode 100644
index 04b1276..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0131/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0131;

-//import java.util.*;

-//public class Test {

-//  void foo(final int i) {}

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0132/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0132/Test.js
deleted file mode 100644
index 25bf20e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0132/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-  /** JavaDoc Comment*/

-  function foo(i) {}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0133/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0133/Test.js
deleted file mode 100644
index 32f49e0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0133/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-  /* Multiple line Comment

-  */

-  function foo(i) {}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0134/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0134/Test.js
deleted file mode 100644
index 6e7cfe9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0134/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-  // Line comment

-  function foo( i) {}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0135/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0135/Test.js
deleted file mode 100644
index 9950f25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0135/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-  /** JavaDoc Comment*/

- var i;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0136/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0136/Test.js
deleted file mode 100644
index 3fc88f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0136/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-  /* Multiple lines comment

-  */

-  var i;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0137/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0137/Test.js
deleted file mode 100644
index 3ff6ce9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0137/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-  // Line comment

-  var i;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0138/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0138/Test.js
deleted file mode 100644
index eb08a8f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0138/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0138;

-//import java.util.*;

-  // //Line comment

-//public class Test {

-//  int i;

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0139/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0139/Test.js
deleted file mode 100644
index 3f5d76f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0139/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0139;

-//import java.util.*;

-///* Line comment

- //*/

-//public class Test {

-//  int i;

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0140/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0140/Test.js
deleted file mode 100644
index 3b7920d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0140/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0140;

-//import java.util.*;

-///** JavaDoc Comment*/

-//public class Test {

-//  int i;

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0141/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0141/Test.js
deleted file mode 100644
index 21960a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0141/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0141;

-//import java.util.*;

-//public class Test {

-//	/** JavaDoc Comment*/

-//  class B {}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0142/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0142/Test.js
deleted file mode 100644
index fc8227b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0142/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0142;

-//import java.util.*;

-//public class Test {

-//	/* Multiple lines comment

-//	 */

-//  class B {}

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0143/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0143/Test.js
deleted file mode 100644
index 55a8364..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0143/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0143;

-//import java.util.*;

-//public class Test {

-//	// Line comment

-//  public static class B {}

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0144/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0144/Test.js
deleted file mode 100644
index bb451c0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0144/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0144;

-//import java.util.*;

-//public class Test {

-//  public static class B {}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0145/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0145/Test.js
deleted file mode 100644
index 1845447..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0145/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0145;

-//import java.util.*;

-//public class Test {

-//	  {}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0146/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0146/Test.js
deleted file mode 100644
index fe5b00e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0146/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0146;

-//import java.util.*;

-//public class Test {

-//  static {}

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0147/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0147/Test.js
deleted file mode 100644
index e79afcb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0147/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0147;

-//import java.util.*;

-//public class Test {

-//

-//	/** JavaDoc Comment*/

-//  static {}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0148/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0148/Test.js
deleted file mode 100644
index e9bd6ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0148/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0148;

-//import java.util.*;

-//public class Test {

-//

-//	/** JavaDoc Comment*/

-//  {}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0149/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0149/Test.js
deleted file mode 100644
index 3edd4a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0149/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0149;

-//import java.util.*;

-//public class Test {

-//

-//	/* JavaDoc Comment

-//	 */

-//  {}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0150/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0150/Test.js
deleted file mode 100644
index 8cd6cff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0150/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-function foo(){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0151/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0151/Test.js
deleted file mode 100644
index 0ffdf80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0151/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//package test0151;

-//import java.util.*;

-//public class Test {

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0152/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0152/Test.js
deleted file mode 100644
index 4da069e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0152/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
- function foo(() {} 

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0153/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0153/Test.js
deleted file mode 100644
index e5df525..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0153/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
- function foo() {

- 	var i=

- 

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0154/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0154/Test.js
deleted file mode 100644
index 31dbaed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0154/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0154;

-//import java.util.*;

-//class Test {

-//	int[] tab;

-//	String[] t;

-//	Test[] t2;

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0155/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0155/Test.js
deleted file mode 100644
index 4509727..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0155/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	function m(i, b){}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0156/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0156/Test.js
deleted file mode 100644
index 9655361..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0156/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo( i) {

-		i++;

-		return i;

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0159/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0159/Test.js
deleted file mode 100644
index e5de2ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0159/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-//package test0159;

-//import java.util.*;

-//public class Test {

-//	Test(int i){

-//	}

-//	void n(){

-//		final int y= 0;

-//		new Test(y){

-//			void f(){

-//				int y= 9;

-//			}

-//		};

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0160/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0160/Test.js
deleted file mode 100644
index cc6089d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0160/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
- 

-	var t, g  = null;

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0161/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0161/Test.js
deleted file mode 100644
index 64351d5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0161/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0161;

-//import java.util.*;

-//

-//public class Test implements Cloneable {

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0162/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0162/Test.js
deleted file mode 100644
index f153983..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0162/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0162;

-//import java.util.*;

-//public interface Test {

-//	

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0163/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0163/Test.js
deleted file mode 100644
index e0ee73e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0163/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0163;

-//import java.util.*;

-//public class Test {

-//	public static void main(String[] args) {

-//		System.out.println(new java.lang.Object() {});

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0164/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0164/Test.js
deleted file mode 100644
index f06fecd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0164/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0164;

-//import java.util.*;

-//public class Test {

-//	private class B {}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0165/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0165/Test.js
deleted file mode 100644
index e3bc53b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0165/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0165;

-//import java.util.*;

-//public class Test {

-//	void foo() {

-//		class C {

-//		}

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0166/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0166/Test.js
deleted file mode 100644
index 723a26e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0166/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function foo(e) {

-		var x= 10, z = null, i, j;

-	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0167/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0167/Test.js
deleted file mode 100644
index b2a382b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0167/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//        function f() {

-//                var f = new Test[1+2].length;

-//        }

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0168/test1/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0168/test1/Test.js
deleted file mode 100644
index a759e1b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0168/test1/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//package test0168.test1;

-//import java.util.*;

-//public class Test {

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0169/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0169/Test.js
deleted file mode 100644
index 0f0f548..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0169/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//package test0169;

-//import java.util.*;

-//public class Test {

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0171/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0171/Test.js
deleted file mode 100644
index 4ad6326..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0171/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0171;

-//import java.util.*;

-//

-//class A {

-//}

-//

-//public class Test {

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0172/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0172/Test.js
deleted file mode 100644
index 38a5c92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0172/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-	function foo( i) {

-	}

-

-	function main( args) {

-	}

-	

-	function bar( s)   {

-		return s;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0173/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0173/Test.js
deleted file mode 100644
index 016c507..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0173/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo() {

-		var i = 0;

-		i++;

-		return i;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0174/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0174/Test.js
deleted file mode 100644
index 1230906..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0174/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	var i;

-	function foo() {

-		i++;

-		return i;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0175/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0175/Test.js
deleted file mode 100644
index 8628565..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0175/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-var i = 0;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0176/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0176/Test.js
deleted file mode 100644
index b0929e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0176/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	var i = 0;

-	function foo() {

-		return i;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0177/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0177/Test.js
deleted file mode 100644
index 3d9687f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0177/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-	function bar() {

-		var i = 1.0;

-		System.out.println(i);

-	}

-	

-	function foo() {

-		var i = 0;

-		i++;

-		return i;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0178/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0178/Test.js
deleted file mode 100644
index 50ebdf5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0178/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-//package test0178;

-//import java.util.*;

-//

-//class Top {

-//	int j;

-//}

-//

-//public class Test extends Top {

-//	int foo() {

-//		return super.j;

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0179/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0179/Test.js
deleted file mode 100644
index 337a1a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0179/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-	function foo() {

-		var t = new Test();

-		System.out.println(t);

-	}

-

-	   function Test()

-   {

-   }

-   

-	
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0180/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0180/Test.js
deleted file mode 100644
index 9f2ef70..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0180/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0180;

-//import java.util.*;

-//public class Test {

-//	public void foo() {

-//		Test[] t = new Test[0];

-//		System.out.println(t);

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0181/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0181/Test.js
deleted file mode 100644
index 2c2e4f2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0181/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0181;

-//import java.util.*;

-//public class Test {

-//	public void foo() {

-//		Test[] t = {};

-//		System.out.println(t);

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0182/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0182/Test.js
deleted file mode 100644
index afd64fa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0182/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo() {

-		var i= 10;

-		if (/*]*/i < 10/*[*/)

-			foo();

-	}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0183/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0183/Test.js
deleted file mode 100644
index 345b77d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0183/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function foo() {

-		var i= 10;

-		if (/*]*/i < 10 && i < 20/*[*/)

-			foo();

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0184/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0184/Test.js
deleted file mode 100644
index 830fd19..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0184/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function foo() {

-		var i= 10;

-		if (/*]*/i < 10 || i < 20/*[*/)

-			foo();

-	}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0185/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0185/Test.js
deleted file mode 100644
index 17770b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0185/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function foo() {

-		var i= 10;

-		if (/*]*/i == 10/*[*/)

-			foo();

-	}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0186/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0186/Test.js
deleted file mode 100644
index 5d25cab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0186/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function foo() {

-		var o= null;

-		if (/*]*/o == o/*[*/)

-			foo();

-	}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0187/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0187/Test.js
deleted file mode 100644
index f4885fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0187/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function foo() {

-		var i= 0;

-		while (/*]*/i <= 10/*[*/)

-			foo();

-		foo();	

-	}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0188/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0188/Test.js
deleted file mode 100644
index e207154..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0188/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function foo() {

-		var i= 0;

-		foo();

-		do {

-			foo();

-		} while (/*]*/i <= 10/*[*/);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0189/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0189/Test.js
deleted file mode 100644
index bd9138d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0189/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function foo() {

-		for (var i= 0;/*[*/ i < 10/*]*/; i++)

-			foo();

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0190/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0190/Test.js
deleted file mode 100644
index a63c419..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0190/Test.js
+++ /dev/null
@@ -1,23 +0,0 @@
-//package test0190;

-//import java.util.*;

-//public class Test {

-//	public static class Scanner {

-//		public int x;

-//		public int y;

-//	}

-//	public static class Selection {

-//		public int start;

-//		public int end;

-//	}

-//	

-//	public void foo(Selection selection) {

-//		Scanner scanner= new Scanner();

-//		

-//		if (/*]*/scanner.x < selection.start && selection.start < scanner.y/*[*/) {

-//			g();

-//		}

-//	}

-//	

-//	public void g() {

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0191/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0191/Test.js
deleted file mode 100644
index 8be45ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0191/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		var b;

-		b= 1 < 10 && /*]*/2 < 20/*[*/;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0192/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0192/Test.js
deleted file mode 100644
index a8212ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0192/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo() {

-		var i= /*]*/0/*[*/;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0193/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0193/Test.js
deleted file mode 100644
index 51bfab2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0193/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//package test0193;

-//import java.util.*;

-//public class Test {

-//	class Inner {

-//	}

-//	public void foo() {

-//		Inner inner= /*]*/new Inner();/*[*/

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0194/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0194/Test.js
deleted file mode 100644
index 16dec94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0194/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//package test0194;

-//import java.util.*;

-//public class Test {

-//	class Inner {

-//	}

-//	public void foo() {

-//		Inner[] inner= /*]*/new Inner[10];/*[*/

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0195/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0195/Test.js
deleted file mode 100644
index 0881de1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0195/Test.js
+++ /dev/null
@@ -1,18 +0,0 @@
-//package test0195;

-//import java.util.*;

-//import java.io.File;

-//

-//class A {

-//	public File getFile() {

-//		return null;

-//	}

-//	public void useFile(File file) {

-//	}

-//}

-//

-//public class Test {

-//	public void foo() {

-//		A a= null;

-//		a.useFile(/*]*/a.getFile()/*[*/);

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0196/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0196/Test.js
deleted file mode 100644
index 6535948..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0196/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-//package test0196;

-//import java.util.*;

-//public class Test {

-//	class Inner {

-//	}

-//	public void foo() {

-//		Inner inner= null;

-//		boolean b;

-//		b= /*]*/inner instanceof Inner/*[*/;

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0197/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0197/Test.js
deleted file mode 100644
index 84068db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0197/Test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-//package test0197;

-//import java.io.File;

-//class A {

-//	public File getFile() {

-//		return null;

-//	}

-//	public void useFile(File file) {

-//	}

-//}

-//

-//public class Test {

-//	public void foo() {

-//		A a= new A();

-//		/*]*/a.getFile()/*[*/.getName();

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0198/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0198/Test.js
deleted file mode 100644
index c6364f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0198/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function foo() {

-		return 10 + /*]*/20 * 30/*[*/ + 10;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0199/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0199/Test.js
deleted file mode 100644
index 3dc0360..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0199/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function foo() {

-		var i= 20 + /*]*/10 * 30/*[*/ + 10;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0200/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0200/Test.js
deleted file mode 100644
index 9fab67b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0200/Test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-//package test0200;

-//import java.util.*;

-//import java.io.File;

-//

-//class A {

-//	public File getFile() {

-//		return null;

-//	}

-//	public void useFile(File file) {

-//	}

-//}

-//

-//public class Test {

-//	public void foo() {

-//		int f= new A[/*]*/1 + 2/*[*/].length;

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0201/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0201/Test.js
deleted file mode 100644
index 8c8ad5f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0201/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function foo() {

-                /*]*/foo();/*[*/

-                

-                for (var i= 0; i < 10; i++)

-                        foo();  

-        }

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0202/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0202/Test.js
deleted file mode 100644
index aec0f71..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0202/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	var f= (2);

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0203/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0203/Test.js
deleted file mode 100644
index aec0f71..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0203/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	var f= (2);

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0204/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0204/Test.js
deleted file mode 100644
index 84ebb66..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0204/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	var f= ((2));

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0205/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0205/Test.js
deleted file mode 100644
index 3be1b43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0205/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//	void f(){

-//		/*[*/class AA extends Test {}/*]*/

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0206/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0206/Test.js
deleted file mode 100644
index 00c647d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0206/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//	public Test field1;

-//	public Test field2;

-//	public Test field3;

-//	public Test field4;

-//	public int i;

-//

-//	public int foo() {

-//		return field1.field2.field3.field4.i;

-//	}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0207/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0207/Test.js
deleted file mode 100644
index 28b8153..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0207/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-  /** JavaDoc Comment*/

- function foo( i) {}/**/

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0208/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0208/Test.js
deleted file mode 100644
index 2c6aed3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0208/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-  /* Multiple line Comment

-  */

-  function foo( i) {}/**/

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0209/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0209/Test.js
deleted file mode 100644
index 198f5c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0209/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-  // Line comment

- function foo( i) {}/**/

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0210/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0210/Test.js
deleted file mode 100644
index 517bdf0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0210/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
- 

-  /** JavaDoc Comment*/

-  var i;/**/

-

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0211/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0211/Test.js
deleted file mode 100644
index 5ffc520..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0211/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
- 

-  /* Multiple lines comment

-  */

-  var i;/**/

-

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0212/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0212/Test.js
deleted file mode 100644
index b41f056..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0212/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
- 

-  // Line comment

-  var i;/**/

-

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0213/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0213/Test.js
deleted file mode 100644
index 18cc6ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0213/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
- 

-  var i;

- /**/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0214/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0214/Test.js
deleted file mode 100644
index 0f45233..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0214/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0214;

-//import java.util.*;

-///* Line comment

-// */

-//public class Test {

-//  int i;

-//}/**/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0215/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0215/Test.js
deleted file mode 100644
index c05bba8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0215/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0215;

-//import java.util.*;

-///** JavaDoc Comment*/

-//public class Test {

-//  int i;

-//}/**/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0216/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0216/Test.js
deleted file mode 100644
index 1f44720..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0216/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0216;

-//import java.util.*;

-//public class Test {

-//	/** JavaDoc Comment*/

-//  class B {}/**/

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0217/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0217/Test.js
deleted file mode 100644
index d14494c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0217/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0217;

-//import java.util.*;

-//public class Test {

-//	/* Multiple lines comment

-//	 */

-//  class B {}/**/

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0218/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0218/Test.js
deleted file mode 100644
index 258029f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0218/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0218;

-//import java.util.*;

-//public class Test {

-//	// Line comment

-//  public static class B {}/**/

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0219/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0219/Test.js
deleted file mode 100644
index 9528c1c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0219/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0219;

-//import java.util.*;

-//public class Test {

-//  public static class B {}/**/

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0220/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0220/Test.js
deleted file mode 100644
index 5f00e83..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0220/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0220;

-//import java.util.*;

-//public class Test {

-//	  {}/**/

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0221/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0221/Test.js
deleted file mode 100644
index 1a430ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0221/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0221;

-//import java.util.*;

-//public class Test {

-//  static {}/**/

-//

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0222/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0222/Test.js
deleted file mode 100644
index ab95632..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0222/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0222;

-//import java.util.*;

-//public class Test {

-//

-//	/** JavaDoc Comment*/

-//  static {}/**/

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0223/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0223/Test.js
deleted file mode 100644
index 5055f42..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0223/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0223;

-//import java.util.*;

-//public class Test {

-//

-//	/** JavaDoc Comment*/

-//  {}/**/

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0224/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0224/Test.js
deleted file mode 100644
index 5e5fd74..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0224/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0224;

-//import java.util.*;

-//public class Test {

-//

-//	/* JavaDoc Comment

-//	 */

-//  {}/**/

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0225/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0225/Test.js
deleted file mode 100644
index 7c9252d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0225/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	function foo(s) {

-     label: for (var i = 0; i < 10; i++) {

-	     continue label;

-	   }

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0226/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0226/Test.js
deleted file mode 100644
index d731b74..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0226/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo( s) {

-     label: for (var i = 0; i < 10; i++) {

-	     break label;

-	   }

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0227/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0227/Test.js
deleted file mode 100644
index c22aaa6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0227/Test.js
+++ /dev/null
@@ -1,19 +0,0 @@
-//package test0227;

-//import java.util.*;

-//class A {

-//	long j;

-//}

-//class B {

-//	A fA;

-//}

-//class C {

-//	B fB;

-//}

-//public class Test {

-//	public C field;

-//	public int i;

-//

-//	public int foo() {

-//		return field.fB.fA.j;

-//	}	

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0228/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0228/Test.js
deleted file mode 100644
index 616fd32..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0228/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-//package test0228;

-//import java.util.*;

-//public class Test {

-//	public static int foo() {

-//		return  4;

-//	}

-//	

-//	public int bar() {

-//		return test0228.Test.foo();

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0229/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0229/Test.js
deleted file mode 100644
index 4098608..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0229/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0229;

-//public class Test {

-//	public void foo() {

-//		System.err.println();

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0230/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0230/Test.js
deleted file mode 100644
index 964b84f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0230/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0230;

-//import java.io.PrintStream;

-//public class Test {

-//	PrintStream err = System.err;

-//	public void foo() {

-//		err.println();

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0231/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0231/Test.js
deleted file mode 100644
index ee80fb1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0231/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0231;

-//import java.util.*;

-//public class Test {

-//	public void foo() {

-//		System.err.println();

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0232/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0232/Test.js
deleted file mode 100644
index f46cb12..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0232/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function foo(  array) {

-		var i = array.length;

-		System.out.println(i);

-	}

- 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0233/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0233/Test.js
deleted file mode 100644
index 08e3747..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0233/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0233;

-//

-//public class Test {

-//	Toto t;

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0234/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0234/Test.js
deleted file mode 100644
index 1b68c3c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0234/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//package test0234;

-//public class Test {

-//	List field;

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0235/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0235/Test.js
deleted file mode 100644
index f5a07cb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0235/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-//package test0235;

-//

-//import java.awt.List;

-//

-//public class Test {

-	var field=new String();

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0236/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0236/Test.js
deleted file mode 100644
index 8b1768e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0236/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	var i= 0, k = 1;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0238/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0238/Test.js
deleted file mode 100644
index 0e84db3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0238/Test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-//package test0238;

-//import java.util.*;

-//

-//public class Test {

-//	public int foo() {

-//		class X {

-//			int foo() {

-//				return Test.this.bar();

-//			}

-//		}

-//		return new X().foo();

-//	}

-//	

-//	public int bar() {

-//		return 0;

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0239/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0239/Test.js
deleted file mode 100644
index 41acf29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0239/Test.js
+++ /dev/null
@@ -1,23 +0,0 @@
-//package test0239;

-//

-//import java.util.*;

-//class T {

-//	int bar() {

-//		return 0;

-//	}

-//}

-//

-//public class Test extends T {

-//	public int foo() {

-//		class X {

-//			int foo() {

-//				return Test.super.bar();

-//			}

-//		}

-//		return new X().foo();

-//	}

-//	

-//	public int bar() {

-//		return 0;

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0240/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0240/Test.js
deleted file mode 100644
index 51b923d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0240/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-//package test0240;

-//import java.util.*;

-//public class Test {

-//	public int foo() {

-//		class X {

-//			int foo() {

-//				return Test.this.f;

-//			}

-//		}

-//		return new X().foo();

-//	}

-//	

-//	public int f = 0;

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0241/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0241/Test.js
deleted file mode 100644
index 62880e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0241/Test.js
+++ /dev/null
@@ -1,27 +0,0 @@
-

-	var i;

-	

-	function  foo() {}

-//	

-//	class B {

-//	}

-//	

-//	class D {

-//	}

-	

-	function bar() {

-	}

-	

-	var j;

-	

-	function  foo3() {

-		return 3;

-	}	

-	var k = foo3();

-	

-	var l, n, m;

-	

-	function foo2() {

-	}

-	

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0242/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0242/Test.js
deleted file mode 100644
index 7d5742b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0242/Test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-//package test0242;

-//import java.util.*;

-//class T {

-//	public int f = 0;

-//}

-//

-//public class Test extends T {

-//	public int foo() {

-//		class X {

-//			int foo() {

-//				return Test.super.f;

-//			}

-//		}

-//		return new X().foo();

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0243/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0243/Test.js
deleted file mode 100644
index 87433dd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0243/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function m(){

-		try{

-		} catch (e){m();}

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0244/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0244/Test.js
deleted file mode 100644
index a24cb54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0244/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function m(){

-		try{

-		} catch (e){m();}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0245/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0245/Test.js
deleted file mode 100644
index 6ebdfab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0245/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function a() {

-		var i= 0;

-		return i;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0246/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0246/Test.js
deleted file mode 100644
index 2886cb2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0246/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0246;

-//

-//import java.util.*;

-//import java.io.IOException;

-//

-//public class Test {

-//

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0247/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0247/Test.js
deleted file mode 100644
index 1dbbb1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0247/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0247;

-//import java.util.*;

-//public class Test {

-//

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0248/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0248/Test.js
deleted file mode 100644
index 3b17542..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0248/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
- 

-	function  m(  i);

- 

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0249/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0249/Test.js
deleted file mode 100644
index ddc3615..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0249/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-//package test0249;

-//import java.util.*;

-//public class Test {

-//        int k;

-//        static class j{

-//                static int k;

-//        }

-//        void m(){

-//                int y= 0;

-//                j.k= 0;

-//        }

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0250/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0250/Test.js
deleted file mode 100644
index 0eed919..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0250/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0250;

-//import java.util.*;

-//interface Test {

-//         void m(int i, int j);

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0251/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0251/Test.js
deleted file mode 100644
index 755d3ce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0251/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0251;

-//import java.util.*;

-//public class Test {

-//	void foo() {

-//		java.lang.System.out.println();

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0252/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0252/Test.js
deleted file mode 100644
index ed8bcd3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0252/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-//package test0252;

-//import java.util.*;

-//public class Test {

-//	Object foo() {

-//		final int j = 4;

-//		

-//		return new Object() {

-//			int bar() {

-//				return j;

-//			}

-//		};

-//	}

-//}

-//

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0253/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0253/Test.js
deleted file mode 100644
index cafeb8d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0253/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function  foo() {

-		return new String();

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0254/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0254/Test.js
deleted file mode 100644
index 28ab4cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0254/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-//package test0254;

-//import java.util.*;

-//public class Test {

-//

-//	class C {

-//	}

-//

-//	Object foo() {

-//		return new Test().new C();

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0255/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0255/Test.js
deleted file mode 100644
index 6d5ad9b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0255/Test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-//package test0255;

-//import java.util.*;

-//public class Test {

-//	public void bar() {

-//		foo((String[]) null);

-//	}

-//	

-//	void foo(String[] arg) {

-//	}

-//	

-//	void foo(Object arg) {

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0256/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0256/Test.js
deleted file mode 100644
index 0e6a470..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0256/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-//package test0256;

-//import java.util.*;

-//public class Test {

-//	public void bar() {

-//		foo((Object) null);

-//	}

-//	

-//	void foo(String[] arg) {

-//	}

-//	

-//	void foo(Object arg) {

-//	}

-//}

-//

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0257/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0257/Test.js
deleted file mode 100644
index b9b41cd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0257/Test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-//package test0257;

-//import java.util.*;

-//public class Test {

-//	public void bar() {

-//		foo((int) 0);

-//	}

-//	

-//	void foo(int arg) {

-//	}

-//	

-//	void foo(long arg) {

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0258/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0258/Test.js
deleted file mode 100644
index c44fdf9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0258/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-//package test0256;

-//import java.util.*;

-//public class Test {

-//	public void bar() {

-//		foo((java.lang.Object) null);

-//	}

-//	

-//	void foo(String[] arg) {

-//	}

-//	

-//	void foo(Object arg) {

-//	}

-//}

-//

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0259/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0259/Test.js
deleted file mode 100644
index 05d3b1f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0259/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function m(){

-		var i, /*[*/ j/*]*/;

-		return 0;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0260/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0260/Test.js
deleted file mode 100644
index 0d6fb5b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0260/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0260;

-//import java.util.*;

-//public interface Test {

-//	 void m(int i, int j);

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0261/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0261/Test.js
deleted file mode 100644
index 4dc0bb1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0261/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function foo(variable) {

-    return varble; // <-- Unable to resolve binding here

-  }

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0262/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0262/Test.js
deleted file mode 100644
index 60e3cdf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0262/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function main(args) {

-		System.out.println(new java.lang.Exception("ERROR"));

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0263/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0263/Test.js
deleted file mode 100644
index 9a5c876..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0263/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function m(i){

-		m(i);

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0264/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0264/Test.js
deleted file mode 100644
index 0f5380a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0264/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-//package test0264;

-//import java.util.*;

-//public class Test {

-//	void m(final int i){

-//		Test a= new Test(){

-//			void m(int k){

-//				k= i;

-//			}

-//		};

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0265/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0265/Test.js
deleted file mode 100644
index ba1fc09..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0265/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function foo() {

-		return 10 + /*]*/20 * 30/*[*/ + 10;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0266/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0266/Test.js
deleted file mode 100644
index baccd8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0266/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0266;

-//import java.util.*;

-//public class Test {

-//	public static class Inner{}

-//	public static void m(){

-//		Inner\u005b] i;

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0267/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0267/Test.js
deleted file mode 100644
index ede9834..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0267/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0267;

-//import java.util.*;

-//public class Test {

-//	public static class Inner{}

-//	public static void m(){

-//		Inner[] i;

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0268/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0268/Test.js
deleted file mode 100644
index 6b52e1c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0268/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0268;

-//import java.util.*;

-//public class Test {

-//	public static class Inner{}

-//	public static void m(){

-//		test0268.Test.Inner[] i;

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0269/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0269/Test.js
deleted file mode 100644
index 73bfeb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0269/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0269;

-//import java.util.*;

-//public class Test {

-//	public static class Inner{}

-//	public static void m(){

-//		test0269.Test.Inner[/**/] i;

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0270/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0270/Test.js
deleted file mode 100644
index 1c29b59..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0270/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0270;

-//import java.util.*;

-//public class Test {

-//	public static class Inner{}

-//	public static void m(){

-//		test0270.Test.Inner i[];

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0271/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0271/Test.js
deleted file mode 100644
index 3b3729a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0271/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0271;

-//import java.util.*;

-//public class Test {

-//	public static class Inner{}

-//	public static void m(){

-//		test0271.Test.Inner[] i[];

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0272/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0272/Test.js
deleted file mode 100644
index 5412dcc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0272/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		for (var i= 0; i < 10; i++) foo();

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0273/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0273/Test.js
deleted file mode 100644
index e32fffe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0273/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo() {

-		for (var i= 0; i < 10; i++) { foo(); }

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0274/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0274/Test.js
deleted file mode 100644
index 503683e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0274/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo( j) {

-		var i = 0;

-		while (i < 10) { foo(i++); }

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0275/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0275/Test.js
deleted file mode 100644
index 3af54f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0275/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo(j) {

-		var i = 0;

-		while (i < 10) foo(i++);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0276/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0276/Test.js
deleted file mode 100644
index 086e772..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0276/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function foo() {

-		foo();

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0277/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0277/Test.js
deleted file mode 100644
index 72d8472..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0277/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo() {

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0278/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0278/Test.js
deleted file mode 100644
index 9dee789..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0278/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0278;

-//

-//public class Test {

-//	Class c = java.lang.String.class;

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0279/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0279/Test.js
deleted file mode 100644
index db571b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0279/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0279;

-//

-//public class Test {

-//	void foo() {

-//		Class c = java.lang.String.class;

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0280/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0280/Test.js
deleted file mode 100644
index bc86d3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0280/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0280;

-//import java.util.*;

-//public class Test {

-//

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0281/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0281/Test.js
deleted file mode 100644
index dea418c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0281/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	var o= /*]*/new Object()/*[*/;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0282/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0282/Test.js
deleted file mode 100644
index c13d01e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0282/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	var b = /*]*/true/*[*/;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0283/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0283/Test.js
deleted file mode 100644
index 4420bc8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0283/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	var c = /*]*/'c'/*[*/;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0284/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0284/Test.js
deleted file mode 100644
index 6a6e8ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0284/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	var o = /*]*/null/*[*/;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0285/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0285/Test.js
deleted file mode 100644
index a4a10a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0285/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0285;

-//

-//public class Test {

-//	Object o = /*]*/Object.class/*[*/;

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0286/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0286/Test.js
deleted file mode 100644
index 94ee6af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0286/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
- 	var i = /**/(2)/**/;

- 

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0287/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0287/Test.js
deleted file mode 100644
index d8e94df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0287/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	var tab = /**/new String/**/;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0288/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0288/Test.js
deleted file mode 100644
index 7abd170..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0288/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	var tab = /**/[]/**/;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0289/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0289/Test.js
deleted file mode 100644
index f3934c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0289/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	var tab1 = [] ;		

-	var s = /**/tab1[0]/**/;

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0290/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0290/Test.js
deleted file mode 100644
index 4aa746c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0290/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0290;

-//

-//public class Test {

-//	Object o = /*]*/new java.lang.Object()/*[*/;

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0291/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0291/Test.js
deleted file mode 100644
index 5549881..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0291/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//package test0291;

-//

-//public class Test {

-//	bar() {}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0292/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0292/Test.js
deleted file mode 100644
index d59d396..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0292/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-  function bar() {

-    return Test.x;

-  }

-Test.prototype=new Object();

-Test.x=1;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0293/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0293/Test.js
deleted file mode 100644
index 3c8900d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0293/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-//package test0293;

-//

-//public class Test {

-//	public void foo() {

-//		Runnable run= new Runnable() {

-//			public void run() {

-//				/*]*/foo();/*[*/

-//			}

-//		};

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0294/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0294/Test.js
deleted file mode 100644
index 095c67e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0294/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-	function fails() {

-		foo()

-	}

-	function foo() {

-		foo();

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0295/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0295/Test.js
deleted file mode 100644
index 00d03b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0295/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	function g() {

-		return null;

-	}

-	function foo() {

-		g();

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0296/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0296/Test.js
deleted file mode 100644
index 095c67e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0296/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-	function fails() {

-		foo()

-	}

-	function foo() {

-		foo();

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0297/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0297/Test.js
deleted file mode 100644
index 0d89c66..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0297/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-	function foo() {

-		var i= 10;

-		switch (i) {

-			case 1:

-				var l= null;

-				break;

-			default:

-		}

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0298/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0298/Test.js
deleted file mode 100644
index 13c56ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0298/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//	function m(){

-//		return /*[*/a().length != 3/*]*/;

-//	}

-//	function a(){

-//		return null;

-//	}

-//

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0299/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0299/Test.js
deleted file mode 100644
index 4afd41d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0299/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	var i = (/**/2/**/);

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0300/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0300/Test.js
deleted file mode 100644
index 51bc524..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0300/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	var b = /**/true/**/;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0301/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0301/Test.js
deleted file mode 100644
index 7d3e605..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0301/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	var o = /**/null/**/;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0302/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0302/Test.js
deleted file mode 100644
index 3404192..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0302/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function foo() {

-		/*]*/do

-			foo();

-		while(1 < 10);/*[*/

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0303/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0303/Test.js
deleted file mode 100644
index 81dfce1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0303/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-  function foo() {

-    var x;

-    x = 3;

-  }

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0304/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0304/Test.js
deleted file mode 100644
index b88ca2b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0304/Test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	function foo(arg);

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0307/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0307/Test.js
deleted file mode 100644
index ff5da50..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0307/Test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-//package test0307;

-//

-//import java.net.MalformedURLException;

-//

-//public class Test {

-//	static class A {

-//		public A(int i) throws MalformedURLException {

-//		}

-//	}

-//

-//	static class B extends A {

-//		public B()  throws MalformedURLException {

-//			super(10);

-//		}

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0308/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0308/Test.js
deleted file mode 100644
index 5d8c5be..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0308/Test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-//package test0308;

-//

-//import java.net.MalformedURLException;

-//

-//public class Test {

-//	static class A {

-//		public A(int i) throws MalformedURLException {

-//		}

-//	}

-//

-//	static class B extends A {

-//		public B() {

-//			super(10);

-//		}

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0309/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0309/Test.js
deleted file mode 100644
index 18ea87a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0309/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function f(y){

-		var i= (y==7) ? 1 : 2 ;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0310/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0310/Test.js
deleted file mode 100644
index 8274306..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0310/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-	var G = I.GR;

-

-	function  c(){

-		var cp = null;

-	}

-

-I.prototype=new Object();

-I.GR=1;

-

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0311/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0311/Test.js
deleted file mode 100644
index 5954429..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0311/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-//package test0311;

-//

-//public class Test {

-//	void m(){

-//		final int j= 0;

-//		Test a= new Test(){

-//			void m(int j){

-//				int u= j;

-//			}

-//		};

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0312/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0312/Test.js
deleted file mode 100644
index 0f36703..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0312/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-//package test0312;

-//

-//public class Test {

-//	void m(){

-//		final int j= 0;

-//		A a= new A(){

-//			void m(int j){

-//				int u= j;

-//			}

-//		};

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0313/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0313/Test.js
deleted file mode 100644
index f13c70e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0313/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
- 	function  m( i,  j){

- 		var u= i+j;

- 	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0314/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0314/Test.js
deleted file mode 100644
index a20f18d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0314/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-function  main(args) { int x= 3;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0315/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0315/Test.js
deleted file mode 100644
index b695e7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0315/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-  function foo() {

-    return "abc" instanceof String;

-  }

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0317/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0317/Test.js
deleted file mode 100644
index 8c50757..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0317/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function  foo(x) {

-		return x instanceof Boolean;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0318/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0318/Test.js
deleted file mode 100644
index 97131cb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0318/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function ___run(args)  {

-		private var x;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0319/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0319/Test.js
deleted file mode 100644
index 819189c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0319/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function ___run(args){

-		var obj= [];

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0320/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0320/Test.js
deleted file mode 100644
index 2eb9d93..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0320/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	function ___run(args) {

-		var tab = [10];

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0321/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0321/Test.js
deleted file mode 100644
index 8c13f0a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0321/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0321;

-//

-//public class Test {

-//	static void ___run(java.lang.String[] args) throws Throwable {

-//		java.lang.Object[][] obj= new Object[10][0];

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0322/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0322/Test.js
deleted file mode 100644
index 4f88c5a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0322/Test.js
+++ /dev/null
@@ -1 +0,0 @@
-	var fField= null;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0323/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0323/Test.js
deleted file mode 100644
index 04b1926..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0323/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
- function foo() {

-    var x;

-    x = "s";

-  }

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0324/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0324/Test.js
deleted file mode 100644
index 6a31e66..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0324/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0324;

-//

-//public class Test {

-//  void foo() {

-//    Object x;

-//    x = (java.lang.Object[]) null;

-//  }

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0325/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0325/Test.js
deleted file mode 100644
index fada3e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0325/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0325;

-//

-//public class Test {

-//  void foo() {

-//    Object x;

-//    x = (int[]) null;

-//  }

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0326/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0326/A.js
deleted file mode 100644
index a9c99d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0326/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//	A f;

-//	public A a() {

-	function a() {

-		a().f= a();

-		return null;

-	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0327/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0327/Test.js
deleted file mode 100644
index a9eca34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0327/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//package test0327;

-//

-//import java.util.Vector;

-//

-//public class Test {

-//	public static void goo(Object o) {

-//		Vector s= (String) ooo;

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0328/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0328/Test.js
deleted file mode 100644
index 3de16d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0328/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0328;

-//

-//public class Test {

-//	static void ___run(java.lang.String[] args) throws Throwable {

-//		java.lang.Object[] obj= new Object[] {null, new Object()};

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0329/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0329/Test.js
deleted file mode 100644
index cc234c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0329/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0329;

-//

-//public class Test {

-//	static void ___run(java.lang.String[] args) throws Throwable {

-//		java.lang.Object[] obj= new Object[] {};

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0330/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0330/Test.js
deleted file mode 100644
index 3cfbde7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0330/Test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-//package test0330;

-// 

-//public class Test {

-//	public foo() {

-// 		return 0;

-//	}

-//}

-//

-//class A {

-//	void bar() {

-//		new Test().foo();

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0331/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0331/Test.js
deleted file mode 100644
index 86ad443..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0331/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function main() {

-		var args = [];

-    		var i = args.length;

-    	}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0332/LocalSelectionTransfer.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0332/LocalSelectionTransfer.js
deleted file mode 100644
index 5b609cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0332/LocalSelectionTransfer.js
+++ /dev/null
@@ -1,88 +0,0 @@
-///*

-// * (c) Copyright IBM Corp. 2000, 2001.

-// * All Rights Reserved.

-// */

-//package test0332;

-//

-//import org.eclipse.swt.dnd.ByteArrayTransfer;

-//import org.eclipse.swt.dnd.TransferData;

-//import org.eclipse.swt.widgets.Widget;

-//

-//import org.eclipse.jdt.internal.ui.JavaPlugin;

-//import org.eclipse.jface.viewers.ISelection;

-//import org.eclipse.jdt.internal.ui.JavaUIMessages;

-//

-//public class LocalSelectionTransfer extends ByteArrayTransfer {

-//

-//	// First attempt to create a UUID for the type name to make sure that

-//	// different Eclipse applications use different "types" of

-//	// <code>LocalSelectionTransfer</code>

-//	private static final String TYPE_NAME= "local-selection-transfer-format" + (new Long(System.currentTimeMillis())).toString(); //$NON-NLS-1$;

-//	private static final int TYPEID= registerType(TYPE_NAME);

-//	

-//	private static final LocalSelectionTransfer INSTANCE= new LocalSelectionTransfer();

-//	

-//	private ISelection fSelection;

-//	private int fTime;

-//	

-//	private LocalSelectionTransfer() {

-//	}

-//	

-//	/**

-//	 * Returns the singleton.

-//	 */

-//	public static LocalSelectionTransfer getInstance() {

-//		return INSTANCE;

-//	}

-//	

-//	/**

-//	 * Sets the transfer data for local use.

-//	 */	

-//	public void setSelection(ISelection s) {

-//		fSelection= s;

-//	}

-//	

-//	/**

-//	 * Returns the local transfer data.

-//	 */

-//	public ISelection getSelection() {

-//		return fSelection;

-//	}

-//	

-//	public void javaToNative(Object object, TransferData transferData) {

-//		byte[] check= TYPE_NAME.getBytes();

-//		super.javaToNative(check, transferData);

-//	}

-//

-//	public Object nativeToJava(TransferData transferData) {

-//		Object result= super.nativeToJava(transferData);

-//		if (isInvalidNativeType(result)) {

-//			JavaPlugin.logErrorMessage(JavaUIMessages.getString("LocalSelectionTransfer.errorMessage")); //$NON-NLS-1$

-//		}

-//		return fSelection;

-//	}

-//

-//	private boolean isInvalidNativeType(Object result) {

-//		return !(result instanceof byte[]) || !TYPE_NAME.equals(new String((byte[])result));

-//	}

-//	

-//	/**

-//	 * The type id used to identify this transfer.

-//	 */

-//	protected int[] getTypeIds() {

-//		return new int[] {TYPEID};

-//	}

-//	

-//	protected String[] getTypeNames(){

-//		return new String[] {TYPE_NAME};

-//	}	

-//	

-//	public int getTime() {

-//		return fTime;

-//	}

-//

-//	public void setTime(int time) {

-//		fTime= time;

-//	}

-//

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0333/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0333/Test.js
deleted file mode 100644
index f67aee1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0333/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0333;

-//

-//public class Test {

-//	static void ___run(java.lang.String[] args) throws Throwable {

-//		java.lang.Object[][] obj= new Object[10][];

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0334/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0334/Test.js
deleted file mode 100644
index 3af8b22..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0334/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//package test0334;

-//

-//public class Test {

-//	static void ___run(java.lang.String[] args) throws Throwable {

-//		java.lang.Object[][][] obj= new Object[10][][];

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0335/ExceptionTestCaseTest.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0335/ExceptionTestCaseTest.js
deleted file mode 100644
index 0e4dbd8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0335/ExceptionTestCaseTest.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0335;

-//

-//public class ExceptionTestCaseTest extends junit.framework.TestCase {

-//

-//	public ExceptionTestCaseTest(String s) {

-//		super(s);

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0336/SorterTest.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0336/SorterTest.js
deleted file mode 100644
index d33bd94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0336/SorterTest.js
+++ /dev/null
@@ -1,11 +0,0 @@
-//package test0336;

-//

-//import junit.runner.Sorter;

-//import java.util.Vector;

-//

-//public class SorterTest  {

-//	static class Swapper implements Sorter.Swapper {

-//		public void swap(Vector values, int left, int right) {

-//		}

-//    }

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0337/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0337/Test.js
deleted file mode 100644
index 7dac695..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0337/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//package test0337;

-//

-//public class Test {

-// 	String message= Test.m("s", new String[]{"g"});

-// 	

-// 	static String m(String g, String[] s){

-// 		return null;

-// 	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0338/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0338/Test.js
deleted file mode 100644
index bfc0221..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0338/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-//package test0338;

-//

-//import java.io.IOException;

-//

-//public class Test {

-//	public void foo() throws IOException {

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0339/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0339/Test.js
deleted file mode 100644
index a98296e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0339/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	function doQuery( x){}

-

-	function  setX( x) {

- 		 

-		z=

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0341/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0341/A.js
deleted file mode 100644
index 6add4c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0341/A.js
+++ /dev/null
@@ -1,29 +0,0 @@
-package test0341;

-

-import java.io.IOException;

-import java.io.InterruptedIOException;

-import java.io.UnsupportedEncodingException;

-import java.net.MalformedURLException;

-import java.util.Vector;

-

-public class A {

-

-	private Vector field;

-

-	public void l()

-		throws

-			IOException,

-			MalformedURLException,

-			InterruptedIOException,

-			UnsupportedEncodingException {

-		if (field != null) {

-			throw new IOException();

-		} else if (field == null) {

-			throw new MalformedURLException();

-		} else if (field == null) {

-			throw new InterruptedIOException();

-		} else {

-			throw new UnsupportedEncodingException();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0342/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0342/Test.js
deleted file mode 100644
index 3aff78e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0342/Test.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test0342;

-

-public class Test {

-

-	public int junk1(int i) {

-		return 0;

-	}

-

-	public long junk2() {

-		return 0;

-	}

-

-	public Object junk3() {

-		return null;

-	}

-	

-	Test(int i) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0343/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0343/Test.js
deleted file mode 100644
index 4f9dcaf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0343/Test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0343;

-

-public class Test {

-

-	public volatile boolean flag;

-

-	public void foo() {

-		int i= 5;

-		/*]*/if (flag)

-			i= 10;/*[*/

-		i--;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0344/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0344/Test.js
deleted file mode 100644
index 8295b88..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0344/Test.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0344;

-

-public class Test {

-

-    public void bugTest() {

-        System.out.println("bla");

-        System.out.println("blubb");

-    }

-

-    private void containsAssert() {

-        assert true;

-    }

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0345/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0345/A.js
deleted file mode 100644
index 6d83c68..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0345/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0345;

-

-public class A {

-	Bar.B[] field= new Bar.B[]{

-		new Bar.B()

-	};

-	void f(){

-		int temp;

-	}

-}

-

-class Bar{

-	static class B{}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0346/Test2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0346/Test2.js
deleted file mode 100644
index 90717c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0346/Test2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0346;

-

-import java.util.Vector;

-

-public class Test2 {

-  public static void main(String[] arguments) {

-    Vector editors[]= null;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0347/Test2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0347/Test2.js
deleted file mode 100644
index a2d6647..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0347/Test2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0347;

-

-import java.util.Vector;

-

-public class Test2 {

-  public static void main(String[] arguments) {

-    Vector[] editors[]= null;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0348/Test2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0348/Test2.js
deleted file mode 100644
index c06fc39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0348/Test2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0348;

-

-import java.util.Vector;

-

-public class Test2 {

-  public static void main(String[] arguments) {

-    Vector[][] editors[]= null;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0349/Test2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0349/Test2.js
deleted file mode 100644
index 6838324..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0349/Test2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0349;

-

-import java.util.Vector;

-

-public class Test2 {

-	Vector[][] editors[]= null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0350/Test2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0350/Test2.js
deleted file mode 100644
index 5d5e96d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0350/Test2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0350;

-

-import java.util.Vector;

-

-public class Test2 {

-	Vector editors[]= null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0351/Test2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0351/Test2.js
deleted file mode 100644
index 068a954..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0351/Test2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0351;

-

-public class Test2 {

-	void m1(int a, int[] b){}	

-	void m(int a, int b[]){}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0352/Test2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0352/Test2.js
deleted file mode 100644
index 4071da2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0352/Test2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0352;

-

-public class Test2 {

-	void m1(final int a, final int[] b){}	

-	void m(final int a, final int b[]){}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0353/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0353/Test.js
deleted file mode 100644
index ef55178..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0353/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0353;

-

-import java.io.InputStream;

-

-public class Test {

-        void foo() {

-                InputStream i = null;

-                while (true);

-        }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0354/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0354/Test.js
deleted file mode 100644
index ed2a6ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0354/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0354;

-

-public class Test {

-

-	protected void primExecute() {

-		this.toString();

-	}

-

-	if (image != null) {

-		Object loc = null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0355/Foo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0355/Foo.js
deleted file mode 100644
index d5152c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0355/Foo.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0355;

-

-public class Foo {

-	public Object bar() {

-		if ( ((Object)null).toString() == null ) {

-			return (Object)null;

-		}

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0356/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0356/A.js
deleted file mode 100644
index 58aedb6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0356/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0356;

-

-public class A {

-	

-}

-

-class ActionFactory {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0356/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0356/X.js
deleted file mode 100644
index a75dde3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0356/X.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0356;

-

-public class X {

-	public void foo() {

-		ActionFactory af=new MyActionFactory();		

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0357/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0357/A.js
deleted file mode 100644
index 0c54581..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0357/A.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package test0357;

-class A{

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0358/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0358/A.js
deleted file mode 100644
index bd10d92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0358/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0358;

-

-class A {

-	public void mdd(int y){

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0359/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0359/A.js
deleted file mode 100644
index e11bb6f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0359/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0359;

-

-class A {

-	public void mdd(int y) throws Exception{

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0360/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0360/X.js
deleted file mode 100644
index 022f0c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0360/X.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0360;

-

-public class X {

-	public void foo() {

-		for (int i=0, j=0, k=0; i<10 ; i++,j++,k++) {

-  			System.out.println("L");

-	  	}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0361/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0361/X.js
deleted file mode 100644
index 04c0c01..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0361/X.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0361;

-

-public class X {

-	public void foo() {

-		for (int i=0; i<10 ; i++) {

-  			System.out.println("L");

-	  	}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0362/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0362/Test.js
deleted file mode 100644
index 08a037e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0362/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function foo(i) {

-	for (var i=0, j=0, k=0; i<10 ; i++, j++, k++) {}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0363/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0363/A.js
deleted file mode 100644
index 8f832f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0363/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0363;

-/* Regression test for bug 22939 */

-public class A {

-	void f(){

-		String xxxx= "xx";

-		String y= ( xxxx );

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0364/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0364/A.js
deleted file mode 100644
index 13360e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0364/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0364;

-/* Regression test for bug 11529 */

-public class A {

-	void theMethod() {

-		int local;

-/*		for (int i = 0; i < 5; ++i) {

-		}*/

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0365/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0365/A.js
deleted file mode 100644
index db973fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0365/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0365

-;

-/* Regression test for bug 11529 */

-public class A {

-	void theMethod() {

-		for (int i = 0; i < 5; ++i) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0366/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0366/A.js
deleted file mode 100644
index e2bde1e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0366/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0366;

-

-/* Regression test for bug 23048 */

-

-public class A {

-	void theMethod() {

-		for (int i = 0; i < 5; ++i);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0367/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0367/A.js
deleted file mode 100644
index 2c1628d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0367/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0367;

-

-/* Regression test for bug 23048 */

-

-public class A {

-	void theMethod(int i) {

-		while(i == 2);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0368/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0368/A.js
deleted file mode 100644
index 8e880df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0368/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0368;

-

-/* Regression test for bug 23048 */

-

-public class A {

-	void foo() {

-		test:;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0369/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0369/A.js
deleted file mode 100644
index 469682e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0369/A.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function foo() {

-	test:\u003B

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0370/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0370/Test.js
deleted file mode 100644
index d19bfae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0370/Test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function foo() {

-	do ; while(true);

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0371/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0371/A.js
deleted file mode 100644
index e4995ff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0371/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0371;

-

-/* Regression test for bug 23048 */

-

-public class A {

-	void foo(int i) {

-		if (i == 6);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0372/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0372/A.js
deleted file mode 100644
index 0301d9d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0372/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0372;

-

-/* Regression test for bug 23048 */

-

-public class A {

-	void foo(int i) {

-		if (i == 6) {} else ;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0373/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0373/A.js
deleted file mode 100644
index 6028605..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0373/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0373;

-

-/* Regression test for bug 23118 */

-

-public class A {

-	void foo() {

-		for (int i = 0; i < 10; i++) {

-			break;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0374/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0374/A.js
deleted file mode 100644
index a3b39aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0374/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0374;

-

-/* Regression test for bug 23118 */

-

-public class A {

-	void foo() {

-		for (int i = 0; i < 10; i++) {

-			continue;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0375/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0375/A.js
deleted file mode 100644
index 1740634..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0375/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0375;

-

-import test0375.A.*;

-

-/* Regression test for bug 23052 */

-

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0376/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0376/A.js
deleted file mode 100644
index 152c7f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0376/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0376;

-

-class A {

-	void f() {

-		A a = ( A ) this;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0377/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0377/A.js
deleted file mode 100644
index 3019a58..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0377/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0377;

-

-class A {

-	void f() {

-		final int i;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0378/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0378/A.js
deleted file mode 100644
index 25e530e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0378/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0378;

-

-public class A {

-    public static class B {

-        public void foo() {

-        }		

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0379/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0379/Test.js
deleted file mode 100644
index 926d3ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0379/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0005;

-import java.util.*;

-public class Test {

-	public static void main(String[] args) {

-		System.out.println(new Object() {});

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0380/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0380/A.js
deleted file mode 100644
index 4a6013a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0380/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0380;

-

-public class A {

-    public String toString() {

-    	return super.toString();	

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0381/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0381/A.js
deleted file mode 100644
index bd292f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0381/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0381;

-

-public class A {

-	/** Method theMethod.*/

-	void theMethod() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0382/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0382/A.js
deleted file mode 100644
index 7e42e91..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0382/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0382;

-

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0383/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0383/A.js
deleted file mode 100644
index ca0c048..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0383/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0383;

-

-public class A {

-    public static class B {

-        public void foo() {

-        }		

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0384/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0384/A.js
deleted file mode 100644
index 2b5d55c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0384/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0384;

-

-public class A {

-    public static class B {

-        public class D {

-        }		

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0385/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0385/A.js
deleted file mode 100644
index 3346949..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0385/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0385;

-

-public class A {

-

-	int getClass() {

-		return 0;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0386/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0386/A.js
deleted file mode 100644
index 23e9495..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0386/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0386;

-

-public class A {

-

-	void foo(int i) {

-		switch(i) {

-			case 1: 

-				System.out.println();

-				break;

-			default :

-				return;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0387/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0387/A.js
deleted file mode 100644
index 793ba30..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0387/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0387;

-

-class A {

-	void f() {

-		A a = (\u0020A\u0020) this;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0388/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0388/A.js
deleted file mode 100644
index d5ce18e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0388/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0388;

-

-class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0389/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0389/A.js
deleted file mode 100644
index 70ff02f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0389/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0389;

-

-class A {

-	class B {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0390/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0390/A.js
deleted file mode 100644
index 4793424..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0390/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0390;

-

-class A {

-	int foo() {

-		return 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0391/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0391/A.js
deleted file mode 100644
index 0cd852e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0391/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0391;

-

-class A {

-	int[] foo() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0392/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0392/A.js
deleted file mode 100644
index 352aba3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0392/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0392;

-

-class A {

-	String[] foo() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0393/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0393/A.js
deleted file mode 100644
index ba1c752..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0393/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0393;

-

-class A {

-	String foo()[] {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0394/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0394/A.js
deleted file mode 100644
index 483f459..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0394/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0394;

-

-class A {

-	String foo() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0395/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0395/A.js
deleted file mode 100644
index 4e017ef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0395/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0395;

-

-class A {

-	String[] foo()[] {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0396/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0396/A.js
deleted file mode 100644
index 1be11ca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0396/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0396;

-

-public class A {

-	public void foo(final String s[]) {

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0397/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0397/A.js
deleted file mode 100644
index 8a6fcb3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0397/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0397;

-

-public class A {

-	public void foo(final String[] \u0073\u005B][]) {

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0398/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0398/A.js
deleted file mode 100644
index 58f5e07..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0398/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0397;

-

-public class A {

-	public void foo() {

-        int i= (1 + 2) * 3;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0399/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0399/A.js
deleted file mode 100644
index 151409a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0399/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0399;

-

-public class A {

-	public A() {

-   		int i;

-   		int k;

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0400/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0400/A.js
deleted file mode 100644
index daf9f40..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0400/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0400;

-

-public class A {

-	public A() {

-   		super();

-   		int i;

-   		int k;

-

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0401/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0401/A.js
deleted file mode 100644
index 86be377..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0401/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0401;

-

-public class A {

-	correctThis() {

-	    return 1;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0402/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0402/A.js
deleted file mode 100644
index eacb300..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0402/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0402;

-

-class A{

-	class Inner{

-		Inner(){

-		}

-	}

-}

-

-class I2 extends A.Inner{

-	I2(){

-		new A().super();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0403/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0403/A.js
deleted file mode 100644
index 0cb4d41..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0403/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0403;

-

-class Test {

-	public void foo(){};

-}

-

-public class A {

-	void test1() throws CloneNotSupportedException {

-		Test test = new Test();

-		test.clone();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0404/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0404/A.js
deleted file mode 100644
index bed3f77..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0404/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0404;

-

-class A{

-  void f() {

-     A a= new A();

-     a.clone();

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0405/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0405/A.js
deleted file mode 100644
index c80766a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0405/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0405;

-

-class A {

-	public void foo() {

-	}

-}

-

-class Test {

-	void test() throws CloneNotSupportedException {

-		A a = new A();

-		a.clone();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0406/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0406/A.js
deleted file mode 100644
index eb649ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0406/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0406;

-

-import test0406_a.A;

-

-class Test {

-	void test() {

-		A a = new A();

-		a.foo("");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0406_a/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0406_a/A.js
deleted file mode 100644
index 5b2e402..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0406_a/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0406_a;

-

-public class A {

-	protected A foo(String s) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0407/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0407/A.js
deleted file mode 100644
index 6b9d1b8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0407/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0407;

-

-public class A {

-	void foo() {

-	}

-	void bar() {

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0408/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0408/A.js
deleted file mode 100644
index eb58e4c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0408/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0408;

-

-public class A {

-	java.lang.Object foo() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0409/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0409/A.js
deleted file mode 100644
index 293c95d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0409/A.js
+++ /dev/null
@@ -1,102 +0,0 @@
-package test0409;

-

-import java.io.*;

-import java.lang.Object;

-

-class Super extends java.lang.Object {

-	int k;

-	

-	int foo2() {

-		return 0;

-	}

-}

-/**

- *

- */

-public class A extends Super implements Cloneable, Serializable {

-

-	private static final long serialVersionUID = 1L;

-	public static final int i = 0;

-

-	{

-		int j;

-	}

-	

-	int[] foo(float f) throws Exception {

-		assert f > 0 : "it works";

-		{

-		}

-		test: for (int i = 0; i < 10; i++) {

-			if (f > 0) {

-				break test;

-			} else {

-				continue test;

-			}

-		}

-		Object o = new Object();

-		int k = 0;

-		do {

-			o = new Object();

-			k++;

-			if (k < 10) {

-				o = null;

-				break;

-			}

-		} while (o != null);

-		;

-		if (o == null) {

-			throw new Exception();

-		}

-		int j = 9;

-		switch(j) {

-			case 4 :

-				break;

-			default : 

-				return null;

-		}

-		synchronized(o) {

-		}

-		try {

-			System.out.println();

-		} catch(Exception e) {

-			System.out.println();

-		} finally {

-			j = (int) 'c';

-		}

-		while (j > 0) {

-			--j;

-		}

-		int[] tab = { 1, 2, 3, 4};

-		j = tab[3];

-		boolean b = (true && false);

-		

-		j = o instanceof Object ? 4 : 5 + 9;

-		

-		j = k;

-		

-		j = foo2();

-		

-		o = this.bar();

-		

-		o = A.class;

-		

-		return new int[] {};

-	}

-

-	Object bar() {

-		class C {

-		}

-		return new C() {};

-	}

-		

-	A() {

-		this(0);

-	}

-	

-	A(int i) {

-		super();

-	}

-	

-	class B {

-	}

-}	
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0410/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0410/A.js
deleted file mode 100644
index 15ed7a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0410/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0410;

-

-public class A {

-	int foo() {

-		return 1 + 2 + 3 + 4 + 3;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0411/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0411/A.js
deleted file mode 100644
index f32ecb3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0411/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0411;

-

-public class A {

-	

-	int bar(int a, int b) {

-		return a*b + 2 + foo();

-	}

-	

-	int foo() {

-		return 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0412/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0412/A.js
deleted file mode 100644
index ef38fed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0412/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0412;

-

-interface A {

-	void m();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0413/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0413/A.js
deleted file mode 100644
index b613723..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0413/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0413;

-

-class E extends Exception {

-}

-

-interface A {

-	void m() throws IOException, E;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0414/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0414/A.js
deleted file mode 100644
index ef148da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0414/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0414;

-

-public class A {

-	B foo() {

-		return null;

-	}

-

-	A bar() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0414/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0414/B.js
deleted file mode 100644
index f6e8640..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0414/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0414;

-

-class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0415/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0415/A.js
deleted file mode 100644
index f7a7159..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0415/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0415;

-

-public class A {

-	public void foo(int i) {

-		switch(i) {

-			case 2: 

-				System.out.println();

-				break;

-			default:

-				System.out.println();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0416/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0416/A.js
deleted file mode 100644
index 3cc58a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0416/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0416;

-

-interface I {

-    int CONST= 1;

-}

-

-public class A {

-  void foo() {

-    int x= I.CONST;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0417/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0417/A.js
deleted file mode 100644
index d4a6f01..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0417/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0417;

-

-public class A {

-  void foo() {

-    A.NewClass c;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0418/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0418/A.js
deleted file mode 100644
index f638f3e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0418/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0418;

-

-public class A {

-  private void foo() {

-  }

-  

-  private static void goo() {

-  	foo();

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0419/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0419/A.js
deleted file mode 100644
index 61ee597..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0419/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0419;

-

-class C {

-  private int fCoo;

-}

-

-public class A {

-  public static void goo(C c) {

-    fCoo= 1;

-/*    super.fCoo= 1;

-    C.fCoo= 1;

-    c.fCoo= 1;*/

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0420/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0420/A.js
deleted file mode 100644
index 5573625..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0420/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0420;

-

-public class A{

-    void f(){

-        int i= 1 + (2 + 3) + 4;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0421/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0421/A.js
deleted file mode 100644
index 552f85b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0421/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0421;

-

-public class A{

-    void f(){

-        int i= (1 + 2) + 3;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0422/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0422/A.js
deleted file mode 100644
index c283933..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0422/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0422;

-

-public class A{

-    void f(){

-        int i= ( 1 + 2 ) + 3;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0423/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0423/A.js
deleted file mode 100644
index eb93c9f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0423/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0423;

-

-public class A{

-    void f(){

-        int i= 1 + ( 2 + 3 ) + 4;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0424/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0424/A.js
deleted file mode 100644
index 76ea0b9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0424/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0424;

-

-public class A{

-    void f(){

-        int i= 1 + 4 + ( 2 + 3 );

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0425/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0425/A.js
deleted file mode 100644
index fc48542..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0425/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0425;

-

-public class A{

-    void f(){

-        int i= 1 + 4 * ( 2 + 3 );

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0426/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0426/A.js
deleted file mode 100644
index be9a3f3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0426/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0426;

-

-class C {

-  private class CInner {

-  }

-}

-

-public class A extends C {

-  public static void goo() {

-    CInner c;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0427/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0427/A.js
deleted file mode 100644
index aa5649c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0427/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0427;

-

-class C {

-  private int fCoo;

-}

-

-public class A extends C {

-  public static void goo(C c) {

-    super.fCoo= 1;

-/*    C.fCoo= 1;

-    c.fCoo= 1;*/

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0428/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0428/A.js
deleted file mode 100644
index 18d1a50..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0428/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0428;

-

-class C {

-  private int fCoo;

-}

-

-public class A extends C {

-  public static void goo(C c) {

-    C.fCoo= 1;

-//    c.fCoo= 1;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0429/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0429/A.js
deleted file mode 100644
index f927fad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0429/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0429;

-

-class C {

-  private int fCoo;

-}

-

-public class A extends C {

-  public static void goo(C c) {

-    c.fCoo= 1;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0430/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0430/A.js
deleted file mode 100644
index aa35c7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0430/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0430;

-

-public class A {

-	private A() {

-		this(coo2());

-	}

-	

-	private A(int i) {

-	}

-

-	private int coo2() {

-		return 7;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0431/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0431/A.js
deleted file mode 100644
index c276340..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0431/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0431;

-

-public class A {

-	private A() {

-		this(fCoo);

-	}

-	

-	private A(int i) {

-	}

-

-	private int fCoo= 8;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0432/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0432/A.js
deleted file mode 100644
index d3e9c8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0432/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0432;

-

-class C {

-  private int fCoo;

-}

-

-public class A extends C {

-  public void goo(C c) {

-    fCoo= 1;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0433/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0433/A.js
deleted file mode 100644
index a41a6c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0433/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0433;

-

-class C {

-  private int fCoo;

-}

-

-public class A extends C {

-  public void goo(C c) {

-    super.fCoo= 1;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0434/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0434/A.js
deleted file mode 100644
index 7a10b15..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0434/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0434;

-

-class C {

-  private int fCoo;

-}

-

-public class A extends C {

-  public void goo(C c) {

-    C.fCoo= 1;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0435/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0435/A.js
deleted file mode 100644
index 919f333..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0435/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0435;

-

-class C {

-  private int fCoo;

-}

-

-public class A extends C {

-  public void goo(C c) {

-    c.fCoo= 1;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0436/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0436/A.js
deleted file mode 100644
index 50bf08e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0436/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0436;

-

-public class A {

-  private class CInner {

-  }

-}

-

-class D extends A {

-  public void goo() {

-    A.CInner a;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0437/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0437/A.js
deleted file mode 100644
index 4077e01..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0437/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0437;

-

-public class A {

-  private class CInner {

-  }

-}

-

-class D extends A {

-  public void goo() {

-    CInner a;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0438/D.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0438/D.js
deleted file mode 100644
index 1803207..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0438/D.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0438;

-

-import test0438_a.W;

-

-class D {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0438_a/W.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0438_a/W.js
deleted file mode 100644
index 2cfd30a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0438_a/W.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0438_a;

-

-class W {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0439/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0439/C.js
deleted file mode 100644
index 5946e81..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0439/C.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0439;

-

-public class C {

-    private class CInner {

-    }		

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0439/E.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0439/E.js
deleted file mode 100644
index 5016be7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0439/E.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0439;

-

-public class E extends C {

-    public void foo() {

-         CInner c= null;

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0440/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0440/A.js
deleted file mode 100644
index b36168a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0440/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0440;

-

-public class A {

-    void test() {

-        String i= 2 * 3 + "" + (true);

-    }  

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0441/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0441/A.js
deleted file mode 100644
index 1143720..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0441/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0441;

-

-public class A {

-    void test() {

-        int i= (2 + 2) * 3 * 1;

-    }  

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0442/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0442/A.js
deleted file mode 100644
index cf9e7e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0442/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0442;

-

-public class A {

-    void test() {

-        int i= 2 + (2 * 3) + 1;

-    }  

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0443/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0443/A.js
deleted file mode 100644
index 5b0c1c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0443/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0443;

-

-public class A {

-   public abstract void foo() {

-   		return;

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0444/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0444/A.js
deleted file mode 100644
index 2305e6e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0444/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0444;

-

-public class A {

-   public void foo() {

-   		return;

-   }

-

-   public void foo() {

-   		return;

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0445/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0445/A.js
deleted file mode 100644
index eccd6c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0445/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0445;

-

-import java.io.IOException;

-	

-public class A {

-    public void goo() throws IOException {

-    }		

-    public void foo() {

-        goo();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0446/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0446/A.js
deleted file mode 100644
index 1408d81..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0446/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0446;

-

-public class A {

-	void foob() {

-		int b = b;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0447/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0447/A.js
deleted file mode 100644
index 3399e19..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0447/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0447;

-

-public class A {

-	public static void collectCorrections() {

-		processors= null;

-	}		

-		try {

-			int id= 2;

-		} catch (CoreException e) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0448/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0448/A.js
deleted file mode 100644
index 1dc4fdb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0448/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0448;

-

-public class A {

-	A() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0449/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0449/A.js
deleted file mode 100644
index 18d9f4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0449/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0449;

-

-public class A {

-	A() {

-		super();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0450/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0450/A.js
deleted file mode 100644
index b0292e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0450/A.js
+++ /dev/null
@@ -1,22 +0,0 @@
-package test0450;

-

-public final class A {

-	

-	void outerMethod() {

-		

-		new Object() {

-			

-			class Subroutine {

-				class B {

-				}

-			}

-			

-			private void innerMethod() {

-				class B {

-				}

-				Subroutine sub = null;

-			}

-			

-		};

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0451/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0451/A.js
deleted file mode 100644
index c8a66a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0451/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0451;

-

-public class A {

-	private int A()[]{

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0453/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0453/A.js
deleted file mode 100644
index d9f9398..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0453/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0453;

-

-public class A {

-	public String foo() {

-		return super.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0454/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0454/A.js
deleted file mode 100644
index 2f1a342..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0454/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0454;

-

-public class A {

-

-	public A() {

-		int a= 2;

-		int b= (int) (3.14f * a);

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0455/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0455/A.js
deleted file mode 100644
index c50077e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0455/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0455;

-

-public class A {

-

-	public void foo() {

-	   for (int i = 0; i < 10; i++)  // for 1

-	        for (int j = 0; j < 10; j++)  // for 2

-	            if (true) { }

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0456/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0456/A.js
deleted file mode 100644
index 1341acb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0456/A.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package test0456;

-

-public class A {

-	public void main() {

-		for (int x= 10; x < 20; x++)

-			main();

-		/*]*/foo(10);/*[*/

-	}

-	

-	public void foo(int x) {

-		x= 20;

-		bar(x);

-	}

-	

-	public void bar(int z) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0457/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0457/A.js
deleted file mode 100644
index c33248e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0457/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0457;

-

-public class A {

-	public void foo() {

-		for (int i= 10; i < 10; i++)/*[*/

-			for (int z= 10; z < 10; z++)

-				foo();

-		/*]*/foo();	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0458/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0458/A.js
deleted file mode 100644
index edce28b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0458/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0458;

-

-public class A {

-	public void foo() {

-		for (int i= 10; i < 10; i++)/*[*/

-			for (int z= 10; z < 10; z++)

-				;

-		/*]*/foo();	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0459/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0459/A.js
deleted file mode 100644
index ce35995..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0459/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0459;

-

-public class A {

-	public void foo() {

-		for (int i= 10; i < 10; i++)/*[*/

-			for (int z= 10; z < 10; z++)

-				{    }

-		/*]*/foo();	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0460/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0460/A.js
deleted file mode 100644
index 8ac1574..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0460/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0460;

-

-public class A {

-	public void foo() {

-		final int bar;

-

-		bar = 1;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0461/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0461/A.js
deleted file mode 100644
index 9f7789d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0461/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0461;

-

-public class A {

-    public void foo() {

-        z= foo().y.toList();

-    }

-}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0463/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0463/A.js
deleted file mode 100644
index e625e62..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0463/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0463;

-

-public class A {

-    public String foo() {

-        return "\012\015\u0061";

-    }

-}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0464/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0464/A.js
deleted file mode 100644
index e5f3d20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0464/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0464;

-

-public class A {

-

-	public static int foo() {

-		return null;

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0465/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0465/A.js
deleted file mode 100644
index 4b57374..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0465/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0465;

-

-public class A {

-

-	int i;

-	

-	public int foo() {

-		return this.i;

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0466/Assert.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0466/Assert.js
deleted file mode 100644
index b7a2f0a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0466/Assert.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package test0466;

-

-public class Assert {

-	public static final void notNull(Object ref, String message)

-	{

-		assert ref != null : message;

-	}

-	

-	void method(String param1, String param2, String param3)

-	{

-		Assert.notNull(param1, "param1 != null");

-		Assert.notNull(param2, "param2 != null");

-		Assert.notNull(param3, "param3 != null");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0467/Assert.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0467/Assert.js
deleted file mode 100644
index 1110a55..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0467/Assert.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package test0467;

-

-public class Assert {

-	public static final void notNull(Object ref, String message)

-	{

-		assert ref != null : message\u003B

-		assert ref != null\u003B

-	}

-	

-	void method(String param1, String param2, String param3)

-	{

-		Assert.notNull(param1, "param1 != null");

-		Assert.notNull(param2, "param2 != null");

-		Assert.notNull(param3, "param3 != null");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0468/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0468/A.js
deleted file mode 100644
index 0b9c3ef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0468/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0468;

-

-public class A {

-

-	int i;

-	

-	public int foo() {

-		return this.i;

-	}

-

-	public void bar() {

-		foo();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0470/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0470/A.js
deleted file mode 100644
index 122b47a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0470/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0470;

-

-public class A {

-

-	public void foo() {

-		for (int i= 0, j= goo(3); i < 0; i++) {

-		}		

-	}

-	

-	int goo(int i) {

-		return 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0471/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0471/A.js
deleted file mode 100644
index 80aaddd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0471/A.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package test0471;

-

-public class A {

-		

-    private void foo(){

- // missing closing bracket

-    /*

-     *

-     */

-    private void foo1(){

-    }

-

-    private void foo2(){

-    }	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0473/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0473/A.js
deleted file mode 100644
index f5826c6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0473/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0473;

-

-import java.math.BigDecimal;

-

-public class A {

-	public static void main(String[] args) {

-		assert(true);

-		BigDecimal f = null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0474/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0474/A.js
deleted file mode 100644
index 477b4c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0474/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0474;

-

-public class A {

-	public boolean b() {

-		return true;

-	}

-	

-	public void foo() {

-		while(b())

-			/*]*/while(b())

-				foo();

-		/*]*/foo();		

-	}	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0475/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0475/A.js
deleted file mode 100644
index 18bf5f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0475/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0475;

-

-public class A {

-	public boolean b() {

-		return true;

-	}

-	

-	public void foo() {

-		if (b())

-			/*]*/if(b())

-				foo();

-		/*]*/foo();		

-	}	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0476/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0476/A.js
deleted file mode 100644
index 0816d70..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0476/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0476;

-

-public class A {

-	public boolean b() {

-		return true;

-	}

-	

-	public void foo() {

-		for (;b();)

-			/*]*/for(;b();)

-				foo();

-		/*]*/foo();		

-	}	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0477/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0477/A.js
deleted file mode 100644
index 6a37c6d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0477/A.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test0477;

-

-public class A {

-	public A(String name) {

-	}

-

-	public A() {

-		this(undef());

-	}

-	

-	void bar(String s) {

-	}

-	

-	void bar() {

-	}

-	

-	void bar(int i) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0478/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0478/A.js
deleted file mode 100644
index d663679..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0478/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0478;

-

-class A {

-	public void foo() {

-	}

-}

-

-class Test {

-	void test() throws CloneNotSupportedException {

-		A a = new A();

-		a.clone();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0479/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0479/A.js
deleted file mode 100644
index bfcd6ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0479/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0479;

-

-class A {

-	public void foo() {

-	}

-}

-

-class Test {

-	void test() throws CloneNotSupportedException {

-		A a = new A();

-		a.clone();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0480/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0480/A.js
deleted file mode 100644
index 309c56e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0480/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0480;

-

-public class A {

-	void test() throws CloneNotSupportedException {

-		Runnable runnable = new Runnable() {

-			public void run() {

-				System.out.println();

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0481/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0481/A.js
deleted file mode 100644
index 7cb0d57..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0481/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0481;

-

-public class A {

-	void test() throws CloneNotSupportedException {

-		Runnable runnable = new Runnable() {

-			public void run() {

-				System.out.println();

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0482/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0482/A.js
deleted file mode 100644
index da8da61..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0482/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0482;

-

-public class A {

-	public class B {

-		void test() throws CloneNotSupportedException {

-			Runnable runnable = new Runnable() {

-				public void run() {

-					System.out.println();

-				}

-			};

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0483/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0483/A.js
deleted file mode 100644
index dffb734..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0483/A.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package test0483;

-

-public class A {

-	

-	/**

-	 * 

-	 * 

-	 */

-	public A() {

-		Runnable runnable = new Runnable() {

-			public void run() {

-				System.out.println();

-			}

-		};

-	} // comment

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0484/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0484/A.js
deleted file mode 100644
index 8a09eb4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0484/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0484;

-

-public class A {

-	public class B {

-		void test() throws CloneNotSupportedException {

-			Runnable runnable = new Runnable() {

-				public void run() {

-					System.out.println();

-				}

-			};

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0485/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0485/A.js
deleted file mode 100644
index 00ee0bd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0485/A.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package test0485;

-

-public class A {

-	/*

-	 * 

-	 * 

-	 */

-	public class B {

-		void test() throws CloneNotSupportedException {

-			Runnable runnable = new Runnable() {

-				public void run() {

-					System.out.println();

-				}

-			};

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0486/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0486/A.js
deleted file mode 100644
index 5073527..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0486/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0486;

-

-public class A {

-  int field;

-  void foo(int i, int k) {

-     i= k;

-   }

-

-  int goo() {

-     // offset here

-    field= 1;

-    return;

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0487/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0487/A.js
deleted file mode 100644
index e978297..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0487/A.js
+++ /dev/null
@@ -1,27 +0,0 @@
-package test0487;

-

-public class A {

-  int field = 4;

-  static int i = bar();

-  

-  {

-  	System.out.println();

-  }

-  

-  static {

-  	i = 5;

-  }

-

-  void foo(int j, int k) {

-     j = k;

-   }

-

-  int goo() {

-    field= 1;

-    return;

-   }

-   

-  static int bar() {

-  	return 0;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0488/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0488/A.js
deleted file mode 100644
index dd8952b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0488/A.js
+++ /dev/null
@@ -1,27 +0,0 @@
-package test0488;

-

-public class A {

-  int field = 4;

-  static int i = bar();

-  

-  {

-  	System.out.println();

-  }

-  

-  static {

-  	i = 5;

-  }

-

-  void foo(int j, int k) {

-     j = k;

-   }

-

-  int goo() {

-    field= 1;

-    return;

-   }

-   

-  static int bar() {

-  	return 0;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0489/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0489/A.js
deleted file mode 100644
index 92fb357..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0489/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0489;

-

-import test0489.Y;

-import test0489.Zork;

-

-public class A {

-	class B {

-		public void bar(Y y) {

-			Y y = new Y();

-			System.out.println(y.toString());

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0490/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0490/A.js
deleted file mode 100644
index 6342009..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0490/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0490;

-

-public class A {

-

-	public void method() {

-		switch(1) {

-			 case B.ONE : break;

-			 case B.TWO : break;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0490/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0490/B.js
deleted file mode 100644
index 440487c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0490/B.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0490;

-

-public interface B {

-	int ONE = 1;

-	int TWO = 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0491/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0491/A.js
deleted file mode 100644
index 772f663..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0491/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0491;

-

-public class A {

-

-	public void method(String loginName) {

-		assert(loginName != null);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0492/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0492/A.js
deleted file mode 100644
index feef8b6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0492/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0492;

-

-public class A {

-

-	public void method(String loginName) {

-		assert loginName != null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0493/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0493/A.js
deleted file mode 100644
index 6b42177..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0493/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0493;

-

-public class A {

-      Class[][] cls;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0494/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0494/A.js
deleted file mode 100644
index bee9442..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0494/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0494;

-

-public class A {

-      Class[][][] cls;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0495/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0495/A.js
deleted file mode 100644
index 9ace714..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0495/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0495;

-

-public class A {

-      Class[][] cls[];

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0496/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0496/A.js
deleted file mode 100644
index 26ff027..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0496/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0496;

-

-public class A {

-      Class[][][][] cls;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0497/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0497/A.js
deleted file mode 100644
index 13fe5c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0497/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0497;

-

-public class A {

-      Class[] cls;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0498/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0498/A.js
deleted file mode 100644
index 0fd8a34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0498/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0497;

-

-public abstract class A {

-    public Object foo1() { return null; }

-    public Object foo2() throws IllegalArgumentException { return null; }

-    public Object foo3()[][] { return null; }

-    public Object foo4()[][] throws IllegalArgumentException { return null; }

-    public Object foo5()[][] { return null; }

-    public Object foo6(int i)[][] throws IllegalArgumentException { return null; }

-    public Object foo7(int i)[][] { return null; }

-    public Object[] foo8(int i)[][] { return null; }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0499/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0499/A.js
deleted file mode 100644
index 8f18fb2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0499/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class A {

-  public void foo() {

-     int x= 10;

-     x= x + 1;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0500/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0500/A.js
deleted file mode 100644
index 6292f71..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0500/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0500;

-/**

- * Test for bug 45436

- */

-public class A {

-	/**

-	 * @param b 

-	 *        comment on second line.

-	 * @param c

-	 */

-	public void foo(int a, int b, int c) { }

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0501/JavaEditor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0501/JavaEditor.js
deleted file mode 100644
index 8148d19..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0501/JavaEditor.js
+++ /dev/null
@@ -1,3243 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-

-package test0501;

-

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.text.CollationElementIterator;

-import java.text.Collator;

-import java.text.RuleBasedCollator;

-import java.util.ArrayList;

-import java.util.Iterator;

-import java.util.List;

-import java.util.ResourceBundle;

-import java.util.StringTokenizer;

-

-import org.eclipse.core.resources.IMarker;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.core.runtime.Preferences;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.BidiSegmentEvent;

-import org.eclipse.swt.custom.BidiSegmentListener;

-import org.eclipse.swt.custom.ST;

-import org.eclipse.swt.custom.StyleRange;

-import org.eclipse.swt.custom.StyledText;

-import org.eclipse.swt.events.FocusEvent;

-import org.eclipse.swt.events.FocusListener;

-import org.eclipse.swt.events.KeyEvent;

-import org.eclipse.swt.events.KeyListener;

-import org.eclipse.swt.events.MouseEvent;

-import org.eclipse.swt.events.MouseListener;

-import org.eclipse.swt.events.MouseMoveListener;

-import org.eclipse.swt.events.PaintEvent;

-import org.eclipse.swt.events.PaintListener;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.graphics.Cursor;

-import org.eclipse.swt.graphics.GC;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.graphics.RGB;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-

-import org.eclipse.jface.action.Action;

-import org.eclipse.jface.action.GroupMarker;

-import org.eclipse.jface.action.IAction;

-import org.eclipse.jface.action.IMenuManager;

-import org.eclipse.jface.action.IStatusLineManager;

-import org.eclipse.jface.action.Separator;

-import org.eclipse.jface.preference.IPreferenceStore;

-import org.eclipse.jface.preference.PreferenceConverter;

-import org.eclipse.jface.util.IPropertyChangeListener;

-import org.eclipse.jface.util.PropertyChangeEvent;

-import org.eclipse.jface.viewers.IPostSelectionProvider;

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.ISelectionChangedListener;

-import org.eclipse.jface.viewers.ISelectionProvider;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.SelectionChangedEvent;

-import org.eclipse.jface.viewers.StructuredSelection;

-

-import org.eclipse.jface.text.BadLocationException;

-import org.eclipse.jface.text.DefaultInformationControl;

-import org.eclipse.jface.text.DocumentEvent;

-import org.eclipse.jface.text.IDocument;

-import org.eclipse.jface.text.IDocumentListener;

-import org.eclipse.jface.text.IInformationControl;

-import org.eclipse.jface.text.IInformationControlCreator;

-import org.eclipse.jface.text.IRegion;

-import org.eclipse.jface.text.ITextHover;

-import org.eclipse.jface.text.ITextInputListener;

-import org.eclipse.jface.text.ITextSelection;

-import org.eclipse.jface.text.ITextViewer;

-import org.eclipse.jface.text.ITextViewerExtension2;

-import org.eclipse.jface.text.ITextViewerExtension3;

-import org.eclipse.jface.text.ITextViewerExtension4;

-import org.eclipse.jface.text.ITypedRegion;

-import org.eclipse.jface.text.Position;

-import org.eclipse.jface.text.Region;

-import org.eclipse.jface.text.TextSelection;

-import org.eclipse.jface.text.TextUtilities;

-import org.eclipse.jface.text.information.IInformationProvider;

-import org.eclipse.jface.text.information.IInformationProviderExtension2;

-import org.eclipse.jface.text.information.InformationPresenter;

-import org.eclipse.jface.text.source.Annotation;

-import org.eclipse.jface.text.source.IAnnotationAccess;

-import org.eclipse.jface.text.source.IAnnotationModel;

-import org.eclipse.jface.text.source.IOverviewRuler;

-import org.eclipse.jface.text.source.ISourceViewer;

-import org.eclipse.jface.text.source.IVerticalRuler;

-import org.eclipse.jface.text.source.LineChangeHover;

-import org.eclipse.jface.text.source.SourceViewerConfiguration;

-

-import org.eclipse.ui.editors.text.DefaultEncodingSupport;

-import org.eclipse.ui.editors.text.IEncodingSupport;

-

-import org.eclipse.ui.IEditorActionBarContributor;

-import org.eclipse.ui.IEditorInput;

-import org.eclipse.ui.IPageLayout;

-import org.eclipse.ui.IPartService;

-import org.eclipse.ui.IViewPart;

-import org.eclipse.ui.IWorkbenchPage;

-import org.eclipse.ui.IWorkbenchPart;

-import org.eclipse.ui.IWorkbenchWindow;

-import org.eclipse.ui.actions.ActionContext;

-import org.eclipse.ui.actions.ActionGroup;

-import org.eclipse.ui.help.WorkbenchHelp;

-import org.eclipse.ui.part.EditorActionBarContributor;

-import org.eclipse.ui.part.IShowInTargetList;

-import org.eclipse.ui.texteditor.AddTaskAction;

-import org.eclipse.ui.texteditor.AnnotationPreference;

-import org.eclipse.ui.texteditor.DefaultAnnotation;

-import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;

-import org.eclipse.ui.texteditor.DefaultRangeIndicator;

-import org.eclipse.ui.texteditor.ExtendedTextEditor;

-import org.eclipse.ui.texteditor.IAbstractTextEditorHelpContextIds;

-import org.eclipse.ui.texteditor.IDocumentProvider;

-import org.eclipse.ui.texteditor.IEditorStatusLine;

-import org.eclipse.ui.texteditor.ITextEditorActionConstants;

-import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;

-import org.eclipse.ui.texteditor.MarkerAnnotation;

-import org.eclipse.ui.texteditor.MarkerAnnotationPreferences;

-import org.eclipse.ui.texteditor.ResourceAction;

-import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;

-import org.eclipse.ui.texteditor.TextEditorAction;

-import org.eclipse.ui.texteditor.TextNavigationAction;

-import org.eclipse.ui.texteditor.TextOperationAction;

-import org.eclipse.ui.views.contentoutline.ContentOutline;

-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;

-

-import org.eclipse.search.ui.SearchUI;

-

-import org.eclipse.wst.jsdt.core.IClassFile;

-import org.eclipse.wst.jsdt.core.ICodeAssist;

-import org.eclipse.wst.jsdt.core.ICompilationUnit;

-import org.eclipse.wst.jsdt.core.IImportContainer;

-import org.eclipse.wst.jsdt.core.IImportDeclaration;

-import org.eclipse.wst.jsdt.core.IJavaElement;

-import org.eclipse.wst.jsdt.core.IMember;

-import org.eclipse.wst.jsdt.core.IPackageDeclaration;

-import org.eclipse.wst.jsdt.core.ISourceRange;

-import org.eclipse.wst.jsdt.core.ISourceReference;

-import org.eclipse.wst.jsdt.core.JavaCore;

-import org.eclipse.wst.jsdt.core.JavaModelException;

-import org.eclipse.wst.jsdt.core.dom.ASTNode;

-

-import org.eclipse.wst.jsdt.ui.IContextMenuConstants;

-import org.eclipse.wst.jsdt.ui.JavaUI;

-import org.eclipse.wst.jsdt.ui.PreferenceConstants;

-import org.eclipse.wst.jsdt.ui.actions.IJavaEditorActionDefinitionIds;

-import org.eclipse.wst.jsdt.ui.actions.JavaSearchActionGroup;

-import org.eclipse.wst.jsdt.ui.actions.OpenEditorActionGroup;

-import org.eclipse.wst.jsdt.ui.actions.OpenViewActionGroup;

-import org.eclipse.wst.jsdt.ui.actions.ShowActionGroup;

-import org.eclipse.wst.jsdt.ui.text.JavaSourceViewerConfiguration;

-import org.eclipse.wst.jsdt.ui.text.JavaTextTools;

-

-import org.eclipse.wst.jsdt.internal.ui.IJavaHelpContextIds;

-import org.eclipse.wst.jsdt.internal.ui.JavaPlugin;

-import org.eclipse.wst.jsdt.internal.ui.actions.CompositeActionGroup;

-import org.eclipse.wst.jsdt.internal.ui.actions.SelectionConverter;

-import org.eclipse.wst.jsdt.internal.ui.javaeditor.selectionactions.GoToNextPreviousMemberAction;

-import org.eclipse.wst.jsdt.internal.ui.javaeditor.selectionactions.SelectionHistory;

-import org.eclipse.wst.jsdt.internal.ui.javaeditor.selectionactions.StructureSelectEnclosingAction;

-import org.eclipse.wst.jsdt.internal.ui.javaeditor.selectionactions.StructureSelectHistoryAction;

-import org.eclipse.wst.jsdt.internal.ui.javaeditor.selectionactions.StructureSelectNextAction;

-import org.eclipse.wst.jsdt.internal.ui.javaeditor.selectionactions.StructureSelectPreviousAction;

-import org.eclipse.wst.jsdt.internal.ui.javaeditor.selectionactions.StructureSelectionAction;

-import org.eclipse.wst.jsdt.internal.ui.search.FindOccurrencesEngine;

-import org.eclipse.wst.jsdt.internal.ui.text.HTMLTextPresenter;

-import org.eclipse.wst.jsdt.internal.ui.text.IJavaPartitions;

-import org.eclipse.wst.jsdt.internal.ui.text.JavaChangeHover;

-import org.eclipse.wst.jsdt.internal.ui.text.JavaPairMatcher;

-import org.eclipse.wst.jsdt.internal.ui.util.JavaUIHelp;

-import org.eclipse.wst.jsdt.internal.ui.viewsupport.IViewPartInputProvider;

-

-

-/**

- * Java specific text editor.

- */

-public abstract class JavaEditor extends ExtendedTextEditor implements IViewPartInputProvider {

-	

-	/**

-	 * Internal implementation class for a change listener.

-	 * @since 3.0

-	 */

-	protected abstract class AbstractSelectionChangedListener implements ISelectionChangedListener  {

-

-		/**

-		 * Installs this selection changed listener with the given selection provider. If

-		 * the selection provider is a post selection provider, post selection changed

-		 * events are the preferred choice, otherwise normal selection changed events

-		 * are requested.

-		 * 

-		 * @param selectionProvider

-		 */

-		public void install(ISelectionProvider selectionProvider) {

-			if (selectionProvider == null)

-				return;

-				

-			if (selectionProvider instanceof IPostSelectionProvider)  {

-				IPostSelectionProvider provider= (IPostSelectionProvider) selectionProvider;

-				provider.addPostSelectionChangedListener(this);

-			} else  {

-				selectionProvider.addSelectionChangedListener(this);

-			}

-		}

-

-		/**

-		 * Removes this selection changed listener from the given selection provider.

-		 * 

-		 * @param selectionProvider

-		 */

-		public void uninstall(ISelectionProvider selectionProvider) {

-			if (selectionProvider == null)

-				return;

-			

-			if (selectionProvider instanceof IPostSelectionProvider)  {

-				IPostSelectionProvider provider= (IPostSelectionProvider) selectionProvider;

-				provider.removePostSelectionChangedListener(this);

-			} else  {

-				selectionProvider.removeSelectionChangedListener(this);

-			}			

-		}

-	}

-

-	/**

-	 * Updates the Java outline page selection and this editor's range indicator.

-	 * 

-	 * @since 3.0

-	 */

-	private class EditorSelectionChangedListener extends AbstractSelectionChangedListener {

-		

-		/*

-		 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)

-		 */

-		public void selectionChanged(SelectionChangedEvent event) {

-			selectionChanged();

-		}

-

-		public void selectionChanged() {

-			ISourceReference element= computeHighlightRangeSourceReference();

-			synchronizeOutlinePage(element);

-			setSelection(element, false);

-			updateStatusLine();

-			updateOccurrences();

-		}

-	}

-		

-	/**

-	 * Updates the selection in the editor's widget with the selection of the outline page. 

-	 */

-	class OutlineSelectionChangedListener  extends AbstractSelectionChangedListener {

-		public void selectionChanged(SelectionChangedEvent event) {

-			doSelectionChanged(event);

-		}

-	}

-	

-	/*

-	 * Link mode.  

-	 */

-	class MouseClickListener implements KeyListener, MouseListener, MouseMoveListener,

-		FocusListener, PaintListener, IPropertyChangeListener, IDocumentListener, ITextInputListener {

-

-		/** The session is active. */

-		private boolean fActive;

-

-		/** The currently active style range. */

-		private IRegion fActiveRegion;

-		/** The currently active style range as position. */

-		private Position fRememberedPosition;

-		/** The hand cursor. */

-		private Cursor fCursor;

-		

-		/** The link color. */

-		private Color fColor;

-		/** The key modifier mask. */

-		private int fKeyModifierMask;

-

-		/**

-		 * Style ranges before link mode.

-		 * @since 3.0

-		 */

-		private StyleRange[] fOldStyleRanges;

-		/**

-		 * Link mode style ranges region.

-		 * @since 3.0

-		 */

-		IRegion fOldStyleRangeRegion;

-

-		

-		public void deactivate() {

-			deactivate(false);

-		}

-

-		public void deactivate(boolean redrawAll) {

-			if (!fActive)

-				return;

-

-			repairRepresentation(redrawAll);			

-			fActive= false;

-		}

-

-		public void install() {

-

-			ISourceViewer sourceViewer= getSourceViewer();

-			if (sourceViewer == null)

-				return;

-				

-			StyledText text= sourceViewer.getTextWidget();			

-			if (text == null || text.isDisposed())

-				return;

-				

-			updateColor(sourceViewer);

-

-			sourceViewer.addTextInputListener(this);

-			

-			IDocument document= sourceViewer.getDocument();

-			if (document != null)

-				document.addDocumentListener(this);			

-

-			text.addKeyListener(this);

-			text.addMouseListener(this);

-			text.addMouseMoveListener(this);

-			text.addFocusListener(this);

-			text.addPaintListener(this);

-			

-			updateKeyModifierMask();

-			

-			IPreferenceStore preferenceStore= getPreferenceStore();

-			preferenceStore.addPropertyChangeListener(this);

-		}

-		

-		private void updateKeyModifierMask() {

-			String modifiers= getPreferenceStore().getString(BROWSER_LIKE_LINKS_KEY_MODIFIER);

-			fKeyModifierMask= computeStateMask(modifiers);

-			if (fKeyModifierMask == -1) {

-				// Fallback to stored state mask

-				fKeyModifierMask= getPreferenceStore().getInt(BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK);

-			}

-		}

-

-		private int computeStateMask(String modifiers) {

-			if (modifiers == null)

-				return -1;

-		

-			if (modifiers.length() == 0)

-				return SWT.NONE;

-

-			int stateMask= 0;

-			StringTokenizer modifierTokenizer= new StringTokenizer(modifiers, ",;.:+-* "); //$NON-NLS-1$

-			while (modifierTokenizer.hasMoreTokens()) {

-				int modifier= EditorUtility.findLocalizedModifier(modifierTokenizer.nextToken());

-				if (modifier == 0 || (stateMask & modifier) == modifier)

-					return -1;

-				stateMask= stateMask | modifier;

-			}

-			return stateMask;

-		}

-		

-		public void uninstall() {

-

-			if (fColor != null) {

-				fColor.dispose();

-				fColor= null;

-			}

-			

-			if (fCursor != null) {

-				fCursor.dispose();

-				fCursor= null;

-			}

-			

-			ISourceViewer sourceViewer= getSourceViewer();

-			if (sourceViewer == null)

-				return;

-				

-			sourceViewer.removeTextInputListener(this);

-

-			IDocument document= sourceViewer.getDocument();

-			if (document != null)

-				document.removeDocumentListener(this);

-				

-			IPreferenceStore preferenceStore= getPreferenceStore();

-			if (preferenceStore != null)

-				preferenceStore.removePropertyChangeListener(this);

-			

-			StyledText text= sourceViewer.getTextWidget();

-			if (text == null || text.isDisposed())

-				return;

-				

-			text.removeKeyListener(this);

-			text.removeMouseListener(this);

-			text.removeMouseMoveListener(this);

-			text.removeFocusListener(this);

-			text.removePaintListener(this);

-			}

-				

-		/*

-		 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)

-		 */

-		public void propertyChange(PropertyChangeEvent event) {

-			if (event.getProperty().equals(JavaEditor.LINK_COLOR)) {

-				ISourceViewer viewer= getSourceViewer();

-				if (viewer != null)	

-					updateColor(viewer);

-			} else if (event.getProperty().equals(BROWSER_LIKE_LINKS_KEY_MODIFIER)) {

-				updateKeyModifierMask();

-			}

-		}

-

-		private void updateColor(ISourceViewer viewer) {

-			if (fColor != null)

-				fColor.dispose();

-	

-			StyledText text= viewer.getTextWidget();

-			if (text == null || text.isDisposed())

-				return;

-

-			Display display= text.getDisplay();

-			fColor= createColor(getPreferenceStore(), JavaEditor.LINK_COLOR, display);

-		}

-

-		/**

-		 * Creates a color from the information stored in the given preference store.

-		 * Returns <code>null</code> if there is no such information available.

-		 */

-		private Color createColor(IPreferenceStore store, String key, Display display) {

-		

-			RGB rgb= null;		

-			

-			if (store.contains(key)) {

-				

-				if (store.isDefault(key))

-					rgb= PreferenceConverter.getDefaultColor(store, key);

-				else

-					rgb= PreferenceConverter.getColor(store, key);

-			

-				if (rgb != null)

-					return new Color(display, rgb);

-			}

-			

-			return null;

-		}		

-	

-		private void repairRepresentation() {			

-			repairRepresentation(false);

-		}

-

-		private void repairRepresentation(boolean redrawAll) {			

-

-			if (fActiveRegion == null)

-				return;

-			

-			int offset= fActiveRegion.getOffset();

-			int length= fActiveRegion.getLength();

-			fActiveRegion= null;

-				

-			ISourceViewer viewer= getSourceViewer();

-			if (viewer != null) {

-				resetCursor(viewer);

-				

-				// remove style

-				if (!redrawAll && viewer instanceof ITextViewerExtension2)

-					((ITextViewerExtension2) viewer).invalidateTextPresentation(offset, length);

-				else

-					viewer.invalidateTextPresentation();

-

-				if (viewer instanceof ITextViewerExtension3) {

-					ITextViewerExtension3 extension= (ITextViewerExtension3) viewer;

-					offset= extension.modelOffset2WidgetOffset(offset);

-				} else {

-					offset -= viewer.getVisibleRegion().getOffset();

-				}

-				

-				try {

-					StyledText text= viewer.getTextWidget();

-					// Removes style

-					text.replaceStyleRanges(fOldStyleRangeRegion.getOffset(), fOldStyleRangeRegion.getLength(), fOldStyleRanges);

-//					text.replaceStyleRanges(offset, length, fOldStyleRanges);

-					// Causes underline to disappear

-					text.redrawRange(offset, length, false);

-				} catch (IllegalArgumentException x) {

-					JavaPlugin.log(x);

-				}

-			}

-		}

-

-		// will eventually be replaced by a method provided by jdt.core		

-		private IRegion selectWord(IDocument document, int anchor) {

-		

-			try {		

-				int offset= anchor;

-				char c;

-	

-				while (offset >= 0) {

-					c= document.getChar(offset);

-					if (!Character.isJavaIdentifierPart(c))

-						break;

-					--offset;

-				}

-	

-				int start= offset;

-	

-				offset= anchor;

-				int length= document.getLength();

-	

-				while (offset < length) {

-					c= document.getChar(offset);

-					if (!Character.isJavaIdentifierPart(c))

-						break;

-					++offset;

-				}

-				

-				int end= offset;

-				

-				if (start == end)

-					return new Region(start, 0);

-				else

-					return new Region(start + 1, end - start - 1);

-				

-			} catch (BadLocationException x) {

-				return null;

-			}

-		}

-

-		IRegion getCurrentTextRegion(ISourceViewer viewer) {

-

-			int offset= getCurrentTextOffset(viewer);				

-			if (offset == -1)

-				return null;

-

-			IJavaElement input= SelectionConverter.getInput(JavaEditor.this);

-			if (input == null)

-				return null;

-

-			try {

-				

-				IJavaElement[] elements= null;

-				synchronized (input) {

-					elements= ((ICodeAssist) input).codeSelect(offset, 0);

-				}

-				

-				if (elements == null || elements.length == 0)

-					return null;

-					

-				return selectWord(viewer.getDocument(), offset);

-					

-			} catch (JavaModelException e) {

-				return null;	

-			}

-		}

-

-		private int getCurrentTextOffset(ISourceViewer viewer) {

-

-			try {					

-				StyledText text= viewer.getTextWidget();			

-				if (text == null || text.isDisposed())

-					return -1;

-

-				Display display= text.getDisplay();				

-				Point absolutePosition= display.getCursorLocation();

-				Point relativePosition= text.toControl(absolutePosition);

-				

-				int widgetOffset= text.getOffsetAtLocation(relativePosition);

-				if (viewer instanceof ITextViewerExtension3) {

-					ITextViewerExtension3 extension= (ITextViewerExtension3) viewer;

-					return extension.widgetOffset2ModelOffset(widgetOffset);

-				} else {

-					return widgetOffset + viewer.getVisibleRegion().getOffset();

-				}

-

-			} catch (IllegalArgumentException e) {

-				return -1;

-			}			

-		}

-

-		private void highlightRegion(ISourceViewer viewer, IRegion region) {

-

-			if (region.equals(fActiveRegion))

-				return;

-

-			repairRepresentation();

-			

-			StyledText text= viewer.getTextWidget();

-			if (text == null || text.isDisposed())

-				return;

-

-			// highlight region

-			int offset= 0;

-			int length= 0;

-			

-			if (viewer instanceof ITextViewerExtension3) {

-				ITextViewerExtension3 extension= (ITextViewerExtension3) viewer;

-				IRegion widgetRange= extension.modelRange2WidgetRange(region);

-				if (widgetRange == null)

-					return;

-					

-				offset= widgetRange.getOffset();

-				length= widgetRange.getLength();

-				

-			} else {

-				offset= region.getOffset() - viewer.getVisibleRegion().getOffset();

-				length= region.getLength();

-			}

-			

-			fOldStyleRanges = text.getStyleRanges(offset, length);

-			fOldStyleRangeRegion= new Region(offset, length);

-			

-			applyForgroundStyle(text, offset, length);

-			text.redrawRange(offset, length, false);

-

-			fActiveRegion= region;

-		}

-		

-		private void applyForgroundStyle(StyledText fTextWidget, int offset, int length) {

-			StyleRange[] styleRanges= fTextWidget.getStyleRanges(offset, length);

-			ArrayList newStyleRanges= new ArrayList(styleRanges.length + 10); 

-			int rangeOffset= offset;

-			for (int i= 0, max= styleRanges.length; i < max; i++) {

-				StyleRange sr= styleRanges[i]; 

-				if (rangeOffset < sr.start) {

-					// Unstyled range

-					StyleRange usr= new StyleRange(rangeOffset, sr.start - rangeOffset, fColor, null);

-					newStyleRanges.add(usr);

-				}

-				rangeOffset= sr.start + sr.length;

-				// Important: Must create a new one

-				sr= new StyleRange(sr.start, sr.length, fColor, sr.background, sr.fontStyle);

-				newStyleRanges.add(sr);

-			}

-			int endOffset= offset + length;

-			if (rangeOffset < endOffset) {

-				// Last unstyled range

-				StyleRange usr= new StyleRange(rangeOffset, endOffset - rangeOffset, fColor, null);

-				newStyleRanges.add(usr);

-			}

-			styleRanges= (StyleRange[])newStyleRanges.toArray(new StyleRange[newStyleRanges.size()]);

-			fTextWidget.replaceStyleRanges(offset, length, styleRanges);

-		}

-		

-		private void activateCursor(ISourceViewer viewer) {

-			StyledText text= viewer.getTextWidget();

-			if (text == null || text.isDisposed())

-				return;

-			Display display= text.getDisplay();

-			if (fCursor == null)

-				fCursor= new Cursor(display, SWT.CURSOR_HAND);

-			text.setCursor(fCursor);

-		}

-		

-		private void resetCursor(ISourceViewer viewer) {

-			StyledText text= viewer.getTextWidget();

-			if (text != null && !text.isDisposed())

-				text.setCursor(null);

-						

-			if (fCursor != null) {

-				fCursor.dispose();

-				fCursor= null;

-			}

-		}

-

-		/*

-		 * @see org.eclipse.swt.events.KeyListener#keyPressed(org.eclipse.swt.events.KeyEvent)

-		 */

-		public void keyPressed(KeyEvent event) {

-

-			if (fActive) {

-				deactivate();

-				return;	

-			}

-

-			if (event.keyCode != fKeyModifierMask) {

-				deactivate();

-				return;

-			}

-			

-			fActive= true;

-

-//			removed for #25871			

-//

-//			ISourceViewer viewer= getSourceViewer();

-//			if (viewer == null)

-//				return;

-//			

-//			IRegion region= getCurrentTextRegion(viewer);

-//			if (region == null)

-//				return;

-//			

-//			highlightRegion(viewer, region);

-//			activateCursor(viewer);												

-		}

-

-		/*

-		 * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)

-		 */

-		public void keyReleased(KeyEvent event) {

-			

-			if (!fActive)

-				return;

-

-			deactivate();				

-		}

-

-		/*

-		 * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)

-		 */

-		public void mouseDoubleClick(MouseEvent e) {}

-		/*

-		 * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)

-		 */

-		public void mouseDown(MouseEvent event) {

-			

-			if (!fActive)

-				return;

-				

-			if (event.stateMask != fKeyModifierMask) {

-				deactivate();

-				return;	

-			}

-			

-			if (event.button != 1) {

-				deactivate();

-				return;	

-			}			

-		}

-

-		/*

-		 * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)

-		 */

-		public void mouseUp(MouseEvent e) {

-

-			if (!fActive)

-				return;

-				

-			if (e.button != 1) {

-				deactivate();

-				return;

-			}

-			

-			boolean wasActive= fCursor != null;

-				

-			deactivate();

-

-			if (wasActive) {

-				IAction action= getAction("OpenEditor");  //$NON-NLS-1$

-				if (action != null)

-					action.run();

-			}

-		}

-

-		/*

-		 * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(org.eclipse.swt.events.MouseEvent)

-		 */

-		public void mouseMove(MouseEvent event) {

-			

-			if (event.widget instanceof Control && !((Control) event.widget).isFocusControl()) {

-				deactivate();

-				return;

-			}

-			

-			if (!fActive) {

-				if (event.stateMask != fKeyModifierMask)

-					return;

-				// modifier was already pressed

-				fActive= true;

-			}

-	

-			ISourceViewer viewer= getSourceViewer();

-			if (viewer == null) {

-				deactivate();

-				return;

-			}

-				

-			StyledText text= viewer.getTextWidget();

-			if (text == null || text.isDisposed()) {

-				deactivate();

-				return;

-			}

-				

-			if ((event.stateMask & SWT.BUTTON1) != 0 && text.getSelectionCount() != 0) {

-				deactivate();

-				return;

-			}

-		

-			IRegion region= getCurrentTextRegion(viewer);

-			if (region == null || region.getLength() == 0) {

-				repairRepresentation();

-				return;

-			}

-			

-			highlightRegion(viewer, region);	

-			activateCursor(viewer);												

-		}

-

-		/*

-		 * @see org.eclipse.swt.events.FocusListener#focusGained(org.eclipse.swt.events.FocusEvent)

-		 */

-		public void focusGained(FocusEvent e) {}

-

-		/*

-		 * @see org.eclipse.swt.events.FocusListener#focusLost(org.eclipse.swt.events.FocusEvent)

-		 */

-		public void focusLost(FocusEvent event) {

-			deactivate();

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)

-		 */

-		public void documentAboutToBeChanged(DocumentEvent event) {

-			if (fActive && fActiveRegion != null) {

-				fRememberedPosition= new Position(fActiveRegion.getOffset(), fActiveRegion.getLength());

-				try {

-					event.getDocument().addPosition(fRememberedPosition);

-				} catch (BadLocationException x) {

-					fRememberedPosition= null;

-				}

-			}

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)

-		 */

-		public void documentChanged(DocumentEvent event) {

-			if (fRememberedPosition != null) {

-				if (!fRememberedPosition.isDeleted()) {

-					

-					event.getDocument().removePosition(fRememberedPosition);

-					fActiveRegion= new Region(fRememberedPosition.getOffset(), fRememberedPosition.getLength());

-					fRememberedPosition= null;

-					

-					ISourceViewer viewer= getSourceViewer();

-					if (viewer != null) {

-						StyledText widget= viewer.getTextWidget();

-						if (widget != null && !widget.isDisposed()) {

-							widget.getDisplay().asyncExec(new Runnable() {

-								public void run() {

-									deactivate();

-								}

-							});

-						}

-					}

-					

-				} else {

-					fActiveRegion= null;

-					fRememberedPosition= null;

-					deactivate();

-				}

-			}

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.ITextInputListener#inputDocumentAboutToBeChanged(org.eclipse.jface.text.IDocument, org.eclipse.jface.text.IDocument)

-		 */

-		public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {

-			if (oldInput == null)

-				return;

-			deactivate();

-			oldInput.removeDocumentListener(this);

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.ITextInputListener#inputDocumentChanged(org.eclipse.jface.text.IDocument, org.eclipse.jface.text.IDocument)

-		 */

-		public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {

-			if (newInput == null)

-				return;

-			newInput.addDocumentListener(this);

-		}

-

-		/*

-		 * @see PaintListener#paintControl(PaintEvent)

-		 */

-		public void paintControl(PaintEvent event) {	

-			if (fActiveRegion == null)

-				return;

-	

-			ISourceViewer viewer= getSourceViewer();

-			if (viewer == null)

-				return;

-				

-			StyledText text= viewer.getTextWidget();

-			if (text == null || text.isDisposed())

-				return;

-				

-				

-			int offset= 0;

-			int length= 0;

-

-			if (viewer instanceof ITextViewerExtension3) {

-				

-				ITextViewerExtension3 extension= (ITextViewerExtension3) viewer;

-				IRegion widgetRange= extension.modelRange2WidgetRange(new Region(offset, length));

-				if (widgetRange == null)

-					return;

-					

-				offset= widgetRange.getOffset();

-				length= widgetRange.getLength();

-				

-			} else {

-				

-			IRegion region= viewer.getVisibleRegion();			

-			if (!includes(region, fActiveRegion))

-			 	return;		    

-

-				offset= fActiveRegion.getOffset() - region.getOffset();

-				length= fActiveRegion.getLength();

-			}

-			

-			// support for bidi

-			Point minLocation= getMinimumLocation(text, offset, length);

-			Point maxLocation= getMaximumLocation(text, offset, length);

-	

-			int x1= minLocation.x;

-			int x2= minLocation.x + maxLocation.x - minLocation.x - 1;

-			int y= minLocation.y + text.getLineHeight() - 1;

-			

-			GC gc= event.gc;

-			if (fColor != null && !fColor.isDisposed())

-			gc.setForeground(fColor);

-			gc.drawLine(x1, y, x2, y);

-		}

-

-		private boolean includes(IRegion region, IRegion position) {

-			return

-				position.getOffset() >= region.getOffset() &&

-				position.getOffset() + position.getLength() <= region.getOffset() + region.getLength();

-		}

-

-		private Point getMinimumLocation(StyledText text, int offset, int length) {

-			Point minLocation= new Point(Integer.MAX_VALUE, Integer.MAX_VALUE);

-	

-			for (int i= 0; i <= length; i++) {

-				Point location= text.getLocationAtOffset(offset + i);

-				

-				if (location.x < minLocation.x)

-					minLocation.x= location.x;			

-				if (location.y < minLocation.y)

-					minLocation.y= location.y;			

-			}	

-			

-			return minLocation;

-		}

-	

-		private Point getMaximumLocation(StyledText text, int offset, int length) {

-			Point maxLocation= new Point(Integer.MIN_VALUE, Integer.MIN_VALUE);

-	

-			for (int i= 0; i <= length; i++) {

-				Point location= text.getLocationAtOffset(offset + i);

-				

-				if (location.x > maxLocation.x)

-					maxLocation.x= location.x;			

-				if (location.y > maxLocation.y)

-					maxLocation.y= location.y;			

-			}	

-			

-			return maxLocation;

-		}

-	}

-	

-	/**

-	 * This action dispatches into two behaviours: If there is no current text

-	 * hover, the javadoc is displayed using information presenter. If there is

-	 * a current text hover, it is converted into a information presenter in

-	 * order to make it sticky.

-	 */

-	class InformationDispatchAction extends TextEditorAction {

-		

-		/** The wrapped text operation action. */

-		private final TextOperationAction fTextOperationAction;

-		

-		/**

-		 * Creates a dispatch action.

-		 */

-		public InformationDispatchAction(ResourceBundle resourceBundle, String prefix, final TextOperationAction textOperationAction) {

-			super(resourceBundle, prefix, JavaEditor.this);

-			if (textOperationAction == null)

-				throw new IllegalArgumentException();

-			fTextOperationAction= textOperationAction;

-		}

-		

-		/*

-		 * @see org.eclipse.jface.action.IAction#run()

-		 */

-		public void run() {

-

-			/**

-			 * Information provider used to present the information.

-			 * 

-			 * @since 3.0

-			 */

-			class InformationProvider implements IInformationProvider, IInformationProviderExtension2 {

-

-				private IRegion fHoverRegion;

-				private String fHoverInfo;

-				private IInformationControlCreator fControlCreator;

-				

-				InformationProvider(IRegion hoverRegion, String hoverInfo, IInformationControlCreator controlCreator) {

-					fHoverRegion= hoverRegion;

-					fHoverInfo= hoverInfo;

-					fControlCreator= controlCreator;

-				}

-				/*

-				 * @see org.eclipse.jface.text.information.IInformationProvider#getSubject(org.eclipse.jface.text.ITextViewer, int)

-				 */

-				public IRegion getSubject(ITextViewer textViewer, int invocationOffset) {					

-					return fHoverRegion;

-				}

-				/*

-				 * @see org.eclipse.jface.text.information.IInformationProvider#getInformation(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)

-				 */

-				public String getInformation(ITextViewer textViewer, IRegion subject) {

-					return fHoverInfo;

-				}

-				/*

-				 * @see org.eclipse.jface.text.information.IInformationProviderExtension2#getInformationPresenterControlCreator()

-				 * @since 3.0

-				 */

-				public IInformationControlCreator getInformationPresenterControlCreator() {

-					return fControlCreator;

-				}

-			}

-

-			ISourceViewer sourceViewer= getSourceViewer();

-			if (sourceViewer == null) {	

-				fTextOperationAction.run();

-				return;

-			}

-				

-			if (sourceViewer instanceof ITextViewerExtension4)  {

-				ITextViewerExtension4 extension4= (ITextViewerExtension4) sourceViewer;

-				if (extension4.moveFocusToWidgetToken())

-					return;

-			}

-			

-			if (! (sourceViewer instanceof ITextViewerExtension2)) {

-				fTextOperationAction.run();

-				return;

-			}

-				

-			ITextViewerExtension2 textViewerExtension2= (ITextViewerExtension2) sourceViewer;

-			

-			// does a text hover exist?

-			ITextHover textHover= textViewerExtension2.getCurrentTextHover();

-			if (textHover == null) {

-				fTextOperationAction.run();

-				return;				

-			}

-

-			Point hoverEventLocation= textViewerExtension2.getHoverEventLocation();

-			int offset= computeOffsetAtLocation(sourceViewer, hoverEventLocation.x, hoverEventLocation.y);

-			if (offset == -1) {

-				fTextOperationAction.run();

-				return;				

-			}				

-

-			try {

-				// get the text hover content

-				String contentType= TextUtilities.getContentType(sourceViewer.getDocument(), IJavaPartitions.JAVA_PARTITIONING, offset);

-

-				IRegion hoverRegion= textHover.getHoverRegion(sourceViewer, offset);						

-				if (hoverRegion == null)

-					return;

-				

-				String hoverInfo= textHover.getHoverInfo(sourceViewer, hoverRegion);

-

-				IInformationControlCreator controlCreator= null;				

-				if (textHover instanceof IInformationProviderExtension2)

-					controlCreator= ((IInformationProviderExtension2)textHover).getInformationPresenterControlCreator();

-	

-				IInformationProvider informationProvider= new InformationProvider(hoverRegion, hoverInfo, controlCreator);

-

-				fInformationPresenter.setOffset(offset);	

-				fInformationPresenter.setInformationProvider(informationProvider, contentType);

-				fInformationPresenter.showInformation();

-

-			} catch (BadLocationException e) {				

-			}

-		}

-

-		// modified version from TextViewer

-		private int computeOffsetAtLocation(ITextViewer textViewer, int x, int y) {

-			

-			StyledText styledText= textViewer.getTextWidget();

-			IDocument document= textViewer.getDocument();

-			

-			if (document == null)

-				return -1;		

-

-			try {

-				int widgetLocation= styledText.getOffsetAtLocation(new Point(x, y));

-				if (textViewer instanceof ITextViewerExtension3) {

-					ITextViewerExtension3 extension= (ITextViewerExtension3) textViewer;

-					return extension.widgetOffset2ModelOffset(widgetLocation);

-				} else {

-					IRegion visibleRegion= textViewer.getVisibleRegion();

-					return widgetLocation + visibleRegion.getOffset();

-				}

-			} catch (IllegalArgumentException e) {

-				return -1;	

-			}

-

-		}

-	}

-	

-	static protected class AnnotationAccess extends DefaultMarkerAnnotationAccess {

-		

-		public AnnotationAccess(MarkerAnnotationPreferences markerAnnotationPreferences) {

-			super(markerAnnotationPreferences);

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.source.IAnnotationAccess#getType(org.eclipse.jface.text.source.Annotation)

-		 */

-		public Object getType(Annotation annotation) {

-			if (annotation instanceof IJavaAnnotation) {

-				IJavaAnnotation javaAnnotation= (IJavaAnnotation) annotation;

-				if (javaAnnotation.isRelevant())

-					return javaAnnotation.getAnnotationType();

-				return null;

-			}

-			return super.getType(annotation);

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.source.IAnnotationAccess#isMultiLine(org.eclipse.jface.text.source.Annotation)

-		 */

-		public boolean isMultiLine(Annotation annotation) {

-			return true;

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.source.IAnnotationAccess#isTemporary(org.eclipse.jface.text.source.Annotation)

-		 */

-		public boolean isTemporary(Annotation annotation) {

-			if (annotation instanceof IJavaAnnotation) {

-				IJavaAnnotation javaAnnotation= (IJavaAnnotation) annotation;

-				if (javaAnnotation.isRelevant())

-					return javaAnnotation.isTemporary();

-			}

-			return false;

-		}

-	}

-

-	private class PropertyChangeListener implements org.eclipse.core.runtime.Preferences.IPropertyChangeListener {		

-		/*

-		 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)

-		 */

-		public void propertyChange(org.eclipse.core.runtime.Preferences.PropertyChangeEvent event) {

-			handlePreferencePropertyChanged(event);

-		}

-	}

-	

-	/**

-	 * This action implements smart home.

-	 * 

-	 * Instead of going to the start of a line it does the following:

-	 * 

-	 * - if smart home/end is enabled and the caret is after the line's first non-whitespace then the caret is moved directly before it, taking JavaDoc and multi-line comments into account.

-	 * - if the caret is before the line's first non-whitespace the caret is moved to the beginning of the line

-	 * - if the caret is at the beginning of the line see first case.

-	 * 

-	 * @since 3.0

-	 */

-	protected class SmartLineStartAction extends LineStartAction {

-

-		/**

-		 * Creates a new smart line start action

-		 * 

-		 * @param textWidget the styled text widget

-		 * @param doSelect a boolean flag which tells if the text up to the beginning of the line should be selected

-		 */

-		public SmartLineStartAction(final StyledText textWidget, final boolean doSelect) {

-			super(textWidget, doSelect);

-		}

-

-		/*

-		 * @see org.eclipse.ui.texteditor.AbstractTextEditor.LineStartAction#getLineStartPosition(java.lang.String, int, java.lang.String)

-		 */

-		protected int getLineStartPosition(final IDocument document, final String line, final int length, final int offset) {

-

-			String type= IDocument.DEFAULT_CONTENT_TYPE;

-			try {

-				type= TextUtilities.getPartition(document, IJavaPartitions.JAVA_PARTITIONING, offset).getType();

-			} catch (BadLocationException exception) {

-				// Should not happen

-			}

-			

-			int index= super.getLineStartPosition(document, line, length, offset);

-			if (type.equals(IJavaPartitions.JAVA_DOC) || type.equals(IJavaPartitions.JAVA_MULTI_LINE_COMMENT)) {

-				if (index < length - 1 && line.charAt(index) == '*' && line.charAt(index + 1) != '/') {

-					do {

-						++index;

-					} while (index < length && Character.isWhitespace(line.charAt(index)));

-				}

-			} else {

-				if (index < length - 1 && line.charAt(index) == '/' && line.charAt(++index) == '/') {

-					do {

-						++index;

-					} while (index < length && Character.isWhitespace(line.charAt(index)));

-				}

-			}

-			return index;

-		}

-	}

-

-	/**

-	 * Text navigation action to navigate to the next sub-word.

-	 * 

-	 * @since 3.0

-	 */

-	protected abstract class NextSubWordAction extends TextNavigationAction {

-

-		/** Collator to determine the sub-word boundaries */

-		private final RuleBasedCollator fCollator= (RuleBasedCollator)Collator.getInstance();

-

-		/**

-		 * Creates a new next sub-word action.

-		 * 

-		 * @param code Action code for the default operation. Must be an action code from @see org.eclipse.swt.custom.ST.

-		 */

-		protected NextSubWordAction(int code) {

-			super(getSourceViewer().getTextWidget(), code);

-			

-			// Only compare upper-/lower case

-			fCollator.setStrength(Collator.TERTIARY);

-		}

-

-		/*

-		 * @see org.eclipse.jface.action.IAction#run()

-		 */

-		public void run() {

-			try {

-

-				final ISourceViewer viewer= getSourceViewer();

-				final IDocument document= viewer.getDocument();

-	

-				int position= widgetOffset2ModelOffset(viewer, viewer.getTextWidget().getCaretOffset());

-			

-				// Check whether we are in a java code partititon and the preference is enabled

-				final IPreferenceStore store= getPreferenceStore();

-				final ITypedRegion region= TextUtilities.getPartition(document, IJavaPartitions.JAVA_PARTITIONING, position);

-				if (!store.getBoolean(PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION)) {

-					super.run();

-					return;				

-				}

-

-				// Check whether right hand character of caret is valid identifier start

-				if (Character.isJavaIdentifierStart(document.getChar(position))) {

-

-					int offset= 0;

-					int order= CollationElementIterator.NULLORDER;

-					short previous= Short.MAX_VALUE;

-					short next= Short.MAX_VALUE;

-

-					// Acquire collator for partition around caret

-					final String buffer= document.get(position, region.getOffset() + region.getLength() - position);

-					final CollationElementIterator iterator= fCollator.getCollationElementIterator(buffer);

-

-					// Iterate to first upper-case character

-					do {

-						// Check whether we reached end of word

-						offset= iterator.getOffset();

-						if (!Character.isJavaIdentifierPart(document.getChar(position + offset)))

-							throw new BadLocationException();

-

-						// Test next characters

-						order= iterator.next();

-						next= CollationElementIterator.tertiaryOrder(order);

-						if (next <= previous)

-							previous= next;

-						else

-							break;

-

-					} while (order != CollationElementIterator.NULLORDER);

-

-					// Check for leading underscores				

-					position += offset;

-					if (Character.getType(document.getChar(position - 1)) != Character.CONNECTOR_PUNCTUATION) {

-						setCaretPosition(position);

-						getTextWidget().showSelection();

-						fireSelectionChanged();

-						return;

-					}

-				}

-			} catch (BadLocationException exception) {

-				// Use default behavior

-			}

-			super.run();

-		}

-

-		/**

-		 * Sets the caret position to the sub-word boundary given with <code>position</code>.

-		 * 

-		 * @param position Position where the action should move the caret

-		 */

-		protected abstract void setCaretPosition(int position);

-	}

-

-	/**

-	 * Text navigation action to navigate to the next sub-word.

-	 * 

-	 * @since 3.0

-	 */

-	protected class NavigateNextSubWordAction extends NextSubWordAction {

-

-		/**

-		 * Creates a new navigate next sub-word action.

-		 */

-		public NavigateNextSubWordAction() {

-			super(ST.WORD_NEXT);

-		}

-

-		/*

-		 * @see org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.NextSubWordAction#setCaretPosition(int)

-		 */

-		protected void setCaretPosition(final int position) {

-			getTextWidget().setCaretOffset(modelOffset2WidgetOffset(getSourceViewer(), position));

-		}

-	}

-

-	/**

-	 * Text operation action to delete the next sub-word.

-	 * 

-	 * @since 3.0

-	 */

-	protected class DeleteNextSubWordAction extends NextSubWordAction {

-

-		/**

-		 * Creates a new delete next sub-word action.

-		 */

-		public DeleteNextSubWordAction() {

-			super(ST.DELETE_WORD_NEXT);

-		}

-

-		/*

-		 * @see org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.NextSubWordAction#setCaretPosition(int)

-		 */

-		protected void setCaretPosition(final int position) {

-			final ISourceViewer viewer= getSourceViewer();

-			final int caret= widgetOffset2ModelOffset(viewer, viewer.getTextWidget().getCaretOffset());

-

-			try {

-				viewer.getDocument().replace(caret, position - caret, ""); //$NON-NLS-1$

-			} catch (BadLocationException exception) {

-				// Should not happen

-			}

-		}

-	}

-

-	/**

-	 * Text operation action to select the next sub-word.

-	 * 

-	 * @since 3.0

-	 */

-	protected class SelectNextSubWordAction extends NextSubWordAction {

-

-		/**

-		 * Creates a new select next sub-word action.

-		 */

-		public SelectNextSubWordAction() {

-			super(ST.SELECT_WORD_NEXT);

-		}

-

-		/*

-		 * @see org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.NextSubWordAction#setCaretPosition(int)

-		 */

-		protected void setCaretPosition(final int position) {

-			final ISourceViewer viewer= getSourceViewer();

-			

-			final StyledText text= viewer.getTextWidget();

-			if (text != null && !text.isDisposed()) {

-				

-				final Point selection= text.getSelection();

-				final int caret= text.getCaretOffset();

-				final int offset= modelOffset2WidgetOffset(viewer, position);

-				

-				if (caret == selection.x)

-					text.setSelectionRange(selection.y, offset - selection.y);

-				else

-					text.setSelectionRange(selection.x, offset - selection.x);

-			}

-		}

-	}

-

-	/**

-	 * Text navigation action to navigate to the previous sub-word.

-	 * 

-	 * @since 3.0

-	 */

-	protected abstract class PreviousSubWordAction extends TextNavigationAction {

-

-		/** Collator to determine the sub-word boundaries */

-		private final RuleBasedCollator fCollator= (RuleBasedCollator)Collator.getInstance();

-

-		/**

-		 * Creates a new previous sub-word action.

-		 * 

-		 * @param code Action code for the default operation. Must be an action code from @see org.eclipse.swt.custom.ST.

-		 */

-		protected PreviousSubWordAction(final int code) {

-			super(getSourceViewer().getTextWidget(), code);

-			

-			// Only compare upper-/lower case

-			fCollator.setStrength(Collator.TERTIARY);

-		}

-

-		/*

-		 * @see org.eclipse.jface.action.IAction#run()

-		 */

-		public void run() {

-			try {

-

-				final ISourceViewer viewer= getSourceViewer();

-				final IDocument document= viewer.getDocument();

-

-				int position= widgetOffset2ModelOffset(viewer, viewer.getTextWidget().getCaretOffset()) - 1;

-			

-				// Check whether we are in a java code partititon and the preference is enabled

-				final IPreferenceStore store= getPreferenceStore();

-				if (!store.getBoolean(PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION)) {

-					super.run();

-					return;				

-				}

-

-				// Ignore trailing white spaces

-				char character= document.getChar(position);

-				while (position > 0 && Character.isWhitespace(character)) {

-					--position;

-					character= document.getChar(position);

-				}

-

-				// Check whether left hand character of caret is valid identifier part

-				if (Character.isJavaIdentifierPart(character)) {

-

-					int offset= 0;

-					int order= CollationElementIterator.NULLORDER;

-					short previous= Short.MAX_VALUE;

-					short next= Short.MAX_VALUE;

-

-					// Acquire collator for partition around caret

-					final ITypedRegion region= TextUtilities.getPartition(document, IJavaPartitions.JAVA_PARTITIONING, position);

-					final String buffer= document.get(region.getOffset(), position - region.getOffset() + 1);

-					final CollationElementIterator iterator= fCollator.getCollationElementIterator(buffer);

-

-					// Iterate to first upper-case character

-					iterator.setOffset(buffer.length() - 1);

-					do {

-

-						// Check whether we reached begin of word or single upper-case start

-						offset= iterator.getOffset();

-						character= document.getChar(region.getOffset() + offset);

-						if (!Character.isJavaIdentifierPart(character))

-							throw new BadLocationException();

-						else if (Character.isUpperCase(character)) {

-							++offset;

-							break;

-						}

-

-						// Test next characters

-						order= iterator.previous();

-						next= CollationElementIterator.tertiaryOrder(order);

-						if (next <= previous)

-							previous= next;

-						else

-							break;

-

-					} while (order != CollationElementIterator.NULLORDER);

-

-					// Check left character for multiple upper-case characters

-					position= position - buffer.length() + offset - 1;

-					character= document.getChar(position);

-

-					while (position >= 0 && Character.isUpperCase(character))

-						character= document.getChar(--position);

-

-					setCaretPosition(position + 1);

-					getTextWidget().showSelection();

-					fireSelectionChanged();

-					return;

-				}

-			} catch (BadLocationException exception) {

-				// Use default behavior

-			}

-			super.run();

-		}

-

-		/**

-		 * Sets the caret position to the sub-word boundary given with <code>position</code>.

-		 * 

-		 * @param position Position where the action should move the caret

-		 */

-		protected abstract void setCaretPosition(int position);

-	}

-

-	/**

-	 * Text navigation action to navigate to the previous sub-word.

-	 * 

-	 * @since 3.0

-	 */

-	protected class NavigatePreviousSubWordAction extends PreviousSubWordAction {

-

-		/**

-		 * Creates a new navigate previous sub-word action.

-		 */

-		public NavigatePreviousSubWordAction() {

-			super(ST.WORD_PREVIOUS);

-		}

-

-		/*

-		 * @see org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.PreviousSubWordAction#setCaretPosition(int)

-		 */

-		protected void setCaretPosition(final int position) {

-			getTextWidget().setCaretOffset(modelOffset2WidgetOffset(getSourceViewer(), position));

-		}

-	}

-

-	/**

-	 * Text operation action to delete the previous sub-word.

-	 * 

-	 * @since 3.0

-	 */

-	protected class DeletePreviousSubWordAction extends PreviousSubWordAction {

-

-		/**

-		 * Creates a new delete previous sub-word action.

-		 */

-		public DeletePreviousSubWordAction() {

-			super(ST.DELETE_WORD_PREVIOUS);

-		}

-

-		/*

-		 * @see org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.PreviousSubWordAction#setCaretPosition(int)

-		 */

-		protected void setCaretPosition(final int position) {

-			final ISourceViewer viewer= getSourceViewer();

-			final int caret= widgetOffset2ModelOffset(viewer, viewer.getTextWidget().getCaretOffset());

-

-			try {

-				viewer.getDocument().replace(position, caret - position, ""); //$NON-NLS-1$

-			} catch (BadLocationException exception) {

-				// Should not happen

-			}

-		}

-	}

-

-	/**

-	 * Text operation action to select the previous sub-word.

-	 * 

-	 * @since 3.0

-	 */

-	protected class SelectPreviousSubWordAction extends PreviousSubWordAction {

-

-		/**

-		 * Creates a new select previous sub-word action.

-		 */

-		public SelectPreviousSubWordAction() {

-			super(ST.SELECT_WORD_PREVIOUS);

-		}

-

-		/*

-		 * @see org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.PreviousSubWordAction#setCaretPosition(int)

-		 */

-		protected void setCaretPosition(final int position) {

-			final ISourceViewer viewer= getSourceViewer();

-			

-			final StyledText text= viewer.getTextWidget();

-			if (text != null && !text.isDisposed()) {

-				

-				final Point selection= text.getSelection();

-				final int caret= text.getCaretOffset();

-				final int offset= modelOffset2WidgetOffset(viewer, position);

-				

-				if (caret == selection.x)

-					text.setSelectionRange(selection.y, offset - selection.y);

-				else

-					text.setSelectionRange(selection.x, offset - selection.x);		

-			}

-		}

-	}

-

-	/**

-	 * Quick format action to format the enclosing java element.

-	 * <p>

-	 * The quick format action works as follows:

-	 * <ul>

-	 * <li>If there is no selection and the caret is positioned on a Java element,

-	 * only this element is formatted. If the element has some accompanying comment,

-	 * then the comment is formatted as well.</li>

-	 * <li>If the selection spans one or more partitions of the document, then all

-	 * partitions covered by the selection are entirely formatted.</li>

-	 * <p>

-	 * Partitions at the end of the selection are not completed, except for comments.

-	 * 

-	 * @since 3.0

-	 */

-	protected class QuickFormatAction extends Action {

-

-		/*

-		 * @see org.eclipse.jface.action.IAction#run()

-		 */

-		public void run() {

-

-			final JavaSourceViewer viewer= (JavaSourceViewer) getSourceViewer();

-			if (viewer.isEditable()) {

-

-				final Point selection= viewer.rememberSelection();

-				try {

-					viewer.setRedraw(false);

-

-					final String type= TextUtilities.getContentType(viewer.getDocument(), IJavaPartitions.JAVA_PARTITIONING, selection.x);

-					if (type.equals(IDocument.DEFAULT_CONTENT_TYPE) && selection.y == 0) {

-

-						try {

-							final IJavaElement element= getElementAt(selection.x, true);

-							if (element != null && element.exists()) {

-

-								final int kind= element.getElementType();

-								if (kind == IJavaElement.TYPE || kind == IJavaElement.METHOD || kind == IJavaElement.INITIALIZER) {

-

-									final ISourceReference reference= (ISourceReference)element;

-									final ISourceRange range= reference.getSourceRange();

-

-									if (range != null) {

-										viewer.setSelectedRange(range.getOffset(), range.getLength());

-										viewer.doOperation(ISourceViewer.FORMAT);

-									}

-								}

-							}

-						} catch (JavaModelException exception) {

-							// Should not happen

-						}

-					} else {

-						viewer.setSelectedRange(selection.x, 1);

-						viewer.doOperation(ISourceViewer.FORMAT);

-					}

-				} catch (BadLocationException exception) {

-					// Can not happen

-				} finally {

-

-					viewer.setRedraw(true);

-					viewer.restoreSelection();

-				}

-			}

-		}

-	}

-

-	/** Preference key for the link color */

-	protected final static String LINK_COLOR= PreferenceConstants.EDITOR_LINK_COLOR;

-	/** Preference key for matching brackets */

-	protected final static String MATCHING_BRACKETS=  PreferenceConstants.EDITOR_MATCHING_BRACKETS;

-	/** Preference key for matching brackets color */

-	protected final static String MATCHING_BRACKETS_COLOR=  PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR;

-	/** Preference key for compiler task tags */

-	private final static String COMPILER_TASK_TAGS= JavaCore.COMPILER_TASK_TAGS;

-	/** Preference key for browser like links */

-	private final static String BROWSER_LIKE_LINKS= PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS;

-	/** Preference key for key modifier of browser like links */

-	private final static String BROWSER_LIKE_LINKS_KEY_MODIFIER= PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER;

-	/**

-	 * Preference key for key modifier mask of browser like links.

-	 * The value is only used if the value of <code>EDITOR_BROWSER_LIKE_LINKS</code>

-	 * cannot be resolved to valid SWT modifier bits.

-	 * 

-	 * @since 2.1.1

-	 */

-	private final static String BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK= PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK;

-	

-	protected final static char[] BRACKETS= { '{', '}', '(', ')', '[', ']' };

-

-	/** The outline page */

-	protected JavaOutlinePage fOutlinePage;

-	/** Outliner context menu Id */

-	protected String fOutlinerContextMenuId;

-	/**

-	 * The editor selection changed listener.

-	 * 

-	 * @since 3.0

-	 */

-	private EditorSelectionChangedListener fEditorSelectionChangedListener;

-	/** The selection changed listener */

-	protected AbstractSelectionChangedListener fOutlineSelectionChangedListener= new OutlineSelectionChangedListener();

-	/** The editor's bracket matcher */

-	protected JavaPairMatcher fBracketMatcher= new JavaPairMatcher(BRACKETS);

-	/** This editor's encoding support */

-	private DefaultEncodingSupport fEncodingSupport;

-	/** The mouse listener */

-	private MouseClickListener fMouseListener;

-	/** The information presenter. */

-	private InformationPresenter fInformationPresenter;

-	/** History for structure select action */

-	private SelectionHistory fSelectionHistory;

-	/** The preference property change listener for java core. */

-	private org.eclipse.core.runtime.Preferences.IPropertyChangeListener fPropertyChangeListener= new PropertyChangeListener();

-	/**

-	 * Indicates whether this editor is about to update any annotation views.

-	 * @since 3.0

-	 */

-	private boolean fIsUpdatingAnnotationViews= false;

-	/**

-	 * The marker that served as last target for a goto marker request.

-	 * @since 3.0

-	 */

-	private IMarker fLastMarkerTarget= null;

-	protected CompositeActionGroup fActionGroups;

-	private CompositeActionGroup fContextMenuGroup;

-	/**

-	 * Holds the current occurrence annotations.

-	 * @since 3.0

-	 */

-	private ArrayList fOccurrenceAnnotations= new ArrayList();

-	/**

-	 * Counts the number of background computation requests.

-	 * @since 3.0

-	 */

-	private volatile int fComputeCount;

-	private boolean fMarkOccurrenceAnnotations;

-

-		

-	/**

-	 * Returns the most narrow java element including the given offset.

-	 * 

-	 * @param offset the offset inside of the requested element

-	 * @return the most narrow java element

-	 */

-	abstract protected IJavaElement getElementAt(int offset);

-	

-	/**

-	 * Returns the java element of this editor's input corresponding to the given IJavaElement

-	 */

-	abstract protected IJavaElement getCorrespondingElement(IJavaElement element);

-	

-	/**

-	 * Sets the input of the editor's outline page.

-	 */

-	abstract protected void setOutlinePageInput(JavaOutlinePage page, IEditorInput input);

-	

-	

-	/**

-	 * Default constructor.

-	 */

-	public JavaEditor() {

-		super();

-		JavaTextTools textTools= JavaPlugin.getDefault().getJavaTextTools();

-		setSourceViewerConfiguration(new JavaSourceViewerConfiguration(textTools, this, IJavaPartitions.JAVA_PARTITIONING));

-		setRangeIndicator(new DefaultRangeIndicator());

-		IPreferenceStore store= JavaPlugin.getDefault().getPreferenceStore();

-		setPreferenceStore(store);

-		setKeyBindingScopes(new String[] { "org.eclipse.wst.jsdt.ui.javaEditorScope" });  //$NON-NLS-1$

-		fMarkOccurrenceAnnotations= store.getBoolean(PreferenceConstants.EDITOR_MARK_OCCURRENCES);

-	}

-	

-	/*

-	 * @see AbstractTextEditor#createSourceViewer(Composite, IVerticalRuler, int)

-	 */

-	protected final ISourceViewer createSourceViewer(Composite parent, IVerticalRuler verticalRuler, int styles) {

-		

-		ISourceViewer viewer= createJavaSourceViewer(parent, verticalRuler, getOverviewRuler(), isOverviewRulerVisible(), styles);

-		

-		StyledText text= viewer.getTextWidget();

-		text.addBidiSegmentListener(new  BidiSegmentListener() {

-			public void lineGetSegments(BidiSegmentEvent event) {

-				event.segments= getBidiLineSegments(event.lineOffset, event.lineText);

-			}

-		});

-		

-		JavaUIHelp.setHelp(this, text, IJavaHelpContextIds.JAVA_EDITOR);

-

-		// ensure source viewer decoration support has been created and configured

-		getSourceViewerDecorationSupport(viewer);				

-		

-		return viewer;

-	}

-	

-	/*

-	 * @see org.eclipse.ui.texteditor.ExtendedTextEditor#createAnnotationAccess()

-	 */

-	protected IAnnotationAccess createAnnotationAccess() {

-		return new AnnotationAccess(new MarkerAnnotationPreferences());

-	}

-	

-	public final ISourceViewer getViewer() {

-		return getSourceViewer();

-	}

-	

-	/*

-	 * @see AbstractTextEditor#createSourceViewer(Composite, IVerticalRuler, int)

-	 */

-	protected ISourceViewer createJavaSourceViewer(Composite parent, IVerticalRuler verticalRuler, IOverviewRuler overviewRuler, boolean isOverviewRulerVisible, int styles) {

-		return new JavaSourceViewer(parent, verticalRuler, getOverviewRuler(), isOverviewRulerVisible(), styles);

-	}

-	

-	/*

-	 * @see AbstractTextEditor#affectsTextPresentation(PropertyChangeEvent)

-	 */

-	protected boolean affectsTextPresentation(PropertyChangeEvent event) {

-		JavaTextTools textTools= JavaPlugin.getDefault().getJavaTextTools();

-		return textTools.affectsBehavior(event);

-	}

-		

-	/**

-	 * Sets the outliner's context menu ID.

-	 */

-	protected void setOutlinerContextMenuId(String menuId) {

-		fOutlinerContextMenuId= menuId;

-	}

-			

-	/**

-	 *  Returns the standard action group of this editor.

-	 */

-	protected ActionGroup getActionGroup() {

-		return fActionGroups;

-	} 

-	

-	/*

-	 * @see AbstractTextEditor#editorContextMenuAboutToShow

-	 */

-	public void editorContextMenuAboutToShow(IMenuManager menu) {

-			

-		super.editorContextMenuAboutToShow(menu);

-		menu.appendToGroup(ITextEditorActionConstants.GROUP_UNDO, new Separator(IContextMenuConstants.GROUP_OPEN));	

-		menu.insertAfter(IContextMenuConstants.GROUP_OPEN, new GroupMarker(IContextMenuConstants.GROUP_SHOW));	

-		

-		ActionContext context= new ActionContext(getSelectionProvider().getSelection());

-		fContextMenuGroup.setContext(context);

-		fContextMenuGroup.fillContextMenu(menu);

-		fContextMenuGroup.setContext(null);

-	}			

-	

-	/**

-	 * Creates the outline page used with this editor.

-	 */

-	protected JavaOutlinePage createOutlinePage() {

-		JavaOutlinePage page= new JavaOutlinePage(fOutlinerContextMenuId, this);

-		fOutlineSelectionChangedListener.install(page);

-		setOutlinePageInput(page, getEditorInput());

-		return page;

-	}

-	

-	/**

-	 * Informs the editor that its outliner has been closed.

-	 */

-	public void outlinePageClosed() {

-		if (fOutlinePage != null) {

-			fOutlineSelectionChangedListener.uninstall(fOutlinePage);

-			fOutlinePage= null;

-			resetHighlightRange();

-		}

-	}

-

-	/**

-	 * Synchronizes the outliner selection with the given element

-	 * position in the editor.

-	 * 

-	 * @param element the java element to select

-	 */

-	protected void synchronizeOutlinePage(ISourceReference element) {

-		synchronizeOutlinePage(element, true);

-	}

-	

-	/**

-	 * Synchronizes the outliner selection with the given element

-	 * position in the editor.

-	 * 

-	 * @param element the java element to select

-	 * @param checkIfOutlinePageActive <code>true</code> if check for active outline page needs to be done

-	 */

-	protected void synchronizeOutlinePage(ISourceReference element, boolean checkIfOutlinePageActive) {

-		if (fOutlinePage != null && element != null && !(checkIfOutlinePageActive && isJavaOutlinePageActive())) {

-			fOutlineSelectionChangedListener.uninstall(fOutlinePage);

-			fOutlinePage.select(element);

-			fOutlineSelectionChangedListener.install(fOutlinePage);

-		}

-	}

-		

-	/**

-	 * Synchronizes the outliner selection with the actual cursor

-	 * position in the editor.

-	 */

-	public void synchronizeOutlinePageSelection() {

-		synchronizeOutlinePage(computeHighlightRangeSourceReference());

-	}

-	

-	

-	/*

-	 * Get the desktop's StatusLineManager

-	 */

-	protected IStatusLineManager getStatusLineManager() {

-		IEditorActionBarContributor contributor= getEditorSite().getActionBarContributor();

-		if (contributor instanceof EditorActionBarContributor) {

-			return ((EditorActionBarContributor) contributor).getActionBars().getStatusLineManager();

-		}

-		return null;

-	}	

-	

-	/*

-	 * @see AbstractTextEditor#getAdapter(Class)

-	 */

-	public Object getAdapter(Class required) {

-		

-		if (IContentOutlinePage.class.equals(required)) {

-			if (fOutlinePage == null)

-				fOutlinePage= createOutlinePage();

-			return fOutlinePage;

-		}

-		

-		if (IEncodingSupport.class.equals(required))

-			return fEncodingSupport;

-

-		if (required == IShowInTargetList.class) {

-			return new IShowInTargetList() {

-				public String[] getShowInTargetIds() {

-					return new String[] { JavaUI.ID_PACKAGES, IPageLayout.ID_OUTLINE, IPageLayout.ID_RES_NAV };

-				}

-

-			};

-		}

-			

-		return super.getAdapter(required);

-	}

-	

-	protected void setSelection(ISourceReference reference, boolean moveCursor) {

-		

-		ISelection selection= getSelectionProvider().getSelection();

-		if (selection instanceof TextSelection) {

-			TextSelection textSelection= (TextSelection) selection;

-			// PR 39995: [navigation] Forward history cleared after going back in navigation history:

-			// mark only in navigation history if the cursor is being moved (which it isn't if

-			// this is called from a PostSelectionEvent that should only update the magnet)

-			if (moveCursor && (textSelection.getOffset() != 0 || textSelection.getLength() != 0))

-				markInNavigationHistory();

-		}

-		

-		if (reference != null) {

-			

-			StyledText  textWidget= null;

-			

-			ISourceViewer sourceViewer= getSourceViewer();

-			if (sourceViewer != null)

-				textWidget= sourceViewer.getTextWidget();

-			

-			if (textWidget == null)

-				return;

-				

-			try {

-				

-				ISourceRange range= reference.getSourceRange();

-				if (range == null)

-					return;

-				

-				int offset= range.getOffset();

-				int length= range.getLength();

-				

-				if (offset < 0 || length < 0)

-					return;

-									

-				setHighlightRange(offset, length, moveCursor);

-

-				if (!moveCursor)

-					return;

-											

-				offset= -1;

-				length= -1;

-				

-				if (reference instanceof IMember) {

-					range= ((IMember) reference).getNameRange();

-					if (range != null) {

-						offset= range.getOffset();

-						length= range.getLength();

-					}

-				} else if (reference instanceof IImportDeclaration) {

-					String name= ((IImportDeclaration) reference).getElementName();

-					if (name != null && name.length() > 0) {

-						String content= reference.getSource();

-						if (content != null) {

-							offset= range.getOffset() + content.indexOf(name);

-							length= name.length();

-						}

-					}

-				} else if (reference instanceof IPackageDeclaration) {

-					String name= ((IPackageDeclaration) reference).getElementName();

-					if (name != null && name.length() > 0) {

-						String content= reference.getSource();

-						if (content != null) {

-							offset= range.getOffset() + content.indexOf(name);

-							length= name.length();

-						}

-					}

-				}

-				

-				if (offset > -1 && length > 0) {

-					

-					try  {

-						textWidget.setRedraw(false);

-						sourceViewer.revealRange(offset, length);

-						sourceViewer.setSelectedRange(offset, length);

-					} finally {

-						textWidget.setRedraw(true);

-					}

-					

-					markInNavigationHistory();

-				}

-				

-			} catch (JavaModelException x) {

-			} catch (IllegalArgumentException x) {

-			}

-						

-		} else if (moveCursor) {

-			resetHighlightRange();

-			markInNavigationHistory();

-		}

-	}

-		

-	public void setSelection(IJavaElement element) {

-		

-		if (element == null || element instanceof ICompilationUnit || element instanceof IClassFile) {

-			/*

-			 * If the element is an ICompilationUnit this unit is either the input

-			 * of this editor or not being displayed. In both cases, nothing should

-			 * happened. (http://dev.eclipse.org/bugs/show_bug.cgi?id=5128)

-			 */

-			return;

-		}

-		

-		IJavaElement corresponding= getCorrespondingElement(element);

-		if (corresponding instanceof ISourceReference) {

-			ISourceReference reference= (ISourceReference) corresponding;

-			// set hightlight range

-			setSelection(reference, true);

-			// set outliner selection

-			if (fOutlinePage != null) {

-				fOutlineSelectionChangedListener.uninstall(fOutlinePage);

-				fOutlinePage.select(reference);

-				fOutlineSelectionChangedListener.install(fOutlinePage);

-			}

-		}

-	}

-	

-	protected void doSelectionChanged(SelectionChangedEvent event) {

-				

-		ISourceReference reference= null;

-		

-		ISelection selection= event.getSelection();

-		Iterator iter= ((IStructuredSelection) selection).iterator();

-		while (iter.hasNext()) {

-			Object o= iter.next();

-			if (o instanceof ISourceReference) {

-				reference= (ISourceReference) o;

-				break;

-			}

-		}

-		if (!isActivePart() && JavaPlugin.getActivePage() != null)

-			JavaPlugin.getActivePage().bringToTop(this);

-			

-		setSelection(reference, !isActivePart());

-	}

-	

-	/*

-	 * @see AbstractTextEditor#adjustHighlightRange(int, int)

-	 */

-	protected void adjustHighlightRange(int offset, int length) {

-		

-		try {

-			

-			IJavaElement element= getElementAt(offset);

-			while (element instanceof ISourceReference) {

-				ISourceRange range= ((ISourceReference) element).getSourceRange();

-				if (offset < range.getOffset() + range.getLength() && range.getOffset() < offset + length) {

-					setHighlightRange(range.getOffset(), range.getLength(), true);

-					if (fOutlinePage != null) {

-						fOutlineSelectionChangedListener.uninstall(fOutlinePage);

-						fOutlinePage.select((ISourceReference) element);

-						fOutlineSelectionChangedListener.install(fOutlinePage);

-					}

-					return;

-				}

-				element= element.getParent();

-			}

-			

-		} catch (JavaModelException x) {

-			JavaPlugin.log(x.getStatus());

-		}

-		

-		resetHighlightRange();

-	}

-			

-	protected boolean isActivePart() {

-		IWorkbenchPart part= getActivePart();

-		return part != null && part.equals(this);

-	}

-

-	private boolean isJavaOutlinePageActive() {

-		IWorkbenchPart part= getActivePart();

-		return part instanceof ContentOutline && ((ContentOutline)part).getCurrentPage() == fOutlinePage;

-	}

-

-	private IWorkbenchPart getActivePart() {

-		IWorkbenchWindow window= getSite().getWorkbenchWindow();

-		IPartService service= window.getPartService();

-		IWorkbenchPart part= service.getActivePart();

-		return part;

-	}

-	

-	/*

-	 * @see StatusTextEditor#getStatusHeader(IStatus)

-	 */

-	protected String getStatusHeader(IStatus status) {

-		if (fEncodingSupport != null) {

-			String message= fEncodingSupport.getStatusHeader(status);

-			if (message != null)

-				return message;

-		}

-		return super.getStatusHeader(status);

-	}

-	

-	/*

-	 * @see StatusTextEditor#getStatusBanner(IStatus)

-	 */

-	protected String getStatusBanner(IStatus status) {

-		if (fEncodingSupport != null) {

-			String message= fEncodingSupport.getStatusBanner(status);

-			if (message != null)

-				return message;

-		}

-		return super.getStatusBanner(status);

-	}

-	

-	/*

-	 * @see StatusTextEditor#getStatusMessage(IStatus)

-	 */

-	protected String getStatusMessage(IStatus status) {

-		if (fEncodingSupport != null) {

-			String message= fEncodingSupport.getStatusMessage(status);

-			if (message != null)

-				return message;

-		}

-		return super.getStatusMessage(status);

-	}

-	

-	/*

-	 * @see AbstractTextEditor#doSetInput

-	 */

-	protected void doSetInput(IEditorInput input) throws CoreException {

-		super.doSetInput(input);

-		if (fEncodingSupport != null)

-			fEncodingSupport.reset();

-		setOutlinePageInput(fOutlinePage, input);

-	}

-	

-	/*

-	 * @see IWorkbenchPart#dispose()

-	 */

-	public void dispose() {

-		// cancel possible running computation

-		fMarkOccurrenceAnnotations= false;

-		fComputeCount++;

-		

-		if (isBrowserLikeLinks())

-			disableBrowserLikeLinks();

-			

-		if (fEncodingSupport != null) {

-				fEncodingSupport.dispose();

-				fEncodingSupport= null;

-		}

-		

-		if (fPropertyChangeListener != null) {

-			Preferences preferences= JavaCore.getPlugin().getPluginPreferences();

-			preferences.removePropertyChangeListener(fPropertyChangeListener);

-			fPropertyChangeListener= null;

-		}

-		

-		if (fBracketMatcher != null) {

-			fBracketMatcher.dispose();

-			fBracketMatcher= null;

-		}

-		

-		if (fSelectionHistory != null) {

-			fSelectionHistory.dispose();

-			fSelectionHistory= null;

-		}

-		

-		if (fEditorSelectionChangedListener != null)  {

-			fEditorSelectionChangedListener.uninstall(getSelectionProvider());

-			fEditorSelectionChangedListener= null;

-		}

-				

-		super.dispose();

-	}

-	

-	protected void createActions() {

-		super.createActions();

-		

-		ResourceAction resAction= new AddTaskAction(JavaEditorMessages.getResourceBundle(), "AddTask.", this); //$NON-NLS-1$

-		resAction.setHelpContextId(IAbstractTextEditorHelpContextIds.ADD_TASK_ACTION);

-		resAction.setActionDefinitionId(ITextEditorActionDefinitionIds.ADD_TASK);

-		setAction(ITextEditorActionConstants.ADD_TASK, resAction);

-

-		ActionGroup oeg, ovg, jsg, sg;

-		fActionGroups= new CompositeActionGroup(new ActionGroup[] {

-			oeg= new OpenEditorActionGroup(this),

-			sg= new ShowActionGroup(this),

-			ovg= new OpenViewActionGroup(this),

-			jsg= new JavaSearchActionGroup(this)

-		});

-		fContextMenuGroup= new CompositeActionGroup(new ActionGroup[] {oeg, ovg, sg, jsg});

-		

-		resAction= new TextOperationAction(JavaEditorMessages.getResourceBundle(), "ShowJavaDoc.", this, ISourceViewer.INFORMATION, true); //$NON-NLS-1$

-		resAction= new InformationDispatchAction(JavaEditorMessages.getResourceBundle(), "ShowJavaDoc.", (TextOperationAction) resAction); //$NON-NLS-1$

-		resAction.setActionDefinitionId(IJavaEditorActionDefinitionIds.SHOW_JAVADOC);

-		setAction("ShowJavaDoc", resAction); //$NON-NLS-1$

-		WorkbenchHelp.setHelp(resAction, IJavaHelpContextIds.SHOW_JAVADOC_ACTION);

-		

-		Action action= new GotoMatchingBracketAction(this);

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.GOTO_MATCHING_BRACKET);				

-		setAction(GotoMatchingBracketAction.GOTO_MATCHING_BRACKET, action);

-			

-		action= new TextOperationAction(JavaEditorMessages.getResourceBundle(),"ShowOutline.", this, JavaSourceViewer.SHOW_OUTLINE, true); //$NON-NLS-1$

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.SHOW_OUTLINE);

-		setAction(IJavaEditorActionDefinitionIds.SHOW_OUTLINE, action);

-		WorkbenchHelp.setHelp(action, IJavaHelpContextIds.SHOW_OUTLINE_ACTION);

-

-		action= new TextOperationAction(JavaEditorMessages.getResourceBundle(),"OpenStructure.", this, JavaSourceViewer.OPEN_STRUCTURE, true); //$NON-NLS-1$

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_STRUCTURE);

-		setAction(IJavaEditorActionDefinitionIds.OPEN_STRUCTURE, action);

-		WorkbenchHelp.setHelp(action, IJavaHelpContextIds.OPEN_STRUCTURE_ACTION);

-		

-		action= new TextOperationAction(JavaEditorMessages.getResourceBundle(),"OpenHierarchy.", this, JavaSourceViewer.SHOW_HIERARCHY, true); //$NON-NLS-1$

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.OPEN_HIERARCHY);

-		setAction(IJavaEditorActionDefinitionIds.OPEN_HIERARCHY, action);

-		WorkbenchHelp.setHelp(action, IJavaHelpContextIds.OPEN_HIERARCHY_ACTION);

-		

-		fEncodingSupport= new DefaultEncodingSupport();

-		fEncodingSupport.initialize(this);

-		

-		fSelectionHistory= new SelectionHistory(this);

-

-		action= new StructureSelectEnclosingAction(this, fSelectionHistory);

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.SELECT_ENCLOSING);				

-		setAction(StructureSelectionAction.ENCLOSING, action);

-

-		action= new StructureSelectNextAction(this, fSelectionHistory);

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.SELECT_NEXT);

-		setAction(StructureSelectionAction.NEXT, action);

-

-		action= new StructureSelectPreviousAction(this, fSelectionHistory);

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.SELECT_PREVIOUS);

-		setAction(StructureSelectionAction.PREVIOUS, action);

-

-		StructureSelectHistoryAction historyAction= new StructureSelectHistoryAction(this, fSelectionHistory);

-		historyAction.setActionDefinitionId(IJavaEditorActionDefinitionIds.SELECT_LAST);		

-		setAction(StructureSelectionAction.HISTORY, historyAction);

-		fSelectionHistory.setHistoryAction(historyAction);

-				

-		action= GoToNextPreviousMemberAction.newGoToNextMemberAction(this);

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.GOTO_NEXT_MEMBER);				

-		setAction(GoToNextPreviousMemberAction.NEXT_MEMBER, action);

-

-		action= GoToNextPreviousMemberAction.newGoToPreviousMemberAction(this);

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.GOTO_PREVIOUS_MEMBER);				

-		setAction(GoToNextPreviousMemberAction.PREVIOUS_MEMBER, action);

-		

-		action= new QuickFormatAction();

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.QUICK_FORMAT);

-		setAction(IJavaEditorActionDefinitionIds.QUICK_FORMAT, action);

-

-		action= new RemoveOccurrenceAnnotations(this);

-		action.setActionDefinitionId(IJavaEditorActionDefinitionIds.REMOVE_OCCURRENCE_ANNOTATIONS);

-		setAction("RemoveOccurrenceAnnotations", action); //$NON-NLS-1$

-	}

-	

-	public void updatedTitleImage(Image image) {

-		setTitleImage(image);

-	}

-	

-	/*

-	 * @see AbstractTextEditor#handlePreferenceStoreChanged(PropertyChangeEvent)

-	 */

-	protected void handlePreferenceStoreChanged(PropertyChangeEvent event) {

-		

-		try {			

-

-			ISourceViewer sourceViewer= getSourceViewer();

-			if (sourceViewer == null)

-				return;

-				

-			String property= event.getProperty();	

-			

-			if (PreferenceConstants.EDITOR_TAB_WIDTH.equals(property)) {

-				Object value= event.getNewValue();

-				if (value instanceof Integer) {

-					sourceViewer.getTextWidget().setTabs(((Integer) value).intValue());

-				} else if (value instanceof String) {

-					sourceViewer.getTextWidget().setTabs(Integer.parseInt((String) value));

-				}

-				return;

-			}

-			

-			if (isJavaEditorHoverProperty(property))

-				updateHoverBehavior();

-			

-			if (BROWSER_LIKE_LINKS.equals(property)) {

-				if (isBrowserLikeLinks())

-					enableBrowserLikeLinks();

-				else

-					disableBrowserLikeLinks();

-				return;

-			}

-			

-			if (PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE.equals(property)) {

-				if ((event.getNewValue() instanceof Boolean) && ((Boolean)event.getNewValue()).booleanValue()) {

-					fEditorSelectionChangedListener= new EditorSelectionChangedListener();

-					fEditorSelectionChangedListener.install(getSelectionProvider());

-					fEditorSelectionChangedListener.selectionChanged();

-				} else {

-					fEditorSelectionChangedListener.uninstall(getSelectionProvider());

-					fEditorSelectionChangedListener= null;

-				}

-				return;

-			}

-			

-			if (PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE.equals(property)) {

-				if (event.getNewValue() instanceof Boolean) {

-					Boolean disable= (Boolean) event.getNewValue();

-					configureInsertMode(OVERWRITE, !disable.booleanValue());

-				}

-			}

-			

-			if (PreferenceConstants.EDITOR_MARK_OCCURRENCES.equals(property)) {

-				if (event.getNewValue() instanceof Boolean) {

-					fMarkOccurrenceAnnotations= ((Boolean)event.getNewValue()).booleanValue();

-					if (!fMarkOccurrenceAnnotations) {

-						fComputeCount++;

-						removeOccurrenceAnnotations();

-					}

-				}

-			}

-			

-		} finally {

-			super.handlePreferenceStoreChanged(event);

-		}

-	}

-	

-	/**

-	 * Initializes the given viewer's colors.

-	 * 

-	 * @param viewer the viewer to be initialized

-	 * @since 3.0

-	 */

-	protected void initializeViewerColors(ISourceViewer viewer) {

-		// is handled by JavaSourceViewer

-	}

-

-	private boolean isJavaEditorHoverProperty(String property) {

-		return	PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIERS.equals(property);

-	}

-	

-	/**

-	 * Return whether the browser like links should be enabled

-	 * according to the preference store settings.

-	 * @return <code>true</code> if the browser like links should be enabled

-	 */

-	private boolean isBrowserLikeLinks() {

-		IPreferenceStore store= getPreferenceStore();

-		return store.getBoolean(BROWSER_LIKE_LINKS);

-	}

-	

-	/**

-	 * Enables browser like links.

-	 */

-	private void enableBrowserLikeLinks() {

-		if (fMouseListener == null) {

-			fMouseListener= new MouseClickListener();

-			fMouseListener.install();

-		}

-	}

-	

-	/**

-	 * Disables browser like links.

-	 */

-	private void disableBrowserLikeLinks() {

-		if (fMouseListener != null) {

-			fMouseListener.uninstall();

-			fMouseListener= null;

-		}

-	}

-	

-	/**

-	 * Handles a property change event describing a change

-	 * of the java core's preferences and updates the preference

-	 * related editor properties.

-	 * 

-	 * @param event the property change event

-	 */

-	protected void handlePreferencePropertyChanged(org.eclipse.core.runtime.Preferences.PropertyChangeEvent event) {

-		if (COMPILER_TASK_TAGS.equals(event.getProperty())) {

-			ISourceViewer sourceViewer= getSourceViewer();

-			if (sourceViewer != null && affectsTextPresentation(new PropertyChangeEvent(event.getSource(), event.getProperty(), event.getOldValue(), event.getNewValue())))

-				sourceViewer.invalidateTextPresentation();

-		}

-	}

-

-	/**

-	 * Returns a segmentation of the line of the given viewer's input document appropriate for

-	 * bidi rendering. The default implementation returns only the string literals of a java code

-	 * line as segments.

-	 * 

-	 * @param viewer the text viewer

-	 * @param lineOffset the offset of the line

-	 * @return the line's bidi segmentation

-	 * @throws BadLocationException in case lineOffset is not valid in document

-	 */

-	public static int[] getBidiLineSegments(ITextViewer viewer, int lineOffset) throws BadLocationException {

-			

-		IDocument document= viewer.getDocument();

-		if (document == null)

-			return null;

-			

-		IRegion line= document.getLineInformationOfOffset(lineOffset);

-		ITypedRegion[] linePartitioning= TextUtilities.computePartitioning(document, IJavaPartitions.JAVA_PARTITIONING, lineOffset, line.getLength());

-		

-		List segmentation= new ArrayList();

-		for (int i= 0; i < linePartitioning.length; i++) {

-			if (IJavaPartitions.JAVA_STRING.equals(linePartitioning[i].getType()))

-				segmentation.add(linePartitioning[i]);

-		}

-		

-		

-		if (segmentation.size() == 0) 

-			return null;

-			

-		int size= segmentation.size();

-		int[] segments= new int[size * 2 + 1];

-		

-		int j= 0;

-		for (int i= 0; i < size; i++) {

-			ITypedRegion segment= (ITypedRegion) segmentation.get(i);

-			

-			if (i == 0)

-				segments[j++]= 0;

-				

-			int offset= segment.getOffset() - lineOffset;

-			if (offset > segments[j - 1])

-				segments[j++]= offset;

-				

-			if (offset + segment.getLength() >= line.getLength())

-				break;

-				

-			segments[j++]= offset + segment.getLength();

-		}

-		

-		if (j < segments.length) {

-			int[] result= new int[j];

-			System.arraycopy(segments, 0, result, 0, j);

-			segments= result;

-		}

-		

-		return segments;

-	}

-		

-	/**

-	 * Returns a segmentation of the given line appropriate for bidi rendering. The default

-	 * implementation returns only the string literals of a java code line as segments.

-	 * 

-	 * @param lineOffset the offset of the line

-	 * @param line the content of the line

-	 * @return the line's bidi segmentation

-	 */

-	protected int[] getBidiLineSegments(int widgetLineOffset, String line) {

-		if (line != null && line.length() > 0) {

-			ISourceViewer sourceViewer= getSourceViewer();

-			if (sourceViewer != null) {

-				int lineOffset;

-				if (sourceViewer instanceof ITextViewerExtension3) {

-					ITextViewerExtension3 extension= (ITextViewerExtension3) sourceViewer;

-					lineOffset= extension.widgetOffset2ModelOffset(widgetLineOffset);

-				} else {

-					IRegion visible= sourceViewer.getVisibleRegion();

-					lineOffset= visible.getOffset() + widgetLineOffset;

-				}

-				try {

-					return getBidiLineSegments(sourceViewer, lineOffset);

-				} catch (BadLocationException x) {

-					// don't segment line in this case

-				}

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#updatePropertyDependentActions()

-	 */

-	protected void updatePropertyDependentActions() {

-		super.updatePropertyDependentActions();

-		if (fEncodingSupport != null)

-			fEncodingSupport.reset();

-	}

-

-	/*

-	 * Update the hovering behavior depending on the preferences.

-	 */

-	private void updateHoverBehavior() {

-		SourceViewerConfiguration configuration= getSourceViewerConfiguration();

-		String[] types= configuration.getConfiguredContentTypes(getSourceViewer());

-

-		for (int i= 0; i < types.length; i++) {

-			

-			String t= types[i];

-

-			ISourceViewer sourceViewer= getSourceViewer();

-			if (sourceViewer instanceof ITextViewerExtension2) {

-				// Remove existing hovers			

-				((ITextViewerExtension2)sourceViewer).removeTextHovers(t);

-				

-				int[] stateMasks= configuration.getConfiguredTextHoverStateMasks(getSourceViewer(), t);

-

-				if (stateMasks != null) {

-					for (int j= 0; j < stateMasks.length; j++)	{

-						int stateMask= stateMasks[j];

-						ITextHover textHover= configuration.getTextHover(sourceViewer, t, stateMask);

-						((ITextViewerExtension2)sourceViewer).setTextHover(textHover, t, stateMask);

-					}

-				} else {

-					ITextHover textHover= configuration.getTextHover(sourceViewer, t);

-					((ITextViewerExtension2)sourceViewer).setTextHover(textHover, t, ITextViewerExtension2.DEFAULT_HOVER_STATE_MASK);

-				}

-			} else

-				sourceViewer.setTextHover(configuration.getTextHover(sourceViewer, t), t);

-		}

-	}

-	

-	/*

-	 * @see org.eclipse.wst.jsdt.internal.ui.viewsupport.IViewPartInputProvider#getViewPartInput()

-	 */

-	public Object getViewPartInput() {

-		return getEditorInput().getAdapter(IJavaElement.class);

-	}

-	

-	/*

-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#doSetSelection(ISelection)

-	 */

-	protected void doSetSelection(ISelection selection) {

-		super.doSetSelection(selection);

-		synchronizeOutlinePageSelection();

-	}

-

-	/*

-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)

-	 */

-	public void createPartControl(Composite parent) {

-		super.createPartControl(parent);

-		

-		Preferences preferences= JavaCore.getPlugin().getPluginPreferences();

-		preferences.addPropertyChangeListener(fPropertyChangeListener);			

-		

-		IInformationControlCreator informationControlCreator= new IInformationControlCreator() {

-			public IInformationControl createInformationControl(Shell shell) {

-				boolean cutDown= false;

-				int style= cutDown ? SWT.NONE : (SWT.V_SCROLL | SWT.H_SCROLL);

-				return new DefaultInformationControl(shell, SWT.RESIZE, style, new HTMLTextPresenter(cutDown));

-			}

-		};

-

-		fInformationPresenter= new InformationPresenter(informationControlCreator);

-		fInformationPresenter.setSizeConstraints(60, 10, true, true);		

-		fInformationPresenter.install(getSourceViewer());

-		

-		if (PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE)) {

-			fEditorSelectionChangedListener= new EditorSelectionChangedListener();

-			fEditorSelectionChangedListener.install(getSelectionProvider());

-		}

-		

-		if (isBrowserLikeLinks())

-			enableBrowserLikeLinks();

-

-		if (PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE))

-			configureInsertMode(OVERWRITE, false);

-	}

-	

-	protected void configureSourceViewerDecorationSupport(SourceViewerDecorationSupport support) {

-		

-		support.setCharacterPairMatcher(fBracketMatcher);

-		support.setMatchingCharacterPainterPreferenceKeys(MATCHING_BRACKETS, MATCHING_BRACKETS_COLOR);

-		

-		super.configureSourceViewerDecorationSupport(support);

-	}

-	

-	/*

-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#gotoMarker(org.eclipse.core.resources.IMarker)

-	 */

-	public void gotoMarker(IMarker marker) {

-		fLastMarkerTarget= marker;

-		if (!fIsUpdatingAnnotationViews)

-			super.gotoMarker(marker);

-	}

-	

-	/**

-	 * Jumps to the next enabled annotation according to the given direction.

-	 * An annotation type is enabled if it is configured to be in the

-	 * Next/Previous tool bar drop down menu and if it is checked.

-	 * 

-	 * @param forward <code>true</code> if search direction is forward, <code>false</code> if backward

-	 */

-	public void gotoAnnotation(boolean forward) {

-		ITextSelection selection= (ITextSelection) getSelectionProvider().getSelection();

-		Position position= new Position(0, 0);

-		if (false /* delayed - see bug 18316 */) {

-			getNextAnnotation(selection.getOffset(), selection.getLength(), forward, position);

-			selectAndReveal(position.getOffset(), position.getLength());

-		} else /* no delay - see bug 18316 */ {

-			Annotation annotation= getNextAnnotation(selection.getOffset(), selection.getLength(), forward, position);

-			setStatusLineErrorMessage(null);

-			setStatusLineMessage(null);

-			if (annotation != null) {

-				updateAnnotationViews(annotation);

-				selectAndReveal(position.getOffset(), position.getLength());

-				if (annotation instanceof IJavaAnnotation && ((IJavaAnnotation)annotation).isProblem())

-					setStatusLineMessage(((IJavaAnnotation)annotation).getMessage());

-			}

-		}

-	}

-	

-	/**

-	 * Updates the annotation views that show the given annotation.

-	 * 

-	 * @param annotation the annotation

-	 */

-	private void updateAnnotationViews(Annotation annotation) {

-		IMarker marker= null;

-		if (annotation instanceof MarkerAnnotation)

-			marker= ((MarkerAnnotation) annotation).getMarker();

-		else if (annotation instanceof IJavaAnnotation) {

-			Iterator e= ((IJavaAnnotation) annotation).getOverlaidIterator();

-			if (e != null) {

-				while (e.hasNext()) {

-					Object o= e.next();

-					if (o instanceof MarkerAnnotation) {

-						marker= ((MarkerAnnotation) o).getMarker();

-						break;

-					}

-				}

-			}

-		}

-			

-		if (marker != null && !marker.equals(fLastMarkerTarget)) {

-			try {

-				boolean isProblem= marker.isSubtypeOf(IMarker.PROBLEM);

-				IWorkbenchPage page= getSite().getPage();

-				IViewPart view= page.findView(isProblem ? IPageLayout.ID_PROBLEM_VIEW: IPageLayout.ID_TASK_LIST); //$NON-NLS-1$  //$NON-NLS-2$

-				if (view != null) {

-					Method method= view.getClass().getMethod("setSelection", new Class[] { IStructuredSelection.class, boolean.class}); //$NON-NLS-1$

-					method.invoke(view, new Object[] {new StructuredSelection(marker), Boolean.TRUE });

-				}

-			} catch (CoreException x) {

-			} catch (NoSuchMethodException x) {

-			} catch (IllegalAccessException x) {

-			} catch (InvocationTargetException x) {

-			}

-			// ignore exceptions, don't update any of the lists, just set statusline

-		}			

-	}

-	

-	/**

-	 * Finds and marks occurrence annotations.

-	 * 

-	 * @since 3.0

-	 */

-	class OccurrencesFinder implements Runnable, IDocumentListener {

-		

-		private int fCount;

-		private IDocument fDocument;

-		private ITextSelection fSelection;

-		private boolean fCancelled= false;

-		

-		public OccurrencesFinder(int count, IDocument document, ITextSelection selection) {

-			fCount= count;

-			fDocument= document;

-			fSelection= selection;

-			fDocument.addDocumentListener(this);

-		}

-		

-		private boolean isCancelled() {

-			return fCount != fComputeCount || fCancelled;

-		}

-		

-		/*

-		 * @see java.lang.Runnable#run()

-		 */

-		public void run() {

-			

-			try {

-				

-				if (isCancelled())

-					return;

-				

-				// Find occurrences

-				FindOccurrencesEngine engine= FindOccurrencesEngine.create(getInputJavaElement());

-				List matches= new ArrayList();

-				try {

-					matches= engine.findOccurrences(fSelection.getOffset(), fSelection.getLength());

-				} catch (JavaModelException e) {

-					JavaPlugin.log(e);

-					return;

-				}

-

-				if (matches == null || matches.isEmpty())

-					return;

-				

-				if (isCancelled())

-					return;

-				

-				removeOccurrenceAnnotations();

-				

-				if (isCancelled())

-					return;

-				

-				ITextViewer textViewer= getViewer(); 

-				if (textViewer == null)

-					return;

-				

-				IDocument document= textViewer.getDocument();

-				if (document == null)

-					return;

-				

-				IDocumentProvider documentProvider= getDocumentProvider();

-				if (documentProvider == null)

-					return;

-				

-				IAnnotationModel annotationModel= documentProvider.getAnnotationModel(getEditorInput());

-				if (annotationModel == null)

-					return;

-				

-				// Add occurrence annotations

-				ArrayList annotations= new ArrayList();

-				ArrayList positions= new ArrayList();

-				for (Iterator each= matches.iterator(); each.hasNext();) {

-					

-					if (isCancelled())

-						return; 

-					

-					ASTNode node= (ASTNode) each.next();

-					if (node == null)

-						continue;

-					

-					String message;

-					// Create & add annotation

-					try {

-						message= document.get(node.getStartPosition(), node.getLength());

-					} catch (BadLocationException ex) {

-						// Skip this match

-						continue;

-					}

-					annotations.add(new DefaultAnnotation(SearchUI.SEARCH_MARKER, IMarker.SEVERITY_INFO, true, message));

-					positions.add(new Position(node.getStartPosition(), node.getLength()));

-				}

-				

-				if (isCancelled())

-					return;

-				

-				synchronized (annotationModel) {

-					fOccurrenceAnnotations= annotations;

-					for (int i= 0, size= annotations.size(); i < size; i++)

-						annotationModel.addAnnotation((Annotation) annotations.get(i), (Position) positions.get(i));

-				}

-				

-			} finally {

-				fDocument.removeDocumentListener(this);

-			}

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)

-		 */

-		public void documentAboutToBeChanged(DocumentEvent event) {

-			fCancelled= true;

-		}

-

-		/*

-		 * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)

-		 */

-		public void documentChanged(DocumentEvent event) {

-		}

-	}	/**

-	 * Updates the occurrences annotations based

-	 * on the current selection.

-	 *

-	 * @since 3.0

-	 */

-	protected void updateOccurrences() {

-

-		if (!fMarkOccurrenceAnnotations)

-			return;

-		

-		IDocument document= getSourceViewer().getDocument();

-			if (document == null)

-				return;

-				

-		OccurrencesFinder finder= new OccurrencesFinder(++fComputeCount, document, (ITextSelection) getSelectionProvider().getSelection());

-		Thread thread= new Thread(finder, "Occurrences Marker"); //$NON-NLS-1$

-		thread.setDaemon(true);

-		thread.start();

-	}

-	

-	void removeOccurrenceAnnotations() {

-		IDocumentProvider documentProvider= getDocumentProvider();

-		if (documentProvider == null)

-			return;

-		

-		IAnnotationModel annotationModel= documentProvider.getAnnotationModel(getEditorInput());

-		if (annotationModel == null)

-			return;

-

-		synchronized (annotationModel) {

-			for (int i= 0, size= fOccurrenceAnnotations.size(); i < size; i++)

-				annotationModel.removeAnnotation((Annotation)fOccurrenceAnnotations.get(i));

-			fOccurrenceAnnotations.clear();

-		}

-	}

-

-	/**

-	 * Returns the Java element wrapped by this editors input.

-	 * 

-	 * @return the Java element wrapped by this editors input.

-	 * @since 3.0

-	 */

-	abstract protected IJavaElement getInputJavaElement();

-

-	protected void updateStatusLine() {

-		ITextSelection selection= (ITextSelection) getSelectionProvider().getSelection();

-		Annotation annotation= getAnnotation(selection.getOffset(), selection.getLength());

-		setStatusLineErrorMessage(null);

-		setStatusLineMessage(null);

-		if (annotation != null) {

-			try {

-				fIsUpdatingAnnotationViews= true;

-				updateAnnotationViews(annotation);

-			} finally {

-				fIsUpdatingAnnotationViews= false;

-			}

-			if (annotation instanceof IJavaAnnotation && ((IJavaAnnotation)annotation).isProblem())

-				setStatusLineMessage(((IJavaAnnotation)annotation).getMessage());

-		}

-	}

-	

-	/**

-	 * Jumps to the matching bracket.

-	 */

-	public void gotoMatchingBracket() {

-		

-		ISourceViewer sourceViewer= getSourceViewer();

-		IDocument document= sourceViewer.getDocument();

-		if (document == null)

-			return;

-		

-		IRegion selection= getSignedSelection(sourceViewer);

-

-		int selectionLength= Math.abs(selection.getLength());

-		if (selectionLength > 1) {

-			setStatusLineErrorMessage(JavaEditorMessages.getString("GotoMatchingBracket.error.invalidSelection"));	//$NON-NLS-1$		

-			sourceViewer.getTextWidget().getDisplay().beep();

-			return;

-		}

-

-		// #26314

-		int sourceCaretOffset= selection.getOffset() + selection.getLength();

-		if (isSurroundedByBrackets(document, sourceCaretOffset))

-			sourceCaretOffset -= selection.getLength();

-

-		IRegion region= fBracketMatcher.match(document, sourceCaretOffset);

-		if (region == null) {

-			setStatusLineErrorMessage(JavaEditorMessages.getString("GotoMatchingBracket.error.noMatchingBracket"));	//$NON-NLS-1$		

-			sourceViewer.getTextWidget().getDisplay().beep();

-			return;		

-		}

-		

-		int offset= region.getOffset();

-		int length= region.getLength();

-		

-		if (length < 1)

-			return;

-			

-		int anchor= fBracketMatcher.getAnchor();

-		// http://dev.eclipse.org/bugs/show_bug.cgi?id=34195

-		int targetOffset= (JavaPairMatcher.RIGHT == anchor) ? offset + 1: offset + length;

-		

-		boolean visible= false;

-		if (sourceViewer instanceof ITextViewerExtension3) {

-			ITextViewerExtension3 extension= (ITextViewerExtension3) sourceViewer;

-			visible= (extension.modelOffset2WidgetOffset(targetOffset) > -1);

-		} else {

-			IRegion visibleRegion= sourceViewer.getVisibleRegion();

-			// http://dev.eclipse.org/bugs/show_bug.cgi?id=34195

-			visible= (targetOffset >= visibleRegion.getOffset() && targetOffset <= visibleRegion.getOffset() + visibleRegion.getLength());

-		}

-		

-		if (!visible) {

-			setStatusLineErrorMessage(JavaEditorMessages.getString("GotoMatchingBracket.error.bracketOutsideSelectedElement"));	//$NON-NLS-1$		

-			sourceViewer.getTextWidget().getDisplay().beep();

-			return;

-		}

-		

-		if (selection.getLength() < 0)

-			targetOffset -= selection.getLength();

-			

-		sourceViewer.setSelectedRange(targetOffset, selection.getLength());

-		sourceViewer.revealRange(targetOffset, selection.getLength());

-	}

-

-	/**

-	 * Sets the given message as error message to this editor's status line.

-	 * 

-	 * @param msg message to be set

-	 */

-	protected void setStatusLineErrorMessage(String msg) {

-		IEditorStatusLine statusLine= (IEditorStatusLine) getAdapter(IEditorStatusLine.class);

-		if (statusLine != null)

-			statusLine.setMessage(true, msg, null);	

-	}

-

-	/**

-	 * Sets the given message as message to this editor's status line.

-	 * 

-	 * @param msg message to be set

-	 * @since 3.0

-	 */

-	protected void setStatusLineMessage(String msg) {

-		IEditorStatusLine statusLine= (IEditorStatusLine) getAdapter(IEditorStatusLine.class);

-		if (statusLine != null)

-			statusLine.setMessage(false, msg, null);	

-	}

-	

-	private static IRegion getSignedSelection(ITextViewer viewer) {

-

-		StyledText text= viewer.getTextWidget();

-		int caretOffset= text.getCaretOffset();

-		Point selection= text.getSelection();

-		

-		// caret left

-		int offset, length;

-		if (caretOffset == selection.x) {

-			offset= selection.y;

-			length= selection.x - selection.y;			

-			

-		// caret right

-		} else {

-			offset= selection.x;

-			length= selection.y - selection.x;			

-		}

-		

-		return new Region(offset, length);

-	}

-	

-	private static boolean isBracket(char character) {

-		for (int i= 0; i != BRACKETS.length; ++i)

-			if (character == BRACKETS[i])

-				return true;

-		return false;

-	}

-

-	private static boolean isSurroundedByBrackets(IDocument document, int offset) {

-		if (offset == 0 || offset == document.getLength())

-			return false;

-

-		try {

-			return

-				isBracket(document.getChar(offset - 1)) &&

-				isBracket(document.getChar(offset));

-			

-		} catch (BadLocationException e) {

-			return false;	

-		}

-	}

-		

-	/**

-	 * Returns the annotation closest to the given range respecting the given

-	 * direction. If an annotation is found, the annotations current position

-	 * is copied into the provided annotation position.

-	 * 

-	 * @param offset the region offset

-	 * @param length the region length

-	 * @param forward <code>true</code> for forwards, <code>false</code> for backward

-	 * @param annotationPosition the position of the found annotation

-	 * @return the found annotation

-	 */

-	private Annotation getNextAnnotation(int offset, int length, boolean forward, Position annotationPosition) {

-		

-		Annotation nextAnnotation= null;

-		Position nextAnnotationPosition= null;

-		Annotation containingAnnotation= null;

-		Position containingAnnotationPosition= null;

-		boolean currentAnnotation= false;

-		

-		IDocument document= getDocumentProvider().getDocument(getEditorInput());

-		int endOfDocument= document.getLength(); 

-		int distance= 0;

-		

-		IAnnotationAccess access= getAnnotationAccess();

-		

-		IAnnotationModel model= getDocumentProvider().getAnnotationModel(getEditorInput());

-		Iterator e= new JavaAnnotationIterator(model, true, true);

-		while (e.hasNext()) {

-			Annotation a= (Annotation) e.next();

-			Object type;

-			if (a instanceof IJavaAnnotation)

-				type= ((IJavaAnnotation) a).getAnnotationType();

-			else

-				type= access.getType(a);

-			boolean isNavigationTarget= isNavigationTargetType(type);

-			

-			if ((a instanceof IJavaAnnotation) && ((IJavaAnnotation)a).hasOverlay() || !isNavigationTarget)

-				continue;

-				

-			Position p= model.getPosition(a);

-			if (p == null)

-				continue;

-			

-			if (!(p.includes(offset) || (p.getLength() == 0 && offset == p.offset))) {

-				

-				int currentDistance= 0;

-				

-				if (forward) {

-					currentDistance= p.getOffset() - offset;

-					if (currentDistance < 0)

-						currentDistance= endOfDocument - offset + p.getOffset();

-				} else {

-					currentDistance= offset - p.getOffset();

-					if (currentDistance < 0)

-						currentDistance= offset + endOfDocument - p.getOffset();

-				}						

-										

-				if (nextAnnotation == null || currentDistance < distance) {

-					distance= currentDistance;

-					nextAnnotation= a;

-					nextAnnotationPosition= p;

-				}

-			} else {

-				if (containingAnnotationPosition == null || containingAnnotationPosition.length > p.length) {

-					containingAnnotation= a;

-					containingAnnotationPosition= p;

-					if (length == p.length)

-						currentAnnotation= true;

-				}

-			}

-		}

-		if (containingAnnotationPosition != null && (!currentAnnotation || nextAnnotation == null)) {

-			annotationPosition.setOffset(containingAnnotationPosition.getOffset());

-			annotationPosition.setLength(containingAnnotationPosition.getLength());

-			return containingAnnotation;

-		}

-		if (nextAnnotationPosition != null) {

-			annotationPosition.setOffset(nextAnnotationPosition.getOffset());

-			annotationPosition.setLength(nextAnnotationPosition.getLength());

-		}

-		

-		return nextAnnotation;

-	}

-	

-	/**

-	 * Returns the annotation overlapping with the given range or <code>null</code>.

-	 * 

-	 * @param offset the region offset

-	 * @param length the region length

-	 * @return the found annotation or <code>null</code>

-	 * @since 3.0

-	 */

-	private Annotation getAnnotation(int offset, int length) {

-		IAnnotationAccess access= getAnnotationAccess();

-		IAnnotationModel model= getDocumentProvider().getAnnotationModel(getEditorInput());

-		Iterator e= new JavaAnnotationIterator(model, true, true);

-		while (e.hasNext()) {

-			Annotation a= (Annotation) e.next();

-			if (a instanceof IJavaAnnotation) {

-				IJavaAnnotation annotation= (IJavaAnnotation) a;

-				if (annotation.hasOverlay() || !isNavigationTargetType(annotation.getAnnotationType()))

-					continue;

-			} else if (!isNavigationTargetType(access.getType(a)))

-				continue;

-				

-			Position p= model.getPosition(a);

-			if (p != null && p.overlapsWith(offset, length))

-				return a;

-		}

-		

-		return null;

-	}

-	

-	/**

-	 * Returns whether the given annotation type is configured as a target type

-	 * for the "Go to Next/Previous Annotation" actions

-	 * 

-	 * @param type the annotation type

-	 * @return <code>true</code> if this is a target type, <code>false</code>

-	 *            otherwise

-	 * @since 3.0

-	 */

-	private boolean isNavigationTargetType(Object type) {

-		Preferences preferences= Platform.getPlugin("org.eclipse.ui.workbench.texteditor").getPluginPreferences(); //$NON-NLS-1$

-		Iterator i= getAnnotationPreferences().getAnnotationPreferences().iterator();

-		while (i.hasNext()) {

-			AnnotationPreference annotationPref= (AnnotationPreference) i.next();

-			if (annotationPref.getAnnotationType().equals(type)) {

-//				See bug 41689

-//				String key= forward ? annotationPref.getIsGoToNextNavigationTargetKey() : annotationPref.getIsGoToPreviousNavigationTargetKey();

-				String key= annotationPref.getIsGoToNextNavigationTargetKey();

-				if (key != null && preferences.getBoolean(key))

-					return true;

-			}

-		}

-		return false;

-	}

-

-	/**

-	 * Computes and returns the source reference that includes the caret and

-	 * serves as provider for the outline page selection and the editor range

-	 * indication.

-	 * 

-	 * @return the computed source reference

-	 * @since 3.0

-	 */

-	protected ISourceReference computeHighlightRangeSourceReference() {

-		ISourceViewer sourceViewer= getSourceViewer();

-		if (sourceViewer == null)

-			return null;

-			

-		StyledText styledText= sourceViewer.getTextWidget();

-		if (styledText == null)

-			return null;

-		

-		int caret= 0;

-		if (sourceViewer instanceof ITextViewerExtension3) {

-			ITextViewerExtension3 extension= (ITextViewerExtension3)sourceViewer;

-			caret= extension.widgetOffset2ModelOffset(styledText.getCaretOffset());

-		} else {

-			int offset= sourceViewer.getVisibleRegion().getOffset();

-			caret= offset + styledText.getCaretOffset();

-		}

-

-		IJavaElement element= getElementAt(caret, false);

-		

-		if ( !(element instanceof ISourceReference))

-			return null;

-		

-		if (element.getElementType() == IJavaElement.IMPORT_DECLARATION) {

-			

-			IImportDeclaration declaration= (IImportDeclaration) element;

-			IImportContainer container= (IImportContainer) declaration.getParent();

-			ISourceRange srcRange= null;

-			

-			try {

-				srcRange= container.getSourceRange();

-			} catch (JavaModelException e) {

-			}

-			

-			if (srcRange != null && srcRange.getOffset() == caret)

-				return container;

-		}

-		

-		return (ISourceReference) element;

-	}

-

-	/**

-	 * Returns the most narrow java element including the given offset.

-	 * 

-	 * @param offset the offset inside of the requested element

-	 * @param reconcile <code>true</code> if editor input should be reconciled in advance

-	 * @return the most narrow java element

-	 * @since 3.0

-	 */

-	protected IJavaElement getElementAt(int offset, boolean reconcile) {

-		return getElementAt(offset);

-	}

-	

-	/*

-	 * @see org.eclipse.ui.texteditor.ExtendedTextEditor#createChangeHover()

-	 */

-	protected LineChangeHover createChangeHover() {

-		return new JavaChangeHover(IJavaPartitions.JAVA_PARTITIONING);

-	}

-

-	protected boolean isPrefQuickDiffAlwaysOn() {

-		return false; // never show change ruler for the non-editable java editor. Overridden in subclasses like CompilationUnitEditor

-	}

-

-	/*

-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#createNavigationActions()

-	 */

-	protected void createNavigationActions() {

-		super.createNavigationActions();

-

-		final StyledText textWidget= getSourceViewer().getTextWidget();

-

-		IAction action= new SmartLineStartAction(textWidget, false);

-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.LINE_START);

-		setAction(ITextEditorActionDefinitionIds.LINE_START, action);

-

-		action= new SmartLineStartAction(textWidget, true);

-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.SELECT_LINE_START);

-		setAction(ITextEditorActionDefinitionIds.SELECT_LINE_START, action);

-

-		action= new NavigatePreviousSubWordAction();

-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.WORD_PREVIOUS);

-		setAction(ITextEditorActionDefinitionIds.WORD_PREVIOUS, action);

-		textWidget.setKeyBinding(SWT.CTRL | SWT.ARROW_LEFT, SWT.NULL);

-

-		action= new NavigateNextSubWordAction();

-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.WORD_NEXT);

-		setAction(ITextEditorActionDefinitionIds.WORD_NEXT, action);

-		textWidget.setKeyBinding(SWT.CTRL | SWT.ARROW_RIGHT, SWT.NULL);

-							

-		action= new DeletePreviousSubWordAction();

-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.DELETE_PREVIOUS_WORD);

-		setAction(ITextEditorActionDefinitionIds.DELETE_PREVIOUS_WORD, action);

-		textWidget.setKeyBinding(SWT.CTRL | SWT.BS, SWT.NULL);

-

-		action= new DeleteNextSubWordAction();

-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.DELETE_NEXT_WORD);

-		setAction(ITextEditorActionDefinitionIds.DELETE_NEXT_WORD, action);

-		textWidget.setKeyBinding(SWT.CTRL | SWT.DEL, SWT.NULL);

-		

-		action= new SelectPreviousSubWordAction();

-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.SELECT_WORD_PREVIOUS);

-		setAction(ITextEditorActionDefinitionIds.SELECT_WORD_PREVIOUS, action);

-		textWidget.setKeyBinding(SWT.CTRL | SWT.SHIFT | SWT.ARROW_LEFT, SWT.NULL);

-		

-		action= new SelectNextSubWordAction();

-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.SELECT_WORD_NEXT);

-		setAction(ITextEditorActionDefinitionIds.SELECT_WORD_NEXT, action);

-		textWidget.setKeyBinding(SWT.CTRL | SWT.SHIFT | SWT.ARROW_RIGHT, SWT.NULL);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0502/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0502/A.js
deleted file mode 100644
index 0ae7de0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0502/A.js
+++ /dev/null
@@ -1,28 +0,0 @@
-package test0502;

-

-public class A {

-	{

-		int i = 1;

-		if (i == 1) {

-			int j = 1;

-		}

-	}

-

-	void foo() {

-		int i = 2;

-		if (i == 2) {

-			int j = 2;

-		} else {

-			int j = 3;

-		}

-		new Object() {

-		};

-		class B {

-			int field;

-			void bar() {

-			}

-		}

-		new Object() {

-		};

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0503/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0503/A.js
deleted file mode 100644
index 3a6eaba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0503/A.js
+++ /dev/null
@@ -1,27 +0,0 @@
-package test0503;

-

-public class A {

-	public class B {

-		void bar() {

-			class C {

-			}

-			new Object() {

-				class D {

-				}

-			};

-		}

-	}

-	

-	void foo() {

-		class E {

-		}

-		new Object() {

-			class F {

-			}

-		};

-		if (false) {

-			class G {

-			}

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0504/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0504/A.js
deleted file mode 100644
index 10b520f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0504/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0504;

-

-public class A

-{

-   public A()

-   {

-      

-   }

-

-}

-interface B

-{

-   public method(final int parameter);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0505/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0505/A.js
deleted file mode 100644
index 299db32..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0505/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0505;

-

-public class A

-{

-   public A()

-   {

-      

-   }

-

-}

-interface B

-{

-   public method(final int parameter) {     }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0506/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0506/A.js
deleted file mode 100644
index dbf04ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0506/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0506;

-

-public class A {

-	public void foo() {

-		new A();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0507/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0507/A.js
deleted file mode 100644
index f8b8c18..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0507/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0507;

-

-public class A {

-	public void foo() {

-		new B();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0507/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0507/B.js
deleted file mode 100644
index 89416b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0507/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0507;

-

-public class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0508/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0508/A.js
deleted file mode 100644
index 01c48e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0508/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0508;

-

-public class A {

-	A() {

-	}

-	public void foo() {

-		new A();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0509/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0509/A.js
deleted file mode 100644
index 0167e43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0509/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0509;

-

-public class A {

-	public void foo() {

-		new B();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0509/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0509/B.js
deleted file mode 100644
index 92cba9b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0509/B.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0509;

-

-public class B {

-	B() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0510/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0510/A.js
deleted file mode 100644
index 249c3c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0510/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0510;

-

-public class A {

-	public void foo() {

-		new Y();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0511/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0511/A.js
deleted file mode 100644
index 1b78c75..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0511/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0511;

-

-public class A {

-	public void foo() {

-		new Y();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0512/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0512/A.js
deleted file mode 100644
index c525854..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0512/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0512;

-

-public interface A {

-	public A();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0513/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0513/A.js
deleted file mode 100644
index 9697a8a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0513/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0513;

-

-public interface A {

-   void playerJoined(final final Object player);

-   void playerLeft(final Object player);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0514/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0514/A.js
deleted file mode 100644
index 1bb0f12..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0514/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0514;

-

-public class A {

-	public A() {	}

-	{ // <- insert '{' before comment

-	public static void main(String[] args) { }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0515/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0515/A.js
deleted file mode 100644
index 440bd15..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0515/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0515;

-

-public class A {

-   public void method() {

-       if (true) 

-          ;   // <--  this one is correct

-       else if (true)

-          ;  //  <--- this one will visit twice

-       else 

-          ;   // <---  this one didn't visit

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0516/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0516/A.js
deleted file mode 100644
index 981e292..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0516/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0516;

-import java.util.*;

-public class Test {

-	/**

-	 * Javadoc comment

-	 */

-	public static void main(String[] args) {

-		/* method main */

-		System.out.println("Hello" + " world"); // comment

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0517/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0517/A.js
deleted file mode 100644
index b129082..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0517/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0517;

-import java.util.*;

-public class Test {

-	/**

-	 * Javadoc

-	 */

-	public static final /* */ String s = "NULL", s2;// line comment

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0518/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0518/A.js
deleted file mode 100644
index 85cfb60..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0518/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0518;

-import java.util.*;

-public class Test {

-	/**

-	 * Javadoc

-	 */

-	static {

-		/* */

-		System.out.println("Hello" + " world"); // line comment

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0519/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0519/A.js
deleted file mode 100644
index 81bcab2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0519/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0519;

-import java.util.*;

-public class Test {

-	/**

-	 * Javadoc

-	 */

-	public static void main(String[] args) {

-		System.out./**/println("Hello" + " world");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0520/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0520/A.js
deleted file mode 100644
index ae7ada5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0520/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0519;

-import java.util.*;

-public class Test {

-	/**

-	 * Javadoc

-	 */

-	public static void main(String[] args) {

-		System.out.println("Hello" + /* */ " world");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0521/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0521/A.js
deleted file mode 100644
index dda75dd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0521/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0521;

-

-public class A {

-   public void method() {

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0522/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0522/A.js
deleted file mode 100644
index 5cb1abd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0522/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0522;

-

-class A {

-	public void foo() {

-	}

-}

-

-class Test {

-	void test() throws CloneNotSupportedException {

-		A a = new A();

-		a.clone();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0523/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0523/A.js
deleted file mode 100644
index e556b72..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0523/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0523;

-

-class A {

-	public void foo() {

-	}

-}

-

-class Test {

-	void test() throws CloneNotSupportedException {

-		A a = new A();

-		a.clone();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0524/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0524/A.js
deleted file mode 100644
index b0b9119..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0524/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0524;

-

-public class A {

-	void test() throws CloneNotSupportedException {

-		Runnable runnable = new Runnable() {

-			public void run() {

-				System.out.println();

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0525/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0525/A.js
deleted file mode 100644
index 6a3f745..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0525/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0525;

-

-public class A {

-	void test() throws CloneNotSupportedException {

-		Runnable runnable = new Runnable() {

-			public void run() {

-				System.out.println();

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0526/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0526/A.js
deleted file mode 100644
index 6fd01b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0526/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0526;

-

-public class A {

-	public class B {

-		void test() throws CloneNotSupportedException {

-			Runnable runnable = new Runnable() {

-				public void run() {

-					System.out.println();

-				}

-			};

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0527/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0527/A.js
deleted file mode 100644
index fa8c1b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0527/A.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package test0527;

-

-public class A {

-	

-	/**

-	 * 

-	 * 

-	 */

-	public A() {

-		Runnable runnable = new Runnable() {

-			public void run() {

-				System.out.println();

-			}

-		};

-	} // comment

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0528/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0528/A.js
deleted file mode 100644
index afeeadb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0528/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0528;

-

-public class A {

-	public class B {

-		void test() throws CloneNotSupportedException {

-			Runnable runnable = new Runnable() {

-				public void run() {

-					System.out.println();

-				}

-			};

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0529/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0529/A.js
deleted file mode 100644
index c8c1c36..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0529/A.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package test0529;

-

-public class A {

-	/*

-	 * 

-	 * 

-	 */

-	public class B {

-		void test() throws CloneNotSupportedException {

-			Runnable runnable = new Runnable() {

-				public void run() {

-					System.out.println();

-				}

-			};

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0530/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0530/A.js
deleted file mode 100644
index ecc6601..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0530/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0530;

-

-public class A {

-  int field;

-  void foo(int i, int k) {

-     i= k;

-   }

-

-  int goo() {

-     // offset here

-    field= 1;

-    return;

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0531/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0531/A.js
deleted file mode 100644
index b50f9a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0531/A.js
+++ /dev/null
@@ -1,27 +0,0 @@
-package test0531;

-

-public class A {

-  int field = 4;

-  static int i = bar();

-  

-  {

-  	System.out.println();

-  }

-  

-  static {

-  	i = 5;

-  }

-

-  void foo(int j, int k) {

-     j = k;

-   }

-

-  int goo() {

-    field= 1;

-    return;

-   }

-   

-  static int bar() {

-  	return 0;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0532/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0532/A.js
deleted file mode 100644
index 633dbbc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0532/A.js
+++ /dev/null
@@ -1,27 +0,0 @@
-package test0532;

-

-public class A {

-  int field = 4;

-  static int i = bar();

-  

-  {

-  	System.out.println();

-  }

-  

-  static {

-  	i = 5;

-  }

-

-  void foo(int j, int k) {

-     j = k;

-   }

-

-  int goo() {

-    field= 1;

-    return;

-   }

-   

-  static int bar() {

-  	return 0;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0533/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0533/A.js
deleted file mode 100644
index 3db16e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0533/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0533;

-import java.util.*;

-public class Test {

-	public static void main(String[] args) {

-		System.out.println("Hello" + " world")

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0534/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0534/A.js
deleted file mode 100644
index 89ed998..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0534/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0534;

-import java.util.*;

-public class Test {

-	public static final String s = "NULL", s2

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0535/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0535/A.js
deleted file mode 100644
index dbeb57f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0535/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test05;

-import java.util.*;

-public class Test {

-	static {

-		System.out.println("Hello" + " world")

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0536/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0536/A.js
deleted file mode 100644
index dc5dc3f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0536/A.js
+++ /dev/null
@@ -1,505 +0,0 @@
-/*

- * Created on Jan 20, 2004

- *

- * To change the template for this generated file go to

- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments

- */

-package test0536;

-

-import java.util.HashMap;

-import java.util.LinkedList;

-

-import SerSolver.SerBranchNode;

-import SerSolver.SerChipExitNode;

-import SerSolver.SerChipGoalNode;

-import SerSolver.SerColor;

-import SerSolver.SerGoalNode;

-import SerSolver.SerNode;

-

-import utilities.*;

-import utilities.Move;

-import utilities.NodeStatistics;

-

-abstract public class A

-{

-

-	protected static final int STAGESIZE = 15;

-	protected static int globalTargetDistance;

-	protected static Move[] moves;

-	static HashMap map;

-	public static SerNode exitNode;

-	static

-	{

-		globalTargetDistance = 10000;

-		exitNode = null;

-		moves = new Move[100];

-		for (int i = 0; i < 100; i++)

-		{

-			moves[i] = new Move();

-		}

-		map = new HashMap(100000);

-	}

-

-	protected int chips;

-	protected SerColor currentKey;

-	protected int startIndex;

-	protected int moveIndex;

-	protected int targetDistance;

-	protected LinkedList[] dependencies;

-	protected A nextSolver;

-	A(int _startIndex)

-	{

-		dependencies = new LinkedList[5];

-		for (int i = 0; i < 5; i++)

-			dependencies[i] = new LinkedList();

-		startIndex = _startIndex;

-	}

-	/**

-	 * @param moveIndex

-	 * @param moves

-	 * @param chips

-	 * @param dependencies

-	 * @return the best solution for the remainder of the board

-	 */

-	v

-	public Solution subSolve(int _moveIndex, int _chips, LinkedList[] _dependencies)

-	{

-		assert (_moveIndex==startIndex);

-		key.set(_dependencies);

-		Solution solution = (Solution) map.get(key);

-		if (solution == null)

-		{

-			chips = _chips;

-			targetDistance = 10000;

-			moveIndex = _moveIndex;

-			currentKey = moves[startIndex - 1].node.getKey();

-			for (int i = 1; i < 5; i++)

-			{

-				dependencies[i].clear();

-				dependencies[i].addAll(_dependencies[i]);

-			}

-

-			solution = findSolution();

-			Key saveKey = new Key(key);

-			map.put(saveKey, solution);

-

-		}

-		else

-		{

-			solution.hits++;

-		}

-		return solution;

-	}

-

-	/**

-	 * like the method in the main solution finder but it is

-	 * only looking for the best end game

-	 * @param chips

-	 */

-	abstract protected Solution findSolution();

-

-	/**

-	 * @return

-	 */

-	protected boolean pickNode(int index)

-	{

-		LinkedList list = dependencies[currentKey.getValue()];

-		if (list.isEmpty())

-			return false;

-		else

-		{

-			SerNode node = (SerNode) list.get(index);

-			Move lastMove = moves[moveIndex - 1];

-			int distance = NodeStatistics.nodeDistance(lastMove.node, node);

-			int cost = distance + lastMove.distance;

-			if (cost > targetDistance)

-				return false;

-			list.remove(index);

-			chooseNode(node, index, cost);

-			return true;

-		}

-

-	}

-

-	/**

-	 * 

-	 */

-	protected int backoff()

-	{

-		Move move = moves[--moveIndex];

-		if (move.node instanceof SerChipGoalNode)

-		{

-			chips--;

-		}

-		if (move.node instanceof SerBranchNode)

-		{

-			SerNode[] nodes = ((SerBranchNode) move.node).getDependentNodes();

-			removeFromStack(nodes[0]);

-			removeFromStack(nodes[1]);

-		}

-		else

-			removeFromStack(((SerGoalNode) move.node).getDependentNode());

-		currentKey = move.node.getDoor();

-		boolean more = reputStack(move.node, move.indexOnStack);

-		if (!more)

-			return backoff();

-		else

-			return move.indexOnStack + 1;

-	}

-

-	/**

-	 * @param node

-	 */

-	protected void chooseNode(SerNode node, int cameFrom, int distance)

-	{

-		//NOTE assume already own green key 

-		//		if (node instanceof SerGreenKeyGoalNode)

-		//		{

-		//			sawGreen = true;

-		//			drainGreenQueue();

-		//		}

-		if (node instanceof SerBranchNode)

-		{

-			SerBranchNode branch = (SerBranchNode) node;

-			putStack(branch.getDependentNodes()[0]);

-			putStack(branch.getDependentNodes()[1]);

-		}

-		else

-		{

-			putStack(((SerGoalNode) node).getDependentNode());

-			if (node instanceof SerChipGoalNode)

-			{

-				chips++;

-			}

-		}

-

-		currentKey = node.getKey();

-

-		moves[moveIndex].indexOnStack = cameFrom;

-		moves[moveIndex].node = node;

-		moves[moveIndex].distance = distance;

-		moveIndex++;

-	}

-	/**

-	 * @param board

-	 * @param node

-	 */

-	protected void putStack(SerNode node)

-	{

-		/* if the last node on a branch is a goal node it doesn't expose any other nodes

-		 */

-		if (node == null)

-			return;

-		else if (node instanceof SerChipExitNode)

-			exitNode = node;

-		//NOTE assume already own green key 

-		//		else if (!sawGreen && node instanceof SerChipGoalNode)

-		//			getDependencies(SerColor.GREEN_LITERAL).add(node);

-		else

-			dependencies[node.getDoor().getValue()].add(node);

-

-	}

-	/**

-	 * @param node

-	 */

-	protected void removeFromStack(SerNode node)

-	{

-		if (node == null)

-			return;

-		if (node instanceof SerChipExitNode)

-			return;

-

-		LinkedList list = dependencies[node.getDoor().getValue()];

-		if (!list.remove(node))

-			throw new RuntimeException("door not available");

-	}

-	/**

-	 * @param node

-	 * @param i

-	 * @return

-	 */

-	protected boolean reputStack(SerNode node, int i)

-	{

-		LinkedList list = dependencies[node.getDoor().getValue()];

-		list.add(i, node);

-		return list.size() > (i + 1);

-	}

-	protected void dumpMoves()

-	{

-		StringBuffer output = new StringBuffer(3000);

-		SerNode oldNode = moves[0].node;

-		int testDistance = 2;

-		for (int i = 1; i < moveIndex; i++)

-		{

-			SerNode node = moves[i].node;

-			int distance = moves[i].distance;

-			testDistance += NodeStatistics.nodeDistance(oldNode,node);

-			assert(testDistance==distance);

-			output.append(

-				i

-					+ "("

-					+ node.getColumn()

-					+ ","

-					+ node.getRow()

-					+ ") "

-					+ (2 * distance - 1)

-					+ "\n");

-			oldNode = node;

-		}

-		System.out.println(output);

-	

-	}

-}Content-Type: text/plain

-

-/*

- * Created on Jan 20, 2004

- *

- * To change the template for this generated file go to

- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments

- */

-package test0536;

-

-import java.util.HashMap;

-import java.util.LinkedList;

-

-import SerSolver.SerBranchNode;

-import SerSolver.SerChipExitNode;

-import SerSolver.SerChipGoalNode;

-import SerSolver.SerColor;

-import SerSolver.SerGoalNode;

-import SerSolver.SerNode;

-

-import utilities.*;

-import utilities.Move;

-import utilities.NodeStatistics;

-

-abstract public class A

-{

-

-	protected static final int STAGESIZE = 15;

-	protected static int globalTargetDistance;

-	protected static Move[] moves;

-	static HashMap map;

-	public static SerNode exitNode;

-	static

-	{

-		globalTargetDistance = 10000;

-		exitNode = null;

-		moves = new Move[100];

-		for (int i = 0; i < 100; i++)

-		{

-			moves[i] = new Move();

-		}

-		map = new HashMap(100000);

-	}

-

-	protected int chips;

-	protected SerColor currentKey;

-	protected int startIndex;

-	protected int moveIndex;

-	protected int targetDistance;

-	protected LinkedList[] dependencies;

-	protected A nextSolver;

-	A(int _startIndex)

-	{

-		dependencies = new LinkedList[5];

-		for (int i = 0; i < 5; i++)

-			dependencies[i] = new LinkedList();

-		startIndex = _startIndex;

-	}

-	/**

-	 * @param moveIndex

-	 * @param moves

-	 * @param chips

-	 * @param dependencies

-	 * @return the best solution for the remainder of the board

-	 */

-	v

-	public Solution subSolve(int _moveIndex, int _chips, LinkedList[] _dependencies)

-	{

-		assert (_moveIndex==startIndex);

-		key.set(_dependencies);

-		Solution solution = (Solution) map.get(key);

-		if (solution == null)

-		{

-			chips = _chips;

-			targetDistance = 10000;

-			moveIndex = _moveIndex;

-			currentKey = moves[startIndex - 1].node.getKey();

-			for (int i = 1; i < 5; i++)

-			{

-				dependencies[i].clear();

-				dependencies[i].addAll(_dependencies[i]);

-			}

-

-			solution = findSolution();

-			Key saveKey = new Key(key);

-			map.put(saveKey, solution);

-

-		}

-		else

-		{

-			solution.hits++;

-		}

-		return solution;

-	}

-

-	/**

-	 * like the method in the main solution finder but it is

-	 * only looking for the best end game

-	 * @param chips

-	 */

-	abstract protected Solution findSolution();

-

-	/**

-	 * @return

-	 */

-	protected boolean pickNode(int index)

-	{

-		LinkedList list = dependencies[currentKey.getValue()];

-		if (list.isEmpty())

-			return false;

-		else

-		{

-			SerNode node = (SerNode) list.get(index);

-			Move lastMove = moves[moveIndex - 1];

-			int distance = NodeStatistics.nodeDistance(lastMove.node, node);

-			int cost = distance + lastMove.distance;

-			if (cost > targetDistance)

-				return false;

-			list.remove(index);

-			chooseNode(node, index, cost);

-			return true;

-		}

-

-	}

-

-	/**

-	 * 

-	 */

-	protected int backoff()

-	{

-		Move move = moves[--moveIndex];

-		if (move.node instanceof SerChipGoalNode)

-		{

-			chips--;

-		}

-		if (move.node instanceof SerBranchNode)

-		{

-			SerNode[] nodes = ((SerBranchNode) move.node).getDependentNodes();

-			removeFromStack(nodes[0]);

-			removeFromStack(nodes[1]);

-		}

-		else

-			removeFromStack(((SerGoalNode) move.node).getDependentNode());

-		currentKey = move.node.getDoor();

-		boolean more = reputStack(move.node, move.indexOnStack);

-		if (!more)

-			return backoff();

-		else

-			return move.indexOnStack + 1;

-	}

-

-	/**

-	 * @param node

-	 */

-	protected void chooseNode(SerNode node, int cameFrom, int distance)

-	{

-		//NOTE assume already own green key 

-		//		if (node instanceof SerGreenKeyGoalNode)

-		//		{

-		//			sawGreen = true;

-		//			drainGreenQueue();

-		//		}

-		if (node instanceof SerBranchNode)

-		{

-			SerBranchNode branch = (SerBranchNode) node;

-			putStack(branch.getDependentNodes()[0]);

-			putStack(branch.getDependentNodes()[1]);

-		}

-		else

-		{

-			putStack(((SerGoalNode) node).getDependentNode());

-			if (node instanceof SerChipGoalNode)

-			{

-				chips++;

-			}

-		}

-

-		currentKey = node.getKey();

-

-		moves[moveIndex].indexOnStack = cameFrom;

-		moves[moveIndex].node = node;

-		moves[moveIndex].distance = distance;

-		moveIndex++;

-	}

-	/**

-	 * @param board

-	 * @param node

-	 */

-	protected void putStack(SerNode node)

-	{

-		/* if the last node on a branch is a goal node it doesn't expose any other nodes

-		 */

-		if (node == null)

-			return;

-		else if (node instanceof SerChipExitNode)

-			exitNode = node;

-		//NOTE assume already own green key 

-		//		else if (!sawGreen && node instanceof SerChipGoalNode)

-		//			getDependencies(SerColor.GREEN_LITERAL).add(node);

-		else

-			dependencies[node.getDoor().getValue()].add(node);

-

-	}

-	/**

-	 * @param node

-	 */

-	protected void removeFromStack(SerNode node)

-	{

-		if (node == null)

-			return;

-		if (node instanceof SerChipExitNode)

-			return;

-

-		LinkedList list = dependencies[node.getDoor().getValue()];

-		if (!list.remove(node))

-			throw new RuntimeException("door not available");

-	}

-	/**

-	 * @param node

-	 * @param i

-	 * @return

-	 */

-	protected boolean reputStack(SerNode node, int i)

-	{

-		LinkedList list = dependencies[node.getDoor().getValue()];

-		list.add(i, node);

-		return list.size() > (i + 1);

-	}

-	protected void dumpMoves()

-	{

-		StringBuffer output = new StringBuffer(3000);

-		SerNode oldNode = moves[0].node;

-		int testDistance = 2;

-		for (int i = 1; i < moveIndex; i++)

-		{

-			SerNode node = moves[i].node;

-			int distance = moves[i].distance;

-			testDistance += NodeStatistics.nodeDistance(oldNode,node);

-			assert(testDistance==distance);

-			output.append(

-				i

-					+ "("

-					+ node.getColumn()

-					+ ","

-					+ node.getRow()

-					+ ") "

-					+ (2 * distance - 1)

-					+ "\n");

-			oldNode = node;

-		}

-		System.out.println(output);

-	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/A.js
deleted file mode 100644
index bfca453..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0537;

-public class A {

-	Object clons;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/B.js
deleted file mode 100644
index 6af24fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0537;

-public class B {

-	int flals;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/C.js
deleted file mode 100644
index 46d290f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0537/C.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0537;

-public class C {

-	boolean thru;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0538/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0538/A.js
deleted file mode 100644
index a4d5dca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0538/A.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package test0538;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0539/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0539/A.js
deleted file mode 100644
index 64d3564..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0539/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	class Inner {

-	}

-	void make() {

-		new A(){}.new Inner(){/*x*/};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0541/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0541/A.js
deleted file mode 100644
index 69be93d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0541/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0541;

-

-class A {

-    private int[] tab = new int[] {

-        B.CODNIVEL3, B.NOMNIVEL3, B.CODAUTORIZA,

-        B.NOMUSRCIA, B.TIPAUTORIZA, B.NOMAUTORIZA,

-        B.CODCTOAUTORIZA, B.NOMCTOAUTORIZA, B.CODMON,

-        B.NOMMON, B.MCAINH, B.IMPORTEAUTORIZA,

-        B.NUMDECIMALES

-    };   

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0541/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0541/B.js
deleted file mode 100644
index 180f2be..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0541/B.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package test0541;

-

-public class B {

-    protected static final int NUMSECUK = 0;

-    protected static final int CODCIA = 1;

-    protected static final int CODNIVEL3 = 2;

-    protected static final int NOMNIVEL3 = 3;

-    protected static final int CODAUTORIZA = 4;

-    protected static final int NOMUSRCIA = 5;

-    protected static final int TIPAUTORIZA = 6;

-    protected static final int NOMAUTORIZA = 7;

-    protected static final int CODCTOAUTORIZA = 8;

-    protected static final int NOMCTOAUTORIZA = 9;

-    protected static final int IMPORTEAUTORIZA = 10;

-    protected static final int CODMON = 11;

-    protected static final int NOMMON = 12;

-    protected static final int NUMDECIMALES = 13;

-    protected static final int CODUSR = 14;

-    protected static final int FECACTU = 15;

-    protected static final int MCAINH = 16;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0542/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0542/A.js
deleted file mode 100644
index 8e3f73b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0542/A.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package test0542;

-

-public class A {

-	private static final String STRING_FIELD = "Hello world!";

-	private static final boolean BOOLEAN_FIELD = true;

-	private static final byte BYTE_FIELD = 1;

-	private static final char CHAR_FIELD = '{';

-	private static final double DOUBLE_FIELD = 3.1415;

-	private static final float FLOAT_FIELD = 3.14159f;

-	private static final int INT_FIELD = Integer.MAX_VALUE; //0x7fffffff

-	private static final long LONG_FIELD = 34L;

-	private static final short SHORT_FIELD = 130;

-	private int int_field = Integer.MAX_VALUE; //0x7fffffff

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0543/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0543/A.js
deleted file mode 100644
index b93f4a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0543/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0543;

-

-public class A {

-	public static void main(String[] args) {

-		Object c = new java.io.PrintStream() {};

-		System.out.println(c);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0544/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0544/A.js
deleted file mode 100644
index 2b9ba77..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0544/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0544;

-

-public abstract class A {

-	abstract void foo();

-	static A a = new A() {

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/First.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/First.js
deleted file mode 100644
index efb2b0e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/First.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0545;

-

-public class First {

-	private static class Test {

-		// default constructor

-		Test(float f) {

-		}

-	}

-	First() {

-		final Test t = new Test(0.0f);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Second.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Second.js
deleted file mode 100644
index 7730fcb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Second.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0545;

-

-public class Second {

-	private static class Test {

-		Test(int i) {

-		}

-	}

-	Second() {

-		final Test t = new Test(0);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Test.js
deleted file mode 100644
index 78a8911..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0545;

-

-public class Test {

-	Test(Object o) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Third.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Third.js
deleted file mode 100644
index c59434a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0545/Third.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0545;

-

-public class Third {

-	private static class Test {

-	}

-	Third() {

-		final Test t = new Test();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0546/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0546/A.js
deleted file mode 100644
index bd2b702..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0546/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0546;

-

-interface MyInterface {}

-

-public class A {

-	public static void main(String[] args) {

-		MyInterface myi = new MyInterface() {};

-		myi.toString();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0547/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0547/A.js
deleted file mode 100644
index fe1a256..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0547/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0547;

-

-public class A {

-    public void foo() {

-        class Local {

-            class LocalMember {

-            }

-            LocalMember x;

-            Vector v;

-        }

-    }	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0548/PaletteStackEditPart.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0548/PaletteStackEditPart.js
deleted file mode 100644
index 8e35130..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0548/PaletteStackEditPart.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class PaletteStackEditPart {

-

-// listen to changes in palette layout.

-private PropertyChangeListener paletteLayoutListener = new PropertyChangeListener() {};

-

-// listen to changes in stack

-private PropertyChangeListener stackListener = new PropertyChangeListener() {

-	};

-		}

-	}

-};

-

-// listen to changes of clickable tool figure

-private ChangeListener clickableListener = new ChangeListener() {};

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0549/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0549/A.js
deleted file mode 100644
index f69b140..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0549/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A

-{

-    public void broken(}

-{}

-

-    public void thereMustSomethingHere()

-    {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0550/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0550/A.js
deleted file mode 100644
index 63a6133..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0550/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A

-{

-	public A() {	}

-	{ // <- insert '{' before comment

-	public static void main(String[] args) { }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0551/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0551/A.js
deleted file mode 100644
index 17e6cb3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0551/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0551;

-

-public class A {

-// some code

-}

-/*

-// some comments
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0552/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0552/Test.js
deleted file mode 100644
index e9741c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0552/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0552;

-

-public class Test {

-	void foo() {

-		"aaa".equals("a" + "a" + "a");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0553/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0553/A.js
deleted file mode 100644
index 3fd7652..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0553/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0553;

-

-public class A {

-	private static final String BUNDLE_NAME = A.getString();

-	public static String getString() {

-		return "";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0554/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0554/A.js
deleted file mode 100644
index 39b806f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0554/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0554;

-

-public class A {

-	private static final String BUNDLE_NAME = "test.test";//$NON-NLS-1$

-	public static String getString(String s) {

-		return "";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0554/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0554/B.js
deleted file mode 100644
index 6a68d18..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0554/B.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0554;

-

-import test0554.A;

-

-public class B {

-	public static String foo() {

-		return A.getString("xx");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0555/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0555/A.js
deleted file mode 100644
index 900c0e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0555/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0555;

-

-public class A {

-	public static final String BUNDLE_NAME = "test.test";//$NON-NLS-1$

-	public static String getString(String s) {

-		return "";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0555/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0555/B.js
deleted file mode 100644
index 330f440..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0555/B.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0555;

-

-import test0555.A;

-

-public class B {

-	public static String foo() {

-		return A.BUNDLE_NAME;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0556/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0556/A.js
deleted file mode 100644
index abc7718..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0556/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test0556;

-

-import java.util.Vector;

-

-public class A {

-	AA aa;

-	void foo() {    

-		(aa.bar()).size();

-	}

-}

-class AA {

-	Vector bar() { return new Vector(1); };

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0557/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0557/A.js
deleted file mode 100644
index 7ef1ff8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0557/A.js
+++ /dev/null
@@ -1,18 +0,0 @@
-package test0557;

-

-import java.util.Vector;

-public class A {

-	AA aa;

-	void foo() {

-		(aa.bar()).get(0);

-		// comment

-		if (true) {

-			System.out.println("Hello: " + toString()); //$NON-NLS-1$

-		}

-	}

-}

-class AA {

-	Vector bar() {

-		return new Vector(1);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0559/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0559/A.js
deleted file mode 100644
index 2b23e07..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0559/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0559;

-

-public class A {

-	

-	void foo() {

-		if( (/*X:press_any_key_b*/ " " /**/).length() > 1 );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0560/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0560/A.js
deleted file mode 100644
index 8f14498..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0560/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0560;

-

-public class A {

-	

-	void foo() {

-		if( (/*X:press_any_key_b*/" ").length() > 1 );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0561/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0561/A.js
deleted file mode 100644
index 0127230..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0561/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0561;

-

-public class A {

-	

-	void foo() {

-		if( (/*X:press_any_key_b*//**/ " " /**/).length() > 1 );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0562/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0562/A.js
deleted file mode 100644
index 592e3eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0562/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0562;

-

-public class A {

-	

-	void foo() {

-		if( (/*X:press_any_key_b*//**/" "/**/  /**/ ).length() > 1 );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0563/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0563/A.js
deleted file mode 100644
index 98261fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0563/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0563;

-

-public class A {

-	

-	void foo() {

-		if( (/*X:press_any_key_b*//**/new String()/**/  /**/ ).length() > 1 );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0564/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0564/A.js
deleted file mode 100644
index fe2e20b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0564/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0564;

-

-public class A {

-	

-	void foo() {

-		if( ( new String() ).length() > 1 );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0565/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0565/A.js
deleted file mode 100644
index c109ba8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0565/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0565;

-

-public class A {

-	

-	void foo() {

-		if( ( (/**/ String /**/) new String() /**/ ).length() > 1 );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0566/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0566/A.js
deleted file mode 100644
index 8fa2156..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0566/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0566;

-

-public class A {

-	public String foo() {

-		return "";} //$NON-NLS-1$

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0567/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0567/A.js
deleted file mode 100644
index ede63ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0567/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0567;

-

-public class A {

-	public String foo() {

-		return "";

-	} //$NON-NLS-1$

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0568/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0568/A.js
deleted file mode 100644
index 73c6e22..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0568/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0568;

-

-public class A {

-	public void foo() {

-		StringTokenizer tokeniser = new StringTokenizer( "", "" );

-		if ( tokeniser.countTokens() = 3 ) {}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0569/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0569/A.js
deleted file mode 100644
index a23a1c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0569/A.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test0569;

-

-/**

- * javadoc comment

- */

-public class A {

-

-	/**

-	 * javadoc comment

-	 */

-	public void method() {

-		/**

-		 * not javadoc comment

-		 */

-		System.out.println("println");

-		class Local {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0570/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0570/A.js
deleted file mode 100644
index 1cd3866..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0570/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0570;

-

-public class A {

-

-	public String m(String s) {

-		return s + "a" + "abc" + "e" + ("i" + ("i" + "ib2") + "i2") + "c";

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/X.js
deleted file mode 100644
index 5cf7d0b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0573;

-

-public class X {

-

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/Y.js
deleted file mode 100644
index 87598c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/Y.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0573;

-

-public class Y extends X

-{

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/Z.js
deleted file mode 100644
index 91109d2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0573/Z.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0573;

-

-public class Z extends Y

-{

-	public void foo() {

-		this.bar();

-	}

-	public void bar() throws Exception {

-

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0574/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0574/X.js
deleted file mode 100644
index bd92aaf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0574/X.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package test0574;

-

-public class X {

-	int field;

-

-	class Inner {

-		int field;

-		public void foo() {

-			field= 10;

-			X.this.field= 11;

-		}

-	}

-	

-	public void foo() {

-		field= 10;

-	}	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0575/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0575/X.js
deleted file mode 100644
index 3ad69fa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0575/X.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package test0575;

-

-public class X {

-	int field;

-

-	class Inner {

-		int field;

-		public void foo() {

-			field= 10;

-			X.this.field= 11;

-		}

-	}

-	

-	public void foo() {

-		field= 10;

-	}	

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0578/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0578/X.js
deleted file mode 100644
index b3a6ea8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0578/X.js
+++ /dev/null
@@ -1,51 +0,0 @@
-package test0578;

-

-public class X {

-	

-	static {

-		int var1 = 0;

-		System.out.println(var1);

-	}

-

-	{

-		int var2 = 0;

-		System.out.println(var2);

-	}

-

-	public int var3;

-	

-	public void foo() {

-		int var4;

-	}

-	

-	public Object bar() {

-		return new Object() {

-			public void foo2() {

-				int var5;

-			}

-		};

-	}

-	

-	public int bar2() {

-		class C {

-			int var6;

-			

-			public void foo3() {

-				int var7;

-			}

-		};

-		return new C().var6;

-	}

-	

-	public X() {

-		int var8;

-	}

-	

-	public void bar3(int var9) {

-		for (int var10 = 0; var10 < 10; var10++) {

-		}

-	}

-

-	public X(Object var11) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0579/ParserTask.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0579/ParserTask.js
deleted file mode 100644
index 5b41995..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0579/ParserTask.js
+++ /dev/null
@@ -1,91 +0,0 @@
-package test0579;

-

-import java.io.BufferedReader;

-import java.io.FileReader;

-import java.util.Iterator;

-import java.util.List;

-

-import org.apache.tools.ant.BuildException;

-import org.apache.tools.ant.Task;

-import org.eclipse.wst.jsdt.core.dom.AST;

-import org.eclipse.wst.jsdt.core.dom.CompilationUnit;

-import org.eclipse.wst.jsdt.core.dom.ImportDeclaration;

-import org.eclipse.wst.jsdt.core.dom.MethodDeclaration;

-import org.eclipse.wst.jsdt.core.dom.Name;

-import org.eclipse.wst.jsdt.core.dom.PackageDeclaration;

-import org.eclipse.wst.jsdt.core.dom.TypeDeclaration;

-

-/**

- * 

- */

-public class ParserTask extends Task {

-	public void doNothingMethod() {

-		//

-		int x = 0;

-	}

-

-	public void execute() throws BuildException {

-		try {

-			String line = null;

-			StringBuffer buffer = new StringBuffer();

-

-			/* Read in this source file */

-			BufferedReader bufferedReader = new BufferedReader(new FileReader(

-					"C:\\Projects5.1\\ParserTask\\src\\ParserTask.java"));

-

-			/* Put source file contents into a StringBuffer */

-			while ((line = bufferedReader.readLine()) != null) {

-				buffer.append(line);

-			}

-

-			/* Parse the source code */

-			CompilationUnit compUnit = AST.parseCompilationUnit(buffer

-					.toString().toCharArray());

-

-			System.out.println("\nPackage Declaration: ");

-			PackageDeclaration packageDecl = compUnit.getPackage();

-			System.out.println(packageDecl == null ? "(default)" : packageDecl

-					.getName().toString());

-

-			System.out.println("\nImports: ");

-			List importList = compUnit.imports();

-			Iterator itr = importList.iterator();

-			while (itr.hasNext()) {

-				ImportDeclaration importDecl = (ImportDeclaration) itr.next();

-

-				System.out.println(importDecl.getName());

-			}

-

-			List typeList = compUnit.types();

-			itr = typeList.iterator();

-			while (itr.hasNext()) {

-				TypeDeclaration typeDecl = (TypeDeclaration) itr.next();

-

-				System.out.println("\nClass: " + typeDecl.getName());

-

-				System.out.print("Superclass: ");

-				Name superClassName = typeDecl.getSuperclass();

-

-				System.out.println(superClassName == null ? "(none)"

-						: superClassName.toString());

-

-				MethodDeclaration[] methodDecls = typeDecl.getMethods();

-				System.out.println("Methods: ");

-

-				for (int i = 0; i < methodDecls.length; i++) {

-					System.out.println("\t\t"

-							+ methodDecls[i].getName().toString());

-				}

-			}

-

-		} catch (Exception e) {

-			throw new BuildException(e);

-		}

-

-	}

-

-	void anotherDoNothingMethod() {

-		int x = 0;

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0580/DiamondSquareTerrainGenerator.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0580/DiamondSquareTerrainGenerator.js
deleted file mode 100644
index 6c37714..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0580/DiamondSquareTerrainGenerator.js
+++ /dev/null
@@ -1,123 +0,0 @@
-package test0580;

-

-import ecosim.model.DefaultLocationModel;

-import ecosim.model.LocationModel;

-import ecosim.model.MapModel;

-

-

-/**

- * @author Ben Hutchison

- *

- */

-public class DiamondSquareTerrainGenerator implements MapGenerator 

-{

-	//number of halving recursive subdivisons to cover map 

-	int _subdivisions;

-

-	//both width and height = 2^_subdivisions + 1 (ie square map)

-	int _width, _height;

-	

-	d

-	

-	LocationModel[][] _map;

-	

-	/* (non-Javadoc)

-	 * @see ecosim.model.map.MapGenerator#generateLocation(int, int, ecosim.model.MapModel)

-	 */

-	public LocationModel generateLocation(int i, int j, MapModel mapModel)

-	{

-

-		// TODO Auto-generated method stub

-		return null;

-	}

-	/* (non-Javadoc)

-	 * @see ecosim.model.map.MapGenerator#setSize(int, int)

-	 */

-	public void setSize(int width, int height)

-	{

-		_subdivisions = Math.max(ceilLogBase2(width), ceilLogBase2(height));

-		

-		//diamond-square alg needs map size == power of 2 plus one; select next suitable size

-		_width = powerOf2(_subdivisions) + 1;

-		_height = powerOf2(_subdivisions) + 1;

-		

-		_map = new LocationModel[_width][_height];

-		

-		generateMap();

-	}

-	

-	void generateMap() {

-		int lod = _subdivisions;

-		for (int i = 0; i < lod; ++ i) {

-		      int q = 1 << i, r = 1 << (lod - i), s = r >> 1;

-		      for (int j = 0; j < divisions; j += r)

-		        for (int k = 0; k < divisions; k += r)

-		          diamond (j, k, r, rough);

-		      if (s > 0)

-		        for (int j = 0; j <= divisions; j += s)

-		          for (int k = (j + s) % r; k <= divisions; k += r)

-		            square (j - s, k - s, r, rough);

-		      rough *= roughness;

-		    }

-	}

-	

-	void diamond(int x, int y, int side, double scale) {

-		if (side > 1) {

-		      int half = side / 2;

-		      double avg = (terrain[x][y] + terrain[x + side][y] +

-		        terrain[x + side][y + side] + terrain[x][y + side]) * 0.25;

-		      terrain[x + half][y + half] = avg + rnd () * scale;

-		    }

-

-	}

-	

-	void square (int x, int y, int side, double scale) {

-	    int half = side / 2;

-	    double avg = 0.0, sum = 0.0;

-	    if (x >= 0)

-	    { avg += terrain[x][y + half]; sum += 1.0; }

-	    if (y >= 0)

-	    { avg += terrain[x + half][y]; sum += 1.0; }

-	    if (x + side <= divisions)

-	    { avg += terrain[x + side][y + half]; sum += 1.0; }

-	    if (y + side <= divisions)

-	    { avg += terrain[x + half][y + side]; sum += 1.0; }

-	    terrain[x + half][y + half] = avg / sum + rnd () * scale;

-	  }

-	

-	

-	public static int ceilLogBase2(int value) {

-		if (value <= 1)

-			return 0;

-		int exponent = 1;

-		value--;

-		while ((value = value >> 1) != 0)

-			exponent++;

-		return exponent;

-	}

-	public static int powerOf2(int exponent) {

-		int value = 1;

-		while (exponent-- > 0)

-			value = value << 1;

-		return value;

-	}

-	

-	

-	public static void main(String[] args)

-	{

-		System.out.println("1: "+ceilLogBase2(1));

-		System.out.println("2: "+ceilLogBase2(2));

-		System.out.println("3: "+ceilLogBase2(3));

-		System.out.println("4: "+ceilLogBase2(4));

-		System.out.println("5: "+ceilLogBase2(5));

-		System.out.println("-3: "+ceilLogBase2(3));

-		System.out.println("1024: "+ceilLogBase2(1024));

-		System.out.println("1023: "+ceilLogBase2(1023));

-		System.out.println("1025: "+ceilLogBase2(1025));

-		

-		System.out.println("1 "+powerOf2(1));

-		System.out.println("2 "+powerOf2(2));

-		System.out.println("3 "+powerOf2(3));

-	}

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0582/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0582/X.js
deleted file mode 100644
index 42126b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0582/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0582;

-public class X {

-    private int[][][][][] MethodName(int[][] tab) {

-    	return null;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0595/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0595/X.js
deleted file mode 100644
index 504b6ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0595/X.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0595;

-

-import test0595a.A.*;

-

-public class X {

-	public Object foo() {

-		return new B();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0595a/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0595a/A.js
deleted file mode 100644
index 222d999..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0595a/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0595a;

-

-public class A {

-

-    public static class B {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0597/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0597/X.js
deleted file mode 100644
index 964f049..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0597/X.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0597;

-

-import junit.framework.Protectable;

-import junit.framework.Test;

-

-public class X {

-    void m(Test t) {

-        if (t instanceof Protectable) {}

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0599/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0599/X.js
deleted file mode 100644
index e57277a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0599/X.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0599;

-

-public class X implements Zork {

-	int m(int i) {

-		return 1 + 2 + ++i;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0600/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0600/C.js
deleted file mode 100644
index bead345..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0600/C.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0600;

-

-class C {

-    public static void world() {

-        System.out.println("x");

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0600/Try.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0600/Try.js
deleted file mode 100644
index 86028c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0600/Try.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0600;

-

-public class Try {

-    void hello() {

-        C.world();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0602/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0602/X.js
deleted file mode 100644
index bacf0fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0602/X.js
+++ /dev/null
@@ -1,2890 +0,0 @@
-package test0602;

-

-class X {

-    void foo(String s) {

-    }

-

-    public X(){

-foo(

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\052\057\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\052\057\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\052\057\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\052\057\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\052\057\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040" +

-"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"

-);

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0603/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0603/X.js
deleted file mode 100644
index 1fd06a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0603/X.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package test0603;

-

-public class X {

-	String fa;

-	String[] fb;

-	String[][] fc;

-	String[][][] fd;

-	

-	void foo() {

-		String a;

-		String[] b;

-		String[][] c;

-		String[][][] d;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0604/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0604/X.js
deleted file mode 100644
index d881bbf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0604/X.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package test0604;

-

-public class X {

-	java.lang.String fa;

-	java.lang.String[] fb;

-	java.lang.String[][] fc;

-	java.lang.String[][][] fd;

-	

-	void foo() {

-		java.lang.String a;

-		java.lang.String[] b;

-		java.lang.String[][] c;

-		java.lang.String[][][] d;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0605/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0605/X.js
deleted file mode 100644
index 2f68655..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0605/X.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package test0605;

-

-public class X {

-

-	void foo() {

-        int[] a= null;

-        int lenA= a.length;

-        int lenB = this.a.length;

-        C c = new C();

-        int lenC = c.d.length;

-    }

-	int[] a = {};

-	class C {

-		int[] d = {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0606/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0606/X.js
deleted file mode 100644
index 61429ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0606/X.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0606;

-

-public class X {

-

-	void foo(int i) {

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0610/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0610/Test.js
deleted file mode 100644
index 25e520b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0610/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0610;

-

-/** @deprecated */

-public class Test {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0610/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0610/X.js
deleted file mode 100644
index 72dbfeb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0610/X.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0610;

-

-public class X {

-	Test test;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0619/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0619/A.js
deleted file mode 100644
index c0b285f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0619/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0619;

-public class Test {

-	public static void main(String[] args) {

-		String s, t, u, v;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0629/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0629/X.js
deleted file mode 100644
index 38c2b2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0629/X.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0629;

-

-public class X {

-   	String[] s =  {"",,,};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0630/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0630/X.js
deleted file mode 100644
index f64b803..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0630/X.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0630;

-

-public class X {

-	public void foo() {

-		String[] s =  {"",,,};

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0631/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0631/X.js
deleted file mode 100644
index 7bb009a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0631/X.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0631;

-

-public class X {

-   	String[] s =  {"",,,;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0653/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0653/A.js
deleted file mode 100644
index 24dca73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0653/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0653;

-

-public class A {

-	private String name = null;

-

-	public A(String aName) {

-		this.name = aName;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0653/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0653/X.js
deleted file mode 100644
index 4a54bc1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0653/X.js
+++ /dev/null
@@ -1,22 +0,0 @@
-package test0653;

-

-import java.util.ArrayList;

-

-public class X extends A {

-

-	public X(String name) {

-		super(name);

-	}

-

-	public static void main(String[] args) {

-		new X("SimpleTest").test();

-	}

-

-	public void test() {

-		System.out.println(this.name.length());

-		ArrayList arrayList = new ArrayList(); // BREAKPOINT

-		for (int i = 0; i < 100; i++) {

-			arrayList.add(new Integer(i));

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0657/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0657/A.js
deleted file mode 100644
index 66dc7aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0657/A.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package test0657;

-

-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0657/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0657/X.js
deleted file mode 100644
index 61b3712..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Converter/src/test0657/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test0657;

-

-public class X {}

-class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/.settings/.jsdtscope
deleted file mode 100644
index 49cabdd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/.settings/.jsdtscope
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/A.js
deleted file mode 100644
index 7011ba4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/A.js
+++ /dev/null
@@ -1 +0,0 @@
-var aVar;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/A2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/A2.js
deleted file mode 100644
index 7011ba4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/A2.js
+++ /dev/null
@@ -1 +0,0 @@
-var aVar;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/Annot.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/Annot.js
deleted file mode 100644
index e6bece5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/Annot.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public @interface Annot {

-	String foo();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E.js
deleted file mode 100644
index 57c8bcd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public enum E {

-	E1, E2;

-	int j;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E2.js
deleted file mode 100644
index 861b912..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public enum E2 {

-	A, B, C

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E3.js
deleted file mode 100644
index 1f22c39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/CreateMembers/src/E3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public enum E3 {

-	A, B, C

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/.classpath
deleted file mode 100644
index 2e9d84f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="output" path="bin"/>
-    <classpathentry kind="lib" sourcepath="src" path="bins"/>
-    <classpathentry kind="lib" path="testUTF8.jar" sourcepath="/Encoding/testUTF8.zip" rootpath=""/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/.project
deleted file mode 100644
index 75574e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug110576/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug110576/Test.js
deleted file mode 100644
index 9723af4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug110576/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-

-package pack;

-/**

- * C'est un exemple de fichier contenant

- * des caractères UTF-8: Noël même où çà?

- * x

- */

-class Test {

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug66898/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug66898/Test.js
deleted file mode 100644
index b4f539b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug66898/Test.js
+++ /dev/null
@@ -1,22 +0,0 @@
-package testUTF8;

-/**

- * <B>Farsi / Persian</B>: .???? ???? ?????????? ???????? ?????????? ?????? ???????? ?????????? 

- * <B>Russian:</B> ?? ?????????? ?????? ??????-?????? ??????????? ????, ???? ?????????????????? ??????????????! 

- * <B>Hungarian:</B> rv??zt??r?? t??k??rf??r??g??p. 

- * <B>Spanish:</B> El ping??ino Wenceslao hizo kil??metros bajo exhaustiva 

- *  lluvia y fr??o, a??oraba a su querido cachorro. 

- * <B>French:</B> Les na??fs ??githales h??tifs pondant ?? No??l o?? il g??le sont 

- *  s??rs d'??tre d????us et de voir leurs dr??les d'??ufs ab??m??s. </B>

- * <B>Esperanto:</B> E??oano ??iu??a??de. 

- */

-public class Test {

-	public static void main(String[] args) {

-		System.out.println("Some sentences using UTF-8 encoded characters:");

-		System.out.println("Farsi / Persian</B>: .???? ???? ?????????? ???????? ?????????? ?????? ???????? ??????????");

-		System.out.println("Russian:</B> ?? ?????????? ?????? ??????-?????? ??????????? ????, ???? ?????????????????? ??????????????!");

-		System.out.println("Hungarian:</B> rv??zt??r?? t??k??rf??r??g??p.");

-		System.out.println("Spanish:</B> El ping??ino Wenceslao hizo kil??metros bajo exhaustiva lluvia y fr??o, a??oraba a su querido cachorro.");

-		System.out.println("French:</B> Les na??fs ??githales h??tifs pondant ?? No??l o?? il g??le sont  s??rs d'??tre d????us et de voir leurs dr??les d'??ufs ab??m??s.");

-		System.out.println("Esperanto:</B> E??oano ??iu??a??de. ");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug66898b/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug66898b/Test.js
deleted file mode 100644
index b4f539b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testBug66898b/Test.js
+++ /dev/null
@@ -1,22 +0,0 @@
-package testUTF8;

-/**

- * <B>Farsi / Persian</B>: .???? ???? ?????????? ???????? ?????????? ?????? ???????? ?????????? 

- * <B>Russian:</B> ?? ?????????? ?????? ??????-?????? ??????????? ????, ???? ?????????????????? ??????????????! 

- * <B>Hungarian:</B> rv??zt??r?? t??k??rf??r??g??p. 

- * <B>Spanish:</B> El ping??ino Wenceslao hizo kil??metros bajo exhaustiva 

- *  lluvia y fr??o, a??oraba a su querido cachorro. 

- * <B>French:</B> Les na??fs ??githales h??tifs pondant ?? No??l o?? il g??le sont 

- *  s??rs d'??tre d????us et de voir leurs dr??les d'??ufs ab??m??s. </B>

- * <B>Esperanto:</B> E??oano ??iu??a??de. 

- */

-public class Test {

-	public static void main(String[] args) {

-		System.out.println("Some sentences using UTF-8 encoded characters:");

-		System.out.println("Farsi / Persian</B>: .???? ???? ?????????? ???????? ?????????? ?????? ???????? ??????????");

-		System.out.println("Russian:</B> ?? ?????????? ?????? ??????-?????? ??????????? ????, ???? ?????????????????? ??????????????!");

-		System.out.println("Hungarian:</B> rv??zt??r?? t??k??rf??r??g??p.");

-		System.out.println("Spanish:</B> El ping??ino Wenceslao hizo kil??metros bajo exhaustiva lluvia y fr??o, a??oraba a su querido cachorro.");

-		System.out.println("French:</B> Les na??fs ??githales h??tifs pondant ?? No??l o?? il g??le sont  s??rs d'??tre d????us et de voir leurs dr??les d'??ufs ab??m??s.");

-		System.out.println("Esperanto:</B> E??oano ??iu??a??de. ");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testUTF8/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testUTF8/Test.js
deleted file mode 100644
index 26457ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testUTF8/Test.js
+++ /dev/null
@@ -1,22 +0,0 @@
-package testUTF8;

-/**

- * <B>Farsi / Persian</B>: .من می توانم بدون احساس درد شيشه بخورم 

- * <B>Russian:</B> В чащах юга жил-был цитру? Да, но фальшивый кземплр! 

- * <B>Hungarian:</B> rvíztűrÅ‘ tükörfúrógép. 

- * <B>Spanish:</B> El pingüino Wenceslao hizo kilómetros bajo exhaustiva 

- *  lluvia y frío, añoraba a su querido cachorro. 

- * <B>French:</B> Les naïfs ægithales hâtifs pondant à Noël où il gèle sont 

- *  sûrs d'être déçus et de voir leurs drôles d'œufs abîmés. </B>

- * <B>Esperanto:</B> Eĥoano ĉiuĵaŭde. 

- */

-public class Test {

-	public static void main(String[] args) {

-		System.out.println("Some sentences using UTF-8 encoded characters:");

-		System.out.println("Farsi / Persian</B>: .من می توانم بدون احساس درد شيشه بخورم");

-		System.out.println("Russian:</B> В чащах юга жил-был цитру? Да, но фальшивый кземплр!");

-		System.out.println("Hungarian:</B> rvíztűrÅ‘ tükörfúrógép.");

-		System.out.println("Spanish:</B> El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y frío, añoraba a su querido cachorro.");

-		System.out.println("French:</B> Les naïfs ægithales hâtifs pondant à Noël où il gèle sont  sûrs d'être déçus et de voir leurs drôles d'œufs abîmés.");

-		System.out.println("Esperanto:</B> Eĥoano ĉiuĵaŭde. ");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testUTF8BOM/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testUTF8BOM/Test.js
deleted file mode 100644
index 555d2a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/src/testUTF8BOM/Test.js
+++ /dev/null
@@ -1,22 +0,0 @@
-package testUTF8;

-/**

- * <B>Farsi / Persian</B>: .من می توانم بدون احساس درد شيشه بخورم 

- * <B>Russian:</B> В чащах юга жил-был цитру? Да, но фальшивый кземплр! 

- * <B>Hungarian:</B> rvíztűrÅ‘ tükörfúrógép. 

- * <B>Spanish:</B> El pingüino Wenceslao hizo kilómetros bajo exhaustiva 

- *  lluvia y frío, añoraba a su querido cachorro. 

- * <B>French:</B> Les naïfs ægithales hâtifs pondant à Noël où il gèle sont 

- *  sûrs d'être déçus et de voir leurs drôles d'œufs abîmés. </B>

- * <B>Esperanto:</B> Eĥoano ĉiuĵaŭde. 

- */

-public class Test {

-	public static void main(String[] args) {

-		System.out.println("Some sentences using UTF-8 encoded characters:");

-		System.out.println("Farsi / Persian</B>: .من می توانم بدون احساس درد شيشه بخورم");

-		System.out.println("Russian:</B> В чащах юга жил-был цитру? Да, но фальшивый кземплр!");

-		System.out.println("Hungarian:</B> rvíztűrÅ‘ tükörfúrógép.");

-		System.out.println("Spanish:</B> El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y frío, añoraba a su querido cachorro.");

-		System.out.println("French:</B> Les naïfs ægithales hâtifs pondant à Noël où il gèle sont  sûrs d'être déçus et de voir leurs drôles d'œufs abîmés.");

-		System.out.println("Esperanto:</B> Eĥoano ĉiuĵaŭde. ");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/testUTF8.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/testUTF8.jar
deleted file mode 100644
index 4bc370f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/testUTF8.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/testUTF8.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/testUTF8.zip
deleted file mode 100644
index 9206e92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Encoding/testUTF8.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/.settings/.jsdtscope
deleted file mode 100644
index 000a6e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/.settings/.jsdtscope
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path=""/>
-	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path=""/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test001/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test001/A_in.js
deleted file mode 100644
index c28318b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test001/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function run() {

-	}

-	

-	function foo() {

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test001/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test001/A_out.js
deleted file mode 100644
index f8fb517..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test001/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function run() {

-}

-function foo() {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test002/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test002/A_in.js
deleted file mode 100644
index 83bafc2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test002/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function openFlashWin() {

-  var xPos = ((screen.availWidth - 675) / 2);

-  var yPos = ((screen.availHeight - 550) / 2);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test002/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test002/A_out.js
deleted file mode 100644
index 8ceb4a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test002/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function openFlashWin() {

-    var xPos = ((screen.availWidth - 675) / 2);

-    var yPos = ((screen.availHeight - 550) / 2);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test003/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test003/A_in.js
deleted file mode 100644
index e178f78..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test003/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test003 

-package p1.p2.test;		

-		

-import java.io.Serializable;		

-import java.io.IOException;		

-		

-public abstract class A extends java.lang.Object implements Runnable, Cloneable, Serializable {		

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test003/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test003/A_out.js
deleted file mode 100644
index c2963b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test003/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// test003 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract class A extends java.lang.Object

-		implements

-			Runnable,

-			Cloneable,

-			Serializable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test004/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test004/A_in.js
deleted file mode 100644
index 0332fec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test004/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test004 

-package p1.p2.test;		

-		

-import java.io.Serializable;		

-import java.io.IOException;		

-		

-public abstract class A implements Runnable {		

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test004/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test004/A_out.js
deleted file mode 100644
index e1ac603..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test004/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test004 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract class A implements Runnable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test005/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test005/A_in.js
deleted file mode 100644
index 920b787..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test005/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test005 

-package p1.p2.test;		

-		

-import java.io.Serializable;		

-import java.io.IOException;		

-				

-public abstract class A implements /*                                                                                  */ Runnable  {		

-}	/*            last comment: end of class A */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test005/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test005/A_out.js
deleted file mode 100644
index 4ec0ea8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test005/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test005 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract class A

-		implements

-			/*                                                                                  */Runnable {

-} /*            last comment: end of class A */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test006/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test006/A_in.js
deleted file mode 100644
index 54e1c3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test006/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// test006 

-package p1.p2.test;		

-		

-import java.io.Serializable;		

-import java.io.IOException;		

-		

-public abstract class A implements /*                                                                                  */ Runnable  {		

-public abstract class B implements /*                                                                                  */ Runnable  {		

-}	/*            last comment: end of member class A */      

-}	/*            last comment: end of class A */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test006/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test006/A_out.js
deleted file mode 100644
index 306d2ff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test006/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// test006 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract class A

-		implements

-			/*                                                                                  */Runnable {

-	public abstract class B

-			implements

-				/*                                                                                  */Runnable {

-	} /*            last comment: end of member class A */

-} /*            last comment: end of class A */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test007/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test007/A_in.js
deleted file mode 100644
index ec771a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test007/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**		

- * test007		

- *		

- */		

-package /* test2 */ p1.p2./* */test;		

-		

-import java.io.Serializable;		

-import java.io.IOException;		

-		

-/**		

- * Class javadoc comment		

- */		

-public abstract /* */ class A extends java.lang.Object implements Runnable, Cloneable, Serializable {		

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test007/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test007/A_out.js
deleted file mode 100644
index 0b8e84e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test007/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/**		

- * test007		

- *		

- */

-package /* test2 */p1.p2./* */test;

-import java.io.Serializable;

-import java.io.IOException;

-/**		

- * Class javadoc comment		

- */

-public abstract/* */class A extends java.lang.Object

-		implements

-			Runnable,

-			Cloneable,

-			Serializable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test008/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test008/A_in.js
deleted file mode 100644
index 5f7d3c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test008/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test008 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract /*  */ class A extends p1.p2.pfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfppffp.A implements Runnable, Cloneable, Serializable, Toto, Titi, Tata {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test008/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test008/A_out.js
deleted file mode 100644
index f80d47d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test008/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// test008 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract/*  */class A

-		extends

-			p1.p2.pfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfppffp.A

-		implements

-			Runnable,

-			Cloneable,

-			Serializable,

-			Toto,

-			Titi,

-			Tata {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test009/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test009/A_in.js
deleted file mode 100644
index 7f30e7a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test009/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// test009 

-  var CONST = 12; // CONST comment 

-  var value = CONST; // value comment 

-  var s = a; // s comment 

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test009/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test009/A_out.js
deleted file mode 100644
index 2da7fa8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test009/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// test009 

-var CONST = 12; // CONST comment 

-var value = CONST; // value comment 

-var s = a; // s comment 

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test010/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test010/A_in.js
deleted file mode 100644
index 630a030..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test010/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-var i; var j; var d;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test010/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test010/A_out.js
deleted file mode 100644
index afad35b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test010/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var i;

-var j;

-var d;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test011/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test011/A_in.js
deleted file mode 100644
index 6f8bfe3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test011/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// test011 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract /*  */ class A extends p1.p2.fpfpfpfppffp.A implements Runnable, Cloneable, Serializable, Toto, Titi, Tata {

-int CONST;int value;long s;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test011/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test011/A_out.js
deleted file mode 100644
index 18124fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test011/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// test011 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract/*  */class A extends p1.p2.fpfpfpfppffp.A

-		implements

-			Runnable,

-			Cloneable,

-			Serializable,

-			Toto,

-			Titi,

-			Tata {

-	int CONST;

-	int value;

-	long s;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test012/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test012/A_in.js
deleted file mode 100644
index 96b1562..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test012/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// test012 

-var CONST;var value;var s;function foo(){}function A(){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test012/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test012/A_out.js
deleted file mode 100644
index 212864a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test012/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test012 

-var CONST;

-var value;

-var s;

-function foo() {

-}

-function A() {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test013/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test013/A_in.js
deleted file mode 100644
index d80e390..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test013/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// test013

-var value = /* */ true; // boolean 

-var s = null; // test 

-function foo( String_s1,  int_l,   final_java_lang_String_s2,  a,  b)  {}function A( i) {var i = 0; i = 2;;;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test013/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test013/A_out.js
deleted file mode 100644
index caebb09..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test013/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// test013

-var value = /* */true; // boolean 

-var s = null; // test 

-function foo(String_s1, int_l,

-		final_java_lang_String_s2, a, b) {

-}

-function A(i) {

-	var i = 0;

-	i = 2;;;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test014/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test014/A_in.js
deleted file mode 100644
index 2fd3cfa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test014/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test014

-var value = /* */ true; // boolean 

-var s = null; // test 

-function foo(s1,  l) {}function A( i) {var i = 0; i = 2;;;}

-var value = 0; // blabla 

-var x; // test 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test014/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test014/A_out.js
deleted file mode 100644
index d5f6cf1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test014/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// test014

-var value = /* */true; // boolean 

-var s = null; // test 

-function foo(s1, l) {

-}

-function A( i) {

-	var i = 0;

-	i = 2;;;

-}

-var value = 0; // blabla 

-var X x; // test 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test015/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test015/A_in.js
deleted file mode 100644
index 16b1509..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test015/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test015

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract /*  */ class A implements Serializable, Toto, Titi, Tata {

-Object s = null; // test 

-A a; // test 

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test015/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test015/A_out.js
deleted file mode 100644
index 41a1ddc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test015/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test015

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract/*  */class A implements Serializable, Toto, Titi, Tata {

-	Object s = null; // test 

-	A a; // test 

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test016/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test016/A_in.js
deleted file mode 100644
index c8dca06..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test016/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test016

-public abstract class A extends p1.p2.fpfpfpfppffp.A implements Runnable, Cloneable, Serializable, Toto, Titi, Tata {

-Object[] s[] = null, o, s2[/*        */] = null; // test 

-A s3, o2, s4 = null; 		// test 

-} // end of class

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test016/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test016/A_out.js
deleted file mode 100644
index 42f450e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test016/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// test016

-public abstract class A extends p1.p2.fpfpfpfppffp.A

-		implements

-			Runnable,

-			Cloneable,

-			Serializable,

-			Toto,

-			Titi,

-			Tata {

-	Object[] s[] = null, o, s2[/*        */] = null; // test 

-	A s3, o2, s4 = null; // test 

-} // end of class

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test017/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test017/A_in.js
deleted file mode 100644
index ddf8e06..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test017/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// test017

-public class A {

-String s2;

-    Object oooooooooooooooooooooooooooooooo = null, sssssssssssssssssssssssssssssssssssss;        // toto

-int    iiiiiiiiiiiiiiiiiiiii = 1, jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj = 2, kkkkkkkkkkkkk;    // test 

-String s;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test017/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test017/A_out.js
deleted file mode 100644
index 634e21d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test017/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// test017

-public class A {

-	String s2;

-	Object oooooooooooooooooooooooooooooooo = null,

-			sssssssssssssssssssssssssssssssssssss; // toto

-	int iiiiiiiiiiiiiiiiiiiii = 1,

-			jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj = 2, kkkkkkkkkkkkk; // test 

-	String s;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test018/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test018/A_in.js
deleted file mode 100644
index 53aa056..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test018/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test018

-public class A {

-    int oooooooooooo00000000000000000000000000000000000000000000000oooooooooooooooooooo = "125665332563256522ddddddddddddddd";        // toto

-String s;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test018/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test018/A_out.js
deleted file mode 100644
index 9cb8295..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test018/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test018

-public class A {

-	int oooooooooooo00000000000000000000000000000000000000000000000oooooooooooooooooooo = "125665332563256522ddddddddddddddd"; // toto

-	String s;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_1_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_1_in.js
deleted file mode 100644
index eb0a018..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_1_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test019: use TAB 

-public class A {

-protected synchronized void foo(final java.lang.String s1, long l) throws IOException,Exception{

-foo("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);f("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);fooooooobaaaaaaar("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);

-}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_1_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_1_out.js
deleted file mode 100644
index 41a9cfa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_1_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// test019: use TAB 

-public class A {

-	protected synchronized void foo(final java.lang.String s1, long l)

-			throws IOException, Exception {

-		foo("Helloddddddddddddddddddddddddddddddddddddd",

-				121212121221212121212121);

-		f("Helloddddddddddddddddddddddddddddddddddddd",

-				121212121221212121212121);

-		fooooooobaaaaaaar("Helloddddddddddddddddddddddddddddddddddddd",

-				121212121221212121212121);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_2_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_2_in.js
deleted file mode 100644
index 0c06342..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_2_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// test019: using SPACE

-public class A {

-protected synchronized void foo(final java.lang.String s1, long l) throws IOException,Exception{

-foo("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);f("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);fooooooobaaaaaaar("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_2_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_2_out.js
deleted file mode 100644
index 1523882..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test019/A_2_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// test019: using SPACE

-public class A {

-    protected synchronized void foo(final java.lang.String s1, long l)

-            throws IOException, Exception {

-        foo("Helloddddddddddddddddddddddddddddddddddddd",

-                121212121221212121212121);

-        f("Helloddddddddddddddddddddddddddddddddddddd",

-                121212121221212121212121);

-        fooooooobaaaaaaar("Helloddddddddddddddddddddddddddddddddddddd",

-                121212121221212121212121);

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test020/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test020/A_in.js
deleted file mode 100644
index b449e25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test020/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test020

-public class A {

-protected synchronized String foo(final java.lang.String s1) throws IOException,Exception{

-foo(foo(foo(foo(foo(foo("Helloddddddddddddddddddddddddddddddddddddd"))))));

-}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test020/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test020/A_out.js
deleted file mode 100644
index 82b4fd4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test020/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// test020

-public class A {

-	protected synchronized String foo(final java.lang.String s1)

-			throws IOException, Exception {

-		foo(foo(foo(foo(foo(foo("Helloddddddddddddddddddddddddddddddddddddd"))))));

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test021/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test021/A_in.js
deleted file mode 100644
index 0be6902..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test021/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// test021

-public class A {

-protected synchronized String foo(final java.lang.String s1) throws IOException,Exception{

-}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test021/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test021/A_out.js
deleted file mode 100644
index 4a65fd0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test021/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test021

-public class A {

-	protected synchronized String foo(final java.lang.String s1)

-			throws IOException, Exception {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test022/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test022/A_in.js
deleted file mode 100644
index 74ad0d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test022/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test022

-public class A {

-	public	int		i		=2;					// end of line comment

-	public	String	s		="Hello";

-	private	String	tab[]	={"Hello","World"};	// this is an array

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test022/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test022/A_out.js
deleted file mode 100644
index c7979fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test022/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test022

-public class A {

-	public int i = 2; // end of line comment

-	public String s = "Hello";

-	private String tab[] = {"Hello", "World"}; // this is an array

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test023/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test023/A_in.js
deleted file mode 100644
index f9d291f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test023/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// test023

-public class A {

-	public	AAAAAAAA	fooooooo() { //comment1 

-		return this; 

-	}	 // end of foo() comment

-	synchronized int	foo() { //comment2

-		return 3; 

-	}	 // end of foobar() comment

-	public	String	s		="Hello";

-	int	baz() { //comment

-		return 3; 

-	}	 // end of baz() comment

-	private	String	tab[]	={"Hello","World"};	// this is an array

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test023/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test023/A_out.js
deleted file mode 100644
index 6ace504..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test023/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// test023

-public class A {

-	public AAAAAAAA fooooooo() { //comment1 

-		return this;

-	} // end of foo() comment

-	synchronized int foo() { //comment2

-		return 3;

-	} // end of foobar() comment

-	public String s = "Hello";

-	int baz() { //comment

-		return 3;

-	} // end of baz() comment

-	private String tab[] = {"Hello", "World"}; // this is an array

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test024/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test024/A_in.js
deleted file mode 100644
index a83a719..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test024/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test024

-public class A {

-	public	void foo() {

-		if (shortCondition) fitOnSameLine();	

-		if (this.condition.isQuiteLong()) cannotFitOnSameLineAsIf("some argument", "some other argument"); 

-		if (should-split-first) if (should-split-second) if (remainCompact) if (remainCompact) whatever();	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test024/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test024/A_out.js
deleted file mode 100644
index b22b44e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test024/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// test024

-public class A {

-	public void foo() {

-		if (shortCondition) fitOnSameLine();

-		if (this.condition.isQuiteLong())

-			cannotFitOnSameLineAsIf("some argument", "some other argument");

-		if (should - split - first)

-			if (should - split - second)

-				if (remainCompact) if (remainCompact) whatever();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test025/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test025/A_in.js
deleted file mode 100644
index 81f6b4b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test025/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test025

-public class A {

-	public	void foo() {

-	}

-	public int field1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test025/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test025/A_out.js
deleted file mode 100644
index 3887f11..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test025/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test025

-public class A {

-	public void foo() {

-	}

-	public int field1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test026/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test026/A_in.js
deleted file mode 100644
index cfa4154..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test026/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test026

-public class A {

-	public	void foo() {

-	   this.longReceiver.someQuiteLongMessageSend("aaaaaaaaaaa","bbbbbbbbbbbbb","cccccccc"); 

-	   this.extremlylongReceiverWillCauseTwoSplitActions.someQuiteLongMessageSend("aaaaaaaaaaa","bbbbbbbbbbbbb","cccccccc"); 

-      Alignment expressionsAlignment = this.scribe.createAlignment("expressions", Alignment.M_COMPACT_SPLIT + someMessageSend(Alignment.M_COMPACT_SPLIT, Alignment.M_COMPACT_SPLIT, Alignment.M_COMPACT_SPLIT, Alignment.M_COMPACT_SPLIT),expressionsLength - 1, this.scribe.scanner.currentPosition);			

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test026/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test026/A_out.js
deleted file mode 100644
index 0b1feef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test026/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// test026

-public class A {

-	public void foo() {

-		this.longReceiver.someQuiteLongMessageSend("aaaaaaaaaaa",

-				"bbbbbbbbbbbbb", "cccccccc");

-		this.extremlylongReceiverWillCauseTwoSplitActions

-				.someQuiteLongMessageSend("aaaaaaaaaaa", "bbbbbbbbbbbbb",

-						"cccccccc");

-		Alignment expressionsAlignment = this.scribe.createAlignment(

-				"expressions", Alignment.M_COMPACT_SPLIT

-						+ someMessageSend(Alignment.M_COMPACT_SPLIT,

-								Alignment.M_COMPACT_SPLIT,

-								Alignment.M_COMPACT_SPLIT,

-								Alignment.M_COMPACT_SPLIT),

-				expressionsLength - 1, this.scribe.scanner.currentPosition);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test027/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test027/A_in.js
deleted file mode 100644
index b733470..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test027/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test027

-public class A {

-	public	void foo(boolean b) {

-	   do {} while(b);;;int i = 0, k = 3;i = 2;	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test027/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test027/A_out.js
deleted file mode 100644
index cc43fa3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test027/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// test027

-public class A {

-	public void foo(boolean b) {

-		do {

-		} while (b);;;

-		int i = 0, k = 3;

-		i = 2;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test028/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test028/A_in.js
deleted file mode 100644
index 2408277..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test028/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test028

-public class A {

-	public	void foo(boolean b) {

-	  ;;}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test028/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test028/A_out.js
deleted file mode 100644
index a11d436..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test028/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test028

-public class A {

-	public void foo(boolean b) {

-		;;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test029/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test029/A_in.js
deleted file mode 100644
index c0f90e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test029/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test.test1.test2;

-import java.io.*;import java.util.Vector;

-public class Test {

-public int i;public void foo(int k) {if (k > 0) { i = 3;;;} else if (k == 0) { i = 2;}if (i == 2) return;

-if (k > 0) i = 3;}public void bar() {}

-public long l; // long field

-public String s = null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test029/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test029/A_out.js
deleted file mode 100644
index 81f1bd4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test029/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test.test1.test2;

-import java.io.*;

-import java.util.Vector;

-public class Test {

-	public int i;

-	public void foo(int k) {

-		if (k > 0) {

-			i = 3;;;

-		} else if (k == 0) {

-			i = 2;

-		}

-		if (i == 2) return;

-		if (k > 0) i = 3;

-	}

-	public void bar() {

-	}

-	public long l; // long field

-	public String s = null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test030/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test030/A_in.js
deleted file mode 100644
index 5c95c33..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test030/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test.test1.test2;

-import java.io.*;import java.util.Vector;

-public class Test {

-public int i;

-public void foo(int k) {

-if (k > 0) { i = 3;;;} else if (k == 0) { i = 2;}

-if (i == 2) return;

-if (k > 0) i = 3;

-}

-public void bar() {}

-public String s = null;

-public long l; // long field

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test030/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test030/A_out.js
deleted file mode 100644
index 61d93bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test030/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test.test1.test2;

-import java.io.*;

-import java.util.Vector;

-public class Test {

-	public int i;

-	public void foo(int k) {

-		if (k > 0) {

-			i = 3;;;

-		} else if (k == 0) {

-			i = 2;

-		}

-		if (i == 2) return;

-		if (k > 0) i = 3;

-	}

-	public void bar() {

-	}

-	public String s = null;

-	public long l; // long field

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test031/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test031/A_in.js
deleted file mode 100644
index fe62f92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test031/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test031 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract /*  */ class A extends p1.p2.fpfpfpfppffp.A implements Runnable, Cloneable, Serializable, Toto, Titi, Tata {

-int CONST;

- /*          comment         */

-int value;transient long s;protected synchronized void foo() throws IOException,Exception{}public A() throws IOException,Exception{}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test031/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test031/A_out.js
deleted file mode 100644
index f174ba7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test031/A_out.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// test031 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract/*  */class A extends p1.p2.fpfpfpfppffp.A

-		implements

-			Runnable,

-			Cloneable,

-			Serializable,

-			Toto,

-			Titi,

-			Tata {

-	int CONST;

-	/*          comment         */

-	int value;

-	transient long s;

-	protected synchronized void foo() throws IOException, Exception {

-	}

-	public A() throws IOException, Exception {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test032/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test032/A_in.js
deleted file mode 100644
index f6b7003..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test032/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// test032 

-public class A {

-protected synchronized Object foo() throws IOException,Exception{return new String("this is a very long long long long string") != null ? new Object() : null;}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test032/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test032/A_out.js
deleted file mode 100644
index 45f7b74..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test032/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test032 

-public class A {

-	protected synchronized Object foo() throws IOException, Exception {

-		return new String("this is a very long long long long string") != null

-				? new Object()

-				: null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test033/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test033/A_in.js
deleted file mode 100644
index a608541..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test033/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// test033 

-public class A {

-protected synchronized Object foo() throws IOException,Exception{

-return new String("") != null ? null : null;}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test033/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test033/A_out.js
deleted file mode 100644
index 389495b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test033/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// test033 

-public class A {

-	protected synchronized Object foo() throws IOException, Exception {

-		return new String("") != null ? null : null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test034/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test034/A_in.js
deleted file mode 100644
index 3cc2394..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test034/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// test034 

-public class A {

-void foo(){if ((condition1 && condition2) && (condition3 && condition4) || (condition5 && conditionnnnnnnnn6)) { doSomething(); }}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test034/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test034/A_out.js
deleted file mode 100644
index abc3f92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test034/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// test034 

-public class A {

-	void foo() {

-		if ((condition1 && condition2) && (condition3 && condition4)

-				|| (condition5 && conditionnnnnnnnn6)) {

-			doSomething();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test035/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test035/A_in.js
deleted file mode 100644
index 106c860..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test035/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// test035 

-public class A {

-void foo(){if ((condition1 && condition2) || (condition3 && condition4)) { doSomething(); }}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test035/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test035/A_out.js
deleted file mode 100644
index 5030647..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test035/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test035 

-public class A {

-	void foo() {

-		if ((condition1 && condition2) || (condition3 && condition4)) {

-			doSomething();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test036/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test036/A_in.js
deleted file mode 100644
index 1c9bfb4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test036/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// test036 

-public class A {

-void foo(){if ((condition1 && condition2) || (condition3 && condition4)) { doSomething(); }}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test036/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test036/A_out.js
deleted file mode 100644
index 9eb6dae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test036/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test036 

-public class A {

-	void foo() {

-		if ((condition1 && condition2) || (condition3 && condition4)) {

-			doSomething();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test037/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test037/A_in.js
deleted file mode 100644
index 80668ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test037/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class F{

-	public void foo() {

-		F foo= new F() {

-			public void bar() {

-				// comment

-				return;

-			}

-		}; 

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test037/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test037/A_out.js
deleted file mode 100644
index 4736338..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test037/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class F {

-	public void foo() {

-		F foo = new F() {

-			public void bar() {

-				// comment

-				return;

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test038/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test038/A_in.js
deleted file mode 100644
index 430b589..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test038/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class F{

-	public void foo() {

-		F foo= new F() {			public void bar() {				return;	}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test038/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test038/A_out.js
deleted file mode 100644
index 877b9a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test038/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class F {

-	public void foo() {

-		F foo = new F() {

-			public void bar() {

-				return;

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test039/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test039/A_in.js
deleted file mode 100644
index 5deb1db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test039/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class F{

-public void bar() {;}

-	public void foo() {}

-public void bar2() {//todo

-}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test039/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test039/A_out.js
deleted file mode 100644
index a28751b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test039/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class F {

-	public void bar() {

-		;

-	}

-	public void foo() {

-	}

-	public void bar2() {//todo

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test040/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test040/A_in.js
deleted file mode 100644
index 7fb95a1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test040/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class F{

-public Runnable bar() { return new Runnable() {};}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test040/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test040/A_out.js
deleted file mode 100644
index ce81817..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test040/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class F {

-	public Runnable bar() {

-		return new Runnable() {

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test041/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test041/A_in.js
deleted file mode 100644
index c6559ff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test041/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-class F{

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test041/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test041/A_out.js
deleted file mode 100644
index 5d41131..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test041/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-class F {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test042/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test042/A_in.js
deleted file mode 100644
index b25c080..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test042/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class F{

-{

-	if (size < currentSize) {

-		try {

-			size = (long) inStream.available();

-		} catch (IOException e) {

-		}	} else if (size == currentSize) {

-		++size;	} else {		--size;	}

-

-}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test042/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test042/A_out.js
deleted file mode 100644
index b923b3e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test042/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-class F {

-	{

-		if (size < currentSize) {

-			try {

-				size = (long) inStream.available();

-			} catch (IOException e) {

-			}

-		} else if (size == currentSize) {

-			++size;

-		} else {

-			--size;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test043/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test043/A_in.js
deleted file mode 100644
index 938917d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test043/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*

- *

- */

-/*

- *

- */

-class F{

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test043/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test043/A_out.js
deleted file mode 100644
index c869b6d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test043/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*

- *

- */

-/*

- *

- */

-class F {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test044/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test044/A_in.js
deleted file mode 100644
index 3fd500c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test044/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-class F{String s = "\n";}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test044/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test044/A_out.js
deleted file mode 100644
index 808309d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test044/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class F {

-	String s = "\n";

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test045/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test045/A_in.js
deleted file mode 100644
index d72ce73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test045/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class F{

- void foo() {

-				if (local.useFlag == LocalVariableBinding.UNUSED

-					&& (local.declaration != null) // unused (and non secret) local

-					&& ((local.declaration.bits & AstNode.IsLocalDeclarationReachableMASK) != 0)) { // declaration is reachable

-						}

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test045/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test045/A_out.js
deleted file mode 100644
index 33c83af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test045/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class F {

-	void foo() {

-		if (local.useFlag == LocalVariableBinding.UNUSED

-				&& (local.declaration != null) // unused (and non secret) local

-				&& ((local.declaration.bits & AstNode.IsLocalDeclarationReachableMASK) != 0)) { // declaration is reachable

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test046/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test046/A_in.js
deleted file mode 100644
index 7fbde39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test046/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-i = 4
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test046/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test046/A_out.js
deleted file mode 100644
index 4db932c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test046/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-i=4
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test047/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test047/A_in.js
deleted file mode 100644
index c23d08e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test047/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-i=

-4;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test047/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test047/A_out.js
deleted file mode 100644
index 08dec30..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test047/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-		i = 4;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test048/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test048/A_in.js
deleted file mode 100644
index 2dbe071..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test048/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-{ i=4; }System.out.println();j = 5;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test048/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test048/A_out.js
deleted file mode 100644
index 42045fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test048/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-{

-	i= 4;

-}

-System.out.println();

-j= 5;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test049/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test049/A_in.js
deleted file mode 100644
index 89187b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test049/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-void foo() {{ i=4; }System.out.println();j = 5;} void foo2() {{ i=4; }System.out.println();j = 5;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test049/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test049/A_out.js
deleted file mode 100644
index 562b8b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test049/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-void foo() {

-	{

-		i= 4;

-	}

-	System.out.println();

-	j= 5;

-}

-void foo2() {

-	{

-		i= 4;

-	}

-	System.out.println();

-	j= 5;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test050/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test050/A_in.js
deleted file mode 100644
index 9532e2d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test050/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-3- -3
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test050/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test050/A_out.js
deleted file mode 100644
index 319b745..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test050/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-3 - -3
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test051/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test051/A_in.js
deleted file mode 100644
index 89187b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test051/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-void foo() {{ i=4; }System.out.println();j = 5;} void foo2() {{ i=4; }System.out.println();j = 5;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test051/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test051/A_out.js
deleted file mode 100644
index 562b8b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test051/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-void foo() {

-	{

-		i= 4;

-	}

-	System.out.println();

-	j= 5;

-}

-void foo2() {

-	{

-		i= 4;

-	}

-	System.out.println();

-	j= 5;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test052/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test052/A_in.js
deleted file mode 100644
index e178f78..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test052/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// test003 

-package p1.p2.test;		

-		

-import java.io.Serializable;		

-import java.io.IOException;		

-		

-public abstract class A extends java.lang.Object implements Runnable, Cloneable, Serializable {		

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test052/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test052/A_out.js
deleted file mode 100644
index c2963b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test052/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// test003 

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract class A extends java.lang.Object

-		implements

-			Runnable,

-			Cloneable,

-			Serializable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test053/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test053/A_in.js
deleted file mode 100644
index 312a99a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test053/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*

- * test

- * 003 

- */

-package p1.p2.test;		

-		

-import java.io.Serializable;		

-import java.io.IOException;		

-		

-public abstract class A extends java.lang.Object implements Runnable, Cloneable, Serializable {		

-/*

- * test4

- * 004 

- */

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test053/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test053/A_out.js
deleted file mode 100644
index 6b75c35..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test053/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*

- * test

- * 003 

- */

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract class A extends java.lang.Object

-		implements

-			Runnable,

-			Cloneable,

-			Serializable {

-	/*

-	 * test4

-	 * 004 

-	 */

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test054/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test054/A_in.js
deleted file mode 100644
index 3f49605..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test054/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*

- * test

- * 003 

- */

-package p1.p2.test;		

-		

-import java.io.Serializable;		

-import java.io.IOException;		

-		

-public abstract class A extends java.lang.Object implements Runnable, Cloneable, Serializable {

-	/*

-	 * test4

-	 * 004 

-	 */

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test054/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test054/A_out.js
deleted file mode 100644
index 6b75c35..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test054/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*

- * test

- * 003 

- */

-package p1.p2.test;

-import java.io.Serializable;

-import java.io.IOException;

-public abstract class A extends java.lang.Object

-		implements

-			Runnable,

-			Cloneable,

-			Serializable {

-	/*

-	 * test4

-	 * 004 

-	 */

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test055/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test055/A_in.js
deleted file mode 100644
index 316e1ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test055/A_in.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*

- * @see ITypeBinding#getDeclaredMethods()

- */

-public IMethodBinding[] getDeclaredMethods() {

-if (this.binding.isClass() || this.binding.isInterface()) {

-ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;

-	org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding[] methods = referenceBinding.methods();

-int length = methods.length;

-		int removeSyntheticsCounter = 0;

-IMethodBinding[] newMethods = new IMethodBinding[length];

-	for (int i = 0; i < length; i++) {

-		org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding methodBinding = methods[i];

-if (!shouldBeRemoved(methodBinding)) { 

-			newMethods[removeSyntheticsCounter++] = this.resolver.getMethodBinding(methodBinding);

-}

-}

-if (removeSyntheticsCounter != length) {

-		System.arraycopy(newMethods, 0, (newMethods = new IMethodBinding[removeSyntheticsCounter]), 0, removeSyntheticsCounter);

-	}

-return newMethods;

-	} else {

-

-return NO_DECLARED_METHODS;

-	}

-}

-// comment 1

-// comment 2

-// comment 3

-

-

-// comment 4

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test055/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test055/A_out.js
deleted file mode 100644
index 1eb2f24..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test055/A_out.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*

- * @see ITypeBinding#getDeclaredMethods()

- */

-public IMethodBinding[] getDeclaredMethods() {

-	if (this.binding.isClass() || this.binding.isInterface()) {

-		ReferenceBinding referenceBinding = (ReferenceBinding) this.binding;

-		org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding[] methods = referenceBinding

-				.methods();

-		int length = methods.length;

-		int removeSyntheticsCounter = 0;

-		IMethodBinding[] newMethods = new IMethodBinding[length];

-		for (int i = 0; i < length; i++) {

-			org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding methodBinding = methods[i];

-			if (!shouldBeRemoved(methodBinding)) {

-				newMethods[removeSyntheticsCounter++] = this.resolver

-						.getMethodBinding(methodBinding);

-			}

-		}

-		if (removeSyntheticsCounter != length) {

-			System.arraycopy(newMethods, 0,

-					(newMethods = new IMethodBinding[removeSyntheticsCounter]),

-					0, removeSyntheticsCounter);

-		}

-		return newMethods;

-	} else {

-		return NO_DECLARED_METHODS;

-	}

-}

-// comment 1

-// comment 2

-// comment 3

-// comment 4

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test056/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test056/A_in.js
deleted file mode 100644
index 19508b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test056/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if (true);else System.out.println();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test056/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test056/A_out.js
deleted file mode 100644
index 0357ce9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test056/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-if (true) ;

-else System.out.println();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test057/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test057/A_in.js
deleted file mode 100644
index c988c36..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test057/A_in.js
+++ /dev/null
@@ -1,293 +0,0 @@
-package test0002;

-

-public class Parser

-        implements BindingIds, ParserBasicInformation, TerminalTokens,

-                   CompilerModifiers, OperatorIds, TypeIds {

-

-    protected ProblemReporter  problemReporter;

-    protected CompilerOptions  options;

-    public int                 firstToken;    // handle for multiple parsing goals

-    public int                 lastAct;      //handle for multiple parsing goals

-    protected ReferenceContext referenceContext;

-    public int                 currentToken;

-    private int                synchronizedBlockSourceStart;

-

-    //error recovery management

-    protected int              lastCheckPoint;

-    protected RecoveredElement currentElement;

-    public static boolean      VERBOSE_RECOVERY = false;

-    protected boolean          restartRecovery;

-    protected int              listLength;    // for recovering some incomplete list (interfaces, throws or parameters)

-    protected boolean          hasError;

-    protected boolean          hasReportedError;

-    public static boolean      fineErrorDiagnose           = true;    //TODO remove the static modifier when new diagnose is ready

-    public boolean             reportSyntaxErrorIsRequired = true;

-    public boolean             reportOnlyOneSyntaxError    = false;

-    protected int              recoveredStaticInitializerStart;

-    protected int              lastIgnoredToken, nextIgnoredToken; // comment

-    protected int              lastErrorEndPosition;

-    protected boolean          ignoreNextOpeningBrace;

-

-    //internal data for the automat 

-    protected final static int StackIncrement = 255;

-    protected int              stateStackTop;

-    protected int[]            stack = new int[StackIncrement];

-

-    //scanner token 

-    public Scanner scanner;

-

-    //ast stack

-    final static int                  AstStackIncrement = 100;

-    protected int                     astPtr;

-    protected AstNode[]               astStack =

-        new AstNode[AstStackIncrement];

-    protected int                     astLengthPtr;

-    protected int[]                   astLengthStack;

-    public CompilationUnitDeclaration compilationUnit;    /*the result from parse()*/

-    AstNode[]                         noAstNodes =

-        new AstNode[AstStackIncrement];

-

-    //expression stack

-    final static int       ExpressionStackIncrement = 100;

-    protected int          expressionPtr;

-    protected Expression[] expressionStack =

-        new Expression[ExpressionStackIncrement];

-    protected int          expressionLengthPtr;

-    protected int[]        expressionLengthStack;

-    Expression[]           noExpressions =

-        new Expression[ExpressionStackIncrement];

-

-    //identifiers stacks 

-    protected int      identifierPtr;

-    protected char[][] identifierStack;

-    protected int      identifierLengthPtr;

-    protected int[]    identifierLengthStack;

-    protected long[]   identifierPositionStack;

-

-    //positions , dimensions , .... (what ever is int) ..... stack

-    protected int   intPtr;

-    protected int[] intStack;

-    protected int   endPosition;    //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-    protected int   endStatementPosition;

-    protected int   lParenPos, rParenPos;    //accurate only when used !

-

-    //modifiers dimensions nestedType etc.......

-    protected boolean optimizeStringLiterals = true;

-    protected int     modifiers;

-    protected int     modifiersSourceStart;

-    protected int     nestedType, dimensions;

-    protected int[]   nestedMethod;          //the ptr is nestedType

-    protected int[]   realBlockStack;

-    protected int     realBlockPtr;

-    protected boolean diet    = false;    //tells the scanner to jump over some parts of the code/expressions like method bodies

-    protected int     dietInt = 0;    // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-    protected int[]   variablesCounter;

-

-    //===DATA===DATA===DATA===DATA===DATA===DATA===//

-    public final static byte rhs[]                = {

-        0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,

-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-        2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1,

-        2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,

-        1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3, 1, 3, 1, 2, 1, 1, 1, 3, 0, 3, 1, 1,

-        1, 1, 1, 1, 1, 4, 1, 3, 3, 7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 4, 4,

-        5, 4, 4, 2, 1, 2, 3, 3, 1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2, 2, 4, 1, 1,

-        2, 5, 5, 7, 7, 7, 7, 2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1,

-        1, 1, 1, 3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2, 3, 4, 0, 1, 1, 1,

-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,

-        2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3, 4, 1, 2, 2, 1, 2, 3, 2,

-        5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3, 2, 3, 3, 3, 5, 1, 3, 4, 1,

-        2, 5, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 5, 6, 8,

-        7, 2, 0, 2, 0, 1, 3, 3, 3, 3, 4, 3, 4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3,

-        4, 6, 6, 4, 4, 4, 1, 1, 1, 1, 2, 2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3,

-        1, 6, 6, 5, 0, 0, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3,

-        1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1,

-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,

-        0, 2, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1,

-        0, 1, 0, 1

-    };

-    public static char       asb[]                = null;

-    public static char       asr[]                = null;

-    public static char       nasb[]               = null;

-    public static char       nasr[]               = null;

-    public static char       terminal_index[]     = null;

-    public static char       non_terminal_index[] = null;

-    public static char       term_action[]        = null;

-    public final static byte term_check[]         = {

-        0, 0, 0, 0, 0, 3, 0, 3, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-        12, 22, 0, 24, 25, 25, 4, 5, 6, 25, 31, 32, 33, 34, 35, 36, 37, 38,

-        39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0,

-        57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74,

-        75, 76, 77, 78, 79, 80, 0, 0, 0, 84, 85, 18, 19, 7, 8, 0, 1, 2, 3, 4,

-        5, 6, 7, 8, 9, 10, 11, 12, 22, 21, 24, 25, 0, 26, 27, 28, 55, 31, 32,

-        33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-        50, 51, 52, 81, 54, 55, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 81,

-        12, 83, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 56, 0, 84, 85,

-        0, 4, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25,

-        24, 4, 5, 6, 55, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,

-        44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 57, 58, 59, 60, 61,

-        62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,

-        80, 0, 13, 14, 15, 16, 17, 82, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

-        11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32, 33, 34, 35, 36, 37, 38,

-        39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 81, 54, 55,

-        56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 41, 82, 0, 70, 71, 72, 73,

-        74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16, 17, 57, 7, 8, 0, 1, 2,

-        3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32,

-        33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-        50, 51, 52, 27, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,

-        0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16,

-        17, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 0, 24, 25,

-        3, 0, 22, 0, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 91, 41, 42, 43,

-        44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 3, 57, 58, 59, 60, 61,

-        62, 63, 64, 65, 66, 40, 82, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,

-        80, 81, 0, 83, 0, 0, 0, 18, 19, 7, 8, 0, 1, 2, 0, 4, 5, 6, 7, 8, 9,

-        10, 11, 0, 22, 0, 24, 25, 22, 0, 24, 84, 85, 31, 32, 33, 34, 35, 36,

-        37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54,

-        55, 3, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 40, 0, 29, 70, 71, 72,

-        73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0, 1, 2, 0, 86, 7, 8, 0, 1,

-        2, 91, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 82, 24, 25, 87, 22, 89, 84,

-        85, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47,

-        48, 49, 50, 51, 52, 0, 54, 55, 70, 57, 58, 59, 60, 61, 62, 63, 64, 65,

-        66, 0, 1, 2, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0,

-        1, 2, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 3, 24,

-        25, 55, 9, 10, 11, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 21, 41, 42,

-        43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0, 57, 58, 59, 60,

-        61, 62, 63, 64, 65, 66, 0, 1, 2, 70, 71, 72, 73, 74, 75, 76, 77, 78,

-        79, 80, 0, 26, 0, 28, 55, 0, 87, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,

-        0, 0, 12, 22, 0, 24, 25, 24, 9, 10, 11, 25, 31, 32, 33, 34, 35, 36,

-        37, 38, 39, 20, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30,

-        54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71,

-        72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 3, 0, 3, 7, 8, 0, 1,

-        2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 0, 24, 25, 25, 9, 10, 11, 25,

-        31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,

-        49, 50, 51, 52, 0, 54, 69, 0, 1, 2, 0, 4, 5, 6, 7, 8, 25, 7, 8, 0, 0,

-        70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 22, 0, 24, 25, 0, 0, 0, 0,

-        0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, 42, 43, 44, 45, 46, 47,

-        48, 49, 50, 51, 52, 23, 54, 0, 30, 0, 3, 4, 5, 6, 7, 8, 7, 8, 40, 12,

-        104, 40, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 24, 25, 55, 0,

-        56, 0, 3, 31, 32, 33, 34, 35, 36, 37, 38, 39, 103, 41, 42, 43, 44, 45,

-        46, 47, 48, 49, 50, 51, 52, 24, 54, 0, 86, 57, 58, 59, 60, 61, 62, 63,

-        64, 65, 66, 0, 1, 2, 41, 4, 5, 6, 7, 8, 9, 10, 11, 0, 13, 14, 15, 16,

-        17, 18, 19, 20, 21, 0, 23, 0, 3, 26, 27, 28, 7, 8, 7, 8, 0, 12, 0, 0,

-        1, 2, 0, 0, 0, 54, 7, 8, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 22,

-        0, 22, 0, 3, 24, 25, 29, 30, 29, 30, 30, 31, 32, 33, 34, 35, 36, 37,

-        38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 90, 55,

-        92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 67, 68, 0, 1, 2, 69, 0,

-        0, 22, 7, 8, 90, 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0,

-        87, 24, 25, 4, 5, 6, 7, 8, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,

-        42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 55, 55,

-        0, 0, 7, 8, 55, 12, 67, 68, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25,

-        12, 30, 22, 24, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43,

-        44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 53, 7, 8, 0, 7,

-        8, 25, 12, 67, 68, 56, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 0,

-        22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,

-        46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0, 7, 8, 4, 5, 6, 7, 8,

-        67, 68, 69, 0, 1, 2, 0, 4, 5, 6, 24, 25, 9, 10, 11, 25, 24, 31, 32,

-        33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,

-        51, 52, 0, 1, 2, 0, 0, 0, 0, 7, 8, 3, 0, 24, 7, 8, 67, 68, 69, 0, 1,

-        2, 0, 4, 5, 6, 24, 25, 22, 24, 41, 42, 43, 31, 32, 33, 34, 35, 36, 37,

-        38, 39, 30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55,

-        89, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12, 13, 14, 15,

-        16, 17, 18, 19, 20, 21, 22, 23, 30, 0, 26, 27, 28, 29, 30, 0, 0, 1, 2,

-        0, 4, 5, 6, 40, 40, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 53,

-        29, 56, 56, 22, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10, 11, 12,

-        13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 0, 26, 27, 28, 29, 30,

-        0, 0, 1, 2, 0, 4, 5, 6, 69, 40, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18,

-        19, 0, 53, 29, 3, 56, 22, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10,

-        11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 88, 55, 26, 27,

-        28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 40, 0, 0, 0, 1, 2, 0, 4, 5, 6,

-        7, 8, 0, 53, 12, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 22, 69, 9,

-        10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27,

-        28, 29, 30, 0, 0, 9, 10, 11, 40, 40, 0, 54, 40, 56, 57, 58, 59, 60,

-        61, 62, 63, 64, 65, 66, 0, 53, 22, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3, 4,

-        5, 6, 30, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 0, 0, 26, 27, 28, 29, 30, 0, 0, 69, 3, 4, 5, 6, 7, 8, 40, 0, 1, 2,

-        12, 0, 22, 0, 7, 8, 25, 55, 0, 53, 30, 0, 56, 25, 3, 4, 5, 6, 7, 8,

-        12, 24, 25, 12, 0, 69, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,

-        41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0,

-        7, 8, 0, 0, 24, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 0, 24, 25, 22, 9,

-        10, 11, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 20, 41, 42, 43, 44,

-        45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 3, 7, 8, 0, 0, 0, 3,

-        3, 67, 68, 7, 8, 7, 8, 0, 12, 12, 53, 24, 25, 22, 22, 25, 0, 0, 31,

-        32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-        50, 51, 52, 0, 1, 2, 90, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8,

-        7, 8, 0, 12, 12, 0, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36,

-        37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1,

-        2, 69, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 7, 8, 0, 12, 12,

-        53, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,

-        41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 0,

-        7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 12, 0, 0, 12, 12, 12, 24, 25, 23,

-        40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, 42, 43, 44,

-        45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0, 0,

-        3, 3, 67, 68, 7, 8, 0, 0, 53, 12, 12, 12, 24, 25, 0, 0, 25, 25, 25,

-        31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,

-        49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0, 24, 3, 3, 67, 68, 7,

-        8, 0, 0, 55, 12, 12, 0, 24, 25, 22, 0, 25, 24, 0, 31, 32, 33, 34, 35,

-        36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0,

-        1, 2, 29, 0, 0, 29, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12,

-        12, 3, 24, 25, 0, 40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39,

-        29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 40,

-        0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0,

-        0, 25, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44,

-        45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 40, 0, 7, 8, 0, 0, 0,

-        3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0, 0, 0, 25, 24, 31,

-        32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48,

-        49, 50, 51, 52, 0, 1, 2, 30, 29, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7,

-        8, 12, 0, 0, 12, 12, 12, 24, 25, 0, 0, 0, 3, 25, 31, 32, 33, 34, 35,

-        36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0,

-        1, 2, 29, 0, 30, 0, 7, 8, 0, 0, 0, 3, 0, 67, 68, 7, 8, 0, 0, 0, 12,

-        12, 3, 24, 25, 22, 0, 22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,

-        22, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 89, 30,

-        29, 29, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 88, 0, 24, 25,

-        0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44,

-        45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 29, 29, 0, 7, 8, 0, 0, 0,

-        3, 0, 67, 68, 7, 8, 0, 0, 0, 12, 0, 0, 24, 25, 0, 0, 22, 0, 0, 31, 32,

-        33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,

-        51, 52, 0, 1, 2, 0, 0, 29, 29, 7, 8, 0, 0, 0, 25, 0, 67, 68, 0, 0, 0,

-        0, 0, 0, 0, 0, 24, 25, 0, 0, 25, 25, 0, 31, 32, 33, 34, 35, 36, 37,

-        38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30, 88,

-        29, 29, 0, 0, 29, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12, 13, 14,

-        15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2,

-        3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-        53, 23, 30, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11,

-        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29,

-        30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

-        19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69,

-        9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26,

-        27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,

-        16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4,

-        5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0,

-        0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

-        20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8,

-        9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0,

-        1, 2, 3, 4, 5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20,

-        21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 24, 0, 1, 2, 0, 4, 5, 6, 0, 40,

-        9, 10, 11, 0, 13, 14, 15, 16, 17, 0, 0, 0, 53, 29, 0, 56, 0, 1, 2, 3,

-        4, 5, 6, 29, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 29, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4,

-        5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,

-        0, 22, 26, 27, 28, 29, 30, 0, 24, 0, 3, 4, 5, 6, 7, 8, 40, 0, 0, 12,

-        0, 0, 22, 0, 0, 0, 42, 43, 0, 53, 0, 22, 56, 0, 1, 2, 0, 4, 5, 6, 22,

-        24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 29, 40,

-        26, 27, 28, 29, 30, 0, 81, 0, 0, 0, 0, 0, 0, 54, 40, 0, 57, 58, 59,

-        60, 61, 62, 63, 64, 65, 66, 0, 53, 0, 22, 56, 0, 1, 2, 22, 4, 5, 6,

-        29, 24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,

-        0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,

-        14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4, 5, 6, 0,

-        0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 22,

-        26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,

-        15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3,

-        4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 0, 0, 26, 27, 28, 22, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10,

-        11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28,

-        0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16,

-        17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4,

-        5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11,

-        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0,

-        30, 0, 3, 4, 5, 6, 7, 8, 0, 0, 40, 12, 3, 4, 5, 6, 7, 8, 24, 25, 0,

-    };

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test057/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test057/A_out.js
deleted file mode 100644
index 0654588..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test057/A_out.js
+++ /dev/null
@@ -1,289 +0,0 @@
-package test0002;

-public class Parser

-		implements

-			BindingIds,

-			ParserBasicInformation,

-			TerminalTokens,

-			CompilerModifiers,

-			OperatorIds,

-			TypeIds {

-	protected ProblemReporter			problemReporter;

-	protected CompilerOptions			options;

-	public int							firstToken;															// handle for multiple parsing goals

-	public int							lastAct;																//handle for multiple parsing goals

-	protected ReferenceContext			referenceContext;

-	public int							currentToken;

-	private int							synchronizedBlockSourceStart;

-	//error recovery management

-	protected int						lastCheckPoint;

-	protected RecoveredElement			currentElement;

-	public static boolean				VERBOSE_RECOVERY			= false;

-	protected boolean					restartRecovery;

-	protected int						listLength;															// for recovering some incomplete list (interfaces, throws or parameters)

-	protected boolean					hasError;

-	protected boolean					hasReportedError;

-	public static boolean				fineErrorDiagnose			= true;									//TODO remove the static modifier when new diagnose is ready

-	public boolean						reportSyntaxErrorIsRequired	= true;

-	public boolean						reportOnlyOneSyntaxError	= false;

-	protected int						recoveredStaticInitializerStart;

-	protected int						lastIgnoredToken, nextIgnoredToken;									// comment

-	protected int						lastErrorEndPosition;

-	protected boolean					ignoreNextOpeningBrace;

-	//internal data for the automat 

-	protected final static int			StackIncrement				= 255;

-	protected int						stateStackTop;

-	protected int[]						stack						= new int[StackIncrement];

-	//scanner token 

-	public Scanner						scanner;

-	//ast stack

-	final static int					AstStackIncrement			= 100;

-	protected int						astPtr;

-	protected AstNode[]					astStack					= new AstNode[AstStackIncrement];

-	protected int						astLengthPtr;

-	protected int[]						astLengthStack;

-	public CompilationUnitDeclaration	compilationUnit;														/*the result from parse()*/

-	AstNode[]							noAstNodes					= new AstNode[AstStackIncrement];

-	//expression stack

-	final static int					ExpressionStackIncrement	= 100;

-	protected int						expressionPtr;

-	protected Expression[]				expressionStack				= new Expression[ExpressionStackIncrement];

-	protected int						expressionLengthPtr;

-	protected int[]						expressionLengthStack;

-	Expression[]						noExpressions				= new Expression[ExpressionStackIncrement];

-	//identifiers stacks 

-	protected int						identifierPtr;

-	protected char[][]					identifierStack;

-	protected int						identifierLengthPtr;

-	protected int[]						identifierLengthStack;

-	protected long[]					identifierPositionStack;

-	//positions , dimensions , .... (what ever is int) ..... stack

-	protected int						intPtr;

-	protected int[]						intStack;

-	protected int						endPosition;															//accurate only when used ! (the start position is pushed into intStack while the end the current one)

-	protected int						endStatementPosition;

-	protected int						lParenPos, rParenPos;													//accurate only when used !

-	//modifiers dimensions nestedType etc.......

-	protected boolean					optimizeStringLiterals		= true;

-	protected int						modifiers;

-	protected int						modifiersSourceStart;

-	protected int						nestedType, dimensions;

-	protected int[]						nestedMethod;															//the ptr is nestedType

-	protected int[]						realBlockStack;

-	protected int						realBlockPtr;

-	protected boolean					diet						= false;									//tells the scanner to jump over some parts of the code/expressions like method bodies

-	protected int						dietInt						= 0;										// if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-	protected int[]						variablesCounter;

-	//===DATA===DATA===DATA===DATA===DATA===DATA===//

-	public final static byte			rhs[]						= {0, 2, 2,

-			2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,

-			1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,

-			2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1,

-			2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,

-			1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3, 1, 3, 1, 2, 1, 1, 1, 3, 0, 3,

-			1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3, 7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2,

-			2, 4, 4, 5, 4, 4, 2, 1, 2, 3, 3, 1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2,

-			2, 4, 1, 1, 2, 5, 5, 7, 7, 7, 7, 2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1,

-			1, 2, 2, 1, 1, 1, 1, 1, 3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2,

-			3, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-			1, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3,

-			4, 1, 2, 2, 1, 2, 3, 2, 5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3,

-			2, 3, 3, 3, 5, 1, 3, 4, 1, 2, 5, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,

-			3, 3, 3, 3, 3, 1, 1, 5, 6, 8, 7, 2, 0, 2, 0, 1, 3, 3, 3, 3, 4, 3,

-			4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3, 4, 6, 6, 4, 4, 4, 1, 1, 1, 1, 2,

-			2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 6, 6, 5, 0, 0, 1, 3, 3, 3,

-			1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3,

-			1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-			1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1, 0, 1, 0,

-			1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 1, 0, 1};

-	public static char					asb[]						= null;

-	public static char					asr[]						= null;

-	public static char					nasb[]						= null;

-	public static char					nasr[]						= null;

-	public static char					terminal_index[]			= null;

-	public static char					non_terminal_index[]		= null;

-	public static char					term_action[]				= null;

-	public final static byte			term_check[]				= {0, 0, 0,

-			0, 0, 3, 0, 3, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22,

-			0, 24, 25, 25, 4, 5, 6, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,

-			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0, 57,

-			58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74,

-			75, 76, 77, 78, 79, 80, 0, 0, 0, 84, 85, 18, 19, 7, 8, 0, 1, 2, 3,

-			4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 21, 24, 25, 0, 26, 27, 28, 55,

-			31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,

-			48, 49, 50, 51, 52, 81, 54, 55, 0, 57, 58, 59, 60, 61, 62, 63, 64,

-			65, 66, 81, 12, 83, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0,

-			56, 0, 84, 85, 0, 4, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-			12, 22, 0, 24, 25, 24, 4, 5, 6, 55, 31, 32, 33, 34, 35, 36, 37, 38,

-			39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55,

-			56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72,

-			73, 74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16, 17, 82, 7, 8, 0,

-			1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, 0, 4, 5, 6,

-			0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,

-			47, 48, 49, 50, 51, 52, 81, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,

-			64, 65, 66, 41, 82, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,

-			0, 13, 14, 15, 16, 17, 57, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

-			11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32, 33, 34, 35, 36, 37,

-			38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 27, 54,

-			55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71,

-			72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16, 17, 0, 7, 8,

-			0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 0, 24, 25, 3, 0, 22,

-			0, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 91, 41, 42, 43, 44, 45,

-			46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 3, 57, 58, 59, 60, 61, 62,

-			63, 64, 65, 66, 40, 82, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,

-			80, 81, 0, 83, 0, 0, 0, 18, 19, 7, 8, 0, 1, 2, 0, 4, 5, 6, 7, 8, 9,

-			10, 11, 0, 22, 0, 24, 25, 22, 0, 24, 84, 85, 31, 32, 33, 34, 35,

-			36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,

-			0, 54, 55, 3, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 40, 0, 29,

-			70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0, 1, 2, 0,

-			86, 7, 8, 0, 1, 2, 91, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 82, 24, 25,

-			87, 22, 89, 84, 85, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42,

-			43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 70, 57, 58, 59,

-			60, 61, 62, 63, 64, 65, 66, 0, 1, 2, 70, 71, 72, 73, 74, 75, 76,

-			77, 78, 79, 80, 81, 0, 83, 0, 1, 2, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5,

-			6, 7, 8, 0, 0, 0, 12, 22, 3, 24, 25, 55, 9, 10, 11, 0, 31, 32, 33,

-			34, 35, 36, 37, 38, 39, 21, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,

-			51, 52, 0, 54, 55, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 1,

-			2, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 26, 0, 28, 55, 0,

-			87, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 0, 24, 25,

-			24, 9, 10, 11, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 20, 41, 42,

-			43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30, 54, 55, 56, 57, 58, 59,

-			60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76,

-			77, 78, 79, 80, 0, 0, 0, 0, 3, 0, 3, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7,

-			8, 0, 0, 0, 12, 22, 0, 24, 25, 25, 9, 10, 11, 25, 31, 32, 33, 34,

-			35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,

-			52, 0, 54, 69, 0, 1, 2, 0, 4, 5, 6, 7, 8, 25, 7, 8, 0, 0, 70, 71,

-			72, 73, 74, 75, 76, 77, 78, 79, 80, 22, 0, 24, 25, 0, 0, 0, 0, 0,

-			31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, 42, 43, 44, 45, 46, 47,

-			48, 49, 50, 51, 52, 23, 54, 0, 30, 0, 3, 4, 5, 6, 7, 8, 7, 8, 40,

-			12, 104, 40, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 24, 25,

-			55, 0, 56, 0, 3, 31, 32, 33, 34, 35, 36, 37, 38, 39, 103, 41, 42,

-			43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 24, 54, 0, 86, 57, 58, 59,

-			60, 61, 62, 63, 64, 65, 66, 0, 1, 2, 41, 4, 5, 6, 7, 8, 9, 10, 11,

-			0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 23, 0, 3, 26, 27, 28, 7,

-			8, 7, 8, 0, 12, 0, 0, 1, 2, 0, 0, 0, 54, 7, 8, 57, 58, 59, 60, 61,

-			62, 63, 64, 65, 66, 22, 0, 22, 0, 3, 24, 25, 29, 30, 29, 30, 30,

-			31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47,

-			48, 49, 50, 51, 52, 0, 90, 55, 92, 93, 94, 95, 96, 97, 98, 99, 100,

-			101, 102, 67, 68, 0, 1, 2, 69, 0, 0, 22, 7, 8, 90, 0, 92, 93, 94,

-			95, 96, 97, 98, 99, 100, 101, 102, 0, 87, 24, 25, 4, 5, 6, 7, 8,

-			31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,

-			48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 55, 55, 0, 0, 7, 8, 55, 12,

-			67, 68, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 30, 22, 24,

-			25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46,

-			47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 53, 7, 8, 0, 7, 8, 25,

-			12, 67, 68, 56, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 0, 22,

-			0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,

-			46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0, 7, 8, 4, 5, 6, 7,

-			8, 67, 68, 69, 0, 1, 2, 0, 4, 5, 6, 24, 25, 9, 10, 11, 25, 24, 31,

-			32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,

-			49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 0, 7, 8, 3, 0, 24, 7, 8, 67, 68,

-			69, 0, 1, 2, 0, 4, 5, 6, 24, 25, 22, 24, 41, 42, 43, 31, 32, 33,

-			34, 35, 36, 37, 38, 39, 30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,

-			51, 52, 0, 0, 55, 89, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10,

-			11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 30, 0, 26, 27,

-			28, 29, 30, 0, 0, 1, 2, 0, 4, 5, 6, 40, 40, 9, 10, 11, 0, 13, 14,

-			15, 16, 17, 18, 19, 20, 53, 29, 56, 56, 22, 0, 0, 0, 0, 1, 2, 3, 4,

-			5, 6, 24, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			22, 23, 25, 0, 26, 27, 28, 29, 30, 0, 0, 1, 2, 0, 4, 5, 6, 69, 40,

-			9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 0, 53, 29, 3, 56, 22, 0,

-			7, 8, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10, 11, 12, 13, 14, 15, 16,

-			17, 18, 19, 20, 21, 22, 23, 88, 55, 26, 27, 28, 29, 30, 0, 1, 2, 3,

-			4, 5, 6, 7, 8, 40, 0, 0, 0, 1, 2, 0, 4, 5, 6, 7, 8, 0, 53, 12, 3,

-			56, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 22, 69, 9, 10, 11, 12, 13, 14,

-			15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 0,

-			9, 10, 11, 40, 40, 0, 54, 40, 56, 57, 58, 59, 60, 61, 62, 63, 64,

-			65, 66, 0, 53, 22, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 30, 69,

-			9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0,

-			26, 27, 28, 29, 30, 0, 0, 69, 3, 4, 5, 6, 7, 8, 40, 0, 1, 2, 12, 0,

-			22, 0, 7, 8, 25, 55, 0, 53, 30, 0, 56, 25, 3, 4, 5, 6, 7, 8, 12,

-			24, 25, 12, 0, 69, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,

-			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0,

-			0, 7, 8, 0, 0, 24, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 0, 24, 25,

-			22, 9, 10, 11, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 20, 41, 42,

-			43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 3, 7, 8,

-			0, 0, 0, 3, 3, 67, 68, 7, 8, 7, 8, 0, 12, 12, 53, 24, 25, 22, 22,

-			25, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44,

-			45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 90, 0, 0, 0, 7, 8, 0, 0,

-			0, 3, 3, 67, 68, 7, 8, 7, 8, 0, 12, 12, 0, 24, 25, 22, 7, 8, 24,

-			24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46,

-			47, 48, 49, 50, 51, 52, 0, 1, 2, 69, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3,

-			67, 68, 7, 8, 7, 8, 0, 12, 12, 53, 24, 25, 22, 7, 8, 24, 24, 31,

-			32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,

-			49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68,

-			7, 8, 12, 0, 0, 12, 12, 12, 24, 25, 23, 40, 0, 25, 25, 31, 32, 33,

-			34, 35, 36, 37, 38, 39, 12, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,

-			51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0,

-			0, 53, 12, 12, 12, 24, 25, 0, 0, 25, 25, 25, 31, 32, 33, 34, 35,

-			36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,

-			0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0, 24, 3, 3, 67, 68, 7, 8, 0, 0, 55,

-			12, 12, 0, 24, 25, 22, 0, 25, 24, 0, 31, 32, 33, 34, 35, 36, 37,

-			38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2,

-			29, 0, 0, 29, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12,

-			3, 24, 25, 0, 40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39,

-			29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0,

-			40, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24,

-			25, 0, 0, 25, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41,

-			42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 40, 0,

-			7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0,

-			0, 0, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43,

-			44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 30, 29, 0, 0, 7, 8, 0,

-			0, 0, 3, 3, 67, 68, 7, 8, 12, 0, 0, 12, 12, 12, 24, 25, 0, 0, 0, 3,

-			25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46,

-			47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 30, 0, 7, 8, 0, 0, 0, 3, 0,

-			67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 22, 0, 22, 0, 0, 31, 32,

-			33, 34, 35, 36, 37, 38, 39, 22, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-			50, 51, 52, 0, 1, 2, 89, 30, 29, 29, 7, 8, 0, 0, 0, 3, 3, 67, 68,

-			7, 8, 0, 0, 0, 12, 88, 0, 24, 25, 0, 0, 0, 0, 0, 31, 32, 33, 34,

-			35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,

-			52, 0, 1, 2, 29, 29, 29, 0, 7, 8, 0, 0, 0, 3, 0, 67, 68, 7, 8, 0,

-			0, 0, 12, 0, 0, 24, 25, 0, 0, 22, 0, 0, 31, 32, 33, 34, 35, 36, 37,

-			38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2,

-			0, 0, 29, 29, 7, 8, 0, 0, 0, 25, 0, 67, 68, 0, 0, 0, 0, 0, 0, 0, 0,

-			24, 25, 0, 0, 25, 25, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29,

-			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30, 88, 29, 29, 0,

-			0, 29, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12, 13, 14, 15, 16,

-			17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3,

-			4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			53, 23, 30, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10,

-			11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27,

-			28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,

-			16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3,

-			4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

-			11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27,

-			28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16,

-			17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3,

-			4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10,

-			11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27,

-			28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,

-			16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 3, 4, 5, 6, 0, 0,

-			9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0,

-			26, 27, 28, 29, 30, 24, 0, 1, 2, 0, 4, 5, 6, 0, 40, 9, 10, 11, 0,

-			13, 14, 15, 16, 17, 0, 0, 0, 53, 29, 0, 56, 0, 1, 2, 3, 4, 5, 6,

-			29, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,

-			29, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-			12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0,

-			4, 5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			22, 23, 0, 22, 26, 27, 28, 29, 30, 0, 24, 0, 3, 4, 5, 6, 7, 8, 40,

-			0, 0, 12, 0, 0, 22, 0, 0, 0, 42, 43, 0, 53, 0, 22, 56, 0, 1, 2, 0,

-			4, 5, 6, 22, 24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			22, 23, 29, 40, 26, 27, 28, 29, 30, 0, 81, 0, 0, 0, 0, 0, 0, 54,

-			40, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 53, 0, 22, 56, 0,

-			1, 2, 22, 4, 5, 6, 29, 24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18,

-			19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6,

-			7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0,

-			56, 0, 1, 2, 0, 4, 5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17,

-			18, 19, 20, 21, 22, 23, 0, 22, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4,

-			5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53,

-			23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11,

-			12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28,

-			22, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15,

-			16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1,

-			2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

-			20, 21, 22, 23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0,

-			40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,

-			0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12,

-			13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0,

-			30, 0, 3, 4, 5, 6, 7, 8, 0, 0, 40, 12, 3, 4, 5, 6, 7, 8, 24, 25, 0,};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test058/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test058/A_in.js
deleted file mode 100644
index 189318a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test058/A_in.js
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-

-

-import java.io.*;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BindingIds;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.parser.diagnose.DiagnoseParser;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-

-public class Parser

-        implements BindingIds, ParserBasicInformation, TerminalTokens,

-                   CompilerModifiers, OperatorIds, TypeIds {

-

-    protected ProblemReporter  problemReporter;

-    public int                 firstToken;    // handle for multiple parsing goals

-    public int                 lastAct;      //handle for multiple parsing goals

-    protected ReferenceContext referenceContext;

-    public int                 currentToken;

-    private int                synchronizedBlockSourceStart;

-

-    //error recovery management

-    protected int              lastCheckPoint;

-    protected RecoveredElement currentElement;

-    public static boolean      VERBOSE_RECOVERY = false;

-    protected boolean          restartRecovery;

-    protected int              listLength;    // for recovering some incomplete list (interfaces, throws or parameters)

-    protected boolean          hasError;

-    protected boolean          hasReportedError;

-    public static boolean      fineErrorDiagnose           = true;    //TODO remove the static modifier when new diagnose is ready

-    public boolean             reportSyntaxErrorIsRequired = true;

-    public boolean             reportOnlyOneSyntaxError    = false;

-    protected int              recoveredStaticInitializerStart;

-    protected int              lastIgnoredToken, nextIgnoredToken;

-    protected int              lastErrorEndPosition;

-    protected boolean          ignoreNextOpeningBrace;

-

-    // assert is 1.4 feature only

-    protected long sourceLevel;

-

-    //internal data for the automat 

-    protected final static int StackIncrement = 255;

-    protected int              stateStackTop;

-    protected int[]            stack = new int[StackIncrement];

-

-    //scanner token 

-    public Scanner scanner;

-

-    //ast stack

-    final static int                  AstStackIncrement = 100;

-    protected int                     astPtr;

-    protected AstNode[]               astStack =

-        new AstNode[AstStackIncrement];

-    protected int                     astLengthPtr;

-    protected int[]                   astLengthStack;

-    public CompilationUnitDeclaration compilationUnit;    /*the result from parse()*/

-    AstNode[]                         noAstNodes =

-        new AstNode[AstStackIncrement];

-

-    //expression stack

-    final static int       ExpressionStackIncrement = 100;

-    protected int          expressionPtr;

-    protected Expression[] expressionStack =

-        new Expression[ExpressionStackIncrement];

-    protected int          expressionLengthPtr;

-    protected int[]        expressionLengthStack;

-    Expression[]           noExpressions =

-        new Expression[ExpressionStackIncrement];

-

-    //identifiers stacks 

-    protected int      identifierPtr;

-    protected char[][] identifierStack;

-    protected int      identifierLengthPtr;

-    protected int[]    identifierLengthStack;

-    protected long[]   identifierPositionStack;

-

-    //positions , dimensions , .... (what ever is int) ..... stack

-    protected int   intPtr;

-    protected int[] intStack;

-    protected int   endPosition;    //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-    protected int   endStatementPosition;

-    protected int   lParenPos, rParenPos;    //accurate only when used !

-

-    //modifiers dimensions nestedType etc.......

-    protected boolean optimizeStringLiterals = true;

-    protected int     modifiers;

-    protected int     modifiersSourceStart;

-    protected int     nestedType, dimensions;

-    protected int[]   nestedMethod;          //the ptr is nestedType

-    protected int[]   realBlockStack;

-    protected int     realBlockPtr;

-    protected boolean diet    = false;    //tells the scanner to jump over some parts of the code/expressions like method bodies

-    protected int     dietInt = 0;    // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-    protected int[]   variablesCounter;

-

-    public void foo() {

-

-        byte rhs[] = {

-            0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 5, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3, 1, 3, 1, 2, 1, 1, 1,

-            3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3, 7, 0, 0, 0, 0, 0, 2, 1,

-            1, 1, 2, 2, 4, 4, 5, 4, 4, 2, 1, 2, 3, 3, 1, 3, 3, 1, 3, 1, 4, 0,

-            2, 1, 2, 2, 4, 1, 1, 2, 5, 5, 7, 7, 7, 7, 2, 2, 3, 2, 2, 3, 1, 2,

-            1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1,

-            1, 1, 2, 3, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6,

-            2, 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, 5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3,

-            5, 2, 3, 2, 3, 3, 3, 5, 1, 3, 4, 1, 2, 5, 2, 1, 1, 1, 1, 1, 1, 1,

-            3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 5, 6, 8, 7, 2, 0, 2, 0, 1, 3, 3, 3,

-            3, 4, 3, 4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3, 4, 6, 6, 4, 4, 4, 1, 1,

-            1, 1, 2, 2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 6, 6, 5, 0, 0, 1,

-            3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,

-            3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1,

-            0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 1, 0,

-            1

-        };

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test058/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test058/A_out.js
deleted file mode 100644
index 3627f59..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test058/A_out.js
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.eclipse.wst.jsdt.internal.compiler.parser;

-import java.io.*;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BindingIds;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.parser.diagnose.DiagnoseParser;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-public class Parser

-        implements

-            BindingIds,

-            ParserBasicInformation,

-            TerminalTokens,

-            CompilerModifiers,

-            OperatorIds,

-            TypeIds {

-    protected ProblemReporter         problemReporter;

-    public int                        firstToken;                                                            // handle for multiple parsing goals

-    public int                        lastAct;                                                               //handle for multiple parsing goals

-    protected ReferenceContext        referenceContext;

-    public int                        currentToken;

-    private int                       synchronizedBlockSourceStart;

-    //error recovery management

-    protected int                     lastCheckPoint;

-    protected RecoveredElement        currentElement;

-    public static boolean             VERBOSE_RECOVERY            = false;

-    protected boolean                 restartRecovery;

-    protected int                     listLength;                                                            // for recovering some incomplete list (interfaces, throws or parameters)

-    protected boolean                 hasError;

-    protected boolean                 hasReportedError;

-    public static boolean             fineErrorDiagnose           = true;                                    //TODO remove the static modifier when new diagnose is ready

-    public boolean                    reportSyntaxErrorIsRequired = true;

-    public boolean                    reportOnlyOneSyntaxError    = false;

-    protected int                     recoveredStaticInitializerStart;

-    protected int                     lastIgnoredToken, nextIgnoredToken;

-    protected int                     lastErrorEndPosition;

-    protected boolean                 ignoreNextOpeningBrace;

-    // assert is 1.4 feature only

-    protected long                    sourceLevel;

-    //internal data for the automat 

-    protected final static int        StackIncrement              = 255;

-    protected int                     stateStackTop;

-    protected int[]                   stack                       = new int[StackIncrement];

-    //scanner token 

-    public Scanner                    scanner;

-    //ast stack

-    final static int                  AstStackIncrement           = 100;

-    protected int                     astPtr;

-    protected AstNode[]               astStack                    = new AstNode[AstStackIncrement];

-    protected int                     astLengthPtr;

-    protected int[]                   astLengthStack;

-    public CompilationUnitDeclaration compilationUnit;                                                       /*the result from parse()*/

-    AstNode[]                         noAstNodes                  = new AstNode[AstStackIncrement];

-    //expression stack

-    final static int                  ExpressionStackIncrement    = 100;

-    protected int                     expressionPtr;

-    protected Expression[]            expressionStack             = new Expression[ExpressionStackIncrement];

-    protected int                     expressionLengthPtr;

-    protected int[]                   expressionLengthStack;

-    Expression[]                      noExpressions               = new Expression[ExpressionStackIncrement];

-    //identifiers stacks 

-    protected int                     identifierPtr;

-    protected char[][]                identifierStack;

-    protected int                     identifierLengthPtr;

-    protected int[]                   identifierLengthStack;

-    protected long[]                  identifierPositionStack;

-    //positions , dimensions , .... (what ever is int) ..... stack

-    protected int                     intPtr;

-    protected int[]                   intStack;

-    protected int                     endPosition;                                                           //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-    protected int                     endStatementPosition;

-    protected int                     lParenPos, rParenPos;                                                  //accurate only when used !

-    //modifiers dimensions nestedType etc.......

-    protected boolean                 optimizeStringLiterals      = true;

-    protected int                     modifiers;

-    protected int                     modifiersSourceStart;

-    protected int                     nestedType, dimensions;

-    protected int[]                   nestedMethod;                                                          //the ptr is nestedType

-    protected int[]                   realBlockStack;

-    protected int                     realBlockPtr;

-    protected boolean                 diet                        = false;                                   //tells the scanner to jump over some parts of the code/expressions like method bodies

-    protected int                     dietInt                     = 0;                                       // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-    protected int[]                   variablesCounter;

-    public void foo() {

-        byte rhs[] = {0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

-                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-                1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1,

-                1, 1, 1, 1, 1, 1, 5, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1,

-                1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3,

-                1, 3, 1, 2, 1, 1, 1, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3,

-                7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 4, 4, 5, 4, 4, 2, 1, 2, 3,

-                3, 1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2, 2, 4, 1, 1, 2, 5, 5, 7, 7,

-                7, 7, 2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1,

-                3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2, 3, 4, 0, 1, 1, 1, 1,

-                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,

-                3, 2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3, 4, 1, 2, 2, 1,

-                2, 3, 2, 5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3, 2, 3, 3, 3,

-                5, 1, 3, 4, 1, 2, 5, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3,

-                3, 3, 1, 1, 5, 6, 8, 7, 2, 0, 2, 0, 1, 3, 3, 3, 3, 4, 3, 4, 1,

-                2, 3, 2, 1, 1, 2, 2, 3, 3, 4, 6, 6, 4, 4, 4, 1, 1, 1, 1, 2, 2,

-                0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 6, 6, 5, 0, 0, 1, 3, 3, 3,

-                1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1,

-                3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-                1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1,

-                0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 1,

-                0, 1};

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test059/Parser_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test059/Parser_in.js
deleted file mode 100644
index c988c36..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test059/Parser_in.js
+++ /dev/null
@@ -1,293 +0,0 @@
-package test0002;

-

-public class Parser

-        implements BindingIds, ParserBasicInformation, TerminalTokens,

-                   CompilerModifiers, OperatorIds, TypeIds {

-

-    protected ProblemReporter  problemReporter;

-    protected CompilerOptions  options;

-    public int                 firstToken;    // handle for multiple parsing goals

-    public int                 lastAct;      //handle for multiple parsing goals

-    protected ReferenceContext referenceContext;

-    public int                 currentToken;

-    private int                synchronizedBlockSourceStart;

-

-    //error recovery management

-    protected int              lastCheckPoint;

-    protected RecoveredElement currentElement;

-    public static boolean      VERBOSE_RECOVERY = false;

-    protected boolean          restartRecovery;

-    protected int              listLength;    // for recovering some incomplete list (interfaces, throws or parameters)

-    protected boolean          hasError;

-    protected boolean          hasReportedError;

-    public static boolean      fineErrorDiagnose           = true;    //TODO remove the static modifier when new diagnose is ready

-    public boolean             reportSyntaxErrorIsRequired = true;

-    public boolean             reportOnlyOneSyntaxError    = false;

-    protected int              recoveredStaticInitializerStart;

-    protected int              lastIgnoredToken, nextIgnoredToken; // comment

-    protected int              lastErrorEndPosition;

-    protected boolean          ignoreNextOpeningBrace;

-

-    //internal data for the automat 

-    protected final static int StackIncrement = 255;

-    protected int              stateStackTop;

-    protected int[]            stack = new int[StackIncrement];

-

-    //scanner token 

-    public Scanner scanner;

-

-    //ast stack

-    final static int                  AstStackIncrement = 100;

-    protected int                     astPtr;

-    protected AstNode[]               astStack =

-        new AstNode[AstStackIncrement];

-    protected int                     astLengthPtr;

-    protected int[]                   astLengthStack;

-    public CompilationUnitDeclaration compilationUnit;    /*the result from parse()*/

-    AstNode[]                         noAstNodes =

-        new AstNode[AstStackIncrement];

-

-    //expression stack

-    final static int       ExpressionStackIncrement = 100;

-    protected int          expressionPtr;

-    protected Expression[] expressionStack =

-        new Expression[ExpressionStackIncrement];

-    protected int          expressionLengthPtr;

-    protected int[]        expressionLengthStack;

-    Expression[]           noExpressions =

-        new Expression[ExpressionStackIncrement];

-

-    //identifiers stacks 

-    protected int      identifierPtr;

-    protected char[][] identifierStack;

-    protected int      identifierLengthPtr;

-    protected int[]    identifierLengthStack;

-    protected long[]   identifierPositionStack;

-

-    //positions , dimensions , .... (what ever is int) ..... stack

-    protected int   intPtr;

-    protected int[] intStack;

-    protected int   endPosition;    //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-    protected int   endStatementPosition;

-    protected int   lParenPos, rParenPos;    //accurate only when used !

-

-    //modifiers dimensions nestedType etc.......

-    protected boolean optimizeStringLiterals = true;

-    protected int     modifiers;

-    protected int     modifiersSourceStart;

-    protected int     nestedType, dimensions;

-    protected int[]   nestedMethod;          //the ptr is nestedType

-    protected int[]   realBlockStack;

-    protected int     realBlockPtr;

-    protected boolean diet    = false;    //tells the scanner to jump over some parts of the code/expressions like method bodies

-    protected int     dietInt = 0;    // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-    protected int[]   variablesCounter;

-

-    //===DATA===DATA===DATA===DATA===DATA===DATA===//

-    public final static byte rhs[]                = {

-        0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,

-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-        2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1,

-        2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,

-        1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3, 1, 3, 1, 2, 1, 1, 1, 3, 0, 3, 1, 1,

-        1, 1, 1, 1, 1, 4, 1, 3, 3, 7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 4, 4,

-        5, 4, 4, 2, 1, 2, 3, 3, 1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2, 2, 4, 1, 1,

-        2, 5, 5, 7, 7, 7, 7, 2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1,

-        1, 1, 1, 3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2, 3, 4, 0, 1, 1, 1,

-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,

-        2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3, 4, 1, 2, 2, 1, 2, 3, 2,

-        5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3, 2, 3, 3, 3, 5, 1, 3, 4, 1,

-        2, 5, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 5, 6, 8,

-        7, 2, 0, 2, 0, 1, 3, 3, 3, 3, 4, 3, 4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3,

-        4, 6, 6, 4, 4, 4, 1, 1, 1, 1, 2, 2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3,

-        1, 6, 6, 5, 0, 0, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3,

-        1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1,

-        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,

-        0, 2, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1,

-        0, 1, 0, 1

-    };

-    public static char       asb[]                = null;

-    public static char       asr[]                = null;

-    public static char       nasb[]               = null;

-    public static char       nasr[]               = null;

-    public static char       terminal_index[]     = null;

-    public static char       non_terminal_index[] = null;

-    public static char       term_action[]        = null;

-    public final static byte term_check[]         = {

-        0, 0, 0, 0, 0, 3, 0, 3, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-        12, 22, 0, 24, 25, 25, 4, 5, 6, 25, 31, 32, 33, 34, 35, 36, 37, 38,

-        39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0,

-        57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74,

-        75, 76, 77, 78, 79, 80, 0, 0, 0, 84, 85, 18, 19, 7, 8, 0, 1, 2, 3, 4,

-        5, 6, 7, 8, 9, 10, 11, 12, 22, 21, 24, 25, 0, 26, 27, 28, 55, 31, 32,

-        33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-        50, 51, 52, 81, 54, 55, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 81,

-        12, 83, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 56, 0, 84, 85,

-        0, 4, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25,

-        24, 4, 5, 6, 55, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,

-        44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 57, 58, 59, 60, 61,

-        62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,

-        80, 0, 13, 14, 15, 16, 17, 82, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

-        11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32, 33, 34, 35, 36, 37, 38,

-        39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 81, 54, 55,

-        56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 41, 82, 0, 70, 71, 72, 73,

-        74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16, 17, 57, 7, 8, 0, 1, 2,

-        3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32,

-        33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-        50, 51, 52, 27, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,

-        0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16,

-        17, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 0, 24, 25,

-        3, 0, 22, 0, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 91, 41, 42, 43,

-        44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 3, 57, 58, 59, 60, 61,

-        62, 63, 64, 65, 66, 40, 82, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,

-        80, 81, 0, 83, 0, 0, 0, 18, 19, 7, 8, 0, 1, 2, 0, 4, 5, 6, 7, 8, 9,

-        10, 11, 0, 22, 0, 24, 25, 22, 0, 24, 84, 85, 31, 32, 33, 34, 35, 36,

-        37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54,

-        55, 3, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 40, 0, 29, 70, 71, 72,

-        73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0, 1, 2, 0, 86, 7, 8, 0, 1,

-        2, 91, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 82, 24, 25, 87, 22, 89, 84,

-        85, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47,

-        48, 49, 50, 51, 52, 0, 54, 55, 70, 57, 58, 59, 60, 61, 62, 63, 64, 65,

-        66, 0, 1, 2, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0,

-        1, 2, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 3, 24,

-        25, 55, 9, 10, 11, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 21, 41, 42,

-        43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0, 57, 58, 59, 60,

-        61, 62, 63, 64, 65, 66, 0, 1, 2, 70, 71, 72, 73, 74, 75, 76, 77, 78,

-        79, 80, 0, 26, 0, 28, 55, 0, 87, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,

-        0, 0, 12, 22, 0, 24, 25, 24, 9, 10, 11, 25, 31, 32, 33, 34, 35, 36,

-        37, 38, 39, 20, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30,

-        54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71,

-        72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 3, 0, 3, 7, 8, 0, 1,

-        2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 0, 24, 25, 25, 9, 10, 11, 25,

-        31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,

-        49, 50, 51, 52, 0, 54, 69, 0, 1, 2, 0, 4, 5, 6, 7, 8, 25, 7, 8, 0, 0,

-        70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 22, 0, 24, 25, 0, 0, 0, 0,

-        0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, 42, 43, 44, 45, 46, 47,

-        48, 49, 50, 51, 52, 23, 54, 0, 30, 0, 3, 4, 5, 6, 7, 8, 7, 8, 40, 12,

-        104, 40, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 24, 25, 55, 0,

-        56, 0, 3, 31, 32, 33, 34, 35, 36, 37, 38, 39, 103, 41, 42, 43, 44, 45,

-        46, 47, 48, 49, 50, 51, 52, 24, 54, 0, 86, 57, 58, 59, 60, 61, 62, 63,

-        64, 65, 66, 0, 1, 2, 41, 4, 5, 6, 7, 8, 9, 10, 11, 0, 13, 14, 15, 16,

-        17, 18, 19, 20, 21, 0, 23, 0, 3, 26, 27, 28, 7, 8, 7, 8, 0, 12, 0, 0,

-        1, 2, 0, 0, 0, 54, 7, 8, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 22,

-        0, 22, 0, 3, 24, 25, 29, 30, 29, 30, 30, 31, 32, 33, 34, 35, 36, 37,

-        38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 90, 55,

-        92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 67, 68, 0, 1, 2, 69, 0,

-        0, 22, 7, 8, 90, 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0,

-        87, 24, 25, 4, 5, 6, 7, 8, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,

-        42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 55, 55,

-        0, 0, 7, 8, 55, 12, 67, 68, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25,

-        12, 30, 22, 24, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43,

-        44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 53, 7, 8, 0, 7,

-        8, 25, 12, 67, 68, 56, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 0,

-        22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,

-        46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0, 7, 8, 4, 5, 6, 7, 8,

-        67, 68, 69, 0, 1, 2, 0, 4, 5, 6, 24, 25, 9, 10, 11, 25, 24, 31, 32,

-        33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,

-        51, 52, 0, 1, 2, 0, 0, 0, 0, 7, 8, 3, 0, 24, 7, 8, 67, 68, 69, 0, 1,

-        2, 0, 4, 5, 6, 24, 25, 22, 24, 41, 42, 43, 31, 32, 33, 34, 35, 36, 37,

-        38, 39, 30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55,

-        89, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12, 13, 14, 15,

-        16, 17, 18, 19, 20, 21, 22, 23, 30, 0, 26, 27, 28, 29, 30, 0, 0, 1, 2,

-        0, 4, 5, 6, 40, 40, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 53,

-        29, 56, 56, 22, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10, 11, 12,

-        13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 0, 26, 27, 28, 29, 30,

-        0, 0, 1, 2, 0, 4, 5, 6, 69, 40, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18,

-        19, 0, 53, 29, 3, 56, 22, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10,

-        11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 88, 55, 26, 27,

-        28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 40, 0, 0, 0, 1, 2, 0, 4, 5, 6,

-        7, 8, 0, 53, 12, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 22, 69, 9,

-        10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27,

-        28, 29, 30, 0, 0, 9, 10, 11, 40, 40, 0, 54, 40, 56, 57, 58, 59, 60,

-        61, 62, 63, 64, 65, 66, 0, 53, 22, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3, 4,

-        5, 6, 30, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 0, 0, 26, 27, 28, 29, 30, 0, 0, 69, 3, 4, 5, 6, 7, 8, 40, 0, 1, 2,

-        12, 0, 22, 0, 7, 8, 25, 55, 0, 53, 30, 0, 56, 25, 3, 4, 5, 6, 7, 8,

-        12, 24, 25, 12, 0, 69, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,

-        41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0,

-        7, 8, 0, 0, 24, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 0, 24, 25, 22, 9,

-        10, 11, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 20, 41, 42, 43, 44,

-        45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 3, 7, 8, 0, 0, 0, 3,

-        3, 67, 68, 7, 8, 7, 8, 0, 12, 12, 53, 24, 25, 22, 22, 25, 0, 0, 31,

-        32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-        50, 51, 52, 0, 1, 2, 90, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8,

-        7, 8, 0, 12, 12, 0, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36,

-        37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1,

-        2, 69, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 7, 8, 0, 12, 12,

-        53, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,

-        41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 0,

-        7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 12, 0, 0, 12, 12, 12, 24, 25, 23,

-        40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, 42, 43, 44,

-        45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0, 0,

-        3, 3, 67, 68, 7, 8, 0, 0, 53, 12, 12, 12, 24, 25, 0, 0, 25, 25, 25,

-        31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,

-        49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0, 24, 3, 3, 67, 68, 7,

-        8, 0, 0, 55, 12, 12, 0, 24, 25, 22, 0, 25, 24, 0, 31, 32, 33, 34, 35,

-        36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0,

-        1, 2, 29, 0, 0, 29, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12,

-        12, 3, 24, 25, 0, 40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39,

-        29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 40,

-        0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0,

-        0, 25, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44,

-        45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 40, 0, 7, 8, 0, 0, 0,

-        3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0, 0, 0, 25, 24, 31,

-        32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48,

-        49, 50, 51, 52, 0, 1, 2, 30, 29, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7,

-        8, 12, 0, 0, 12, 12, 12, 24, 25, 0, 0, 0, 3, 25, 31, 32, 33, 34, 35,

-        36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0,

-        1, 2, 29, 0, 30, 0, 7, 8, 0, 0, 0, 3, 0, 67, 68, 7, 8, 0, 0, 0, 12,

-        12, 3, 24, 25, 22, 0, 22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,

-        22, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 89, 30,

-        29, 29, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 88, 0, 24, 25,

-        0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44,

-        45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 29, 29, 0, 7, 8, 0, 0, 0,

-        3, 0, 67, 68, 7, 8, 0, 0, 0, 12, 0, 0, 24, 25, 0, 0, 22, 0, 0, 31, 32,

-        33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,

-        51, 52, 0, 1, 2, 0, 0, 29, 29, 7, 8, 0, 0, 0, 25, 0, 67, 68, 0, 0, 0,

-        0, 0, 0, 0, 0, 24, 25, 0, 0, 25, 25, 0, 31, 32, 33, 34, 35, 36, 37,

-        38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30, 88,

-        29, 29, 0, 0, 29, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12, 13, 14,

-        15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2,

-        3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-        53, 23, 30, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11,

-        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29,

-        30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

-        19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69,

-        9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26,

-        27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,

-        16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4,

-        5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0,

-        0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

-        20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8,

-        9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0,

-        1, 2, 3, 4, 5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20,

-        21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 24, 0, 1, 2, 0, 4, 5, 6, 0, 40,

-        9, 10, 11, 0, 13, 14, 15, 16, 17, 0, 0, 0, 53, 29, 0, 56, 0, 1, 2, 3,

-        4, 5, 6, 29, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 29, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4,

-        5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,

-        0, 22, 26, 27, 28, 29, 30, 0, 24, 0, 3, 4, 5, 6, 7, 8, 40, 0, 0, 12,

-        0, 0, 22, 0, 0, 0, 42, 43, 0, 53, 0, 22, 56, 0, 1, 2, 0, 4, 5, 6, 22,

-        24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 29, 40,

-        26, 27, 28, 29, 30, 0, 81, 0, 0, 0, 0, 0, 0, 54, 40, 0, 57, 58, 59,

-        60, 61, 62, 63, 64, 65, 66, 0, 53, 0, 22, 56, 0, 1, 2, 22, 4, 5, 6,

-        29, 24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,

-        0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,

-        14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4, 5, 6, 0,

-        0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 22,

-        26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,

-        15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3,

-        4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 0, 0, 26, 27, 28, 22, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10,

-        11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28,

-        0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16,

-        17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4,

-        5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,

-        23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11,

-        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0,

-        30, 0, 3, 4, 5, 6, 7, 8, 0, 0, 40, 12, 3, 4, 5, 6, 7, 8, 24, 25, 0,

-    };

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test059/Parser_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test059/Parser_out.js
deleted file mode 100644
index 413d273..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test059/Parser_out.js
+++ /dev/null
@@ -1,289 +0,0 @@
-package test0002;

-public class Parser

-		implements

-			BindingIds,

-			ParserBasicInformation,

-			TerminalTokens,

-			CompilerModifiers,

-			OperatorIds,

-			TypeIds {

-	protected ProblemReporter problemReporter;

-	protected CompilerOptions options;

-	public int firstToken; // handle for multiple parsing goals

-	public int lastAct; //handle for multiple parsing goals

-	protected ReferenceContext referenceContext;

-	public int currentToken;

-	private int synchronizedBlockSourceStart;

-	//error recovery management

-	protected int lastCheckPoint;

-	protected RecoveredElement currentElement;

-	public static boolean VERBOSE_RECOVERY = false;

-	protected boolean restartRecovery;

-	protected int listLength; // for recovering some incomplete list (interfaces, throws or parameters)

-	protected boolean hasError;

-	protected boolean hasReportedError;

-	public static boolean fineErrorDiagnose = true; //TODO remove the static modifier when new diagnose is ready

-	public boolean reportSyntaxErrorIsRequired = true;

-	public boolean reportOnlyOneSyntaxError = false;

-	protected int recoveredStaticInitializerStart;

-	protected int lastIgnoredToken, nextIgnoredToken; // comment

-	protected int lastErrorEndPosition;

-	protected boolean ignoreNextOpeningBrace;

-	//internal data for the automat 

-	protected final static int StackIncrement = 255;

-	protected int stateStackTop;

-	protected int[] stack = new int[StackIncrement];

-	//scanner token 

-	public Scanner scanner;

-	//ast stack

-	final static int AstStackIncrement = 100;

-	protected int astPtr;

-	protected AstNode[] astStack = new AstNode[AstStackIncrement];

-	protected int astLengthPtr;

-	protected int[] astLengthStack;

-	public CompilationUnitDeclaration compilationUnit; /*the result from parse()*/

-	AstNode[] noAstNodes = new AstNode[AstStackIncrement];

-	//expression stack

-	final static int ExpressionStackIncrement = 100;

-	protected int expressionPtr;

-	protected Expression[] expressionStack = new Expression[ExpressionStackIncrement];

-	protected int expressionLengthPtr;

-	protected int[] expressionLengthStack;

-	Expression[] noExpressions = new Expression[ExpressionStackIncrement];

-	//identifiers stacks 

-	protected int identifierPtr;

-	protected char[][] identifierStack;

-	protected int identifierLengthPtr;

-	protected int[] identifierLengthStack;

-	protected long[] identifierPositionStack;

-	//positions , dimensions , .... (what ever is int) ..... stack

-	protected int intPtr;

-	protected int[] intStack;

-	protected int endPosition; //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-	protected int endStatementPosition;

-	protected int lParenPos, rParenPos; //accurate only when used !

-	//modifiers dimensions nestedType etc.......

-	protected boolean optimizeStringLiterals = true;

-	protected int modifiers;

-	protected int modifiersSourceStart;

-	protected int nestedType, dimensions;

-	protected int[] nestedMethod; //the ptr is nestedType

-	protected int[] realBlockStack;

-	protected int realBlockPtr;

-	protected boolean diet = false; //tells the scanner to jump over some parts of the code/expressions like method bodies

-	protected int dietInt = 0; // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-	protected int[] variablesCounter;

-	//===DATA===DATA===DATA===DATA===DATA===DATA===//

-	public final static byte rhs[] = {0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

-			2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-			1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1,

-			1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4,

-			1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 1,

-			3, 1, 3, 1, 2, 1, 1, 1, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3,

-			7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 4, 4, 5, 4, 4, 2, 1, 2, 3, 3,

-			1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2, 2, 4, 1, 1, 2, 5, 5, 7, 7, 7, 7,

-			2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 3, 3, 4,

-			1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2, 3, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1,

-			1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1,

-			1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, 5, 5, 7,

-			9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3, 2, 3, 3, 3, 5, 1, 3, 4, 1, 2, 5,

-			2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 5, 6, 8, 7,

-			2, 0, 2, 0, 1, 3, 3, 3, 3, 4, 3, 4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3,

-			4, 6, 6, 4, 4, 4, 1, 1, 1, 1, 2, 2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3,

-			3, 1, 6, 6, 5, 0, 0, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3,

-			3, 3, 1, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1,

-			1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1,

-			0, 1, 0, 1, 0, 2, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2,

-			0, 0, 1, 0, 1, 0, 1, 0, 1};

-	public static char asb[] = null;

-	public static char asr[] = null;

-	public static char nasb[] = null;

-	public static char nasr[] = null;

-	public static char terminal_index[] = null;

-	public static char non_terminal_index[] = null;

-	public static char term_action[] = null;

-	public final static byte term_check[] = {0, 0, 0, 0, 0, 3, 0, 3, 7, 8, 0,

-			1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, 25, 4, 5, 6,

-			25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,

-			47, 48, 49, 50, 51, 52, 0, 54, 55, 0, 57, 58, 59, 60, 61, 62, 63,

-			64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0,

-			0, 0, 84, 85, 18, 19, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

-			12, 22, 21, 24, 25, 0, 26, 27, 28, 55, 31, 32, 33, 34, 35, 36, 37,

-			38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 81, 54,

-			55, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 81, 12, 83, 70, 71,

-			72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 56, 0, 84, 85, 0, 4, 7, 8,

-			0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, 24, 4, 5,

-			6, 55, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,

-			46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,

-			63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,

-			80, 0, 13, 14, 15, 16, 17, 82, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

-			10, 11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32, 33, 34, 35, 36,

-			37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 81,

-			54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 41, 82, 0, 70,

-			71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15, 16, 17, 57,

-			7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, 0,

-			4, 5, 6, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,

-			45, 46, 47, 48, 49, 50, 51, 52, 27, 54, 55, 56, 57, 58, 59, 60, 61,

-			62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78,

-			79, 80, 0, 13, 14, 15, 16, 17, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8,

-			9, 10, 11, 0, 22, 0, 24, 25, 3, 0, 22, 0, 24, 31, 32, 33, 34, 35,

-			36, 37, 38, 39, 91, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,

-			0, 54, 55, 3, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 40, 82, 0,

-			70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0, 0, 0, 18,

-			19, 7, 8, 0, 1, 2, 0, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 0, 24, 25,

-			22, 0, 24, 84, 85, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42,

-			43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 3, 57, 58, 59,

-			60, 61, 62, 63, 64, 65, 66, 40, 0, 29, 70, 71, 72, 73, 74, 75, 76,

-			77, 78, 79, 80, 81, 0, 83, 0, 1, 2, 0, 86, 7, 8, 0, 1, 2, 91, 4, 5,

-			6, 7, 8, 9, 10, 11, 0, 22, 82, 24, 25, 87, 22, 89, 84, 85, 31, 32,

-			33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-			50, 51, 52, 0, 54, 55, 70, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,

-			0, 1, 2, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0,

-			1, 2, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 3,

-			24, 25, 55, 9, 10, 11, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 21,

-			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0, 57,

-			58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 1, 2, 70, 71, 72, 73, 74,

-			75, 76, 77, 78, 79, 80, 0, 26, 0, 28, 55, 0, 87, 7, 8, 0, 1, 2, 3,

-			4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 0, 24, 25, 24, 9, 10, 11, 25, 31,

-			32, 33, 34, 35, 36, 37, 38, 39, 20, 41, 42, 43, 44, 45, 46, 47, 48,

-			49, 50, 51, 52, 30, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,

-			66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0,

-			0, 3, 0, 3, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 0,

-			24, 25, 25, 9, 10, 11, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,

-			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 69, 0, 1, 2,

-			0, 4, 5, 6, 7, 8, 25, 7, 8, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77,

-			78, 79, 80, 22, 0, 24, 25, 0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36,

-			37, 38, 39, 12, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 23,

-			54, 0, 30, 0, 3, 4, 5, 6, 7, 8, 7, 8, 40, 12, 104, 40, 70, 71, 72,

-			73, 74, 75, 76, 77, 78, 79, 80, 24, 25, 55, 0, 56, 0, 3, 31, 32,

-			33, 34, 35, 36, 37, 38, 39, 103, 41, 42, 43, 44, 45, 46, 47, 48,

-			49, 50, 51, 52, 24, 54, 0, 86, 57, 58, 59, 60, 61, 62, 63, 64, 65,

-			66, 0, 1, 2, 41, 4, 5, 6, 7, 8, 9, 10, 11, 0, 13, 14, 15, 16, 17,

-			18, 19, 20, 21, 0, 23, 0, 3, 26, 27, 28, 7, 8, 7, 8, 0, 12, 0, 0,

-			1, 2, 0, 0, 0, 54, 7, 8, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,

-			22, 0, 22, 0, 3, 24, 25, 29, 30, 29, 30, 30, 31, 32, 33, 34, 35,

-			36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,

-			0, 90, 55, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 67, 68,

-			0, 1, 2, 69, 0, 0, 22, 7, 8, 90, 0, 92, 93, 94, 95, 96, 97, 98, 99,

-			100, 101, 102, 0, 87, 24, 25, 4, 5, 6, 7, 8, 31, 32, 33, 34, 35,

-			36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,

-			0, 0, 55, 0, 1, 2, 55, 55, 0, 0, 7, 8, 55, 12, 67, 68, 0, 0, 1, 2,

-			3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 30, 22, 24, 25, 31, 32, 33, 34,

-			35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,

-			52, 0, 0, 55, 0, 1, 2, 53, 7, 8, 0, 7, 8, 25, 12, 67, 68, 56, 0, 1,

-			2, 3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 0, 22, 0, 0, 31, 32, 33, 34,

-			35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,

-			52, 0, 1, 2, 29, 0, 0, 0, 7, 8, 4, 5, 6, 7, 8, 67, 68, 69, 0, 1, 2,

-			0, 4, 5, 6, 24, 25, 9, 10, 11, 25, 24, 31, 32, 33, 34, 35, 36, 37,

-			38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2,

-			0, 0, 0, 0, 7, 8, 3, 0, 24, 7, 8, 67, 68, 69, 0, 1, 2, 0, 4, 5, 6,

-			24, 25, 22, 24, 41, 42, 43, 31, 32, 33, 34, 35, 36, 37, 38, 39, 30,

-			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 89, 0, 0,

-			0, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12, 13, 14, 15, 16, 17,

-			18, 19, 20, 21, 22, 23, 30, 0, 26, 27, 28, 29, 30, 0, 0, 1, 2, 0,

-			4, 5, 6, 40, 40, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 53,

-			29, 56, 56, 22, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10, 11,

-			12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 0, 26, 27, 28,

-			29, 30, 0, 0, 1, 2, 0, 4, 5, 6, 69, 40, 9, 10, 11, 0, 13, 14, 15,

-			16, 17, 18, 19, 0, 53, 29, 3, 56, 22, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6,

-			24, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,

-			88, 55, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 40, 0, 0, 0,

-			1, 2, 0, 4, 5, 6, 7, 8, 0, 53, 12, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3,

-			4, 5, 6, 22, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 0, 9, 10, 11, 40, 40, 0, 54,

-			40, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 53, 22, 3, 56,

-			0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 30, 69, 9, 10, 11, 12, 13, 14, 15,

-			16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 0, 69,

-			3, 4, 5, 6, 7, 8, 40, 0, 1, 2, 12, 0, 22, 0, 7, 8, 25, 55, 0, 53,

-			30, 0, 56, 25, 3, 4, 5, 6, 7, 8, 12, 24, 25, 12, 0, 69, 25, 24, 31,

-			32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,

-			49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0, 7, 8, 0, 0, 24, 3, 3, 67, 68,

-			7, 8, 0, 0, 0, 12, 12, 0, 24, 25, 22, 9, 10, 11, 24, 31, 32, 33,

-			34, 35, 36, 37, 38, 39, 20, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,

-			51, 52, 0, 1, 2, 0, 0, 0, 3, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 7,

-			8, 0, 12, 12, 53, 24, 25, 22, 22, 25, 0, 0, 31, 32, 33, 34, 35, 36,

-			37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0,

-			1, 2, 90, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 7, 8, 0, 12,

-			12, 0, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36, 37, 38,

-			39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 69,

-			0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 7, 8, 0, 12, 12, 53,

-			24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,

-			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0,

-			0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 12, 0, 0, 12, 12, 12, 24, 25,

-			23, 40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41, 42,

-			43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8,

-			0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 53, 12, 12, 12, 24, 25, 0, 0,

-			25, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44,

-			45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0, 0,

-			24, 3, 3, 67, 68, 7, 8, 0, 0, 55, 12, 12, 0, 24, 25, 22, 0, 25, 24,

-			0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46,

-			47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 29, 7, 8, 0, 0, 0, 3, 3,

-			67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0, 40, 0, 25, 25, 31, 32,

-			33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49,

-			50, 51, 52, 0, 1, 2, 0, 0, 40, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7,

-			8, 0, 0, 0, 12, 12, 3, 24, 25, 0, 0, 25, 25, 24, 31, 32, 33, 34,

-			35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,

-			52, 0, 1, 2, 29, 0, 40, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0,

-			0, 12, 12, 3, 24, 25, 0, 0, 0, 25, 24, 31, 32, 33, 34, 35, 36, 37,

-			38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1,

-			2, 30, 29, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 12, 0, 0, 12,

-			12, 12, 24, 25, 0, 0, 0, 3, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39,

-			0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0,

-			30, 0, 7, 8, 0, 0, 0, 3, 0, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24,

-			25, 22, 0, 22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 22, 41,

-			42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 89, 30, 29,

-			29, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 88, 0, 24, 25,

-			0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43,

-			44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 29, 29, 0, 7, 8,

-			0, 0, 0, 3, 0, 67, 68, 7, 8, 0, 0, 0, 12, 0, 0, 24, 25, 0, 0, 22,

-			0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,

-			46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 29, 29, 7, 8, 0, 0, 0,

-			25, 0, 67, 68, 0, 0, 0, 0, 0, 0, 0, 0, 24, 25, 0, 0, 25, 25, 0, 31,

-			32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48,

-			49, 50, 51, 52, 30, 88, 29, 29, 0, 0, 29, 0, 1, 2, 3, 4, 5, 6, 67,

-			68, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,

-			0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,

-			13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 30, 56, 26, 27, 28, 0,

-			0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

-			19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6,

-			7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0,

-			56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13,

-			14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30,

-			0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

-			19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0,

-			69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,

-			0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,

-			13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0,

-			0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

-			19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6,

-			7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0,

-			56, 0, 1, 2, 3, 4, 5, 6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17,

-			18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 24, 0, 1, 2, 0,

-			4, 5, 6, 0, 40, 9, 10, 11, 0, 13, 14, 15, 16, 17, 0, 0, 0, 53, 29,

-			0, 56, 0, 1, 2, 3, 4, 5, 6, 29, 0, 9, 10, 11, 69, 13, 14, 15, 16,

-			17, 18, 19, 20, 21, 22, 23, 29, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3,

-			4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			53, 23, 0, 56, 0, 1, 2, 0, 4, 5, 6, 0, 0, 9, 10, 11, 69, 13, 14,

-			15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 22, 26, 27, 28, 29, 30, 0,

-			24, 0, 3, 4, 5, 6, 7, 8, 40, 0, 0, 12, 0, 0, 22, 0, 0, 0, 42, 43,

-			0, 53, 0, 22, 56, 0, 1, 2, 0, 4, 5, 6, 22, 24, 9, 10, 11, 69, 13,

-			14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 29, 40, 26, 27, 28, 29, 30,

-			0, 81, 0, 0, 0, 0, 0, 0, 54, 40, 0, 57, 58, 59, 60, 61, 62, 63, 64,

-			65, 66, 0, 53, 0, 22, 56, 0, 1, 2, 22, 4, 5, 6, 29, 24, 9, 10, 11,

-			69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28,

-			29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

-			17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4, 5, 6, 0, 0, 9,

-			10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 22, 26,

-			27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,

-			15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2,

-			3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,

-			21, 22, 23, 0, 0, 26, 27, 28, 22, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0,

-			40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,

-			0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12,

-			13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0,

-			30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16,

-			17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3,

-			4, 5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,

-			22, 23, 0, 0, 26, 27, 28, 0, 30, 0, 3, 4, 5, 6, 7, 8, 0, 0, 40, 12,

-			3, 4, 5, 6, 7, 8, 24, 25, 0,};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test060/Parser_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test060/Parser_in.js
deleted file mode 100644
index 0b66703..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test060/Parser_in.js
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-

-

-import java.io.*;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BindingIds;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.parser.diagnose.DiagnoseParser;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-

-public class Parser

-        implements BindingIds, ParserBasicInformation, TerminalTokens,

-                   CompilerModifiers, OperatorIds, TypeIds {

-

-    protected ProblemReporter  problemReporter;

-    public int                 firstToken;    // handle for multiple parsing goals

-    public int                 lastAct;      //handle for multiple parsing goals

-    protected ReferenceContext referenceContext;

-    public int                 currentToken;

-    private int                synchronizedBlockSourceStart;

-

-    //error recovery management

-    protected int              lastCheckPoint;

-    protected RecoveredElement currentElement;

-    public static boolean      VERBOSE_RECOVERY = false;

-    protected boolean          restartRecovery;

-    protected int              listLength;    // for recovering some incomplete list (interfaces, throws or parameters)

-    protected boolean hasError;

-    protected boolean hasReportedError;

-    public static boolean      fineErrorDiagnose           = true;    //TODO remove the static modifier when new diagnose is ready

-    public boolean             reportSyntaxErrorIsRequired = true;

-    public boolean    reportOnlyOneSyntaxError    = false;

-    protected int     recoveredStaticInitializerStart;

-    protected int     lastIgnoredToken, nextIgnoredToken;

-    protected int     lastErrorEndPosition;

-    protected boolean          ignoreNextOpeningBrace;

-

-    // assert is 1.4 feature only

-    protected long sourceLevel;

-

-    //internal data for the automat 

-    protected final static int StackIncrement = 255;

-    protected int              stateStackTop;

-    protected int[]            stack = new int[StackIncrement];

-

-    //scanner token 

-    public Scanner scanner;

-

-    //ast stack

-    final static int                  AstStackIncrement = 100;

-    protected int                     astPtr;

-    protected AstNode[]               astStack =

-        new AstNode[AstStackIncrement];

-    protected int                     astLengthPtr;

-    protected int[]                   astLengthStack;

-    public CompilationUnitDeclaration compilationUnit;    /*the result from parse()*/

-    AstNode[]                         noAstNodes =

-        new AstNode[AstStackIncrement];

-

-    //expression stack

-    final static int       ExpressionStackIncrement = 100;

-    protected int          expressionPtr;

-    protected Expression[] expressionStack =

-        new Expression[ExpressionStackIncrement];

-    protected int          expressionLengthPtr;

-    protected int[]        expressionLengthStack;

-    Expression[]           noExpressions =

-        new Expression[ExpressionStackIncrement];

-

-    //identifiers stacks 

-    protected int      identifierPtr;

-    protected char[][] identifierStack;

-    protected int      identifierLengthPtr;

-    protected int[]    identifierLengthStack;

-    protected long[]   identifierPositionStack;

-

-    //positions , dimensions , .... (what ever is int) ..... stack

-    protected int   intPtr;

-    protected int[] intStack;

-    protected int   endPosition;    //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-    protected int   endStatementPosition;

-    protected int   lParenPos, rParenPos;    //accurate only when used !

-

-    //modifiers dimensions nestedType etc.......

-    protected boolean optimizeStringLiterals = true;

-    protected int     modifiers;

-    protected int     modifiersSourceStart;

-    protected int     nestedType, dimensions;

-    protected int[]   nestedMethod;          //the ptr is nestedType

-    protected int[]   realBlockStack;

-    protected int     realBlockPtr;

-    protected boolean diet    = false;    //tells the scanner to jump over some parts of the code/expressions like method bodies

-    protected int     dietInt = 0;    // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-    protected int[]   variablesCounter;

-

-    public void foo() {

-

-        byte rhs[] = {

-            0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 5, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3, 1, 3, 1, 2, 1, 1, 1,

-            3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3, 7, 0, 0, 0, 0, 0, 2, 1,

-            1, 1, 2, 2, 4, 4, 5, 4, 4, 2, 1, 2, 3, 3, 1, 3, 3, 1, 3, 1, 4, 0,

-            2, 1, 2, 2, 4, 1, 1, 2, 5, 5, 7, 7, 7, 7, 2, 2, 3, 2, 2, 3, 1, 2,

-            1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1,

-            1, 1, 2, 3, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6,

-            2, 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, 5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3,

-            5, 2, 3, 2, 3, 3, 3, 5, 1, 3, 4, 1, 2, 5, 2, 1, 1, 1, 1, 1, 1, 1,

-            3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 5, 6, 8, 7, 2, 0, 2, 0, 1, 3, 3, 3,

-            3, 4, 3, 4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3, 4, 6, 6, 4, 4, 4, 1, 1,

-            1, 1, 2, 2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 6, 6, 5, 0, 0, 1,

-            3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,

-            3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1,

-            0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 1, 0,

-            1

-        };

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test060/Parser_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test060/Parser_out.js
deleted file mode 100644
index c7447d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test060/Parser_out.js
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.eclipse.wst.jsdt.internal.compiler.parser;

-import java.io.*;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BindingIds;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.parser.diagnose.DiagnoseParser;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-public class Parser

-        implements

-            BindingIds,

-            ParserBasicInformation,

-            TerminalTokens,

-            CompilerModifiers,

-            OperatorIds,

-            TypeIds {

-    protected ProblemReporter problemReporter;

-    public int firstToken; // handle for multiple parsing goals

-    public int lastAct; //handle for multiple parsing goals

-    protected ReferenceContext referenceContext;

-    public int currentToken;

-    private int synchronizedBlockSourceStart;

-    //error recovery management

-    protected int lastCheckPoint;

-    protected RecoveredElement currentElement;

-    public static boolean VERBOSE_RECOVERY = false;

-    protected boolean restartRecovery;

-    protected int listLength; // for recovering some incomplete list (interfaces, throws or parameters)

-    protected boolean hasError;

-    protected boolean hasReportedError;

-    public static boolean fineErrorDiagnose = true; //TODO remove the static modifier when new diagnose is ready

-    public boolean reportSyntaxErrorIsRequired = true;

-    public boolean reportOnlyOneSyntaxError = false;

-    protected int recoveredStaticInitializerStart;

-    protected int lastIgnoredToken, nextIgnoredToken;

-    protected int lastErrorEndPosition;

-    protected boolean ignoreNextOpeningBrace;

-    // assert is 1.4 feature only

-    protected long sourceLevel;

-    //internal data for the automat 

-    protected final static int StackIncrement = 255;

-    protected int stateStackTop;

-    protected int[] stack = new int[StackIncrement];

-    //scanner token 

-    public Scanner scanner;

-    //ast stack

-    final static int AstStackIncrement = 100;

-    protected int astPtr;

-    protected AstNode[] astStack = new AstNode[AstStackIncrement];

-    protected int astLengthPtr;

-    protected int[] astLengthStack;

-    public CompilationUnitDeclaration compilationUnit; /*the result from parse()*/

-    AstNode[] noAstNodes = new AstNode[AstStackIncrement];

-    //expression stack

-    final static int ExpressionStackIncrement = 100;

-    protected int expressionPtr;

-    protected Expression[] expressionStack = new Expression[ExpressionStackIncrement];

-    protected int expressionLengthPtr;

-    protected int[] expressionLengthStack;

-    Expression[] noExpressions = new Expression[ExpressionStackIncrement];

-    //identifiers stacks 

-    protected int identifierPtr;

-    protected char[][] identifierStack;

-    protected int identifierLengthPtr;

-    protected int[] identifierLengthStack;

-    protected long[] identifierPositionStack;

-    //positions , dimensions , .... (what ever is int) ..... stack

-    protected int intPtr;

-    protected int[] intStack;

-    protected int endPosition; //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-    protected int endStatementPosition;

-    protected int lParenPos, rParenPos; //accurate only when used !

-    //modifiers dimensions nestedType etc.......

-    protected boolean optimizeStringLiterals = true;

-    protected int modifiers;

-    protected int modifiersSourceStart;

-    protected int nestedType, dimensions;

-    protected int[] nestedMethod; //the ptr is nestedType

-    protected int[] realBlockStack;

-    protected int realBlockPtr;

-    protected boolean diet = false; //tells the scanner to jump over some parts of the code/expressions like method bodies

-    protected int dietInt = 0; // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-    protected int[] variablesCounter;

-    public void foo() {

-        byte rhs[] = {0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

-                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-                1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1,

-                1, 1, 1, 1, 1, 1, 5, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1,

-                1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3,

-                1, 3, 1, 2, 1, 1, 1, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3,

-                7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 4, 4, 5, 4, 4, 2, 1, 2, 3,

-                3, 1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2, 2, 4, 1, 1, 2, 5, 5, 7, 7,

-                7, 7, 2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1,

-                3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2, 3, 4, 0, 1, 1, 1, 1,

-                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,

-                3, 2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3, 4, 1, 2, 2, 1,

-                2, 3, 2, 5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3, 2, 3, 3, 3,

-                5, 1, 3, 4, 1, 2, 5, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3,

-                3, 3, 1, 1, 5, 6, 8, 7, 2, 0, 2, 0, 1, 3, 3, 3, 3, 4, 3, 4, 1,

-                2, 3, 2, 1, 1, 2, 2, 3, 3, 4, 6, 6, 4, 4, 4, 1, 1, 1, 1, 2, 2,

-                0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 6, 6, 5, 0, 0, 1, 3, 3, 3,

-                1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1,

-                3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-                1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1,

-                0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 1,

-                0, 1};

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test061/Parser_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test061/Parser_in.js
deleted file mode 100644
index 189318a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test061/Parser_in.js
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.eclipse.wst.jsdt.internal.compiler.parser;

-

-

-

-import java.io.*;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BindingIds;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.parser.diagnose.DiagnoseParser;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-

-

-public class Parser

-        implements BindingIds, ParserBasicInformation, TerminalTokens,

-                   CompilerModifiers, OperatorIds, TypeIds {

-

-    protected ProblemReporter  problemReporter;

-    public int                 firstToken;    // handle for multiple parsing goals

-    public int                 lastAct;      //handle for multiple parsing goals

-    protected ReferenceContext referenceContext;

-    public int                 currentToken;

-    private int                synchronizedBlockSourceStart;

-

-    //error recovery management

-    protected int              lastCheckPoint;

-    protected RecoveredElement currentElement;

-    public static boolean      VERBOSE_RECOVERY = false;

-    protected boolean          restartRecovery;

-    protected int              listLength;    // for recovering some incomplete list (interfaces, throws or parameters)

-    protected boolean          hasError;

-    protected boolean          hasReportedError;

-    public static boolean      fineErrorDiagnose           = true;    //TODO remove the static modifier when new diagnose is ready

-    public boolean             reportSyntaxErrorIsRequired = true;

-    public boolean             reportOnlyOneSyntaxError    = false;

-    protected int              recoveredStaticInitializerStart;

-    protected int              lastIgnoredToken, nextIgnoredToken;

-    protected int              lastErrorEndPosition;

-    protected boolean          ignoreNextOpeningBrace;

-

-    // assert is 1.4 feature only

-    protected long sourceLevel;

-

-    //internal data for the automat 

-    protected final static int StackIncrement = 255;

-    protected int              stateStackTop;

-    protected int[]            stack = new int[StackIncrement];

-

-    //scanner token 

-    public Scanner scanner;

-

-    //ast stack

-    final static int                  AstStackIncrement = 100;

-    protected int                     astPtr;

-    protected AstNode[]               astStack =

-        new AstNode[AstStackIncrement];

-    protected int                     astLengthPtr;

-    protected int[]                   astLengthStack;

-    public CompilationUnitDeclaration compilationUnit;    /*the result from parse()*/

-    AstNode[]                         noAstNodes =

-        new AstNode[AstStackIncrement];

-

-    //expression stack

-    final static int       ExpressionStackIncrement = 100;

-    protected int          expressionPtr;

-    protected Expression[] expressionStack =

-        new Expression[ExpressionStackIncrement];

-    protected int          expressionLengthPtr;

-    protected int[]        expressionLengthStack;

-    Expression[]           noExpressions =

-        new Expression[ExpressionStackIncrement];

-

-    //identifiers stacks 

-    protected int      identifierPtr;

-    protected char[][] identifierStack;

-    protected int      identifierLengthPtr;

-    protected int[]    identifierLengthStack;

-    protected long[]   identifierPositionStack;

-

-    //positions , dimensions , .... (what ever is int) ..... stack

-    protected int   intPtr;

-    protected int[] intStack;

-    protected int   endPosition;    //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-    protected int   endStatementPosition;

-    protected int   lParenPos, rParenPos;    //accurate only when used !

-

-    //modifiers dimensions nestedType etc.......

-    protected boolean optimizeStringLiterals = true;

-    protected int     modifiers;

-    protected int     modifiersSourceStart;

-    protected int     nestedType, dimensions;

-    protected int[]   nestedMethod;          //the ptr is nestedType

-    protected int[]   realBlockStack;

-    protected int     realBlockPtr;

-    protected boolean diet    = false;    //tells the scanner to jump over some parts of the code/expressions like method bodies

-    protected int     dietInt = 0;    // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-    protected int[]   variablesCounter;

-

-    public void foo() {

-

-        byte rhs[] = {

-            0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 5, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3, 1, 3, 1, 2, 1, 1, 1,

-            3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3, 7, 0, 0, 0, 0, 0, 2, 1,

-            1, 1, 2, 2, 4, 4, 5, 4, 4, 2, 1, 2, 3, 3, 1, 3, 3, 1, 3, 1, 4, 0,

-            2, 1, 2, 2, 4, 1, 1, 2, 5, 5, 7, 7, 7, 7, 2, 2, 3, 2, 2, 3, 1, 2,

-            1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1,

-            1, 1, 2, 3, 4, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6,

-            2, 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, 5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3,

-            5, 2, 3, 2, 3, 3, 3, 5, 1, 3, 4, 1, 2, 5, 2, 1, 1, 1, 1, 1, 1, 1,

-            3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 5, 6, 8, 7, 2, 0, 2, 0, 1, 3, 3, 3,

-            3, 4, 3, 4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3, 4, 6, 6, 4, 4, 4, 1, 1,

-            1, 1, 2, 2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 6, 6, 5, 0, 0, 1,

-            3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1,

-            3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-            1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1,

-            0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 1, 0,

-            1

-        };

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test061/Parser_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test061/Parser_out.js
deleted file mode 100644
index c33e11f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test061/Parser_out.js
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.eclipse.wst.jsdt.internal.compiler.parser;

-import java.io.*;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-import org.eclipse.wst.jsdt.core.compiler.InvalidInputException;

-import org.eclipse.wst.jsdt.internal.compiler.CompilationResult;

-import org.eclipse.wst.jsdt.internal.compiler.ast.*;

-import org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit;

-import org.eclipse.wst.jsdt.internal.compiler.impl.CompilerOptions;

-import org.eclipse.wst.jsdt.internal.compiler.impl.ReferenceContext;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.BindingIds;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.CompilerModifiers;

-import org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds;

-import org.eclipse.wst.jsdt.internal.compiler.parser.diagnose.DiagnoseParser;

-import org.eclipse.wst.jsdt.internal.compiler.problem.AbortCompilation;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemReporter;

-import org.eclipse.wst.jsdt.internal.compiler.problem.ProblemSeverities;

-import org.eclipse.wst.jsdt.internal.compiler.util.Util;

-public class Parser

-		implements

-			BindingIds,

-			ParserBasicInformation,

-			TerminalTokens,

-			CompilerModifiers,

-			OperatorIds,

-			TypeIds {

-	protected ProblemReporter problemReporter;

-	public int firstToken; // handle for multiple parsing goals

-	public int lastAct; //handle for multiple parsing goals

-	protected ReferenceContext referenceContext;

-	public int currentToken;

-	private int synchronizedBlockSourceStart;

-	//error recovery management

-	protected int lastCheckPoint;

-	protected RecoveredElement currentElement;

-	public static boolean VERBOSE_RECOVERY = false;

-	protected boolean restartRecovery;

-	protected int listLength; // for recovering some incomplete list (interfaces, throws or parameters)

-	protected boolean hasError;

-	protected boolean hasReportedError;

-	public static boolean fineErrorDiagnose = true; //TODO remove the static modifier when new diagnose is ready

-	public boolean reportSyntaxErrorIsRequired = true;

-	public boolean reportOnlyOneSyntaxError = false;

-	protected int recoveredStaticInitializerStart;

-	protected int lastIgnoredToken, nextIgnoredToken;

-	protected int lastErrorEndPosition;

-	protected boolean ignoreNextOpeningBrace;

-	// assert is 1.4 feature only

-	protected long sourceLevel;

-	//internal data for the automat 

-	protected final static int StackIncrement = 255;

-	protected int stateStackTop;

-	protected int[] stack = new int[StackIncrement];

-	//scanner token 

-	public Scanner scanner;

-	//ast stack

-	final static int AstStackIncrement = 100;

-	protected int astPtr;

-	protected AstNode[] astStack = new AstNode[AstStackIncrement];

-	protected int astLengthPtr;

-	protected int[] astLengthStack;

-	public CompilationUnitDeclaration compilationUnit; /*the result from parse()*/

-	AstNode[] noAstNodes = new AstNode[AstStackIncrement];

-	//expression stack

-	final static int ExpressionStackIncrement = 100;

-	protected int expressionPtr;

-	protected Expression[] expressionStack = new Expression[ExpressionStackIncrement];

-	protected int expressionLengthPtr;

-	protected int[] expressionLengthStack;

-	Expression[] noExpressions = new Expression[ExpressionStackIncrement];

-	//identifiers stacks 

-	protected int identifierPtr;

-	protected char[][] identifierStack;

-	protected int identifierLengthPtr;

-	protected int[] identifierLengthStack;

-	protected long[] identifierPositionStack;

-	//positions , dimensions , .... (what ever is int) ..... stack

-	protected int intPtr;

-	protected int[] intStack;

-	protected int endPosition; //accurate only when used ! (the start position is pushed into intStack while the end the current one)

-	protected int endStatementPosition;

-	protected int lParenPos, rParenPos; //accurate only when used !

-	//modifiers dimensions nestedType etc.......

-	protected boolean optimizeStringLiterals = true;

-	protected int modifiers;

-	protected int modifiersSourceStart;

-	protected int nestedType, dimensions;

-	protected int[] nestedMethod; //the ptr is nestedType

-	protected int[] realBlockStack;

-	protected int realBlockPtr;

-	protected boolean diet = false; //tells the scanner to jump over some parts of the code/expressions like method bodies

-	protected int dietInt = 0; // if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]

-	protected int[] variablesCounter;

-	public void foo() {

-		byte rhs[] = {0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-				1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1,

-				1, 1, 1, 1, 1, 1, 5, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 4, 1, 1,

-				1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 1, 3,

-				1, 3, 1, 2, 1, 1, 1, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 4, 1, 3, 3,

-				7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 4, 4, 5, 4, 4, 2, 1, 2, 3,

-				3, 1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2, 2, 4, 1, 1, 2, 5, 5, 7, 7,

-				7, 7, 2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1,

-				3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2, 3, 4, 0, 1, 1, 1, 1,

-				1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,

-				3, 2, 1, 1, 1, 1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3, 4, 1, 2, 2, 1,

-				2, 3, 2, 5, 5, 7, 9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3, 2, 3, 3, 3,

-				5, 1, 3, 4, 1, 2, 5, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3,

-				3, 3, 1, 1, 5, 6, 8, 7, 2, 0, 2, 0, 1, 3, 3, 3, 3, 4, 3, 4, 1,

-				2, 3, 2, 1, 1, 2, 2, 3, 3, 4, 6, 6, 4, 4, 4, 1, 1, 1, 1, 2, 2,

-				0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 6, 6, 5, 0, 0, 1, 3, 3, 3,

-				1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 1,

-				3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

-				1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 1,

-				0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 1,

-				0, 1};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test062/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test062/A_in.js
deleted file mode 100644
index f3b4cdc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test062/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-{   i=4; }System.out.println();j = 5;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test062/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test062/A_out.js
deleted file mode 100644
index 42045fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test062/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-{

-	i= 4;

-}

-System.out.println();

-j= 5;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test063/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test063/A_in.js
deleted file mode 100644
index 2e201b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test063/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test1;

-public class E {

-    public void foo() {goo();System.out.println();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test063/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test063/A_out.js
deleted file mode 100644
index a4d9d35..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test063/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test1;

-public class E {

-	public void foo() {

-		goo();

-		System.out.println();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test064/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test064/A_in.js
deleted file mode 100644
index 3445800..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test064/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test1;

-import java.util.Vector;

-public class E {

-    private int fField1; 

-    private int fField2; 

-    public void foo1() {fField1 = fField2; 

-    }

-    public int foo1(int i) {

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test064/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test064/A_out.js
deleted file mode 100644
index 21ba23e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test064/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test1;

-import java.util.Vector;

-public class E {

-	private int fField1;

-	private int fField2;

-	public void foo1() {

-		fField1 = fField2;

-	}

-	public int foo1(int i) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test065/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test065/A_in.js
deleted file mode 100644
index 86b316c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test065/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class E {

-    private int fField1;private String[] fField2; 

-    public void foo1() {

-		fField2 = new String[] {"first stringssssssssssssssssssssssssssssssssssssssssssssss", //$NON-NLS-1$

-"second string", //$NON-NLS-1$

-"third string", //$NON-NLS-1$

-"fourth string", //$NON-NLS-1$

-"fifth string" //$NON-NLS-1$

-};

-    }

-    public int foo1(int i) {

-		return 0;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test065/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test065/A_out.js
deleted file mode 100644
index b325161..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test065/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class E {

-	private int fField1;

-	private String[] fField2;

-	public void foo1() {

-		fField2 = new String[]{

-				"first stringssssssssssssssssssssssssssssssssssssssssssssss", //$NON-NLS-1$

-				"second string", //$NON-NLS-1$

-				"third string", //$NON-NLS-1$

-				"fourth string", //$NON-NLS-1$

-				"fifth string" //$NON-NLS-1$

-		};

-	}

-	public int foo1(int i) {

-		return 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test066/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test066/A_in.js
deleted file mode 100644
index 7f8615e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test066/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class E {

-    private int fField1;private String[] fField2; 

-    public void foo1() {

-		fField2 = new String[] {"first string",

-"second string", 

-"third string", 

-"fourth string",

-"fifth string"

-};

-    }

-    public int foo1(int i) {

-		return 0;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test066/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test066/A_out.js
deleted file mode 100644
index 63b1208..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test066/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class E {

-	private int fField1;

-	private String[] fField2;

-	public void foo1() {

-		fField2 = new String[]{"first string", "second string", "third string",

-				"fourth string", "fifth string"};

-	}

-	public int foo1(int i) {

-		return 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test067/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test067/A_in.js
deleted file mode 100644
index c914c70..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test067/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class E {

-    private int fField1;private String[] fField2; 

-    public void foo1() {

-		fField2 = new String[] {"first string", //$NON-NLS-1$

-"second string", //$NON-NLS-1$

-"third string", //$NON-NLS-1$

-"fourth string", //$NON-NLS-1$

-"fifth string" //$NON-NLS-1$

-};

-    }

-    public int foo1(int i) {

-		return 0;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test067/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test067/A_out.js
deleted file mode 100644
index 27ad4fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test067/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-public class E {

-	private int fField1;

-	private String[] fField2;

-	public void foo1() {

-		fField2 = new String[]{"first string", //$NON-NLS-1$

-				"second string", //$NON-NLS-1$

-				"third string", //$NON-NLS-1$

-				"fourth string", //$NON-NLS-1$

-				"fifth string" //$NON-NLS-1$

-		};

-	}

-	public int foo1(int i) {

-		return 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test068/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test068/A_in.js
deleted file mode 100644
index 9730b0f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test068/A_in.js
+++ /dev/null
@@ -1,23 +0,0 @@
-public static Compiler getCompiler() {

-	if (compiler == null) {

-		CompilerOptions options = new CompilerOptions();

-		options.handleImportProblemAsError(false);

-

-		compiler = 

-			new Compiler(

-				null, 

-				DefaultErrorHandlingPolicies.proceedWithAllProblems(), 

-				options.getConfigurableOptions(Locale.getDefault()), 

-				new ICompilerRequestor() {

-					private CompilationResult compilationResult; // toto

-					public void acceptResult(CompilationResult compilationResult) {

-						this.compilationResult = compilationResult;

-					}

-					public CompilationResult retrieveCompilationResult() {

-						return compilationResult;

-					}

-				}, 

-				compilerProblemFactory);

-	}

-	return compiler;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test068/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test068/A_out.js
deleted file mode 100644
index 620e8cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test068/A_out.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public static Compiler getCompiler() {

-	if (compiler == null) {

-		CompilerOptions options = new CompilerOptions();

-		options.handleImportProblemAsError(false);

-		compiler = new Compiler(

-				null,

-				DefaultErrorHandlingPolicies.proceedWithAllProblems(),

-				options.getConfigurableOptions(Locale.getDefault()),

-				new ICompilerRequestor() {

-					private CompilationResult compilationResult; // toto

-					public void acceptResult(CompilationResult compilationResult) {

-						this.compilationResult = compilationResult;

-					}

-					public CompilationResult retrieveCompilationResult() {

-						return compilationResult;

-					}

-				},

-				compilerProblemFactory);

-	}

-	return compiler;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test069/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test069/A_in.js
deleted file mode 100644
index fffe303..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test069/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class X {

-	void foo(){}

-	// comment

-

-	void bar(){}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test069/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test069/A_out.js
deleted file mode 100644
index daf8e54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test069/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class X {

-

-	void foo() {

-	}

-

-	// comment

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test070/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test070/A_in.js
deleted file mode 100644
index ddb9f18..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test070/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// Some comment

-int someVar  ;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test070/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test070/A_out.js
deleted file mode 100644
index 0d427fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test070/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// Some comment

-int someVar;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test071/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test071/A_in.js
deleted file mode 100644
index 0c99cf1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test071/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-interface StuffInterface

-{

-Integer  getStuff     (int someValue);

-int   sendStuff    (int otherValues);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test071/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test071/A_out.js
deleted file mode 100644
index 5ca0525..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test071/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-interface StuffInterface

-{

-Integer getStuff(int someValue);

-int sendStuff(int otherValues);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test072/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test072/A_in.js
deleted file mode 100644
index 9a0c597..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test072/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import a.very.longlong.package_.name.which.exceeds.the.format.length;

-

-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test072/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test072/A_out.js
deleted file mode 100644
index 29d6dcf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test072/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import a.very.longlong.package_.name.which.exceeds.the.format.length;

-

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test073/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test073/A_in.js
deleted file mode 100644
index bd8f228..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test073/A_in.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package grant;

-

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.layout.*;

-import org.eclipse.swt.custom.*;

-

-public class FormatterProblem {

-

-public static void main(String args[]) {

-new FormatterProblem().buildGUI();

-}

-

-private void buildGUI() {

-Shell shell = new Shell();

-final Display d = shell.getDisplay();

-shell.setBounds(100, 100, 300, 100);

-shell.setLayout(new GridLayout());

-Composite buttonGroup = new Composite(shell, SWT.BORDER);

-buttonGroup.setLayout(new GridLayout());

-buttonGroup.setLayoutData(new GridData());

-final Button addButton = new Button(buttonGroup, SWT.PUSH);

-addButton.setLayoutData(new GridData());

-SelectionAdapter buttonSelection = new SelectionAdapter() {

-//....

-};

-addButton.addSelectionListener(buttonSelection);

-

-shell.open();

-		

-while (!shell.isDisposed()) {

-if (!d.readAndDispatch())

-d.sleep();

-}

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test073/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test073/A_out.js
deleted file mode 100644
index f1f5930..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test073/A_out.js
+++ /dev/null
@@ -1,31 +0,0 @@
-package grant;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.swt.*;

-import org.eclipse.swt.events.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.layout.*;

-import org.eclipse.swt.custom.*;

-public class FormatterProblem {

-	public static void main(String args[]) {

-		new FormatterProblem().buildGUI();

-	}

-	private void buildGUI() {

-		Shell shell = new Shell();

-		final Display d = shell.getDisplay();

-		shell.setBounds(100, 100, 300, 100);

-		shell.setLayout(new GridLayout());

-		Composite buttonGroup = new Composite(shell, SWT.BORDER);

-		buttonGroup.setLayout(new GridLayout());

-		buttonGroup.setLayoutData(new GridData());

-		final Button addButton = new Button(buttonGroup, SWT.PUSH);

-		addButton.setLayoutData(new GridData());

-		SelectionAdapter buttonSelection = new SelectionAdapter() {

-			//....

-		};

-		addButton.addSelectionListener(buttonSelection);

-		shell.open();

-		while (!shell.isDisposed()) {

-			if (!d.readAndDispatch()) d.sleep();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test074/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test074/A_in.js
deleted file mode 100644
index 7798c23..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test074/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class ttt {

-

-	public static void main() {

-		if (true) if (false) System.out.println("meuh"); /* comment */

-			else System.out.println("coucou");

-		else {System.out.println("bar");}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test074/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test074/A_out.js
deleted file mode 100644
index ded4665..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test074/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class ttt {

-	public static void main() {

-		if (true)

-			if (false)

-				System.out.println("meuh"); /* comment */

-			else

-				System.out.println("coucou");

-		else {

-			System.out.println("bar");

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test075/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test075/A_in.js
deleted file mode 100644
index a6a26fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test075/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/**

- * Some method.

- */

-public void someMethod(String argument1, String argument2,String argument3) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test075/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test075/A_out.js
deleted file mode 100644
index 8c85c5a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test075/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * Some method.

- */

-public void someMethod(	String argument1,

-						String argument2,

-						String argument3) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test076/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test076/A_in.js
deleted file mode 100644
index d24aa50..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test076/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-	Object[][] testData =

-		{ { "3/4/2002", "Foo"}, {

-			"2/4/2002", "Bar"

-		}, {

-			"1/4/2002", "Qux"

-		}

-	};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test076/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test076/A_out.js
deleted file mode 100644
index 79b1b70..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test076/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-Object[][] testData = {

-		{"3/4/2002", "Foo"},

-		{"2/4/2002", "Bar"},

-		{"1/4/2002", "Qux"}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test077/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test077/A_in.js
deleted file mode 100644
index c9a3ad1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test077/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-    public IPropertyDescriptor[] getPropertyDescriptors() {

-        if (getClass().equals(ClassDiagram.class)) {

-            ComboBoxPropertyDescriptor cbd =

-                new ComboBoxPropertyDescriptor(

-                    ID_ROUTER,

-                    OdinMessages.getString("..."), //$NON-NLS-1$

-    new String[] {

-        OdinMessages.getString("..."),

-                OdinMessages.getString("...")

-            });

-            cbd.setLabelProvider(new ConnectionRouterLabelProvider());

-            return new IPropertyDescriptor[] { cbd };

-        }

-        return super.getPropertyDescriptors();

-    }
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test077/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test077/A_out.js
deleted file mode 100644
index 00bd6c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test077/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public IPropertyDescriptor[] getPropertyDescriptors() {

-	if (getClass().equals(ClassDiagram.class)) {

-		ComboBoxPropertyDescriptor cbd = new ComboBoxPropertyDescriptor(

-				ID_ROUTER, OdinMessages.getString("..."), //$NON-NLS-1$

-				new String[]{OdinMessages.getString("..."),

-						OdinMessages.getString("...")});

-		cbd.setLabelProvider(new ConnectionRouterLabelProvider());

-		return new IPropertyDescriptor[]{cbd};

-	}

-	return super.getPropertyDescriptors();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test078/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test078/A_in.js
deleted file mode 100644
index b079b63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test078/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-class Foo {    static {    } }
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test078/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test078/A_out.js
deleted file mode 100644
index ad7ea81..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test078/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Foo

-{

-	static

-	{

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test079/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test079/A_in.js
deleted file mode 100644
index 9697e78..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test079/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-System.out.println(

-           "Server Name: "

-               + serverName_

-               + ", port="

-               + serverPort_

-               + ", numOrbs="

-               + numOrbs_);

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test079/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test079/A_out.js
deleted file mode 100644
index 0e95449..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test079/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-System.out.println("Server Name: " + serverName_ + ", port=" + serverPort_

-		+ ", numOrbs=" + numOrbs_);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test080/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test080/A_in.js
deleted file mode 100644
index 5d1f066..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test080/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-protected void processRequest(long parameter1, long parameter2,long parameter3, long parameter4) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test080/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test080/A_out.js
deleted file mode 100644
index e9127fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test080/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-protected void processRequest(long parameter1, long parameter2,

-		long parameter3, long parameter4) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test081/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test081/A_in.js
deleted file mode 100644
index f869795..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test081/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-String[][] doubleList = {{ "alfa", "beta" },{ "alfa", "beta" },{ "alfa", "beta" },{ "alfa", "beta" },};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test081/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test081/A_out.js
deleted file mode 100644
index eb32370..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test081/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-String[][] doubleList = {

-		{"alfa", "beta"},

-		{"alfa", "beta"},

-		{"alfa", "beta"},

-		{"alfa", "beta"},};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test082/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test082/A_in.js
deleted file mode 100644
index d8cc144..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test082/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-	public void testDivideByZero() {

-

-

-

-		int zero = 0;

-

-

-

-		int result = 8 / zero;

-

-

-

-		int result = 8 / zero;}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test082/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test082/A_out.js
deleted file mode 100644
index a491d83..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test082/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public void testDivideByZero() {

-

-

-	int zero = 0;

-

-

-	int result = 8 / zero;

-

-

-	int result = 8 / zero;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test083/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test083/A_in.js
deleted file mode 100644
index 8976c78..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test083/A_in.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**

- * This is a sample class, to demonstrate the problems

- * with the Eclipse formatter.

- * @author Adalbert Homa

- * @version 1.0

- */

-public class FormatTest2 {

-

-    public void testMethod() {

-        for (int i = 0; i < 10; i++) {

-            // Next line show the problem

-                AccountAccessGroupBean aags = new AccountAccessGroupBean(//

-        "a", // groupId

-        "b", // groupName 

-        "c", // lastModified

-        "d" // modifiedFlag

-    );

-            // The second line is without end of line comments

-            AccountAccessGroupBean b =

-                new AccountAccessGroupBean("a", "b", "c", "d");

-        }

-    }

-

-    private static class AccountAccessGroupBean {

-        AccountAccessGroupBean(String a, String b, String c, String d) {

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test083/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test083/A_out.js
deleted file mode 100644
index 9f6248f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test083/A_out.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**

- * This is a sample class, to demonstrate the problems

- * with the Eclipse formatter.

- * @author Adalbert Homa

- * @version 1.0

- */

-public class FormatTest2 {

-	public void testMethod() {

-		for (int i = 0; i < 10; i++) {

-			// Next line show the problem

-			AccountAccessGroupBean aags = new AccountAccessGroupBean(//

-					"a", // groupId

-					"b", // groupName 

-					"c", // lastModified

-					"d" // modifiedFlag

-			);

-			// The second line is without end of line comments

-			AccountAccessGroupBean b = new AccountAccessGroupBean("a", "b",

-					"c", "d");

-		}

-	}

-	private static class AccountAccessGroupBean {

-		AccountAccessGroupBean(String a, String b, String c, String d) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test084/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test084/A_in.js
deleted file mode 100644
index 3284572..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test084/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-

-    public void testMethod() {

-        for (int i = 0; i < 10; i++) {

-        }

-	    if (true) System.out.println();

-	    while(false) { }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test084/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test084/A_out.js
deleted file mode 100644
index a7a064c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test084/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-	public void testMethod() {

-		for(int i = 0; i < 10; i++) {

-		}

-		if(true) System.out.println();

-		while(false) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test085/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test085/A_in.js
deleted file mode 100644
index 3c38120..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test085/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-

-    public void testMethod() {

-        for(int i = 0; i < 10; i++) {

-        }

-	    if(true) System.out.println();

-	    while(false) { }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test085/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test085/A_out.js
deleted file mode 100644
index 7b8eaf2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test085/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-	public void testMethod() {

-		for (int i = 0; i < 10; i++) {

-		}

-		if (true) System.out.println();

-		while (false) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test086/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test086/A_in.js
deleted file mode 100644
index bfa6524..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test086/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class FormatterProblem

-{

-	public static boolean isZero(int x)

-	{

-		if (x==0) 		{			return true;		} // toto

-		else // here is the comment that the formatter doesn't like 

-			{		return false;		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test086/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test086/A_out.js
deleted file mode 100644
index caf1581..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test086/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-public class FormatterProblem

-{

-	public static boolean isZero(int x)

-	{

-		if (x==0)

-		{

-			return true;

-		} // toto

-		else

-		// here is the comment that the formatter doesn't like 

-		{

-			return false;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test087/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test087/A_in.js
deleted file mode 100644
index 077b0c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test087/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-if (too_big)   return max;

-if (too_small) return min;

-return just_right;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test087/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test087/A_out.js
deleted file mode 100644
index f4a065e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test087/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-if (too_big) return max;

-if (too_small) return min;

-return just_right;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test088/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test088/A_in.js
deleted file mode 100644
index 077b0c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test088/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-if (too_big)   return max;

-if (too_small) return min;

-return just_right;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test088/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test088/A_out.js
deleted file mode 100644
index c740b5a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test088/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-if (too_big)

-	return max;

-if (too_small)

-	return min;

-return just_right;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test089/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test089/A_in.js
deleted file mode 100644
index 4131ae6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test089/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-foo = (9 + 1) * 5;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test089/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test089/A_out.js
deleted file mode 100644
index b7eb806..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test089/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-foo = ( 9 + 1 ) * 5;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test090/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test090/A_in.js
deleted file mode 100644
index 8e014d7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test090/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-foo = array[5];
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test090/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test090/A_out.js
deleted file mode 100644
index f427205..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test090/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-foo = array[ 5 ];
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test091/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test091/A_in.js
deleted file mode 100644
index e55685c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test091/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-int x = 1;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test091/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test091/A_out.js
deleted file mode 100644
index dbefad1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test091/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-int x=1;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test092/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test092/A_in.js
deleted file mode 100644
index e07f1c6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test092/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if ( x == 1 ) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test092/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test092/A_out.js
deleted file mode 100644
index e932008..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test092/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-if (x==1) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test093/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test093/A_in.js
deleted file mode 100644
index ba89104..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test093/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-Element x = (Element)

-object;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test093/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test093/A_out.js
deleted file mode 100644
index d36ba9c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test093/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-Element x = (Element)object;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test094/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test094/A_in.js
deleted file mode 100644
index 8152647..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test094/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-Element x = foo(x, y);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test094/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test094/A_out.js
deleted file mode 100644
index 38dd13e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test094/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-Element x=foo(x,y);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test095/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test095/A_in.js
deleted file mode 100644
index 00652df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test095/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if (foo){bar();}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test095/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test095/A_out.js
deleted file mode 100644
index 325337f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test095/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-if (foo)

-	{

-	bar();

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test096/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test096/A_in.js
deleted file mode 100644
index e30ba6d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test096/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/**

-     * ssdfsd f

-     * sd fsd fd 

-     */

-void foo() {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test096/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test096/A_out.js
deleted file mode 100644
index 9757e08..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test096/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**

- * ssdfsd f

- * sd fsd fd 

- */

-void foo() {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test097/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test097/A_in.js
deleted file mode 100644
index 7dd057a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test097/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-StringBuffer sql = new StringBuffer( ConstTypes.SOME_TYPE ) ;

-sql

-	.append( " WHERE " )

-	.append( ConstAttrs.SOME_ATTR1 )

-	.append( " = '" )

-	.append( someValue1 )

-	.append( "' AND" )

-	.append( ConstAttrs.SOME_ATTR2 )

-	.append( " = '" )

-	.append( someValue2 )

-	.append( "' AND " ) ;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test097/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test097/A_out.js
deleted file mode 100644
index 9e59886..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test097/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-StringBuffer sql = new StringBuffer( ConstTypes.SOME_TYPE );

-sql.append( " WHERE " ).append( ConstAttrs.SOME_ATTR1 ).append( " = '" )

-		.append( someValue1 ).append( "' AND" ).append( ConstAttrs.SOME_ATTR2 )

-		.append( " = '" ).append( someValue2 ).append( "' AND " );
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test098/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test098/A_in.js
deleted file mode 100644
index c22bbde..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test098/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-publishAction = new Action() {	public void run()	{

-		//

-		System.out.println("");

-		// TODO implement;

-		// publishContent();

-	}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test098/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test098/A_out.js
deleted file mode 100644
index d95e2bb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test098/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-publishAction = new Action()

-{

-	public void run()

-	{

-		//

-		System.out.println("");

-		// TODO implement;

-		// publishContent();

-	}

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test099/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test099/A_in.js
deleted file mode 100644
index 426a389..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test099/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-void functionName(int params) {

-	for(;;);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test099/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test099/A_out.js
deleted file mode 100644
index 883a98a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test099/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-void functionName (int params) {

-	for (;;);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test100/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test100/A_in.js
deleted file mode 100644
index b760044..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test100/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class Q {

-

-  public Q() {

-

-    // code formatter formats as expected

-    String a1[] = new String[] {"s"};

-

-    // missing space before end brace

-    String a2[] = new String[] {new String("s")};

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test100/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test100/A_out.js
deleted file mode 100644
index f7f6a2d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test100/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class Q {

-

-	public Q() {

-

-		// code formatter formats as expected

-		String a1[] = new String[] { "s" };

-

-		// missing space before end brace

-		String a2[] = new String[] { new String("s") };

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test101/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test101/A_in.js
deleted file mode 100644
index 607cb66..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test101/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-  public static void main(String[] args) {

-    ActionListener al = new ActionListener() {

-      public void actionPerformed(ActionEvent arg0) {

-        // do something

-      }};}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test101/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test101/A_out.js
deleted file mode 100644
index 8ffb8f3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test101/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-	public static void main(String[] args) {

-		ActionListener al = new ActionListener() {

-			public void actionPerformed(ActionEvent arg0) {

-				// do something

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test102/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test102/A_in.js
deleted file mode 100644
index 1fc7a57..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test102/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	

-	

-	

-	void foo(){}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test102/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test102/A_out.js
deleted file mode 100644
index 58c0b17..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test102/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-

-	void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test103/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test103/A_in.js
deleted file mode 100644
index 41f7914..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test103/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-if ((condition1 && condition2)

-    || (condition3 && condition4)

-    ||!(condition5 && condition6)) {

-    doSomethingAboutIt();

-} 
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test103/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test103/A_out.js
deleted file mode 100644
index f467c45..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test103/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-if ((condition1 && condition2) || (condition3 && condition4)

-		|| !(condition5 && condition6)) {

-	doSomethingAboutIt();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test104/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test104/A_in.js
deleted file mode 100644
index d7e6215..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test104/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if ( foo ){ }else    {    }
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test104/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test104/A_out.js
deleted file mode 100644
index 35b5198..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test104/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-if ( foo )

-	{

-	}

-else

-	{

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test105/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test105/A_in.js
deleted file mode 100644
index 473c0f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test105/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-abstract class Foo {

-	void foo1() {

-	}

-	abstract void foo2() throws Exception;

-	void foo3() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test105/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test105/A_out.js
deleted file mode 100644
index 42ef78e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test105/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-abstract class Foo

-{

-	void foo1()

-	{

-	}

-	abstract void foo2() throws Exception;

-	void foo3()

-	{

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test106/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test106/A_in.js
deleted file mode 100644
index 14e638f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test106/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-for(int i=1;((i<10)&&(i<10));i++){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test106/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test106/A_out.js
deleted file mode 100644
index 0913280..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test106/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-for (int i = 1; ((i < 10) && (i < 10)); i++) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test107/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test107/A_in.js
deleted file mode 100644
index 808d333..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test107/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-if (!lockListener.isUIWaiting())

-	asyncExec(new Runnable() {

-	public void run() {

-		lockListener.doPendingWork();

-	}

-});
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test107/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test107/A_out.js
deleted file mode 100644
index 51d3b83..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test107/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-if (!lockListener.isUIWaiting())

-	asyncExec(new Runnable() {

-		public void run() {

-			lockListener.doPendingWork();

-		}

-	});
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test108/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test108/A_in.js
deleted file mode 100644
index d767c7d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test108/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class A {

-	A(String s) {

-	}

-	protected void foo() {

-			A a = new A("") {//$NON-NLS-1$

-	public void run() {

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test108/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test108/A_out.js
deleted file mode 100644
index af38cba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test108/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class A {

-	A(String s) {

-	}

-	protected void foo() {

-		A a = new A("") {//$NON-NLS-1$

-			public void run() {

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test109/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test109/A_in.js
deleted file mode 100644
index 2768bec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test109/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-package p;

-public class A{}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test109/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test109/A_out.js
deleted file mode 100644
index 84cceae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test109/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-

-

-package p;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test110/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test110/A_in.js
deleted file mode 100644
index 2768bec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test110/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-package p;

-public class A{}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test110/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test110/A_out.js
deleted file mode 100644
index c073c04..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test110/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-

-package p;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test111/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test111/A_in.js
deleted file mode 100644
index cd3c650..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test111/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p;

-public class A{

-public void foo() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test111/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test111/A_out.js
deleted file mode 100644
index ed29094..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test111/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package p;

-

-public class A {

-

-	public void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test112/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test112/A_in.js
deleted file mode 100644
index 468a61d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test112/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p; // comment

-public class A{

-public void foo() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test112/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test112/A_out.js
deleted file mode 100644
index 96f549f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test112/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package p; // comment

-

-public class A {

-

-	public void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test113/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test113/A_in.js
deleted file mode 100644
index eb0a018..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test113/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// test019: use TAB 

-public class A {

-protected synchronized void foo(final java.lang.String s1, long l) throws IOException,Exception{

-foo("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);f("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);fooooooobaaaaaaar("Helloddddddddddddddddddddddddddddddddddddd", 121212121221212121212121);

-}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test113/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test113/A_out.js
deleted file mode 100644
index 3aaa9d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test113/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// test019: use TAB 

-public class A {

-	protected synchronized void foo(final java.lang.String s1, long l)

-			throws IOException, Exception {

-		foo("Helloddddddddddddddddddddddddddddddddddddd",

-			121212121221212121212121);

-		f(	"Helloddddddddddddddddddddddddddddddddddddd",

-			121212121221212121212121);

-		fooooooobaaaaaaar(	"Helloddddddddddddddddddddddddddddddddddddd",

-							121212121221212121212121);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test114/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test114/A_in.js
deleted file mode 100644
index a6a26fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test114/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/**

- * Some method.

- */

-public void someMethod(String argument1, String argument2,String argument3) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test114/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test114/A_out.js
deleted file mode 100644
index 3a0cc3f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test114/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * Some method.

- */

-public void someMethod(String argument1,

-                       String argument2,

-                       String argument3) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test115/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test115/A_in.js
deleted file mode 100644
index 27f3d47..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test115/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/**

- * Some method.

- */

-public void someMhd(String argument1, String argument2,String argument3) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test115/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test115/A_out.js
deleted file mode 100644
index 97cf054..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test115/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * Some method.

- */

-public void someMhd(String argument1,

-					String argument2,

-					String argument3) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test116/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test116/A_in.js
deleted file mode 100644
index 85da16a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test116/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/**

- * Some method.

- */

-public void somehd(String argument1, String argument2,String argument3) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test116/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test116/A_out.js
deleted file mode 100644
index 8d2cd1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test116/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * Some method.

- */

-public void somehd(	String argument1,

-					String argument2,

-					String argument3) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test117/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test117/A_in.js
deleted file mode 100644
index 80d94f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test117/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test1;

-public class A {

-    public void foo() {for(int i= 0; i < 8; i++) {foo();}

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test117/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test117/A_out.js
deleted file mode 100644
index bd36a63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test117/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test1;

-public class A {

-	public void foo() {

-		for (int i = 0; i < 8; i++) {

-			foo();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test118/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test118/A_in.js
deleted file mode 100644
index 17b4c4f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test118/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test1;

-public class A {    public void foo() {        do {            hoo(11);

-        }while (true);

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test118/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test118/A_out.js
deleted file mode 100644
index ada4e11..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test118/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test1;

-public class A {

-	public void foo() {

-		do {

-			hoo(11);

-		} while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test119/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test119/A_in.js
deleted file mode 100644
index 3c2a92f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test119/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-do try {return;} catch (Exception e){}while (true);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test119/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test119/A_out.js
deleted file mode 100644
index fa1c471..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test119/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-do

-	try {

-		return;

-	} catch (Exception e) {

-	}

-while (true);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test120/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test120/A_in.js
deleted file mode 100644
index d6b9f44..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test120/A_in.js
+++ /dev/null
@@ -1,22 +0,0 @@
-package test1;

-public class E {

-    public void foo() {

-        if (i == 0) {

-            System.beep();

-        } else if (true) {

-            return;

-        }

-

-        if (i == 0) {

-            System.beep();

-        }

-        if (i == 0) {

-            System.beep();

-        } else if (true)

-            return;

-

-        if (i == 0) {

-            System.beep();

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test120/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test120/A_out.js
deleted file mode 100644
index 589ce9d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test120/A_out.js
+++ /dev/null
@@ -1,20 +0,0 @@
-package test1;

-public class E {

-	public void foo() {

-		if (i == 0) {

-			System.beep();

-		} else if (true) {

-			return;

-		}

-		if (i == 0) {

-			System.beep();

-		}

-		if (i == 0) {

-			System.beep();

-		} else if (true)

-			return;

-		if (i == 0) {

-			System.beep();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test121/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test121/A_in.js
deleted file mode 100644
index 8cfb20b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test121/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-        if (i == 0) {

-            System.beep();

-        } else if (true) {return;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test121/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test121/A_out.js
deleted file mode 100644
index a320337..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test121/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-if (i == 0) {

-	System.beep();

-} else if (true) {

-	return;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test122/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test122/A_in.js
deleted file mode 100644
index 8cfb20b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test122/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-        if (i == 0) {

-            System.beep();

-        } else if (true) {return;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test122/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test122/A_out.js
deleted file mode 100644
index a320337..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test122/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-if (i == 0) {

-	System.beep();

-} else if (true) {

-	return;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test123/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test123/A_in.js
deleted file mode 100644
index 80d94f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test123/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test1;

-public class A {

-    public void foo() {for(int i= 0; i < 8; i++) {foo();}

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test123/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test123/A_out.js
deleted file mode 100644
index bd36a63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test123/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test1;

-public class A {

-	public void foo() {

-		for (int i = 0; i < 8; i++) {

-			foo();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test124/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test124/A_in.js
deleted file mode 100644
index 27f3d47..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test124/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/**

- * Some method.

- */

-public void someMhd(String argument1, String argument2,String argument3) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test124/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test124/A_out.js
deleted file mode 100644
index 97cf054..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test124/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * Some method.

- */

-public void someMhd(String argument1,

-					String argument2,

-					String argument3) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test125/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test125/A_in.js
deleted file mode 100644
index 9532e2d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test125/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-3- -3
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test125/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test125/A_out.js
deleted file mode 100644
index 319b745..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test125/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-3 - -3
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test126/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test126/A_in.js
deleted file mode 100644
index 80d94f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test126/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test1;

-public class A {

-    public void foo() {for(int i= 0; i < 8; i++) {foo();}

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test126/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test126/A_out.js
deleted file mode 100644
index bd36a63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test126/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test1;

-public class A {

-	public void foo() {

-		for (int i = 0; i < 8; i++) {

-			foo();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test127/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test127/A_in.js
deleted file mode 100644
index 47a5ec4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test127/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-pckage test1;

-public class A {

-    public void foo() {for(int i= 0; i < 8; i++) {foo();}

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test127/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test127/A_out.js
deleted file mode 100644
index f1d638b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test127/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-pckage test1;

-public class A {

-	public void foo() {

-		for (int i = 0; i < 8; i++) {

-			foo();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test128/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test128/A_in.js
deleted file mode 100644
index b33698e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test128/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-pckage test1;

-public cass A {

-    public void foo() {for(int i= 0; i < 8; i++) {foo();}

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test128/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test128/A_out.js
deleted file mode 100644
index b33698e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test128/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-pckage test1;

-public cass A {

-    public void foo() {for(int i= 0; i < 8; i++) {foo();}

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test129/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test129/A_in.js
deleted file mode 100644
index 214ba4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test129/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-String qualifiedPackageName = qualifiedTypeName.length() == typeName.length

-				? "" //$NON-NLS-1$

-				: qualifiedBinaryFileName.substring(0,

-						qualifiedTypeName.length() - typeName.length - 1);

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test129/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test129/A_out.js
deleted file mode 100644
index 88db9db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test129/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-String qualifiedPackageName = qualifiedTypeName.length() == typeName.length

-		? "" //$NON-NLS-1$

-		: qualifiedBinaryFileName.substring(0, qualifiedTypeName.length()

-				- typeName.length - 1);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test130/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test130/A_in.js
deleted file mode 100644
index 94b6323..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test130/A_in.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**

- * Test

- *

- */

-package /* test2 */ p1.p2./* */test;

-

-import java.io.Serializable;

-import java.io.IOException;

-

-/**

- * Class javadoc comment

- */

-/* */ class A extends java.lang.Object implements Runnable, Cloneable, Serializable {

-	public void run() {

-	}

-	

-	public static void foo() throws IOException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test130/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test130/A_out.js
deleted file mode 100644
index fb32693..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test130/A_out.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**

- * Test

- *

- */

-package /* test2 */p1.p2./* */test;

-import java.io.Serializable;

-import java.io.IOException;

-/**

- * Class javadoc comment

- */

-/* */class A extends java.lang.Object

-		implements

-			Runnable,

-			Cloneable,

-			Serializable {

-	public void run() {

-	}

-	public static void foo() throws IOException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test131/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test131/A_in.js
deleted file mode 100644
index e2a8aa2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test131/A_in.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/**

- * Test

- *

- */

-package /* test2 */ p1.p2./* */test;

-

-import java.io.Serializable;

-import java.io.IOException;

-

-/* */ class A extends java.lang.Object implements Runnable, Cloneable, Serializable {

-	public void run() {

-	}

-	

-	public static void foo() throws IOException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test131/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test131/A_out.js
deleted file mode 100644
index 12f2833..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test131/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**

- * Test

- *

- */

-package /* test2 */p1.p2./* */test;

-import java.io.Serializable;

-import java.io.IOException;

-/* */class A extends java.lang.Object

-		implements

-			Runnable,

-			Cloneable,

-			Serializable {

-	public void run() {

-	}

-	public static void foo() throws IOException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test132/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test132/A_in.js
deleted file mode 100644
index 70ac816..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test132/A_in.js
+++ /dev/null
@@ -1,94 +0,0 @@
-	public AssistOptions(Map settings) {

-		if (settings == null)

-			return;

-		// filter options which are related to the assist component

-		Iterator entries = settings.entrySet().iterator();

-		while (entries.hasNext()) {

-			Map.Entry entry = (Map.Entry) entries.next();

-			if (!(entry.getKey() instanceof String))

-				continue;

-			if (!(entry.getValue() instanceof String))

-				continue;

-			String optionID = (String) entry.getKey();

-			String optionValue = (String) entry.getValue();

-			if (optionID.equals(OPTION_PerformVisibilityCheck)) {

-				if (optionValue.equals(ENABLED)) {

-					this.checkVisibility = true;

-				} else if (optionValue.equals(DISABLED)) {

-					this.checkVisibility = false;

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ForceImplicitQualification)) {

-				if (optionValue.equals(ENABLED)) {

-					this.forceImplicitQualification = true;

-				} else if (optionValue.equals(DISABLED)) {

-					this.forceImplicitQualification = false;

-				}

-				continue;

-			} else if (optionID.equals(OPTION_FieldPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.fieldPrefixes = null;

-				} else {

-					this.fieldPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_StaticFieldPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.staticFieldPrefixes = null;

-				} else {

-					this.staticFieldPrefixes = CharOperation.splitAndTrimOn(

-							',', optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_LocalPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.localPrefixes = null;

-				} else {

-					this.localPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ArgumentPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.argumentPrefixes = null;

-				} else {

-					this.argumentPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_FieldSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.fieldSuffixes = null;

-				} else {

-					this.fieldSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_StaticFieldSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.staticFieldSuffixes = null;

-				} else {

-					this.staticFieldSuffixes = CharOperation.splitAndTrimOn(

-							',', optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_LocalSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.localSuffixes = null;

-				} else {

-					this.localSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ArgumentSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.argumentSuffixes = null;

-				} else {

-					this.argumentSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			}

-		}

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test132/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test132/A_out.js
deleted file mode 100644
index 10351a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test132/A_out.js
+++ /dev/null
@@ -1,94 +0,0 @@
-public AssistOptions(Map settings) {

-	if (settings == null)

-		return;

-	// filter options which are related to the assist component

-	Iterator entries = settings.entrySet().iterator();

-	while (entries.hasNext()) {

-		Map.Entry entry = (Map.Entry) entries.next();

-		if (!(entry.getKey() instanceof String))

-			continue;

-		if (!(entry.getValue() instanceof String))

-			continue;

-		String optionID = (String) entry.getKey();

-		String optionValue = (String) entry.getValue();

-		if (optionID.equals(OPTION_PerformVisibilityCheck)) {

-			if (optionValue.equals(ENABLED)) {

-				this.checkVisibility = true;

-			} else if (optionValue.equals(DISABLED)) {

-				this.checkVisibility = false;

-			}

-			continue;

-		} else if (optionID.equals(OPTION_ForceImplicitQualification)) {

-			if (optionValue.equals(ENABLED)) {

-				this.forceImplicitQualification = true;

-			} else if (optionValue.equals(DISABLED)) {

-				this.forceImplicitQualification = false;

-			}

-			continue;

-		} else if (optionID.equals(OPTION_FieldPrefixes)) {

-			if (optionValue.length() == 0) {

-				this.fieldPrefixes = null;

-			} else {

-				this.fieldPrefixes = CharOperation.splitAndTrimOn(',',

-						optionValue.toCharArray());

-			}

-			continue;

-		} else if (optionID.equals(OPTION_StaticFieldPrefixes)) {

-			if (optionValue.length() == 0) {

-				this.staticFieldPrefixes = null;

-			} else {

-				this.staticFieldPrefixes = CharOperation.splitAndTrimOn(',',

-						optionValue.toCharArray());

-			}

-			continue;

-		} else if (optionID.equals(OPTION_LocalPrefixes)) {

-			if (optionValue.length() == 0) {

-				this.localPrefixes = null;

-			} else {

-				this.localPrefixes = CharOperation.splitAndTrimOn(',',

-						optionValue.toCharArray());

-			}

-			continue;

-		} else if (optionID.equals(OPTION_ArgumentPrefixes)) {

-			if (optionValue.length() == 0) {

-				this.argumentPrefixes = null;

-			} else {

-				this.argumentPrefixes = CharOperation.splitAndTrimOn(',',

-						optionValue.toCharArray());

-			}

-			continue;

-		} else if (optionID.equals(OPTION_FieldSuffixes)) {

-			if (optionValue.length() == 0) {

-				this.fieldSuffixes = null;

-			} else {

-				this.fieldSuffixes = CharOperation.splitAndTrimOn(',',

-						optionValue.toCharArray());

-			}

-			continue;

-		} else if (optionID.equals(OPTION_StaticFieldSuffixes)) {

-			if (optionValue.length() == 0) {

-				this.staticFieldSuffixes = null;

-			} else {

-				this.staticFieldSuffixes = CharOperation.splitAndTrimOn(',',

-						optionValue.toCharArray());

-			}

-			continue;

-		} else if (optionID.equals(OPTION_LocalSuffixes)) {

-			if (optionValue.length() == 0) {

-				this.localSuffixes = null;

-			} else {

-				this.localSuffixes = CharOperation.splitAndTrimOn(',',

-						optionValue.toCharArray());

-			}

-			continue;

-		} else if (optionID.equals(OPTION_ArgumentSuffixes)) {

-			if (optionValue.length() == 0) {

-				this.argumentSuffixes = null;

-			} else {

-				this.argumentSuffixes = CharOperation.splitAndTrimOn(',',

-						optionValue.toCharArray());

-			}

-			continue;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test133/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test133/A_in.js
deleted file mode 100644
index d63b862..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test133/A_in.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.codeassist.impl;

-

-import java.util.Iterator;

-import java.util.Map;

-

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-

-public class AssistOptions {

-	/**

-	 * Option IDs

-	 */

-	public static final String OPTION_PerformVisibilityCheck =

-		"org.eclipse.wst.jsdt.core.codeComplete.visibilityCheck"; 	//$NON-NLS-1$

-	public static final String OPTION_ForceImplicitQualification =

-		"org.eclipse.wst.jsdt.core.codeComplete.forceImplicitQualification"; 	//$NON-NLS-1$

-	public static final String OPTION_FieldPrefixes =

-		"org.eclipse.wst.jsdt.core.codeComplete.fieldPrefixes"; 	//$NON-NLS-1$

-	public static final String OPTION_StaticFieldPrefixes =

-		"org.eclipse.wst.jsdt.core.codeComplete.staticFieldPrefixes"; 	//$NON-NLS-1$

-	public static final String OPTION_LocalPrefixes =

-		"org.eclipse.wst.jsdt.core.codeComplete.localPrefixes"; 	//$NON-NLS-1$

-	public static final String OPTION_ArgumentPrefixes =

-		"org.eclipse.wst.jsdt.core.codeComplete.argumentPrefixes"; 	//$NON-NLS-1$

-	public static final String OPTION_FieldSuffixes =

-		"org.eclipse.wst.jsdt.core.codeComplete.fieldSuffixes"; 	//$NON-NLS-1$

-	public static final String OPTION_StaticFieldSuffixes =

-		"org.eclipse.wst.jsdt.core.codeComplete.staticFieldSuffixes"; 	//$NON-NLS-1$

-	public static final String OPTION_LocalSuffixes =

-		"org.eclipse.wst.jsdt.core.codeComplete.localSuffixes"; 	//$NON-NLS-1$

-	public static final String OPTION_ArgumentSuffixes =

-		"org.eclipse.wst.jsdt.core.codeComplete.argumentSuffixes"; 	//$NON-NLS-1$

-	public static final String ENABLED = "enabled"; //$NON-NLS-1$

-	public static final String DISABLED = "disabled"; //$NON-NLS-1$

-

-	public boolean checkVisibility = false;

-	public boolean forceImplicitQualification = false;

-	public char[][] fieldPrefixes = null;

-	public char[][] staticFieldPrefixes = null;

-	public char[][] localPrefixes = null;

-	public char[][] argumentPrefixes = null;

-	public char[][] fieldSuffixes = null;

-	public char[][] staticFieldSuffixes = null;

-	public char[][] localSuffixes = null;

-	public char[][] argumentSuffixes = null;

-

-	/** 

-	 * Initializing the assist options with default settings

-	 */

-	public AssistOptions() {

-		// Initializing the assist options with default settings

-	}

-

-	/** 

-	 * Initializing the assist options with external settings

-	 */

-	public AssistOptions(Map settings) {

-		if (settings == null)

-			return;

-

-		// filter options which are related to the assist component

-		Iterator entries = settings.entrySet().iterator();

-		while (entries.hasNext()) {

-			Map.Entry entry = (Map.Entry)entries.next();

-			if (!(entry.getKey() instanceof String))

-				continue;

-			if (!(entry.getValue() instanceof String))

-				continue;

-			String optionID = (String) entry.getKey();

-			String optionValue = (String) entry.getValue();

-

-			if (optionID.equals(OPTION_PerformVisibilityCheck)) {

-				if (optionValue.equals(ENABLED)) {

-					this.checkVisibility = true;

-				} else

-					if (optionValue.equals(DISABLED)) {

-						this.checkVisibility = false;

-					}

-				continue;

-			} else if (optionID.equals(OPTION_ForceImplicitQualification)) {

-				if (optionValue.equals(ENABLED)) {

-					this.forceImplicitQualification = true;

-				} else

-					if (optionValue.equals(DISABLED)) {

-						this.forceImplicitQualification = false;

-					}

-				continue;

-			} else if(optionID.equals(OPTION_FieldPrefixes)){

-				if (optionValue.length() == 0) {

-					this.fieldPrefixes = null;

-				} else {

-					this.fieldPrefixes = CharOperation.splitAndTrimOn(',', optionValue.toCharArray());

-				}

-				continue;

-			} else if(optionID.equals(OPTION_StaticFieldPrefixes)){

-				if (optionValue.length() == 0) {

-					this.staticFieldPrefixes = null;

-				} else {

-					this.staticFieldPrefixes = CharOperation.splitAndTrimOn(',', optionValue.toCharArray());

-				}

-				continue;

-			} else if(optionID.equals(OPTION_LocalPrefixes)){

-				if (optionValue.length() == 0) {

-					this.localPrefixes = null;

-				} else {

-					this.localPrefixes = CharOperation.splitAndTrimOn(',', optionValue.toCharArray());

-				}

-				continue;

-			} else if(optionID.equals(OPTION_ArgumentPrefixes)){

-				if (optionValue.length() == 0) {

-					this.argumentPrefixes = null;

-				} else {

-					this.argumentPrefixes = CharOperation.splitAndTrimOn(',', optionValue.toCharArray());

-				}

-				continue;

-			} else if(optionID.equals(OPTION_FieldSuffixes)){

-				if (optionValue.length() == 0) {

-					this.fieldSuffixes = null;

-				} else {

-					this.fieldSuffixes = CharOperation.splitAndTrimOn(',', optionValue.toCharArray());

-				}

-				continue;

-			} else if(optionID.equals(OPTION_StaticFieldSuffixes)){

-				if (optionValue.length() == 0) {

-					this.staticFieldSuffixes = null;

-				} else {

-					this.staticFieldSuffixes = CharOperation.splitAndTrimOn(',', optionValue.toCharArray());

-				}

-				continue;

-			} else if(optionID.equals(OPTION_LocalSuffixes)){

-				if (optionValue.length() == 0) {

-					this.localSuffixes = null;

-				} else {

-					this.localSuffixes = CharOperation.splitAndTrimOn(',', optionValue.toCharArray());

-				}

-				continue;

-			} else if(optionID.equals(OPTION_ArgumentSuffixes)){

-				if (optionValue.length() == 0) {

-					this.argumentSuffixes = null;

-				} else {

-					this.argumentSuffixes = CharOperation.splitAndTrimOn(',', optionValue.toCharArray());

-				}

-				continue;

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test133/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test133/A_out.js
deleted file mode 100644
index c2c130b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test133/A_out.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.codeassist.impl;

-import java.util.Iterator;

-import java.util.Map;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-public class AssistOptions {

-	/**

-	 * Option IDs

-	 */

-	public static final String OPTION_PerformVisibilityCheck = "org.eclipse.wst.jsdt.core.codeComplete.visibilityCheck"; //$NON-NLS-1$

-	public static final String OPTION_ForceImplicitQualification = "org.eclipse.wst.jsdt.core.codeComplete.forceImplicitQualification"; //$NON-NLS-1$

-	public static final String OPTION_FieldPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.fieldPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_StaticFieldPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.staticFieldPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_LocalPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.localPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_ArgumentPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.argumentPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_FieldSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.fieldSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_StaticFieldSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.staticFieldSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_LocalSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.localSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_ArgumentSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.argumentSuffixes"; //$NON-NLS-1$

-	public static final String ENABLED = "enabled"; //$NON-NLS-1$

-	public static final String DISABLED = "disabled"; //$NON-NLS-1$

-	public boolean checkVisibility = false;

-	public boolean forceImplicitQualification = false;

-	public char[][] fieldPrefixes = null;

-	public char[][] staticFieldPrefixes = null;

-	public char[][] localPrefixes = null;

-	public char[][] argumentPrefixes = null;

-	public char[][] fieldSuffixes = null;

-	public char[][] staticFieldSuffixes = null;

-	public char[][] localSuffixes = null;

-	public char[][] argumentSuffixes = null;

-	/** 

-	 * Initializing the assist options with default settings

-	 */

-	public AssistOptions() {

-		// Initializing the assist options with default settings

-	}

-	/** 

-	 * Initializing the assist options with external settings

-	 */

-	public AssistOptions(Map settings) {

-		if (settings == null)

-			return;

-		// filter options which are related to the assist component

-		Iterator entries = settings.entrySet().iterator();

-		while (entries.hasNext()) {

-			Map.Entry entry = (Map.Entry) entries.next();

-			if (!(entry.getKey() instanceof String))

-				continue;

-			if (!(entry.getValue() instanceof String))

-				continue;

-			String optionID = (String) entry.getKey();

-			String optionValue = (String) entry.getValue();

-			if (optionID.equals(OPTION_PerformVisibilityCheck)) {

-				if (optionValue.equals(ENABLED)) {

-					this.checkVisibility = true;

-				} else if (optionValue.equals(DISABLED)) {

-					this.checkVisibility = false;

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ForceImplicitQualification)) {

-				if (optionValue.equals(ENABLED)) {

-					this.forceImplicitQualification = true;

-				} else if (optionValue.equals(DISABLED)) {

-					this.forceImplicitQualification = false;

-				}

-				continue;

-			} else if (optionID.equals(OPTION_FieldPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.fieldPrefixes = null;

-				} else {

-					this.fieldPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_StaticFieldPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.staticFieldPrefixes = null;

-				} else {

-					this.staticFieldPrefixes = CharOperation.splitAndTrimOn(

-							',', optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_LocalPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.localPrefixes = null;

-				} else {

-					this.localPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ArgumentPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.argumentPrefixes = null;

-				} else {

-					this.argumentPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_FieldSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.fieldSuffixes = null;

-				} else {

-					this.fieldSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_StaticFieldSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.staticFieldSuffixes = null;

-				} else {

-					this.staticFieldSuffixes = CharOperation.splitAndTrimOn(

-							',', optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_LocalSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.localSuffixes = null;

-				} else {

-					this.localSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ArgumentSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.argumentSuffixes = null;

-				} else {

-					this.argumentSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test134/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test134/A_in.js
deleted file mode 100644
index f666461..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test134/A_in.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.codeassist.impl;

-import java.util.Iterator;

-import java.util.Map;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-public class AssistOptions {

-	/**

-	 * Option IDs

-	 */

-	public static final String OPTION_PerformVisibilityCheck = "org.eclipse.wst.jsdt.core.codeComplete.visibilityCheck"; //$NON-NLS-1$

-	public static final String OPTION_ForceImplicitQualification = "org.eclipse.wst.jsdt.core.codeComplete.forceImplicitQualification"; //$NON-NLS-1$

-	public static final String OPTION_FieldPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.fieldPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_StaticFieldPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.staticFieldPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_LocalPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.localPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_ArgumentPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.argumentPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_FieldSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.fieldSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_StaticFieldSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.staticFieldSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_LocalSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.localSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_ArgumentSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.argumentSuffixes"; //$NON-NLS-1$

-	public static final String ENABLED = "enabled"; //$NON-NLS-1$

-	public static final String DISABLED = "disabled"; //$NON-NLS-1$

-	public boolean checkVisibility = false;

-	public boolean forceImplicitQualification = false;

-	public char[][] fieldPrefixes = null;

-	public char[][] staticFieldPrefixes = null;

-	public char[][] localPrefixes = null;

-	public char[][] argumentPrefixes = null;

-	public char[][] fieldSuffixes = null;

-	public char[][] staticFieldSuffixes = null;

-	public char[][] localSuffixes = null;

-	public char[][] argumentSuffixes = null;

-	/** 

-	 * Initializing the assist options with default settings

-	 */

-	public AssistOptions() {

-		// Initializing the assist options with default settings

-	}

-	/** 

-	 * Initializing the assist options with external settings

-	 */

-	public AssistOptions(Map settings) {

-		if (settings == null)

-			return;

-		// filter options which are related to the assist component

-		Iterator entries = settings.entrySet().iterator();

-		while (entries.hasNext()) {

-			Map.Entry entry = (Map.Entry) entries.next();

-			if (!(entry.getKey() instanceof String))

-				continue;

-			if (!(entry.getValue() instanceof String))

-				continue;

-			String optionID = (String) entry.getKey();

-			String optionValue = (String) entry.getValue();

-			if (optionID.equals(OPTION_PerformVisibilityCheck)) {

-				if (optionValue.equals(ENABLED)) {

-					this.checkVisibility = true;

-				} else if (optionValue.equals(DISABLED)) {

-					this.checkVisibility = false;

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ForceImplicitQualification)) {

-				if (optionValue.equals(ENABLED)) {

-					this.forceImplicitQualification = true;

-				} else if (optionValue.equals(DISABLED)) {

-					this.forceImplicitQualification = false;

-				}

-				continue;

-			} else if (optionID.equals(OPTION_FieldPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.fieldPrefixes = null;

-				} else {

-					this.fieldPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_StaticFieldPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.staticFieldPrefixes = null;

-				} else {

-					this.staticFieldPrefixes = CharOperation.splitAndTrimOn(

-							',', optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_LocalPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.localPrefixes = null;

-				} else {

-					this.localPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ArgumentPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.argumentPrefixes = null;

-				} else {

-					this.argumentPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_FieldSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.fieldSuffixes = null;

-				} else {

-					this.fieldSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_StaticFieldSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.staticFieldSuffixes = null;

-				} else {

-					this.staticFieldSuffixes = CharOperation.splitAndTrimOn(

-							',', optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_LocalSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.localSuffixes = null;

-				} else {

-					this.localSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ArgumentSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.argumentSuffixes = null;

-				} else {

-					this.argumentSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;}}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test134/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test134/A_out.js
deleted file mode 100644
index c2c130b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test134/A_out.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.internal.codeassist.impl;

-import java.util.Iterator;

-import java.util.Map;

-import org.eclipse.wst.jsdt.core.compiler.CharOperation;

-public class AssistOptions {

-	/**

-	 * Option IDs

-	 */

-	public static final String OPTION_PerformVisibilityCheck = "org.eclipse.wst.jsdt.core.codeComplete.visibilityCheck"; //$NON-NLS-1$

-	public static final String OPTION_ForceImplicitQualification = "org.eclipse.wst.jsdt.core.codeComplete.forceImplicitQualification"; //$NON-NLS-1$

-	public static final String OPTION_FieldPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.fieldPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_StaticFieldPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.staticFieldPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_LocalPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.localPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_ArgumentPrefixes = "org.eclipse.wst.jsdt.core.codeComplete.argumentPrefixes"; //$NON-NLS-1$

-	public static final String OPTION_FieldSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.fieldSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_StaticFieldSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.staticFieldSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_LocalSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.localSuffixes"; //$NON-NLS-1$

-	public static final String OPTION_ArgumentSuffixes = "org.eclipse.wst.jsdt.core.codeComplete.argumentSuffixes"; //$NON-NLS-1$

-	public static final String ENABLED = "enabled"; //$NON-NLS-1$

-	public static final String DISABLED = "disabled"; //$NON-NLS-1$

-	public boolean checkVisibility = false;

-	public boolean forceImplicitQualification = false;

-	public char[][] fieldPrefixes = null;

-	public char[][] staticFieldPrefixes = null;

-	public char[][] localPrefixes = null;

-	public char[][] argumentPrefixes = null;

-	public char[][] fieldSuffixes = null;

-	public char[][] staticFieldSuffixes = null;

-	public char[][] localSuffixes = null;

-	public char[][] argumentSuffixes = null;

-	/** 

-	 * Initializing the assist options with default settings

-	 */

-	public AssistOptions() {

-		// Initializing the assist options with default settings

-	}

-	/** 

-	 * Initializing the assist options with external settings

-	 */

-	public AssistOptions(Map settings) {

-		if (settings == null)

-			return;

-		// filter options which are related to the assist component

-		Iterator entries = settings.entrySet().iterator();

-		while (entries.hasNext()) {

-			Map.Entry entry = (Map.Entry) entries.next();

-			if (!(entry.getKey() instanceof String))

-				continue;

-			if (!(entry.getValue() instanceof String))

-				continue;

-			String optionID = (String) entry.getKey();

-			String optionValue = (String) entry.getValue();

-			if (optionID.equals(OPTION_PerformVisibilityCheck)) {

-				if (optionValue.equals(ENABLED)) {

-					this.checkVisibility = true;

-				} else if (optionValue.equals(DISABLED)) {

-					this.checkVisibility = false;

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ForceImplicitQualification)) {

-				if (optionValue.equals(ENABLED)) {

-					this.forceImplicitQualification = true;

-				} else if (optionValue.equals(DISABLED)) {

-					this.forceImplicitQualification = false;

-				}

-				continue;

-			} else if (optionID.equals(OPTION_FieldPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.fieldPrefixes = null;

-				} else {

-					this.fieldPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_StaticFieldPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.staticFieldPrefixes = null;

-				} else {

-					this.staticFieldPrefixes = CharOperation.splitAndTrimOn(

-							',', optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_LocalPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.localPrefixes = null;

-				} else {

-					this.localPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ArgumentPrefixes)) {

-				if (optionValue.length() == 0) {

-					this.argumentPrefixes = null;

-				} else {

-					this.argumentPrefixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_FieldSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.fieldSuffixes = null;

-				} else {

-					this.fieldSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_StaticFieldSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.staticFieldSuffixes = null;

-				} else {

-					this.staticFieldSuffixes = CharOperation.splitAndTrimOn(

-							',', optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_LocalSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.localSuffixes = null;

-				} else {

-					this.localSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			} else if (optionID.equals(OPTION_ArgumentSuffixes)) {

-				if (optionValue.length() == 0) {

-					this.argumentSuffixes = null;

-				} else {

-					this.argumentSuffixes = CharOperation.splitAndTrimOn(',',

-							optionValue.toCharArray());

-				}

-				continue;

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test135/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test135/A_in.js
deleted file mode 100644
index b7bca36..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test135/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-cancel.addActionListener(new ActionListener() {

-public void actionPerformed(ActionEvent e) {

-CancelPressed(); }

-}

-);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test135/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test135/A_out.js
deleted file mode 100644
index 8832191..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test135/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-cancel.addActionListener(new ActionListener()

-{

-	public void actionPerformed(ActionEvent e)

-	{

-		CancelPressed();

-	}

-});
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test136/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test136/A_in.js
deleted file mode 100644
index 4d41ca9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test136/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-	public TypeBinding getOtherFieldBindings(BlockScope scope) {

-		while (true) {

-			if (isFieldUseDeprecated(fieldBinding, scope, 					(this.bits & IsStrictlyAssignedMASK) != 0

-							&& indexOfFirstFieldBinding == length));

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test136/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test136/A_out.js
deleted file mode 100644
index 7229368..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test136/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class A {

-	public TypeBinding getOtherFieldBindings(BlockScope scope) {

-		while (true) {

-			if (isFieldUseDeprecated(fieldBinding, scope,

-					(this.bits & IsStrictlyAssignedMASK) != 0

-							&& indexOfFirstFieldBinding == length))

-				;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test137/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test137/A_in.js
deleted file mode 100644
index b311304..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test137/A_in.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.wst.jsdt.core.dom;

-

-/**

- * Abstract base class of all type AST node types. A type node represents a 

- * reference to a primitive type (including void), to a named class or 

- * interface type, or to an array type.

- * <p>

- * <pre>

- * Type:

- *    PrimitiveType

- *    SimpleType

- *    ArrayType

- * PrimitiveType:

- *    <b>byte</b>

- *    <b>short</b>

- *    <b>char</b>

- *    <b>int</b>

- *    <b>long</b>

- *    <b>float</b>

- *    <b>double</b>

- *    <b>boolean</b>

- *    <b>void</b>

- * SimpleType:

- *    TypeName

- * ArrayType:

- *    Type <b>[</b> <b>]</b>

- * </pre>

- * </p>

- * 

- * @since 2.0

- */

-public abstract class Type extends ASTNode {

-	

-	/**

-	 * Creates a new AST node for a type owned by the given AST.

-	 * <p>

-	 * N.B. This constructor is package-private.

-	 * </p>

-	 * 

-	 * @param ast the AST that is to own this node

-	 */

-	Type(AST ast) {

-		super(ast);

-	}

-	

-	/**

-	 * Returns whether this type is a primitive type

-	 * (<code>PrimitiveType</code>). 

-	 * 

-	 * @return <code>true</code> if this is a primitive type, and 

-	 *    <code>false</code> otherwise

-	 */

-	public final boolean isPrimitiveType() {

-		return (this instanceof PrimitiveType);

-	}

-

-	/**

-	 * Returns whether this type is a simple type 

-	 * (<code>SimpleType</code>).

-	 * 

-	 * @return <code>true</code> if this is a simple type, and 

-	 *    <code>false</code> otherwise

-	 */

-	public final boolean isSimpleType() {

-		return (this instanceof SimpleType);

-	}

-

-	/**

-	 * Returns whether this type is an array type

-	 * (<code>ArrayType</code>).

-	 * 

-	 * @return <code>true</code> if this is an array type, and 

-	 *    <code>false</code> otherwise

-	 */

-	public final boolean isArrayType() {

-		return (this instanceof ArrayType);

-	}

-

-	/**

-	 * Resolves and returns the binding for this type.

-	 * <p>

-	 * Note that bindings are generally unavailable unless requested when the

-	 * AST is being built.

-	 * </p>

-	 * 

-	 * @return the type binding, or <code>null</code> if the binding cannot be 

-	 *    resolved

-	 */	

-	public final ITypeBinding resolveBinding() {

-		return getAST().getBindingResolver().resolveType(this);

-	}

-	

-// JSR-014

-//	/**

-//	 * Returns whether this type is a parameterized type 

-//   * (<code>ParameterizedType</code>).

-//	 * 

-//	 * @return <code>true</code> if this is a parameterized type, and 

-//	 *    <code>false</code> otherwise

-//	 */

-//	public final boolean isParameterizedType() {

-//		return (this instanceof ParameterizedType);

-//	}

-

-//	public IBinding resolvedType();

-}

-

-//// JSR-014

-//public class ParameterizedType extends Type {

-//	public ParameterizedType(AST ast) {

-//		super(ast);

-//	}

-//

-//	public Type getGenericType();

-//	public void setGenericType(Type genericType);

-//

-//	public NodeList<Type> parameters();

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test137/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test137/A_out.js
deleted file mode 100644
index 6feca94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test137/A_out.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.wst.jsdt.core.dom;

-/**

- * Abstract base class of all type AST node types. A type node represents a 

- * reference to a primitive type (including void), to a named class or 

- * interface type, or to an array type.

- * <p>

- * <pre>

- * Type:

- *    PrimitiveType

- *    SimpleType

- *    ArrayType

- * PrimitiveType:

- *    <b>byte</b>

- *    <b>short</b>

- *    <b>char</b>

- *    <b>int</b>

- *    <b>long</b>

- *    <b>float</b>

- *    <b>double</b>

- *    <b>boolean</b>

- *    <b>void</b>

- * SimpleType:

- *    TypeName

- * ArrayType:

- *    Type <b>[</b> <b>]</b>

- * </pre>

- * </p>

- * 

- * @since 2.0

- */

-public abstract class Type extends ASTNode {

-	/**

-	 * Creates a new AST node for a type owned by the given AST.

-	 * <p>

-	 * N.B. This constructor is package-private.

-	 * </p>

-	 * 

-	 * @param ast the AST that is to own this node

-	 */

-	Type(AST ast) {

-		super(ast);

-	}

-	/**

-	 * Returns whether this type is a primitive type

-	 * (<code>PrimitiveType</code>). 

-	 * 

-	 * @return <code>true</code> if this is a primitive type, and 

-	 *    <code>false</code> otherwise

-	 */

-	public final boolean isPrimitiveType() {

-		return (this instanceof PrimitiveType);

-	}

-	/**

-	 * Returns whether this type is a simple type 

-	 * (<code>SimpleType</code>).

-	 * 

-	 * @return <code>true</code> if this is a simple type, and 

-	 *    <code>false</code> otherwise

-	 */

-	public final boolean isSimpleType() {

-		return (this instanceof SimpleType);

-	}

-	/**

-	 * Returns whether this type is an array type

-	 * (<code>ArrayType</code>).

-	 * 

-	 * @return <code>true</code> if this is an array type, and 

-	 *    <code>false</code> otherwise

-	 */

-	public final boolean isArrayType() {

-		return (this instanceof ArrayType);

-	}

-	/**

-	 * Resolves and returns the binding for this type.

-	 * <p>

-	 * Note that bindings are generally unavailable unless requested when the

-	 * AST is being built.

-	 * </p>

-	 * 

-	 * @return the type binding, or <code>null</code> if the binding cannot be 

-	 *    resolved

-	 */

-	public final ITypeBinding resolveBinding() {

-		return getAST().getBindingResolver().resolveType(this);

-	}

-	// JSR-014

-	//	/**

-	//	 * Returns whether this type is a parameterized type 

-	//   * (<code>ParameterizedType</code>).

-	//	 * 

-	//	 * @return <code>true</code> if this is a parameterized type, and 

-	//	 *    <code>false</code> otherwise

-	//	 */

-	//	public final boolean isParameterizedType() {

-	//		return (this instanceof ParameterizedType);

-	//	}

-	//	public IBinding resolvedType();

-}

-//// JSR-014

-//public class ParameterizedType extends Type {

-//	public ParameterizedType(AST ast) {

-//		super(ast);

-//	}

-//

-//	public Type getGenericType();

-//	public void setGenericType(Type genericType);

-//

-//	public NodeList<Type> parameters();

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test138/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test138/A_in.js
deleted file mode 100644
index 9cd5835..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test138/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-new A(){private void newMethod(String str){}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test138/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test138/A_out.js
deleted file mode 100644
index 3169286..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test138/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-new A(){

-			private void newMethod(String str) {

-			}

-		};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test139/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test139/A_in.js
deleted file mode 100644
index 9628711..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test139/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-float x;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test139/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test139/A_out.js
deleted file mode 100644
index 9628711..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test139/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-float x;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test140/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test140/A_in.js
deleted file mode 100644
index 3cb495e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test140/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test1;

-public class A {

-    public void foo(int i) {

-        switch (x) {

-            case 1 : return;

-            default :

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test140/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test140/A_out.js
deleted file mode 100644
index d0d3538..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test140/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test1;

-public class A {

-    public void foo(int i) {

-        switch (x) {

-            case 1 :

-                return;

-            default :

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test141/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test141/A_in.js
deleted file mode 100644
index d0d3538..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test141/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test1;

-public class A {

-    public void foo(int i) {

-        switch (x) {

-            case 1 :

-                return;

-            default :

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test141/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test141/A_out.js
deleted file mode 100644
index c5495a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test141/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test1;

-public class A {

-    public void foo(int i) {

-        switch (x) {

-        case 1 :

-        return;

-        default :

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test142/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test142/A_in.js
deleted file mode 100644
index f27d7c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test142/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* (non-Javadoc)

- * @see p.A#m()

- */

-public int[] m() {return null;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test142/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test142/A_out.js
deleted file mode 100644
index 7755e8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test142/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	/* (non-Javadoc)

-	 * @see p.A#m()

-	 */

-	public int[] m() {

-		return null;

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test143/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test143/A_in.js
deleted file mode 100644
index 4bd0106..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test143/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* (non-Javadoc)

- * @see p.A#m()

- */

-int[] m() {return null;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test143/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test143/A_out.js
deleted file mode 100644
index c5baa12..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test143/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	/* (non-Javadoc)

-	 * @see p.A#m()

-	 */

-	int[] m() {

-		return null;

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test144/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test144/A_in.js
deleted file mode 100644
index a14c715..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test144/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {

-/*

-	

-*/

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test144/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test144/A_out.js
deleted file mode 100644
index 2625b66..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test144/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {

-	/*

-	 

-	 */

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test145/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test145/A_in.js
deleted file mode 100644
index 0b4e1a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test145/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {

-/* test

-*/

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test145/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test145/A_out.js
deleted file mode 100644
index f368d92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test145/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {

-	/* test

-	 */

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test146/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test146/A_in.js
deleted file mode 100644
index 8f4a19b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test146/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {

-				marker.setAttributes(

-				new String[] {

-					IMarker.MESSAGE, 

-					IMarker.SEVERITY, 

-					IMarker.LOCATION, 

-					IJavaModelMarker.CYCLE_DETECTED,

-					IJavaModelMarker.CLASSPATH_FILE_FORMAT,

-					IJavaModelMarker.ID,

-					IJavaModelMarker.ARGUMENTS ,

-				});

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test146/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test146/A_out.js
deleted file mode 100644
index 9bbe2f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test146/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public final void addDefinitelyAssignedVariables(Scope scope, int initStateIndex) {

-	marker.setAttributes(new String[]{IMarker.MESSAGE, IMarker.SEVERITY,

-			IMarker.LOCATION, IJavaModelMarker.CYCLE_DETECTED,

-			IJavaModelMarker.CLASSPATH_FILE_FORMAT, IJavaModelMarker.ID,

-			IJavaModelMarker.ARGUMENTS,});

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test147/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test147/A_in.js
deleted file mode 100644
index 111bacb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test147/A_in.js
+++ /dev/null
@@ -1,40 +0,0 @@
-package p;

-/** typecomment template*/

-public interface I {

-/**

- * comment f

- */public abstract void f();

-/** comment fz*/public abstract void fz();

-/*

- * comment f1

- */public abstract void f1();

-/* comment f1z*/public abstract void f1z();

-//comment f11

-public abstract void f11();

-public abstract void f2();

-	/** 

-	 * jdoc I1

-	 */

-	public static final int I1= 0;

-

-

-	/** jdoc I1z*/

-	public static final int I1z= 0;

-

-

-	/* 

-	 * comI2

-	 */

-	public static final int I2= 0;

-

-

-	/* com I2z*/

-	public static final int I2z= 0;

-

-

-	//comment I3

-	public static final int I3= 0;

-

-

-	public static final int I4= 0;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test147/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test147/A_out.js
deleted file mode 100644
index 3793142..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test147/A_out.js
+++ /dev/null
@@ -1,37 +0,0 @@
-package p;

-/** typecomment template*/

-public interface I {

-	/**

-	 * comment f

-	 */

-	public abstract void f();

-	/** comment fz*/

-	public abstract void fz();

-	/*

-	 * comment f1

-	 */public abstract void f1();

-	/* comment f1z*/public abstract void f1z();

-	//comment f11

-	public abstract void f11();

-	public abstract void f2();

-	/** 

-	 * jdoc I1

-	 */

-	public static final int I1= 0;

-

-	/** jdoc I1z*/

-	public static final int I1z= 0;

-

-	/* 

-	 * comI2

-	 */

-	public static final int I2= 0;

-

-	/* com I2z*/

-	public static final int I2z= 0;

-

-	//comment I3

-	public static final int I3= 0;

-

-	public static final int I4= 0;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test148/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test148/A_in.js
deleted file mode 100644
index 9f3047a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test148/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-				if (!doesFileExist(qualifiedPackageName, ""))  //$NON-NLS-1$ 

-					break notFound;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test148/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test148/A_out.js
deleted file mode 100644
index e871dbe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test148/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-if (!doesFileExist(qualifiedPackageName, "")) //$NON-NLS-1$ 

-	break notFound;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test149/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test149/A_in.js
deleted file mode 100644
index 2ca3f4b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test149/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-			if (scope.isJavaLangCloneable(expressionType) || scope.isJavaIoSerializable(expressionType))

-				//potential runtime error

-				{

-				return true;

-			}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test149/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test149/A_out.js
deleted file mode 100644
index e1769d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test149/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-if (scope.isJavaLangCloneable(expressionType)

-		|| scope.isJavaIoSerializable(expressionType))

-//potential runtime error

-{

-	return true;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test150/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test150/A_in.js
deleted file mode 100644
index 730b4ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test150/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-			if (scope.isJavaLangCloneable(expressionType) || scope.isJavaIoSerializable(expressionType)) //potential runtime error

-				{

-				return true;

-			}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test150/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test150/A_out.js
deleted file mode 100644
index 117b59d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test150/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-if (scope.isJavaLangCloneable(expressionType)

-		|| scope.isJavaIoSerializable(expressionType)) //potential runtime error

-{

-	return true;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test151/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test151/A_in.js
deleted file mode 100644
index 2ef8815..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test151/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public boolean execute(IProgressMonitor progressMonitor) {

-	if (this.isCancelled

-			|| progressMonitor != null

-			&& progressMonitor.isCanceled())

-		return true;

-	IIndex index = manager.getIndex(this.indexPath, true,

-			/*reuse index file*/true /*create if none*/);

-	if (index == null)

-		return true;

-	ReadWriteMonitor monitor = manager.getMonitorFor(index);

-	if (monitor == null)

-		return true;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test151/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test151/A_out.js
deleted file mode 100644
index d4a7846..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test151/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public boolean execute(IProgressMonitor progressMonitor) {

-	if (this.isCancelled || progressMonitor != null

-			&& progressMonitor.isCanceled())

-		return true;

-	IIndex index = manager.getIndex(this.indexPath, true,

-	/*reuse index file*/true /*create if none*/);

-	if (index == null)

-		return true;

-	ReadWriteMonitor monitor = manager.getMonitorFor(index);

-	if (monitor == null)

-		return true;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test152/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test152/A_in.js
deleted file mode 100644
index 3058df5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test152/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-			if (scope.isJavaLangCloneable(expressionType) || scope.isJavaIoSerializable(expressionType))

-				/*potential runtime error*/

-				{

-				return true;

-			}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test152/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test152/A_out.js
deleted file mode 100644
index f5a6636..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test152/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-if (scope.isJavaLangCloneable(expressionType)

-		|| scope.isJavaIoSerializable(expressionType))

-/*potential runtime error*/

-{

-	return true;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test153/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test153/A_in.js
deleted file mode 100644
index 4e13ace..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test153/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Parser {

-	protected int				astLengthPtr;

-	protected int[]				astLengthStack;

-	public CompilationUnitDeclaration	compilationUnit; 	/*the result from parse()*/

-	AstNode[]							noAstNodes	= new AstNode[AstStackIncrement];

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test153/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test153/A_out.js
deleted file mode 100644
index 59a8ea5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test153/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Parser {

-	protected int						astLengthPtr;

-	protected int[]						astLengthStack;

-	public CompilationUnitDeclaration	compilationUnit;								/*the result from parse()*/

-	AstNode[]							noAstNodes	= new AstNode[AstStackIncrement];

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test154/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test154/A_in.js
deleted file mode 100644
index 3d716c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test154/A_in.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test1;

-import java.util.Vector;

-public class E {

-    private class EInner {

-        public int inner(int i) {

-        }

-    }

-    private int fField1;

-    private int fField2;

-    public void foo1() {

-        fField1 = fField2;

-        if (fField1 == 0) {

-            fField2++;

-        }

-        EInner inner = new EInner();

-    }

-    public int foo1(int i) {

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test154/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test154/A_out.js
deleted file mode 100644
index fdfd99b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test154/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test1;

-import java.util.Vector;

-public class E {

-	private class EInner {

-		public int inner(int i) {

-		}

-	}

-	private int fField1;

-	private int fField2;

-	public void foo1() {

-		fField1 = fField2;

-		if (fField1 == 0) {

-			fField2++;

-		}

-		EInner inner = new EInner();

-	}

-	public int foo1(int i) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test155/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test155/A_in.js
deleted file mode 100644
index c6ede02..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test155/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-String s =

-            "alfa"

-                + "beta"

-                + "gamma"

-                + "delta"

-                + "alfa"

-                + "beta"

-                + "alfa"

-                + "beta";
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test155/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test155/A_out.js
deleted file mode 100644
index a98faf0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test155/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-String s = "alfa" + "beta" + "gamma" + "delta" + "alfa" + "beta" + "alfa"

-        + "beta";
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test156/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test156/A_in.js
deleted file mode 100644
index a4bff74..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test156/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-if (JobManager.VERBOSE) { JobManager.verbose("-> execution time: " + executionTime + "ms - " +  this);//$NON-NLS-1$//$NON-NLS-2$

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test156/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test156/A_out.js
deleted file mode 100644
index 3f4583f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test156/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-if (JobManager.VERBOSE) {

-    JobManager.verbose("-> execution time: " + executionTime + "ms - " + this);//$NON-NLS-1$//$NON-NLS-2$

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test157/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test157/A_in.js
deleted file mode 100644
index a9f3cea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test157/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-switch(i) {case 1:}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test157/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test157/A_out.js
deleted file mode 100644
index 0c45553..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test157/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-switch(i) {

-	case 1 :}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test158/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test158/A_in.js
deleted file mode 100644
index a9f3cea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test158/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-switch(i) {case 1:}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test158/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test158/A_out.js
deleted file mode 100644
index 2d5bd47..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test158/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-switch(i) {

-	case 1 :

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test159/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test159/A_in.js
deleted file mode 100644
index 13cc3db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test159/A_in.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**

- *    This header comment may be left unformatted.

- */

-

-package org.eclipse.formatter.example;

-

-/**

- * Example class displaying the effects of various code formatting preferences.

- * <p> See also {@link org.eclipse.editor.syntax}. </p>

- * 

- * The blank line above may be cleared.

- * @version 3.0

- */

-public class Example extends Object {

-	/* This comment may be wrapped to multiple lines depending on the maximal line length. */

-	private int integer= 0;

-	// This single-line comment may be wrapped too...

-	private String string= "zero";

-

-	/**

-	 * This comment shows the formatting of code snippets.

-	 * <pre>

-	 * while ((size = foo(size, max)) > 0) { System.out.println("bar"); }

-	 * </pre>

-	 * After this comment a blank line may be inserted.

-	 * @param size The size

-	 * @param max The maximum

-	 */

-	public int foo(int size, int max) {

-

-		if (size < max) {

-		try {

-		size=(long)stream.available();

-		} catch (IOException e) {

-

-		}

-		} else if (size == max) {

-		++size;

-		} else {

-		--size;

-		}

-		return size;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test159/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test159/A_out.js
deleted file mode 100644
index d86c863..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test159/A_out.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**

- *    This header comment may be left unformatted.

- */

-

-package org.eclipse.formatter.example;

-

-/**

- * Example class displaying the effects of various code formatting preferences.

- * <p> See also {@link org.eclipse.editor.syntax}. </p>

- * 

- * The blank line above may be cleared.

- * @version 3.0

- */

-public class Example extends Object {

-	/* This comment may be wrapped to multiple lines depending on the maximal line length. */

-	private int integer = 0;

-	// This single-line comment may be wrapped too...

-	private String string = "zero";

-

-	/**

-	 * This comment shows the formatting of code snippets.

-	 * <pre>

-	 * while ((size = foo(size, max)) > 0) { System.out.println("bar"); }

-	 * </pre>

-	 * After this comment a blank line may be inserted.

-	 * @param size The size

-	 * @param max The maximum

-	 */

-	public int foo(int size, int max) {

-

-		if (size < max) {

-			try {

-				size = (long) stream.available();

-			} catch (IOException e) {

-

-			}

-		} else if (size == max) {

-			++size;

-		} else {

-			--size;

-		}

-		return size;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test160/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test160/A_in.js
deleted file mode 100644
index b969cae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test160/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-	public int foo(int size, int max) {

-

-		if (size < max) {

-		try {

-		size=(long)stream.available();

-		} catch (IOException e) {

-

-		}

-		} else if (size == max) {

-		++size;

-		} else {

-		--size;

-		}

-		return size;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test160/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test160/A_out.js
deleted file mode 100644
index 3f041da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test160/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public int foo(int size, int max) {

-	if (size < max) {

-		try {

-			size = (long) stream.available();

-		} catch (IOException e) {

-		}

-	} else if (size == max) {

-		++size;

-	} else {

-		--size;

-	}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test161/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test161/A_in.js
deleted file mode 100644
index b969cae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test161/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-	public int foo(int size, int max) {

-

-		if (size < max) {

-		try {

-		size=(long)stream.available();

-		} catch (IOException e) {

-

-		}

-		} else if (size == max) {

-		++size;

-		} else {

-		--size;

-		}

-		return size;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test161/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test161/A_out.js
deleted file mode 100644
index 2f3957b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test161/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public int foo(int size, int max) {

-	if (size < max) {

-		try {

-			size = (long) stream.available();

-		} catch (IOException e) {

-		}

-	} else

-		if (size == max) {

-			++size;

-		} else {

-			--size;

-		}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test162/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test162/A_in.js
deleted file mode 100644
index b969cae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test162/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-	public int foo(int size, int max) {

-

-		if (size < max) {

-		try {

-		size=(long)stream.available();

-		} catch (IOException e) {

-

-		}

-		} else if (size == max) {

-		++size;

-		} else {

-		--size;

-		}

-		return size;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test162/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test162/A_out.js
deleted file mode 100644
index 78bdd54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test162/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public int foo(int size, int max) {

-	if (size < max) {

-		try {

-			size = (long) stream.available();

-		}

-		catch (IOException e) {

-		}

-	}

-	else

-		if (size == max) {

-			++size;

-		}

-		else {

-			--size;

-		}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test163/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test163/A_in.js
deleted file mode 100644
index b969cae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test163/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-	public int foo(int size, int max) {

-

-		if (size < max) {

-		try {

-		size=(long)stream.available();

-		} catch (IOException e) {

-

-		}

-		} else if (size == max) {

-		++size;

-		} else {

-		--size;

-		}

-		return size;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test163/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test163/A_out.js
deleted file mode 100644
index 2a0e80d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test163/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public int foo(int size, int max) {

-	if (size < max) {

-		try {

-			size = (long) stream.available();

-		}

-		catch (IOException e) {

-		}

-	}

-	else if (size == max) {

-		++size;

-	}

-	else {

-		--size;

-	}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test164/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test164/A_in.js
deleted file mode 100644
index 148f7d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test164/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class X {

-	void foo() throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.NullPointerException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test164/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test164/A_out.js
deleted file mode 100644
index 9dee16b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test164/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class X {

-	void foo() throws java.io.IOException, java.lang.IllegalArgumentException,

-			java.lang.NullPointerException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test165/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test165/A_in.js
deleted file mode 100644
index d767c7d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test165/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class A {

-	A(String s) {

-	}

-	protected void foo() {

-			A a = new A("") {//$NON-NLS-1$

-	public void run() {

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test165/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test165/A_out.js
deleted file mode 100644
index af38cba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test165/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class A {

-	A(String s) {

-	}

-	protected void foo() {

-		A a = new A("") {//$NON-NLS-1$

-			public void run() {

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test166/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test166/A_in.js
deleted file mode 100644
index f200fd3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test166/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class X {

-	public static void main(String[] args) {

-		new X().bar();

-	}

-	public void bar() {

-		class C extends X {

-			public void foo() {

-			System.out.println("SUCCESS");

-

-			}

-		}

-		class D extends C {

-					D(){X.this.super();}

-		}

-		new D().foo();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test166/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test166/A_out.js
deleted file mode 100644
index c3125a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test166/A_out.js
+++ /dev/null
@@ -1,18 +0,0 @@
-public class X {

-	public static void main(String[] args) {

-		new X().bar();

-	}

-	public void bar() {

-		class C extends X {

-			public void foo() {

-				System.out.println("SUCCESS");

-			}

-		}

-		class D extends C {

-			D() {

-				X.this.super();

-			}

-		}

-		new D().foo();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test167/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test167/A_in.js
deleted file mode 100644
index d45c20f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test167/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		X a = new X(new StringBuffer("this").append("is").append

-("a").append(

-				"long")

-				.append("argument")

-				.toString()) {

-			public void run() {

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test167/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test167/A_out.js
deleted file mode 100644
index 4abc291..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test167/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		X a = new X(new StringBuffer("this").append("is").append("a").append(

-				"long").append("argument").toString()) {

-			public void run() {

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test168/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test168/A_in.js
deleted file mode 100644
index fe9dfdb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test168/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		append("argument");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test168/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test168/A_out.js
deleted file mode 100644
index fe9dfdb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test168/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		append("argument");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test169/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test169/A_in.js
deleted file mode 100644
index 27f248a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test169/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		cmd.createArgument().foo().test().error().setFile(destDir.getAbsoluteFile());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test169/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test169/A_out.js
deleted file mode 100644
index 06fc3db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test169/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		cmd.createArgument().foo().test().error().setFile(

-				destDir.getAbsoluteFile());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test170/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test170/A_in.js
deleted file mode 100644
index d1072b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test170/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		cmd.createArgument().foo().test().error().setFile((Name) (destDir()).getAbsoluteFile());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test170/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test170/A_out.js
deleted file mode 100644
index 949cef7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test170/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		cmd.createArgument().foo().test().error().setFile(

-				(Name) (destDir()).getAbsoluteFile());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test171/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test171/A_in.js
deleted file mode 100644
index d54dec9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test171/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-public int foo(int size, int max) {

-

-	if (size < max) {

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {

-

-	}

-	} else if (size == max) {

-	++size;

-	} else {

-	--size;

-	}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test171/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test171/A_out.js
deleted file mode 100644
index 78bdd54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test171/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public int foo(int size, int max) {

-	if (size < max) {

-		try {

-			size = (long) stream.available();

-		}

-		catch (IOException e) {

-		}

-	}

-	else

-		if (size == max) {

-			++size;

-		}

-		else {

-			--size;

-		}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test172/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test172/A_in.js
deleted file mode 100644
index f623eff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test172/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public int foo(int size, int max) {

-

-	if (size < max) {

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {

-	}

-	} else if (size == max) {

-	++size;

-	} else {

-	--size;

-	}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test172/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test172/A_out.js
deleted file mode 100644
index 78bdd54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test172/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public int foo(int size, int max) {

-	if (size < max) {

-		try {

-			size = (long) stream.available();

-		}

-		catch (IOException e) {

-		}

-	}

-	else

-		if (size == max) {

-			++size;

-		}

-		else {

-			--size;

-		}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test173/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test173/A_in.js
deleted file mode 100644
index 95fa274..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test173/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public int foo(int size, int max) {

-

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {

-	}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test173/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test173/A_out.js
deleted file mode 100644
index a90a86d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test173/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public int foo(int size, int max) {

-	try {

-		size = (long) stream.available();

-	} catch (IOException e) {}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test174/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test174/A_in.js
deleted file mode 100644
index c87176a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test174/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public int foo(int size, int max) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test174/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test174/A_out.js
deleted file mode 100644
index 67dc770..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test174/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-public int foo(int size, int max) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test175/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test175/A_in.js
deleted file mode 100644
index 95fa274..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test175/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public int foo(int size, int max) {

-

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {

-	}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test175/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test175/A_out.js
deleted file mode 100644
index cc9fc5e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test175/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public int foo(int size, int max) {

-	try {

-		size = (long) stream.available();

-	} catch (IOException e) {

-	}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test176/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test176/A_in.js
deleted file mode 100644
index 67dc770..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test176/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public int foo(int size, int max) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test176/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test176/A_out.js
deleted file mode 100644
index c87176a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test176/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public int foo(int size, int max) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test177/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test177/A_in.js
deleted file mode 100644
index 60e5072..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test177/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test177/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test177/A_out.js
deleted file mode 100644
index efd7fa3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test177/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test178/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test178/A_in.js
deleted file mode 100644
index efd7fa3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test178/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test178/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test178/A_out.js
deleted file mode 100644
index 60e5072..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test178/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test179/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test179/A_in.js
deleted file mode 100644
index db31bd1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test179/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	A foo() {

-		return new A() {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test179/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test179/A_out.js
deleted file mode 100644
index 2dbee0b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test179/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	A foo() {

-		return new A() {

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test180/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test180/A_in.js
deleted file mode 100644
index e178bb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test180/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	A foo() {return new A() {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test180/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test180/A_out.js
deleted file mode 100644
index db31bd1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test180/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	A foo() {

-		return new A() {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test181/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test181/A_in.js
deleted file mode 100644
index 6215a82..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test181/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	String str1 = "xxxxxxxxxx", str2 = "xxxxxxxxxx", str3 = "xxxxxxxxxx", str4 = "xxxxxxxxxx", str5 = "xxxxxxxxxx", str6 = "xxxxxxxxxx",

-			str7 = "xxxxxxxxxx",

-			str8 = "xxxxxxxxxx",

-			str9 = "xxxxxxxxxx",

-			str10 = "xxxxxxxxxx";

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test181/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test181/A_out.js
deleted file mode 100644
index cb56773..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test181/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class X {

-	String str1 = "xxxxxxxxxx", str2 = "xxxxxxxxxx", str3 = "xxxxxxxxxx",

-			str4 = "xxxxxxxxxx", str5 = "xxxxxxxxxx", str6 = "xxxxxxxxxx",

-			str7 = "xxxxxxxxxx", str8 = "xxxxxxxxxx", str9 = "xxxxxxxxxx",

-			str10 = "xxxxxxxxxx";

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test182/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test182/A_in.js
deleted file mode 100644
index a25e714..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test182/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	String str1 = "toto", str2 = "titi", str3 = "tata";

-	

-	void foo() {

-		String str1 = "toto", str2 = "titi", str3 = "tata";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test182/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test182/A_out.js
deleted file mode 100644
index be2ff97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test182/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	String str1 = "toto", str2 = "titi", str3 = "tata";

-

-	void foo() {

-		String str1 = "toto", str2 = "titi", str3 = "tata";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test183/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test183/A_in.js
deleted file mode 100644
index b869dc4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test183/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class X {

-	void foo() {

-		if (JavaModelManager.CP_RESOLVE_VERBOSE){

-			System.out.println("CPContainer SET  - setting container: ["+containerPath+"] for projects: {" //$NON-NLS-1$ //$NON-NLS-2$

-				+ (org.eclipse.wst.jsdt.internal.compiler.util.Util.toString(affectedProjects, 

-						new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable(){ 

-							public String displayString(Object o) { return ((IJavaProject) o).getElementName(); }

-						}))

-				+ "} with values: " //$NON-NLS-1$

-				+ (org.eclipse.wst.jsdt.internal.compiler.util.Util.toString(respectiveContainers, 

-						new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable(){ 

-							public String displayString(Object o) { return ((IJsGlobalScopeContainer) o).getDescription(); }

-						}))

-					);

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test183/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test183/A_out.js
deleted file mode 100644
index 03d8c66..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test183/A_out.js
+++ /dev/null
@@ -1,29 +0,0 @@
-public class X {

-	void foo() {

-		if (JavaModelManager.CP_RESOLVE_VERBOSE) {

-			System.out

-					.println("CPContainer SET  - setting container: [" + containerPath + "] for projects: {" //$NON-NLS-1$ //$NON-NLS-2$

-							+ (org.eclipse.wst.jsdt.internal.compiler.util.Util

-									.toString(

-											affectedProjects,

-											new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable() {

-												public String displayString(

-														Object o) {

-													return ((IJavaProject) o)

-															.getElementName();

-												}

-											}))

-							+ "} with values: " //$NON-NLS-1$

-							+ (org.eclipse.wst.jsdt.internal.compiler.util.Util

-									.toString(

-											respectiveContainers,

-											new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable() {

-												public String displayString(

-														Object o) {

-													return ((IJsGlobalScopeContainer) o)

-															.getDescription();

-												}

-											})));

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test184/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test184/A_in.js
deleted file mode 100644
index fcfa73b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test184/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		Main

-				.bind("compile.instantTime", //$NON-NLS-1$

-						new String[]{String.valueOf(this.lineCount), String.valueOf(this.time), String.valueOf(((int) (this.lineCount * 10000.0 / this.time)) / 10.0)});

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test184/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test184/A_out.js
deleted file mode 100644
index 8e582e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test184/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		Main

-				.bind(

-						"compile.instantTime", //$NON-NLS-1$

-						new String[]{

-								String.valueOf(this.lineCount),

-								String.valueOf(this.time),

-								String

-										.valueOf(((int) (this.lineCount * 10000.0 / this.time)) / 10.0)});

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test185/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test185/A_in.js
deleted file mode 100644
index 0225235..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test185/A_in.js
+++ /dev/null
@@ -1,31 +0,0 @@
-public class X {

-	void foo() {

-		if (JavaModelManager.CP_RESOLVE_VERBOSE) {

-			System.out

-					.println(

-							"CPContainer SET  - setting container: ["//$NON-NLS-1$

-									+ containerPath

-									+ "] for projects: {"  //$NON-NLS-1$

-									+ (org.eclipse.wst.jsdt.internal.compiler.util.Util

-											.toString(affectedProjects,

-													new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable() {

-														public String displayString(

-																Object o) {

-															return ((IJavaProject) o)

-																	.getElementName();

-														}

-													}))

-									+ "} with values: " //$NON-NLS-1$

-									+ (org.eclipse.wst.jsdt.internal.compiler.util.Util

-											.toString(

-													respectiveContainers,

-													new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable() {

-														public String displayString(

-																Object o) {

-															return ((IJsGlobalScopeContainer) o)

-																	.getDescription();

-														}

-													})));

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test185/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test185/A_out.js
deleted file mode 100644
index 223f32d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test185/A_out.js
+++ /dev/null
@@ -1,31 +0,0 @@
-public class X {

-	void foo() {

-		if (JavaModelManager.CP_RESOLVE_VERBOSE) {

-			System.out

-					.println("CPContainer SET  - setting container: ["//$NON-NLS-1$

-							+ containerPath

-							+ "] for projects: {" //$NON-NLS-1$

-							+ (org.eclipse.wst.jsdt.internal.compiler.util.Util

-									.toString(

-											affectedProjects,

-											new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable() {

-												public String displayString(

-														Object o) {

-													return ((IJavaProject) o)

-															.getElementName();

-												}

-											}))

-							+ "} with values: " //$NON-NLS-1$

-							+ (org.eclipse.wst.jsdt.internal.compiler.util.Util

-									.toString(

-											respectiveContainers,

-											new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable() {

-												public String displayString(

-														Object o) {

-													return ((IJsGlobalScopeContainer) o)

-															.getDescription();

-												}

-											})));

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test186/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test186/A_in.js
deleted file mode 100644
index d7dfc81..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test186/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class X {

-	void foo() {

-        FlowInfo mergedInfo = FlowInfo.conditional(// merging two true initInfos for such a negative case: if ((t && (b = t)) || f) r = b; // b may not have been initialized

-                leftInfo

-                        .initsWhenTrue()

-                        .copy()

-                        .unconditionalInits()

-                        .mergedWith(rightInfo.initsWhenTrue().copy()

-                                .unconditionalInits()), falseMergedInfo);

-        mergedInitStateIndex = currentScope.methodScope()

-                .recordInitializationStates(mergedInfo);

-        return mergedInfo;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test186/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test186/A_out.js
deleted file mode 100644
index f7cd7d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test186/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class X {

-	void foo() {

-        FlowInfo mergedInfo = FlowInfo.conditional( // merging two true initInfos for such a negative case: if ((t && (b = t)) || f) r = b; // b may not have been initialized

-				leftInfo.initsWhenTrue().copy().unconditionalInits()

-        		.mergedWith(rightInfo.initsWhenTrue().copy()

-        				.unconditionalInits()), falseMergedInfo);

-        mergedInitStateIndex = currentScope.methodScope()

-                .recordInitializationStates(mergedInfo);

-        return mergedInfo;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test187/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test187/A_in.js
deleted file mode 100644
index 485082f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test187/A_in.js
+++ /dev/null
@@ -1,380 +0,0 @@
-import gov.noaa.ncdc.publications.exception.ConvertException;

-import gov.noaa.ncdc.publications.exception.CreatePDFFileException;

-import gov.noaa.ncdc.publications.exception.CreateTempWorkingDirException;

-import gov.noaa.ncdc.publications.exception.FTPServerException;

-import gov.noaa.ncdc.publications.exception.FTPServerTimeoutException;

-import gov.noaa.ncdc.publications.exception.createListFileException;

-import gov.noaa.ncdc.util.FileUtils;

-import gov.noaa.ncdc.util.Registry;

-import gov.noaa.ncdc.util.WssrdFileComparator;

-import gov.noaa.ncdc.util.ftpServer.FtpServer;

-

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-

-import java.io.BufferedWriter;

-import java.io.File;

-import java.io.FileWriter;

-import java.io.IOException;

-import java.io.PrintWriter;

-

-import java.util.Arrays;

-

-

-/**

- * <p>

- * <CODE>RemotePublication</CODE> RemotePublication is a publication

- * stored as TIF files in the WSSRD database.

- * </p>

- * <pre>

- * Revision 1.1  2003/10/15 13:11:18  othomann

- * Fix for 44839

- *

- * Revision 1.6  2003/10/09 22:07:28  jduska

- * Merged Chaged from 1.3 Branch into  Head

- *

- * Revision 1.5.2.2  2003/10/01 22:48:03  jduska

- * Added support, so that the publication can be retrieved by WSSRD cabinet 

- * and WSSRD docID

- *

- * Revision 1.5.2.1  2003/09/17 18:20:48  jduska

- * Change FTP Errors to Warnings

- *

- * Revision 1.5  2003/07/25 20:49:52  jduska

- * - Updated the Publication Library to use a new renameFile method 

- * - Created the new FileUtils class by moving the copyFile and adding the renameFile

- * methods

- *

- * Revision 1.4  2003/07/17 23:56:58  jduska

- * - Updated to support new support files in the command line tool	

- * - Update the properties to support the dynamic changing the FTP library

- * - Cleaned up the exceptions and few other files with outdate or unneed imports and etc

- * 

- * Revision 1.3  2003/07/07 15:42:48  jduska

- * - Corrected bugs in new changes to support the Publication Library

- * 

- * Revision 1.2  2003/07/02 17:33:14  jduska

- * - bug fix to correct the Temporary Directory

- *   issue when using the library within a web application

- * 

- * Revision 1.1  2003/06/26 23:54:10  jduska

- * - Command Line version of the Publication Library

- * 

- * Revision 1.3  2003/06/26 23:43:21  jduska

- * - Changes to support using the PDF Library on the command line

- * 

- * Revision 1.1  2003/06/09 21:27:29  jduska

- * - Updated the library, so works on Windows

- * 

- * Revision 1.1  2003/01/24 18:43:58  jduska

- * More refactoring of the SerialPublications to

- * support the local documents

- * 

- * Revision 1.3  2002/10/11 21:03:50  jduska

- *  keyword substitution change ***

- * 

- * </pre>

- */

-public class RemotePublication extends Publication {

-	private static final String PDF_FILETYPE = "PDF";

-	private static Log log =

-		LogFactory.getLog(RemotePublication.class.getName());

-	private String _fileList;

-	private String _fileType;

-	protected String _pages[];

-

-	protected RemotePublication(String id, String year, String month,

-								String stateCode,

-								String serverDirectory, String cabinet) {

-		super(id, year, month, stateCode, serverDirectory, cabinet);

-		_fileList = _cabinet + '~' + id + ".txt";

-	}

-

-	public boolean getDocument() {

-		int attempt = 0;

-

-		while (attempt < _maxAttempts) {

-			try {

-				attempt++;

-				log.info("*** Downloading " + _localFilename +

-						 EXTENTION + " attempt " + attempt +

-						 " out of " + _maxAttempts);

-

-				if (getRemoteDocument()) {

-					log.info("Success document published " +

-							 _localFilename + EXTENTION);

-

-					return true;

-				}

-			} catch (ConvertException e) {

-                

-				log.warn(e);

-			}

-		}

-

-		return false;

-	}

-

-	protected boolean getRemoteDocument() throws ConvertException {

-		boolean successful = false;

-

-		try {

-			createTempWorkingDir();

-			getPages();

-

-			if (_fileType != PDF_FILETYPE) {

-				createListFile();

-				createPDFFile();

-			} else {

-				renamePDFFile();

-			}

-

-			successful = true;

-		} catch (FTPServerTimeoutException e) {

-			String msg =

-				"Convert process timed out retriving TIFF page" +

-				e.getFileName();

-			log.warn(msg);

-			throw new ConvertException(msg);

-		} catch (FTPServerException e) {

-			String msg =

-				"Convert process encounter an " + e.getMessage();

-			log.warn(msg);

-			throw new ConvertException(msg);

-		} catch (CreateTempWorkingDirException e) {

-			String msg =

-				"Error: Covert could not create a Working Directory!";

-			log.warn(msg);

-			throw new ConvertException(msg);

-		} catch (CreatePDFFileException e) {

-			String msg =

-				"Could not create the PDF file  " + e.getMessage();

-			log.warn(msg);

-			throw new ConvertException(msg);

-		} catch (createListFileException e) {

-			String msg =

-				"Could not create the c42pdf List File" +

-				e.getMessage();

-			throw new ConvertException(msg);

-		} catch (NoFTPServiceException e) {

-			String msg =

-				"Could not create the FTP Service " + e.getMessage();

-			log.warn(msg);

-			throw new ConvertException(msg);

-		}

-

-		return successful;

-	}

-

-	protected void getPages()

-					 throws FTPServerTimeoutException, 

-							FTPServerException, NoFTPServiceException {

-		// Setup the ftp server

-		FtpServer ftp;

-

-		try {

-			ftp = (FtpServer) Class.forName(Registry.getFTPService())

-								   .newInstance();

-			ftp.setServer(Registry.getUrl());

-			ftp.setPassword(Registry.getFtpPassword());

-			ftp.setUserName(Registry.getFtpUserName());

-			ftp.setPassive(Registry.usePassive());

-			ftp.setTimeout(Registry.getFtpTimeout());

-

-			// get the pages and store them in the _workingDir

-			_pages =

-				ftp.getFiles(getWssrdDocumentName(), _workingDir);

-

-			if ((_pages.length == 1) && _pages[0].endsWith(".PDF")) {

-				_fileType = PDF_FILETYPE;

-			}

-		} catch (InstantiationException e) {

-			log.warn(e.getMessage());

-			throw new NoFTPServiceException();

-		} catch (IllegalAccessException e) {

-			// TODO Auto-generated catch block

-			e.printStackTrace();

-		} catch (ClassNotFoundException e) {

-			// TODO Auto-generated catch block

-			e.printStackTrace();

-		}

-	}

-

-	protected void createPDFFile() throws CreatePDFFileException {

-		String cmdLine = null;

-

-		try {

-			File newPdfFile =

-				new File(_workingDir + File.separator +

-						 _localFilename + EXTENTION);

-

-			if (Registry.isCommandLineMode()) {

-				handleMultipleDocuments(newPdfFile);

-			}

-

-			cmdLine = createC42PDFCommandLine(newPdfFile.getName());

-

-			if (log.isDebugEnabled()) {

-				log.debug("Running " + cmdLine);

-			}

-

-			// run C42PDF to create the file & wait till it finishes.

-			Process p = Runtime.getRuntime().exec(cmdLine);

-			p.waitFor();

-

-			// check to see if it worked

-			if (!newPdfFile.exists()) {

-				log.warn("PDF File was not created!");

-				throw new CreatePDFFileException("PDF File was not created!");

-			}

-		} catch (IOException e) {

-			e.printStackTrace();

-			throw new CreatePDFFileException(e.toString());

-		} catch (InterruptedException e) {

-			e.printStackTrace();

-			throw new CreatePDFFileException(e.toString());

-		}

-

-		return;

-	}

-

-	/**

-	 * generates the command line need to execute the C42PDF tool in

-	 * a shell. This requires that the

-	 * <code>Registry.getConvertToolPath()</code> and

-	 * <code>Registry.getConvertToolName()</code> are  valid.

-	 *

-	 * @param documentName the name of the document you wish to

-	 *        create

-	 *

-	 * @return

-	 */

-	private String createC42PDFCommandLine(String documentName) {

-		return (Registry.getConvertToolPath() + File.separator +

-			   Registry.getConvertToolName() +

-			   (" -o " + _workingDir + File.separator + documentName +

-			   " -l " + _workingDir + File.separator + _fileList));

-	}

-

-	/**

-	 * there a special cases within WSSRD where there may be more

-	 * than one PDF that makes up the document. For example River

-	 * Basin documents. Thus, it is possible for the same document

-	 * already exist when using this libarary via  a command line

-	 * mode. <code>handleMultipleDocuments</code> will add a index

-	 * counter to end of each duplicate filename. Thus, if there are

-	 * three files for this document the files would be name

-	 * filename1, filename2 and filename3

-	 *

-	 * @param newPdfFile name of the document we are making sure does

-	 *        already exist

-	 */

-	private void handleMultipleDocuments(File newPdfFile) {

-		int documentCount = 0;

-		String newFilename;

-

-		if (log.isDebugEnabled()) {

-			log.debug("Checking to see if " + newPdfFile.getName() +

-					  "already exists");

-		}

-

-		while (newPdfFile.exists()) {

-			documentCount++;

-			newFilename =

-				(new StringBuffer(_workingDir).append(File.separator)

-											  .append(_localFilename)

-											  .append(documentCount)

-											  .append(EXTENTION)).toString();

-

-			if (log.isDebugEnabled()) {

-				log.debug("File already exists. Check to see if we need rename existing file");

-			}

-

-			if (documentCount == 1) {

-				File backupPdfFile = new File(newFilename);

-				newPdfFile.renameTo(backupPdfFile);

-			}

-

-			newPdfFile = new File(newFilename);

-		}

-

-		return;

-	}

-

-	protected void createListFile() throws createListFileException {

-		PrintWriter tiffFileListFile = null;

-

-		String s;

-

-		// Must have pages to sort! 

-		if (_pages.length == 0) {

-			log.error("Internal Error: _tiffPage == null!");

-			throw new createListFileException("No pages found in the document!");

-		}

-

-		// Sort TIFF files into the correct page order

-		WssrdFileComparator fileComparator =

-			new WssrdFileComparator();

-		Arrays.sort(_pages, fileComparator);

-

-		if (log.isDebugEnabled()) {

-			log.debug("Creating list file for C42PDF");

-		}

-

-		try {

-			File tiffFileList =

-				new File(_workingDir + File.separator + _fileList);

-

-			if (tiffFileList.exists()) {

-				tiffFileList.delete();

-			}

-

-			tiffFileListFile =

-				new PrintWriter(new BufferedWriter(new FileWriter(_workingDir +

-																  File.separator +

-																  _fileList)));

-

-			for (int i = 0; i < _pages.length; i++) {

-				s = _workingDir + File.separator + _pages[i];

-

-				if (log.isDebugEnabled()) {

-					log.debug(s);

-				}

-

-				tiffFileListFile.println(s);

-			}

-		} catch (IOException e) {

-			e.printStackTrace();

-			throw new createListFileException(e.toString());

-		} finally {

-			if (tiffFileListFile != null) {

-				tiffFileListFile.close();

-			}

-

-			if (log.isDebugEnabled()) {

-				log.debug("Finished Creating list file for C42PDF");

-			}

-

-			return;

-		}

-	}

-

-	protected void renamePDFFile() throws CreatePDFFileException {

-		String newFileName =

-			_workingDir + File.separator + _localFilename +

-			EXTENTION;

-		String oldWssrdFile =

-			_workingDir + File.separator + _pages[0];

-

-		try {

-			FileUtils.renameFile(oldWssrdFile, newFileName);

-		} catch (IOException e) {

-			

-			String msg = "The following error occurred "  + e.getMessage();

-			log.warn(msg);

-			throw new CreatePDFFileException("Could not rename PDF File");

-		}

-

-       

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test187/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test187/A_out.js
deleted file mode 100644
index 4c6aa00..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test187/A_out.js
+++ /dev/null
@@ -1,308 +0,0 @@
-import gov.noaa.ncdc.publications.exception.ConvertException;

-import gov.noaa.ncdc.publications.exception.CreatePDFFileException;

-import gov.noaa.ncdc.publications.exception.CreateTempWorkingDirException;

-import gov.noaa.ncdc.publications.exception.FTPServerException;

-import gov.noaa.ncdc.publications.exception.FTPServerTimeoutException;

-import gov.noaa.ncdc.publications.exception.createListFileException;

-import gov.noaa.ncdc.util.FileUtils;

-import gov.noaa.ncdc.util.Registry;

-import gov.noaa.ncdc.util.WssrdFileComparator;

-import gov.noaa.ncdc.util.ftpServer.FtpServer;

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-import java.io.BufferedWriter;

-import java.io.File;

-import java.io.FileWriter;

-import java.io.IOException;

-import java.io.PrintWriter;

-import java.util.Arrays;

-/**

- * <p>

- * <CODE>RemotePublication</CODE> RemotePublication is a publication

- * stored as TIF files in the WSSRD database.

- * </p>

- * <pre>

- * Revision 1.1  2003/10/15 13:11:18  othomann

- * Fix for 44839

- *

- * Revision 1.6  2003/10/09 22:07:28  jduska

- * Merged Chaged from 1.3 Branch into  Head

- *

- * Revision 1.5.2.2  2003/10/01 22:48:03  jduska

- * Added support, so that the publication can be retrieved by WSSRD cabinet 

- * and WSSRD docID

- *

- * Revision 1.5.2.1  2003/09/17 18:20:48  jduska

- * Change FTP Errors to Warnings

- *

- * Revision 1.5  2003/07/25 20:49:52  jduska

- * - Updated the Publication Library to use a new renameFile method 

- * - Created the new FileUtils class by moving the copyFile and adding the renameFile

- * methods

- *

- * Revision 1.4  2003/07/17 23:56:58  jduska

- * - Updated to support new support files in the command line tool	

- * - Update the properties to support the dynamic changing the FTP library

- * - Cleaned up the exceptions and few other files with outdate or unneed imports and etc

- * 

- * Revision 1.3  2003/07/07 15:42:48  jduska

- * - Corrected bugs in new changes to support the Publication Library

- * 

- * Revision 1.2  2003/07/02 17:33:14  jduska

- * - bug fix to correct the Temporary Directory

- *   issue when using the library within a web application

- * 

- * Revision 1.1  2003/06/26 23:54:10  jduska

- * - Command Line version of the Publication Library

- * 

- * Revision 1.3  2003/06/26 23:43:21  jduska

- * - Changes to support using the PDF Library on the command line

- * 

- * Revision 1.1  2003/06/09 21:27:29  jduska

- * - Updated the library, so works on Windows

- * 

- * Revision 1.1  2003/01/24 18:43:58  jduska

- * More refactoring of the SerialPublications to

- * support the local documents

- * 

- * Revision 1.3  2002/10/11 21:03:50  jduska

- *  keyword substitution change ***

- * 

- * </pre>

- */

-public class RemotePublication extends Publication {

-	private static final String PDF_FILETYPE = "PDF";

-	private static Log log = LogFactory.getLog(RemotePublication.class

-			.getName());

-	private String _fileList;

-	private String _fileType;

-	protected String _pages[];

-	protected RemotePublication(String id, String year, String month,

-			String stateCode, String serverDirectory, String cabinet) {

-		super(id, year, month, stateCode, serverDirectory, cabinet);

-		_fileList = _cabinet + '~' + id + ".txt";

-	}

-	public boolean getDocument() {

-		int attempt = 0;

-		while (attempt < _maxAttempts) {

-			try {

-				attempt++;

-				log.info("*** Downloading " + _localFilename + EXTENTION

-						+ " attempt " + attempt + " out of " + _maxAttempts);

-				if (getRemoteDocument()) {

-					log.info("Success document published " + _localFilename

-							+ EXTENTION);

-					return true;

-				}

-			} catch (ConvertException e) {

-				log.warn(e);

-			}

-		}

-		return false;

-	}

-	protected boolean getRemoteDocument() throws ConvertException {

-		boolean successful = false;

-		try {

-			createTempWorkingDir();

-			getPages();

-			if (_fileType != PDF_FILETYPE) {

-				createListFile();

-				createPDFFile();

-			} else {

-				renamePDFFile();

-			}

-			successful = true;

-		} catch (FTPServerTimeoutException e) {

-			String msg = "Convert process timed out retriving TIFF page"

-					+ e.getFileName();

-			log.warn(msg);

-			throw new ConvertException(msg);

-		} catch (FTPServerException e) {

-			String msg = "Convert process encounter an " + e.getMessage();

-			log.warn(msg);

-			throw new ConvertException(msg);

-		} catch (CreateTempWorkingDirException e) {

-			String msg = "Error: Covert could not create a Working Directory!";

-			log.warn(msg);

-			throw new ConvertException(msg);

-		} catch (CreatePDFFileException e) {

-			String msg = "Could not create the PDF file  " + e.getMessage();

-			log.warn(msg);

-			throw new ConvertException(msg);

-		} catch (createListFileException e) {

-			String msg = "Could not create the c42pdf List File"

-					+ e.getMessage();

-			throw new ConvertException(msg);

-		} catch (NoFTPServiceException e) {

-			String msg = "Could not create the FTP Service " + e.getMessage();

-			log.warn(msg);

-			throw new ConvertException(msg);

-		}

-		return successful;

-	}

-	protected void getPages() throws FTPServerTimeoutException,

-			FTPServerException, NoFTPServiceException {

-		// Setup the ftp server

-		FtpServer ftp;

-		try {

-			ftp = (FtpServer) Class.forName(Registry.getFTPService())

-					.newInstance();

-			ftp.setServer(Registry.getUrl());

-			ftp.setPassword(Registry.getFtpPassword());

-			ftp.setUserName(Registry.getFtpUserName());

-			ftp.setPassive(Registry.usePassive());

-			ftp.setTimeout(Registry.getFtpTimeout());

-			// get the pages and store them in the _workingDir

-			_pages = ftp.getFiles(getWssrdDocumentName(), _workingDir);

-			if ((_pages.length == 1) && _pages[0].endsWith(".PDF")) {

-				_fileType = PDF_FILETYPE;

-			}

-		} catch (InstantiationException e) {

-			log.warn(e.getMessage());

-			throw new NoFTPServiceException();

-		} catch (IllegalAccessException e) {

-			// TODO Auto-generated catch block

-			e.printStackTrace();

-		} catch (ClassNotFoundException e) {

-			// TODO Auto-generated catch block

-			e.printStackTrace();

-		}

-	}

-	protected void createPDFFile() throws CreatePDFFileException {

-		String cmdLine = null;

-		try {

-			File newPdfFile = new File(_workingDir + File.separator

-					+ _localFilename + EXTENTION);

-			if (Registry.isCommandLineMode()) {

-				handleMultipleDocuments(newPdfFile);

-			}

-			cmdLine = createC42PDFCommandLine(newPdfFile.getName());

-			if (log.isDebugEnabled()) {

-				log.debug("Running " + cmdLine);

-			}

-			// run C42PDF to create the file & wait till it finishes.

-			Process p = Runtime.getRuntime().exec(cmdLine);

-			p.waitFor();

-			// check to see if it worked

-			if (!newPdfFile.exists()) {

-				log.warn("PDF File was not created!");

-				throw new CreatePDFFileException("PDF File was not created!");

-			}

-		} catch (IOException e) {

-			e.printStackTrace();

-			throw new CreatePDFFileException(e.toString());

-		} catch (InterruptedException e) {

-			e.printStackTrace();

-			throw new CreatePDFFileException(e.toString());

-		}

-		return;

-	}

-	/**

-	 * generates the command line need to execute the C42PDF tool in

-	 * a shell. This requires that the

-	 * <code>Registry.getConvertToolPath()</code> and

-	 * <code>Registry.getConvertToolName()</code> are  valid.

-	 *

-	 * @param documentName the name of the document you wish to

-	 *        create

-	 *

-	 * @return

-	 */

-	private String createC42PDFCommandLine(String documentName) {

-		return (Registry.getConvertToolPath() + File.separator

-				+ Registry.getConvertToolName() + (" -o " + _workingDir

-				+ File.separator + documentName + " -l " + _workingDir

-				+ File.separator + _fileList));

-	}

-	/**

-	 * there a special cases within WSSRD where there may be more

-	 * than one PDF that makes up the document. For example River

-	 * Basin documents. Thus, it is possible for the same document

-	 * already exist when using this libarary via  a command line

-	 * mode. <code>handleMultipleDocuments</code> will add a index

-	 * counter to end of each duplicate filename. Thus, if there are

-	 * three files for this document the files would be name

-	 * filename1, filename2 and filename3

-	 *

-	 * @param newPdfFile name of the document we are making sure does

-	 *        already exist

-	 */

-	private void handleMultipleDocuments(File newPdfFile) {

-		int documentCount = 0;

-		String newFilename;

-		if (log.isDebugEnabled()) {

-			log.debug("Checking to see if " + newPdfFile.getName()

-					+ "already exists");

-		}

-		while (newPdfFile.exists()) {

-			documentCount++;

-			newFilename = (new StringBuffer(_workingDir).append(File.separator)

-					.append(_localFilename).append(documentCount)

-					.append(EXTENTION)).toString();

-			if (log.isDebugEnabled()) {

-				log

-						.debug("File already exists. Check to see if we need rename existing file");

-			}

-			if (documentCount == 1) {

-				File backupPdfFile = new File(newFilename);

-				newPdfFile.renameTo(backupPdfFile);

-			}

-			newPdfFile = new File(newFilename);

-		}

-		return;

-	}

-	protected void createListFile() throws createListFileException {

-		PrintWriter tiffFileListFile = null;

-		String s;

-		// Must have pages to sort! 

-		if (_pages.length == 0) {

-			log.error("Internal Error: _tiffPage == null!");

-			throw new createListFileException("No pages found in the document!");

-		}

-		// Sort TIFF files into the correct page order

-		WssrdFileComparator fileComparator = new WssrdFileComparator();

-		Arrays.sort(_pages, fileComparator);

-		if (log.isDebugEnabled()) {

-			log.debug("Creating list file for C42PDF");

-		}

-		try {

-			File tiffFileList = new File(_workingDir + File.separator

-					+ _fileList);

-			if (tiffFileList.exists()) {

-				tiffFileList.delete();

-			}

-			tiffFileListFile = new PrintWriter(new BufferedWriter(

-					new FileWriter(_workingDir + File.separator + _fileList)));

-			for (int i = 0; i < _pages.length; i++) {

-				s = _workingDir + File.separator + _pages[i];

-				if (log.isDebugEnabled()) {

-					log.debug(s);

-				}

-				tiffFileListFile.println(s);

-			}

-		} catch (IOException e) {

-			e.printStackTrace();

-			throw new createListFileException(e.toString());

-		} finally {

-			if (tiffFileListFile != null) {

-				tiffFileListFile.close();

-			}

-			if (log.isDebugEnabled()) {

-				log.debug("Finished Creating list file for C42PDF");

-			}

-			return;

-		}

-	}

-	protected void renamePDFFile() throws CreatePDFFileException {

-		String newFileName = _workingDir + File.separator + _localFilename

-				+ EXTENTION;

-		String oldWssrdFile = _workingDir + File.separator + _pages[0];

-		try {

-			FileUtils.renameFile(oldWssrdFile, newFileName);

-		} catch (IOException e) {

-			String msg = "The following error occurred " + e.getMessage();

-			log.warn(msg);

-			throw new CreatePDFFileException("Could not rename PDF File");

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test188/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test188/A_in.js
deleted file mode 100644
index ed990e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test188/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class A {

-	public void getDocument() {

-		while (true) {

-			newFilename =

-				(new StringBuffer(_workingDir).append(File.separator)

-											  .append(_localFilename)

-											  .append(documentCount)

-											  .append(EXTENTION)).toString();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test188/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test188/A_out.js
deleted file mode 100644
index 668aa68..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test188/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-	public void getDocument() {

-		while (true) {

-			newFilename = (new StringBuffer(_workingDir).append(File.separator)

-					.append(_localFilename).append(documentCount)

-					.append(EXTENTION)).toString();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test189/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test189/A_in.js
deleted file mode 100644
index 93da9d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test189/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class A {

-	public void getDocument() {

-		while (true) {

-			newFilename =

-				(((new StringBuffer(_workingDir)).append(File.separator))

-											  .append(_localFilename)

-											  .append(documentCount)

-											  .append(EXTENTION)).toString();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test189/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test189/A_out.js
deleted file mode 100644
index 8a78a10..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test189/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-	public void getDocument() {

-		while (true) {

-			newFilename = (((new StringBuffer(_workingDir))

-					.append(File.separator)).append(_localFilename).append(

-					documentCount).append(EXTENTION)).toString();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test190/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test190/A_in.js
deleted file mode 100644
index 2a9db5e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test190/A_in.js
+++ /dev/null
@@ -1,50 +0,0 @@
-public class A {

-	private void updateAnnotation() {

-		while (this.astLengthPtr >= 0) {

-			// Starting with the stack top, so get references (eg. Expression) coming from @see declarations

-			if (this.astLengthPtr == 2) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.references = new Expression[size];

-					for (int i=(size-1); i>=0; i--) {

-						this.annotation.references[i] = (Expression) this.astStack[astPtr--];

-					}

-				}

-			}

-

-			// Then continuing with class names (eg. TypeReference) coming from @throw/@exception declarations

-			else if (this.astLengthPtr == 1) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.thrownExceptions = new TypeReference[size];

-					for (int i=(size-1); i>=0; i--) {

-						this.annotation.thrownExceptions[i] = (TypeReference) this.astStack[astPtr--];

-					}

-				}

-			}

-

-			// Finally, finishing with parameters nales (ie. Argument) coming from @param declaration

-			else if (this.astLengthPtr == 0) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.parameters = new AnnotationArgument[size];

-					for (int i=(size-1); i>=0; i--) {

-						this.annotation.parameters[i] = (AnnotationArgument) this.astStack[astPtr--];

-					}

-				}

-			}

-

-			// Flag all nodes got from other ast length stack pointer values as invalid....

-			// TODO: (frederic) To be changed when mixed tags declaration will be accepted 

-			else {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					for (int i=0; i<size; i++) {

-						AstNode node = this.astStack[astPtr--];

-						this.sourceParser.problemReporter().annotationUnexpectedTag(node.sourceStart, node.sourceEnd);

-					}

-				}

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test190/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test190/A_out.js
deleted file mode 100644
index d7e92b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test190/A_out.js
+++ /dev/null
@@ -1,52 +0,0 @@
-public class A {

-	private void updateAnnotation() {

-		while (this.astLengthPtr >= 0) {

-			// Starting with the stack top, so get references (eg. Expression) coming from @see declarations

-			if (this.astLengthPtr == 2) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.references = new Expression[size];

-					for (int i = (size - 1); i >= 0; i--) {

-						this.annotation.references[i] = (Expression) this.astStack[astPtr--];

-					}

-				}

-			}

-

-			// Then continuing with class names (eg. TypeReference) coming from @throw/@exception declarations

-			else if (this.astLengthPtr == 1) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.thrownExceptions = new TypeReference[size];

-					for (int i = (size - 1); i >= 0; i--) {

-						this.annotation.thrownExceptions[i] = (TypeReference) this.astStack[astPtr--];

-					}

-				}

-			}

-

-			// Finally, finishing with parameters nales (ie. Argument) coming from @param declaration

-			else if (this.astLengthPtr == 0) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.parameters = new AnnotationArgument[size];

-					for (int i = (size - 1); i >= 0; i--) {

-						this.annotation.parameters[i] = (AnnotationArgument) this.astStack[astPtr--];

-					}

-				}

-			}

-

-			// Flag all nodes got from other ast length stack pointer values as invalid....

-			// TODO: (frederic) To be changed when mixed tags declaration will be accepted 

-			else {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					for (int i = 0; i < size; i++) {

-						AstNode node = this.astStack[astPtr--];

-						this.sourceParser.problemReporter()

-								.annotationUnexpectedTag(node.sourceStart,

-										node.sourceEnd);

-					}

-				}

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test191/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test191/A_in.js
deleted file mode 100644
index e336a3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test191/A_in.js
+++ /dev/null
@@ -1,44 +0,0 @@
-public class A {

-	private void updateAnnotation() {

-		while (this.astLengthPtr >= 0) {

-			// Starting with the stack top, so get references (eg. Expression) coming from @see declarations

-			if (this.astLengthPtr == 2) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-			}

-

-			// Then continuing with class names (eg. TypeReference) coming from @throw/@exception declarations

-			else if (this.astLengthPtr == 1) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.thrownExceptions = new TypeReference[size];

-					for (int i=(size-1); i>=0; i--) {

-						this.annotation.thrownExceptions[i] = (TypeReference) this.astStack[astPtr--];

-					}

-				}

-			}

-

-			// Finally, finishing with parameters nales (ie. Argument) coming from @param declaration

-			else if (this.astLengthPtr == 0) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.parameters = new AnnotationArgument[size];

-					for (int i=(size-1); i>=0; i--) {

-						this.annotation.parameters[i] = (AnnotationArgument) this.astStack[astPtr--];

-					}

-				}

-			}

-

-			// Flag all nodes got from other ast length stack pointer values as invalid....

-			// TODO: (frederic) To be changed when mixed tags declaration will be accepted 

-			else {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					for (int i=0; i<size; i++) {

-						AstNode node = this.astStack[astPtr--];

-						this.sourceParser.problemReporter().annotationUnexpectedTag(node.sourceStart, node.sourceEnd);

-					}

-				}

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test191/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test191/A_out.js
deleted file mode 100644
index 34ca495..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test191/A_out.js
+++ /dev/null
@@ -1,43 +0,0 @@
-public class A {

-	private void updateAnnotation() {

-		while (this.astLengthPtr >= 0) {

-			// Starting with the stack top, so get references (eg. Expression) coming from @see declarations

-			if (this.astLengthPtr == 2) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-			}

-			// Then continuing with class names (eg. TypeReference) coming from @throw/@exception declarations

-			else if (this.astLengthPtr == 1) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.thrownExceptions = new TypeReference[size];

-					for (int i = (size - 1); i >= 0; i--) {

-						this.annotation.thrownExceptions[i] = (TypeReference) this.astStack[astPtr--];

-					}

-				}

-			}

-			// Finally, finishing with parameters nales (ie. Argument) coming from @param declaration

-			else if (this.astLengthPtr == 0) {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					this.annotation.parameters = new AnnotationArgument[size];

-					for (int i = (size - 1); i >= 0; i--) {

-						this.annotation.parameters[i] = (AnnotationArgument) this.astStack[astPtr--];

-					}

-				}

-			}

-			// Flag all nodes got from other ast length stack pointer values as invalid....

-			// TODO: (frederic) To be changed when mixed tags declaration will be accepted 

-			else {

-				int size = this.astLengthStack[this.astLengthPtr--];

-				if (size > 0) {

-					for (int i = 0; i < size; i++) {

-						AstNode node = this.astStack[astPtr--];

-						this.sourceParser.problemReporter()

-								.annotationUnexpectedTag(node.sourceStart,

-										node.sourceEnd);

-					}

-				}

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test192/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test192/A_in.js
deleted file mode 100644
index 877ee06..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test192/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-    protected int   lParenPos, rParenPos;    //accurate only when used !

-

-    //modifiers dimensions nestedType etc.......

-    protected int   l;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test192/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test192/A_out.js
deleted file mode 100644
index 6ae676a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test192/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	protected int	lParenPos, rParenPos;	//accurate only when used !

-	//modifiers dimensions nestedType etc.......

-	protected int	l;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test193/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test193/A_in.js
deleted file mode 100644
index b7bca36..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test193/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-cancel.addActionListener(new ActionListener() {

-public void actionPerformed(ActionEvent e) {

-CancelPressed(); }

-}

-);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test193/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test193/A_out.js
deleted file mode 100644
index 3f73142..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test193/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-cancel.addActionListener(new ActionListener() {

-	public void actionPerformed(ActionEvent e) {

-		CancelPressed();

-	}

-});
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test194/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test194/A_in.js
deleted file mode 100644
index 4309ae3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test194/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public void setFieldObject (Object anObject,PreparedStatement aStatement,int anIndex) throws SQLException{

-if (getSQLType() ==  Types.BINARY || getSQLType() == Types.VARBINARY)

-aStatement.setBytes(anIndex,(byte[])anObject);

-else

-aStatement.setObject(anIndex, anObject, getSQLType());

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test194/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test194/A_out.js
deleted file mode 100644
index 1b543de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test194/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public void setFieldObject(Object anObject, PreparedStatement aStatement,

-		int anIndex) throws SQLException

-{

-	if (getSQLType() == Types.BINARY || getSQLType() == Types.VARBINARY)

-		aStatement.setBytes(anIndex, (byte[]) anObject);

-	else

-		aStatement.setObject(anIndex, anObject, getSQLType());

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test195/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test195/A_in.js
deleted file mode 100644
index 4309ae3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test195/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public void setFieldObject (Object anObject,PreparedStatement aStatement,int anIndex) throws SQLException{

-if (getSQLType() ==  Types.BINARY || getSQLType() == Types.VARBINARY)

-aStatement.setBytes(anIndex,(byte[])anObject);

-else

-aStatement.setObject(anIndex, anObject, getSQLType());

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test195/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test195/A_out.js
deleted file mode 100644
index ad50b0d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test195/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public void setFieldObject(Object anObject, PreparedStatement aStatement,

-		int anIndex) throws SQLException {

-	if (getSQLType() == Types.BINARY || getSQLType() == Types.VARBINARY)

-		aStatement.setBytes(anIndex, (byte[]) anObject);

-	else

-		aStatement.setObject(anIndex, anObject, getSQLType());

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test196/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test196/A_in.js
deleted file mode 100644
index 328555e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test196/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public void newMethod() {int a = 1;a += 1;a -= 1;a *= 1;a /= 1;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test196/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test196/A_out.js
deleted file mode 100644
index 02df092..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test196/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public void newMethod()

-{

-	int a = 1;

-	a += 1;

-	a -= 1;

-	a *= 1;

-	a /= 1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test197/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test197/A_in.js
deleted file mode 100644
index 328555e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test197/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public void newMethod() {int a = 1;a += 1;a -= 1;a *= 1;a /= 1;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test197/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test197/A_out.js
deleted file mode 100644
index f4f9972..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test197/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public void newMethod() {

-	int a = 1;

-	a += 1;

-	a -= 1;

-	a *= 1;

-	a /= 1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test198/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test198/A_in.js
deleted file mode 100644
index 0a8770b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test198/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public String individualToString() {

-	StringBuffer buffer = new StringBuffer("Exception flow context");

-	int length = handledExceptions.length;

-	for (int i = 0; i < length; i++) {

-		buffer.append('[').append(handledExceptions[i].readableName());

-		if (isReached[i]) {

-			buffer.append("-reached");

-		} else {if (isMasked[i])

-				buffer.append("-masked");

-			else buffer.append("-not reached");

-	} buffer.append('-').append(initsOnExceptions[i].toString()).append(']');

-} return buffer.toString();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test198/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test198/A_out.js
deleted file mode 100644
index 8a10aab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test198/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public String individualToString() {

-	StringBuffer buffer = new StringBuffer("Exception flow context");

-	int length = handledExceptions.length;

-	for (int i = 0; i < length; i++) {

-		buffer.append('[').append(handledExceptions[i].readableName());

-		if (isReached[i]) {

-			buffer.append("-reached");

-		} else {

-			if (isMasked[i])

-				buffer.append("-masked");

-			else

-				buffer.append("-not reached");

-		}

-		buffer.append('-').append(initsOnExceptions[i].toString()).append(']');

-	}

-	return buffer.toString();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test199/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test199/A_in.js
deleted file mode 100644
index 0a8770b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test199/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public String individualToString() {

-	StringBuffer buffer = new StringBuffer("Exception flow context");

-	int length = handledExceptions.length;

-	for (int i = 0; i < length; i++) {

-		buffer.append('[').append(handledExceptions[i].readableName());

-		if (isReached[i]) {

-			buffer.append("-reached");

-		} else {if (isMasked[i])

-				buffer.append("-masked");

-			else buffer.append("-not reached");

-	} buffer.append('-').append(initsOnExceptions[i].toString()).append(']');

-} return buffer.toString();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test199/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test199/A_out.js
deleted file mode 100644
index eb5fbd9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test199/A_out.js
+++ /dev/null
@@ -1,22 +0,0 @@
-public String individualToString()

-{

-	StringBuffer buffer = new StringBuffer("Exception flow context");

-	int length = handledExceptions.length;

-	for (int i = 0; i < length; i++)

-	{

-		buffer.append('[').append(handledExceptions[i].readableName());

-		if (isReached[i])

-		{

-			buffer.append("-reached");

-		}

-		else

-		{

-			if (isMasked[i])

-				buffer.append("-masked");

-			else

-				buffer.append("-not reached");

-		}

-		buffer.append('-').append(initsOnExceptions[i].toString()).append(']');

-	}

-	return buffer.toString();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test200/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test200/A_in.js
deleted file mode 100644
index 1e47cb0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test200/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-if (((c1 = Character.getNumericValue(source[currentPosition++])) > 15  || c1 < 0)

-|| ((c2 = Character.getNumericValue(source[currentPosition++])) > 15 || c2 < 0)

-|| ((c3 = Character.getNumericValue(source[currentPosition++])) > 15 || c3 < 0)

-|| ((c4 = Character.getNumericValue(source[currentPosition++])) > 15 || c4 < 0)) {

-currentPosition = temp;

-return 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test200/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test200/A_out.js
deleted file mode 100644
index f6d8ccf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test200/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-if (((c1 = Character.getNumericValue(source[currentPosition++])) > 15 || c1 < 0)

-		|| ((c2 = Character.getNumericValue(source[currentPosition++])) > 15 || c2 < 0)

-		|| ((c3 = Character.getNumericValue(source[currentPosition++])) > 15 || c3 < 0)

-		|| ((c4 = Character.getNumericValue(source[currentPosition++])) > 15 || c4 < 0))

-{

-	currentPosition = temp;

-	return 2;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test201/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test201/A_in.js
deleted file mode 100644
index 1e47cb0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test201/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-if (((c1 = Character.getNumericValue(source[currentPosition++])) > 15  || c1 < 0)

-|| ((c2 = Character.getNumericValue(source[currentPosition++])) > 15 || c2 < 0)

-|| ((c3 = Character.getNumericValue(source[currentPosition++])) > 15 || c3 < 0)

-|| ((c4 = Character.getNumericValue(source[currentPosition++])) > 15 || c4 < 0)) {

-currentPosition = temp;

-return 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test201/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test201/A_out.js
deleted file mode 100644
index 06bb5d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test201/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-if (((c1 = Character.getNumericValue(source[currentPosition++])) > 15 || c1 < 0)

-		|| ((c2 = Character.getNumericValue(source[currentPosition++])) > 15 || c2 < 0)

-		|| ((c3 = Character.getNumericValue(source[currentPosition++])) > 15 || c3 < 0)

-		|| ((c4 = Character.getNumericValue(source[currentPosition++])) > 15 || c4 < 0)) {

-	currentPosition = temp;

-	return 2;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test202/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test202/A_in.js
deleted file mode 100644
index 99af06a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test202/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-{static final char[]

-charArray_a = new char[]{'a'} ,

-charArray_b = new char[]{'b'} ,

-charArray_c = new char[]{'c'} ,

-charArray_d = new char[]{'d'} ;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test202/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test202/A_out.js
deleted file mode 100644
index c9d3b7d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test202/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-{

-	static final char[] charArray_a = new char[]{'a'}, charArray_b = new char[]{'b'}, charArray_c = new char[]{'c'}, charArray_d = new char[]{'d'};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test203/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test203/A_in.js
deleted file mode 100644
index 99af06a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test203/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-{static final char[]

-charArray_a = new char[]{'a'} ,

-charArray_b = new char[]{'b'} ,

-charArray_c = new char[]{'c'} ,

-charArray_d = new char[]{'d'} ;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test203/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test203/A_out.js
deleted file mode 100644
index 99af06a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test203/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-{static final char[]

-charArray_a = new char[]{'a'} ,

-charArray_b = new char[]{'b'} ,

-charArray_c = new char[]{'c'} ,

-charArray_d = new char[]{'d'} ;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test204/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test204/A_in.js
deleted file mode 100644
index 234062e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test204/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-completionKind =

-COMPLETION_LOCAL_TYPES

-| COMPLETION_PRIMITIVE_TYPES

-| COMPLETION_TYPES

-| COMPLETION_FIELDS

-| COMPLETION_METHODS

-| COMPLETION_LOCALS;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test204/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test204/A_out.js
deleted file mode 100644
index e37cedf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test204/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-completionKind = COMPLETION_LOCAL_TYPES | COMPLETION_PRIMITIVE_TYPES

-		| COMPLETION_TYPES | COMPLETION_FIELDS | COMPLETION_METHODS

-		| COMPLETION_LOCALS;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test205/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test205/A_in.js
deleted file mode 100644
index 27c33e0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test205/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Do something

-fElement = element;

-fFilter = filter;

-fWorkspace = ((LFBaseElement) fElement).getWorkspace();

-

-// Do something else

-setPackageStatus();

-if (fIsResourceFolderFields) setResourceFolderStatus();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test205/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test205/A_out.js
deleted file mode 100644
index fa8d85d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test205/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Do something

-fElement = element;

-fFilter = filter;

-fWorkspace = ((LFBaseElement) fElement).getWorkspace();

-

-// Do something else

-setPackageStatus();

-if (fIsResourceFolderFields)

-	setResourceFolderStatus();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test206/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test206/A_in.js
deleted file mode 100644
index 9f55a0e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test206/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if (true) try {throw new Exception();} catch(Exception e) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test206/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test206/A_out.js
deleted file mode 100644
index c7dd39c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test206/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-if (true)

-	try

-	{

-		throw new Exception();

-	}

-	catch (Exception e)

-	{

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test207/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test207/A_in.js
deleted file mode 100644
index 9f55a0e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test207/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if (true) try {throw new Exception();} catch(Exception e) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test207/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test207/A_out.js
deleted file mode 100644
index da9beb8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test207/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-if (true)

-	try {

-		throw new Exception();

-	} catch (Exception e) {

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test208/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test208/A_in.js
deleted file mode 100644
index c68b5eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test208/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*

-*			// another comment

-*/

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test208/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test208/A_out.js
deleted file mode 100644
index 512c216..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test208/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*

- *			// another comment

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test209/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test209/A_in.js
deleted file mode 100644
index 108524c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test209/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class MikeClassTest2 {

-

-	//mike	test		2342323

-

-	public static int bob = 3;

-	public static int mike = 3;

-

-	/*my	comments		tabbed*/

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test209/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test209/A_out.js
deleted file mode 100644
index 108524c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test209/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class MikeClassTest2 {

-

-	//mike	test		2342323

-

-	public static int bob = 3;

-	public static int mike = 3;

-

-	/*my	comments		tabbed*/

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test210/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test210/A_in.js
deleted file mode 100644
index e2d62d1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test210/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class MikeClassTest2 {

-

-	//mike	test		2342323

-

-	public static int bob = 3;public static int mike = 3;

-

-	/*my	comments		tabbed*/

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test210/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test210/A_out.js
deleted file mode 100644
index 1196f1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test210/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class MikeClassTest2

-{

-

-	//mike	test		2342323

-

-	public static int bob = 3;

-	public static int mike = 3;

-

-	/*my	comments		tabbed*/

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test211/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test211/A_in.js
deleted file mode 100644
index e2d62d1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test211/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class MikeClassTest2 {

-

-	//mike	test		2342323

-

-	public static int bob = 3;public static int mike = 3;

-

-	/*my	comments		tabbed*/

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test211/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test211/A_out.js
deleted file mode 100644
index ccc05e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test211/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-	public class MikeClassTest2

-	{

-

-		//mike	test		2342323

-

-		public static int bob = 3;

-		public static int mike = 3;

-

-		/*my	comments		tabbed*/

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test212/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test212/A_in.js
deleted file mode 100644
index 96c866e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test212/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-	/**

-	 * This hook is called if the window's close button was pressed, the close menu was selected,

-	 * or the ESCAPE key pressed.

-	 * The default implementation calls <code>close()</code>.

-	 */

-	public void closeBoxPressed() {

-	close();

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test212/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test212/A_out.js
deleted file mode 100644
index ca23296..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test212/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**

- * This hook is called if the window's close button was pressed, the close menu was selected,

- * or the ESCAPE key pressed.

- * The default implementation calls <code>close()</code>.

- */

-public void closeBoxPressed()

-{

-	close();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test213/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test213/A_in.js
deleted file mode 100644
index 96c866e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test213/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-	/**

-	 * This hook is called if the window's close button was pressed, the close menu was selected,

-	 * or the ESCAPE key pressed.

-	 * The default implementation calls <code>close()</code>.

-	 */

-	public void closeBoxPressed() {

-	close();

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test213/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test213/A_out.js
deleted file mode 100644
index 44974cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test213/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**

- * This hook is called if the window's close button was pressed, the close menu was selected,

- * or the ESCAPE key pressed.

- * The default implementation calls <code>close()</code>.

- */

-public void closeBoxPressed() {

-	close();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test214/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test214/A_in.js
deleted file mode 100644
index d9fbb16..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test214/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-String command = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 

-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 

-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 

-// comment

-"a";

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test214/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test214/A_out.js
deleted file mode 100644
index a41eed8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test214/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-String command = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

-		+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

-		+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" +

-		// comment

-		"a";
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test215/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test215/A_in.js
deleted file mode 100644
index e45ca70..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test215/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class TestFormatCode { class InnerClass {

-public void innerMethod() {}}

-public void outerMethod() throws Exception {

-		Object anonymousClass = new Object() {

-			public void anonymousMethod() {}};

-		synchronized(this){}}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test215/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test215/A_out.js
deleted file mode 100644
index ac1c0ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test215/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class TestFormatCode {

-	class InnerClass {

-		public void innerMethod() {

-		}

-	}

-	public void outerMethod() throws Exception {

-		Object anonymousClass = new Object() {

-			public void anonymousMethod() {

-			}

-		};

-		synchronized (this) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test216/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test216/A_in.js
deleted file mode 100644
index e45ca70..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test216/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class TestFormatCode { class InnerClass {

-public void innerMethod() {}}

-public void outerMethod() throws Exception {

-		Object anonymousClass = new Object() {

-			public void anonymousMethod() {}};

-		synchronized(this){}}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test216/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test216/A_out.js
deleted file mode 100644
index 9f23a71..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test216/A_out.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public class TestFormatCode

-{

-	class InnerClass

-	{

-		public void innerMethod()

-		{

-		}

-	}

-	public void outerMethod() throws Exception

-	{

-		Object anonymousClass = new Object()

-		{

-			public void anonymousMethod()

-			{

-			}

-		};

-		synchronized (this)

-		{

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test217/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test217/A_in.js
deleted file mode 100644
index 17eb7ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test217/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public void foo()

-{B b = new B();b.bar();for(int i = 0, max = b.length(); i < max; i++){

-System.out.println(i);}}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test217/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test217/A_out.js
deleted file mode 100644
index 168fd9e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test217/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public void foo()

-{

-	B b = new B();

-	b.bar();

-	for (int i = 0, max = b.length(); i < max; i++)

-	{

-		System.out.println(i);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test218/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test218/A_in.js
deleted file mode 100644
index 17eb7ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test218/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public void foo()

-{B b = new B();b.bar();for(int i = 0, max = b.length(); i < max; i++){

-System.out.println(i);}}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test218/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test218/A_out.js
deleted file mode 100644
index 1d6df07..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test218/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-	public void foo() {

-		B b = new B();

-		b.bar();

-		for (int i = 0, max = b.length(); i < max; i++) {

-			System.out.println(i);

-		}

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test219/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test219/A_in.js
deleted file mode 100644
index 17eb7ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test219/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public void foo()

-{B b = new B();b.bar();for(int i = 0, max = b.length(); i < max; i++){

-System.out.println(i);}}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test219/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test219/A_out.js
deleted file mode 100644
index 1d6df07..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test219/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-	public void foo() {

-		B b = new B();

-		b.bar();

-		for (int i = 0, max = b.length(); i < max; i++) {

-			System.out.println(i);

-		}

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test220/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test220/A_in.js
deleted file mode 100644
index 17eb7ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test220/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public void foo()

-{B b = new B();b.bar();for(int i = 0, max = b.length(); i < max; i++){

-System.out.println(i);}}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test220/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test220/A_out.js
deleted file mode 100644
index 12f256e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test220/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-	public void foo()

-	{

-		B b = new B();

-		b.bar();

-		for (int i = 0, max = b.length(); i < max; i++)

-		{

-			System.out.println(i);

-		}

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test221/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test221/A_in.js
deleted file mode 100644
index aa259c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test221/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-private int getDivColumnNum(TableData t, String divId)

-{

-Vector v = t.getColNames();

-for (int i = 0; i < v.size(); i++)

-{

-Object o = v.elementAt(i);

-if (o instanceof Division)

-{

-Division div = (Division) o;

-if (div.getId().equals(divId))

-{

-return i;

-}

-}

-}

-return -1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test221/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test221/A_out.js
deleted file mode 100644
index af8b9cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test221/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-private int getDivColumnNum(TableData t, String divId)

-{

-	Vector v = t.getColNames();

-	for (int i = 0; i < v.size(); i++)

-	{

-		Object o = v.elementAt(i);

-		if (o instanceof Division)

-		{

-			Division div = (Division) o;

-			if (div.getId().equals(divId))

-			{

-				return i;

-			}

-		}

-	}

-	return -1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test222/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test222/A_in.js
deleted file mode 100644
index aa259c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test222/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-private int getDivColumnNum(TableData t, String divId)

-{

-Vector v = t.getColNames();

-for (int i = 0; i < v.size(); i++)

-{

-Object o = v.elementAt(i);

-if (o instanceof Division)

-{

-Division div = (Division) o;

-if (div.getId().equals(divId))

-{

-return i;

-}

-}

-}

-return -1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test222/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test222/A_out.js
deleted file mode 100644
index 985efa6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test222/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-private int getDivColumnNum(TableData t, String divId) {

-	Vector v = t.getColNames();

-	for (int i = 0; i < v.size(); i++) {

-		Object o = v.elementAt(i);

-		if (o instanceof Division) {

-			Division div = (Division) o;

-			if (div.getId().equals(divId)) {

-				return i;

-			}

-		}

-	}

-	return -1;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test223/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test223/A_in.js
deleted file mode 100644
index 7602cd8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test223/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-return new Runnable() {public void run() {System.out.println();}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test223/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test223/A_out.js
deleted file mode 100644
index 3de6128..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test223/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-return new Runnable() {

-	public void run() {

-		System.out.println();

-	}

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test224/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test224/A_in.js
deleted file mode 100644
index 7602cd8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test224/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-return new Runnable() {public void run() {System.out.println();}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test224/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test224/A_out.js
deleted file mode 100644
index 3d41ce9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test224/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-return new Runnable()

-{

-	public void run()

-	{

-		System.out.println();

-	}

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test225/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test225/A_in.js
deleted file mode 100644
index 80c8d05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test225/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-System.out.println(); int i = 0;return new Runnable() {public void run() {System.out.println();}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test225/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test225/A_out.js
deleted file mode 100644
index e64ebb6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test225/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-System.out.println();

-int i = 0;

-return new Runnable() {

-	public void run() {

-		System.out.println();

-	}

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test226/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test226/A_in.js
deleted file mode 100644
index 80c8d05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test226/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-System.out.println(); int i = 0;return new Runnable() {public void run() {System.out.println();}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test226/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test226/A_out.js
deleted file mode 100644
index e861a31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test226/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-System.out.println();

-int i = 0;

-return new Runnable()

-{

-	public void run()

-	{

-		System.out.println();

-	}

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test227/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test227/A_in.js
deleted file mode 100644
index 254a30e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test227/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-try {System.out.println(); int i = 0;return new Runnable() {public void run() {System.out.println();}};}catch(Exception e){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test227/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test227/A_out.js
deleted file mode 100644
index 04718cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test227/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-try {

-	System.out.println();

-	int i = 0;

-	return new Runnable() {

-		public void run() {

-			System.out.println();

-		}

-	};

-} catch (Exception e) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test228/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test228/A_in.js
deleted file mode 100644
index 254a30e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test228/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-try {System.out.println(); int i = 0;return new Runnable() {public void run() {System.out.println();}};}catch(Exception e){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test228/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test228/A_out.js
deleted file mode 100644
index 3374d76..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test228/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-try

-{

-	System.out.println();

-	int i = 0;

-	return new Runnable()

-	{

-		public void run()

-		{

-			System.out.println();

-		}

-	};

-}

-catch (Exception e)

-{

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test229/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test229/A_in.js
deleted file mode 100644
index 254a30e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test229/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-try {System.out.println(); int i = 0;return new Runnable() {public void run() {System.out.println();}};}catch(Exception e){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test229/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test229/A_out.js
deleted file mode 100644
index 04718cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test229/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-try {

-	System.out.println();

-	int i = 0;

-	return new Runnable() {

-		public void run() {

-			System.out.println();

-		}

-	};

-} catch (Exception e) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test230/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test230/A_in.js
deleted file mode 100644
index 254a30e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test230/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-try {System.out.println(); int i = 0;return new Runnable() {public void run() {System.out.println();}};}catch(Exception e){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test230/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test230/A_out.js
deleted file mode 100644
index 3374d76..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test230/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-try

-{

-	System.out.println();

-	int i = 0;

-	return new Runnable()

-	{

-		public void run()

-		{

-			System.out.println();

-		}

-	};

-}

-catch (Exception e)

-{

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test231/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test231/A_in.js
deleted file mode 100644
index aa8ebb2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test231/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public void foo(String s) {int i=4, k=45,l,p=3;return i+k+(l=2)+p;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test231/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test231/A_out.js
deleted file mode 100644
index bde21ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test231/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public void foo(String s)

-{

-	int i = 4, k = 45, l, p = 3;

-	return i + k + (l = 2) + p;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test232/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test232/A_in.js
deleted file mode 100644
index aa8ebb2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test232/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public void foo(String s) {int i=4, k=45,l,p=3;return i+k+(l=2)+p;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test232/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test232/A_out.js
deleted file mode 100644
index f2855df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test232/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public void foo(String s) {

-	int i = 4, k = 45, l, p = 3;

-	return i + k + (l = 2) + p;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test233/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test233/A_in.js
deleted file mode 100644
index aa8ebb2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test233/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public void foo(String s) {int i=4, k=45,l,p=3;return i+k+(l=2)+p;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test233/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test233/A_out.js
deleted file mode 100644
index 582a95e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test233/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	public void foo(String s) {

-		int i = 4, k = 45, l, p = 3;

-		return i + k + (l = 2) + p;

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test234/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test234/A_in.js
deleted file mode 100644
index 73f9f7b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test234/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class firstClass {

-int a = 0;

-Object o = new Object();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test234/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test234/A_out.js
deleted file mode 100644
index 5a3f4ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test234/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class firstClass {

-	int a = 0;

-	Object o = new Object();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test235/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test235/A_in.js
deleted file mode 100644
index 73f9f7b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test235/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class firstClass {

-int a = 0;

-Object o = new Object();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test235/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test235/A_out.js
deleted file mode 100644
index 1898afd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test235/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class firstClass

-{

-	int a = 0;

-	Object o = new Object();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test236/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test236/A_in.js
deleted file mode 100644
index 65007e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test236/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class firstClass {

-int a;

-Object o;

-firstClass() {

-a = 0;

-	o = new Object();

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test236/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test236/A_out.js
deleted file mode 100644
index 98827f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test236/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class firstClass {

-	int a;

-	Object o;

-	firstClass() {

-		a = 0;

-		o = new Object();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test237/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test237/A_in.js
deleted file mode 100644
index 65007e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test237/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class firstClass {

-int a;

-Object o;

-firstClass() {

-a = 0;

-	o = new Object();

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test237/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test237/A_out.js
deleted file mode 100644
index 465aedd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test237/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class firstClass

-{

-	int a;

-	Object o;

-	firstClass()

-	{

-		a = 0;

-		o = new Object();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test238/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test238/A_in.js
deleted file mode 100644
index 8c32605..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test238/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public static String getLine() {

-try {

-return textIn.readLine();} catch (IOException e) {

-//Should never happen, isReady() tests for errors

-doSomething();

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test238/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test238/A_out.js
deleted file mode 100644
index b0b1076..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test238/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public static String getLine() {

-	try {

-		return textIn.readLine();

-	} catch (IOException e) {

-		//Should never happen, isReady() tests for errors

-		doSomething();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test239/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test239/A_in.js
deleted file mode 100644
index 8c32605..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test239/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public static String getLine() {

-try {

-return textIn.readLine();} catch (IOException e) {

-//Should never happen, isReady() tests for errors

-doSomething();

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test239/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test239/A_out.js
deleted file mode 100644
index d735af5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test239/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public static String getLine()

-{

-	try

-	{

-		return textIn.readLine();

-	}

-	catch (IOException e)

-	{

-		//Should never happen, isReady() tests for errors

-		doSomething();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test240/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test240/A_in.js
deleted file mode 100644
index c1ccb3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test240/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Tests if no extra indentation is inserted before

-				the 2nd method call on progressBar

-			*/

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test240/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test240/A_out.js
deleted file mode 100644
index 2191017..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test240/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Tests if no extra indentation is inserted before

- the 2nd method call on progressBar

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test241/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test241/A_in.js
deleted file mode 100644
index c1ccb3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test241/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Tests if no extra indentation is inserted before

-				the 2nd method call on progressBar

-			*/

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test241/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test241/A_out.js
deleted file mode 100644
index 2191017..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test241/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Tests if no extra indentation is inserted before

- the 2nd method call on progressBar

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test242/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test242/A_in.js
deleted file mode 100644
index 394bd55..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test242/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Tests if no extra indentation is inserted before

-*	the	2nd	method			call on progressBar

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test242/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test242/A_out.js
deleted file mode 100644
index 3d2791e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test242/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Tests if no extra indentation is inserted before

- *	the	2nd	method			call on progressBar

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test243/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test243/A_in.js
deleted file mode 100644
index 394bd55..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test243/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Tests if no extra indentation is inserted before

-*	the	2nd	method			call on progressBar

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test243/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test243/A_out.js
deleted file mode 100644
index 3d2791e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test243/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Tests if no extra indentation is inserted before

- *	the	2nd	method			call on progressBar

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test244/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test244/A_in.js
deleted file mode 100644
index cb08b76..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test244/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests if no extra indentation is inserted before

-		if (n > 0) {

-			return n * fact(n-1)

-		} else {

-			return 1;

-		}

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test244/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test244/A_out.js
deleted file mode 100644
index 63cbbac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test244/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests if no extra indentation is inserted before

- if (n > 0) {

- return n * fact(n-1)

- } else {

- return 1;

- }

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test245/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test245/A_in.js
deleted file mode 100644
index cb08b76..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test245/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests if no extra indentation is inserted before

-		if (n > 0) {

-			return n * fact(n-1)

-		} else {

-			return 1;

-		}

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test245/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test245/A_out.js
deleted file mode 100644
index 63cbbac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test245/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests if no extra indentation is inserted before

- if (n > 0) {

- return n * fact(n-1)

- } else {

- return 1;

- }

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test246/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test246/A_in.js
deleted file mode 100644
index 4c1d8ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test246/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-		/* Tests if no extra indentation is inserted before

-		 *		if (n > 0) {

-		 *			return n * fact(n-1)

-		 *		} else {

-		 *			return 1;

-		 *		}

-		 */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test246/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test246/A_out.js
deleted file mode 100644
index d4da6fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test246/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests if no extra indentation is inserted before

- *		if (n > 0) {

- *			return n * fact(n-1)

- *		} else {

- *			return 1;

- *		}

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test247/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test247/A_in.js
deleted file mode 100644
index 4c1d8ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test247/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-		/* Tests if no extra indentation is inserted before

-		 *		if (n > 0) {

-		 *			return n * fact(n-1)

-		 *		} else {

-		 *			return 1;

-		 *		}

-		 */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test247/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test247/A_out.js
deleted file mode 100644
index d4da6fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test247/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests if no extra indentation is inserted before

- *		if (n > 0) {

- *			return n * fact(n-1)

- *		} else {

- *			return 1;

- *		}

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test248/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test248/A_in.js
deleted file mode 100644
index 1d13939..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test248/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-		/* Tests	if	no	extra indentation is inserted before

-		 *		if (n > 0)			{

-		 *			return n * fact(n-1)

-		 *		} else {

-		 *			return 1;

-		 *		}

-		 */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test248/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test248/A_out.js
deleted file mode 100644
index d4b336d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test248/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests	if	no	extra indentation is inserted before

- *		if (n > 0)			{

- *			return n * fact(n-1)

- *		} else {

- *			return 1;

- *		}

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test249/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test249/A_in.js
deleted file mode 100644
index bbdf9dc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test249/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-		/* Tests	if	no	extra indentation is inserted before

-		*		if (n > 0)			{

-		*			return n * fact(n-1)

-		*		} else {

-		*			return 1;

-		*		}

-		*/

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test249/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test249/A_out.js
deleted file mode 100644
index d4b336d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test249/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests	if	no	extra indentation is inserted before

- *		if (n > 0)			{

- *			return n * fact(n-1)

- *		} else {

- *			return 1;

- *		}

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test250/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test250/A_in.js
deleted file mode 100644
index 1b15010..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test250/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-		/* Tests	if	no	extra indentation is inserted before

-	*		if (n > 0)			{

-	*				return n * fact(n-1)

-	*			} else {

-    *				return 1;

-	*			}

-		 */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test250/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test250/A_out.js
deleted file mode 100644
index 1d04711..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test250/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests	if	no	extra indentation is inserted before

- *		if (n > 0)			{

- *				return n * fact(n-1)

- *			} else {

- *				return 1;

- *			}

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test251/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test251/A_in.js
deleted file mode 100644
index 0771c80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test251/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-		/* Tests	if	no	extra indentation is inserted before

-		 *		if (n > 0)			{

-		 *			return n * fact(n-1)

-		 *		} else {

-    	 *			return 1;

-		 *		}

-		 */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test251/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test251/A_out.js
deleted file mode 100644
index d4b336d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test251/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests	if	no	extra indentation is inserted before

- *		if (n > 0)			{

- *			return n * fact(n-1)

- *		} else {

- *			return 1;

- *		}

- */

-int i;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test252/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test252/A_in.js
deleted file mode 100644
index 01be3ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test252/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Tests if no extra indentation is inserted before

-* the 2nd method call on progressBar

- */

-public ProgressPanel(SwingSet swing) {

-progressBar.getAccessibleContext().setAccessibleName("Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test252/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test252/A_out.js
deleted file mode 100644
index a5986a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test252/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Tests if no extra indentation is inserted before

- * the 2nd method call on progressBar

- */

-public ProgressPanel(SwingSet swing) {

-	progressBar.getAccessibleContext().setAccessibleName(

-			"Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test253/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test253/A_in.js
deleted file mode 100644
index 01be3ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test253/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Tests if no extra indentation is inserted before

-* the 2nd method call on progressBar

- */

-public ProgressPanel(SwingSet swing) {

-progressBar.getAccessibleContext().setAccessibleName("Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test253/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test253/A_out.js
deleted file mode 100644
index d198054..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test253/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests if no extra indentation is inserted before

- * the 2nd method call on progressBar

- */

-public ProgressPanel(SwingSet swing)

-{

-	progressBar.getAccessibleContext().setAccessibleName(

-			"Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test254/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test254/A_in.js
deleted file mode 100644
index 3bfd365..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test254/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Tests if no extra indentation is inserted before

- * the 2nd method call on progressBar

- */

-public ProgressPanel(SwingSet swing) {

-progressBar.getAccessibleContext().setAccessibleName("Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test254/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test254/A_out.js
deleted file mode 100644
index a5986a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test254/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Tests if no extra indentation is inserted before

- * the 2nd method call on progressBar

- */

-public ProgressPanel(SwingSet swing) {

-	progressBar.getAccessibleContext().setAccessibleName(

-			"Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test255/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test255/A_in.js
deleted file mode 100644
index 3bfd365..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test255/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Tests if no extra indentation is inserted before

- * the 2nd method call on progressBar

- */

-public ProgressPanel(SwingSet swing) {

-progressBar.getAccessibleContext().setAccessibleName("Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test255/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test255/A_out.js
deleted file mode 100644
index d198054..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test255/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Tests if no extra indentation is inserted before

- * the 2nd method call on progressBar

- */

-public ProgressPanel(SwingSet swing)

-{

-	progressBar.getAccessibleContext().setAccessibleName(

-			"Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test256/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test256/A_in.js
deleted file mode 100644
index 33aee4c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test256/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-do {i++; } while(i < 30);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test256/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test256/A_out.js
deleted file mode 100644
index 352bf60..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test256/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-do {

-	i++;

-} while (i < 30);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test257/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test257/A_in.js
deleted file mode 100644
index bb6acb7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test257/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-do{i++;}while(i < 30);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test257/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test257/A_out.js
deleted file mode 100644
index e912ac9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test257/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-do

-{

-	i++;

-}

-while (i < 30);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test258/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test258/A_in.js
deleted file mode 100644
index 6a0cc14..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test258/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {if (i == 0) {doSomething();doSomethingElse();} else {doThisFinally();}}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test258/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test258/A_out.js
deleted file mode 100644
index df40c20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test258/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class firstClass {

-	int a;

-	Object o;

-	void myMethod() {

-		if (i == 0) {

-			doSomething();

-			doSomethingElse();

-		} else {

-			doThisFinally();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test259/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test259/A_in.js
deleted file mode 100644
index 6a0cc14..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test259/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {if (i == 0) {doSomething();doSomethingElse();} else {doThisFinally();}}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test259/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test259/A_out.js
deleted file mode 100644
index d8204a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test259/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class firstClass

-{

-	int a;

-	Object o;

-	void myMethod()

-	{

-		if (i == 0)

-		{

-			doSomething();

-			doSomethingElse();

-		}

-		else

-		{

-			doThisFinally();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test260/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test260/A_in.js
deleted file mode 100644
index 325328e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test260/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {if (a < 2){doSomething();doSomethingElse();} else {doThisFinally();}}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test260/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test260/A_out.js
deleted file mode 100644
index 728b183..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test260/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class firstClass {

-	int a;

-	Object o;

-	void myMethod() {

-		if (a < 2) {

-			doSomething();

-			doSomethingElse();

-		} else {

-			doThisFinally();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test261/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test261/A_in.js
deleted file mode 100644
index 325328e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test261/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {if (a < 2){doSomething();doSomethingElse();} else {doThisFinally();}}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test261/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test261/A_out.js
deleted file mode 100644
index e5a5b45..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test261/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class firstClass

-{

-	int a;

-	Object o;

-	void myMethod()

-	{

-		if (a < 2)

-		{

-			doSomething();

-			doSomethingElse();

-		}

-		else

-		{

-			doThisFinally();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test262/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test262/A_in.js
deleted file mode 100644
index a5f97ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test262/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {for (int i = 0; i < 2; i++) {doSomething();doSomethingElse();}}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test262/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test262/A_out.js
deleted file mode 100644
index 96d4996..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test262/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class firstClass {

-	int a;

-	Object o;

-	void myMethod() {

-		for (int i = 0; i < 2; i++) {

-			doSomething();

-			doSomethingElse();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test263/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test263/A_in.js
deleted file mode 100644
index a5f97ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test263/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {for (int i = 0; i < 2; i++) {doSomething();doSomethingElse();}}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test263/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test263/A_out.js
deleted file mode 100644
index 0084bc8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test263/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class firstClass

-{

-	int a;

-	Object o;

-	void myMethod()

-	{

-		for (int i = 0; i < 2; i++)

-		{

-			doSomething();

-			doSomethingElse();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test264/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test264/A_in.js
deleted file mode 100644
index 2fe5049..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test264/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {for (int i = 0; i < 2; i++) doSomething();}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test264/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test264/A_out.js
deleted file mode 100644
index 8fb3c26..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test264/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class firstClass {

-	int a;

-	Object o;

-	void myMethod() {

-		for (int i = 0; i < 2; i++)

-			doSomething();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test265/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test265/A_in.js
deleted file mode 100644
index 2fe5049..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test265/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {for (int i = 0; i < 2; i++) doSomething();}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test265/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test265/A_out.js
deleted file mode 100644
index e71ee11..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test265/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class firstClass

-{

-	int a;

-	Object o;

-	void myMethod()

-	{

-		for (int i = 0; i < 2; i++)

-			doSomething();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test266/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test266/A_in.js
deleted file mode 100644
index 14165c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test266/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-currentObject =new MethodDeclaration(flags & getModifiers,modifiersEndPosition,typeName,aName,identifierStartPosition,parameterList,parametersPositions,throwList,throwsPositions,scanner.deprecatedPtr > -1);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test266/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test266/A_out.js
deleted file mode 100644
index 4564552..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test266/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-currentObject = new MethodDeclaration(flags & getModifiers,

-		modifiersEndPosition, typeName, aName, identifierStartPosition,

-		parameterList, parametersPositions, throwList, throwsPositions,

-		scanner.deprecatedPtr > -1);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test267/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test267/A_in.js
deleted file mode 100644
index 14165c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test267/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-currentObject =new MethodDeclaration(flags & getModifiers,modifiersEndPosition,typeName,aName,identifierStartPosition,parameterList,parametersPositions,throwList,throwsPositions,scanner.deprecatedPtr > -1);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test267/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test267/A_out.js
deleted file mode 100644
index 4564552..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test267/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-currentObject = new MethodDeclaration(flags & getModifiers,

-		modifiersEndPosition, typeName, aName, identifierStartPosition,

-		parameterList, parametersPositions, throwList, throwsPositions,

-		scanner.deprecatedPtr > -1);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test268/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test268/A_in.js
deleted file mode 100644
index be62511..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test268/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public ProgressPanel(SwingSet swing) {progressBar = new JProgressBar() {public Dimension getPreferredSize() {return new Dimension(300, super.getPreferredSize().height);		}};	progressBar.getAccessibleContext().setAccessibleName("Text loading progress");}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test268/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test268/A_out.js
deleted file mode 100644
index 5fd43c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test268/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public ProgressPanel(SwingSet swing) {

-	progressBar = new JProgressBar() {

-		public Dimension getPreferredSize() {

-			return new Dimension(300, super.getPreferredSize().height);

-		}

-	};

-	progressBar.getAccessibleContext().setAccessibleName(

-			"Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test269/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test269/A_in.js
deleted file mode 100644
index be62511..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test269/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public ProgressPanel(SwingSet swing) {progressBar = new JProgressBar() {public Dimension getPreferredSize() {return new Dimension(300, super.getPreferredSize().height);		}};	progressBar.getAccessibleContext().setAccessibleName("Text loading progress");}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test269/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test269/A_out.js
deleted file mode 100644
index 2c126b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test269/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public ProgressPanel(SwingSet swing)

-{

-	progressBar = new JProgressBar()

-	{

-		public Dimension getPreferredSize()

-		{

-			return new Dimension(300, super.getPreferredSize().height);

-		}

-	};

-	progressBar.getAccessibleContext().setAccessibleName(

-			"Text loading progress");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test270/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test270/A_in.js
deleted file mode 100644
index 9cd8425..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test270/A_in.js
+++ /dev/null
@@ -1,23 +0,0 @@
-public class firstClass {

-int a;

-	Object o;

-	void myMethod() {

-if (i == 0) {	doSomething();

-	doSomethingElse();

-		} else {

-if (right())		doThis();

-else

-			if (left()) {

-	doThis();

-doThat();

-				} else

-if (up())

-		doThis();

-else {

-doThat();

-				doThat();

-}

-lastThing();

-}

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test270/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test270/A_out.js
deleted file mode 100644
index 5bb4235..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test270/A_out.js
+++ /dev/null
@@ -1,23 +0,0 @@
-public class firstClass {

-	int a;

-	Object o;

-	void myMethod() {

-		if (i == 0) {

-			doSomething();

-			doSomethingElse();

-		} else {

-			if (right())

-				doThis();

-			else if (left()) {

-				doThis();

-				doThat();

-			} else if (up())

-				doThis();

-			else {

-				doThat();

-				doThat();

-			}

-			lastThing();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test271/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test271/A_in.js
deleted file mode 100644
index 9cd8425..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test271/A_in.js
+++ /dev/null
@@ -1,23 +0,0 @@
-public class firstClass {

-int a;

-	Object o;

-	void myMethod() {

-if (i == 0) {	doSomething();

-	doSomethingElse();

-		} else {

-if (right())		doThis();

-else

-			if (left()) {

-	doThis();

-doThat();

-				} else

-if (up())

-		doThis();

-else {

-doThat();

-				doThat();

-}

-lastThing();

-}

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test271/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test271/A_out.js
deleted file mode 100644
index 34f8172..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test271/A_out.js
+++ /dev/null
@@ -1,31 +0,0 @@
-public class firstClass

-{

-	int a;

-	Object o;

-	void myMethod()

-	{

-		if (i == 0)

-		{

-			doSomething();

-			doSomethingElse();

-		}

-		else

-		{

-			if (right())

-				doThis();

-			else if (left())

-			{

-				doThis();

-				doThat();

-			}

-			else if (up())

-				doThis();

-			else

-			{

-				doThat();

-				doThat();

-			}

-			lastThing();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test272/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test272/A_in.js
deleted file mode 100644
index 48329f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test272/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {if (i == 0) {	doSomething();	doSomethingElse();		} else {if (right())		doThis();else			if (left()) {	doThis();doThat();				} else if (up())		doThis();else {doThat();				doThat();switch(a) {case 1: break;case 2: return;case 3:case 4: {}default:System.out.println();}}lastThing();}}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test272/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test272/A_out.js
deleted file mode 100644
index 9d9af7a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test272/A_out.js
+++ /dev/null
@@ -1,35 +0,0 @@
-public class firstClass {

-	int a;

-	Object o;

-	void myMethod() {

-		if (i == 0) {

-			doSomething();

-			doSomethingElse();

-		} else {

-			if (right())

-				doThis();

-			else if (left()) {

-				doThis();

-				doThat();

-			} else if (up())

-				doThis();

-			else {

-				doThat();

-				doThat();

-				switch (a) {

-					case 1 :

-						break;

-					case 2 :

-						return;

-					case 3 :

-					case 4 :

-						{

-						}

-					default :

-						System.out.println();

-				}

-			}

-			lastThing();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test273/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test273/A_in.js
deleted file mode 100644
index 48329f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test273/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class firstClass {int a;Object o;void myMethod() {if (i == 0) {	doSomething();	doSomethingElse();		} else {if (right())		doThis();else			if (left()) {	doThis();doThat();				} else if (up())		doThis();else {doThat();				doThat();switch(a) {case 1: break;case 2: return;case 3:case 4: {}default:System.out.println();}}lastThing();}}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test273/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test273/A_out.js
deleted file mode 100644
index 090b458..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test273/A_out.js
+++ /dev/null
@@ -1,44 +0,0 @@
-public class firstClass

-{

-	int a;

-	Object o;

-	void myMethod()

-	{

-		if (i == 0)

-		{

-			doSomething();

-			doSomethingElse();

-		}

-		else

-		{

-			if (right())

-				doThis();

-			else if (left())

-			{

-				doThis();

-				doThat();

-			}

-			else if (up())

-				doThis();

-			else

-			{

-				doThat();

-				doThat();

-				switch (a)

-				{

-					case 1 :

-						break;

-					case 2 :

-						return;

-					case 3 :

-					case 4 :

-						{

-						}

-					default :

-						System.out.println();

-				}

-			}

-			lastThing();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test274/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test274/A_in.js
deleted file mode 100644
index 6e821e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test274/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public void foo(String s) {synchronized(this) {System.out.println(s.length());}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test274/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test274/A_out.js
deleted file mode 100644
index 1fbe60a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test274/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public void foo(String s) {

-	synchronized (this) {

-		System.out.println(s.length());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test275/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test275/A_in.js
deleted file mode 100644
index 6e821e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test275/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public void foo(String s) {synchronized(this) {System.out.println(s.length());}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test275/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test275/A_out.js
deleted file mode 100644
index 43b8879..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test275/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public void foo(String s)

-{

-	synchronized (this)

-	{

-		System.out.println(s.length());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test276/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test276/A_in.js
deleted file mode 100644
index 3b4eaff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test276/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if (bool) synchronized (this) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test276/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test276/A_out.js
deleted file mode 100644
index 724f751..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test276/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-if (bool)

-	synchronized (this)

-	{

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test277/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test277/A_in.js
deleted file mode 100644
index 6178d1a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test277/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if (bool) synchronized (this) {System.out.println();}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test277/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test277/A_out.js
deleted file mode 100644
index 64245a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test277/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-if (bool)

-	synchronized (this) {

-		System.out.println();

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test278/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test278/A_in.js
deleted file mode 100644
index 351b330..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test278/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-synchronized void foo() {System.out.println();}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test278/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test278/A_out.js
deleted file mode 100644
index 348889e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test278/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-synchronized void foo() {

-	System.out.println();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test279/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test279/A_in.js
deleted file mode 100644
index 0b2eae2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test279/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if (bool) {synchronized (this) {System.out.println();}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test279/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test279/A_out.js
deleted file mode 100644
index d04a4a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test279/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-if (bool)

-{

-	synchronized (this)

-	{

-		System.out.println();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test280/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test280/A_in.js
deleted file mode 100644
index fc58fe9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test280/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class FormaterBug {	public static void main(String[] args) {	}	public synchronized void method1() {	}		public synchronized void method2() {		}	public synchronized void method3() {	}	public synchronized void method4() {	}	public synchronized void method5() {	}	public synchronized void method6() {	}	public synchronized void method7() {	}		}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test280/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test280/A_out.js
deleted file mode 100644
index ff06b67..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test280/A_out.js
+++ /dev/null
@@ -1,27 +0,0 @@
-public class FormaterBug

-{

-	public static void main(String[] args)

-	{

-	}

-	public synchronized void method1()

-	{

-	}

-	public synchronized void method2()

-	{

-	}

-	public synchronized void method3()

-	{

-	}

-	public synchronized void method4()

-	{

-	}

-	public synchronized void method5()

-	{

-	}

-	public synchronized void method6()

-	{

-	}

-	public synchronized void method7()

-	{

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test281/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test281/A_in.js
deleted file mode 100644
index 39a22d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test281/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class FormaterBug {public static void main(String[] args){}public synchronized void method1() {}		public synchronized void method2(){}			public synchronized void method3() {}				public synchronized voidmethod4() {}					public synchronized void method5() {}public						synchronized void method6() {}							public synchronized void method7(){}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test281/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test281/A_out.js
deleted file mode 100644
index e834701..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test281/A_out.js
+++ /dev/null
@@ -1,18 +0,0 @@
-public class FormaterBug {

-	public static void main(String[] args) {

-	}

-	public synchronized void method1() {

-	}

-	public synchronized void method2() {

-	}

-	public synchronized void method3() {

-	}

-	public synchronized voidmethod4() {

-	}

-	public synchronized void method5() {

-	}

-	public synchronized void method6() {

-	}

-	public synchronized void method7() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test282/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test282/A_in.js
deleted file mode 100644
index 903d7b8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test282/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class FormaterBug {

-public static void main(String[] args) {

-Object o = null;

-synchronized (o) {

-// DO something

-}

-// Why does the code formater indent that lines?

-o = o;

-o = null;

-o = o;

-o = null;

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test282/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test282/A_out.js
deleted file mode 100644
index 0866ffc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test282/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class FormaterBug {

-	public static void main(String[] args) {

-		Object o = null;

-		synchronized (o) {

-			// DO something

-		}

-		// Why does the code formater indent that lines?

-		o = o;

-		o = null;

-		o = o;

-		o = null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test283/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test283/A_in.js
deleted file mode 100644
index 116be1f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test283/A_in.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class FormaterBug {

-public static void main(String[] args) {

-Object o = null;

-		o = null;

-		o = o;

-		o = null;

-synchronized (o) {

-// DO something

-}

-// Why does the code formater indent that lines?

-o = o;

-o = null;

-o = o;

-o = null;

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test283/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test283/A_out.js
deleted file mode 100644
index ff402e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test283/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class FormaterBug {

-	public static void main(String[] args) {

-		Object o = null;

-		o = null;

-		o = o;

-		o = null;

-		synchronized (o) {

-			// DO something

-		}

-		// Why does the code formater indent that lines?

-		o = o;

-		o = null;

-		o = o;

-		o = null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test284/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test284/A_in.js
deleted file mode 100644
index 116be1f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test284/A_in.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class FormaterBug {

-public static void main(String[] args) {

-Object o = null;

-		o = null;

-		o = o;

-		o = null;

-synchronized (o) {

-// DO something

-}

-// Why does the code formater indent that lines?

-o = o;

-o = null;

-o = o;

-o = null;

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test284/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test284/A_out.js
deleted file mode 100644
index 57f70dd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test284/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-public class FormaterBug

-{

-	public static void main(String[] args)

-	{

-		Object o = null;

-		o = null;

-		o = o;

-		o = null;

-		synchronized (o)

-		{

-			// DO something

-		}

-		// Why does the code formater indent that lines?

-		o = o;

-		o = null;

-		o = o;

-		o = null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test285/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test285/A_in.js
deleted file mode 100644
index b0afbab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test285/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-try{do{i++;}while(i < 30);if (bool) {synchronized (this) {System.out.println();}}}catch(Exception e) {} finally {i++;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test285/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test285/A_out.js
deleted file mode 100644
index 7c4ed5f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test285/A_out.js
+++ /dev/null
@@ -1,22 +0,0 @@
-try

-{

-	do

-	{

-		i++;

-	}

-	while (i < 30);

-	if (bool)

-	{

-		synchronized (this)

-		{

-			System.out.println();

-		}

-	}

-}

-catch (Exception e)

-{

-}

-finally

-{

-	i++;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test286/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test286/A_in.js
deleted file mode 100644
index c1bf977..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test286/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-try{do{i++;}while(i < 30);}catch(Exception e) {} finally {i++;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test286/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test286/A_out.js
deleted file mode 100644
index 75dd036..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test286/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-try

-{

-	do

-	{

-		i++;

-	}

-	while (i < 30);

-}

-catch (Exception e)

-{

-}

-finally

-{

-	i++;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test287/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test287/A_in.js
deleted file mode 100644
index c1bf977..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test287/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-try{do{i++;}while(i < 30);}catch(Exception e) {} finally {i++;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test287/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test287/A_out.js
deleted file mode 100644
index 7a62bb0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test287/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-try {

-	do {

-		i++;

-	} while (i < 30);

-} catch (Exception e) {

-} finally {

-	i++;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test288/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test288/A_in.js
deleted file mode 100644
index c1bf977..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test288/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-try{do{i++;}while(i < 30);}catch(Exception e) {} finally {i++;}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test288/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test288/A_out.js
deleted file mode 100644
index 1cf87f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test288/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-	try {

-		do {

-			i++;

-		} while (i < 30);

-	} catch (Exception e) {

-	} finally {

-		i++;

-	}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test289/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test289/A_in.js
deleted file mode 100644
index 8f6812e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test289/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-		// OrderedList<BiLetter>

-		OrderedList l = new OrderedList(new Comparator() {

-			/**

-			 * This implementation of the <code>Comparator</code> method

-			 * compares two <code>BiLetterRecord</code> objects using only

-			 * their positions.

-			 */

-			public int compare(Object obj1, Object obj2) {

-			}

-		});
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test289/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test289/A_out.js
deleted file mode 100644
index 597a461..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test289/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-	// OrderedList<BiLetter>

-	OrderedList l = new OrderedList(new Comparator() {

-		/**

-		 * This implementation of the <code>Comparator</code> method

-		 * compares two <code>BiLetterRecord</code> objects using only

-		 * their positions.

-		 */

-		public int compare(Object obj1, Object obj2) {

-		}

-	});
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test290/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test290/A_in.js
deleted file mode 100644
index 430f744..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test290/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public void foo(String s)

-{

-	while (i < 13 && i != 4 && i > 0)

-	{	i += s.length();}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test290/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test290/A_out.js
deleted file mode 100644
index 78ae76a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test290/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public void foo(String s)

-{

-	while (i < 13 && i != 4 && i > 0)

-	{

-		i += s.length();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test291/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test291/A_in.js
deleted file mode 100644
index 7ffd8ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test291/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public void foo(String s) {while(i < 13 && i != 4 && i >0) {i+=s.length();}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test291/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test291/A_out.js
deleted file mode 100644
index 206b39f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test291/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public void foo(String s) {

-	while (i < 13 && i != 4 && i > 0) {

-		i += s.length();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test292/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test292/A_in.js
deleted file mode 100644
index 045c1a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test292/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-static char[] charArray_a = new char[] {'a'}, charArray_b = new char[] {'b'}, charArray_c = new char[] {'c'}, charArray_d = new char[] {'d'};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test292/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test292/A_out.js
deleted file mode 100644
index 93a1a2a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test292/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-static char[] charArray_a = new char[]{'a'}, charArray_b = new char[]{'b'},

-		charArray_c = new char[]{'c'}, charArray_d = new char[]{'d'};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test293/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test293/A_in.js
deleted file mode 100644
index a14c010..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test293/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	public String toStringExpression(int tab) {

-return "<CompleteOnType:" /*nonNLS*/

-+ new String(token) + ">" /*nonNLS*/;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test293/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test293/A_out.js
deleted file mode 100644
index 7c74635..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test293/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public String toStringExpression(int tab)

-{

-	return "<CompleteOnType:" /*nonNLS*/

-			+ new String(token) + ">" /*nonNLS*/;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test294/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test294/A_in.js
deleted file mode 100644
index f19cfe7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test294/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	public String toStringExpression(int tab) {

-return new String(token) + ">" /*nonNLS*/;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test294/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test294/A_out.js
deleted file mode 100644
index 82a1259..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test294/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public String toStringExpression(int tab)

-{

-	return new String(token) + ">" /*nonNLS*/;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test295/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test295/A_in.js
deleted file mode 100644
index becd9cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test295/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	public String toStringExpression(int tab) {

-return tab - 4;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test295/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test295/A_out.js
deleted file mode 100644
index 528ecbe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test295/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public String toStringExpression(int tab) {

-	return tab - 4;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test296/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test296/A_in.js
deleted file mode 100644
index e1a3491..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test296/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public String getMessage() { Document document; String message;

-                try { document = m_config.getDocument();

-                }

-                catch(Throwable t)  {

-                        t.printStackTrace(); message = t.getMessage(); }

-                return (message);}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test296/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test296/A_out.js
deleted file mode 100644
index e66eec5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test296/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-public String getMessage()

-{

-	Document document;

-	String message;

-	try

-	{

-		document = m_config.getDocument();

-	}

-	catch (Throwable t)

-	{

-		t.printStackTrace();

-		message = t.getMessage();

-	}

-	return (message);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test297/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test297/A_in.js
deleted file mode 100644
index 7e891c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test297/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-{

-

-	if (size < currentSize) {

-		try {

-			size = inStream.available();

-		} catch (IOException e) {

-		}

-	} else if (size == currentSize) {

-		++size;

-	} else {

-		--size;

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test297/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test297/A_out.js
deleted file mode 100644
index 00e7f4b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test297/A_out.js
+++ /dev/null
@@ -1,20 +0,0 @@
-{

-    if (size < currentSize)

-    {

-        try

-        {

-            size = inStream.available();

-        }

-        catch (IOException e)

-        {

-        }

-    }

-    else if (size == currentSize)

-    {

-        ++size;

-    }

-    else

-    {

-        --size;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test298/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test298/A_in.js
deleted file mode 100644
index 64f1720..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test298/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test {

-public void mth1(String s1, String s2, String s3, String s4) throws Exception {

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test298/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test298/A_out.js
deleted file mode 100644
index b13c9b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test298/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test {

-	public void mth1(String s1, String s2, String s3, String s4)

-			throws Exception {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test299/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test299/A_in.js
deleted file mode 100644
index 2027178..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test299/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test {

-public void m(String s, String s2, String s3, String s4) throws Exception {

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test299/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test299/A_out.js
deleted file mode 100644
index 33e5fe2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test299/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Test

-{

-	public void m(String s, String s2, String s3, String s4) throws Exception

-	{

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test300/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test300/A_in.js
deleted file mode 100644
index 6a62ade..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test300/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-ee()
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test300/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test300/A_out.js
deleted file mode 100644
index c9db0f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test300/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-		ee()
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test301/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test301/A_in.js
deleted file mode 100644
index 4896a7d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test301/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-int i = (int) 0.0;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test301/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test301/A_out.js
deleted file mode 100644
index eb4d7dd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test301/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-int i = (int)0.0;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test302/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test302/A_in.js
deleted file mode 100644
index edc9b4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test302/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-switch (VARIABLE)

-{

-    case CASE_1 :

-        _foo= false;

-    doSomething1();

-    doSomething2();

-    doSomething3();

-        break;

-

-    case CASE_2 :

-        _foo= true;

-    doSomething4();

-        break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test302/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test302/A_out.js
deleted file mode 100644
index a18f9c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test302/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-switch (VARIABLE) {

-	case CASE_1 :

-		_foo = false;

-		doSomething1();

-		doSomething2();

-		doSomething3();

-		break;

-	case CASE_2 :

-		_foo = true;

-		doSomething4();

-		break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test303/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test303/A_in.js
deleted file mode 100644
index edc9b4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test303/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-switch (VARIABLE)

-{

-    case CASE_1 :

-        _foo= false;

-    doSomething1();

-    doSomething2();

-    doSomething3();

-        break;

-

-    case CASE_2 :

-        _foo= true;

-    doSomething4();

-        break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test303/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test303/A_out.js
deleted file mode 100644
index a18f9c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test303/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-switch (VARIABLE) {

-	case CASE_1 :

-		_foo = false;

-		doSomething1();

-		doSomething2();

-		doSomething3();

-		break;

-	case CASE_2 :

-		_foo = true;

-		doSomething4();

-		break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test304/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test304/A_in.js
deleted file mode 100644
index edc9b4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test304/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-switch (VARIABLE)

-{

-    case CASE_1 :

-        _foo= false;

-    doSomething1();

-    doSomething2();

-    doSomething3();

-        break;

-

-    case CASE_2 :

-        _foo= true;

-    doSomething4();

-        break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test304/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test304/A_out.js
deleted file mode 100644
index c93f436..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test304/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-switch (VARIABLE) {

-	case CASE_1 :

-		_foo = false;

-		doSomething1();

-		doSomething2();

-		doSomething3();

-	break;

-	case CASE_2 :

-		_foo = true;

-		doSomething4();

-	break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test305/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test305/A_in.js
deleted file mode 100644
index 4004116..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test305/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-switch (VARIABLE)

-{

-    case CASE_1 :

-	case CASE_3 :    	

-        _foo= false;

-    doSomething1();

-    doSomething2();

-    doSomething3();

-        break;

-

-    case CASE_2 :

-        _foo= true;

-    doSomething4();

-        break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test305/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test305/A_out.js
deleted file mode 100644
index a539b2d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test305/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-switch (VARIABLE) {

-	case CASE_1 :

-	case CASE_3 :

-	_foo = false;

-	doSomething1();

-	doSomething2();

-	doSomething3();

-		break;

-	case CASE_2 :

-	_foo = true;

-	doSomething4();

-		break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test306/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test306/A_in.js
deleted file mode 100644
index ece4a2b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test306/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-switch (VARIABLE)

-{

-    case CASE_1 :

-	case CASE_3 :    	

-        _foo= false;

-    doSomething1();

-    doSomething2();

-    doSomething3();

-    default :

-        _foo= true;

-    doSomething4();

-        break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test306/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test306/A_out.js
deleted file mode 100644
index a647f69..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test306/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-switch (VARIABLE) {

-	case CASE_1 :

-	case CASE_3 :

-		_foo = false;

-		doSomething1();

-		doSomething2();

-		doSomething3();

-	default :

-		_foo = true;

-		doSomething4();

-		break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test307/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test307/A_in.js
deleted file mode 100644
index 0ba53e9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test307/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-switch (x) {

-            case 1 :

-                return;

-            default :

-            }
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test307/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test307/A_out.js
deleted file mode 100644
index e7e3812..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test307/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-switch (x) {

-	case 1 :

-		return;

-	default :

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test308/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test308/A_in.js
deleted file mode 100644
index edc9b4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test308/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-switch (VARIABLE)

-{

-    case CASE_1 :

-        _foo= false;

-    doSomething1();

-    doSomething2();

-    doSomething3();

-        break;

-

-    case CASE_2 :

-        _foo= true;

-    doSomething4();

-        break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test308/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test308/A_out.js
deleted file mode 100644
index 78c196e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test308/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-switch (VARIABLE) {

-case CASE_1 :

-_foo = false;

-doSomething1();

-doSomething2();

-doSomething3();

-break;

-case CASE_2 :

-_foo = true;

-doSomething4();

-break;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test309/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test309/A_in.js
deleted file mode 100644
index 283740f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test309/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-switch (VARIABLE)

-{

-    case CASE_1 :

-        _foo= false;

-    doSomething1();

-    doSomething2();

-    doSomething3();

-        break;

-

-    case CASE_2 :

-        _foo= true;

-    doSomething4();

-        break;

-       default:

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test309/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test309/A_out.js
deleted file mode 100644
index b059d75..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test309/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-switch (VARIABLE) {

-case CASE_1 :

-_foo = false;

-doSomething1();

-doSomething2();

-doSomething3();

-	break;

-case CASE_2 :

-_foo = true;

-doSomething4();

-	break;

-default :

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test310/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test310/A_in.js
deleted file mode 100644
index 7e7bdb6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test310/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-

-	public void actionPerformed(ActionEvent e) {

-		this.getParentTiledContainer()

-				.dockPaneAt(Integer.parseInt(e.getActionCommand()), pane,

-RTabbedDocumentPane.this,

-						0.5)		;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test310/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test310/A_out.js
deleted file mode 100644
index 05880d1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test310/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	public void actionPerformed(ActionEvent e) {

-		this.getParentTiledContainer().dockPaneAt(

-				Integer.parseInt(e.getActionCommand()), pane,

-				RTabbedDocumentPane.this, 0.5);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test311/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test311/A_in.js
deleted file mode 100644
index 5f74435..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test311/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	public void actionPerformed(ActionEvent e) {

-		getParentTiledContainertoooooooooooooooooooooolonnnnnnnnnnnnnnnnnnnnng().dockPaneAt();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test311/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test311/A_out.js
deleted file mode 100644
index dc24f90..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test311/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	public void actionPerformed(ActionEvent e) {

-		getParentTiledContainertoooooooooooooooooooooolonnnnnnnnnnnnnnnnnnnnng()

-				.dockPaneAt();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test312/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test312/A_in.js
deleted file mode 100644
index f6028d0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test312/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-

-	public void actionPerformed(ActionEvent e) {

-		getParentTiledContainer()

-				.dockPaneAt(Integer.parseInt(e.getActionCommand()), pane,

-RTabbedDocumentPane.this,

-						0.5)		;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test312/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test312/A_out.js
deleted file mode 100644
index dbe786c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test312/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	public void actionPerformed(ActionEvent e) {

-		getParentTiledContainer().dockPaneAt(

-				Integer.parseInt(e.getActionCommand()), pane,

-				RTabbedDocumentPane.this, 0.5);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test313/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test313/A_in.js
deleted file mode 100644
index 93b4459..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test313/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public void foo() {

-}

-static char[] charArray_a = new char[] {'a'};

-public void bar(){}

-char[] charArray_b = new char[] {'b'}, charArray_c = new char[] {'c'}, charArray_d = new char[] {'d'};

-public void bar2(){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test313/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test313/A_out.js
deleted file mode 100644
index c4d61ac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test313/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public void foo() {

-}

-static char[] charArray_a = new char[]{'a'};

-public void bar() {

-}

-char[] charArray_b = new char[]{'b'}, charArray_c = new char[]{'c'},

-		charArray_d = new char[]{'d'};

-public void bar2() {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test314/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test314/A_in.js
deleted file mode 100644
index 89f76d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test314/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-if (token != TokenNameLBRACE && !isComment(token) /* to avoid */ && token != TokenNameDOT && goo && gmfgkfmgfdmggggggggggggggggggggggggggggggggggg) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test314/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test314/A_out.js
deleted file mode 100644
index da8a743..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test314/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-if (token != TokenNameLBRACE && !isComment(token) /* to avoid */

-		&& token != TokenNameDOT && goo

-		&& gmfgkfmgfdmggggggggggggggggggggggggggggggggggg) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test319/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test319/A_in.js
deleted file mode 100644
index 798ff0b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test319/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public int foo(int size, int max) {

-

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {

-		// empty block

-	}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test319/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test319/A_out.js
deleted file mode 100644
index c1ec0a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test319/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public int foo(int size, int max) {

-	try {

-		size = (long) stream.available();

-	} catch (IOException e) {

-		// empty block

-	}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test320/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test320/A_in.js
deleted file mode 100644
index f28a5d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test320/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public int foo(int size, int max) {

-

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {

-		/* empty block */

-	}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test320/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test320/A_out.js
deleted file mode 100644
index 12d045b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test320/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public int foo(int size, int max) {

-	try {

-		size = (long) stream.available();

-	} catch (IOException e) {

-		/* empty block */

-	}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test321/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test321/A_in.js
deleted file mode 100644
index cc5b278..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test321/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public int foo(int size, int max) {

-

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {

-		/* empty block */}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test321/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test321/A_out.js
deleted file mode 100644
index 471cc57..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test321/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public int foo(int size, int max) {

-	try {

-		size = (long) stream.available();

-	} catch (IOException e) {

-		/* empty block */}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test322/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test322/A_in.js
deleted file mode 100644
index 84a8f51..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test322/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public int foo(int size, int max) {

-

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {// toto

-		/* empty block */

-	}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test322/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test322/A_out.js
deleted file mode 100644
index 855c985..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test322/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public int foo(int size, int max) {

-	try {

-		size = (long) stream.available();

-	} catch (IOException e) {// toto

-		/* empty block */

-	}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test323/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test323/A_in.js
deleted file mode 100644
index 55ca969..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test323/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public int foo(int size, int max) {

-

-	try {

-	size=(long)stream.available();

-	} catch (IOException e) {/* empty block */}

-	return size;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test323/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test323/A_out.js
deleted file mode 100644
index 127865f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test323/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public int foo(int size, int max) {

-	try {

-		size = (long) stream.available();

-	} catch (IOException e) {/* empty block */}

-	return size;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test324/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test324/A_in.js
deleted file mode 100644
index c34e6ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test324/A_in.js
+++ /dev/null
@@ -1,25 +0,0 @@
-package test;

-

-import java.util.Hashtable;

-

-public class Test {

-

-	public Test() {

-		Hashtable fields;

-

-		// TODO some todo text

-		// direct field names

-

-		//		==== Dictionaries

-		//CountryDictInfo

-		fields = new Hashtable();

-

-		fields.put("name", "Name");

-		fields.put("numericCode", "NumericCode");

-

-		getSqls().put("finmon.domain.dictionary", new SomeFieldSQLDescriptor(

-			this, "SELECT * FROM CountryDict WHERE ",

-			" ORDER BY Name", fields))		;

-

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test324/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test324/A_out.js
deleted file mode 100644
index f40e2bf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test324/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test;

-import java.util.Hashtable;

-public class Test {

-	public Test() {

-		Hashtable fields;

-		// TODO some todo text

-		// direct field names

-		//		==== Dictionaries

-		//CountryDictInfo

-		fields = new Hashtable();

-		fields.put("name", "Name");

-		fields.put("numericCode", "NumericCode");

-		getSqls().put(

-				"finmon.domain.dictionary",

-				new SomeFieldSQLDescriptor(this,

-						"SELECT * FROM CountryDict WHERE ", " ORDER BY Name",

-						fields));

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test325/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test325/A_in.js
deleted file mode 100644
index 3c2a038..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test325/A_in.js
+++ /dev/null
@@ -1,25 +0,0 @@
-package test;

-

-import java.util.Hashtable;

-

-public class Test {

-

-  public boolean combineScriptsExist() {

-		File solvematchshift =

-			new File(System.getProperty("user.dir"), "solvematchshift.com");

-		File solvematchmod =

-			new File(System.getProperty("user.dir"), "solvematchmod.com");

-		File matchvol1 =

-					new File(System.getProperty("user.dir"), "matchvol1.com");

-		File matchorwarp =

-					new File(System.getProperty("user.dir"), "matchorwarp.com");

-		File patchcorr =

-					new File(System.getProperty("user.dir"), "patchcorr.com");

-		File volcombine =

-					new File(System.getProperty("user.dir"), "volcombine.com");

-		File warpvol =

-					new File(System.getProperty("user.dir"), "warpvol.com");

-		return solvematchshift.exists() && solvematchmod.exists() && atchvol1.exists()

-&& matchorwarp.exists() && patchcorr.exists() && volcombine.exists() &&

-warpvol.exists();

-  }}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test325/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test325/A_out.js
deleted file mode 100644
index 72a7231..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test325/A_out.js
+++ /dev/null
@@ -1,23 +0,0 @@
-package test;

-import java.util.Hashtable;

-public class Test {

-	public boolean combineScriptsExist() {

-		File solvematchshift = new File(System.getProperty("user.dir"),

-				"solvematchshift.com");

-		File solvematchmod = new File(System.getProperty("user.dir"),

-				"solvematchmod.com");

-		File matchvol1 = new File(System.getProperty("user.dir"),

-				"matchvol1.com");

-		File matchorwarp = new File(System.getProperty("user.dir"),

-				"matchorwarp.com");

-		File patchcorr = new File(System.getProperty("user.dir"),

-				"patchcorr.com");

-		File volcombine = new File(System.getProperty("user.dir"),

-				"volcombine.com");

-		File warpvol = new File(System.getProperty("user.dir"), "warpvol.com");

-		return solvematchshift.exists() && solvematchmod.exists()

-				&& atchvol1.exists() && matchorwarp.exists()

-				&& patchcorr.exists() && volcombine.exists()

-				&& warpvol.exists();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test326/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test326/A_in.js
deleted file mode 100644
index 740cee7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test326/A_in.js
+++ /dev/null
@@ -1,18 +0,0 @@
-public class A {

-	/**

-	 * @hibernate.set 

-	 *  lazy="true" 

-	 *  table="GUJArticleCategorization"

-	 *  cascade="save-update" 

-	 * @hibernate.collection-key 

-	 *  column="articleId"

-	 * @hibernate.collection-many-to-many 

-	 *  class="br.com.guj.model.Category"

-	 *  column="categoryId"

-	 * 

-	 * @return categorias deste artigo

-	 */

-	public Category getCategory() {

-		return this.category;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test326/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test326/A_out.js
deleted file mode 100644
index 740cee7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test326/A_out.js
+++ /dev/null
@@ -1,18 +0,0 @@
-public class A {

-	/**

-	 * @hibernate.set 

-	 *  lazy="true" 

-	 *  table="GUJArticleCategorization"

-	 *  cascade="save-update" 

-	 * @hibernate.collection-key 

-	 *  column="articleId"

-	 * @hibernate.collection-many-to-many 

-	 *  class="br.com.guj.model.Category"

-	 *  column="categoryId"

-	 * 

-	 * @return categorias deste artigo

-	 */

-	public Category getCategory() {

-		return this.category;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test327/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test327/A_in.js
deleted file mode 100644
index 959f801..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test327/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class A {

-void foo() {

-boolean b = true;

-if (b)

-	for (int i = 0; i < 10; i++) {

-		System.out.println(i);

-	} 

-else

-	System.out.println("nothing to do");}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test327/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test327/A_out.js
deleted file mode 100644
index 5e0ee63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test327/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class A {

-	void foo() {

-		boolean b = true;

-		if (b)

-			for (int i = 0; i < 10; i++) {

-				System.out.println(i);

-			}

-		else

-			System.out.println("nothing to do");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test328/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test328/A_in.js
deleted file mode 100644
index 774510f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test328/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class AlwaysMoreIndentation {

-    int x = 0;/**

-     * Returns the x.

-     * @return int

-     */

-    public int getX() {return x;

-    }/**

-     * Sets the x.

-     * @param x The x to set

-     */

-    public void setX(int x) {this.x = x;}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test328/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test328/A_out.js
deleted file mode 100644
index 92654a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test328/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class AlwaysMoreIndentation {

-	int x = 0;

-	/**

-	 * Returns the x.

-	 * @return int

-	 */

-	public int getX() {

-		return x;

-	}

-	/**

-	 * Sets the x.

-	 * @param x The x to set

-	 */

-	public void setX(int x) {

-		this.x = x;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test329/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test329/A_in.js
deleted file mode 100644
index c849d63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test329/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-int bogus(int a) {

-    if (a > 1)

-        try {a = 1;} finally {

-    } else

-        a = 0;

-    return a;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test329/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test329/A_out.js
deleted file mode 100644
index 346b522..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test329/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-int bogus(int a) {

-	if (a > 1)

-		try {

-			a = 1;

-		} finally {

-		}

-	else

-		a = 0;

-	return a;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test330/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test330/A_in.js
deleted file mode 100644
index 014222b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test330/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class X {

-  public X() {

-    Object[] objects = new Object[] {};

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test330/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test330/A_out.js
deleted file mode 100644
index a618fec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test330/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class X {

-	public X() {

-		Object[] objects = new Object[]{};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test331/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test331/A_in.js
deleted file mode 100644
index 468b28c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test331/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-int indx = 7;

-	for (/*indx is already initialized*/; indx < 20; ++indx) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test331/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test331/A_out.js
deleted file mode 100644
index 40a6675..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test331/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-int indx = 7;

-for (/*indx is already initialized*/; indx < 20; ++indx) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test332/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test332/A_in.js
deleted file mode 100644
index e7f365f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test332/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-int indx = 7;

-	for (; indx < 20; ++indx) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test332/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test332/A_out.js
deleted file mode 100644
index acdf3f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test332/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-int indx = 7;

-for (; indx < 20; ++indx) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test333/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test333/A_in.js
deleted file mode 100644
index 41c5ad4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test333/A_in.js
+++ /dev/null
@@ -1,53 +0,0 @@
-public class X {void bar() {for (final int i; 0 < (i = 1); i = i + 1) {

-		}

-	}

-

-}

-

-//public class X {

-//	public static void main(String[] args) {

-//		final int i;

-//		for ( ; ; i = 1)

-//		    break;

-//		i = 1;

-//	}

-//}

-

-//public class X {

-//	final int blank;

-//	{

-//		while ((null == null || true)) {

-//			blank = 1;

-//			break;

-//		}

-//	}

-//	X(){

-//	}

-//	public static void main(String[] argv){

-//		System.out.println("SUCCESS");

-//	}

-//}

-

-// should fail

-//class X {

-//

-//	public static void main(String[] args) {

-//		final boolean b;

-//		do

-//		    break;

-//		while ((b = true) && false);

-//		b = true;

-//	}

-//}

-

-// ?

-//class X {

-//

-//	public static void main(String[] args) {

-//		final boolean b;

-//		do

-//		    break;

-//		while ((b = true) && false);

-//		b = true;

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test333/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test333/A_out.js
deleted file mode 100644
index 686612b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test333/A_out.js
+++ /dev/null
@@ -1,55 +0,0 @@
-public class X {

-	void bar() {

-		for (final int i; 0 < (i = 1); i = i + 1) {

-		}

-	}

-

-}

-

-//public class X {

-//	public static void main(String[] args) {

-//		final int i;

-//		for ( ; ; i = 1)

-//		    break;

-//		i = 1;

-//	}

-//}

-

-//public class X {

-//	final int blank;

-//	{

-//		while ((null == null || true)) {

-//			blank = 1;

-//			break;

-//		}

-//	}

-//	X(){

-//	}

-//	public static void main(String[] argv){

-//		System.out.println("SUCCESS");

-//	}

-//}

-

-// should fail

-//class X {

-//

-//	public static void main(String[] args) {

-//		final boolean b;

-//		do

-//		    break;

-//		while ((b = true) && false);

-//		b = true;

-//	}

-//}

-

-// ?

-//class X {

-//

-//	public static void main(String[] args) {

-//		final boolean b;

-//		do

-//		    break;

-//		while ((b = true) && false);

-//		b = true;

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test334/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test334/A_in.js
deleted file mode 100644
index 42d4012..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test334/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	int i;; // empty class body declaration

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test334/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test334/A_out.js
deleted file mode 100644
index 42d4012..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test334/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	int i;; // empty class body declaration

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test335/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test335/A_in.js
deleted file mode 100644
index cd2c107..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test335/A_in.js
+++ /dev/null
@@ -1,18 +0,0 @@
-public class Test {

-

-	protected void doSomeStuff() {

-		/*

-		 * Comment

-		 */

-		doSomething(Expression.class, "Sting value for something",

-				new Object() {

-					public Something buildSomething() {

-						// Comment

-					Expression s = getBuilder().get("name")

-							.equal(getArgument("name", String.class, 0));

-					return s;

-				}

-

-				});

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test335/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test335/A_out.js
deleted file mode 100644
index 5296b07..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test335/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class Test {

-	protected void doSomeStuff() {

-		/*

-		 * Comment

-		 */

-		doSomething(Expression.class, "Sting value for something",

-				new Object() {

-					public Something buildSomething() {

-						// Comment

-						Expression s = getBuilder().get("name").equal(

-								getArgument("name", String.class, 0));

-						return s;

-					}

-				});

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test336/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test336/A_in.js
deleted file mode 100644
index e88afd5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test336/A_in.js
+++ /dev/null
@@ -1,31 +0,0 @@
-								Image tmp = new Image(display, rect.width, rect.height);

-								try 

-								{

-									ImageData tmpData = tmp.getImageData();

-									

-									for (int y = 0; y < rect.height; y++)

-									{

-										for (int x = 0; x < rect.width; x++)

-										{

-											int val;

-											val = (x<<TestImage.WIDTH_BITS);

-											val |= y;

-											

-//											tmpData.setPixels(x, y, val);

-											tmpData.setPixels(x, y, 0);

-										}

-									}

-									GC dc = new GC(testImage);

-									try

-									{

-									dc.drawImage(tmp, 0 ,0);

-									}

-									finally

-									{

-										dc.dispose();

-									}

-								}

-								finally

-								{

-									tmp.dispose();

-								}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test336/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test336/A_out.js
deleted file mode 100644
index f05f523..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test336/A_out.js
+++ /dev/null
@@ -1,30 +0,0 @@
-								Image tmp = new Image(display, rect.width,

-										rect.height);

-								try

-								{

-									ImageData tmpData = tmp.getImageData();

-									for (int y = 0; y < rect.height; y++)

-									{

-										for (int x = 0; x < rect.width; x++)

-										{

-											int val;

-											val = (x << TestImage.WIDTH_BITS);

-											val |= y;

-											//											tmpData.setPixels(x, y, val);

-											tmpData.setPixels(x, y, 0);

-										}

-									}

-									GC dc = new GC(testImage);

-									try

-									{

-										dc.drawImage(tmp, 0, 0);

-									}

-									finally

-									{

-										dc.dispose();

-									}

-								}

-								finally

-								{

-									tmp.dispose();

-								}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test337/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test337/A_in.js
deleted file mode 100644
index 960cfcd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test337/A_in.js
+++ /dev/null
@@ -1,339 +0,0 @@
-package org.eclipse.update.configurator;

-

-import java.io.File;

-import java.io.IOException;

-import java.net.MalformedURLException;

-import java.net.URL;

-import java.util.*;

-import org.eclipse.core.runtime.*;

-import org.eclipse.osgi.service.environment.DebugOptions;

-import org.eclipse.osgi.service.environment.EnvironmentInfo;

-import org.osgi.framework.*;

-import org.osgi.service.packageadmin.PackageAdmin;

-import org.osgi.service.startlevel.StartLevel;

-import org.osgi.util.tracker.ServiceTracker;

-

-public class ConfigurationActivator implements BundleActivator {

-	private final static String DEFAULT_CONVERTER = "org.eclipse.update.configurator.migration.PluginConverter"; //$NON-NLS-1$

-	

-	public static String PI_CONFIGURATOR = "org.eclipse.update.configurator";

-	// debug options

-	public static String OPTION_DEBUG = PI_CONFIGURATOR + "/debug";

-	public static String OPTION_DEBUG_CONVERTER = PI_CONFIGURATOR + "/converter/debug";

-	// debug values

-	public static boolean DEBUG = false;

-	public static boolean DEBUG_CONVERTER = false;

-	

-	private static BundleContext context;

-	private ServiceTracker platformTracker;

-	private ServiceRegistration configurationFactorySR;

-	private String[] allArgs;

-

-	// location used to put the generated manfests

-	private String cacheLocation = (String) System.getProperties().get("osgi.manifest.cache"); //PASCAL Need to set this value somewhere (probably from boot)

-	private IPluginConverter converter;

-	private Set ignore;

-	private BundleListener reconcilerListener;

-	

-	public void start(BundleContext ctx) throws Exception {

-		context = ctx;loadOptions();if (DEBUG)

-			System.out.println("Starting update configurator...");

-		computeIgnoredBundles();

-		loadConverter();

-		obtainArgs();		

-		installBundles();

-	}	

-	private void computeIgnoredBundles() {

-		String ignoreList = System.getProperty("eclipse.ignore","org.eclipse.osgi,org.eclipse.core.boot,org.eclipse.core.runtime.adaptor");

-		ignore = new HashSet();

-		StringTokenizer tokenizer = new StringTokenizer(ignoreList,",");

-		while(tokenizer.hasMoreTokens())

-			ignore.add(tokenizer.nextToken().trim());		

-	}

-	private boolean shouldIgnore(String bundleName) {

-		if (ignore == null)

-			return false;

-		StringTokenizer tokenizer = new StringTokenizer(bundleName,"._");

-		String partialName = "";

-		while(tokenizer.hasMoreTokens()) {

-			partialName += tokenizer.nextToken();

-			if (ignore.contains(partialName))

-				return true;

-			partialName +=  ".";

-		} 

-		return false;

-	}

-	private void loadConverter() {

-		// TODO look at making this an extension

-		String converterClassName = System.getProperty("eclipse.manifestconverter", DEFAULT_CONVERTER);

-		if (converterClassName == null)

-			return;

-		Class converterClass;

-		try {

-			converterClass = Class.forName(converterClassName);

-		} catch (ClassNotFoundException e) {

-			return;

-		}

-		try {

-			converter = (IPluginConverter) converterClass.newInstance();

-		} catch (InstantiationException e1) {

-			return;

-		} catch (IllegalAccessException e1) {

-			return;

-		} catch (ClassCastException cce) {

-			return;

-		}		

-	}

-	private void obtainArgs() {

-		// all this is only to get the application args		

-		EnvironmentInfo envInfo = null;

-		ServiceReference envInfoSR = context.getServiceReference(EnvironmentInfo.class.getName());		

-		if (envInfoSR != null)

-			envInfo = (EnvironmentInfo) context.getService(envInfoSR);

-		if (envInfo == null)

-			throw new IllegalStateException();

-		this.allArgs = envInfo.getAllArgs();

-		// we have what we want - release the service

-		context.ungetService(envInfoSR);

-	}

-

-	public void stop(BundleContext ctx) throws Exception {

-		releasePlatform();

-		configurationFactorySR.unregister();

-	}

-

-	private void releasePlatform() {

-		if (platformTracker == null)

-			return;

-		platformTracker.close();

-		platformTracker = null;

-	}

-	private IPlatform acquirePlatform() {

-		if (platformTracker == null) {

-			platformTracker = new ServiceTracker(context, IPlatform.class.getName(), null);

-			platformTracker.open();

-		}

-		IPlatform result = (IPlatform) platformTracker.getService();

-		while (result == null) {

-			try {

-				platformTracker.waitForService(1000);

-				result = (IPlatform) platformTracker.getService();

-			} catch (InterruptedException ie) {

-			}

-		}

-		return result;

-	}

-

-	private void installBundles() {

-		IPlatform platform = acquirePlatform();

-

-		String metaPath = platform.getLocation().append(".metadata").toOSString();

-		URL installURL = platform.getInstallURL();

-		ServiceReference reference = context.getServiceReference(StartLevel.class.getName());

-		StartLevel start = null;

-		if (reference != null) 

-			start = (StartLevel) context.getService(reference);

-		try {

-			configurationFactorySR = context.registerService(IPlatformConfigurationFactory.class.getName(), new PlatformConfigurationFactory(), null);

-			PlatformConfiguration config = getPlatformConfiguration(allArgs, metaPath, installURL);

-			URL[] plugins = config.getPluginPath();

-			ArrayList installed = new ArrayList(plugins.length);

-			for (int i = 0; i < plugins.length; i++) {

-				try {

-				String location = plugins[i].toExternalForm();

-				checkOrGenerateManifest(location);

-				location = "reference:" + location.substring(0, location.lastIndexOf('/'));

-				if (!isInstalled(location)) {

-					try {

-						Bundle target = context.installBundle(location);

-						installed.add(target);

-						if (start != null)

-							start.setBundleStartLevel(target, 4);

-					} catch (Exception e) {

-						System.err.println("Ignoring bundle at: " + location);

-						System.err.println(e.getMessage());

-					}

-				}

-			} catch (Exception e) {

-				// TODO Auto-generated catch block

-				e.printStackTrace();

-			}

-			context.ungetService(reference);

-			refreshPackages((Bundle[]) installed.toArray(new Bundle[installed.size()]));

-			if (System.getProperty("eclipse.application") == null || System.getProperty("eclipse.application").equals(PlatformConfiguration.RECONCILER_APP))

-				System.setProperty("eclipse.application", config.getApplicationIdentifier());

-//			if (config.getApplicationIdentifier().equals(PlatformConfiguration.RECONCILER_APP) ) {

-//				reconcilerListener = reconcilerListener();

-//				context.addBundleListener(reconcilerListener);

-//			}

-		} catch (Exception e) {

-			// TODO Auto-generated catch block

-			e.printStackTrace();

-		} finally {

-			releasePlatform();

-		}

-	}

-

-	private BundleListener reconcilerListener() {

-		return new BundleListener() {

-			public void bundleChanged(BundleEvent event) {

-				String buid = event.getBundle().getUniqueId();

-				if (event.getType() == BundleEvent.STOPPED && buid!=null && buid.equals("org.eclipse.update.core")) 

-					runPostReconciler();

-			}

-		};

-	}

-

-	private void runPostReconciler() {

-		Runnable postReconciler = new Runnable() {

-			public void run() {

-				try {

-					Bundle apprunner = context.getBundle("org.eclipse.core.applicationrunner");

-					apprunner.stop();

-					context.removeBundleListener(reconcilerListener);

-					try {

-						PlatformConfiguration.shutdown();

-					} catch (IOException e) {

-						// TODO Auto-generated catch block

-						e.printStackTrace();

-					}

-					installBundles();

-					apprunner.start();

-				} catch (BundleException be) {

-					be.printStackTrace();

-				}				

-			}

-		};

-		new Thread(postReconciler, "Post reconciler").start();

-	}

-	/**

-	 * @param location

-	 */

-	private void checkOrGenerateManifest(String pluginManifestLocationURL) {		

-		if (converter == null)			

-			return;

-		String pluginManifestLocation = null;

-		try {

-			pluginManifestLocation = new URL(pluginManifestLocationURL).getPath();

-		} catch (MalformedURLException e) {

-			return;

-		}

-		File pluginDir = new File(pluginManifestLocation).getParentFile();

-		if (shouldIgnore(pluginDir.getName()))

-			return; 		

-		File manifest = new File(pluginDir, "META-INF/MANIFEST.MF");

-		if (manifest.exists())

-			return;

-		// bail if the install location is not writable and we don't know where else to write to

-		if (cacheLocation == null) 

-			return;

-		File generationLocation = new File(cacheLocation, computeFileName(pluginDir.getPath()) + ".MF");			

-		if (generationLocation.exists())

-			return;			

-		if (!converter.convertManifest(pluginDir, generationLocation))

-			System.out.println(pluginDir + " manifest generation failed");

-	}

-	/*

-	 * Derives a file name corresponding to a path:

-	 * c:\autoexec.bat -> c__autoexec.bat

-	 */

-	private String computeFileName(String filePath) {

-		StringBuffer newName = new StringBuffer(filePath);

-		for (int i = 0; i < filePath.length(); i++) {

-			char c = newName.charAt(i);

-			if (c == ':' || c == '/' || c == '\\')

-				newName.setCharAt(i,'_');

-		}

-		return newName.toString();

-	}

-	/**

-	 * This is a major hack to try to get the reconciler application running. However we should find a way to not run it.

-	 * @param args

-	 * @param metaPath

-	 * @return

-	 */

-	private PlatformConfiguration getPlatformConfiguration(String[] args, String metaPath, URL installURL) {

-		try {

-			PlatformConfiguration.startup(args, null, null, metaPath, installURL);

-		} catch (Exception e) {

-			if (platformTracker != null) {

-				String message = e.getMessage();

-				if (message == null)

-					message = "";

-				IStatus status = new Status(IStatus.ERROR,IPlatform.PI_RUNTIME,IStatus.OK,message,e);

-				((IPlatform)platformTracker.getService()).getLog(context.getBundle()).log(status);

-			}

-		}

-		return PlatformConfiguration.getCurrent();

-

-	}

-

-	/**

-	 * Do PackageAdmin.refreshPackages() in a synchronous way.  After installing

-	 * all the requested bundles we need to do a refresh and want to ensure that 

-	 * everything is done before returning.

-	 * @param bundles

-	 */

-	private void refreshPackages(Bundle[] bundles) {

-		if (bundles.length == 0)

-			return;

-		ServiceReference packageAdminRef = context.getServiceReference(PackageAdmin.class.getName());

-		PackageAdmin packageAdmin = null;

-		if (packageAdminRef != null) {

-			packageAdmin = (PackageAdmin) context.getService(packageAdminRef);

-			if (packageAdmin == null)

-				return;

-		}

-		// TODO this is such a hack it is silly.  There are still cases for race conditions etc

-		// but this should allow for some progress...

-		final Object semaphore = new Object();

-		FrameworkListener listener = new FrameworkListener() {

-			public void frameworkEvent(FrameworkEvent event) {

-				if (event.getType() == FrameworkEvent.PACKAGES_REFRESHED)

-					synchronized (semaphore) {

-						semaphore.notifyAll();

-					}

-			}

-		};

-		context.addFrameworkListener(listener);

-		packageAdmin.refreshPackages(bundles);

-		synchronized (semaphore) {

-			try {

-				semaphore.wait();

-			} catch (InterruptedException e) {

-			}

-		}

-		context.removeFrameworkListener(listener);

-		context.ungetService(packageAdminRef);

-	}

-

-	private boolean isInstalled(String location) {

-		Bundle[] installed = context.getBundles();

-		for (int i = 0; i < installed.length; i++) {

-			Bundle bundle = installed[i];

-			if (location.equalsIgnoreCase(bundle.getLocation()))

-				return true;

-		}

-		return false;

-	}

-

-	private void loadOptions() {

-		// all this is only to get the application args		

-		DebugOptions service = null;ServiceReference reference = context.getServiceReference(DebugOptions.class.getName());		

-		if (reference != null)

-			service = (DebugOptions) context.getService(reference);

-		if (service == null)

-			return;

-		try {

-			DEBUG = service.getBooleanOption(OPTION_DEBUG, false);

-			if (!DEBUG)

-				return;

-			DEBUG_CONVERTER = service.getBooleanOption(OPTION_DEBUG_CONVERTER, false);

-		} finally {

-			// we have what we want - release the service

-			context.ungetService(reference);

-		}

-	}

-	public static BundleContext getBundleContext() {return context;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test337/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test337/A_out.js
deleted file mode 100644
index 74ab5a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test337/A_out.js
+++ /dev/null
@@ -1,346 +0,0 @@
-package org.eclipse.update.configurator;

-import java.io.File;

-import java.io.IOException;

-import java.net.MalformedURLException;

-import java.net.URL;

-import java.util.*;

-import org.eclipse.core.runtime.*;

-import org.eclipse.osgi.service.environment.DebugOptions;

-import org.eclipse.osgi.service.environment.EnvironmentInfo;

-import org.osgi.framework.*;

-import org.osgi.service.packageadmin.PackageAdmin;

-import org.osgi.service.startlevel.StartLevel;

-import org.osgi.util.tracker.ServiceTracker;

-public class ConfigurationActivator implements BundleActivator {

-	private final static String DEFAULT_CONVERTER = "org.eclipse.update.configurator.migration.PluginConverter"; //$NON-NLS-1$

-	public static String PI_CONFIGURATOR = "org.eclipse.update.configurator";

-	// debug options

-	public static String OPTION_DEBUG = PI_CONFIGURATOR + "/debug";

-	public static String OPTION_DEBUG_CONVERTER = PI_CONFIGURATOR

-			+ "/converter/debug";

-	// debug values

-	public static boolean DEBUG = false;

-	public static boolean DEBUG_CONVERTER = false;

-	private static BundleContext context;

-	private ServiceTracker platformTracker;

-	private ServiceRegistration configurationFactorySR;

-	private String[] allArgs;

-	// location used to put the generated manfests

-	private String cacheLocation = (String) System.getProperties().get(

-			"osgi.manifest.cache"); //PASCAL Need to set this value somewhere (probably from boot)

-	private IPluginConverter converter;

-	private Set ignore;

-	private BundleListener reconcilerListener;

-	public void start(BundleContext ctx) throws Exception {

-		context = ctx;

-		loadOptions();

-		if (DEBUG)

-			System.out.println("Starting update configurator...");

-		computeIgnoredBundles();

-		loadConverter();

-		obtainArgs();

-		installBundles();

-	}

-	private void computeIgnoredBundles() {

-		String ignoreList = System

-				.getProperty("eclipse.ignore",

-						"org.eclipse.osgi,org.eclipse.core.boot,org.eclipse.core.runtime.adaptor");

-		ignore = new HashSet();

-		StringTokenizer tokenizer = new StringTokenizer(ignoreList, ",");

-		while (tokenizer.hasMoreTokens())

-			ignore.add(tokenizer.nextToken().trim());

-	}

-	private boolean shouldIgnore(String bundleName) {

-		if (ignore == null)

-			return false;

-		StringTokenizer tokenizer = new StringTokenizer(bundleName, "._");

-		String partialName = "";

-		while (tokenizer.hasMoreTokens()) {

-			partialName += tokenizer.nextToken();

-			if (ignore.contains(partialName))

-				return true;

-			partialName += ".";

-		}

-		return false;

-	}

-	private void loadConverter() {

-		// TODO look at making this an extension

-		String converterClassName = System.getProperty(

-				"eclipse.manifestconverter", DEFAULT_CONVERTER);

-		if (converterClassName == null)

-			return;

-		Class converterClass;

-		try {

-			converterClass = Class.forName(converterClassName);

-		} catch (ClassNotFoundException e) {

-			return;

-		}

-		try {

-			converter = (IPluginConverter) converterClass.newInstance();

-		} catch (InstantiationException e1) {

-			return;

-		} catch (IllegalAccessException e1) {

-			return;

-		} catch (ClassCastException cce) {

-			return;

-		}

-	}

-	private void obtainArgs() {

-		// all this is only to get the application args		

-		EnvironmentInfo envInfo = null;

-		ServiceReference envInfoSR = context

-				.getServiceReference(EnvironmentInfo.class.getName());

-		if (envInfoSR != null)

-			envInfo = (EnvironmentInfo) context.getService(envInfoSR);

-		if (envInfo == null)

-			throw new IllegalStateException();

-		this.allArgs = envInfo.getAllArgs();

-		// we have what we want - release the service

-		context.ungetService(envInfoSR);

-	}

-	public void stop(BundleContext ctx) throws Exception {

-		releasePlatform();

-		configurationFactorySR.unregister();

-	}

-	private void releasePlatform() {

-		if (platformTracker == null)

-			return;

-		platformTracker.close();

-		platformTracker = null;

-	}

-	private IPlatform acquirePlatform() {

-		if (platformTracker == null) {

-			platformTracker = new ServiceTracker(context, IPlatform.class

-					.getName(), null);

-			platformTracker.open();

-		}

-		IPlatform result = (IPlatform) platformTracker.getService();

-		while (result == null) {

-			try {

-				platformTracker.waitForService(1000);

-				result = (IPlatform) platformTracker.getService();

-			} catch (InterruptedException ie) {

-			}

-		}

-		return result;

-	}

-	private void installBundles() {

-		IPlatform platform = acquirePlatform();

-

-		String metaPath = platform.getLocation().append(".metadata").toOSString();

-		URL installURL = platform.getInstallURL();

-		ServiceReference reference = context.getServiceReference(StartLevel.class.getName());

-		StartLevel start = null;

-		if (reference != null) 

-			start = (StartLevel) context.getService(reference);

-		try {

-			configurationFactorySR = context.registerService(IPlatformConfigurationFactory.class.getName(), new PlatformConfigurationFactory(), null);

-			PlatformConfiguration config = getPlatformConfiguration(allArgs, metaPath, installURL);

-			URL[] plugins = config.getPluginPath();

-			ArrayList installed = new ArrayList(plugins.length);

-			for (int i = 0; i < plugins.length; i++) {

-				try {

-				String location = plugins[i].toExternalForm();

-				checkOrGenerateManifest(location);

-				location = "reference:" + location.substring(0, location.lastIndexOf('/'));

-				if (!isInstalled(location)) {

-					try {

-						Bundle target = context.installBundle(location);

-						installed.add(target);

-						if (start != null)

-							start.setBundleStartLevel(target, 4);

-					} catch (Exception e) {

-						System.err.println("Ignoring bundle at: " + location);

-						System.err.println(e.getMessage());

-					}

-				}

-			} catch (Exception e) {

-				// TODO Auto-generated catch block

-				e.printStackTrace();

-			}

-			context.ungetService(reference);

-			refreshPackages((Bundle[]) installed.toArray(new Bundle[installed.size()]));

-			if (System.getProperty("eclipse.application") == null || System.getProperty("eclipse.application").equals(PlatformConfiguration.RECONCILER_APP))

-				System.setProperty("eclipse.application", config.getApplicationIdentifier());

-//			if (config.getApplicationIdentifier().equals(PlatformConfiguration.RECONCILER_APP) ) {

-//				reconcilerListener = reconcilerListener();

-//				context.addBundleListener(reconcilerListener);

-//			}

-		} catch (Exception e) {

-			// TODO Auto-generated catch block

-			e.printStackTrace();

-		} finally {

-			releasePlatform();

-		}

-	}

-	private BundleListener reconcilerListener() {

-		return new BundleListener() {

-			public void bundleChanged(BundleEvent event) {

-				String buid = event.getBundle().getUniqueId();

-				if (event.getType() == BundleEvent.STOPPED && buid != null

-						&& buid.equals("org.eclipse.update.core"))

-					runPostReconciler();

-			}

-		};

-	}

-	private void runPostReconciler() {

-		Runnable postReconciler = new Runnable() {

-			public void run() {

-				try {

-					Bundle apprunner = context

-							.getBundle("org.eclipse.core.applicationrunner");

-					apprunner.stop();

-					context.removeBundleListener(reconcilerListener);

-					try {

-						PlatformConfiguration.shutdown();

-					} catch (IOException e) {

-						// TODO Auto-generated catch block

-						e.printStackTrace();

-					}

-					installBundles();

-					apprunner.start();

-				} catch (BundleException be) {

-					be.printStackTrace();

-				}

-			}

-		};

-		new Thread(postReconciler, "Post reconciler").start();

-	}

-	/**

-	 * @param location

-	 */

-	private void checkOrGenerateManifest(String pluginManifestLocationURL) {

-		if (converter == null)

-			return;

-		String pluginManifestLocation = null;

-		try {

-			pluginManifestLocation = new URL(pluginManifestLocationURL)

-					.getPath();

-		} catch (MalformedURLException e) {

-			return;

-		}

-		File pluginDir = new File(pluginManifestLocation).getParentFile();

-		if (shouldIgnore(pluginDir.getName()))

-			return;

-		File manifest = new File(pluginDir, "META-INF/MANIFEST.MF");

-		if (manifest.exists())

-			return;

-		// bail if the install location is not writable and we don't know where else to write to

-		if (cacheLocation == null)

-			return;

-		File generationLocation = new File(cacheLocation,

-				computeFileName(pluginDir.getPath()) + ".MF");

-		if (generationLocation.exists())

-			return;

-		if (!converter.convertManifest(pluginDir, generationLocation))

-			System.out.println(pluginDir + " manifest generation failed");

-	}

-	/*

-	 * Derives a file name corresponding to a path:

-	 * c:\autoexec.bat -> c__autoexec.bat

-	 */

-	private String computeFileName(String filePath) {

-		StringBuffer newName = new StringBuffer(filePath);

-		for (int i = 0; i < filePath.length(); i++) {

-			char c = newName.charAt(i);

-			if (c == ':' || c == '/' || c == '\\')

-				newName.setCharAt(i, '_');

-		}

-		return newName.toString();

-	}

-	/**

-	 * This is a major hack to try to get the reconciler application running. However we should find a way to not run it.

-	 * @param args

-	 * @param metaPath

-	 * @return

-	 */

-	private PlatformConfiguration getPlatformConfiguration(String[] args,

-			String metaPath, URL installURL) {

-		try {

-			PlatformConfiguration.startup(args, null, null, metaPath,

-					installURL);

-		} catch (Exception e) {

-			if (platformTracker != null) {

-				String message = e.getMessage();

-				if (message == null)

-					message = "";

-				IStatus status = new Status(IStatus.ERROR,

-						IPlatform.PI_RUNTIME, IStatus.OK, message, e);

-				((IPlatform) platformTracker.getService()).getLog(

-						context.getBundle()).log(status);

-			}

-		}

-		return PlatformConfiguration.getCurrent();

-	}

-	/**

-	 * Do PackageAdmin.refreshPackages() in a synchronous way.  After installing

-	 * all the requested bundles we need to do a refresh and want to ensure that 

-	 * everything is done before returning.

-	 * @param bundles

-	 */

-	private void refreshPackages(Bundle[] bundles) {

-		if (bundles.length == 0)

-			return;

-		ServiceReference packageAdminRef = context

-				.getServiceReference(PackageAdmin.class.getName());

-		PackageAdmin packageAdmin = null;

-		if (packageAdminRef != null) {

-			packageAdmin = (PackageAdmin) context.getService(packageAdminRef);

-			if (packageAdmin == null)

-				return;

-		}

-		// TODO this is such a hack it is silly.  There are still cases for race conditions etc

-		// but this should allow for some progress...

-		final Object semaphore = new Object();

-		FrameworkListener listener = new FrameworkListener() {

-			public void frameworkEvent(FrameworkEvent event) {

-				if (event.getType() == FrameworkEvent.PACKAGES_REFRESHED)

-					synchronized (semaphore) {

-						semaphore.notifyAll();

-					}

-			}

-		};

-		context.addFrameworkListener(listener);

-		packageAdmin.refreshPackages(bundles);

-		synchronized (semaphore) {

-			try {

-				semaphore.wait();

-			} catch (InterruptedException e) {

-			}

-		}

-		context.removeFrameworkListener(listener);

-		context.ungetService(packageAdminRef);

-	}

-	private boolean isInstalled(String location) {

-		Bundle[] installed = context.getBundles();

-		for (int i = 0; i < installed.length; i++) {

-			Bundle bundle = installed[i];

-			if (location.equalsIgnoreCase(bundle.getLocation()))

-				return true;

-		}

-		return false;

-	}

-	private void loadOptions() {

-		// all this is only to get the application args		

-		DebugOptions service = null;

-		ServiceReference reference = context

-				.getServiceReference(DebugOptions.class.getName());

-		if (reference != null)

-			service = (DebugOptions) context.getService(reference);

-		if (service == null)

-			return;

-		try {

-			DEBUG = service.getBooleanOption(OPTION_DEBUG, false);

-			if (!DEBUG)

-				return;

-			DEBUG_CONVERTER = service.getBooleanOption(OPTION_DEBUG_CONVERTER,

-					false);

-		} finally {

-			// we have what we want - release the service

-			context.ungetService(reference);

-		}

-	}

-	public static BundleContext getBundleContext() {

-		return context;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test338/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test338/A_in.js
deleted file mode 100644
index fc70618..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test338/A_in.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**

- * Braces

- */

-class Example {

-    SomeClass fField = new SomeClass() {

-        public int value;

-    };

-    void bar(int p) {

-        for (int i = 0; i < 10; i++) {

-            fField.add(i);

-        }

-        switch (p) {

-            case 0 :

-                fField.set(0);

-                break;

-            default :

-                fField.reset();

-            }

-        }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test338/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test338/A_out.js
deleted file mode 100644
index 3f0208f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test338/A_out.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**

- * Braces

- */

-class Example {

-	SomeClass fField = new SomeClass() {

-		public int value;

-	};

-	void bar(int p) {

-		for (int i = 0; i < 10; i++) {

-			fField.add(i);

-		}

-		switch (p) {

-			case 0 :

-				fField.set(0);

-				break;

-			default :

-				fField.reset();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test339/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test339/A_in.js
deleted file mode 100644
index 50a8623..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test339/A_in.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**

- * Braces

- */

-class Example {

-    SomeClass fField = new SomeClass() {

-        public int value;

-    };

-    void bar(int p) {

-        for (int i = 0; i < 10; i++) {

-            fField.add(i);

-        }

-        switch (p) {

-            case 0 :

-                fField.set(0);

-                break;

-            default :

-            }

-        }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test339/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test339/A_out.js
deleted file mode 100644
index 285210f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test339/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**

- * Braces

- */

-class Example {

-	SomeClass fField = new SomeClass() {

-		public int value;

-	};

-	void bar(int p) {

-		for (int i = 0; i < 10; i++) {

-			fField.add(i);

-		}

-		switch (p) {

-			case 0 :

-				fField.set(0);

-				break;

-			default :

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test340/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test340/A_in.js
deleted file mode 100644
index 323ae28..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test340/A_in.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**

- * Braces

- */

-class Example {

-    SomeClass fField = new SomeClass() {

-        public int value;

-    };

-    void bar(int p) {

-        for (int i = 0; i < 10; i++) {

-            fField.add(i);

-        }

-        switch (p) {

-            case 0 :

-                fField.set(0);

-                break;

-            }

-        }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test340/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test340/A_out.js
deleted file mode 100644
index 0956738..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test340/A_out.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**

- * Braces

- */

-class Example {

-	SomeClass fField = new SomeClass() {

-		public int value;

-	};

-	void bar(int p) {

-		for (int i = 0; i < 10; i++) {

-			fField.add(i);

-		}

-		switch (p) {

-			case 0 :

-				fField.set(0);

-				break;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test341/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test341/A_in.js
deleted file mode 100644
index 1fa7b2d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test341/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-    void foo() {

-        int a = 1 - -4;

-        int b =-a;

-        Other.check(-a);

-     }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test341/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test341/A_out.js
deleted file mode 100644
index d1cf618..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test341/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	void foo() {

-		int a =1 - -4;

-		int b =-a;

-		Other.check(-a);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test342/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test342/A_in.js
deleted file mode 100644
index 5e8b1b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test342/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-    void foo() {

-    	int c = 2;

-        int a =1, b =2, d;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test342/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test342/A_out.js
deleted file mode 100644
index 4292371..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test342/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-	void foo() {

-		int c = 2;

-		int a = 1,b = 2,d;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test343/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test343/A_in.js
deleted file mode 100644
index 8ba616e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test343/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class Example {

-   	int c = 2;

-    int a =1, b =2, d;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test343/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test343/A_out.js
deleted file mode 100644
index 646f6b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test343/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class Example {

-	int c = 2;

-	int a = 1,b = 2,d;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test344/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test344/A_in.js
deleted file mode 100644
index 8ba616e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test344/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class Example {

-   	int c = 2;

-    int a =1, b =2, d;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test344/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test344/A_out.js
deleted file mode 100644
index 6c46c2e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test344/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class Example {

-	int c = 2;

-	int a = 1, b = 2, d;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test345/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test345/A_in.js
deleted file mode 100644
index 5e8b1b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test345/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-    void foo() {

-    	int c = 2;

-        int a =1, b =2, d;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test345/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test345/A_out.js
deleted file mode 100644
index f4e05a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test345/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-	void foo() {

-		int c = 2;

-		int a = 1, b = 2, d;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test346/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test346/A_in.js
deleted file mode 100644
index 91abb3c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test346/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-public void setErrorQOptions(int errorQOptions) {

-        this.errorQOptions = errorQOptions;

-    } /** Sets the MQSeries error queue. */

-    public void setErrorQueue(MQQueue errorQueue) {

-        this.errorQueue = errorQueue;

-    } /** Sets the MQSeries error queue name to use on open. */

-    public void setErrorQueueName(String errorQueueName) {

-        this.errorQueueName = errorQueueName;

-    } /** Sets the MQ option flags to use for the input queue on open. */

-    public void setInputQOptions(int inputQOptions) {

-        this.inputQOptions = inputQOptions;

-    } /** Sets the MQSeries input queue. */

-    public void setInputQueue(MQQueue inputQueue) {

-        this.inputQueue = inputQueue;

-    } /** Sets the MQSeries input queue name to use on open. */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test346/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test346/A_out.js
deleted file mode 100644
index 13ae0bb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test346/A_out.js
+++ /dev/null
@@ -1,20 +0,0 @@
-public void setErrorQOptions(int errorQOptions) {

-	this.errorQOptions = errorQOptions;

-}

-/** Sets the MQSeries error queue. */

-public void setErrorQueue(MQQueue errorQueue) {

-	this.errorQueue = errorQueue;

-}

-/** Sets the MQSeries error queue name to use on open. */

-public void setErrorQueueName(String errorQueueName) {

-	this.errorQueueName = errorQueueName;

-}

-/** Sets the MQ option flags to use for the input queue on open. */

-public void setInputQOptions(int inputQOptions) {

-	this.inputQOptions = inputQOptions;

-}

-/** Sets the MQSeries input queue. */

-public void setInputQueue(MQQueue inputQueue) {

-	this.inputQueue = inputQueue;

-}

-/** Sets the MQSeries input queue name to use on open. */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test347/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test347/A_in.js
deleted file mode 100644
index 251d587..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test347/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	void foo() throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.NullPointerException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test347/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test347/A_out.js
deleted file mode 100644
index 4501edf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test347/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-

-    void foo() throws java.io.IOException,

-              java.lang.IllegalArgumentException,

-              java.lang.NullPointerException {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test348/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test348/A_in.js
deleted file mode 100644
index 251d587..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test348/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	void foo() throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.NullPointerException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test348/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test348/A_out.js
deleted file mode 100644
index 12b5aa5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test348/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-

-    void foo() throws java.io.IOException, java.lang.IllegalArgumentException,

-            java.lang.NullPointerException {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test349/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test349/A_in.js
deleted file mode 100644
index 148f7d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test349/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class X {

-	void foo() throws java.io.IOException, java.lang.IllegalArgumentException, java.lang.NullPointerException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test349/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test349/A_out.js
deleted file mode 100644
index e502955..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test349/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class X {

-

-    void foo() throws java.io.IOException, java.lang.IllegalArgumentException,

-            java.lang.NullPointerException {

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test350/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test350/A_in.js
deleted file mode 100644
index 0c5e5f3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test350/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-if (JavaModelManager.CP_RESOLVE_VERBOSE){

-	System.out.println("CPContainer SET  - setting container: ["+containerPath+"] for projects: {" //$NON-NLS-1$ //$NON-NLS-2$

-		+ (org.eclipse.wst.jsdt.internal.compiler.util.Util.toString(affectedProjects, 

-				new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable(){ 

-					public String displayString(Object o) { return ((IJavaProject) o).getElementName(); }

-				}))

-		+ "} with values: " //$NON-NLS-1$

-		+ (org.eclipse.wst.jsdt.internal.compiler.util.Util.toString(respectiveContainers, 

-				new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable(){ 

-					public String displayString(Object o) { return ((IJsGlobalScopeContainer) o).getDescription(); }

-				}))

-			);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test350/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test350/A_out.js
deleted file mode 100644
index 699149b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test350/A_out.js
+++ /dev/null
@@ -1,23 +0,0 @@
-if (JavaModelManager.CP_RESOLVE_VERBOSE) {

-	System.out

-			.println("CPContainer SET  - setting container: [" + containerPath + "] for projects: {" //$NON-NLS-1$ //$NON-NLS-2$

-					+ (org.eclipse.wst.jsdt.internal.compiler.util.Util

-							.toString(

-									affectedProjects,

-									new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable() {

-										public String displayString(Object o) {

-											return ((IJavaProject) o)

-													.getElementName();

-										}

-									}))

-					+ "} with values: " //$NON-NLS-1$

-					+ (org.eclipse.wst.jsdt.internal.compiler.util.Util

-							.toString(

-									respectiveContainers,

-									new org.eclipse.wst.jsdt.internal.compiler.util.Util.Displayable() {

-										public String displayString(Object o) {

-											return ((IJsGlobalScopeContainer) o)

-													.getDescription();

-										}

-									})));

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test351/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test351/A_in.js
deleted file mode 100644
index c251b44..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test351/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-TestClass.testMethod(foo, "My Application", "This is a test This is a test This is a test " + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test " + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test", "This is an another string", new Object());
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test351/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test351/A_out.js
deleted file mode 100644
index 2381e84..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test351/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-TestClass.testMethod(foo, "My Application",

-		"This is a test This is a test This is a test "

-				+ "This is a test This is a test This is a test "

-				+ "This is a test This is a test This is a test "

-				+ "This is a test This is a test This is a test "

-				+ "This is a test This is a test This is a test "

-				+ "This is a test This is a test This is a test",

-		"This is an another string", new Object());
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test352/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test352/A_in.js
deleted file mode 100644
index c251b44..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test352/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-TestClass.testMethod(foo, "My Application", "This is a test This is a test This is a test " + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test " + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test", "This is an another string", new Object());
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test352/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test352/A_out.js
deleted file mode 100644
index 47c2b6e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test352/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-TestClass.testMethod(foo, "My Application",

-        "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test "

-                + "This is a test This is a test This is a test",

-        "This is an another string", new Object());
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test353/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test353/A_in.js
deleted file mode 100644
index c4d2be2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test353/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-scope.problemReporter().typeMismatchErrorActualTypeExpectedType(enclosingInstance, enclosingInstanceType, inheritedBinding.declaringClass.enclosingType());
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test353/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test353/A_out.js
deleted file mode 100644
index 5413d22..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test353/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-scope.problemReporter().typeMismatchErrorActualTypeExpectedType(

-		enclosingInstance, enclosingInstanceType,

-		inheritedBinding.declaringClass.enclosingType());
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test354/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test354/A_in.js
deleted file mode 100644
index 77b6093..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test354/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	public void foo() {;;;}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test354/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test354/A_out.js
deleted file mode 100644
index ba318a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test354/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	public void foo() {

-		;;;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test355/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test355/A_in.js
deleted file mode 100644
index 77b6093..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test355/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	public void foo() {;;;}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test355/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test355/A_out.js
deleted file mode 100644
index d947bcc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test355/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	public void foo() {

-		;

-		;

-		;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test356/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test356/A_in.js
deleted file mode 100644
index 7df0905..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test356/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	public void foo() {

-		int ii = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test356/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test356/A_out.js
deleted file mode 100644
index 2c58741..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test356/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	public void foo() {

-		int ii = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14

-				* 15 * 16;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test357/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test357/A_in.js
deleted file mode 100644
index 2fb3b1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test357/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-(++a)
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test357/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test357/A_out.js
deleted file mode 100644
index 95126b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test357/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-(++ a)
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test358/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test358/A_in.js
deleted file mode 100644
index 2fb3b1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test358/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-(++a)
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test358/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test358/A_out.js
deleted file mode 100644
index 2fb3b1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test358/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-(++a)
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test359/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test359/A_in.js
deleted file mode 100644
index e2e5e74..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test359/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-class One {}

-class Two {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test359/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test359/A_out.js
deleted file mode 100644
index ec5b505..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test359/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class One {

-}

-class Two {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test360/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test360/A_in.js
deleted file mode 100644
index d36249a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test360/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class One {}

-

-

-class Two {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test360/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test360/A_out.js
deleted file mode 100644
index 24b6b31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test360/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class One {

-}

-

-

-class Two {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test361/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test361/A_in.js
deleted file mode 100644
index d36249a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test361/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class One {}

-

-

-class Two {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test361/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test361/A_out.js
deleted file mode 100644
index a52dcf1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test361/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class One {

-}

-

-class Two {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test362/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test362/A_in.js
deleted file mode 100644
index a6a26fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test362/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/**

- * Some method.

- */

-public void someMethod(String argument1, String argument2,String argument3) {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test362/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test362/A_out.js
deleted file mode 100644
index 71fe2e9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test362/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * Some method.

- */

-public void someMethod(String argument1,

-		String argument2,

-		String argument3) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test363/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test363/A_in.js
deleted file mode 100644
index 4560b8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test363/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public void someMethod() {

-	int size = HEADERS + 2 * 4 + HEADERS + 2 * escapedValue.length() + HEADERS * HEADERS;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test363/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test363/A_out.js
deleted file mode 100644
index 953ab4d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test363/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public void someMethod() {

-	int size = HEADERS + 2 * 4 + HEADERS + 2 * escapedValue.length() + HEADERS

-			* HEADERS;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test364/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test364/A_in.js
deleted file mode 100644
index 27c01e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test364/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class Example {

-    void foo() {for ( int i = 0,j = 100; i < 10; i++, j-- ) {}

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test364/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test364/A_out.js
deleted file mode 100644
index ec74c6d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test364/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-	void foo() {

-		for (int i = 0,j = 100; i < 10; i++, j--) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test365/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test365/A_in.js
deleted file mode 100644
index 16692a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test365/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class Example {

-	void bar() {}

-    void foo() {for ( bar(), bar(); i < 10; i++, j-- ) {}

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test365/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test365/A_out.js
deleted file mode 100644
index afb445e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test365/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Example {

-	void bar() {

-	}

-	void foo() {

-		for (bar(),bar(); i < 10; i++, j--) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test366/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test366/A_in.js
deleted file mode 100644
index 27c01e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test366/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class Example {

-    void foo() {for ( int i = 0,j = 100; i < 10; i++, j-- ) {}

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test366/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test366/A_out.js
deleted file mode 100644
index 0b577be..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test366/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-	void foo() {

-		for (int i = 0 , j = 100; i < 10; i++, j--) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test367/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test367/A_in.js
deleted file mode 100644
index 52c6b69..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test367/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class Example {

-    void foo() {		int k,n;

-for ( int i = 0,j = 100; i < 10; i++, j-- ) {}

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test367/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test367/A_out.js
deleted file mode 100644
index c2dc874..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test367/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	void foo() {

-		int k,n;

-		for (int i = 0 , j = 100; i < 10; i++, j--) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test368/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test368/A_in.js
deleted file mode 100644
index e285f34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test368/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-    void foo() {}

-

-    void foo2() {} // end of foo2

-

-    void bar() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test368/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test368/A_out.js
deleted file mode 100644
index 356ffa9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test368/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class Example {

-	void foo() {

-	}

-

-	void foo2() {

-	} // end of foo2

-

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test369/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test369/A_in.js
deleted file mode 100644
index e285f34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test369/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-    void foo() {}

-

-    void foo2() {} // end of foo2

-

-    void bar() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test369/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test369/A_out.js
deleted file mode 100644
index df2016a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test369/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-

-class Example {

-

-	void foo() {

-	}

-

-	void foo2() {

-	} // end of foo2

-

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test370/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test370/A_in.js
deleted file mode 100644
index e285f34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test370/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-    void foo() {}

-

-    void foo2() {} // end of foo2

-

-    void bar() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test370/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test370/A_out.js
deleted file mode 100644
index df2016a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test370/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-

-class Example {

-

-	void foo() {

-	}

-

-	void foo2() {

-	} // end of foo2

-

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test371/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test371/A_in.js
deleted file mode 100644
index 766ae24..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test371/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Example {

-

-    void foo() {}

-

-    void foo2() {} // end of foo2

-

-    void bar() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test371/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test371/A_out.js
deleted file mode 100644
index 39104c0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test371/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-class Example {

-

-	void foo() {

-	}

-

-	void foo2() {

-	} // end of foo2

-

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test372/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test372/A_in.js
deleted file mode 100644
index 6e8ed38..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test372/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class Example {

-

-

-    void foo() {}

-

-    void foo2() {} // end of foo2

-

-    void bar() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test372/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test372/A_out.js
deleted file mode 100644
index 39104c0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test372/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-class Example {

-

-	void foo() {

-	}

-

-	void foo2() {

-	} // end of foo2

-

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test373/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test373/A_in.js
deleted file mode 100644
index 6e8ed38..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test373/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class Example {

-

-

-    void foo() {}

-

-    void foo2() {} // end of foo2

-

-    void bar() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test373/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test373/A_out.js
deleted file mode 100644
index df2016a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test373/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-

-class Example {

-

-	void foo() {

-	}

-

-	void foo2() {

-	} // end of foo2

-

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test374/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test374/A_in.js
deleted file mode 100644
index 5d58fa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test374/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-    void foo() {

-    	int[] tab = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};

-    	System.out.println();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test374/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test374/A_out.js
deleted file mode 100644
index 1b4f327..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test374/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class Example {

-	void foo() {

-		int[] tab =

-		{

-			1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

-			20, 21, 22, 23, 24

-		};

-		System.out.println();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test375/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test375/A_in.js
deleted file mode 100644
index 5d58fa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test375/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-    void foo() {

-    	int[] tab = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};

-    	System.out.println();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test375/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test375/A_out.js
deleted file mode 100644
index 4400e31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test375/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class Example {

-	void foo() {

-		int[] tab = {

-			1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

-			20, 21, 22, 23, 24

-		};

-		System.out.println();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test376/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test376/A_in.js
deleted file mode 100644
index 5d58fa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test376/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-    void foo() {

-    	int[] tab = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};

-    	System.out.println();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test376/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test376/A_out.js
deleted file mode 100644
index e0670c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test376/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	void foo() {

-		int[] tab = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,

-			18, 19, 20, 21, 22, 23, 24};

-		System.out.println();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test377/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test377/A_in.js
deleted file mode 100644
index 5d58fa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test377/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-    void foo() {

-    	int[] tab = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};

-    	System.out.println();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test377/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test377/A_out.js
deleted file mode 100644
index 8e347d1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test377/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Example {

-	void foo() {

-		int[] tab = {

-			1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

-			20, 21, 22, 23, 24};

-		System.out.println();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test378/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test378/A_in.js
deleted file mode 100644
index 5d58fa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test378/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-    void foo() {

-    	int[] tab = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};

-    	System.out.println();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test378/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test378/A_out.js
deleted file mode 100644
index 4400e31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test378/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class Example {

-	void foo() {

-		int[] tab = {

-			1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

-			20, 21, 22, 23, 24

-		};

-		System.out.println();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test379/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test379/A_in.js
deleted file mode 100644
index 5d58fa4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test379/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Example {

-    void foo() {

-    	int[] tab = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};

-    	System.out.println();

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test379/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test379/A_out.js
deleted file mode 100644
index beb5237..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test379/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class Example {

-	void foo() {

-		int[] tab =

-			{

-				1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

-				19, 20, 21, 22, 23, 24

-			};

-		System.out.println();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test380/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test380/A_in.js
deleted file mode 100644
index 7e891c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test380/A_in.js
+++ /dev/null
@@ -1,14 +0,0 @@
-{

-

-	if (size < currentSize) {

-		try {

-			size = inStream.available();

-		} catch (IOException e) {

-		}

-	} else if (size == currentSize) {

-		++size;

-	} else {

-		--size;

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test380/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test380/A_out.js
deleted file mode 100644
index f66ed75..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test380/A_out.js
+++ /dev/null
@@ -1,21 +0,0 @@
-

-{

-    if (size < currentSize)

-    {

-        try

-        {

-            size = inStream.available();

-        }

-        catch (IOException e)

-        {

-        }

-    }

-    else if (size == currentSize)

-    {

-        ++size;

-    }

-    else

-    {

-        --size;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test381/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test381/A_in.js
deleted file mode 100644
index e285f34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test381/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-    void foo() {}

-

-    void foo2() {} // end of foo2

-

-    void bar() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test381/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test381/A_out.js
deleted file mode 100644
index 356ffa9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test381/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class Example {

-	void foo() {

-	}

-

-	void foo2() {

-	} // end of foo2

-

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test382/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test382/A_in.js
deleted file mode 100644
index b7ebb4b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test382/A_in.js
+++ /dev/null
@@ -1,80 +0,0 @@
-package de.neze.bugreport.eclipse;

-//Code generator imported: import de.neze.bugreport.eclipse.GeneralConcept.Item;

-//Code generator imported: import de.neze.bugreport.eclipse.GeneralConcept.Problem;

-/**

- * Feature Missing in Eclispe M5:

- * 

- * I like to write code like as noted below, and it seams that eclispe 

- * handling of ambigouse inner class names is suboptimal during codeassistance.

- * And the code formater has problems with disambigouated names.

- * Note: The exampe below is optimzed for shortness and that make it look a 

- * little bit stupid, but "real world" exmples are much longer .. .

- */

-public abstract class AssistMyStyle {

-	public static final class Problem extends Exception {

-	}

-	public static final class Item {

-	}

-	public static interface Factory {

-		AssistMyStyle newAssistMyStyle() throws Problem;

-	}

-	abstract Item someMethod() throws Problem;

-}

-/**

- * and

- */

-interface GeneralConcept {

-	public static final class Problem extends Exception {

-	}

-	public static final class Item {

-	}

-	abstract Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine() throws Problem;

-}

-/**

- * ... and as a result I have many inner classes with the names

- * "Problem", "Factory" or "Item".

- * Now I Use code completation to procduce method stubs and got errors

- * as note in the method comments below.

- * I use "Automatically add import instead of qualified name" in 

- * 		Window > Preferences > Java > Editor > Code Assist:

- */

-class AssistMyStyleImpl extends AssistMyStyle implements GeneralConcept {

-	public static final class Factory implements AssistMyStyle.Factory {

-		public AssistMyStyle newAssistMyStyle() {

-			return new AssistMyStyleImpl();

-		}

-	}

-	/**

-	 * <pre>

-	 * 	Item someMethod() throws Problem {

-	 *		return null;

-	 *	}

-	 * </pre>

-	 * Implies errors:

-	 *  [1] The exception type Problem is ambiguous for the method someMethod

-	 *  [2] The return type Item is ambiguous for the method someMethod

-	 * I fix this:

-	 */

-	AssistMyStyle.Item someMethod() throws AssistMyStyle.Problem {

-		return null;

-	}

-	/**

-	 * anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()

-	 * <pre>

-	 * 	public Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()

-	 *	throws Problem {

-	 *	// XXX Auto-generated method stub

-	 *	return null;

-	 *	}

-	 * </pre>

-	 * Implies error:

-	 * [1] The exception type Problem is ambiguous for the method 

-	 *      anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()

-	 * [2] The return type Item is ambiguous for the method 

-	 *      anotherMethodWithLongNameToForceCodeformaterToBreakTheLine

-	 * I fix this and used code format (looks ugly!!!!):

-	 */

-	public GeneralConcept.Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine() throws GeneralConcept.Problem {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test382/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test382/A_out.js
deleted file mode 100644
index e1d4afd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test382/A_out.js
+++ /dev/null
@@ -1,82 +0,0 @@
-package de.neze.bugreport.eclipse;

-//Code generator imported: import de.neze.bugreport.eclipse.GeneralConcept.Item;

-//Code generator imported: import de.neze.bugreport.eclipse.GeneralConcept.Problem;

-/**

- * Feature Missing in Eclispe M5:

- * 

- * I like to write code like as noted below, and it seams that eclispe 

- * handling of ambigouse inner class names is suboptimal during codeassistance.

- * And the code formater has problems with disambigouated names.

- * Note: The exampe below is optimzed for shortness and that make it look a 

- * little bit stupid, but "real world" exmples are much longer .. .

- */

-public abstract class AssistMyStyle {

-	public static final class Problem extends Exception {

-	}

-	public static final class Item {

-	}

-	public static interface Factory {

-		AssistMyStyle newAssistMyStyle() throws Problem;

-	}

-	abstract Item someMethod() throws Problem;

-}

-/**

- * and

- */

-interface GeneralConcept {

-	public static final class Problem extends Exception {

-	}

-	public static final class Item {

-	}

-	abstract Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()

-			throws Problem;

-}

-/**

- * ... and as a result I have many inner classes with the names

- * "Problem", "Factory" or "Item".

- * Now I Use code completation to procduce method stubs and got errors

- * as note in the method comments below.

- * I use "Automatically add import instead of qualified name" in 

- * 		Window > Preferences > Java > Editor > Code Assist:

- */

-class AssistMyStyleImpl extends AssistMyStyle implements GeneralConcept {

-	public static final class Factory implements AssistMyStyle.Factory {

-		public AssistMyStyle newAssistMyStyle() {

-			return new AssistMyStyleImpl();

-		}

-	}

-	/**

-	 * <pre>

-	 * 	Item someMethod() throws Problem {

-	 *		return null;

-	 *	}

-	 * </pre>

-	 * Implies errors:

-	 *  [1] The exception type Problem is ambiguous for the method someMethod

-	 *  [2] The return type Item is ambiguous for the method someMethod

-	 * I fix this:

-	 */

-	AssistMyStyle.Item someMethod() throws AssistMyStyle.Problem {

-		return null;

-	}

-	/**

-	 * anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()

-	 * <pre>

-	 * 	public Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()

-	 *	throws Problem {

-	 *	// XXX Auto-generated method stub

-	 *	return null;

-	 *	}

-	 * </pre>

-	 * Implies error:

-	 * [1] The exception type Problem is ambiguous for the method 

-	 *      anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()

-	 * [2] The return type Item is ambiguous for the method 

-	 *      anotherMethodWithLongNameToForceCodeformaterToBreakTheLine

-	 * I fix this and used code format (looks ugly!!!!):

-	 */

-	public GeneralConcept.Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()

-			throws GeneralConcept.Problem {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test383/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test383/A_in.js
deleted file mode 100644
index 93384fa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test383/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	public void foo(int i) {

-		System.out.println(++i);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test383/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test383/A_out.js
deleted file mode 100644
index 1ee3c45..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test383/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-    public void foo(int i) {

-        System.out.println(++i);

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test384/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test384/A_in.js
deleted file mode 100644
index a039638..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test384/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-    int Example(

-        boolean Argument) {

-        return argument ? 100000

-                       : 200000;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test384/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test384/A_out.js
deleted file mode 100644
index 2621025..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test384/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-    int Example(boolean Argument) {

-        return argument ? 100000

-                        : 200000;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test385/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test385/A_in.js
deleted file mode 100644
index a039638..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test385/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-    int Example(

-        boolean Argument) {

-        return argument ? 100000

-                       : 200000;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test385/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test385/A_out.js
deleted file mode 100644
index 6cb02d1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test385/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-    int Example(boolean Argument) {

-        return argument

-                ? 100000

-                    : 200000;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test386/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test386/A_in.js
deleted file mode 100644
index a039638..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test386/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-    int Example(

-        boolean Argument) {

-        return argument ? 100000

-                       : 200000;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test386/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test386/A_out.js
deleted file mode 100644
index fb7ea98..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test386/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-    int Example(boolean Argument) {

-        return argument

-                ? 100000

-                : 200000;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test387/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test387/A_in.js
deleted file mode 100644
index a12db92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test387/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**

- * Conditional Expressions

- */

-class Example extends AnotherClass {

-    int Example(boolean Argument) {

-        return argument ? 100000 : 200000;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test387/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test387/A_out.js
deleted file mode 100644
index a12db92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test387/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**

- * Conditional Expressions

- */

-class Example extends AnotherClass {

-    int Example(boolean Argument) {

-        return argument ? 100000 : 200000;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test388/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test388/A_in.js
deleted file mode 100644
index abfd02d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test388/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class Example {

-    int[] fArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test388/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test388/A_out.js
deleted file mode 100644
index 89fec1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test388/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-class Example {

-	int[] fArray =

-	{

-			1,

-			2,

-			3,

-			4,

-			5,

-			6,

-			7,

-			8,

-			9,

-			10,

-			11,

-			12

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test389/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test389/A_in.js
deleted file mode 100644
index abfd02d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test389/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class Example {

-    int[] fArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test389/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test389/A_out.js
deleted file mode 100644
index 705dfef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test389/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-class Example {

-	int[] fArray =

-	{

-		1,

-		2,

-		3,

-		4,

-		5,

-		6,

-		7,

-		8,

-		9,

-		10,

-		11,

-		12

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test390/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test390/A_in.js
deleted file mode 100644
index abfd02d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test390/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class Example {

-    int[] fArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test390/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test390/A_out.js
deleted file mode 100644
index 4ff4b2c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test390/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	int[] fArray =

-	{

-		1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

-		11, 12

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test391/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test391/A_in.js
deleted file mode 100644
index abfd02d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test391/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class Example {

-    int[] fArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test391/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test391/A_out.js
deleted file mode 100644
index 4ff4b2c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test391/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	int[] fArray =

-	{

-		1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

-		11, 12

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test392/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test392/A_in.js
deleted file mode 100644
index abfd02d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test392/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class Example {

-    int[] fArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test392/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test392/A_out.js
deleted file mode 100644
index 4cae34f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test392/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	int[] fArray =

-		{

-			1, 2, 3, 4, 5, 6, 7, 8, 9,

-			10, 11, 12

-		};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test393/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test393/A_in.js
deleted file mode 100644
index abfd02d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test393/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class Example {

-    int[] fArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test393/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test393/A_out.js
deleted file mode 100644
index 4cae34f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test393/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	int[] fArray =

-		{

-			1, 2, 3, 4, 5, 6, 7, 8, 9,

-			10, 11, 12

-		};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test394/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test394/A_in.js
deleted file mode 100644
index 71eecaf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test394/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class Foo {

-

-  void bar() {

-    if (true && false || false || true && false) 

-      return;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test394/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test394/A_out.js
deleted file mode 100644
index ac9fa09..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test394/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Foo {

-	void bar() {

-		if (true && false || false || true && false)

-			return;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test395/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test395/A_in.js
deleted file mode 100644
index 53f49bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test395/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-

-  void foo(int a) {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test395/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test395/A_out.js
deleted file mode 100644
index 088c509..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test395/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	void foo (int a) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test396/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test396/A_in.js
deleted file mode 100644
index 6bff884..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test396/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-

-  void foo(int a) {

-  	for (int i=1; i<10; i++) {}

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test396/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test396/A_out.js
deleted file mode 100644
index b434f88..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test396/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo(int a) {

-		for (int i = 1 ; i < 10 ; i++) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test397/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test397/A_in.js
deleted file mode 100644
index bb502fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test397/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-

-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test397/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test397/A_out.js
deleted file mode 100644
index 84cceae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test397/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-

-

-package p;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test398/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test398/A_in.js
deleted file mode 100644
index bb502fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test398/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-

-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test398/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test398/A_out.js
deleted file mode 100644
index d8c8d79..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test398/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test399/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test399/A_in.js
deleted file mode 100644
index bb502fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test399/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-

-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test399/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test399/A_out.js
deleted file mode 100644
index 22c0337..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test399/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-

-package p;

-

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test400/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test400/A_in.js
deleted file mode 100644
index bb502fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test400/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-

-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test400/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test400/A_out.js
deleted file mode 100644
index 5ee26a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test400/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-

-

-package p;

-

-

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test401/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test401/A_in.js
deleted file mode 100644
index 5b1201d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test401/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p;

-public class A {

-	int[] tab = new int[] {};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test401/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test401/A_out.js
deleted file mode 100644
index a926518..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test401/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p;

-public class A {

-	int[] tab = new int[]{ };

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test402/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test402/A_in.js
deleted file mode 100644
index 5b1201d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test402/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p;

-public class A {

-	int[] tab = new int[] {};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test402/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test402/A_out.js
deleted file mode 100644
index 13a471b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test402/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p;

-public class A {

-	int[] tab = new int[]{};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test403/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test403/A_in.js
deleted file mode 100644
index 1244f3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test403/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo(String title, Object test) {

-		System.out.println(title + " world"); //$NON-NLS-1$

-		System.out.println(test.toString());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test403/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test403/A_out.js
deleted file mode 100644
index b100cbf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test403/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo(String title, Object test) {

-		System.out.println( title + " world" ); //$NON-NLS-1$

-		System.out.println( test.toString() );

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test404/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test404/A_in.js
deleted file mode 100644
index 1244f3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test404/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo(String title, Object test) {

-		System.out.println(title + " world"); //$NON-NLS-1$

-		System.out.println(test.toString());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test404/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test404/A_out.js
deleted file mode 100644
index 6ec96a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test404/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo(String title, Object test) {

-		System.out.println( title + " world" ); //$NON-NLS-1$

-		System.out.println( test.toString( ) );

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test405/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test405/A_in.js
deleted file mode 100644
index ec6daea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test405/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-package test; public class Hello {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test405/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test405/A_out.js
deleted file mode 100644
index b808752..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test405/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-

-

-

-

-

-

-

-

-

-

-package test;

-

-public class Hello {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test406/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test406/A_in.js
deleted file mode 100644
index 0bd3465..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test406/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-	void bar() {

-	}

-	void foo(String title, Object test) {

-		System.out.println(title + " world"); //$NON-NLS-1$

-		System.out.println(test.toString());

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test406/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test406/A_out.js
deleted file mode 100644
index 1e2d34c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test406/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-	void bar( ) {

-	}

-	void foo(String title, Object test) {

-		System.out.println( title + " world" ); //$NON-NLS-1$

-		System.out.println( test.toString() );

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test407/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test407/A_in.js
deleted file mode 100644
index 9afecb6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test407/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-void a() {

-    if (true)

-        System.out.println("a");

-    else

-        System.out.println("b");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test407/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test407/A_out.js
deleted file mode 100644
index 9afecb6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test407/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-void a() {

-    if (true)

-        System.out.println("a");

-    else

-        System.out.println("b");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test408/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test408/A_in.js
deleted file mode 100644
index 37f571a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test408/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-void a() {

-    String s = "a";

-    if (s.equals("")) //$NON-NLS-1$

-        System.out.println("a");

-    else

-        System.out.println("b");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test408/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test408/A_out.js
deleted file mode 100644
index 37f571a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test408/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-void a() {

-    String s = "a";

-    if (s.equals("")) //$NON-NLS-1$

-        System.out.println("a");

-    else

-        System.out.println("b");

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test409/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test409/A_in.js
deleted file mode 100644
index 52f91d2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test409/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-switch(3)

-{

-   case 1: {

-      break;

-   }

-   case 2:{

-      break;

-   }

-   default:{

-      break;

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test409/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test409/A_out.js
deleted file mode 100644
index c842337..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test409/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-switch (3)

-{

-	case 1 :

-	{

-		break;

-	}

-	case 2 :

-	{

-		break;

-	}

-	default :

-	{

-		break;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test410/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test410/A_in.js
deleted file mode 100644
index 9a0d30d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test410/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class A {

-}

-class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test410/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test410/A_out.js
deleted file mode 100644
index a249917..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test410/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class A {

-}

-

-class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test411/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test411/A_in.js
deleted file mode 100644
index 9a0d30d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test411/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class A {

-}

-class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test411/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test411/A_out.js
deleted file mode 100644
index 53fa1f2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test411/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class A {

-}

-

-

-class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test412/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test412/A_in.js
deleted file mode 100644
index 69da27f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test412/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p;

-;

-class A

-{

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test412/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test412/A_out.js
deleted file mode 100644
index dfbe041..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test412/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p;

-;

-class A {

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test413/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test413/A_in.js
deleted file mode 100644
index fa3c915..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test413/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p;

-;;;

-class A

-{

-};

-class B {};;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test413/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test413/A_out.js
deleted file mode 100644
index 541038d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test413/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package p;

-;;;

-class A {

-};

-

-class B {

-};;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test414/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test414/A_in.js
deleted file mode 100644
index 69da27f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test414/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p;

-;

-class A

-{

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test414/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test414/A_out.js
deleted file mode 100644
index dfbe041..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test414/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p;

-;

-class A {

-};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test415/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test415/A_in.js
deleted file mode 100644
index fa3c915..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test415/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p;

-;;;

-class A

-{

-};

-class B {};;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test415/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test415/A_out.js
deleted file mode 100644
index 541038d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test415/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package p;

-;;;

-class A {

-};

-

-class B {

-};;
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test416/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test416/A_in.js
deleted file mode 100644
index 10a19b9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test416/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p;

-;;; // comment

-class A

-{

-}; // comment 2

-class B {};; /* comment3 */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test416/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test416/A_out.js
deleted file mode 100644
index a533512..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test416/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package p;

-;;; // comment

-class A {

-}; // comment 2

-

-class B {

-};; /* comment3 */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test417/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test417/A_in.js
deleted file mode 100644
index af46723..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test417/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	A() {

-	}

-	void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test417/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test417/A_out.js
deleted file mode 100644
index aecfb47..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test417/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	A () {

-	}

-	void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test418/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test418/A_in.js
deleted file mode 100644
index af46723..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test418/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	A() {

-	}

-	void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test418/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test418/A_out.js
deleted file mode 100644
index 79fc3df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test418/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	A () {

-	}

-	void foo () {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test419/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test419/A_in.js
deleted file mode 100644
index 1cdff48..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test419/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class A {

-    private static final String EMPID_TEMPLATE = 

-        "<?xml version      =\"1.0\"?>\r\n" + 

-        "<Request name=\"IAT.GetEmployee\">\r\n" + 

-        "    <Input>\r\n" + 

-        "        <DEMOREC1>\r\n" + 

-        "            <EMPID>0</EMPID>\r\n" + 

-        "        </DEMOREC1>\r\n" + 

-        "    </Input>\r\n" + 

-        "</Request>";

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test419/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test419/A_out.js
deleted file mode 100644
index 0f0935f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test419/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class A {

-	private static final String EMPID_TEMPLATE =

-			"<?xml version      =\"1.0\"?>\r\n"

-			+ "<Request name=\"IAT.GetEmployee\">\r\n"

-			+ "    <Input>\r\n"

-			+ "        <DEMOREC1>\r\n"

-			+ "            <EMPID>0</EMPID>\r\n"

-			+ "        </DEMOREC1>\r\n"

-			+ "    </Input>\r\n"

-			+ "</Request>";

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test420/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test420/A_in.js
deleted file mode 100644
index d28d7a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test420/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A

-{

-   private static final UnsupportedOperationException exception      = new UnsupportedOperationException();

-   protected Object  m_snapshotDate = null;  //null indicates that its not snapshot view

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test420/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test420/A_out.js
deleted file mode 100644
index b7f67cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test420/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	private static final UnsupportedOperationException	exception		= new UnsupportedOperationException();

-	protected Object									m_snapshotDate	= null; 								//null indicates that its not snapshot view

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test421/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test421/A_in.js
deleted file mode 100644
index 71896ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test421/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo(String filename) {

-      Runtime.getRuntime().loadLibrary( filename );

-      System.loadLibrary( filename );

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test421/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test421/A_out.js
deleted file mode 100644
index 720ab91..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test421/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo(String filename) {

-		Runtime.getRuntime().loadLibrary( filename );

-		System.loadLibrary( filename );

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test422/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test422/A_in.js
deleted file mode 100644
index 71896ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test422/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo(String filename) {

-      Runtime.getRuntime().loadLibrary( filename );

-      System.loadLibrary( filename );

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test422/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test422/A_out.js
deleted file mode 100644
index bb8b836..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test422/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-

-    void foo(String filename) {

-        Runtime.getRuntime().loadLibrary( filename );

-        System.loadLibrary( filename );

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test423/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test423/A_in.js
deleted file mode 100644
index 1c405cd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test423/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class ThisIsAClassWithALongName implements Interface1, Cloneable, Serializable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test423/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test423/A_out.js
deleted file mode 100644
index 9d5c5db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test423/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ThisIsAClassWithALongName

-		implements

-			Interface1,

-			Cloneable,

-			Serializable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test424/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test424/A_in.js
deleted file mode 100644
index 1c405cd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test424/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class ThisIsAClassWithALongName implements Interface1, Cloneable, Serializable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test424/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test424/A_out.js
deleted file mode 100644
index f6474d6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test424/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class ThisIsAClassWithALongName

-		implements

-			Interface1,

-			Cloneable,

-			Serializable

-{

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test425/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test425/A_in.js
deleted file mode 100644
index 147100f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test425/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * 

- * 

- * 

- */

-public class A implements Interface1, Cloneable, Serializable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test425/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test425/A_out.js
deleted file mode 100644
index 147100f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test425/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * 

- * 

- * 

- */

-public class A implements Interface1, Cloneable, Serializable {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test426/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test426/A_in.js
deleted file mode 100644
index 539d73c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test426/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	

-	public void thisIsAMethodWithAVeryLongName(long l, int i, String s, Object o) throws IOException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test426/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test426/A_out.js
deleted file mode 100644
index d0d2a73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test426/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	public void thisIsAMethodWithAVeryLongName(long l, int i, String s, Object o)

-			throws IOException

-	{

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test427/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test427/A_in.js
deleted file mode 100644
index 5fcbb5a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test427/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	

-	void thisIsAMethodWithAVeryLongName(long l, int i, String s, Object o) throws IOException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test427/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test427/A_out.js
deleted file mode 100644
index 8a9617d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test427/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void thisIsAMethodWithAVeryLongName(long l, int i, String s, Object o)

-			throws IOException

-	{

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test428/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test428/A_in.js
deleted file mode 100644
index 46b87e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test428/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-	

-	/**

-	 * 

-	 * 

-	 */

-	void foo(long l, int i, String s, Object o) throws IOException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test428/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test428/A_out.js
deleted file mode 100644
index 564aabd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test428/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-	/**

-	 * 

-	 * 

-	 */

-	void foo(long l, int i, String s, Object o) throws IOException {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test429/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test429/A_in.js
deleted file mode 100644
index a64feee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test429/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class A {

-	

-	/**

-	 * 

-	 * 

-	 */

-	void foo(long l, int i, String s, Object o) throws IOException {

-		if (condition1 && condition2 && condition3 || condition4 && (condition5 && condition6)) {

-			System.out.println(4);

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test429/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test429/A_out.js
deleted file mode 100644
index 6855856..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test429/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class A {

-	/**

-	 * 

-	 * 

-	 */

-	void foo(long l, int i, String s, Object o) throws IOException {

-		if (condition1 && condition2 && condition3 || condition4

-				&& (condition5 && condition6))

-		{

-			System.out.println(4);

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test430/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test430/A_in.js
deleted file mode 100644
index d70163a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test430/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class A {

-	

-	/**

-	 * 

-	 * 

-	 */

-	void foo(long l, int i, String s, Object o) throws IOException {

-		/* if condition */

-		if (condition1 && condition2) {

-			System.out.println(4);

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test430/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test430/A_out.js
deleted file mode 100644
index df6e52d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test430/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class A {

-	/**

-	 * 

-	 * 

-	 */

-	void foo(long l, int i, String s, Object o) throws IOException {

-		/* if condition */

-		if (condition1 && condition2) {

-			System.out.println(4);

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test431/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test431/A_in.js
deleted file mode 100644
index 8771095..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test431/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	

-	void foo() {

-		for (;;);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test431/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test431/A_out.js
deleted file mode 100644
index 40a2b56..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test431/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		for (;;);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/A_in.js
deleted file mode 100644
index 17c0332..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/A_in.js
+++ /dev/null
@@ -1,838 +0,0 @@
-/* ====================================================================

- * The Apache Software License, Version 1.1

- *

- * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights

- * reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- *

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- *

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in

- *    the documentation and/or other materials provided with the

- *    distribution.

- *

- * 3. The end-user documentation included with the redistribution, if

- *    any, must include the following acknowledgement:

- *       "This product includes software developed by the

- *        Apache Software Foundation (http://www.apache.org/)."

- *    Alternately, this acknowledgement may appear in the software itself,

- *    if and wherever such third-party acknowledgements normally appear.

- *

- * 4. The names "The Jakarta Project", "Commons", and "Apache Software

- *    Foundation" must not be used to endorse or promote products derived

- *    from this software without prior written permission. For written

- *    permission, please contact apache@apache.org.

- *

- * 5. Products derived from this software may not be called "Apache"

- *    nor may "Apache" appear in their names without prior written

- *    permission of the Apache Software Foundation.

- *

- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- * ====================================================================

- *

- * This software consists of voluntary contributions made by many

- * individuals on behalf of the Apache Software Foundation.  For more

- * information on the Apache Software Foundation, please see

- * <http://www.apache.org/>.

- */

-package org.apache.commons.lang.builder;

-

-import java.lang.reflect.AccessibleObject;

-import java.lang.reflect.Field;

-import java.lang.reflect.Modifier;

-import java.util.HashSet;

-import java.util.Set;

-import org.apache.commons.lang.ClassUtils;

-

-/**

- * <p>

- * Assists in implementing {@link Object#toString()}methods using reflection.

- * </p>

- * 

- * <p>

- * This class uses reflection to determine the fields to append. Because these

- * fields are usually private, the class uses

- * {@link java.lang.reflect.AccessibleObject#setAccessible(java.lang.reflect.AccessibleObject[], boolean)}

- * to change the visibility of the fields. This will fail under a security

- * manager, unless the appropriate permissions are set up correctly.

- * </p>

- * 

- * <p>

- * A typical invocation for this method would look like:

- * </p>

- * 

- * <pre>

- * public String toString() {

- *   return ReflectionToStringBuilder.toString(this);

- * }</pre>

- * 

- * 

- * 

- * <p>

- * You can also use the builder to debug 3rd party objects:

- * </p>

- * 

- * <pre>

- * System.out.println("An object: " + ReflectionToStringBuilder.toString(anObject));</pre>

- * 

- * 

- * 

- * <p>

- * A subclass can control field output by overriding the methods:

- * <ul>

- * <li>{@link #accept(java.lang.reflect.Field)}</li>

- * <li>{@link #getValue(java.lang.reflect.Field)}</li>

- * </ul>

- * </p>

- * <p>

- * For example, this method does <i>not</i> include the <code>password</code>

- * field in the returned <code>String</code>:

- * </p>

- * 

- * <pre>

- * public String toString() {

- *     return (new ReflectionToStringBuilder(this) {

- *         protected boolean accept(Field f) {

- *             return super.accept(f) && !f.getName().equals("password");

- *         }

- *     }).toString();

- * }</pre>

- * 

- * 

- * 

- * <p>

- * The exact format of the <code>toString</code> is determined by the

- * {@link ToStringStyle}passed into the constructor.

- * </p>

- * 

- * @author Gary Gregory

- * @author Stephen Colebourne

- * @author Pete Gieser

- * @since 2.0

- * @version $Id: ReflectionToStringBuilder.java,v 1.15 2003/12/02 19:11:58

- *               ggregory Exp $

- */

-public class ReflectionToStringBuilder extends ToStringBuilder {

-    /**

-     * <p>

-     * A registry of objects used by <code>reflectionToString</code> methods

-     * to detect cyclical object references and avoid infinite loops.

-     * </p>

-     */

-    private static ThreadLocal registry = new ThreadLocal() {

-        protected synchronized Object initialValue() {

-            // The HashSet implementation is not synchronized,

-            // which is just what we need here.

-            return new HashSet();

-        }

-    };

-

-    /**

-     * <p>

-     * Returns the registry of objects being traversed by the <code>reflectionToString</code>

-     * methods in the current thread.

-     * </p>

-     * 

-     * @return Set the registry of objects being traversed

-     */

-    static Set getRegistry() {

-        return (Set) registry.get();

-    }

-

-    /**

-     * <p>

-     * Returns <code>true</code> if the registry contains the given object.

-     * Used by the reflection methods to avoid infinite loops.

-     * </p>

-     * 

-     * @param value

-     *                  The object to lookup in the registry.

-     * @return boolean <code>true</code> if the registry contains the given

-     *             object.

-     */

-    static boolean isRegistered(Object value) {

-        return getRegistry().contains(value);

-    }

-

-    /**

-     * <p>

-     * Registers the given object. Used by the reflection methods to avoid

-     * infinite loops.

-     * </p>

-     * 

-     * @param value

-     *                  The object to register.

-     */

-    static void register(Object value) {

-        getRegistry().add(value);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>

-     * using the default <code>ToStringStyle</code>.

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * Transient members will be not be included, as they are likely derived.

-     * Static fields will not be included. Superclass fields will be appended.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object) {

-        return toString(object, null, false, false, null);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * Transient members will be not be included, as they are likely derived.

-     * Static fields will not be included. Superclass fields will be appended.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object or <code>ToStringStyle</code> is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style) {

-        return toString(object, style, false, false, null);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputTransients</code> is <code>true</code>,

-     * transient members will be output, otherwise they are ignored, as they

-     * are likely derived fields, and not part of the value of the Object.

-     * </p>

-     * 

-     * <p>

-     * Static fields will not be included. Superclass fields will be appended.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style, boolean outputTransients) {

-        return toString(object, style, outputTransients, false, null);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputTransients</code> is <code>true</code>,

-     * transient fields will be output, otherwise they are ignored, as they are

-     * likely derived fields, and not part of the value of the Object.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputStatics</code> is <code>true</code>, static

-     * fields will be output, otherwise they are ignored.

-     * </p>

-     * 

-     * <p>

-     * Static fields will not be included. Superclass fields will be appended.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @param outputStatics

-     *                  whether to include transient fields

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style, boolean outputTransients, boolean outputStatics) {

-        return toString(object, style, outputTransients, outputStatics, null);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputTransients</code> is <code>true</code>,

-     * transient fields will be output, otherwise they are ignored, as they are

-     * likely derived fields, and not part of the value of the Object.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputStatics</code> is <code>true</code>, static

-     * fields will be output, otherwise they are ignored.

-     * </p>

-     * 

-     * <p>

-     * Superclass fields will be appended up to and including the specified

-     * superclass. A null superclass is treated as <code>java.lang.Object</code>.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @param outputStatics

-     *                  whether to include static fields

-     * @param reflectUpToClass

-     *                  the superclass to reflect up to (inclusive), may be <code>null</code>

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style, boolean outputTransients, boolean outputStatics,

-            Class reflectUpToClass) {

-        return new ReflectionToStringBuilder(object, style, null, reflectUpToClass, outputTransients, outputStatics)

-                .toString();

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputTransients</code> is <code>true</code>,

-     * transient members will be output, otherwise they are ignored, as they

-     * are likely derived fields, and not part of the value of the Object.

-     * </p>

-     * 

-     * <p>

-     * Static fields will not be included. Superclass fields will be appended

-     * up to and including the specified superclass. A null superclass is

-     * treated as <code>java.lang.Object</code>.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @deprecated Use

-     *                     {@link #toString(Object,ToStringStyle,boolean,boolean,Class)}

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @param reflectUpToClass

-     *                  the superclass to reflect up to (inclusive), may be <code>null</code>

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style, boolean outputTransients, Class reflectUpToClass) {

-        return new ReflectionToStringBuilder(object, style, null, reflectUpToClass, outputTransients).toString();

-    }

-

-    /**

-     * <p>

-     * Unregisters the given object.

-     * </p>

-     * 

-     * <p>

-     * Used by the reflection methods to avoid infinite loops.

-     * </p>

-     * 

-     * @param value

-     *                  The object to unregister.

-     */

-    static void unregister(Object value) {

-        getRegistry().remove(value);

-    }

-

-    /**

-     * Whether or not to append static fields.

-     */

-    private boolean appendStatics = false;

-

-    /**

-     * Whether or not to append transient fields.

-     */

-    private boolean appendTransients = false;

-

-    /**

-     * The last super class to stop appending fields for.

-     */

-    private Class upToClass = null;

-

-    /**

-     * <p>

-     * Constructor.

-     * </p>

-     * 

-     * <p>

-     * This constructor outputs using the default style set with <code>setDefaultStyle</code>.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @throws IllegalArgumentException

-     *                  if the Object passed in is <code>null</code>

-     */

-    public ReflectionToStringBuilder(Object object) {

-        super(object);

-    }

-

-    /**

-     * <p>

-     * Constructor.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default style is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @throws IllegalArgumentException

-     *                  if the Object passed in is <code>null</code>

-     */

-    public ReflectionToStringBuilder(Object object, ToStringStyle style) {

-        super(object, style);

-    }

-

-    /**

-     * <p>

-     * Constructor.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default style is used.

-     * </p>

-     * 

-     * <p>

-     * If the buffer is <code>null</code>, a new one is created.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param buffer

-     *                  the <code>StringBuffer</code> to populate, may be <code>null</code>

-     * @throws IllegalArgumentException

-     *                  if the Object passed in is <code>null</code>

-     */

-    public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer) {

-        super(object, style, buffer);

-    }

-

-    /**

-     * Constructor.

-     * 

-     * @deprecated Use

-     *                     {@link #ReflectionToStringBuilder(Object,ToStringStyle,StringBuffer,Class,boolean,boolean)}.

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param buffer

-     *                  the <code>StringBuffer</code> to populate, may be <code>null</code>

-     * @param reflectUpToClass

-     *                  the superclass to reflect up to (inclusive), may be <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     */

-    public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer, Class reflectUpToClass,

-            boolean outputTransients) {

-        super(object, style, buffer);

-        this.setUpToClass(reflectUpToClass);

-        this.setAppendTransients(outputTransients);

-    }

-

-    /**

-     * Constructor.

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param buffer

-     *                  the <code>StringBuffer</code> to populate, may be <code>null</code>

-     * @param reflectUpToClass

-     *                  the superclass to reflect up to (inclusive), may be <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @param outputStatics

-     *                  whether to include static fields

-     */

-    public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer, Class reflectUpToClass,

-            boolean outputTransients, boolean outputStatics) {

-        super(object, style, buffer);

-        this.setUpToClass(reflectUpToClass);

-        this.setAppendTransients(outputTransients);

-        this.setAppendStatics(outputStatics);

-    }

-

-    /**

-     * Returns whether or not to append the given <code>Field</code>.

-     * <ul>

-     * <li>Transient fields are appended only if {@link #isAppendTransients()}

-     * returns <code>true</code>.

-     * <li>Static fields are appended only if {@link #isAppendStatics()}

-     * returns <code>true</code>.

-     * <li>Inner class fields are not appened.</li>

-     * </ul>

-     * 

-     * @param field

-     *                  The Field to test.

-     * @return Whether or not to append the given <code>Field</code>.

-     */

-    protected boolean accept(Field field) {

-        if (field.getName().indexOf(ClassUtils.INNER_CLASS_SEPARATOR_CHAR) != -1) {

-            // Reject field from inner class.

-            return false;

-        }

-        if (Modifier.isTransient(field.getModifiers()) && !this.isAppendTransients()) {

-            // transients.

-            return false;

-        }

-        if (Modifier.isStatic(field.getModifiers()) && !this.isAppendStatics()) {

-            // transients.

-            return false;

-        }

-        return true;

-    }

-

-    /**

-     * <p>

-     * Appends the fields and values defined by the given object of the given

-     * Class.

-     * </p>

-     * 

-     * <p>

-     * If a cycle is detected as an object is &quot;toString()'ed&quot;, such

-     * an object is rendered as if <code>Object.toString()</code> had been

-     * called and not implemented by the object.

-     * </p>

-     * 

-     * @param clazz

-     *                  The class of object parameter

-     */

-    protected void appendFieldsIn(Class clazz) {

-        if (isRegistered(this.getObject())) {

-            // The object has already been appended, therefore we have an

-            // object cycle.

-            // Append a simple Object.toString style string. The field name is

-            // already appended at this point.

-            this.appendAsObjectToString(this.getObject());

-            return;

-        }

-        try {

-            this.registerObject();

-            if (clazz.isArray()) {

-                this.reflectionAppendArray(this.getObject());

-                return;

-            }

-            Field[] fields = clazz.getDeclaredFields();

-            AccessibleObject.setAccessible(fields, true);

-            for (int i = 0; i < fields.length; i++) {

-                Field field = fields[i];

-                String fieldName = field.getName();

-                if (this.accept(field)) {

-                    try {

-                        // Warning: Field.get(Object) creates wrappers objects

-                        // for primitive types.

-                        Object fieldValue = this.getValue(field);

-                        if (isRegistered(fieldValue) && !field.getType().isPrimitive()) {

-                            // A known field value has already been appended,

-                            // therefore we have an object cycle,

-                            // append a simple Object.toString style string.

-                            this.getStyle().appendFieldStart(this.getStringBuffer(), fieldName);

-                            this.appendAsObjectToString(fieldValue);

-                            // The recursion out of

-                            //    builder.append(fieldName, fieldValue);

-                            // below will append the field

-                            // end marker.

-                        } else {

-                            try {

-                                this.registerObject();

-                                this.append(fieldName, fieldValue);

-                            } finally {

-                                this.unregisterObject();

-                            }

-                        }

-                    } catch (IllegalAccessException ex) {

-                        //this can't happen. Would get a Security exception

-                        // instead

-                        //throw a runtime exception in case the impossible

-                        // happens.

-                        throw new InternalError("Unexpected IllegalAccessException: " + ex.getMessage());

-                    }

-                }

-            }

-        } finally {

-            this.unregisterObject();

-        }

-    }

-

-    /**

-     * <p>

-     * Gets the last super class to stop appending fields for.

-     * </p>

-     * 

-     * @return The last super class to stop appending fields for.

-     */

-    public Class getUpToClass() {

-        return this.upToClass;

-    }

-

-    /**

-     * <p>

-     * Calls <code>java.lang.reflect.Field.get(Object)</code>.

-     * </p>

-     * 

-     * @param field

-     *                  The Field to query.

-     * @return The Object from the given Field.

-     * 

-     * @throws IllegalArgumentException

-     *                  see {@link java.lang.reflect.Field#get(Object)}

-     * @throws IllegalAccessException

-     *                  see {@link java.lang.reflect.Field#get(Object)}

-     * 

-     * @see java.lang.reflect.Field#get(Object)

-     */

-    protected Object getValue(Field field) throws IllegalArgumentException, IllegalAccessException {

-        return field.get(this.getObject());

-    }

-

-    /**

-     * <p>

-     * Gets whether or not to append static fields.

-     * </p>

-     * 

-     * @return Whether or not to append static fields.

-     */

-    public boolean isAppendStatics() {

-        return this.appendStatics;

-    }

-

-    /**

-     * <p>

-     * Gets whether or not to append transient fields.

-     * </p>

-     * 

-     * @return Whether or not to append transient fields.

-     */

-    public boolean isAppendTransients() {

-        return this.appendTransients;

-    }

-

-    /**

-     * <p>

-     * Append to the <code>toString</code> an <code>Object</code> array.

-     * </p>

-     * 

-     * @param array

-     *                  the array to add to the <code>toString</code>

-     * @return this

-     */

-    public ToStringBuilder reflectionAppendArray(Object array) {

-        this.getStyle().reflectionAppendArrayDetail(this.getStringBuffer(), null, array);

-        return this;

-    }

-

-    /**

-     * <p>

-     * Registers this builder's source object to avoid infinite loops when

-     * processing circular object references.

-     * </p>

-     */

-    void registerObject() {

-        register(this.getObject());

-    }

-

-    /**

-     * <p>

-     * Sets whether or not to append static fields.

-     * </p>

-     * 

-     * @param appendStatics

-     *                  Whether or not to append static fields.

-     */

-    public void setAppendStatics(boolean appendStatics) {

-        this.appendStatics = appendStatics;

-    }

-

-    /**

-     * <p>

-     * Sets whether or not to append transient fields.

-     * </p>

-     * 

-     * @param appendTransients

-     *                  Whether or not to append transient fields.

-     */

-    public void setAppendTransients(boolean appendTransients) {

-        this.appendTransients = appendTransients;

-    }

-

-    /**

-     * <p>

-     * Sets the last super class to stop appending fields for.

-     * </p>

-     * 

-     * @param clazz

-     *                  The last super class to stop appending fields for.

-     */

-    public void setUpToClass(Class clazz) {

-        this.upToClass = clazz;

-    }

-

-    /**

-     * <p>

-     * Gets the String built by this builder.

-     * </p>

-     * 

-     * @return the built string

-     */

-    public String toString() {

-        if (this.getObject() == null) {

-            return this.getStyle().getNullText();

-        }

-        Class clazz = this.getObject().getClass();

-        this.appendFieldsIn(clazz);

-        while (clazz.getSuperclass() != null && clazz != this.getUpToClass()) {

-            clazz = clazz.getSuperclass();

-            this.appendFieldsIn(clazz);

-        }

-        return super.toString();

-    }

-

-    /**

-     * <p>

-     * Unregisters this builder's source object to avoid infinite loops when

-     * processing circular object references.

-     * </p>

-     */

-    void unregisterObject() {

-        unregister(this.getObject());

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/A_out.js
deleted file mode 100644
index 7123d11..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/A_out.js
+++ /dev/null
@@ -1,839 +0,0 @@
-/* ====================================================================

- * The Apache Software License, Version 1.1

- *

- * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights

- * reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- *

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- *

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in

- *    the documentation and/or other materials provided with the

- *    distribution.

- *

- * 3. The end-user documentation included with the redistribution, if

- *    any, must include the following acknowledgement:

- *       "This product includes software developed by the

- *        Apache Software Foundation (http://www.apache.org/)."

- *    Alternately, this acknowledgement may appear in the software itself,

- *    if and wherever such third-party acknowledgements normally appear.

- *

- * 4. The names "The Jakarta Project", "Commons", and "Apache Software

- *    Foundation" must not be used to endorse or promote products derived

- *    from this software without prior written permission. For written

- *    permission, please contact apache@apache.org.

- *

- * 5. Products derived from this software may not be called "Apache"

- *    nor may "Apache" appear in their names without prior written

- *    permission of the Apache Software Foundation.

- *

- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- * ====================================================================

- *

- * This software consists of voluntary contributions made by many

- * individuals on behalf of the Apache Software Foundation.  For more

- * information on the Apache Software Foundation, please see

- * <http://www.apache.org/>.

- */

-

-package org.apache.commons.lang.builder;

-

-import java.lang.reflect.AccessibleObject;

-import java.lang.reflect.Field;

-import java.lang.reflect.Modifier;

-import java.util.HashSet;

-import java.util.Set;

-import org.apache.commons.lang.ClassUtils;

-

-/**

- * <p>

- * Assists in implementing {@link Object#toString()}methods using reflection.

- * </p>

- * 

- * <p>

- * This class uses reflection to determine the fields to append. Because these

- * fields are usually private, the class uses

- * {@link java.lang.reflect.AccessibleObject#setAccessible(java.lang.reflect.AccessibleObject[], boolean)}

- * to change the visibility of the fields. This will fail under a security

- * manager, unless the appropriate permissions are set up correctly.

- * </p>

- * 

- * <p>

- * A typical invocation for this method would look like:

- * </p>

- * 

- * <pre>

- * public String toString() {

- *   return ReflectionToStringBuilder.toString(this);

- * }</pre>

- * 

- * 

- * 

- * <p>

- * You can also use the builder to debug 3rd party objects:

- * </p>

- * 

- * <pre>

- * System.out.println("An object: " + ReflectionToStringBuilder.toString(anObject));</pre>

- * 

- * 

- * 

- * <p>

- * A subclass can control field output by overriding the methods:

- * <ul>

- * <li>{@link #accept(java.lang.reflect.Field)}</li>

- * <li>{@link #getValue(java.lang.reflect.Field)}</li>

- * </ul>

- * </p>

- * <p>

- * For example, this method does <i>not</i> include the <code>password</code>

- * field in the returned <code>String</code>:

- * </p>

- * 

- * <pre>

- * public String toString() {

- *     return (new ReflectionToStringBuilder(this) {

- *         protected boolean accept(Field f) {

- *             return super.accept(f) && !f.getName().equals("password");

- *         }

- *     }).toString();

- * }</pre>

- * 

- * 

- * 

- * <p>

- * The exact format of the <code>toString</code> is determined by the

- * {@link ToStringStyle}passed into the constructor.

- * </p>

- * 

- * @author Gary Gregory

- * @author Stephen Colebourne

- * @author Pete Gieser

- * @since 2.0

- * @version $Id: ReflectionToStringBuilder.java,v 1.15 2003/12/02 19:11:58

- *               ggregory Exp $

- */

-public class ReflectionToStringBuilder extends ToStringBuilder {

-    /**

-     * <p>

-     * A registry of objects used by <code>reflectionToString</code> methods

-     * to detect cyclical object references and avoid infinite loops.

-     * </p>

-     */

-    private static ThreadLocal registry = new ThreadLocal() {

-        protected synchronized Object initialValue() {

-            // The HashSet implementation is not synchronized,

-            // which is just what we need here.

-            return new HashSet();

-        }

-    };

-

-    /**

-     * <p>

-     * Returns the registry of objects being traversed by the <code>reflectionToString</code>

-     * methods in the current thread.

-     * </p>

-     * 

-     * @return Set the registry of objects being traversed

-     */

-    static Set getRegistry() {

-        return (Set) registry.get();

-    }

-

-    /**

-     * <p>

-     * Returns <code>true</code> if the registry contains the given object.

-     * Used by the reflection methods to avoid infinite loops.

-     * </p>

-     * 

-     * @param value

-     *                  The object to lookup in the registry.

-     * @return boolean <code>true</code> if the registry contains the given

-     *             object.

-     */

-    static boolean isRegistered(Object value) {

-        return getRegistry().contains(value);

-    }

-

-    /**

-     * <p>

-     * Registers the given object. Used by the reflection methods to avoid

-     * infinite loops.

-     * </p>

-     * 

-     * @param value

-     *                  The object to register.

-     */

-    static void register(Object value) {

-        getRegistry().add(value);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>

-     * using the default <code>ToStringStyle</code>.

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * Transient members will be not be included, as they are likely derived.

-     * Static fields will not be included. Superclass fields will be appended.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object) {

-        return toString(object, null, false, false, null);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * Transient members will be not be included, as they are likely derived.

-     * Static fields will not be included. Superclass fields will be appended.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object or <code>ToStringStyle</code> is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style) {

-        return toString(object, style, false, false, null);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputTransients</code> is <code>true</code>,

-     * transient members will be output, otherwise they are ignored, as they

-     * are likely derived fields, and not part of the value of the Object.

-     * </p>

-     * 

-     * <p>

-     * Static fields will not be included. Superclass fields will be appended.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style, boolean outputTransients) {

-        return toString(object, style, outputTransients, false, null);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputTransients</code> is <code>true</code>,

-     * transient fields will be output, otherwise they are ignored, as they are

-     * likely derived fields, and not part of the value of the Object.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputStatics</code> is <code>true</code>, static

-     * fields will be output, otherwise they are ignored.

-     * </p>

-     * 

-     * <p>

-     * Static fields will not be included. Superclass fields will be appended.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @param outputStatics

-     *                  whether to include transient fields

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style, boolean outputTransients, boolean outputStatics) {

-        return toString(object, style, outputTransients, outputStatics, null);

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputTransients</code> is <code>true</code>,

-     * transient fields will be output, otherwise they are ignored, as they are

-     * likely derived fields, and not part of the value of the Object.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputStatics</code> is <code>true</code>, static

-     * fields will be output, otherwise they are ignored.

-     * </p>

-     * 

-     * <p>

-     * Superclass fields will be appended up to and including the specified

-     * superclass. A null superclass is treated as <code>java.lang.Object</code>.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @param outputStatics

-     *                  whether to include static fields

-     * @param reflectUpToClass

-     *                  the superclass to reflect up to (inclusive), may be <code>null</code>

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style, boolean outputTransients, boolean outputStatics,

-            Class reflectUpToClass) {

-        return new ReflectionToStringBuilder(object, style, null, reflectUpToClass, outputTransients, outputStatics)

-                .toString();

-    }

-

-    /**

-     * <p>

-     * This method uses reflection to build a suitable <code>toString</code>.

-     * </p>

-     * 

-     * <p>

-     * It uses <code>AccessibleObject.setAccessible</code> to gain access to

-     * private fields. This means that it will throw a security exception if

-     * run under a security manager, if the permissions are not set up

-     * correctly. It is also not as efficient as testing explicitly.

-     * </p>

-     * 

-     * <p>

-     * If the <code>outputTransients</code> is <code>true</code>,

-     * transient members will be output, otherwise they are ignored, as they

-     * are likely derived fields, and not part of the value of the Object.

-     * </p>

-     * 

-     * <p>

-     * Static fields will not be included. Superclass fields will be appended

-     * up to and including the specified superclass. A null superclass is

-     * treated as <code>java.lang.Object</code>.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default <code>ToStringStyle</code>

-     * is used.

-     * </p>

-     * 

-     * @deprecated Use

-     *                     {@link #toString(Object,ToStringStyle,boolean,boolean,Class)}

-     * 

-     * @param object

-     *                  the Object to be output

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @param reflectUpToClass

-     *                  the superclass to reflect up to (inclusive), may be <code>null</code>

-     * @return the String result

-     * @throws IllegalArgumentException

-     *                  if the Object is <code>null</code>

-     */

-    public static String toString(Object object, ToStringStyle style, boolean outputTransients, Class reflectUpToClass) {

-        return new ReflectionToStringBuilder(object, style, null, reflectUpToClass, outputTransients).toString();

-    }

-

-    /**

-     * <p>

-     * Unregisters the given object.

-     * </p>

-     * 

-     * <p>

-     * Used by the reflection methods to avoid infinite loops.

-     * </p>

-     * 

-     * @param value

-     *                  The object to unregister.

-     */

-    static void unregister(Object value) {

-        getRegistry().remove(value);

-    }

-

-    /**

-     * Whether or not to append static fields.

-     */

-    private boolean appendStatics = false;

-

-    /**

-     * Whether or not to append transient fields.

-     */

-    private boolean appendTransients = false;

-

-    /**

-     * The last super class to stop appending fields for.

-     */

-    private Class upToClass = null;

-

-    /**

-     * <p>

-     * Constructor.

-     * </p>

-     * 

-     * <p>

-     * This constructor outputs using the default style set with <code>setDefaultStyle</code>.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @throws IllegalArgumentException

-     *                  if the Object passed in is <code>null</code>

-     */

-    public ReflectionToStringBuilder(Object object) {

-        super(object);

-    }

-

-    /**

-     * <p>

-     * Constructor.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default style is used.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @throws IllegalArgumentException

-     *                  if the Object passed in is <code>null</code>

-     */

-    public ReflectionToStringBuilder(Object object, ToStringStyle style) {

-        super(object, style);

-    }

-

-    /**

-     * <p>

-     * Constructor.

-     * </p>

-     * 

-     * <p>

-     * If the style is <code>null</code>, the default style is used.

-     * </p>

-     * 

-     * <p>

-     * If the buffer is <code>null</code>, a new one is created.

-     * </p>

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param buffer

-     *                  the <code>StringBuffer</code> to populate, may be <code>null</code>

-     * @throws IllegalArgumentException

-     *                  if the Object passed in is <code>null</code>

-     */

-    public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer) {

-        super(object, style, buffer);

-    }

-

-    /**

-     * Constructor.

-     * 

-     * @deprecated Use

-     *                     {@link #ReflectionToStringBuilder(Object,ToStringStyle,StringBuffer,Class,boolean,boolean)}.

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param buffer

-     *                  the <code>StringBuffer</code> to populate, may be <code>null</code>

-     * @param reflectUpToClass

-     *                  the superclass to reflect up to (inclusive), may be <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     */

-    public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer, Class reflectUpToClass,

-            boolean outputTransients) {

-        super(object, style, buffer);

-        this.setUpToClass(reflectUpToClass);

-        this.setAppendTransients(outputTransients);

-    }

-

-    /**

-     * Constructor.

-     * 

-     * @param object

-     *                  the Object to build a <code>toString</code> for, must not

-     *                  be <code>null</code>

-     * @param style

-     *                  the style of the <code>toString</code> to create, may be

-     *                  <code>null</code>

-     * @param buffer

-     *                  the <code>StringBuffer</code> to populate, may be <code>null</code>

-     * @param reflectUpToClass

-     *                  the superclass to reflect up to (inclusive), may be <code>null</code>

-     * @param outputTransients

-     *                  whether to include transient fields

-     * @param outputStatics

-     *                  whether to include static fields

-     */

-    public ReflectionToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer, Class reflectUpToClass,

-            boolean outputTransients, boolean outputStatics) {

-        super(object, style, buffer);

-        this.setUpToClass(reflectUpToClass);

-        this.setAppendTransients(outputTransients);

-        this.setAppendStatics(outputStatics);

-    }

-

-    /**

-     * Returns whether or not to append the given <code>Field</code>.

-     * <ul>

-     * <li>Transient fields are appended only if {@link #isAppendTransients()}

-     * returns <code>true</code>.

-     * <li>Static fields are appended only if {@link #isAppendStatics()}

-     * returns <code>true</code>.

-     * <li>Inner class fields are not appened.</li>

-     * </ul>

-     * 

-     * @param field

-     *                  The Field to test.

-     * @return Whether or not to append the given <code>Field</code>.

-     */

-    protected boolean accept(Field field) {

-        if (field.getName().indexOf(ClassUtils.INNER_CLASS_SEPARATOR_CHAR) != -1) {

-            // Reject field from inner class.

-            return false;

-        }

-        if (Modifier.isTransient(field.getModifiers()) && !this.isAppendTransients()) {

-            // transients.

-            return false;

-        }

-        if (Modifier.isStatic(field.getModifiers()) && !this.isAppendStatics()) {

-            // transients.

-            return false;

-        }

-        return true;

-    }

-

-    /**

-     * <p>

-     * Appends the fields and values defined by the given object of the given

-     * Class.

-     * </p>

-     * 

-     * <p>

-     * If a cycle is detected as an object is &quot;toString()'ed&quot;, such

-     * an object is rendered as if <code>Object.toString()</code> had been

-     * called and not implemented by the object.

-     * </p>

-     * 

-     * @param clazz

-     *                  The class of object parameter

-     */

-    protected void appendFieldsIn(Class clazz) {

-        if (isRegistered(this.getObject())) {

-            // The object has already been appended, therefore we have an

-            // object cycle.

-            // Append a simple Object.toString style string. The field name is

-            // already appended at this point.

-            this.appendAsObjectToString(this.getObject());

-            return;

-        }

-        try {

-            this.registerObject();

-            if (clazz.isArray()) {

-                this.reflectionAppendArray(this.getObject());

-                return;

-            }

-            Field[] fields = clazz.getDeclaredFields();

-            AccessibleObject.setAccessible(fields, true);

-            for (int i = 0; i < fields.length; i++) {

-                Field field = fields[i];

-                String fieldName = field.getName();

-                if (this.accept(field)) {

-                    try {

-                        // Warning: Field.get(Object) creates wrappers objects

-                        // for primitive types.

-                        Object fieldValue = this.getValue(field);

-                        if (isRegistered(fieldValue) && !field.getType().isPrimitive()) {

-                            // A known field value has already been appended,

-                            // therefore we have an object cycle,

-                            // append a simple Object.toString style string.

-                            this.getStyle().appendFieldStart(this.getStringBuffer(), fieldName);

-                            this.appendAsObjectToString(fieldValue);

-                            // The recursion out of

-                            //    builder.append(fieldName, fieldValue);

-                            // below will append the field

-                            // end marker.

-                        } else {

-                            try {

-                                this.registerObject();

-                                this.append(fieldName, fieldValue);

-                            } finally {

-                                this.unregisterObject();

-                            }

-                        }

-                    } catch (IllegalAccessException ex) {

-                        //this can't happen. Would get a Security exception

-                        // instead

-                        //throw a runtime exception in case the impossible

-                        // happens.

-                        throw new InternalError("Unexpected IllegalAccessException: " + ex.getMessage());

-                    }

-                }

-            }

-        } finally {

-            this.unregisterObject();

-        }

-    }

-

-    /**

-     * <p>

-     * Gets the last super class to stop appending fields for.

-     * </p>

-     * 

-     * @return The last super class to stop appending fields for.

-     */

-    public Class getUpToClass() {

-        return this.upToClass;

-    }

-

-    /**

-     * <p>

-     * Calls <code>java.lang.reflect.Field.get(Object)</code>.

-     * </p>

-     * 

-     * @param field

-     *                  The Field to query.

-     * @return The Object from the given Field.

-     * 

-     * @throws IllegalArgumentException

-     *                  see {@link java.lang.reflect.Field#get(Object)}

-     * @throws IllegalAccessException

-     *                  see {@link java.lang.reflect.Field#get(Object)}

-     * 

-     * @see java.lang.reflect.Field#get(Object)

-     */

-    protected Object getValue(Field field) throws IllegalArgumentException, IllegalAccessException {

-        return field.get(this.getObject());

-    }

-

-    /**

-     * <p>

-     * Gets whether or not to append static fields.

-     * </p>

-     * 

-     * @return Whether or not to append static fields.

-     */

-    public boolean isAppendStatics() {

-        return this.appendStatics;

-    }

-

-    /**

-     * <p>

-     * Gets whether or not to append transient fields.

-     * </p>

-     * 

-     * @return Whether or not to append transient fields.

-     */

-    public boolean isAppendTransients() {

-        return this.appendTransients;

-    }

-

-    /**

-     * <p>

-     * Append to the <code>toString</code> an <code>Object</code> array.

-     * </p>

-     * 

-     * @param array

-     *                  the array to add to the <code>toString</code>

-     * @return this

-     */

-    public ToStringBuilder reflectionAppendArray(Object array) {

-        this.getStyle().reflectionAppendArrayDetail(this.getStringBuffer(), null, array);

-        return this;

-    }

-

-    /**

-     * <p>

-     * Registers this builder's source object to avoid infinite loops when

-     * processing circular object references.

-     * </p>

-     */

-    void registerObject() {

-        register(this.getObject());

-    }

-

-    /**

-     * <p>

-     * Sets whether or not to append static fields.

-     * </p>

-     * 

-     * @param appendStatics

-     *                  Whether or not to append static fields.

-     */

-    public void setAppendStatics(boolean appendStatics) {

-        this.appendStatics = appendStatics;

-    }

-

-    /**

-     * <p>

-     * Sets whether or not to append transient fields.

-     * </p>

-     * 

-     * @param appendTransients

-     *                  Whether or not to append transient fields.

-     */

-    public void setAppendTransients(boolean appendTransients) {

-        this.appendTransients = appendTransients;

-    }

-

-    /**

-     * <p>

-     * Sets the last super class to stop appending fields for.

-     * </p>

-     * 

-     * @param clazz

-     *                  The last super class to stop appending fields for.

-     */

-    public void setUpToClass(Class clazz) {

-        this.upToClass = clazz;

-    }

-

-    /**

-     * <p>

-     * Gets the String built by this builder.

-     * </p>

-     * 

-     * @return the built string

-     */

-    public String toString() {

-        if (this.getObject() == null) {

-            return this.getStyle().getNullText();

-        }

-        Class clazz = this.getObject().getClass();

-        this.appendFieldsIn(clazz);

-        while (clazz.getSuperclass() != null && clazz != this.getUpToClass()) {

-            clazz = clazz.getSuperclass();

-            this.appendFieldsIn(clazz);

-        }

-        return super.toString();

-    }

-

-    /**

-     * <p>

-     * Unregisters this builder's source object to avoid infinite loops when

-     * processing circular object references.

-     * </p>

-     */

-    void unregisterObject() {

-        unregister(this.getObject());

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/formatter.xml
deleted file mode 100644
index bbb7cd1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test432/formatter.xml
+++ /dev/null
@@ -1,159 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="1">
-<profile name="AIS">
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operators" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_if_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_member_alignment" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_while_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_declaration_brace_position" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.anonymous_type_declaration_brace_position" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="0"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_open_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.qualified_allocation_expression_arguments_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_superclass_alignment" value="64"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_to_insert_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_anonymous_type_open_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.block_brace_position" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_for_paren" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_superinterfaces_alignment" value="64"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.preserve_user_linebreaks" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_while_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_catch_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_synchronized_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_brace_position" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.message_send_arguments_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_throws_clause_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.explicit_constructor_arguments_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_first_argument" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_messagesend_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.allocation_expression_arguments_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_declaration_arguments_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.binary_expression_alignment" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="120"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_for_parens" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="insert"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operators" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.switch_brace_position" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_switch_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.multiple_fields_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="comment_format_header" value="false"/>
-<setting id="comment_format_comments" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="comment_clear_blank_lines" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.array_initializer_expressions_alignment" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_block_open_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_messagesend_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_block_statements" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_if_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_message_send" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_block_close_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_switch_open_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_catch_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_message_send" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_message_send" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.array_initializer_continuation_indentation" value="2"/>
-<setting id="comment_format_source_code" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_switch_condition" value="do not insert"/>
-<setting id="comment_separate_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_open_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.message_send_selector_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_if_alignment" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.array_initializer_brace_position" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.filling_space" value=" "/>
-<setting id="comment_indent_parameter_description" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_synchronized_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma__in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_throws" value="insert"/>
-<setting id="comment_new_line_for_parameter" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_declaration_open_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_first_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_type_open_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.conditional_expression_alignment" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.inset_space_between_empty_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma__in_superinterfaces" value="do not insert"/>
-</profile>
-</profiles>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test433/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test433/A_in.js
deleted file mode 100644
index 6b5447f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test433/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*

- * 

- * 

- * 

- */

-package p;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test433/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test433/A_out.js
deleted file mode 100644
index 6b5447f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test433/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*

- * 

- * 

- * 

- */

-package p;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test434/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test434/A_in.js
deleted file mode 100644
index 85c5ad4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test434/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		obj.method( a, b, c, d, e, f );

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test434/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test434/A_out.js
deleted file mode 100644
index 767c2ca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test434/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class A {

-   void foo() {

-      obj.method( a,

-                  b,

-                  c,

-                  d,

-                  e,

-                  f );

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test435/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test435/A_in.js
deleted file mode 100644
index f3e8121..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test435/A_in.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public class A {

-  public void temp()

-  {

-    boolean minWidthOn = true;

-    if (minWidthOn)

-     {

-      // If a user - calls this method, turn off auto resize

-      this.setAutoResizeMode(AUTO_RESIZE_OFF);

-      // int columnCount = getColumnCount();

-      int columnCount = this.getColumnModel().getColumnCount();

-      for (int i = 0; i < columnCount; i++)

-       {

-        // Get the column

-        TableColumn col = this.getColumn(this.getColumnName(i));

-        int tempSize = widestCellColumn(col);

-        // Set the minimum width for a specific column

-        col.setMinWidth(tempSize);

-      }

-    }

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test435/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test435/A_out.js
deleted file mode 100644
index 0cf3567..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test435/A_out.js
+++ /dev/null
@@ -1,23 +0,0 @@
-public class A

-{

-

-    public void temp()

-    {

-        boolean minWidthOn = true;

-        if (minWidthOn)

-        {

-            // If a user - calls this method, turn off auto resize

-            this.setAutoResizeMode(AUTO_RESIZE_OFF);

-            // int columnCount = getColumnCount();

-            int columnCount = this.getColumnModel().getColumnCount();

-            for (int i = 0; i < columnCount; i++)

-            {

-                // Get the column

-                TableColumn col = this.getColumn(this.getColumnName(i));

-                int tempSize = widestCellColumn(col);

-                // Set the minimum width for a specific column

-                col.setMinWidth(tempSize);

-            }

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test436/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test436/A_in.js
deleted file mode 100644
index e5a2f23..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test436/A_in.js
+++ /dev/null
@@ -1,33 +0,0 @@
-public class A {

-  public Object getColumnDataCell(int col)

-  {

-    Object obj = "";

-    switch (col)

-    {

-      case 0 :

-        obj = getId();

-        break;

-       case 1 :

-         obj = getDistrict();

-         break;

-        case 2 :

-          obj = getPack();

-          break;

-         case 3 :

-           obj = getDen();

-           break;

-          case 4 :

-            obj = getLastName();

-            break;

-           case 5 :

-             obj = getFirstName();

-             break;

-            case 6 :

-              obj = getVehicleNumber();

-              break;

-             default :

-               break;

-    }

-    return obj;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test436/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test436/A_out.js
deleted file mode 100644
index e0616fb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test436/A_out.js
+++ /dev/null
@@ -1,34 +0,0 @@
-public class A

-{

-

-    public Object getColumnDataCell(int col)

-    {

-        Object obj = "";

-        switch (col) {

-        case 0:

-            obj = getId();

-            break;

-        case 1:

-            obj = getDistrict();

-            break;

-        case 2:

-            obj = getPack();

-            break;

-        case 3:

-            obj = getDen();

-            break;

-        case 4:

-            obj = getLastName();

-            break;

-        case 5:

-            obj = getFirstName();

-            break;

-        case 6:

-            obj = getVehicleNumber();

-            break;

-        default:

-            break;

-        }

-        return obj;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/A_in.js
deleted file mode 100644
index 85c5ad4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		obj.method( a, b, c, d, e, f );

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/A_out.js
deleted file mode 100644
index cce4fd0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class A

-{

-   void foo()

-   {

-      obj.method( a,

-                  b,

-                  c,

-                  d,

-                  e,

-                  f );

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/formatter.xml
deleted file mode 100644
index 2094a1f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test437/formatter.xml
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="1">
-<profile name="Felix">
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operators" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_if_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_member_alignment" value="256"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_while_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.qualified_allocation_expression_arguments_alignment" value="82"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_superclass_alignment" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_to_insert_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_anonymous_type_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_for_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_superinterfaces_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="3"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.preserve_user_linebreaks" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_while_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_catch_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_synchronized_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="83"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_throws_clause_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.explicit_constructor_arguments_alignment" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_first_argument" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.allocation_expression_arguments_alignment" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_declaration_arguments_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.binary_expression_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="120"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_for_parens" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="insert"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operators" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_switch_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.multiple_fields_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="comment_format_header" value="true"/>
-<setting id="comment_format_comments" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="comment_clear_blank_lines" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.array_initializer_expressions_alignment" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_block_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_block_statements" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_if_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_block_close_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_switch_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_catch_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_reference" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.array_initializer_continuation_indentation" value="2"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_switch_condition" value="insert"/>
-<setting id="comment_separate_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_invocation_selector_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_if_alignment" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.filling_space" value=" "/>
-<setting id="comment_indent_parameter_description" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_synchronized_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma__in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_throws" value="insert"/>
-<setting id="comment_new_line_for_parameter" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_constructor_declaration_open_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_declaration_open_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_first_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_type_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.conditional_expression_alignment" value="32"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.inset_space_between_method_declaration_empty_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.remove_unnecessary_semicolon" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma__in_superinterfaces" value="do not insert"/>
-</profile>
-</profiles>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/A_in.js
deleted file mode 100644
index 54aeae0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		obj.method1( a, b, c, d, e, f );

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/A_out.js
deleted file mode 100644
index 5fb5cb5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class A

-{

-   void foo()

-   {

-      obj.method1( a,

-                   b,

-                   c,

-                   d,

-                   e,

-                   f );

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/formatter.xml
deleted file mode 100644
index 2094a1f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test438/formatter.xml
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="1">
-<profile name="Felix">
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operators" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_if_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_member_alignment" value="256"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_while_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.qualified_allocation_expression_arguments_alignment" value="82"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_superclass_alignment" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_to_insert_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_anonymous_type_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_for_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_superinterfaces_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="3"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.preserve_user_linebreaks" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_while_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_catch_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_synchronized_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="83"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_throws_clause_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.explicit_constructor_arguments_alignment" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_first_argument" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.allocation_expression_arguments_alignment" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_declaration_arguments_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.binary_expression_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="120"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_for_parens" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="insert"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operators" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_switch_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.multiple_fields_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="comment_format_header" value="true"/>
-<setting id="comment_format_comments" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="comment_clear_blank_lines" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.array_initializer_expressions_alignment" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_block_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_block_statements" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_if_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_block_close_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_switch_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_catch_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_reference" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.array_initializer_continuation_indentation" value="2"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_switch_condition" value="insert"/>
-<setting id="comment_separate_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_invocation_selector_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_if_alignment" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.filling_space" value=" "/>
-<setting id="comment_indent_parameter_description" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_synchronized_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma__in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_throws" value="insert"/>
-<setting id="comment_new_line_for_parameter" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_constructor_declaration_open_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_declaration_open_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_first_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_type_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.conditional_expression_alignment" value="32"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.inset_space_between_method_declaration_empty_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.remove_unnecessary_semicolon" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma__in_superinterfaces" value="do not insert"/>
-</profile>
-</profiles>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/A_in.js
deleted file mode 100644
index 94c1722..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-public class A {

-	void foo() {

-int[] x = new int[]{ 0,

-            1,

-            2,

-            3,

-            4,

-            5,

-            6,

-            7,

-            8,

-            9,

-            10,

-            11 };	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/A_out.js
deleted file mode 100644
index 92a9653..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/A_out.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public class A

-{

-   void foo()

-   {

-      int[] x = new int[]

-      {

-         0,

-         1,

-         2,

-         3,

-         4,

-         5,

-         6,

-         7,

-         8,

-         9,

-         10,

-         11

-      };

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/formatter.xml
deleted file mode 100644
index 4eb893e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test439/formatter.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="1">
-<profile name="Felix">
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operators" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_if_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_member_alignment" value="256"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_while_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.qualified_allocation_expression_arguments_alignment" value="82"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_superclass_alignment" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_to_insert_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_anonymous_type_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_for_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.type_declaration_superinterfaces_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="3"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.preserve_user_linebreaks" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_while_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_catch_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_synchronized_condition" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="83"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_throws_clause_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.explicit_constructor_arguments_alignment" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_first_argument" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_messagesend_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.allocation_expression_arguments_alignment" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.method_declaration_arguments_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.binary_expression_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="120"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_for_parens" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_open_paren_in_parenthesized_expression" value="insert"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operators" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_switch_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.multiple_fields_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="comment_format_header" value="true"/>
-<setting id="comment_format_comments" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="comment_clear_blank_lines" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="53"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_block_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_messagesend_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_block_statements" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_if_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_message_send" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_block_close_brace" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_switch_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_catch_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_within_message_send" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_reference" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.array_initializer_continuation_indentation" value="2"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_in_switch_condition" value="insert"/>
-<setting id="comment_separate_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_open_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.message_send_selector_alignment" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_if_alignment" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.filling_space" value=" "/>
-<setting id="comment_indent_parameter_description" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_synchronized_condition" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma__in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_throws" value="insert"/>
-<setting id="comment_new_line_for_parameter" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_constructor_declaration_open_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_method_declaration_open_paren" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_first_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_type_open_brace" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.conditional_expression_alignment" value="32"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.inset_space_between_empty_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.remove_unnecessary_semicolon" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma__in_superinterfaces" value="do not insert"/>
-</profile>
-</profiles>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test440/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test440/A_in.js
deleted file mode 100644
index ef57855..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test440/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		while(true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test440/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test440/A_out.js
deleted file mode 100644
index 019f6f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test440/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test441/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test441/A_in.js
deleted file mode 100644
index 40a2b56..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test441/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		for (;;);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test441/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test441/A_out.js
deleted file mode 100644
index 40a2b56..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test441/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		for (;;);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test442/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test442/A_in.js
deleted file mode 100644
index 7e8c26a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test442/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo() {

-		do;

-		while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test442/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test442/A_out.js
deleted file mode 100644
index cb6e2b3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test442/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		do; while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test443/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test443/A_in.js
deleted file mode 100644
index 7e8c26a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test443/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo() {

-		do;

-		while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test443/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test443/A_out.js
deleted file mode 100644
index 7e8c26a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test443/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo() {

-		do;

-		while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test444/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test444/A_in.js
deleted file mode 100644
index ef57855..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test444/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		while(true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test444/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test444/A_out.js
deleted file mode 100644
index 019f6f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test444/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test445/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test445/A_in.js
deleted file mode 100644
index 6bee3e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test445/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		while(true);;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test445/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test445/A_out.js
deleted file mode 100644
index 9b89d44..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test445/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void foo() {

-		while (true);;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test446/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test446/A_in.js
deleted file mode 100644
index c1f921b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test446/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-class Foo

-{

-    public static final Foo KABOOM = new Foo();

-

-    private Foo() {

-    }

-

-    public Foo blowup() {

-        return(Foo.KABOOM);

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test446/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test446/A_out.js
deleted file mode 100644
index 66d3f13..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test446/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Foo {

-	public static final Foo KABOOM = new Foo();

-	private Foo() {

-	}

-	public Foo blowup() {

-		return (Foo.KABOOM);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test447/test447.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test447/test447.zip
deleted file mode 100644
index a86adf8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test447/test447.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test448/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test448/A_in.js
deleted file mode 100644
index 0228ab2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test448/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Format {

-

-  public void temp() {

-  	int[] tab = new int[3];

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test448/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test448/A_out.js
deleted file mode 100644
index c994de2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test448/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Format {

-	public void temp() {

-		int[] tab = new int [ 3 ];

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test449/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test449/A_in.js
deleted file mode 100644
index 0228ab2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test449/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Format {

-

-  public void temp() {

-  	int[] tab = new int[3];

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test449/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test449/A_out.js
deleted file mode 100644
index 78740df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test449/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Format {

-	public void temp() {

-		int[] tab = new int[ 3 ];

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test450/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test450/A_in.js
deleted file mode 100644
index e69de29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test450/A_in.js
+++ /dev/null
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test450/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test450/A_out.js
deleted file mode 100644
index e69de29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test450/A_out.js
+++ /dev/null
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test451/test451.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test451/test451.zip
deleted file mode 100644
index 0a40dba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test451/test451.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test452/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test452/A_in.js
deleted file mode 100644
index 8b9e6db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test452/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**

- * 

- * 

- */

-package p;

-public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test452/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test452/A_out.js
deleted file mode 100644
index 20e39eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test452/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * 

- * 

- */

-

-

-package p;

-

-

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test453/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test453/A_in.js
deleted file mode 100644
index 654b1b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test453/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	int[] tab = new int[4];

-	

-	public void foo(int[] t) {

-		System.out.println(t[1]);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test453/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test453/A_out.js
deleted file mode 100644
index 7678e8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test453/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-

-    int[] tab = new int[4];

-

-    public void foo(int[] t) {

-        System.out.println(t[1]);

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test454/test454.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test454/test454.zip
deleted file mode 100644
index 73ca640..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test454/test454.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test455/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test455/A_in.js
deleted file mode 100644
index dcdfa5a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test455/A_in.js
+++ /dev/null
@@ -1,49 +0,0 @@
-public class A {

-	public void launch(

-		ILaunchConfiguration configuration,

-		String mode,

-		ILaunch launch,

-		IProgressMonitor monitor)

-		throws CoreException {

-		try {

-			IJavaProject javaProject = getJavaProject(configuration);

-			if ((javaProject == null) || !javaProject.exists()) {

-				abort(PDEPlugin.getResourceString("JUnitLaunchConfiguration.error.invalidproject"), null, IJavaLaunchConfigurationConstants.ERR_NOT_A_JAVA_PROJECT); //$NON-NLS-1$

-			}

-			IType[] testTypes = getTestTypes(configuration, javaProject, new SubProgressMonitor(monitor, 1));

-			if (testTypes.length == 0) {

-				abort(PDEPlugin.getResourceString("JUnitLaunchConfiguration.error.notests"), null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE); //$NON-NLS-1$

-			}

-			monitor.worked(1);

-			

-			IVMInstall launcher = LauncherUtils.createLauncher(configuration);

-			monitor.worked(1);

-

-			int port = SocketUtil.findFreePort();

-			VMRunnerConfiguration runnerConfig =

-				createVMRunner(configuration, testTypes, port, mode);

-			if (runnerConfig == null) {

-				monitor.setCanceled(true);

-				return;

-			} 

-			monitor.worked(1);

-			

-			launch.setAttribute(

-				ILauncherSettings.CONFIG_LOCATION,

-				(configFile == null) ? null : configFile.getParent());

-			

-			String workspace = configuration.getAttribute(LOCATION + "0", getDefaultWorkspace(configuration));

-			LauncherUtils.clearWorkspace(configuration,workspace);

-

-			setDefaultSourceLocator(launch, configuration);

-			launch.setAttribute(PORT_ATTR, Integer.toString(port));

-			launch.setAttribute(TESTTYPE_ATTR, testTypes[0].getHandleIdentifier());

-			PDEPlugin.getDefault().getLaunchesListener().manage(launch);

-			launcher.getVMRunner(mode).run(runnerConfig, launch, monitor);

-			monitor.worked(1);

-		} catch (CoreException e) {

-			monitor.setCanceled(true);

-			throw e;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test455/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test455/A_out.js
deleted file mode 100644
index 00da379..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test455/A_out.js
+++ /dev/null
@@ -1,51 +0,0 @@
-public class A {

-	public void launch(ILaunchConfiguration configuration, String mode,

-			ILaunch launch, IProgressMonitor monitor) throws CoreException {

-		try {

-			IJavaProject javaProject = getJavaProject(configuration);

-			if ((javaProject == null) || !javaProject.exists()) {

-				abort(

-						PDEPlugin

-								.getResourceString("JUnitLaunchConfiguration.error.invalidproject"), null, IJavaLaunchConfigurationConstants.ERR_NOT_A_JAVA_PROJECT); //$NON-NLS-1$

-			}

-			IType[] testTypes = getTestTypes(configuration, javaProject,

-					new SubProgressMonitor(monitor, 1));

-			if (testTypes.length == 0) {

-				abort(

-						PDEPlugin

-								.getResourceString("JUnitLaunchConfiguration.error.notests"), null, IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE); //$NON-NLS-1$

-			}

-			monitor.worked(1);

-

-			IVMInstall launcher = LauncherUtils.createLauncher(configuration);

-			monitor.worked(1);

-

-			int port = SocketUtil.findFreePort();

-			VMRunnerConfiguration runnerConfig = createVMRunner(configuration,

-					testTypes, port, mode);

-			if (runnerConfig == null) {

-				monitor.setCanceled(true);

-				return;

-			}

-			monitor.worked(1);

-

-			launch.setAttribute(ILauncherSettings.CONFIG_LOCATION,

-					(configFile == null) ? null : configFile.getParent());

-

-			String workspace = configuration.getAttribute(LOCATION + "0",

-					getDefaultWorkspace(configuration));

-			LauncherUtils.clearWorkspace(configuration, workspace);

-

-			setDefaultSourceLocator(launch, configuration);

-			launch.setAttribute(PORT_ATTR, Integer.toString(port));

-			launch.setAttribute(TESTTYPE_ATTR, testTypes[0]

-					.getHandleIdentifier());

-			PDEPlugin.getDefault().getLaunchesListener().manage(launch);

-			launcher.getVMRunner(mode).run(runnerConfig, launch, monitor);

-			monitor.worked(1);

-		} catch (CoreException e) {

-			monitor.setCanceled(true);

-			throw e;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test456/test456.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test456/test456.zip
deleted file mode 100644
index 3354b63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test456/test456.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test457/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test457/A_in.js
deleted file mode 100644
index 9367fff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test457/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	public void foo() {

-		final String happy = "string is a happy place" + "string is a happy place" + "string is a happy place"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test457/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test457/A_out.js
deleted file mode 100644
index 9367fff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test457/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	public void foo() {

-		final String happy = "string is a happy place" + "string is a happy place" + "string is a happy place"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test458/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test458/A_in.js
deleted file mode 100644
index d795420..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test458/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class A {public void foo() {}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test458/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test458/A_out.js
deleted file mode 100644
index 5440276..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test458/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	public void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test459/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test459/A_in.js
deleted file mode 100644
index e876504..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test459/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-m_logger.info(

-        this,

-        "Subscription to ["

-          + subDetails.getGpi()

-          + "] ["

-          + subDetails.getCombinationType()

-          + "] sent to "

-          + m_exchange

-          + " OBS (subType="

-          + subDetails.getSubscriptionType()

-          + " subSubType="

-          + subDetails.getSubscriptionSubType()

-          + " subId="

-          + subDetails.getSubscriptionId()

-          + ")");
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test459/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test459/A_out.js
deleted file mode 100644
index 2cb32d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test459/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-m_logger.info(

-	this,

-	"Subscription to ["

-		+ subDetails.getGpi()

-		+ "] ["

-		+ subDetails.getCombinationType()

-		+ "] sent to "

-		+ m_exchange

-		+ " OBS (subType="

-		+ subDetails.getSubscriptionType()

-		+ " subSubType="

-		+ subDetails.getSubscriptionSubType()

-		+ " subId="

-		+ subDetails.getSubscriptionId()

-		+ ")");
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test460/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test460/A_in.js
deleted file mode 100644
index 121affc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test460/A_in.js
+++ /dev/null
@@ -1,31 +0,0 @@
-class Example

-		extends

-			AnotherClass {

-	int foo()

-	{

-		int sum = 100

-				+ 200

-					+ 300

-					+ 400

-					+ 500

-					+ 600

-					+ 700

-					+ 800;

-		int product = 1

-				* 2

-					* 3

-					* 4

-					* 5

-					* 6

-					* 7

-					* 8

-					* 9

-					* 10;

-		boolean val = true

-				&& false

-					&& true

-					&& false

-					&& true;

-		return product / sum;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test460/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test460/A_out.js
deleted file mode 100644
index 71c73ac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test460/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Example extends AnotherClass {

-	int foo() {

-		int sum = 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800;

-		int product = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10;

-		boolean val = true && false && true && false && true;

-		return product / sum;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test461/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test461/A_in.js
deleted file mode 100644
index 8746d36..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test461/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class XXX {

-	public void foo() {

-		int x = 0, y = 0;

-		if (true)

-			x = 1;//XXX

-		else 

-			y = 10;//YYY

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test461/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test461/A_out.js
deleted file mode 100644
index a806324..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test461/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class XXX {

-	public void foo() {

-		int x = 0, y = 0;

-		if (true)

-			x = 1;//XXX

-		else

-			y = 10;//YYY

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/A_in.js
deleted file mode 100644
index ec96813..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
- m_logger.info(

-        this,

-        "Subscription to ["

-          + subDetails.getGpi()

-          + "] ["

-          + subDetails.getCombinationType()

-          + "] sent to "

-          + m_exchange

-          + " OBS (subType="

-          + subDetails.getSubscriptionType()

-          + " subSubType="

-          + subDetails.getSubscriptionSubType()

-          + " subId="

-          + subDetails.getSubscriptionId()

-          + ")");
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/A_out.js
deleted file mode 100644
index 6dc1906..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-m_logger.info(

-  this,

-  "Subscription to ["

-    + subDetails.getGpi()

-    + "] ["

-    + subDetails.getCombinationType()

-    + "] sent to "

-    + m_exchange

-    + " OBS (subType="

-    + subDetails.getSubscriptionType()

-    + " subSubType="

-    + subDetails.getSubscriptionSubType()

-    + " subId="

-    + subDetails.getSubscriptionId()

-    + ")");
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/formatter.xml
deleted file mode 100644
index d949ae5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test462/formatter.xml
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="4">
-<profile name="neils" version="4">
-<setting id="comment_clear_blank_lines" value="true"/>
-<setting id="comment_format_comments" value="true"/>
-<setting id="comment_format_header" value="true"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="comment_indent_parameter_description" value="true"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="comment_new_line_for_parameter" value="true"/>
-<setting id="comment_separate_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.filling_space" value=" "/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_block_statements" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.preserve_user_linebreaks" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.remove_unnecessary_semicolon" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="2"/>
-</profile>
-</profiles>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test463/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test463/A_in.js
deleted file mode 100644
index 8d5bf85..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test463/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-protected String createWhereClause() {

-	whereClause.append(getColumnSQL(FNS_NUMBER)).append(getColumnSQLWidthLikeOrEquals(MEAL_SERVICE_NAME))

-	.append(getColumnSQL(MEAL_SERVICE_STATUS)).append(getColumnSQL(MEAL_SERVICE_TYPE)).append(

-	getColumnSQLWithBetween(APPLICATION_REQUEST_BEGIN_DATE)).append(getColumnSQL(MAILING_ADDRESS_ID))

-	.append(getColumnSQL(MEAL_SITE_ENTITY_ID)).append(getColumnSQLWithInClause(FIELD_OFFICES))

-	.append(getColumnSQL(EIN)).append(getColumnSQL(PERSON_ROLE_PERSON_ID)).append(

-	getColumnSQL(PERSON_ROLE_ID)).append(getColumnSQL(REGION_ID));

-	

-	return whereClause.toString();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test463/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test463/A_out.js
deleted file mode 100644
index 71e35c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test463/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-protected String createWhereClause() {

-	whereClause

-			.append(getColumnSQL(FNS_NUMBER))

-			.append(getColumnSQLWidthLikeOrEquals(MEAL_SERVICE_NAME))

-			.append(getColumnSQL(MEAL_SERVICE_STATUS))

-			.append(getColumnSQL(MEAL_SERVICE_TYPE))

-			.append(getColumnSQLWithBetween(APPLICATION_REQUEST_BEGIN_DATE))

-			.append(getColumnSQL(MAILING_ADDRESS_ID))

-			.append(getColumnSQL(MEAL_SITE_ENTITY_ID))

-			.append(getColumnSQLWithInClause(FIELD_OFFICES))

-			.append(getColumnSQL(EIN))

-			.append(getColumnSQL(PERSON_ROLE_PERSON_ID))

-			.append(getColumnSQL(PERSON_ROLE_ID))

-			.append(getColumnSQL(REGION_ID));

-	return whereClause.toString();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test464/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test464/A_in.js
deleted file mode 100644
index 6643f05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test464/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-void bar(List v) {

-	for(int i = 0; i < 10; i++ ) {

-		v.add(new Integer(i));

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test464/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test464/A_out.js
deleted file mode 100644
index 87af4f0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test464/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-void bar( List v )

-{

-	for ( int i = 0; i < 10; i++ )

-		{

-		v.add( new Integer( i ) );

-		}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test465/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test465/A_in.js
deleted file mode 100644
index ebbcead..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test465/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-scope.problemReporter().typeMismatchErrorActualTypeExpectedType(

-		enclosingInstance,

-		enclosingInstanceType,

-		inheritedBinding.declaringClass.enclosingType());
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test465/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test465/A_out.js
deleted file mode 100644
index 6c77810..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test465/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-scope.problemReporter().typeMismatchErrorActualTypeExpectedType(

-	enclosingInstance,

-	enclosingInstanceType,

-	inheritedBinding.declaringClass.enclosingType());
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test466/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test466/A_in.js
deleted file mode 100644
index 80fbff1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test466/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-scope.problemReporter(

-        enclosingInstance,

-        enclosingInstanceType,

-        inheritedBinding.declaringClass.enclosingType())

-        .typeMismatchErrorActualTypeExpectedType();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test466/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test466/A_out.js
deleted file mode 100644
index dd52775..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test466/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-scope

-	.problemReporter(

-		enclosingInstance,

-		enclosingInstanceType,

-		inheritedBinding.declaringClass.enclosingType())

-	.typeMismatchErrorActualTypeExpectedType();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test467/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test467/A_in.js
deleted file mode 100644
index d188be1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test467/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-protected static Logger log = Logger.getLogger(InsightManagerInitializer222.class);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test467/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test467/A_out.js
deleted file mode 100644
index 7c02b74..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test467/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-protected static Logger log = Logger

-	.getLogger(InsightManagerInitializer222.class);
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test468/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test468/A_in.js
deleted file mode 100644
index 7ff22eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test468/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-class Foo {

-	class Bar 	{

-	}

-

-	void foo() {

-		Bar obj = new Bar() {

-			public void bar() {

-				// Here is the problem.

-				return;

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test468/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test468/A_out.js
deleted file mode 100644
index c8f03a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test468/A_out.js
+++ /dev/null
@@ -1,18 +0,0 @@
-class Foo

-{

-	class Bar

-	{

-	}

-

-	void foo()

-	{

-		Bar obj = new Bar()

-		{

-			public void bar()

-			{

-				// Here is the problem.

-				return;

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test469/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test469/A_in.js
deleted file mode 100644
index cff4253..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test469/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Foo {

-	void foo() {

-		int[] array1 = new int[] {};

-		int[] array2 = new int[3];

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test469/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test469/A_out.js
deleted file mode 100644
index 584a23d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test469/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class Foo {

-	void foo() {

-		int[] array1 = new int[] {};

-		int[] array2 = new int[ 3 ];

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test470/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test470/A_in.js
deleted file mode 100644
index 0724dd2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test470/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Test {

-

-    void test(String s) {

-        if (s == null) s = ""; //$NON-NLS-1$

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test470/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test470/A_out.js
deleted file mode 100644
index 0724dd2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test470/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Test {

-

-    void test(String s) {

-        if (s == null) s = ""; //$NON-NLS-1$

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test471/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test471/A_in.js
deleted file mode 100644
index 33510fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test471/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-    public static void main(String [ ] args) {

-        int[] table = new int [] {1,2,3};

-        int[] empty = new int [] {};

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test471/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test471/A_out.js
deleted file mode 100644
index b670f52..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test471/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-	public static void main(String[] args) {

-		int[] table = new int[] {1, 2, 3 };

-		int[] empty = new int[] {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test472/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test472/A_in.js
deleted file mode 100644
index 33510fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test472/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-    public static void main(String [ ] args) {

-        int[] table = new int [] {1,2,3};

-        int[] empty = new int [] {};

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test472/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test472/A_out.js
deleted file mode 100644
index 4394ac3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test472/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-	public static void main(String[] args) {

-		int[] table = new int[] { 1, 2, 3 };

-		int[] empty = new int[] {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test473/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test473/A_in.js
deleted file mode 100644
index 33510fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test473/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-    public static void main(String [ ] args) {

-        int[] table = new int [] {1,2,3};

-        int[] empty = new int [] {};

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test473/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test473/A_out.js
deleted file mode 100644
index 000d679..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test473/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-	public static void main(String[] args) {

-		int[] table = new int[] {1, 2, 3};

-		int[] empty = new int[] {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test474/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test474/A_in.js
deleted file mode 100644
index 33510fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test474/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-    public static void main(String [ ] args) {

-        int[] table = new int [] {1,2,3};

-        int[] empty = new int [] {};

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test474/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test474/A_out.js
deleted file mode 100644
index ad53178..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test474/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-	public static void main(String[] args) {

-		int[] table = new int[] { 1, 2, 3};

-		int[] empty = new int[] {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test475/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test475/A_in.js
deleted file mode 100644
index 33510fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test475/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Bug49361 {

-    public static void main(String [ ] args) {

-        int[] table = new int [] {1,2,3};

-        int[] empty = new int [] {};

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test475/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test475/A_out.js
deleted file mode 100644
index 20bc662..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test475/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class Bug49361 {

-	public static void main(String[] args) {

-		int[] table = new int[] {1, 2, 3

-		};

-		int[] empty = new int[] {};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test476/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test476/A_in.js
deleted file mode 100644
index 6ee1004..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test476/A_in.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import java.awt.*;

-

-public class FormatTest

-	{

-

-	/************************************

-	* method_one

-	* 

-	* 		nothing special.

-	************************************/

-

-	public void method_one()

-		{

-		int i = 1;

-

-		int j = 2;

-

-		for ( i = 12; i < 100; i++ )

-			{

-			if ( i % 2 == 0 )

-				System.out.println( "xx" );

-			else

-				System.out.println( "yy" );

-

-			j = 0;

-			}

-		

-		} // method_one

-

-	} // class FormatTest
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test476/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test476/A_out.js
deleted file mode 100644
index 1a95f1f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test476/A_out.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import java.awt.*;

-

-public class FormatTest

-	{

-

-	/************************************

-	 * method_one

-	 * 

-	 * 		nothing special.

-	 ************************************/

-

-	public void method_one()

-		{

-		int i = 1;

-

-		int j = 2;

-

-		for ( i = 12; i < 100; i++ )

-			{

-			if ( i % 2 == 0 )

-				System.out.println( "xx" );

-			else

-				System.out.println( "yy" );

-

-			j = 0;

-			}

-

-		} // method_one

-

-	} // class FormatTest
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test478/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test478/A_in.js
deleted file mode 100644
index 3a099a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test478/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	private void foo() {

-		assert true : "Hello;";int i  =    9;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test478/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test478/A_out.js
deleted file mode 100644
index 7490822..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test478/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	private void foo() {

-		assert true : "Hello;";

-		int i = 9;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test479/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test479/A_in.js
deleted file mode 100644
index 0e5ef47..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test479/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import com.ibm.rational.test.ct.A;

-public class Foo extends A {

-public Foo() {

-super();

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test479/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test479/A_out.js
deleted file mode 100644
index af9c504..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test479/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import com.ibm.rational.test.ct.A;

-public class Foo extends A {

-	public Foo() {

-		super();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test480/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test480/A_in.js
deleted file mode 100644
index ca90186..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test480/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package stdjavatest;

-

-import junit.framework.*;

-import mypackage.MyClass;

-

-public class TestingMyClass extends TestCase {

-public void test_method() {

-MyClass objA = null;

-objA = new MyClass();

-objA.method();

-}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test480/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test480/A_out.js
deleted file mode 100644
index a5633f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test480/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package stdjavatest;

-import junit.framework.*;

-import mypackage.MyClass;

-public class TestingMyClass extends TestCase {

-	public void test_method() {

-		MyClass objA = null;

-		objA = new MyClass();

-		objA.method();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test481/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test481/A_in.js
deleted file mode 100644
index 878e334..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test481/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Foo {

-	void m1() {

-		int x;

-		do

-			x = 1; while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test481/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test481/A_out.js
deleted file mode 100644
index b810058..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test481/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Foo {

-	void m1() {

-		int x;

-		do

-			x = 1;

-		while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test482/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test482/A_in.js
deleted file mode 100644
index 6f4af97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test482/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Foo {

-	void m1() {

-		int x;

-		do {

-			x = 1;

-		} while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test482/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test482/A_out.js
deleted file mode 100644
index 325b6c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test482/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Foo {

-	void m1() {

-		int x;

-		do {

-			x = 1;

-		}while (true);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test483/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test483/A_in.js
deleted file mode 100644
index fc6a736..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test483/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class Foo {

-	void m1(boolean b) {

-		if (b) {

-			System.out.println();

-		} else {

-			System.out.println();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test483/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test483/A_out.js
deleted file mode 100644
index e1d045d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test483/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class Foo {

-	void m1(boolean b) {

-		if (b) {

-			System.out.println();

-		}else {

-			System.out.println();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test484/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test484/A_in.js
deleted file mode 100644
index e364555..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test484/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {public void launch(){try {if ((javaProject == null) || !javaProject.exists()) {abort(PDEPlugin.getResourceString("JUnitLaunchConfiguration.error.invalidproject"), null, IJavaLaunchConfigurationConstants.ERR_NOT_A_JAVA_PROJECT); //$NON-NLS-1$

-			}

-		} catch (CoreException e) {}}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test484/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test484/A_out.js
deleted file mode 100644
index 3cf52e1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test484/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class A {

-	public void launch() {

-		try {

-			if ((javaProject == null) || !javaProject.exists()) {

-				abort(

-						PDEPlugin

-								.getResourceString("JUnitLaunchConfiguration.error.invalidproject"), null, IJavaLaunchConfigurationConstants.ERR_NOT_A_JAVA_PROJECT); //$NON-NLS-1$

-			}

-		} catch (CoreException e) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test485/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test485/A_in.js
deleted file mode 100644
index fbd7af8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test485/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {	public void launch(){		try {			if ((javaProject == null) || !javaProject.exists()) {				abort(PDEPlugin.getResourceString("JUnitLaunchConfiguration.error.invalidproject"), null, IJavaLaunchConfigurationConstants.ERR_NOT_A_JAVA_PROJECT);

-			}

-		} catch (CoreException e) {		}	}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test485/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test485/A_out.js
deleted file mode 100644
index 5ff856d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test485/A_out.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class A {

-	public void launch() {

-		try {

-			if ((javaProject == null) || !javaProject.exists()) {

-				abort(

-						PDEPlugin

-								.getResourceString("JUnitLaunchConfiguration.error.invalidproject"),

-						null,

-						IJavaLaunchConfigurationConstants.ERR_NOT_A_JAVA_PROJECT);

-			}

-		} catch (CoreException e) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test486/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test486/A_in.js
deleted file mode 100644
index b6a02df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test486/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	public void launch() {

-		if ("/b".equals(html)) { //$NON-NLS-1$

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test486/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test486/A_out.js
deleted file mode 100644
index 93ef433..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test486/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A

-{

-	public void launch()

-	{

-		if ("/b".equals(html)) { //$NON-NLS-1$

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test487/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test487/A_in.js
deleted file mode 100644
index cf1df2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test487/A_in.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public class A {

-	public void launch() {

-		switch (key) {

-			case VALUE0 :

-				doCase0();

-				break;

-			case VALUE1 :

-				{

-					doCase1();

-					break;

-				}

-			case VALUE2 :

-				doCase2();

-				break;

-			default :

-				{

-					doDefault();

-				}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test487/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test487/A_out.js
deleted file mode 100644
index 980ab49..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test487/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-public class A {

-	public void launch() {

-		switch (key) {

-			case VALUE0 :

-				doCase0();

-				break;

-			case VALUE1 : {

-				doCase1();

-				break;

-			}

-			case VALUE2 :

-				doCase2();

-				break;

-			default : {

-				doDefault();

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test488/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test488/A_in.js
deleted file mode 100644
index cf1df2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test488/A_in.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public class A {

-	public void launch() {

-		switch (key) {

-			case VALUE0 :

-				doCase0();

-				break;

-			case VALUE1 :

-				{

-					doCase1();

-					break;

-				}

-			case VALUE2 :

-				doCase2();

-				break;

-			default :

-				{

-					doDefault();

-				}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test488/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test488/A_out.js
deleted file mode 100644
index def4eef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test488/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-public class A {

-	public void launch() {

-		switch (key) {

-			case VALUE0 :

-				doCase0();

-				break;

-			case VALUE1 :{

-				doCase1();

-				break;

-			}

-			case VALUE2 :

-				doCase2();

-				break;

-			default :{

-				doDefault();

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test489/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test489/A_in.js
deleted file mode 100644
index 0f81e8c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test489/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-	int[] x =

-	{1, //a

-			2, //b

-			3, //c

-			4,//d

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test489/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test489/A_out.js
deleted file mode 100644
index b2a5ffb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test489/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-	int[] x = {

-			1, //a

-			2, //b

-			3, //c

-			4,//d

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test490/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test490/A_in.js
deleted file mode 100644
index 33f71a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test490/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	Object result = (foo == null)? new Object[]{} : foo.toArray();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test490/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test490/A_out.js
deleted file mode 100644
index 25c202b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test490/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	Object result = (foo == null) ? new Object[]{} : foo.toArray();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/BundleChain_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/BundleChain_in.js
deleted file mode 100644
index 625da80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/BundleChain_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class BundleChain extends ResourceBundle {

-     BundleChain(ResourceBundle previousChain, ClassLoader loader, Locale locale, String filename) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/BundleChain_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/BundleChain_out.js
deleted file mode 100644
index 2d928a1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/BundleChain_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-class BundleChain extends ResourceBundle {

-    BundleChain(ResourceBundle previousChain, ClassLoader loader, Locale locale, String filename) {

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/formatter.xml
deleted file mode 100644
index 05e1f90..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test491/formatter.xml
+++ /dev/null
@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="5">
-<profile name="DOI" version="5">
-<setting id="comment_clear_blank_lines" value="false"/>
-<setting id="comment_format_comments" value="true"/>
-<setting id="comment_format_header" value="true"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="comment_indent_parameter_description" value="false"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="comment_new_line_for_parameter" value="false"/>
-<setting id="comment_separate_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="3"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.remove_unnecessary_semicolon" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
-</profile>
-</profiles>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/Main_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/Main_in.js
deleted file mode 100644
index f67227c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/Main_in.js
+++ /dev/null
@@ -1,1574 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.core.launcher;

-

-import java.io.*;

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.net.*;

-import java.text.DateFormat;

-import java.text.SimpleDateFormat;

-import java.util.*;

-

-/**

- * The framework to run.  This is used if the bootLocation (-boot) is not specified.

- * The value can be specified on the command line as -framework.

- * Startup class for Eclipse. Creates a class loader using

- * supplied URL of platform installation, loads and calls

- * the Eclipse Boot Loader.  The startup arguments are as follows:

- * <dl>

- * <dd>

- *    -application &lt;id&gt;: the identifier of the application to run

- * </dd>

- * <dd>

- *    -arch &lt;architecture&gt;: sets the processor architecture value

- * </dd>

- * <dd>

- *    -boot &lt;location&gt;: the location, expressed as a URL, of the platform's boot.jar.

- * <i>Deprecated: replaced by -configuration</i>

- * </dd>

- * <dd>

- *    -classloaderproperties [properties file]: activates platform class loader enhancements using 

- * the class loader properties file at the given location, if specified. The (optional) file argument 

- * can be either a file path or an absolute URL.

- * </dd>

- * <dd>

- *    -configuration &lt;location&gt;: the location, expressed as a URL, for the Eclipse platform 

- * configuration file. The configuration file determines the location of the Eclipse platform, the set 

- * of available plug-ins, and the primary feature.

- * </dd>

- * <dd>

- *    -consolelog : enables log to the console. Handy when combined with -debug

- * </dd>

- * <dd>

- *    -data &lt;location&gt;: sets the workspace location and the default location for projects

- * </dd>

- * <dd>

- *    -debug [options file]: turns on debug mode for the platform and optionally specifies a location

- * for the .options file. This file indicates what debug points are available for a

- * plug-in and whether or not they are enabled. If a location is not specified, the platform searches

- * for the .options file under the install directory.

- * </dd>

- * <dd>

- *    -dev [entries]: turns on dev mode and optionally specifies comma-separated class path entries

- * which are added to the class path of each plug-in

- * </dd>

- * <dd>

- *    -feature &lt;id&gt;: the identifier of the primary feature. The primary feature gives the launched 

- * instance of Eclipse its product personality, and determines the product customization 

- * information.

- * </dd>

- * <dd>

- *    -keyring &lt;location&gt;: the location of the authorization database on disk. This argument

- * has to be used together with the -password argument.

- * </dd>

- * <dd>

- *    -nl &lt;locale&gt;: sets the name of the locale on which Eclipse platform will run

- * </dd>

- * <dd>

- *    -nolazyregistrycacheloading : deactivates platform plug-in registry cache loading optimization. 

- * By default, extensions' configuration elements will be loaded from the registry cache (when 

- * available) only on demand, reducing memory footprint. This option will force the registry cache 

- * to be fully loaded at startup.

- * </dd>

- *  <dd>

- *    -nopackageprefixes: deactivates classloader package prefixes optimization

- * </dd> 

- *  <dd>

- *    -noregistrycache: bypasses the reading and writing of an internal plug-in registry cache file

- * </dd>

- * <dd>

- *    -os &lt;operating system&gt;: sets the operating system value

- * </dd>

- * <dd>

- *    -password &lt;passwd&gt;: the password for the authorization database

- * </dd>

- * <dd>

- *    -plugins &lt;location&gt;: the arg is a URL pointing to a file which specs the plugin 

- * path for the platform.  The file is in property file format where the keys are user-defined 

- * names and the values are comma separated lists of either explicit paths to plugin.xml 

- * files or directories containing plugins (e.g., .../eclipse/plugins). 

- * <i>Deprecated: replaced by -configuration</i>

- * </dd>

- * <dd>

- *    -plugincustomization &lt;properties file&gt;: the location of a properties file containing default 

- * settings for plug-in preferences. These default settings override default settings specified in the 

- * primary feature. Relative paths are interpreted relative to the directory that eclipse was started 

- * from.

- * </dd> 

- * <dd>

- *    -ws &lt;window system&gt;: sets the window system value

- * </dd>

- * </dl>

- */

-public class Main {

-	/**

-	 * Indicates whether this instance is running in debug mode.

-	 */

-	protected boolean debug = false;

-

-	/**

-	 * The location of the launcher to run.

-	 */

-	protected String bootLocation = null;

-

-	/**

-	 * The location of the install root

-	 */

-	protected String installLocation = null;

-

-	/**

-	 * The location of the configuration information for this instance

-	 */

-	protected String configurationLocation = null;

-

-	/**

-	 * The location of the configuration information in the install root

-	 */

-	protected String parentConfigurationLocation = null;

-

-	/**

-	 * The id of the bundle that will contain the framework to run.  Defaults to org.eclipse.osgi.

-	 */

-	protected String framework = OSGI;

-

-	/**

-	 * The extra development time class path entries.

-	 */

-	protected String devClassPath = null;

-

-	/**

-	 * Indicates whether this instance is running in development mode.

-	 */

-	protected boolean inDevelopmentMode = false;

-

-	private String exitData = null;

-	private String vm = null;

-	private String[] vmargs = null;

-	private String[] commands = null;

-

-	// splash handling

-	private String showSplash = null;

-	private String endSplash = null;

-	private boolean initialize = false;

-	private Process showProcess = null;

-	private boolean splashDown = false;

-	private final Runnable endSplashHandler = new Runnable() {

-		public void run() {

-			takeDownSplash();

-		}

-	};

-

-	// command line args

-	private static final String FRAMEWORK = "-framework"; //$NON-NLS-1$

-	private static final String INSTALL = "-install"; //$NON-NLS-1$

-	private static final String INITIALIZE = "-initialize"; //$NON-NLS-1$

-	private static final String VM = "-vm"; //$NON-NLS-1$

-	private static final String VMARGS = "-vmargs"; //$NON-NLS-1$

-	private static final String DEBUG = "-debug"; //$NON-NLS-1$

-	private static final String DEV = "-dev"; //$NON-NLS-1$

-	private static final String CONFIGURATION = "-configuration"; //$NON-NLS-1$

-	private static final String EXITDATA = "-exitdata"; //$NON-NLS-1$

-	private static final String NOSPLASH = "-nosplash"; //$NON-NLS-1$

-	private static final String SHOWSPLASH = "-showsplash"; //$NON-NLS-1$

-	private static final String ENDSPLASH = "-endsplash"; //$NON-NLS-1$

-	private static final String SPLASH_IMAGE = "splash.bmp"; //$NON-NLS-1$

-

-	private static final String OSGI = "org.eclipse.osgi"; //$NON-NLS-1$

-	private static final String STARTER = "org.eclipse.core.runtime.adaptor.EclipseStarter"; //$NON-NLS-1$

-	private static final String PLATFORM_URL = "platform:/base/"; //$NON-NLS-1$

-

-	// constants: configuration file location

-	private static final String CONFIG_DIR = "configuration/"; //$NON-NLS-1$

-	private static final String CONFIG_FILE = "config.ini"; //$NON-NLS-1$

-	private static final String CONFIG_FILE_TEMP_SUFFIX = ".tmp"; //$NON-NLS-1$

-	private static final String CONFIG_FILE_BAK_SUFFIX = ".bak"; //$NON-NLS-1$

-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$

-	private static final String PRODUCT_SITE_MARKER = ".eclipseproduct"; //$NON-NLS-1$

-	private static final String PRODUCT_SITE_ID = "id"; //$NON-NLS-1$

-	private static final String PRODUCT_SITE_VERSION = "version"; //$NON-NLS-1$

-

-	// constants: System property keys and/or configuration file elements

-	private static final String PROP_USER_HOME = "user.home"; //$NON-NLS-1$

-	private static final String PROP_USER_DIR = "user.dir"; //$NON-NLS-1$

-	private static final String PROP_INSTALL_AREA = "osgi.install.area"; //$NON-NLS-1$

-	private static final String PROP_CONFIG_AREA = "osgi.configuration.area"; //$NON-NLS-1$

-	private static final String PROP_BASE_CONFIG_AREA = "osgi.baseConfiguration.area"; //$NON-NLS-1$

-	private static final String PROP_SHARED_CONFIG_AREA = "osgi.sharedConfiguration.area"; //$NON-NLS-1$

-	private static final String PROP_CONFIG_CASCADED = "osgi.configuration.cascaded"; //$NON-NLS-1$

-	private static final String PROP_FRAMEWORK = "osgi.framework"; //$NON-NLS-1$

-	private static final String PROP_SPLASHPATH = "osgi.splashPath"; //$NON-NLS-1$

-	private static final String PROP_SPLASHLOCATION = "osgi.splashLocation"; //$NON-NLS-1$

-	private static final String PROP_CLASSPATH = "osgi.frameworkClassPath"; //$NON-NLS-1$

-	private static final String PROP_LOGFILE = "osgi.logfile"; //$NON-NLS-1$

-	private static final String PROP_EOF = "eof"; //$NON-NLS-1$

-

-	private static final String PROP_EXITCODE = "eclipse.exitcode"; //$NON-NLS-1$

-	private static final String PROP_EXITDATA = "eclipse.exitdata"; //$NON-NLS-1$

-	private static final String PROP_VM = "eclipse.vm"; //$NON-NLS-1$

-	private static final String PROP_VMARGS = "eclipse.vmargs"; //$NON-NLS-1$

-	private static final String PROP_COMMANDS = "eclipse.commands"; //$NON-NLS-1$

-

-	// Data mode constants for user, configuration and data locations.

-	private static final String NONE = "@none"; //$NON-NLS-1$

-	private static final String NO_DEFAULT = "@noDefault"; //$NON-NLS-1$

-	private static final String USER_HOME = "@user.home"; //$NON-NLS-1$

-	private static final String USER_DIR = "@user.dir"; //$NON-NLS-1$

-

-	// log file handling

-	protected static final String SESSION = "!SESSION"; //$NON-NLS-1$

-	protected static final String ENTRY = "!ENTRY"; //$NON-NLS-1$

-	protected static final String MESSAGE = "!MESSAGE"; //$NON-NLS-1$

-	protected static final String STACK = "!STACK"; //$NON-NLS-1$

-	protected static final int ERROR = 4;

-	protected static final String PLUGIN_ID = "org.eclipse.core.launcher"; //$NON-NLS-1$

-	protected File logFile = null;

-	protected BufferedWriter log = null;

-	protected boolean newSession = true;

-

-	/**

-	 * Executes the launch.

-	 * 

-	 * @return the result of performing the launch

-	 * @param args command-line arguments

-	 * @exception Exception thrown if a problem occurs during the launch

-	 */

-	protected Object basicRun(String[] args) throws Exception {

-		System.getProperties().setProperty("eclipse.debug.startupTime", Long.toString(System.currentTimeMillis())); //$NON-NLS-1$

-		commands = args;

-		String[] passThruArgs = processCommandLine(args);

-		setupVMProperties();

-		processConfiguration();

-		// need to ensure that getInstallLocation is called at least once to initialize the value.

-		// Do this AFTER processing the configuration to allow the configuration to set

-		// the install location.  

-		getInstallLocation();

-

-		// locate boot plugin (may return -dev mode variations)

-		URL[] bootPath = getBootPath(bootLocation);

-

-		// splash handling is done here, because the default case needs to know

-		// the location of the boot plugin we are going to use

-		handleSplash(bootPath);

-

-		// load the BootLoader and startup the platform

-		URLClassLoader loader = new URLClassLoader(bootPath, null);

-		Class clazz = loader.loadClass(STARTER);

-		Method method = clazz.getDeclaredMethod("run", new Class[] {String[].class, Runnable.class}); //$NON-NLS-1$

-		try {

-			return method.invoke(clazz, new Object[] {passThruArgs, endSplashHandler});

-		} catch (InvocationTargetException e) {

-			if (e.getTargetException() instanceof Error)

-				throw (Error) e.getTargetException();

-			else if (e.getTargetException() instanceof Exception)

-				throw (Exception) e.getTargetException();

-			else

-				//could be a subclass of Throwable!

-				throw e;

-		}

-	}

-

-	/**

-	 * Returns a string representation of the given URL String.  This converts

-	 * escaped sequences (%..) in the URL into the appropriate characters.

-	 * NOTE: due to class visibility there is a copy of this method

-	 *       in InternalBootLoader

-	 */

-	private String decode(String urlString) {

-		//try to use Java 1.4 method if available

-		try {

-			Class clazz = URLDecoder.class;

-			Method method = clazz.getDeclaredMethod("decode", new Class[] {String.class, String.class}); //$NON-NLS-1$

-			//first encode '+' characters, because URLDecoder incorrectly converts 

-			//them to spaces on certain class library implementations.

-			if (urlString.indexOf('+') >= 0) {

-				int len = urlString.length();

-				StringBuffer buf = new StringBuffer(len);

-				for (int i = 0; i < len; i++) {

-					char c = urlString.charAt(i);

-					if (c == '+')

-						buf.append("%2B");

-					//$NON-NLS-1$

-					else

-						buf.append(c);

-				}

-				urlString = buf.toString();

-			}

-			Object result = method.invoke(null, new Object[] {urlString, "UTF-8"}); //$NON-NLS-1$

-			if (result != null)

-				return (String) result;

-		} catch (Exception e) {

-			//JDK 1.4 method not found -- fall through and decode by hand

-		}

-		//decode URL by hand

-		boolean replaced = false;

-		byte[] encodedBytes = urlString.getBytes();

-		int encodedLength = encodedBytes.length;

-		byte[] decodedBytes = new byte[encodedLength];

-		int decodedLength = 0;

-		for (int i = 0; i < encodedLength; i++) {

-			byte b = encodedBytes[i];

-			if (b == '%') {

-				byte enc1 = encodedBytes[++i];

-				byte enc2 = encodedBytes[++i];

-				b = (byte) ((hexToByte(enc1) << 4) + hexToByte(enc2));

-				replaced = true;

-			}

-			decodedBytes[decodedLength++] = b;

-		}

-		if (!replaced)

-			return urlString;

-		try {

-			return new String(decodedBytes, 0, decodedLength, "UTF-8"); //$NON-NLS-1$

-		} catch (UnsupportedEncodingException e) {

-			//use default encoding

-			return new String(decodedBytes, 0, decodedLength);

-		}

-	}

-

-	/**

-	 * Returns the result of converting a list of comma-separated tokens into an array

-	 * 

-	 * @return the array of string tokens

-	 * @param prop the initial comma-separated string

-	 */

-	private String[] getArrayFromList(String prop) {

-		if (prop == null || prop.trim().equals("")) //$NON-NLS-1$

-			return new String[0];

-		Vector list = new Vector();

-		StringTokenizer tokens = new StringTokenizer(prop, ","); //$NON-NLS-1$

-		while (tokens.hasMoreTokens()) {

-			String token = tokens.nextToken().trim();

-			if (!token.equals("")) //$NON-NLS-1$

-				list.addElement(token);

-		}

-		return list.isEmpty() ? new String[0] : (String[]) list.toArray(new String[list.size()]);

-	}

-

-	/**

-	 * Returns the <code>URL</code>-based class path describing where the boot classes

-	 * are located when running in development mode.

-	 * 

-	 * @return the url-based class path

-	 * @param base the base location

-	 * @exception MalformedURLException if a problem occurs computing the class path

-	 */

-	private URL[] getDevPath(URL base) throws IOException {

-		String devBase = base.toExternalForm();

-		ArrayList result = new ArrayList(5);

-		if (inDevelopmentMode)

-			addDevEntries(devBase, result); //$NON-NLS-1$

-		//The jars from the base always need to be added, even when running in dev mode (bug 46772)

-		addBaseJars(devBase, result);

-		return (URL[]) result.toArray(new URL[result.size()]);

-	}

-

-	private void addBaseJars(String devBase, ArrayList result) throws IOException {

-		String baseJarList = System.getProperty(PROP_CLASSPATH);

-		if (baseJarList == null) {

-			Properties defaults = loadProperties(devBase + "eclipse.properties");

-			baseJarList = defaults.getProperty(PROP_CLASSPATH);

-			if (baseJarList == null)

-				throw new IOException("Unable to initialize " + PROP_CLASSPATH);

-			System.getProperties().put(PROP_CLASSPATH, baseJarList);

-		}

-		String[] baseJars = getArrayFromList(baseJarList);

-		for (int i = 0; i < baseJars.length; i++) {

-			String string = baseJars[i];

-			try {

-				URL url = new URL(string);

-				addEntry(url, result);

-			} catch (MalformedURLException e) {

-				addEntry(new URL(devBase + string), result);

-			}

-		}

-	}

-

-	private void addEntry(URL url, List result) {

-		if (new File(url.getFile()).exists())

-			result.add(url);

-	}

-

-	private void addDevEntries(String devBase, List result) throws MalformedURLException {

-		String[] locations = getArrayFromList(devClassPath);

-		for (int i = 0; i < locations.length; i++) {

-			String spec = devBase + locations[i];

-			char lastChar = spec.charAt(spec.length() - 1);

-			URL url;

-			if ((spec.endsWith(".jar") || (lastChar == '/' || lastChar == '\\'))) //$NON-NLS-1$

-				url = new URL(spec);

-			else

-				url = new URL(spec + "/"); //$NON-NLS-1$

-			addEntry(url, result);

-		}

-	}

-

-	/**

-	 * Returns the <code>URL</code>-based class path describing where the boot classes are located.

-	 * 

-	 * @return the url-based class path

-	 * @param base the base location

-	 * @exception MalformedURLException if a problem occurs computing the class path

-	 */

-	private URL[] getBootPath(String base) throws IOException {

-		URL url = null;

-		if (base != null) {

-			url = new URL(base);

-		} else {

-			// search in the root location

-			url = new URL(getInstallLocation());

-			String path = url.getFile() + "plugins"; //$NON-NLS-1$

-			path = searchFor(framework, path);

-			if (path == null)

-				throw new RuntimeException("Could not find framework"); //$NON-NLS-1$

-			// add on any dev path elements

-			url = new URL(url.getProtocol(), url.getHost(), url.getPort(), path);

-		}

-		if (System.getProperty(PROP_FRAMEWORK) == null)

-			System.getProperties().put(PROP_FRAMEWORK, url.toExternalForm());

-		if (debug)

-			System.out.println("Framework located:\n    " + url.toExternalForm());

-		URL[] result = getDevPath(url);

-		if (debug) {

-			System.out.println("Framework classpath:"); //$NON-NLS-1$

-			for (int i = 0; i < result.length; i++)

-				System.out.println("    " + result[i].toExternalForm()); //$NON-NLS-1$

-		}

-		return result;

-	}

-

-	/**

-	 * Searches for the given target directory starting in the "plugins" subdirectory

-	 * of the given location.  If one is found then this location is returned; 

-	 * otherwise an exception is thrown.

-	 * 

-	 * @return the location where target directory was found

-	 * @param start the location to begin searching

-	 */

-	private String searchFor(final String target, String start) {

-		FileFilter filter = new FileFilter() {

-			public boolean accept(File candidate) {

-				return candidate.isDirectory() && (candidate.getName().equals(target) || candidate.getName().startsWith(target + "_")); //$NON-NLS-1$

-			}

-		};

-		File[] candidates = new File(start).listFiles(filter); //$NON-NLS-1$

-		if (candidates == null)

-			return null;

-		String result = null;

-		Object maxVersion = null;

-		for (int i = 0; i < candidates.length; i++) {

-			String name = candidates[i].getName();

-			String version = ""; //$NON-NLS-1$ // Note: directory with version suffix is always > than directory without version suffix

-			int index = name.indexOf('_');

-			if (index != -1)

-				version = name.substring(index + 1);

-			Object currentVersion = getVersionElements(version);

-			if (maxVersion == null) {

-				result = candidates[i].getAbsolutePath();

-				maxVersion = currentVersion;

-			} else {

-				if (compareVersion((Object[]) maxVersion, (Object[]) currentVersion) < 0) {

-					result = candidates[i].getAbsolutePath();

-					maxVersion = currentVersion;

-				}

-			}

-		}

-		if (result == null)

-			return null;

-		return result.replace(File.separatorChar, '/') + "/"; //$NON-NLS-1$

-	}

-

-	/**

-	 * Compares version strings. 

-	 * @return result of comparison, as integer;

-	 * <code><0</code> if left < right;

-	 * <code>0</code> if left == right;

-	 * <code>>0</code> if left > right;

-	 */

-	private int compareVersion(Object[] left, Object[] right) {

-

-		int result = ((Integer) left[0]).compareTo((Integer) right[0]); // compare major

-		if (result != 0)

-			return result;

-

-		result = ((Integer) left[1]).compareTo((Integer) right[1]); // compare minor

-		if (result != 0)

-			return result;

-

-		result = ((Integer) left[2]).compareTo((Integer) right[2]); // compare service

-		if (result != 0)

-			return result;

-

-		return ((String) left[3]).compareTo((String) right[3]); // compare qualifier

-	}

-

-	/**

-	 * Do a quick parse of version identifier so its elements can be correctly compared.

-	 * If we are unable to parse the full version, remaining elements are initialized

-	 * with suitable defaults.

-	 * @return an array of size 4; first three elements are of type Integer (representing

-	 * major, minor and service) and the fourth element is of type String (representing

-	 * qualifier). Note, that returning anything else will cause exceptions in the caller.

-	 */

-	private Object[] getVersionElements(String version) {

-		Object[] result = {new Integer(0), new Integer(0), new Integer(0), ""}; //$NON-NLS-1$

-		StringTokenizer t = new StringTokenizer(version, "."); //$NON-NLS-1$

-		String token;

-		int i = 0;

-		while (t.hasMoreTokens() && i < 4) {

-			token = t.nextToken();

-			if (i < 3) {

-				// major, minor or service ... numeric values

-				try {

-					result[i++] = new Integer(token);

-				} catch (Exception e) {

-					// invalid number format - use default numbers (0) for the rest

-					break;

-				}

-			} else {

-				// qualifier ... string value

-				result[i++] = token;

-			}

-		}

-		return result;

-	}

-

-	private URL buildURL(String spec, boolean trailingSlash) {

-		if (spec == null)

-			return null;

-		// if the spec is a file: url then see if it is absolute.  If not, break it up

-		// and make it absolute.  

-		if (spec.startsWith("file:")) {

-			File file = new File(spec.substring(5));

-			if (!file.isAbsolute())

-				spec = "file:" + file.getAbsolutePath();

-		}

-		try {

-			spec = adjustTrailingSlash(spec, true);

-			return new URL(spec);

-		} catch (MalformedURLException e) {

-			if (spec.startsWith("file:"))

-				return null;

-			return buildURL("file:" + spec, trailingSlash);

-		}

-	}

-

-	private URL buildLocation(String property, URL defaultLocation, String userDefaultAppendage) {

-		URL result = null;

-		String location = System.getProperty(property);

-		System.getProperties().remove(property);

-		// if the instance location is not set, predict where the workspace will be and 

-		// put the instance area inside the workspace meta area.

-		try {

-			if (location == null)

-				result = defaultLocation;

-			else if (location.equalsIgnoreCase(NONE))

-				return null;

-			else if (location.equalsIgnoreCase(NO_DEFAULT))

-				result = buildURL(location, true);

-			else {

-				if (location.equalsIgnoreCase(USER_HOME))

-					location = computeDefaultUserAreaLocation(userDefaultAppendage);

-				if (location.equalsIgnoreCase(USER_DIR))

-					location = new File(System.getProperty(PROP_USER_DIR), userDefaultAppendage).getAbsolutePath();

-				result = buildURL(location, true);

-			}

-		} finally {

-			if (result != null)

-				System.getProperties().put(property, result.toExternalForm());

-		}

-		return result;

-	}

-

-	/** 

-	 * Retuns the default file system path for the configuration location.

-	 * By default the configuration information is in the installation directory

-	 * if this is writeable.  Otherwise it is located somewhere in the user.home

-	 * area relative to the current product. 

-	 * @return the default file system path for the configuration information

-	 */

-	private String computeDefaultConfigurationLocation() {

-		// 1) We store the config state relative to the 'eclipse' directory if possible

-		// 2) If this directory is read-only 

-		//    we store the state in <user.home>/.eclipse/<application-id>_<version> where <user.home> 

-		//    is unique for each local user, and <application-id> is the one 

-		//    defined in .eclipseproduct marker file. If .eclipseproduct does not

-		//    exist, use "eclipse" as the application-id.

-

-		String install = getInstallLocation();

-		// TODO a little dangerous here.  Basically we have to assume that it is a file URL.

-		if (install.startsWith("file:")) {

-			File installDir = new File(install.substring(5));

-			if (installDir.canWrite())

-				return installDir.getAbsolutePath() + File.separator + CONFIG_DIR;

-		}

-		// We can't write in the eclipse install dir so try for some place in the user's home dir

-		return computeDefaultUserAreaLocation(CONFIG_DIR);

-	}

-

-	/**

-	 * Returns a files system path for an area in the user.home region related to the

-	 * current product.  The given appendage is added to this base location

-	 * @param pathAppendage the path segments to add to computed base

-	 * @return a file system location in the user.home area related the the current

-	 *   product and the given appendage

-	 */

-	private String computeDefaultUserAreaLocation(String pathAppendage) {

-		//    we store the state in <user.home>/.eclipse/<application-id>_<version> where <user.home> 

-		//    is unique for each local user, and <application-id> is the one 

-		//    defined in .eclipseproduct marker file. If .eclipseproduct does not

-		//    exist, use "eclipse" as the application-id.

-		URL installURL = buildURL(getInstallLocation(), true);

-		if (installURL == null)

-			return null;

-		File installDir = new File(installURL.getPath());

-		String appName = "." + ECLIPSE; //$NON-NLS-1$

-		File eclipseProduct = new File(installDir, PRODUCT_SITE_MARKER);

-		if (eclipseProduct.exists()) {

-			Properties props = new Properties();

-			try {

-				props.load(new FileInputStream(eclipseProduct));

-				String appId = props.getProperty(PRODUCT_SITE_ID);

-				if (appId == null || appId.trim().length() == 0)

-					appId = ECLIPSE;

-				String appVersion = props.getProperty(PRODUCT_SITE_VERSION);

-				if (appVersion == null || appVersion.trim().length() == 0)

-					appVersion = ""; //$NON-NLS-1$

-				appName += File.separator + appId + "_" + appVersion; //$NON-NLS-1$

-			} catch (IOException e) {

-				// Do nothing if we get an exception.  We will default to a standard location 

-				// in the user's home dir.

-			}

-		}

-		String userHome = System.getProperty(PROP_USER_HOME);

-		return new File(userHome, appName + "/" + pathAppendage).getAbsolutePath(); //$NON-NLS-1$

-	}

-

-	/**

-	 * Runs this launcher with the arguments specified in the given string.

-	 * 

-	 * @param argString the arguments string

-	 * @exception Exception thrown if a problem occurs during launching

-	 */

-	public static void main(String argString) {

-		Vector list = new Vector(5);

-		for (StringTokenizer tokens = new StringTokenizer(argString, " "); tokens.hasMoreElements();)

-			//$NON-NLS-1$

-			list.addElement(tokens.nextElement());

-		main((String[]) list.toArray(new String[list.size()]));

-	}

-

-	/**

-	 * Runs the platform with the given arguments.  The arguments must identify

-	 * an application to run (e.g., <code>-application com.example.application</code>).

-	 * After running the application <code>System.exit(N)</code> is executed.

-	 * The value of N is derived from the value returned from running the application.

-	 * If the application's return value is an <code>Integer</code>, N is this value.

-	 * In all other cases, N = 0.

-	 * <p>

-	 * Clients wishing to run the platform without a following <code>System.exit</code>

-	 * call should use <code>run()</code>.

-	 * </p>

-	 * 

-	 * @param args the command line arguments

-	 * @see #run

-	 */

-	public static void main(String[] args) {

-		int result = new Main().run(args);

-		System.exit(result);

-	}

-

-	/**

-	 * Runs the platform with the given arguments.  The arguments must identify

-	 * an application to run (e.g., <code>-application com.example.application</code>).

-	 * Returns the value returned from running the application.

-	 * If the application's return value is an <code>Integer</code>, N is this value.

-	 * In all other cases, N = 0.

-	 *

-	 * @param args the command line arguments

-	 */

-	public int run(String[] args) {

-		int result = 0;

-		try {

-			basicRun(args);

-			String exitCode = System.getProperty(PROP_EXITCODE);

-			try {

-				result = exitCode == null ? 0 : Integer.parseInt(exitCode);

-			} catch (NumberFormatException e) {

-				result = 17;

-			}

-		} catch (Throwable e) {

-			// try and take down the splash screen.

-			takeDownSplash();

-			// only log the exceptions if they have not been caught by the 

-			// EclipseStarter (i.e., if the exitCode is not 13) 

-			if (!"13".equals(System.getProperty(PROP_EXITCODE))) {

-				log("Exception launching the Eclipse Platform:"); //$NON-NLS-1$

-				log(e);

-				String message = "An error has occurred"; //$NON-NLS-1$

-				if (logFile == null)

-					message += " and could not be logged: \n" + e.getMessage(); //$NON-NLS-1$

-				else

-					message += ".  See the log file\n" + logFile.getAbsolutePath(); //$NON-NLS-1$

-				System.getProperties().put(PROP_EXITDATA, message);

-			}

-			// Return "unlucky" 13 as the exit code. The executable will recognize

-			// this constant and display a message to the user telling them that

-			// there is information in their log file.

-			result = 13;

-		}

-		// Return an int exit code and ensure the system property is set.

-		System.getProperties().put(PROP_EXITCODE, Integer.toString(result));

-		setExitData();

-		return result;

-	}

-

-	private void setExitData() {

-		String data = System.getProperty(PROP_EXITDATA);

-		if (exitData == null || data == null)

-			return;

-		runCommand(exitData, data, " " + EXITDATA);

-	}

-

-	/**

-	 * Processes the command line arguments.  The general principle is to NOT

-	 * consume the arguments and leave them to be processed by Eclipse proper.

-	 * There are a few args which are directed towards main() and a few others which

-	 * we need to know about.  Very few should actually be consumed here.

-	 * 

-	 * @return the arguments to pass through to the launched application

-	 * @param args the command line arguments

-	 */

-	protected String[] processCommandLine(String[] args) {

-		// TODO temporarily handle the fact that PDE appends the -showsplash <timeout> onto 

-		// the *end* of the command line.  This interferes with the -vmargs arg.  Process 

-		// -showsplash now and remove it from the end.  This code should be removed soon.

-		int end = args.length;

-		if (args.length > 1 && args[end - 2].equalsIgnoreCase(SHOWSPLASH)) {

-			showSplash = args[end - 1];

-			end -= 2;

-		}

-		String[] arguments = new String[end];

-		System.arraycopy(args, 0, arguments, 0, end);

-		int[] configArgs = new int[arguments.length];

-		configArgs[0] = -1; // need to initialize the first element to something that could not be an index.

-		int configArgIndex = 0;

-		for (int i = 0; i < arguments.length; i++) {

-			boolean found = false;

-			// check for args without parameters (i.e., a flag arg)

-			// check if debug should be enabled for the entire platform

-			if (arguments[i].equalsIgnoreCase(DEBUG)) {

-				debug = true;

-				// passed thru this arg (i.e., do not set found = true)

-				continue;

-			}

-

-			// look for and consume the nosplash directive.  This supercedes any

-			// -showsplash command that might be present.

-			if (arguments[i].equalsIgnoreCase(NOSPLASH)) {

-				splashDown = true;

-				found = true;

-			}

-

-			// check if this is initialization pass

-			if (arguments[i].equalsIgnoreCase(INITIALIZE)) {

-				initialize = true;

-				// passed thru this arg (i.e., do not set found = true)

-				continue;

-			}

-

-			// check if development mode should be enabled for the entire platform

-			// If this is the last arg or there is a following arg (i.e., arg+1 has a leading -), 

-			// simply enable development mode.  Otherwise, assume that that the following arg is

-			// actually some additional development time class path entries.  This will be processed below.

-			if (arguments[i].equalsIgnoreCase(DEV) && ((i + 1 == arguments.length) || ((i + 1 < arguments.length) && (arguments[i + 1].startsWith("-"))))) { //$NON-NLS-1$

-				inDevelopmentMode = true;

-				// do not mark the arg as found so it will be passed through

-				continue;

-			}

-

-			// done checking for args.  Remember where an arg was found 

-			if (found) {

-				configArgs[configArgIndex++] = i;

-				continue;

-			}

-

-			// look for the VM args arg.  We have to do that before looking to see

-			// if the next element is a -arg as the thing following -vmargs may in

-			// fact be another -arg.

-			if (arguments[i].equalsIgnoreCase(VMARGS)) {

-				// consume the -vmargs arg itself

-				arguments[i] = null;

-				i++;

-				vmargs = new String[arguments.length - i];

-				for (int j = 0; i < arguments.length; i++) {

-					vmargs[j++] = arguments[i];

-					arguments[i] = null;

-				}

-				continue;

-			}

-

-			// check for args with parameters. If we are at the last argument or if the next one

-			// has a '-' as the first character, then we can't have an arg with a parm so continue.

-			if (i == arguments.length - 1 || arguments[i + 1].startsWith("-")) //$NON-NLS-1$

-				continue;

-			String arg = arguments[++i];

-

-			// look for the development mode and class path entries.  

-			if (arguments[i - 1].equalsIgnoreCase(DEV)) {

-				inDevelopmentMode = true;

-				devClassPath = processDevArg(arg);

-				continue;

-			}

-

-			// look for the framework to run

-			if (arguments[i - 1].equalsIgnoreCase(FRAMEWORK)) {

-				framework = arg;

-				found = true;

-			}

-

-			// look for explicitly set install root

-			// Consume the arg here to ensure that the launcher and Eclipse get the 

-			// same value as each other.  

-			if (arguments[i - 1].equalsIgnoreCase(INSTALL)) {

-				System.getProperties().put(PROP_INSTALL_AREA, arg);

-				found = true;

-			}

-

-			// look for the configuration to use.  

-			// Consume the arg here to ensure that the launcher and Eclipse get the 

-			// same value as each other.  

-			if (arguments[i - 1].equalsIgnoreCase(CONFIGURATION)) {

-				System.getProperties().put(PROP_CONFIG_AREA, arg);

-				found = true;

-			}

-

-			// look for the command to use to set exit data in the launcher

-			if (arguments[i - 1].equalsIgnoreCase(EXITDATA)) {

-				exitData = arg;

-				found = true;

-			}

-

-			// look for the command to use to show the splash screen

-			if (arguments[i - 1].equalsIgnoreCase(SHOWSPLASH)) {

-				showSplash = arg;

-				found = true;

-			}

-

-			// look for the command to use to end the splash screen

-			if (arguments[i - 1].equalsIgnoreCase(ENDSPLASH)) {

-				endSplash = arg;

-				found = true;

-			}

-

-			// look for the VM location arg

-			if (arguments[i - 1].equalsIgnoreCase(VM)) {

-				vm = arg;

-				found = true;

-			}

-

-			// done checking for args.  Remember where an arg was found 

-			if (found) {

-				configArgs[configArgIndex++] = i - 1;

-				configArgs[configArgIndex++] = i;

-			}

-		}

-		// remove all the arguments consumed by this argument parsing

-		if (configArgIndex == 0)

-			return arguments;

-		String[] passThruArgs = new String[arguments.length - configArgIndex - (vmargs == null ? 0 : vmargs.length + 1)];

-		configArgIndex = 0;

-		int j = 0;

-		for (int i = 0; i < arguments.length; i++) {

-			if (i == configArgs[configArgIndex])

-				configArgIndex++;

-			else if (arguments[i] != null)

-				passThruArgs[j++] = arguments[i];

-		}

-		return passThruArgs;

-	}

-

-	private String processDevArg(String arg) {

-		if (arg == null)

-			return null;

-		try {

-			URL location = new URL(arg);

-			Properties props = load(location, null);

-			String result = props.getProperty("org.eclipse.osgi");

-			return result == null ? props.getProperty("*") : result;

-		} catch (MalformedURLException e) {

-			// the arg was not a URL so use it as is.

-			return arg;

-		} catch (IOException e) {

-			// TODO consider logging here

-			return null;

-		}

-	}

-

-	private String getConfigurationLocation() {

-		if (configurationLocation != null)

-			return configurationLocation;

-		URL result = buildLocation(PROP_CONFIG_AREA, null, CONFIG_DIR);

-		if (result == null)

-			result = buildURL(computeDefaultConfigurationLocation(), true);

-		if (result == null)

-			return null;

-		configurationLocation = adjustTrailingSlash(result.toExternalForm(), true);

-		System.getProperties().put(PROP_CONFIG_AREA, configurationLocation);

-		if (debug)

-			System.out.println("Configuration location:\n    " + configurationLocation);

-		return configurationLocation;

-	}

-

-	private void processConfiguration() {

-		// if the configuration area is not already defined, discover the config area by

-		// trying to find a base config area.  This is either defined in a system property or

-		// is computed relative to the install location.

-		// Note that the config info read here is only used to determine a value 

-		// for the user configuration area

-		URL baseConfigurationLocation = null;

-		Properties baseConfiguration = null;

-		if (System.getProperty(PROP_CONFIG_AREA) == null) {

-			String baseLocation = System.getProperty(PROP_BASE_CONFIG_AREA);

-			if (baseLocation != null)

-				// here the base config cannot have any symbolic (e..g, @xxx) entries.  It must just

-				// point to the config file.

-				baseConfigurationLocation = buildURL(baseLocation, true);

-			if (baseConfigurationLocation == null)

-				// here we access the install location but this is very early.  This case will only happen if

-				// the config area is not set and the base config area is not set (or is bogus).

-				// In this case we compute based on the install location.

-				baseConfigurationLocation = buildURL(getInstallLocation() + CONFIG_DIR, true);

-			baseConfiguration = loadConfiguration(baseConfigurationLocation.toExternalForm());

-			if (baseConfiguration != null) {

-				// if the base sets the install area then use that value if the property.  We know the 

-				// property is not already set.

-				String location = baseConfiguration.getProperty(PROP_CONFIG_AREA);

-				if (location != null)

-					System.getProperties().put(PROP_CONFIG_AREA, location);

-				// if the base sets the install area then use that value if the property is not already set.

-				// This helps in selfhosting cases where you cannot easily compute the install location

-				// from the code base.

-				location = baseConfiguration.getProperty(PROP_INSTALL_AREA);

-				if (location != null && System.getProperty(PROP_INSTALL_AREA) == null)

-					System.getProperties().put(PROP_INSTALL_AREA, location);

-			}

-		}

-

-		// Now we know where the base configuration is supposed to be.  Go ahead and load

-		// it and merge into the System properties.  Then, if cascaded, read the parent configuration

-		// Note that the parent may or may not be the same parent as we read above since the 

-		// base can define its parent.  The first parent we read was either defined by the user

-		// on the command line or was the one in the install dir.  

-		// if the config or parent we are about to read is the same as the base config we read above,

-		// just reuse the base

-		Properties configuration = baseConfiguration;

-		if (configuration == null || !getConfigurationLocation().equals(baseConfigurationLocation.toExternalForm()))

-			configuration = loadConfiguration(getConfigurationLocation());

-		mergeProperties(System.getProperties(), configuration);

-		if ("false".equalsIgnoreCase(System.getProperty(PROP_CONFIG_CASCADED)))

-			// if we are not cascaded then remvoe the parent property even if it was set.

-			System.getProperties().remove(PROP_SHARED_CONFIG_AREA);

-		else {

-			URL sharedConfigURL = buildLocation(PROP_SHARED_CONFIG_AREA, null, CONFIG_DIR);

-			if (sharedConfigURL == null)

-				// here we access the install location but this is very early.  This case will only happen if

-				// the config is cascaded and the parent config area is not set (or is bogus).

-				// In this case we compute based on the install location.  Note that we should not 

-				// precompute this value and use it as the default in the call to buildLocation as it will

-				// unnecessarily bind the install location.

-				sharedConfigURL = buildURL(getInstallLocation() + CONFIG_DIR, true);

-

-			// if the parent location is different from the config location, read it too.

-			if (sharedConfigURL != null) {

-				String location = sharedConfigURL.toExternalForm();

-				if (location.equals(getConfigurationLocation()))

-					// remove the property to show that we do not have a parent.

-					System.getProperties().remove(PROP_SHARED_CONFIG_AREA);

-				else {

-					// if the parent we are about to read is the same as the base config we read above,

-					// just reuse the base

-					configuration = baseConfiguration;

-					if (!sharedConfigURL.equals(baseConfigurationLocation))

-						configuration = loadConfiguration(location);

-					mergeProperties(System.getProperties(), configuration);

-					System.getProperties().put(PROP_SHARED_CONFIG_AREA, location);

-					if (debug)

-						System.out.println("Shared configuration location:\n    " + location);

-				}

-			}

-		}

-		// setup the path to the framework

-		String urlString = System.getProperty(PROP_FRAMEWORK, null);

-		if (urlString != null) {

-			urlString = adjustTrailingSlash(urlString, true);

-			System.getProperties().put(PROP_FRAMEWORK, urlString);

-			bootLocation = resolve(urlString);

-		}

-	}

-

-	/**

-	 * Returns url of the location this class was loaded from

-	 */

-	private String getInstallLocation() {

-		if (installLocation != null)

-			return installLocation;

-

-		// value is not set so compute the default and set the value

-		installLocation = System.getProperty(PROP_INSTALL_AREA);

-		if (installLocation != null) {

-			URL location = buildURL(installLocation, true);

-			if (location == null)

-				throw new IllegalStateException("Install location is invalid: " + installLocation);

-			installLocation = location.toExternalForm();

-			System.getProperties().put(PROP_INSTALL_AREA, installLocation);

-			if (debug)

-				System.out.println("Install location:\n    " + installLocation);

-			return installLocation;

-		}

-

-		URL result = Main.class.getProtectionDomain().getCodeSource().getLocation();

-		String path = decode(result.getFile());

-		path = new File(path).getAbsolutePath().replace(File.separatorChar, '/');

-		// TODO need a better test for windows

-		// If on Windows then canonicalize the drive letter to be lowercase.

-		if (File.separatorChar == '\\')

-			if (Character.isUpperCase(path.charAt(0))) {

-				char[] chars = path.toCharArray();

-				chars[0] = Character.toLowerCase(chars[0]);

-				path = new String(chars);

-			}

-		if (path.endsWith(".jar")) //$NON-NLS-1$

-			path = path.substring(0, path.lastIndexOf("/") + 1); //$NON-NLS-1$

-		try {

-			installLocation = new URL(result.getProtocol(), result.getHost(), result.getPort(), path).toExternalForm();

-			System.getProperties().put(PROP_INSTALL_AREA, installLocation);

-		} catch (MalformedURLException e) {

-			// TODO Very unlikely case.  log here.  

-		}

-		if (debug)

-			System.out.println("Install location:\n    " + installLocation);

-		return installLocation;

-	}

-

-	/*

-	 * Load the given configuration file

-	 */

-	private Properties loadConfiguration(String url) {

-		Properties result = null;

-		url += CONFIG_FILE;

-		try {

-			if (debug)

-				System.out.print("Configuration file:\n    " + url.toString()); //$NON-NLS-1$

-			result = loadProperties(url);

-			if (debug)

-				System.out.println(" loaded"); //$NON-NLS-1$

-		} catch (IOException e) {

-			if (debug)

-				System.out.println(" not found or not read"); //$NON-NLS-1$

-		}

-		return result;

-	}

-

-	private Properties loadProperties(String location) throws IOException {

-		// try to load saved configuration file (watch for failed prior save())

-		URL url = buildURL(location, false);

-		if (url == null)

-			return null;

-		Properties result = null;

-		IOException originalException = null;

-		try {

-			result = load(url, null); // try to load config file

-		} catch (IOException e1) {

-			originalException = e1;

-			try {

-				result = load(url, CONFIG_FILE_TEMP_SUFFIX); // check for failures on save

-			} catch (IOException e2) {

-				try {

-					result = load(url, CONFIG_FILE_BAK_SUFFIX); // check for failures on save

-				} catch (IOException e3) {

-					throw originalException; // we tried, but no config here ...

-				}

-			}

-		}

-		return result;

-	}

-

-	/*

-	 * Load the configuration  

-	 */

-	private Properties load(URL url, String suffix) throws IOException {

-		// figure out what we will be loading

-		if (suffix != null && !suffix.equals("")) //$NON-NLS-1$

-			url = new URL(url.getProtocol(), url.getHost(), url.getPort(), url.getFile() + suffix);

-

-		// try to load saved configuration file

-		Properties props = new Properties();

-		InputStream is = null;

-		try {

-			is = url.openStream();

-			props.load(is);

-			// check to see if we have complete config file

-			if (!PROP_EOF.equals(props.getProperty(PROP_EOF)))

-				throw new IOException("Incomplete configuration file: " + url.toExternalForm()); //$NON-NLS-1$

-		} finally {

-			if (is != null)

-				try {

-					is.close();

-				} catch (IOException e) {

-					//ignore failure to close

-				}

-		}

-		return props;

-	}

-

-	/*

-	 * Handle splash screen.

-	 * We support 2 startup scenarios:

-	 * 

-	 * (1) the executable launcher put up the splash screen. In that

-	 *     scenario we are invoked with -endsplash command which is

-	 *     fully formed to take down the splash screen

-	 * 

-	 * (2) the executable launcher did not put up the splash screen,

-	 *     but invokes Eclipse with partially formed -showsplash command.

-	 *     In this scenario we determine which splash to display (based on 

-	 *     feature information) and then call -showsplash command. 

-	 * 

-	 * In both scenarios we pass a handler (Runnable) to the platform.

-	 * The handler is called as a result of the launched application calling

-	 * Platform.endSplash(). In the first scenario this results in the

-	 * -endsplash command being executed. In the second scenarios this

-	 * results in the process created as a result of the -showsplash command

-	 * being destroyed.

-	 * 

-	 * @param bootPath search path for the boot plugin

-	 */

-	private void handleSplash(URL[] defaultPath) {

-		// run without splash if we are initializing or nosplash 

-		// was specified (splashdown = true)

-		if (initialize || splashDown) {

-			showSplash = null;

-			endSplash = null;

-			return;

-		}

-

-		// if -endsplash is specified, use it and ignore any -showsplash command

-		if (endSplash != null) {

-			showSplash = null;

-			return;

-		}

-

-		// check if we are running without a splash screen

-		if (showSplash == null)

-			return;

-

-		// determine the splash location

-		String location = getSplashLocation(defaultPath);

-		if (debug)

-			System.out.println("Splash location:\n    " + location); //$NON-NLS-1$

-		if (location == null)

-			return;

-		showProcess = runCommand(showSplash, location, " " + SHOWSPLASH); //$NON-NLS-1$

-	}

-

-	private Process runCommand(String command, String data, String separator) {

-		// Parse the showsplash command into its separate arguments.

-		// The command format is: 

-		//     <executable> -show <magicArg> [<splashPath>]

-		// If either the <executable> or the <splashPath> arguments contain a

-		// space, Runtime.getRuntime().exec( String ) will not work, even

-		// if both arguments are enclosed in double-quotes. The solution is to

-		// use the Runtime.getRuntime().exec( String[] ) method.

-		String[] args = new String[(data != null ? 4 : 3)];

-		// get the executable part

-		int sIndex = 0;

-		int eIndex = command.indexOf(separator);

-		if (eIndex == -1)

-			return null; // invalid command

-		args[0] = command.substring(sIndex, eIndex);

-		// get the command part

-		sIndex = eIndex + 1;

-		eIndex = command.indexOf(" ", sIndex); //$NON-NLS-1$

-		if (eIndex == -1)

-			return null; // invalid command

-		args[1] = command.substring(sIndex, eIndex);

-

-		// get the magic arg part

-		args[2] = command.substring(eIndex + 1);

-

-		// add on our data

-		if (data != null)

-			args[3] = data;

-

-		Process result = null;

-		try {

-			result = Runtime.getRuntime().exec(args);

-		} catch (Exception e) {

-			log("Exception running command: " + command); //$NON-NLS-1$

-			log(e);

-		}

-		return result;

-	}

-

-	/*

-	 * take down the splash screen. Try both take-down methods just in case

-	 * (only one should ever be set)

-	 */

-	protected void takeDownSplash() {

-		if (splashDown) // splash is already down

-			return;

-

-		// check if -endsplash was specified

-		if (endSplash != null) {

-			try {

-				Runtime.getRuntime().exec(endSplash);

-			} catch (Exception e) {

-				//ignore failure to end splash

-			}

-		}

-

-		// check if -showsplash was specified and executed

-		if (showProcess != null) {

-			showProcess.destroy();

-			showProcess = null;

-		}

-		splashDown = true;

-	}

-

-	/*

-	 * Return path of the splash image to use.  First search the defined splash path.

-	 * If that does not work, look for a default splash.  Currently the splash must be in the file system

-	 * so the return value here is the file system path.

-	 */

-	private String getSplashLocation(URL[] bootPath) {

-		String result = System.getProperty(PROP_SPLASHLOCATION);

-		if (result != null)

-			return result;

-		String splashPath = System.getProperty(PROP_SPLASHPATH);

-		if (splashPath != null) {

-			String[] entries = getArrayFromList(splashPath);

-			ArrayList path = new ArrayList(entries.length);

-			for (int i = 0; i < entries.length; i++) {

-				String entry = resolve(entries[i]);

-				if (entry == null || entry.startsWith("file:")) {

-					File entryFile = new File(entry.substring(5).replace('/', File.separatorChar));

-					entry = searchFor(entryFile.getName(), entryFile.getParent());

-					if (entry != null)

-						path.add(entry);

-				} else

-					log("Invalid splash path entry: " + entries[i]);

-			}

-			// see if we can get a splash given the splash path

-			result = searchForSplash((String[]) path.toArray(new String[path.size()]));

-			if (result != null) {

-				System.getProperties().put(PROP_SPLASHLOCATION, result);

-				return result;

-			}

-		}

-

-		// can't find it on the splashPath so look for a default splash

-		String temp = bootPath[0].getFile(); // take the first path element

-		temp = temp.replace('/', File.separatorChar);

-		int ix = temp.lastIndexOf("plugins" + File.separator); //$NON-NLS-1$

-		if (ix != -1) {

-			int pix = temp.indexOf(File.separator, ix + 8);

-			if (pix != -1) {

-				temp = temp.substring(0, pix);

-				result = searchForSplash(new String[] {temp});

-				if (result != null)

-					System.getProperties().put(PROP_SPLASHLOCATION, result);

-			}

-		}

-		return result;

-	}

-

-	/*

-	 * Do a locale-sensitive lookup of splash image

-	 */

-	private String searchForSplash(String[] searchPath) {

-		if (searchPath == null)

-			return null;

-

-		// get current locale information

-		String localePath = Locale.getDefault().toString().replace('_', File.separatorChar);

-

-		// search the specified path

-		while (localePath != null) {

-			String suffix;

-			if (localePath.equals("")) { //$NON-NLS-1$

-				// look for nl'ed splash image

-				suffix = SPLASH_IMAGE;

-			} else {

-				// look for default splash image

-				suffix = "nl" + File.separator + localePath + File.separator + SPLASH_IMAGE; //$NON-NLS-1$

-			}

-

-			// check for file in searchPath

-			for (int i = 0; i < searchPath.length; i++) {

-				String path = searchPath[i];

-				if (!path.endsWith(File.separator))

-					path += File.separator;

-				path += suffix;

-				File result = new File(path);

-				if (result.exists())

-					return result.getAbsolutePath(); // return the first match found [20063]

-			}

-

-			// try the next variant

-			if (localePath.equals("")) //$NON-NLS-1$

-				localePath = null;

-			else {

-				int ix = localePath.lastIndexOf(File.separator);

-				if (ix == -1)

-					localePath = ""; //$NON-NLS-1$

-				else

-					localePath = localePath.substring(0, ix);

-			}

-		}

-

-		// sorry, could not find splash image

-		return null;

-	}

-

-	/*

-	 * resolve platform:/base/ URLs

-	 */

-	private String resolve(String urlString) {

-		// handle the case where people mistakenly spec a refererence: url.

-		if (urlString.startsWith("reference:")) {

-			urlString = urlString.substring(10);

-			System.getProperties().put(PROP_FRAMEWORK, urlString);

-		}

-		if (urlString.startsWith(PLATFORM_URL)) {

-			String path = urlString.substring(PLATFORM_URL.length());

-			return getInstallLocation() + path;

-		} else

-			return urlString;

-	}

-

-	/*

-	 * Entry point for logging.

-	 */

-	private synchronized void log(Object obj) {

-		if (obj == null)

-			return;

-		try {

-			openLogFile();

-			try {

-				if (newSession) {

-					log.write(SESSION);

-					log.write(' ');

-					String timestamp = new Date().toString();

-					log.write(timestamp);

-					log.write(' ');

-					for (int i = SESSION.length() + timestamp.length(); i < 78; i++)

-						log.write('-');

-					log.newLine();

-					newSession = false;

-				}

-				write(obj);

-			} finally {

-				if (logFile == null) {

-					if (log != null)

-						log.flush();

-				} else

-					closeLogFile();

-			}

-		} catch (Exception e) {

-			System.err.println("An exception occurred while writing to the platform log:"); //$NON-NLS-1$

-			e.printStackTrace(System.err);

-			System.err.println("Logging to the console instead."); //$NON-NLS-1$

-			//we failed to write, so dump log entry to console instead

-			try {

-				log = logForStream(System.err);

-				write(obj);

-				log.flush();

-			} catch (Exception e2) {

-				System.err.println("An exception occurred while logging to the console:"); //$NON-NLS-1$

-				e2.printStackTrace(System.err);

-			}

-		} finally {

-			log = null;

-		}

-	}

-

-	/*

-	 * This should only be called from #log()

-	 */

-	private void write(Object obj) throws IOException {

-		if (obj == null)

-			return;

-		if (obj instanceof Throwable) {

-			log.write(STACK);

-			log.newLine();

-			((Throwable) obj).printStackTrace(new PrintWriter(log));

-		} else {

-			log.write(ENTRY);

-			log.write(' ');

-			log.write(PLUGIN_ID);

-			log.write(' ');

-			log.write(String.valueOf(ERROR));

-			log.write(' ');

-			log.write(String.valueOf(0));

-			log.write(' ');

-			try {

-				DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy kk:mm:ss.SS"); //$NON-NLS-1$

-				log.write(formatter.format(new Date()));

-			} catch (Exception e) {

-				// continue if we can't write out the date

-				log.write(Long.toString(System.currentTimeMillis()));

-			}

-			log.newLine();

-			log.write(MESSAGE);

-			log.write(' ');

-			log.write(String.valueOf(obj));

-		}

-		log.newLine();

-	}

-

-	private void computeLogFileLocation() {

-		String logFileProp = System.getProperty(PROP_LOGFILE);

-		if (logFileProp != null) {

-			if (logFile == null || !logFileProp.equals(logFile.getAbsolutePath())) {

-				logFile = new File(logFileProp);

-				logFile.getParentFile().mkdirs();

-			}

-			return;

-		}

-

-		// compute the base location and then append the name of the log file

-		URL base = buildURL(System.getProperty(PROP_CONFIG_AREA), false);

-		if (base == null)

-			return;

-		logFile = new File(base.getPath(), Long.toString(System.currentTimeMillis()) + ".log"); //$NON-NLS-1$

-		logFile.getParentFile().mkdirs();

-		System.setProperty(PROP_LOGFILE, logFile.getAbsolutePath());

-	}

-

-	/**

-	 * Converts an ASCII character representing a hexadecimal

-	 * value into its integer equivalent.

-	 */

-	private int hexToByte(byte b) {

-		switch (b) {

-			case '0' :

-				return 0;

-			case '1' :

-				return 1;

-			case '2' :

-				return 2;

-			case '3' :

-				return 3;

-			case '4' :

-				return 4;

-			case '5' :

-				return 5;

-			case '6' :

-				return 6;

-			case '7' :

-				return 7;

-			case '8' :

-				return 8;

-			case '9' :

-				return 9;

-			case 'A' :

-			case 'a' :

-				return 10;

-			case 'B' :

-			case 'b' :

-				return 11;

-			case 'C' :

-			case 'c' :

-				return 12;

-			case 'D' :

-			case 'd' :

-				return 13;

-			case 'E' :

-			case 'e' :

-				return 14;

-			case 'F' :

-			case 'f' :

-				return 15;

-			default :

-				throw new IllegalArgumentException("Switch error decoding URL"); //$NON-NLS-1$

-		}

-	}

-

-	private void openLogFile() throws IOException {

-		computeLogFileLocation();

-		try {

-			log = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile.getAbsolutePath(), true), "UTF-8")); //$NON-NLS-1$

-		} catch (IOException e) {

-			logFile = null;

-			throw e;

-		}

-	}

-

-	private BufferedWriter logForStream(OutputStream output) {

-		try {

-			return new BufferedWriter(new OutputStreamWriter(output, "UTF-8")); //$NON-NLS-1$

-		} catch (UnsupportedEncodingException e) {

-			return new BufferedWriter(new OutputStreamWriter(output));

-		}

-	}

-

-	private void closeLogFile() throws IOException {

-		try {

-			if (log != null) {

-				log.flush();

-				log.close();

-			}

-		} finally {

-			log = null;

-		}

-	}

-

-	private void mergeProperties(Properties destination, Properties source) {

-		if (destination == null || source == null)

-			return;

-		for (Enumeration e = source.keys(); e.hasMoreElements();) {

-			String key = (String) e.nextElement();

-			if (!key.equals(PROP_EOF)) {

-				String value = source.getProperty(key);

-				if (destination.getProperty(key) == null)

-					destination.put(key, value);

-			}

-		}

-	}

-

-	public void setupVMProperties() {

-		if (vm != null)

-			System.getProperties().put(PROP_VM, vm);

-		setMultiValueProperty(PROP_VMARGS, vmargs);

-		setMultiValueProperty(PROP_COMMANDS, commands);

-	}

-

-	private void setMultiValueProperty(String property, String[] value) {

-		if (value != null) {

-			StringBuffer result = new StringBuffer(300);

-			for (int i = 0; i < value.length; i++) {

-				result.append(value[i]);

-				result.append('\n');

-			}

-			System.getProperties().put(property, result.toString());

-		}

-	}

-

-	private String adjustTrailingSlash(String value, boolean slash) {

-		boolean hasSlash = value.endsWith("/") || value.endsWith(File.separator);

-		if (hasSlash == slash)

-			return value;

-		if (hasSlash)

-			return value.substring(0, value.length() - 1);

-		return value + "/";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/Main_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/Main_out.js
deleted file mode 100644
index f67227c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/Main_out.js
+++ /dev/null
@@ -1,1574 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.core.launcher;

-

-import java.io.*;

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.net.*;

-import java.text.DateFormat;

-import java.text.SimpleDateFormat;

-import java.util.*;

-

-/**

- * The framework to run.  This is used if the bootLocation (-boot) is not specified.

- * The value can be specified on the command line as -framework.

- * Startup class for Eclipse. Creates a class loader using

- * supplied URL of platform installation, loads and calls

- * the Eclipse Boot Loader.  The startup arguments are as follows:

- * <dl>

- * <dd>

- *    -application &lt;id&gt;: the identifier of the application to run

- * </dd>

- * <dd>

- *    -arch &lt;architecture&gt;: sets the processor architecture value

- * </dd>

- * <dd>

- *    -boot &lt;location&gt;: the location, expressed as a URL, of the platform's boot.jar.

- * <i>Deprecated: replaced by -configuration</i>

- * </dd>

- * <dd>

- *    -classloaderproperties [properties file]: activates platform class loader enhancements using 

- * the class loader properties file at the given location, if specified. The (optional) file argument 

- * can be either a file path or an absolute URL.

- * </dd>

- * <dd>

- *    -configuration &lt;location&gt;: the location, expressed as a URL, for the Eclipse platform 

- * configuration file. The configuration file determines the location of the Eclipse platform, the set 

- * of available plug-ins, and the primary feature.

- * </dd>

- * <dd>

- *    -consolelog : enables log to the console. Handy when combined with -debug

- * </dd>

- * <dd>

- *    -data &lt;location&gt;: sets the workspace location and the default location for projects

- * </dd>

- * <dd>

- *    -debug [options file]: turns on debug mode for the platform and optionally specifies a location

- * for the .options file. This file indicates what debug points are available for a

- * plug-in and whether or not they are enabled. If a location is not specified, the platform searches

- * for the .options file under the install directory.

- * </dd>

- * <dd>

- *    -dev [entries]: turns on dev mode and optionally specifies comma-separated class path entries

- * which are added to the class path of each plug-in

- * </dd>

- * <dd>

- *    -feature &lt;id&gt;: the identifier of the primary feature. The primary feature gives the launched 

- * instance of Eclipse its product personality, and determines the product customization 

- * information.

- * </dd>

- * <dd>

- *    -keyring &lt;location&gt;: the location of the authorization database on disk. This argument

- * has to be used together with the -password argument.

- * </dd>

- * <dd>

- *    -nl &lt;locale&gt;: sets the name of the locale on which Eclipse platform will run

- * </dd>

- * <dd>

- *    -nolazyregistrycacheloading : deactivates platform plug-in registry cache loading optimization. 

- * By default, extensions' configuration elements will be loaded from the registry cache (when 

- * available) only on demand, reducing memory footprint. This option will force the registry cache 

- * to be fully loaded at startup.

- * </dd>

- *  <dd>

- *    -nopackageprefixes: deactivates classloader package prefixes optimization

- * </dd> 

- *  <dd>

- *    -noregistrycache: bypasses the reading and writing of an internal plug-in registry cache file

- * </dd>

- * <dd>

- *    -os &lt;operating system&gt;: sets the operating system value

- * </dd>

- * <dd>

- *    -password &lt;passwd&gt;: the password for the authorization database

- * </dd>

- * <dd>

- *    -plugins &lt;location&gt;: the arg is a URL pointing to a file which specs the plugin 

- * path for the platform.  The file is in property file format where the keys are user-defined 

- * names and the values are comma separated lists of either explicit paths to plugin.xml 

- * files or directories containing plugins (e.g., .../eclipse/plugins). 

- * <i>Deprecated: replaced by -configuration</i>

- * </dd>

- * <dd>

- *    -plugincustomization &lt;properties file&gt;: the location of a properties file containing default 

- * settings for plug-in preferences. These default settings override default settings specified in the 

- * primary feature. Relative paths are interpreted relative to the directory that eclipse was started 

- * from.

- * </dd> 

- * <dd>

- *    -ws &lt;window system&gt;: sets the window system value

- * </dd>

- * </dl>

- */

-public class Main {

-	/**

-	 * Indicates whether this instance is running in debug mode.

-	 */

-	protected boolean debug = false;

-

-	/**

-	 * The location of the launcher to run.

-	 */

-	protected String bootLocation = null;

-

-	/**

-	 * The location of the install root

-	 */

-	protected String installLocation = null;

-

-	/**

-	 * The location of the configuration information for this instance

-	 */

-	protected String configurationLocation = null;

-

-	/**

-	 * The location of the configuration information in the install root

-	 */

-	protected String parentConfigurationLocation = null;

-

-	/**

-	 * The id of the bundle that will contain the framework to run.  Defaults to org.eclipse.osgi.

-	 */

-	protected String framework = OSGI;

-

-	/**

-	 * The extra development time class path entries.

-	 */

-	protected String devClassPath = null;

-

-	/**

-	 * Indicates whether this instance is running in development mode.

-	 */

-	protected boolean inDevelopmentMode = false;

-

-	private String exitData = null;

-	private String vm = null;

-	private String[] vmargs = null;

-	private String[] commands = null;

-

-	// splash handling

-	private String showSplash = null;

-	private String endSplash = null;

-	private boolean initialize = false;

-	private Process showProcess = null;

-	private boolean splashDown = false;

-	private final Runnable endSplashHandler = new Runnable() {

-		public void run() {

-			takeDownSplash();

-		}

-	};

-

-	// command line args

-	private static final String FRAMEWORK = "-framework"; //$NON-NLS-1$

-	private static final String INSTALL = "-install"; //$NON-NLS-1$

-	private static final String INITIALIZE = "-initialize"; //$NON-NLS-1$

-	private static final String VM = "-vm"; //$NON-NLS-1$

-	private static final String VMARGS = "-vmargs"; //$NON-NLS-1$

-	private static final String DEBUG = "-debug"; //$NON-NLS-1$

-	private static final String DEV = "-dev"; //$NON-NLS-1$

-	private static final String CONFIGURATION = "-configuration"; //$NON-NLS-1$

-	private static final String EXITDATA = "-exitdata"; //$NON-NLS-1$

-	private static final String NOSPLASH = "-nosplash"; //$NON-NLS-1$

-	private static final String SHOWSPLASH = "-showsplash"; //$NON-NLS-1$

-	private static final String ENDSPLASH = "-endsplash"; //$NON-NLS-1$

-	private static final String SPLASH_IMAGE = "splash.bmp"; //$NON-NLS-1$

-

-	private static final String OSGI = "org.eclipse.osgi"; //$NON-NLS-1$

-	private static final String STARTER = "org.eclipse.core.runtime.adaptor.EclipseStarter"; //$NON-NLS-1$

-	private static final String PLATFORM_URL = "platform:/base/"; //$NON-NLS-1$

-

-	// constants: configuration file location

-	private static final String CONFIG_DIR = "configuration/"; //$NON-NLS-1$

-	private static final String CONFIG_FILE = "config.ini"; //$NON-NLS-1$

-	private static final String CONFIG_FILE_TEMP_SUFFIX = ".tmp"; //$NON-NLS-1$

-	private static final String CONFIG_FILE_BAK_SUFFIX = ".bak"; //$NON-NLS-1$

-	private static final String ECLIPSE = "eclipse"; //$NON-NLS-1$

-	private static final String PRODUCT_SITE_MARKER = ".eclipseproduct"; //$NON-NLS-1$

-	private static final String PRODUCT_SITE_ID = "id"; //$NON-NLS-1$

-	private static final String PRODUCT_SITE_VERSION = "version"; //$NON-NLS-1$

-

-	// constants: System property keys and/or configuration file elements

-	private static final String PROP_USER_HOME = "user.home"; //$NON-NLS-1$

-	private static final String PROP_USER_DIR = "user.dir"; //$NON-NLS-1$

-	private static final String PROP_INSTALL_AREA = "osgi.install.area"; //$NON-NLS-1$

-	private static final String PROP_CONFIG_AREA = "osgi.configuration.area"; //$NON-NLS-1$

-	private static final String PROP_BASE_CONFIG_AREA = "osgi.baseConfiguration.area"; //$NON-NLS-1$

-	private static final String PROP_SHARED_CONFIG_AREA = "osgi.sharedConfiguration.area"; //$NON-NLS-1$

-	private static final String PROP_CONFIG_CASCADED = "osgi.configuration.cascaded"; //$NON-NLS-1$

-	private static final String PROP_FRAMEWORK = "osgi.framework"; //$NON-NLS-1$

-	private static final String PROP_SPLASHPATH = "osgi.splashPath"; //$NON-NLS-1$

-	private static final String PROP_SPLASHLOCATION = "osgi.splashLocation"; //$NON-NLS-1$

-	private static final String PROP_CLASSPATH = "osgi.frameworkClassPath"; //$NON-NLS-1$

-	private static final String PROP_LOGFILE = "osgi.logfile"; //$NON-NLS-1$

-	private static final String PROP_EOF = "eof"; //$NON-NLS-1$

-

-	private static final String PROP_EXITCODE = "eclipse.exitcode"; //$NON-NLS-1$

-	private static final String PROP_EXITDATA = "eclipse.exitdata"; //$NON-NLS-1$

-	private static final String PROP_VM = "eclipse.vm"; //$NON-NLS-1$

-	private static final String PROP_VMARGS = "eclipse.vmargs"; //$NON-NLS-1$

-	private static final String PROP_COMMANDS = "eclipse.commands"; //$NON-NLS-1$

-

-	// Data mode constants for user, configuration and data locations.

-	private static final String NONE = "@none"; //$NON-NLS-1$

-	private static final String NO_DEFAULT = "@noDefault"; //$NON-NLS-1$

-	private static final String USER_HOME = "@user.home"; //$NON-NLS-1$

-	private static final String USER_DIR = "@user.dir"; //$NON-NLS-1$

-

-	// log file handling

-	protected static final String SESSION = "!SESSION"; //$NON-NLS-1$

-	protected static final String ENTRY = "!ENTRY"; //$NON-NLS-1$

-	protected static final String MESSAGE = "!MESSAGE"; //$NON-NLS-1$

-	protected static final String STACK = "!STACK"; //$NON-NLS-1$

-	protected static final int ERROR = 4;

-	protected static final String PLUGIN_ID = "org.eclipse.core.launcher"; //$NON-NLS-1$

-	protected File logFile = null;

-	protected BufferedWriter log = null;

-	protected boolean newSession = true;

-

-	/**

-	 * Executes the launch.

-	 * 

-	 * @return the result of performing the launch

-	 * @param args command-line arguments

-	 * @exception Exception thrown if a problem occurs during the launch

-	 */

-	protected Object basicRun(String[] args) throws Exception {

-		System.getProperties().setProperty("eclipse.debug.startupTime", Long.toString(System.currentTimeMillis())); //$NON-NLS-1$

-		commands = args;

-		String[] passThruArgs = processCommandLine(args);

-		setupVMProperties();

-		processConfiguration();

-		// need to ensure that getInstallLocation is called at least once to initialize the value.

-		// Do this AFTER processing the configuration to allow the configuration to set

-		// the install location.  

-		getInstallLocation();

-

-		// locate boot plugin (may return -dev mode variations)

-		URL[] bootPath = getBootPath(bootLocation);

-

-		// splash handling is done here, because the default case needs to know

-		// the location of the boot plugin we are going to use

-		handleSplash(bootPath);

-

-		// load the BootLoader and startup the platform

-		URLClassLoader loader = new URLClassLoader(bootPath, null);

-		Class clazz = loader.loadClass(STARTER);

-		Method method = clazz.getDeclaredMethod("run", new Class[] {String[].class, Runnable.class}); //$NON-NLS-1$

-		try {

-			return method.invoke(clazz, new Object[] {passThruArgs, endSplashHandler});

-		} catch (InvocationTargetException e) {

-			if (e.getTargetException() instanceof Error)

-				throw (Error) e.getTargetException();

-			else if (e.getTargetException() instanceof Exception)

-				throw (Exception) e.getTargetException();

-			else

-				//could be a subclass of Throwable!

-				throw e;

-		}

-	}

-

-	/**

-	 * Returns a string representation of the given URL String.  This converts

-	 * escaped sequences (%..) in the URL into the appropriate characters.

-	 * NOTE: due to class visibility there is a copy of this method

-	 *       in InternalBootLoader

-	 */

-	private String decode(String urlString) {

-		//try to use Java 1.4 method if available

-		try {

-			Class clazz = URLDecoder.class;

-			Method method = clazz.getDeclaredMethod("decode", new Class[] {String.class, String.class}); //$NON-NLS-1$

-			//first encode '+' characters, because URLDecoder incorrectly converts 

-			//them to spaces on certain class library implementations.

-			if (urlString.indexOf('+') >= 0) {

-				int len = urlString.length();

-				StringBuffer buf = new StringBuffer(len);

-				for (int i = 0; i < len; i++) {

-					char c = urlString.charAt(i);

-					if (c == '+')

-						buf.append("%2B");

-					//$NON-NLS-1$

-					else

-						buf.append(c);

-				}

-				urlString = buf.toString();

-			}

-			Object result = method.invoke(null, new Object[] {urlString, "UTF-8"}); //$NON-NLS-1$

-			if (result != null)

-				return (String) result;

-		} catch (Exception e) {

-			//JDK 1.4 method not found -- fall through and decode by hand

-		}

-		//decode URL by hand

-		boolean replaced = false;

-		byte[] encodedBytes = urlString.getBytes();

-		int encodedLength = encodedBytes.length;

-		byte[] decodedBytes = new byte[encodedLength];

-		int decodedLength = 0;

-		for (int i = 0; i < encodedLength; i++) {

-			byte b = encodedBytes[i];

-			if (b == '%') {

-				byte enc1 = encodedBytes[++i];

-				byte enc2 = encodedBytes[++i];

-				b = (byte) ((hexToByte(enc1) << 4) + hexToByte(enc2));

-				replaced = true;

-			}

-			decodedBytes[decodedLength++] = b;

-		}

-		if (!replaced)

-			return urlString;

-		try {

-			return new String(decodedBytes, 0, decodedLength, "UTF-8"); //$NON-NLS-1$

-		} catch (UnsupportedEncodingException e) {

-			//use default encoding

-			return new String(decodedBytes, 0, decodedLength);

-		}

-	}

-

-	/**

-	 * Returns the result of converting a list of comma-separated tokens into an array

-	 * 

-	 * @return the array of string tokens

-	 * @param prop the initial comma-separated string

-	 */

-	private String[] getArrayFromList(String prop) {

-		if (prop == null || prop.trim().equals("")) //$NON-NLS-1$

-			return new String[0];

-		Vector list = new Vector();

-		StringTokenizer tokens = new StringTokenizer(prop, ","); //$NON-NLS-1$

-		while (tokens.hasMoreTokens()) {

-			String token = tokens.nextToken().trim();

-			if (!token.equals("")) //$NON-NLS-1$

-				list.addElement(token);

-		}

-		return list.isEmpty() ? new String[0] : (String[]) list.toArray(new String[list.size()]);

-	}

-

-	/**

-	 * Returns the <code>URL</code>-based class path describing where the boot classes

-	 * are located when running in development mode.

-	 * 

-	 * @return the url-based class path

-	 * @param base the base location

-	 * @exception MalformedURLException if a problem occurs computing the class path

-	 */

-	private URL[] getDevPath(URL base) throws IOException {

-		String devBase = base.toExternalForm();

-		ArrayList result = new ArrayList(5);

-		if (inDevelopmentMode)

-			addDevEntries(devBase, result); //$NON-NLS-1$

-		//The jars from the base always need to be added, even when running in dev mode (bug 46772)

-		addBaseJars(devBase, result);

-		return (URL[]) result.toArray(new URL[result.size()]);

-	}

-

-	private void addBaseJars(String devBase, ArrayList result) throws IOException {

-		String baseJarList = System.getProperty(PROP_CLASSPATH);

-		if (baseJarList == null) {

-			Properties defaults = loadProperties(devBase + "eclipse.properties");

-			baseJarList = defaults.getProperty(PROP_CLASSPATH);

-			if (baseJarList == null)

-				throw new IOException("Unable to initialize " + PROP_CLASSPATH);

-			System.getProperties().put(PROP_CLASSPATH, baseJarList);

-		}

-		String[] baseJars = getArrayFromList(baseJarList);

-		for (int i = 0; i < baseJars.length; i++) {

-			String string = baseJars[i];

-			try {

-				URL url = new URL(string);

-				addEntry(url, result);

-			} catch (MalformedURLException e) {

-				addEntry(new URL(devBase + string), result);

-			}

-		}

-	}

-

-	private void addEntry(URL url, List result) {

-		if (new File(url.getFile()).exists())

-			result.add(url);

-	}

-

-	private void addDevEntries(String devBase, List result) throws MalformedURLException {

-		String[] locations = getArrayFromList(devClassPath);

-		for (int i = 0; i < locations.length; i++) {

-			String spec = devBase + locations[i];

-			char lastChar = spec.charAt(spec.length() - 1);

-			URL url;

-			if ((spec.endsWith(".jar") || (lastChar == '/' || lastChar == '\\'))) //$NON-NLS-1$

-				url = new URL(spec);

-			else

-				url = new URL(spec + "/"); //$NON-NLS-1$

-			addEntry(url, result);

-		}

-	}

-

-	/**

-	 * Returns the <code>URL</code>-based class path describing where the boot classes are located.

-	 * 

-	 * @return the url-based class path

-	 * @param base the base location

-	 * @exception MalformedURLException if a problem occurs computing the class path

-	 */

-	private URL[] getBootPath(String base) throws IOException {

-		URL url = null;

-		if (base != null) {

-			url = new URL(base);

-		} else {

-			// search in the root location

-			url = new URL(getInstallLocation());

-			String path = url.getFile() + "plugins"; //$NON-NLS-1$

-			path = searchFor(framework, path);

-			if (path == null)

-				throw new RuntimeException("Could not find framework"); //$NON-NLS-1$

-			// add on any dev path elements

-			url = new URL(url.getProtocol(), url.getHost(), url.getPort(), path);

-		}

-		if (System.getProperty(PROP_FRAMEWORK) == null)

-			System.getProperties().put(PROP_FRAMEWORK, url.toExternalForm());

-		if (debug)

-			System.out.println("Framework located:\n    " + url.toExternalForm());

-		URL[] result = getDevPath(url);

-		if (debug) {

-			System.out.println("Framework classpath:"); //$NON-NLS-1$

-			for (int i = 0; i < result.length; i++)

-				System.out.println("    " + result[i].toExternalForm()); //$NON-NLS-1$

-		}

-		return result;

-	}

-

-	/**

-	 * Searches for the given target directory starting in the "plugins" subdirectory

-	 * of the given location.  If one is found then this location is returned; 

-	 * otherwise an exception is thrown.

-	 * 

-	 * @return the location where target directory was found

-	 * @param start the location to begin searching

-	 */

-	private String searchFor(final String target, String start) {

-		FileFilter filter = new FileFilter() {

-			public boolean accept(File candidate) {

-				return candidate.isDirectory() && (candidate.getName().equals(target) || candidate.getName().startsWith(target + "_")); //$NON-NLS-1$

-			}

-		};

-		File[] candidates = new File(start).listFiles(filter); //$NON-NLS-1$

-		if (candidates == null)

-			return null;

-		String result = null;

-		Object maxVersion = null;

-		for (int i = 0; i < candidates.length; i++) {

-			String name = candidates[i].getName();

-			String version = ""; //$NON-NLS-1$ // Note: directory with version suffix is always > than directory without version suffix

-			int index = name.indexOf('_');

-			if (index != -1)

-				version = name.substring(index + 1);

-			Object currentVersion = getVersionElements(version);

-			if (maxVersion == null) {

-				result = candidates[i].getAbsolutePath();

-				maxVersion = currentVersion;

-			} else {

-				if (compareVersion((Object[]) maxVersion, (Object[]) currentVersion) < 0) {

-					result = candidates[i].getAbsolutePath();

-					maxVersion = currentVersion;

-				}

-			}

-		}

-		if (result == null)

-			return null;

-		return result.replace(File.separatorChar, '/') + "/"; //$NON-NLS-1$

-	}

-

-	/**

-	 * Compares version strings. 

-	 * @return result of comparison, as integer;

-	 * <code><0</code> if left < right;

-	 * <code>0</code> if left == right;

-	 * <code>>0</code> if left > right;

-	 */

-	private int compareVersion(Object[] left, Object[] right) {

-

-		int result = ((Integer) left[0]).compareTo((Integer) right[0]); // compare major

-		if (result != 0)

-			return result;

-

-		result = ((Integer) left[1]).compareTo((Integer) right[1]); // compare minor

-		if (result != 0)

-			return result;

-

-		result = ((Integer) left[2]).compareTo((Integer) right[2]); // compare service

-		if (result != 0)

-			return result;

-

-		return ((String) left[3]).compareTo((String) right[3]); // compare qualifier

-	}

-

-	/**

-	 * Do a quick parse of version identifier so its elements can be correctly compared.

-	 * If we are unable to parse the full version, remaining elements are initialized

-	 * with suitable defaults.

-	 * @return an array of size 4; first three elements are of type Integer (representing

-	 * major, minor and service) and the fourth element is of type String (representing

-	 * qualifier). Note, that returning anything else will cause exceptions in the caller.

-	 */

-	private Object[] getVersionElements(String version) {

-		Object[] result = {new Integer(0), new Integer(0), new Integer(0), ""}; //$NON-NLS-1$

-		StringTokenizer t = new StringTokenizer(version, "."); //$NON-NLS-1$

-		String token;

-		int i = 0;

-		while (t.hasMoreTokens() && i < 4) {

-			token = t.nextToken();

-			if (i < 3) {

-				// major, minor or service ... numeric values

-				try {

-					result[i++] = new Integer(token);

-				} catch (Exception e) {

-					// invalid number format - use default numbers (0) for the rest

-					break;

-				}

-			} else {

-				// qualifier ... string value

-				result[i++] = token;

-			}

-		}

-		return result;

-	}

-

-	private URL buildURL(String spec, boolean trailingSlash) {

-		if (spec == null)

-			return null;

-		// if the spec is a file: url then see if it is absolute.  If not, break it up

-		// and make it absolute.  

-		if (spec.startsWith("file:")) {

-			File file = new File(spec.substring(5));

-			if (!file.isAbsolute())

-				spec = "file:" + file.getAbsolutePath();

-		}

-		try {

-			spec = adjustTrailingSlash(spec, true);

-			return new URL(spec);

-		} catch (MalformedURLException e) {

-			if (spec.startsWith("file:"))

-				return null;

-			return buildURL("file:" + spec, trailingSlash);

-		}

-	}

-

-	private URL buildLocation(String property, URL defaultLocation, String userDefaultAppendage) {

-		URL result = null;

-		String location = System.getProperty(property);

-		System.getProperties().remove(property);

-		// if the instance location is not set, predict where the workspace will be and 

-		// put the instance area inside the workspace meta area.

-		try {

-			if (location == null)

-				result = defaultLocation;

-			else if (location.equalsIgnoreCase(NONE))

-				return null;

-			else if (location.equalsIgnoreCase(NO_DEFAULT))

-				result = buildURL(location, true);

-			else {

-				if (location.equalsIgnoreCase(USER_HOME))

-					location = computeDefaultUserAreaLocation(userDefaultAppendage);

-				if (location.equalsIgnoreCase(USER_DIR))

-					location = new File(System.getProperty(PROP_USER_DIR), userDefaultAppendage).getAbsolutePath();

-				result = buildURL(location, true);

-			}

-		} finally {

-			if (result != null)

-				System.getProperties().put(property, result.toExternalForm());

-		}

-		return result;

-	}

-

-	/** 

-	 * Retuns the default file system path for the configuration location.

-	 * By default the configuration information is in the installation directory

-	 * if this is writeable.  Otherwise it is located somewhere in the user.home

-	 * area relative to the current product. 

-	 * @return the default file system path for the configuration information

-	 */

-	private String computeDefaultConfigurationLocation() {

-		// 1) We store the config state relative to the 'eclipse' directory if possible

-		// 2) If this directory is read-only 

-		//    we store the state in <user.home>/.eclipse/<application-id>_<version> where <user.home> 

-		//    is unique for each local user, and <application-id> is the one 

-		//    defined in .eclipseproduct marker file. If .eclipseproduct does not

-		//    exist, use "eclipse" as the application-id.

-

-		String install = getInstallLocation();

-		// TODO a little dangerous here.  Basically we have to assume that it is a file URL.

-		if (install.startsWith("file:")) {

-			File installDir = new File(install.substring(5));

-			if (installDir.canWrite())

-				return installDir.getAbsolutePath() + File.separator + CONFIG_DIR;

-		}

-		// We can't write in the eclipse install dir so try for some place in the user's home dir

-		return computeDefaultUserAreaLocation(CONFIG_DIR);

-	}

-

-	/**

-	 * Returns a files system path for an area in the user.home region related to the

-	 * current product.  The given appendage is added to this base location

-	 * @param pathAppendage the path segments to add to computed base

-	 * @return a file system location in the user.home area related the the current

-	 *   product and the given appendage

-	 */

-	private String computeDefaultUserAreaLocation(String pathAppendage) {

-		//    we store the state in <user.home>/.eclipse/<application-id>_<version> where <user.home> 

-		//    is unique for each local user, and <application-id> is the one 

-		//    defined in .eclipseproduct marker file. If .eclipseproduct does not

-		//    exist, use "eclipse" as the application-id.

-		URL installURL = buildURL(getInstallLocation(), true);

-		if (installURL == null)

-			return null;

-		File installDir = new File(installURL.getPath());

-		String appName = "." + ECLIPSE; //$NON-NLS-1$

-		File eclipseProduct = new File(installDir, PRODUCT_SITE_MARKER);

-		if (eclipseProduct.exists()) {

-			Properties props = new Properties();

-			try {

-				props.load(new FileInputStream(eclipseProduct));

-				String appId = props.getProperty(PRODUCT_SITE_ID);

-				if (appId == null || appId.trim().length() == 0)

-					appId = ECLIPSE;

-				String appVersion = props.getProperty(PRODUCT_SITE_VERSION);

-				if (appVersion == null || appVersion.trim().length() == 0)

-					appVersion = ""; //$NON-NLS-1$

-				appName += File.separator + appId + "_" + appVersion; //$NON-NLS-1$

-			} catch (IOException e) {

-				// Do nothing if we get an exception.  We will default to a standard location 

-				// in the user's home dir.

-			}

-		}

-		String userHome = System.getProperty(PROP_USER_HOME);

-		return new File(userHome, appName + "/" + pathAppendage).getAbsolutePath(); //$NON-NLS-1$

-	}

-

-	/**

-	 * Runs this launcher with the arguments specified in the given string.

-	 * 

-	 * @param argString the arguments string

-	 * @exception Exception thrown if a problem occurs during launching

-	 */

-	public static void main(String argString) {

-		Vector list = new Vector(5);

-		for (StringTokenizer tokens = new StringTokenizer(argString, " "); tokens.hasMoreElements();)

-			//$NON-NLS-1$

-			list.addElement(tokens.nextElement());

-		main((String[]) list.toArray(new String[list.size()]));

-	}

-

-	/**

-	 * Runs the platform with the given arguments.  The arguments must identify

-	 * an application to run (e.g., <code>-application com.example.application</code>).

-	 * After running the application <code>System.exit(N)</code> is executed.

-	 * The value of N is derived from the value returned from running the application.

-	 * If the application's return value is an <code>Integer</code>, N is this value.

-	 * In all other cases, N = 0.

-	 * <p>

-	 * Clients wishing to run the platform without a following <code>System.exit</code>

-	 * call should use <code>run()</code>.

-	 * </p>

-	 * 

-	 * @param args the command line arguments

-	 * @see #run

-	 */

-	public static void main(String[] args) {

-		int result = new Main().run(args);

-		System.exit(result);

-	}

-

-	/**

-	 * Runs the platform with the given arguments.  The arguments must identify

-	 * an application to run (e.g., <code>-application com.example.application</code>).

-	 * Returns the value returned from running the application.

-	 * If the application's return value is an <code>Integer</code>, N is this value.

-	 * In all other cases, N = 0.

-	 *

-	 * @param args the command line arguments

-	 */

-	public int run(String[] args) {

-		int result = 0;

-		try {

-			basicRun(args);

-			String exitCode = System.getProperty(PROP_EXITCODE);

-			try {

-				result = exitCode == null ? 0 : Integer.parseInt(exitCode);

-			} catch (NumberFormatException e) {

-				result = 17;

-			}

-		} catch (Throwable e) {

-			// try and take down the splash screen.

-			takeDownSplash();

-			// only log the exceptions if they have not been caught by the 

-			// EclipseStarter (i.e., if the exitCode is not 13) 

-			if (!"13".equals(System.getProperty(PROP_EXITCODE))) {

-				log("Exception launching the Eclipse Platform:"); //$NON-NLS-1$

-				log(e);

-				String message = "An error has occurred"; //$NON-NLS-1$

-				if (logFile == null)

-					message += " and could not be logged: \n" + e.getMessage(); //$NON-NLS-1$

-				else

-					message += ".  See the log file\n" + logFile.getAbsolutePath(); //$NON-NLS-1$

-				System.getProperties().put(PROP_EXITDATA, message);

-			}

-			// Return "unlucky" 13 as the exit code. The executable will recognize

-			// this constant and display a message to the user telling them that

-			// there is information in their log file.

-			result = 13;

-		}

-		// Return an int exit code and ensure the system property is set.

-		System.getProperties().put(PROP_EXITCODE, Integer.toString(result));

-		setExitData();

-		return result;

-	}

-

-	private void setExitData() {

-		String data = System.getProperty(PROP_EXITDATA);

-		if (exitData == null || data == null)

-			return;

-		runCommand(exitData, data, " " + EXITDATA);

-	}

-

-	/**

-	 * Processes the command line arguments.  The general principle is to NOT

-	 * consume the arguments and leave them to be processed by Eclipse proper.

-	 * There are a few args which are directed towards main() and a few others which

-	 * we need to know about.  Very few should actually be consumed here.

-	 * 

-	 * @return the arguments to pass through to the launched application

-	 * @param args the command line arguments

-	 */

-	protected String[] processCommandLine(String[] args) {

-		// TODO temporarily handle the fact that PDE appends the -showsplash <timeout> onto 

-		// the *end* of the command line.  This interferes with the -vmargs arg.  Process 

-		// -showsplash now and remove it from the end.  This code should be removed soon.

-		int end = args.length;

-		if (args.length > 1 && args[end - 2].equalsIgnoreCase(SHOWSPLASH)) {

-			showSplash = args[end - 1];

-			end -= 2;

-		}

-		String[] arguments = new String[end];

-		System.arraycopy(args, 0, arguments, 0, end);

-		int[] configArgs = new int[arguments.length];

-		configArgs[0] = -1; // need to initialize the first element to something that could not be an index.

-		int configArgIndex = 0;

-		for (int i = 0; i < arguments.length; i++) {

-			boolean found = false;

-			// check for args without parameters (i.e., a flag arg)

-			// check if debug should be enabled for the entire platform

-			if (arguments[i].equalsIgnoreCase(DEBUG)) {

-				debug = true;

-				// passed thru this arg (i.e., do not set found = true)

-				continue;

-			}

-

-			// look for and consume the nosplash directive.  This supercedes any

-			// -showsplash command that might be present.

-			if (arguments[i].equalsIgnoreCase(NOSPLASH)) {

-				splashDown = true;

-				found = true;

-			}

-

-			// check if this is initialization pass

-			if (arguments[i].equalsIgnoreCase(INITIALIZE)) {

-				initialize = true;

-				// passed thru this arg (i.e., do not set found = true)

-				continue;

-			}

-

-			// check if development mode should be enabled for the entire platform

-			// If this is the last arg or there is a following arg (i.e., arg+1 has a leading -), 

-			// simply enable development mode.  Otherwise, assume that that the following arg is

-			// actually some additional development time class path entries.  This will be processed below.

-			if (arguments[i].equalsIgnoreCase(DEV) && ((i + 1 == arguments.length) || ((i + 1 < arguments.length) && (arguments[i + 1].startsWith("-"))))) { //$NON-NLS-1$

-				inDevelopmentMode = true;

-				// do not mark the arg as found so it will be passed through

-				continue;

-			}

-

-			// done checking for args.  Remember where an arg was found 

-			if (found) {

-				configArgs[configArgIndex++] = i;

-				continue;

-			}

-

-			// look for the VM args arg.  We have to do that before looking to see

-			// if the next element is a -arg as the thing following -vmargs may in

-			// fact be another -arg.

-			if (arguments[i].equalsIgnoreCase(VMARGS)) {

-				// consume the -vmargs arg itself

-				arguments[i] = null;

-				i++;

-				vmargs = new String[arguments.length - i];

-				for (int j = 0; i < arguments.length; i++) {

-					vmargs[j++] = arguments[i];

-					arguments[i] = null;

-				}

-				continue;

-			}

-

-			// check for args with parameters. If we are at the last argument or if the next one

-			// has a '-' as the first character, then we can't have an arg with a parm so continue.

-			if (i == arguments.length - 1 || arguments[i + 1].startsWith("-")) //$NON-NLS-1$

-				continue;

-			String arg = arguments[++i];

-

-			// look for the development mode and class path entries.  

-			if (arguments[i - 1].equalsIgnoreCase(DEV)) {

-				inDevelopmentMode = true;

-				devClassPath = processDevArg(arg);

-				continue;

-			}

-

-			// look for the framework to run

-			if (arguments[i - 1].equalsIgnoreCase(FRAMEWORK)) {

-				framework = arg;

-				found = true;

-			}

-

-			// look for explicitly set install root

-			// Consume the arg here to ensure that the launcher and Eclipse get the 

-			// same value as each other.  

-			if (arguments[i - 1].equalsIgnoreCase(INSTALL)) {

-				System.getProperties().put(PROP_INSTALL_AREA, arg);

-				found = true;

-			}

-

-			// look for the configuration to use.  

-			// Consume the arg here to ensure that the launcher and Eclipse get the 

-			// same value as each other.  

-			if (arguments[i - 1].equalsIgnoreCase(CONFIGURATION)) {

-				System.getProperties().put(PROP_CONFIG_AREA, arg);

-				found = true;

-			}

-

-			// look for the command to use to set exit data in the launcher

-			if (arguments[i - 1].equalsIgnoreCase(EXITDATA)) {

-				exitData = arg;

-				found = true;

-			}

-

-			// look for the command to use to show the splash screen

-			if (arguments[i - 1].equalsIgnoreCase(SHOWSPLASH)) {

-				showSplash = arg;

-				found = true;

-			}

-

-			// look for the command to use to end the splash screen

-			if (arguments[i - 1].equalsIgnoreCase(ENDSPLASH)) {

-				endSplash = arg;

-				found = true;

-			}

-

-			// look for the VM location arg

-			if (arguments[i - 1].equalsIgnoreCase(VM)) {

-				vm = arg;

-				found = true;

-			}

-

-			// done checking for args.  Remember where an arg was found 

-			if (found) {

-				configArgs[configArgIndex++] = i - 1;

-				configArgs[configArgIndex++] = i;

-			}

-		}

-		// remove all the arguments consumed by this argument parsing

-		if (configArgIndex == 0)

-			return arguments;

-		String[] passThruArgs = new String[arguments.length - configArgIndex - (vmargs == null ? 0 : vmargs.length + 1)];

-		configArgIndex = 0;

-		int j = 0;

-		for (int i = 0; i < arguments.length; i++) {

-			if (i == configArgs[configArgIndex])

-				configArgIndex++;

-			else if (arguments[i] != null)

-				passThruArgs[j++] = arguments[i];

-		}

-		return passThruArgs;

-	}

-

-	private String processDevArg(String arg) {

-		if (arg == null)

-			return null;

-		try {

-			URL location = new URL(arg);

-			Properties props = load(location, null);

-			String result = props.getProperty("org.eclipse.osgi");

-			return result == null ? props.getProperty("*") : result;

-		} catch (MalformedURLException e) {

-			// the arg was not a URL so use it as is.

-			return arg;

-		} catch (IOException e) {

-			// TODO consider logging here

-			return null;

-		}

-	}

-

-	private String getConfigurationLocation() {

-		if (configurationLocation != null)

-			return configurationLocation;

-		URL result = buildLocation(PROP_CONFIG_AREA, null, CONFIG_DIR);

-		if (result == null)

-			result = buildURL(computeDefaultConfigurationLocation(), true);

-		if (result == null)

-			return null;

-		configurationLocation = adjustTrailingSlash(result.toExternalForm(), true);

-		System.getProperties().put(PROP_CONFIG_AREA, configurationLocation);

-		if (debug)

-			System.out.println("Configuration location:\n    " + configurationLocation);

-		return configurationLocation;

-	}

-

-	private void processConfiguration() {

-		// if the configuration area is not already defined, discover the config area by

-		// trying to find a base config area.  This is either defined in a system property or

-		// is computed relative to the install location.

-		// Note that the config info read here is only used to determine a value 

-		// for the user configuration area

-		URL baseConfigurationLocation = null;

-		Properties baseConfiguration = null;

-		if (System.getProperty(PROP_CONFIG_AREA) == null) {

-			String baseLocation = System.getProperty(PROP_BASE_CONFIG_AREA);

-			if (baseLocation != null)

-				// here the base config cannot have any symbolic (e..g, @xxx) entries.  It must just

-				// point to the config file.

-				baseConfigurationLocation = buildURL(baseLocation, true);

-			if (baseConfigurationLocation == null)

-				// here we access the install location but this is very early.  This case will only happen if

-				// the config area is not set and the base config area is not set (or is bogus).

-				// In this case we compute based on the install location.

-				baseConfigurationLocation = buildURL(getInstallLocation() + CONFIG_DIR, true);

-			baseConfiguration = loadConfiguration(baseConfigurationLocation.toExternalForm());

-			if (baseConfiguration != null) {

-				// if the base sets the install area then use that value if the property.  We know the 

-				// property is not already set.

-				String location = baseConfiguration.getProperty(PROP_CONFIG_AREA);

-				if (location != null)

-					System.getProperties().put(PROP_CONFIG_AREA, location);

-				// if the base sets the install area then use that value if the property is not already set.

-				// This helps in selfhosting cases where you cannot easily compute the install location

-				// from the code base.

-				location = baseConfiguration.getProperty(PROP_INSTALL_AREA);

-				if (location != null && System.getProperty(PROP_INSTALL_AREA) == null)

-					System.getProperties().put(PROP_INSTALL_AREA, location);

-			}

-		}

-

-		// Now we know where the base configuration is supposed to be.  Go ahead and load

-		// it and merge into the System properties.  Then, if cascaded, read the parent configuration

-		// Note that the parent may or may not be the same parent as we read above since the 

-		// base can define its parent.  The first parent we read was either defined by the user

-		// on the command line or was the one in the install dir.  

-		// if the config or parent we are about to read is the same as the base config we read above,

-		// just reuse the base

-		Properties configuration = baseConfiguration;

-		if (configuration == null || !getConfigurationLocation().equals(baseConfigurationLocation.toExternalForm()))

-			configuration = loadConfiguration(getConfigurationLocation());

-		mergeProperties(System.getProperties(), configuration);

-		if ("false".equalsIgnoreCase(System.getProperty(PROP_CONFIG_CASCADED)))

-			// if we are not cascaded then remvoe the parent property even if it was set.

-			System.getProperties().remove(PROP_SHARED_CONFIG_AREA);

-		else {

-			URL sharedConfigURL = buildLocation(PROP_SHARED_CONFIG_AREA, null, CONFIG_DIR);

-			if (sharedConfigURL == null)

-				// here we access the install location but this is very early.  This case will only happen if

-				// the config is cascaded and the parent config area is not set (or is bogus).

-				// In this case we compute based on the install location.  Note that we should not 

-				// precompute this value and use it as the default in the call to buildLocation as it will

-				// unnecessarily bind the install location.

-				sharedConfigURL = buildURL(getInstallLocation() + CONFIG_DIR, true);

-

-			// if the parent location is different from the config location, read it too.

-			if (sharedConfigURL != null) {

-				String location = sharedConfigURL.toExternalForm();

-				if (location.equals(getConfigurationLocation()))

-					// remove the property to show that we do not have a parent.

-					System.getProperties().remove(PROP_SHARED_CONFIG_AREA);

-				else {

-					// if the parent we are about to read is the same as the base config we read above,

-					// just reuse the base

-					configuration = baseConfiguration;

-					if (!sharedConfigURL.equals(baseConfigurationLocation))

-						configuration = loadConfiguration(location);

-					mergeProperties(System.getProperties(), configuration);

-					System.getProperties().put(PROP_SHARED_CONFIG_AREA, location);

-					if (debug)

-						System.out.println("Shared configuration location:\n    " + location);

-				}

-			}

-		}

-		// setup the path to the framework

-		String urlString = System.getProperty(PROP_FRAMEWORK, null);

-		if (urlString != null) {

-			urlString = adjustTrailingSlash(urlString, true);

-			System.getProperties().put(PROP_FRAMEWORK, urlString);

-			bootLocation = resolve(urlString);

-		}

-	}

-

-	/**

-	 * Returns url of the location this class was loaded from

-	 */

-	private String getInstallLocation() {

-		if (installLocation != null)

-			return installLocation;

-

-		// value is not set so compute the default and set the value

-		installLocation = System.getProperty(PROP_INSTALL_AREA);

-		if (installLocation != null) {

-			URL location = buildURL(installLocation, true);

-			if (location == null)

-				throw new IllegalStateException("Install location is invalid: " + installLocation);

-			installLocation = location.toExternalForm();

-			System.getProperties().put(PROP_INSTALL_AREA, installLocation);

-			if (debug)

-				System.out.println("Install location:\n    " + installLocation);

-			return installLocation;

-		}

-

-		URL result = Main.class.getProtectionDomain().getCodeSource().getLocation();

-		String path = decode(result.getFile());

-		path = new File(path).getAbsolutePath().replace(File.separatorChar, '/');

-		// TODO need a better test for windows

-		// If on Windows then canonicalize the drive letter to be lowercase.

-		if (File.separatorChar == '\\')

-			if (Character.isUpperCase(path.charAt(0))) {

-				char[] chars = path.toCharArray();

-				chars[0] = Character.toLowerCase(chars[0]);

-				path = new String(chars);

-			}

-		if (path.endsWith(".jar")) //$NON-NLS-1$

-			path = path.substring(0, path.lastIndexOf("/") + 1); //$NON-NLS-1$

-		try {

-			installLocation = new URL(result.getProtocol(), result.getHost(), result.getPort(), path).toExternalForm();

-			System.getProperties().put(PROP_INSTALL_AREA, installLocation);

-		} catch (MalformedURLException e) {

-			// TODO Very unlikely case.  log here.  

-		}

-		if (debug)

-			System.out.println("Install location:\n    " + installLocation);

-		return installLocation;

-	}

-

-	/*

-	 * Load the given configuration file

-	 */

-	private Properties loadConfiguration(String url) {

-		Properties result = null;

-		url += CONFIG_FILE;

-		try {

-			if (debug)

-				System.out.print("Configuration file:\n    " + url.toString()); //$NON-NLS-1$

-			result = loadProperties(url);

-			if (debug)

-				System.out.println(" loaded"); //$NON-NLS-1$

-		} catch (IOException e) {

-			if (debug)

-				System.out.println(" not found or not read"); //$NON-NLS-1$

-		}

-		return result;

-	}

-

-	private Properties loadProperties(String location) throws IOException {

-		// try to load saved configuration file (watch for failed prior save())

-		URL url = buildURL(location, false);

-		if (url == null)

-			return null;

-		Properties result = null;

-		IOException originalException = null;

-		try {

-			result = load(url, null); // try to load config file

-		} catch (IOException e1) {

-			originalException = e1;

-			try {

-				result = load(url, CONFIG_FILE_TEMP_SUFFIX); // check for failures on save

-			} catch (IOException e2) {

-				try {

-					result = load(url, CONFIG_FILE_BAK_SUFFIX); // check for failures on save

-				} catch (IOException e3) {

-					throw originalException; // we tried, but no config here ...

-				}

-			}

-		}

-		return result;

-	}

-

-	/*

-	 * Load the configuration  

-	 */

-	private Properties load(URL url, String suffix) throws IOException {

-		// figure out what we will be loading

-		if (suffix != null && !suffix.equals("")) //$NON-NLS-1$

-			url = new URL(url.getProtocol(), url.getHost(), url.getPort(), url.getFile() + suffix);

-

-		// try to load saved configuration file

-		Properties props = new Properties();

-		InputStream is = null;

-		try {

-			is = url.openStream();

-			props.load(is);

-			// check to see if we have complete config file

-			if (!PROP_EOF.equals(props.getProperty(PROP_EOF)))

-				throw new IOException("Incomplete configuration file: " + url.toExternalForm()); //$NON-NLS-1$

-		} finally {

-			if (is != null)

-				try {

-					is.close();

-				} catch (IOException e) {

-					//ignore failure to close

-				}

-		}

-		return props;

-	}

-

-	/*

-	 * Handle splash screen.

-	 * We support 2 startup scenarios:

-	 * 

-	 * (1) the executable launcher put up the splash screen. In that

-	 *     scenario we are invoked with -endsplash command which is

-	 *     fully formed to take down the splash screen

-	 * 

-	 * (2) the executable launcher did not put up the splash screen,

-	 *     but invokes Eclipse with partially formed -showsplash command.

-	 *     In this scenario we determine which splash to display (based on 

-	 *     feature information) and then call -showsplash command. 

-	 * 

-	 * In both scenarios we pass a handler (Runnable) to the platform.

-	 * The handler is called as a result of the launched application calling

-	 * Platform.endSplash(). In the first scenario this results in the

-	 * -endsplash command being executed. In the second scenarios this

-	 * results in the process created as a result of the -showsplash command

-	 * being destroyed.

-	 * 

-	 * @param bootPath search path for the boot plugin

-	 */

-	private void handleSplash(URL[] defaultPath) {

-		// run without splash if we are initializing or nosplash 

-		// was specified (splashdown = true)

-		if (initialize || splashDown) {

-			showSplash = null;

-			endSplash = null;

-			return;

-		}

-

-		// if -endsplash is specified, use it and ignore any -showsplash command

-		if (endSplash != null) {

-			showSplash = null;

-			return;

-		}

-

-		// check if we are running without a splash screen

-		if (showSplash == null)

-			return;

-

-		// determine the splash location

-		String location = getSplashLocation(defaultPath);

-		if (debug)

-			System.out.println("Splash location:\n    " + location); //$NON-NLS-1$

-		if (location == null)

-			return;

-		showProcess = runCommand(showSplash, location, " " + SHOWSPLASH); //$NON-NLS-1$

-	}

-

-	private Process runCommand(String command, String data, String separator) {

-		// Parse the showsplash command into its separate arguments.

-		// The command format is: 

-		//     <executable> -show <magicArg> [<splashPath>]

-		// If either the <executable> or the <splashPath> arguments contain a

-		// space, Runtime.getRuntime().exec( String ) will not work, even

-		// if both arguments are enclosed in double-quotes. The solution is to

-		// use the Runtime.getRuntime().exec( String[] ) method.

-		String[] args = new String[(data != null ? 4 : 3)];

-		// get the executable part

-		int sIndex = 0;

-		int eIndex = command.indexOf(separator);

-		if (eIndex == -1)

-			return null; // invalid command

-		args[0] = command.substring(sIndex, eIndex);

-		// get the command part

-		sIndex = eIndex + 1;

-		eIndex = command.indexOf(" ", sIndex); //$NON-NLS-1$

-		if (eIndex == -1)

-			return null; // invalid command

-		args[1] = command.substring(sIndex, eIndex);

-

-		// get the magic arg part

-		args[2] = command.substring(eIndex + 1);

-

-		// add on our data

-		if (data != null)

-			args[3] = data;

-

-		Process result = null;

-		try {

-			result = Runtime.getRuntime().exec(args);

-		} catch (Exception e) {

-			log("Exception running command: " + command); //$NON-NLS-1$

-			log(e);

-		}

-		return result;

-	}

-

-	/*

-	 * take down the splash screen. Try both take-down methods just in case

-	 * (only one should ever be set)

-	 */

-	protected void takeDownSplash() {

-		if (splashDown) // splash is already down

-			return;

-

-		// check if -endsplash was specified

-		if (endSplash != null) {

-			try {

-				Runtime.getRuntime().exec(endSplash);

-			} catch (Exception e) {

-				//ignore failure to end splash

-			}

-		}

-

-		// check if -showsplash was specified and executed

-		if (showProcess != null) {

-			showProcess.destroy();

-			showProcess = null;

-		}

-		splashDown = true;

-	}

-

-	/*

-	 * Return path of the splash image to use.  First search the defined splash path.

-	 * If that does not work, look for a default splash.  Currently the splash must be in the file system

-	 * so the return value here is the file system path.

-	 */

-	private String getSplashLocation(URL[] bootPath) {

-		String result = System.getProperty(PROP_SPLASHLOCATION);

-		if (result != null)

-			return result;

-		String splashPath = System.getProperty(PROP_SPLASHPATH);

-		if (splashPath != null) {

-			String[] entries = getArrayFromList(splashPath);

-			ArrayList path = new ArrayList(entries.length);

-			for (int i = 0; i < entries.length; i++) {

-				String entry = resolve(entries[i]);

-				if (entry == null || entry.startsWith("file:")) {

-					File entryFile = new File(entry.substring(5).replace('/', File.separatorChar));

-					entry = searchFor(entryFile.getName(), entryFile.getParent());

-					if (entry != null)

-						path.add(entry);

-				} else

-					log("Invalid splash path entry: " + entries[i]);

-			}

-			// see if we can get a splash given the splash path

-			result = searchForSplash((String[]) path.toArray(new String[path.size()]));

-			if (result != null) {

-				System.getProperties().put(PROP_SPLASHLOCATION, result);

-				return result;

-			}

-		}

-

-		// can't find it on the splashPath so look for a default splash

-		String temp = bootPath[0].getFile(); // take the first path element

-		temp = temp.replace('/', File.separatorChar);

-		int ix = temp.lastIndexOf("plugins" + File.separator); //$NON-NLS-1$

-		if (ix != -1) {

-			int pix = temp.indexOf(File.separator, ix + 8);

-			if (pix != -1) {

-				temp = temp.substring(0, pix);

-				result = searchForSplash(new String[] {temp});

-				if (result != null)

-					System.getProperties().put(PROP_SPLASHLOCATION, result);

-			}

-		}

-		return result;

-	}

-

-	/*

-	 * Do a locale-sensitive lookup of splash image

-	 */

-	private String searchForSplash(String[] searchPath) {

-		if (searchPath == null)

-			return null;

-

-		// get current locale information

-		String localePath = Locale.getDefault().toString().replace('_', File.separatorChar);

-

-		// search the specified path

-		while (localePath != null) {

-			String suffix;

-			if (localePath.equals("")) { //$NON-NLS-1$

-				// look for nl'ed splash image

-				suffix = SPLASH_IMAGE;

-			} else {

-				// look for default splash image

-				suffix = "nl" + File.separator + localePath + File.separator + SPLASH_IMAGE; //$NON-NLS-1$

-			}

-

-			// check for file in searchPath

-			for (int i = 0; i < searchPath.length; i++) {

-				String path = searchPath[i];

-				if (!path.endsWith(File.separator))

-					path += File.separator;

-				path += suffix;

-				File result = new File(path);

-				if (result.exists())

-					return result.getAbsolutePath(); // return the first match found [20063]

-			}

-

-			// try the next variant

-			if (localePath.equals("")) //$NON-NLS-1$

-				localePath = null;

-			else {

-				int ix = localePath.lastIndexOf(File.separator);

-				if (ix == -1)

-					localePath = ""; //$NON-NLS-1$

-				else

-					localePath = localePath.substring(0, ix);

-			}

-		}

-

-		// sorry, could not find splash image

-		return null;

-	}

-

-	/*

-	 * resolve platform:/base/ URLs

-	 */

-	private String resolve(String urlString) {

-		// handle the case where people mistakenly spec a refererence: url.

-		if (urlString.startsWith("reference:")) {

-			urlString = urlString.substring(10);

-			System.getProperties().put(PROP_FRAMEWORK, urlString);

-		}

-		if (urlString.startsWith(PLATFORM_URL)) {

-			String path = urlString.substring(PLATFORM_URL.length());

-			return getInstallLocation() + path;

-		} else

-			return urlString;

-	}

-

-	/*

-	 * Entry point for logging.

-	 */

-	private synchronized void log(Object obj) {

-		if (obj == null)

-			return;

-		try {

-			openLogFile();

-			try {

-				if (newSession) {

-					log.write(SESSION);

-					log.write(' ');

-					String timestamp = new Date().toString();

-					log.write(timestamp);

-					log.write(' ');

-					for (int i = SESSION.length() + timestamp.length(); i < 78; i++)

-						log.write('-');

-					log.newLine();

-					newSession = false;

-				}

-				write(obj);

-			} finally {

-				if (logFile == null) {

-					if (log != null)

-						log.flush();

-				} else

-					closeLogFile();

-			}

-		} catch (Exception e) {

-			System.err.println("An exception occurred while writing to the platform log:"); //$NON-NLS-1$

-			e.printStackTrace(System.err);

-			System.err.println("Logging to the console instead."); //$NON-NLS-1$

-			//we failed to write, so dump log entry to console instead

-			try {

-				log = logForStream(System.err);

-				write(obj);

-				log.flush();

-			} catch (Exception e2) {

-				System.err.println("An exception occurred while logging to the console:"); //$NON-NLS-1$

-				e2.printStackTrace(System.err);

-			}

-		} finally {

-			log = null;

-		}

-	}

-

-	/*

-	 * This should only be called from #log()

-	 */

-	private void write(Object obj) throws IOException {

-		if (obj == null)

-			return;

-		if (obj instanceof Throwable) {

-			log.write(STACK);

-			log.newLine();

-			((Throwable) obj).printStackTrace(new PrintWriter(log));

-		} else {

-			log.write(ENTRY);

-			log.write(' ');

-			log.write(PLUGIN_ID);

-			log.write(' ');

-			log.write(String.valueOf(ERROR));

-			log.write(' ');

-			log.write(String.valueOf(0));

-			log.write(' ');

-			try {

-				DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy kk:mm:ss.SS"); //$NON-NLS-1$

-				log.write(formatter.format(new Date()));

-			} catch (Exception e) {

-				// continue if we can't write out the date

-				log.write(Long.toString(System.currentTimeMillis()));

-			}

-			log.newLine();

-			log.write(MESSAGE);

-			log.write(' ');

-			log.write(String.valueOf(obj));

-		}

-		log.newLine();

-	}

-

-	private void computeLogFileLocation() {

-		String logFileProp = System.getProperty(PROP_LOGFILE);

-		if (logFileProp != null) {

-			if (logFile == null || !logFileProp.equals(logFile.getAbsolutePath())) {

-				logFile = new File(logFileProp);

-				logFile.getParentFile().mkdirs();

-			}

-			return;

-		}

-

-		// compute the base location and then append the name of the log file

-		URL base = buildURL(System.getProperty(PROP_CONFIG_AREA), false);

-		if (base == null)

-			return;

-		logFile = new File(base.getPath(), Long.toString(System.currentTimeMillis()) + ".log"); //$NON-NLS-1$

-		logFile.getParentFile().mkdirs();

-		System.setProperty(PROP_LOGFILE, logFile.getAbsolutePath());

-	}

-

-	/**

-	 * Converts an ASCII character representing a hexadecimal

-	 * value into its integer equivalent.

-	 */

-	private int hexToByte(byte b) {

-		switch (b) {

-			case '0' :

-				return 0;

-			case '1' :

-				return 1;

-			case '2' :

-				return 2;

-			case '3' :

-				return 3;

-			case '4' :

-				return 4;

-			case '5' :

-				return 5;

-			case '6' :

-				return 6;

-			case '7' :

-				return 7;

-			case '8' :

-				return 8;

-			case '9' :

-				return 9;

-			case 'A' :

-			case 'a' :

-				return 10;

-			case 'B' :

-			case 'b' :

-				return 11;

-			case 'C' :

-			case 'c' :

-				return 12;

-			case 'D' :

-			case 'd' :

-				return 13;

-			case 'E' :

-			case 'e' :

-				return 14;

-			case 'F' :

-			case 'f' :

-				return 15;

-			default :

-				throw new IllegalArgumentException("Switch error decoding URL"); //$NON-NLS-1$

-		}

-	}

-

-	private void openLogFile() throws IOException {

-		computeLogFileLocation();

-		try {

-			log = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile.getAbsolutePath(), true), "UTF-8")); //$NON-NLS-1$

-		} catch (IOException e) {

-			logFile = null;

-			throw e;

-		}

-	}

-

-	private BufferedWriter logForStream(OutputStream output) {

-		try {

-			return new BufferedWriter(new OutputStreamWriter(output, "UTF-8")); //$NON-NLS-1$

-		} catch (UnsupportedEncodingException e) {

-			return new BufferedWriter(new OutputStreamWriter(output));

-		}

-	}

-

-	private void closeLogFile() throws IOException {

-		try {

-			if (log != null) {

-				log.flush();

-				log.close();

-			}

-		} finally {

-			log = null;

-		}

-	}

-

-	private void mergeProperties(Properties destination, Properties source) {

-		if (destination == null || source == null)

-			return;

-		for (Enumeration e = source.keys(); e.hasMoreElements();) {

-			String key = (String) e.nextElement();

-			if (!key.equals(PROP_EOF)) {

-				String value = source.getProperty(key);

-				if (destination.getProperty(key) == null)

-					destination.put(key, value);

-			}

-		}

-	}

-

-	public void setupVMProperties() {

-		if (vm != null)

-			System.getProperties().put(PROP_VM, vm);

-		setMultiValueProperty(PROP_VMARGS, vmargs);

-		setMultiValueProperty(PROP_COMMANDS, commands);

-	}

-

-	private void setMultiValueProperty(String property, String[] value) {

-		if (value != null) {

-			StringBuffer result = new StringBuffer(300);

-			for (int i = 0; i < value.length; i++) {

-				result.append(value[i]);

-				result.append('\n');

-			}

-			System.getProperties().put(property, result.toString());

-		}

-	}

-

-	private String adjustTrailingSlash(String value, boolean slash) {

-		boolean hasSlash = value.endsWith("/") || value.endsWith(File.separator);

-		if (hasSlash == slash)

-			return value;

-		if (hasSlash)

-			return value.substring(0, value.length() - 1);

-		return value + "/";

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/core_formatting.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/core_formatting.xml
deleted file mode 100644
index 1938255..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test492/core_formatting.xml
+++ /dev/null
@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="5">
-<profile name="core" version="5">
-<setting id="comment_clear_blank_lines" value="false"/>
-<setting id="comment_format_comments" value="false"/>
-<setting id="comment_format_header" value="true"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="comment_indent_parameter_description" value="false"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="comment_new_line_for_parameter" value="false"/>
-<setting id="comment_separate_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="800"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.remove_unnecessary_semicolon" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="tab"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
-</profile>
-</profiles>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test493/MyClass_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test493/MyClass_in.js
deleted file mode 100644
index d06c024..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test493/MyClass_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import java.awt.Frame;

-import javax.swing.JFrame;

-

-public class MyClass {

-	JFrame frame;Frame ff;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test493/MyClass_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test493/MyClass_out.js
deleted file mode 100644
index c779862..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test493/MyClass_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import java.awt.Frame;

-import javax.swing.JFrame;

-

-public class MyClass {

-	JFrame frame;

-	Frame ff;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/A_in.js
deleted file mode 100644
index 63dfd3f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/A_in.js
+++ /dev/null
@@ -1,26 +0,0 @@
-public class A {

-	public void setBorderType(JComponent c, int borderType) {

-		myOtherData.setBorderType(borderType);

-		if (c != null) {

-			switch (borderType)

-			{

-				case 0 : // none

-					c.setBorder(null);

-					break;

-				case 1 : // line

-					c.setBorder(BorderFactory.createLineBorder(Color.black));

-					break;

-				case 3 : // bevel lowered

-					c.setBorder(BorderFactory.createLoweredBevelBorder());

-					break;

-				case 4 : // bevel raised

-					c.setBorder(BorderFactory.createRaisedBevelBorder());

-					break;

-				case 5 : // etched

-					c.setBorder(BorderFactory.createEtchedBorder());

-					break;

-				default :

-			} // end switch

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/A_out.js
deleted file mode 100644
index 7447a70..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/A_out.js
+++ /dev/null
@@ -1,25 +0,0 @@
-public class A {

-   public void setBorderType( JComponent c, int borderType ) {

-      myOtherData.setBorderType( borderType );

-      if ( c != null ) {

-         switch ( borderType ) {

-            case 0 : // none

-               c.setBorder( null );

-               break;

-            case 1 : // line

-               c.setBorder( BorderFactory.createLineBorder( Color.black ) );

-               break;

-            case 3 : // bevel lowered

-               c.setBorder( BorderFactory.createLoweredBevelBorder() );

-               break;

-            case 4 : // bevel raised

-               c.setBorder( BorderFactory.createRaisedBevelBorder() );

-               break;

-            case 5 : // etched

-               c.setBorder( BorderFactory.createEtchedBorder() );

-               break;

-            default :

-         } // end switch

-      }

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/format.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/format.xml
deleted file mode 100644
index 6d4390f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test494/format.xml
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="5">
-<profile name="AGPS default" version="5">
-<setting id="comment_clear_blank_lines" value="true"/>
-<setting id="comment_format_comments" value="true"/>
-<setting id="comment_format_header" value="true"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="comment_indent_parameter_description" value="true"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="comment_new_line_for_parameter" value="false"/>
-<setting id="comment_separate_root_tags" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="18"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="6"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="3"/>
-</profile>
-</profiles>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test495/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test495/A_in.js
deleted file mode 100644
index 7f5df68..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test495/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-	void doX() {

-		  if (1 > 0) {//

-		    return;

-		  }

-		  return;

-		}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test495/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test495/A_out.js
deleted file mode 100644
index ae8458e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test495/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class A {

-

-    void doX() {

-        if (1 > 0) {//

-            return;

-        }

-        return;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test496/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test496/A_in.js
deleted file mode 100644
index 6021229..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test496/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-	void doX() {

-		  if (1 > 0) {

-		    return; //

-		  }

-		  return;

-		}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test496/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test496/A_out.js
deleted file mode 100644
index 7fbeb7d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test496/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class A {

-

-    void doX() {

-        if (1 > 0) { return; //

-        }

-        return;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test497/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test497/A_in.js
deleted file mode 100644
index 2515cc6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test497/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public final class DirectoryComparator {

-	public void compare() {

-		File[] secondFiles = null;

-		if (secondFiles.length != files.length) {

-			final String errorMessage = "Different number of jars files:\n" +

-				"\t" + secondFiles.length + " in " + secondDirectoryAbsolutePath + "\n" +

-				"\t" + files.length + " in " + firstDirectoryAbsolutePath + "\n";

-			logError(errorMessage);

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test497/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test497/A_out.js
deleted file mode 100644
index 16a08bd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test497/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public final class DirectoryComparator {

-

-    public void compare() {

-        File[] secondFiles = null;

-        if (secondFiles.length != files.length) {

-            final String errorMessage = "Different number of jars files:\n"

-                    + "\t" + secondFiles.length + " in "

-                    + secondDirectoryAbsolutePath + "\n" + "\t" + files.length

-                    + " in " + firstDirectoryAbsolutePath + "\n";

-            logError(errorMessage);

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test498/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test498/A_in.js
deleted file mode 100644
index 83c8f88..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test498/A_in.js
+++ /dev/null
@@ -1,207 +0,0 @@
-package org.eclipse.wst.jsdt.core.tools.comparators;

-

-import java.io.BufferedWriter;

-import java.io.File;

-import java.io.FileInputStream;

-import java.io.FileNotFoundException;

-import java.io.FileWriter;

-import java.io.IOException;

-import java.io.Writer;

-import java.util.ArrayList;

-

-public final class DirectoryComparator {

-

-	private static void collectAllFiles(File root, ArrayList collector) {

-		File[] files = root.listFiles();for (int i = 0; i < files.length; i++) {

-			final File currentFile = files[i];if (currentFile.isDirectory()) {

-				collectAllFiles(currentFile, collector);

-			} else {

-				collector.add(currentFile);

-			}

-		}

-	}

-

-	private static File[] getAllFiles(File root) {

-		ArrayList files = new ArrayList();

-		if (root.isDirectory()) {

-			collectAllFiles(root, files);

-			File[] result = new File[files.size()];

-			files.toArray(result);

-			return result;

-		} else {

-			return null;

-		}

-	}

-	public static void main(String[] args) {

-		if (args.length != 3) {

-			System.out.println("Usage: firstDirectory secondDirectory logFile");

-			return;

-		}

-		new DirectoryComparator(args).compare();

-	}

-

-	private boolean abortComparison;

-

-	private File firstDirectory;

-

-	private File resultFile;

-

-	private File secondDirectory;

-	

-	private Writer writer;

-

-	private static final int DEFAULT_READING_SIZE = 8192;

-

-	public DirectoryComparator(String[] args) {

-		this.firstDirectory = new File(args[0]);

-		this.secondDirectory = new File(args[1]);

-		this.resultFile = new File(args[2]);

-		this.abortComparison = false;

-		if (!firstDirectory.isDirectory()) {

-			System.out.println("The first argument has to be a directory");

-			this.abortComparison = true;

-		}

-		if (!secondDirectory.isDirectory()) {

-			System.out.println("The second argument has to be a directory");

-			this.abortComparison = true;

-		}

-		if (resultFile.isDirectory()) {

-			System.out.println("The third argument has to be a file");

-			this.abortComparison = true;

-		}

-	}

-

-	public void compare() {

-		if (this.abortComparison) {

-			return;

-		}

-		File[] files = getAllFiles(firstDirectory);

-		if (files == null) {

-			return;

-		}

-		File[] secondFiles = getAllFiles(secondDirectory);

-		if (secondFiles == null) {

-			return;

-		}

-		final String firstDirectoryAbsolutePath = firstDirectory.getAbsolutePath();

-		final String secondDirectoryAbsolutePath = secondDirectory.getAbsolutePath();

-		if (resultFile.exists()) {

-			if (!resultFile.delete()) {

-				System.out.println("Could not delete " + resultFile);

-				return;

-			}

-		}

-		if (secondFiles.length != files.length) {

-			final String errorMessage = "Different number of jars files:\n" +

-				"\t" + secondFiles.length + " in " + secondDirectoryAbsolutePath + "\n" +

-				"\t" + files.length + " in " + firstDirectoryAbsolutePath + "\n";

-			logError(errorMessage);

-		}

-		for (int i = 0, max = files.length; i < max; i++) {

-			String currentFile = files[i].getAbsolutePath();

-			String firstFileName = currentFile;

-			// extract the second file name

-			String secondFileName = secondDirectoryAbsolutePath + File.separator + currentFile.substring(firstDirectoryAbsolutePath.length() + 1);

-			if (new File(secondFileName).exists()) {

-				if (firstFileName.toLowerCase().endsWith(".jar")) {

-					new JarFileComparator(new String[]{firstFileName, secondFileName,

-							resultFile.getAbsolutePath()}).compare();

-				} else {

-					// do a binary compare byte per byte

-					File firstFile = new File(firstFileName);

-					File secondFile = new File(secondFileName);

-					byte[] contentsFile1 = getBytes(firstFile);

-					byte[] contentsFile2 = getBytes(secondFile);

-					if (!equals(contentsFile1, contentsFile2)) {

-						logError("DIFFERENT CONTENTS: " + firstFile.getName() + "\n");

-					}

-				}

-			} else {

-				logError(secondFileName + " doesn't exist");

-			}

-		}

-		System.out.println("DONE. Check the file "

-				+ resultFile.getAbsolutePath() + " to see the result.");

-		if (this.writer != null) {

-			try {

-				writer.flush();

-				writer.close();

-			} catch (IOException e) {

-				e.printStackTrace();

-			}

-		}

-	}

-	

-	private boolean equals(byte[] contentsFile1, byte[] contentsFile2) {

-		if (contentsFile1 == null) {

-			return contentsFile2 == null;

-		}

-		if (contentsFile2 == null) return false;

-		int contentsFile1Length = contentsFile1.length;

-		int contentsFile2Length = contentsFile2.length;

-		if (contentsFile1Length != contentsFile2Length) return false;

-		for (int i = 0; i < contentsFile1Length; i++) {

-			if (contentsFile1[i] != contentsFile2[i]) {

-				return false;

-			}

-		}

-		return true;

-	}

-	

-	public byte[] getBytes(File file) {

-	byte[] contents;

-		try {contents = new byte[0];

-			int contentsLength = 0;

-			int amountRead = -1;

-			FileInputStream stream = new FileInputStream(file);

-			do {

-				int amountRequested = Math.max(stream.available(), DEFAULT_READING_SIZE);  // read at least 8K

-				

-				// resize contents if needed

-				if (contentsLength + amountRequested > contents.length) {

-					System.arraycopy(

-						contents,

-						0,

-						contents = new byte[contentsLength + amountRequested],

-						0,

-						contentsLength);

-				}

-

-				// read as many bytes as possible

-				amountRead = stream.read(contents, contentsLength, amountRequested);

-

-				if (amountRead > 0) {

-					// remember length of contents

-					contentsLength += amountRead;

-				}

-			} while (amountRead != -1); 

-

-			// resize contents if necessary

-			if (contentsLength < contents.length) {

-				System.arraycopy(

-					contents,

-					0,

-					contents = new byte[contentsLength],

-					0,

-					contentsLength);

-			}

-return contents;

-		} catch (FileNotFoundException e) {

-			e.printStackTrace();

-		} catch (IOException e) {

-		e.printStackTrace();

-}

-	return null;

-}

-	

-	private void logError(String message) {

-		try {

-			if (this.writer == null) {

-				this.writer = new BufferedWriter(new FileWriter(this.resultFile, true));

-			}

-			writer.write(message);

-		} catch (IOException e) {

-			e.printStackTrace();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test498/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test498/A_out.js
deleted file mode 100644
index f8cc8ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test498/A_out.js
+++ /dev/null
@@ -1,205 +0,0 @@
-package org.eclipse.wst.jsdt.core.tools.comparators;

-

-import java.io.BufferedWriter;

-import java.io.File;

-import java.io.FileInputStream;

-import java.io.FileNotFoundException;

-import java.io.FileWriter;

-import java.io.IOException;

-import java.io.Writer;

-import java.util.ArrayList;

-

-public final class DirectoryComparator {

-

-    private static void collectAllFiles(File root, ArrayList collector) {

-        File[] files = root.listFiles();

-        for (int i = 0; i < files.length; i++) {

-            final File currentFile = files[i];

-            if (currentFile.isDirectory()) {

-                collectAllFiles(currentFile, collector);

-            } else {

-                collector.add(currentFile);

-            }

-        }

-    }

-

-    private static File[] getAllFiles(File root) {

-        ArrayList files = new ArrayList();

-        if (root.isDirectory()) {

-            collectAllFiles(root, files);

-            File[] result = new File[files.size()];

-            files.toArray(result);

-            return result;

-        } else {

-            return null;

-        }

-    }

-

-    public static void main(String[] args) {

-        if (args.length != 3) {

-            System.out.println("Usage: firstDirectory secondDirectory logFile");

-            return;

-        }

-        new DirectoryComparator(args).compare();

-    }

-

-    private boolean abortComparison;

-

-    private File firstDirectory;

-

-    private File resultFile;

-

-    private File secondDirectory;

-

-    private Writer writer;

-

-    private static final int DEFAULT_READING_SIZE = 8192;

-

-    public DirectoryComparator(String[] args) {

-        this.firstDirectory = new File(args[0]);

-        this.secondDirectory = new File(args[1]);

-        this.resultFile = new File(args[2]);

-        this.abortComparison = false;

-        if (!firstDirectory.isDirectory()) {

-            System.out.println("The first argument has to be a directory");

-            this.abortComparison = true;

-        }

-        if (!secondDirectory.isDirectory()) {

-            System.out.println("The second argument has to be a directory");

-            this.abortComparison = true;

-        }

-        if (resultFile.isDirectory()) {

-            System.out.println("The third argument has to be a file");

-            this.abortComparison = true;

-        }

-    }

-

-    public void compare() {

-        if (this.abortComparison) { return; }

-        File[] files = getAllFiles(firstDirectory);

-        if (files == null) { return; }

-        File[] secondFiles = getAllFiles(secondDirectory);

-        if (secondFiles == null) { return; }

-        final String firstDirectoryAbsolutePath = firstDirectory

-                .getAbsolutePath();

-        final String secondDirectoryAbsolutePath = secondDirectory

-                .getAbsolutePath();

-        if (resultFile.exists()) {

-            if (!resultFile.delete()) {

-                System.out.println("Could not delete " + resultFile);

-                return;

-            }

-        }

-        if (secondFiles.length != files.length) {

-            final String errorMessage = "Different number of jars files:\n"

-                    + "\t" + secondFiles.length + " in "

-                    + secondDirectoryAbsolutePath + "\n" + "\t" + files.length

-                    + " in " + firstDirectoryAbsolutePath + "\n";

-            logError(errorMessage);

-        }

-        for (int i = 0, max = files.length; i < max; i++) {

-            String currentFile = files[i].getAbsolutePath();

-            String firstFileName = currentFile;

-            // extract the second file name

-            String secondFileName = secondDirectoryAbsolutePath

-                    + File.separator

-                    + currentFile

-                            .substring(firstDirectoryAbsolutePath.length() + 1);

-            if (new File(secondFileName).exists()) {

-                if (firstFileName.toLowerCase().endsWith(".jar")) {

-                    new JarFileComparator(new String[] { firstFileName,

-                            secondFileName, resultFile.getAbsolutePath() })

-                            .compare();

-                } else {

-                    // do a binary compare byte per byte

-                    File firstFile = new File(firstFileName);

-                    File secondFile = new File(secondFileName);

-                    byte[] contentsFile1 = getBytes(firstFile);

-                    byte[] contentsFile2 = getBytes(secondFile);

-                    if (!equals(contentsFile1, contentsFile2)) {

-                        logError("DIFFERENT CONTENTS: " + firstFile.getName()

-                                + "\n");

-                    }

-                }

-            } else {

-                logError(secondFileName + " doesn't exist");

-            }

-        }

-        System.out.println("DONE. Check the file "

-                + resultFile.getAbsolutePath() + " to see the result.");

-        if (this.writer != null) {

-            try {

-                writer.flush();

-                writer.close();

-            } catch (IOException e) {

-                e.printStackTrace();

-            }

-        }

-    }

-

-    private boolean equals(byte[] contentsFile1, byte[] contentsFile2) {

-        if (contentsFile1 == null) { return contentsFile2 == null; }

-        if (contentsFile2 == null) return false;

-        int contentsFile1Length = contentsFile1.length;

-        int contentsFile2Length = contentsFile2.length;

-        if (contentsFile1Length != contentsFile2Length) return false;

-        for (int i = 0; i < contentsFile1Length; i++) {

-            if (contentsFile1[i] != contentsFile2[i]) { return false; }

-        }

-        return true;

-    }

-

-    public byte[] getBytes(File file) {

-        byte[] contents;

-        try {

-            contents = new byte[0];

-            int contentsLength = 0;

-            int amountRead = -1;

-            FileInputStream stream = new FileInputStream(file);

-            do {

-                int amountRequested = Math.max(stream.available(),

-                        DEFAULT_READING_SIZE); // read at least 8K

-

-                // resize contents if needed

-                if (contentsLength + amountRequested > contents.length) {

-                    System.arraycopy(contents, 0,

-                            contents = new byte[contentsLength

-                                    + amountRequested], 0, contentsLength);

-                }

-

-                // read as many bytes as possible

-                amountRead = stream.read(contents, contentsLength,

-                        amountRequested);

-

-                if (amountRead > 0) {

-                    // remember length of contents

-                    contentsLength += amountRead;

-                }

-            } while (amountRead != -1);

-

-            // resize contents if necessary

-            if (contentsLength < contents.length) {

-                System.arraycopy(contents, 0,

-                        contents = new byte[contentsLength], 0, contentsLength);

-            }

-            return contents;

-        } catch (FileNotFoundException e) {

-            e.printStackTrace();

-        } catch (IOException e) {

-            e.printStackTrace();

-        }

-        return null;

-    }

-

-    private void logError(String message) {

-        try {

-            if (this.writer == null) {

-                this.writer = new BufferedWriter(new FileWriter(

-                        this.resultFile, true));

-            }

-            writer.write(message);

-        } catch (IOException e) {

-            e.printStackTrace();

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test499/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test499/A_in.js
deleted file mode 100644
index 571b550..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test499/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public final class DirectoryComparator {

-	public void compare() {

-		File[] secondFiles = null;

-		if (secondFiles.length != files.length) {

-			final String errorMessage = "Different number of jars files:\n" +

-				"\t" - secondFiles.length + " in " + secondDirectoryAbsolutePath + "\n" +

-				"\t" + files.length + " in " + firstDirectoryAbsolutePath + "\n";

-			logError(errorMessage);

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test499/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test499/A_out.js
deleted file mode 100644
index 63b60ef..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test499/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public final class DirectoryComparator {

-

-    public void compare() {

-        File[] secondFiles = null;

-        if (secondFiles.length != files.length) {

-            final String errorMessage = "Different number of jars files:\n"

-                    + "\t" - secondFiles.length + " in "

-                    + secondDirectoryAbsolutePath + "\n" + "\t" + files.length

-                    + " in " + firstDirectoryAbsolutePath + "\n";

-            logError(errorMessage);

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test500/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test500/A_in.js
deleted file mode 100644
index c4d77ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test500/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import java.util.Vector;

-

-public class EclipseFormatTest

-{

-	public static void main(String[] args)

-	{

-		Vector v2 = new Vector();

-		{{{String a = ((String) v2.get(0)).trim(), b = (String)

-		v2.get(1), c = (String) v2

-		.get(2);}}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test500/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test500/A_out.js
deleted file mode 100644
index 087ad0c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test500/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import java.util.Vector;

-

-public class EclipseFormatTest {

-	public static void main(String[] args) {

-		Vector v2 = new Vector();

-		{

-			{

-				{

-					String a = ((String) v2.get(0)).trim(), b = (String) v2

-							.get(1), c = (String) v2.get(2);

-				}

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/A_in.js
deleted file mode 100644
index b20a249..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/A_out.js
deleted file mode 100644
index b4948c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A

-{

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/formatter.xml
deleted file mode 100644
index 9b8b9a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test501/formatter.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="5">
-<profile name="GMTI" version="5">
-<setting id="comment_clear_blank_lines" value="false"/>
-<setting id="comment_format_comments" value="false"/>
-<setting id="comment_format_header" value="false"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="comment_indent_parameter_description" value="false"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="comment_line_length" value="80"/>
-<setting id="comment_new_line_for_parameter" value="false"/>
-<setting id="comment_separate_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.filling_space" value=" "/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_control_statements" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="100"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.preserve_user_linebreaks" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.remove_unnecessary_semicolon" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="tab"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
-</profile>
-</profiles>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test502/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test502/A_in.js
deleted file mode 100644
index 0f9492f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test502/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {

-	strictfp void bar() {}}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test502/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test502/A_out.js
deleted file mode 100644
index e2c05bf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test502/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-    strictfp void bar() {

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test503/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test503/A_in.js
deleted file mode 100644
index 72033bb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test503/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	public static void main(String[] args) {

-		for (String s : args) {System.out.println(s);}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test503/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test503/A_out.js
deleted file mode 100644
index 9e30854..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test503/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	public static void main(String[] args) {

-		for (String s : args) {

-			System.out.println(s);

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test504/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test504/A_in.js
deleted file mode 100644
index 740409b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test504/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-interface Convertible<T> {

-	T convert();

-}

-

-public class ReprChange<A extends Convertible<B>, B extends Convertible<A>> {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test504/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test504/A_out.js
deleted file mode 100644
index 5ef5d3c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test504/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Convertible<T> {

-	T convert();

-}

-

-public class ReprChange<A extends Convertible<B>, B extends Convertible<A>> {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test505/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test505/A_in.js
deleted file mode 100644
index 53290ff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test505/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-interface Convertible<T> {

-	T convert();

-}

-

-public class X<A extends Convertible<Convertible<A>>> {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test505/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test505/A_out.js
deleted file mode 100644
index 3a3491a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test505/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-interface Convertible<T> {

-	T convert();

-}

-

-public class X<A extends Convertible<Convertible<A>>> {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test506/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test506/A_in.js
deleted file mode 100644
index af254bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test506/A_in.js
+++ /dev/null
@@ -1,77 +0,0 @@
-class Seq<E> {

-	E head;

-	Seq<E> tail;

-	Seq() {

-		this(null, null);

-	}

-	boolean isEmpty() {

-		return this.tail == null;

-	}

-	Seq(E head, Seq<E> tail) {

-		this.head = head;

-		this.tail = tail;

-	}

-	<T> Seq<Pair<E,T>> zip(Seq<T> that) {

-		if (this.isEmpty() || that.isEmpty())

-			return new Seq<Pair<E,T>>();

-		else

-			return new Seq<Pair<E,T>>(

-				new Pair<E,T>(this.head, that.head),

-					this.tail.zip(that.tail));

-	}

-	public String toString() {

-		StringBuffer buffer = new StringBuffer();

-		if (head != null) {

-			buffer.append(head);

-		}

-		if (tail != null) {

-			buffer.append(tail);

-		}

-		return String.valueOf(buffer);

-	}

-	public class Zipper<T> {

-		Seq<Pair<E,T>> zip(Seq<T> that) {

-			if (Seq.this.isEmpty() || that.isEmpty())

-				return new Seq<Pair<E,T>>();

-			else

-				return new Seq<Pair<E,T>>(

-					new Pair<E,T>(Seq.this.head, that.head),

-						Seq.this.tail.zip(that.tail));

-		}

-	}

-}

-class Pair<A, B> {

-	A fst;

-	B snd;

-	

-	Pair(A a, B b) {

-		this.fst = a;

-		this.snd = b;

-	}

-	public String toString() {

-		StringBuffer buffer = new StringBuffer();

-		buffer.append("(");

-		buffer.append(fst);

-		buffer.append(", ");

-		buffer.append(snd);

-		buffer.append(")");

-		return String.valueOf(buffer);

-	}

-	public boolean equals(Object other) {

-		return other instanceof Pair &&

-				equals(fst, ((Pair)other).fst) &&

-				equals(snd, ((Pair)other).snd);

-	}

-	private boolean equals(Object x, Object y) {

-		return x == null && y == null || x != null && x.equals(y);

-	}

-}

-public class A {

-	public static void main(String[] args) {

-		Seq<String> strs = new Seq<String>("a", new Seq<String>("b", new Seq<String>()));

-		Seq<Number> nums = new Seq<Number>(new Integer(1), new Seq<Number>(new Double(1.5), new Seq<Number>()));

-		Seq<String>.Zipper<Number> zipper = strs.new Zipper<Number>();

-		Seq<Pair<String,Number>> combined = zipper.zip(nums);

-		System.out.println(combined);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test506/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test506/A_out.js
deleted file mode 100644
index dbf2567..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test506/A_out.js
+++ /dev/null
@@ -1,87 +0,0 @@
-class Seq<E> {

-	E head;

-	Seq<E> tail;

-

-	Seq() {

-		this(null, null);

-	}

-

-	boolean isEmpty() {

-		return this.tail == null;

-	}

-

-	Seq(E head, Seq<E> tail) {

-		this.head = head;

-		this.tail = tail;

-	}

-

-	<T> Seq<Pair<E, T>> zip(Seq<T> that) {

-		if (this.isEmpty() || that.isEmpty())

-			return new Seq<Pair<E, T>>();

-		else

-			return new Seq<Pair<E, T>>(new Pair<E, T>(this.head, that.head),

-					this.tail.zip(that.tail));

-	}

-

-	public String toString() {

-		StringBuffer buffer = new StringBuffer();

-		if (head != null) {

-			buffer.append(head);

-		}

-		if (tail != null) {

-			buffer.append(tail);

-		}

-		return String.valueOf(buffer);

-	}

-

-	public class Zipper<T> {

-		Seq<Pair<E, T>> zip(Seq<T> that) {

-			if (Seq.this.isEmpty() || that.isEmpty())

-				return new Seq<Pair<E, T>>();

-			else

-				return new Seq<Pair<E, T>>(new Pair<E, T>(Seq.this.head,

-						that.head), Seq.this.tail.zip(that.tail));

-		}

-	}

-}

-

-class Pair<A, B> {

-	A fst;

-	B snd;

-

-	Pair(A a, B b) {

-		this.fst = a;

-		this.snd = b;

-	}

-

-	public String toString() {

-		StringBuffer buffer = new StringBuffer();

-		buffer.append("(");

-		buffer.append(fst);

-		buffer.append(", ");

-		buffer.append(snd);

-		buffer.append(")");

-		return String.valueOf(buffer);

-	}

-

-	public boolean equals(Object other) {

-		return other instanceof Pair && equals(fst, ((Pair) other).fst)

-				&& equals(snd, ((Pair) other).snd);

-	}

-

-	private boolean equals(Object x, Object y) {

-		return x == null && y == null || x != null && x.equals(y);

-	}

-}

-

-public class A {

-	public static void main(String[] args) {

-		Seq<String> strs = new Seq<String>("a", new Seq<String>("b",

-				new Seq<String>()));

-		Seq<Number> nums = new Seq<Number>(new Integer(1), new Seq<Number>(

-				new Double(1.5), new Seq<Number>()));

-		Seq<String>.Zipper<Number> zipper = strs.new Zipper<Number>();

-		Seq<Pair<String, Number>> combined = zipper.zip(nums);

-		System.out.println(combined);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test507/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test507/A_in.js
deleted file mode 100644
index 681309d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test507/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public enum Coin {

-    PENNY(1), NICKEL(5), DIME(10), QUARTER(25);

-

-    Coin(int value) { this.value = value; }

-

-    private final int value;

-

-    public int value() { return value; }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test507/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test507/A_out.js
deleted file mode 100644
index fb458ca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test507/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public enum Coin {

-	PENNY(1), NICKEL(5), DIME(10), QUARTER(25);

-

-	Coin(int value) {

-		this.value = value;

-	}

-

-	private final int value;

-

-	public int value() {

-		return value;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test508/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test508/A_in.js
deleted file mode 100644
index 95463d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test508/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-@Retention package test0006;

-

-@interface Name {

-	String first() default "Joe";

-	String last() default "Smith";

-	int age();

-}

-

-@interface Author {

-	Name value();

-}

-

-@interface Retention {

-}

-

-@Retention @Author(@Name(first="Joe", last="Hacker", age=32))

-class A {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test508/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test508/A_out.js
deleted file mode 100644
index 91e180f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test508/A_out.js
+++ /dev/null
@@ -1,22 +0,0 @@
-@Retention

-package test0006;

-

-@interface Name {

-	String first() default "Joe";

-

-	String last() default "Smith";

-

-	int age();

-}

-

-@interface Author {

-	Name value();

-}

-

-@interface Retention {

-}

-

-@Retention

-@Author(@Name(first = "Joe", last = "Hacker", age = 32))

-class A {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test509/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test509/A_in.js
deleted file mode 100644
index b49fd23..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test509/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test.test1.test2;

-import java.io.*;import java.util.Vector;

-public class Test {

-public int i;public void foo(int k) {if (k > 0) { i = 3;;;} else if (k == 0) { i = 2;}if (i == 2) return;

-if (k > 0) i = 3;}public void bar() {}

-public long l; // long field

-public String s = null;

-}

-

-

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test509/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test509/A_out.js
deleted file mode 100644
index 470a793..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test509/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test.test1.test2;

-import java.io.*;

-import java.util.Vector;

-public class Test {

-	public int i;

-	public void foo(int k) {

-		if (k > 0) {

-			i = 3;;;

-		} else if (k == 0) {

-			i = 2;

-		}

-		if (i == 2) return;

-		if (k > 0) i = 3;

-	}

-	public void bar() {

-	}

-	public long l; // long field

-	public String s = null;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test510/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test510/A_in.js
deleted file mode 100644
index b49fd23..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test510/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test.test1.test2;

-import java.io.*;import java.util.Vector;

-public class Test {

-public int i;public void foo(int k) {if (k > 0) { i = 3;;;} else if (k == 0) { i = 2;}if (i == 2) return;

-if (k > 0) i = 3;}public void bar() {}

-public long l; // long field

-public String s = null;

-}

-

-

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test510/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test510/A_out.js
deleted file mode 100644
index 470a793..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test510/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test.test1.test2;

-import java.io.*;

-import java.util.Vector;

-public class Test {

-	public int i;

-	public void foo(int k) {

-		if (k > 0) {

-			i = 3;;;

-		} else if (k == 0) {

-			i = 2;

-		}

-		if (i == 2) return;

-		if (k > 0) i = 3;

-	}

-	public void bar() {

-	}

-	public long l; // long field

-	public String s = null;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test511/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test511/A_in.js
deleted file mode 100644
index c0f90e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test511/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test.test1.test2;

-import java.io.*;import java.util.Vector;

-public class Test {

-public int i;public void foo(int k) {if (k > 0) { i = 3;;;} else if (k == 0) { i = 2;}if (i == 2) return;

-if (k > 0) i = 3;}public void bar() {}

-public long l; // long field

-public String s = null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test511/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test511/A_out.js
deleted file mode 100644
index 81f1bd4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test511/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test.test1.test2;

-import java.io.*;

-import java.util.Vector;

-public class Test {

-	public int i;

-	public void foo(int k) {

-		if (k > 0) {

-			i = 3;;;

-		} else if (k == 0) {

-			i = 2;

-		}

-		if (i == 2) return;

-		if (k > 0) i = 3;

-	}

-	public void bar() {

-	}

-	public long l; // long field

-	public String s = null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test512/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test512/A_in.js
deleted file mode 100644
index c0f90e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test512/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test.test1.test2;

-import java.io.*;import java.util.Vector;

-public class Test {

-public int i;public void foo(int k) {if (k > 0) { i = 3;;;} else if (k == 0) { i = 2;}if (i == 2) return;

-if (k > 0) i = 3;}public void bar() {}

-public long l; // long field

-public String s = null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test512/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test512/A_out.js
deleted file mode 100644
index 470a793..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test512/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package test.test1.test2;

-import java.io.*;

-import java.util.Vector;

-public class Test {

-	public int i;

-	public void foo(int k) {

-		if (k > 0) {

-			i = 3;;;

-		} else if (k == 0) {

-			i = 2;

-		}

-		if (i == 2) return;

-		if (k > 0) i = 3;

-	}

-	public void bar() {

-	}

-	public long l; // long field

-	public String s = null;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test513/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test513/A_in.js
deleted file mode 100644
index 537688a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test513/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-enum XY {CANCELLED, RUNNING, WAITING, FINISHED }
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test513/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test513/A_out.js
deleted file mode 100644
index b5178e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test513/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-enum XY {

-	CANCELLED, RUNNING, WAITING, FINISHED

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/A_in.js
deleted file mode 100644
index 9691083..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	public void foo() {

-		if (TextRequest.REQ_INSERT == request.getType() || TextRequest.REQ_BACKSPACE == request.getType()

-				|| TextRequest.REQ_DELETE == request.getType() || TextRequest.REQ_REMOVE_RANGE == request.getType())

-			return getHost();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/A_out.js
deleted file mode 100644
index 7d13915..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class X {

-public void foo() {

-	if (TextRequest.REQ_INSERT == request.getType()

-			|| TextRequest.REQ_BACKSPACE == request.getType()

-			|| TextRequest.REQ_DELETE == request.getType()

-			|| TextRequest.REQ_REMOVE_RANGE == request.getType())

-		return getHost();

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/formatter.xml
deleted file mode 100644
index f48cd26..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test514/formatter.xml
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="6">
-<profile name="core" version="6">
-<setting id="comment_clear_blank_lines" value="false"/>
-<setting id="comment_format_comments" value="true"/>
-<setting id="comment_format_header" value="true"/>
-<setting id="comment_format_html" value="true"/>
-<setting id="comment_format_source_code" value="true"/>
-<setting id="comment_indent_parameter_description" value="false"/>
-<setting id="comment_indent_root_tags" value="true"/>
-<setting id="comment_line_length" value="90"/>
-<setting id="comment_new_line_for_parameter" value="false"/>
-<setting id="comment_separate_root_tags" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="32"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="32"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="tab"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
-</profile>
-</profiles>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test515/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test515/A_in.js
deleted file mode 100644
index 4f67417..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test515/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {	public void foo(Object o, A... i) {	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test515/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test515/A_out.js
deleted file mode 100644
index 48deb8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test515/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	public void foo(Object o, A... i) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test516/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test516/A_in.js
deleted file mode 100644
index 4f67417..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test516/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {	public void foo(Object o, A... i) {	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test516/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test516/A_out.js
deleted file mode 100644
index 83ab086..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test516/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	public void foo(Object o, A...i) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test517/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test517/A_in.js
deleted file mode 100644
index 4f67417..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test517/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {	public void foo(Object o, A... i) {	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test517/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test517/A_out.js
deleted file mode 100644
index e0189e1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test517/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	public void foo(Object o, A ... i) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test518/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test518/A_in.js
deleted file mode 100644
index 4f67417..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test518/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {	public void foo(Object o, A... i) {	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test518/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test518/A_out.js
deleted file mode 100644
index 7f91413..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test518/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	public void foo(Object o, A ...i) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test519/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test519/A_in.js
deleted file mode 100644
index 4f67417..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test519/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A {	public void foo(Object o, A... i) {	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test519/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test519/A_out.js
deleted file mode 100644
index 48deb8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test519/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	public void foo(Object o, A... i) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test520/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test520/A_in.js
deleted file mode 100644
index 4813e43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test520/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-package test;

-public enum A { D(){void foo(){}}, B }
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test520/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test520/A_out.js
deleted file mode 100644
index 7d39d13..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test520/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test;

-

-public enum A {

-	D() {

-		void foo() {

-		}

-	},

-	B

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test521/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test521/A_in.js
deleted file mode 100644
index d020ade..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test521/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class Test {public enum MyInnerEnum {A, B}}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test521/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test521/A_out.js
deleted file mode 100644
index bcdeb75..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test521/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test {

-	public enum MyInnerEnum {

-		A, B

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test522/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test522/A_in.js
deleted file mode 100644
index 1b3274b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test522/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**

- * New Lines

- */

-public class Empty {}

-class Example {  static int [] fArray= {1, 2, 3, 4, 5 };  Listener fListener= new Listener() {  };

-  // the following line contains line breaks

-// which can be preserved:

-  void

-bar

-()

- {}  void foo() {    ;;    do {} while (false);    for (;;) {}  }}

-enum MyEnum {    UNDEFINED(0) { }}enum EmptyEnum { }

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test522/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test522/A_out.js
deleted file mode 100644
index 5e1a954..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test522/A_out.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/**

- * New Lines

- */

-public class Empty {

-}

-

-class Example {

-	static int[] fArray = { 1, 2, 3, 4, 5 };

-	Listener fListener = new Listener() {

-	};

-

-	// the following line contains line breaks

-	// which can be preserved:

-	void bar() {

-	}

-

-	void foo() {

-		;

-		;

-		do {

-		} while (false);

-		for (;;) {

-		}

-	}

-}

-

-enum MyEnum {

-	UNDEFINED(0) {

-	}

-}

-

-enum EmptyEnum {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test523/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test523/A_in.js
deleted file mode 100644
index 5a68023..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test523/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class emptyClass {

-}

-

-enum MyEnum {

-    UNDEFINED(0) {

-    }

-}

-

-enum EmptyEnum {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test523/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test523/A_out.js
deleted file mode 100644
index 29853c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test523/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class emptyClass {

-}

-

-enum MyEnum {

-	UNDEFINED(0) {}

-}

-

-enum EmptyEnum {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test524/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test524/A_in.js
deleted file mode 100644
index 5a68023..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test524/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class emptyClass {

-}

-

-enum MyEnum {

-    UNDEFINED(0) {

-    }

-}

-

-enum EmptyEnum {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test524/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test524/A_out.js
deleted file mode 100644
index c183a7c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test524/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class emptyClass {

-}

-

-enum MyEnum {

-	UNDEFINED(0) {}

-}

-

-enum EmptyEnum {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test525/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test525/A_in.js
deleted file mode 100644
index 5a68023..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test525/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class emptyClass {

-}

-

-enum MyEnum {

-    UNDEFINED(0) {

-    }

-}

-

-enum EmptyEnum {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test525/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test525/A_out.js
deleted file mode 100644
index 6a63a54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test525/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class emptyClass {

-}

-

-enum MyEnum {

-	UNDEFINED(0) {

-	}

-}

-

-enum EmptyEnum {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test526/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test526/A_in.js
deleted file mode 100644
index 5a68023..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test526/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class emptyClass {

-}

-

-enum MyEnum {

-    UNDEFINED(0) {

-    }

-}

-

-enum EmptyEnum {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test526/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test526/A_out.js
deleted file mode 100644
index 9347eec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test526/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-class emptyClass {

-}

-

-enum MyEnum {

-	UNDEFINED(0) {

-	}

-}

-

-enum EmptyEnum {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test527/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test527/A_in.js
deleted file mode 100644
index bc5ddbc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test527/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test527;

-

-@Jpf.Controller(

-	    catches={

-	       @Jpf.Catch(type=java.lang.Exception.class, method="handleException"),

-	       @Jpf.Catch(type=PageFlowException.class, method="handlePageFlowException")

-	    }

-	)

-	public class A {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test527/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test527/A_out.js
deleted file mode 100644
index faf11e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test527/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test527;

-

-@Jpf.Controller(catches = {

-		@Jpf.Catch(type = java.lang.Exception.class, method = "handleException"),

-		@Jpf.Catch(type = PageFlowException.class, method = "handlePageFlowException") })

-public class A {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test528/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test528/A_in.js
deleted file mode 100644
index 669d50a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test528/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package test528;

-

-import static test.TestConstants.*;

-

-public class A

-    {

-    public void someMethod()

-        {

-        int x = 0;

-        if(x == 0)

-    {

-        //Do something

-      }

-        }

-    }

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test528/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test528/A_out.js
deleted file mode 100644
index abb6b9e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test528/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test528;

-

-import static test.TestConstants.*;

-

-public class A {

-	public void someMethod() {

-		int x = 0;

-		if (x == 0) {

-			//Do something

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test529/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test529/A_in.js
deleted file mode 100644
index 559fdf6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test529/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package test528;

-

-import static test.TestConstants.A;

-

-public class A

-    {

-    public void someMethod()

-        {

-        int x = 0;

-        if(x == 0)

-    {

-        //Do something

-      }

-        }

-    }

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test529/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test529/A_out.js
deleted file mode 100644
index 1b0053a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test529/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test528;

-

-import static test.TestConstants.A;

-

-public class A {

-	public void someMethod() {

-		int x = 0;

-		if (x == 0) {

-			//Do something

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test530/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test530/A_in.js
deleted file mode 100644
index 04a3570..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test530/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test530;

-

-public enum A {

-	TEST

-	;

-	public String field;

-

-	public void foo() {

-		String s = field;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test530/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test530/A_out.js
deleted file mode 100644
index 88a7aa8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test530/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test530;

-

-public enum A {

-	TEST;

-	public String field;

-

-	public void foo() {

-		String s = field;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test531/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test531/A_in.js
deleted file mode 100644
index 8d6f9c6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test531/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test531;

-enum A {

-  C {

-    void foo() {

-    }

-  },

-  D {

-    void foo() {

-    }

-  }

-  ;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test531/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test531/A_out.js
deleted file mode 100644
index c699fcf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test531/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test531;

-

-enum A {

-	C {

-		void foo() {

-		}

-	},

-	D {

-		void foo() {

-		}

-	};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test532/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test532/A_in.js
deleted file mode 100644
index 6e42055..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test532/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test532;

-enum A {

-  ;

-  A() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test532/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test532/A_out.js
deleted file mode 100644
index fe2359d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test532/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test532;

-

-enum A {

-	;

-	A() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test533/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test533/A_in.js
deleted file mode 100644
index 5d6e71d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test533/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package test533;

-enum A {

-  ;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test533/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test533/A_out.js
deleted file mode 100644
index 7a196d6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test533/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test533;

-

-enum A {

-	;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test534/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test534/A_in.js
deleted file mode 100644
index 75b0274..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test534/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test534;

-import java.util.List;

-class A {

-	List< ? extends Number> foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test534/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test534/A_out.js
deleted file mode 100644
index d2f15bd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test534/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test534;

-

-import java.util.List;

-

-class A {

-	List<? extends Number> foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test535/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test535/A_in.js
deleted file mode 100644
index 0ebb805..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test535/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test535;

-import java.util.List;

-class A {

-	List< ? > foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test535/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test535/A_out.js
deleted file mode 100644
index 55c076b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test535/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test535;

-

-import java.util.List;

-

-class A {

-	List<?> foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test536/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test536/A_in.js
deleted file mode 100644
index 75b0274..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test536/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test534;

-import java.util.List;

-class A {

-	List< ? extends Number> foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test536/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test536/A_out.js
deleted file mode 100644
index 734b581..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test536/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test534;

-

-import java.util.List;

-

-class A {

-	List< ? extends Number> foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test537/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test537/A_in.js
deleted file mode 100644
index 0ebb805..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test537/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test535;

-import java.util.List;

-class A {

-	List< ? > foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test537/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test537/A_out.js
deleted file mode 100644
index 878ae4a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test537/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test535;

-

-import java.util.List;

-

-class A {

-	List< ? > foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test538/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test538/A_in.js
deleted file mode 100644
index d9a52c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test538/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * Class description.

- */

-public class Test {

-}

-

-/**

- * Class description.

- */

-class Example {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test538/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test538/A_out.js
deleted file mode 100644
index d9a52c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test538/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * Class description.

- */

-public class Test {

-}

-

-/**

- * Class description.

- */

-class Example {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test539/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test539/A_in.js
deleted file mode 100644
index c916a84..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test539/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public interface A extends Comparable<Class<?>> {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test539/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test539/A_out.js
deleted file mode 100644
index 5d958f3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test539/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public interface A extends Comparable<Class<?>> {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test540/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test540/A_in.js
deleted file mode 100644
index 473a058..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test540/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public class A extends Comparable<Class<?>> {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test540/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test540/A_out.js
deleted file mode 100644
index 95c9783..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test540/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class A extends Comparable<Class<?>> {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test541/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test541/A_in.js
deleted file mode 100644
index 8391799..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test541/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-interface A

-{ class AA<T> {} }

-

-class FieldArgumentsPC

-extends A.AA <Object>

-{}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test541/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test541/A_out.js
deleted file mode 100644
index 6ae82fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test541/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-interface A {

-    class AA<T> {

-    }

-}

-

-class FieldArgumentsPC extends A.AA<Object> {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test542/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test542/A_in.js
deleted file mode 100644
index 0572b9c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test542/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import java.util.List;

-

-public class X {

-	List l;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test542/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test542/A_out.js
deleted file mode 100644
index 0572b9c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test542/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import java.util.List;

-

-public class X {

-	List l;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test543/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test543/A_in.js
deleted file mode 100644
index 62f5846..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test543/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class FormatterTest {

-  void doTest(

-      ) {

-     System.out.println("(" + 

-         Object.class + ")");

-  }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test543/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test543/A_out.js
deleted file mode 100644
index 7169317..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test543/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class FormatterTest {

-    void doTest() {

-        System.out.println("(" + Object.class + ")");

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test544/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test544/A_in.js
deleted file mode 100644
index 62fc541..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test544/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class BoxOfComponents<C extends Component> {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test544/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test544/A_out.js
deleted file mode 100644
index c4c1bb9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test544/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class BoxOfComponents<C extends Component>

-{

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test545/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test545/A_in.js
deleted file mode 100644
index ae3d0f7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test545/A_in.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import java.util.List;

-

-public class Bug

-{

-void case1(List<Object>... lists)

-{ int notFormatted; }

-

-    void case2(List... lists)

-    {

-        int notFormatted;

-    }

-

-    void case3(List<Object> lists)

-    {

-        int notFormatted;

-    }

-void case4(java.lang.List<Object>... lists)

-{ int notFormatted; }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test545/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test545/A_out.js
deleted file mode 100644
index f23cbdb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test545/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import java.util.List;

-

-public class Bug {

-    void case1(List<Object>... lists) {

-        int notFormatted;

-    }

-

-    void case2(List... lists) {

-        int notFormatted;

-    }

-

-    void case3(List<Object> lists) {

-        int notFormatted;

-    }

-

-    void case4(java.lang.List<Object>... lists) {

-        int notFormatted;

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test546/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test546/A_in.js
deleted file mode 100644
index d29fe71..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test546/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class Bug

-{	private static String buildStartTag(String namespace, String serviceName)

-	{

-		return " <ns1:" + serviceName +

-			(" soapenv:encodingStyle=\"http://schemas.xmlsoap.org/" +

-			"soap/encoding/\" xmlns:ns1=\"") + namespace + "\">\n";

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test546/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test546/A_out.js
deleted file mode 100644
index f3eef30..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test546/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class Bug {

-    private static String buildStartTag(String namespace, String serviceName) {

-        return " <ns1:"

-                + serviceName

-                + (" soapenv:encodingStyle=\"http://schemas.xmlsoap.org/"

-                        + "soap/encoding/\" xmlns:ns1=\"") + namespace

-                + "\">\n";

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test547/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test547/A_in.js
deleted file mode 100644
index 87b15cd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test547/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*

-TOTO

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test547/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test547/A_out.js
deleted file mode 100644
index 4335e03..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test547/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*

- * TOTO

- */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test548/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test548/A_in.js
deleted file mode 100644
index 8c942ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test548/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/**

-TOTO

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test548/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test548/A_out.js
deleted file mode 100644
index 6340b95..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test548/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/**

- * TOTO

- */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test549/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test549/A_in.js
deleted file mode 100644
index 6656384..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test549/A_in.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class X { void foo() { System.out.println();

-} }

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test549/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test549/A_out.js
deleted file mode 100644
index 5420b49..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test549/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class X {

-    void foo() {

-	System.out.println();

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test550/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test550/A_in.js
deleted file mode 100644
index ea0cafa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test550/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class A {

-void method() {

-if (true)

-return;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test550/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test550/A_out.js
deleted file mode 100644
index bdfa6d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test550/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class A {

-    void method() {

-	if (true)

-	    return;

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test551/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test551/A_in.js
deleted file mode 100644
index b5e2525..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test551/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/**

- * Some method.

- */

-public void someMethod(String argument1, String argument2,String argument3) {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test551/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test551/A_out.js
deleted file mode 100644
index 14e51f7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test551/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * Some method.

- */

-public void someMethod(String argument1,

-		       String argument2,

-		       String argument3) {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test552/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test552/A_in.js
deleted file mode 100644
index c0f7e9c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test552/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class X {/**

- * Some method.

- */

-public void someMethod(String argument1, String argument2,String argument3) {}}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test552/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test552/A_out.js
deleted file mode 100644
index be916f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test552/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class X {

-    /**

-     * Some method.

-     */

-    public void someMethod(String argument1,

-			   String argument2,

-			   String argument3) {

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test553/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test553/A_in.js
deleted file mode 100644
index 10a1d65..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test553/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-// This is a really long single line comment that should be wrapped on two lines once it is formatted
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test553/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test553/A_out.js
deleted file mode 100644
index 19db7b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test553/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// This is a really long single line comment that should be wrapped on two lines

-// once it is formatted

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test554/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test554/A_in.js
deleted file mode 100644
index 4891bc2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test554/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-// This is a really long single line comment that should be wrapped on two lines once it is formatted

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test554/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test554/A_out.js
deleted file mode 100644
index 19db7b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test554/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// This is a really long single line comment that should be wrapped on two lines

-// once it is formatted

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test555/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test555/A_in.js
deleted file mode 100644
index 20f0a92..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test555/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class A {

-void method() {

-boolean b = false;

-if (true)

-if (b) {

-return;

-}

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test555/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test555/A_out.js
deleted file mode 100644
index b74f070..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test555/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-class A {

-    void method() {

-	boolean b = false;

-	if (true)

-	    if (b) {

-		return;

-	    }

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test556/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test556/A_in.js
deleted file mode 100644
index 0f0c985..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test556/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class A {

-	int[] tab = new int[] {};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test556/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test556/A_out.js
deleted file mode 100644
index 2179c8c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test556/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class A {

-    int[] tab = new int[] {};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test557/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test557/A_in.js
deleted file mode 100644
index 0f0c985..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test557/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class A {

-	int[] tab = new int[] {};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test557/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test557/A_out.js
deleted file mode 100644
index 643df91..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test557/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class A {

-    int[] tab = new int[] { };

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test558/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test558/A_in.js
deleted file mode 100644
index 63eb5b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test558/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-@interface Ann {}

-

-public enum X {

-	@Ann A,

-	B,

-	@Ann C

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test558/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test558/A_out.js
deleted file mode 100644
index e4874b2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test558/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-@interface Ann {

-}

-

-public enum X {

-    @Ann A,B,@Ann C

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test559/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test559/A_in.js
deleted file mode 100644
index 63eb5b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test559/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-@interface Ann {}

-

-public enum X {

-	@Ann A,

-	B,

-	@Ann C

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test559/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test559/A_out.js
deleted file mode 100644
index dd2ed83..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test559/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-@interface Ann {

-}

-

-public enum X {

-    @Ann A, B, @Ann C

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test560/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test560/A_in.js
deleted file mode 100644
index 3a96b59..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test560/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class X {

-public String[] getStrings() 

-{

-   if (b) 

-   {

-      return new String[] {};

-}  // << wrong feed

-return x;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test560/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test560/A_out.js
deleted file mode 100644
index f5b1990..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test560/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class X

-{

-    public String[] getStrings()

-    {

-        if (b)

-        {

-            return new String[]

-                {};

-        } // << wrong feed

-        return x;

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test561/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test561/A_in.js
deleted file mode 100644
index 3a96b59..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test561/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class X {

-public String[] getStrings() 

-{

-   if (b) 

-   {

-      return new String[] {};

-}  // << wrong feed

-return x;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test561/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test561/A_out.js
deleted file mode 100644
index de427d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test561/A_out.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class X

-{

-    public String[] getStrings()

-    {

-        if (b)

-        {

-            return new String[] {};

-        } // << wrong feed

-        return x;

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test562/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test562/A_in.js
deleted file mode 100644
index 7794b8d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test562/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-Map map= new<String, Element> HashMap();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test562/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test562/A_out.js
deleted file mode 100644
index e5b4ee4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test562/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-Map map = new<String, Element>HashMap();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test563/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test563/A_in.js
deleted file mode 100644
index 7794b8d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test563/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-Map map= new<String, Element> HashMap();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test563/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test563/A_out.js
deleted file mode 100644
index 4a83dc6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test563/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-Map map = new<String, Element> HashMap();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test564/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test564/A_in.js
deleted file mode 100644
index 3a96b59..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test564/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class X {

-public String[] getStrings() 

-{

-   if (b) 

-   {

-      return new String[] {};

-}  // << wrong feed

-return x;

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test564/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test564/A_out.js
deleted file mode 100644
index 23d3608..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test564/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class X

-{

-    public String[] getStrings()

-    {

-        if (b)

-        {

-            return new String[]

-            {};

-        } // << wrong feed

-        return x;

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test565/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test565/A_in.js
deleted file mode 100644
index 9692c7f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test565/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class SomeClass {

-	public void foo() {

-		if ((x.getSomeLongValue == 100) 

-		    || (x.getSomeOtherValue == 200)) {

-			y = 5;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test565/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test565/A_out.js
deleted file mode 100644
index 9692c7f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test565/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class SomeClass {

-	public void foo() {

-		if ((x.getSomeLongValue == 100) 

-		    || (x.getSomeOtherValue == 200)) {

-			y = 5;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test566/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test566/A_in.js
deleted file mode 100644
index 5c5d901..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test566/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public enum X {

-    C {

-        void foo()

-        {

-        }

-    },

-    Y, Z;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test566/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test566/A_out.js
deleted file mode 100644
index 609cf6a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test566/A_out.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public enum X

-{

-    C

-    {

-        void foo() {

-        }

-    },

-    Y, Z;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test567/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test567/A_in.js
deleted file mode 100644
index b88d93c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test567/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class Example {

-	void foo(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6) {

-		return;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test567/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test567/A_out.js
deleted file mode 100644
index 91a5e94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test567/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	void foo(int arg1, int arg2,

-	         int arg3, int arg4,

-	         int arg5, int arg6) {

-		return;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test568/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test568/A_in.js
deleted file mode 100644
index b88d93c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test568/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class Example {

-	void foo(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6) {

-		return;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test568/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test568/A_out.js
deleted file mode 100644
index 91a5e94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test568/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	void foo(int arg1, int arg2,

-	         int arg3, int arg4,

-	         int arg5, int arg6) {

-		return;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test569/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test569/A_in.js
deleted file mode 100644
index b88d93c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test569/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class Example {

-	void foo(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6) {

-		return;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test569/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test569/A_out.js
deleted file mode 100644
index 51066cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test569/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Example {

-	void foo(int arg1, int arg2,

-				int arg3, int arg4,

-				int arg5, int arg6) {

-		return;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test570/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test570/A_in.js
deleted file mode 100644
index 4f9fab2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test570/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public enum X {

-	CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7, CONST8;

-

-	int constant = 4;

-

-	public static void main(String[] args) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test570/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test570/A_out.js
deleted file mode 100644
index 4f9fab2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test570/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public enum X {

-	CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7, CONST8;

-

-	int constant = 4;

-

-	public static void main(String[] args) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test571/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test571/A_in.js
deleted file mode 100644
index 4f9fab2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test571/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public enum X {

-	CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7, CONST8;

-

-	int constant = 4;

-

-	public static void main(String[] args) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test571/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test571/A_out.js
deleted file mode 100644
index d226446..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test571/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-public enum X {

-	CONST1,

-	CONST2,

-	CONST3,

-	CONST4,

-	CONST5,

-	CONST6,

-	CONST7,

-	CONST8;

-

-	int constant = 4;

-

-	public static void main(String[] args) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test572/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test572/A_in.js
deleted file mode 100644
index ba6d2e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test572/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-int[] a = new int[][] {{1}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test572/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test572/A_out.js
deleted file mode 100644
index ba6d2e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test572/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-int[] a = new int[][] {{1}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test573/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test573/A_in.js
deleted file mode 100644
index ba6d2e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test573/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-int[] a = new int[][] {{1}};
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test573/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test573/A_out.js
deleted file mode 100644
index 839802f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test573/A_out.js
+++ /dev/null
@@ -1 +0,0 @@
-int[] a = new int[][] { { 1 } };
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test574/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test574/A_in.js
deleted file mode 100644
index 0f86e44..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test574/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**

- * @author Zhao

- *

- * TODO To change the template for this generated type comment go to Window -

- * Preferences - Java - Code Style - Code Templates

- */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test574/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test574/A_out.js
deleted file mode 100644
index 42ad0df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test574/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**

- * @author Zhao

- * 

- * TODO To change the template for this generated type comment go to Window -

- * Preferences - Java - Code Style - Code Templates

- */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test575/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test575/A_in.js
deleted file mode 100644
index 20c0dd9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test575/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A

-{  public Object foo( @Ann("parameter") Object parameter ) {

-    return parameter;

-  }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test575/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test575/A_out.js
deleted file mode 100644
index 9a8c388..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test575/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	public Object foo(@Ann("parameter")

-	Object parameter) {

-		return parameter;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test576/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test576/A_in.js
deleted file mode 100644
index 499ee4f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test576/A_in.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import java.util.Map;

-

-interface MethodProperty<ActualType extends MethodProperty<ActualType>> {

-	public void copyFrom(ActualType other);

-}

-

-class MethodPropertyDatabase<Property extends MethodProperty<Property>> {

-	Map<String, Property> propertyMap;

-	

-	void read(String fileName) {

-	}

-}

-

-class FooProperty implements MethodProperty<FooProperty> {

-	String value;

-

-	public void copyFrom(FooProperty other) {

-		this.value = other.value;

-	}

-}

-

-class FooPropertyDatabase extends MethodPropertyDatabase<FooProperty> {

-}

-

-public class GenericsBug {

-	FooPropertyDatabase fooDatabase;

-	

-	public void readDatabase() {FooPropertyDatabase database = new FooPropertyDatabase();

-		

-		fooDatabase = readDatabase(database, "foodatabase.db");

-	}

-	

-	private<

-		Property extends MethodProperty<Property>,

-		DatabaseType extends MethodPropertyDatabase<Property>

-		> DatabaseType readDatabase(DatabaseType database, String fileName) {

-			database.read(fileName);

-			return database;

-		}

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test576/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test576/A_out.js
deleted file mode 100644
index ed40565..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test576/A_out.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import java.util.Map;

-

-interface MethodProperty<ActualType extends MethodProperty<ActualType>> {

-	public void copyFrom(ActualType other);

-}

-

-class MethodPropertyDatabase<Property extends MethodProperty<Property>> {

-	Map<String, Property> propertyMap;

-

-	void read(String fileName) {

-	}

-}

-

-class FooProperty implements MethodProperty<FooProperty> {

-	String value;

-

-	public void copyFrom(FooProperty other) {

-		this.value = other.value;

-	}

-}

-

-class FooPropertyDatabase extends MethodPropertyDatabase<FooProperty> {

-}

-

-public class GenericsBug {

-	FooPropertyDatabase fooDatabase;

-

-	public void readDatabase() {

-		FooPropertyDatabase database = new FooPropertyDatabase();

-

-		fooDatabase = readDatabase(database, "foodatabase.db");

-	}

-

-	private <Property extends MethodProperty<Property>, DatabaseType extends MethodPropertyDatabase<Property>> DatabaseType readDatabase(

-			DatabaseType database, String fileName) {

-		database.read(fileName);

-		return database;

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test577/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test577/A_in.js
deleted file mode 100644
index 736a72d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test577/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-public Object obj=new Object();public Object obj2=new Object();void foo() {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test577/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test577/A_out.js
deleted file mode 100644
index cfec79d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test577/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public Object obj = new Object();

-public Object obj2 = new Object();

-

-void foo() {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test578/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test578/A_in.js
deleted file mode 100644
index 379820b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test578/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-Object obj=new Object();Object obj2=new Object();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test578/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test578/A_out.js
deleted file mode 100644
index 71441bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test578/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-Object obj = new Object();

-Object obj2 = new Object();
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test579/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test579/A_in.js
deleted file mode 100644
index 89f8d59..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test579/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class Foo {

-

-	static class Point {	

-		static class Float{

-			float x;

-			float y;

-		}

-	}

-

-		void foo(Point.Float pts[]) {

-			int bar = 0;int jay = 1;for (int i = 0; i < 5;);}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test579/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test579/A_out.js
deleted file mode 100644
index 34937eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test579/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class Foo {

-

-	static class Point {

-		static class Float {

-			float x;

-			float y;

-		}

-	}

-

-	void foo(Point.Float pts[]) {

-		int bar = 0;

-		int jay = 1;

-		for (int i = 0; i < 5;)

-			;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test580/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test580/A_in.js
deleted file mode 100644
index e7fdc32..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test580/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class Foo {

-

-	static class Point {	

-		static class Float{

-			float x;

-			float y;

-		}

-	}

-

-		void foo(Point.Float[] pts) {

-			int bar = 0;int jay = 1;for (int i = 0; i < 5;);}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test580/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test580/A_out.js
deleted file mode 100644
index 85bbfe8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test580/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class Foo {

-

-	static class Point {

-		static class Float {

-			float x;

-			float y;

-		}

-	}

-

-	void foo(Point.Float[] pts) {

-		int bar = 0;

-		int jay = 1;

-		for (int i = 0; i < 5;)

-			;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test581/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test581/A_in.js
deleted file mode 100644
index bdd84c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test581/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.lang.reflect.Constructor;

-

-public class X {

-    public <T extends X> Constructor<T> ctor() {return null;}

-    static <T extends X> T f1() throws Exception{

-        return new X().<T>ctor().newInstance(new Object[0]);

-    }

-    static <T extends X> T f2() throws Exception {

-        return f1();}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test581/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test581/A_out.js
deleted file mode 100644
index 8827978..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test581/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import java.lang.reflect.Constructor;

-

-public class X {

-	public <T extends X> Constructor<T> ctor() {

-		return null;

-	}

-

-	static <T extends X> T f1() throws Exception {

-		return new X().<T> ctor().newInstance(new Object[0]);

-	}

-

-	static <T extends X> T f2() throws Exception {

-		return f1();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test582/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test582/A_in.js
deleted file mode 100644
index bdd84c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test582/A_in.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.lang.reflect.Constructor;

-

-public class X {

-    public <T extends X> Constructor<T> ctor() {return null;}

-    static <T extends X> T f1() throws Exception{

-        return new X().<T>ctor().newInstance(new Object[0]);

-    }

-    static <T extends X> T f2() throws Exception {

-        return f1();}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test582/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test582/A_out.js
deleted file mode 100644
index ed215c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test582/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import java.lang.reflect.Constructor;

-

-public class X {

-	public <T extends X> Constructor<T> ctor() {

-		return null;

-	}

-

-	static <T extends X> T f1() throws Exception {

-		return new X().<T>ctor().newInstance(new Object[0]);

-	}

-

-	static <T extends X> T f2() throws Exception {

-		return f1();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test583/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test583/A_in.js
deleted file mode 100644
index fb4924f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test583/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package p;

-public class X<T> {

-	  public class B {}

-	  public static void main (String[] args) {

-	    p.X<?>.B[] b = new p.X<?>.B[1];

-	  }

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test583/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test583/A_out.js
deleted file mode 100644
index 39eb543..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test583/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package p;

-

-public class X<T> {

-	public class B {

-	}

-

-	public static void main(String[] args) {

-		p.X<?>.B[] b = new p.X<?>.B[1];

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test584/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test584/A_in.js
deleted file mode 100644
index ce818a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test584/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class SomeClass {

-	public void foo() {

-	if ((x.getSomeLongValue == 100) 

-|| (x.getSomeOtherValue == 200)) {

-y = 5;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test584/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test584/A_out.js
deleted file mode 100644
index dfcc902..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test584/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class SomeClass {

-	public void foo() {

-		if ((x.getSomeLongValue == 100)

-		        || (x.getSomeOtherValue == 200)) {

-			y = 5;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test585/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test585/A_in.js
deleted file mode 100644
index 82789f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test585/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class SomeClass {

-	public void classifySetTwo(final Set<?> objects, final int value, final long

-			other,

-			final int device) {

-			for (final Object element : objects) {

-			System.out.println(element.getClass().getName());

-			}

-			}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test585/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test585/A_out.js
deleted file mode 100644
index f1d1bbe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test585/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class SomeClass {

-	public void classifySetTwo(final Set<?> objects, final int value,

-	        final long other, final int device) {

-		for (final Object element : objects) {

-			System.out.println(element.getClass().getName());

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test586/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test586/A_in.js
deleted file mode 100644
index ce818a0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test586/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class SomeClass {

-	public void foo() {

-	if ((x.getSomeLongValue == 100) 

-|| (x.getSomeOtherValue == 200)) {

-y = 5;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test586/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test586/A_out.js
deleted file mode 100644
index dfcc902..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test586/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class SomeClass {

-	public void foo() {

-		if ((x.getSomeLongValue == 100)

-		        || (x.getSomeOtherValue == 200)) {

-			y = 5;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test587/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test587/A_in.js
deleted file mode 100644
index 82789f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test587/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class SomeClass {

-	public void classifySetTwo(final Set<?> objects, final int value, final long

-			other,

-			final int device) {

-			for (final Object element : objects) {

-			System.out.println(element.getClass().getName());

-			}

-			}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test587/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test587/A_out.js
deleted file mode 100644
index f1d1bbe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test587/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class SomeClass {

-	public void classifySetTwo(final Set<?> objects, final int value,

-	        final long other, final int device) {

-		for (final Object element : objects) {

-			System.out.println(element.getClass().getName());

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test588/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test588/A_in.js
deleted file mode 100644
index e2a4362..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test588/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class X {

-  public static void main(String[] args) {

-    if(true) throw new RuntimeException("X");

-      loop: System.out.println("X");

-    }

-  }

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test588/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test588/A_out.js
deleted file mode 100644
index ffe4bc3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test588/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class X {

-	public static void main(String[] args) {

-		if (true)

-			throw new RuntimeException("X");

-		loop: System.out.println("X");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test589/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test589/A_in.js
deleted file mode 100644
index 8328d73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test589/A_in.js
+++ /dev/null
@@ -1,35 +0,0 @@
-public class IndentationSwitchCaseBug {

-	

-	public static void IBreakIndentation() {

-		

-		// Runnable with correct indentation

-		new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-		

-		int i = 5;

-		

-		switch (i) {

-		

-		case 0:

-			// Indentation works right here

-			break;

-			

-		case 1:

-			// Runnable with bugged indentation due to case

-			new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-		// You can see the indentation gets bugged when a runnable

-		// is used inside a switch-case statemente

-		break;

-		}

-		i = 7;		

-		System.out.println(i);

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test589/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test589/A_out.js
deleted file mode 100644
index 803a125..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test589/A_out.js
+++ /dev/null
@@ -1,34 +0,0 @@
-public class IndentationSwitchCaseBug {

-

-	public static void IBreakIndentation() {

-

-		// Runnable with correct indentation

-		new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-

-		int i = 5;

-

-		switch (i) {

-

-		case 0:

-			// Indentation works right here

-			break;

-

-		case 1:

-			// Runnable with bugged indentation due to case

-			new Runnable() {

-				public void run() {

-					// Do nothing

-				}

-			};

-			// You can see the indentation gets bugged when a runnable

-			// is used inside a switch-case statemente

-			break;

-		}

-		i = 7;

-		System.out.println(i);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test590/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test590/A_in.js
deleted file mode 100644
index 1f5d7e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test590/A_in.js
+++ /dev/null
@@ -1,33 +0,0 @@
-public class IndentationSwitchCaseBug {

-

-	public static void IBreakIndentation() {

-		// Runnable with correct indentation

-		new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-	

-		int i = 5;

-		

-		switch (i) {

-		case 0:

-			// Indentation works right here

-			break;

-		case 1:

-			// Runnable with bugged indentation due to case

-			new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-		// You can see the indentation gets bugged when a runnable

-		// is used inside a switch-case statemente

-		

-		break;

-		}

-

-		i = 7;		

-		System.out.println(i);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test590/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test590/A_out.js
deleted file mode 100644
index a509cd7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test590/A_out.js
+++ /dev/null
@@ -1,33 +0,0 @@
-public class IndentationSwitchCaseBug {

-	

-	public static void IBreakIndentation() {

-		// Runnable with correct indentation

-		new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-		

-		int i = 5;

-		

-		switch (i) {

-		case 0:

-			// Indentation works right here

-			break;

-		case 1:

-			// Runnable with bugged indentation due to case

-			new Runnable() {

-				public void run() {

-					// Do nothing

-				}

-			};

-			// You can see the indentation gets bugged when a runnable

-			// is used inside a switch-case statemente

-			

-			break;

-		}

-		

-		i = 7;

-		System.out.println(i);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test591/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test591/A_in.js
deleted file mode 100644
index 1f5d7e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test591/A_in.js
+++ /dev/null
@@ -1,33 +0,0 @@
-public class IndentationSwitchCaseBug {

-

-	public static void IBreakIndentation() {

-		// Runnable with correct indentation

-		new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-	

-		int i = 5;

-		

-		switch (i) {

-		case 0:

-			// Indentation works right here

-			break;

-		case 1:

-			// Runnable with bugged indentation due to case

-			new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-		// You can see the indentation gets bugged when a runnable

-		// is used inside a switch-case statemente

-		

-		break;

-		}

-

-		i = 7;		

-		System.out.println(i);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test591/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test591/A_out.js
deleted file mode 100644
index 73a28a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test591/A_out.js
+++ /dev/null
@@ -1,33 +0,0 @@
-public class IndentationSwitchCaseBug {

-

-	public static void IBreakIndentation() {

-		// Runnable with correct indentation

-		new Runnable() {

-			public void run() {

-				// Do nothing

-			}

-		};

-

-		int i = 5;

-

-		switch (i) {

-		case 0:

-			// Indentation works right here

-			break;

-		case 1:

-			// Runnable with bugged indentation due to case

-			new Runnable() {

-				public void run() {

-					// Do nothing

-				}

-			};

-			// You can see the indentation gets bugged when a runnable

-			// is used inside a switch-case statemente

-

-			break;

-		}

-

-		i = 7;

-		System.out.println(i);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test592/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test592/A_in.js
deleted file mode 100644
index 5fc30c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test592/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	   void foo(int arg1, int arg2,int arg3,int arg4,int arg5,int arg6, int arg7, int arg8, int arg9 ) {

-		   foo(arg1, arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);

-	   }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test592/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test592/A_out.js
deleted file mode 100644
index 3ffb2e0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test592/A_out.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public class A {

-    void foo ( int arg1,

-               int arg2,

-               int arg3,

-               int arg4,

-               int arg5,

-               int arg6,

-               int arg7,

-               int arg8,

-               int arg9) {

-        foo ( arg1,

-              arg2,

-              arg3,

-              arg4,

-              arg5,

-              arg6,

-              arg7,

-              arg8,

-              arg9);

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test593/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test593/A_in.js
deleted file mode 100644
index dbbfd82..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test593/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	public static final AliasLabelType ALLOWANCE_TAB_COMMAND_DELETE = new AliasLabelType("ALLOWANCE_TAB_COMMAND_DELETE");

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test593/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test593/A_out.js
deleted file mode 100644
index 6ee25c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test593/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	public static final AliasLabelType ALLOWANCE_TAB_COMMAND_DELETE =

-			new AliasLabelType("ALLOWANCE_TAB_COMMAND_DELETE");

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test594/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test594/A_in.js
deleted file mode 100644
index dbbfd82..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test594/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	public static final AliasLabelType ALLOWANCE_TAB_COMMAND_DELETE = new AliasLabelType("ALLOWANCE_TAB_COMMAND_DELETE");

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test594/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test594/A_out.js
deleted file mode 100644
index 6ee25c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test594/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class A {

-	public static final AliasLabelType ALLOWANCE_TAB_COMMAND_DELETE =

-			new AliasLabelType("ALLOWANCE_TAB_COMMAND_DELETE");

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test595/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test595/A_in.js
deleted file mode 100644
index 55de39e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test595/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo() {

-		AliasLabelType ALLOWANCE_TAB_COMMAND_DELETE;

-		ALLOWANCE_TAB_COMMAND_DELETE = new AliasLabelType("ALLOWANCE_TAB_COMMAND_DELETE");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test595/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test595/A_out.js
deleted file mode 100644
index d916cfe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test595/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	void foo() {

-		AliasLabelType ALLOWANCE_TAB_COMMAND_DELETE;

-		ALLOWANCE_TAB_COMMAND_DELETE =

-				new AliasLabelType("ALLOWANCE_TAB_COMMAND_DELETE");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test596/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test596/A_in.js
deleted file mode 100644
index c6e877b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test596/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	void foo() {

-		String ALLOWANCE_TAB_COMMAND_DELETE;

-		ALLOWANCE_TAB_COMMAND_DELETE += new AliasLabelType("ALLOWANCE_TAB_COMMAND_DELETE");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test596/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test596/A_out.js
deleted file mode 100644
index 8467656..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test596/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class A {

-	void foo() {

-		String ALLOWANCE_TAB_COMMAND_DELETE;

-		ALLOWANCE_TAB_COMMAND_DELETE +=

-				new AliasLabelType("ALLOWANCE_TAB_COMMAND_DELETE");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test597/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test597/A_in.js
deleted file mode 100644
index abeb929..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test597/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	MyLongClassName myLongVariable = someOtherLongCode(param1,param2,param3);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test597/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test597/A_out.js
deleted file mode 100644
index 22f1c8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test597/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	MyLongClassName myLongVariable = someOtherLongCode(param1,

-	                                                   param2,

-	                                                   param3);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test598/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test598/A_in.js
deleted file mode 100644
index abeb929..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test598/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	MyLongClassName myLongVariable = someOtherLongCode(param1,param2,param3);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test598/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test598/A_out.js
deleted file mode 100644
index 22f1c8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test598/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	MyLongClassName myLongVariable = someOtherLongCode(param1,

-	                                                   param2,

-	                                                   param3);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test599/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test599/A_in.js
deleted file mode 100644
index abeb929..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test599/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	MyLongClassName myLongVariable = someOtherLongCode(param1,param2,param3);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test599/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test599/A_out.js
deleted file mode 100644
index 02b7a02..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test599/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class A {

-	MyLongClassName myLongVariable = someOtherLongCode(

-	    param1,

-	    param2,

-	    param3);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test600/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test600/A_in.js
deleted file mode 100644
index d2c5a2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test600/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * 

- */

-public class A {

-	/* */

-	String s = "" /* toto */; //$NON-NLS-1$

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test600/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test600/A_out.js
deleted file mode 100644
index d2c5a2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test600/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * 

- */

-public class A {

-	/* */

-	String s = "" /* toto */; //$NON-NLS-1$

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test601/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test601/A_in.js
deleted file mode 100644
index ab7f9ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test601/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**

- * Binary expressions

- */

-class Example extends AnotherClass {

-	int foo() {

-		int sum = 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800;

-		int product = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10;

-		boolean val = true && false && true && false && true;

-		return product / sum;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test601/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test601/A_out.js
deleted file mode 100644
index 46a7272..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test601/A_out.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/**

- * Binary expressions

- */

-class Example extends AnotherClass {

-	int foo() {

-		int sum =

-		        100

-		        + 200

-		        + 300

-		        + 400

-		        + 500

-		        + 600

-		        + 700

-		        + 800;

-		int product =

-		        1

-		        * 2

-		        * 3

-		        * 4

-		        * 5

-		        * 6

-		        * 7

-		        * 8

-		        * 9

-		        * 10;

-		boolean val =

-		        true

-		        && false

-		        && true

-		        && false

-		        && true;

-		return

-		        product

-		        / sum;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test605/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test605/A_in.js
deleted file mode 100644
index 15ef46f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test605/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**

- * Constant arguments

- */

-enum Example {

-    GREEN(0, 255, 0), RED(255, 0, 0)

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test605/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test605/A_out.js
deleted file mode 100644
index dd97fda..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test605/A_out.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**

- * Constant arguments

- */

-enum Example {

-	GREEN(0, 255, 0),

-	RED(255, 0, 0)

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test606/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test606/A_in.js
deleted file mode 100644
index 3b80799..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test606/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class X {

-	int foo() {

-		return (1);

-	}

-	Object foo2() {

-		return (Object) bar();

-	}

-	StringBuffer bar() {

-		return null;

-	}

-	String foo3() {

-		return "";

-	}

-	int foo4(int i) {

-		return ++i;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test606/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test606/A_out.js
deleted file mode 100644
index e1aed4d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test606/A_out.js
+++ /dev/null
@@ -1,21 +0,0 @@
-public class X {

-	int foo() {

-		return(1);

-	}

-

-	Object foo2() {

-		return (Object) bar();

-	}

-

-	StringBuffer bar() {

-		return null;

-	}

-

-	String foo3() {

-		return "";

-	}

-

-	int foo4(int i) {

-		return ++i;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test607/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test607/A_in.js
deleted file mode 100644
index d9c1bc7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test607/A_in.js
+++ /dev/null
@@ -1,70 +0,0 @@
-package uol.proxy.parser;

-

-import java.nio.ByteBuffer;

-

-import uol.proxy.smtp.SmtpResponse;

-/**

- * Mensagens SMTP tem o seguinte formato:

- * <pre>

- * resposta de uma linha só:

- *  nnn [SP] lalalal [CR] [LF]

- * resposta de várias linhas:

- *  nnn [-] lalalalal [CR] [LF]

- *  nnn [-] lalalalal [CR] [LF]

- *  ...

- *  nnn [SP] lalalalal [CR] [LF]

- * 

- * 

- * 

- * */

-public class SmtpServerParser {

-    private static final int DIGITS = 0;

-    private static final int LINE_MODE_CHAR = 1;

-    private static final int SKIP_TO_EOL_AND_FINISH = 2;

-    private static final int SKIP_TO_EOL = 3;

-    

-    int state = DIGITS;

-    int code;

-    int pos;

-    boolean wellFormed = true;

-    

-    

-    public SmtpServerParser() {

-    }

-    

-    //formato: xxx lalal

-    public SmtpResponse parse(ByteBuffer buffer) {

-        outer: while (buffer.remaining() > 0) {

-            char c = (char) buffer.get();

-            ++pos;

-            switch (state) {

-            case DIGITS: //get number

-                if(Character.isDigit(c)) {

-                    code = code * 10 + (c - '0');

-                } else {

-                    wellFormed = false;

-                    state = SKIP_TO_EOL_AND_FINISH;

-                }

-                if(pos == 3)

-                    state = LINE_MODE_CHAR;

-                break;

-            case LINE_MODE_CHAR:

-                if(c == ' ')

-                    state = SKIP_TO_EOL_AND_FINISH;

-                else if(c == ' ')

-                    state = SKIP_TO_EOL;

-                else {

-                    wellFormed = false;

-                    state = SKIP_TO_EOL_AND_FINISH;

-                }

-                break;

-            case SKIP_TO_EOL_AND_FINISH:

-                

-                

-                break;

-            }

-        }

-        return null;

-    }

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test607/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test607/A_out.js
deleted file mode 100644
index 4bb4f4d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test607/A_out.js
+++ /dev/null
@@ -1,69 +0,0 @@
-package uol.proxy.parser;

-

-import java.nio.ByteBuffer;

-

-import uol.proxy.smtp.SmtpResponse;

-

-/**

- * Mensagens SMTP tem o seguinte formato:

- * <pre>

- * resposta de uma linha só:

- *  nnn [SP] lalalal [CR] [LF]

- * resposta de várias linhas:

- *  nnn [-] lalalalal [CR] [LF]

- *  nnn [-] lalalalal [CR] [LF]

- *  ...

- *  nnn [SP] lalalalal [CR] [LF]

- * 

- * 

- * 

- * */

-public class SmtpServerParser {

-	private static final int DIGITS = 0;

-	private static final int LINE_MODE_CHAR = 1;

-	private static final int SKIP_TO_EOL_AND_FINISH = 2;

-	private static final int SKIP_TO_EOL = 3;

-

-	int state = DIGITS;

-	int code;

-	int pos;

-	boolean wellFormed = true;

-

-	public SmtpServerParser() {

-	}

-

-	//formato: xxx lalal

-	public SmtpResponse parse(ByteBuffer buffer) {

-		outer: while (buffer.remaining() > 0) {

-			char c = (char) buffer.get();

-			++pos;

-			switch (state) {

-			case DIGITS: //get number

-				if (Character.isDigit(c)) {

-					code = code * 10 + (c - '0');

-				} else {

-					wellFormed = false;

-					state = SKIP_TO_EOL_AND_FINISH;

-				}

-				if (pos == 3)

-					state = LINE_MODE_CHAR;

-				break;

-			case LINE_MODE_CHAR:

-				if (c == ' ')

-					state = SKIP_TO_EOL_AND_FINISH;

-				else if (c == ' ')

-					state = SKIP_TO_EOL;

-				else {

-					wellFormed = false;

-					state = SKIP_TO_EOL_AND_FINISH;

-				}

-				break;

-			case SKIP_TO_EOL_AND_FINISH:

-

-				break;

-			}

-		}

-		return null;

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test608/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test608/A_in.js
deleted file mode 100644
index 4696256..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test608/A_in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**

- * Mensagens SMTP tem o seguinte formato:

- * <pre>

- * resposta de uma linha só:

- *  nnn [SP] lalalal [CR] [LF]

- * resposta de várias linhas:

- *  nnn [-] lalalalal [CR] [LF]

- *  nnn [-] lalalalal [CR] [LF]

- *  ...

- *  nnn [SP] lalalalal [CR] [LF]

- * </pre>

- * */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test608/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test608/A_out.js
deleted file mode 100644
index d2b668d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test608/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**

- * Mensagens SMTP tem o seguinte formato:

- * 

- * <pre>

- *   resposta de uma linha só:

- *    nnn [SP] lalalal [CR] [LF]

- *   resposta de várias linhas:

- *    nnn [-] lalalalal [CR] [LF]

- *    nnn [-] lalalalal [CR] [LF]

- *    ...

- *    nnn [SP] lalalalal [CR] [LF]

- *  </pre>

- */

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test609/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test609/A_in.js
deleted file mode 100644
index 268cdcc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test609/A_in.js
+++ /dev/null
@@ -1,21 +0,0 @@
-class A {

-	public void foo() {

-		int i = 0;

-		switch (i) {

-			case 0:

-				// handling 0

-				System.out.println("Case was 0");

-				// fall through

-			case 1:

-				// handling 1.

-				// some additional remark (also handles 0).

-				System.out.println("Case was 0 or 1");

-				break;

-			case 2:

-			// fall through

-			default:

-				// some default action

-				System.out.println("Case was :" + i);

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test609/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test609/A_out.js
deleted file mode 100644
index d527c38..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test609/A_out.js
+++ /dev/null
@@ -1,21 +0,0 @@
-class A {

-	public void foo() {

-		int i = 0;

-		switch (i) {

-			case 0:

-				// handling 0

-				System.out.println("Case was 0");

-				// fall through

-			case 1:

-				// handling 1.

-				// some additional remark (also handles 0).

-				System.out.println("Case was 0 or 1");

-				break;

-			case 2:

-				// fall through

-			default:

-				// some default action

-				System.out.println("Case was :" + i);

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/A_in.js
deleted file mode 100644
index 855d493..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class X {

-	

-	public void foo() {

-		displayNamelbl.setText(SignalingMessages.getString("AitPropertiesCompositeControlProvider.0")); // Generated //$NON-NLS-1$

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/A_out.js
deleted file mode 100644
index a7b5360..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class X {

-

-	public void foo() {

-		displayNamelbl.setText(SignalingMessages.getString("AitPropertiesCompositeControlProvider.0")); // Generated //$NON-NLS-1$

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/formatter.xml
deleted file mode 100644
index 7efbe43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test610/formatter.xml
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="8">
-<profile name="mhdk" version="8">
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="48"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="64"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_comments" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_header" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_html" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_source_code" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.line_length" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indentation.size" value="4"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="140"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="tab"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
-</profile>
-</profiles>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test612/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test612/A_in.js
deleted file mode 100644
index f78dd2e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test612/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test612;

-

-@interface Annot {

-	String value() default "";

-}

-@interface Annot2 {

-}

-public class A {

-	A() {

-	}

-}

-class B {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test612/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test612/A_out.js
deleted file mode 100644
index ce7ffcb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test612/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package test612;

-

-@interface Annot {

-String value() default "";

-}

-

-@interface Annot2 {}

-

-public class A {

-	A() {

-	}

-}

-

-class B {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test613/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test613/A_in.js
deleted file mode 100644
index f78dd2e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test613/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package test612;

-

-@interface Annot {

-	String value() default "";

-}

-@interface Annot2 {

-}

-public class A {

-	A() {

-	}

-}

-class B {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test613/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test613/A_out.js
deleted file mode 100644
index 6379586..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test613/A_out.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package test612;

-

-@interface Annot {

-	String value() default "";

-}

-

-@interface Annot2 {

-}

-

-public class A {

-A() {

-}

-}

-

-class B {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test614/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test614/A_in.js
deleted file mode 100644
index f177b05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test614/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-    void m() {

-        bug()

-    } //end of last method

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test614/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test614/A_out.js
deleted file mode 100644
index f35891b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test614/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	void m() {

-        bug()

-    } //end of last method

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test615/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test615/A_in.js
deleted file mode 100644
index 55e8ca3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test615/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class A {

-    void m() {

-        bug()

-    } //end of last method

-

-	/**

-	 * javadoc

-	 * @param s

-	 */

-    void foo(String s) {

-    	System.out.println();

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test615/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test615/A_out.js
deleted file mode 100644
index 7188f96..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test615/A_out.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class A {

-	void m() {

-        bug()

-    } //end of last method

-

-	/**

-	 * javadoc

-	 * @param s

-	 */

-	void foo(String s) {

-		System.out.println();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test616/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test616/A_in.js
deleted file mode 100644
index 0bfb5f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test616/A_in.js
+++ /dev/null
@@ -1,15 +0,0 @@
-public class A {

-	/**

-	 * javadoc

-	 * @param s

-	 */

-    void foo(String s) {

-    	System.out.println();

-    }

-    void m() {

-        bug()

-    } //end of last method

-    void bar(String s) {

-    	System.out.println();

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test616/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test616/A_out.js
deleted file mode 100644
index 05eba24..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test616/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class A {

-	/**

-	 * javadoc

-	 * @param s

-	 */

-	void foo(String s) {

-		System.out.println();

-	}

-

-	void m() {

-        bug()

-    } //end of last method

-

-	void bar(String s) {

-		System.out.println();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/A_in.js
deleted file mode 100644
index 4e2a296..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-String sqlQuery = " update load_element_details set " + 

-         " LOAD_STATUS = ?, " +

-         " start_ts = ? " +

-         " where load_id = ? " + 

-         " and elem_xml_name = ? ";

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/A_out.js
deleted file mode 100644
index a18f459..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-String sqlQuery = " update load_element_details set "

-                  + " LOAD_STATUS = ?, "

-                  + " start_ts = ? "

-                  + " where load_id = ? "

-                  + " and elem_xml_name = ? ";
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/formatter.xml
deleted file mode 100644
index e6bc303..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test617/formatter.xml
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<profiles version="8">
-<profile name="JRK" version="8">
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_comments" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_header" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_html" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_source_code" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.line_length" value="800"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indentation.size" value="3"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="800"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="3"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
-</profile>
-</profiles>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test618/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test618/A_in.js
deleted file mode 100644
index 4d4c7c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test618/A_in.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class X {

-public static void run(String args[]) {

-                Runnable a = new Runnable() {

-                        public void run() {

-                           // The following line is a problem

-                        }};

-                        int b = 42;

-        }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test618/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test618/A_out.js
deleted file mode 100644
index 461f331..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test618/A_out.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class X {

-	public static void run(String args[]) {

-		Runnable a = new Runnable() {

-			public void run() {

-				// The following line is a problem

-			}

-		};

-		int b = 42;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test619/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test619/A_in.js
deleted file mode 100644
index bb04cd6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test619/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public static void run(String args[]) {

-                Runnable a = new Runnable() {

-                        public void run() {

-                           // The following line is a problem

-                        }};

-                        int b = 42;

-        }

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test619/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test619/A_out.js
deleted file mode 100644
index 277eb72..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test619/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public static void run(String args[]) {

-	Runnable a = new Runnable() {

-		public void run() {

-			// The following line is a problem

-		}

-	};

-	int b = 42;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test620/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test620/A_in.js
deleted file mode 100644
index 450d6aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test620/A_in.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class Test {

-	public static <T> void service() {

-	}

-

-	public static void main( String[] args) {

-		Test.<String>service();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test620/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test620/A_out.js
deleted file mode 100644
index 189233a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test620/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class Test {

-	public static <T> void service() {

-	}

-

-	public static void main(String[] args) {

-		Test.<String>service();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test621/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test621/A_in.js
deleted file mode 100644
index 54d6e7e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test621/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class Test {

-

-        public static <T> void service() {}

-

-        public static void main(String[] args) {

-                Test.<String>service(); //XXX <<<<

-                Test t = new Test();

-                t.<String>service2(); //XXX <<<<

-                new Test().<String>service2(); //XXX <<<<

-        }

-

-        public <T> void service3() {    }

-

-        public <T> void service2() {

-                this.<T>service3(); //XXX <<<<

-        }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test621/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test621/A_out.js
deleted file mode 100644
index 76259a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test621/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-public class Test {

-

-	public static <T> void service() {

-	}

-

-	public static void main(String[] args) {

-		Test.<String>service(); //XXX <<<<

-		Test t = new Test();

-		t.<String>service2(); //XXX <<<<

-		new Test().<String>service2(); //XXX <<<<

-	}

-

-	public <T> void service3() {

-	}

-

-	public <T> void service2() {

-		this.<T>service3(); //XXX <<<<

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test622/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test622/A_in.js
deleted file mode 100644
index 4f8f0f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test622/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class X

-{

-Object

-classes = new Class<?>[] {};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test622/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test622/A_out.js
deleted file mode 100644
index 3062f41..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test622/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class X {

-	Object classes = new Class<?>[] {};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test623/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test623/A_in.js
deleted file mode 100644
index b472d94..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test623/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class X

-{

-Object

-classes = new Class<?>[0];

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test623/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test623/A_out.js
deleted file mode 100644
index eb15532..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test623/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class X {

-	Object classes = new Class<?>[0];

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test624/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test624/A_in.js
deleted file mode 100644
index 73d95a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test624/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-class X

-{

-Object

-classes = new Class<?>[][0];

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test624/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test624/A_out.js
deleted file mode 100644
index a470f5a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test624/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-class X {

-	Object classes = new Class<?>[][0];

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test625/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test625/A_in.js
deleted file mode 100644
index 75f2655..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test625/A_in.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class X {

-  void foo(String a, String b, String c, String d, String e) {

-    String s = 

-""+a+"1481040350234786852"+a+"4221089161101009540"+a+"-6170427739377068715"+a+"-1177132190659449391"+a+"4131074700002200800"+a+"6677964992006511358"+a+"2306558609804623499"+a+"4948023180683471330"+a+"-2100145421766851358"+a+"-3001840236323503671"+a+"-3489306742320139361"+a+"3121650335531224184"+a+"-4358571516300782510"+a+"1556752567442603373"+a+"-6962032360535946947"+a+"-5868276881678120598"+a+"4184984287312247424"+a+"-6721997605202472396"+a+"6617636037855015285"+a+"7266783356079704728"+a+"-8754237933673085347"+a+"-5817839502530750802"+a+"1583847687494714427"+a+"8951519125923785825"+a+"-3432930123357231360"+a+"-5451954362874316754"+a+"-33060006164703257"+a+"-7231434859633259989"+a+"608146062873988130"+a+"-5011488686871015606"+a+"9139797121591847350"+a+"-1886181867981415714"+a+"8841800972511057570"+a+"-4383413442757032866"+a+"8361387373543642695"+a+"-2639476650066862743"+a+"-2849702699413546749"+a+"1277733543017481226"+a+"-8031505870898978274"+a+"3666898192956052796"+a+"-7039203610026055703"+a+"-4819565592688393296"+a+"3501929543225217572"+a+"-52690043125786931"+a+"-241495509142914400"+a+"809240826052859383"+a+"6800981487534314533"+a+"-6524324695224261613"+a+"-3147335742845363307"+a+"-7905248515165548725"+a+"-8857719419158251696"+a+"3770652464690190606"+a+"-1373399701638993702"+a+"183252801833892442"+a+"-2177955360518900549"+a+"-6160006701784504259"+a+"4975115447927973030"+a+"-4048044119354860392"+a+"-1206947692733954083"+a+"-7546675664265042138"+a+"4602271912901891539"+a+"7473173362172414652"+a+"-2246791729943980270"+a+"5531429909557226193"+a+"9195798735326951519"+a+"-7045483396415238847"+a+"-4617871455255630821"+a+"-8404894183972146099"+a+"7953598172877176299"+a+"-4591952086688426778"+a+"-1793987074707489637"+a+"2792037511578283306"+a+"-3232503736907637185"+a+"-2854401600067174610"+a+"7250590952512651931"+a+"-6408953690487983106"+a+"6019268937581606852"+a+"5145016224651586273"+a+"5021772288190407942"+a+"5855473695186221281"+a+"7943605958236028936"+a+"8078550154530610313"+a+"-1501079708541374418"+a+"6016115716904921584"+a+"5563211195567408190"+a+"1881040805637616374"+a+"5715702334303460933"+a+"801733894157086669"+a+"-3883590202690143813"+a+"-4234177843042587717"+a+"-7799657549332828187"+a+"8916671952396843549"+a+"2499753011961486970"+a+"2055336783165487022"+a+"5030113625695917193"+a+"1677218655183543305"+a+"2735563907130567065"+a+"1466095306597867372"+a+"-8727329011390864623"+a+"-1657516366396933954"+a+"1607374426341641178"+a+"381434977513699282"+a+"-5934861424042302910"+a+"1021231529862004717"+a+"1731055950998634531"+a+"4758233516485895813"+a+"281446737818329412"+a+"2916827720194406987"+a+"-4113172032847483906"+a+"4322747256400475755"+a+"-231687239923818462"+a+"2273547761800209938"+a+"8708414041987305498"+a+"5172351889376721968"+a+"-7109740500688484275"+a+"1747355987716301695"+a+"-4148205799751382840"+a+"8621843109299178178"+a+"-2758866116022225638"+a+"107986368467906898"+a+"3331225483452456574"+a+"-3503271926995929130"+a+"6327215864271752255"+a+"8633503676753918289"+a+"737738740279256664"+a+"5359749581609185377"+a+"6887986159860721242"+a+"709533211623369924"+a+"-7319039509776682350"+a+"-3893683866865853153"+a+"-4554118729276913814"+a+"1842089193842209018"+a+"-7306235956629056753"+a+"506064168863913743"+a+"2068229051978835796"+a+"-5843192101805646909"+a+"-5406539933102955051"+a+"1122403234845453300"+a+"5907913918924720735"+a+"-7923005704484651019"+a+"2740447218889389967"+a+"-5914387748691021098"+a+"-4606301648811218504"+a+"-1402461674467800600"+a+"1284294194480673802"+a+"6079052293509738623"+a+"-5305558616682058769"+a+"-9075078034265068551"+a+"6740435740643124920"+a+"-3620468974957409281"+a+"-6103977201243493000"+a+"5368487237343320842"+a+"6633626677208845104"+a+"22731020784882473"+a+"-4176021822967539412"+a+"-2840947198397506816"+a+"4536069560910605740"+a+"-8830348710729920749"+a+"-2484808592722030395"+a+"-9135645213656835260"+a+"645468150627326857"+a+"-5289577660716570470"+a+"5600795185832650085"+a+"-6233102104916270269"+a+"-5616058648703769654"+a+"1454407521439030492"+a+"-1388436161134796784"+a+"-448829651581235474"+a+"5228581645372843926"+a+"-7390755550853889605"+a+"-652993831235872211"+a+"8520564877188209467"+a+"2149850520389958326"+a+"-6598921222840378783"+a+"155434286759749129"+a+"-6463276537914228062"+a+"8697061974073234456"+a+"-7520264323459351625"+a+"-1878767623989246124"+a+"371434180225132960"+a+"-2702100704900116914"+a+"4546891744423706860"+a+"1072969202997083041"+a+"-1174246552945796297"+a+"-6958310238776559600"+a+"5809436737640419316"+a+"-2142071912190438678"+a+"2645715594693023084"+a+"-6512232937988344651"+a+"1429487728719130118"+a+"-5927254500284655605"+a+"-5358597567566518840"+a+"-5619570179618968386"+a+"6634856841420071965"+a+"2248249447063079234"+a+"-601650796422949416"+a+"9016586536771112524"+a+"-8990134722571734151"+a+"7442057801788219574"+a+"-7069696912435026002"+a+"-5965822922725810779"+a+"156012994370918939"+a+"-533334545036251923"+a+"-6428163249820294563"+a+"-8771354710879578701"+a+"-7474607303623235764"+a+"5552920467743308115"+a+"3463850839073631872"+a+"-4312138652056332156"+a+"-5668951482761994218"+a+"4160357046780118714"+a+"-7651487471925116236"+a+"-1904737379948122165"+a+"-2468995372736695351"+a+"2384954334609806293"+a+"8835010373198815257"+a+"3072665879620869470"+a+"-4708484196263690120"+a+"-4417768926177692229"+a+"8631330465661935317"+a+"-6005069660084716618"+a+"-4841849265321973894"+a+"9114271054544617578"+a+"4474715891292785297"+a+"4598426000596856434"+a+"4456642120330654185"+a+"-6811568388529193150"+a+"-2267510729992483078"+a+"4841297221909766868"+a+"-3341202061707655898"+a+"-5168523749277303418"+a+"-2597086147703835583"+a+"2189984040194367554"+a+"-163417043572594861"+a+"-875917009738735905"+a+"3449040927530609564"+a+"-1187542268316866362"+a+"-2086526303156399145"+a+"7170110557699721176"+a+"-8831808421158147134"+a+"-2934245923885012593"+a+"-693181876282269730"+a+"2801286762013136483"+a+"-893681230793990797"+a+"7244823961262144366"+a+"7661464547005099735"+a+"-4504020848703526318"+a+"7488365098065319918"+a+"-2617611221309623462"+a+"-5347117576177944844"+a+"7577407951576481247"+a+"2119607573247061369"+a+"8742365859276522220"+a+"-2878190955845298771"+a+"9170894970442468900"+a+"-3198099095730567203"+a+"6600662185925388516"+a+"-7481833413594991555"+a+"7259883778198475684"+a+"-6228247879160851225"+a+"8054150403399233954"+a+"220291732862417955"+a+"9170008991903320769"+a+"-7386177775713107223"+a+"-7067143718707886163"+a+"-2829159460833567837"+a+"-7650573416145777597"+a+"-7827174279991915210"+a+"8015033616728249392"+a+"7953520474367629891"+a+"-6763631084009130537"+a+"2134465028909734057"+a+"-7582421904070398088"+a+"-4021434106474594994"+a+"-3241797462076497267"+a+"3790367970897076255"+a+"1731158696763449719"+a+"6009130197176253524"+a+"-4330099148179311782"+a+"-2681893572588916488"+a+"4717529785599537732"+a+"-5355393305350863448"+a+"-2562931193903110252"+a+"7825500412654385050"+a+"6123135506603100825"+a+"-7135991812968836383"+a+"7075040822983804281"+a+"6085292636084411374"+a+"-9016517018808310700"+a+"6296680626540498265"+a+"466471971943076520"+a+"3194706547855404513"+a+"-3469234296613008650"+a+"4661562681731629745"+a+"-6869862919399727963"+a+"-5470269392986725915"+a+"-7408510499818361817"+a+"-4634700534304790197"+a+"6141253999365640538"+a+"4914795942574316909"+a+"-5923510425951684560"+a+"-6686698052467837745"+a+"-6860754215509481583"+a+"-8161199778461002892"+a+"6790420767590453887"+a+"3160962446495709863"+a+"-7086844264601577605"+a+"-8019277360711651081"+a+"8694094250492531239"+a+"-822512736791075198"+a+"7037467247885361964"+a+"-8068773511219242634"+a+"-2221622380638547363"+a+"4141721356317507284"+a+"-9120482348318183652"+a+"-2094945145080548489"+a+"6509511066194612988"+a+"-5631846957641451179"+a+"-7124789435189368153"+a+"530620392849491203"+a+"2063084158833109250"+a+"5705014193930379134"+a+"6523714474084616334"+a+"4744000852602101799"+a+"1085239330415640337"+a+"-5155417748224605425"+a+"6270555189236303732"+a+"-7737271311797543051"+a+"-3574839633885944337"+a+"5058890598150144652"+a+"7746403854998588002"+a+"7022856657575309952"+a+"3716738500463555846"+a+"-7421401014154125893"+a+"1421729999303688516"+a+"8144520783350364771"+a+"-5375150715246560540"+a+"-6811495605014783449"+a+"-1629085212768444054"+a+"7842872870387873339"+a+"-3144069724554953284"+a+"1578489136450795424"+a+"-1524962835898716664"+a+"1255628362210394024"+a+"-4945766756743361564"+a+"-2368749883429063495"+a+"-5443141608452157258"+a+"9211129063819614033"+a+"7114918026427046997"+a+"-348788006629170359"+a+"-1510339221551201808"+a+"2225031253386166621"+a+"-3555530065681793234"+a+"-5635090599347843861"+a+"-3131108975972138601"+a+"7906458026818974202"+a+"8426579347837902385"+a+"-4881890627049232515"+a+"-8916821826259001490"+a+"185948291026094553"+a+"8201360044857003333"+a+"3340205317187459493"+a+"1019013224452838302"+a+"-5640595948335979856"+a+"-707071934361179406"+a+"-8857596830200344761"+a+"-1375091965299661006"+a+"-9072009683459314761"+a+"5000988210264232168"+a+"4271317853521960464"+a+"2678753875442511004"+a+"-6470626338166122964"+a+"-6078726263448693640"+a+"-6126660456097596945"+a+"-5224548713170778066"+a+"2951275643838239183"+a+"1249793927341201177"+a+"-3560869420720178794"+a+"-6737236972610500446"+a+"6906382391763753318"+a+"3701285808445941477"+a+"-6137404772056077571"+a+"951068276649955219"+a+"8972614952190332730"+a+"1350001466189426457"+a+"-4081913571588491296"+a+"3537255041914161665"+a+"-3922351533529732712"+a+"-2145964578134968167"+a+"2394200010169686588"+a+"4820435476375140561"+a+"3980439875552079698"+a+"-7848606640652240279"+a+"8056889380412121302"+a+"-1735987219969504949"+a+"-2429262127212559301"+a+"2716470408164555317"+a+"7619986510078673844"+a+"-4810946803905692262"+a+"591257503510807983"+a+"1008145613734886602"+a+"-791769094042351455"+a+"1551415766926632272"+a+"2128049662514755336"+a+"5674375202248066714"+a+"-3294574351697152083"+a+"6409892386317067743"+a+"-7779995689030042070"+a+"7663455663253941309"+a+"6994870508259434411"+a+"7092158122453603104"+a+"-7504376776657473544"+a+"-1548660132363324694"+a+"-8111792772550137166"+a+"-3716421601494476848"+a+"-5471408931853636388"+a+"858470282848534786"+a+"-1944492615617314147"+a+"6842258904020299278"+a+"3465357212653391171"+a+"1010858684300746374"+a+"-2376621027797858933"+a+"-5234350247437932577"+a+"3527455355230723615"+a+"-4441639340996737636"+a+"9162770176271747679"+a+"-3307692074822023253"+a+"-1265560468988039837"+a+"4174084901504664334"+a+"408216311741101376"+a+"6179424481850599613"+a+"8464529436195546763"+a+"-2679225514021083446"+a+"5412693249303878683"+a+"6761016599191336902"+a+"-9053227710679826671"+a+"-4971616606140021661"+a+"1470984573745249052"+a+"794919692872301402"+a+"-666467506414374151"+a+"-2822698483079789682"+a+"601378322432915769"+a+"5638644728798047345"+a+"5789378409007337798"+a+"-5994164160329416538"+a+"-6667535132090352473"+a+"4204563008748740328"+a+"5678902566930339970"+a+"-7223445616360784599"+a+"-6607953497851883678"+a+"-6311838047415961090"+a+"-6309447620271201478"+a+"229050938505420857"+a+"-1225014043780951126"+a+"2390215148115329239"+a+"5072184776177919104"+a+"-744335414291888356"+a+"-3089609556691187584"+a+"-3618865863102092548"+a+"192388795641361512"+a+"4587735395282822589"+a+"217485062671670830"+a+"-6269736618400789287"+a+"5414980239431986315"+a+"-528064624972663000"+a+"1295964769301191356"+a+"5298404442990088254"+a+"6791548406998914183"+a+"-5186505763910713839"+a+"-2064823676363944325"+a+"7298397795617553631"+a+"1092691793025769084"+a+"9199008286310061390"+a+"8496944026982897790"+a+"-7175699054101917484"+a+"2351940215168480144"+a+"-7887520388437077927"+a+"-2547766195274466532"+a+"3651088260374341913"+a+"5677078378225324141"+a+"-5218271904647533617"+a+"6506102331379269744"+a+"2047580395586681359"+a+"1254456669244453310"+a+"-2493503447457657357"+a+"7748743143809150681"+a+"3187580147546249210"+a+"-447565130764562251"+a+"-5901868264771610836"+a+"-5344772102755168902"+a+"4399354202412978048"+a+"5761746177647931272"+a+"7346021349430542978"+a+"7407653297412847803"+a+"-1432082633278910928"+a+"4386781250096772591"+a+"3078677237004686885"+a+"-8270569093055494458"+a+"-3066819790639523079"+a+"6921413523262053800"+a+"3815857059671909350"+a+"6459842709565553675"+a+"5496182702002478767"+a+"2919041266384629492"+a+"6301254303467952572"+a+"167977270899707836"+a+"4107450151680801929"+a+"-6184483674271871721"+a+"-3113466523343527359"+a+"4255706773140144210"+a+"2045276824006752933"+a+"-1006056944868633893"+a+"-163374204176050893"+a+"-3536312633372723194"+a+"4030026566945749635"+a+"916143771948351245"+a+"-4137939988132726797"+a+"-1208503070443601575"+a+"-9073410561248509562"+a+"879225941445259519"+a+"6704588155652656649"+a+"4037880612097133452"+a+"6650953345091703159"+a+"6557621267180188933"+a+"-3799489167477556834"+a+"4616142957114179369"+a+"-555511666653343487"+a+"-7787414996794187528"+a+"-2320895672018981888"+a+"-4115116336922975624"+a+"-508083592730508234"+a+"-1790339700600684362"+a+"-1891368734208039390"+a+"4162487874602061322"+a+"2507934636732405000"+a+"-3569041016842825057"+a+"3727230352401811737"+a+"6081104416614609202"+a+"-2378349176311649327"+a+"8338625078774305818"+a+"4236364192447051424"+a+"1766223847372056199"+a+"-1509108249653323828"+a+"-5341684167359652338"+a+"-8444676169083518571"+a+"3761876718263359588"+a+"-3523680927151552615"+a+"3042749665226854761"+a+"3749113535163919993"+a+"3759366097795773800"+a+"-7270464562060963395"+a+"-3404645697486842979"+a+"684912297827615732"+a+"-8328573509093542665"+a+"-329547391816168161"+a+"8320915285235489566"+a+"-8439264109714576560"+a+"-7555539153012708426"+a+"-1455904067809789555"+a+"-3282840298752750619"+a+"-6372126815260401415"+a+"2793000487951069203"+a+"3407829716811135029"+a+"-3550687721123470352"+a+"2334961244010951939"+a+"3260897395698896570"+a+"4264152409350870060"+a+"-4581604198263834689"+a+"593651731243654052"+a+"5219278619370393377"+a+"8180789381611215595"+a+"335944578956738265"+a+"-4099322903435145803"+a+"-5208733150508251139"+a+"6921838573247464652"+a+"-7343860276513066939"+a+"1074796594127796533"+a+"6736037593502794699"+a+"3930958507434110353"+a+"5997417370432515857"+a+"7187262605211107782"+a+"-922608839179471544"+a+"-3471824513017619234"+a+"-4620638843369421105"+a+"3839702874104484142"+a+"-8879066745942443015"+a+"8583264167167467194"+a+"8017617442295035923"+a+"720409418337220568"+a+"-7137080051336955740"+a+"820362479923112978"+a+"-7587987020499938058"+a+"-1736856639032582832"+a+"5300485442178576853"+a+"4669115833793700662"+a+"8717027790748151190"+a+"-418059405227441973"+a+"4902234911110449242"+a+"-8615106177201876902"+a+"2642338947881553044"+a+"7939176766883596700"+a+"1697016693253389256"+a+"-7698790186559863273"+a+"4627520723163497364"+a+"-6562331579564087360"+a+"1409651656149384948"+a+"-8371366983499774489"+a+"-6611959236955224128"+a+"2517362013853074515"+a+"3939673655674821754"+a+"-6007531133325330260"+a+"8479159933661814342"+a+"1845989680250192409"+a+"225054535985556281"+a+"-6188100461697042647"+a+"5374211210369521877"+a+"163959847081807350"+a+"6580469580461298388"+a+"-1002731784954961273"+a+"-6503468674254937564"+a+"-8857927768785141898"+a+"1886814526626193459"+a+"-2054416122836792110"+a+"-4730857486151345556"+a+"-3314785731153835706"+a+"1745408277008263680"+a+"5485482250833588602"+a+"1901945721551946729"+a+"-6559784953015731783"+a+"-5502687098156415701"+a+"-8096097547161354797"+a+"-307294365139042468"+a+"7597534968367450948"+a+"-4693142428350838425"+a+"-8569821400048670315"+a+"51756053461047436"+a+"6145399184482338050"+a+"-1269825730684672598"+a+"-8136004504129724580"+a+"-6708170860115238208"+a+"-2467746284360258768"+a+"8902235073100629169"+a+"189609796856280361"+a+"8027665317964735814"+a+"-7153504149551054926"+a+"-5187209899599232647"+a+"8540839755479381215"+a+"-1319086816580691984"+a+"-7516852006138817907"+a+"-5051221376794367033"+a+"-3579739334939429689"+a+"3098919600942247826"+a+"-2519365444798061973"+a+"2204513501049642145"+a+"-6234925272255791092"+a+"-3914224114071635323"+a+"-7512919820331381478"+a+"2244229534103919315"+a+"1119622915521220416"+a+"4973425882801212711"+a+"888294988592812045"+a+"-2993218281966203028"+a+"-7416276224986099499"+a+"-3201845045715304871"+a+"7916061662832482521"+a+"-6429005121216132546"+a+"4638130389145698725"+a+"-948986391460678656"+a+"2040599255252723129"+a+"2389151452553418337"+a+"-7194285399888931477"+a+"3523430492558376836"+a+"-6231585169594436085"+a+"-5841617642246119760"+a+"-8785142203731382456"+a+"4139787392364890707"+a+"-824771567737812271"+a+"-9049356826976837046"+a+"1543457604506053183"+a+"-8855709180263493025"+a+"-4086029732019652815"+a+"90590069959604498"+a+"7374902126537519544"+a+"5412393938850166428"+a+"-6589069323077828363"+a+"-1136016124815333328"+a+"-2530288730062427647"+a+"9141260983043855235"+a+"-2243560951402688244"+a+"2697023448685250190"+a+"8223867111341762760"+a+"-5500453568140873838"+a+"-5551678114273627129"+a+"7711796121740538204"+a+"2416459930837400994"+a+"-4986134594990721078"+a+"-6594545860032484707"+a+"-8488892579407720307"+a+"-4950191686469776760"+a+"-5705045902392669136"+a+"-5870378255948101081"+a+"3085694771349171032"+a+"4045381385104452693"+a+"-537473159150314420"+a+"6405721852917755173"+a+"5909632865333497015"+a+"3023990489803862857"+a+"5997722854481417133"+a+"7368862447064249271"+a+"-3558359757113329685"+a+"886745892017187721"+a+"-2376768597770873246"+a+"-956660966571699164"+a+"-3438286909229699850"+a+"465585013972219292"+a+"4997419886346194306"+a+"7874632479463897943"+a+"4230767999778323743"+a+"2933416313595490031"+a+"-3661566128442997850"+a+"-9204100771314909860"+a+"297875109783269234"+a+"5554793942304582226"+a+"6138216312792961386"+a+"-3472526723345394200"+a+"1383344105427170622"+a+"-8390998045425633158"+a+"8361230649785801199"+a+"8128422357710829775"+a+"-7076636178968793451"+a+"-6879189373271244675"+a+"2149279496697403228"+a+"2163874995004306059"+a+"-37608952743346481"+a+"-4885142876404553640"+a+"3957092134099679064"+a+"8957662328709322940"+a+"6596532226374168839"+a+"-1153804182586454676"+a+"7915386076772517778"+a+"3597944315336510115"+a+"2586844712538139804"+a+"-2949556178161873667"+a+"-8127379747417804230"+a+"3506009531395375525"+a+"-3799767679885215310"+a+"2737451203785104562"+a+"5151555140583328389"+a+"6131176129975873998"+a+"9110902753217664431"+a+"-8890925772445109480"+a+"-1129142490829084372"+a+"7582080677413993035"+a+"-4789780502432213058"+a+"8426741383105462303"+a+"-7514443426873435923"+a+"-6096386960435665425"+a+"1403493976840512847"+a+"1200644717268219291"+a+"-1654479055663475959"+a+"3892352692045151151"+a+"-628374969525061995"+a+"1611638561673781188"+a+"75698269457877956"+a+"560196518908944166"+a+"1704180641177725702"+a+"1645123699159403958"+a+"9158917099811213033"+a+"-633837023015943918"+a+"-1216327101793702433"+a+"-7939715734589699598"+a+"6289958106814327876"+a+"-8084522417454129195"+a+"-8951157286790813026"+a+"8733634768783483612"+a+"164169779436237861"+a+"-5613076795169777676"+a+"-6691306822112669306"+a+"-2267089117411867845"+a+"-6267882092027247645"+a+"-3218696406030596964"+a+"-4620987111405818850"+a+"-7623635815148905797"+a+"-3199414663287922089"+a+"-1971270715359367144"+a+"-3146133425464229454"+a+"203048746228635246"+a+"-869382991009092515"+a+"4396580273807758428"+a+"5924374890894969809"+a+"-962029163140355769"+a+"-2447328698446720681"+a+"6648306985125948285"+a+"3792332857906789069"+a+"-2592849401678093154"+a+"-2229214953895616599"+a+"60121393842835511"+a+"-4644566344032056770"+a+"-3670852882719285073"+a+"-4795459485337427650"+a+"-3078872474700468634"+a+"6082446142445692287"+a+"7661890440999892250"+a+"2718377609076393985"+a+"-1329549452134874227"+a+"667147203567492144"+a+"5699077439330337124"+a+"-3395250238968386971"+a+"7468957273606729554"+a+"6681693604205340338"+a+"-5819455968905345675"+a+"7377517611865477086"+a+"-4171662381900114945"+a+"8558322651462810286"+a+"5927326833461217817"+a+"-5391460157352293018"+a+"456166417270507267"+a+"-2089775772693106802"+a+"-2473806311188227713"+a+"-5166358583590604295"+a+"577211619565310319"+a+"-7574180351348641021"+a+"-1384162338784655427"+a+"-1949917261552336103"+a+"-7646197583621832582"+a+"7157828596321324413"+a+"-6712065070950544567"+a+"2236061909679704394"+a+"4873628242313201150"+a+"-6464311572388006218"+a+"4304099916847392129"+a+"8848098664611212439"+a+"6898172476461689080"+a+"3345247779380902440"+a+"-6997871520454550747"+a+"-6721226268986105588"+a+"7746073604671358475"+a+"-4028896770080478318"+a+"2249919745243282647"+a+"5980588423799317305"+a+"-1821824395713650690"+a+"-2882046706545431689"+a+"7061967606227304354"+a+"-2573913225429695307"+a+"-4648857271845470150"+a+"-4795319601251648610"+a+"-2449406718613084816"+a+"676112606062692505"+a+"7077775243255965517"+a+"8279439461933769619"+a+"-8967593294134626925"+a+"1463924050027057153"+a+"4108746256100642153"+a+"671669840699843877"+a+"-1937390517977201347"+a+"-8026937897785993585"+a+"7254950325548462821"+a+"2857869494438805734"+a+"-6367096460053409785"+a+"5906509814179036904"+a+"-7118684737034387269"+a+"-5966644349827364178"+a+"1784340785351647342"+a+"6898187943583870772"+a+"8254792895615645961"+a+"-954677375447462376"+a+"-8607649526798219183"+a+"-682926799495397982"+a+"-7356576987957102704"+a+"-1441103736382094588"+a+"7744146107024206197"+a+"8298974751122681058"+a+"-8158073329334910408"+a+"-7541746284309130733"+a+"6396900582423006721"+a+"-4405495884594382679"+a+"-7870995558099949174"+a+"-4609593285056091858"+a+"-5738979543098896126"+a+"-7068293602902740431"+a+"118869759956105524"+a+"1415505245870596096"+a+"1358436106725431016"+a+"7188423186761477302"+a+"232476152356452489"+a+"-1083161878765589385"+a+"-2475947859666233849"+a+"-1723796127851316742"+a+"-2367624063964726530"+a+"2586319451174446919"+a+"-8372939562443165929"+a+"-2162489972833552703"+a+"-7318017362543869778"+a+"-648659211385937817"+a+"3773520909212276149"+a+"-585681434878711978"+a+"1278446472326031063"+a+"-6858913687097261167"+a+"6725941661693479136"+a+"-7835171098254580731"+a+"8517002855346448475"+a+"1727317643390553286"+a+"167454846277770108"+a+"-4484400628788161122"+a+"-1249045407222665664"+a+"-4125864658252067639"+a+"-232876471594021678"+a+"7566742549724119545"+a+"2431450474966577201"+a+"7758435135139184031"+a+"-926428227324858098"+a+"-210572359641175956"+a+"-7452750196656904966"+a+"-5599738118885185771"+a+"-7813953591554086464"+a+"-5047474818723058090"+a+"4439034982562431759"+a+"-5466270553032256710"+a+"2712169492000026204"+a+"1862737586753002392"+a+"-5353038579107901178"+a+"-6947450633948884256"+a+"7974444038241854650"+a+"-2049784300038248681"+a+"-768795663611722216"+a+"3970864286397878815"+a+"8814423706677119382"+a+"-5399130435676630212"+a+"4506091385324763812"+a+"-5107634537661317933"+a+"1839010175740881169"+a+"6936175302234839667"+a+"-6325912105782826835"+a+"393680543852720921"+a+"-3448458068233951442"+a+"-4019906657169970257"+a+"7620172460174228567"+a+"-8997998808030605866"+a+"8771659726844811350"+a+"3428423575986468581"+a+"7632781606969980013"+a+"6762091554535732016"+a+"2622604169364957653"+a+"1232024216574036364"+a+"-371534179473878306"+a+"3501875876588075794"+a+"-9187612436207592870"+a+"-5980761402510607581"+a+"4624164498132835644"+a+"1676395763050685357"+a+"-3827762186089381253"+a+"8006025736889493931"+a+"8649369890583457083"+a+"7984987985730213362"+a+"5095547086850321711"+a+"3654889101665666601"+a+"4772050352648720696"+a+"4673711977958914584"+a+"3690722882959687762"+a+"3652961941639885094"+a+"915177957041372336"+a+"8394835670723402780"+a+"-6283516835760048860"+a+"2682052802898306863"+a+"-39133921885058876"+a+"7182677795321372732"+a+"-1123137732347862838"+a+"-7187211477441315499"+a+"2107865782772483260"+a+"7029138672815376251"+a+"-5246589834603524916"+a+"4946578063768694189"+a+"-3327990999892404608"+a+"1410047753342829601"+a+"-607158855661428843"+a+"526205912768181200"+a+"-3353974441997849823"+a+"4345004848608271928"+a+"-8028878697252563721"+a+"6992865860785518941"+a+"89887283317978958"+a+"-4890367390986524656"+a+"5395246551033333412"+a+"9149027322776474227"+a+"1888231617770768351"+a+"1832173972123517627"+a+"8850607358448321718"+a+"-3573842940544988617"+a+"-2515993210354900402"+a+"-2970572681876409710"+a+"-8812829507312878041"+a+"-5126214287592177836"+a+"-593209255878052551"+a+"4279401441478329262"+a+"5735936342676945242"+a+"3857279221947912310"+a+"3485153424716732642"+a+"-662050485808185745"+a+"-72690764741550959"+a+"-5532883488824715058"+a+"393326004849090479"+a+"3923986657219931129"+a+"-7948340736432765324"+a+"-7006347688709669743"+a+"-5322266596584016214"+a+"6389240576921692850"+a+"8562031855739319952"+a+"8315930557757687161"+a+"-8086248775449979391"+a+"7373112891709936326"+a+"-4607557960451455531"+a+"-3205406892078035134"+a+"8263877443067298183"+a+"-2223029705465288029"+a+"-8925415624073416936"+a+"-6791064439277026258"+a+"-5042775155189130958"+a+"4776655052699757437"+a+"-4933088522838694001"+a+"8330184652392589698"+a+"1637070176593639835"+a+"-5059066217951619637"+a+"4014727029744109400"+a+"-22434511743124473"+a+"8666756317556173953"+a+"6703726588124124616"+a+"6076365483039687154"+a+"6591634391558659210"+a+"-3348044019496228538"+a+"-627454787052259341"+a+"-6243419827278238015"+a+"-776770814135022500"+a+"7132449682874312048"+a+"2085761559853657487"+a+"6058593733864972686"+a+"4050640859539192274"+a+"3970990063816635689"+a+"-647266916803895004"+a+"7221575838847750917"+a+"-5566112000340108090"+a+"-6280641768631632960"+a+"8795263388574407420"+a+"-7365448443375986378"+a+"7376974628227097364"+a+"2243540925361024038"+a+"6959654388375811495"+a+"-1771171730378641387"+a+"-6613010221741265634"+a+"-6613598152109663886"+a+"5659412131893682807"+a+"2038713578902245882"+a+"8696094200527592009"+a+"-6769680772788512930"+a+"-538388923584348667"+a+"-5779831060953309150"+a+"3643283202091378046"+a+"-2808307024288961849"+a+"488009925522109610"+a+"-1687403487093613780"+a+"253095126108852649"+a+"-7423002503273461200"+a+"-5689624720828647673"+a+"9212972063823063964"+a+"1186793416532289086"+a+"6918511817379999296"+a+"-4755159465512075650"+a+"8121227818115496539"+a+"-8485767623736951889"+a+"5020011809071985215"+a+"-6500273869653352010"+a+"-2663957737793529547"+a+"-8101377298829715465"+a+"326463995359446173"+a+"1484830176553892122"+a+"-4579692127371314343"+a+"-6097801910883493102"+a+"525734517143906156"+a+"-1165711456870362277"+a+"-1658430596698325539"+a+"-4983979316745651326"+a+"-7367822663026016031"+a+"5536666042452556266"+a+"7831167091211321400"+a+"-1686744937172643124"+a+"4709613367890590679"+a+"9117545435945354623"+a+"3908543326474915014"+a+"3700783554614032889"+a+"5500699049362208843"+a+"8883143644002779797"+a+"5940917221843046728"+a+"-6377243717063936490"+a+"-2781555112742499359"+a+"7113301072320947691"+a+"501910549267933025"+a+"899471793024038068"+a+"-751886605302181282"+a+"-2897960745928273660"+a+"8841990777988640026"+a+"5210290765280155752"+a+"-1099833625028932053"+a+"4086791554633655976"+a+"3527398908407917918"+a+"2609157552125744460"+a+"-5411717177956362023"+a+"8936638687147126625"+a+"-5201416203511998337"+a+"8020173228835757436"+a+"-4672525820805766249"+a+"-7017604422221214209"+a+"-5632657971529806673"+a+"-5406365676176679526"+a+"6125746927489206206"+a+"2061394030035502100"+a+"-3336616794732253560"+a+"-2440204974762145461"+a+"-5510695638491715770"+a+"-2052022113521973639"+a+"8535915275635347845"+a+"2141589138267928504"+a+"4704310198587792718"+a+"-8516883072754769465"+a+"6176162718928711814"+a+"8787949673700282382"+a+"4567063869848829592"+a+"6699214372328713951"+a+"614582040941377104"+a+"2114345272374019582"+a+"1205326714880158218"+a+"345855247272630115"+a+"6863791979252946443"+a+"6584140928474080830"+a+"-974652546421757650"+a+"1104047281126844986"+a+"1683950892429964226"+a+"-114975964243070203"+a+"-1486761048205680462"+a+"-5291415350861152240"+a+"-1295712165563917082"+a+"376680977854009491"+a+"-3801206170133606167"+a+"-7615543987751473197"+a+"1222029900712890572"+a+"8086849773582156199"+a+"5699471271553623625"+a+"-3076723626026790089"+a+"-6990312711296902870"+a+"2249309539351360519"+a+"-2213204999452304917"+a+"8837902888211847987"+a+"4621474258312999582"+a+"741401623629356284"+a+"-507184299727707634"+a+"5003522673131041922"+a+"-2512304557071432409"+a+"5860072657460323795"+a+"-3551939454713122155"+a+"7039243559025359908"+a+"2667090741430594730"+a+"-5263722189506025379"+a+"-582705400402113148"+a+"-4378370425568246822"+a+"-2392995877829144210"+a+"2097189650028165999"+a+"9044307751697998726"+a+"-4309773030097066323"+a+"-245082032325783392"+a+"-9041789317184909469"+a+"3315057182621451370"+a+"-2164132299950019225"+a+"343094821716735184"+a+"-3331909883100521834"+a+"4460313862086287266"+a+"1812608985018565400"+a+"-6008529437339156878"+a+"-8385297506366368280"+a+"-4247845283919211326"+a+"7900328945924389267"+a+"8078840910713306207"+a+"-570510759641380545"+a+"5367622739845813255"+a+"-6792063981953278482"+a+"-8609138015271881647"+a+"1294288896582281220"+a+"6609052239144832718"+a+"-263131261566575354"+a+"-2039905094280094870"+a+"-3228456423753777756"+a+"2274841285895911448"+a+"4845949212104423416"+a+"-6574745710094852434"+a+"-2285800804160361968"+a+"-1144764046272735988"+a+"-4887605558584506199"+a+"5064876672478755716"+a+"-3232208103790399939"+a+"5348678013006323061"+a+"2032227170072499776"+a+"-5970510642986571719"+a+"-8156922862002452315"+a+"-3691740174830523328"+a+"-3844250118619088474"+a+"6528094743374630013"+a+"1606598775838302661"+a+"-7747504328742060032"+a+"-4505193121087041011"+a+"8325698253309430243"+a+"6550206689455229085"+a+"-207710379570803862"+a+"-6711498507499959962"+a+"-9095050147687951259"+a+"6239177506672082739"+a+"-5523818040006060583"+a+"5804005037551216873"+a+"-6075325454732731681"+a+"-7988185768521296112"+a+"1039395532244708299"+a+"8001200725138275729"+a+"-7074698778794344561"+a+"-2336253547742487103"+a+"-2606238079972532383"+a+"-4339818077653300067"+a+"-8558914632631279460"+a+"-4135390505319655081"+a+"2460161030124935395"+a+"5391174676264245265"+a+"7530170745056800908"+a+"7664035282768827623"+a+"-2020351598233962694"+a+"3876340506192868147"+a+"3814540850933604043"+a+"6817954267349138699"+a+"-7584650305603780491"+a+"-4395070944949623026"+a+"-3158848660161048533"+a+"-269117567728546720"+a+"-3122953333596609979"+a+"71120503137756914"+a+"5637199835664820063"+a+"1852378117913282566"+a+"-3747245523281264000"+a+"2303890783248766194"+a+"5410987106499222910"+a+"2696649635447671843"+a+"1271620354708692897"+a+"-1729642602524780956"+a+"-1315069908501370233"+a+"-6125916372380604320"+a+"-4056353451015536314"+a+"5159017489559205989"+a+"-2113090891128734249"+a+"4333405829811801194"+a+"8954747781215647921"+a+"-5450373765985049517"+a+"-2432760969826335052"+a+"-8012766084822596494"+a+"-4619727234556333752"+a+"4884975169507664977"+a+"-2939311391033930554"+a+"8221234267001882030"+a+"3912615498840805654"+a+"-561848863929337914"+a+"43573555934369944"+a+"-5928313827199464746"+a+"-3501297165495359161"+a+"-4998610189516277794"+a+"-1913588868684190692"+a+"-2278084051797147481"+a+"-1610917622365620560"+a+"-2305710515290190841"+a+"1165273814480014116"+a+"6838312509618586212"+a+"6491150613554885188"+a+"-1944753561513611658"+a+"6255632190421079018"+a+"-1773213467900303792"+a+"-5038763434446212704"+a+"4715879262419648672"+a+"4333687086319921033"+a+"912014761633159733"+a+"-1930604833972234368"+a+"-3391198435941748799"+a+"-3071060629188926847"+a+"9184135797098467296"+a+"5032670905203823687"+a+"6078798282541869400"+a+"5423378219740816695"+a+"8252131508489648546"+a+"7607030361567934076"+a+"-262569328231047255"+a+"6663001055977811058"+a+"6298318905345480400"+a+"6506771260680588103"+a+"-4416115954408464838"+a+"4518035252801993183"+a+"1982554975493001284"+a+"7197635397909925624"+a+"-7668571444198740394"+a+"-2665198171639411569"+a+"-2456494556960430885"+a+"4715159423995014529"+a+"-237344622867592307"+a+"-6262109450197948044"+a+"-3474443242974353931"+a+"2934384186453480183"+a+"-1277187905886427086"+a+"6673422063586767847"+a+"-7880530014350474248"+a+"-3646763270037402604"+a+"-149292745994812965"+a+"3376372179984995877"+a+"-1111731767279408435"+a+"4671558057806984888"+a+"-1292228904119138843"+a+"-3583239139422111283"+a+"4342930889299439202"+a+"-8725402015736905116"+a+"-1109270466676439570"+a+"-1972518756159303581"+a+"-35230474872666330"+a+"-3244541790415322947"+a+"-7950578804922139559"+a+"-5486091848317228079"+a+"-2281298898378514801"+a+"-6646645720238471665"+a+"6623440358756065485"+a+"-9153856997766830367"+a+"-3585757771897050217"+a+"6930412469998148039"+a+"-4351635392967078730"+a+"7154169321563069892"+a+"-7358749838981554373"+a+"-6190958088870856968"+a+"-3862427748869640253"+a+"-7621041158611765618"+a+"1393838985767952635"+a+"6302374980696710359"+a+"1987923606930691174"+a+"-7327828962052736585"+a+"-6060103819590919330"+a+"-1893007658963996865"+a+"1542199167471334487"+a+"5310282313180215963"+a+"7036608913993422955"+a+"5043602524937529134"+a+"5859573804796910866"+a+"-8924021905603981317"+a+"7835087149345156656"+a+"1478259997538816838"+a+"-4419199077858089900"+a+"4379067511389396090"+a+"-4696287401987638466"+a+"-6289442156285941683"+a+"8071605714943028386"+a+"-8951996923309922526"+a+"-1790196851854134485"+a+"-1264412905408257619"+a+"2374886420318321090"+a+"-7092423419234991140"+a+"6218125741463927567"+a+"-6598568930604895755"+a+"1689449162299839807"+a+"6323892191946689531"+a+"5646678591452304903"+a+"7993106382290699094"+a+"1206223703498719977"+a+"-7812953645555505486"+a+"397555838289174966"+a+"2976010389220542502"+a+"6308013708131108179"+a+"7862773357976478105"+a+"-6789656998258171201"+a+"275448435954686817"+a+"-6484850033613884844"+a+"9044540601293429036"+a+"-4714255188356898484"+a+"5107200514627105059"+a+"-892844935287728250"+a+"8469981168123687244"+a+"2137088813854102922"+a+"548487406451152687"+a+"1161566390356831946"+a+"-5366587423885009476"+a+"-137674910105312214"+a+"-5369011151552101013"+a+"1881433315829048002"+a+"-7597495061786346843"+a+"6167296021565352674"+a+"3126346873707249250"+a+"8414581496191902550"+a+"-3431070974078274286"+a+"-3353898778032759574"+a+"-2726654910268244032"+a+"-2448795643678291408"+a+"-4158353334053633163"+a+"1565862036675850112"+a+"-5342984135704362278"+a+"-6124338599754330305"+a+"-8280725856435474912"+a+"3057386475416295012"+a+"-3896005975245615836"+a+"-90185462533567176"+a+"3093018829144434637"+a+"7490599664753053788"+a+"-4881014271207206728"+a+"237646390828291600"+a+"-1621517700991273449"+a+"9009036724350796722"+a+"1273336340673207510"+a+"-3769199860684286077"+a+"-7931514986849244674"+a+"6468389508770523825"+a+"-5020483768058569122"+a+"-8520505365041508463"+a+"1248378152959174759"+a+"-1964120239901863893"+a+"5138388422110294104"+a+"3479513344423596283"+a+"6047730220900958874"+a+"6924511811254590454"+a+"3318218834094603372"+a+"8024806712616818634"+a+"2031539881428295362"+a+"5629507007642070890"+a+"-6229588220001211542"+a+"3869936499024244169"+a+"4201625407413514353"+a+"8493899006002794981"+a+"2056217217492362692"+a+"-8694261806141907194"+a+"-3459846817409973991"+a+"7036384077172043079"+a+"5981148065908712463"+a+"-8712265711502573995"+a+"4287743740428781715"+a+"5942873816449620598"+a+"-6575543227187130490"+a+"397910908799842765"+a+"-2568040981584112228"+a+"3237988768615513563"+a+"-4191411378079550841"+a+"-4222601966375665847"+a+"2522403976399554131"+a+"6120926922071503844"+a+"375027522888513811"+a+"-1522882740446678808"+a+"4935255114151481533"+a+"-4086159388928651904"+a+"-3115343425808268974"+a+"-5203489536122476147"+a+"8795529815600651074"+a+"80286283873639590"+a+"-5068484706612970483"+a+"-3672967451330670241"+a+"-1442705906622520019"+a+"7968573705208549582"+a+"3360965067397160242"+a+"-6513273208088886710"+a+"5050721900444876591"+a+"3133412726794527606"+a+"-7659500995422659500"+a+"-1873481277373416323"+a+"8935362823082660828"+a+"-2778758476607531874"+a+"1251425370875299113"+a+"7420431773171575530"+a+"8199506692094230572"+a+"3529081376621410124"+a+"95676002737657866"+a+"-7433215714594080822"+a+"1560120442064157692"+a+"-4917925827649253879"+a+"-1633645829195564426"+a+"-511632361606516458"+a+"-724701335622380917"+a+"-2919212109012158621"+a+"-4866871173848680561"+a+"-2847321891723707121"+a+"-8758010767404897539"+a+"-5003144527513441687"+a+"-2141864159028670309"+a+"-6774089444468990282"+a+"1653132513488543963"+a+"-5455000731532098766"+a+"-3572531149673915004"+a+"2133384230918589012"+a+"-853660865858261871"+a+"5494488722556641110"+a+"-5862610005604565671"+a+"-808451173197690380"+a+"5477097553753168879"+a+"3838919399935625843"+a+"-8764371251366553909"+a+"-2839135848879115804"+a+"3790471151342951081"+a+"4755475314974292649"+a+"743304231064856753"+a+"4365356611584238904"+a+"-6548585131949438249"+a+"-6200874338176525025"+a+"-5644404220656850300"+a+"-8315082119007311289"+a+"5113602445539749238"+a+"-600681809417260420"+a+"-4763730284677038877"+a+"2445781733723819820"+a+"-4278609684717675804"+a+"-1631928600038343826"+a+"7870230093295086097"+a+"45653481548996166"+a+"-6698651163315451032"+a+"7418922739373700391"+a+"2834036305019532914"+a+"-7805479983895305544"+a+"-4498301813798211672"+a+"8198301112608777690"+a+"3946135380080558354"+a+"3729328735391874282"+a+"6039511859537991984"+a+"-7284061669470897853"+a+"-8278031970957020130"+a+"4718143193789236998"+a+"-8663517765137566990"+a+"2252185910208785692"+a+"2529003162250954088"+a+"98935220014582140"+a+"1315061819377404353"+a+"4663598838352530857"+a+"-4550571558489962777"+a+"3825904347230371710"+a+"-8468131412504877868"+a+"-3028672951573954003"+a+"6793888796330723125"+a+"-6731836204402594940"+a+"-3083086963709202870"+a+"5972055209543821682"+a+"-3007704021703785969"+a+"6276921094468975562"+a+"-2385667706792875104"+a+"-4798538726797851066"+a+"6542420907682848985"+a+"8760005704353021645"+a+"-8383174092167068100"+a+"1994267834917436408"+a+"-882988945015600361"+a+"-1421628514110625838"+a+"1386556981179212774"+a+"-1628451205522220321"+a+"6096215132756199157"+a+"-3157999682887015585"+a+"-720804536501956791"+a+"864311996094102739"+a+"-9129776398840895040"+a+"6371274784961788864"+a+"6317369305411645559"+a+"-8217006195540446798"+a+"953960764002310251"+a+"-7896083199860814461"+a+"-3195405771619052190"+a+"2554422386574752733"+a+"4245141863786747915"+a+"-5477415415121490948"+a+"-3619704843164087708"+a+"1944074131303980216"+a+"-1887968265449951653"+a+"-2435116698727098942"+a+"-2748007480497913160"+a+"-1812140038148607699"+a+"-1481232631074352583"+a+"77026493495056688"+a+"1427899818682618110"+a+"-2545050666705232342"+a+"-4907281526846362585"+a+"6992610960207825125"+a+"2927663913121050555"+a+"2449858278136761630"+a+"-3104582313646135605"+a+"943339250059010116"+a+"6972390479973112278"+a+"-143887053138790272"+a+"3356560001730432879"+a+"-6566764162681997323"+a+"3668838725603488541"+a+"-1023359833182599096"+a+"813165131040507522"+a+"5478699827093318242"+a+"-4189776217840205634"+a+"701589422406172276"+a+"3472756774896500757"+a+"-8290107053048657861"+a+"5694414199747604942"+a+"-3191169294615547003"+a+"5091500569779147870"+a+"4196571841396612339"+a+"7711777312917239750"+a+"5152881326409671423"+a+"734491937592074296"+a+"1431453077774631744"+a+"7219739284858384128"+a+"-5221091070613125140"+a+"-1011640063542528607"+a+"1283968889735350687"+a+"-2671634264101398722"+a+"-7954219858650838694"+a+"4029537184239459388"+a+"-4933138819600324915"+a+"7664875024126417956"+a+"5802164042560157400"+a+"8867033579115635149"+a+"-2262327063551902129"+a+"-5496413002288534087"+a+"-9177790286601677571"+a+"-4804121451895014721"+a+"6657552006397867243"+a+"-5676535376674264854"+a+"2504402911410518498"+a+"2977491730596934305"+a+"5454818912351900973"+a+"5876513810599383047"+a+"715611406429649314"+a+"-2402728559636829020"+a+"4650943519358976995"+a+"2544986244799828804"+a+"719478745574466273"+a+"-22820586461547489"+a+"-8242498312426535775"+a+"5166391322188818746"+a+"-1301099741166466238"+a+"6777183057769553164"+a+"-5180542485006512578"+a+"-393290239772002461"+a+"3939307281163922416"+a+"8005001261047788680"+a+"8930885310148079445"+a+"-4794693648338023775"+a+"-7832197853329142250"+a+"-6616876144074407594"+a+"-7815536134577831227"+a+"-7300592228259078217"+a+"-2420675692755400857"+a+"-2417030952500882339"+a+"-6797270974718479310"+a+"269771083840125902"+a+"3157091651274262167"+a+"8697615235028412710"+a+"3538320494628000898"+a+"-8700694277662501646"+a+"2066583791144923103"+a+"5551206296830695007"+a+"-4970728003721986464"+a+"-552197265275467117"+a+"4626145040974907773"+a+"3448612904884604506"+a+"748670883168176828"+a+"-6233979681553781243"+a+"-4544802847111792590"+a+"-7761655660005544050"+a+"2297369898425242952"+a+"857207484408519424"+a+"-17394699395150910"+a+"8201559379994584341"+a+"-1231944804806258435"+a+"6597224736215359520"+a+"500846020371422071"+a+"1018234138705237805"+a+"-1596011118585484140"+a+"-26138935862806682"+a+"-1097215572743228769"+a+"81351931136175031"+a+"6395439808563545870"+a+"-1297999266625483083"+a+"8548488327470157065"+a+"-6576036797330794821"+a+"-2104611578644794323"+a+"-5784421750563954602"+a+"-2392748360644615284"+a+"2669307174142835426"+a+"-8617162425929035528"+a+"-7185571120010208396"+a+"7494874214499485825"+a+"-8019549838914840070"+a+"-8572548389377808325"+a+"9177920409992928417"+a+"2574765948067107908"+a+"-7145546505022417546"+a+"6091877106353284868"+a+"2718564275332216399"+a+"-1682451754550845002"+a+"5383698813342645996"+a+"-5325275677998898905"+a+"4296256188514240856"+a+"-6284555223374144834"+a+"4686907914658969749"+a+"-2672433107634723396"+a+"9182976955244244343"+a+"-45834596498729789"+a+"8476474814586529232"+a+"-5400958819728596068"+a+"-8511321941667534387"+a+"4336907653045517620"+a+"-5210703458746995809"+a+"9179806757390753255"+a+"6094025559094213981"+a+"-8412598326260443648"+a+"-4172563096838061784"+a+"-3071328123176030080"+a+"3969788753850185615"+a+"1786729876414136862"+a+"-2275444241133449163"+a+"-1871384636507265905"+a+"5314766366902575281"+a+"4256843451351245319"+a+"3205232295236085173"+a+"-4071018234209233666"+a+"-241084583434390927"+a+"-4864009884957720521"+a+"-2474507206868372935"+a+"-3086257679926615299"+a+"4088550094298505316"+a+"6481859430300093871"+a+"-4149248147260089737"+a+"5751936103051737727"+a+"-8067819930398707581"+a+"7670386680304021110"+a+"-2332417447729735733"+a+"3221958145698506426"+a+"-2794978698076298327"+a+"7954395953204729363"+a+"6677772407808174257"+a+"2115558009373128363"+a+"1303266325210361366"+a+"-711058957100944363"+a+"1614912588004413772"+a+"6874669523411939728"+a+"-8369287306464935953"+a+"-1684416424857587573"+a+"8253440249378089955"+a+"-3388982263081362580"+a+"3678474358138101179"+a+"-5457310176028329844"+a+"8062499506372708702"+a+"1961126841586682246"+a+"4364856704628394215"+a+"6724515039510026929"+a+"3145915635689578957"+a+"-9068629039917709590"+a+"-6896889714673092541"+a+"-5872078154100411498"+a+"482677778014278881"+a+"994873927174850790"+a+"-8000765370282532732"+a+"690174924996651613"+a+"-8265299070933681551"+a+"5649507651661886351"+a+"-8019963432471327552"+a+"8576709714539609386"+a+"7428668195334390519"+a+"-1004200650521530822"+a+"-2886037052899604747"+a+"-7114770470000271960"+a+"-2300304907145140207"+a+"-4597066594806265853"+a+"-8873151084735737726"+a+"4096849419089976706"+a+"1065469964635630848"+a+"6032531643212966985"+a+"8042807203906726571"+a+"-8597691136135861525"+a+"3975309871459151660"+a+"1910269397441177392"+a+"-8082728109078253799"+a+"-2153134960423805673"+a+"-3694283007221332323"+a+"-5329554595744515555"+a+"-7616008112930064296"+a+"5374164716957274303"+a+"7055806471699822212"+a+"-3034416501726773186"+a+"-4777342028744844712"+a+"-8858900436739205983"+a+"-1883194253652283984"+a+"763857036569830144"+a+"-2604905813028082963"+a+"8896125689765848574"+a+"-3678672038381431014"+a+"-2580260397506994537"+a+"7842089863115348559"+a+"5540665111479827739"+a+"2579610618501036634"+a+"-6546623738212313479"+a+"-6338633021039551589"+a+"-7838115082028684864"+a+"1707181944826096686"+a+"5751970046862735843"+a+"-5852680709225685681"+a+"-6664378160967385156"+a+"3636371481441062650"+a+"1838037137099569235"+a+"-8411250525386747438"+a+"-6472330738327055521"+a+"7162476550072738627"+a+"-1470651201059158516"+a+"428366551799105514"+a+"7277995288887084542"+a+"-1029487524482586573"+a+"-5720661788324433771"+a+"5653818400270062403"+a+"-7615219267151273358"+a+"-6875499057096504295"+a+"5196088249313395514"+a+"1507760576708216047"+a+"4466003920374073753"+a+"-6927163147925885723"+a+"7030187541847112585"+a+"-643059337707244575"+a+"8500788707189878484"+a+"6912045776561875120"+a+"-7795124748209566249"+a+"1480521059261289841"+a+"-7942872165842049912"+a+"160228994416279090"+a+"8922510255051815353"+a+"3776806737798112731"+a+"1784830562638493853"+a+"-1468151429829558966"+a+"-8462833212897464693"+a+"2711466553961636031"+a+"-8832517111573585662"+a+"-1115551713759082630"+a+"8029886438954713068"+a+"-1506344344651609694"+a+"1147647689029089318"+a+"-5892481768727240599"+a+"-5066151872839652800"+a+"-3211303276721830804"+a+"902925049407736193"+a+"-1705529505313550753"+a+"6942813368093763373"+a+"-3189584254263886359"+a+"-8151789860636479991"+a+"3160358323515624140"+a+"6766313830725014046"+a+"6616574192994395208"+a+"1505043433831987389"+a+"-8254107266258386239"+a+"8201682746366942403"+a+"7049420348303847327"+a+"-779071050928049378"+a+"1367142373039368053"+a+"7453675130550899599"+a+"-7917711176173061532"+a+"3313398252775778737"+a+"4337717741330632385"+a+"-656911670097071559"+a+"7482645503299742197"+a+"-367598129941149570"+a+"2990187272887706533"+a+"8218597390609729596"+a+"8190839400284186386"+a+"5283093373464135572"+a+"1346661629957039809"+a+"-799282044425507498"+a+"3278126363957749342"+a+"-4895400981922404477"+a+"1979083824421142236"+a+"-4795668697430505972"+a+"-5395970322558385951"+a+"8109620177538792928"+a+"1589881313292818785"+a+"-6540646951889332187"+a+"-1350777919681323896"+a+"2357270747391562180"+a+"8076987350622509789"+a+"8309045708728545067"+a+"530055558885909668"+a+"-8183077235183204275"+a+"6388941139916578691"+a+"-2099445744549474067"+a+"-1293753809133546905"+a+"6781951102324793628"+a+"3047687602405084072"+a+"-4037298749186653696"+a+"-6685020615667120790"+a+"-6362750930968018218"+a+"5055566658581523526"+a+"-5671792057135769031"+a+"-5899031313464120278"+a+"-8188151456690710620"+a+"-2760499349444106371"+a+"-4426150260258002636"+a+"8565807875095182470"+a+"2347925124125718962"+a+"8836770360451529998"+a+"5282628269541305041"+a+"-3153353454794752957"+a+"-7257095076158279757"+a+"2378830048501618398"+a+"-5052934544264721487"+a+"2294026617251813768"+a+"-1415570073243535013"+a+"-3918356151852504711"+a+"6414529400340348349"+a+"-2606259282286505118"+a+"-454218702919111708"+a+"-647652547804552051"+a+"-3271722851719373664"+a+"6111983006311674433"+a+"-4354511461760213366"+a+"6491934357263299434"+a+"7191166931020341832"+a+"-5645675414313381767"+a+"-1011183135791847665"+a+"2795173187087355273"+a+"890216303210146665"+a+"-7912169349074963773"+a+"-4742180638700132808"+a+"-259088887663225086"+a+"8029334994095983610"+a+"-5374542070909783879"+a+"8281835760288916557"+a+"-3127270261288988396"+a+"-6183235249269165131"+a+"2174567067503160669"+a+"-1259213684934836835"+a+"2247172518861085345"+a+"7730193503548449435"+a+"-3046048989442302062"+a+"-6044149610030342408"+a+"870973208219058351"+a+"263182624751709550"+a+"-5064262206113338719"+a+"-2738036181733010893"+a+"590574988808658664"+a+"-105086946395041226"+a+"-4956626643504740682"+a+"-1419490083740558680"+a+"-7134184373942185957"+a+"826466482441411773"+a+"-7846545176314988191"+a+"-1386482905212722765"+a+"3899842152616849081"+a+"-6154468766884504813"+a+"4022359631212191254"+a+"-9123910919937723594"+a+"-3796696742954785448"+a+"1787119573712429578"+a+"5711418735283584685"+a+"4977033620972423701"+a+"1176824201489403700"+a+"7953379965576896954"+a+"8024486826677009378"+a+"-7593833097004061509"+a+"-7502240379893536599"+a+"-4607020169090577921"+a+"4520570961867228630"+a+"8330080160487545236"+a+"5302665185151061946"+a+"6335873427741359862"+a+"7942843793521747084"+a+"5631162455806133137"+a+"-6450425604371442547"+a+"-4010704877806920316"+a+"1399248098718732397"+a+"972469733242052263"+a+"-7298803554170955283"+a+"-5698194901053468721"+a+"2545963032814312133"+a+"-7862399973443453872"+a+"453451199524111815"+a+"-8477216232078151230"+a+"-6056741494627867069"+a+"3261908613835634696"+a+"-5031581820759604819"+a+"-5525101357093304947"+a+"-992112469424902275"+a+"6895709263621485521"+a+"7054726806246574934"+a+"5047241881050380323"+a+"-3904922186542766742"+a+"4579915186836399279"+a+"-5353937321024776932"+a+"-928075393056688709"+a+"5942878932738101734"+a+"8713841580842905389"+a+"6608875547270477436"+a+"4301343187721522768"+a+"-4095324054764236239"+a+"-5138250332818123817"+a+"1351937779264056474"+a+"-1576618855002232287"+a+"3540447542356909936"+a+"-3078741273218372674"+a+"2004486967449152186"+a+"-7663226671924277711"+a+"-6819176140304455893"+a+"-8065381572537158409"+a+"6561904230350781128"+a+"5968982111440892104"+a+"688535005304927181"+a+"3671146762822430492"+a+"6074946612835118545"+a+"8043972357531606512"+a+"-1357746997691964120"+a+"-7033153104090396727"+a+"-434627271818273656"+a+"4571881995274120185"+a+"-1563538570477750034"+a+"-7623771092889725152"+a+"4688991713505327042"+a+"-8604626094696448011"+a+"-8529809129456688327"+a+"4303329914390981702"+a+"-8079780687321061126"+a+"1861670108377883196"+a+"-2644415997330278652"+a+"-5897802207920412189"+a+"7495952426168779470"+a+"7793293741439116010"+a+"2796178858843037359"+a+"-5020394929558949210"+a+"2344703945676226943"+a+"-453773009627263396"+a+"6499859343787172991"+a+"6699134485389206975"+a+"2218525668340833141"+a+"2355733121583346103"+a+"-791325441084568805"+a+"-7246537864425084060"+a+"-4510848757778177607"+a+"-161128756252577951"+a+"-2166556087921641968"+a+"-2280493242052046516"+a+"1932496391683207290"+a+"-6421008687224691834"+a+"1290133728513942094"+a+"-7297634445335644361"+a+"-5997232904471695479"+a+"-7708529674621560684"+a+"-5588174406718247254"+a+"6294887950843562852"+a+"-7997118510844796196"+a+"-2885810922271028289"+a+"-8635762432530533286"+a+"-1317304606959364328"+a+"-2373159149951022322"+a+"-1936916772815322754"+a+"5599319884707688316"+a+"-6732913923000100066"+a+"-6213972918461393443"+a+"8024159330049419788"+a+"-651899612153972849"+a+"6049664271129214018"+a+"-6706689037037281621"+a+"-4989027840498412056"+a+"6832795885647890423"+a+"-2628481227451105323"+a+"5650274281754722047"+a+"5563965301533620821"+a+"3899471650830194813"+a+"-3097129239518275540"+a+"-5668778981688365311"+a+"-5675636006739130917"+a+"32486694633375181"+a+"-2262521173289991903"+a+"-7692135913691023871"+a+"4480225237126481092"+a+"-8363092793621689865"+a+"5287391673747106960"+a+"-3844953471224911120"+a+"9077450120460588448"+a+"-7541759920452713233"+a+"-5613734448761422117"+a+"5828717629727343845"+a+"-3031332337894560319"+a+"5313736621768512781"+a+"797352516281981799"+a+"-1325023898307200103"+a+"-8268807205481681472"+a+"-5324331743570264178"+a+"-7083639995384692451"+a+"-8637163951377958933"+a+"2975908686744585718"+a+"-2008404856766633711"+a+"7723387902706398954"+a+"-7973500423533177762"+a+"6692632760106560260"+a+"-4665610910118945254"+a+"8451621719365601343"+a+"-2645373212082623082"+a+"8421271369123846731"+a+"-2599494001784771694"+a+"-3946625605047561839"+a+"-8704217631780175137"+a+"4761619239478980213"+a+"4199445537668073285"+a+"5625985806773378266"+a+"2011135118429857446"+a+"-198733429078096918"+a+"926284042761947234"+a+"7584707738648251926"+a+"7614806611607011069"+a+"-8694136674804601508"+a+"1234259175475228671"+a+"-8862269440647405625"+a+"-7202860528132844005"+a+"-5343608329321007044"+a+"3955153865076457875"+a+"7340646789438500722"+a+"-4814101825287423270"+a+"1111096036970381634"+a+"3080041105664682874"+a+"402725684298177056"+a+"-442192729353998024"+a+"8885077571446724840"+a+"-2931904822146023563"+a+"6559344414154434782"+a+"2874385438277726934"+a+"-1558926763201497104"+a+"1719667747851828007"+a+"1148918550836530493"+a+"7842222988563611516"+a+"-1264979064834915366"+a+"-6449956785418592103"+a+"-6435052198093738542"+a+"7303314767276522899"+a+"-8525447647589129361"+a+"-4105683137247453514"+a+"-339581268788198729"+a+"-2792564634978555223"+a+"4381265229624255289"+a+"5716805244733524432"+a+"6651831766232613385"+a+"-2646266171513414671"+a+"-9184734908069189112"+a+"8411451797653218329"+a+"-5644815294965228440"+a+"3406219370354298560"+a+"7189061357352189294"+a+"3854704827508586027"+a+"5195183761365797242"+a+"-857975408992204527"+a+"-215081397961025980"+a+"5541172185389004673"+a+"-2158931240515443609"+a+"-2707030040377390590"+a+"-4951339429533825757"+a+"6860115872619611899"+a+"-6977159187553839010"+a+"-6588129350991115691"+a+"7460014721369155308"+a+"8244516680674177886"+a+"2718524895786720527"+a+"5083129452729634032"+a+"-3088884557649270463"+a+"-2890867246580149294"+a+"4144736866258125616"+a+"-4515220895037178019"+a+"-3081548925238092023"+a+"7059458545451479138"+a+"-7629100745456283399"+a+"-4677223535664272821"+a+"-160196749568088848"+a+"2335351286911662720"+a+"8269863132468702887"+a+"675696569525121547"+a+"4220297877278479844"+a+"-1941703945306008194"+a+"-8085555609744465156"+a+"3320638279003727635"+a+"-1454534490754134119"+a+"-9070853339029164267"+a+"1066514592317218749"+a+"754035260480022143"+a+"-8442330812214212858"+a+"733223385524053986"+a+"-6928812214869123533"+a+"9175782745023974027"+a+"7709129652756409574"+a+"6446771461470981092"+a+"-4669040159691830357"+a+"4940949800684628762"+a+"3596568245401674296"+a+"-2934469607945168128"+a+"-2832159018707221002"+a+"-5963608707147616718"+a+"1136173520603479232"+a+"-5948152900752711299"+a+"2776238780712347625"+a+"3545391441816397950"+a+"-7712627837337478268"+a+"-6100017580852682616"+a+"800507691066680798"+a+"-4905853621444866613"+a+"4650896174010534735"+a+"-6291383217484249423"+a+"8530758450418989618"+a+"1420593270340448651"+a+"-8695607674634208463"+a+"-8917496092665137043"+a+"-6875691519537749563"+a+"2877196668554762069"+a+"2403578486267609340"+a+"-3947791298286507886"+a+"388275381527242877"+a+"-5220091270772812957"+a+"-2278940210913219127"+a+"-7080887395332308771"+a+"1445237338423510467"+a+"-8261792903727334638"+a+"3403233544842424945"+a+"-2595302965412930961"+a+"8782074601683241220"+a+"-9116459070810315419"+a+"-6949872996379093995"+a+"2211552796472936012"+a+"5042322673897575985"+a+"-8335938585661637757"+a+"-7488365451307650921"+a+"1807439259410769371"+a+"7387376844333691455"+a+"8698689454771362101"+a+"5434385237440762654"+a+"-3923006091697187991"+a+"2928453024753164200"+a+"3465006396035071337"+a+"-7192016247724926826"+a+"-746984709422884186"+a+"8483037580095556329"+a+"3247327325691153073"+a+"8704618608551355438"+a+"-1948688537689292507"+a+"-9085664162222307582"+a+"6734570649656350661"+a+"-8770073734572497960"+a+"-9194731727659180320"+a+"-9160987442754332167"+a+"-6991099690895060995"+a+"-6411220257744657204"+a+"-3347728207653992781"+a+"-4666630998429640361"+a+"988627827426911191"+a+"517132412672358405"+a+"6780424254067588829"+a+"3484025531596887721"+a+"-8172604109698856585"+a+"-2434263978006321470"+a+"146206282000042370"+a+"1802241808220625920"+a+"6556915806108437794"+a+"139780490839209735"+a+"-5013022352242524885"+a+"109564557104052338"+a+"-2980042105416846910"+a+"-4850914409397469159"+a+"5364612497576897859"+a+"-9061350671329928041"+a+"-6694502193330216603"+a+"1568047468602969862"+a+"-4410706216611388772"+a+"-3504312536846858484"+a+"-5151996445415166530"+a+"-2279913604249920741"+a+"-4929800644857338903"+a+"2421285177127780595"+a+"5028242344376950947"+a+"8235055502228982379"+a+"9200641443671019073"+a+"4257670525276564081"+a+"4463718135204600973"+a+"-2782591591092238769"+a+"9196602820397399459"+a+"5815010940885079855"+a+"-4359421796989530853"+a+"-4354454442498564127"+a+"2440722763518477676"+a+"-7965784401936254246"+a+"1589047364720240527"+a+"1345659788105434239"+a+"7856291551886686434"+a+"6831829224225367460"+a+"4725110785524153167"+a+"4800747046490817102"+a+"1742363762860786605"+a+"722408345131520192"+a+"-7928892214208671131"+a+"6747954079596469429"+a+"4939374870942765656"+a+"-7793510012239185175"+a+"-5128456840029167104"+a+"3999741029130023134"+a+"-9003958273268397355"+a+"9020728301986288860"+a+"-6439212985914569999"+a+"1007144509809257016"+a+"-3492980418894752522"+a+"3506776460958432729"+a+"6030604355915164207"+a+"8792783479452649207"+a+"-2684601371150339339"+a+"-1296675361422454746"+a+"1767641169122703699"+a+"-3281682852775613293"+a+"6004863460452231661"+a+"7620904616562851212"+a+"-4558711566239662307"+a+"-4756950387810939835"+a+"-2497931619996157346"+a+"-8869072948826981416"+a+"3909138683430178797"+a+"-5193643777658890355"+a+"1084432834453924013"+a+"-7407336904518008485"+a+"9127734740127325770"+a+"-5184826564961811282"+a+"1822850980453127585"+a+"-2863856280020872853"+a+"-4096478657939760289"+a+"235009772142633776"+a+"-5165419990517586201"+a+"2663587645595195616"+a+"7408192754011596665"+a+"7504135869731143774"+a+"-6205578335667667056"+a+"-6946719039592539497"+a+"1360727412534317706"+a+"-3495358934924862522"+a+"3200599730943527054"+a+"-2986153131924886541"+a+"-364225976897164119"+a+"1619039194664479676"+a+"-421740377479575238"+a+"3381017218293891415"+a+"2803787595269482128"+a+"-7138278169131421226"+a+"-3851028397957722159"+a+"-6845731707997533523"+a+"4304247233651425821"+a+"-3453169481311494287"+a+"-6648899435196339726"+a+"6243068346988978146"+a+"-4687304487053815087"+a+"4500392581972691499"+a+"3194105698562551073"+a+"1302928061966663015"+a+"899861116730412628"+a+"8071794113442656359"+a+"-4736053881059782840"+a+"-8833778113132867406"+a+"8459559140024462575"+a+"-3331202166940103220"+a+"3559576239267745585"+a+"-1438823586080975685"+a+"7598377555370318352"+a+"-9073544075373002810"+a+"3791329947068574989"+a+"5244713667648536191"+a+"2355757732641305802"+a+"-5774713322130818556"+a+"-7825478554949913872"+a+"-6598527612334048895"+a+"-756930092356886446"+a+"-8351794287745316104"+a+"-819962835473789614"+a+"-8521881550004177852"+a+"-9034627345103084413"+a+"-9047810911031283622"+a+"8575019169603285903"+a+"-4216585731513549614"+a+"-6606318378154025381"+a+"-8442134414137607259"+a+"1063742281525256296"+a+"2444862909868862776"+a+"-5865660505052921732"+a+"-1477161071089416551"+a+"-5821089796972455295"+a+"7973943363313051655"+a+"-8788015932375833684"+a+"-5800724202257631305"+a+"1901020626499030241"+a+"-6420649857342151467"+a+"-3754478878428518571"+a+"7780134533194962632"+a+"-6349730169284317324"+a+"8185432331423452346"+a+"-483163739776409083"+a+"-6146548957177106089"+a+"8334243443022708620"+a+"-8647638936276375852"+a+"1787867012905935343"+a+"8531495137548914482"+a+"3196305294345619548"+a+"-4009224549994146621"+a+"-3981545981798777495"+a+"1308124786866222829"+a+"2903439537170119548"+a+"-2579953690819322067"+a+"6038349128654123884"+a+"-2684171378564087202"+a+"9182995811385104744"+a+"7065587761529508411"+a+"-498812826483483625"+a+"-5919464316541484254"+a+"-6350970464071964159"+a+"8989432486083340826"+a+"-1185044272771012307"+a+"-556467658138175721"+a+"8750970768269411594"+a+"-9027438176155103364"+a+"5507419764918531730"+a+"-5055610290122339104"+a+"-8292368412672038228"+a+"5304474258286748692"+a+"-5256497898472412463"+a+"7095026451041417317"+a+"-6807751467976201230"+a+"3717039143574626077"+a+"-4591247941372074087"+a+"7608271608948774736"+a+"1424496362220315470"+a+"-5423957027502409260"+a+"-4141017180658038213"+a+"-1870578015989455472"+a+"8587352705951710482"+a+"-9177081453403018247"+a+"-8445363706999997394"+a+"4173067159251534298"+a+"1437350657420775416"+a+"-1070000499192580013"+a+"-111939158234983540"+a+"1952427412828668451"+a+"6985639293418849691"+a+"-9183787890558711511"+a+"6673115431425147794"+a+"-2413052916560816089"+a+"-7968164544488828165"+a+"7133137662488255689"+a+"6150278420864343332"+a+"-1063157585506220570"+a+"-766650864987700995"+a+"7195254792685191684"+a+"-1435582581928370362"+a+"-2879523426919800287"+a+"4212969420069127401"+a+"3255446824860132528"+a+"-5925995542425069660"+a+"-2097003946182267679"+a+"-7852081866181859094"+a+"616624848325028389"+a+"1080075504201798411"+a+"-15762287547911183"+a+"7442243109459838098"+a+"-428612288525247039"+a+"1508772000781295085"+a+"-4857870162506741921"+a+"9005502861598836051"+a+"-3531083866111316636"+a+"-1750623028322659102"+a+"-7644402612402749953"+a+"8089772461982140167"+a+"6614561254907131380"+a+"-8094512546040756959"+a+"2692758151792462312"+a+"-1141724711746061208"+a+"-5976459569932427301"+a+"-1529656033969840885"+a+"-6966828380750242572"+a+"8073327820400846744"+a+"7039045055893670788"+a+"-2742325506132595551"+a+"6150331224641314116"+a+"-1787951516818644325"+a+"-4847277929262330399"+a+"-4469114800270543351"+a+"-6918217605381346886"+a+"-4170169488436643879"+a+"4552357957041798376"+a+"-4709066557073879539"+a+"-6396627091976196482"+a+"-9130722335546570083"+a+"-4398812371995243503"+a+"5899533274459802779"+a+"-69473498414118534"+a+"-1197357345743482984"+a+"2435770297013385434"+a+"-1429592922048557754"+a+"-1013233244699263266"+a+"4712067073798837598"+a+"7770668071291569987"+a+"7401986834930663363"+a+"-6830107552843383396"+a+"-8568011126097879833"+a+"-7859707543166153133"+a+"7704246285605406829"+a+"-2925914507483401235"+a+"-7312680556325273072"+a+"4120576209264301201"+a+"-3607011601435889470"+a+"-8712827169771424822"+a+"-7796887407736212456"+a+"164872087571561611"+a+"1941589419069581284"+a+"8451379006006945651"+a+"9098542511902588451"+a+"6941301505244463442"+a+"-2236870745682619623"+a+"8915992129216321004"+a+"5388925123168690106"+a+"6227343469909213948"+a+"-2498697716208701876"+a+"2663270930973456251"+a+"-2117851629199166135"+a+"1465928199326458657"+a+"-4140932863973360503"+a+"2382104909996808748"+a+"2691169764757156000"+a+"-6927783708096335521"+a+"5665227142251137157"+a+"3990639158350403149"+a+"8344037316052722035"+a+"-466088682998749225"+a+"-1184998401803242221"+a+"-1826973971920071950"+a+"-2978143448452379174"+a+"5489451572766734253"+a+"3982536154060365232"+a+"-2725897582008329614"+a+"-1763022655025997102"+a+"-4663879336851888757"+a+"-7763663985759369480"+a+"-5171814121380446488"+a+"7023992321466746041"+a+"8496338094272787998"+a+"1649982471059595054"+a+"-7874271973868958029"+a+"-6462289143988000810"+a+"2104206826225724056"+a+"3956743142620270265"+a+"8121240854592968950"+a+"-7756522014486882097"+a+"3329055383033924909"+a+"8043367292746471585"+a+"-259492411881471464"+a+"-4611399437472166608"+a+"-5715952258670801514"+a+"8139447008051858198"+a+"6828556815701928006"+a+"-8950316752207621141"+a+"-2494776080654799471"+a+"-5311611842114224151"+a+"-5274517370195306516"+a+"6957748572905774547"+a+"8619833938161401182"+a+"-8098969501978366703"+a+"7498403252053725248"+a+"-2962379495807183329"+a+"1679495359526004803"+a+"910952023144858920"+a+"-5683679598360504393"+a+"4180886423018064622"+a+"-1895749802147475190"+a+"-4261070201435052052"+a+"-7495472397254860658"+a+"-299958970563615299"+a+"-9181751118046314882"+a+"3063144621650993854"+a+"4581200622692318530"+a+"-7445330906132712462"+a+"-3407411028378675214"+a+"-1004304845850312410"+a+"2808995768722924824"+a+"-7419835825599250603"+a+"-6807925616761556551"+a+"1936216879258578253"+a+"-6348070543052994410"+a+"1614786878786713233"+a+"-5654559563900278353"+a+"5820129333800018049"+a+"5154364084337309192"+a+"-3464890808271116872"+a+"-4318936345310964818"+a+"-5626360026645142603"+a+"1293650924267343356"+a+"2471203500047040188"+a+"-712553739691690470"+a+"9167570520793817086"+a+"5013905130782787526"+a+"2777832819171815927"+a+"4135658959316588118"+a+"-2228943220984283369"+a+"674121904757229053"+a+"-3361067987947841884"+a+"7064783233989236045"+a+"-5391381845337433122"+a+"-4203419284375340292"+a+"3231478719940633443"+a+"-6595059738477077526"+a+"5613738046953226965"+a+"-197825565075612318"+a+"-5941132321697548615"+a+"-5022645559955105889"+a+"2753333873025761953"+a+"3497927560388209810"+a+"3640569866216107917"+a+"2764752341909112546"+a+"-3378489093995131761"+a+"7719703463309362484"+a+"8643252989717845421"+a+"4133119366303995308"+a+"-2991525574328818422"+a+"-7462382354512214606"+a+"-6717862793825856953"+a+"-8546283547873015304"+a+"-4444395436889676762"+a+"-6794705649725291844"+a+"1377850869896378480"+a+"-8597944961814495158"+a+"7420018464904971801"+a+"-6568048747782992956"+a+"-2694483410167439967"+a+"-4025939108850206683"+a+"3886103463501532092"+a+"5252778460490334083"+a+"772493505011565108"+a+"4355897471393001620"+a+"-7052733073642657010"+a+"5904487723960627314"+a+"-8146905456250566165"+a+"-8272241648972884830"+a+"-7934734311001305167"+a+"2010392804516600146"+a+"7874061753723159658"+a+"1059646048071497698"+a+"-5622128739721761941"+a+"-8033788182892224091"+a+"1681547684630988216"+a+"-8578467634091990297"+a+"2189697668985640615"+a+"-9057682179067006414"+a+"-1356089288923443518"+a+"6251560713478074317"+a+"-7440046837958393615"+a+"1407158692292155781"+a+"3638531630121371096"+a+"-5051222424910285137"+a+"8617692886982373758"+a+"-771846938902200212"+a+"9072050023807745838"+a+"8787982956208638510"+a+"-1956190184658266206"+a+"-2862239626779971973"+a+"1831224464858060125"+a+"363934811746518001"+a+"376467262166035287"+a+"6770131145159335561"+a+"-2135831974748139041"+a+"5965177247077212447"+a+"-1053074797557834307"+a+"3894274936040760113"+a+"-701226959499860586"+a+"-4971357087908581658"+a+"-2510796846816028268"+a+"-2763699793663141038"+a+"-2193985648512765627"+a+"-3800478500522195208"+a+"7210248384674878403"+a+"-9050763110164892016"+a+"1440746149807037973"+a+"-1805372186674750455"+a+"-5335339145116455979"+a+"-7968313964743603760"+a+"1610185178406045202"+a+"2860222084584494674"+a+"5303527859614604407"+a+"-7562546697716829248"+a+"6597943858596228268"+a+"-8907697576023998447"+a+"-3575500776925217796"+a+"-7958636610358587060"+a+"-8107266756400855241"+a+"-4700514041937280505"+a+"5877546935738010841"+a+"-4157679336113634774"+a+"-866169437012159125"+a+"-519149397509148680"+a+"-1239516179709190615"+a+"-3591275203580560048"+a+"-5416867314018121244"+a+"2011882474728252719"+a+"-1249066890309108695"+a+"795894744629523832"+a+"1870033377415365283"+a+"7931444137659674871"+a+"-1613624103293423427"+a+"-4477239753922589277"+a+"2789326393421386123"+a+"-3956705666753899741"+a+"6952758292831343594"+a+"-9124954842584228461"+a+"-8913383325917719323"+a+"-1530517842030475129"+a+"4580517046080662618"+a+"6020543604287522383"+a+"-8313848571134926884"+a+"4378514641236109180"+a+"-1461513090215862309"+a+"8409570101072434851"+a+"-1581636631324609790"+a+"4985058713276173408"+a+"-3666677716973341728"+a+"-1138120895461130339"+a+"-8647293314984524598"+a+"-6242226372265798124"+a+"-4195674850310824450"+a+"-8025745418184206063"+a+"9166961009801828875"+a+"5645574108510892668"+a+"-6513490803768630160"+a+"419860506409678358"+a+"4628472513534946947"+a+"-6125375997686482174"+a+"8713691847195168404"+a+"79233487798602119"+a+"9030439487046511954"+a+"-3335074557944176364"+a+"-9112536869351283348"+a+"5506739399048321668"+a+"4391535639955683707"+a+"1182096354322836130"+a+"-4189716190893374434"+a+"-8108075268671436562"+a+"907315093125629542"+a+"5099587814404079265"+a+"7255914369947154549"+a+"-8497772614830644754"+a+"-8980458147983441823"+a+"4355717191891370378"+a+"5163662158015050589"+a+"642450610174575726"+a+"2512022470863144218"+a+"5867768034875490779"+a+"7009699371371301226"+a+"-4678350211651627618"+a+"3171964376763313190"+a+"-2541677689483086699"+a+"6868929630897619794"+a+"8896393380856350065"+a+"3256413860684177278"+a+"7947404321164296636"+a+"-7136357900952191378"+a+"-1787874428808322275"+a+"-1909293774457715715"+a+"-962763231242985253"+a+"3144911297249975614"+a+"1635293553987010975"+a+"-7409000498997087773"+a+"7471404851632915837"+a+"-221788501736437790"+a+"-4834067343892173771"+a+"1843086477154155861"+a+"7762358378021411765"+a+"-7883987165262218079"+a+"-4832545032610927903"+a+"-7856151567747625254"+a+"8112294323392812183"+a+"2147457973446013030"+a+"3162605413913990893"+a+"-6241001175762465825"+a+"-4153935579094924612"+a+"-6836084797928767682"+a+"-7922740998765985950"+a+"-8286733228449099979"+a+"165474130709530306"+a+"8981835088952978651"+a+"6870670037465619855"+a+"8496640850198065550"+a+"9204058999899671498"+a+"-4141186845058550508"+a+"1500317335225211272"+a+"7376705741729030659"+a+"-2733827060712336392"+a+"-736100079787053981"+a+"-7374437899094417756"+a+"2998950665528577681"+a+"5206106823411946743"+a+"-5760503793238003611"+a+"-8077682605801914369"+a+"4974691974637362327"+a+"-5520822721479891854"+a+"-97385634439813026"+a+"4751027761590349046"+a+"-554734623826398887"+a+"4261232907331630236"+a+"-3877904463068326478"+a+"-1200761955800992339"+a+"8689324788599032448"+a+"-7186721122544475991"+a+"4581101067086820461"+a+"-3117700534889439348"+a+"5343477886491928216"+a+"-7604478837149955757"+a+"-6037273215371695172"+a+"5165744799859542462"+a+"-374447668056195695"+a+"16388724788412758"+a+"8253460125259419250"+a+"-6569214172912295503"+a+"-8717094298082195137"+a+"-5730233168237508109"+a+"-908590889278215292"+a+"-7226489171009378408"+a+"7125119707932286426"+a+"-4094070088707645583"+a+"-6063919202293485939"+a+"-7416198762070326548"+a+"8565586356009308799"+a+"2826160646987732376"+a+"5938653928721944651"+a+"-5936170242353617177"+a+"6944772947584989612"+a+"2674760137042854964"+a+"8198473816250439456"+a+"6075238477456639751"+a+"-1410177679316080184"+a+"-8679553113740033128"+a+"-2704524222108620910"+a+"-1662683524802684015"+a+"1358495828717983129"+a+"-603809051081115368"+a+"5201733909681005771"+a+"8385475040900806156"+a+"-5830383452713093941"+a+"-1699989529083694195"+a+"-4421200757131697895"+a+"-5629708279370816062"+a+"-3227544077375947664"+a+"-3587576668227512363"+a+"-7705344311177224593"+a+"-3084396123927745470"+a+"-2813967685312600197"+a+"3998873278639758673"+a+"3665225356353330915"+a+"-6382725419459673632"+a+"4881391723445800772"+a+"-393405380376257946"+a+"218287968678872366"+a+"357883437490793012"+a+"2169817681545352199"+a+"3761796379613896956"+a+"-2937543986411027153"+a+"-6568842530406442857"+a+"-4907325818318760604"+a+"4998687660767128322"+a+"-4122792092373408664"+a+"6223196777924568233"+a+"-5609721664606045472"+a+"6191840459786065640"+a+"4672152598398585471"+a+"-8081723278183199026"+a+"7257122800644000867"+a+"2696542281977394211"+a+"7821435047306895806"+a+"4458924087043593388"+a+"-4555258326668076359"+a+"1922071752751161260"+a+"6415041615191639956"+a+"4636581324506420654"+a+"-7278699817870051311"+a+"-7708360672347361150"+a+"1324828425148828946"+a+"-1785818096515512444"+a+"-5853032200056389503"+a+"8864019132592092195"+a+"7790064823061661551"+a+"1063300198569212577"+a+"7792106853609615999"+a+"-2045730603260331241"+a+"3788187586299179141"+a+"3441764699056418492"+a+"-7493825059720259735"+a+"-9197475196368341659"+a+"-8031729420558330031"+a+"-3035156294002477233"+a+"4810378928183933951"+a+"2307408210848947996"+a+"8129528756745183350"+a+"8297578512579342363"+a+"-4628336986701268764"+a+"4220639206593625292"+a+"8036151421763933883"+a+"8457782822542016930"+a+"1721635144200702752"+a+"-528532370838804470"+a+"-1907567658637800567"+a+"-2962749235290753620"+a+"-1709365963340874592"+a+"-7934050979015234576"+a+"-5467967731356776594"+a+"2436549407640329155"+a+"-4755487807525217099"+a+"3348895866742813082"+a+"1293186513277487772"+a+"147333763390209462"+a+"-4154994029739800431"+a+"-5606269404652356438"+a+"-6504788229966127766"+a+"1101930766158013466"+a+"1920037389890864077"+a+"-596760935114999868"+a+"6652161054891684050"+a+"7932997037661416132"+a+"451214340570898662"+a+"907504879033372947"+a+"-5540048174294495502"+a+"4874027944884790608"+a+"7194019250764315067"+a+"-1180340877722081598"+a+"-6705098494586119285"+a+"-4775840841600560227"+a+"-7568294098571282415"+a+"3194829375991497604"+a+"-949586488707947387"+a+"-7119156483783612849"+a+"-5321851869428093425"+a+"8057451224656603917"+a+"9025470315945902697"+a+"-4120953438790823092"+a+"3479675544630836930"+a+"-2588890758738643305"+a+"-2446135786479384347"+a+"6570933589019671104"+a+"-7460587847828646246"+a+"8117951627109794142"+a+"1278574761543419724"+a+"4355156144007731481"+a+"5294705619988460523"+a+"6370545119571223844"+a+"-3816975559796975341"+a+"-5431148533476913013"+a+"4792143332111679342"+a+"5569424248468850350"+a+"-6487577009744411051"+a+"2738118632653076620"+a+"-798328294195956547"+a+"-8299163629061180860"+a+"-1457564026416139184"+a+"5394256010933486809"+a+"-4973399890610300198"+a+"621271617561643061"+a+"5577570731625850342"+a+"-8044468161122764432"+a+"6200690179463580840"+a+"-7501453788118451887"+a+"-3000628561342215139"+a+"-8888329457271558380"+a+"2485958001112289649"+a+"-1147237103609785491"+a+"6652422839185385120"+a+"2748239554760845261"+a+"-6451037891984472738"+a+"1430238149445017059"+a+"-2621996537920703429"+a+"2222578011638657893"+a+"-4600079722998623742"+a+"-5101027077422971377"+a+"-8966445022847634590"+a+"-7203758692164246549"+a+"-52017057246791984"+a+"-2273361502515799085"+a+"-5673227018741665109"+a+"9196722197507445300"+a+"-6567949690213129824"+a+"8582264805422292500"+a+"-5020454389016530609"+a+"2176706303660388949"+a+"6598254869984499502"+a+"7726443684515370810"+a+"3788023174450597805"+a+"-7396279829682620374"+a+"-414566826835973221"+a+"334917670496684468"+a+"6545903246000230344"+a+"3159302915393375187"+a+"-8560960218944435478"+a+"-5548899126980842382"+a+"5356234276945339844"+a+"7633829593477582385"+a+"5945979013294920068"+a+"-4567723074575386775"+a+"1661520674219546732"+a+"-8239614336300995219"+a+"-240177115772242763"+a+"-8953869339872002029"+a+"2411018226134053295"+a+"7195376657135225202"+a+"-8233770635376837844"+a+"-5149016243774937620"+a+"-6179363232548880609"+a+"6092296202650265710"+a+"-4805133698057190017"+a+"-6354212838081638666"+a+"6694348192666591857"+a+"5598031767610571605"+a+"3024910246478227109"+a+"-6951710734827703242"+a+"7822716525244674559"+a+"963393641811653214"+a+"-2406318691508007814"+a+"826508348982591028"+a+"-1579142701085431479"+a+"7297929387480064388"+a+"1380792214707189822"+a+"3295031049744658815"+a+"3284810324689971567"+a+"-7588538314618161914"+a+"4301009527933011734"+a+"1130484873987861287"+a+"-8591297113101874759"+a+"-3210714133972683289"+a+"5154586943427152522"+a+"-4193463855189971647"+a+"-376431609407932400"+a+"5021110340265516655"+a+"7648328932517867781"+a+"-8546476864968721561"+a+"5288785613899671938"+a+"-4809049901156041048"+a+"-1880116244181877159"+a+"9015537485495535413"+a+"-5267014086548743487"+a+"5123518728962797793"+a+"1795472531198399544"+a+"3022599565131492557"+a+"-8730528497135525723"+a+"9220566957379280431"+a+"8833019111890700988"+a+"-2033397514229383340"+a+"-6381341138027165531"+a+"7588551433816593127"+a+"5799842542611454176"+a+"5619724887239697779"+a+"2353324000873662818"+a+"-1991375208699682010"+a+"-6919792924942791420"+a+"2994182147895903703"+a+"6692415087256339229"+a+"-4871355353972236471"+a+"5275179869443528045"+a+"8042280884158104496"+a+"-376420269953363908"+a+"6263088176396425333"+a+"5182172241015003330"+a+"8972966521669258038"+a+"-7276664514485426743"+a+"-5378180808162970352"+a+"-3685303685564653936"+a+"-5127852655386939872"+a+"548616584641283058"+a+"8164449020035601733"+a+"4810079842916321223"+a+"-4707693332204580821"+a+"2754027201511437962"+a+"-4509922984036153467"+a+"6370413349588604732"+a+"8320409773178053529"+a+"7039007976410883463"+a+"7106894676435275009"+a+"-2809438556549871067"+a+"-1211381355032103505"+a+"-7307298204907670142"+a+"8523677840776162865"+a+"8285725653280538784"+a+"5996593469111651125"+a+"4153670324452931642"+a+"229030452475666256"+a+"-8295788508630616532"+a+"-1965373018251653894"+a+"-5611593981401404143"+a+"-3695587189347699491"+a+"-1221969108939208147"+a+"-2939972657801657266"+a+"-7078096374241029747"+a+"-6861654231625701349"+a+"6363379236988393580"+a+"3845057394530936710"+a+"-7003878426734214695"+a+"1288488077274737553"+a+"771119377697186197"+a+"4591934766881650300"+a+"6913066875581196609"+a+"-3409117405525192820"+a+"-221371090258771016"+a+"7600311558228469517"+a+"6748268879508177593"+a+"9011322187420563096"+a+"-6603624039115619639"+a+"-3065654712670379623"+a+"-6989660198670243497"+a+"-3160517308974458357"+a+"4216552774322725152"+a+"-2996335011420467835"+a+"2863864253575772373"+a+"-7621293225327534470"+a+"-545538409911515142"+a+"9140583364836666812"+a+"-5140969305303368176"+a+"6656140948819540034"+a+"93544662858383350"+a+"-4755201878801920726"+a+"7361284953337231243"+a+"-2675344218305896448"+a+"-7108238313098643048"+a+"-2235754615074522304"+a+"-6286324348689275411"+a+"-4948971409936476391"+a+"-800968619982543415"+a+"-8079563792523913101"+a+"-3610968571897385858"+a+"5600745745679481907"+a+"-5566150746257613227"+a+"-8603813402708741443"+a+"1951713618413814190"+a+"-3615473705144668230"+a+"-3103394013239353749"+a+"7609441287170978331"+a+"-8595954663543476337"+a+"-2397033303076566948"+a+"8706877768214465313"+a+"-2833919119298505459"+a+"-5437716447901653930"+a+"3204018275194378125"+a+"-6881228659759674386"+a+"3655807233404763416"+a+"-8071166991944314146"+a+"-2882253571801104892"+a+"-4254916829421833426"+a+"-4966226050667361465"+a+"6400138949236237092"+a+"8065391540431081532"+a+"-8565217068574148958"+a+"-1039262401718743898"+a+"-7027115935055531316"+a+"-4839038525355799820"+a+"607283839032145901"+a+"5819199197390075590"+a+"8183342224186041755"+a+"-7638195753333090384"+a+"763230605389339928"+a+"3880164877363065917"+a+"6774168134657050106"+a+"5183571486536786229"+a+"-2412112714927998706"+a+"2170382415059976482"+a+"8928570569293051258"+a+"-3164633622520334319"+a+"-4874291569099455455"+a+"-5321689672409098347"+a+"-5318566050949026486"+a+"8467109878471673616"+a+"6243778283836892291"+a+"8129813969173457973"+a+"7026067937120947907"+a+"7230692457074218952"+a+"-5636207072045201714"+a+"9025616855807802024"+a+"6991347270039127005"+a+"-4134192908014033137"+a+"8052480968810038909"+a+"-298609796723154409"+a+"7063773791193231287"+a+"1903526289961421183"+a+"9078121936931350128"+a+"4919215797062406575"+a+"3062706279152348947"+a+"3069159987426254841"+a+"8785412768859969900"+a+"-1804937236104624863"+a+"-7919547674470913833"+a+"-3699510056810390498"+a+"3488422380608182937"+a+"-2987254178709073630"+a+"-9213463933924807027"+a+"4276958400750490840"+a+"5995923739289769474"+a+"-3578486352618504212"+a+"3793748595455569123"+a+"-2375328803450246449"+a+"-2368467245421371111"+a+"-7170151667937837637"+a+"3851161271436651564"+a+"-5040932034940683019"+a+"-5431617805185219792"+a+"8056902348189472081"+a+"8345438302799274206"+a+"8974378839299157243"+a+"-7795705370344518144"+a+"-6182887444190872461"+a+"-6744635907384095726"+a+"8688143914497602521"+a+"312301123947857446"+a+"153839440061591658"+a+"4481075050913262600"+a+"5493152155136443978"+a+"-5734316348038571103"+a+"-1237463632681147773"+a+"-9164417940517995360"+a+"2112577241684396365"+a+"7069977384985408086"+a+"8342004829581309071"+a+"5589441501667002337"+a+"-5851762190278682970"+a+"2349123061039463052"+a+"7057487017622652260"+a+"3294326484913833589"+a+"7917262643932877146"+a+"-2094061162517915280"+a+"1003752392099679578"+a+"-7192501163858833365"+a+"-3334727821303870921"+a+"-1384950698949877358"+a+"5445087923465358030"+a+"3719147868517768309"+a+"1000771643903128649"+a+"3516787711097740135"+a+"4105676075002773154"+a+"-3651552847191010585"+a+"2672778053191969126"+a+"285485396932943301"+a+"296620000461273275"+a+"4811535287028902846"+a+"-2379643207381041500"+a+"271481818151482985"+a+"6854618837286237314"+a+"5653593416179720279"+a+"62002831712282845"+a+"5853135014065169012"+a+"-3951484647610006172"+a+"-257362179695809613"+a+"7977439029994910002"+a+"2965871586653951722"+a+"3061775100769358674"+a+"3876220359403363066"+a+"-8734873363757811323"+a+"8210589182755985714"+a+"-8935096200912591038"+a+"3886239936245591540"+a+"2283494688500814077"+a+"1010721984573040537"+a+"-7245354850053978196"+a+"2542221557416216465"+a+"1000274955142240390"+a+"-6797492987035766321"+a+"-6984617498410261235"+a+"-7430749021601567133"+a+"-382287790784661682"+a+"126688746335494503"+a+"-5450785036780366233"+a+"-6262557503491400417"+a+"-6590263637308498102"+a+"-5710729975432547748"+a+"5129132715791132095"+a+"-4239743246379834592"+a+"6117849231379620271"+a+"-6490453226507920505"+a+"-5220787641275863906"+a+"37770212688319716"+a+"8511097093244097401"+a+"1921134795576723242"+a+"-5361574113624407919"+a+"6485812877315083405"+a+"-5173991477032582681"+a+"4635303733778455400"+a+"3798649405852839849"+a+"1181330636608158304"+a+"2389207354261632764"+a+"-7997803528543137078"+a+"6910199996450819324"+a+"-8434856108147276471"+a+"-5004471220842951168"+a+"-2001619584075815749"+a+"7103921392073379106"+a+"709184684415384406"+a+"5419968314411194366"+a+"-8052975715153740275"+a+"3080262723337237176"+a+"2717693202914529848"+a+"-5658009220703875004"+a+"-6356696196251465357"+a+"-9084955617602581791"+a+"2350510107389966277"+a+"-56493742978686747"+a+"-3235948282274805756"+a+"-259456143706900032"+a+"3328029298574307960"+a+"7969068043825100602"+a+"6539025660082780607"+a+"5106370333406861055"+a+"2581335450921275887"+a+"-6672857526609991588"+a+"-5066652041459919359"+a+"5483605257212992075"+a+"8441735440161894252"+a+"8228850532942701996"+a+"8305732054858339344"+a+"-8818868008826300459"+a+"-282885764699505067"+a+"-7792997597271080628"+a+"-476798431366675564"+a+"-8409934511333831470"+a+"-3520536162869449547"+a+"4683766191038939812"+a+"2735230483871692056"+a+"-6960428798943544324"+a+"6064369103064896440"+a+"-5862836756051784995"+a+"3048377571697603214"+a+"-8817670315059258864"+a+"-3448031242465560525"+a+"-3900155008609433239"+a+"-2436961665226831928"+a+"7843028895364926030"+a+"-1071910219054671079"+a+"6806460798781112441"+a+"545524036744485632"+a+"1504587669020371708"+a+"3554112186340809223"+a+"628102020023703941"+a+"-8396624437418437295"+a+"-6733341969134226973"+a+"9137671523974848441"+a+"-1085702134189209144"+a+"8591961235509762875"+a+"-4209972357817444144"+a+"5016820126477722770"+a+"6007620665778587330"+a+"8736230199649080611"+a+"-1357215413619140076"+a+"-3036455336440086759"+a+"5003131764641090228"+a+"-5840971401422059568"+a+"5299761606675594501"+a+"2479284086948775030"+a+"-169747718055302873"+a+"-6513577638796641041"+a+"4727002206625739387"+a+"11815200566638841"+a+"2414450272502428518"+a+"737732046466579345"+a+"-3078028411410513580"+a+"6989108583020941460"+a+"4710861758996393215"+a+"-3711166908562108248"+a+"2214719685325275888"+a+"-9168489986447261860"+a+"-5196529696442593211"+a+"7469613290795526029"+a+"-4245509300480970827"+a+"-7050208421107820020"+a+"-7521497792323050799"+a+"-7212250329377230211"+a+"-4802660503947805812"+a+"-6614648966347585919"+a+"3389716989987674621"+a+"2411396560958710551"+a+"2815259436105876066"+a+"2060795633551604799"+a+"-1162554289855525016"+a+"-4151205296736455969"+a+"7740556652714820776"+a+"-2424255571780643606"+a+"3773719908223681909"+a+"-642852958378017857"+a+"506546631674131412"+a+"3411343132685823182"+a+"8242176261806455755"+a+"-1677796581762359167"+a+"-8088487106477371682"+a+"8839352032934777688"+a+"-1664297978100182058"+a+"8954522650558186838"+a+"-7417626966935826748"+a+"5844470482620124059"+a+"-5001123985686870716"+a+"8630918871083620434"+a+"1361828739555435270"+a+"2586232242815655117"+a+"-5431290900140072310"+a+"-2089869348091893267"+a+"-6913226553364333014"+a+"982358703940022983"+a+"-5291211856488354467"+a+"3146802692737717635"+a+"3061042254470656569"+a+"593081081915838087"+a+"-3648293238944105671"+a+"3817895332992367061"+a+"-5977316325514420928"+a+"2445174291365627569"+a+"-7453194807437727266"+a+"-7135173348446715513"+a+"-4341245742350326319"+a+"-6990299696064866294"+a+"9099393862540895181"+a+"5906962556980591520"+a+"1463156951664887679"+a+"8685482748980954620"+a+"-8670616036689234737"+a+"668426796408964108"+a+"760821649250070373"+a+"6098571809297730326"+a+"8996934779491151471"+a+"5167580478289099805"+a+"-5379372579768555360"+a+"-1826855896863499895"+a+"-251724191324644229"+a+"8345304695203599110"+a+"-3921283866962585392"+a+"-6750195049995572309"+a+"-2839804251052455546"+a+"-2838169321476956577"+a+"-956982331721610085"+a+"-3509690395310119816"+a+"-647103879342140567"+a+"-7535121068312444252"+a+"-6849939433639848918"+a+"6188660516239622156"+a+"5919339453715746750"+a+"5053115779289394102"+a+"8548571500185153451"+a+"1253407665197945898"+a+"8816075272556462180"+a+"6819578958788515160"+a+"5771439029860895693"+a+"1099896890131308728"+a+"2822294418807232510"+a+"-5488141668219100237"+a+"-6814930941837472185"+a+"-1887449028126707647"+a+"-305262206501941645"+a+"-2957301348839879726"+a+"-8062343849720237487"+a+"4063931149976651890"+a+"-6945560963307518609"+a+"-5171358203014886361"+a+"-4696905411890596568"+a+"-7904166567572706659"+a+"-5642191283828687647"+a+"-3142095411129076476"+a+"4267259913372177039"+a+"-247567462335503303"+a+"-1606772255712405637"+a+"-1138796761196445405"+a+"6850063793273393481"+a+"1624415707017375583"+a+"-1164198493017002186"+a+"-5031881309379772897"+a+"-4704167066305044576"+a+"300552169175114575"+a+"1256542356793014731"+a+"-6183375231683934984"+a+"8132934491731918817"+a+"4029472251436479721"+a+"-192705793541948102"+a+"2135033751433659027"+a+"1455584266359522526"+a+"-431828297761765579"+a+"2355469958751654983"+a+"-133589407284588488"+a+"-493111747751240086"+a+"-7965544530020185125"+a+"1294769335141647096"+a+"4061979167437331474"+a+"-4674577793798441504"+a+"2229585697079227307"+a+"-5414242843034985703"+a+"-1796177256198233677"+a+"-8813835129363277155"+a+"-8316830614187561193"+a+"7467003029608100024"+a+"6813374084828983949"+a+"-8380540489992454526"+a+"8148069224161672884"+a+"-7554729934777737559"+a+"3699415912884948602"+a+"-5228105685932031373"+a+"7486295599635387325"+a+"-8315916849048610046"+a+"-1265934245220496332"+a+"869408855926444762"+a+"3124164783922938000"+a+"2622058283875392416"+a+"6966819816830554590"+a+"-9083519918290447324"+a+"-5702091036824848082"+a+"7213286784638864033"+a+"7931674308865727865"+a+"1217078156180791107"+a+"-6728535210190855233"+a+"-7969996239948903704"+a+"-5122150647143637648"+a+"-270273220242567638"+a+"-3061305542137677556"+a+"-9086820896664105827"+a+"-3725106682971891443"+a+"-7335602555283711916"+a+"-4241856931197537020"+a+"6414441892533219754"+a+"4923291868857182465"+a+"-2238034931126403266"+a+"-5548291588014287049"+a+"-3613397896346811841"+a+"-444831690879303712"+a+"-174090082062267671"+a+"-4502104439015034018"+a+"6966017876080357710"+a+"7406710172021949090"+a+"1860179558197352025"+a+"5059137267429724625"+a+"-7151826351928790769"+a+"5733657672065233188"+a+"4520810228567075864"+a+"-7333899404846243825"+a+"-6883092737419798658"+a+"4366096293893496485"+a+"-831211520620006733"+a+"-2070730996140986054"+a+"-6122918534230011176"+a+"8591014096129538633"+a+"-2932515908185347780"+a+"-6172465947165241704"+a+"6627779855106944546"+a+"860134131205302169"+a+"-2545779493082303546"+a+"-7421938253750134765"+a+"-6434442159326501470"+a+"-3820319822167988479"+a+"7713795869884446701"+a+"6987845812456879290"+a+"4067197575400098660"+a+"6929605052833795665"+a+"-5071225823069615797"+a+"-6528382877278039234"+a+"3841845750105881526"+a+"7024959044443033917"+a+"2694800765195953668"+a+"-5187774918085199242"+a+"-4774807374950964820"+a+"-6651516371223242275"+a+"5402324599728161595"+a+"2303362292061219291"+a+"-6703936456847176803"+a+"4251181594352644398"+a+"-4810153558637401702"+a+"3120785562651363852"+a+"1064230923889069987"+a+"5592117723558033294"+a+"2500967148379218383"+a+"4543293162164153676"+a+"-6382337212061286369"+a+"4950508513939762500"+a+"6639695632068391177"+a+"3852356517429469183"+a+"-1834993927947325388"+a+"-574469187780736266"+a+"1791511302785115519"+a+"-2510985863334721231"+a+"-1271182415669655481"+a+"2833131677966051888"+a+"-1888666409583758615"+a+"-7575768070255551729"+a+"2789451380098296453"+a+"-855761797827183132"+a+"6200333634774310661"+a+"2532787015795004267"+a+"5732788468327016285"+a+"1572576694474513125"+a+"6690274443971690003"+a+"-1416599760413078468"+a+"-8873558753980022270"+a+"3520034515647107178"+a+"5895387026777833306"+a+"8970487898880039964"+a+"-1994332234697898774"+a+"1256148449635750034"+a+"7068847807288363425"+a+"6497856795776861896"+a+"2533382161003325009"+a+"-8546900859753109286"+a+"7050920184133806006"+a+"4204241594405846436"+a+"7412992732973120695"+a+"6323176360460995240"+a+"788068822434628843"+a+"5809215686853242932"+a+"2435328253140599646"+a+"-3438172829650951228"+a+"-5260828684075255404"+a+"-8452227779893367644"+a+"-8583970913160499507"+a+"-1141806410215078183"+a+"-8347846439953324150"+a+"-5848845680367710143"+a+"8492146215224643919"+a+"3192550119083762681"+a+"-1940597170917955925"+a+"-6311085176920881154"+a+"3313976597559381877"+a+"-8261432839191637738"+a+"8508517589948285271"+a+"-3942417032281399056"+a+"-7868239781541141360"+a+"-7207936619714796918"+a+"5951216312047681781"+a+"7581930953926551762"+a+"-5218098199538452680"+a+"4046620809464009616"+a+"9156388253171518060"+a+"1775420769584324226"+a+"-5503602516028621368"+a+"-5417782825043706168"+a+"3259607017327889066"+a+"-8165578551036038526"+a+"-3571561465349852449"+a+"8682163221699536567"+a+"1820937297130664737"+a+"-7637037009265731720"+a+"-3430018756137657888"+a+"-912486006008721851"+a+"-4597466335087098299"+a+"9158803880090608302"+a+"6309689325780931443"+a+"-1043259274818805443"+a+"5818507431422309391"+a+"705581125799181459"+a+"-8243036360534097406"+a+"3506710962377813200"+a+"5283929545352660605"+a+"5433965584487276856"+a+"-9141396997152817603"+a+"-6478773767990106094"+a+"-5840973237079482865"+a+"-3328512888182984493"+a+"-5628441720597980266"+a+"1362509993150631036"+a+"-6186720857272451508"+a+"2806474292451381311"+a+"1472420199765605574"+a+"6504226866074435176"+a+"2336878939403643451"+a+"-2015466886114682501"+a+"-1190820901020960698"+a+"-8270478624074250856"+a+"-7954036542520749846"+a+"-5313855420375917529"+a+"8784094970832030935"+a+"-4096265019124345424"+a+"1877372637773629931"+a+"1345965335397117450"+a+"1017298834024801787"+a+"-4281347732403722569"+a+"-299499367626792494"+a+"-2752679177386898546"+a+"2039234325941596281"+a+"-7646426291870655078"+a+"8814611568318314168"+a+"-2968477228040763326"+a+"-4419558618188022052"+a+"-1279218774105815895"+a+"2630489381818213563"+a+"-2764095333472874665"+a+"1721324049525030389"+a+"6255319953520301080"+a+"-2002207623368113540"+a+"2760564714094670884"+a+"-4527083009644693163"+a+"-221316996272960896"+a+"5272147133459262879"+a+"1662442750623568547"+a+"7114576635075014612"+a+"-1592395570280065701"+a+"-8055360728481487026"+a+"1905364447584354289"+a+"-2982613330646927347"+a+"3579716359614024075"+a+"-2853235326282940233"+a+"-6255093129477813551"+a+"-2660856547893725985"+a+"962189559835700179"+a+"-3403904814775855223"+a+"7761786006706211882"+a+"1666469024181410285"+a+"-1912341427069089444"+a+"-1529985830943006085"+a+"-8541889599851837563"+a+"-1675345010039275489"+a+"532566178923438130"+a+"-4106346450321257018"+a+"598900968746965904"+a+"7922103854326614559"+a+"2337244455169431493"+a+"2490340063075084197"+a+"3830021001185755805"+a+"-7007934027523188515"+a+"-6897508927103841943"+a+"351471946072366300"+a+"5325622335760933667"+a+"1999537315104100364"+a+"-3174507437725673258"+a+"5725229761576174895"+a+"-1668434791850086340"+a+"-8518953713969632606"+a+"-2195724924957090648"+a+"1833142190359232486"+a+"-8071691875553813978"+a+"-1098776314952802468"+a+"-3732554868283517216"+a+"8281197878747701327"+a+"-2681793846913003838"+a+"-7423965503951514312"+a+"5715757995104550241"+a+"4949326775746718268"+a+"4867992385340508696"+a+"5710183806056540152"+a+"-5859943850115280268"+a+"182212408834907777"+a+"1818148288680146641"+a+"-3629129893088723802"+a+"-7989454558875562684"+a+"-3490491636040018057"+a+"-8546360654909202756"+a+"4884975390754858506"+a+"-7335006185981160861"+a+"-8863534872989633156"+a+"-1023968830742254775"+a+"-6984065759005173450"+a+"-4719440043907597244"+a+"-4226053935092114575"+a+"2857867506883982865"+a+"4609884073900339707"+a+"4451416470189798334"+a+"-1790877776461694150"+a+"478010840764229964"+a+"4577366484915324785"+a+"-4239516104547444593"+a+"822225014414504514"+a+"7207238466391339097"+a+"4951445340652425331"+a+"8865187376622680535"+a+"2714097382994507252"+a+"8555581644391577658"+a+"3395195158292748320"+a+"-7121855846819635559"+a+"1454609179663126595"+a+"-2363070738518048747"+a+"-8561489505556069796"+a+"-1623367676149883331"+a+"2930039982060989475"+a+"-4755382472985052748"+a+"-3892494289724415923"+a+"4637043986058348817"+a+"-6153579724097588723"+a+"-5546607401430173178"+a+"-1492220491073383202"+a+"-3503786864953810749"+a+"-1290487900048395137"+a+"3634542418448824732"+a+"-4729608041549018817"+a+"-7349905448557731608"+a+"-7872415943966872454"+a+"6328897134929241388"+a+"-5279495431135252126"+a+"7306152281150969721"+a+"6916430824966538754"+a+"4838879110959529490"+a+"-7503253719632240512"+a+"-2043554315794248367"+a+"-222316953353634654"+a+"1616782040888740554"+a+"-8096203459022180973"+a+"8781682587717369520"+a+"8324353734053349349"+a+"-2419660470439880841"+a+"-3691601252123449383"+a+"2601750435265700795"+a+"572261106233661406"+a+"828178224839624288"+a+"-8228342371067159721"+a+"-3973182455293867783"+a+"7921032521626788257"+a+"-6654921982150332307"+a+"-406383609697491628"+a+"-4195424171906992169"+a+"-3465676714700260409"+a+"94265070605211054"+a+"-3064896205951182631"+a+"-7072496700196212954"+a+"7794720126715939567"+a+"-4158983032514978348"+a+"4428076845375714104"+a+"8720339297002777496"+a+"-4170548367659581897"+a+"-6547860335574357834"+a+"4227777302599737474"+a+"-7769812357111840698"+a+"-8462691960494842937"+a+"-4126880118004338994"+a+"-3178556423612559345"+a+"-2893699215683698899"+a+"5728596538128194886"+a+"-2530819841322864198"+a+"-4881143718204761862"+a+"-8420287773053587028"+a+"5264312276687903843"+a+"7360172920728911035"+a+"8371029073758744227"+a+"9205148785879081223"+a+"-1859431348752003251"+a+"4779214870921360697"+a+"-2063013850550115029"+a+"2514214861790801639"+a+"688298976672994619"+a+"8808625389252426557"+a+"587348595105842683"+a+"-7581495858151965224"+a+"4295383171602092774"+a+"629679749050259957"+a+"6092738940327867453"+a+"6260135336894425546"+a+"-4262258001311703286"+a+"-8787881097085417421"+a+"-5202416122214735519"+a+"-1094098867178024815"+a+"1709204469615558377"+a+"-3316808189245409041"+a+"2267394113742131610"+a+"802800796592269925"+a+"6020346596949291719"+a+"4362371798306536385"+a+"8147690838823759967"+a+"5329989234928530019"+a+"-956912212156919185"+a+"4035164394108759399"+a+"-7340616756424887062"+a+"-6828152481843798263"+a+"-1748445625762825812"+a+"5935050953898588229"+a+"6471613704674711228"+a+"5426422518887852734"+a+"-8790361958224476975"+a+"1147984286589838560"+a+"-3115084918500945385"+a+"-1593393110477083576"+a+"-7746577747169796814"+a+"4855479966532713058"+a+"-2825966073810846589"+a+"5670921883372339027"+a+"-3351030363975248471"+a+"-6092554852842475750"+a+"-918784283786254007"+a+"597804758834183409"+a+"18896378189469458"+a+"-1063461360426292999"+a+"2503142469566864891"+a+"1649538650540360725"+a+"5925412010083294415"+a+"-7082343544609649131"+a+"-500286861472885014"+a+"2034306255648969239"+a+"-6989721939152109244"+a+"4602789961892980009"+a+"8689747571345005486"+a+"-1096909470010447053"+a+"7449484639121005148"+a+"-3983249628107405805"+a+"-3106467780176616541"+a+"-4052581199502978295"+a+"1238644263796516354"+a+"1511210825552075349"+a+"-8959283836232840602"+a+"-945526196915645153"+a+"2486934434776549033"+a+"-5179581557244449386"+a+"-5130230789857012645"+a+"-1895142657148494502"+a+"-8885930504481779771"+a+"6872214327519481374"+a+"9005968565140898602"+a+"5766450694901080201"+a+"15290732226421328"+a+"-8181491785068085923"+a+"861492339862927934"+a+"417000764276266202"+a+"3771665283774978374"+a+"824247452788125796"+a+"915050746900771653"+a+"-991268011348657565"+a+"5046823091485279785"+a+"714851461640937578"+a+"-9013898845762846029"+a+"-8969084512827133030"+a+"7172471193941949821"+a+"676000395376995144"+a+"1048894728609279038"+a+"-3254442066135634467"+a+"201729189762167629"+a+"7312182024186004478"+a+"3135803949473351523"+a+"5531867581893384684"+a+"8247817870075144100"+a+"-3853860775957597396"+a+"-6308950247999654944"+a+"-4274726932216138646"+a+"-1285957732812479723"+a+"1982895588695926681"+a+"8748824578821627448"+a+"-5983709949530218913"+a+"-1709967482004339916"+a+"-2702262020059146576"+a+"6920158278268474418"+a+"-6506553802338482760"+a+"-6589983316832561381"+a+"-3536094890319057666"+a+"-6915112845813208742"+a+"-5611867381828969018"+a+"-8066425788823614490"+a+"8754414329208983222"+a+"2052724808302422911"+a+"3214867679022081979"+a+"-254682339916322505"+a+"-2334236347464456147"+a+"-4089317706480064717"+a+"37563162890685232"+a+"407258492470255027"+a+"6651276108069654110"+a+"4700627022992276559"+a+"-4051813786109247838"+a+"8217401500665338754"+a+"8031632944018173798"+a+"-1760086780027911572"+a+"3030576104638562288"+a+"5710845799058769107"+a+"-614527972619889911"+a+"5682301044697611626"+a+"4776538540287909087"+a+"-1877447658871953322"+a+"-2533846628267513044"+a+"6552807816608129517"+a+"-2426525631037125738"+a+"6980954227435834816"+a+"-411591148764957608"+a+"-5258297969590195749"+a+"2619912957802173218"+a+"3218030450269655626"+a+"-619857944519317954"+a+"8002138058496669919"+a+"-8617705397551152141"+a+"-6437985726951369421"+a+"-2392199700291849170"+a+"-3421262753709518615"+a+"270156923239055453"+a+"3100544481691055161"+a+"8393385566088338846"+a+"-8766691689819679060"+a+"3411955047397791001"+a+"-942425660583552988"+a+"-5494089038893429079"+a+"1753298991032837663"+a+"4144485748098179521"+a+"9019756284128792892"+a+"7485522681383997581"+a+"-7749912962192279811"+a+"-5881896743911665321"+a+"7867326394818151373"+a+"-8828652256441447892"+a+"3231359801897619781"+a+"-5626130456934604098"+a+"-1965805744061946710"+a+"-4171903438904536948"+a+"242034066052370874"+a+"-7369023795040730816"+a+"6835741057618871719"+a+"774134065756964695"+a+"3465141288353005155"+a+"-3779358901714703098"+a+"-335320531677285858"+a+"3823006291557437788"+a+"5623219083725351692"+a+"7302740712840721315"+a+"-365458260827579541"+a+"8831535489520374028"+a+"9085006203827760580"+a+"8836704309237217418"+a+"-1823987370402081424"+a+"-5749446645166180099"+a+"-2471832494310546595"+a+"-6769001460762948205"+a+"9027118050139104018"+a+"-5768767759454835605"+a+"-2001078439708359696"+a+"2707266383359417210"+a+"758886391697560250"+a+"-4236177634611630158"+a+"-676183376821008554"+a+"7398874329266821728"+a+"4540944464450890452"+a+"42911468472215765"+a+"-4119021015193839185"+a+"-1177481591298844088"+a+"-693624857635527085"+a+"7921082210898178042"+a+"-4499721676330688545"+a+"4154259593529957275"+a+"-7166338548810268373"+a+"7753365296107548652"+a+"-2186225041970443252"+a+"7423701828375082917"+a+"812898257941157078"+a+"-3677169155188304232"+a+"-4703484088985861598"+a+"1187813145481451797"+a+"-3858671828440955696"+a+"361165121593087376"+a+"-8030026277547193265"+a+"-3836690016476314495"+a+"-7559410562141455589"+a+"5883887792631591563"+a+"3413382960269418375"+a+"4168686984580362464"+a+"-702820759068904260"+a+"-4363885676806133789"+a+"-3658075758606536703"+a+"6790627677296078862"+a+"7057596009493732924"+a+"607510813918713109"+a+"4819551316096669112"+a+"5145836395770980171"+a+"5761136386777137191"+a+"1481064066111110981"+a+"5693144445371285739"+a+"9129919572780718012"+a+"-1504083653860623472"+a+"2070890902742098359"+a+"1480565051121909405"+a+"5499577503853737705"+a+"-2776125582052960628"+a+"-2480684312588104105"+a+"8771589187068513557"+a+"8067467929933420349"+a+"-3295423683867813710"+a+"-3361578417678328270"+a+"-4121009223520157601"+a+"392997535814475914"+a+"1789296450207299490"+a+"-3697713259734978053"+a+"628631279980394186"+a+"1538142610757949570"+a+"3014708050390717307"+a+"8368027918365770375"+a+"5272761268686019945"+a+"-4588282506250667201"+a+"735613646452474722"+a+"2336131046108152145"+a+"-6713652582424902510"+a+"856426609358693308"+a+"-5764760478319988222"+a+"1317764034487519479"+a+"-7663689255410432927"+a+"1564984526161167449"+a+"-1237279123716355577"+a+"5332338165481348539"+a+"-4286101521344581322"+a+"-2692886887951257765"+a+"3081220136049308322"+a+"-1005407527749730814"+a+"8269155628421292083"+a+"-3673754564856205463"+a+"-3050564424808653816"+a+"1125071308475499224"+a+"-5974287850071950401"+a+"3330249117666619408"+a+"7240820503676705779"+a+"1642205853975580779"+a+"518033395482912773"+a+"9023735332483216960"+a+"-362521542291383777"+a+"1416200491926804108"+a+"4319349826267477878"+a+"6098681376734062798"+a+"-8811971102703039282"+a+"6099455912858083633"+a+"-3751004972830609597"+a+"-4558788276728518416"+a+"6603320167334266181"+a+"-1879326311614760715"+a+"-1518535272556061725"+a+"7939639866029472452"+a+"-3942568855900091315"+a+"-5149216631387827305"+a+"-6188272913878747757"+a+"1204133292757319113"+a+"1830936117936836274"+a+"270507518630958199"+a+"5964034136794191057"+a+"622086613391553891"+a+"-4044109720903427641"+a+"5309401104600816924"+a+"5854709978342127329"+a+"-7113119392306929317"+a+"-8296314090384807967"+a+"7792947881051106736"+a+"-1831540041133485496"+a+"1844404915791308381"+a+"-2900049116190081832"+a+"7604043466623112578"+a+"1385230110345476947"+a+"-5233101492963391879"+a+"2471267247780565641"+a+"-5995778305748913277"+a+"-3209698986461865839"+a+"-8279215312170063453"+a+"4462971907002684758"+a+"6281311314716264138"+a+"-3257960478385428651"+a+"-6828294302956554701"+a+"6799612423185477796"+a+"-8281268754176717040"+a+"3538859237519118389"+a+"-2495284552219494042"+a+"3289767735159024475"+a+"-7262666652027208395"+a+"-3342179262643369074"+a+"-2686393516999860261"+a+"-6369045581584952214"+a+"-4896397163081092167"+a+"-1106429552471910915"+a+"7550618187091230230"+a+"-3232241069305036991"+a+"6993448705049974595"+a+"7709134248993830119"+a+"4482583112596121856"+a+"-5635393839918231466"+a+"2762742040278609694"+a+"3916419401481784050"+a+"8868887623616044645"+a+"-1818632570137175647"+a+"193235487359260087"+a+"575074970976058506"+a+"-8985585339031454347"+a+"-6338853231125756129"+a+"-2809344250173212384"+a+"837100051196961885"+a+"4519444928612470595"+a+"-8831458533041890478"+a+"5466635346572995472"+a+"-2714544946149435425"+a+"-277477702503620791"+a+"8272532255686654911"+a+"-7610619522511862815"+a+"-7645326188242355257"+a+"827795157877760994"+a+"5437190065560014191"+a+"4167221504951586321"+a+"3082414627465816208"+a+"-6734643063912253745"+a+"-5276964537776660114"+a+"-9094362759722103871"+a+"4595818775753481977"+a+"-4087241889267933773"+a+"-1257608924355595952"+a+"4351732371950830777"+a+"5193138130860379269"+a+"-3916941014212287849"+a+"7594113146195159975"+a+"-8695075429018720414"+a+"-9144598542982799364"+a+"5626727214029601894"+a+"-3146570308898533234"+a+"4432451326092638538"+a+"7168622808530513384"+a+"684393440237651826"+a+"1760316058825137697"+a+"7243506489618044836"+a+"3685158225175864601"+a+"1600300354429193709"+a+"7067462904497261826"+a+"-839954699824199739"+a+"-1731844344041729246"+a+"4120365338300145777"+a+"4700617060120681686"+a+"8570705998246156200"+a+"-7062964399243872039"+a+"-8817049929142337927"+a+"201542101853499590"+a+"5238720077424184939"+a+"1788514135136726747"+a+"-8309715731125793051"+a+"6115412997633031167"+a+"-5346494036408308528"+a+"-6068025858118821371"+a+"-5932259412207441798"+a+"2351995352859508274"+a+"-3746484280315839043"+a+"360454599848620028"+a+"3132381951388494432"+a+"5049042146436485140"+a+"8898775546803910332"+a+"-1202919124881683546"+a+"7041178572098397346"+a+"-8166280725402746913"+a+"-8310610786421217156"+a+"2015340129615385007"+a+"-3112340769538256718"+a+"-4753441222255821360"+a+"293846787812835150"+a+"7664185921988945158"+a+"-2429261855800845854"+a+"2299891343418022055"+a+"-3968905011777301591"+a+"-1072388405629031587"+a+"7400575921342068203"+a+"6126585323173628458"+a+"-4199825813150659930"+a+"4717958064551551404"+a+"8447775056038382954"+a+"7550816180641092514"+a+"5053394191794161284"+a+"-374394710832856914"+a+"6673982621964317790"+a+"7769099750366112347"+a+"582083892204824357"+a+"-3924934516439453342"+a+"-853371098297634132"+a+"-1744211355889126359"+a+"5874904351329622672"+a+"6480257425044410763"+a+"-7287975933281248101"+a+"-9009208460900232226"+a+"6894996998655032685"+a+"-7166863071074039759"+a+"-5043653784276649128"+a+"1340755988030801365"+a+"-5805692447290684532"+a+"-639637588574950882"+a+"1992946243761046899"+a+"3236727614859775082"+a+"-992892522569080738"+a+"-6739338734913933726"+a+"-5698245368860006559"+a+"320432080719244416"+a+"-154166996144617606"+a+"-9045262093639175472"+a+"5979842622142929912"+a+"-584268127486379527"+a+"-6285866132203004646"+a+"4263905288286539902"+a+"-6827235910360165131"+a+"-3833636050304093119"+a+"5742151528782102171"+a+"2512406733069500489"+a+"6777198207780713337"+a+"-1392133474325269820"+a+"-5402246813652006143"+a+"-695336947609858225"+a+"-7869633046346805112"+a+"-8254465118773780108"+a+"372642895695868784"+a+"-2168967434964442253"+a+"6016733552586085769"+a+"9166421280254987588"+a+"1044428613109144500"+a+"-8744502771805909028"+a+"3543447616884352201"+a+"1070423814532890799"+a+"2808313361837951674"+a+"2402973008482417014"+a+"5283082923061875192"+a+"1005241756636803121"+a+"-3707900364373038315"+a+"-2537550726905607313"+a+"7535221891479136938"+a+"4745685907260503757"+a+"-3989952935921968262"+a+"-6396042900849329221"+a+"-1912658222926410025"+a+"5559729587433038470"+a+"-9042158123009519804"+a+"-7508469492255465583"+a+"-5802746913634379429"+a+"-1030766020219629339"+a+"3996466211969482480"+a+"971307730651647981"+a+"-8204818657440638857"+a+"4246419169617795961"+a+"197105093958543522"+a+"3987224458460585484"+a+"-5566995006900283826"+a+"-5090718343345925037"+a+"-362961194757726049"+a+"-6766655973311703054"+a+"-8152550618578079383"+a+"8727484798650946182"+a+"3277520600155189713"+a+"-4825917241716417305"+a+"6404577761645561139"+a+"-4088708628546203987"+a+"-1469454737835569594"+a+"360256153285427701"+a+"-4096673187546291586"+a+"3028455180906827621"+a+"-5697812617708302415"+a+"-6199077867733285268"+a+"5869119992708290557"+a+"3047200773521057230"+a+"-1935573449143760920"+a+"1181227474209347679"+a+"-5192436270056813880"+a+"-5981835572353713650"+a+"-2378640542305853084"+a+"-8845131644051969755"+a+"-6504576818889302309"+a+"-6549477532194232370"+a+"-2788711288451297340"+a+"-2832019670072094248"+a+"341748228777783190"+a+"-2903458835888903493"+a+"-129880745849696182"+a+"6381150392315725785"+a+"-30597152500213698"+a+"4960038852833483526"+a+"5189131457881111132"+a+"-3379666811891769014"+a+"-4795960766138987397"+a+"-8538291988532430363"+a+"-5011019319379369980"+a+"-3466784809454327406"+a+"-7244399554717482792"+a+"4037898002906123792"+a+"7063786579803962993"+a+"7035924209773118941"+a+"421385459932308295"+a+"-5379985667116707772"+a+"-7292085578809000332"+a+"-1634305536860165734"+a+"1928407863900382106"+a+"-6697146387006003261"+a+"6557690716054209796"+a+"8930733808836057851"+a+"-1158662967726257141"+a+"4585941391178004178"+a+"-6840073792724806726"+a+"7050725063443220344"+a+"-6111592916421269067"+a+"7974338844007528250"+a+"-5760358258195547818"+a+"-330810618067720116"+a+"-7082179771767356136"+a+"5552363012933789385"+a+"8688981596976075320"+a+"5500270448714413815"+a+"4068339518628719257"+a+"5622887313234789326"+a+"7476523530169391335"+a+"-2439863629179014726"+a+"1586160239952639"+a+"-2384342299521656417"+a+"-2832172495405922674"+a+"9186454350340599838"+a+"-7119506664283046921"+a+"8722237800224251158"+a+"-8028932238977825926"+a+"-6679633586158794899"+a+"-4128085193502769006"+a+"-2694889702010005232"+a+"28060721560266653"+a+"-4036396181941043401"+a+"573627557196513730"+a+"-2886825953052529939"+a+"-9021853037597226226"+a+"6639775871172040143"+a+"6325282655181082336"+a+"-2828784674020405485"+a+"8053228464922224263"+a+"835754613661258956"+a+"687616988668427817"+a+"-7115215555307553429"+a+"-6134585960732965914"+a+"4365544543977960840"+a+"-2153933826332711620"+a+"6426388724066702818"+a+"4934635694489665196"+a+"-3857729065161435740"+a+"103820663860486558"+a+"-8419482397683868438"+a+"-2219101567048493951"+a+"-5163267524901225598"+a+"-2240709922608058058"+a+"4095375526281218038"+a+"-2434822556161931858"+a+"-6097342827894248758"+a+"-2483085308495160623"+a+"6990649954638076417"+a+"-7748372183265049183"+a+"8769824456353646822"+a+"-6566599754748467553"+a+"-8767535561125982200"+a+"-5767847014813615251"+a+"16585727054975365"+a+"7061426797167339188"+a+"3342377856798498187"+a+"5424143702885061191"+a+"-4697912950102238436"+a+"-5183789779938242680"+a+"1332912957579573520"+a+"7162169011139090954"+a+"8029173537521838944"+a+"7949758510655971447"+a+"-8627477637634983776"+a+"4781328307785922484"+a+"-1547317671117136947"+a+"3562813702326426690"+a+"6464649078692052553"+a+"-5537771374198921753"+a+"3422296785291906594"+a+"-815183837930335859"+a+"-2469545167774288742"+a+"3183967805852812649"+a+"6195732569668481251"+a+"5560823059519075167"+a+"-6700605253108557015"+a+"-6845818076730311260"+a+"-9102092416485747754"+a+"-7466079552906411612"+a+"7552162934089048849"+a+"6274144703036091686"+a+"-5797395244716438394"+a+"-2410484764424650322"+a+"8218696676651047788"+a+"-1364874463406577118"+a+"6390770316670610115"+a+"2923279350716860080"+a+"8704806818765876702"+a+"-4708440064978677010"+a+"8392838990546337056"+a+"8120920544314427970"+a+"-6271220152228353270"+a+"-941748393170030973"+a+"6372744708489078132"+a+"7790274732062971104"+a+"1358384079472387866"+a+"-3608381090258920192"+a+"5917622351180168538"+a+"3095599168623588971"+a+"-653667630632311237"+a+"5891266588269467688"+a+"-7208969002187126095"+a+"-883548513504211290"+a+"2726760945793685790"+a+"-2982103471807609889"+a+"8914879214672593948"+a+"-3607349655557495366"+a+"8116698847766243705"+a+"308162547213815472"+a+"-1275284704403413630"+a+"-1778632605110201166"+a+"-3554963472166742396"+a+"-8997883784976997814"+a+"4735346424799974543"+a+"6795654028385140224"+a+"8043450937201975677"+a+"-3617029366231997442"+a+"7177497156531426610"+a+"242867771455100406"+a+"7622822328305617444"+a+"-4045393600264665789"+a+"8628123722466315805"+a+"5930021295582837582"+a+"1536042192894024511"+a+"2390698953619219507"+a+"9163375968628710728"+a+"4308476216190967715"+a+"8009358785036420887"+a+"1800348127777111051"+a+"8509601059683269743"+a+"6258915416005705718"+a+"1082077504080286714"+a+"-1826263866120346193"+a+"6025389024542848399"+a+"-5133626746882118359"+a+"6154119686706124983"+a+"-1605145526392461277"+a+"-4333303749316450451"+a+"114733945430287495"+a+"8622181414885296421"+a+"-4196544011026015981"+a+"5346853227809561103"+a+"2510537901621147706"+a+"-471289725201558884"+a+"-5041864661219029684"+a+"-5290882543828245696"+a+"310406345774434260"+a+"-836120429100169095"+a+"-2875972663477397184"+a+"9086016168367659792"+a+"8311431726304676039"+a+"5143129165001711775"+a+"4016919432949997959"+a+"-7749693328074760110"+a+"-5235410215971905811"+a+"7569569929589047281"+a+"-1581487344202597543"+a+"-2823291768960471779"+a+"-4769131022362688256"+a+"2419524602717574873"+a+"4050479565818895636"+a+"449800018403605324"+a+"1121413394434802979"+a+"-2209767303172600380"+a+"-5865159681775673668"+a+"6682993921838332158"+a+"-6357199263009504937"+a+"-4366856823012441692"+a+"-8119186401376499082"+a+"-1900663570264666858"+a+"6128737523260902407"+a+"-8361790953618845587"+a+"-8438846588423717620"+a+"5379136913256590268"+a+"-8959828995842764675"+a+"2013485321765713304"+a+"651946542299993708"+a+"-5391177516746868006"+a+"3425694396468759402"+a+"-1979882897317923166"+a+"-2388508052192282071"+a+"1107642281868904095"+a+"4894802375968232290"+a+"-2428702934885589106"+a+"748293452130295800"+a+"5691345231677294080"+a+"-2486174962298326691"+a+"7585678359546040159"+a+"-1165316407513877451"+a+"2776342058318376754"+a+"-4940343491937875656"+a+"4902665902804440223"+a+"-7004665724076013476"+a+"-7587472018453996495"+a+"-6128233963625541070"+a+"8765264654317689308"+a+"-2735507998347373681"+a+"6869498668177194813"+a+"-2309224666323771537"+a+"-4675659234126814683"+a+"-645016471268424937"+a+"4348650649368700760"+a+"-214874236310013831"+a+"4227405815643690385"+a+"3320061444282227419"+a+"3492145785275045065"+a+"280923641490784697"+a+"1729100804134378936"+a+"-7018883124081924630"+a+"-2553608611882476133"+a+"-8712100756899236606"+a+"-7047559964016225736"+a+"2257846751488374520"+a+"578572409173107231"+a+"4345843164919605767"+a+"-5388543504591522511"+a+"-1420156524092622632"+a+"827096772545466725"+a+"9137641896724442848"+a+"-1589360466733170743"+a+"7521623884226563847"+a+"-4279434455789503033"+a+"7492695699111981194"+a+"662856192142196394"+a+"8334988775092012577"+a+"1671344884230832479"+a+"-2044014017311657117"+a+"6583901209675742847"+a+"5354213495517942889"+a+"-4296590309239016820"+a+"-8299904015655199822"+a+"7163309498874579066"+a+"8906980711730899526"+a+"-8157592364450060175"+a+"3401949787303101981"+a+"-4223572875100557615"+a+"5474605156432827072"+a+"3981886448469888886"+a+"-9195922886710120400"+a+"-6781980014290589380"+a+"-4650095012203781113"+a+"-2670393501310972475"+a+"244857965431795933"+a+"4963832997474992505"+a+"-7039257533111255059"+a+"-6826075960450943026"+a+"1201368054799712503"+a+"-9222551770351120439"+a+"-22866653804370841"+a+"8437961880322577603"+a+"-6125560768563752011"+a+"7574367817931360112"+a+"5365028931303869455"+a+"-5058302939379092707"+a+"2455138729010151222"+a+"9203935591068668728"+a+"2796918361659563685"+a+"-8483360316871766763"+a+"-9067058866623859465"+a+"7843656574609474031"+a+"-8147765876542590583"+a+"1519804927585221932"+a+"8611916919506422366"+a+"-6198901302068952348"+a+"579403830270105667"+a+"1609687792509862563"+a+"-7231889928507289293"+a+"6732812887884149358"+a+"1204881394266834172"+a+"4951141969248441860"+a+"1863090715134214177"+a+"-6666109477540514203"+a+"-280648257592952574"+a+"-4250872315774251625"+a+"3996873936390056762"+a+"5520288376047446695"+a+"-4225712827009972920"+a+"6640668318007251438"+a+"-7822277872013652880"+a+"-3244108851453600363"+a+"-2181521917129762077"+a+"2686564367700992602"+a+"-2258981347631293411"+a+"-1571417078447055725"+a+"-4980342251464119410"+a+"469673291326368115"+a+"8423225432380111228"+a+"-7670022367894187893"+a+"5076231647728900647"+a+"-247665089260674669"+a+"5068764746662372141"+a+"2492346037887003242"+a+"2510738240134871856"+a+"-7334958788734858917"+a+"-2877153358493990987"+a+"-4716530858546503774"+a+"-4831160593616100017"+a+"-4158965795250821074"+a+"2725746077492180476"+a+"-6981354750764550489"+a+"4984677901836358094"+a+"-2897492827028626767"+a+"-3007807911349512755"+a+"-2335285518997281934"+a+"-6497222833057231589"+a+"-5969540629175099566"+a+"-2726402144599502759"+a+"4983488580263719937"+a+"4618068593733564233"+a+"4674808449266055869"+a+"2778048184895307956"+a+"1593959768661134549"+a+"-1168323625394891634"+a+"-8431953809781912472"+a+"7389772160540771415"+a+"1237587864098927986"+a+"-5053432970285126205"+a+"3754299562846812936"+a+"6445576852995318684"+a+"6565115049261397218"+a+"-7760314081139932953"+a+"-4896883839284862694"+a+"1182022690251590213"+a+"-1550248977507238349"+a+"-1609617831168212580"+a+"4264076591236890972"+a+"7395382158106054646"+a+"-7912578828193846028"+a+"-3041911089740977752"+a+"-3238549283056366768"+a+"-2443360979708866378"+a+"5544029753932960188"+a+"-7192309836319352458"+a+"4036598099433992128"+a+"-9082185255963159182"+a+"-3092063436637565277"+a+"-8927036557005928301"+a+"8844347650138588468"+a+"-8111125464252691334"+a+"-1918778248598993977"+a+"1831582801437623857"+a+"6771172937014131838"+a+"7830774901345473026"+a+"-5160919996654154807"+a+"-3697803209226155609"+a+"1291583943740499247"+a+"-1955003385519519581"+a+"9073059988413483085"+a+"1168543109901128430"+a+"2599186224882680351"+a+"-5203128507699019305"+a+"-8749829865884369282"+a+"6549061450013465382"+a+"-3512235379684577815"+a+"5354983726838560384"+a+"-2946006055244070009"+a+"-1375597554733738737"+a+"-7101682434478354580"+a+"-6001596329509810335"+a+"-5869662267426146021"+a+"-3599685847420338800"+a+"8754157200375258699"+a+"4234717604086300067"+a+"5397380997623945709"+a+"4599376998411336756"+a+"-1965261020938324114"+a+"-3385719177956760750"+a+"-2142781605826243015"+a+"-3905952351338245208"+a+"95143064812765567"+a+"-1039468486826062882"+a+"6223203864543739962"+a+"1787093017719824959"+a+"-8676033947351342738"+a+"4213743633756124315"+a+"-6709689043924662095"+a+"2733282328469795438"+a+"-8513384930568569106"+a+"4497638213147977025"+a+"7447736506608388965"+a+"8977452185526147920"+a+"2260626955068987637"+a+"2902975399257970796"+a+"3972828820308601757"+a+"195060761120092450"+a+"-6010009201321366976"+a+"-7997841208519183331"+a+"-8433656859080245080"+a+"6433481101909312968"+a+"-8956942505836208692"+a+"-7605763219271298505"+a+"5263604930838418005"+a+"-4138387242801350329"+a+"436263034223612766"+a+"-7964167185980745469"+a+"-2757956355998227077"+a+"-7013914980393985463"+a+"4920775969996911612"+a+"-4582086016477731924"+a+"-6339333432392050573"+a+"5358588603164071580"+a+"6335034181282715250"+a+"-2704890288056173884"+a+"-4698621662494535783"+a+"6880454043898100659"+a+"6253189057010332623"+a+"-4043699176241963842"+a+"-1425563574446132786"+a+"-5115979488304773341"+a+"-3618321007201522715"+a+"-6202461726546061711"+a+"8560786061659976953"+a+"2359788385103071015"+a+"2711419013815949772"+a+"-802706265648649317"+a+"-559100995080390015"+a+"-1762456854784718051"+a+"3568162812034725983"+a+"-7088544835602968740"+a+"7181191939156261844"+a+"-4907470742644562937"+a+"7862184013121427133"+a+"4889495530802425015"+a+"-7622081436878403868"+a+"3081791501595718923"+a+"2026591040025517258"+a+"-3433108361605185772"+a+"1303902686630382245"+a+"8717252537464132596"+a+"-7826352017071792213"+a+"3986558661259016897"+a+"-5969021043598609519"+a+"-1210424265454929490"+a+"8088806127965996622"+a+"-1381999595539233428"+a+"1016086461466957860"+a+"5027110879786730189"+a+"7541586340271209952"+a+"2399820556144787115"+a+"-3772769405077359265"+a+"-7453691879492239353"+a+"-6106216866350367148"+a+"811781994788345972"+a+"-2078854042860684471"+a+"3374140076271900341"+a+"8963113579475377891"+a+"6502993271279271845"+a+"348880398593501545"+a+"7903028158370050391"+a+"-2750487853317571962"+a+"7982831848166478973"+a+"-1926228812824511666"+a+"9189621107322060813"+a+"8401548749611295870"+a+"1878075903385072417"+a+"6694229297750189319"+a+"-7646662496352024290"+a+"4411002633420795085"+a+"8599003856471362584"+a+"-6922808322659934293"+a+"3317673841869146485"+a+"1459316535183914170"+a+"-1703167266964255537"+a+"4727044780602312147"+a+"7841100184412857631"+a+"-1295530100662922415"+a+"6734803838327379991"+a+"559506802001903643"+a+"8663271475052865486"+a+"-2468817170604045855"+a+"-2817063210052612446"+a+"-3720102142177214044"+a+"-5640450740202777255"+a+"690383845834852476"+a+"-8306427862592886903"+a+"-3736990181363936107"+a+"-2986866306441131462"+a+"9106463985653875322"+a+"665981939139107017"+a+"-3844940684705335659"+a+"6280861445436615694"+a+"3956722147803271926"+a+"-5634382710667391039"+a+"7313964839859504467"+a+"-6204547114658567655"+a+"8074487499212157263"+a+"1482811611195095477"+a+"-3928275414994781441"+a+"-560715991707120193"+a+"-8053382484339034711"+a+"-3360476595331163058"+a+"-4784060492033787186"+a+"5286331065042164492"+a+"9073220514388929898"+a+"8273762920533311000"+a+"-6799513291991536263"+a+"4043271263802949933"+a+"4475345522798952381"+a+"-248882133580030205"+a+"-8175034539526476354"+a+"6125045191655971573"+a+"1810810648639054354"+a+"-587585792723615517"+a+"4670222394891044062"+a+"-7975984184583733415"+a+"5842356717397744796"+a+"8663949881797689328"+a+"-3054207219808569570"+a+"8251016140953608692"+a+"-6142951917503406383"+a+"-1732984775710557369"+a+"-5955757954531237818"+a+"6418042867248350084"+a+"-6414726438342237202"+a+"7781465661939518822"+a+"-649581833388810203"+a+"-2820630725805002133"+a+"5738329793443063665"+a+"6234863363416904884"+a+"-9137621878907201782"+a+"-258166755246777553"+a+"-1675536541671380579"+a+"7902751979806641143"+a+"8016406561088123468"+a+"5759006811329456378"+a+"-6091398283406965767"+a+"-4328822724025519397"+a+"6427841452113168580"+a+"-4926996329371650534"+a+"-1306633257330962991"+a+"9137733012256900722"+a+"3440956034324334414"+a+"-8573756505272742782"+a+"-4624910331391176524"+a+"3425008439753968047"+a+"-734596251718242996"+a+"7572637956277040712"+a+"1322373237301316852"+a+"5810552390058909162"+a+"199503054485051682"+a+"-764517467273486811"+a+"-840679265868657111"+a+"1371535877482736479"+a+"715197949572424891"+a+"-1101467851466129416"+a+"5500149141406191534"+a+"-2029138182667282002"+a+"-7745762717888982525"+a+"9202194397017614659"+a+"-4830429299923406557"+a+"-294973683082700707"+a+"-770719946520934550"+a+"-6003149868751828564"+a+"1023115426992093929"+a+"-2808832362196207791"+a+"-148560890012459929"+a+"-3643464539407985794"+a+"-8410227596794760535"+a+"-5181799262618054823"+a+"-1793478725375805965"+a+"-3690717729206571995"+a+"4781512499416416206"+a+"493328761242909347"+a+"-1263618823915441398"+a+"-1352133272625255243"+a+"-584209334795952122"+a+"5394732652930194757"+a+"2730298801417611566"+a+"6127272148572058212"+a+"-1331780583464768572"+a+"3092705661319183797"+a+"-3358432702900621085"+a+"-7547881226162667764"+a+"5828399694397811393"+a+"2231431973296909649"+a+"8779788609758773812"+a+"8714704936049961386"+a+"4943063128132597879"+a+"-3867062250178002727"+a+"-8339810247374085843"+a+"7234933578578419426"+a+"-402527188847953755"+a+"3086955841106122992"+a+"-689626326941754786"+a+"6346321656427491704"+a+"4841461452866853838"+a+"-7570267338657285474"+a+"-5549769923408703649"+a+"-6802003668512654632"+a+"5643116227623318457"+a+"-276980324301277232"+a+"-6896145161449352378"+a+"7000112851564301199"+a+"1123739621890119666"+a+"-1273471234785794089"+a+"5678409026331514674"+a+"-6634675684686943281"+a+"-1742556170324272568"+a+"-2341677967153991707"+a+"-6013346906619287868"+a+"-2265904069113320465"+a+"-5082431775224591539"+a+"5150530461316553619"+a+"-7701169879475571551"+a+"-4413654608010492695"+a+"-8622509856706064679"+a+"-7401519088241343138"+a+"6220527027528988401"+a+"9176542381028493531"+a+"2305793753238814856"+a+"-6617674145447145691"+a+"3106567589671900131"+a+"6689161216257139590"+a+"168889743807948855"+a+"7264870661777140397"+a+"-8665889717474009561"+a+"-5211218139780470062"+a+"915946055255785099"+a+"6557470483819917853"+a+"-3230930794341326478"+a+"-8261383331801563320"+a+"-2933248498027527830"+a+"3362285046791131266"+a+"-3236602998387360002"+a+"-8958841079789863786"+a+"-3472701866284984193"+a+"-3511286732130567604"+a+"-6832401335718815225"+a+"8495013884793993743"+a+"8478585801967012282"+a+"4545872409451722191"+a+"8751458915670103119"+a+"-3763263867978786008"+a+"-1505329801046065714"+a+"-1487289463746694204"+a+"1347751514604296858"+a+"4784023666843971581"+a+"4903739282273211570"+a+"-3903776439577921595"+a+"8906566957544227123"+a+"6453203279956387273"+a+"-7452238920921298399"+a+"8285138967744368852"+a+"-6353495953655828378"+a+"5478630133774944113"+a+"-1848015806237578727"+a+"1726662551911588308"+a+"-993442115399966460"+a+"6049095848239074810"+a+"4136475939674117472"+a+"-9075783297092503025"+a+"-2739244532591253278"+a+"6336851307741455"+a+"7639089003606955514"+a+"4688713394058952110"+a+"3056645057829377881"+a+"-8506726966182516868"+a+"-383731751399324748"+a+"-3654274050295505340"+a+"-8247615502549622328"+a+"8051425367409412021"+a+"5070740236957071517"+a+"-6304043607850294460"+a+"4879326440171479053"+a+"1207827151958931536"+a+"4368497979050464647"+a+"8756179114525016710"+a+"6572802117590866192"+a+"-5922996303565406074"+a+"6778103995113936523"+a+"-5476940069258540858"+a+"5487657823671443257"+a+"-400926173735974729"+a+"-8540988823898343550"+a+"-7014060288497364443"+a+"5644928988464987381"+a+"6879543305099205347"+a+"7964655700571564172"+a+"8088691900248937126"+a+"1723219599198728500"+a+"3018536455974744881"+a+"2940291325452882573"+a+"-3786758981089890638"+a+"-797560390807012370"+a+"2663085406348533867"+a+"-7308829391124894805"+a+"1803629826901943189"+a+"5846440929888909977"+a+"-8542702904802823040"+a+"-7163216730812752942"+a+"2221034704463855614"+a+"-2405682157860023115"+a+"-4676395964625238782"+a+"-216963140376579792"+a+"-5103389651471831933"+a+"9017702006631036993"+a+"2938999348929657766"+a+"-7730679226114448199"+a+"-3743205304154717157"+a+"-1776479219937991102"+a+"1654078855927477958"+a+"8094809716232335012"+a+"6340983493686361250"+a+"-866493891022565565"+a+"531735533923973602"+a+"2747910080493628139"+a+"2200812898658983768"+a+"-1513950816115621936"+a+"-8337720631869198822"+a+"-525577754379940401"+a+"7551804934410883426"+a+"519746586022812922"+a+"-8045547892464635210"+a+"5951243721520801875"+a+"5934161767066905672"+a+"-4705079481574756138"+a+"3464716257976122783"+a+"8978831342572010684"+a+"8187941088102065781"+a+"-3084684641150941442"+a+"921477582871759843"+a+"3307658955544601367"+a+"-2996165763170645061"+a+"-8274541103042848498"+a+"-3463908933883305420"+a+"-5048691860297368141"+a+"2177078496606619084"+a+"-8827388744732292312"+a+"-7957446549730534038"+a+"3303941265807359394"+a+"-3640624108889803582"+a+"-963485886713923471"+a+"-617302574273490179"+a+"-6628433587492636867"+a+"3755304851471882136"+a+"-1455409516034175087"+a+"3281387006666817931"+a+"8187267763424429725"+a+"-2112757461247130450"+a+"8487163885819199287"+a+"5515268578675020120"+a+"-7516059575070424029"+a+"2096245470903398985"+a+"-3599383330369850733"+a+"6717668160055633097"+a+"997039288715036912"+a+"-4111524577411313904"+a+"4213859757422026202"+a+"-1454344243953370904"+a+"1338177838168081261"+a+"-242181692786070896"+a+"5399006252168649414"+a+"646614180822848995"+a+"-6184731866872587323"+a+"-1444188926767387207"+a+"810942930502440211"+a+"-6218682137716519027"+a+"-2720895870328575898"+a+"-8808292532570299552"+a+"2140505418194421507"+a+"-7888434952098884132"+a+"-178310388289817980"+a+"5905005163930882235"+a+"1635421671359890907"+a+"6750033111404860777"+a+"-4564576791357207914"+a+"426758066406202856"+a+"-4872081106509472156"+a+"-5254560181717342221"+a+"-734363642590401321"+a+"9013812156623195750"+a+"-170482851728801429"+a+"-7173862230840257316"+a+"8254259043201955270"+a+"6501276346832030105"+a+"-8273757015293296575"+a+"5387853821745750442"+a+"-7474855440619051354"+a+"-1753227913458519222"+a+"1092217748501059899"+a+"-8791276135678971256"+a+"-218877590915892737"+a+"-4340725654742199259"+a+"-5742289577091247053"+a+"1343358900061715138"+a+"-1772225708659554277"+a+"-8797614013992611270"+a+"-3497464196302835963"+a+"-8309105028352082612"+a+"-663094820895261814"+a+"-3444240896004163203"+a+"1957144248429107731"+a+"4757954753357798716"+a+"6593264534837630366"+a+"3497227202123306054"+a+"2776287487035884738"+a+"6501556871116799564"+a+"8899612329989751536"+a+"-3778659576142179374"+a+"124703871414090235"+a+"6948288598497539417"+a+"-4996449766025445415"+a+"793686075701987520"+a+"-3198002690460840789"+a+"4009422788160882918"+a+"7193014696603651322"+a+"8082998766648896404"+a+"-3788231277556968381"+a+"-7148495983093530214"+a+"6736890024758916021"+a+"4216940336435230007"+a+"188328503832869176"+a+"-7120102739398964547"+a+"7607953946534615729"+a+"-3899525495187175563"+a+"1166694345313931652"+a+"-3219263269800959297"+a+"3266634161081313882"+a+"-9037148961090722434"+a+"2318060343891873059"+a+"-3515133393575994446"+a+"2566508863198691678"+a+"-9121275522528117659"+a+"6552814346023252631"+a+"-3844267506042688565"+a+"-1653156565782005455"+a+"-7173322703490581596"+a+"5311129569825581925"+a+"-5981496794536948251"+a+"485799454892997258"+a+"358814548216823190"+a+"-5883996450830917482"+a+"7892070487849955837"+a+"9041219978475479524"+a+"6784193649663705084"+a+"-704406440822053065"+a+"1617597350703726007"+a+"-2824990004512410626"+a+"4830833946059156601"+a+"644059663093447897"+a+"427654689358798040"+a+"9099539326079885915"+a+"451266633755291926"+a+"-5408292146163444719"+a+"-8218729673873120822"+a+"4812059197525286851"+a+"-1417290372535981890"+a+"7317429815661408505"+a+"-4706671334516443621"+a+"910482975170331840"+a+"4711728128274846659"+a+"2218323880426214829"+a+"-367348826505176322"+a+"8003614727540982818"+a+"8216996872543133783"+a+"-788439557611798833"+a+"-1123607703495525944"+a+"-5169936645529424004"+a+"-4732836413189749996"+a+"6316451216750669828"+a+"-5586465654792010636"+a+"-2255003627213419612"+a+"3832664252804128629"+a+"-8179486934051614603"+a+"-66704645845932512"+a+"2891168224812430647"+a+"7343682511706734683"+a+"-4856741064043882673"+a+"3105181221952422798"+a+"-1099474774470322926"+a+"-7184541441405083512"+a+"-7896129042940196797"+a+"-3681692208118084700"+a+"-7509258819912375078"+a+"-8381523365664144601"+a+"-7225732013684948985"+a+"2678475084224492"+a+"-7010181734394821771"+a+"296311055436471362"+a+"-4702143638883053358"+a+"559908477673544980"+a+"8517217626632198543"+a+"-6048186379008685749"+a+"1369684436610985700"+a+"3019156035985140591"+a+"-6834648991262355946"+a+"-4562930321968735852"+a+"-5783944654661391108"+a+"-3024935798314909837"+a+"-5537008782762095937"+a+"-8256796962807994666"+a+"8280182536563837152"+a+"-7995629897164905927"+a+"-2077281075304869761"+a+"-6664775396054401618"+a+"823577603383936985"+a+"-6356046405898429951"+a+"-8623495862025298926"+a+"-2832501372323834341"+a+"-4481796606745599180"+a+"6843605553065863851"+a+"-2581428019573302665"+a+"-4898085659480564734"+a+"-7753556073828498238"+a+"3584727131727095358"+a+"-3832308975071072911"+a+"9140718478884669354"+a+"4412985822617555800"+a+"-5495456985889731227"+a+"7968697975111041032"+a+"5128251690040084032"+a+"-6862414414207627440"+a+"-3006234487295557652"+a+"1324045417801509638"+a+"9219605576569074261"+a+"-715417453106249977"+a+"-6617654008397873848"+a+"4229951799618365819"+a+"231813632375250011"+a+"-5576308538620286115"+a+"155792926466618637"+a+"4836500552335990074"+a+"-1663547996885277909"+a+"-1993180218372871112"+a+"-6473687783379261579"+a+"-7883704607391325351"+a+"6687986130491546753"+a+"3364635474781455617"+a+"4731053967944701408"+a+"5106931322115930293"+a+"2095420057364729214"+a+"1156896580537176357"+a+"-3465259520146717874"+a+"8942297204813033067"+a+"3040683329504834342"+a+"7960068558868562069"+a+"1374491342528201959"+a+"220770130923384416"+a+"-4584976438727763232"+a+"-6069230704051231674"+a+"-8140389424077462925"+a+"7919822713176100795"+a+"-1612055155113080071"+a+"-6162416958187795790"+a+"-4915054237654038814"+a+"-2866828504084776090"+a+"-2938976209207559391"+a+"4467247253829594198"+a+"-4850525891734929210"+a+"-5426296772220968816"+a+"-5186441394167538452"+a+"8794590532854589490"+a+"-6578705991441722668"+a+"4035357871963126061"+a+"-1070129802059123630"+a+"3921226994129637452"+a+"3722734392905978983"+a+"-5956139048691736972"+a+"8416144324331798575"+a+"-1923420510655314387"+a+"227615271206429181"+a+"2226209514116787552"+a+"8297056456961422020"+a+"-8359499256195569822"+a+"5576341039369051576"+a+"4702120714246748976"+a+"-4042574530811250124"+a+"5083076081415490044"+a+"-3219070452310786083"+a+"9106311493699607016"+a+"6241102595154319624"+a+"4669706243845736720"+a+"-1520829982172760232"+a+"5889904275233942734"+a+"-68294517832626517"+a+"8638744614373433656"+a+"7567202626162399799"+a+"-1964780367369499411"+a+"-999558730666848273"+a+"-1669144135230350063"+a+"-1242209923845724629"+a+"-39031062552363627"+a+"-633233388401520761"+a+"744323104049287611"+a+"2014860468464161034"+a+"-1193284554157526823"+a+"-6855964882992540021"+a+"-8036572965809837220"+a+"5547258320624838991"+a+"-361938219569996785"+a+"-8704235972253373193"+a+"-9003427919587620451"+a+"-3130703444561361256"+a+"6132231206933208148"+a+"6749398961654190635"+a+"-6925034059616949205"+a+"1571738287308720679"+a+"5431255372312963846"+a+"2347890316226708844"+a+"-2587017991946539209"+a+"9080522648955318115"+a+"-7782900851433774520"+a+"-6414286033878819230"+a+"-7471905833427183625"+a+"2344443512917666900"+a+"4030672884858720641"+a+"-7228311107668937320"+a+"-4225049585365454557"+a+"-6696854441560120790"+a+"-7915428687108202019"+a+"4633264419167771904"+a+"-4039899830387050632"+a+"4267398965683805622"+a+"4751252376443669194"+a+"7198205969788397676"+a+"7129010695954880057"+a+"-5046741236772984850"+a+"-4893430234027272579"+a+"-6455089705569729002"+a+"5902751572800271273"+a+"317847978001983086"+a+"6591677451518621291"+a+"8725653562600482585"+a+"-8811453516738818670"+a+"-1937983213300134926"+a+"8001111295566882768"+a+"5432568004739151861"+a+"2808858632003233217"+a+"-3187854607564760867"+a+"-4004527449867163605"+a+"-336181840705754865"+a+"-7246637421972455801"+a+"3241758430536346550"+a+"-4914749815050143296"+a+"-1212912223502301394"+a+"-3749450625260640454"+a+"6243151812487782821"+a+"6226970592369211413"+a+"3870468034484872191"+a+"-3248010484204365646"+a+"8695259523944941306"+a+"-3520121047936500619"+a+"-6202360059242836333"+a+"804974149902754252"+a+"-4201170229733288025"+a+"-2814614190330637712"+a+"6732531893826755548"+a+"3587696942827103210"+a+"-3914504395162054719"+a+"-8295349942655173543"+a+"9016555458455142195"+a+"-1330972165973762190"+a+"-2857642318211707901"+a+"1621441195752982471"+a+"8796740055346885333"+a+"-7469350179954618293"+a+"-9198507324056667574"+a+"3050171288568508948"+a+"-9202985112142352287"+a+"-7450147356246173085"+a+"-2650046968714225126"+a+"-7791493787770037023"+a+"3177967838851086684"+a+"-1087350519511644629"+a+"-5933630645292757737"+a+"-3057634277369326960"+a+"-117101563851313235"+a+"-1264847152478417639"+a+"-8169210788366092403"+a+"-1556957540384449847"+a+"5079856129131839009"+a+"537009568676640293"+a+"-5226270953762115350"+a+"-5324199301103706379"+a+"1804591847796379880"+a+"879735902087758412"+a+"-5630733783825054658"+a+"-7610082778137157946"+a+"8119553100633562646"+a+"-4142666375828182767"+a+"-3150914012657811262"+a+"-3152263088065891155"+a+"-4147965428223902173"+a+"336844704958883063"+a+"6955766203242207822"+a+"7683778390826560099"+a+"5014524116896306283"+a+"-2992139592508518392"+a+"2544694784394516960"+a+"-5480878629851767455"+a+"4522873847351478191"+a+"8326626511086571601"+a+"-6422801033021366756"+a+"1578678540985889639"+a+"-6559866042619753837"+a+"-2578877569999104925"+a+"7368303770053372871"+a+"-5747703212301246727"+a+"3357596325498795038"+a+"-4133533100284207148"+a+"-1015951027680129461"+a+"7467490110644909021"+a+"3158855981736880188"+a+"-3172906774568163396"+a+"-6828938093617592265"+a+"7233629791141415838"+a+"4812403726420496447"+a+"6467043740588425016"+a+"4659999192592765884"+a+"4652951018723752460"+a+"666208123998413658"+a+"5018988295449121771"+a+"2765215723643073329"+a+"-5805565308999822918"+a+"-2076549345780039899"+a+"-4426400335663121800"+a+"4275608708948464015"+a+"6675022547067205759"+a+"-6621196489948540900"+a+"5722802855070403337"+a+"-3327707032135994635"+a+"2262928498967088118"+a+"3530071204065036832"+a+"-1638714306566451765"+a+"-7690788209354558171"+a+"7113955705845913085"+a+"-4081197284015476492"+a+"-4353435977967011984"+a+"8870894978912968709"+a+"-3378124121881489095"+a+"-7072527214702087999"+a+"-3826738314876308053"+a+"6851749976613062176"+a+"-1750785357222691439"+a+"5276086865661363858"+a+"-2963967637668099145"+a+"-2226482578674911965"+a+"1262913202855543983"+a+"-5719872184568399655"+a+"200057904572055249"+a+"3289053279870908000"+a+"5864930648060653187"+a+"7113948028888391656"+a+"2015505708560011961"+a+"-7688130328085946546"+a+"5595350336910484927"+a+"-3684238588780478855"+a+"8613416584425920054"+a+"4249559202049962502"+a+"-4129474140910318501"+a+"3202291309460908583"+a+"-3928494809434341489"+a+"-6076283274923897400"+a+"2169394210116526098"+a+"1301281724191196147"+a+"-3958391744948119278"+a+"-1860291525879287948"+a+"-7367822264979394844"+a+"-766202970211237697"+a+"-8712119674703561328"+a+"3736413026361360914"+a+"8876590410660191123"+a+"-6382124384610352682"+a+"6651183499700364511"+a+"3984890132222164810"+a+"-2794025605547462106"+a+"7570641472538557794"+a+"4552556182522839127"+a+"-4548338499653656596"+a+"7388941229386075240"+a+"692547794703939317"+a+"2436692756551067478"+a+"5482475673724460138"+a+"-748428287238371735"+a+"-5046147474484082687"+a+"-5645192179964259396"+a+"-8910889623475454631"+a+"-7535738450330975492"+a+"3379953857191884896"+a+"8375308725109206639"+a+"-3259253628170470412"+a+"-6364776491423973320"+a+"4966967577296742092"+a+"-4235437682144171048"+a+"-4470283232421596519"+a+"-684373034549167112"+a+"-7544358005155380888"+a+"-6089672722052548507"+a+"-592422057867469495"+a+"-8870281455177471909"+a+"7127816281889312309"+a+"-3179360379771308795"+a+"-6866650128224703956"+a+"-698801804772675516"+a+"-7121841945155861602"+a+"4750365137868030895"+a+"7738153537752652299"+a+"-1216300091806872614"+a+"6771372917205053677"+a+"8056989338981147611"+a+"-7044136404236635947"+a+"1524250009079309577"+a+"-7230380836977314093"+a+"-6328397610668843257"+a+"7230102557130438170"+a+"5484760717538397184"+a+"-4732383013272760348"+a+"6744415428010607923"+a+"3022090164560283027"+a+"1568643906810575794"+a+"-4622791717852927720"+a+"2660468600538675557"+a+"-4294780086359953512"+a+"-5594348200211861931"+a+"7259557701039606348"+a+"-4560711143417983449"+a+"3190332956225415592"+a+"-4944263905951727131"+a+"-7385385614052438337"+a+"6733540044280164868"+a+"-4331161235831157019"+a+"8634623412407676066"+a+"2815941638062550421"+a+"-5232679099207881714"+a+"9202366913391292565"+a+"1619237350162891149"+a+"-4564477822700236200"+a+"7208442585339078747"+a+"-3950616628069894494"+a+"5754703381790672111"+a+"-2018876234266819215"+a+"-2103659793485769597"+a+"-6916752526519644133"+a+"-5834005017330986797"+a+"2648524451218973875"+a+"7580548958796221476"+a+"5839987782269727665"+a+"-1935092394547033721"+a+"4819296501593189329"+a+"-7449320539156769442"+a+"1515981491563393083"+a+"1837234754028675615"+a+"-2691299151050994461"+a+"7834035250536263000"+a+"947382469723180338"+a+"2070628618009620722"+a+"-7701999848196581146"+a+"-4989233495601617735"+a+"6771060135514012470"+a+"-4386300160537078757"+a+"9092560637994350648"+a+"-8393149325636269009"+a+"-7113205208559790969"+a+"8011664749276243449"+a+"-8266196281237589216"+a+"8259712846621683948"+a+"7059975912623943052"+a+"223293421261472175"+a+"8973572126931896900"+a+"-4078694841056319197"+a+"-8595306693898275504"+a+"340597839860111269"+a+"-4480614924930277584"+a+"5517819178252021904"+a+"-6096927906070665728"+a+"-4822198221110160891"+a+"-2577002508408181546"+a+"7315528082960323822"+a+"6657773545505244526"+a+"-9111063062018438849"+a+"3439200446592946185"+a+"8124115377302205054"+a+"-990430432747932271"+a+"2480444268192630917"+a+"6336395495152050177"+a+"4671803505031381126"+a+"1380595797077890307"+a+"-5823356456068914608"+a+"3643552808887949018"+a+"-705654815289741872"+a+"-4942555973230170239"+a+"6841175442962388185"+a+"-2247742565737854444"+a+"-5965872412923179737"+a+"3233876736034274927"+a+"8059548267812355744"+a+"-6442795951984446700"+a+"-8254441926716747299"+a+"1221578904699451729"+a+"4484393240198177513"+a+"-2470934872280561758"+a+"-4000515761544913848"+a+"1841312402397132371"+a+"-6266121333022015942"+a+"3036409269701812841"+a+"-59909522137328064"+a+"-7406201526142657853"+a+"1630047227661167327"+a+"-4897993438023877765"+a+"6219253283169460131"+a+"-2495741112802518127"+a+"1302756514188318054"+a+"-5533782832811642678"+a+"4354798003992578770"+a+"-7986677467980853803"+a+"-8744988257359396573"+a+"-6397501769218728272"+a+"-8947660384927553231"+a+"1346216959820138313"+a+"1425398524283165869"+a+"-1283087607147001752"+a+"-206913821141456982"+a+"8014851305433763531"+a+"-3306492978461841825"+a+"8939538755388149906"+a+"3470041899206769451"+a+"-5835062378542834467"+a+"2752364486063988952"+a+"1939934425938166195"+a+"3008044486201466147"+a+"3722009335165103141"+a+"-1454123726393059460"+a+"5521045270087722675"+a+"-7584468636879988727"+a+"3455604157334575597"+a+"6444214822533935856"+a+"6685753141598286685"+a+"-8249605279529950251"+a+"-6108157385140562268"+a+"8698570457891691937"+a+"712682936770346210"+a+"8683885651874370181"+a+"1511630497269458523"+a+"-681331991295002562"+a+"-5538407606653779370"+a+"-8225676124935582566"+a+"2992867944170172744"+a+"6467556416530619962"+a+"2894317729672299826"+a+"2367294768805338520"+a+"-3795911641430219706"+a+"7315593747565738571"+a+"1073925020137124304"+a+"-2009620617725341558"+a+"9192484969344016724"+a+"-8555372001436210450"+a+"5988230853661579250"+a+"-2058267483034575749"+a+"8122930851637461010"+a+"-4226809344373377312"+a+"4203514443098305340"+a+"-7584642885221900035"+a+"3741247320369290823"+a+"6409416416737382822"+a+"-8756241943904648267"+a+"-1162965036863622490"+a+"1309747872651362397"+a+"-2083806146045300730"+a+"-8644749146832603574"+a+"-5860595045064427633"+a+"4705270308983783907"+a+"6728325949665520780"+a+"2355167571219782987"+a+"-7485062256841845804"+a+"5444171101615347210"+a+"9018416163053665286"+a+"9087649652391753964"+a+"7355274780617434646"+a+"-2263053130520029143"+a+"-7771114517872233976"+a+"-4333605022901923898"+a+"7416196136755926012"+a+"7874945996172274746"+a+"-29647836685576855"+a+"-961434168856881325"+a+"-3639241545807632723"+a+"2546758658973642586"+a+"-7953791153076501308"+a+"1931422568598613109"+a+"-6717842740108986537"+a+"-8291630841266816948"+a+"2765890591673690873"+a+"5638615108868643823"+a+"2610285609096522668"+a+"7182053208700872695"+a+"-4387966805233548375"+a+"-2987355674746176789"+a+"1944114521650872928"+a+"2716385647022901732"+a+"3672937770299043773"+a+"-1596838794080989326"+a+"6994512773580910508"+a+"-3554310089091955519"+a+"1355466662459087327"+a+"8762632012749605111"+a+"6587327856302852558"+a+"3311118198598392544"+a+"-6793004875159213313"+a+"-4848547389526226739"+a+"-6311353038235974265"+a+"-8195505362848449864"+a+"8808125456239414991"+a+"-4177775909520246100"+a+"-6619635425075002725"+a+"-4132694774520176797"+a+"-8317158135140825016"+a+"-3478442824038580944"+a+"-6007598038909081516"+a+"6302404450442477855"+a+"5778955250949510691"+a+"-2089763170261427622"+a+"4741409635703394816"+a+"-1604648981138860594"+a+"2858368262704801633"+a+"3077936222317121549"+a+"3876636234691611503"+a+"7072310780592103797"+a+"6875717807996264388"+a+"-8119373122628671342"+a+"2592321197819846005"+a+"-4865044565472487744"+a+"370243778170973267"+a+"3538560122812949268"+a+"5604800454296726126"+a+"1099039521029719933"+a+"1347625018260219866"+a+"-760735066813486043"+a+"-3588040698066642251"+a+"7697720740645299484"+a+"932557864155975527"+a+"-6719149903083035080"+a+"-3632384404564322005"+a+"-4437288996570214090"+a+"4876681836482086607"+a+"-700013811510345180"+a+"68286250809712567"+a+"-5723038568786969085"+a+"6180096348459871527"+a+"-5336303492423424089"+a+"5268064677773382592"+a+"-5468221560993276190"+a+"8728616035972006219"+a+"-18735560580305439"+a+"-5237022430459186507"+a+"8477647565196617941"+a+"5477971880707102298"+a+"-25742072802303019"+a+"-7628253021115937147"+a+"-4527455294363884798"+a+"-6779159922670200777"+a+"-4332755792343947029"+a+"6246992222472870439"+a+"2466686335846188851"+a+"-3176660018221785078"+a+"2227603986683319665"+a+"7764675382631007764"+a+"8993875510396531287"+a+"-7390864096506767171"+a+"7337153217923216149"+a+"3248867097428978888"+a+"-8078994459496454913"+a+"6023362300574921600"+a+"6957790098961696109"+a+"-2951896231335096508"+a+"730304460660495330"+a+"192254390069636166"+a+"-1049566252317531537"+a+"-7248026460359122545"+a+"-4856240343559698343"+a+"-3288455520075047354"+a+"-3462385567291090183"+a+"-9076025559385888976"+a+"-9080194978079616797"+a+"5107397421493446778"+a+"3642195766291641162"+a+"-8607615188211212362"+a+"-6565851555561356894"+a+"-7348624522328956381"+a+"7643434229912546183"+a+"736968235053630257"+a+"-1558131958624533283"+a+"-4267365336994799805"+a+"4685285441925601335"+a+"-417452777611981130"+a+"-1612672569043764356"+a+"518118522100466977"+a+"7477758616731323079"+a+"-2084762027578400546"+a+"308555469435645327"+a+"9031665960208658121"+a+"6230664225124256264"+a+"-1102830740815288761"+a+"2817926313141144264"+a+"8490820541726712201"+a+"-3156215760262899028"+a+"-9071289492098116078"+a+"8425910717564713723"+a+"-3806622682195406474"+a+"-4420283133736675380"+a+"-2130571006470095261"+a+"2440746963483934373"+a+"8556899456135230949"+a+"-1985525364566697115"+a+"-3365400095873163035"+a+"1119910485872254819"+a+"-1046656997374317070"+a+"1415882540628621014"+a+"8383333511655382851"+a+"3352737800845652086"+a+"-4956645021080570628"+a+"-4221159765757641885"+a+"2639365141465593776"+a+"4935151287859683142"+a+"-8102019963811174617"+a+"-4133912392369401163"+a+"5480446863201440096"+a+"8759003265342329820"+a+"7180798877987804633"+a+"-3106517939429595304"+a+"3471288105411959053"+a+"-363148694271843994"+a+"5042344163278449725"+a+"1616698931072621884"+a+"1797865194247105907"+a+"1444037657274074806"+a+"-7029718486968835133"+a+"8844266795997125173"+a+"-4944651518545568813"+a+"6487964973590478532"+a+"1886109974317222046"+a+"-4842848483402883461"+a+"3531122380482669684"+a+"-1558709588580146904"+a+"-4342403627297550780"+a+"1689103941253311787"+a+"1061199116206243613"+a+"5061874826462778016"+a+"7334887834022786034"+a+"-4953914412460735293"+a+"6809021047861032861"+a+"711439222068774288"+a+"6586553718450977062"+a+"-4848541873011906646"+a+"6392546595089496644"+a+"-7454402105323812227"+a+"6808280476233343523"+a+"-9163248863081859930"+a+"-4935115052088543129"+a+"-2707173481561263983"+a+"-5040722886254228368"+a+"-6529198091145506973"+a+"-8707423069418058529"+a+"6038039841022866971"+a+"-8982004619693436071"+a+"99422527511009523"+a+"-5165864716533667702"+a+"3531760248632559884"+a+"2453964053489566829"+a+"-6810009552064415671"+a+"5897335478825586377"+a+"6746492442484332410"+a+"9002181253533066238"+a+"-7812070282260401475"+a+"-6234637736823676415"+a+"6931601391561453600"+a+"-7651946779799617116"+a+"-1476679763922561909"+a+"8319727058209931290"+a+"9211601851260334812"+a+"4380122268541574330"+a+"-6141835365182903981"+a+"8859095374016622339"+a+"-6080848116160933583"+a+"-4043345743566579489"+a+"2007464217689982107"+a+"5615227751077173548"+a+"-5247506120933105981"+a+"7613105194332406391"+a+"-4518167165425198520"+a+"7264351302739188234"+a+"-4369130358793113123"+a+"-2996862511695551704"+a+"3429626022551086889"+a+"8574417589664275094"+a+"1485655701114573806"+a+"7290363364964116061"+a+"633425129373641068"+a+"-4682720896109445682"+a+"3199403151033991687"+a+"-4725352862128009786"+a+"-2935010460126746329"+a+"-1571339865719136973"+a+"-5327135494658638497"+a+"8662308269909751254"+a+"-5408996137996185392"+a+"5822097627997115722"+a+"-4985750595042038833"+a+"-5449287288045688252"+a+"-9005565456474303035"+a+"-2513523367955029477"+a+"-7237889187143268265"+a+"-955049681514771829"+a+"-715290057971470138"+a+"-5112632449472312395"+a+"-8999368014349704297"+a+"-3553787458899280279"+a+"-2242033452520855946"+a+"8288454840875082408"+a+"6759946808749896791"+a+"5499698313251322468"+a+"-543042823206248483"+a+"-3716280375908332407"+a+"-1767850440715110401"+a+"-5812090670386736064"+a+"-4448772542800653592"+a+"-3691411356019826575"+a+"821418385527481119"+a+"-7917444741151119478"+a+"9025312584318696168"+a+"457131154694574975"+a+"-6494407505970093591"+a+"1848951345003203089"+a+"-7088652100860042993"+a+"3607909891740382545"+a+"-5678294653111490382"+a+"-5795543117613854617"+a+"-2151575121446292234"+a+"7620964843728469135"+a+"884290653714224245"+a+"-6843277283286932892"+a+"2408695048027763994"+a+"5842614161247609697"+a+"6010166672575060815"+a+"6812469602680659875"+a+"-5997140003653359782"+a+"7985395093919912947"+a+"-5213351642343076604"+a+"-2464006694883863548"+a+"-8272827464694685317"+a+"-3362460353719917320"+a+"6627775285154308985"+a+"-3736521844071744472"+a+"-1239142425696476764"+a+"-2717329470631008732"+a+"-9002493101279878344"+a+"-3081549338662512136"+a+"-4192120168253245726"+a+"-5262450888373666639"+a+"-4359619098442462225"+a+"4545309526212303135"+a+"1706751050568448421"+a+"-7215605223506374693"+a+"-8384613778406303503"+a+"-9115598915407494261"+a+"6493557840925709377"+a+"6002444260666557796"+a+"8757276082417258931"+a+"5517276445381297648"+a+"659854512378354543"+a+"1171949515664870929"+a+"7962665662827588176"+a+"-6428441354297408443"+a+"-1407303201060735287"+a+"-4630527955770637782"+a+"-3356564721964583930"+a+"7557293222167592516"+a+"-8976462499445679791"+a+"4913334300847132158"+a+"2715824074188316087"+a+"7098688088987829230"+a+"-5274733612517799445"+a+"2306144525447966301"+a+"-539171553148664727"+a+"-2276057022041114107"+a+"4472359697252482014"+a+"1517895533819116828"+a+"2952915317797409734"+a+"2416809354563825297"+a+"2136737984086357846"+a+"2932202033487269269"+a+"-4978515174981634403"+a+"-8763651883011539620"+a+"4799662088047448549"+a+"5524894362826545444"+a+"-5208901486068361377"+a+"-1547410064372038538"+a+"-8679851852185635074"+a+"-6401793263036105813"+a+"1985033060226478242"+a+"-6482220174980880207"+a+"6762019587712483449"+a+"1480525796015390734"+a+"8108723650031480226"+a+"2978843720351459877"+a+"-1336081875989930222"+a+"556688536962464952"+a+"-8872538052181681477"+a+"255278049706330286"+a+"-4841349086783434006"+a+"6790383796723089429"+a+"-7198580012715268624"+a+"7533854893267875945"+a+"-2767027533395577852"+a+"1674612631113288982"+a+"-7576984746517155992"+a+"-481457683325295045"+a+"758818546926160585"+a+"2117683637265311664"+a+"-3476219835082397205"+a+"-6484741587933492150"+a+"-3940875002536970107"+a+"9002040825213956445"+a+"-2917174987364332695"+a+"-66727676135893375"+a+"-6674337036793155609"+a+"8118072832569742745"+a+"-3664957541486359181"+a+"3419614972338034449"+a+"2824903256761154949"+a+"-6225521424818911642"+a+"-3824663404241060416"+a+"2835358670736706282"+a+"-5533635873640849322"+a+"1617737717408188617"+a+"-4342543362518212950"+a+"3769111142858305094"+a+"5945502355322974774"+a+"4120872397983584586"+a+"4003174987165865902"+a+"6964706800478134559"+a+"5993470215902535781"+a+"-3857502962439131016"+a+"6443524725591602672"+a+"8748264180145478580"+a+"7538036956928816136"+a+"257424971305193315"+a+"-7190236128509444940"+a+"-8704789362619223288"+a+"-270038105961354585"+a+"7574705795800529952"+a+"2228596148561184230"+a+"-2598750511091798685"+a+"-4195006584725201235"+a+"6470237484799739465"+a+"2042088550081344147"+a+"-7770224872565971249"+a+"-2058622155715559444"+a+"-738640071637619846"+a+"6143958792144726894"+a+"-8044362213379668580"+a+"8224887012855159830"+a+"3209854232446227413"+a+"7478149109097640268"+a+"8619347318797205212"+a+"1488851936360789829"+a+"-2257801310284603777"+a+"2961907687413792168"+a+"5367228619753286376"+a+"-1167042234202606476"+a+"1803394380188483105"+a+"7136307422837830432"+a+"7632179788793817561"+a+"7023944626199186947"+a+"3029221576998905191"+a+"-3954742339958497802"+a+"-4932533517651240945"+a+"2249675176414142007"+a+"-7414865112301845628"+a+"-7714577080262540145"+a+"-4483412957955698002"+a+"8669699406632040375"+a+"4510253243393872045"+a+"-270125992295806985"+a+"1400099911585106972"+a+"3368608011643162128"+a+"-3186327211102508391"+a+"-7004808457975131044"+a+"-7215067159615180667"+a+"-5075493924283306445"+a+"-6114237907724615416"+a+"2088154268915196303"+a+"8209387529276365399"+a+"-3861942433898838286"+a+"-3813120950568086983"+a+"4896163299838231430"+a+"-2234054304997173562"+a+"-6969473690113031802"+a+"287032981324281713"+a+"-7026687415196300579"+a+"8437788536412928585"+a+"59519871571995148"+a+"-2007111664379543173"+a+"-4187774861098453680"+a+"8637401319054574875"+a+"-3700805565304526845"+a+"-7131960406437337821"+a+"-9164692797770846654"+a+"5886254500269905851"+a+"-7894830705315346737"+a+"484964917021538234"+a+"-7374162993396474055"+a+"-5804543483427702932"+a+"1879617763117321785"+a+"-1162861953767998571"+a+"6410937909461127263"+a+"2496574133855806134"+a+"-6930597241031595282"+a+"-3385347474182226802"+a+"-4906421813540775677"+a+"3376509800070706659"+a+"3685761347281413883"+a+"-3703605717022933887"+a+"-3317209424191430634"+a+"6680165104107806595"+a+"-1421152020715589033"+a+"-7151394767920287792"+a+"2896824926148914351"+a+"-583404044349217560"+a+"-7275827201673200806"+a+"-5581728992629175840"+a+"-3759399463589837177"+a+"-7851071796689193301"+a+"2999247104082515774"+a+"5959438451429054874"+a+"4102208806599304830"+a+"5269187542287488293"+a+"3228944852182629029"+a+"-1321932716017535509"+a+"9047738068879013652"+a+"-430117592908725001"+a+"154431757781615122"+a+"5292625191058274884"+a+"-820879976800688912"+a+"7815829825921520514"+a+"7814626282908207726"+a+"6194047515562578714"+a+"4543712357461835613"+a+"6127919059662056304"+a+"-3041755880890705531"+a+"-6015922524640142745"+a+"-8240746661018900280"+a+"-4647074590211540695"+a+"4425056076926604935"+a+"-3628558101005679577"+a+"-2309605200216451261"+a+"4349438603816361823"+a+"6884968378719474311"+a+"2939625268139399900"+a+"-7384655158838745851"+a+"-9059163303551992957"+a+"-3168260877632134913"+a+"-2661349036927497205"+a+"-5732836207041285912"+a+"-1718443522567783859"+a+"-5184477095451803574"+a+"-2639779818877942595"+a+"-4285786699429851414"+a+"4153392600555453496"+a+"-677818638916169175"+a+"-318976644252115457"+a+"-6839771369066395476"+a+"-1331867802548483581"+a+"7662766576406914111"+a+"-4643717697303062174"+a+"491370442500697590"+a+"-5601731377105462991"+a+"-2083896333033158507"+a+"-8348647619744535173"+a+"2195403489667511601"+a+"-7304902791933157238"+a+"-8078804357956911593"+a+"1830019802461446756"+a+"-6914546352406074389"+a+"-1069372453373657960"+a+"7973324441431550228"+a+"7266296868894064186"+a+"-8218200041998108841"+a+"-2383548244358994901"+a+"2936358553872620482"+a+"-7394464481476738659"+a+"6796605663613232330"+a+"-7001716129222120235"+a+"3733905505178873527"+a+"-8924101992160005069"+a+"-8053245946307360193"+a+"-1410662425490071697"+a+"2667987898784000369"+a+"3930779870894342436"+a+"-737013868548327724"+a+"-5047711387310744430"+a+"-1995068133569824048"+a+"7428068289838785439"+a+"7998411348436431691"+a+"-66606868251602657"+a+"-3140963045029084778"+a+"-294529882224598188"+a+"7884304850523476618"+a+"-7015430383734539592"+a+"1417659741149471982"+a+"-1503958245384724231"+a+"6513146138809209371"+a+"-633829660049130428"+a+"-5690846708247479070"+a+"5057521049567048390"+a+"-1831459748130174291"+a+"-5811032821990866321"+a+"1118822902012234468"+a+"-2951084719946215176"+a+"6595747868165419153"+a+"-5474017136886613977"+a+"-5014173376270024122"+a+"3378038340528525905"+a+"4881313666473403454"+a+"3191601076967017248"+a+"-7308891140200636223"+a+"7456642015616743574"+a+"2377344551942001357"+a+"6578033781675835473"+a+"-3042794498162452750"+a+"2427071443633851664"+a+"8344198901104076413"+a+"462607879869700213"+a+"-6970961797048172328"+a+"8964377020396178700"+a+"730041378577385264"+a+"-369108319145229173"+a+"-1704480982549139880"+a+"-2795521892361361829"+a+"7410857119861369581"+a+"-4967026415955924393"+a+"3401654287294004153"+a+"4927182977102119891"+a+"1620336809248274012"+a+"3577184301995047135"+a+"-6841529815937467863"+a+"4613796452620724683"+a+"-1054934308018524851"+a+"-8855800260865241874"+a+"7225581178800302134"+a+"-9032442258141207901"+a+"-7057262694446386383"+a+"-3732442445224352364"+a+"2761141437113645653"+a+"-929430840722605254"+a+"2511509677650090911"+a+"8118132181366237347"+a+"-550026691256274082"+a+"-3668907501140258954"+a+"-606810055944795439"+a+"-9017650565356767436"+a+"2095198344342310157"+a+"7093363964773361344"+a+"-3099270771817404892"+a+"2198062659168522785"+a+"-6273665991256788861"+a+"6839118058276544645"+a+"8192709088232625308"+a+"5013863326431809160"+a+"-4754511127120331068"+a+"-3661877678366068554"+a+"8656183962683002717"+a+"4892501203466148430"+a+"-4958645542284711625"+a+"6723996370247953481"+a+"4911629062665388595"+a+"-4387819364150439783"+a+"-1296268218059531735"+a+"-7641850932378884683"+a+"7087270855110065163"+a+"3754708083359768149"+a+"3889586698096405834"+a+"-6137225015939556998"+a+"6768463333145358200"+a+"1733091583159252657"+a+"-8161421181385050066"+a+"-6013229318518658409"+a+"2733581142152004399"+a+"33219917982979999"+a+"-6452758044749045043"+a+"-6442695315870372078"+a+"3835780802518037131"+a+"-3231354270509736361"+a+"8973485937631645699"+a+"721138559962451060"+a+"-5459139089955258871"+a+"-289240518852777004"+a+"-8912467672113900015"+a+"8386886357144052810"+a+"-101643017034454067"+a+"-4929821758780909227"+a+"-1266807567558686950"+a+"8928737992684490917"+a+"5916636164747024412"+a+"-5791489627671790370"+a+"-8438709873793054297"+a+"-6154848405003374437"+a+"-1167593657140619808"+a+"454661938430770613"+a+"3268496715979850020"+a+"4330546121321481412"+a+"-6723452375653753049"+a+"-8355576695333144347"+a+"-7219392445688183200"+a+"-9021944183281656899"+a+"8347317120521098660"+a+"-1760524396084873794"+a+"-2904405441760595951"+a+"1273212335776452264"+a+"5599936571602637613"+a+"-1874789470910305709"+a+"33067597899967310"+a+"-1550773524926263894"+a+"8415787422238198331"+a+"-5951819633303154694"+a+"2723272766251525139"+a+"-553120179037176724"+a+"447473466542519917"+a+"737323123399346128"+a+"2239775540296940992"+a+"1174078146829196955"+a+"2350643859956391173"+a+"-3438882603276611789"+a+"-1951707287079412838"+a+"-8428630040889486231"+a+"-669351995787567767"+a+"8513892233989162054"+a+"-530937035598775991"+a+"5426726267843651337"+a+"-3602850646806113885"+a+"-6429721144703485328"+a+"2107955875578696536"+a+"-5835559291240127178"+a+"-2890715836766470430"+a+"-9094627687565959459"+a+"308725312537075641"+a+"8722393287822659501"+a+"-1871034873782069769"+a+"-6243665891020870405"+a+"-7479233619970828738"+a+"4330539874988922286"+a+"3935621836467028953"+a+"615168151969985279"+a+"4445060597391296801"+a+"3410383985931968895"+a+"-579589989416250847"+a+"8303194436290111070"+a+"-4912677608615539331"+a+"-6965655216202631959"+a+"-5867361958201239665"+a+"-2490037409986115500"+a+"8855406855933096914"+a+"6843928093911668153"+a+"6613066040083806339"+a+"-1348861990157247904"+a+"8105723480957128837"+a+"-5405166066063685056"+a+"2174568676370020228"+a+"1730792060395168454"+a+"6845585680059012189"+a+"4924409929101075924"+a+"639025024172742077"+a+"5768643796258308363"+a+"416533415844656392"+a+"6259184655283512653"+a+"1806723304538309499"+a+"-8742505610523700611"+a+"9115577441284285844"+a+"-4422903889562854520"+a+"-8824082423929691984"+a+"-1594761846184958295"+a+"5443094875525914358"+a+"6623287219725446632"+a+"2163366667453320563"+a+"-3191492609540029469"+a+"-8478768721203218298"+a+"-8714235035695423280"+a+"1479159013581916798"+a+"-3029731821111886911"+a+"6063285391300612225"+a+"448982299938190378"+a+"6144131538023295407"+a+"3019455323078528928"+a+"-7593851815836924794"+a+"-8000720159411662877"+a+"-8830770921055302009"+a+"1276533555023357214"+a+"-7709979517561914854"+a+"2039814596470784108"+a+"-2570052517613437266"+a+"7325409472787663518"+a+"-3306248715853973724"+a+"-324933084126805189"+a+"5564649630755734125"+a+"-7130842274844587065"+a+"6500429736061520497"+a+"3075990014772699976"+a+"-1996052343038159566"+a+"2287584536748611077"+a+"4857750267117388849"+a+"2762191378890433936"+a+"-3787216983113538032"+a+"-7876139956665979641"+a+"-4434682462834688392"+a+"-6132345995543411306"+a+"2846828934507063356"+a+"2205056035534892863"+a+"6971362409840063934"+a+"-7334379541155315235"+a+"-2185887118772341871"+a+"7336523966377208421"+a+"-5181518925588434593"+a+"916829953978579055"+a+"8916196074684429581"+a+"-343902964928479243"+a+"-7524291869292823524"+a+"5057971524866397017"+a+"4735037701324009298"+a+"-5661196528985499220"+a+"-7174476579407401831"+a+"-2390421549535361748"+a+"-8803774619671917786"+a+"479835471799791118"+a+"1792276559188966877"+a+"-950711340133083778"+a+"1720537911995611123"+a+"5126428118418085091"+a+"-7331637704121976875"+a+"-7806518246166233753"+a+"-3189681476890420153"+a+"-4827285738546271306"+a+"9155113814944475088"+a+"579631697133442053"+a+"-712791131848894891"+a+"7622278436622830165"+a+"-3136674195548280572"+a+"-6935310496940897544"+a+"-2154475007448707981"+a+"5987083393899431764"+a+"2499138839933402376"+a+"226999891005733606"+a+"2675814497804340634"+a+"7006121889419299978"+a+"-1869449977369693096"+a+"-1277694500406902792"+a+"-3300574855852490262"+a+"3142802020191812497"+a+"3663379312038602453"+a+"4125257994180814427"+a+"-4571845229523457245"+a+"-3150058857386876342"+a+"7503846977488272450"+a+"-1661115278146574655"+a+"-3071863653254613716"+a+"4683248393738534743"+a+"-1859465107663223608"+a+"-4337623990306671907"+a+"4817982326835451535"+a+"-7667508470929533280"+a+"8307945079328891250"+a+"-8045760216482737685"+a+"-7858631362692153093"+a+"-3410708982722832945"+a+"6470378289978424498"+a+"-5483906378085151451"+a+"7382740210062959041"+a+"-3409959318852138797"+a+"5842851101995209434"+a+"7017954023532784719"+a+"974934155492127320"+a+"-3094009056197747103"+a+"-969387622581744988"+a+"-1632563381387869652"+a+"-9183098983740663590"+a+"-4320397456882074514"+a+"-3261368460000879189"+a+"383963959335946502"+a+"-3684640452189005692"+a+"1952680973518464182"+a+"6226530231022358768"+a+"3072568317345091370"+a+"-4962716382738148806"+a+"8455687499001964857"+a+"150246332340927830"+a+"640861774309913449"+a+"5838050563792098560"+a+"20611114217615544"+a+"5929259895778420773"+a+"6537239832453755289"+a+"-3264102069205369214"+a+"912347645120744252"+a+"2425848868939426699"+a+"1723027032012111634"+a+"1449357166220209037"+a+"2766362939912705680"+a+"4727545052215865110"+a+"-1616490558707992782"+a+"4409644222525651092"+a+"-4337183804510752062"+a+"3535045438786400315"+a+"8803098582001817561"+a+"-6955431114397740500"+a+"-6219310959583541594"+a+"-3700064324151895341"+a+"-2549680515428708882"+a+"-2401883646008126064"+a+"-7582292756795829165"+a+"7667156026808070552"+a+"-3558059286124310056"+a+"8735793018250739997"+a+"-6427974810371007068"+a+"1334783141990516397"+a+"867020448668406789"+a+"-5691512855692184361"+a+"2463958787597883575"+a+"7935389093643043859"+a+"4752545886380456294"+a+"-1196508123657862429"+a+"2093750917497615474"+a+"-7791249716898626507"+a+"8198523205454538737"+a+"262561788122779659"+a+"6696297940506045689"+a+"1287784952697600605"+a+"-4796552398039489762"+a+"385046329657361469"+a+"8831073988511756345"+a+"8308323241869503292"+a+"-6375459006577280917"+a+"4041141025072401164"+a+"1852830842547147361"+a+"550492070617199974"+a+"-3810637208423908392"+a+"634939432473076781"+a+"6820683277163483747"+a+"-2272753417970275885"+a+"-1125025879686622100"+a+"2345080866577073148"+a+"9070140269618540152"+a+"-3306117376765807520"+a+"3197312849039628462"+a+"-7832747983125543947"+a+"6928232711304267929"+a+"-4404354247155346356"+a+"7746342250056874796"+a+"7310633729720542011"+a+"-2728063333465515258"+a+"-4955603802615225157"+a+"6898617935063123704"+a+"-220170639807146220"+a+"-2019827212939117373"+a+"-470310388988857033"+a+"5505618100440132645"+a+"-7571658264226059414"+a+"-7888356696237361642"+a+"-4477730354595352022"+a+"-7846732783657640881"+a+"-8801627451734936756"+a+"5872317002164430091"+a+"-4339767558518547100"+a+"3910203839741261584"+a+"-3519143931735275157"+a+"164939830321181168"+a+"-5488818195135015269"+a+"-4667473428940159348"+a+"-4981236168318181219"+a+"3560846926667666393"+a+"3014750347556533222"+a+"1651918403266366438"+a+"784187752316822622"+a+"-8577471103724493539"+a+"-1656192333892982206"+a+"-1617317898423166008"+a+"-2678885846361396918"+a+"302211955997870039"+a+"8638572990304208397"+a+"2218502254957595360"+a+"-7161423473740763740"+a+"3277635809268947558"+a+"6105474029898724238"+a+"-3933173974127482275"+a+"4697446393802435027"+a+"-2515976829170222099"+a+"2494490943498590059"+a+"-5583096342045076362"+a+"6917551925452206303"+a+"-8907420521351388972"+a+"-2143228459842603216"+a+"5584211206548670691"+a+"1963827294400159992"+a+"1062816828116449093"+a+"-6249888286799449649"    	+ "abcdef" + a + b + c + d + e + " ghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxy12";

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test625/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test625/A_out.js
deleted file mode 100644
index 82f4568..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test625/A_out.js
+++ /dev/null
@@ -1,13298 +0,0 @@
-public class X {

-	void foo(String a, String b, String c, String d, String e) {

-		String s = ""

-				+ a

-				+ "1481040350234786852"

-				+ a

-				+ "4221089161101009540"

-				+ a

-				+ "-6170427739377068715"

-				+ a

-				+ "-1177132190659449391"

-				+ a

-				+ "4131074700002200800"

-				+ a

-				+ "6677964992006511358"

-				+ a

-				+ "2306558609804623499"

-				+ a

-				+ "4948023180683471330"

-				+ a

-				+ "-2100145421766851358"

-				+ a

-				+ "-3001840236323503671"

-				+ a

-				+ "-3489306742320139361"

-				+ a

-				+ "3121650335531224184"

-				+ a

-				+ "-4358571516300782510"

-				+ a

-				+ "1556752567442603373"

-				+ a

-				+ "-6962032360535946947"

-				+ a

-				+ "-5868276881678120598"

-				+ a

-				+ "4184984287312247424"

-				+ a

-				+ "-6721997605202472396"

-				+ a

-				+ "6617636037855015285"

-				+ a

-				+ "7266783356079704728"

-				+ a

-				+ "-8754237933673085347"

-				+ a

-				+ "-5817839502530750802"

-				+ a

-				+ "1583847687494714427"

-				+ a

-				+ "8951519125923785825"

-				+ a

-				+ "-3432930123357231360"

-				+ a

-				+ "-5451954362874316754"

-				+ a

-				+ "-33060006164703257"

-				+ a

-				+ "-7231434859633259989"

-				+ a

-				+ "608146062873988130"

-				+ a

-				+ "-5011488686871015606"

-				+ a

-				+ "9139797121591847350"

-				+ a

-				+ "-1886181867981415714"

-				+ a

-				+ "8841800972511057570"

-				+ a

-				+ "-4383413442757032866"

-				+ a

-				+ "8361387373543642695"

-				+ a

-				+ "-2639476650066862743"

-				+ a

-				+ "-2849702699413546749"

-				+ a

-				+ "1277733543017481226"

-				+ a

-				+ "-8031505870898978274"

-				+ a

-				+ "3666898192956052796"

-				+ a

-				+ "-7039203610026055703"

-				+ a

-				+ "-4819565592688393296"

-				+ a

-				+ "3501929543225217572"

-				+ a

-				+ "-52690043125786931"

-				+ a

-				+ "-241495509142914400"

-				+ a

-				+ "809240826052859383"

-				+ a

-				+ "6800981487534314533"

-				+ a

-				+ "-6524324695224261613"

-				+ a

-				+ "-3147335742845363307"

-				+ a

-				+ "-7905248515165548725"

-				+ a

-				+ "-8857719419158251696"

-				+ a

-				+ "3770652464690190606"

-				+ a

-				+ "-1373399701638993702"

-				+ a

-				+ "183252801833892442"

-				+ a

-				+ "-2177955360518900549"

-				+ a

-				+ "-6160006701784504259"

-				+ a

-				+ "4975115447927973030"

-				+ a

-				+ "-4048044119354860392"

-				+ a

-				+ "-1206947692733954083"

-				+ a

-				+ "-7546675664265042138"

-				+ a

-				+ "4602271912901891539"

-				+ a

-				+ "7473173362172414652"

-				+ a

-				+ "-2246791729943980270"

-				+ a

-				+ "5531429909557226193"

-				+ a

-				+ "9195798735326951519"

-				+ a

-				+ "-7045483396415238847"

-				+ a

-				+ "-4617871455255630821"

-				+ a

-				+ "-8404894183972146099"

-				+ a

-				+ "7953598172877176299"

-				+ a

-				+ "-4591952086688426778"

-				+ a

-				+ "-1793987074707489637"

-				+ a

-				+ "2792037511578283306"

-				+ a

-				+ "-3232503736907637185"

-				+ a

-				+ "-2854401600067174610"

-				+ a

-				+ "7250590952512651931"

-				+ a

-				+ "-6408953690487983106"

-				+ a

-				+ "6019268937581606852"

-				+ a

-				+ "5145016224651586273"

-				+ a

-				+ "5021772288190407942"

-				+ a

-				+ "5855473695186221281"

-				+ a

-				+ "7943605958236028936"

-				+ a

-				+ "8078550154530610313"

-				+ a

-				+ "-1501079708541374418"

-				+ a

-				+ "6016115716904921584"

-				+ a

-				+ "5563211195567408190"

-				+ a

-				+ "1881040805637616374"

-				+ a

-				+ "5715702334303460933"

-				+ a

-				+ "801733894157086669"

-				+ a

-				+ "-3883590202690143813"

-				+ a

-				+ "-4234177843042587717"

-				+ a

-				+ "-7799657549332828187"

-				+ a

-				+ "8916671952396843549"

-				+ a

-				+ "2499753011961486970"

-				+ a

-				+ "2055336783165487022"

-				+ a

-				+ "5030113625695917193"

-				+ a

-				+ "1677218655183543305"

-				+ a

-				+ "2735563907130567065"

-				+ a

-				+ "1466095306597867372"

-				+ a

-				+ "-8727329011390864623"

-				+ a

-				+ "-1657516366396933954"

-				+ a

-				+ "1607374426341641178"

-				+ a

-				+ "381434977513699282"

-				+ a

-				+ "-5934861424042302910"

-				+ a

-				+ "1021231529862004717"

-				+ a

-				+ "1731055950998634531"

-				+ a

-				+ "4758233516485895813"

-				+ a

-				+ "281446737818329412"

-				+ a

-				+ "2916827720194406987"

-				+ a

-				+ "-4113172032847483906"

-				+ a

-				+ "4322747256400475755"

-				+ a

-				+ "-231687239923818462"

-				+ a

-				+ "2273547761800209938"

-				+ a

-				+ "8708414041987305498"

-				+ a

-				+ "5172351889376721968"

-				+ a

-				+ "-7109740500688484275"

-				+ a

-				+ "1747355987716301695"

-				+ a

-				+ "-4148205799751382840"

-				+ a

-				+ "8621843109299178178"

-				+ a

-				+ "-2758866116022225638"

-				+ a

-				+ "107986368467906898"

-				+ a

-				+ "3331225483452456574"

-				+ a

-				+ "-3503271926995929130"

-				+ a

-				+ "6327215864271752255"

-				+ a

-				+ "8633503676753918289"

-				+ a

-				+ "737738740279256664"

-				+ a

-				+ "5359749581609185377"

-				+ a

-				+ "6887986159860721242"

-				+ a

-				+ "709533211623369924"

-				+ a

-				+ "-7319039509776682350"

-				+ a

-				+ "-3893683866865853153"

-				+ a

-				+ "-4554118729276913814"

-				+ a

-				+ "1842089193842209018"

-				+ a

-				+ "-7306235956629056753"

-				+ a

-				+ "506064168863913743"

-				+ a

-				+ "2068229051978835796"

-				+ a

-				+ "-5843192101805646909"

-				+ a

-				+ "-5406539933102955051"

-				+ a

-				+ "1122403234845453300"

-				+ a

-				+ "5907913918924720735"

-				+ a

-				+ "-7923005704484651019"

-				+ a

-				+ "2740447218889389967"

-				+ a

-				+ "-5914387748691021098"

-				+ a

-				+ "-4606301648811218504"

-				+ a

-				+ "-1402461674467800600"

-				+ a

-				+ "1284294194480673802"

-				+ a

-				+ "6079052293509738623"

-				+ a

-				+ "-5305558616682058769"

-				+ a

-				+ "-9075078034265068551"

-				+ a

-				+ "6740435740643124920"

-				+ a

-				+ "-3620468974957409281"

-				+ a

-				+ "-6103977201243493000"

-				+ a

-				+ "5368487237343320842"

-				+ a

-				+ "6633626677208845104"

-				+ a

-				+ "22731020784882473"

-				+ a

-				+ "-4176021822967539412"

-				+ a

-				+ "-2840947198397506816"

-				+ a

-				+ "4536069560910605740"

-				+ a

-				+ "-8830348710729920749"

-				+ a

-				+ "-2484808592722030395"

-				+ a

-				+ "-9135645213656835260"

-				+ a

-				+ "645468150627326857"

-				+ a

-				+ "-5289577660716570470"

-				+ a

-				+ "5600795185832650085"

-				+ a

-				+ "-6233102104916270269"

-				+ a

-				+ "-5616058648703769654"

-				+ a

-				+ "1454407521439030492"

-				+ a

-				+ "-1388436161134796784"

-				+ a

-				+ "-448829651581235474"

-				+ a

-				+ "5228581645372843926"

-				+ a

-				+ "-7390755550853889605"

-				+ a

-				+ "-652993831235872211"

-				+ a

-				+ "8520564877188209467"

-				+ a

-				+ "2149850520389958326"

-				+ a

-				+ "-6598921222840378783"

-				+ a

-				+ "155434286759749129"

-				+ a

-				+ "-6463276537914228062"

-				+ a

-				+ "8697061974073234456"

-				+ a

-				+ "-7520264323459351625"

-				+ a

-				+ "-1878767623989246124"

-				+ a

-				+ "371434180225132960"

-				+ a

-				+ "-2702100704900116914"

-				+ a

-				+ "4546891744423706860"

-				+ a

-				+ "1072969202997083041"

-				+ a

-				+ "-1174246552945796297"

-				+ a

-				+ "-6958310238776559600"

-				+ a

-				+ "5809436737640419316"

-				+ a

-				+ "-2142071912190438678"

-				+ a

-				+ "2645715594693023084"

-				+ a

-				+ "-6512232937988344651"

-				+ a

-				+ "1429487728719130118"

-				+ a

-				+ "-5927254500284655605"

-				+ a

-				+ "-5358597567566518840"

-				+ a

-				+ "-5619570179618968386"

-				+ a

-				+ "6634856841420071965"

-				+ a

-				+ "2248249447063079234"

-				+ a

-				+ "-601650796422949416"

-				+ a

-				+ "9016586536771112524"

-				+ a

-				+ "-8990134722571734151"

-				+ a

-				+ "7442057801788219574"

-				+ a

-				+ "-7069696912435026002"

-				+ a

-				+ "-5965822922725810779"

-				+ a

-				+ "156012994370918939"

-				+ a

-				+ "-533334545036251923"

-				+ a

-				+ "-6428163249820294563"

-				+ a

-				+ "-8771354710879578701"

-				+ a

-				+ "-7474607303623235764"

-				+ a

-				+ "5552920467743308115"

-				+ a

-				+ "3463850839073631872"

-				+ a

-				+ "-4312138652056332156"

-				+ a

-				+ "-5668951482761994218"

-				+ a

-				+ "4160357046780118714"

-				+ a

-				+ "-7651487471925116236"

-				+ a

-				+ "-1904737379948122165"

-				+ a

-				+ "-2468995372736695351"

-				+ a

-				+ "2384954334609806293"

-				+ a

-				+ "8835010373198815257"

-				+ a

-				+ "3072665879620869470"

-				+ a

-				+ "-4708484196263690120"

-				+ a

-				+ "-4417768926177692229"

-				+ a

-				+ "8631330465661935317"

-				+ a

-				+ "-6005069660084716618"

-				+ a

-				+ "-4841849265321973894"

-				+ a

-				+ "9114271054544617578"

-				+ a

-				+ "4474715891292785297"

-				+ a

-				+ "4598426000596856434"

-				+ a

-				+ "4456642120330654185"

-				+ a

-				+ "-6811568388529193150"

-				+ a

-				+ "-2267510729992483078"

-				+ a

-				+ "4841297221909766868"

-				+ a

-				+ "-3341202061707655898"

-				+ a

-				+ "-5168523749277303418"

-				+ a

-				+ "-2597086147703835583"

-				+ a

-				+ "2189984040194367554"

-				+ a

-				+ "-163417043572594861"

-				+ a

-				+ "-875917009738735905"

-				+ a

-				+ "3449040927530609564"

-				+ a

-				+ "-1187542268316866362"

-				+ a

-				+ "-2086526303156399145"

-				+ a

-				+ "7170110557699721176"

-				+ a

-				+ "-8831808421158147134"

-				+ a

-				+ "-2934245923885012593"

-				+ a

-				+ "-693181876282269730"

-				+ a

-				+ "2801286762013136483"

-				+ a

-				+ "-893681230793990797"

-				+ a

-				+ "7244823961262144366"

-				+ a

-				+ "7661464547005099735"

-				+ a

-				+ "-4504020848703526318"

-				+ a

-				+ "7488365098065319918"

-				+ a

-				+ "-2617611221309623462"

-				+ a

-				+ "-5347117576177944844"

-				+ a

-				+ "7577407951576481247"

-				+ a

-				+ "2119607573247061369"

-				+ a

-				+ "8742365859276522220"

-				+ a

-				+ "-2878190955845298771"

-				+ a

-				+ "9170894970442468900"

-				+ a

-				+ "-3198099095730567203"

-				+ a

-				+ "6600662185925388516"

-				+ a

-				+ "-7481833413594991555"

-				+ a

-				+ "7259883778198475684"

-				+ a

-				+ "-6228247879160851225"

-				+ a

-				+ "8054150403399233954"

-				+ a

-				+ "220291732862417955"

-				+ a

-				+ "9170008991903320769"

-				+ a

-				+ "-7386177775713107223"

-				+ a

-				+ "-7067143718707886163"

-				+ a

-				+ "-2829159460833567837"

-				+ a

-				+ "-7650573416145777597"

-				+ a

-				+ "-7827174279991915210"

-				+ a

-				+ "8015033616728249392"

-				+ a

-				+ "7953520474367629891"

-				+ a

-				+ "-6763631084009130537"

-				+ a

-				+ "2134465028909734057"

-				+ a

-				+ "-7582421904070398088"

-				+ a

-				+ "-4021434106474594994"

-				+ a

-				+ "-3241797462076497267"

-				+ a

-				+ "3790367970897076255"

-				+ a

-				+ "1731158696763449719"

-				+ a

-				+ "6009130197176253524"

-				+ a

-				+ "-4330099148179311782"

-				+ a

-				+ "-2681893572588916488"

-				+ a

-				+ "4717529785599537732"

-				+ a

-				+ "-5355393305350863448"

-				+ a

-				+ "-2562931193903110252"

-				+ a

-				+ "7825500412654385050"

-				+ a

-				+ "6123135506603100825"

-				+ a

-				+ "-7135991812968836383"

-				+ a

-				+ "7075040822983804281"

-				+ a

-				+ "6085292636084411374"

-				+ a

-				+ "-9016517018808310700"

-				+ a

-				+ "6296680626540498265"

-				+ a

-				+ "466471971943076520"

-				+ a

-				+ "3194706547855404513"

-				+ a

-				+ "-3469234296613008650"

-				+ a

-				+ "4661562681731629745"

-				+ a

-				+ "-6869862919399727963"

-				+ a

-				+ "-5470269392986725915"

-				+ a

-				+ "-7408510499818361817"

-				+ a

-				+ "-4634700534304790197"

-				+ a

-				+ "6141253999365640538"

-				+ a

-				+ "4914795942574316909"

-				+ a

-				+ "-5923510425951684560"

-				+ a

-				+ "-6686698052467837745"

-				+ a

-				+ "-6860754215509481583"

-				+ a

-				+ "-8161199778461002892"

-				+ a

-				+ "6790420767590453887"

-				+ a

-				+ "3160962446495709863"

-				+ a

-				+ "-7086844264601577605"

-				+ a

-				+ "-8019277360711651081"

-				+ a

-				+ "8694094250492531239"

-				+ a

-				+ "-822512736791075198"

-				+ a

-				+ "7037467247885361964"

-				+ a

-				+ "-8068773511219242634"

-				+ a

-				+ "-2221622380638547363"

-				+ a

-				+ "4141721356317507284"

-				+ a

-				+ "-9120482348318183652"

-				+ a

-				+ "-2094945145080548489"

-				+ a

-				+ "6509511066194612988"

-				+ a

-				+ "-5631846957641451179"

-				+ a

-				+ "-7124789435189368153"

-				+ a

-				+ "530620392849491203"

-				+ a

-				+ "2063084158833109250"

-				+ a

-				+ "5705014193930379134"

-				+ a

-				+ "6523714474084616334"

-				+ a

-				+ "4744000852602101799"

-				+ a

-				+ "1085239330415640337"

-				+ a

-				+ "-5155417748224605425"

-				+ a

-				+ "6270555189236303732"

-				+ a

-				+ "-7737271311797543051"

-				+ a

-				+ "-3574839633885944337"

-				+ a

-				+ "5058890598150144652"

-				+ a

-				+ "7746403854998588002"

-				+ a

-				+ "7022856657575309952"

-				+ a

-				+ "3716738500463555846"

-				+ a

-				+ "-7421401014154125893"

-				+ a

-				+ "1421729999303688516"

-				+ a

-				+ "8144520783350364771"

-				+ a

-				+ "-5375150715246560540"

-				+ a

-				+ "-6811495605014783449"

-				+ a

-				+ "-1629085212768444054"

-				+ a

-				+ "7842872870387873339"

-				+ a

-				+ "-3144069724554953284"

-				+ a

-				+ "1578489136450795424"

-				+ a

-				+ "-1524962835898716664"

-				+ a

-				+ "1255628362210394024"

-				+ a

-				+ "-4945766756743361564"

-				+ a

-				+ "-2368749883429063495"

-				+ a

-				+ "-5443141608452157258"

-				+ a

-				+ "9211129063819614033"

-				+ a

-				+ "7114918026427046997"

-				+ a

-				+ "-348788006629170359"

-				+ a

-				+ "-1510339221551201808"

-				+ a

-				+ "2225031253386166621"

-				+ a

-				+ "-3555530065681793234"

-				+ a

-				+ "-5635090599347843861"

-				+ a

-				+ "-3131108975972138601"

-				+ a

-				+ "7906458026818974202"

-				+ a

-				+ "8426579347837902385"

-				+ a

-				+ "-4881890627049232515"

-				+ a

-				+ "-8916821826259001490"

-				+ a

-				+ "185948291026094553"

-				+ a

-				+ "8201360044857003333"

-				+ a

-				+ "3340205317187459493"

-				+ a

-				+ "1019013224452838302"

-				+ a

-				+ "-5640595948335979856"

-				+ a

-				+ "-707071934361179406"

-				+ a

-				+ "-8857596830200344761"

-				+ a

-				+ "-1375091965299661006"

-				+ a

-				+ "-9072009683459314761"

-				+ a

-				+ "5000988210264232168"

-				+ a

-				+ "4271317853521960464"

-				+ a

-				+ "2678753875442511004"

-				+ a

-				+ "-6470626338166122964"

-				+ a

-				+ "-6078726263448693640"

-				+ a

-				+ "-6126660456097596945"

-				+ a

-				+ "-5224548713170778066"

-				+ a

-				+ "2951275643838239183"

-				+ a

-				+ "1249793927341201177"

-				+ a

-				+ "-3560869420720178794"

-				+ a

-				+ "-6737236972610500446"

-				+ a

-				+ "6906382391763753318"

-				+ a

-				+ "3701285808445941477"

-				+ a

-				+ "-6137404772056077571"

-				+ a

-				+ "951068276649955219"

-				+ a

-				+ "8972614952190332730"

-				+ a

-				+ "1350001466189426457"

-				+ a

-				+ "-4081913571588491296"

-				+ a

-				+ "3537255041914161665"

-				+ a

-				+ "-3922351533529732712"

-				+ a

-				+ "-2145964578134968167"

-				+ a

-				+ "2394200010169686588"

-				+ a

-				+ "4820435476375140561"

-				+ a

-				+ "3980439875552079698"

-				+ a

-				+ "-7848606640652240279"

-				+ a

-				+ "8056889380412121302"

-				+ a

-				+ "-1735987219969504949"

-				+ a

-				+ "-2429262127212559301"

-				+ a

-				+ "2716470408164555317"

-				+ a

-				+ "7619986510078673844"

-				+ a

-				+ "-4810946803905692262"

-				+ a

-				+ "591257503510807983"

-				+ a

-				+ "1008145613734886602"

-				+ a

-				+ "-791769094042351455"

-				+ a

-				+ "1551415766926632272"

-				+ a

-				+ "2128049662514755336"

-				+ a

-				+ "5674375202248066714"

-				+ a

-				+ "-3294574351697152083"

-				+ a

-				+ "6409892386317067743"

-				+ a

-				+ "-7779995689030042070"

-				+ a

-				+ "7663455663253941309"

-				+ a

-				+ "6994870508259434411"

-				+ a

-				+ "7092158122453603104"

-				+ a

-				+ "-7504376776657473544"

-				+ a

-				+ "-1548660132363324694"

-				+ a

-				+ "-8111792772550137166"

-				+ a

-				+ "-3716421601494476848"

-				+ a

-				+ "-5471408931853636388"

-				+ a

-				+ "858470282848534786"

-				+ a

-				+ "-1944492615617314147"

-				+ a

-				+ "6842258904020299278"

-				+ a

-				+ "3465357212653391171"

-				+ a

-				+ "1010858684300746374"

-				+ a

-				+ "-2376621027797858933"

-				+ a

-				+ "-5234350247437932577"

-				+ a

-				+ "3527455355230723615"

-				+ a

-				+ "-4441639340996737636"

-				+ a

-				+ "9162770176271747679"

-				+ a

-				+ "-3307692074822023253"

-				+ a

-				+ "-1265560468988039837"

-				+ a

-				+ "4174084901504664334"

-				+ a

-				+ "408216311741101376"

-				+ a

-				+ "6179424481850599613"

-				+ a

-				+ "8464529436195546763"

-				+ a

-				+ "-2679225514021083446"

-				+ a

-				+ "5412693249303878683"

-				+ a

-				+ "6761016599191336902"

-				+ a

-				+ "-9053227710679826671"

-				+ a

-				+ "-4971616606140021661"

-				+ a

-				+ "1470984573745249052"

-				+ a

-				+ "794919692872301402"

-				+ a

-				+ "-666467506414374151"

-				+ a

-				+ "-2822698483079789682"

-				+ a

-				+ "601378322432915769"

-				+ a

-				+ "5638644728798047345"

-				+ a

-				+ "5789378409007337798"

-				+ a

-				+ "-5994164160329416538"

-				+ a

-				+ "-6667535132090352473"

-				+ a

-				+ "4204563008748740328"

-				+ a

-				+ "5678902566930339970"

-				+ a

-				+ "-7223445616360784599"

-				+ a

-				+ "-6607953497851883678"

-				+ a

-				+ "-6311838047415961090"

-				+ a

-				+ "-6309447620271201478"

-				+ a

-				+ "229050938505420857"

-				+ a

-				+ "-1225014043780951126"

-				+ a

-				+ "2390215148115329239"

-				+ a

-				+ "5072184776177919104"

-				+ a

-				+ "-744335414291888356"

-				+ a

-				+ "-3089609556691187584"

-				+ a

-				+ "-3618865863102092548"

-				+ a

-				+ "192388795641361512"

-				+ a

-				+ "4587735395282822589"

-				+ a

-				+ "217485062671670830"

-				+ a

-				+ "-6269736618400789287"

-				+ a

-				+ "5414980239431986315"

-				+ a

-				+ "-528064624972663000"

-				+ a

-				+ "1295964769301191356"

-				+ a

-				+ "5298404442990088254"

-				+ a

-				+ "6791548406998914183"

-				+ a

-				+ "-5186505763910713839"

-				+ a

-				+ "-2064823676363944325"

-				+ a

-				+ "7298397795617553631"

-				+ a

-				+ "1092691793025769084"

-				+ a

-				+ "9199008286310061390"

-				+ a

-				+ "8496944026982897790"

-				+ a

-				+ "-7175699054101917484"

-				+ a

-				+ "2351940215168480144"

-				+ a

-				+ "-7887520388437077927"

-				+ a

-				+ "-2547766195274466532"

-				+ a

-				+ "3651088260374341913"

-				+ a

-				+ "5677078378225324141"

-				+ a

-				+ "-5218271904647533617"

-				+ a

-				+ "6506102331379269744"

-				+ a

-				+ "2047580395586681359"

-				+ a

-				+ "1254456669244453310"

-				+ a

-				+ "-2493503447457657357"

-				+ a

-				+ "7748743143809150681"

-				+ a

-				+ "3187580147546249210"

-				+ a

-				+ "-447565130764562251"

-				+ a

-				+ "-5901868264771610836"

-				+ a

-				+ "-5344772102755168902"

-				+ a

-				+ "4399354202412978048"

-				+ a

-				+ "5761746177647931272"

-				+ a

-				+ "7346021349430542978"

-				+ a

-				+ "7407653297412847803"

-				+ a

-				+ "-1432082633278910928"

-				+ a

-				+ "4386781250096772591"

-				+ a

-				+ "3078677237004686885"

-				+ a

-				+ "-8270569093055494458"

-				+ a

-				+ "-3066819790639523079"

-				+ a

-				+ "6921413523262053800"

-				+ a

-				+ "3815857059671909350"

-				+ a

-				+ "6459842709565553675"

-				+ a

-				+ "5496182702002478767"

-				+ a

-				+ "2919041266384629492"

-				+ a

-				+ "6301254303467952572"

-				+ a

-				+ "167977270899707836"

-				+ a

-				+ "4107450151680801929"

-				+ a

-				+ "-6184483674271871721"

-				+ a

-				+ "-3113466523343527359"

-				+ a

-				+ "4255706773140144210"

-				+ a

-				+ "2045276824006752933"

-				+ a

-				+ "-1006056944868633893"

-				+ a

-				+ "-163374204176050893"

-				+ a

-				+ "-3536312633372723194"

-				+ a

-				+ "4030026566945749635"

-				+ a

-				+ "916143771948351245"

-				+ a

-				+ "-4137939988132726797"

-				+ a

-				+ "-1208503070443601575"

-				+ a

-				+ "-9073410561248509562"

-				+ a

-				+ "879225941445259519"

-				+ a

-				+ "6704588155652656649"

-				+ a

-				+ "4037880612097133452"

-				+ a

-				+ "6650953345091703159"

-				+ a

-				+ "6557621267180188933"

-				+ a

-				+ "-3799489167477556834"

-				+ a

-				+ "4616142957114179369"

-				+ a

-				+ "-555511666653343487"

-				+ a

-				+ "-7787414996794187528"

-				+ a

-				+ "-2320895672018981888"

-				+ a

-				+ "-4115116336922975624"

-				+ a

-				+ "-508083592730508234"

-				+ a

-				+ "-1790339700600684362"

-				+ a

-				+ "-1891368734208039390"

-				+ a

-				+ "4162487874602061322"

-				+ a

-				+ "2507934636732405000"

-				+ a

-				+ "-3569041016842825057"

-				+ a

-				+ "3727230352401811737"

-				+ a

-				+ "6081104416614609202"

-				+ a

-				+ "-2378349176311649327"

-				+ a

-				+ "8338625078774305818"

-				+ a

-				+ "4236364192447051424"

-				+ a

-				+ "1766223847372056199"

-				+ a

-				+ "-1509108249653323828"

-				+ a

-				+ "-5341684167359652338"

-				+ a

-				+ "-8444676169083518571"

-				+ a

-				+ "3761876718263359588"

-				+ a

-				+ "-3523680927151552615"

-				+ a

-				+ "3042749665226854761"

-				+ a

-				+ "3749113535163919993"

-				+ a

-				+ "3759366097795773800"

-				+ a

-				+ "-7270464562060963395"

-				+ a

-				+ "-3404645697486842979"

-				+ a

-				+ "684912297827615732"

-				+ a

-				+ "-8328573509093542665"

-				+ a

-				+ "-329547391816168161"

-				+ a

-				+ "8320915285235489566"

-				+ a

-				+ "-8439264109714576560"

-				+ a

-				+ "-7555539153012708426"

-				+ a

-				+ "-1455904067809789555"

-				+ a

-				+ "-3282840298752750619"

-				+ a

-				+ "-6372126815260401415"

-				+ a

-				+ "2793000487951069203"

-				+ a

-				+ "3407829716811135029"

-				+ a

-				+ "-3550687721123470352"

-				+ a

-				+ "2334961244010951939"

-				+ a

-				+ "3260897395698896570"

-				+ a

-				+ "4264152409350870060"

-				+ a

-				+ "-4581604198263834689"

-				+ a

-				+ "593651731243654052"

-				+ a

-				+ "5219278619370393377"

-				+ a

-				+ "8180789381611215595"

-				+ a

-				+ "335944578956738265"

-				+ a

-				+ "-4099322903435145803"

-				+ a

-				+ "-5208733150508251139"

-				+ a

-				+ "6921838573247464652"

-				+ a

-				+ "-7343860276513066939"

-				+ a

-				+ "1074796594127796533"

-				+ a

-				+ "6736037593502794699"

-				+ a

-				+ "3930958507434110353"

-				+ a

-				+ "5997417370432515857"

-				+ a

-				+ "7187262605211107782"

-				+ a

-				+ "-922608839179471544"

-				+ a

-				+ "-3471824513017619234"

-				+ a

-				+ "-4620638843369421105"

-				+ a

-				+ "3839702874104484142"

-				+ a

-				+ "-8879066745942443015"

-				+ a

-				+ "8583264167167467194"

-				+ a

-				+ "8017617442295035923"

-				+ a

-				+ "720409418337220568"

-				+ a

-				+ "-7137080051336955740"

-				+ a

-				+ "820362479923112978"

-				+ a

-				+ "-7587987020499938058"

-				+ a

-				+ "-1736856639032582832"

-				+ a

-				+ "5300485442178576853"

-				+ a

-				+ "4669115833793700662"

-				+ a

-				+ "8717027790748151190"

-				+ a

-				+ "-418059405227441973"

-				+ a

-				+ "4902234911110449242"

-				+ a

-				+ "-8615106177201876902"

-				+ a

-				+ "2642338947881553044"

-				+ a

-				+ "7939176766883596700"

-				+ a

-				+ "1697016693253389256"

-				+ a

-				+ "-7698790186559863273"

-				+ a

-				+ "4627520723163497364"

-				+ a

-				+ "-6562331579564087360"

-				+ a

-				+ "1409651656149384948"

-				+ a

-				+ "-8371366983499774489"

-				+ a

-				+ "-6611959236955224128"

-				+ a

-				+ "2517362013853074515"

-				+ a

-				+ "3939673655674821754"

-				+ a

-				+ "-6007531133325330260"

-				+ a

-				+ "8479159933661814342"

-				+ a

-				+ "1845989680250192409"

-				+ a

-				+ "225054535985556281"

-				+ a

-				+ "-6188100461697042647"

-				+ a

-				+ "5374211210369521877"

-				+ a

-				+ "163959847081807350"

-				+ a

-				+ "6580469580461298388"

-				+ a

-				+ "-1002731784954961273"

-				+ a

-				+ "-6503468674254937564"

-				+ a

-				+ "-8857927768785141898"

-				+ a

-				+ "1886814526626193459"

-				+ a

-				+ "-2054416122836792110"

-				+ a

-				+ "-4730857486151345556"

-				+ a

-				+ "-3314785731153835706"

-				+ a

-				+ "1745408277008263680"

-				+ a

-				+ "5485482250833588602"

-				+ a

-				+ "1901945721551946729"

-				+ a

-				+ "-6559784953015731783"

-				+ a

-				+ "-5502687098156415701"

-				+ a

-				+ "-8096097547161354797"

-				+ a

-				+ "-307294365139042468"

-				+ a

-				+ "7597534968367450948"

-				+ a

-				+ "-4693142428350838425"

-				+ a

-				+ "-8569821400048670315"

-				+ a

-				+ "51756053461047436"

-				+ a

-				+ "6145399184482338050"

-				+ a

-				+ "-1269825730684672598"

-				+ a

-				+ "-8136004504129724580"

-				+ a

-				+ "-6708170860115238208"

-				+ a

-				+ "-2467746284360258768"

-				+ a

-				+ "8902235073100629169"

-				+ a

-				+ "189609796856280361"

-				+ a

-				+ "8027665317964735814"

-				+ a

-				+ "-7153504149551054926"

-				+ a

-				+ "-5187209899599232647"

-				+ a

-				+ "8540839755479381215"

-				+ a

-				+ "-1319086816580691984"

-				+ a

-				+ "-7516852006138817907"

-				+ a

-				+ "-5051221376794367033"

-				+ a

-				+ "-3579739334939429689"

-				+ a

-				+ "3098919600942247826"

-				+ a

-				+ "-2519365444798061973"

-				+ a

-				+ "2204513501049642145"

-				+ a

-				+ "-6234925272255791092"

-				+ a

-				+ "-3914224114071635323"

-				+ a

-				+ "-7512919820331381478"

-				+ a

-				+ "2244229534103919315"

-				+ a

-				+ "1119622915521220416"

-				+ a

-				+ "4973425882801212711"

-				+ a

-				+ "888294988592812045"

-				+ a

-				+ "-2993218281966203028"

-				+ a

-				+ "-7416276224986099499"

-				+ a

-				+ "-3201845045715304871"

-				+ a

-				+ "7916061662832482521"

-				+ a

-				+ "-6429005121216132546"

-				+ a

-				+ "4638130389145698725"

-				+ a

-				+ "-948986391460678656"

-				+ a

-				+ "2040599255252723129"

-				+ a

-				+ "2389151452553418337"

-				+ a

-				+ "-7194285399888931477"

-				+ a

-				+ "3523430492558376836"

-				+ a

-				+ "-6231585169594436085"

-				+ a

-				+ "-5841617642246119760"

-				+ a

-				+ "-8785142203731382456"

-				+ a

-				+ "4139787392364890707"

-				+ a

-				+ "-824771567737812271"

-				+ a

-				+ "-9049356826976837046"

-				+ a

-				+ "1543457604506053183"

-				+ a

-				+ "-8855709180263493025"

-				+ a

-				+ "-4086029732019652815"

-				+ a

-				+ "90590069959604498"

-				+ a

-				+ "7374902126537519544"

-				+ a

-				+ "5412393938850166428"

-				+ a

-				+ "-6589069323077828363"

-				+ a

-				+ "-1136016124815333328"

-				+ a

-				+ "-2530288730062427647"

-				+ a

-				+ "9141260983043855235"

-				+ a

-				+ "-2243560951402688244"

-				+ a

-				+ "2697023448685250190"

-				+ a

-				+ "8223867111341762760"

-				+ a

-				+ "-5500453568140873838"

-				+ a

-				+ "-5551678114273627129"

-				+ a

-				+ "7711796121740538204"

-				+ a

-				+ "2416459930837400994"

-				+ a

-				+ "-4986134594990721078"

-				+ a

-				+ "-6594545860032484707"

-				+ a

-				+ "-8488892579407720307"

-				+ a

-				+ "-4950191686469776760"

-				+ a

-				+ "-5705045902392669136"

-				+ a

-				+ "-5870378255948101081"

-				+ a

-				+ "3085694771349171032"

-				+ a

-				+ "4045381385104452693"

-				+ a

-				+ "-537473159150314420"

-				+ a

-				+ "6405721852917755173"

-				+ a

-				+ "5909632865333497015"

-				+ a

-				+ "3023990489803862857"

-				+ a

-				+ "5997722854481417133"

-				+ a

-				+ "7368862447064249271"

-				+ a

-				+ "-3558359757113329685"

-				+ a

-				+ "886745892017187721"

-				+ a

-				+ "-2376768597770873246"

-				+ a

-				+ "-956660966571699164"

-				+ a

-				+ "-3438286909229699850"

-				+ a

-				+ "465585013972219292"

-				+ a

-				+ "4997419886346194306"

-				+ a

-				+ "7874632479463897943"

-				+ a

-				+ "4230767999778323743"

-				+ a

-				+ "2933416313595490031"

-				+ a

-				+ "-3661566128442997850"

-				+ a

-				+ "-9204100771314909860"

-				+ a

-				+ "297875109783269234"

-				+ a

-				+ "5554793942304582226"

-				+ a

-				+ "6138216312792961386"

-				+ a

-				+ "-3472526723345394200"

-				+ a

-				+ "1383344105427170622"

-				+ a

-				+ "-8390998045425633158"

-				+ a

-				+ "8361230649785801199"

-				+ a

-				+ "8128422357710829775"

-				+ a

-				+ "-7076636178968793451"

-				+ a

-				+ "-6879189373271244675"

-				+ a

-				+ "2149279496697403228"

-				+ a

-				+ "2163874995004306059"

-				+ a

-				+ "-37608952743346481"

-				+ a

-				+ "-4885142876404553640"

-				+ a

-				+ "3957092134099679064"

-				+ a

-				+ "8957662328709322940"

-				+ a

-				+ "6596532226374168839"

-				+ a

-				+ "-1153804182586454676"

-				+ a

-				+ "7915386076772517778"

-				+ a

-				+ "3597944315336510115"

-				+ a

-				+ "2586844712538139804"

-				+ a

-				+ "-2949556178161873667"

-				+ a

-				+ "-8127379747417804230"

-				+ a

-				+ "3506009531395375525"

-				+ a

-				+ "-3799767679885215310"

-				+ a

-				+ "2737451203785104562"

-				+ a

-				+ "5151555140583328389"

-				+ a

-				+ "6131176129975873998"

-				+ a

-				+ "9110902753217664431"

-				+ a

-				+ "-8890925772445109480"

-				+ a

-				+ "-1129142490829084372"

-				+ a

-				+ "7582080677413993035"

-				+ a

-				+ "-4789780502432213058"

-				+ a

-				+ "8426741383105462303"

-				+ a

-				+ "-7514443426873435923"

-				+ a

-				+ "-6096386960435665425"

-				+ a

-				+ "1403493976840512847"

-				+ a

-				+ "1200644717268219291"

-				+ a

-				+ "-1654479055663475959"

-				+ a

-				+ "3892352692045151151"

-				+ a

-				+ "-628374969525061995"

-				+ a

-				+ "1611638561673781188"

-				+ a

-				+ "75698269457877956"

-				+ a

-				+ "560196518908944166"

-				+ a

-				+ "1704180641177725702"

-				+ a

-				+ "1645123699159403958"

-				+ a

-				+ "9158917099811213033"

-				+ a

-				+ "-633837023015943918"

-				+ a

-				+ "-1216327101793702433"

-				+ a

-				+ "-7939715734589699598"

-				+ a

-				+ "6289958106814327876"

-				+ a

-				+ "-8084522417454129195"

-				+ a

-				+ "-8951157286790813026"

-				+ a

-				+ "8733634768783483612"

-				+ a

-				+ "164169779436237861"

-				+ a

-				+ "-5613076795169777676"

-				+ a

-				+ "-6691306822112669306"

-				+ a

-				+ "-2267089117411867845"

-				+ a

-				+ "-6267882092027247645"

-				+ a

-				+ "-3218696406030596964"

-				+ a

-				+ "-4620987111405818850"

-				+ a

-				+ "-7623635815148905797"

-				+ a

-				+ "-3199414663287922089"

-				+ a

-				+ "-1971270715359367144"

-				+ a

-				+ "-3146133425464229454"

-				+ a

-				+ "203048746228635246"

-				+ a

-				+ "-869382991009092515"

-				+ a

-				+ "4396580273807758428"

-				+ a

-				+ "5924374890894969809"

-				+ a

-				+ "-962029163140355769"

-				+ a

-				+ "-2447328698446720681"

-				+ a

-				+ "6648306985125948285"

-				+ a

-				+ "3792332857906789069"

-				+ a

-				+ "-2592849401678093154"

-				+ a

-				+ "-2229214953895616599"

-				+ a

-				+ "60121393842835511"

-				+ a

-				+ "-4644566344032056770"

-				+ a

-				+ "-3670852882719285073"

-				+ a

-				+ "-4795459485337427650"

-				+ a

-				+ "-3078872474700468634"

-				+ a

-				+ "6082446142445692287"

-				+ a

-				+ "7661890440999892250"

-				+ a

-				+ "2718377609076393985"

-				+ a

-				+ "-1329549452134874227"

-				+ a

-				+ "667147203567492144"

-				+ a

-				+ "5699077439330337124"

-				+ a

-				+ "-3395250238968386971"

-				+ a

-				+ "7468957273606729554"

-				+ a

-				+ "6681693604205340338"

-				+ a

-				+ "-5819455968905345675"

-				+ a

-				+ "7377517611865477086"

-				+ a

-				+ "-4171662381900114945"

-				+ a

-				+ "8558322651462810286"

-				+ a

-				+ "5927326833461217817"

-				+ a

-				+ "-5391460157352293018"

-				+ a

-				+ "456166417270507267"

-				+ a

-				+ "-2089775772693106802"

-				+ a

-				+ "-2473806311188227713"

-				+ a

-				+ "-5166358583590604295"

-				+ a

-				+ "577211619565310319"

-				+ a

-				+ "-7574180351348641021"

-				+ a

-				+ "-1384162338784655427"

-				+ a

-				+ "-1949917261552336103"

-				+ a

-				+ "-7646197583621832582"

-				+ a

-				+ "7157828596321324413"

-				+ a

-				+ "-6712065070950544567"

-				+ a

-				+ "2236061909679704394"

-				+ a

-				+ "4873628242313201150"

-				+ a

-				+ "-6464311572388006218"

-				+ a

-				+ "4304099916847392129"

-				+ a

-				+ "8848098664611212439"

-				+ a

-				+ "6898172476461689080"

-				+ a

-				+ "3345247779380902440"

-				+ a

-				+ "-6997871520454550747"

-				+ a

-				+ "-6721226268986105588"

-				+ a

-				+ "7746073604671358475"

-				+ a

-				+ "-4028896770080478318"

-				+ a

-				+ "2249919745243282647"

-				+ a

-				+ "5980588423799317305"

-				+ a

-				+ "-1821824395713650690"

-				+ a

-				+ "-2882046706545431689"

-				+ a

-				+ "7061967606227304354"

-				+ a

-				+ "-2573913225429695307"

-				+ a

-				+ "-4648857271845470150"

-				+ a

-				+ "-4795319601251648610"

-				+ a

-				+ "-2449406718613084816"

-				+ a

-				+ "676112606062692505"

-				+ a

-				+ "7077775243255965517"

-				+ a

-				+ "8279439461933769619"

-				+ a

-				+ "-8967593294134626925"

-				+ a

-				+ "1463924050027057153"

-				+ a

-				+ "4108746256100642153"

-				+ a

-				+ "671669840699843877"

-				+ a

-				+ "-1937390517977201347"

-				+ a

-				+ "-8026937897785993585"

-				+ a

-				+ "7254950325548462821"

-				+ a

-				+ "2857869494438805734"

-				+ a

-				+ "-6367096460053409785"

-				+ a

-				+ "5906509814179036904"

-				+ a

-				+ "-7118684737034387269"

-				+ a

-				+ "-5966644349827364178"

-				+ a

-				+ "1784340785351647342"

-				+ a

-				+ "6898187943583870772"

-				+ a

-				+ "8254792895615645961"

-				+ a

-				+ "-954677375447462376"

-				+ a

-				+ "-8607649526798219183"

-				+ a

-				+ "-682926799495397982"

-				+ a

-				+ "-7356576987957102704"

-				+ a

-				+ "-1441103736382094588"

-				+ a

-				+ "7744146107024206197"

-				+ a

-				+ "8298974751122681058"

-				+ a

-				+ "-8158073329334910408"

-				+ a

-				+ "-7541746284309130733"

-				+ a

-				+ "6396900582423006721"

-				+ a

-				+ "-4405495884594382679"

-				+ a

-				+ "-7870995558099949174"

-				+ a

-				+ "-4609593285056091858"

-				+ a

-				+ "-5738979543098896126"

-				+ a

-				+ "-7068293602902740431"

-				+ a

-				+ "118869759956105524"

-				+ a

-				+ "1415505245870596096"

-				+ a

-				+ "1358436106725431016"

-				+ a

-				+ "7188423186761477302"

-				+ a

-				+ "232476152356452489"

-				+ a

-				+ "-1083161878765589385"

-				+ a

-				+ "-2475947859666233849"

-				+ a

-				+ "-1723796127851316742"

-				+ a

-				+ "-2367624063964726530"

-				+ a

-				+ "2586319451174446919"

-				+ a

-				+ "-8372939562443165929"

-				+ a

-				+ "-2162489972833552703"

-				+ a

-				+ "-7318017362543869778"

-				+ a

-				+ "-648659211385937817"

-				+ a

-				+ "3773520909212276149"

-				+ a

-				+ "-585681434878711978"

-				+ a

-				+ "1278446472326031063"

-				+ a

-				+ "-6858913687097261167"

-				+ a

-				+ "6725941661693479136"

-				+ a

-				+ "-7835171098254580731"

-				+ a

-				+ "8517002855346448475"

-				+ a

-				+ "1727317643390553286"

-				+ a

-				+ "167454846277770108"

-				+ a

-				+ "-4484400628788161122"

-				+ a

-				+ "-1249045407222665664"

-				+ a

-				+ "-4125864658252067639"

-				+ a

-				+ "-232876471594021678"

-				+ a

-				+ "7566742549724119545"

-				+ a

-				+ "2431450474966577201"

-				+ a

-				+ "7758435135139184031"

-				+ a

-				+ "-926428227324858098"

-				+ a

-				+ "-210572359641175956"

-				+ a

-				+ "-7452750196656904966"

-				+ a

-				+ "-5599738118885185771"

-				+ a

-				+ "-7813953591554086464"

-				+ a

-				+ "-5047474818723058090"

-				+ a

-				+ "4439034982562431759"

-				+ a

-				+ "-5466270553032256710"

-				+ a

-				+ "2712169492000026204"

-				+ a

-				+ "1862737586753002392"

-				+ a

-				+ "-5353038579107901178"

-				+ a

-				+ "-6947450633948884256"

-				+ a

-				+ "7974444038241854650"

-				+ a

-				+ "-2049784300038248681"

-				+ a

-				+ "-768795663611722216"

-				+ a

-				+ "3970864286397878815"

-				+ a

-				+ "8814423706677119382"

-				+ a

-				+ "-5399130435676630212"

-				+ a

-				+ "4506091385324763812"

-				+ a

-				+ "-5107634537661317933"

-				+ a

-				+ "1839010175740881169"

-				+ a

-				+ "6936175302234839667"

-				+ a

-				+ "-6325912105782826835"

-				+ a

-				+ "393680543852720921"

-				+ a

-				+ "-3448458068233951442"

-				+ a

-				+ "-4019906657169970257"

-				+ a

-				+ "7620172460174228567"

-				+ a

-				+ "-8997998808030605866"

-				+ a

-				+ "8771659726844811350"

-				+ a

-				+ "3428423575986468581"

-				+ a

-				+ "7632781606969980013"

-				+ a

-				+ "6762091554535732016"

-				+ a

-				+ "2622604169364957653"

-				+ a

-				+ "1232024216574036364"

-				+ a

-				+ "-371534179473878306"

-				+ a

-				+ "3501875876588075794"

-				+ a

-				+ "-9187612436207592870"

-				+ a

-				+ "-5980761402510607581"

-				+ a

-				+ "4624164498132835644"

-				+ a

-				+ "1676395763050685357"

-				+ a

-				+ "-3827762186089381253"

-				+ a

-				+ "8006025736889493931"

-				+ a

-				+ "8649369890583457083"

-				+ a

-				+ "7984987985730213362"

-				+ a

-				+ "5095547086850321711"

-				+ a

-				+ "3654889101665666601"

-				+ a

-				+ "4772050352648720696"

-				+ a

-				+ "4673711977958914584"

-				+ a

-				+ "3690722882959687762"

-				+ a

-				+ "3652961941639885094"

-				+ a

-				+ "915177957041372336"

-				+ a

-				+ "8394835670723402780"

-				+ a

-				+ "-6283516835760048860"

-				+ a

-				+ "2682052802898306863"

-				+ a

-				+ "-39133921885058876"

-				+ a

-				+ "7182677795321372732"

-				+ a

-				+ "-1123137732347862838"

-				+ a

-				+ "-7187211477441315499"

-				+ a

-				+ "2107865782772483260"

-				+ a

-				+ "7029138672815376251"

-				+ a

-				+ "-5246589834603524916"

-				+ a

-				+ "4946578063768694189"

-				+ a

-				+ "-3327990999892404608"

-				+ a

-				+ "1410047753342829601"

-				+ a

-				+ "-607158855661428843"

-				+ a

-				+ "526205912768181200"

-				+ a

-				+ "-3353974441997849823"

-				+ a

-				+ "4345004848608271928"

-				+ a

-				+ "-8028878697252563721"

-				+ a

-				+ "6992865860785518941"

-				+ a

-				+ "89887283317978958"

-				+ a

-				+ "-4890367390986524656"

-				+ a

-				+ "5395246551033333412"

-				+ a

-				+ "9149027322776474227"

-				+ a

-				+ "1888231617770768351"

-				+ a

-				+ "1832173972123517627"

-				+ a

-				+ "8850607358448321718"

-				+ a

-				+ "-3573842940544988617"

-				+ a

-				+ "-2515993210354900402"

-				+ a

-				+ "-2970572681876409710"

-				+ a

-				+ "-8812829507312878041"

-				+ a

-				+ "-5126214287592177836"

-				+ a

-				+ "-593209255878052551"

-				+ a

-				+ "4279401441478329262"

-				+ a

-				+ "5735936342676945242"

-				+ a

-				+ "3857279221947912310"

-				+ a

-				+ "3485153424716732642"

-				+ a

-				+ "-662050485808185745"

-				+ a

-				+ "-72690764741550959"

-				+ a

-				+ "-5532883488824715058"

-				+ a

-				+ "393326004849090479"

-				+ a

-				+ "3923986657219931129"

-				+ a

-				+ "-7948340736432765324"

-				+ a

-				+ "-7006347688709669743"

-				+ a

-				+ "-5322266596584016214"

-				+ a

-				+ "6389240576921692850"

-				+ a

-				+ "8562031855739319952"

-				+ a

-				+ "8315930557757687161"

-				+ a

-				+ "-8086248775449979391"

-				+ a

-				+ "7373112891709936326"

-				+ a

-				+ "-4607557960451455531"

-				+ a

-				+ "-3205406892078035134"

-				+ a

-				+ "8263877443067298183"

-				+ a

-				+ "-2223029705465288029"

-				+ a

-				+ "-8925415624073416936"

-				+ a

-				+ "-6791064439277026258"

-				+ a

-				+ "-5042775155189130958"

-				+ a

-				+ "4776655052699757437"

-				+ a

-				+ "-4933088522838694001"

-				+ a

-				+ "8330184652392589698"

-				+ a

-				+ "1637070176593639835"

-				+ a

-				+ "-5059066217951619637"

-				+ a

-				+ "4014727029744109400"

-				+ a

-				+ "-22434511743124473"

-				+ a

-				+ "8666756317556173953"

-				+ a

-				+ "6703726588124124616"

-				+ a

-				+ "6076365483039687154"

-				+ a

-				+ "6591634391558659210"

-				+ a

-				+ "-3348044019496228538"

-				+ a

-				+ "-627454787052259341"

-				+ a

-				+ "-6243419827278238015"

-				+ a

-				+ "-776770814135022500"

-				+ a

-				+ "7132449682874312048"

-				+ a

-				+ "2085761559853657487"

-				+ a

-				+ "6058593733864972686"

-				+ a

-				+ "4050640859539192274"

-				+ a

-				+ "3970990063816635689"

-				+ a

-				+ "-647266916803895004"

-				+ a

-				+ "7221575838847750917"

-				+ a

-				+ "-5566112000340108090"

-				+ a

-				+ "-6280641768631632960"

-				+ a

-				+ "8795263388574407420"

-				+ a

-				+ "-7365448443375986378"

-				+ a

-				+ "7376974628227097364"

-				+ a

-				+ "2243540925361024038"

-				+ a

-				+ "6959654388375811495"

-				+ a

-				+ "-1771171730378641387"

-				+ a

-				+ "-6613010221741265634"

-				+ a

-				+ "-6613598152109663886"

-				+ a

-				+ "5659412131893682807"

-				+ a

-				+ "2038713578902245882"

-				+ a

-				+ "8696094200527592009"

-				+ a

-				+ "-6769680772788512930"

-				+ a

-				+ "-538388923584348667"

-				+ a

-				+ "-5779831060953309150"

-				+ a

-				+ "3643283202091378046"

-				+ a

-				+ "-2808307024288961849"

-				+ a

-				+ "488009925522109610"

-				+ a

-				+ "-1687403487093613780"

-				+ a

-				+ "253095126108852649"

-				+ a

-				+ "-7423002503273461200"

-				+ a

-				+ "-5689624720828647673"

-				+ a

-				+ "9212972063823063964"

-				+ a

-				+ "1186793416532289086"

-				+ a

-				+ "6918511817379999296"

-				+ a

-				+ "-4755159465512075650"

-				+ a

-				+ "8121227818115496539"

-				+ a

-				+ "-8485767623736951889"

-				+ a

-				+ "5020011809071985215"

-				+ a

-				+ "-6500273869653352010"

-				+ a

-				+ "-2663957737793529547"

-				+ a

-				+ "-8101377298829715465"

-				+ a

-				+ "326463995359446173"

-				+ a

-				+ "1484830176553892122"

-				+ a

-				+ "-4579692127371314343"

-				+ a

-				+ "-6097801910883493102"

-				+ a

-				+ "525734517143906156"

-				+ a

-				+ "-1165711456870362277"

-				+ a

-				+ "-1658430596698325539"

-				+ a

-				+ "-4983979316745651326"

-				+ a

-				+ "-7367822663026016031"

-				+ a

-				+ "5536666042452556266"

-				+ a

-				+ "7831167091211321400"

-				+ a

-				+ "-1686744937172643124"

-				+ a

-				+ "4709613367890590679"

-				+ a

-				+ "9117545435945354623"

-				+ a

-				+ "3908543326474915014"

-				+ a

-				+ "3700783554614032889"

-				+ a

-				+ "5500699049362208843"

-				+ a

-				+ "8883143644002779797"

-				+ a

-				+ "5940917221843046728"

-				+ a

-				+ "-6377243717063936490"

-				+ a

-				+ "-2781555112742499359"

-				+ a

-				+ "7113301072320947691"

-				+ a

-				+ "501910549267933025"

-				+ a

-				+ "899471793024038068"

-				+ a

-				+ "-751886605302181282"

-				+ a

-				+ "-2897960745928273660"

-				+ a

-				+ "8841990777988640026"

-				+ a

-				+ "5210290765280155752"

-				+ a

-				+ "-1099833625028932053"

-				+ a

-				+ "4086791554633655976"

-				+ a

-				+ "3527398908407917918"

-				+ a

-				+ "2609157552125744460"

-				+ a

-				+ "-5411717177956362023"

-				+ a

-				+ "8936638687147126625"

-				+ a

-				+ "-5201416203511998337"

-				+ a

-				+ "8020173228835757436"

-				+ a

-				+ "-4672525820805766249"

-				+ a

-				+ "-7017604422221214209"

-				+ a

-				+ "-5632657971529806673"

-				+ a

-				+ "-5406365676176679526"

-				+ a

-				+ "6125746927489206206"

-				+ a

-				+ "2061394030035502100"

-				+ a

-				+ "-3336616794732253560"

-				+ a

-				+ "-2440204974762145461"

-				+ a

-				+ "-5510695638491715770"

-				+ a

-				+ "-2052022113521973639"

-				+ a

-				+ "8535915275635347845"

-				+ a

-				+ "2141589138267928504"

-				+ a

-				+ "4704310198587792718"

-				+ a

-				+ "-8516883072754769465"

-				+ a

-				+ "6176162718928711814"

-				+ a

-				+ "8787949673700282382"

-				+ a

-				+ "4567063869848829592"

-				+ a

-				+ "6699214372328713951"

-				+ a

-				+ "614582040941377104"

-				+ a

-				+ "2114345272374019582"

-				+ a

-				+ "1205326714880158218"

-				+ a

-				+ "345855247272630115"

-				+ a

-				+ "6863791979252946443"

-				+ a

-				+ "6584140928474080830"

-				+ a

-				+ "-974652546421757650"

-				+ a

-				+ "1104047281126844986"

-				+ a

-				+ "1683950892429964226"

-				+ a

-				+ "-114975964243070203"

-				+ a

-				+ "-1486761048205680462"

-				+ a

-				+ "-5291415350861152240"

-				+ a

-				+ "-1295712165563917082"

-				+ a

-				+ "376680977854009491"

-				+ a

-				+ "-3801206170133606167"

-				+ a

-				+ "-7615543987751473197"

-				+ a

-				+ "1222029900712890572"

-				+ a

-				+ "8086849773582156199"

-				+ a

-				+ "5699471271553623625"

-				+ a

-				+ "-3076723626026790089"

-				+ a

-				+ "-6990312711296902870"

-				+ a

-				+ "2249309539351360519"

-				+ a

-				+ "-2213204999452304917"

-				+ a

-				+ "8837902888211847987"

-				+ a

-				+ "4621474258312999582"

-				+ a

-				+ "741401623629356284"

-				+ a

-				+ "-507184299727707634"

-				+ a

-				+ "5003522673131041922"

-				+ a

-				+ "-2512304557071432409"

-				+ a

-				+ "5860072657460323795"

-				+ a

-				+ "-3551939454713122155"

-				+ a

-				+ "7039243559025359908"

-				+ a

-				+ "2667090741430594730"

-				+ a

-				+ "-5263722189506025379"

-				+ a

-				+ "-582705400402113148"

-				+ a

-				+ "-4378370425568246822"

-				+ a

-				+ "-2392995877829144210"

-				+ a

-				+ "2097189650028165999"

-				+ a

-				+ "9044307751697998726"

-				+ a

-				+ "-4309773030097066323"

-				+ a

-				+ "-245082032325783392"

-				+ a

-				+ "-9041789317184909469"

-				+ a

-				+ "3315057182621451370"

-				+ a

-				+ "-2164132299950019225"

-				+ a

-				+ "343094821716735184"

-				+ a

-				+ "-3331909883100521834"

-				+ a

-				+ "4460313862086287266"

-				+ a

-				+ "1812608985018565400"

-				+ a

-				+ "-6008529437339156878"

-				+ a

-				+ "-8385297506366368280"

-				+ a

-				+ "-4247845283919211326"

-				+ a

-				+ "7900328945924389267"

-				+ a

-				+ "8078840910713306207"

-				+ a

-				+ "-570510759641380545"

-				+ a

-				+ "5367622739845813255"

-				+ a

-				+ "-6792063981953278482"

-				+ a

-				+ "-8609138015271881647"

-				+ a

-				+ "1294288896582281220"

-				+ a

-				+ "6609052239144832718"

-				+ a

-				+ "-263131261566575354"

-				+ a

-				+ "-2039905094280094870"

-				+ a

-				+ "-3228456423753777756"

-				+ a

-				+ "2274841285895911448"

-				+ a

-				+ "4845949212104423416"

-				+ a

-				+ "-6574745710094852434"

-				+ a

-				+ "-2285800804160361968"

-				+ a

-				+ "-1144764046272735988"

-				+ a

-				+ "-4887605558584506199"

-				+ a

-				+ "5064876672478755716"

-				+ a

-				+ "-3232208103790399939"

-				+ a

-				+ "5348678013006323061"

-				+ a

-				+ "2032227170072499776"

-				+ a

-				+ "-5970510642986571719"

-				+ a

-				+ "-8156922862002452315"

-				+ a

-				+ "-3691740174830523328"

-				+ a

-				+ "-3844250118619088474"

-				+ a

-				+ "6528094743374630013"

-				+ a

-				+ "1606598775838302661"

-				+ a

-				+ "-7747504328742060032"

-				+ a

-				+ "-4505193121087041011"

-				+ a

-				+ "8325698253309430243"

-				+ a

-				+ "6550206689455229085"

-				+ a

-				+ "-207710379570803862"

-				+ a

-				+ "-6711498507499959962"

-				+ a

-				+ "-9095050147687951259"

-				+ a

-				+ "6239177506672082739"

-				+ a

-				+ "-5523818040006060583"

-				+ a

-				+ "5804005037551216873"

-				+ a

-				+ "-6075325454732731681"

-				+ a

-				+ "-7988185768521296112"

-				+ a

-				+ "1039395532244708299"

-				+ a

-				+ "8001200725138275729"

-				+ a

-				+ "-7074698778794344561"

-				+ a

-				+ "-2336253547742487103"

-				+ a

-				+ "-2606238079972532383"

-				+ a

-				+ "-4339818077653300067"

-				+ a

-				+ "-8558914632631279460"

-				+ a

-				+ "-4135390505319655081"

-				+ a

-				+ "2460161030124935395"

-				+ a

-				+ "5391174676264245265"

-				+ a

-				+ "7530170745056800908"

-				+ a

-				+ "7664035282768827623"

-				+ a

-				+ "-2020351598233962694"

-				+ a

-				+ "3876340506192868147"

-				+ a

-				+ "3814540850933604043"

-				+ a

-				+ "6817954267349138699"

-				+ a

-				+ "-7584650305603780491"

-				+ a

-				+ "-4395070944949623026"

-				+ a

-				+ "-3158848660161048533"

-				+ a

-				+ "-269117567728546720"

-				+ a

-				+ "-3122953333596609979"

-				+ a

-				+ "71120503137756914"

-				+ a

-				+ "5637199835664820063"

-				+ a

-				+ "1852378117913282566"

-				+ a

-				+ "-3747245523281264000"

-				+ a

-				+ "2303890783248766194"

-				+ a

-				+ "5410987106499222910"

-				+ a

-				+ "2696649635447671843"

-				+ a

-				+ "1271620354708692897"

-				+ a

-				+ "-1729642602524780956"

-				+ a

-				+ "-1315069908501370233"

-				+ a

-				+ "-6125916372380604320"

-				+ a

-				+ "-4056353451015536314"

-				+ a

-				+ "5159017489559205989"

-				+ a

-				+ "-2113090891128734249"

-				+ a

-				+ "4333405829811801194"

-				+ a

-				+ "8954747781215647921"

-				+ a

-				+ "-5450373765985049517"

-				+ a

-				+ "-2432760969826335052"

-				+ a

-				+ "-8012766084822596494"

-				+ a

-				+ "-4619727234556333752"

-				+ a

-				+ "4884975169507664977"

-				+ a

-				+ "-2939311391033930554"

-				+ a

-				+ "8221234267001882030"

-				+ a

-				+ "3912615498840805654"

-				+ a

-				+ "-561848863929337914"

-				+ a

-				+ "43573555934369944"

-				+ a

-				+ "-5928313827199464746"

-				+ a

-				+ "-3501297165495359161"

-				+ a

-				+ "-4998610189516277794"

-				+ a

-				+ "-1913588868684190692"

-				+ a

-				+ "-2278084051797147481"

-				+ a

-				+ "-1610917622365620560"

-				+ a

-				+ "-2305710515290190841"

-				+ a

-				+ "1165273814480014116"

-				+ a

-				+ "6838312509618586212"

-				+ a

-				+ "6491150613554885188"

-				+ a

-				+ "-1944753561513611658"

-				+ a

-				+ "6255632190421079018"

-				+ a

-				+ "-1773213467900303792"

-				+ a

-				+ "-5038763434446212704"

-				+ a

-				+ "4715879262419648672"

-				+ a

-				+ "4333687086319921033"

-				+ a

-				+ "912014761633159733"

-				+ a

-				+ "-1930604833972234368"

-				+ a

-				+ "-3391198435941748799"

-				+ a

-				+ "-3071060629188926847"

-				+ a

-				+ "9184135797098467296"

-				+ a

-				+ "5032670905203823687"

-				+ a

-				+ "6078798282541869400"

-				+ a

-				+ "5423378219740816695"

-				+ a

-				+ "8252131508489648546"

-				+ a

-				+ "7607030361567934076"

-				+ a

-				+ "-262569328231047255"

-				+ a

-				+ "6663001055977811058"

-				+ a

-				+ "6298318905345480400"

-				+ a

-				+ "6506771260680588103"

-				+ a

-				+ "-4416115954408464838"

-				+ a

-				+ "4518035252801993183"

-				+ a

-				+ "1982554975493001284"

-				+ a

-				+ "7197635397909925624"

-				+ a

-				+ "-7668571444198740394"

-				+ a

-				+ "-2665198171639411569"

-				+ a

-				+ "-2456494556960430885"

-				+ a

-				+ "4715159423995014529"

-				+ a

-				+ "-237344622867592307"

-				+ a

-				+ "-6262109450197948044"

-				+ a

-				+ "-3474443242974353931"

-				+ a

-				+ "2934384186453480183"

-				+ a

-				+ "-1277187905886427086"

-				+ a

-				+ "6673422063586767847"

-				+ a

-				+ "-7880530014350474248"

-				+ a

-				+ "-3646763270037402604"

-				+ a

-				+ "-149292745994812965"

-				+ a

-				+ "3376372179984995877"

-				+ a

-				+ "-1111731767279408435"

-				+ a

-				+ "4671558057806984888"

-				+ a

-				+ "-1292228904119138843"

-				+ a

-				+ "-3583239139422111283"

-				+ a

-				+ "4342930889299439202"

-				+ a

-				+ "-8725402015736905116"

-				+ a

-				+ "-1109270466676439570"

-				+ a

-				+ "-1972518756159303581"

-				+ a

-				+ "-35230474872666330"

-				+ a

-				+ "-3244541790415322947"

-				+ a

-				+ "-7950578804922139559"

-				+ a

-				+ "-5486091848317228079"

-				+ a

-				+ "-2281298898378514801"

-				+ a

-				+ "-6646645720238471665"

-				+ a

-				+ "6623440358756065485"

-				+ a

-				+ "-9153856997766830367"

-				+ a

-				+ "-3585757771897050217"

-				+ a

-				+ "6930412469998148039"

-				+ a

-				+ "-4351635392967078730"

-				+ a

-				+ "7154169321563069892"

-				+ a

-				+ "-7358749838981554373"

-				+ a

-				+ "-6190958088870856968"

-				+ a

-				+ "-3862427748869640253"

-				+ a

-				+ "-7621041158611765618"

-				+ a

-				+ "1393838985767952635"

-				+ a

-				+ "6302374980696710359"

-				+ a

-				+ "1987923606930691174"

-				+ a

-				+ "-7327828962052736585"

-				+ a

-				+ "-6060103819590919330"

-				+ a

-				+ "-1893007658963996865"

-				+ a

-				+ "1542199167471334487"

-				+ a

-				+ "5310282313180215963"

-				+ a

-				+ "7036608913993422955"

-				+ a

-				+ "5043602524937529134"

-				+ a

-				+ "5859573804796910866"

-				+ a

-				+ "-8924021905603981317"

-				+ a

-				+ "7835087149345156656"

-				+ a

-				+ "1478259997538816838"

-				+ a

-				+ "-4419199077858089900"

-				+ a

-				+ "4379067511389396090"

-				+ a

-				+ "-4696287401987638466"

-				+ a

-				+ "-6289442156285941683"

-				+ a

-				+ "8071605714943028386"

-				+ a

-				+ "-8951996923309922526"

-				+ a

-				+ "-1790196851854134485"

-				+ a

-				+ "-1264412905408257619"

-				+ a

-				+ "2374886420318321090"

-				+ a

-				+ "-7092423419234991140"

-				+ a

-				+ "6218125741463927567"

-				+ a

-				+ "-6598568930604895755"

-				+ a

-				+ "1689449162299839807"

-				+ a

-				+ "6323892191946689531"

-				+ a

-				+ "5646678591452304903"

-				+ a

-				+ "7993106382290699094"

-				+ a

-				+ "1206223703498719977"

-				+ a

-				+ "-7812953645555505486"

-				+ a

-				+ "397555838289174966"

-				+ a

-				+ "2976010389220542502"

-				+ a

-				+ "6308013708131108179"

-				+ a

-				+ "7862773357976478105"

-				+ a

-				+ "-6789656998258171201"

-				+ a

-				+ "275448435954686817"

-				+ a

-				+ "-6484850033613884844"

-				+ a

-				+ "9044540601293429036"

-				+ a

-				+ "-4714255188356898484"

-				+ a

-				+ "5107200514627105059"

-				+ a

-				+ "-892844935287728250"

-				+ a

-				+ "8469981168123687244"

-				+ a

-				+ "2137088813854102922"

-				+ a

-				+ "548487406451152687"

-				+ a

-				+ "1161566390356831946"

-				+ a

-				+ "-5366587423885009476"

-				+ a

-				+ "-137674910105312214"

-				+ a

-				+ "-5369011151552101013"

-				+ a

-				+ "1881433315829048002"

-				+ a

-				+ "-7597495061786346843"

-				+ a

-				+ "6167296021565352674"

-				+ a

-				+ "3126346873707249250"

-				+ a

-				+ "8414581496191902550"

-				+ a

-				+ "-3431070974078274286"

-				+ a

-				+ "-3353898778032759574"

-				+ a

-				+ "-2726654910268244032"

-				+ a

-				+ "-2448795643678291408"

-				+ a

-				+ "-4158353334053633163"

-				+ a

-				+ "1565862036675850112"

-				+ a

-				+ "-5342984135704362278"

-				+ a

-				+ "-6124338599754330305"

-				+ a

-				+ "-8280725856435474912"

-				+ a

-				+ "3057386475416295012"

-				+ a

-				+ "-3896005975245615836"

-				+ a

-				+ "-90185462533567176"

-				+ a

-				+ "3093018829144434637"

-				+ a

-				+ "7490599664753053788"

-				+ a

-				+ "-4881014271207206728"

-				+ a

-				+ "237646390828291600"

-				+ a

-				+ "-1621517700991273449"

-				+ a

-				+ "9009036724350796722"

-				+ a

-				+ "1273336340673207510"

-				+ a

-				+ "-3769199860684286077"

-				+ a

-				+ "-7931514986849244674"

-				+ a

-				+ "6468389508770523825"

-				+ a

-				+ "-5020483768058569122"

-				+ a

-				+ "-8520505365041508463"

-				+ a

-				+ "1248378152959174759"

-				+ a

-				+ "-1964120239901863893"

-				+ a

-				+ "5138388422110294104"

-				+ a

-				+ "3479513344423596283"

-				+ a

-				+ "6047730220900958874"

-				+ a

-				+ "6924511811254590454"

-				+ a

-				+ "3318218834094603372"

-				+ a

-				+ "8024806712616818634"

-				+ a

-				+ "2031539881428295362"

-				+ a

-				+ "5629507007642070890"

-				+ a

-				+ "-6229588220001211542"

-				+ a

-				+ "3869936499024244169"

-				+ a

-				+ "4201625407413514353"

-				+ a

-				+ "8493899006002794981"

-				+ a

-				+ "2056217217492362692"

-				+ a

-				+ "-8694261806141907194"

-				+ a

-				+ "-3459846817409973991"

-				+ a

-				+ "7036384077172043079"

-				+ a

-				+ "5981148065908712463"

-				+ a

-				+ "-8712265711502573995"

-				+ a

-				+ "4287743740428781715"

-				+ a

-				+ "5942873816449620598"

-				+ a

-				+ "-6575543227187130490"

-				+ a

-				+ "397910908799842765"

-				+ a

-				+ "-2568040981584112228"

-				+ a

-				+ "3237988768615513563"

-				+ a

-				+ "-4191411378079550841"

-				+ a

-				+ "-4222601966375665847"

-				+ a

-				+ "2522403976399554131"

-				+ a

-				+ "6120926922071503844"

-				+ a

-				+ "375027522888513811"

-				+ a

-				+ "-1522882740446678808"

-				+ a

-				+ "4935255114151481533"

-				+ a

-				+ "-4086159388928651904"

-				+ a

-				+ "-3115343425808268974"

-				+ a

-				+ "-5203489536122476147"

-				+ a

-				+ "8795529815600651074"

-				+ a

-				+ "80286283873639590"

-				+ a

-				+ "-5068484706612970483"

-				+ a

-				+ "-3672967451330670241"

-				+ a

-				+ "-1442705906622520019"

-				+ a

-				+ "7968573705208549582"

-				+ a

-				+ "3360965067397160242"

-				+ a

-				+ "-6513273208088886710"

-				+ a

-				+ "5050721900444876591"

-				+ a

-				+ "3133412726794527606"

-				+ a

-				+ "-7659500995422659500"

-				+ a

-				+ "-1873481277373416323"

-				+ a

-				+ "8935362823082660828"

-				+ a

-				+ "-2778758476607531874"

-				+ a

-				+ "1251425370875299113"

-				+ a

-				+ "7420431773171575530"

-				+ a

-				+ "8199506692094230572"

-				+ a

-				+ "3529081376621410124"

-				+ a

-				+ "95676002737657866"

-				+ a

-				+ "-7433215714594080822"

-				+ a

-				+ "1560120442064157692"

-				+ a

-				+ "-4917925827649253879"

-				+ a

-				+ "-1633645829195564426"

-				+ a

-				+ "-511632361606516458"

-				+ a

-				+ "-724701335622380917"

-				+ a

-				+ "-2919212109012158621"

-				+ a

-				+ "-4866871173848680561"

-				+ a

-				+ "-2847321891723707121"

-				+ a

-				+ "-8758010767404897539"

-				+ a

-				+ "-5003144527513441687"

-				+ a

-				+ "-2141864159028670309"

-				+ a

-				+ "-6774089444468990282"

-				+ a

-				+ "1653132513488543963"

-				+ a

-				+ "-5455000731532098766"

-				+ a

-				+ "-3572531149673915004"

-				+ a

-				+ "2133384230918589012"

-				+ a

-				+ "-853660865858261871"

-				+ a

-				+ "5494488722556641110"

-				+ a

-				+ "-5862610005604565671"

-				+ a

-				+ "-808451173197690380"

-				+ a

-				+ "5477097553753168879"

-				+ a

-				+ "3838919399935625843"

-				+ a

-				+ "-8764371251366553909"

-				+ a

-				+ "-2839135848879115804"

-				+ a

-				+ "3790471151342951081"

-				+ a

-				+ "4755475314974292649"

-				+ a

-				+ "743304231064856753"

-				+ a

-				+ "4365356611584238904"

-				+ a

-				+ "-6548585131949438249"

-				+ a

-				+ "-6200874338176525025"

-				+ a

-				+ "-5644404220656850300"

-				+ a

-				+ "-8315082119007311289"

-				+ a

-				+ "5113602445539749238"

-				+ a

-				+ "-600681809417260420"

-				+ a

-				+ "-4763730284677038877"

-				+ a

-				+ "2445781733723819820"

-				+ a

-				+ "-4278609684717675804"

-				+ a

-				+ "-1631928600038343826"

-				+ a

-				+ "7870230093295086097"

-				+ a

-				+ "45653481548996166"

-				+ a

-				+ "-6698651163315451032"

-				+ a

-				+ "7418922739373700391"

-				+ a

-				+ "2834036305019532914"

-				+ a

-				+ "-7805479983895305544"

-				+ a

-				+ "-4498301813798211672"

-				+ a

-				+ "8198301112608777690"

-				+ a

-				+ "3946135380080558354"

-				+ a

-				+ "3729328735391874282"

-				+ a

-				+ "6039511859537991984"

-				+ a

-				+ "-7284061669470897853"

-				+ a

-				+ "-8278031970957020130"

-				+ a

-				+ "4718143193789236998"

-				+ a

-				+ "-8663517765137566990"

-				+ a

-				+ "2252185910208785692"

-				+ a

-				+ "2529003162250954088"

-				+ a

-				+ "98935220014582140"

-				+ a

-				+ "1315061819377404353"

-				+ a

-				+ "4663598838352530857"

-				+ a

-				+ "-4550571558489962777"

-				+ a

-				+ "3825904347230371710"

-				+ a

-				+ "-8468131412504877868"

-				+ a

-				+ "-3028672951573954003"

-				+ a

-				+ "6793888796330723125"

-				+ a

-				+ "-6731836204402594940"

-				+ a

-				+ "-3083086963709202870"

-				+ a

-				+ "5972055209543821682"

-				+ a

-				+ "-3007704021703785969"

-				+ a

-				+ "6276921094468975562"

-				+ a

-				+ "-2385667706792875104"

-				+ a

-				+ "-4798538726797851066"

-				+ a

-				+ "6542420907682848985"

-				+ a

-				+ "8760005704353021645"

-				+ a

-				+ "-8383174092167068100"

-				+ a

-				+ "1994267834917436408"

-				+ a

-				+ "-882988945015600361"

-				+ a

-				+ "-1421628514110625838"

-				+ a

-				+ "1386556981179212774"

-				+ a

-				+ "-1628451205522220321"

-				+ a

-				+ "6096215132756199157"

-				+ a

-				+ "-3157999682887015585"

-				+ a

-				+ "-720804536501956791"

-				+ a

-				+ "864311996094102739"

-				+ a

-				+ "-9129776398840895040"

-				+ a

-				+ "6371274784961788864"

-				+ a

-				+ "6317369305411645559"

-				+ a

-				+ "-8217006195540446798"

-				+ a

-				+ "953960764002310251"

-				+ a

-				+ "-7896083199860814461"

-				+ a

-				+ "-3195405771619052190"

-				+ a

-				+ "2554422386574752733"

-				+ a

-				+ "4245141863786747915"

-				+ a

-				+ "-5477415415121490948"

-				+ a

-				+ "-3619704843164087708"

-				+ a

-				+ "1944074131303980216"

-				+ a

-				+ "-1887968265449951653"

-				+ a

-				+ "-2435116698727098942"

-				+ a

-				+ "-2748007480497913160"

-				+ a

-				+ "-1812140038148607699"

-				+ a

-				+ "-1481232631074352583"

-				+ a

-				+ "77026493495056688"

-				+ a

-				+ "1427899818682618110"

-				+ a

-				+ "-2545050666705232342"

-				+ a

-				+ "-4907281526846362585"

-				+ a

-				+ "6992610960207825125"

-				+ a

-				+ "2927663913121050555"

-				+ a

-				+ "2449858278136761630"

-				+ a

-				+ "-3104582313646135605"

-				+ a

-				+ "943339250059010116"

-				+ a

-				+ "6972390479973112278"

-				+ a

-				+ "-143887053138790272"

-				+ a

-				+ "3356560001730432879"

-				+ a

-				+ "-6566764162681997323"

-				+ a

-				+ "3668838725603488541"

-				+ a

-				+ "-1023359833182599096"

-				+ a

-				+ "813165131040507522"

-				+ a

-				+ "5478699827093318242"

-				+ a

-				+ "-4189776217840205634"

-				+ a

-				+ "701589422406172276"

-				+ a

-				+ "3472756774896500757"

-				+ a

-				+ "-8290107053048657861"

-				+ a

-				+ "5694414199747604942"

-				+ a

-				+ "-3191169294615547003"

-				+ a

-				+ "5091500569779147870"

-				+ a

-				+ "4196571841396612339"

-				+ a

-				+ "7711777312917239750"

-				+ a

-				+ "5152881326409671423"

-				+ a

-				+ "734491937592074296"

-				+ a

-				+ "1431453077774631744"

-				+ a

-				+ "7219739284858384128"

-				+ a

-				+ "-5221091070613125140"

-				+ a

-				+ "-1011640063542528607"

-				+ a

-				+ "1283968889735350687"

-				+ a

-				+ "-2671634264101398722"

-				+ a

-				+ "-7954219858650838694"

-				+ a

-				+ "4029537184239459388"

-				+ a

-				+ "-4933138819600324915"

-				+ a

-				+ "7664875024126417956"

-				+ a

-				+ "5802164042560157400"

-				+ a

-				+ "8867033579115635149"

-				+ a

-				+ "-2262327063551902129"

-				+ a

-				+ "-5496413002288534087"

-				+ a

-				+ "-9177790286601677571"

-				+ a

-				+ "-4804121451895014721"

-				+ a

-				+ "6657552006397867243"

-				+ a

-				+ "-5676535376674264854"

-				+ a

-				+ "2504402911410518498"

-				+ a

-				+ "2977491730596934305"

-				+ a

-				+ "5454818912351900973"

-				+ a

-				+ "5876513810599383047"

-				+ a

-				+ "715611406429649314"

-				+ a

-				+ "-2402728559636829020"

-				+ a

-				+ "4650943519358976995"

-				+ a

-				+ "2544986244799828804"

-				+ a

-				+ "719478745574466273"

-				+ a

-				+ "-22820586461547489"

-				+ a

-				+ "-8242498312426535775"

-				+ a

-				+ "5166391322188818746"

-				+ a

-				+ "-1301099741166466238"

-				+ a

-				+ "6777183057769553164"

-				+ a

-				+ "-5180542485006512578"

-				+ a

-				+ "-393290239772002461"

-				+ a

-				+ "3939307281163922416"

-				+ a

-				+ "8005001261047788680"

-				+ a

-				+ "8930885310148079445"

-				+ a

-				+ "-4794693648338023775"

-				+ a

-				+ "-7832197853329142250"

-				+ a

-				+ "-6616876144074407594"

-				+ a

-				+ "-7815536134577831227"

-				+ a

-				+ "-7300592228259078217"

-				+ a

-				+ "-2420675692755400857"

-				+ a

-				+ "-2417030952500882339"

-				+ a

-				+ "-6797270974718479310"

-				+ a

-				+ "269771083840125902"

-				+ a

-				+ "3157091651274262167"

-				+ a

-				+ "8697615235028412710"

-				+ a

-				+ "3538320494628000898"

-				+ a

-				+ "-8700694277662501646"

-				+ a

-				+ "2066583791144923103"

-				+ a

-				+ "5551206296830695007"

-				+ a

-				+ "-4970728003721986464"

-				+ a

-				+ "-552197265275467117"

-				+ a

-				+ "4626145040974907773"

-				+ a

-				+ "3448612904884604506"

-				+ a

-				+ "748670883168176828"

-				+ a

-				+ "-6233979681553781243"

-				+ a

-				+ "-4544802847111792590"

-				+ a

-				+ "-7761655660005544050"

-				+ a

-				+ "2297369898425242952"

-				+ a

-				+ "857207484408519424"

-				+ a

-				+ "-17394699395150910"

-				+ a

-				+ "8201559379994584341"

-				+ a

-				+ "-1231944804806258435"

-				+ a

-				+ "6597224736215359520"

-				+ a

-				+ "500846020371422071"

-				+ a

-				+ "1018234138705237805"

-				+ a

-				+ "-1596011118585484140"

-				+ a

-				+ "-26138935862806682"

-				+ a

-				+ "-1097215572743228769"

-				+ a

-				+ "81351931136175031"

-				+ a

-				+ "6395439808563545870"

-				+ a

-				+ "-1297999266625483083"

-				+ a

-				+ "8548488327470157065"

-				+ a

-				+ "-6576036797330794821"

-				+ a

-				+ "-2104611578644794323"

-				+ a

-				+ "-5784421750563954602"

-				+ a

-				+ "-2392748360644615284"

-				+ a

-				+ "2669307174142835426"

-				+ a

-				+ "-8617162425929035528"

-				+ a

-				+ "-7185571120010208396"

-				+ a

-				+ "7494874214499485825"

-				+ a

-				+ "-8019549838914840070"

-				+ a

-				+ "-8572548389377808325"

-				+ a

-				+ "9177920409992928417"

-				+ a

-				+ "2574765948067107908"

-				+ a

-				+ "-7145546505022417546"

-				+ a

-				+ "6091877106353284868"

-				+ a

-				+ "2718564275332216399"

-				+ a

-				+ "-1682451754550845002"

-				+ a

-				+ "5383698813342645996"

-				+ a

-				+ "-5325275677998898905"

-				+ a

-				+ "4296256188514240856"

-				+ a

-				+ "-6284555223374144834"

-				+ a

-				+ "4686907914658969749"

-				+ a

-				+ "-2672433107634723396"

-				+ a

-				+ "9182976955244244343"

-				+ a

-				+ "-45834596498729789"

-				+ a

-				+ "8476474814586529232"

-				+ a

-				+ "-5400958819728596068"

-				+ a

-				+ "-8511321941667534387"

-				+ a

-				+ "4336907653045517620"

-				+ a

-				+ "-5210703458746995809"

-				+ a

-				+ "9179806757390753255"

-				+ a

-				+ "6094025559094213981"

-				+ a

-				+ "-8412598326260443648"

-				+ a

-				+ "-4172563096838061784"

-				+ a

-				+ "-3071328123176030080"

-				+ a

-				+ "3969788753850185615"

-				+ a

-				+ "1786729876414136862"

-				+ a

-				+ "-2275444241133449163"

-				+ a

-				+ "-1871384636507265905"

-				+ a

-				+ "5314766366902575281"

-				+ a

-				+ "4256843451351245319"

-				+ a

-				+ "3205232295236085173"

-				+ a

-				+ "-4071018234209233666"

-				+ a

-				+ "-241084583434390927"

-				+ a

-				+ "-4864009884957720521"

-				+ a

-				+ "-2474507206868372935"

-				+ a

-				+ "-3086257679926615299"

-				+ a

-				+ "4088550094298505316"

-				+ a

-				+ "6481859430300093871"

-				+ a

-				+ "-4149248147260089737"

-				+ a

-				+ "5751936103051737727"

-				+ a

-				+ "-8067819930398707581"

-				+ a

-				+ "7670386680304021110"

-				+ a

-				+ "-2332417447729735733"

-				+ a

-				+ "3221958145698506426"

-				+ a

-				+ "-2794978698076298327"

-				+ a

-				+ "7954395953204729363"

-				+ a

-				+ "6677772407808174257"

-				+ a

-				+ "2115558009373128363"

-				+ a

-				+ "1303266325210361366"

-				+ a

-				+ "-711058957100944363"

-				+ a

-				+ "1614912588004413772"

-				+ a

-				+ "6874669523411939728"

-				+ a

-				+ "-8369287306464935953"

-				+ a

-				+ "-1684416424857587573"

-				+ a

-				+ "8253440249378089955"

-				+ a

-				+ "-3388982263081362580"

-				+ a

-				+ "3678474358138101179"

-				+ a

-				+ "-5457310176028329844"

-				+ a

-				+ "8062499506372708702"

-				+ a

-				+ "1961126841586682246"

-				+ a

-				+ "4364856704628394215"

-				+ a

-				+ "6724515039510026929"

-				+ a

-				+ "3145915635689578957"

-				+ a

-				+ "-9068629039917709590"

-				+ a

-				+ "-6896889714673092541"

-				+ a

-				+ "-5872078154100411498"

-				+ a

-				+ "482677778014278881"

-				+ a

-				+ "994873927174850790"

-				+ a

-				+ "-8000765370282532732"

-				+ a

-				+ "690174924996651613"

-				+ a

-				+ "-8265299070933681551"

-				+ a

-				+ "5649507651661886351"

-				+ a

-				+ "-8019963432471327552"

-				+ a

-				+ "8576709714539609386"

-				+ a

-				+ "7428668195334390519"

-				+ a

-				+ "-1004200650521530822"

-				+ a

-				+ "-2886037052899604747"

-				+ a

-				+ "-7114770470000271960"

-				+ a

-				+ "-2300304907145140207"

-				+ a

-				+ "-4597066594806265853"

-				+ a

-				+ "-8873151084735737726"

-				+ a

-				+ "4096849419089976706"

-				+ a

-				+ "1065469964635630848"

-				+ a

-				+ "6032531643212966985"

-				+ a

-				+ "8042807203906726571"

-				+ a

-				+ "-8597691136135861525"

-				+ a

-				+ "3975309871459151660"

-				+ a

-				+ "1910269397441177392"

-				+ a

-				+ "-8082728109078253799"

-				+ a

-				+ "-2153134960423805673"

-				+ a

-				+ "-3694283007221332323"

-				+ a

-				+ "-5329554595744515555"

-				+ a

-				+ "-7616008112930064296"

-				+ a

-				+ "5374164716957274303"

-				+ a

-				+ "7055806471699822212"

-				+ a

-				+ "-3034416501726773186"

-				+ a

-				+ "-4777342028744844712"

-				+ a

-				+ "-8858900436739205983"

-				+ a

-				+ "-1883194253652283984"

-				+ a

-				+ "763857036569830144"

-				+ a

-				+ "-2604905813028082963"

-				+ a

-				+ "8896125689765848574"

-				+ a

-				+ "-3678672038381431014"

-				+ a

-				+ "-2580260397506994537"

-				+ a

-				+ "7842089863115348559"

-				+ a

-				+ "5540665111479827739"

-				+ a

-				+ "2579610618501036634"

-				+ a

-				+ "-6546623738212313479"

-				+ a

-				+ "-6338633021039551589"

-				+ a

-				+ "-7838115082028684864"

-				+ a

-				+ "1707181944826096686"

-				+ a

-				+ "5751970046862735843"

-				+ a

-				+ "-5852680709225685681"

-				+ a

-				+ "-6664378160967385156"

-				+ a

-				+ "3636371481441062650"

-				+ a

-				+ "1838037137099569235"

-				+ a

-				+ "-8411250525386747438"

-				+ a

-				+ "-6472330738327055521"

-				+ a

-				+ "7162476550072738627"

-				+ a

-				+ "-1470651201059158516"

-				+ a

-				+ "428366551799105514"

-				+ a

-				+ "7277995288887084542"

-				+ a

-				+ "-1029487524482586573"

-				+ a

-				+ "-5720661788324433771"

-				+ a

-				+ "5653818400270062403"

-				+ a

-				+ "-7615219267151273358"

-				+ a

-				+ "-6875499057096504295"

-				+ a

-				+ "5196088249313395514"

-				+ a

-				+ "1507760576708216047"

-				+ a

-				+ "4466003920374073753"

-				+ a

-				+ "-6927163147925885723"

-				+ a

-				+ "7030187541847112585"

-				+ a

-				+ "-643059337707244575"

-				+ a

-				+ "8500788707189878484"

-				+ a

-				+ "6912045776561875120"

-				+ a

-				+ "-7795124748209566249"

-				+ a

-				+ "1480521059261289841"

-				+ a

-				+ "-7942872165842049912"

-				+ a

-				+ "160228994416279090"

-				+ a

-				+ "8922510255051815353"

-				+ a

-				+ "3776806737798112731"

-				+ a

-				+ "1784830562638493853"

-				+ a

-				+ "-1468151429829558966"

-				+ a

-				+ "-8462833212897464693"

-				+ a

-				+ "2711466553961636031"

-				+ a

-				+ "-8832517111573585662"

-				+ a

-				+ "-1115551713759082630"

-				+ a

-				+ "8029886438954713068"

-				+ a

-				+ "-1506344344651609694"

-				+ a

-				+ "1147647689029089318"

-				+ a

-				+ "-5892481768727240599"

-				+ a

-				+ "-5066151872839652800"

-				+ a

-				+ "-3211303276721830804"

-				+ a

-				+ "902925049407736193"

-				+ a

-				+ "-1705529505313550753"

-				+ a

-				+ "6942813368093763373"

-				+ a

-				+ "-3189584254263886359"

-				+ a

-				+ "-8151789860636479991"

-				+ a

-				+ "3160358323515624140"

-				+ a

-				+ "6766313830725014046"

-				+ a

-				+ "6616574192994395208"

-				+ a

-				+ "1505043433831987389"

-				+ a

-				+ "-8254107266258386239"

-				+ a

-				+ "8201682746366942403"

-				+ a

-				+ "7049420348303847327"

-				+ a

-				+ "-779071050928049378"

-				+ a

-				+ "1367142373039368053"

-				+ a

-				+ "7453675130550899599"

-				+ a

-				+ "-7917711176173061532"

-				+ a

-				+ "3313398252775778737"

-				+ a

-				+ "4337717741330632385"

-				+ a

-				+ "-656911670097071559"

-				+ a

-				+ "7482645503299742197"

-				+ a

-				+ "-367598129941149570"

-				+ a

-				+ "2990187272887706533"

-				+ a

-				+ "8218597390609729596"

-				+ a

-				+ "8190839400284186386"

-				+ a

-				+ "5283093373464135572"

-				+ a

-				+ "1346661629957039809"

-				+ a

-				+ "-799282044425507498"

-				+ a

-				+ "3278126363957749342"

-				+ a

-				+ "-4895400981922404477"

-				+ a

-				+ "1979083824421142236"

-				+ a

-				+ "-4795668697430505972"

-				+ a

-				+ "-5395970322558385951"

-				+ a

-				+ "8109620177538792928"

-				+ a

-				+ "1589881313292818785"

-				+ a

-				+ "-6540646951889332187"

-				+ a

-				+ "-1350777919681323896"

-				+ a

-				+ "2357270747391562180"

-				+ a

-				+ "8076987350622509789"

-				+ a

-				+ "8309045708728545067"

-				+ a

-				+ "530055558885909668"

-				+ a

-				+ "-8183077235183204275"

-				+ a

-				+ "6388941139916578691"

-				+ a

-				+ "-2099445744549474067"

-				+ a

-				+ "-1293753809133546905"

-				+ a

-				+ "6781951102324793628"

-				+ a

-				+ "3047687602405084072"

-				+ a

-				+ "-4037298749186653696"

-				+ a

-				+ "-6685020615667120790"

-				+ a

-				+ "-6362750930968018218"

-				+ a

-				+ "5055566658581523526"

-				+ a

-				+ "-5671792057135769031"

-				+ a

-				+ "-5899031313464120278"

-				+ a

-				+ "-8188151456690710620"

-				+ a

-				+ "-2760499349444106371"

-				+ a

-				+ "-4426150260258002636"

-				+ a

-				+ "8565807875095182470"

-				+ a

-				+ "2347925124125718962"

-				+ a

-				+ "8836770360451529998"

-				+ a

-				+ "5282628269541305041"

-				+ a

-				+ "-3153353454794752957"

-				+ a

-				+ "-7257095076158279757"

-				+ a

-				+ "2378830048501618398"

-				+ a

-				+ "-5052934544264721487"

-				+ a

-				+ "2294026617251813768"

-				+ a

-				+ "-1415570073243535013"

-				+ a

-				+ "-3918356151852504711"

-				+ a

-				+ "6414529400340348349"

-				+ a

-				+ "-2606259282286505118"

-				+ a

-				+ "-454218702919111708"

-				+ a

-				+ "-647652547804552051"

-				+ a

-				+ "-3271722851719373664"

-				+ a

-				+ "6111983006311674433"

-				+ a

-				+ "-4354511461760213366"

-				+ a

-				+ "6491934357263299434"

-				+ a

-				+ "7191166931020341832"

-				+ a

-				+ "-5645675414313381767"

-				+ a

-				+ "-1011183135791847665"

-				+ a

-				+ "2795173187087355273"

-				+ a

-				+ "890216303210146665"

-				+ a

-				+ "-7912169349074963773"

-				+ a

-				+ "-4742180638700132808"

-				+ a

-				+ "-259088887663225086"

-				+ a

-				+ "8029334994095983610"

-				+ a

-				+ "-5374542070909783879"

-				+ a

-				+ "8281835760288916557"

-				+ a

-				+ "-3127270261288988396"

-				+ a

-				+ "-6183235249269165131"

-				+ a

-				+ "2174567067503160669"

-				+ a

-				+ "-1259213684934836835"

-				+ a

-				+ "2247172518861085345"

-				+ a

-				+ "7730193503548449435"

-				+ a

-				+ "-3046048989442302062"

-				+ a

-				+ "-6044149610030342408"

-				+ a

-				+ "870973208219058351"

-				+ a

-				+ "263182624751709550"

-				+ a

-				+ "-5064262206113338719"

-				+ a

-				+ "-2738036181733010893"

-				+ a

-				+ "590574988808658664"

-				+ a

-				+ "-105086946395041226"

-				+ a

-				+ "-4956626643504740682"

-				+ a

-				+ "-1419490083740558680"

-				+ a

-				+ "-7134184373942185957"

-				+ a

-				+ "826466482441411773"

-				+ a

-				+ "-7846545176314988191"

-				+ a

-				+ "-1386482905212722765"

-				+ a

-				+ "3899842152616849081"

-				+ a

-				+ "-6154468766884504813"

-				+ a

-				+ "4022359631212191254"

-				+ a

-				+ "-9123910919937723594"

-				+ a

-				+ "-3796696742954785448"

-				+ a

-				+ "1787119573712429578"

-				+ a

-				+ "5711418735283584685"

-				+ a

-				+ "4977033620972423701"

-				+ a

-				+ "1176824201489403700"

-				+ a

-				+ "7953379965576896954"

-				+ a

-				+ "8024486826677009378"

-				+ a

-				+ "-7593833097004061509"

-				+ a

-				+ "-7502240379893536599"

-				+ a

-				+ "-4607020169090577921"

-				+ a

-				+ "4520570961867228630"

-				+ a

-				+ "8330080160487545236"

-				+ a

-				+ "5302665185151061946"

-				+ a

-				+ "6335873427741359862"

-				+ a

-				+ "7942843793521747084"

-				+ a

-				+ "5631162455806133137"

-				+ a

-				+ "-6450425604371442547"

-				+ a

-				+ "-4010704877806920316"

-				+ a

-				+ "1399248098718732397"

-				+ a

-				+ "972469733242052263"

-				+ a

-				+ "-7298803554170955283"

-				+ a

-				+ "-5698194901053468721"

-				+ a

-				+ "2545963032814312133"

-				+ a

-				+ "-7862399973443453872"

-				+ a

-				+ "453451199524111815"

-				+ a

-				+ "-8477216232078151230"

-				+ a

-				+ "-6056741494627867069"

-				+ a

-				+ "3261908613835634696"

-				+ a

-				+ "-5031581820759604819"

-				+ a

-				+ "-5525101357093304947"

-				+ a

-				+ "-992112469424902275"

-				+ a

-				+ "6895709263621485521"

-				+ a

-				+ "7054726806246574934"

-				+ a

-				+ "5047241881050380323"

-				+ a

-				+ "-3904922186542766742"

-				+ a

-				+ "4579915186836399279"

-				+ a

-				+ "-5353937321024776932"

-				+ a

-				+ "-928075393056688709"

-				+ a

-				+ "5942878932738101734"

-				+ a

-				+ "8713841580842905389"

-				+ a

-				+ "6608875547270477436"

-				+ a

-				+ "4301343187721522768"

-				+ a

-				+ "-4095324054764236239"

-				+ a

-				+ "-5138250332818123817"

-				+ a

-				+ "1351937779264056474"

-				+ a

-				+ "-1576618855002232287"

-				+ a

-				+ "3540447542356909936"

-				+ a

-				+ "-3078741273218372674"

-				+ a

-				+ "2004486967449152186"

-				+ a

-				+ "-7663226671924277711"

-				+ a

-				+ "-6819176140304455893"

-				+ a

-				+ "-8065381572537158409"

-				+ a

-				+ "6561904230350781128"

-				+ a

-				+ "5968982111440892104"

-				+ a

-				+ "688535005304927181"

-				+ a

-				+ "3671146762822430492"

-				+ a

-				+ "6074946612835118545"

-				+ a

-				+ "8043972357531606512"

-				+ a

-				+ "-1357746997691964120"

-				+ a

-				+ "-7033153104090396727"

-				+ a

-				+ "-434627271818273656"

-				+ a

-				+ "4571881995274120185"

-				+ a

-				+ "-1563538570477750034"

-				+ a

-				+ "-7623771092889725152"

-				+ a

-				+ "4688991713505327042"

-				+ a

-				+ "-8604626094696448011"

-				+ a

-				+ "-8529809129456688327"

-				+ a

-				+ "4303329914390981702"

-				+ a

-				+ "-8079780687321061126"

-				+ a

-				+ "1861670108377883196"

-				+ a

-				+ "-2644415997330278652"

-				+ a

-				+ "-5897802207920412189"

-				+ a

-				+ "7495952426168779470"

-				+ a

-				+ "7793293741439116010"

-				+ a

-				+ "2796178858843037359"

-				+ a

-				+ "-5020394929558949210"

-				+ a

-				+ "2344703945676226943"

-				+ a

-				+ "-453773009627263396"

-				+ a

-				+ "6499859343787172991"

-				+ a

-				+ "6699134485389206975"

-				+ a

-				+ "2218525668340833141"

-				+ a

-				+ "2355733121583346103"

-				+ a

-				+ "-791325441084568805"

-				+ a

-				+ "-7246537864425084060"

-				+ a

-				+ "-4510848757778177607"

-				+ a

-				+ "-161128756252577951"

-				+ a

-				+ "-2166556087921641968"

-				+ a

-				+ "-2280493242052046516"

-				+ a

-				+ "1932496391683207290"

-				+ a

-				+ "-6421008687224691834"

-				+ a

-				+ "1290133728513942094"

-				+ a

-				+ "-7297634445335644361"

-				+ a

-				+ "-5997232904471695479"

-				+ a

-				+ "-7708529674621560684"

-				+ a

-				+ "-5588174406718247254"

-				+ a

-				+ "6294887950843562852"

-				+ a

-				+ "-7997118510844796196"

-				+ a

-				+ "-2885810922271028289"

-				+ a

-				+ "-8635762432530533286"

-				+ a

-				+ "-1317304606959364328"

-				+ a

-				+ "-2373159149951022322"

-				+ a

-				+ "-1936916772815322754"

-				+ a

-				+ "5599319884707688316"

-				+ a

-				+ "-6732913923000100066"

-				+ a

-				+ "-6213972918461393443"

-				+ a

-				+ "8024159330049419788"

-				+ a

-				+ "-651899612153972849"

-				+ a

-				+ "6049664271129214018"

-				+ a

-				+ "-6706689037037281621"

-				+ a

-				+ "-4989027840498412056"

-				+ a

-				+ "6832795885647890423"

-				+ a

-				+ "-2628481227451105323"

-				+ a

-				+ "5650274281754722047"

-				+ a

-				+ "5563965301533620821"

-				+ a

-				+ "3899471650830194813"

-				+ a

-				+ "-3097129239518275540"

-				+ a

-				+ "-5668778981688365311"

-				+ a

-				+ "-5675636006739130917"

-				+ a

-				+ "32486694633375181"

-				+ a

-				+ "-2262521173289991903"

-				+ a

-				+ "-7692135913691023871"

-				+ a

-				+ "4480225237126481092"

-				+ a

-				+ "-8363092793621689865"

-				+ a

-				+ "5287391673747106960"

-				+ a

-				+ "-3844953471224911120"

-				+ a

-				+ "9077450120460588448"

-				+ a

-				+ "-7541759920452713233"

-				+ a

-				+ "-5613734448761422117"

-				+ a

-				+ "5828717629727343845"

-				+ a

-				+ "-3031332337894560319"

-				+ a

-				+ "5313736621768512781"

-				+ a

-				+ "797352516281981799"

-				+ a

-				+ "-1325023898307200103"

-				+ a

-				+ "-8268807205481681472"

-				+ a

-				+ "-5324331743570264178"

-				+ a

-				+ "-7083639995384692451"

-				+ a

-				+ "-8637163951377958933"

-				+ a

-				+ "2975908686744585718"

-				+ a

-				+ "-2008404856766633711"

-				+ a

-				+ "7723387902706398954"

-				+ a

-				+ "-7973500423533177762"

-				+ a

-				+ "6692632760106560260"

-				+ a

-				+ "-4665610910118945254"

-				+ a

-				+ "8451621719365601343"

-				+ a

-				+ "-2645373212082623082"

-				+ a

-				+ "8421271369123846731"

-				+ a

-				+ "-2599494001784771694"

-				+ a

-				+ "-3946625605047561839"

-				+ a

-				+ "-8704217631780175137"

-				+ a

-				+ "4761619239478980213"

-				+ a

-				+ "4199445537668073285"

-				+ a

-				+ "5625985806773378266"

-				+ a

-				+ "2011135118429857446"

-				+ a

-				+ "-198733429078096918"

-				+ a

-				+ "926284042761947234"

-				+ a

-				+ "7584707738648251926"

-				+ a

-				+ "7614806611607011069"

-				+ a

-				+ "-8694136674804601508"

-				+ a

-				+ "1234259175475228671"

-				+ a

-				+ "-8862269440647405625"

-				+ a

-				+ "-7202860528132844005"

-				+ a

-				+ "-5343608329321007044"

-				+ a

-				+ "3955153865076457875"

-				+ a

-				+ "7340646789438500722"

-				+ a

-				+ "-4814101825287423270"

-				+ a

-				+ "1111096036970381634"

-				+ a

-				+ "3080041105664682874"

-				+ a

-				+ "402725684298177056"

-				+ a

-				+ "-442192729353998024"

-				+ a

-				+ "8885077571446724840"

-				+ a

-				+ "-2931904822146023563"

-				+ a

-				+ "6559344414154434782"

-				+ a

-				+ "2874385438277726934"

-				+ a

-				+ "-1558926763201497104"

-				+ a

-				+ "1719667747851828007"

-				+ a

-				+ "1148918550836530493"

-				+ a

-				+ "7842222988563611516"

-				+ a

-				+ "-1264979064834915366"

-				+ a

-				+ "-6449956785418592103"

-				+ a

-				+ "-6435052198093738542"

-				+ a

-				+ "7303314767276522899"

-				+ a

-				+ "-8525447647589129361"

-				+ a

-				+ "-4105683137247453514"

-				+ a

-				+ "-339581268788198729"

-				+ a

-				+ "-2792564634978555223"

-				+ a

-				+ "4381265229624255289"

-				+ a

-				+ "5716805244733524432"

-				+ a

-				+ "6651831766232613385"

-				+ a

-				+ "-2646266171513414671"

-				+ a

-				+ "-9184734908069189112"

-				+ a

-				+ "8411451797653218329"

-				+ a

-				+ "-5644815294965228440"

-				+ a

-				+ "3406219370354298560"

-				+ a

-				+ "7189061357352189294"

-				+ a

-				+ "3854704827508586027"

-				+ a

-				+ "5195183761365797242"

-				+ a

-				+ "-857975408992204527"

-				+ a

-				+ "-215081397961025980"

-				+ a

-				+ "5541172185389004673"

-				+ a

-				+ "-2158931240515443609"

-				+ a

-				+ "-2707030040377390590"

-				+ a

-				+ "-4951339429533825757"

-				+ a

-				+ "6860115872619611899"

-				+ a

-				+ "-6977159187553839010"

-				+ a

-				+ "-6588129350991115691"

-				+ a

-				+ "7460014721369155308"

-				+ a

-				+ "8244516680674177886"

-				+ a

-				+ "2718524895786720527"

-				+ a

-				+ "5083129452729634032"

-				+ a

-				+ "-3088884557649270463"

-				+ a

-				+ "-2890867246580149294"

-				+ a

-				+ "4144736866258125616"

-				+ a

-				+ "-4515220895037178019"

-				+ a

-				+ "-3081548925238092023"

-				+ a

-				+ "7059458545451479138"

-				+ a

-				+ "-7629100745456283399"

-				+ a

-				+ "-4677223535664272821"

-				+ a

-				+ "-160196749568088848"

-				+ a

-				+ "2335351286911662720"

-				+ a

-				+ "8269863132468702887"

-				+ a

-				+ "675696569525121547"

-				+ a

-				+ "4220297877278479844"

-				+ a

-				+ "-1941703945306008194"

-				+ a

-				+ "-8085555609744465156"

-				+ a

-				+ "3320638279003727635"

-				+ a

-				+ "-1454534490754134119"

-				+ a

-				+ "-9070853339029164267"

-				+ a

-				+ "1066514592317218749"

-				+ a

-				+ "754035260480022143"

-				+ a

-				+ "-8442330812214212858"

-				+ a

-				+ "733223385524053986"

-				+ a

-				+ "-6928812214869123533"

-				+ a

-				+ "9175782745023974027"

-				+ a

-				+ "7709129652756409574"

-				+ a

-				+ "6446771461470981092"

-				+ a

-				+ "-4669040159691830357"

-				+ a

-				+ "4940949800684628762"

-				+ a

-				+ "3596568245401674296"

-				+ a

-				+ "-2934469607945168128"

-				+ a

-				+ "-2832159018707221002"

-				+ a

-				+ "-5963608707147616718"

-				+ a

-				+ "1136173520603479232"

-				+ a

-				+ "-5948152900752711299"

-				+ a

-				+ "2776238780712347625"

-				+ a

-				+ "3545391441816397950"

-				+ a

-				+ "-7712627837337478268"

-				+ a

-				+ "-6100017580852682616"

-				+ a

-				+ "800507691066680798"

-				+ a

-				+ "-4905853621444866613"

-				+ a

-				+ "4650896174010534735"

-				+ a

-				+ "-6291383217484249423"

-				+ a

-				+ "8530758450418989618"

-				+ a

-				+ "1420593270340448651"

-				+ a

-				+ "-8695607674634208463"

-				+ a

-				+ "-8917496092665137043"

-				+ a

-				+ "-6875691519537749563"

-				+ a

-				+ "2877196668554762069"

-				+ a

-				+ "2403578486267609340"

-				+ a

-				+ "-3947791298286507886"

-				+ a

-				+ "388275381527242877"

-				+ a

-				+ "-5220091270772812957"

-				+ a

-				+ "-2278940210913219127"

-				+ a

-				+ "-7080887395332308771"

-				+ a

-				+ "1445237338423510467"

-				+ a

-				+ "-8261792903727334638"

-				+ a

-				+ "3403233544842424945"

-				+ a

-				+ "-2595302965412930961"

-				+ a

-				+ "8782074601683241220"

-				+ a

-				+ "-9116459070810315419"

-				+ a

-				+ "-6949872996379093995"

-				+ a

-				+ "2211552796472936012"

-				+ a

-				+ "5042322673897575985"

-				+ a

-				+ "-8335938585661637757"

-				+ a

-				+ "-7488365451307650921"

-				+ a

-				+ "1807439259410769371"

-				+ a

-				+ "7387376844333691455"

-				+ a

-				+ "8698689454771362101"

-				+ a

-				+ "5434385237440762654"

-				+ a

-				+ "-3923006091697187991"

-				+ a

-				+ "2928453024753164200"

-				+ a

-				+ "3465006396035071337"

-				+ a

-				+ "-7192016247724926826"

-				+ a

-				+ "-746984709422884186"

-				+ a

-				+ "8483037580095556329"

-				+ a

-				+ "3247327325691153073"

-				+ a

-				+ "8704618608551355438"

-				+ a

-				+ "-1948688537689292507"

-				+ a

-				+ "-9085664162222307582"

-				+ a

-				+ "6734570649656350661"

-				+ a

-				+ "-8770073734572497960"

-				+ a

-				+ "-9194731727659180320"

-				+ a

-				+ "-9160987442754332167"

-				+ a

-				+ "-6991099690895060995"

-				+ a

-				+ "-6411220257744657204"

-				+ a

-				+ "-3347728207653992781"

-				+ a

-				+ "-4666630998429640361"

-				+ a

-				+ "988627827426911191"

-				+ a

-				+ "517132412672358405"

-				+ a

-				+ "6780424254067588829"

-				+ a

-				+ "3484025531596887721"

-				+ a

-				+ "-8172604109698856585"

-				+ a

-				+ "-2434263978006321470"

-				+ a

-				+ "146206282000042370"

-				+ a

-				+ "1802241808220625920"

-				+ a

-				+ "6556915806108437794"

-				+ a

-				+ "139780490839209735"

-				+ a

-				+ "-5013022352242524885"

-				+ a

-				+ "109564557104052338"

-				+ a

-				+ "-2980042105416846910"

-				+ a

-				+ "-4850914409397469159"

-				+ a

-				+ "5364612497576897859"

-				+ a

-				+ "-9061350671329928041"

-				+ a

-				+ "-6694502193330216603"

-				+ a

-				+ "1568047468602969862"

-				+ a

-				+ "-4410706216611388772"

-				+ a

-				+ "-3504312536846858484"

-				+ a

-				+ "-5151996445415166530"

-				+ a

-				+ "-2279913604249920741"

-				+ a

-				+ "-4929800644857338903"

-				+ a

-				+ "2421285177127780595"

-				+ a

-				+ "5028242344376950947"

-				+ a

-				+ "8235055502228982379"

-				+ a

-				+ "9200641443671019073"

-				+ a

-				+ "4257670525276564081"

-				+ a

-				+ "4463718135204600973"

-				+ a

-				+ "-2782591591092238769"

-				+ a

-				+ "9196602820397399459"

-				+ a

-				+ "5815010940885079855"

-				+ a

-				+ "-4359421796989530853"

-				+ a

-				+ "-4354454442498564127"

-				+ a

-				+ "2440722763518477676"

-				+ a

-				+ "-7965784401936254246"

-				+ a

-				+ "1589047364720240527"

-				+ a

-				+ "1345659788105434239"

-				+ a

-				+ "7856291551886686434"

-				+ a

-				+ "6831829224225367460"

-				+ a

-				+ "4725110785524153167"

-				+ a

-				+ "4800747046490817102"

-				+ a

-				+ "1742363762860786605"

-				+ a

-				+ "722408345131520192"

-				+ a

-				+ "-7928892214208671131"

-				+ a

-				+ "6747954079596469429"

-				+ a

-				+ "4939374870942765656"

-				+ a

-				+ "-7793510012239185175"

-				+ a

-				+ "-5128456840029167104"

-				+ a

-				+ "3999741029130023134"

-				+ a

-				+ "-9003958273268397355"

-				+ a

-				+ "9020728301986288860"

-				+ a

-				+ "-6439212985914569999"

-				+ a

-				+ "1007144509809257016"

-				+ a

-				+ "-3492980418894752522"

-				+ a

-				+ "3506776460958432729"

-				+ a

-				+ "6030604355915164207"

-				+ a

-				+ "8792783479452649207"

-				+ a

-				+ "-2684601371150339339"

-				+ a

-				+ "-1296675361422454746"

-				+ a

-				+ "1767641169122703699"

-				+ a

-				+ "-3281682852775613293"

-				+ a

-				+ "6004863460452231661"

-				+ a

-				+ "7620904616562851212"

-				+ a

-				+ "-4558711566239662307"

-				+ a

-				+ "-4756950387810939835"

-				+ a

-				+ "-2497931619996157346"

-				+ a

-				+ "-8869072948826981416"

-				+ a

-				+ "3909138683430178797"

-				+ a

-				+ "-5193643777658890355"

-				+ a

-				+ "1084432834453924013"

-				+ a

-				+ "-7407336904518008485"

-				+ a

-				+ "9127734740127325770"

-				+ a

-				+ "-5184826564961811282"

-				+ a

-				+ "1822850980453127585"

-				+ a

-				+ "-2863856280020872853"

-				+ a

-				+ "-4096478657939760289"

-				+ a

-				+ "235009772142633776"

-				+ a

-				+ "-5165419990517586201"

-				+ a

-				+ "2663587645595195616"

-				+ a

-				+ "7408192754011596665"

-				+ a

-				+ "7504135869731143774"

-				+ a

-				+ "-6205578335667667056"

-				+ a

-				+ "-6946719039592539497"

-				+ a

-				+ "1360727412534317706"

-				+ a

-				+ "-3495358934924862522"

-				+ a

-				+ "3200599730943527054"

-				+ a

-				+ "-2986153131924886541"

-				+ a

-				+ "-364225976897164119"

-				+ a

-				+ "1619039194664479676"

-				+ a

-				+ "-421740377479575238"

-				+ a

-				+ "3381017218293891415"

-				+ a

-				+ "2803787595269482128"

-				+ a

-				+ "-7138278169131421226"

-				+ a

-				+ "-3851028397957722159"

-				+ a

-				+ "-6845731707997533523"

-				+ a

-				+ "4304247233651425821"

-				+ a

-				+ "-3453169481311494287"

-				+ a

-				+ "-6648899435196339726"

-				+ a

-				+ "6243068346988978146"

-				+ a

-				+ "-4687304487053815087"

-				+ a

-				+ "4500392581972691499"

-				+ a

-				+ "3194105698562551073"

-				+ a

-				+ "1302928061966663015"

-				+ a

-				+ "899861116730412628"

-				+ a

-				+ "8071794113442656359"

-				+ a

-				+ "-4736053881059782840"

-				+ a

-				+ "-8833778113132867406"

-				+ a

-				+ "8459559140024462575"

-				+ a

-				+ "-3331202166940103220"

-				+ a

-				+ "3559576239267745585"

-				+ a

-				+ "-1438823586080975685"

-				+ a

-				+ "7598377555370318352"

-				+ a

-				+ "-9073544075373002810"

-				+ a

-				+ "3791329947068574989"

-				+ a

-				+ "5244713667648536191"

-				+ a

-				+ "2355757732641305802"

-				+ a

-				+ "-5774713322130818556"

-				+ a

-				+ "-7825478554949913872"

-				+ a

-				+ "-6598527612334048895"

-				+ a

-				+ "-756930092356886446"

-				+ a

-				+ "-8351794287745316104"

-				+ a

-				+ "-819962835473789614"

-				+ a

-				+ "-8521881550004177852"

-				+ a

-				+ "-9034627345103084413"

-				+ a

-				+ "-9047810911031283622"

-				+ a

-				+ "8575019169603285903"

-				+ a

-				+ "-4216585731513549614"

-				+ a

-				+ "-6606318378154025381"

-				+ a

-				+ "-8442134414137607259"

-				+ a

-				+ "1063742281525256296"

-				+ a

-				+ "2444862909868862776"

-				+ a

-				+ "-5865660505052921732"

-				+ a

-				+ "-1477161071089416551"

-				+ a

-				+ "-5821089796972455295"

-				+ a

-				+ "7973943363313051655"

-				+ a

-				+ "-8788015932375833684"

-				+ a

-				+ "-5800724202257631305"

-				+ a

-				+ "1901020626499030241"

-				+ a

-				+ "-6420649857342151467"

-				+ a

-				+ "-3754478878428518571"

-				+ a

-				+ "7780134533194962632"

-				+ a

-				+ "-6349730169284317324"

-				+ a

-				+ "8185432331423452346"

-				+ a

-				+ "-483163739776409083"

-				+ a

-				+ "-6146548957177106089"

-				+ a

-				+ "8334243443022708620"

-				+ a

-				+ "-8647638936276375852"

-				+ a

-				+ "1787867012905935343"

-				+ a

-				+ "8531495137548914482"

-				+ a

-				+ "3196305294345619548"

-				+ a

-				+ "-4009224549994146621"

-				+ a

-				+ "-3981545981798777495"

-				+ a

-				+ "1308124786866222829"

-				+ a

-				+ "2903439537170119548"

-				+ a

-				+ "-2579953690819322067"

-				+ a

-				+ "6038349128654123884"

-				+ a

-				+ "-2684171378564087202"

-				+ a

-				+ "9182995811385104744"

-				+ a

-				+ "7065587761529508411"

-				+ a

-				+ "-498812826483483625"

-				+ a

-				+ "-5919464316541484254"

-				+ a

-				+ "-6350970464071964159"

-				+ a

-				+ "8989432486083340826"

-				+ a

-				+ "-1185044272771012307"

-				+ a

-				+ "-556467658138175721"

-				+ a

-				+ "8750970768269411594"

-				+ a

-				+ "-9027438176155103364"

-				+ a

-				+ "5507419764918531730"

-				+ a

-				+ "-5055610290122339104"

-				+ a

-				+ "-8292368412672038228"

-				+ a

-				+ "5304474258286748692"

-				+ a

-				+ "-5256497898472412463"

-				+ a

-				+ "7095026451041417317"

-				+ a

-				+ "-6807751467976201230"

-				+ a

-				+ "3717039143574626077"

-				+ a

-				+ "-4591247941372074087"

-				+ a

-				+ "7608271608948774736"

-				+ a

-				+ "1424496362220315470"

-				+ a

-				+ "-5423957027502409260"

-				+ a

-				+ "-4141017180658038213"

-				+ a

-				+ "-1870578015989455472"

-				+ a

-				+ "8587352705951710482"

-				+ a

-				+ "-9177081453403018247"

-				+ a

-				+ "-8445363706999997394"

-				+ a

-				+ "4173067159251534298"

-				+ a

-				+ "1437350657420775416"

-				+ a

-				+ "-1070000499192580013"

-				+ a

-				+ "-111939158234983540"

-				+ a

-				+ "1952427412828668451"

-				+ a

-				+ "6985639293418849691"

-				+ a

-				+ "-9183787890558711511"

-				+ a

-				+ "6673115431425147794"

-				+ a

-				+ "-2413052916560816089"

-				+ a

-				+ "-7968164544488828165"

-				+ a

-				+ "7133137662488255689"

-				+ a

-				+ "6150278420864343332"

-				+ a

-				+ "-1063157585506220570"

-				+ a

-				+ "-766650864987700995"

-				+ a

-				+ "7195254792685191684"

-				+ a

-				+ "-1435582581928370362"

-				+ a

-				+ "-2879523426919800287"

-				+ a

-				+ "4212969420069127401"

-				+ a

-				+ "3255446824860132528"

-				+ a

-				+ "-5925995542425069660"

-				+ a

-				+ "-2097003946182267679"

-				+ a

-				+ "-7852081866181859094"

-				+ a

-				+ "616624848325028389"

-				+ a

-				+ "1080075504201798411"

-				+ a

-				+ "-15762287547911183"

-				+ a

-				+ "7442243109459838098"

-				+ a

-				+ "-428612288525247039"

-				+ a

-				+ "1508772000781295085"

-				+ a

-				+ "-4857870162506741921"

-				+ a

-				+ "9005502861598836051"

-				+ a

-				+ "-3531083866111316636"

-				+ a

-				+ "-1750623028322659102"

-				+ a

-				+ "-7644402612402749953"

-				+ a

-				+ "8089772461982140167"

-				+ a

-				+ "6614561254907131380"

-				+ a

-				+ "-8094512546040756959"

-				+ a

-				+ "2692758151792462312"

-				+ a

-				+ "-1141724711746061208"

-				+ a

-				+ "-5976459569932427301"

-				+ a

-				+ "-1529656033969840885"

-				+ a

-				+ "-6966828380750242572"

-				+ a

-				+ "8073327820400846744"

-				+ a

-				+ "7039045055893670788"

-				+ a

-				+ "-2742325506132595551"

-				+ a

-				+ "6150331224641314116"

-				+ a

-				+ "-1787951516818644325"

-				+ a

-				+ "-4847277929262330399"

-				+ a

-				+ "-4469114800270543351"

-				+ a

-				+ "-6918217605381346886"

-				+ a

-				+ "-4170169488436643879"

-				+ a

-				+ "4552357957041798376"

-				+ a

-				+ "-4709066557073879539"

-				+ a

-				+ "-6396627091976196482"

-				+ a

-				+ "-9130722335546570083"

-				+ a

-				+ "-4398812371995243503"

-				+ a

-				+ "5899533274459802779"

-				+ a

-				+ "-69473498414118534"

-				+ a

-				+ "-1197357345743482984"

-				+ a

-				+ "2435770297013385434"

-				+ a

-				+ "-1429592922048557754"

-				+ a

-				+ "-1013233244699263266"

-				+ a

-				+ "4712067073798837598"

-				+ a

-				+ "7770668071291569987"

-				+ a

-				+ "7401986834930663363"

-				+ a

-				+ "-6830107552843383396"

-				+ a

-				+ "-8568011126097879833"

-				+ a

-				+ "-7859707543166153133"

-				+ a

-				+ "7704246285605406829"

-				+ a

-				+ "-2925914507483401235"

-				+ a

-				+ "-7312680556325273072"

-				+ a

-				+ "4120576209264301201"

-				+ a

-				+ "-3607011601435889470"

-				+ a

-				+ "-8712827169771424822"

-				+ a

-				+ "-7796887407736212456"

-				+ a

-				+ "164872087571561611"

-				+ a

-				+ "1941589419069581284"

-				+ a

-				+ "8451379006006945651"

-				+ a

-				+ "9098542511902588451"

-				+ a

-				+ "6941301505244463442"

-				+ a

-				+ "-2236870745682619623"

-				+ a

-				+ "8915992129216321004"

-				+ a

-				+ "5388925123168690106"

-				+ a

-				+ "6227343469909213948"

-				+ a

-				+ "-2498697716208701876"

-				+ a

-				+ "2663270930973456251"

-				+ a

-				+ "-2117851629199166135"

-				+ a

-				+ "1465928199326458657"

-				+ a

-				+ "-4140932863973360503"

-				+ a

-				+ "2382104909996808748"

-				+ a

-				+ "2691169764757156000"

-				+ a

-				+ "-6927783708096335521"

-				+ a

-				+ "5665227142251137157"

-				+ a

-				+ "3990639158350403149"

-				+ a

-				+ "8344037316052722035"

-				+ a

-				+ "-466088682998749225"

-				+ a

-				+ "-1184998401803242221"

-				+ a

-				+ "-1826973971920071950"

-				+ a

-				+ "-2978143448452379174"

-				+ a

-				+ "5489451572766734253"

-				+ a

-				+ "3982536154060365232"

-				+ a

-				+ "-2725897582008329614"

-				+ a

-				+ "-1763022655025997102"

-				+ a

-				+ "-4663879336851888757"

-				+ a

-				+ "-7763663985759369480"

-				+ a

-				+ "-5171814121380446488"

-				+ a

-				+ "7023992321466746041"

-				+ a

-				+ "8496338094272787998"

-				+ a

-				+ "1649982471059595054"

-				+ a

-				+ "-7874271973868958029"

-				+ a

-				+ "-6462289143988000810"

-				+ a

-				+ "2104206826225724056"

-				+ a

-				+ "3956743142620270265"

-				+ a

-				+ "8121240854592968950"

-				+ a

-				+ "-7756522014486882097"

-				+ a

-				+ "3329055383033924909"

-				+ a

-				+ "8043367292746471585"

-				+ a

-				+ "-259492411881471464"

-				+ a

-				+ "-4611399437472166608"

-				+ a

-				+ "-5715952258670801514"

-				+ a

-				+ "8139447008051858198"

-				+ a

-				+ "6828556815701928006"

-				+ a

-				+ "-8950316752207621141"

-				+ a

-				+ "-2494776080654799471"

-				+ a

-				+ "-5311611842114224151"

-				+ a

-				+ "-5274517370195306516"

-				+ a

-				+ "6957748572905774547"

-				+ a

-				+ "8619833938161401182"

-				+ a

-				+ "-8098969501978366703"

-				+ a

-				+ "7498403252053725248"

-				+ a

-				+ "-2962379495807183329"

-				+ a

-				+ "1679495359526004803"

-				+ a

-				+ "910952023144858920"

-				+ a

-				+ "-5683679598360504393"

-				+ a

-				+ "4180886423018064622"

-				+ a

-				+ "-1895749802147475190"

-				+ a

-				+ "-4261070201435052052"

-				+ a

-				+ "-7495472397254860658"

-				+ a

-				+ "-299958970563615299"

-				+ a

-				+ "-9181751118046314882"

-				+ a

-				+ "3063144621650993854"

-				+ a

-				+ "4581200622692318530"

-				+ a

-				+ "-7445330906132712462"

-				+ a

-				+ "-3407411028378675214"

-				+ a

-				+ "-1004304845850312410"

-				+ a

-				+ "2808995768722924824"

-				+ a

-				+ "-7419835825599250603"

-				+ a

-				+ "-6807925616761556551"

-				+ a

-				+ "1936216879258578253"

-				+ a

-				+ "-6348070543052994410"

-				+ a

-				+ "1614786878786713233"

-				+ a

-				+ "-5654559563900278353"

-				+ a

-				+ "5820129333800018049"

-				+ a

-				+ "5154364084337309192"

-				+ a

-				+ "-3464890808271116872"

-				+ a

-				+ "-4318936345310964818"

-				+ a

-				+ "-5626360026645142603"

-				+ a

-				+ "1293650924267343356"

-				+ a

-				+ "2471203500047040188"

-				+ a

-				+ "-712553739691690470"

-				+ a

-				+ "9167570520793817086"

-				+ a

-				+ "5013905130782787526"

-				+ a

-				+ "2777832819171815927"

-				+ a

-				+ "4135658959316588118"

-				+ a

-				+ "-2228943220984283369"

-				+ a

-				+ "674121904757229053"

-				+ a

-				+ "-3361067987947841884"

-				+ a

-				+ "7064783233989236045"

-				+ a

-				+ "-5391381845337433122"

-				+ a

-				+ "-4203419284375340292"

-				+ a

-				+ "3231478719940633443"

-				+ a

-				+ "-6595059738477077526"

-				+ a

-				+ "5613738046953226965"

-				+ a

-				+ "-197825565075612318"

-				+ a

-				+ "-5941132321697548615"

-				+ a

-				+ "-5022645559955105889"

-				+ a

-				+ "2753333873025761953"

-				+ a

-				+ "3497927560388209810"

-				+ a

-				+ "3640569866216107917"

-				+ a

-				+ "2764752341909112546"

-				+ a

-				+ "-3378489093995131761"

-				+ a

-				+ "7719703463309362484"

-				+ a

-				+ "8643252989717845421"

-				+ a

-				+ "4133119366303995308"

-				+ a

-				+ "-2991525574328818422"

-				+ a

-				+ "-7462382354512214606"

-				+ a

-				+ "-6717862793825856953"

-				+ a

-				+ "-8546283547873015304"

-				+ a

-				+ "-4444395436889676762"

-				+ a

-				+ "-6794705649725291844"

-				+ a

-				+ "1377850869896378480"

-				+ a

-				+ "-8597944961814495158"

-				+ a

-				+ "7420018464904971801"

-				+ a

-				+ "-6568048747782992956"

-				+ a

-				+ "-2694483410167439967"

-				+ a

-				+ "-4025939108850206683"

-				+ a

-				+ "3886103463501532092"

-				+ a

-				+ "5252778460490334083"

-				+ a

-				+ "772493505011565108"

-				+ a

-				+ "4355897471393001620"

-				+ a

-				+ "-7052733073642657010"

-				+ a

-				+ "5904487723960627314"

-				+ a

-				+ "-8146905456250566165"

-				+ a

-				+ "-8272241648972884830"

-				+ a

-				+ "-7934734311001305167"

-				+ a

-				+ "2010392804516600146"

-				+ a

-				+ "7874061753723159658"

-				+ a

-				+ "1059646048071497698"

-				+ a

-				+ "-5622128739721761941"

-				+ a

-				+ "-8033788182892224091"

-				+ a

-				+ "1681547684630988216"

-				+ a

-				+ "-8578467634091990297"

-				+ a

-				+ "2189697668985640615"

-				+ a

-				+ "-9057682179067006414"

-				+ a

-				+ "-1356089288923443518"

-				+ a

-				+ "6251560713478074317"

-				+ a

-				+ "-7440046837958393615"

-				+ a

-				+ "1407158692292155781"

-				+ a

-				+ "3638531630121371096"

-				+ a

-				+ "-5051222424910285137"

-				+ a

-				+ "8617692886982373758"

-				+ a

-				+ "-771846938902200212"

-				+ a

-				+ "9072050023807745838"

-				+ a

-				+ "8787982956208638510"

-				+ a

-				+ "-1956190184658266206"

-				+ a

-				+ "-2862239626779971973"

-				+ a

-				+ "1831224464858060125"

-				+ a

-				+ "363934811746518001"

-				+ a

-				+ "376467262166035287"

-				+ a

-				+ "6770131145159335561"

-				+ a

-				+ "-2135831974748139041"

-				+ a

-				+ "5965177247077212447"

-				+ a

-				+ "-1053074797557834307"

-				+ a

-				+ "3894274936040760113"

-				+ a

-				+ "-701226959499860586"

-				+ a

-				+ "-4971357087908581658"

-				+ a

-				+ "-2510796846816028268"

-				+ a

-				+ "-2763699793663141038"

-				+ a

-				+ "-2193985648512765627"

-				+ a

-				+ "-3800478500522195208"

-				+ a

-				+ "7210248384674878403"

-				+ a

-				+ "-9050763110164892016"

-				+ a

-				+ "1440746149807037973"

-				+ a

-				+ "-1805372186674750455"

-				+ a

-				+ "-5335339145116455979"

-				+ a

-				+ "-7968313964743603760"

-				+ a

-				+ "1610185178406045202"

-				+ a

-				+ "2860222084584494674"

-				+ a

-				+ "5303527859614604407"

-				+ a

-				+ "-7562546697716829248"

-				+ a

-				+ "6597943858596228268"

-				+ a

-				+ "-8907697576023998447"

-				+ a

-				+ "-3575500776925217796"

-				+ a

-				+ "-7958636610358587060"

-				+ a

-				+ "-8107266756400855241"

-				+ a

-				+ "-4700514041937280505"

-				+ a

-				+ "5877546935738010841"

-				+ a

-				+ "-4157679336113634774"

-				+ a

-				+ "-866169437012159125"

-				+ a

-				+ "-519149397509148680"

-				+ a

-				+ "-1239516179709190615"

-				+ a

-				+ "-3591275203580560048"

-				+ a

-				+ "-5416867314018121244"

-				+ a

-				+ "2011882474728252719"

-				+ a

-				+ "-1249066890309108695"

-				+ a

-				+ "795894744629523832"

-				+ a

-				+ "1870033377415365283"

-				+ a

-				+ "7931444137659674871"

-				+ a

-				+ "-1613624103293423427"

-				+ a

-				+ "-4477239753922589277"

-				+ a

-				+ "2789326393421386123"

-				+ a

-				+ "-3956705666753899741"

-				+ a

-				+ "6952758292831343594"

-				+ a

-				+ "-9124954842584228461"

-				+ a

-				+ "-8913383325917719323"

-				+ a

-				+ "-1530517842030475129"

-				+ a

-				+ "4580517046080662618"

-				+ a

-				+ "6020543604287522383"

-				+ a

-				+ "-8313848571134926884"

-				+ a

-				+ "4378514641236109180"

-				+ a

-				+ "-1461513090215862309"

-				+ a

-				+ "8409570101072434851"

-				+ a

-				+ "-1581636631324609790"

-				+ a

-				+ "4985058713276173408"

-				+ a

-				+ "-3666677716973341728"

-				+ a

-				+ "-1138120895461130339"

-				+ a

-				+ "-8647293314984524598"

-				+ a

-				+ "-6242226372265798124"

-				+ a

-				+ "-4195674850310824450"

-				+ a

-				+ "-8025745418184206063"

-				+ a

-				+ "9166961009801828875"

-				+ a

-				+ "5645574108510892668"

-				+ a

-				+ "-6513490803768630160"

-				+ a

-				+ "419860506409678358"

-				+ a

-				+ "4628472513534946947"

-				+ a

-				+ "-6125375997686482174"

-				+ a

-				+ "8713691847195168404"

-				+ a

-				+ "79233487798602119"

-				+ a

-				+ "9030439487046511954"

-				+ a

-				+ "-3335074557944176364"

-				+ a

-				+ "-9112536869351283348"

-				+ a

-				+ "5506739399048321668"

-				+ a

-				+ "4391535639955683707"

-				+ a

-				+ "1182096354322836130"

-				+ a

-				+ "-4189716190893374434"

-				+ a

-				+ "-8108075268671436562"

-				+ a

-				+ "907315093125629542"

-				+ a

-				+ "5099587814404079265"

-				+ a

-				+ "7255914369947154549"

-				+ a

-				+ "-8497772614830644754"

-				+ a

-				+ "-8980458147983441823"

-				+ a

-				+ "4355717191891370378"

-				+ a

-				+ "5163662158015050589"

-				+ a

-				+ "642450610174575726"

-				+ a

-				+ "2512022470863144218"

-				+ a

-				+ "5867768034875490779"

-				+ a

-				+ "7009699371371301226"

-				+ a

-				+ "-4678350211651627618"

-				+ a

-				+ "3171964376763313190"

-				+ a

-				+ "-2541677689483086699"

-				+ a

-				+ "6868929630897619794"

-				+ a

-				+ "8896393380856350065"

-				+ a

-				+ "3256413860684177278"

-				+ a

-				+ "7947404321164296636"

-				+ a

-				+ "-7136357900952191378"

-				+ a

-				+ "-1787874428808322275"

-				+ a

-				+ "-1909293774457715715"

-				+ a

-				+ "-962763231242985253"

-				+ a

-				+ "3144911297249975614"

-				+ a

-				+ "1635293553987010975"

-				+ a

-				+ "-7409000498997087773"

-				+ a

-				+ "7471404851632915837"

-				+ a

-				+ "-221788501736437790"

-				+ a

-				+ "-4834067343892173771"

-				+ a

-				+ "1843086477154155861"

-				+ a

-				+ "7762358378021411765"

-				+ a

-				+ "-7883987165262218079"

-				+ a

-				+ "-4832545032610927903"

-				+ a

-				+ "-7856151567747625254"

-				+ a

-				+ "8112294323392812183"

-				+ a

-				+ "2147457973446013030"

-				+ a

-				+ "3162605413913990893"

-				+ a

-				+ "-6241001175762465825"

-				+ a

-				+ "-4153935579094924612"

-				+ a

-				+ "-6836084797928767682"

-				+ a

-				+ "-7922740998765985950"

-				+ a

-				+ "-8286733228449099979"

-				+ a

-				+ "165474130709530306"

-				+ a

-				+ "8981835088952978651"

-				+ a

-				+ "6870670037465619855"

-				+ a

-				+ "8496640850198065550"

-				+ a

-				+ "9204058999899671498"

-				+ a

-				+ "-4141186845058550508"

-				+ a

-				+ "1500317335225211272"

-				+ a

-				+ "7376705741729030659"

-				+ a

-				+ "-2733827060712336392"

-				+ a

-				+ "-736100079787053981"

-				+ a

-				+ "-7374437899094417756"

-				+ a

-				+ "2998950665528577681"

-				+ a

-				+ "5206106823411946743"

-				+ a

-				+ "-5760503793238003611"

-				+ a

-				+ "-8077682605801914369"

-				+ a

-				+ "4974691974637362327"

-				+ a

-				+ "-5520822721479891854"

-				+ a

-				+ "-97385634439813026"

-				+ a

-				+ "4751027761590349046"

-				+ a

-				+ "-554734623826398887"

-				+ a

-				+ "4261232907331630236"

-				+ a

-				+ "-3877904463068326478"

-				+ a

-				+ "-1200761955800992339"

-				+ a

-				+ "8689324788599032448"

-				+ a

-				+ "-7186721122544475991"

-				+ a

-				+ "4581101067086820461"

-				+ a

-				+ "-3117700534889439348"

-				+ a

-				+ "5343477886491928216"

-				+ a

-				+ "-7604478837149955757"

-				+ a

-				+ "-6037273215371695172"

-				+ a

-				+ "5165744799859542462"

-				+ a

-				+ "-374447668056195695"

-				+ a

-				+ "16388724788412758"

-				+ a

-				+ "8253460125259419250"

-				+ a

-				+ "-6569214172912295503"

-				+ a

-				+ "-8717094298082195137"

-				+ a

-				+ "-5730233168237508109"

-				+ a

-				+ "-908590889278215292"

-				+ a

-				+ "-7226489171009378408"

-				+ a

-				+ "7125119707932286426"

-				+ a

-				+ "-4094070088707645583"

-				+ a

-				+ "-6063919202293485939"

-				+ a

-				+ "-7416198762070326548"

-				+ a

-				+ "8565586356009308799"

-				+ a

-				+ "2826160646987732376"

-				+ a

-				+ "5938653928721944651"

-				+ a

-				+ "-5936170242353617177"

-				+ a

-				+ "6944772947584989612"

-				+ a

-				+ "2674760137042854964"

-				+ a

-				+ "8198473816250439456"

-				+ a

-				+ "6075238477456639751"

-				+ a

-				+ "-1410177679316080184"

-				+ a

-				+ "-8679553113740033128"

-				+ a

-				+ "-2704524222108620910"

-				+ a

-				+ "-1662683524802684015"

-				+ a

-				+ "1358495828717983129"

-				+ a

-				+ "-603809051081115368"

-				+ a

-				+ "5201733909681005771"

-				+ a

-				+ "8385475040900806156"

-				+ a

-				+ "-5830383452713093941"

-				+ a

-				+ "-1699989529083694195"

-				+ a

-				+ "-4421200757131697895"

-				+ a

-				+ "-5629708279370816062"

-				+ a

-				+ "-3227544077375947664"

-				+ a

-				+ "-3587576668227512363"

-				+ a

-				+ "-7705344311177224593"

-				+ a

-				+ "-3084396123927745470"

-				+ a

-				+ "-2813967685312600197"

-				+ a

-				+ "3998873278639758673"

-				+ a

-				+ "3665225356353330915"

-				+ a

-				+ "-6382725419459673632"

-				+ a

-				+ "4881391723445800772"

-				+ a

-				+ "-393405380376257946"

-				+ a

-				+ "218287968678872366"

-				+ a

-				+ "357883437490793012"

-				+ a

-				+ "2169817681545352199"

-				+ a

-				+ "3761796379613896956"

-				+ a

-				+ "-2937543986411027153"

-				+ a

-				+ "-6568842530406442857"

-				+ a

-				+ "-4907325818318760604"

-				+ a

-				+ "4998687660767128322"

-				+ a

-				+ "-4122792092373408664"

-				+ a

-				+ "6223196777924568233"

-				+ a

-				+ "-5609721664606045472"

-				+ a

-				+ "6191840459786065640"

-				+ a

-				+ "4672152598398585471"

-				+ a

-				+ "-8081723278183199026"

-				+ a

-				+ "7257122800644000867"

-				+ a

-				+ "2696542281977394211"

-				+ a

-				+ "7821435047306895806"

-				+ a

-				+ "4458924087043593388"

-				+ a

-				+ "-4555258326668076359"

-				+ a

-				+ "1922071752751161260"

-				+ a

-				+ "6415041615191639956"

-				+ a

-				+ "4636581324506420654"

-				+ a

-				+ "-7278699817870051311"

-				+ a

-				+ "-7708360672347361150"

-				+ a

-				+ "1324828425148828946"

-				+ a

-				+ "-1785818096515512444"

-				+ a

-				+ "-5853032200056389503"

-				+ a

-				+ "8864019132592092195"

-				+ a

-				+ "7790064823061661551"

-				+ a

-				+ "1063300198569212577"

-				+ a

-				+ "7792106853609615999"

-				+ a

-				+ "-2045730603260331241"

-				+ a

-				+ "3788187586299179141"

-				+ a

-				+ "3441764699056418492"

-				+ a

-				+ "-7493825059720259735"

-				+ a

-				+ "-9197475196368341659"

-				+ a

-				+ "-8031729420558330031"

-				+ a

-				+ "-3035156294002477233"

-				+ a

-				+ "4810378928183933951"

-				+ a

-				+ "2307408210848947996"

-				+ a

-				+ "8129528756745183350"

-				+ a

-				+ "8297578512579342363"

-				+ a

-				+ "-4628336986701268764"

-				+ a

-				+ "4220639206593625292"

-				+ a

-				+ "8036151421763933883"

-				+ a

-				+ "8457782822542016930"

-				+ a

-				+ "1721635144200702752"

-				+ a

-				+ "-528532370838804470"

-				+ a

-				+ "-1907567658637800567"

-				+ a

-				+ "-2962749235290753620"

-				+ a

-				+ "-1709365963340874592"

-				+ a

-				+ "-7934050979015234576"

-				+ a

-				+ "-5467967731356776594"

-				+ a

-				+ "2436549407640329155"

-				+ a

-				+ "-4755487807525217099"

-				+ a

-				+ "3348895866742813082"

-				+ a

-				+ "1293186513277487772"

-				+ a

-				+ "147333763390209462"

-				+ a

-				+ "-4154994029739800431"

-				+ a

-				+ "-5606269404652356438"

-				+ a

-				+ "-6504788229966127766"

-				+ a

-				+ "1101930766158013466"

-				+ a

-				+ "1920037389890864077"

-				+ a

-				+ "-596760935114999868"

-				+ a

-				+ "6652161054891684050"

-				+ a

-				+ "7932997037661416132"

-				+ a

-				+ "451214340570898662"

-				+ a

-				+ "907504879033372947"

-				+ a

-				+ "-5540048174294495502"

-				+ a

-				+ "4874027944884790608"

-				+ a

-				+ "7194019250764315067"

-				+ a

-				+ "-1180340877722081598"

-				+ a

-				+ "-6705098494586119285"

-				+ a

-				+ "-4775840841600560227"

-				+ a

-				+ "-7568294098571282415"

-				+ a

-				+ "3194829375991497604"

-				+ a

-				+ "-949586488707947387"

-				+ a

-				+ "-7119156483783612849"

-				+ a

-				+ "-5321851869428093425"

-				+ a

-				+ "8057451224656603917"

-				+ a

-				+ "9025470315945902697"

-				+ a

-				+ "-4120953438790823092"

-				+ a

-				+ "3479675544630836930"

-				+ a

-				+ "-2588890758738643305"

-				+ a

-				+ "-2446135786479384347"

-				+ a

-				+ "6570933589019671104"

-				+ a

-				+ "-7460587847828646246"

-				+ a

-				+ "8117951627109794142"

-				+ a

-				+ "1278574761543419724"

-				+ a

-				+ "4355156144007731481"

-				+ a

-				+ "5294705619988460523"

-				+ a

-				+ "6370545119571223844"

-				+ a

-				+ "-3816975559796975341"

-				+ a

-				+ "-5431148533476913013"

-				+ a

-				+ "4792143332111679342"

-				+ a

-				+ "5569424248468850350"

-				+ a

-				+ "-6487577009744411051"

-				+ a

-				+ "2738118632653076620"

-				+ a

-				+ "-798328294195956547"

-				+ a

-				+ "-8299163629061180860"

-				+ a

-				+ "-1457564026416139184"

-				+ a

-				+ "5394256010933486809"

-				+ a

-				+ "-4973399890610300198"

-				+ a

-				+ "621271617561643061"

-				+ a

-				+ "5577570731625850342"

-				+ a

-				+ "-8044468161122764432"

-				+ a

-				+ "6200690179463580840"

-				+ a

-				+ "-7501453788118451887"

-				+ a

-				+ "-3000628561342215139"

-				+ a

-				+ "-8888329457271558380"

-				+ a

-				+ "2485958001112289649"

-				+ a

-				+ "-1147237103609785491"

-				+ a

-				+ "6652422839185385120"

-				+ a

-				+ "2748239554760845261"

-				+ a

-				+ "-6451037891984472738"

-				+ a

-				+ "1430238149445017059"

-				+ a

-				+ "-2621996537920703429"

-				+ a

-				+ "2222578011638657893"

-				+ a

-				+ "-4600079722998623742"

-				+ a

-				+ "-5101027077422971377"

-				+ a

-				+ "-8966445022847634590"

-				+ a

-				+ "-7203758692164246549"

-				+ a

-				+ "-52017057246791984"

-				+ a

-				+ "-2273361502515799085"

-				+ a

-				+ "-5673227018741665109"

-				+ a

-				+ "9196722197507445300"

-				+ a

-				+ "-6567949690213129824"

-				+ a

-				+ "8582264805422292500"

-				+ a

-				+ "-5020454389016530609"

-				+ a

-				+ "2176706303660388949"

-				+ a

-				+ "6598254869984499502"

-				+ a

-				+ "7726443684515370810"

-				+ a

-				+ "3788023174450597805"

-				+ a

-				+ "-7396279829682620374"

-				+ a

-				+ "-414566826835973221"

-				+ a

-				+ "334917670496684468"

-				+ a

-				+ "6545903246000230344"

-				+ a

-				+ "3159302915393375187"

-				+ a

-				+ "-8560960218944435478"

-				+ a

-				+ "-5548899126980842382"

-				+ a

-				+ "5356234276945339844"

-				+ a

-				+ "7633829593477582385"

-				+ a

-				+ "5945979013294920068"

-				+ a

-				+ "-4567723074575386775"

-				+ a

-				+ "1661520674219546732"

-				+ a

-				+ "-8239614336300995219"

-				+ a

-				+ "-240177115772242763"

-				+ a

-				+ "-8953869339872002029"

-				+ a

-				+ "2411018226134053295"

-				+ a

-				+ "7195376657135225202"

-				+ a

-				+ "-8233770635376837844"

-				+ a

-				+ "-5149016243774937620"

-				+ a

-				+ "-6179363232548880609"

-				+ a

-				+ "6092296202650265710"

-				+ a

-				+ "-4805133698057190017"

-				+ a

-				+ "-6354212838081638666"

-				+ a

-				+ "6694348192666591857"

-				+ a

-				+ "5598031767610571605"

-				+ a

-				+ "3024910246478227109"

-				+ a

-				+ "-6951710734827703242"

-				+ a

-				+ "7822716525244674559"

-				+ a

-				+ "963393641811653214"

-				+ a

-				+ "-2406318691508007814"

-				+ a

-				+ "826508348982591028"

-				+ a

-				+ "-1579142701085431479"

-				+ a

-				+ "7297929387480064388"

-				+ a

-				+ "1380792214707189822"

-				+ a

-				+ "3295031049744658815"

-				+ a

-				+ "3284810324689971567"

-				+ a

-				+ "-7588538314618161914"

-				+ a

-				+ "4301009527933011734"

-				+ a

-				+ "1130484873987861287"

-				+ a

-				+ "-8591297113101874759"

-				+ a

-				+ "-3210714133972683289"

-				+ a

-				+ "5154586943427152522"

-				+ a

-				+ "-4193463855189971647"

-				+ a

-				+ "-376431609407932400"

-				+ a

-				+ "5021110340265516655"

-				+ a

-				+ "7648328932517867781"

-				+ a

-				+ "-8546476864968721561"

-				+ a

-				+ "5288785613899671938"

-				+ a

-				+ "-4809049901156041048"

-				+ a

-				+ "-1880116244181877159"

-				+ a

-				+ "9015537485495535413"

-				+ a

-				+ "-5267014086548743487"

-				+ a

-				+ "5123518728962797793"

-				+ a

-				+ "1795472531198399544"

-				+ a

-				+ "3022599565131492557"

-				+ a

-				+ "-8730528497135525723"

-				+ a

-				+ "9220566957379280431"

-				+ a

-				+ "8833019111890700988"

-				+ a

-				+ "-2033397514229383340"

-				+ a

-				+ "-6381341138027165531"

-				+ a

-				+ "7588551433816593127"

-				+ a

-				+ "5799842542611454176"

-				+ a

-				+ "5619724887239697779"

-				+ a

-				+ "2353324000873662818"

-				+ a

-				+ "-1991375208699682010"

-				+ a

-				+ "-6919792924942791420"

-				+ a

-				+ "2994182147895903703"

-				+ a

-				+ "6692415087256339229"

-				+ a

-				+ "-4871355353972236471"

-				+ a

-				+ "5275179869443528045"

-				+ a

-				+ "8042280884158104496"

-				+ a

-				+ "-376420269953363908"

-				+ a

-				+ "6263088176396425333"

-				+ a

-				+ "5182172241015003330"

-				+ a

-				+ "8972966521669258038"

-				+ a

-				+ "-7276664514485426743"

-				+ a

-				+ "-5378180808162970352"

-				+ a

-				+ "-3685303685564653936"

-				+ a

-				+ "-5127852655386939872"

-				+ a

-				+ "548616584641283058"

-				+ a

-				+ "8164449020035601733"

-				+ a

-				+ "4810079842916321223"

-				+ a

-				+ "-4707693332204580821"

-				+ a

-				+ "2754027201511437962"

-				+ a

-				+ "-4509922984036153467"

-				+ a

-				+ "6370413349588604732"

-				+ a

-				+ "8320409773178053529"

-				+ a

-				+ "7039007976410883463"

-				+ a

-				+ "7106894676435275009"

-				+ a

-				+ "-2809438556549871067"

-				+ a

-				+ "-1211381355032103505"

-				+ a

-				+ "-7307298204907670142"

-				+ a

-				+ "8523677840776162865"

-				+ a

-				+ "8285725653280538784"

-				+ a

-				+ "5996593469111651125"

-				+ a

-				+ "4153670324452931642"

-				+ a

-				+ "229030452475666256"

-				+ a

-				+ "-8295788508630616532"

-				+ a

-				+ "-1965373018251653894"

-				+ a

-				+ "-5611593981401404143"

-				+ a

-				+ "-3695587189347699491"

-				+ a

-				+ "-1221969108939208147"

-				+ a

-				+ "-2939972657801657266"

-				+ a

-				+ "-7078096374241029747"

-				+ a

-				+ "-6861654231625701349"

-				+ a

-				+ "6363379236988393580"

-				+ a

-				+ "3845057394530936710"

-				+ a

-				+ "-7003878426734214695"

-				+ a

-				+ "1288488077274737553"

-				+ a

-				+ "771119377697186197"

-				+ a

-				+ "4591934766881650300"

-				+ a

-				+ "6913066875581196609"

-				+ a

-				+ "-3409117405525192820"

-				+ a

-				+ "-221371090258771016"

-				+ a

-				+ "7600311558228469517"

-				+ a

-				+ "6748268879508177593"

-				+ a

-				+ "9011322187420563096"

-				+ a

-				+ "-6603624039115619639"

-				+ a

-				+ "-3065654712670379623"

-				+ a

-				+ "-6989660198670243497"

-				+ a

-				+ "-3160517308974458357"

-				+ a

-				+ "4216552774322725152"

-				+ a

-				+ "-2996335011420467835"

-				+ a

-				+ "2863864253575772373"

-				+ a

-				+ "-7621293225327534470"

-				+ a

-				+ "-545538409911515142"

-				+ a

-				+ "9140583364836666812"

-				+ a

-				+ "-5140969305303368176"

-				+ a

-				+ "6656140948819540034"

-				+ a

-				+ "93544662858383350"

-				+ a

-				+ "-4755201878801920726"

-				+ a

-				+ "7361284953337231243"

-				+ a

-				+ "-2675344218305896448"

-				+ a

-				+ "-7108238313098643048"

-				+ a

-				+ "-2235754615074522304"

-				+ a

-				+ "-6286324348689275411"

-				+ a

-				+ "-4948971409936476391"

-				+ a

-				+ "-800968619982543415"

-				+ a

-				+ "-8079563792523913101"

-				+ a

-				+ "-3610968571897385858"

-				+ a

-				+ "5600745745679481907"

-				+ a

-				+ "-5566150746257613227"

-				+ a

-				+ "-8603813402708741443"

-				+ a

-				+ "1951713618413814190"

-				+ a

-				+ "-3615473705144668230"

-				+ a

-				+ "-3103394013239353749"

-				+ a

-				+ "7609441287170978331"

-				+ a

-				+ "-8595954663543476337"

-				+ a

-				+ "-2397033303076566948"

-				+ a

-				+ "8706877768214465313"

-				+ a

-				+ "-2833919119298505459"

-				+ a

-				+ "-5437716447901653930"

-				+ a

-				+ "3204018275194378125"

-				+ a

-				+ "-6881228659759674386"

-				+ a

-				+ "3655807233404763416"

-				+ a

-				+ "-8071166991944314146"

-				+ a

-				+ "-2882253571801104892"

-				+ a

-				+ "-4254916829421833426"

-				+ a

-				+ "-4966226050667361465"

-				+ a

-				+ "6400138949236237092"

-				+ a

-				+ "8065391540431081532"

-				+ a

-				+ "-8565217068574148958"

-				+ a

-				+ "-1039262401718743898"

-				+ a

-				+ "-7027115935055531316"

-				+ a

-				+ "-4839038525355799820"

-				+ a

-				+ "607283839032145901"

-				+ a

-				+ "5819199197390075590"

-				+ a

-				+ "8183342224186041755"

-				+ a

-				+ "-7638195753333090384"

-				+ a

-				+ "763230605389339928"

-				+ a

-				+ "3880164877363065917"

-				+ a

-				+ "6774168134657050106"

-				+ a

-				+ "5183571486536786229"

-				+ a

-				+ "-2412112714927998706"

-				+ a

-				+ "2170382415059976482"

-				+ a

-				+ "8928570569293051258"

-				+ a

-				+ "-3164633622520334319"

-				+ a

-				+ "-4874291569099455455"

-				+ a

-				+ "-5321689672409098347"

-				+ a

-				+ "-5318566050949026486"

-				+ a

-				+ "8467109878471673616"

-				+ a

-				+ "6243778283836892291"

-				+ a

-				+ "8129813969173457973"

-				+ a

-				+ "7026067937120947907"

-				+ a

-				+ "7230692457074218952"

-				+ a

-				+ "-5636207072045201714"

-				+ a

-				+ "9025616855807802024"

-				+ a

-				+ "6991347270039127005"

-				+ a

-				+ "-4134192908014033137"

-				+ a

-				+ "8052480968810038909"

-				+ a

-				+ "-298609796723154409"

-				+ a

-				+ "7063773791193231287"

-				+ a

-				+ "1903526289961421183"

-				+ a

-				+ "9078121936931350128"

-				+ a

-				+ "4919215797062406575"

-				+ a

-				+ "3062706279152348947"

-				+ a

-				+ "3069159987426254841"

-				+ a

-				+ "8785412768859969900"

-				+ a

-				+ "-1804937236104624863"

-				+ a

-				+ "-7919547674470913833"

-				+ a

-				+ "-3699510056810390498"

-				+ a

-				+ "3488422380608182937"

-				+ a

-				+ "-2987254178709073630"

-				+ a

-				+ "-9213463933924807027"

-				+ a

-				+ "4276958400750490840"

-				+ a

-				+ "5995923739289769474"

-				+ a

-				+ "-3578486352618504212"

-				+ a

-				+ "3793748595455569123"

-				+ a

-				+ "-2375328803450246449"

-				+ a

-				+ "-2368467245421371111"

-				+ a

-				+ "-7170151667937837637"

-				+ a

-				+ "3851161271436651564"

-				+ a

-				+ "-5040932034940683019"

-				+ a

-				+ "-5431617805185219792"

-				+ a

-				+ "8056902348189472081"

-				+ a

-				+ "8345438302799274206"

-				+ a

-				+ "8974378839299157243"

-				+ a

-				+ "-7795705370344518144"

-				+ a

-				+ "-6182887444190872461"

-				+ a

-				+ "-6744635907384095726"

-				+ a

-				+ "8688143914497602521"

-				+ a

-				+ "312301123947857446"

-				+ a

-				+ "153839440061591658"

-				+ a

-				+ "4481075050913262600"

-				+ a

-				+ "5493152155136443978"

-				+ a

-				+ "-5734316348038571103"

-				+ a

-				+ "-1237463632681147773"

-				+ a

-				+ "-9164417940517995360"

-				+ a

-				+ "2112577241684396365"

-				+ a

-				+ "7069977384985408086"

-				+ a

-				+ "8342004829581309071"

-				+ a

-				+ "5589441501667002337"

-				+ a

-				+ "-5851762190278682970"

-				+ a

-				+ "2349123061039463052"

-				+ a

-				+ "7057487017622652260"

-				+ a

-				+ "3294326484913833589"

-				+ a

-				+ "7917262643932877146"

-				+ a

-				+ "-2094061162517915280"

-				+ a

-				+ "1003752392099679578"

-				+ a

-				+ "-7192501163858833365"

-				+ a

-				+ "-3334727821303870921"

-				+ a

-				+ "-1384950698949877358"

-				+ a

-				+ "5445087923465358030"

-				+ a

-				+ "3719147868517768309"

-				+ a

-				+ "1000771643903128649"

-				+ a

-				+ "3516787711097740135"

-				+ a

-				+ "4105676075002773154"

-				+ a

-				+ "-3651552847191010585"

-				+ a

-				+ "2672778053191969126"

-				+ a

-				+ "285485396932943301"

-				+ a

-				+ "296620000461273275"

-				+ a

-				+ "4811535287028902846"

-				+ a

-				+ "-2379643207381041500"

-				+ a

-				+ "271481818151482985"

-				+ a

-				+ "6854618837286237314"

-				+ a

-				+ "5653593416179720279"

-				+ a

-				+ "62002831712282845"

-				+ a

-				+ "5853135014065169012"

-				+ a

-				+ "-3951484647610006172"

-				+ a

-				+ "-257362179695809613"

-				+ a

-				+ "7977439029994910002"

-				+ a

-				+ "2965871586653951722"

-				+ a

-				+ "3061775100769358674"

-				+ a

-				+ "3876220359403363066"

-				+ a

-				+ "-8734873363757811323"

-				+ a

-				+ "8210589182755985714"

-				+ a

-				+ "-8935096200912591038"

-				+ a

-				+ "3886239936245591540"

-				+ a

-				+ "2283494688500814077"

-				+ a

-				+ "1010721984573040537"

-				+ a

-				+ "-7245354850053978196"

-				+ a

-				+ "2542221557416216465"

-				+ a

-				+ "1000274955142240390"

-				+ a

-				+ "-6797492987035766321"

-				+ a

-				+ "-6984617498410261235"

-				+ a

-				+ "-7430749021601567133"

-				+ a

-				+ "-382287790784661682"

-				+ a

-				+ "126688746335494503"

-				+ a

-				+ "-5450785036780366233"

-				+ a

-				+ "-6262557503491400417"

-				+ a

-				+ "-6590263637308498102"

-				+ a

-				+ "-5710729975432547748"

-				+ a

-				+ "5129132715791132095"

-				+ a

-				+ "-4239743246379834592"

-				+ a

-				+ "6117849231379620271"

-				+ a

-				+ "-6490453226507920505"

-				+ a

-				+ "-5220787641275863906"

-				+ a

-				+ "37770212688319716"

-				+ a

-				+ "8511097093244097401"

-				+ a

-				+ "1921134795576723242"

-				+ a

-				+ "-5361574113624407919"

-				+ a

-				+ "6485812877315083405"

-				+ a

-				+ "-5173991477032582681"

-				+ a

-				+ "4635303733778455400"

-				+ a

-				+ "3798649405852839849"

-				+ a

-				+ "1181330636608158304"

-				+ a

-				+ "2389207354261632764"

-				+ a

-				+ "-7997803528543137078"

-				+ a

-				+ "6910199996450819324"

-				+ a

-				+ "-8434856108147276471"

-				+ a

-				+ "-5004471220842951168"

-				+ a

-				+ "-2001619584075815749"

-				+ a

-				+ "7103921392073379106"

-				+ a

-				+ "709184684415384406"

-				+ a

-				+ "5419968314411194366"

-				+ a

-				+ "-8052975715153740275"

-				+ a

-				+ "3080262723337237176"

-				+ a

-				+ "2717693202914529848"

-				+ a

-				+ "-5658009220703875004"

-				+ a

-				+ "-6356696196251465357"

-				+ a

-				+ "-9084955617602581791"

-				+ a

-				+ "2350510107389966277"

-				+ a

-				+ "-56493742978686747"

-				+ a

-				+ "-3235948282274805756"

-				+ a

-				+ "-259456143706900032"

-				+ a

-				+ "3328029298574307960"

-				+ a

-				+ "7969068043825100602"

-				+ a

-				+ "6539025660082780607"

-				+ a

-				+ "5106370333406861055"

-				+ a

-				+ "2581335450921275887"

-				+ a

-				+ "-6672857526609991588"

-				+ a

-				+ "-5066652041459919359"

-				+ a

-				+ "5483605257212992075"

-				+ a

-				+ "8441735440161894252"

-				+ a

-				+ "8228850532942701996"

-				+ a

-				+ "8305732054858339344"

-				+ a

-				+ "-8818868008826300459"

-				+ a

-				+ "-282885764699505067"

-				+ a

-				+ "-7792997597271080628"

-				+ a

-				+ "-476798431366675564"

-				+ a

-				+ "-8409934511333831470"

-				+ a

-				+ "-3520536162869449547"

-				+ a

-				+ "4683766191038939812"

-				+ a

-				+ "2735230483871692056"

-				+ a

-				+ "-6960428798943544324"

-				+ a

-				+ "6064369103064896440"

-				+ a

-				+ "-5862836756051784995"

-				+ a

-				+ "3048377571697603214"

-				+ a

-				+ "-8817670315059258864"

-				+ a

-				+ "-3448031242465560525"

-				+ a

-				+ "-3900155008609433239"

-				+ a

-				+ "-2436961665226831928"

-				+ a

-				+ "7843028895364926030"

-				+ a

-				+ "-1071910219054671079"

-				+ a

-				+ "6806460798781112441"

-				+ a

-				+ "545524036744485632"

-				+ a

-				+ "1504587669020371708"

-				+ a

-				+ "3554112186340809223"

-				+ a

-				+ "628102020023703941"

-				+ a

-				+ "-8396624437418437295"

-				+ a

-				+ "-6733341969134226973"

-				+ a

-				+ "9137671523974848441"

-				+ a

-				+ "-1085702134189209144"

-				+ a

-				+ "8591961235509762875"

-				+ a

-				+ "-4209972357817444144"

-				+ a

-				+ "5016820126477722770"

-				+ a

-				+ "6007620665778587330"

-				+ a

-				+ "8736230199649080611"

-				+ a

-				+ "-1357215413619140076"

-				+ a

-				+ "-3036455336440086759"

-				+ a

-				+ "5003131764641090228"

-				+ a

-				+ "-5840971401422059568"

-				+ a

-				+ "5299761606675594501"

-				+ a

-				+ "2479284086948775030"

-				+ a

-				+ "-169747718055302873"

-				+ a

-				+ "-6513577638796641041"

-				+ a

-				+ "4727002206625739387"

-				+ a

-				+ "11815200566638841"

-				+ a

-				+ "2414450272502428518"

-				+ a

-				+ "737732046466579345"

-				+ a

-				+ "-3078028411410513580"

-				+ a

-				+ "6989108583020941460"

-				+ a

-				+ "4710861758996393215"

-				+ a

-				+ "-3711166908562108248"

-				+ a

-				+ "2214719685325275888"

-				+ a

-				+ "-9168489986447261860"

-				+ a

-				+ "-5196529696442593211"

-				+ a

-				+ "7469613290795526029"

-				+ a

-				+ "-4245509300480970827"

-				+ a

-				+ "-7050208421107820020"

-				+ a

-				+ "-7521497792323050799"

-				+ a

-				+ "-7212250329377230211"

-				+ a

-				+ "-4802660503947805812"

-				+ a

-				+ "-6614648966347585919"

-				+ a

-				+ "3389716989987674621"

-				+ a

-				+ "2411396560958710551"

-				+ a

-				+ "2815259436105876066"

-				+ a

-				+ "2060795633551604799"

-				+ a

-				+ "-1162554289855525016"

-				+ a

-				+ "-4151205296736455969"

-				+ a

-				+ "7740556652714820776"

-				+ a

-				+ "-2424255571780643606"

-				+ a

-				+ "3773719908223681909"

-				+ a

-				+ "-642852958378017857"

-				+ a

-				+ "506546631674131412"

-				+ a

-				+ "3411343132685823182"

-				+ a

-				+ "8242176261806455755"

-				+ a

-				+ "-1677796581762359167"

-				+ a

-				+ "-8088487106477371682"

-				+ a

-				+ "8839352032934777688"

-				+ a

-				+ "-1664297978100182058"

-				+ a

-				+ "8954522650558186838"

-				+ a

-				+ "-7417626966935826748"

-				+ a

-				+ "5844470482620124059"

-				+ a

-				+ "-5001123985686870716"

-				+ a

-				+ "8630918871083620434"

-				+ a

-				+ "1361828739555435270"

-				+ a

-				+ "2586232242815655117"

-				+ a

-				+ "-5431290900140072310"

-				+ a

-				+ "-2089869348091893267"

-				+ a

-				+ "-6913226553364333014"

-				+ a

-				+ "982358703940022983"

-				+ a

-				+ "-5291211856488354467"

-				+ a

-				+ "3146802692737717635"

-				+ a

-				+ "3061042254470656569"

-				+ a

-				+ "593081081915838087"

-				+ a

-				+ "-3648293238944105671"

-				+ a

-				+ "3817895332992367061"

-				+ a

-				+ "-5977316325514420928"

-				+ a

-				+ "2445174291365627569"

-				+ a

-				+ "-7453194807437727266"

-				+ a

-				+ "-7135173348446715513"

-				+ a

-				+ "-4341245742350326319"

-				+ a

-				+ "-6990299696064866294"

-				+ a

-				+ "9099393862540895181"

-				+ a

-				+ "5906962556980591520"

-				+ a

-				+ "1463156951664887679"

-				+ a

-				+ "8685482748980954620"

-				+ a

-				+ "-8670616036689234737"

-				+ a

-				+ "668426796408964108"

-				+ a

-				+ "760821649250070373"

-				+ a

-				+ "6098571809297730326"

-				+ a

-				+ "8996934779491151471"

-				+ a

-				+ "5167580478289099805"

-				+ a

-				+ "-5379372579768555360"

-				+ a

-				+ "-1826855896863499895"

-				+ a

-				+ "-251724191324644229"

-				+ a

-				+ "8345304695203599110"

-				+ a

-				+ "-3921283866962585392"

-				+ a

-				+ "-6750195049995572309"

-				+ a

-				+ "-2839804251052455546"

-				+ a

-				+ "-2838169321476956577"

-				+ a

-				+ "-956982331721610085"

-				+ a

-				+ "-3509690395310119816"

-				+ a

-				+ "-647103879342140567"

-				+ a

-				+ "-7535121068312444252"

-				+ a

-				+ "-6849939433639848918"

-				+ a

-				+ "6188660516239622156"

-				+ a

-				+ "5919339453715746750"

-				+ a

-				+ "5053115779289394102"

-				+ a

-				+ "8548571500185153451"

-				+ a

-				+ "1253407665197945898"

-				+ a

-				+ "8816075272556462180"

-				+ a

-				+ "6819578958788515160"

-				+ a

-				+ "5771439029860895693"

-				+ a

-				+ "1099896890131308728"

-				+ a

-				+ "2822294418807232510"

-				+ a

-				+ "-5488141668219100237"

-				+ a

-				+ "-6814930941837472185"

-				+ a

-				+ "-1887449028126707647"

-				+ a

-				+ "-305262206501941645"

-				+ a

-				+ "-2957301348839879726"

-				+ a

-				+ "-8062343849720237487"

-				+ a

-				+ "4063931149976651890"

-				+ a

-				+ "-6945560963307518609"

-				+ a

-				+ "-5171358203014886361"

-				+ a

-				+ "-4696905411890596568"

-				+ a

-				+ "-7904166567572706659"

-				+ a

-				+ "-5642191283828687647"

-				+ a

-				+ "-3142095411129076476"

-				+ a

-				+ "4267259913372177039"

-				+ a

-				+ "-247567462335503303"

-				+ a

-				+ "-1606772255712405637"

-				+ a

-				+ "-1138796761196445405"

-				+ a

-				+ "6850063793273393481"

-				+ a

-				+ "1624415707017375583"

-				+ a

-				+ "-1164198493017002186"

-				+ a

-				+ "-5031881309379772897"

-				+ a

-				+ "-4704167066305044576"

-				+ a

-				+ "300552169175114575"

-				+ a

-				+ "1256542356793014731"

-				+ a

-				+ "-6183375231683934984"

-				+ a

-				+ "8132934491731918817"

-				+ a

-				+ "4029472251436479721"

-				+ a

-				+ "-192705793541948102"

-				+ a

-				+ "2135033751433659027"

-				+ a

-				+ "1455584266359522526"

-				+ a

-				+ "-431828297761765579"

-				+ a

-				+ "2355469958751654983"

-				+ a

-				+ "-133589407284588488"

-				+ a

-				+ "-493111747751240086"

-				+ a

-				+ "-7965544530020185125"

-				+ a

-				+ "1294769335141647096"

-				+ a

-				+ "4061979167437331474"

-				+ a

-				+ "-4674577793798441504"

-				+ a

-				+ "2229585697079227307"

-				+ a

-				+ "-5414242843034985703"

-				+ a

-				+ "-1796177256198233677"

-				+ a

-				+ "-8813835129363277155"

-				+ a

-				+ "-8316830614187561193"

-				+ a

-				+ "7467003029608100024"

-				+ a

-				+ "6813374084828983949"

-				+ a

-				+ "-8380540489992454526"

-				+ a

-				+ "8148069224161672884"

-				+ a

-				+ "-7554729934777737559"

-				+ a

-				+ "3699415912884948602"

-				+ a

-				+ "-5228105685932031373"

-				+ a

-				+ "7486295599635387325"

-				+ a

-				+ "-8315916849048610046"

-				+ a

-				+ "-1265934245220496332"

-				+ a

-				+ "869408855926444762"

-				+ a

-				+ "3124164783922938000"

-				+ a

-				+ "2622058283875392416"

-				+ a

-				+ "6966819816830554590"

-				+ a

-				+ "-9083519918290447324"

-				+ a

-				+ "-5702091036824848082"

-				+ a

-				+ "7213286784638864033"

-				+ a

-				+ "7931674308865727865"

-				+ a

-				+ "1217078156180791107"

-				+ a

-				+ "-6728535210190855233"

-				+ a

-				+ "-7969996239948903704"

-				+ a

-				+ "-5122150647143637648"

-				+ a

-				+ "-270273220242567638"

-				+ a

-				+ "-3061305542137677556"

-				+ a

-				+ "-9086820896664105827"

-				+ a

-				+ "-3725106682971891443"

-				+ a

-				+ "-7335602555283711916"

-				+ a

-				+ "-4241856931197537020"

-				+ a

-				+ "6414441892533219754"

-				+ a

-				+ "4923291868857182465"

-				+ a

-				+ "-2238034931126403266"

-				+ a

-				+ "-5548291588014287049"

-				+ a

-				+ "-3613397896346811841"

-				+ a

-				+ "-444831690879303712"

-				+ a

-				+ "-174090082062267671"

-				+ a

-				+ "-4502104439015034018"

-				+ a

-				+ "6966017876080357710"

-				+ a

-				+ "7406710172021949090"

-				+ a

-				+ "1860179558197352025"

-				+ a

-				+ "5059137267429724625"

-				+ a

-				+ "-7151826351928790769"

-				+ a

-				+ "5733657672065233188"

-				+ a

-				+ "4520810228567075864"

-				+ a

-				+ "-7333899404846243825"

-				+ a

-				+ "-6883092737419798658"

-				+ a

-				+ "4366096293893496485"

-				+ a

-				+ "-831211520620006733"

-				+ a

-				+ "-2070730996140986054"

-				+ a

-				+ "-6122918534230011176"

-				+ a

-				+ "8591014096129538633"

-				+ a

-				+ "-2932515908185347780"

-				+ a

-				+ "-6172465947165241704"

-				+ a

-				+ "6627779855106944546"

-				+ a

-				+ "860134131205302169"

-				+ a

-				+ "-2545779493082303546"

-				+ a

-				+ "-7421938253750134765"

-				+ a

-				+ "-6434442159326501470"

-				+ a

-				+ "-3820319822167988479"

-				+ a

-				+ "7713795869884446701"

-				+ a

-				+ "6987845812456879290"

-				+ a

-				+ "4067197575400098660"

-				+ a

-				+ "6929605052833795665"

-				+ a

-				+ "-5071225823069615797"

-				+ a

-				+ "-6528382877278039234"

-				+ a

-				+ "3841845750105881526"

-				+ a

-				+ "7024959044443033917"

-				+ a

-				+ "2694800765195953668"

-				+ a

-				+ "-5187774918085199242"

-				+ a

-				+ "-4774807374950964820"

-				+ a

-				+ "-6651516371223242275"

-				+ a

-				+ "5402324599728161595"

-				+ a

-				+ "2303362292061219291"

-				+ a

-				+ "-6703936456847176803"

-				+ a

-				+ "4251181594352644398"

-				+ a

-				+ "-4810153558637401702"

-				+ a

-				+ "3120785562651363852"

-				+ a

-				+ "1064230923889069987"

-				+ a

-				+ "5592117723558033294"

-				+ a

-				+ "2500967148379218383"

-				+ a

-				+ "4543293162164153676"

-				+ a

-				+ "-6382337212061286369"

-				+ a

-				+ "4950508513939762500"

-				+ a

-				+ "6639695632068391177"

-				+ a

-				+ "3852356517429469183"

-				+ a

-				+ "-1834993927947325388"

-				+ a

-				+ "-574469187780736266"

-				+ a

-				+ "1791511302785115519"

-				+ a

-				+ "-2510985863334721231"

-				+ a

-				+ "-1271182415669655481"

-				+ a

-				+ "2833131677966051888"

-				+ a

-				+ "-1888666409583758615"

-				+ a

-				+ "-7575768070255551729"

-				+ a

-				+ "2789451380098296453"

-				+ a

-				+ "-855761797827183132"

-				+ a

-				+ "6200333634774310661"

-				+ a

-				+ "2532787015795004267"

-				+ a

-				+ "5732788468327016285"

-				+ a

-				+ "1572576694474513125"

-				+ a

-				+ "6690274443971690003"

-				+ a

-				+ "-1416599760413078468"

-				+ a

-				+ "-8873558753980022270"

-				+ a

-				+ "3520034515647107178"

-				+ a

-				+ "5895387026777833306"

-				+ a

-				+ "8970487898880039964"

-				+ a

-				+ "-1994332234697898774"

-				+ a

-				+ "1256148449635750034"

-				+ a

-				+ "7068847807288363425"

-				+ a

-				+ "6497856795776861896"

-				+ a

-				+ "2533382161003325009"

-				+ a

-				+ "-8546900859753109286"

-				+ a

-				+ "7050920184133806006"

-				+ a

-				+ "4204241594405846436"

-				+ a

-				+ "7412992732973120695"

-				+ a

-				+ "6323176360460995240"

-				+ a

-				+ "788068822434628843"

-				+ a

-				+ "5809215686853242932"

-				+ a

-				+ "2435328253140599646"

-				+ a

-				+ "-3438172829650951228"

-				+ a

-				+ "-5260828684075255404"

-				+ a

-				+ "-8452227779893367644"

-				+ a

-				+ "-8583970913160499507"

-				+ a

-				+ "-1141806410215078183"

-				+ a

-				+ "-8347846439953324150"

-				+ a

-				+ "-5848845680367710143"

-				+ a

-				+ "8492146215224643919"

-				+ a

-				+ "3192550119083762681"

-				+ a

-				+ "-1940597170917955925"

-				+ a

-				+ "-6311085176920881154"

-				+ a

-				+ "3313976597559381877"

-				+ a

-				+ "-8261432839191637738"

-				+ a

-				+ "8508517589948285271"

-				+ a

-				+ "-3942417032281399056"

-				+ a

-				+ "-7868239781541141360"

-				+ a

-				+ "-7207936619714796918"

-				+ a

-				+ "5951216312047681781"

-				+ a

-				+ "7581930953926551762"

-				+ a

-				+ "-5218098199538452680"

-				+ a

-				+ "4046620809464009616"

-				+ a

-				+ "9156388253171518060"

-				+ a

-				+ "1775420769584324226"

-				+ a

-				+ "-5503602516028621368"

-				+ a

-				+ "-5417782825043706168"

-				+ a

-				+ "3259607017327889066"

-				+ a

-				+ "-8165578551036038526"

-				+ a

-				+ "-3571561465349852449"

-				+ a

-				+ "8682163221699536567"

-				+ a

-				+ "1820937297130664737"

-				+ a

-				+ "-7637037009265731720"

-				+ a

-				+ "-3430018756137657888"

-				+ a

-				+ "-912486006008721851"

-				+ a

-				+ "-4597466335087098299"

-				+ a

-				+ "9158803880090608302"

-				+ a

-				+ "6309689325780931443"

-				+ a

-				+ "-1043259274818805443"

-				+ a

-				+ "5818507431422309391"

-				+ a

-				+ "705581125799181459"

-				+ a

-				+ "-8243036360534097406"

-				+ a

-				+ "3506710962377813200"

-				+ a

-				+ "5283929545352660605"

-				+ a

-				+ "5433965584487276856"

-				+ a

-				+ "-9141396997152817603"

-				+ a

-				+ "-6478773767990106094"

-				+ a

-				+ "-5840973237079482865"

-				+ a

-				+ "-3328512888182984493"

-				+ a

-				+ "-5628441720597980266"

-				+ a

-				+ "1362509993150631036"

-				+ a

-				+ "-6186720857272451508"

-				+ a

-				+ "2806474292451381311"

-				+ a

-				+ "1472420199765605574"

-				+ a

-				+ "6504226866074435176"

-				+ a

-				+ "2336878939403643451"

-				+ a

-				+ "-2015466886114682501"

-				+ a

-				+ "-1190820901020960698"

-				+ a

-				+ "-8270478624074250856"

-				+ a

-				+ "-7954036542520749846"

-				+ a

-				+ "-5313855420375917529"

-				+ a

-				+ "8784094970832030935"

-				+ a

-				+ "-4096265019124345424"

-				+ a

-				+ "1877372637773629931"

-				+ a

-				+ "1345965335397117450"

-				+ a

-				+ "1017298834024801787"

-				+ a

-				+ "-4281347732403722569"

-				+ a

-				+ "-299499367626792494"

-				+ a

-				+ "-2752679177386898546"

-				+ a

-				+ "2039234325941596281"

-				+ a

-				+ "-7646426291870655078"

-				+ a

-				+ "8814611568318314168"

-				+ a

-				+ "-2968477228040763326"

-				+ a

-				+ "-4419558618188022052"

-				+ a

-				+ "-1279218774105815895"

-				+ a

-				+ "2630489381818213563"

-				+ a

-				+ "-2764095333472874665"

-				+ a

-				+ "1721324049525030389"

-				+ a

-				+ "6255319953520301080"

-				+ a

-				+ "-2002207623368113540"

-				+ a

-				+ "2760564714094670884"

-				+ a

-				+ "-4527083009644693163"

-				+ a

-				+ "-221316996272960896"

-				+ a

-				+ "5272147133459262879"

-				+ a

-				+ "1662442750623568547"

-				+ a

-				+ "7114576635075014612"

-				+ a

-				+ "-1592395570280065701"

-				+ a

-				+ "-8055360728481487026"

-				+ a

-				+ "1905364447584354289"

-				+ a

-				+ "-2982613330646927347"

-				+ a

-				+ "3579716359614024075"

-				+ a

-				+ "-2853235326282940233"

-				+ a

-				+ "-6255093129477813551"

-				+ a

-				+ "-2660856547893725985"

-				+ a

-				+ "962189559835700179"

-				+ a

-				+ "-3403904814775855223"

-				+ a

-				+ "7761786006706211882"

-				+ a

-				+ "1666469024181410285"

-				+ a

-				+ "-1912341427069089444"

-				+ a

-				+ "-1529985830943006085"

-				+ a

-				+ "-8541889599851837563"

-				+ a

-				+ "-1675345010039275489"

-				+ a

-				+ "532566178923438130"

-				+ a

-				+ "-4106346450321257018"

-				+ a

-				+ "598900968746965904"

-				+ a

-				+ "7922103854326614559"

-				+ a

-				+ "2337244455169431493"

-				+ a

-				+ "2490340063075084197"

-				+ a

-				+ "3830021001185755805"

-				+ a

-				+ "-7007934027523188515"

-				+ a

-				+ "-6897508927103841943"

-				+ a

-				+ "351471946072366300"

-				+ a

-				+ "5325622335760933667"

-				+ a

-				+ "1999537315104100364"

-				+ a

-				+ "-3174507437725673258"

-				+ a

-				+ "5725229761576174895"

-				+ a

-				+ "-1668434791850086340"

-				+ a

-				+ "-8518953713969632606"

-				+ a

-				+ "-2195724924957090648"

-				+ a

-				+ "1833142190359232486"

-				+ a

-				+ "-8071691875553813978"

-				+ a

-				+ "-1098776314952802468"

-				+ a

-				+ "-3732554868283517216"

-				+ a

-				+ "8281197878747701327"

-				+ a

-				+ "-2681793846913003838"

-				+ a

-				+ "-7423965503951514312"

-				+ a

-				+ "5715757995104550241"

-				+ a

-				+ "4949326775746718268"

-				+ a

-				+ "4867992385340508696"

-				+ a

-				+ "5710183806056540152"

-				+ a

-				+ "-5859943850115280268"

-				+ a

-				+ "182212408834907777"

-				+ a

-				+ "1818148288680146641"

-				+ a

-				+ "-3629129893088723802"

-				+ a

-				+ "-7989454558875562684"

-				+ a

-				+ "-3490491636040018057"

-				+ a

-				+ "-8546360654909202756"

-				+ a

-				+ "4884975390754858506"

-				+ a

-				+ "-7335006185981160861"

-				+ a

-				+ "-8863534872989633156"

-				+ a

-				+ "-1023968830742254775"

-				+ a

-				+ "-6984065759005173450"

-				+ a

-				+ "-4719440043907597244"

-				+ a

-				+ "-4226053935092114575"

-				+ a

-				+ "2857867506883982865"

-				+ a

-				+ "4609884073900339707"

-				+ a

-				+ "4451416470189798334"

-				+ a

-				+ "-1790877776461694150"

-				+ a

-				+ "478010840764229964"

-				+ a

-				+ "4577366484915324785"

-				+ a

-				+ "-4239516104547444593"

-				+ a

-				+ "822225014414504514"

-				+ a

-				+ "7207238466391339097"

-				+ a

-				+ "4951445340652425331"

-				+ a

-				+ "8865187376622680535"

-				+ a

-				+ "2714097382994507252"

-				+ a

-				+ "8555581644391577658"

-				+ a

-				+ "3395195158292748320"

-				+ a

-				+ "-7121855846819635559"

-				+ a

-				+ "1454609179663126595"

-				+ a

-				+ "-2363070738518048747"

-				+ a

-				+ "-8561489505556069796"

-				+ a

-				+ "-1623367676149883331"

-				+ a

-				+ "2930039982060989475"

-				+ a

-				+ "-4755382472985052748"

-				+ a

-				+ "-3892494289724415923"

-				+ a

-				+ "4637043986058348817"

-				+ a

-				+ "-6153579724097588723"

-				+ a

-				+ "-5546607401430173178"

-				+ a

-				+ "-1492220491073383202"

-				+ a

-				+ "-3503786864953810749"

-				+ a

-				+ "-1290487900048395137"

-				+ a

-				+ "3634542418448824732"

-				+ a

-				+ "-4729608041549018817"

-				+ a

-				+ "-7349905448557731608"

-				+ a

-				+ "-7872415943966872454"

-				+ a

-				+ "6328897134929241388"

-				+ a

-				+ "-5279495431135252126"

-				+ a

-				+ "7306152281150969721"

-				+ a

-				+ "6916430824966538754"

-				+ a

-				+ "4838879110959529490"

-				+ a

-				+ "-7503253719632240512"

-				+ a

-				+ "-2043554315794248367"

-				+ a

-				+ "-222316953353634654"

-				+ a

-				+ "1616782040888740554"

-				+ a

-				+ "-8096203459022180973"

-				+ a

-				+ "8781682587717369520"

-				+ a

-				+ "8324353734053349349"

-				+ a

-				+ "-2419660470439880841"

-				+ a

-				+ "-3691601252123449383"

-				+ a

-				+ "2601750435265700795"

-				+ a

-				+ "572261106233661406"

-				+ a

-				+ "828178224839624288"

-				+ a

-				+ "-8228342371067159721"

-				+ a

-				+ "-3973182455293867783"

-				+ a

-				+ "7921032521626788257"

-				+ a

-				+ "-6654921982150332307"

-				+ a

-				+ "-406383609697491628"

-				+ a

-				+ "-4195424171906992169"

-				+ a

-				+ "-3465676714700260409"

-				+ a

-				+ "94265070605211054"

-				+ a

-				+ "-3064896205951182631"

-				+ a

-				+ "-7072496700196212954"

-				+ a

-				+ "7794720126715939567"

-				+ a

-				+ "-4158983032514978348"

-				+ a

-				+ "4428076845375714104"

-				+ a

-				+ "8720339297002777496"

-				+ a

-				+ "-4170548367659581897"

-				+ a

-				+ "-6547860335574357834"

-				+ a

-				+ "4227777302599737474"

-				+ a

-				+ "-7769812357111840698"

-				+ a

-				+ "-8462691960494842937"

-				+ a

-				+ "-4126880118004338994"

-				+ a

-				+ "-3178556423612559345"

-				+ a

-				+ "-2893699215683698899"

-				+ a

-				+ "5728596538128194886"

-				+ a

-				+ "-2530819841322864198"

-				+ a

-				+ "-4881143718204761862"

-				+ a

-				+ "-8420287773053587028"

-				+ a

-				+ "5264312276687903843"

-				+ a

-				+ "7360172920728911035"

-				+ a

-				+ "8371029073758744227"

-				+ a

-				+ "9205148785879081223"

-				+ a

-				+ "-1859431348752003251"

-				+ a

-				+ "4779214870921360697"

-				+ a

-				+ "-2063013850550115029"

-				+ a

-				+ "2514214861790801639"

-				+ a

-				+ "688298976672994619"

-				+ a

-				+ "8808625389252426557"

-				+ a

-				+ "587348595105842683"

-				+ a

-				+ "-7581495858151965224"

-				+ a

-				+ "4295383171602092774"

-				+ a

-				+ "629679749050259957"

-				+ a

-				+ "6092738940327867453"

-				+ a

-				+ "6260135336894425546"

-				+ a

-				+ "-4262258001311703286"

-				+ a

-				+ "-8787881097085417421"

-				+ a

-				+ "-5202416122214735519"

-				+ a

-				+ "-1094098867178024815"

-				+ a

-				+ "1709204469615558377"

-				+ a

-				+ "-3316808189245409041"

-				+ a

-				+ "2267394113742131610"

-				+ a

-				+ "802800796592269925"

-				+ a

-				+ "6020346596949291719"

-				+ a

-				+ "4362371798306536385"

-				+ a

-				+ "8147690838823759967"

-				+ a

-				+ "5329989234928530019"

-				+ a

-				+ "-956912212156919185"

-				+ a

-				+ "4035164394108759399"

-				+ a

-				+ "-7340616756424887062"

-				+ a

-				+ "-6828152481843798263"

-				+ a

-				+ "-1748445625762825812"

-				+ a

-				+ "5935050953898588229"

-				+ a

-				+ "6471613704674711228"

-				+ a

-				+ "5426422518887852734"

-				+ a

-				+ "-8790361958224476975"

-				+ a

-				+ "1147984286589838560"

-				+ a

-				+ "-3115084918500945385"

-				+ a

-				+ "-1593393110477083576"

-				+ a

-				+ "-7746577747169796814"

-				+ a

-				+ "4855479966532713058"

-				+ a

-				+ "-2825966073810846589"

-				+ a

-				+ "5670921883372339027"

-				+ a

-				+ "-3351030363975248471"

-				+ a

-				+ "-6092554852842475750"

-				+ a

-				+ "-918784283786254007"

-				+ a

-				+ "597804758834183409"

-				+ a

-				+ "18896378189469458"

-				+ a

-				+ "-1063461360426292999"

-				+ a

-				+ "2503142469566864891"

-				+ a

-				+ "1649538650540360725"

-				+ a

-				+ "5925412010083294415"

-				+ a

-				+ "-7082343544609649131"

-				+ a

-				+ "-500286861472885014"

-				+ a

-				+ "2034306255648969239"

-				+ a

-				+ "-6989721939152109244"

-				+ a

-				+ "4602789961892980009"

-				+ a

-				+ "8689747571345005486"

-				+ a

-				+ "-1096909470010447053"

-				+ a

-				+ "7449484639121005148"

-				+ a

-				+ "-3983249628107405805"

-				+ a

-				+ "-3106467780176616541"

-				+ a

-				+ "-4052581199502978295"

-				+ a

-				+ "1238644263796516354"

-				+ a

-				+ "1511210825552075349"

-				+ a

-				+ "-8959283836232840602"

-				+ a

-				+ "-945526196915645153"

-				+ a

-				+ "2486934434776549033"

-				+ a

-				+ "-5179581557244449386"

-				+ a

-				+ "-5130230789857012645"

-				+ a

-				+ "-1895142657148494502"

-				+ a

-				+ "-8885930504481779771"

-				+ a

-				+ "6872214327519481374"

-				+ a

-				+ "9005968565140898602"

-				+ a

-				+ "5766450694901080201"

-				+ a

-				+ "15290732226421328"

-				+ a

-				+ "-8181491785068085923"

-				+ a

-				+ "861492339862927934"

-				+ a

-				+ "417000764276266202"

-				+ a

-				+ "3771665283774978374"

-				+ a

-				+ "824247452788125796"

-				+ a

-				+ "915050746900771653"

-				+ a

-				+ "-991268011348657565"

-				+ a

-				+ "5046823091485279785"

-				+ a

-				+ "714851461640937578"

-				+ a

-				+ "-9013898845762846029"

-				+ a

-				+ "-8969084512827133030"

-				+ a

-				+ "7172471193941949821"

-				+ a

-				+ "676000395376995144"

-				+ a

-				+ "1048894728609279038"

-				+ a

-				+ "-3254442066135634467"

-				+ a

-				+ "201729189762167629"

-				+ a

-				+ "7312182024186004478"

-				+ a

-				+ "3135803949473351523"

-				+ a

-				+ "5531867581893384684"

-				+ a

-				+ "8247817870075144100"

-				+ a

-				+ "-3853860775957597396"

-				+ a

-				+ "-6308950247999654944"

-				+ a

-				+ "-4274726932216138646"

-				+ a

-				+ "-1285957732812479723"

-				+ a

-				+ "1982895588695926681"

-				+ a

-				+ "8748824578821627448"

-				+ a

-				+ "-5983709949530218913"

-				+ a

-				+ "-1709967482004339916"

-				+ a

-				+ "-2702262020059146576"

-				+ a

-				+ "6920158278268474418"

-				+ a

-				+ "-6506553802338482760"

-				+ a

-				+ "-6589983316832561381"

-				+ a

-				+ "-3536094890319057666"

-				+ a

-				+ "-6915112845813208742"

-				+ a

-				+ "-5611867381828969018"

-				+ a

-				+ "-8066425788823614490"

-				+ a

-				+ "8754414329208983222"

-				+ a

-				+ "2052724808302422911"

-				+ a

-				+ "3214867679022081979"

-				+ a

-				+ "-254682339916322505"

-				+ a

-				+ "-2334236347464456147"

-				+ a

-				+ "-4089317706480064717"

-				+ a

-				+ "37563162890685232"

-				+ a

-				+ "407258492470255027"

-				+ a

-				+ "6651276108069654110"

-				+ a

-				+ "4700627022992276559"

-				+ a

-				+ "-4051813786109247838"

-				+ a

-				+ "8217401500665338754"

-				+ a

-				+ "8031632944018173798"

-				+ a

-				+ "-1760086780027911572"

-				+ a

-				+ "3030576104638562288"

-				+ a

-				+ "5710845799058769107"

-				+ a

-				+ "-614527972619889911"

-				+ a

-				+ "5682301044697611626"

-				+ a

-				+ "4776538540287909087"

-				+ a

-				+ "-1877447658871953322"

-				+ a

-				+ "-2533846628267513044"

-				+ a

-				+ "6552807816608129517"

-				+ a

-				+ "-2426525631037125738"

-				+ a

-				+ "6980954227435834816"

-				+ a

-				+ "-411591148764957608"

-				+ a

-				+ "-5258297969590195749"

-				+ a

-				+ "2619912957802173218"

-				+ a

-				+ "3218030450269655626"

-				+ a

-				+ "-619857944519317954"

-				+ a

-				+ "8002138058496669919"

-				+ a

-				+ "-8617705397551152141"

-				+ a

-				+ "-6437985726951369421"

-				+ a

-				+ "-2392199700291849170"

-				+ a

-				+ "-3421262753709518615"

-				+ a

-				+ "270156923239055453"

-				+ a

-				+ "3100544481691055161"

-				+ a

-				+ "8393385566088338846"

-				+ a

-				+ "-8766691689819679060"

-				+ a

-				+ "3411955047397791001"

-				+ a

-				+ "-942425660583552988"

-				+ a

-				+ "-5494089038893429079"

-				+ a

-				+ "1753298991032837663"

-				+ a

-				+ "4144485748098179521"

-				+ a

-				+ "9019756284128792892"

-				+ a

-				+ "7485522681383997581"

-				+ a

-				+ "-7749912962192279811"

-				+ a

-				+ "-5881896743911665321"

-				+ a

-				+ "7867326394818151373"

-				+ a

-				+ "-8828652256441447892"

-				+ a

-				+ "3231359801897619781"

-				+ a

-				+ "-5626130456934604098"

-				+ a

-				+ "-1965805744061946710"

-				+ a

-				+ "-4171903438904536948"

-				+ a

-				+ "242034066052370874"

-				+ a

-				+ "-7369023795040730816"

-				+ a

-				+ "6835741057618871719"

-				+ a

-				+ "774134065756964695"

-				+ a

-				+ "3465141288353005155"

-				+ a

-				+ "-3779358901714703098"

-				+ a

-				+ "-335320531677285858"

-				+ a

-				+ "3823006291557437788"

-				+ a

-				+ "5623219083725351692"

-				+ a

-				+ "7302740712840721315"

-				+ a

-				+ "-365458260827579541"

-				+ a

-				+ "8831535489520374028"

-				+ a

-				+ "9085006203827760580"

-				+ a

-				+ "8836704309237217418"

-				+ a

-				+ "-1823987370402081424"

-				+ a

-				+ "-5749446645166180099"

-				+ a

-				+ "-2471832494310546595"

-				+ a

-				+ "-6769001460762948205"

-				+ a

-				+ "9027118050139104018"

-				+ a

-				+ "-5768767759454835605"

-				+ a

-				+ "-2001078439708359696"

-				+ a

-				+ "2707266383359417210"

-				+ a

-				+ "758886391697560250"

-				+ a

-				+ "-4236177634611630158"

-				+ a

-				+ "-676183376821008554"

-				+ a

-				+ "7398874329266821728"

-				+ a

-				+ "4540944464450890452"

-				+ a

-				+ "42911468472215765"

-				+ a

-				+ "-4119021015193839185"

-				+ a

-				+ "-1177481591298844088"

-				+ a

-				+ "-693624857635527085"

-				+ a

-				+ "7921082210898178042"

-				+ a

-				+ "-4499721676330688545"

-				+ a

-				+ "4154259593529957275"

-				+ a

-				+ "-7166338548810268373"

-				+ a

-				+ "7753365296107548652"

-				+ a

-				+ "-2186225041970443252"

-				+ a

-				+ "7423701828375082917"

-				+ a

-				+ "812898257941157078"

-				+ a

-				+ "-3677169155188304232"

-				+ a

-				+ "-4703484088985861598"

-				+ a

-				+ "1187813145481451797"

-				+ a

-				+ "-3858671828440955696"

-				+ a

-				+ "361165121593087376"

-				+ a

-				+ "-8030026277547193265"

-				+ a

-				+ "-3836690016476314495"

-				+ a

-				+ "-7559410562141455589"

-				+ a

-				+ "5883887792631591563"

-				+ a

-				+ "3413382960269418375"

-				+ a

-				+ "4168686984580362464"

-				+ a

-				+ "-702820759068904260"

-				+ a

-				+ "-4363885676806133789"

-				+ a

-				+ "-3658075758606536703"

-				+ a

-				+ "6790627677296078862"

-				+ a

-				+ "7057596009493732924"

-				+ a

-				+ "607510813918713109"

-				+ a

-				+ "4819551316096669112"

-				+ a

-				+ "5145836395770980171"

-				+ a

-				+ "5761136386777137191"

-				+ a

-				+ "1481064066111110981"

-				+ a

-				+ "5693144445371285739"

-				+ a

-				+ "9129919572780718012"

-				+ a

-				+ "-1504083653860623472"

-				+ a

-				+ "2070890902742098359"

-				+ a

-				+ "1480565051121909405"

-				+ a

-				+ "5499577503853737705"

-				+ a

-				+ "-2776125582052960628"

-				+ a

-				+ "-2480684312588104105"

-				+ a

-				+ "8771589187068513557"

-				+ a

-				+ "8067467929933420349"

-				+ a

-				+ "-3295423683867813710"

-				+ a

-				+ "-3361578417678328270"

-				+ a

-				+ "-4121009223520157601"

-				+ a

-				+ "392997535814475914"

-				+ a

-				+ "1789296450207299490"

-				+ a

-				+ "-3697713259734978053"

-				+ a

-				+ "628631279980394186"

-				+ a

-				+ "1538142610757949570"

-				+ a

-				+ "3014708050390717307"

-				+ a

-				+ "8368027918365770375"

-				+ a

-				+ "5272761268686019945"

-				+ a

-				+ "-4588282506250667201"

-				+ a

-				+ "735613646452474722"

-				+ a

-				+ "2336131046108152145"

-				+ a

-				+ "-6713652582424902510"

-				+ a

-				+ "856426609358693308"

-				+ a

-				+ "-5764760478319988222"

-				+ a

-				+ "1317764034487519479"

-				+ a

-				+ "-7663689255410432927"

-				+ a

-				+ "1564984526161167449"

-				+ a

-				+ "-1237279123716355577"

-				+ a

-				+ "5332338165481348539"

-				+ a

-				+ "-4286101521344581322"

-				+ a

-				+ "-2692886887951257765"

-				+ a

-				+ "3081220136049308322"

-				+ a

-				+ "-1005407527749730814"

-				+ a

-				+ "8269155628421292083"

-				+ a

-				+ "-3673754564856205463"

-				+ a

-				+ "-3050564424808653816"

-				+ a

-				+ "1125071308475499224"

-				+ a

-				+ "-5974287850071950401"

-				+ a

-				+ "3330249117666619408"

-				+ a

-				+ "7240820503676705779"

-				+ a

-				+ "1642205853975580779"

-				+ a

-				+ "518033395482912773"

-				+ a

-				+ "9023735332483216960"

-				+ a

-				+ "-362521542291383777"

-				+ a

-				+ "1416200491926804108"

-				+ a

-				+ "4319349826267477878"

-				+ a

-				+ "6098681376734062798"

-				+ a

-				+ "-8811971102703039282"

-				+ a

-				+ "6099455912858083633"

-				+ a

-				+ "-3751004972830609597"

-				+ a

-				+ "-4558788276728518416"

-				+ a

-				+ "6603320167334266181"

-				+ a

-				+ "-1879326311614760715"

-				+ a

-				+ "-1518535272556061725"

-				+ a

-				+ "7939639866029472452"

-				+ a

-				+ "-3942568855900091315"

-				+ a

-				+ "-5149216631387827305"

-				+ a

-				+ "-6188272913878747757"

-				+ a

-				+ "1204133292757319113"

-				+ a

-				+ "1830936117936836274"

-				+ a

-				+ "270507518630958199"

-				+ a

-				+ "5964034136794191057"

-				+ a

-				+ "622086613391553891"

-				+ a

-				+ "-4044109720903427641"

-				+ a

-				+ "5309401104600816924"

-				+ a

-				+ "5854709978342127329"

-				+ a

-				+ "-7113119392306929317"

-				+ a

-				+ "-8296314090384807967"

-				+ a

-				+ "7792947881051106736"

-				+ a

-				+ "-1831540041133485496"

-				+ a

-				+ "1844404915791308381"

-				+ a

-				+ "-2900049116190081832"

-				+ a

-				+ "7604043466623112578"

-				+ a

-				+ "1385230110345476947"

-				+ a

-				+ "-5233101492963391879"

-				+ a

-				+ "2471267247780565641"

-				+ a

-				+ "-5995778305748913277"

-				+ a

-				+ "-3209698986461865839"

-				+ a

-				+ "-8279215312170063453"

-				+ a

-				+ "4462971907002684758"

-				+ a

-				+ "6281311314716264138"

-				+ a

-				+ "-3257960478385428651"

-				+ a

-				+ "-6828294302956554701"

-				+ a

-				+ "6799612423185477796"

-				+ a

-				+ "-8281268754176717040"

-				+ a

-				+ "3538859237519118389"

-				+ a

-				+ "-2495284552219494042"

-				+ a

-				+ "3289767735159024475"

-				+ a

-				+ "-7262666652027208395"

-				+ a

-				+ "-3342179262643369074"

-				+ a

-				+ "-2686393516999860261"

-				+ a

-				+ "-6369045581584952214"

-				+ a

-				+ "-4896397163081092167"

-				+ a

-				+ "-1106429552471910915"

-				+ a

-				+ "7550618187091230230"

-				+ a

-				+ "-3232241069305036991"

-				+ a

-				+ "6993448705049974595"

-				+ a

-				+ "7709134248993830119"

-				+ a

-				+ "4482583112596121856"

-				+ a

-				+ "-5635393839918231466"

-				+ a

-				+ "2762742040278609694"

-				+ a

-				+ "3916419401481784050"

-				+ a

-				+ "8868887623616044645"

-				+ a

-				+ "-1818632570137175647"

-				+ a

-				+ "193235487359260087"

-				+ a

-				+ "575074970976058506"

-				+ a

-				+ "-8985585339031454347"

-				+ a

-				+ "-6338853231125756129"

-				+ a

-				+ "-2809344250173212384"

-				+ a

-				+ "837100051196961885"

-				+ a

-				+ "4519444928612470595"

-				+ a

-				+ "-8831458533041890478"

-				+ a

-				+ "5466635346572995472"

-				+ a

-				+ "-2714544946149435425"

-				+ a

-				+ "-277477702503620791"

-				+ a

-				+ "8272532255686654911"

-				+ a

-				+ "-7610619522511862815"

-				+ a

-				+ "-7645326188242355257"

-				+ a

-				+ "827795157877760994"

-				+ a

-				+ "5437190065560014191"

-				+ a

-				+ "4167221504951586321"

-				+ a

-				+ "3082414627465816208"

-				+ a

-				+ "-6734643063912253745"

-				+ a

-				+ "-5276964537776660114"

-				+ a

-				+ "-9094362759722103871"

-				+ a

-				+ "4595818775753481977"

-				+ a

-				+ "-4087241889267933773"

-				+ a

-				+ "-1257608924355595952"

-				+ a

-				+ "4351732371950830777"

-				+ a

-				+ "5193138130860379269"

-				+ a

-				+ "-3916941014212287849"

-				+ a

-				+ "7594113146195159975"

-				+ a

-				+ "-8695075429018720414"

-				+ a

-				+ "-9144598542982799364"

-				+ a

-				+ "5626727214029601894"

-				+ a

-				+ "-3146570308898533234"

-				+ a

-				+ "4432451326092638538"

-				+ a

-				+ "7168622808530513384"

-				+ a

-				+ "684393440237651826"

-				+ a

-				+ "1760316058825137697"

-				+ a

-				+ "7243506489618044836"

-				+ a

-				+ "3685158225175864601"

-				+ a

-				+ "1600300354429193709"

-				+ a

-				+ "7067462904497261826"

-				+ a

-				+ "-839954699824199739"

-				+ a

-				+ "-1731844344041729246"

-				+ a

-				+ "4120365338300145777"

-				+ a

-				+ "4700617060120681686"

-				+ a

-				+ "8570705998246156200"

-				+ a

-				+ "-7062964399243872039"

-				+ a

-				+ "-8817049929142337927"

-				+ a

-				+ "201542101853499590"

-				+ a

-				+ "5238720077424184939"

-				+ a

-				+ "1788514135136726747"

-				+ a

-				+ "-8309715731125793051"

-				+ a

-				+ "6115412997633031167"

-				+ a

-				+ "-5346494036408308528"

-				+ a

-				+ "-6068025858118821371"

-				+ a

-				+ "-5932259412207441798"

-				+ a

-				+ "2351995352859508274"

-				+ a

-				+ "-3746484280315839043"

-				+ a

-				+ "360454599848620028"

-				+ a

-				+ "3132381951388494432"

-				+ a

-				+ "5049042146436485140"

-				+ a

-				+ "8898775546803910332"

-				+ a

-				+ "-1202919124881683546"

-				+ a

-				+ "7041178572098397346"

-				+ a

-				+ "-8166280725402746913"

-				+ a

-				+ "-8310610786421217156"

-				+ a

-				+ "2015340129615385007"

-				+ a

-				+ "-3112340769538256718"

-				+ a

-				+ "-4753441222255821360"

-				+ a

-				+ "293846787812835150"

-				+ a

-				+ "7664185921988945158"

-				+ a

-				+ "-2429261855800845854"

-				+ a

-				+ "2299891343418022055"

-				+ a

-				+ "-3968905011777301591"

-				+ a

-				+ "-1072388405629031587"

-				+ a

-				+ "7400575921342068203"

-				+ a

-				+ "6126585323173628458"

-				+ a

-				+ "-4199825813150659930"

-				+ a

-				+ "4717958064551551404"

-				+ a

-				+ "8447775056038382954"

-				+ a

-				+ "7550816180641092514"

-				+ a

-				+ "5053394191794161284"

-				+ a

-				+ "-374394710832856914"

-				+ a

-				+ "6673982621964317790"

-				+ a

-				+ "7769099750366112347"

-				+ a

-				+ "582083892204824357"

-				+ a

-				+ "-3924934516439453342"

-				+ a

-				+ "-853371098297634132"

-				+ a

-				+ "-1744211355889126359"

-				+ a

-				+ "5874904351329622672"

-				+ a

-				+ "6480257425044410763"

-				+ a

-				+ "-7287975933281248101"

-				+ a

-				+ "-9009208460900232226"

-				+ a

-				+ "6894996998655032685"

-				+ a

-				+ "-7166863071074039759"

-				+ a

-				+ "-5043653784276649128"

-				+ a

-				+ "1340755988030801365"

-				+ a

-				+ "-5805692447290684532"

-				+ a

-				+ "-639637588574950882"

-				+ a

-				+ "1992946243761046899"

-				+ a

-				+ "3236727614859775082"

-				+ a

-				+ "-992892522569080738"

-				+ a

-				+ "-6739338734913933726"

-				+ a

-				+ "-5698245368860006559"

-				+ a

-				+ "320432080719244416"

-				+ a

-				+ "-154166996144617606"

-				+ a

-				+ "-9045262093639175472"

-				+ a

-				+ "5979842622142929912"

-				+ a

-				+ "-584268127486379527"

-				+ a

-				+ "-6285866132203004646"

-				+ a

-				+ "4263905288286539902"

-				+ a

-				+ "-6827235910360165131"

-				+ a

-				+ "-3833636050304093119"

-				+ a

-				+ "5742151528782102171"

-				+ a

-				+ "2512406733069500489"

-				+ a

-				+ "6777198207780713337"

-				+ a

-				+ "-1392133474325269820"

-				+ a

-				+ "-5402246813652006143"

-				+ a

-				+ "-695336947609858225"

-				+ a

-				+ "-7869633046346805112"

-				+ a

-				+ "-8254465118773780108"

-				+ a

-				+ "372642895695868784"

-				+ a

-				+ "-2168967434964442253"

-				+ a

-				+ "6016733552586085769"

-				+ a

-				+ "9166421280254987588"

-				+ a

-				+ "1044428613109144500"

-				+ a

-				+ "-8744502771805909028"

-				+ a

-				+ "3543447616884352201"

-				+ a

-				+ "1070423814532890799"

-				+ a

-				+ "2808313361837951674"

-				+ a

-				+ "2402973008482417014"

-				+ a

-				+ "5283082923061875192"

-				+ a

-				+ "1005241756636803121"

-				+ a

-				+ "-3707900364373038315"

-				+ a

-				+ "-2537550726905607313"

-				+ a

-				+ "7535221891479136938"

-				+ a

-				+ "4745685907260503757"

-				+ a

-				+ "-3989952935921968262"

-				+ a

-				+ "-6396042900849329221"

-				+ a

-				+ "-1912658222926410025"

-				+ a

-				+ "5559729587433038470"

-				+ a

-				+ "-9042158123009519804"

-				+ a

-				+ "-7508469492255465583"

-				+ a

-				+ "-5802746913634379429"

-				+ a

-				+ "-1030766020219629339"

-				+ a

-				+ "3996466211969482480"

-				+ a

-				+ "971307730651647981"

-				+ a

-				+ "-8204818657440638857"

-				+ a

-				+ "4246419169617795961"

-				+ a

-				+ "197105093958543522"

-				+ a

-				+ "3987224458460585484"

-				+ a

-				+ "-5566995006900283826"

-				+ a

-				+ "-5090718343345925037"

-				+ a

-				+ "-362961194757726049"

-				+ a

-				+ "-6766655973311703054"

-				+ a

-				+ "-8152550618578079383"

-				+ a

-				+ "8727484798650946182"

-				+ a

-				+ "3277520600155189713"

-				+ a

-				+ "-4825917241716417305"

-				+ a

-				+ "6404577761645561139"

-				+ a

-				+ "-4088708628546203987"

-				+ a

-				+ "-1469454737835569594"

-				+ a

-				+ "360256153285427701"

-				+ a

-				+ "-4096673187546291586"

-				+ a

-				+ "3028455180906827621"

-				+ a

-				+ "-5697812617708302415"

-				+ a

-				+ "-6199077867733285268"

-				+ a

-				+ "5869119992708290557"

-				+ a

-				+ "3047200773521057230"

-				+ a

-				+ "-1935573449143760920"

-				+ a

-				+ "1181227474209347679"

-				+ a

-				+ "-5192436270056813880"

-				+ a

-				+ "-5981835572353713650"

-				+ a

-				+ "-2378640542305853084"

-				+ a

-				+ "-8845131644051969755"

-				+ a

-				+ "-6504576818889302309"

-				+ a

-				+ "-6549477532194232370"

-				+ a

-				+ "-2788711288451297340"

-				+ a

-				+ "-2832019670072094248"

-				+ a

-				+ "341748228777783190"

-				+ a

-				+ "-2903458835888903493"

-				+ a

-				+ "-129880745849696182"

-				+ a

-				+ "6381150392315725785"

-				+ a

-				+ "-30597152500213698"

-				+ a

-				+ "4960038852833483526"

-				+ a

-				+ "5189131457881111132"

-				+ a

-				+ "-3379666811891769014"

-				+ a

-				+ "-4795960766138987397"

-				+ a

-				+ "-8538291988532430363"

-				+ a

-				+ "-5011019319379369980"

-				+ a

-				+ "-3466784809454327406"

-				+ a

-				+ "-7244399554717482792"

-				+ a

-				+ "4037898002906123792"

-				+ a

-				+ "7063786579803962993"

-				+ a

-				+ "7035924209773118941"

-				+ a

-				+ "421385459932308295"

-				+ a

-				+ "-5379985667116707772"

-				+ a

-				+ "-7292085578809000332"

-				+ a

-				+ "-1634305536860165734"

-				+ a

-				+ "1928407863900382106"

-				+ a

-				+ "-6697146387006003261"

-				+ a

-				+ "6557690716054209796"

-				+ a

-				+ "8930733808836057851"

-				+ a

-				+ "-1158662967726257141"

-				+ a

-				+ "4585941391178004178"

-				+ a

-				+ "-6840073792724806726"

-				+ a

-				+ "7050725063443220344"

-				+ a

-				+ "-6111592916421269067"

-				+ a

-				+ "7974338844007528250"

-				+ a

-				+ "-5760358258195547818"

-				+ a

-				+ "-330810618067720116"

-				+ a

-				+ "-7082179771767356136"

-				+ a

-				+ "5552363012933789385"

-				+ a

-				+ "8688981596976075320"

-				+ a

-				+ "5500270448714413815"

-				+ a

-				+ "4068339518628719257"

-				+ a

-				+ "5622887313234789326"

-				+ a

-				+ "7476523530169391335"

-				+ a

-				+ "-2439863629179014726"

-				+ a

-				+ "1586160239952639"

-				+ a

-				+ "-2384342299521656417"

-				+ a

-				+ "-2832172495405922674"

-				+ a

-				+ "9186454350340599838"

-				+ a

-				+ "-7119506664283046921"

-				+ a

-				+ "8722237800224251158"

-				+ a

-				+ "-8028932238977825926"

-				+ a

-				+ "-6679633586158794899"

-				+ a

-				+ "-4128085193502769006"

-				+ a

-				+ "-2694889702010005232"

-				+ a

-				+ "28060721560266653"

-				+ a

-				+ "-4036396181941043401"

-				+ a

-				+ "573627557196513730"

-				+ a

-				+ "-2886825953052529939"

-				+ a

-				+ "-9021853037597226226"

-				+ a

-				+ "6639775871172040143"

-				+ a

-				+ "6325282655181082336"

-				+ a

-				+ "-2828784674020405485"

-				+ a

-				+ "8053228464922224263"

-				+ a

-				+ "835754613661258956"

-				+ a

-				+ "687616988668427817"

-				+ a

-				+ "-7115215555307553429"

-				+ a

-				+ "-6134585960732965914"

-				+ a

-				+ "4365544543977960840"

-				+ a

-				+ "-2153933826332711620"

-				+ a

-				+ "6426388724066702818"

-				+ a

-				+ "4934635694489665196"

-				+ a

-				+ "-3857729065161435740"

-				+ a

-				+ "103820663860486558"

-				+ a

-				+ "-8419482397683868438"

-				+ a

-				+ "-2219101567048493951"

-				+ a

-				+ "-5163267524901225598"

-				+ a

-				+ "-2240709922608058058"

-				+ a

-				+ "4095375526281218038"

-				+ a

-				+ "-2434822556161931858"

-				+ a

-				+ "-6097342827894248758"

-				+ a

-				+ "-2483085308495160623"

-				+ a

-				+ "6990649954638076417"

-				+ a

-				+ "-7748372183265049183"

-				+ a

-				+ "8769824456353646822"

-				+ a

-				+ "-6566599754748467553"

-				+ a

-				+ "-8767535561125982200"

-				+ a

-				+ "-5767847014813615251"

-				+ a

-				+ "16585727054975365"

-				+ a

-				+ "7061426797167339188"

-				+ a

-				+ "3342377856798498187"

-				+ a

-				+ "5424143702885061191"

-				+ a

-				+ "-4697912950102238436"

-				+ a

-				+ "-5183789779938242680"

-				+ a

-				+ "1332912957579573520"

-				+ a

-				+ "7162169011139090954"

-				+ a

-				+ "8029173537521838944"

-				+ a

-				+ "7949758510655971447"

-				+ a

-				+ "-8627477637634983776"

-				+ a

-				+ "4781328307785922484"

-				+ a

-				+ "-1547317671117136947"

-				+ a

-				+ "3562813702326426690"

-				+ a

-				+ "6464649078692052553"

-				+ a

-				+ "-5537771374198921753"

-				+ a

-				+ "3422296785291906594"

-				+ a

-				+ "-815183837930335859"

-				+ a

-				+ "-2469545167774288742"

-				+ a

-				+ "3183967805852812649"

-				+ a

-				+ "6195732569668481251"

-				+ a

-				+ "5560823059519075167"

-				+ a

-				+ "-6700605253108557015"

-				+ a

-				+ "-6845818076730311260"

-				+ a

-				+ "-9102092416485747754"

-				+ a

-				+ "-7466079552906411612"

-				+ a

-				+ "7552162934089048849"

-				+ a

-				+ "6274144703036091686"

-				+ a

-				+ "-5797395244716438394"

-				+ a

-				+ "-2410484764424650322"

-				+ a

-				+ "8218696676651047788"

-				+ a

-				+ "-1364874463406577118"

-				+ a

-				+ "6390770316670610115"

-				+ a

-				+ "2923279350716860080"

-				+ a

-				+ "8704806818765876702"

-				+ a

-				+ "-4708440064978677010"

-				+ a

-				+ "8392838990546337056"

-				+ a

-				+ "8120920544314427970"

-				+ a

-				+ "-6271220152228353270"

-				+ a

-				+ "-941748393170030973"

-				+ a

-				+ "6372744708489078132"

-				+ a

-				+ "7790274732062971104"

-				+ a

-				+ "1358384079472387866"

-				+ a

-				+ "-3608381090258920192"

-				+ a

-				+ "5917622351180168538"

-				+ a

-				+ "3095599168623588971"

-				+ a

-				+ "-653667630632311237"

-				+ a

-				+ "5891266588269467688"

-				+ a

-				+ "-7208969002187126095"

-				+ a

-				+ "-883548513504211290"

-				+ a

-				+ "2726760945793685790"

-				+ a

-				+ "-2982103471807609889"

-				+ a

-				+ "8914879214672593948"

-				+ a

-				+ "-3607349655557495366"

-				+ a

-				+ "8116698847766243705"

-				+ a

-				+ "308162547213815472"

-				+ a

-				+ "-1275284704403413630"

-				+ a

-				+ "-1778632605110201166"

-				+ a

-				+ "-3554963472166742396"

-				+ a

-				+ "-8997883784976997814"

-				+ a

-				+ "4735346424799974543"

-				+ a

-				+ "6795654028385140224"

-				+ a

-				+ "8043450937201975677"

-				+ a

-				+ "-3617029366231997442"

-				+ a

-				+ "7177497156531426610"

-				+ a

-				+ "242867771455100406"

-				+ a

-				+ "7622822328305617444"

-				+ a

-				+ "-4045393600264665789"

-				+ a

-				+ "8628123722466315805"

-				+ a

-				+ "5930021295582837582"

-				+ a

-				+ "1536042192894024511"

-				+ a

-				+ "2390698953619219507"

-				+ a

-				+ "9163375968628710728"

-				+ a

-				+ "4308476216190967715"

-				+ a

-				+ "8009358785036420887"

-				+ a

-				+ "1800348127777111051"

-				+ a

-				+ "8509601059683269743"

-				+ a

-				+ "6258915416005705718"

-				+ a

-				+ "1082077504080286714"

-				+ a

-				+ "-1826263866120346193"

-				+ a

-				+ "6025389024542848399"

-				+ a

-				+ "-5133626746882118359"

-				+ a

-				+ "6154119686706124983"

-				+ a

-				+ "-1605145526392461277"

-				+ a

-				+ "-4333303749316450451"

-				+ a

-				+ "114733945430287495"

-				+ a

-				+ "8622181414885296421"

-				+ a

-				+ "-4196544011026015981"

-				+ a

-				+ "5346853227809561103"

-				+ a

-				+ "2510537901621147706"

-				+ a

-				+ "-471289725201558884"

-				+ a

-				+ "-5041864661219029684"

-				+ a

-				+ "-5290882543828245696"

-				+ a

-				+ "310406345774434260"

-				+ a

-				+ "-836120429100169095"

-				+ a

-				+ "-2875972663477397184"

-				+ a

-				+ "9086016168367659792"

-				+ a

-				+ "8311431726304676039"

-				+ a

-				+ "5143129165001711775"

-				+ a

-				+ "4016919432949997959"

-				+ a

-				+ "-7749693328074760110"

-				+ a

-				+ "-5235410215971905811"

-				+ a

-				+ "7569569929589047281"

-				+ a

-				+ "-1581487344202597543"

-				+ a

-				+ "-2823291768960471779"

-				+ a

-				+ "-4769131022362688256"

-				+ a

-				+ "2419524602717574873"

-				+ a

-				+ "4050479565818895636"

-				+ a

-				+ "449800018403605324"

-				+ a

-				+ "1121413394434802979"

-				+ a

-				+ "-2209767303172600380"

-				+ a

-				+ "-5865159681775673668"

-				+ a

-				+ "6682993921838332158"

-				+ a

-				+ "-6357199263009504937"

-				+ a

-				+ "-4366856823012441692"

-				+ a

-				+ "-8119186401376499082"

-				+ a

-				+ "-1900663570264666858"

-				+ a

-				+ "6128737523260902407"

-				+ a

-				+ "-8361790953618845587"

-				+ a

-				+ "-8438846588423717620"

-				+ a

-				+ "5379136913256590268"

-				+ a

-				+ "-8959828995842764675"

-				+ a

-				+ "2013485321765713304"

-				+ a

-				+ "651946542299993708"

-				+ a

-				+ "-5391177516746868006"

-				+ a

-				+ "3425694396468759402"

-				+ a

-				+ "-1979882897317923166"

-				+ a

-				+ "-2388508052192282071"

-				+ a

-				+ "1107642281868904095"

-				+ a

-				+ "4894802375968232290"

-				+ a

-				+ "-2428702934885589106"

-				+ a

-				+ "748293452130295800"

-				+ a

-				+ "5691345231677294080"

-				+ a

-				+ "-2486174962298326691"

-				+ a

-				+ "7585678359546040159"

-				+ a

-				+ "-1165316407513877451"

-				+ a

-				+ "2776342058318376754"

-				+ a

-				+ "-4940343491937875656"

-				+ a

-				+ "4902665902804440223"

-				+ a

-				+ "-7004665724076013476"

-				+ a

-				+ "-7587472018453996495"

-				+ a

-				+ "-6128233963625541070"

-				+ a

-				+ "8765264654317689308"

-				+ a

-				+ "-2735507998347373681"

-				+ a

-				+ "6869498668177194813"

-				+ a

-				+ "-2309224666323771537"

-				+ a

-				+ "-4675659234126814683"

-				+ a

-				+ "-645016471268424937"

-				+ a

-				+ "4348650649368700760"

-				+ a

-				+ "-214874236310013831"

-				+ a

-				+ "4227405815643690385"

-				+ a

-				+ "3320061444282227419"

-				+ a

-				+ "3492145785275045065"

-				+ a

-				+ "280923641490784697"

-				+ a

-				+ "1729100804134378936"

-				+ a

-				+ "-7018883124081924630"

-				+ a

-				+ "-2553608611882476133"

-				+ a

-				+ "-8712100756899236606"

-				+ a

-				+ "-7047559964016225736"

-				+ a

-				+ "2257846751488374520"

-				+ a

-				+ "578572409173107231"

-				+ a

-				+ "4345843164919605767"

-				+ a

-				+ "-5388543504591522511"

-				+ a

-				+ "-1420156524092622632"

-				+ a

-				+ "827096772545466725"

-				+ a

-				+ "9137641896724442848"

-				+ a

-				+ "-1589360466733170743"

-				+ a

-				+ "7521623884226563847"

-				+ a

-				+ "-4279434455789503033"

-				+ a

-				+ "7492695699111981194"

-				+ a

-				+ "662856192142196394"

-				+ a

-				+ "8334988775092012577"

-				+ a

-				+ "1671344884230832479"

-				+ a

-				+ "-2044014017311657117"

-				+ a

-				+ "6583901209675742847"

-				+ a

-				+ "5354213495517942889"

-				+ a

-				+ "-4296590309239016820"

-				+ a

-				+ "-8299904015655199822"

-				+ a

-				+ "7163309498874579066"

-				+ a

-				+ "8906980711730899526"

-				+ a

-				+ "-8157592364450060175"

-				+ a

-				+ "3401949787303101981"

-				+ a

-				+ "-4223572875100557615"

-				+ a

-				+ "5474605156432827072"

-				+ a

-				+ "3981886448469888886"

-				+ a

-				+ "-9195922886710120400"

-				+ a

-				+ "-6781980014290589380"

-				+ a

-				+ "-4650095012203781113"

-				+ a

-				+ "-2670393501310972475"

-				+ a

-				+ "244857965431795933"

-				+ a

-				+ "4963832997474992505"

-				+ a

-				+ "-7039257533111255059"

-				+ a

-				+ "-6826075960450943026"

-				+ a

-				+ "1201368054799712503"

-				+ a

-				+ "-9222551770351120439"

-				+ a

-				+ "-22866653804370841"

-				+ a

-				+ "8437961880322577603"

-				+ a

-				+ "-6125560768563752011"

-				+ a

-				+ "7574367817931360112"

-				+ a

-				+ "5365028931303869455"

-				+ a

-				+ "-5058302939379092707"

-				+ a

-				+ "2455138729010151222"

-				+ a

-				+ "9203935591068668728"

-				+ a

-				+ "2796918361659563685"

-				+ a

-				+ "-8483360316871766763"

-				+ a

-				+ "-9067058866623859465"

-				+ a

-				+ "7843656574609474031"

-				+ a

-				+ "-8147765876542590583"

-				+ a

-				+ "1519804927585221932"

-				+ a

-				+ "8611916919506422366"

-				+ a

-				+ "-6198901302068952348"

-				+ a

-				+ "579403830270105667"

-				+ a

-				+ "1609687792509862563"

-				+ a

-				+ "-7231889928507289293"

-				+ a

-				+ "6732812887884149358"

-				+ a

-				+ "1204881394266834172"

-				+ a

-				+ "4951141969248441860"

-				+ a

-				+ "1863090715134214177"

-				+ a

-				+ "-6666109477540514203"

-				+ a

-				+ "-280648257592952574"

-				+ a

-				+ "-4250872315774251625"

-				+ a

-				+ "3996873936390056762"

-				+ a

-				+ "5520288376047446695"

-				+ a

-				+ "-4225712827009972920"

-				+ a

-				+ "6640668318007251438"

-				+ a

-				+ "-7822277872013652880"

-				+ a

-				+ "-3244108851453600363"

-				+ a

-				+ "-2181521917129762077"

-				+ a

-				+ "2686564367700992602"

-				+ a

-				+ "-2258981347631293411"

-				+ a

-				+ "-1571417078447055725"

-				+ a

-				+ "-4980342251464119410"

-				+ a

-				+ "469673291326368115"

-				+ a

-				+ "8423225432380111228"

-				+ a

-				+ "-7670022367894187893"

-				+ a

-				+ "5076231647728900647"

-				+ a

-				+ "-247665089260674669"

-				+ a

-				+ "5068764746662372141"

-				+ a

-				+ "2492346037887003242"

-				+ a

-				+ "2510738240134871856"

-				+ a

-				+ "-7334958788734858917"

-				+ a

-				+ "-2877153358493990987"

-				+ a

-				+ "-4716530858546503774"

-				+ a

-				+ "-4831160593616100017"

-				+ a

-				+ "-4158965795250821074"

-				+ a

-				+ "2725746077492180476"

-				+ a

-				+ "-6981354750764550489"

-				+ a

-				+ "4984677901836358094"

-				+ a

-				+ "-2897492827028626767"

-				+ a

-				+ "-3007807911349512755"

-				+ a

-				+ "-2335285518997281934"

-				+ a

-				+ "-6497222833057231589"

-				+ a

-				+ "-5969540629175099566"

-				+ a

-				+ "-2726402144599502759"

-				+ a

-				+ "4983488580263719937"

-				+ a

-				+ "4618068593733564233"

-				+ a

-				+ "4674808449266055869"

-				+ a

-				+ "2778048184895307956"

-				+ a

-				+ "1593959768661134549"

-				+ a

-				+ "-1168323625394891634"

-				+ a

-				+ "-8431953809781912472"

-				+ a

-				+ "7389772160540771415"

-				+ a

-				+ "1237587864098927986"

-				+ a

-				+ "-5053432970285126205"

-				+ a

-				+ "3754299562846812936"

-				+ a

-				+ "6445576852995318684"

-				+ a

-				+ "6565115049261397218"

-				+ a

-				+ "-7760314081139932953"

-				+ a

-				+ "-4896883839284862694"

-				+ a

-				+ "1182022690251590213"

-				+ a

-				+ "-1550248977507238349"

-				+ a

-				+ "-1609617831168212580"

-				+ a

-				+ "4264076591236890972"

-				+ a

-				+ "7395382158106054646"

-				+ a

-				+ "-7912578828193846028"

-				+ a

-				+ "-3041911089740977752"

-				+ a

-				+ "-3238549283056366768"

-				+ a

-				+ "-2443360979708866378"

-				+ a

-				+ "5544029753932960188"

-				+ a

-				+ "-7192309836319352458"

-				+ a

-				+ "4036598099433992128"

-				+ a

-				+ "-9082185255963159182"

-				+ a

-				+ "-3092063436637565277"

-				+ a

-				+ "-8927036557005928301"

-				+ a

-				+ "8844347650138588468"

-				+ a

-				+ "-8111125464252691334"

-				+ a

-				+ "-1918778248598993977"

-				+ a

-				+ "1831582801437623857"

-				+ a

-				+ "6771172937014131838"

-				+ a

-				+ "7830774901345473026"

-				+ a

-				+ "-5160919996654154807"

-				+ a

-				+ "-3697803209226155609"

-				+ a

-				+ "1291583943740499247"

-				+ a

-				+ "-1955003385519519581"

-				+ a

-				+ "9073059988413483085"

-				+ a

-				+ "1168543109901128430"

-				+ a

-				+ "2599186224882680351"

-				+ a

-				+ "-5203128507699019305"

-				+ a

-				+ "-8749829865884369282"

-				+ a

-				+ "6549061450013465382"

-				+ a

-				+ "-3512235379684577815"

-				+ a

-				+ "5354983726838560384"

-				+ a

-				+ "-2946006055244070009"

-				+ a

-				+ "-1375597554733738737"

-				+ a

-				+ "-7101682434478354580"

-				+ a

-				+ "-6001596329509810335"

-				+ a

-				+ "-5869662267426146021"

-				+ a

-				+ "-3599685847420338800"

-				+ a

-				+ "8754157200375258699"

-				+ a

-				+ "4234717604086300067"

-				+ a

-				+ "5397380997623945709"

-				+ a

-				+ "4599376998411336756"

-				+ a

-				+ "-1965261020938324114"

-				+ a

-				+ "-3385719177956760750"

-				+ a

-				+ "-2142781605826243015"

-				+ a

-				+ "-3905952351338245208"

-				+ a

-				+ "95143064812765567"

-				+ a

-				+ "-1039468486826062882"

-				+ a

-				+ "6223203864543739962"

-				+ a

-				+ "1787093017719824959"

-				+ a

-				+ "-8676033947351342738"

-				+ a

-				+ "4213743633756124315"

-				+ a

-				+ "-6709689043924662095"

-				+ a

-				+ "2733282328469795438"

-				+ a

-				+ "-8513384930568569106"

-				+ a

-				+ "4497638213147977025"

-				+ a

-				+ "7447736506608388965"

-				+ a

-				+ "8977452185526147920"

-				+ a

-				+ "2260626955068987637"

-				+ a

-				+ "2902975399257970796"

-				+ a

-				+ "3972828820308601757"

-				+ a

-				+ "195060761120092450"

-				+ a

-				+ "-6010009201321366976"

-				+ a

-				+ "-7997841208519183331"

-				+ a

-				+ "-8433656859080245080"

-				+ a

-				+ "6433481101909312968"

-				+ a

-				+ "-8956942505836208692"

-				+ a

-				+ "-7605763219271298505"

-				+ a

-				+ "5263604930838418005"

-				+ a

-				+ "-4138387242801350329"

-				+ a

-				+ "436263034223612766"

-				+ a

-				+ "-7964167185980745469"

-				+ a

-				+ "-2757956355998227077"

-				+ a

-				+ "-7013914980393985463"

-				+ a

-				+ "4920775969996911612"

-				+ a

-				+ "-4582086016477731924"

-				+ a

-				+ "-6339333432392050573"

-				+ a

-				+ "5358588603164071580"

-				+ a

-				+ "6335034181282715250"

-				+ a

-				+ "-2704890288056173884"

-				+ a

-				+ "-4698621662494535783"

-				+ a

-				+ "6880454043898100659"

-				+ a

-				+ "6253189057010332623"

-				+ a

-				+ "-4043699176241963842"

-				+ a

-				+ "-1425563574446132786"

-				+ a

-				+ "-5115979488304773341"

-				+ a

-				+ "-3618321007201522715"

-				+ a

-				+ "-6202461726546061711"

-				+ a

-				+ "8560786061659976953"

-				+ a

-				+ "2359788385103071015"

-				+ a

-				+ "2711419013815949772"

-				+ a

-				+ "-802706265648649317"

-				+ a

-				+ "-559100995080390015"

-				+ a

-				+ "-1762456854784718051"

-				+ a

-				+ "3568162812034725983"

-				+ a

-				+ "-7088544835602968740"

-				+ a

-				+ "7181191939156261844"

-				+ a

-				+ "-4907470742644562937"

-				+ a

-				+ "7862184013121427133"

-				+ a

-				+ "4889495530802425015"

-				+ a

-				+ "-7622081436878403868"

-				+ a

-				+ "3081791501595718923"

-				+ a

-				+ "2026591040025517258"

-				+ a

-				+ "-3433108361605185772"

-				+ a

-				+ "1303902686630382245"

-				+ a

-				+ "8717252537464132596"

-				+ a

-				+ "-7826352017071792213"

-				+ a

-				+ "3986558661259016897"

-				+ a

-				+ "-5969021043598609519"

-				+ a

-				+ "-1210424265454929490"

-				+ a

-				+ "8088806127965996622"

-				+ a

-				+ "-1381999595539233428"

-				+ a

-				+ "1016086461466957860"

-				+ a

-				+ "5027110879786730189"

-				+ a

-				+ "7541586340271209952"

-				+ a

-				+ "2399820556144787115"

-				+ a

-				+ "-3772769405077359265"

-				+ a

-				+ "-7453691879492239353"

-				+ a

-				+ "-6106216866350367148"

-				+ a

-				+ "811781994788345972"

-				+ a

-				+ "-2078854042860684471"

-				+ a

-				+ "3374140076271900341"

-				+ a

-				+ "8963113579475377891"

-				+ a

-				+ "6502993271279271845"

-				+ a

-				+ "348880398593501545"

-				+ a

-				+ "7903028158370050391"

-				+ a

-				+ "-2750487853317571962"

-				+ a

-				+ "7982831848166478973"

-				+ a

-				+ "-1926228812824511666"

-				+ a

-				+ "9189621107322060813"

-				+ a

-				+ "8401548749611295870"

-				+ a

-				+ "1878075903385072417"

-				+ a

-				+ "6694229297750189319"

-				+ a

-				+ "-7646662496352024290"

-				+ a

-				+ "4411002633420795085"

-				+ a

-				+ "8599003856471362584"

-				+ a

-				+ "-6922808322659934293"

-				+ a

-				+ "3317673841869146485"

-				+ a

-				+ "1459316535183914170"

-				+ a

-				+ "-1703167266964255537"

-				+ a

-				+ "4727044780602312147"

-				+ a

-				+ "7841100184412857631"

-				+ a

-				+ "-1295530100662922415"

-				+ a

-				+ "6734803838327379991"

-				+ a

-				+ "559506802001903643"

-				+ a

-				+ "8663271475052865486"

-				+ a

-				+ "-2468817170604045855"

-				+ a

-				+ "-2817063210052612446"

-				+ a

-				+ "-3720102142177214044"

-				+ a

-				+ "-5640450740202777255"

-				+ a

-				+ "690383845834852476"

-				+ a

-				+ "-8306427862592886903"

-				+ a

-				+ "-3736990181363936107"

-				+ a

-				+ "-2986866306441131462"

-				+ a

-				+ "9106463985653875322"

-				+ a

-				+ "665981939139107017"

-				+ a

-				+ "-3844940684705335659"

-				+ a

-				+ "6280861445436615694"

-				+ a

-				+ "3956722147803271926"

-				+ a

-				+ "-5634382710667391039"

-				+ a

-				+ "7313964839859504467"

-				+ a

-				+ "-6204547114658567655"

-				+ a

-				+ "8074487499212157263"

-				+ a

-				+ "1482811611195095477"

-				+ a

-				+ "-3928275414994781441"

-				+ a

-				+ "-560715991707120193"

-				+ a

-				+ "-8053382484339034711"

-				+ a

-				+ "-3360476595331163058"

-				+ a

-				+ "-4784060492033787186"

-				+ a

-				+ "5286331065042164492"

-				+ a

-				+ "9073220514388929898"

-				+ a

-				+ "8273762920533311000"

-				+ a

-				+ "-6799513291991536263"

-				+ a

-				+ "4043271263802949933"

-				+ a

-				+ "4475345522798952381"

-				+ a

-				+ "-248882133580030205"

-				+ a

-				+ "-8175034539526476354"

-				+ a

-				+ "6125045191655971573"

-				+ a

-				+ "1810810648639054354"

-				+ a

-				+ "-587585792723615517"

-				+ a

-				+ "4670222394891044062"

-				+ a

-				+ "-7975984184583733415"

-				+ a

-				+ "5842356717397744796"

-				+ a

-				+ "8663949881797689328"

-				+ a

-				+ "-3054207219808569570"

-				+ a

-				+ "8251016140953608692"

-				+ a

-				+ "-6142951917503406383"

-				+ a

-				+ "-1732984775710557369"

-				+ a

-				+ "-5955757954531237818"

-				+ a

-				+ "6418042867248350084"

-				+ a

-				+ "-6414726438342237202"

-				+ a

-				+ "7781465661939518822"

-				+ a

-				+ "-649581833388810203"

-				+ a

-				+ "-2820630725805002133"

-				+ a

-				+ "5738329793443063665"

-				+ a

-				+ "6234863363416904884"

-				+ a

-				+ "-9137621878907201782"

-				+ a

-				+ "-258166755246777553"

-				+ a

-				+ "-1675536541671380579"

-				+ a

-				+ "7902751979806641143"

-				+ a

-				+ "8016406561088123468"

-				+ a

-				+ "5759006811329456378"

-				+ a

-				+ "-6091398283406965767"

-				+ a

-				+ "-4328822724025519397"

-				+ a

-				+ "6427841452113168580"

-				+ a

-				+ "-4926996329371650534"

-				+ a

-				+ "-1306633257330962991"

-				+ a

-				+ "9137733012256900722"

-				+ a

-				+ "3440956034324334414"

-				+ a

-				+ "-8573756505272742782"

-				+ a

-				+ "-4624910331391176524"

-				+ a

-				+ "3425008439753968047"

-				+ a

-				+ "-734596251718242996"

-				+ a

-				+ "7572637956277040712"

-				+ a

-				+ "1322373237301316852"

-				+ a

-				+ "5810552390058909162"

-				+ a

-				+ "199503054485051682"

-				+ a

-				+ "-764517467273486811"

-				+ a

-				+ "-840679265868657111"

-				+ a

-				+ "1371535877482736479"

-				+ a

-				+ "715197949572424891"

-				+ a

-				+ "-1101467851466129416"

-				+ a

-				+ "5500149141406191534"

-				+ a

-				+ "-2029138182667282002"

-				+ a

-				+ "-7745762717888982525"

-				+ a

-				+ "9202194397017614659"

-				+ a

-				+ "-4830429299923406557"

-				+ a

-				+ "-294973683082700707"

-				+ a

-				+ "-770719946520934550"

-				+ a

-				+ "-6003149868751828564"

-				+ a

-				+ "1023115426992093929"

-				+ a

-				+ "-2808832362196207791"

-				+ a

-				+ "-148560890012459929"

-				+ a

-				+ "-3643464539407985794"

-				+ a

-				+ "-8410227596794760535"

-				+ a

-				+ "-5181799262618054823"

-				+ a

-				+ "-1793478725375805965"

-				+ a

-				+ "-3690717729206571995"

-				+ a

-				+ "4781512499416416206"

-				+ a

-				+ "493328761242909347"

-				+ a

-				+ "-1263618823915441398"

-				+ a

-				+ "-1352133272625255243"

-				+ a

-				+ "-584209334795952122"

-				+ a

-				+ "5394732652930194757"

-				+ a

-				+ "2730298801417611566"

-				+ a

-				+ "6127272148572058212"

-				+ a

-				+ "-1331780583464768572"

-				+ a

-				+ "3092705661319183797"

-				+ a

-				+ "-3358432702900621085"

-				+ a

-				+ "-7547881226162667764"

-				+ a

-				+ "5828399694397811393"

-				+ a

-				+ "2231431973296909649"

-				+ a

-				+ "8779788609758773812"

-				+ a

-				+ "8714704936049961386"

-				+ a

-				+ "4943063128132597879"

-				+ a

-				+ "-3867062250178002727"

-				+ a

-				+ "-8339810247374085843"

-				+ a

-				+ "7234933578578419426"

-				+ a

-				+ "-402527188847953755"

-				+ a

-				+ "3086955841106122992"

-				+ a

-				+ "-689626326941754786"

-				+ a

-				+ "6346321656427491704"

-				+ a

-				+ "4841461452866853838"

-				+ a

-				+ "-7570267338657285474"

-				+ a

-				+ "-5549769923408703649"

-				+ a

-				+ "-6802003668512654632"

-				+ a

-				+ "5643116227623318457"

-				+ a

-				+ "-276980324301277232"

-				+ a

-				+ "-6896145161449352378"

-				+ a

-				+ "7000112851564301199"

-				+ a

-				+ "1123739621890119666"

-				+ a

-				+ "-1273471234785794089"

-				+ a

-				+ "5678409026331514674"

-				+ a

-				+ "-6634675684686943281"

-				+ a

-				+ "-1742556170324272568"

-				+ a

-				+ "-2341677967153991707"

-				+ a

-				+ "-6013346906619287868"

-				+ a

-				+ "-2265904069113320465"

-				+ a

-				+ "-5082431775224591539"

-				+ a

-				+ "5150530461316553619"

-				+ a

-				+ "-7701169879475571551"

-				+ a

-				+ "-4413654608010492695"

-				+ a

-				+ "-8622509856706064679"

-				+ a

-				+ "-7401519088241343138"

-				+ a

-				+ "6220527027528988401"

-				+ a

-				+ "9176542381028493531"

-				+ a

-				+ "2305793753238814856"

-				+ a

-				+ "-6617674145447145691"

-				+ a

-				+ "3106567589671900131"

-				+ a

-				+ "6689161216257139590"

-				+ a

-				+ "168889743807948855"

-				+ a

-				+ "7264870661777140397"

-				+ a

-				+ "-8665889717474009561"

-				+ a

-				+ "-5211218139780470062"

-				+ a

-				+ "915946055255785099"

-				+ a

-				+ "6557470483819917853"

-				+ a

-				+ "-3230930794341326478"

-				+ a

-				+ "-8261383331801563320"

-				+ a

-				+ "-2933248498027527830"

-				+ a

-				+ "3362285046791131266"

-				+ a

-				+ "-3236602998387360002"

-				+ a

-				+ "-8958841079789863786"

-				+ a

-				+ "-3472701866284984193"

-				+ a

-				+ "-3511286732130567604"

-				+ a

-				+ "-6832401335718815225"

-				+ a

-				+ "8495013884793993743"

-				+ a

-				+ "8478585801967012282"

-				+ a

-				+ "4545872409451722191"

-				+ a

-				+ "8751458915670103119"

-				+ a

-				+ "-3763263867978786008"

-				+ a

-				+ "-1505329801046065714"

-				+ a

-				+ "-1487289463746694204"

-				+ a

-				+ "1347751514604296858"

-				+ a

-				+ "4784023666843971581"

-				+ a

-				+ "4903739282273211570"

-				+ a

-				+ "-3903776439577921595"

-				+ a

-				+ "8906566957544227123"

-				+ a

-				+ "6453203279956387273"

-				+ a

-				+ "-7452238920921298399"

-				+ a

-				+ "8285138967744368852"

-				+ a

-				+ "-6353495953655828378"

-				+ a

-				+ "5478630133774944113"

-				+ a

-				+ "-1848015806237578727"

-				+ a

-				+ "1726662551911588308"

-				+ a

-				+ "-993442115399966460"

-				+ a

-				+ "6049095848239074810"

-				+ a

-				+ "4136475939674117472"

-				+ a

-				+ "-9075783297092503025"

-				+ a

-				+ "-2739244532591253278"

-				+ a

-				+ "6336851307741455"

-				+ a

-				+ "7639089003606955514"

-				+ a

-				+ "4688713394058952110"

-				+ a

-				+ "3056645057829377881"

-				+ a

-				+ "-8506726966182516868"

-				+ a

-				+ "-383731751399324748"

-				+ a

-				+ "-3654274050295505340"

-				+ a

-				+ "-8247615502549622328"

-				+ a

-				+ "8051425367409412021"

-				+ a

-				+ "5070740236957071517"

-				+ a

-				+ "-6304043607850294460"

-				+ a

-				+ "4879326440171479053"

-				+ a

-				+ "1207827151958931536"

-				+ a

-				+ "4368497979050464647"

-				+ a

-				+ "8756179114525016710"

-				+ a

-				+ "6572802117590866192"

-				+ a

-				+ "-5922996303565406074"

-				+ a

-				+ "6778103995113936523"

-				+ a

-				+ "-5476940069258540858"

-				+ a

-				+ "5487657823671443257"

-				+ a

-				+ "-400926173735974729"

-				+ a

-				+ "-8540988823898343550"

-				+ a

-				+ "-7014060288497364443"

-				+ a

-				+ "5644928988464987381"

-				+ a

-				+ "6879543305099205347"

-				+ a

-				+ "7964655700571564172"

-				+ a

-				+ "8088691900248937126"

-				+ a

-				+ "1723219599198728500"

-				+ a

-				+ "3018536455974744881"

-				+ a

-				+ "2940291325452882573"

-				+ a

-				+ "-3786758981089890638"

-				+ a

-				+ "-797560390807012370"

-				+ a

-				+ "2663085406348533867"

-				+ a

-				+ "-7308829391124894805"

-				+ a

-				+ "1803629826901943189"

-				+ a

-				+ "5846440929888909977"

-				+ a

-				+ "-8542702904802823040"

-				+ a

-				+ "-7163216730812752942"

-				+ a

-				+ "2221034704463855614"

-				+ a

-				+ "-2405682157860023115"

-				+ a

-				+ "-4676395964625238782"

-				+ a

-				+ "-216963140376579792"

-				+ a

-				+ "-5103389651471831933"

-				+ a

-				+ "9017702006631036993"

-				+ a

-				+ "2938999348929657766"

-				+ a

-				+ "-7730679226114448199"

-				+ a

-				+ "-3743205304154717157"

-				+ a

-				+ "-1776479219937991102"

-				+ a

-				+ "1654078855927477958"

-				+ a

-				+ "8094809716232335012"

-				+ a

-				+ "6340983493686361250"

-				+ a

-				+ "-866493891022565565"

-				+ a

-				+ "531735533923973602"

-				+ a

-				+ "2747910080493628139"

-				+ a

-				+ "2200812898658983768"

-				+ a

-				+ "-1513950816115621936"

-				+ a

-				+ "-8337720631869198822"

-				+ a

-				+ "-525577754379940401"

-				+ a

-				+ "7551804934410883426"

-				+ a

-				+ "519746586022812922"

-				+ a

-				+ "-8045547892464635210"

-				+ a

-				+ "5951243721520801875"

-				+ a

-				+ "5934161767066905672"

-				+ a

-				+ "-4705079481574756138"

-				+ a

-				+ "3464716257976122783"

-				+ a

-				+ "8978831342572010684"

-				+ a

-				+ "8187941088102065781"

-				+ a

-				+ "-3084684641150941442"

-				+ a

-				+ "921477582871759843"

-				+ a

-				+ "3307658955544601367"

-				+ a

-				+ "-2996165763170645061"

-				+ a

-				+ "-8274541103042848498"

-				+ a

-				+ "-3463908933883305420"

-				+ a

-				+ "-5048691860297368141"

-				+ a

-				+ "2177078496606619084"

-				+ a

-				+ "-8827388744732292312"

-				+ a

-				+ "-7957446549730534038"

-				+ a

-				+ "3303941265807359394"

-				+ a

-				+ "-3640624108889803582"

-				+ a

-				+ "-963485886713923471"

-				+ a

-				+ "-617302574273490179"

-				+ a

-				+ "-6628433587492636867"

-				+ a

-				+ "3755304851471882136"

-				+ a

-				+ "-1455409516034175087"

-				+ a

-				+ "3281387006666817931"

-				+ a

-				+ "8187267763424429725"

-				+ a

-				+ "-2112757461247130450"

-				+ a

-				+ "8487163885819199287"

-				+ a

-				+ "5515268578675020120"

-				+ a

-				+ "-7516059575070424029"

-				+ a

-				+ "2096245470903398985"

-				+ a

-				+ "-3599383330369850733"

-				+ a

-				+ "6717668160055633097"

-				+ a

-				+ "997039288715036912"

-				+ a

-				+ "-4111524577411313904"

-				+ a

-				+ "4213859757422026202"

-				+ a

-				+ "-1454344243953370904"

-				+ a

-				+ "1338177838168081261"

-				+ a

-				+ "-242181692786070896"

-				+ a

-				+ "5399006252168649414"

-				+ a

-				+ "646614180822848995"

-				+ a

-				+ "-6184731866872587323"

-				+ a

-				+ "-1444188926767387207"

-				+ a

-				+ "810942930502440211"

-				+ a

-				+ "-6218682137716519027"

-				+ a

-				+ "-2720895870328575898"

-				+ a

-				+ "-8808292532570299552"

-				+ a

-				+ "2140505418194421507"

-				+ a

-				+ "-7888434952098884132"

-				+ a

-				+ "-178310388289817980"

-				+ a

-				+ "5905005163930882235"

-				+ a

-				+ "1635421671359890907"

-				+ a

-				+ "6750033111404860777"

-				+ a

-				+ "-4564576791357207914"

-				+ a

-				+ "426758066406202856"

-				+ a

-				+ "-4872081106509472156"

-				+ a

-				+ "-5254560181717342221"

-				+ a

-				+ "-734363642590401321"

-				+ a

-				+ "9013812156623195750"

-				+ a

-				+ "-170482851728801429"

-				+ a

-				+ "-7173862230840257316"

-				+ a

-				+ "8254259043201955270"

-				+ a

-				+ "6501276346832030105"

-				+ a

-				+ "-8273757015293296575"

-				+ a

-				+ "5387853821745750442"

-				+ a

-				+ "-7474855440619051354"

-				+ a

-				+ "-1753227913458519222"

-				+ a

-				+ "1092217748501059899"

-				+ a

-				+ "-8791276135678971256"

-				+ a

-				+ "-218877590915892737"

-				+ a

-				+ "-4340725654742199259"

-				+ a

-				+ "-5742289577091247053"

-				+ a

-				+ "1343358900061715138"

-				+ a

-				+ "-1772225708659554277"

-				+ a

-				+ "-8797614013992611270"

-				+ a

-				+ "-3497464196302835963"

-				+ a

-				+ "-8309105028352082612"

-				+ a

-				+ "-663094820895261814"

-				+ a

-				+ "-3444240896004163203"

-				+ a

-				+ "1957144248429107731"

-				+ a

-				+ "4757954753357798716"

-				+ a

-				+ "6593264534837630366"

-				+ a

-				+ "3497227202123306054"

-				+ a

-				+ "2776287487035884738"

-				+ a

-				+ "6501556871116799564"

-				+ a

-				+ "8899612329989751536"

-				+ a

-				+ "-3778659576142179374"

-				+ a

-				+ "124703871414090235"

-				+ a

-				+ "6948288598497539417"

-				+ a

-				+ "-4996449766025445415"

-				+ a

-				+ "793686075701987520"

-				+ a

-				+ "-3198002690460840789"

-				+ a

-				+ "4009422788160882918"

-				+ a

-				+ "7193014696603651322"

-				+ a

-				+ "8082998766648896404"

-				+ a

-				+ "-3788231277556968381"

-				+ a

-				+ "-7148495983093530214"

-				+ a

-				+ "6736890024758916021"

-				+ a

-				+ "4216940336435230007"

-				+ a

-				+ "188328503832869176"

-				+ a

-				+ "-7120102739398964547"

-				+ a

-				+ "7607953946534615729"

-				+ a

-				+ "-3899525495187175563"

-				+ a

-				+ "1166694345313931652"

-				+ a

-				+ "-3219263269800959297"

-				+ a

-				+ "3266634161081313882"

-				+ a

-				+ "-9037148961090722434"

-				+ a

-				+ "2318060343891873059"

-				+ a

-				+ "-3515133393575994446"

-				+ a

-				+ "2566508863198691678"

-				+ a

-				+ "-9121275522528117659"

-				+ a

-				+ "6552814346023252631"

-				+ a

-				+ "-3844267506042688565"

-				+ a

-				+ "-1653156565782005455"

-				+ a

-				+ "-7173322703490581596"

-				+ a

-				+ "5311129569825581925"

-				+ a

-				+ "-5981496794536948251"

-				+ a

-				+ "485799454892997258"

-				+ a

-				+ "358814548216823190"

-				+ a

-				+ "-5883996450830917482"

-				+ a

-				+ "7892070487849955837"

-				+ a

-				+ "9041219978475479524"

-				+ a

-				+ "6784193649663705084"

-				+ a

-				+ "-704406440822053065"

-				+ a

-				+ "1617597350703726007"

-				+ a

-				+ "-2824990004512410626"

-				+ a

-				+ "4830833946059156601"

-				+ a

-				+ "644059663093447897"

-				+ a

-				+ "427654689358798040"

-				+ a

-				+ "9099539326079885915"

-				+ a

-				+ "451266633755291926"

-				+ a

-				+ "-5408292146163444719"

-				+ a

-				+ "-8218729673873120822"

-				+ a

-				+ "4812059197525286851"

-				+ a

-				+ "-1417290372535981890"

-				+ a

-				+ "7317429815661408505"

-				+ a

-				+ "-4706671334516443621"

-				+ a

-				+ "910482975170331840"

-				+ a

-				+ "4711728128274846659"

-				+ a

-				+ "2218323880426214829"

-				+ a

-				+ "-367348826505176322"

-				+ a

-				+ "8003614727540982818"

-				+ a

-				+ "8216996872543133783"

-				+ a

-				+ "-788439557611798833"

-				+ a

-				+ "-1123607703495525944"

-				+ a

-				+ "-5169936645529424004"

-				+ a

-				+ "-4732836413189749996"

-				+ a

-				+ "6316451216750669828"

-				+ a

-				+ "-5586465654792010636"

-				+ a

-				+ "-2255003627213419612"

-				+ a

-				+ "3832664252804128629"

-				+ a

-				+ "-8179486934051614603"

-				+ a

-				+ "-66704645845932512"

-				+ a

-				+ "2891168224812430647"

-				+ a

-				+ "7343682511706734683"

-				+ a

-				+ "-4856741064043882673"

-				+ a

-				+ "3105181221952422798"

-				+ a

-				+ "-1099474774470322926"

-				+ a

-				+ "-7184541441405083512"

-				+ a

-				+ "-7896129042940196797"

-				+ a

-				+ "-3681692208118084700"

-				+ a

-				+ "-7509258819912375078"

-				+ a

-				+ "-8381523365664144601"

-				+ a

-				+ "-7225732013684948985"

-				+ a

-				+ "2678475084224492"

-				+ a

-				+ "-7010181734394821771"

-				+ a

-				+ "296311055436471362"

-				+ a

-				+ "-4702143638883053358"

-				+ a

-				+ "559908477673544980"

-				+ a

-				+ "8517217626632198543"

-				+ a

-				+ "-6048186379008685749"

-				+ a

-				+ "1369684436610985700"

-				+ a

-				+ "3019156035985140591"

-				+ a

-				+ "-6834648991262355946"

-				+ a

-				+ "-4562930321968735852"

-				+ a

-				+ "-5783944654661391108"

-				+ a

-				+ "-3024935798314909837"

-				+ a

-				+ "-5537008782762095937"

-				+ a

-				+ "-8256796962807994666"

-				+ a

-				+ "8280182536563837152"

-				+ a

-				+ "-7995629897164905927"

-				+ a

-				+ "-2077281075304869761"

-				+ a

-				+ "-6664775396054401618"

-				+ a

-				+ "823577603383936985"

-				+ a

-				+ "-6356046405898429951"

-				+ a

-				+ "-8623495862025298926"

-				+ a

-				+ "-2832501372323834341"

-				+ a

-				+ "-4481796606745599180"

-				+ a

-				+ "6843605553065863851"

-				+ a

-				+ "-2581428019573302665"

-				+ a

-				+ "-4898085659480564734"

-				+ a

-				+ "-7753556073828498238"

-				+ a

-				+ "3584727131727095358"

-				+ a

-				+ "-3832308975071072911"

-				+ a

-				+ "9140718478884669354"

-				+ a

-				+ "4412985822617555800"

-				+ a

-				+ "-5495456985889731227"

-				+ a

-				+ "7968697975111041032"

-				+ a

-				+ "5128251690040084032"

-				+ a

-				+ "-6862414414207627440"

-				+ a

-				+ "-3006234487295557652"

-				+ a

-				+ "1324045417801509638"

-				+ a

-				+ "9219605576569074261"

-				+ a

-				+ "-715417453106249977"

-				+ a

-				+ "-6617654008397873848"

-				+ a

-				+ "4229951799618365819"

-				+ a

-				+ "231813632375250011"

-				+ a

-				+ "-5576308538620286115"

-				+ a

-				+ "155792926466618637"

-				+ a

-				+ "4836500552335990074"

-				+ a

-				+ "-1663547996885277909"

-				+ a

-				+ "-1993180218372871112"

-				+ a

-				+ "-6473687783379261579"

-				+ a

-				+ "-7883704607391325351"

-				+ a

-				+ "6687986130491546753"

-				+ a

-				+ "3364635474781455617"

-				+ a

-				+ "4731053967944701408"

-				+ a

-				+ "5106931322115930293"

-				+ a

-				+ "2095420057364729214"

-				+ a

-				+ "1156896580537176357"

-				+ a

-				+ "-3465259520146717874"

-				+ a

-				+ "8942297204813033067"

-				+ a

-				+ "3040683329504834342"

-				+ a

-				+ "7960068558868562069"

-				+ a

-				+ "1374491342528201959"

-				+ a

-				+ "220770130923384416"

-				+ a

-				+ "-4584976438727763232"

-				+ a

-				+ "-6069230704051231674"

-				+ a

-				+ "-8140389424077462925"

-				+ a

-				+ "7919822713176100795"

-				+ a

-				+ "-1612055155113080071"

-				+ a

-				+ "-6162416958187795790"

-				+ a

-				+ "-4915054237654038814"

-				+ a

-				+ "-2866828504084776090"

-				+ a

-				+ "-2938976209207559391"

-				+ a

-				+ "4467247253829594198"

-				+ a

-				+ "-4850525891734929210"

-				+ a

-				+ "-5426296772220968816"

-				+ a

-				+ "-5186441394167538452"

-				+ a

-				+ "8794590532854589490"

-				+ a

-				+ "-6578705991441722668"

-				+ a

-				+ "4035357871963126061"

-				+ a

-				+ "-1070129802059123630"

-				+ a

-				+ "3921226994129637452"

-				+ a

-				+ "3722734392905978983"

-				+ a

-				+ "-5956139048691736972"

-				+ a

-				+ "8416144324331798575"

-				+ a

-				+ "-1923420510655314387"

-				+ a

-				+ "227615271206429181"

-				+ a

-				+ "2226209514116787552"

-				+ a

-				+ "8297056456961422020"

-				+ a

-				+ "-8359499256195569822"

-				+ a

-				+ "5576341039369051576"

-				+ a

-				+ "4702120714246748976"

-				+ a

-				+ "-4042574530811250124"

-				+ a

-				+ "5083076081415490044"

-				+ a

-				+ "-3219070452310786083"

-				+ a

-				+ "9106311493699607016"

-				+ a

-				+ "6241102595154319624"

-				+ a

-				+ "4669706243845736720"

-				+ a

-				+ "-1520829982172760232"

-				+ a

-				+ "5889904275233942734"

-				+ a

-				+ "-68294517832626517"

-				+ a

-				+ "8638744614373433656"

-				+ a

-				+ "7567202626162399799"

-				+ a

-				+ "-1964780367369499411"

-				+ a

-				+ "-999558730666848273"

-				+ a

-				+ "-1669144135230350063"

-				+ a

-				+ "-1242209923845724629"

-				+ a

-				+ "-39031062552363627"

-				+ a

-				+ "-633233388401520761"

-				+ a

-				+ "744323104049287611"

-				+ a

-				+ "2014860468464161034"

-				+ a

-				+ "-1193284554157526823"

-				+ a

-				+ "-6855964882992540021"

-				+ a

-				+ "-8036572965809837220"

-				+ a

-				+ "5547258320624838991"

-				+ a

-				+ "-361938219569996785"

-				+ a

-				+ "-8704235972253373193"

-				+ a

-				+ "-9003427919587620451"

-				+ a

-				+ "-3130703444561361256"

-				+ a

-				+ "6132231206933208148"

-				+ a

-				+ "6749398961654190635"

-				+ a

-				+ "-6925034059616949205"

-				+ a

-				+ "1571738287308720679"

-				+ a

-				+ "5431255372312963846"

-				+ a

-				+ "2347890316226708844"

-				+ a

-				+ "-2587017991946539209"

-				+ a

-				+ "9080522648955318115"

-				+ a

-				+ "-7782900851433774520"

-				+ a

-				+ "-6414286033878819230"

-				+ a

-				+ "-7471905833427183625"

-				+ a

-				+ "2344443512917666900"

-				+ a

-				+ "4030672884858720641"

-				+ a

-				+ "-7228311107668937320"

-				+ a

-				+ "-4225049585365454557"

-				+ a

-				+ "-6696854441560120790"

-				+ a

-				+ "-7915428687108202019"

-				+ a

-				+ "4633264419167771904"

-				+ a

-				+ "-4039899830387050632"

-				+ a

-				+ "4267398965683805622"

-				+ a

-				+ "4751252376443669194"

-				+ a

-				+ "7198205969788397676"

-				+ a

-				+ "7129010695954880057"

-				+ a

-				+ "-5046741236772984850"

-				+ a

-				+ "-4893430234027272579"

-				+ a

-				+ "-6455089705569729002"

-				+ a

-				+ "5902751572800271273"

-				+ a

-				+ "317847978001983086"

-				+ a

-				+ "6591677451518621291"

-				+ a

-				+ "8725653562600482585"

-				+ a

-				+ "-8811453516738818670"

-				+ a

-				+ "-1937983213300134926"

-				+ a

-				+ "8001111295566882768"

-				+ a

-				+ "5432568004739151861"

-				+ a

-				+ "2808858632003233217"

-				+ a

-				+ "-3187854607564760867"

-				+ a

-				+ "-4004527449867163605"

-				+ a

-				+ "-336181840705754865"

-				+ a

-				+ "-7246637421972455801"

-				+ a

-				+ "3241758430536346550"

-				+ a

-				+ "-4914749815050143296"

-				+ a

-				+ "-1212912223502301394"

-				+ a

-				+ "-3749450625260640454"

-				+ a

-				+ "6243151812487782821"

-				+ a

-				+ "6226970592369211413"

-				+ a

-				+ "3870468034484872191"

-				+ a

-				+ "-3248010484204365646"

-				+ a

-				+ "8695259523944941306"

-				+ a

-				+ "-3520121047936500619"

-				+ a

-				+ "-6202360059242836333"

-				+ a

-				+ "804974149902754252"

-				+ a

-				+ "-4201170229733288025"

-				+ a

-				+ "-2814614190330637712"

-				+ a

-				+ "6732531893826755548"

-				+ a

-				+ "3587696942827103210"

-				+ a

-				+ "-3914504395162054719"

-				+ a

-				+ "-8295349942655173543"

-				+ a

-				+ "9016555458455142195"

-				+ a

-				+ "-1330972165973762190"

-				+ a

-				+ "-2857642318211707901"

-				+ a

-				+ "1621441195752982471"

-				+ a

-				+ "8796740055346885333"

-				+ a

-				+ "-7469350179954618293"

-				+ a

-				+ "-9198507324056667574"

-				+ a

-				+ "3050171288568508948"

-				+ a

-				+ "-9202985112142352287"

-				+ a

-				+ "-7450147356246173085"

-				+ a

-				+ "-2650046968714225126"

-				+ a

-				+ "-7791493787770037023"

-				+ a

-				+ "3177967838851086684"

-				+ a

-				+ "-1087350519511644629"

-				+ a

-				+ "-5933630645292757737"

-				+ a

-				+ "-3057634277369326960"

-				+ a

-				+ "-117101563851313235"

-				+ a

-				+ "-1264847152478417639"

-				+ a

-				+ "-8169210788366092403"

-				+ a

-				+ "-1556957540384449847"

-				+ a

-				+ "5079856129131839009"

-				+ a

-				+ "537009568676640293"

-				+ a

-				+ "-5226270953762115350"

-				+ a

-				+ "-5324199301103706379"

-				+ a

-				+ "1804591847796379880"

-				+ a

-				+ "879735902087758412"

-				+ a

-				+ "-5630733783825054658"

-				+ a

-				+ "-7610082778137157946"

-				+ a

-				+ "8119553100633562646"

-				+ a

-				+ "-4142666375828182767"

-				+ a

-				+ "-3150914012657811262"

-				+ a

-				+ "-3152263088065891155"

-				+ a

-				+ "-4147965428223902173"

-				+ a

-				+ "336844704958883063"

-				+ a

-				+ "6955766203242207822"

-				+ a

-				+ "7683778390826560099"

-				+ a

-				+ "5014524116896306283"

-				+ a

-				+ "-2992139592508518392"

-				+ a

-				+ "2544694784394516960"

-				+ a

-				+ "-5480878629851767455"

-				+ a

-				+ "4522873847351478191"

-				+ a

-				+ "8326626511086571601"

-				+ a

-				+ "-6422801033021366756"

-				+ a

-				+ "1578678540985889639"

-				+ a

-				+ "-6559866042619753837"

-				+ a

-				+ "-2578877569999104925"

-				+ a

-				+ "7368303770053372871"

-				+ a

-				+ "-5747703212301246727"

-				+ a

-				+ "3357596325498795038"

-				+ a

-				+ "-4133533100284207148"

-				+ a

-				+ "-1015951027680129461"

-				+ a

-				+ "7467490110644909021"

-				+ a

-				+ "3158855981736880188"

-				+ a

-				+ "-3172906774568163396"

-				+ a

-				+ "-6828938093617592265"

-				+ a

-				+ "7233629791141415838"

-				+ a

-				+ "4812403726420496447"

-				+ a

-				+ "6467043740588425016"

-				+ a

-				+ "4659999192592765884"

-				+ a

-				+ "4652951018723752460"

-				+ a

-				+ "666208123998413658"

-				+ a

-				+ "5018988295449121771"

-				+ a

-				+ "2765215723643073329"

-				+ a

-				+ "-5805565308999822918"

-				+ a

-				+ "-2076549345780039899"

-				+ a

-				+ "-4426400335663121800"

-				+ a

-				+ "4275608708948464015"

-				+ a

-				+ "6675022547067205759"

-				+ a

-				+ "-6621196489948540900"

-				+ a

-				+ "5722802855070403337"

-				+ a

-				+ "-3327707032135994635"

-				+ a

-				+ "2262928498967088118"

-				+ a

-				+ "3530071204065036832"

-				+ a

-				+ "-1638714306566451765"

-				+ a

-				+ "-7690788209354558171"

-				+ a

-				+ "7113955705845913085"

-				+ a

-				+ "-4081197284015476492"

-				+ a

-				+ "-4353435977967011984"

-				+ a

-				+ "8870894978912968709"

-				+ a

-				+ "-3378124121881489095"

-				+ a

-				+ "-7072527214702087999"

-				+ a

-				+ "-3826738314876308053"

-				+ a

-				+ "6851749976613062176"

-				+ a

-				+ "-1750785357222691439"

-				+ a

-				+ "5276086865661363858"

-				+ a

-				+ "-2963967637668099145"

-				+ a

-				+ "-2226482578674911965"

-				+ a

-				+ "1262913202855543983"

-				+ a

-				+ "-5719872184568399655"

-				+ a

-				+ "200057904572055249"

-				+ a

-				+ "3289053279870908000"

-				+ a

-				+ "5864930648060653187"

-				+ a

-				+ "7113948028888391656"

-				+ a

-				+ "2015505708560011961"

-				+ a

-				+ "-7688130328085946546"

-				+ a

-				+ "5595350336910484927"

-				+ a

-				+ "-3684238588780478855"

-				+ a

-				+ "8613416584425920054"

-				+ a

-				+ "4249559202049962502"

-				+ a

-				+ "-4129474140910318501"

-				+ a

-				+ "3202291309460908583"

-				+ a

-				+ "-3928494809434341489"

-				+ a

-				+ "-6076283274923897400"

-				+ a

-				+ "2169394210116526098"

-				+ a

-				+ "1301281724191196147"

-				+ a

-				+ "-3958391744948119278"

-				+ a

-				+ "-1860291525879287948"

-				+ a

-				+ "-7367822264979394844"

-				+ a

-				+ "-766202970211237697"

-				+ a

-				+ "-8712119674703561328"

-				+ a

-				+ "3736413026361360914"

-				+ a

-				+ "8876590410660191123"

-				+ a

-				+ "-6382124384610352682"

-				+ a

-				+ "6651183499700364511"

-				+ a

-				+ "3984890132222164810"

-				+ a

-				+ "-2794025605547462106"

-				+ a

-				+ "7570641472538557794"

-				+ a

-				+ "4552556182522839127"

-				+ a

-				+ "-4548338499653656596"

-				+ a

-				+ "7388941229386075240"

-				+ a

-				+ "692547794703939317"

-				+ a

-				+ "2436692756551067478"

-				+ a

-				+ "5482475673724460138"

-				+ a

-				+ "-748428287238371735"

-				+ a

-				+ "-5046147474484082687"

-				+ a

-				+ "-5645192179964259396"

-				+ a

-				+ "-8910889623475454631"

-				+ a

-				+ "-7535738450330975492"

-				+ a

-				+ "3379953857191884896"

-				+ a

-				+ "8375308725109206639"

-				+ a

-				+ "-3259253628170470412"

-				+ a

-				+ "-6364776491423973320"

-				+ a

-				+ "4966967577296742092"

-				+ a

-				+ "-4235437682144171048"

-				+ a

-				+ "-4470283232421596519"

-				+ a

-				+ "-684373034549167112"

-				+ a

-				+ "-7544358005155380888"

-				+ a

-				+ "-6089672722052548507"

-				+ a

-				+ "-592422057867469495"

-				+ a

-				+ "-8870281455177471909"

-				+ a

-				+ "7127816281889312309"

-				+ a

-				+ "-3179360379771308795"

-				+ a

-				+ "-6866650128224703956"

-				+ a

-				+ "-698801804772675516"

-				+ a

-				+ "-7121841945155861602"

-				+ a

-				+ "4750365137868030895"

-				+ a

-				+ "7738153537752652299"

-				+ a

-				+ "-1216300091806872614"

-				+ a

-				+ "6771372917205053677"

-				+ a

-				+ "8056989338981147611"

-				+ a

-				+ "-7044136404236635947"

-				+ a

-				+ "1524250009079309577"

-				+ a

-				+ "-7230380836977314093"

-				+ a

-				+ "-6328397610668843257"

-				+ a

-				+ "7230102557130438170"

-				+ a

-				+ "5484760717538397184"

-				+ a

-				+ "-4732383013272760348"

-				+ a

-				+ "6744415428010607923"

-				+ a

-				+ "3022090164560283027"

-				+ a

-				+ "1568643906810575794"

-				+ a

-				+ "-4622791717852927720"

-				+ a

-				+ "2660468600538675557"

-				+ a

-				+ "-4294780086359953512"

-				+ a

-				+ "-5594348200211861931"

-				+ a

-				+ "7259557701039606348"

-				+ a

-				+ "-4560711143417983449"

-				+ a

-				+ "3190332956225415592"

-				+ a

-				+ "-4944263905951727131"

-				+ a

-				+ "-7385385614052438337"

-				+ a

-				+ "6733540044280164868"

-				+ a

-				+ "-4331161235831157019"

-				+ a

-				+ "8634623412407676066"

-				+ a

-				+ "2815941638062550421"

-				+ a

-				+ "-5232679099207881714"

-				+ a

-				+ "9202366913391292565"

-				+ a

-				+ "1619237350162891149"

-				+ a

-				+ "-4564477822700236200"

-				+ a

-				+ "7208442585339078747"

-				+ a

-				+ "-3950616628069894494"

-				+ a

-				+ "5754703381790672111"

-				+ a

-				+ "-2018876234266819215"

-				+ a

-				+ "-2103659793485769597"

-				+ a

-				+ "-6916752526519644133"

-				+ a

-				+ "-5834005017330986797"

-				+ a

-				+ "2648524451218973875"

-				+ a

-				+ "7580548958796221476"

-				+ a

-				+ "5839987782269727665"

-				+ a

-				+ "-1935092394547033721"

-				+ a

-				+ "4819296501593189329"

-				+ a

-				+ "-7449320539156769442"

-				+ a

-				+ "1515981491563393083"

-				+ a

-				+ "1837234754028675615"

-				+ a

-				+ "-2691299151050994461"

-				+ a

-				+ "7834035250536263000"

-				+ a

-				+ "947382469723180338"

-				+ a

-				+ "2070628618009620722"

-				+ a

-				+ "-7701999848196581146"

-				+ a

-				+ "-4989233495601617735"

-				+ a

-				+ "6771060135514012470"

-				+ a

-				+ "-4386300160537078757"

-				+ a

-				+ "9092560637994350648"

-				+ a

-				+ "-8393149325636269009"

-				+ a

-				+ "-7113205208559790969"

-				+ a

-				+ "8011664749276243449"

-				+ a

-				+ "-8266196281237589216"

-				+ a

-				+ "8259712846621683948"

-				+ a

-				+ "7059975912623943052"

-				+ a

-				+ "223293421261472175"

-				+ a

-				+ "8973572126931896900"

-				+ a

-				+ "-4078694841056319197"

-				+ a

-				+ "-8595306693898275504"

-				+ a

-				+ "340597839860111269"

-				+ a

-				+ "-4480614924930277584"

-				+ a

-				+ "5517819178252021904"

-				+ a

-				+ "-6096927906070665728"

-				+ a

-				+ "-4822198221110160891"

-				+ a

-				+ "-2577002508408181546"

-				+ a

-				+ "7315528082960323822"

-				+ a

-				+ "6657773545505244526"

-				+ a

-				+ "-9111063062018438849"

-				+ a

-				+ "3439200446592946185"

-				+ a

-				+ "8124115377302205054"

-				+ a

-				+ "-990430432747932271"

-				+ a

-				+ "2480444268192630917"

-				+ a

-				+ "6336395495152050177"

-				+ a

-				+ "4671803505031381126"

-				+ a

-				+ "1380595797077890307"

-				+ a

-				+ "-5823356456068914608"

-				+ a

-				+ "3643552808887949018"

-				+ a

-				+ "-705654815289741872"

-				+ a

-				+ "-4942555973230170239"

-				+ a

-				+ "6841175442962388185"

-				+ a

-				+ "-2247742565737854444"

-				+ a

-				+ "-5965872412923179737"

-				+ a

-				+ "3233876736034274927"

-				+ a

-				+ "8059548267812355744"

-				+ a

-				+ "-6442795951984446700"

-				+ a

-				+ "-8254441926716747299"

-				+ a

-				+ "1221578904699451729"

-				+ a

-				+ "4484393240198177513"

-				+ a

-				+ "-2470934872280561758"

-				+ a

-				+ "-4000515761544913848"

-				+ a

-				+ "1841312402397132371"

-				+ a

-				+ "-6266121333022015942"

-				+ a

-				+ "3036409269701812841"

-				+ a

-				+ "-59909522137328064"

-				+ a

-				+ "-7406201526142657853"

-				+ a

-				+ "1630047227661167327"

-				+ a

-				+ "-4897993438023877765"

-				+ a

-				+ "6219253283169460131"

-				+ a

-				+ "-2495741112802518127"

-				+ a

-				+ "1302756514188318054"

-				+ a

-				+ "-5533782832811642678"

-				+ a

-				+ "4354798003992578770"

-				+ a

-				+ "-7986677467980853803"

-				+ a

-				+ "-8744988257359396573"

-				+ a

-				+ "-6397501769218728272"

-				+ a

-				+ "-8947660384927553231"

-				+ a

-				+ "1346216959820138313"

-				+ a

-				+ "1425398524283165869"

-				+ a

-				+ "-1283087607147001752"

-				+ a

-				+ "-206913821141456982"

-				+ a

-				+ "8014851305433763531"

-				+ a

-				+ "-3306492978461841825"

-				+ a

-				+ "8939538755388149906"

-				+ a

-				+ "3470041899206769451"

-				+ a

-				+ "-5835062378542834467"

-				+ a

-				+ "2752364486063988952"

-				+ a

-				+ "1939934425938166195"

-				+ a

-				+ "3008044486201466147"

-				+ a

-				+ "3722009335165103141"

-				+ a

-				+ "-1454123726393059460"

-				+ a

-				+ "5521045270087722675"

-				+ a

-				+ "-7584468636879988727"

-				+ a

-				+ "3455604157334575597"

-				+ a

-				+ "6444214822533935856"

-				+ a

-				+ "6685753141598286685"

-				+ a

-				+ "-8249605279529950251"

-				+ a

-				+ "-6108157385140562268"

-				+ a

-				+ "8698570457891691937"

-				+ a

-				+ "712682936770346210"

-				+ a

-				+ "8683885651874370181"

-				+ a

-				+ "1511630497269458523"

-				+ a

-				+ "-681331991295002562"

-				+ a

-				+ "-5538407606653779370"

-				+ a

-				+ "-8225676124935582566"

-				+ a

-				+ "2992867944170172744"

-				+ a

-				+ "6467556416530619962"

-				+ a

-				+ "2894317729672299826"

-				+ a

-				+ "2367294768805338520"

-				+ a

-				+ "-3795911641430219706"

-				+ a

-				+ "7315593747565738571"

-				+ a

-				+ "1073925020137124304"

-				+ a

-				+ "-2009620617725341558"

-				+ a

-				+ "9192484969344016724"

-				+ a

-				+ "-8555372001436210450"

-				+ a

-				+ "5988230853661579250"

-				+ a

-				+ "-2058267483034575749"

-				+ a

-				+ "8122930851637461010"

-				+ a

-				+ "-4226809344373377312"

-				+ a

-				+ "4203514443098305340"

-				+ a

-				+ "-7584642885221900035"

-				+ a

-				+ "3741247320369290823"

-				+ a

-				+ "6409416416737382822"

-				+ a

-				+ "-8756241943904648267"

-				+ a

-				+ "-1162965036863622490"

-				+ a

-				+ "1309747872651362397"

-				+ a

-				+ "-2083806146045300730"

-				+ a

-				+ "-8644749146832603574"

-				+ a

-				+ "-5860595045064427633"

-				+ a

-				+ "4705270308983783907"

-				+ a

-				+ "6728325949665520780"

-				+ a

-				+ "2355167571219782987"

-				+ a

-				+ "-7485062256841845804"

-				+ a

-				+ "5444171101615347210"

-				+ a

-				+ "9018416163053665286"

-				+ a

-				+ "9087649652391753964"

-				+ a

-				+ "7355274780617434646"

-				+ a

-				+ "-2263053130520029143"

-				+ a

-				+ "-7771114517872233976"

-				+ a

-				+ "-4333605022901923898"

-				+ a

-				+ "7416196136755926012"

-				+ a

-				+ "7874945996172274746"

-				+ a

-				+ "-29647836685576855"

-				+ a

-				+ "-961434168856881325"

-				+ a

-				+ "-3639241545807632723"

-				+ a

-				+ "2546758658973642586"

-				+ a

-				+ "-7953791153076501308"

-				+ a

-				+ "1931422568598613109"

-				+ a

-				+ "-6717842740108986537"

-				+ a

-				+ "-8291630841266816948"

-				+ a

-				+ "2765890591673690873"

-				+ a

-				+ "5638615108868643823"

-				+ a

-				+ "2610285609096522668"

-				+ a

-				+ "7182053208700872695"

-				+ a

-				+ "-4387966805233548375"

-				+ a

-				+ "-2987355674746176789"

-				+ a

-				+ "1944114521650872928"

-				+ a

-				+ "2716385647022901732"

-				+ a

-				+ "3672937770299043773"

-				+ a

-				+ "-1596838794080989326"

-				+ a

-				+ "6994512773580910508"

-				+ a

-				+ "-3554310089091955519"

-				+ a

-				+ "1355466662459087327"

-				+ a

-				+ "8762632012749605111"

-				+ a

-				+ "6587327856302852558"

-				+ a

-				+ "3311118198598392544"

-				+ a

-				+ "-6793004875159213313"

-				+ a

-				+ "-4848547389526226739"

-				+ a

-				+ "-6311353038235974265"

-				+ a

-				+ "-8195505362848449864"

-				+ a

-				+ "8808125456239414991"

-				+ a

-				+ "-4177775909520246100"

-				+ a

-				+ "-6619635425075002725"

-				+ a

-				+ "-4132694774520176797"

-				+ a

-				+ "-8317158135140825016"

-				+ a

-				+ "-3478442824038580944"

-				+ a

-				+ "-6007598038909081516"

-				+ a

-				+ "6302404450442477855"

-				+ a

-				+ "5778955250949510691"

-				+ a

-				+ "-2089763170261427622"

-				+ a

-				+ "4741409635703394816"

-				+ a

-				+ "-1604648981138860594"

-				+ a

-				+ "2858368262704801633"

-				+ a

-				+ "3077936222317121549"

-				+ a

-				+ "3876636234691611503"

-				+ a

-				+ "7072310780592103797"

-				+ a

-				+ "6875717807996264388"

-				+ a

-				+ "-8119373122628671342"

-				+ a

-				+ "2592321197819846005"

-				+ a

-				+ "-4865044565472487744"

-				+ a

-				+ "370243778170973267"

-				+ a

-				+ "3538560122812949268"

-				+ a

-				+ "5604800454296726126"

-				+ a

-				+ "1099039521029719933"

-				+ a

-				+ "1347625018260219866"

-				+ a

-				+ "-760735066813486043"

-				+ a

-				+ "-3588040698066642251"

-				+ a

-				+ "7697720740645299484"

-				+ a

-				+ "932557864155975527"

-				+ a

-				+ "-6719149903083035080"

-				+ a

-				+ "-3632384404564322005"

-				+ a

-				+ "-4437288996570214090"

-				+ a

-				+ "4876681836482086607"

-				+ a

-				+ "-700013811510345180"

-				+ a

-				+ "68286250809712567"

-				+ a

-				+ "-5723038568786969085"

-				+ a

-				+ "6180096348459871527"

-				+ a

-				+ "-5336303492423424089"

-				+ a

-				+ "5268064677773382592"

-				+ a

-				+ "-5468221560993276190"

-				+ a

-				+ "8728616035972006219"

-				+ a

-				+ "-18735560580305439"

-				+ a

-				+ "-5237022430459186507"

-				+ a

-				+ "8477647565196617941"

-				+ a

-				+ "5477971880707102298"

-				+ a

-				+ "-25742072802303019"

-				+ a

-				+ "-7628253021115937147"

-				+ a

-				+ "-4527455294363884798"

-				+ a

-				+ "-6779159922670200777"

-				+ a

-				+ "-4332755792343947029"

-				+ a

-				+ "6246992222472870439"

-				+ a

-				+ "2466686335846188851"

-				+ a

-				+ "-3176660018221785078"

-				+ a

-				+ "2227603986683319665"

-				+ a

-				+ "7764675382631007764"

-				+ a

-				+ "8993875510396531287"

-				+ a

-				+ "-7390864096506767171"

-				+ a

-				+ "7337153217923216149"

-				+ a

-				+ "3248867097428978888"

-				+ a

-				+ "-8078994459496454913"

-				+ a

-				+ "6023362300574921600"

-				+ a

-				+ "6957790098961696109"

-				+ a

-				+ "-2951896231335096508"

-				+ a

-				+ "730304460660495330"

-				+ a

-				+ "192254390069636166"

-				+ a

-				+ "-1049566252317531537"

-				+ a

-				+ "-7248026460359122545"

-				+ a

-				+ "-4856240343559698343"

-				+ a

-				+ "-3288455520075047354"

-				+ a

-				+ "-3462385567291090183"

-				+ a

-				+ "-9076025559385888976"

-				+ a

-				+ "-9080194978079616797"

-				+ a

-				+ "5107397421493446778"

-				+ a

-				+ "3642195766291641162"

-				+ a

-				+ "-8607615188211212362"

-				+ a

-				+ "-6565851555561356894"

-				+ a

-				+ "-7348624522328956381"

-				+ a

-				+ "7643434229912546183"

-				+ a

-				+ "736968235053630257"

-				+ a

-				+ "-1558131958624533283"

-				+ a

-				+ "-4267365336994799805"

-				+ a

-				+ "4685285441925601335"

-				+ a

-				+ "-417452777611981130"

-				+ a

-				+ "-1612672569043764356"

-				+ a

-				+ "518118522100466977"

-				+ a

-				+ "7477758616731323079"

-				+ a

-				+ "-2084762027578400546"

-				+ a

-				+ "308555469435645327"

-				+ a

-				+ "9031665960208658121"

-				+ a

-				+ "6230664225124256264"

-				+ a

-				+ "-1102830740815288761"

-				+ a

-				+ "2817926313141144264"

-				+ a

-				+ "8490820541726712201"

-				+ a

-				+ "-3156215760262899028"

-				+ a

-				+ "-9071289492098116078"

-				+ a

-				+ "8425910717564713723"

-				+ a

-				+ "-3806622682195406474"

-				+ a

-				+ "-4420283133736675380"

-				+ a

-				+ "-2130571006470095261"

-				+ a

-				+ "2440746963483934373"

-				+ a

-				+ "8556899456135230949"

-				+ a

-				+ "-1985525364566697115"

-				+ a

-				+ "-3365400095873163035"

-				+ a

-				+ "1119910485872254819"

-				+ a

-				+ "-1046656997374317070"

-				+ a

-				+ "1415882540628621014"

-				+ a

-				+ "8383333511655382851"

-				+ a

-				+ "3352737800845652086"

-				+ a

-				+ "-4956645021080570628"

-				+ a

-				+ "-4221159765757641885"

-				+ a

-				+ "2639365141465593776"

-				+ a

-				+ "4935151287859683142"

-				+ a

-				+ "-8102019963811174617"

-				+ a

-				+ "-4133912392369401163"

-				+ a

-				+ "5480446863201440096"

-				+ a

-				+ "8759003265342329820"

-				+ a

-				+ "7180798877987804633"

-				+ a

-				+ "-3106517939429595304"

-				+ a

-				+ "3471288105411959053"

-				+ a

-				+ "-363148694271843994"

-				+ a

-				+ "5042344163278449725"

-				+ a

-				+ "1616698931072621884"

-				+ a

-				+ "1797865194247105907"

-				+ a

-				+ "1444037657274074806"

-				+ a

-				+ "-7029718486968835133"

-				+ a

-				+ "8844266795997125173"

-				+ a

-				+ "-4944651518545568813"

-				+ a

-				+ "6487964973590478532"

-				+ a

-				+ "1886109974317222046"

-				+ a

-				+ "-4842848483402883461"

-				+ a

-				+ "3531122380482669684"

-				+ a

-				+ "-1558709588580146904"

-				+ a

-				+ "-4342403627297550780"

-				+ a

-				+ "1689103941253311787"

-				+ a

-				+ "1061199116206243613"

-				+ a

-				+ "5061874826462778016"

-				+ a

-				+ "7334887834022786034"

-				+ a

-				+ "-4953914412460735293"

-				+ a

-				+ "6809021047861032861"

-				+ a

-				+ "711439222068774288"

-				+ a

-				+ "6586553718450977062"

-				+ a

-				+ "-4848541873011906646"

-				+ a

-				+ "6392546595089496644"

-				+ a

-				+ "-7454402105323812227"

-				+ a

-				+ "6808280476233343523"

-				+ a

-				+ "-9163248863081859930"

-				+ a

-				+ "-4935115052088543129"

-				+ a

-				+ "-2707173481561263983"

-				+ a

-				+ "-5040722886254228368"

-				+ a

-				+ "-6529198091145506973"

-				+ a

-				+ "-8707423069418058529"

-				+ a

-				+ "6038039841022866971"

-				+ a

-				+ "-8982004619693436071"

-				+ a

-				+ "99422527511009523"

-				+ a

-				+ "-5165864716533667702"

-				+ a

-				+ "3531760248632559884"

-				+ a

-				+ "2453964053489566829"

-				+ a

-				+ "-6810009552064415671"

-				+ a

-				+ "5897335478825586377"

-				+ a

-				+ "6746492442484332410"

-				+ a

-				+ "9002181253533066238"

-				+ a

-				+ "-7812070282260401475"

-				+ a

-				+ "-6234637736823676415"

-				+ a

-				+ "6931601391561453600"

-				+ a

-				+ "-7651946779799617116"

-				+ a

-				+ "-1476679763922561909"

-				+ a

-				+ "8319727058209931290"

-				+ a

-				+ "9211601851260334812"

-				+ a

-				+ "4380122268541574330"

-				+ a

-				+ "-6141835365182903981"

-				+ a

-				+ "8859095374016622339"

-				+ a

-				+ "-6080848116160933583"

-				+ a

-				+ "-4043345743566579489"

-				+ a

-				+ "2007464217689982107"

-				+ a

-				+ "5615227751077173548"

-				+ a

-				+ "-5247506120933105981"

-				+ a

-				+ "7613105194332406391"

-				+ a

-				+ "-4518167165425198520"

-				+ a

-				+ "7264351302739188234"

-				+ a

-				+ "-4369130358793113123"

-				+ a

-				+ "-2996862511695551704"

-				+ a

-				+ "3429626022551086889"

-				+ a

-				+ "8574417589664275094"

-				+ a

-				+ "1485655701114573806"

-				+ a

-				+ "7290363364964116061"

-				+ a

-				+ "633425129373641068"

-				+ a

-				+ "-4682720896109445682"

-				+ a

-				+ "3199403151033991687"

-				+ a

-				+ "-4725352862128009786"

-				+ a

-				+ "-2935010460126746329"

-				+ a

-				+ "-1571339865719136973"

-				+ a

-				+ "-5327135494658638497"

-				+ a

-				+ "8662308269909751254"

-				+ a

-				+ "-5408996137996185392"

-				+ a

-				+ "5822097627997115722"

-				+ a

-				+ "-4985750595042038833"

-				+ a

-				+ "-5449287288045688252"

-				+ a

-				+ "-9005565456474303035"

-				+ a

-				+ "-2513523367955029477"

-				+ a

-				+ "-7237889187143268265"

-				+ a

-				+ "-955049681514771829"

-				+ a

-				+ "-715290057971470138"

-				+ a

-				+ "-5112632449472312395"

-				+ a

-				+ "-8999368014349704297"

-				+ a

-				+ "-3553787458899280279"

-				+ a

-				+ "-2242033452520855946"

-				+ a

-				+ "8288454840875082408"

-				+ a

-				+ "6759946808749896791"

-				+ a

-				+ "5499698313251322468"

-				+ a

-				+ "-543042823206248483"

-				+ a

-				+ "-3716280375908332407"

-				+ a

-				+ "-1767850440715110401"

-				+ a

-				+ "-5812090670386736064"

-				+ a

-				+ "-4448772542800653592"

-				+ a

-				+ "-3691411356019826575"

-				+ a

-				+ "821418385527481119"

-				+ a

-				+ "-7917444741151119478"

-				+ a

-				+ "9025312584318696168"

-				+ a

-				+ "457131154694574975"

-				+ a

-				+ "-6494407505970093591"

-				+ a

-				+ "1848951345003203089"

-				+ a

-				+ "-7088652100860042993"

-				+ a

-				+ "3607909891740382545"

-				+ a

-				+ "-5678294653111490382"

-				+ a

-				+ "-5795543117613854617"

-				+ a

-				+ "-2151575121446292234"

-				+ a

-				+ "7620964843728469135"

-				+ a

-				+ "884290653714224245"

-				+ a

-				+ "-6843277283286932892"

-				+ a

-				+ "2408695048027763994"

-				+ a

-				+ "5842614161247609697"

-				+ a

-				+ "6010166672575060815"

-				+ a

-				+ "6812469602680659875"

-				+ a

-				+ "-5997140003653359782"

-				+ a

-				+ "7985395093919912947"

-				+ a

-				+ "-5213351642343076604"

-				+ a

-				+ "-2464006694883863548"

-				+ a

-				+ "-8272827464694685317"

-				+ a

-				+ "-3362460353719917320"

-				+ a

-				+ "6627775285154308985"

-				+ a

-				+ "-3736521844071744472"

-				+ a

-				+ "-1239142425696476764"

-				+ a

-				+ "-2717329470631008732"

-				+ a

-				+ "-9002493101279878344"

-				+ a

-				+ "-3081549338662512136"

-				+ a

-				+ "-4192120168253245726"

-				+ a

-				+ "-5262450888373666639"

-				+ a

-				+ "-4359619098442462225"

-				+ a

-				+ "4545309526212303135"

-				+ a

-				+ "1706751050568448421"

-				+ a

-				+ "-7215605223506374693"

-				+ a

-				+ "-8384613778406303503"

-				+ a

-				+ "-9115598915407494261"

-				+ a

-				+ "6493557840925709377"

-				+ a

-				+ "6002444260666557796"

-				+ a

-				+ "8757276082417258931"

-				+ a

-				+ "5517276445381297648"

-				+ a

-				+ "659854512378354543"

-				+ a

-				+ "1171949515664870929"

-				+ a

-				+ "7962665662827588176"

-				+ a

-				+ "-6428441354297408443"

-				+ a

-				+ "-1407303201060735287"

-				+ a

-				+ "-4630527955770637782"

-				+ a

-				+ "-3356564721964583930"

-				+ a

-				+ "7557293222167592516"

-				+ a

-				+ "-8976462499445679791"

-				+ a

-				+ "4913334300847132158"

-				+ a

-				+ "2715824074188316087"

-				+ a

-				+ "7098688088987829230"

-				+ a

-				+ "-5274733612517799445"

-				+ a

-				+ "2306144525447966301"

-				+ a

-				+ "-539171553148664727"

-				+ a

-				+ "-2276057022041114107"

-				+ a

-				+ "4472359697252482014"

-				+ a

-				+ "1517895533819116828"

-				+ a

-				+ "2952915317797409734"

-				+ a

-				+ "2416809354563825297"

-				+ a

-				+ "2136737984086357846"

-				+ a

-				+ "2932202033487269269"

-				+ a

-				+ "-4978515174981634403"

-				+ a

-				+ "-8763651883011539620"

-				+ a

-				+ "4799662088047448549"

-				+ a

-				+ "5524894362826545444"

-				+ a

-				+ "-5208901486068361377"

-				+ a

-				+ "-1547410064372038538"

-				+ a

-				+ "-8679851852185635074"

-				+ a

-				+ "-6401793263036105813"

-				+ a

-				+ "1985033060226478242"

-				+ a

-				+ "-6482220174980880207"

-				+ a

-				+ "6762019587712483449"

-				+ a

-				+ "1480525796015390734"

-				+ a

-				+ "8108723650031480226"

-				+ a

-				+ "2978843720351459877"

-				+ a

-				+ "-1336081875989930222"

-				+ a

-				+ "556688536962464952"

-				+ a

-				+ "-8872538052181681477"

-				+ a

-				+ "255278049706330286"

-				+ a

-				+ "-4841349086783434006"

-				+ a

-				+ "6790383796723089429"

-				+ a

-				+ "-7198580012715268624"

-				+ a

-				+ "7533854893267875945"

-				+ a

-				+ "-2767027533395577852"

-				+ a

-				+ "1674612631113288982"

-				+ a

-				+ "-7576984746517155992"

-				+ a

-				+ "-481457683325295045"

-				+ a

-				+ "758818546926160585"

-				+ a

-				+ "2117683637265311664"

-				+ a

-				+ "-3476219835082397205"

-				+ a

-				+ "-6484741587933492150"

-				+ a

-				+ "-3940875002536970107"

-				+ a

-				+ "9002040825213956445"

-				+ a

-				+ "-2917174987364332695"

-				+ a

-				+ "-66727676135893375"

-				+ a

-				+ "-6674337036793155609"

-				+ a

-				+ "8118072832569742745"

-				+ a

-				+ "-3664957541486359181"

-				+ a

-				+ "3419614972338034449"

-				+ a

-				+ "2824903256761154949"

-				+ a

-				+ "-6225521424818911642"

-				+ a

-				+ "-3824663404241060416"

-				+ a

-				+ "2835358670736706282"

-				+ a

-				+ "-5533635873640849322"

-				+ a

-				+ "1617737717408188617"

-				+ a

-				+ "-4342543362518212950"

-				+ a

-				+ "3769111142858305094"

-				+ a

-				+ "5945502355322974774"

-				+ a

-				+ "4120872397983584586"

-				+ a

-				+ "4003174987165865902"

-				+ a

-				+ "6964706800478134559"

-				+ a

-				+ "5993470215902535781"

-				+ a

-				+ "-3857502962439131016"

-				+ a

-				+ "6443524725591602672"

-				+ a

-				+ "8748264180145478580"

-				+ a

-				+ "7538036956928816136"

-				+ a

-				+ "257424971305193315"

-				+ a

-				+ "-7190236128509444940"

-				+ a

-				+ "-8704789362619223288"

-				+ a

-				+ "-270038105961354585"

-				+ a

-				+ "7574705795800529952"

-				+ a

-				+ "2228596148561184230"

-				+ a

-				+ "-2598750511091798685"

-				+ a

-				+ "-4195006584725201235"

-				+ a

-				+ "6470237484799739465"

-				+ a

-				+ "2042088550081344147"

-				+ a

-				+ "-7770224872565971249"

-				+ a

-				+ "-2058622155715559444"

-				+ a

-				+ "-738640071637619846"

-				+ a

-				+ "6143958792144726894"

-				+ a

-				+ "-8044362213379668580"

-				+ a

-				+ "8224887012855159830"

-				+ a

-				+ "3209854232446227413"

-				+ a

-				+ "7478149109097640268"

-				+ a

-				+ "8619347318797205212"

-				+ a

-				+ "1488851936360789829"

-				+ a

-				+ "-2257801310284603777"

-				+ a

-				+ "2961907687413792168"

-				+ a

-				+ "5367228619753286376"

-				+ a

-				+ "-1167042234202606476"

-				+ a

-				+ "1803394380188483105"

-				+ a

-				+ "7136307422837830432"

-				+ a

-				+ "7632179788793817561"

-				+ a

-				+ "7023944626199186947"

-				+ a

-				+ "3029221576998905191"

-				+ a

-				+ "-3954742339958497802"

-				+ a

-				+ "-4932533517651240945"

-				+ a

-				+ "2249675176414142007"

-				+ a

-				+ "-7414865112301845628"

-				+ a

-				+ "-7714577080262540145"

-				+ a

-				+ "-4483412957955698002"

-				+ a

-				+ "8669699406632040375"

-				+ a

-				+ "4510253243393872045"

-				+ a

-				+ "-270125992295806985"

-				+ a

-				+ "1400099911585106972"

-				+ a

-				+ "3368608011643162128"

-				+ a

-				+ "-3186327211102508391"

-				+ a

-				+ "-7004808457975131044"

-				+ a

-				+ "-7215067159615180667"

-				+ a

-				+ "-5075493924283306445"

-				+ a

-				+ "-6114237907724615416"

-				+ a

-				+ "2088154268915196303"

-				+ a

-				+ "8209387529276365399"

-				+ a

-				+ "-3861942433898838286"

-				+ a

-				+ "-3813120950568086983"

-				+ a

-				+ "4896163299838231430"

-				+ a

-				+ "-2234054304997173562"

-				+ a

-				+ "-6969473690113031802"

-				+ a

-				+ "287032981324281713"

-				+ a

-				+ "-7026687415196300579"

-				+ a

-				+ "8437788536412928585"

-				+ a

-				+ "59519871571995148"

-				+ a

-				+ "-2007111664379543173"

-				+ a

-				+ "-4187774861098453680"

-				+ a

-				+ "8637401319054574875"

-				+ a

-				+ "-3700805565304526845"

-				+ a

-				+ "-7131960406437337821"

-				+ a

-				+ "-9164692797770846654"

-				+ a

-				+ "5886254500269905851"

-				+ a

-				+ "-7894830705315346737"

-				+ a

-				+ "484964917021538234"

-				+ a

-				+ "-7374162993396474055"

-				+ a

-				+ "-5804543483427702932"

-				+ a

-				+ "1879617763117321785"

-				+ a

-				+ "-1162861953767998571"

-				+ a

-				+ "6410937909461127263"

-				+ a

-				+ "2496574133855806134"

-				+ a

-				+ "-6930597241031595282"

-				+ a

-				+ "-3385347474182226802"

-				+ a

-				+ "-4906421813540775677"

-				+ a

-				+ "3376509800070706659"

-				+ a

-				+ "3685761347281413883"

-				+ a

-				+ "-3703605717022933887"

-				+ a

-				+ "-3317209424191430634"

-				+ a

-				+ "6680165104107806595"

-				+ a

-				+ "-1421152020715589033"

-				+ a

-				+ "-7151394767920287792"

-				+ a

-				+ "2896824926148914351"

-				+ a

-				+ "-583404044349217560"

-				+ a

-				+ "-7275827201673200806"

-				+ a

-				+ "-5581728992629175840"

-				+ a

-				+ "-3759399463589837177"

-				+ a

-				+ "-7851071796689193301"

-				+ a

-				+ "2999247104082515774"

-				+ a

-				+ "5959438451429054874"

-				+ a

-				+ "4102208806599304830"

-				+ a

-				+ "5269187542287488293"

-				+ a

-				+ "3228944852182629029"

-				+ a

-				+ "-1321932716017535509"

-				+ a

-				+ "9047738068879013652"

-				+ a

-				+ "-430117592908725001"

-				+ a

-				+ "154431757781615122"

-				+ a

-				+ "5292625191058274884"

-				+ a

-				+ "-820879976800688912"

-				+ a

-				+ "7815829825921520514"

-				+ a

-				+ "7814626282908207726"

-				+ a

-				+ "6194047515562578714"

-				+ a

-				+ "4543712357461835613"

-				+ a

-				+ "6127919059662056304"

-				+ a

-				+ "-3041755880890705531"

-				+ a

-				+ "-6015922524640142745"

-				+ a

-				+ "-8240746661018900280"

-				+ a

-				+ "-4647074590211540695"

-				+ a

-				+ "4425056076926604935"

-				+ a

-				+ "-3628558101005679577"

-				+ a

-				+ "-2309605200216451261"

-				+ a

-				+ "4349438603816361823"

-				+ a

-				+ "6884968378719474311"

-				+ a

-				+ "2939625268139399900"

-				+ a

-				+ "-7384655158838745851"

-				+ a

-				+ "-9059163303551992957"

-				+ a

-				+ "-3168260877632134913"

-				+ a

-				+ "-2661349036927497205"

-				+ a

-				+ "-5732836207041285912"

-				+ a

-				+ "-1718443522567783859"

-				+ a

-				+ "-5184477095451803574"

-				+ a

-				+ "-2639779818877942595"

-				+ a

-				+ "-4285786699429851414"

-				+ a

-				+ "4153392600555453496"

-				+ a

-				+ "-677818638916169175"

-				+ a

-				+ "-318976644252115457"

-				+ a

-				+ "-6839771369066395476"

-				+ a

-				+ "-1331867802548483581"

-				+ a

-				+ "7662766576406914111"

-				+ a

-				+ "-4643717697303062174"

-				+ a

-				+ "491370442500697590"

-				+ a

-				+ "-5601731377105462991"

-				+ a

-				+ "-2083896333033158507"

-				+ a

-				+ "-8348647619744535173"

-				+ a

-				+ "2195403489667511601"

-				+ a

-				+ "-7304902791933157238"

-				+ a

-				+ "-8078804357956911593"

-				+ a

-				+ "1830019802461446756"

-				+ a

-				+ "-6914546352406074389"

-				+ a

-				+ "-1069372453373657960"

-				+ a

-				+ "7973324441431550228"

-				+ a

-				+ "7266296868894064186"

-				+ a

-				+ "-8218200041998108841"

-				+ a

-				+ "-2383548244358994901"

-				+ a

-				+ "2936358553872620482"

-				+ a

-				+ "-7394464481476738659"

-				+ a

-				+ "6796605663613232330"

-				+ a

-				+ "-7001716129222120235"

-				+ a

-				+ "3733905505178873527"

-				+ a

-				+ "-8924101992160005069"

-				+ a

-				+ "-8053245946307360193"

-				+ a

-				+ "-1410662425490071697"

-				+ a

-				+ "2667987898784000369"

-				+ a

-				+ "3930779870894342436"

-				+ a

-				+ "-737013868548327724"

-				+ a

-				+ "-5047711387310744430"

-				+ a

-				+ "-1995068133569824048"

-				+ a

-				+ "7428068289838785439"

-				+ a

-				+ "7998411348436431691"

-				+ a

-				+ "-66606868251602657"

-				+ a

-				+ "-3140963045029084778"

-				+ a

-				+ "-294529882224598188"

-				+ a

-				+ "7884304850523476618"

-				+ a

-				+ "-7015430383734539592"

-				+ a

-				+ "1417659741149471982"

-				+ a

-				+ "-1503958245384724231"

-				+ a

-				+ "6513146138809209371"

-				+ a

-				+ "-633829660049130428"

-				+ a

-				+ "-5690846708247479070"

-				+ a

-				+ "5057521049567048390"

-				+ a

-				+ "-1831459748130174291"

-				+ a

-				+ "-5811032821990866321"

-				+ a

-				+ "1118822902012234468"

-				+ a

-				+ "-2951084719946215176"

-				+ a

-				+ "6595747868165419153"

-				+ a

-				+ "-5474017136886613977"

-				+ a

-				+ "-5014173376270024122"

-				+ a

-				+ "3378038340528525905"

-				+ a

-				+ "4881313666473403454"

-				+ a

-				+ "3191601076967017248"

-				+ a

-				+ "-7308891140200636223"

-				+ a

-				+ "7456642015616743574"

-				+ a

-				+ "2377344551942001357"

-				+ a

-				+ "6578033781675835473"

-				+ a

-				+ "-3042794498162452750"

-				+ a

-				+ "2427071443633851664"

-				+ a

-				+ "8344198901104076413"

-				+ a

-				+ "462607879869700213"

-				+ a

-				+ "-6970961797048172328"

-				+ a

-				+ "8964377020396178700"

-				+ a

-				+ "730041378577385264"

-				+ a

-				+ "-369108319145229173"

-				+ a

-				+ "-1704480982549139880"

-				+ a

-				+ "-2795521892361361829"

-				+ a

-				+ "7410857119861369581"

-				+ a

-				+ "-4967026415955924393"

-				+ a

-				+ "3401654287294004153"

-				+ a

-				+ "4927182977102119891"

-				+ a

-				+ "1620336809248274012"

-				+ a

-				+ "3577184301995047135"

-				+ a

-				+ "-6841529815937467863"

-				+ a

-				+ "4613796452620724683"

-				+ a

-				+ "-1054934308018524851"

-				+ a

-				+ "-8855800260865241874"

-				+ a

-				+ "7225581178800302134"

-				+ a

-				+ "-9032442258141207901"

-				+ a

-				+ "-7057262694446386383"

-				+ a

-				+ "-3732442445224352364"

-				+ a

-				+ "2761141437113645653"

-				+ a

-				+ "-929430840722605254"

-				+ a

-				+ "2511509677650090911"

-				+ a

-				+ "8118132181366237347"

-				+ a

-				+ "-550026691256274082"

-				+ a

-				+ "-3668907501140258954"

-				+ a

-				+ "-606810055944795439"

-				+ a

-				+ "-9017650565356767436"

-				+ a

-				+ "2095198344342310157"

-				+ a

-				+ "7093363964773361344"

-				+ a

-				+ "-3099270771817404892"

-				+ a

-				+ "2198062659168522785"

-				+ a

-				+ "-6273665991256788861"

-				+ a

-				+ "6839118058276544645"

-				+ a

-				+ "8192709088232625308"

-				+ a

-				+ "5013863326431809160"

-				+ a

-				+ "-4754511127120331068"

-				+ a

-				+ "-3661877678366068554"

-				+ a

-				+ "8656183962683002717"

-				+ a

-				+ "4892501203466148430"

-				+ a

-				+ "-4958645542284711625"

-				+ a

-				+ "6723996370247953481"

-				+ a

-				+ "4911629062665388595"

-				+ a

-				+ "-4387819364150439783"

-				+ a

-				+ "-1296268218059531735"

-				+ a

-				+ "-7641850932378884683"

-				+ a

-				+ "7087270855110065163"

-				+ a

-				+ "3754708083359768149"

-				+ a

-				+ "3889586698096405834"

-				+ a

-				+ "-6137225015939556998"

-				+ a

-				+ "6768463333145358200"

-				+ a

-				+ "1733091583159252657"

-				+ a

-				+ "-8161421181385050066"

-				+ a

-				+ "-6013229318518658409"

-				+ a

-				+ "2733581142152004399"

-				+ a

-				+ "33219917982979999"

-				+ a

-				+ "-6452758044749045043"

-				+ a

-				+ "-6442695315870372078"

-				+ a

-				+ "3835780802518037131"

-				+ a

-				+ "-3231354270509736361"

-				+ a

-				+ "8973485937631645699"

-				+ a

-				+ "721138559962451060"

-				+ a

-				+ "-5459139089955258871"

-				+ a

-				+ "-289240518852777004"

-				+ a

-				+ "-8912467672113900015"

-				+ a

-				+ "8386886357144052810"

-				+ a

-				+ "-101643017034454067"

-				+ a

-				+ "-4929821758780909227"

-				+ a

-				+ "-1266807567558686950"

-				+ a

-				+ "8928737992684490917"

-				+ a

-				+ "5916636164747024412"

-				+ a

-				+ "-5791489627671790370"

-				+ a

-				+ "-8438709873793054297"

-				+ a

-				+ "-6154848405003374437"

-				+ a

-				+ "-1167593657140619808"

-				+ a

-				+ "454661938430770613"

-				+ a

-				+ "3268496715979850020"

-				+ a

-				+ "4330546121321481412"

-				+ a

-				+ "-6723452375653753049"

-				+ a

-				+ "-8355576695333144347"

-				+ a

-				+ "-7219392445688183200"

-				+ a

-				+ "-9021944183281656899"

-				+ a

-				+ "8347317120521098660"

-				+ a

-				+ "-1760524396084873794"

-				+ a

-				+ "-2904405441760595951"

-				+ a

-				+ "1273212335776452264"

-				+ a

-				+ "5599936571602637613"

-				+ a

-				+ "-1874789470910305709"

-				+ a

-				+ "33067597899967310"

-				+ a

-				+ "-1550773524926263894"

-				+ a

-				+ "8415787422238198331"

-				+ a

-				+ "-5951819633303154694"

-				+ a

-				+ "2723272766251525139"

-				+ a

-				+ "-553120179037176724"

-				+ a

-				+ "447473466542519917"

-				+ a

-				+ "737323123399346128"

-				+ a

-				+ "2239775540296940992"

-				+ a

-				+ "1174078146829196955"

-				+ a

-				+ "2350643859956391173"

-				+ a

-				+ "-3438882603276611789"

-				+ a

-				+ "-1951707287079412838"

-				+ a

-				+ "-8428630040889486231"

-				+ a

-				+ "-669351995787567767"

-				+ a

-				+ "8513892233989162054"

-				+ a

-				+ "-530937035598775991"

-				+ a

-				+ "5426726267843651337"

-				+ a

-				+ "-3602850646806113885"

-				+ a

-				+ "-6429721144703485328"

-				+ a

-				+ "2107955875578696536"

-				+ a

-				+ "-5835559291240127178"

-				+ a

-				+ "-2890715836766470430"

-				+ a

-				+ "-9094627687565959459"

-				+ a

-				+ "308725312537075641"

-				+ a

-				+ "8722393287822659501"

-				+ a

-				+ "-1871034873782069769"

-				+ a

-				+ "-6243665891020870405"

-				+ a

-				+ "-7479233619970828738"

-				+ a

-				+ "4330539874988922286"

-				+ a

-				+ "3935621836467028953"

-				+ a

-				+ "615168151969985279"

-				+ a

-				+ "4445060597391296801"

-				+ a

-				+ "3410383985931968895"

-				+ a

-				+ "-579589989416250847"

-				+ a

-				+ "8303194436290111070"

-				+ a

-				+ "-4912677608615539331"

-				+ a

-				+ "-6965655216202631959"

-				+ a

-				+ "-5867361958201239665"

-				+ a

-				+ "-2490037409986115500"

-				+ a

-				+ "8855406855933096914"

-				+ a

-				+ "6843928093911668153"

-				+ a

-				+ "6613066040083806339"

-				+ a

-				+ "-1348861990157247904"

-				+ a

-				+ "8105723480957128837"

-				+ a

-				+ "-5405166066063685056"

-				+ a

-				+ "2174568676370020228"

-				+ a

-				+ "1730792060395168454"

-				+ a

-				+ "6845585680059012189"

-				+ a

-				+ "4924409929101075924"

-				+ a

-				+ "639025024172742077"

-				+ a

-				+ "5768643796258308363"

-				+ a

-				+ "416533415844656392"

-				+ a

-				+ "6259184655283512653"

-				+ a

-				+ "1806723304538309499"

-				+ a

-				+ "-8742505610523700611"

-				+ a

-				+ "9115577441284285844"

-				+ a

-				+ "-4422903889562854520"

-				+ a

-				+ "-8824082423929691984"

-				+ a

-				+ "-1594761846184958295"

-				+ a

-				+ "5443094875525914358"

-				+ a

-				+ "6623287219725446632"

-				+ a

-				+ "2163366667453320563"

-				+ a

-				+ "-3191492609540029469"

-				+ a

-				+ "-8478768721203218298"

-				+ a

-				+ "-8714235035695423280"

-				+ a

-				+ "1479159013581916798"

-				+ a

-				+ "-3029731821111886911"

-				+ a

-				+ "6063285391300612225"

-				+ a

-				+ "448982299938190378"

-				+ a

-				+ "6144131538023295407"

-				+ a

-				+ "3019455323078528928"

-				+ a

-				+ "-7593851815836924794"

-				+ a

-				+ "-8000720159411662877"

-				+ a

-				+ "-8830770921055302009"

-				+ a

-				+ "1276533555023357214"

-				+ a

-				+ "-7709979517561914854"

-				+ a

-				+ "2039814596470784108"

-				+ a

-				+ "-2570052517613437266"

-				+ a

-				+ "7325409472787663518"

-				+ a

-				+ "-3306248715853973724"

-				+ a

-				+ "-324933084126805189"

-				+ a

-				+ "5564649630755734125"

-				+ a

-				+ "-7130842274844587065"

-				+ a

-				+ "6500429736061520497"

-				+ a

-				+ "3075990014772699976"

-				+ a

-				+ "-1996052343038159566"

-				+ a

-				+ "2287584536748611077"

-				+ a

-				+ "4857750267117388849"

-				+ a

-				+ "2762191378890433936"

-				+ a

-				+ "-3787216983113538032"

-				+ a

-				+ "-7876139956665979641"

-				+ a

-				+ "-4434682462834688392"

-				+ a

-				+ "-6132345995543411306"

-				+ a

-				+ "2846828934507063356"

-				+ a

-				+ "2205056035534892863"

-				+ a

-				+ "6971362409840063934"

-				+ a

-				+ "-7334379541155315235"

-				+ a

-				+ "-2185887118772341871"

-				+ a

-				+ "7336523966377208421"

-				+ a

-				+ "-5181518925588434593"

-				+ a

-				+ "916829953978579055"

-				+ a

-				+ "8916196074684429581"

-				+ a

-				+ "-343902964928479243"

-				+ a

-				+ "-7524291869292823524"

-				+ a

-				+ "5057971524866397017"

-				+ a

-				+ "4735037701324009298"

-				+ a

-				+ "-5661196528985499220"

-				+ a

-				+ "-7174476579407401831"

-				+ a

-				+ "-2390421549535361748"

-				+ a

-				+ "-8803774619671917786"

-				+ a

-				+ "479835471799791118"

-				+ a

-				+ "1792276559188966877"

-				+ a

-				+ "-950711340133083778"

-				+ a

-				+ "1720537911995611123"

-				+ a

-				+ "5126428118418085091"

-				+ a

-				+ "-7331637704121976875"

-				+ a

-				+ "-7806518246166233753"

-				+ a

-				+ "-3189681476890420153"

-				+ a

-				+ "-4827285738546271306"

-				+ a

-				+ "9155113814944475088"

-				+ a

-				+ "579631697133442053"

-				+ a

-				+ "-712791131848894891"

-				+ a

-				+ "7622278436622830165"

-				+ a

-				+ "-3136674195548280572"

-				+ a

-				+ "-6935310496940897544"

-				+ a

-				+ "-2154475007448707981"

-				+ a

-				+ "5987083393899431764"

-				+ a

-				+ "2499138839933402376"

-				+ a

-				+ "226999891005733606"

-				+ a

-				+ "2675814497804340634"

-				+ a

-				+ "7006121889419299978"

-				+ a

-				+ "-1869449977369693096"

-				+ a

-				+ "-1277694500406902792"

-				+ a

-				+ "-3300574855852490262"

-				+ a

-				+ "3142802020191812497"

-				+ a

-				+ "3663379312038602453"

-				+ a

-				+ "4125257994180814427"

-				+ a

-				+ "-4571845229523457245"

-				+ a

-				+ "-3150058857386876342"

-				+ a

-				+ "7503846977488272450"

-				+ a

-				+ "-1661115278146574655"

-				+ a

-				+ "-3071863653254613716"

-				+ a

-				+ "4683248393738534743"

-				+ a

-				+ "-1859465107663223608"

-				+ a

-				+ "-4337623990306671907"

-				+ a

-				+ "4817982326835451535"

-				+ a

-				+ "-7667508470929533280"

-				+ a

-				+ "8307945079328891250"

-				+ a

-				+ "-8045760216482737685"

-				+ a

-				+ "-7858631362692153093"

-				+ a

-				+ "-3410708982722832945"

-				+ a

-				+ "6470378289978424498"

-				+ a

-				+ "-5483906378085151451"

-				+ a

-				+ "7382740210062959041"

-				+ a

-				+ "-3409959318852138797"

-				+ a

-				+ "5842851101995209434"

-				+ a

-				+ "7017954023532784719"

-				+ a

-				+ "974934155492127320"

-				+ a

-				+ "-3094009056197747103"

-				+ a

-				+ "-969387622581744988"

-				+ a

-				+ "-1632563381387869652"

-				+ a

-				+ "-9183098983740663590"

-				+ a

-				+ "-4320397456882074514"

-				+ a

-				+ "-3261368460000879189"

-				+ a

-				+ "383963959335946502"

-				+ a

-				+ "-3684640452189005692"

-				+ a

-				+ "1952680973518464182"

-				+ a

-				+ "6226530231022358768"

-				+ a

-				+ "3072568317345091370"

-				+ a

-				+ "-4962716382738148806"

-				+ a

-				+ "8455687499001964857"

-				+ a

-				+ "150246332340927830"

-				+ a

-				+ "640861774309913449"

-				+ a

-				+ "5838050563792098560"

-				+ a

-				+ "20611114217615544"

-				+ a

-				+ "5929259895778420773"

-				+ a

-				+ "6537239832453755289"

-				+ a

-				+ "-3264102069205369214"

-				+ a

-				+ "912347645120744252"

-				+ a

-				+ "2425848868939426699"

-				+ a

-				+ "1723027032012111634"

-				+ a

-				+ "1449357166220209037"

-				+ a

-				+ "2766362939912705680"

-				+ a

-				+ "4727545052215865110"

-				+ a

-				+ "-1616490558707992782"

-				+ a

-				+ "4409644222525651092"

-				+ a

-				+ "-4337183804510752062"

-				+ a

-				+ "3535045438786400315"

-				+ a

-				+ "8803098582001817561"

-				+ a

-				+ "-6955431114397740500"

-				+ a

-				+ "-6219310959583541594"

-				+ a

-				+ "-3700064324151895341"

-				+ a

-				+ "-2549680515428708882"

-				+ a

-				+ "-2401883646008126064"

-				+ a

-				+ "-7582292756795829165"

-				+ a

-				+ "7667156026808070552"

-				+ a

-				+ "-3558059286124310056"

-				+ a

-				+ "8735793018250739997"

-				+ a

-				+ "-6427974810371007068"

-				+ a

-				+ "1334783141990516397"

-				+ a

-				+ "867020448668406789"

-				+ a

-				+ "-5691512855692184361"

-				+ a

-				+ "2463958787597883575"

-				+ a

-				+ "7935389093643043859"

-				+ a

-				+ "4752545886380456294"

-				+ a

-				+ "-1196508123657862429"

-				+ a

-				+ "2093750917497615474"

-				+ a

-				+ "-7791249716898626507"

-				+ a

-				+ "8198523205454538737"

-				+ a

-				+ "262561788122779659"

-				+ a

-				+ "6696297940506045689"

-				+ a

-				+ "1287784952697600605"

-				+ a

-				+ "-4796552398039489762"

-				+ a

-				+ "385046329657361469"

-				+ a

-				+ "8831073988511756345"

-				+ a

-				+ "8308323241869503292"

-				+ a

-				+ "-6375459006577280917"

-				+ a

-				+ "4041141025072401164"

-				+ a

-				+ "1852830842547147361"

-				+ a

-				+ "550492070617199974"

-				+ a

-				+ "-3810637208423908392"

-				+ a

-				+ "634939432473076781"

-				+ a

-				+ "6820683277163483747"

-				+ a

-				+ "-2272753417970275885"

-				+ a

-				+ "-1125025879686622100"

-				+ a

-				+ "2345080866577073148"

-				+ a

-				+ "9070140269618540152"

-				+ a

-				+ "-3306117376765807520"

-				+ a

-				+ "3197312849039628462"

-				+ a

-				+ "-7832747983125543947"

-				+ a

-				+ "6928232711304267929"

-				+ a

-				+ "-4404354247155346356"

-				+ a

-				+ "7746342250056874796"

-				+ a

-				+ "7310633729720542011"

-				+ a

-				+ "-2728063333465515258"

-				+ a

-				+ "-4955603802615225157"

-				+ a

-				+ "6898617935063123704"

-				+ a

-				+ "-220170639807146220"

-				+ a

-				+ "-2019827212939117373"

-				+ a

-				+ "-470310388988857033"

-				+ a

-				+ "5505618100440132645"

-				+ a

-				+ "-7571658264226059414"

-				+ a

-				+ "-7888356696237361642"

-				+ a

-				+ "-4477730354595352022"

-				+ a

-				+ "-7846732783657640881"

-				+ a

-				+ "-8801627451734936756"

-				+ a

-				+ "5872317002164430091"

-				+ a

-				+ "-4339767558518547100"

-				+ a

-				+ "3910203839741261584"

-				+ a

-				+ "-3519143931735275157"

-				+ a

-				+ "164939830321181168"

-				+ a

-				+ "-5488818195135015269"

-				+ a

-				+ "-4667473428940159348"

-				+ a

-				+ "-4981236168318181219"

-				+ a

-				+ "3560846926667666393"

-				+ a

-				+ "3014750347556533222"

-				+ a

-				+ "1651918403266366438"

-				+ a

-				+ "784187752316822622"

-				+ a

-				+ "-8577471103724493539"

-				+ a

-				+ "-1656192333892982206"

-				+ a

-				+ "-1617317898423166008"

-				+ a

-				+ "-2678885846361396918"

-				+ a

-				+ "302211955997870039"

-				+ a

-				+ "8638572990304208397"

-				+ a

-				+ "2218502254957595360"

-				+ a

-				+ "-7161423473740763740"

-				+ a

-				+ "3277635809268947558"

-				+ a

-				+ "6105474029898724238"

-				+ a

-				+ "-3933173974127482275"

-				+ a

-				+ "4697446393802435027"

-				+ a

-				+ "-2515976829170222099"

-				+ a

-				+ "2494490943498590059"

-				+ a

-				+ "-5583096342045076362"

-				+ a

-				+ "6917551925452206303"

-				+ a

-				+ "-8907420521351388972"

-				+ a

-				+ "-2143228459842603216"

-				+ a

-				+ "5584211206548670691"

-				+ a

-				+ "1963827294400159992"

-				+ a

-				+ "1062816828116449093"

-				+ a

-				+ "-6249888286799449649"

-				+ "abcdef"

-				+ a

-				+ b

-				+ c

-				+ d

-				+ e

-				+ " ghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxyzabcdefghiABCDEFGHIJKLMNOPQRSTUVWXYZjklmnopqrstuvwxy12";

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test626/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test626/A_in.js
deleted file mode 100644
index 033e61d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test626/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public enum Enum_16 {

-ONE,TWO,THREE;

-String foo(String str){return"";}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test626/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test626/A_out.js
deleted file mode 100644
index e10fc02..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test626/A_out.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public enum Enum_16 {

-	ONE, TWO, THREE;

-	String foo(String str) {

-		return "";

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test627/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test627/A_in.js
deleted file mode 100644
index 0f3e53e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test627/A_in.js
+++ /dev/null
@@ -1 +0,0 @@
-@Annot(x = 23, y = -3) public class A {}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test627/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test627/A_out.js
deleted file mode 100644
index 331411e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test627/A_out.js
+++ /dev/null
@@ -1,3 +0,0 @@
-@Annot(x = 23, y = -3)

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test628/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test628/A_in.js
deleted file mode 100644
index 54a59ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test628/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	@Annot(x = 23, y = -3) void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test628/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test628/A_out.js
deleted file mode 100644
index 164303a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test628/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	@Annot(x = 23, y = -3)

-	void foo() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test629/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test629/A_in.js
deleted file mode 100644
index fef715d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test629/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class A {

-	@Annot(x = 23, y = -3) A() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test629/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test629/A_out.js
deleted file mode 100644
index 31acf39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test629/A_out.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class A {

-	@Annot(x = 23, y = -3)

-	A() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test630/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test630/A_in.js
deleted file mode 100644
index fc81e95..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test630/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class A {

-	public MyClass getMyObject()

-	{

-	    MyClass o = new MyClass();

-

-	    doSomehting( 1 );

-

-	    if (somethingBad)

-	        throw( new IllegalBlaException( "bad bla" ) );

-

-	    return( o );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test630/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test630/A_out.js
deleted file mode 100644
index 0a365cb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test630/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class A {

-	public MyClass getMyObject() {

-		MyClass o = new MyClass();

-

-		doSomehting(1);

-

-		if (somethingBad)

-			throw ( new IllegalBlaException("bad bla") );

-

-		return ( o );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test631/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test631/A_in.js
deleted file mode 100644
index fc81e95..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test631/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class A {

-	public MyClass getMyObject()

-	{

-	    MyClass o = new MyClass();

-

-	    doSomehting( 1 );

-

-	    if (somethingBad)

-	        throw( new IllegalBlaException( "bad bla" ) );

-

-	    return( o );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test631/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test631/A_out.js
deleted file mode 100644
index 0a365cb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test631/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class A {

-	public MyClass getMyObject() {

-		MyClass o = new MyClass();

-

-		doSomehting(1);

-

-		if (somethingBad)

-			throw ( new IllegalBlaException("bad bla") );

-

-		return ( o );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test632/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test632/A_in.js
deleted file mode 100644
index fc81e95..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test632/A_in.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class A {

-	public MyClass getMyObject()

-	{

-	    MyClass o = new MyClass();

-

-	    doSomehting( 1 );

-

-	    if (somethingBad)

-	        throw( new IllegalBlaException( "bad bla" ) );

-

-	    return( o );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test632/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test632/A_out.js
deleted file mode 100644
index 200d9c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test632/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class A {

-	public MyClass getMyObject() {

-		MyClass o = new MyClass();

-

-		doSomehting(1);

-

-		if (somethingBad)

-			throw( new IllegalBlaException("bad bla") );

-

-		return( o );

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test633/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test633/A_in.js
deleted file mode 100644
index c2eadaa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test633/A_in.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import java.util.List;

-

-

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test633/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test633/A_out.js
deleted file mode 100644
index c2eadaa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test633/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import java.util.List;

-

-

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test634/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test634/A_in.js
deleted file mode 100644
index c2eadaa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test634/A_in.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import java.util.List;

-

-

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test634/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test634/A_out.js
deleted file mode 100644
index ba1827d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test634/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import java.util.List;

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test635/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test635/A_in.js
deleted file mode 100644
index 24f422e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test635/A_in.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import java.util.List;

-

-

-

-import java.io.IOException;

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test635/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test635/A_out.js
deleted file mode 100644
index f8af1f1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test635/A_out.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import java.util.List;

-

-import java.io.IOException;

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test636/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test636/A_in.js
deleted file mode 100644
index ba1827d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test636/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import java.util.List;

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test636/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test636/A_out.js
deleted file mode 100644
index c2eadaa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test636/A_out.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import java.util.List;

-

-

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test637/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test637/A_in.js
deleted file mode 100644
index 5c06d3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test637/A_in.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import java.util.List;

-

-

-

-

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test637/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test637/A_out.js
deleted file mode 100644
index 7f08768..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test637/A_out.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import java.util.List;

-

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test638/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test638/A_in.js
deleted file mode 100644
index ba1827d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test638/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import java.util.List;

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test638/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test638/A_out.js
deleted file mode 100644
index ba1827d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test638/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import java.util.List;

-

-import java.io.IOException;

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test639/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test639/A_in.js
deleted file mode 100644
index b8d67a9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test639/A_in.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import java.util.List; // comment

-

-

-

-

-

-import java.io.IOException; // comment2

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test639/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test639/A_out.js
deleted file mode 100644
index 0763d4a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test639/A_out.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import java.util.List; // comment

-

-

-import java.io.IOException; // comment2

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test640/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test640/A_in.js
deleted file mode 100644
index 13b2b97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test640/A_in.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import java.util.List; // comment

-

-import java.io.IOException; // comment2

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test640/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test640/A_out.js
deleted file mode 100644
index 13b2b97..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test640/A_out.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import java.util.List; // comment

-

-import java.io.IOException; // comment2

-

-public class X {

-

-	List list;

-

-	void foo() throws IOException {

-	}

-

-	public static void main(String[] args) {

-		// TODO Auto-generated method stub

-

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test641/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test641/A_in.js
deleted file mode 100644
index bdc5838..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test641/A_in.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class Bar {

-    void m() {

-        if (aaa && bbb && ccc && ddd && eee) {

-            return;

-        }

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test641/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test641/A_out.js
deleted file mode 100644
index 3e807c4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test641/A_out.js
+++ /dev/null
@@ -1,8 +0,0 @@
-class Bar {

-  void m() {

-	if (aaa && bbb && ccc && ddd

-	    && eee) {

-	  return;

-	}

-  }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/A_in.js
deleted file mode 100644
index 40e775b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/A_in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test;

-public class Test

-{

-	public static void main (String[] args)

-	{

-		if (1 == 1)

-			x = y;

-		else

-			y = x;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/A_out.js
deleted file mode 100644
index 13cf7c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/A_out.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test;

-

-public class Test

-{

-	public static void main (String[] args)

-	{

-		if (1 == 1)

-			x = y;

-		else

-			y = x;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/formatter.prefs b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/formatter.prefs
deleted file mode 100644
index 04e3203..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/formatter.prefs
+++ /dev/null
@@ -1,248 +0,0 @@
-#Thu Dec 14 10:42:24 GMT-03:00 2006
-eclipse.preferences.version=1
-org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_assignment=0
-org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if=52
-org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression=52
-org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration=21
-org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=21
-org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=20
-org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration=20
-org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field=0
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports=0
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk=0
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package=0
-org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_comments=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_header=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_html=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_source_code=true
-org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags=do not insert
-org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.wst.jsdt.core.formatter.comment.line_length=80
-org.eclipse.wst.jsdt.core.formatter.compact_else_if=true
-org.eclipse.wst.jsdt.core.formatter.continuation_indentation=2
-org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.wst.jsdt.core.formatter.indent_empty_lines=false
-org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.wst.jsdt.core.formatter.indentation.size=4
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line=true
-org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line=true
-org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.wst.jsdt.core.formatter.lineSplit=100
-org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.wst.jsdt.core.formatter.tabulation.char=tab
-org.eclipse.wst.jsdt.core.formatter.tabulation.size=4
-org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations=true
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/formatter.xml b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/formatter.xml
deleted file mode 100644
index c9c340a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test642/formatter.xml
+++ /dev/null
@@ -1,251 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<profiles version="10">
-<profile name="Visionnaire" version="10">
-<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_assignment" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="52"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="21"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="21"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="20"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_comments" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_html" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_source_code" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.comment.line_length" value="80"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_empty_lines" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.indentation.size" value="4"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="100"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="tab"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
-<setting id="org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations" value="true"/>
-</profile>
-</profiles>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test643/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test643/A_in.js
deleted file mode 100644
index 9c41bbd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test643/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class Test

-{

-} // end of Test
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test643/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test643/A_out.js
deleted file mode 100644
index 93908b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test643/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class Test {

-} // end of Test

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test644/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test644/A_in.js
deleted file mode 100644
index be2a11d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test644/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class Test

-{

-} /* end of Test */
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test644/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test644/A_out.js
deleted file mode 100644
index 157fd82..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test644/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class Test {

-} /* end of Test */

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test645/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test645/A_in.js
deleted file mode 100644
index ce1db51..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test645/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class Test

-{

-} // end of Test

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test645/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test645/A_out.js
deleted file mode 100644
index 93908b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test645/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class Test {

-} // end of Test

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test646/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test646/A_in.js
deleted file mode 100644
index ce1db51..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test646/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class Test

-{

-} // end of Test

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test646/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test646/A_out.js
deleted file mode 100644
index 93908b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test646/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class Test {

-} // end of Test

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test647/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test647/A_in.js
deleted file mode 100644
index 9c41bbd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test647/A_in.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class Test

-{

-} // end of Test
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test647/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test647/A_out.js
deleted file mode 100644
index abeaa98..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test647/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class Test {

-} // end of Test
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test648/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test648/A_in.js
deleted file mode 100644
index 24d2c1c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test648/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test

-{

-} // end of Test

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test648/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test648/A_out.js
deleted file mode 100644
index 93908b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test648/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class Test {

-} // end of Test

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test649/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test649/A_in.js
deleted file mode 100644
index 24d2c1c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test649/A_in.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test

-{

-} // end of Test

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test649/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test649/A_out.js
deleted file mode 100644
index 93908b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test649/A_out.js
+++ /dev/null
@@ -1,2 +0,0 @@
-public class Test {

-} // end of Test

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test650/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test650/A_in.js
deleted file mode 100644
index 375d9cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test650/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test

-{

-	int i = 0;

-	int k = + ++i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test650/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test650/A_out.js
deleted file mode 100644
index b4284a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test650/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test {

-	int i = 0;

-	int k = + ++i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test651/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test651/A_in.js
deleted file mode 100644
index e08b14c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test651/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test

-{

-	int i = 0;

-	int k = + --i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test651/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test651/A_out.js
deleted file mode 100644
index a2fa3d5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test651/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test {

-	int i = 0;

-	int k = +--i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test652/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test652/A_in.js
deleted file mode 100644
index cbc6d04..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test652/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test

-{

-	int i = 0;

-	int k = - --i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test652/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test652/A_out.js
deleted file mode 100644
index 2107b9e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test652/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test {

-	int i = 0;

-	int k = - --i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test653/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test653/A_in.js
deleted file mode 100644
index be5dd43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test653/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test

-{

-	int i = 0;

-	int k = - ++i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test653/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test653/A_out.js
deleted file mode 100644
index 2965fa5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test653/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test {

-	int i = 0;

-	int k = -++i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test654/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test654/A_in.js
deleted file mode 100644
index cb29687..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test654/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test

-{

-	int i = 0;

-	int k = + (++i);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test654/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test654/A_out.js
deleted file mode 100644
index 2db53b1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test654/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test {

-	int i = 0;

-	int k = +(++i);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test655/A_in.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test655/A_in.js
deleted file mode 100644
index 5429977..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test655/A_in.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class Test

-{

-	int i = 0;

-	int k = - (--i);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test655/A_out.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test655/A_out.js
deleted file mode 100644
index f9524b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Formatter/test655/A_out.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class Test {

-	int i = 0;

-	int k = -(--i);

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/.settings/.jsdtscope
deleted file mode 100644
index 340612a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/.settings/.jsdtscope
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="otherSrc()"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/NotInClasspath/p/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/NotInClasspath/p/Y.js
deleted file mode 100644
index bb6f0e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/NotInClasspath/p/Y.js
+++ /dev/null
@@ -1,10 +0,0 @@
-	function Y() {

-	}

-	function Y( i) {

-//		super(i);

-	}

-	function Y( b) {

-//		super(1);

- 	}

-	function bar() {

-	}

diff --git "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/X31997.js" "b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/X31997.js"
deleted file mode 100644
index d1f0b97..0000000
--- "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/X31997.js"
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Test case for bug 31997 Refactoring d.n. work for projects with brackets in name. 

-public class X31997 {

-}

-*/
\ No newline at end of file
diff --git "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/X92210.js" "b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/X92210.js"
deleted file mode 100644
index a3adffc..0000000
--- "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/X92210.js"
+++ /dev/null
@@ -1,3 +0,0 @@
-//public class X92210 {

-//	public void foo() {}

-//}

diff --git "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/Y31997.js" "b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/Y31997.js"
deleted file mode 100644
index ee7d0bd..0000000
--- "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/otherSrc\050\051/Y31997.js"
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Test case for bug 31997 Refactoring d.n. work for projects with brackets in name. */

-//public class Y31997 extends X31997 {

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/CA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/CA.js
deleted file mode 100644
index b3c7886..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/CA.js
+++ /dev/null
@@ -1,16 +0,0 @@
-///* Test case for 1GIIBC3: ITPJCORE:WINNT - search for method references - missing matches */

-//public class CA {

-//	class CB {

-//		void f() {

-//			m();

-//		}

-//		class CC {

-//			void f() {

-//				m();

-//			}

-//		}

-//	}

-//	void m() {

-//		System.out.println("a");

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/D.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/D.js
deleted file mode 100644
index 07a127e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/D.js
+++ /dev/null
@@ -1,12 +0,0 @@
-///* Regression test for 1GL12XE: ITPJCORE:WIN2000 - search: missing field references in inner class */

-//public class D {

-//	int h;

-//	void g() {

-//		new Object() {

-//			public void run() {

-//				int y = 0;

-//				h = y;

-//			}

-//		};

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/E.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/E.js
deleted file mode 100644
index 05333aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/E.js
+++ /dev/null
@@ -1,7 +0,0 @@
-///* Test case for 1GHDA2V: ITPJCORE:WINNT - ClassCastException when doing a search */

-//public class E {

-//	public Object foo() {

-//		int[] result = new int[0];

-//		return result.clone();

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/O.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/O.js
deleted file mode 100644
index 36499d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/O.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Regression test for 1GL11J6: ITPJCORE:WIN2000 - search: missing field references (nested types) 

-public class O {

-	int y;

-	class I {

-		void y() {

-			y = 0;

-		}

-	}

-}

-*/

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/Test.js
deleted file mode 100644
index cc4a375..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/Test.js
+++ /dev/null
@@ -1,29 +0,0 @@
-function testMain()

-{

-  x = A1(1);

-}

-

-/*

-public class Test {

-

-static {

-	Test var = new Test();

-}

-

-{

-	Test t = null;

-}

-

-public static void main(String[] args) {

-	p.Y y = new p.Y();

-	y.foo(1, "a", y);

-	p.Y.bar();

-	

-	p.Z z = new p.Z();

-	z.foo(1, "a", z);

-	

-	p.A a = new p.A(y);

-	a.foo(1, "a", a.x);

-}

-}

-*/

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/TypeReferenceAsSingleNameReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/TypeReferenceAsSingleNameReference.js
deleted file mode 100644
index c857ea3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/TypeReferenceAsSingleNameReference.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*

-public class TypeReferenceAsSingleNameReference {

-

-void hasReference() {

-	TypeReferenceAsSingleNameReference x = null;

-	TypeReferenceAsSingleNameReference = new Object();

-}

-

-void hasNoReference() {

-	Object TypeReferenceAsSingleNameReference = null;

-}

-

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/W.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/W.js
deleted file mode 100644
index eef2d78..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/W.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Regression test for 1GL9UMH: ITPJCORE:WIN2000 - search: missing type occurrences 

-public class W {

-	static int length = 17;

-	int m() {

-		int[] R = new int[1];

-		return W.length; /*1*/

-	}

-}

-*/

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/X.js
deleted file mode 100644
index 8b81530..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/X.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Test case for PR 1GK7K17: ITPJCORE:WIN2000 - search: missing type reference 

-public class X{

-  static void s(){};

-}

-class AA{

-   AA(){ 

-     X.s();   //<< 

-   };   

-}

-*/

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a/A.js
deleted file mode 100644
index f1eea7c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Test case for 1GL0MN9: ITPJCORE:WIN2000 - search: not consistent results for nested types 

-public class A {

-	class X {

-	}

-

-};

-class S extends A {

-}

-class B {

-	A.X ax;  

-	S.X sx;  

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a2/X.js
deleted file mode 100644
index 92fbab9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a2/X.js
+++ /dev/null
@@ -1,11 +0,0 @@
-//package a2;

-///* Test case for bug 5923 Search for "length" field refs finds [].length  */

-//public class X {

-//	int length = 1;

-//	public void foo() {

-///		int[] array = new int[length];

-//		for (int i = 0, length = array.length; i < length; i++) {

-//		}

-//	}

-//}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/References.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/References.js
deleted file mode 100644
index 11f9214..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/References.js
+++ /dev/null
@@ -1,11 +0,0 @@
-//package a3;

-//import a3.b.B;

-//public class References {

-//	public void foo() {

-//		X x1 = new Z(); // single type references

-//		a3.b.A a = null; // qualified type reference

-//		a3.b.A.B.C inner = null; // qualified type references with inner type

-//		Object o = a3.Y.field; // binary reference + qualified name reference

-//		X x2 = (B)x1; // single name reference

-//	}

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/X.js
deleted file mode 100644
index 1d94822..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//package a3;

-//public class X {

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/Y.js
deleted file mode 100644
index a5c3e1e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/Y.js
+++ /dev/null
@@ -1,4 +0,0 @@
-//package a3;

-//public class Y extends X {

-//	public static Object field = null;

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/Z.js
deleted file mode 100644
index dfaed01..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/Z.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//package a3; 

-//public class Z extends Y {

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/b/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/b/A.js
deleted file mode 100644
index 3374f34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/b/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*

-public class A {

-	public class B {

-		public class C {

-		}

-	}

-

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/b/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/b/B.js
deleted file mode 100644
index 86516db..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a3/b/B.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//package a3.b;

-//public class B extends a3.X {

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a4/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a4/X.js
deleted file mode 100644
index 0ee785a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a4/X.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Test case for bug 6158 Search - Prefix and postfix expression not found as write reference 

-public class X {

-	int field;

-	void foo() {

-		field++;

-	}

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a5/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a5/B.js
deleted file mode 100644
index 7cd1d28..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a5/B.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Test case for bug 6538 searchDeclarationsOf* incorrect 

-

-class A{

-        int i(){

-                return 0;

-        }

-}

-

-class B {

-        int f;

-        void i(){

-                y();

-                Object l= new byte[f];

-        }

-        private void y(){

-        }

-

-}

-

-class C extends A{

-        public  int i(){

-                return 0;

-        }

-}

-*/

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a6/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a6/A.js
deleted file mode 100644
index 8c67e8a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a6/A.js
+++ /dev/null
@@ -1,26 +0,0 @@
-P.prototype=new Object();

-P.prototype.f=1;

-function P(){}

-function a(){}

-function m() {

-                this.f++;

-                var p= new P();

-                a();

-}

-P.prototype.mm=m;

-/*

-

-class A {

-}

-

-class B extends A {

-        private int f;

-        private class P{}

-        private void a(){}

-        void m() { 

-                f++;

-                P p= new P();

-                a();

-        }       

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a7/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a7/X.js
deleted file mode 100644
index 2dee611..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a7/X.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Test case for bug 6779 searchDeclarationsOfReferencedTyped - missing exception types 

-public class X {

-	public void foo() throws MyException {

-	}

-}

-class MyException extends Exception {

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a8/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a8/A.js
deleted file mode 100644
index 48a93ce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a8/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Test case for bug 7344 Search - write acces give wrong result 

-public class A {

-   public A a;

-   public int i;

-   public void foo(){

-      a.i = 25;

-   }

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a9/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a9/A.js
deleted file mode 100644
index aade62c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/a9/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*

-class B{

-	private void m(){

-	}

-}

-class A extends B{

-	void m(){

-	}

-}

-class C extends A{

-	void m(){

-	}

-*/

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/b1/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/b1/A.js
deleted file mode 100644
index 193b1b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/b1/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/* Test case for bug 7987 Field reference search should do lookup in 1.4 mode 

-public class A {

-  int x;

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/b1/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/b1/B.js
deleted file mode 100644
index 9b99ae9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/b1/B.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Test case for bug 7987 Field reference search should do lookup in 1.4 mode 

-public class B extends A {

-  void foo() {

-    this.x++;

-  }

-}

-*/
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/A.js
deleted file mode 100644
index b9eb5c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/A.js
+++ /dev/null
@@ -1,15 +0,0 @@
-	var DEBUG = false;

-	var x;

-	function A(xi) {

-		 x = xi;

-	}

-	function foo() {

-	     var jj;

-		 DEBUG = true;

-	}

-	function  foo2( i,  s,  x) {

-//		x.new Inner().foo();

-	}

-	function main( args) {

-	  A(0);

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/X.js
deleted file mode 100644
index 666df63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/X.js
+++ /dev/null
@@ -1,17 +0,0 @@
-//	public static boolean DEBUG = false;

-//	public I field;

-//	public class Inner {

-//		public String foo() {

-//			return "foo";

-//		}

-//	}

-//	public X() {

-//		X.DEBUG = true;

-//	}

-//	public X(int i) {

-//	}

-//	public static void bar() {

-//	}

-//	public void foo(int i, String s, X x) {

-//		Inner inner = new Inner();

-//	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/Y.js
deleted file mode 100644
index f5e084a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/Y.js
+++ /dev/null
@@ -1,13 +0,0 @@
-//package p;

-////public class Y extends X {

-//	public Y() {

-//	}

-//	public Y(int i) {

-//		super(i);

-//	}

-//	public Y(boolean b) {

-//		super(1);

-// 	}

-//	public static void bar() {

-//	}

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/Z.js
deleted file mode 100644
index d764260..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/Z.js
+++ /dev/null
@@ -1,12 +0,0 @@
-//package p;

-//public class Z extends Y {

-//	public Z() {

-//	}

-//	public Z(int i) {

-//		super(i);

-//	}

-//	public void foo(int i, String s, X x) {

-////		super.foo(i, s, new Y(true));

-//	}

-//

-//}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/cls1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/cls1.js
deleted file mode 100644
index 91fb18b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/cls1.js
+++ /dev/null
@@ -1,9 +0,0 @@
-MyClass.prototype.someMethod = MyClass_someMethod;

-function MyClass()

-{

-  this.field1=0;

-}

-

-function MyClass_someMethod()

-{

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/usecls1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/usecls1.js
deleted file mode 100644
index f5af2d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JSSearch/src/p/usecls1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function foo()

-{

-  var myClassObj = new MyClass();

-  myClassObj.someMethod();

-  myClassObj.field1=1;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/.settings/.jsdtscope
deleted file mode 100644
index 49cabdd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/.settings/.jsdtscope
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/src/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/src/A.js
deleted file mode 100644
index fbd84a1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectSrcTests/src/A.js
+++ /dev/null
@@ -1 +0,0 @@
-function AFoo(){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/.settings/.jsdtscope
deleted file mode 100644
index 068e118..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/.settings/.jsdtscope
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path=""/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="lib" path="lib.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/B.js
deleted file mode 100644
index 0942784..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/B.js
+++ /dev/null
@@ -1 +0,0 @@
-function B(){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib.jar
deleted file mode 100644
index e2aadfd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib142530.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib142530.jar
deleted file mode 100644
index 6c699ca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib142530.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib148949.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib148949.jar
deleted file mode 100644
index 81c9c64..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/lib148949.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/q/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/q/A.js
deleted file mode 100644
index 2ae4ae2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/q/A.js
+++ /dev/null
@@ -1 +0,0 @@
-function A(){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/q/readme.txt b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/q/readme.txt
deleted file mode 100644
index e69de29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/q/readme.txt
+++ /dev/null
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/readme.txt b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/readme.txt
deleted file mode 100644
index e69de29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/readme.txt
+++ /dev/null
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/readme2.txt b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/readme2.txt
deleted file mode 100644
index e69de29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/readme2.txt
+++ /dev/null
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/y/Main.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/y/Main.js
deleted file mode 100644
index 58ff2b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaProjectTests/x/y/Main.js
+++ /dev/null
@@ -1 +0,0 @@
-function main(){}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/.settings/.jsdtscope
deleted file mode 100644
index e6167a3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/.settings/.jsdtscope
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="otherSrc()"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="lib" path="MyJar.jar"/>
-    <classpathentry kind="lib" path="test20631.jar" sourcepath="/JavaSearch/test20631.zip" rootpath=""/>
-    <classpathentry kind="lib" path="test24741.jar" sourcepath="/JavaSearch/test24741.jar" rootpath=""/>
-    <classpathentry kind="lib" path="test47909.jar" sourcepath="/JavaSearch/test47909.jar" rootpath=""/>
-    <classpathentry kind="lib" path="test47989.jar" sourcepath="/JavaSearch/test47989.jar" rootpath=""/>
-    <classpathentry kind="lib" path="test48261.jar" sourcepath="/JavaSearch/test48261.jar" rootpath=""/>
-    <classpathentry kind="lib" path="test48725.jar" sourcepath="/JavaSearch/test48725.jar" rootpath=""/>
-    <classpathentry kind="lib" path="b111416.jar" sourcepath="/JavaSearch/b111416.jar" rootpath=""/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/AbortCompilation.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/AbortCompilation.jar
deleted file mode 100644
index 6597012..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/AbortCompilation.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/AbortCompilation.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/AbortCompilation.zip
deleted file mode 100644
index 2d827f8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/AbortCompilation.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/MyJar.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/MyJar.jar
deleted file mode 100644
index ab37ac1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/MyJar.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/MyJar.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/MyJar.zip
deleted file mode 100644
index 8be4a8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/MyJar.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/NotInClasspath/p/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/NotInClasspath/p/Y.js
deleted file mode 100644
index cea5616..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/NotInClasspath/p/Y.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package p;

-public class Y extends X {

-	public Y() {

-	}

-	public Y(int i) {

-		super(i);

-	}

-	public Y(boolean b) {

-		super(1);

- 	}

-	public static void bar() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/b111416.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/b111416.jar
deleted file mode 100644
index a3989f3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/b111416.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/corrupt.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/corrupt.jar
deleted file mode 100644
index e69de29..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/corrupt.jar
+++ /dev/null
diff --git "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/X31997.js" "b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/X31997.js"
deleted file mode 100644
index 5f53102..0000000
--- "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/X31997.js"
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Test case for bug 31997 Refactoring d.n. work for projects with brackets in name. */

-public class X31997 {

-}

diff --git "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/X92210.js" "b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/X92210.js"
deleted file mode 100644
index 5fa491a..0000000
--- "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/X92210.js"
+++ /dev/null
@@ -1,3 +0,0 @@
-public class X92210 {

-	public void foo() {}

-}

diff --git "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/Y31997.js" "b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/Y31997.js"
deleted file mode 100644
index 1c645f8..0000000
--- "a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/otherSrc\050\051/Y31997.js"
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Test case for bug 31997 Refactoring d.n. work for projects with brackets in name. */

-public class Y31997 extends X31997 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/A.js
deleted file mode 100644
index f2c22b9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Test case for 1GKZ8VZ: ITPJCORE:WINNT - Search - did not find references to member constructor */

-public class A {

-	public class Inner {

-		public Inner(int i) {

-		}

-	}

-	Inner[] field = new Inner[] {new Inner(1), new Inner(2)};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/B.js
deleted file mode 100644
index 0d4bb25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Test case for PR 1GKEG73: ITPJCORE:WIN2000 - search (136): missing field declaration */

-public class B {

-	private Object[] open;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/CA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/CA.js
deleted file mode 100644
index 184333d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/CA.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Test case for 1GIIBC3: ITPJCORE:WINNT - search for method references - missing matches */

-public class CA {

-	class CB {

-		void f() {

-			m();

-		}

-		class CC {

-			void f() {

-				m();

-			}

-		}

-	}

-	void m() {

-		System.out.println("a");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/D.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/D.js
deleted file mode 100644
index 1e486d3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/D.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Regression test for 1GL12XE: ITPJCORE:WIN2000 - search: missing field references in inner class */

-public class D {

-	int h;

-	void g() {

-		new Object() {

-			public void run() {

-				int y = 0;

-				h = y;

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/E.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/E.js
deleted file mode 100644
index ccbf2cb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/E.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Test case for 1GHDA2V: ITPJCORE:WINNT - ClassCastException when doing a search */

-public class E {

-	public Object foo() {

-		int[] result = new int[0];

-		return result.clone();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/InterfaceImplementors.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/InterfaceImplementors.js
deleted file mode 100644
index 1002b1e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/InterfaceImplementors.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class InterfaceImplementors extends I implements p.I {

-}

-

-class I {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/MemberTypeReference/Azz.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/MemberTypeReference/Azz.js
deleted file mode 100644
index 6d2df05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/MemberTypeReference/Azz.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package MemberTypeReference;

-public class Azz extends B {

-	class AzzMember extends BMember {

-		class BMember{

-		}

-	}

-	static int fHello;

-	void poo() {

-		B.BMember someVar;

-		super.poo();

-		fHello= 9;

-	}

-}  

-	

-class BMember extends B {}

-	

-class X {

-	Azz.AzzMember.BMember val;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/MemberTypeReference/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/MemberTypeReference/B.js
deleted file mode 100644
index c44a755..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/MemberTypeReference/B.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package MemberTypeReference;

-public class B {

-	protected class BMember{}

-	

-	void foo() {

-		Azz.fHello= 1;

-		Object someVar = null;

-		Object o = (Azz.AzzMember.BMember) someVar;

-	}

-	void poo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/NoReference/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/NoReference/A.js
deleted file mode 100644
index dee58b5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/NoReference/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package NoReference;

-public class A {

-	// This class should not be referenced

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/O.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/O.js
deleted file mode 100644
index 6655ecd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/O.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Regression test for 1GL11J6: ITPJCORE:WIN2000 - search: missing field references (nested types) */

-public class O {

-	int y;

-	class I {

-		void y() {

-			y = 0;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/ObjectMemberTypeReference/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/ObjectMemberTypeReference/A.js
deleted file mode 100644
index 711f9fa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/ObjectMemberTypeReference/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package ObjectMemberTypeReference;

-public class A {

-	class Object {

-	}

-	public void foo() {

-		new Object();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PR_1GGNOTF.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PR_1GGNOTF.js
deleted file mode 100644
index d9e4316..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PR_1GGNOTF.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Test case for PR 1GGNOTF: ITPJCORE:WINNT - Search doesn't find method referenced in anonymous inner class */

-public class PR_1GGNOTF {

-	void method() {

-	}	

-	void method2() {

-		Runnable r = new Runnable() {

-			public void run() {

-				method();

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/A.js
deleted file mode 100644
index 33f4a3b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-import p3.p2.p.*;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/B.js
deleted file mode 100644
index 908890a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-import p3.p2.p.X;

-public class B extends X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/C.js
deleted file mode 100644
index a38524d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/C.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package PackageReference;

-public class C extends p3.p2.p.X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/D.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/D.js
deleted file mode 100644
index c731e0a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/D.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-public class D {

-	p3.p2.p.X x;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/E.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/E.js
deleted file mode 100644
index 6921c4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/E.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-public class E {

-	Object x = new p3.p2.p.X();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/F.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/F.js
deleted file mode 100644
index d6f96ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/F.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package PackageReference;

-public class F {

-	p3.p2.p.X foo() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/G.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/G.js
deleted file mode 100644
index 053e243..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/G.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package PackageReference;

-public class G {

-	void foo(p3.p2.p.X x) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/H.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/H.js
deleted file mode 100644
index 5703415..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/H.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package PackageReference;

-public class H {

-	void foo() {

-		p3.p2.p.X x;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/I.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/I.js
deleted file mode 100644
index 0e4c152..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/I.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package PackageReference;

-public class I {

-	void foo() {

-		Object x = new p3.p2.p.X();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/J.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/J.js
deleted file mode 100644
index 670de80..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/J.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package PackageReference;

-public class J {

-	void foo() {

-		int i = p3.p2.p.X.count;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/K.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/K.js
deleted file mode 100644
index c2cf4f5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/K.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-import p3.p2.*;

-public class K {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceA.js
deleted file mode 100644
index 2bc86df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceA.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-import p3.*;

-public class NoReferenceA {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceB.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceB.js
deleted file mode 100644
index 9e5de56..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceB.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-import p3.X;

-public class NoReferenceB extends X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceC.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceC.js
deleted file mode 100644
index 9d9ff2a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceC.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package PackageReference;

-public class NoReferenceC extends p3.X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceD.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceD.js
deleted file mode 100644
index 6af4d4e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceD.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-public class NoReferenceD {

-	p3.X x;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceE.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceE.js
deleted file mode 100644
index db45345..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceE.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package PackageReference;

-public class NoReferenceE {

-	Object x = new p3.X();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceF.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceF.js
deleted file mode 100644
index 7af83f2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceF.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package PackageReference;

-public class NoReferenceF {

-	p3.X foo() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceG.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceG.js
deleted file mode 100644
index 74fe78d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceG.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package PackageReference;

-public class NoReferenceG {

-	void foo(p3.X x) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceH.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceH.js
deleted file mode 100644
index 405cfb7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceH.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package PackageReference;

-public class NoReferenceH {

-	void foo() {

-		p3.X x;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceI.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceI.js
deleted file mode 100644
index 316c3d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceI.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package PackageReference;

-public class NoReferenceI {

-	void foo() {

-		Object x = new p3.X();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceJ.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceJ.js
deleted file mode 100644
index 50188f4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/PackageReference/NoReferenceJ.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package PackageReference;

-public class NoReferenceJ {

-	void foo() {

-		int i = p3.X.count;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/Test.js
deleted file mode 100644
index ca1edbd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/Test.js
+++ /dev/null
@@ -1,22 +0,0 @@
-public class Test {

-

-static {

-	Test var = new Test();

-}

-

-{

-	Test t = null;

-}

-

-public static void main(String[] args) {

-	p.Y y = new p.Y();

-	y.foo(1, "a", y);

-	p.Y.bar();

-	

-	p.Z z = new p.Z();

-	z.foo(1, "a", z);

-	

-	p.A a = new p.A(y);

-	a.foo(1, "a", a.x);

-}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceAsSingleNameReference.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceAsSingleNameReference.js
deleted file mode 100644
index 3cc11c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceAsSingleNameReference.js
+++ /dev/null
@@ -1,12 +0,0 @@
-public class TypeReferenceAsSingleNameReference {

-

-void hasReference() {

-	TypeReferenceAsSingleNameReference x = null;

-	TypeReferenceAsSingleNameReference = new Object();

-}

-

-void hasNoReference() {

-	Object TypeReferenceAsSingleNameReference = null;

-}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceInArray/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceInArray/A.js
deleted file mode 100644
index c90b466..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceInArray/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package TypeReferenceInArray;

-public class A {

-	A[] a;

-	TypeReferenceInArray.A[] b;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceInImport/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceInImport/X.js
deleted file mode 100644
index e28d7fa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/TypeReferenceInImport/X.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package TypeReferenceInImport;

-import p.Y;

-import p2.Z;

-public class X {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/A.js
deleted file mode 100644
index 46f59fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/A.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package VariousTypeReferences;

-public class A {

-}  

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/B.js
deleted file mode 100644
index 5989bc5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/B.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package VariousTypeReferences;

-public class B {

-	void foo(A a) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/C.js
deleted file mode 100644
index 76d8653..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/C.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package VariousTypeReferences;

-public class C {

-	A foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/D.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/D.js
deleted file mode 100644
index 8eaea5e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/VariousTypeReferences/D.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package VariousTypeReferences;

-public class D {

-	A foo;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/W.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/W.js
deleted file mode 100644
index 251f2c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/W.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* Regression test for 1GL9UMH: ITPJCORE:WIN2000 - search: missing type occurrences */

-public class W {

-	static int length = 17;

-	int m() {

-		int[] R = new int[1];

-		return W.length; /*1*/

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/X.js
deleted file mode 100644
index 32590ae..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/X.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Test case for PR 1GK7K17: ITPJCORE:WIN2000 - search: missing type reference */

-public class X{

-  static void s(){};

-}

-class AA{

-   AA(){ 

-     X.s();   //<< 

-   };   

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a/A.js
deleted file mode 100644
index 547b21d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package a;

-/* Test case for 1GL0MN9: ITPJCORE:WIN2000 - search: not consistent results for nested types */

-public class A {

-	class X {

-	}

-

-};

-class S extends A {

-}

-class B {

-	A.X ax; /*1*/

-	S.X sx; /*2*/

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a2/X.js
deleted file mode 100644
index d5cb522..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a2/X.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package a2;

-/* Test case for bug 5923 Search for "length" field refs finds [].length  */

-public class X {

-	int length = 1;

-	public void foo() {

-		int[] array = new int[length];

-		for (int i = 0, length = array.length; i < length; i++) {

-		}

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/References.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/References.js
deleted file mode 100644
index a846c93..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/References.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package a3;

-import a3.b.B;

-public class References {

-	public void foo() {

-		X x1 = new Z(); // single type references

-		a3.b.A a = null; // qualified type reference

-		a3.b.A.B.C inner = null; // qualified type references with inner type

-		Object o = a3.Y.field; // binary reference + qualified name reference

-		X x2 = (B)x1; // single name reference

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/X.js
deleted file mode 100644
index 7f53591..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package a3;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/Y.js
deleted file mode 100644
index 58c3a3d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/Y.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package a3;

-public class Y extends X {

-	public static Object field = null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/Z.js
deleted file mode 100644
index 23a7d30..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/Z.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package a3; 

-public class Z extends Y {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/b/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/b/A.js
deleted file mode 100644
index d5cac96..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/b/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package a3.b;

-public class A {

-	public class B {

-		public class C {

-		}

-	}

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/b/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/b/B.js
deleted file mode 100644
index cc1cb78..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a3/b/B.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package a3.b;

-public class B extends a3.X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a4/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a4/X.js
deleted file mode 100644
index 41ac196..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a4/X.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package a4;

-/* Test case for bug 6158 Search - Prefix and postfix expression not found as write reference */

-public class X {

-	int field;

-	void foo() {

-		field++;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a5/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a5/B.js
deleted file mode 100644
index 8dcd6af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a5/B.js
+++ /dev/null
@@ -1,25 +0,0 @@
-package a5;

-/* Test case for bug 6538 searchDeclarationsOf* incorrect */

-

-class A{

-        int i(){

-                return 0;

-        }

-}

-

-class B {

-        int f;

-        void i(){

-                y();

-                Object l= new byte[f];

-        }

-        private void y(){

-        }

-

-}

-

-class C extends A{

-        public  int i(){

-                return 0;

-        }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a6/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a6/A.js
deleted file mode 100644
index a279325..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a6/A.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package a6;

-

-class A {

-}

-

-class B extends A {

-        private int f;

-        private class P{}

-        private void a(){}

-        void m() { 

-                f++;

-                P p= new P();

-                a();

-        }       

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a7/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a7/X.js
deleted file mode 100644
index 589910d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a7/X.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package a7;

-/* Test case for bug 6779 searchDeclarationsOfReferencedTyped - missing exception types */

-public class X {

-	public void foo() throws MyException {

-	}

-}

-class MyException extends Exception {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a8/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a8/A.js
deleted file mode 100644
index 7b8c65c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a8/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package a8;

-/* Test case for bug 7344 Search - write acces give wrong result */

-public class A {

-   public A a;

-   public int i;

-   public void foo(){

-      a.i = 25;

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a9/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a9/A.js
deleted file mode 100644
index accd34d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/a9/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package a9;

-class B{

-	private void m(){

-	}

-}

-class A extends B{

-	void m(){

-	}

-}

-class C extends A{

-	void m(){

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b1/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b1/A.js
deleted file mode 100644
index bc5bf61..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b1/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package b1;

-/* Test case for bug 7987 Field reference search should do lookup in 1.4 mode */

-public class A {

-  int x;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b1/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b1/B.js
deleted file mode 100644
index 6c833e9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b1/B.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package b1;

-/* Test case for bug 7987 Field reference search should do lookup in 1.4 mode */

-public class B extends A {

-  void foo() {

-    this.x++;

-  }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b111416/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b111416/X.js
deleted file mode 100644
index d0e328b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b111416/X.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package b111416;

-

-public class X {

-	static void open(String str) {}

-	void foo() {

-		open("");

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/X.js
deleted file mode 100644
index b06e7cb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package b2;

-/* Test case for bug 8928 Unable to find references or declarations of methods that use static inner classes in the signature */

-public class X {

-	public static class Inner {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/Y.js
deleted file mode 100644
index 2f3428f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/Y.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package b2;

-/* Test case for bug 8928 Unable to find references or declarations of methods that use static inner classes in the signature */

-public class Y {

-	public void foo(X.Inner inner) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/Z.js
deleted file mode 100644
index deba095..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b2/Z.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package b2;

-/* Test case for bug 8928 Unable to find references or declarations of methods that use static inner classes in the signature */

-public class Z {

-	void bar() {

-		X.Inner inner = new X.Inner();

-		new Y().foo(inner);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b3/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b3/X.js
deleted file mode 100644
index bf4d69b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b3/X.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package b3;

-/* Test case for bug 9041 search: cannot create a sub-cu scope */

-public class X {

-	Object field = new X();

-	Object foo() {

-		return new X();

-	}

-	class Y {

-		Object field2 = new X();

-		Object foo2() {

-			return new X();

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b4/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b4/A.js
deleted file mode 100644
index 96a65d2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b4/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package b4;

-/* Test case for bug 9992 Member class declaration not found */

-public class A {

-	public class B {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b5/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b5/A.js
deleted file mode 100644
index 21df34a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b5/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package b5;

-/* Test case for bug 9642 Search - missing inaccurate type matches */

-import x.y.Zork;

-public class A {

-  {

-    Zork[] zork = new Zork[0];

-    int i = Zork.foo;

-  }

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b6/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b6/A.js
deleted file mode 100644
index e150c12..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b6/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package b6;

-/* Test case for bug 10386 NPE in MatchLocator.lookupType */

-public class A {

-	int[] field;

-	int foo() {

-		return this.field.length;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b7/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b7/X.js
deleted file mode 100644
index db72d6e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b7/X.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package b7;

-/* Test case for bug 16751 Renaming a class doesn't update all references  */

-class SuperClass {

-  public static final String CONSTANT = "value";

-}

-

-class SubClass extends SuperClass {

-}

-

-class Test {

-  public static void main(String[] arguments) {

-    System.out.println(SubClass.CONSTANT);

-  }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b8/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b8/Test.js
deleted file mode 100644
index 0328f25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b8/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package b8;

-/* Test case for bug 17906 Rename package fails when inner classes are imported  */

-public class Test {

-  public static class InnerTest {

-  }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b9/Foo.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b9/Foo.js
deleted file mode 100644
index 47b8acf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/b9/Foo.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package b9;

-/* Test case for bug 17906 Rename package fails when inner classes are imported  */

-import b8.Test.InnerTest;

-public class Foo {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/A.js
deleted file mode 100644
index 341fab2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package c1;

-/* Test case for bug 12649 Missing import after move  */

-class A{

- int i= I.II;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/B.js
deleted file mode 100644
index 512b2fa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/B.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package c1;

-/* Test case for bug 12649 Missing import after move  */

-class B{

- int i= I.i;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/I.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/I.js
deleted file mode 100644
index 4d6171d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c1/I.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package c1;

-/* Test case for bug 12649 Missing import after move */

-interface I{

- int i= 0;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c10/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c10/X.js
deleted file mode 100644
index 4e0e988..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c10/X.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package c10;

-/* Test case for bug 43276 How to search for implicit constructors */

-class X {

-	class Inner {

-	}

-}

-class B extends X.Inner {

-	B() {

-		new X().super();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c11/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c11/A.js
deleted file mode 100644
index 39b7fc1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c11/A.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package c11;

-public class A {}

-class A1 extends A {}

-class A2 extends A {

-    public A2() {}

-}

-class A3 extends A {

-    public A3() {

-        super();

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c2/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c2/A.js
deleted file mode 100644
index 35e5491..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c2/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package c2;

-/* Test case for bug 18418  search: searchDeclarationsOfReferencedTypes reports import declarations  */

-import c3.C;

-public class A{

-	C c;

-	c3.C c3c;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c2/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c2/B.js
deleted file mode 100644
index 2086015..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c2/B.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package c2;

-/* Test case for bug 18418 search: searchDeclarationsOfReferencedTypes reports import declarations  */

-import c3.C;

-public class B{

-	C c;

-	c3.C m(C C, A A){

-		return C;

-	}	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c3/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c3/C.js
deleted file mode 100644
index e997d5f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c3/C.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package c3;

-/* Test case for bug 18418  search: searchDeclarationsOfReferencedTypes reports import declarations  */

-import c2.A;

-import c2.*;

-import c2.B;

-public class C{

-	A a;

-	c2.A c2a;

-	B b;

-	c2.B c2B;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c4/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c4/X.js
deleted file mode 100644
index 8e953e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c4/X.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package c4;

-/* Test case for bug 20693 Finding references to variables does not find all occurances */

-public class X {

-	int x;

-	int foo() {

-		return (this.x);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c5/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c5/Test.js
deleted file mode 100644
index 8aec274..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c5/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package c5;

-/* Test case for bug 21763 Problem in Java search [search] */

-public class Test {

-	public String class_path;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c6/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c6/X.js
deleted file mode 100644
index 562a016..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c6/X.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package c6;

-/* Test case for bug 24346 Method declaration not found in field initializer*/

-public class X {

-	public void bar() {

-	}

-	public Object x = new Object() {

-		public void foo24346() {

-		}

-	};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c7/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c7/X.js
deleted file mode 100644
index 2d679c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c7/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package c7;

-/* Test case for bug 23112 search: need a way to search for references to the implicit non-arg constructor */

-public class X {

-	public X() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c7/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c7/Y.js
deleted file mode 100644
index d2b89de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c7/Y.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package c7;

-/* Test case for bug 23112 search: need a way to search for references to the implicit non-arg constructor */

-public class Y extends X {

-	public Y() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c8/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c8/X.js
deleted file mode 100644
index 495abcc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c8/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package c8;

-/* Test case for bug 23112 search: need a way to search for references to the implicit non-arg constructor */

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c8/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c8/Y.js
deleted file mode 100644
index 72830d8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c8/Y.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package c8;

-/* Test case for bug 23112 search: need a way to search for references to the implicit non-arg constructor */

-public class Y extends X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c9/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c9/X.js
deleted file mode 100644
index c73ed73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/c9/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package c9;

-/* Test case for bug 25859 Error doing Java Search */

-public class X {

-}

-class AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyz {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d1/X.js
deleted file mode 100644
index 13bc3f6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d1/X.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package d1;

-/* Test case for bug 24934 Move top level doesn't optimize the imports[refactoring] */

-import d2.Y;

-import d2.Z;

-public class X {

-	public class Inner {

-		Y y;

-	}

-	Z z;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d2/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d2/Y.js
deleted file mode 100644
index 6ba4ffc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d2/Y.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package d2;

-/* Test case for bug 24934 Move top level doesn't optimize the imports[refactoring] */

-public class Y {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d2/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d2/Z.js
deleted file mode 100644
index c1f9ff6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d2/Z.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package d2;

-/* Test case for bug 24934 Move top level doesn't optimize the imports[refactoring] */

-public class Z {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d3/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d3/A.js
deleted file mode 100644
index 1536a49..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d3/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package d3;

-public class A {

-}

-class B {

-	void foo() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d4/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d4/X.js
deleted file mode 100644
index 484b896..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d4/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package d4;

-public class X {

-	Object foo() {

-		return d4.Y.bar();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d4/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d4/Y.js
deleted file mode 100644
index 69d8f73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d4/Y.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package d4;

-public class Y {

-	public static Object bar() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d5/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d5/X.js
deleted file mode 100644
index 153176b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d5/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package d5;

-class X { // non-public class

-	static String S;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d5/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d5/Y.js
deleted file mode 100644
index 1381f21..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d5/Y.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package d5;

-public class Y {

-	String T = d5.X.S;

-	Class c = d5.X.class;

-	Object o = (d5.X) null;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d6/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d6/X.js
deleted file mode 100644
index d582455..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d6/X.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package d6;

-public class X {

-	private static String CONSTANT;

-	private int foo;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d6/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d6/Y.js
deleted file mode 100644
index 6abaf62..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d6/Y.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package d6;

-public class Y {

-	String T = X.CONSTANT; 

-	int i = new X().foo;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d7/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d7/A.js
deleted file mode 100644
index 3599a95..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d7/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package d7;

-/* Test case for bug 29516  SearchEngine regressions in 20030114 */

-class A{

-   A A;

-   A A(A A){

-	 A:

-		for (;;){

-		  if (A.A(A)==A)

-			 break A;

-		}

-	  return A;

-   };

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d8/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d8/A.js
deleted file mode 100644
index 57c8932..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d8/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package d8;

-/* Test case for bug 29524 Search for declaration via patterns adds '"*" */

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d8/AA.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d8/AA.js
deleted file mode 100644
index f90907f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d8/AA.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package d8;

-/* Test case for bug 29524 Search for declaration via patterns adds '"*" */

-public class AA {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d9/p1/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d9/p1/A.js
deleted file mode 100644
index 9f5014c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d9/p1/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package d9.p1;

-/* Test case for bug 28236 Search for refs to class in hierarchy matches class outside hierarchy */

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d9/p2/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d9/p2/B.js
deleted file mode 100644
index 2389cf9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/d9/p2/B.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package d9.p2;

-/* Test case for bug 28236 Search for refs to class in hierarchy matches class outside hierarchy */

-import d9.p1.A;

-public class B {

-	A a;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e1/A29366.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e1/A29366.js
deleted file mode 100644
index f7e5932..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e1/A29366.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package e1;

-/* Test case for bug 29366 Search reporting invalid inaccurate match */

-public class A29366  {

-	public void foo() {

-		A29366 a;

-	}

-	public void bar() {

-		new int[]{ 1

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e2/X.js
deleted file mode 100644
index e76396e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e2/X.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package e2;

-/* Test case for bug 38568 Search for method declarations fooled by array types */

-public class X {

-	public void foo() {

-	}

-	public void foo(String arg1, String arg2) {

-	}

-	public void foo(String arg1, String[] arg2) {

-	}

-	public void foo(String arg1, Object arg2) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e3/X31985.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e3/X31985.js
deleted file mode 100644
index 69c6ef7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e3/X31985.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package e3;

-/* Test case for bug 31985 NPE searching non-qualified and case insensitive type ref */

-public class X31985 {

-	static X31985 CONSTANT;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e3/Y31985.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e3/Y31985.js
deleted file mode 100644
index 0b979b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e3/Y31985.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package e3;

-/* Test case for bug 31985 NPE searching non-qualified and case insensitive type ref */

-public class Y31985 {

-	Object foo() {

-		return X31985.CONSTANT;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e4/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e4/A.js
deleted file mode 100644
index 4b4f84f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e4/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package e4;

-

-public class A{

-	public static class Inner{

-		public class InnerInner{}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e5/A1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e5/A1.js
deleted file mode 100644
index 6d008a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e5/A1.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package e5;

-

-import e4.A.Inner;

-

-public class A1{

-	e4.A.Inner a;

-	e4.A.Inner.InnerInner a1;

-	Inner a2;

-	Inner.InnerInner a3;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e6/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e6/A.js
deleted file mode 100644
index 50749fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e6/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package e6;

-/* Test case for bug 36479 Rename operation during refactoring fails */

-public class A {

-	Object foo() {

-		return (B36479.C)this;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e7/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e7/A.js
deleted file mode 100644
index 174a101..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e7/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package e7;

-/* Test case for bug 39831 Search finds only "inexact" matches */

-public class A {

-	A a;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e8/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e8/A.js
deleted file mode 100644
index 18ac155..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e8/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package e8;

-/* Test case for bug 43080 NPE when searching in CU with incomplete method declaration */

-public class A {

-	native m() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e9/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e9/A.js
deleted file mode 100644
index d19794a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/e9/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package e9;

-/* Test case for bug 49120 search doesn't find references to anonymous inner methods*/

-public class A {

-	public void bar() {

-	}

-	public void foo() {

-		A a = new A() {

-			public void bar() {

-			}

-		};

-		a.bar();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f1/X.js
deleted file mode 100644
index 0b9abfa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f1/X.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package f1;

-public class X {

-	int field;

-	void foo1() {

-		int var1 = 1;

-		var1++;

-	}

-	void foo2() {

-		X var2 = new X();

-		var2.field++;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f2/X.js
deleted file mode 100644
index 1114dad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f2/X.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package f2;

-public class X {

-	Object foo1() {

-		class Y {

-		}

-		return new Y();

-	}

-	Object foo2() {

-		return new X() {

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f3/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f3/X.js
deleted file mode 100644
index 87f1a25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/f3/X.js
+++ /dev/null
@@ -1,24 +0,0 @@
-package f3;

-public class X {

-	void foo() {

-		new X() {

-		};

-		new X() {

-			void foobar() {

-				bar();

-			}

-		};

-		if (true) {

-			class Y {

-			}

-		} else {

-			class Y {

-				void foobar() {

-					bar();

-				}

-			}

-		}

-	}

-	void bar() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocHiddenRef.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocHiddenRef.js
deleted file mode 100644
index 0caba9b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocHiddenRef.js
+++ /dev/null
@@ -1,18 +0,0 @@
-package j1;

-

-/**

- * Class with valid references

- */

-public class JavadocHiddenRef {

-	/**

-	 * References are hidden in strings

-	 * @see "JavadocSearched"

-	 * @see "JavadocSearched#JavadocSearched()"

-	 * @see "j1.JavadocSearched#JavadocSearched(String)"

-	 * @see "JavadocSearched#javadocSearchedVar"

-	 * @see "JavadocSearched#javadocSearchedMethod()"

-	 * @see "JavadocSearched#javadocSearchedMethod(String)"

-	 */

-	void hidden() {}

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocInvalidRef.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocInvalidRef.js
deleted file mode 100644
index d712284..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocInvalidRef.js
+++ /dev/null
@@ -1,20 +0,0 @@
-package j1;

-

-/**

- * Class with invalid references

- */

-public class JavadocInvalidRef {

-	/**

-	 * @see #javadocSearchedVar

-	 * @see Javadocsearched#JavadocSearched()

-	 * @see j1.JavadocSearched#Javadocsearched(String)

-	 * @see JavadocSearched#JavadocSearched(int)

-	 * @see Javadocsearched#javadocSearchedVar

-	 * @see JavadocSearched#javadocsearchedvar

-	 * @see Javadocsearched#javadocSearchedMethod()

-	 * @see JavadocSearched#javadocsearchedmethod()

-	 * @see JavadocSearched#javadocSearchedMethod(int)

-	 */

-	void invalid() {}

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocSearched.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocSearched.js
deleted file mode 100644
index cf7729b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocSearched.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j1;

-

-public class JavadocSearched {

-	public JavadocSearched() {}

-	public JavadocSearched(String str) {}

-	int javadocSearchedVar;

-	public void javadocSearchedMethod() {}

-	public void javadocSearchedMethod(String str) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocValidRef.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocValidRef.js
deleted file mode 100644
index 5c3a6b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j1/JavadocValidRef.js
+++ /dev/null
@@ -1,17 +0,0 @@
-package j1;

-

-/**

- * Class with valid references

- */

-public class JavadocValidRef {

-	/**

-	 * @see JavadocSearched

-	 * @see JavadocSearched#JavadocSearched()

-	 * @see j1.JavadocSearched#JavadocSearched(String)

-	 * @see JavadocSearched#javadocSearchedVar

-	 * @see JavadocSearched#javadocSearchedMethod()

-	 * @see JavadocSearched#javadocSearchedMethod(String)

-	 */

-	void valid() {}

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j2/Bug47968.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j2/Bug47968.js
deleted file mode 100644
index 0dedaf4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j2/Bug47968.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package j2;

-public class Bug47968 {

-	public int x;

-	public Bug47968(String str) {}

-	public void foo(int x) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j2/Bug47968s.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j2/Bug47968s.js
deleted file mode 100644
index f59c5e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j2/Bug47968s.js
+++ /dev/null
@@ -1,30 +0,0 @@
-package j2;

-/**

- * @see Bug47968

- * @see Bug47968#x

- * @see Bug47968#Bug47968(String)

- * @see Bug47968#foo(int)

- */

-public class Bug47968s {

-	/**

-	 * @see Bug47968

-	 * @see Bug47968#x

-	 * @see Bug47968#Bug47968(String)

-	 * @see Bug47968#foo(int)

-	 */

-	public int y;

-	/**

-	 * @see Bug47968

-	 * @see Bug47968#x

-	 * @see Bug47968#Bug47968(String)

-	 * @see Bug47968#foo(int)

-	 */

-	public Bug47968s() {}

-	/**

-	 * @see Bug47968

-	 * @see Bug47968#x

-	 * @see Bug47968#Bug47968(String)

-	 * @see Bug47968#foo(int)

-	 */

-	public void bar() {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j3/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j3/Y.js
deleted file mode 100644
index 561b13a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j3/Y.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package j3;

-public class Y {

-	public Y(int x) {}

-	public void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CC47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CC47209.js
deleted file mode 100644
index 99ee97c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CC47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class CC47209 {

-	public int f47209;

-	/**

-	 * @see CC47209#CC47209(String)

-	 */

-	public CC47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CF47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CF47209.js
deleted file mode 100644
index db006da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CF47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class CF47209 {

-	/**

-	 * @see CF47209#CF47209(String)

-	 */

-	public int f47209;

-	public CF47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CM47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CM47209.js
deleted file mode 100644
index b90d7ea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CM47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class CM47209 {

-	public int f47209;

-	public CM47209(String str) {}

-	/**

-	 * @see CM47209#CM47209(String)

-	 */

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CT47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CT47209.js
deleted file mode 100644
index b864b05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/CT47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-/**

- * @see CT47209#CT47209(String)

- */

-public class CT47209 {

-	public int f47209;

-	public CT47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FC47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FC47209.js
deleted file mode 100644
index 6a03206..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FC47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class FC47209 {

-	public int f47209;

-	/**

-	 * @see FC47209#f47209

-	 */

-	public FC47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FF47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FF47209.js
deleted file mode 100644
index 98c94e3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FF47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class FF47209 {

-	/**

-	 * @see FF47209#f47209

-	 */

-	public int f47209;

-	public FF47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FM47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FM47209.js
deleted file mode 100644
index 02a735d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FM47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class FM47209 {

-	public int f47209;

-	public FM47209(String str) {}

-	/**

-	 * @see FM47209#f47209

-	 */

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FT47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FT47209.js
deleted file mode 100644
index 7e4883f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/FT47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-/**

- * @see FT47209#f47209

- */

-public class FT47209 {

-	public int f47209;

-	public FT47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MC47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MC47209.js
deleted file mode 100644
index c090b93..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MC47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class MC47209 {

-	public int f47209;

-	/**

-	 * @see MC47209#m47209(int)

-	 */

-	public MC47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MF47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MF47209.js
deleted file mode 100644
index 662412c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MF47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class MF47209 {

-	/**

-	 * @see MF47209#m47209(int)

-	 */

-	public int f47209;

-	public MF47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MM47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MM47209.js
deleted file mode 100644
index e24c391..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MM47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class MM47209 {

-	public int f47209;

-	public MM47209(String str) {}

-	/**

-	 * @see MM47209#m47209(int)

-	 */

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MT47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MT47209.js
deleted file mode 100644
index 6b963b7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/MT47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-/**

- * @see MT47209#m47209(int)

- */

-public class MT47209 {

-	public int f47209;

-	public MT47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TC47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TC47209.js
deleted file mode 100644
index cfa507e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TC47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class TC47209 {

-	public int f47209;

-	/**

-	 * @see TC47209

-	 */

-	public TC47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TF47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TF47209.js
deleted file mode 100644
index dc2a390..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TF47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class TF47209 {

-	/**

-	 * @see TF47209

-	 */

-	public int f47209;

-	public TF47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TM47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TM47209.js
deleted file mode 100644
index eb2a6bc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TM47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-public class TM47209 {

-	public int f47209;

-	public TM47209(String str) {}

-	/**

-	 * @see TM47209

-	 */

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TT47209.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TT47209.js
deleted file mode 100644
index c60c3aa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j4/TT47209.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package j4;

-/**

- * @see TT47209

- */

-public class TT47209 {

-	public int f47209;

-	public TT47209(String str) {}

-	public void m47209(int x) {}

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j5/Bug49994.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j5/Bug49994.js
deleted file mode 100644
index 44ad7b6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j5/Bug49994.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**

- * Need this header comment to have inexact matches occur.

- */

-package j5;

-public class Bug49994 {

-	int field;

-	public Bug49994(String str) {}

-	void bar() {}

-	/**

-	 * @see #field

-	 * @see #bar()

-	 * @see #Bug49994(String)

-	 */

-	void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j6/Bug54962.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j6/Bug54962.js
deleted file mode 100644
index 03b11fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j6/Bug54962.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package j6;

-/**

- * @see j6

- * @see j6.BUG54962

- * @see j6.Bug54962

- */

-public class Bug54962 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j7/qua/li/fied/Bug54962a.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j7/qua/li/fied/Bug54962a.js
deleted file mode 100644
index 9caab71..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/j7/qua/li/fied/Bug54962a.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package j7.qua.li.fied;

-import j6.Bug54962;

-/**

- * @see j7.qua.li.fied

- * @see j7.qua.li.fied.BUG54962a

- * @see j7.qua.li.fied.Bug54962a

- */

-public class Bug54962a {

-	Bug54962 j6 = new Bug54962();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/net/sf/saxon/om/Navigator.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/net/sf/saxon/om/Navigator.js
deleted file mode 100644
index 05498d7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/net/sf/saxon/om/Navigator.js
+++ /dev/null
@@ -1,637 +0,0 @@
-package net.sf.saxon.om;

-

-public final class Navigator {

-

-    /**

-     * Determine if a string is all-whitespace

-     *

-     * @param content the string to be tested

-     * @return true if the supplied string contains no non-whitespace

-     *     characters

-     */

-

-    public final static boolean isWhite(CharSequence content) {

-        for (int i=0; i<content.length();) {

-            // all valid XML whitespace characters, and only whitespace characters, are <= 0x20

-            if (content.charAt(i++) > 32) {

-                return false;

-            }

-        }

-        return true;

-    }

-

-    /**

-     * Get the string value of an attribute of a given element, given the URI and

-     * local part of the attribute name.

-     * @return the attribute value, or null if the attribute is not present

-     */

-

-    public static String getAttributeValue(NodeInfo element, String uri, String localName) {

-        int fingerprint = element.getNamePool().allocate("", uri, localName);

-        return element.getAttributeValue(fingerprint);

-    }

-

-    /**

-     * Get an absolute XPath expression that identifies a given node within its document

-     *

-     * @param node the node whose path is required

-     * @return a path expression that can be used to retrieve the node

-     */

-

-    public static String getPath(NodeInfo node) {

-        String pre;

-        NodeInfo parent = node.getParent();

-        // System.err.println("node = " + node + " parent = " + parent);

-        // Handle parentless nodes of any kind

-        if (parent==null) return "/";

-        switch (node.getNodeKind()) {

-            case Type.DOCUMENT:

-                return "/";

-            case Type.ELEMENT:

-                pre = getPath(parent);

-                return (pre.equals("/") ? "" : pre) +

-                        "/" + node.getDisplayName() + "[" + getNumberSimple(node) + "]";

-            case Type.ATTRIBUTE:

-                return getPath(parent) + "/@" + node.getDisplayName();

-            case Type.TEXT:

-                pre = getPath(parent);

-                return (pre.equals("/") ? "" : pre) +

-                        "/text()[" + getNumberSimple(node) + "]";

-            case Type.COMMENT:

-                pre = getPath(parent);

-                return (pre.equals("/") ? "" : pre) +

-                    "/comment()[" + getNumberSimple(node) + "]";

-            case Type.PROCESSING_INSTRUCTION:

-                pre = getPath(parent);

-                return (pre.equals("/") ? "" : pre) +

-                    "/processing-instruction()[" + getNumberSimple(node) + "]";

-            default:

-                return "";

-        }

-    }

-

-    /**

-     * Get simple node number. This is defined as one plus the number of previous siblings of the

-     * same node type and name. It is not accessible directly in XSL.

-     *

-     * @param node The node whose number is required

-     * @param controller Used for remembering previous result, for

-     *     performance

-     * @exception XPathException if any error occurs

-     * @return the node number, as defined above

-     */

-

-    public static int getNumberSimple(NodeInfo node, Controller controller) throws XPathException {

-

-        //checkNumberable(node);

-

-        int fingerprint = node.getFingerprint();

-        NodeTest same;

-

-        if (fingerprint==-1) {

-            same = NodeKindTest.makeNodeKindTest(node.getNodeKind());

-        } else {

-            same = new NameTest(node);

-        }

-

-        SequenceIterator preceding = node.iterateAxis(Axis.PRECEDING_SIBLING, same);

-

-        int i=1;

-        while (true) {

-            NodeInfo prev = (NodeInfo)preceding.next();

-            if (prev == null) {

-                break;

-            }

-

-            int memo = controller.getRememberedNumber(prev);

-            if (memo>0) {

-                memo += i;

-                controller.setRememberedNumber(node, memo);

-                return memo;

-            }

-

-            i++;

-        }

-

-        controller.setRememberedNumber(node, i);

-        return i;

-    }

-

-    /**

-     * Get simple node number. This is defined as one plus the number of previous siblings of the

-     * same node type and name. It is not accessible directly in XSL. This version doesn't require

-     * the controller, and therefore doesn't remember previous results. It is used only by getPath().

-     *

-     * @param node the node whose number is required

-     * @return the node number, as defined above

-     */

-

-    private static int getNumberSimple(NodeInfo node) {

-

-        int fingerprint = node.getFingerprint();

-        NodeTest same;

-

-        if (fingerprint==-1) {

-            same = NodeKindTest.makeNodeKindTest(node.getNodeKind());

-        } else {

-            same = new NameTest(node);

-        }

-

-        AxisIterator preceding = node.iterateAxis(Axis.PRECEDING_SIBLING, same);

-

-        int i=1;

-        while (preceding.next() != null) {

-            i++;

-        }

-

-        return i;

-    }

-

-    /**

-     * Get node number (level="single"). If the current node matches the supplied pattern, the returned

-     * number is one plus the number of previous siblings that match the pattern. Otherwise,

-     * return the element number of the nearest ancestor that matches the supplied pattern.

-     *

-     * @param node the current node, the one whose node number is required

-     * @param count Pattern that identifies which nodes should be

-     *     counted. Default (null) is the element name if the current node is

-     *      an element, or "node()" otherwise.

-     * @param from Pattern that specifies where counting starts from.

-     *     Default (null) is the root node. (This parameter does not seem

-     *     useful but is included for the sake of XSLT conformance.)

-     * @param controller the controller of the transformation, used if

-     *     the patterns reference context values (e.g. variables)

-     * @exception XPathException when any error occurs in processing

-     * @return the node number established as follows: go to the nearest

-     *     ancestor-or-self that matches the 'count' pattern and that is a

-     *     descendant of the nearest ancestor that matches the 'from' pattern.

-     *      Return one plus the nunber of preceding siblings of that ancestor

-     *      that match the 'count' pattern. If there is no such ancestor,

-     *     return 0.

-     */

-

-    public static int getNumberSingle(NodeInfo node, Pattern count,

-                    Pattern from, Controller controller) throws XPathException {

-

-//        checkNumberable(node);

-

-        if (count==null && from==null) {

-            return getNumberSimple(node, controller);

-        }

-

-        boolean knownToMatch = false;

-        if (count==null) {

-            if (node.getFingerprint()==-1) {	// unnamed node

-                count = NodeKindTest.makeNodeKindTest(node.getNodeKind());

-            } else {

-                count = new NameTest(node);

-            }

-            knownToMatch = true;

-        }

-

-        NodeInfo target = node;

-        while (!(knownToMatch || count.matches(target, controller))) {

-            target = target.getParent();

-            if (target==null) {

-                return 0;

-            }

-            if (from!=null && from.matches(target, controller)) {

-                return 0;

-            }

-        }

-

-        // we've found the ancestor to count from

-

-        SequenceIterator preceding =

-            target.iterateAxis(Axis.PRECEDING_SIBLING, count.getNodeTest());

-                        // pass the filter condition down to the axis enumeration where possible

-        boolean alreadyChecked = (count instanceof NodeTest);

-        int i = 1;

-        while (true) {

-            NodeInfo p = (NodeInfo)preceding.next();

-            if (p == null) {

-                return i;

-            }

-            if (alreadyChecked || count.matches(p, controller)) {

-                i++;

-            }

-        }

-    }

-

-    /**

-     * Get node number (level="any").

-     * Return one plus the number of previous nodes in the

-     * document that match the supplied pattern

-     *

-     * @exception XPathException

-     * @param inst Identifies the xsl:number instruction; this is relevant

-     *     when the function is memoised to support repeated use of the same

-     *     instruction to number modulple nodes

-     * @param node Identifies the xsl:number instruction; this is

-     *     relevant when the function is memoised to support repeated use of

-     *     the same instruction to number modulple nodes

-     * @param count Pattern that identifies which nodes should be

-     *     counted. Default (null) is the element name if the current node is

-     *      an element, or "node()" otherwise.

-     * @param from Pattern that specifies where counting starts from.

-     *     Default (null) is the root node. Only nodes after the first (most

-     *     recent) node that matches the 'from' pattern are counted.

-     * @param controller The controller

-     * @param hasVariablesInPatterns if the count or from patterns

-     *     contain variables, then it's not safe to get the answer by adding

-     *     one to the number of the most recent node that matches

-     * @return one plus the number of nodes that precede the current node,

-     *     that match the count pattern, and that follow the first node that

-     *     matches the from pattern if specified.

-     */

-

-    public static int getNumberAny(Instruction inst, NodeInfo node, Pattern count,

-                    Pattern from, Controller controller, boolean hasVariablesInPatterns) throws XPathException {

-

-        NodeInfo memoNode = null;

-        int memoNumber = 0;

-        boolean memoise = (!hasVariablesInPatterns && count!=null);

-        if (memoise) {

-            Object[] memo = (Object[])controller.getUserData(inst, "xsl:number");

-            if (memo != null) {

-                memoNode = (NodeInfo)memo[0];

-                memoNumber = ((Integer)memo[1]).intValue();

-            }

-        }

-

-        int num = 0;

-        if (count==null) {

-            if (node.getFingerprint()==-1) {	// unnamed node

-                count = NodeKindTest.makeNodeKindTest(node.getNodeKind());

-            } else {

-                count = new NameTest(node);

-            }

-            num = 1;

-        } else if (count.matches(node, controller)) {

-            num = 1;

-        }

-

-        // We use a special axis invented for the purpose: the union of the preceding and

-        // ancestor axes, but in reverse document order

-

-        // Pass part of the filtering down to the axis iterator if possible

-        NodeTest filter;

-        if (from==null) {

-            filter = count.getNodeTest();

-        } else if (from.getNodeKind()==Type.ELEMENT && count.getNodeKind()==Type.ELEMENT) {

-            filter = NodeKindTest.ELEMENT;

-        } else {

-            filter = AnyNodeTest.getInstance();

-        }

-

-        SequenceIterator preceding =

-            node.iterateAxis(Axis.PRECEDING_OR_ANCESTOR, filter);

-

-        while (true) {

-            NodeInfo prev = (NodeInfo)preceding.next();

-            if (prev == null) {

-                break;

-            }

-            if (from!=null && from.matches(prev, controller)) {

-                return num;

-            }

-            if (count.matches(prev, controller)) {

-                if (num==1 && memoNode!=null && prev.isSameNode(memoNode)) {

-                    num = memoNumber + 1;

-                    break;

-                }

-                num++;

-            }

-        }

-        if (memoise) {

-            Object[] memo = new Object[2];

-            memo[0] = node;

-            memo[1] = new Integer(num);

-            controller.setUserData(inst, "xsl:number", memo);

-        }

-        return num;

-    }

-

-    /**

-     * Get node number (level="multiple").

-     * Return a vector giving the hierarchic position of this node. See the XSLT spec for details.

-     *

-     * @exception XPathException

-     * @param node The node to be numbered

-     * @param count Pattern that identifies which nodes (ancestors and

-     *      their previous siblings) should be counted. Default (null) is the

-     *      element name if the current node is an element, or "node()"

-     *     otherwise.

-     * @param from Pattern that specifies where counting starts from.

-     *     Default (null) is the root node. Only nodes below the first (most

-     *     recent) node that matches the 'from' pattern are counted.

-     * @param controller The controller for the transformation

-     * @return a vector containing for each ancestor-or-self that matches the

-     *      count pattern and that is below the nearest node that matches the

-     *      from pattern, an Integer which is one greater than the number of

-     *     previous siblings that match the count pattern.

-     */

-

-    public static List getNumberMulti(NodeInfo node, Pattern count,

-                    Pattern from, Controller controller) throws XPathException {

-

-        //checkNumberable(node);

-

-        ArrayList v = new ArrayList();

-

-        if (count==null) {

-            if (node.getFingerprint()==-1) {    // unnamed node

-                count = NodeKindTest.makeNodeKindTest(node.getNodeKind());

-            } else {

-                count = new NameTest(node);

-            }

-        }

-

-        NodeInfo curr = node;

-

-        while(true) {

-            if (count.matches(curr, controller)) {

-                int num = getNumberSingle(curr, count, null, controller);

-                v.add(0, new Long(num));

-            }

-            curr = curr.getParent();

-            if (curr==null) break;

-            if (from!=null && from.matches(curr, controller)) break;

-        }

-

-        return v;

-    }

-

-     /**

-     * Generic (model-independent) implementation of deep copy algorithm for nodes.

-     * This is available for use by any node implementations that choose to use it.

-      * @param node The node to be copied

-      * @param out The receiver to which events will be sent

-      * @param namePool Namepool holding the name codes (used only to resolve namespace

-      *          codes)

-      * @param whichNamespaces Indicates which namespace nodes for an element should

-      *          be copied

-      * @param copyAnnotations Indicates whether type annotations should be copied

-      * @throws TransformerException on any failure reported by the Receiver

-     */

-

-    public static void copy(NodeInfo node,

-                            Receiver out,

-                            NamePool namePool,

-                            int whichNamespaces,

-                            boolean copyAnnotations) throws TransformerException {

-

-        switch (node.getNodeKind()) {

-            case Type.DOCUMENT:

-                AxisIterator children0 = node.iterateAxis(Axis.CHILD, new AnyNodeTest());

-                while (true) {

-                    NodeInfo child = (NodeInfo)children0.next();

-                    if (child == null) {

-                        return;

-                    }

-                    child.copy(out, whichNamespaces, copyAnnotations);

-                }

-

-            case Type.ELEMENT:

-                out.startElement(node.getNameCode(), 0, 0);

-

-                // output the namespaces

-

-                if (whichNamespaces != NodeInfo.NO_NAMESPACES) {

-                    node.outputNamespaceNodes(out, true);

-                }

-

-                // output the attributes

-

-                AxisIterator attributes = node.iterateAxis(Axis.ATTRIBUTE, new AnyNodeTest());

-                while (true) {

-                    NodeInfo att = (NodeInfo)attributes.next();

-                    if (att == null) {

-                        break;

-                    }

-                    att.copy(out, whichNamespaces, copyAnnotations);

-                }

-

-                // output the children

-

-                AxisIterator children = node.iterateAxis(Axis.CHILD, new AnyNodeTest());

-                while (true) {

-                    NodeInfo child = (NodeInfo)children.next();

-                    if (child == null) {

-                        break;

-                    }

-                    child.copy(out, whichNamespaces, copyAnnotations);

-                }

-

-                // finally the end tag

-

-                out.endElement();

-                return;

-

-            case Type.ATTRIBUTE:

-                out.attribute(node.getNameCode(), 0, node.getStringValue(), 0);

-                return;

-

-            case Type.TEXT:

-                out.characters(node.getStringValue(), 0);

-                return;

-

-            case Type.COMMENT:

-                out.comment(node.getStringValue(), 0);

-                return;

-

-            case Type.PROCESSING_INSTRUCTION:

-                out.processingInstruction(node.getLocalPart(), node.getStringValue(), 0);

-                return;

-

-            case Type.NAMESPACE:

-                out.namespace(namePool.allocateNamespaceCode(node.getLocalPart(), node.getStringValue()),0);

-                return;

-

-            default:

-

-        }

-    }

-

-    /**

-    * Generic (model-independent) method to determine the relative position of two

-    * node in document order. The nodes must be in the same tree.

-    * @param first The first node

-    * @param second The second node, whose position is to be compared with the first node

-    * @return -1 if this node precedes the other node, +1 if it follows the other

-    * node, or 0 if they are the same node. (In this case, isSameNode() will always

-    * return true, and the two nodes will produce the same result for generateId())

-    */

-

-    public static int compareOrder(SiblingCountingNode first, SiblingCountingNode second) {

-        NodeInfo ow = second;

-

-        // are they the same node?

-        if (first.isSameNode(second)) {

-            return 0;

-        }

-        // are they siblings (common case)

-        if (first.getParent().isSameNode(second.getParent())) {

-            return first.getSiblingPosition() - second.getSiblingPosition();

-        }

-        // find the depths of both nodes in the tree

-

-        int depth1 = 0;

-        int depth2 = 0;

-        NodeInfo p1 = first;

-        NodeInfo p2 = second;

-        while (p1 != null) {

-            depth1++;

-            p1 = p1.getParent();

-        }

-        while (p2 != null) {

-            depth2++;

-            p2 = p2.getParent();

-        }

-        // move up one branch of the tree so we have two nodes on the same level

-

-        p1 = first;

-        while (depth1>depth2) {

-            p1 = p1.getParent();

-            if (p1.isSameNode(second)) {

-                return +1;

-            }

-            depth1--;

-        }

-

-        p2 = ow;

-        while (depth2>depth1) {

-            p2 = p2.getParent();

-            if (p2.isSameNode(first)) {

-                return -1;

-            }

-            depth2--;

-        }

-

-        // now move up both branches in sync until we find a common parent

-        while (true) {

-            NodeInfo par1 = p1.getParent();

-            NodeInfo par2 = p2.getParent();

-            if (par1==null || par2==null) {

-                throw new NullPointerException("DOM tree compare - internal error");

-            }

-            if (par1.isSameNode(par2)) {

-                return ((SiblingCountingNode)p1).getSiblingPosition() -

-                        ((SiblingCountingNode)p2).getSiblingPosition();

-            }

-            p1 = par1;

-            p2 = par2;

-        }

-    }

-

-    /**

-    * Get a character string that uniquely identifies this node and that collates nodes

-    * into document order

-    * @return a string. The string is always interned so keys can be compared using "==".

-    */

-

-    public static String getSequentialKey(SiblingCountingNode node) {

-        // TODO: this was designed so it could be used for sorting nodes into document

-        // order, but is not currently used that way.

-        StringBuffer key = new StringBuffer();

-        while(!(node instanceof DocumentInfo)) {

-            key.insert(0, alphaKey(node.getSiblingPosition()));

-            node = (SiblingCountingNode)node.getParent();

-        }

-        key.insert(0, "w" + node.getDocumentNumber());

-        return key.toString().intern();

-    }

-

-    /**

-    * Construct an alphabetic key from an positive integer; the key collates in the same sequence

-    * as the integer

-    * @param value The positive integer key value (negative values are treated as zero).

-    */

-

-    public static String alphaKey(int value) {

-        if (value<1) return "a";

-        if (value<10) return "b" + value;

-        if (value<100) return "c" + value;

-        if (value<1000) return "d" + value;

-        if (value<10000) return "e" + value;

-        if (value<100000) return "f" + value;

-        if (value<1000000) return "g" + value;

-        if (value<10000000) return "h" + value;

-        if (value<100000000) return "i" + value;

-        if (value<1000000000) return "j" + value;

-        return "k" + value;

-    }

-

-

-    ///////////////////////////////////////////////////////////////////////////////

-    // Helper classes to support axis iteration

-    ///////////////////////////////////////////////////////////////////////////////

-

-    /**

-     * AxisFilter is an iterator that applies a NodeTest filter to

-     * the nodes returned by an underlying AxisIterator.

-     */

-

-    public static class AxisFilter extends AxisIteratorImpl {

-        private int last = -1;

-

-        /**

-         * Construct a AxisFilter

-         * @param base the underlying iterator that returns all the nodes on

-         * a required axis. This must not be an atomizing iterator!

-         * @param test a NodeTest that is applied to each node returned by the

-         * underlying AxisIterator; only those nodes that pass the NodeTest are

-         * returned by the AxisFilter

-         */

-

-        public AxisFilter(AxisIterator base, NodeTest test) {

-            this.base = base;

-            this.nodeTest = test;

-            position = 0;

-        }

-

-    	public Item next() {

-            while (true) {

-    	        current = base.next();

-                if (current == null) {

-                    return null;

-                }

-                NodeInfo n = (NodeInfo)current;

-    	        if (nodeTest.matches(n.getNodeKind(),

-                                     n.getFingerprint(),

-                                     n.getTypeAnnotation())) {

-    	            position++;

-                    return current;

-    	        }

-    	    }

-        }

-

-    	public int getLastPosition() {

-

-    	    // To find out how many nodes there are in the axis, we

-    	    // make a copy of the original node enumeration, and run through

-    	    // the whole thing again, counting how many nodes match the filter.

-

-    	    if (last>=0) {

-    	        return last;

-    	    }

-    	    last = 0;

-            AxisIterator b = (AxisIterator)base.getAnother();

-            while (true) {

-                NodeInfo n = (NodeInfo)b.next();

-                if (n == null) {

-                    return last;

-                }

-                if (nodeTest.matches(n.getNodeKind(),

-                                     n.getFingerprint(),

-                                     n.getTypeAnnotation())) {

-                    last++;

-                }

-            }

-    	}

-

-    	public SequenceIterator getAnother() {

-    	    return new AxisFilter((AxisIterator)base.getAnother(), nodeTest);

-    	}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/A.js
deleted file mode 100644
index e9185a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/A.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package p;

-public class A {

-	public static boolean DEBUG = false;

-	public X x;

-	public A(X x) {

-		this.x = x;

-	}

-	void foo() {

-		A.DEBUG = true;

-	}

-	public void foo(int i, String s, X x) {

-		x.new Inner().foo();

-	}

-	public static void main(String[] args) {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/I.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/I.js
deleted file mode 100644
index 36b68da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/I.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-public interface I {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/X.js
deleted file mode 100644
index c186fa2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/X.js
+++ /dev/null
@@ -1,20 +0,0 @@
-package p;

-public class X implements I {

-	public static boolean DEBUG = false;

-	public I field;

-	public class Inner {

-		public String foo() {

-			return "foo";

-		}

-	}

-	public X() {

-		X.DEBUG = true;

-	}

-	public X(int i) {

-	}

-	public static void bar() {

-	}

-	public void foo(int i, String s, X x) {

-		Inner inner = new Inner();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/Y.js
deleted file mode 100644
index cea5616..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/Y.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package p;

-public class Y extends X {

-	public Y() {

-	}

-	public Y(int i) {

-		super(i);

-	}

-	public Y(boolean b) {

-		super(1);

- 	}

-	public static void bar() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/Z.js
deleted file mode 100644
index a2f61c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p/Z.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package p;

-public class Z extends Y {

-	public Z() {

-	}

-	public Z(int i) {

-		super(i);

-	}

-	public void foo(int i, String s, X x) {

-		super.foo(i, s, new Y(true));

-	}

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p10/a/b/dom/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p10/a/b/dom/Y.js
deleted file mode 100644
index eeb6c43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p10/a/b/dom/Y.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p10.a.b.dom;

-

-public class Y {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p10/a/b/om/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p10/a/b/om/X.js
deleted file mode 100644
index 85c2575..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p10/a/b/om/X.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package p10.a.b.om;

-

-import java.util.Vector;

-

-public class X {

-	final public static class AncestorEnumeration extends Vector {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p2/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p2/Z.js
deleted file mode 100644
index 1346ad3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p2/Z.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p2;

-public class Z {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p3/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p3/X.js
deleted file mode 100644
index 3eea879..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p3/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3;

-public class X {

-	public static int count;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p3/p2/p/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p3/p2/p/X.js
deleted file mode 100644
index ce4033e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p3/p2/p/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3.p2.p;

-public class X {

-	public static int count;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p4/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p4/A.js
deleted file mode 100644
index 7e0ea79..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p4/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package p4;

-/* Regression test for 1GLBP65: ITPJCORE:WIN2000 - search: type refs - incorrect match */

-public class A {

-	static A A;

-}

-class X extends p4.A{

-	void x(){

-		p4.A.A= A.A;  /*1*/

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p5/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p5/A.js
deleted file mode 100644
index 07e251d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p5/A.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package p5;

-/* Regression test for 1GD79XM: ITPJCORE:WINNT - Search - search for field references - not all found */

-public class A{

-	int f;

-	A x;

-	void k(){

-		x.x.x.f= 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p6/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p6/A.js
deleted file mode 100644
index dc0e5ca..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p6/A.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package p6;

-/* Test case for PR 1GKB9YH: ITPJCORE:WIN2000 - search for field refs - incorrect results */

-public class A {

-	protected int f;

-	void m() {

-		f++;

-	}

-}

-class AA extends A {

-	protected int f;

-}

-class B {

-	A a;

-	AA b;

-	A ab = new AA();

-	void m() {

-		a.f = 0; /*1*/

-		b.f = 0; /*2*/

-		ab.f = 0; /*3*/

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p7/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p7/A.js
deleted file mode 100644
index 59518a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p7/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package p7;

-/* Test case for 1G52F7P: ITPJCORE:WINNT - Search - finds bogus references to class */

-public class A {

-}

-

-class C {

-	void m() {

-		class A {

-		}

-		new A();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p71267/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p71267/Test.js
deleted file mode 100644
index 5241300..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p71267/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package p71267;

-

-/**

- * @see p71267

- * @see p71267.Test

- */

-public class Test {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p71267/q71267/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p71267/q71267/Test.js
deleted file mode 100644
index 94cea9a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p71267/q71267/Test.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package p71267.q71267;

-

-/**

- * @see p71267

- * @see p71267.q71267

- * @see p71267.q71267.Test

- */

-public class Test {

-	/**

-	 * @see p71267.q71267

-	 * @see p71267.q71267.Test#field

-	 */

-    int field;

-	/**

-	 * @see p71267.q71267

-	 * @see p71267.q71267.Test#method()

-	 */

-    void method() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p8/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p8/A.js
deleted file mode 100644
index 3befa54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p8/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package p8;

-/* Test case for bug #3433 search: missing field occurrecnces (1GKZ8J6)  */

-public class A{

-	protected int g;

-	void m(){

-		g++;

-	}

-}

-class B extends A{

-	void m(){

-		g= 0;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p9/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p9/X.js
deleted file mode 100644
index c0a593d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/p9/X.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package p9;

-/* Test case for PR 1GK8TXE: ITPJCORE:WIN2000 - search: missing field reference */

-public class X {

-	public X f;

-	public int k;

-	void m() {

-		for (int g = 0; g < 10; g++) {

-		}

-		f.k = 0; //<<

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q1/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q1/B.js
deleted file mode 100644
index 4dd2c6c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q1/B.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package q1;

-/* Test case for PR 1GK90H4: ITPJCORE:WIN2000 - search: missing package reference */

-public class B{

-	void m(AA fred){

-		q2.A.length(); //<<<

-	}

-}

-class AA{

-	static String A;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q2/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q2/A.js
deleted file mode 100644
index ff36fce..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q2/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package q2;

-/* Test case for 1GK90H4: ITPJCORE:WIN2000 - search: missing package reference */

-public class A{

-	public static int length(){return 42;};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q3/A$B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q3/A$B.js
deleted file mode 100644
index 1ff72f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q3/A$B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package q3;

-/* Test case for bug 3310 Smoke 124: Compile errors introduced with rename refactoring (1GFBK2G) */

-public class A$B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q4/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q4/C.js
deleted file mode 100644
index bcc3299..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q4/C.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package q4;

-/* Test case for 3310 Smoke 124: Compile errors introduced with rename refactoring (1GFBK2G) */

-public class C {

-	Object foo() {

-		return new q3.A$B();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q5/AQ.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q5/AQ.js
deleted file mode 100644
index c7490cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q5/AQ.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package q5;

-/* Test case for bug 5068 search: missing method reference */

-interface I{

-void k();

-}

-class T{

-	void m(){

-		class X implements I{

-			public void k(){}

-		};

-		X x= new X();

-		x.k(); /**/

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q6/CD.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q6/CD.js
deleted file mode 100644
index f0c3025..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q6/CD.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package q6;

-/* Test case for bug 5069 search: method reference in super missing */

-class AQ {

-	public void k(){}

-}

-

-class AQE extends AQ{

-	public void k(){

-		super.k();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q7/AQ.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q7/AQ.js
deleted file mode 100644
index ba077bb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q7/AQ.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package q7;

-/* Test case for bug 5070 search: missing interface method reference */

-interface I {

-void k();

-}

-class C1 implements I{

-	public void k(){};

-}

-class D{

-	void h(){

-		I a= new C1();

-		a.k();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q8/EclipseTest.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q8/EclipseTest.js
deleted file mode 100644
index 17b4579..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q8/EclipseTest.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package q8;

-/* Test case for bug 5821 Refactor > Rename renames local variable instead of member in case of name clash  */

-public class EclipseTest {

-    public int test = 0;

-

-    public static void main(String[] args) {

-        EclipseTest test = new EclipseTest();

-

-        test.test = 1;

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q9/I.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q9/I.js
deleted file mode 100644
index f15b0a1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/q9/I.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package q9;

-/* Test case for bug 5862 search : too many matches on search with OrPattern */

-interface I{

-void m();

-}

-

-class A1 implements I{

-public void m(){}

-}

-interface I1{

-void m();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r/A.js
deleted file mode 100644
index c3e43ac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r/A.js
+++ /dev/null
@@ -1,20 +0,0 @@
-package r;

-/* Test case for PR 1GKAQJS: ITPJCORE:WIN2000 - search: incorrect results for nested types */

-public class A {

-	class X {

-		X(X X) {

-			new X(null);

-		}

-	}

-	A() {

-	}

-	A(A A) {

-	}

-	A m() {

-		new X(null);

-		return (A) new A();

-	}

-};

-class B {

-	A.X ax = new A().new X(null);

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r2/I.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r2/I.js
deleted file mode 100644
index f1b2be6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r2/I.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package r2;

-/* Regression test for bug 22102 Not all implementors found for IPartListener */

-public interface I {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r2/X.js
deleted file mode 100644
index cbb5d2e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r2/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package r2;

-/* Regression test for bug 22102 Not all implementors found for IPartListener */

-public class X {

-	I field = new I() {

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r3/A21485.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r3/A21485.js
deleted file mode 100644
index 9d6ab59..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r3/A21485.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package r3;

-/* Test case for bug 21485 NPE when doing a reference search to a package */

-class A21485 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r4/B21485.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r4/B21485.js
deleted file mode 100644
index 003cb06..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r4/B21485.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package r4;

-/* Test case for bug 21485 NPE when doing a reference search to a package */

-import r3.A21485;

-public class B21485 extends A21485 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r5/XYZ.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r5/XYZ.js
deleted file mode 100644
index b6a9854..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r5/XYZ.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package r5;

-/* Test case for bug 17210 No match found when query contains '?'  */

-public class XYZ {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r6/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r6/A.js
deleted file mode 100644
index 803d636..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r6/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package r6;

-/* Test case for bug 23077  search: does not find type references in some imports  */

-public class A {

-  public class Inner{

-    public class InnerInner{

-    }   

-  }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r6/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r6/B.js
deleted file mode 100644
index fcd5197..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r6/B.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package r6;

-/* Test case for bug 23077  search: does not find type references in some imports  */

-import r6.A;

-import r6.A.Inner;

-import r6.A.Inner.InnerInner;

-import r6.A.*;

-import r6.A.Inner.*;

-import r6.A.Inner.InnerInner.*;

-public class B {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r7/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r7/A.js
deleted file mode 100644
index 42b6331..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r7/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package r7;

-/* Test case for bug 37438 searchenging NPE in searchDeclarationsOfReferencedTypes */

-public class A {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r7/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r7/B.js
deleted file mode 100644
index f9eb206..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r7/B.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package r7;

-/* Test case for bug 37438 searchenging NPE in searchDeclarationsOfReferencedTypes */

-public class B {

-	A a;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r8/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r8/A.js
deleted file mode 100644
index dfbd164..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r8/A.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package r8;

-/* Test case for bug 37166 NPE in SearchEngine when matching type against ProblemReferenceBinding */

-import r8.B;

-public class A {

-	A a;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r9/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r9/A.js
deleted file mode 100644
index 2792514..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/r9/A.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package r9;

-public class A {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s1/X.js
deleted file mode 100644
index 8447783..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s1/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package s1;

-/* Test case for bug 3230 Search - Too many type references for query ending with * (1GAZVGI) */

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s1/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s1/Y.js
deleted file mode 100644
index f4804c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s1/Y.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package s1;

-/* Test case for bug 3230 Search - Too many type references for query ending with * (1GAZVGI) */

-public class Y {

-	X f[];

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s2/X.js
deleted file mode 100644
index 820db2a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s2/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package s2;

-/* Test case for bug 3230 Search - Too many type references for query ending with * (1GAZVGI) */

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s2/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s2/Z.js
deleted file mode 100644
index 725fb86..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s2/Z.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package s2;

-/* Test case for bug 3230 Search - Too many type references for query ending with * (1GAZVGI) */

-public class Z {

-	X f[];

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s3/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s3/A.js
deleted file mode 100644
index bbcab6f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s3/A.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package s3;

-/* Regression test for bug 23329 search: incorrect range for type references in brackets */

-public class A {

-	int field;

-	Object foo() {

-		return ( B  )this;

-	}

-	int bar() {

-		return ( field  );

-	}

-}

-class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s4/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s4/X.js
deleted file mode 100644
index 0ae9bb5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s4/X.js
+++ /dev/null
@@ -1,18 +0,0 @@
-package s4;

-public class X {

-	int x;

-	int foo() {

-		return this.x;

-	}

-	/**

-	 * @see X#x

-	 * @see X#foo()

-	 * @see X

-	 */

-	void bar() {

-	}

-	

-	void fred() {

-		new X().foo();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s5/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s5/A.js
deleted file mode 100644
index 53c3c54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/s5/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package s5;

-/* Test case for bug 61017 Refactoring - test case that results in uncompilable source*/

-public class A {

-	public B b; // <- rename this

-	public void method() {

-		B.b.a.b = null;

-	}

-}

-class B {

-	public static B b;

-	public A a;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/sd/AQ.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/sd/AQ.js
deleted file mode 100644
index f281156..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/sd/AQ.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package sd;

-

-/* Test case for PR 1GKCH3N: ITPJCORE:WIN2000 - search: method refs - super call not found */

-public class AQ{

-	public void k(){}

-}

-

-class AQE extends AQ{

-	public void k(){

-		super.k();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc/X.js
deleted file mode 100644
index b7b7efa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package wc;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc1/X.js
deleted file mode 100644
index 202de2d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc1/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package wc1;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc2/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc2/Y.js
deleted file mode 100644
index d3908a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc2/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package wc2;

-public class Y {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc3/X44884.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc3/X44884.js
deleted file mode 100644
index bd42075..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/src/wc3/X44884.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package wc3;

-/* Test case for bug 44884 Wrong list displayed while code completion */

-public class X44884 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test20631.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test20631.jar
deleted file mode 100644
index 743164e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test20631.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test20631.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test20631.zip
deleted file mode 100644
index a820f3d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test20631.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test24741.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test24741.jar
deleted file mode 100644
index b535fa0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test24741.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test47909.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test47909.jar
deleted file mode 100644
index efd6a9a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test47909.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test47989.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test47989.jar
deleted file mode 100644
index 150ad2f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test47989.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test48261.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test48261.jar
deleted file mode 100644
index 6cbaed0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test48261.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test48725.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test48725.jar
deleted file mode 100644
index a71f0de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch/test48725.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/.classpath
deleted file mode 100644
index 9f83149..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry excluding="tmp" kind="src" path="src"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/.project
deleted file mode 100644
index 75574e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/a1/Author.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/a1/Author.js
deleted file mode 100644
index 93a8544..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/a1/Author.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// packages a? stand for search annotations tests

-package a1;

-import e1.Team;

-import static e1.Team.FREDERIC;

-

-public @interface Author {

-	Team[] name() default FREDERIC;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/a1/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/a1/Test.js
deleted file mode 100644
index d044f3c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/a1/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package a1;

-import static e1.Team.*;

-

-@Author(name={FREDERIC, JEROME})

-public class Test {

-	@Author(name=PHILIPPE) void foo() {}

-	@Author int t;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/e1/Team.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/e1/Team.js
deleted file mode 100644
index 984c55f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/e1/Team.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// packages e? stand for search enumeration tests

-package e1;

-public enum Team {

-	PHILIPPE(37) {

-		public boolean isManager() {

-			return true;

-		}

-	},

-	DAVID(27),

-	JEROME(33),

-	OLIVIER(35),

-	KENT(40),

-	FREDERIC;

-

-   public enum Role { MANAGER, DEVELOPPER }

-

-   int age;

-	Role role;

-

-	Team() {}

-	Team(int age) {

-		this.age = age;

-	}

-	public int age() { return this.age; }

-	public boolean isManager() { return false; }

-	void setRole(boolean mgr) {

-		this.role = mgr ? Role.MANAGER : Role.DEVELOPPER;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/e1/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/e1/Test.js
deleted file mode 100644
index b8abc8d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/e1/Test.js
+++ /dev/null
@@ -1,28 +0,0 @@
-package e1;

-

-public class Test {

-    public static void main(String[] args) {

-        for (Team t : Team.values()) {

-            int age = t.age();

-            String location = location(t).toString();

-            t.setRole(t.isManager());

-        }

-    }

-

-   private enum Location { SNZ, OTT }

-

-    private static Location location(Team t) {

-        switch(t) {

-          case PHILIPPE:  

-          case DAVID:

-          case JEROME:

-          case FREDERIC:

-          	return Location.SNZ;

-          case OLIVIER:

-          case KENT:

-            return Location.OTT;

-          default:

-          	return null;

-        }

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/def/Generic.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/def/Generic.js
deleted file mode 100644
index 2921977..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/def/Generic.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*

- * package g1.t.m.def is the package to define (def) generic (g1) types (t) (top level or

- * members) with multiple (m) type parameters

- *

- * Generic type which also contains both generic and non-generic member types.

- */

-package g1.t.m.def;

-public class Generic<T1, T2 extends Exception, T3 extends RuntimeException> {

-	public T1 t1;

-	public T2 t2;

-	public T3 t3;

-	public class Member {

-		public Object m;

-	}

-	public class MemberGeneric<U1, U2 extends Exception, U3 extends Throwable> {

-		public U1 u1;

-		public U2 u2;

-		public U3 u3;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/def/NonGeneric.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/def/NonGeneric.js
deleted file mode 100644
index 2dfba25..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/def/NonGeneric.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*

- * package g1.t.m.def is the package to define (def) generic (g1) types (t) (top level or

- * members) with multiple (m) type parameters

- * 

- * This type is a non-generic type which contains a generic member.

- */

-package g1.t.m.def;

-

-public class NonGeneric {

-	public class GenericMember<T1, T2 extends Exception, T3 extends RuntimeException> {

-		public T1 t1;

-		public T2 t2;

-		public T3 t3;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R1.js
deleted file mode 100644
index a48e29d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R1.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * package g1.t.m.ref is the package to define types which contain

- * references (ref) to generic (g1) types (t) which have multiple (m) type parameters

- */

-package g1.t.m.ref;

-import g1.t.m.def.Generic;

-

-/*

- * This type is used to test references to generic type

- */

-public class R1 {

-	// Simple name

-	public Generic gen;

-	public Generic<Object, Exception, RuntimeException> gen_obj;

-	public Generic<Exception, Exception, RuntimeException> gen_exc;

-	public Generic<?, ?, ?> gen_wld;

-	public Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException> gen_thr;

-	public Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> gen_run;

-	// qualified name

-	public g1.t.m.def.Generic qgen;

-	public g1.t.m.def.Generic<Object, Exception, RuntimeException> qgen_obj;

-	public g1.t.m.def.Generic<Exception, Exception, RuntimeException> qgen_exc;

-	public g1.t.m.def.Generic<?, ?, ?> qgen_wld;

-	public g1.t.m.def.Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException> qgen_thr;

-	public g1.t.m.def.Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> qgen_run;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R2.js
deleted file mode 100644
index 855dbf5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R2.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * package g1.t.m.ref is the package to define types which contain

- * references (ref) to generic (g1) types (t) which have multiple (m) type parameters

- */

-package g1.t.m.ref;

-import g1.t.m.def.NonGeneric;

-

-/*

- * This type is used to test reference to generic member type defined in a non-generic type.

- */

-public class R2 {

-	// Simple name

-	public NonGeneric.GenericMember gen;

-	public NonGeneric.GenericMember<Object, Exception, RuntimeException> gen_obj;

-	public NonGeneric.GenericMember<Exception, Exception, RuntimeException> gen_exc;

-	public NonGeneric.GenericMember<?, ?, ?> gen_wld;

-	public NonGeneric.GenericMember<? extends Throwable, ? extends Exception, ? extends RuntimeException> gen_thr;

-	public NonGeneric.GenericMember<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> gen_run;

-	// Qualified name

-	public g1.t.m.def.NonGeneric.GenericMember qgen;

-	public g1.t.m.def.NonGeneric.GenericMember<Object, Exception, RuntimeException> qgen_obj;

-	public g1.t.m.def.NonGeneric.GenericMember<Exception, Exception, RuntimeException> qgen_exc;

-	public g1.t.m.def.NonGeneric.GenericMember<?, ?, ?> qgen_wld;

-	public g1.t.m.def.NonGeneric.GenericMember<? extends Throwable, ? extends Exception, ? extends RuntimeException> qgen_thr;

-	public g1.t.m.def.NonGeneric.GenericMember<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> qgen_run;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R3.js
deleted file mode 100644
index ebd1131..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R3.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * package g1.t.m.ref is the package to define types which contain

- * references (ref) to generic (g1) types (t) which have multiple (m) type parameters

- */

-package g1.t.m.ref;

-import g1.t.m.def.Generic;

-

-/*

- * This type is used to test reference to generic member type defined in generic type.

- */

-public class R3 {

-	// Simple name

-	public Generic.MemberGeneric gen;

-	public Generic<Object, Exception, RuntimeException>.MemberGeneric<Object, Exception, RuntimeException> gen_obj;

-	public Generic<Exception, Exception, RuntimeException>.MemberGeneric<Exception, Exception, RuntimeException> gen_exc;

-	public Generic<?, ?, ?>.MemberGeneric<?, ?, ?> gen_wld;

-	public Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.MemberGeneric<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> gen_thr;

-	public Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.MemberGeneric<? extends Throwable, ? extends Exception, ? extends RuntimeException> gen_run;

-	// Qualified name

-	public g1.t.m.def.Generic.MemberGeneric qgen;

-	public g1.t.m.def.Generic<Object, Exception, RuntimeException>.MemberGeneric<Object, Exception, RuntimeException> qgen_obj;

-	public g1.t.m.def.Generic<Exception, Exception, RuntimeException>.MemberGeneric<Exception, Exception, RuntimeException> qgen_exc;

-	public g1.t.m.def.Generic<?, ?, ?>.MemberGeneric<?, ?, ?> qgen_wld;

-	public g1.t.m.def.Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.MemberGeneric<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> qgen_thr;

-	public g1.t.m.def.Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.MemberGeneric<? extends Throwable, ? extends Exception, ? extends RuntimeException> qgen_run;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R4.js
deleted file mode 100644
index c458ce8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/m/ref/R4.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * package g1.t.m.ref is the package to define types which contain

- * references (ref) to generic (g1) types (t) which have multiple (m) type parameters

- */

-package g1.t.m.ref;

-import g1.t.m.def.Generic;

-

-/*

- * This type is used to test reference to member type defined in generic type.

- */

-public class R4 {

-	// Simple name

-	public Generic.Member gen;

-	public Generic<Object, Exception, RuntimeException>.Member gen_obj;

-	public Generic<Exception, Exception, RuntimeException>.Member gen_exc;

-	public Generic<?, ?, ?>.Member gen_wld;

-	public Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.Member gen_thr;

-	public Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.Member gen_run;

-	// Qualified name

-	public g1.t.m.def.Generic.Member qgen;

-	public g1.t.m.def.Generic<Object, Exception, RuntimeException>.Member qgen_obj;

-	public g1.t.m.def.Generic<Exception, Exception, RuntimeException>.Member qgen_exc;

-	public g1.t.m.def.Generic<?, ?, ?>.Member qgen_wld;

-	public g1.t.m.def.Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.Member qgen_thr;

-	public g1.t.m.def.Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.Member qgen_run;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/def/Generic.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/def/Generic.js
deleted file mode 100644
index 9e10c00..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/def/Generic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*

- * package g1.t.s.ref is the package to define types (t) which contain

- * references (ref) to generic types (g1) which have only one single (s) type parameter

- * 

- * Generic type which also contains both generic and non-generic member types.

- */

-package g1.t.s.def;

-public class Generic<T> {

-	public T t;

-	public class Member {

-		public Object m;

-	}

-	public class MemberGeneric<V> {

-		public V v;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/def/NonGeneric.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/def/NonGeneric.js
deleted file mode 100644
index 0c2e4c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/def/NonGeneric.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*

- * package g1.t.s.ref is the package to define types (t) which contain

- * references (ref) to generic types (g1) which have only one single (s) type parameter

- * 

- * This type is a non-generic type which contains a generic member.

- */

-package g1.t.s.def;

-public class NonGeneric {

-	public class GenericMember<T> {

-		public T t;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R1.js
deleted file mode 100644
index 1d919ed..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R1.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * package g1.t.s.ref is the package to define types which contain

- * references (ref) to generic (g1) types (t) which have only one single (s) type parameter

- */

-package g1.t.s.ref;

-import g1.t.s.def.Generic;

-

-/*

- * This type is used to test references to generic type

- */

-public class R1 {

-	// Simple name

-	public Generic gen;

-	public Generic<Object> gen_obj;

-	public Generic<Exception> gen_exc;

-	public Generic<?> gen_wld;

-	public Generic<? extends Throwable> gen_thr;

-	public Generic<? super RuntimeException> gen_run;

-	// qualified name

-	public g1.t.s.def.Generic qgen;

-	public g1.t.s.def.Generic<Object> qgen_obj;

-	public g1.t.s.def.Generic<Exception> qgen_exc;

-	public g1.t.s.def.Generic<?> qgen_wld;

-	public g1.t.s.def.Generic<? extends Throwable> qgen_thr;

-	public g1.t.s.def.Generic<? super RuntimeException> qgen_run;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R2.js
deleted file mode 100644
index 886ad00..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R2.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * package g1.t.s.ref is the package to define types which contain

- * references (ref) to generic (g1) types (t) which have only one single (s) type parameter

- */

-package g1.t.s.ref;

-import g1.t.s.def.NonGeneric;

-

-/*

- * This type is used to test reference to generic member type defined in a non-generic type.

- */

-public class R2 {

-	// Simple name

-	public NonGeneric.GenericMember gen;

-	public NonGeneric.GenericMember<Object> gen_obj;

-	public NonGeneric.GenericMember<Exception> gen_exc;

-	public NonGeneric.GenericMember<?> gen_wld;

-	public NonGeneric.GenericMember<? extends Throwable> gen_thr;

-	public NonGeneric.GenericMember<? super RuntimeException> gen_run;

-	// Qualified name

-	public g1.t.s.def.NonGeneric.GenericMember qgen;

-	public g1.t.s.def.NonGeneric.GenericMember<Object> qgen_obj;

-	public g1.t.s.def.NonGeneric.GenericMember<Exception> qgen_exc;

-	public g1.t.s.def.NonGeneric.GenericMember<?> qgen_wld;

-	public g1.t.s.def.NonGeneric.GenericMember<? extends Throwable> qgen_thr;

-	public g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException> qgen_run;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R3.js
deleted file mode 100644
index a3326de..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R3.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * package g1.t.s.ref is the package to define types which contain

- * references (ref) to generic (g1) types (t) which have only one single (s) type parameter

- */

-package g1.t.s.ref;

-import g1.t.s.def.Generic;

-

-/*

- * This type is used to test reference to generic member type defined in generic type.

- */

-public class R3 {

-	// Simple name

-	public Generic.MemberGeneric gen;

-	public Generic<Object>.MemberGeneric<Object> gen_obj;

-	public Generic<Exception>.MemberGeneric<Exception> gen_exc;

-	public Generic<?>.MemberGeneric<?> gen_wld;

-	public Generic<? extends Throwable>.MemberGeneric<? super RuntimeException> gen_thr;

-	public Generic<? super RuntimeException>.MemberGeneric<? extends Throwable> gen_run;

-	// Qualified name

-	public g1.t.s.def.Generic.MemberGeneric qgen;

-	public g1.t.s.def.Generic<Object>.MemberGeneric<Object> qgen_obj;

-	public g1.t.s.def.Generic<Exception>.MemberGeneric<Exception> qgen_exc;

-	public g1.t.s.def.Generic<?>.MemberGeneric<?> qgen_wld;

-	public g1.t.s.def.Generic<? extends Throwable>.MemberGeneric<? super RuntimeException> qgen_thr;

-	public g1.t.s.def.Generic<? super RuntimeException>.MemberGeneric<? extends Throwable> qgen_run;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R4.js
deleted file mode 100644
index 9156141..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g1/t/s/ref/R4.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*

- * package g1.t.s.ref is the package to define types which contain

- * references (ref) to generic (g1) types (t) which have only one single (s) type parameter

- */

-package g1.t.s.ref;

-import g1.t.s.def.Generic;

-

-/*

- * This type is used to test reference to member type defined in generic type.

- */

-public class R4 {

-	// Simple name

-	public Generic.Member gen;

-	public Generic<Object>.Member gen_obj;

-	public Generic<Exception>.Member gen_exc;

-	public Generic<?>.Member gen_wld;

-	public Generic<? extends Throwable>.Member gen_thr;

-	public Generic<? super RuntimeException>.Member gen_run;

-	// Qualified name

-	public g1.t.s.def.Generic.Member qgen;

-	public g1.t.s.def.Generic<Object>.Member qgen_obj;

-	public g1.t.s.def.Generic<Exception>.Member qgen_exc;

-	public g1.t.s.def.Generic<?>.Member qgen_wld;

-	public g1.t.s.def.Generic<? extends Throwable>.Member qgen_thr;

-	public g1.t.s.def.Generic<? super RuntimeException>.Member qgen_run;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R1.js
deleted file mode 100644
index 1bec259..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R1.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package g2.f.m.def;

-

-import g1.t.m.def.Generic;

-

-public class R1 {

-	{

-		Generic generic = new Generic();

-		generic.t1.toString();

-	}

-	{

-		Generic<Object, Exception, RuntimeException> generic = new Generic<Object, Exception, RuntimeException>();

-		generic.t1.toString();

-	}

-	{

-		Generic<Exception, Exception, RuntimeException> generic = new Generic<Exception, Exception, RuntimeException>();

-		generic.t1.toString();

-	}

-	{

-		Generic<?, ?, ?> generic = new Generic<?, ? ,?>();

-		generic.t1.toString();

-	}

-	{

-		Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException> generic = new Generic<Exception, RuntimeException, IllegalMonitorStateException>();

-		generic.t1.toString();

-	}

-	{

-		Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException> generic = new Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>();

-		generic.t1.toString();

-	}

-	{

-		Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> generic = new Generic<Exception, RuntimeException, RuntimeException>();

-		generic.t1.toString();

-	}

-	{

-		Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> generic = new Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>();

-		generic.t1.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R2.js
deleted file mode 100644
index 473da1c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R2.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package g2.f.m.def;

-

-import g1.t.m.def.Generic;

-

-public class R2 {

-	{

-		Generic.Member member = new Generic().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<Object, Exception, RuntimeException>.Member member = new Generic<Object, Exception, RuntimeException>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<Exception, Exception, RuntimeException>.Member member = new Generic<Exception, Exception, RuntimeException>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<?, ?, ?>.Member member = new Generic<?, ?, ?>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.Member member = new Generic<Exception, RuntimeException, IllegalMonitorStateException>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.Member member = new Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.Member member = new Generic<Exception, RuntimeException, RuntimeException>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.Member member = new Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>().new Member();

-		member.m.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R3.js
deleted file mode 100644
index cf3b639..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R3.js
+++ /dev/null
@@ -1,54 +0,0 @@
-package g2.f.m.def;

-

-import g1.t.m.def.Generic;

-

-public class R3 {

-	{

-		Generic.MemberGeneric member = new Generic().new MemberGeneric();

-		member.u2.toString();

-	}

-	{

-		Generic<Object, Exception, RuntimeException>.MemberGeneric<Object, Exception, RuntimeException> member = new Generic<Object, Exception, RuntimeException>().new MemberGeneric<Object, Exception, RuntimeException>();

-		member.u2.toString();

-	}

-	{

-		Generic<Exception, Exception, RuntimeException>.MemberGeneric<Exception, Exception, RuntimeException> member = new Generic<Exception, Exception, RuntimeException>().new MemberGeneric<Exception, Exception, RuntimeException>();

-		member.u2.toString();

-	}

-	{

-		Generic<?, ?, ?>.MemberGeneric<?, ?, ?> member = new Generic<?, ?, ?>().new MemberGeneric<?, ?, ?>();

-		member.u2.toString();

-	}

-	{

-		Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.MemberGeneric<? extends Throwable, ? extends Exception, ? extends RuntimeException> member = new Generic<Exception, Exception, RuntimeException>().new MemberGeneric<Exception, Exception, RuntimeException>();

-		member.u2.toString();

-	}

-	{

-		Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.MemberGeneric<? extends Throwable, ? extends Exception, ? extends RuntimeException> member = new Generic<Exception, Exception, RuntimeException>().new MemberGeneric<? extends Throwable, ? extends Exception, ? extends RuntimeException>();

-		member.u2.toString();

-	}

-	{

-		Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.MemberGeneric<? extends Throwable, ? extends Exception, ? extends RuntimeException> member = new Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>().new MemberGeneric<Exception, Exception, RuntimeException>();

-		member.u2.toString();

-	}

-	{

-		Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>.MemberGeneric<? extends Throwable, ? extends Exception, ? extends RuntimeException> member = new Generic<? extends Throwable, ? extends Exception, ? extends RuntimeException>().new MemberGeneric<? extends Throwable, ? extends Exception, ? extends RuntimeException>();

-		member.u2.toString();

-	}

-	{

-		Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.MemberGeneric<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> member = new Generic<Exception, Exception, RuntimeException>().new MemberGeneric<Exception, Exception, RuntimeException>();

-		member.u2.toString();

-	}

-	{

-		Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.MemberGeneric<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> member = new Generic<Exception, Exception, RuntimeException>().new MemberGeneric<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>();

-		member.u2.toString();

-	}

-	{

-		Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.MemberGeneric<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> member = new Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>().new MemberGeneric<Exception, Exception, RuntimeException>();

-		member.u2.toString();

-	}

-	{

-		Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>.MemberGeneric<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> member = new Generic<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>().new MemberGeneric<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>();

-		member.u2.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R4.js
deleted file mode 100644
index 59f228a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/def/R4.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package g2.f.m.def;

-

-import g1.t.m.def.NonGeneric;

-

-public class R4 {

-	{

-		NonGeneric.GenericMember member = new NonGeneric().new GenericMember();

-		member.t3.toString();

-	}

-	{

-		NonGeneric.GenericMember<Object, Exception, RuntimeException> member = new NonGeneric().new GenericMember<Object, Exception, RuntimeException>();

-		member.t3.toString();

-	}

-	{

-		NonGeneric.GenericMember<Exception, Exception, RuntimeException> member = new NonGeneric().new GenericMember<Exception, Exception, RuntimeException>();

-		member.t3.toString();

-	}

-	{

-		NonGeneric.GenericMember<?, ?, ?> member = new NonGeneric().new GenericMember<?, ?, ?>();

-		member.t3.toString();

-	}

-	{

-		NonGeneric.GenericMember<? extends Throwable, ? extends Exception, ? extends RuntimeException> member = new NonGeneric().new GenericMember<Exception, Exception, RuntimeException>();

-		member.t3.toString();

-	}

-	{

-		NonGeneric.GenericMember<? extends Throwable, ? extends Exception, ? extends RuntimeException> member = new NonGeneric().new GenericMember<? extends Throwable, ? extends Exception, ? extends RuntimeException>();

-		member.t3.toString();

-	}

-	{

-		NonGeneric.GenericMember<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> member = new NonGeneric().new GenericMember<Exception, Exception, RuntimeException>();

-		member.t3.toString();

-	}

-	{

-		NonGeneric.GenericMember<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException> member = new NonGeneric().new GenericMember<? super RuntimeException, ? super IllegalMonitorStateException, ? super IllegalMonitorStateException>();

-		member.t3.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR1.js
deleted file mode 100644
index 1dd2b55..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR1.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package g2.f.m.ref;

-

-import g1.t.m.ref.R1;

-

-public class RR1 {

-	{

-		R1 test = new R1();

-		test.gen.toString();

-		test.gen_obj.toString();

-		test.gen_exc.toString();

-		test.gen_wld.toString();

-		test.gen_thr.toString();

-		test.gen_run.toString();

-		test.qgen.toString();

-		test.qgen_obj.toString();

-		test.qgen_exc.toString();

-		test.qgen_wld.toString();

-		test.qgen_thr.toString();

-		test.qgen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR2.js
deleted file mode 100644
index faf0042..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR2.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package g2.f.m.ref;

-

-import g1.t.m.ref.R2;

-

-public class RR2 {

-	{

-		R2 test = new R2();

-		test.gen.toString();

-		test.gen_obj.toString();

-		test.gen_exc.toString();

-		test.gen_wld.toString();

-		test.gen_thr.toString();

-		test.gen_run.toString();

-		test.qgen.toString();

-		test.qgen_obj.toString();

-		test.qgen_exc.toString();

-		test.qgen_wld.toString();

-		test.qgen_thr.toString();

-		test.qgen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR3.js
deleted file mode 100644
index 1af0f5d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR3.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package g2.f.m.ref;

-

-import g1.t.m.ref.R3;

-

-public class RR3 {

-	{

-		R3 test = new R3();

-		test.gen.toString();

-		test.gen_obj.toString();

-		test.gen_exc.toString();

-		test.gen_wld.toString();

-		test.gen_thr.toString();

-		test.gen_run.toString();

-		test.qgen.toString();

-		test.qgen_obj.toString();

-		test.qgen_exc.toString();

-		test.qgen_wld.toString();

-		test.qgen_thr.toString();

-		test.qgen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR4.js
deleted file mode 100644
index 73583f9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/m/ref/RR4.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package g2.f.m.ref;

-

-import g1.t.m.ref.R4;

-

-public class RR4 {

-	{

-		R4 test = new R4();

-		test.gen.toString();

-		test.gen_obj.toString();

-		test.gen_exc.toString();

-		test.gen_wld.toString();

-		test.gen_thr.toString();

-		test.gen_run.toString();

-		test.qgen.toString();

-		test.qgen_obj.toString();

-		test.qgen_exc.toString();

-		test.qgen_wld.toString();

-		test.qgen_thr.toString();

-		test.qgen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R1.js
deleted file mode 100644
index 2cbc264..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R1.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package g2.f.s.def;

-

-import g1.t.s.def.Generic;

-

-public class R1 {

-	{

-		Generic generic = new Generic();

-		generic.t.toString();

-	}

-	{

-		Generic<Object> generic = new Generic<Object>();

-		generic.t.toString();

-	}

-	{

-		Generic<Exception> generic = new Generic<Exception>();

-		generic.t.toString();

-	}

-	{

-		Generic<?> generic = new Generic<?>();

-		generic.t.toString();

-	}

-	{

-		Generic<? extends Throwable> generic = new Generic<Exception>();

-		generic.t.toString();

-	}

-	{

-		Generic<? extends Throwable> generic = new Generic<? extends Throwable>();

-		generic.t.toString();

-	}

-	{

-		Generic<? super RuntimeException> generic = new Generic<Exception>();

-		generic.t.toString();

-	}

-	{

-		Generic<? super RuntimeException> generic = new Generic<? super RuntimeException>();

-		generic.t.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R2.js
deleted file mode 100644
index 7803a14..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R2.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package g2.f.s.def;

-

-import g1.t.s.def.Generic;

-

-public class R2 {

-	{

-		Generic.Member member = new Generic().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<Object>.Member member = new Generic<Object>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<Exception>.Member member = new Generic<Exception>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<?>.Member member = new Generic<?>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<? extends Throwable>.Member member = new Generic<Exception>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<? extends Throwable>.Member member = new Generic<? extends Throwable>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<? super RuntimeException>.Member member = new Generic<Exception>().new Member();

-		member.m.toString();

-	}

-	{

-		Generic<? super RuntimeException>.Member member = new Generic<? super RuntimeException>().new Member();

-		member.m.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R3.js
deleted file mode 100644
index 68c52fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R3.js
+++ /dev/null
@@ -1,54 +0,0 @@
-package g2.f.s.def;

-

-import g1.t.s.def.Generic;

-

-public class R3 {

-	{

-		Generic.MemberGeneric member = new Generic().new MemberGeneric();

-		member.v.toString();

-	}

-	{

-		Generic<Object>.MemberGeneric<Object> member = new Generic<Object>().new MemberGeneric<Object>();

-		member.v.toString();

-	}

-	{

-		Generic<Exception>.MemberGeneric<Exception> member = new Generic<Exception>().new MemberGeneric<Exception>();

-		member.v.toString();

-	}

-	{

-		Generic<?>.MemberGeneric<?> member = new Generic<?>().new MemberGeneric<?>();

-		member.v.toString();

-	}

-	{

-		Generic<? extends Throwable>.MemberGeneric<? extends Throwable> member = new Generic<Exception>().new MemberGeneric<Exception>();

-		member.v.toString();

-	}

-	{

-		Generic<? extends Throwable>.MemberGeneric<? extends Throwable> member = new Generic<Exception>().new MemberGeneric<? extends Throwable>();

-		member.v.toString();

-	}

-	{

-		Generic<? extends Throwable>.MemberGeneric<? extends Throwable> member = new Generic<? extends Throwable>().new MemberGeneric<Exception>();

-		member.v.toString();

-	}

-	{

-		Generic<? extends Throwable>.MemberGeneric<? extends Throwable> member = new Generic<? extends Throwable>().new MemberGeneric<? extends Throwable>();

-		member.v.toString();

-	}

-	{

-		Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException> member = new Generic<Exception>().new MemberGeneric<Exception>();

-		member.v.toString();

-	}

-	{

-		Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException> member = new Generic<Exception>().new MemberGeneric<? super RuntimeException>();

-		member.v.toString();

-	}

-	{

-		Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException> member = new Generic<? super RuntimeException>().new MemberGeneric<Exception>();

-		member.v.toString();

-	}

-	{

-		Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException> member = new Generic<? super RuntimeException>().new MemberGeneric<? super RuntimeException>();

-		member.v.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R4.js
deleted file mode 100644
index f0bdbe7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/def/R4.js
+++ /dev/null
@@ -1,38 +0,0 @@
-package g2.f.s.def;

-

-import g1.t.s.def.NonGeneric;

-

-public class R4 {

-	{

-		NonGeneric.GenericMember member = new NonGeneric().new GenericMember();

-		member.t.toString();

-	}

-	{

-		NonGeneric.GenericMember<Object> member = new NonGeneric().new GenericMember<Object>();

-		member.t.toString();

-	}

-	{

-		NonGeneric.GenericMember<Exception> member = new NonGeneric().new GenericMember<Exception>();

-		member.t.toString();

-	}

-	{

-		NonGeneric.GenericMember<?> member = new NonGeneric().new GenericMember<?>();

-		member.t.toString();

-	}

-	{

-		NonGeneric.GenericMember<? extends Throwable> member = new NonGeneric().new GenericMember<Exception>();

-		member.t.toString();

-	}

-	{

-		NonGeneric.GenericMember<? extends Throwable> member = new NonGeneric().new GenericMember<? extends Throwable>();

-		member.t.toString();

-	}

-	{

-		NonGeneric.GenericMember<? super RuntimeException> member = new NonGeneric().new GenericMember<Exception>();

-		member.t.toString();

-	}

-	{

-		NonGeneric.GenericMember<? super RuntimeException> member = new NonGeneric().new GenericMember<? super RuntimeException>();

-		member.t.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR1.js
deleted file mode 100644
index a749381..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR1.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package g2.f.s.ref;

-

-import g1.t.s.ref.R1;

-

-public class RR1 {

-	{

-		R1 test = new R1();

-		test.gen.toString();

-		test.gen_obj.toString();

-		test.gen_exc.toString();

-		test.gen_wld.toString();

-		test.gen_thr.toString();

-		test.gen_run.toString();

-		test.qgen.toString();

-		test.qgen_obj.toString();

-		test.qgen_exc.toString();

-		test.qgen_wld.toString();

-		test.qgen_thr.toString();

-		test.qgen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR2.js
deleted file mode 100644
index c1f76cf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR2.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package g2.f.s.ref;

-

-import g1.t.s.ref.R2;

-

-public class RR2 {

-	{

-		R2 test = new R2();

-		test.gen.toString();

-		test.gen_obj.toString();

-		test.gen_exc.toString();

-		test.gen_wld.toString();

-		test.gen_thr.toString();

-		test.gen_run.toString();

-		test.qgen.toString();

-		test.qgen_obj.toString();

-		test.qgen_exc.toString();

-		test.qgen_wld.toString();

-		test.qgen_thr.toString();

-		test.qgen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR3.js
deleted file mode 100644
index 7fbb2e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR3.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package g2.f.s.ref;

-

-import g1.t.s.ref.R3;

-

-public class RR3 {

-	{

-		R3 test = new R3();

-		test.gen.toString();

-		test.gen_obj.toString();

-		test.gen_exc.toString();

-		test.gen_wld.toString();

-		test.gen_thr.toString();

-		test.gen_run.toString();

-		test.qgen.toString();

-		test.qgen_obj.toString();

-		test.qgen_exc.toString();

-		test.qgen_wld.toString();

-		test.qgen_thr.toString();

-		test.qgen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR4.js
deleted file mode 100644
index 71b1259..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g2/f/s/ref/RR4.js
+++ /dev/null
@@ -1,21 +0,0 @@
-package g2.f.s.ref;

-

-import g1.t.s.ref.R4;

-

-public class RR4 {

-	{

-		R4 test = new R4();

-		test.gen.toString();

-		test.gen_obj.toString();

-		test.gen_exc.toString();

-		test.gen_wld.toString();

-		test.gen_thr.toString();

-		test.gen_run.toString();

-		test.qgen.toString();

-		test.qgen_obj.toString();

-		test.qgen_exc.toString();

-		test.qgen_wld.toString();

-		test.qgen_thr.toString();

-		test.qgen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/GM.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/GM.js
deleted file mode 100644
index 7bf85e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/GM.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*

- * package g1.t.m.def is the package to define (def) generic (g1) types (t) (top level or

- * members) with multiple (m) type parameters

- *

- * Generic type which also contains both generic and non-generic member types.

- */

-package g3.t.def;

-public class GM<T1, T2, T3> {

-	public T1 t1;

-	public T2 t2;

-	public T3 t3;

-	public class Member {

-		public Object m;

-	}

-	public class Generic<U1, U2, U3> {

-		public U1 u1;

-		public U2 u2;

-		public U3 u3;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/GS.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/GS.js
deleted file mode 100644
index 26a0817..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/GS.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*

- * package g1.t.s.ref is the package to define types (t) which contain

- * references (ref) to generic types (g1) which have only one single (s) type parameter

- * 

- * Generic type which also contains both generic and non-generic member types.

- */

-package g3.t.def;

-public class GS<T> {

-	public T t;

-	public class Member {

-		public Object m;

-	}

-	public class Generic<V> {

-		public V v;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/NGM.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/NGM.js
deleted file mode 100644
index 641e631..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/NGM.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*

- * package g1.t.m.def is the package to define (def) generic (g1) types (t) (top level or

- * members) with multiple (m) type parameters

- * 

- * This type is a non-generic type which contains a generic member.

- */

-package g3.t.def;

-

-public class NGM {

-	public class Generic<T1, T2, T3> {

-		public T1 t1;

-		public T2 t2;

-		public T3 t3;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/NGS.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/NGS.js
deleted file mode 100644
index c51ac40..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/def/NGS.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*

- * package g1.t.s.ref is the package to define types (t) which contain

- * references (ref) to generic types (g1) which have only one single (s) type parameter

- * 

- * This type is a non-generic type which contains a generic member.

- */

-package g3.t.def;

-public class NGS {

-	public class Generic<T> {

-		public T t;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R1.js
deleted file mode 100644
index 387f791..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R1.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*

- * package g3.t.ref is second package to define types which contain

- * references (ref) to generic (g1) types (t)

- */

-package g3.t.ref;

-

-import g3.t.def.GM;

-import g3.t.def.GS;

-

-/*

- * This type is used to test references to generic type with nested parameterized types

- */

-public class R1 {

-	// simple name

-	public GS<GM<?, ?, ?>> sgsm_wld;

-	public GS<GM<GM<?, ?, ?>,GM<?, ?, ?>,GM<?, ?, ?>>> sgsm_www;

-	public GS<GM<Object, Exception, RuntimeException>> sgsm_obj;

-	public GM<GS<?>, GS<?>, GS<?>> sgms_wld;

-	public GM<GS<?>, GS<GS<?>>, GS<GS<GS<?>>>> sgms_www;

-	public GM<GS<Object>, GS<? extends Throwable>, GS<? super RuntimeException>> sgms_obj;

-	// qualified name

-	public g3.t.def.GS<g3.t.def.GM<?, ?, ?>> qgsm_wld;

-	public g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?, ?, ?>, g3.t.def.GM<?, ?, ?>, g3.t.def.GM<?, ?, ?>>> qgsm_www;

-	public g3.t.def.GS<g3.t.def.GM<java.lang.Object, java.lang.Exception, java.lang.RuntimeException>> qgsm_obj;

-	public g3.t.def.GM<g3.t.def.GS<?>, g3.t.def.GS<?>, g3.t.def.GS<?>> qgms_wld;

-	public g3.t.def.GM<g3.t.def.GS<?>, g3.t.def.GS<g3.t.def.GS<?>>, g3.t.def.GS<g3.t.def.GS<g3.t.def.GS<?>>>> qgms_www;

-	public g3.t.def.GM<g3.t.def.GS<java.lang.Object>, g3.t.def.GS<? extends java.lang.Throwable>, g3.t.def.GS<? super java.lang.RuntimeException>> qgms_obj;

-	

-	{

-		sgsm_wld.toString();

-		sgsm_www.toString();

-		sgsm_obj.toString();

-		sgms_wld.toString();

-		sgms_www.toString();

-		sgms_obj.toString();

-		qgsm_wld.toString();

-		qgsm_www.toString();

-		qgsm_obj.toString();

-		qgms_wld.toString();

-		qgms_www.toString();

-		qgms_obj.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R2.js
deleted file mode 100644
index 1909427..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R2.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*

- * package g3.t.ref is second package to define types which contain

- * references (ref) to generic (g1) types (t)

- */

-package g3.t.ref;

-

-import g3.t.def.GM;

-import g3.t.def.GS;

-

-/*

- * This type is used to test references to generic type with nested parameterized types

- */

-public class R2 {

-	// simple name

-	public GS<GM<?, ?, ?>.Member>.Member sgsm_wld;

-	public GS<GM<GM<?, ?, ?>.Member,GM<?, ?, ?>.Member,GM<?, ?, ?>.Member>.Member>.Member sgsm_www;

-	public GS<GM<Object, Exception, RuntimeException>.Member>.Member sgsm_obj;

-	public GM<GS<?>.Member, GS<?>.Member, GS<?>.Member>.Member sgms_wld;

-	public GM<GS<?>.Member, GS<GS<?>.Member>.Member, GS<GS<GS<?>.Member>.Member>.Member>.Member sgms_www;

-	public GM<GS<Object>.Member, GS<? extends Throwable>.Member, GS<? super RuntimeException>.Member>.Member sgms_obj;

-	// qualified name

-	public g3.t.def.GS<g3.t.def.GM<?, ?, ?>.Member>.Member qgsm_wld;

-	public g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?, ?, ?>.Member, g3.t.def.GM<?, ?, ?>.Member, g3.t.def.GM<?, ?, ?>.Member>.Member>.Member qgsm_www;

-	public g3.t.def.GS<g3.t.def.GM<java.lang.Object, java.lang.Exception, java.lang.RuntimeException>.Member>.Member qgsm_obj;

-	public g3.t.def.GM<g3.t.def.GS<?>.Member, g3.t.def.GS<?>.Member, g3.t.def.GS<?>.Member>.Member qgms_wld;

-	public g3.t.def.GM<g3.t.def.GS<?>.Member, g3.t.def.GS<g3.t.def.GS<?>.Member>.Member, g3.t.def.GS<g3.t.def.GS<g3.t.def.GS<?>.Member>.Member>.Member>.Member qgms_www;

-	public g3.t.def.GM<g3.t.def.GS<java.lang.Object>.Member, g3.t.def.GS<? extends java.lang.Throwable>.Member, g3.t.def.GS<? super java.lang.RuntimeException>.Member>.Member qgms_obj;

-	

-	{

-		sgsm_wld.toString();

-		sgsm_www.toString();

-		sgsm_obj.toString();

-		sgms_wld.toString();

-		sgms_www.toString();

-		sgms_obj.toString();

-		qgsm_wld.toString();

-		qgsm_www.toString();

-		qgsm_obj.toString();

-		qgms_wld.toString();

-		qgms_www.toString();

-		qgms_obj.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R3.js
deleted file mode 100644
index 702e224..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R3.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*

- * package g3.t.ref is second package to define types which contain

- * references (ref) to generic (g1) types (t)

- */

-package g3.t.ref;

-

-import g3.t.def.GM;

-import g3.t.def.GS;

-

-/*

- * This type is used to test references to generic type with nested parameterized types

- */

-public class R3 {

-	// simple name

-	public GS<GM<?, ?, ?>.Generic<?, ?, ?>>.Generic<?> sgsm_wld;

-	public GS<GM<GM<?, ?, ?>.Generic<?,?,?>,GM<?, ?, ?>.Generic<?,?,?>,GM<?, ?, ?>.Generic<?,?,?>>.Generic<?,?,?>>.Generic<?> sgsm_www;

-	public GS<GM<Object, Exception, RuntimeException>.Generic<Object, Exception, RuntimeException>>.Generic<Exception> sgsm_obj;

-	public GM<GS<?>.Generic<?>, GS<?>.Generic<?>, GS<?>.Generic<?>>.Generic<?,?,?> sgms_wld;

-	public GM<GS<?>.Generic<?>, GS<GS<?>.Generic<?>>.Generic<?>, GS<GS<GS<?>.Generic<?>>.Generic<?>>.Generic<?>>.Generic<?,?,?> sgms_www;

-	public GM<GS<Object>.Generic<?>, GS<? extends Throwable>.Generic<?>, GS<? super RuntimeException>.Generic<?>>.Generic<?,?,?> sgms_obj;

-	// qualified name

-	public g3.t.def.GS<g3.t.def.GM<?, ?, ?>.Generic<?, ?, ?>>.Generic<?> qgsm_wld;

-	public g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?, ?, ?>.Generic<?,?,?>,g3.t.def.GM<?, ?, ?>.Generic<?,?,?>,g3.t.def.GM<?, ?, ?>.Generic<?,?,?>>.Generic<?,?,?>>.Generic<?> qgsm_www;

-	public g3.t.def.GS<g3.t.def.GM<Object, Exception, RuntimeException>.Generic<Object, Exception, RuntimeException>>.Generic<Exception> qgsm_obj;

-	public g3.t.def.GM<g3.t.def.GS<?>.Generic<?>, g3.t.def.GS<?>.Generic<?>, g3.t.def.GS<?>.Generic<?>>.Generic<?,?,?> qgms_wld;

-	public g3.t.def.GM<g3.t.def.GS<?>.Generic<?>, g3.t.def.GS<g3.t.def.GS<?>.Generic<?>>.Generic<?>, g3.t.def.GS<g3.t.def.GS<g3.t.def.GS<?>.Generic<?>>.Generic<?>>.Generic<?>>.Generic<?,?,?> qgms_www;

-	public g3.t.def.GM<g3.t.def.GS<Object>.Generic<?>, g3.t.def.GS<? extends Throwable>.Generic<?>, g3.t.def.GS<? super RuntimeException>.Generic<?>>.Generic<?,?,?> qgms_obj;

-	

-	{

-		sgsm_wld.toString();

-		sgsm_www.toString();

-		sgsm_obj.toString();

-		sgms_wld.toString();

-		sgms_www.toString();

-		sgms_obj.toString();

-		qgsm_wld.toString();

-		qgsm_www.toString();

-		qgsm_obj.toString();

-		qgms_wld.toString();

-		qgms_www.toString();

-		qgms_obj.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R4.js
deleted file mode 100644
index 741f446..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g3/t/ref/R4.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*

- * package g3.t.ref is second package to define types which contain

- * references (ref) to generic (g1) types (t)

- */

-package g3.t.ref;

-

-import g3.t.def.NGM;

-import g3.t.def.NGS;

-

-/*

- * This type is used to test references to generic type with nested parameterized types

- */

-public class R4 {

-	// simple name

-	public NGS.Generic<NGM.Generic<?, ?, ?>> sgsm_wld;

-	public NGS.Generic<NGM.Generic<NGM.Generic<?, ?, ?>,NGM.Generic<?, ?, ?>,NGM.Generic<?, ?, ?>>> sgsm_www;

-	public NGS.Generic<NGM.Generic<Object, Exception, RuntimeException>> sgsm_obj;

-	public NGM.Generic<NGS.Generic<?>, NGS.Generic<?>, NGS.Generic<?>> sgms_wld;

-	public NGM.Generic<NGS.Generic<?>, NGS.Generic<NGS.Generic<?>>, NGS.Generic<NGS.Generic<NGS.Generic<?>>>> sgms_www;

-	public NGM.Generic<NGS.Generic<Object>, NGS.Generic<? extends Throwable>, NGS.Generic<? super RuntimeException>> sgms_obj;

-	// qualified name

-	public g3.t.def.NGS.Generic<g3.t.def.NGM.Generic<?, ?, ?>> qgsm_wld;

-	public g3.t.def.NGS.Generic<g3.t.def.NGM.Generic<g3.t.def.NGM.Generic<?, ?, ?>, g3.t.def.NGM.Generic<?, ?, ?>, g3.t.def.NGM.Generic<?, ?, ?>>> qgsm_www;

-	public g3.t.def.NGS.Generic<g3.t.def.NGM.Generic<java.lang.Object, java.lang.Exception, java.lang.RuntimeException>> qgsm_obj;

-	public g3.t.def.NGM.Generic<g3.t.def.NGS.Generic<?>, g3.t.def.NGS.Generic<?>, g3.t.def.NGS.Generic<?>> qgms_wld;

-	public g3.t.def.NGM.Generic<g3.t.def.NGS.Generic<?>, g3.t.def.NGS.Generic<g3.t.def.NGS.Generic<?>>, g3.t.def.NGS.Generic<g3.t.def.NGS.Generic<g3.t.def.NGS.Generic<?>>>> qgms_www;

-	public g3.t.def.NGM.Generic<g3.t.def.NGS.Generic<java.lang.Object>, g3.t.def.NGS.Generic<? extends java.lang.Throwable>, g3.t.def.NGS.Generic<? super java.lang.RuntimeException>> qgms_obj;

-	

-	{

-		sgsm_wld.toString();

-		sgsm_www.toString();

-		sgsm_obj.toString();

-		sgms_wld.toString();

-		sgms_www.toString();

-		sgms_obj.toString();

-		qgsm_wld.toString();

-		qgsm_www.toString();

-		qgsm_obj.toString();

-		qgms_wld.toString();

-		qgms_www.toString();

-		qgms_obj.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R1.js
deleted file mode 100644
index 886eea6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R1.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*

- * package g4.v.ref is a package to define method which define and contain

- * references (ref) to local variables (v) based on parameterized types

- */

-package g4.v.ref;

-

-import g1.t.s.def.Generic;

-

-/*

- * This type is used to test declaration and references to local variables

- */

-public class R1 {

-	void simple_name(

-		Generic<Object> gen_obj,

-		Generic<Exception> gen_exc,

-		Generic<? extends Throwable> gen_thr,

-		Generic<? super RuntimeException> gen_run)

-	{

-		gen_obj.toString();

-		gen_exc.toString();

-		gen_thr.toString();

-		gen_run.toString();

-	}

-	void qualified_name() {

-		g1.t.s.def.Generic<Object> gen_obj = new Generic<Object>();

-		g1.t.s.def.Generic<Exception> gen_exc = new Generic<Exception>();

-		g1.t.s.def.Generic<? extends Throwable> gen_thr = new Generic<? extends Throwable>();

-		g1.t.s.def.Generic<? super RuntimeException> gen_run = new Generic<? super RuntimeException>();

-

-		gen_obj.toString();

-		gen_exc.toString();

-		gen_thr.toString();

-		gen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R2.js
deleted file mode 100644
index 4d93056..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R2.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*

- * package g4.v.ref is a package to define method which define and contain

- * references (ref) to local variables (v) based on parameterized types

- */

-package g4.v.ref;

-

-import g1.t.s.def.NonGeneric;

-

-

-/*

- * This type is used to test declaration and references to local variables

- */

-public class R2 {

-	void simple_name() {

-		NonGeneric.GenericMember<Object> gen_obj = new NonGeneric().new GenericMember<Object>();

-		NonGeneric.GenericMember<Exception> gen_exc = new NonGeneric().new GenericMember<Exception>();

-		NonGeneric.GenericMember<? extends Throwable> gen_thr = new NonGeneric().new GenericMember<Exception>();

-		NonGeneric.GenericMember<? super RuntimeException> gen_run = new NonGeneric().new GenericMember<Exception>();

-

-		gen_obj.toString();

-		gen_exc.toString();

-		gen_thr.toString();

-		gen_run.toString();

-	}

-	void qualified_name(

-		g1.t.s.def.NonGeneric.GenericMember<Object> gen_obj,

-		g1.t.s.def.NonGeneric.GenericMember<Exception> gen_exc,

-		g1.t.s.def.NonGeneric.GenericMember<? extends Throwable> gen_thr,

-		g1.t.s.def.NonGeneric.GenericMember<? super RuntimeException> gen_run)

-	{

-		gen_obj.toString();

-		gen_exc.toString();

-		gen_thr.toString();

-		gen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R3.js
deleted file mode 100644
index 0887a3a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R3.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*

- * package g3.t.ref is second package to define types which contain

- * references (ref) to generic (g1) types (t)

- */

-package g4.v.ref;

-

-import g1.t.s.def.Generic;

-

-/*

- * This type is used to test references to generic type with nested parameterized types

- */

-public class R3 {

-	void simple_name(

-		Generic<Object>.MemberGeneric<Object> gen_obj,

-		Generic<Exception>.MemberGeneric<Exception> gen_exc,

-		Generic<? extends Throwable>.MemberGeneric<? extends Throwable> gen_thr,

-		Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException> gen_run)

-	{

-		gen_obj.toString();

-		gen_exc.toString();

-		gen_thr.toString();

-		gen_run.toString();

-	}

-	void qualified_name() {

-		g1.t.s.def.Generic<Object>.MemberGeneric<Object> gen_obj = new Generic().new MemberGeneric<Object>();

-		g1.t.s.def.Generic<Exception>.MemberGeneric<Exception> gen_exc = new Generic().new MemberGeneric<Exception>();

-		g1.t.s.def.Generic<? extends Throwable>.MemberGeneric<? extends Throwable> gen_thr = new Generic().new MemberGeneric<Exception>();

-		g1.t.s.def.Generic<? super RuntimeException>.MemberGeneric<? super RuntimeException> gen_run = new Generic().new MemberGeneric<Exception>();

-

-		gen_obj.toString();

-		gen_exc.toString();

-		gen_thr.toString();

-		gen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R4.js
deleted file mode 100644
index 1edb7e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R4.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*

- * package g3.t.ref is second package to define types which contain

- * references (ref) to generic (g1) types (t)

- */

-package g4.v.ref;

-

-import g1.t.s.def.Generic;

-

-/*

- * This type is used to test references to generic type with nested parameterized types

- */

-public class R4 {

-	void simple_name() {

-		Generic<Object>.Member gen_obj = new Generic<Object>().new Member();

-		Generic<Exception>.Member gen_exc = new Generic<Exception>().new Member();

-		Generic<? extends Throwable>.Member gen_thr = new Generic<? extends Throwable>().new Member();

-		Generic<? super RuntimeException>.Member gen_run = new Generic<? super RuntimeException>().new Member();

-

-		gen_obj.toString();

-		gen_exc.toString();

-		gen_thr.toString();

-		gen_run.toString();

-	}

-	void qualified_name(

-		g1.t.s.def.Generic<Object>.Member gen_obj,

-		g1.t.s.def.Generic<Exception>.Member gen_exc,

-		g1.t.s.def.Generic<? extends Throwable>.Member gen_thr,

-		g1.t.s.def.Generic<? super RuntimeException>.Member gen_run)

-	{

-		gen_obj.toString();

-		gen_exc.toString();

-		gen_thr.toString();

-		gen_run.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R5.js
deleted file mode 100644
index 24348da..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g4/v/ref/R5.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*

- * package g4.v.ref is a package to define method which define and contain

- * references (ref) to local variables (v) based on parameterized types

- */

-package g4.v.ref;

-

-import g3.t.def.GM;

-import g3.t.def.GS;

-

-/*

- * This type is used to test declaration and references to local variables

- */

-public class R5 {

-	void simple_name() {

-		GS<GM<?, ?, ?>> gen_wld = new GS<GM<?, ?, ?>>();

-		GS<GM<GM<?, ?, ?>,GM<?, ?, ?>,GM<?, ?, ?>>> gen_www = new GS<GM<GM<?, ?, ?>,GM<?, ?, ?>,GM<?, ?, ?>>>();

-		GS<GM<Object, Exception, RuntimeException>> gen_obj = new GS<GM<Object, Exception, RuntimeException>>();

-		gen_wld.toString();

-		gen_www.toString();

-		gen_obj.toString();

-	}

-	void simple_name(

-		GM<GS<?>, GS<?>, GS<?>> gen_wld, // simple

-		GM<GS<?>, GS<GS<?>>, GS<GS<GS<?>>>> gen_www, // simple

-		GM<GS<Object>, GS<? extends Throwable>, GS<? super RuntimeException>> gen_obj) // simple

-	{

-		gen_wld.toString();

-		gen_www.toString();

-		gen_obj.toString();

-	}

-	void qualified_name (

-		g3.t.def.GS<g3.t.def.GM<?, ?, ?>> gen_wld, // qualified

-		g3.t.def.GS<g3.t.def.GM<g3.t.def.GM<?, ?, ?>, g3.t.def.GM<?, ?, ?>, g3.t.def.GM<?, ?, ?>>> gen_www, // qualified

-		g3.t.def.GS<g3.t.def.GM<java.lang.Object, java.lang.Exception, java.lang.RuntimeException>> gen_obj) // qualified

-	{

-		gen_wld.toString();

-		gen_www.toString();

-		gen_obj.toString();

-	}

-	void qualified_name () {

-		g3.t.def.GM<g3.t.def.GS<?>, g3.t.def.GS<?>, g3.t.def.GS<?>> gen_wld = new GM<GS<?>, GS<?>, GS<?>>();

-		g3.t.def.GM<g3.t.def.GS<?>, g3.t.def.GS<g3.t.def.GS<?>>, g3.t.def.GS<g3.t.def.GS<g3.t.def.GS<?>>>> gen_www = new GM<GS<?>, GS<GS<?>>, GS<GS<GS<?>>>>();

-		g3.t.def.GM<g3.t.def.GS<java.lang.Object>, g3.t.def.GS<? extends java.lang.Throwable>, g3.t.def.GS<? super java.lang.RuntimeException>> gen_obj = new GM<GS<Object>, GS<? extends Throwable>, GS<? super RuntimeException>>();

-		gen_wld.toString();

-		gen_www.toString();

-		gen_obj.toString();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/def/Multiple.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/def/Multiple.js
deleted file mode 100644
index 125e889..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/def/Multiple.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*

- * package g5.m.def is the package to define (def) generic (g5) methods (m)

- * 

- * We have 5 typical methods:

- * 	- standard: not generic, parameters is generic type parameter

- * 	- generic: multiple method type parameters

- * 	- return generic type with multiple type arguments

- * 	- method parameter which is several parameterized types

- * 	- mix of all previous ones

- */

-package g5.c.def;

-public class Multiple<T1, T2, T3> {

-	public Multiple(T1 t1, T2 t2, T3 t3) {}

-	public <U1, U2, U3> Multiple(Multiple<T1, T2, T3> gst, U1 u1, U2 u2, U3 u3) {}

-	public Multiple(Multiple<T1, T2, T3> gst) {}

-	public <U1, U2, U3> Multiple(U1 u1, U2 u2, U3 u3, Multiple<T1, T2, T3> gst) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/def/Single.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/def/Single.js
deleted file mode 100644
index a4d591e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/def/Single.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*

- * package g5.m.def is the package to define (def) generic (g5) methods (m)

- * 

- * We have 4 typical constructors:

- * 	- standard: not generic, parameters is generic type parameter

- * 	- generic: one single method type parameter

- * 	- method parameter which is a parameterized type

- * 	- mix of all previous ones

- */

-package g5.c.def;

-public class Single<T> {

-	public Single(T t) {}

-	public <U> Single(T t, U u) {}

-	public Single(Single<T> gst) {}

-	public <U> Single(U u, Single<T> gst) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefMultiple.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefMultiple.js
deleted file mode 100644
index f307e60..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefMultiple.js
+++ /dev/null
@@ -1,27 +0,0 @@
-package g5.c.ref;

-

-import g5.c.def.*;

-

-public class RefMultiple {

-	// Test constructors calls to a generic parameterized with Object

-	void testObject() {

-		Multiple<Object, Object, Object> gm = new Multiple<Object, Object, Object>(new Object(), new Object(), new Object());

-		new <Object, Throwable, Exception>Multiple<Object, Object, Object>(gm, new Object(), new Throwable(), new Exception());

-		new Multiple<Object, Object, Object>(gm);

-		new <Object, Throwable, Exception>Multiple<Object, Object, Object>(new Object(), new Throwable(), new Exception(), gm);

-	}

-	// Test constructors calls to a generic parameterized with Exception

-	void testException() {

-		Multiple<Exception, Exception, Exception> gm = new Multiple<Exception, Exception, Exception>(new Exception(), new Exception(), new Exception());

-		new <Exception, Exception, Exception>Multiple<Exception, Exception, Exception>(gm, new Exception(),new Exception(),new Exception());

-		new Multiple<Exception, Exception, Exception>(gm);

-		new <Exception, Exception, Exception>Multiple<Exception, Exception, Exception>(new Exception(),new Exception(),new Exception(), gm);

-	}

-	// Test constructors calls to a generic parameterized with RuntimeException

-	void testRuntimeException() {

-		Multiple<RuntimeException, RuntimeException, RuntimeException> gm = new Multiple<RuntimeException, RuntimeException, RuntimeException>(new RuntimeException(), new RuntimeException(), new RuntimeException());

-		new <RuntimeException, RuntimeException, RuntimeException>Multiple<RuntimeException, RuntimeException, RuntimeException>(gm, new RuntimeException(),new RuntimeException(),new RuntimeException());

-		new Multiple<RuntimeException, RuntimeException, RuntimeException>(gm);

-		new <RuntimeException, RuntimeException, RuntimeException>Multiple<RuntimeException, RuntimeException, RuntimeException>(new RuntimeException(),new RuntimeException(),new RuntimeException(), gm);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefRaw.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefRaw.js
deleted file mode 100644
index 1304ce9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefRaw.js
+++ /dev/null
@@ -1,22 +0,0 @@
-package g5.c.ref;

-

-import g5.c.def.*;

-

-

-// Test methods calls to a raw types

-public class RefRaw {

-	// Single type parameter generic type

-	void testSingle() {

-		Single gs = new Single(new Object());

-		new Single(new Object(), new Throwable()); 

-		new Single(gs);

-		new Single(new Object(), gs);

-	}

-	// Multiple type parameters generic type

-	void testMultiple() {

-		Multiple gm = new Multiple(new Object(), new Object(), new Object());

-		new Multiple(gm, new Object(), new Throwable(), new Exception());

-		new Multiple(gm);

-		new Multiple(new Object(), new Throwable(), new Exception(), gm);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefSingle.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefSingle.js
deleted file mode 100644
index 930b99e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/c/ref/RefSingle.js
+++ /dev/null
@@ -1,27 +0,0 @@
-package g5.c.ref;

-

-import g5.c.def.Single;

-

-public class RefSingle {

-	// Test constructors calls to a generic parameterized with Object

-	void testObject() {

-		Single<Object> gs = new Single<Object>(new Object());

-		new <Throwable>Single<Object>(new Object(), new Throwable()); 

-		new Single<Object>(gs);

-		new <Exception>Single<Object>(new Exception(), gs);

-	}

-	// Test constructors calls to a generic parameterized with Exception

-	void testException() {

-		Single<Exception> gs = new Single<Exception>(new Exception());

-		new <Exception>Single<Exception>(new Exception(), new Exception());

-		new Single<Exception>(gs);

-		new <Exception>Single<Exception>(new Exception(), gs);

-	}

-	// Test constructors calls to a generic parameterized with RuntimeException

-	void testRuntimeException() {

-		Single<RuntimeException> gs = new Single<RuntimeException>(new RuntimeException());

-		new <RuntimeException>Single<RuntimeException>(new RuntimeException(), new RuntimeException());

-		new Single<RuntimeException>(gs);

-		new <RuntimeException>Single<RuntimeException>(new RuntimeException(), gs);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/def/Multiple.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/def/Multiple.js
deleted file mode 100644
index 99e1313..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/def/Multiple.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*

- * package g5.m.def is the package to define (def) generic (g5) methods (m)

- * 

- * We have 5 typical methods:

- * 	- standard: not generic, parameters is generic type parameter

- * 	- generic: multiple method type parameters

- * 	- return generic type with multiple type arguments

- * 	- method parameter which is several parameterized types

- * 	- mix of all previous ones

- */

-package g5.m.def;

-public class Multiple<T1, T2, T3> {

-	public void standard(T1 t1, T2 t2, T3 t3) {

-	}

-	public <U1, U2, U3> T1 generic(U1 u1, U2 u2, U3 u3) {

-		return null;

-	}

-	public Multiple<T1, T2, T3> returnParamType() {

-		return new Multiple<T1, T2, T3>();

-	}

-	public void paramTypesArgs(Single<T1> st1, Single<T2> st2, Single<T3> st3, Multiple<T1, T2, T3> gmt) {}

-	public <U1, U2 extends Exception, U3 extends RuntimeException> Multiple<T1, T2, T3> complete(U1 u1, U2 u2, U3 u3, Multiple<T1, T2, T3> g) {

-		if (u1 == null || u2==null || u3==null) {

-			if (g == null) {

-				return null;

-			}

-			return g;

-		} else {

-			return new Multiple<T1, T2, T3>().returnParamType();

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/def/Single.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/def/Single.js
deleted file mode 100644
index 8eddb21..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/def/Single.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*

- * package g5.m.def is the package to define (def) generic (g5) methods (m)

- * 

- * We have 5 typical methods:

- * 	- standard: not generic, parameters is generic type parameter

- * 	- generic: one single method type parameter

- * 	- return generic type

- * 	- method parameter which is a parameterized type

- * 	- mix of all previous ones

- */

-package g5.m.def;

-public class Single<T> {

-	public void standard(T t) {

-	}

-	public <U> T generic(U u) {

-		return null;

-	}

-	public Single<T> returnParamType() {

-		return new Single<T>();

-	}

-	public void paramTypesArgs(Single<T> gst) {}

-	public <U> Single<T> complete(U u, Single<T> g) {

-		if (u == null) {

-			if (g == null) {

-				return null;

-			}

-			return g;

-		} else {

-			return new Single<T>().returnParamType();

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefMultiple.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefMultiple.js
deleted file mode 100644
index b1c934b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefMultiple.js
+++ /dev/null
@@ -1,42 +0,0 @@
-package g5.m.ref;

-

-import g5.m.def.*;

-

-public class RefMultiple {

-	// Test methods calls

-	void test() {

-		Multiple<Object, Exception, RuntimeException> gm = new Multiple<Object, Exception, RuntimeException>();

-		// Test reference to a standard method

-		gm.standard(new Object(), new Exception(), new RuntimeException());

-		// Test reference to a generic method

-		gm.<Object, Exception, RuntimeException>generic(new Object(), new Exception(), new RuntimeException());

-		// Test reference to a method returning a parameterized type

-		gm = gm.returnParamType();

-		// Test reference to a method with parameterized type arguments

-		gm.paramTypesArgs(new Single<Object>(), new Single<Exception>(), new Single<RuntimeException>(), gm);

-		// Test reference to a generic method returning a param type with param type parameters (=full)

-		gm = gm.<Object, Exception, RuntimeException>complete(new Object(), new Exception(), new RuntimeException(), gm);

-	}

-	// Test methods calls to a generic parameterized with ?

-	void testUnbound() {

-		Multiple<?,?,?> gm = new Multiple();

-		gm.paramTypesArgs(new Single<Object>(), new Single<Object>(), new Single<Object>(), gm);

-		gm = gm.returnParamType();

-	}

-	// Test methods calls to a generic parameterized with ? extends Throwable

-	void testExtends() {

-		Multiple<Object, ? extends Throwable, ? extends Exception> gm = new Multiple<Object, Exception, RuntimeException>();

-		gm.<Object, RuntimeException, RuntimeException>generic(new Object(), new RuntimeException(), new RuntimeException());

-		gm.paramTypesArgs(new Single<Object>(), new Single<Throwable>(), new Single<Exception>(), gm);

-		gm = gm.returnParamType();

-		gm = gm.<Object, RuntimeException, RuntimeException>complete(new Object(), new RuntimeException(), new RuntimeException(), gm);

-	}

-	// Test methods calls to a generic parameterized with ? super RuntimeException

-	void testSuper() {

-		Multiple<Object, ? super RuntimeException, ? super IllegalMonitorStateException> gm = new Multiple<Object, Exception, RuntimeException>();

-		gm.<Object, RuntimeException, IllegalMonitorStateException>generic(new Object(), new RuntimeException(), new IllegalMonitorStateException());

-		gm.paramTypesArgs(new Single<Object>(), new Single<RuntimeException>(), new Single<RuntimeException>(), gm);

-		gm = gm.returnParamType();

-		gm = gm.<Object, RuntimeException, IllegalMonitorStateException>complete(new Object(), new RuntimeException(), new IllegalMonitorStateException(), gm);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefRaw.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefRaw.js
deleted file mode 100644
index 6bc84c5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefRaw.js
+++ /dev/null
@@ -1,26 +0,0 @@
-package g5.m.ref;

-

-import g5.m.def.*;

-

-

-// Test methods calls to a raw types

-public class RefRaw {

-	// Single type parameter generic type

-	void testSingle() {

-		Single gs = new Single();

-		gs.standard(new Exception());

-		gs.generic(new Exception());

-		gs = gs.returnParamType();

-		gs.paramTypesArgs(gs);

-		gs.complete(new Exception(), gs);

-	}

-	// Multiple type parameters generic type

-	void testMultiple() {

-		Multiple gm = new Multiple();

-		gm.standard(new Object(), new Exception(), new RuntimeException());

-		gm.generic(new Object(), new Exception(), new RuntimeException());

-		gm = gm.returnParamType();

-		gm.paramTypesArgs(new Single<Object>(), new Single<Exception>(), new Single<RuntimeException>(), gm);

-		gm = gm.complete(new Object(), new Exception(), new RuntimeException(), gm);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefSingle.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefSingle.js
deleted file mode 100644
index 7ba355b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g5/m/ref/RefSingle.js
+++ /dev/null
@@ -1,59 +0,0 @@
-package g5.m.ref;

-

-import g5.m.def.Single;

-

-public class RefSingle {

-	// Test methods calls to a generic parameterized with Object

-	void testObject() {

-		Single<Object> gs = new Single<Object>();

-		// Test reference to a standard method

-		gs.standard(new Object());

-		// Test reference to a generic method

-		gs.<Object>generic(new Object());

-		// Test reference to a method returning a parameterized type

-		gs = gs.returnParamType();

-		// Test reference to a method with parameterized type arguments

-		gs.paramTypesArgs(gs);

-		// Test reference to a generic method returning a param type with param type parameters

-		gs.<Object>complete(new Object(), gs);

-	}

-	// Test methods calls to a generic parameterized with Exception

-	void testException() {

-		Single<Exception> gs = new Single<Exception>();

-		gs.standard(new Exception());

-		gs.<Exception>generic(new Exception());

-		gs = gs.returnParamType();

-		gs.paramTypesArgs(gs);

-		gs.<Exception>complete(new Exception(), gs);

-	}

-	// Test methods calls to a generic parameterized with RuntimeException

-	void testRuntimeException() {

-		Single<RuntimeException> gs = new Single<RuntimeException>();

-		gs.standard(new RuntimeException());

-		gs.<RuntimeException>generic(new RuntimeException());

-		gs = gs.returnParamType();

-		gs.paramTypesArgs(gs);

-		gs.<RuntimeException>complete(new RuntimeException(), gs);

-	}

-	// Test methods calls to a generic parameterized with ?

-	void testUnbound() {

-		Single<?> gs = new Single();

-		gs.paramTypesArgs(gs);

-		gs = gs.returnParamType();

-		gs.<String>complete(new String(), gs);

-	}

-	// Test methods calls to a generic parameterized with ? extends Throwable

-	void testExtends() {

-		Single<? extends Throwable> gs = new Single<Throwable>();

-		gs.paramTypesArgs(gs);

-		gs.returnParamType();

-		gs.<Throwable>complete(new Throwable(), gs);

-	}

-	// Test methods calls to a generic parameterized with ? super RuntimeException

-	void testSuper() {

-		Single<? super RuntimeException> gs = new Single<RuntimeException>();

-		gs.paramTypesArgs(gs);

-		gs = gs.returnParamType();

-		gs.<RuntimeException>complete(new RuntimeException(), gs);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/def/List.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/def/List.js
deleted file mode 100644
index 94c3475..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/def/List.js
+++ /dev/null
@@ -1,2 +0,0 @@
-package g6.t.def;

-public class List<T> {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/def/Table.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/def/Table.js
deleted file mode 100644
index 3dbd843..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/def/Table.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package g6.t.def;

-public class Table<T, U> {

-	public class Entry<T, U> {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/Multiple.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/Multiple.js
deleted file mode 100644
index b71d741..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/Multiple.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package g6.t.ref;

-import g6.t.def.Table;

-public class Multiple {

-	Table.Entry entry;

-	Table<String, Exception>.Entry<String, Exception> entryException;

-	Table<String, Exception>.Entry<String, Exception>[] entryExceptionArray;

-	Table<String, Table<String, Exception>.Entry<String, Exception>[]>.Entry<String, Table<String, Exception>.Entry<String, Exception>[]> tableOfEntryExceptionArray;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/QualifMultiple.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/QualifMultiple.js
deleted file mode 100644
index e3e70b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/QualifMultiple.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package g6.t.ref;

-public class QualifMultiple {

-	g6.t.def.Table<String, Exception>.Entry<String, Exception> entryException;

-	g6.t.def.Table<String, Exception>.Entry<String, Exception>[] entryExceptionArray;

-	g6.t.def.Table<String, g6.t.def.Table<String, Exception>.Entry<String, Exception>[]>.Entry<String, g6.t.def.Table<String, Exception>.Entry<String, Exception>[]> tableOfEntryExceptionArray;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/QualifSingle.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/QualifSingle.js
deleted file mode 100644
index 9179ec2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/QualifSingle.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package g6.t.ref;

-public class QualifSingle {

-	g6.t.def.List<Exception> exceptionList;

-	g6.t.def.List<Exception>[] exceptionListArray;

-	g6.t.def.List<g6.t.def.List<Exception>[]> exceptionListArrayList;

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/Single.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/Single.js
deleted file mode 100644
index 0771225..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/g6/t/ref/Single.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package g6.t.ref;

-import g6.t.def.List;

-public class Single {

-	List list;

-	List<Exception> exceptionList;

-	List<Exception>[] exceptionListArray;

-	List<List<Exception>[]> exceptionListArrayList;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p1/X.js
deleted file mode 100644
index 0ec3703..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p1/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p1;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p1/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p1/Y.js
deleted file mode 100644
index c896945..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p1/Y.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p1;

-public class Y<E> {

-	Object foo() {

-		return new Y<X>();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p2/X.js
deleted file mode 100644
index 5971170..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p2/X.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package p2;

-public class X<E> {

-	public X() {

-	}

-	public X(E e) {

-	}

-	public void foo(E e) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p2/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p2/Y.js
deleted file mode 100644
index 51ac5ff..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p2/Y.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package p2;

-public class Y {

-	void bar() {

-		X<Object> x = new X<Object>();

-		x.foo(this);

-	}

-	Object foo() {

-		return new X<Object>(this);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p3/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p3/X.js
deleted file mode 100644
index d107b10..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/p3/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p3;

-public class X<T> {

-	T t;

-}

-class T {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/A.js
deleted file mode 100644
index f0dcbf6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/A.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package s1;

-import static s1.pack.age.S.*;

-import static s1.pack.age.S.out;

-import static s1.pack.age.S.M.in;

-

-public class A {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/B.js
deleted file mode 100644
index e6311b4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/B.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package s1;

-import static s1.pack.age.S.*;

-import static s1.pack.age.S.M.*;

-

-public class B {

-   public void foo() {

-      String so = out;

-	  String si = in;

-   }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/C.js
deleted file mode 100644
index 10b6d17..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/C.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package s1; 

-import static s1.pack.age.S.out;

-import static s1.pack.age.S.M.in;

-

-public class C {

-   public void foo() {

-      String so = out;

-	  String si = in;

-   }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/D.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/D.js
deleted file mode 100644
index 9910dee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/D.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package s1; 

-import static s1.pack.age.S.M;

-

-public class D {

-   public void foo() {

-	  M m = new M();

-	  String si = m.in;

-   }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/pack/age/S.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/pack/age/S.js
deleted file mode 100644
index d540a64..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s1/pack/age/S.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package s1.pack.age;

-

-public class S {

-    public final static String out = "out";

-    public static class M {

-	    public final static String in = "in";

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/A.js
deleted file mode 100644
index 1d97da8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package s2;

-import static s2.pack.age.S.*;

-import static s2.pack.age.S.out;

-import static s2.pack.age.S.M.in;

-

-public class A {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/B.js
deleted file mode 100644
index 3e29cb7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/B.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package s2;

-import static s2.pack.age.S.*;

-import static s2.pack.age.S.M.*;

-

-public class B {

-   public void foo() {

-      out();

-	  in();

-   }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/C.js
deleted file mode 100644
index fa560d2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/C.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package s2; 

-import static s2.pack.age.S.out;

-import static s2.pack.age.S.M.in;

-

-public class C {

-   public void foo() {

-      out();

-	  in();

-   }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/D.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/D.js
deleted file mode 100644
index 717da43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/D.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package s2; 

-import static s2.pack.age.S.M;

-

-public class D {

-   public void foo() {

-	  M m = new M();

-	  m.in();

-   }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/pack/age/S.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/pack/age/S.js
deleted file mode 100644
index 12cf0cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/s2/pack/age/S.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package s2.pack.age;

-

-public class S {

-    public final static String out() { return "out"; }

-    public static class M {

-	    public final static String in() { return "in"; }

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/v1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/v1/X.js
deleted file mode 100644
index 1b52166..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearch15/src/v1/X.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package v1;

-class X {

-	void vargs(int a, int b) {}

-	void vargs(int a, int... args) {}

-	void vargs(String... args) {}

-	void vargs(String str, boolean... args) {}

-	void bar() {

-		vargs(1, 2);

-		vargs(1, 2, 3);

-		vargs(1, 2, 3, 4, 5, 6);

-		vargs("x", "a","'b", "c");

-		vargs("x", false, true);

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/.classpath
deleted file mode 100644
index a21e94d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/.classpath
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry excluding="b81556/b/" kind="src" path="src"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-	<classpathentry kind="lib" path="lib/test81556.jar" sourcepath="/JavaSearchBugs/lib/test81556.jar" rootpath=""/>
-	<classpathentry kind="lib" path="lib/test75816.jar" sourcepath="/JavaSearchBugs/lib/test75816.jar" rootpath=""/>
-	<classpathentry kind="lib" path="lib/b86293.jar"/>
-	<classpathentry kind="lib" path="lib/b87627.jar" sourcepath="/JavaSearchBugs/lib/b87627.jar" rootpath=""/>
-	<classpathentry kind="lib" path="lib/b110422.jar" sourcepath="" rootpath=""/>
-	<classpathentry kind="lib" path="lib/b124469.jar" sourcepath="/JavaSearchBugs/lib/b124469.jar" rootpath=""/>
-	<classpathentry kind="lib" path="lib/b124645.jar"/>
-	<classpathentry kind="lib" path="lib/b125178.jar" sourcepath="" rootpath=""/>
-	<classpathentry kind="lib" path="lib/b126330.jar"/>
-	<classpathentry kind="lib" path="lib/b128877.jar" sourcepath="/JavaSearchBugs/lib/b128877.jar" rootpath=""/>
-	<classpathentry kind="lib" path="lib/b137984.jar"/>
-	<classpathentry kind="lib" path="lib/JavaSearch15.jar" sourcepath="/JavaSearchBugs/lib/JavaSearch15.jar" rootpath=""/>
-	<classpathentry sourcepath="lib" kind="lib" path="lib"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/.project
deleted file mode 100644
index c909b4d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>JavaSearchBugs</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/JavaSearch15.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/JavaSearch15.jar
deleted file mode 100644
index 2ddfd2a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/JavaSearch15.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b110422.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b110422.jar
deleted file mode 100644
index 2554026..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b110422.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b123679.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b123679.jar
deleted file mode 100644
index 8da5f6b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b123679.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b124469.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b124469.jar
deleted file mode 100644
index 2f33d51..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b124469.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b124645.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b124645.jar
deleted file mode 100644
index 2fc2c47..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b124645.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b125178.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b125178.jar
deleted file mode 100644
index 1151a3e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b125178.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b126330.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b126330.jar
deleted file mode 100644
index 44a7f6c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b126330.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b128877.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b128877.jar
deleted file mode 100644
index 630d14b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b128877.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b137984.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b137984.jar
deleted file mode 100644
index 57d998c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b137984.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b140156.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b140156.jar
deleted file mode 100644
index 20a2060..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b140156.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b148215.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b148215.jar
deleted file mode 100644
index 393c663..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b148215.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b164791.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b164791.jar
deleted file mode 100644
index 1c7affd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b164791.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b166348.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b166348.jar
deleted file mode 100644
index 6bbd439..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b166348.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b86293.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b86293.jar
deleted file mode 100644
index cf39059..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b86293.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b87627.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b87627.jar
deleted file mode 100644
index 426e679..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b87627.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b89848/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b89848/Test.js
deleted file mode 100644
index 1958c8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b89848/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package b89848;

-public class Test {

-	X x;

-	void foo() {

-		x.foo();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b89848/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b89848/X.js
deleted file mode 100644
index 0b7aab9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b89848/X.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package b89848;

-public class X {

-	String bar() { return ""; }

-	public void foo() {

-		new Object() {

-			public String toString() {

-				return bar();

-			}

-		};

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b95152.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b95152.jar
deleted file mode 100644
index 3c33ab0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/b95152.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/test75816.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/test75816.jar
deleted file mode 100644
index 324548e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/test75816.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/test81556.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/test81556.jar
deleted file mode 100644
index 8a963c8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/lib/test81556.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b108088/B108088.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b108088/B108088.js
deleted file mode 100644
index 5ba6d4b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b108088/B108088.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package b108088;

-class B108088 {

-	public void doit(A108088 pApp, String doitArg) {

-	    pApp.subroutine(1.2f);

-	}

-    

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b108088/Test108088.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b108088/Test108088.js
deleted file mode 100644
index 302ceaa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b108088/Test108088.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package b108088;

-class A108088 {

-    B108088 fB;

-    public void subroutine(float subArg) {

-        subsub();

-    }

-    public void subsub() {

-    }

-    

-}

-public class Test108088 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b123679/pack/I123679.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b123679/pack/I123679.js
deleted file mode 100644
index eb46cb3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b123679/pack/I123679.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package b123679.pack;

-public interface I123679 {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b123679/test/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b123679/test/Test.js
deleted file mode 100644
index 618b99d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b123679/test/Test.js
+++ /dev/null
@@ -1,19 +0,0 @@
-package b123679.test;

-import b123679.pack.I123679;

-public class Test {

-	static class StaticClass {

-		class Member {

-			private I123679 parent;

-			Member(Object obj) {

-				if (obj instanceof I123679) {

-					parent = (I123679) obj;

-				} else {

-					parent = new I123679() {};

-				}

-			}

-			I123679 getParent() {

-				return parent;

-			}

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/T_124645.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/T_124645.js
deleted file mode 100644
index da9c20c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/T_124645.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package b124645;

-class C_124645 {}

-interface I_124645 {}

-

-public class T_124645 {

-    void m() {

-        new C_124645() {};

-        new I_124645() {};

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/test/A_124645.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/test/A_124645.js
deleted file mode 100644
index da32492..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/test/A_124645.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package b124645.test;

-import test.BE_124645;

-public class A_124645 extends BE_124645 { 

-    void m() {

-        new BE_124645() { /* anonymous */ }; 

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/test/X_124645.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/test/X_124645.js
deleted file mode 100644
index 1486fc6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/test/X_124645.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package b124645.test;

-import test.BE_124645;

-public class X_124645 extends BE_124645 { 

-    void m() {

-    	class Y_124645 extends BE_124645 {}

-    }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/xy/X_124645.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/xy/X_124645.js
deleted file mode 100644
index af74927..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/xy/X_124645.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package b124645.xy;

-import xy.BE_124645;

-public class X_124645 { 

-	class Y extends BE_124645 {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/xy/Y_124645.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/xy/Y_124645.js
deleted file mode 100644
index faebe8e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b124645/xy/Y_124645.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package b124645.xy;

-import xy.BE_124645;

-public class Y_124645 extends BE_124645 { 

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b127628/Test127628.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b127628/Test127628.js
deleted file mode 100644
index 300bdfc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b127628/Test127628.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package b127628;

-/** @deprecated */

-public class Test127628 {

-	class Member127628 {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b137984/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b137984/C.js
deleted file mode 100644
index b576dda..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b137984/C.js
+++ /dev/null
@@ -1,15 +0,0 @@
-package b137984;

-public class C {

-	C2 c2;

-	C2.C3 c3;

-	C(int c) {

-		c2 = new C2(c);

-		c3 = c2.new C3(c);

-	}

-	class C2 {

-		C2(int x) {}

-		class C3 {

-			C3(int x) {}

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/A.js
deleted file mode 100644
index cbebd57..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package b163984;

-public class A {

-	public static void main(String[] args) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/B.js
deleted file mode 100644
index 1357ff5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package b163984;

-public class B {

-	public static void main(String[] args) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/C.js
deleted file mode 100644
index 604a4fc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b163984/C.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package b163984;

-public class C {

-	public static void main(String[] args) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/A81556.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/A81556.js
deleted file mode 100644
index c77a28e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/A81556.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package b81556.a;

-

-import b81556.b.XX81556;

-

-public class A81556 {

-	void bar(XX81556 a) {

-		a.foo();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/B81556.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/B81556.js
deleted file mode 100644
index c513fe1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/B81556.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package b81556.a;

-

-

-public class B81556 {

-	void foo() {}

-	void bar() { foo(); }

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/X81556.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/X81556.js
deleted file mode 100644
index 3a15b65..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/a/X81556.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package b81556.a;

-public class X81556 {

-	public void foo() {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/b/XX81556.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/b/XX81556.js
deleted file mode 100644
index 626ce8d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b81556/b/XX81556.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package b81556.b;

-public class XX81556 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b86380/Annot.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b86380/Annot.js
deleted file mode 100644
index c409775..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b86380/Annot.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package b86380;

-public @interface Annot {

-	int field = 0;

-	int value();

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b95794/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b95794/Test.js
deleted file mode 100644
index 5d18346..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchBugs/src/b95794/Test.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package b95794;

-import static b95794.Test.Color.WHITE;

-import static b95794.Test.Color.BLACK;

-public class Test {

-    enum Color {WHITE, BLACK}

-    Test there;

-    public static void main(String[] args) {

-        Color c = BLACK;

-        switch(c) {

-        case BLACK:

-            break;

-        case WHITE:

-            break;

-        }

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/.classpath
deleted file mode 100644
index 216b064..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JCL_LIB"/>
-    <classpathentry exported="true" kind="lib" path="lib"/>
-    <classpathentry kind="output" path=""/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/.project
deleted file mode 100644
index c330715..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>JavaSearchMultipleProjects1</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/lib/p/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/lib/p/X.js
deleted file mode 100644
index 84aaf4d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects1/lib/p/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/.classpath
deleted file mode 100644
index 201bf03..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="/JavaSearchMultipleProjects1"/>
-    <classpathentry kind="var" path="JCL_LIB"/>
-    <classpathentry kind="lib" path="lib"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/.project
deleted file mode 100644
index 08c9e31..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/.project
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>JavaSearchMultipleProjects2</name>
-	<comment></comment>
-	<projects>
-		<project>JavaSearchMultipleProjects</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/lib/p/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/lib/p/Y.js
deleted file mode 100644
index ec2ef9d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/lib/p/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-public class Y {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/src/q/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/src/q/Z.js
deleted file mode 100644
index dc345b9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/JavaSearchMultipleProjects2/src/q/Z.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package q;

-import p.X;

-import p.Y;

-public class Z {

-  X onlyHereForTheImport = null;

-  Y alsoOnlyHereForTheImport = null;

-  void foo(){

-    p.X x = (p.X)null;

-    p.Y y = (p.Y)null;

-  }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/.settings/.jsdtscope
deleted file mode 100644
index 38e0319..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/.settings/.jsdtscope
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="src2"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="lib" path="zzz.jar" sourcepath="/Resolve/zzzsrc.zip"/>
-    <classpathentry kind="lib" path="p3.jar" sourcepath="/Resolve/p3src.zip"/>
-    <classpathentry kind="lib" path="jj.jar" sourcepath="/Resolve/jjsrc.zip"/>
-    <classpathentry kind="lib" path="test25888.jar" sourcepath="/Resolve/test25888src.zip"/>
-    <classpathentry kind="lib" path="test47177.jar" sourcepath="/Resolve/test47177src.zip"/>
-    <classpathentry kind="lib" path="test47214.jar" sourcepath="/Resolve/test47214.jar"/>
-    <classpathentry kind="lib" path="test0023.jar" sourcepath="/Resolve/test0023src.zip"/>
-    <classpathentry kind="lib" path="p4.jar"/>
-    <classpathentry kind="lib" path="class-folder"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCall.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCall.js
deleted file mode 100644
index 0362cfe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCall.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveConstructorCall {

-	public ResolveConstructorCall(){}

-	void foo(){

-		new ResolveConstructorCall();	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCallOfMemberType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCallOfMemberType.js
deleted file mode 100644
index 745ba8d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCallOfMemberType.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveConstructorCallOfMemberType {

-	class Inner {}

-	void foo(){

-		new Inner();	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCallOfMemberType2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCallOfMemberType2.js
deleted file mode 100644
index 1867a1b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/ResolveConstructorCallOfMemberType2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class ResolveConstructorCallOfMemberType2 {

-	class Inner {

-		public Inner() {}

-	}

-	void foo(){

-		new Inner();	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/test0101/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/test0101/Test.js
deleted file mode 100644
index 17bc2c2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/class-folder/test0101/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0101;

-

-public class Test<T> {

-	T field;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/jj.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/jj.jar
deleted file mode 100644
index 3bde51d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/jj.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/jjsrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/jjsrc.zip
deleted file mode 100644
index 5408409..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/jjsrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p3.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p3.jar
deleted file mode 100644
index efd52bf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p3.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p3src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p3src.zip
deleted file mode 100644
index e87e2c7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p3src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p4.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p4.jar
deleted file mode 100644
index 32f474a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p4.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p4src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p4src.zip
deleted file mode 100644
index 2f112c0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/p4src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveAbstractMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveAbstractMethod.js
deleted file mode 100644
index 067cc90..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveAbstractMethod.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class ResolveAbstractMethod {

-	void test(AbstractClass a){

-		a.foo();

-	}

-}

-abstract class AbstractClass implements SuperInterface {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArgumentName.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArgumentName.js
deleted file mode 100644
index 2a3c113..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArgumentName.js
+++ /dev/null
@@ -1,3 +0,0 @@
-	function foo( var1,  var2){

-	

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArrayLength.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArrayLength.js
deleted file mode 100644
index 14f29b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArrayLength.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveArrayLength {

-	public int foo() {

-		Object[] array = new Object[0];

-		return array.length;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArrayParameterInsideParent1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArrayParameterInsideParent1.js
deleted file mode 100644
index cb06495..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveArrayParameterInsideParent1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class ResolveArrayParameterInsideParent1 {

-	void test(int[] arg) {

-		Object var = new Object();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentName.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentName.js
deleted file mode 100644
index 767c8b6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentName.js
+++ /dev/null
@@ -1,6 +0,0 @@
-	function foo(){

-		try{

-		} catch(	var1){

-		} catch( var2){

-		}

-	}	

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentType1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentType1.js
deleted file mode 100644
index b5a75a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentType1.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class ResolveCatchArgumentType1 {

-	void foo() {

-		try {

-		} catch (X1.Y1 e) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentType2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentType2.js
deleted file mode 100644
index 0655c89..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveCatchArgumentType2.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class ResolveCatchArgumentType2 {

-	void foo() {

-		try {

-		} catch (X1.Y1 e) {

-		}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass1.js
deleted file mode 100644
index 71ea469..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass1.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import p1.*;

-

-public class ResolveClass1{

-	private X[] x;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass2.js
deleted file mode 100644
index 14bcae7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass2.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import p1.*;

-

-public class ResolveClass2{

-	public void foo() {

-		X x = null;	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass3.js
deleted file mode 100644
index c34ce38..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import p1.*;

-

-public class ResolveClass3{

-	X[] x = new X[]{};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass4.js
deleted file mode 100644
index 2ab124b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass4.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import p1.*;

-

-public class ResolveClass4{

-	public X foo() {

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass5.js
deleted file mode 100644
index fc26b20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass5.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import p1.*;

-

-public class ResolveClass5{

-	public void foo(X x) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass6.js
deleted file mode 100644
index 318d56c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveClass6.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class ResolveClass6 extends p1.X {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveConstructor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveConstructor.js
deleted file mode 100644
index 0ef370b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveConstructor.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class ResolveConstructor {

-	public ResolveConstructor(int i) {

-	}

-	public	ResolveConstructor(String s) {

-	}

-	public void foo() {

-		ResolveConstructor c = new ResolveConstructor("");

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveConstructorDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveConstructorDeclaration.js
deleted file mode 100644
index 5002d8b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveConstructorDeclaration.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveConstructorDeclaration {

-	public ResolveConstructorDeclaration(int i) {

-	}

-	public	ResolveConstructorDeclaration(String s) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDeepLocalVariable.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDeepLocalVariable.js
deleted file mode 100644
index c2baa20..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDeepLocalVariable.js
+++ /dev/null
@@ -1,24 +0,0 @@
-public class ResolveDeepLocalVariable {

-	class D1 {

-		class D2 {

-			class D3 {

-				class D4 {

-					class D5 {

-						class D6 {

-							class D7 {

-								class D8 {

-									class D9 {

-										public D9() {

-											String foo = "foo";

-											foo += "42";

-										}

-									}

-								}

-							}

-						}

-					}

-				}

-			}

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateFieldDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateFieldDeclaration.js
deleted file mode 100644
index cbf8cbe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateFieldDeclaration.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveDuplicateFieldDeclaration {

-	class Inner {

-		int var;/*1*/

-		int var;/*1*/

-	}

-	class Inner {

-		int var;/*2*/

-		int var;/*2*/

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateFieldDeclaration3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateFieldDeclaration3.js
deleted file mode 100644
index 3856cd9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateFieldDeclaration3.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveDuplicateFieldDeclaration3 {

-	class Inner {

-		int var;/*1*/

-		int var;/*1*/

-	}

-	class Inner {

-		int var;/*2*/

-		int var;/*2*/

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration.js
deleted file mode 100644
index a884df6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	function foo() {}

-	function foo() {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration11.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration11.js
deleted file mode 100644
index adcc33f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration11.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveDuplicateMethodDeclaration11 {

-	class Inner {

-		void foo(/*1*/Zork o) {}

-		void foo(/*1*/Zork o) {}

-	}

-	class Inner {

-		void foo(/*2*/Zork o) {}

-		void foo(/*2*/Zork o) {}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration3.js
deleted file mode 100644
index 6915397..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration3.js
+++ /dev/null
@@ -1,2 +0,0 @@
-	function foo( o) {}

-	function foo( o) {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration5.js
deleted file mode 100644
index 82d18dd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class ResolveDuplicateMethodDeclaration5 {

-	void foo(Zork o) {}

-	void foo(Zork o) {}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration7.js
deleted file mode 100644
index a95102a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration7.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveDuplicateMethodDeclaration7 {

-	class Inner {

-		void foo(Zork o) {}

-		void foo(Zork o) {}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration9.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration9.js
deleted file mode 100644
index d0a0ae6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateMethodDeclaration9.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveDuplicateMethodDeclaration9 {

-	class Inner {

-		void foo(/*1*/Zork o) {}

-		void foo(/*1*/Zork o) {}

-	}

-	class Inner {

-		void foo(/*2*/Zork o) {}

-		void foo(/*2*/Zork o) {}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration.js
deleted file mode 100644
index 08cf3a6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveDuplicateTypeDeclaration {

-	class Inner {

-	}

-	class Inner {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration3.js
deleted file mode 100644
index 0ac5245..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration3.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveDuplicateTypeDeclaration3 {

-	class Inner {

-		class Inner2/*1*/ {}

-		class Inner2/*1*/ {}

-	}

-	class Inner {

-		class Inner2/*2*/ {}

-		class Inner2/*2*/ {}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration5.js
deleted file mode 100644
index 3a93b0f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveDuplicateTypeDeclaration5.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveDuplicateTypeDeclaration5 {

-	class Inner {

-		class Inner2/*1*/ {}

-		class Inner2/*1*/ {}

-	}

-	class Inner {

-		class Inner2/*2*/ {}

-		class Inner2/*2*/ {}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveEmptySelectionOnMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveEmptySelectionOnMethod.js
deleted file mode 100644
index ce00d8f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveEmptySelectionOnMethod.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo(){

-	}

-	function bar(){

-		foo();

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveEndOfFile.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveEndOfFile.js
deleted file mode 100644
index 5ec42ac..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveEndOfFile.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function ResolveEndOfFile(){

-	

-}zzz
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveExplicitSuperConstructorCall.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveExplicitSuperConstructorCall.js
deleted file mode 100644
index 8d0d4fd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveExplicitSuperConstructorCall.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class ResolveExplicitSuperConstructorCall extends SuperClass {

-	public ResolveExplicitSuperConstructorCall(int x){

-		super(x);	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveExplicitThisConstructorCall.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveExplicitThisConstructorCall.js
deleted file mode 100644
index 8100d05..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveExplicitThisConstructorCall.js
+++ /dev/null
@@ -1,9 +0,0 @@
-public class ResolveExplicitThisConstructorCall {

-	public ResolveExplicitThisConstructorCall(){

-	

-	}

-	

-	public ResolveExplicitThisConstructorCall(int x){

-		this();	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveField.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveField.js
deleted file mode 100644
index 0622f26..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveField.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	var foo;

-	function bar() {

-		foo = 0;

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveField0.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveField0.js
deleted file mode 100644
index 15905be..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveField0.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveField {

-	public int foo;

-	public void bar() {

-		this.foo = 0;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveFieldDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveFieldDeclaration.js
deleted file mode 100644
index a581b63..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveFieldDeclaration.js
+++ /dev/null
@@ -1 +0,0 @@
-	var foo;

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveImport.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveImport.js
deleted file mode 100644
index 258c6b6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveImport.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import a.b.ImportedClass;

-

-public class ResolveImport {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveInnerClassAsParamater.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveInnerClassAsParamater.js
deleted file mode 100644
index 93bfcb3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveInnerClassAsParamater.js
+++ /dev/null
@@ -1,11 +0,0 @@
-public class ResolveInnerClassAsParamater {

-	class Inner {

-	}

-	void foo(String s) {

-	}

-	void foo(Inner i) {

-	}

-	void bar(Inner i) {

-		foo(i);

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveInterface.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveInterface.js
deleted file mode 100644
index c6d7492..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveInterface.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class ResolveInterface implements p1.Y {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass1.js
deleted file mode 100644
index f08b784..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass1.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import p1.*;

-

-public class ResolveLocalClass1{

-	void foo() {

-		class Y {

-		}

-		class Z {

-			private Y[] y;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass2.js
deleted file mode 100644
index f2daf30..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass2.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import p1.*;

-

-public class ResolveLocalClass2{

-	public void foo() {

-		class Y {

-		}

-		Y y = null;	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass3.js
deleted file mode 100644
index 1cb7fd9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass3.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import p1.*;

-

-public class ResolveLocalClass3{

-	void foo() {

-		class Y {

-		}

-		Y[] y = new Y[]{};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass4.js
deleted file mode 100644
index e1bbcb7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass4.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import p1.*;

-

-public class ResolveLocalClass4{

-	void foo() {

-		class Y {

-		}

-		class Z {

-			Y bar() {

-				return null;

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass5.js
deleted file mode 100644
index c717ca7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass5.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import p1.*;

-

-public class ResolveLocalClass5{

-	void foo() {

-		class Y {

-		}

-		class Z {

-			void foo(Y y) {

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass6.js
deleted file mode 100644
index bcb57fe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass6.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class ResolveLocalClass6 {

-	void foo() {

-		class Y {

-		}

-		class Z extends Y { // superclass

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass7.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass7.js
deleted file mode 100644
index edf72df..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalClass7.js
+++ /dev/null
@@ -1,18 +0,0 @@
-public class ResolveLocalClass7 {

-	void foo1() {

-		

-	}

-	void foo2() {

-		new Object() {

-			

-		};

-		new Object() {

-			class X {

-				

-			}

-			void bar() {

-				X var;

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalConstructor.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalConstructor.js
deleted file mode 100644
index 4abd113..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalConstructor.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class ResolveLocalConstructor {

-	void foo() {

-		class Y {

-			public Y(int i) {

-			}

-			public	Y(String s) {

-			}

-			public void bar() {

-				Y c = new Y("");

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalConstructorDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalConstructorDeclaration.js
deleted file mode 100644
index 5d5876f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalConstructorDeclaration.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveLocalConstructorDeclaration {

-	void foo() {

-		class Y {

-			public Y(int i) {

-			}

-			public Y(String s) {

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalField.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalField.js
deleted file mode 100644
index 0002a9f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalField.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveLocalField {

-	void foo() {

-		class Y {

-			public int fred;

-			public void bar() {

-				this.fred = 0;

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalField2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalField2.js
deleted file mode 100644
index d4fdf9c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalField2.js
+++ /dev/null
@@ -1,16 +0,0 @@
-public class ResolveLocalField2 {

-	void foo1() {

-		

-	}

-	void foo2() {

-		new Object() {

-			

-		};

-		new Object() {

-			Object var;

-			void bar() {

-				var = null;

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalFieldDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalFieldDeclaration.js
deleted file mode 100644
index 5a8bdc8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalFieldDeclaration.js
+++ /dev/null
@@ -1,7 +0,0 @@
-public class ResolveLocalFieldDeclaration {

-	void foo() {

-		class Y {

-			public int fred;

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMemberTypeDeclaration1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMemberTypeDeclaration1.js
deleted file mode 100644
index 48761d0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMemberTypeDeclaration1.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class ResolveLocalMemberTypeDeclaration1 {

-	void foo() {

-		class Y {

-			class Member {	

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMemberTypeDeclaration2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMemberTypeDeclaration2.js
deleted file mode 100644
index 64a6b35..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMemberTypeDeclaration2.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveLocalMemberTypeDeclaration2 {

-	void foo() {

-		class Y {

-			class Member {

-				class MemberOfMember {

-				}

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethod.js
deleted file mode 100644
index 9f3d945..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethod.js
+++ /dev/null
@@ -1,13 +0,0 @@
-public class ResolveLocalMethod {

-	void bar() {

-		class Y {

-			void foo(int i) {

-			}

-			void foo(String s) {

-			}

-			void bar() {

-				new Y().foo("");

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethod2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethod2.js
deleted file mode 100644
index 2dee670..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethod2.js
+++ /dev/null
@@ -1,17 +0,0 @@
-public class ResolveLocalMethod2 {

-	void foo1() {

-		

-	}

-	void foo2() {

-		new Object() {

-			

-		};

-		new Object() {

-			void bar() {

-			}

-			void toto() {

-				bar();

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethodDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethodDeclaration.js
deleted file mode 100644
index 0b1df91..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalMethodDeclaration.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveLocalMethodDeclaration {

-	void bar() {

-		class Y {

-			void foo(int i) {

-			}

-			void foo(String s) {

-			}

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalName.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalName.js
deleted file mode 100644
index 0650e50..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalName.js
+++ /dev/null
@@ -1,15 +0,0 @@
-	function foo(){

-		var var1 = new Object();

-		var var2 = 1;

-		var1.toString();

-		var2++;

-		if (var2 == 3) {

-			var var3 = var1;

-			var3.hashCode();

-		} else {

-			var var3 = new Object();

-			var3.toString();

-		}

-		var var4 = 1;

-

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalVariable.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalVariable.js
deleted file mode 100644
index ec6f050..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveLocalVariable.js
+++ /dev/null
@@ -1,18 +0,0 @@
-public class ResolveLocalVariable {

-	void foo1() {

-		

-	}

-	void foo2() {

-		new Object() {

-			

-		};

-		new Object() {

-			void bar() {

-			}

-			void toto() {

-				Object var;

-				var = null;

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMemberTypeDeclaration1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMemberTypeDeclaration1.js
deleted file mode 100644
index d78343a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMemberTypeDeclaration1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class ResolveMemberTypeDeclaration1 {

-	public interface MemberInterface {	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMemberTypeDeclaration2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMemberTypeDeclaration2.js
deleted file mode 100644
index efae291..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMemberTypeDeclaration2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveMemberTypeDeclaration2 {

-	class Member {

-		class MemberOfMember {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMessageSendOnBaseType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMessageSendOnBaseType.js
deleted file mode 100644
index 68d3ef3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMessageSendOnBaseType.js
+++ /dev/null
@@ -1,4 +0,0 @@
-	var foo;

-	function boo() {

-		foo.hello();

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethod.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethod.js
deleted file mode 100644
index 7c455e4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethod.js
+++ /dev/null
@@ -1,7 +0,0 @@
-	function foo( i) {

-	}

-	function foo2( s) {

-	}

-	function bar() {

-		new ResolveMethod().foo("");

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclaration.js
deleted file mode 100644
index 34ce020..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclaration.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveMethodDeclaration {

-	public void foo(int i) {

-	}

-	public void foo(String s) {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous.js
deleted file mode 100644
index 9e2230a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous.js
+++ /dev/null
@@ -1,8 +0,0 @@
-public class ResolveMethodDeclarationInAnonymous {

-	void foo() {

-		Object o = new Object() {

-			void bar() {

-			}

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous2.js
deleted file mode 100644
index e34a08f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous2.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveMethodDeclarationInAnonymous2 {

-	Object field = new Object() {

-		void foo() {

-		}

-	};

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous3.js
deleted file mode 100644
index 2162b39..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInAnonymous3.js
+++ /dev/null
@@ -1,14 +0,0 @@
-public class ResolveMethodDeclarationInAnonymous3 {

-	ResolveMethodDeclarationInAnonymous3(Object arg) {

-	}

-	void foo() {

-		new ResolveMethodDeclarationInAnonymous3("") {

-			void bar() {

-				new Object() {

-					void selectMe() {

-					}

-				};

-			}

-		};

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInInterface.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInInterface.js
deleted file mode 100644
index 7dd19c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodDeclarationInInterface.js
+++ /dev/null
@@ -1,6 +0,0 @@
-public class ResolveMethodDeclarationInInterface {

-	public static void main(String[] args) {

-		QY y = new QY();

-		((QX)y).foo();

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodWithIncorrectParameter.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodWithIncorrectParameter.js
deleted file mode 100644
index 1420186..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveMethodWithIncorrectParameter.js
+++ /dev/null
@@ -1,5 +0,0 @@
-	function foo( x) {

-	}

-	function bar() {

-		foo("String");

-	}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolvePackage.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolvePackage.js
deleted file mode 100644
index 8b19005..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolvePackage.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import java.lang.*;

-

-public class ResolvePackage {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolvePartiallyQualifiedType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolvePartiallyQualifiedType.js
deleted file mode 100644
index cb9f720..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolvePartiallyQualifiedType.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class ResolvePartiallyQualifiedType {

-	void foo() {

-		java.lang.Object o;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName1.js
deleted file mode 100644
index 4ffef01..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class ResolveQualifiedName1 {

-	pp.qq.XX.YY.ZZ zz;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName2.js
deleted file mode 100644
index da86897..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class ResolveQualifiedName2 {

-	pp.qq.XX.YY.ZZ zz;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName3.js
deleted file mode 100644
index 5f08b1d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class ResolveQualifiedName3 {

-	pp.qq.XX.YY.ZZ zz;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName4.js
deleted file mode 100644
index fee029c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName4.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class ResolveQualifiedName4 {

-	pp.qq.XX.YY.ZZ zz;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName5.js
deleted file mode 100644
index 32a8bda..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedName5.js
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ResolveQualifiedName5 {

-	public class XX {

-		public class YY {

-			public class ZZ {

-				

-			}

-		}

-		YY.ZZ zz;

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedType.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedType.js
deleted file mode 100644
index 18519ee..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveQualifiedType.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class ResolveQualifiedType {

-	void foo() {

-		java.lang.Object o;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeDeclaration.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeDeclaration.js
deleted file mode 100644
index 9606633..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeDeclaration.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class ResolveTypeDeclaration {

-	

-}

-class OtherType {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeEmptySelection.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeEmptySelection.js
deleted file mode 100644
index f4bac76..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeEmptySelection.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//public class ResolveTypeEmptySelection {

-	var o;

-//}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeEmptySelection2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeEmptySelection2.js
deleted file mode 100644
index 864e62a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeEmptySelection2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class ResolveTypeEmptySelection2 {

-	Object o;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeInComment.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeInComment.js
deleted file mode 100644
index b00a35c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveTypeInComment.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import p2.X;

-public class ResolveTypeInComment{

-	/* return X */

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveUnicode.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveUnicode.js
deleted file mode 100644
index bb99f9a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/ResolveUnicode.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class ResolveUnicode {

-	public java.lang.\u0053tring s;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/SuperClass.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/SuperClass.js
deleted file mode 100644
index a7df332..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/SuperClass.js
+++ /dev/null
@@ -1,5 +0,0 @@
-public class SuperClass {

-	public SuperClass(int x){

-	

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/SuperInterface.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/SuperInterface.js
deleted file mode 100644
index dcc34e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/SuperInterface.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public interface SuperInterface {

-	void foo();

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/X1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/X1.js
deleted file mode 100644
index 83af56f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/X1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-public class X1 extends Exception {

-   public class Y1 extends Exception {

-   }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/a/b/ImportedClass.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/a/b/ImportedClass.js
deleted file mode 100644
index eccb889..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/a/b/ImportedClass.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package a.b;

-

-public class ImportedClass {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/b120350/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/b120350/Test.js
deleted file mode 100644
index a5e8f40..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/b120350/Test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-public class Test {

-}

-class Secondary {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/b120350/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/b120350/X.js
deleted file mode 100644
index 7562db2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/b120350/X.js
+++ /dev/null
@@ -1 +0,0 @@
-public class X extends Secondary {}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p1/X.js
deleted file mode 100644
index 67677e8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p1/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function X() {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p1/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p1/Y.js
deleted file mode 100644
index c46a624..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p1/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function Y() {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p2/X.js
deleted file mode 100644
index 2686c3c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/p2/X.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p2;

-

-public class X {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/pp/qq/XX.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/pp/qq/XX.js
deleted file mode 100644
index 375bb58..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src/pp/qq/XX.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package pp.qq;

-public class XX {

-	public class YY {

-		public class ZZ {

-			

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0001/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0001/Test.js
deleted file mode 100644
index b3d3753..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0001/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0001;

-public class Test<T> {

-	public <U> Test<U> foo(Iterable iii){

-		for(Object o : iii){

-			

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0002/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0002/Test.js
deleted file mode 100644
index b7ec216..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0002/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0002;

-public class Test {

-	test0002.Test.X<Object>.Y<Object> var;

-	public class X <TX> {

-		public class Y <TY> {

-			

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0003/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0003/Test.js
deleted file mode 100644
index d713778..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0003/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0003;

-public class Test <T> {

-	test0003.Test.X<Object>.Y<Object> var;

-	public class X <TX> {

-		public class Y <TY> {

-			

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0005/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0005/Test.js
deleted file mode 100644
index 4b2278b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0005/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0005;

-public class Test <T> {

-	test0005.Test.X<Object>.Y<Object> var;

-	public class X <TX> {

-		public class Y <TY> {

-			

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0006/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0006/Test.js
deleted file mode 100644
index 21838a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0006/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0006;

-

-class Test0006 {

-}

-

-public class Test<Test0006> {

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0007/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0007/Test.js
deleted file mode 100644
index 4f100a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0007/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0007;

-

-class Test0007 {

-}

-

-public class Test<Test0007> {

-	Test0007 var;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0008/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0008/Test.js
deleted file mode 100644
index 00a3ee1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0008/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0008;

-

-class Test0008 {

-}

-

-public class Test {

-	class Inner <Test0008> {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0009/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0009/Test.js
deleted file mode 100644
index d09e47b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0009/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0009;

-

-class Test0009 {

-}

-

-public class Test {

-	class Inner <Test0009> {

-		Test0009 var;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0010/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0010/Test.js
deleted file mode 100644
index 035eeb3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0010/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0010;

-

-class Test0010 {

-}

-

-public class Test <Test0010> {

-	class Inner {

-		Test0010 var;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0011/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0011/Test.js
deleted file mode 100644
index 8f8d2d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0011/Test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package test0011;

-

-class Test0011 {

-}

-

-public class Test <Test0011> {

-	<Test0011> void foo() {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0012/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0012/Test.js
deleted file mode 100644
index 17da73c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0012/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0012;

-

-class Test0012 {

-}

-

-public class Test <Test0012> {

-	<Test0012> void foo() {

-		Test0012 var;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0013/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0013/Test.js
deleted file mode 100644
index 3bd6c4c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0013/Test.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package test0013;

-

-class Test0013 {

-}

-

-public class Test {

-	class Inner {

-		<Test0013> void foo() {

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0014/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0014/Test.js
deleted file mode 100644
index dcccacf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0014/Test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package test0014;

-

-class Test0014 {

-}

-

-public class Test {

-	class Inner {

-		<Test0014> void foo() {

-			Test0014 var;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0015/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0015/Test.js
deleted file mode 100644
index ad71c04..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0015/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0015;

-

-public enum Test {;

-	void foo() {

-		int var;

-		var = 0;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0016/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0016/Test.js
deleted file mode 100644
index 803d851..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0016/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0016;

-

-public class Test {

-	<T> void foo() {

-	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0017/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0017/Test.js
deleted file mode 100644
index dad99ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0017/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0017;

-

-public class Test {

-	<T> T foo() {

-		return null;

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0018/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0018/Test.js
deleted file mode 100644
index ac6251d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0018/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0018;

-

-public class Test {

-	<T> void foo(T t) {

-	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0019/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0019/Test.js
deleted file mode 100644
index 3ab651d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0019/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0019;

-

-public class Test {

-	<T> void foo(Object o1, T t, Object o2) {

-	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0020/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0020/Test.js
deleted file mode 100644
index 74c7ca2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0020/Test.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0020;

-

-public class Test {

-	class X<T> {

-		

-	}

-	<T> void foo(X<T> x) {

-	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0021/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0021/Test.js
deleted file mode 100644
index 8af3f8a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0021/Test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0021;

-

-public class Test {

-	<T extends Exception> void foo() throws T {

-	

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/A.js
deleted file mode 100644
index 93ff87f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package test0022;

-

-public class A<U> {

-	public class B {

-		public class D<V> {

-		}

-	}

-	public class C<W> {

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/Test.js
deleted file mode 100644
index 06a2f69..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0022;

-

-public class Test {

-	X var;

-	void foo(Y t, A<Y> a, A<Y>.B b, A<Y>.C<Y> c, A<Y>.B.D<Y> d) {

-		var.add(t,a,b,c,d);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/X.js
deleted file mode 100644
index 9c73341..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/X.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package test0022;

-

-public class X {

-	public <T extends Y> void add(T t, A<T> a, A<T>.B b, A<T>.C<T> c, A<T>.B.D<T> d) {

-		

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/Y.js
deleted file mode 100644
index b43c11c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0022/Y.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0022;

-

-public class Y {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0023/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0023/Test.js
deleted file mode 100644
index f09e20a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0023/Test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package test0023;

-

-public class Test {

-	X var;

-	void foo(Y t, A<Y> a, A<Y>.B b, A<Y>.C<Y> c, A<Y>.B.D<Y> d) {

-		var.add(t,a,b,c,d);

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0024/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0024/Test.js
deleted file mode 100644
index 38627bf..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0024/Test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package test0024;

-

-public enum Test {

-	A,

-	B;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0025/Test.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0025/Test.js
deleted file mode 100644
index 51cc9a1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/src2/test0025/Test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package test0025;

-

-public @interface Test {

-	

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test0023.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test0023.jar
deleted file mode 100644
index 47dbb54..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test0023.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test0023src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test0023src.zip
deleted file mode 100644
index 035400f..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test0023src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test25888.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test25888.jar
deleted file mode 100644
index d45b07c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test25888.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test25888src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test25888src.zip
deleted file mode 100644
index c96f604..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test25888src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47177.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47177.jar
deleted file mode 100644
index 7cf056b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47177.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47177src.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47177src.zip
deleted file mode 100644
index dfb9a64..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47177src.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47214.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47214.jar
deleted file mode 100644
index baae94b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/test47214.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/zzz.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/zzz.jar
deleted file mode 100644
index a2d6719..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/zzz.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/zzzsrc.zip b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/zzzsrc.zip
deleted file mode 100644
index ed756e2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/Resolve/zzzsrc.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/.classpath b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/.classpath
deleted file mode 100644
index 38e0319..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="src2"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="lib" path="zzz.jar" sourcepath="/Resolve/zzzsrc.zip"/>
-    <classpathentry kind="lib" path="p3.jar" sourcepath="/Resolve/p3src.zip"/>
-    <classpathentry kind="lib" path="jj.jar" sourcepath="/Resolve/jjsrc.zip"/>
-    <classpathentry kind="lib" path="test25888.jar" sourcepath="/Resolve/test25888src.zip"/>
-    <classpathentry kind="lib" path="test47177.jar" sourcepath="/Resolve/test47177src.zip"/>
-    <classpathentry kind="lib" path="test47214.jar" sourcepath="/Resolve/test47214.jar"/>
-    <classpathentry kind="lib" path="test0023.jar" sourcepath="/Resolve/test0023src.zip"/>
-    <classpathentry kind="lib" path="p4.jar"/>
-    <classpathentry kind="lib" path="class-folder"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/.project
deleted file mode 100644
index 75574e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/class-folder/aa/bb/cc/CClass.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/class-folder/aa/bb/cc/CClass.js
deleted file mode 100644
index 984168a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/class-folder/aa/bb/cc/CClass.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package aa.bb.cc;

-

-public class CClass extends SuperClass {

-	public class Inner extends SuperInnerClass {

-		public Inner() throws Exception {

-		}

-	}

-	

-	public void foo(SuperClass varsc, final int var){

-		class Victory{}

-	}

-	

-	public void bar(int x, int y){

-		

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/class-folder/bug132665/Bug132665.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/class-folder/bug132665/Bug132665.js
deleted file mode 100644
index 5d7bd01..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/class-folder/bug132665/Bug132665.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package bug132665;

-public class Bug132665<T> {

-	public void foo1() {}

-	public Bug132665<? extends java.lang.Object> foo2() {

-		return null;

-	}

-	public void foo3() {}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/src/aa/bb/cc/BClass.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/src/aa/bb/cc/BClass.js
deleted file mode 100644
index 5eacc45..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/SnippetCompletion/src/aa/bb/cc/BClass.js
+++ /dev/null
@@ -1,16 +0,0 @@
-package aa.bb.cc;

-

-public class BClass extends SuperClass {

-	public class Inner extends SuperInnerClass {

-		public Inner() throws Exception {

-		}

-	}

-	

-	public void foo(SuperClass varsc, final int var){

-		class Victory{}

-	}

-	

-	public void bar(int x, int y){

-		

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/.settings/.jsdtscope
deleted file mode 100644
index 38e0319..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/.settings/.jsdtscope
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="src2"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="lib" path="zzz.jar" sourcepath="/Resolve/zzzsrc.zip"/>
-    <classpathentry kind="lib" path="p3.jar" sourcepath="/Resolve/p3src.zip"/>
-    <classpathentry kind="lib" path="jj.jar" sourcepath="/Resolve/jjsrc.zip"/>
-    <classpathentry kind="lib" path="test25888.jar" sourcepath="/Resolve/test25888src.zip"/>
-    <classpathentry kind="lib" path="test47177.jar" sourcepath="/Resolve/test47177src.zip"/>
-    <classpathentry kind="lib" path="test47214.jar" sourcepath="/Resolve/test47214.jar"/>
-    <classpathentry kind="lib" path="test0023.jar" sourcepath="/Resolve/test0023src.zip"/>
-    <classpathentry kind="lib" path="p4.jar"/>
-    <classpathentry kind="lib" path="class-folder"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/NotInClasspath/e/E.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/NotInClasspath/e/E.js
deleted file mode 100644
index 6784f53..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/NotInClasspath/e/E.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package e;

-import p1.*;

-public class E extends X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib.jar
deleted file mode 100644
index 1475446..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib48459/p48459/p2/Y48459.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib48459/p48459/p2/Y48459.js
deleted file mode 100644
index 19a2ed4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib48459/p48459/p2/Y48459.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p48459.p2;

-public class Y48459 extends p48459.p1.X48459 {

-	public int field;

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib53095/p53095/X53095.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib53095/p53095/X53095.js
deleted file mode 100644
index da09837..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/lib53095/p53095/X53095.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p53095;

-public class X53095 extends RuntimeException {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/cycle/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/cycle/X.js
deleted file mode 100644
index d7ac879..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/cycle/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package cycle;

-public class X extends Y {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/cycle/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/cycle/Y.js
deleted file mode 100644
index 03e3f34..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/cycle/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package cycle;

-public class Y extends X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/A.js
deleted file mode 100644
index ebee606..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/A.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p1;

-public class A extends B {

-}

-class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Deep.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Deep.js
deleted file mode 100644
index 549b829..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Deep.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p1;

-public class Deep extends Z {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/I1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/I1.js
deleted file mode 100644
index 7196e73..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/I1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p1;

-public interface I1 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/I2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/I2.js
deleted file mode 100644
index 3f4549d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/I2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p1;

-public interface I2 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/X.js
deleted file mode 100644
index 0ec3703..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p1;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Y.js
deleted file mode 100644
index 69e38c9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p1;

-public class Y extends X implements I1, I2 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Z.js
deleted file mode 100644
index 005ed9b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p1/Z.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p1;

-public class Z extends Y {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I.js
deleted file mode 100644
index 1fe3bf2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p2;

-public interface I {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I1.js
deleted file mode 100644
index d3118b0..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p2;

-public interface I1 extends I {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I2.js
deleted file mode 100644
index 4925fbc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p2;

-public interface I2 extends I {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I3.js
deleted file mode 100644
index 18d13cc..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/I3.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p2;

-public interface I3 extends I1 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/X.js
deleted file mode 100644
index 2c5826d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p2;

-public class X implements I {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/Y.js
deleted file mode 100644
index 76a84ad..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p2/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p2;

-public class Y extends X implements I3 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/A.js
deleted file mode 100644
index f7b81ab..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3;

-/* Test case for bug 23644 hierarchy: getAllSuperTypes does not include all superinterfaces?  */

-public class A implements I {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/B.js
deleted file mode 100644
index bd9b74d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3;

-/* Test case for bug 23644 hierarchy: getAllSuperTypes does not include all superinterfaces?  */

-public class B extends A implements I1 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/I.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/I.js
deleted file mode 100644
index 34471d4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/I.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3;

-/* Test case for bug 23644 hierarchy: getAllSuperTypes does not include all superinterfaces?  */

-public interface I {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/I1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/I1.js
deleted file mode 100644
index 6d48c6b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p3/I1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3;

-/* Test case for bug 23644 hierarchy: getAllSuperTypes does not include all superinterfaces?  */

-public interface I1 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p4/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p4/X.js
deleted file mode 100644
index 68415c3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p4/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p4;

-/* Test case for bug 24691 Missing interface makes hierarchy incomplete */

-public class X implements Missing {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p48459/p1/X48459.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p48459/p1/X48459.js
deleted file mode 100644
index 6f39515..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p48459/p1/X48459.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p48459.p1;

-

-public class X48459 {

-

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p48459/p1/Z48459.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p48459/p1/Z48459.js
deleted file mode 100644
index 43ff5e7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p48459/p1/Z48459.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package p48459.p1;

-public class Z48459 {

-	Object foo = new X48459() {

-		void bar(p48459.p2.Y48459 y) {

-			y.field++;

-		}

-	};

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p5/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p5/X.js
deleted file mode 100644
index ecab3eb..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p5/X.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package p5;

-public class X {

-	public class Inner {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p6/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p6/A.js
deleted file mode 100644
index 22996c1..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p6/A.js
+++ /dev/null
@@ -1,12 +0,0 @@
-package p6;

-/* Test case for bug 43274 Type hierarchy broken */

-class A{

-	class Inner{

-	}

-}

-class B extends A.Inner{

-	B(){

-		new A().super();

-	}

-}

-

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p7/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p7/A.js
deleted file mode 100644
index 4b7e5e6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p7/A.js
+++ /dev/null
@@ -1,37 +0,0 @@
-package p7;

-public class A {

-	{

-		new X() {

-		};

-		class Y1 extends X {

-		}

-		class Y2 extends Y1 {

-		}

-	}

-	

-	static {

-		new X() {

-		};

-		class Y3 {

-		}

-	}

-	

-	X field1 = new X() {

-	};

-	

-	X[] field2 = new X[] {

-		new X() {

-		},

-		new X() {

-		}

-	};

-	

-	void foo() {

-		new X() {

-		};

-		class Y1 extends X {

-		}

-		class Y2 extends Y1 {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p7/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p7/X.js
deleted file mode 100644
index bf85e79..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p7/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p7;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p8/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p8/X.js
deleted file mode 100644
index ea1529c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p8/X.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package p8;

-/* Regression test case for bug 44506 Type hierarchy is missing anonymous type*/

-public class X {

-	X(String s) {

-	}

-	protected void foo() {

-		new X("") {

-		};

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p9/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p9/X.js
deleted file mode 100644
index 79a22ec..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/p9/X.js
+++ /dev/null
@@ -1,9 +0,0 @@
-package p9;

-public class X {

-	void foo() {

-		new X() {

-		};

-		class Y extends X {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q1/X.js
deleted file mode 100644
index 99c1363..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q1/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package q1;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q1/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q1/Z.js
deleted file mode 100644
index e8bd2a4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q1/Z.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package q1;

-public class Z extends q2.Y {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q2/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q2/Y.js
deleted file mode 100644
index 3497974..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q2/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package q2;

-public class Y extends q1.X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q3/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q3/Z.js
deleted file mode 100644
index 3682123..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q3/Z.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package q3;

-import p49809.Y49809;

-public class Z extends Y49809 {

-	public Z() {

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q4/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q4/X.js
deleted file mode 100644
index 3e26121..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q4/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package q4;

-public class X {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q4/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q4/Y.js
deleted file mode 100644
index c9fb2a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q4/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package q4;

-public class Y extends X {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q5/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q5/X.js
deleted file mode 100644
index 72c592e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q5/X.js
+++ /dev/null
@@ -1,7 +0,0 @@
-package q5;

-public class X {

-}

-class NonVisibleClass {

-}

-interface NonVisibleInterface {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q6/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q6/Y.js
deleted file mode 100644
index 05d2bd5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q6/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package q6;

-public class Y extends q5.NonVisibleClass {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q6/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q6/Z.js
deleted file mode 100644
index bb06608..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q6/Z.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package q6;

-public class Z implements q5.NonVisibleInterface {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q7/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q7/X.js
deleted file mode 100644
index 62bf8af..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/q7/X.js
+++ /dev/null
@@ -1,11 +0,0 @@
-package q7;

-public class X {

-    public class Member {

-    }

-}

-class Y {

-    void foo(X arg) {

-        arg.new Member() {

-        };

-    } 

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/wc/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/wc/X.js
deleted file mode 100644
index b7b7efa..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/src/wc/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package wc;

-public class X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test144976.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test144976.jar
deleted file mode 100644
index 5493e9e..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test144976.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test49809.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test49809.jar
deleted file mode 100644
index bd672dd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test49809.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test54043.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test54043.jar
deleted file mode 100644
index 0af0f85..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test54043.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test58440.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test58440.jar
deleted file mode 100644
index 9780559..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test58440.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test60365.jar b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test60365.jar
deleted file mode 100644
index 7936068..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchy/test60365.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/.project
deleted file mode 100644
index ecc70a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/.project
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-		<project>TypeHierarchyNotification</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/.settings/.jsdtscope
deleted file mode 100644
index 0888cd4..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/.settings/.jsdtscope
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path=""/>
-    <classpathentry kind="src" path="/TypeHierarchyNotification"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="output" path=""/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/Dependent.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/Dependent.js
deleted file mode 100644
index fd8ca93..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyDependent/Dependent.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import a.*;

-public class Dependent extends A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/.settings/.jsdtscope
deleted file mode 100644
index dce3aa7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/.settings/.jsdtscope
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="lib" path="lib.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/a/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/a/A.js
deleted file mode 100644
index 4de833a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/a/A.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package a;

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/b/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/b/B.js
deleted file mode 100644
index 929d415..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/b/B.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package b;

-import a.*;

-public class B extends A {

-	public Object value;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/c/C.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/c/C.js
deleted file mode 100644
index 1d61657..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/c/C.js
+++ /dev/null
@@ -1,5 +0,0 @@
-package c;

-import p.*;

-import i.*;

-public class C extends X implements I2 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/d/D.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/d/D.js
deleted file mode 100644
index 17d0bea..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/d/D.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package d;

-import c.*;

-public class D extends C {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/e/E.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/e/E.js
deleted file mode 100644
index 0b194a7..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/e/E.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package e;

-import p.*;

-public class E extends X {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/i/I1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/i/I1.js
deleted file mode 100644
index e342437..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/i/I1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package i;

-public interface I1 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/i/I2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/i/I2.js
deleted file mode 100644
index 3915816..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/i/I2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package i;

-public interface I2 {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/External.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/External.js
deleted file mode 100644
index 5f5b44d..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/External.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p;

-public class External {

-	public Object field;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/MyError.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/MyError.js
deleted file mode 100644
index 9a55ed3..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/MyError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p;

-public class MyError extends Error {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/X.js
deleted file mode 100644
index 65ab829..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/X.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p;

-import b.*;

-import i.*;

-public class X extends B implements I1 {

-	public Object field;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/other/External.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/other/External.js
deleted file mode 100644
index 94b12c6..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p/other/External.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p.other;

-public class External {

-	public Object field;

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p2/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p2/A.js
deleted file mode 100644
index 8afd03b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p2/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p2;

-/* Test case for bug 4917 Latest build fails updating TypeHierarchy */

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p2/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p2/B.js
deleted file mode 100644
index 4e4d090..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p2/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p2;

-/* Test case for bug 4917 Latest build fails updating TypeHierarchy */

-public class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p3/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p3/A.js
deleted file mode 100644
index 70a47bd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p3/A.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3;

-/* Test case for bug 51867 An anonymous type is missing in type hierarchy when editor is modified */

-public class A {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p3/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p3/B.js
deleted file mode 100644
index ebc22a5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchyNotification/src/p3/B.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p3;

-/* Test case for bug 51867 An anonymous type is missing in type hierarchy when editor is modified */

-public class B {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/.settings/.jsdtscope
deleted file mode 100644
index b7a47d9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/.settings/.jsdtscope
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-     <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I1.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I1.js
deleted file mode 100644
index 32a3fe9..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public interface I1 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I2.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I2.js
deleted file mode 100644
index 1d5f61c..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public interface I2 extends I6 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I3.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I3.js
deleted file mode 100644
index 96b1996..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I3.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public interface I3 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I4.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I4.js
deleted file mode 100644
index 5a53f2b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I4.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public interface I4 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I5.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I5.js
deleted file mode 100644
index fd6d1a2..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I5.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public interface I5 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I6.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I6.js
deleted file mode 100644
index 635c2cd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/I6.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public interface I6 {

-

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/X.js
deleted file mode 100644
index 9e564e5..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/X.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public class X implements I5 {

-		

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/Y.js
deleted file mode 100644
index 963e926..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/Y.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public class Y extends X implements I1, I2, IA, IB {

-		

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/Z.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/Z.js
deleted file mode 100644
index 7aafa43..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeHierarchySerialization/src/p1/Z.js
+++ /dev/null
@@ -1,4 +0,0 @@
-package p1;

-public class Z extends Y implements I3, I4, IC {

-		

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/.project b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/.project
deleted file mode 100644
index bc2460a..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.jsdt.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/.settings/.jsdtscope b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/.settings/.jsdtscope
deleted file mode 100644
index 49cabdd..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/.settings/.jsdtscope
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JCL_LIB" sourcepath="JCL_SRC" rootpath="JCL_SRCROOT"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p/TypeResolve.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p/TypeResolve.js
deleted file mode 100644
index 7bfb6ba..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p/TypeResolve.js
+++ /dev/null
@@ -1,13 +0,0 @@
-package p;

-import p1.X;

-import p2.*;

-public class TypeResolve {

-	class A {

-		class B {

-			class D {

-			}

-		}

-		class C {

-		}

-	}

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p1/X.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p1/X.js
deleted file mode 100644
index e5afd08..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p1/X.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p1;

-public class X {

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p2/Y.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p2/Y.js
deleted file mode 100644
index 849c24b..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p2/Y.js
+++ /dev/null
@@ -1,3 +0,0 @@
-package p2;

-public class Y {

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p3/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p3/B.js
deleted file mode 100644
index 3c31965..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p3/B.js
+++ /dev/null
@@ -1,14 +0,0 @@
-package p3;

-/* Test case for bug 23829 IType::resolveType incorrectly returns null  */

-public class B{}

-class A extends B{

-}

-

-class Test{

-	void f(){

-		A a= new A();

-		f(a);

-	}

-	void f(B b){

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p4/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p4/A.js
deleted file mode 100644
index 4bf68a8..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p4/A.js
+++ /dev/null
@@ -1,8 +0,0 @@
-package p4;

-public class A {

-	class Inner {

-		public int amount() {

-			return 1;

-		}

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p4/B.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p4/B.js
deleted file mode 100644
index 81b0c09..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p4/B.js
+++ /dev/null
@@ -1,6 +0,0 @@
-package p4;

-public class B {

-	B(int t, A.Inner a) {

-		a.amount();

-	}

-}

diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p5/A.js b/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p5/A.js
deleted file mode 100644
index 306dafe..0000000
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/workspace/TypeResolve/src/p5/A.js
+++ /dev/null
@@ -1,10 +0,0 @@
-package 5;

-/* Test case for bug 48350 IType#resolveType(String) fails on local types */

-public class A {

-	void foo() {

-		class Local {

-			void bar() {

-			}

-		}

-	}

-}